<?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>LISE</name>
	<version>1.5.1</version>
    <mincmsversion>2.1</mincmsversion>
	<help><![CDATA[PGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJodHRwOi8vbG9jYWxob3N0L0NNU01TLTItNC1ERVYtTU9EUy9tb2R1bGVzL0xJU0UvbGliL2Nzcy9saXNlSGVscC5jc3MiIHR5cGU9InRleHQvY3NzIiAvPjxzY3JpcHQgc3JjPSJodHRwOi8vbG9jYWxob3N0L0NNU01TLTItNC1ERVYtTU9EUy9tb2R1bGVzL0xJU0UvbGliL2pzL2pzLmNvb2tpZS5qcyI+PC9zY3JpcHQ+PHNjcmlwdD5qUXVlcnkoZG9jdW1lbnQpLnJlYWR5KGZ1bmN0aW9uKCl7dmFyIGFjdGl2ZV90YWIgPSBDb29raWVzLmdldCgnTElTRV9hY3RpdmUnKTskKCIjZG9uYXRpbmciKS5jbGljayhmdW5jdGlvbihldmVudCl7ZXZlbnQucHJldmVudERlZmF1bHQoKTtfc2V0X2FjdGl2ZV90YWIoJ2NvbnRyaWJ1dGUnKTt9KTtpZih0eXBlb2YgYWN0aXZlX3RhYiA9PT0gInVuZGVmaW5lZCIpe19zZXRfYWN0aXZlX3RhYignZ2VuZXJhbCcpO31lbHNle19zZXRfYWN0aXZlX3RhYihhY3RpdmVfdGFiKTt9JCgnI3BhZ2VfdGFicyA+IGRpdicpLmVhY2goZnVuY3Rpb24oKXskKHRoaXMpLmNsaWNrKGZ1bmN0aW9uKCl7Q29va2llcy5zZXQoJ0xJU0VfYWN0aXZlJywgdGhpcy5pZCk7fSk7fSk7fSk7ZnVuY3Rpb24gX3NldF9hY3RpdmVfdGFiKHRhYl9uYW1lKXskKCcjcGFnZV90YWJzID4gZGl2JykuZWFjaChmdW5jdGlvbigpeyQodGhpcykucmVtb3ZlQ2xhc3MoJ2FjdGl2ZScpO30pOyQoJyNwYWdlX2NvbnRlbnQgPiBkaXYnKS5lYWNoKGZ1bmN0aW9uKCl7JCh0aGlzKS5oaWRlKCk7fSk7JCgnIycgKyB0YWJfbmFtZSkuYWRkQ2xhc3MoJ2FjdGl2ZScpOyQoJyMnICsgdGFiX25hbWUgKyAnX2MnKS5zaG93KCk7Q29va2llcy5zZXQoJ0xJU0VfYWN0aXZlJywgdGFiX25hbWUpO31mdW5jdGlvbiBjb3B5VG9DbGlwYm9hcmQoZWxlbWVudCl7dmFyICR0ZW1wID0gJCgiPGlucHV0PiIpOyQoImJvZHkiKS5hcHBlbmQoJHRlbXApOyR0ZW1wLnZhbCgkKGVsZW1lbnQpLnRleHQoKSkuc2VsZWN0KCk7ZG9jdW1lbnQuZXhlY0NvbW1hbmQoImNvcHkiKTskdGVtcC5yZW1vdmUoKTt9PC9zY3JpcHQ+PGRpdiBjbGFzcz0iY2xlYXIiPjwvZGl2PjxkaXYgaWQ9InBhZ2VfdGFicyI+PGRpdiBpZD0iZ2VuZXJhbCI+R2VuZXJhbDwvZGl2PjxkaXYgaWQ9ImR1cGxpY2F0aW5nIj5DcmVhdGluZyBJbnN0YW5jZXM8L2Rpdj48ZGl2IGlkPSJtb2RlcyI+SW5zdGFuY2UgTW9kZXM8L2Rpdj48ZGl2IGlkPSJmaWVsZCI+RmllbGQgRGVmaW5pdGlvbnM8L2Rpdj48ZGl2IGlkPSJzbWFydHlfcGx1Z2lucyI+U21hcnR5IHBsdWdpbnM8L2Rpdj48ZGl2IGlkPSJkZXZlbG9wZXJzIj5EZXZlbG9wZXJzPC9kaXY+PGRpdiBpZD0id2hhdHNuZXciPldoYXQncyBOZXc8L2Rpdj48ZGl2IGlkPSJjb250cmlidXRlIj5Db250cmlidXRlPC9kaXY+PGRpdiBpZD0iYWJvdXQiPkFib3V0PC9kaXY+PC9kaXY+PGRpdiBjbGFzcz0iY2xlYXJiIj48L2Rpdj48ZGl2IGlkPSJwYWdlX2NvbnRlbnQiPjxkaXYgaWQ9ImdlbmVyYWxfYyI+PGltZyBzcmM9ImRhdGE6aW1hZ2UvcG5nO2Jhc2U2NCxpVkJPUncwS0dnb0FBQUFOU1VoRVVnQUFBV1FBQUFESUNBWUFBQURmc3BzQkFBQWdBRWxFUVZSNG5PMmRlWlJrVlpYdVQxVXhWWWtDUWxJYUZTU1JFVGZPL3I2OUx3V3RLTTZDcllnMHlBSzd0VlZRRkpYdXRsVlFXK1hwVTBSWHQ0b0t2TWJoMmJRellqOXQ3VmJScC9qc3B6M1lPR0E3SVNoRHdXT3FlWjZuOTBkRVNsRlVabVZFM0J2MzNzajlXK3RickVveTQ1Njc5N2xmM2p6RFBpRTRqdU00anVNNGp1TTRqdU00anVNNGp1TTRqdU00anVNNGp1TTRqdU00anVNNGp1TTRqdU00anVNNGp1TTRqdU00anVNNGp1TTRqdU00anVNNGp1TTRqdU00anVNNGp1TTRqdU00anVNNGp1TTRqdU00anVNNGp1TTRqdU00anVNNGp1TTRqdU00anVNNGp1UDB5NXdrU1E2dTErdnppMjdJTk13cHVnSE9RTXlyMSt2ekc0M0dJVVUzWkNiVTYvWDVydjZVSk1uQlJlZXZhc3dCY0xLUjF4amxIbE51VStWNkk5WW9zVXRWN3pMeUdqSytLQlJnaE1DaUkwbTVTRlgvMlJUM0dySERsTnVOMktHcWQ1SDhySWljRmtJNGFOaHRjMmJNZ1NyeVFwTFhtR0twRVp0TXVWYUpkVXJzTXVYTnBIeGtZbUppWWRFTkRTRUVFVG1SSW45bnlnZVUyR1hFR2xPdWRmVXVWYTVYWXBlU3Z5WHc0UmpqRTR2T2Iya3hrVk5NdWQyTTk1aHk5M1JLamN0TXVZM2txNGJVdkFOVTlWb2pscGx5NC9UdDA5VktyRFB5bWlHMXpka1BZMk5qaDVJOE96WDd2Nmx4a3lsWDdhK1BtWEt0bWE1U2JaOVVSSnVCOWhtcVdLNnFLMmZRVmxjZlV1WDlTaTRSa2NWRjVMaTBxSExyREIrU3ZiVWhOYjE5OGVMRmo4aXJiUURPNmJhdnQyUVRXMDI1MmNpTDgycWJNelV4eHFNTU9GK1ZQK3UrVmU3bkYrbVVXcTNBcDBJSUJ3eWozVW1TakpucHpVcXNLOXF3Wm9zNkwxRDQ5RER5VzNibW1uSjNhanBvVURlUXllUEd4OGVQeUtwaElyTFlpRnVOM0RSWTIvUjJvUDNtck5ybFRFMnIxVHJHeUl0TjlYWlZybFJpUzFZUGJXcmNGRUtZbTJmN1ZlU0ZxZW5Tb2cxcTlncjNKa21pZWVhNHRDd20wOVIwUTVZQnpkS1FqYnl5TzBhY1JkdFdrZkxSck5ybVBJaUlDQ252N1F4allYbHF6Q3BuKzlKcUFJL1A2VllPOHJmaTRwV2FiZ2l6Y2FKZWdYdXpEcVlTSzJLTWl3WnRtMEcrbkpwdXo3UnR5cFdrWEpCRjdHWTdaUEk0SXo5cXlvMUdMQ05rMTdBZVdGV3VIQnNiT3pUcmU4cnliZDQxdUxMT2I2a2grZG5jZ2tuY21TVEpXUDl0azQ4cXNEeVB0cVhHWlVtUzFMT001U3hobnNiNGRKSmZURlYzRTFoUjFJUGFIVjY3T2N1YlUrWDZvZzNJOWJBY2I4c3l4NldsM1c2ZmtPZWZacXJjQ3NSMzlkTTJjdUpZSlpma21uREtIVm5IZEJTcDErdnp5WGk2R2I3ZGZYdGNYZlNEK3FDd0hNQkxzcmhQVlRtcnUvS2pCUGZsMmtPclJWcW5aSkhqVW1PcWQrY2RUQ1dYdEZxdFkzcHRteXJlbmVHNDhSUnR3MzFwaWpQeWlHM1ZhVFFhaHdONHNTcHZWR0pkbWQ4Y1U5UGJzN2puZmxid3VJYW03V0dVeDVPMTNUNHBOWDBnOTBBU200QjRTUzl0R3hzYk85UTBuNkdLdlpXUy81QlhqS3NHZWV4akdlTmZtT3B2VExsS2ljMGxlQkQzS3lXWEFIakJZUGNlejdiK2xudTZoaUxjQytEa2pMcDYrU0RseXFFRnM4YzNHQkU1elhRSXZ5dzZXbDJyMVJia0ZlZXlreVJKaTVSM21PSmVKVllvc2EzNGg2OFBVZDQ2U0J5TStIVGg5K0RhVDQ1SGVJT1hLbjgzckVBcXNhNlh2ZXVBWEQ3RXRxMklNU0xQV0pjTkFNY1o1WXJPSmcwc04rWE93aCsyQVVYeVY0UEV4SlRWL0VVMHE0UjdzM29HU3Njd0E1bWFQa0JPSER2VHRpbjVnMkcxVFlrdGcvNjVXd0hta01tVHpQQ1oxSFM3UW9ZeUhEUnM5UnVjUnFOeGlKVjRqTnoxZTIwTG96aU8zR2cwRGhubXd2ZlV1S3pkYm5PbTdWUHlWOE5NTklrUDV4bnZnamdvSlo5amhxK2JjcnVOK1Bpb0t0ZjNXMEdzMFdnOHBsdVRwZkQ3Y09XVDQxSlRxOVVXV0tmcTBuQUNDVmtPNExpWnRzK0lXNGVaYUE0NC9sZ1dST1NSUVBzRlN2NGdOZDJvbEtIbHVHZ3BzYTdmc3AweHhrV204RzNTWlJleFppVG5lMHB2eUtyL05zUWs3MURWQy9PTWQ1NGtTVEpHa1F0U3d5OU11VG8xN2Jkd1QrWFZid3pIeHNZTzdSWTlLdndlWEZOTGlWMVpQanVsb2V5R3JLcWZIR0tTVndBNE5jOTRaMDJ6MlJ4WDRNMUtMbEZpaGErZjVXNVRETFFXdVZ0L3VRVDM0WnBLcW5wWFZzOVFxU2k3SVI5SFBtTlliM3BLM0ZlRkxkUXhSaWppWHl1eFFpSEw4OTQwVXpXUnVIcVErQTV6SXRuVnAwWjEyVnZaRFhsaVltS2hLWWV5RGxtSmRYbkdlaEJFNUVRRi9xY3BONnRpK1RBTDkxUkpxbHdwSWljT0V1c1VPS2Q3WWtuaDkrTjZ1Rkxqc3U3cFJLTkgyUTA1aEJCSTNwQjcyNGhOWkR3N3J6ajN3VHdnZWFhcWZzbTBZelJGUHdnVjBhb3N6dUh6WVl0U2F6U1h2SVZRRFVQdXZpWG4zRVpkVmZTaHJiVmFiUUdBTTVYOHJuVk9OZkhKcFY3NkZtV3RxcjQraTF3QTdUZFhkcWZpQ0NzMTNXakFxN1BJY1NtcGdpR0hFQUlwNzgvdHJZVllSc3BiOG9qdi9oZ2ZIejlDVmM0MXcwKzBrNGRNRHdlWVRjcXFzTkFrWHBpK2ZFcU5vMTJWc1NxR0hFSUlwcnd0aHdUdk1OVlZXY2QxT2tTa3BzRHJsUHh0OTBpalNoVHVLYm0yaFJEbVpaa25zcFYyRDlBdCt0NWNIVzNJODV6T1VsQWxRMmF6MmJhTTZ3eWt4bnV5anVtK2FMVmFpUUx2VXVYOTNab1IvdWR3UmlKeHA0cWNtMGZlRkxpa2s3UGk3M08ySzhkanVzcERsUXk1eTd5TWxzRnRVK1UvWlJiSWZkQnNOZzhqY1hVbnZsaXVST1VMOTVSTnFyekx6RTdJTTQ5ay9Bcy81TFRBSEJNcnpPelI5WHI5MFhubXVSUlUwSkJEQ09HZzdxcUR2b3habFN0VDQ0OHpDZUFVQUhpYkVpdXlQZ1BRMVJFaFcweTVPY2I0aER6ek9JbkYrTVR1Q1NtZXp5RkpsVnVOY2tjVzUzRldob29hY2tpUzVHQUFGNXJpWHB1aE1YZE4vR1lBVDg0aWRsTndvS25lN3V0WWM5TkdKYllvOEttUThaanhESmhINEF0bWVyZjVrRk4rSWpZcHVZU1V5eVltSmhZT09jZkZVbFZEbmlUR2VKU1JGNXZwYldaY284cjd0VE5HdTZvN1RMRENsSnRUOG5OcG11KzJhSkxIMml5dUg1SG5BMnFtcTB4NXN5citOZ3pmaUI4Q2dBWVpYNmJLRzAyNXR0dmZIdWpNRGJoNlZhZTZuajVneXJWbXZFTVYvNjNaYkk0WG1lUENxTG9oNzBtOVhwOGZZMFNNOFdrQVRoYVJFNGY1RzlaS2RlQm50YVhFT2lYV2tmZ2hHZiswMFdnY1Bxdzg5a0tqMFRoRVJHb3h4dU5GWkxHck44VVlqOWNrTVFDTkxEYjBWSjVSTXVRaTZTeWZLOTdJcXF6VWRMVXF0NnJLdHpURzUva0Q2c3c2M0pBSFI0RTMrWmh4bi8yaGMzYmZMak5jRjJOOFdnaGhidEg1ZEp6Q2NFTWVIUE1Kbmw0TWVHZDNIZllHSTYvV0pQbURvdlBuT0tYQkRYa3dTUDZWRy9MMDZpejl3M0l6WGFxS2R3UE5XSFRlSEtlVXVDRVBobzNBS2MyNTVKblkzRjJIZlRzcEYxV2h6clRqRkk0YmN2OGtTVExtWlRIM3lLMXl2Um5YS0hrVGdKY0RpNDRzT2tlT1V5bmNrUHNId01uRGpGMHAxU2tSdXRGVXY2Y3FaeTFjdUhDMGk3ODRUcDY0SWZjUEVGODlHMC91WUdlenpjNlUrSXFJbkJKQ09MRG9YRGpPU09DRzNEOUd2cU5vY3h5S0FVTjJtV0o1cDdZQXJ4bFcvUWpIbVhXNElmZFBkNFZGNFlhWmk0Z2QzVnJBcTBoNWY1SWtXblM4SFdma0dSVkRGcEVUR2VONUtmbjNLZmw5QTM1aWhuOGhjSFdhNHB4V3EzVjAxdGNrNDluV1o4VzVNa3FWV3hWWXJzcTdESGdiZ0ViV01Sc2xBRHhGZ1hlbjVGZU4vTEdTTjdsNkU0bWZtdUhmVmZWYUJTNk1NU0tFY0ZEUnVTMk1xaHN5WTN5UktkZXE4aTRsdGs1aE5PdE5zVFExM0pLbU9DZXJhOGNZMFNtTVVyeVo5cXZVdU1sVVZ4UDRKWURYekxycVdqMVNyOWZuSy9BaFUrNzAwMFN5bFJLN09pZm9jSzJSSHc0RkY1RXFoS29hY3F6VmpsSnlpZlY0QmgyQis1VDhMcGs4TG92NHBhWlZQQU52clNyWEcrVGZWZVNGU1pJOEtvdFlqRHFLK0NaVnJ2ZURCb2FpN2FyY0NpUm5GcDMzb1ZJMVEwNlM1T0R1S1J3REdhRXFmeDFqUEw3WmJCNDJTUHpNOE8wU2RONFpTRmVaY2x0S1htOW16MDJTNU9CQjduczIwV2cwRGpmeWpveE9xbkgxb003YWRud216SlpoaktvWnNnSG5XNFpsTGs4NjZhU0IzZzQ3d3hiNlFORWRkOS9DY2xQdVRDbWZBL0NVNElWNytrTEpYK1YyNHJsckp0cE84dnRGOTRPaFVDVkRKbmxORGp2alZyVmFyV01HaWFGQnZseUc5Y2hLN0RSeW1hcXVUeUZYeFJpUEgrUytuQkJVdVQ0MUxkcVFacjFTMCsycDZkS2krMFB1Vk1XUUc0M0c0YWJjbkV1N3lEc0dyYlZRNExqaXR1NGE0ZnNOZUdlcjFVb0d1US9uUVVoNWkva1plcVdSRXB0VjVZVkY5NHRjcVlvaDI0Qmp4dnRKOUU0alB6dElISk1rMGU0UXdaQTZKbGNxK1ZzQXJ4T1IyaUJ0ZHg1T3E5VTZ1ck02cDNnamN1MHBMQi9wL2w0RlF5YmxBM2svSEtxOGY5QzNTeFY1WVk3dFcyK2RNOGQrckNMbnpvb2owUXRFeVp1S054L1hGTS9DWFVYM2o5eW9naUVQWTBJbE5kMXRocThQR3M5NnZUN2ZqR3V5YVJQWG1ISXp5UnNBbkZHcjFSWU0yajVuL3dBNHpoUkxpelllMTVTNnU3dUJaUFFvdXlFRGVMd1M5dzJqYmFucHhpeGlPalkyZGlqSkwzWXJvZlVXSDJKRnFycGJWYjhFNE9Rd0d4ZkhGd3lCTDVUQWRGeFRQNmZiUmRwdkw3cWY1RUxaRFhuSUV5dXJ5R01mbTFWczIrMzJDYWwxMXE4cXNXWGZuWXM3ckxPTWI3T3FmRnhFVHN6cStrNS9kRGNjRlc0OHJta0UvS0xvZnBJTFpUZmtsTHgrV0cxTFRUZUt5TE95am5HOVhwK3ZNZjZocWx5YkVqODA1YzFHK2JrWi9oSEFYMmI1UzhBWm1MbXEzT2NXZkZlcHRMUG9qcElMNVRkay9IS1lpUWJ3dWp6ajdaUWJZTkdSQkZhVXdIQmMwMGhWMTQva2J0T3lHektKVzRlYWJPQnRlY2JiS1RjeHhrVlZMeGcxUzdSMkpDZTV5MjdJWnZxam9TWWFlRTJlOFhiS1RZenhxR0d0SjNjTnBNMWhGQ2U4eTI3SUJENDl4Q1N2QlhCcW52RjJwbVVPZ0FhQWQ2cnF2NmFHVzh6MHR0VHdIMGI1Q0lEbkR1R3RhSjRTK2V3SWRXVW1WYTdNdVI4VVE5a05HY0JMcGxxaGtMVlM0ekkvcm42NE5CcU5Rd0E4bDhRM1RMbGRpWFhUNUdpakV1dU11SE14bVVuNTFIMlJtdDVldE9HNHBoZUJyK1NWLzBJcHV5RzNXcTFqaGppbXR5SFBXRHNkNnZYNm8xWGtwYXE4VVlsMWZlM0NKSllaK2RteHNiRkRzMjZma2UvcExrY3MzSGhjRDVjU1cyS016ODQ2NzZXZzdJWWNRZ2lxdkQvdmRxWEdIYVI4SUs4NHozWmFyZFl4cEZ5a3l0OTE2bkFNUGl4QXlLN3VuNjZaamlXMldxMWtXSnVSWFAwcHkzeVhpaW9ZY296eDJmM3NldXRKeG50OHVDSmJraVJSSTkrbnhBcFRMTS96clRQckRUV204cHVpVGNmMWNDbXhVMVgvVjVhNUxoVlZNT1FRUWxEbGpUbTJhNk1CWDhzanZyT011VUR5WkJLZjdteXV3UEloMW9sZWZjSUpKeHllMVkySXlDazI3Q1dYcnYxS2lWMVo1YmlVVk1XUVJXU3hVZTdJS2NucjhvanRiS0M3Qy9GNVNuN1RsTnU2UjBVVjlNQWkwd0xtcEZ4bVJMNS9tYmxtTG1JWnlWZGxtZVBTVVJWRERpRUVNenNoanpabEhkTlJCMWgwcElxY2E2by9VbUxkZmxaR0RFMnEzRXJLWlZuZXE2cCszcmRTbDBPcWNsYVd1UzBsVlRKa1lOR1JyVllyeVdyVlJXcTZWSTQ2NnBFaGhBTXlEdXZJMFd3Mnh3MTRZMnA2TzRFVlpWMnJxOFNLUnFPUjJkQkZDQ0VZK1VVMzVlSkV5RG9EWGlNaWttVmVTMG1WREhrUzFmWkpxV25ma3k2cTNKcWFyZ1lXSFpsVkhFY1JzcFdTOG41VnJqUmlXUldXZ25YZmtqTmZMU01pcnpCbFNRK3pIV1hwNzREMm03UE9aMm1wb2lHSEVJSW15UjkwS3NIcDNUTytOckdyODhEeTRwRXNUREk0Y3dFOHhReWZTVTIzRzFISm1nNnEvSFVld1NINUhGUGVScFJqaUdhMGhhV212RHRWUFRlUFhKYVdxaHJ5SkdUN09TbjVmVk91VFUyWDd1TlB5dzNkNUs1VnhTVmhGUGUvRDBDOVhwOVB4dE5WNVZ1ZDJCVTVLWmVaVmlWSjhxaThZaVlpcHhseHA2bitQMU91SHNhSk5pTXZZb2RDbHFlbUQ1anEzU1QvUEsvOGxacXFHL0lralViakVCRTUwUXpuSy9CdW8zeUFJbThYa1Q4V2tZbXNyMWRsWW94SEFYaTVHWDdTOTA2NU1vdFlKaUtMODQ0ak9YR3N4dmgwQUs5UjRHOEF1ZHpWdTh6NFhqSytsakUrTzBtU3NienpWbXBHeFpDZDZRSFFVT0ROUnR6WjNTazNsUG9nQlJueUdzWjRldEV4ZDV5ZWNVTWVYUUFjQjhqbHFlbHFVeXczb3ZTVGNwbjBNZVY2QUdjV0hYL0g2UmszNUpGaW5vZzhOYVY4TGpYdVVNaXNyT3ViR3RjQWVFclJ5WENjbm5GRHJqYTFXbTBCZ0RNSWZLYzdEREVLazNLRDlUSGxTaEdwRlowYngra1pOK1Rxa1NUSm1BSG5LM21US2RlTzNLVGNnRXFObTRKdjluR3FpQnR5TlFEUUlQbFdKWmNvc1dLa0orVUc3V09xLzF4MHZoeW5MOXlReTB1bm9CS3ZNT1hxVGtIMjJURXBONGhTMDFVR3ZLVG8zRGxPWDdnaGw0cDVHdVBUVmZWYVUrNzB3emI3RUxHajZDUTZUdCs0SVJmTHdvVUxId0hnVEpJM0tMR2xzMFN0Qk1aV1FTbXhJZ1hPS0Rxbmp0TTNic2pEcDlWcUhhMHFyMURsejh5NHhwUWJpamF6eW92WVljQzNpODZ0NHd6RUtCbXlpTlJVNUU4WTQyc1Z1SVRrbndONGJxdlZPaWFQNi9WQ2pMR3B3Q1dxdkVzaHkzMVNMdU4rcGR4YVFGcm5kVGJmNEZReW51ZnFUd3E4VzBST2lUR2lnQnlXaTZvYmNxdlZTa2hlYjhxTjFsbUQrNUMzemRTNEpqVmRhc29OcXJoOG1PWmNyOWNmbmFiOG1CTHJVcU5QeXVYUm40aWRLZkhMWnJONTJMRHlDdUE0ZzN4TmlTMUszRWRnWGJlbzFVNVhYOXF1bExWSzNLZks5VXArYzlhYWMxVU51ZFZxSFVQZ0M5WmJqZHB0cHJ3N3Bid2g3L0tiWm5pbmtjdTYxeXpjdUVaVUcxVDFrM25tY1UrU0pLa3JlWk1xVjViZzNrZGJ4TEtVK0VZSVljNnc4bHNLcW1qSUFCcEtMdW43QUUxaTB4N0h4MmVhOEVhamNZZ3E3ekppVStHZGVrU1ZHamVaY2pQSloyU1p1K2t3eEhkMlRzOHUvdjVubFlnZFpMeDRXSGt1bkNvWmNvenhxUEh4OFNOTW1kbEtoRXN2dlhSdVZyRk0wN1JWbHZQbFJrMUtiT25VNXRCVkZMa2dxNXpOQktQOFBNcys1K3BaRHdCNHdUQnpYaGpWTXVUbTB6SnZrK25kNUxHUHpTS1d2bTQ0NDc2aVhKOGExNWpwZjZuS0sxdXQxdEZaNUtrWFNMbkFsS1U4UDNDVzZRRlYrZnl3OHo5MHFtTElNY2FucWZMWHViVEw5TjhHamFPZkdwR1pWcGx5czVMZlZaV3p4c2JHRGgwME4vMUNrY3ZNejlFcmt6YkVHQmNWMVIrR1FsVU1XWlUzNXRZbVlvdXF2S0xmR0ZMa0RUNW1QSWl3WElsZFpyaU9iRDhqbE9DWXJiR3hzVVBUemhyeEVzVEh0WWUyaDFHZTZLdUNJWk44V1dyTSs4RE56YUdQQ21IMWV2M1JRMmpiYUluWVljWmxxWEdOa1ZjTTQ3aWxYaUZ4ZGVGeGN1MUwyd3o0V3RIOUl6ZXFZTWltdURmdmRuVk9XZVo3ZW8wZkdjOHo1ZllTZE5SU3E3dG1kNFdxM21YQTI4cDh6cUdJMUV6Vmh5cEtxdFIwNmZqNCtCRkY5NU5jS0xzaGt4UEhxdkwrWWJXdjEvajVqcnRwdGNHTWExVDVNMVY1UlZVT3NGU1JsNXIva2kydGxGaEg4cnlpKzBrdWxONlFZM3laRWtPWjVWYmx5bDVNSTBtU01mcmExSWNvTlYydHhCYVNOd0E0YytIQ2hZL29yMmNXaDVML1dYUWNYZE5MbGQ4dHVwL2tRdGtOdVZ1S2NsaUpYdHVkVkpvUkFFNzFpWjlPVG8zWW9TcWZqekUrTFpSZ1VtNFFpbzZuYXdaOVRybSs2SDZTQzJVMzVKVDQ2YkRhUnNndUE4NmZhZHZJK05xK2R3dFdXY1FPSTVhWmNqV0pENDlTOWI3eDhmRWpmR3QwK1RXeXgzU1YzWkJKM0RyVVpBTnZtMm5iakh4SDBSMXphSG1ibkpRamw1QjhLNEJHWHgydTVNUVlGNWxpYWRIeGR1MVhhMnUxMm9LaSswdm1sTjJRaC9tR2JNcmRLdkw2bWJhTjVGK1ZvR1BtRnd2bGVsV3VKZkZUQUMrdnlxVGNJRXhNVEN6MFpZeVYwTVlRd29GRjk1Zk1LYnNoRzNEZEVKTzhvWmM5ODBEN0hPdVUvU3k2YzJhcFZhcmNhb1p2ayswL0dzbTNrR21vMSt2emRZalBnNnRQRVp1SzdpdTVVSFpEQnVLcmgxVkhXSlgzYTVMWVROdVdKSWwyYXkwWDMwRUh6RWxxM0pGU1BpY2lUdzBoWkZad3FZcVlGeElxdlZUMXhxTDdTUzZVM1pDVEpHa05xK3loRWx0Q2oyWmtWU3c4USt3d3hmTFVkQlVnbDQvU3BGd1dESGxsajZ0MzdSelprcHhsTitRUXdyeWgxWW13M3Jka211bjNTdEJCOXg5M1lvc3FWNmJHT3dDOGladzR0dGQ3blMwQXlUTjlZcSs4VW5KSmpQR0pSZmVUWEtpQUlRZFMzbTQ1ajlVcXVRVEFVM3FOSDlsS2xiaXY2RTY2NzN2Q09pWFhtdUVuSkY4R0xEcXkxL3VicmZoeFcrVlZhbnA3MGYwak42cGd5Q0dFa0JwemUwQUkyVVhnQy8zRzBBeGZLODk2WkYybHlxMnEraTB5bmw2djErZjNlMSt6R1lwY3BNaS9ob3FyTjZYR1phbzY0M21leWxFVlF3YncrTHdXN0tlR1d3WThWSEd1RlhwMkhwYWJjaHVKVHdQSms4TXNuNVRMQ2lWL29NVE9vazNJMVpFcXR4cHhkZEg5SWxlcVlzZ2hoS0F4L21IbWJTS1c5Ykt5WWlwaWpNY1BhOFZGYXR4aHhESWxWbERrZlZtMDM5azNxZkdlb28zSTFaRXFmMWQwZjhpZEtoa3ltODIyQWhjUzJaMWJKeUsxckdLcEt1Zm1GamRpTTRFVnFlbnRCcnl4Mld5T1o5VnVaM3AwQ09WZlhWTXJOZDFOOHZ0SmttalJmU0YzcW1USWt3RHhuWVRjT1ZCYlRHOWpxNVZtWFZlMVhxL1B6KzZnVTEydnhEcFYzcWdpNS9xa1hERUFhQkQ0WVdwYTRMRFVyTlVHSlg5VmRCOFlHbFUwNUJCQ0lPVU5xZWtHVTI3b3NRMnJsUHpQUE5mZTFtcTFCV1o2VzU5MW5GZWxwdHRUOG5vVE9hM1JhQnlTVnp1ZDNraUpyL2lwNHNOUmFycGJsU3NOK0plaTh6NVVxbXJJazVEeUFTVjJkYzF2cWdtWXphcGNyOFI5SnZLc3JLNjlQMVRrRmQyekFOZE9WY2crTmU1SVRWZDNWMFo4a2t5ZUZFYjV6TENLTXo0K2ZvU1MzN1RPZkVIMU5nV1ZYSjFmZUxqWFRQOXJOdFJPZVJoVk4rUkp5T1J4cEx5RnhEZFN3eThNdU1WTWYyVGtOUlM1b01oQzZVbVNQQXJBR1NubFk2bmhQd3k0eFNnL1RvbHZBUEdkclZicm1LTGE1dlRIeE1URVFoRTV4UXhmVG9sZmRpcmh1ZnBSYXJyVWdGc011RTVWWDlwb05CNVRkSDRMWTFRTTJYRWNwL0s0SVR1TzQ1UUVOMlRIY1p5UzRJYnNPSTVURXR5UUhjZHhTb0lic3VNNFRrbHdRM1ljeHlrSmJzaU80emdsd1EzWmNSeW5KTGdoTzQ3amxJUmhHN0lwVnh2d0FoRlo3SEs1WEpva05qRXhzVENFY0dEUmZsZzRRMzlESm5hWjZlck9LUmN1bDJ1Mkt6VXU2NTRzdjhGVXZxY2lydzhoSEZDME54WkNBVy9JTHBmTE5iVTZwOHh2QnRxdkM3UHRPREkzWkpmTFZVWXBzVldKTFNHRWVVWDc1TkJ3UTNhNVhDWFhkaEY1Wk5GZU9SVGNrRjB1VjltbHhDNmcvZUtpL1RKMzNKQmRMbGNWcE1xVml4Y3ZQcnBvejh3Vk4yU1h5MVVWS2ZuYm9qMHpWOXlRWFM1WFpVUnNJbmwyMGI2Wkc3VmFiVUdxOUpOMFhTNVhKYVRLbFVYN1ptN1VhclVGcVhGVDBVRjJ1Vnl1bVNnMXJoR1JFNHYyemx6b0RsbHNLenJJTHBmTE5WT3A2aWVMOXM1Y3FOVnFDNVRZVlhTQVhTNlhhNlpLamN1SzlzNWM2TDRoRng1Z2w4dmw2a0U3aS9iT1hGaTBhTkdSSlFpdXkrVnl6VnpFbWxxdHRxQm8vOHdja3UzQ2crdHl1Vnc5U0pYcmt5UTV1R2oveklONVJRZlg1WEs1ZXBFU3U0bzJ6dHd3NWM2aUEreHl1Vnd6MVVqdjJGUHl0MFVIMk9WeXVXWXFVcTRvMmpkemc0d1htNzhsdTF5dWF1aUJHT01UaS9iTjNMajAwa3ZubGlESUxwZkx0VitwOHE2aVBUTjNGUEZOUlFmYTVYSzVwcE1xMThjWWp5L2FMNGRDMGNGMnVWeXVhV1gybWFKOWNxZ1VIbkNYeStYYXAzQnYwZjQ0ZEh3ODJlVnlsVkFiVk5XSzlzZENVSkd6ekZkZHVGeXVncFdhN2pibDdoREMzS0o5c1hCTWVWdlJDWEc1WExOV3EweTVyV2dmTEJVcThpZXBjWWNTL3Nic2NybnlsL0VlVTI0emtXY1Y3WCtsUlVWZXFlUk5xZW4ydlFQWXJhZTh6WlFickhNK244dmxjczFJU3F4VDVWWlQzSnVTZnk4aXA0UVE1aFR0ZVpXaTJXd2V0bWpSb2lQcjlmcDhsOHZsNmtlMVdtMUJvOUU0SlBnWXNlTTRqdU00anVNNGp1TTRqdU00anVNNGp1TTRqdU00anVNNGp1TTRqdE9sMVdvZDAyZzBEdS8zNTVNa3FZZDliQkJvdFZySDdGVVRkMTZqMFRoOFVtR3ZOYTFrKzQvMitMemZVNi9YNXdPTGp1eTNmWTdqT0ZWZ0xza2JUTGxSbFZ0RjVQbjlmSWdDRjQ2TmpSMjY5OWVCNUprS1hEajU3M2E3ZllMdHNYT1VuRGgyeis4bjhJVVF3b0VLdks3ejh6ZzFoQkNTSkZFUk9hMmZ0am1PNDFRQ0FJMUpZd1FXSFZtcjFSYUl5UFBKZURZcEgrMXVqUTBpVWxQZ2c2VDg5eVJKRGc0aHpGSGdRZ0tmRUpHbmlzZ2ZoeEFPWXJQWkJ1UnlCZjY2MFdnY1BwVWhkejhqaE5BeFcwQ3VVcEUvVTVYUGh4RG1BSGdKMlg2T1VYNnV3THRpakUwZ2VYSzN6UzhtNVNOQSs1enV2NThySXM4bmNEVVp6eDVxQUIzSEtUZk5abk1jUUtQWmJCNDJ4YmNjUk1aWDFldjErVmxldDJPcTAxNTNYeHhBNHBkSy9vcHNQeWVFRUFDNUNvZ3ZUNUxrWUNXL21TVEpvMVRsMmlSSnhnQ2Nxc0FsWkh5UkFtOEtJUnc0TmpaMktJRlBqSTJOSFJwalBHcHNiT3hRRVhrV0VOODQ1UnN5OERWVitWSUlJWmpLLzI0Mm00ZHB1MzBTaWUrRUVPYW95clVoaEdEQWRaMTdhejlEUmY0TVNKNUp5bnRENXhmQ2gyS01UNkRJWmFSY0ZFS1laOERYczQ2cjR6Z1ZScFhyVGJtYkltL2YxLytQTVQ3QmxMc24zejVud0R5Z0dXZHczYTJkdDExNXkrVFhGaTVjK0loV3EzWE1kRC9YYkRZUFUrQnZWTGxWWTN3ZUlGZkZHQmVGRUFKRjN0NXByL3dHa010SnVaS1VEM1QrKytCd3c2UWhBOG1UU1hrdktWZVE4cDZwREptTXJ5TGplYlZhYmNHaytZWVFnZ0gvR0tZeFpBVXVtVHpGdUd2T0YxSGtzbmE3emM3M3laV3RWdXZvR2NiVmNaeFJaMytHSEVLWUMrRE1FTUlCTS9rOE1ua1N5UnRtY04ySEdUSkZMaURseXFrLys5akhrc25qUWdnSHF2SmZTWGtISUZlMTIrMFRRZ2lCd05WSmtyUlU1VnNQdVJid0xtMjNUL3I5NTNRTnVmdDk4MktNVDV6T2tDY21KaFoySi9VT1VNby9oUkJDbzlFNGhPVDFZVHBERm5tbGlwelYrVnI4VXhVNWx5S1h0VnF0cFBNMU4yVEhjZlpnQm9ZOHI5Rm9QQ2JzWmNneFJwRHRaMmlTV0FoaFh2ZkxjenB2bS94K285RjRUUGZuRHByaXVuc2I4b0Vrcnlmd2lUMSs5aUVySVRSSnpJZzFTdXdpY2F1SVRBQnlsYXA4dkR0bS9IY2hoRURHOHd5NGpwUXJHZVBwU1pMVVNYNVZnUStLeUdtL04yVGdVeFI1bndJZm9zaGxNNW5VSStVZEJLNVc0RzlKK1Z6WXc1Qkovb01DbDA0YThzS0ZDeCtoS3ArbnlQc011SzVXcXkxd1EzWWNaMHIyWjhoSmtyUk11YnRydkNIR3VNaUFuNmh5cXdMTHV6V3JIeGdmSHorQzVGZVYyTm45Mm5aVGJnZndsQ211K3hCREpuR3JFcnU2Qnhac04rWDJLY2FYNXlSSjhxakpmd0J5VlpJa1l5THl5TDNhZmZCZUt5bm03djA5SVlTd3I2L3RqKzduN3F1czQ1eDlyTjU0U0hzZHgzR21wRmREVnBXUG04cjNKbzJzMld3ZXhoaFBmL0R6NHYvb2Q4aENWZjdQZEVNVysyTFNrSHY1R2NkeG5GTFNxeUdUL0dKM01tdUt6eHV1SVljUURneCtDb1RqT0tOQXI0WU00R1FsTml2NVhZM3hlV0d2UDkwTE1HVEhjWnpSb0ZkRERpRUVvQmtWK0pRU1c3cVRhNmM5K0hsdXlJN2pPSDNSanlGUE1qRXhzVkNCVDVseWU1SWsydms4TjJUSGNTM0hobEFBQUFEWlNVUkJWSnkrbURSa0JUNElvTEduUWdnSFRtZklYZWFZOGdFQTU0Y1FBaWxYS1BtREdWejM0ZXVRaWUrUThyRXM3c3R4SEtkeVRCcnl2aVFpOHZCSnZYaGVkL2ZaZ1NHRUE4aDRkbmQ1MitORENBSEFYNXB5WTNjMzJ0dzk2MERzZGQxOUdMSjh6QlMzZDFkTkhCUWVYTi9zT0k0eit2UnV5UEplVlc3dHJqZmVhY3JWazlYT1FnZ2hTWkpIbWNxUFRMbmJpQjFUVlQzYmx5RW5TZEpTY3Nua1p6ZWJ6Zkg4SStBNGpsTmhHbzNHSWExV0swbVNwQlgydmFWNmpvaE03Szh1eFJUTVk3UFo5aDFzanVNNGp1TTRqdU00czQzL0Q3QkVmWVRvK2FpOUFBQUFBRWxGVGtTdVFtQ0MiIGFsdD0iTElTRSBMb2dvIiAvPjxoMz5HZW5lcmFsIEluZm88L2gzPg0KICAgIDxwPlNpbXBseSBwdXQsIExJU0UgYWxsb3dzIHlvdSB0byBjcmVhdGUgbGlzdHMgdGhhdCB5b3UgY2FuIGRpc3BsYXkgdGhyb3VnaG91dCB5b3VyIHdlYnNpdGUuIFlvdSBjYW4gbWFrZSBhIHNpbXBsZSBGQVEgb3IgVGVzdGltb25pYWxzIGZlYXR1cmUgd2l0aCB0aGlzIG1vZHVsZS4gVGhlIHdlYiBkZXZlbG9wZXIgY2FuIGRlZmluZSBmaWVsZHMgdG8gY29uc3RyYWluIHdoYXQgZGF0YSB0aGUgY2xpZW50IGNhbiBlbnRlci4gQSBudW1iZXIgb2YgZmllbGQgdHlwZXMgY2FuIGJlIHNwZWNpZmllZCAtIHRleHQgaW5wdXQsIGNoZWNrYm94LCB0ZXh0IGFyZWEsIHNlbGVjdCBkYXRlLCB1cGxvYWQgZmlsZSwgc2VsZWN0IGZpbGUsIGRyb3Bkb3duIC0gYW5kIGFkZGl0aW9uYWwgaW5zdHJ1Y3Rpb25zIGNhbiBiZSBzZXQgZm9yIGVhY2ggdHlwZSwgZm9yIGV4YW1wbGUsIGlucHV0IGZpZWxkIHNpemUsIG1heCBsZW5ndGgsIFdZU0lXWUcgZWRpdG9yLCBwb3NzaWJsZSBkcm9wIGRvd24gdmFsdWVzLCBwb3NzaWJsZSBmaWxlIGV4dGVuc2lvbnMsIGRpcmVjdG9yeSBwYXRocyBmb3IgZmlsZSBzZWxlY3Rpb25zLCBkYXRlIGZvcm1hdHMsIGV0Yy4uPC9wPg0KICAgIDxwPkFuIGltcG9ydGFudCBub3RlIG9mIHdhcm5pbmcgLSBUaGlzIGlzIG5vdCBhIGNvbnRlbnQgY29uc3RydWN0aW9uIGtpdCwgc3VjaCBhcyBpbiBEcnVwYWwuIEl0IGlzIG1lYW50IGZvciBzbWFsbCBsaXN0aW5ncywgbm90IHRvIHN0b3JlIHRob3VzYW5kcyBvZiByZWNvcmRzLiBUaGlzIGlzIGJlY2F1c2Ugb2YgdGhlIGRhdGFiYXNlIG1vZGVsIHVzZWQgKEVBVikuIEFsc28sIGVhY2ggYml0IG9mIGRhdGEgeW91IGVudGVyIGlzIHN0b3JlZCBhcyBURVhUIGRhdGEgdHlwZSwgcmVnYXJkbGVzcyBvZiB3aGV0aGVyIGl0IGlzIHZhcmNoYXIsIGJvb2xlYW4sIHRpbWVzdGFtcCwgZXRjLjwvcD4NCiAgICA8ZGl2IGNsYXNzPSJyZWQiPllvdSBjYW4gaW1wb3J0IGluc3RhbmNlcyBmcm9tIExpc3RJdEV4dGVuZGVkLiBJZiB5b3UgaGF2ZSBpdCBpbnN0YWxsZWQgeW91IHdpbGwgc2VlIGEgdGFiLCA8c3Ryb25nPkltcG9ydGluZyBGcm9tIExpc3RJdEV4dGVuZGVkIEluc3RhbGxhdGlvbnM8L3N0cm9uZz4sIHdpdGggbW9yZSBoZWxwLi4uPC9kaXY+DQogICAgPC9kaXY+PGRpdiBpZD0iZHVwbGljYXRpbmdfYyI+PGgyPkNyZWF0aW5nIE1vZHVsZSBJbnN0YW5jZXM8L2gyPgoKPHA+VGhpcyBtYWluIGFuZCBiYXNlIG1vZHVsZSBpcyBhIDxzdHJvbmc+Q29udHJvbCBQYW5lbDwvc3Ryb25nPiBmb3IgY3JlYXRpbmcgb3RoZXIgPHN0cm9uZz5MSVNFIE1vZHVsZSBJbnN0YW5jZXM8L3N0cm9uZz4uPC9wPgo8cD5UbyBjcmVhdGUgYSA8c3Ryb25nPkxJU0UgTW9kdWxlIEluc3RhbmNlPC9zdHJvbmc+LCBzaW1wbHkgZ28gdG8gPHN0cm9uZz5JbnN0YW5jZXM8L3N0cm9uZz4gdGFiIGFuZCBjbGljayBvbiA8c3Ryb25nPkNyZWF0ZSBJbnN0YW5jZTwvc3Ryb25nPiBidXR0b24uPC9wPgo8cD5NYWtlIHN1cmUgeW91IGZvbGxvdyB0aGUgQ01TTVMgbW9kdWxlIG5hbWluZyBjb252ZW50aW9uczogdXNlIDxzdHJvbmc+YSAtIHo8L3N0cm9uZz4gY2hhcmFjdGVycyB3aXRoIG5vIHB1bmN0dWF0aW9uIG9yIHNwYWNlcyB0byBiZSBzYWZlLjwvcD4KPGRpdiBjbGFzcz0id2FybmluZyI+CiAgPHA+PHN0cm9uZz5BbGxvdyBzeXN0ZW0gdG8gdXBncmFkZSBpbnN0YW5jZXMgYXV0b21hdGljYWxseSB3aGVuIExJU0UgaXMgdXBncmFkZWQ8L3N0cm9uZz4gb3B0aW9uIGlzIHNlbGVjdGVkIGJ5IGRlZmF1bHQgaW4gdGhlIGJhc2UgTElTRSBtb2R1bGUgb3B0aW9ucyBwYWdlLjwvcD4KICA8cD5XaXRob3V0IHRoYXQgb3B0aW9uIHNlbGVjdGVkIExJU0Ugd2lsbCBub3QgaW5zdGFsbCB0aGUgbmV3IGNyZWF0ZWQgaW5zdGFuY2VzIGF0IGNyZWF0aW9uIHRpbWUgYW5kIHdpbGwgbm90IGJlIGFibGUgdG8gc2V0IG9wdGlvbnMgb3RoZXIgdGhhbiB0aGUgaW5zdGFuY2UgbmFtZSwgaW4gd2hpY2ggY2FzZSB0aGUgaW5zdGFuY2VzIHdpbGwgaGF2ZSB0byBiZSBpbnN0YWxsZWQgdmlhIE1vZHVsZSBNYW5hZ2VyLCBhbmQgaXRzIG9wdGlvbnMgc2V0IGFmdGVyIGluc3RhbGwuPC9wPgo8L2Rpdj4KPGRpdiBjbGFzcz0iaW5mb3JtYXRpb24iPgogIDxwPkxJU0Ugbm93IGhhcyA8c3Ryb25nPm9wZXJhdGlvbiBtb2Rlczwvc3Ryb25nPi4gVGhlc2UgYXJlIG11dHVhbGx5IGV4Y2x1c2l2ZSBhbmQgY2FuIG9ubHkgYmUgc2V0IG9uIHRoZSBpbnN0YW5jZXMgY3JlYXRpb24gcGFnZS48L3A+CjwvZGl2PgoKPGgzPk1vZHVsZSBJbnN0YW5jZXMgTW9kZXM8L2gzPgo8cD5MSVNFIGluc3RhbmNlcyBjYW4gaGF2ZSBub3cgdGhyZWUgZGlmZmVyZW50IDxzdHJvbmc+b3BlcmF0aW9uIG1vZGVzPC9zdHJvbmc+OjwvcD4KPHVsPgogIDxsaT48c3Ryb25nPkxpc3Q8L3N0cm9uZz4gKGRlZmF1bHQpPC9saT4KICA8bGk+PHN0cm9uZz5HbG9iYWw8L3N0cm9uZz48L2xpPgogIDxsaT48c3Ryb25nPkxvY2FsPC9zdHJvbmc+PC9saT4KPC91bD4KCjxwPlRoZXNlIGFyZSBtdXR1YWxseSBleGNsdXNpdmUgYW5kIGNhbiBvbmx5IGJlIHNldCBhdCBjcmVhdGlvbiB0aW1lIGFuZCBvbmx5IGlmIHRoZSA8c3Ryb25nPkFsbG93IHN5c3RlbSB0byB1cGdyYWRlIGluc3RhbmNlcyBhdXRvbWF0aWNhbGx5IHdoZW4gTElTRSBpcyB1cGdyYWRlZDwvc3Ryb25nPiBpcyBzZWxlY3RlZC48L3A+CjxwPk90aGVyd2lzZSB0aGUgZGVmYXVsdCBtb2RlIHdpbGwgYmUgPHN0cm9uZz5MaXN0PC9zdHJvbmc+IHdoaWNoIGlzIHRoZSB1c3VhbCwgd2VsbCBrbm93biwgaW5zdGFuY2UgYmVoYXZpb3VyIDxpPihtb3JlIGFib3V0IG1vZGUgcyBvbiA8Yj5IZWxwID4gSW5zdGFuY2UgTW9kZXM8L2I+IHRhYik8L2k+LjwvcD4KCjxwIGNsYXNzPSJtX3RvcF8yNSBtX2JvdHRvbV8yNSI+QXMgbGlzdCBtb2RlIGlzIHRoZSB1c3VhbCwgYW5kIGRlZmF1bHQsIExJU0UgSW5zdGFuY2UgYmVoYXZpb3IgYW5kIHRoZSBvbmUgeW91IHdpbGwgdXNlIG1vc3Qgb2Z0ZW4sIHdlJ2xsIHVzZSBpdCB0byBleHBsYWluIHRoZSBwcm9jZWR1cmUgdG8gY3JlYXRlIGEgTElTRSBpbnN0YW5jZS48L3A+CjxwPllvdSB3aWxsIGJlIGFibGUgdG8gc2VsZWN0IGEgZmV3IG9mIHRoZSBvcHRpb25zIGF0IGNyZWF0aW9uIHRpbWUgYXMgbG9uZyBhcyB5b3UgaGF2ZSBMSVNFIHNldCB0byBhdXRvbWF0aWNhbGx5IGluc3RhbGwgbmV3bHkgY3JlYXRlZCBpbnN0YW5jZXMuPC9wPgo8cD5Zb3UgY2FuIHNldCB0aGUgaW5zdGFuY2UgPHN0cm9uZz5GcmllbmRseSBOYW1lPC9zdHJvbmc+IGFuZCA8c3Ryb25nPk1vZHVsZSBBZG1pbiBEZXNjcmlwdGlvbjwvc3Ryb25nPiBvbiB0aGUgPHN0cm9uZz5DcmVhdGUgSW5zdGFuY2U8L3N0cm9uZz4gZm9ybS48L3A+CjxwPllvdSBjYW4gYWxzbyBjaG9zZSB0byBoaWRlIG9yIHNob3cgdGhlIDxzdHJvbmc+YWxpYXM8L3N0cm9uZz4gZmllbGQgYW5kIHRoZSA8c3Ryb25nPlVSTDwvc3Ryb25nPiBmaWVsZCwgYW5kIHdoZXRoZXIgb3Igbm90IHRvIHVzZSB0aGUgPHN0cm9uZz50aW1lIGNvbnRyb2w8L3N0cm9uZz4gZmVhdHVyZSBvbiB0aGUgaXRlbSBlZGl0b3IuPC9wPgo8cD5BZGRpdGlvbmFsbHkgeW91IGNhbiBzZXQgdGhlIDxzdHJvbmc+TW9kdWxlIEFkbWluIFNlY3Rpb248L3N0cm9uZz4gaS5lLiB3aGVyZSB0aGUgbW9kdWxlIGxpbmsgd2lsbCBhcHBlYXIgaW4gdGhlIGFkbWluIGNvbnNvbGUgb2YgQ01TTVMuIFlvdSB3aWxsIGFsc28gaGF2ZSB0aGUgb3B0aW9uIHRvIGhhdmUgYSBzZXBhcmF0ZSA8c3Ryb25nPlNldHRpbmdzPC9zdHJvbmc+IG1lbnUgZW50cnkgaWYgeW91IHdpc2ggYnV0IGl0IHdpbGwgYWx3YXlzIGJlIHNldCB0byBzaG93IHVuZGVyIHRoZSA8c3Ryb25nPlNpdGUgQWRtaW48L3N0cm9uZz4gc2VjdGlvbi48L3A+Cgo8ZGl2IGNsYXNzPSJpbmZvcm1hdGlvbiI+CiAgPHA+TElTRSBub3cgY2FuIGhhdmUgc2VwYXJhdGVkIHNldHRpbmdzIG1lbnUgZW50cnkuIFRoZSBvcHRpb24gaXMgb25seSBwb3NzaWJsZSB3aGVuIHRoZSBpbnN0YW5jZSBpcyBpbiA8c3Ryb25nPk1vZGUgTGlzdDwvc3Ryb25nPi48L3A+CjwvZGl2PgoKPHA+QWZ0ZXIgdGhlIG1vZHVsZSBoYXMgYmVlbiBjcmVhdGVkIGEgbmV3IGluc3RhbmNlIHdpbGwgYmUgaW5zdGFsbGVkIGFuZCBsaXN0ZWQgaW4gb3JpZ2luYWwgTElTRSBtb2R1bGUgdW5kZXIgdGhlIDxzdHJvbmc+SW5zdGFuY2VzPC9zdHJvbmc+IHRhYi48L3A+CjxwPllvdSBjYW4gYWx3YXlzIGNoYW5nZSB0aGUgbW9kdWxlIGZyaWVuZGx5IG5hbWUgb25jZSBpbnN0YWxsZWQgdW5kZXIgPHN0cm9uZz5PcHRpb25zPC9zdHJvbmc+LjwvcD4KPHA+VG8gY2hhbmdlIHRoZSBpY29uLCByZXBsYWNlIDxzdHJvbmc+L21vZHVsZXMvPGVtPiZsdDtMSVNFTmFtZU9mRHVwbGljYXRlJmd0OzwvZW0+L2ltYWdlcy9pY29uLmdpZjwvc3Ryb25nPi48L3A+CjxwPlRvIGNoYW5nZSBBZG1pbiBzZWN0aW9uIG9mIHRoZSBtb2R1bGUsIHNpbXBseSBzZWxlY3QgYXBwcm9wcmlhdGUgc2VjdGlvbiBmcm9tIERyb3Bkb3duLiBNYWtlIHN1cmUgeW91IGNsZWFyIHRoZSBjYWNoZSBhZnRlciB0aGVzZSBjaGFuZ2VzLjwvcD48L2Rpdj48ZGl2IGlkPSJtb2Rlc19jIj48aDM+TW9kdWxlIEluc3RhbmNlIE1vZGVzPC9oMz4KPHA+TElTRSBpbnN0YW5jZXMgY2FuIGhhdmUgbm93IHRocmVlIGRpZmZlcmVudCA8c3Ryb25nPm9wZXJhdGlvbiBtb2Rlczwvc3Ryb25nPjo8L3A+Cjx1bD4KICA8bGk+PHN0cm9uZz5MaXN0PC9zdHJvbmc+IChkZWZhdWx0KTwvbGk+CiAgPGxpPjxzdHJvbmc+R2xvYmFsPC9zdHJvbmc+PC9saT4KICA8bGk+PHN0cm9uZz5Mb2NhbDwvc3Ryb25nPjwvbGk+CjwvdWw+Cgo8cD5UaGVzZSBhcmUgbXV0dWFsbHkgZXhjbHVzaXZlIGFuZCBjYW4gb25seSBiZSBzZXQgYXQgY3JlYXRpb24gdGltZSBhbmQgb25seSBpZiB0aGUgPHN0cm9uZz5BbGxvdyBzeXN0ZW0gdG8gdXBncmFkZSBpbnN0YW5jZXMgYXV0b21hdGljYWxseSB3aGVuIExJU0UgaXMgdXBncmFkZWQ8L3N0cm9uZz4gaXMgc2VsZWN0ZWQuIE90aGVyd2lzZSB0aGUgZGVmYXVsdCBtb2RlIHdpbGwgYmUgPHN0cm9uZz5MaXN0PC9zdHJvbmc+IHdoaWNoIGlzIHRoZSB1c3VhbCwgd2VsbCBrbm93biwgaW5zdGFuY2UgYmVoYXZpb3VyLjwvcD4KCjxocj4KCjxoND5MaXN0IE1vZGU8L2g0PgoKPHA+VGhpcyBpcyB0aGUgdXN1YWwgTElTRSBJbnN0YW5jZSBiZWhhdmlvciBhbmQgdGhlIG9uZSB5b3Ugd2lsbCB1c2UgbW9zdCBvZiB0aGUgdGltZS4gSWYgeW91IGFyZSBmYW1pbGlhciB3aXRoIExJU0UgeW91J2xsIHNlZSB0aGUgdXN1YWwgaW50ZXJmYWNlIG9uIHRoZSBzZWxlY3RlZCBBZG1pbiBzZWN0aW9uLjwvcD4KCjxkaXYgY2xhc3M9ImluZm9ybWF0aW9uIj4KICA8cD5MSVNFIG5vdyBjYW4gaGF2ZSBzZXBhcmF0ZWQgc2V0dGluZ3MgbWVudSBlbnRyeS4gVGhlIG9wdGlvbiBpcyBvbmx5IHBvc3NpYmxlIHdoZW4gdGhlIGluc3RhbmNlIGlzIGluIDxzdHJvbmc+TW9kZSBMaXN0PC9zdHJvbmc+LjwvcD4KPC9kaXY+Cgo8cD5JZiBzZWxlY3RlZCwgdGhlIG9wdGlvbiB0byBoYXZlIGEgc2VwYXJhdGVkIHNldHRpbmdzIG1lbnUgZW50cnkgd2lsbCBzcGxpdCBMSVNFIGludGVyZmFjZSBpbiB0d28gcGFnZXMgYWNjZXNzaWJsZSB2aWEgZGlmZmVyZW50IG1lbnUgZW50cmllcy4gT25lIGlzIHRoZSBzZWN0aW9uIHNlbGVjdGVkIGluIG9wdGlvbnMgd2hlcmUgdGhlIGl0ZW1zIGxpc3QgYW5kIGVkaXRvciwgYXMgd2VsbCBhcyB0aGUgY2F0ZWdvcmllcyBhbmQgYW55IGFkZGl0aW9uYWwgbG9jYWwgc2V0dGluZ3Mgd2lsbCBiZSBhY2Nlc3NpYmxlIDxpPihtb3JlIG9uIGxvY2FsIHNldHRpbmdzIGFuZCBpbnN0YW5jZXMgaW4gbG9jYWwgbW9kZSBiZWxvdyk8L2k+LiBUaGUgb3RoZXIgc2VjdGlvbiB3aWxsIGJlIGluIDxiPlNldHRpbmdzIC0gPGk+Jmx0O0luc3RhbmNlIEZyaWVuZGx5IE5hbWUmZ3Q7PC9pPjwvYj4sIHVuZGVyIHRoZSA8Yj5TaXRlIEFkbWluPC9iPiBzZWN0aW9uLCB3aGVyZSB0aGUgY3VzdG9tIGZpZWxkcyBkZWZpbml0aW9ucywgIHRlbXBsYXRlcyBhbmQgb3B0aW9ucyB3aWxsIGJlIGFjY2Vzc2libGUuPC9wPgo8cD5UaGUgZGVmYXVsdCBpcyBub3QgdG8gaGF2ZSB0aGUgaW50ZXJmYWNlIHNwbGl0LCBhcyBpbiBwcmV2aW91cyBMSVNFIHZlcnNpb25zLCB3aGVyZSBhbGwgd2lsbCBiZSBhY2Nlc3NpYmxlIGluIHRoZSBtZW51IGVudHJ5IHdpdGggdGhlIGZyaWVuZGx5IG1vZHVsZSBuYW1lLCB1bmRlciB0aGUgc2VsZWN0ZWQgYWRtaW4gc2VjdGlvbi48L3A+Cgo8aHI+Cgo8aDQ+R2xvYmFsIE1vZGU8L2g0PgoKPGRpdiBjbGFzcz0iaW5mb3JtYXRpb24iPgogIDxwPlRoaXMgbW9kZSBpcyBzb21ld2hhdCBsaW1pdGVkIGluIGZlYXR1cmVzLiBGb3IgYSBmdWxsIGZsZWRnZWQgZGVkaWNhdGVkIG1vZHVsZSB1c2UgPGEgaHJlZj0iaHR0cDovL2Rldi5jbXNtYWRlc2ltcGxlLm9yZy9wcm9qZWN0cy9jdXN0b21ncyI+Q3VzdG9tIEdsb2JhbCBTZXR0aW5nczwvYT4uPC9wPgogIDxwPkxJU0UgaW5zdGFuY2VzIGluIGdvYmFsIG1vZGUgY2FuIGVhc2lseSBjb21wbGVtZW50IHRoZSBhYm92ZSBtb2R1bGUuPC9wPgo8L2Rpdj4KPGRpdiBjbGFzcz0ibV90b3BfMjUiPjwvZGl2Pgo8cD5JbiB0aGlzIG1vZGUgdGhlIGluc3RhbmNlIHdpbGwgYmVoYXZlIGEgYml0IGxpa2UgdGhlIG9sZCA8c3Ryb25nPkdsb2JhbCBDb250ZW50IEJsb2Nrczwvc3Ryb25nPiB3aGVyZSB5b3UgY2FuIGhhdmUgYSBsaXN0IG9mIGdsb2JhbCBmaWVsZHMgd2hpY2ggY2FuIGJlIHVzZWQgZm9yIGEgbXVsdGl0dWRlIG9mIHVzZXMuIEZpZWxkcyBzZXQgaW4gaW5zdGFuY2VzIGluIDxiPjxpPmdsb2JhbCBtb2RlPC9pPjwvYj4gd2lsbCBiZSBhdmFpbGFibGUgaW4gYWxsIHRlbXBsYXRlcyBpbiBDTVNNUywgZXhjZXB0IGlmIHRoZSB0ZW1wbGF0ZSB3YXMgY3JlYXRlZCBieSBzb21lIG1vZHVsZSB0aGF0IHByZXZlbnRzIGdsb2JhbCBTbWFydHkgdmFyaWFibGVzIHRvIGJlIGluIHNjb3BlLiBXaGVuIGEgbW9kdWxlIGlzIGNyZWF0ZWQgaW4gPGI+PGk+Z2xvYmFsIG1vZGU8L2k+PC9iPiBpdCB3aWxsIGF1dG9tYXRpY2FsbHkgaGF2ZSBhIHNldHRpbmdzIHBhZ2UgaW4gdGhlIGFkbWluIHNlY3Rpb24gd2l0aCB0aGUgY3VzdG9tIGZpZWxkcyBhbmQgb3B0aW9ucyB0YWJzIHNwbGl0IGZyb20gdGhlIHNlbGVjdGVkIHNlY3Rpb24sIHdoZXJlIGl0IHdpbGwgb25seSBzaG93IGEgcGFnZSBzaW1pbGFyIHRvIHRoZSA8Yj5JdGVtcyBFZGl0b3I8L2I+LCBidXQgc2hvd2luZyBvbmx5IHRoZSBjdXN0b20gZmllbGRzIGNyZWF0ZWQgZm9yIHRoYXQgcHVycG9zZS4gSW4gdGhpcyBtb2RlIHRoZSBtb2R1bGUgU21hcnR5IHRhZyB3aWxsIGFsc28gaGF2ZSBhIGRpZmZlcmVudCBiZWhhdmlvdXIgPGVtPihzZWUgYmVsb3cpPC9lbT4uIFRoZSBmaWVsZCB0eXBlcyB5b3Ugd2lsbCBiZSBhYmxlIHRvIHVzZSBvbiB0aGlzIG1vZGUgd2lsbCBiZSBhIGJpdCBsZXNzIGFzIHNvbWUgd29uJ3QgZml0IHRoZSBwdXJwb3NlIGZvciB0aGlzIG1vZGUuIDxiPkNhdGVnb3JpZXM8L2I+LCBmb3IgaW5zdGFuY2UsIHdvbid0IGJlIGVuYWJsZWQgZm9yIHRoaXMgdXNlLjwvcD4KPGRpdiBjbGFzcz0ibV90b3BfMjUiPjwvZGl2Pgo8cD5MZXQncyBzYXksIGFzIGFuIGV4YW1wbGUsIHRoYXQgeW91IGhhdmUgY3JlYXRlZCBhIExJU0UgaW5zdGFuY2UgY2FsbGVkIDxiPkdsb2JhbDwvYj4gaW4gPGI+PGk+Z2xvYmFsIG1vZGU8L2k+PC9iPi4gTElTRSB3aWxsLCBhcyB1c3VhbCwgY3JlYXRlIGEgbW9kdWxlIGluc3RhbmNlIHRoYXQgd2lsbCBiZSBjYWxsZWQgPGI+TElTRUdsb2JhbDwvYj4uIEhvd2V2ZXIgaXQgd2lsbCBub3QgcmVnaXN0ZXIgdGhlIG1vZHVsZSBpbiBTbWFydHkgYXMgdXN1YWw6IDxiPntMSVNFR2xvYmFsfTwvYj4gd29uJ3QgaGF2ZSB0aGUgdXN1YWwgcGFyYW1ldGVycyB5b3Ugd291bGQgZXhwZWN0IGFuZCwgcGFydGljdWxhcmx5LCB3b24ndCBoYXZlIHRoZSBleHBlY3RlZCBmcm9udGVuZCBhY3Rpb25zLiBXaGlsZSB0aGUgdGFnIGlzIHN0aWxsIHZhbGlkLCBpdCB3aWxsIGhhdmUgZGlmZmVyZW50IGZ1bmN0aW9ucyB0aGFuIHdoYXQgeW91J2QgZXhwZWN0IGZyb20gdGhlIHVzdWFsIExJU0UgbW9kZS48L3A+Cgo8ZGl2IGNsYXNzPSJ3YXJuaW5nIj4KICA8cD48Yj5MSVNFR2xvYmFsPC9iPiwge0xJU0VHbG9iYWx9IGFuZCB7JExJU0VHbG9iYWx9IGFyZSB1c2VkIGhlcmUgYXMgZXhhbXBsZXMuIFRoZSBhY3R1YWwgbmFtZXMgd2lsbCBkZXBlbmQgb24gdGhlIG5hbWUgeW91J2xsIGdpdmUgdG8gdGhlIG1vZHVsZXMgb24gY3JlYXRpb24sIGFuZCB3aWxsIGZvbGxvdyB0aGUgdGlwaWNhbCB0ZW1wbGF0ZTogPGI+TElTRTxpPiZsdDtJbnN0YW5jZU5hbWUmZ3Q7PC9pPjwvYj48L3A+CjwvZGl2PgoKPHA+SW4gR29iYWwgbW9kZSB0aGUgYWxpYXNlcyBvZiB0aGUgY3JlYXRlZCBjdXN0b20gZmllbGRzIHdpbGwgYmUgYXZhaWxhYmxlIHVzaW5nIHRoZSBmb2xsb3dpbmcgY2FsbHM6PC9wPgo8cHJlPjxjb2RlPnsqIHRhZyBhcyBzdGF0aWMgY2xhc3Mgd2l0aCBhIGdldCBtZXRob2QgKn0Ke0xJU0VHbG9iYWw6OmdldCgnJmx0O2ZpZWxkX2FsaWFzJmd0OycpfQoKeyogdmFyaWFibGUgdGFnIGFzIGVpdGhlciBhbiBvYmplY3Qgb3IgYW4gYXJyYXkgKn0KeyRMSVNFR2xvYmFsLiZsdDtmaWVsZF9hbGlhcyZndDt9CnskTElTRUdsb2JhbFsnJmx0O2ZpZWxkX2FsaWFzJmd0OyddfQp7JExJU0VHbG9iYWwtPiZsdDtmaWVsZF9hbGlhcyZndDt9CjwvY29kZT48L3ByZT4KCjxwPlNvLCBpZiB5b3UgaGF2ZSBhIGZpZWxkIHdpdGggdGhlIGFsaWFzIDxlbT5teWFsaWFzPC9lbT4gd2l0aCB0aGUgdmFsdWUgJ015IFRleHQnLCB0byBzaG93ICdNeSBUZXh0JyBvbiBhIHRlbXBsYXRlIGp1c3QgdXNlIG9uZSBvZiB0aGUgZm9sbG93aW5nOjwvcD4KCjxwcmU+PGNvZGU+eyogbm90ZSB0aGUgdXNlIG9mIHRoZSBMSVNFR2xvYmFsIHRhZyBhcyBzdGF0aWMgY2xhc3Mgd2l0aCBhIGdldCBtZXRob2QgKn0Ke0xJU0VHbG9iYWw6OmdldCgnbXlhbGlhcycpfQoKeyogb3RoZXJ3aXNlIHVzZSB0aGUgJExJU0VHbG9iYWwgdmFyaWFibGUgdGFnIGFzIGVpdGhlciBhbiBvYmplY3Qgb3IgYW4gYXJyYXkgYXMgYmVsb3cgKn0KeyRMSVNFR2xvYmFsLm15YWxpYXN9CnskTElTRUdsb2JhbFsnbXlhbGlhcyddfQp7JExJU0VHbG9iYWwtPm15YWxpYXN9CjwvY29kZT48L3ByZT4KCjxwPlRvIHNlZSBhIGpzb24gcmVwcmVzZW50YXRpb24gb2YgYWxsIHRoZSBzdG9yZWQgZmllbGQgbmFtZXMgYW5kIHJlc3BlY3RpdmUgdmFsdWVzIHVzZSBvbmUgb2YgdGhlIGZvbGxvd2luZyBvbiB5b3VyIHRlbXBsYXRlOjwvcD4KCjxwcmU+PGNvZGU+e0xJU0VHbG9iYWx9CnskTElTRUdsb2JhbH0KPC9jb2RlPjwvcHJlPgo8ZGl2IGNsYXNzPSJtX3RvcF8xNSI+PC9kaXY+CjxkaXYgY2xhc3M9ImluZm9ybWF0aW9uIj4KICA8cD5UaGUgYWJvdmUgdGFncyB3aWxsIGZhaWwgc2lsZW50bHkgaWYgdGhlIGFsaWFzIGRvZXNuJ3QgZXhpc3QuPC9wPgogIDxwPkhvd2V2ZXIgaWYgeW91IGxvb2sgYXQgdGhlIHBhZ2Ugc291cmNlIHlvdSBzaG91bGQgZmluZCBIVE1MIGNvbW1lbnRzIHN1Y2ggYXMgPGVtPiZsdDshLS0gaW52YWxpZCAtLSZndDs8L2VtPiBpbiBjYXNlIG9mIGVycm9ycy48L3A+CjwvZGl2Pgo8ZGl2IGNsYXNzPSJpbmZvcm1hdGlvbiI+CiAgPHA+WW91IGNhbiBoYXZlIG11bHRpcGxlIGluc3RhbmNlcyBpbiBnbG9iYWwgbW9kZSwgaW4gZGlmZmVyZW50IHNlY3Rpb25zIG9mIHRoZSBhZG1pbiBjb25zb2xlLjwvcD4KPC9kaXY+CjxkaXYgY2xhc3M9Indhcm5pbmciPgogIDxwPkxJU0UgcGx1Z2lucyB3b24ndCBiZSBhYmxlIHRvIGRpZmZlcmVudGlhdGUgYWxpYXNlcyBmcm9tIG11bHRpcGxlIGdsb2JhbCBpbnN0YW5jZXMsIHNvIGluIGNhc2UgeW91IGhhdmUgdGhlIHNhbWUgYWxpYXMgb24gZGlmZmVyZW50IGluc3RhbmNlcyBvbmx5IG9uZSB0aGUgdmFsdWVzIHdpbGwgYmUgYXZhaWxhYmxlLCBhbmQgdGhlIG9uZSB0aGF0IGlzIHdvbid0IGJlIGVhc2lseSBwcmVkaWN0YWJsZS48L3A+CjwvZGl2Pgo8aHI+CjxoND5Mb2NhbCBNb2RlPC9oND4KCjxwPkluIHRoaXMgbW9kZSB0aGUgaW5zdGFuY2Ugd2lsbCBiZWhhdmUgYXMgYW4gYWRkIG9uIHRhYiBmb3Igb3RoZXIgPGI+TElTRSBpbnN0YW5jZXM8L2I+LiBIb3dldmVyIG9ubHkgaW5zdGFuY2VzIGluIGxpc3QgbW9kZSB3aWxsIGJlIGFibGUgdG8gdXNlIHRoaXMgZmVhdHVyZTogeW91bCBiZSBhYmxlIHRvIHNlbGVjdCBpbiB0aGUgb3B0aW9ucyB0YWIgb25lIG9mIHRoZSBpbnN0YW5jZXMgdGhhdCBtYXkgZXhpc3QgaW4gbG9jYWwgbW9kZSBpZiBhbnkgYWxyZWFkeSBleGlzdHMuIEFsdGhvdWdoIHRoZXJlIGNhbiBiZSBtdWx0aXBsZSBpbnN0YW5jZXMgaW4gbG9jYWwgbW9kZSwgaW5zdGFuY2VzIGluIGxpc3QgbW9kZSBjYW4gb25seSBzZWxlY3Qgb25lIG9mIHRoZSBsb2NhbCBtb2RlIGluc3RhbmNlcyBhdCBhbnkgZ2l2ZW4gdGltZS4gRGlmZmVyZW50IGluc3RhbmNlcyBpbiBsaXN0IG1vZGUgY2FuIHVzZSB0aGUgc2FtZSBsb2NhbCBtb2RlIGluc3RhbmNlIHRob3VnaC48L3A+CjxwPlRoaXMgbW9kZSBpcyBzaW1pbGFyIHRvIDxiPjxpPmdsb2JhbCBtb2RlPC9pPjwvYj4gaW4gdGhhdCB0aGUgaW5zdGFuY2Ugd2lsbCBiZWhhdmUgYSBiaXQgbGlrZSB0aGUgb2xkIDxzdHJvbmc+R2xvYmFsIENvbnRlbnQgQmxvY2tzPC9zdHJvbmc+IGJ1dCB0aGVyZSBhcmUgYSBmZXcgZnVuZGFtZW50YWwgZGlmZmVyZW5jZXMuIEZpcnN0IHRoZSBtb2R1bGUgd29uJ3QgaGF2ZSBhIHR5cGljYWwgcGFnZSB3aGVyZSB0byBlZGl0IHRoZSBjdXN0b20gZmllbGRzLiBBcyBleHBsYWluZWQgYWJvdmUgaXQgd2lsbCBhcHBlYXIgYXMgYW4gYWRkaXRpb25hbCB0YWIsIDxiPlNldHRpbmdzPC9iPi4gRmllbGRzIHNldCBpbiBpbnN0YW5jZXMgaW4gPGI+PGk+bG9jYWwgbW9kZTwvaT48L2I+IHdpbGwgb25seSBiZSBhdmFpbGFibGUgaW4gdGVtcGxhdGVzIGluIHNjb3BlIHdpdGggYW55IG9mIHRoZSBMSVNFIGluc3RhbmNlcycgZnJvbnRlbmQgYWN0aW9ucyB3aGVyZSB0aGF0IGxvY2FsIGluc3RhbmNlIGlzIGFzc29jaWF0ZWQgd2l0aC4gSW4gbG9jYWwgbW9kZSwgTElTRSB3aWxsIHRyeSB0byBkZXRlcm1pbmUgd2hpY2ggaW5zdGFuY2UgaXMgY3VycmVudGx5IGluIHNjb3BlIGFuZCByZXRyaWV2ZSB0aGUgbG9jYWwgc2V0dGluZ3MgdXNlZCBmb3IgdGhhdCBwYXJ0aWN1bGFyIGluc3RhbmNlLiBBcyBhIHJ1bGUgb2YgdGh1bWIgb25seSB1c2UgdGhlc2UgU21hcnR5IHBsdWdpbnMgZnJvbSB0ZW1wbGF0ZXMgc3BlY2lmaWMgZm9yIHRoZSBMSVNFIGluc3RhbmNlIGl0IGlzIGFzc29jaWF0ZWQgd2l0aCwgb3IgY2hpbGQgdGVtcGxhdGVzLjwvcD4KPGRpdiBjbGFzcz0ibV90b3BfMjUiPjwvZGl2Pgo8cD5MZXQncyBzYXksIGFzIGFuIGV4YW1wbGUsIHRoYXQgeW91IGhhdmUgY3JlYXRlZCBhIExJU0UgaW5zdGFuY2UgY2FsbGVkIDxiPkxvY2FsPC9iPiBpbiA8Yj48aT5sb2NhbCBtb2RlPC9pPjwvYj4uIExJU0Ugd2lsbCwgYXMgdXN1YWwsIGNyZWF0ZSBhIG1vZHVsZSBpbnN0YW5jZSB0aGF0IHdpbGwgYmUgY2FsbGVkIDxiPkxJU0VMb2NhbDwvYj4uIEhvd2V2ZXIgaXQgd2lsbCBub3QgcmVnaXN0ZXIgdGhlIG1vZHVsZSBpbiBTbWFydHkgYXMgdXN1YWw6IDxiPntMSVNFTG9jYWx9PC9iPiB3b24ndCBoYXZlIHRoZSB1c3VhbCBwYXJhbWV0ZXJzIHlvdSB3b3VsZCBleHBlY3QgYW5kLCBwYXJ0aWN1bGFybHksIHdvbid0IGhhdmUgdGhlIGV4cGVjdGVkIGZyb250ZW5kIGFjdGlvbnMuIFdoaWxlIHRoZSB0YWcgaXMgc3RpbGwgdmFsaWQsIGl0IHdpbGwgaGF2ZSBkaWZmZXJlbnQgZnVuY3Rpb25zIHRoYW4gd2hhdCB5b3UnZCBleHBlY3QgZnJvbSB0aGUgdXN1YWwgTElTRSBtb2RlLjwvcD4KCjxkaXYgY2xhc3M9Indhcm5pbmciPgogIDxwPjxiPkxJU0VMb2NhbDwvYj4sIHtMSVNFTG9jYWx9IGFuZCB7JExJU0VMb2NhbH0gYXJlIHVzZWQgaGVyZSBhcyBleGFtcGxlcy4gVGhlIGFjdHVhbCBuYW1lcyB3aWxsIGRlcGVuZCBvbiB0aGUgbmFtZSB5b3UnbGwgZ2l2ZSB0byB0aGUgbW9kdWxlcyBvbiBjcmVhdGlvbiwgYW5kIHdpbGwgZm9sbG93IHRoZSB0aXBpY2FsIHRlbXBsYXRlOiA8Yj5MSVNFPGk+Jmx0O0luc3RhbmNlTmFtZSZndDs8L2k+PC9iPjwvcD4KPC9kaXY+Cgo8cD5JbiBsb2NhbCBtb2RlIHRoZSBhbGlhc2VzIG9mIHRoZSBjcmVhdGVkIGN1c3RvbSBmaWVsZHMgd2lsbCBiZSBhdmFpbGFibGUgdXNpbmcgdGhlIGZvbGxvd2luZyBjYWxsczo8L3A+CjxwcmU+PGNvZGU+eyogdGFnIGFzIHN0YXRpYyBjbGFzcyB3aXRoIGEgZ2V0IG1ldGhvZCAqfQp7TElTRUxvY2FsOjpnZXQoJyZsdDtmaWVsZF9hbGlhcyZndDsnKX0KCnsqIHZhcmlhYmxlIHRhZyBhcyBlaXRoZXIgYW4gb2JqZWN0IG9yIGFuIGFycmF5ICp9CnskTElTRUxvY2FsLiZsdDtmaWVsZF9hbGlhcyZndDt9CnskTElTRUxvY2FsWycmbHQ7ZmllbGRfYWxpYXMmZ3Q7J119CnskTElTRUxvY2FsLT4mbHQ7ZmllbGRfYWxpYXMmZ3Q7fQo8L2NvZGU+PC9wcmU+Cgo8cD5TbywgaWYgeW91IGhhdmUgYSBmaWVsZCB3aXRoIHRoZSBhbGlhcyA8ZW0+bXlhbGlhczwvZW0+IHdpdGggdGhlIHZhbHVlICdNeSBUZXh0JywgdG8gc2hvdyAnTXkgVGV4dCcgb24gYSB0ZW1wbGF0ZSBqdXN0IHVzZSBvbmUgb2YgdGhlIGZvbGxvd2luZzo8L3A+Cgo8cHJlPjxjb2RlPnsqIG5vdGUgdGhlIHVzZSBvZiB0aGUgTElTRUxvY2FsIHRhZyBhcyBzdGF0aWMgY2xhc3Mgd2l0aCBhIGdldCBtZXRob2QgKn0Ke0xJU0VMb2NhbDo6Z2V0KCdteWFsaWFzJyl9Cgp7KiBvdGhlcndpc2UgdXNlIHRoZSAkTElTRUdsb2JhbCB2YXJpYWJsZSB0YWcgYXMgZWl0aGVyIGFuIG9iamVjdCBvciBhbiBhcnJheSBhcyBiZWxvdyAqfQp7JExJU0VMb2NhbC5teWFsaWFzfQp7JExJU0VMb2NhbFsnbXlhbGlhcyddfQp7JExJU0VMb2NhbC0+bXlhbGlhc30KPC9jb2RlPjwvcHJlPgoKPHA+VG8gc2VlIGEganNvbiByZXByZXNlbnRhdGlvbiBvZiBhbGwgdGhlIHN0b3JlZCBmaWVsZCBuYW1lcyBhbmQgcmVzcGVjdGl2ZSB2YWx1ZXMgdXNlIG9uZSBvZiB0aGUgZm9sbG93aW5nIG9uIHlvdXIgdGVtcGxhdGU6PC9wPgoKPHByZT48Y29kZT57TElTRUxvY2FsfQp7JExJU0VMb2NhbH0KPC9jb2RlPjwvcHJlPgo8ZGl2IGNsYXNzPSJtX3RvcF8xNSI+PC9kaXY+CjxkaXYgY2xhc3M9ImluZm9ybWF0aW9uIj4KICA8cD5Zb3UgY2FuIGhhdmUgbXVsdGlwbGUgaW5zdGFuY2VzIGluIGxvY2FsIG1vZGUsIGhvd2V2ZXIgeW91IGNhbiBvbmx5IGhhdmUgb25lIHNlbGVjdGVkIG9uIGFueSBnaXZlbiBMSVNFIGluc3RhbmNlIGluIGxpc3QgbW9kZS4gSW5zdGFuY2VzIGluIGxpc3QgbW9kZSBkb24ndCBuZWVkIHRvIGhhdmUgYW55IGFzc29jaWF0ZWQgbG9jYWwgbW9kZSBpbnN0YW5jZSBhdCBhbGwuPC9wPgo8L2Rpdj4KPGRpdiBjbGFzcz0id2FybmluZyI+CiAgPHA+TElTRSBwbHVnaW5zIGZvciBsb2NhbCBpbnN0YW5jZXMgd2lsbCBiZSBhYmxlIHRvIGRpZmZlcmVudGlhdGUgd2hpY2ggb2YgdGhlIGluc3RhbmNlcyBpbiBsaXN0IG1vZGUgYXNzb2NpYXRlZCB3aXRoIGl0IGlzIGJlaW5nIHVzZWQgcHJvdmlkZWQgdGhlIHBsdWdpbnMgYXJlIGJlaW5nIGNhbGxlZCBmcm9tIHRlbXBsYXRlcyBvZiBhY3Rpb25zIG9mIHRoZSBhc3NvY2lhdGVkIGxpc3QgbW9kZSBpbnN0YW5jZXMuPC9wPgo8L2Rpdj48L2Rpdj48ZGl2IGlkPSJmaWVsZF9jIj48aDM+RmllbGQgRGVmaW5pdGlvbnM8L2gzPgoKPHA+VGhlIGZpcnN0IHRoaW5nIHlvdSBzaG91bGQgY29uZmlndXJlIGFyZSB5b3VyIGZpZWxkIGRlZmluaXRpb25zLjwvcD4KPHA+Rm9yIGVhY2ggZmllbGQgZGVmaW5pdGlvbiwgeW91IGNhbiBzcGVjaWZ5IGFkZGl0aW9uYWwgc2V0dGluZ3MgYnkgY2hvb3NpbmcgZnJvbSBhdmFpbGFibGUgb3B0aW9ucy48L3A+Cgo8aDM+RGVmYXVsdCBGaWVsZCBEZWZpbml0aW9ucyBieSB0eXBlPC9oMz4KCjx1bD4KICA8bGk+QmFja2VuZFRleHQgLSA8c3Ryb25nPkJhY2tlbmQgVGV4dDwvc3Ryb25nPjs8L2xpPgogIDxsaT5DYXRlZ29yaWVzIC0gPHN0cm9uZz5DYXRlZ29yaWVzPC9zdHJvbmc+OzwvbGk+CiAgPGxpPkNoZWNrYm94IC0gPHN0cm9uZz5DaGVja2JveDwvc3Ryb25nPjs8L2xpPgogIDxsaT5DaGVja2JveEdyb3VwIC0gPHN0cm9uZz5DaGVja2JveCBHcm91cDwvc3Ryb25nPjs8L2xpPgogIDxsaT5Db2xvclBpY2tlciAtIDxzdHJvbmc+Q29sb3JQaWNrZXI8L3N0cm9uZz47PC9saT4KICA8bGk+Q29udGVudFBhZ2VzIC0gPHN0cm9uZz5Db250ZW50IFBhZ2VzPC9zdHJvbmc+OzwvbGk+CiAgPGxpPkNvcmVGaWxlUGlja2VyIC0gPHN0cm9uZz5GaWxlIFBpY2tlciA8c3VwPjxiPjxpPigxKTwvaT48L2I+PC9zdXA+PC9zdHJvbmc+OzwvbGk+CiAgPGxpPkN1c3RvbUZyb21VRFQgLSA8c3Ryb25nPkN1c3RvbSBGaWVsZCBGcm9tIFVEVDwvc3Ryb25nPjs8L2xpPgogIDxsaT5DdXN0b21Gcm9tU21hcnR5IC0gPHN0cm9uZz5DdXN0b20gRmllbGQgRnJvbSBTbWFydHkgVGVtcGxhdGU8L3N0cm9uZz47PC9saT4KICA8bGk+RHJvcGRvd24gLSA8c3Ryb25nPkRyb3Bkb3duPC9zdHJvbmc+OzwvbGk+CiAgPGxpPkZFVURyb3Bkb3duIC0gPHN0cm9uZz5Gcm9udEVuZFVzZXJzIERyb3Bkb3duIDxzdXA+PGI+PGk+KDIpKDYpPC9pPjwvYj48L3N1cD4gPHNwYW4gc3R5bGU9ImNvbG9yOm9yYW5nZXJlZCI+KGRlcHJlY2F0ZWQpPC9zcGFuPjwvc3Ryb25nPjs8L2xpPgogIDxsaT5GRVVNdWx0aVNlbGVjdCAtIDxzdHJvbmc+RkVVIE11bHRpIFNlbGVjdCA8c3VwPjxiPjxpPigyKTwvaT48L2I+PC9zdXA+PC9zdHJvbmc+OzwvbGk+CiAgPGxpPkZFVVNpbmdsZVNlbGVjdCAtIDxzdHJvbmc+RkVVIFNpbmdsZSBTZWxlY3QgPHN1cD48Yj48aT4oMik8L2k+PC9iPjwvc3VwPjwvc3Ryb25nPjs8L2xpPgogIDxsaT5GaWxlVXBsb2FkIC0gPHN0cm9uZz5GaWxlIFVwbG9hZDwvc3Ryb25nPjs8L2xpPgogIDxsaT5HYWxsZXJ5RHJvcGRvd24gLSA8c3Ryb25nPkdhbGxlcnkgRHJvcGRvd24gPHN1cD48Yj48aT4oMyk8L2k+PC9iPjwvc3VwPjwvc3Ryb25nPjs8L2xpPgogIDxsaT5HQkZpbGVQaWNrZXIgLSA8c3Ryb25nPkdCRmlsZVBpY2tlciBVcGxvYWQgRmlsZSA8c3VwPjxiPjxpPig0KSg2KTwvaT48L2I+PC9zdXA+IDxzcGFuIHN0eWxlPSJjb2xvcjpvcmFuZ2VyZWQiPihkZXByZWNhdGVkKTwvc3Bhbj48L3N0cm9uZz47PC9saT4KICA8bGk+SGVscFBvcHVwIC0gPHN0cm9uZz5IZWxwIFBvcHVwPC9zdHJvbmc+OzwvbGk+CiAgPGxpPkpNRmlsZVBpY2tlciAtIDxzdHJvbmc+Sk1GaWxlUGlja2VyIFVwbG9hZCBGaWxlIDxzdXA+PGI+PGk+KDUpPC9pPjwvYj48L3N1cD48L3N0cm9uZz47PC9saT4KICA8bGk+SlF1ZXJ5TXVsdGlTZWxlY3QgLSA8c3Ryb25nPkpRdWVyeSBNdWx0aVNlbGVjdDwvc3Ryb25nPjs8L2xpPgogIDxsaT5MSVNFSW5zdGFuY2UgLSA8c3Ryb25nPkxJU0UgSW5zdGFuY2U8L3N0cm9uZz47PC9saT4KICA8bGk+TElTRUluc3RhbmNlSXRlbSAtIDxzdHJvbmc+TElTRSBJbnN0YW5jZSBJdGVtPC9zdHJvbmc+OzwvbGk+CiAgPGxpPk11bHRpU2VsZWN0IC0gPHN0cm9uZz5NdWx0aSBTZWxlY3Q8L3N0cm9uZz47PC9saT4KICA8bGk+UHJldmlldyAtIDxzdHJvbmc+QSBQcmV2aWV3IHRhYiBmb3IgZWRpdG9yczwvc3Ryb25nPjsgPHNwYW4gc3R5bGU9ImNvbG9yOmdyZWVuIj4obmV3KTwvc3Bhbj48L2xpPgogIDxsaT5SYWRpb0dyb3VwIC0gPHN0cm9uZz5SYWRpbyBHcm91cDwvc3Ryb25nPjs8L2xpPgogIDxsaT5TZWxlY3REYXRlVGltZSAtIDxzdHJvbmc+U2VsZWN0IERhdGVUaW1lPC9zdHJvbmc+OzwvbGk+CiAgPGxpPlNlbGVjdEZpbGUgLSA8c3Ryb25nPlNlbGVjdCBGaWxlPC9zdHJvbmc+OzwvbGk+CiAgPGxpPlNsaWRlciAtIDxzdHJvbmc+U2xpZGVyPC9zdHJvbmc+OzwvbGk+CiAgPGxpPlRhYnMgLSA8c3Ryb25nPlRhYnM8L3N0cm9uZz47PC9saT4KICA8bGk+VGFncyAtIDxzdHJvbmc+VGFnczwvc3Ryb25nPjs8L2xpPgogIDxsaT5UZXh0QXJlYSAtIDxzdHJvbmc+VGV4dCBBcmVhPC9zdHJvbmc+OzwvbGk+CiAgPGxpPlRleHRJbnB1dCAtIDxzdHJvbmc+VGV4dCBJbnB1dDwvc3Ryb25nPjs8L2xpPgo8L3VsPgo8ZGl2IGNsYXNzPSJpbmZvcm1hdGlvbiI+PHN0cm9uZz5Ob3RlOiB0aGlzIGxpc3QgZG9lcyBub3QgaW5jbHVkZSBhZGRpdGlvbmFsIGZpZWxkIGRlZmluaXRpb25zIHRoYXQgbWF5IGJlIHJlZ2lzdGVyZWQgYnkgZXh0ZXJuYWwgbW9kdWxlcy48L3N0cm9uZz48L2Rpdj4KPGRpdiBjbGFzcz0iaW5mb3JtYXRpb24iPjxzdHJvbmc+Tm90ZTogYWZ0ZXIgdXBncmFkaW5nIExJU0Ugb3IgaW5zdGFsbGluZyBhIG1vZHVsZSB3aGljaCBjb3VsZCByZWdpc3RlciBhZGRpdGlvbmFsIGZpZWxkIGRlZmluaXRpb25zLCByZS1zY2FuIGZpZWxkIGRlZmluaXRpb25zIGZvciB0aGVtIHRvIGFwcGVhciBvbiB0aGUgbGlzdCBvZiBhdmFpbGFibGUgZmllbGQgZGVmaW5pdGlvbnMuPC9zdHJvbmc+PC9kaXY+CjxwPjxiPigxKTwvYj4gSGFzIGRlcGVuZGVuY2llczogPHN0cm9uZz5GaWxlIFBpY2tlciAoY29yZSk8L3N0cm9uZz47PC9wPgo8cD48Yj4oMik8L2I+IEhhcyBkZXBlbmRlbmNpZXM6IDxzdHJvbmc+RnJvbnRFbmRVc2VyPC9zdHJvbmc+cyBhbmQgPHN0cm9uZz5DR0V4dGVuc2lvbnM8L3N0cm9uZz47PC9wPgo8cD48Yj4oMyk8L2I+IEhhcyBkZXBlbmRlbmNpZXM6IDxzdHJvbmc+R2FsbGVyeTwvc3Ryb25nPjs8L3A+CjxwPjxiPig0KTwvYj4gSGFzIGRlcGVuZGVuY2llczogPHN0cm9uZz5HQkZpbGVQaWNrZXI8L3N0cm9uZz4uIDxlbT5Ob3RlOiBJdCBvbmx5IHdvcmtzIHdpdGggQ01TTVMgMS54IGJyYW5jaDwvZW0+OzwvcD4KPHA+PGI+KDUpPC9iPiBIYXMgZGVwZW5kZW5jaWVzOiA8c3Ryb25nPkpNRmlsZVBpY2tlcjwvc3Ryb25nPi48L3A+CjxwPjxiPig2KTwvYj4gRGVwcmVjYXRlZDogPHN0cm9uZz53aWxsIGJlIHJlbW92ZWQgaW4gYSBuZWFyIGZ1dHVyZSwgdXNlIHRoZSByZXBsYWNlbWVudHMgQVNBUDwvc3Ryb25nPi48L3A+PC9kaXY+PGRpdiBpZD0ic21hcnR5X3BsdWdpbnNfYyI+PGZpZWxkc2V0PjxsZWdlbmQ+e0xJU0VMb2FkZXJ9PC9sZWdlbmQ+DQoJPGg0PldoYXQgZG9lcyB0aGlzIGRvPzwvaDQ+DQoJIDxwPlRoaXMgcGx1Z2luIGFsbG93cyB5b3UgdG8gbG9hZCBMSVNFIGl0ZW0gYW5kIGNhdGVnb3J5IG9iamVjdCBieSBjZXJ0YWluIGNyaXRlcmlhLCBhbnl3aGVyZSBpbiB0aGUgc3lzdGVtLjwvcD4NCgkgDQoJPGg0PkhvdyBkbyBJIHVzZSBpdD88L2g0Pg0KCTxwPlNpbXBseSBpbnNlcnQgdGhpcyB0YWcgaW50byB5b3VyIHBhZ2Ugb3IgdGVtcGxhdGU6PC9wPg0KCTxwcmU+PGNvZGU+e0xJU0VMb2FkZXIgaXRlbT0naXRlbScgaWRlbnRpZmllcj0nYWxpYXMnIGluc3RhbmNlPSdMSVNFSW5zdGFuY2UnIHZhbHVlPSdteWFsaWFzJyBhc3NpZ249J3RtcCd9PC9jb2RlPjwvcHJlPg0KCQ0KCTxwPiZuYnNwOzwvcD4NCgkNCgk8cD5Gb2xsb3dpbmcgbGluZSB3aWxsIGxvYWQgaXRlbSBvYmplY3QgZnJvbSBpbnN0YW5jZSAnTElTRUluc3RhbmNlJyBieSBhbGlhcyAnbXlhbGlhcycgYW5kIGFzc2lnbiBpdCB0byB2YXJpYWJsZSAmZG9sbGFyO3RtcC4gPGJyIC8+DQoJQWZ0ZXIgdGhpcyB5b3UgY2FuIHVzZSBpdCBpbiBzaW1pbGFyIHdheSwganVzdCBsaWtlIGluIHJlZ3VsYXIgTElTRSB0ZW1wbGF0ZXM6PC9wPg0KCTxwcmU+PGNvZGU+eyZkb2xsYXI7dG1wLT50aXRsZX08L2NvZGU+PC9wcmU+DQoJDQoJPHA+Jm5ic3A7PC9wPg0KCQ0KCTxwPklmIG11bHRpcGxlIGl0ZW1zIGFyZSBiZWluZyBsb2FkZWQsIHRoaXMgZnVuY3Rpb24gcmV0dXJucyBhcnJheSBvZiBvYmplY3RzLCBlbHNlIGl0IHJldHVybnMgc2luZ2xlIGl0ZW0vY2F0ZWdvcnkgb2JqZWN0PC9wPg0KDQoJPGg0PldoYXQgcGFyYW1ldGVycyBkb2VzIGl0IHRha2U/PC9oND4NCgk8dWw+DQoJCTxsaT48ZW0+KHJlcXVpcmVkKSA8L2VtPjx0dD5pbnN0YW5jZTwvdHQ+IC0gTmFtZSBvZiBpbnN0YW5jZSB0aGF0IGhvbGRzIGl0ZW1zLiA8aT4oSWYgdXNlZCBpbnNpZGUgTElTRSB0ZW1wbGF0ZXMsIHRoaXMgcGFyYW1ldGVyIGlzIG9wdGlvbmFsKTwvaT48L2xpPg0KCQk8bGk+PGVtPihyZXF1aXJlZCkgPC9lbT48dHQ+dmFsdWU8L3R0PiAtIENvbW1hIHNlcGFyYXRlZCBsaXN0IG9mIGlkZW50aWZpZXIgdmFsdWVzOiAnYWxpYXMxLGFsaWFzMixhbGlhczMnIG9yICcxLDIsMyc8L2xpPg0KCQk8bGk+PGVtPihvcHRpb25hbCkgPC9lbT48dHQ+aXRlbT0iaXRlbSI8L3R0PiAtIFdhbnRlZCBpdGVtIHR5cGUsIGVpdGhlcjogaXRlbS9jYXRlZ29yeTwvbGk+DQoJCTxsaT48ZW0+KG9wdGlvbmFsKSA8L2VtPjx0dD5pZGVudGlmaWVyPSJpdGVtX2lkL2NhdGVnb3J5X2lkIjwvdHQ+IC0gV2FudGVkIGlkZW50aWZpZXIsIG9uZSBvZiBmb2xsb3dpbmc6IGl0ZW1faWQsIGNhdGVnb3J5X2lkLCBhbGlhczwvbGk+DQoJCTxsaT48ZW0+KG9wdGlvbmFsKSA8L2VtPjx0dD5mb3JjZV9hcnJheT0iZmFsc2UiPC90dD4gLSBGb3JjZSBvdXRwdXQgdmFsdWUgYXMgYXJyYXk8L2xpPg0KCTwvdWw+DQo8L2ZpZWxkc2V0PjwvZGl2PjxkaXYgaWQ9ImRldmVsb3BlcnNfYyI+PGgyPkFkdmFuY2VkIFVzZSBGb3IgRGV2ZWxvcGVyczwvaDI+CjxwPlNpbmNlIHZlcnNpb24gMS4zIExJU0UgaGFzIGJlZW4gaW5jbHVkaW5nIGEgd2lkZSByYW5nZSBvZiBhZHZhbmNlZCBmZWF0dXJlcywgc29tZSBleHBlcmltZW50YWwsIG90aGVyIGFscmVhZHkgc3RhYmxlLiBNb3N0IG9mIHRoZXNlIGZlYXR1cmVzIGhhdmUgYmVlbiBwb29ybHkgZG9jdW1lbnRlZCwgaWYgYXQgYWxsLiBJbiBmYWN0LCBzb21lIG9mIHRob3NlIGZlYXR1cmVzIGhhdmUgYmVlbiBsaW5nZXJpbmcgc2luY2UgTEkyIG9yIG1heWJlIGV2ZW4gc2luY2UgTGlzdCBJdCAodGhlIHR3byBtb2R1bGVzIHRoYXQgb3JpZ2luYXRlZCBMSVNFKSwgYW5kIHdlcmUgbm90IGRvY3VtZW50ZWQuIFRoZXNlIGhhdmUgYmVlbiBpbXByb3ZlZCB3aGVyZSBwb3NzaWJsZSBvciBuZWVkZWQuIE90aGVyIGZlYXR1cmVzIGhhdmUgYmVlbiBzbG93bHkgaW1wbGVtZW50ZWQgYW5kIHNlZW0gbWF0dXJlIGVub3VnaCB0byBiZSBkb2N1bWVudGVkIGF0IHRoaXMgcG9pbnQuPC9wPgo8cD5UaGVyZSBhcmUgZmVhdHVyZXMgYWNyb3NzIHRoZSBzcGVjdHJ1bSBvZiB1c2VzIGZvciB0aGlzIG1vZHVsZSwgZnJvbSB0aGUgUEhQIGRldmVsb3BlciBwb2ludCBvZiB2aWV3LCB3aG8gbWF5IG5lZWQgYSBzaW1wbGUgbW9kdWxlIHRoYXQgY2FuIGJlIGJhc2VkIG9uIExJU0UgYnV0IHdpdGggYSBmZXcgbW9kaWZpY2F0aW9ucyBhbmQgY3VzdG9tIGNvZGUsIHRvIHRoZSB3ZWIgZGV2ZWxvcGVyIHRoYXQgbmVlZHMgdG8gY3VzdG9taXplIHRoZSBsb29rIGFuZCBmZWVsIG9mIHNvbWUgb2YgdGhlIGluc3RhbmNlcyB1c2VkIG9uIGEgc2l0ZS4gTElTRSBoYXMgYmVjb21lIG1vcmUgYW5kIG1vcmUgYSBtb2R1bGUgYnVpbGRlciB0b29sa2l0LCBhbmQgaXQgbG9va3MgbGlrZSB0aGUgd2F5IHRvIGdvIGZyb20gdGhpcyBwb2ludCBvbi48L3A+CjxoMz5UaGUgSW5zdGFuY2U8L2gzPgo8cD5XaGVuIGFuIGluc3RhbmNlIGlzIGNyZWF0ZWQsIGluZGVwZW5kZW50bHkgb2YgaXRzIG1vZGUsIGEgbmV3IGZvbGRlciBpcyBjcmVhdGVkIGluIHRoZSBtb2R1bGVzIGZvbGRlciB3aXRoIHRoZSBpdHMgbmFtZSwgdXN1YWxseSA8ZW0+TElTRSZsdDtuYW1lJmd0OzwvZW0+IGFuZCwgYnkgZGVmYXVsdCwgdGhlIGZvbGxvd2luZyBmaWxlcyBpbnNpZGUgaXQ6PC9wPgo8dWw+CiAgPGxpPjxlbT5MSVNFJmx0O25hbWUmZ3Q7PC9lbT4ubW9kdWxlLnBocDs8L2xpPgogIDxsaT5hbm90aGVyIGZvbGRlciBuYW1lZCBpbWFnZXMgd2l0aCB0aGUgZmlsZSBpY29uLnBuZyBpbnNpZGUgaXQ7PC9saT4KPC91bD4KPHA+VGhlcmUgbWF5IGJlIG1vcmUgZmlsZXMgYW5kIGZvbGRlcnMgaW4gdGhlcmUsIGFuZCB3ZSdsbCBzZWUgbGF0ZXIgb24gd2h5IGFuZCBob3csIGJ1dCB0aGVzZSBhcmUgdGhlIG9uZXMgd2UgbmVlZCB0byBrbm93IG5vdy4gVGhlICoubW9kdWxlLnBocCBpcyBhIG1pbmltYWwgcGhwIGNsYXNzIGZpbGUgdGhhdCBleHRlbmRzIExJU0UgbWFpbiBpbnN0YW5jZSBjbGFzcy4gVGhlcmUgbm90IG11Y2ggaW4gdGVybXMgb2YgZnVuY3Rpb25hbGl0eSBpbiB0aGlzIGZpbGUgYWx0aG91Z2ggaXQgY2FuIGJlIGV4dGVuZGVkIGZ1cnRoZXIgaWYgbmVlZGVkLiBUaGUgaWNvbi5waHAgZmlsZSBjYW4gYmUgcmVwbGFjZWQgd2l0aCBhIGN1c3RvbSBvbmUsIGFuZCBpdCB3aWxsIGJlIHRoZSBvbmUgYXBwZWFyaW5nIGluIENNU01TIGJhY2tlbmQgZm9yIHRoYXQgaW5zdGFuY2UuIEl0J3MgYWR2aXNhYmxlIHRvIGtlZXAgdGhlIHNpemUgaW4gcGl4ZWxzIHRoZSBzYW1lIGFzIHRoZSBvcmlnaW5hbCBmb3IgYmV0dGVyIGZpdCBpbiBtb3N0IENNU01TIHVzZXMuPC9wPgo8cD5BbGwgdGhlIG90aGVyIGZpbGVzIG5lZWRlZCBmb3IgYSBMSVNFIGluc3RhbmNlIHRvIHdvcmsgYXJlIGluc2lkZSB0aGUgbWFpbiBMSVNFIG1vZHVsZSwgYW5kIGFuIGluc3RhbmNlIGNhbm5vdCB3b3JrIHdpdGhvdXQgdGhlIG1haW4gbW9kdWxlLiBUaGVyZSBhcmUgYSBmZXcgZXhjZXB0aW9ucyBhcyB3ZSB3aWxsIHNlZSBzb29uLjwvcD4KPGgzPkROQTwvaDM+CjxwPklmIHlvdSBhcmUgYSByZWd1bGFyIHVzZXIgb2YgTElTRSB5b3UgbWF5IGhhdmUgc2VlbiwgZm9yIHF1aXRlIHNvbWUgdGltZSBub3csIGEgPHN0cm9uZz5TYXZlIEROQTwvc3Ryb25nPiBidXR0b24gb24gdGhlIEluc3RhbmNlcyB0YWIgb2YgdGhlIG1haW4gTElTRSBtb2R1bGUuIENsaWNraW5nIG9uIGl0IHdpbGwgc2F2ZSBhIGZpbGUgY2FsbGVkIGRuYS54bWwgaW5zaWRlIGEgZm9sZGVyIG5hbWVkICdkYXRhJyB3aXRoIGVub3VnaCBpbmZvcm1hdGlvbiB0byByZWNyZWF0ZSB0aGUgaW5zdGFuY2UgZWxzZXdoZXJlLCBhcyBhbiBlbXB0eSBtb2R1bGUsIGkuZS4ganVzdCBhYm91dCB0aGUgc2FtZSBhcyB5b3Ugd291bGQgaGF2ZSB3aXRoIGFueSBvdGhlciBtb2R1bGUsIGV4Y2VwdCB0aGF0IHRoaXMgcmVxdWlyZXMgTElTRSBtYWluIG1vZHVsZSB0byB3b3JrLiBUaGlzIGZpbGUgaXMgYWxzbyBjcmVhdGVkIGlmIGFuIGluc3RhbmNlIGlzIHVuaW5zdGFsbGVkLCBhbmQgaXQgd2lsbCBhbGxvdyB5b3UgdG8gcmVpbnN0YWxsIGl0IGJ1dCB3aXRoIGVtcHR5IGRhdGEsIGV4Y2VwdCBmb3IgdGhlIGRhdGFiYXNlIHN0cnVjdHVyZSBhbmQgcHJlZmVyZW5jZXMuIFRoaXMgd2F5LCBhIG1vZHVsZSBjcmVhdGVkIGJ5IHlvdSBhcyBhbiBpbnN0YW5jZSBjYW4gYmUgcGFja2FnZWQgYXMgYW55IG90aGVyIG1vZHVsZSBhbmQgaW5zdGFsbGVkIGVsc2V3aGVyZS4gSSBjYW4gZXZlbiBiZSBzaGFyZWQgaW4gdGhlIGZvcmdlLCBvciB3aGVyZXZlciB5b3Ugc2VlIGZpdC48L3A+CjxwPlRoZSA8c3Ryb25nPlNhdmUgRE5BPC9zdHJvbmc+IGJ1dHRvbiBpcyB0aGVyZSBzbyB0aGF0IHlvdSBjYW4gc2F2ZSBpdCBvbiB5b3VyIG93biB3aGVuZXZlciB5b3UgbWFrZSBhIGNoYW5nZSB0byBpdHMgc3RydWN0dXJlLiBSZW1lbWJlcjogY3VzdG9tIGZpZWxkcywgcHJlZmVyZW5jZXMgYW5kIHN0cnVjdHVyZSBhcmUgc2F2ZWQgdGhpcyB3YXkgYW5kIGNhbiBiZSBzaGFyZWQgYnkgc2hhcmluZyB0aGUgZnVsbCBpbnN0YW5jZSBmb2xkZXIuIEFsc28ga2VlcCBpbiBtaW5kIHRoYXQgaXQgcmVxdWlyZXMgTElTRSB0byBiZSBpbnN0YWxsZWQgZm9yIGl0IHRvIHdvcms7PC9wPgo8aDM+RGV2ZWxvcGluZyBDdXN0b20gRmllbGRzIGZvciBMSVNFPC9oMz4KPHA+Rm9yIHF1aXRlIHNvbWUgdGltZSBMSVNFIGFuZCBpdHMgYW5jZXN0b3JzIGhhZCB0aGUgYWJpbGl0eSB0byBhbGxvdyBmb3IgM3JkIHBhcnR5IG1vZHVsZXMgdG8gYWRkIGN1c3RvbSBmaWVsZHMgdG8gaXRzIGFscmVhZHkgcmF0aGVyIGV4dGVuc2l2ZSBwYWxldHRlLiBCdXQgdGhlIGluaGVyaXRlZCBtZWNoYW5pc20gd2FzIGV4dHJlbWVseSBjbHVtc3kgYW5kIGluZWZmZWN0aXZlOiBpbiBsYXJnZSBpbnN0YWxsYXRpb25zLCBzY2FubmluZyBhbGwgdGhlIGZpbGVzIGFuZCBmb2xkZXJzIGZvciB0cmFjZXMgb2YgYSBwb3NzaWJsZSBwbHVnaW4gd2FzIGEgdmVyeSBzbG93IHByb2Nlc3MuIExJU0UgaGFzIG5vdyBhZG9wdGVkIGEgZGlmZmVyZW50IGFuZCBtb3JlIGVmZmVjdGl2ZSBtZXRob2Q6PC9wPgo8b2w+CiAgPGxpPkxJU0UgZ3JhYnMgYSBsaXN0IG9mIGluc3RhbGxlZCBtb2R1bGVzIGFuZDwvbGk+CiAgPGxpPm9ubHkgc2NhbnMgdGhvc2UgbW9kdWxlcycgZGlyZWN0b3JpZXMgZm9yIHZhbGlkIGN1c3RvbSBmaWVsZHMgZmlsZXMgc3RydWN0dXJlczwvbGk+Cjwvb2w+Cgo8cD5JbiB0aGUgZnV0dXJlLCBhIG1vZHVsZSB0aGF0IGluY2x1ZGVzIGN1c3RvbSBmaWVsZHMgZm9yIExJU0Ugd2lsbCBoYXZlIHRvIGxpc3QgaXQgYXMgYSBjYXBhYmlsaXR5LjwvcD4KPHA+Rm9yIGFuIGV4YW1wbGUgb2YgaG93IHRvIGFkZCBjdXN0b20gZmllbGRzIGZvciBMSVNFIGxvb2sgYXQgdGhlIHdheSBNQU1TIGltcGxlbWVudHMgaXQuPC9wPgoKPGgzPkN1c3RvbWl6aW5nIEJhY2tlbmQgVGVtcGxhdGVzPC9oMz4KPHA+TElTRSBpbmhlcml0ZWQgc29tZSBvZiBpdHMgYW5jZXN0b3IgbW9kdWxlcyBhYmlsaXR5IHRvIGN1c3RvbWlzZSB0aGUgYmFja2VuZCB0ZW1wbGF0ZXMgZm9yIGFsbCBpdHMgaW5zdGFuY2VzLiBCdXQgaXQgaGFzIHRha2VuIGl0IHNvbWUgc3RlcHMgZnVydGhlcjo8L3A+Cgo8aDQ+LSBtYXN0ZXIgdGVtcGxhdGVzPC9oND4KCjxwPkFsbCB0aGUgdGVtcGxhdGVzIGluIGJvdGggbWFpbiBMSVNFIG1vZHVsZSBhbmQgYW55IG9mIGl0cyBpbnN0YW5jZXMgY2FuIGJlIG92ZXJyaWRkZW4sIGFsdGhvdWdoIHRoZSBvbmVzIHdoaWNoIHdpbGwgYmUgb2YgbW9yZSB1c2Ugd2lsbCBiZSB0aGUgb25lcyBmcm9tIGluc3RhbmNlcywgbmFtZWx5OjwvcD4KPHVsPgogIDxsaT48c3Ryb25nPmVkaXRpdGVtLnRwbDwvc3Ryb25nPjwvbGk+CiAgPGxpPjxzdHJvbmc+ZWRpdGNhdGVnb3J5LnRwbDwvc3Ryb25nPjwvbGk+CjwvdWw+Cgo8cD5UaGVyZSBtYXkgYmUgc29tZSBpbnRlcmVzdCBpbiBjdXN0b21pemluZyB0aGUgbWFpbiBpdGVtcyBsaXN0IGRpc3BsYXksIG1haW5seSBpbiB3aGF0IGNvbmNlcm5zIHRoZSB3YXkgc29tZSBjdXN0b20gZmllbGRzIHNob3cgaXRoIHRoZSBsaXN0LCBidXQgdGhhdCBpcyBiZXR0ZXIgYWNoaWV2ZWQgZWxzZXdoZXJlLCBhcyBleHBsYWluZWQgaW4gYSBmb2xsb3ctdXAgc2VjdGlvbi48L3A+CjxwPkFzIGl0IGhhcHBlbnMgd2l0aCByZWd1bGFyIG1vZHVsZXMsIExJU0UgaW5zdGFuY2VzIGFsc28gc3VwcG9ydCB0aGUgdXNlIG9mIHRoZSA8c3Ryb25nPm1vZHVsZV9jdXN0b208L3N0cm9uZz4gdGVjaG5pcXVlIHRvIGN1c3RvbWlzZSB0aGUgYmFja2VuZCB0ZW1wbGF0ZXMuIEhvd2V2ZXIsIGFuZCBiZWNhdXNlIExJU0UgaW5zdGFuY2VzIGFyZSBub3QgZXhhY3RseSByZWd1bGFyIG1vZHVsZXMsIHRoZXJlIGFyZSBhIGZldyB0aGluZ3MgZGlmZmVyZW50IGluIHRoZSB3YXkgdGhpcyBtYXkgd29yay4gVG8gYmVnaW4gd2l0aCwgdGhlIGZhY3QgdGhhdCB0aGUgaW5zdGFuY2VzIHRlbXBsYXRlcyBhcmUgaW5zaWRlIHRoZSA8c3Ryb25nPkxJU0UvZnJhbWV3b3JrL3RlbXBsYXRlczwvc3Ryb25nPiBmb2xkZXIsIHdoaWNoIG1ha2VzIGl0IGhhcmRlciB0byBmaW5kIHRoZW0gYXQgZmlyc3QgZ2xhbmNlLiBUaGlzIGlzIHRoZSBwbGFjZSB3aGVyZSB5b3Ugd2lsbCBuZWVkIHRvIGNvcHkgdGhlIHRlbXBsYXRlcyBmcm9tIHRvIHRoZSByZWNvbW1lbmRlZCBsb2NhdGlvbnMgdG8gYmUgY3VzdG9taXplZCB3aXRob3V0IGhhdmluZyB0byBldmVyIHRvdWNoIHRoZSBvcmlnaW5hbCB0ZW1wbGF0ZXMuPC9wPgo8cD5MSVNFIGluc3RhbmNlcyBsb29rIGZvciBpdHMgY3VzdG9taXNlZCBtYXN0ZXIgdGVtcGxhdGVzIGluIHRoZSBmb2xsb3dpbmcgbG9jYXRpb25zLCBieSBvcmRlcjo8L3A+Cjx1bD4KICA8bGk+CiAgICB0aGUgdGVtcGxhdGVzIGZvbGRlciBpbnNpZGUgdGhlIGluc3RhbmNlIG93biBmb2xkZXI6CiAgICAgIDxwPkl0IGRvZXNuJ3QgZXhpc3QgYnkgZGVmYXVsdCwgbmVpdGhlciBkbyB0aGUgdGVtcGxhdGVzLCBidXQgaXQgY2FuIGJlIGNyZWF0ZWQsIGFuZCBhbnkgdGVtcGxhdGUgY29waWVkIGZyb20gdGhlIHNvdXJjZSBhYm92ZSB3aWxsIG92ZXJyaWRlIHRoZSBvcmlnaW5hbCBvbmUuIFRoaXMgaXMgdGhlIGJlc3Qgd2F5IGFzIGEgZmlyc3QgYXBwcm9hY2ggYXMgaXQgYWxsb3dzIGZvciB0aGUgdGVtcGxhdGVzIHRvIGJlIGtlcHQgdG9nZXRoZXIgd2l0aCB0aGUgY3VzdG9taXNlZCBpbnN0YW5jZSBhbmQgc2hhcmVkIGFzIGEgd2hvbGUuPC9wPgogIDwvbGk+CiAgPGxpPgogICAgdGhlIHRlbXBsYXRlcyBmb2xkZXIgaW5zaWRlIHRoZSBtb2R1bGVfY3VzdG9tL2luc3RhbmNlX25hbWUgZm9sZGVyOgogICAgICA8cD5JdCdzIGxlZ2FjeSBhbmQgd2lsbCBubyBsb25nZXIgYmUgYW4gb3B0aW9uIHN0YXJ0aW5nIHdpdGggTElTRSAyLjAuIEFueSB0ZW1wbGF0ZSBjb3BpZWQgZnJvbSB0aGUgc291cmNlIGFib3ZlIHdpbGwgb3ZlcnJpZGUgdGhlIHByZXZpb3VzIG9uZXMuPC9wPgogIDwvbGk+CiAgPGxpPgogICAgdGhlIHRlbXBsYXRlcyBmb2xkZXIgaW5zaWRlIHRoZSBhc3NldHMvbW9kdWxlX2N1c3RvbS9pbnN0YW5jZV9uYW1lIGZvbGRlcjoKICAgICAgPHA+VXNlIGFzIGRvY3VtZW50ZWQgaW4gPGEgaHJlZj0iaHR0cHM6Ly9kb2NzLmNtc21hZGVzaW1wbGUub3JnL2N1c3RvbWl6aW5nL2N1c3RvbWl6aW5nLWFkbWluLXRlbXBsYXRlcyIgdGFyZ2V0PSJfYmxhbmsiPkN1c3RvbWl6aW5nIEFkbWluIFRlbXBsYXRlczwvYT4uIEFueSB0ZW1wbGF0ZSBjb3BpZWQgZnJvbSB0aGUgc291cmNlIGFib3ZlIHdpbGwgb3ZlcnJpZGUgdGhlIHByZXZpb3VzIG9uZXMuPC9wPgogIDwvbGk+CjwvdWw+CjxoND4tIGN1c3RvbSBmaWVsZHMgdGVtcGxhdGVzPC9oND4KPHA+VGhlcmUgaXMgdGhlIHRlbXB0YXRpb24gdG8gYWx0ZXIgdGhlIG9yaWdpbmFsIHRlbXBsYXRlcyBvciBldmVuIHRoZSBQSFAgY29kZSBpbiBvcmRlciB0byBtb2RpZnkgdGhlIGZpZWxkcycgcHJlc2VudGF0aW9uLiBJdCBhY3R1YWxseSB1c2VkIHRvIGJlIHRoZSBvbmx5IHdheSB0byBkbyBhbnkgY3VzdG9taXNhdGlvbiB0byB0aGVpciBwcmVzZW50YXRpb24gaW4gdGhlIGJhY2tlbmQuIFRoYXQgaXMgbm8gbG9uZ2VyIHRoZSBjYXNlOiBMSVNFIGluc3RhbmNlcyBhbHNvIGhhdmUgYSBtZWNoYW5pc20gdG8gYWxsb3cgc29tZSBkZWdyZWUgb2YgY3VzdG9taXNhdGlvbiB0byB0aGVtIHdpdGhvdXQgaGF2aW5nIHRvIGFsdGVyIHRoZSBvcmlnaW5hbCBmaWxlcy48L3A+CjxwPlRoZXJlIGFyZSB0d28gdGVtcGxhdGVzIHRoYXQgY2FuIGJlIHVzZWQgdG8gZG8gdGhpcyBjdXN0b21pc2F0aW9uOjwvcD4KPHVsPgogIDxsaT5pbnB1dC4mbHQ7ZmllbGRuYW1lJmd0Oy50cGwsIHdoZXJlIHRoZSBhY3R1YWwgaW5wdXQgdXNlZCBpbiB0aGUgaXRlbSBlZGl0b3IgcmVzaWRlczs8L2xpPgogIDxsaT5saXN0LiZsdDtmaWVsZG5hbWUmZ3Q7LnRwbCwgd2hlcmUgdGhlIHByZXNlbnRhdGlvbiBvZiB0aGUgZmllbGQgaW4gYSBsaXN0LCBpZiBzZWxlY3RlZCB0byBiZSBsaXN0ZWQsIGlzIGRlZmluZWQ7PC9saT4KPC91bD4KPHA+VGhlIG9yaWdpbmFsIHNvdXJjZSBvZiB0aGVzZSB0ZW1wbGF0ZXMgYXJlIGVpdGhlciBpbiBMSVNFIChpbnNpZGUgdGhlIG1vZHVsZXMvTElTRS9saWIvZmllbGRkZWZzLyZsdDtmaWVsZG5hbWUmZ3Q7IGZvbGRlcikgb3IgaW4gYW55IG90aGVyIG1vZHVsZSB0aGF0IHByb3ZpZGVzIGN1c3RvbSBmaWVsZHMgZm9yIExJU0UuIFlvdSdsbCBuZWVkIHRvIGNvcHkgdGhlbSB0byBvbmUgb2YgdGhlIGxvY2F0aW9ucyBsaXN0ZWQgYmVsb3cuIFBsZWFzZSBub3RlIHRoYXQgdGhlc2UgdGVtcGxhdGVzIG1heSBub3QgZXhpc3Qgb24gdGhlIG9yaWdpbmFsIGZpZWxkIGRlZmluaXRpb25zIGZvbGRlcnMgZm9yIGEgbnVtYmVyIG9mIHJlYXNvbnMsIGJ1dCBpdCB3aWxsIGJlIGFuIGluY3JlYXNpbmdseSB1c2VkIGFuZCBlbmNvdXJhZ2VkIHByYWN0aWNlIGZvciBtb3N0IGN1c3RvbSBmaWVsZHMuPC9wPgo8cD5MSVNFIGluc3RhbmNlcyBsb29rIGZvciBpdHMgY3VzdG9taXNlZCBmaWVsZCBkZWZpbml0aW9ucyB0ZW1wbGF0ZXMgaW4gdGhlIGZvbGxvd2luZyBsb2NhdGlvbnMsIGJ5IG9yZGVyOjwvcD4KPHVsPgogIDxsaT4KICAgIHRoZSAmbHQ7ZmllbGRuYW1lJmd0OyBmb2xkZXIgaW5zaWRlIHRoZSBtb2R1bGVfY3VzdG9tL2luc3RhbmNlX25hbWUvZmllbGRkZWYgZm9sZGVyOgogICAgICA8cD5JdCdzIGxlZ2FjeSBhbmQgd2lsbCBubyBsb25nZXIgYmUgYW4gb3B0aW9uIHN0YXJ0aW5nIHdpdGggTElTRSAyLjAuIEFueSB0ZW1wbGF0ZSBjb3BpZWQgZnJvbSB0aGUgc291cmNlIGFib3ZlIHdpbGwgb3ZlcnJpZGUgdGhlIG9yaWdpbmFsIG9uZS48L3A+CiAgPC9saT4KICA8bGk+CiAgICB0aGUgJmx0O2ZpZWxkbmFtZSZndDsgZm9sZGVyIGluc2lkZSB0aGUgYXNzZXRzL21vZHVsZV9jdXN0b20vaW5zdGFuY2VfbmFtZS9maWVsZGRlZiBmb2xkZXI6CiAgICAgIDxwPkFueSB0ZW1wbGF0ZSBjb3BpZWQgZnJvbSB0aGUgc291cmNlIGFib3ZlIHdpbGwgb3ZlcnJpZGUgdGhlIHByZXZpb3VzIG9uZXMuPC9wPgogIDwvbGk+CjwvdWw+Cgo8cD5MSVNFIHdpbGwgdXNlIG9uZSBvZiB0aGVzZSB0ZW1wbGF0ZXMgZXZlbiBpZiB0aGVyZSBhcmUgbm8gb3JpZ2luYWwgdGVtcGxhdGUgc291cmNlcywgc28gdXNlIGNhcmVmdWxseS4gT24gdGhlIGJyaWdodCBzaWRlLCB5b3UgY2FuIGFsd2F5cyBnZXQgYmFjayB0byB0aGUgb3JpZ2luYWwgd2l0aCBsaXR0bGUgZWZmb3J0LjwvcD4KCjxoMz5BY3Rpb24gRmlsZXM8L2gzPgo8cD5UaGUgYmVzdCwgYW5kIHRoZSBtb3N0IHBvd2VyZnVsLCBmb3IgbGFzdDogb3ZlcnJpZGluZyB0aGUgaW5zdGFuY2VzIFBIUCBhY3Rpb24gZmlsZXMuPC9wPgo8cD5JdCdzIHVuZG91YnRlZGx5IG9uZSBvZiB0aGUgbW9zdCBwb3dlcmZ1bCBhbmQgcG90ZW50aWFsbHkgZGFuZ2Vyb3VzIGZlYXR1cmVzIGluIExJU0UuIEl0IGhhcyBiZWVuIHRoZXJlIGZvciBxdWl0ZSBhIHdoaWxlIHRvbyBidXQgdW5kb2N1bWVudGVkLjwvcD4KPHA+VGhlIFBIUCBmaWxlcyBpbnNpZGUgdGhlIDxzdHJvbmc+TElTRS9mcmFtZXdvcmsvdGVtcGxhdGVzPC9zdHJvbmc+IGZvbGRlciBjYW4gYmUgY29waWVkIHRvIHRoZSBiZWxvdyBsb2NhdGlvbnMgdG8gb3ZlcnJpZGUgdGhlIG9yaWdpbmFsIGFjdGlvbiBmaWxlcy4gVGhlc2UgZmlsZXMgYWxsIGhhdmUgdGhlIHByZWZpeCA8c3Ryb25nPmFjdGlvbi48L3N0cm9uZz4sIHRoZSBhY3Rpb24gbmFtZSBhbmQgdGhlIDxzdHJvbmc+LnBocDwvc3Ryb25nPiBleHRlbnNpb24uPC9wPgo8cD5UaGlzIGZlYXR1cmUgaXMgbWVhbnQgZm9yIHNlYXNvbmVkIFBIUCBkZXZlbG9wZXJzIHdpdGggc29saWQga25vd2xlZGdlIG9mIHRoZSBpbnRyaWNhY2llcyBvZiBib3RoIExJU0UgYW5kIENNU01TIGFuZCBhbGxvdyBmb3Igc29tZSB2ZXJ5IGhpZ2ggbGV2ZWwgb2YgY3VzdG9taXphdGlvbiB0byB0aGUgcG9pbnQgb2QgYWxsb3dpbmcgdG8gY29vayB1cCBhIHZlcnkgcG93ZXJmdWwgbW9kdWxlIGluIGEgdmVyeSBzaG9ydCBwZXJpb2Qgb2YgdGltZS48L3A+CjxwPkEgZmV3IG5vdGVzOjwvcD4KPHVsPgogIDxsaT5TZWN1cml0eSBpcyBvZiB0aGUgZXNzZW5jZTogd2hpbGUgZGV2ZWxvcGluZyBhbmQvb3IgY3VzdG9taXppbmcgUEhQIGZvciBhIExJU0UgaW5zdGFuY2UsIG1ha2Ugc3VyZSB5b3Uga2VlcCBpbiBwbGFjZSwgY29weSBvciBvdGhlcndpc2UgYWRvcHQgdGhlIHNlY3VyaXR5IG1lYXN1cmVzIGltcGxlbWVudGVkIHRvIHByZXZlbnQgdnVsbmVyYWJpbGl0aWVzIG9yIGF0dGFjayB2ZWN0b3JzOzwvbGk+CiAgPGxpPkFsd2F5cyBtYWtlIHN1cmUgdGhlIHNvdXJjZSBvZiBhIGN1c3RvbWl6ZWQgTElTRSBpbnN0YW5jZSBpcyByZWxpYWJsZSBhbmQgdHJ1c3R3b3J0aHkgYXMgdGhpcyBmZWF0dXJlIGlzIGV4dHJlbWVseSBwb3dlcmZ1bDs8L2xpPgogIDxsaT5JZiB5b3UgYXJlIG5vdCBzdXJlIHdoYXQgeW91IGFyZSBkb2luZyBlaXRoZXIgZG9uJ3QgZG8gaXQgYXQgYWxsLCBvciByZWFjaCBmb3Igc3BlY2lhbGl6ZWQgaGVscCBmcm9tIHRoZSBkZXYgdGVhbSBvZiBDTVNNUyBpbiBpdHMgU2xhY2sgY2hhbm5lbCAoYWx0aG91Z2ggdGhpcyBtb2R1bGUgaXMgbm90IHRoZWlyIHJlc3BvbnNpYmlsaXR5IG1vc3Qgb2YgdGhlbSBhcmUgd2VsbCB2ZXJzZWQgaW4gdXNpbmcgaXQgYW5kIGl0cyBkZXZlbG9wZXIgY2FuIHVzdWFsbHkgYmUgZm91bmQgdGhlcmUgdG9vKTs8L2xpPgo8L3VsPjwvZGl2PjxkaXYgaWQ9IndoYXRzbmV3X2MiPjxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CiAgPGgzPldoYXQncyBuZXc8L2gzPgogIDxwPlRoZXNlIGFyZSBzb21lIG9mIHRoZSBuZXcgZmVhdHVyZXMgb2YgdGhlIGxhdGVzdCByZWxlYXNlczo8L3A+CgogIDxoND5WZXJzaW9uIDEuNTwvaDQ+CiAgPHVsPgogICAgPGxpPgogICAgICA8Yj5JdGVtIEVkaXRvcjwvYj4gaGFzIG5vdyA8Yj5wcmV2aW91czwvYj4gYW5kIDxiPm5leHQ8L2I+IG5hdmlnYXRpb24gYnV0dG9ucyB3aXRoIG9wdGlvbiB0byBzdWJtaXQgaWYgdGhlcmUgYXJlIGNoYW5nZXMgdG8gdGhlIGZvcm07CiAgICA8L2xpPgogICAgPGxpPgogICAgICBTaW1pbGFyIHRvIHRoZSA8Yj5DdXN0b20gRmllbGQgRnJvbSBVRFQ8L2I+IGN1c3RvbSBmaWVsZCwgdGhlcmUgaXMgbm93IGEgPGI+Q3VzdG9tIEZpZWxkIEZyb20gU21hcnR5IFRlbXBsYXRlPC9iPiBmaWVsZCB3aGljaCBhbGxvd3MgeW91IHRvIHBvcHVsYXRlIGZpZWxkIG9wdGlvbnMgZnJvbSBTbWFydHkgbG9naWM7CiAgICA8L2xpPgogICAgPGxpPgogICAgICBUaGVyZSBpcyBhIDxiPkhlbHAgUG9wdXA8L2I+IGN1c3RvbSBmaWVsZCwgd2hpY2ggd2lsbCBhZGQgYSBjbGlja2FibGUgPGltZyBzcmM9InRoZW1lcy9PbmVFbGV2ZW4vaW1hZ2VzL2ljb25zL3N5c3RlbS9pbmZvLmdpZiI+IGljb24gdG8gdGhlIHByZXZpb3VzIGZpZWxkIGluIHRoZSBsaXN0IHdoaWNoIHdpbGwgb3BlbiBhIGhlbHAgcG9wdXAgZGlhbG9nIHdpdGggeW91ciBjdXN0b20gdGV4dCBhbmQgdGl0bGUsIGdyZWF0IGZvciBoZWxwIHRleHRzIGZvciBvdGhlciBmaWVsZHM7CiAgICA8L2xpPgogICAgPGxpPgogICAgICBUaGVyZSBpcyBhIDxiPlByZXZpZXc8L2I+IGN1c3RvbSBmaWxlZCB0aGF0IGFkZHMgYSBwcmV2aWV3IHRhYiB0byB0aGUgSXRlbSBFZGl0b3I7CiAgICA8L2xpPgogIDwvdWw+CgogIDxoNT5OZXcgZmVhdHVyZXM8L2g1PgoKICA8dWw+CiAgICA8bGk+QWRkZWQgVGl0bGVzIE1vZGVzIGFuZCBhdXRvIGdlbmVyYXRpb247PC9saT4KICAgIDxsaT5BZGRlZCBlYXN5IG5hdmlnYXRpb24gb24gdGhlIEl0ZW0gRWRpdG9yIHZpYSBwcmV2aW91cyBhbmQgbmV4dCBhcnJvdyBidXR0b25zOzwvbGk+CiAgICA8bGk+SXRlbSBUaXRsZSwgQWxpYXMgYW5kIEN1c3RvbSBVUkxzIHRlbXBsYXRlcyBoYXZlIG5ldyB0YWdzIHdpdGggbW9yZSBmZWF0dXJlczs8L2xpPgogICAgPGxpPkFkZGVkIG9wdGlvbiB0byBsaXN0IGluYWN0aXZlIGl0ZW1zLCBhY3RpdmUgaXRlbXMgb3IgYm90aCBpbiBMSVNFIEluc3RhbmNlIEl0ZW0gY3VzdG9tIGZpZWxkOzwvbGk+CiAgPC91bD4KPC9kaXY+PC9kaXY+PGRpdiBpZD0iY29udHJpYnV0ZV9jIj48ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgoKICA8aDM+Q29udHJpYnV0aW9uczwvaDM+CiAgPHA+T3BlbiBTb3VyY2UgbW9kdWxlIGRldmVsb3BtZW50IGZvciBDTVNNUyBpcyBwcmV0dHkgbXVjaCBhIHZvbHVudGVlciBjb21taXRtZW50LiBUaGUgZGV2ZWxvcGVyIGNvbW1pdHMgdGhlIHRpbWUgaGUgY2FuIHNwYXJlIHRvIHRoZSBwcm9qZWN0cyBoZSBjb25zaWRlcnMgaW1wb3J0YW50IHRvIHRoZSBmdXR1cmUgb2YgdGhlIGdyZWF0ZXIgcHJvamVjdCB0aGF0IENNU01TIGlzLiBTb21ldGltZXMgd2hhdCBvbmUgYmVsaWV2ZXMgaXMgaW1wb3J0YW50IGlzIG5vdCBjb252ZXJnZW50IHdpdGggd2hhdCB0aGUgY29tbXVuaXR5IGJlbGlldmVzIHRvIGJlIGltcG9ydGFudC4gU29tZXRpbWVzIGl0J3MgYSB3YWtldXAgY2FsbCBhbmQgdGhlIGRldmVsb3BlciBlbWJyYWNlcyBzb21lIG9mIHRoZSBjb21tdW5pdHkncyB2aXNpb24sIHNvbWV0aW1lcyBib3RoIHZpc2lvbnMgYXJlIG5vdCBjb21wYXRpYmxlLiBJdCdzIGEgYmFsYW5jZSBkaWZmaWN1bHQgdG8gYWNoaWV2ZSwgYnV0IGJyaW5ncyBtb3JlIHJlc3BvbnNpYmlsaXR5IHRvIHRoZSBkZXZlbG9wZXIuIEJ1dCBhbHNvIHJlcXVpcmVzIHNvbWUgZW1wYXRoeSBmcm9tIHRoZSBjb21tdW5pdHkuIEFuZCB0aW1lLi4uPC9wPgogIDxwPlBsZWFzZSBrZWVwIGluIG1pbmQgdGhhdCBkZXZlbG9wZXJzIGRvIGhhdmUgdGhlaXIgZGFpbHkgam9icyB3aGljaCBtZWFucyB0aGF0IGZlYXR1cmUgcmVxdWVzdHMgYXJlIGNvbnNpZGVyZWQgYW5kIGRvbmUgYXMgdGltZSBhbGxvd3MuIElmIHlvdSBuZWVkIGEgZmVhdHVyZSByZWFsbHkgYmFkbHkgY29uc2lkZXIgY29udGFjdGluZyBvbmUgb2YgdGhlIGRldmVsb3BlcnMgZm9yIGEgc3BvbnNvcmVkIGRldmVsb3BtZW50LjwvcD4KICA8cD5Bbm90aGVyIHdheSB0aGF0ICdraWNrcyB0aGUgY2FuJyBmb3J3YXJkIHdoaWxlIG1vdGl2YXRpbmcgdGhlIG1vZHVsZSBkZXZlbG9wZXIgaXMgdG8gc3BvbnNvciBmZWF0dXJlcyB0aGF0IHdlYiBkZXZlbG9wZXJzIHdvdWxkIGxpa2UgdG8gc2VlIGltcGxlbWVudGVkLiBXZWIgZGV2ZWxvcGVycywgbW9yZSBvZnRlbiB0aGF0IG5vdCwga25vdyB3aGF0IHRoZSBmaW5hbCBjbGllbnQgd2FudHMgb3IgbmVlZHMgYW5kIGhlbHAgYnJpZGdpbmcgdGhlIGdhcCBiZXR3ZWVuIHRoZSBmaW5hbCB1c2VyIGFuZCB0aGUgb3JpZ2luYWwgY3JlYXRvciBvZiB0aGUgbW9kdWxlcy4gS2VlcCBpbiBtaW5kIHRoYXQgbW9kdWxlcywgbW9yZSB0aGFuIHRoZSBDTVNNUyBjb3JlLCBhcmUgcGFydGljdWxhcmx5IGFwdCB0byBjb3ZlciBzaXRlcyBzcGVjaWFsIG5lZWRzLCB0aGUgY29yZSBiZWluZyB0aGUgc3VwcG9ydCBhcm91bmQgd2hpY2ggYWxsIHRoaW5ncyBhcmUgcG9zc2libGUuIFNvLCBpZiBzZWUgdGhlIG5lZWQgZm9yIGEgcGFydGljdWxhciBmZWF0dXJlIGluIGFuIGV4aXN0aW5nIG1vZHVsZSwgb3IgYSBiZXNwb2tlIG1vZHVsZSBmb3IgYSBzcGVjaWFsIG5lZWQsIHNlZSBpZiB0aGUgZmluYWwgY3VzdG9tZXIgY2FuIGZpdCBpbiB0aGUgYnVkZ2V0IHRoZSBzcG9uc29yc2hpcCBvZiB0aGF0IHByb2plY3QuIEFzayBhIGRldmVsb3BlciBvciB0aGUgYWN0dWFsIG1vZHVsZSBkZXZlbG9wZXIgaWYgaXRzIGEgbW9kdWxlIGZlYXR1cmUgdGhhdCBpcyByZXF1ZXN0ZWQsIGZvciBhbiBlc3RpbWF0ZSBmb3IgdGhlIGpvYiBhbmQgdHJ5IHRvIG1ha2UgaXQgcG9zc2libGUuIFNvbWV0aW1lcyBpdCBtYXkgYmUgY2hlYXBlciB0aGFuIGl0IGxvb2tzLCBvdGhlciB0aW1lcyBpdCBtYXkgYmUgcG9zc2libGUgdmlhIHNvbWUgc29ydCBvZiBjcm93ZCBmdW5kaW5nLiBXaGVuIGl0IGhhcHBlbnMsIGl0J3MgYSB3aW4td2luIHNpdHVhdGlvbi4gVGhlIGNvbW11bml0eSB3aW5zLCB0aGUgd2ViIGRldmVsb3BlciB3aW5zLCB0aGUgY2xpZW50IHdpbnMsIENNU01TIHdpbnMgYW5kIHRoZSBtb2R1bGUgZGV2ZWxvcGVyIHdpbnMuPC9wPgogIDxwPkEgZGlmZmVyZW50IHdheSB0aGF0IGhlbHBzIHRvbzogZm91bmQgYSBidWc/IGZpbGUgYSBidWcgcmVwb3J0LiBCdXQgcGxlYXNlLCBiZSBhcyB0aG9yb3VnaCBpbiB0aGUgZGVzY3JpcHRpb24gb2YgdGhlIGJ1ZywgdGhlIGNpcmN1bXN0YW5jZXMgYW5kIGVudmlyb25tZW50IHdoZXJlIGl0IGhhcHBlbmVkIGFuZCB0aGUgc3RlcHMgdG8gcmVwcm9kdWNlIGl0OyBpZiB0aGUgZGV2ZWxvcGVyIGNhbid0IHJlcHJvZHVjZSB0aGUgYnVnIGl0IHdpbGwgYmUgZGlmZmljdWx0LCBpZiBub3QgaW1wb3NzaWJsZSwgdG8gZml4IGl0OiBhcyBmYXIgYXMgdGhlIGRldmVsb3BlciBpcyBjb25jZXJuZWQgaWYgaXQgY2Fubm90IGJlIHJlcHJvZHVjZWQgaXQgZG9lc24ndCBleGlzdC4gQmV0dGVyIHlldCwgaWYgeW91IGtub3cgaG93IHRvIGZpeCBpdCwgc3VnZ2VzdCB0aGUgcG9zc2libGUgZml4LiBJZiB2YWxpZCwgdGhlIGRldmVsb3BlciB3aWxsIHN1cmVseSBpbmNsdWRlIGl0LjwvcD4KCiAgPGgzPkhvdyBDYW4gSSBIZWxwPzwvaDM+CiAgPHA+SWYgd2FudCB0byBoZWxwIHRoZSBkZXZlbG9wbWVudCBhbmQgbWFpbnRlbmFuY2Ugb2YgdGhpcyBtb2R1bGUsIHBsZWFzZSBjb25zaWRlciBkb25hdGluZy48L3A+CiAgPHA+QWxsIGhlbHAgaXMgYXBwcmVjaWF0ZWQsIG5vIGNvbnRyaWJ1dGlvbiBpcyB0b28gc21hbGwhIFRoZSBtb3JlIHBlb3BsZSBjb250cmlidXRlIHRoZSBtb3JlIHRpbWUgY2FuIGJlIGFsbG9jYXRlZCB0byB0aGUgbWFpbnRlbmFuY2UgYW5kIGRldmVsb3BtZW50IG9mIHRoZSBtb2R1bGUuIFRoaXMgYWxzbyBlbnJpY2hlcyBDTVMgTWFkZSBTaW1wbGUuPC9wPgoKICA8aDQ+UGF5UGFsPC9oND4KICA8cD5Zb3UgY2FuIGNvbnRyaWJ1dGUgd2l0aCBhIG9uZSB0aW1lIGRvbmF0aW9uIG9yIGEgcmVjdXJyZW50IG9uZSwganVzdCBjbGljayBvbjxicj4KICAgICAgPGEgdGFyZ2V0PSJfYmxhbmsiIGhyZWY9Imh0dHBzOi8vd3d3LnBheXBhbC5jb20vZG9uYXRlLz9ob3N0ZWRfYnV0dG9uX2lkPTM2TFRYSDI0OEw3R0wiPgogICAgICAgIDxpbWcgc3JjPSJodHRwOi8vbG9jYWxob3N0L0NNU01TLTItNC1ERVYtTU9EUy9tb2R1bGVzL0xJU0UvaW1hZ2VzL3BwX2J1dHRvbi5wbmciIGFsdD0iUGF5UGFsIERvbmF0ZSBCdXR0b24iIC8+CiAgICAgIDwvYT4KICA8L3A+CiAgPHA+CiAgICBPciB1c2UgdGhlIGZvbGxvd2luZyBRUiBjb2RlIGZvciB0aGUgc2FtZSBQYXlQYWwgYWNjb3VudDogPGJyPgogICAgPGltZyBzcmM9Imh0dHA6Ly9sb2NhbGhvc3QvQ01TTVMtMi00LURFVi1NT0RTL21vZHVsZXMvTElTRS9pbWFnZXMvcHBfcXJfY29kZS5wbmciIGFsdD0iUGF5UGFsIFFSIENvZGUiIC8+CiAgPC9wPgo8cD5Ob3RlOiB0aGUgcGF5cGFsIGRvbmF0ZSBsaW5rIGhhcyBiZWVuIHVwZGF0ZWQgdG8gbXkgU21BcnQgTGFiIGFjY291bnQuIEkgd2Fzbid0IHVzaW5nIG15IHBlcnNvbmFsIGFjY291bnQgdGhhdCBtdWNoIGFuZCB0aGUgYWNjb3VudCB3YXMgYmVpbmcgbW9yZSBvZiBhbiBoYXNzbGUgdGhhbiBhbiBhc3NldC4uLiBUaGF0J3MgUFAgZm9yJ3lhLi4uPC9wPgogIDxoND5CaXRjb2luPC9oND4KICAgIDxwPiBVc2UgdGhlIGZvbGxvd2luZyBidGMgYWRkcmVzczogPGJyPgogICAgICA8c3BhbiBpZD0iczEiPjE3RzJKRDQxMXNVM3N3Y3ByTmNHTFFDY0hhWkJ5SzE5OE48L3NwYW4+IDxidXR0b24gb25jbGljaz0iY29weVRvQ2xpcGJvYXJkKCcjczEnKSI+Q29weSB0byBDbGlwYm9hcmQ8L2J1dHRvbj4KCiAgPC9wPgogIDxwPgogICAgT3IgdXNlIHRoZSBmb2xsb3dpbmcgUVIgY29kZTogPGJyPgogICAgPGltZyBzcmM9Imh0dHA6Ly9sb2NhbGhvc3QvQ01TTVMtMi00LURFVi1NT0RTL21vZHVsZXMvTElTRS9pbWFnZXMvYnRjX3FyX2NvZGUucG5nIiBhbHQ9IlBheVBhbCBRUiBDb2RlIiAvPgogIDwvcD4KPC9kaXY+PC9kaXY+PGRpdiBpZD0iYWJvdXRfYyI+PGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KCgkJCTxoMz5BYm91dCB0aGlzIG1vZHVsZTwvaDM+CiAgICAgIDxwPk9yaWdpbiBvZiB0aGlzIG1vZHVsZSBjb21lcyBmcm9tIDxzdHJvbmc+TGlzdEl0IE1vZHVsZTwvc3Ryb25nPiBkZXZlbG9wZWQgYnkgPHN0cm9uZz5CZW4gTWFsZW48L3N0cm9uZz4uPGJyIC8+QXMgdGhlcmUgd2VyZSBubyBwbGFucyBvbiBmdXJ0aGVyIGRldmVsb3BtZW50IG9mIHRoZSBtb2R1bGUgc29tZSBwZW9wbGUgZGVjaWRlZCB0byBmb3JrIHRoZSBtb2R1bGUgYW5kIGNvbnRpbnVlIHdpdGggZGV2ZWxvcG1lbnQuPGJyIC8+CgkJCVRoaXMgaXMgYSB0aGlyZCBnZW5lcmF0aW9uIGZvcmsgb2YgdGhlIG1vZHVsZSBhbmQgdGhlcmUgYXJlIG90aGVycy4gQ29uc2lkZXIgdGhpcyBhcyBhbm90aGVyIGZsYXZvdXIgb2YgdGhlIG9yaWdpbmFsIG1vZHVsZS48YnIgLz4KCQkJSWYgeW91IGZpbmQgYW55IGJ1Z3MgcGxlYXNlIGZlZWwgZnJlZSB0byBzdWJtaXQgYSBidWcgcmVwb3J0IDxhIGhyZWY9Imh0dHA6Ly9kZXYuY21zbWFkZXNpbXBsZS5vcmcvYnVnL2xpc3QvMTM0NSIgdGFyZ2V0PSJfYmxhbmsiPmhlcmU8L2E+IG9yIGZvciBhbnkgZ29vZCBpZGVhcyBjb25zaWRlciBzdWJtaXRpbmcgYSBmZWF0dXJlIHJlcXVlc3QgPGEgaHJlZj0iaHR0cDovL2Rldi5jbXNtYWRlc2ltcGxlLm9yZy9mZWF0dXJlX3JlcXVlc3QvbGlzdC8xMzQ1IiB0YXJnZXQ9Il9ibGFuayI+aGVyZTwvYT4uPC9wPgoJCQk8cD5QbGVhc2Uga2VlcCBpbiBtaW5kIHRoYXQgZGV2ZWxvcGVycyBkbyBoYXZlIHRoZWlyIGRhaWx5IGpvYnMgd2hpY2ggbWVhbnMgdGhhdCBmZWF0dXJlIHJlcXVlc3RzIGFyZSBjb25zaWRlcmVkIGFuZCBkb25lIGFzIHRpbWUgYWxsb3dzLiBJZiB5b3UgbmVlZCBhIGZlYXR1cmUgcmVhbGx5IGJhZGx5IGNvbnNpZGVyIGNvbnRhY3Rpbmcgb25lIG9mIHRoZSBkZXZlbG9wZXJzIGZvciBhIHNwb25zb3JlZCBkZXZlbG9wbWVudC4KCQkJPC9wPgoKICAgICAgPGgzPlN1cHBvcnQ8L2gzPgogICAgICA8cD5BcyBwZXIgdGhlIEdQTCwgdGhpcyBzb2Z0d2FyZSBpcyBwcm92aWRlZCBhcy1pcy4gUGxlYXNlIHJlYWQgdGhlIHRleHQgb2YgdGhlIGxpY2Vuc2UgZm9yIHRoZSBmdWxsIGRpc2NsYWltZXIuPC9wPgogICAgICA8cD5UaGUgbW9kdWxlIGF1dGhvciBpcyBpbiBubyB3YXkgb2JsaWdhdGVkIHRvIHByb3ZpZGUgc3VwcG9ydCBmb3IgdGhpcyBjb2RlIGluIGFueSBmYXNoaW9uLiBIb3dldmVyLCB0aGVyZSBhcmUgYSBudW1iZXIgb2YgcmVzb3VyY2VzIGF2YWlsYWJsZSB0byBoZWxwIHlvdSB3aXRoIGl0cyB1c2U6CiAgICAgICAgPHVsPgogICAgICAgICAgPGxpPgogICAgICAgICAgICBJZiB5b3UgZmluZCBhbnkgYnVncyBwbGVhc2UgZmVlbCBmcmVlIHRvIHN1Ym1pdCBhIGJ1ZyByZXBvcnQgPGEgaHJlZj0iaHR0cDovL2Rldi5jbXNtYWRlc2ltcGxlLm9yZy9idWcvbGlzdC8xMzQ1IiB0YXJnZXQ9Il9ibGFuayI+aGVyZTwvYT4gb3IgZm9yIGFueSBnb29kIGlkZWFzIGNvbnNpZGVyIHN1Ym1pdGluZyBhIGZlYXR1cmUgcmVxdWVzdCA8YSBocmVmPSJodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnL2ZlYXR1cmVfcmVxdWVzdC9saXN0LzEzNDUiIHRhcmdldD0iX2JsYW5rIj5oZXJlPC9hPjsKICAgICAgICAgIDwvbGk+CiAgICAgICAgICA8bGk+CiAgICAgICAgICAgIEFkZGl0aW9uYWwgZGlzY3Vzc2lvbiBvZiB0aGlzIG1vZHVsZSBtYXkgYWxzbyBiZSBmb3VuZCBpbiB0aGUgPGEgaHJlZj0iaHR0cDovL2ZvcnVtLmNtc21hZGVzaW1wbGUub3JnIj5DTVMgTWFkZSBTaW1wbGUgRm9ydW1zPC9hPi4gIFdoZW4gZGVzY3JpYmluZyBhbiBpc3N1ZSBwbGVhc2UgbWFrZSBhbiBlZmZvcnQgdG8gcHJvdmlkZSBhbGwgcmVsZXZhbnQgaW5mb3JtYXRpb24sIGEgdGhvcm91Z2ggZGVzY3JpcHRpb24gb2YgeW91ciBpc3N1ZSwgYW5kIHN0ZXBzIHRvIHJlcHJvZHVjZSBpdCBvciB5b3VyIGRpc2N1c3Npb24gbWF5IGJlIGlnbm9yZWQ7CiAgICAgICAgICA8L2xpPgogICAgICAgIDwvdWw+CiAgPC9wPgogIDxwPlBsZWFzZSBrZWVwIGluIG1pbmQgdGhhdCBkZXZlbG9wZXJzIGRvIGhhdmUgdGhlaXIgZGFpbHkgam9icyB3aGljaCBtZWFucyB0aGF0IGZlYXR1cmUgcmVxdWVzdHMgYXJlIGNvbnNpZGVyZWQgYW5kIGRvbmUgYXMgdGltZSBhbGxvd3MuIElmIHlvdSBuZWVkIGEgZmVhdHVyZSByZWFsbHkgYmFkbHkgY29uc2lkZXIgY29udGFjdGluZyBvbmUgb2YgdGhlIGRldmVsb3BlcnMgZm9yIGEgc3BvbnNvcmVkIGRldmVsb3BtZW50LjwvcD4KCiAgICAgIDxwPklmIHdhbnQgdG8gaGVscCB0aGUgZGV2ZWxvcG1lbnQgYW5kIG1haW50ZW5hbmNlIG9mIHRoaXMgbW9kdWxlLCBwbGVhc2UgY29uc2lkZXIgPGEgaHJlZj0iIiBpZD0iZG9uYXRpbmciPmRvbmF0aW5nPC9hPi48L3A+CgogICAgICA8aDM+Q29weXJpZ2h0IGFuZCBMaWNlbnNlPC9oMz4KCgkJCTxwIGNsYXNzPSJwX2JvdHRvbV8xNSI+VGhlIE1vZHVsZSBpcyBjdXJyZW50bHkgYmVpbmcgZGV2ZWxvcGVkIGJ5PC9wPgoKCQkJPHAgY2xhc3M9InBfYm90dG9tXzE1Ij48c3Ryb25nPkZlcm5hbmRvIE1vcmdhZG8gKEpvIE1vcmcpPC9zdHJvbmc+CgkJCTxiciAvPgoJCQlXZWI6IDxhIHRhcmdldD0iX2JsYW5rIiBocmVmPSJodHRwczovL3d3dy5zbS1hcnQtbGFiLmNvbSIgcmVsPSJleHRlcm5hbCI+d3d3LnNtLWFydC1sYWIuY29tPC9hPgoJCQk8YnIgLz4KCQkJRW1haWw6IDxhIGhyZWY9Im1haWx0bzpqb21vcmdAc20tYXJ0LWxhYi5jb20iPmpvbW9yZ0BzbS1hcnQtbGFiLmNvbTwvYT4KCQkJPC9wPgoKCQkJPHAgY2xhc3M9InBfYm90dG9tXzE1Ij4uLi4gd2l0aCBhIGh1Z2UgYW1vdW50IG9mIGhlbHAgZnJvbTwvcD4KCQkJPHAgY2xhc3M9InBfYm90dG9tXzE1Ij48c3Ryb25nPlJvbGYgVGphc3NlbnMgKFJvbGYgVGopPC9zdHJvbmc+CiAgICAgIDxiciAvPgogICAgICB3aG8ncyBsb3ZlIGFuZCBjb21taXRtZW50IGZvciB0aGUgQ01TTVMgcHJvamVjdCBoYXMgYmVlbiBib3RoIGluc3BpcmF0aW9uYWwgYW5kIHByaWNlbGVzcy4KCQkJPGJyIC8+CiAgICAgICAgU2FkbHksIGxvbmcgdGltZSBEZXYgVGVhbSBtZW1iZXIgYW5kIGdyZWF0IGZyaWVuZCB0byBDTVMgTWFkZSBTaW1wbGUsIFJvbGYgVGphc3NlbnMgcGFzc2VkIGF3YXkgdW5leHBlY3RlZGx5IG9uIHRoZSAzMHRoIG9mIE1heSAyMDIyLiBGYXJld2VsbCBSb2xmLCB3ZSB3aWxsIG1pc3MgeW91LgoJCQk8YnIgLz4KCQkJV2ViOiA8YSB0YXJnZXQ9Il9ibGFuayIgaHJlZj0iaHR0cHM6Ly9yb2xmdGphc3NlbnMuY29tIiByZWw9ImV4dGVybmFsIj5yb2xmdGphc3NlbnMuY29tPC9hPgoJCQk8YnIgLz4KCQkJRG9uJ3QgZm9yZ2V0IHRvIGNoZWNrIGhpcyB0aXBzIGFuZCB0cmlja3Mgc2l0ZTogPGEgdGFyZ2V0PSJfYmxhbmsiIGhyZWY9Imh0dHBzOi8vY21zY2FuYmVzaW1wbGUub3JnIiByZWw9ImV4dGVybmFsIj5jbXNjYW5iZXNpbXBsZS5vcmc8L2E+CgkJCTxiciAvPgoJCQlhbmQgaGlzIENNU01TIHNob3djYXNlIHNpdGU6IDxhIHRhcmdldD0iX2JsYW5rIiBocmVmPSJodHRwczovL3dlbG92ZWNtc21zLmNvbSIgcmVsPSJleHRlcm5hbCI+d2Vsb3ZlY21zbXMuY29tPC9hPgoJCQk8L3A+CgkJCTxocj4KICAgIDxwPkNvcHlyaWdodCAmY29weTsgMjAxNSAtIDIwMjMgLiBBbGwgUmlnaHRzIEFyZSBSZXNlcnZlZC48YnIgLz48L3A+CiAgICAgIDxocj4KICAgICAgPHA+PHN0cm9uZz5MSVNFPC9zdHJvbmc+IGlzIGZyZWUgc29mdHdhcmU7PGJyIC8+IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSA8c3Ryb25nPkdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlPC9zdHJvbmc+IGFzIHB1Ymxpc2hlZCBieSB0aGUgPHN0cm9uZz5GcmVlIFNvZnR3YXJlIEZvdW5kYXRpb248L3N0cm9uZz47PGJyIC8+IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uPC9wPgogICAgICA8cD48c3Ryb25nPkxJU0U8L3N0cm9uZz4gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwgYnV0IDxzdHJvbmc+V0lUSE9VVCBBTlkgV0FSUkFOVFk8L3N0cm9uZz47PGJyIC8+IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZiA8c3Ryb25nPk1FUkNIQU5UQUJJTElUWTwvc3Ryb25nPiBvciA8c3Ryb25nPkZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFPC9zdHJvbmc+LjwvcD4KICAgICAgPHA+U2VlIHRoZUdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuPC9wPgogICAgICAgPHA+WW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgPHN0cm9uZz5HTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZTwvc3Ryb25nPiBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTs8YnIgLz4gaWYgbm90LCB3cml0ZSB0byB0aGUgPHN0cm9uZz5GcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcgVVNBPC9zdHJvbmc+IG9yIDxhIHRhcmdldD0iX2JsYW5rIiBocmVmPSJodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwiPnJlYWQgaXQgb25saW5lPC9hPi48L3A+CiAgICAgIDxwPjxzdHJvbmc+WW91IG11c3QgYWdyZWUgdG8gdGhpcyBsaWNlbnNlIGJlZm9yZSB1c2luZyA8c3Ryb25nPkxJU0U8L3N0cm9uZz4uPC9zdHJvbmc+PC9wPgogICAgICA8aHI+CiAgICAgIDxoND5Db250cmlidXRvcnMgYW5kIFNwb25zb3JzPC9oND4KICAgICAgPHVsPgogICAgICAgIDxsaT48c3Ryb25nPlJvbGYgVGphc3NlbnM8L3N0cm9uZz48YnIgLz53d3cuY21zY2FuYmVzaW1wbGUub3JnPC9saT4KICAgICAgICA8bGk+PHN0cm9uZz5UYXBpbyBMJm91bWw7eXR0eSAoc3Rpa2tpKTwvc3Ryb25nPiB0YXBzYUBvcmFuZ2UtbWVkaWEuZmkgPGJyIC8+d3d3Lm9yYW5nZS1tZWRpYS5maTwvbGk+CiAgICAgICAgPGxpPjxzdHJvbmc+R29yYW4gSWxpYyAodW5pcXUzKTwvc3Ryb25nPiB1bmlxdTNlQGdtYWlsLmNvbSA8YnIgLz53d3cuaWR0LW1lZGlhLmNvbTwvbGk+CiAgICAgICAgPGxpPjxzdHJvbmc+Sm9uYXRoYW4gU2NobWlkIChGb2FseSopPC9zdHJvbmc+PC9saT4KICAgICAgICA8bGk+PHN0cm9uZz5Sb2JlcnQgQ2FtcGJlbGwgKGNhbGd1eTEwMDApPC9zdHJvbmc+PGJyIC8+d3d3LmNhbGd1eTEwMDAuY29tPC9saT4KICAgICAgICA8bGk+PHN0cm9uZz5MdWthcyBCbGF0dGVyIChub2NrZW5mZWxsKTwvc3Ryb25nPiBub2NrZW5mZWxsQGdtYWlsLmNvbSA8YnIgLz53d3cuYmxhdHRlcnRlY2guY2g8L2xpPgogICAgICAgIDxsaT48c3Ryb25nPkFybm91ZCAoYXJub3VkKTwvc3Ryb25nPjwvbGk+CiAgICAgICAgPGxpPjxzdHJvbmc+V2F5bmUgT05laWwgKHdpc2hib25lKTwvc3Ryb25nPjwvbGk+CiAgICAgICAgPGxpPjxzdHJvbmc+QWxiZXJ0IENhbnNhZG88L3N0cm9uZz48L2xpPgogICAgICAgIDxsaT48c3Ryb25nPkNocmlzIENpYXZhcmVsbGEgKGNhY2lhdmFyKTwvc3Ryb25nPjwvbGk+CiAgICAgICAgPGxpPjxzdHJvbmc+SmVmZiBCb3NjaCAoYWpwcm9nKTwvc3Ryb25nPiBqZWZmQGFqcHJvZ3JhbW1pbmcuY29tPGJyIC8+d3d3LmFqcHJvZ3JhbW1pbmcuY29tPC9saT4KICAgICAgICA8bGk+PHN0cm9uZz5FZHVhcmRvIE1hcnRpbmV6IChoRXhESik8L3N0cm9uZz48L2xpPgogICAgICAgIDxsaT48c3Ryb25nPk1hdHQgSG9ybnNieSAoRElHSTMpPC9zdHJvbmc+PGJyIC8+d3d3Lm1hdHRob3Juc2J5LmNhPC9saT4KICAgICAgICA8bGk+PHN0cm9uZz5HcmVnb3J5IFByb3NzZXIgKGdlZXBlcnMpPC9zdHJvbmc+PGJyIC8+d3d3LnN0aWNreXdpY2tldGRlc2lnbnMuY29tPC9saT4KICAgICAgICA8bGk+PHN0cm9uZz5UdXJuYnVsbFJpcGxleTwvc3Ryb25nPjxiciAvPnd3dy50dXJuYnVsbHJpcGxleS5jby51azwvbGk+CiAgICAgICAgPGxpPjxzdHJvbmc+TWFudWVsIFNjaHJveWVuczwvc3Ryb25nPiB3ZWJtYXN0ZXJAd2ViYWhvbGljLmJlPGJyIC8+d2ViYWhvbGljLmJlPC9saT4KICAgICAgICA8bGk+PHN0cm9uZz5QaXhlbCBTb2x1dGlvbnM8L3N0cm9uZz48YnIgLz5odHRwczovL3BpeGVsc29sdXRpb25zLmJpejwvbGk+CiAgICAgICAgPGxpPjxzdHJvbmc+S29hJ2xpbms8L3N0cm9uZz48YnIgLz5odHRwczovL3d3dy5rb2FsaW5rLmZyPC9saT4KICAgICAgICA8bGk+PHN0cm9uZz5EYXJyZW4gS2llcm1hbiAoa2llcndlYik8L3N0cm9uZz48YnIgLz5odHRwczovL3d3dy5raWVyd2ViLmNvLnVrLzwvbGk+CgkJCTwvdWw+CgkJPC9kaXY+PC9kaXY+PGRpdiBjbGFzcz0iY2xlYXJiIj48L2Rpdj48L2Rpdj4=]]></help>
	<about><![CDATA[PGJyIC8+QXV0aG9yOiBKbyBNb3JnICZsdDtqb21vcmdAc20tYXJ0LWxhYi5jb20mZ3Q7PGJyIC8+PGJyIC8+VmVyc2lvbjogMS41LjE8YnIgLz48YnIgLz5DaGFuZ2UgSGlzdG9yeTo8YnIgLz48aDQ+VmVyc2lvbiAxLjUuMTwvaDQ+Cgo8aDU+Rml4ZXM8L2g1Pgo8dWw+CiAgPGxpPkZpeGVkIGEgYnVnIGludHJvZHVjZWQgaW4gMS41LjAgd2hlcmUgcm91dGVzIGluIG5ldyBpdGVtcyBoYWQgYW4gaW5jb3JyZWN0IHBhcmFtZXRlciByZWdpc3RlcmVkOzwvbGk+CjwvdWw+Cgo8aDQ+VmVyc2lvbiAxLjUuMDwvaDQ+Cgo8aDU+Rml4ZXM8L2g1Pgo8dWw+CiAgPGxpPkEgZmV3IG1pbm9yIGZpeGVzOzwvbGk+CiAgPGxpPkZpeGVkIHRoZSBjaGFuZ2Vsb2cgY2FsbDs8L2xpPgogIDxsaT5GaXhlZCBhbiBpc3N1ZSB3aXRoIHRoZSBnZW5lcmF0aW9uIG9mIGN1c3RvbSBVUkxzIHdoZW4gdGhlIGZpZWxkIHdhcyBoaWRkZW47PC9saT4KICA8bGk+TW9yZSBQSFAgOC4xIGNvbXBhdGliaWxpdHkgZml4ZXM7PC9saT4KPC91bD4KCjxoNT5OZXcgZmVhdHVyZXM8L2g1PgoKPHVsPgogIDxsaT5BZGRlZCBuZXcgZmllbGRzOgogICAgPHVsPgogICAgICA8bGk+Q3VzdG9tIEZpZWxkIEZyb20gU21hcnR5IFRlbXBsYXRlOzwvbGk+CiAgICAgIDxsaT5IZWxwIFBvcHVwOzwvbGk+CiAgICAgIDxsaT5QcmV2aWV3IFRhYjs8L2xpPgogICAgPC91bD4KICA8L2xpPgogIDxsaT5BZGRlZCBUaXRsZXMgTW9kZXMgYW5kIGF1dG8gZ2VuZXJhdGlvbjs8L2xpPgogIDxsaT5BZGRlZCBlYXN5IG5hdmlnYXRpb24gb24gdGhlIEl0ZW0gRWRpdG9yIHZpYSBwcmV2aW91cyBhbmQgbmV4dCBhcnJvdyBidXR0b25zOzwvbGk+CiAgPGxpPkl0ZW0gVGl0bGUsIEFsaWFzIGFuZCBDdXN0b20gVVJMcyB0ZW1wbGF0ZXMgaGF2ZSBuZXcgdGFncyB3aXRoIG1vcmUgZmVhdHVyZXM7PC9saT4KICA8bGk+QWRkZWQgb3B0aW9uIHRvIGxpc3QgaW5hY3RpdmUgaXRlbXMsIGFjdGl2ZSBpdGVtcyBvciBib3RoIGluIExJU0UgSW5zdGFuY2UgSXRlbSBjdXN0b20gZmllbGQ7PC9saT4KICA8bGk+VXBsb2FkIEZpbGUgY2FuIG5vdyB1c2UgU21hcnQgSW1hZ2UgQVBJIHRvIHByb2Nlc3MgdXBsb2FkZWQgaW1hZ2VzOzwvbGk+CiAgPGxpPlRoZXJlIGlzIG5vdyBhbiBlYXN5IG1lY2hhbmlzbSB0byBjdXN0b21pc2UgZmllbGQgdGVtcGxhdGVzOzwvbGk+CjwvdWw+Cgo8aDU+Q2hhbmdlczwvaDU+Cgo8dWw+CiAgPGxpPkl0ZW0gVGl0bGUsIEFsaWFzIGFuZCBDdXN0b20gVVJMcyBoYXZlIGFuIGltcHJvdmVkIGdlbmVyYXRvcjs8L2xpPgogIDxsaT5JdGVtIFRpdGxlLCBBbGlhcyBhbmQgQ3VzdG9tIFVSTHMgY2FuIG5vdyB1c2UgZmFzdGVyIGFuZCBtb3JlIHJvYnVzdCBzbWFydHkgcGFyc2luZzs8L2xpPgogIDxsaT5BbiBhdHRlbXB0IGhhcyBiZWVuIG1hZGUgdG8gaW1wcm92ZSBkb2N1bWVudGF0aW9uOzwvbGk+CjwvdWw+Cgo8aDQ+VmVyc2lvbiAxLjQuMzwvaDQ+Cgo8aDU+Rml4ZXM8L2g1Pgo8dWw+CiAgPGxpPkZpeGVzIGEgdnVsbmVyYWJpbGl0eSBpbiBhIHBhcnRpY3VsYXIgaW1wb3J0YW50IGFjdGlvbiBmaWxlOzwvbGk+CjwvdWw+Cgo8aDQ+VmVyc2lvbiAxLjQuMjwvaDQ+Cgo8aDU+Rml4ZXM8L2g1Pgo8dWw+CiAgPGxpPkEgZmV3IG1pbm9yIGZpeGVzOzwvbGk+CiAgPGxpPlJlLWZpeGVkIEJSIzEyMzcyOiBlcnJvciB3aGlsZSBpbXBvcnRpbmcgTElTRSBpbnN0YW5jZXMgcHJldmlvdXNseSBub3QgY29ycmVjdGx5IGZpeGVkOzwvbGk+CjwvdWw+Cgo8aDQ+VmVyc2lvbiAxLjQuMTwvaDQ+Cgo8aDU+Rml4ZXM8L2g1Pgo8dWw+CiAgPGxpPkZpeGVkIEJSIzEyMzcyOiBlcnJvciB3aGlsZSBpbXBvcnRpbmcgTElTRSBpbnN0YW5jZXM7PC9saT4KICA8bGk+Rml4ZWQgYSBidW5jaCBvZiBpc3N1ZXMgY29uc2VxdWVuY2Ugb2YgdGhlIDEuNCByZWxlYXNlIGJlaW5nIGN1dCBmcm9tIGEgd29yayBjb3B5IHRoYXQgd2Fzbid0IHRoZSBsYXRlc3QgdGVzdGVkIGFuZCBzdGFibGUgb25lOzwvbGk+CjwvdWw+CjxoND5WZXJzaW9uIDEuNDwvaDQ+Cgo8aDU+Rml4ZXM8L2g1PgoKPHVsPgogIDxsaT5TZXZlcmFsIGZpeGVzIGZvciBDTVNNUyAyLjMgY29tcGF0aWJpbGl0eTs8L2xpPgogIDxsaT5TZXZlcmFsIFBIUCBub3RpY2VzIGFuZCB3YXJuaW5ncyBmaXhlZDs8L2xpPgo8L3VsPgoKPGg1Pk5ldyBmZWF0dXJlczwvaDU+Cgo8dWw+CiAgPGxpPkltcHJvdmVkIGhlbHAgdGV4dCwgbm93IGFsc28gZmllbGQgZGVmaW5pdGlvbiBoZWxwIChFbmdsaXNoIG9ubHkpOzwvbGk+CjwvdWw+CgoKPGg0PlZlcnNpb24gMS4zLjE8L2g0PgoKPGg1PkZpeGVzPC9oNT4KCjx1bD4KICA8bGk+Rml4ZWQgYSBtaW5vciB0eXBvIGluIHZlcnNpb24gbnVtYmVycyBpbiBsYXN0IGNoYW5nZWxvZzogcHJldmlvdXMgdmVyc2lvbiB3YXMgMS4zLCBub3QgMS40OzwvbGk+CiAgPGxpPkZpeGVkIHRoZSBKTUZpbGVQaWNrZXIgZmllbGQgZGVmZmluaXRpb246IGNsZWFuZWQgdGhlIGZpbGUgb2Ygb2xkZXIgYXR0ZW1wdHMgb2YgZml4ZXMgKHRoZSBmaXggaGFkIHRvIGJlIG9uIHRoZSBKTUZpbGVQaWNrZXIgaXRzZWxmLCBub3QgaGVyZSk7PC9saT4KICA8bGk+QnVtcGVkIHRoZSBuaW5pbXVtIEpNRmlsZVBpY2tlciB2ZXJzaW9uIGluIGRlcGVuZGVuY2llczs8L2xpPgogIDxsaT5GaXhlZCBzdXBwb3J0IHRvIGV4dGVybmFsIG1vZHVsZXMgZmllbGRzIGRlZmluaXRpb25zOzwvbGk+CiAgPGxpPk1pbm9yIHR3ZWFrczs8L2xpPgo8L3VsPgoKCjxoND5WZXJzaW9uIDEuMzwvaDQ+Cgo8aDU+TmV3IGZlYXR1cmVzPC9oNT4KCjx1bD4KICA8bGk+U2VhcmNoIHBhcmFtZXRlcnMgYXJlIG5vdyBzdG9yZWQgaW50byB0aGUgc2Vzc2lvbiBzbyB0aGV5IGNhbiBiZSByZXRyaWV2ZWQgYnkgc21hcnR5IGlmIG5lZWRlZCB1c2luZyA8c3Ryb25nPiZsdDs8ZW0+aW5zdGFuY2VuYW1lPC9lbT4mZ3Q7X3NlYXJjaDwvc3Ryb25nPiBhbmQgPHN0cm9uZz4mbHQ7PGVtPmluc3RhbmNlbmFtZTwvZW0+Jmd0O19zZWFyY2hfKjwvc3Ryb25nPiwgd2hlcmUgPHN0cm9uZz4qPC9zdHJvbmc+IGlzIGEgZmllbGQgYWxpYXM7PC9saT4KICA8bGk+QWRkZWQgPHN0cm9uZz4iZmlsdGVyb3JkZXJieSI8L3N0cm9uZz4gcGFyYW1ldGVyIG9uIGFjdGlvbiBzZWFyY2ggd2hlbiB1c2luZyBmaWx0ZXJzOiBvcmRlcnMgdGhlIGRyb3Bkb3duIHZhbHVlcyBvbiB0aGUgc2VhcmNoIGZvcm0gdGVtcGxhdGU7PC9saT4KICA8bGk+QWRkZWQgYSBjdXN0b20gZmllbGQgZm9yIGNvcmUgPHN0cm9uZz4iRmlsZVBpY2tlciI8L3N0cm9uZz47PC9saT4KPC91bD4KCjxoNT5DaGFuZ2VzPC9oNT4KCjx1bD4KICA8bGk+SW1wbGVtZW50ZWQgRlIjMTEzMjA7PC9saT4KICA8bGk+SW1wbGVtZW50ZWQgRlIjMTEzMjM6IFNob3cgaXRlbSBuYW1lIGluIGhlYWRlcjs8L2xpPgogIDxsaT5BIG51bWJlciBvZiBpbXByb3ZlbWVudHMgYW5kIGZpeGVzIHRvIHRoZSBpbnRlcmFjdGlvbiBiZXR3ZWVuIExJU0UgYW5kIHRoZSBjb3JlIHNlYXJjaCBmZWF0dXJlOgogICAgPHVsPgogICAgICA8bGk+bm93IG9ubHkgdGV4dCBiYXNlZCBmaWVsZHMgY2FuIGJlIGluZGV4ZWQgKFRleHRJbnB1dCBhbmQgVGV4dEFyZWEpOzwvbGk+CiAgICAgIDxsaT5maWVsZHMgbmVlZCB0byBiZSBzZXQgaW4gb3JkZXIgdG8gYmUgaW5kZXhlZCwgYXMgYW4gb3B0aW9uOzwvbGk+CiAgICAgIDxsaT5MSVNFIG5vdyBzdXBwb3J0cyBhbnkgc2VhcmNoIG1vZHVsZSB0aGF0IGlzIGNvbXBhdGlibGUgd2l0aCB0aGUgQ29yZSBTZWFyY2ggTW9kdWxlOzwvbGk+CiAgICAgIDxsaT5SZS1pbmRleGluZyBhbGwgY29udGVudCBub3cgYWN0dWFsbHkgd29ya3MgYXMgZXhwZWN0ZWQgb24gTElTRSBzaWRlOzwvbGk+CiAgICAgIDxsaT5BIGZldyBvdGhlciB0d2Vha3MgYW5kIGVuaGFuY2VtZW50czs8L2xpPgogICAgPC91bD4KICA8L2xpPgo8L3VsPgoKPGg1PkZpeGVzPC9oNT4KCjx1bD4KICA8bGk+Rml4ZXMgdG8gRkVVTXVsdGlTZWxlY3QgYW5kIEpRdWVyeU11bHRpU2VsZWN0OiB1bnNlbGVjdGluZyBhbGwgbm93IHdva3MgYXMgZXhwZWN0ZWQ7PC9saT4KICA8bGk+QlIjMTEzMTkgLSBYTUwgSW1wb3J0IGRvZXMgbm90IHdvcmsgd2hlbiB0aGVyZSBhcmUgZW50aXRpZXMgaW4gbW9kdWxlIGZyaWVuZGx5IG5hbWU7PC9saT4KICA8bGk+QlIjMTEzMjggLSBtaW5vciBlcnJvciBsb2dnZWQgZm9yIEZpbGVVcGxvYWQgZmllbGQ7PC9saT4KICA8bGk+Rml4ZXMgd2l0aCByZWdhcmRzIHRvIG1vZHVsZV9mcmllbmRseW5hbWUgbm90IGRlZmF1bHRpbmcgdG8gbW9kdWxlX25hbWUgd2hlbiB0aGUgZnJpZW5kbHkgbmFtZSBmaWVsZCBpcyBlbXB0eSB3aGlsZSBjcmVhdGluZyBhIG5ldyBpbnN0YW5jZTs8L2xpPgogIDxsaT5CUiMxMTMyMSAtIGVkaXRpdGVtLnRwbCBmaWxlIGhhcyBkdXBsaWNhdGVkIGlkJ3M7PC9saT4KICA8bGk+QlIjMTEyNDIgLSBhdXRvLWFsaWFzIGlzIG5vdCB2YWxpZCB3aGVuIHRpdGxlIHN0YXJ0cyB3aXRoIG51bWJlcjs8L2xpPgogIDxsaT5GaXhlcyBmb3IgcGFnaW5hdGlvbiBsaW5rcyBvbiB0aGUgZnJvbnRlbmQ6IHByZXR0eSBVUmxzIHdpbGwgc3RpbGwgYmUgYXZhaWxhYmxlLCBidXQgYXMgc29vbiBhcyBleHRhIHRhZyBwYXJhbWV0ZXJzIGFyZSBhZGRlZCBhbmQgbm90IHN1cHBvcnRlZCBieSBwcmV0dHkgVVJMcywgdWdseSBVUkxzIGtpY2sgaW47PC9saT4KICA8bGk+Rml4ZXMgdG8gdGVtcGxhdGUgcmVzb3VyY2UgYW5kIGZpZWxkZGVmIHRvIG1ha2UgaXQgd29yayB3aXRoIGNtc21zIDIuMi4yIChvbiBhY2NvdW50IG9mIGFuIGltcG9ydGFudCBjb3JlIHNlY3VyaXR5IGZpeCk7PC9saT4KICA8bGk+QlIjMTEwNzEgLSBTZWxlY3REYXRlVGltZSBmaWVsZCBnZXRzIHByZS1maWxsZWQgd2l0aCBVVEMgdGltZSBpbnN0ZWFkIGxvY2FsOzwvbGk+CiAgPGxpPkJSIzExMzMwIFNhdmUgc29ydG9yZGVyIGl0ZW1zIHJldmVyc2VkIHdpdGggZGVmYXVsdCBzb3J0b3JkZXIgPSBERVNDOzwvbGk+CiAgPGxpPkEgZ3JlYXQgbnVtYmVyIG9mIG1pbm9yIGZpeGVzIGFuZCBjb2RlIG9wdGltaXphdGlvbnM7PC9saT4KPC91bD4KCgo8aDQ+VmVyc2lvbiAxLjIuMzwvaDQ+Cgo8aDU+Q2hhbmdlczwvaDU+Cgo8dWw+CiAgPGxpPkNoYW5nZWQgbW9zdCBpZiBub3QgYWxsIGRpZSgpIGVycm9yIHN0YXRlbWVudHMgdG8gZXhjZXB0aW9ucywgYWxsb3dpbmcgZm9yIGJldHRlciBlcnJvciBoYW5kbGluZzs8L2xpPgo8L3VsPgoKPGg1PkZpeGVzPC9oNT4KCjx1bD4KICA8bGk+Rml4ZXMgYSBidWcgaW50cm9kdWNlZCBpbiAxLjIuMi4xIHJlZ2FyZGluZyB0aGUgZXhjbHVkZV9jYXRlZ29yeSBhbmQgY2F0ZWdvcnkgcGFyYW1ldGVyczs8L2xpPgogIDxsaT5GaXhlcyBhIGJ1ZyBvY2N1cnJpbmcgd2hlbiBzYXZpbmcgaXRlbXMgd2l0aCBubyBjYXRlZ29yaWVzIGl0IHdvdWxkIGVycm9yIG9uIHNvbWUgTXlTUUwgZGF0YWJhc2Ugc2V0dXBzOzwvbGk+CiAgPGxpPkZpeGVzIGEgc21hbGwgYnVnIGluIHRoZSBpbnN0YW5jZSBjbGFzcyBjb25zdHJ1Y3RvciBwcmV2ZW50aW5nIHRoZSByb3V0ZXMgdG8gYmUgcmVnaXN0ZXJlZDs8L2xpPgo8L3VsPgoKPGg0PlZlcnNpb24gMS4yLjIuMTwvaDQ+Cgo8aDU+Rml4ZXM8L2g1PgoKPHVsPiAKICA8bGk+UmVtb3ZlZCBhIGZvcmdvdHRlbiBkZWJ1ZyBzdGF0ZW1lbnQ7PC9saT4KPC91bD4KCjxoND5WZXJzaW9uIDEuMi4yPC9oND4KCjxoNT5OZXcgZmVhdHVyZXM8L2g1PgoKPHVsPgogIDxsaT5BZGRlZCBKUXVlcnkgTXVsdGlTZWxlY3QgRmllbGQgRGVmaW5pdGlvbjs8L2xpPgogIDxsaT5BZGRlZCBKUXVlcnkgTXVsdGlTZWxlY3QgdG8gQ2F0ZWdvcmllcyBvcHRpb25zOzwvbGk+CiAgPGxpPkxJU0Ugc3RhcnRzIHVzaW5nIHRoZSBuYW1lc3BhY2VzIGZlYXR1cmVzIG9mIFBIUCA1LjMuMDs8L2xpPgogIDxsaT5OZXcgZXhjZXB0aW9ucyBoYW5kbGVyOiBlcnJvcnMgYW5kIGV4Y2VwdGlvbnMgaW4gTElTRSBjYW4gbm93IGJlIGxvY2FsaXplZCAoY2hlY2sgZXJyb3IgY29kZXMgYW5kIHN0cmluZ3MgaW4gdGhlIFRyYW5zbGF0b3IgQ2VudGVyKTs8L2xpPgogIDxsaT5BZGRlZCBGRVUgU2luZ2xlU2VsZWN0IEZpZWxkIERlZmluaXRpb24gKGRlcHJlY2F0ZXMgRkVVIERyb3Bkb3duKTs8L2xpPgogIDxsaT5BZGRlZCBGRVUgTXVsdGlTZWxlY3QgRmllbGQgRGVmaW5pdGlvbjs8L2xpPgogIDxsaT5BZGRlZCBzdXBwb3J0IGZvciBhcnJheXMgaW4gb3B0aW9udmFsdWVzOzwvbGk+IAogIDxsaT5BZGRlZCBzdXBwb3J0IGZvciBhZG1pbiBsaXN0aW5nIHRlbXBsYXRlczwvbGk+IAo8L3VsPgoKPGg1PkZpeGVzPC9oNT4KCjx1bD4gCiAgPGxpPkZpeGVzIGJhY2tsaW5rIGZ1bmN0aW9uYWxpdHk7PC9saT4KICA8bGk+Rml4ZXMgdG8gdGhlIG1haW50ZW5hbmNlIGZ1bmN0aW9uczogZml4aW5nIERCIHRhYmxlcyBpbXBvcnRlZCBmcm9tIExJMiBzaG91bGQgbm90IGlzc3VlIGEgUEhQIEZhdGFsIEVycm9yIGluIG5vIGNvbmRpdGlvbnM7PC9saT4KICA8bGk+QWRkZWQgcm91dGUgZm9yIHBhZ2luYXRpb24gd2l0aCBjYXRlZ29yeTs8L2xpPgogIDxsaT5GaXhlcyBkZXRhaWxwYWdlIHBhcmFtZXRlciBvdmVycmlkZSBvbiBkZWZhdWx0IGFjdGlvbjs8L2xpPgogIDxsaT5GaXhlcyBleGNsdWRlX2NhdGVnb3J5IHBhcmFtZXRlcjogbm93IGl0ZW1zIG5vdCBiZWxvbmdpbmcgdG8gYW55IGNhdGVnb3J5IGRvbid0IGdldCBleGNsdWRlZDs8L2xpPgo8L3VsPgoKPGg0PlZlcnNpb24gMS4yLjEuMTwvaDQ+Cgo8aDU+TWlub3IgRml4ZXM8L2g1PgoKPHVsPiAKICA8bGk+TWlub3IgZml4IHRvIExJMiBpbXBvcnRlZCBpbnN0YW5jZXMgdGFibGVzIGZpeGluZyBjb2RlOzwvbGk+CiAgPGxpPk1pbm9yIGZpeCB0byBmaWVsZCBkZWZpbml0aW9uczs8L2xpPgo8L3VsPgoKPGg0PlZlcnNpb24gMS4yLjE8L2g0PgoKPGg1Pk5ldyBmZWF0dXJlczwvaDU+Cjx1bD4gIAogIDxsaT4KICAgIEFkZHMgdGhlIGFiaWxpdHkgdG8gZml4IHRhYmxlcyBmcm9tIHByZXZpb3VzIExJMiBpbXBvcnRlZCBpbnN0YW5jZXM7CiAgPC9saT4gIAo8L3VsPgoKPGg1PkZpeGVzIGFuZCBJbXByb3ZlbWVudHM8L2g1PgoKPHVsPiAKICA8bGk+Rml4ZXMgdG8gdGhlIExJU0VfTEkyY29udmVydGVyIGNsYXNzLiBJbXBvcnRlZCBpbnN0YW5jZXMgc2hvdWxkIHdvcmsgd2l0aG91dCBlcnJvcnMgbm93OzwvbGk+CjwvdWw+Cgo8aDQ+VmVyc2lvbiAxLjI8L2g0PgoKPGg1Pk5ldyBmZWF0dXJlczwvaDU+Cjx1bD4KICA8bGk+CiAgICBBZGRlZCBDdXN0b21Gcm9tVURUIGZpZWxkIGRlZmluaXRpb246IGFsbG93cyB0byBjcmVhdGUgc2VsZWN0L2NoZWNrYm94ZXMvcmFkaW8gZmllbGRzIHdpdGggbXVsdGlwbGUgc2VsZWN0aW9uIGNhcGFiaWxpdHkgYW5kIHZhbGlkYXRpb24gZnJvbSBVRFRzIDsKICA8L2xpPiAKICA8bGk+CiAgICBBZGRlZCBDYXRlZ29yeSBmaWx0ZXIgdG8gdGhlIGRlZmF1bHQgYWN0aW9uOiB5b3UgY2FuIG5vdyBzaG93IHN1bW1hcmllcyBvZiBzZWxlY3RlZCBjYXRlZ29yaWVzOwogIDwvbGk+ICAKICA8bGk+CiAgICBBZGRlZCB0aGUgcG9zc2liaWxpdHkgdG8gcGFzcyBwYXJhbWV0ZXJzIHRvIGZpZWxkIHRlbXBsYXRlcyAoZm9yIGluc3RhbmNlIHRvIGhhbmRsZSBzdW1tYXJ5IGFuZCBkZXRhaWwgdmlld3MgZGlmZmVyZW50bHkpOwogIDwvbGk+ICAgIAogIDxsaT4KICAgIE5ldyBmaWVsZCBkZWZpbml0aW9uczogQmFja2VuZFRleHQsIEZFVURyb3Bkb3duLCBHYWxsZXJ5RHJvcGRvd24sIEdCRmlsZVBpY2tlciAod2l0aCBDTVNNUyAxLnggb25seSksIEpNRmlsZVBpY2tlciwgTElTRUluc3RhbmNlLCBMSVNFSW5zdGFuY2VJdGVtOwogIDwvbGk+ICAKPC91bD4KCjxoNT5GaXhlcyBhbmQgSW1wcm92ZW1lbnRzPC9oNT4KCjx1bD4gCiAgPGxpPjxzdHJvbmc+IzEwNzA2IC08L3N0cm9uZz4gbWlub3Igbm90aWNlOzwvbGk+CiAgPGxpPkJldHRlciBoYW5kbGluZyBvZiBmaWVsZGRlZiBjdXN0b20gdGVtcGxhdGVzOzwvbGk+CiAgPGxpPkZpeGVzIHRvIFNlYXJjaFJlc3VsdDs8L2xpPgogIDxsaT5GaXhlcyB0byBEYXRlVGltZSBmaWVsZGRlZiBtYWlubHkgcmVsYXRlZCB0byBkYiBzdG9yYWdlIGFuZCBzb3J0aW5nOzwvbGk+CiAgPGxpPkFkZGVkIGEgbGlzZV9kYXRldGltZV91dGlscyBjbGFzcyB0byBoZWxwIHdpdGggZm9ybWF0IGNvbnZlcnNpb25zOzwvbGk+CiAgPGxpPkNhdGVnb3J5UXVlcnkgY2xhc3Mgc3VwcG9ydHMgY2F0ZWdvcnkgcGFyYW1ldGVyIG5vdzs8L2xpPgogIDxsaT5JbXByb3ZlZCBUYWdzIHNvcnRpbmc7PC9saT4KICA8bGk+CiAgICBDdXN0b21Gcm9tVURUOiBhZGRlZCB0aGUgcG9zc2liaWxpdHkgdG8gY3VzdG9taXplIEFkbWluIExpc3RpbmcgcHJlc2VudGF0aW9uIHZpYSBVRFQ7CiAgPC9saT4KICA8bGk+CiAgICBGaXhlcyBidWcgIzEwODE0IC0gQXNzZXRzIGZhaWwgdG8gbG9hZCBpZiBTU0wgaXMgZW5hYmxlZCBmb3IgQmFja2VuZC4gKFRoYW5rcyBoZXhkaik7CiAgPC9saT4KICA8bGk+CiAgICBOdW1lcm91cyBmaXhlcyBhbmQgaW1wcm92ZW1lbnRzIGluIGZpZWxkZGVmcyB0ZW1wbGF0ZXM7CiAgPC9saT4KICA8bGk+CiAgICBOdW1lcm91cyBtaW5vciBidWcgZml4ZXM7CiAgPC9saT4KICA8bGk+CiAgICBGaXhlcyB0byByb3V0ZXMgaW4gQ01TTVMgMi54KHRoYW5rcyBhanByb2cpOwogIDwvbGk+CiAgPGxpPgogICAgVGFncyBpbnRlcmZlcmluZyB3aXRoIENNU01TIGJhY2tlbmQgbWVudTsgZml4ZXMgcmVnYXJkaW5nIGFsaWFzZXM7IGFkZGl0aW9uYWwgd29yayBvbiByb3V0ZXMgKHRoYW5rcyBhanByb2cpOwogIDwvbGk+CiAgPGxpPgogICAgRml4ZXMgdG8gYmFja2VuZCBpbnN0YW5jZXMgcGFnaW5hdGlvbiAoQlIgIzEwNzEyKSAoVGhhbmtzIEplZmYgQm9zY2ggW2FqcHJvZ10gYW5kIEdyZWcgUHJvc3NlciBbZ2VlcGVyc10pOwogIDwvbGk+CiAgPGxpPgogICAgRml4ZXMgQlIgIzEwOTA0LCAodGhhbmtzIEplZmYgQm9zY2ggW2FqcHJvZ10gYW5kIEVkdWFyZG8gTWFydGluZXogW2hleGRqXSk7CiAgPC9saT4KICA8bGk+CiAgICBGaXhlcyB0byBMSTIgaW1wb3J0cyBhbmQgTElTRSBpbnN0YW5jZSBjbG9uZXI7IFVwZGF0aW5nIGZpeGVzIG9sZCBpbXBvcnRzL2Nsb25lcyBidWdzOwogIDwvbGk+CjwvdWw+Cgo8aDQ+VmVyc2lvbiAxLjEuMDwvaDQ+Cgo8aDU+TmV3IGZlYXR1cmVzPC9oNT4KPHVsPgogIDxsaT5MSVNFIGluc3RhbmNlcyBjYW4gbm93IGJlIHNldCB0byBiZSB1cGdyYWRlZCBtYW51YWxseSBvciBhdXRvbWF0aWNhbGx5IG9uIGEgcGVyIGluc3RhbmNlIHNldHRpbmcgaW4gY29uanVuY3Rpb24gd2l0aCBhIGdsb2JhbCBzZXR0aW5nIG9uIExJU0UgbWFpbiBtb2R1bGU7PC9saT4KICA8bGk+TElTRSBtYWluIG1vZHVsZSBjYW4gbm93IGJlIHNldCB0byBiZSB1cGdyYWRlZCBtYW51YWxseSAocmVjb21tZW5kZWQpIHRvIGF2b2lkIHRpbWluZyBvdXQgZHVyaW5nIHVwZ3JhZGVzOzwvbGk+CiAgPGxpPkxJU0UgbWFpbiBtb2R1bGUgaGFzIHRvIGJlIGluc3RhbGxlZCBtYW51YWxseSB0byBhdm9pZCB0aW1lb3V0cyBkdXJpbmcgaW5zdGFsbGF0aW9uOzwvbGk+CiAgPGxpPkFkZGVkIHRoZSBjYXBhYmlsaXR5IHRvIGRlZmluZSB0aGUgaW5zdGFuY2UgPHN0cm9uZz5GcmllbmRseSBOYW1lPC9zdHJvbmc+LCA8c3Ryb25nPk1vZHVsZSBBZG1pbiBEZXNjcmlwdGlvbjwvc3Ryb25nPiBhbmQgPHN0cm9uZz5Nb2R1bGUgQWRtaW4gU2VjdGlvbjwvc3Ryb25nPiBvbiB0aGUgPHN0cm9uZz5DcmVhdGUgSW5zdGFuY2U8L3N0cm9uZz4gZm9ybTs8L2xpPgogIDxsaT5BZGRlZCBpbnN0YW5jZSBpbXBvcnQsIGV4cG9ydCBhbmQgY2xvbmUgY2FwYWJpbGl0eTs8L2xpPgogIDxsaT5JbXBsZW1lbnRlZCA8c3Ryb25nPkZScyAjMTA2NDMgYW5kICMxMDY0Njwvc3Ryb25nPjoKICAgIDx1bD4KICAgICAgPGxpPjxzdHJvbmc+IzEwNjQzIC08L3N0cm9uZz4gYWRkZWQgYSA8c3Ryb25nPlRhYnM8L3N0cm9uZz4gZmllbGQgZGVmaW5pdGlvbiAodGhhbmtzIHRvIDxzdHJvbmc+QWxiZXJ0IENhbnNhZG88L3N0cm9uZz4pOzwvbGk+CiAgICAgIDxsaT48c3Ryb25nPiMxMDY0NiAtPC9zdHJvbmc+IG1hZGUgdG90YWwgcmVjb3JkIGNvdW50IGF2YWlsYWJsZSBhcyBhIFNtYXJ0eSB2YXJpYWJsZSAodGhhbmtzIHRvIDxzdHJvbmc+Q2hyaXMgQ2lhdmFyZWxsYSBbY2FjaWF2YXJdPC9zdHJvbmc+KTs8L2xpPgogICAgPC91bD4KICA8L2xpPgo8L3VsPgoKPGg1PkZpeGVzPC9oNT4KCjx1bD4KICA8bGk+Rml4ZXMgdG8gdGhlIFRhZ3MgZnVuY3Rpb25hbGl0eTs8L2xpPgogIDxsaT5GaXhlcyByZWxhdGVkIHdpdGggbmV3IENNU01TIDIuMC4xIHdheSBvZiBoYW5kbGluZyB2YXJpYWJsZSBzY29wZXMgYW5kIHRlbXBsYXRlIG9iamVjdHM7PC9saT4KICA8bGk+U29tZSBtaW5vciBmaXhlczs8L2xpPgo8L3VsPgoKPGg0PlZlcnNpb24gMS4wLjI8L2g0Pgo8dWw+CiAgPGxpPk1pbm9yIGZpeGVzIGluY2x1ZGluZyAjMTA2MzUuPC9saT4KPC91bD4KPGg0PlZlcnNpb24gMS4wLjE8L2g0Pgo8dWw+CiAgPGxpPk1pbm9yIGZpeGVzIGluY2x1ZGluZyAjMTA2MzAuPC9saT4KPC91bD4KPGg0PlZlcnNpb24gMS4wLjA8L2g0Pgo8dWw+CiAgPGxpPjFzdCBwdWJsaWMgcmVsZWFzZS48L2xpPgo8L3VsPjxiciAvPg==]]></about>
	<description><![CDATA[LISE allows you to create lists that you can display throughout your website.]]></description>
	<file>
	  <filename>/action.admin_clonemodule.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHANCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQojIExJU0UgLSBMaXN0IEl0IFNwZWNpYWwgRWRpdGlvbg0KIyBWZXJzaW9uIDEuMg0KIyBBIGZvcmsgb2YgTGlzdEkyDQojIG1haW50YWluZWQgYnkgRmVybmFuZG8gTW9yZ2FkbyBBS0EgSm8gTW9yZw0KIyBzaW5jZSAyMDE1DQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIw0KIyBPcmlnaW5hbCBBdXRob3I6IEJlbiBNYWxlbiwgPGJlbkBjb25jZXB0ZmFjdG9yeS5jb20uYXU+DQojIENvLU1haW50YWluZXI6IFNpbW9uIFJhZGZvcmQsIDxzaW1vbkBjb25jZXB0ZmFjdG9yeS5jb20uYXU+DQojIFdlYjogd3d3LmNvbmNlcHRmYWN0b3J5LmNvbS5hdQ0KIw0KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCiMNCiMgTWFpbnRhaW5lciBzaW5jZSAyMDExIHVwIHRvIDIwMTQ6IEpvbmF0aGFuIFNjaG1pZCwgPGhpQGpvbmF0aGFuc2NobWlkLmRlPg0KIyBXZWI6IHd3dy5qb25hdGhhbnNjaG1pZC5kZQ0KIw0KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCiMNCiMgU29tZSB3YWNrb3Mgc3RhcnRlZCBkZXN0cm95aW5nIHN0dWZmIHNpbmNlIDIwMTIgYW5kIHN0b3BwZWQgYXQgMjAxNDoNCiMNCiMgVGFwaW8gTMO2eXR0eSwgPHRhcHNhQG9yYW5nZS1tZWRpYS5maT4NCiMgV2ViOiB3d3cub3JhbmdlLW1lZGlhLmZpDQojDQojIEdvcmFuIElsaWMsIDx1bmlxdTNlQGdtYWlsLmNvbT4NCiMgV2ViOiB3d3cuaWNoLW1hY2gtZGFzLmF0DQojDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIw0KIyBMSVNFIGlzIGEgQ01TIE1hZGUgU2ltcGxlIG1vZHVsZSB0aGF0IGVuYWJsZXMgdGhlIHdlYiBkZXZlbG9wZXIgdG8gY3JlYXRlDQojIG11bHRpcGxlIGxpc3RzIHRocm91Z2hvdXQgYSBzaXRlLiBJdCBjYW4gYmUgZHVwbGljYXRlZCBhbmQgZ2l2ZW4gZnJpZW5kbHkNCiMgbmFtZXMgZm9yIGVhc2llciBjbGllbnQgbWFpbnRlbmFuY2UuDQojDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIyBCRUdJTl9MSUNFTlNFDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIyBUaGlzIGZpbGUgaXMgcGFydCBvZiBMSVNFDQojIExJU0UgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5DQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5DQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yDQojIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uDQojDQojIExJU0UgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLA0KIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZg0KIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlDQojIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuDQojIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlDQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlDQojIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcgVVNBDQojIE9yIHJlYWQgaXQgb25saW5lOiBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwNCiMNCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQojIEVORF9MSUNFTlNFDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KDQppZiggIWRlZmluZWQoJ0NNU19WRVJTSU9OJykgKSBleGl0Ow0KDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQojIENoZWNrIHBhcmFtcw0KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KaWYgKGlzc2V0KCRwYXJhbXNbJ2NhbmNlbCddKSkgDQp7DQogICRwYXJhbXMgPSBhcnJheSgnYWN0aXZlX3RhYicgPT4gJ2luc3RhbmNlc3RhYicpOw0KICAkdGhpcy0+UmVkaXJlY3QoJGlkLCAnZGVmYXVsdGFkbWluJywgJHJldHVybmlkLCAkcGFyYW1zKTsNCn0NCg0KJGF1dG9pbnN0YWxsID0gJHRoaXMtPkdldFByZWZlcmVuY2UoJ2FsbG93X2F1dG9pbnN0YWxsJywgMCk7DQokbW9kdWxlX25hbWUgPSAnJzsNCiRtb2R1bGVfaWQgPSAtMTsNCg0KaWYoaXNzZXQoJHBhcmFtc1snbW9kdWxlX25hbWUnXSkpIA0Kew0KICAkbW9kdWxlX25hbWUgPSAkcGFyYW1zWydtb2R1bGVfbmFtZSddOw0KfQ0KDQokbW9kdWxlX2ZyaWVuZGx5bmFtZSA9ICRtb2R1bGVfbmFtZTsNCg0KaWYoaXNzZXQoJHBhcmFtc1snbW9kdWxlX2ZyaWVuZGx5bmFtZSddKSkgDQp7DQogICRtb2R1bGVfZnJpZW5kbHluYW1lID0gJHBhcmFtc1snbW9kdWxlX2ZyaWVuZGx5bmFtZSddOw0KfQ0KDQppZihpc3NldCgkcGFyYW1zWydtb2R1bGVfaWQnXSkpIA0Kew0KCSRtb2R1bGVfaWQgPSAkcGFyYW1zWydtb2R1bGVfaWQnXTsNCn0NCg0KJGludmFsaWRfbmFtZXMgPSBhcnJheSgnbGlzZScsICdvcmlnaW5hbCcsICd4ZGVmcycsICdsb2FkZXInKTsNCiRtb2R1bGVzID0gJHRoaXMtPkxpc3RNb2R1bGVzKCk7DQoNCi8vIG1vZHVsZSBhZG1pbiBzZWN0aW9uIG9wdGlvbnMNCiRhZG1pbl9zZWN0aW9ucyA9IGFycmF5KA0KICAgICAgICAgICAgICAgICAgICAgICAgICBsYW5nKCdtYWluJykgPT4gJ21haW4nLA0KICAgICAgICAgICAgICAgICAgICAgICAgICBsYW5nKCdjb250ZW50JykgPT4gJ2NvbnRlbnQnLA0KICAgICAgICAgICAgICAgICAgICAgICAgICBsYW5nKCdsYXlvdXQnKSA9PiAnbGF5b3V0JywNCiAgICAgICAgICAgICAgICAgICAgICAgICAgbGFuZygndXNlcnNncm91cHMnKSA9PiAndXNlcnNncm91cHMnLA0KICAgICAgICAgICAgICAgICAgICAgICAgICBsYW5nKCdleHRlbnNpb25zJykgPT4gJ2V4dGVuc2lvbnMnLA0KICAgICAgICAgICAgICAgICAgICAgICAgICBsYW5nKCdzaXRlYWRtaW4nKSA9PiAnc2l0ZWFkbWluJywNCiAgICAgICAgICAgICAgICAgICAgICAgICAgbGFuZygnbXlwcmVmcycpID0+ICdteXByZWZzJywNCiAgICAgICAgICAgICAgICAgICAgICAgICAgbGFuZygnZWNvbW1lcmNlJykgPT4gJ2Vjb21tZXJjZScNCiAgICAgICAgICAgICAgICAgICAgICAgICk7DQoNCmZvcmVhY2goJG1vZHVsZXMgYXMgJG1vZCkgDQp7DQoJJG1vZC0+bW9kdWxlX25hbWUgPSBzdWJzdHIoJG1vZC0+bW9kdWxlX25hbWUsIHN0cmxlbihMSVNFRHVwbGljYXRvcjo6TU9EX1BSRUZJWCkpOw0KCSRpbnZhbGlkX25hbWVzW10gPSBzdHJ0b2xvd2VyKCRtb2QtPm1vZHVsZV9uYW1lKTsNCn0NCg0KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIyBTdWJtaXQNCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0NCmlmIChpc3NldCgkcGFyYW1zWydzdWJtaXQnXSkpIA0Kew0KCSRlcnJvcnMgPSBhcnJheSgpOw0KCQ0KCWlmKGVtcHR5KCRtb2R1bGVfbmFtZSkpIA0KICB7DQoJCSRlcnJvcnNbXSA9ICR0aGlzLT5Nb2RMYW5nKCdtb2R1bGVfbmFtZV9lbXB0eScpOw0KCX0NCgkNCglpZihwcmVnX21hdGNoKCcvW14wLTlhLXpBLVpdLycsICRtb2R1bGVfbmFtZSkpIA0KICB7DQoJCSRlcnJvcnNbXSA9ICR0aGlzLT5Nb2RMYW5nKCdtb2R1bGVfbmFtZV9pbnZhbGlkJyk7DQoJfQ0KCQ0KCWlmKGluX2FycmF5KHN0cnRvbG93ZXIoJG1vZHVsZV9uYW1lKSwgJGludmFsaWRfbmFtZXMpKQ0KICB7DQoJCSRlcnJvcnNbXSA9ICR0aGlzLT5Nb2RMYW5nKCdtb2R1bGVfbmFtZV9pbnZhbGlkJyk7DQoJfQkNCg0KCWlmIChlbXB0eSgkZXJyb3JzKSkNCiAgew0KICAgIA0KICAgICRtb2R1bGVzID0gJHRoaXMtPkxpc3RNb2R1bGVzKCk7DQogICAgJG9sZG1vZG5hbWUgPSAkbW9kdWxlc1skbW9kdWxlX2lkXS0+bW9kdWxlX25hbWU7DQoJCSRjbG9uZXIgPSBuZXcgTElTRUNsb25lcigkb2xkbW9kbmFtZSwgJG1vZHVsZV9uYW1lKTsNCgkJJG1vZHVsZV9mdWxsbmFtZSA9ICRjbG9uZXItPlJ1bigpOw0KICAgICRtb2RvcHMgPSBjbXNtcygpLT5HZXRNb2R1bGVPcGVyYXRpb25zKCk7DQogICAgJG1vZCA9IGNtc21zKCktPkdldE1vZHVsZUluc3RhbmNlKCRtb2R1bGVfZnVsbG5hbWUpOw0KICAgICRtb2QtPlNldFByZWZlcmVuY2UoJ2ZyaWVuZGx5bmFtZScsICAgICAgICAgJG1vZHVsZV9mcmllbmRseW5hbWUpOw0KICAgICRtb2QtPlNldFByZWZlcmVuY2UoJ2FkbWluc2VjdGlvbicsICAgICAgICAgJHBhcmFtc1snYWRtaW5zZWN0aW9uJ10pOw0KICAgICRtb2QtPlNldFByZWZlcmVuY2UoJ21vZGRlc2NyaXB0aW9uJywgICAgICAgJHBhcmFtc1snbW9kZGVzY3JpcHRpb24nXSk7DQoJCSRwYXJhbXMgPSBhcnJheSgnbWVzc2FnZScgPT4gJ21vZHVsZWNvcGllZCcsJ2FjdGl2ZV90YWInID0+ICdpbnN0YW5jZXN0YWInKTsNCgkJJHRoaXMtPlJlZGlyZWN0KCRpZCwgJ2RlZmF1bHRhZG1pbicsICcnLCAkcGFyYW1zKTsgIA0KCX0NCn0NCg0KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIyBFcnJvciBoYW5kbGluZw0KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KaWYgKCFlbXB0eSgkZXJyb3JzKSkgew0KDQogICAgZWNobyAkdGhpcy0+U2hvd0Vycm9ycygkZXJyb3JzKTsNCn0NCg0KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIyBTbWFydHkgcHJvY2Vzc2luZw0KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KJHNtYXJ0eS0+YXNzaWduKCdzdGFydGZvcm0nLCAkdGhpcy0+Q3JlYXRlRm9ybVN0YXJ0ICgkaWQsICdhZG1pbl9jbG9uZW1vZHVsZScsICRyZXR1cm5pZCwgJ3Bvc3QnLCAnbXVsdGlwYXJ0L2Zvcm0tZGF0YScsIGZhbHNlLCAnJywgJHBhcmFtcykpOw0KJHNtYXJ0eS0+YXNzaWduKCdlbmRmb3JtJywgJHRoaXMtPkNyZWF0ZUZvcm1FbmQoKSk7DQoNCiRzbWFydHktPmFzc2lnbignaW5wdXRfbW9kdWxlX25hbWUnLCAkdGhpcy0+Q3JlYXRlSW5wdXRUZXh0KCRpZCwgJ21vZHVsZV9uYW1lJywgJG1vZHVsZV9uYW1lLCA0MCkpOw0KJHNtYXJ0eS0+YXNzaWduKCdpbnB1dF9tb2R1bGVfZnJpZW5kbHluYW1lJywgJHRoaXMtPkNyZWF0ZUlucHV0VGV4dCgkaWQsICdtb2R1bGVfZnJpZW5kbHluYW1lJywgJG1vZHVsZV9mcmllbmRseW5hbWUsIDQwKSk7DQokc21hcnR5LT5hc3NpZ24oJ2lucHV0X21vZGRlc2NyaXB0aW9uJywgJHRoaXMtPkNyZWF0ZVRleHRBcmVhKGZhbHNlLCAkaWQsICR0aGlzLT5HZXRQcmVmZXJlbmNlKCdtb2RkZXNjcmlwdGlvbicsICR0aGlzLT5Nb2RMYW5nKCdtb2RkZXNjcmlwdGlvbicpKSwgJ21vZGRlc2NyaXB0aW9uJywgJ3BhZ2VzbWFsbHRleHRhcmVhJywgJycsICcnLCAnJywgJzgwJywgJzMnKSk7DQokc21hcnR5LT5hc3NpZ24oJ2lucHV0X2FkbWluc2VjdGlvbicsICR0aGlzLT5DcmVhdGVJbnB1dERyb3Bkb3duKCRpZCwgJ2FkbWluc2VjdGlvbicsICRhZG1pbl9zZWN0aW9ucywgLTEsICR0aGlzLT5HZXRQcmVmZXJlbmNlKCdhZG1pbnNlY3Rpb24nLCAnY29udGVudCcpKSk7DQokc21hcnR5LT5hc3NpZ24oJ2hpZGRlbicsICR0aGlzLT5DcmVhdGVJbnB1dEhpZGRlbigkaWQsICdtb2R1bGVfaWQnLCAkbW9kdWxlX2lkLCA0MCkpOw0KDQokc21hcnR5LT5hc3NpZ24oJ3N1Ym1pdCcsICR0aGlzLT5DcmVhdGVJbnB1dFN1Ym1pdCgkaWQsICdzdWJtaXQnLCBsYW5nKCdzdWJtaXQnKSkpOw0KJHNtYXJ0eS0+YXNzaWduKCdjYW5jZWwnLCAkdGhpcy0+Q3JlYXRlSW5wdXRTdWJtaXQoJGlkLCAnY2FuY2VsJywgbGFuZygnY2FuY2VsJykpKTsNCg0KZWNobyAkdGhpcy0+UHJvY2Vzc1RlbXBsYXRlKCdjbG9uZW1vZHVsZS50cGwnKTsNCg0KPz4=]]></data>
	</file>
	<file>
	  <filename>/action.admin_copymodule.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHANCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQojIExJU0UgLSBMaXN0IEl0IFNwZWNpYWwgRWRpdGlvbg0KIyBWZXJzaW9uIDEuMg0KIyBBIGZvcmsgb2YgTGlzdEkyDQojIG1haW50YWluZWQgYnkgRmVybmFuZG8gTW9yZ2FkbyBBS0EgSm8gTW9yZw0KIyBzaW5jZSAyMDE1DQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIw0KIyBPcmlnaW5hbCBBdXRob3I6IEJlbiBNYWxlbiwgPGJlbkBjb25jZXB0ZmFjdG9yeS5jb20uYXU+DQojIENvLU1haW50YWluZXI6IFNpbW9uIFJhZGZvcmQsIDxzaW1vbkBjb25jZXB0ZmFjdG9yeS5jb20uYXU+DQojIFdlYjogd3d3LmNvbmNlcHRmYWN0b3J5LmNvbS5hdQ0KIw0KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCiMNCiMgTWFpbnRhaW5lciBzaW5jZSAyMDExIHVwIHRvIDIwMTQ6IEpvbmF0aGFuIFNjaG1pZCwgPGhpQGpvbmF0aGFuc2NobWlkLmRlPg0KIyBXZWI6IHd3dy5qb25hdGhhbnNjaG1pZC5kZQ0KIw0KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCiMNCiMgU29tZSB3YWNrb3Mgc3RhcnRlZCBkZXN0cm95aW5nIHN0dWZmIHNpbmNlIDIwMTIgYW5kIHN0b3BwZWQgYXQgMjAxNDoNCiMNCiMgVGFwaW8gTMO2eXR0eSwgPHRhcHNhQG9yYW5nZS1tZWRpYS5maT4NCiMgV2ViOiB3d3cub3JhbmdlLW1lZGlhLmZpDQojDQojIEdvcmFuIElsaWMsIDx1bmlxdTNlQGdtYWlsLmNvbT4NCiMgV2ViOiB3d3cuaWNoLW1hY2gtZGFzLmF0DQojDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIw0KIyBMSVNFIGlzIGEgQ01TIE1hZGUgU2ltcGxlIG1vZHVsZSB0aGF0IGVuYWJsZXMgdGhlIHdlYiBkZXZlbG9wZXIgdG8gY3JlYXRlDQojIG11bHRpcGxlIGxpc3RzIHRocm91Z2hvdXQgYSBzaXRlLiBJdCBjYW4gYmUgZHVwbGljYXRlZCBhbmQgZ2l2ZW4gZnJpZW5kbHkNCiMgbmFtZXMgZm9yIGVhc2llciBjbGllbnQgbWFpbnRlbmFuY2UuDQojDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIyBCRUdJTl9MSUNFTlNFDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIyBUaGlzIGZpbGUgaXMgcGFydCBvZiBMSVNFDQojIExJU0UgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5DQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5DQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yDQojIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uDQojDQojIExJU0UgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLA0KIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZg0KIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlDQojIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuDQojIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlDQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlDQojIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcgVVNBDQojIE9yIHJlYWQgaXQgb25saW5lOiBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwNCiMNCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQojIEVORF9MSUNFTlNFDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KaWYoICFkZWZpbmVkKCdDTVNfVkVSU0lPTicpICkgZXhpdDsNCg0KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIyBDaGVjayBwYXJhbXMNCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0NCmlmIChpc3NldCgkcGFyYW1zWydjYW5jZWwnXSkpIA0Kew0KICAkcGFyYW1zID0gYXJyYXkoJ2FjdGl2ZV90YWInID0+ICdpbnN0YW5jZXN0YWInKTsNCiAgJHRoaXMtPlJlZGlyZWN0KCRpZCwgJ2RlZmF1bHRhZG1pbicsICRyZXR1cm5pZCwgJHBhcmFtcyk7DQp9DQoNCiRhdXRvaW5zdGFsbCA9ICR0aGlzLT5HZXRQcmVmZXJlbmNlKCdhbGxvd19hdXRvaW5zdGFsbCcsIDApOw0KJG1vZHVsZV9uYW1lID0gJyc7DQoNCmlmKGlzc2V0KCRwYXJhbXNbJ21vZHVsZV9uYW1lJ10pKSANCnsNCiAgJG1vZHVsZV9uYW1lID0gJHBhcmFtc1snbW9kdWxlX25hbWUnXTsNCn0NCg0KJG1vZHVsZV9mcmllbmRseW5hbWUgPSAkbW9kdWxlX25hbWU7IA0KDQppZiggIWVtcHR5KCRwYXJhbXNbJ21vZHVsZV9mcmllbmRseW5hbWUnXSkgKSANCnsNCgkkbW9kdWxlX2ZyaWVuZGx5bmFtZSA9ICRwYXJhbXNbJ21vZHVsZV9mcmllbmRseW5hbWUnXTsNCn0NCg0KJGludmFsaWRfbmFtZXMgPSBhcnJheSgnbGlzZScsICdvcmlnaW5hbCcsICd4ZGVmcycsICdsb2FkZXInKTsNCiRtb2R1bGVzID0gJHRoaXMtPkxpc3RNb2R1bGVzKCk7DQoNCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0NCiMgbW9kdWxlIGFkbWluIHNlY3Rpb24gb3B0aW9ucw0KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KJGFkbWluX3NlY3Rpb25zID0gYXJyYXkoDQogICAgICAgICAgICAgICAgICAgICAgICAgIGxhbmcoJ21haW4nKSAgICAgICAgPT4gJ21haW4nLA0KICAgICAgICAgICAgICAgICAgICAgICAgICBsYW5nKCdjb250ZW50JykgICAgID0+ICdjb250ZW50JywNCiAgICAgICAgICAgICAgICAgICAgICAgICAgbGFuZygnbGF5b3V0JykgICAgICA9PiAnbGF5b3V0JywNCiAgICAgICAgICAgICAgICAgICAgICAgICAgbGFuZygnZmlsZXMnKSAgICAgICA9PiAnZmlsZXMnLA0KICAgICAgICAgICAgICAgICAgICAgICAgICBsYW5nKCd1c2Vyc2dyb3VwcycpID0+ICd1c2Vyc2dyb3VwcycsDQogICAgICAgICAgICAgICAgICAgICAgICAgIGxhbmcoJ2V4dGVuc2lvbnMnKSAgPT4gJ2V4dGVuc2lvbnMnLA0KICAgICAgICAgICAgICAgICAgICAgICAgICBsYW5nKCdzaXRlYWRtaW4nKSAgID0+ICdzaXRlYWRtaW4nLA0KICAgICAgICAgICAgICAgICAgICAgICAgICBsYW5nKCdteXByZWZzJykgICAgID0+ICdteXByZWZzJywNCiAgICAgICAgICAgICAgICAgICAgICAgICAgbGFuZygnZWNvbW1lcmNlJykgICA9PiAnZWNvbW1lcmNlJw0KICAgICAgICAgICAgICAgICAgICAgICAgKTsNCg0KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIyBJbnN0YW5jZSBNb2Rlcw0KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KDQokbGlzZV9tb2RlID0gJHRoaXMtPkdldFByZWZlcmVuY2UoJ2xpc2VfbW9kZScsIExJU0U6Ok1PREVfTElTVCk7DQoNCiRtb2Rlc19saXN0ID0gWw0KICBMSVNFOjpNT0RFX0xJU1QgICA9PiAkdGhpcy0+TW9kTGFuZygnbGlzZV9tb2RlX2xpc3RfbmFtZScpLA0KICBMSVNFOjpNT0RFX0dMT0JBTCA9PiAkdGhpcy0+TW9kTGFuZygnbGlzZV9tb2RlX2dsb2JhbF9uYW1lJyksDQogIExJU0U6Ok1PREVfTE9DQUwgID0+ICR0aGlzLT5Nb2RMYW5nKCdsaXNlX21vZGVfbG9jYWxfbmFtZScpLA0KXTsNCg0KDQpmb3JlYWNoKCRtb2R1bGVzIGFzICRtb2QpIA0Kew0KCSRtb2QtPm1vZHVsZV9uYW1lID0gc3Vic3RyKCRtb2QtPm1vZHVsZV9uYW1lLCBzdHJsZW4oTElTRUR1cGxpY2F0b3I6Ok1PRF9QUkVGSVgpKTsNCgkkaW52YWxpZF9uYW1lc1tdID0gc3RydG9sb3dlcigkbW9kLT5tb2R1bGVfbmFtZSk7DQp9DQoNCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0NCiMgU3VibWl0DQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQppZiAoaXNzZXQoJHBhcmFtc1snc3VibWl0J10pKSANCnsNCgkkZXJyb3JzID0gYXJyYXkoKTsNCgkNCglpZihlbXB0eSgkbW9kdWxlX25hbWUpKSANCiAgew0KCQkkZXJyb3JzW10gPSAkdGhpcy0+TW9kTGFuZygnbW9kdWxlX25hbWVfZW1wdHknKTsNCgl9DQoJDQoJaWYocHJlZ19tYXRjaCgnL1teMC05YS16QS1aXS8nLCAkbW9kdWxlX25hbWUpKSANCiAgew0KCQkkZXJyb3JzW10gPSAkdGhpcy0+TW9kTGFuZygnbW9kdWxlX25hbWVfaW52YWxpZCcpOw0KCX0NCgkNCglpZihpbl9hcnJheShzdHJ0b2xvd2VyKCRtb2R1bGVfbmFtZSksICRpbnZhbGlkX25hbWVzKSkNCiAgew0KCQkkZXJyb3JzW10gPSAkdGhpcy0+TW9kTGFuZygnbW9kdWxlX25hbWVfaW52YWxpZCcpOw0KCX0JDQoNCglpZiAoZW1wdHkoJGVycm9ycykpDQogIHsNCgkJJGR1cGxpY2F0b3IgPSBuZXcgTElTRUR1cGxpY2F0b3IoJG1vZHVsZV9uYW1lKTsNCgkJJG1vZHVsZV9mdWxsbmFtZSA9ICRkdXBsaWNhdG9yLT5SdW4oKTsNCgkJDQoJCWlmKCRhdXRvaW5zdGFsbCkgDQogICAgew0KCQkJJG1vZG9wcyA9IE1vZHVsZU9wZXJhdGlvbnM6OmdldF9pbnN0YW5jZSgpOw0KCQkJJG1vZG9wcy0+SW5zdGFsbE1vZHVsZSgkbW9kdWxlX2Z1bGxuYW1lKTsNCiAgICAgICRtb2QgPSBcY21zX3V0aWxzOjpnZXRfbW9kdWxlKCRtb2R1bGVfZnVsbG5hbWUpOw0KICAgICAgJG1vZC0+U2V0UHJlZmVyZW5jZSgnZnJpZW5kbHluYW1lJywgICAgICAgICAkbW9kdWxlX2ZyaWVuZGx5bmFtZSk7DQogICAgICAkbW9kLT5TZXRQcmVmZXJlbmNlKCdhZG1pbnNlY3Rpb24nLCAgICAgICAgICRwYXJhbXNbJ2FkbWluc2VjdGlvbiddKTsNCiAgICAgICRtb2QtPlNldFByZWZlcmVuY2UoJ21vZGRlc2NyaXB0aW9uJywgICAgICAgJHBhcmFtc1snbW9kZGVzY3JpcHRpb24nXSk7DQogICAgICAkbW9kLT5TZXRQcmVmZXJlbmNlKCdoaWRlX2FsaWFzJywJCSAgICAgICAoaXNzZXQoJHBhcmFtc1snaGlkZV9hbGlhcyddKT8xOjApKTsNCiAgICAgICRtb2QtPlNldFByZWZlcmVuY2UoJ2hpZGVfc2x1ZycsCQkgICAgICAgICAoaXNzZXQoJHBhcmFtc1snaGlkZV9zbHVnJ10pPzE6MCkpOw0KICAgICAgJG1vZC0+U2V0UHJlZmVyZW5jZSgnaGlkZV90aW1lX2NvbnRyb2wnLAkJIChpc3NldCgkcGFyYW1zWydoaWRlX3RpbWVfY29udHJvbCddKT8xOjApKTsNCiAgICAgICRtb2QtPlNldFByZWZlcmVuY2UoJ2F1dG9fdXBncmFkZScsICAgICAgICAgKGlzc2V0KCRwYXJhbXNbJ2F1dG9fdXBncmFkZSddKSA/IDEgOiAwKSk7DQogICAgICAkbW9kLT5TZXRQcmVmZXJlbmNlKCdzZXBhcmF0ZV9zZXR0aW5ncycsICAgIChpc3NldCgkcGFyYW1zWydzZXBhcmF0ZV9zZXR0aW5ncyddKSA/IDEgOiAwKSk7DQogICAgICAkbW9kLT5TZXRNb2RlKCRwYXJhbXNbJ2luc3RhbmNlX21vZGUnXSk7DQoJCX0NCgkJDQoJCSRwYXJhbXMgPSBhcnJheSgnbWVzc2FnZScgPT4gJ21vZHVsZWNvcGllZCcsJ2FjdGl2ZV90YWInID0+ICdpbnN0YW5jZXN0YWInKTsNCgkJJHRoaXMtPlJlZGlyZWN0KCRpZCwgJ2RlZmF1bHRhZG1pbicsICcnLCAkcGFyYW1zKTsgIA0KCX0NCn0NCg0KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIyBFcnJvciBoYW5kbGluZw0KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KaWYgKCFlbXB0eSgkZXJyb3JzKSkgZWNobyAkdGhpcy0+U2hvd0Vycm9ycygkZXJyb3JzKTsNCg0KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIyBTbWFydHkgcHJvY2Vzc2luZw0KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KJHNtYXJ0eS0+YXNzaWduKCdzdGFydGZvcm0nLCAkdGhpcy0+Q3JlYXRlRm9ybVN0YXJ0ICgkaWQsICdhZG1pbl9jb3B5bW9kdWxlJywgJHJldHVybmlkLCAncG9zdCcsICdtdWx0aXBhcnQvZm9ybS1kYXRhJywgZmFsc2UsICcnLCAkcGFyYW1zKSk7DQokc21hcnR5LT5hc3NpZ24oJ2VuZGZvcm0nLCAkdGhpcy0+Q3JlYXRlRm9ybUVuZCgpKTsNCg0KDQokc21hcnR5LT5hc3NpZ24oJ2lucHV0X21vZHVsZV9uYW1lJywgJHRoaXMtPkNyZWF0ZUlucHV0VGV4dCgkaWQsICdtb2R1bGVfbmFtZScsICRtb2R1bGVfbmFtZSwgNDApKTsNCiRzbWFydHktPmFzc2lnbignaW5wdXRfbW9kdWxlX2ZyaWVuZGx5bmFtZScsICR0aGlzLT5DcmVhdGVJbnB1dFRleHQoJGlkLCAnbW9kdWxlX2ZyaWVuZGx5bmFtZScsICRtb2R1bGVfZnJpZW5kbHluYW1lLCA0MCkpOw0KJHNtYXJ0eS0+YXNzaWduKCdpbnB1dF9tb2RkZXNjcmlwdGlvbicsICR0aGlzLT5DcmVhdGVUZXh0QXJlYShmYWxzZSwgJGlkLCAkdGhpcy0+R2V0UHJlZmVyZW5jZSgnbW9kZGVzY3JpcHRpb24nLCAkdGhpcy0+TW9kTGFuZygnbW9kZGVzY3JpcHRpb24nKSksICdtb2RkZXNjcmlwdGlvbicsICdwYWdlc21hbGx0ZXh0YXJlYScsICcnLCAnJywgJycsICc4MCcsICczJykpOw0KJHNtYXJ0eS0+YXNzaWduKCdpbnB1dF9hZG1pbnNlY3Rpb24nLCAkdGhpcy0+Q3JlYXRlSW5wdXREcm9wZG93bigkaWQsICdhZG1pbnNlY3Rpb24nLCAkYWRtaW5fc2VjdGlvbnMsIC0xLCAkdGhpcy0+R2V0UHJlZmVyZW5jZSgnYWRtaW5zZWN0aW9uJywgJ2NvbnRlbnQnKSkpOw0KJHNtYXJ0eS0+YXNzaWduKCdhdXRvaW5zdGFsbCcsICRhdXRvaW5zdGFsbCk7DQokc21hcnR5LT5hc3NpZ24oJ2lucHV0X3NlcGFyYXRlX3NldHRpbmdzX2NvbnRyb2wnLCAkdGhpcy0+Q3JlYXRlSW5wdXRDaGVja2JveCgkaWQsICdzZXBhcmF0ZV9zZXR0aW5ncycsIFRSVUUsIEZBTFNFKSk7DQokc21hcnR5LT5hc3NpZ24oJ2lucHV0X21vZGVfbGlzdCcsICR0aGlzLT5DcmVhdGVJbnB1dERyb3Bkb3duKCRpZCwgJ2luc3RhbmNlX21vZGUnLCBhcnJheV9mbGlwKCRtb2Rlc19saXN0KSwgLTEsICR0aGlzLT5HZXRNb2RlKCkpKTsNCiRzbWFydHktPmFzc2lnbignaW5wdXRfaGlkZV9hbGlhcycsICR0aGlzLT5DcmVhdGVJbnB1dENoZWNrYm94KCRpZCwgJ2hpZGVfYWxpYXMnLCBUUlVFLCBGQUxTRSkpOw0KJHNtYXJ0eS0+YXNzaWduKCdpbnB1dF9oaWRlX3NsdWcnLCAkdGhpcy0+Q3JlYXRlSW5wdXRDaGVja2JveCgkaWQsICdoaWRlX3NsdWcnLCBUUlVFLCBGQUxTRSkpOw0KJHNtYXJ0eS0+YXNzaWduKCdpbnB1dF9oaWRlX3RpbWVfY29udHJvbCcsICR0aGlzLT5DcmVhdGVJbnB1dENoZWNrYm94KCRpZCwgJ2hpZGVfdGltZV9jb250cm9sJywgVFJVRSwgRkFMU0UpKTsNCiRzbWFydHktPmFzc2lnbignaW5wdXRfYXV0b191cGdyYWRlJywgJHRoaXMtPkNyZWF0ZUlucHV0Q2hlY2tib3goJGlkLCAnYXV0b191cGdyYWRlJywgVFJVRSwgVFJVRSkpOw0KDQokc21hcnR5LT5hc3NpZ24oJ3N1Ym1pdCcsICR0aGlzLT5DcmVhdGVJbnB1dFN1Ym1pdCgkaWQsICdzdWJtaXQnLCBsYW5nKCdzdWJtaXQnKSkpOw0KJHNtYXJ0eS0+YXNzaWduKCdjYW5jZWwnLCAkdGhpcy0+Q3JlYXRlSW5wdXRTdWJtaXQoJGlkLCAnY2FuY2VsJywgbGFuZygnY2FuY2VsJykpKTsNCg0KZWNobyAkdGhpcy0+UHJvY2Vzc1RlbXBsYXRlKCdjb3B5bW9kdWxlLnRwbCcpOw0KDQo/Pg==]]></data>
	</file>
	<file>
	  <filename>/action.admin_domaintenance.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHANCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQojIExJU0UgLSBMaXN0IEl0IFNwZWNpYWwgRWRpdGlvbg0KIyBWZXJzaW9uIDEuMg0KIyBBIGZvcmsgb2YgTGlzdEkyDQojIG1haW50YWluZWQgYnkgRmVybmFuZG8gTW9yZ2FkbyBBS0EgSm8gTW9yZw0KIyBzaW5jZSAyMDE1DQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIw0KIyBPcmlnaW5hbCBBdXRob3I6IEJlbiBNYWxlbiwgPGJlbkBjb25jZXB0ZmFjdG9yeS5jb20uYXU+DQojIENvLU1haW50YWluZXI6IFNpbW9uIFJhZGZvcmQsIDxzaW1vbkBjb25jZXB0ZmFjdG9yeS5jb20uYXU+DQojIFdlYjogd3d3LmNvbmNlcHRmYWN0b3J5LmNvbS5hdQ0KIw0KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCiMNCiMgTWFpbnRhaW5lciBzaW5jZSAyMDExIHVwIHRvIDIwMTQ6IEpvbmF0aGFuIFNjaG1pZCwgPGhpQGpvbmF0aGFuc2NobWlkLmRlPg0KIyBXZWI6IHd3dy5qb25hdGhhbnNjaG1pZC5kZQ0KIw0KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCiMNCiMgU29tZSB3YWNrb3Mgc3RhcnRlZCBkZXN0cm95aW5nIHN0dWZmIHNpbmNlIDIwMTIgYW5kIHN0b3BwZWQgYXQgMjAxNDoNCiMNCiMgVGFwaW8gTMO2eXR0eSwgPHRhcHNhQG9yYW5nZS1tZWRpYS5maT4NCiMgV2ViOiB3d3cub3JhbmdlLW1lZGlhLmZpDQojDQojIEdvcmFuIElsaWMsIDx1bmlxdTNlQGdtYWlsLmNvbT4NCiMgV2ViOiB3d3cuaWNoLW1hY2gtZGFzLmF0DQojDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIw0KIyBMSVNFIGlzIGEgQ01TIE1hZGUgU2ltcGxlIG1vZHVsZSB0aGF0IGVuYWJsZXMgdGhlIHdlYiBkZXZlbG9wZXIgdG8gY3JlYXRlDQojIG11bHRpcGxlIGxpc3RzIHRocm91Z2hvdXQgYSBzaXRlLiBJdCBjYW4gYmUgZHVwbGljYXRlZCBhbmQgZ2l2ZW4gZnJpZW5kbHkNCiMgbmFtZXMgZm9yIGVhc2llciBjbGllbnQgbWFpbnRlbmFuY2UuDQojDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIyBCRUdJTl9MSUNFTlNFDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIyBUaGlzIGZpbGUgaXMgcGFydCBvZiBMSVNFDQojIExJU0UgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5DQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5DQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yDQojIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uDQojDQojIExJU0UgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLA0KIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZg0KIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlDQojIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuDQojIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlDQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlDQojIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcgVVNBDQojIE9yIHJlYWQgaXQgb25saW5lOiBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwNCiMNCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQojIEVORF9MSUNFTlNFDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KDQogI0JFR0lOX0xJQ0VOU0UNCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQojIA0KIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQ0KIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQ0KIyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvcg0KIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLg0KIw0KIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwNCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YNCiMgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQ0KIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLg0KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQ0KIyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQ0KIyBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3IFVTQQ0KIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMDQojDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KI0VORF9MSUNFTlNFDQppZiggIWRlZmluZWQoJ0NNU19WRVJTSU9OJykgKSBleGl0Ow0KDQokcGFybXMgPSBhcnJheSgnYWN0aXZlX3RhYicgPT4gJ21haW50ZW5hbmNldGFiJyk7DQoNCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0NCiMgRml4IGZpZWxkZGVmIHRhYmxlcw0KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KaWYoaXNzZXQoJHBhcmFtc1snZml4X2ZpZWxkZGVmcyddKSkgDQp7DQogICR0eXBlX21hcCA9IGFycmF5KA0KICAgICAgICAgICAgICAgICAgICAgICd0ZXh0Ym94JyAgICAgPT4gJ1RleHRJbnB1dCcsDQogICAgICAgICAgICAgICAgICAgICAgJ2Ryb3Bkb3duJyAgICA9PiAnRHJvcGRvd24nLA0KICAgICAgICAgICAgICAgICAgICAgICdoaWVyYXJjaHknICAgPT4gJ0NvbnRlbnRQYWdlcycsDQogICAgICAgICAgICAgICAgICAgICAgJ2NoZWNrYm94JyAgICA9PiAnQ2hlY2tib3gnLA0KICAgICAgICAgICAgICAgICAgICAgICd0ZXh0YXJlYScgICAgPT4gJ1RleHRBcmVhJywNCiAgICAgICAgICAgICAgICAgICAgICAnZ2FsbGVyeScgICAgID0+ICdHYWxsZXJ5RHJvcGRvd24nLA0KICAgICAgICAgICAgICAgICAgICAgICdzZWxlY3RfZGF0ZScgPT4gJ1NlbGVjdERhdGUnLA0KICAgICAgICAgICAgICAgICAgICAgICd1cGxvYWRfZmlsZScgPT4gJ0dCRmlsZVBpY2tlcicsDQogICAgICAgICAgICAgICAgICAgICAgJ3NlbGVjdF9maWxlJyA9PiAnU2VsZWN0RmlsZScNCiAgICAgICAgICAgICAgICAgICAgKTsNCg0KICAkbW9kdWxlcyA9ICR0aGlzLT5MaXN0TW9kdWxlcygpOw0KICANCiAgZm9yZWFjaCgkbW9kdWxlcyBhcyAkbW9kdWxlKSB7DQoNCiAgICAkbW9kID0gY21zbXMoKS0+R2V0TW9kdWxlSW5zdGFuY2UoJG1vZHVsZS0+bW9kdWxlX25hbWUpOw0KICAgIA0KICAgIGlmKGlzX29iamVjdCgkbW9kKSkgew0KICAgICAgDQogICAgICBmb3JlYWNoKCR0eXBlX21hcCBhcyAkb2xkX3R5cGU9PiRuZXdfdHlwZSkgew0KDQogICAgICAgICRxdWVyeSAgPSAnVVBEQVRFICcgLiBjbXNfZGJfcHJlZml4KCkgLiAnbW9kdWxlXycgLiAkbW9kLT5fR2V0TW9kdWxlQWxpYXMoKSAuICdfZmllbGRkZWYgU0VUIHR5cGUgPSA/IFdIRVJFIHR5cGUgPSA/JzsNCiAgICAgICAgJHJlc3VsdCA9ICRkYi0+RXhlY3V0ZSgkcXVlcnksIGFycmF5KCRuZXdfdHlwZSwgJG9sZF90eXBlKSk7DQogICAgICB9DQogICAgfQ0KICB9DQogIA0KICAkcGFybXNbJ21lc3NhZ2UnXSA9ICdtZXNzYWdlX2ZpZWxkZGVmc19maXhlZCc7DQp9DQoNCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0NCiMgaW1wb3J0IGZyb20gTEkyDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQppZihpc3NldCgkcGFyYW1zWydpbXBvcnRfZnJvbV9MSTInXSkpICANCnsNCiAgICAkbGlzdGl0MiA9IGNtc21zKCktPkdldE1vZHVsZUluc3RhbmNlKCdMaXN0SXQyJyk7DQogICAgJG1vZHVsZXMgPSAkbGlzdGl0Mi0+TGlzdE1vZHVsZXMoKTsNCg0KICAgIGZvcmVhY2goJG1vZHVsZXMgYXMgJG1vZHVsZSkgDQogICAgew0KICAgICAgJGN1cnJfbW9kID0gY21zbXMoKS0+R2V0TW9kdWxlSW5zdGFuY2UoJG1vZHVsZS0+bW9kdWxlX25hbWUpOw0KDQogICAgICBpZiggIWlzX29iamVjdCgkY3Vycl9tb2QpKSANCiAgICAgIHsNCiAgICAgICAgIHRocm93IG5ldyBcTElTRVxFeGNlcHRpb24oJ0Vycm9yIGluICcgLiBfX0NMQVNTX18gLiAnIGludmFsaWQgaW5zdGFuY2UgbmFtZSEnKTsNCiAgICAgIH0NCiAgICAgIA0KICAgICAgJGR1cGxpY2F0b3IgPSBuZXcgTElTRV9MSTJjb252ZXJ0ZXIoJG1vZHVsZS0+bW9kdWxlX25hbWUpOw0KICAgICAgJG1vZHVsZV9mdWxsbmFtZSA9ICRkdXBsaWNhdG9yLT5SdW4oKTsgIA0KICAgIH0NCgkNCgkkcGFybXNbJ21lc3NhZ2UnXSA9ICdtZXNzYWdlX2luc3RhbmNlc19jb3BpZWQnOw0KfQ0KDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQojIEZpeCBpbXBvcnQgZnJvbSBMSTINCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0NCmlmKGlzc2V0KCRwYXJhbXNbJ2ZpeF9pbXBvcnRfZnJvbV9MSTInXSkpDQp7DQogICRtb2R1bGVzID0gJHRoaXMtPkxpc3RNb2R1bGVzKCk7DQogICRlcnJvcl9tZXNzYWdlcyA9IGFycmF5KCk7DQogIA0KICBmb3JlYWNoKCRtb2R1bGVzIGFzICRtb2R1bGUpDQogIHsNCiAgICAkbW9kID0gY21zbXMoKS0+R2V0TW9kdWxlSW5zdGFuY2UoJG1vZHVsZS0+bW9kdWxlX25hbWUpOw0KICAgIA0KICAgIGlmKCAhaXNfb2JqZWN0KCRtb2QpICkgY29udGludWU7ICMgbW9kdWxlIGlzIG5vdCBhY3RpdmUgb3Igd2FzIGp1c3QgZGVsZXRlZCwgb3Igc29tZXRoaW5nIG9kZC4uLi4NCiAgICANCiAgICAkdGFibGVwcmVmaXggPSBjbXNfZGJfcHJlZml4KCkgLiAnbW9kdWxlXycgLiAkbW9kLT5fR2V0TW9kdWxlQWxpYXMoKTsNCg0KICAgIHRyeQ0KICAgIHsNCiAgICAgICR0YWJsZW5hbWUgPSAkdGFibGVwcmVmaXggLiAnX2l0ZW0nOw0KICAgICAgDQogICAgICBpZiggIWxpc2VfdXRpbHM6OmRiX2NvbHVtbl9leGlzdHMoJHRhYmxlbmFtZSwgJ3VybCcpICkNCiAgICAgIHsNCiAgICAgICAgJHEgPSAnQUxURVIgVEFCTEUgJyAuICR0YWJsZW5hbWUgLiAnIEFERCB1cmwgVkFSQ0hBUigyNTApJzsNCiAgICAgICAgJHIgPSAkZGItPkV4ZWN1dGUoJHEpOw0KICAgICAgICBpZighJHIpIHRocm93IG5ldyBcTElTRVxFeGNlcHRpb24oJGRiLT5FcnJvck1zZygpLCBcTElTRVxFcnJvcjo6RElTQ1JFVEVfREIgKTsNCiAgICAgIH0NCiAgICAgIA0KICAgICAgJHRhYmxlbmFtZSA9ICR0YWJsZXByZWZpeCAuICdfZmllbGRkZWYnOw0KICAgICAgDQogICAgICBpZiggIWxpc2VfdXRpbHM6OmRiX2NvbHVtbl9leGlzdHMoJHRhYmxlbmFtZSwgJ3RlbXBsYXRlJykgKQ0KICAgICAgew0KICAgICAgICAkcSA9ICdBTFRFUiBUQUJMRSAnIC4gJHRhYmxlbmFtZSAuICcgQUREIHRlbXBsYXRlIFZBUkNIQVIoMjUwKSc7DQogICAgICAgICRyID0gJGRiLT5FeGVjdXRlKCRxKTsNCiAgICAgICAgaWYoISRyKSB0aHJvdyBuZXcgXExJU0VcRXhjZXB0aW9uKCRkYi0+RXJyb3JNc2coKSwgXExJU0VcRXJyb3I6OkRJU0NSRVRFX0RCICk7DQogICAgICB9DQogICAgfQ0KICAgIGNhdGNoKEV4Y2VwdGlvbiAkZSkNCiAgICB7DQogICAgICAvLyRlcnJvcl9tZXNzYWdlc1tdID0gJ0Vycm9yOiAnIC4gJGUtPmdldE1lc3NhZ2UoKTsgIA0KICAgICAgJGVycm9yX21lc3NhZ2VzW10gPSAkZTsgLy8gY29udmVydHMgdG8gc3RyaW5nDQogICAgfQ0KICB9DQogIA0KICBpZiggIWVtcHR5KCRlcnJvcl9tZXNzYWdlcykgKSANCiAgew0KICAgICRwYXJtc1snZGJfZXJyb3JzJ10gPSBpbXBsb2RlKCcsICcsICRlcnJvcl9tZXNzYWdlcyk7DQogIH0gICAgDQp9DQoNCg0KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIyBSZWRpcmVjdA0KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KDQokdGhpcy0+UmVkaXJlY3QoJGlkLCAnZGVmYXVsdGFkbWluJywgJHJldHVybmlkLCAkcGFybXMpOw0KDQo/Pg==]]></data>
	</file>
	<file>
	  <filename>/action.admin_exportmodule.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHANCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQojIExJU0UgLSBMaXN0IEl0IFNwZWNpYWwgRWRpdGlvbg0KIyBWZXJzaW9uIDEuMg0KIyBBIGZvcmsgb2YgTGlzdEkyDQojIG1haW50YWluZWQgYnkgRmVybmFuZG8gTW9yZ2FkbyBBS0EgSm8gTW9yZw0KIyBzaW5jZSAyMDE1DQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIw0KIyBPcmlnaW5hbCBBdXRob3I6IEJlbiBNYWxlbiwgPGJlbkBjb25jZXB0ZmFjdG9yeS5jb20uYXU+DQojIENvLU1haW50YWluZXI6IFNpbW9uIFJhZGZvcmQsIDxzaW1vbkBjb25jZXB0ZmFjdG9yeS5jb20uYXU+DQojIFdlYjogd3d3LmNvbmNlcHRmYWN0b3J5LmNvbS5hdQ0KIw0KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCiMNCiMgTWFpbnRhaW5lciBzaW5jZSAyMDExIHVwIHRvIDIwMTQ6IEpvbmF0aGFuIFNjaG1pZCwgPGhpQGpvbmF0aGFuc2NobWlkLmRlPg0KIyBXZWI6IHd3dy5qb25hdGhhbnNjaG1pZC5kZQ0KIw0KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCiMNCiMgU29tZSB3YWNrb3Mgc3RhcnRlZCBkZXN0cm95aW5nIHN0dWZmIHNpbmNlIDIwMTIgYW5kIHN0b3BwZWQgYXQgMjAxNDoNCiMNCiMgVGFwaW8gTMO2eXR0eSwgPHRhcHNhQG9yYW5nZS1tZWRpYS5maT4NCiMgV2ViOiB3d3cub3JhbmdlLW1lZGlhLmZpDQojDQojIEdvcmFuIElsaWMsIDx1bmlxdTNlQGdtYWlsLmNvbT4NCiMgV2ViOiB3d3cuaWNoLW1hY2gtZGFzLmF0DQojDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIw0KIyBMSVNFIGlzIGEgQ01TIE1hZGUgU2ltcGxlIG1vZHVsZSB0aGF0IGVuYWJsZXMgdGhlIHdlYiBkZXZlbG9wZXIgdG8gY3JlYXRlDQojIG11bHRpcGxlIGxpc3RzIHRocm91Z2hvdXQgYSBzaXRlLiBJdCBjYW4gYmUgZHVwbGljYXRlZCBhbmQgZ2l2ZW4gZnJpZW5kbHkNCiMgbmFtZXMgZm9yIGVhc2llciBjbGllbnQgbWFpbnRlbmFuY2UuDQojDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIyBCRUdJTl9MSUNFTlNFDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIyBUaGlzIGZpbGUgaXMgcGFydCBvZiBMSVNFDQojIExJU0UgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5DQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5DQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yDQojIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uDQojDQojIExJU0UgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLA0KIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZg0KIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlDQojIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuDQojIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlDQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlDQojIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcgVVNBDQojIE9yIHJlYWQgaXQgb25saW5lOiBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwNCiMNCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQojIEVORF9MSUNFTlNFDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KDQppZiggIWRlZmluZWQoJ0NNU19WRVJTSU9OJykgKSBleGl0Ow0KDQppZiAoISR0aGlzLT5DaGVja1Blcm1pc3Npb24oJHRoaXMtPl9HZXRNb2R1bGVBbGlhcygpIC4gJ19tb2RpZnlfb3B0aW9uJykpIHJldHVybjsNCg0KaWYgKCFpc3NldCgkcGFyYW1zWydtb2R1bGVfaWQnXSkpDQoJdGhyb3cgbmV3IFxMSVNFXEV4Y2VwdGlvbignTWlzc2luZyBwYXJhbWV0ZXIsIHRoaXMgc2hvdWxkIG5vdCBoYXBwZW4nKTsNCg0KJG1vZG9wcyA9IGNtc21zKCktPkdldE1vZHVsZU9wZXJhdGlvbnMoKTsNCiRtb2R1bGVzID0gJHRoaXMtPkxpc3RNb2R1bGVzKCk7DQokbW9kbmFtZSA9ICRtb2R1bGVzWyRwYXJhbXNbJ21vZHVsZV9pZCddXS0+bW9kdWxlX25hbWU7DQoNCiRleHBvcnRlciA9IG5ldyBMSVNFSW5zdGFuY2VFeHBvcnRlcigkbW9kbmFtZSk7DQokZXhwb3J0ZXItPlJ1bigpOw0KDQovLyBhbGwgZG9uZQ0KJHRoaXMtPlJlZGlyZWN0KCRpZCwgJ2RlZmF1bHRhZG1pbicsICRyZXR1cm5pZCwgYXJyYXkoJ2FjdGl2ZV90YWInID0+ICdpbnN0YW5jZXN0YWInLCAnbWVzc2FnZScgPT4gJ2luc3RhbmNlX21vZHVsZXVwZ3JhZGVkJykpOw0KDQo/Pg==]]></data>
	</file>
	<file>
	  <filename>/action.admin_save_dna.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHANCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQojIExJU0UgLSBMaXN0IEl0IFNwZWNpYWwgRWRpdGlvbg0KIyBWZXJzaW9uIDEuMg0KIyBBIGZvcmsgb2YgTGlzdEkyDQojIG1haW50YWluZWQgYnkgRmVybmFuZG8gTW9yZ2FkbyBBS0EgSm8gTW9yZw0KIyBzaW5jZSAyMDE1DQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIw0KIyBPcmlnaW5hbCBBdXRob3I6IEJlbiBNYWxlbiwgPGJlbkBjb25jZXB0ZmFjdG9yeS5jb20uYXU+DQojIENvLU1haW50YWluZXI6IFNpbW9uIFJhZGZvcmQsIDxzaW1vbkBjb25jZXB0ZmFjdG9yeS5jb20uYXU+DQojIFdlYjogd3d3LmNvbmNlcHRmYWN0b3J5LmNvbS5hdQ0KIw0KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCiMNCiMgTWFpbnRhaW5lciBzaW5jZSAyMDExIHVwIHRvIDIwMTQ6IEpvbmF0aGFuIFNjaG1pZCwgPGhpQGpvbmF0aGFuc2NobWlkLmRlPg0KIyBXZWI6IHd3dy5qb25hdGhhbnNjaG1pZC5kZQ0KIw0KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCiMNCiMgU29tZSB3YWNrb3Mgc3RhcnRlZCBkZXN0cm95aW5nIHN0dWZmIHNpbmNlIDIwMTIgYW5kIHN0b3BwZWQgYXQgMjAxNDoNCiMNCiMgVGFwaW8gTMO2eXR0eSwgPHRhcHNhQG9yYW5nZS1tZWRpYS5maT4NCiMgV2ViOiB3d3cub3JhbmdlLW1lZGlhLmZpDQojDQojIEdvcmFuIElsaWMsIDx1bmlxdTNlQGdtYWlsLmNvbT4NCiMgV2ViOiB3d3cuaWNoLW1hY2gtZGFzLmF0DQojDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIw0KIyBMSVNFIGlzIGEgQ01TIE1hZGUgU2ltcGxlIG1vZHVsZSB0aGF0IGVuYWJsZXMgdGhlIHdlYiBkZXZlbG9wZXIgdG8gY3JlYXRlDQojIG11bHRpcGxlIGxpc3RzIHRocm91Z2hvdXQgYSBzaXRlLiBJdCBjYW4gYmUgZHVwbGljYXRlZCBhbmQgZ2l2ZW4gZnJpZW5kbHkNCiMgbmFtZXMgZm9yIGVhc2llciBjbGllbnQgbWFpbnRlbmFuY2UuDQojDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIyBCRUdJTl9MSUNFTlNFDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIyBUaGlzIGZpbGUgaXMgcGFydCBvZiBMSVNFDQojIExJU0UgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5DQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5DQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yDQojIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uDQojDQojIExJU0UgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLA0KIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZg0KIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlDQojIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuDQojIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlDQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlDQojIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcgVVNBDQojIE9yIHJlYWQgaXQgb25saW5lOiBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwNCiMNCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQojIEVORF9MSUNFTlNFDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KLyoqIEB2YXIgaW50ICRyZXR1cm5pZCBpbiBzY29wZSBmcm9tIGZpbGUgaW5jbHVzaW9uICovDQppZiggIWRlZmluZWQoJ0NNU19WRVJTSU9OJykgKSBleGl0Ow0KDQppZiAoISR0aGlzLT5DaGVja1Blcm1pc3Npb24oJHRoaXMtPl9HZXRNb2R1bGVBbGlhcygpIC4gJ19tb2RpZnlfb3B0aW9uJykpIHJldHVybjsNCg0KaWYgKCFpc3NldCgkcGFyYW1zWydtb2R1bGVfaWQnXSkpDQoJdGhyb3cgbmV3IFxMSVNFXEV4Y2VwdGlvbignTWlzc2luZyBwYXJhbWV0ZXIsIHRoaXMgc2hvdWxkIG5vdCBoYXBwZW4nKTsNCg0KJG1vZG9wcyA9IGNtc21zKCktPkdldE1vZHVsZU9wZXJhdGlvbnMoKTsNCiRtb2R1bGVzID0gJHRoaXMtPkxpc3RNb2R1bGVzKCk7DQokbW9kbmFtZSA9ICRtb2R1bGVzWyRwYXJhbXNbJ21vZHVsZV9pZCddXS0+bW9kdWxlX25hbWU7DQoNCiRleHBvcnRlciA9IG5ldyBcTElTRVxETkFFeHBvcnRlcigkbW9kbmFtZSk7DQokZXhwb3J0ZXItPlJ1bigpOw0KDQovLyBhbGwgZG9uZQ0KDQokdGhpcy0+UmVkaXJlY3QoJGlkLCAnZGVmYXVsdGFkbWluJywgJHJldHVybmlkLCBhcnJheSgnYWN0aXZlX3RhYicgPT4gJ2luc3RhbmNlc3RhYicsICdtZXNzYWdlJyA9PiAnaW5zdGFuY2VfbW9kdWxlX2RuYV9zYXZlZCcpKTsNCg0KPz4=]]></data>
	</file>
	<file>
	  <filename>/action.admin_scanfielddefs.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHANCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQojIExJU0UgLSBMaXN0IEl0IFNwZWNpYWwgRWRpdGlvbg0KIyBWZXJzaW9uIDEuMg0KIyBBIGZvcmsgb2YgTGlzdEkyDQojIG1haW50YWluZWQgYnkgRmVybmFuZG8gTW9yZ2FkbyBBS0EgSm8gTW9yZw0KIyBzaW5jZSAyMDE1DQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIw0KIyBPcmlnaW5hbCBBdXRob3I6IEJlbiBNYWxlbiwgPGJlbkBjb25jZXB0ZmFjdG9yeS5jb20uYXU+DQojIENvLU1haW50YWluZXI6IFNpbW9uIFJhZGZvcmQsIDxzaW1vbkBjb25jZXB0ZmFjdG9yeS5jb20uYXU+DQojIFdlYjogd3d3LmNvbmNlcHRmYWN0b3J5LmNvbS5hdQ0KIw0KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCiMNCiMgTWFpbnRhaW5lciBzaW5jZSAyMDExIHVwIHRvIDIwMTQ6IEpvbmF0aGFuIFNjaG1pZCwgPGhpQGpvbmF0aGFuc2NobWlkLmRlPg0KIyBXZWI6IHd3dy5qb25hdGhhbnNjaG1pZC5kZQ0KIw0KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCiMNCiMgU29tZSB3YWNrb3Mgc3RhcnRlZCBkZXN0cm95aW5nIHN0dWZmIHNpbmNlIDIwMTIgYW5kIHN0b3BwZWQgYXQgMjAxNDoNCiMNCiMgVGFwaW8gTMO2eXR0eSwgPHRhcHNhQG9yYW5nZS1tZWRpYS5maT4NCiMgV2ViOiB3d3cub3JhbmdlLW1lZGlhLmZpDQojDQojIEdvcmFuIElsaWMsIDx1bmlxdTNlQGdtYWlsLmNvbT4NCiMgV2ViOiB3d3cuaWNoLW1hY2gtZGFzLmF0DQojDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIw0KIyBMSVNFIGlzIGEgQ01TIE1hZGUgU2ltcGxlIG1vZHVsZSB0aGF0IGVuYWJsZXMgdGhlIHdlYiBkZXZlbG9wZXIgdG8gY3JlYXRlDQojIG11bHRpcGxlIGxpc3RzIHRocm91Z2hvdXQgYSBzaXRlLiBJdCBjYW4gYmUgZHVwbGljYXRlZCBhbmQgZ2l2ZW4gZnJpZW5kbHkNCiMgbmFtZXMgZm9yIGVhc2llciBjbGllbnQgbWFpbnRlbmFuY2UuDQojDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIyBCRUdJTl9MSUNFTlNFDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIyBUaGlzIGZpbGUgaXMgcGFydCBvZiBMSVNFDQojIExJU0UgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5DQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5DQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yDQojIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uDQojDQojIExJU0UgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLA0KIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZg0KIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlDQojIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuDQojIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlDQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlDQojIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcgVVNBDQojIE9yIHJlYWQgaXQgb25saW5lOiBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwNCiMNCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQojIEVORF9MSUNFTlNFDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KDQppZiggIWRlZmluZWQoJ0NNU19WRVJTSU9OJykgKSBleGl0Ow0KTElTRUZpZWxkZGVmT3BlcmF0aW9uczo6U2Nhbk1vZHVsZXMoKTsNCi8vIGFsbCBkb25lDQokdGhpcy0+UmVkaXJlY3QoJGlkLCAnZGVmYXVsdGFkbWluJywgJHJldHVybmlkLCBhcnJheSgnYWN0aXZlX3RhYicgPT4gJ2ZpZWxkZGVmc3RhYicsICdtZXNzYWdlJz0+J2ZpZWxkZGVmX3NjYW5uZWQnKSk7DQo/Pg==]]></data>
	</file>
	<file>
	  <filename>/action.admin_togglefielddef.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHANCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQojIExJU0UgLSBMaXN0IEl0IFNwZWNpYWwgRWRpdGlvbg0KIyBWZXJzaW9uIDEuMg0KIyBBIGZvcmsgb2YgTGlzdEkyDQojIG1haW50YWluZWQgYnkgRmVybmFuZG8gTW9yZ2FkbyBBS0EgSm8gTW9yZw0KIyBzaW5jZSAyMDE1DQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIw0KIyBPcmlnaW5hbCBBdXRob3I6IEJlbiBNYWxlbiwgPGJlbkBjb25jZXB0ZmFjdG9yeS5jb20uYXU+DQojIENvLU1haW50YWluZXI6IFNpbW9uIFJhZGZvcmQsIDxzaW1vbkBjb25jZXB0ZmFjdG9yeS5jb20uYXU+DQojIFdlYjogd3d3LmNvbmNlcHRmYWN0b3J5LmNvbS5hdQ0KIw0KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCiMNCiMgTWFpbnRhaW5lciBzaW5jZSAyMDExIHVwIHRvIDIwMTQ6IEpvbmF0aGFuIFNjaG1pZCwgPGhpQGpvbmF0aGFuc2NobWlkLmRlPg0KIyBXZWI6IHd3dy5qb25hdGhhbnNjaG1pZC5kZQ0KIw0KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCiMNCiMgU29tZSB3YWNrb3Mgc3RhcnRlZCBkZXN0cm95aW5nIHN0dWZmIHNpbmNlIDIwMTIgYW5kIHN0b3BwZWQgYXQgMjAxNDoNCiMNCiMgVGFwaW8gTMO2eXR0eSwgPHRhcHNhQG9yYW5nZS1tZWRpYS5maT4NCiMgV2ViOiB3d3cub3JhbmdlLW1lZGlhLmZpDQojDQojIEdvcmFuIElsaWMsIDx1bmlxdTNlQGdtYWlsLmNvbT4NCiMgV2ViOiB3d3cuaWNoLW1hY2gtZGFzLmF0DQojDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIw0KIyBMSVNFIGlzIGEgQ01TIE1hZGUgU2ltcGxlIG1vZHVsZSB0aGF0IGVuYWJsZXMgdGhlIHdlYiBkZXZlbG9wZXIgdG8gY3JlYXRlDQojIG11bHRpcGxlIGxpc3RzIHRocm91Z2hvdXQgYSBzaXRlLiBJdCBjYW4gYmUgZHVwbGljYXRlZCBhbmQgZ2l2ZW4gZnJpZW5kbHkNCiMgbmFtZXMgZm9yIGVhc2llciBjbGllbnQgbWFpbnRlbmFuY2UuDQojDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIyBCRUdJTl9MSUNFTlNFDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIyBUaGlzIGZpbGUgaXMgcGFydCBvZiBMSVNFDQojIExJU0UgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5DQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5DQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yDQojIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uDQojDQojIExJU0UgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLA0KIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZg0KIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlDQojIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuDQojIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlDQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlDQojIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcgVVNBDQojIE9yIHJlYWQgaXQgb25saW5lOiBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwNCiMNCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQojIEVORF9MSUNFTlNFDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KDQppZiggIWRlZmluZWQoJ0NNU19WRVJTSU9OJykgKSBleGl0Ow0KDQoNCmlmICghaXNzZXQoJHBhcmFtc1sndHlwZSddKSkNCgl0aHJvdyBuZXcgTElTRUV4Y2VwdGlvbignTWlzc2luZyBwYXJhbWV0ZXIsIHRoaXMgc2hvdWxkIG5vdCBoYXBwZW4hJyk7DQoNCiR0eXBlID0gKHN0cmluZykkcGFyYW1zWyd0eXBlJ107CQ0KCQ0KJHN0YXR1cyA9IExJU0VGaWVsZGRlZk9wZXJhdGlvbnM6OlRvZ2dsZUFjdGl2ZSgkcGFyYW1zWyd0eXBlJ10pOw0KCQ0KJGhhbmRsZXJzID0gb2JfbGlzdF9oYW5kbGVycygpOyANCmZvciAoJGNudCA9IDA7ICRjbnQgPCBzaXplb2YoJGhhbmRsZXJzKTsgJGNudCsrKSB7IG9iX2VuZF9jbGVhbigpOyB9DQoNCiRhZG1pbnRoZW1lID0gY21zX3V0aWxzOjpnZXRfdGhlbWVfb2JqZWN0KCk7DQokanNvbiA9IG5ldyBzdGRDbGFzczsNCg0KaWYgKCRzdGF0dXMpIHsNCgkkanNvbi0+aW1hZ2UgPSAkYWRtaW50aGVtZS0+RGlzcGxheUltYWdlKCdpY29ucy9zeXN0ZW0vdHJ1ZS5naWYnLCAkdGhpcy0+TW9kTGFuZygncmV2ZXJ0JyksICcnLCAnJywgJ3N5c3RlbWljb24nKTsNCn0gDQplbHNlIHsNCgkkanNvbi0+aW1hZ2UgPSAkYWRtaW50aGVtZS0+RGlzcGxheUltYWdlKCdpY29ucy9zeXN0ZW0vZmFsc2UuZ2lmJywgJHRoaXMtPk1vZExhbmcoJ2FwcHJvdmUnKSwgJycsICcnLCAnc3lzdGVtaWNvbicpOw0KfQ0KDQokanNvbi0+aHJlZiA9ICR0aGlzLT5DcmVhdGVMaW5rKCRpZCwgJ2FkbWluX3RvZ2dsZWZpZWxkZGVmJywgJHJldHVybmlkLCAnJywgYXJyYXkoJ3R5cGUnID0+ICR0eXBlKSwgJycsIHRydWUpOw0KDQovLyBGaXggVVJMIGZvciBKU09OIG91dHB1dA0KJGpzb24tPmhyZWYgPSBodG1sX2VudGl0eV9kZWNvZGUoJGpzb24tPmhyZWYpOw0KDQpoZWFkZXIoIkNvbnRlbnQtdHlwZTphcHBsaWNhdGlvbi9qc29uOyBjaGFyc2V0PXV0Zi04Iik7DQoNCiRoYW5kbGVycyA9IG9iX2xpc3RfaGFuZGxlcnMoKTsgDQpmb3IgKCRjbnQgPSAwOyAkY250IDwgc2l6ZW9mKCRoYW5kbGVycyk7ICRjbnQrKykgeyBvYl9lbmRfY2xlYW4oKTsgfQ0KDQplY2hvIGpzb25fZW5jb2RlKCRqc29uKTsNCmV4aXQoKTsNCj8+]]></data>
	</file>
	<file>
	  <filename>/action.admin_updateoptions.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBMSVNFIC0gTGlzdCBJdCBTcGVjaWFsIEVkaXRpb24KIyBWZXJzaW9uIDEuMgojIEEgZm9yayBvZiBMaXN0STIKIyBtYWludGFpbmVkIGJ5IEZlcm5hbmRvIE1vcmdhZG8gQUtBIEpvIE1vcmcKIyBzaW5jZSAyMDE1CiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBPcmlnaW5hbCBBdXRob3I6IEJlbiBNYWxlbiwgPGJlbkBjb25jZXB0ZmFjdG9yeS5jb20uYXU+CiMgQ28tTWFpbnRhaW5lcjogU2ltb24gUmFkZm9yZCwgPHNpbW9uQGNvbmNlcHRmYWN0b3J5LmNvbS5hdT4KIyBXZWI6IHd3dy5jb25jZXB0ZmFjdG9yeS5jb20uYXUKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojCiMgTWFpbnRhaW5lciBzaW5jZSAyMDExIHVwIHRvIDIwMTQ6IEpvbmF0aGFuIFNjaG1pZCwgPGhpQGpvbmF0aGFuc2NobWlkLmRlPgojIFdlYjogd3d3LmpvbmF0aGFuc2NobWlkLmRlCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIwojIFNvbWUgd2Fja29zIHN0YXJ0ZWQgZGVzdHJveWluZyBzdHVmZiBzaW5jZSAyMDEyIGFuZCBzdG9wcGVkIGF0IDIwMTQ6CiMKIyBUYXBpbyBMw7Z5dHR5LCA8dGFwc2FAb3JhbmdlLW1lZGlhLmZpPgojIFdlYjogd3d3Lm9yYW5nZS1tZWRpYS5maQojCiMgR29yYW4gSWxpYywgPHVuaXF1M2VAZ21haWwuY29tPgojIFdlYjogd3d3LmljaC1tYWNoLWRhcy5hdAojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBMSVNFIGlzIGEgQ01TIE1hZGUgU2ltcGxlIG1vZHVsZSB0aGF0IGVuYWJsZXMgdGhlIHdlYiBkZXZlbG9wZXIgdG8gY3JlYXRlCiMgbXVsdGlwbGUgbGlzdHMgdGhyb3VnaG91dCBhIHNpdGUuIEl0IGNhbiBiZSBkdXBsaWNhdGVkIGFuZCBnaXZlbiBmcmllbmRseQojIG5hbWVzIGZvciBlYXNpZXIgY2xpZW50IG1haW50ZW5hbmNlLgojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgQkVHSU5fTElDRU5TRQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIExJU0UKIyBMSVNFIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgTElTRSBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBFTkRfTElDRU5TRQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKaWYoICFkZWZpbmVkKCdDTVNfVkVSU0lPTicpICkgZXhpdDsKCgojLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgU2V0IG5ldyB2YWx1ZXMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKJHRoaXMtPlNldFByZWZlcmVuY2UoJ2FsbG93X2F1dG9zY2FuJywgKGlzc2V0KCRwYXJhbXNbJ2FsbG93X2F1dG9zY2FuJ10pID8gMSA6IDApKTsKJHRoaXMtPlNldFByZWZlcmVuY2UoJ2FsbG93X2F1dG9pbnN0YWxsJywgKGlzc2V0KCRwYXJhbXNbJ2FsbG93X2F1dG9pbnN0YWxsJ10pID8gMSA6IDApKTsKJHRoaXMtPlNldFByZWZlcmVuY2UoJ2FsbG93X2F1dG91cGRhdGUnLCAoaXNzZXQoJHBhcmFtc1snYWxsb3dfYXV0b3VwZGF0ZSddKSA/IDEgOiAwKSk7CgokcGFyYW1zID0gYXJyYXkoJ21lc3NhZ2UnID0+ICdjaGFuZ2Vzc2F2ZWQnLCAnYWN0aXZlX3RhYicgPT4gJ29wdGlvbnN0YWInKTsKJHRoaXMtPlJlZGlyZWN0KCRpZCwgJ2RlZmF1bHRhZG1pbicsICRyZXR1cm5pZCwgJHBhcmFtcyk7Cj8+]]></data>
	</file>
	<file>
	  <filename>/action.admin_upgrademodule.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHANCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQojIExJU0UgLSBMaXN0IEl0IFNwZWNpYWwgRWRpdGlvbg0KIyBWZXJzaW9uIDEuMg0KIyBBIGZvcmsgb2YgTGlzdEkyDQojIG1haW50YWluZWQgYnkgRmVybmFuZG8gTW9yZ2FkbyBBS0EgSm8gTW9yZw0KIyBzaW5jZSAyMDE1DQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIw0KIyBPcmlnaW5hbCBBdXRob3I6IEJlbiBNYWxlbiwgPGJlbkBjb25jZXB0ZmFjdG9yeS5jb20uYXU+DQojIENvLU1haW50YWluZXI6IFNpbW9uIFJhZGZvcmQsIDxzaW1vbkBjb25jZXB0ZmFjdG9yeS5jb20uYXU+DQojIFdlYjogd3d3LmNvbmNlcHRmYWN0b3J5LmNvbS5hdQ0KIw0KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCiMNCiMgTWFpbnRhaW5lciBzaW5jZSAyMDExIHVwIHRvIDIwMTQ6IEpvbmF0aGFuIFNjaG1pZCwgPGhpQGpvbmF0aGFuc2NobWlkLmRlPg0KIyBXZWI6IHd3dy5qb25hdGhhbnNjaG1pZC5kZQ0KIw0KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCiMNCiMgU29tZSB3YWNrb3Mgc3RhcnRlZCBkZXN0cm95aW5nIHN0dWZmIHNpbmNlIDIwMTIgYW5kIHN0b3BwZWQgYXQgMjAxNDoNCiMNCiMgVGFwaW8gTMO2eXR0eSwgPHRhcHNhQG9yYW5nZS1tZWRpYS5maT4NCiMgV2ViOiB3d3cub3JhbmdlLW1lZGlhLmZpDQojDQojIEdvcmFuIElsaWMsIDx1bmlxdTNlQGdtYWlsLmNvbT4NCiMgV2ViOiB3d3cuaWNoLW1hY2gtZGFzLmF0DQojDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIw0KIyBMSVNFIGlzIGEgQ01TIE1hZGUgU2ltcGxlIG1vZHVsZSB0aGF0IGVuYWJsZXMgdGhlIHdlYiBkZXZlbG9wZXIgdG8gY3JlYXRlDQojIG11bHRpcGxlIGxpc3RzIHRocm91Z2hvdXQgYSBzaXRlLiBJdCBjYW4gYmUgZHVwbGljYXRlZCBhbmQgZ2l2ZW4gZnJpZW5kbHkNCiMgbmFtZXMgZm9yIGVhc2llciBjbGllbnQgbWFpbnRlbmFuY2UuDQojDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIyBCRUdJTl9MSUNFTlNFDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIyBUaGlzIGZpbGUgaXMgcGFydCBvZiBMSVNFDQojIExJU0UgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5DQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5DQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yDQojIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uDQojDQojIExJU0UgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLA0KIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZg0KIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlDQojIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuDQojIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlDQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlDQojIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcgVVNBDQojIE9yIHJlYWQgaXQgb25saW5lOiBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwNCiMNCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQojIEVORF9MSUNFTlNFDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KDQppZiggIWRlZmluZWQoJ0NNU19WRVJTSU9OJykgKSBleGl0Ow0KDQoNCmlmICghJHRoaXMtPkNoZWNrUGVybWlzc2lvbigkdGhpcy0+X0dldE1vZHVsZUFsaWFzKCkgLiAnX21vZGlmeV9vcHRpb24nKSkgcmV0dXJuOw0KDQppZiAoIWlzc2V0KCRwYXJhbXNbJ21vZHVsZV9pZCddKSkNCgl0aHJvdyBuZXcgXExJU0VcRXhjZXB0aW9uKCdNaXNzaW5nIHBhcmFtZXRlciwgdGhpcyBzaG91bGQgbm90IGhhcHBlbiEnKTsNCg0KJG1vZG9wcyA9IGNtc21zKCktPkdldE1vZHVsZU9wZXJhdGlvbnMoKTsNCiRtb2R1bGVzID0gJHRoaXMtPkxpc3RNb2R1bGVzKCk7DQokbW9kbmFtZSA9ICRtb2R1bGVzWyRwYXJhbXNbJ21vZHVsZV9pZCddXS0+bW9kdWxlX25hbWU7DQokbW9kb3BzLT5VcGdyYWRlTW9kdWxlKCRtb2RuYW1lKTsNCg0KLy8gYWxsIGRvbmUNCiR0aGlzLT5SZWRpcmVjdCgkaWQsICdkZWZhdWx0YWRtaW4nLCAkcmV0dXJuaWQsIGFycmF5KCdhY3RpdmVfdGFiJyA9PiAnaW5zdGFuY2VzdGFiJywgJ21lc3NhZ2UnID0+ICdpbnN0YW5jZV9tb2R1bGV1cGdyYWRlZCcpKTsNCg0KPz4=]]></data>
	</file>
	<file>
	  <filename>/action.admin_uploadmodule.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHANCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQojIExJU0UgLSBMaXN0IEl0IFNwZWNpYWwgRWRpdGlvbg0KIyBWZXJzaW9uIDEuMg0KIyBBIGZvcmsgb2YgTGlzdEkyDQojIG1haW50YWluZWQgYnkgRmVybmFuZG8gTW9yZ2FkbyBBS0EgSm8gTW9yZw0KIyBzaW5jZSAyMDE1DQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIw0KIyBPcmlnaW5hbCBBdXRob3I6IEJlbiBNYWxlbiwgPGJlbkBjb25jZXB0ZmFjdG9yeS5jb20uYXU+DQojIENvLU1haW50YWluZXI6IFNpbW9uIFJhZGZvcmQsIDxzaW1vbkBjb25jZXB0ZmFjdG9yeS5jb20uYXU+DQojIFdlYjogd3d3LmNvbmNlcHRmYWN0b3J5LmNvbS5hdQ0KIw0KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCiMNCiMgTWFpbnRhaW5lciBzaW5jZSAyMDExIHVwIHRvIDIwMTQ6IEpvbmF0aGFuIFNjaG1pZCwgPGhpQGpvbmF0aGFuc2NobWlkLmRlPg0KIyBXZWI6IHd3dy5qb25hdGhhbnNjaG1pZC5kZQ0KIw0KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCiMNCiMgU29tZSB3YWNrb3Mgc3RhcnRlZCBkZXN0cm95aW5nIHN0dWZmIHNpbmNlIDIwMTIgYW5kIHN0b3BwZWQgYXQgMjAxNDoNCiMNCiMgVGFwaW8gTMO2eXR0eSwgPHRhcHNhQG9yYW5nZS1tZWRpYS5maT4NCiMgV2ViOiB3d3cub3JhbmdlLW1lZGlhLmZpDQojDQojIEdvcmFuIElsaWMsIDx1bmlxdTNlQGdtYWlsLmNvbT4NCiMgV2ViOiB3d3cuaWNoLW1hY2gtZGFzLmF0DQojDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIw0KIyBMSVNFIGlzIGEgQ01TIE1hZGUgU2ltcGxlIG1vZHVsZSB0aGF0IGVuYWJsZXMgdGhlIHdlYiBkZXZlbG9wZXIgdG8gY3JlYXRlDQojIG11bHRpcGxlIGxpc3RzIHRocm91Z2hvdXQgYSBzaXRlLiBJdCBjYW4gYmUgZHVwbGljYXRlZCBhbmQgZ2l2ZW4gZnJpZW5kbHkNCiMgbmFtZXMgZm9yIGVhc2llciBjbGllbnQgbWFpbnRlbmFuY2UuDQojDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIyBCRUdJTl9MSUNFTlNFDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIyBUaGlzIGZpbGUgaXMgcGFydCBvZiBMSVNFDQojIExJU0UgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5DQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5DQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yDQojIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uDQojDQojIExJU0UgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLA0KIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZg0KIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlDQojIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuDQojIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlDQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlDQojIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcgVVNBDQojIE9yIHJlYWQgaXQgb25saW5lOiBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwNCiMNCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQojIEVORF9MSUNFTlNFDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KdXNlIFxMSVNFXEVycm9yIGFzIEVycm9yOw0KaWYoICFkZWZpbmVkKCdDTVNfVkVSU0lPTicpICkgZXhpdDsNCg0KJGZpZWxkTmFtZSA9ICdtMV9maWxlbmFtZSc7DQoNCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0NCiMgU3VibWl0DQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQoNCmlmIChpc3NldCgkcGFyYW1zWyd1cGxvYWQnXSkpIA0Kew0KCSRlcnJvcnMgPSBhcnJheSgpOw0KICANCiAgaWYgKCFpc3NldCAoJF9GSUxFU1skZmllbGROYW1lXSkgfHwgIWlzc2V0ICgkX0ZJTEVTKQ0KICAgIHx8ICFpc19hcnJheSAoJF9GSUxFU1skZmllbGROYW1lXSkgfHwgISRfRklMRVNbJGZpZWxkTmFtZV1bJ25hbWUnXSkNCiAgICB7DQogICAgICAkZXJyb3JzW10gPSAnZXJyb3Igbm8geG1sIGZpbGUnOw0KICAgIH0NCiAgICBlbHNlDQogICAgew0KICAgICAgLy8gbm9ybWFsaXplIHRoZSBmaWxlIHZhcmlhYmxlDQogICAgICAkZmlsZSA9ICRfRklMRVNbJGZpZWxkTmFtZV07DQogICAgICANCiAgICAgIGlmKCAhaXNzZXQoJGZpbGVbJ3RtcF9uYW1lJ10pIHx8IHRyaW0oJGZpbGVbJ3RtcF9uYW1lJ10pID09ICcnICkgDQogICAgICB7DQogICAgICAgICRlcnJvcnNbXSA9ICdlcnJvciBubyB4bWwgZmlsZSc7DQogICAgICB9DQogICAgfQ0KICANCiAgICAkaW5zdGFuY2VuYW1lID0gdHJpbSgkcGFyYW1zWydpbnN0YW5jZW5hbWUnXSk7DQogICAgDQogICAgaWYoICFlbXB0eSgkaW5zdGFuY2VuYW1lKSApDQogICAgew0KICAgICAgaWYocHJlZ19tYXRjaCgnL1teMC05YS16QS1aXS8nLCAkaW5zdGFuY2VuYW1lKSkNCiAgICAgIHsNCiAgICAgICAgJGVycm9yc1tdID0gJHRoaXMtPk1vZExhbmcoJ21vZHVsZV9uYW1lX2ludmFsaWQnKTsNCiAgICAgIH0NCiAgICAgIA0KICAgICAgIyBlbmZvcmNlIExJU0UgcHJlZml4DQogICAgICBpZighc3RhcnRzd2l0aCgkaW5zdGFuY2VuYW1lLCAnTElTRScpICkgJGluc3RhbmNlbmFtZSA9ICdMSVNFJyAuICRpbnN0YW5jZW5hbWU7DQogICAgfQ0KICAgIA0KICAgIGlmKCBjb3VudCgkZXJyb3JzKSApDQogICAgew0KICAgICAgJGVycm9ycyA9IGltcGxvZGUoJ3wnLCAkZXJyb3JzKTsNCiAgICAgICRwYXJhbXMgPSBhcnJheSgnZXJyb3JzJyA9PiAkZXJyb3JzLCdhY3RpdmVfdGFiJyA9PiAnaW5zdGFuY2VzdGFiJyk7DQogICAgICAkdGhpcy0+UmVkaXJlY3QoJGlkLCAnZGVmYXVsdGFkbWluJywgJycsICRwYXJhbXMpOw0KICAgIH0NCiAgICANCiAgICANCiAgICAkeG1sc3RyID0gZmlsZV9nZXRfY29udGVudHMoJGZpbGVbJ3RtcF9uYW1lJ10pOw0KICAgICRpbXBvcnRlciA9IG5ldyBMSVNFSW5zdGFuY2VJbXBvcnRlcigkeG1sc3RyLCAkaW5zdGFuY2VuYW1lKTsNCiAgICANCiAgICB0cnkNCiAgICB7DQogICAgICAkbW9kdWxlX2Z1bGxuYW1lID0gJGltcG9ydGVyLT5SdW4oKTsNCiAgICB9DQogICAgY2F0Y2goRXhjZXB0aW9uICRlKQ0KICAgIHsNCiAgICAgIHN3aXRjaCggJGUtPmdldENvZGUoKSApDQogICAgICB7DQogICAgICAgIGNhc2UgRXJyb3I6OkNSRUFURV9ESVJfRVJST1I6DQogICAgICAgICAgJGVycm9yc1tdID0gJ0NvdWxkblwndCBjcmVhdGUgYSBkaXJlY3RvcnkgbmFtZWQgJyAuICRpbnN0YW5jZW5hbWU7DQogICAgICAgIGJyZWFrOw0KICAgICAgICANCiAgICAgICAgZGVmYXVsdDoNCiAgICAgICAgICAkZXJyb3JzW10gPSAkZS0+Z2V0TWVzc2FnZSgpOw0KICAgICAgfQ0KICAgIH0NCiAgICANCiAgICBpZiggY291bnQoJGVycm9ycykgKQ0KICAgIHsNCiAgICAgICRlcnJvcnMgPSBpbXBsb2RlKCd8JywgJGVycm9ycyk7DQogICAgICAkcGFyYW1zID0gYXJyYXkoJ2Vycm9ycycgPT4gJGVycm9ycywnYWN0aXZlX3RhYicgPT4gJ2luc3RhbmNlc3RhYicpOw0KICAgICAgJHRoaXMtPlJlZGlyZWN0KCRpZCwgJ2RlZmF1bHRhZG1pbicsICcnLCAkcGFyYW1zKTsNCiAgICB9DQp9DQoNCiRwYXJhbXMgPSBhcnJheSgnbWVzc2FnZScgPT4gJ21vZHVsZWNvcGllZCcsJ2FjdGl2ZV90YWInID0+ICdpbnN0YW5jZXN0YWInKTsNCg0KJHRoaXMtPlJlZGlyZWN0KCRpZCwgJ2RlZmF1bHRhZG1pbicsICcnLCAkcGFyYW1zKTsNCj8+]]></data>
	</file>
	<file>
	  <filename>/action.defaultadmin.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBMSVNFIC0gTGlzdCBJdCBTcGVjaWFsIEVkaXRpb24KIyBWZXJzaW9uIDEuMgojIEEgZm9yayBvZiBMaXN0STIKIyBtYWludGFpbmVkIGJ5IEZlcm5hbmRvIE1vcmdhZG8gQUtBIEpvIE1vcmcKIyBzaW5jZSAyMDE1CiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBPcmlnaW5hbCBBdXRob3I6IEJlbiBNYWxlbiwgPGJlbkBjb25jZXB0ZmFjdG9yeS5jb20uYXU+CiMgQ28tTWFpbnRhaW5lcjogU2ltb24gUmFkZm9yZCwgPHNpbW9uQGNvbmNlcHRmYWN0b3J5LmNvbS5hdT4KIyBXZWI6IHd3dy5jb25jZXB0ZmFjdG9yeS5jb20uYXUKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojCiMgTWFpbnRhaW5lciBzaW5jZSAyMDExIHVwIHRvIDIwMTQ6IEpvbmF0aGFuIFNjaG1pZCwgPGhpQGpvbmF0aGFuc2NobWlkLmRlPgojIFdlYjogd3d3LmpvbmF0aGFuc2NobWlkLmRlCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIwojIFNvbWUgd2Fja29zIHN0YXJ0ZWQgZGVzdHJveWluZyBzdHVmZiBzaW5jZSAyMDEyIGFuZCBzdG9wcGVkIGF0IDIwMTQ6CiMKIyBUYXBpbyBMw7Z5dHR5LCA8dGFwc2FAb3JhbmdlLW1lZGlhLmZpPgojIFdlYjogd3d3Lm9yYW5nZS1tZWRpYS5maQojCiMgR29yYW4gSWxpYywgPHVuaXF1M2VAZ21haWwuY29tPgojIFdlYjogd3d3LmljaC1tYWNoLWRhcy5hdAojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBMSVNFIGlzIGEgQ01TIE1hZGUgU2ltcGxlIG1vZHVsZSB0aGF0IGVuYWJsZXMgdGhlIHdlYiBkZXZlbG9wZXIgdG8gY3JlYXRlCiMgbXVsdGlwbGUgbGlzdHMgdGhyb3VnaG91dCBhIHNpdGUuIEl0IGNhbiBiZSBkdXBsaWNhdGVkIGFuZCBnaXZlbiBmcmllbmRseQojIG5hbWVzIGZvciBlYXNpZXIgY2xpZW50IG1haW50ZW5hbmNlLgojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgQkVHSU5fTElDRU5TRQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIExJU0UKIyBMSVNFIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgTElTRSBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBFTkRfTElDRU5TRQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQppZiggIWRlZmluZWQoJ0NNU19WRVJTSU9OJykgKSBleGl0OwoKaWYoaXNzZXQoJHBhcmFtc1snbWVzc2FnZSddKSkKewoJZWNobyAkdGhpcy0+U2hvd01lc3NhZ2UoJHRoaXMtPk1vZExhbmcoJHBhcmFtc1snbWVzc2FnZSddKSk7Cn0KCi8vaWYgKGlzc2V0KCRwYXJhbXNbJ2Vycm9ycyddKSAmJiBjb3VudCgkcGFyYW1zWydlcnJvcnMnXSkpIC8vIHRoZXJlIGlzIGEgYnVnIGl0IENNU01TIGNvcmUuLi4gOigKLy8gaXQgbWVzc2VzIHdpdGggYXJyYXlzIGluIHRoZSAkcGFyYW1zIGFycmF5Ci8vIHF1aWNrIGhhY2sKaWYoIGlzc2V0KCRwYXJhbXNbJ2Vycm9ycyddKSApCnsKICAkZXJyb3JzID0gZXhwbG9kZSgnfCcsICRwYXJhbXNbJ2Vycm9ycyddKTsKCWVjaG8gJHRoaXMtPlNob3dFcnJvcnMoJGVycm9ycyk7Cn0KCmlmKCFlbXB0eSgkcGFyYW1zWydhY3RpdmVfdGFiJ10pKQp7CiAgJHRhYiA9ICRwYXJhbXNbJ2FjdGl2ZV90YWInXTsKfQplbHNlCnsKICAkdGFiID0gJ2luc3RhbmNlc3RhYic7Cn0KCmVjaG8gJHRoaXMtPlN0YXJ0VGFiSGVhZGVycygpOwplY2hvICR0aGlzLT5TZXRUYWJIZWFkZXIoJ2luc3RhbmNlc3RhYicsICR0aGlzLT5Nb2RMYW5nKCdpbnN0YW5jZXMnKSwgKCR0YWIgPT0gJ2luc3RhbmNlc3RhYicpKTsKZWNobyAkdGhpcy0+U2V0VGFiSGVhZGVyKCdmaWVsZGRlZnN0YWInLCAkdGhpcy0+TW9kTGFuZygnZmllbGRkZWZzJyksICgkdGFiID09ICdmaWVsZGRlZnN0YWInKSk7CmVjaG8gJHRoaXMtPlNldFRhYkhlYWRlcignbWFpbnRlbmFuY2V0YWInLCAkdGhpcy0+TW9kTGFuZygnbWFpbnRlbmFuY2UnKSwgKCR0YWIgPT0gJ21haW50ZW5hbmNldGFiJykpOwplY2hvICR0aGlzLT5TZXRUYWJIZWFkZXIoJ29wdGlvbnN0YWInLCAkdGhpcy0+TW9kTGFuZygnb3B0aW9ucycpLCAoJHRhYiA9PSAnb3B0aW9uc3RhYicpKTsKZWNobyAkdGhpcy0+RW5kVGFiSGVhZGVycygpOwoKZWNobyAkdGhpcy0+U3RhcnRUYWJDb250ZW50KCk7CgplY2hvICR0aGlzLT5TdGFydFRhYignaW5zdGFuY2VzdGFiJywgJHBhcmFtcyk7CmluY2x1ZGUgZGlybmFtZShfX0ZJTEVfXykgLiAnL3RhYmNvbnRlbnQuYWRtaW5faW5zdGFuY2VzdGFiLnBocCc7CmVjaG8gJHRoaXMtPkVuZFRhYigpOwoKZWNobyAkdGhpcy0+U3RhcnRUYWIoJ2ZpZWxkZGVmc3RhYicsICRwYXJhbXMpOwppbmNsdWRlIGRpcm5hbWUoX19GSUxFX18pIC4gJy90YWJjb250ZW50LmFkbWluX2ZpZWxkZGVmc3RhYi5waHAnOwplY2hvICR0aGlzLT5FbmRUYWIoKTsKCmVjaG8gJHRoaXMtPlN0YXJ0VGFiKCdtYWludGVuYW5jZXRhYicsICRwYXJhbXMpOwppbmNsdWRlIGRpcm5hbWUoX19GSUxFX18pIC4gJy90YWJjb250ZW50LmFkbWluX21haW50ZW5hbmNldGFiLnBocCc7CmVjaG8gJHRoaXMtPkVuZFRhYigpOwoKZWNobyAkdGhpcy0+U3RhcnRUYWIoJ29wdGlvbnN0YWInLCAkcGFyYW1zKTsKaW5jbHVkZSBkaXJuYW1lKF9fRklMRV9fKSAuICcvdGFiY29udGVudC5hZG1pbl9vcHRpb25zdGFiLnBocCc7CmVjaG8gJHRoaXMtPkVuZFRhYigpOwogICAgCmVjaG8gJHRoaXMtPkVuZFRhYkNvbnRlbnQoKTsKCj8+]]></data>
	</file>
	<file>
	  <filename>/changelog.html</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PCEtLSB0byBiZSByZW1vdmVkIC0tPg==]]></data>
	</file>
	<file>
	  <filename>/data</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/data/cfg.inc</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHANCi8qKg0KKiBMSVNFIEFkdmFuY2VkIENvbmZpZ3VyYXRpb24NCiovDQovKioNCiogVGhpcyBmaWxlIGlzIGFuIGFkdmFuY2VkIGNvbmZpZ3VyYXRpb24gZmlsZSBmb3IgTElTRQ0KKiBhbmQsIGlmIG9uZSBpcyBjcmVhdGVkIGluc2lkZSB0aGUgZGF0YSBmb2xkZXIgb2YgYW4gaW5zdGFuY2UsDQoqIGZvciBhbnkgTElTRSBpbnN0YW5jZSBpbmRlcGVuZGVudGx5DQoqIEtFRVAgSU4gTUlORCB0aGF0IHRoaXMgaXMgYW4gYWR2YW5jZWQgZmVhdHVyZQ0KKiB3aXRoIG5vdCBtdWNoIGRvY3VtZW50YXRpb247IEl0J3MgdXNlIG5lZWRzIENBVVRJT04hDQoqIE1pc2NvbmZpZ3VyYXRpb25zIGNhbiBicmVhayB0aGUgbW9kdWxlcywgaGF2ZSBhZHZlcnNlIGVmZmVjdHMsDQoqIGltcGFjdCBzaXRlIHNwZWVkIG9yIG90aGVyd2lzZSBicmVhayB0aGUgd2hvbGUgQ01TTVMgaW5zdGFsbGF0aW9uLg0KKiBTbyBhdm9pZCBjaGFuZ2luZyBhbnkgb2YgdGhlIHNldHRpbmdzIHVubGVzcyB5b3Uga25vdyB3aGF0IHlvdSBhcmUgZG9pbmcNCiogb3IgaGF2ZSBiZWVuIGFkdmlzZWQgdG8gZG8gc28gYnkgYSBMSVNFIGRldmVsb3BlciwNCiogb3RoZXJ3aXNlIGl0J3MgeW91ciBzb2xlIHJlc3BvbnNpYmlsaXR5IGlmIGFueXRoaW5nIGJyZWFrcyANCiovDQoNCi8qKg0KKiBTZXQgdG8gVFJVRSBpZiB5b3UgbmVlZCBMT0dHSU5HDQoqLw0KJGNmZ1snbG9nJ10gPSBGQUxTRTsNCg0KLyoqDQoqIFBhdGggb2YgdGhlIGRpciByZWxhdGl2ZQ0KKiB0byB0aGUgbW9kdWxlIGluc3RhbmNlIG93biBwYXRoDQoqIGRlZmF1bHQgaXMgJ2RhdGEnDQoqIHdoaWNoIHJlc29sdmVzIHRvIDxjbXNtc19yb290Plxtb2R1bGVzXDxMSVNFaW5zdGFuY2U+XGRhdGENCiogb3IgPGNtc21zX3Jvb3Q+XG1vZHVsZXNcTElTRVxkYXRhIGluIGNhc2Ugb2YgdGhlIG1haW4gbW9kdWxlDQoqIA0KKiBkZWZhdWx0OiAkY2ZnWydsb2dfcGF0aCddID0gJ2RhdGEnOyANCiovDQokY2ZnWydsb2dfcGF0aCddID0gJ2RhdGEnOw0KDQovKioNCiogbmFtZSBvZiB0aGUgZmlsZSB1c2VkIHRvIExPRw0KKi8NCiRjZmdbJ2xvZ19maWxlbmFtZSddID0gJ0xJU0UubG9nJzsNCg0KLyoqDQoqIFNldHMgdGhlIExJU0VRdWVyeSBwYWdlIGxpbWl0IGdsb2JhbGx5DQoqLw0KJGNmZ1snZ2xvYmFsX0xJU0VRdWVyeV9wYWdlX2xpbWl0J10gPSAxMDAwMDA7DQoNCj8+]]></data>
	</file>
	<file>
	  <filename>/data/smartysafelist.dat</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[c3RybGVuCnN0cmNtcApzdHJuY21wCnN0cmNhc2VjbXAKc3RybmNhc2VjbXAKYmNhZGQKYmNzdWIKYmNtdWwKYmNkaXYKYmNtb2QKYmNwb3cKYmNzcXJ0CmJjc2NhbGUKYmNjb21wCmJjcG93bW9kCmpkdG9ncmVnb3JpYW4KZ3JlZ29yaWFudG9qZApqZHRvanVsaWFuCmp1bGlhbnRvamQKamR0b2pld2lzaApqZXdpc2h0b2pkCmpkdG9mcmVuY2gKZnJlbmNodG9qZApqZGRheW9md2VlawpqZG1vbnRobmFtZQplYXN0ZXJfZGF0ZQplYXN0ZXJfZGF5cwp1bml4dG9qZApqZHRvdW5peApjYWxfdG9famQKY2FsX2Zyb21famQKY2FsX2RheXNfaW5fbW9udGgKY2FsX2luZm8Kc3RydG90aW1lCmRhdGUKaWRhdGUKZ21kYXRlCm1rdGltZQpnbW1rdGltZQpjaGVja2RhdGUKc3RyZnRpbWUKZ21zdHJmdGltZQp0aW1lCmxvY2FsdGltZQpnZXRkYXRlCmRhdGVfY3JlYXRlCmRhdGVfY3JlYXRlX2ltbXV0YWJsZQpkYXRlX2NyZWF0ZV9mcm9tX2Zvcm1hdApkYXRlX2NyZWF0ZV9pbW11dGFibGVfZnJvbV9mb3JtYXQKZGF0ZV9wYXJzZQpkYXRlX3BhcnNlX2Zyb21fZm9ybWF0CmRhdGVfZ2V0X2xhc3RfZXJyb3JzCmRhdGVfZm9ybWF0CmRhdGVfbW9kaWZ5CmRhdGVfYWRkCmRhdGVfc3ViCmRhdGVfdGltZXpvbmVfZ2V0CmRhdGVfdGltZXpvbmVfc2V0CmRhdGVfb2Zmc2V0X2dldApkYXRlX2RpZmYKZGF0ZV90aW1lX3NldApkYXRlX2RhdGVfc2V0CmRhdGVfaXNvZGF0ZV9zZXQKZGF0ZV90aW1lc3RhbXBfc2V0CmRhdGVfdGltZXN0YW1wX2dldAp0aW1lem9uZV9vcGVuCnRpbWV6b25lX25hbWVfZ2V0CnRpbWV6b25lX25hbWVfZnJvbV9hYmJyCnRpbWV6b25lX29mZnNldF9nZXQKdGltZXpvbmVfdHJhbnNpdGlvbnNfZ2V0CnRpbWV6b25lX2xvY2F0aW9uX2dldAp0aW1lem9uZV9pZGVudGlmaWVyc19saXN0CnRpbWV6b25lX2FiYnJldmlhdGlvbnNfbGlzdAp0aW1lem9uZV92ZXJzaW9uX2dldApkYXRlX2ludGVydmFsX2NyZWF0ZV9mcm9tX2RhdGVfc3RyaW5nCmRhdGVfaW50ZXJ2YWxfZm9ybWF0CmRhdGVfZGVmYXVsdF90aW1lem9uZV9zZXQKZGF0ZV9kZWZhdWx0X3RpbWV6b25lX2dldApkYXRlX3N1bnJpc2UKZGF0ZV9zdW5zZXQKZGF0ZV9zdW5faW5mbwpmaWx0ZXJfaW5wdXQKZmlsdGVyX3ZhcgpmaWx0ZXJfaW5wdXRfYXJyYXkKZmlsdGVyX3Zhcl9hcnJheQpmaWx0ZXJfbGlzdApmaWx0ZXJfaGFzX3ZhcgpmaWx0ZXJfaWQKaGFzaApoYXNoX2ZpbGUKaGFzaF9obWFjCmhhc2hfaG1hY19maWxlCmhhc2hfaW5pdApoYXNoX3VwZGF0ZQpoYXNoX3VwZGF0ZV9zdHJlYW0KaGFzaF91cGRhdGVfZmlsZQpoYXNoX2ZpbmFsCmhhc2hfY29weQpoYXNoX2FsZ29zCmhhc2hfaG1hY19hbGdvcwpoYXNoX3Bia2RmMgpoYXNoX2VxdWFscwpoYXNoX2hrZGYKbWhhc2hfa2V5Z2VuX3MyawptaGFzaF9nZXRfYmxvY2tfc2l6ZQptaGFzaF9nZXRfaGFzaF9uYW1lCm1oYXNoX2NvdW50Cm1oYXNoCmljb252Cmljb252X2dldF9lbmNvZGluZwppY29udl9zZXRfZW5jb2RpbmcKaWNvbnZfc3RybGVuCmljb252X3N1YnN0cgppY29udl9zdHJwb3MKaWNvbnZfc3RycnBvcwppY29udl9taW1lX2VuY29kZQppY29udl9taW1lX2RlY29kZQppY29udl9taW1lX2RlY29kZV9oZWFkZXJzCmpzb25fZW5jb2RlCmpzb25fZGVjb2RlCmpzb25fbGFzdF9lcnJvcgpqc29uX2xhc3RfZXJyb3JfbXNnCnByZWdfbWF0Y2gKcHJlZ19tYXRjaF9hbGwKcHJlZ19yZXBsYWNlCnByZWdfcmVwbGFjZV9jYWxsYmFjawpwcmVnX3JlcGxhY2VfY2FsbGJhY2tfYXJyYXkKcHJlZ19maWx0ZXIKcHJlZ19zcGxpdApwcmVnX3F1b3RlCnByZWdfZ3JlcApwcmVnX2xhc3RfZXJyb3IKc3BsX29iamVjdF9oYXNoCnNwbF9vYmplY3RfaWQKaXRlcmF0b3JfdG9fYXJyYXkKaXRlcmF0b3JfY291bnQKaXRlcmF0b3JfYXBwbHkKY29uc3RhbnQKYmluMmhleApoZXgyYmluCndvcmR3cmFwCmh0bWxzcGVjaWFsY2hhcnMKaHRtbGVudGl0aWVzCmh0bWxfZW50aXR5X2RlY29kZQpodG1sc3BlY2lhbGNoYXJzX2RlY29kZQpnZXRfaHRtbF90cmFuc2xhdGlvbl90YWJsZQpzaGExCnNoYTFfZmlsZQptZDUKY3JjMzIKaXB0Y3BhcnNlCmlwdGNlbWJlZApnZXRpbWFnZXNpemUKZ2V0aW1hZ2VzaXplZnJvbXN0cmluZwppbWFnZV90eXBlX3RvX21pbWVfdHlwZQppbWFnZV90eXBlX3RvX2V4dGVuc2lvbgpzdHJuYXRjbXAKc3RybmF0Y2FzZWNtcApzdWJzdHJfY291bnQKc3Ryc3BuCnN0cmNzcG4Kc3RydG9rCnN0cnRvdXBwZXIKc3RydG9sb3dlcgpzdHJwb3MKc3RyaXBvcwpzdHJycG9zCnN0cnJpcG9zCnN0cnJldgpoZWJyZXYKaGVicmV2YwpubDJicgpzdHJpcHNsYXNoZXMKc3RyaXBjc2xhc2hlcwpzdHJzdHIKc3RyaXN0cgpzdHJyY2hyCnN0cl9zaHVmZmxlCnN0cl93b3JkX2NvdW50CnN0cl9zcGxpdApzdHJwYnJrCnN1YnN0cl9jb21wYXJlCnV0ZjhfZW5jb2RlCnV0ZjhfZGVjb2RlCnN0cmNvbGwKc3Vic3RyCnN1YnN0cl9yZXBsYWNlCnF1b3RlbWV0YQp1Y2ZpcnN0CmxjZmlyc3QKdWN3b3JkcwpzdHJ0cgphZGRzbGFzaGVzCmFkZGNzbGFzaGVzCnJ0cmltCnN0cl9yZXBsYWNlCnN0cl9pcmVwbGFjZQpzdHJfcmVwZWF0CmNvdW50X2NoYXJzCmNodW5rX3NwbGl0CnRyaW0KbHRyaW0Kc3RyaXBfdGFncwpzaW1pbGFyX3RleHQKZXhwbG9kZQppbXBsb2RlCmpvaW4Kc2V0bG9jYWxlCmxvY2FsZWNvbnYKc291bmRleApsZXZlbnNodGVpbgpjaHIKb3JkCnBhcnNlX3N0cgpzdHJfZ2V0Y3N2CnN0cl9wYWQKY2hvcApzdHJjaHIKc3ByaW50ZgpwcmludGYKdnByaW50Zgp2c3ByaW50ZgpmcHJpbnRmCnZmcHJpbnRmCnNzY2FuZgpmc2NhbmYKcGFyc2VfdXJsCnVybGVuY29kZQp1cmxkZWNvZGUKcmF3dXJsZW5jb2RlCnJhd3VybGRlY29kZQpodHRwX2J1aWxkX3F1ZXJ5CnJlYWRsaW5rCmxpbmtpbmZvCnJhbmQKc3JhbmQKZ2V0cmFuZG1heAptdF9yYW5kCm10X3NyYW5kCm10X2dldHJhbmRtYXgKcmFuZG9tX2J5dGVzCnJhbmRvbV9pbnQKYmFzZTY0X2RlY29kZQpiYXNlNjRfZW5jb2RlCnBhc3N3b3JkX2hhc2gKcGFzc3dvcmRfZ2V0X2luZm8KcGFzc3dvcmRfbmVlZHNfcmVoYXNoCnBhc3N3b3JkX3ZlcmlmeQpwYXNzd29yZF9hbGdvcwpjb252ZXJ0X3V1ZW5jb2RlCmNvbnZlcnRfdXVkZWNvZGUKYWJzCmNlaWwKZmxvb3IKcm91bmQKc2luCmNvcwp0YW4KYXNpbgphY29zCmF0YW4KYXRhbmgKYXRhbjIKc2luaApjb3NoCnRhbmgKYXNpbmgKYWNvc2gKZXhwbTEKbG9nMXAKcGkKaXNfZmluaXRlCmlzX25hbgppc19pbmZpbml0ZQpwb3cKZXhwCmxvZwpsb2cxMApzcXJ0Cmh5cG90CmRlZzJyYWQKcmFkMmRlZwpiaW5kZWMKaGV4ZGVjCm9jdGRlYwpkZWNiaW4KZGVjb2N0CmRlY2hleApiYXNlX2NvbnZlcnQKbnVtYmVyX2Zvcm1hdApmbW9kCmludGRpdgppbmV0X250b3AKaW5ldF9wdG9uCmlwMmxvbmcKbG9uZzJpcApnZXRlbnYKcHV0ZW52CmdldG9wdAptaWNyb3RpbWUKZ2V0dGltZW9mZGF5CmdldHJ1c2FnZQpocnRpbWUKdW5pcWlkCnNlcmlhbGl6ZQp1bnNlcmlhbGl6ZQp2YXJfZHVtcAp2YXJfZXhwb3J0CmRlYnVnX3p2YWxfZHVtcApwcmludF9yCmludHZhbApmbG9hdHZhbApkb3VibGV2YWwKc3RydmFsCmJvb2x2YWwKZ2V0dHlwZQpzZXR0eXBlCmlzX251bGwKaXNfcmVzb3VyY2UKaXNfYm9vbAppc19pbnQKaXNfZmxvYXQKaXNfaW50ZWdlcgppc19sb25nCmlzX2RvdWJsZQppc19yZWFsCmlzX251bWVyaWMKaXNfc3RyaW5nCmlzX2FycmF5CmlzX29iamVjdAppc19zY2FsYXIKaXNfY2FsbGFibGUKaXNfaXRlcmFibGUKaXNfY291bnRhYmxlCmtzb3J0Cmtyc29ydApuYXRzb3J0Cm5hdGNhc2Vzb3J0CmFzb3J0CmFyc29ydApzb3J0CnJzb3J0CnVzb3J0CnVhc29ydAp1a3NvcnQKc2h1ZmZsZQphcnJheV93YWxrCmFycmF5X3dhbGtfcmVjdXJzaXZlCmNvdW50CmN1cnJlbnQKa2V5Cm1pbgptYXgKaW5fYXJyYXkKYXJyYXlfc2VhcmNoCmFycmF5X2ZpbGwKYXJyYXlfZmlsbF9rZXlzCnJhbmdlCmFycmF5X211bHRpc29ydAphcnJheV9wdXNoCmFycmF5X3BvcAphcnJheV9zaGlmdAphcnJheV91bnNoaWZ0CmFycmF5X3NwbGljZQphcnJheV9zbGljZQphcnJheV9tZXJnZQphcnJheV9tZXJnZV9yZWN1cnNpdmUKYXJyYXlfcmVwbGFjZQphcnJheV9yZXBsYWNlX3JlY3Vyc2l2ZQphcnJheV9rZXlzCmFycmF5X2tleV9maXJzdAphcnJheV9rZXlfbGFzdAphcnJheV92YWx1ZXMKYXJyYXlfY291bnRfdmFsdWVzCmFycmF5X2NvbHVtbgphcnJheV9yZXZlcnNlCmFycmF5X3JlZHVjZQphcnJheV9wYWQKYXJyYXlfZmxpcAphcnJheV9jaGFuZ2Vfa2V5X2Nhc2UKYXJyYXlfcmFuZAphcnJheV91bmlxdWUKYXJyYXlfaW50ZXJzZWN0CmFycmF5X2ludGVyc2VjdF9rZXkKYXJyYXlfaW50ZXJzZWN0X3VrZXkKYXJyYXlfdWludGVyc2VjdAphcnJheV9pbnRlcnNlY3RfYXNzb2MKYXJyYXlfdWludGVyc2VjdF9hc3NvYwphcnJheV9pbnRlcnNlY3RfdWFzc29jCmFycmF5X3VpbnRlcnNlY3RfdWFzc29jCmFycmF5X2RpZmYKYXJyYXlfZGlmZl9rZXkKYXJyYXlfZGlmZl91a2V5CmFycmF5X3VkaWZmCmFycmF5X2RpZmZfYXNzb2MKYXJyYXlfdWRpZmZfYXNzb2MKYXJyYXlfZGlmZl91YXNzb2MKYXJyYXlfdWRpZmZfdWFzc29jCmFycmF5X3N1bQphcnJheV9wcm9kdWN0CmFycmF5X2ZpbHRlcgphcnJheV9tYXAKYXJyYXlfY2h1bmsKYXJyYXlfY29tYmluZQphcnJheV9rZXlfZXhpc3RzCnBvcwpzaXplb2YKa2V5X2V4aXN0cwphc3NlcnQKYXNzZXJ0X29wdGlvbnMKdmVyc2lvbl9jb21wYXJlCmZ0b2sKc3RyX3JvdDEzCnRleHRkb21haW4KZ2V0dGV4dApkZ2V0dGV4dApkY2dldHRleHQKYmluZHRleHRkb21haW4KbmdldHRleHQKZG5nZXR0ZXh0CmRjbmdldHRleHQKYmluZF90ZXh0ZG9tYWluX2NvZGVzZXQKZGF0ZWZtdF9jcmVhdGUKZGF0ZWZtdF9nZXRfZGF0ZXR5cGUKZGF0ZWZtdF9nZXRfdGltZXR5cGUKZGF0ZWZtdF9nZXRfY2FsZW5kYXIKZGF0ZWZtdF9nZXRfY2FsZW5kYXJfb2JqZWN0CmRhdGVmbXRfc2V0X2NhbGVuZGFyCmRhdGVmbXRfZ2V0X2xvY2FsZQpkYXRlZm10X2dldF90aW1lem9uZV9pZApkYXRlZm10X2dldF90aW1lem9uZQpkYXRlZm10X3NldF90aW1lem9uZQpkYXRlZm10X2dldF9wYXR0ZXJuCmRhdGVmbXRfc2V0X3BhdHRlcm4KZGF0ZWZtdF9pc19sZW5pZW50CmRhdGVmbXRfc2V0X2xlbmllbnQKZGF0ZWZtdF9mb3JtYXQKZGF0ZWZtdF9mb3JtYXRfb2JqZWN0CmRhdGVmbXRfcGFyc2UKZGF0ZWZtdF9sb2NhbHRpbWUKZGF0ZWZtdF9nZXRfZXJyb3JfY29kZQpkYXRlZm10X2dldF9lcnJvcl9tZXNzYWdlCmdyYXBoZW1lX3N0cmxlbgpncmFwaGVtZV9zdHJwb3MKZ3JhcGhlbWVfc3RyaXBvcwpncmFwaGVtZV9zdHJycG9zCmdyYXBoZW1lX3N0cnJpcG9zCmdyYXBoZW1lX3N1YnN0cgpncmFwaGVtZV9zdHJzdHIKZ3JhcGhlbWVfc3RyaXN0cgpncmFwaGVtZV9leHRyYWN0Cmlkbl90b19hc2NpaQppZG5fdG9fdXRmOAptYl9jb252ZXJ0X2Nhc2UKbWJfc3RydG91cHBlcgptYl9zdHJ0b2xvd2VyCm1iX2xhbmd1YWdlCm1iX2ludGVybmFsX2VuY29kaW5nCm1iX2h0dHBfaW5wdXQKbWJfaHR0cF9vdXRwdXQKbWJfZGV0ZWN0X29yZGVyCm1iX3N1YnN0aXR1dGVfY2hhcmFjdGVyCm1iX3BhcnNlX3N0cgptYl9vdXRwdXRfaGFuZGxlcgptYl9wcmVmZXJyZWRfbWltZV9uYW1lCm1iX3N0cl9zcGxpdAptYl9zdHJsZW4KbWJfc3RycG9zCm1iX3N0cnJwb3MKbWJfc3RyaXBvcwptYl9zdHJyaXBvcwptYl9zdHJzdHIKbWJfc3RycmNocgptYl9zdHJpc3RyCm1iX3N0cnJpY2hyCm1iX3N1YnN0cl9jb3VudAptYl9zdWJzdHIKbWJfc3RyY3V0Cm1iX3N0cndpZHRoCm1iX3N0cmltd2lkdGgKbWJfY29udmVydF9lbmNvZGluZwptYl9kZXRlY3RfZW5jb2RpbmcKbWJfbGlzdF9lbmNvZGluZ3MKbWJfZW5jb2RpbmdfYWxpYXNlcwptYl9jb252ZXJ0X2thbmEKbWJfZW5jb2RlX21pbWVoZWFkZXIKbWJfZGVjb2RlX21pbWVoZWFkZXIKbWJfY29udmVydF92YXJpYWJsZXMKbWJfZW5jb2RlX251bWVyaWNlbnRpdHkKbWJfZGVjb2RlX251bWVyaWNlbnRpdHkKbWJfc2VuZF9tYWlsCm1iX2dldF9pbmZvCm1iX2NoZWNrX2VuY29kaW5nCm1iX29yZAptYl9jaHIKbWJfc2NydWIKbWJfcmVnZXhfZW5jb2RpbmcKbWJfcmVnZXhfc2V0X29wdGlvbnMKbWJfZXJlZwptYl9lcmVnaQptYl9lcmVnX3JlcGxhY2UKbWJfZXJlZ2lfcmVwbGFjZQptYl9lcmVnX3JlcGxhY2VfY2FsbGJhY2sKbWJfc3BsaXQKbWJfZXJlZ19tYXRjaAptYl9lcmVnX3NlYXJjaAptYl9lcmVnX3NlYXJjaF9wb3MKbWJfZXJlZ19zZWFyY2hfcmVncwptYl9lcmVnX3NlYXJjaF9pbml0Cm1iX2VyZWdfc2VhcmNoX2dldHJlZ3MKbWJfZXJlZ19zZWFyY2hfZ2V0cG9zCm1iX2VyZWdfc2VhcmNoX3NldHBvcwptYnJlZ2V4X2VuY29kaW5nCm1iZXJlZwptYmVyZWdpCm1iZXJlZ19yZXBsYWNlCm1iZXJlZ2lfcmVwbGFjZQptYnNwbGl0Cm1iZXJlZ19tYXRjaAptYmVyZWdfc2VhcmNoCm1iZXJlZ19zZWFyY2hfcG9zCm1iZXJlZ19zZWFyY2hfcmVncwptYmVyZWdfc2VhcmNoX2luaXQKbWJlcmVnX3NlYXJjaF9nZXRyZWdzCm1iZXJlZ19zZWFyY2hfZ2V0cG9zCm1iZXJlZ19zZWFyY2hfc2V0cG9zCmV4aWZfcmVhZF9kYXRhCnJlYWRfZXhpZl9kYXRhCmV4aWZfdGFnbmFtZQpleGlmX3RodW1ibmFpbApleGlmX2ltYWdldHlwZQ==]]></data>
	</file>
	<file>
	  <filename>/docs</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/docs/COPYING</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[ICAgICAgICAgICAgICAgICAgICBHTlUgR0VORVJBTCBQVUJMSUMgTElDRU5TRQ0KICAgICAgICAgICAgICAgICAgICAgICBWZXJzaW9uIDMsIDI5IEp1bmUgMjAwNw0KDQogQ29weXJpZ2h0IChDKSAyMDA3IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiA8aHR0cDovL2ZzZi5vcmcvPg0KIEV2ZXJ5b25lIGlzIHBlcm1pdHRlZCB0byBjb3B5IGFuZCBkaXN0cmlidXRlIHZlcmJhdGltIGNvcGllcw0KIG9mIHRoaXMgbGljZW5zZSBkb2N1bWVudCwgYnV0IGNoYW5naW5nIGl0IGlzIG5vdCBhbGxvd2VkLg0KDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgUHJlYW1ibGUNCg0KICBUaGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgaXMgYSBmcmVlLCBjb3B5bGVmdCBsaWNlbnNlIGZvcg0Kc29mdHdhcmUgYW5kIG90aGVyIGtpbmRzIG9mIHdvcmtzLg0KDQogIFRoZSBsaWNlbnNlcyBmb3IgbW9zdCBzb2Z0d2FyZSBhbmQgb3RoZXIgcHJhY3RpY2FsIHdvcmtzIGFyZSBkZXNpZ25lZA0KdG8gdGFrZSBhd2F5IHlvdXIgZnJlZWRvbSB0byBzaGFyZSBhbmQgY2hhbmdlIHRoZSB3b3Jrcy4gIEJ5IGNvbnRyYXN0LA0KdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGlzIGludGVuZGVkIHRvIGd1YXJhbnRlZSB5b3VyIGZyZWVkb20gdG8NCnNoYXJlIGFuZCBjaGFuZ2UgYWxsIHZlcnNpb25zIG9mIGEgcHJvZ3JhbS0tdG8gbWFrZSBzdXJlIGl0IHJlbWFpbnMgZnJlZQ0Kc29mdHdhcmUgZm9yIGFsbCBpdHMgdXNlcnMuICBXZSwgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgdXNlIHRoZQ0KR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vc3Qgb2Ygb3VyIHNvZnR3YXJlOyBpdCBhcHBsaWVzIGFsc28gdG8NCmFueSBvdGhlciB3b3JrIHJlbGVhc2VkIHRoaXMgd2F5IGJ5IGl0cyBhdXRob3JzLiAgWW91IGNhbiBhcHBseSBpdCB0bw0KeW91ciBwcm9ncmFtcywgdG9vLg0KDQogIFdoZW4gd2Ugc3BlYWsgb2YgZnJlZSBzb2Z0d2FyZSwgd2UgYXJlIHJlZmVycmluZyB0byBmcmVlZG9tLCBub3QNCnByaWNlLiAgT3VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2VzIGFyZSBkZXNpZ25lZCB0byBtYWtlIHN1cmUgdGhhdCB5b3UNCmhhdmUgdGhlIGZyZWVkb20gdG8gZGlzdHJpYnV0ZSBjb3BpZXMgb2YgZnJlZSBzb2Z0d2FyZSAoYW5kIGNoYXJnZSBmb3INCnRoZW0gaWYgeW91IHdpc2gpLCB0aGF0IHlvdSByZWNlaXZlIHNvdXJjZSBjb2RlIG9yIGNhbiBnZXQgaXQgaWYgeW91DQp3YW50IGl0LCB0aGF0IHlvdSBjYW4gY2hhbmdlIHRoZSBzb2Z0d2FyZSBvciB1c2UgcGllY2VzIG9mIGl0IGluIG5ldw0KZnJlZSBwcm9ncmFtcywgYW5kIHRoYXQgeW91IGtub3cgeW91IGNhbiBkbyB0aGVzZSB0aGluZ3MuDQoNCiAgVG8gcHJvdGVjdCB5b3VyIHJpZ2h0cywgd2UgbmVlZCB0byBwcmV2ZW50IG90aGVycyBmcm9tIGRlbnlpbmcgeW91DQp0aGVzZSByaWdodHMgb3IgYXNraW5nIHlvdSB0byBzdXJyZW5kZXIgdGhlIHJpZ2h0cy4gIFRoZXJlZm9yZSwgeW91IGhhdmUNCmNlcnRhaW4gcmVzcG9uc2liaWxpdGllcyBpZiB5b3UgZGlzdHJpYnV0ZSBjb3BpZXMgb2YgdGhlIHNvZnR3YXJlLCBvciBpZg0KeW91IG1vZGlmeSBpdDogcmVzcG9uc2liaWxpdGllcyB0byByZXNwZWN0IHRoZSBmcmVlZG9tIG9mIG90aGVycy4NCg0KICBGb3IgZXhhbXBsZSwgaWYgeW91IGRpc3RyaWJ1dGUgY29waWVzIG9mIHN1Y2ggYSBwcm9ncmFtLCB3aGV0aGVyDQpncmF0aXMgb3IgZm9yIGEgZmVlLCB5b3UgbXVzdCBwYXNzIG9uIHRvIHRoZSByZWNpcGllbnRzIHRoZSBzYW1lDQpmcmVlZG9tcyB0aGF0IHlvdSByZWNlaXZlZC4gIFlvdSBtdXN0IG1ha2Ugc3VyZSB0aGF0IHRoZXksIHRvbywgcmVjZWl2ZQ0Kb3IgY2FuIGdldCB0aGUgc291cmNlIGNvZGUuICBBbmQgeW91IG11c3Qgc2hvdyB0aGVtIHRoZXNlIHRlcm1zIHNvIHRoZXkNCmtub3cgdGhlaXIgcmlnaHRzLg0KDQogIERldmVsb3BlcnMgdGhhdCB1c2UgdGhlIEdOVSBHUEwgcHJvdGVjdCB5b3VyIHJpZ2h0cyB3aXRoIHR3byBzdGVwczoNCigxKSBhc3NlcnQgY29weXJpZ2h0IG9uIHRoZSBzb2Z0d2FyZSwgYW5kICgyKSBvZmZlciB5b3UgdGhpcyBMaWNlbnNlDQpnaXZpbmcgeW91IGxlZ2FsIHBlcm1pc3Npb24gdG8gY29weSwgZGlzdHJpYnV0ZSBhbmQvb3IgbW9kaWZ5IGl0Lg0KDQogIEZvciB0aGUgZGV2ZWxvcGVycycgYW5kIGF1dGhvcnMnIHByb3RlY3Rpb24sIHRoZSBHUEwgY2xlYXJseSBleHBsYWlucw0KdGhhdCB0aGVyZSBpcyBubyB3YXJyYW50eSBmb3IgdGhpcyBmcmVlIHNvZnR3YXJlLiAgRm9yIGJvdGggdXNlcnMnIGFuZA0KYXV0aG9ycycgc2FrZSwgdGhlIEdQTCByZXF1aXJlcyB0aGF0IG1vZGlmaWVkIHZlcnNpb25zIGJlIG1hcmtlZCBhcw0KY2hhbmdlZCwgc28gdGhhdCB0aGVpciBwcm9ibGVtcyB3aWxsIG5vdCBiZSBhdHRyaWJ1dGVkIGVycm9uZW91c2x5IHRvDQphdXRob3JzIG9mIHByZXZpb3VzIHZlcnNpb25zLg0KDQogIFNvbWUgZGV2aWNlcyBhcmUgZGVzaWduZWQgdG8gZGVueSB1c2VycyBhY2Nlc3MgdG8gaW5zdGFsbCBvciBydW4NCm1vZGlmaWVkIHZlcnNpb25zIG9mIHRoZSBzb2Z0d2FyZSBpbnNpZGUgdGhlbSwgYWx0aG91Z2ggdGhlIG1hbnVmYWN0dXJlcg0KY2FuIGRvIHNvLiAgVGhpcyBpcyBmdW5kYW1lbnRhbGx5IGluY29tcGF0aWJsZSB3aXRoIHRoZSBhaW0gb2YNCnByb3RlY3RpbmcgdXNlcnMnIGZyZWVkb20gdG8gY2hhbmdlIHRoZSBzb2Z0d2FyZS4gIFRoZSBzeXN0ZW1hdGljDQpwYXR0ZXJuIG9mIHN1Y2ggYWJ1c2Ugb2NjdXJzIGluIHRoZSBhcmVhIG9mIHByb2R1Y3RzIGZvciBpbmRpdmlkdWFscyB0bw0KdXNlLCB3aGljaCBpcyBwcmVjaXNlbHkgd2hlcmUgaXQgaXMgbW9zdCB1bmFjY2VwdGFibGUuICBUaGVyZWZvcmUsIHdlDQpoYXZlIGRlc2lnbmVkIHRoaXMgdmVyc2lvbiBvZiB0aGUgR1BMIHRvIHByb2hpYml0IHRoZSBwcmFjdGljZSBmb3IgdGhvc2UNCnByb2R1Y3RzLiAgSWYgc3VjaCBwcm9ibGVtcyBhcmlzZSBzdWJzdGFudGlhbGx5IGluIG90aGVyIGRvbWFpbnMsIHdlDQpzdGFuZCByZWFkeSB0byBleHRlbmQgdGhpcyBwcm92aXNpb24gdG8gdGhvc2UgZG9tYWlucyBpbiBmdXR1cmUgdmVyc2lvbnMNCm9mIHRoZSBHUEwsIGFzIG5lZWRlZCB0byBwcm90ZWN0IHRoZSBmcmVlZG9tIG9mIHVzZXJzLg0KDQogIEZpbmFsbHksIGV2ZXJ5IHByb2dyYW0gaXMgdGhyZWF0ZW5lZCBjb25zdGFudGx5IGJ5IHNvZnR3YXJlIHBhdGVudHMuDQpTdGF0ZXMgc2hvdWxkIG5vdCBhbGxvdyBwYXRlbnRzIHRvIHJlc3RyaWN0IGRldmVsb3BtZW50IGFuZCB1c2Ugb2YNCnNvZnR3YXJlIG9uIGdlbmVyYWwtcHVycG9zZSBjb21wdXRlcnMsIGJ1dCBpbiB0aG9zZSB0aGF0IGRvLCB3ZSB3aXNoIHRvDQphdm9pZCB0aGUgc3BlY2lhbCBkYW5nZXIgdGhhdCBwYXRlbnRzIGFwcGxpZWQgdG8gYSBmcmVlIHByb2dyYW0gY291bGQNCm1ha2UgaXQgZWZmZWN0aXZlbHkgcHJvcHJpZXRhcnkuICBUbyBwcmV2ZW50IHRoaXMsIHRoZSBHUEwgYXNzdXJlcyB0aGF0DQpwYXRlbnRzIGNhbm5vdCBiZSB1c2VkIHRvIHJlbmRlciB0aGUgcHJvZ3JhbSBub24tZnJlZS4NCg0KICBUaGUgcHJlY2lzZSB0ZXJtcyBhbmQgY29uZGl0aW9ucyBmb3IgY29weWluZywgZGlzdHJpYnV0aW9uIGFuZA0KbW9kaWZpY2F0aW9uIGZvbGxvdy4NCg0KICAgICAgICAgICAgICAgICAgICAgICBURVJNUyBBTkQgQ09ORElUSU9OUw0KDQogIDAuIERlZmluaXRpb25zLg0KDQogICJUaGlzIExpY2Vuc2UiIHJlZmVycyB0byB2ZXJzaW9uIDMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlLg0KDQogICJDb3B5cmlnaHQiIGFsc28gbWVhbnMgY29weXJpZ2h0LWxpa2UgbGF3cyB0aGF0IGFwcGx5IHRvIG90aGVyIGtpbmRzIG9mDQp3b3Jrcywgc3VjaCBhcyBzZW1pY29uZHVjdG9yIG1hc2tzLg0KDQogICJUaGUgUHJvZ3JhbSIgcmVmZXJzIHRvIGFueSBjb3B5cmlnaHRhYmxlIHdvcmsgbGljZW5zZWQgdW5kZXIgdGhpcw0KTGljZW5zZS4gIEVhY2ggbGljZW5zZWUgaXMgYWRkcmVzc2VkIGFzICJ5b3UiLiAgIkxpY2Vuc2VlcyIgYW5kDQoicmVjaXBpZW50cyIgbWF5IGJlIGluZGl2aWR1YWxzIG9yIG9yZ2FuaXphdGlvbnMuDQoNCiAgVG8gIm1vZGlmeSIgYSB3b3JrIG1lYW5zIHRvIGNvcHkgZnJvbSBvciBhZGFwdCBhbGwgb3IgcGFydCBvZiB0aGUgd29yaw0KaW4gYSBmYXNoaW9uIHJlcXVpcmluZyBjb3B5cmlnaHQgcGVybWlzc2lvbiwgb3RoZXIgdGhhbiB0aGUgbWFraW5nIG9mIGFuDQpleGFjdCBjb3B5LiAgVGhlIHJlc3VsdGluZyB3b3JrIGlzIGNhbGxlZCBhICJtb2RpZmllZCB2ZXJzaW9uIiBvZiB0aGUNCmVhcmxpZXIgd29yayBvciBhIHdvcmsgImJhc2VkIG9uIiB0aGUgZWFybGllciB3b3JrLg0KDQogIEEgImNvdmVyZWQgd29yayIgbWVhbnMgZWl0aGVyIHRoZSB1bm1vZGlmaWVkIFByb2dyYW0gb3IgYSB3b3JrIGJhc2VkDQpvbiB0aGUgUHJvZ3JhbS4NCg0KICBUbyAicHJvcGFnYXRlIiBhIHdvcmsgbWVhbnMgdG8gZG8gYW55dGhpbmcgd2l0aCBpdCB0aGF0LCB3aXRob3V0DQpwZXJtaXNzaW9uLCB3b3VsZCBtYWtlIHlvdSBkaXJlY3RseSBvciBzZWNvbmRhcmlseSBsaWFibGUgZm9yDQppbmZyaW5nZW1lbnQgdW5kZXIgYXBwbGljYWJsZSBjb3B5cmlnaHQgbGF3LCBleGNlcHQgZXhlY3V0aW5nIGl0IG9uIGENCmNvbXB1dGVyIG9yIG1vZGlmeWluZyBhIHByaXZhdGUgY29weS4gIFByb3BhZ2F0aW9uIGluY2x1ZGVzIGNvcHlpbmcsDQpkaXN0cmlidXRpb24gKHdpdGggb3Igd2l0aG91dCBtb2RpZmljYXRpb24pLCBtYWtpbmcgYXZhaWxhYmxlIHRvIHRoZQ0KcHVibGljLCBhbmQgaW4gc29tZSBjb3VudHJpZXMgb3RoZXIgYWN0aXZpdGllcyBhcyB3ZWxsLg0KDQogIFRvICJjb252ZXkiIGEgd29yayBtZWFucyBhbnkga2luZCBvZiBwcm9wYWdhdGlvbiB0aGF0IGVuYWJsZXMgb3RoZXINCnBhcnRpZXMgdG8gbWFrZSBvciByZWNlaXZlIGNvcGllcy4gIE1lcmUgaW50ZXJhY3Rpb24gd2l0aCBhIHVzZXIgdGhyb3VnaA0KYSBjb21wdXRlciBuZXR3b3JrLCB3aXRoIG5vIHRyYW5zZmVyIG9mIGEgY29weSwgaXMgbm90IGNvbnZleWluZy4NCg0KICBBbiBpbnRlcmFjdGl2ZSB1c2VyIGludGVyZmFjZSBkaXNwbGF5cyAiQXBwcm9wcmlhdGUgTGVnYWwgTm90aWNlcyINCnRvIHRoZSBleHRlbnQgdGhhdCBpdCBpbmNsdWRlcyBhIGNvbnZlbmllbnQgYW5kIHByb21pbmVudGx5IHZpc2libGUNCmZlYXR1cmUgdGhhdCAoMSkgZGlzcGxheXMgYW4gYXBwcm9wcmlhdGUgY29weXJpZ2h0IG5vdGljZSwgYW5kICgyKQ0KdGVsbHMgdGhlIHVzZXIgdGhhdCB0aGVyZSBpcyBubyB3YXJyYW50eSBmb3IgdGhlIHdvcmsgKGV4Y2VwdCB0byB0aGUNCmV4dGVudCB0aGF0IHdhcnJhbnRpZXMgYXJlIHByb3ZpZGVkKSwgdGhhdCBsaWNlbnNlZXMgbWF5IGNvbnZleSB0aGUNCndvcmsgdW5kZXIgdGhpcyBMaWNlbnNlLCBhbmQgaG93IHRvIHZpZXcgYSBjb3B5IG9mIHRoaXMgTGljZW5zZS4gIElmDQp0aGUgaW50ZXJmYWNlIHByZXNlbnRzIGEgbGlzdCBvZiB1c2VyIGNvbW1hbmRzIG9yIG9wdGlvbnMsIHN1Y2ggYXMgYQ0KbWVudSwgYSBwcm9taW5lbnQgaXRlbSBpbiB0aGUgbGlzdCBtZWV0cyB0aGlzIGNyaXRlcmlvbi4NCg0KICAxLiBTb3VyY2UgQ29kZS4NCg0KICBUaGUgInNvdXJjZSBjb2RlIiBmb3IgYSB3b3JrIG1lYW5zIHRoZSBwcmVmZXJyZWQgZm9ybSBvZiB0aGUgd29yaw0KZm9yIG1ha2luZyBtb2RpZmljYXRpb25zIHRvIGl0LiAgIk9iamVjdCBjb2RlIiBtZWFucyBhbnkgbm9uLXNvdXJjZQ0KZm9ybSBvZiBhIHdvcmsuDQoNCiAgQSAiU3RhbmRhcmQgSW50ZXJmYWNlIiBtZWFucyBhbiBpbnRlcmZhY2UgdGhhdCBlaXRoZXIgaXMgYW4gb2ZmaWNpYWwNCnN0YW5kYXJkIGRlZmluZWQgYnkgYSByZWNvZ25pemVkIHN0YW5kYXJkcyBib2R5LCBvciwgaW4gdGhlIGNhc2Ugb2YNCmludGVyZmFjZXMgc3BlY2lmaWVkIGZvciBhIHBhcnRpY3VsYXIgcHJvZ3JhbW1pbmcgbGFuZ3VhZ2UsIG9uZSB0aGF0DQppcyB3aWRlbHkgdXNlZCBhbW9uZyBkZXZlbG9wZXJzIHdvcmtpbmcgaW4gdGhhdCBsYW5ndWFnZS4NCg0KICBUaGUgIlN5c3RlbSBMaWJyYXJpZXMiIG9mIGFuIGV4ZWN1dGFibGUgd29yayBpbmNsdWRlIGFueXRoaW5nLCBvdGhlcg0KdGhhbiB0aGUgd29yayBhcyBhIHdob2xlLCB0aGF0IChhKSBpcyBpbmNsdWRlZCBpbiB0aGUgbm9ybWFsIGZvcm0gb2YNCnBhY2thZ2luZyBhIE1ham9yIENvbXBvbmVudCwgYnV0IHdoaWNoIGlzIG5vdCBwYXJ0IG9mIHRoYXQgTWFqb3INCkNvbXBvbmVudCwgYW5kIChiKSBzZXJ2ZXMgb25seSB0byBlbmFibGUgdXNlIG9mIHRoZSB3b3JrIHdpdGggdGhhdA0KTWFqb3IgQ29tcG9uZW50LCBvciB0byBpbXBsZW1lbnQgYSBTdGFuZGFyZCBJbnRlcmZhY2UgZm9yIHdoaWNoIGFuDQppbXBsZW1lbnRhdGlvbiBpcyBhdmFpbGFibGUgdG8gdGhlIHB1YmxpYyBpbiBzb3VyY2UgY29kZSBmb3JtLiAgQQ0KIk1ham9yIENvbXBvbmVudCIsIGluIHRoaXMgY29udGV4dCwgbWVhbnMgYSBtYWpvciBlc3NlbnRpYWwgY29tcG9uZW50DQooa2VybmVsLCB3aW5kb3cgc3lzdGVtLCBhbmQgc28gb24pIG9mIHRoZSBzcGVjaWZpYyBvcGVyYXRpbmcgc3lzdGVtDQooaWYgYW55KSBvbiB3aGljaCB0aGUgZXhlY3V0YWJsZSB3b3JrIHJ1bnMsIG9yIGEgY29tcGlsZXIgdXNlZCB0bw0KcHJvZHVjZSB0aGUgd29yaywgb3IgYW4gb2JqZWN0IGNvZGUgaW50ZXJwcmV0ZXIgdXNlZCB0byBydW4gaXQuDQoNCiAgVGhlICJDb3JyZXNwb25kaW5nIFNvdXJjZSIgZm9yIGEgd29yayBpbiBvYmplY3QgY29kZSBmb3JtIG1lYW5zIGFsbA0KdGhlIHNvdXJjZSBjb2RlIG5lZWRlZCB0byBnZW5lcmF0ZSwgaW5zdGFsbCwgYW5kIChmb3IgYW4gZXhlY3V0YWJsZQ0Kd29yaykgcnVuIHRoZSBvYmplY3QgY29kZSBhbmQgdG8gbW9kaWZ5IHRoZSB3b3JrLCBpbmNsdWRpbmcgc2NyaXB0cyB0bw0KY29udHJvbCB0aG9zZSBhY3Rpdml0aWVzLiAgSG93ZXZlciwgaXQgZG9lcyBub3QgaW5jbHVkZSB0aGUgd29yaydzDQpTeXN0ZW0gTGlicmFyaWVzLCBvciBnZW5lcmFsLXB1cnBvc2UgdG9vbHMgb3IgZ2VuZXJhbGx5IGF2YWlsYWJsZSBmcmVlDQpwcm9ncmFtcyB3aGljaCBhcmUgdXNlZCB1bm1vZGlmaWVkIGluIHBlcmZvcm1pbmcgdGhvc2UgYWN0aXZpdGllcyBidXQNCndoaWNoIGFyZSBub3QgcGFydCBvZiB0aGUgd29yay4gIEZvciBleGFtcGxlLCBDb3JyZXNwb25kaW5nIFNvdXJjZQ0KaW5jbHVkZXMgaW50ZXJmYWNlIGRlZmluaXRpb24gZmlsZXMgYXNzb2NpYXRlZCB3aXRoIHNvdXJjZSBmaWxlcyBmb3INCnRoZSB3b3JrLCBhbmQgdGhlIHNvdXJjZSBjb2RlIGZvciBzaGFyZWQgbGlicmFyaWVzIGFuZCBkeW5hbWljYWxseQ0KbGlua2VkIHN1YnByb2dyYW1zIHRoYXQgdGhlIHdvcmsgaXMgc3BlY2lmaWNhbGx5IGRlc2lnbmVkIHRvIHJlcXVpcmUsDQpzdWNoIGFzIGJ5IGludGltYXRlIGRhdGEgY29tbXVuaWNhdGlvbiBvciBjb250cm9sIGZsb3cgYmV0d2VlbiB0aG9zZQ0Kc3VicHJvZ3JhbXMgYW5kIG90aGVyIHBhcnRzIG9mIHRoZSB3b3JrLg0KDQogIFRoZSBDb3JyZXNwb25kaW5nIFNvdXJjZSBuZWVkIG5vdCBpbmNsdWRlIGFueXRoaW5nIHRoYXQgdXNlcnMNCmNhbiByZWdlbmVyYXRlIGF1dG9tYXRpY2FsbHkgZnJvbSBvdGhlciBwYXJ0cyBvZiB0aGUgQ29ycmVzcG9uZGluZw0KU291cmNlLg0KDQogIFRoZSBDb3JyZXNwb25kaW5nIFNvdXJjZSBmb3IgYSB3b3JrIGluIHNvdXJjZSBjb2RlIGZvcm0gaXMgdGhhdA0Kc2FtZSB3b3JrLg0KDQogIDIuIEJhc2ljIFBlcm1pc3Npb25zLg0KDQogIEFsbCByaWdodHMgZ3JhbnRlZCB1bmRlciB0aGlzIExpY2Vuc2UgYXJlIGdyYW50ZWQgZm9yIHRoZSB0ZXJtIG9mDQpjb3B5cmlnaHQgb24gdGhlIFByb2dyYW0sIGFuZCBhcmUgaXJyZXZvY2FibGUgcHJvdmlkZWQgdGhlIHN0YXRlZA0KY29uZGl0aW9ucyBhcmUgbWV0LiAgVGhpcyBMaWNlbnNlIGV4cGxpY2l0bHkgYWZmaXJtcyB5b3VyIHVubGltaXRlZA0KcGVybWlzc2lvbiB0byBydW4gdGhlIHVubW9kaWZpZWQgUHJvZ3JhbS4gIFRoZSBvdXRwdXQgZnJvbSBydW5uaW5nIGENCmNvdmVyZWQgd29yayBpcyBjb3ZlcmVkIGJ5IHRoaXMgTGljZW5zZSBvbmx5IGlmIHRoZSBvdXRwdXQsIGdpdmVuIGl0cw0KY29udGVudCwgY29uc3RpdHV0ZXMgYSBjb3ZlcmVkIHdvcmsuICBUaGlzIExpY2Vuc2UgYWNrbm93bGVkZ2VzIHlvdXINCnJpZ2h0cyBvZiBmYWlyIHVzZSBvciBvdGhlciBlcXVpdmFsZW50LCBhcyBwcm92aWRlZCBieSBjb3B5cmlnaHQgbGF3Lg0KDQogIFlvdSBtYXkgbWFrZSwgcnVuIGFuZCBwcm9wYWdhdGUgY292ZXJlZCB3b3JrcyB0aGF0IHlvdSBkbyBub3QNCmNvbnZleSwgd2l0aG91dCBjb25kaXRpb25zIHNvIGxvbmcgYXMgeW91ciBsaWNlbnNlIG90aGVyd2lzZSByZW1haW5zDQppbiBmb3JjZS4gIFlvdSBtYXkgY29udmV5IGNvdmVyZWQgd29ya3MgdG8gb3RoZXJzIGZvciB0aGUgc29sZSBwdXJwb3NlDQpvZiBoYXZpbmcgdGhlbSBtYWtlIG1vZGlmaWNhdGlvbnMgZXhjbHVzaXZlbHkgZm9yIHlvdSwgb3IgcHJvdmlkZSB5b3UNCndpdGggZmFjaWxpdGllcyBmb3IgcnVubmluZyB0aG9zZSB3b3JrcywgcHJvdmlkZWQgdGhhdCB5b3UgY29tcGx5IHdpdGgNCnRoZSB0ZXJtcyBvZiB0aGlzIExpY2Vuc2UgaW4gY29udmV5aW5nIGFsbCBtYXRlcmlhbCBmb3Igd2hpY2ggeW91IGRvDQpub3QgY29udHJvbCBjb3B5cmlnaHQuICBUaG9zZSB0aHVzIG1ha2luZyBvciBydW5uaW5nIHRoZSBjb3ZlcmVkIHdvcmtzDQpmb3IgeW91IG11c3QgZG8gc28gZXhjbHVzaXZlbHkgb24geW91ciBiZWhhbGYsIHVuZGVyIHlvdXIgZGlyZWN0aW9uDQphbmQgY29udHJvbCwgb24gdGVybXMgdGhhdCBwcm9oaWJpdCB0aGVtIGZyb20gbWFraW5nIGFueSBjb3BpZXMgb2YNCnlvdXIgY29weXJpZ2h0ZWQgbWF0ZXJpYWwgb3V0c2lkZSB0aGVpciByZWxhdGlvbnNoaXAgd2l0aCB5b3UuDQoNCiAgQ29udmV5aW5nIHVuZGVyIGFueSBvdGhlciBjaXJjdW1zdGFuY2VzIGlzIHBlcm1pdHRlZCBzb2xlbHkgdW5kZXINCnRoZSBjb25kaXRpb25zIHN0YXRlZCBiZWxvdy4gIFN1YmxpY2Vuc2luZyBpcyBub3QgYWxsb3dlZDsgc2VjdGlvbiAxMA0KbWFrZXMgaXQgdW5uZWNlc3NhcnkuDQoNCiAgMy4gUHJvdGVjdGluZyBVc2VycycgTGVnYWwgUmlnaHRzIEZyb20gQW50aS1DaXJjdW12ZW50aW9uIExhdy4NCg0KICBObyBjb3ZlcmVkIHdvcmsgc2hhbGwgYmUgZGVlbWVkIHBhcnQgb2YgYW4gZWZmZWN0aXZlIHRlY2hub2xvZ2ljYWwNCm1lYXN1cmUgdW5kZXIgYW55IGFwcGxpY2FibGUgbGF3IGZ1bGZpbGxpbmcgb2JsaWdhdGlvbnMgdW5kZXIgYXJ0aWNsZQ0KMTEgb2YgdGhlIFdJUE8gY29weXJpZ2h0IHRyZWF0eSBhZG9wdGVkIG9uIDIwIERlY2VtYmVyIDE5OTYsIG9yDQpzaW1pbGFyIGxhd3MgcHJvaGliaXRpbmcgb3IgcmVzdHJpY3RpbmcgY2lyY3VtdmVudGlvbiBvZiBzdWNoDQptZWFzdXJlcy4NCg0KICBXaGVuIHlvdSBjb252ZXkgYSBjb3ZlcmVkIHdvcmssIHlvdSB3YWl2ZSBhbnkgbGVnYWwgcG93ZXIgdG8gZm9yYmlkDQpjaXJjdW12ZW50aW9uIG9mIHRlY2hub2xvZ2ljYWwgbWVhc3VyZXMgdG8gdGhlIGV4dGVudCBzdWNoIGNpcmN1bXZlbnRpb24NCmlzIGVmZmVjdGVkIGJ5IGV4ZXJjaXNpbmcgcmlnaHRzIHVuZGVyIHRoaXMgTGljZW5zZSB3aXRoIHJlc3BlY3QgdG8NCnRoZSBjb3ZlcmVkIHdvcmssIGFuZCB5b3UgZGlzY2xhaW0gYW55IGludGVudGlvbiB0byBsaW1pdCBvcGVyYXRpb24gb3INCm1vZGlmaWNhdGlvbiBvZiB0aGUgd29yayBhcyBhIG1lYW5zIG9mIGVuZm9yY2luZywgYWdhaW5zdCB0aGUgd29yaydzDQp1c2VycywgeW91ciBvciB0aGlyZCBwYXJ0aWVzJyBsZWdhbCByaWdodHMgdG8gZm9yYmlkIGNpcmN1bXZlbnRpb24gb2YNCnRlY2hub2xvZ2ljYWwgbWVhc3VyZXMuDQoNCiAgNC4gQ29udmV5aW5nIFZlcmJhdGltIENvcGllcy4NCg0KICBZb3UgbWF5IGNvbnZleSB2ZXJiYXRpbSBjb3BpZXMgb2YgdGhlIFByb2dyYW0ncyBzb3VyY2UgY29kZSBhcyB5b3UNCnJlY2VpdmUgaXQsIGluIGFueSBtZWRpdW0sIHByb3ZpZGVkIHRoYXQgeW91IGNvbnNwaWN1b3VzbHkgYW5kDQphcHByb3ByaWF0ZWx5IHB1Ymxpc2ggb24gZWFjaCBjb3B5IGFuIGFwcHJvcHJpYXRlIGNvcHlyaWdodCBub3RpY2U7DQprZWVwIGludGFjdCBhbGwgbm90aWNlcyBzdGF0aW5nIHRoYXQgdGhpcyBMaWNlbnNlIGFuZCBhbnkNCm5vbi1wZXJtaXNzaXZlIHRlcm1zIGFkZGVkIGluIGFjY29yZCB3aXRoIHNlY3Rpb24gNyBhcHBseSB0byB0aGUgY29kZTsNCmtlZXAgaW50YWN0IGFsbCBub3RpY2VzIG9mIHRoZSBhYnNlbmNlIG9mIGFueSB3YXJyYW50eTsgYW5kIGdpdmUgYWxsDQpyZWNpcGllbnRzIGEgY29weSBvZiB0aGlzIExpY2Vuc2UgYWxvbmcgd2l0aCB0aGUgUHJvZ3JhbS4NCg0KICBZb3UgbWF5IGNoYXJnZSBhbnkgcHJpY2Ugb3Igbm8gcHJpY2UgZm9yIGVhY2ggY29weSB0aGF0IHlvdSBjb252ZXksDQphbmQgeW91IG1heSBvZmZlciBzdXBwb3J0IG9yIHdhcnJhbnR5IHByb3RlY3Rpb24gZm9yIGEgZmVlLg0KDQogIDUuIENvbnZleWluZyBNb2RpZmllZCBTb3VyY2UgVmVyc2lvbnMuDQoNCiAgWW91IG1heSBjb252ZXkgYSB3b3JrIGJhc2VkIG9uIHRoZSBQcm9ncmFtLCBvciB0aGUgbW9kaWZpY2F0aW9ucyB0bw0KcHJvZHVjZSBpdCBmcm9tIHRoZSBQcm9ncmFtLCBpbiB0aGUgZm9ybSBvZiBzb3VyY2UgY29kZSB1bmRlciB0aGUNCnRlcm1zIG9mIHNlY3Rpb24gNCwgcHJvdmlkZWQgdGhhdCB5b3UgYWxzbyBtZWV0IGFsbCBvZiB0aGVzZSBjb25kaXRpb25zOg0KDQogICAgYSkgVGhlIHdvcmsgbXVzdCBjYXJyeSBwcm9taW5lbnQgbm90aWNlcyBzdGF0aW5nIHRoYXQgeW91IG1vZGlmaWVkDQogICAgaXQsIGFuZCBnaXZpbmcgYSByZWxldmFudCBkYXRlLg0KDQogICAgYikgVGhlIHdvcmsgbXVzdCBjYXJyeSBwcm9taW5lbnQgbm90aWNlcyBzdGF0aW5nIHRoYXQgaXQgaXMNCiAgICByZWxlYXNlZCB1bmRlciB0aGlzIExpY2Vuc2UgYW5kIGFueSBjb25kaXRpb25zIGFkZGVkIHVuZGVyIHNlY3Rpb24NCiAgICA3LiAgVGhpcyByZXF1aXJlbWVudCBtb2RpZmllcyB0aGUgcmVxdWlyZW1lbnQgaW4gc2VjdGlvbiA0IHRvDQogICAgImtlZXAgaW50YWN0IGFsbCBub3RpY2VzIi4NCg0KICAgIGMpIFlvdSBtdXN0IGxpY2Vuc2UgdGhlIGVudGlyZSB3b3JrLCBhcyBhIHdob2xlLCB1bmRlciB0aGlzDQogICAgTGljZW5zZSB0byBhbnlvbmUgd2hvIGNvbWVzIGludG8gcG9zc2Vzc2lvbiBvZiBhIGNvcHkuICBUaGlzDQogICAgTGljZW5zZSB3aWxsIHRoZXJlZm9yZSBhcHBseSwgYWxvbmcgd2l0aCBhbnkgYXBwbGljYWJsZSBzZWN0aW9uIDcNCiAgICBhZGRpdGlvbmFsIHRlcm1zLCB0byB0aGUgd2hvbGUgb2YgdGhlIHdvcmssIGFuZCBhbGwgaXRzIHBhcnRzLA0KICAgIHJlZ2FyZGxlc3Mgb2YgaG93IHRoZXkgYXJlIHBhY2thZ2VkLiAgVGhpcyBMaWNlbnNlIGdpdmVzIG5vDQogICAgcGVybWlzc2lvbiB0byBsaWNlbnNlIHRoZSB3b3JrIGluIGFueSBvdGhlciB3YXksIGJ1dCBpdCBkb2VzIG5vdA0KICAgIGludmFsaWRhdGUgc3VjaCBwZXJtaXNzaW9uIGlmIHlvdSBoYXZlIHNlcGFyYXRlbHkgcmVjZWl2ZWQgaXQuDQoNCiAgICBkKSBJZiB0aGUgd29yayBoYXMgaW50ZXJhY3RpdmUgdXNlciBpbnRlcmZhY2VzLCBlYWNoIG11c3QgZGlzcGxheQ0KICAgIEFwcHJvcHJpYXRlIExlZ2FsIE5vdGljZXM7IGhvd2V2ZXIsIGlmIHRoZSBQcm9ncmFtIGhhcyBpbnRlcmFjdGl2ZQ0KICAgIGludGVyZmFjZXMgdGhhdCBkbyBub3QgZGlzcGxheSBBcHByb3ByaWF0ZSBMZWdhbCBOb3RpY2VzLCB5b3VyDQogICAgd29yayBuZWVkIG5vdCBtYWtlIHRoZW0gZG8gc28uDQoNCiAgQSBjb21waWxhdGlvbiBvZiBhIGNvdmVyZWQgd29yayB3aXRoIG90aGVyIHNlcGFyYXRlIGFuZCBpbmRlcGVuZGVudA0Kd29ya3MsIHdoaWNoIGFyZSBub3QgYnkgdGhlaXIgbmF0dXJlIGV4dGVuc2lvbnMgb2YgdGhlIGNvdmVyZWQgd29yaywNCmFuZCB3aGljaCBhcmUgbm90IGNvbWJpbmVkIHdpdGggaXQgc3VjaCBhcyB0byBmb3JtIGEgbGFyZ2VyIHByb2dyYW0sDQppbiBvciBvbiBhIHZvbHVtZSBvZiBhIHN0b3JhZ2Ugb3IgZGlzdHJpYnV0aW9uIG1lZGl1bSwgaXMgY2FsbGVkIGFuDQoiYWdncmVnYXRlIiBpZiB0aGUgY29tcGlsYXRpb24gYW5kIGl0cyByZXN1bHRpbmcgY29weXJpZ2h0IGFyZSBub3QNCnVzZWQgdG8gbGltaXQgdGhlIGFjY2VzcyBvciBsZWdhbCByaWdodHMgb2YgdGhlIGNvbXBpbGF0aW9uJ3MgdXNlcnMNCmJleW9uZCB3aGF0IHRoZSBpbmRpdmlkdWFsIHdvcmtzIHBlcm1pdC4gIEluY2x1c2lvbiBvZiBhIGNvdmVyZWQgd29yaw0KaW4gYW4gYWdncmVnYXRlIGRvZXMgbm90IGNhdXNlIHRoaXMgTGljZW5zZSB0byBhcHBseSB0byB0aGUgb3RoZXINCnBhcnRzIG9mIHRoZSBhZ2dyZWdhdGUuDQoNCiAgNi4gQ29udmV5aW5nIE5vbi1Tb3VyY2UgRm9ybXMuDQoNCiAgWW91IG1heSBjb252ZXkgYSBjb3ZlcmVkIHdvcmsgaW4gb2JqZWN0IGNvZGUgZm9ybSB1bmRlciB0aGUgdGVybXMNCm9mIHNlY3Rpb25zIDQgYW5kIDUsIHByb3ZpZGVkIHRoYXQgeW91IGFsc28gY29udmV5IHRoZQ0KbWFjaGluZS1yZWFkYWJsZSBDb3JyZXNwb25kaW5nIFNvdXJjZSB1bmRlciB0aGUgdGVybXMgb2YgdGhpcyBMaWNlbnNlLA0KaW4gb25lIG9mIHRoZXNlIHdheXM6DQoNCiAgICBhKSBDb252ZXkgdGhlIG9iamVjdCBjb2RlIGluLCBvciBlbWJvZGllZCBpbiwgYSBwaHlzaWNhbCBwcm9kdWN0DQogICAgKGluY2x1ZGluZyBhIHBoeXNpY2FsIGRpc3RyaWJ1dGlvbiBtZWRpdW0pLCBhY2NvbXBhbmllZCBieSB0aGUNCiAgICBDb3JyZXNwb25kaW5nIFNvdXJjZSBmaXhlZCBvbiBhIGR1cmFibGUgcGh5c2ljYWwgbWVkaXVtDQogICAgY3VzdG9tYXJpbHkgdXNlZCBmb3Igc29mdHdhcmUgaW50ZXJjaGFuZ2UuDQoNCiAgICBiKSBDb252ZXkgdGhlIG9iamVjdCBjb2RlIGluLCBvciBlbWJvZGllZCBpbiwgYSBwaHlzaWNhbCBwcm9kdWN0DQogICAgKGluY2x1ZGluZyBhIHBoeXNpY2FsIGRpc3RyaWJ1dGlvbiBtZWRpdW0pLCBhY2NvbXBhbmllZCBieSBhDQogICAgd3JpdHRlbiBvZmZlciwgdmFsaWQgZm9yIGF0IGxlYXN0IHRocmVlIHllYXJzIGFuZCB2YWxpZCBmb3IgYXMNCiAgICBsb25nIGFzIHlvdSBvZmZlciBzcGFyZSBwYXJ0cyBvciBjdXN0b21lciBzdXBwb3J0IGZvciB0aGF0IHByb2R1Y3QNCiAgICBtb2RlbCwgdG8gZ2l2ZSBhbnlvbmUgd2hvIHBvc3Nlc3NlcyB0aGUgb2JqZWN0IGNvZGUgZWl0aGVyICgxKSBhDQogICAgY29weSBvZiB0aGUgQ29ycmVzcG9uZGluZyBTb3VyY2UgZm9yIGFsbCB0aGUgc29mdHdhcmUgaW4gdGhlDQogICAgcHJvZHVjdCB0aGF0IGlzIGNvdmVyZWQgYnkgdGhpcyBMaWNlbnNlLCBvbiBhIGR1cmFibGUgcGh5c2ljYWwNCiAgICBtZWRpdW0gY3VzdG9tYXJpbHkgdXNlZCBmb3Igc29mdHdhcmUgaW50ZXJjaGFuZ2UsIGZvciBhIHByaWNlIG5vDQogICAgbW9yZSB0aGFuIHlvdXIgcmVhc29uYWJsZSBjb3N0IG9mIHBoeXNpY2FsbHkgcGVyZm9ybWluZyB0aGlzDQogICAgY29udmV5aW5nIG9mIHNvdXJjZSwgb3IgKDIpIGFjY2VzcyB0byBjb3B5IHRoZQ0KICAgIENvcnJlc3BvbmRpbmcgU291cmNlIGZyb20gYSBuZXR3b3JrIHNlcnZlciBhdCBubyBjaGFyZ2UuDQoNCiAgICBjKSBDb252ZXkgaW5kaXZpZHVhbCBjb3BpZXMgb2YgdGhlIG9iamVjdCBjb2RlIHdpdGggYSBjb3B5IG9mIHRoZQ0KICAgIHdyaXR0ZW4gb2ZmZXIgdG8gcHJvdmlkZSB0aGUgQ29ycmVzcG9uZGluZyBTb3VyY2UuICBUaGlzDQogICAgYWx0ZXJuYXRpdmUgaXMgYWxsb3dlZCBvbmx5IG9jY2FzaW9uYWxseSBhbmQgbm9uY29tbWVyY2lhbGx5LCBhbmQNCiAgICBvbmx5IGlmIHlvdSByZWNlaXZlZCB0aGUgb2JqZWN0IGNvZGUgd2l0aCBzdWNoIGFuIG9mZmVyLCBpbiBhY2NvcmQNCiAgICB3aXRoIHN1YnNlY3Rpb24gNmIuDQoNCiAgICBkKSBDb252ZXkgdGhlIG9iamVjdCBjb2RlIGJ5IG9mZmVyaW5nIGFjY2VzcyBmcm9tIGEgZGVzaWduYXRlZA0KICAgIHBsYWNlIChncmF0aXMgb3IgZm9yIGEgY2hhcmdlKSwgYW5kIG9mZmVyIGVxdWl2YWxlbnQgYWNjZXNzIHRvIHRoZQ0KICAgIENvcnJlc3BvbmRpbmcgU291cmNlIGluIHRoZSBzYW1lIHdheSB0aHJvdWdoIHRoZSBzYW1lIHBsYWNlIGF0IG5vDQogICAgZnVydGhlciBjaGFyZ2UuICBZb3UgbmVlZCBub3QgcmVxdWlyZSByZWNpcGllbnRzIHRvIGNvcHkgdGhlDQogICAgQ29ycmVzcG9uZGluZyBTb3VyY2UgYWxvbmcgd2l0aCB0aGUgb2JqZWN0IGNvZGUuICBJZiB0aGUgcGxhY2UgdG8NCiAgICBjb3B5IHRoZSBvYmplY3QgY29kZSBpcyBhIG5ldHdvcmsgc2VydmVyLCB0aGUgQ29ycmVzcG9uZGluZyBTb3VyY2UNCiAgICBtYXkgYmUgb24gYSBkaWZmZXJlbnQgc2VydmVyIChvcGVyYXRlZCBieSB5b3Ugb3IgYSB0aGlyZCBwYXJ0eSkNCiAgICB0aGF0IHN1cHBvcnRzIGVxdWl2YWxlbnQgY29weWluZyBmYWNpbGl0aWVzLCBwcm92aWRlZCB5b3UgbWFpbnRhaW4NCiAgICBjbGVhciBkaXJlY3Rpb25zIG5leHQgdG8gdGhlIG9iamVjdCBjb2RlIHNheWluZyB3aGVyZSB0byBmaW5kIHRoZQ0KICAgIENvcnJlc3BvbmRpbmcgU291cmNlLiAgUmVnYXJkbGVzcyBvZiB3aGF0IHNlcnZlciBob3N0cyB0aGUNCiAgICBDb3JyZXNwb25kaW5nIFNvdXJjZSwgeW91IHJlbWFpbiBvYmxpZ2F0ZWQgdG8gZW5zdXJlIHRoYXQgaXQgaXMNCiAgICBhdmFpbGFibGUgZm9yIGFzIGxvbmcgYXMgbmVlZGVkIHRvIHNhdGlzZnkgdGhlc2UgcmVxdWlyZW1lbnRzLg0KDQogICAgZSkgQ29udmV5IHRoZSBvYmplY3QgY29kZSB1c2luZyBwZWVyLXRvLXBlZXIgdHJhbnNtaXNzaW9uLCBwcm92aWRlZA0KICAgIHlvdSBpbmZvcm0gb3RoZXIgcGVlcnMgd2hlcmUgdGhlIG9iamVjdCBjb2RlIGFuZCBDb3JyZXNwb25kaW5nDQogICAgU291cmNlIG9mIHRoZSB3b3JrIGFyZSBiZWluZyBvZmZlcmVkIHRvIHRoZSBnZW5lcmFsIHB1YmxpYyBhdCBubw0KICAgIGNoYXJnZSB1bmRlciBzdWJzZWN0aW9uIDZkLg0KDQogIEEgc2VwYXJhYmxlIHBvcnRpb24gb2YgdGhlIG9iamVjdCBjb2RlLCB3aG9zZSBzb3VyY2UgY29kZSBpcyBleGNsdWRlZA0KZnJvbSB0aGUgQ29ycmVzcG9uZGluZyBTb3VyY2UgYXMgYSBTeXN0ZW0gTGlicmFyeSwgbmVlZCBub3QgYmUNCmluY2x1ZGVkIGluIGNvbnZleWluZyB0aGUgb2JqZWN0IGNvZGUgd29yay4NCg0KICBBICJVc2VyIFByb2R1Y3QiIGlzIGVpdGhlciAoMSkgYSAiY29uc3VtZXIgcHJvZHVjdCIsIHdoaWNoIG1lYW5zIGFueQ0KdGFuZ2libGUgcGVyc29uYWwgcHJvcGVydHkgd2hpY2ggaXMgbm9ybWFsbHkgdXNlZCBmb3IgcGVyc29uYWwsIGZhbWlseSwNCm9yIGhvdXNlaG9sZCBwdXJwb3Nlcywgb3IgKDIpIGFueXRoaW5nIGRlc2lnbmVkIG9yIHNvbGQgZm9yIGluY29ycG9yYXRpb24NCmludG8gYSBkd2VsbGluZy4gIEluIGRldGVybWluaW5nIHdoZXRoZXIgYSBwcm9kdWN0IGlzIGEgY29uc3VtZXIgcHJvZHVjdCwNCmRvdWJ0ZnVsIGNhc2VzIHNoYWxsIGJlIHJlc29sdmVkIGluIGZhdm9yIG9mIGNvdmVyYWdlLiAgRm9yIGEgcGFydGljdWxhcg0KcHJvZHVjdCByZWNlaXZlZCBieSBhIHBhcnRpY3VsYXIgdXNlciwgIm5vcm1hbGx5IHVzZWQiIHJlZmVycyB0byBhDQp0eXBpY2FsIG9yIGNvbW1vbiB1c2Ugb2YgdGhhdCBjbGFzcyBvZiBwcm9kdWN0LCByZWdhcmRsZXNzIG9mIHRoZSBzdGF0dXMNCm9mIHRoZSBwYXJ0aWN1bGFyIHVzZXIgb3Igb2YgdGhlIHdheSBpbiB3aGljaCB0aGUgcGFydGljdWxhciB1c2VyDQphY3R1YWxseSB1c2VzLCBvciBleHBlY3RzIG9yIGlzIGV4cGVjdGVkIHRvIHVzZSwgdGhlIHByb2R1Y3QuICBBIHByb2R1Y3QNCmlzIGEgY29uc3VtZXIgcHJvZHVjdCByZWdhcmRsZXNzIG9mIHdoZXRoZXIgdGhlIHByb2R1Y3QgaGFzIHN1YnN0YW50aWFsDQpjb21tZXJjaWFsLCBpbmR1c3RyaWFsIG9yIG5vbi1jb25zdW1lciB1c2VzLCB1bmxlc3Mgc3VjaCB1c2VzIHJlcHJlc2VudA0KdGhlIG9ubHkgc2lnbmlmaWNhbnQgbW9kZSBvZiB1c2Ugb2YgdGhlIHByb2R1Y3QuDQoNCiAgIkluc3RhbGxhdGlvbiBJbmZvcm1hdGlvbiIgZm9yIGEgVXNlciBQcm9kdWN0IG1lYW5zIGFueSBtZXRob2RzLA0KcHJvY2VkdXJlcywgYXV0aG9yaXphdGlvbiBrZXlzLCBvciBvdGhlciBpbmZvcm1hdGlvbiByZXF1aXJlZCB0byBpbnN0YWxsDQphbmQgZXhlY3V0ZSBtb2RpZmllZCB2ZXJzaW9ucyBvZiBhIGNvdmVyZWQgd29yayBpbiB0aGF0IFVzZXIgUHJvZHVjdCBmcm9tDQphIG1vZGlmaWVkIHZlcnNpb24gb2YgaXRzIENvcnJlc3BvbmRpbmcgU291cmNlLiAgVGhlIGluZm9ybWF0aW9uIG11c3QNCnN1ZmZpY2UgdG8gZW5zdXJlIHRoYXQgdGhlIGNvbnRpbnVlZCBmdW5jdGlvbmluZyBvZiB0aGUgbW9kaWZpZWQgb2JqZWN0DQpjb2RlIGlzIGluIG5vIGNhc2UgcHJldmVudGVkIG9yIGludGVyZmVyZWQgd2l0aCBzb2xlbHkgYmVjYXVzZQ0KbW9kaWZpY2F0aW9uIGhhcyBiZWVuIG1hZGUuDQoNCiAgSWYgeW91IGNvbnZleSBhbiBvYmplY3QgY29kZSB3b3JrIHVuZGVyIHRoaXMgc2VjdGlvbiBpbiwgb3Igd2l0aCwgb3INCnNwZWNpZmljYWxseSBmb3IgdXNlIGluLCBhIFVzZXIgUHJvZHVjdCwgYW5kIHRoZSBjb252ZXlpbmcgb2NjdXJzIGFzDQpwYXJ0IG9mIGEgdHJhbnNhY3Rpb24gaW4gd2hpY2ggdGhlIHJpZ2h0IG9mIHBvc3Nlc3Npb24gYW5kIHVzZSBvZiB0aGUNClVzZXIgUHJvZHVjdCBpcyB0cmFuc2ZlcnJlZCB0byB0aGUgcmVjaXBpZW50IGluIHBlcnBldHVpdHkgb3IgZm9yIGENCmZpeGVkIHRlcm0gKHJlZ2FyZGxlc3Mgb2YgaG93IHRoZSB0cmFuc2FjdGlvbiBpcyBjaGFyYWN0ZXJpemVkKSwgdGhlDQpDb3JyZXNwb25kaW5nIFNvdXJjZSBjb252ZXllZCB1bmRlciB0aGlzIHNlY3Rpb24gbXVzdCBiZSBhY2NvbXBhbmllZA0KYnkgdGhlIEluc3RhbGxhdGlvbiBJbmZvcm1hdGlvbi4gIEJ1dCB0aGlzIHJlcXVpcmVtZW50IGRvZXMgbm90IGFwcGx5DQppZiBuZWl0aGVyIHlvdSBub3IgYW55IHRoaXJkIHBhcnR5IHJldGFpbnMgdGhlIGFiaWxpdHkgdG8gaW5zdGFsbA0KbW9kaWZpZWQgb2JqZWN0IGNvZGUgb24gdGhlIFVzZXIgUHJvZHVjdCAoZm9yIGV4YW1wbGUsIHRoZSB3b3JrIGhhcw0KYmVlbiBpbnN0YWxsZWQgaW4gUk9NKS4NCg0KICBUaGUgcmVxdWlyZW1lbnQgdG8gcHJvdmlkZSBJbnN0YWxsYXRpb24gSW5mb3JtYXRpb24gZG9lcyBub3QgaW5jbHVkZSBhDQpyZXF1aXJlbWVudCB0byBjb250aW51ZSB0byBwcm92aWRlIHN1cHBvcnQgc2VydmljZSwgd2FycmFudHksIG9yIHVwZGF0ZXMNCmZvciBhIHdvcmsgdGhhdCBoYXMgYmVlbiBtb2RpZmllZCBvciBpbnN0YWxsZWQgYnkgdGhlIHJlY2lwaWVudCwgb3IgZm9yDQp0aGUgVXNlciBQcm9kdWN0IGluIHdoaWNoIGl0IGhhcyBiZWVuIG1vZGlmaWVkIG9yIGluc3RhbGxlZC4gIEFjY2VzcyB0byBhDQpuZXR3b3JrIG1heSBiZSBkZW5pZWQgd2hlbiB0aGUgbW9kaWZpY2F0aW9uIGl0c2VsZiBtYXRlcmlhbGx5IGFuZA0KYWR2ZXJzZWx5IGFmZmVjdHMgdGhlIG9wZXJhdGlvbiBvZiB0aGUgbmV0d29yayBvciB2aW9sYXRlcyB0aGUgcnVsZXMgYW5kDQpwcm90b2NvbHMgZm9yIGNvbW11bmljYXRpb24gYWNyb3NzIHRoZSBuZXR3b3JrLg0KDQogIENvcnJlc3BvbmRpbmcgU291cmNlIGNvbnZleWVkLCBhbmQgSW5zdGFsbGF0aW9uIEluZm9ybWF0aW9uIHByb3ZpZGVkLA0KaW4gYWNjb3JkIHdpdGggdGhpcyBzZWN0aW9uIG11c3QgYmUgaW4gYSBmb3JtYXQgdGhhdCBpcyBwdWJsaWNseQ0KZG9jdW1lbnRlZCAoYW5kIHdpdGggYW4gaW1wbGVtZW50YXRpb24gYXZhaWxhYmxlIHRvIHRoZSBwdWJsaWMgaW4NCnNvdXJjZSBjb2RlIGZvcm0pLCBhbmQgbXVzdCByZXF1aXJlIG5vIHNwZWNpYWwgcGFzc3dvcmQgb3Iga2V5IGZvcg0KdW5wYWNraW5nLCByZWFkaW5nIG9yIGNvcHlpbmcuDQoNCiAgNy4gQWRkaXRpb25hbCBUZXJtcy4NCg0KICAiQWRkaXRpb25hbCBwZXJtaXNzaW9ucyIgYXJlIHRlcm1zIHRoYXQgc3VwcGxlbWVudCB0aGUgdGVybXMgb2YgdGhpcw0KTGljZW5zZSBieSBtYWtpbmcgZXhjZXB0aW9ucyBmcm9tIG9uZSBvciBtb3JlIG9mIGl0cyBjb25kaXRpb25zLg0KQWRkaXRpb25hbCBwZXJtaXNzaW9ucyB0aGF0IGFyZSBhcHBsaWNhYmxlIHRvIHRoZSBlbnRpcmUgUHJvZ3JhbSBzaGFsbA0KYmUgdHJlYXRlZCBhcyB0aG91Z2ggdGhleSB3ZXJlIGluY2x1ZGVkIGluIHRoaXMgTGljZW5zZSwgdG8gdGhlIGV4dGVudA0KdGhhdCB0aGV5IGFyZSB2YWxpZCB1bmRlciBhcHBsaWNhYmxlIGxhdy4gIElmIGFkZGl0aW9uYWwgcGVybWlzc2lvbnMNCmFwcGx5IG9ubHkgdG8gcGFydCBvZiB0aGUgUHJvZ3JhbSwgdGhhdCBwYXJ0IG1heSBiZSB1c2VkIHNlcGFyYXRlbHkNCnVuZGVyIHRob3NlIHBlcm1pc3Npb25zLCBidXQgdGhlIGVudGlyZSBQcm9ncmFtIHJlbWFpbnMgZ292ZXJuZWQgYnkNCnRoaXMgTGljZW5zZSB3aXRob3V0IHJlZ2FyZCB0byB0aGUgYWRkaXRpb25hbCBwZXJtaXNzaW9ucy4NCg0KICBXaGVuIHlvdSBjb252ZXkgYSBjb3B5IG9mIGEgY292ZXJlZCB3b3JrLCB5b3UgbWF5IGF0IHlvdXIgb3B0aW9uDQpyZW1vdmUgYW55IGFkZGl0aW9uYWwgcGVybWlzc2lvbnMgZnJvbSB0aGF0IGNvcHksIG9yIGZyb20gYW55IHBhcnQgb2YNCml0LiAgKEFkZGl0aW9uYWwgcGVybWlzc2lvbnMgbWF5IGJlIHdyaXR0ZW4gdG8gcmVxdWlyZSB0aGVpciBvd24NCnJlbW92YWwgaW4gY2VydGFpbiBjYXNlcyB3aGVuIHlvdSBtb2RpZnkgdGhlIHdvcmsuKSAgWW91IG1heSBwbGFjZQ0KYWRkaXRpb25hbCBwZXJtaXNzaW9ucyBvbiBtYXRlcmlhbCwgYWRkZWQgYnkgeW91IHRvIGEgY292ZXJlZCB3b3JrLA0KZm9yIHdoaWNoIHlvdSBoYXZlIG9yIGNhbiBnaXZlIGFwcHJvcHJpYXRlIGNvcHlyaWdodCBwZXJtaXNzaW9uLg0KDQogIE5vdHdpdGhzdGFuZGluZyBhbnkgb3RoZXIgcHJvdmlzaW9uIG9mIHRoaXMgTGljZW5zZSwgZm9yIG1hdGVyaWFsIHlvdQ0KYWRkIHRvIGEgY292ZXJlZCB3b3JrLCB5b3UgbWF5IChpZiBhdXRob3JpemVkIGJ5IHRoZSBjb3B5cmlnaHQgaG9sZGVycyBvZg0KdGhhdCBtYXRlcmlhbCkgc3VwcGxlbWVudCB0aGUgdGVybXMgb2YgdGhpcyBMaWNlbnNlIHdpdGggdGVybXM6DQoNCiAgICBhKSBEaXNjbGFpbWluZyB3YXJyYW50eSBvciBsaW1pdGluZyBsaWFiaWxpdHkgZGlmZmVyZW50bHkgZnJvbSB0aGUNCiAgICB0ZXJtcyBvZiBzZWN0aW9ucyAxNSBhbmQgMTYgb2YgdGhpcyBMaWNlbnNlOyBvcg0KDQogICAgYikgUmVxdWlyaW5nIHByZXNlcnZhdGlvbiBvZiBzcGVjaWZpZWQgcmVhc29uYWJsZSBsZWdhbCBub3RpY2VzIG9yDQogICAgYXV0aG9yIGF0dHJpYnV0aW9ucyBpbiB0aGF0IG1hdGVyaWFsIG9yIGluIHRoZSBBcHByb3ByaWF0ZSBMZWdhbA0KICAgIE5vdGljZXMgZGlzcGxheWVkIGJ5IHdvcmtzIGNvbnRhaW5pbmcgaXQ7IG9yDQoNCiAgICBjKSBQcm9oaWJpdGluZyBtaXNyZXByZXNlbnRhdGlvbiBvZiB0aGUgb3JpZ2luIG9mIHRoYXQgbWF0ZXJpYWwsIG9yDQogICAgcmVxdWlyaW5nIHRoYXQgbW9kaWZpZWQgdmVyc2lvbnMgb2Ygc3VjaCBtYXRlcmlhbCBiZSBtYXJrZWQgaW4NCiAgICByZWFzb25hYmxlIHdheXMgYXMgZGlmZmVyZW50IGZyb20gdGhlIG9yaWdpbmFsIHZlcnNpb247IG9yDQoNCiAgICBkKSBMaW1pdGluZyB0aGUgdXNlIGZvciBwdWJsaWNpdHkgcHVycG9zZXMgb2YgbmFtZXMgb2YgbGljZW5zb3JzIG9yDQogICAgYXV0aG9ycyBvZiB0aGUgbWF0ZXJpYWw7IG9yDQoNCiAgICBlKSBEZWNsaW5pbmcgdG8gZ3JhbnQgcmlnaHRzIHVuZGVyIHRyYWRlbWFyayBsYXcgZm9yIHVzZSBvZiBzb21lDQogICAgdHJhZGUgbmFtZXMsIHRyYWRlbWFya3MsIG9yIHNlcnZpY2UgbWFya3M7IG9yDQoNCiAgICBmKSBSZXF1aXJpbmcgaW5kZW1uaWZpY2F0aW9uIG9mIGxpY2Vuc29ycyBhbmQgYXV0aG9ycyBvZiB0aGF0DQogICAgbWF0ZXJpYWwgYnkgYW55b25lIHdobyBjb252ZXlzIHRoZSBtYXRlcmlhbCAob3IgbW9kaWZpZWQgdmVyc2lvbnMgb2YNCiAgICBpdCkgd2l0aCBjb250cmFjdHVhbCBhc3N1bXB0aW9ucyBvZiBsaWFiaWxpdHkgdG8gdGhlIHJlY2lwaWVudCwgZm9yDQogICAgYW55IGxpYWJpbGl0eSB0aGF0IHRoZXNlIGNvbnRyYWN0dWFsIGFzc3VtcHRpb25zIGRpcmVjdGx5IGltcG9zZSBvbg0KICAgIHRob3NlIGxpY2Vuc29ycyBhbmQgYXV0aG9ycy4NCg0KICBBbGwgb3RoZXIgbm9uLXBlcm1pc3NpdmUgYWRkaXRpb25hbCB0ZXJtcyBhcmUgY29uc2lkZXJlZCAiZnVydGhlcg0KcmVzdHJpY3Rpb25zIiB3aXRoaW4gdGhlIG1lYW5pbmcgb2Ygc2VjdGlvbiAxMC4gIElmIHRoZSBQcm9ncmFtIGFzIHlvdQ0KcmVjZWl2ZWQgaXQsIG9yIGFueSBwYXJ0IG9mIGl0LCBjb250YWlucyBhIG5vdGljZSBzdGF0aW5nIHRoYXQgaXQgaXMNCmdvdmVybmVkIGJ5IHRoaXMgTGljZW5zZSBhbG9uZyB3aXRoIGEgdGVybSB0aGF0IGlzIGEgZnVydGhlcg0KcmVzdHJpY3Rpb24sIHlvdSBtYXkgcmVtb3ZlIHRoYXQgdGVybS4gIElmIGEgbGljZW5zZSBkb2N1bWVudCBjb250YWlucw0KYSBmdXJ0aGVyIHJlc3RyaWN0aW9uIGJ1dCBwZXJtaXRzIHJlbGljZW5zaW5nIG9yIGNvbnZleWluZyB1bmRlciB0aGlzDQpMaWNlbnNlLCB5b3UgbWF5IGFkZCB0byBhIGNvdmVyZWQgd29yayBtYXRlcmlhbCBnb3Zlcm5lZCBieSB0aGUgdGVybXMNCm9mIHRoYXQgbGljZW5zZSBkb2N1bWVudCwgcHJvdmlkZWQgdGhhdCB0aGUgZnVydGhlciByZXN0cmljdGlvbiBkb2VzDQpub3Qgc3Vydml2ZSBzdWNoIHJlbGljZW5zaW5nIG9yIGNvbnZleWluZy4NCg0KICBJZiB5b3UgYWRkIHRlcm1zIHRvIGEgY292ZXJlZCB3b3JrIGluIGFjY29yZCB3aXRoIHRoaXMgc2VjdGlvbiwgeW91DQptdXN0IHBsYWNlLCBpbiB0aGUgcmVsZXZhbnQgc291cmNlIGZpbGVzLCBhIHN0YXRlbWVudCBvZiB0aGUNCmFkZGl0aW9uYWwgdGVybXMgdGhhdCBhcHBseSB0byB0aG9zZSBmaWxlcywgb3IgYSBub3RpY2UgaW5kaWNhdGluZw0Kd2hlcmUgdG8gZmluZCB0aGUgYXBwbGljYWJsZSB0ZXJtcy4NCg0KICBBZGRpdGlvbmFsIHRlcm1zLCBwZXJtaXNzaXZlIG9yIG5vbi1wZXJtaXNzaXZlLCBtYXkgYmUgc3RhdGVkIGluIHRoZQ0KZm9ybSBvZiBhIHNlcGFyYXRlbHkgd3JpdHRlbiBsaWNlbnNlLCBvciBzdGF0ZWQgYXMgZXhjZXB0aW9uczsNCnRoZSBhYm92ZSByZXF1aXJlbWVudHMgYXBwbHkgZWl0aGVyIHdheS4NCg0KICA4LiBUZXJtaW5hdGlvbi4NCg0KICBZb3UgbWF5IG5vdCBwcm9wYWdhdGUgb3IgbW9kaWZ5IGEgY292ZXJlZCB3b3JrIGV4Y2VwdCBhcyBleHByZXNzbHkNCnByb3ZpZGVkIHVuZGVyIHRoaXMgTGljZW5zZS4gIEFueSBhdHRlbXB0IG90aGVyd2lzZSB0byBwcm9wYWdhdGUgb3INCm1vZGlmeSBpdCBpcyB2b2lkLCBhbmQgd2lsbCBhdXRvbWF0aWNhbGx5IHRlcm1pbmF0ZSB5b3VyIHJpZ2h0cyB1bmRlcg0KdGhpcyBMaWNlbnNlIChpbmNsdWRpbmcgYW55IHBhdGVudCBsaWNlbnNlcyBncmFudGVkIHVuZGVyIHRoZSB0aGlyZA0KcGFyYWdyYXBoIG9mIHNlY3Rpb24gMTEpLg0KDQogIEhvd2V2ZXIsIGlmIHlvdSBjZWFzZSBhbGwgdmlvbGF0aW9uIG9mIHRoaXMgTGljZW5zZSwgdGhlbiB5b3VyDQpsaWNlbnNlIGZyb20gYSBwYXJ0aWN1bGFyIGNvcHlyaWdodCBob2xkZXIgaXMgcmVpbnN0YXRlZCAoYSkNCnByb3Zpc2lvbmFsbHksIHVubGVzcyBhbmQgdW50aWwgdGhlIGNvcHlyaWdodCBob2xkZXIgZXhwbGljaXRseSBhbmQNCmZpbmFsbHkgdGVybWluYXRlcyB5b3VyIGxpY2Vuc2UsIGFuZCAoYikgcGVybWFuZW50bHksIGlmIHRoZSBjb3B5cmlnaHQNCmhvbGRlciBmYWlscyB0byBub3RpZnkgeW91IG9mIHRoZSB2aW9sYXRpb24gYnkgc29tZSByZWFzb25hYmxlIG1lYW5zDQpwcmlvciB0byA2MCBkYXlzIGFmdGVyIHRoZSBjZXNzYXRpb24uDQoNCiAgTW9yZW92ZXIsIHlvdXIgbGljZW5zZSBmcm9tIGEgcGFydGljdWxhciBjb3B5cmlnaHQgaG9sZGVyIGlzDQpyZWluc3RhdGVkIHBlcm1hbmVudGx5IGlmIHRoZSBjb3B5cmlnaHQgaG9sZGVyIG5vdGlmaWVzIHlvdSBvZiB0aGUNCnZpb2xhdGlvbiBieSBzb21lIHJlYXNvbmFibGUgbWVhbnMsIHRoaXMgaXMgdGhlIGZpcnN0IHRpbWUgeW91IGhhdmUNCnJlY2VpdmVkIG5vdGljZSBvZiB2aW9sYXRpb24gb2YgdGhpcyBMaWNlbnNlIChmb3IgYW55IHdvcmspIGZyb20gdGhhdA0KY29weXJpZ2h0IGhvbGRlciwgYW5kIHlvdSBjdXJlIHRoZSB2aW9sYXRpb24gcHJpb3IgdG8gMzAgZGF5cyBhZnRlcg0KeW91ciByZWNlaXB0IG9mIHRoZSBub3RpY2UuDQoNCiAgVGVybWluYXRpb24gb2YgeW91ciByaWdodHMgdW5kZXIgdGhpcyBzZWN0aW9uIGRvZXMgbm90IHRlcm1pbmF0ZSB0aGUNCmxpY2Vuc2VzIG9mIHBhcnRpZXMgd2hvIGhhdmUgcmVjZWl2ZWQgY29waWVzIG9yIHJpZ2h0cyBmcm9tIHlvdSB1bmRlcg0KdGhpcyBMaWNlbnNlLiAgSWYgeW91ciByaWdodHMgaGF2ZSBiZWVuIHRlcm1pbmF0ZWQgYW5kIG5vdCBwZXJtYW5lbnRseQ0KcmVpbnN0YXRlZCwgeW91IGRvIG5vdCBxdWFsaWZ5IHRvIHJlY2VpdmUgbmV3IGxpY2Vuc2VzIGZvciB0aGUgc2FtZQ0KbWF0ZXJpYWwgdW5kZXIgc2VjdGlvbiAxMC4NCg0KICA5LiBBY2NlcHRhbmNlIE5vdCBSZXF1aXJlZCBmb3IgSGF2aW5nIENvcGllcy4NCg0KICBZb3UgYXJlIG5vdCByZXF1aXJlZCB0byBhY2NlcHQgdGhpcyBMaWNlbnNlIGluIG9yZGVyIHRvIHJlY2VpdmUgb3INCnJ1biBhIGNvcHkgb2YgdGhlIFByb2dyYW0uICBBbmNpbGxhcnkgcHJvcGFnYXRpb24gb2YgYSBjb3ZlcmVkIHdvcmsNCm9jY3VycmluZyBzb2xlbHkgYXMgYSBjb25zZXF1ZW5jZSBvZiB1c2luZyBwZWVyLXRvLXBlZXIgdHJhbnNtaXNzaW9uDQp0byByZWNlaXZlIGEgY29weSBsaWtld2lzZSBkb2VzIG5vdCByZXF1aXJlIGFjY2VwdGFuY2UuICBIb3dldmVyLA0Kbm90aGluZyBvdGhlciB0aGFuIHRoaXMgTGljZW5zZSBncmFudHMgeW91IHBlcm1pc3Npb24gdG8gcHJvcGFnYXRlIG9yDQptb2RpZnkgYW55IGNvdmVyZWQgd29yay4gIFRoZXNlIGFjdGlvbnMgaW5mcmluZ2UgY29weXJpZ2h0IGlmIHlvdSBkbw0Kbm90IGFjY2VwdCB0aGlzIExpY2Vuc2UuICBUaGVyZWZvcmUsIGJ5IG1vZGlmeWluZyBvciBwcm9wYWdhdGluZyBhDQpjb3ZlcmVkIHdvcmssIHlvdSBpbmRpY2F0ZSB5b3VyIGFjY2VwdGFuY2Ugb2YgdGhpcyBMaWNlbnNlIHRvIGRvIHNvLg0KDQogIDEwLiBBdXRvbWF0aWMgTGljZW5zaW5nIG9mIERvd25zdHJlYW0gUmVjaXBpZW50cy4NCg0KICBFYWNoIHRpbWUgeW91IGNvbnZleSBhIGNvdmVyZWQgd29yaywgdGhlIHJlY2lwaWVudCBhdXRvbWF0aWNhbGx5DQpyZWNlaXZlcyBhIGxpY2Vuc2UgZnJvbSB0aGUgb3JpZ2luYWwgbGljZW5zb3JzLCB0byBydW4sIG1vZGlmeSBhbmQNCnByb3BhZ2F0ZSB0aGF0IHdvcmssIHN1YmplY3QgdG8gdGhpcyBMaWNlbnNlLiAgWW91IGFyZSBub3QgcmVzcG9uc2libGUNCmZvciBlbmZvcmNpbmcgY29tcGxpYW5jZSBieSB0aGlyZCBwYXJ0aWVzIHdpdGggdGhpcyBMaWNlbnNlLg0KDQogIEFuICJlbnRpdHkgdHJhbnNhY3Rpb24iIGlzIGEgdHJhbnNhY3Rpb24gdHJhbnNmZXJyaW5nIGNvbnRyb2wgb2YgYW4NCm9yZ2FuaXphdGlvbiwgb3Igc3Vic3RhbnRpYWxseSBhbGwgYXNzZXRzIG9mIG9uZSwgb3Igc3ViZGl2aWRpbmcgYW4NCm9yZ2FuaXphdGlvbiwgb3IgbWVyZ2luZyBvcmdhbml6YXRpb25zLiAgSWYgcHJvcGFnYXRpb24gb2YgYSBjb3ZlcmVkDQp3b3JrIHJlc3VsdHMgZnJvbSBhbiBlbnRpdHkgdHJhbnNhY3Rpb24sIGVhY2ggcGFydHkgdG8gdGhhdA0KdHJhbnNhY3Rpb24gd2hvIHJlY2VpdmVzIGEgY29weSBvZiB0aGUgd29yayBhbHNvIHJlY2VpdmVzIHdoYXRldmVyDQpsaWNlbnNlcyB0byB0aGUgd29yayB0aGUgcGFydHkncyBwcmVkZWNlc3NvciBpbiBpbnRlcmVzdCBoYWQgb3IgY291bGQNCmdpdmUgdW5kZXIgdGhlIHByZXZpb3VzIHBhcmFncmFwaCwgcGx1cyBhIHJpZ2h0IHRvIHBvc3Nlc3Npb24gb2YgdGhlDQpDb3JyZXNwb25kaW5nIFNvdXJjZSBvZiB0aGUgd29yayBmcm9tIHRoZSBwcmVkZWNlc3NvciBpbiBpbnRlcmVzdCwgaWYNCnRoZSBwcmVkZWNlc3NvciBoYXMgaXQgb3IgY2FuIGdldCBpdCB3aXRoIHJlYXNvbmFibGUgZWZmb3J0cy4NCg0KICBZb3UgbWF5IG5vdCBpbXBvc2UgYW55IGZ1cnRoZXIgcmVzdHJpY3Rpb25zIG9uIHRoZSBleGVyY2lzZSBvZiB0aGUNCnJpZ2h0cyBncmFudGVkIG9yIGFmZmlybWVkIHVuZGVyIHRoaXMgTGljZW5zZS4gIEZvciBleGFtcGxlLCB5b3UgbWF5DQpub3QgaW1wb3NlIGEgbGljZW5zZSBmZWUsIHJveWFsdHksIG9yIG90aGVyIGNoYXJnZSBmb3IgZXhlcmNpc2Ugb2YNCnJpZ2h0cyBncmFudGVkIHVuZGVyIHRoaXMgTGljZW5zZSwgYW5kIHlvdSBtYXkgbm90IGluaXRpYXRlIGxpdGlnYXRpb24NCihpbmNsdWRpbmcgYSBjcm9zcy1jbGFpbSBvciBjb3VudGVyY2xhaW0gaW4gYSBsYXdzdWl0KSBhbGxlZ2luZyB0aGF0DQphbnkgcGF0ZW50IGNsYWltIGlzIGluZnJpbmdlZCBieSBtYWtpbmcsIHVzaW5nLCBzZWxsaW5nLCBvZmZlcmluZyBmb3INCnNhbGUsIG9yIGltcG9ydGluZyB0aGUgUHJvZ3JhbSBvciBhbnkgcG9ydGlvbiBvZiBpdC4NCg0KICAxMS4gUGF0ZW50cy4NCg0KICBBICJjb250cmlidXRvciIgaXMgYSBjb3B5cmlnaHQgaG9sZGVyIHdobyBhdXRob3JpemVzIHVzZSB1bmRlciB0aGlzDQpMaWNlbnNlIG9mIHRoZSBQcm9ncmFtIG9yIGEgd29yayBvbiB3aGljaCB0aGUgUHJvZ3JhbSBpcyBiYXNlZC4gIFRoZQ0Kd29yayB0aHVzIGxpY2Vuc2VkIGlzIGNhbGxlZCB0aGUgY29udHJpYnV0b3IncyAiY29udHJpYnV0b3IgdmVyc2lvbiIuDQoNCiAgQSBjb250cmlidXRvcidzICJlc3NlbnRpYWwgcGF0ZW50IGNsYWltcyIgYXJlIGFsbCBwYXRlbnQgY2xhaW1zDQpvd25lZCBvciBjb250cm9sbGVkIGJ5IHRoZSBjb250cmlidXRvciwgd2hldGhlciBhbHJlYWR5IGFjcXVpcmVkIG9yDQpoZXJlYWZ0ZXIgYWNxdWlyZWQsIHRoYXQgd291bGQgYmUgaW5mcmluZ2VkIGJ5IHNvbWUgbWFubmVyLCBwZXJtaXR0ZWQNCmJ5IHRoaXMgTGljZW5zZSwgb2YgbWFraW5nLCB1c2luZywgb3Igc2VsbGluZyBpdHMgY29udHJpYnV0b3IgdmVyc2lvbiwNCmJ1dCBkbyBub3QgaW5jbHVkZSBjbGFpbXMgdGhhdCB3b3VsZCBiZSBpbmZyaW5nZWQgb25seSBhcyBhDQpjb25zZXF1ZW5jZSBvZiBmdXJ0aGVyIG1vZGlmaWNhdGlvbiBvZiB0aGUgY29udHJpYnV0b3IgdmVyc2lvbi4gIEZvcg0KcHVycG9zZXMgb2YgdGhpcyBkZWZpbml0aW9uLCAiY29udHJvbCIgaW5jbHVkZXMgdGhlIHJpZ2h0IHRvIGdyYW50DQpwYXRlbnQgc3VibGljZW5zZXMgaW4gYSBtYW5uZXIgY29uc2lzdGVudCB3aXRoIHRoZSByZXF1aXJlbWVudHMgb2YNCnRoaXMgTGljZW5zZS4NCg0KICBFYWNoIGNvbnRyaWJ1dG9yIGdyYW50cyB5b3UgYSBub24tZXhjbHVzaXZlLCB3b3JsZHdpZGUsIHJveWFsdHktZnJlZQ0KcGF0ZW50IGxpY2Vuc2UgdW5kZXIgdGhlIGNvbnRyaWJ1dG9yJ3MgZXNzZW50aWFsIHBhdGVudCBjbGFpbXMsIHRvDQptYWtlLCB1c2UsIHNlbGwsIG9mZmVyIGZvciBzYWxlLCBpbXBvcnQgYW5kIG90aGVyd2lzZSBydW4sIG1vZGlmeSBhbmQNCnByb3BhZ2F0ZSB0aGUgY29udGVudHMgb2YgaXRzIGNvbnRyaWJ1dG9yIHZlcnNpb24uDQoNCiAgSW4gdGhlIGZvbGxvd2luZyB0aHJlZSBwYXJhZ3JhcGhzLCBhICJwYXRlbnQgbGljZW5zZSIgaXMgYW55IGV4cHJlc3MNCmFncmVlbWVudCBvciBjb21taXRtZW50LCBob3dldmVyIGRlbm9taW5hdGVkLCBub3QgdG8gZW5mb3JjZSBhIHBhdGVudA0KKHN1Y2ggYXMgYW4gZXhwcmVzcyBwZXJtaXNzaW9uIHRvIHByYWN0aWNlIGEgcGF0ZW50IG9yIGNvdmVuYW50IG5vdCB0bw0Kc3VlIGZvciBwYXRlbnQgaW5mcmluZ2VtZW50KS4gIFRvICJncmFudCIgc3VjaCBhIHBhdGVudCBsaWNlbnNlIHRvIGENCnBhcnR5IG1lYW5zIHRvIG1ha2Ugc3VjaCBhbiBhZ3JlZW1lbnQgb3IgY29tbWl0bWVudCBub3QgdG8gZW5mb3JjZSBhDQpwYXRlbnQgYWdhaW5zdCB0aGUgcGFydHkuDQoNCiAgSWYgeW91IGNvbnZleSBhIGNvdmVyZWQgd29yaywga25vd2luZ2x5IHJlbHlpbmcgb24gYSBwYXRlbnQgbGljZW5zZSwNCmFuZCB0aGUgQ29ycmVzcG9uZGluZyBTb3VyY2Ugb2YgdGhlIHdvcmsgaXMgbm90IGF2YWlsYWJsZSBmb3IgYW55b25lDQp0byBjb3B5LCBmcmVlIG9mIGNoYXJnZSBhbmQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoaXMgTGljZW5zZSwgdGhyb3VnaCBhDQpwdWJsaWNseSBhdmFpbGFibGUgbmV0d29yayBzZXJ2ZXIgb3Igb3RoZXIgcmVhZGlseSBhY2Nlc3NpYmxlIG1lYW5zLA0KdGhlbiB5b3UgbXVzdCBlaXRoZXIgKDEpIGNhdXNlIHRoZSBDb3JyZXNwb25kaW5nIFNvdXJjZSB0byBiZSBzbw0KYXZhaWxhYmxlLCBvciAoMikgYXJyYW5nZSB0byBkZXByaXZlIHlvdXJzZWxmIG9mIHRoZSBiZW5lZml0IG9mIHRoZQ0KcGF0ZW50IGxpY2Vuc2UgZm9yIHRoaXMgcGFydGljdWxhciB3b3JrLCBvciAoMykgYXJyYW5nZSwgaW4gYSBtYW5uZXINCmNvbnNpc3RlbnQgd2l0aCB0aGUgcmVxdWlyZW1lbnRzIG9mIHRoaXMgTGljZW5zZSwgdG8gZXh0ZW5kIHRoZSBwYXRlbnQNCmxpY2Vuc2UgdG8gZG93bnN0cmVhbSByZWNpcGllbnRzLiAgIktub3dpbmdseSByZWx5aW5nIiBtZWFucyB5b3UgaGF2ZQ0KYWN0dWFsIGtub3dsZWRnZSB0aGF0LCBidXQgZm9yIHRoZSBwYXRlbnQgbGljZW5zZSwgeW91ciBjb252ZXlpbmcgdGhlDQpjb3ZlcmVkIHdvcmsgaW4gYSBjb3VudHJ5LCBvciB5b3VyIHJlY2lwaWVudCdzIHVzZSBvZiB0aGUgY292ZXJlZCB3b3JrDQppbiBhIGNvdW50cnksIHdvdWxkIGluZnJpbmdlIG9uZSBvciBtb3JlIGlkZW50aWZpYWJsZSBwYXRlbnRzIGluIHRoYXQNCmNvdW50cnkgdGhhdCB5b3UgaGF2ZSByZWFzb24gdG8gYmVsaWV2ZSBhcmUgdmFsaWQuDQoNCiAgSWYsIHB1cnN1YW50IHRvIG9yIGluIGNvbm5lY3Rpb24gd2l0aCBhIHNpbmdsZSB0cmFuc2FjdGlvbiBvcg0KYXJyYW5nZW1lbnQsIHlvdSBjb252ZXksIG9yIHByb3BhZ2F0ZSBieSBwcm9jdXJpbmcgY29udmV5YW5jZSBvZiwgYQ0KY292ZXJlZCB3b3JrLCBhbmQgZ3JhbnQgYSBwYXRlbnQgbGljZW5zZSB0byBzb21lIG9mIHRoZSBwYXJ0aWVzDQpyZWNlaXZpbmcgdGhlIGNvdmVyZWQgd29yayBhdXRob3JpemluZyB0aGVtIHRvIHVzZSwgcHJvcGFnYXRlLCBtb2RpZnkNCm9yIGNvbnZleSBhIHNwZWNpZmljIGNvcHkgb2YgdGhlIGNvdmVyZWQgd29yaywgdGhlbiB0aGUgcGF0ZW50IGxpY2Vuc2UNCnlvdSBncmFudCBpcyBhdXRvbWF0aWNhbGx5IGV4dGVuZGVkIHRvIGFsbCByZWNpcGllbnRzIG9mIHRoZSBjb3ZlcmVkDQp3b3JrIGFuZCB3b3JrcyBiYXNlZCBvbiBpdC4NCg0KICBBIHBhdGVudCBsaWNlbnNlIGlzICJkaXNjcmltaW5hdG9yeSIgaWYgaXQgZG9lcyBub3QgaW5jbHVkZSB3aXRoaW4NCnRoZSBzY29wZSBvZiBpdHMgY292ZXJhZ2UsIHByb2hpYml0cyB0aGUgZXhlcmNpc2Ugb2YsIG9yIGlzDQpjb25kaXRpb25lZCBvbiB0aGUgbm9uLWV4ZXJjaXNlIG9mIG9uZSBvciBtb3JlIG9mIHRoZSByaWdodHMgdGhhdCBhcmUNCnNwZWNpZmljYWxseSBncmFudGVkIHVuZGVyIHRoaXMgTGljZW5zZS4gIFlvdSBtYXkgbm90IGNvbnZleSBhIGNvdmVyZWQNCndvcmsgaWYgeW91IGFyZSBhIHBhcnR5IHRvIGFuIGFycmFuZ2VtZW50IHdpdGggYSB0aGlyZCBwYXJ0eSB0aGF0IGlzDQppbiB0aGUgYnVzaW5lc3Mgb2YgZGlzdHJpYnV0aW5nIHNvZnR3YXJlLCB1bmRlciB3aGljaCB5b3UgbWFrZSBwYXltZW50DQp0byB0aGUgdGhpcmQgcGFydHkgYmFzZWQgb24gdGhlIGV4dGVudCBvZiB5b3VyIGFjdGl2aXR5IG9mIGNvbnZleWluZw0KdGhlIHdvcmssIGFuZCB1bmRlciB3aGljaCB0aGUgdGhpcmQgcGFydHkgZ3JhbnRzLCB0byBhbnkgb2YgdGhlDQpwYXJ0aWVzIHdobyB3b3VsZCByZWNlaXZlIHRoZSBjb3ZlcmVkIHdvcmsgZnJvbSB5b3UsIGEgZGlzY3JpbWluYXRvcnkNCnBhdGVudCBsaWNlbnNlIChhKSBpbiBjb25uZWN0aW9uIHdpdGggY29waWVzIG9mIHRoZSBjb3ZlcmVkIHdvcmsNCmNvbnZleWVkIGJ5IHlvdSAob3IgY29waWVzIG1hZGUgZnJvbSB0aG9zZSBjb3BpZXMpLCBvciAoYikgcHJpbWFyaWx5DQpmb3IgYW5kIGluIGNvbm5lY3Rpb24gd2l0aCBzcGVjaWZpYyBwcm9kdWN0cyBvciBjb21waWxhdGlvbnMgdGhhdA0KY29udGFpbiB0aGUgY292ZXJlZCB3b3JrLCB1bmxlc3MgeW91IGVudGVyZWQgaW50byB0aGF0IGFycmFuZ2VtZW50LA0Kb3IgdGhhdCBwYXRlbnQgbGljZW5zZSB3YXMgZ3JhbnRlZCwgcHJpb3IgdG8gMjggTWFyY2ggMjAwNy4NCg0KICBOb3RoaW5nIGluIHRoaXMgTGljZW5zZSBzaGFsbCBiZSBjb25zdHJ1ZWQgYXMgZXhjbHVkaW5nIG9yIGxpbWl0aW5nDQphbnkgaW1wbGllZCBsaWNlbnNlIG9yIG90aGVyIGRlZmVuc2VzIHRvIGluZnJpbmdlbWVudCB0aGF0IG1heQ0Kb3RoZXJ3aXNlIGJlIGF2YWlsYWJsZSB0byB5b3UgdW5kZXIgYXBwbGljYWJsZSBwYXRlbnQgbGF3Lg0KDQogIDEyLiBObyBTdXJyZW5kZXIgb2YgT3RoZXJzJyBGcmVlZG9tLg0KDQogIElmIGNvbmRpdGlvbnMgYXJlIGltcG9zZWQgb24geW91ICh3aGV0aGVyIGJ5IGNvdXJ0IG9yZGVyLCBhZ3JlZW1lbnQgb3INCm90aGVyd2lzZSkgdGhhdCBjb250cmFkaWN0IHRoZSBjb25kaXRpb25zIG9mIHRoaXMgTGljZW5zZSwgdGhleSBkbyBub3QNCmV4Y3VzZSB5b3UgZnJvbSB0aGUgY29uZGl0aW9ucyBvZiB0aGlzIExpY2Vuc2UuICBJZiB5b3UgY2Fubm90IGNvbnZleSBhDQpjb3ZlcmVkIHdvcmsgc28gYXMgdG8gc2F0aXNmeSBzaW11bHRhbmVvdXNseSB5b3VyIG9ibGlnYXRpb25zIHVuZGVyIHRoaXMNCkxpY2Vuc2UgYW5kIGFueSBvdGhlciBwZXJ0aW5lbnQgb2JsaWdhdGlvbnMsIHRoZW4gYXMgYSBjb25zZXF1ZW5jZSB5b3UgbWF5DQpub3QgY29udmV5IGl0IGF0IGFsbC4gIEZvciBleGFtcGxlLCBpZiB5b3UgYWdyZWUgdG8gdGVybXMgdGhhdCBvYmxpZ2F0ZSB5b3UNCnRvIGNvbGxlY3QgYSByb3lhbHR5IGZvciBmdXJ0aGVyIGNvbnZleWluZyBmcm9tIHRob3NlIHRvIHdob20geW91IGNvbnZleQ0KdGhlIFByb2dyYW0sIHRoZSBvbmx5IHdheSB5b3UgY291bGQgc2F0aXNmeSBib3RoIHRob3NlIHRlcm1zIGFuZCB0aGlzDQpMaWNlbnNlIHdvdWxkIGJlIHRvIHJlZnJhaW4gZW50aXJlbHkgZnJvbSBjb252ZXlpbmcgdGhlIFByb2dyYW0uDQoNCiAgMTMuIFVzZSB3aXRoIHRoZSBHTlUgQWZmZXJvIEdlbmVyYWwgUHVibGljIExpY2Vuc2UuDQoNCiAgTm90d2l0aHN0YW5kaW5nIGFueSBvdGhlciBwcm92aXNpb24gb2YgdGhpcyBMaWNlbnNlLCB5b3UgaGF2ZQ0KcGVybWlzc2lvbiB0byBsaW5rIG9yIGNvbWJpbmUgYW55IGNvdmVyZWQgd29yayB3aXRoIGEgd29yayBsaWNlbnNlZA0KdW5kZXIgdmVyc2lvbiAzIG9mIHRoZSBHTlUgQWZmZXJvIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgaW50byBhIHNpbmdsZQ0KY29tYmluZWQgd29yaywgYW5kIHRvIGNvbnZleSB0aGUgcmVzdWx0aW5nIHdvcmsuICBUaGUgdGVybXMgb2YgdGhpcw0KTGljZW5zZSB3aWxsIGNvbnRpbnVlIHRvIGFwcGx5IHRvIHRoZSBwYXJ0IHdoaWNoIGlzIHRoZSBjb3ZlcmVkIHdvcmssDQpidXQgdGhlIHNwZWNpYWwgcmVxdWlyZW1lbnRzIG9mIHRoZSBHTlUgQWZmZXJvIEdlbmVyYWwgUHVibGljIExpY2Vuc2UsDQpzZWN0aW9uIDEzLCBjb25jZXJuaW5nIGludGVyYWN0aW9uIHRocm91Z2ggYSBuZXR3b3JrIHdpbGwgYXBwbHkgdG8gdGhlDQpjb21iaW5hdGlvbiBhcyBzdWNoLg0KDQogIDE0LiBSZXZpc2VkIFZlcnNpb25zIG9mIHRoaXMgTGljZW5zZS4NCg0KICBUaGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uIG1heSBwdWJsaXNoIHJldmlzZWQgYW5kL29yIG5ldyB2ZXJzaW9ucyBvZg0KdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZyb20gdGltZSB0byB0aW1lLiAgU3VjaCBuZXcgdmVyc2lvbnMgd2lsbA0KYmUgc2ltaWxhciBpbiBzcGlyaXQgdG8gdGhlIHByZXNlbnQgdmVyc2lvbiwgYnV0IG1heSBkaWZmZXIgaW4gZGV0YWlsIHRvDQphZGRyZXNzIG5ldyBwcm9ibGVtcyBvciBjb25jZXJucy4NCg0KICBFYWNoIHZlcnNpb24gaXMgZ2l2ZW4gYSBkaXN0aW5ndWlzaGluZyB2ZXJzaW9uIG51bWJlci4gIElmIHRoZQ0KUHJvZ3JhbSBzcGVjaWZpZXMgdGhhdCBhIGNlcnRhaW4gbnVtYmVyZWQgdmVyc2lvbiBvZiB0aGUgR05VIEdlbmVyYWwNClB1YmxpYyBMaWNlbnNlICJvciBhbnkgbGF0ZXIgdmVyc2lvbiIgYXBwbGllcyB0byBpdCwgeW91IGhhdmUgdGhlDQpvcHRpb24gb2YgZm9sbG93aW5nIHRoZSB0ZXJtcyBhbmQgY29uZGl0aW9ucyBlaXRoZXIgb2YgdGhhdCBudW1iZXJlZA0KdmVyc2lvbiBvciBvZiBhbnkgbGF0ZXIgdmVyc2lvbiBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUNCkZvdW5kYXRpb24uICBJZiB0aGUgUHJvZ3JhbSBkb2VzIG5vdCBzcGVjaWZ5IGEgdmVyc2lvbiBudW1iZXIgb2YgdGhlDQpHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSwgeW91IG1heSBjaG9vc2UgYW55IHZlcnNpb24gZXZlciBwdWJsaXNoZWQNCmJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24uDQoNCiAgSWYgdGhlIFByb2dyYW0gc3BlY2lmaWVzIHRoYXQgYSBwcm94eSBjYW4gZGVjaWRlIHdoaWNoIGZ1dHVyZQ0KdmVyc2lvbnMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGNhbiBiZSB1c2VkLCB0aGF0IHByb3h5J3MNCnB1YmxpYyBzdGF0ZW1lbnQgb2YgYWNjZXB0YW5jZSBvZiBhIHZlcnNpb24gcGVybWFuZW50bHkgYXV0aG9yaXplcyB5b3UNCnRvIGNob29zZSB0aGF0IHZlcnNpb24gZm9yIHRoZSBQcm9ncmFtLg0KDQogIExhdGVyIGxpY2Vuc2UgdmVyc2lvbnMgbWF5IGdpdmUgeW91IGFkZGl0aW9uYWwgb3IgZGlmZmVyZW50DQpwZXJtaXNzaW9ucy4gIEhvd2V2ZXIsIG5vIGFkZGl0aW9uYWwgb2JsaWdhdGlvbnMgYXJlIGltcG9zZWQgb24gYW55DQphdXRob3Igb3IgY29weXJpZ2h0IGhvbGRlciBhcyBhIHJlc3VsdCBvZiB5b3VyIGNob29zaW5nIHRvIGZvbGxvdyBhDQpsYXRlciB2ZXJzaW9uLg0KDQogIDE1LiBEaXNjbGFpbWVyIG9mIFdhcnJhbnR5Lg0KDQogIFRIRVJFIElTIE5PIFdBUlJBTlRZIEZPUiBUSEUgUFJPR1JBTSwgVE8gVEhFIEVYVEVOVCBQRVJNSVRURUQgQlkNCkFQUExJQ0FCTEUgTEFXLiAgRVhDRVBUIFdIRU4gT1RIRVJXSVNFIFNUQVRFRCBJTiBXUklUSU5HIFRIRSBDT1BZUklHSFQNCkhPTERFUlMgQU5EL09SIE9USEVSIFBBUlRJRVMgUFJPVklERSBUSEUgUFJPR1JBTSAiQVMgSVMiIFdJVEhPVVQgV0FSUkFOVFkNCk9GIEFOWSBLSU5ELCBFSVRIRVIgRVhQUkVTU0VEIE9SIElNUExJRUQsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLA0KVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUg0KUFVSUE9TRS4gIFRIRSBFTlRJUkUgUklTSyBBUyBUTyBUSEUgUVVBTElUWSBBTkQgUEVSRk9STUFOQ0UgT0YgVEhFIFBST0dSQU0NCklTIFdJVEggWU9VLiAgU0hPVUxEIFRIRSBQUk9HUkFNIFBST1ZFIERFRkVDVElWRSwgWU9VIEFTU1VNRSBUSEUgQ09TVCBPRg0KQUxMIE5FQ0VTU0FSWSBTRVJWSUNJTkcsIFJFUEFJUiBPUiBDT1JSRUNUSU9OLg0KDQogIDE2LiBMaW1pdGF0aW9uIG9mIExpYWJpbGl0eS4NCg0KICBJTiBOTyBFVkVOVCBVTkxFU1MgUkVRVUlSRUQgQlkgQVBQTElDQUJMRSBMQVcgT1IgQUdSRUVEIFRPIElOIFdSSVRJTkcNCldJTEwgQU5ZIENPUFlSSUdIVCBIT0xERVIsIE9SIEFOWSBPVEhFUiBQQVJUWSBXSE8gTU9ESUZJRVMgQU5EL09SIENPTlZFWVMNClRIRSBQUk9HUkFNIEFTIFBFUk1JVFRFRCBBQk9WRSwgQkUgTElBQkxFIFRPIFlPVSBGT1IgREFNQUdFUywgSU5DTFVESU5HIEFOWQ0KR0VORVJBTCwgU1BFQ0lBTCwgSU5DSURFTlRBTCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgQVJJU0lORyBPVVQgT0YgVEhFDQpVU0UgT1IgSU5BQklMSVRZIFRPIFVTRSBUSEUgUFJPR1JBTSAoSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBMT1NTIE9GDQpEQVRBIE9SIERBVEEgQkVJTkcgUkVOREVSRUQgSU5BQ0NVUkFURSBPUiBMT1NTRVMgU1VTVEFJTkVEIEJZIFlPVSBPUiBUSElSRA0KUEFSVElFUyBPUiBBIEZBSUxVUkUgT0YgVEhFIFBST0dSQU0gVE8gT1BFUkFURSBXSVRIIEFOWSBPVEhFUiBQUk9HUkFNUyksDQpFVkVOIElGIFNVQ0ggSE9MREVSIE9SIE9USEVSIFBBUlRZIEhBUyBCRUVOIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GDQpTVUNIIERBTUFHRVMuDQoNCiAgMTcuIEludGVycHJldGF0aW9uIG9mIFNlY3Rpb25zIDE1IGFuZCAxNi4NCg0KICBJZiB0aGUgZGlzY2xhaW1lciBvZiB3YXJyYW50eSBhbmQgbGltaXRhdGlvbiBvZiBsaWFiaWxpdHkgcHJvdmlkZWQNCmFib3ZlIGNhbm5vdCBiZSBnaXZlbiBsb2NhbCBsZWdhbCBlZmZlY3QgYWNjb3JkaW5nIHRvIHRoZWlyIHRlcm1zLA0KcmV2aWV3aW5nIGNvdXJ0cyBzaGFsbCBhcHBseSBsb2NhbCBsYXcgdGhhdCBtb3N0IGNsb3NlbHkgYXBwcm94aW1hdGVzDQphbiBhYnNvbHV0ZSB3YWl2ZXIgb2YgYWxsIGNpdmlsIGxpYWJpbGl0eSBpbiBjb25uZWN0aW9uIHdpdGggdGhlDQpQcm9ncmFtLCB1bmxlc3MgYSB3YXJyYW50eSBvciBhc3N1bXB0aW9uIG9mIGxpYWJpbGl0eSBhY2NvbXBhbmllcyBhDQpjb3B5IG9mIHRoZSBQcm9ncmFtIGluIHJldHVybiBmb3IgYSBmZWUuDQoNCiAgICAgICAgICAgICAgICAgICAgIEVORCBPRiBURVJNUyBBTkQgQ09ORElUSU9OUw0KDQogICAgICAgICAgICBIb3cgdG8gQXBwbHkgVGhlc2UgVGVybXMgdG8gWW91ciBOZXcgUHJvZ3JhbXMNCg0KICBJZiB5b3UgZGV2ZWxvcCBhIG5ldyBwcm9ncmFtLCBhbmQgeW91IHdhbnQgaXQgdG8gYmUgb2YgdGhlIGdyZWF0ZXN0DQpwb3NzaWJsZSB1c2UgdG8gdGhlIHB1YmxpYywgdGhlIGJlc3Qgd2F5IHRvIGFjaGlldmUgdGhpcyBpcyB0byBtYWtlIGl0DQpmcmVlIHNvZnR3YXJlIHdoaWNoIGV2ZXJ5b25lIGNhbiByZWRpc3RyaWJ1dGUgYW5kIGNoYW5nZSB1bmRlciB0aGVzZSB0ZXJtcy4NCg0KICBUbyBkbyBzbywgYXR0YWNoIHRoZSBmb2xsb3dpbmcgbm90aWNlcyB0byB0aGUgcHJvZ3JhbS4gIEl0IGlzIHNhZmVzdA0KdG8gYXR0YWNoIHRoZW0gdG8gdGhlIHN0YXJ0IG9mIGVhY2ggc291cmNlIGZpbGUgdG8gbW9zdCBlZmZlY3RpdmVseQ0Kc3RhdGUgdGhlIGV4Y2x1c2lvbiBvZiB3YXJyYW50eTsgYW5kIGVhY2ggZmlsZSBzaG91bGQgaGF2ZSBhdCBsZWFzdA0KdGhlICJjb3B5cmlnaHQiIGxpbmUgYW5kIGEgcG9pbnRlciB0byB3aGVyZSB0aGUgZnVsbCBub3RpY2UgaXMgZm91bmQuDQoNCiAgICA8b25lIGxpbmUgdG8gZ2l2ZSB0aGUgcHJvZ3JhbSdzIG5hbWUgYW5kIGEgYnJpZWYgaWRlYSBvZiB3aGF0IGl0IGRvZXMuPg0KICAgIENvcHlyaWdodCAoQykgPHllYXI+ICA8bmFtZSBvZiBhdXRob3I+DQoNCiAgICBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTogeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQ0KICAgIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5DQogICAgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgZWl0aGVyIHZlcnNpb24gMyBvZiB0aGUgTGljZW5zZSwgb3INCiAgICAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLg0KDQogICAgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsDQogICAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YNCiAgICBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlDQogICAgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4NCg0KICAgIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlDQogICAgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW0uICBJZiBub3QsIHNlZSA8aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzLz4uDQoNCkFsc28gYWRkIGluZm9ybWF0aW9uIG9uIGhvdyB0byBjb250YWN0IHlvdSBieSBlbGVjdHJvbmljIGFuZCBwYXBlciBtYWlsLg0KDQogIElmIHRoZSBwcm9ncmFtIGRvZXMgdGVybWluYWwgaW50ZXJhY3Rpb24sIG1ha2UgaXQgb3V0cHV0IGEgc2hvcnQNCm5vdGljZSBsaWtlIHRoaXMgd2hlbiBpdCBzdGFydHMgaW4gYW4gaW50ZXJhY3RpdmUgbW9kZToNCg0KICAgIDxwcm9ncmFtPiAgQ29weXJpZ2h0IChDKSA8eWVhcj4gIDxuYW1lIG9mIGF1dGhvcj4NCiAgICBUaGlzIHByb2dyYW0gY29tZXMgd2l0aCBBQlNPTFVURUxZIE5PIFdBUlJBTlRZOyBmb3IgZGV0YWlscyB0eXBlIGBzaG93IHcnLg0KICAgIFRoaXMgaXMgZnJlZSBzb2Z0d2FyZSwgYW5kIHlvdSBhcmUgd2VsY29tZSB0byByZWRpc3RyaWJ1dGUgaXQNCiAgICB1bmRlciBjZXJ0YWluIGNvbmRpdGlvbnM7IHR5cGUgYHNob3cgYycgZm9yIGRldGFpbHMuDQoNClRoZSBoeXBvdGhldGljYWwgY29tbWFuZHMgYHNob3cgdycgYW5kIGBzaG93IGMnIHNob3VsZCBzaG93IHRoZSBhcHByb3ByaWF0ZQ0KcGFydHMgb2YgdGhlIEdlbmVyYWwgUHVibGljIExpY2Vuc2UuICBPZiBjb3Vyc2UsIHlvdXIgcHJvZ3JhbSdzIGNvbW1hbmRzDQptaWdodCBiZSBkaWZmZXJlbnQ7IGZvciBhIEdVSSBpbnRlcmZhY2UsIHlvdSB3b3VsZCB1c2UgYW4gImFib3V0IGJveCIuDQoNCiAgWW91IHNob3VsZCBhbHNvIGdldCB5b3VyIGVtcGxveWVyIChpZiB5b3Ugd29yayBhcyBhIHByb2dyYW1tZXIpIG9yIHNjaG9vbCwNCmlmIGFueSwgdG8gc2lnbiBhICJjb3B5cmlnaHQgZGlzY2xhaW1lciIgZm9yIHRoZSBwcm9ncmFtLCBpZiBuZWNlc3NhcnkuDQpGb3IgbW9yZSBpbmZvcm1hdGlvbiBvbiB0aGlzLCBhbmQgaG93IHRvIGFwcGx5IGFuZCBmb2xsb3cgdGhlIEdOVSBHUEwsIHNlZQ0KPGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+Lg0KDQogIFRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBkb2VzIG5vdCBwZXJtaXQgaW5jb3Jwb3JhdGluZyB5b3VyIHByb2dyYW0NCmludG8gcHJvcHJpZXRhcnkgcHJvZ3JhbXMuICBJZiB5b3VyIHByb2dyYW0gaXMgYSBzdWJyb3V0aW5lIGxpYnJhcnksIHlvdQ0KbWF5IGNvbnNpZGVyIGl0IG1vcmUgdXNlZnVsIHRvIHBlcm1pdCBsaW5raW5nIHByb3ByaWV0YXJ5IGFwcGxpY2F0aW9ucyB3aXRoDQp0aGUgbGlicmFyeS4gIElmIHRoaXMgaXMgd2hhdCB5b3Ugd2FudCB0byBkbywgdXNlIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwNClB1YmxpYyBMaWNlbnNlIGluc3RlYWQgb2YgdGhpcyBMaWNlbnNlLiAgQnV0IGZpcnN0LCBwbGVhc2UgcmVhZA0KPGh0dHA6Ly93d3cuZ251Lm9yZy9waGlsb3NvcGh5L3doeS1ub3QtbGdwbC5odG1sPi4NCg==]]></data>
	</file>
	<file>
	  <filename>/docs/index.html</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[]]></data>
	</file>
	<file>
	  <filename>/duplicate</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/duplicate/images</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/duplicate/images/icon.png</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAABmJLR0QA/wD/AP+gvaeTAAAACXBIWXMAAC4jAAAuIwF4pT92AAAAB3RJTUUH3wUYEQMKpO2HwAAAA91JREFUaN7t11uoVFUcBvDfmnNRj1Z2024PZT00MwpmUWRIoEFRUVHRYxQ9RBe0ICKIIrpRQdCVXnspuhhINzTMMo0Mi7I4x64IIYnYTS01PWdWD2vtGsdz2fOQJewPhpm99tprf99a/+9ba6hQoUKFChUqVKhwyCK0XzQb9aJtEvai1Xa7P18PxxgNbfxqwsHzeNCHGv4sGmIkBP153DJoYTfi4NDGAwXkl03GrbgEq/E4dubrW7AVD+E7aB9oFNJTcCoWYBEG8AzezvcX4A4cU1LAMN7E09hTvLu3o9O5uBeHYT424H08iLm5zw4s6SQdYxRCmIY6zs+k52WCtdx1Jj7GrvyeC0qSLzAPn2JV0dApYCam5t/9OB499l/mSYNDGzUbdc1GPWA6ZocQFmIh5uS2MAqB3iymJpVVt+jp5Nw7wQM1/ISHsRjb8Fwuk+NwMy7C6XnVxsIf+BqPhhC2xRjhkSzyqJLkR6QS+rAbAQVewDKpDgsj3o47x3lmOwbxnrTkG/BLJq+nJywfGYmrJd+VFfA7Wu3eKyvgNFyZV+A1ydgndfSJ+DkTfVfyzqDkmb8NX5h8ZCSeiKsxoySHfXki1jQb9TiWiTsRpTR5EhfnWTgWj+F5/9T7BqyUkusbyaSjplRGnxQM15UkX+B6XJbfV1rAEVKNk0w0R6rdlbhQKoEf5dJqn+lmo16TgmGu5JHVUhQPYHaX5OEEnNyNgJoYtwphKW7Cb1IJxUx2S9GxUa8LgWaj3ieV1zlSTM7HLCnJXsENtVpte6vVejm3DxTjjYOQ+6zB+vYbE3sghIj78JJkou+LmW7btCZnMudl0mdnEZ3jz8eMVqu1CU9hBY4sIYAUIN9KqdiFgGIl0gz25dnQbNSLclqUP2dIhqyNMUbEB1IJFbPamz9lVqDgsR/KCAh4ADdK0bgYS3ENnjB+iuzFD1iHd7BcMnjAbbhLComyWCsZf3NZAS1pw7pcqtWB/HsZrhiD/G5pqddKcbpeMvlIaziq9QY4XIrQ6V2QJx1RzuxGQMCvUp7Pkurws7bvq6Rk2oEhKftX4XOpVmNnlGbf7MIXOKtLAZuxqb2hjIA9UtmszKRez/eezQMeLR3QhmK0I4Rx87/APtyNT6SYLYN9eYK+7EbA4dJpchdezG1TMU0y3vI2oVNCMNA2yxMh4lWjH/pGw4jkwdjNUWIJru3iJf8mRvAW7m826jvLHiVmKH9WORg4RSrlFUVDZ65ukTar/yv2avtbyoErsA734FLlN7mDhWG8gY/aG8f6U99v7B31v0JLWoFYIuUqVKhQoUKFChUqHAr4C5raFbyiXgGBAAAAJXRFWHRkYXRlOmNyZWF0ZQAyMDE1LTA1LTI0VDE3OjAzOjEwKzAyOjAwYp9tzQAAACV0RVh0ZGF0ZTptb2RpZnkAMjAxNS0wNS0yNFQxNzowMzoxMCswMjowMBPC1XEAAAAASUVORK5CYII=]]></data>
	</file>
	<file>
	  <filename>/duplicate/images/index.html</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PCEtLSBEVU1NWSBIVE1MIEZJTEUgLS0+]]></data>
	</file>
	<file>
	  <filename>/duplicate/index.html</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[]]></data>
	</file>
	<file>
	  <filename>/duplicate/PLACE_HOLDER___.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBUaGlzIG1vZHVsZSBpcyBhbiBpbnN0YW5jZSBvZjoKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBMSVNFIC0gTGlzdCBJdCBTcGVjaWFsIEVkaXRpb24KIyBWZXJzaW9uIDEuMgojIEEgZm9yayBvZiBMaXN0STIKIyBtYWludGFpbmVkIGJ5IEZlcm5hbmRvIE1vcmdhZG8gQUtBIEpvIE1vcmcKIyBzaW5jZSAyMDE1CiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBPcmlnaW5hbCBBdXRob3I6IEJlbiBNYWxlbiwgPGJlbkBjb25jZXB0ZmFjdG9yeS5jb20uYXU+CiMgQ28tTWFpbnRhaW5lcjogU2ltb24gUmFkZm9yZCwgPHNpbW9uQGNvbmNlcHRmYWN0b3J5LmNvbS5hdT4KIyBXZWI6IHd3dy5jb25jZXB0ZmFjdG9yeS5jb20uYXUKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojCiMgTWFpbnRhaW5lciBzaW5jZSAyMDExIHVwIHRvIDIwMTQ6IEpvbmF0aGFuIFNjaG1pZCwgPGhpQGpvbmF0aGFuc2NobWlkLmRlPgojIFdlYjogd3d3LmpvbmF0aGFuc2NobWlkLmRlCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIwojIFNvbWUgd2Fja29zIHN0YXJ0ZWQgZGVzdHJveWluZyBzdHVmZiBzaW5jZSAyMDEyIGFuZCBzdG9wcGVkIGF0IDIwMTQ6CiMKIyBUYXBpbyBMw7Z5dHR5LCA8dGFwc2FAb3JhbmdlLW1lZGlhLmZpPgojIFdlYjogd3d3Lm9yYW5nZS1tZWRpYS5maQojCiMgR29yYW4gSWxpYywgPHVuaXF1M2VAZ21haWwuY29tPgojIFdlYjogd3d3LmljaC1tYWNoLWRhcy5hdAojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBMSVNFIGlzIGEgQ01TIE1hZGUgU2ltcGxlIG1vZHVsZSB0aGF0IGVuYWJsZXMgdGhlIHdlYiBkZXZlbG9wZXIgdG8gY3JlYXRlCiMgbXVsdGlwbGUgbGlzdHMgdGhyb3VnaG91dCBhIHNpdGUuIEl0IGNhbiBiZSBkdXBsaWNhdGVkIGFuZCBnaXZlbiBmcmllbmRseQojIG5hbWVzIGZvciBlYXNpZXIgY2xpZW50IG1haW50ZW5hbmNlLgojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiNCRUdJTl9MSUNFTlNFCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCiMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KIwojIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAojIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCiMgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQojIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCiMgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKIyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcgVVNBCiMgT3IgcmVhZCBpdCBvbmxpbmU6IGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9saWNlbnNlcy5odG1sI0dQTAojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiNFTkRfTElDRU5TRQokbCA9IFxjbXNfdXRpbHM6OmdldF9tb2R1bGUoJ0xJU0UnKTsKaWYoIGlzX29iamVjdCgkbCkgKXtjbGFzcyBQTEFDRV9IT0xERVJfX18gZXh0ZW5kcyBMSVNFSW5zdGFuY2V7fX0KZWxzZSB7Y2xhc3MgUExBQ0VfSE9MREVSX19fIGV4dGVuZHMgQ01TTW9kdWxle2Z1bmN0aW9uIEdldFZlcnNpb24oKXt9ZnVuY3Rpb24gR2V0RGVwZW5kZW5jaWVzKCl7cmV0dXJuIGFycmF5KCdMSVNFJyA9PiBWRVJTSU9OX19fKTt9fX0KPz4=]]></data>
	</file>
	<file>
	  <filename>/event.Core.ContentPostCompile.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHANCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQojIExJU0UgLSBMaXN0IEl0IFNwZWNpYWwgRWRpdGlvbg0KIyBWZXJzaW9uIDEuMg0KIyBBIGZvcmsgb2YgTGlzdEkyDQojIG1haW50YWluZWQgYnkgRmVybmFuZG8gTW9yZ2FkbyBBS0EgSm8gTW9yZw0KIyBzaW5jZSAyMDE1DQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIw0KIyBPcmlnaW5hbCBBdXRob3I6IEJlbiBNYWxlbiwgPGJlbkBjb25jZXB0ZmFjdG9yeS5jb20uYXU+DQojIENvLU1haW50YWluZXI6IFNpbW9uIFJhZGZvcmQsIDxzaW1vbkBjb25jZXB0ZmFjdG9yeS5jb20uYXU+DQojIFdlYjogd3d3LmNvbmNlcHRmYWN0b3J5LmNvbS5hdQ0KIw0KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCiMNCiMgTWFpbnRhaW5lciBzaW5jZSAyMDExIHVwIHRvIDIwMTQ6IEpvbmF0aGFuIFNjaG1pZCwgPGhpQGpvbmF0aGFuc2NobWlkLmRlPg0KIyBXZWI6IHd3dy5qb25hdGhhbnNjaG1pZC5kZQ0KIw0KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCiMNCiMgU29tZSB3YWNrb3Mgc3RhcnRlZCBkZXN0cm95aW5nIHN0dWZmIHNpbmNlIDIwMTIgYW5kIHN0b3BwZWQgYXQgMjAxNDoNCiMNCiMgVGFwaW8gTMO2eXR0eSwgPHRhcHNhQG9yYW5nZS1tZWRpYS5maT4NCiMgV2ViOiB3d3cub3JhbmdlLW1lZGlhLmZpDQojDQojIEdvcmFuIElsaWMsIDx1bmlxdTNlQGdtYWlsLmNvbT4NCiMgV2ViOiB3d3cuaWNoLW1hY2gtZGFzLmF0DQojDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIw0KIyBMSVNFIGlzIGEgQ01TIE1hZGUgU2ltcGxlIG1vZHVsZSB0aGF0IGVuYWJsZXMgdGhlIHdlYiBkZXZlbG9wZXIgdG8gY3JlYXRlDQojIG11bHRpcGxlIGxpc3RzIHRocm91Z2hvdXQgYSBzaXRlLiBJdCBjYW4gYmUgZHVwbGljYXRlZCBhbmQgZ2l2ZW4gZnJpZW5kbHkNCiMgbmFtZXMgZm9yIGVhc2llciBjbGllbnQgbWFpbnRlbmFuY2UuDQojDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIyBCRUdJTl9MSUNFTlNFDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIyBUaGlzIGZpbGUgaXMgcGFydCBvZiBMSVNFDQojIExJU0UgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5DQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5DQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yDQojIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uDQojDQojIExJU0UgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLA0KIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZg0KIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlDQojIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuDQojIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlDQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlDQojIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcgVVNBDQojIE9yIHJlYWQgaXQgb25saW5lOiBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwNCiMNCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQojIEVORF9MSUNFTlNFDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KaWYoICFkZWZpbmVkKCdDTVNfVkVSU0lPTicpICkgZXhpdDsNCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0NCiMgRmllbGQgc2Nhbm5lcg0KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KDQppZigkdGhpcy0+R2V0UHJlZmVyZW5jZSgnYWxsb3dfYXV0b3NjYW4nKSkNCglMSVNFRmllbGRkZWZPcGVyYXRpb25zOjpTY2FuTW9kdWxlcygpOw0KPz4NCg==]]></data>
	</file>
	<file>
	  <filename>/event.Core.ModuleInstalled.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHANCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQojIExJU0UgLSBMaXN0IEl0IFNwZWNpYWwgRWRpdGlvbg0KIyBWZXJzaW9uIDEuMg0KIyBBIGZvcmsgb2YgTGlzdEkyDQojIG1haW50YWluZWQgYnkgRmVybmFuZG8gTW9yZ2FkbyBBS0EgSm8gTW9yZw0KIyBzaW5jZSAyMDE1DQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIw0KIyBPcmlnaW5hbCBBdXRob3I6IEJlbiBNYWxlbiwgPGJlbkBjb25jZXB0ZmFjdG9yeS5jb20uYXU+DQojIENvLU1haW50YWluZXI6IFNpbW9uIFJhZGZvcmQsIDxzaW1vbkBjb25jZXB0ZmFjdG9yeS5jb20uYXU+DQojIFdlYjogd3d3LmNvbmNlcHRmYWN0b3J5LmNvbS5hdQ0KIw0KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCiMNCiMgTWFpbnRhaW5lciBzaW5jZSAyMDExIHVwIHRvIDIwMTQ6IEpvbmF0aGFuIFNjaG1pZCwgPGhpQGpvbmF0aGFuc2NobWlkLmRlPg0KIyBXZWI6IHd3dy5qb25hdGhhbnNjaG1pZC5kZQ0KIw0KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCiMNCiMgU29tZSB3YWNrb3Mgc3RhcnRlZCBkZXN0cm95aW5nIHN0dWZmIHNpbmNlIDIwMTIgYW5kIHN0b3BwZWQgYXQgMjAxNDoNCiMNCiMgVGFwaW8gTMO2eXR0eSwgPHRhcHNhQG9yYW5nZS1tZWRpYS5maT4NCiMgV2ViOiB3d3cub3JhbmdlLW1lZGlhLmZpDQojDQojIEdvcmFuIElsaWMsIDx1bmlxdTNlQGdtYWlsLmNvbT4NCiMgV2ViOiB3d3cuaWNoLW1hY2gtZGFzLmF0DQojDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIw0KIyBMSVNFIGlzIGEgQ01TIE1hZGUgU2ltcGxlIG1vZHVsZSB0aGF0IGVuYWJsZXMgdGhlIHdlYiBkZXZlbG9wZXIgdG8gY3JlYXRlDQojIG11bHRpcGxlIGxpc3RzIHRocm91Z2hvdXQgYSBzaXRlLiBJdCBjYW4gYmUgZHVwbGljYXRlZCBhbmQgZ2l2ZW4gZnJpZW5kbHkNCiMgbmFtZXMgZm9yIGVhc2llciBjbGllbnQgbWFpbnRlbmFuY2UuDQojDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIyBCRUdJTl9MSUNFTlNFDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIyBUaGlzIGZpbGUgaXMgcGFydCBvZiBMSVNFDQojIExJU0UgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5DQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5DQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yDQojIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uDQojDQojIExJU0UgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLA0KIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZg0KIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlDQojIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuDQojIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlDQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlDQojIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcgVVNBDQojIE9yIHJlYWQgaXQgb25saW5lOiBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwNCiMNCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQojIEVORF9MSUNFTlNFDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KDQoNCg0KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIyBGaWVsZCBzY2FubmVyDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQoNCmlmKCR0aGlzLT5HZXRQcmVmZXJlbmNlKCdhbGxvd19hdXRvc2NhbicpKQ0KCUxJU0VGaWVsZGRlZk9wZXJhdGlvbnM6OlNjYW5Nb2R1bGVzKCk7DQoNCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0NCiMgTW9kdWxlIE1vZGUgc3R1ZmYNCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0NCg0KaWYoIGlzc2V0KCRfU0VTU0lPTlsnX2luc3RhbGxfbW9kdWxlX21vZGVfJ10pICkNCnsNCgkkbW9kZSA9ICAkX1NFU1NJT05bJ19pbnN0YWxsX21vZHVsZV9tb2RlXyddOw0KCSRtb2RfbmFtZSA9ICRfU0VTU0lPTlsnX2luc3RhbGxfbW9kdWxlX25hbWUnXTsNCgkNCgkkbW9kID0gXGNtc191dGlsczo6Z2V0X21vZHVsZSgkbW9kX25hbWUpOw0KCQ0KCWlmKCBpc19vYmplY3QoJG1vZCkgKQ0KCXsNCgkJJG1vZC0+U2V0TW9kZSgkbW9kZSk7DQoJfQ0KCQ0KCXVuc2V0KA0KCQkkX1NFU1NJT05bJ19pbnN0YWxsX21vZHVsZV9tb2RlXyddLA0KCQkkX1NFU1NJT05bJ19pbnN0YWxsX21vZHVsZV9uYW1lJ10NCgkpOw0KfQ0KDQoNCg0KPz4NCg==]]></data>
	</file>
	<file>
	  <filename>/event.Core.ModuleUninstalled.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHANCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQojIExJU0UgLSBMaXN0IEl0IFNwZWNpYWwgRWRpdGlvbg0KIyBWZXJzaW9uIDEuMg0KIyBBIGZvcmsgb2YgTGlzdEkyDQojIG1haW50YWluZWQgYnkgRmVybmFuZG8gTW9yZ2FkbyBBS0EgSm8gTW9yZw0KIyBzaW5jZSAyMDE1DQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIw0KIyBPcmlnaW5hbCBBdXRob3I6IEJlbiBNYWxlbiwgPGJlbkBjb25jZXB0ZmFjdG9yeS5jb20uYXU+DQojIENvLU1haW50YWluZXI6IFNpbW9uIFJhZGZvcmQsIDxzaW1vbkBjb25jZXB0ZmFjdG9yeS5jb20uYXU+DQojIFdlYjogd3d3LmNvbmNlcHRmYWN0b3J5LmNvbS5hdQ0KIw0KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCiMNCiMgTWFpbnRhaW5lciBzaW5jZSAyMDExIHVwIHRvIDIwMTQ6IEpvbmF0aGFuIFNjaG1pZCwgPGhpQGpvbmF0aGFuc2NobWlkLmRlPg0KIyBXZWI6IHd3dy5qb25hdGhhbnNjaG1pZC5kZQ0KIw0KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCiMNCiMgU29tZSB3YWNrb3Mgc3RhcnRlZCBkZXN0cm95aW5nIHN0dWZmIHNpbmNlIDIwMTIgYW5kIHN0b3BwZWQgYXQgMjAxNDoNCiMNCiMgVGFwaW8gTMO2eXR0eSwgPHRhcHNhQG9yYW5nZS1tZWRpYS5maT4NCiMgV2ViOiB3d3cub3JhbmdlLW1lZGlhLmZpDQojDQojIEdvcmFuIElsaWMsIDx1bmlxdTNlQGdtYWlsLmNvbT4NCiMgV2ViOiB3d3cuaWNoLW1hY2gtZGFzLmF0DQojDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIw0KIyBMSVNFIGlzIGEgQ01TIE1hZGUgU2ltcGxlIG1vZHVsZSB0aGF0IGVuYWJsZXMgdGhlIHdlYiBkZXZlbG9wZXIgdG8gY3JlYXRlDQojIG11bHRpcGxlIGxpc3RzIHRocm91Z2hvdXQgYSBzaXRlLiBJdCBjYW4gYmUgZHVwbGljYXRlZCBhbmQgZ2l2ZW4gZnJpZW5kbHkNCiMgbmFtZXMgZm9yIGVhc2llciBjbGllbnQgbWFpbnRlbmFuY2UuDQojDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIyBCRUdJTl9MSUNFTlNFDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIyBUaGlzIGZpbGUgaXMgcGFydCBvZiBMSVNFDQojIExJU0UgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5DQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5DQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yDQojIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uDQojDQojIExJU0UgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLA0KIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZg0KIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlDQojIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuDQojIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlDQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlDQojIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcgVVNBDQojIE9yIHJlYWQgaXQgb25saW5lOiBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwNCiMNCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQojIEVORF9MSUNFTlNFDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KDQppZiggIWRlZmluZWQoJ0NNU19WRVJTSU9OJykgKSBleGl0Ow0KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIyBGaWVsZCBzY2FubmVyDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQoNCmlmKCR0aGlzLT5HZXRQcmVmZXJlbmNlKCdhbGxvd19hdXRvc2NhbicpKQ0KCUxJU0VGaWVsZGRlZk9wZXJhdGlvbnM6OlNjYW5Nb2R1bGVzKCk7DQoNCj8+DQo=]]></data>
	</file>
	<file>
	  <filename>/event.Core.ModuleUpgraded.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHANCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQojIExJU0UgLSBMaXN0IEl0IFNwZWNpYWwgRWRpdGlvbg0KIyBWZXJzaW9uIDEuMg0KIyBBIGZvcmsgb2YgTGlzdEkyDQojIG1haW50YWluZWQgYnkgRmVybmFuZG8gTW9yZ2FkbyBBS0EgSm8gTW9yZw0KIyBzaW5jZSAyMDE1DQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIw0KIyBPcmlnaW5hbCBBdXRob3I6IEJlbiBNYWxlbiwgPGJlbkBjb25jZXB0ZmFjdG9yeS5jb20uYXU+DQojIENvLU1haW50YWluZXI6IFNpbW9uIFJhZGZvcmQsIDxzaW1vbkBjb25jZXB0ZmFjdG9yeS5jb20uYXU+DQojIFdlYjogd3d3LmNvbmNlcHRmYWN0b3J5LmNvbS5hdQ0KIw0KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCiMNCiMgTWFpbnRhaW5lciBzaW5jZSAyMDExIHVwIHRvIDIwMTQ6IEpvbmF0aGFuIFNjaG1pZCwgPGhpQGpvbmF0aGFuc2NobWlkLmRlPg0KIyBXZWI6IHd3dy5qb25hdGhhbnNjaG1pZC5kZQ0KIw0KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCiMNCiMgU29tZSB3YWNrb3Mgc3RhcnRlZCBkZXN0cm95aW5nIHN0dWZmIHNpbmNlIDIwMTIgYW5kIHN0b3BwZWQgYXQgMjAxNDoNCiMNCiMgVGFwaW8gTMO2eXR0eSwgPHRhcHNhQG9yYW5nZS1tZWRpYS5maT4NCiMgV2ViOiB3d3cub3JhbmdlLW1lZGlhLmZpDQojDQojIEdvcmFuIElsaWMsIDx1bmlxdTNlQGdtYWlsLmNvbT4NCiMgV2ViOiB3d3cuaWNoLW1hY2gtZGFzLmF0DQojDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIw0KIyBMSVNFIGlzIGEgQ01TIE1hZGUgU2ltcGxlIG1vZHVsZSB0aGF0IGVuYWJsZXMgdGhlIHdlYiBkZXZlbG9wZXIgdG8gY3JlYXRlDQojIG11bHRpcGxlIGxpc3RzIHRocm91Z2hvdXQgYSBzaXRlLiBJdCBjYW4gYmUgZHVwbGljYXRlZCBhbmQgZ2l2ZW4gZnJpZW5kbHkNCiMgbmFtZXMgZm9yIGVhc2llciBjbGllbnQgbWFpbnRlbmFuY2UuDQojDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIyBCRUdJTl9MSUNFTlNFDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIyBUaGlzIGZpbGUgaXMgcGFydCBvZiBMSVNFDQojIExJU0UgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5DQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5DQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yDQojIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uDQojDQojIExJU0UgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLA0KIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZg0KIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlDQojIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuDQojIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlDQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlDQojIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcgVVNBDQojIE9yIHJlYWQgaXQgb25saW5lOiBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwNCiMNCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQojIEVORF9MSUNFTlNFDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KDQppZiggIWRlZmluZWQoJ0NNU19WRVJTSU9OJykgKSBleGl0Ow0KDQoNCg0KDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQojIEhhbmRsZSBjaGlsZCBjbG9uaW5nDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQoNCiRtb2R1bGVzID0gJHRoaXMtPkxpc3RNb2R1bGVzKCk7DQpmb3JlYWNoKCRtb2R1bGVzIGFzICRtb2R1bGUpIHsNCg0KCWlmKCRtb2R1bGUtPm1vZHVsZV9uYW1lID09PSAkcGFyYW1zWyduYW1lJ10pIHsNCg0KCQkkZHVwbGljYXRvciA9IG5ldyBMSVNFRHVwbGljYXRvcigpOw0KCQkkZHVwbGljYXRvci0+U2V0TW9kdWxlKCRtb2R1bGUtPm1vZHVsZV9uYW1lKTsNCgkJJGR1cGxpY2F0b3ItPlNldERlc3RpbmF0aW9uKGRpcm5hbWUoZGlybmFtZShfX0ZJTEVfXykpIC4gRElSRUNUT1JZX1NFUEFSQVRPUiAuICRtb2R1bGUtPm1vZHVsZV9uYW1lKTsNCgkJJGR1cGxpY2F0b3ItPlJ1bigpOw0KCQkNCgkJYnJlYWs7DQoJfQ0KfQ0KDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQojIEZpZWxkIHNjYW5uZXINCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0NCg0KaWYoJHRoaXMtPkdldFByZWZlcmVuY2UoJ2FsbG93X2F1dG9zY2FuJykpDQoJTElTRUZpZWxkZGVmT3BlcmF0aW9uczo6U2Nhbk1vZHVsZXMoKTsNCg0KPz4NCg==]]></data>
	</file>
	<file>
	  <filename>/framework</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/framework/action.admin_approvecategory.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBMSVNFIC0gTGlzdCBJdCBTcGVjaWFsIEVkaXRpb24KIyBWZXJzaW9uIDEuMgojIEEgZm9yayBvZiBMaXN0STIKIyBtYWludGFpbmVkIGJ5IEZlcm5hbmRvIE1vcmdhZG8gQUtBIEpvIE1vcmcKIyBzaW5jZSAyMDE1CiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBPcmlnaW5hbCBBdXRob3I6IEJlbiBNYWxlbiwgPGJlbkBjb25jZXB0ZmFjdG9yeS5jb20uYXU+CiMgQ28tTWFpbnRhaW5lcjogU2ltb24gUmFkZm9yZCwgPHNpbW9uQGNvbmNlcHRmYWN0b3J5LmNvbS5hdT4KIyBXZWI6IHd3dy5jb25jZXB0ZmFjdG9yeS5jb20uYXUKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojCiMgTWFpbnRhaW5lciBzaW5jZSAyMDExIHVwIHRvIDIwMTQ6IEpvbmF0aGFuIFNjaG1pZCwgPGhpQGpvbmF0aGFuc2NobWlkLmRlPgojIFdlYjogd3d3LmpvbmF0aGFuc2NobWlkLmRlCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIwojIFNvbWUgd2Fja29zIHN0YXJ0ZWQgZGVzdHJveWluZyBzdHVmZiBzaW5jZSAyMDEyIGFuZCBzdG9wcGVkIGF0IDIwMTQ6CiMKIyBUYXBpbyBMw7Z5dHR5LCA8dGFwc2FAb3JhbmdlLW1lZGlhLmZpPgojIFdlYjogd3d3Lm9yYW5nZS1tZWRpYS5maQojCiMgR29yYW4gSWxpYywgPHVuaXF1M2VAZ21haWwuY29tPgojIFdlYjogd3d3LmljaC1tYWNoLWRhcy5hdAojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBMSVNFIGlzIGEgQ01TIE1hZGUgU2ltcGxlIG1vZHVsZSB0aGF0IGVuYWJsZXMgdGhlIHdlYiBkZXZlbG9wZXIgdG8gY3JlYXRlCiMgbXVsdGlwbGUgbGlzdHMgdGhyb3VnaG91dCBhIHNpdGUuIEl0IGNhbiBiZSBkdXBsaWNhdGVkIGFuZCBnaXZlbiBmcmllbmRseQojIG5hbWVzIGZvciBlYXNpZXIgY2xpZW50IG1haW50ZW5hbmNlLgojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgQkVHSU5fTElDRU5TRQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIExJU0UKIyBMSVNFIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgTElTRSBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBFTkRfTElDRU5TRQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKaWYoICFkZWZpbmVkKCdDTVNfVkVSU0lPTicpICkgZXhpdDsKaWYgKCEkdGhpcy0+Q2hlY2tQZXJtaXNzaW9uKCR0aGlzLT5fR2V0TW9kdWxlQWxpYXMoKSAuICdfbW9kaWZ5X2NhdGVnb3J5JykpIHJldHVybjsKCmlmKCFpc3NldCgkcGFyYW1zWydhcHByb3ZlJ10pIHx8ICFpc3NldCgkcGFyYW1zWydjYXRlZ29yeV9pZCddKSkKewoJZGllKCdtaXNzaW5nIHBhcmFtZXRlciwgdGhpcyBzaG91bGQgbm90IGhhcHBlbicpOwp9CgokY2F0ZWdvcnlfaWQgPSAoaW50KSRwYXJhbXNbJ2NhdGVnb3J5X2lkJ107CiRhY3RpdmUgPSAoYm9vbCkkcGFyYW1zWydhcHByb3ZlJ107CgokcXVlcnkgPSAnVVBEQVRFICcgLiBjbXNfZGJfcHJlZml4KCkgLiAnbW9kdWxlXycgLiAkdGhpcy0+X0dldE1vZHVsZUFsaWFzKCkgLiAnX2NhdGVnb3J5IFNFVCBhY3RpdmUgPSA/IFdIRVJFIGNhdGVnb3J5X2lkID0gPyc7CiRkYi0+RXhlY3V0ZSgkcXVlcnksIGFycmF5KCRhY3RpdmUsICRjYXRlZ29yeV9pZCkpOwoKJGFkbWludGhlbWUgPSBjbXNfdXRpbHM6OmdldF90aGVtZV9vYmplY3QoKTsKJGpzb24gPSBuZXcgc3RkQ2xhc3M7CgppZiAoJGFjdGl2ZSkgewoKCSRqc29uLT5pbWFnZSA9ICRhZG1pbnRoZW1lLT5EaXNwbGF5SW1hZ2UoJ2ljb25zL3N5c3RlbS90cnVlLmdpZicsICR0aGlzLT5Nb2RMYW5nKCdyZXZlcnQnKSwgJycsICcnLCAnc3lzdGVtaWNvbicpOwoJJGpzb24tPmhyZWYgPSAkdGhpcy0+Q3JlYXRlTGluaygkaWQsICdhZG1pbl9hcHByb3ZlY2F0ZWdvcnknLCAkcmV0dXJuaWQsICcnLCBhcnJheSgnYXBwcm92ZScgPT4gMCwnY2F0ZWdvcnlfaWQnID0+ICRjYXRlZ29yeV9pZCksICcnLCB0cnVlKTsKfSBlbHNlIHsKCgkkanNvbi0+aW1hZ2UgPSAkYWRtaW50aGVtZS0+RGlzcGxheUltYWdlKCdpY29ucy9zeXN0ZW0vZmFsc2UuZ2lmJywgJHRoaXMtPk1vZExhbmcoJ2FwcHJvdmUnKSwgJycsICcnLCAnc3lzdGVtaWNvbicpOwoJJGpzb24tPmhyZWYgPSAkdGhpcy0+Q3JlYXRlTGluaygkaWQsICdhZG1pbl9hcHByb3ZlY2F0ZWdvcnknLCAkcmV0dXJuaWQsICcnLGFycmF5KCdhcHByb3ZlJyA9PiAxLCdjYXRlZ29yeV9pZCcgPT4gJGNhdGVnb3J5X2lkKSwgJycsIHRydWUpOwp9CgovLyBGaXggVVJMIGZvciBKU09OIG91dHB1dAokanNvbi0+aHJlZiA9IGh0bWxfZW50aXR5X2RlY29kZSgkanNvbi0+aHJlZik7CgpoZWFkZXIoIkNvbnRlbnQtdHlwZTphcHBsaWNhdGlvbi9qc29uOyBjaGFyc2V0PXV0Zi04Iik7CgokaGFuZGxlcnMgPSBvYl9saXN0X2hhbmRsZXJzKCk7IApmb3IgKCRjbnQgPSAwOyAkY250IDwgc2l6ZW9mKCRoYW5kbGVycyk7ICRjbnQrKykgeyBvYl9lbmRfY2xlYW4oKTsgfQoKZWNobyBqc29uX2VuY29kZSgkanNvbik7CmV4aXQoKTsKPz4=]]></data>
	</file>
	<file>
	  <filename>/framework/action.admin_approveitem.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBMSVNFIC0gTGlzdCBJdCBTcGVjaWFsIEVkaXRpb24KIyBWZXJzaW9uIDEuMgojIEEgZm9yayBvZiBMaXN0STIKIyBtYWludGFpbmVkIGJ5IEZlcm5hbmRvIE1vcmdhZG8gQUtBIEpvIE1vcmcKIyBzaW5jZSAyMDE1CiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBPcmlnaW5hbCBBdXRob3I6IEJlbiBNYWxlbiwgPGJlbkBjb25jZXB0ZmFjdG9yeS5jb20uYXU+CiMgQ28tTWFpbnRhaW5lcjogU2ltb24gUmFkZm9yZCwgPHNpbW9uQGNvbmNlcHRmYWN0b3J5LmNvbS5hdT4KIyBXZWI6IHd3dy5jb25jZXB0ZmFjdG9yeS5jb20uYXUKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojCiMgTWFpbnRhaW5lciBzaW5jZSAyMDExIHVwIHRvIDIwMTQ6IEpvbmF0aGFuIFNjaG1pZCwgPGhpQGpvbmF0aGFuc2NobWlkLmRlPgojIFdlYjogd3d3LmpvbmF0aGFuc2NobWlkLmRlCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIwojIFNvbWUgd2Fja29zIHN0YXJ0ZWQgZGVzdHJveWluZyBzdHVmZiBzaW5jZSAyMDEyIGFuZCBzdG9wcGVkIGF0IDIwMTQ6CiMKIyBUYXBpbyBMw7Z5dHR5LCA8dGFwc2FAb3JhbmdlLW1lZGlhLmZpPgojIFdlYjogd3d3Lm9yYW5nZS1tZWRpYS5maQojCiMgR29yYW4gSWxpYywgPHVuaXF1M2VAZ21haWwuY29tPgojIFdlYjogd3d3LmljaC1tYWNoLWRhcy5hdAojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBMSVNFIGlzIGEgQ01TIE1hZGUgU2ltcGxlIG1vZHVsZSB0aGF0IGVuYWJsZXMgdGhlIHdlYiBkZXZlbG9wZXIgdG8gY3JlYXRlCiMgbXVsdGlwbGUgbGlzdHMgdGhyb3VnaG91dCBhIHNpdGUuIEl0IGNhbiBiZSBkdXBsaWNhdGVkIGFuZCBnaXZlbiBmcmllbmRseQojIG5hbWVzIGZvciBlYXNpZXIgY2xpZW50IG1haW50ZW5hbmNlLgojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgQkVHSU5fTElDRU5TRQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIExJU0UKIyBMSVNFIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgTElTRSBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBFTkRfTElDRU5TRQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKaWYoICFkZWZpbmVkKCdDTVNfVkVSU0lPTicpICkgZXhpdDsKaWYgKCEkdGhpcy0+Q2hlY2tQZXJtaXNzaW9uKCR0aGlzLT5fR2V0TW9kdWxlQWxpYXMoKSAuICdfbW9kaWZ5X2l0ZW0nKSkgcmV0dXJuOwoKaWYoIWlzc2V0KCRwYXJhbXNbJ2FwcHJvdmUnXSkgfHwgIWlzc2V0KCRwYXJhbXNbJ2l0ZW1faWQnXSkpCnsKCWRpZSgnbWlzc2luZyBwYXJhbWV0ZXIsIHRoaXMgc2hvdWxkIG5vdCBoYXBwZW4nKTsKfQoKJGl0ZW1faWQgPSAoaW50KSRwYXJhbXNbJ2l0ZW1faWQnXTsKJGFjdGl2ZSA9IChib29sKSRwYXJhbXNbJ2FwcHJvdmUnXTsKCiRxdWVyeSA9ICdVUERBVEUgJyAuIGNtc19kYl9wcmVmaXgoKSAuICdtb2R1bGVfJyAuICR0aGlzLT5fR2V0TW9kdWxlQWxpYXMoKSAuICdfaXRlbSBTRVQgYWN0aXZlID0gPyBXSEVSRSBpdGVtX2lkID0gPyc7CiRkYi0+RXhlY3V0ZSgkcXVlcnksIGFycmF5KCRhY3RpdmUsICRpdGVtX2lkKSk7CgokaGFuZGxlcnMgPSBvYl9saXN0X2hhbmRsZXJzKCk7IApmb3IgKCRjbnQgPSAwOyAkY250IDwgc2l6ZW9mKCRoYW5kbGVycyk7ICRjbnQrKykgeyBvYl9lbmRfY2xlYW4oKTsgfQoKJGFkbWludGhlbWUgPSBjbXNfdXRpbHM6OmdldF90aGVtZV9vYmplY3QoKTsKJGpzb24gPSBuZXcgc3RkQ2xhc3M7CgppZiAoJGFjdGl2ZSkgewoKCSRqc29uLT5pbWFnZSA9ICRhZG1pbnRoZW1lLT5EaXNwbGF5SW1hZ2UoJ2ljb25zL3N5c3RlbS90cnVlLmdpZicsICR0aGlzLT5Nb2RMYW5nKCdyZXZlcnQnKSwgJycsICcnLCAnc3lzdGVtaWNvbicpOwoJJGpzb24tPmhyZWYgPSAkdGhpcy0+Q3JlYXRlTGluaygkaWQsICdhZG1pbl9hcHByb3ZlaXRlbScsICRyZXR1cm5pZCwgJycsIGFycmF5KCdhcHByb3ZlJyA9PiAwLCdpdGVtX2lkJyA9PiAkaXRlbV9pZCksICcnLCB0cnVlKTsKfSBlbHNlIHsKCgkkanNvbi0+aW1hZ2UgPSAkYWRtaW50aGVtZS0+RGlzcGxheUltYWdlKCdpY29ucy9zeXN0ZW0vZmFsc2UuZ2lmJywgJHRoaXMtPk1vZExhbmcoJ2FwcHJvdmUnKSwgJycsICcnLCAnc3lzdGVtaWNvbicpOwoJJGpzb24tPmhyZWYgPSAkdGhpcy0+Q3JlYXRlTGluaygkaWQsICdhZG1pbl9hcHByb3ZlaXRlbScsICRyZXR1cm5pZCwgJycsYXJyYXkoJ2FwcHJvdmUnID0+IDEsJ2l0ZW1faWQnID0+ICRpdGVtX2lkKSwgJycsIHRydWUpOwp9CgovLyBGaXggVVJMIGZvciBKU09OIG91dHB1dAokanNvbi0+aHJlZiA9IGh0bWxfZW50aXR5X2RlY29kZSgkanNvbi0+aHJlZik7CgpoZWFkZXIoIkNvbnRlbnQtdHlwZTphcHBsaWNhdGlvbi9qc29uOyBjaGFyc2V0PXV0Zi04Iik7CgokaGFuZGxlcnMgPSBvYl9saXN0X2hhbmRsZXJzKCk7IApmb3IgKCRjbnQgPSAwOyAkY250IDwgc2l6ZW9mKCRoYW5kbGVycyk7ICRjbnQrKykgeyBvYl9lbmRfY2xlYW4oKTsgfQoKZWNobyBqc29uX2VuY29kZSgkanNvbik7CmV4aXQoKTsKPz4=]]></data>
	</file>
	<file>
	  <filename>/framework/action.admin_cvs_export_ajax.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHANCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQojIExJU0UgLSBMaXN0IEl0IFNwZWNpYWwgRWRpdGlvbg0KIyBWZXJzaW9uIDEuMg0KIyBBIGZvcmsgb2YgTGlzdEkyDQojIG1haW50YWluZWQgYnkgRmVybmFuZG8gTW9yZ2FkbyBBS0EgSm8gTW9yZw0KIyBzaW5jZSAyMDE1DQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIw0KIyBPcmlnaW5hbCBBdXRob3I6IEJlbiBNYWxlbiwgPGJlbkBjb25jZXB0ZmFjdG9yeS5jb20uYXU+DQojIENvLU1haW50YWluZXI6IFNpbW9uIFJhZGZvcmQsIDxzaW1vbkBjb25jZXB0ZmFjdG9yeS5jb20uYXU+DQojIFdlYjogd3d3LmNvbmNlcHRmYWN0b3J5LmNvbS5hdQ0KIw0KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCiMNCiMgTWFpbnRhaW5lciBzaW5jZSAyMDExIHVwIHRvIDIwMTQ6IEpvbmF0aGFuIFNjaG1pZCwgPGhpQGpvbmF0aGFuc2NobWlkLmRlPg0KIyBXZWI6IHd3dy5qb25hdGhhbnNjaG1pZC5kZQ0KIw0KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCiMNCiMgU29tZSB3YWNrb3Mgc3RhcnRlZCBkZXN0cm95aW5nIHN0dWZmIHNpbmNlIDIwMTIgYW5kIHN0b3BwZWQgYXQgMjAxNDoNCiMNCiMgVGFwaW8gTMO2eXR0eSwgPHRhcHNhQG9yYW5nZS1tZWRpYS5maT4NCiMgV2ViOiB3d3cub3JhbmdlLW1lZGlhLmZpDQojDQojIEdvcmFuIElsaWMsIDx1bmlxdTNlQGdtYWlsLmNvbT4NCiMgV2ViOiB3d3cuaWNoLW1hY2gtZGFzLmF0DQojDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIw0KIyBMSVNFIGlzIGEgQ01TIE1hZGUgU2ltcGxlIG1vZHVsZSB0aGF0IGVuYWJsZXMgdGhlIHdlYiBkZXZlbG9wZXIgdG8gY3JlYXRlDQojIG11bHRpcGxlIGxpc3RzIHRocm91Z2hvdXQgYSBzaXRlLiBJdCBjYW4gYmUgZHVwbGljYXRlZCBhbmQgZ2l2ZW4gZnJpZW5kbHkNCiMgbmFtZXMgZm9yIGVhc2llciBjbGllbnQgbWFpbnRlbmFuY2UuDQojDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIyBCRUdJTl9MSUNFTlNFDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIyBUaGlzIGZpbGUgaXMgcGFydCBvZiBMSVNFDQojIExJU0UgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5DQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5DQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yDQojIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uDQojDQojIExJU0UgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLA0KIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZg0KIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlDQojIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuDQojIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlDQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlDQojIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcgVVNBDQojIE9yIHJlYWQgaXQgb25saW5lOiBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwNCiMNCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQojIEVORF9MSUNFTlNFDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KJG91dCA9IFsNCiAgJ21zZycgICAgID0+ICdvaycsDQogICdlcnJvcicgICA9PiAwLA0KICAnY29udGVudCcgPT4gW10sDQogICd0eXBlJyA9PiAnYXJyYXknLA0KICAncGFyYW1zJyAgPT4gJHBhcmFtcw0KXTsNCg0KJGhhbmRsZXJzID0gb2JfbGlzdF9oYW5kbGVycygpOw0KZm9yKCRjbnQgPSAwOyAkY250IDwgc2l6ZW9mKCRoYW5kbGVycyk7ICRjbnQrKykgeyBvYl9lbmRfY2xlYW4oKTsgfQ0KDQppZiggIWRlZmluZWQoJ0NNU19WRVJTSU9OJykgKQ0Kew0KICBoZWFkZXIoJ0hUVFAvMS4xIDQwMyBGb3JiaWRkZW4hJyk7DQogIGhlYWRlcignQ29udGVudC1UeXBlOiBhcHBsaWNhdGlvbi9qc29uOyBjaGFyc2V0PVVURi04Jyk7DQogICRvdXRbJ21zZyddID0gJ0ZvcmJpZGRlbic7DQogICRvdXRbJ2Vycm9yJ10gPSA4MDA4NTsNCiAgZGllKCBqc29uX2VuY29kZSgkb3V0KSApOw0KfQ0KDQoNCiRjc3ZfZmlsZSA9IGNtc19qb2luX3BhdGgoVE1QX0NBQ0hFX0xPQ0FUSU9OLCAkdGhpcy0+R2V0TmFtZSgpIC4gJ19DU1ZfRklMRS5jc3YnKTsNCiRzZXBhcmF0b3IgICAgID0gICR0aGlzLT5HZXRQcmVmZXJlbmNlKCdzZXBhcmF0b3InLCAnLCcpOw0KJGVuY2xvc3VyZSAgICAgPSAgJHRoaXMtPkdldFByZWZlcmVuY2UoJ2VuY2xvc3VyZScsICciJyk7DQokaW1wb3J0X3ZhbHVlcyA9IHVuc2VyaWFsaXplKCAkdGhpcy0+R2V0UHJlZmVyZW5jZSgnaW1wb3J0X3ZhbHVlcycpICk7DQojIHJlbW92ZSBub24tbWF0Y2hpbmcgY29sdW1ucw0KJGltcG9ydF92YWx1ZXMgPSBhcnJheV9maWx0ZXIoJGltcG9ydF92YWx1ZXMpOw0KJGRiID0gXGNtc191dGlsczo6Z2V0X2RiKCk7DQoNCmlmKGlzc2V0KCRwYXJhbXNbJ3dzdHAnXSkpDQp7DQogICR3aXphcmRfc3RlcCAgPSAoaW50KSAkcGFyYW1zWyd3c3RwJ107DQogIA0KICBzd2l0Y2ggKCR3aXphcmRfc3RlcCkNCiAgew0KICAgICMgc3RlcCAwOiBpbXBvcnQgdGhlIGNzdiB0byBhIHRlbXAgZGIgdGFibGUgYW5kIHJldHVybiBjb3VudCBpdGVtcw0KICAgIGNhc2UgMDoNCiAgICAgICAgICAgIC8vJG91dFsnY29udGVudCddWydsaW5lcyddID0gJHJvd3MgLSAxOw0KICAgICAgICBicmVhazsNCiAgICAgICAgDQogICAgIyBkbyB0aGUgYWN0dWFsIGltcG9ydGluZyB0byB0aGUgaW5zdGFuY2UgdGFibGVzDQogICAgY2FzZSAxOg0KICAgICAgICAgICAgaWYoIGlzc2V0KCRwYXJhbXNbJ29mZnNldCddLCAkcGFyYW1zWydzdGVwJ10pICkNCiAgICAgICAgICAgIHsNCi8vICAgICAgICAgICAgICAkc3FsID0gJ1NIT1cgQ09MVU1OUyBGUk9NIHRlbXBfbGlzZV9jc3ZfaW1wb3J0X2RhdGEnOw0KLy8NCi8vICAgICAgICAgICAgICAkciA9ICRkYi0+R2V0QXJyYXkoJHNxbCk7DQovLw0KLy8gICAgICAgICAgICAgIGlmKCRkYi0+RXJyb3JObygpID4gMCkNCi8vICAgICAgICAgICAgICB7DQovLyAgICAgICAgICAgICAgICAkb3V0WydlcnJvciddID0gJGRiLT5FcnJvck5vKCk7DQovLyAgICAgICAgICAgICAgICAkb3V0Wydtc2cnXSA9ICRkYi0+RXJyb3JNc2coKTsNCi8vICAgICAgICAgICAgICAgIGJyZWFrOw0KLy8gICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgDQovLyAgICAgICAgICAgICAgJGhlYWRlcnMgPSBbXTsNCi8vDQovLyAgICAgICAgICAgICAgZm9yZWFjaCgkciBhcyAkb25lKQ0KLy8gICAgICAgICAgICAgIHsNCi8vICAgICAgICAgICAgICAgIGlmKCdsaXNlX3RtcF9pZCcgPT09ICRvbmVbJ0ZpZWxkJ10pIHsgY29udGludWU7IH0NCi8vICAgICAgICAgICAgICAgICRoZWFkZXJzW10gPSAkb25lWydGaWVsZCddOw0KLy8gICAgICAgICAgICAgIH0NCiAgDQogICAgICAgICAgICAgICRkYXRhYmFzZV92YWx1ZXMgPSBbXTsNCiAgICAgICAgICAgICAgJF9pbnZhbGlkX3ZhbHVlcyA9IFsnY3JlYXRlX3RpbWUnLCAnbW9kaWZpZWRfdGltZSddOw0KICAgICAgICAgICAgICAkZGF0YWJhc2VfdmFsdWVzID0gXExJU0VcYXBpOjpnZXRJbnN0YW5jZSgpOjpHZXRGaWVsZHNSZXF1aXJlbWVudHMoVFJVRSk7DQogICAgICAgICAgICAgICRmaWVsZHMgPSBhcnJheV92YWx1ZXMoJGltcG9ydF92YWx1ZXMpOw0KICANCiAgICAgICAgICAgICAgJHN0YXJ0ID0gKGludCkkcGFyYW1zWydvZmZzZXQnXTsNCiAgICAgICAgICAgICAgJGVuZCA9IChpbnQpKCRzdGFydCArICRwYXJhbXNbJ3N0ZXAnXSAtIDEpOw0KICANCiAgICAgICAgICAgICAgJHNxbCA9ICdTRUxFQ1QgJzsNCiAgICAgICAgICAgICAgJHNxbCAuPSBpbXBsb2RlKCcsJywgJGZpZWxkcyk7DQogICAgICAgICAgICAgICRzcWwgLj0gJyBGUk9NIHRlbXBfbGlzZV9jc3ZfaW1wb3J0X2RhdGEgV0hFUkUgbGlzZV90bXBfaWQgQkVUV0VFTiAnOw0KICAgICAgICAgICAgICAkc3FsIC49ICRzdGFydCAuICcgQU5EICcgLiAkZW5kOw0KICANCiAgICAgICAgICAgICAgJHIgPSAkZGItPkdldEFycmF5KCRzcWwpOw0KICANCiAgICAgICAgICAgICAgaWYoJGRiLT5FcnJvck5vKCkgPiAwKQ0KICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgJG91dFsnZXJyb3InXSA9ICRkYi0+RXJyb3JObygpOw0KICAgICAgICAgICAgICAgICRvdXRbJ21zZyddID0gJGRiLT5FcnJvck1zZygpOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgIA0KICAgICAgICAgICAgICBmb3JlYWNoKCRyIGFzICRvbmUpDQogICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAvLyBJbXBvcnQgZGF0YSB0byBkYXRhYmFzZQ0KICAgICAgICAgICAgICAgICRvYmogPSAkdGhpcy0+SW5pdGlhdGVJdGVtKCk7DQogIA0KICAgICAgICAgICAgICAgIGZvcmVhY2goJGltcG9ydF92YWx1ZXMgYXMgJGFsaWFzID0+ICRmaWVsZF9uYW1lKQ0KICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgIGlmKCdpdGVtX2lkJyA9PT0gJGFsaWFzICYmICFpc19udW1lcmljKCRvbmVbJGZpZWxkX25hbWVdKSApIHsgY29udGludWU7IH0NCiAgICANCiAgICAgICAgICAgICAgICAgICRvYmotPlNldFByb3BlcnR5VmFsdWUoICRhbGlhcywgaHRtbF9lbnRpdHlfZGVjb2RlKCRvbmVbJGZpZWxkX25hbWVdKSApOw0KICAgIA0KICAgICAgICAgICAgICAgICAgIyBUcnkgbG9hZGluZyBpdGVtIGlmIHdlIGFjdHVhbGx5IGdvdCBJRC4NCiAgICAgICAgICAgICAgICAgIGlmKCdpdGVtX2lkJyA9PT0gJGFsaWFzKQ0KICAgICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICBMSVNFSXRlbU9wZXJhdGlvbnM6OkxvYWQoJHRoaXMsICRvYmopOw0KICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIH0NCiAgDQogICAgICAgICAgICAgICAgJHRoaXMtPlNhdmVJdGVtKCRvYmopOw0KICANCiAgICAgICAgICAgICAgICB1bnNldCgkb2JqKTsNCiAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICANCiAgICAgICAgICAgIH0NCiAgICAgICAgYnJlYWs7DQogICAgICAgIA0KICAgICMgZHJvcCB0aGUgdGVtcG9yYXJ5IHRhYmxlDQogICAgY2FzZSAyOg0KICAgICAgJHNxbCA9ICdEUk9QIFRBQkxFIElGIEVYSVNUUyB0ZW1wX2xpc2VfY3N2X2ltcG9ydF9kYXRhJzsNCiAgICAgICRkYi0+ZXhlY3V0ZSgkc3FsKTsNCiAgDQogICAgICBpZigkZGItPkVycm9yTm8oKSA+IDApDQogICAgICB7DQogICAgICAgICRvdXRbJ2Vycm9yJ10gPSAkZGItPkVycm9yTm8oKTsNCiAgICAgICAgJG91dFsnbXNnJ10gPSAkZGItPkVycm9yTXNnKCk7DQogICAgICB9DQogICAgICAgIGJyZWFrOw0KICAgIGRlZmF1bHQ6DQogICAgICAkb3V0WydlcnJvciddID0gMTAwMTsNCiAgICAgICRvdXRbJ21zZyddID0gJ1Vua25vd24gc3RlcCc7DQogIH0NCn0NCg0KDQoNCg0KDQovLyRlcnJvcnMgPSBbXTsNCg0KLy9mb3JlYWNoKCAkZGF0YWJhc2VfdmFsdWVzIGFzICRvYmogKQ0KLy97DQovLyAgaWYoJG9iai0+cmVxdWlyZWQgJiYgISRpbXBvcnRfdmFsdWVzWyRvYmotPmFsaWFzXSkNCi8vICB7DQovLyAgICAkZXJyb3JzW10gPSAkdGhpcy0+TW9kTGFuZygncmVxdWlyZWRfZmllbGRfZW1wdHknKSAuICcgKCcgLiAkb2JqLT5hbGlhcyAuICcpJzsNCi8vICB9DQovL30NCg0KLy9pZiggZW1wdHkoJGVycm9ycykgKQ0KLy97DQovLw0KLy8gIGZvcigkeCA9ICRvZmZzZXQ7ICR4IDw9ICAoJG9mZnNldCArICRzdGVwKTsgJHgrKykNCi8vICB7DQovLw0KLy8NCi8vICAgLy8gJGxpbmVfYXJyYXkgPSAkY3N2X2ZpbGVfb2JqLT5jdXJyZW50KCk7DQoNCi8vICB9DQovLw0KLy99DQoNCi8vIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjDQovLyRhYmMxMjM0NTYgPSBcY29tcGFjdCgncicsICdoZWFkZXJzJywgJ2ltcG9ydF92YWx1ZXMnKTsNCi8vZWNobygnPGJyLz46Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo8YnIvPicpOw0KLy9kZWJ1Z19kaXNwbGF5KCRhYmMxMjM0NTYpOw0KLy9lY2hvKCc8YnIvPicgLiBfX0ZJTEVfXyAuICcgOiAoJyAuIF9fQ0xBU1NfXyAuICcgOjogJyAuIF9fRlVOQ1RJT05fXyAuICcpIDogJyAuIF9fTElORV9fIC4gJzxici8+Jyk7DQovL2RpZSgnPGJyLz5SSVAhPGJyLz4nKTsNCi8vIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjDQoNCg0KaGVhZGVyKCdDb250ZW50LVR5cGU6IGFwcGxpY2F0aW9uL2pzb247IGNoYXJzZXQ9VVRGLTgnKTsNCmRpZShqc29uX2VuY29kZSgkb3V0KSk7DQoNCj8+DQo=]]></data>
	</file>
	<file>
	  <filename>/framework/action.admin_deletecategory.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBMSVNFIC0gTGlzdCBJdCBTcGVjaWFsIEVkaXRpb24KIyBWZXJzaW9uIDEuMgojIEEgZm9yayBvZiBMaXN0STIKIyBtYWludGFpbmVkIGJ5IEZlcm5hbmRvIE1vcmdhZG8gQUtBIEpvIE1vcmcKIyBzaW5jZSAyMDE1CiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBPcmlnaW5hbCBBdXRob3I6IEJlbiBNYWxlbiwgPGJlbkBjb25jZXB0ZmFjdG9yeS5jb20uYXU+CiMgQ28tTWFpbnRhaW5lcjogU2ltb24gUmFkZm9yZCwgPHNpbW9uQGNvbmNlcHRmYWN0b3J5LmNvbS5hdT4KIyBXZWI6IHd3dy5jb25jZXB0ZmFjdG9yeS5jb20uYXUKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojCiMgTWFpbnRhaW5lciBzaW5jZSAyMDExIHVwIHRvIDIwMTQ6IEpvbmF0aGFuIFNjaG1pZCwgPGhpQGpvbmF0aGFuc2NobWlkLmRlPgojIFdlYjogd3d3LmpvbmF0aGFuc2NobWlkLmRlCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIwojIFNvbWUgd2Fja29zIHN0YXJ0ZWQgZGVzdHJveWluZyBzdHVmZiBzaW5jZSAyMDEyIGFuZCBzdG9wcGVkIGF0IDIwMTQ6CiMKIyBUYXBpbyBMw7Z5dHR5LCA8dGFwc2FAb3JhbmdlLW1lZGlhLmZpPgojIFdlYjogd3d3Lm9yYW5nZS1tZWRpYS5maQojCiMgR29yYW4gSWxpYywgPHVuaXF1M2VAZ21haWwuY29tPgojIFdlYjogd3d3LmljaC1tYWNoLWRhcy5hdAojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBMSVNFIGlzIGEgQ01TIE1hZGUgU2ltcGxlIG1vZHVsZSB0aGF0IGVuYWJsZXMgdGhlIHdlYiBkZXZlbG9wZXIgdG8gY3JlYXRlCiMgbXVsdGlwbGUgbGlzdHMgdGhyb3VnaG91dCBhIHNpdGUuIEl0IGNhbiBiZSBkdXBsaWNhdGVkIGFuZCBnaXZlbiBmcmllbmRseQojIG5hbWVzIGZvciBlYXNpZXIgY2xpZW50IG1haW50ZW5hbmNlLgojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgQkVHSU5fTElDRU5TRQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIExJU0UKIyBMSVNFIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgTElTRSBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBFTkRfTElDRU5TRQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKaWYoICFkZWZpbmVkKCdDTVNfVkVSU0lPTicpICkgZXhpdDsKaWYgKCEkdGhpcy0+Q2hlY2tQZXJtaXNzaW9uKCR0aGlzLT5fR2V0TW9kdWxlQWxpYXMoKSAuICdfbW9kaWZ5X2NhdGVnb3J5JykpIHJldHVybjsKCiRjYXRlZ29yaWVzID0gYXJyYXkoKTsKaWYoaXNzZXQoJHBhcmFtc1snY2F0ZWdvcnlfaWQnXSkpIHsKCSRjYXRlZ29yaWVzID0gYXJyYXkoKGludCkkcGFyYW1zWydjYXRlZ29yeV9pZCddKTsKfQppZihpc3NldCgkcGFyYW1zWydjYXRlZ29yaWVzJ10pICYmIGlzX2FycmF5KCRwYXJhbXNbJ2NhdGVnb3JpZXMnXSkpIHsKCSRjYXRlZ29yaWVzID0gJHBhcmFtc1snY2F0ZWdvcmllcyddOwp9Cgpmb3JlYWNoKCRjYXRlZ29yaWVzIGFzICRjYXRlZ29yeV9pZCkgewkKCgkkdGhpcy0+RGVsZXRlQ2F0ZWdvcnlCeUlkKCRjYXRlZ29yeV9pZCk7Cn0KCiRoYW5kbGVycyA9IG9iX2xpc3RfaGFuZGxlcnMoKTsgCmZvciAoJGNudCA9IDA7ICRjbnQgPCBzaXplb2YoJGhhbmRsZXJzKTsgJGNudCsrKSB7IG9iX2VuZF9jbGVhbigpOyB9CgplY2hvICR0aGlzLT5Nb2RMYW5nKCdkZWxldGVkJyk7CmV4aXQoKTsKPz4=]]></data>
	</file>
	<file>
	  <filename>/framework/action.admin_deletefielddef.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHANCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQojIExJU0UgLSBMaXN0IEl0IFNwZWNpYWwgRWRpdGlvbg0KIyBWZXJzaW9uIDEuMg0KIyBBIGZvcmsgb2YgTGlzdEkyDQojIG1haW50YWluZWQgYnkgRmVybmFuZG8gTW9yZ2FkbyBBS0EgSm8gTW9yZw0KIyBzaW5jZSAyMDE1DQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIw0KIyBPcmlnaW5hbCBBdXRob3I6IEJlbiBNYWxlbiwgPGJlbkBjb25jZXB0ZmFjdG9yeS5jb20uYXU+DQojIENvLU1haW50YWluZXI6IFNpbW9uIFJhZGZvcmQsIDxzaW1vbkBjb25jZXB0ZmFjdG9yeS5jb20uYXU+DQojIFdlYjogd3d3LmNvbmNlcHRmYWN0b3J5LmNvbS5hdQ0KIw0KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCiMNCiMgTWFpbnRhaW5lciBzaW5jZSAyMDExIHVwIHRvIDIwMTQ6IEpvbmF0aGFuIFNjaG1pZCwgPGhpQGpvbmF0aGFuc2NobWlkLmRlPg0KIyBXZWI6IHd3dy5qb25hdGhhbnNjaG1pZC5kZQ0KIw0KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCiMNCiMgU29tZSB3YWNrb3Mgc3RhcnRlZCBkZXN0cm95aW5nIHN0dWZmIHNpbmNlIDIwMTIgYW5kIHN0b3BwZWQgYXQgMjAxNDoNCiMNCiMgVGFwaW8gTMO2eXR0eSwgPHRhcHNhQG9yYW5nZS1tZWRpYS5maT4NCiMgV2ViOiB3d3cub3JhbmdlLW1lZGlhLmZpDQojDQojIEdvcmFuIElsaWMsIDx1bmlxdTNlQGdtYWlsLmNvbT4NCiMgV2ViOiB3d3cuaWNoLW1hY2gtZGFzLmF0DQojDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIw0KIyBMSVNFIGlzIGEgQ01TIE1hZGUgU2ltcGxlIG1vZHVsZSB0aGF0IGVuYWJsZXMgdGhlIHdlYiBkZXZlbG9wZXIgdG8gY3JlYXRlDQojIG11bHRpcGxlIGxpc3RzIHRocm91Z2hvdXQgYSBzaXRlLiBJdCBjYW4gYmUgZHVwbGljYXRlZCBhbmQgZ2l2ZW4gZnJpZW5kbHkNCiMgbmFtZXMgZm9yIGVhc2llciBjbGllbnQgbWFpbnRlbmFuY2UuDQojDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIyBCRUdJTl9MSUNFTlNFDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIyBUaGlzIGZpbGUgaXMgcGFydCBvZiBMSVNFDQojIExJU0UgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5DQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5DQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yDQojIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uDQojDQojIExJU0UgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLA0KIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZg0KIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlDQojIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuDQojIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlDQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlDQojIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcgVVNBDQojIE9yIHJlYWQgaXQgb25saW5lOiBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwNCiMNCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQojIEVORF9MSUNFTlNFDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KDQppZiggIWRlZmluZWQoJ0NNU19WRVJTSU9OJykgKSBleGl0Ow0KDQoNCmlmICghJHRoaXMtPkNoZWNrUGVybWlzc2lvbigkdGhpcy0+X0dldE1vZHVsZUFsaWFzKCkgLiAnX21vZGlmeV9vcHRpb24nKSkgcmV0dXJuOw0KDQokZmllbGRkZWZzID0gYXJyYXkoKTsNCmlmKGlzc2V0KCRwYXJhbXNbJ2ZpZWxkZGVmX2lkJ10pKSB7DQoJJGZpZWxkZGVmcyA9IGFycmF5KChpbnQpJHBhcmFtc1snZmllbGRkZWZfaWQnXSk7DQp9DQppZihpc3NldCgkcGFyYW1zWydmaWVsZGRlZnMnXSkgJiYgaXNfYXJyYXkoJHBhcmFtc1snZmllbGRkZWZzJ10pKSB7DQoJJGZpZWxkZGVmcyA9ICRwYXJhbXNbJ2ZpZWxkZGVmcyddOw0KfQ0KDQpmb3JlYWNoICgkZmllbGRkZWZzIGFzICRmaWVsZGRlZl9pZCkgew0KDQoJTElTRUZpZWxkZGVmT3BlcmF0aW9uczo6RGVsZXRlKCR0aGlzLCAkZmllbGRkZWZfaWQpOwkNCn0NCg0KJGhhbmRsZXJzID0gb2JfbGlzdF9oYW5kbGVycygpOyANCmZvciAoJGNudCA9IDA7ICRjbnQgPCBzaXplb2YoJGhhbmRsZXJzKTsgJGNudCsrKSB7IG9iX2VuZF9jbGVhbigpOyB9DQoNCmVjaG8gJHRoaXMtPk1vZExhbmcoJ2RlbGV0ZWQnKTsNCmV4aXQoKTsNCj8+]]></data>
	</file>
	<file>
	  <filename>/framework/action.admin_deleteitem.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBMSVNFIC0gTGlzdCBJdCBTcGVjaWFsIEVkaXRpb24KIyBWZXJzaW9uIDEuMgojIEEgZm9yayBvZiBMaXN0STIKIyBtYWludGFpbmVkIGJ5IEZlcm5hbmRvIE1vcmdhZG8gQUtBIEpvIE1vcmcKIyBzaW5jZSAyMDE1CiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBPcmlnaW5hbCBBdXRob3I6IEJlbiBNYWxlbiwgPGJlbkBjb25jZXB0ZmFjdG9yeS5jb20uYXU+CiMgQ28tTWFpbnRhaW5lcjogU2ltb24gUmFkZm9yZCwgPHNpbW9uQGNvbmNlcHRmYWN0b3J5LmNvbS5hdT4KIyBXZWI6IHd3dy5jb25jZXB0ZmFjdG9yeS5jb20uYXUKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojCiMgTWFpbnRhaW5lciBzaW5jZSAyMDExIHVwIHRvIDIwMTQ6IEpvbmF0aGFuIFNjaG1pZCwgPGhpQGpvbmF0aGFuc2NobWlkLmRlPgojIFdlYjogd3d3LmpvbmF0aGFuc2NobWlkLmRlCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIwojIFNvbWUgd2Fja29zIHN0YXJ0ZWQgZGVzdHJveWluZyBzdHVmZiBzaW5jZSAyMDEyIGFuZCBzdG9wcGVkIGF0IDIwMTQ6CiMKIyBUYXBpbyBMw7Z5dHR5LCA8dGFwc2FAb3JhbmdlLW1lZGlhLmZpPgojIFdlYjogd3d3Lm9yYW5nZS1tZWRpYS5maQojCiMgR29yYW4gSWxpYywgPHVuaXF1M2VAZ21haWwuY29tPgojIFdlYjogd3d3LmljaC1tYWNoLWRhcy5hdAojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBMSVNFIGlzIGEgQ01TIE1hZGUgU2ltcGxlIG1vZHVsZSB0aGF0IGVuYWJsZXMgdGhlIHdlYiBkZXZlbG9wZXIgdG8gY3JlYXRlCiMgbXVsdGlwbGUgbGlzdHMgdGhyb3VnaG91dCBhIHNpdGUuIEl0IGNhbiBiZSBkdXBsaWNhdGVkIGFuZCBnaXZlbiBmcmllbmRseQojIG5hbWVzIGZvciBlYXNpZXIgY2xpZW50IG1haW50ZW5hbmNlLgojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgQkVHSU5fTElDRU5TRQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIExJU0UKIyBMSVNFIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgTElTRSBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBFTkRfTElDRU5TRQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKaWYoICFkZWZpbmVkKCdDTVNfVkVSU0lPTicpICkgZXhpdDsKaWYgKCEkdGhpcy0+Q2hlY2tQZXJtaXNzaW9uKCR0aGlzLT5fR2V0TW9kdWxlQWxpYXMoKSAuICdfbW9kaWZ5X2l0ZW0nKSkgcmV0dXJuOwoKJGl0ZW1zID0gYXJyYXkoKTsKaWYoaXNzZXQoJHBhcmFtc1snaXRlbV9pZCddKSkgewoJJGl0ZW1zW10gPSAoaW50KSRwYXJhbXNbJ2l0ZW1faWQnXTsKfQppZihpc3NldCgkcGFyYW1zWydpdGVtcyddKSAmJiBpc19hcnJheSgkcGFyYW1zWydpdGVtcyddKSkgewoJJGl0ZW1zID0gJHBhcmFtc1snaXRlbXMnXTsKfQoKZm9yZWFjaCgkaXRlbXMgYXMgJGl0ZW1faWQpIHsJCgoJJHRoaXMtPkRlbGV0ZUl0ZW1CeUlkKCRpdGVtX2lkKTsKfQoKJGhhbmRsZXJzID0gb2JfbGlzdF9oYW5kbGVycygpOyAKZm9yICgkY250ID0gMDsgJGNudCA8IHNpemVvZigkaGFuZGxlcnMpOyAkY250KyspIHsgb2JfZW5kX2NsZWFuKCk7IH0KCmVjaG8gJHRoaXMtPk1vZExhbmcoJ2RlbGV0ZWQnKTsKZXhpdCgpOwo/Pg==]]></data>
	</file>
	<file>
	  <filename>/framework/action.admin_deletetemplate.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHANCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQojIExJU0UgLSBMaXN0IEl0IFNwZWNpYWwgRWRpdGlvbg0KIyBWZXJzaW9uIDEuMg0KIyBBIGZvcmsgb2YgTGlzdEkyDQojIG1haW50YWluZWQgYnkgRmVybmFuZG8gTW9yZ2FkbyBBS0EgSm8gTW9yZw0KIyBzaW5jZSAyMDE1DQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIw0KIyBPcmlnaW5hbCBBdXRob3I6IEJlbiBNYWxlbiwgPGJlbkBjb25jZXB0ZmFjdG9yeS5jb20uYXU+DQojIENvLU1haW50YWluZXI6IFNpbW9uIFJhZGZvcmQsIDxzaW1vbkBjb25jZXB0ZmFjdG9yeS5jb20uYXU+DQojIFdlYjogd3d3LmNvbmNlcHRmYWN0b3J5LmNvbS5hdQ0KIw0KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCiMNCiMgTWFpbnRhaW5lciBzaW5jZSAyMDExIHVwIHRvIDIwMTQ6IEpvbmF0aGFuIFNjaG1pZCwgPGhpQGpvbmF0aGFuc2NobWlkLmRlPg0KIyBXZWI6IHd3dy5qb25hdGhhbnNjaG1pZC5kZQ0KIw0KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCiMNCiMgU29tZSB3YWNrb3Mgc3RhcnRlZCBkZXN0cm95aW5nIHN0dWZmIHNpbmNlIDIwMTIgYW5kIHN0b3BwZWQgYXQgMjAxNDoNCiMNCiMgVGFwaW8gTMO2eXR0eSwgPHRhcHNhQG9yYW5nZS1tZWRpYS5maT4NCiMgV2ViOiB3d3cub3JhbmdlLW1lZGlhLmZpDQojDQojIEdvcmFuIElsaWMsIDx1bmlxdTNlQGdtYWlsLmNvbT4NCiMgV2ViOiB3d3cuaWNoLW1hY2gtZGFzLmF0DQojDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIw0KIyBMSVNFIGlzIGEgQ01TIE1hZGUgU2ltcGxlIG1vZHVsZSB0aGF0IGVuYWJsZXMgdGhlIHdlYiBkZXZlbG9wZXIgdG8gY3JlYXRlDQojIG11bHRpcGxlIGxpc3RzIHRocm91Z2hvdXQgYSBzaXRlLiBJdCBjYW4gYmUgZHVwbGljYXRlZCBhbmQgZ2l2ZW4gZnJpZW5kbHkNCiMgbmFtZXMgZm9yIGVhc2llciBjbGllbnQgbWFpbnRlbmFuY2UuDQojDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIyBCRUdJTl9MSUNFTlNFDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIyBUaGlzIGZpbGUgaXMgcGFydCBvZiBMSVNFDQojIExJU0UgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5DQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5DQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yDQojIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uDQojDQojIExJU0UgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLA0KIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZg0KIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlDQojIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuDQojIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlDQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlDQojIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcgVVNBDQojIE9yIHJlYWQgaXQgb25saW5lOiBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwNCiMNCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQojIEVORF9MSUNFTlNFDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KDQppZiggIWRlZmluZWQoJ0NNU19WRVJTSU9OJykgKSBleGl0Ow0KDQppZiAoISR0aGlzLT5DaGVja1Blcm1pc3Npb24oJHRoaXMtPl9HZXRNb2R1bGVBbGlhcygpIC4gJ19tb2RpZnlfb3B0aW9uJykpIHJldHVybjsNCg0KaWYgKCFpc3NldCgkcGFyYW1zWyduYW1lJ10pKSB7DQogICAgZGllKCdtaXNzaW5nIHBhcmFtZXRlciwgdGhpcyBzaG91bGQgbm90IGhhcHBlbicpOw0KfQ0KDQokdGhpcy0+RGVsZXRlVGVtcGxhdGUoJHBhcmFtc1snbmFtZSddKTsNCg0KJGhhbmRsZXJzID0gb2JfbGlzdF9oYW5kbGVycygpOyANCmZvciAoJGNudCA9IDA7ICRjbnQgPCBzaXplb2YoJGhhbmRsZXJzKTsgJGNudCsrKSB7IG9iX2VuZF9jbGVhbigpOyB9DQoNCmVjaG8gJHRoaXMtPk1vZExhbmcoJ2RlbGV0ZWQnKTsNCmV4aXQoKTsNCj8+]]></data>
	</file>
	<file>
	  <filename>/framework/action.admin_do_import_csv.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHANCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQojIExJU0UgLSBMaXN0IEl0IFNwZWNpYWwgRWRpdGlvbg0KIyBWZXJzaW9uIDEuMg0KIyBBIGZvcmsgb2YgTGlzdEkyDQojIG1haW50YWluZWQgYnkgRmVybmFuZG8gTW9yZ2FkbyBBS0EgSm8gTW9yZw0KIyBzaW5jZSAyMDE1DQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIw0KIyBPcmlnaW5hbCBBdXRob3I6IEJlbiBNYWxlbiwgPGJlbkBjb25jZXB0ZmFjdG9yeS5jb20uYXU+DQojIENvLU1haW50YWluZXI6IFNpbW9uIFJhZGZvcmQsIDxzaW1vbkBjb25jZXB0ZmFjdG9yeS5jb20uYXU+DQojIFdlYjogd3d3LmNvbmNlcHRmYWN0b3J5LmNvbS5hdQ0KIw0KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCiMNCiMgTWFpbnRhaW5lciBzaW5jZSAyMDExIHVwIHRvIDIwMTQ6IEpvbmF0aGFuIFNjaG1pZCwgPGhpQGpvbmF0aGFuc2NobWlkLmRlPg0KIyBXZWI6IHd3dy5qb25hdGhhbnNjaG1pZC5kZQ0KIw0KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCiMNCiMgU29tZSB3YWNrb3Mgc3RhcnRlZCBkZXN0cm95aW5nIHN0dWZmIHNpbmNlIDIwMTIgYW5kIHN0b3BwZWQgYXQgMjAxNDoNCiMNCiMgVGFwaW8gTMO2eXR0eSwgPHRhcHNhQG9yYW5nZS1tZWRpYS5maT4NCiMgV2ViOiB3d3cub3JhbmdlLW1lZGlhLmZpDQojDQojIEdvcmFuIElsaWMsIDx1bmlxdTNlQGdtYWlsLmNvbT4NCiMgV2ViOiB3d3cuaWNoLW1hY2gtZGFzLmF0DQojDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIw0KIyBMSVNFIGlzIGEgQ01TIE1hZGUgU2ltcGxlIG1vZHVsZSB0aGF0IGVuYWJsZXMgdGhlIHdlYiBkZXZlbG9wZXIgdG8gY3JlYXRlDQojIG11bHRpcGxlIGxpc3RzIHRocm91Z2hvdXQgYSBzaXRlLiBJdCBjYW4gYmUgZHVwbGljYXRlZCBhbmQgZ2l2ZW4gZnJpZW5kbHkNCiMgbmFtZXMgZm9yIGVhc2llciBjbGllbnQgbWFpbnRlbmFuY2UuDQojDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIyBCRUdJTl9MSUNFTlNFDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIyBUaGlzIGZpbGUgaXMgcGFydCBvZiBMSVNFDQojIExJU0UgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5DQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5DQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yDQojIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uDQojDQojIExJU0UgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLA0KIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZg0KIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlDQojIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuDQojIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlDQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlDQojIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcgVVNBDQojIE9yIHJlYWQgaXQgb25saW5lOiBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwNCiMNCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQojIEVORF9MSUNFTlNFDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KaWYoICFkZWZpbmVkKCdDTVNfVkVSU0lPTicpICkgZXhpdDsNCmlmKCAhJHRoaXMtPkNoZWNrUGVybWlzc2lvbiggJHRoaXMtPl9HZXRNb2R1bGVBbGlhcygpIC4gJ19tb2RpZnlfaXRlbScgKSApIHJldHVybjsNCiRoYW5kbGVycyA9IG9iX2xpc3RfaGFuZGxlcnMoKTsNCmZvcigkY250ID0gMDsgJGNudCA8IHNpemVvZigkaGFuZGxlcnMpOyAkY250KyspIHsgb2JfZW5kX2NsZWFuKCk7IH0NCg0KbGlzZV91dGlsczo6bG9nKCcqKioqKioqKioqKioqKioqKicpOw0KJGJhdGNoID0gMTsNCg0KaGVhZGVyKCdDb250ZW50LVR5cGU6IGFwcGxpY2F0aW9uL2pzb24nKTsNCg0KJGRvbmUgPSBGQUxTRTsNCg0KJGN1cnJlbnQgPSBpc3NldCgkX1BPU1RbJ3JlY29yZCddKSA/ICRfUE9TVFsncmVjb3JkJ10gOiAwOw0KJHRvdGFsID0gaXNzZXQoJF9QT1NUWydvZiddKSA/ICRfUE9TVFsnb2YnXSA6IDA7DQoNCiRTZXNzaW9uRGF0YSA9IFxMSVNFXFNlc3Npb246OlJlYWQoJHRoaXMsJ0NTVkRBVEEnKTsNCmxpc2VfdXRpbHM6OmxvZygnc2Vzc2lvbiBkYXRhIDogJyAuICRTZXNzaW9uRGF0YSk7DQoNCiRTZXNzaW9uRGF0YSA9IHVuc2VyaWFsaXplKCRTZXNzaW9uRGF0YSk7DQoNCiRkYXRhYmFzZV92YWx1ZXMgID0gJFNlc3Npb25EYXRhWydkYXRhYmFzZV92YWx1ZXMnXTsNCiRkZXN0X3BhdGggICAgICAgID0gJFNlc3Npb25EYXRhWydkZXN0X3BhdGgnXTsNCiRzZXBhcmF0b3IgICAgICAgID0gJFNlc3Npb25EYXRhWydzZXBhcmF0b3InXTsNCiRlbmNsb3N1cmUgICAgICAgID0gJFNlc3Npb25EYXRhWydlbmNsb3N1cmUnXTsNCiRpbXBvcnRfdmFsdWVzICAgID0gJFNlc3Npb25EYXRhWydpbXBvcnRfdmFsdWVzJ107DQoNCiRlcnJvcnMgPSBhcnJheSgpOw0KDQppZighZmlsZV9leGlzdHMoJGRlc3RfcGF0aCkpDQp7DQogICRlcnJvcnNbXSA9ICdmaWxlIGRvZXMgbm90IHNlZW0gdG8gZXhpc3Q6ICcgLiAkZGVzdF9wYXRoOw0KfQ0KDQpmb3JlYWNoKCRkYXRhYmFzZV92YWx1ZXMgYXMgJG9iaikNCnsNCiAgaWYoICRvYmotPnJlcXVpcmVkICkNCiAgew0KICAgIGlmKCAhJGltcG9ydF92YWx1ZXNbJG9iai0+YWxpYXNdICkgJGVycm9yc1tdID0gJHRoaXMtPk1vZExhbmcoICdyZXF1aXJlZF9maWVsZF9lbXB0eScgKSAuICcgKCcgLiAkb2JqLT5hbGlhcyAuICcpJzsNCiAgfQ0KfQ0KDQokc3RhcnQgPSAkY3VycmVudDsNCiRlbmQgPSAkY3VycmVudCArICRiYXRjaDsNCiRsYXN0ID0gJHN0YXJ0IC0gMTsNCg0KaWYoJGVycm9ycykNCnsNCiAgZm9yZWFjaCgkZXJyb3JzIGFzICRlcnJvcikNCiAgew0KICAgIGxpc2VfdXRpbHM6OmxvZygnZXJyb3IgZm91bmQgOiAnIC4gJGVycm9yKTsNCiAgfQ0KfQ0KDQppZiggZW1wdHkoJGVycm9ycykgKQ0Kew0KICAkZGF0YWJhc2VfdmFsdWVzID0gYXJyYXkoKTsNCiAgLy8gSW5pdGlhdGUgQ3N2SXRlcmF0b3INCiAgJGNzdiA9IG5ldyBMSVNFQ3N2SXRlcmF0b3IoICRkZXN0X3BhdGgsIHRydWUsICRzZXBhcmF0b3IsICRlbmNsb3N1cmUgKTsNCiAgDQogIA0KICBsaXNlX3V0aWxzOjpsb2coJ3N0YXJ0OiAnIC4gJHN0YXJ0KTsNCiAgDQogIGlmKCRzdGFydCkNCiAgew0KICAgIHdoaWxlKCRjc3YtPmtleSgpIDw9ICRsYXN0KQ0KICAgIHsNCiAgICAgICRjc3YtPm5leHQoKTsNCiAgICAgIGxpc2VfdXRpbHM6OmxvZygnanVtcCBrZXk6ICcgLiAkY3N2LT5rZXkoKSk7DQogICAgICBpZiggISRjc3YtPmN1cnJlbnQoKSB8fCAkY3N2LT5rZXkoKSA+ICR0b3RhbCkNCiAgICAgIHsNCiAgICAgICAgbGlzZV91dGlsczo6bG9nKCdqdW1wIHN0b3BlZCBhdDogJyAuICRjc3YtPmtleSgpKTsNCiAgICAgICAgJGRvbmUgPSAoYm9vbCkoJGNzdi0+a2V5KCkgPT0gJHRvdGFsKTsNCiAgICAgICAgYnJlYWs7DQogICAgICB9DQogICAgfQ0KICB9DQogIA0KICBsaXNlX3V0aWxzOjpsb2coJyMjIyMnKTsNCiAgbGlzZV91dGlsczo6bG9nKCdzdGFydDogJyAuICRzdGFydCk7DQogIGxpc2VfdXRpbHM6OmxvZygnZW5kOiAnIC4gJGVuZCk7DQogIA0KICBmb3IoJGNudCA9ICAkc3RhcnQ7ICRjbnQgPCAoJGVuZCkgOyAkY250KyspDQogIHsNCiAgICBpZigkY3N2LT5rZXkoKSA+ICR0b3RhbCkgYnJlYWs7DQoNCiAgICBpZighJGNzdi0+bmV4dCgpKSBicmVhazsNCiAgICAkcm93ID0gJGNzdi0+Y3VycmVudCgpOw0KICANCiAgICBmb3JlYWNoKCAkaW1wb3J0X3ZhbHVlcyBhcyAkYWxpYXMgPT4gJGluZGV4ICkNCiAgICB7DQogICAgICBpZigkaW5kZXgpDQogICAgICB7DQogICAgICAgICRkYXRhYmFzZV92YWx1ZXNbJGNzdi0+a2V5KCldWyRhbGlhc10gPSAkcm93WyRpbmRleF07DQogICAgICB9DQogICAgICBlbHNlDQogICAgICB7DQogICAgICAgIHVuc2V0KCRpbXBvcnRfdmFsdWVzWyRhbGlhc10pOw0KICAgICAgfQ0KICAgIH0NCiAgfQ0KICANCiAgLyoqKioNCiAgICogZGVidWcgc3RhcnQNCiAgICovDQogIA0KICAkc3RhcnR0aW1lID0gbWljcm90aW1lKCk7DQogICRvcmlnX21lbW9yeSA9IChmdW5jdGlvbl9leGlzdHMoJ21lbW9yeV9nZXRfdXNhZ2UnKSA/IG1lbW9yeV9nZXRfdXNhZ2UoKSA6IDApOw0KICAkZGIgPSBjbXNtcygpLT5HZXREYigpOw0KICAkb3JpZ2luYWxfc3FsX3F1ZXJpZXMgPSAkZGItPnF1ZXJ5X2NvdW50Ow0KICAkb3JpZ2luYWxfc3FsX3RpbWUgPSByb3VuZCgkZGItPnF1ZXJ5X3RpbWVfdG90YWwsNSk7DQogICRvcmlnaW5hbF9tZW1vcnlfcGVhayA9IChmdW5jdGlvbl9leGlzdHMoJ21lbW9yeV9nZXRfcGVha191c2FnZScpID8gbWVtb3J5X2dldF9wZWFrX3VzYWdlKCkgOiAnbi9hJyk7DQogIA0KICAkbXNnID0gJ0RlYnVnIGRhdGE6ICc7DQogICRtc2cgLj0gICdKVVNUIEJFRk9SRSBTVEFSVCc7DQogICRtc2cgLj0gICdleGVjX3RpbWUoJyAuICRzdGFydHRpbWUgLiAnIG1zKSA6OiAnOw0KICAkbXNnIC49ICAncXVlcmllcygnIC4gJG9yaWdpbmFsX3NxbF9xdWVyaWVzIC4gJykgOjogJzsNCiAgJG1zZyAuPSAgJ21lbSgnIC4gJG9yaWdfbWVtb3J5IC4gJykgOjogJzsNCiAgJG1zZyAuPSAgJ3NxbF90aW1lKCcgLiAkb3JpZ2luYWxfc3FsX3RpbWUgLiAnKSA6OiAnOw0KICAkbXNnIC49ICAnbWVtb3J5X3BlYWsoJyAuICRvcmlnaW5hbF9tZW1vcnlfcGVhayAuICcpJzsNCiAgDQogIGxpc2VfdXRpbHM6OmxvZygkbXNnKTsNCiAgDQogIA0KICAvLyBJbXBvcnQgZGF0YSB0byBkYXRhYmFzZQ0KICBmb3JlYWNoKCRkYXRhYmFzZV92YWx1ZXMgYXMgJGl0ZW1fdmFsdWVzKQ0KICB7DQogICAgDQogICAgJG9iaiA9ICR0aGlzLT5Jbml0aWF0ZUl0ZW0oKTsNCiAgICANCiAgICBmb3JlYWNoKCAkaXRlbV92YWx1ZXMgYXMgJGtleSA9PiAkdmFsdWUgKQ0KICAgIHsNCiAgICAgIA0KICAgICAgaWYoICRrZXkgPT0gJ2l0ZW1faWQnICYmICFpc19udW1lcmljKCAkdmFsdWUgKSApIGNvbnRpbnVlOw0KICAgICAgDQogICAgICAka2V5ID0gdXRmOF9lbmNvZGUoICRrZXkgKTsNCiAgICAgIA0KICAgICAgJGNzdl9zZXBhcmF0b3IgPSAkdGhpcy0+R2V0UHJlZmVyZW5jZSgnY3N2X3NlcGFyYXRvcicsICcsJyk7DQogICAgICAkdmFsdWUgPSBleHBsb2RlKCAkY3N2X3NlcGFyYXRvciwgdXRmOF9lbmNvZGUoICR2YWx1ZSApICk7DQogICAgICANCiAgICAgICRvYmotPlNldFByb3BlcnR5VmFsdWUoICRrZXksICR2YWx1ZSApOw0KICAgICAgaWYoICRrZXkgPT0gJ2l0ZW1faWQnICkgTElTRUl0ZW1PcGVyYXRpb25zOjpMb2FkKCAkdGhpcywgJG9iaiApOyAvLyA8LSBUcnkgbG9hZGluZyBpdGVtIGlmIHdlIGFjdHVhbGx5IGdvdCBJRC4NCiAgICB9DQogICAgDQogICAgJHRoaXMtPlNhdmVJdGVtKCRvYmopOw0KICAgIA0KICAgIHVuc2V0KCRvYmopOw0KICB9DQogIA0KICAkZW5kdGltZSA9IG1pY3JvdGltZSgpOw0KICAkdGltZSA9IG1pY3JvdGltZV9kaWZmKCRzdGFydHRpbWUsICRlbmR0aW1lKTsNCiAgJG1lbW9yeSA9IChmdW5jdGlvbl9leGlzdHMoJ21lbW9yeV9nZXRfdXNhZ2UnKT9tZW1vcnlfZ2V0X3VzYWdlKCk6MCk7DQogICRtZW1vcnkgPSAkbWVtb3J5IC0gJG9yaWdfbWVtb3J5Ow0KICAkc3FsX3RpbWUgPSByb3VuZCgkZGItPnF1ZXJ5X3RpbWVfdG90YWwsNSk7DQogICRzcWxfdGltZSA9ICRzcWxfdGltZSAtICRvcmlnaW5hbF9zcWxfdGltZTsNCiAgJHNxbF9xdWVyaWVzID0gJGRiLT5xdWVyeV9jb3VudDsNCiAgJHNxbF9xdWVyaWVzID0gJHNxbF9xdWVyaWVzIC0gJG9yaWdpbmFsX3NxbF9xdWVyaWVzOw0KICAkbWVtb3J5X3BlYWsgPSAoZnVuY3Rpb25fZXhpc3RzKCdtZW1vcnlfZ2V0X3BlYWtfdXNhZ2UnKT9tZW1vcnlfZ2V0X3BlYWtfdXNhZ2UoKTonbi9hJyk7DQogICRtZW1vcnlfcGVhayA9ICRtZW1vcnlfcGVhayAtICRvcmlnaW5hbF9tZW1vcnlfcGVhazsNCg0KICAkbXNnID0gJ0RlYnVnIGRhdGE6ICc7DQogICRtc2cgLj0gICdtZWFzdXJlZCc7DQogICRtc2cgLj0gICdleGVjX3RpbWUoJyAuICR0aW1lIC4gJyBtcykgOjogJzsNCiAgJG1zZyAuPSAgJ3F1ZXJpZXMoJyAuICRzcWxfcXVlcmllcyAuICcpIDo6ICc7DQogICRtc2cgLj0gICdtZW0oJyAuICRtZW1vcnkgLiAnKSA6OiAnOw0KICAkbXNnIC49ICAnc3FsX3RpbWUoJyAuICRzcWxfdGltZSAuICcpIDo6ICc7DQogICRtc2cgLj0gICdtZW1vcnlfcGVhaygnIC4gJG1lbW9yeV9wZWFrIC4gJyknOw0KICANCiAgbGlzZV91dGlsczo6bG9nKCRtc2cpOw0KDQogIC8qDQogICAqIGRlYnVnIC0gZW5kDQogICAqLw0KICANCiAgLyoNCiAgaWYoJGxhc3QgPiAwKQ0KICB7DQogICAgd2hpbGUoJGxhc3QgPj0gJGNzdi0+a2V5KCkgKQ0KICAgIHsNCiAgICAgICRjc3YtPm5leHQoKTsNCiAgICB9DQogIH0NCiAgDQogICRkYXRhYmFzZV92YWx1ZXMgPSBhcnJheSgpOw0KICANCiAgZWNobygnPGJyLz46Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo8YnIvPicpOw0KICBkZWJ1Z19kaXNwbGF5KCRjdnMpOw0KICBlY2hvKCc8YnIvPicgLiBfX0ZJTEVfXyAuICcgOiAoJyAuIF9fQ0xBU1NfXyAuICcgOjogJyAuIF9fRlVOQ1RJT05fXyAuICcpIDogJyAuIF9fTElORV9fIC4gJzxici8+Jyk7DQogIGRpZSgnPGJyLz5SSVAhPGJyLz4nKTsNCiAgDQogIA0KDQogIC8vZm9yKCRjbnQgPSAgJGN1cnJlbnQ7ICRjbnQgPCAoJGN1cnJlbnQgKyAkYmF0Y2ggLSAxKSA7ICRjbnQrKykNCiAgDQogICAgLyoNCiAgICBpZigkY250ID49ICR0b3RhbCkNCiAgICB7DQogICAgICAkZG9uZSA9IFRSVUU7DQogICAgICBicmVhazsNCiAgICB9DQogICAgKi8NCiAgLyoNCiAgICAvLyBJbml0aWF0ZSBDc3ZJdGVyYXRvcg0KICAgICRjc3YgPSBuZXcgTElTRUNzdkl0ZXJhdG9yKCAkZGVzdF9wYXRoLCB0cnVlLCAkc2VwYXJhdG9yLCAkZW5jbG9zdXJlICk7DQogICAgJGp1bXBfZG9uZSA9ICRjc3YtPmp1bXAoJGN1cnJlbnQpOw0KICAgIA0KICAgIGVjaG8oJzxici8+Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6PGJyLz4nKTsNCiAgICB2YXJfZXhwb3J0KCRjc3YpOw0KICAgIHZhcl9leHBvcnQoJGp1bXBfZG9uZSk7DQogICAgLy9kZWJ1Z19kaXNwbGF5KCk7DQogICAgZWNobygnPGJyLz4nIC4gX19GSUxFX18gLiAnIDogKCcgLiBfX0NMQVNTX18gLiAnIDo6ICcgLiBfX0ZVTkNUSU9OX18gLiAnKSA6ICcgLiBfX0xJTkVfXyAuICc8YnIvPicpOw0KICAgIGRpZSgnPGJyLz5SSVAhPGJyLz4nKTsNCiAgICANCiAgICAvLyBDb2xsZWN0IGRhdGEgZnJvbSBmaWxlDQogICAgd2hpbGUoICRjc3YtPm5leHQoKSApDQogICAgew0KICAgICAgJHJvdyA9ICRjc3YtPmN1cnJlbnQoKTsNCg0KICAgICAgZm9yZWFjaCggJGltcG9ydF92YWx1ZXMgYXMgJGFsaWFzID0+ICRpbmRleCApDQogICAgICB7DQoNCiAgICAgICAgaWYoJGluZGV4KQ0KICAgICAgICB7DQogICAgICAgICAgJGRhdGFiYXNlX3ZhbHVlc1skY3N2LT5rZXkoKV1bJGFsaWFzXSA9ICRyb3dbJGluZGV4XTsNCiAgICAgICAgfQ0KICAgICAgICBlbHNlDQogICAgICAgIHsNCiAgICAgICAgICB1bnNldCgkaW1wb3J0X3ZhbHVlc1skYWxpYXNdKTsNCiAgICAgICAgfQ0KICAgICAgfQ0KICAgIH0NCiAgICANCiAgICBlY2hvKCc8YnIvPjo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojxici8+Jyk7DQogICAgZGVidWdfZGlzcGxheSgkZGF0YWJhc2VfdmFsdWVzKTsNCiAgICBlY2hvKCc8YnIvPicgLiBfX0ZJTEVfXyAuICcgOiAoJyAuIF9fQ0xBU1NfXyAuICcgOjogJyAuIF9fRlVOQ1RJT05fXyAuICcpIDogJyAuIF9fTElORV9fIC4gJzxici8+Jyk7DQogICAgZGllKCc8YnIvPlJJUCE8YnIvPicpOw0KICAgIA0KICAgIC8vIEltcG9ydCBkYXRhIHRvIGRhdGFiYXNlDQogICAgZm9yZWFjaCgkZGF0YWJhc2VfdmFsdWVzIGFzICRpdGVtX3ZhbHVlcykNCiAgICB7DQoNCiAgICAgICRvYmogPSAkdGhpcy0+SW5pdGlhdGVJdGVtKCk7DQoNCiAgICAgIGZvcmVhY2goICRpdGVtX3ZhbHVlcyBhcyAka2V5ID0+ICR2YWx1ZSApDQogICAgICB7DQoNCiAgICAgICAgaWYoICRrZXkgPT0gJ2l0ZW1faWQnICYmICFpc19udW1lcmljKCAkdmFsdWUgKSApIGNvbnRpbnVlOw0KDQogICAgICAgICRrZXkgPSB1dGY4X2VuY29kZSggJGtleSApOw0KICAgICAgICAkdmFsdWUgPSBleHBsb2RlKCBMSVNFX1ZBTFVFX1NFUEFSQVRPUiwgdXRmOF9lbmNvZGUoICR2YWx1ZSApICk7DQoNCiAgICAgICAgJG9iai0+U2V0UHJvcGVydHlWYWx1ZSggJGtleSwgJHZhbHVlICk7DQogICAgICAgIGlmKCAka2V5ID09ICdpdGVtX2lkJyApIExJU0VJdGVtT3BlcmF0aW9uczo6TG9hZCggJHRoaXMsICRvYmogKTsgLy8gPC0gVHJ5IGxvYWRpbmcgaXRlbSBpZiB3ZSBhY3R1YWxseSBnb3QgSUQuDQogICAgICB9DQoNCiAgICAgICR0aGlzLT5TYXZlSXRlbSggJG9iaiApOw0KDQogICAgICB1bnNldCggJG9iaiApOw0KICAgIH0NCiAgDQogICAgLy8gUmVkaXJlY3QgYmFjayB0byBsaXN0aW5nDQogICAgLy8kcGFyYW1zID0gYXJyYXkoICdhY3RpdmVfdGFiJyA9PiAnaXRlbXRhYicgKTsNCiAgICAvLyR0aGlzLT5SZWRpcmVjdCggJGlkLCAnZGVmYXVsdGFkbWluJywgJHJldHVybmlkLCAkcGFyYW1zICk7DQogICovDQoNCn0gLy8gZW5kIG9mIGVycm9yIGNoZWNrDQogIA0KDQokY3VycmVudCA9ICRjbnQ7DQoNCiRkYXRhID0gWw0KICAgICAgICAgICdjdXJyZW50JyA9PiAkY3N2LT5rZXkoKSwNCiAgICAgICAgICAnZG9uZScgICAgPT4gJGRvbmUsDQogICAgICAgICAgJ1BPU1QnICAgID0+IHByaW50X3IoJF9QT1NULCAxKSwNCiAgICAgICAgICAnZXJyb3JzJyAgPT4gJGVycm9ycw0KICAgICAgICBdOw0KDQplY2hvIGpzb25fZW5jb2RlKCRkYXRhKTsNCmV4aXQ7DQo/Pg==]]></data>
	</file>
	<file>
	  <filename>/framework/action.admin_editcategory.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHANCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQojIExJU0UgLSBMaXN0IEl0IFNwZWNpYWwgRWRpdGlvbg0KIyBWZXJzaW9uIDEuMg0KIyBBIGZvcmsgb2YgTGlzdEkyDQojIG1haW50YWluZWQgYnkgRmVybmFuZG8gTW9yZ2FkbyBBS0EgSm8gTW9yZw0KIyBzaW5jZSAyMDE1DQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIw0KIyBPcmlnaW5hbCBBdXRob3I6IEJlbiBNYWxlbiwgPGJlbkBjb25jZXB0ZmFjdG9yeS5jb20uYXU+DQojIENvLU1haW50YWluZXI6IFNpbW9uIFJhZGZvcmQsIDxzaW1vbkBjb25jZXB0ZmFjdG9yeS5jb20uYXU+DQojIFdlYjogd3d3LmNvbmNlcHRmYWN0b3J5LmNvbS5hdQ0KIw0KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCiMNCiMgTWFpbnRhaW5lciBzaW5jZSAyMDExIHVwIHRvIDIwMTQ6IEpvbmF0aGFuIFNjaG1pZCwgPGhpQGpvbmF0aGFuc2NobWlkLmRlPg0KIyBXZWI6IHd3dy5qb25hdGhhbnNjaG1pZC5kZQ0KIw0KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCiMNCiMgU29tZSB3YWNrb3Mgc3RhcnRlZCBkZXN0cm95aW5nIHN0dWZmIHNpbmNlIDIwMTIgYW5kIHN0b3BwZWQgYXQgMjAxNDoNCiMNCiMgVGFwaW8gTMO2eXR0eSwgPHRhcHNhQG9yYW5nZS1tZWRpYS5maT4NCiMgV2ViOiB3d3cub3JhbmdlLW1lZGlhLmZpDQojDQojIEdvcmFuIElsaWMsIDx1bmlxdTNlQGdtYWlsLmNvbT4NCiMgV2ViOiB3d3cuaWNoLW1hY2gtZGFzLmF0DQojDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIw0KIyBMSVNFIGlzIGEgQ01TIE1hZGUgU2ltcGxlIG1vZHVsZSB0aGF0IGVuYWJsZXMgdGhlIHdlYiBkZXZlbG9wZXIgdG8gY3JlYXRlDQojIG11bHRpcGxlIGxpc3RzIHRocm91Z2hvdXQgYSBzaXRlLiBJdCBjYW4gYmUgZHVwbGljYXRlZCBhbmQgZ2l2ZW4gZnJpZW5kbHkNCiMgbmFtZXMgZm9yIGVhc2llciBjbGllbnQgbWFpbnRlbmFuY2UuDQojDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIyBCRUdJTl9MSUNFTlNFDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIyBUaGlzIGZpbGUgaXMgcGFydCBvZiBMSVNFDQojIExJU0UgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5DQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5DQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yDQojIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uDQojDQojIExJU0UgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLA0KIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZg0KIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlDQojIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuDQojIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlDQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlDQojIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcgVVNBDQojIE9yIHJlYWQgaXQgb25saW5lOiBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwNCiMNCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQojIEVORF9MSUNFTlNFDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KDQppZiggIWRlZmluZWQoJ0NNU19WRVJTSU9OJykgKSBleGl0Ow0KDQppZiAoISR0aGlzLT5DaGVja1Blcm1pc3Npb24oJHRoaXMtPl9HZXRNb2R1bGVBbGlhcygpIC4gJ19tb2RpZnlfY2F0ZWdvcnknKSkgcmV0dXJuOw0KDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQojIENoZWNrIHBhcmFtcw0KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KDQppZiAoaXNzZXQoJHBhcmFtc1snY2FuY2VsJ10pKSB7DQoNCiAgICAkcGFyYW1zID0gYXJyYXkoJ2FjdGl2ZV90YWInID0+ICdjYXRlZ29yeXRhYicpOw0KICAgICR0aGlzLT5SZWRpcmVjdCgkaWQsICdkZWZhdWx0YWRtaW4nLCAkcmV0dXJuaWQsICRwYXJhbXMpOw0KfQ0KDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQojIEluaXQgcGFyYW1zDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQoNCiRjYXRlZ29yeV9pZCAgICAgIAkJCT0gbGlzZV91dGlsczo6aW5pdF92YXIoJ2NhdGVnb3J5X2lkJywgJHBhcmFtcywgLTEpOw0KJG5hbWUgICAgICAgCQkJIAk9IGxpc2VfdXRpbHM6OmluaXRfdmFyKCduYW1lJywgJHBhcmFtcywgJycpOw0KJGFsaWFzCQkgCQkJIAk9IGxpc2VfdXRpbHM6OmluaXRfdmFyKCdhbGlhcycsICRwYXJhbXMsICcnKTsNCiRkZXNjcmlwdGlvbgkJCQk9IGxpc2VfdXRpbHM6OmluaXRfdmFyKCdkZXNjcmlwdGlvbicsICRwYXJhbXMsICcnKTsNCiRwYXJlbnRfaWQgCQkJCSAJPSBsaXNlX3V0aWxzOjppbml0X3ZhcigncGFyZW50X2lkJywgJHBhcmFtcywgLTEpOw0KJGFjdGl2ZSAgICAgIAkJCSAJPSAxOw0KDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQojIEluaXQgSXRlbQ0KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KDQokb2JqID0gJHRoaXMtPkxvYWRDYXRlZ29yeUJ5SWRlbnRpZmllcignY2F0ZWdvcnlfaWQnLCAkY2F0ZWdvcnlfaWQpOw0KDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQojIFN1Ym1pdA0KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KDQppZiAoaXNzZXQoJHBhcmFtc1snc3VibWl0J10pIHx8IGlzc2V0KCRwYXJhbXNbJ2FwcGx5J10pIHx8IGlzc2V0KCRwYXJhbXNbJ3NhdmVfY3JlYXRlJ10pKSB7DQoNCgkkZXJyb3JzID0gYXJyYXkoKTsNCg0KICAgIC8vIGNoZWNrIGNhdGVnb3J5IG5hbWUNCiAgICBpZiAoJG5hbWUgPT0gJycpIHsNCiAgICAgICAgJGVycm9yc1tdID0gJHRoaXMtPk1vZExhbmcoJ2NhdGVnb3J5X25hbWVfZW1wdHknKTsNCiAgICB9DQoNCiAgICAvLyBjaGVjayBhbGlhcw0KLyogICAgaWYgKCFsaXNlX3V0aWxzOjppc192YWxpZF9hbGlhcygkYWxpYXMpICYmICFlbXB0eSgkYWxpYXMpKSB7DQogICAgICAgICRlcnJvcnNbXSA9ICR0aGlzLT5Nb2RMYW5nKCdhbGlhc19pbnZhbGlkJyk7DQogICAgfSovDQoJDQoJLy8gQ2hlY2sgZm9yIGR1cGxpY2F0ZQ0KCSRwYXJtcyA9IGFycmF5KCk7DQoJJHF1ZXJ5ID0gJ1NFTEVDVCAqIEZST00gJyAuIGNtc19kYl9wcmVmaXgoKSAuICdtb2R1bGVfJyAuICR0aGlzLT5fR2V0TW9kdWxlQWxpYXMoKSAuICdfY2F0ZWdvcnkgV0hFUkUgY2F0ZWdvcnlfYWxpYXMgPSA/JzsNCgkkcGFybXNbXSA9ICRhbGlhczsNCg0KCWlmKCRjYXRlZ29yeV9pZCA+IDApew0KCQkkcXVlcnkgLj0gJyBBTkQgY2F0ZWdvcnlfaWQgIT0gPyc7DQoJCSRwYXJtc1tdID0gJGNhdGVnb3J5X2lkOw0KCX0NCgkNCgkkZXhpc3RzID0gJGRiLT5HZXRPbmUoJHF1ZXJ5LCAkcGFybXMpOw0KDQogICAgaWYgKCRleGlzdHMpIHsNCiAgICAgICAgJGVycm9yc1tdID0gJHRoaXMtPk1vZExhbmcoJ2NhdGVnb3J5X2FsaWFzX2V4aXN0cycpOw0KICAgIH0JDQoNCgkvLyB0aXRsZSBhbmQgcmVxdWlyZWQgZmllbGRzIGhhdmUgdmFsdWVzLCBsZXQncyBjb250aW51ZQ0KCWlmIChlbXB0eSgkZXJyb3JzKSkgew0KCQ0KCQkkb2JqLT5uYW1lICAgICAgICAJPSAkbmFtZTsNCgkJJG9iai0+YWxpYXMJCSAJPSAkYWxpYXM7DQoJCSRvYmotPmRlc2NyaXB0aW9uCT0gJGRlc2NyaXB0aW9uOw0KCQkkb2JqLT5wYXJlbnRfaWQgCT0gJHBhcmVudF9pZDsJCQ0KCQkkb2JqLT5hY3RpdmUgICAgICAgCT0gaXNzZXQoJHBhcmFtc1snYWN0aXZlJ10pID8gMSA6IDA7DQoJCQ0KCQkkdGhpcy0+U2F2ZUNhdGVnb3J5KCRvYmopOw0KCQkNCgkJLy8gaWYgYXBwbHkgYW5kIGFqYXggICAgICAgICAgIA0KCQlpZiAoaXNzZXQoJHBhcmFtc1snYXBwbHknXSkgJiYgaXNzZXQoJHBhcmFtc1snYWpheCddKSkgew0KCQkJJHJlc3BvbnNlID0gJzxFZGl0SXRlbT4nOw0KCQkJJHJlc3BvbnNlIC49ICc8UmVzcG9uc2U+U3VjY2VzczwvUmVzcG9uc2U+JzsNCgkJCSRyZXNwb25zZSAuPSAnPERldGFpbHM+PCFbQ0RBVEFbJyAuICR0aGlzLT5Nb2RMYW5nKCdjaGFuZ2Vzc2F2ZWQnKSAuICddXT48L0RldGFpbHM+JzsgICAgICAgICAgICAgICANCgkJCSRyZXNwb25zZSAuPSAnPC9FZGl0SXRlbT4nOw0KCQkJZWNobyAkcmVzcG9uc2U7DQoJCQlyZXR1cm47DQoJCX0gDQoJCQ0KCQkvLyBpZiBzYXZlIGFuZCBjcmVhdGUgbmV3DQoJCWlmIChpc3NldCgkcGFyYW1zWydzYXZlX2NyZWF0ZSddKSApIHsNCgkJCSR0aGlzLT5SZWRpcmVjdCgkaWQsICdhZG1pbl9lZGl0Y2F0ZWdvcnknLCAkcmV0dXJuaWQsIGFycmF5KA0KCQkJCSdtZXNzYWdlJyA9PiAnc2F2ZWNyZWF0ZV9tZXNzYWdlJw0KCQkJKSk7DQoJCX0gIAkJICAgIA0KDQoJCS8vIHNob3cgc2F2ZWQgbWVzc2FnZQ0KCQlpZiAoaXNzZXQoJHBhcmFtc1snc3VibWl0J10pKSB7DQoJCQkkdGhpcy0+UmVkaXJlY3QoJGlkLCAnZGVmYXVsdGFkbWluJywgJHJldHVybmlkLCBhcnJheSgNCgkJCQknYWN0aXZlX3RhYicgPT4gJ2NhdGVnb3J5dGFiJywNCgkJCQknbWVzc2FnZScgPT4gJ2NoYW5nZXNzYXZlZCcNCgkJCSkpOw0KCQkJDQoJCX0gZWxzZSB7DQoJCQllY2hvICR0aGlzLT5TaG93TWVzc2FnZSgkdGhpcy0+TW9kTGFuZygnY2hhbmdlc3NhdmVkJykpOw0KCQl9DQoJCQ0KCX0gLy8gZW5kIGVycm9yIGNoZWNrDQoJDQp9IC8vIGVuZCBzdWJtaXQgb3IgYXBwbHkNCmVsc2VpZigkb2JqLT5jYXRlZ29yeV9pZCA+IDApIHsNCg0KCSRjYXRlZ29yeV9pZCAJPSAkb2JqLT5jYXRlZ29yeV9pZDsJDQoJJG5hbWUgCQkJPSAkb2JqLT5uYW1lOw0KCSRhbGlhcwkJICAJPSAkb2JqLT5hbGlhczsNCgkkZGVzY3JpcHRpb24JPSAkb2JqLT5kZXNjcmlwdGlvbjsNCgkkcGFyZW50X2lkIAkJPSAkb2JqLT5wYXJlbnRfaWQ7DQoJJGFjdGl2ZSAgICAgICAJPSAkb2JqLT5hY3RpdmU7DQp9DQoNCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0NCiMgTWVzc2FnZSBjb250cm9sDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQoNCi8vIGRpc3BsYXkgZXJyb3JzIGlmIHRoZXJlIGFyZSBhbnkNCmlmICghZW1wdHkoJGVycm9ycykpIHsNCiAgICBpZiAoaXNzZXQoJHBhcmFtc1snYXBwbHknXSkgJiYgaXNzZXQoJHBhcmFtc1snYWpheCddKSkgew0KICAgICAgICAkcmVzcG9uc2UgPSAnPEVkaXRJdGVtPic7DQogICAgICAgICRyZXNwb25zZSAuPSAnPFJlc3BvbnNlPkVycm9yPC9SZXNwb25zZT4nOw0KICAgICAgICAkcmVzcG9uc2UgLj0gJzxEZXRhaWxzPjwhW0NEQVRBWyc7DQogICAgICAgIGZvcmVhY2ggKCRlcnJvcnMgYXMgJGVycm9yKSB7DQogICAgICAgICAgICAkcmVzcG9uc2UgLj0gJzxsaT4nIC4gJGVycm9yIC4gJzwvbGk+JzsNCiAgICAgICAgfQ0KICAgICAgICAkcmVzcG9uc2UgLj0gJ11dPjwvRGV0YWlscz4nOw0KICAgICAgICAkcmVzcG9uc2UgLj0gJzwvRWRpdEl0ZW0+JzsNCiAgICAgICAgZWNobyAkcmVzcG9uc2U7DQogICAgICAgIHJldHVybjsNCiAgICB9IGVsc2Ugew0KICAgICAgICBlY2hvICR0aGlzLT5TaG93RXJyb3JzKCRlcnJvcnMpOw0KICAgIH0NCn0NCg0KaWYoaXNzZXQoJHBhcmFtc1snbWVzc2FnZSddKSAmJiBlbXB0eSgkZXJyb3JzKSkgDQogICAgZWNobyAkdGhpcy0+U2hvd01lc3NhZ2UoJHRoaXMtPk1vZExhbmcoJ2NoYW5nZXNzYXZlZF9jcmVhdGUnKSk7DQoNCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0NCiMgU21hcnR5IHByb2Nlc3NpbmcNCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0NCg0KJHNtYXJ0eS0+YXNzaWduKCdjYXRlZ29yeU9iamVjdCcsICRvYmopOw0KDQokc21hcnR5LT5hc3NpZ24oJ2JhY2tsaW5rJywgJHRoaXMtPkNyZWF0ZUJhY2tMaW5rKCdjYXRlZ29yeXRhYicpKTsNCiRzbWFydHktPmFzc2lnbigndGl0bGUnLCAgICAgKGlzc2V0KCRjYXRlZ29yeV9pZCkgPyAkdGhpcy0+TW9kTGFuZygnZWRpdF9jYXRlZ29yeScpIDogJHRoaXMtPk1vZExhbmcoJ2FkZCcsICR0aGlzLT5Nb2RMYW5nKCdjYXRlZ29yeScpKSkpOw0KDQokc21hcnR5LT5hc3NpZ24oJ3N0YXJ0Zm9ybScsICR0aGlzLT5DcmVhdGVGb3JtU3RhcnQoJGlkLCAnYWRtaW5fZWRpdGNhdGVnb3J5JywgJHJldHVybmlkLCAncG9zdCcsICdtdWx0aXBhcnQvZm9ybS1kYXRhJywgZmFsc2UsICcnLCAkcGFyYW1zKSk7DQokc21hcnR5LT5hc3NpZ24oJ2VuZGZvcm0nLCAkdGhpcy0+Q3JlYXRlRm9ybUVuZCgpKTsNCg0KJHNtYXJ0eS0+YXNzaWduKCdpbnB1dF9jYXRlZ29yeScsICAkdGhpcy0+Q3JlYXRlSW5wdXRUZXh0KCRpZCwgJ25hbWUnLCAkbmFtZSwgMjApKTsNCiRzbWFydHktPmFzc2lnbignaW5wdXRfYWxpYXMnLCAkdGhpcy0+Q3JlYXRlSW5wdXRUZXh0KCRpZCwgJ2FsaWFzJywgJGFsaWFzLCAyMCwgMjU1KSk7DQokc21hcnR5LT5hc3NpZ24oJ2lucHV0X2NhdGVnb3J5X2Rlc2NyaXB0aW9uJywgJHRoaXMtPkNyZWF0ZVRleHRBcmVhKHRydWUsICRpZCwgJGRlc2NyaXB0aW9uLCAnZGVzY3JpcHRpb24nLCAnJywgJycsICcnLCAnJywgJzgwJywgJzMnKSk7DQokc21hcnR5LT5hc3NpZ24oJ2lucHV0X2FjdGl2ZScsICR0aGlzLT5DcmVhdGVJbnB1dGNoZWNrYm94KCRpZCwgJ2FjdGl2ZScsIDEsICRhY3RpdmUpKTsNCg0KJHNtYXJ0eS0+YXNzaWduKCdpbnB1dF9wYXJlbnQnLCAkdGhpcy0+Q3JlYXRlSW5wdXREcm9wZG93bigkaWQsICdwYXJlbnRfaWQnLCBMSVNFQ2F0ZWdvcnlPcGVyYXRpb25zOjpHZXRIaWVyYXJjaHlMaXN0KCR0aGlzLCB0cnVlLCAkY2F0ZWdvcnlfaWQpLCAtMSwgJHBhcmVudF9pZCkpOw0KLyoNCiRzbWFydHktPmFzc2lnbignc3VibWl0JywgJHRoaXMtPkNyZWF0ZUlucHV0U3VibWl0KCRpZCwgJ3N1Ym1pdCcsIGxhbmcoJ3N1Ym1pdCcpKSk7DQokc21hcnR5LT5hc3NpZ24oJ2FwcGx5JywgJHRoaXMtPkNyZWF0ZUlucHV0U3VibWl0KCRpZCwgJ2FwcGx5JywgbGFuZygnYXBwbHknKSkpOw0KJHNtYXJ0eS0+YXNzaWduKCdzYXZlX2NyZWF0ZScsICR0aGlzLT5DcmVhdGVJbnB1dFN1Ym1pdCgkaWQsICdzYXZlX2NyZWF0ZScsICR0aGlzLT5Nb2RMYW5nKCdzYXZlX2NyZWF0ZScpKSk7DQokc21hcnR5LT5hc3NpZ24oJ2NhbmNlbCcsICR0aGlzLT5DcmVhdGVJbnB1dFN1Ym1pdCgkaWQsICdjYW5jZWwnLCBsYW5nKCdjYW5jZWwnKSkpOw0KKi8NCmVjaG8gJHRoaXMtPk1vZFByb2Nlc3NUZW1wbGF0ZSgnZWRpdGNhdGVnb3J5LnRwbCcpOw0KDQo/Pg==]]></data>
	</file>
	<file>
	  <filename>/framework/action.admin_editfielddef.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHANCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQojIExJU0UgLSBMaXN0IEl0IFNwZWNpYWwgRWRpdGlvbg0KIyBWZXJzaW9uIDEuMg0KIyBBIGZvcmsgb2YgTGlzdEkyDQojIG1haW50YWluZWQgYnkgRmVybmFuZG8gTW9yZ2FkbyBBS0EgSm8gTW9yZw0KIyBzaW5jZSAyMDE1DQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIw0KIyBPcmlnaW5hbCBBdXRob3I6IEJlbiBNYWxlbiwgPGJlbkBjb25jZXB0ZmFjdG9yeS5jb20uYXU+DQojIENvLU1haW50YWluZXI6IFNpbW9uIFJhZGZvcmQsIDxzaW1vbkBjb25jZXB0ZmFjdG9yeS5jb20uYXU+DQojIFdlYjogd3d3LmNvbmNlcHRmYWN0b3J5LmNvbS5hdQ0KIw0KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCiMNCiMgTWFpbnRhaW5lciBzaW5jZSAyMDExIHVwIHRvIDIwMTQ6IEpvbmF0aGFuIFNjaG1pZCwgPGhpQGpvbmF0aGFuc2NobWlkLmRlPg0KIyBXZWI6IHd3dy5qb25hdGhhbnNjaG1pZC5kZQ0KIw0KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCiMNCiMgU29tZSB3YWNrb3Mgc3RhcnRlZCBkZXN0cm95aW5nIHN0dWZmIHNpbmNlIDIwMTIgYW5kIHN0b3BwZWQgYXQgMjAxNDoNCiMNCiMgVGFwaW8gTMO2eXR0eSwgPHRhcHNhQG9yYW5nZS1tZWRpYS5maT4NCiMgV2ViOiB3d3cub3JhbmdlLW1lZGlhLmZpDQojDQojIEdvcmFuIElsaWMsIDx1bmlxdTNlQGdtYWlsLmNvbT4NCiMgV2ViOiB3d3cuaWNoLW1hY2gtZGFzLmF0DQojDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIw0KIyBMSVNFIGlzIGEgQ01TIE1hZGUgU2ltcGxlIG1vZHVsZSB0aGF0IGVuYWJsZXMgdGhlIHdlYiBkZXZlbG9wZXIgdG8gY3JlYXRlDQojIG11bHRpcGxlIGxpc3RzIHRocm91Z2hvdXQgYSBzaXRlLiBJdCBjYW4gYmUgZHVwbGljYXRlZCBhbmQgZ2l2ZW4gZnJpZW5kbHkNCiMgbmFtZXMgZm9yIGVhc2llciBjbGllbnQgbWFpbnRlbmFuY2UuDQojDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIyBCRUdJTl9MSUNFTlNFDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIyBUaGlzIGZpbGUgaXMgcGFydCBvZiBMSVNFDQojIExJU0UgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5DQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5DQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yDQojIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uDQojDQojIExJU0UgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLA0KIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZg0KIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlDQojIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuDQojIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlDQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlDQojIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcgVVNBDQojIE9yIHJlYWQgaXQgb25saW5lOiBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwNCiMNCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQojIEVORF9MSUNFTlNFDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KaWYoICFkZWZpbmVkKCdDTVNfVkVSU0lPTicpICkgZXhpdDsNCg0KaWYoISR0aGlzLT5DaGVja1Blcm1pc3Npb24oJHRoaXMtPl9HZXRNb2R1bGVBbGlhcygpIC4gJ19tb2RpZnlfb3B0aW9uJykpIHJldHVybjsNCiRzZXBhcmF0ZV9zZXR0aW5ncyA9ICR0aGlzLT5HZXRQcmVmZXJlbmNlKCdzZXBhcmF0ZV9zZXR0aW5ncycsIEZBTFNFKTsNCmlmKCRzZXBhcmF0ZV9zZXR0aW5ncykNCiAgJGFkbWluX2FjdGlvbiA9ICdhZG1pbl9zZXR0aW5ncyc7DQplbHNlDQogICRhZG1pbl9hY3Rpb24gPSAnZGVmYXVsdGFkbWluJzsNCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0NCiMgSW5pdCBwYXJhbXMNCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0NCmlmKGlzc2V0KCRwYXJhbXNbJ2NhbmNlbCddKSkgDQp7DQogICRwYXJhbXMgPSBhcnJheSgnYWN0aXZlX3RhYicgPT4gJ2ZpZWxkZGVmdGFiJyk7DQogICR0aGlzLT5SZWRpcmVjdCgkaWQsICRhZG1pbl9hY3Rpb24sICRyZXR1cm5pZCwgJHBhcmFtcyk7DQp9DQoNCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0NCiMgSW5pdCB2YXJpYWJsZXMNCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0NCiR0eXBlICAgICAgICAgICAgID0gbGlzZV91dGlsczo6aW5pdF92YXIoJ3R5cGUnLCAkcGFyYW1zLCBudWxsKTsNCiRmaWVsZGRlZl9pZCAgICAgID0gbGlzZV91dGlsczo6aW5pdF92YXIoJ2ZpZWxkZGVmX2lkJywgJHBhcmFtcywgbnVsbCk7DQokbmFtZSAgICAgICAgICAgICA9IGxpc2VfdXRpbHM6OmluaXRfdmFyKCduYW1lJywgJHBhcmFtcywgJycpOw0KJGFsaWFzICAgICAgICAgICAgPSBsaXNlX3V0aWxzOjppbml0X3ZhcignYWxpYXMnLCAkcGFyYW1zLCAnJyk7DQokaGVscCAgICAgICAgICAgICA9IGxpc2VfdXRpbHM6OmluaXRfdmFyKCdoZWxwJywgJHBhcmFtcywgJycpOw0KJGN1c3RvbV9pbnB1dCAgICAgPSBsaXNlX3V0aWxzOjppbml0X3ZhcignY3VzdG9tX2lucHV0JywgJHBhcmFtcywgYXJyYXkoKSk7DQokZXh0cmEgICAgICAgICAgICA9IGxpc2VfdXRpbHM6OmluaXRfdmFyKCdleHRyYScsICRwYXJhbXMsICcnKTsgLy8gPC0gKFJlbW92ZSB0aGlzIGluIDEuNSk/Pz8NCiRyZXF1aXJlZCAgICAgICAgID0gaXNzZXQoJHBhcmFtc1sncmVxdWlyZWQnXSkgPyAxIDogMDsNCiR0ZW1wbGF0ZSAgICAgICAgID0gbGlzZV91dGlsczo6aW5pdF92YXIoJ3RlbXBsYXRlJywgJHBhcmFtcywgJycpOw0KDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQojIEluaXQgZmllbGQgb2JqZWN0DQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQoNCi8vIExvYWQgZmllbGRkZWYgZnJvbSBkYXRhYmFzZQ0KaWYoIWVtcHR5KCAkZmllbGRkZWZfaWQpICkgDQp7DQogICRmaWVsZGRlZl9vYmogPSBMSVNFRmllbGRkZWZPcGVyYXRpb25zOjpMb2FkKCR0aGlzLCAnZmllbGRkZWZfaWQnLCAkZmllbGRkZWZfaWQpOw0KfSANCi8vIExvYWQgZmllbGRkZWYgZnJvbSB0eXBlDQplbHNlaWYoICFlbXB0eSgkdHlwZSkgKSANCnsNCiAgJGZpZWxkZGVmX29iaiA9IExJU0VGaWVsZGRlZk9wZXJhdGlvbnM6OkxvYWRGaWVsZGRlZkJ5VHlwZSgkdHlwZSk7DQp9DQoNCmlmKCBpc3NldCgkZmllbGRkZWZfb2JqKSAmJiBlbXB0eSgkdGVtcGxhdGUpICkgJHRlbXBsYXRlID0gJGZpZWxkZGVmX29iai0+R2V0VGVtcGxhdGUoKTsNCg0KDQoNCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0NCiMgRmlsbCBvcHRpb25zDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQoNCi8vSGFuZGxlIGZpZWxkIG9wdGlvbnMNCmlmKGNvdW50KCRjdXN0b21faW5wdXQpID4gMCkNCnsNCiAgZm9yZWFjaCgkY3VzdG9tX2lucHV0IGFzICRrZXkgPT4gJHZhbHVlKSANCiAgew0KICAgICRmaWVsZGRlZl9vYmotPlNldE9wdGlvblZhbHVlKCRrZXksICR2YWx1ZSk7DQogIH0NCn0NCg0KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIyBTdWJtaXQNCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0NCg0KaWYoaXNzZXQoJHBhcmFtc1snc3VibWl0J10pIHx8IGlzc2V0KCRwYXJhbXNbJ2FwcGx5J10pIHx8IGlzc2V0KCRwYXJhbXNbJ3NhdmVfY3JlYXRlJ10pKSANCnsNCg0KICAkZXJyb3JzICA9IGFycmF5KCk7DQoNCiAgICAvLyBjaGVjayB0eXBlDQogICAgaWYoIWlzc2V0KCRmaWVsZGRlZl9vYmopKSANCiAgICB7DQogICAgICAkZXJyb3JzW10gPSAkdGhpcy0+TW9kTGFuZygnZmllbGRkZWZfdHlwZV9ub3RzZXQnKTsNCiAgICB9ICANCiAgDQogICAgLy8gY2hlY2sgbmFtZQ0KICAgIGlmKCRuYW1lID09ICcnKSANCiAgICB7DQogICAgICAkZXJyb3JzW10gPSAkdGhpcy0+TW9kTGFuZygnZmllbGRkZWZfbmFtZV9lbXB0eScpOw0KICAgIH0NCg0KICAgIGlmKCBpc3NldCgkZmllbGRkZWZfaWQpICkNCiAgICB7ICAgICAgDQogICAgICAkcXVlcnkgPSAnU0VMRUNUIGZpZWxkZGVmX2lkIEZST00gJyAuIGNtc19kYl9wcmVmaXgoKSAuICdtb2R1bGVfJyAuICR0aGlzLT5fR2V0TW9kdWxlQWxpYXMoKSAuICdfZmllbGRkZWYgV0hFUkUgYWxpYXMgPSA/IEFORCBmaWVsZGRlZl9pZCAhPSA/JzsNCiAgICAgICRleGlzdHMgPSAkZGItPkdldE9uZSgkcXVlcnksIGFycmF5KCRhbGlhcywgJGZpZWxkZGVmX2lkKSk7DQogICAgfQ0KICAgIGVsc2UgDQogICAgew0KICAgICAgJHF1ZXJ5ID0gJ1NFTEVDVCBmaWVsZGRlZl9pZCBGUk9NICcgLiBjbXNfZGJfcHJlZml4KCkgLiAnbW9kdWxlXycgLiAkdGhpcy0+X0dldE1vZHVsZUFsaWFzKCkgLiAnX2ZpZWxkZGVmIFdIRVJFIGFsaWFzID0gPyc7DQogICAgICAkZXhpc3RzID0gJGRiLT5HZXRPbmUoJHF1ZXJ5LCBhcnJheSgkYWxpYXMpKTsNCiAgICB9ICANCg0KICAgIC8vIGNoZWNrIGFsaWFzDQogICAgaWYoIWxpc2VfdXRpbHM6OmlzX3ZhbGlkX2FsaWFzKCRhbGlhcykgJiYgIWVtcHR5KCRhbGlhcykpIA0KICAgIHsNCiAgICAgICRlcnJvcnNbXSA9ICR0aGlzLT5Nb2RMYW5nKCdhbGlhc19pbnZhbGlkJyk7DQogICAgfQ0KICAgIGVsc2UNCiAgICB7DQogICAgICBpZiggDQogICAgICAgICAgaXNzZXQoJGZpZWxkZGVmX2lkKSANCiAgICAgICAgICAmJiAhZW1wdHkoJGFsaWFzKSANCiAgICAgICAgICAmJiAkYWxpYXMgIT0gJGZpZWxkZGVmX29iai0+R2V0QWxpYXMoKSANCiAgICAgICAgICAmJiBMSVNFRmllbGRkZWZPcGVyYXRpb25zOjpMb2FkKCR0aGlzLCAnYWxpYXMnLCAkYWxpYXMpICE9IGZhbHNlDQogICAgICAgICAgJiYgJGV4aXN0cw0KICAgICAgICApIA0KICAgICAgICB7DQogICAgICAgICAgJGVycm9yc1tdID0gJHRoaXMtPk1vZExhbmcoJ2FsaWFzX2R1cGxpY2F0ZScpOw0KICAgICAgICB9DQogICAgfQ0KDQogICAgaWYoJGV4aXN0cykNCiAgICB7DQogICAgICAkZXJyb3JzW10gPSAkdGhpcy0+TW9kTGFuZygnZmllbGRkZWZfYWxpYXNfZXhpc3RzJyk7DQogICAgfQ0KICANCiAgLy8gRG8gZXJyb3IgY2hlY2sgdGhhdCByZXF1aXJlcyBvYmplY3QNCiAgICBpZihlbXB0eSgkZXJyb3JzKSkgDQogICAgeyANCiAgICAgIC8vIGNoZWNrIGlmIHVuaXF1ZQ0KICAgICAgJHR5cGVfZXhpc3RzID0gTElTRUZpZWxkZGVmT3BlcmF0aW9uczo6VGVzdEV4aXN0ZW5jZUJ5VHlwZSgkdGhpcywgJGZpZWxkZGVmX29iai0+R2V0VHlwZSgpKTsNCiAgICAgIA0KICAgICAgaWYoJHR5cGVfZXhpc3RzICYmICR0eXBlX2V4aXN0cyAhPSAkZmllbGRkZWZfb2JqLT5HZXRJZCgpICYmICRmaWVsZGRlZl9vYmotPklzVW5pcXVlKCkpDQogICAgICB7DQogICAgICAgICRlcnJvcnNbXSA9ICR0aGlzLT5Nb2RMYW5nKCdmaWVsZGRlZl9pc191bmlxdWUnKTsgDQogICAgICB9DQogICAgfQ0KICANCiAgLy8gRG8gYWN0dWFsIGVycm9yIGNoZWNrDQogIGlmIChlbXB0eSgkZXJyb3JzKSkgDQogIHsNCiAgICAkZmllbGRkZWZfb2JqLT5TZXROYW1lKCRuYW1lKTsNCiAgICAkZmllbGRkZWZfb2JqLT5TZXRBbGlhcygkYWxpYXMpOw0KICAgICRmaWVsZGRlZl9vYmotPlNldERlc2MoJGhlbHApOw0KICAgICRmaWVsZGRlZl9vYmotPlNldFJlcXVpcmVkKCRyZXF1aXJlZCk7ICANCiAgICAkZmllbGRkZWZfb2JqLT5TZXRUZW1wbGF0ZSgkdGVtcGxhdGUpOw0KICANCiAgICAvL0hhbmRsZSBmaWVsZCBvcHRpb25zIC0gQ2hlY2sgaWYgbW92aW5nIHRoaXMgaGVyZSBoYXMgc29tZSB3ZWlyZCByZWFjdGlvbg0KICAgIGlmKGNvdW50KCRjdXN0b21faW5wdXQpID4gMCkgDQogICAgew0KDQogICAgICBmb3JlYWNoKCRjdXN0b21faW5wdXQgYXMgJGtleSA9PiAkdmFsdWUpIA0KICAgICAgew0KICAgICAgLy8gaGFuZGxlIGFycmF5IHZhbHVlcw0KICAgICAgICBpZiggaXNfYXJyYXkoJHZhbHVlKSApDQogICAgICAgIHsNCiAgICAgICAgICAkZmllbGRkZWZfb2JqLT5TZXRPcHRpb25WYWx1ZSggJGtleSwgaW1wbG9kZSgnLCcsICR2YWx1ZSkgKTsNCiAgICAgICAgfQ0KICAgICAgICBlbHNlDQogICAgICAgIHsNCiAgICAgICAgICAkZmllbGRkZWZfb2JqLT5TZXRPcHRpb25WYWx1ZSgka2V5LCAkdmFsdWUpOyANCiAgICAgICAgfQ0KICAgICAgfQ0KICAgIH0gDQogIA0KICAgIC8vIFVwZGF0ZSBleHRyYSAoUmVtb3ZlIHRoaXMgaW4gMS41KT8/Pw0KICAgIGlmKCRmaWVsZGRlZl9pZCA+IDApIA0KICAgIHsNCiAgICANCiAgICAgICRxdWVyeSA9ICdVUERBVEUgJyAuIGNtc19kYl9wcmVmaXgoKSAuICdtb2R1bGVfJyAuICR0aGlzLT5fR2V0TW9kdWxlQWxpYXMoKSAuICdfZmllbGRkZWYgU0VUIGV4dHJhID0gPyBXSEVSRSBmaWVsZGRlZl9pZCA9ID8nOyAgICANCiAgICAgICRyZXN1bHQgPSAkZGItPkV4ZWN1dGUoJHF1ZXJ5LCBhcnJheSgkZXh0cmEsICRmaWVsZGRlZl9pZCkpOw0KICAgICAgDQogICAgICBpZiAoISRyZXN1bHQpIA0KICAgICAgICAvL2RpZSgnRkFUQUwgU1FMIEVSUk9SOiAnIC4gJGRiLT5FcnJvck1zZygpIC4gJzxici8+UVVFUlk6ICcgLiAkZGItPnNxbCk7ICAgIA0KICAgICAgICB0aHJvdyBuZXcgXExJU0VcRXhjZXB0aW9uKCRkYi0+RXJyb3JObygpIC4gJyAtICcgLiAkZGItPkVycm9yTXNnKCkgLiAnIC0gUXVlcnk6ICcgLiAkZGItPnNxbCwgXExJU0VcRXJyb3I6OkRJU0NSRVRFX0RCICk7ICANCiAgICB9DQogICAgDQogICAgLy8gU2F2ZSBmaWVsZA0KICAgIExJU0VGaWVsZGRlZk9wZXJhdGlvbnM6OlNhdmUoJHRoaXMsICRmaWVsZGRlZl9vYmopOw0KICANCiAgICAvLyBpZiBhcHBseSBhbmQgYWpheCAgICAgICAgICAgDQogICAgaWYoaXNzZXQoJHBhcmFtc1snYXBwbHknXSkgJiYgaXNzZXQoJHBhcmFtc1snYWpheCddKSkgew0KICAgICAgJHJlc3BvbnNlID0gJzxFZGl0SXRlbT4nOw0KICAgICAgJHJlc3BvbnNlIC49ICc8UmVzcG9uc2U+U3VjY2VzczwvUmVzcG9uc2U+JzsNCiAgICAgICRyZXNwb25zZSAuPSAnPERldGFpbHM+PCFbQ0RBVEFbJyAuICR0aGlzLT5Nb2RMYW5nKCdjaGFuZ2Vzc2F2ZWQnKSAuICddXT48L0RldGFpbHM+JzsgICAgICAgICAgICAgICANCiAgICAgICRyZXNwb25zZSAuPSAnPC9FZGl0SXRlbT4nOw0KICAgICAgZWNobyAkcmVzcG9uc2U7DQogICAgICByZXR1cm47DQogICAgfSANCiAgICANCiAgICAvLyBpZiBzYXZlIGFuZCBjcmVhdGUgbmV3DQogICAgaWYoaXNzZXQoJHBhcmFtc1snc2F2ZV9jcmVhdGUnXSkgKSB7DQogICAgICAkdGhpcy0+UmVkaXJlY3QoJGlkLCAnYWRtaW5fZWRpdGZpZWxkZGVmJywgJHJldHVybmlkLCBhcnJheSgNCiAgICAgICAgJ21lc3NhZ2UnID0+ICdzYXZlY3JlYXRlX21lc3NhZ2UnDQogICAgICApKTsNCiAgICB9ICAgICAgICAgIA0KDQogICAgLy8gc2hvdyBzYXZlZCBtZXNzYWdlDQogICAgaWYoaXNzZXQoJHBhcmFtc1snc3VibWl0J10pKSB7DQogICAgICAkdGhpcy0+UmVkaXJlY3QoJGlkLCAkYWRtaW5fYWN0aW9uLCAkcmV0dXJuaWQsIGFycmF5KA0KICAgICAgICAnYWN0aXZlX3RhYicgPT4gJ2ZpZWxkZGVmdGFiJywNCiAgICAgICAgJ21lc3NhZ2UnID0+ICdjaGFuZ2Vzc2F2ZWQnDQogICAgICApKTsNCiAgICAgIA0KICAgIH0gZWxzZSB7DQogICAgICBlY2hvICR0aGlzLT5TaG93TWVzc2FnZSgkdGhpcy0+TW9kTGFuZygnY2hhbmdlc3NhdmVkJykpOw0KICAgIH0gIA0KICANCiAgfSAvLyBlbmQgZXJyb3IgY2hlY2sNCiAgDQp9IC8vIGVuZCBzdWJtaXQgb3IgYXBwbHkNCmVsc2VpZihpc3NldCgkZmllbGRkZWZfb2JqKSAmJiAkZmllbGRkZWZfaWQgPiAwKSANCnsNCiAgJHR5cGUgICAgICAgICA9ICRmaWVsZGRlZl9vYmotPkdldFR5cGUoKTsNCiAgJG5hbWUgICAgICAgICA9ICRmaWVsZGRlZl9vYmotPkdldE5hbWUoKTsNCiAgJGFsaWFzICAgICAgICA9ICRmaWVsZGRlZl9vYmotPkdldEFsaWFzKCk7DQogICRoZWxwICAgICAgICAgPSAkZmllbGRkZWZfb2JqLT5HZXREZXNjKCk7DQogICRyZXF1aXJlZCAgICAgPSAkZmllbGRkZWZfb2JqLT5Jc1JlcXVpcmVkKCk7DQogICR0ZW1wbGF0ZSAgICAgPSAkZmllbGRkZWZfb2JqLT5HZXRUZW1wbGF0ZSgpOw0KfQ0KDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQojIExvYWQgaW5zdHJ1Y3Rpb25zIChSZW1vdmUgdGhpcyBpbiAxLjUpPz8/Pw0KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KDQokcXVlcnkgPSAnU0VMRUNUIGV4dHJhIEZST00gJyAuIGNtc19kYl9wcmVmaXgoKSAuICdtb2R1bGVfJyAuICR0aGlzLT5fR2V0TW9kdWxlQWxpYXMoKSAuICdfZmllbGRkZWYgV0hFUkUgZmllbGRkZWZfaWQgPSA/JzsNCiRleHRyYSA9ICRkYi0+R2V0T25lKCRxdWVyeSwgYXJyYXkoJGZpZWxkZGVmX2lkKSk7DQoNCmlmKCRleHRyYSAmJiAhZW1wdHkoJGV4dHJhKSkgDQp7DQogICRzbWFydHktPmFzc2lnbignaW5wdXRfZXh0cmEnLCAkdGhpcy0+Q3JlYXRlVGV4dEFyZWEoZmFsc2UsICRpZCwgJGV4dHJhLCAnZXh0cmEnKSk7DQp9ICANCg0KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIyBNZXNzYWdlIGNvbnRyb2wNCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0NCg0KLy8gZGlzcGxheSBlcnJvcnMgaWYgdGhlcmUgYXJlIGFueQ0KaWYgKCFlbXB0eSgkZXJyb3JzKSkgew0KICAgIGlmIChpc3NldCgkcGFyYW1zWydhcHBseSddKSAmJiBpc3NldCgkcGFyYW1zWydhamF4J10pKSB7DQogICAgICAgICRyZXNwb25zZSA9ICc8RWRpdEl0ZW0+JzsNCiAgICAgICAgJHJlc3BvbnNlIC49ICc8UmVzcG9uc2U+RXJyb3I8L1Jlc3BvbnNlPic7DQogICAgICAgICRyZXNwb25zZSAuPSAnPERldGFpbHM+PCFbQ0RBVEFbJzsNCiAgICAgICAgZm9yZWFjaCAoJGVycm9ycyBhcyAkZXJyb3IpIHsNCiAgICAgICAgICAgICRyZXNwb25zZSAuPSAnPGxpPicgLiAkZXJyb3IgLiAnPC9saT4nOw0KICAgICAgICB9DQogICAgICAgICRyZXNwb25zZSAuPSAnXV0+PC9EZXRhaWxzPic7DQogICAgICAgICRyZXNwb25zZSAuPSAnPC9FZGl0SXRlbT4nOw0KICAgICAgICBlY2hvICRyZXNwb25zZTsNCiAgICAgICAgcmV0dXJuOw0KICAgIH0gZWxzZSB7DQogICAgICAgIGVjaG8gJHRoaXMtPlNob3dFcnJvcnMoJGVycm9ycyk7DQogICAgfQ0KfQ0KDQppZihpc3NldCgkcGFyYW1zWydtZXNzYWdlJ10pICYmIGVtcHR5KCRlcnJvcnMpKSANCiAgICBlY2hvICR0aGlzLT5TaG93TWVzc2FnZSgkdGhpcy0+TW9kTGFuZygnY2hhbmdlc3NhdmVkX2NyZWF0ZScpKTsNCiAgDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQojIFNtYXJ0eSBwcm9jZXNzaW5nDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQoNCnVuc2V0KCRwYXJhbXNbJ3N1Ym1pdCddKTsgLy8gPz8/DQp1bnNldCgkcGFyYW1zWydhcHBseSddKTsgLy8gPz8/DQoNCmlmKGlzc2V0KCRmaWVsZGRlZl9vYmopKQ0KICAkc21hcnR5LT5hc3NpZ24oJ2ZpZWxkZGVmJywgJGZpZWxkZGVmX29iaik7DQoNCmlmKGlzc2V0KCRmaWVsZGRlZl9vYmopICYmICRmaWVsZGRlZl9pZCA+IDApDQp7DQogICRzbWFydHktPmFzc2lnbignaW5wdXR0eXBlJywgJGZpZWxkZGVmX29iai0+R2V0RnJpZW5kbHlUeXBlKCkpOyAvLyA8LSBBc3NpZ24gc3RhdGljIHRleHQsIGFzIHRoaXMgdHlwZSBpcyBzYXZlZCAgDQp9DQplbHNlDQp7DQogICRmaWVsZGRlZnMgPSBhcnJheV9tZXJnZShhcnJheSgkdGhpcy0+TW9kTGFuZygnc2VsZWN0X29uZScpPT5udWxsKSwgTElTRUZpZWxkZGVmT3BlcmF0aW9uczo6R2V0RmllbGRkZWZUeXBlcygkdGhpcy0+R2V0TW9kZSgpKSk7DQogIA0KICAkc21hcnR5LT5hc3NpZ24oJ2lucHV0dHlwZScsICR0aGlzLT5DcmVhdGVJbnB1dERyb3Bkb3duKCRpZCwgJ3R5cGUnLCAkZmllbGRkZWZzLCAtMSwgJHR5cGUsICdpZD0ibTFfdHlwZSInKSk7IC8vIDwtIEFzc2lnbiBkcm9wZG93bg0KfQ0KDQokc21hcnR5LT5hc3NpZ24oJ2lucHV0bmFtZScsICR0aGlzLT5DcmVhdGVJbnB1dFRleHQoJGlkLCAnbmFtZScsICRuYW1lLCAyMCwgMjU1KSk7DQokc21hcnR5LT5hc3NpZ24oJ2lucHV0X2FsaWFzJywgJHRoaXMtPkNyZWF0ZUlucHV0VGV4dCgkaWQsICdhbGlhcycsICRhbGlhcywgMjAsIDI1NSkpOw0KJHNtYXJ0eS0+YXNzaWduKCdpbnB1dGhlbHAnLCAkdGhpcy0+Q3JlYXRlSW5wdXRUZXh0KCRpZCwgJ2hlbHAnLCAkaGVscCwgMTAwLCAyNTUpKTsNCiRzbWFydHktPmFzc2lnbignaW5wdXRfcmVxdWlyZWQnLCAkdGhpcy0+Q3JlYXRlSW5wdXRjaGVja2JveCgkaWQsICdyZXF1aXJlZCcsIDEsICRyZXF1aXJlZCkpOw0KJHNtYXJ0eS0+YXNzaWduKCdiYWNrbGluaycsICR0aGlzLT5DcmVhdGVCYWNrTGluaygnZmllbGRkZWZ0YWInKSk7DQokc21hcnR5LT5hc3NpZ24oJ2lucHV0X3RlbXBsYXRlJywgJHRoaXMtPkNyZWF0ZVN5bnRheEFyZWEoJGlkLCAkdGVtcGxhdGUsICd0ZW1wbGF0ZScpKTsNCiRzbWFydHktPmFzc2lnbigndGl0bGUnLCAgICAgKGlzc2V0KCRmaWVsZGRlZl9pZCkgPyAkdGhpcy0+TW9kTGFuZygnZWRpdGZpZWxkZGVmJykgOiAkdGhpcy0+TW9kTGFuZygnYWRkJywgJHRoaXMtPk1vZExhbmcoJ2ZpZWxkZGVmJykpKSk7DQokc21hcnR5LT5hc3NpZ24oJ3N0YXJ0Zm9ybScsICR0aGlzLT5DcmVhdGVGb3JtU3RhcnQoJGlkLCAnYWRtaW5fZWRpdGZpZWxkZGVmJywgJHJldHVybmlkLCAncG9zdCcsICdtdWx0aXBhcnQvZm9ybS1kYXRhJywgZmFsc2UsICcnLCAkcGFyYW1zKSk7DQokc21hcnR5LT5hc3NpZ24oJ2VuZGZvcm0nLCAgICR0aGlzLT5DcmVhdGVGb3JtRW5kKCkpOw0KDQplY2hvICR0aGlzLT5Nb2RQcm9jZXNzVGVtcGxhdGUoJ2VkaXRmaWVsZGRlZi50cGwnKTsNCg0KPz4=]]></data>
	</file>
	<file>
	  <filename>/framework/action.admin_edititem.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHANCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQojIExJU0UgLSBMaXN0IEl0IFNwZWNpYWwgRWRpdGlvbg0KIyBWZXJzaW9uIDEuMg0KIyBBIGZvcmsgb2YgTGlzdEkyDQojIG1haW50YWluZWQgYnkgRmVybmFuZG8gTW9yZ2FkbyBBS0EgSm8gTW9yZw0KIyBzaW5jZSAyMDE1DQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIw0KIyBPcmlnaW5hbCBBdXRob3I6IEJlbiBNYWxlbiwgPGJlbkBjb25jZXB0ZmFjdG9yeS5jb20uYXU+DQojIENvLU1haW50YWluZXI6IFNpbW9uIFJhZGZvcmQsIDxzaW1vbkBjb25jZXB0ZmFjdG9yeS5jb20uYXU+DQojIFdlYjogd3d3LmNvbmNlcHRmYWN0b3J5LmNvbS5hdQ0KIw0KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCiMNCiMgTWFpbnRhaW5lciBzaW5jZSAyMDExIHVwIHRvIDIwMTQ6IEpvbmF0aGFuIFNjaG1pZCwgPGhpQGpvbmF0aGFuc2NobWlkLmRlPg0KIyBXZWI6IHd3dy5qb25hdGhhbnNjaG1pZC5kZQ0KIw0KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCiMNCiMgU29tZSB3YWNrb3Mgc3RhcnRlZCBkZXN0cm95aW5nIHN0dWZmIHNpbmNlIDIwMTIgYW5kIHN0b3BwZWQgYXQgMjAxNDoNCiMNCiMgVGFwaW8gTMO2eXR0eSwgPHRhcHNhQG9yYW5nZS1tZWRpYS5maT4NCiMgV2ViOiB3d3cub3JhbmdlLW1lZGlhLmZpDQojDQojIEdvcmFuIElsaWMsIDx1bmlxdTNlQGdtYWlsLmNvbT4NCiMgV2ViOiB3d3cuaWNoLW1hY2gtZGFzLmF0DQojDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIw0KIyBMSVNFIGlzIGEgQ01TIE1hZGUgU2ltcGxlIG1vZHVsZSB0aGF0IGVuYWJsZXMgdGhlIHdlYiBkZXZlbG9wZXIgdG8gY3JlYXRlDQojIG11bHRpcGxlIGxpc3RzIHRocm91Z2hvdXQgYSBzaXRlLiBJdCBjYW4gYmUgZHVwbGljYXRlZCBhbmQgZ2l2ZW4gZnJpZW5kbHkNCiMgbmFtZXMgZm9yIGVhc2llciBjbGllbnQgbWFpbnRlbmFuY2UuDQojDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIyBCRUdJTl9MSUNFTlNFDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIyBUaGlzIGZpbGUgaXMgcGFydCBvZiBMSVNFDQojIExJU0UgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5DQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5DQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yDQojIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uDQojDQojIExJU0UgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLA0KIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZg0KIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlDQojIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuDQojIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlDQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlDQojIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcgVVNBDQojIE9yIHJlYWQgaXQgb25saW5lOiBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwNCiMNCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQojIEVORF9MSUNFTlNFDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KdXNlIFxMSVNFXGFwaTsNCmlmKCAhZGVmaW5lZCgnQ01TX1ZFUlNJT04nKSApIGV4aXQ7DQoNCmlmICghJHRoaXMtPkNoZWNrUGVybWlzc2lvbigkdGhpcy0+X0dldE1vZHVsZUFsaWFzKCkgLiAnX21vZGlmeV9pdGVtJykpIHJldHVybjsNCg0KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIyBDaGVjayBwYXJhbXMNCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0NCg0KaWYgKGlzc2V0KCRwYXJhbXNbJ2NhbmNlbCddKSkNCnsNCglsaXNlX3V0aWxzOjpjbGVhbl9wYXJhbXMoJHBhcmFtcywgYXJyYXkoJ3BhZ2UnKSwgdHJ1ZSk7DQoJJHBhcmFtc1snYWN0aXZlX3RhYiddID0gJ2l0ZW10YWInOw0KCSR0aGlzLT5SZWRpcmVjdCgkaWQsICdkZWZhdWx0YWRtaW4nLCAkcmV0dXJuaWQsICRwYXJhbXMpOw0KfQ0KDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQojIEluaXQgcGFyYW1zDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQoNCiRwcmV2aW91c19pZCAgPSBpc3NldCgkcGFyYW1zWydwcmV2aW91c19pZCddKSA/ICRwYXJhbXNbJ3ByZXZpb3VzX2lkJ10gOiAnJzsNCiRuZXh0X2lkICAgICAgPSBpc3NldCgkcGFyYW1zWyduZXh0X2lkJ10pID8gJHBhcmFtc1snbmV4dF9pZCddIDogJyc7DQokc3VibWl0X29uX3BuID0gJHRoaXMtPkdldFByZWZlcmVuY2UoJ3N1Ym1pdF9vbl9wbicsIDApOyMgc3VibWl0IG9uICdwcmV2aW91cycgb3IgJ25leHQnIGNsaWNrDQokc3VibWl0X29uX3BuID0gaXNzZXQoJHBhcmFtc1snc3VibWl0X29uX3BuJ10pID8gJHBhcmFtc1snc3VibWl0X29uX3BuJ10gOiAkc3VibWl0X29uX3BuOw0KJG1vZGUgICAgICAgICA9IGxpc2VfdXRpbHM6OmluaXRfdmFyKCdtb2RlJywgJHBhcmFtcywgJ2VkaXQnKTsNCiRpdGVtX2lkICAgICAgPSBsaXNlX3V0aWxzOjppbml0X3ZhcignaXRlbV9pZCcsICRwYXJhbXMsIC0xKTsNCiR1cmwgICAgICAgICAgPSBsaXNlX3V0aWxzOjppbml0X3ZhcigndXJsJywgJHBhcmFtcywgJycpOw0KJHRpdGxlICAgICAgICA9IGxpc2VfdXRpbHM6OmluaXRfdmFyKCd0aXRsZScsICRwYXJhbXMsICcnKTsNCiRhbGlhcyAgICAgICAgPSBsaXNlX3V0aWxzOjppbml0X3ZhcignYWxpYXMnLCAkcGFyYW1zLCAnJyk7DQokdGltZV9jb250cm9sID0gbGlzZV91dGlsczo6aW5pdF92YXIoJ3RpbWVfY29udHJvbCcsICRwYXJhbXMsIDApOw0KJGFjdGl2ZSAgICAgICA9IDE7DQokdXJsX2Vycm9yICAgID0gRkFMU0U7DQokc3RhcnRfdGltZSAgID0gJyc7DQokZW5kX3RpbWUgICAgID0gJyc7DQokZ28gICAgICAgICAgID0gIWVtcHR5KCRwYXJhbXNbJ2dvJ10pID8gJHBhcmFtc1snZ28nXSA6IDA7DQokbW9kaWZpZWQgICAgID0gIWVtcHR5KCRwYXJhbXNbJ21vZGlmaWVkJ10pID8gJHBhcmFtc1snbW9kaWZpZWQnXSA6IDA7DQokcHJldmlldyAgICAgID0gIWVtcHR5KCRwYXJhbXNbJ3ByZXZpZXcnXSkgPyAkcGFyYW1zWydwcmV2aWV3J10gOiAwOw0KDQokdGhpcy0+U2V0UHJlZmVyZW5jZSgnc3VibWl0X29uX3BuJywgKGludCkkc3VibWl0X29uX3BuLCAwKTsNCg0KaWYgKCR0aW1lX2NvbnRyb2wpDQp7DQoJJHN0YXJ0X3RpbWUgPSAkcGFyYW1zWydzdGFydF90aW1lJ107DQoJJGVuZF90aW1lICAgPSAkcGFyYW1zWydlbmRfdGltZSddOw0KfQ0KDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQojIEluaXQgSXRlbQ0KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KDQokb2JqID0gJHRoaXMtPkxvYWRJdGVtQnlJZGVudGlmaWVyKCdpdGVtX2lkJywgJGl0ZW1faWQpOw0KaWYoJG1vZGUgPT0gJ2NvcHknKQkkb2JqID0gTElTRUl0ZW1PcGVyYXRpb25zOjpDb3B5KCRvYmopOw0KDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQojIEhhbmRsZSBjdXN0b20gZmllbGRzDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQoNCmlmIChpc3NldCgkcGFyYW1zWydjdXN0b21maWVsZCddKSkNCnsNCiAgaWYoICFpc19hcnJheSgkcGFyYW1zWydjdXN0b21maWVsZCddKSApICRwYXJhbXNbJ2N1c3RvbWZpZWxkJ10gPSBhcnJheSgkcGFyYW1zWydjdXN0b21maWVsZCddKTsNCiAgDQoJZm9yZWFjaCAoKGFycmF5KSRwYXJhbXNbJ2N1c3RvbWZpZWxkJ10gYXMgJGZsZGlkID0+ICR2YWx1ZSkNCiAgew0KCQlpZihpc3NldCgkb2JqLT5maWVsZGRlZnNbJGZsZGlkXSkpICRvYmotPmZpZWxkZGVmc1skZmxkaWRdLT5TZXRWYWx1ZSgkdmFsdWUpOw0KCX0NCiAgDQogIHVuc2V0KCRwYXJhbXNbJ2N1c3RvbWZpZWxkJ10pOw0KfQ0KDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQojIFN1Ym1pdCwgUHJldmlldywgZXRjDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQppZigkcHJldmlldykNCnsNCiAgLy8gc2F2ZSBkYXRhIGZvciBwcmV2aWV3Lg0KICB1bnNldCgNCiAgICAkcGFyYW1zWydhcHBseSddLA0KICAgICRwYXJhbXNbJ3ByZXZpZXcnXSwNCiAgICAkcGFyYW1zWydzdWJtaXQnXSwNCiAgICAkcGFyYW1zWydjYW5jZWwnXSwNCiAgICAkcGFyYW1zWydnbyddLA0KICAgICRwYXJhbXNbJ2FqYXgnXQ0KICApOw0KICANCiAgJHBhcmFtc1snaXRlbV9vYmonXSA9IGJhc2U2NF9lbmNvZGUoIHNlcmlhbGl6ZSgkb2JqKSApOw0KICANCiAgJHRtcGZuYW1lID0gdGVtcG5hbShUTVBfQ0FDSEVfTE9DQVRJT04sICR0aGlzLT5HZXROYW1lKCkgLiAnX3ByZXZpZXcnKTsNCiAgDQogIGZpbGVfcHV0X2NvbnRlbnRzKCR0bXBmbmFtZSwgc2VyaWFsaXplKCRwYXJhbXMpKTsNCiAgJGRldGFpbF9yZXR1cm5pZCA9ICR0aGlzLT5HZXRQcmVmZXJlbmNlKCdzdW1tYXJ5cGFnZScsIC0xKTsNCiAgDQogIGlmKCRkZXRhaWxfcmV0dXJuaWQgPD0gMCkNCiAgew0KICAgICRkZXRhaWxfcmV0dXJuaWQgPSBDb250ZW50T3BlcmF0aW9uczo6Z2V0X2luc3RhbmNlKCktPkdldERlZmF1bHRDb250ZW50KCk7DQogIH0NCiAgaWYoaXNzZXQoJHBhcmFtc1sncHJldmlld3BhZ2UnXSkgJiYgKGludCkkcGFyYW1zWydwcmV2aWV3cGFnZSddID4gMCkNCiAgew0KICAgICRkZXRhaWxfcmV0dXJuaWQgPSAoaW50KSRwYXJhbXNbJ3ByZXZpZXdwYWdlJ107DQogIH0NCiAgDQogICRfU0VTU0lPTlsnbGlzZV9wcmV2aWV3J10gPSBbDQogICAgJ2ZuYW1lJyAgICA9PiBiYXNlbmFtZSgkdG1wZm5hbWUpLA0KICAgICdjaGVja3N1bScgPT4gbWQ1X2ZpbGUoJHRtcGZuYW1lKQ0KICBdOw0KICANCiAgJHRwYXJtcyAgICAgICAgICAgICAgICAgICA9IFsncHJldmlldycgPT4gbWQ1KHNlcmlhbGl6ZSgkX1NFU1NJT05bJ2xpc2VfcHJldmlldyddKSldOw0KICANCiAgaWYoaXNzZXQoJHBhcmFtc1snZGV0YWlsdGVtcGxhdGUnXSkpDQogIHsNCiAgICAkdHBhcm1zWydkZXRhaWx0ZW1wbGF0ZSddID0gdHJpbSgkcGFyYW1zWydkZXRhaWx0ZW1wbGF0ZSddKTsNCiAgfQ0KICAkdXJsID0gJHRoaXMtPmNyZWF0ZV91cmwoJ19wcmV2aWV3XycsICdkZXRhaWwnLCAkZGV0YWlsX3JldHVybmlkLCAkdHBhcm1zLCBUUlVFKTsNCiAgJHJlc3BvbnNlWyd1cmwnXSA9ICR1cmw7DQogICRyZXNwb25zZVsnZXJyb3InXSA9ICcnOw0KICANCiAgaWYoaXNzZXQoJGVycm9yKSAmJiAkZXJyb3IgIT0gJycpDQogIHsNCiAgICAkcmVzcG9uc2VbJ2Vycm9yJ10gPSAgJGVycm9yOw0KICB9DQogIA0KICAkaGFuZGxlcnMgPSBvYl9saXN0X2hhbmRsZXJzKCk7DQogIGZvcigkY250ID0gMDsgJGNudCA8IHNpemVvZigkaGFuZGxlcnMpOyAkY250KyspIHsgb2JfZW5kX2NsZWFuKCk7IH0NCiAgaGVhZGVyKCdDb250ZW50LVR5cGU6IHRleHQvanNvbicpOw0KICBlY2hvIGpzb25fZW5jb2RlKCRyZXNwb25zZSk7DQogIGV4aXQ7DQp9DQplbHNlaWYoIGlzc2V0KCRwYXJhbXNbJ3N1Ym1pdCddKSB8fCBpc3NldCgkcGFyYW1zWydhcHBseSddKSB8fCBpc3NldCgkcGFyYW1zWydzYXZlX2NyZWF0ZSddKSB8fCAoJGdvICYmICRtb2RpZmllZCkgKQ0Kew0KCSRlcnJvcnMgPSBhcnJheSgpOw0KCQ0KCS8vIGNoZWNrIHRpdGxlDQoJaWYgKGVtcHR5KCR0aXRsZSkpDQogIHsNCgkJJGVycm9yc1tdID0gJHRoaXMtPk1vZExhbmcoJ2l0ZW1fdGl0bGVfZW1wdHknKTsNCgl9DQoNCiAgLy8gY2hlY2sgYWxpYXMNCiAgaWYgKCFsaXNlX3V0aWxzOjppc192YWxpZF9hbGlhcygkYWxpYXMpICYmICFlbXB0eSgkYWxpYXMpKQ0KICB7DQogICAgJGVycm9yc1tdID0gJHRoaXMtPk1vZExhbmcoJ2FsaWFzX2ludmFsaWQnKTsNCiAgfQ0KICANCiAgLy8gQ2hlY2sgZm9yIGR1cGxpY2F0ZQ0KICBpZiggYXBpOjpJc0R1cGxpY2F0ZUl0ZW0oJGl0ZW1faWQsICRhbGlhcykgKQ0KICB7DQogICAgJGVycm9yc1tdID0gJHRoaXMtPk1vZExhbmcoJ2l0ZW1fYWxpYXNfZXhpc3RzJyk7DQogIH0NCiAgDQoJLy8gY2hlY2sgaWYgc3RhcnQgZGF0ZSBpcyBsZXNzIGVuZCBkYXRlDQoJaWYgKCR0aW1lX2NvbnRyb2wgJiYgJHN0YXJ0X3RpbWUgJiYgJGVuZF90aW1lICYmIHN0cnRvdGltZSgkc3RhcnRfdGltZSkgPiBzdHJ0b3RpbWUoJGVuZF90aW1lKSkNCiAgew0KCQkkZXJyb3JzW10gPSAkdGhpcy0+TW9kTGFuZygnZXJyb3Jfc3RhcnRncmVhdGVyZW5kJyk7DQoJfQ0KICANCiAgLy8gdmFsaWRhdGUgdXJsIGZvcm1hdCBhbmQgcm91dGUNCiAgaWYoICFlbXB0eSgkdXJsKSApDQogIHsNCiAgICBpZiggc3RhcnRzd2l0aCgkdXJsLCcvJykgfHwgZW5kc3dpdGgoJHVybCwnLycpICkNCiAgICB7DQogICAgICAkZXJyb3JzW10gPSAkdGhpcy0+TW9kTGFuZygnaXRlbV91cmxfaW52YWxpZCcpOw0KICAgICAgJHVybCA9ICRvYmotPnVybDsNCiAgICAgICR1cmxfZXJyb3IgPSBUUlVFOw0KICAgIH0NCiAgICBlbHNlDQogICAgew0KICAgICAgJHRyYW5zbGF0ZWQgPSBtdW5nZV9zdHJpbmdfdG9fdXJsKCR1cmwsIGZhbHNlLCB0cnVlKTsNCiAgICAgIA0KICAgICAgaWYoIHN0cnRvbG93ZXIoJHRyYW5zbGF0ZWQpICE9IHN0cnRvbG93ZXIoJHVybCkgKQ0KICAgICAgew0KICAgICAgICAkZXJyb3JzW10gPSAkdGhpcy0+TW9kTGFuZygnaXRlbV91cmxfaW52YWxpZCcpOw0KICAgICAgICAkdXJsID0gJG9iai0+dXJsOw0KICAgICAgICAkdXJsX2Vycm9yID0gVFJVRTsNCiAgICAgIH0NCiAgICB9DQogICAgDQogICAgaWYoISR1cmxfZXJyb3IpDQogICAgew0KICAgICAgJHVybCA9IHRyaW0oJHVybCwiIC9cdFxyXG5cMFx4MDgiKTsNCg0KICAgICAgaWYoJGl0ZW1faWQgPT0gLTEgfHwgJHVybCAhPT0gJG9iai0+dXJsKQ0KICAgICAgew0KICAgICAgICBjbXNfcm91dGVfbWFuYWdlcjo6bG9hZF9yb3V0ZXMoKTsNCiAgICAgICAgJHJvdXRlID0gY21zX3JvdXRlX21hbmFnZXI6OmZpbmRfbWF0Y2goJHVybCk7DQogICAgICAgIA0KICAgICAgICBpZigkcm91dGUpDQogICAgICAgIHsNCiAgICAgICAgICAkZXJyb3JzW10gPSAkdGhpcy0+TW9kTGFuZygnaXRlbV91cmxfaW52YWxpZCcpOw0KICAgICAgICAgICR1cmwgPSAkb2JqLT51cmw7DQogICAgICAgICAgJHVybF9lcnJvciA9IFRSVUU7DQogICAgICAgIH0NCiAgICAgIH0NCiAgICB9DQogIH0NCgkNCgkvLyBQcmVQcm9jZXNzICYgVmFsaWRhdGlvbnMNCglmb3JlYWNoKCRvYmotPmZpZWxkZGVmcyBhcyAkZmllbGQpDQogIHsNCgkJJGZpZWxkLT5FdmVudEhhbmRsZXIoKS0+SXRlbVNhdmVQcmVQcm9jZXNzKCRlcnJvcnMsICRwYXJhbXMpOw0KCX0NCgkNCgkvLyB0aXRsZSBhbmQgcmVxdWlyZWQgZmllbGRzIGhhdmUgdmFsdWVzLCBsZXQncyBjb250aW51ZQ0KCWlmIChlbXB0eSgkZXJyb3JzKSkNCiAgew0KCQkkb2JqLT50aXRsZSAgICAgICAgCSAgPSAkdGl0bGU7DQoJCSRvYmotPmFsaWFzCQkgCSAgICAgID0gJGFsaWFzOw0KCQkkb2JqLT5hY3RpdmUgICAgICAgCSAgPSBpc3NldCgkcGFyYW1zWydhY3RpdmUnXSkgPyAxIDogMDsNCgkJJG9iai0+c3RhcnRfdGltZSAgIAkgID0gJHN0YXJ0X3RpbWU7DQogICAgJG9iai0+ZW5kX3RpbWUgICAgICAgID0gJGVuZF90aW1lOw0KCQkkb2JqLT51cmwgICAgIAkgICAgICA9ICR1cmw7DQoJCQ0KCQkvLyBTYXZlIGl0ZW0gdG8gZGF0YWJhc2UNCgkJJHRoaXMtPlNhdmVJdGVtKCRvYmopOw0KCQkNCgkJLy8gUG9zdFByb2Nlc3MNCgkJZm9yZWFjaCgkb2JqLT5maWVsZGRlZnMgYXMgJGZpZWxkKQ0KICAgIHsNCgkJCSRmaWVsZC0+RXZlbnRIYW5kbGVyKCktPkl0ZW1TYXZlUG9zdFByb2Nlc3MoJGVycm9ycywgJHBhcmFtcyk7DQoJCX0NCiAgDQoJCS8vIG1ha2Ugc3VyZSB5b3UgcmVkaXJlY3QgdG8gdGhlIHJlcXVlc3RlZCBnbyBpdGVtX2lkDQogICAgaWYoJGdvICYmICRtb2RpZmllZCkNCiAgICB7DQogICAgICAkdGhpcy0+UmVkaXJlY3QoJGlkLCAnYWRtaW5fZWRpdGl0ZW0nLCAkcmV0dXJuaWQsIGFycmF5KA0KICAgICAgICAgICdpdGVtX2lkJyA9PiAkZ28sDQogICAgICAgICAgJ21lc3NhZ2UnID0+ICdjaGFuZ2VzX3NhdmVkX3ByZXZpb3VzJw0KICAgICAgICApDQogICAgICApOw0KICAgICAgDQogICAgfQ0KICAgIA0KCQkvLyBpZiBhcHBseSBhbmQgYWpheA0KCQlpZiAoaXNzZXQoJHBhcmFtc1snYXBwbHknXSkgJiYgaXNzZXQoJHBhcmFtc1snYWpheCddKSkNCiAgICB7DQoJCQkkcmVzcG9uc2UgPSAnPEVkaXRJdGVtPic7DQoJCQkkcmVzcG9uc2UgLj0gJzxSZXNwb25zZT5TdWNjZXNzPC9SZXNwb25zZT4nOw0KCQkJJHJlc3BvbnNlIC49ICc8RGV0YWlscz48IVtDREFUQVsnIC4gJHRoaXMtPk1vZExhbmcoJ2NoYW5nZXNzYXZlZCcpIC4gJ11dPjwvRGV0YWlscz4nOw0KICAgICAgJHJlc3BvbnNlIC49ICc8SXRlbUlEPicgLiAkb2JqLT5pdGVtX2lkIC4gJzwvSXRlbUlEPic7DQogICAgICAkcmVzcG9uc2UgLj0gJzxJdGVtQWxpYXM+JyAuICRvYmotPmFsaWFzIC4gJzwvSXRlbUFsaWFzPic7DQoJCQkkcmVzcG9uc2UgLj0gJzwvRWRpdEl0ZW0+JzsNCgkJCWVjaG8gJHJlc3BvbnNlOw0KCQkJcmV0dXJuOw0KCQl9DQoJCQ0KCQkvLyBpZiBzYXZlIGFuZCBjcmVhdGUgbmV3DQoJCWlmIChpc3NldCgkcGFyYW1zWydzYXZlX2NyZWF0ZSddKSApDQogICAgew0KCQkJJHRoaXMtPlJlZGlyZWN0KCRpZCwgJ2FkbWluX2VkaXRpdGVtJywgJHJldHVybmlkLCBhcnJheSgNCgkJCQknbWVzc2FnZScgPT4gJ2NoYW5nZXNzYXZlZF9jcmVhdGUnDQoJCQkpKTsNCgkJfQ0KICANCgkJLy8gc2hvdyBzYXZlZCBtZXNzYWdlDQoJCWlmIChpc3NldCgkcGFyYW1zWydzdWJtaXQnXSkpDQogICAgew0KCQkJbGlzZV91dGlsczo6Y2xlYW5fcGFyYW1zKCRwYXJhbXMsIGFycmF5KCdwYWdlJyksIHRydWUpOw0KCQkJJHBhcmFtc1snYWN0aXZlX3RhYiddID0gJ2l0ZW10YWInOw0KCQkJJHBhcmFtc1snbWVzc2FnZSddID0gJ2NoYW5nZXNzYXZlZCc7DQoJCQkkdGhpcy0+UmVkaXJlY3QoJGlkLCAnZGVmYXVsdGFkbWluJywgJHJldHVybmlkLCAkcGFyYW1zKTsNCgkJCQ0KCQl9DQogICAgZWxzZQ0KICAgIHsNCgkJCWVjaG8gJHRoaXMtPlNob3dNZXNzYWdlKCR0aGlzLT5Nb2RMYW5nKCdjaGFuZ2Vzc2F2ZWQnKSk7DQoJCX0NCgkJDQoJfSAvLyBlbmQgZXJyb3IgY2hlY2sNCgkNCn0gLy8gZW5kIHN1Ym1pdCBvciBhcHBseQ0KZWxzZWlmKCRnbykgLy8gZ28gaXMgc2V0IHdpdGggYSBwcmV2aW91cyBvciBuZXh0IGl0ZW1faWQNCnsNCiAgJHRoaXMtPlJlZGlyZWN0KCRpZCwgJ2FkbWluX2VkaXRpdGVtJywgJHJldHVybmlkLCBhcnJheSgnaXRlbV9pZCcgPT4gJGdvKSk7DQp9DQplbHNlaWYoJG9iai0+aXRlbV9pZCA+IDAgfHwgJG1vZGUgPT0gJ2NvcHknKQ0Kew0KDQoJJGl0ZW1faWQJCSAgICAgID0gJG9iai0+aXRlbV9pZDsNCgkkdGl0bGUgCQkJICAgICAgPSAkb2JqLT50aXRsZTsNCgkkYWxpYXMJCSAgCSAgICA9ICRvYmotPmFsaWFzOw0KCSRhY3RpdmUgICAgICAgCSAgPSAkb2JqLT5hY3RpdmU7DQoJJHN0YXJ0X3RpbWUgICAJICA9ICRvYmotPnN0YXJ0X3RpbWU7DQogICRlbmRfdGltZSAgICAgICAgID0gJG9iai0+ZW5kX3RpbWU7DQoJJHVybCAgICAgCSAgICAgICAgPSAkb2JqLT51cmw7DQoJDQoJaWYoIWVtcHR5KCRzdGFydF90aW1lKXx8ICFlbXB0eSgkZW5kX3RpbWUpKQ0KICB7DQoJCSR0aW1lX2NvbnRyb2wgPSAxOw0KCX0NCn0NCg0KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIyBNZXNzYWdlIGNvbnRyb2wNCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0NCg0KLy8gZGlzcGxheSBlcnJvcnMgaWYgdGhlcmUgYXJlIGFueQ0KaWYgKCFlbXB0eSgkZXJyb3JzKSkNCnsNCiAgJGZvcm1hdGVkX2Vycm9ycyA9ICcnOw0KICANCiAgZm9yZWFjaCAoJGVycm9ycyBhcyAkZXJyb3IpDQogIHsNCiAgICAkZm9ybWF0ZWRfZXJyb3JzIC49ICc8bGk+JyAuICRlcnJvciAuICc8L2xpPic7DQogIH0NCiAgDQogICAgaWYgKGlzc2V0KCRwYXJhbXNbJ2FwcGx5J10pICYmIGlzc2V0KCRwYXJhbXNbJ2FqYXgnXSkpDQogICAgew0KICAgICAgJHJlc3BvbnNlID0gJzxFZGl0SXRlbT4nOw0KICAgICAgJHJlc3BvbnNlIC49ICc8UmVzcG9uc2U+RXJyb3I8L1Jlc3BvbnNlPic7DQogICAgICAkcmVzcG9uc2UgLj0gJzxEZXRhaWxzPjwhW0NEQVRBWyc7DQogICAgICAkcmVzcG9uc2UgLj0gJGZvcm1hdGVkX2Vycm9yczsNCiAgICAgICRyZXNwb25zZSAuPSAnXV0+PC9EZXRhaWxzPic7DQogICAgICAkcmVzcG9uc2UgLj0gJzwvRWRpdEl0ZW0+JzsNCiAgICAgIGVjaG8gJHJlc3BvbnNlOw0KICAgICAgcmV0dXJuOw0KICAgIH0NCiAgICBlbHNlDQogICAgew0KICAgICAgZWNobyAkdGhpcy0+U2hvd0Vycm9ycygnPHVsPicgLiAkZm9ybWF0ZWRfZXJyb3JzIC4gJzwvdWw+Jyk7DQogICAgfQ0KfQ0KDQppZihpc3NldCgkcGFyYW1zWydtZXNzYWdlJ10pICYmIGVtcHR5KCRlcnJvcnMpKQ0KICAgIGVjaG8gJHRoaXMtPlNob3dNZXNzYWdlKCR0aGlzLT5Nb2RMYW5nKCRwYXJhbXNbJ21lc3NhZ2UnXSkpOw0KICAgIC8vZWNobyAkdGhpcy0+U2hvd01lc3NhZ2UoJHRoaXMtPk1vZExhbmcoJ2NoYW5nZXNzYXZlZF9jcmVhdGUnKSk7ICMgYXBwYXJlbnQgYnVnPz8/IFRPRE86IHJlbW92ZSBjb21tZW50IGlmIGZpeGVkDQoNCiR0aXRsZV9kaXNwbGF5X21vZGUgID0gJHRoaXMtPkdldFByZWZlcmVuY2UoJ3RpdGxlX2Rpc3BsYXlfbW9kZScsIDApOw0KJGhpZGVfYWxpYXMgICAgICAgICAgPSAkdGhpcy0+R2V0UHJlZmVyZW5jZSgnaGlkZV9hbGlhcycsIDEpOw0KJGhpZGVfc2x1ZyAgICAgICAgICAgPSAkdGhpcy0+R2V0UHJlZmVyZW5jZSgnaGlkZV9zbHVnJywgMSk7DQokaGlkZV90aW1lX2NvbnRyb2wgICA9ICR0aGlzLT5HZXRQcmVmZXJlbmNlKCdoaWRlX3RpbWVfY29udHJvbCcsIDEpOw0KDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQojIFNtYXJ0eSBwcm9jZXNzaW5nDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQoNCg0KJHNtYXJ0eS0+YXNzaWduKCdpdGVtT2JqZWN0JywgJG9iaikNCiAgLT5hc3NpZ24oICdwcmV2aW91c19pZCcsIGFwaTo6UHJldmlvdXNJdGVtKCRvYmotPml0ZW1faWQsIFRSVUUsICR0aGlzKSApDQogIC0+YXNzaWduKCAnbmV4dF9pZCcsIGFwaTo6TmV4dEl0ZW0oJG9iai0+aXRlbV9pZCwgVFJVRSwgJHRoaXMpICk7DQoNCiRpdGVtX25hbWUgPSAoJGl0ZW1faWQgPiAwID8gJHRpdGxlIDogJyZsYXF1bzsnIC4gJHRoaXMtPk1vZExhbmcoJ3VudGl0bGVkJykgLiAnJnJhcXVvOycpOw0KJGhlYWRlciA9ICR0aGlzLT5HZXRQcmVmZXJlbmNlKCdpdGVtX3Npbmd1bGFyJywgJycpIC4gJzogJyAuICRpdGVtX25hbWU7DQoNCiRhamF4X3VybDEgPSAkdGhpcy0+Y3JlYXRlX3VybCgkaWQsICdhamF4X2dldHVybCcsICRyZXR1cm5pZCk7DQokYWpheF91cmwyID0gJHRoaXMtPmNyZWF0ZV91cmwoJGlkLCAnYWpheF9nZXRfYWxpYXMnLCAkcmV0dXJuaWQpOw0KDQokc21hcnR5LT5hc3NpZ24oJ2FqYXhfZ2V0X3VybCcsICRhamF4X3VybDEpDQogIC0+YXNzaWduKCdhamF4X2dldF9hbGlhcycsICRhamF4X3VybDIpDQogIC0+YXNzaWduKCdiYWNrbGluaycsICR0aGlzLT5DcmVhdGVCYWNrTGluaygnaXRlbXRhYicpKQ0KICAtPmFzc2lnbigncGFnZV90aXRsZScsICgkaXRlbV9pZCA+IDAgPyAkdGhpcy0+TW9kTGFuZygnZWRpdCcpIC4gJyAnIC4gJHRoaXMtPkdldFByZWZlcmVuY2UoJ2l0ZW1fc2luZ3VsYXInLCAnJykgOiAkdGhpcy0+TW9kTGFuZygnYWRkJywgJHRoaXMtPkdldFByZWZlcmVuY2UoJ2l0ZW1fc2luZ3VsYXInLCAnJykpKSkNCiAgLT5hc3NpZ24oJ2hlYWRlcicsICRoZWFkZXIpDQogIC0+YXNzaWduKCdzdGFydGZvcm0nLCAkdGhpcy0+Q3JlYXRlRm9ybVN0YXJ0KCRpZCwgJ2FkbWluX2VkaXRpdGVtJywgJHJldHVybmlkLCAncG9zdCcsICdtdWx0aXBhcnQvZm9ybS1kYXRhJywgZmFsc2UsICcnLCAkcGFyYW1zKSkNCiAgLT5hc3NpZ24oJ2VuZGZvcm0nLCAkdGhpcy0+Q3JlYXRlRm9ybUVuZCgpKTsNCg0KLyoqLw0KJHNtYXJ0eS0+YXNzaWduKCd0aXRsZScsICR0aXRsZSkNCiAgLT5hc3NpZ24oJ2hpZGVfYWxpYXMnLCAkaGlkZV9hbGlhcykNCiAgLT5hc3NpZ24oJ2hpZGVfc2x1ZycsICRoaWRlX3NsdWcpDQogIC0+YXNzaWduKCdoaWRlX3RpbWVfY29udHJvbCcsICRoaWRlX3RpbWVfY29udHJvbCk7DQoNCmlmKCRoaWRlX2FsaWFzKQ0Kew0KICAkc21hcnR5LT5hc3NpZ24oJ2lucHV0X2FsaWFzJywgJHRoaXMtPkNyZWF0ZUlucHV0SGlkZGVuKCRpZCwgJ2FsaWFzJywgJGFsaWFzKSk7DQp9DQplbHNlDQp7DQogICRzbWFydHktPmFzc2lnbignaW5wdXRfYWxpYXMnLCAkdGhpcy0+Q3JlYXRlSW5wdXRUZXh0KCRpZCwgJ2FsaWFzJywgJGFsaWFzLCA1MCkpOw0KfQ0KDQppZigkaGlkZV9zbHVnKQ0Kew0KICAkc21hcnR5LT5hc3NpZ24oJ2lucHV0X3VybCcsICR0aGlzLT5DcmVhdGVJbnB1dEhpZGRlbigkaWQsICd1cmwnLCAkYWxpYXMpKTsNCn0NCmVsc2UNCnsNCiAgJHNtYXJ0eS0+YXNzaWduKCdpbnB1dF91cmwnLCAkdGhpcy0+Q3JlYXRlSW5wdXRUZXh0KCRpZCwgJ3VybCcsICR1cmwsIDUwKSk7DQp9DQoNCiRzbWFydHktPmFzc2lnbigndXJsJywgJHVybCk7DQoNCmlmKCRoaWRlX3RpbWVfY29udHJvbCkNCnsNCiAgJHNtYXJ0eS0+YXNzaWduKCdpbnB1dF90aW1lX2NvbnRyb2wnLCAnJykNCiAgICAgICAgIC0+YXNzaWduKCd1c2VfdGltZV9jb250cm9sJywgJycpDQogICAgICAgICAtPmFzc2lnbignaW5wdXRfc3RhcnRfdGltZScsICcnKQ0KICAgICAgICAgLT5hc3NpZ24oJ2lucHV0X2VuZF90aW1lJywgJycpOw0KfQ0KZWxzZQ0Kew0KICAkc21hcnR5LT5hc3NpZ24oJ2lucHV0X3RpbWVfY29udHJvbCcsICR0aGlzLT5DcmVhdGVJbnB1dGNoZWNrYm94KCRpZCwgJ3RpbWVfY29udHJvbCcsIDEsICR0aW1lX2NvbnRyb2wsICdvbmNsaWNrPSJ0b2dnbGVjb2xsYXBzZShcJ2V4cGlyeWluZm9cJyk7IicpKQ0KICAgICAgICAgLT5hc3NpZ24oJ3VzZV90aW1lX2NvbnRyb2wnLCAkdGltZV9jb250cm9sKQ0KICAgICAgICAgLT5hc3NpZ24oJ2lucHV0X3N0YXJ0X3RpbWUnLCAkdGhpcy0+Q3JlYXRlSW5wdXRUZXh0KCRpZCwgJ3N0YXJ0X3RpbWUnLCAkc3RhcnRfdGltZSwgMjApKQ0KICAgICAgICAgLT5hc3NpZ24oJ2lucHV0X2VuZF90aW1lJywgJHRoaXMtPkNyZWF0ZUlucHV0VGV4dCgkaWQsICdlbmRfdGltZScsICRlbmRfdGltZSwgMjApKTsNCn0NCg0KDQokc21hcnR5LT5hc3NpZ24oJ2lucHV0X3RpbWVfY29udHJvbCcsICR0aGlzLT5DcmVhdGVJbnB1dGNoZWNrYm94KCRpZCwgJ3RpbWVfY29udHJvbCcsIDEsICR0aW1lX2NvbnRyb2wsICdvbmNsaWNrPSJ0b2dnbGVjb2xsYXBzZShcJ2V4cGlyeWluZm9cJyk7IicpKQ0KICAtPmFzc2lnbigndXNlX3RpbWVfY29udHJvbCcsICR0aW1lX2NvbnRyb2wpDQogIC0+YXNzaWduKCdpbnB1dF9zdGFydF90aW1lJywgJHRoaXMtPkNyZWF0ZUlucHV0VGV4dCgkaWQsICdzdGFydF90aW1lJywgJHN0YXJ0X3RpbWUsIDIwKSkNCiAgLT5hc3NpZ24oJ2lucHV0X2VuZF90aW1lJywgJHRoaXMtPkNyZWF0ZUlucHV0VGV4dCgkaWQsICdlbmRfdGltZScsICRlbmRfdGltZSwgMjApKTsNCg0KaWYoJHRoaXMtPkNoZWNrUGVybWlzc2lvbigkdGhpcy0+X0dldE1vZHVsZUFsaWFzKCkgLiAnX2FwcHJvdmVfaXRlbScpKQ0KCSRzbWFydHktPmFzc2lnbignaW5wdXRfYWN0aXZlJywgJHRoaXMtPkNyZWF0ZUlucHV0Y2hlY2tib3goJGlkLCAnYWN0aXZlJywgMSwgJGFjdGl2ZSkpOw0KDQokY29udGVudG9wcyA9IGNtc21zKCktPkdldENvbnRlbnRPcGVyYXRpb25zKCk7DQokc21hcnR5LT5hc3NpZ24oJ3ByZXZpZXdfcmV0dXJuaWQnLCAkY29udGVudG9wcy0+Q3JlYXRlSGllcmFyY2h5RHJvcGRvd24oJycsICR0aGlzLT5HZXRQcmVmZXJlbmNlKCdkZXRhaWxfcmV0dXJuaWQnLCAtMSksICdwcmV2aWV3X3JldHVybmlkJykpOw0KDQoNCmVjaG8gJHRoaXMtPk1vZFByb2Nlc3NUZW1wbGF0ZSgnZWRpdGl0ZW0udHBsJyk7DQo/Pg==]]></data>
	</file>
	<file>
	  <filename>/framework/action.admin_editoption.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHANCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQojIExJU0UgLSBMaXN0IEl0IFNwZWNpYWwgRWRpdGlvbg0KIyBWZXJzaW9uIDEuMg0KIyBBIGZvcmsgb2YgTGlzdEkyDQojIG1haW50YWluZWQgYnkgRmVybmFuZG8gTW9yZ2FkbyBBS0EgSm8gTW9yZw0KIyBzaW5jZSAyMDE1DQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIw0KIyBPcmlnaW5hbCBBdXRob3I6IEJlbiBNYWxlbiwgPGJlbkBjb25jZXB0ZmFjdG9yeS5jb20uYXU+DQojIENvLU1haW50YWluZXI6IFNpbW9uIFJhZGZvcmQsIDxzaW1vbkBjb25jZXB0ZmFjdG9yeS5jb20uYXU+DQojIFdlYjogd3d3LmNvbmNlcHRmYWN0b3J5LmNvbS5hdQ0KIw0KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCiMNCiMgTWFpbnRhaW5lciBzaW5jZSAyMDExIHVwIHRvIDIwMTQ6IEpvbmF0aGFuIFNjaG1pZCwgPGhpQGpvbmF0aGFuc2NobWlkLmRlPg0KIyBXZWI6IHd3dy5qb25hdGhhbnNjaG1pZC5kZQ0KIw0KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCiMNCiMgU29tZSB3YWNrb3Mgc3RhcnRlZCBkZXN0cm95aW5nIHN0dWZmIHNpbmNlIDIwMTIgYW5kIHN0b3BwZWQgYXQgMjAxNDoNCiMNCiMgVGFwaW8gTMO2eXR0eSwgPHRhcHNhQG9yYW5nZS1tZWRpYS5maT4NCiMgV2ViOiB3d3cub3JhbmdlLW1lZGlhLmZpDQojDQojIEdvcmFuIElsaWMsIDx1bmlxdTNlQGdtYWlsLmNvbT4NCiMgV2ViOiB3d3cuaWNoLW1hY2gtZGFzLmF0DQojDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIw0KIyBMSVNFIGlzIGEgQ01TIE1hZGUgU2ltcGxlIG1vZHVsZSB0aGF0IGVuYWJsZXMgdGhlIHdlYiBkZXZlbG9wZXIgdG8gY3JlYXRlDQojIG11bHRpcGxlIGxpc3RzIHRocm91Z2hvdXQgYSBzaXRlLiBJdCBjYW4gYmUgZHVwbGljYXRlZCBhbmQgZ2l2ZW4gZnJpZW5kbHkNCiMgbmFtZXMgZm9yIGVhc2llciBjbGllbnQgbWFpbnRlbmFuY2UuDQojDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIyBCRUdJTl9MSUNFTlNFDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIyBUaGlzIGZpbGUgaXMgcGFydCBvZiBMSVNFDQojIExJU0UgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5DQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5DQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yDQojIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uDQojDQojIExJU0UgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLA0KIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZg0KIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlDQojIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuDQojIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlDQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlDQojIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcgVVNBDQojIE9yIHJlYWQgaXQgb25saW5lOiBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwNCiMNCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQojIEVORF9MSUNFTlNFDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KDQppZiggIWRlZmluZWQoJ0NNU19WRVJTSU9OJykgKSBleGl0Ow0KDQppZiAoISR0aGlzLT5DaGVja1Blcm1pc3Npb24oJHRoaXMtPl9HZXRNb2R1bGVBbGlhcygpLiAnX21vZGlmeV9vcHRpb24nKSkgcmV0dXJuOw0KDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQojIEVycm9yIHByb2Nlc3NpbmcNCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0NCg0KJGVycm9ycyA9IGFycmF5KCk7DQoNCmlmKGVtcHR5KCRwYXJhbXNbJ3VybF9wcmVmaXgnXSkpDQp7DQogICRlcnJvcnNbXSA9ICR0aGlzLT5Nb2RMYW5nKCdlcnJvcl9vcHRpb25yZXF1aXJlZCcsICR0aGlzLT5Nb2RMYW5nKCdwcm9tcHRfdXJsX3ByZWZpeCcpKTsNCn0NCg0KaWYoZW1wdHkoJHBhcmFtc1snZnJpZW5kbHluYW1lJ10pKQ0Kew0KICAkZXJyb3JzW10gPSAkdGhpcy0+TW9kTGFuZygnZXJyb3Jfb3B0aW9ucmVxdWlyZWQnLCAkdGhpcy0+TW9kTGFuZygncHJvbXB0X2ZyaWVuZGx5bmFtZScpKTsNCn0NCg0KaWYoZW1wdHkoJHBhcmFtc1snaXRlbV90aXRsZSddKSkNCnsNCiAgJGVycm9yc1tdID0gJHRoaXMtPk1vZExhbmcoJ2Vycm9yX29wdGlvbnJlcXVpcmVkJywgJHRoaXMtPk1vZExhbmcoJ3Byb21wdF9pdGVtX3RpdGxlJykpOw0KfQ0KDQppZihlbXB0eSgkcGFyYW1zWydpdGVtX3Npbmd1bGFyJ10pKQ0Kew0KICAkZXJyb3JzW10gPSAkdGhpcy0+TW9kTGFuZygnZXJyb3Jfb3B0aW9ucmVxdWlyZWQnLCAkdGhpcy0+TW9kTGFuZygncHJvbXB0X2l0ZW1fc2luZ3VsYXInKSk7DQp9DQoNCmlmKGVtcHR5KCRwYXJhbXNbJ2l0ZW1fcGx1cmFsJ10pKQ0Kew0KICAkZXJyb3JzW10gPSAkdGhpcy0+TW9kTGFuZygnZXJyb3Jfb3B0aW9ucmVxdWlyZWQnLCAkdGhpcy0+TW9kTGFuZygncHJvbXB0X2l0ZW1fcGx1cmFsJykpOw0KfQ0KDQppZihjb3VudCgkZXJyb3JzKSkNCnsNCiAgJHBhcmFtcyA9IGFycmF5KCdlcnJvcnMnID0+ICRlcnJvcnNbMF0sICdhY3RpdmVfdGFiJyA9PiAnb3B0aW9udGFiJyk7DQogICR0aGlzLT5SZWRpcmVjdCgkaWQsICdkZWZhdWx0YWRtaW4nLCAnJywgJHBhcmFtcyk7DQp9DQoNCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0NCiMgU2V0IG5ldyB2YWx1ZXMNCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0NCg0KJHRoaXMtPlNldFByZWZlcmVuY2UoJ2ZyaWVuZGx5bmFtZScsCQkgICAgJHBhcmFtc1snZnJpZW5kbHluYW1lJ10pOw0KJHRoaXMtPlNldFByZWZlcmVuY2UoJ2FkbWluc2VjdGlvbicsCQkgICAgJHBhcmFtc1snYWRtaW5zZWN0aW9uJ10pOw0KJHRoaXMtPlNldFByZWZlcmVuY2UoJ21vZGRlc2NyaXB0aW9uJywgICAgICAkcGFyYW1zWydtb2RkZXNjcmlwdGlvbiddKTsNCiR0aGlzLT5TZXRQcmVmZXJlbmNlKCdoaWRlX2FsaWFzJywJCSAgICAgIChpc3NldCgkcGFyYW1zWydoaWRlX2FsaWFzJ10pPzE6MCkpOw0KJHRoaXMtPlNldFByZWZlcmVuY2UoJ2hpZGVfc2x1ZycsCQkgICAgICAgIChpc3NldCgkcGFyYW1zWydoaWRlX3NsdWcnXSk/MTowKSk7DQokdGhpcy0+U2V0UHJlZmVyZW5jZSgndGl0bGVfYXV0b19nZW4nLAkJICAoaXNzZXQoJHBhcmFtc1sndGl0bGVfYXV0b19nZW4nXSk/MTowKSk7DQokdGhpcy0+U2V0UHJlZmVyZW5jZSgnaGlkZV90aW1lX2NvbnRyb2wnLAkJKGlzc2V0KCRwYXJhbXNbJ2hpZGVfdGltZV9jb250cm9sJ10pPzE6MCkpOw0KJHRoaXMtPlNldFByZWZlcmVuY2UoJ3RpdGxlX2Rpc3BsYXlfbW9kZScsCSRwYXJhbXNbJ3RpdGxlX2Rpc3BsYXlfbW9kZSddKTsNCiR0aGlzLT5TZXRQcmVmZXJlbmNlKCdpdGVtX3RpdGxlJywJCQkgICAgJHBhcmFtc1snaXRlbV90aXRsZSddKTsNCiR0aGlzLT5TZXRQcmVmZXJlbmNlKCdzb3J0b3JkZXInLAkJCSAgICAgICRwYXJhbXNbJ2l0ZW1zX3NvcnRvcmRlciddKTsNCiR0aGlzLT5TZXRQcmVmZXJlbmNlKCdpdGVtX3Npbmd1bGFyJywJCSAgICAkcGFyYW1zWydpdGVtX3Npbmd1bGFyJ10pOw0KJHRoaXMtPlNldFByZWZlcmVuY2UoJ2l0ZW1fcGx1cmFsJywJCQkgICAgJHBhcmFtc1snaXRlbV9wbHVyYWwnXSk7DQokdGhpcy0+U2V0UHJlZmVyZW5jZSgnZGlzcGxheV9jcmVhdGVfZGF0ZScsIChpc3NldCgkcGFyYW1zWydkaXNwbGF5X2NyZWF0ZV9kYXRlJ10pPzE6MCkpOw0KJHRoaXMtPlNldFByZWZlcmVuY2UoJ2l0ZW1fY29scycsCQkJICAgICAgKChpc3NldCgkcGFyYW1zWydpdGVtX2NvbHMnXSkgJiYgaXNfYXJyYXkoJHBhcmFtc1snaXRlbV9jb2xzJ10pKSA/IGltcGxvZGUoJywnLCAkcGFyYW1zWydpdGVtX2NvbHMnXSkgOiAnJykpOw0KJHRoaXMtPlNldFByZWZlcmVuY2UoJ2l0ZW1zX3Blcl9wYWdlJywJICAJJHBhcmFtc1snaXRlbXNfcGVyX3BhZ2UnXSk7DQokdGhpcy0+U2V0UHJlZmVyZW5jZSgndXJsX3ByZWZpeCcsCQkJICAgICRwYXJhbXNbJ3VybF9wcmVmaXgnXSk7DQokdGhpcy0+U2V0UHJlZmVyZW5jZSgnbG9jYWxfbW9kZV9pbnN0YW5jZScsICRwYXJhbXNbJ2xvY2FsX21vZGVfaW5zdGFuY2UnXSk7DQokdGhpcy0+U2V0UHJlZmVyZW5jZSgnZGlzcGxheV9pbmxpbmUnLAkJICAoaXNzZXQoJHBhcmFtc1snZGlzcGxheV9pbmxpbmUnXSk/MTowKSk7DQokdGhpcy0+U2V0UHJlZmVyZW5jZSgnc3ViY2F0ZWdvcnknLAkJCSAgICAoaXNzZXQoJHBhcmFtc1snc3ViY2F0ZWdvcnknXSk/MTowKSk7DQokdGhpcy0+U2V0UHJlZmVyZW5jZSgndXJsdGVtcGxhdGUnLCAgICAgICAgIChpc3NldCgkcGFyYW1zWyd1cmx0ZW1wbGF0ZSddKT8gJHBhcmFtc1sndXJsdGVtcGxhdGUnXSA6ICR0aGlzLT5HZXRQcmVmZXJlbmNlKCd1cmx0ZW1wbGF0ZScsICd7JHByZWZpeH0veyRpdGVtX3RpdGxlfScpICkgKTsNCiR0aGlzLT5TZXRQcmVmZXJlbmNlKCd0aXRsZV90ZW1wbGF0ZScsICAgICAgKGlzc2V0KCRwYXJhbXNbJ3RpdGxlX3RlbXBsYXRlJ10pPyAkcGFyYW1zWyd0aXRsZV90ZW1wbGF0ZSddIDogJHRoaXMtPkdldFByZWZlcmVuY2UoJ3RpdGxlX3RlbXBsYXRlJywgJ3skcHJlZml4fS97JGl0ZW1fdGl0bGV9JykgKSApOw0KJHRoaXMtPlNldFByZWZlcmVuY2UoJ2FsaWFzX3RlbXBsYXRlJywgICAgICAoaXNzZXQoJHBhcmFtc1snYWxpYXNfdGVtcGxhdGUnXSk/ICRwYXJhbXNbJ2FsaWFzX3RlbXBsYXRlJ10gOiAkdGhpcy0+R2V0UHJlZmVyZW5jZSgnYWxpYXNfdGVtcGxhdGUnLCAneyRwcmVmaXh9L3skaXRlbV90aXRsZX0nKSApICk7DQoNCi8vIE1vZHVsZSBkZWZhdWx0cw0KJHRoaXMtPlNldFByZWZlcmVuY2UoJ2RldGFpbHBhZ2UnLAkJCSAgICAkcGFyYW1zWydkZXRhaWxwYWdlJ10gPj0gMCA/ICRwYXJhbXNbJ2RldGFpbHBhZ2UnXSA6IE5VTEwpOw0KJHRoaXMtPlNldFByZWZlcmVuY2UoJ3N1bW1hcnlwYWdlJywJCQkgICAgJHBhcmFtc1snc3VtbWFyeXBhZ2UnXSA+PSAwID8gJHBhcmFtc1snc3VtbWFyeXBhZ2UnXSA6IE5VTEwpOw0KDQovLyBNaXNjDQokdGhpcy0+U2V0UHJlZmVyZW5jZSgnYXV0b191cGdyYWRlJywgICAgICAgIChpc3NldCgkcGFyYW1zWydhdXRvX3VwZ3JhZGUnXSkgPyAxIDogMCkpOw0KJHRoaXMtPlNldFByZWZlcmVuY2UoJ3NlcGFyYXRlX3NldHRpbmdzJywgICAoaXNzZXQoJHBhcmFtc1snc2VwYXJhdGVfc2V0dGluZ3MnXSkgPyAxIDogMCkpOw0KDQovLyBDcm9zcyBNb2R1bGUgb3B0aW9ucw0KJG9sZF9yZWluZGV4X3NlYXJjaCA9ICR0aGlzLT5HZXRQcmVmZXJlbmNlKCdyZWluZGV4X3NlYXJjaCcsIDApOw0KJHJlaW5kZXhfc2VhcmNoID0gKGlzc2V0KCRwYXJhbXNbJ3JlaW5kZXhfc2VhcmNoJ10pID8gMSA6IDApOw0KJHRoaXMtPlNldFByZWZlcmVuY2UoJ3JlaW5kZXhfc2VhcmNoJywgJHJlaW5kZXhfc2VhcmNoKTsNCg0KaWYoJHJlaW5kZXhfc2VhcmNoICE9ICRvbGRfcmVpbmRleF9zZWFyY2ggJiYgJHBhcmFtc1snX2RvX3JlaW5kZXgnXSkNCnsNCiAgJFNlYXJjaCA9IGNtc191dGlsczo6Z2V0X3NlYXJjaF9tb2R1bGUoKTsNCiAgaWYoJHJlaW5kZXhfc2VhcmNoKQ0KICB7DQogICAgTElTRUl0ZW1PcGVyYXRpb25zOjpyZWluZGV4X3NlYXJjaCgkU2VhcmNoLCAkdGhpcyk7DQogIH0NCiAgZWxzZSANCiAgew0KICAgIExJU0VJdGVtT3BlcmF0aW9uczo6cmVtb3ZlX2luZGV4X3NlYXJjaCgkU2VhcmNoLCAkdGhpcyk7DQogIH0NCn0NCg0KJHBhcmFtcyA9IGFycmF5KCdtZXNzYWdlJyA9PiAnY2hhbmdlc3NhdmVkJywgJ2FjdGl2ZV90YWInID0+ICdvcHRpb250YWInKTsNCiR0aGlzLT5SZWRpcmVjdCgkaWQsICdkZWZhdWx0YWRtaW4nLCAnJywgJHBhcmFtcyk7DQo/Pg==]]></data>
	</file>
	<file>
	  <filename>/framework/action.admin_edittemplate.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBMSVNFIC0gTGlzdCBJdCBTcGVjaWFsIEVkaXRpb24KIyBWZXJzaW9uIDEuMgojIEEgZm9yayBvZiBMaXN0STIKIyBtYWludGFpbmVkIGJ5IEZlcm5hbmRvIE1vcmdhZG8gQUtBIEpvIE1vcmcKIyBzaW5jZSAyMDE1CiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBPcmlnaW5hbCBBdXRob3I6IEJlbiBNYWxlbiwgPGJlbkBjb25jZXB0ZmFjdG9yeS5jb20uYXU+CiMgQ28tTWFpbnRhaW5lcjogU2ltb24gUmFkZm9yZCwgPHNpbW9uQGNvbmNlcHRmYWN0b3J5LmNvbS5hdT4KIyBXZWI6IHd3dy5jb25jZXB0ZmFjdG9yeS5jb20uYXUKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojCiMgTWFpbnRhaW5lciBzaW5jZSAyMDExIHVwIHRvIDIwMTQ6IEpvbmF0aGFuIFNjaG1pZCwgPGhpQGpvbmF0aGFuc2NobWlkLmRlPgojIFdlYjogd3d3LmpvbmF0aGFuc2NobWlkLmRlCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIwojIFNvbWUgd2Fja29zIHN0YXJ0ZWQgZGVzdHJveWluZyBzdHVmZiBzaW5jZSAyMDEyIGFuZCBzdG9wcGVkIGF0IDIwMTQ6CiMKIyBUYXBpbyBMw7Z5dHR5LCA8dGFwc2FAb3JhbmdlLW1lZGlhLmZpPgojIFdlYjogd3d3Lm9yYW5nZS1tZWRpYS5maQojCiMgR29yYW4gSWxpYywgPHVuaXF1M2VAZ21haWwuY29tPgojIFdlYjogd3d3LmljaC1tYWNoLWRhcy5hdAojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBMSVNFIGlzIGEgQ01TIE1hZGUgU2ltcGxlIG1vZHVsZSB0aGF0IGVuYWJsZXMgdGhlIHdlYiBkZXZlbG9wZXIgdG8gY3JlYXRlCiMgbXVsdGlwbGUgbGlzdHMgdGhyb3VnaG91dCBhIHNpdGUuIEl0IGNhbiBiZSBkdXBsaWNhdGVkIGFuZCBnaXZlbiBmcmllbmRseQojIG5hbWVzIGZvciBlYXNpZXIgY2xpZW50IG1haW50ZW5hbmNlLgojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgQkVHSU5fTElDRU5TRQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIExJU0UKIyBMSVNFIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgTElTRSBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBFTkRfTElDRU5TRQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKaWYoICFkZWZpbmVkKCdDTVNfVkVSU0lPTicpICkgZXhpdDsKCgojLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgQ2hlY2sgcGFyYW1zCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0KCmlmICghJHRoaXMtPkNoZWNrUGVybWlzc2lvbigkdGhpcy0+X0dldE1vZHVsZUFsaWFzKCkgLiAnX21vZGlmeV9vcHRpb24nKSkgewoKCXJldHVybjsKfQoKaWYgKGlzc2V0KCRwYXJhbXNbJ2NhbmNlbCddKSkgewoKCSRwYXJhbXMgPSBhcnJheSgnYWN0aXZlX3RhYicgPT4gJ3RlbXBsYXRldGFiJyk7CgkkdGhpcy0+UmVkaXJlY3QoJGlkLCAnZGVmYXVsdGFkbWluJywgJHJldHVybmlkLCAkcGFyYW1zKTsKfQoKaWYgKGlzc2V0KCRwYXJhbXNbJ3R5cGUnXSkpIHsKCgkkdHBsX3R5cGUgPSAkcGFyYW1zWyd0eXBlJ107CgkkdHBsX2NvbnRlbnQgPSAkdGhpcy0+TW9kR2V0VGVtcGxhdGVGcm9tRmlsZSgnZmVfJyAuICR0cGxfdHlwZSAuICdfZGVmYXVsdCcpOwoJJHRwbF9uYW1lID0gJyc7Cgp9IGVsc2VpZihpc3NldCgkcGFyYW1zWyduYW1lJ10pKSB7CgoJbGlzdCgkdHBsX3R5cGUsICR0cGxfbmFtZSkgPSBleHBsb2RlKCdfJywgJHBhcmFtc1snbmFtZSddLCAyKTsKCSR0cGxfY29udGVudCA9ICR0aGlzLT5HZXRUZW1wbGF0ZSgkcGFyYW1zWyduYW1lJ10pOwoJJHBhcmFtc1snb3JpZ19uYW1lJ10gPSAkcGFyYW1zWyduYW1lJ107Cgp9IGVsc2UgewoKCWRpZSgnQ2FudCBoYXBwZW5kJyk7Cn0KCmlmKGlzc2V0KCRwYXJhbXNbJ3RlbXBsYXRlX25hbWUnXSkpIHsKCgkkdHBsX25hbWUgPSAkcGFyYW1zWyd0ZW1wbGF0ZV9uYW1lJ107Cn0KCmlmKGlzc2V0KCRwYXJhbXNbJ3RlbXBsYXRlX3RleHQnXSkpIHsKCgkkdHBsX2NvbnRlbnQgPSAkcGFyYW1zWyd0ZW1wbGF0ZV90ZXh0J107Cn0KCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBTdWJtaXQKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKaWYgKGlzc2V0KCRwYXJhbXNbJ3N1Ym1pdCddKSB8fCBpc3NldCgkcGFyYW1zWydhcHBseSddKSkgewoKCSRlcnJvcnMgPSBhcnJheSgpOwoJCglpZiAoZW1wdHkoJHRwbF9uYW1lKSkgewoJCgkJJGVycm9yc1tdID0gJHRoaXMtPk1vZExhbmcoJ3RlbXBsYXRlX25hbWVfZW1wdHknKTsKCX0KCQoJaWYgKGVtcHR5KCR0cGxfY29udGVudCkpIHsKCQoJCSRlcnJvcnNbXSA9ICR0aGlzLT5Nb2RMYW5nKCd0ZW1wbGF0ZV9jb250ZW50X2VtcHR5Jyk7Cgl9CgkKCWlmIChlbXB0eSgkZXJyb3JzKSkgewoJCgkJaWYoaXNzZXQoJHBhcmFtc1snb3JpZ19uYW1lJ10pKSB7CgkJCgkJCSR0aGlzLT5EZWxldGVUZW1wbGF0ZSgkcGFyYW1zWydvcmlnX25hbWUnXSk7CgkJCWxpc3QoJG9yaWdfdHBsX3R5cGUsICRvcmlnX3RwbF9uYW1lKSA9IGV4cGxvZGUoJ18nLCAkcGFyYW1zWydvcmlnX25hbWUnXSwgMik7CgkJCQoJCQkkdHBsX2RlZmF1bHQgPSAkdGhpcy0+R2V0UHJlZmVyZW5jZSgkdGhpcy0+X0dldE1vZHVsZUFsaWFzKCkgLiAnX2RlZmF1bHRfJy4kdHBsX3R5cGUuJ190ZW1wbGF0ZScpOwoJCQlpZigkdHBsX2RlZmF1bHQgPT0gJG9yaWdfdHBsX25hbWUpIHsKCQkJCgkJCQkkdGhpcy0+U2V0UHJlZmVyZW5jZSgkdGhpcy0+X0dldE1vZHVsZUFsaWFzKCkgLiAnX2RlZmF1bHRfJy4kdHBsX3R5cGUuJ190ZW1wbGF0ZScsICR0cGxfbmFtZSk7CgkJCX0JCQkKCQl9CgkJCgkJJHRoaXMtPlNldFRlbXBsYXRlKCR0cGxfdHlwZS4nXycuJHRwbF9uYW1lLCAkdHBsX2NvbnRlbnQpOwoJCgkJaWYgKCFpc3NldCgkcGFyYW1zWydhcHBseSddKSkgewoJCQoJCQkkcGFyYW1zID0gYXJyYXkoJ21lc3NhZ2UnID0+ICdjaGFuZ2Vzc2F2ZWQnLCdhY3RpdmVfdGFiJyA9PiAndGVtcGxhdGV0YWInKTsKCQkJJHRoaXMtPlJlZGlyZWN0KCRpZCwgJ2RlZmF1bHRhZG1pbicsICcnLCAkcGFyYW1zKTsKICAgICAgICAgICAgCgkJfSBlbHNlaWYgKGlzc2V0KCRwYXJhbXNbJ2FwcGx5J10pICYmIGlzc2V0KCRwYXJhbXNbJ2FqYXgnXSkpIHsKCQkgICAgJHJlc3BvbnNlID0gJzxFZGl0SXRlbT4nOwoJCSAgICAkcmVzcG9uc2UgLj0gJzxSZXNwb25zZT5TdWNjZXNzPC9SZXNwb25zZT4nOwoJCSAgICAkcmVzcG9uc2UgLj0gJzxEZXRhaWxzPjwhW0NEQVRBWycgLiAkdGhpcy0+TW9kTGFuZygnY2hhbmdlc3NhdmVkJykgLiAnXV0+PC9EZXRhaWxzPic7CgkJICAgICRyZXNwb25zZSAuPSAnPC9FZGl0SXRlbT4nOwoJCSAgICBlY2hvICRyZXNwb25zZTsKCQkgICAgcmV0dXJuOwogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgIGVjaG8gJHRoaXMtPlNob3dNZXNzYWdlKCR0aGlzLT5Nb2RMYW5nKCdjaGFuZ2Vzc2F2ZWQnKSk7CgkJfQoJfQp9CgojLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgU21hcnR5IHByb2Nlc3NpbmcKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKLy8gZGlzcGxheSBlcnJvcnMgaWYgdGhlcmUgYXJlIGFueQppZiAoIWVtcHR5KCRlcnJvcnMpKSB7CiAgICBpZiAoaXNzZXQoJHBhcmFtc1snYXBwbHknXSkgJiYgaXNzZXQoJHBhcmFtc1snYWpheCddKSkgewogICAgICAgICRyZXNwb25zZSA9ICc8RWRpdEl0ZW0+JzsKICAgICAgICAkcmVzcG9uc2UgLj0gJzxSZXNwb25zZT5FcnJvcjwvUmVzcG9uc2U+JzsKICAgICAgICAkcmVzcG9uc2UgLj0gJzxEZXRhaWxzPjwhW0NEQVRBWyc7CiAgICAgICAgZm9yZWFjaCAoJGVycm9ycyBhcyAkZXJyb3IpIHsKICAgICAgICAgICAgJHJlc3BvbnNlIC49ICc8bGk+JyAuICRlcnJvciAuICc8L2xpPic7CiAgICAgICAgfQogICAgICAgICRyZXNwb25zZSAuPSAnXV0+PC9EZXRhaWxzPic7CiAgICAgICAgJHJlc3BvbnNlIC49ICc8L0VkaXRJdGVtPic7CiAgICAgICAgZWNobyAkcmVzcG9uc2U7CiAgICAgICAgcmV0dXJuOwogICAgfSBlbHNlIHsKICAgICAgICBlY2hvICR0aGlzLT5TaG93RXJyb3JzKCRlcnJvcnMpOwogICAgfQp9Cgokc21hcnR5LT5hc3NpZ24oJ2JhY2tsaW5rJywgJHRoaXMtPkNyZWF0ZUJhY2tMaW5rKCd0ZW1wbGF0ZXRhYicpKTsKJHNtYXJ0eS0+YXNzaWduKCd0aXRsZScsIChpc3NldCgkcGFyYW1zWyduYW1lJ10pID8gJHRoaXMtPk1vZExhbmcoJ2VkaXR0ZW1wbGF0ZScpIDogJHRoaXMtPk1vZExhbmcoJ2FkZCcsICR0aGlzLT5Nb2RMYW5nKCR0cGxfdHlwZS4ndGVtcGxhdGUnKSkpKTsKJHNtYXJ0eS0+YXNzaWduKCdzdGFydGZvcm0nLCAkdGhpcy0+Q3JlYXRlRm9ybVN0YXJ0ICgkaWQsICdhZG1pbl9lZGl0dGVtcGxhdGUnLCAkcmV0dXJuaWQsICdwb3N0JywgJ211bHRpcGFydC9mb3JtLWRhdGEnLCBmYWxzZSwgJycsICRwYXJhbXMpKTsKJHNtYXJ0eS0+YXNzaWduKCdlbmRmb3JtJywgJHRoaXMtPkNyZWF0ZUZvcm1FbmQoKSk7CiRzbWFydHktPmFzc2lnbignaW5wdXRfdGVtcGxhdGUnLCAkdGhpcy0+Q3JlYXRlU3ludGF4QXJlYSgkaWQsICR0cGxfY29udGVudCwgJ3RlbXBsYXRlX3RleHQnKSk7CiRzbWFydHktPmFzc2lnbignaW5wdXRfbmFtZScsICR0aGlzLT5DcmVhdGVJbnB1dFRleHQoJGlkLCAndGVtcGxhdGVfbmFtZScsICR0cGxfbmFtZSwgNDApKTsKCiR0ZW1wbGF0ZWxpc3QgPSAkdGhpcy0+R2V0RmlsZVRlbXBsYXRlc0J5VHlwZSgkdHBsX3R5cGUpOwokc21hcnR5LT5hc3NpZ24oJ2lucHV0X3RwbF9saXN0JywgJHRoaXMtPkNyZWF0ZUlucHV0RHJvcGRvd24oJGlkLCAndGVtcGxhdGVfZnJvbWZpbGUnLCAkdGVtcGxhdGVsaXN0KSk7Cgokc21hcnR5LT5hc3NpZ24oJ3N1Ym1pdCcsICR0aGlzLT5DcmVhdGVJbnB1dFN1Ym1pdCgkaWQsICdzdWJtaXQnLCBsYW5nKCdzdWJtaXQnKSkpOwokc21hcnR5LT5hc3NpZ24oJ2FwcGx5JywgJHRoaXMtPkNyZWF0ZUlucHV0U3VibWl0KCRpZCwgJ2FwcGx5JywgbGFuZygnYXBwbHknKSkpOwokc21hcnR5LT5hc3NpZ24oJ2NhbmNlbCcsICR0aGlzLT5DcmVhdGVJbnB1dFN1Ym1pdCgkaWQsICdjYW5jZWwnLCBsYW5nKCdjYW5jZWwnKSkpOwoKZWNobyAkdGhpcy0+TW9kUHJvY2Vzc1RlbXBsYXRlKCdlZGl0dGVtcGxhdGUudHBsJyk7Cgo/Pg==]]></data>
	</file>
	<file>
	  <filename>/framework/action.admin_exportitems.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHANCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQojIExJU0UgLSBMaXN0IEl0IFNwZWNpYWwgRWRpdGlvbg0KIyBWZXJzaW9uIDEuMg0KIyBBIGZvcmsgb2YgTGlzdEkyDQojIG1haW50YWluZWQgYnkgRmVybmFuZG8gTW9yZ2FkbyBBS0EgSm8gTW9yZw0KIyBzaW5jZSAyMDE1DQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIw0KIyBPcmlnaW5hbCBBdXRob3I6IEJlbiBNYWxlbiwgPGJlbkBjb25jZXB0ZmFjdG9yeS5jb20uYXU+DQojIENvLU1haW50YWluZXI6IFNpbW9uIFJhZGZvcmQsIDxzaW1vbkBjb25jZXB0ZmFjdG9yeS5jb20uYXU+DQojIFdlYjogd3d3LmNvbmNlcHRmYWN0b3J5LmNvbS5hdQ0KIw0KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCiMNCiMgTWFpbnRhaW5lciBzaW5jZSAyMDExIHVwIHRvIDIwMTQ6IEpvbmF0aGFuIFNjaG1pZCwgPGhpQGpvbmF0aGFuc2NobWlkLmRlPg0KIyBXZWI6IHd3dy5qb25hdGhhbnNjaG1pZC5kZQ0KIw0KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCiMNCiMgU29tZSB3YWNrb3Mgc3RhcnRlZCBkZXN0cm95aW5nIHN0dWZmIHNpbmNlIDIwMTIgYW5kIHN0b3BwZWQgYXQgMjAxNDoNCiMNCiMgVGFwaW8gTMO2eXR0eSwgPHRhcHNhQG9yYW5nZS1tZWRpYS5maT4NCiMgV2ViOiB3d3cub3JhbmdlLW1lZGlhLmZpDQojDQojIEdvcmFuIElsaWMsIDx1bmlxdTNlQGdtYWlsLmNvbT4NCiMgV2ViOiB3d3cuaWNoLW1hY2gtZGFzLmF0DQojDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIw0KIyBMSVNFIGlzIGEgQ01TIE1hZGUgU2ltcGxlIG1vZHVsZSB0aGF0IGVuYWJsZXMgdGhlIHdlYiBkZXZlbG9wZXIgdG8gY3JlYXRlDQojIG11bHRpcGxlIGxpc3RzIHRocm91Z2hvdXQgYSBzaXRlLiBJdCBjYW4gYmUgZHVwbGljYXRlZCBhbmQgZ2l2ZW4gZnJpZW5kbHkNCiMgbmFtZXMgZm9yIGVhc2llciBjbGllbnQgbWFpbnRlbmFuY2UuDQojDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIyBCRUdJTl9MSUNFTlNFDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIyBUaGlzIGZpbGUgaXMgcGFydCBvZiBMSVNFDQojIExJU0UgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5DQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5DQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yDQojIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uDQojDQojIExJU0UgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLA0KIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZg0KIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlDQojIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuDQojIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlDQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlDQojIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcgVVNBDQojIE9yIHJlYWQgaXQgb25saW5lOiBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwNCiMNCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQojIEVORF9MSUNFTlNFDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KDQppZiggIWRlZmluZWQoJ0NNU19WRVJTSU9OJykgKSBleGl0Ow0KDQppZiggISR0aGlzLT5DaGVja1Blcm1pc3Npb24oICR0aGlzLT5fR2V0TW9kdWxlQWxpYXMoKSAuICdfbW9kaWZ5X2l0ZW0nICkgKSByZXR1cm47DQovKiogQHZhciBpbnQgJHJldHVybmlkIGluIHNjb3BlIGZyb20gZmlsZSBpbmNsdXNpb24gKi8NCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0NCiMgQ2hlY2sgcGFyYW1zDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQoNCmlmKCBpc3NldCggJHBhcmFtc1snY2FuY2VsJ10gKSApDQp7DQogICRwYXJhbXNbJ2FjdGl2ZV90YWInXSA9ICdpdGVtdGFiJzsNCiAgJHRoaXMtPlJlZGlyZWN0KCAkaWQsICdkZWZhdWx0YWRtaW4nLCAkcmV0dXJuaWQsICRwYXJhbXMgKTsNCn0NCg0KLy8gSW5pdCAkZXhwb3J0dmFsdWVzDQokb2JqID0gJHRoaXMtPkluaXRpYXRlSXRlbSgpOw0KDQpmb3JlYWNoKCAkb2JqIGFzICRrID0+ICR2ICkNCnsNCg0KICBpZiggJHYgaW5zdGFuY2VvZiBMSVNFRmllbGRkZWZBcnJheSApDQogIHsNCiAgICBmb3JlYWNoKCAkdiBhcyAkZiApDQogICAgew0KICAgICAgJGV4cG9ydHZhbHVlc1skZi0+R2V0QWxpYXMoKV0gPSAkZi0+R2V0QWxpYXMoKTsNCiAgICB9DQogIH0NCiAgZWxzZQ0KICB7DQogICAgJGV4cG9ydHZhbHVlc1ska10gPSAkazsNCiAgfQ0KfQ0KdW5zZXQoICRvYmogKTsNCg0KJGRhdGVmb3JtYXQgPSB0cmltKCBnZXRfcHJlZmVyZW5jZSggZ2V0X3VzZXJpZCgpLCAnZGF0ZV9mb3JtYXRfc3RyaW5nJywgJyVZLSVtLSVkJyApICk7DQoNCmlmKCBlbXB0eSggJGRhdGVmb3JtYXQgKSApICRkYXRlZm9ybWF0ID0gJyVZLSVtLSVkJzsNCg0KJGRhdGUgPSBsaXNlX3V0aWxzOjpzdHJmdGltZSggJGRhdGVmb3JtYXQsIHRpbWUoKSApOw0KJGZpbGVuYW1lID0gJHRoaXMtPkdldE5hbWUoKSAuICctRXhwb3J0LScgLiAkZGF0ZTsNCiRmaWxlbmFtZSA9IHByZWdfcmVwbGFjZSggJy9bXlx3LlwtX10vJywgJ18nLCAkZmlsZW5hbWUgKTsNCg0KJHBsdXJhbCA9ICR0aGlzLT5HZXRQcmVmZXJlbmNlKCAnaXRlbV9wbHVyYWwnLCAnJyApOw0KJHNlcGFyYXRvciA9IGxpc2VfdXRpbHM6OmluaXRfdmFyKCAnc2VwYXJhdG9yJywgJHBhcmFtcywgJzsnICk7IC8vIDwtIERlZmF1bHQgY291bGQgYmUgb3B0aW9uDQokZW5jbG9zdXJlID0gbGlzZV91dGlsczo6aW5pdF92YXIoICdlbmNsb3N1cmUnLCAkcGFyYW1zLCAnIicgKTsgLy8gPC0gRGVmYXVsdCBjb3VsZCBiZSBvcHRpb24NCiRzZWxfZXhwb3J0dmFsdWVzID0gbGlzZV91dGlsczo6aW5pdF92YXIoICdleHBvcnR2YWx1ZXMnLCAkcGFyYW1zLCAkZXhwb3J0dmFsdWVzICk7DQokZmlsZW5hbWUgPSBsaXNlX3V0aWxzOjppbml0X3ZhciggJ2ZpbGVuYW1lJywgJHBhcmFtcywgJGZpbGVuYW1lICk7DQoNCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0NCiMgU3VibWl0DQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQoNCmlmKCBpc3NldCggJHBhcmFtc1snc3VibWl0J10gKSApDQp7DQoNCiAgJGhlYWRlcnMgPSBhcnJheSgpOw0KICAkb3V0cHV0ID0gYXJyYXkoKTsNCiAgJGZpcnN0ID0gdHJ1ZTsNCg0KICAkcXVlcnkgPSAnU0VMRUNUIGl0ZW1faWQgRlJPTSAnIC4gY21zX2RiX3ByZWZpeCgpIC4gJ21vZHVsZV8nIC4gJHRoaXMtPl9HZXRNb2R1bGVBbGlhcygpIC4gJ19pdGVtIE9SREVSIEJZIHBvc2l0aW9uICcgLiAkdGhpcy0+R2V0UHJlZmVyZW5jZSggJ3NvcnRvcmRlcicgKTsNCiAgJHJlc3VsdCA9ICRkYi0+R2V0Q29sKCAkcXVlcnkgKTsNCg0KICBpZiggJHJlc3VsdCApDQogIHsNCg0KICAgIGZvcmVhY2goICRyZXN1bHQgYXMgJGl0ZW1faWQgKQ0KICAgIHsNCiAgICAgICRvYmogPSAkdGhpcy0+TG9hZEl0ZW1CeUlkZW50aWZpZXIoICdpdGVtX2lkJywgJGl0ZW1faWQgKTsNCiAgICAgICRyb3cgPSBhcnJheSgpOw0KDQogICAgICBmb3JlYWNoKCAkb2JqIGFzICRrID0+ICR2ICkNCiAgICAgIHsNCg0KICAgICAgICBpZiggJHYgaW5zdGFuY2VvZiBMSVNFRmllbGRkZWZBcnJheSApDQogICAgICAgIHsNCg0KICAgICAgICAgIGZvcmVhY2goICR2IGFzICRmICkNCiAgICAgICAgICB7DQoNCiAgICAgICAgICAgIGlmKCAhaW5fYXJyYXkoICRmLT5HZXRBbGlhcygpLCAkc2VsX2V4cG9ydHZhbHVlcyApICkgY29udGludWU7DQoNCiAgICAgICAgICAgIGlmKCAkZmlyc3QgKSAkaGVhZGVyc1tdID0gJGYtPkdldEFsaWFzKCk7DQoNCiAgICAgICAgICAgICRyb3dbXSA9ICRmLT5HZXRWYWx1ZSgpOw0KICAgICAgICAgIH0NCiAgICAgICAgfQ0KICAgICAgICBlbHNlDQogICAgICAgIHsNCg0KICAgICAgICAgIGlmKCAhaW5fYXJyYXkoICRrLCAkc2VsX2V4cG9ydHZhbHVlcyApICkgY29udGludWU7DQoNCiAgICAgICAgICBpZiggJGZpcnN0ICkgJGhlYWRlcnNbXSA9ICRrOw0KDQogICAgICAgICAgaWYoIGlzX2FycmF5KCAkdiApICkgJHJvd1tdID0gaW1wbG9kZSggJywnLCAkdiApOw0KICAgICAgICAgIGVsc2UgICRyb3dbXSA9ICR2Ow0KICAgICAgICB9DQogICAgICB9DQoNCiAgICAgIGlmKCAkZmlyc3QgKSAkb3V0cHV0W10gPSAkaGVhZGVyczsNCg0KICAgICAgJG91dHB1dFtdID0gJHJvdzsNCg0KICAgICAgdW5zZXQoICRvYmogKTsNCiAgICAgICRmaXJzdCA9IGZhbHNlOw0KICAgIH0NCiAgfQ0KDQogIC8vIE1ha2Ugc3VyZSBmaWxlbmFtZSBpcyBleHBvcnQgZnJpZW5kbHkNCiAgJGZpbGVuYW1lID0gcHJlZ19yZXBsYWNlKCAnL1teXHcuXC1fXS8nLCAnXycsICRmaWxlbmFtZSApOw0KICAkZmlsZW5hbWUgLj0gJy5jc3YnOw0KDQogIC8vIFNldCBoZWFkZXJzDQogIC8vaGVhZGVyKCAiQ29udGVudC10eXBlOnRleHQvY3N2OyBjaGFyc2V0PWlzbzg4NTktMSIgKTsNCiAgaGVhZGVyKCdDb250ZW50LUVuY29kaW5nOiBVVEYtOCcpOw0KICBoZWFkZXIoJ0NvbnRlbnQtdHlwZTogdGV4dC9jc3Y7IGNoYXJzZXQ9VVRGLTgnKTsNCiAgaGVhZGVyKCAiQ29udGVudC1EaXNwb3NpdGlvbjphdHRhY2htZW50O2ZpbGVuYW1lPSIgLiAkZmlsZW5hbWUgKTsNCiAgDQogIC8vIENsZWFyIG91dHB1dCBidWZmZXINCiAgJGhhbmRsZXJzID0gb2JfbGlzdF9oYW5kbGVycygpOw0KICBmb3IoICRjbnQgPSAwOyAkY250IDwgc2l6ZW9mKCAkaGFuZGxlcnMgKTsgJGNudCsrICl7b2JfZW5kX2NsZWFuKCk7fQ0KDQogIC8vIE91dHB1dA0KICAkdG90YWxfY291bnQgPSBjb3VudCggJGhlYWRlcnMgKTsNCiAgZm9yZWFjaCggJG91dHB1dCBhcyAkb25lcm93ICkNCiAgew0KDQogICAgJGNvdW50ZXIgPSAxOw0KICAgIGZvcmVhY2goICRvbmVyb3cgYXMgJG9uZWl0ZW0gKQ0KICAgIHsNCiAgICAgICRzdHIgPSAkZW5jbG9zdXJlIC4gJG9uZWl0ZW0gLiAkZW5jbG9zdXJlOw0KICAgICAgaWYoICRjb3VudGVyID09ICR0b3RhbF9jb3VudCApDQogICAgICB7DQogICAgICAgICRzdHIgLj0gIlxuIjsNCiAgICAgIH0NCiAgICAgIGVsc2UNCiAgICAgIHsNCiAgICAgICAgJHN0ciAuPSAkc2VwYXJhdG9yOw0KICAgICAgfQ0KDQogICAgICBlY2hvICRzdHI7DQogICAgICAkY291bnRlcisrOw0KICAgIH0NCiAgfQ0KDQogIC8vIFByZXZlbnQgaW5jbHVkaW5nIGFjdHVhbCBIVE1MDQogIGV4aXQoKTsNCg0KfSAvLyBlbmQgb2Ygc3VibWl0DQoNCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0NCiMgU21hcnR5IHByb2Nlc3NpbmcNCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0NCg0KJHNtYXJ0eS0+YXNzaWduKCAndGl0bGUnLCAkdGhpcy0+TW9kTGFuZyggJ2V4cG9ydCcsICRwbHVyYWwgKSApOw0KJHNtYXJ0eS0+YXNzaWduKCAnYmFja2xpbmsnLCAkdGhpcy0+Q3JlYXRlQmFja0xpbmsoICdpdGVtdGFiJyApICk7DQokc21hcnR5LT5hc3NpZ24oICdzdGFydGZvcm0nLCAkdGhpcy0+Q3JlYXRlRm9ybVN0YXJ0KCAkaWQsICdhZG1pbl9leHBvcnRpdGVtcycsICRyZXR1cm5pZCwgJ3Bvc3QnLCAnbXVsdGlwYXJ0L2Zvcm0tZGF0YScsIGZhbHNlLCAnJywgJHBhcmFtcyApICk7DQoNCiRzbWFydHktPmFzc2lnbiggJ2lucHV0X2V4cG9ydHZhbHVlcycsICR0aGlzLT5DcmVhdGVJbnB1dFNlbGVjdExpc3QoICRpZCwgJ2V4cG9ydHZhbHVlc1tdJywgJGV4cG9ydHZhbHVlcywgJHNlbF9leHBvcnR2YWx1ZXMsIDEwICkgKTsNCiRzbWFydHktPmFzc2lnbiggJ2lucHV0X2ZpbGUnLCAkdGhpcy0+Q3JlYXRlSW5wdXRUZXh0KCAkaWQsICdmaWxlbmFtZScsICRmaWxlbmFtZSwgNDQgKSAuICcuY3N2JyApOw0KDQokc21hcnR5LT5hc3NpZ24oICdpbnB1dF9zZXBhcmF0b3InLCAkdGhpcy0+Q3JlYXRlSW5wdXRUZXh0KCAkaWQsICdzZXBhcmF0b3InLCAkc2VwYXJhdG9yLCA1MCApICk7DQokc21hcnR5LT5hc3NpZ24oICdpbnB1dF9lbmNsb3N1cmUnLCAkdGhpcy0+Q3JlYXRlSW5wdXRUZXh0KCAkaWQsICdlbmNsb3N1cmUnLCAkZW5jbG9zdXJlLCA1MCApICk7DQoNCiRzbWFydHktPmFzc2lnbiggJ3N1Ym1pdCcsICR0aGlzLT5DcmVhdGVJbnB1dFN1Ym1pdCggJGlkLCAnc3VibWl0JywgbGFuZyggJ3N1Ym1pdCcgKSApICk7DQokc21hcnR5LT5hc3NpZ24oICdjYW5jZWwnLCAkdGhpcy0+Q3JlYXRlSW5wdXRTdWJtaXQoICRpZCwgJ2NhbmNlbCcsIGxhbmcoICdjYW5jZWwnICkgKSApOw0KJHNtYXJ0eS0+YXNzaWduKCAnZW5kZm9ybScsICR0aGlzLT5DcmVhdGVGb3JtRW5kKCkgKTsNCg0KZWNobyAkdGhpcy0+TW9kUHJvY2Vzc1RlbXBsYXRlKCAnYWRtaW5fY3N2X2ltcG9ydF9leHBvcnQudHBsJyApOw0KDQo/Pg==]]></data>
	</file>
	<file>
	  <filename>/framework/action.admin_importitems.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHANCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQojIExJU0UgLSBMaXN0IEl0IFNwZWNpYWwgRWRpdGlvbg0KIyBWZXJzaW9uIDEuMg0KIyBBIGZvcmsgb2YgTGlzdEkyDQojIG1haW50YWluZWQgYnkgRmVybmFuZG8gTW9yZ2FkbyBBS0EgSm8gTW9yZw0KIyBzaW5jZSAyMDE1DQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIw0KIyBPcmlnaW5hbCBBdXRob3I6IEJlbiBNYWxlbiwgPGJlbkBjb25jZXB0ZmFjdG9yeS5jb20uYXU+DQojIENvLU1haW50YWluZXI6IFNpbW9uIFJhZGZvcmQsIDxzaW1vbkBjb25jZXB0ZmFjdG9yeS5jb20uYXU+DQojIFdlYjogd3d3LmNvbmNlcHRmYWN0b3J5LmNvbS5hdQ0KIw0KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCiMNCiMgTWFpbnRhaW5lciBzaW5jZSAyMDExIHVwIHRvIDIwMTQ6IEpvbmF0aGFuIFNjaG1pZCwgPGhpQGpvbmF0aGFuc2NobWlkLmRlPg0KIyBXZWI6IHd3dy5qb25hdGhhbnNjaG1pZC5kZQ0KIw0KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCiMNCiMgU29tZSB3YWNrb3Mgc3RhcnRlZCBkZXN0cm95aW5nIHN0dWZmIHNpbmNlIDIwMTIgYW5kIHN0b3BwZWQgYXQgMjAxNDoNCiMNCiMgVGFwaW8gTMO2eXR0eSwgPHRhcHNhQG9yYW5nZS1tZWRpYS5maT4NCiMgV2ViOiB3d3cub3JhbmdlLW1lZGlhLmZpDQojDQojIEdvcmFuIElsaWMsIDx1bmlxdTNlQGdtYWlsLmNvbT4NCiMgV2ViOiB3d3cuaWNoLW1hY2gtZGFzLmF0DQojDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIw0KIyBMSVNFIGlzIGEgQ01TIE1hZGUgU2ltcGxlIG1vZHVsZSB0aGF0IGVuYWJsZXMgdGhlIHdlYiBkZXZlbG9wZXIgdG8gY3JlYXRlDQojIG11bHRpcGxlIGxpc3RzIHRocm91Z2hvdXQgYSBzaXRlLiBJdCBjYW4gYmUgZHVwbGljYXRlZCBhbmQgZ2l2ZW4gZnJpZW5kbHkNCiMgbmFtZXMgZm9yIGVhc2llciBjbGllbnQgbWFpbnRlbmFuY2UuDQojDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIyBCRUdJTl9MSUNFTlNFDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIyBUaGlzIGZpbGUgaXMgcGFydCBvZiBMSVNFDQojIExJU0UgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5DQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5DQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yDQojIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uDQojDQojIExJU0UgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLA0KIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZg0KIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlDQojIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuDQojIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlDQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlDQojIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcgVVNBDQojIE9yIHJlYWQgaXQgb25saW5lOiBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwNCiMNCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQojIEVORF9MSUNFTlNFDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KaWYoICFkZWZpbmVkKCdDTVNfVkVSU0lPTicpICkgZXhpdDsNCg0KaWYoICEkdGhpcy0+Q2hlY2tQZXJtaXNzaW9uKCAkdGhpcy0+X0dldE1vZHVsZUFsaWFzKCkgLiAnX21vZGlmeV9pdGVtJyApICkgcmV0dXJuOw0KDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQojIENoZWNrIHBhcmFtcw0KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KDQppZiggaXNzZXQoICRwYXJhbXNbJ2NhbmNlbCddICkgKQ0Kew0KICAkcGFyYW1zWydhY3RpdmVfdGFiJ10gPSAnaXRlbXRhYic7DQogICR0aGlzLT5SZWRpcmVjdCggJGlkLCAnZGVmYXVsdGFkbWluJywgJHJldHVybmlkLCAkcGFyYW1zICk7DQp9DQoNCiRjc3ZfbWltZXR5cGVzID0gWw0KICAgICAgICAgICAgICAgICAgICAndGV4dC9jc3YnLA0KICAgICAgICAgICAgICAgICAgICAndGV4dC9wbGFpbicsDQogICAgICAgICAgICAgICAgICAgICdhcHBsaWNhdGlvbi9jc3YnLA0KICAgICAgICAgICAgICAgICAgICAndGV4dC9jb21tYS1zZXBhcmF0ZWQtdmFsdWVzJywNCiAgICAgICAgICAgICAgICAgICAgJ2FwcGxpY2F0aW9uL2V4Y2VsJywNCiAgICAgICAgICAgICAgICAgICAgJ2FwcGxpY2F0aW9uL3ZuZC5tcy1leGNlbCcsDQogICAgICAgICAgICAgICAgICAgICdhcHBsaWNhdGlvbi92bmQubXNleGNlbCcsDQogICAgICAgICAgICAgICAgICAgICd0ZXh0L2FueXRleHQnLA0KICAgICAgICAgICAgICAgICAgICAnYXBwbGljYXRpb24vb2N0ZXQtc3RyZWFtJywNCiAgICAgICAgICAgICAgICAgICAgJ2FwcGxpY2F0aW9uL3R4dCcsDQogICAgICAgICAgICAgICAgICBdOw0KDQokYWRtaW50aGVtZSAgICA9IGNtc191dGlsczo6Z2V0X3RoZW1lX29iamVjdCgpOw0KJGRlc3RfcGF0aCAgICAgPSBjbXNfam9pbl9wYXRoKFRNUF9DQUNIRV9MT0NBVElPTiwgJHRoaXMtPkdldE5hbWUoKSAuICdfQ1NWX0ZJTEUuY3N2Jyk7DQokZmlsZV92YWx1ZXMgICA9IFtdOw0KJHRlbXBsYXRlICAgICAgPSAnYWRtaW5fY3N2X2ltcG9ydF9leHBvcnQudHBsJzsNCiRwbHVyYWwgICAgICAgID0gJHRoaXMtPkdldFByZWZlcmVuY2UoJ2l0ZW1fcGx1cmFsJywgJycpOw0KJHNlcGFyYXRvciAgICAgPSBsaXNlX3V0aWxzOjppbml0X3Zhcignc2VwYXJhdG9yJywgJHBhcmFtcywgJHRoaXMtPkdldFByZWZlcmVuY2UoJ3NlcGFyYXRvcicsICcsJykgKTsNCiRlbmNsb3N1cmUgICAgID0gbGlzZV91dGlsczo6aW5pdF92YXIoJ2VuY2xvc3VyZScsICRwYXJhbXMsICR0aGlzLT5HZXRQcmVmZXJlbmNlKCdlbmNsb3N1cmUnLCAnIicpICk7DQokaW1wb3J0X3ZhbHVlcyA9IGxpc2VfdXRpbHM6OmluaXRfdmFyKCdpbXBvcnRfdmFsdWVzJywgJHBhcmFtcywgW10pOw0KJHRoaXMtPlNldFByZWZlcmVuY2UoICdpbXBvcnRfdmFsdWVzJywgc2VyaWFsaXplKCRpbXBvcnRfdmFsdWVzKSApOw0KDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQojIExvYWQgaXRlbSB2YXJpYWJsZXMNCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0NCg0KJGRhdGFiYXNlX3ZhbHVlcyA9IFtdOw0KJF9pbnZhbGlkX3ZhbHVlcyA9IFsnY3JlYXRlX3RpbWUnLCAnbW9kaWZpZWRfdGltZSddOw0KJGl0ZW0gICAgICAgICAgICA9ICR0aGlzLT5Jbml0aWF0ZUl0ZW0oKTsNCg0KJGRhdGFiYXNlX3ZhbHVlcyA9IFxMSVNFXGFwaTo6Z2V0SW5zdGFuY2UoKTo6R2V0RmllbGRzUmVxdWlyZW1lbnRzKEZBTFNFKTsNCg0KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIyBHbyBiYWNrDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQoNCmlmKCBpc3NldCggJHBhcmFtc1sncHJldmlvdXMnXSApICkNCnsNCiAgdW5zZXQoJHBhcmFtc1snc3VibWl0J10sICRwYXJhbXNbJ3ByZXZpb3VzJ10pOw0KfQ0KDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQojIERvIGltcG9ydA0KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KDQppZiggaXNzZXQoICRwYXJhbXNbJ2RvX2ltcG9ydCddICkgKQ0Kew0KICAkdGhpcy0+UmVkaXJlY3QoICRpZCwgJ2Nzdl9pbXBvcnRfYXBwJywgJHJldHVybmlkLCAkcGFyYW1zICk7DQoNCi8vICAkZXJyb3JzID0gW107DQovLw0KLy8gIGZvcmVhY2goICRkYXRhYmFzZV92YWx1ZXMgYXMgJG9iaiApDQovLyAgew0KLy8NCi8vICAgIGlmKCAkb2JqLT5yZXF1aXJlZCApDQovLyAgICB7DQovLyAgICAgIGlmKCAhJGltcG9ydF92YWx1ZXNbJG9iai0+YWxpYXNdICkgJGVycm9yc1tdID0gJHRoaXMtPk1vZExhbmcoICdyZXF1aXJlZF9maWVsZF9lbXB0eScgKSAuICcgKCcgLiAkb2JqLT5hbGlhcyAuICcpJzsNCi8vICAgIH0NCi8vICB9DQovLw0KLy8gIGlmKCBlbXB0eSggJGVycm9ycyApICkNCi8vICB7DQovLw0KLy8gICAgJGRhdGFiYXNlX3ZhbHVlcyA9IFtdOw0KLy8NCi8vICAgIC8vIEluaXRpYXRlIENzdkl0ZXJhdG9yDQovLyAgICAkY3N2ID0gbmV3IExJU0VDc3ZJdGVyYXRvciggJGRlc3RfcGF0aCwgdHJ1ZSwgJHNlcGFyYXRvciwgJGVuY2xvc3VyZSApOw0KLy8NCi8vICAgIC8vIENvbGxlY3QgZGF0YSBmcm9tIGZpbGUNCi8vICAgIHdoaWxlKCAkY3N2LT5uZXh0KCkgKQ0KLy8gICAgew0KLy8NCi8vICAgICAgJHJvdyA9ICRjc3YtPmN1cnJlbnQoKTsNCi8vDQovLyAgICAgIGZvcmVhY2goICRpbXBvcnRfdmFsdWVzIGFzICRhbGlhcyA9PiAkaW5kZXggKQ0KLy8gICAgICB7DQovLw0KLy8gICAgICAgIGlmKCAkaW5kZXggKQ0KLy8gICAgICAgIHsNCi8vICAgICAgICAgICRkYXRhYmFzZV92YWx1ZXNbJGNzdi0+a2V5KCldWyRhbGlhc10gPSAkcm93WyRpbmRleF07DQovLyAgICAgICAgfQ0KLy8gICAgICAgIGVsc2UNCi8vICAgICAgICB7DQovLyAgICAgICAgICB1bnNldCggJGltcG9ydF92YWx1ZXNbJGFsaWFzXSApOw0KLy8gICAgICAgIH0NCi8vICAgICAgfQ0KLy8gICAgfQ0KLy8NCi8vICAgIC8vIEltcG9ydCBkYXRhIHRvIGRhdGFiYXNlDQovLyAgICBmb3JlYWNoKCAkZGF0YWJhc2VfdmFsdWVzIGFzICRpdGVtX3ZhbHVlcyApDQovLyAgICB7DQovLw0KLy8gICAgICAkb2JqID0gJHRoaXMtPkluaXRpYXRlSXRlbSgpOw0KLy8NCi8vICAgICAgZm9yZWFjaCggJGl0ZW1fdmFsdWVzIGFzICRrZXkgPT4gJHZhbHVlICkNCi8vICAgICAgew0KLy8NCi8vICAgICAgICBpZiggJGtleSA9PSAnaXRlbV9pZCcgJiYgIWlzX251bWVyaWMoICR2YWx1ZSApICkgY29udGludWU7DQovLw0KLy8gICAgICAgICRvYmotPlNldFByb3BlcnR5VmFsdWUoICRrZXksICR2YWx1ZSApOw0KLy8gICAgICAgIGlmKCAka2V5ID09ICdpdGVtX2lkJyApIExJU0VJdGVtT3BlcmF0aW9uczo6TG9hZCggJHRoaXMsICRvYmogKTsgLy8gPC0gVHJ5IGxvYWRpbmcgaXRlbSBpZiB3ZSBhY3R1YWxseSBnb3QgSUQuDQovLyAgICAgIH0NCi8vDQovLyAgICAgICR0aGlzLT5TYXZlSXRlbSggJG9iaiApOw0KLy8NCi8vICAgICAgdW5zZXQoICRvYmogKTsNCi8vICAgIH0NCi8vDQovLyAgICAvLyBSZWRpcmVjdCBiYWNrIHRvIGxpc3RpbmcNCi8vICAgICRwYXJhbXMgPSBbJ2FjdGl2ZV90YWInID0+ICdpdGVtdGFiJ107DQovLyAgICAkdGhpcy0+UmVkaXJlY3QoICRpZCwgJ2RlZmF1bHRhZG1pbicsICRyZXR1cm5pZCwgJHBhcmFtcyApOw0KDQovLyAgfSAvLyBlbmQgb2YgZXJyb3IgY2hlY2sNCn0NCg0KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIyBTdWJtaXQNCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0NCg0KaWYoIGlzc2V0KCRwYXJhbXNbJ3N1Ym1pdCddKSApDQp7DQogIA0KICAkdGhpcy0+U2V0UHJlZmVyZW5jZSgnc2VwYXJhdG9yJywgJHBhcmFtc1snc2VwYXJhdG9yJ10gPz8gJywnKTsNCiAgJHRoaXMtPlNldFByZWZlcmVuY2UoJ2VuY2xvc3VyZScsICRwYXJhbXNbJ2VuY2xvc3VyZSddID8/ICInIik7DQogIA0KICBpZiggIWlzc2V0KCAkcGFyYW1zWydkb19pbXBvcnQnXSApICkNCiAgew0KICAgICRlcnJvcnMgPSBbXTsNCg0KICAgIC8vIFN0YXJ0IGZpbGUgdmFsaWRhdGlvbg0KICAgICRfZmlsZSA9ICRfRklMRVNbJGlkIC4gJ2NzdmZpbGUnXTsNCg0KICAgIGlmKCAhaXNzZXQoICRfZmlsZVsnbmFtZSddICkgfHwgJycgPT09ICRfZmlsZVsnbmFtZSddKQ0KICAgIHsNCiAgICAgICRlcnJvcnNbXSA9ICR0aGlzLT5Nb2RMYW5nKCAnZXJyb3JfZmlsZV9lbXB0eScgKTsNCiAgICB9DQogICAgLyogRElTQUJMRSBVTlRJTCBGVVJUSEVSIE5PVElDRSENCiAgICBpZighaW5fYXJyYXkoJF9maWxlWyd0eXBlJ10sICRjc3ZfbWltZXR5cGVzKSkgew0KICAgIA0KICAgICRlcnJvcnNbXSA9ICR0aGlzLT5Nb2RMYW5nKCdlcnJvcl9maWxlX25vY3N2Jyk7DQogICAgfQ0KICAgICovDQogICAgaWYoZW1wdHkoJGVycm9ycykgJiYgIW1vdmVfdXBsb2FkZWRfZmlsZSgkX2ZpbGVbJ3RtcF9uYW1lJ10sICRkZXN0X3BhdGgpKQ0KICAgIHsNCiAgICAgICRlcnJvcnNbXSA9ICR0aGlzLT5Nb2RMYW5nKCAnZXJyb3JfZmlsZV9wZXJtaXNzaW9ucycgKTsNCiAgICB9DQogIH0NCiAgDQogIC8vIE5vIGZpbGUgdmFsaWRhdGlvbiBlcnJvcnMsIHJlYWQgZmlsZQ0KICBpZiggZW1wdHkoICRlcnJvcnMgKSB8fCBpc3NldCggJHBhcmFtc1snZG9faW1wb3J0J10gKSApDQogIHsNCg0KICAgIC8vIEluaXRpYXRlIENzdkl0ZXJhdG9yDQogICAgJGNzdiA9IG5ldyBMSVNFQ3N2SXRlcmF0b3IoICRkZXN0X3BhdGgsIGZhbHNlLCAkc2VwYXJhdG9yLCAkZW5jbG9zdXJlICk7DQoNCiAgICAkY3N2LT5uZXh0KCk7DQogICAgJHRtcCA9ICRjc3YtPmN1cnJlbnQoKTsNCiAgICAkY3N2LT50ZWFyRG93bigpOw0KDQogICAgLy8gQnVpbGQgZHJvcGRvd24gYXJyYXkNCiAgICAkZmlsZV92YWx1ZXMgPSBbMCA9PiBsYW5nKCdub25lJyApXTsNCiAgICBmb3JlYWNoKCAkdG1wIGFzICR0bXB2YWwgKQ0KICAgIHsNCiAgICAgICRmaWxlX3ZhbHVlc1skdG1wdmFsXSA9IHV0ZjhfZW5jb2RlKCAkdG1wdmFsICk7DQogICAgfQ0KDQogICAgJHRlbXBsYXRlID0gJ2FkbWluX2Nzdl9pbXBvcnQudHBsJzsNCiAgfQ0KDQp9IC8vIGVuZCBvZiBzdWJtaXQNCg0KDQoNCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0NCiMgU21hcnR5IHByb2Nlc3NpbmcNCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0NCg0KLy8gZGlzcGxheSBlcnJvcnMgaWYgdGhlcmUgYXJlIGFueQ0KaWYoICFlbXB0eSggJGVycm9ycyApICkNCnsNCiAgaWYoIGlzc2V0KCAkcGFyYW1zWydhcHBseSddICkgJiYgaXNzZXQoICRwYXJhbXNbJ2FqYXgnXSApICkNCiAgew0KICAgICRyZXNwb25zZSA9ICc8RWRpdEl0ZW0+JzsNCiAgICAkcmVzcG9uc2UgLj0gJzxSZXNwb25zZT5FcnJvcjwvUmVzcG9uc2U+JzsNCiAgICAkcmVzcG9uc2UgLj0gJzxEZXRhaWxzPjwhW0NEQVRBWyc7DQogICAgZm9yZWFjaCggJGVycm9ycyBhcyAkZXJyb3IgKQ0KICAgIHsNCiAgICAgICRyZXNwb25zZSAuPSAnPGxpPicgLiAkZXJyb3IgLiAnPC9saT4nOw0KICAgIH0NCiAgICAkcmVzcG9uc2UgLj0gJ11dPjwvRGV0YWlscz4nOw0KICAgICRyZXNwb25zZSAuPSAnPC9FZGl0SXRlbT4nOw0KICAgIGVjaG8gJHJlc3BvbnNlOw0KICAgIHJldHVybjsNCiAgfQ0KICBlbHNlDQogIHsNCiAgICBlY2hvICR0aGlzLT5TaG93RXJyb3JzKCAkZXJyb3JzICk7DQogIH0NCn0NCg0KLy8gUGFydCAxDQokc21hcnR5LT5hc3NpZ24oICdpbnB1dF9maWxlJywgJHRoaXMtPkNyZWF0ZUZpbGVVcGxvYWRJbnB1dCggJGlkLCAnY3N2ZmlsZScsICcnLCAyNSApICk7DQokc21hcnR5LT5hc3NpZ24oICdpbnB1dF9zZXBhcmF0b3InLCAkdGhpcy0+Q3JlYXRlSW5wdXRUZXh0KCAkaWQsICdzZXBhcmF0b3InLCAkc2VwYXJhdG9yLCA1MCApICk7DQokc21hcnR5LT5hc3NpZ24oICdpbnB1dF9lbmNsb3N1cmUnLCAkdGhpcy0+Q3JlYXRlSW5wdXRUZXh0KCAkaWQsICdlbmNsb3N1cmUnLCAkZW5jbG9zdXJlLCA1MCApICk7DQoNCi8vIFBhcnQgMg0KJHNtYXJ0eS0+YXNzaWduKCAnZGF0YWJhc2VfdmFsdWVzJywgJGRhdGFiYXNlX3ZhbHVlcyApOw0KJHNtYXJ0eS0+YXNzaWduKCAnZmlsZV92YWx1ZXMnLCAkZmlsZV92YWx1ZXMgKTsNCg0KJHNtYXJ0eS0+YXNzaWduKCAndGl0bGUnLCAkdGhpcy0+TW9kTGFuZyggJ2ltcG9ydCcsICRwbHVyYWwgKSApOw0KJHNtYXJ0eS0+YXNzaWduKCAnYmFja2xpbmsnLCAkdGhpcy0+Q3JlYXRlQmFja0xpbmsoICdpdGVtdGFiJyApICk7DQokc21hcnR5LT5hc3NpZ24oICdzdGFydGZvcm0nLCAkdGhpcy0+Q3JlYXRlRm9ybVN0YXJ0KCAkaWQsICdhZG1pbl9pbXBvcnRpdGVtcycsICRyZXR1cm5pZCwgJ3Bvc3QnLCAnbXVsdGlwYXJ0L2Zvcm0tZGF0YScsIGZhbHNlLCAnJywgJHBhcmFtcyApICk7DQokc21hcnR5LT5hc3NpZ24oICdlbmRmb3JtJywgJHRoaXMtPkNyZWF0ZUZvcm1FbmQoKSApOw0KDQokc21hcnR5LT5hc3NpZ24oICdzdWJtaXQnLCAkdGhpcy0+Q3JlYXRlSW5wdXRTdWJtaXQoICRpZCwgJ3N1Ym1pdCcsIGxhbmcoICdzdWJtaXQnICkgKSApOw0KJHNtYXJ0eS0+YXNzaWduKCAncHJldmlvdXMnLCAkdGhpcy0+Q3JlYXRlSW5wdXRTdWJtaXQoICRpZCwgJ3ByZXZpb3VzJywgbGFuZyggJ3ByZXZpb3VzJyApICkgKTsNCiRzbWFydHktPmFzc2lnbiggJ2RvX2ltcG9ydCcsICR0aGlzLT5DcmVhdGVJbnB1dFN1Ym1pdCggJGlkLCAnZG9faW1wb3J0JywgbGFuZyggJ3N1Ym1pdCcgKSApICk7DQokc21hcnR5LT5hc3NpZ24oICdjYW5jZWwnLCAkdGhpcy0+Q3JlYXRlSW5wdXRTdWJtaXQoICRpZCwgJ2NhbmNlbCcsIGxhbmcoICdjYW5jZWwnICkgKSApOw0KDQplY2hvICR0aGlzLT5Nb2RQcm9jZXNzVGVtcGxhdGUoICR0ZW1wbGF0ZSApOw0KDQo/Pg==]]></data>
	</file>
	<file>
	  <filename>/framework/action.admin_local.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHANCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQojIExJU0UgLSBMaXN0IEl0IFNwZWNpYWwgRWRpdGlvbg0KIyBWZXJzaW9uIDEuMg0KIyBBIGZvcmsgb2YgTGlzdEkyDQojIG1haW50YWluZWQgYnkgRmVybmFuZG8gTW9yZ2FkbyBBS0EgSm8gTW9yZw0KIyBzaW5jZSAyMDE1DQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIw0KIyBPcmlnaW5hbCBBdXRob3I6IEJlbiBNYWxlbiwgPGJlbkBjb25jZXB0ZmFjdG9yeS5jb20uYXU+DQojIENvLU1haW50YWluZXI6IFNpbW9uIFJhZGZvcmQsIDxzaW1vbkBjb25jZXB0ZmFjdG9yeS5jb20uYXU+DQojIFdlYjogd3d3LmNvbmNlcHRmYWN0b3J5LmNvbS5hdQ0KIw0KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCiMNCiMgTWFpbnRhaW5lciBzaW5jZSAyMDExIHVwIHRvIDIwMTQ6IEpvbmF0aGFuIFNjaG1pZCwgPGhpQGpvbmF0aGFuc2NobWlkLmRlPg0KIyBXZWI6IHd3dy5qb25hdGhhbnNjaG1pZC5kZQ0KIw0KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCiMNCiMgU29tZSB3YWNrb3Mgc3RhcnRlZCBkZXN0cm95aW5nIHN0dWZmIHNpbmNlIDIwMTIgYW5kIHN0b3BwZWQgYXQgMjAxNDoNCiMNCiMgVGFwaW8gTMO2eXR0eSwgPHRhcHNhQG9yYW5nZS1tZWRpYS5maT4NCiMgV2ViOiB3d3cub3JhbmdlLW1lZGlhLmZpDQojDQojIEdvcmFuIElsaWMsIDx1bmlxdTNlQGdtYWlsLmNvbT4NCiMgV2ViOiB3d3cuaWNoLW1hY2gtZGFzLmF0DQojDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIw0KIyBMSVNFIGlzIGEgQ01TIE1hZGUgU2ltcGxlIG1vZHVsZSB0aGF0IGVuYWJsZXMgdGhlIHdlYiBkZXZlbG9wZXIgdG8gY3JlYXRlDQojIG11bHRpcGxlIGxpc3RzIHRocm91Z2hvdXQgYSBzaXRlLiBJdCBjYW4gYmUgZHVwbGljYXRlZCBhbmQgZ2l2ZW4gZnJpZW5kbHkNCiMgbmFtZXMgZm9yIGVhc2llciBjbGllbnQgbWFpbnRlbmFuY2UuDQojDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIyBCRUdJTl9MSUNFTlNFDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIyBUaGlzIGZpbGUgaXMgcGFydCBvZiBMSVNFDQojIExJU0UgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5DQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5DQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yDQojIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uDQojDQojIExJU0UgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLA0KIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZg0KIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlDQojIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuDQojIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlDQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlDQojIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcgVVNBDQojIE9yIHJlYWQgaXQgb25saW5lOiBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwNCiMNCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQojIEVORF9MSUNFTlNFDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KaWYoICFkZWZpbmVkKCdDTVNfVkVSU0lPTicpICkgZXhpdDsNCg0KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIyBDaGVjayBwYXJhbXMNCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0NCg0KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIyBJbml0IHBhcmFtcw0KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KDQokbW9kZQkgICAgICAJCQkJICAgID0gJ2VkaXQnOw0KLy8kaXRlbV9pZCAgICAgICAgICAgICAgICA9IDE7DQokdXJsICAgICAgCQkJCSAgICAgID0gJyc7DQokdGl0bGUgICAgICAgCQkJIAkgICAgPSAkdGhpcy0+R2V0TmFtZSgpOw0KJGFsaWFzCQkgCQkJIAkgICAgICA9ICR0aGlzLT5HZXROYW1lKCk7DQokdGltZV9jb250cm9sIAkJCQkgID0gMDsNCiRhY3RpdmUgICAgICAJCQkgCSAgICA9IDE7DQoNCiR1cmxfZXJyb3IgPSBGQUxTRTsNCiRzdGFydF90aW1lID0gJyc7DQokZW5kX3RpbWUgPSAnJzsNCg0KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIyBJbml0IEl0ZW0NCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0NCg0KJGxvY2FsX21vZGVfaW5zdGFuY2UgPSAkdGhpcy0+R2V0UHJlZmVyZW5jZSgnbG9jYWxfbW9kZV9pbnN0YW5jZScsICcnKTsNCg0KaWYoICFlbXB0eSgkbG9jYWxfbW9kZV9pbnN0YW5jZSkgKQ0Kew0KICAkbG1pX21vZCA9IFxjbXNfdXRpbHM6OmdldF9tb2R1bGUoJGxvY2FsX21vZGVfaW5zdGFuY2UpOw0KICAkc2hvd19sb2NhbCA9IGlzX29iamVjdCgkbG1pX21vZCk7DQogICRvYmogPSAkbG1pX21vZC0+TG9hZEl0ZW1CeUlkZW50aWZpZXIoICdhbGlhcycsICR0aGlzLT5HZXROYW1lKCkgKTsNCn0NCmVsc2UNCnsNCiAgcmV0dXJuOw0KfQ0KDQokb2JqID0gJGxtaV9tb2QtPkxvYWRJdGVtQnlJZGVudGlmaWVyKCAnYWxpYXMnLCAkdGhpcy0+R2V0TmFtZSgpICk7DQoNCg0KDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQojIEhhbmRsZSBjdXN0b20gZmllbGRzDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQoNCmlmIChpc3NldCgkcGFyYW1zWydjdXN0b21maWVsZCddKSkNCnsNCiAgaWYoICFpc19hcnJheSgkcGFyYW1zWydjdXN0b21maWVsZCddKSApICRwYXJhbXNbJ2N1c3RvbWZpZWxkJ10gPSBhcnJheSgkcGFyYW1zWydjdXN0b21maWVsZCddKTsNCiAgDQogIGZvcmVhY2ggKChhcnJheSkkcGFyYW1zWydjdXN0b21maWVsZCddIGFzICRmbGRpZCA9PiAkdmFsdWUpDQogIHsNCiAgICBpZihpc3NldCgkb2JqLT5maWVsZGRlZnNbJGZsZGlkXSkpICRvYmotPmZpZWxkZGVmc1skZmxkaWRdLT5TZXRWYWx1ZSgkdmFsdWUpOw0KICB9DQogIA0KICB1bnNldCgkcGFyYW1zWydjdXN0b21maWVsZCddKTsNCn0NCg0KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIyBTdWJtaXQNCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0NCg0KaWYoIGlzc2V0KCRwYXJhbXNbJ2FwcGx5J10pICkNCnsNCiAgDQogICRlcnJvcnMgPSBhcnJheSgpOw0KICANCiAgLy8gUHJlUHJvY2VzcyAmIFZhbGlkYXRpb25zDQogIGZvcmVhY2goJG9iai0+ZmllbGRkZWZzIGFzICRmaWVsZCkNCiAgew0KICAgICRmaWVsZC0+RXZlbnRIYW5kbGVyKCktPkl0ZW1TYXZlUHJlUHJvY2VzcygkZXJyb3JzLCAkcGFyYW1zKTsNCiAgfQ0KICANCiAgLy8gdGl0bGUgYW5kIHJlcXVpcmVkIGZpZWxkcyBoYXZlIHZhbHVlcywgbGV0J3MgY29udGludWUNCiAgaWYgKGVtcHR5KCRlcnJvcnMpKQ0KICB7DQogICAgJG9iai0+dGl0bGUgICAgICAgIAkgID0gJHRpdGxlOw0KICAgICRvYmotPmFsaWFzCQkgCSAgICAgID0gJGFsaWFzOw0KICAgICRvYmotPmFjdGl2ZSAgICAgICAJICA9IGlzc2V0KCRwYXJhbXNbJ2FjdGl2ZSddKSA/IDEgOiAwOw0KICAgICRvYmotPnN0YXJ0X3RpbWUgICAJICA9ICRzdGFydF90aW1lOw0KICAgICRvYmotPmVuZF90aW1lICAgICAgICA9ICRlbmRfdGltZTsNCiAgICAkb2JqLT51cmwgICAgIAkgICAgICA9ICR1cmw7DQogICAgLy8kb2JqLT5jYXRlZ29yaWVzCT0gJGNhdGVnb3JpZXM7DQogICAgLy8kb2JqLT5jYXRlZ29yeV9pZCA9ICRjYXRlZ29yeV9pZDsNCiAgICANCiAgICAvLyBTYXZlIGl0ZW0gdG8gZGF0YWJhc2UNCiAgICAkbG1pX21vZC0+U2F2ZUl0ZW0oJG9iaik7DQogICAgDQogICAgLy8gUG9zdFByb2Nlc3MNCiAgICBmb3JlYWNoKCRvYmotPmZpZWxkZGVmcyBhcyAkZmllbGQpDQogICAgew0KICAgICAgJGZpZWxkLT5FdmVudEhhbmRsZXIoKS0+SXRlbVNhdmVQb3N0UHJvY2VzcygkZXJyb3JzLCAkcGFyYW1zKTsNCiAgICB9DQogICAgDQogICAgbGlzZV91dGlsczo6Y2xlYW5fcGFyYW1zKCRwYXJhbXMsIGFycmF5KCdwYWdlJyksIHRydWUpOw0KICAgICRwYXJhbXNbJ2FjdGl2ZV90YWInXSA9ICdsb2NhbHRhYic7DQogICAgJHBhcmFtc1snbWVzc2FnZSddID0gJ2NoYW5nZXNzYXZlZCc7DQogICAgJHRoaXMtPlJlZGlyZWN0KCRpZCwgJ2RlZmF1bHRhZG1pbicsICRyZXR1cm5pZCwgJHBhcmFtcyk7DQogICAgDQogIH0gLy8gZW5kIGVycm9yIGNoZWNrDQogIA0KfSAvLyBlbmQgc3VibWl0DQoNCg0KPz4NCg==]]></data>
	</file>
	<file>
	  <filename>/framework/action.admin_reordercategory.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBMSVNFIC0gTGlzdCBJdCBTcGVjaWFsIEVkaXRpb24KIyBWZXJzaW9uIDEuMgojIEEgZm9yayBvZiBMaXN0STIKIyBtYWludGFpbmVkIGJ5IEZlcm5hbmRvIE1vcmdhZG8gQUtBIEpvIE1vcmcKIyBzaW5jZSAyMDE1CiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBPcmlnaW5hbCBBdXRob3I6IEJlbiBNYWxlbiwgPGJlbkBjb25jZXB0ZmFjdG9yeS5jb20uYXU+CiMgQ28tTWFpbnRhaW5lcjogU2ltb24gUmFkZm9yZCwgPHNpbW9uQGNvbmNlcHRmYWN0b3J5LmNvbS5hdT4KIyBXZWI6IHd3dy5jb25jZXB0ZmFjdG9yeS5jb20uYXUKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojCiMgTWFpbnRhaW5lciBzaW5jZSAyMDExIHVwIHRvIDIwMTQ6IEpvbmF0aGFuIFNjaG1pZCwgPGhpQGpvbmF0aGFuc2NobWlkLmRlPgojIFdlYjogd3d3LmpvbmF0aGFuc2NobWlkLmRlCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIwojIFNvbWUgd2Fja29zIHN0YXJ0ZWQgZGVzdHJveWluZyBzdHVmZiBzaW5jZSAyMDEyIGFuZCBzdG9wcGVkIGF0IDIwMTQ6CiMKIyBUYXBpbyBMw7Z5dHR5LCA8dGFwc2FAb3JhbmdlLW1lZGlhLmZpPgojIFdlYjogd3d3Lm9yYW5nZS1tZWRpYS5maQojCiMgR29yYW4gSWxpYywgPHVuaXF1M2VAZ21haWwuY29tPgojIFdlYjogd3d3LmljaC1tYWNoLWRhcy5hdAojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBMSVNFIGlzIGEgQ01TIE1hZGUgU2ltcGxlIG1vZHVsZSB0aGF0IGVuYWJsZXMgdGhlIHdlYiBkZXZlbG9wZXIgdG8gY3JlYXRlCiMgbXVsdGlwbGUgbGlzdHMgdGhyb3VnaG91dCBhIHNpdGUuIEl0IGNhbiBiZSBkdXBsaWNhdGVkIGFuZCBnaXZlbiBmcmllbmRseQojIG5hbWVzIGZvciBlYXNpZXIgY2xpZW50IG1haW50ZW5hbmNlLgojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgQkVHSU5fTElDRU5TRQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIExJU0UKIyBMSVNFIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgTElTRSBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBFTkRfTElDRU5TRQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyAgQSBmdW5jdGlvbiBmb3IgdGhlIExJU0UgbW9kdWxlIHRvIGFsbG93IHJlLW9yZGVyaW5nIHRoZSBoaWVyYXJjaGljYWwgY2F0ZWdvcnkgdHJlZS4KIyAoYykgMjAxMiBieSBSb2JlcnQgQ2FtcGJlbGwgKGNhbGd1eTEwMDBAY21zbWFkZXNpbXBsZS5vcmcpCiMgCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCiMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KIwojIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAojIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCiMgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQojIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCiMgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKIyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcgVVNBCiMgT3IgcmVhZCBpdCBvbmxpbmU6IGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9saWNlbnNlcy5odG1sI0dQTAojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiNFTkRfTElDRU5TRQppZiggIWRlZmluZWQoJ0NNU19WRVJTSU9OJykgKSBleGl0OwoKaWYgKCEkdGhpcy0+Q2hlY2tQZXJtaXNzaW9uKCR0aGlzLT5fR2V0TW9kdWxlQWxpYXMoKSAuICdfbW9kaWZ5X2NhdGVnb3J5JykpIHJldHVybjsKCi8vCi8vIGZ1bmN0aW9ucwovLwpmdW5jdGlvbiBsaXNlX2dldF9jYXRlZ29yeV90cmVlKCRtb2R1bGVfYWxpYXMsJHBhcmVudF9pZCA9IC0xKQp7CiAgJGRiID0gY21zbXMoKS0+R2V0RGIoKTsKICAkdGhldGFibGUgPSBjbXNfZGJfcHJlZml4KCkuJ21vZHVsZV8nLiRtb2R1bGVfYWxpYXMuJ19jYXRlZ29yeSc7CgogICRxdWVyeSA9ICdTRUxFQ1QgKiBGUk9NICcuJHRoZXRhYmxlLicgV0hFUkUgcGFyZW50X2lkID0gPyBPUkRFUiBCWSBoaWVyYXJjaHknOwogICRkYXRhPSAkZGItPkdldEFycmF5KCRxdWVyeSxhcnJheSgkcGFyZW50X2lkKSk7CgogIGlmKCBpc19hcnJheSgkZGF0YSkgJiYgY291bnQoJGRhdGEpICkKICAgIHsKICAgICAgZm9yKCAkaSA9IDA7ICRpIDwgY291bnQoJGRhdGEpOyAkaSsrICkKCXsKCSAgJHRtcCA9IGxpc2VfZ2V0X2NhdGVnb3J5X3RyZWUoJG1vZHVsZV9hbGlhcywkZGF0YVskaV1bJ2NhdGVnb3J5X2lkJ10pOwoJICBpZiggaXNfYXJyYXkoJHRtcCkgJiYgY291bnQoJHRtcCkgKQoJICAgIHsKCSAgICAgICRkYXRhWyRpXVsnY2hpbGRyZW4nXSA9ICR0bXA7CgkgICAgfQoJfQoKICAgICAgcmV0dXJuICRkYXRhOwogICAgfQp9CgpmdW5jdGlvbiBsaXNlX2NyZWF0ZV9jYXRlZ29yeV9mbGF0bGlzdCgkdHJlZSwkcGFyZW50X2lkID0gLTEpCnsKICAkZGF0YSA9IGFycmF5KCk7CiAgJG9yZGVyID0gMTsKICBmb3JlYWNoKCAkdHJlZSBhcyAmJG5vZGUgKQogICAgewogICAgICBpZiggaXNfYXJyYXkoJG5vZGUpICYmIGNvdW50KCRub2RlKSA9PSAyICkKCXsKCSAgJHBpZCA9IChpbnQpc3Vic3RyKCRub2RlWzBdLHN0cmxlbignY2F0XycpKTsKCSAgJGRhdGFbXSA9IGFycmF5KCdpZCc9PiRwaWQsJ3BhcmVudF9pZCc9PiRwYXJlbnRfaWQsJ29yZGVyJz0+JG9yZGVyKTsKCSAgaWYoIGlzc2V0KCRub2RlWzFdKSAmJiBpc19hcnJheSgkbm9kZVsxXSkgKQoJICAgIHsKCSAgICAgICRkYXRhID0gYXJyYXlfbWVyZ2UoJGRhdGEsbGlzZV9jcmVhdGVfY2F0ZWdvcnlfZmxhdGxpc3QoJG5vZGVbMV0sJHBpZCkpOwoJICAgIH0KCX0KICAgICAgZWxzZQoJewoJICAkcGlkID0gKGludClzdWJzdHIoJG5vZGUsc3RybGVuKCdjYXRfJykpOwoJICAkZGF0YVtdID0gYXJyYXkoJ2lkJz0+JHBpZCwncGFyZW50X2lkJz0+JHBhcmVudF9pZCwnb3JkZXInPT4kb3JkZXIpOwoJfQogICAgICAkb3JkZXIrKzsKICAgIH0KICByZXR1cm4gJGRhdGE7Cn0KCi8vCi8vIEdldCB0aGUgZGF0YQovLwokdHJlZSA9IGxpc2VfZ2V0X2NhdGVnb3J5X3RyZWUoJHRoaXMtPl9HZXRNb2R1bGVBbGlhcygpKTsKCi8vcHJpbnRfcigkdHJlZSk7CgovLwovLyBIYW5kbGUgZm9ybSBzdWJtaXNzaW9uCi8vCmlmKCBpc3NldCgkcGFyYW1zWydjYW5jZWwnXSkgKQogIHsKICAgICR0aGlzLT5SZWRpcmVjdCgkaWQsICdkZWZhdWx0YWRtaW4nLCAkcmV0dXJuaWQsIGFycmF5KCdhY3RpdmVfdGFiJyA9PiAnY2F0ZWdvcnl0YWInKSk7CiAgfQplbHNlIGlmKCBpc3NldCgkcGFyYW1zWydzdWJtaXQnXSkgKSAKICB7CgogICAgJG9yZGVyZGF0YSA9IGpzb25fZGVjb2RlKCRwYXJhbXNbJ29yZGVyZGF0YSddKTsKCQogICAgJGZsYXRsaXN0ID0gbGlzZV9jcmVhdGVfY2F0ZWdvcnlfZmxhdGxpc3QoJG9yZGVyZGF0YSk7CiAgICAkdGhldGFibGUgPSBjbXNfZGJfcHJlZml4KCkuJ21vZHVsZV8nLiR0aGlzLT5fR2V0TW9kdWxlQWxpYXMoKS4nX2NhdGVnb3J5JzsKCiAgICAvLyBnZXQgdGhlIGZ1bGwgY2F0ZWdvcnkgbGlzdC4KICAgICRjYXRlZ29yaWVzID0gYXJyYXkoKTsKICAgIHsKICAgICAgJHF1ZXJ5ID0gJ1NFTEVDVCAqIEZST00gJy4kdGhldGFibGUuJyBPUkRFUiBCWSBoaWVyYXJjaHknOwogICAgICAkdG1wID0gJGRiLT5HZXRBcnJheSgkcXVlcnkpOwogICAgICBmb3IoICRpID0gMDsgJGkgPCBjb3VudCgkdG1wKTsgJGkrKyApCgl7CgkgICRyZWMgPSAkdG1wWyRpXTsKCSAgJGNhdGVnb3JpZXNbJHJlY1snY2F0ZWdvcnlfaWQnXV0gPSAkdG1wOwoJfQogICAgfQogICAgCiAgICAvLyBhbmQgdXBkYXRlIHRoZSBkYXRhYmFzZSB3aXRoIG91ciBuZXcgb3JkZXIgaW5mby4KICAgICRxdWVyeSA9ICdVUERBVEUgJy4kdGhldGFibGUuJyBTRVQgcGFyZW50X2lkID0gPywgcG9zaXRpb24gPSA/LCBoaWVyYXJjaHkgPSA/IFdIRVJFIGNhdGVnb3J5X2lkID0gPyc7CiAgICBmb3JlYWNoKCAkZmxhdGxpc3QgYXMgJHJlYyApCiAgICAgIHsKCSRkYnIgPSAkZGItPkV4ZWN1dGUoJHF1ZXJ5LGFycmF5KCRyZWNbJ3BhcmVudF9pZCddLCRyZWNbJ29yZGVyJ10sJycsJHJlY1snaWQnXSkpOwogICAgICB9CiAgICBMSVNFQ2F0ZWdvcnlPcGVyYXRpb25zOjpVcGRhdGVIaWVyYXJjaHlQb3NpdGlvbnMoJHRoaXMpOwogICAgCiAgICAkdGhpcy0+UmVkaXJlY3QoJGlkLCAnZGVmYXVsdGFkbWluJywgJHJldHVybmlkLCBhcnJheSgnYWN0aXZlX3RhYicgPT4gJ2NhdGVnb3J5dGFiJywgJ21lc3NhZ2UnID0+ICdjaGFuZ2Vzc2F2ZWQnKSk7CiAgfQoKLy8KLy8gZ2l2ZSBkYXRhIHRvIHNtYXJ0eQovLwokc21hcnR5LT5hc3NpZ24oJ2Zvcm1zdGFydCcsJHRoaXMtPkNyZWF0ZUZvcm1TdGFydCgkaWQsJ2FkbWluX3Jlb3JkZXJjYXRlZ29yeScpKTsKJHNtYXJ0eS0+YXNzaWduKCdmb3JtZW5kJywkdGhpcy0+Q3JlYXRlRm9ybUVuZCgpKTsKCiRzbWFydHktPmFzc2lnbigndHJlZScsJHRyZWUpOwoKJHNtYXJ0eS0+YXNzaWduKCdzdWJtaXQnLCAkdGhpcy0+Q3JlYXRlSW5wdXRTdWJtaXQoJGlkLCAnc3VibWl0JywgbGFuZygnc3VibWl0JykpKTsKJHNtYXJ0eS0+YXNzaWduKCdjYW5jZWwnLCAkdGhpcy0+Q3JlYXRlSW5wdXRTdWJtaXQoJGlkLCAnY2FuY2VsJywgbGFuZygnY2FuY2VsJykpKTsKCmVjaG8gJHRoaXMtPk1vZFByb2Nlc3NUZW1wbGF0ZSgnYWRtaW5fcmVvcmRlcmNhdGVnb3J5LnRwbCcpOwoKPz4=]]></data>
	</file>
	<file>
	  <filename>/framework/action.admin_requirefielddef.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBMSVNFIC0gTGlzdCBJdCBTcGVjaWFsIEVkaXRpb24KIyBWZXJzaW9uIDEuMgojIEEgZm9yayBvZiBMaXN0STIKIyBtYWludGFpbmVkIGJ5IEZlcm5hbmRvIE1vcmdhZG8gQUtBIEpvIE1vcmcKIyBzaW5jZSAyMDE1CiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBPcmlnaW5hbCBBdXRob3I6IEJlbiBNYWxlbiwgPGJlbkBjb25jZXB0ZmFjdG9yeS5jb20uYXU+CiMgQ28tTWFpbnRhaW5lcjogU2ltb24gUmFkZm9yZCwgPHNpbW9uQGNvbmNlcHRmYWN0b3J5LmNvbS5hdT4KIyBXZWI6IHd3dy5jb25jZXB0ZmFjdG9yeS5jb20uYXUKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojCiMgTWFpbnRhaW5lciBzaW5jZSAyMDExIHVwIHRvIDIwMTQ6IEpvbmF0aGFuIFNjaG1pZCwgPGhpQGpvbmF0aGFuc2NobWlkLmRlPgojIFdlYjogd3d3LmpvbmF0aGFuc2NobWlkLmRlCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIwojIFNvbWUgd2Fja29zIHN0YXJ0ZWQgZGVzdHJveWluZyBzdHVmZiBzaW5jZSAyMDEyIGFuZCBzdG9wcGVkIGF0IDIwMTQ6CiMKIyBUYXBpbyBMw7Z5dHR5LCA8dGFwc2FAb3JhbmdlLW1lZGlhLmZpPgojIFdlYjogd3d3Lm9yYW5nZS1tZWRpYS5maQojCiMgR29yYW4gSWxpYywgPHVuaXF1M2VAZ21haWwuY29tPgojIFdlYjogd3d3LmljaC1tYWNoLWRhcy5hdAojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBMSVNFIGlzIGEgQ01TIE1hZGUgU2ltcGxlIG1vZHVsZSB0aGF0IGVuYWJsZXMgdGhlIHdlYiBkZXZlbG9wZXIgdG8gY3JlYXRlCiMgbXVsdGlwbGUgbGlzdHMgdGhyb3VnaG91dCBhIHNpdGUuIEl0IGNhbiBiZSBkdXBsaWNhdGVkIGFuZCBnaXZlbiBmcmllbmRseQojIG5hbWVzIGZvciBlYXNpZXIgY2xpZW50IG1haW50ZW5hbmNlLgojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgQkVHSU5fTElDRU5TRQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIExJU0UKIyBMSVNFIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgTElTRSBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBFTkRfTElDRU5TRQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKaWYoICFkZWZpbmVkKCdDTVNfVkVSU0lPTicpICkgZXhpdDsKaWYgKCEkdGhpcy0+Q2hlY2tQZXJtaXNzaW9uKCR0aGlzLT5fR2V0TW9kdWxlQWxpYXMoKSAuICdfbW9kaWZ5X29wdGlvbnMnKSkgcmV0dXJuOwoKaWYoIWlzc2V0KCRwYXJhbXNbJ3JlcXVpcmUnXSkgfHwgIWlzc2V0KCRwYXJhbXNbJ2ZpZWxkZGVmX2lkJ10pKQp7CglkaWUoJ21pc3NpbmcgcGFyYW1ldGVyLCB0aGlzIHNob3VsZCBub3QgaGFwcGVuJyk7Cn0KCiRmaWVsZGRlZl9pZCA9IChpbnQpJHBhcmFtc1snZmllbGRkZWZfaWQnXTsKJHJlcXVpcmVkID0gKGJvb2wpJHBhcmFtc1sncmVxdWlyZSddOwoKJHF1ZXJ5ID0gJ1VQREFURSAnIC4gY21zX2RiX3ByZWZpeCgpIC4gJ21vZHVsZV8nIC4gJHRoaXMtPl9HZXRNb2R1bGVBbGlhcygpIC4gJ19maWVsZGRlZiBTRVQgcmVxdWlyZWQgPSA/IFdIRVJFIGZpZWxkZGVmX2lkID0gPyc7CiRkYi0+RXhlY3V0ZSgkcXVlcnksIGFycmF5KCRyZXF1aXJlZCwgJGZpZWxkZGVmX2lkKSk7CgokYWRtaW50aGVtZSA9IGNtc191dGlsczo6Z2V0X3RoZW1lX29iamVjdCgpOwokanNvbiA9IG5ldyBzdGRDbGFzczsKCmlmICgkcmVxdWlyZWQpIHsKCgkkanNvbi0+aW1hZ2UgPSAkYWRtaW50aGVtZS0+RGlzcGxheUltYWdlKCdpY29ucy9zeXN0ZW0vdHJ1ZS5naWYnLCAkdGhpcy0+TW9kTGFuZygncmV2ZXJ0JyksICcnLCAnJywgJ3N5c3RlbWljb24nKTsKCSRqc29uLT5ocmVmID0gJHRoaXMtPkNyZWF0ZUxpbmsoJGlkLCAnYWRtaW5fcmVxdWlyZWZpZWxkZGVmJywgJHJldHVybmlkLCAnJywgYXJyYXkoJ3JlcXVpcmUnID0+IDAsJ2ZpZWxkZGVmX2lkJyA9PiAkZmllbGRkZWZfaWQpLCAnJywgdHJ1ZSk7Cn0gZWxzZSB7CgoJJGpzb24tPmltYWdlID0gJGFkbWludGhlbWUtPkRpc3BsYXlJbWFnZSgnaWNvbnMvc3lzdGVtL2ZhbHNlLmdpZicsICR0aGlzLT5Nb2RMYW5nKCdhcHByb3ZlJyksICcnLCAnJywgJ3N5c3RlbWljb24nKTsKCSRqc29uLT5ocmVmID0gJHRoaXMtPkNyZWF0ZUxpbmsoJGlkLCAnYWRtaW5fcmVxdWlyZWZpZWxkZGVmJywgJHJldHVybmlkLCAnJyxhcnJheSgncmVxdWlyZScgPT4gMSwnZmllbGRkZWZfaWQnID0+ICRmaWVsZGRlZl9pZCksICcnLCB0cnVlKTsKfQoKLy8gRml4IFVSTCBmb3IgSlNPTiBvdXRwdXQKJGpzb24tPmhyZWYgPSBodG1sX2VudGl0eV9kZWNvZGUoJGpzb24tPmhyZWYpOwoKaGVhZGVyKCJDb250ZW50LXR5cGU6YXBwbGljYXRpb24vanNvbjsgY2hhcnNldD11dGYtOCIpOwoKJGhhbmRsZXJzID0gb2JfbGlzdF9oYW5kbGVycygpOyAKZm9yICgkY250ID0gMDsgJGNudCA8IHNpemVvZigkaGFuZGxlcnMpOyAkY250KyspIHsgb2JfZW5kX2NsZWFuKCk7IH0KCmVjaG8ganNvbl9lbmNvZGUoJGpzb24pOwpleGl0KCk7Cj8+]]></data>
	</file>
	<file>
	  <filename>/framework/action.admin_setdefaulttemplate.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHANCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQojIExJU0UgLSBMaXN0IEl0IFNwZWNpYWwgRWRpdGlvbg0KIyBWZXJzaW9uIDEuMg0KIyBBIGZvcmsgb2YgTGlzdEkyDQojIG1haW50YWluZWQgYnkgRmVybmFuZG8gTW9yZ2FkbyBBS0EgSm8gTW9yZw0KIyBzaW5jZSAyMDE1DQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIw0KIyBPcmlnaW5hbCBBdXRob3I6IEJlbiBNYWxlbiwgPGJlbkBjb25jZXB0ZmFjdG9yeS5jb20uYXU+DQojIENvLU1haW50YWluZXI6IFNpbW9uIFJhZGZvcmQsIDxzaW1vbkBjb25jZXB0ZmFjdG9yeS5jb20uYXU+DQojIFdlYjogd3d3LmNvbmNlcHRmYWN0b3J5LmNvbS5hdQ0KIw0KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCiMNCiMgTWFpbnRhaW5lciBzaW5jZSAyMDExIHVwIHRvIDIwMTQ6IEpvbmF0aGFuIFNjaG1pZCwgPGhpQGpvbmF0aGFuc2NobWlkLmRlPg0KIyBXZWI6IHd3dy5qb25hdGhhbnNjaG1pZC5kZQ0KIw0KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCiMNCiMgU29tZSB3YWNrb3Mgc3RhcnRlZCBkZXN0cm95aW5nIHN0dWZmIHNpbmNlIDIwMTIgYW5kIHN0b3BwZWQgYXQgMjAxNDoNCiMNCiMgVGFwaW8gTMO2eXR0eSwgPHRhcHNhQG9yYW5nZS1tZWRpYS5maT4NCiMgV2ViOiB3d3cub3JhbmdlLW1lZGlhLmZpDQojDQojIEdvcmFuIElsaWMsIDx1bmlxdTNlQGdtYWlsLmNvbT4NCiMgV2ViOiB3d3cuaWNoLW1hY2gtZGFzLmF0DQojDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIw0KIyBMSVNFIGlzIGEgQ01TIE1hZGUgU2ltcGxlIG1vZHVsZSB0aGF0IGVuYWJsZXMgdGhlIHdlYiBkZXZlbG9wZXIgdG8gY3JlYXRlDQojIG11bHRpcGxlIGxpc3RzIHRocm91Z2hvdXQgYSBzaXRlLiBJdCBjYW4gYmUgZHVwbGljYXRlZCBhbmQgZ2l2ZW4gZnJpZW5kbHkNCiMgbmFtZXMgZm9yIGVhc2llciBjbGllbnQgbWFpbnRlbmFuY2UuDQojDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIyBCRUdJTl9MSUNFTlNFDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIyBUaGlzIGZpbGUgaXMgcGFydCBvZiBMSVNFDQojIExJU0UgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5DQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5DQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yDQojIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uDQojDQojIExJU0UgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLA0KIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZg0KIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlDQojIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuDQojIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlDQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlDQojIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcgVVNBDQojIE9yIHJlYWQgaXQgb25saW5lOiBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwNCiMNCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQojIEVORF9MSUNFTlNFDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KDQppZiggIWRlZmluZWQoJ0NNU19WRVJTSU9OJykgKSBleGl0Ow0KDQoNCmlmICghJHRoaXMtPkNoZWNrUGVybWlzc2lvbigkdGhpcy0+X0dldE1vZHVsZUFsaWFzKCkgLiAnX21vZGlmeV9vcHRpb25zJykpDQogICAgcmV0dXJuOw0KDQppZiAoIWlzc2V0KCRwYXJhbXNbJ25hbWUnXSkpIHsNCiAgICBkaWUoJ21pc3NpbmcgcGFyYW1ldGVyLCB0aGlzIHNob3VsZCBub3QgaGFwcGVuJyk7DQp9DQoNCmxpc3QoJHRwbF90eXBlLCAkdHBsX25hbWUpID0gZXhwbG9kZSgnXycsICRwYXJhbXNbJ25hbWUnXSwgMik7DQoNCi8vIHNldCBkZWZhdWx0IHRlbXBsYXRlIHByZWZlcmVuY2UNCiR0aGlzLT5TZXRQcmVmZXJlbmNlKCR0aGlzLT5fR2V0TW9kdWxlQWxpYXMoKSAuICdfZGVmYXVsdF8nLiR0cGxfdHlwZS4nX3RlbXBsYXRlJywgJHRwbF9uYW1lKTsNCg0KLy8gYWxsIGRvbmUNCiR0aGlzLT5SZWRpcmVjdCgkaWQsICdkZWZhdWx0YWRtaW4nLCAkcmV0dXJuaWQsIGFycmF5KCdhY3RpdmVfdGFiJyA9PiAndGVtcGxhdGV0YWInKSk7DQo/Pg==]]></data>
	</file>
	<file>
	  <filename>/framework/action.admin_setfielddefvalue.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHANCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQojIExJU0UgLSBMaXN0IEl0IFNwZWNpYWwgRWRpdGlvbg0KIyBWZXJzaW9uIDEuMg0KIyBBIGZvcmsgb2YgTGlzdEkyDQojIG1haW50YWluZWQgYnkgRmVybmFuZG8gTW9yZ2FkbyBBS0EgSm8gTW9yZw0KIyBzaW5jZSAyMDE1DQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIw0KIyBPcmlnaW5hbCBBdXRob3I6IEJlbiBNYWxlbiwgPGJlbkBjb25jZXB0ZmFjdG9yeS5jb20uYXU+DQojIENvLU1haW50YWluZXI6IFNpbW9uIFJhZGZvcmQsIDxzaW1vbkBjb25jZXB0ZmFjdG9yeS5jb20uYXU+DQojIFdlYjogd3d3LmNvbmNlcHRmYWN0b3J5LmNvbS5hdQ0KIw0KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCiMNCiMgTWFpbnRhaW5lciBzaW5jZSAyMDExIHVwIHRvIDIwMTQ6IEpvbmF0aGFuIFNjaG1pZCwgPGhpQGpvbmF0aGFuc2NobWlkLmRlPg0KIyBXZWI6IHd3dy5qb25hdGhhbnNjaG1pZC5kZQ0KIw0KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCiMNCiMgU29tZSB3YWNrb3Mgc3RhcnRlZCBkZXN0cm95aW5nIHN0dWZmIHNpbmNlIDIwMTIgYW5kIHN0b3BwZWQgYXQgMjAxNDoNCiMNCiMgVGFwaW8gTMO2eXR0eSwgPHRhcHNhQG9yYW5nZS1tZWRpYS5maT4NCiMgV2ViOiB3d3cub3JhbmdlLW1lZGlhLmZpDQojDQojIEdvcmFuIElsaWMsIDx1bmlxdTNlQGdtYWlsLmNvbT4NCiMgV2ViOiB3d3cuaWNoLW1hY2gtZGFzLmF0DQojDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIw0KIyBMSVNFIGlzIGEgQ01TIE1hZGUgU2ltcGxlIG1vZHVsZSB0aGF0IGVuYWJsZXMgdGhlIHdlYiBkZXZlbG9wZXIgdG8gY3JlYXRlDQojIG11bHRpcGxlIGxpc3RzIHRocm91Z2hvdXQgYSBzaXRlLiBJdCBjYW4gYmUgZHVwbGljYXRlZCBhbmQgZ2l2ZW4gZnJpZW5kbHkNCiMgbmFtZXMgZm9yIGVhc2llciBjbGllbnQgbWFpbnRlbmFuY2UuDQojDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIyBCRUdJTl9MSUNFTlNFDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIyBUaGlzIGZpbGUgaXMgcGFydCBvZiBMSVNFDQojIExJU0UgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5DQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5DQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yDQojIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uDQojDQojIExJU0UgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLA0KIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZg0KIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlDQojIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuDQojIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlDQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlDQojIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcgVVNBDQojIE9yIHJlYWQgaXQgb25saW5lOiBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwNCiMNCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQojIEVORF9MSUNFTlNFDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KDQppZiggIWRlZmluZWQoJ0NNU19WRVJTSU9OJykgKSBleGl0Ow0KDQoNCmlmICghJHRoaXMtPkNoZWNrUGVybWlzc2lvbigkdGhpcy0+X0dldE1vZHVsZUFsaWFzKCkgLiAnX21vZGlmeV9pdGVtJykpIHJldHVybjsNCg0KaWYgKCFpc3NldCgkcGFyYW1zWydmaWVsZGRlZl9pZCddKSB8fCAhaXNzZXQoJHBhcmFtc1snaXRlbV9pZCddKSkNCgl0aHJvdyBuZXcgXExJU0VcRXhjZXB0aW9uKCdNaXNzaW5nIHBhcmFtZXRlciwgdGhpcyBzaG91bGQgbm90IGhhcHBlbiEnKTsNCg0KJGZpZCA9IChpbnQpJHBhcmFtc1snZmllbGRkZWZfaWQnXTsNCiRpdGVtX2lkID0gKGludCkkcGFyYW1zWydpdGVtX2lkJ107CQ0KCQ0KJHZhbHVlID0gJyc7CQ0KaWYgKGlzc2V0KCRwYXJhbXNbJ3ZhbHVlJ10pKSANCnsNCgkkdmFsdWUgPSAkcGFyYW1zWyd2YWx1ZSddOw0KfQ0KDQokcXVlcnkgID0gJ0RFTEVURSBGUk9NICcgLiBjbXNfZGJfcHJlZml4KCkgLiAnbW9kdWxlXycgLiAkdGhpcy0+X0dldE1vZHVsZUFsaWFzKCkgLiAnX2ZpZWxkdmFsIFdIRVJFIGl0ZW1faWQgPSA/IEFORCBmaWVsZGRlZl9pZCA9ID8nOw0KJHJlc3VsdCA9ICRkYi0+RXhlY3V0ZSgkcXVlcnksIGFycmF5KCRpdGVtX2lkLCAkZmlkKSk7DQoNCiRxdWVyeSAgPSAnSU5TRVJUIElOVE8gJyAuIGNtc19kYl9wcmVmaXgoKSAuICdtb2R1bGVfJyAuICR0aGlzLT5fR2V0TW9kdWxlQWxpYXMoKSAuICdfZmllbGR2YWwgKGl0ZW1faWQsIGZpZWxkZGVmX2lkLCB2YWx1ZSkgVkFMVUVTICg/LCA/LCA/KSc7DQokcmVzdWx0ID0gJGRiLT5FeGVjdXRlKCRxdWVyeSwgYXJyYXkoJGl0ZW1faWQsICRmaWQsICR2YWx1ZSkpOw0KCQ0KJGhhbmRsZXJzID0gb2JfbGlzdF9oYW5kbGVycygpOyANCmZvciAoJGNudCA9IDA7ICRjbnQgPCBzaXplb2YoJGhhbmRsZXJzKTsgJGNudCsrKSB7IG9iX2VuZF9jbGVhbigpOyB9DQoNCiRqc29uID0gbmV3IHN0ZENsYXNzOw0KDQokanNvbi0+dmFsdWUgPSAkdmFsdWU7DQoNCi8vIEZpeCBVUkwgZm9yIEpTT04gb3V0cHV0DQokanNvbi0+aHJlZiA9IGh0bWxfZW50aXR5X2RlY29kZSgkanNvbi0+aHJlZik7DQoNCmhlYWRlcigiQ29udGVudC10eXBlOmFwcGxpY2F0aW9uL2pzb247IGNoYXJzZXQ9dXRmLTgiKTsNCg0KJGhhbmRsZXJzID0gb2JfbGlzdF9oYW5kbGVycygpOyANCmZvciAoJGNudCA9IDA7ICRjbnQgPCBzaXplb2YoJGhhbmRsZXJzKTsgJGNudCsrKSB7IG9iX2VuZF9jbGVhbigpOyB9DQoNCmVjaG8ganNvbl9lbmNvZGUoJGpzb24pOw0KZXhpdCgpOw0KPz4=]]></data>
	</file>
	<file>
	  <filename>/framework/action.admin_settings.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBMSVNFIC0gTGlzdCBJdCBTcGVjaWFsIEVkaXRpb24KIyBWZXJzaW9uIDEuMgojIEEgZm9yayBvZiBMaXN0STIKIyBtYWludGFpbmVkIGJ5IEZlcm5hbmRvIE1vcmdhZG8gQUtBIEpvIE1vcmcKIyBzaW5jZSAyMDE1CiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBPcmlnaW5hbCBBdXRob3I6IEJlbiBNYWxlbiwgPGJlbkBjb25jZXB0ZmFjdG9yeS5jb20uYXU+CiMgQ28tTWFpbnRhaW5lcjogU2ltb24gUmFkZm9yZCwgPHNpbW9uQGNvbmNlcHRmYWN0b3J5LmNvbS5hdT4KIyBXZWI6IHd3dy5jb25jZXB0ZmFjdG9yeS5jb20uYXUKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojCiMgTWFpbnRhaW5lciBzaW5jZSAyMDExIHVwIHRvIDIwMTQ6IEpvbmF0aGFuIFNjaG1pZCwgPGhpQGpvbmF0aGFuc2NobWlkLmRlPgojIFdlYjogd3d3LmpvbmF0aGFuc2NobWlkLmRlCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIwojIFNvbWUgd2Fja29zIHN0YXJ0ZWQgZGVzdHJveWluZyBzdHVmZiBzaW5jZSAyMDEyIGFuZCBzdG9wcGVkIGF0IDIwMTQ6CiMKIyBUYXBpbyBMw7Z5dHR5LCA8dGFwc2FAb3JhbmdlLW1lZGlhLmZpPgojIFdlYjogd3d3Lm9yYW5nZS1tZWRpYS5maQojCiMgR29yYW4gSWxpYywgPHVuaXF1M2VAZ21haWwuY29tPgojIFdlYjogd3d3LmljaC1tYWNoLWRhcy5hdAojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBMSVNFIGlzIGEgQ01TIE1hZGUgU2ltcGxlIG1vZHVsZSB0aGF0IGVuYWJsZXMgdGhlIHdlYiBkZXZlbG9wZXIgdG8gY3JlYXRlCiMgbXVsdGlwbGUgbGlzdHMgdGhyb3VnaG91dCBhIHNpdGUuIEl0IGNhbiBiZSBkdXBsaWNhdGVkIGFuZCBnaXZlbiBmcmllbmRseQojIG5hbWVzIGZvciBlYXNpZXIgY2xpZW50IG1haW50ZW5hbmNlLgojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgQkVHSU5fTElDRU5TRQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIExJU0UKIyBMSVNFIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgTElTRSBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBFTkRfTElDRU5TRQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQppZiggIWRlZmluZWQoJ0NNU19WRVJTSU9OJykgKSBleGl0OwoKaWYgKCEkdGhpcy0+Q2hlY2tQZXJtaXNzaW9uKCR0aGlzLT5fR2V0TW9kdWxlQWxpYXMoKSAuICdfbW9kaWZ5X2l0ZW0nKSkgcmV0dXJuOwoKLy8gR2V0IE1vZGUKJGlzX2xpc3QgICA9ICR0aGlzLT5fbW9kZSA9PSBMSVNFOjpNT0RFX0xJU1Q7CiRpc19sb2NhbCAgPSAkdGhpcy0+X21vZGUgPT0gTElTRTo6TU9ERV9MT0NBTDsKJGlzX2dsb2JhbCA9ICR0aGlzLT5fbW9kZSA9PSBMSVNFOjpNT0RFX0dMT0JBTDsKCi8vIEdldCBwcmVmcwovLyRzaG93X2NhdGVnb3JpZXMgPSBMSVNFRmllbGRkZWZPcGVyYXRpb25zOjpUZXN0RXhpc3RlbmNlQnlUeXBlKCR0aGlzLCAnQ2F0ZWdvcmllcycpICYmICEkaXNfbGlzdDsKJHNob3dfY2F0ZWdvcmllcyA9IEZBTFNFOwokc2VwYXJhdGVfc2V0dGluZ3MgPSAkdGhpcy0+R2V0UHJlZmVyZW5jZSgnc2VwYXJhdGVfc2V0dGluZ3MnLCBGQUxTRSk7CmlmKCEkc2VwYXJhdGVfc2V0dGluZ3MgJiYgJGlzX2xpc3QpIHJldHVybjsKCmlmKCBpc3NldCgkcGFyYW1zWydtZXNzYWdlJ10pICkKewoJZWNobyAkdGhpcy0+U2hvd01lc3NhZ2UoJHRoaXMtPk1vZExhbmcoJHBhcmFtc1snbWVzc2FnZSddKSk7Cn0KCmlmKCBpc3NldCgkcGFyYW1zWydlcnJvcnMnXSkgJiYgY291bnQoJHBhcmFtc1snZXJyb3JzJ10pICkKewoJZWNobyAkdGhpcy0+U2hvd0Vycm9ycygkcGFyYW1zWydlcnJvcnMnXSk7Cn0KCmlmKCAhZW1wdHkoJHBhcmFtc1snYWN0aXZlX3RhYiddKSApCnsKCSR0YWIgPSAkcGFyYW1zWydhY3RpdmVfdGFiJ107Cn0KZWxzZQp7CiAgJHRhYiA9ICdmaWVsZGRlZnRhYic7Cn0KCiMgc29tZXRoaW5nIG9kZCB3aXRoIHByZWZlcmVuY2VzIGluIDIuMCA/Pz8gdGhpcyBpcyBhIHdvcmthcm91bmQKJHByZWYgPSAkdGhpcy0+R2V0UHJlZmVyZW5jZSgnaXRlbV9wbHVyYWwnLCAnJyk7CiRpdGVtX3BsdXJhbF9zdHJpbmcgPSBlbXB0eSgkcHJlZikgPyAkdGhpcy0+TW9kTGFuZygnaXRlbXMnKSA6ICRwcmVmOwoKJGN1cnJlbnRfYWN0aW9uID0gJ2FkbWluX3NldHRpbmdzJzsKCmVjaG8gJHRoaXMtPlN0YXJ0VGFiSGVhZGVycygpOwoKaWYgKCR0aGlzLT5DaGVja1Blcm1pc3Npb24oJHRoaXMtPl9HZXRNb2R1bGVBbGlhcygpIC4gJ19tb2RpZnlfY2F0ZWdvcnknKSAmJiAkc2hvd19jYXRlZ29yaWVzKQp7CgllY2hvICR0aGlzLT5TZXRUYWJIZWFkZXIoJ2NhdGVnb3J5dGFiJywgJHRoaXMtPk1vZExhbmcoJ2NhdGVnb3JpZXMnKSwgKCR0YWIgPT0gJ2NhdGVnb3J5dGFiJykpOwp9CgppZiAoJHRoaXMtPkNoZWNrUGVybWlzc2lvbigkdGhpcy0+X0dldE1vZHVsZUFsaWFzKCkgLiAnX21vZGlmeV9vcHRpb24nKSkKewogIGVjaG8gJHRoaXMtPlNldFRhYkhlYWRlcignZmllbGRkZWZ0YWInLCAkdGhpcy0+TW9kTGFuZygnZmllbGRkZWZzJyksICgkdGFiID09ICdmaWVsZGRlZnRhYicpKTsKCiAgaWYoJGlzX2xpc3QpCiAgewogICAgZWNobyAkdGhpcy0+U2V0VGFiSGVhZGVyKCd0ZW1wbGF0ZXRhYicsICR0aGlzLT5Nb2RMYW5nKCd0ZW1wbGF0ZXMnKSwgKCR0YWIgPT0gJ3RlbXBsYXRldGFiJykpOwogIH0KCgllY2hvICR0aGlzLT5TZXRUYWJIZWFkZXIoJ29wdGlvbnRhYicsICR0aGlzLT5Nb2RMYW5nKCdvcHRpb25zJyksICgkdGFiID09ICdvcHRpb250YWInKSk7Cn0KCmVjaG8gJHRoaXMtPkVuZFRhYkhlYWRlcnMoKTsKZWNobyAkdGhpcy0+U3RhcnRUYWJDb250ZW50KCk7CgppZiAoJHRoaXMtPkNoZWNrUGVybWlzc2lvbigkdGhpcy0+X0dldE1vZHVsZUFsaWFzKCkgLiAnX21vZGlmeV9jYXRlZ29yeScpICYmICRzaG93X2NhdGVnb3JpZXMpCnsKCWVjaG8gJHRoaXMtPlN0YXJ0VGFiKCdjYXRlZ29yeXRhYicsICRwYXJhbXMpOwoJaW5jbHVkZSBkaXJuYW1lKF9fRklMRV9fKSAuICcvZnVuY3Rpb24uYWRtaW5fY2F0ZWdvcnl0YWIucGhwJzsKCWVjaG8gJHRoaXMtPkVuZFRhYigpOwp9CgppZiAoJHRoaXMtPkNoZWNrUGVybWlzc2lvbigkdGhpcy0+X0dldE1vZHVsZUFsaWFzKCkgLiAnX21vZGlmeV9vcHRpb24nKSkKewoJZWNobyAkdGhpcy0+U3RhcnRUYWIoJ2ZpZWxkZGVmdGFiJywgJHBhcmFtcyk7CglpbmNsdWRlIGRpcm5hbWUoX19GSUxFX18pIC4gJy9mdW5jdGlvbi5hZG1pbl9maWVsZGRlZnRhYi5waHAnOwoJZWNobyAkdGhpcy0+RW5kVGFiKCk7CgogIGlmKCRpc19saXN0KQogIHsKICAgIGVjaG8gJHRoaXMtPlN0YXJ0VGFiKCd0ZW1wbGF0ZXRhYicsICRwYXJhbXMpOwogICAgaW5jbHVkZSBkaXJuYW1lKF9fRklMRV9fKSAuICcvZnVuY3Rpb24uYWRtaW5fdGVtcGxhdGV0YWIucGhwJzsKICAgIGVjaG8gJHRoaXMtPkVuZFRhYigpOwogIH0KCgllY2hvICR0aGlzLT5TdGFydFRhYignb3B0aW9udGFiJywgJHBhcmFtcyk7CglpbmNsdWRlIGRpcm5hbWUoX19GSUxFX18pIC4gJy9mdW5jdGlvbi5hZG1pbl9vcHRpb250YWIucGhwJzsKCWVjaG8gJHRoaXMtPkVuZFRhYigpOwp9CgplY2hvICR0aGlzLT5FbmRUYWJDb250ZW50KCk7Cj8+]]></data>
	</file>
	<file>
	  <filename>/framework/action.admin_togglefielddefvalue.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHANCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQojIExJU0UgLSBMaXN0IEl0IFNwZWNpYWwgRWRpdGlvbg0KIyBWZXJzaW9uIDEuMg0KIyBBIGZvcmsgb2YgTGlzdEkyDQojIG1haW50YWluZWQgYnkgRmVybmFuZG8gTW9yZ2FkbyBBS0EgSm8gTW9yZw0KIyBzaW5jZSAyMDE1DQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIw0KIyBPcmlnaW5hbCBBdXRob3I6IEJlbiBNYWxlbiwgPGJlbkBjb25jZXB0ZmFjdG9yeS5jb20uYXU+DQojIENvLU1haW50YWluZXI6IFNpbW9uIFJhZGZvcmQsIDxzaW1vbkBjb25jZXB0ZmFjdG9yeS5jb20uYXU+DQojIFdlYjogd3d3LmNvbmNlcHRmYWN0b3J5LmNvbS5hdQ0KIw0KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCiMNCiMgTWFpbnRhaW5lciBzaW5jZSAyMDExIHVwIHRvIDIwMTQ6IEpvbmF0aGFuIFNjaG1pZCwgPGhpQGpvbmF0aGFuc2NobWlkLmRlPg0KIyBXZWI6IHd3dy5qb25hdGhhbnNjaG1pZC5kZQ0KIw0KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCiMNCiMgU29tZSB3YWNrb3Mgc3RhcnRlZCBkZXN0cm95aW5nIHN0dWZmIHNpbmNlIDIwMTIgYW5kIHN0b3BwZWQgYXQgMjAxNDoNCiMNCiMgVGFwaW8gTMO2eXR0eSwgPHRhcHNhQG9yYW5nZS1tZWRpYS5maT4NCiMgV2ViOiB3d3cub3JhbmdlLW1lZGlhLmZpDQojDQojIEdvcmFuIElsaWMsIDx1bmlxdTNlQGdtYWlsLmNvbT4NCiMgV2ViOiB3d3cuaWNoLW1hY2gtZGFzLmF0DQojDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIw0KIyBMSVNFIGlzIGEgQ01TIE1hZGUgU2ltcGxlIG1vZHVsZSB0aGF0IGVuYWJsZXMgdGhlIHdlYiBkZXZlbG9wZXIgdG8gY3JlYXRlDQojIG11bHRpcGxlIGxpc3RzIHRocm91Z2hvdXQgYSBzaXRlLiBJdCBjYW4gYmUgZHVwbGljYXRlZCBhbmQgZ2l2ZW4gZnJpZW5kbHkNCiMgbmFtZXMgZm9yIGVhc2llciBjbGllbnQgbWFpbnRlbmFuY2UuDQojDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIyBCRUdJTl9MSUNFTlNFDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIyBUaGlzIGZpbGUgaXMgcGFydCBvZiBMSVNFDQojIExJU0UgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5DQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5DQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yDQojIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uDQojDQojIExJU0UgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLA0KIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZg0KIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlDQojIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuDQojIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlDQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlDQojIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcgVVNBDQojIE9yIHJlYWQgaXQgb25saW5lOiBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwNCiMNCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQojIEVORF9MSUNFTlNFDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KDQppZiggIWRlZmluZWQoJ0NNU19WRVJTSU9OJykgKSBleGl0Ow0KDQoNCmlmICghJHRoaXMtPkNoZWNrUGVybWlzc2lvbigkdGhpcy0+X0dldE1vZHVsZUFsaWFzKCkgLiAnX21vZGlmeV9pdGVtJykpIHJldHVybjsNCg0KaWYgKCFpc3NldCgkcGFyYW1zWydmaWVsZGRlZl9pZCddKSB8fCAhaXNzZXQoJHBhcmFtc1snaXRlbV9pZCddKSkNCgl0aHJvdyBuZXcgXExJU0VcRXhjZXB0aW9uKCdNaXNzaW5nIHBhcmFtZXRlciwgdGhpcyBzaG91bGQgbm90IGhhcHBlbiEnKTsNCg0KJGZpZCA9IChpbnQpJHBhcmFtc1snZmllbGRkZWZfaWQnXTsNCiRpdGVtX2lkID0gKGludCkkcGFyYW1zWydpdGVtX2lkJ107CQ0KCQ0KJHZhbHVlID0gJyc7CQ0KaWYgKGlzc2V0KCRwYXJhbXNbJ3ZhbHVlJ10pKSB7DQoNCgkkdmFsdWUgPSAkcGFyYW1zWyd2YWx1ZSddID8gJHBhcmFtc1sndmFsdWUnXSA6IGZhbHNlOw0KfQ0KDQokcXVlcnkgID0gJ0RFTEVURSBGUk9NICcgLiBjbXNfZGJfcHJlZml4KCkgLiAnbW9kdWxlXycgLiAkdGhpcy0+X0dldE1vZHVsZUFsaWFzKCkgLiAnX2ZpZWxkdmFsIFdIRVJFIGl0ZW1faWQgPSA/IEFORCBmaWVsZGRlZl9pZCA9ID8nOw0KJHJlc3VsdCA9ICRkYi0+RXhlY3V0ZSgkcXVlcnksIGFycmF5KCRpdGVtX2lkLCAkZmlkKSk7DQoNCiRxdWVyeSAgPSAnSU5TRVJUIElOVE8gJyAuIGNtc19kYl9wcmVmaXgoKSAuICdtb2R1bGVfJyAuICR0aGlzLT5fR2V0TW9kdWxlQWxpYXMoKSAuICdfZmllbGR2YWwgKGl0ZW1faWQsIGZpZWxkZGVmX2lkLCB2YWx1ZSkgVkFMVUVTICg/LCA/LCA/KSc7DQokcmVzdWx0ID0gJGRiLT5FeGVjdXRlKCRxdWVyeSwgYXJyYXkoJGl0ZW1faWQsICRmaWQsICR2YWx1ZSkpOw0KDQokYWRtaW50aGVtZSA9IGNtc191dGlsczo6Z2V0X3RoZW1lX29iamVjdCgpOw0KJGpzb24gPSBuZXcgc3RkQ2xhc3M7DQoNCmlmICgkdmFsdWUpIHsNCg0KCSRqc29uLT5pbWFnZSA9ICRhZG1pbnRoZW1lLT5EaXNwbGF5SW1hZ2UoJ2ljb25zL3N5c3RlbS90cnVlLmdpZicsICR0aGlzLT5Nb2RMYW5nKCdyZXZlcnQnKSwgJycsICcnLCAnc3lzdGVtaWNvbicpOw0KCSRqc29uLT5ocmVmID0gJHRoaXMtPkNyZWF0ZUxpbmsoJGlkLCAnYWRtaW5fdG9nZ2xlZmllbGRkZWZ2YWx1ZScsICRyZXR1cm5pZCwgJycsIGFycmF5KCdmaWVsZGRlZl9pZCcgPT4gJGZpZCwgJ2l0ZW1faWQnID0+ICRpdGVtX2lkLCAndmFsdWUnID0+IDApLCAnJywgdHJ1ZSk7DQp9IGVsc2Ugew0KDQoJJGpzb24tPmltYWdlID0gJGFkbWludGhlbWUtPkRpc3BsYXlJbWFnZSgnaWNvbnMvc3lzdGVtL2ZhbHNlLmdpZicsICR0aGlzLT5Nb2RMYW5nKCdhcHByb3ZlJyksICcnLCAnJywgJ3N5c3RlbWljb24nKTsNCgkkanNvbi0+aHJlZiA9ICR0aGlzLT5DcmVhdGVMaW5rKCRpZCwgJ2FkbWluX3RvZ2dsZWZpZWxkZGVmdmFsdWUnLCAkcmV0dXJuaWQsICcnLCBhcnJheSgnZmllbGRkZWZfaWQnID0+ICRmaWQsICdpdGVtX2lkJyA9PiAkaXRlbV9pZCwgJ3ZhbHVlJyA9PiAxKSwgJycsIHRydWUpOw0KfQ0KDQovLyBGaXggVVJMIGZvciBKU09OIG91dHB1dA0KJGpzb24tPmhyZWYgPSBodG1sX2VudGl0eV9kZWNvZGUoJGpzb24tPmhyZWYpOw0KDQpoZWFkZXIoIkNvbnRlbnQtdHlwZTphcHBsaWNhdGlvbi9qc29uOyBjaGFyc2V0PXV0Zi04Iik7DQoNCiRoYW5kbGVycyA9IG9iX2xpc3RfaGFuZGxlcnMoKTsgDQpmb3IgKCRjbnQgPSAwOyAkY250IDwgc2l6ZW9mKCRoYW5kbGVycyk7ICRjbnQrKykgeyBvYl9lbmRfY2xlYW4oKTsgfQ0KDQplY2hvIGpzb25fZW5jb2RlKCRqc29uKTsNCmV4aXQoKTsNCj8+DQo=]]></data>
	</file>
	<file>
	  <filename>/framework/action.ajax.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBMSVNFIC0gTGlzdCBJdCBTcGVjaWFsIEVkaXRpb24KIyBWZXJzaW9uIDEuMgojIEEgZm9yayBvZiBMaXN0STIKIyBtYWludGFpbmVkIGJ5IEZlcm5hbmRvIE1vcmdhZG8gQUtBIEpvIE1vcmcKIyBzaW5jZSAyMDE1CiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBPcmlnaW5hbCBBdXRob3I6IEJlbiBNYWxlbiwgPGJlbkBjb25jZXB0ZmFjdG9yeS5jb20uYXU+CiMgQ28tTWFpbnRhaW5lcjogU2ltb24gUmFkZm9yZCwgPHNpbW9uQGNvbmNlcHRmYWN0b3J5LmNvbS5hdT4KIyBXZWI6IHd3dy5jb25jZXB0ZmFjdG9yeS5jb20uYXUKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojCiMgTWFpbnRhaW5lciBzaW5jZSAyMDExIHVwIHRvIDIwMTQ6IEpvbmF0aGFuIFNjaG1pZCwgPGhpQGpvbmF0aGFuc2NobWlkLmRlPgojIFdlYjogd3d3LmpvbmF0aGFuc2NobWlkLmRlCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIwojIFNvbWUgd2Fja29zIHN0YXJ0ZWQgZGVzdHJveWluZyBzdHVmZiBzaW5jZSAyMDEyIGFuZCBzdG9wcGVkIGF0IDIwMTQ6CiMKIyBUYXBpbyBMw7Z5dHR5LCA8dGFwc2FAb3JhbmdlLW1lZGlhLmZpPgojIFdlYjogd3d3Lm9yYW5nZS1tZWRpYS5maQojCiMgR29yYW4gSWxpYywgPHVuaXF1M2VAZ21haWwuY29tPgojIFdlYjogd3d3LmljaC1tYWNoLWRhcy5hdAojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBMSVNFIGlzIGEgQ01TIE1hZGUgU2ltcGxlIG1vZHVsZSB0aGF0IGVuYWJsZXMgdGhlIHdlYiBkZXZlbG9wZXIgdG8gY3JlYXRlCiMgbXVsdGlwbGUgbGlzdHMgdGhyb3VnaG91dCBhIHNpdGUuIEl0IGNhbiBiZSBkdXBsaWNhdGVkIGFuZCBnaXZlbiBmcmllbmRseQojIG5hbWVzIGZvciBlYXNpZXIgY2xpZW50IG1haW50ZW5hbmNlLgojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgQkVHSU5fTElDRU5TRQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIExJU0UKIyBMSVNFIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgTElTRSBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBFTkRfTElDRU5TRQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQokb3V0ID0gWwogICdtc2cnICAgICA9PiAnb2snLAogICdlcnJvcicgICA9PiAwLAogICdjb250ZW50JyA9PiAnJywKICAndHlwZScgPT4gJ3R4dCcsCiAgJ3BhcmFtcycgID0+ICRwYXJhbXMKXTsKCmlmKCAhZGVmaW5lZCgnQ01TX1ZFUlNJT04nKSApCnsKICBoZWFkZXIoJ0hUVFAvMS4xIDQwMyBGb3JiaWRkZW4hJyk7CiAgaGVhZGVyKCdDb250ZW50LVR5cGU6IGFwcGxpY2F0aW9uL2pzb247IGNoYXJzZXQ9VVRGLTgnKTsKICAkb3V0Wydtc2cnXSA9ICdGb3JiaWRkZW4nOwogICRvdXRbJ2Vycm9yJ10gPSA4MDA4NTsKICBkaWUoIGpzb25fZW5jb2RlKCRvdXQpICk7Cn0KCiRhbGxvd2VkID0gWwogICdTYXZlSXRlbU9yZGVyJywKICAnU2F2ZUZpZWxkRGVmT3JkZXInLAogICdNb2RHZXRUZW1wbGF0ZUZyb21GaWxlJywKICAnYmVJdGVtc0xpc3QnCl07CgpsaXNlX3V0aWxzOjpsb2cocHJpbnRfcigkcGFyYW1zLCAxKSk7CgppZiggaXNzZXQoJHBhcmFtc1sndXNyX2Z1bmN0aW9uJ10pICYmIGluX2FycmF5KCRwYXJhbXNbJ3Vzcl9mdW5jdGlvbiddLCAkYWxsb3dlZCwgVFJVRSkgJiYgJHRoaXMtPkNoZWNrUGVybWlzc2lvbignTW9kaWZ5IFNpdGUgUHJlZmVyZW5jZXMnKSApCnsKICAjIGRlcHJlY2F0ZWQgQVBJCiAgCiAgaWYoICFkZWZpbmVkKCdDTVNfVkVSU0lPTicpICkgeyBleGl0OyB9CiAgJHVzcl9wYXJhbXMgPSBbXTsKICAKICBpZihpc3NldCgkcGFyYW1zWydwYXJhbXMnXSkpCiAgewogICAgaWYoaXNfYXJyYXkoJHBhcmFtc1sncGFyYW1zJ10pKQogICAgewogICAgICAkdXNyX3BhcmFtcyA9IFskcGFyYW1zWydwYXJhbXMnXV07CiAgICB9CiAgICBlbHNlCiAgICB7CiAgICAgICR1c3JfcGFyYW1zID0gZXhwbG9kZSgnLCcsICRwYXJhbXNbJ3BhcmFtcyddKTsKICAgIH0KICB9CiAgCiAgJGhhbmRsZXJzID0gb2JfbGlzdF9oYW5kbGVycygpOwogIGZvcigkY250ID0gMDsgJGNudCA8IHNpemVvZigkaGFuZGxlcnMpOyAkY250KyspIHsgb2JfZW5kX2NsZWFuKCk7IH0KICB0cnkKICB7CiAgICAkb3V0ID0gY2FsbF91c2VyX2Z1bmNfYXJyYXkoWyR0aGlzLCAkcGFyYW1zWyd1c3JfZnVuY3Rpb24nXV0sICR1c3JfcGFyYW1zKTsKICB9CiAgY2F0Y2goXEV4Y2VwdGlvbiAkZSkKICB7CiAgICAkb3V0ID0gJGUtPmdldE1lc3NhZ2UoKTsKICB9CiAgCiAgZGllKCRvdXQpOwp9CgojIE5FVyBBUEkKCmlmKCBpc3NldCgkcGFyYW1zWydmbmMnXSkgKQp7CiAgJGZuYyA9IHRyaW0oJHBhcmFtc1snZm5jJ10pOwogICRwcm1zID0gW107CiAgCiAgaWYoIGlzc2V0KCRwYXJhbXNbJ3BhcmFtcyddKSApCiAgewogICAgaWYoIGlzX2FycmF5KCRwYXJhbXNbJ3BhcmFtcyddKSApCiAgICB7CiAgICAgICRwcm1zID0gJHBhcmFtc1sncGFyYW1zJ107CiAgICB9CiAgICBlbHNlCiAgICB7CiAgICAgICRwcm1zID0gZXhwbG9kZSgnLCcsICRwYXJhbXNbJ3BhcmFtcyddKTsKICAgIH0KICB9CgogIGFycmF5X3Vuc2hpZnQoJHBybXMsICR0aGlzLT5HZXROYW1lKCkpOwogIAogIGlmKCBjbXNtcygpLT5pc19mcm9udGVuZF9yZXF1ZXN0KCkgKQogIHsKICAgICMgZnJvbnRlbmQgYXBpCiAgICAkY2FsbGFibGUgPSAnXFxMSVNFXFxhamF4X2hhbmRsZXI6OmZlXycgLiAkZm5jOwogIH0KICBlbHNlCiAgewogICAgIyBiYWNrZW5kIGFwaQogICAgaWYoICR0aGlzLT5DaGVja1Blcm1pc3Npb24oJ01vZGlmeSBTaXRlIFByZWZlcmVuY2VzJykgKQogICAgewogICAgICAkY2FsbGFibGUgPSAnXFxMSVNFXFxhamF4X2hhbmRsZXI6OmJlXycgLiAkZm5jOwogICAgfQogIH0KICAKICBpZighaXNfY2FsbGFibGUoJGNhbGxhYmxlLCBGQUxTRSwgJGNhbGxhYmxlX25hbWUpKQogIHsKICAgIGhlYWRlcignSFRUUC8xLjEgNTAwIFJlcXVlc3QgZnVuY3Rpb24gZXJyb3IhJyk7CiAgICBoZWFkZXIoJ0NvbnRlbnQtVHlwZTogYXBwbGljYXRpb24vanNvbjsgY2hhcnNldD1VVEYtOCcpOwogICAgJG91dFsnbXNnJ10gICA9ICRmbmMgLiAnIG5vdCB2YWxpZCBhcGkgY2FsbCEnOwogICAgJG91dFsnZXJyb3InXSA9IDgwMDg1OwogICAgZGllKGpzb25fZW5jb2RlKCRvdXQpKTsKICB9CiAgCiAgdHJ5CiAgewogICAgJG91dFsnY29udGVudCddID0gQGNhbGxfdXNlcl9mdW5jX2FycmF5KCRjYWxsYWJsZSwgJHBybXMpOwogIH0KICBjYXRjaChcQXJndW1lbnRDb3VudEVycm9yICRlKQogIHsKICAgICRvdXRbJ2Vycm9yJ10gICA9ICRlLT5nZXRDb2RlKCk7CiAgICAkb3V0Wydtc2cnXSAgICAgPSAkZS0+Z2V0TWVzc2FnZSgpOwogICAgJG91dFsnY29udGVudCddID0gJ09vcHMhJzsKICB9CiAgY2F0Y2goXEV4Y2VwdGlvbiAkZSkKICB7CiAgICAkb3V0WydlcnJvciddICAgPSAkZS0+Z2V0Q29kZSgpOwogICAgJG91dFsnbXNnJ10gICAgID0gJGUtPmdldE1lc3NhZ2UoKTsKICAgICRvdXRbJ2NvbnRlbnQnXSA9ICdPb3BzISc7CiAgfQogIAogIGhlYWRlcignQ29udGVudC1UeXBlOiBhcHBsaWNhdGlvbi9qc29uOyBjaGFyc2V0PVVURi04Jyk7CiAgZGllKGpzb25fZW5jb2RlKCRvdXQpKTsKfQoKaGVhZGVyKCdIVFRQLzEuMSA1MDAgUmVxdWVzdCBmdW5jdGlvbiBlcnJvciEnKTsKaGVhZGVyKCdDb250ZW50LVR5cGU6IGFwcGxpY2F0aW9uL2pzb247IGNoYXJzZXQ9VVRGLTgnKTsKJG91dFsnbXNnJ10gICA9ICd3cm9uZyBzZXQgb2YgcGFyYW1zJzsKJG91dFsnZXJyb3InXSA9IDgwMDg1OwoKZGllKGpzb25fZW5jb2RlKCRvdXQpKTsKPz4=]]></data>
	</file>
	<file>
	  <filename>/framework/action.ajax_geturl.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBMSVNFIC0gTGlzdCBJdCBTcGVjaWFsIEVkaXRpb24KIyBWZXJzaW9uIDEuMgojIEEgZm9yayBvZiBMaXN0STIKIyBtYWludGFpbmVkIGJ5IEZlcm5hbmRvIE1vcmdhZG8gQUtBIEpvIE1vcmcKIyBzaW5jZSAyMDE1CiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBPcmlnaW5hbCBBdXRob3I6IEJlbiBNYWxlbiwgPGJlbkBjb25jZXB0ZmFjdG9yeS5jb20uYXU+CiMgQ28tTWFpbnRhaW5lcjogU2ltb24gUmFkZm9yZCwgPHNpbW9uQGNvbmNlcHRmYWN0b3J5LmNvbS5hdT4KIyBXZWI6IHd3dy5jb25jZXB0ZmFjdG9yeS5jb20uYXUKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojCiMgTWFpbnRhaW5lciBzaW5jZSAyMDExIHVwIHRvIDIwMTQ6IEpvbmF0aGFuIFNjaG1pZCwgPGhpQGpvbmF0aGFuc2NobWlkLmRlPgojIFdlYjogd3d3LmpvbmF0aGFuc2NobWlkLmRlCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIwojIFNvbWUgd2Fja29zIHN0YXJ0ZWQgZGVzdHJveWluZyBzdHVmZiBzaW5jZSAyMDEyIGFuZCBzdG9wcGVkIGF0IDIwMTQ6CiMKIyBUYXBpbyBMw7Z5dHR5LCA8dGFwc2FAb3JhbmdlLW1lZGlhLmZpPgojIFdlYjogd3d3Lm9yYW5nZS1tZWRpYS5maQojCiMgR29yYW4gSWxpYywgPHVuaXF1M2VAZ21haWwuY29tPgojIFdlYjogd3d3LmljaC1tYWNoLWRhcy5hdAojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBMSVNFIGlzIGEgQ01TIE1hZGUgU2ltcGxlIG1vZHVsZSB0aGF0IGVuYWJsZXMgdGhlIHdlYiBkZXZlbG9wZXIgdG8gY3JlYXRlCiMgbXVsdGlwbGUgbGlzdHMgdGhyb3VnaG91dCBhIHNpdGUuIEl0IGNhbiBiZSBkdXBsaWNhdGVkIGFuZCBnaXZlbiBmcmllbmRseQojIG5hbWVzIGZvciBlYXNpZXIgY2xpZW50IG1haW50ZW5hbmNlLgojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgQkVHSU5fTElDRU5TRQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIExJU0UKIyBMSVNFIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgTElTRSBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBFTkRfTElDRU5TRQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIGRlcHJlY2F0ZWQgbWFya2VkIGZvciByZW1vdmFsIGluIDIuMAojIFRPRE8gcmVtb3ZlCgppZiggIWRlZmluZWQoJ0NNU19WRVJTSU9OJykgKSBleGl0OwoKLyogICoqICAqLwokaXRlbV9pZCA9IGlzc2V0KCRfUkVRVUVTVFsnaXRlbWlkJ10pID8gKGludCkkX1JFUVVFU1RbJ2l0ZW1pZCddIDogJyc7CiRjYXRfaWQgPSBpc3NldCgkX1JFUVVFU1RbJ2NhdGVnb3J5J10pID8gKGludCkkX1JFUVVFU1RbJ2NhdGVnb3J5J10gOiAnJzsKCmRpZSggXExJU0VcYXBpOjpHZW5lcmF0ZVNsdWcoICcnLCAkaXRlbV9pZCwgJGNhdF9pZCwgJHRoaXMtPkdldE5hbWUoKSApICk7Ci8qICAqKiAgKi8KCgovKioKICogYmFzZWQgb24gQ0dCbG9nIG93biBhY3Rpb24uYWpheF9nZXR1cmwucGhwCiAqLwovLyRpdGVtX2lkID0gaXNzZXQoJF9SRVFVRVNUWydpdGVtaWQnXSkgPyAoaW50KSRfUkVRVUVTVFsnaXRlbWlkJ10gOiAnJzsKLy8kY2F0X2lkID0gaXNzZXQoJF9SRVFVRVNUWydjYXRlZ29yeSddKSA/IChpbnQpJF9SRVFVRVNUWydjYXRlZ29yeSddIDogJyc7Ci8vJGNhdGVnb3J5X25hbWUgPSAnJzsKLy8KLy8kcHJlZml4ID0gJHRoaXMtPkdldFByZWZlcmVuY2UoICd1cmxfcHJlZml4JywgbXVuZ2Vfc3RyaW5nX3RvX3VybCgkdGhpcy0+R2V0TmFtZSgpLCB0cnVlKSApOwovLyR0ZW1wbGF0ZSA9ICR0aGlzLT5HZXRQcmVmZXJlbmNlKCd1cmx0ZW1wbGF0ZScsICd7JHByZWZpeH0veyRpdGVtX3RpdGxlfScpOwovLwovL2lmKCBzdHJzdHIoJHRlbXBsYXRlLCAneyRpdGVtX2NhdGVnb3J5JykgKQovL3sKLy8gICRpZHMgPSBhcnJheSgkY2F0X2lkKTsKLy8gICRjYXRzID0gTElTRUNhdGVnb3J5T3BlcmF0aW9uczo6R2V0Q2F0ZWdvcnlOYW1lRnJvbUlkKCR0aGlzLCAkaWRzKTsKLy8gIGlmKGNvdW50KCRjYXRzKSkKLy8gICAgJGNhdGVnb3J5X25hbWUgPSBtdW5nZV9zdHJpbmdfdG9fdXJsKCB0cmltKCRjYXRzWzBdKSApOwovL30KLy8KLy9pZiggZW1wdHkoJGNhdGVnb3J5X25hbWUpICkgJGNhdGVnb3J5X25hbWUgPSAnbm8tY2F0ZWdvcnknOwovLwovLyRzbWFydHktPmFzc2lnbignaXRlbV90aXRsZScsIG11bmdlX3N0cmluZ190b191cmwoIHRyaW0oJF9SRVFVRVNUWyd0aXRsZSddKSApICk7Ci8vJHNtYXJ0eS0+YXNzaWduKCdpdGVtX2NhdGVnb3J5JywgICRjYXRlZ29yeV9uYW1lKTsKLy8kc21hcnR5LT5hc3NpZ24oJ3ByZWZpeCcsICRwcmVmaXgpOwovLwovLyR0ZXN0ID0gMDsKLy8kdXJsID0gJyc7Ci8vY21zX3JvdXRlX21hbmFnZXI6OmxvYWRfcm91dGVzKCk7Ci8vJHVybCA9ICR0aGlzLT5Qcm9jZXNzVGVtcGxhdGVGcm9tRGF0YSgne3N0cmlwfScuJHRlbXBsYXRlLid7L3N0cmlwfScpOwovLwovL3doaWxlKCAkdGVzdCA8IDEwMCApCi8vewovLyAgLy8gZ2VuZXJhdGUgYSB1bmlxdWUgcmFuZG9tIHVybC4KLy8gIGlmKCAkdGVzdCA+IDEgKSAkdXJsIC49ICctJy4kdGVzdDsKLy8KLy8gICR1cmwgPSB0cmltKCR1cmwsIiAvXHRcclxuXDBceDA4Iik7Ci8vICAkcm91dGUgPSBjbXNfcm91dGVfbWFuYWdlcjo6ZmluZF9tYXRjaCgkdXJsKTsKLy8gIGlmKCRyb3V0ZSkKLy8gIHsKLy8gICAgJGRmbHRzID0gJHJvdXRlLT5nZXRfZGVmYXVsdHMoKTsKLy8gICAgaWYoICRyb3V0ZS0+aXNfY29udGVudCgpIHx8ICRyb3V0ZS0+Z2V0X2Rlc3QoKSAhPSAkdGhpcy0+R2V0TmFtZSgpIHx8ICFpc3NldCgkZGZsdHNbJ2FydGljbGVpZCddKSB8fCAkZGZsdHNbJ2FydGljbGVpZCddICE9ICRpdGVtX2lkICkKLy8gICAgewovLyAgICAgIC8vIHJvdXRlIGlzIHVzZWQuCi8vICAgICAgJHRlc3QrKzsKLy8gICAgICBjb250aW51ZTsKLy8gICAgfQovLyAgfQovLwovLyAgYnJlYWs7Ci8vfQovLwovL2VjaG8gJHVybDsKPz4=]]></data>
	</file>
	<file>
	  <filename>/framework/action.ajax_get_alias.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBMSVNFIC0gTGlzdCBJdCBTcGVjaWFsIEVkaXRpb24KIyBWZXJzaW9uIDEuMgojIEEgZm9yayBvZiBMaXN0STIKIyBtYWludGFpbmVkIGJ5IEZlcm5hbmRvIE1vcmdhZG8gQUtBIEpvIE1vcmcKIyBzaW5jZSAyMDE1CiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBPcmlnaW5hbCBBdXRob3I6IEJlbiBNYWxlbiwgPGJlbkBjb25jZXB0ZmFjdG9yeS5jb20uYXU+CiMgQ28tTWFpbnRhaW5lcjogU2ltb24gUmFkZm9yZCwgPHNpbW9uQGNvbmNlcHRmYWN0b3J5LmNvbS5hdT4KIyBXZWI6IHd3dy5jb25jZXB0ZmFjdG9yeS5jb20uYXUKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojCiMgTWFpbnRhaW5lciBzaW5jZSAyMDExIHVwIHRvIDIwMTQ6IEpvbmF0aGFuIFNjaG1pZCwgPGhpQGpvbmF0aGFuc2NobWlkLmRlPgojIFdlYjogd3d3LmpvbmF0aGFuc2NobWlkLmRlCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIwojIFNvbWUgd2Fja29zIHN0YXJ0ZWQgZGVzdHJveWluZyBzdHVmZiBzaW5jZSAyMDEyIGFuZCBzdG9wcGVkIGF0IDIwMTQ6CiMKIyBUYXBpbyBMw7Z5dHR5LCA8dGFwc2FAb3JhbmdlLW1lZGlhLmZpPgojIFdlYjogd3d3Lm9yYW5nZS1tZWRpYS5maQojCiMgR29yYW4gSWxpYywgPHVuaXF1M2VAZ21haWwuY29tPgojIFdlYjogd3d3LmljaC1tYWNoLWRhcy5hdAojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBMSVNFIGlzIGEgQ01TIE1hZGUgU2ltcGxlIG1vZHVsZSB0aGF0IGVuYWJsZXMgdGhlIHdlYiBkZXZlbG9wZXIgdG8gY3JlYXRlCiMgbXVsdGlwbGUgbGlzdHMgdGhyb3VnaG91dCBhIHNpdGUuIEl0IGNhbiBiZSBkdXBsaWNhdGVkIGFuZCBnaXZlbiBmcmllbmRseQojIG5hbWVzIGZvciBlYXNpZXIgY2xpZW50IG1haW50ZW5hbmNlLgojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgQkVHSU5fTElDRU5TRQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIExJU0UKIyBMSVNFIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgTElTRSBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBFTkRfTElDRU5TRQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIGRlcHJlY2F0ZWQgbWFya2VkIGZvciByZW1vdmFsIGluIDIuMAojIFRPRE8gcmVtb3ZlCmlmKCAhZGVmaW5lZCgnQ01TX1ZFUlNJT04nKSApIGV4aXQ7CmlmKCBpc3NldCgkX1JFUVVFU1RbJ3RpdGxlJ10pICkgJHRpdGxlID0gJF9SRVFVRVNUWyd0aXRsZSddOwoKZWNobyBcTElTRVxhcGk6OkdlbmVyYXRlQWxpYXMoICR0aXRsZSwgJHRoaXMtPkdldE5hbWUoKSApOwoKPz4=]]></data>
	</file>
	<file>
	  <filename>/framework/action.archive.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHANCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQojIExJU0UgLSBMaXN0IEl0IFNwZWNpYWwgRWRpdGlvbg0KIyBWZXJzaW9uIDEuMg0KIyBBIGZvcmsgb2YgTGlzdEkyDQojIG1haW50YWluZWQgYnkgRmVybmFuZG8gTW9yZ2FkbyBBS0EgSm8gTW9yZw0KIyBzaW5jZSAyMDE1DQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIw0KIyBPcmlnaW5hbCBBdXRob3I6IEJlbiBNYWxlbiwgPGJlbkBjb25jZXB0ZmFjdG9yeS5jb20uYXU+DQojIENvLU1haW50YWluZXI6IFNpbW9uIFJhZGZvcmQsIDxzaW1vbkBjb25jZXB0ZmFjdG9yeS5jb20uYXU+DQojIFdlYjogd3d3LmNvbmNlcHRmYWN0b3J5LmNvbS5hdQ0KIw0KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCiMNCiMgTWFpbnRhaW5lciBzaW5jZSAyMDExIHVwIHRvIDIwMTQ6IEpvbmF0aGFuIFNjaG1pZCwgPGhpQGpvbmF0aGFuc2NobWlkLmRlPg0KIyBXZWI6IHd3dy5qb25hdGhhbnNjaG1pZC5kZQ0KIw0KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCiMNCiMgU29tZSB3YWNrb3Mgc3RhcnRlZCBkZXN0cm95aW5nIHN0dWZmIHNpbmNlIDIwMTIgYW5kIHN0b3BwZWQgYXQgMjAxNDoNCiMNCiMgVGFwaW8gTMO2eXR0eSwgPHRhcHNhQG9yYW5nZS1tZWRpYS5maT4NCiMgV2ViOiB3d3cub3JhbmdlLW1lZGlhLmZpDQojDQojIEdvcmFuIElsaWMsIDx1bmlxdTNlQGdtYWlsLmNvbT4NCiMgV2ViOiB3d3cuaWNoLW1hY2gtZGFzLmF0DQojDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIw0KIyBMSVNFIGlzIGEgQ01TIE1hZGUgU2ltcGxlIG1vZHVsZSB0aGF0IGVuYWJsZXMgdGhlIHdlYiBkZXZlbG9wZXIgdG8gY3JlYXRlDQojIG11bHRpcGxlIGxpc3RzIHRocm91Z2hvdXQgYSBzaXRlLiBJdCBjYW4gYmUgZHVwbGljYXRlZCBhbmQgZ2l2ZW4gZnJpZW5kbHkNCiMgbmFtZXMgZm9yIGVhc2llciBjbGllbnQgbWFpbnRlbmFuY2UuDQojDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIyBCRUdJTl9MSUNFTlNFDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIyBUaGlzIGZpbGUgaXMgcGFydCBvZiBMSVNFDQojIExJU0UgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5DQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5DQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yDQojIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uDQojDQojIExJU0UgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLA0KIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZg0KIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlDQojIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuDQojIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlDQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlDQojIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcgVVNBDQojIE9yIHJlYWQgaXQgb25saW5lOiBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwNCiMNCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQojIEVORF9MSUNFTlNFDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KDQppZiggIWRlZmluZWQoJ0NNU19WRVJTSU9OJykgKSBleGl0Ow0KDQoNCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0NCiMgSW5pdCBvYmplY3RzDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQoNCiRxdWVyeSA9ICR0aGlzLT5HZXRBcmNoaXZlUXVlcnkoJHBhcmFtcyk7DQoNCkV2ZW50czo6U2VuZEV2ZW50KCR0aGlzLT5HZXROYW1lKCksICdQcmVSZW5kZXJBY3Rpb24nLCBhcnJheSgnYWN0aW9uX25hbWUnID0+ICRuYW1lLCAncXVlcnlfb2JqZWN0JyA9PiAmJHF1ZXJ5KSk7DQoNCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0NCiMgQ2hlY2sgcGFyYW1zDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQoNCi8vd2hpY2ggdGVtcGxhdGUgdG8gdXNlDQokYXJjaGl2ZXRlbXBsYXRlID0gJ2FyY2hpdmVfJy4kdGhpcy0+R2V0UHJlZmVyZW5jZSgkdGhpcy0+X0dldE1vZHVsZUFsaWFzKCkgLiAnX2RlZmF1bHRfYXJjaGl2ZV90ZW1wbGF0ZScpOw0KaWYoaXNzZXQoJHBhcmFtc1sndGVtcGxhdGVfYXJjaGl2ZSddKSkgew0KCSRhcmNoaXZldGVtcGxhdGUgPSAnYXJjaGl2ZV8nLiRwYXJhbXNbJ3RlbXBsYXRlX2FyY2hpdmUnXTsNCn0NCmVsc2VpZihpc3NldCgkcGFyYW1zWydhcmNoaXZldGVtcGxhdGUnXSkpIHsNCgkkYXJjaGl2ZXRlbXBsYXRlID0gJ2FyY2hpdmVfJy4kcGFyYW1zWyd0ZW1wbGF0ZV9hcmNoaXZlJ107DQp9DQoNCi8vIFN1bW1hcnkgcGFnZSBjaGVjaw0KJHN1bW1hcnlwYWdlID0gJHRoaXMtPkdldFByZWZlcmVuY2UoJ3N1bW1hcnlwYWdlJywgJHJldHVybmlkKTsNCmlmKGlzc2V0KCRwYXJhbXNbJ3N1bW1hcnlwYWdlJ10pKSB7DQoNCglpZihpc19udW1lcmljKCRwYXJhbXNbJ3N1bW1hcnlwYWdlJ10pKSB7DQoJCSRzdW1tYXJ5cGFnZSA9ICRwYXJhbXNbJ3N1bW1hcnlwYWdlJ107DQoJfQ0KCWVsc2Ugew0KCQlpZighaXNzZXQoJGhtKSkNCgkJCSRobSA9IGNtc21zKCktPkdldEhpZXJhcmNoeU1hbmFnZXIoKTsNCgkJDQoJCSRzdW1tYXJ5cGFnZSA9ICRobS0+c3VyZUdldE5vZGVCeUFsaWFzKCRwYXJhbXNbJ3N1bW1hcnlwYWdlJ10pLT5HZXRJZCgpOw0KCX0NCn0NCg0KJGRlYnVnID0gKGlzc2V0KCRwYXJhbXNbJ2RlYnVnJ10pID8gdHJ1ZSA6IGZhbHNlKTsNCiRpbmxpbmUgPSAkdGhpcy0+R2V0UHJlZmVyZW5jZSgnZGlzcGxheV9pbmxpbmUnLCAwKTsNCg0KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIyBJbml0IGl0ZW1zDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQoNCiRxdWVyeS0+QXBwZW5kVG8oTElTRVF1ZXJ5OjpWQVJUWVBFX1dIRVJFLCAnQS5hY3RpdmUgPSAxJyk7DQokcmVzdWx0ID0gJHF1ZXJ5LT5FeGVjdXRlKHRydWUpOw0KDQokaXRlbXMgPSBhcnJheSgpOw0Kd2hpbGUoJHJlc3VsdCAmJiAkcm93ID0gJHJlc3VsdC0+RmV0Y2hSb3coKSkgew0KDQoJJG9uZXJvdyA9IG5ldyBzdGRDbGFzczsNCgkkb25lcm93LT5tb250aCAJCQkJCT0gJHJvd1snbW9udGgnXTsNCgkkb25lcm93LT55ZWFyIAkJCQkJPSAkcm93Wyd5ZWFyJ107DQoJJG9uZXJvdy0+Y291bnQgCQkJCQk9ICRyb3dbJ2NvdW50J107DQoJJG9uZXJvdy0+dGltZXN0YW1wIAkJCQk9IG1rdGltZSgwLDAsMCwkcm93Wydtb250aCddLDEsJHJvd1sneWVhciddKTsNCgkNCgkkbGlua3BhcmFtcyA9IGFycmF5KCk7DQoJJGxpbmtwYXJhbXNbJ2ZpbHRlcl95ZWFyJ10gCQk9ICRvbmVyb3ctPnllYXI7DQoJJGxpbmtwYXJhbXNbJ2ZpbHRlcl9tb250aCddIAk9ICRvbmVyb3ctPm1vbnRoOw0KCQ0KCWxpc2VfdXRpbHM6OmNsZWFuX3BhcmFtcygkcGFyYW1zLCBhcnJheSgncmV0dXJuaWQnKSk7DQoJJGxpbmtwYXJhbXMgPSBhcnJheV9tZXJnZSgkbGlua3BhcmFtcywgJHBhcmFtcyk7DQoNCgkkb25lcm93LT51cmwgPSAkdGhpcy0+Q3JlYXRlUHJldHR5TGluaygkaWQsICdkZWZhdWx0JywgJHN1bW1hcnlwYWdlLCAnJywgJGxpbmtwYXJhbXMsICcnLCB0cnVlLCAkaW5saW5lKTsNCg0KCSRpdGVtc1tdID0gJG9uZXJvdzsNCn0NCg0KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIyBTbWFydHkgcHJvY2Vzc2luZw0KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KDQokc21hcnR5LT5hc3NpZ24oJ2FyY2hpdmVzJywgJGl0ZW1zKTsNCiRzbWFydHktPmFzc2lnbigkdGhpcy0+R2V0TmFtZSgpIC4nX2FyY2hpdmVzJywgJGl0ZW1zKTsgLy8gPC0gQWxpYXMgZm9yICRhcmNoaXZlcw0KDQplY2hvICR0aGlzLT5Qcm9jZXNzVGVtcGxhdGVGcm9tRGF0YWJhc2UoJGFyY2hpdmV0ZW1wbGF0ZSk7DQoNCmlmKCRkZWJ1ZykgDQoJJHNtYXJ0eS0+ZGlzcGxheSgnc3RyaW5nOjxwcmU+eyRhcmNoaXZlc3xAcHJpbnRfcn08L3ByZT4nKTsNCg0KPz4NCg==]]></data>
	</file>
	<file>
	  <filename>/framework/action.category.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHANCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQojIExJU0UgLSBMaXN0IEl0IFNwZWNpYWwgRWRpdGlvbg0KIyBWZXJzaW9uIDEuMg0KIyBBIGZvcmsgb2YgTGlzdEkyDQojIG1haW50YWluZWQgYnkgRmVybmFuZG8gTW9yZ2FkbyBBS0EgSm8gTW9yZw0KIyBzaW5jZSAyMDE1DQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIw0KIyBPcmlnaW5hbCBBdXRob3I6IEJlbiBNYWxlbiwgPGJlbkBjb25jZXB0ZmFjdG9yeS5jb20uYXU+DQojIENvLU1haW50YWluZXI6IFNpbW9uIFJhZGZvcmQsIDxzaW1vbkBjb25jZXB0ZmFjdG9yeS5jb20uYXU+DQojIFdlYjogd3d3LmNvbmNlcHRmYWN0b3J5LmNvbS5hdQ0KIw0KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCiMNCiMgTWFpbnRhaW5lciBzaW5jZSAyMDExIHVwIHRvIDIwMTQ6IEpvbmF0aGFuIFNjaG1pZCwgPGhpQGpvbmF0aGFuc2NobWlkLmRlPg0KIyBXZWI6IHd3dy5qb25hdGhhbnNjaG1pZC5kZQ0KIw0KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCiMNCiMgU29tZSB3YWNrb3Mgc3RhcnRlZCBkZXN0cm95aW5nIHN0dWZmIHNpbmNlIDIwMTIgYW5kIHN0b3BwZWQgYXQgMjAxNDoNCiMNCiMgVGFwaW8gTMO2eXR0eSwgPHRhcHNhQG9yYW5nZS1tZWRpYS5maT4NCiMgV2ViOiB3d3cub3JhbmdlLW1lZGlhLmZpDQojDQojIEdvcmFuIElsaWMsIDx1bmlxdTNlQGdtYWlsLmNvbT4NCiMgV2ViOiB3d3cuaWNoLW1hY2gtZGFzLmF0DQojDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIw0KIyBMSVNFIGlzIGEgQ01TIE1hZGUgU2ltcGxlIG1vZHVsZSB0aGF0IGVuYWJsZXMgdGhlIHdlYiBkZXZlbG9wZXIgdG8gY3JlYXRlDQojIG11bHRpcGxlIGxpc3RzIHRocm91Z2hvdXQgYSBzaXRlLiBJdCBjYW4gYmUgZHVwbGljYXRlZCBhbmQgZ2l2ZW4gZnJpZW5kbHkNCiMgbmFtZXMgZm9yIGVhc2llciBjbGllbnQgbWFpbnRlbmFuY2UuDQojDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIyBCRUdJTl9MSUNFTlNFDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIyBUaGlzIGZpbGUgaXMgcGFydCBvZiBMSVNFDQojIExJU0UgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5DQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5DQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yDQojIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uDQojDQojIExJU0UgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLA0KIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZg0KIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlDQojIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuDQojIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlDQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlDQojIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcgVVNBDQojIE9yIHJlYWQgaXQgb25saW5lOiBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwNCiMNCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQojIEVORF9MSUNFTlNFDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KLyoqIEB2YXIgaW50ICRyZXR1cm5pZCBpbiBzY29wZSBmcm9tIGZpbGUgaW5jbHVzaW9uICovDQovKiogQHZhciBcTElTRSAkdGhpcyBpbiBzY29wZSBmcm9tIGZpbGUgaW5jbHVzaW9uICovDQppZiggIWRlZmluZWQoJ0NNU19WRVJTSU9OJykgKXsgZXhpdDsgfQ0KDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQojIEluaXQgb2JqZWN0cw0KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KDQokcXVlcnlfb2JqZWN0ID0gJHRoaXMtPkdldENhdGVnb3J5UXVlcnkoJHBhcmFtcyk7DQokZXZlbnRfcGFyYW1zID0gWydhY3Rpb25fbmFtZScgPT4gJG5hbWUsICdxdWVyeV9vYmplY3QnID0+ICRxdWVyeV9vYmplY3RdOw0KDQpFdmVudHM6OlNlbmRFdmVudCgkdGhpcy0+R2V0TmFtZSgpLCAnUHJlUmVuZGVyQWN0aW9uJywgJGV2ZW50X3BhcmFtcyk7DQoNCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0NCiMgSW5pdA0KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KDQovL3doaWNoIHRlbXBsYXRlIHRvIHVzZQ0KJHRlbXBsYXRlID0gJ2NhdGVnb3J5XycgLiAkdGhpcy0+R2V0UHJlZmVyZW5jZSgkdGhpcy0+X0dldE1vZHVsZUFsaWFzKCkgLiAnX2RlZmF1bHRfY2F0ZWdvcnlfdGVtcGxhdGUnKTsNCg0KaWYoaXNzZXQoJHBhcmFtc1sndGVtcGxhdGVfY2F0ZWdvcnknXSkpDQp7DQogICR0ZW1wbGF0ZSA9ICdjYXRlZ29yeV8nIC4gJHBhcmFtc1sndGVtcGxhdGVfY2F0ZWdvcnknXTsNCn0NCmVsc2UgaWYoaXNzZXQoJHBhcmFtc1snY2F0ZWdvcnl0ZW1wbGF0ZSddKSkNCnsNCiAgJHRlbXBsYXRlID0gJ2NhdGVnb3J5XycgLiAkcGFyYW1zWydjYXRlZ29yeXRlbXBsYXRlJ107DQp9DQoNCiRkZWJ1ZyAgPSBpc3NldCgkcGFyYW1zWydkZWJ1ZyddKTsNCiRpbmxpbmUgPSAkdGhpcy0+R2V0UHJlZmVyZW5jZSgnZGlzcGxheV9pbmxpbmUnLCAwKTsNCg0KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIyBJbml0IGl0ZW1zDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQoNCiRxdWVyeV9vYmplY3QtPkFwcGVuZFRvKExJU0VRdWVyeTo6VkFSVFlQRV9XSEVSRSwgJ0IuYWN0aXZlID0gMSBBTkQgQi5wYXJlbnRfaWQgPSAtMScpOw0KJGRiciA9ICRxdWVyeV9vYmplY3QtPkV4ZWN1dGUoVFJVRSk7DQoNCiRpdGVtcyA9IFtdOw0Kd2hpbGUoJGRiciAmJiAhJGRici0+RU9GKQ0Kew0KICAkaXRlbXNbJGRici0+ZmllbGRzWydjYXRlZ29yeV9pZCddXSA9ICRkYnItPmZpZWxkc1snY2F0ZWdvcnlfaWQnXTsNCiAgJGRici0+TW92ZU5leHQoKTsNCn0NCg0KaWYoJGRicikgeyAkZGJyLT5DbG9zZSgpOyB9DQoNCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0NCiMgQnVpbGQgaGllcmFyY2h5DQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQoNCi8vIFNldCBjb2xsYXBzZSB0cnVlL2ZhbHNlDQokc2hvd3BhcmVudHMgPSBbXTsNCmlmKGlzc2V0KCRwYXJhbXNbJ2NvbGxhcHNlJ10pKQ0Kew0KICAvLyBHcmFiIGN1cnJlbnQgcGF0aA0KICAkY3VycmVudF9wYXRoID0gY21zX3V0aWxzOjpnZXRfYXBwX2RhdGEoJ2xpc2VfaWRfaGllcmFyY2h5Jyk7DQogIA0KICBpZigkY3VycmVudF9wYXRoKQ0KICB7DQogICAgJHNwbGl0X3BhdGggPSBleHBsb2RlKCcuJywgJGN1cnJlbnRfcGF0aCk7DQogICAgDQogICAgZm9yZWFjaCgkc3BsaXRfcGF0aCBhcyAkcGF0aCkNCiAgICB7DQogICAgICAkc2hvd3BhcmVudHNbXSA9ICRwYXRoOw0KICAgIH0NCiAgfQ0KfQ0KDQokb3JpZ2RlcHRoID0gMTsNCiRwcmV2ZGVwdGggPSAxOw0KJGNvdW50ICAgICA9IDA7DQokbm9kZWxpc3QgID0gW107DQoNCkxJU0VIaWVyYXJjaHlNYW5hZ2VyOjpHZXRDaGlsZE5vZGVzKA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkdGhpcywNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJGlkLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkcmV0dXJuaWQsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRpdGVtcywNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJG5vZGVsaXN0LA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkY291bnQsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRwcmV2ZGVwdGgsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRvcmlnZGVwdGgsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRwYXJhbXMsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRzaG93cGFyZW50cw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKTsNCg0KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIyBTbWFydHkgcHJvY2Vzc2luZw0KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KDQokc21hcnR5LT5hc3NpZ24oJ2NhdGVnb3JpZXMnLCAkbm9kZWxpc3QpOw0KDQplY2hvICR0aGlzLT5Qcm9jZXNzVGVtcGxhdGVGcm9tRGF0YWJhc2UoJHRlbXBsYXRlKTsNCg0KPz4=]]></data>
	</file>
	<file>
	  <filename>/framework/action.csv_import_app.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHANCmlmKCAhZGVmaW5lZCgnQ01TX1ZFUlNJT04nKSApIHsgZXhpdDsgfQ0KDQppZiggISR0aGlzLT5DaGVja1Blcm1pc3Npb24oICR0aGlzLT5fR2V0TW9kdWxlQWxpYXMoKSAuICdfbW9kaWZ5X2l0ZW0nICkgKSB7IHJldHVybjsgfQ0KJGFkbWludGhlbWUgICAgPSBjbXNfdXRpbHM6OmdldF90aGVtZV9vYmplY3QoKTsNCiRkZXN0X3BhdGggICAgID0gY21zX2pvaW5fcGF0aChUTVBfQ0FDSEVfTE9DQVRJT04sICR0aGlzLT5HZXROYW1lKCkgLiAnX0NTVl9GSUxFLmNzdicpOw0KJGZpbGVfdmFsdWVzICAgPSBbXTsNCiR0ZW1wbGF0ZSAgICAgID0gJ2FkbWluX2Nzdl9pbXBvcnRfZXhwb3J0LnRwbCc7DQokcGx1cmFsICAgICAgICA9ICR0aGlzLT5HZXRQcmVmZXJlbmNlKCdpdGVtX3BsdXJhbCcsICcnKTsNCiRzZXBhcmF0b3IgICAgID0gbGlzZV91dGlsczo6aW5pdF92YXIoJ3NlcGFyYXRvcicsICRwYXJhbXMsICR0aGlzLT5HZXRQcmVmZXJlbmNlKCdzZXBhcmF0b3InLCAnLCcpICk7DQokZW5jbG9zdXJlICAgICA9IGxpc2VfdXRpbHM6OmluaXRfdmFyKCdlbmNsb3N1cmUnLCAkcGFyYW1zLCAkdGhpcy0+R2V0UHJlZmVyZW5jZSgnZW5jbG9zdXJlJywgJyInKSApOw0KJGltcG9ydF92YWx1ZXMgPSB1bnNlcmlhbGl6ZSggJHRoaXMtPkdldFByZWZlcmVuY2UoJ2ltcG9ydF92YWx1ZXMnKSApOw0KDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQojIExvYWQgaXRlbSB2YXJpYWJsZXMNCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0NCiRkYXRhYmFzZV92YWx1ZXMgPSBbXTsNCiRfaW52YWxpZF92YWx1ZXMgPSBbJ2NyZWF0ZV90aW1lJywgJ21vZGlmaWVkX3RpbWUnXTsNCiRpdGVtICAgICAgICAgICAgPSAkdGhpcy0+SW5pdGlhdGVJdGVtKCk7DQoNCiRkYXRhYmFzZV92YWx1ZXMgPSBcTElTRVxhcGk6OmdldEluc3RhbmNlKCk6OkdldEZpZWxkc1JlcXVpcmVtZW50cyhUUlVFKTsNCg0KJGVycm9ycyA9IFtdOw0KDQpmb3JlYWNoKCAkZGF0YWJhc2VfdmFsdWVzIGFzICRvYmogKQ0Kew0KDQogIGlmKCRvYmotPnJlcXVpcmVkICYmICEkaW1wb3J0X3ZhbHVlc1skb2JqLT5hbGlhc10pDQogIHsNCiAgICAkZXJyb3JzW10gPSAkdGhpcy0+TW9kTGFuZygncmVxdWlyZWRfZmllbGRfZW1wdHknKSAuICcgKCcgLiAkb2JqLT5hbGlhcyAuICcpJzsNCiAgfQ0KfQ0KDQovLyAgaWYoIGVtcHR5KCRlcnJvcnMpICkNCi8vICB7DQovLw0KLy8gICAgJGRhdGFiYXNlX3ZhbHVlcyA9IFtdOw0KLy8NCi8vDQovLyAgICB9DQoNCiR0ZW1wbGF0ZSA9ICdhZG1pbl9jc3ZfaW1wb3J0X2FwcC50cGwnOw0KDQplY2hvICR0aGlzLT5Nb2RQcm9jZXNzVGVtcGxhdGUoICR0ZW1wbGF0ZSApOw0KPz4=]]></data>
	</file>
	<file>
	  <filename>/framework/action.cvs_import_step_1.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHANCmlmKCAhZGVmaW5lZCgnQ01TX1ZFUlNJT04nKSApIHsgZXhpdDsgfQ0KaWYoICEkdGhpcy0+Q2hlY2tQZXJtaXNzaW9uKCR0aGlzLT5fR2V0TW9kdWxlQWxpYXMoKSAuICdfbW9kaWZ5X2l0ZW0nKSApIHsgcmV0dXJuOyB9DQoNCiRvbGRfbWV0ICA9IGluaV9zZXQoJ21heF9leGVjdXRpb25fdGltZScsIDApOw0KJGhhbmRsZXJzID0gb2JfbGlzdF9oYW5kbGVycygpOw0KZm9yKCRjbnQgPSAwOyAkY250IDwgc2l6ZW9mKCRoYW5kbGVycyk7ICRjbnQrKykgeyBvYl9lbmRfY2xlYW4oKTsgfQ0KDQokY3N2X2ZpbGUgICAgICA9IGNtc19qb2luX3BhdGgoVE1QX0NBQ0hFX0xPQ0FUSU9OLCAkdGhpcy0+R2V0TmFtZSgpIC4gJ19DU1ZfRklMRS5jc3YnKTsNCiRzZXBhcmF0b3IgICAgID0gJHRoaXMtPkdldFByZWZlcmVuY2UoJ3NlcGFyYXRvcicsICcsJyk7DQokZW5jbG9zdXJlICAgICA9ICR0aGlzLT5HZXRQcmVmZXJlbmNlKCdlbmNsb3N1cmUnLCAnIicpOw0KJGltcG9ydF92YWx1ZXMgPSB1bnNlcmlhbGl6ZSgkdGhpcy0+R2V0UHJlZmVyZW5jZSgnaW1wb3J0X3ZhbHVlcycpKTsNCg0KIyByZW1vdmUgbm9uLW1hdGNoaW5nIGNvbHVtbnMNCiRpbXBvcnRfdmFsdWVzID0gYXJyYXlfZmlsdGVyKCRpbXBvcnRfdmFsdWVzKTsNCiRkYiA9IFxjbXNfdXRpbHM6OmdldF9kYigpOw0KDQokaCA9IFtdOw0KJHJvd3MgPSAwOw0KDQokc2V0X2NvdW50ID0gZnVuY3Rpb24oJHZhbCkNCnsNCiAgZWNobyAnDQo8c2NyaXB0Pg0KICBwYXJlbnQuc2V0X2VuZCgnLiAkdmFsIC4gJyk7DQogPC9zY3JpcHQ+DQonOw0KICBvYl9mbHVzaCgpOw0KICBmbHVzaCgpOw0KfTsNCg0KJGRpc3BsYXlfcHJvZ3Jlc3MgPSBzdGF0aWMgZnVuY3Rpb24oJHByb2dyZXNzKQ0Kew0KICBlY2hvICcNCjxzY3JpcHQ+DQogIHBhcmVudC5zZXRfcHJvZ3Jlc3MoJy4gJHByb2dyZXNzIC4gJykNCiA8L3NjcmlwdD4NCic7DQogIG9iX2ZsdXNoKCk7DQogIGZsdXNoKCk7DQp9Ow0KDQokZGlzcGxheV9tZXNzYWdlID0gc3RhdGljIGZ1bmN0aW9uKCRtZXNzYWdlKQ0Kew0KICBlY2hvICcNCjxzY3JpcHQ+DQogICAgcGFyZW50LmRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJtZXNzYWdlcyIpLmlubmVySFRNTD0iJy4gJG1lc3NhZ2UgLiAnIjsNCjwvc2NyaXB0Pg0KJzsNCiAgDQogIG9iX2ZsdXNoKCk7DQogIGZsdXNoKCk7DQp9Ow0KDQokc3RhcnRfZXN0aW1hdGluZyA9IHN0YXRpYyBmdW5jdGlvbigpDQp7DQogIGVjaG8gJw0KPHNjcmlwdD4NCiAgICBwYXJlbnQuc3RhcnRfZXN0aW1hdGluZygpOw0KPC9zY3JpcHQ+DQonOw0KICANCiAgb2JfZmx1c2goKTsNCiAgZmx1c2goKTsNCn07DQoNCg0KaWYoIEZBTFNFICE9PSAoJGhhbmRsZSA9IGZvcGVuKCRjc3ZfZmlsZSwgJ3JiJykgKSApDQp7DQogICRkaXNwbGF5X21lc3NhZ2UoJ0ltcG9ydCBzdGFydGVkIC0gc3RhZ2Ugb25lOiBjb3VudGluZyByZWNvcmRzIGFuZCBpbXBvcnQgdG8gdGVtcG9yYXJ5IHRhYmxlJyk7DQoNCiAgd2hpbGUoRkFMU0UgIT09ICgkZGF0YSA9IGZnZXRjc3YoJGhhbmRsZSwgMTAwMDAsICRzZXBhcmF0b3IsICRlbmNsb3N1cmUpKSkNCiAgew0KICAgIGlmKDAgPT09ICRyb3dzKQ0KICAgIHsNCiAgICAgICRoICAgPSAkZGF0YTsNCiAgICAgICRzcWwgPSAnRFJPUCBUQUJMRSBJRiBFWElTVFMgdGVtcF9saXNlX2Nzdl9pbXBvcnRfZGF0YSc7DQoNCiAgICAgICRkYi0+ZXhlY3V0ZSgkc3FsKTsNCg0KICAgICAgaWYoJGRiLT5FcnJvck5vKCkgPiAwKQ0KICAgICAgew0KICAgICAgICAkbXNnID0gJzxwPkVycm9yICcgLiAkZGItPkVycm9yTm8oKSAuICc6ICcgLiAkZGItPkVycm9yTXNnKCkgLiAnPC9wPic7DQogICAgICAgICRtc2cgLj0gJzxwPlNRTDogJyAuICRzcWwgLiAnPC9wPic7DQogICAgICAgICRkaXNwbGF5X21lc3NhZ2UoJG1zZyk7DQoNCi8vICAgICAgICAkb3V0WydlcnJvciddID0gJGRiLT5FcnJvck5vKCk7DQovLyAgICAgICAgJG91dFsnbXNnJ10gPSAkZGItPkVycm9yTXNnKCk7DQovLyAgICAgICAgJG91dFsnY29udGVudCddWydzcWwnXSA9ICRzcWw7DQovLyAgICAgICAgYnJlYWs7DQogICAgICB9DQoNCiAgICAgICRzcWwgPSAnQ1JFQVRFIFRBQkxFIElGIE5PVCBFWElTVFMgdGVtcF9saXNlX2Nzdl9pbXBvcnRfZGF0YSAoJzsNCiAgICAgICRzcWwgLj0gJ2xpc2VfdG1wX2lkIElOVCBOT1QgTlVMTCBBVVRPX0lOQ1JFTUVOVCwnOw0KDQogICAgICAkY29scyA9IFtdOw0KICAgICAgZm9yZWFjaCgkZGF0YSBhcyAkY29sX25hbWUpDQogICAgICB7DQogICAgICAgICRjb2xzW10gPSAkY29sX25hbWUgLiAnICBURVhUKDQwMDApJzsNCiAgICAgIH0NCg0KICAgICAgJHNxbCAuPSBpbXBsb2RlKCcsICcsICRjb2xzKTsNCiAgICAgICRzcWwgLj0gJywgUFJJTUFSWSBLRVkgKGxpc2VfdG1wX2lkKSApIEVOR0lORT1Jbm5vREIgREVGQVVMVCBDSEFSU0VUPXV0ZjhtYjQnOw0KDQogICAgfQ0KICAgIGVsc2UNCiAgICB7DQogICAgICAkdCA9IGFycmF5X21hcCgnXGh0bWxlbnRpdGllcycsICRkYXRhKTsNCiAgICAgICRzcWwgPSAnSU5TRVJUIElOVE8gdGVtcF9saXNlX2Nzdl9pbXBvcnRfZGF0YSAoJzsNCiAgICAgICRzcWwgLj0gaW1wbG9kZSgnLCAnLCAkaCkgLiAnKSAnOw0KICAgICAgJHNxbCAuPSAnVkFMVUVTICgiJzsNCiAgICAgICRzcWwgLj0gaW1wbG9kZSgnIiwgIicsICR0KSAuICciKSAnOw0KDQogICAgfQ0KDQogICAgJGRiLT5leGVjdXRlKCRzcWwpOw0KDQogICAgaWYoJGRiLT5FcnJvck5vKCkgPiAwKQ0KICAgIHsNCiAgICAgICRtc2cgPSAnPHA+RXJyb3IgJyAuICRkYi0+RXJyb3JObygpIC4gJzogJyAuICRkYi0+RXJyb3JNc2coKSAuICc8L3A+JzsNCiAgICAgICRtc2cgLj0gJzxwPlNRTDogJyAuICRzcWwgLiAnPC9wPic7DQogICAgICAkZGlzcGxheV9tZXNzYWdlKCRtc2cpOw0KLy8gICAgICAkb3V0WydlcnJvciddID0gJGRiLT5FcnJvck5vKCk7DQovLyAgICAgICRvdXRbJ21zZyddID0gJGRiLT5FcnJvck1zZygpOw0KLy8gICAgICAkb3V0Wydjb250ZW50J11bJ3NxbCddID0gJHNxbDsNCi8vICAgICAgYnJlYWs7DQogICAgfQ0KDQogICAgJHNldF9jb3VudCgkcm93cysrKTsNCiAgfQ0KDQogIGZjbG9zZSgkaGFuZGxlKTsNCiAgDQogICRkaXNwbGF5X21lc3NhZ2UoJ0ltcG9ydCBzdGFnZSBvbmUgY29tcGxldGVkLiBTdGFydGVkIHN0YWdlIHR3byEnKTsNCiAgDQogICRkYXRhYmFzZV92YWx1ZXMgPSBbXTsNCiAgJF9pbnZhbGlkX3ZhbHVlcyA9IFsnY3JlYXRlX3RpbWUnLCAnbW9kaWZpZWRfdGltZSddOw0KICAkZGF0YWJhc2VfdmFsdWVzID0gXExJU0VcYXBpOjpnZXRJbnN0YW5jZSgpOjpHZXRGaWVsZHNSZXF1aXJlbWVudHMoVFJVRSk7DQogICRmaWVsZHMgPSBhcnJheV92YWx1ZXMoJGltcG9ydF92YWx1ZXMpOw0KICAkcm93ID0gMDsNCiAgDQovLyAgJHN0YXJ0ID0gKGludCkkcGFyYW1zWydvZmZzZXQnXTsNCi8vICAkZW5kID0gKGludCkoJHN0YXJ0ICsgJHBhcmFtc1snc3RlcCddIC0gMSk7DQogIA0KICAkc3FsID0gJ1NFTEVDVCAnOw0KICAkc3FsIC49IGltcGxvZGUoJywnLCAkZmllbGRzKTsNCiAgLy8kc3FsIC49ICcgRlJPTSB0ZW1wX2xpc2VfY3N2X2ltcG9ydF9kYXRhIFdIRVJFIGxpc2VfdG1wX2lkIEJFVFdFRU4gJzsNCiAgJHNxbCAuPSAnIEZST00gdGVtcF9saXNlX2Nzdl9pbXBvcnRfZGF0YSc7DQogIC8vJHNxbCAuPSAkc3RhcnQgLiAnIEFORCAnIC4gJGVuZDsNCiAgDQogICRyID0gJGRiLT5HZXRBcnJheSgkc3FsKTsNCiAgDQogIGlmKCRkYi0+RXJyb3JObygpID4gMCkNCiAgew0KICAgICRtc2cgPSAnPHA+RXJyb3IgJyAuICRkYi0+RXJyb3JObygpIC4gJzogJyAuICRkYi0+RXJyb3JNc2coKSAuICc8L3A+JzsNCiAgICAkbXNnIC49ICc8cD5TUUw6ICcgLiAkc3FsIC4gJzwvcD4nOw0KICAgICRkaXNwbGF5X21lc3NhZ2UoJG1zZyk7DQovLyAgICAkb3V0WydlcnJvciddID0gJGRiLT5FcnJvck5vKCk7DQovLyAgICAkb3V0Wydtc2cnXSA9ICRkYi0+RXJyb3JNc2coKTsNCi8vICAgIGJyZWFrOw0KICB9DQogIA0KICAkc3RhcnRfZXN0aW1hdGluZygpOw0KICANCiAgZm9yZWFjaCgkciBhcyAkb25lKQ0KICB7DQogICAgJHJvdysrOw0KICAgIC8vIEltcG9ydCBkYXRhIHRvIGRhdGFiYXNlDQogICAgJG9iaiA9ICR0aGlzLT5Jbml0aWF0ZUl0ZW0oKTsNCiAgICANCiAgICBmb3JlYWNoKCRpbXBvcnRfdmFsdWVzIGFzICRhbGlhcyA9PiAkZmllbGRfbmFtZSkNCiAgICB7DQogICAgICBpZignaXRlbV9pZCcgPT09ICRhbGlhcyAmJiAhaXNfbnVtZXJpYygkb25lWyRmaWVsZF9uYW1lXSkgKSB7IGNvbnRpbnVlOyB9DQogICAgICANCiAgICAgICRvYmotPlNldFByb3BlcnR5VmFsdWUoICRhbGlhcywgaHRtbF9lbnRpdHlfZGVjb2RlKCRvbmVbJGZpZWxkX25hbWVdKSApOw0KICAgICAgDQogICAgICAjIFRyeSBsb2FkaW5nIGl0ZW0gaWYgd2UgYWN0dWFsbHkgZ290IElELg0KICAgICAgaWYoJ2l0ZW1faWQnID09PSAkYWxpYXMpDQogICAgICB7DQogICAgICAgIExJU0VJdGVtT3BlcmF0aW9uczo6TG9hZCgkdGhpcywgJG9iaik7DQogICAgICB9DQogICAgfQ0KICAgIA0KICAgICR0aGlzLT5TYXZlSXRlbSgkb2JqKTsNCiAgICANCiAgICAkZGlzcGxheV9wcm9ncmVzcygkcm93KTsNCiAgICANCiAgICB1bnNldCgkb2JqKTsNCiAgfQ0KICANCn0NCmVsc2UNCnsNCiAgJGRpc3BsYXlfbWVzc2FnZSgnRXJyb3I6IGNvdWxkIG5vdCBvcGVuIHRlbXBvcmFyeSBjb3B5IG9mIENTViBpbXBvcnQgZmlsZSEgUGxlYXNlIHRyeSBhZ2FpbiEnKTsNCn0NCg0KaW5pX3NldCgnbWF4X2V4ZWN1dGlvbl90aW1lJywgJG9sZF9tZXQpOw0KDQo/Pg==]]></data>
	</file>
	<file>
	  <filename>/framework/action.default.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHANCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQojIExJU0UgLSBMaXN0IEl0IFNwZWNpYWwgRWRpdGlvbg0KIyBWZXJzaW9uIDEuMg0KIyBBIGZvcmsgb2YgTGlzdEkyDQojIG1haW50YWluZWQgYnkgRmVybmFuZG8gTW9yZ2FkbyBBS0EgSm8gTW9yZw0KIyBzaW5jZSAyMDE1DQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIw0KIyBPcmlnaW5hbCBBdXRob3I6IEJlbiBNYWxlbiwgPGJlbkBjb25jZXB0ZmFjdG9yeS5jb20uYXU+DQojIENvLU1haW50YWluZXI6IFNpbW9uIFJhZGZvcmQsIDxzaW1vbkBjb25jZXB0ZmFjdG9yeS5jb20uYXU+DQojIFdlYjogd3d3LmNvbmNlcHRmYWN0b3J5LmNvbS5hdQ0KIw0KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCiMNCiMgTWFpbnRhaW5lciBzaW5jZSAyMDExIHVwIHRvIDIwMTQ6IEpvbmF0aGFuIFNjaG1pZCwgPGhpQGpvbmF0aGFuc2NobWlkLmRlPg0KIyBXZWI6IHd3dy5qb25hdGhhbnNjaG1pZC5kZQ0KIw0KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCiMNCiMgU29tZSB3YWNrb3Mgc3RhcnRlZCBkZXN0cm95aW5nIHN0dWZmIHNpbmNlIDIwMTIgYW5kIHN0b3BwZWQgYXQgMjAxNDoNCiMNCiMgVGFwaW8gTMO2eXR0eSwgPHRhcHNhQG9yYW5nZS1tZWRpYS5maT4NCiMgV2ViOiB3d3cub3JhbmdlLW1lZGlhLmZpDQojDQojIEdvcmFuIElsaWMsIDx1bmlxdTNlQGdtYWlsLmNvbT4NCiMgV2ViOiB3d3cuaWNoLW1hY2gtZGFzLmF0DQojDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIw0KIyBMSVNFIGlzIGEgQ01TIE1hZGUgU2ltcGxlIG1vZHVsZSB0aGF0IGVuYWJsZXMgdGhlIHdlYiBkZXZlbG9wZXIgdG8gY3JlYXRlDQojIG11bHRpcGxlIGxpc3RzIHRocm91Z2hvdXQgYSBzaXRlLiBJdCBjYW4gYmUgZHVwbGljYXRlZCBhbmQgZ2l2ZW4gZnJpZW5kbHkNCiMgbmFtZXMgZm9yIGVhc2llciBjbGllbnQgbWFpbnRlbmFuY2UuDQojDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIyBCRUdJTl9MSUNFTlNFDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIyBUaGlzIGZpbGUgaXMgcGFydCBvZiBMSVNFDQojIExJU0UgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5DQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5DQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yDQojIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uDQojDQojIExJU0UgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLA0KIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZg0KIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlDQojIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuDQojIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlDQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlDQojIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcgVVNBDQojIE9yIHJlYWQgaXQgb25saW5lOiBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwNCiMNCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQojIEVORF9MSUNFTlNFDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KdXNlIExJU0VccGFyYW1ldGVyczsNCnVzZSBMSVNFXFNlc3Npb247DQoNCi8qKg0KICogdmFyaWFibGVzIGluIHNjb3BlIGZyb20gZmlsZSBpbmNsdXNpb24NCiAqLw0KLyoqIEB2YXIgaW50ICRyZXR1cm5pZCAqLw0KLyoqIEB2YXIgXExJU0VJbnN0YW5jZSAkdGhpcyAqLw0KLyoqLw0KDQppZiggIWRlZmluZWQoJ0NNU19WRVJTSU9OJykgKSBleGl0Ow0KDQovKioNCiAqIGV4dHJhY3QgdmFsdWVzIGZyb20gcGFyYW1zDQogKi8NCg0KJHN1bW1hcnl0ZW1wbGF0ZSA9ICR0aGlzLT5HZXRQcmVmZXJlbmNlKCR0aGlzLT5fR2V0TW9kdWxlQWxpYXMoKSAuICdfZGVmYXVsdF9zdW1tYXJ5X3RlbXBsYXRlJyk7DQoNCi8vJHN1bW1hcnl0ZW1wbGF0ZSA9ICdzdW1tYXJ5XycgLiAkdGhpcy0+R2V0UHJlZmVyZW5jZSgkdGhpcy0+X0dldE1vZHVsZUFsaWFzKCkgLiAnX2RlZmF1bHRfc3VtbWFyeV90ZW1wbGF0ZScpOw0KLy8NCi8vaWYoaXNzZXQoJHBhcmFtc1sndGVtcGxhdGVfc3VtbWFyeSddKSkNCi8vew0KLy8gICRzdW1tYXJ5dGVtcGxhdGUgPSAnc3VtbWFyeV8nIC4gJHBhcmFtc1sndGVtcGxhdGVfc3VtbWFyeSddOw0KLy99DQovL2Vsc2VpZihpc3NldCgkcGFyYW1zWydzdW1tYXJ5dGVtcGxhdGUnXSkpDQovL3sNCi8vICAkc3VtbWFyeXRlbXBsYXRlID0gJ3N1bW1hcnlfJyAuICRwYXJhbXNbJ3N1bW1hcnl0ZW1wbGF0ZSddOw0KLy99DQoNCg0KLyoqDQogKiBleHBlY3RlZCBwYXJhbXMgc2V0IGluIGEgYmx1ZXByaW50IGFycmF5DQogKg0KICogdGhleSB3aWxsIGJlIGNvbnZlcnRlZCB0byB2YXJpYWJsZXMgd2l0aCBzZXQgb3IgZGVmYXVsdCB2YWx1ZXMNCiAqLw0KLyoqIEB2YXIgc3RyaW5nICR0YWcgKi8NCi8qKiBAdmFyIHN0cmluZyAkc2VhcmNoICovDQovKiogQHZhciBzdHJpbmcgJHN1bW1hcnl0ZW1wbGF0ZSAqLw0KLyoqIEB2YXIgc3RyaW5nfGludCAkZGV0YWlscGFnZSAqLw0KLyoqIEB2YXIgc3RyaW5nfGludCAkc3VtbWFyeXBhZ2UgKi8NCi8qKiBAdmFyIGJvb2wgJGRlYnVnICovDQovKiogQHZhciBib29sICRub3Byb3BzICovDQovKiogQHZhciBib29sICRub2ZkcyAqLw0KDQokYmx1ZXByaW50ID0gWw0KICAndGFnJyA9PiBbDQogICAgJ2RlZmF1bHQnID0+ICcnLA0KICAgICd0eXBlJyA9PiAnc3RyaW5nJywNCiAgXSwNCiAgJ3NlYXJjaCcgPT4gWw0KICAgICdkZWZhdWx0JyA9PiAnJywNCiAgICAndHlwZScgPT4gJ3N0cmluZycsDQogIF0sDQogIC8vIGRlcHJlY2F0ZWQsIHNjaGVkdWxlZCBmb3IgcmVtb3ZhbA0KICAndGVtcGxhdGVfc3VtbWFyeScgPT4gWw0KICAgICdkZWZhdWx0JyA9PiAkc3VtbWFyeXRlbXBsYXRlLA0KICAgICd0eXBlJyA9PiAnc3RyaW5nJywNCiAgXSwNCiAgJ3N1bW1hcnl0ZW1wbGF0ZScgPT4gWw0KICAgICdkZWZhdWx0JyA9PiAkc3VtbWFyeXRlbXBsYXRlLA0KICAgICd0eXBlJyA9PiAnc3RyaW5nJywNCiAgXSwNCiAgJ2RldGFpbHBhZ2UnID0+IFsNCiAgICAnZGVmYXVsdCcgPT4gJycsDQogICAgJ3R5cGUnID0+ICdzdHJpbmcnLA0KICBdLA0KICAnc3VtbWFyeXBhZ2UnID0+IFsNCiAgICAnZGVmYXVsdCcgPT4gJycsDQogICAgJ3R5cGUnID0+ICdzdHJpbmcnLA0KICBdLA0KICAnZGVidWcnID0+IFsNCiAgICAnZGVmYXVsdCcgPT4gRkFMU0UsDQogICAgJ3R5cGUnID0+ICdib29sJywNCiAgXSwNCiAgJ25vcHJvcHMnID0+IFsNCiAgICAnZGVmYXVsdCcgPT4gRkFMU0UsDQogICAgJ3R5cGUnID0+ICdib29sJywNCiAgXSwNCiAgJ25vZmRzJyA9PiBbDQogICAgJ2RlZmF1bHQnID0+IEZBTFNFLA0KICAgICd0eXBlJyA9PiAnYm9vbCcsDQogIF0NCl07DQoNCiMgc21hbGxpc2ggaGFjayBmb3IgdGFncw0KaWYoIGlzc2V0KCRwYXJhbXNbJ3RhZyddKSApDQp7DQogICRwYXJhbXNbJ3NlYXJjaCddID0gdXJsZGVjb2RlKCRwYXJhbXNbJ3RhZyddKTsNCiAgdW5zZXQoJHBhcmFtc1sndGFnJ10pOw0KfQ0KDQokdmFycyA9IHBhcmFtZXRlcnM6OmZyb21fYmx1ZXByaW50KCRwYXJhbXMsICRibHVlcHJpbnQpOw0KDQojIG5vdyBwYXNzIHRoZW0gaW50byB2YXJzDQpmb3JlYWNoKCR2YXJzIGFzICRrID0+ICR2KXsgJCRrID0gJHY7IH0NCg0KDQojIG5vdyBtYWtlIHNvbWUgY29ycmVjdGlvbnMNCi8vd2hpY2ggdGVtcGxhdGUgdG8gdXNlDQoNCiRzdW1tYXJ5dGVtcGxhdGUgPSAoaXNzZXQoJHRlbXBsYXRlX3N1bW1hcnkpICYmICR0ZW1wbGF0ZV9zdW1tYXJ5ICE9PSAkc3VtbWFyeXRlbXBsYXRlKSA/ICR0ZW1wbGF0ZV9zdW1tYXJ5IDogJHN1bW1hcnl0ZW1wbGF0ZTsNCiRzdW1tYXJ5dGVtcGxhdGUgPSAnc3VtbWFyeV8nIC4gJHN1bW1hcnl0ZW1wbGF0ZTsNCg0KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIyBDaGVjayBwYXJhbXMgRW5kDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQoNCg0KIyBmbGFnIHRvIGRlZmluZSB3aGljaCBraW5kIG9mIHVybHMgdG8gdXNlIG9uIHBhZ2luYXRpb24NCiMgZ2l2ZW4gdGhlIGZhY3QgdGhhdCBzZWFyY2ggcmVzdWx0cyBhbmQgZmlsdGVyZWQgcGFnZXMgY2FuJ3QgdXNlIHByZXR0eSBVUkxTLi4uIHBlcmlvZCEhIQ0KJHByZXR0eV9wYWdpbmF0aW9uID0gVFJVRTsNCg0KIyBzdG9yZSB0aGUgc2VhcmNoIGFuZCBmaWx0ZXIgcGFyYW1ldGVycyBpbnRvIHRoZSBzZXNzaW9uIHNvIHRoZXkgY2FuIGJlIHJldHJpZXZlZCBieSBzbWFydHkgaWYgbmVlZGVkDQojIGluc3RhbmNlbmFtZV9zZWFyY2ggYW5kICMgaW5zdGFuY2VuYW1lX3NlYXJjaF8qLCB3aGVyZSAqIGlzIGEgZmllbGQgYWxpYXMNCiRzZXN2YXJwcmVmaXggICA9ICR0aGlzLT5HZXROYW1lKCkgLiAnXyc7DQokcGFyYW1zMnNlc3Npb24gPSBbDQogICAgICAgICAgICAgICAgICAgICdzaG93YWxsJywNCiAgICAgICAgICAgICAgICAgICAgJ2NhdGVnb3J5JywNCiAgICAgICAgICAgICAgICAgICAgJ2V4Y2x1ZGVfY2F0ZWdvcnknLA0KICAgICAgICAgICAgICAgICAgICAnc3ViY2F0ZWdvcnknLA0KICAgICAgICAgICAgICAgICAgICAnc3RhcnQnLA0KICAgICAgICAgICAgICAgICAgICAnaW5jbHVkZV9pdGVtcycsDQogICAgICAgICAgICAgICAgICAgICdleGNsdWRlX2l0ZW1zJywNCiAgICAgICAgICAgICAgICAgICAgJ2ZpbHRlcl95ZWFyJywNCiAgICAgICAgICAgICAgICAgICAgJ2ZpbHRlcl9tb250aCcNCiAgICAgICAgICAgICAgICAgIF07DQoNCg0KZm9yZWFjaCgkcGFyYW1zIGFzICRrID0+ICR2KQ0Kew0KICBpZiggc3RhcnRzd2l0aCgkaywgJ3NlYXJjaCcpICkNCiAgew0KICAgIFNlc3Npb246OlN0b3JlKCR0aGlzLCAkaywgJHYpOw0KICAgICRwcmV0dHlfcGFnaW5hdGlvbiA9IEZBTFNFOw0KICB9DQogIA0KICBpZiggaW5fYXJyYXkoJGssICRwYXJhbXMyc2Vzc2lvbikgKQ0KICB7DQogICAgU2Vzc2lvbjo6U3RvcmUoJHRoaXMsICRrLCAkdik7DQogICAgJHByZXR0eV9wYWdpbmF0aW9uID0gRkFMU0U7DQogIH0NCn0NCg0KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIyBJbml0IG9iamVjdHMNCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0NCiRpdGVtX3F1ZXJ5ID0gJHRoaXMtPkdldEl0ZW1RdWVyeSgkcGFyYW1zKTsNCg0KRXZlbnRzOjpTZW5kRXZlbnQoDQogICAgICAgICAgICAgICAgICAgICR0aGlzLT5HZXROYW1lKCksDQogICAgICAgICAgICAgICAgICAgICdQcmVSZW5kZXJBY3Rpb24nLA0KICAgICAgICAgICAgICAgICAgICBbJ2FjdGlvbl9uYW1lJyA9PiAkbmFtZSwNCiAgICAgICAgICAgICAgICAgICAgJ3F1ZXJ5X29iamVjdCcgPT4gJiRpdGVtX3F1ZXJ5XQ0KICAgICAgICAgICAgICAgICAgKTsNCg0KIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjDQojIG5lZWRzIHJldmlzaXRpbmcuLi4uDQojIHdlIHNob3VsZCBiZSBkb25lIHdpdGgNCiMgJHBhcmFtcyBhdCB0aGlzIHBvaW50IGluIHRoZSBhY3Rpb24NCiMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIw0KDQokZGV0YWlsX292ZXJyaWRlID0gIWVtcHR5KCRkZXRhaWxwYWdlKTsNCi8vIERldGFpbCBwYWdlIGNoZWNrDQppZigkZGV0YWlsX292ZXJyaWRlKSANCnsNCiAgDQoJaWYoICFpc19udW1lcmljKCRkZXRhaWxwYWdlKSApDQogIHsNCgkJaWYoICFpc3NldCgkaG0pICkNCiAgICB7DQogICAgICAkaG0gPSBjbXNtcygpLT5HZXRIaWVyYXJjaHlNYW5hZ2VyKCk7DQogICAgfQ0KCQkNCgkJJGRldGFpbHBhZ2UgPSAkaG0tPnN1cmVHZXROb2RlQnlBbGlhcygkZGV0YWlscGFnZSktPkdldElkKCk7DQoJfQ0KICANCiAgJF9TRVNTSU9OWyR0aGlzLT5HZXROYW1lKCkgLiAnZHAnXSA9IGFycmF5KCRkZXRhaWxwYWdlID0+ICRyZXR1cm5pZCk7DQp9DQplbHNlDQp7DQogICRkZXRhaWxwYWdlID0gJHRoaXMtPkdldFByZWZlcmVuY2UoJ2RldGFpbHBhZ2UnLCAkcmV0dXJuaWQpOw0KfQ0KDQoNCmlmKCBlbXB0eSgkZGV0YWlscGFnZSkgKSB7ICRkZXRhaWxwYWdlID0gJHJldHVybmlkOyB9DQoNCiMgU3VtbWFyeSBwYWdlIGNoZWNrDQppZiggaXNzZXQoJHN1bW1hcnlwYWdlKSkNCnsNCiAgaWYoICFpc19udW1lcmljKCRzdW1tYXJ5cGFnZSkgKQ0KICB7DQogICAgaWYoICFpc3NldCgkaG0pICkgJGhtID0gY21zbXMoKS0+R2V0SGllcmFyY2h5TWFuYWdlcigpOw0KICAgICAgDQogICAgJHN1bW1hcnlwYWdlX29iaiA9ICRobS0+c3VyZUdldE5vZGVCeUFsaWFzKCRzdW1tYXJ5cGFnZSk7DQogICAgICANCiAgICBpZiggaXNfb2JqZWN0KCRzdW1tYXJ5cGFnZV9vYmopICkNCiAgICB7DQogICAgICAkc3VtbWFyeXBhZ2UgPSAkc3VtbWFyeXBhZ2Vfb2JqLT5HZXRJZCgpOw0KICAgIH0NCiAgfQ0KfQ0KZWxzZQ0Kew0KICAkc3VtbWFyeXBhZ2UgPSAkdGhpcy0+R2V0UHJlZmVyZW5jZSgnc3VtbWFyeXBhZ2UnLCAkcmV0dXJuaWQpOw0KfQ0KDQovLyBXb3JrYXJvdW5kIGZvciBCUiMxMTA3NCwgY2FuIGJlIHJlbW92ZWQgd2hlbiBmaXhlZC4NCmlmKCBlbXB0eSgkc3VtbWFyeXBhZ2UpICkgJHN1bW1hcnlwYWdlID0gJHJldHVybmlkOw0KDQojIGxpZ2h0IG1vZGU/DQokbm9mZHMgPSAkbm9mZHMgfHwgJG5vcHJvcHM7DQoNCiMgaW5saW5lPw0KJGlubGluZSA9ICR0aGlzLT5HZXRQcmVmZXJlbmNlKCdkaXNwbGF5X2lubGluZScsIDApOw0KDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQojIEluaXQgaXRlbXMNCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0NCiRpdGVtX3F1ZXJ5LT5BcHBlbmRUbyhMSVNFUXVlcnk6OlZBUlRZUEVfV0hFUkUsICdBLmFjdGl2ZSA9IDEnKTsNCiRyZXN1bHQgICAgID0gJGl0ZW1fcXVlcnktPkV4ZWN1dGUoVFJVRSk7DQoNCiR0b3RhbGNvdW50ID0gMDsNCiRmaWVsZHMgICAgID0gJG5vZmRzID8gRkFMU0UgOiBbXTsNCiRpdGVtcyAgICAgID0gW107DQoNCndoaWxlKCRyZXN1bHQgJiYgJHJvdyA9ICRyZXN1bHQtPkZldGNoUm93KCkpIA0Kew0KCWlmKCFpc3NldCgkdGhpcy0+X2l0ZW1fY2FjaGVbJHJvd1snaXRlbV9pZCddXSkpIA0KICB7DQoJCSRjYWNoZSA9ICR0aGlzLT5Jbml0aWF0ZUl0ZW0oJGZpZWxkcyk7DQogICAgdHJ5DQogICAgew0KICAgICAgTElTRUl0ZW1PcGVyYXRpb25zOjpMb2FkKCR0aGlzLCAkY2FjaGUsICRyb3csICRub2Zkcyk7DQogICAgfQ0KICAgIGNhdGNoKEV4Y2VwdGlvbiAkZSkNCiAgICB7DQogICAgICANCiAgICAgICR0aGlzLT5BdWRpdCgpOw0KICAgIH0NCiAgICANCiAgICAkdGhpcy0+X2l0ZW1fY2FjaGVbXSA9ICRjYWNoZTsNCgl9DQogIA0KICAkb2JqICAgICAgICAgICAgICAgID0gY2xvbmUgJHRoaXMtPl9pdGVtX2NhY2hlWyRyb3dbJ2l0ZW1faWQnXV07DQogICRsaW5rcGFyYW1zICAgICAgICAgPSBbXTsNCiAgJGxpbmtwYXJhbXNbJ2l0ZW0nXSA9ICRvYmotPmFsaWFzOw0KICANCiAgbGlzZV91dGlsczo6Y2xlYW5fcGFyYW1zKCRwYXJhbXMsIGFycmF5KCdyZXR1cm5pZCcpKTsNCg0KCSRsaW5rcGFyYW1zID0gYXJyYXlfbWVyZ2UoJGxpbmtwYXJhbXMsICRwYXJhbXMpOw0KICANCiAgIyBqdXN0IGEgbWlub3IgaGFjayB0byBhbGxvdyAkcGFyYW1zWydkZXRhaWxwYWdlJ10gdG8gb3ZlcnJpZGUgdGhlIGl0ZW0gc2V0IHVybCB3aGVuIGl0IGV4aXN0cw0KICAjIGlmIHdlIHNldCAkcHJldHR5X3VybCB0byAnJyB0aGUgY3VzdG9tIHVybCB3aWxsIGJlIGlnbm9yZWQgYW5kIG9uZSB3aWxsIGJlIGdlbmVyYXRlZA0KICAkcHJldHR5X3VybCA9ICRkZXRhaWxfb3ZlcnJpZGUgPyAnJyA6ICRwcmV0dHlfdXJsID0gJG9iai0+dXJsOw0KICAkb2JqLT51cmwgICA9ICR0aGlzLT5DcmVhdGVQcmV0dHlMaW5rKA0KICAgICRpZCwNCiAgICAnZGV0YWlsJywNCiAgICAkZGV0YWlscGFnZSwNCiAgICAnJywNCiAgICAkbGlua3BhcmFtcywNCiAgICAnJywNCiAgICBUUlVFLA0KICAgICRpbmxpbmUsDQogICAgJycsDQogICAgRkFMU0UsDQogICAgJHByZXR0eV91cmwNCiAgKTsNCiAgDQogIC8vIGxldHMgZGVhbCB3aXRoIHRhZ3MgaWYgdGhleSBhcmUgYXZhaWxhYmxlDQogIGZvcmVhY2goJG9iai0+ZmllbGRkZWZzIGFzICRvbmUpDQogIHsNCiAgICAkbGlua3BhcmFtcyA9IFtdOw0KICAgIGlmKCAnVGFncycgIT09ICRvbmUtPnR5cGUpIGNvbnRpbnVlOw0KICAgICRvbmUtPlNldFRhZ3NQYXJhbXMoJHRoaXMsICRpZCwgJ2RlZmF1bHQnLCAkc3VtbWFyeXBhZ2UsICRsaW5rcGFyYW1zKTsNCiAgfQ0KICANCgkkaXRlbXNbJHJvd1snaXRlbV9pZCddXSA9ICRvYmo7DQogICR0b3RhbGNvdW50ID0gJGl0ZW1fcXVlcnktPlRvdGFsQ291bnQoKTsNCn0NCg0KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIyBTbWFydHkgcHJvY2Vzc2luZw0KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KDQokcGFnZW51bWJlciA9ICRpdGVtX3F1ZXJ5LT5HZXRQYWdlTnVtYmVyKCk7DQokcGFnZWNvdW50ICA9ICRpdGVtX3F1ZXJ5LT5HZXRQYWdlQ291bnQoKTsNCg0KJHNtYXJ0eV92YXJzID0gW107DQoNCiRzbWFydHlfdmFyc1sndG90YWxjb3VudCddID0gJHRvdGFsY291bnQ7DQoNCi8vIEFzc2lnbiBzb21lIHBhZ2luYXRpb24gdmFyaWFibGVzIHRvIHNtYXJ0eQ0KaWYoJHBhZ2VudW1iZXIgPT09IDEpDQp7DQogICRzbWFydHlfdmFyc1sncHJldnBhZ2UnXSAgPSAkdGhpcy0+TW9kTGFuZygncHJldnBhZ2UnKTsNCiAgJHNtYXJ0eV92YXJzWydmaXJzdHBhZ2UnXSA9ICR0aGlzLT5Nb2RMYW5nKCdmaXJzdHBhZ2UnKTsNCn0gDQplbHNlIA0Kew0KCSRwYXJhbXNbJ3BhZ2VudW1iZXInXSA9ICRwYWdlbnVtYmVyLTE7DQogIA0KICBpZigkcHJldHR5X3BhZ2luYXRpb24pDQogIHsNCiAgICAkc21hcnR5X3ZhcnNbJ3ByZXZwYWdlJ10gID0gJHRoaXMtPk1vZExhbmcoJ3ByZXZwYWdlJyk7DQogICAgJHNtYXJ0eV92YXJzWydwcmV2dXJsJ10gICA9ICR0aGlzLT5DcmVhdGVQcmV0dHlMaW5rKCRpZCwgJ2RlZmF1bHQnLCAkc3VtbWFyeXBhZ2UsJycsICRwYXJhbXMsICcnLCB0cnVlLCAkaW5saW5lKTsNCiAgfQ0KICBlbHNlDQogIHsNCiAgICAkc21hcnR5X3ZhcnNbJ3ByZXZwYWdlJ10gID0gJHRoaXMtPkNyZWF0ZUxpbmsoJGlkLCAnZGVmYXVsdCcsICRzdW1tYXJ5cGFnZSwgJHRoaXMtPk1vZExhbmcoJ3ByZXZwYWdlJyksJHBhcmFtcywgJycsIGZhbHNlLCAkaW5saW5lKTsNCiAgICAkc21hcnR5X3ZhcnNbJ3ByZXZ1cmwnXSAgID0gJHRoaXMtPkNyZWF0ZUxpbmsoJGlkLCAnZGVmYXVsdCcsICRzdW1tYXJ5cGFnZSwnJywgJHBhcmFtcywgJycsIHRydWUsICRpbmxpbmUpOw0KICB9ICANCgkNCiAgJHBhcmFtc1sncGFnZW51bWJlciddID0gMTsNCiAgDQogIGlmKCRwcmV0dHlfcGFnaW5hdGlvbikNCiAgew0KICAgICRzbWFydHlfdmFyc1snZmlyc3RwYWdlJ10gID0gJHRoaXMtPkNyZWF0ZVByZXR0eUxpbmsoJGlkLCAnZGVmYXVsdCcsICRzdW1tYXJ5cGFnZSwgJHRoaXMtPk1vZExhbmcoJ2ZpcnN0cGFnZScpLCRwYXJhbXMsICcnLCBmYWxzZSwgJGlubGluZSk7DQogICAgJHNtYXJ0eV92YXJzWydmaXJzdHVybCddICAgPSAkdGhpcy0+Q3JlYXRlUHJldHR5TGluaygkaWQsICdkZWZhdWx0JywgJHN1bW1hcnlwYWdlLCcnLCAkcGFyYW1zLCAnJywgdHJ1ZSwgJGlubGluZSk7DQogIH0NCiAgZWxzZQ0KICB7DQogICAgJHNtYXJ0eV92YXJzWydmaXJzdHBhZ2UnXSAgPSAkdGhpcy0+Q3JlYXRlTGluaygkaWQsICdkZWZhdWx0JywgJHN1bW1hcnlwYWdlLCAkdGhpcy0+TW9kTGFuZygnZmlyc3RwYWdlJyksJHBhcmFtcywgJycsIGZhbHNlLCAkaW5saW5lKTsNCiAgICAkc21hcnR5X3ZhcnNbJ2ZpcnN0dXJsJ10gICA9ICR0aGlzLT5DcmVhdGVMaW5rKCRpZCwgJ2RlZmF1bHQnLCAkc3VtbWFyeXBhZ2UsJycsICRwYXJhbXMsICcnLCB0cnVlLCAkaW5saW5lKTsNCiAgfQ0KfQ0KDQppZigkcGFnZW51bWJlciA+PSAkcGFnZWNvdW50KSANCnsNCiAgJHNtYXJ0eV92YXJzWyduZXh0cGFnZSddICA9ICR0aGlzLT5Nb2RMYW5nKCduZXh0cGFnZScpOw0KICAkc21hcnR5X3ZhcnNbJ2xhc3RwYWdlJ10gID0gJHRoaXMtPk1vZExhbmcoJ2xhc3RwYWdlJyk7DQp9DQplbHNlDQp7DQoJJHBhcmFtc1sncGFnZW51bWJlciddID0gJHBhZ2VudW1iZXIrMTsNCiAgDQogIGlmKCRwcmV0dHlfcGFnaW5hdGlvbikNCiAgew0KICAgICRzbWFydHlfdmFyc1snbmV4dHBhZ2UnXSA9ICR0aGlzLT5DcmVhdGVQcmV0dHlMaW5rKCRpZCwgJ2RlZmF1bHQnLCAkc3VtbWFyeXBhZ2UsICR0aGlzLT5Nb2RMYW5nKCduZXh0cGFnZScpLCAkcGFyYW1zLCAnJywgZmFsc2UsICRpbmxpbmUpOw0KICAgICRzbWFydHlfdmFyc1snbmV4dHVybCddICA9ICR0aGlzLT5DcmVhdGVQcmV0dHlMaW5rKCRpZCwgJ2RlZmF1bHQnLCAkc3VtbWFyeXBhZ2UsICcnLCAkcGFyYW1zLCAnJywgdHJ1ZSwgJGlubGluZSk7DQogIH0NCiAgZWxzZQ0KICB7DQogICAgJHNtYXJ0eV92YXJzWyduZXh0cGFnZSddID0gJHRoaXMtPkNyZWF0ZUxpbmsoJGlkLCAnZGVmYXVsdCcsICRzdW1tYXJ5cGFnZSwgJHRoaXMtPk1vZExhbmcoJ25leHRwYWdlJyksICRwYXJhbXMsICcnLCBmYWxzZSwgJGlubGluZSk7DQogICAgJHNtYXJ0eV92YXJzWyduZXh0dXJsJ10gID0gJHRoaXMtPkNyZWF0ZUxpbmsoJGlkLCAnZGVmYXVsdCcsICRzdW1tYXJ5cGFnZSwgJycsICRwYXJhbXMsICcnLCB0cnVlLCAkaW5saW5lKTsNCiAgfQ0KICANCgkkcGFyYW1zWydwYWdlbnVtYmVyJ10gPSAkcGFnZWNvdW50Ow0KDQogIGlmKCRwcmV0dHlfcGFnaW5hdGlvbikNCiAgew0KICAgICRzbWFydHlfdmFyc1snbGFzdHBhZ2UnXSA9ICR0aGlzLT5DcmVhdGVQcmV0dHlMaW5rKCRpZCwgJ2RlZmF1bHQnLCAkc3VtbWFyeXBhZ2UsICR0aGlzLT5Nb2RMYW5nKCdsYXN0cGFnZScpLCAkcGFyYW1zLCAnJywgZmFsc2UsICRpbmxpbmUpOw0KICAgICRzbWFydHlfdmFyc1snbGFzdHVybCddICA9ICR0aGlzLT5DcmVhdGVQcmV0dHlMaW5rKCRpZCwgJ2RlZmF1bHQnLCAkc3VtbWFyeXBhZ2UsICcnLCAkcGFyYW1zLCAnJywgdHJ1ZSwgJGlubGluZSk7DQogIH0NCiAgZWxzZQ0KICB7DQogICAgJHNtYXJ0eV92YXJzWydsYXN0cGFnZSddID0gJHRoaXMtPkNyZWF0ZUxpbmsoJGlkLCAnZGVmYXVsdCcsICRzdW1tYXJ5cGFnZSwgJHRoaXMtPk1vZExhbmcoJ2xhc3RwYWdlJyksICRwYXJhbXMsICcnLCBmYWxzZSwgJGlubGluZSk7DQogICAgJHNtYXJ0eV92YXJzWydsYXN0dXJsJ10gID0gJHRoaXMtPkNyZWF0ZUxpbmsoJGlkLCAnZGVmYXVsdCcsICRzdW1tYXJ5cGFnZSwgJycsICRwYXJhbXMsICcnLCB0cnVlLCAkaW5saW5lKTsNCiAgfSAgIA0KfQ0KDQokc21hcnR5X3ZhcnNbJ3BhZ2VudW1iZXInXSA9ICRwYWdlbnVtYmVyOw0KJHNtYXJ0eV92YXJzWydwYWdlY291bnQnXSAgPSAkcGFnZWNvdW50Ow0KDQokcGFnZWxpbmtzID0gW107DQoNCndoaWxlKCRwYWdlY291bnQpDQp7DQogICRvYmogICAgICAgICAgICAgICAgICA9IG5ldyBzdGRDbGFzcygpOw0KICAkcGFyYW1zWydwYWdlbnVtYmVyJ10gPSAkcGFnZWNvdW50Ow0KICANCiAgaWYoJHByZXR0eV9wYWdpbmF0aW9uKQ0KICB7ICAgDQogICAgJG9iai0+bGluayA9ICR0aGlzLT5DcmVhdGVQcmV0dHlMaW5rKCRpZCwgJ2RlZmF1bHQnLCAkc3VtbWFyeXBhZ2UsICRwYWdlY291bnQsICRwYXJhbXMsICcnLCBmYWxzZSwgJGlubGluZSk7DQogICAgJG9iai0+dXJsID0gJHRoaXMtPkNyZWF0ZVByZXR0eUxpbmsoJGlkLCAnZGVmYXVsdCcsICRzdW1tYXJ5cGFnZSwgJycsICRwYXJhbXMsICcnLCB0cnVlLCAkaW5saW5lKTsNCiAgfQ0KICBlbHNlDQogIHsgICANCgkgICRvYmotPmxpbmsgPSAkdGhpcy0+Q3JlYXRlTGluaygkaWQsICdkZWZhdWx0JywgJHN1bW1hcnlwYWdlLCAkcGFnZWNvdW50LCAkcGFyYW1zLCAnJywgZmFsc2UsICRpbmxpbmUpOw0KCSAgJG9iai0+dXJsID0gJHRoaXMtPkNyZWF0ZUxpbmsoJGlkLCAnZGVmYXVsdCcsICRzdW1tYXJ5cGFnZSwgJycsICRwYXJhbXMsICcnLCB0cnVlLCAkaW5saW5lKTsNCiAgfQ0KCQ0KCSRwYWdlbGlua3NbJHBhZ2Vjb3VudF0gPSAkb2JqOw0KCSRwYWdlY291bnQtLTsNCn0NCg0KJHBhZ2VsaW5rcyA9IGFycmF5X3JldmVyc2UoJHBhZ2VsaW5rcywgdHJ1ZSk7DQoNCiRzbWFydHlfdmFyc1sncGFnZWxpbmtzJ10gICAgICAgICAgICAgICAgID0gJHBhZ2VsaW5rczsNCiRzbWFydHlfdmFyc1snaXRlbXMnXSAgICAgICAgICAgICAgICAgICAgID0gJGl0ZW1zOw0KJHNtYXJ0eV92YXJzWyR0aGlzLT5HZXROYW1lKCkgLiAnX2l0ZW1zJ10gPSAkaXRlbXM7IC8vIDwtIEFsaWFzIGZvciAkaXRlbXMNCiRzbWFydHlfdmFyc1snTElTRV9hY3Rpb24nXSAgICAgICAgICAgICAgID0gJ2RlZmF1bHQnOw0KDQokc21hcnR5LT5hc3NpZ24oJHNtYXJ0eV92YXJzKTsNCg0KZWNobyAkdGhpcy0+UHJvY2Vzc1RlbXBsYXRlRnJvbURhdGFiYXNlKCRzdW1tYXJ5dGVtcGxhdGUpOw0KDQppZigkZGVidWcpIA0KCSRzbWFydHktPmRpc3BsYXkoJ3N0cmluZzo8cHJlPnskaXRlbXN8QHByaW50X3J9PC9wcmU+Jyk7DQo/Pg==]]></data>
	</file>
	<file>
	  <filename>/framework/action.defaultadmin.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBMSVNFIC0gTGlzdCBJdCBTcGVjaWFsIEVkaXRpb24KIyBWZXJzaW9uIDEuMgojIEEgZm9yayBvZiBMaXN0STIKIyBtYWludGFpbmVkIGJ5IEZlcm5hbmRvIE1vcmdhZG8gQUtBIEpvIE1vcmcKIyBzaW5jZSAyMDE1CiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBPcmlnaW5hbCBBdXRob3I6IEJlbiBNYWxlbiwgPGJlbkBjb25jZXB0ZmFjdG9yeS5jb20uYXU+CiMgQ28tTWFpbnRhaW5lcjogU2ltb24gUmFkZm9yZCwgPHNpbW9uQGNvbmNlcHRmYWN0b3J5LmNvbS5hdT4KIyBXZWI6IHd3dy5jb25jZXB0ZmFjdG9yeS5jb20uYXUKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojCiMgTWFpbnRhaW5lciBzaW5jZSAyMDExIHVwIHRvIDIwMTQ6IEpvbmF0aGFuIFNjaG1pZCwgPGhpQGpvbmF0aGFuc2NobWlkLmRlPgojIFdlYjogd3d3LmpvbmF0aGFuc2NobWlkLmRlCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIwojIFNvbWUgd2Fja29zIHN0YXJ0ZWQgZGVzdHJveWluZyBzdHVmZiBzaW5jZSAyMDEyIGFuZCBzdG9wcGVkIGF0IDIwMTQ6CiMKIyBUYXBpbyBMw7Z5dHR5LCA8dGFwc2FAb3JhbmdlLW1lZGlhLmZpPgojIFdlYjogd3d3Lm9yYW5nZS1tZWRpYS5maQojCiMgR29yYW4gSWxpYywgPHVuaXF1M2VAZ21haWwuY29tPgojIFdlYjogd3d3LmljaC1tYWNoLWRhcy5hdAojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBMSVNFIGlzIGEgQ01TIE1hZGUgU2ltcGxlIG1vZHVsZSB0aGF0IGVuYWJsZXMgdGhlIHdlYiBkZXZlbG9wZXIgdG8gY3JlYXRlCiMgbXVsdGlwbGUgbGlzdHMgdGhyb3VnaG91dCBhIHNpdGUuIEl0IGNhbiBiZSBkdXBsaWNhdGVkIGFuZCBnaXZlbiBmcmllbmRseQojIG5hbWVzIGZvciBlYXNpZXIgY2xpZW50IG1haW50ZW5hbmNlLgojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgQkVHSU5fTElDRU5TRQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIExJU0UKIyBMSVNFIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgTElTRSBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBFTkRfTElDRU5TRQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQppZiggIWRlZmluZWQoJ0NNU19WRVJTSU9OJykgKSBleGl0OwoKaWYgKCEkdGhpcy0+Q2hlY2tQZXJtaXNzaW9uKCR0aGlzLT5fR2V0TW9kdWxlQWxpYXMoKSAuICdfbW9kaWZ5X2l0ZW0nKSkgcmV0dXJuOwoKLy8gR2V0IE1vZGUKJGlzX2xpc3QgICA9IChib29sKSggKCAoaW50KSR0aGlzLT5fbW9kZSApID09IExJU0U6Ok1PREVfTElTVCApOwokaXNfbG9jYWwgID0gKGJvb2wpKCAoIChpbnQpJHRoaXMtPl9tb2RlICkgPT0gTElTRTo6TU9ERV9MT0NBTCApOwokaXNfZ2xvYmFsID0gKGJvb2wpKCAoIChpbnQpJHRoaXMtPl9tb2RlICkgPT0gTElTRTo6TU9ERV9HTE9CQUwgKTsKCiRtb2RlcyA9IFsKICAwID0+ICR0aGlzLT5Nb2RMYW5nKCdtb2RlX2xpc3QnKSwKICAxID0+ICR0aGlzLT5Nb2RMYW5nKCdtb2RlX2xvY2FsJyksCiAgMiA9PiAkdGhpcy0+TW9kTGFuZygnbW9kZV9nbG9iYWwnKQpdOwoKLy8gR2V0IHByZWZzCiRzZXBhcmF0ZV9zZXR0aW5ncyA9ICR0aGlzLT5HZXRQcmVmZXJlbmNlKCdzZXBhcmF0ZV9zZXR0aW5ncycsIEZBTFNFKTsKJGxvY2FsX21vZGVfaW5zdGFuY2UgPSAkdGhpcy0+R2V0UHJlZmVyZW5jZSgnbG9jYWxfbW9kZV9pbnN0YW5jZScsICcnKTsKJHNob3dfY2F0ZWdvcmllcyAgID0gTElTRUZpZWxkZGVmT3BlcmF0aW9uczo6VGVzdEV4aXN0ZW5jZUJ5VHlwZSgkdGhpcywgJ0NhdGVnb3JpZXMnKSAmJiAkaXNfbGlzdDsKJHNob3dfbG9jYWwgPSBGQUxTRTsKCmlmKCAhZW1wdHkoJGxvY2FsX21vZGVfaW5zdGFuY2UpICkKewogICRsbWlfbW9kID0gXGNtc191dGlsczo6Z2V0X21vZHVsZSgkbG9jYWxfbW9kZV9pbnN0YW5jZSk7CiAgJHNob3dfbG9jYWwgPSBpc19vYmplY3QoJGxtaV9tb2QpOwp9CgppZiggaXNzZXQoJHBhcmFtc1snbWVzc2FnZSddKSApIAp7CgllY2hvICR0aGlzLT5TaG93TWVzc2FnZSgkdGhpcy0+TW9kTGFuZygkcGFyYW1zWydtZXNzYWdlJ10pKTsKfQoKaWYoIGlzc2V0KCRwYXJhbXNbJ2Vycm9ycyddKSAmJiBjb3VudCgkcGFyYW1zWydlcnJvcnMnXSkgKSAKewoJZWNobyAkdGhpcy0+U2hvd0Vycm9ycygkcGFyYW1zWydlcnJvcnMnXSk7Cn0KCmlmKCRpc19nbG9iYWwpCnsKICBpbmNsdWRlIGRpcm5hbWUoX19GSUxFX18pIC4gJy9mdW5jdGlvbi5hZG1pbl9nbG9iYWwucGhwJzsKfQplbHNlCnsKICBpZiggIWVtcHR5KCRwYXJhbXNbJ2FjdGl2ZV90YWInXSkgKQogIHsKICAgICR0YWIgPSAkcGFyYW1zWydhY3RpdmVfdGFiJ107CiAgfQogIGVsc2UKICB7CiAgICBpZigkaXNfbGlzdCkKICAgIHsKICAgICAgJHRhYiA9ICdpdGVtdGFiJzsKICAgIH0KICAgIGVsc2UKICAgIHsKICAgICAgJHRhYiA9ICdmaWVsZGRlZnRhYic7CiAgICB9CiAgfQogIAogICMgc29tZXRoaW5nIG9kZCB3aXRoIHByZWZlcmVuY2VzIGluIDIuMCA/Pz8gdGhpcyBpcyBhIHdvcmthcm91bmQKICAkcHJlZiA9ICR0aGlzLT5HZXRQcmVmZXJlbmNlKCdpdGVtX3BsdXJhbCcsICcnKTsKICAkaXRlbV9wbHVyYWxfc3RyaW5nID0gZW1wdHkoJHByZWYpID8gJHRoaXMtPk1vZExhbmcoJ2l0ZW1zJykgOiAkcHJlZjsKICAkY3VycmVudF9hY3Rpb24gPSAnZGVmYXVsdGFkbWluJzsKICAKICBlY2hvICR0aGlzLT5TdGFydFRhYkhlYWRlcnMoKTsKICAKICBpZigkaXNfbGlzdCkKICB7CiAgICBlY2hvICR0aGlzLT5TZXRUYWJIZWFkZXIoJ2l0ZW10YWInLCAkaXRlbV9wbHVyYWxfc3RyaW5nLCAoJHRhYiA9PSAnaXRlbXRhYicpKTsKICB9CiAgCiAgaWYoJGlzX2dsb2JhbCkKICB7CiAgICBlY2hvICR0aGlzLT5TZXRUYWJIZWFkZXIoJ2dsb2JhbHRhYicsICR0aGlzLT5Nb2RMYW5nKCdnbG9iYWwnKSwgKCR0YWIgPT0gJ2dsb2JhbHRhYicpKTsKICB9CiAgCiAgaWYoJHNob3dfbG9jYWwpCiAgewogICAgZWNobyAkdGhpcy0+U2V0VGFiSGVhZGVyKCdsb2NhbHRhYicsICR0aGlzLT5Nb2RMYW5nKCdsb2NhbF9zZXR0aW5ncycpLCAoJHRhYiA9PSAnbG9jYWx0YWInKSk7CiAgfQogIAogIGlmICgkdGhpcy0+Q2hlY2tQZXJtaXNzaW9uKCR0aGlzLT5fR2V0TW9kdWxlQWxpYXMoKSAuICdfbW9kaWZ5X2NhdGVnb3J5JykgJiYgJHNob3dfY2F0ZWdvcmllcykKICB7CiAgICBlY2hvICR0aGlzLT5TZXRUYWJIZWFkZXIoJ2NhdGVnb3J5dGFiJywgJHRoaXMtPk1vZExhbmcoJ2NhdGVnb3JpZXMnKSwgKCR0YWIgPT0gJ2NhdGVnb3J5dGFiJykpOwogIH0KICAKICBpZighJHNlcGFyYXRlX3NldHRpbmdzKQogIHsKICAgIGlmKCR0aGlzLT5DaGVja1Blcm1pc3Npb24oJHRoaXMtPl9HZXRNb2R1bGVBbGlhcygpIC4gJ19tb2RpZnlfb3B0aW9uJykpCiAgICB7CiAgICAgIGVjaG8gJHRoaXMtPlNldFRhYkhlYWRlcignZmllbGRkZWZ0YWInLCAkdGhpcy0+TW9kTGFuZygnZmllbGRkZWZzJyksICgkdGFiID09ICdmaWVsZGRlZnRhYicpKTsKICAgICAgCiAgICAgIGlmKCRpc19saXN0KQogICAgICB7CiAgICAgICAgZWNobyAkdGhpcy0+U2V0VGFiSGVhZGVyKCd0ZW1wbGF0ZXRhYicsICR0aGlzLT5Nb2RMYW5nKCd0ZW1wbGF0ZXMnKSwgKCR0YWIgPT0gJ3RlbXBsYXRldGFiJykpOwogICAgICB9CiAgICAgIAogICAgICBlY2hvICR0aGlzLT5TZXRUYWJIZWFkZXIoJ29wdGlvbnRhYicsICR0aGlzLT5Nb2RMYW5nKCdvcHRpb25zJyksICgkdGFiID09ICdvcHRpb250YWInKSk7CiAgICB9CiAgfQogIAogIGVjaG8gJHRoaXMtPkVuZFRhYkhlYWRlcnMoKTsKICBlY2hvICR0aGlzLT5TdGFydFRhYkNvbnRlbnQoKTsKICAKICBpZigkaXNfbGlzdCkKICB7CiAgICBlY2hvICR0aGlzLT5TdGFydFRhYignaXRlbXRhYicsICRwYXJhbXMpOwogICAgaW5jbHVkZSBkaXJuYW1lKF9fRklMRV9fKSAuICcvZnVuY3Rpb24uYWRtaW5faXRlbXRhYi5waHAnOwogICAgZWNobyAkdGhpcy0+RW5kVGFiKCk7CiAgfQogIAogIGlmICgkdGhpcy0+Q2hlY2tQZXJtaXNzaW9uKCR0aGlzLT5fR2V0TW9kdWxlQWxpYXMoKSAuICdfbW9kaWZ5X2NhdGVnb3J5JykgJiYgJHNob3dfY2F0ZWdvcmllcykKICB7CiAgICBlY2hvICR0aGlzLT5TdGFydFRhYignY2F0ZWdvcnl0YWInLCAkcGFyYW1zKTsKICAgIGluY2x1ZGUgZGlybmFtZShfX0ZJTEVfXykgLiAnL2Z1bmN0aW9uLmFkbWluX2NhdGVnb3J5dGFiLnBocCc7CiAgICBlY2hvICR0aGlzLT5FbmRUYWIoKTsKICB9CiAgCiAgaWYoISRzZXBhcmF0ZV9zZXR0aW5ncykKICB7CiAgCiAgICBpZigkc2hvd19sb2NhbCkKICAgIHsKICAgICAgZWNobyAkdGhpcy0+U3RhcnRUYWIoJ2xvY2FsdGFiJywgJHBhcmFtcyk7CiAgICAgIGluY2x1ZGUgZGlybmFtZShfX0ZJTEVfXykgLiAnL2Z1bmN0aW9uLmFkbWluX2xvY2FsX3RhYi5waHAnOwogICAgICBlY2hvICR0aGlzLT5FbmRUYWIoKTsKICAgIH0KICAgIAogICAgaWYgKCR0aGlzLT5DaGVja1Blcm1pc3Npb24oJHRoaXMtPl9HZXRNb2R1bGVBbGlhcygpIC4gJ19tb2RpZnlfb3B0aW9uJykpCiAgICB7CiAgICAgIGVjaG8gJHRoaXMtPlN0YXJ0VGFiKCdmaWVsZGRlZnRhYicsICRwYXJhbXMpOwogICAgICBpbmNsdWRlIGRpcm5hbWUoX19GSUxFX18pIC4gJy9mdW5jdGlvbi5hZG1pbl9maWVsZGRlZnRhYi5waHAnOwogICAgICBlY2hvICR0aGlzLT5FbmRUYWIoKTsKICAgICAgCiAgICAgIGlmKCRpc19saXN0KQogICAgICB7CiAgICAgICAgZWNobyAkdGhpcy0+U3RhcnRUYWIoJ3RlbXBsYXRldGFiJywgJHBhcmFtcyk7CiAgICAgICAgaW5jbHVkZSBkaXJuYW1lKF9fRklMRV9fKSAuICcvZnVuY3Rpb24uYWRtaW5fdGVtcGxhdGV0YWIucGhwJzsKICAgICAgICBlY2hvICR0aGlzLT5FbmRUYWIoKTsKICAgICAgfQogICAgfQogICAgCiAgICBlY2hvICR0aGlzLT5TdGFydFRhYignb3B0aW9udGFiJywgJHBhcmFtcyk7CiAgICBpbmNsdWRlIGRpcm5hbWUoX19GSUxFX18pIC4gJy9mdW5jdGlvbi5hZG1pbl9vcHRpb250YWIucGhwJzsKICAgIGVjaG8gJHRoaXMtPkVuZFRhYigpOwogICAgCiAgfQogIAogIGVjaG8gJHRoaXMtPkVuZFRhYkNvbnRlbnQoKTsKfQoKPz4=]]></data>
	</file>
	<file>
	  <filename>/framework/action.detail.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHANCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQojIExJU0UgLSBMaXN0IEl0IFNwZWNpYWwgRWRpdGlvbg0KIyBWZXJzaW9uIDEuMg0KIyBBIGZvcmsgb2YgTGlzdEkyDQojIG1haW50YWluZWQgYnkgRmVybmFuZG8gTW9yZ2FkbyBBS0EgSm8gTW9yZw0KIyBzaW5jZSAyMDE1DQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIw0KIyBPcmlnaW5hbCBBdXRob3I6IEJlbiBNYWxlbiwgPGJlbkBjb25jZXB0ZmFjdG9yeS5jb20uYXU+DQojIENvLU1haW50YWluZXI6IFNpbW9uIFJhZGZvcmQsIDxzaW1vbkBjb25jZXB0ZmFjdG9yeS5jb20uYXU+DQojIFdlYjogd3d3LmNvbmNlcHRmYWN0b3J5LmNvbS5hdQ0KIw0KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCiMNCiMgTWFpbnRhaW5lciBzaW5jZSAyMDExIHVwIHRvIDIwMTQ6IEpvbmF0aGFuIFNjaG1pZCwgPGhpQGpvbmF0aGFuc2NobWlkLmRlPg0KIyBXZWI6IHd3dy5qb25hdGhhbnNjaG1pZC5kZQ0KIw0KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCiMNCiMgU29tZSB3YWNrb3Mgc3RhcnRlZCBkZXN0cm95aW5nIHN0dWZmIHNpbmNlIDIwMTIgYW5kIHN0b3BwZWQgYXQgMjAxNDoNCiMNCiMgVGFwaW8gTMO2eXR0eSwgPHRhcHNhQG9yYW5nZS1tZWRpYS5maT4NCiMgV2ViOiB3d3cub3JhbmdlLW1lZGlhLmZpDQojDQojIEdvcmFuIElsaWMsIDx1bmlxdTNlQGdtYWlsLmNvbT4NCiMgV2ViOiB3d3cuaWNoLW1hY2gtZGFzLmF0DQojDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIw0KIyBMSVNFIGlzIGEgQ01TIE1hZGUgU2ltcGxlIG1vZHVsZSB0aGF0IGVuYWJsZXMgdGhlIHdlYiBkZXZlbG9wZXIgdG8gY3JlYXRlDQojIG11bHRpcGxlIGxpc3RzIHRocm91Z2hvdXQgYSBzaXRlLiBJdCBjYW4gYmUgZHVwbGljYXRlZCBhbmQgZ2l2ZW4gZnJpZW5kbHkNCiMgbmFtZXMgZm9yIGVhc2llciBjbGllbnQgbWFpbnRlbmFuY2UuDQojDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIyBCRUdJTl9MSUNFTlNFDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIyBUaGlzIGZpbGUgaXMgcGFydCBvZiBMSVNFDQojIExJU0UgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5DQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5DQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yDQojIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uDQojDQojIExJU0UgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLA0KIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZg0KIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlDQojIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuDQojIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlDQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlDQojIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcgVVNBDQojIE9yIHJlYWQgaXQgb25saW5lOiBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwNCiMNCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQojIEVORF9MSUNFTlNFDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KaWYoICFkZWZpbmVkKCdDTVNfVkVSU0lPTicpICkgZXhpdDsNCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0NCiMgQ2hlY2sgcGFyYW1zDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQokcHJldmlldyA9IEZBTFNFOw0KDQppZihpc3NldCgkX1NFU1NJT05bJ2xpc2VfcHJldmlldyddKSAmJiBpc3NldCgkcGFyYW1zWydwcmV2aWV3J10pKQ0Kew0KICAvLyBzZWUgaWYgb3VyIGRhdGEgbWF0Y2hlcy4NCiAgaWYobWQ1KHNlcmlhbGl6ZSgkX1NFU1NJT05bJ2xpc2VfcHJldmlldyddKSkgPT0gJHBhcmFtc1sncHJldmlldyddKQ0KICB7DQogICAgJGZuYW1lID0gVE1QX0NBQ0hFX0xPQ0FUSU9OIC4gJy8nIC4gJF9TRVNTSU9OWydsaXNlX3ByZXZpZXcnXVsnZm5hbWUnXTsNCiAgICANCiAgICBpZihmaWxlX2V4aXN0cygkZm5hbWUpICYmIChtZDVfZmlsZSgkZm5hbWUpID09ICRfU0VTU0lPTlsnbGlzZV9wcmV2aWV3J11bJ2NoZWNrc3VtJ10pKQ0KICAgIHsNCiAgICAgICMgZm9yY2UgbG9hZGluZyBvZiB0aGUgZmllbGRkZWYgY2xhc3Nlcywgb3RoZXJ3aXNlIHVuc2VyaWFsaXphdGlvbiB3aWxsIGZhaWwNCiAgICAgIFxMSVNFXGFwaTo6TG9hZEZpZWxkRGVmaW5pdGlvbnMoKTsNCiAgICAgICRkYXRhID0gdW5zZXJpYWxpemUoZmlsZV9nZXRfY29udGVudHMoJGZuYW1lKSk7DQogICAgICANCiAgICAgIGlmKGlzX2FycmF5KCRkYXRhKSkNCiAgICAgIHsNCiAgICAgICAgJHBhcmFtcyAgICAgICAgICAgICAgICAgICAgPSBhcnJheV9tZXJnZSgkcGFyYW1zLCAkZGF0YSk7DQogICAgICAgICRwYXJhbXNbJ2l0ZW0nXSAgICAgICAgICAgID0gJHBhcmFtc1snaXRlbV9pZCddOw0KICAgICAgICAkYXJyYXkgICAgICAgICAgICAgICAgICAgICA9IGV4cGxvZGUoJ18nLCAkcGFyYW1zWydkZXRhaWx0ZW1wbGF0ZSddLCAyKTsNCiAgICAgICAgJHBhcmFtc1sndGVtcGxhdGVfZGV0YWlsJ10gPSBlbmQoJGFycmF5KTsNCiAgICAgICAgJHByZXZpZXdfb2JqICAgICAgICAgICAgICAgPSB1bnNlcmlhbGl6ZShiYXNlNjRfZGVjb2RlKCRwYXJhbXNbJ2l0ZW1fb2JqJ10pICk7DQogICAgICAgICRjb21waWxlX2lkICAgICAgICAgICAgICAgID0gJ2xpc2VfcHJldmlld18nIC4gdGltZSgpOw0KICAgICAgICAkcHJldmlldyAgICAgICAgICAgICAgICAgICA9IFRSVUU7DQogICAgICB9DQogICAgfQ0KICB9DQp9DQplbHNlaWYoIWlzc2V0KCRwYXJhbXNbJ2l0ZW0nXSkpDQp7DQogIGRpZSgnbWlzc2luZyBwYXJhbWV0ZXIsIHRoaXMgc2hvdWxkIG5vdCBoYXBwZW4nKTsNCn0NCg0KJHRlbXBsYXRlID0gJ2RldGFpbF8nIC4gJHRoaXMtPkdldFByZWZlcmVuY2UoJHRoaXMtPl9HZXRNb2R1bGVBbGlhcygpIC4gJ19kZWZhdWx0X2RldGFpbF90ZW1wbGF0ZScpOw0KaWYgKGlzc2V0KCRwYXJhbXNbJ3RlbXBsYXRlX2RldGFpbCddKSkgew0KDQoJJHRlbXBsYXRlID0gJ2RldGFpbF8nIC4gJHBhcmFtc1sndGVtcGxhdGVfZGV0YWlsJ107DQp9DQplbHNlaWYgKGlzc2V0KCRwYXJhbXNbJ2RldGFpbHRlbXBsYXRlJ10pKSB7DQoNCgkkdGVtcGxhdGUgPSAnZGV0YWlsXycgLiAkcGFyYW1zWydkZXRhaWx0ZW1wbGF0ZSddOw0KfQ0KDQppZihpc3NldCgkcGFyYW1zWydpdGVtJ10pKSB7DQoJY21zX3V0aWxzOjpzZXRfYXBwX2RhdGEoJ2xpc2VfaXRlbScsICRwYXJhbXNbJ2l0ZW0nXSk7DQp9CQ0KDQovLyBTdW1tYXJ5IHBhZ2UgY2hlY2sNCiRzdW1tYXJ5cGFnZSA9ICR0aGlzLT5HZXRQcmVmZXJlbmNlKCdzdW1tYXJ5cGFnZScsICRyZXR1cm5pZCk7DQoNCmlmKCBpc3NldCgkcGFyYW1zWydzdW1tYXJ5cGFnZSddKSAmJiBpc19udW1lcmljKCRwYXJhbXNbJ3N1bW1hcnlwYWdlJ10pICkNCnsNCiAgJHN1bW1hcnlwYWdlID0gJHBhcmFtc1snc3VtbWFyeXBhZ2UnXTsNCn0NCmVsc2UNCnsNCiAgJHN1bW1hcnlwYWdlID0gXGNtc191dGlsczo6Z2V0X2N1cnJlbnRfcGFnZWlkKCk7DQogIA0KICBpZiggJHN1bW1hcnlwYWdlIDwgMSApDQogIHsNCiAgICAkc3VtbWFyeXBhZ2UgPSBcQ21zQXBwOjpnZXRfaW5zdGFuY2UoKS0+R2V0Q29udGVudE9wZXJhdGlvbnMoKS0+R2V0RGVmYXVsdENvbnRlbnQoKTsNCiAgfQ0KfQ0KDQovLyByZXR1cm4gcGFnZSBjYW4gYmUgaW4gYSBzZXNzaW9uIHZhcg0KJHRlc3QgPSAkX1NFU1NJT05bJHRoaXMtPkdldE5hbWUoKSAuICdkcCddID8/ICcnOw0KDQppZiggaXNfYXJyYXkoJHRlc3QpICkNCnsNCiAgJGNvbnRlbnRvcHMgPSBjbXNtcygpLT5HZXRDb250ZW50T3BlcmF0aW9ucygpOw0KICAkY3VycmVudF9wYWdlX29iaiA9ICRjb250ZW50b3BzLT5nZXRDb250ZW50T2JqZWN0KCk7DQogICRjdXJyZW50X3BhZ2UgPSAkY3VycmVudF9wYWdlX29iai0+SWQoKTsNCiAgDQogIGlmKCBpc3NldCgkdGVzdFskY3VycmVudF9wYWdlXSkgKQ0KICB7DQogICAgJHN1bW1hcnlwYWdlID0gJHRlc3RbJGN1cnJlbnRfcGFnZV07DQogICAgJHJldHVybl9wYWdlX29iaiA9ICRjb250ZW50b3BzLT5Mb2FkQ29udGVudEZyb21JZCgkc3VtbWFyeXBhZ2UpOw0KICAgICRyZXRfcHJldHR5X3VybCA9ICRyZXR1cm5fcGFnZV9vYmotPkdldFVSTCgpOw0KICB9DQp9DQoNCiRpZGVudGlmaWVyID0gaXNfbnVtZXJpYygkcGFyYW1zWydpdGVtJ10pID8gJ2l0ZW1faWQnIDogJ2FsaWFzJzsNCiRkZWJ1ZyA9IGlzc2V0KCRwYXJhbXNbJ2RlYnVnJ10pOw0KDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQojIEluaXQgaXRlbQ0KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KDQppZiggJHByZXZpZXcgJiYgaXNzZXQoJHByZXZpZXdfb2JqKSAmJiAhaXNzZXQoJHBhcmFtc1snaXRlbSddKSApDQp7DQogICRpdGVtID0gJHByZXZpZXdfb2JqOw0KfQ0KZWxzZQ0Kew0KICAkaXRlbSA9ICR0aGlzLT5Mb2FkSXRlbUJ5SWRlbnRpZmllcigkaWRlbnRpZmllciwgJHBhcmFtc1snaXRlbSddKTsNCn0NCg0KJHByZXR0eXVybCA9ICcnOw0KDQovKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLw0KIyBxdWljayBkaXJ0eSBmaXggKG5lZWRzIHRvIGJlIHJldmlzaXRlZCkNCiMgd2UgZG8gbmVlZCBhbiB1cmwgZm9yIGVhY2ggaXRlbSBoZXJlIGFscmVhZHkgDQojIHByb2JhYmx5IHRoZXJlIGFyZSBwYXJhbWV0ZXJzIG1pc3Npbmcgc28gdGhpcyBuZWVkcyBtb3JlIHdvcmsNCiMgSm9Nb3JnDQovKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLw0KJGNvbmZpZyA9IGNtc21zKCktPkdldENvbmZpZygpOw0KDQppZiggZW1wdHkoJGl0ZW0tPnVybCkgfHwgJGNvbmZpZ1sndXJsX3Jld3JpdGluZyddICE9ICdtb2RfcmV3cml0ZScpDQp7DQogICRkZXRhaWxzcGFnZSAgICA9ICR0aGlzLT5HZXRQcmVmZXJlbmNlKCdkZXRhaWxwYWdlJywgJHJldHVybmlkKTsNCiAgJHN0cmluZ19hcnJheSAgID0gW107DQogICRzdHJpbmdfYXJyYXlbXSA9ICR0aGlzLT5wcmVmaXg7DQogICRzdHJpbmdfYXJyYXlbXSA9ICRpdGVtLT5hbGlhczsNCiAgJHN0cmluZ19hcnJheVtdID0gJGRldGFpbHNwYWdlOw0KDQogICRwcmV0dHl1cmwgPSBpbXBsb2RlKCcvJywgJHN0cmluZ19hcnJheSk7ICAgIA0KDQogICRpdGVtLT51cmwgPSAkdGhpcy0+Y3JlYXRlX3VybCgkaWQsICdkZXRhaWwnLCAkZGV0YWlsc3BhZ2UsIGFycmF5KCdpdGVtJyA9PiAkcGFyYW1zWydpdGVtJ10pLCBmYWxzZSwgZmFsc2UsICRwcmV0dHl1cmwpOw0KfQ0KLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8NCg0KLy8gbGV0J3MgZGVhbCB3aXRoIHRhZ3MgaWYgdGhleSBhcmUgYXZhaWxhYmxlDQpmb3JlYWNoKCRpdGVtLT5maWVsZGRlZnMgYXMgJG9uZSkNCnsNCiAgJGxpbmtwYXJhbXMgPSBhcnJheSgpOw0KICBpZiggJ1RhZ3MnICE9PSAkb25lLT50eXBlKSBjb250aW51ZTsNCiAgJG9uZS0+U2V0VGFnc1BhcmFtcygkdGhpcywgJGlkLCAnZGVmYXVsdCcsICRzdW1tYXJ5cGFnZSwgJGxpbmtwYXJhbXMpOw0KfQ0KDQoNCg0KIyB0cnkgdG8gZ2V0IHRoZSByZXR1cm4gbGluayByaWdodCBmb3IgcGFnZWRldGFpbCBvdmVycmlkZXMuLi4NCmlmKCAhZW1wdHkoJHJldF9wcmV0dHlfdXJsKSApDQp7DQogICRyZXRfcHJldHR5X2xpbmsgPSAnPGEgaHJlZj0iJyAuICRyZXRfcHJldHR5X3VybCAuJyIgY2xhc3M9InJldHVybi1saW5rIj5yZXR1cm48L2E+JzsNCn0NCmVsc2UNCnsNCiAgJHJldF9wcmV0dHlfdXJsID0gJHRoaXMtPmNyZWF0ZV91cmwoJGlkLCAnZGVmYXVsdCcsICRzdW1tYXJ5cGFnZSwgW10sIGZhbHNlLCBmYWxzZSwgJHByZXR0eXVybCk7DQogICRyZXRfcHJldHR5X2xpbmsgPSAkdGhpcy0+Q3JlYXRlUHJldHR5TGluaygkaWQsICdkZWZhdWx0JywgJHN1bW1hcnlwYWdlLCAkdGhpcy0+TW9kTGFuZygncmV0dXJuX3VybCcpLCAkcGFyYW1zKTsNCn0NCg0KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIyBTbWFydHkgcHJvY2Vzc2luZw0KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KDQokc21hcnR5LT5hc3NpZ24oJ2l0ZW0nLCAkaXRlbSk7DQokc21hcnR5LT5hc3NpZ24oJ0xJU0VfYWN0aW9uJywgJ2RldGFpbCcpOw0KJHNtYXJ0eS0+YXNzaWduKCR0aGlzLT5HZXROYW1lKCkgLiAnX2l0ZW0nLCAkaXRlbSk7IC8vIDwtIEFsaWFzIGZvciAkaXRlbQ0KDQokc21hcnR5LT5hc3NpZ24oJ3JldHVybl91cmwnLCAkcmV0X3ByZXR0eV91cmwpOw0KJHNtYXJ0eS0+YXNzaWduKCdyZXR1cm5fbGluaycsICRyZXRfcHJldHR5X2xpbmspOw0KDQplY2hvICR0aGlzLT5Qcm9jZXNzVGVtcGxhdGVGcm9tRGF0YWJhc2UoJHRlbXBsYXRlKTsNCg0KaWYoJGRlYnVnKSANCgkkc21hcnR5LT5kaXNwbGF5KCdzdHJpbmc6PHByZT57JGl0ZW18QHByaW50X3J9PC9wcmU+Jyk7DQoNCj8+]]></data>
	</file>
	<file>
	  <filename>/framework/action.search.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHANCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQojIExJU0UgLSBMaXN0IEl0IFNwZWNpYWwgRWRpdGlvbg0KIyBWZXJzaW9uIDEuMg0KIyBBIGZvcmsgb2YgTGlzdEkyDQojIG1haW50YWluZWQgYnkgRmVybmFuZG8gTW9yZ2FkbyBBS0EgSm8gTW9yZw0KIyBzaW5jZSAyMDE1DQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIw0KIyBPcmlnaW5hbCBBdXRob3I6IEJlbiBNYWxlbiwgPGJlbkBjb25jZXB0ZmFjdG9yeS5jb20uYXU+DQojIENvLU1haW50YWluZXI6IFNpbW9uIFJhZGZvcmQsIDxzaW1vbkBjb25jZXB0ZmFjdG9yeS5jb20uYXU+DQojIFdlYjogd3d3LmNvbmNlcHRmYWN0b3J5LmNvbS5hdQ0KIw0KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCiMNCiMgTWFpbnRhaW5lciBzaW5jZSAyMDExIHVwIHRvIDIwMTQ6IEpvbmF0aGFuIFNjaG1pZCwgPGhpQGpvbmF0aGFuc2NobWlkLmRlPg0KIyBXZWI6IHd3dy5qb25hdGhhbnNjaG1pZC5kZQ0KIw0KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCiMNCiMgU29tZSB3YWNrb3Mgc3RhcnRlZCBkZXN0cm95aW5nIHN0dWZmIHNpbmNlIDIwMTIgYW5kIHN0b3BwZWQgYXQgMjAxNDoNCiMNCiMgVGFwaW8gTMO2eXR0eSwgPHRhcHNhQG9yYW5nZS1tZWRpYS5maT4NCiMgV2ViOiB3d3cub3JhbmdlLW1lZGlhLmZpDQojDQojIEdvcmFuIElsaWMsIDx1bmlxdTNlQGdtYWlsLmNvbT4NCiMgV2ViOiB3d3cuaWNoLW1hY2gtZGFzLmF0DQojDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIw0KIyBMSVNFIGlzIGEgQ01TIE1hZGUgU2ltcGxlIG1vZHVsZSB0aGF0IGVuYWJsZXMgdGhlIHdlYiBkZXZlbG9wZXIgdG8gY3JlYXRlDQojIG11bHRpcGxlIGxpc3RzIHRocm91Z2hvdXQgYSBzaXRlLiBJdCBjYW4gYmUgZHVwbGljYXRlZCBhbmQgZ2l2ZW4gZnJpZW5kbHkNCiMgbmFtZXMgZm9yIGVhc2llciBjbGllbnQgbWFpbnRlbmFuY2UuDQojDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIyBCRUdJTl9MSUNFTlNFDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIyBUaGlzIGZpbGUgaXMgcGFydCBvZiBMSVNFDQojIExJU0UgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5DQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5DQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yDQojIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uDQojDQojIExJU0UgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLA0KIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZg0KIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlDQojIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuDQojIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlDQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlDQojIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcgVVNBDQojIE9yIHJlYWQgaXQgb25saW5lOiBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwNCiMNCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQojIEVORF9MSUNFTlNFDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KaWYoICFkZWZpbmVkKCdDTVNfVkVSU0lPTicpICkgZXhpdDsNCg0KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIyBDaGVjayBwYXJhbXMNCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0NCiR0ZW1wbGF0ZSA9ICdzZWFyY2hfJyAuICR0aGlzLT5HZXRQcmVmZXJlbmNlKCR0aGlzLT5fR2V0TW9kdWxlQWxpYXMoKSAuICdfZGVmYXVsdF9zZWFyY2hfdGVtcGxhdGUnKTsNCg0KaWYoaXNzZXQoJHBhcmFtc1sndGVtcGxhdGVfc2VhcmNoJ10pKQ0Kew0KICAkdGVtcGxhdGUgPSAnc2VhcmNoXycgLiAkcGFyYW1zWyd0ZW1wbGF0ZV9zZWFyY2gnXTsNCn0NCmVsc2VpZihpc3NldCgkcGFyYW1zWydzZWFyY2h0ZW1wbGF0ZSddKSkNCnsNCiAgJHRlbXBsYXRlID0gJ3NlYXJjaF8nIC4gJHBhcmFtc1snc2VhcmNodGVtcGxhdGUnXTsNCn0NCg0KaWYoaXNzZXQoJHBhcmFtc1sndGVtcGxhdGVfc3VtbWFyeSddKSkgDQp7DQogICRzdW1tYXJ5dGVtcGxhdGVfYnlwYXNzID0gJHBhcmFtc1sndGVtcGxhdGVfc3VtbWFyeSddOw0KfQ0KZWxzZWlmKGlzc2V0KCRwYXJhbXNbJ3N1bW1hcnl0ZW1wbGF0ZSddKSkgDQp7DQogICRzdW1tYXJ5dGVtcGxhdGVfYnlwYXNzID0gJHBhcmFtc1snc3VtbWFyeXRlbXBsYXRlJ107DQp9DQoNCiRzdW1tYXJ5cGFnZSA9ICR0aGlzLT5HZXRQcmVmZXJlbmNlKCdzdW1tYXJ5cGFnZScsICRyZXR1cm5pZCk7DQoNCmlmKGlzc2V0KCRwYXJhbXNbJ3N1bW1hcnlwYWdlJ10pKSANCnsNCiAgaWYoaXNfbnVtZXJpYygkcGFyYW1zWydzdW1tYXJ5cGFnZSddKSkgDQogIHsNCiAgICAkc3VtbWFyeXBhZ2UgPSAkcGFyYW1zWydzdW1tYXJ5cGFnZSddOw0KICB9DQogIGVsc2UgDQogIHsNCiAgICBpZighaXNzZXQoJGhtKSkgJGhtID0gY21zbXMoKS0+R2V0SGllcmFyY2h5TWFuYWdlcigpOw0KICAgICAgDQogICAgJHN1bW1hcnlwYWdlX29iaiA9ICRobS0+c3VyZUdldE5vZGVCeUFsaWFzKCRwYXJhbXNbJ3N1bW1hcnlwYWdlJ10pOw0KICAgICAgDQogICAgaWYoIGlzX29iamVjdCgkc3VtbWFyeXBhZ2Vfb2JqKSApICRzdW1tYXJ5cGFnZSA9ICRzdW1tYXJ5cGFnZV9vYmotPkdldElkKCk7DQogIH0NCn0NCg0KJGRlYnVnID0gKGlzc2V0KCRwYXJhbXNbJ2RlYnVnJ10pID8gdHJ1ZSA6IGZhbHNlKTsNCg0KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIyBHcmFiIHRlbXBsYXRlDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQokdGVtcGxhdGUgPSAkdGhpcy0+R2V0VGVtcGxhdGUoJHRlbXBsYXRlKTsNCg0KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIyBJbml0IGZpZWxkZGVmcw0KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KI0xvYWQgZmllbGRkZWZzIG9ubHkgaWYgd2UgaGF2ZSB2YXJpYWJsZSByZXF1ZXN0IG9uIHRlbXBsYXRlDQppZihzdHJpcG9zKCR0ZW1wbGF0ZSwgJyRmaWVsZGRlZnMnKSkgDQp7ICANCiAgJGZpbHRlcnMgPSBhcnJheSgpOw0KICBpZighZW1wdHkoJHBhcmFtc1snZmlsdGVyJ10pKQ0KICB7DQogICAgJGZpbHRlcnMgPSBleHBsb2RlKCcsJywgJHBhcmFtc1snZmlsdGVyJ10pOw0KICB9DQogIA0KICAkZmlsdGVyc19vcmRlcl9ieSA9IGFycmF5KCk7DQogIGlmKCFlbXB0eSgkcGFyYW1zWydmaWx0ZXJvcmRlcmJ5J10pKSANCiAgew0KICAgICRmaWx0ZXJzX29yZGVyX2J5ID0gZXhwbG9kZSgnLCcsICRwYXJhbXNbJ2ZpbHRlcm9yZGVyYnknXSk7DQogIH0NCg0KICAkZmllbGRkZWZzID0gJHRoaXMtPkdldEZpZWxkRGVmcygkZmlsdGVycyk7DQogICRpID0gMDsNCiAgDQogIGZvcmVhY2goJGZpZWxkZGVmcyBhcyAkZmllbGRkZWYpDQogIHsNCiAgICAkb3JkZXJieSA9IGlzc2V0KCRmaWx0ZXJzX29yZGVyX2J5WyRpXSkgPyAkZmlsdGVyc19vcmRlcl9ieVskaSsrXSA6ICcnOw0KICAgIExJU0VGaWVsZGRlZk9wZXJhdGlvbnM6OkxvYWRWYWx1ZXNGb3JGaWVsZERlZigkdGhpcywgJGZpZWxkZGVmLCAkb3JkZXJieSk7DQogIH0NCg0KICAkc21hcnR5LT5hc3NpZ24oJ2ZpZWxkZGVmcycsICRmaWVsZGRlZnMpOw0KICAkc21hcnR5LT5hc3NpZ24oJ2ZpbHRlcnByb21wdCcsICR0aGlzLT5Nb2RMYW5nKCdmaWx0ZXJwcm9tcHQnLCAkdGhpcy0+R2V0UHJlZmVyZW5jZSgnaXRlbV9wbHVyYWwnLCAnJykpKTsNCn0NCg0KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIyBTbWFydHkgcHJvY2Vzc2luZw0KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KDQokc21hcnR5LT5hc3NpZ24oJ2Zvcm1zdGFydCcsICR0aGlzLT5DcmVhdGVGb3JtU3RhcnQoJGlkLCAnZGVmYXVsdCcsICRzdW1tYXJ5cGFnZSwgJ3Bvc3QnLCAnbXVsdGlwYXJ0L2Zvcm0tZGF0YScsIGZhbHNlLCAnJywgJHBhcmFtcykpOw0KJHNtYXJ0eS0+YXNzaWduKCdmb3JtZW5kJywgJHRoaXMtPkNyZWF0ZUZvcm1FbmQoKSk7DQokc21hcnR5LT5hc3NpZ24oJ21vZHVsZWFsaWFzJywgJHRoaXMtPl9HZXRNb2R1bGVBbGlhcygpKTsgLy8gRGVwcmVjYXRlZA0KDQplY2hvICR0aGlzLT5Qcm9jZXNzVGVtcGxhdGVGcm9tRGF0YSgkdGVtcGxhdGUpOw0KDQppZigkZGVidWcpIA0KICAkc21hcnR5LT5kaXNwbGF5KCdzdHJpbmc6PHByZT57JGZpZWxkZGVmc3xAcHJpbnRfcn08L3ByZT4nKTsNCg0KPz4=]]></data>
	</file>
	<file>
	  <filename>/framework/action.tagcloud.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHANCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQojIExJU0UgLSBMaXN0IEl0IFNwZWNpYWwgRWRpdGlvbg0KIyBWZXJzaW9uIDEuMg0KIyBBIGZvcmsgb2YgTGlzdEkyDQojIG1haW50YWluZWQgYnkgRmVybmFuZG8gTW9yZ2FkbyBBS0EgSm8gTW9yZw0KIyBzaW5jZSAyMDE1DQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIw0KIyBPcmlnaW5hbCBBdXRob3I6IEJlbiBNYWxlbiwgPGJlbkBjb25jZXB0ZmFjdG9yeS5jb20uYXU+DQojIENvLU1haW50YWluZXI6IFNpbW9uIFJhZGZvcmQsIDxzaW1vbkBjb25jZXB0ZmFjdG9yeS5jb20uYXU+DQojIFdlYjogd3d3LmNvbmNlcHRmYWN0b3J5LmNvbS5hdQ0KIw0KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCiMNCiMgTWFpbnRhaW5lciBzaW5jZSAyMDExIHVwIHRvIDIwMTQ6IEpvbmF0aGFuIFNjaG1pZCwgPGhpQGpvbmF0aGFuc2NobWlkLmRlPg0KIyBXZWI6IHd3dy5qb25hdGhhbnNjaG1pZC5kZQ0KIw0KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCiMNCiMgU29tZSB3YWNrb3Mgc3RhcnRlZCBkZXN0cm95aW5nIHN0dWZmIHNpbmNlIDIwMTIgYW5kIHN0b3BwZWQgYXQgMjAxNDoNCiMNCiMgVGFwaW8gTMO2eXR0eSwgPHRhcHNhQG9yYW5nZS1tZWRpYS5maT4NCiMgV2ViOiB3d3cub3JhbmdlLW1lZGlhLmZpDQojDQojIEdvcmFuIElsaWMsIDx1bmlxdTNlQGdtYWlsLmNvbT4NCiMgV2ViOiB3d3cuaWNoLW1hY2gtZGFzLmF0DQojDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIw0KIyBMSVNFIGlzIGEgQ01TIE1hZGUgU2ltcGxlIG1vZHVsZSB0aGF0IGVuYWJsZXMgdGhlIHdlYiBkZXZlbG9wZXIgdG8gY3JlYXRlDQojIG11bHRpcGxlIGxpc3RzIHRocm91Z2hvdXQgYSBzaXRlLiBJdCBjYW4gYmUgZHVwbGljYXRlZCBhbmQgZ2l2ZW4gZnJpZW5kbHkNCiMgbmFtZXMgZm9yIGVhc2llciBjbGllbnQgbWFpbnRlbmFuY2UuDQojDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIyBCRUdJTl9MSUNFTlNFDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIyBUaGlzIGZpbGUgaXMgcGFydCBvZiBMSVNFDQojIExJU0UgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5DQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5DQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yDQojIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uDQojDQojIExJU0UgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLA0KIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZg0KIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlDQojIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuDQojIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlDQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlDQojIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcgVVNBDQojIE9yIHJlYWQgaXQgb25saW5lOiBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwNCiMNCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQojIEVORF9MSUNFTlNFDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KDQppZiggIWRlZmluZWQoJ0NNU19WRVJTSU9OJykgKSBleGl0Ow0KDQokZmllbGRkZWZfaWQgPSAgTElTRUZpZWxkZGVmT3BlcmF0aW9uczo6VGVzdEV4aXN0ZW5jZUJ5VHlwZSgkdGhpcywgJ1RhZ3MnKTsNCg0KaWYoISRmaWVsZGRlZl9pZCkgcmV0dXJuOw0KDQokdGVtcGxhdGUgPSAnc2VhcmNoXycgLiAkdGhpcy0+R2V0UHJlZmVyZW5jZSgkdGhpcy0+X0dldE1vZHVsZUFsaWFzKCkgLiAnX2RlZmF1bHRfc2VhcmNoX3RlbXBsYXRlJyk7DQoNCmlmKGlzc2V0KCRwYXJhbXNbJ3RlbXBsYXRlX3NlYXJjaCddKSkgew0KDQogICR0ZW1wbGF0ZSA9ICdzZWFyY2hfJyAuICRwYXJhbXNbJ3RlbXBsYXRlX3NlYXJjaCddOw0KfQ0KZWxzZWlmKGlzc2V0KCRwYXJhbXNbJ3NlYXJjaHRlbXBsYXRlJ10pKSB7DQoNCiAgJHRlbXBsYXRlID0gJ3NlYXJjaF8nIC4gJHBhcmFtc1snc2VhcmNodGVtcGxhdGUnXTsNCn0NCg0KdW5zZXQoJHBhcmFtc1sndGVtcGxhdGVfc2VhcmNoJ10pOw0KdW5zZXQoJHBhcmFtc1snc2VhcmNodGVtcGxhdGUnXSk7DQoNCiR0ZW1wbGF0ZSA9ICR0aGlzLT5HZXRUZW1wbGF0ZSgkdGVtcGxhdGUpOw0KDQokcXVlcnkgPSAiU0VMRUNUICogRlJPTSAiIC4gY21zX2RiX3ByZWZpeCgpIC4gIm1vZHVsZV8iIC4gJHRoaXMtPl9HZXRNb2R1bGVBbGlhcygpIC4gIl9maWVsZGRlZiBXSEVSRSBmaWVsZGRlZl9pZD0/IjsgIA0KJGRiciA9ICRkYi0+RXhlY3V0ZSggJHF1ZXJ5LCBhcnJheSgkZmllbGRkZWZfaWQpICk7DQokcm93ID0gJGRici0+RmV0Y2hSb3coKTsNCiRvYmogPSBMSVNFRmllbGRkZWZPcGVyYXRpb25zOjpMb2FkKCR0aGlzLCAkcm93KTsNCg0KJHZhbHVlcyA9IGFycmF5KCk7DQppZiggaXNfYSgkb2JqLCAnTElTRUZpZWxkZGVmQmFzZScpKQ0Kew0KICAkdmFsdWVzID0gTElTRUZpZWxkZGVmT3BlcmF0aW9uczo6TG9hZFZhbHVlc0ZvckZpZWxkRGVmKCR0aGlzLCAkb2JqKTsNCn0NCg0KJHRtcCA9IGFycmF5KCk7DQoNCmZvcmVhY2goJHZhbHVlcyBhcyAkb25lKQ0Kew0KICAkdG1wID0gYXJyYXlfdW5pcXVlKCBhcnJheV9tZXJnZSgkdG1wLCBleHBsb2RlKCcsJywgJG9uZSkgKSApIDsNCn0NCg0KJHRhZ3MgPSBhcnJheSgpOw0KDQpmb3JlYWNoKCR0bXAgYXMgJG9uZSkNCnsNCiAgJHBhcmFtc1sndGFnJ10gPSB1cmxlbmNvZGUoJG9uZSk7DQogICR0YWdzWyRvbmVdID0gJHRoaXMtPkNyZWF0ZVByZXR0eUxpbmsoJGlkLCAnZGVmYXVsdCcsICRyZXR1cm5pZCwgJycsICRwYXJhbXMsICcnLCBUUlVFKTsNCn0NCg0KbmF0Y2FzZXNvcnQoJHRhZ3MpOw0KJHNtYXJ0eS0+YXNzaWduKCd0YWdzJywgJHRhZ3MpOw0KDQplY2hvICR0aGlzLT5Qcm9jZXNzVGVtcGxhdGVGcm9tRGF0YSgkdGVtcGxhdGUpOw0KPz4=]]></data>
	</file>
	<file>
	  <filename>/framework/css</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/framework/css/backend.css</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[LyogQmFja2VuZCAqLw0KLmxpc2UtaGlkZGVuIHsNCglkaXNwbGF5OiBub25lOw0KfQ0KDQpkaXYucGFnZWNvbnRhaW5lciBvbHsNCgltYXJnaW46IDAgMCAxZW0gMDsNCglwYWRkaW5nLWxlZnQ6MTVweDsNCn0NCmRpdi5wYWdlY29udGFpbmVyIG9sIGxpew0KCWxpc3Qtc3R5bGU6ZGVjaW1hbDsNCn0NCg0KZGl2LnBhZ2Vjb250YWluZXIgLmxpc2VfZmllbGRzZXQgew0KCW1hcmdpbjogMjBweCAwIDIwcHggNSU7DQoJbWF4LXdpZHRoOiA4MCU7DQoJLW1vei1ib3JkZXItcmFkaXVzOiA1cHggNXB4IDVweCA1cHg7DQoJLXdlYmtpdC1ib3JkZXItcmFkaXVzOiA1cHggNXB4IDVweCA1cHg7DQoJYm9yZGVyLXJhZGl1czogNXB4IDVweCA1cHggNXB4Ow0KfQ0KZGl2LnBhZ2Vjb250YWluZXIgLmxpc2VfZmllbGRzZXQuT25lRWxldmVuIHsNCgltYXJnaW46IDIwcHggMDsNCn0NCmRpdi5wYWdlY29udGFpbmVyIC5saXNlX2ZpZWxkc2V0IC5wYWdlaW5wdXQsDQpkaXYucGFnZWNvbnRhaW5lciAubGlzZV9maWVsZHNldCAucGFnZXRleHQsDQpkaXYucGFnZWNvbnRhaW5lciAubGlzZV9maWVsZHNldCAuaW5wdXRoZWxwew0KCW1hcmdpbi1sZWZ0OiAxJTsNCn0NCi8qIFF1aWNrIHNlYXJjaCAqLw0KLml0ZW0tc2VhcmNoIHsNCglmbG9hdDpyaWdodDsNCgl0ZXh0LWFsaWduOiByaWdodDsNCgl3aWR0aDogNTAlOw0KCW1hcmdpbi1ib3R0b206IDVweDsNCglkaXNwbGF5OiBpbmxpbmUtYmxvY2s7DQp9DQoNCi8qIGdsb2JhbCAqLw0KdGFibGUucGFnZXRhYmxlIHRoLmhlYWRlci5uby1zb3J0IHsNCgliYWNrZ3JvdW5kOiB0cmFuc3BhcmVudCBub25lOw0KCWN1cnNvcjogcG9pbnRlcjsNCn0NCnRhYmxlLnBhZ2V0YWJsZSB0aC5oZWFkZXJTb3J0VXAubm8tc29ydCB7DQoJYmFja2dyb3VuZC1pbWFnZTogbm9uZTsNCn0NCnRhYmxlLnBhZ2V0YWJsZSB0aC5oZWFkZXJTb3J0RG93bi5uby1zb3J0IHsNCgliYWNrZ3JvdW5kLWltYWdlOiBub25lOw0KfQ0KDQojc29ydGFibGVfaXRlbS5mb290YWJsZS5icmVha3BvaW50ID4gdGJvZHkgPiB0ciA+IHRkID4gc3Bhbi5mb290YWJsZS10b2dnbGUgew0KCWNvbG9yOiAjNTg1ODU4Ow0KCWN1cnNvcjogcG9pbnRlcjsNCn0NCg0KI3NvcnRhYmxlX2l0ZW0gLmZvb3RhYmxlLXJvdy1kZXRhaWwtbmFtZSwNCiNzb3J0YWJsZV9pdGVtIC5mb290YWJsZS1yb3ctZGV0YWlsLXZhbHVlIHsNCglwYWRkaW5nOiA0cHggMDsNCn0NCg0KI3NvcnRhYmxlX2l0ZW0gLmZvb3RhYmxlLXJvdy1kZXRhaWwtdmFsdWUgew0KCXBhZGRpbmctbGVmdDogOHB4Ow0KfQ0KDQouY29udGVudCB0ci51aS1zb3J0YWJsZS1oZWxwZXIgew0KCWJveC1zaGFkb3c6IDAgMnB4IDRweCAwICM1ZjVmNWYNCn0NCi5wYWdlc2hvd3Jvd3N7DQoJY2xlYXI6Ym90aDsNCn0NCmEudGh1bWIgew0KCWRpc3BsYXk6IGlubGluZS1ibG9jazsNCgl3aWR0aDogYXV0bzsNCgltYXJnaW46IDVweA0KfQ0KYS50aHVtYiBpbWcgew0KCWJvcmRlcjogbm9uZQ0KfQ0KDQoucGFnZW9wdGlvbnMgYSB7DQoJbWFyZ2luLXJpZ2h0OiA1cHg7DQp9DQoNCnVsLmxpc2UtY29sdW1uLWxpc3Qgew0KCQ0KCW1hcmdpbjogMCAhaW1wb3J0YW50Ow0KfQ0KDQp1bC5saXNlLWNvbHVtbi1saXN0IGxpIHsNCg0KCWZsb2F0OiBsZWZ0Ow0KCW1hcmdpbi1yaWdodDogNCU7DQoJbWFyZ2luLWJvdHRvbTogMTBweDsNCglsaXN0LXN0eWxlOiBub25lOw0KfQ0KDQpAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAxMDI0cHgpIHsNCgkNCgl0YWJsZSNzb3J0YWJsZV9pdGVtID4gdGhlYWQgdGgsDQoJdGFibGUjc29ydGFibGVfaXRlbSA+IHRib2R5IHRkOmZpcnN0LWNoaWxkIHsNCgkJcGFkZGluZy1sZWZ0OiAxMHB4Ow0KCX0NCn0NCg==]]></data>
	</file>
	<file>
	  <filename>/framework/css/colorbox.css</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[LyoKICAgIENvbG9yQm94IENvcmUgU3R5bGU6CiAgICBUaGUgZm9sbG93aW5nIENTUyBpcyBjb25zaXN0ZW50IGJldHdlZW4gZXhhbXBsZSB0aGVtZXMgYW5kIHNob3VsZCBub3QgYmUgYWx0ZXJlZC4KKi8KI2NvbG9yYm94LCAjY2JveE92ZXJsYXksICNjYm94V3JhcHBlcntwb3NpdGlvbjphYnNvbHV0ZTsgdG9wOjA7IGxlZnQ6MDsgei1pbmRleDo5OTk5OyBvdmVyZmxvdzpoaWRkZW47fQojY2JveE92ZXJsYXl7cG9zaXRpb246Zml4ZWQ7IHdpZHRoOjEwMCU7IGhlaWdodDoxMDAlO30KI2Nib3hNaWRkbGVMZWZ0LCAjY2JveEJvdHRvbUxlZnR7Y2xlYXI6bGVmdDt9CiNjYm94Q29udGVudHtwb3NpdGlvbjpyZWxhdGl2ZTt9CiNjYm94TG9hZGVkQ29udGVudHtvdmVyZmxvdzphdXRvO30KI2Nib3hUaXRsZXttYXJnaW46MDt9CiNjYm94TG9hZGluZ092ZXJsYXksICNjYm94TG9hZGluZ0dyYXBoaWN7cG9zaXRpb246YWJzb2x1dGU7IHRvcDowOyBsZWZ0OjA7IHdpZHRoOjEwMCU7IGhlaWdodDoxMDAlO30KI2Nib3hQcmV2aW91cywgI2Nib3hOZXh0LCAjY2JveENsb3NlLCAjY2JveFNsaWRlc2hvd3tjdXJzb3I6cG9pbnRlcjt9Ci5jYm94UGhvdG97ZmxvYXQ6bGVmdDsgbWFyZ2luOmF1dG87IGJvcmRlcjowOyBkaXNwbGF5OmJsb2NrOyBtYXgtd2lkdGg6bm9uZTt9Ci5jYm94SWZyYW1le3dpZHRoOjEwMCU7IGhlaWdodDoxMDAlOyBkaXNwbGF5OmJsb2NrOyBib3JkZXI6MDt9CiNjb2xvcmJveCwgI2Nib3hDb250ZW50LCAjY2JveExvYWRlZENvbnRlbnR7Ym94LXNpemluZzpjb250ZW50LWJveDt9CgovKiAKICAgIFVzZXIgU3R5bGU6CiAgICBDaGFuZ2UgdGhlIGZvbGxvd2luZyBzdHlsZXMgdG8gbW9kaWZ5IHRoZSBhcHBlYXJhbmNlIG9mIENvbG9yQm94LiAgVGhleSBhcmUKICAgIG9yZGVyZWQgJiB0YWJiZWQgaW4gYSB3YXkgdGhhdCByZXByZXNlbnRzIHRoZSBuZXN0aW5nIG9mIHRoZSBnZW5lcmF0ZWQgSFRNTC4KKi8KI2Nib3hPdmVybGF5e2JhY2tncm91bmQ6I2ZmZjt9CiNjb2xvcmJveHt9CiAgICAjY2JveENvbnRlbnR7bWFyZ2luLXRvcDozMnB4OyBvdmVyZmxvdzp2aXNpYmxlO30KICAgICAgICAuY2JveElmcmFtZXtiYWNrZ3JvdW5kOiNmZmY7fQogICAgICAgICNjYm94RXJyb3J7cGFkZGluZzo1MHB4OyBib3JkZXI6MXB4IHNvbGlkICNjY2M7fQogICAgICAgICNjYm94TG9hZGVkQ29udGVudHtiYWNrZ3JvdW5kOiMwMDA7IHBhZGRpbmc6MXB4O30KICAgICAgICAjY2JveExvYWRpbmdHcmFwaGlje2JhY2tncm91bmQ6dXJsKC4uLy4uL2ltYWdlcy9qcXVlcnl1aS91aS1hbmltX2Jhc2ljXzE2eDE2LmdpZikgbm8tcmVwZWF0IGNlbnRlciBjZW50ZXI7fQogICAgICAgICNjYm94TG9hZGluZ092ZXJsYXl7YmFja2dyb3VuZDojZmZmO30KICAgICAgICAjY2JveFRpdGxle3Bvc2l0aW9uOmFic29sdXRlOyB0b3A6LTIycHg7IGxlZnQ6MDsgY29sb3I6IzAwMDt9CiAgICAgICAgI2Nib3hDdXJyZW50e3Bvc2l0aW9uOmFic29sdXRlOyB0b3A6LTIycHg7IHJpZ2h0OjIwNXB4OyB0ZXh0LWluZGVudDotOTk5OXB4O30KICAgICAgICAjY2JveFNsaWRlc2hvdywgI2Nib3hQcmV2aW91cywgI2Nib3hOZXh0LCAjY2JveENsb3Nle3RleHQtaW5kZW50Oi05OTk5cHg7IHdpZHRoOjIwcHg7IGhlaWdodDoyMHB4OyBwb3NpdGlvbjphYnNvbHV0ZTsgdG9wOi0yMHB4OyBiYWNrZ3JvdW5kOnVybCguLi8uLi9pbWFnZXMvY29sb3Jib3gvY29udHJvbHMucG5nKSBuby1yZXBlYXQgMCAwO30KICAgICAgICAjY2JveFByZXZpb3Vze2JhY2tncm91bmQtcG9zaXRpb246MHB4IDBweDsgcmlnaHQ6NDRweDt9CiAgICAgICAgI2Nib3hQcmV2aW91czpob3ZlcntiYWNrZ3JvdW5kLXBvc2l0aW9uOjBweCAtMjVweDt9CiAgICAgICAgI2Nib3hOZXh0e2JhY2tncm91bmQtcG9zaXRpb246LTI1cHggMHB4OyByaWdodDoyMnB4O30KICAgICAgICAjY2JveE5leHQ6aG92ZXJ7YmFja2dyb3VuZC1wb3NpdGlvbjotMjVweCAtMjVweDt9CiAgICAgICAgI2Nib3hDbG9zZXtiYWNrZ3JvdW5kLXBvc2l0aW9uOi01MHB4IDBweDsgcmlnaHQ6MDt9CiAgICAgICAgI2Nib3hDbG9zZTpob3ZlcntiYWNrZ3JvdW5kLXBvc2l0aW9uOi01MHB4IC0yNXB4O30KICAgICAgICAuY2JveFNsaWRlc2hvd19vbiAjY2JveFByZXZpb3VzLCAuY2JveFNsaWRlc2hvd19vZmYgI2Nib3hQcmV2aW91c3tyaWdodDo2NnB4O30KICAgICAgICAuY2JveFNsaWRlc2hvd19vbiAjY2JveFNsaWRlc2hvd3tiYWNrZ3JvdW5kLXBvc2l0aW9uOi03NXB4IC0yNXB4OyByaWdodDo0NHB4O30KICAgICAgICAuY2JveFNsaWRlc2hvd19vbiAjY2JveFNsaWRlc2hvdzpob3ZlcntiYWNrZ3JvdW5kLXBvc2l0aW9uOi0xMDBweCAtMjVweDt9CiAgICAgICAgLmNib3hTbGlkZXNob3dfb2ZmICNjYm94U2xpZGVzaG93e2JhY2tncm91bmQtcG9zaXRpb246LTEwMHB4IDBweDsgcmlnaHQ6NDRweDt9CiAgICAgICAgLmNib3hTbGlkZXNob3dfb2ZmICNjYm94U2xpZGVzaG93OmhvdmVye2JhY2tncm91bmQtcG9zaXRpb246LTc1cHggLTI1cHg7fQo=]]></data>
	</file>
	<file>
	  <filename>/framework/css/footable.core.min.css</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[QGZvbnQtZmFjZXtmb250LWZhbWlseTonZm9vdGFibGUnO3NyYzp1cmwoJy4uL2ZvbnRzL2Zvb3RhYmxlLmVvdCcpO3NyYzp1cmwoJy4uL2ZvbnRzL2Zvb3RhYmxlLmVvdD8jaWVmaXgnKSBmb3JtYXQoJ2VtYmVkZGVkLW9wZW50eXBlJyksdXJsKCcuLi9mb250cy9mb290YWJsZS53b2ZmJykgZm9ybWF0KCd3b2ZmJyksdXJsKCcuLi9mb250cy9mb290YWJsZS50dGYnKSBmb3JtYXQoJ3RydWV0eXBlJyksdXJsKCcuLi9mb250cy9mb290YWJsZS5zdmcjZm9vdGFibGUnKSBmb3JtYXQoJ3N2ZycpO2ZvbnQtd2VpZ2h0Om5vcm1hbDtmb250LXN0eWxlOm5vcm1hbH1AbWVkaWEgc2NyZWVuIGFuZCAoLXdlYmtpdC1taW4tZGV2aWNlLXBpeGVsLXJhdGlvOjApe0Bmb250LWZhY2V7Zm9udC1mYW1pbHk6J2Zvb3RhYmxlJztzcmM6dXJsKCcuLi9mb250cy9mb290YWJsZS5zdmcjZm9vdGFibGUnKSBmb3JtYXQoJ3N2ZycpO2ZvbnQtd2VpZ2h0Om5vcm1hbDtmb250LXN0eWxlOm5vcm1hbH19LmZvb3RhYmxle3dpZHRoOjEwMCV9LmZvb3RhYmxlLmJyZWFrcG9pbnQ+dGJvZHk+dHIuZm9vdGFibGUtZGV0YWlsLXNob3c+dGR7Ym9yZGVyLWJvdHRvbTowfS5mb290YWJsZS5icmVha3BvaW50PnRib2R5PnRyLmZvb3RhYmxlLWRldGFpbC1zaG93PnRkPnNwYW4uZm9vdGFibGUtdG9nZ2xlOmJlZm9yZXtjb250ZW50OiJcZTAwMSJ9LmZvb3RhYmxlLmJyZWFrcG9pbnQ+dGJvZHk+dHI6aG92ZXI6bm90KC5mb290YWJsZS1yb3ctZGV0YWlsKXtjdXJzb3I6cG9pbnRlcn0uZm9vdGFibGUuYnJlYWtwb2ludD50Ym9keT50cj50ZC5mb290YWJsZS1jZWxsLWRldGFpbHtiYWNrZ3JvdW5kOiNlZWU7Ym9yZGVyLXRvcDowfS5mb290YWJsZS5icmVha3BvaW50PnRib2R5PnRyPnRkPnNwYW4uZm9vdGFibGUtdG9nZ2xle2Rpc3BsYXk6aW5saW5lLWJsb2NrO2ZvbnQtZmFtaWx5Oidmb290YWJsZSc7c3BlYWs6bm9uZTtmb250LXN0eWxlOm5vcm1hbDtmb250LXdlaWdodDpub3JtYWw7Zm9udC12YXJpYW50Om5vcm1hbDt0ZXh0LXRyYW5zZm9ybTpub25lOy13ZWJraXQtZm9udC1zbW9vdGhpbmc6YW50aWFsaWFzZWQ7cGFkZGluZy1yaWdodDo1cHg7Zm9udC1zaXplOjE0cHg7Y29sb3I6Izg4OH0uZm9vdGFibGUuYnJlYWtwb2ludD50Ym9keT50cj50ZD5zcGFuLmZvb3RhYmxlLXRvZ2dsZTpiZWZvcmV7Y29udGVudDoiXGUwMDAifS5mb290YWJsZS5icmVha3BvaW50LnRvZ2dsZS1jaXJjbGU+dGJvZHk+dHIuZm9vdGFibGUtZGV0YWlsLXNob3c+dGQ+c3Bhbi5mb290YWJsZS10b2dnbGU6YmVmb3Jle2NvbnRlbnQ6IlxlMDA1In0uZm9vdGFibGUuYnJlYWtwb2ludC50b2dnbGUtY2lyY2xlPnRib2R5PnRyPnRkPnNwYW4uZm9vdGFibGUtdG9nZ2xlOmJlZm9yZXtjb250ZW50OiJcZTAwNCJ9LmZvb3RhYmxlLmJyZWFrcG9pbnQudG9nZ2xlLWNpcmNsZS1maWxsZWQ+dGJvZHk+dHIuZm9vdGFibGUtZGV0YWlsLXNob3c+dGQ+c3Bhbi5mb290YWJsZS10b2dnbGU6YmVmb3Jle2NvbnRlbnQ6IlxlMDAzIn0uZm9vdGFibGUuYnJlYWtwb2ludC50b2dnbGUtY2lyY2xlLWZpbGxlZD50Ym9keT50cj50ZD5zcGFuLmZvb3RhYmxlLXRvZ2dsZTpiZWZvcmV7Y29udGVudDoiXGUwMDIifS5mb290YWJsZS5icmVha3BvaW50LnRvZ2dsZS1zcXVhcmU+dGJvZHk+dHIuZm9vdGFibGUtZGV0YWlsLXNob3c+dGQ+c3Bhbi5mb290YWJsZS10b2dnbGU6YmVmb3Jle2NvbnRlbnQ6IlxlMDA3In0uZm9vdGFibGUuYnJlYWtwb2ludC50b2dnbGUtc3F1YXJlPnRib2R5PnRyPnRkPnNwYW4uZm9vdGFibGUtdG9nZ2xlOmJlZm9yZXtjb250ZW50OiJcZTAwNiJ9LmZvb3RhYmxlLmJyZWFrcG9pbnQudG9nZ2xlLXNxdWFyZS1maWxsZWQ+dGJvZHk+dHIuZm9vdGFibGUtZGV0YWlsLXNob3c+dGQ+c3Bhbi5mb290YWJsZS10b2dnbGU6YmVmb3Jle2NvbnRlbnQ6IlxlMDA5In0uZm9vdGFibGUuYnJlYWtwb2ludC50b2dnbGUtc3F1YXJlLWZpbGxlZD50Ym9keT50cj50ZD5zcGFuLmZvb3RhYmxlLXRvZ2dsZTpiZWZvcmV7Y29udGVudDoiXGUwMDgifS5mb290YWJsZS5icmVha3BvaW50LnRvZ2dsZS1hcnJvdz50Ym9keT50ci5mb290YWJsZS1kZXRhaWwtc2hvdz50ZD5zcGFuLmZvb3RhYmxlLXRvZ2dsZTpiZWZvcmV7Y29udGVudDoiXGUwMGYifS5mb290YWJsZS5icmVha3BvaW50LnRvZ2dsZS1hcnJvdz50Ym9keT50cj50ZD5zcGFuLmZvb3RhYmxlLXRvZ2dsZTpiZWZvcmV7Y29udGVudDoiXGUwMTEifS5mb290YWJsZS5icmVha3BvaW50LnRvZ2dsZS1hcnJvdy1zbWFsbD50Ym9keT50ci5mb290YWJsZS1kZXRhaWwtc2hvdz50ZD5zcGFuLmZvb3RhYmxlLXRvZ2dsZTpiZWZvcmV7Y29udGVudDoiXGUwMTMifS5mb290YWJsZS5icmVha3BvaW50LnRvZ2dsZS1hcnJvdy1zbWFsbD50Ym9keT50cj50ZD5zcGFuLmZvb3RhYmxlLXRvZ2dsZTpiZWZvcmV7Y29udGVudDoiXGUwMTUifS5mb290YWJsZS5icmVha3BvaW50LnRvZ2dsZS1hcnJvdy1jaXJjbGU+dGJvZHk+dHIuZm9vdGFibGUtZGV0YWlsLXNob3c+dGQ+c3Bhbi5mb290YWJsZS10b2dnbGU6YmVmb3Jle2NvbnRlbnQ6IlxlMDFiIn0uZm9vdGFibGUuYnJlYWtwb2ludC50b2dnbGUtYXJyb3ctY2lyY2xlPnRib2R5PnRyPnRkPnNwYW4uZm9vdGFibGUtdG9nZ2xlOmJlZm9yZXtjb250ZW50OiJcZTAxZCJ9LmZvb3RhYmxlLmJyZWFrcG9pbnQudG9nZ2xlLWFycm93LWNpcmNsZS1maWxsZWQ+dGJvZHk+dHIuZm9vdGFibGUtZGV0YWlsLXNob3c+dGQ+c3Bhbi5mb290YWJsZS10b2dnbGU6YmVmb3Jle2NvbnRlbnQ6IlxlMDBiIn0uZm9vdGFibGUuYnJlYWtwb2ludC50b2dnbGUtYXJyb3ctY2lyY2xlLWZpbGxlZD50Ym9keT50cj50ZD5zcGFuLmZvb3RhYmxlLXRvZ2dsZTpiZWZvcmV7Y29udGVudDoiXGUwMGQifS5mb290YWJsZS5icmVha3BvaW50LnRvZ2dsZS1hcnJvdy10aW55PnRib2R5PnRyLmZvb3RhYmxlLWRldGFpbC1zaG93PnRkPnNwYW4uZm9vdGFibGUtdG9nZ2xlOmJlZm9yZXtjb250ZW50OiJcZTAxZiJ9LmZvb3RhYmxlLmJyZWFrcG9pbnQudG9nZ2xlLWFycm93LXRpbnk+dGJvZHk+dHI+dGQ+c3Bhbi5mb290YWJsZS10b2dnbGU6YmVmb3Jle2NvbnRlbnQ6IlxlMDIxIn0uZm9vdGFibGUuYnJlYWtwb2ludC50b2dnbGUtYXJyb3ctYWx0PnRib2R5PnRyLmZvb3RhYmxlLWRldGFpbC1zaG93PnRkPnNwYW4uZm9vdGFibGUtdG9nZ2xlOmJlZm9yZXtjb250ZW50OiJcZTAxNyJ9LmZvb3RhYmxlLmJyZWFrcG9pbnQudG9nZ2xlLWFycm93LWFsdD50Ym9keT50cj50ZD5zcGFuLmZvb3RhYmxlLXRvZ2dsZTpiZWZvcmV7Y29udGVudDoiXGUwMTkifS5mb290YWJsZS5icmVha3BvaW50LnRvZ2dsZS1tZWRpdW0+dGJvZHk+dHI+dGQ+c3Bhbi5mb290YWJsZS10b2dnbGV7Zm9udC1zaXplOjE4cHh9LmZvb3RhYmxlLmJyZWFrcG9pbnQudG9nZ2xlLWxhcmdlPnRib2R5PnRyPnRkPnNwYW4uZm9vdGFibGUtdG9nZ2xle2ZvbnQtc2l6ZToyNHB4fS5mb290YWJsZT50aGVhZD50cj50aHstd2Via2l0LXRvdWNoLWNhbGxvdXQ6bm9uZTstd2Via2l0LXVzZXItc2VsZWN0Om5vbmU7LWtodG1sLXVzZXItc2VsZWN0Om5vbmU7LW1vei11c2VyLXNlbGVjdDotbW96LW5vbmU7LW1zLXVzZXItc2VsZWN0Om5vbmU7dXNlci1zZWxlY3Q6bm9uZX0uZm9vdGFibGU+dGhlYWQ+dHI+dGguZm9vdGFibGUtc29ydGFibGU6aG92ZXJ7Y3Vyc29yOnBvaW50ZXJ9LmZvb3RhYmxlPnRoZWFkPnRyPnRoLmZvb3RhYmxlLXNvcnRlZD5zcGFuLmZvb3RhYmxlLXNvcnQtaW5kaWNhdG9yOmJlZm9yZXtjb250ZW50OiJcZTAxMyJ9LmZvb3RhYmxlPnRoZWFkPnRyPnRoLmZvb3RhYmxlLXNvcnRlZC1kZXNjPnNwYW4uZm9vdGFibGUtc29ydC1pbmRpY2F0b3I6YmVmb3Jle2NvbnRlbnQ6IlxlMDEyIn0uZm9vdGFibGU+dGhlYWQ+dHI+dGg+c3Bhbi5mb290YWJsZS1zb3J0LWluZGljYXRvcntkaXNwbGF5OmlubGluZS1ibG9jaztmb250LWZhbWlseTonZm9vdGFibGUnO3NwZWFrOm5vbmU7Zm9udC1zdHlsZTpub3JtYWw7Zm9udC13ZWlnaHQ6bm9ybWFsO2ZvbnQtdmFyaWFudDpub3JtYWw7dGV4dC10cmFuc2Zvcm06bm9uZTstd2Via2l0LWZvbnQtc21vb3RoaW5nOmFudGlhbGlhc2VkO3BhZGRpbmctbGVmdDo1cHh9LmZvb3RhYmxlPnRoZWFkPnRyPnRoPnNwYW4uZm9vdGFibGUtc29ydC1pbmRpY2F0b3I6YmVmb3Jle2NvbnRlbnQ6IlxlMDIyIn0uZm9vdGFibGU+dGZvb3QgLnBhZ2luYXRpb257bWFyZ2luOjB9LmZvb3RhYmxlLm5vLXBhZ2luZyAuaGlkZS1pZi1uby1wYWdpbmd7ZGlzcGxheTpub25lfS5mb290YWJsZS1yb3ctZGV0YWlsLWlubmVye2Rpc3BsYXk6dGFibGV9LmZvb3RhYmxlLXJvdy1kZXRhaWwtcm93e2Rpc3BsYXk6dGFibGUtcm93O2xpbmUtaGVpZ2h0OjEuNWVtfS5mb290YWJsZS1yb3ctZGV0YWlsLWdyb3Vwe2Rpc3BsYXk6YmxvY2s7bGluZS1oZWlnaHQ6MmVtO2ZvbnQtc2l6ZToxLjJlbTtmb250LXdlaWdodDpib2xkfS5mb290YWJsZS1yb3ctZGV0YWlsLW5hbWV7ZGlzcGxheTp0YWJsZS1jZWxsO2ZvbnQtd2VpZ2h0OmJvbGQ7cGFkZGluZy1yaWdodDouNWVtfS5mb290YWJsZS1yb3ctZGV0YWlsLXZhbHVle2Rpc3BsYXk6dGFibGUtY2VsbH0uZm9vdGFibGUtb2Rke2JhY2tncm91bmQtY29sb3I6I2Y3ZjdmN30=]]></data>
	</file>
	<file>
	  <filename>/framework/css/index.html</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[]]></data>
	</file>
	<file>
	  <filename>/framework/css/jquery-ui-1.8.2.custom.css</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[LyoKKiBqUXVlcnkgVUkgQ1NTIEZyYW1ld29yawoqIENvcHlyaWdodCAoYykgMjAxMCBBVVRIT1JTLnR4dCAoaHR0cDovL2pxdWVyeXVpLmNvbS9hYm91dCkKKiBEdWFsIGxpY2Vuc2VkIHVuZGVyIHRoZSBNSVQgKE1JVC1MSUNFTlNFLnR4dCkgYW5kIEdQTCAoR1BMLUxJQ0VOU0UudHh0KSBsaWNlbnNlcy4KKi8KCi8qIExheW91dCBoZWxwZXJzCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwoudWktaGVscGVyLWhpZGRlbiB7IGRpc3BsYXk6IG5vbmU7IH0KLnVpLWhlbHBlci1oaWRkZW4tYWNjZXNzaWJsZSB7IHBvc2l0aW9uOiBhYnNvbHV0ZTsgbGVmdDogLTk5OTk5OTk5cHg7IH0KLnVpLWhlbHBlci1yZXNldCB7IG1hcmdpbjogMDsgcGFkZGluZzogMDsgYm9yZGVyOiAwOyBvdXRsaW5lOiAwOyBsaW5lLWhlaWdodDogMS4zOyB0ZXh0LWRlY29yYXRpb246IG5vbmU7IGZvbnQtc2l6ZTogMTAwJTsgbGlzdC1zdHlsZTogbm9uZTsgfQoudWktaGVscGVyLWNsZWFyZml4OmFmdGVyIHsgY29udGVudDogIi4iOyBkaXNwbGF5OiBibG9jazsgaGVpZ2h0OiAwOyBjbGVhcjogYm90aDsgdmlzaWJpbGl0eTogaGlkZGVuOyB9Ci51aS1oZWxwZXItY2xlYXJmaXggeyBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7IH0KLyogcmVxdWlyZWQgY29tbWVudCBmb3IgY2xlYXJmaXggdG8gd29yayBpbiBPcGVyYSBcKi8KKiBodG1sIC51aS1oZWxwZXItY2xlYXJmaXggeyBoZWlnaHQ6MSU7IH0KLnVpLWhlbHBlci1jbGVhcmZpeCB7IGRpc3BsYXk6YmxvY2s7IH0KLyogZW5kIGNsZWFyZml4ICovCi51aS1oZWxwZXItemZpeCB7IHdpZHRoOiAxMDAlOyBoZWlnaHQ6IDEwMCU7IHRvcDogMDsgbGVmdDogMDsgcG9zaXRpb246IGFic29sdXRlOyBvcGFjaXR5OiAwOyBmaWx0ZXI6QWxwaGEoT3BhY2l0eT0wKTsgfQoKCi8qIEludGVyYWN0aW9uIEN1ZXMKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCi51aS1zdGF0ZS1kaXNhYmxlZCB7IGN1cnNvcjogZGVmYXVsdCAhaW1wb3J0YW50OyB9CgoKLyogSWNvbnMKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCgovKiBzdGF0ZXMgYW5kIGltYWdlcyAqLwoudWktaWNvbiB7IGRpc3BsYXk6IGJsb2NrOyB0ZXh0LWluZGVudDogLTk5OTk5cHg7IG92ZXJmbG93OiBoaWRkZW47IGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7IH0KCgovKiBNaXNjIHZpc3VhbHMKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCgovKiBPdmVybGF5cyAqLwoudWktd2lkZ2V0LW92ZXJsYXkgeyBwb3NpdGlvbjogYWJzb2x1dGU7IHRvcDogMDsgbGVmdDogMDsgd2lkdGg6IDEwMCU7IGhlaWdodDogMTAwJTsgfQoKCi8qCiogalF1ZXJ5IFVJIENTUyBGcmFtZXdvcmsKKiBDb3B5cmlnaHQgKGMpIDIwMTAgQVVUSE9SUy50eHQgKGh0dHA6Ly9qcXVlcnl1aS5jb20vYWJvdXQpCiogRHVhbCBsaWNlbnNlZCB1bmRlciB0aGUgTUlUIChNSVQtTElDRU5TRS50eHQpIGFuZCBHUEwgKEdQTC1MSUNFTlNFLnR4dCkgbGljZW5zZXMuCiogVG8gdmlldyBhbmQgbW9kaWZ5IHRoaXMgdGhlbWUsIHZpc2l0IGh0dHA6Ly9qcXVlcnl1aS5jb20vdGhlbWVyb2xsZXIvP2ZmRGVmYXVsdD1UcmVidWNoZXQlMjBNUywlMjBUYWhvbWEsJTIwVmVyZGFuYSwlMjBBcmlhbCwlMjBzYW5zLXNlcmlmJmZ3RGVmYXVsdD1ib2xkJmZzRGVmYXVsdD0xLjFlbSZjb3JuZXJSYWRpdXM9NHB4JmJnQ29sb3JIZWFkZXI9ZjZhODI4JmJnVGV4dHVyZUhlYWRlcj0xMl9nbG9zc193YXZlLnBuZyZiZ0ltZ09wYWNpdHlIZWFkZXI9MzUmYm9yZGVyQ29sb3JIZWFkZXI9ZTc4ZjA4JmZjSGVhZGVyPWZmZmZmZiZpY29uQ29sb3JIZWFkZXI9ZmZmZmZmJmJnQ29sb3JDb250ZW50PWVlZWVlZSZiZ1RleHR1cmVDb250ZW50PTAzX2hpZ2hsaWdodF9zb2Z0LnBuZyZiZ0ltZ09wYWNpdHlDb250ZW50PTEwMCZib3JkZXJDb2xvckNvbnRlbnQ9ZGRkZGRkJmZjQ29udGVudD0zMzMzMzMmaWNvbkNvbG9yQ29udGVudD0yMjIyMjImYmdDb2xvckRlZmF1bHQ9ZjZmNmY2JmJnVGV4dHVyZURlZmF1bHQ9MDJfZ2xhc3MucG5nJmJnSW1nT3BhY2l0eURlZmF1bHQ9MTAwJmJvcmRlckNvbG9yRGVmYXVsdD1jY2NjY2MmZmNEZWZhdWx0PTFjOTRjNCZpY29uQ29sb3JEZWZhdWx0PWVmOGMwOCZiZ0NvbG9ySG92ZXI9ZmRmNWNlJmJnVGV4dHVyZUhvdmVyPTAyX2dsYXNzLnBuZyZiZ0ltZ09wYWNpdHlIb3Zlcj0xMDAmYm9yZGVyQ29sb3JIb3Zlcj1mYmNiMDkmZmNIb3Zlcj1jNzc0MDUmaWNvbkNvbG9ySG92ZXI9ZWY4YzA4JmJnQ29sb3JBY3RpdmU9ZmZmZmZmJmJnVGV4dHVyZUFjdGl2ZT0wMl9nbGFzcy5wbmcmYmdJbWdPcGFjaXR5QWN0aXZlPTY1JmJvcmRlckNvbG9yQWN0aXZlPWZiZDg1MCZmY0FjdGl2ZT1lYjhmMDAmaWNvbkNvbG9yQWN0aXZlPWVmOGMwOCZiZ0NvbG9ySGlnaGxpZ2h0PWZmZTQ1YyZiZ1RleHR1cmVIaWdobGlnaHQ9MDNfaGlnaGxpZ2h0X3NvZnQucG5nJmJnSW1nT3BhY2l0eUhpZ2hsaWdodD03NSZib3JkZXJDb2xvckhpZ2hsaWdodD1mZWQyMmYmZmNIaWdobGlnaHQ9MzYzNjM2Jmljb25Db2xvckhpZ2hsaWdodD0yMjhlZjEmYmdDb2xvckVycm9yPWI4MTkwMCZiZ1RleHR1cmVFcnJvcj0wOF9kaWFnb25hbHNfdGhpY2sucG5nJmJnSW1nT3BhY2l0eUVycm9yPTE4JmJvcmRlckNvbG9yRXJyb3I9Y2QwYTBhJmZjRXJyb3I9ZmZmZmZmJmljb25Db2xvckVycm9yPWZmZDI3YSZiZ0NvbG9yT3ZlcmxheT02NjY2NjYmYmdUZXh0dXJlT3ZlcmxheT0wOF9kaWFnb25hbHNfdGhpY2sucG5nJmJnSW1nT3BhY2l0eU92ZXJsYXk9MjAmb3BhY2l0eU92ZXJsYXk9NTAmYmdDb2xvclNoYWRvdz0wMDAwMDAmYmdUZXh0dXJlU2hhZG93PTAxX2ZsYXQucG5nJmJnSW1nT3BhY2l0eVNoYWRvdz0xMCZvcGFjaXR5U2hhZG93PTIwJnRoaWNrbmVzc1NoYWRvdz01cHgmb2Zmc2V0VG9wU2hhZG93PS01cHgmb2Zmc2V0TGVmdFNoYWRvdz0tNXB4JmNvcm5lclJhZGl1c1NoYWRvdz01cHgKKi8KCgovKiBDb21wb25lbnQgY29udGFpbmVycwotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KLnVpLXdpZGdldCB7IGZvbnQtZmFtaWx5OiBUcmVidWNoZXQgTVMsIFRhaG9tYSwgVmVyZGFuYSwgQXJpYWwsIHNhbnMtc2VyaWY7IGZvbnQtc2l6ZTogMS4xZW07IH0KLnVpLXdpZGdldCAudWktd2lkZ2V0IHsgZm9udC1zaXplOiAxZW07IH0KLnVpLXdpZGdldCBpbnB1dCwgLnVpLXdpZGdldCBzZWxlY3QsIC51aS13aWRnZXQgdGV4dGFyZWEsIC51aS13aWRnZXQgYnV0dG9uIHsgZm9udC1mYW1pbHk6IFRyZWJ1Y2hldCBNUywgVGFob21hLCBWZXJkYW5hLCBBcmlhbCwgc2Fucy1zZXJpZjsgZm9udC1zaXplOiAxZW07IH0KLnVpLXdpZGdldC1jb250ZW50IHsgYm9yZGVyOiAxcHggc29saWQgI2RkZGRkZDsgYmFja2dyb3VuZDogI2VlZWVlZSB1cmwoLi4vLi4vaW1hZ2VzL2pxdWVyeXVpL3VpLWJnX2hpZ2hsaWdodC1zb2Z0XzEwMF9lZWVlZWVfMXgxMDAucG5nKSA1MCUgdG9wIHJlcGVhdC14OyBjb2xvcjogIzMzMzMzMzsgfQoudWktd2lkZ2V0LWNvbnRlbnQgYSB7IGNvbG9yOiAjMzMzMzMzOyB9Ci51aS13aWRnZXQtaGVhZGVyIHsgYm9yZGVyOiAxcHggc29saWQgI2U3OGYwODsgYmFja2dyb3VuZDogI2Y2YTgyOCB1cmwoLi4vLi4vaW1hZ2VzL2pxdWVyeXVpL3VpLWJnX2dsb3NzLXdhdmVfMzVfZjZhODI4XzUwMHgxMDAucG5nKSA1MCUgNTAlIHJlcGVhdC14OyBjb2xvcjogI2ZmZmZmZjsgZm9udC13ZWlnaHQ6IGJvbGQ7IH0KLnVpLXdpZGdldC1oZWFkZXIgYSB7IGNvbG9yOiAjZmZmZmZmOyB9CgovKiBJbnRlcmFjdGlvbiBzdGF0ZXMKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCi51aS1zdGF0ZS1kZWZhdWx0LCAudWktd2lkZ2V0LWNvbnRlbnQgLnVpLXN0YXRlLWRlZmF1bHQsIC51aS13aWRnZXQtaGVhZGVyIC51aS1zdGF0ZS1kZWZhdWx0IHsgYm9yZGVyOiAxcHggc29saWQgI2NjY2NjYzsgYmFja2dyb3VuZDogI2Y2ZjZmNiB1cmwoLi4vLi4vaW1hZ2VzL2pxdWVyeXVpL3VpLWJnX2dsYXNzXzEwMF9mNmY2ZjZfMXg0MDAucG5nKSA1MCUgNTAlIHJlcGVhdC14OyBmb250LXdlaWdodDogYm9sZDsgY29sb3I6ICMxYzk0YzQ7IH0KLnVpLXN0YXRlLWRlZmF1bHQgYSwgLnVpLXN0YXRlLWRlZmF1bHQgYTpsaW5rLCAudWktc3RhdGUtZGVmYXVsdCBhOnZpc2l0ZWQgeyBjb2xvcjogIzFjOTRjNDsgdGV4dC1kZWNvcmF0aW9uOiBub25lOyB9Ci51aS1zdGF0ZS1ob3ZlciwgLnVpLXdpZGdldC1jb250ZW50IC51aS1zdGF0ZS1ob3ZlciwgLnVpLXdpZGdldC1oZWFkZXIgLnVpLXN0YXRlLWhvdmVyLCAudWktc3RhdGUtZm9jdXMsIC51aS13aWRnZXQtY29udGVudCAudWktc3RhdGUtZm9jdXMsIC51aS13aWRnZXQtaGVhZGVyIC51aS1zdGF0ZS1mb2N1cyB7IGJvcmRlcjogMXB4IHNvbGlkICNmYmNiMDk7IGJhY2tncm91bmQ6ICNmZGY1Y2UgdXJsKC4uLy4uL2ltYWdlcy9qcXVlcnl1aS91aS1iZ19nbGFzc18xMDBfZmRmNWNlXzF4NDAwLnBuZykgNTAlIDUwJSByZXBlYXQteDsgZm9udC13ZWlnaHQ6IGJvbGQ7IGNvbG9yOiAjYzc3NDA1OyB9Ci51aS1zdGF0ZS1ob3ZlciBhLCAudWktc3RhdGUtaG92ZXIgYTpob3ZlciB7IGNvbG9yOiAjYzc3NDA1OyB0ZXh0LWRlY29yYXRpb246IG5vbmU7IH0KLnVpLXN0YXRlLWFjdGl2ZSwgLnVpLXdpZGdldC1jb250ZW50IC51aS1zdGF0ZS1hY3RpdmUsIC51aS13aWRnZXQtaGVhZGVyIC51aS1zdGF0ZS1hY3RpdmUgeyBib3JkZXI6IDFweCBzb2xpZCAjZmJkODUwOyBiYWNrZ3JvdW5kOiAjZmZmZmZmIHVybCguLi8uLi9pbWFnZXMvanF1ZXJ5dWkvdWktYmdfZ2xhc3NfNjVfZmZmZmZmXzF4NDAwLnBuZykgNTAlIDUwJSByZXBlYXQteDsgZm9udC13ZWlnaHQ6IGJvbGQ7IGNvbG9yOiAjZWI4ZjAwOyB9Ci51aS1zdGF0ZS1hY3RpdmUgYSwgLnVpLXN0YXRlLWFjdGl2ZSBhOmxpbmssIC51aS1zdGF0ZS1hY3RpdmUgYTp2aXNpdGVkIHsgY29sb3I6ICNlYjhmMDA7IHRleHQtZGVjb3JhdGlvbjogbm9uZTsgfQoudWktd2lkZ2V0IDphY3RpdmUgeyBvdXRsaW5lOiBub25lOyB9CgovKiBJbnRlcmFjdGlvbiBDdWVzCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwoudWktc3RhdGUtaGlnaGxpZ2h0LCAudWktd2lkZ2V0LWNvbnRlbnQgLnVpLXN0YXRlLWhpZ2hsaWdodCwgLnVpLXdpZGdldC1oZWFkZXIgLnVpLXN0YXRlLWhpZ2hsaWdodCAge2JvcmRlcjogMXB4IHNvbGlkICNmZWQyMmY7IGJhY2tncm91bmQ6ICNmZmU0NWMgdXJsKC4uLy4uL2ltYWdlcy9qcXVlcnl1aS91aS1iZ19oaWdobGlnaHQtc29mdF83NV9mZmU0NWNfMXgxMDAucG5nKSA1MCUgdG9wIHJlcGVhdC14OyBjb2xvcjogIzM2MzYzNjsgfQoudWktc3RhdGUtaGlnaGxpZ2h0IGEsIC51aS13aWRnZXQtY29udGVudCAudWktc3RhdGUtaGlnaGxpZ2h0IGEsLnVpLXdpZGdldC1oZWFkZXIgLnVpLXN0YXRlLWhpZ2hsaWdodCBhIHsgY29sb3I6ICMzNjM2MzY7IH0KLnVpLXN0YXRlLWVycm9yLCAudWktd2lkZ2V0LWNvbnRlbnQgLnVpLXN0YXRlLWVycm9yLCAudWktd2lkZ2V0LWhlYWRlciAudWktc3RhdGUtZXJyb3Ige2JvcmRlcjogMXB4IHNvbGlkICNjZDBhMGE7IGJhY2tncm91bmQ6ICNiODE5MDAgdXJsKC4uLy4uL2ltYWdlcy9qcXVlcnl1aS91aS1iZ19kaWFnb25hbHMtdGhpY2tfMThfYjgxOTAwXzQweDQwLnBuZykgNTAlIDUwJSByZXBlYXQ7IGNvbG9yOiAjZmZmZmZmOyB9Ci51aS1zdGF0ZS1lcnJvciBhLCAudWktd2lkZ2V0LWNvbnRlbnQgLnVpLXN0YXRlLWVycm9yIGEsIC51aS13aWRnZXQtaGVhZGVyIC51aS1zdGF0ZS1lcnJvciBhIHsgY29sb3I6ICNmZmZmZmY7IH0KLnVpLXN0YXRlLWVycm9yLXRleHQsIC51aS13aWRnZXQtY29udGVudCAudWktc3RhdGUtZXJyb3ItdGV4dCwgLnVpLXdpZGdldC1oZWFkZXIgLnVpLXN0YXRlLWVycm9yLXRleHQgeyBjb2xvcjogI2ZmZmZmZjsgfQoudWktcHJpb3JpdHktcHJpbWFyeSwgLnVpLXdpZGdldC1jb250ZW50IC51aS1wcmlvcml0eS1wcmltYXJ5LCAudWktd2lkZ2V0LWhlYWRlciAudWktcHJpb3JpdHktcHJpbWFyeSB7IGZvbnQtd2VpZ2h0OiBib2xkOyB9Ci51aS1wcmlvcml0eS1zZWNvbmRhcnksIC51aS13aWRnZXQtY29udGVudCAudWktcHJpb3JpdHktc2Vjb25kYXJ5LCAgLnVpLXdpZGdldC1oZWFkZXIgLnVpLXByaW9yaXR5LXNlY29uZGFyeSB7IG9wYWNpdHk6IC43OyBmaWx0ZXI6QWxwaGEoT3BhY2l0eT03MCk7IGZvbnQtd2VpZ2h0OiBub3JtYWw7IH0KLnVpLXN0YXRlLWRpc2FibGVkLCAudWktd2lkZ2V0LWNvbnRlbnQgLnVpLXN0YXRlLWRpc2FibGVkLCAudWktd2lkZ2V0LWhlYWRlciAudWktc3RhdGUtZGlzYWJsZWQgeyBvcGFjaXR5OiAuMzU7IGZpbHRlcjpBbHBoYShPcGFjaXR5PTM1KTsgYmFja2dyb3VuZC1pbWFnZTogbm9uZTsgfQoKLyogSWNvbnMKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCgovKiBzdGF0ZXMgYW5kIGltYWdlcyAqLwoudWktaWNvbiB7IHdpZHRoOiAxNnB4OyBoZWlnaHQ6IDE2cHg7IGJhY2tncm91bmQtaW1hZ2U6IHVybCguLi8uLi9pbWFnZXMvanF1ZXJ5dWkvdWktaWNvbnNfMjIyMjIyXzI1NngyNDAucG5nKTsgfQoudWktd2lkZ2V0LWNvbnRlbnQgLnVpLWljb24ge2JhY2tncm91bmQtaW1hZ2U6IHVybCguLi8uLi9pbWFnZXMvanF1ZXJ5dWkvdWktaWNvbnNfMjIyMjIyXzI1NngyNDAucG5nKTsgfQoudWktd2lkZ2V0LWhlYWRlciAudWktaWNvbiB7YmFja2dyb3VuZC1pbWFnZTogdXJsKC4uLy4uL2ltYWdlcy9qcXVlcnl1aS91aS1pY29uc19mZmZmZmZfMjU2eDI0MC5wbmcpOyB9Ci51aS1zdGF0ZS1kZWZhdWx0IC51aS1pY29uIHsgYmFja2dyb3VuZC1pbWFnZTogdXJsKC4uLy4uL2ltYWdlcy9qcXVlcnl1aS91aS1pY29uc19lZjhjMDhfMjU2eDI0MC5wbmcpOyB9Ci51aS1zdGF0ZS1ob3ZlciAudWktaWNvbiwgLnVpLXN0YXRlLWZvY3VzIC51aS1pY29uIHtiYWNrZ3JvdW5kLWltYWdlOiB1cmwoLi4vLi4vaW1hZ2VzL2pxdWVyeXVpL3VpLWljb25zX2VmOGMwOF8yNTZ4MjQwLnBuZyk7IH0KLnVpLXN0YXRlLWFjdGl2ZSAudWktaWNvbiB7YmFja2dyb3VuZC1pbWFnZTogdXJsKC4uLy4uL2ltYWdlcy9qcXVlcnl1aS91aS1pY29uc19lZjhjMDhfMjU2eDI0MC5wbmcpOyB9Ci51aS1zdGF0ZS1oaWdobGlnaHQgLnVpLWljb24ge2JhY2tncm91bmQtaW1hZ2U6IHVybCguLi8uLi9pbWFnZXMvanF1ZXJ5dWkvdWktaWNvbnNfMjI4ZWYxXzI1NngyNDAucG5nKTsgfQoudWktc3RhdGUtZXJyb3IgLnVpLWljb24sIC51aS1zdGF0ZS1lcnJvci10ZXh0IC51aS1pY29uIHtiYWNrZ3JvdW5kLWltYWdlOiB1cmwoLi4vLi4vaW1hZ2VzL2pxdWVyeXVpL3VpLWljb25zX2ZmZDI3YV8yNTZ4MjQwLnBuZyk7IH0KCi8qIHBvc2l0aW9uaW5nICovCi51aS1pY29uLWNhcmF0LTEtbiB7IGJhY2tncm91bmQtcG9zaXRpb246IDAgMDsgfQoudWktaWNvbi1jYXJhdC0xLW5lIHsgYmFja2dyb3VuZC1wb3NpdGlvbjogLTE2cHggMDsgfQoudWktaWNvbi1jYXJhdC0xLWUgeyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMzJweCAwOyB9Ci51aS1pY29uLWNhcmF0LTEtc2UgeyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtNDhweCAwOyB9Ci51aS1pY29uLWNhcmF0LTEtcyB7IGJhY2tncm91bmQtcG9zaXRpb246IC02NHB4IDA7IH0KLnVpLWljb24tY2FyYXQtMS1zdyB7IGJhY2tncm91bmQtcG9zaXRpb246IC04MHB4IDA7IH0KLnVpLWljb24tY2FyYXQtMS13IHsgYmFja2dyb3VuZC1wb3NpdGlvbjogLTk2cHggMDsgfQoudWktaWNvbi1jYXJhdC0xLW53IHsgYmFja2dyb3VuZC1wb3NpdGlvbjogLTExMnB4IDA7IH0KLnVpLWljb24tY2FyYXQtMi1uLXMgeyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMTI4cHggMDsgfQoudWktaWNvbi1jYXJhdC0yLWUtdyB7IGJhY2tncm91bmQtcG9zaXRpb246IC0xNDRweCAwOyB9Ci51aS1pY29uLXRyaWFuZ2xlLTEtbiB7IGJhY2tncm91bmQtcG9zaXRpb246IDAgLTE2cHg7IH0KLnVpLWljb24tdHJpYW5nbGUtMS1uZSB7IGJhY2tncm91bmQtcG9zaXRpb246IC0xNnB4IC0xNnB4OyB9Ci51aS1pY29uLXRyaWFuZ2xlLTEtZSB7IGJhY2tncm91bmQtcG9zaXRpb246IC0zMnB4IC0xNnB4OyB9Ci51aS1pY29uLXRyaWFuZ2xlLTEtc2UgeyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtNDhweCAtMTZweDsgfQoudWktaWNvbi10cmlhbmdsZS0xLXMgeyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtNjRweCAtMTZweDsgfQoudWktaWNvbi10cmlhbmdsZS0xLXN3IHsgYmFja2dyb3VuZC1wb3NpdGlvbjogLTgwcHggLTE2cHg7IH0KLnVpLWljb24tdHJpYW5nbGUtMS13IHsgYmFja2dyb3VuZC1wb3NpdGlvbjogLTk2cHggLTE2cHg7IH0KLnVpLWljb24tdHJpYW5nbGUtMS1udyB7IGJhY2tncm91bmQtcG9zaXRpb246IC0xMTJweCAtMTZweDsgfQoudWktaWNvbi10cmlhbmdsZS0yLW4tcyB7IGJhY2tncm91bmQtcG9zaXRpb246IC0xMjhweCAtMTZweDsgfQoudWktaWNvbi10cmlhbmdsZS0yLWUtdyB7IGJhY2tncm91bmQtcG9zaXRpb246IC0xNDRweCAtMTZweDsgfQoudWktaWNvbi1hcnJvdy0xLW4geyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAwIC0zMnB4OyB9Ci51aS1pY29uLWFycm93LTEtbmUgeyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMTZweCAtMzJweDsgfQoudWktaWNvbi1hcnJvdy0xLWUgeyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMzJweCAtMzJweDsgfQoudWktaWNvbi1hcnJvdy0xLXNlIHsgYmFja2dyb3VuZC1wb3NpdGlvbjogLTQ4cHggLTMycHg7IH0KLnVpLWljb24tYXJyb3ctMS1zIHsgYmFja2dyb3VuZC1wb3NpdGlvbjogLTY0cHggLTMycHg7IH0KLnVpLWljb24tYXJyb3ctMS1zdyB7IGJhY2tncm91bmQtcG9zaXRpb246IC04MHB4IC0zMnB4OyB9Ci51aS1pY29uLWFycm93LTEtdyB7IGJhY2tncm91bmQtcG9zaXRpb246IC05NnB4IC0zMnB4OyB9Ci51aS1pY29uLWFycm93LTEtbncgeyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMTEycHggLTMycHg7IH0KLnVpLWljb24tYXJyb3ctMi1uLXMgeyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMTI4cHggLTMycHg7IH0KLnVpLWljb24tYXJyb3ctMi1uZS1zdyB7IGJhY2tncm91bmQtcG9zaXRpb246IC0xNDRweCAtMzJweDsgfQoudWktaWNvbi1hcnJvdy0yLWUtdyB7IGJhY2tncm91bmQtcG9zaXRpb246IC0xNjBweCAtMzJweDsgfQoudWktaWNvbi1hcnJvdy0yLXNlLW53IHsgYmFja2dyb3VuZC1wb3NpdGlvbjogLTE3NnB4IC0zMnB4OyB9Ci51aS1pY29uLWFycm93c3RvcC0xLW4geyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMTkycHggLTMycHg7IH0KLnVpLWljb24tYXJyb3dzdG9wLTEtZSB7IGJhY2tncm91bmQtcG9zaXRpb246IC0yMDhweCAtMzJweDsgfQoudWktaWNvbi1hcnJvd3N0b3AtMS1zIHsgYmFja2dyb3VuZC1wb3NpdGlvbjogLTIyNHB4IC0zMnB4OyB9Ci51aS1pY29uLWFycm93c3RvcC0xLXcgeyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMjQwcHggLTMycHg7IH0KLnVpLWljb24tYXJyb3d0aGljay0xLW4geyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAwIC00OHB4OyB9Ci51aS1pY29uLWFycm93dGhpY2stMS1uZSB7IGJhY2tncm91bmQtcG9zaXRpb246IC0xNnB4IC00OHB4OyB9Ci51aS1pY29uLWFycm93dGhpY2stMS1lIHsgYmFja2dyb3VuZC1wb3NpdGlvbjogLTMycHggLTQ4cHg7IH0KLnVpLWljb24tYXJyb3d0aGljay0xLXNlIHsgYmFja2dyb3VuZC1wb3NpdGlvbjogLTQ4cHggLTQ4cHg7IH0KLnVpLWljb24tYXJyb3d0aGljay0xLXMgeyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtNjRweCAtNDhweDsgfQoudWktaWNvbi1hcnJvd3RoaWNrLTEtc3cgeyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtODBweCAtNDhweDsgfQoudWktaWNvbi1hcnJvd3RoaWNrLTEtdyB7IGJhY2tncm91bmQtcG9zaXRpb246IC05NnB4IC00OHB4OyB9Ci51aS1pY29uLWFycm93dGhpY2stMS1udyB7IGJhY2tncm91bmQtcG9zaXRpb246IC0xMTJweCAtNDhweDsgfQoudWktaWNvbi1hcnJvd3RoaWNrLTItbi1zIHsgYmFja2dyb3VuZC1wb3NpdGlvbjogLTEyOHB4IC00OHB4OyB9Ci51aS1pY29uLWFycm93dGhpY2stMi1uZS1zdyB7IGJhY2tncm91bmQtcG9zaXRpb246IC0xNDRweCAtNDhweDsgfQoudWktaWNvbi1hcnJvd3RoaWNrLTItZS13IHsgYmFja2dyb3VuZC1wb3NpdGlvbjogLTE2MHB4IC00OHB4OyB9Ci51aS1pY29uLWFycm93dGhpY2stMi1zZS1udyB7IGJhY2tncm91bmQtcG9zaXRpb246IC0xNzZweCAtNDhweDsgfQoudWktaWNvbi1hcnJvd3RoaWNrc3RvcC0xLW4geyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMTkycHggLTQ4cHg7IH0KLnVpLWljb24tYXJyb3d0aGlja3N0b3AtMS1lIHsgYmFja2dyb3VuZC1wb3NpdGlvbjogLTIwOHB4IC00OHB4OyB9Ci51aS1pY29uLWFycm93dGhpY2tzdG9wLTEtcyB7IGJhY2tncm91bmQtcG9zaXRpb246IC0yMjRweCAtNDhweDsgfQoudWktaWNvbi1hcnJvd3RoaWNrc3RvcC0xLXcgeyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMjQwcHggLTQ4cHg7IH0KLnVpLWljb24tYXJyb3dyZXR1cm50aGljay0xLXcgeyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAwIC02NHB4OyB9Ci51aS1pY29uLWFycm93cmV0dXJudGhpY2stMS1uIHsgYmFja2dyb3VuZC1wb3NpdGlvbjogLTE2cHggLTY0cHg7IH0KLnVpLWljb24tYXJyb3dyZXR1cm50aGljay0xLWUgeyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMzJweCAtNjRweDsgfQoudWktaWNvbi1hcnJvd3JldHVybnRoaWNrLTEtcyB7IGJhY2tncm91bmQtcG9zaXRpb246IC00OHB4IC02NHB4OyB9Ci51aS1pY29uLWFycm93cmV0dXJuLTEtdyB7IGJhY2tncm91bmQtcG9zaXRpb246IC02NHB4IC02NHB4OyB9Ci51aS1pY29uLWFycm93cmV0dXJuLTEtbiB7IGJhY2tncm91bmQtcG9zaXRpb246IC04MHB4IC02NHB4OyB9Ci51aS1pY29uLWFycm93cmV0dXJuLTEtZSB7IGJhY2tncm91bmQtcG9zaXRpb246IC05NnB4IC02NHB4OyB9Ci51aS1pY29uLWFycm93cmV0dXJuLTEtcyB7IGJhY2tncm91bmQtcG9zaXRpb246IC0xMTJweCAtNjRweDsgfQoudWktaWNvbi1hcnJvd3JlZnJlc2gtMS13IHsgYmFja2dyb3VuZC1wb3NpdGlvbjogLTEyOHB4IC02NHB4OyB9Ci51aS1pY29uLWFycm93cmVmcmVzaC0xLW4geyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMTQ0cHggLTY0cHg7IH0KLnVpLWljb24tYXJyb3dyZWZyZXNoLTEtZSB7IGJhY2tncm91bmQtcG9zaXRpb246IC0xNjBweCAtNjRweDsgfQoudWktaWNvbi1hcnJvd3JlZnJlc2gtMS1zIHsgYmFja2dyb3VuZC1wb3NpdGlvbjogLTE3NnB4IC02NHB4OyB9Ci51aS1pY29uLWFycm93LTQgeyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAwIC04MHB4OyB9Ci51aS1pY29uLWFycm93LTQtZGlhZyB7IGJhY2tncm91bmQtcG9zaXRpb246IC0xNnB4IC04MHB4OyB9Ci51aS1pY29uLWV4dGxpbmsgeyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMzJweCAtODBweDsgfQoudWktaWNvbi1uZXd3aW4geyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtNDhweCAtODBweDsgfQoudWktaWNvbi1yZWZyZXNoIHsgYmFja2dyb3VuZC1wb3NpdGlvbjogLTY0cHggLTgwcHg7IH0KLnVpLWljb24tc2h1ZmZsZSB7IGJhY2tncm91bmQtcG9zaXRpb246IC04MHB4IC04MHB4OyB9Ci51aS1pY29uLXRyYW5zZmVyLWUtdyB7IGJhY2tncm91bmQtcG9zaXRpb246IC05NnB4IC04MHB4OyB9Ci51aS1pY29uLXRyYW5zZmVydGhpY2stZS13IHsgYmFja2dyb3VuZC1wb3NpdGlvbjogLTExMnB4IC04MHB4OyB9Ci51aS1pY29uLWZvbGRlci1jb2xsYXBzZWQgeyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAwIC05NnB4OyB9Ci51aS1pY29uLWZvbGRlci1vcGVuIHsgYmFja2dyb3VuZC1wb3NpdGlvbjogLTE2cHggLTk2cHg7IH0KLnVpLWljb24tZG9jdW1lbnQgeyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMzJweCAtOTZweDsgfQoudWktaWNvbi1kb2N1bWVudC1iIHsgYmFja2dyb3VuZC1wb3NpdGlvbjogLTQ4cHggLTk2cHg7IH0KLnVpLWljb24tbm90ZSB7IGJhY2tncm91bmQtcG9zaXRpb246IC02NHB4IC05NnB4OyB9Ci51aS1pY29uLW1haWwtY2xvc2VkIHsgYmFja2dyb3VuZC1wb3NpdGlvbjogLTgwcHggLTk2cHg7IH0KLnVpLWljb24tbWFpbC1vcGVuIHsgYmFja2dyb3VuZC1wb3NpdGlvbjogLTk2cHggLTk2cHg7IH0KLnVpLWljb24tc3VpdGNhc2UgeyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMTEycHggLTk2cHg7IH0KLnVpLWljb24tY29tbWVudCB7IGJhY2tncm91bmQtcG9zaXRpb246IC0xMjhweCAtOTZweDsgfQoudWktaWNvbi1wZXJzb24geyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMTQ0cHggLTk2cHg7IH0KLnVpLWljb24tcHJpbnQgeyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMTYwcHggLTk2cHg7IH0KLnVpLWljb24tdHJhc2ggeyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMTc2cHggLTk2cHg7IH0KLnVpLWljb24tbG9ja2VkIHsgYmFja2dyb3VuZC1wb3NpdGlvbjogLTE5MnB4IC05NnB4OyB9Ci51aS1pY29uLXVubG9ja2VkIHsgYmFja2dyb3VuZC1wb3NpdGlvbjogLTIwOHB4IC05NnB4OyB9Ci51aS1pY29uLWJvb2ttYXJrIHsgYmFja2dyb3VuZC1wb3NpdGlvbjogLTIyNHB4IC05NnB4OyB9Ci51aS1pY29uLXRhZyB7IGJhY2tncm91bmQtcG9zaXRpb246IC0yNDBweCAtOTZweDsgfQoudWktaWNvbi1ob21lIHsgYmFja2dyb3VuZC1wb3NpdGlvbjogMCAtMTEycHg7IH0KLnVpLWljb24tZmxhZyB7IGJhY2tncm91bmQtcG9zaXRpb246IC0xNnB4IC0xMTJweDsgfQoudWktaWNvbi1jYWxlbmRhciB7IGJhY2tncm91bmQtcG9zaXRpb246IC0zMnB4IC0xMTJweDsgfQoudWktaWNvbi1jYXJ0IHsgYmFja2dyb3VuZC1wb3NpdGlvbjogLTQ4cHggLTExMnB4OyB9Ci51aS1pY29uLXBlbmNpbCB7IGJhY2tncm91bmQtcG9zaXRpb246IC02NHB4IC0xMTJweDsgfQoudWktaWNvbi1jbG9jayB7IGJhY2tncm91bmQtcG9zaXRpb246IC04MHB4IC0xMTJweDsgfQoudWktaWNvbi1kaXNrIHsgYmFja2dyb3VuZC1wb3NpdGlvbjogLTk2cHggLTExMnB4OyB9Ci51aS1pY29uLWNhbGN1bGF0b3IgeyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMTEycHggLTExMnB4OyB9Ci51aS1pY29uLXpvb21pbiB7IGJhY2tncm91bmQtcG9zaXRpb246IC0xMjhweCAtMTEycHg7IH0KLnVpLWljb24tem9vbW91dCB7IGJhY2tncm91bmQtcG9zaXRpb246IC0xNDRweCAtMTEycHg7IH0KLnVpLWljb24tc2VhcmNoIHsgYmFja2dyb3VuZC1wb3NpdGlvbjogLTE2MHB4IC0xMTJweDsgfQoudWktaWNvbi13cmVuY2ggeyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMTc2cHggLTExMnB4OyB9Ci51aS1pY29uLWdlYXIgeyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMTkycHggLTExMnB4OyB9Ci51aS1pY29uLWhlYXJ0IHsgYmFja2dyb3VuZC1wb3NpdGlvbjogLTIwOHB4IC0xMTJweDsgfQoudWktaWNvbi1zdGFyIHsgYmFja2dyb3VuZC1wb3NpdGlvbjogLTIyNHB4IC0xMTJweDsgfQoudWktaWNvbi1saW5rIHsgYmFja2dyb3VuZC1wb3NpdGlvbjogLTI0MHB4IC0xMTJweDsgfQoudWktaWNvbi1jYW5jZWwgeyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAwIC0xMjhweDsgfQoudWktaWNvbi1wbHVzIHsgYmFja2dyb3VuZC1wb3NpdGlvbjogLTE2cHggLTEyOHB4OyB9Ci51aS1pY29uLXBsdXN0aGljayB7IGJhY2tncm91bmQtcG9zaXRpb246IC0zMnB4IC0xMjhweDsgfQoudWktaWNvbi1taW51cyB7IGJhY2tncm91bmQtcG9zaXRpb246IC00OHB4IC0xMjhweDsgfQoudWktaWNvbi1taW51c3RoaWNrIHsgYmFja2dyb3VuZC1wb3NpdGlvbjogLTY0cHggLTEyOHB4OyB9Ci51aS1pY29uLWNsb3NlIHsgYmFja2dyb3VuZC1wb3NpdGlvbjogLTgwcHggLTEyOHB4OyB9Ci51aS1pY29uLWNsb3NldGhpY2sgeyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtOTZweCAtMTI4cHg7IH0KLnVpLWljb24ta2V5IHsgYmFja2dyb3VuZC1wb3NpdGlvbjogLTExMnB4IC0xMjhweDsgfQoudWktaWNvbi1saWdodGJ1bGIgeyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMTI4cHggLTEyOHB4OyB9Ci51aS1pY29uLXNjaXNzb3JzIHsgYmFja2dyb3VuZC1wb3NpdGlvbjogLTE0NHB4IC0xMjhweDsgfQoudWktaWNvbi1jbGlwYm9hcmQgeyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMTYwcHggLTEyOHB4OyB9Ci51aS1pY29uLWNvcHkgeyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMTc2cHggLTEyOHB4OyB9Ci51aS1pY29uLWNvbnRhY3QgeyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMTkycHggLTEyOHB4OyB9Ci51aS1pY29uLWltYWdlIHsgYmFja2dyb3VuZC1wb3NpdGlvbjogLTIwOHB4IC0xMjhweDsgfQoudWktaWNvbi12aWRlbyB7IGJhY2tncm91bmQtcG9zaXRpb246IC0yMjRweCAtMTI4cHg7IH0KLnVpLWljb24tc2NyaXB0IHsgYmFja2dyb3VuZC1wb3NpdGlvbjogLTI0MHB4IC0xMjhweDsgfQoudWktaWNvbi1hbGVydCB7IGJhY2tncm91bmQtcG9zaXRpb246IDAgLTE0NHB4OyB9Ci51aS1pY29uLWluZm8geyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMTZweCAtMTQ0cHg7IH0KLnVpLWljb24tbm90aWNlIHsgYmFja2dyb3VuZC1wb3NpdGlvbjogLTMycHggLTE0NHB4OyB9Ci51aS1pY29uLWhlbHAgeyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtNDhweCAtMTQ0cHg7IH0KLnVpLWljb24tY2hlY2sgeyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtNjRweCAtMTQ0cHg7IH0KLnVpLWljb24tYnVsbGV0IHsgYmFja2dyb3VuZC1wb3NpdGlvbjogLTgwcHggLTE0NHB4OyB9Ci51aS1pY29uLXJhZGlvLW9mZiB7IGJhY2tncm91bmQtcG9zaXRpb246IC05NnB4IC0xNDRweDsgfQoudWktaWNvbi1yYWRpby1vbiB7IGJhY2tncm91bmQtcG9zaXRpb246IC0xMTJweCAtMTQ0cHg7IH0KLnVpLWljb24tcGluLXcgeyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMTI4cHggLTE0NHB4OyB9Ci51aS1pY29uLXBpbi1zIHsgYmFja2dyb3VuZC1wb3NpdGlvbjogLTE0NHB4IC0xNDRweDsgfQoudWktaWNvbi1wbGF5IHsgYmFja2dyb3VuZC1wb3NpdGlvbjogMCAtMTYwcHg7IH0KLnVpLWljb24tcGF1c2UgeyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMTZweCAtMTYwcHg7IH0KLnVpLWljb24tc2Vlay1uZXh0IHsgYmFja2dyb3VuZC1wb3NpdGlvbjogLTMycHggLTE2MHB4OyB9Ci51aS1pY29uLXNlZWstcHJldiB7IGJhY2tncm91bmQtcG9zaXRpb246IC00OHB4IC0xNjBweDsgfQoudWktaWNvbi1zZWVrLWVuZCB7IGJhY2tncm91bmQtcG9zaXRpb246IC02NHB4IC0xNjBweDsgfQoudWktaWNvbi1zZWVrLXN0YXJ0IHsgYmFja2dyb3VuZC1wb3NpdGlvbjogLTgwcHggLTE2MHB4OyB9Ci8qIHVpLWljb24tc2Vlay1maXJzdCBpcyBkZXByZWNhdGVkLCB1c2UgdWktaWNvbi1zZWVrLXN0YXJ0IGluc3RlYWQgKi8KLnVpLWljb24tc2Vlay1maXJzdCB7IGJhY2tncm91bmQtcG9zaXRpb246IC04MHB4IC0xNjBweDsgfQoudWktaWNvbi1zdG9wIHsgYmFja2dyb3VuZC1wb3NpdGlvbjogLTk2cHggLTE2MHB4OyB9Ci51aS1pY29uLWVqZWN0IHsgYmFja2dyb3VuZC1wb3NpdGlvbjogLTExMnB4IC0xNjBweDsgfQoudWktaWNvbi12b2x1bWUtb2ZmIHsgYmFja2dyb3VuZC1wb3NpdGlvbjogLTEyOHB4IC0xNjBweDsgfQoudWktaWNvbi12b2x1bWUtb24geyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMTQ0cHggLTE2MHB4OyB9Ci51aS1pY29uLXBvd2VyIHsgYmFja2dyb3VuZC1wb3NpdGlvbjogMCAtMTc2cHg7IH0KLnVpLWljb24tc2lnbmFsLWRpYWcgeyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMTZweCAtMTc2cHg7IH0KLnVpLWljb24tc2lnbmFsIHsgYmFja2dyb3VuZC1wb3NpdGlvbjogLTMycHggLTE3NnB4OyB9Ci51aS1pY29uLWJhdHRlcnktMCB7IGJhY2tncm91bmQtcG9zaXRpb246IC00OHB4IC0xNzZweDsgfQoudWktaWNvbi1iYXR0ZXJ5LTEgeyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtNjRweCAtMTc2cHg7IH0KLnVpLWljb24tYmF0dGVyeS0yIHsgYmFja2dyb3VuZC1wb3NpdGlvbjogLTgwcHggLTE3NnB4OyB9Ci51aS1pY29uLWJhdHRlcnktMyB7IGJhY2tncm91bmQtcG9zaXRpb246IC05NnB4IC0xNzZweDsgfQoudWktaWNvbi1jaXJjbGUtcGx1cyB7IGJhY2tncm91bmQtcG9zaXRpb246IDAgLTE5MnB4OyB9Ci51aS1pY29uLWNpcmNsZS1taW51cyB7IGJhY2tncm91bmQtcG9zaXRpb246IC0xNnB4IC0xOTJweDsgfQoudWktaWNvbi1jaXJjbGUtY2xvc2UgeyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMzJweCAtMTkycHg7IH0KLnVpLWljb24tY2lyY2xlLXRyaWFuZ2xlLWUgeyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtNDhweCAtMTkycHg7IH0KLnVpLWljb24tY2lyY2xlLXRyaWFuZ2xlLXMgeyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtNjRweCAtMTkycHg7IH0KLnVpLWljb24tY2lyY2xlLXRyaWFuZ2xlLXcgeyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtODBweCAtMTkycHg7IH0KLnVpLWljb24tY2lyY2xlLXRyaWFuZ2xlLW4geyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtOTZweCAtMTkycHg7IH0KLnVpLWljb24tY2lyY2xlLWFycm93LWUgeyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMTEycHggLTE5MnB4OyB9Ci51aS1pY29uLWNpcmNsZS1hcnJvdy1zIHsgYmFja2dyb3VuZC1wb3NpdGlvbjogLTEyOHB4IC0xOTJweDsgfQoudWktaWNvbi1jaXJjbGUtYXJyb3ctdyB7IGJhY2tncm91bmQtcG9zaXRpb246IC0xNDRweCAtMTkycHg7IH0KLnVpLWljb24tY2lyY2xlLWFycm93LW4geyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMTYwcHggLTE5MnB4OyB9Ci51aS1pY29uLWNpcmNsZS16b29taW4geyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMTc2cHggLTE5MnB4OyB9Ci51aS1pY29uLWNpcmNsZS16b29tb3V0IHsgYmFja2dyb3VuZC1wb3NpdGlvbjogLTE5MnB4IC0xOTJweDsgfQoudWktaWNvbi1jaXJjbGUtY2hlY2sgeyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMjA4cHggLTE5MnB4OyB9Ci51aS1pY29uLWNpcmNsZXNtYWxsLXBsdXMgeyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAwIC0yMDhweDsgfQoudWktaWNvbi1jaXJjbGVzbWFsbC1taW51cyB7IGJhY2tncm91bmQtcG9zaXRpb246IC0xNnB4IC0yMDhweDsgfQoudWktaWNvbi1jaXJjbGVzbWFsbC1jbG9zZSB7IGJhY2tncm91bmQtcG9zaXRpb246IC0zMnB4IC0yMDhweDsgfQoudWktaWNvbi1zcXVhcmVzbWFsbC1wbHVzIHsgYmFja2dyb3VuZC1wb3NpdGlvbjogLTQ4cHggLTIwOHB4OyB9Ci51aS1pY29uLXNxdWFyZXNtYWxsLW1pbnVzIHsgYmFja2dyb3VuZC1wb3NpdGlvbjogLTY0cHggLTIwOHB4OyB9Ci51aS1pY29uLXNxdWFyZXNtYWxsLWNsb3NlIHsgYmFja2dyb3VuZC1wb3NpdGlvbjogLTgwcHggLTIwOHB4OyB9Ci51aS1pY29uLWdyaXAtZG90dGVkLXZlcnRpY2FsIHsgYmFja2dyb3VuZC1wb3NpdGlvbjogMCAtMjI0cHg7IH0KLnVpLWljb24tZ3JpcC1kb3R0ZWQtaG9yaXpvbnRhbCB7IGJhY2tncm91bmQtcG9zaXRpb246IC0xNnB4IC0yMjRweDsgfQoudWktaWNvbi1ncmlwLXNvbGlkLXZlcnRpY2FsIHsgYmFja2dyb3VuZC1wb3NpdGlvbjogLTMycHggLTIyNHB4OyB9Ci51aS1pY29uLWdyaXAtc29saWQtaG9yaXpvbnRhbCB7IGJhY2tncm91bmQtcG9zaXRpb246IC00OHB4IC0yMjRweDsgfQoudWktaWNvbi1ncmlwc21hbGwtZGlhZ29uYWwtc2UgeyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtNjRweCAtMjI0cHg7IH0KLnVpLWljb24tZ3JpcC1kaWFnb25hbC1zZSB7IGJhY2tncm91bmQtcG9zaXRpb246IC04MHB4IC0yMjRweDsgfQoKCi8qIE1pc2MgdmlzdWFscwotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KCi8qIENvcm5lciByYWRpdXMgKi8KLnVpLWNvcm5lci10bCB7IC1tb3otYm9yZGVyLXJhZGl1cy10b3BsZWZ0OiA0cHg7IC13ZWJraXQtYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogNHB4OyBib3JkZXItdG9wLWxlZnQtcmFkaXVzOiA0cHg7IH0KLnVpLWNvcm5lci10ciB7IC1tb3otYm9yZGVyLXJhZGl1cy10b3ByaWdodDogNHB4OyAtd2Via2l0LWJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiA0cHg7IGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiA0cHg7IH0KLnVpLWNvcm5lci1ibCB7IC1tb3otYm9yZGVyLXJhZGl1cy1ib3R0b21sZWZ0OiA0cHg7IC13ZWJraXQtYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogNHB4OyBib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiA0cHg7IH0KLnVpLWNvcm5lci1iciB7IC1tb3otYm9yZGVyLXJhZGl1cy1ib3R0b21yaWdodDogNHB4OyAtd2Via2l0LWJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiA0cHg7IGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiA0cHg7IH0KLnVpLWNvcm5lci10b3AgeyAtbW96LWJvcmRlci1yYWRpdXMtdG9wbGVmdDogNHB4OyAtd2Via2l0LWJvcmRlci10b3AtbGVmdC1yYWRpdXM6IDRweDsgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogNHB4OyAtbW96LWJvcmRlci1yYWRpdXMtdG9wcmlnaHQ6IDRweDsgLXdlYmtpdC1ib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogNHB4OyBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogNHB4OyB9Ci51aS1jb3JuZXItYm90dG9tIHsgLW1vei1ib3JkZXItcmFkaXVzLWJvdHRvbWxlZnQ6IDRweDsgLXdlYmtpdC1ib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiA0cHg7IGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IDRweDsgLW1vei1ib3JkZXItcmFkaXVzLWJvdHRvbXJpZ2h0OiA0cHg7IC13ZWJraXQtYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6IDRweDsgYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6IDRweDsgfQoudWktY29ybmVyLXJpZ2h0IHsgIC1tb3otYm9yZGVyLXJhZGl1cy10b3ByaWdodDogNHB4OyAtd2Via2l0LWJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiA0cHg7IGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiA0cHg7IC1tb3otYm9yZGVyLXJhZGl1cy1ib3R0b21yaWdodDogNHB4OyAtd2Via2l0LWJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiA0cHg7IGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiA0cHg7IH0KLnVpLWNvcm5lci1sZWZ0IHsgLW1vei1ib3JkZXItcmFkaXVzLXRvcGxlZnQ6IDRweDsgLXdlYmtpdC1ib3JkZXItdG9wLWxlZnQtcmFkaXVzOiA0cHg7IGJvcmRlci10b3AtbGVmdC1yYWRpdXM6IDRweDsgLW1vei1ib3JkZXItcmFkaXVzLWJvdHRvbWxlZnQ6IDRweDsgLXdlYmtpdC1ib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiA0cHg7IGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IDRweDsgfQoudWktY29ybmVyLWFsbCB7IC1tb3otYm9yZGVyLXJhZGl1czogNHB4OyAtd2Via2l0LWJvcmRlci1yYWRpdXM6IDRweDsgYm9yZGVyLXJhZGl1czogNHB4OyB9CgovKiBPdmVybGF5cyAqLwoudWktd2lkZ2V0LW92ZXJsYXkgeyBiYWNrZ3JvdW5kOiAjNjY2NjY2IHVybCguLi8uLi9pbWFnZXMvanF1ZXJ5dWkvdWktYmdfZGlhZ29uYWxzLXRoaWNrXzIwXzY2NjY2Nl80MHg0MC5wbmcpIDUwJSA1MCUgcmVwZWF0OyBvcGFjaXR5OiAuNTA7ZmlsdGVyOkFscGhhKE9wYWNpdHk9NTApOyB9Ci51aS13aWRnZXQtc2hhZG93IHsgbWFyZ2luOiAtNXB4IDAgMCAtNXB4OyBwYWRkaW5nOiA1cHg7IGJhY2tncm91bmQ6ICMwMDAwMDAgdXJsKC4uLy4uL2ltYWdlcy9qcXVlcnl1aS91aS1iZ19mbGF0XzEwXzAwMDAwMF80MHgxMDAucG5nKSA1MCUgNTAlIHJlcGVhdC14OyBvcGFjaXR5OiAuMjA7ZmlsdGVyOkFscGhhKE9wYWNpdHk9MjApOyAtbW96LWJvcmRlci1yYWRpdXM6IDVweDsgLXdlYmtpdC1ib3JkZXItcmFkaXVzOiA1cHg7IGJvcmRlci1yYWRpdXM6IDVweDsgfS8qIERhdGVwaWNrZXIKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCi51aS1kYXRlcGlja2VyIHsgd2lkdGg6IDE3ZW07IHBhZGRpbmc6IC4yZW0gLjJlbSAwOyB9Ci51aS1kYXRlcGlja2VyIC51aS1kYXRlcGlja2VyLWhlYWRlciB7IHBvc2l0aW9uOnJlbGF0aXZlOyBwYWRkaW5nOi4yZW0gMDsgfQoudWktZGF0ZXBpY2tlciAudWktZGF0ZXBpY2tlci1wcmV2LCAudWktZGF0ZXBpY2tlciAudWktZGF0ZXBpY2tlci1uZXh0IHsgcG9zaXRpb246YWJzb2x1dGU7IHRvcDogMnB4OyB3aWR0aDogMS44ZW07IGhlaWdodDogMS44ZW07IH0KLnVpLWRhdGVwaWNrZXIgLnVpLWRhdGVwaWNrZXItcHJldi1ob3ZlciwgLnVpLWRhdGVwaWNrZXIgLnVpLWRhdGVwaWNrZXItbmV4dC1ob3ZlciB7IHRvcDogMXB4OyB9Ci51aS1kYXRlcGlja2VyIC51aS1kYXRlcGlja2VyLXByZXYgeyBsZWZ0OjJweDsgfQoudWktZGF0ZXBpY2tlciAudWktZGF0ZXBpY2tlci1uZXh0IHsgcmlnaHQ6MnB4OyB9Ci51aS1kYXRlcGlja2VyIC51aS1kYXRlcGlja2VyLXByZXYtaG92ZXIgeyBsZWZ0OjFweDsgfQoudWktZGF0ZXBpY2tlciAudWktZGF0ZXBpY2tlci1uZXh0LWhvdmVyIHsgcmlnaHQ6MXB4OyB9Ci51aS1kYXRlcGlja2VyIC51aS1kYXRlcGlja2VyLXByZXYgc3BhbiwgLnVpLWRhdGVwaWNrZXIgLnVpLWRhdGVwaWNrZXItbmV4dCBzcGFuIHsgZGlzcGxheTogYmxvY2s7IHBvc2l0aW9uOiBhYnNvbHV0ZTsgbGVmdDogNTAlOyBtYXJnaW4tbGVmdDogLThweDsgdG9wOiA1MCU7IG1hcmdpbi10b3A6IC04cHg7ICB9Ci51aS1kYXRlcGlja2VyIC51aS1kYXRlcGlja2VyLXRpdGxlIHsgbWFyZ2luOiAwIDIuM2VtOyBsaW5lLWhlaWdodDogMS44ZW07IHRleHQtYWxpZ246IGNlbnRlcjsgfQoudWktZGF0ZXBpY2tlciAudWktZGF0ZXBpY2tlci10aXRsZSBzZWxlY3QgeyBmb250LXNpemU6MWVtOyBtYXJnaW46MXB4IDA7IH0KLnVpLWRhdGVwaWNrZXIgc2VsZWN0LnVpLWRhdGVwaWNrZXItbW9udGgteWVhciB7d2lkdGg6IDEwMCU7fQoudWktZGF0ZXBpY2tlciBzZWxlY3QudWktZGF0ZXBpY2tlci1tb250aCwgCi51aS1kYXRlcGlja2VyIHNlbGVjdC51aS1kYXRlcGlja2VyLXllYXIgeyB3aWR0aDogNDklO30KLnVpLWRhdGVwaWNrZXIgdGFibGUge3dpZHRoOiAxMDAlOyBmb250LXNpemU6IC45ZW07IGJvcmRlci1jb2xsYXBzZTogY29sbGFwc2U7IG1hcmdpbjowIDAgLjRlbTsgfQoudWktZGF0ZXBpY2tlciB0aCB7IHBhZGRpbmc6IC43ZW0gLjNlbTsgdGV4dC1hbGlnbjogY2VudGVyOyBmb250LXdlaWdodDogYm9sZDsgYm9yZGVyOiAwOyAgfQoudWktZGF0ZXBpY2tlciB0ZCB7IGJvcmRlcjogMDsgcGFkZGluZzogMXB4OyB9Ci51aS1kYXRlcGlja2VyIHRkIHNwYW4sIC51aS1kYXRlcGlja2VyIHRkIGEgeyBkaXNwbGF5OiBibG9jazsgcGFkZGluZzogLjJlbTsgdGV4dC1hbGlnbjogcmlnaHQ7IHRleHQtZGVjb3JhdGlvbjogbm9uZTsgfQoudWktZGF0ZXBpY2tlciAudWktZGF0ZXBpY2tlci1idXR0b25wYW5lIHsgYmFja2dyb3VuZC1pbWFnZTogbm9uZTsgbWFyZ2luOiAuN2VtIDAgMCAwOyBwYWRkaW5nOjAgLjJlbTsgYm9yZGVyLWxlZnQ6IDA7IGJvcmRlci1yaWdodDogMDsgYm9yZGVyLWJvdHRvbTogMDsgfQoudWktZGF0ZXBpY2tlciAudWktZGF0ZXBpY2tlci1idXR0b25wYW5lIGJ1dHRvbiB7IGZsb2F0OiByaWdodDsgbWFyZ2luOiAuNWVtIC4yZW0gLjRlbTsgY3Vyc29yOiBwb2ludGVyOyBwYWRkaW5nOiAuMmVtIC42ZW0gLjNlbSAuNmVtOyB3aWR0aDphdXRvOyBvdmVyZmxvdzp2aXNpYmxlOyB9Ci51aS1kYXRlcGlja2VyIC51aS1kYXRlcGlja2VyLWJ1dHRvbnBhbmUgYnV0dG9uLnVpLWRhdGVwaWNrZXItY3VycmVudCB7IGZsb2F0OmxlZnQ7IH0KCi8qIHdpdGggbXVsdGlwbGUgY2FsZW5kYXJzICovCi51aS1kYXRlcGlja2VyLnVpLWRhdGVwaWNrZXItbXVsdGkgeyB3aWR0aDphdXRvOyB9Ci51aS1kYXRlcGlja2VyLW11bHRpIC51aS1kYXRlcGlja2VyLWdyb3VwIHsgZmxvYXQ6bGVmdDsgfQoudWktZGF0ZXBpY2tlci1tdWx0aSAudWktZGF0ZXBpY2tlci1ncm91cCB0YWJsZSB7IHdpZHRoOjk1JTsgbWFyZ2luOjAgYXV0byAuNGVtOyB9Ci51aS1kYXRlcGlja2VyLW11bHRpLTIgLnVpLWRhdGVwaWNrZXItZ3JvdXAgeyB3aWR0aDo1MCU7IH0KLnVpLWRhdGVwaWNrZXItbXVsdGktMyAudWktZGF0ZXBpY2tlci1ncm91cCB7IHdpZHRoOjMzLjMlOyB9Ci51aS1kYXRlcGlja2VyLW11bHRpLTQgLnVpLWRhdGVwaWNrZXItZ3JvdXAgeyB3aWR0aDoyNSU7IH0KLnVpLWRhdGVwaWNrZXItbXVsdGkgLnVpLWRhdGVwaWNrZXItZ3JvdXAtbGFzdCAudWktZGF0ZXBpY2tlci1oZWFkZXIgeyBib3JkZXItbGVmdC13aWR0aDowOyB9Ci51aS1kYXRlcGlja2VyLW11bHRpIC51aS1kYXRlcGlja2VyLWdyb3VwLW1pZGRsZSAudWktZGF0ZXBpY2tlci1oZWFkZXIgeyBib3JkZXItbGVmdC13aWR0aDowOyB9Ci51aS1kYXRlcGlja2VyLW11bHRpIC51aS1kYXRlcGlja2VyLWJ1dHRvbnBhbmUgeyBjbGVhcjpsZWZ0OyB9Ci51aS1kYXRlcGlja2VyLXJvdy1icmVhayB7IGNsZWFyOmJvdGg7IHdpZHRoOjEwMCU7IH0KCi8qIFJUTCBzdXBwb3J0ICovCi51aS1kYXRlcGlja2VyLXJ0bCB7IGRpcmVjdGlvbjogcnRsOyB9Ci51aS1kYXRlcGlja2VyLXJ0bCAudWktZGF0ZXBpY2tlci1wcmV2IHsgcmlnaHQ6IDJweDsgbGVmdDogYXV0bzsgfQoudWktZGF0ZXBpY2tlci1ydGwgLnVpLWRhdGVwaWNrZXItbmV4dCB7IGxlZnQ6IDJweDsgcmlnaHQ6IGF1dG87IH0KLnVpLWRhdGVwaWNrZXItcnRsIC51aS1kYXRlcGlja2VyLXByZXY6aG92ZXIgeyByaWdodDogMXB4OyBsZWZ0OiBhdXRvOyB9Ci51aS1kYXRlcGlja2VyLXJ0bCAudWktZGF0ZXBpY2tlci1uZXh0OmhvdmVyIHsgbGVmdDogMXB4OyByaWdodDogYXV0bzsgfQoudWktZGF0ZXBpY2tlci1ydGwgLnVpLWRhdGVwaWNrZXItYnV0dG9ucGFuZSB7IGNsZWFyOnJpZ2h0OyB9Ci51aS1kYXRlcGlja2VyLXJ0bCAudWktZGF0ZXBpY2tlci1idXR0b25wYW5lIGJ1dHRvbiB7IGZsb2F0OiBsZWZ0OyB9Ci51aS1kYXRlcGlja2VyLXJ0bCAudWktZGF0ZXBpY2tlci1idXR0b25wYW5lIGJ1dHRvbi51aS1kYXRlcGlja2VyLWN1cnJlbnQgeyBmbG9hdDpyaWdodDsgfQoudWktZGF0ZXBpY2tlci1ydGwgLnVpLWRhdGVwaWNrZXItZ3JvdXAgeyBmbG9hdDpyaWdodDsgfQoudWktZGF0ZXBpY2tlci1ydGwgLnVpLWRhdGVwaWNrZXItZ3JvdXAtbGFzdCAudWktZGF0ZXBpY2tlci1oZWFkZXIgeyBib3JkZXItcmlnaHQtd2lkdGg6MDsgYm9yZGVyLWxlZnQtd2lkdGg6MXB4OyB9Ci51aS1kYXRlcGlja2VyLXJ0bCAudWktZGF0ZXBpY2tlci1ncm91cC1taWRkbGUgLnVpLWRhdGVwaWNrZXItaGVhZGVyIHsgYm9yZGVyLXJpZ2h0LXdpZHRoOjA7IGJvcmRlci1sZWZ0LXdpZHRoOjFweDsgfQoKLyogSUU2IElGUkFNRSBGSVggKHRha2VuIGZyb20gZGF0ZXBpY2tlciAxLjUuMyAqLwoudWktZGF0ZXBpY2tlci1jb3ZlciB7CiAgICBkaXNwbGF5OiBub25lOyAvKnNvcnJ5IGZvciBJRTUqLwogICAgZGlzcGxheS8qKi86IGJsb2NrOyAvKnNvcnJ5IGZvciBJRTUqLwogICAgcG9zaXRpb246IGFic29sdXRlOyAvKm11c3QgaGF2ZSovCiAgICB6LWluZGV4OiAtMTsgLyptdXN0IGhhdmUqLwogICAgZmlsdGVyOiBtYXNrKCk7IC8qbXVzdCBoYXZlKi8KICAgIHRvcDogLTRweDsgLyptdXN0IGhhdmUqLwogICAgbGVmdDogLTRweDsgLyptdXN0IGhhdmUqLwogICAgd2lkdGg6IDIwMHB4OyAvKm11c3QgaGF2ZSovCiAgICBoZWlnaHQ6IDIwMHB4OyAvKm11c3QgaGF2ZSovCn0=]]></data>
	</file>
	<file>
	  <filename>/framework/fonts</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/framework/fonts/footable.eot</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[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BwNwcQMHAw4DA4UDBwOFkQcDDgMDcHADAw4DBwOFAwOFAAAAAAEAFgB/ATQBJgAUAAAAFA8BBiIvASY0PwE2Mh8BNzYyHwEBMwOFAwcDhQMDDgMHA3FwAwcDDgERBwOFAwOFAwcDDwICcXECAg8AAAABAAwAPwC0AV0AFAAAEhQPARcWFA8BBiIvASY0PwE2Mh8BswNwcAMDDgMHA4UDA4UDBwMOAUgHA3BxAggDDgMDhQMHA4UDAw4AAAAAAQADAD8AqgFdABQAADYUDwEGIi8BJjQ/AScmND8BNjIfAaoDhQMHAw4DA3BwAwMOAwcDhdEHA4UDAw4DCAJxcAMHAw4DA4UAAv//ABYBJQGqAA0AGwAAJBQPAQYiLwEmNDYzITI2FAYjISImND8BNjIfAQElBoAFDwaABQsHAQAICwsI/wAHCwWABg8FgLEPBoAFBYAGDwpjDwoKDwaABQWAAAAAAAwAlgABAAAAAAABAAgAEgABAAAAAAACAAcAKwABAAAAAAADACQAfQABAAAAAAAEAAgAtAABAAAAAAAFAAsA1QABAAAAAAAGAAgA8wADAAEECQABABAAAAADAAEECQACAA4AGwADAAEECQADAEgAMwADAAEECQAEABAAogADAAEECQAFABYAvQADAAEECQAGABAA4QBmAG8AbwB0AGEAYgBsAGUAAGZvb3RhYmxlAABSAGUAZwB1AGwAYQByAABSZWd1bGFyAABGAG8AbgB0AEYAbwByAGcAZQAgADIALgAwACAAOgAgAGYAbwBvAHQAYQBiAGwAZQAgADoAIAAxADgALQA4AC0AMgAwADEAMwAARm9udEZvcmdlIDIuMCA6IGZvb3RhYmxlIDogMTgtOC0yMDEzAABmAG8AbwB0AGEAYgBsAGUAAGZvb3RhYmxlAABWAGUAcgBzAGkAbwBuACAAMQAuADAAAFZlcnNpb24gMS4wAABmAG8AbwB0AGEAYgBsAGUAAGZvb3RhYmxlAAAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJwAAAAEAAgECAQMBBAEFAQYBBwEIAQkBCgELAQwBDQEOAQ8BEAERARIBEwEUARUBFgEXARgBGQEaARsBHAEdAR4BHwEgASEBIgEjASQBJQd1bmlGMDAwB3VuaUUwMDAHdW5pRTAwMQd1bmlFMDAyB3VuaUUwMDMHdW5pRTAwNAd1bmlFMDA1B3VuaUUwMDYHdW5pRTAwNwd1bmlFMDA4B3VuaUUwMDkHdW5pRTAwQQd1bmlFMDBCB3VuaUUwMEMHdW5pRTAwRAd1bmlFMDBFB3VuaUUwMEYHdW5pRTAxMAd1bmlFMDExB3VuaUUwMTIHdW5pRTAxMwd1bmlFMDE0B3VuaUUwMTUHdW5pRTAxNgd1bmlFMDE3B3VuaUUwMTgHdW5pRTAxOQd1bmlFMDFBB3VuaUUwMUIHdW5pRTAxQwd1bmlFMDFEB3VuaUUwMUUHdW5pRTAxRgd1bmlFMDIwB3VuaUUwMjEHdW5pRTAyMgAAAAH//wACAAEAAAAOAAAAGAAAAAAAAgABAAMAJgABAAQAAAACAAAAAAABAAAAAMmJbzEAAAAAzjaasQAAAADONpqx]]></data>
	</file>
	<file>
	  <filename>/framework/fonts/footable.svg</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD94bWwgdmVyc2lvbj0iMS4wIiBzdGFuZGFsb25lPSJubyI/Pgo8IURPQ1RZUEUgc3ZnIFBVQkxJQyAiLS8vVzNDLy9EVEQgU1ZHIDEuMS8vRU4iICJodHRwOi8vd3d3LnczLm9yZy9HcmFwaGljcy9TVkcvMS4xL0RURC9zdmcxMS5kdGQiID4KPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPgo8bWV0YWRhdGE+ClRoaXMgaXMgYSBjdXN0b20gU1ZHIGZvbnQgZ2VuZXJhdGVkIGJ5IEljb01vb24uCjxpY29uc2V0IGdyaWQ9IjE2Ij48L2ljb25zZXQ+CjwvbWV0YWRhdGE+CjxkZWZzPgo8Zm9udCBpZD0iZm9vdGFibGUiIGhvcml6LWFkdi14PSI1MTIiID4KPGZvbnQtZmFjZSB1bml0cy1wZXItZW09IjUxMiIgYXNjZW50PSI0ODAiIGRlc2NlbnQ9Ii0zMiIgLz4KPG1pc3NpbmctZ2x5cGggaG9yaXotYWR2LXg9IjUxMiIgLz4KPGdseXBoIGNsYXNzPSJoaWRkZW4iIHVuaWNvZGU9IiYjeGYwMDA7IiBkPSJNMCw0ODBMIDUxMiAtMzJMMCAtMzIgeiIgaG9yaXotYWR2LXg9IjAiIC8+CjxnbHlwaCB1bmljb2RlPSImI3hlMDAwOyIgZD0iTSA0OTYsMjg4TCAzMjAsMjg4IEwgMzIwLDQ2NCBjMCw4LjgzNi03LjE2NCwxNi0xNiwxNmwtOTYsMCBjLTguODM2LDAtMTYtNy4xNjQtMTYtMTZsMC0xNzYgTCAxNiwyODggYy04LjgzNiwwLTE2LTcuMTY0LTE2LTE2bDAtOTYgCgljMC04LjgzNiwgNy4xNjQtMTYsIDE2LTE2bCAxNzYsMCBsMC0xNzYgYzAtOC44MzYsIDcuMTY0LTE2LCAxNi0xNmwgOTYsMCBjIDguODM2LDAsIDE2LDcuMTY0LCAxNiwxNkwgMzIwLDE2MCBsIDE3NiwwIGMgOC44MzYsMCwgMTYsNy4xNjQsIDE2LDE2bDAsOTYgCglDIDUxMiwyODAuODM2LCA1MDQuODM2LDI4OCwgNDk2LDI4OHoiICAvPgo8Z2x5cGggdW5pY29kZT0iJiN4ZTAwMTsiIGQ9Ik0wLDI3MmwwLTk2IGMwLTguODM2LCA3LjE2NC0xNiwgMTYtMTZsIDQ4MCwwIGMgOC44MzYsMCwgMTYsNy4xNjQsIDE2LDE2bDAsOTYgYzAsOC44MzYtNy4xNjQsMTYtMTYsMTZMIDE2LDI4OCBDIDcuMTY0LDI4OCwwLDI4MC44MzYsMCwyNzJ6IiAgLz4KPGdseXBoIHVuaWNvZGU9IiYjeGUwMDI7IiBkPSJNIDI1Niw0ODBDIDExNC42MTUsNDgwLDAsMzY1LjM4NSwwLDIyNHMgMTE0LjYxNS0yNTYsIDI1Ni0yNTZzIDI1NiwxMTQuNjE1LCAyNTYsMjU2UyAzOTcuMzg1LDQ4MCwgMjU2LDQ4MHogTSAyODgsMTkybDAtMTI4IGwtNjQsMCBMIDIyNCwxOTIgTCA5NiwxOTIgbDAsNjQgCglsIDEyOCwwIEwgMjI0LDM4NCBsIDY0LDAgbDAtMTI4IGwgMTI4LDAgbDAtNjQgTCAyODgsMTkyIHoiICAvPgo8Z2x5cGggdW5pY29kZT0iJiN4ZTAwMzsiIGQ9Ik0gMjU2LDQ4MEMgMTE0LjYxNSw0ODAsMCwzNjUuMzg1LDAsMjI0cyAxMTQuNjE1LTI1NiwgMjU2LTI1NnMgMjU2LDExNC42MTUsIDI1NiwyNTZTIDM5Ny4zODUsNDgwLCAyNTYsNDgweiBNIDQxNiwxOTJMIDk2LDE5MiBsMCw2NCBsIDMyMCwwIEwgNDE2LDE5MiB6IiAgLz4KPGdseXBoIHVuaWNvZGU9IiYjeGUwMDQ7IiBkPSJNIDI1Niw0ODBDIDExNC42MTUsNDgwLDAsMzY1LjM4NSwwLDIyNHMgMTE0LjYxNS0yNTYsIDI1Ni0yNTZzIDI1NiwxMTQuNjE1LCAyNTYsMjU2UyAzOTcuMzg1LDQ4MCwgMjU2LDQ4MHogTSAyNTYsMzIKCWMtMTA2LjAzOSwwLTE5Miw4NS45NjEtMTkyLDE5MmMwLDEwNi4wMzksIDg1Ljk2MSwxOTIsIDE5MiwxOTJjIDEwNi4wMzksMCwgMTkyLTg1Ljk2MSwgMTkyLTE5MkMgNDQ4LDExNy45NjEsIDM2Mi4wMzksMzIsIDI1NiwzMnpNIDM4NCwxOTIgTCAyODgsMTkyIEwgMjg4LDk2IEwgMjI0LDk2IEwgMjI0LDE5MiBMIDEyOCwxOTIgTCAxMjgsMjU2IEwgMjI0LDI1NiBMIDIyNCwzNTIgTCAyODgsMzUyIEwgMjg4LDI1NiBMIDM4NCwyNTYgWiIgIC8+CjxnbHlwaCB1bmljb2RlPSImI3hlMDA1OyIgZD0iTSAyNTYsNDgwQyAxMTQuNjE1LDQ4MCwwLDM2NS4zODUsMCwyMjRzIDExNC42MTUtMjU2LCAyNTYtMjU2cyAyNTYsMTE0LjYxNSwgMjU2LDI1NlMgMzk3LjM4NSw0ODAsIDI1Niw0ODB6IE0gMjU2LDMyCgljLTEwNi4wMzksMC0xOTIsODUuOTYxLTE5MiwxOTJjMCwxMDYuMDM5LCA4NS45NjEsMTkyLCAxOTIsMTkyYyAxMDYuMDM5LDAsIDE5Mi04NS45NjEsIDE5Mi0xOTJDIDQ0OCwxMTcuOTYxLCAzNjIuMDM5LDMyLCAyNTYsMzJ6TSAxMjgsMjU2TCAzODQsMjU2TCAzODQsMTkyTCAxMjgsMTkyeiIgIC8+CjxnbHlwaCB1bmljb2RlPSImI3hlMDA2OyIgZD0iTSAyNTYsMjE0Ljg1N2wwLTE4LjI4NiBxMC00IC0yLjU3MS02LjU3MXQtNi41NzEtMi41NzFsLTY0LDAgbDAtNjQgcTAtNCAtMi41NzEtNi41NzF0LTYuNTcxLTIuNTcxbC0xOC4yODYsMCBxLTQsMCAtNi41NzEsMi41NzF0LTIuNTcxLDYuNTcxbDAsNjQgbC02NCwwIHEtNCwwIC02LjU3MSwyLjU3MXQtMi41NzEsNi41NzFsMCwxOC4yODYgcTAsNCAyLjU3MSw2LjU3MXQgNi41NzEsMi41NzFsIDY0LDAgbDAsNjQgcTAsNCAyLjU3MSw2LjU3MXQgNi41NzEsMi41NzFsIDE4LjI4NiwwIHEgNCwwIDYuNTcxLTIuNTcxdCAyLjU3MS02LjU3MWwwLTY0IGwgNjQsMCBxIDQsMCA2LjU3MS0yLjU3MXQgMi41NzEtNi41NzF6TSAyOTIuNTcxLDEwNS4xNDNsMCwyMDEuMTQzIHEwLDExLjQyOSAtOCwxOS40Mjl0LTE5LjQyOSw4bC0yMDEuMTQzLDAgcS0xMS40MjksMCAtMTkuNDI5LTggdC04LTE5LjQyOWwwLTIwMS4xNDMgcTAtMTEuNDI5IDgtMTkuNDI5dCAxOS40MjktOGwgMjAxLjE0MywwIHEgMTEuNDI5LDAgMTkuNDI5LDh0IDgsMTkuNDI5ek0gMzI5LjE0MywzMDYuMjg2bDAtMjAxLjE0MyBxMC0yNi4yODYgLTE4LjcxNC00NS4xNDN0LTQ1LjI4Ni0xOC44NTdsLTIwMS4xNDMsMCBxLTI2LjU3MSwwIC00NS4yODYsMTguODU3dC0xOC43MTQsNDUuMTQzbDAsMjAxLjE0MyBxMCwyNi41NzEgMTguNzE0LDQ1LjI4NnQgNDUuMjg2LDE4LjcxNGwgMjAxLjE0MywwIHEgMjYuNTcxLDAgNDUuMjg2LTE4LjcxNHQgMTguNzE0LTQ1LjI4NnoiIGhvcml6LWFkdi14PSIzMjkuMTQzIiAgLz4KPGdseXBoIHVuaWNvZGU9IiYjeGUwMDc7IiBkPSJNIDI2NS4xNDMsMzcwLjI4NnEgMjYuNTcxLDAgNDUuMjg2LTE4LjcxNHQgMTguNzE0LTQ1LjI4NmwwLTIwMS4xNDMgcTAtMjYuMjg2IC0xOC43MTQtNDUuMTQzdC00NS4yODYtMTguODU3bC0yMDEuMTQzLDAgcS0yNi41NzEsMCAtNDUuMjg2LDE4Ljg1N3QtMTguNzE0LDQ1LjE0M2wwLDIwMS4xNDMgcTAsMjYuNTcxIDE4LjcxNCw0NS4yODZ0IDQ1LjI4NiwxOC43MTRsIDIwMS4xNDMsMCB6TSAyOTIuNTcxLDEwNS4xNDNsMCwyMDEuMTQzIHEwLDExLjQyOSAtOCwxOS40Mjl0LTE5LjQyOSw4bC0yMDEuMTQzLDAgcS0xMS40MjksMCAtMTkuNDI5LTh0LTgtMTkuNDI5bDAtMjAxLjE0MyBxMC0xMS40MjkgOC0xOS40Mjl0IDE5LjQyOS04bCAyMDEuMTQzLDAgcSAxMS40MjksMCAxOS40MjksOHQgOCwxOS40Mjl6IE0gMjQ2Ljg1NywyMjRxIDQsMCA2LjU3MS0yLjU3MXQgMi41NzEtNi41NzFsMC0xOC4yODYgcTAtNCAtMi41NzEtNi41NzF0LTYuNTcxLTIuNTcxbC0xNjQuNTcxLDAgcS00LDAgLTYuNTcxLDIuNTcxdC0yLjU3MSw2LjU3MWwwLDE4LjI4NiBxMCw0IDIuNTcxLDYuNTcxdCA2LjU3MSwyLjU3MWwgMTY0LjU3MSwwIHoiIGhvcml6LWFkdi14PSIzMjkuMTQzIiAgLz4KPGdseXBoIHVuaWNvZGU9IiYjeGUwMDg7IiBkPSJNIDM2NS43MTQsMjA1LjcxNGwwLDM2LjU3MSBxMCw3LjQyOSAtNS40MjksMTIuODU3dC0xMi44NTcsNS40MjlsLTkxLjQyOSwwIGwwLDkxLjQyOSBxMCw3LjQyOSAtNS40MjksMTIuODU3dC0xMi44NTcsNS40MjlsLTM2LjU3MSwwIHEtNy40MjksMCAtMTIuODU3LTUuNDI5dC01LjQyOS0xMi44NTdsMC05MS40MjkgbC05MS40MjksMCBxLTcuNDI5LDAgLTEyLjg1Ny01LjQyOXQtNS40MjktMTIuODU3bDAtMzYuNTcxIHEwLTcuNDI5IDUuNDI5LTEyLjg1N3QgMTIuODU3LTUuNDI5bCA5MS40MjksMCBsMC05MS40MjkgcTAtNy40MjkgNS40MjktMTIuODU3dCAxMi44NTctNS40MjlsIDM2LjU3MSwwIHEgNy40MjksMCAxMi44NTcsNS40Mjl0IDUuNDI5LDEyLjg1N2wwLDkxLjQyOSBsIDkxLjQyOSwwIHEgNy40MjksMCAxMi44NTcsNS40Mjl0IDUuNDI5LDEyLjg1N3pNIDQzOC44NTcsMzYxLjE0M2wwLTI3NC4yODYgIHEwLTM0IC0yNC4xNDMtNTguMTQzdC01OC4xNDMtMjQuMTQzbC0yNzQuMjg2LDAgcS0zNCwwIC01OC4xNDMsMjQuMTQzdC0yNC4xNDMsNTguMTQzbDAsMjc0LjI4NiBxMCwzNCAyNC4xNDMsNTguMTQzdCA1OC4xNDMsMjQuMTQzbCAyNzQuMjg2LDAgcSAzNCwwIDU4LjE0My0yNC4xNDN0IDI0LjE0My01OC4xNDN6IiBob3Jpei1hZHYteD0iNDM4Ljg1NyIgIC8+CjxnbHlwaCB1bmljb2RlPSImI3hlMDA5OyIgZD0iTSAzNjUuNzE0LDIwNS43MTRsMCwzNi41NzEgcTAsNy40MjkgLTUuNDI5LDEyLjg1N3QtMTIuODU3LDUuNDI5bC0yNTYsMCBxLTcuNDI5LDAgLTEyLjg1Ny01LjQyOXQtNS40MjktMTIuODU3bDAtMzYuNTcxIHEwLTcuNDI5IDUuNDI5LTEyLjg1N3QgMTIuODU3LTUuNDI5bCAyNTYsMCBxIDcuNDI5LDAgMTIuODU3LDUuNDI5dCA1LjQyOSwxMi44NTd6TSA0MzguODU3LDM2MS4xNDNsMC0yNzQuMjg2IHEwLTM0IC0yNC4xNDMtNTguMTQzdC01OC4xNDMtMjQuMTQzbC0yNzQuMjg2LDAgcS0zNCwwIC01OC4xNDMsMjQuMTQzdC0yNC4xNDMsNTguMTQzbDAsMjc0LjI4NiBxMCwzNCAyNC4xNDMsNTguMTQzdCA1OC4xNDMsMjQuMTQzbCAyNzQuMjg2LDAgcSAzNCwwIDU4LjE0My0yNC4xNDMgdCAyNC4xNDMtNTguMTQzeiIgaG9yaXotYWR2LXg9IjQzOC44NTciICAvPgo8Z2x5cGggdW5pY29kZT0iJiN4ZTAwYTsiIGQ9Ik0gNTEyLDIyNEMgNTEyLDgyLjYxNSwgMzk3LjM4NS0zMiwgMjU2LTMycyAtMjU2LDExNC42MTUsIC0yNTYsMjU2cyAxMTQuNjE1LDI1NiwgMjU2LDI1NlMgNTEyLDM2NS4zODUsIDUxMiwyMjR6IE0gMjMzLjM3MiwzNzQuNjI4CgkJbCAtMTI4LTEyOC4wMDFDIDk5LjEyNCwyNDAuMzc5LCA5NiwyMzIuMTg5LCA5NiwyMjRzIDMuMTI0LTE2LjM3OSA5LjM3Mi0yMi42MjdjIDEyLjQ5Ny0xMi40OTcgMzIuNzU5LTEyLjQ5NywgNDUuMjU2LDBMIDIyNCwyNzQuNzQ1CgkJTCAyMjQsOTYgYyAwLTE3LjY3MyAxNC4zMjctMzIgMzItMzJjIDE3LjY3MywwLCAzMiwxNC4zMjcsIDMyLDMybDAsMTc4Ljc0NSBsIDczLjM3My03My4zNzNjIDEyLjQ5Ny0xMi40OTcgMzIuNzU4LTEyLjQ5NywgNDUuMjU1LDAKCQljIDEyLjQ5NywxMi40OTcsIDEyLjQ5NywzMi43NTgsIDAsNDUuMjU0bCAtMTI4LDEyOC4wMDFDIDI2Ni4xMzEsMzg3LjEyNCwgMjQ1Ljg2OSwzODcuMTI0LCAyMzMuMzcyLDM3NC42Mjh6IiAgLz4KPGdseXBoIHVuaWNvZGU9IiYjeGUwMGI7IiBkPSJNIDUxMiwyMjRDIDUxMiwzNjUuMzg1LCAzOTcuMzg1LDQ4MCwgMjU2LDQ4MHMgLTI1Ni0xMTQuNjE1LCAtMjU2LTI1NnMgMTE0LjYxNS0yNTYsIDI1Ni0yNTZTIDUxMiw4Mi42MTUsIDUxMiwyMjR6IE0gMjMzLjM3Miw3My4zNzIKCQlsIC0xMjgsMTI4LjAwMUMgOTkuMTI0LDIwNy42MjEsIDk2LDIxNS44MTEsIDk2LDIyNHMgMy4xMjQsMTYuMzc5IDkuMzcyLDIyLjYyN2MgMTIuNDk3LDEyLjQ5NyAzMi43NTksMTIuNDk3LCA0NS4yNTYsMEwgMjI0LDE3My4yNTUKCQlMIDIyNCwzNTIgYyAwLDE3LjY3MyAxNC4zMjcsMzIgMzIsMzJjIDE3LjY3MywwLCAzMi0xNC4zMjcsIDMyLTMybDAtMTc4Ljc0NSBsIDczLjM3Myw3My4zNzNjIDEyLjQ5NywxMi40OTcgMzIuNzU4LDEyLjQ5NywgNDUuMjU1LDAKCQljIDEyLjQ5Ny0xMi40OTcsIDEyLjQ5Ny0zMi43NTgsIDAtNDUuMjU0bCAtMTI4LTEyOC4wMDFDIDI2Ni4xMzEsNjAuODc2LCAyNDUuODY5LDYwLjg3NiwgMjMzLjM3Miw3My4zNzJ6IiAgLz4KPGdseXBoIHVuaWNvZGU9IiYjeGUwMGM7IiBkPSJNIDI1Niw0ODBDIDM5Ny4zODUsNDgwLCA1MTIsMzY1LjM4NSwgNTEyLDIyNHMgLTExNC42MTUtMjU2LCAtMjU2LTI1NnMgLTI1NiwxMTQuNjE1LCAtMjU2LDI1NlMgMTE0LjYxNSw0ODAsIDI1Niw0ODB6IE0gMTA1LjM3MiwyMDEuMzcyCgkJbCAxMjguMDAxLTEyOEMgMjM5LjYyMSw2Ny4xMjQsIDI0Ny44MTEsNjQsIDI1Niw2NHMgMTYuMzc5LDMuMTI0IDIyLjYyNyw5LjM3MmMgMTIuNDk3LDEyLjQ5NyAxMi40OTcsMzIuNzU5LDAsNDUuMjU2TCAyMDUuMjU1LDE5MgoJCUwgMzg0LDE5MiBjIDE3LjY3MywwIDMyLDE0LjMyNyAzMiwzMmMwLDE3LjY3MywgLTE0LjMyNywzMiwgLTMyLDMybC0xNzguNzQ1LDAgbCA3My4zNzMsNzMuMzczYyAxMi40OTcsMTIuNDk3IDEyLjQ5NywzMi43NTgsMCw0NS4yNTUKCQljIC0xMi40OTcsMTIuNDk3LCAtMzIuNzU4LDEyLjQ5NywgLTQ1LjI1NCwwbCAtMTI4LjAwMS0xMjhDIDkyLjg3NiwyMzQuMTMxLCA5Mi44NzYsMjEzLjg2OSwgMTA1LjM3MiwyMDEuMzcyeiIgIC8+CjxnbHlwaCB1bmljb2RlPSImI3hlMDBkOyIgZD0iTSAyNTYsNDgwQyAxMTQuNjE1LDQ4MCwwLDM2NS4zODUsMCwyMjRzIDExNC42MTUtMjU2LCAyNTYtMjU2cyAyNTYsMTE0LjYxNSwgMjU2LDI1NlMgMzk3LjM4NSw0ODAsIDI1Niw0ODB6IE0gNDA2LjYyOCwyMDEuMzcyCgkJbC0xMjguMDAxLTEyOEMgMjcyLjM3OSw2Ny4xMjQsIDI2NC4xODksNjQsIDI1Niw2NHMtMTYuMzc5LDMuMTI0LTIyLjYyNyw5LjM3MmMtMTIuNDk3LDEyLjQ5Ny0xMi40OTcsMzIuNzU5LDAsNDUuMjU2TCAzMDYuNzQ1LDE5MgoJCUwgMTI4LDE5MiBjLTE3LjY3MywwLTMyLDE0LjMyNy0zMiwzMmMwLDE3LjY3MywgMTQuMzI3LDMyLCAzMiwzMmwgMTc4Ljc0NSwwIGwtNzMuMzczLDczLjM3M2MtMTIuNDk3LDEyLjQ5Ny0xMi40OTcsMzIuNzU4LDAsNDUuMjU1CgkJYyAxMi40OTcsMTIuNDk3LCAzMi43NTgsMTIuNDk3LCA0NS4yNTQsMGwgMTI4LjAwMS0xMjhDIDQxOS4xMjQsMjM0LjEzMSwgNDE5LjEyNCwyMTMuODY5LCA0MDYuNjI4LDIwMS4zNzJ6IiAgLz4KPGdseXBoIHVuaWNvZGU9IiYjeGUwMGU7IiBkPSJNMCwxNjBMIDk2LDY0TCAyNTYsMjI0TCA0MTYsNjRMIDUxMiwxNjBMIDI1Ni4wMDEsNDE2IHoiICAvPgo8Z2x5cGggdW5pY29kZT0iJiN4ZTAwZjsiIGQ9Ik0gNTEyLDI4OEwgNDE2LDM4NEwgMjU2LDIyNEwgOTYsMzg0TDAsMjg4TCAyNTYsMzIuMDAxIHoiICAvPgo8Z2x5cGggdW5pY29kZT0iJiN4ZTAxMDsiIGQ9Ik0gMzIwLTMyTCA0MTYsNjRMIDI1NiwyMjRMIDQxNiwzODRMIDMyMCw0ODBMIDY0LDIyNCB6IiAgLz4KPGdseXBoIHVuaWNvZGU9IiYjeGUwMTE7IiBkPSJNIDE5Miw0ODBMIDk2LDM4NEwgMjU2LDIyNEwgOTYsNjRMIDE5Mi0zMkwgNDQ4LDIyNCB6IiAgLz4KPGdseXBoIHVuaWNvZGU9IiYjeGUwMTI7IiBkPSJNIDI5Mi41NzEsMTMyLjU3MXEwLTcuNDI5IC01LjQyOS0xMi44NTd0LTEyLjg1Ny01LjQyOWwtMjU2LDAgcS03LjQyOSwwIC0xMi44NTcsNS40Mjl0LTUuNDI5LDEyLjg1N3QgNS40MjksMTIuODU3bCAxMjgsMTI4cSA1LjQyOSw1LjQyOSAxMi44NTcsNS40Mjl0IDEyLjg1Ny01LjQyOWwgMTI4LTEyOHEgNS40MjktNS40MjkgNS40MjktMTIuODU3eiIgaG9yaXotYWR2LXg9IjI5Mi41NzEiICAvPgo8Z2x5cGggdW5pY29kZT0iJiN4ZTAxMzsiIGQ9Ik0gMjkyLjU3MSwyNzguODU3cTAtNy40MjkgLTUuNDI5LTEyLjg1N2wtMTI4LTEyOHEtNS40MjktNS40MjkgLTEyLjg1Ny01LjQyOXQtMTIuODU3LDUuNDI5bC0xMjgsMTI4cS01LjQyOSw1LjQyOSAtNS40MjksMTIuODU3dCA1LjQyOSwxMi44NTd0IDEyLjg1Nyw1LjQyOWwgMjU2LDAgcSA3LjQyOSwwIDEyLjg1Ny01LjQyOXQgNS40MjktMTIuODU3eiIgaG9yaXotYWR2LXg9IjI5Mi41NzEiICAvPgo8Z2x5cGggdW5pY29kZT0iJiN4ZTAxNDsiIGQ9Ik0gMTgyLjg1NywzNTJsMC0yNTYgcTAtNy40MjkgLTUuNDI5LTEyLjg1N3QtMTIuODU3LTUuNDI5dC0xMi44NTcsNS40MjlsLTEyOCwxMjhxLTUuNDI5LDUuNDI5IC01LjQyOSwxMi44NTd0IDUuNDI5LDEyLjg1N2wgMTI4LDEyOHEgNS40MjksNS40MjkgMTIuODU3LDUuNDI5dCAxMi44NTctNS40Mjl0IDUuNDI5LTEyLjg1N3oiIGhvcml6LWFkdi14PSIxODIuODU3IiAgLz4KPGdseXBoIHVuaWNvZGU9IiYjeGUwMTU7IiBkPSJNIDE2NC41NzEsMjI0cTAtNy40MjkgLTUuNDI5LTEyLjg1N2wtMTI4LTEyOHEtNS40MjktNS40MjkgLTEyLjg1Ny01LjQyOXQtMTIuODU3LDUuNDI5dC01LjQyOSwxMi44NTdsMCwyNTYgcTAsNy40MjkgNS40MjksMTIuODU3dCAxMi44NTcsNS40Mjl0IDEyLjg1Ny01LjQyOWwgMTI4LTEyOHEgNS40MjktNS40MjkgNS40MjktMTIuODU3eiIgaG9yaXotYWR2LXg9IjE4Mi44NTciICAvPgo8Z2x5cGggdW5pY29kZT0iJiN4ZTAxNjsiIGQ9Ik0gMjU2LDQ4MEwgMzItMzJMIDI1Niw2NEwgNDgwLTMyIHoiICAvPgo8Z2x5cGggdW5pY29kZT0iJiN4ZTAxNzsiIGQ9Ik0gMjU2LTMyTCA0ODAsNDgwTCAyNTYsMzg0TCAzMiw0ODAgeiIgIC8+CjxnbHlwaCB1bmljb2RlPSImI3hlMDE4OyIgZD0iTTAsMjI0TCA1MTIsMEwgNDE2LDIyNEwgNTEyLDQ0OCB6IiAgLz4KPGdseXBoIHVuaWNvZGU9IiYjeGUwMTk7IiBkPSJNIDUxMiwyMjRMMCw0NDhMIDk2LDIyNEwwLDAgeiIgIC8+CjxnbHlwaCB1bmljb2RlPSImI3hlMDFhOyIgZD0iTSA1MTIsMjI0QyA1MTIsODIuNjE1LCAzOTcuMzg1LTMyLCAyNTYtMzJzIC0yNTYsMTE0LjYxNSwgLTI1NiwyNTZzIDExNC42MTUsMjU2LCAyNTYsMjU2UyA1MTIsMzY1LjM4NSwgNTEyLDIyNHogTSA0OCwyMjQKCQljIDAtMTE0Ljg3NSA5My4xMjUtMjA4IDIwOC0yMDhTIDQ2NCwxMDkuMTI1LCA0NjQsMjI0cyAtOTMuMTI1LDIwOCwgLTIwOCwyMDhTIDQ4LDMzOC44NzUsIDQ4LDIyNHpNIDI3OC42MjcsMzc0LjYyOGwgMTI4LTEyOC4wMDFjIDEyLjQ5Ny0xMi40OTYgMTIuNDk3LTMyLjc1NyAwLTQ1LjI1NGMgLTEyLjQ5Ny0xMi40OTcgLTMyLjc1OC0xMi40OTcsLTQ1LjI1NSwwTCAyODgsMjc0Ljc0NQoJTCAyODgsOTYgYyAwLTE3LjY3MyAtMTQuMzI3LTMyIC0zMi0zMmMtMTcuNjczLDAsIC0zMiwxNC4zMjcsIC0zMiwzMmwwLDE3OC43NDUgbCAtNzMuMzcyLTczLjM3M2MgLTEyLjQ5Ny0xMi40OTcgLTMyLjc1OS0xMi40OTcsLTQ1LjI1NiwwCglDIDk5LjEyNCwyMDcuNjIxLCA5NiwyMTUuODExLCA5NiwyMjRzIDMuMTI0LDE2LjM3OSwgOS4zNzIsMjIuNjI3bCAxMjgsMTI4LjAwMUMgMjQ1Ljg2OSwzODcuMTI0LCAyNjYuMTMxLDM4Ny4xMjQsIDI3OC42MjcsMzc0LjYyOHoiICAvPgo8Z2x5cGggdW5pY29kZT0iJiN4ZTAxYjsiIGQ9Ik0gNTEyLDIyNEMgNTEyLDM2NS4zODUsIDM5Ny4zODUsNDgwLCAyNTYsNDgwcyAtMjU2LTExNC42MTUsIC0yNTYtMjU2cyAxMTQuNjE1LTI1NiwgMjU2LTI1NlMgNTEyLDgyLjYxNSwgNTEyLDIyNHogTSA0OCwyMjQKCQljIDAsMTE0Ljg3NSA5My4xMjUsMjA4IDIwOCwyMDhTIDQ2NCwzMzguODc1LCA0NjQsMjI0cyAtOTMuMTI1LTIwOCwgLTIwOC0yMDhTIDQ4LDEwOS4xMjUsIDQ4LDIyNHpNIDI3OC42MjcsNzMuMzcybCAxMjgsMTI4LjAwMWMgMTIuNDk3LDEyLjQ5NiAxMi40OTcsMzIuNzU3IDAsNDUuMjU0YyAtMTIuNDk3LDEyLjQ5NyAtMzIuNzU4LDEyLjQ5NywtNDUuMjU1LDBMIDI4OCwxNzMuMjU1CglMIDI4OCwzNTIgYyAwLDE3LjY3MyAtMTQuMzI3LDMyIC0zMiwzMmMtMTcuNjczLDAsIC0zMi0xNC4zMjcsIC0zMi0zMmwwLTE3OC43NDUgbCAtNzMuMzcyLDczLjM3M2MgLTEyLjQ5NywxMi40OTcgLTMyLjc1OSwxMi40OTcsLTQ1LjI1NiwwCglDIDk5LjEyNCwyNDAuMzc5LCA5NiwyMzIuMTg5LCA5NiwyMjRzIDMuMTI0LTE2LjM3OSwgOS4zNzItMjIuNjI3bCAxMjgtMTI4LjAwMUMgMjQ1Ljg2OSw2MC44NzYsIDI2Ni4xMzEsNjAuODc2LCAyNzguNjI3LDczLjM3MnoiICAvPgo8Z2x5cGggdW5pY29kZT0iJiN4ZTAxYzsiIGQ9Ik0gMjU2LDQ4MEMgMzk3LjM4NSw0ODAsIDUxMiwzNjUuMzg1LCA1MTIsMjI0cyAtMTE0LjYxNS0yNTYsIC0yNTYtMjU2cyAtMjU2LDExNC42MTUsIC0yNTYsMjU2UyAxMTQuNjE1LDQ4MCwgMjU2LDQ4MHogTSAyNTYsMTYKCQljIDExNC44NzUsMCAyMDgsOTMuMTI1IDIwOCwyMDhTIDM3MC44NzUsNDMyLCAyNTYsNDMycyAtMjA4LTkzLjEyNSwgLTIwOC0yMDhTIDE0MS4xMjUsMTYsIDI1NiwxNnpNIDEwNS4zNzIsMjQ2LjYyN2wgMTI4LjAwMSwxMjhjIDEyLjQ5NiwxMi40OTcgMzIuNzU3LDEyLjQ5NyA0NS4yNTQsMGMgMTIuNDk3LTEyLjQ5NyAxMi40OTctMzIuNzU4LDAtNDUuMjU1TCAyMDUuMjU1LDI1NgoJTCAzODQsMjU2IGMgMTcuNjczLDAgMzItMTQuMzI3IDMyLTMyYzAtMTcuNjczLCAtMTQuMzI3LTMyLCAtMzItMzJsLTE3OC43NDUsMCBsIDczLjM3My03My4zNzJjIDEyLjQ5Ny0xMi40OTcgMTIuNDk3LTMyLjc1OSwwLTQ1LjI1NgoJQyAyNzIuMzc5LDY3LjEyNCwgMjY0LjE4OSw2NCwgMjU2LDY0cyAtMTYuMzc5LDMuMTI0LCAtMjIuNjI3LDkuMzcybCAtMTI4LjAwMSwxMjhDIDkyLjg3NiwyMTMuODY5LCA5Mi44NzYsMjM0LjEzMSwgMTA1LjM3MiwyNDYuNjI3eiIgIC8+CjxnbHlwaCB1bmljb2RlPSImI3hlMDFkOyIgZD0iTSAyNTYsNDgwQyAxMTQuNjE1LDQ4MCwwLDM2NS4zODUsMCwyMjRzIDExNC42MTUtMjU2LCAyNTYtMjU2cyAyNTYsMTE0LjYxNSwgMjU2LDI1NlMgMzk3LjM4NSw0ODAsIDI1Niw0ODB6IE0gMjU2LDE2CgkJYy0xMTQuODc1LDAtMjA4LDkzLjEyNS0yMDgsMjA4UyAxNDEuMTI1LDQzMiwgMjU2LDQzMnMgMjA4LTkzLjEyNSwgMjA4LTIwOFMgMzcwLjg3NSwxNiwgMjU2LDE2ek0gNDA2LjYyOCwyNDYuNjI3bC0xMjguMDAxLDEyOGMtMTIuNDk2LDEyLjQ5Ny0zMi43NTcsMTIuNDk3LTQ1LjI1NCwwYy0xMi40OTctMTIuNDk3LTEyLjQ5Ny0zMi43NTgsMC00NS4yNTVMIDMwNi43NDUsMjU2CglMIDEyOCwyNTYgYy0xNy42NzMsMC0zMi0xNC4zMjctMzItMzJjMC0xNy42NzMsIDE0LjMyNy0zMiwgMzItMzJsIDE3OC43NDUsMCBsLTczLjM3My03My4zNzJjLTEyLjQ5Ny0xMi40OTctMTIuNDk3LTMyLjc1OSwwLTQ1LjI1NgoJQyAyMzkuNjIxLDY3LjEyNCwgMjQ3LjgxMSw2NCwgMjU2LDY0cyAxNi4zNzksMy4xMjQsIDIyLjYyNyw5LjM3MmwgMTI4LjAwMSwxMjhDIDQxOS4xMjQsMjEzLjg2OSwgNDE5LjEyNCwyMzQuMTMxLCA0MDYuNjI4LDI0Ni42Mjd6IiAgLz4KPGdseXBoIHVuaWNvZGU9IiYjeGUwMWU7IiBkPSJNIDMwNy4xNDMsMTQxLjcxNHEwLTMuNzE0IC0yLjg1Ny02LjU3MWwtMTQuMjg2LTE0LjI4NnEtMi44NTctMi44NTcgLTYuNTcxLTIuODU3dC02LjU3MSwyLjg1N2wtMTEyLjI4NiwxMTIuMjg2bC0xMTIuMjg2LTExMi4yODZxLTIuODU3LTIuODU3IC02LjU3MS0yLjg1N3QtNi41NzEsMi44NTdsLTE0LjI4NiwxNC4yODZxLTIuODU3LDIuODU3IC0yLjg1Nyw2LjU3MXQgMi44NTcsNi41NzFsIDEzMy4xNDMsMTMzLjE0M3EgMi44NTcsMi44NTcgNi41NzEsMi44NTd0IDYuNTcxLTIuODU3bCAxMzMuMTQzLTEzMy4xNDNxIDIuODU3LTIuODU3IDIuODU3LTYuNTcxeiIgaG9yaXotYWR2LXg9IjMyOS4xNDMiICAvPgo8Z2x5cGggdW5pY29kZT0iJiN4ZTAxZjsiIGQ9Ik0gMzA3LjE0MywyNjkuNzE0cTAtMy43MTQgLTIuODU3LTYuNTcxbC0xMzMuMTQzLTEzMy4xNDNxLTIuODU3LTIuODU3IC02LjU3MS0yLjg1N3QtNi41NzEsMi44NTdsLTEzMy4xNDMsMTMzLjE0M3EtMi44NTcsMi44NTcgLTIuODU3LDYuNTcxdCAyLjg1Nyw2LjU3MWwgMTQuMjg2LDE0LjI4NnEgMi44NTcsMi44NTcgNi41NzEsMi44NTd0IDYuNTcxLTIuODU3bCAxMTIuMjg2LTExMi4yODZsIDExMi4yODYsMTEyLjI4NnEgMi44NTcsMi44NTcgNi41NzEsMi44NTd0IDYuNTcxLTIuODU3bCAxNC4yODYtMTQuMjg2cSAyLjg1Ny0yLjg1NyAyLjg1Ny02LjU3MXoiIGhvcml6LWFkdi14PSIzMjkuMTQzIiAgLz4KPGdseXBoIHVuaWNvZGU9IiYjeGUwMjA7IiBkPSJNIDE3OS4xNDMsMzI0LjU3MXEwLTMuNzE0IC0yLjg1Ny02LjU3MWwtMTEyLjI4Ni0xMTIuMjg2bCAxMTIuMjg2LTExMi4yODZxIDIuODU3LTIuODU3IDIuODU3LTYuNTcxdC0yLjg1Ny02LjU3MWwtMTQuMjg2LTE0LjI4NnEtMi44NTctMi44NTcgLTYuNTcxLTIuODU3dC02LjU3MSwyLjg1N2wtMTMzLjE0MywxMzMuMTQzcS0yLjg1NywyLjg1NyAtMi44NTcsNi41NzF0IDIuODU3LDYuNTcxbCAxMzMuMTQzLDEzMy4xNDNxIDIuODU3LDIuODU3IDYuNTcxLDIuODU3dCA2LjU3MS0yLjg1N2wgMTQuMjg2LTE0LjI4NnEgMi44NTctMi44NTcgMi44NTctNi41NzF6IiBob3Jpei1hZHYteD0iMTgyLjg1NyIgIC8+CjxnbHlwaCB1bmljb2RlPSImI3hlMDIxOyIgZD0iTSAxNzAsMjA1LjcxNHEwLTMuNzE0IC0yLjg1Ny02LjU3MWwtMTMzLjE0My0xMzMuMTQzcS0yLjg1Ny0yLjg1NyAtNi41NzEtMi44NTd0LTYuNTcxLDIuODU3bC0xNC4yODYsMTQuMjg2cS0yLjg1NywyLjg1NyAtMi44NTcsNi41NzF0IDIuODU3LDYuNTcxbCAxMTIuMjg2LDExMi4yODZsLTExMi4yODYsMTEyLjI4NnEtMi44NTcsMi44NTcgLTIuODU3LDYuNTcxdCAyLjg1Nyw2LjU3MWwgMTQuMjg2LDE0LjI4NnEgMi44NTcsMi44NTcgNi41NzEsMi44NTd0IDYuNTcxLTIuODU3bCAxMzMuMTQzLTEzMy4xNDNxIDIuODU3LTIuODU3IDIuODU3LTYuNTcxeiIgaG9yaXotYWR2LXg9IjE4Mi44NTciICAvPgo8Z2x5cGggdW5pY29kZT0iJiN4ZTAyMjsiIGQ9Ik0gMjkyLjU3MSwxNjkuMTQzcTAtNy40MjkgLTUuNDI5LTEyLjg1N2wtMTI4LTEyOHEtNS40MjktNS40MjkgLTEyLjg1Ny01LjQyOXQtMTIuODU3LDUuNDI5bC0xMjgsMTI4cS01LjQyOSw1LjQyOSAtNS40MjksMTIuODU3dCA1LjQyOSwxMi44NTd0IDEyLjg1Nyw1LjQyOWwgMjU2LDAgcSA3LjQyOSwwIDEyLjg1Ny01LjQyOXQgNS40MjktMTIuODU3ek0gMjkyLjU3MSwyNzguODU3cTAtNy40MjkgLTUuNDI5LTEyLjg1N3QtMTIuODU3LTUuNDI5bC0yNTYsMCBxLTcuNDI5LDAgLTEyLjg1Nyw1LjQyOXQtNS40MjksMTIuODU3dCA1LjQyOSwxMi44NTdsIDEyOCwxMjhxIDUuNDI5LDUuNDI5IDEyLjg1Nyw1LjQyOXQgMTIuODU3LTUuNDI5bCAxMjgtMTI4cSA1LjQyOS01LjQyOSA1LjQyOS0xMi44NTd6IiBob3Jpei1hZHYteD0iMjkyLjU3MSIgIC8+CjxnbHlwaCB1bmljb2RlPSImI3gyMDsiIGhvcml6LWFkdi14PSIyNTYiIC8+CjwvZm9udD48L2RlZnM+PC9zdmc+]]></data>
	</file>
	<file>
	  <filename>/framework/fonts/footable.ttf</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[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]]></data>
	</file>
	<file>
	  <filename>/framework/fonts/footable.woff</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[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]]></data>
	</file>
	<file>
	  <filename>/framework/fonts/index.html</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[]]></data>
	</file>
	<file>
	  <filename>/framework/function.admin_categorytab.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHANCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQojIExJU0UgLSBMaXN0IEl0IFNwZWNpYWwgRWRpdGlvbg0KIyBWZXJzaW9uIDEuMg0KIyBBIGZvcmsgb2YgTGlzdEkyDQojIG1haW50YWluZWQgYnkgRmVybmFuZG8gTW9yZ2FkbyBBS0EgSm8gTW9yZw0KIyBzaW5jZSAyMDE1DQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIw0KIyBPcmlnaW5hbCBBdXRob3I6IEJlbiBNYWxlbiwgPGJlbkBjb25jZXB0ZmFjdG9yeS5jb20uYXU+DQojIENvLU1haW50YWluZXI6IFNpbW9uIFJhZGZvcmQsIDxzaW1vbkBjb25jZXB0ZmFjdG9yeS5jb20uYXU+DQojIFdlYjogd3d3LmNvbmNlcHRmYWN0b3J5LmNvbS5hdQ0KIw0KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCiMNCiMgTWFpbnRhaW5lciBzaW5jZSAyMDExIHVwIHRvIDIwMTQ6IEpvbmF0aGFuIFNjaG1pZCwgPGhpQGpvbmF0aGFuc2NobWlkLmRlPg0KIyBXZWI6IHd3dy5qb25hdGhhbnNjaG1pZC5kZQ0KIw0KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCiMNCiMgU29tZSB3YWNrb3Mgc3RhcnRlZCBkZXN0cm95aW5nIHN0dWZmIHNpbmNlIDIwMTIgYW5kIHN0b3BwZWQgYXQgMjAxNDoNCiMNCiMgVGFwaW8gTMO2eXR0eSwgPHRhcHNhQG9yYW5nZS1tZWRpYS5maT4NCiMgV2ViOiB3d3cub3JhbmdlLW1lZGlhLmZpDQojDQojIEdvcmFuIElsaWMsIDx1bmlxdTNlQGdtYWlsLmNvbT4NCiMgV2ViOiB3d3cuaWNoLW1hY2gtZGFzLmF0DQojDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIw0KIyBMSVNFIGlzIGEgQ01TIE1hZGUgU2ltcGxlIG1vZHVsZSB0aGF0IGVuYWJsZXMgdGhlIHdlYiBkZXZlbG9wZXIgdG8gY3JlYXRlDQojIG11bHRpcGxlIGxpc3RzIHRocm91Z2hvdXQgYSBzaXRlLiBJdCBjYW4gYmUgZHVwbGljYXRlZCBhbmQgZ2l2ZW4gZnJpZW5kbHkNCiMgbmFtZXMgZm9yIGVhc2llciBjbGllbnQgbWFpbnRlbmFuY2UuDQojDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIyBCRUdJTl9MSUNFTlNFDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIyBUaGlzIGZpbGUgaXMgcGFydCBvZiBMSVNFDQojIExJU0UgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5DQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5DQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yDQojIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uDQojDQojIExJU0UgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLA0KIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZg0KIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlDQojIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuDQojIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlDQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlDQojIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcgVVNBDQojIE9yIHJlYWQgaXQgb25saW5lOiBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwNCiMNCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQojIEVORF9MSUNFTlNFDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KDQppZiggIWRlZmluZWQoJ0NNU19WRVJTSU9OJykgKSBleGl0Ow0KDQoNCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0NCiMgSW5pdCBjYXRlZ29yaWVzDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQoNCmlmICghJHRoaXMtPkNoZWNrUGVybWlzc2lvbigkdGhpcy0+X0dldE1vZHVsZUFsaWFzKCkgLiAnX21vZGlmeV9jYXRlZ29yeScpKSANCglyZXR1cm47DQoNCiRhZG1pbnRoZW1lID0gY21zX3V0aWxzOjpnZXRfdGhlbWVfb2JqZWN0KCk7DQoNCiRxdWVyeV9vYmplY3QgPSBuZXcgTElTRUNhdGVnb3J5UXVlcnkoJHRoaXMsICRwYXJhbXMpOw0KJHJlc3VsdCA9ICRxdWVyeV9vYmplY3QtPkV4ZWN1dGUodHJ1ZSk7DQoNCiRpdGVtcyA9IGFycmF5KCk7DQp3aGlsZSAoJHJlc3VsdCAmJiAkcm93ID0gJHJlc3VsdC0+RmV0Y2hSb3coKSkgew0KDQoJJG9iaiA9ICR0aGlzLT5Jbml0aWF0ZUNhdGVnb3J5KCk7DQoJTElTRUNhdGVnb3J5T3BlcmF0aW9uczo6TG9hZCgkdGhpcywgJG9iaiwgJHJvdyk7DQoJDQoJLy8kb2JqLT5kZXB0aCA9IGNvdW50KGV4cGxvZGUoJy4nLCAkb2JqLT5oaWVyYXJjaHkpKSAtIDE7DQogDQogICAgLy8gYXBwcm92ZQ0KICAgIGlmICgkb2JqLT5hY3RpdmUpIHsNCiAgICAgICAgJG9iai0+YXBwcm92ZSA9ICR0aGlzLT5DcmVhdGVMaW5rKCRpZCwgJ2FkbWluX2FwcHJvdmVjYXRlZ29yeScsICRyZXR1cm5pZCwgJGFkbWludGhlbWUtPkRpc3BsYXlJbWFnZSgnaWNvbnMvc3lzdGVtL3RydWUuZ2lmJywgJHRoaXMtPk1vZExhbmcoJ3JldmVydCcpLCAnJywgJycsICdzeXN0ZW1pY29uJyksIGFycmF5KA0KICAgICAgICAgICAgJ2FwcHJvdmUnID0+IDAsDQogICAgICAgICAgICAnY2F0ZWdvcnlfaWQnID0+ICRyb3dbJ2NhdGVnb3J5X2lkJ10NCiAgICAgICAgKSk7DQogICAgfSBlbHNlIHsNCiAgICAgICAgJG9iai0+YXBwcm92ZSA9ICR0aGlzLT5DcmVhdGVMaW5rKCRpZCwgJ2FkbWluX2FwcHJvdmVjYXRlZ29yeScsICRyZXR1cm5pZCwgJGFkbWludGhlbWUtPkRpc3BsYXlJbWFnZSgnaWNvbnMvc3lzdGVtL2ZhbHNlLmdpZicsICR0aGlzLT5Nb2RMYW5nKCdhcHByb3ZlJyksICcnLCAnJywgJ3N5c3RlbWljb24nKSwgYXJyYXkoDQogICAgICAgICAgICAnYXBwcm92ZScgPT4gMSwNCiAgICAgICAgICAgICdjYXRlZ29yeV9pZCcgPT4gJHJvd1snY2F0ZWdvcnlfaWQnXQ0KICAgICAgICApKTsNCiAgICB9DQogICAgDQogICAgLy8gZWRpdA0KICAgICRvYmotPmVkaXRsaW5rID0gJHRoaXMtPkNyZWF0ZUxpbmsoJGlkLCAnYWRtaW5fZWRpdGNhdGVnb3J5JywgJHJldHVybmlkLCAkYWRtaW50aGVtZS0+RGlzcGxheUltYWdlKCdpY29ucy9zeXN0ZW0vZWRpdC5naWYnLCAkdGhpcy0+TW9kTGFuZygnZWRpdCcpLCAnJywgJycsICdzeXN0ZW1pY29uJyksIGFycmF5KA0KICAgICAgICAnY2F0ZWdvcnlfaWQnID0+ICRyb3dbJ2NhdGVnb3J5X2lkJ10NCiAgICApKTsNCgkNCiAgICAkb2JqLT5uYW1lID0gJHRoaXMtPkNyZWF0ZUxpbmsoJGlkLCAnYWRtaW5fZWRpdGNhdGVnb3J5JywgJHJldHVybmlkLCAkb2JqLT5uYW1lLCBhcnJheSgNCiAgICAgICAgJ2NhdGVnb3J5X2lkJyA9PiAkcm93WydjYXRlZ29yeV9pZCddDQogICAgKSk7DQoJDQoJLy8gZGVsZXRlDQogICAgJG9iai0+ZGVsZXRlID0gJHRoaXMtPkNyZWF0ZUxpbmsoJGlkLCAnYWRtaW5fZGVsZXRlY2F0ZWdvcnknLCAkcmV0dXJuaWQsICRhZG1pbnRoZW1lLT5EaXNwbGF5SW1hZ2UoJ2ljb25zL3N5c3RlbS9kZWxldGUuZ2lmJywgJHRoaXMtPk1vZExhbmcoJ2RlbGV0ZScpLCAnJywgJycsICdzeXN0ZW1pY29uJyksIGFycmF5KA0KICAgICAgICAnY2F0ZWdvcnlfaWQnID0+ICRyb3dbJ2NhdGVnb3J5X2lkJ10NCiAgICApKTsNCgkNCgkvLyBzZWxlY3QgYm94DQogICAgJG9iai0+c2VsZWN0ID0gJHRoaXMtPkNyZWF0ZUlucHV0Q2hlY2tib3goJGlkLCAnY2F0ZWdvcmllc1tdJywgJHJvd1snY2F0ZWdvcnlfaWQnXSk7DQoJDQoJJGl0ZW1zW10gPSAkb2JqOw0KfQ0KDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQojIFNtYXJ0eSBwcm9jZXNzaW5nDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQoNCiRzbWFydHktPmFzc2lnbignaXRlbXMnLCAkaXRlbXMpOw0KJHNtYXJ0eS0+YXNzaWduKCdhZGRsaW5rJywgJHRoaXMtPkNyZWF0ZUxpbmsoJGlkLCAnYWRtaW5fZWRpdGNhdGVnb3J5JywgJHJldHVybmlkLCAkYWRtaW50aGVtZS0+RGlzcGxheUltYWdlKCdpY29ucy9zeXN0ZW0vbmV3b2JqZWN0LmdpZicsICR0aGlzLT5Nb2RMYW5nKCdhZGQnLCAkdGhpcy0+TW9kTGFuZygnY2F0ZWdvcnknKSksICcnLCAnJywgJ3N5c3RlbWljb24nKSAuJHRoaXMtPk1vZExhbmcoJ2FkZCcsICR0aGlzLT5Nb2RMYW5nKCdjYXRlZ29yeScpKSkpOw0KJHNtYXJ0eS0+YXNzaWduKCdyZW9yZGVybGluaycsICR0aGlzLT5DcmVhdGVMaW5rKCRpZCwgJ2FkbWluX3Jlb3JkZXJjYXRlZ29yeScsICRyZXR1cm5pZCwgJGFkbWludGhlbWUtPkRpc3BsYXlJbWFnZSgnaWNvbnMvc3lzdGVtL3Jlb3JkZXIuZ2lmJywgJHRoaXMtPk1vZExhbmcoJ3Jlb3JkZXJfY2F0ZWdvcmllcycpLCAnJywgJycsICdzeXN0ZW1pY29uJykgLiR0aGlzLT5Nb2RMYW5nKCdyZW9yZGVyX2NhdGVnb3JpZXMnKSkpOw0KIA0KZWNobyAkdGhpcy0+TW9kUHJvY2Vzc1RlbXBsYXRlKCdjYXRlZ29yeXRhYi50cGwnKTsNCg0KPz4=]]></data>
	</file>
	<file>
	  <filename>/framework/function.admin_fielddeftab.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBMSVNFIC0gTGlzdCBJdCBTcGVjaWFsIEVkaXRpb24KIyBWZXJzaW9uIDEuMgojIEEgZm9yayBvZiBMaXN0STIKIyBtYWludGFpbmVkIGJ5IEZlcm5hbmRvIE1vcmdhZG8gQUtBIEpvIE1vcmcKIyBzaW5jZSAyMDE1CiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBPcmlnaW5hbCBBdXRob3I6IEJlbiBNYWxlbiwgPGJlbkBjb25jZXB0ZmFjdG9yeS5jb20uYXU+CiMgQ28tTWFpbnRhaW5lcjogU2ltb24gUmFkZm9yZCwgPHNpbW9uQGNvbmNlcHRmYWN0b3J5LmNvbS5hdT4KIyBXZWI6IHd3dy5jb25jZXB0ZmFjdG9yeS5jb20uYXUKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojCiMgTWFpbnRhaW5lciBzaW5jZSAyMDExIHVwIHRvIDIwMTQ6IEpvbmF0aGFuIFNjaG1pZCwgPGhpQGpvbmF0aGFuc2NobWlkLmRlPgojIFdlYjogd3d3LmpvbmF0aGFuc2NobWlkLmRlCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIwojIFNvbWUgd2Fja29zIHN0YXJ0ZWQgZGVzdHJveWluZyBzdHVmZiBzaW5jZSAyMDEyIGFuZCBzdG9wcGVkIGF0IDIwMTQ6CiMKIyBUYXBpbyBMw7Z5dHR5LCA8dGFwc2FAb3JhbmdlLW1lZGlhLmZpPgojIFdlYjogd3d3Lm9yYW5nZS1tZWRpYS5maQojCiMgR29yYW4gSWxpYywgPHVuaXF1M2VAZ21haWwuY29tPgojIFdlYjogd3d3LmljaC1tYWNoLWRhcy5hdAojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBMSVNFIGlzIGEgQ01TIE1hZGUgU2ltcGxlIG1vZHVsZSB0aGF0IGVuYWJsZXMgdGhlIHdlYiBkZXZlbG9wZXIgdG8gY3JlYXRlCiMgbXVsdGlwbGUgbGlzdHMgdGhyb3VnaG91dCBhIHNpdGUuIEl0IGNhbiBiZSBkdXBsaWNhdGVkIGFuZCBnaXZlbiBmcmllbmRseQojIG5hbWVzIGZvciBlYXNpZXIgY2xpZW50IG1haW50ZW5hbmNlLgojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgQkVHSU5fTElDRU5TRQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIExJU0UKIyBMSVNFIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgTElTRSBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBFTkRfTElDRU5TRQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKaWYoICFkZWZpbmVkKCdDTVNfVkVSU0lPTicpICkgZXhpdDsKCgojLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgSW5pdCBpdGVtcwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgppZiAoISR0aGlzLT5DaGVja1Blcm1pc3Npb24oJHRoaXMtPl9HZXRNb2R1bGVBbGlhcygpIC4gJ19tb2RpZnlfb3B0aW9uJykpIHJldHVybjsKCiRhZG1pbnRoZW1lID0gY21zX3V0aWxzOjpnZXRfdGhlbWVfb2JqZWN0KCk7CiRmaWVsZGRlZnMgPSAkdGhpcy0+R2V0RmllbGREZWZzKCk7Cgpmb3JlYWNoKCRmaWVsZGRlZnMgYXMgJGZpZWxkZGVmKSB7CgoJJGZpZWxkZGVmLT5TZXROYW1lKCR0aGlzLT5DcmVhdGVMaW5rKCRpZCwgJ2FkbWluX2VkaXRmaWVsZGRlZicsICRyZXR1cm5pZCwgJGZpZWxkZGVmLT5HZXROYW1lKCksIGFycmF5KCdmaWVsZGRlZl9pZCc9PiRmaWVsZGRlZi0+R2V0SWQoKSkpKTsKCQoJaWYoJGZpZWxkZGVmLT5Jc1JlcXVpcmVkKCkpIHsKCQkkZmllbGRkZWYtPlNldFJlcXVpcmVkKCR0aGlzLT5DcmVhdGVMaW5rKCRpZCwnYWRtaW5fcmVxdWlyZWZpZWxkZGVmJywkcmV0dXJuaWQsCgkJCQkJJGFkbWludGhlbWUtPkRpc3BsYXlJbWFnZSgnaWNvbnMvc3lzdGVtL3RydWUuZ2lmJywgJHRoaXMtPk1vZExhbmcoJ3N0YXR1c19vcHRpb25hbCcpLCcnLCcnLCdzeXN0ZW1pY29uJyksYXJyYXkoJ3JlcXVpcmUnPT4wLCdmaWVsZGRlZl9pZCc9PiRmaWVsZGRlZi0+R2V0SWQoKSkpKTsKCX0gZWxzZSB7CgkJJGZpZWxkZGVmLT5TZXRSZXF1aXJlZCgkdGhpcy0+Q3JlYXRlTGluaygkaWQsJ2FkbWluX3JlcXVpcmVmaWVsZGRlZicsICRyZXR1cm5pZCwKCQkJCQkkYWRtaW50aGVtZS0+RGlzcGxheUltYWdlKCdpY29ucy9zeXN0ZW0vZmFsc2UuZ2lmJywkdGhpcy0+TW9kTGFuZygnc3RhdHVzX3JlcXVpcmVkJyksJycsJycsJ3N5c3RlbWljb24nKSxhcnJheSgncmVxdWlyZSc9PjEsJ2ZpZWxkZGVmX2lkJz0+JGZpZWxkZGVmLT5HZXRJZCgpKSkpOwoJfQoKICAgICRmaWVsZGRlZi0+ZWRpdGxpbmsgPSAkdGhpcy0+Q3JlYXRlTGluaygkaWQsICdhZG1pbl9lZGl0ZmllbGRkZWYnLCAkcmV0dXJuaWQsIAoJCQkJCSRhZG1pbnRoZW1lLT5EaXNwbGF5SW1hZ2UoJ2ljb25zL3N5c3RlbS9lZGl0LmdpZicsICR0aGlzLT5Nb2RMYW5nKCdlZGl0JyksICcnLCAnJywgJ3N5c3RlbWljb24nKSwgYXJyYXkoJ2ZpZWxkZGVmX2lkJyA9PiRmaWVsZGRlZi0+R2V0SWQoKSkpOwoKCgkkZmllbGRkZWYtPmRlbGV0ZWxpbmsgPSAkdGhpcy0+Q3JlYXRlTGluaygkaWQsICdhZG1pbl9kZWxldGVmaWVsZGRlZicsICRyZXR1cm5pZCwgCgkJCQkJJGFkbWludGhlbWUtPkRpc3BsYXlJbWFnZSgnaWNvbnMvc3lzdGVtL2RlbGV0ZS5naWYnLCAkdGhpcy0+TW9kTGFuZygnZGVsZXRlJyksICcnLCAnJywgJ3N5c3RlbWljb24nKSwgYXJyYXkoJ2ZpZWxkZGVmX2lkJyA9PiRmaWVsZGRlZi0+R2V0SWQoKSkpOwoJJGZpZWxkZGVmLT5zZWxlY3QgPSAkdGhpcy0+Q3JlYXRlSW5wdXRDaGVja2JveCgkaWQsICdmaWVsZGRlZnNbXScsICRmaWVsZGRlZi0+R2V0SWQoKSk7Cgp9CgojLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgU21hcnR5IHByb2Nlc3NpbmcKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKJHNtYXJ0eS0+YXNzaWduKCdzdGFydGZvcm0nLCAkdGhpcy0+Q3JlYXRlRm9ybVN0YXJ0KCRpZCwgJ2FkbWluX2RlbGV0ZWZpZWxkZGVmJywgJHJldHVybmlkKSk7CiRzbWFydHktPmFzc2lnbignZW5kZm9ybScsICR0aGlzLT5DcmVhdGVGb3JtRW5kKCkpOwoKJHNtYXJ0eS0+YXNzaWduX2J5X3JlZignaXRlbXMnLCAkZmllbGRkZWZzKTsKJHNtYXJ0eS0+YXNzaWduKCdzdWJtaXRvcmRlcicsICR0aGlzLT5DcmVhdGVJbnB1dFN1Ym1pdCgkaWQsICdzdWJtaXRfZmllbGRkZWZvcmRlcicsICR0aGlzLT5Nb2RMYW5nKCdzdWJtaXRfb3JkZXInKSkpOwokc21hcnR5LT5hc3NpZ24oJ2FkZGxpbmsnLCAkdGhpcy0+Q3JlYXRlTGluaygkaWQsICdhZG1pbl9lZGl0ZmllbGRkZWYnLCAkcmV0dXJuaWQsICRhZG1pbnRoZW1lLT5EaXNwbGF5SW1hZ2UoJ2ljb25zL3N5c3RlbS9uZXdvYmplY3QuZ2lmJywgJHRoaXMtPk1vZExhbmcoJ2FkZCcsICR0aGlzLT5Nb2RMYW5nKCdmaWVsZGRlZicpKSwgJycsICcnLCAnc3lzdGVtaWNvbicpIC4gJHRoaXMtPk1vZExhbmcoJ2FkZCcsICR0aGlzLT5Nb2RMYW5nKCdmaWVsZGRlZicpKSkpOwokc21hcnR5LT5hc3NpZ24oJ3N1Ym1pdG1hc3NkZWxldGUnLCAkdGhpcy0+Q3JlYXRlSW5wdXRTdWJtaXQoJGlkLCAnc3VibWl0bWFzc2RlbGV0ZScsICR0aGlzLT5Nb2RMYW5nKCdkZWxldGVfc2VsZWN0ZWQnLCAkdGhpcy0+TW9kTGFuZygnZmllbGRkZWZzJykpLCAnJywgJycsICR0aGlzLT5Nb2RMYW5nKCdhcmV5b3VzdXJlX2RlbGV0ZW11bHRpcGxlJywgJHRoaXMtPk1vZExhbmcoJ2ZpZWxkZGVmcycpKSkpOwoKZWNobyAkdGhpcy0+TW9kUHJvY2Vzc1RlbXBsYXRlKCdmaWVsZGRlZnRhYi50cGwnKTsKCj8+Cg==]]></data>
	</file>
	<file>
	  <filename>/framework/function.admin_global.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHANCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQojIExJU0UgLSBMaXN0IEl0IFNwZWNpYWwgRWRpdGlvbg0KIyBWZXJzaW9uIDEuMg0KIyBBIGZvcmsgb2YgTGlzdEkyDQojIG1haW50YWluZWQgYnkgRmVybmFuZG8gTW9yZ2FkbyBBS0EgSm8gTW9yZw0KIyBzaW5jZSAyMDE1DQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIw0KIyBPcmlnaW5hbCBBdXRob3I6IEJlbiBNYWxlbiwgPGJlbkBjb25jZXB0ZmFjdG9yeS5jb20uYXU+DQojIENvLU1haW50YWluZXI6IFNpbW9uIFJhZGZvcmQsIDxzaW1vbkBjb25jZXB0ZmFjdG9yeS5jb20uYXU+DQojIFdlYjogd3d3LmNvbmNlcHRmYWN0b3J5LmNvbS5hdQ0KIw0KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCiMNCiMgTWFpbnRhaW5lciBzaW5jZSAyMDExIHVwIHRvIDIwMTQ6IEpvbmF0aGFuIFNjaG1pZCwgPGhpQGpvbmF0aGFuc2NobWlkLmRlPg0KIyBXZWI6IHd3dy5qb25hdGhhbnNjaG1pZC5kZQ0KIw0KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCiMNCiMgU29tZSB3YWNrb3Mgc3RhcnRlZCBkZXN0cm95aW5nIHN0dWZmIHNpbmNlIDIwMTIgYW5kIHN0b3BwZWQgYXQgMjAxNDoNCiMNCiMgVGFwaW8gTMO2eXR0eSwgPHRhcHNhQG9yYW5nZS1tZWRpYS5maT4NCiMgV2ViOiB3d3cub3JhbmdlLW1lZGlhLmZpDQojDQojIEdvcmFuIElsaWMsIDx1bmlxdTNlQGdtYWlsLmNvbT4NCiMgV2ViOiB3d3cuaWNoLW1hY2gtZGFzLmF0DQojDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIw0KIyBMSVNFIGlzIGEgQ01TIE1hZGUgU2ltcGxlIG1vZHVsZSB0aGF0IGVuYWJsZXMgdGhlIHdlYiBkZXZlbG9wZXIgdG8gY3JlYXRlDQojIG11bHRpcGxlIGxpc3RzIHRocm91Z2hvdXQgYSBzaXRlLiBJdCBjYW4gYmUgZHVwbGljYXRlZCBhbmQgZ2l2ZW4gZnJpZW5kbHkNCiMgbmFtZXMgZm9yIGVhc2llciBjbGllbnQgbWFpbnRlbmFuY2UuDQojDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIyBCRUdJTl9MSUNFTlNFDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIyBUaGlzIGZpbGUgaXMgcGFydCBvZiBMSVNFDQojIExJU0UgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5DQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5DQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yDQojIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uDQojDQojIExJU0UgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLA0KIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZg0KIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlDQojIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuDQojIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlDQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlDQojIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcgVVNBDQojIE9yIHJlYWQgaXQgb25saW5lOiBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwNCiMNCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQojIEVORF9MSUNFTlNFDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KaWYoICFkZWZpbmVkKCdDTVNfVkVSU0lPTicpICkgZXhpdDsNCg0KaWYgKCEkdGhpcy0+Q2hlY2tQZXJtaXNzaW9uKCR0aGlzLT5fR2V0TW9kdWxlQWxpYXMoKSAuICdfbW9kaWZ5X2l0ZW0nKSkgcmV0dXJuOw0KDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQojIENoZWNrIHBhcmFtcw0KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KDQovL2lmIChpc3NldCgkcGFyYW1zWydjYW5jZWwnXSkpDQovL3sNCi8vCWxpc2VfdXRpbHM6OmNsZWFuX3BhcmFtcygkcGFyYW1zLCBhcnJheSgncGFnZScpLCB0cnVlKTsNCi8vCSRwYXJhbXNbJ2FjdGl2ZV90YWInXSA9ICdpdGVtdGFiJzsNCi8vCSR0aGlzLT5SZWRpcmVjdCgkaWQsICdkZWZhdWx0YWRtaW4nLCAkcmV0dXJuaWQsICRwYXJhbXMpOw0KLy99DQoNCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0NCiMgSW5pdCBwYXJhbXMNCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0NCg0KJG1vZGUJICAgICAgCQkJCSAgICA9ICdlZGl0JzsNCiRpdGVtX2lkICAgICAgICAgICAgICAgID0gMTsNCiR1cmwgICAgICAJCQkJICAgICAgPSAnJzsNCiR0aXRsZSAgICAgICAJCQkgCSAgICA9ICdHbG9iYWwnOw0KJGFsaWFzCQkgCQkJIAkgICAgICA9ICR0aGlzLT5HZXROYW1lKCk7DQokdGltZV9jb250cm9sIAkJCQkgID0gMDsNCiRhY3RpdmUgICAgICAJCQkgCSAgICA9IDE7DQoNCiR1cmxfZXJyb3IgPSBGQUxTRTsNCiRzdGFydF90aW1lID0gJyc7DQokZW5kX3RpbWUgPSAnJzsNCg0KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIyBJbml0IEl0ZW0NCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0NCg0KDQokb2JqID0gJHRoaXMtPkxvYWRJdGVtQnlJZGVudGlmaWVyKCdhbGlhcycsICRhbGlhcyk7DQoNCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0NCiMgSGFuZGxlIGN1c3RvbSBmaWVsZHMNCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0NCg0KaWYgKGlzc2V0KCRwYXJhbXNbJ2N1c3RvbWZpZWxkJ10pKQ0Kew0KICBpZiggIWlzX2FycmF5KCRwYXJhbXNbJ2N1c3RvbWZpZWxkJ10pICkgJHBhcmFtc1snY3VzdG9tZmllbGQnXSA9IGFycmF5KCRwYXJhbXNbJ2N1c3RvbWZpZWxkJ10pOw0KICANCiAgZm9yZWFjaCAoKGFycmF5KSRwYXJhbXNbJ2N1c3RvbWZpZWxkJ10gYXMgJGZsZGlkID0+ICR2YWx1ZSkNCiAgew0KICAgIGlmKGlzc2V0KCRvYmotPmZpZWxkZGVmc1skZmxkaWRdKSkgJG9iai0+ZmllbGRkZWZzWyRmbGRpZF0tPlNldFZhbHVlKCR2YWx1ZSk7DQogIH0NCiAgDQogIHVuc2V0KCRwYXJhbXNbJ2N1c3RvbWZpZWxkJ10pOw0KfQ0KDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQojIFN1Ym1pdA0KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KDQppZiggaXNzZXQoJHBhcmFtc1snYXBwbHknXSkgKQ0Kew0KICAkZXJyb3JzID0gYXJyYXkoKTsNCiAgDQogIC8vIFByZVByb2Nlc3MgJiBWYWxpZGF0aW9ucw0KICBmb3JlYWNoKCRvYmotPmZpZWxkZGVmcyBhcyAkZmllbGQpDQogIHsNCiAgICAkZmllbGQtPkV2ZW50SGFuZGxlcigpLT5JdGVtU2F2ZVByZVByb2Nlc3MoJGVycm9ycywgJHBhcmFtcyk7DQogIH0NCiAgDQogIC8vIHRpdGxlIGFuZCByZXF1aXJlZCBmaWVsZHMgaGF2ZSB2YWx1ZXMsIGxldCdzIGNvbnRpbnVlDQogIGlmIChlbXB0eSgkZXJyb3JzKSkNCiAgew0KICAgICRvYmotPnRpdGxlICAgICAgICAJICA9ICR0aXRsZTsNCiAgICAkb2JqLT5hbGlhcwkJIAkgICAgICA9ICRhbGlhczsNCiAgICAkb2JqLT5hY3RpdmUgICAgICAgCSAgPSBpc3NldCgkcGFyYW1zWydhY3RpdmUnXSkgPyAxIDogMDsNCiAgICAkb2JqLT5zdGFydF90aW1lICAgCSAgPSAkc3RhcnRfdGltZTsNCiAgICAkb2JqLT5lbmRfdGltZSAgICAgICAgPSAkZW5kX3RpbWU7DQogICAgJG9iai0+dXJsICAgICAJICAgICAgPSAkdXJsOw0KICAgIA0KICAgIC8vIFNhdmUgaXRlbSB0byBkYXRhYmFzZQ0KICAgICR0aGlzLT5TYXZlSXRlbSgkb2JqKTsNCiAgICANCiAgICAvLyBQb3N0UHJvY2Vzcw0KICAgIGZvcmVhY2goJG9iai0+ZmllbGRkZWZzIGFzICRmaWVsZCkNCiAgICB7DQogICAgICAkZmllbGQtPkV2ZW50SGFuZGxlcigpLT5JdGVtU2F2ZVBvc3RQcm9jZXNzKCRlcnJvcnMsICRwYXJhbXMpOw0KICAgIH0NCiAgICANCiAgICAvLyBpZiBhcHBseSBhbmQgYWpheA0KICAgIGlmIChpc3NldCgkcGFyYW1zWydhcHBseSddKSAmJiBpc3NldCgkcGFyYW1zWydhamF4J10pKQ0KICAgIHsNCiAgICAgICRyZXNwb25zZSA9ICc8RWRpdEl0ZW0+JzsNCiAgICAgICRyZXNwb25zZSAuPSAnPFJlc3BvbnNlPlN1Y2Nlc3M8L1Jlc3BvbnNlPic7DQogICAgICAkcmVzcG9uc2UgLj0gJzxEZXRhaWxzPjwhW0NEQVRBWycgLiAkdGhpcy0+TW9kTGFuZygnY2hhbmdlc3NhdmVkJykgLiAnXV0+PC9EZXRhaWxzPic7DQogICAgICAkcmVzcG9uc2UgLj0gJzxJdGVtSUQ+JyAuICRvYmotPml0ZW1faWQgLiAnPC9JdGVtSUQ+JzsNCiAgICAgICRyZXNwb25zZSAuPSAnPEl0ZW1BbGlhcz4nIC4gJG9iai0+YWxpYXMgLiAnPC9JdGVtQWxpYXM+JzsNCiAgICAgICRyZXNwb25zZSAuPSAnPC9FZGl0SXRlbT4nOw0KICAgICAgZWNobyAkcmVzcG9uc2U7DQogICAgICByZXR1cm47DQogICAgfQ0KICAgIA0KICAgIC8vIHNob3cgc2F2ZWQgbWVzc2FnZQ0KICAgIGlmIChpc3NldCgkcGFyYW1zWydzdWJtaXQnXSkpDQogICAgew0KICAgICAgbGlzZV91dGlsczo6Y2xlYW5fcGFyYW1zKCRwYXJhbXMsIGFycmF5KCdwYWdlJyksIHRydWUpOw0KICAgICAgJHBhcmFtc1snYWN0aXZlX3RhYiddID0gJ2l0ZW10YWInOw0KICAgICAgJHBhcmFtc1snbWVzc2FnZSddID0gJ2NoYW5nZXNzYXZlZCc7DQogICAgICAkdGhpcy0+UmVkaXJlY3QoJGlkLCAnZGVmYXVsdGFkbWluJywgJHJldHVybmlkLCAkcGFyYW1zKTsNCiAgICAgIA0KICAgIH0NCiAgICBlbHNlDQogICAgew0KICAgICAgZWNobyAkdGhpcy0+U2hvd01lc3NhZ2UoJHRoaXMtPk1vZExhbmcoJ2NoYW5nZXNzYXZlZCcpKTsNCiAgICB9DQogICAgDQogIH0gLy8gZW5kIGVycm9yIGNoZWNrDQogIA0KfSAvLyBlbmQgc3VibWl0IG9yIGFwcGx5DQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQojIE1lc3NhZ2UgY29udHJvbA0KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KDQovLyBkaXNwbGF5IGVycm9ycyBpZiB0aGVyZSBhcmUgYW55DQppZiAoIWVtcHR5KCRlcnJvcnMpKQ0Kew0KICAkZm9ybWF0ZWRfZXJyb3JzID0gJyc7DQogIA0KICBmb3JlYWNoICgkZXJyb3JzIGFzICRlcnJvcikNCiAgew0KICAgICRmb3JtYXRlZF9lcnJvcnMgLj0gJzxsaT4nIC4gJGVycm9yIC4gJzwvbGk+JzsNCiAgfQ0KICANCiAgaWYgKGlzc2V0KCRwYXJhbXNbJ2FwcGx5J10pICYmIGlzc2V0KCRwYXJhbXNbJ2FqYXgnXSkpDQogIHsNCiAgICAkcmVzcG9uc2UgPSAnPEVkaXRJdGVtPic7DQogICAgJHJlc3BvbnNlIC49ICc8UmVzcG9uc2U+RXJyb3I8L1Jlc3BvbnNlPic7DQogICAgJHJlc3BvbnNlIC49ICc8RGV0YWlscz48IVtDREFUQVsnOw0KICAgICRyZXNwb25zZSAuPSAkZm9ybWF0ZWRfZXJyb3JzOw0KICAgICRyZXNwb25zZSAuPSAnXV0+PC9EZXRhaWxzPic7DQogICAgJHJlc3BvbnNlIC49ICc8L0VkaXRJdGVtPic7DQogICAgZWNobyAkcmVzcG9uc2U7DQogICAgcmV0dXJuOw0KICB9DQogIGVsc2UNCiAgew0KICAgIGVjaG8gJHRoaXMtPlNob3dFcnJvcnMoJzx1bD4nIC4gJGZvcm1hdGVkX2Vycm9ycyAuICc8L3VsPicpOw0KICB9DQp9DQoNCmlmKGlzc2V0KCRwYXJhbXNbJ21lc3NhZ2UnXSkgJiYgZW1wdHkoJGVycm9ycykpDQogIGVjaG8gJHRoaXMtPlNob3dNZXNzYWdlKCR0aGlzLT5Nb2RMYW5nKCdjaGFuZ2Vzc2F2ZWRfY3JlYXRlJykpOw0KDQovLyRoaWRlX2FsaWFzICAgICAgICAgID0gJHRoaXMtPkdldFByZWZlcmVuY2UoJ2hpZGVfYWxpYXMnLCAxKTsNCi8vJGhpZGVfc2x1ZyAgICAgICAgICAgPSAkdGhpcy0+R2V0UHJlZmVyZW5jZSgnaGlkZV9zbHVnJywgMSk7DQovLyRoaWRlX3RpbWVfY29udHJvbCAgID0gJHRoaXMtPkdldFByZWZlcmVuY2UoJ2hpZGVfdGltZV9jb250cm9sJywgMSk7DQoNCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0NCiMgU21hcnR5IHByb2Nlc3NpbmcNCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0NCg0KJHNtYXJ0eS0+YXNzaWduKCdpdGVtT2JqZWN0JywgJG9iaik7DQoNCiRhamF4X3VybDEgPSAkdGhpcy0+Y3JlYXRlX3VybCgkaWQsICdhamF4X2dldHVybCcsICRyZXR1cm5pZCk7DQokYWpheF91cmwyID0gJHRoaXMtPmNyZWF0ZV91cmwoJGlkLCAnYWpheF9nZXRfYWxpYXMnLCAkcmV0dXJuaWQpOw0KJHNtYXJ0eS0+YXNzaWduKCdhamF4X2dldF91cmwnLCAkYWpheF91cmwxKTsNCiRzbWFydHktPmFzc2lnbignYWpheF9nZXRfYWxpYXMnLCAkYWpheF91cmwyKTsNCg0KLy8kc21hcnR5LT5hc3NpZ24oJ2JhY2tsaW5rJywgJHRoaXMtPkNyZWF0ZUJhY2tMaW5rKCdpdGVtdGFiJykpOw0KLy8kc21hcnR5LT5hc3NpZ24oJ3RpdGxlJywgKCRpdGVtX2lkID4gMCA/ICR0aGlzLT5Nb2RMYW5nKCdlZGl0JykgLiAnICcgLiAkdGhpcy0+R2V0UHJlZmVyZW5jZSgnaXRlbV9zaW5ndWxhcicsICcnKSA6ICR0aGlzLT5Nb2RMYW5nKCdhZGQnLCAkdGhpcy0+R2V0UHJlZmVyZW5jZSgnaXRlbV9zaW5ndWxhcicsICcnKSkpKTsNCi8vJGl0ZW1fbmFtZSA9ICgkaXRlbV9pZCA+IDAgPyAkdGl0bGUgOiAnJmxhcXVvOycgLiAkdGhpcy0+TW9kTGFuZygndW50aXRsZWQnKSAuICcmcmFxdW87Jyk7DQokaGVhZGVyID0gJHRoaXMtPkdldEZyaWVuZGx5TmFtZSgpOw0KJHNtYXJ0eS0+YXNzaWduKCdoZWFkZXInLCAkaGVhZGVyKTsNCiRzbWFydHktPmFzc2lnbignc3RhcnRmb3JtJywgJHRoaXMtPkNyZWF0ZUZvcm1TdGFydCgkaWQsICdkZWZhdWx0YWRtaW4nLCAkcmV0dXJuaWQsICdwb3N0JywgJ211bHRpcGFydC9mb3JtLWRhdGEnLCBmYWxzZSwgJycsICRwYXJhbXMpKTsNCiRzbWFydHktPmFzc2lnbignZW5kZm9ybScsICR0aGlzLT5DcmVhdGVGb3JtRW5kKCkpOw0KDQokc21hcnR5LT5hc3NpZ24oJ2lucHV0X3RpdGxlJywgJHRoaXMtPkNyZWF0ZUlucHV0VGV4dCgkaWQsICd0aXRsZScsICR0aXRsZSwgNTApKTsNCg0KaWYoJHRoaXMtPkNoZWNrUGVybWlzc2lvbigkdGhpcy0+X0dldE1vZHVsZUFsaWFzKCkgLiAnX2FwcHJvdmVfaXRlbScpKQ0KICAkc21hcnR5LT5hc3NpZ24oJ2lucHV0X2FjdGl2ZScsICR0aGlzLT5DcmVhdGVJbnB1dGNoZWNrYm94KCRpZCwgJ2FjdGl2ZScsIDEsICRhY3RpdmUpKTsNCg0KZWNobyAkdGhpcy0+TW9kUHJvY2Vzc1RlbXBsYXRlKCdnbG9iYWxfZWRpdC50cGwnKTsNCj8+DQo=]]></data>
	</file>
	<file>
	  <filename>/framework/function.admin_itemtab.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHANCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQojIExJU0UgLSBMaXN0IEl0IFNwZWNpYWwgRWRpdGlvbg0KIyBWZXJzaW9uIDEuMg0KIyBBIGZvcmsgb2YgTGlzdEkyDQojIG1haW50YWluZWQgYnkgRmVybmFuZG8gTW9yZ2FkbyBBS0EgSm8gTW9yZw0KIyBzaW5jZSAyMDE1DQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIw0KIyBPcmlnaW5hbCBBdXRob3I6IEJlbiBNYWxlbiwgPGJlbkBjb25jZXB0ZmFjdG9yeS5jb20uYXU+DQojIENvLU1haW50YWluZXI6IFNpbW9uIFJhZGZvcmQsIDxzaW1vbkBjb25jZXB0ZmFjdG9yeS5jb20uYXU+DQojIFdlYjogd3d3LmNvbmNlcHRmYWN0b3J5LmNvbS5hdQ0KIw0KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCiMNCiMgTWFpbnRhaW5lciBzaW5jZSAyMDExIHVwIHRvIDIwMTQ6IEpvbmF0aGFuIFNjaG1pZCwgPGhpQGpvbmF0aGFuc2NobWlkLmRlPg0KIyBXZWI6IHd3dy5qb25hdGhhbnNjaG1pZC5kZQ0KIw0KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCiMNCiMgU29tZSB3YWNrb3Mgc3RhcnRlZCBkZXN0cm95aW5nIHN0dWZmIHNpbmNlIDIwMTIgYW5kIHN0b3BwZWQgYXQgMjAxNDoNCiMNCiMgVGFwaW8gTMO2eXR0eSwgPHRhcHNhQG9yYW5nZS1tZWRpYS5maT4NCiMgV2ViOiB3d3cub3JhbmdlLW1lZGlhLmZpDQojDQojIEdvcmFuIElsaWMsIDx1bmlxdTNlQGdtYWlsLmNvbT4NCiMgV2ViOiB3d3cuaWNoLW1hY2gtZGFzLmF0DQojDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIw0KIyBMSVNFIGlzIGEgQ01TIE1hZGUgU2ltcGxlIG1vZHVsZSB0aGF0IGVuYWJsZXMgdGhlIHdlYiBkZXZlbG9wZXIgdG8gY3JlYXRlDQojIG11bHRpcGxlIGxpc3RzIHRocm91Z2hvdXQgYSBzaXRlLiBJdCBjYW4gYmUgZHVwbGljYXRlZCBhbmQgZ2l2ZW4gZnJpZW5kbHkNCiMgbmFtZXMgZm9yIGVhc2llciBjbGllbnQgbWFpbnRlbmFuY2UuDQojDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIyBCRUdJTl9MSUNFTlNFDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIyBUaGlzIGZpbGUgaXMgcGFydCBvZiBMSVNFDQojIExJU0UgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5DQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5DQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yDQojIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uDQojDQojIExJU0UgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLA0KIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZg0KIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlDQojIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuDQojIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlDQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlDQojIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcgVVNBDQojIE9yIHJlYWQgaXQgb25saW5lOiBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwNCiMNCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQojIEVORF9MSUNFTlNFDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KaWYoICFkZWZpbmVkKCdDTVNfVkVSU0lPTicpICkgZXhpdDsNCg0KaWYgKCEkdGhpcy0+Q2hlY2tQZXJtaXNzaW9uKCR0aGlzLT5fR2V0TW9kdWxlQWxpYXMoKSAuICdfbW9kaWZ5X2l0ZW0nKSkNCnsgICAgDQogIHJldHVybjsNCn0NCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0NCiMgQ2hlY2sgUHJlZmVyZW5jZXMNCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0NCg0KJGFkbWludGhlbWUgPSBjbXNfdXRpbHM6OmdldF90aGVtZV9vYmplY3QoKTsNCg0KJHNpbmd1bGFyICAgICAgICAgCT0gJHRoaXMtPkdldFByZWZlcmVuY2UoJ2l0ZW1fc2luZ3VsYXInLCAnJyk7DQokcGx1cmFsICAgICAgICAgICAJPSAkdGhpcy0+R2V0UHJlZmVyZW5jZSgnaXRlbV9wbHVyYWwnLCAnJyk7DQokZmllbGRzICAgICAgICAgICAJPSBleHBsb2RlKCAnLCcsICR0aGlzLT5HZXRQcmVmZXJlbmNlKCdpdGVtX2NvbHMnLCAnJykgKTsNCiRsaW1pdCAgICAgICAgICAgIAk9ICR0aGlzLT5HZXRQcmVmZXJlbmNlKCdpdGVtc19wZXJfcGFnZScsIDIwKTsNCiRkYXRlZm9ybWF0ICAgICAgIAk9IHRyaW0oIGdldF9wcmVmZXJlbmNlKGdldF91c2VyaWQoKSwgJ2RhdGVfZm9ybWF0X3N0cmluZycsICclWS0lbS0lZCcpICk7DQoNCmlmKGVtcHR5KCRkYXRlZm9ybWF0KSkgDQp7CQ0KICAkZGF0ZWZvcm1hdCA9ICclWS0lbS0lZCc7DQp9DQoNCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0NCiMgSW5pdCBpdGVtcw0KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLQkNCiRwYXJhbXNbJ3BhZ2VsaW1pdCddIAkJCT0gJGxpbWl0Ow0KJHBhcmFtc1snc2hvd2FsbCddIAkJCQk9IHRydWU7CS8vIDwtIFRvIGRpc2FibGUgdGltZSBjb250cm9sIHF1ZXJpZXMNCiRpdGVtX3F1ZXJ5ID0gbmV3IExJU0VJdGVtUXVlcnkoJHRoaXMsICRwYXJhbXMpOw0KDQppZighJHRoaXMtPkNoZWNrUGVybWlzc2lvbigkdGhpcy0+X0dldE1vZHVsZUFsaWFzKCkgLiAnX21vZGlmeV9hbGxfaXRlbScpKSANCnsNCgkkaXRlbV9xdWVyeS0+QXBwZW5kVG8oTElTRVF1ZXJ5OjpWQVJUWVBFX1dIRVJFLCAnQS5vd25lciA9ID8nKTsNCgkkaXRlbV9xdWVyeS0+QXBwZW5kVG8oTElTRVF1ZXJ5OjpWQVJUWVBFX1FQQVJBTVMsIGdldF91c2VyaWQoZmFsc2UpKTsNCn0NCg0KJHJlc3VsdCA9ICRpdGVtX3F1ZXJ5LT5FeGVjdXRlKHRydWUpOw0KDQokcGFnZSA9ICRpdGVtX3F1ZXJ5LT5HZXRQYWdlTnVtYmVyKCk7DQokdG90YWxjb3VudCA9ICRpdGVtX3F1ZXJ5LT5Ub3RhbENvdW50KCk7DQoNCiRpdGVtcyA9IGFycmF5KCk7DQp3aGlsZSAoJHJlc3VsdCAmJiAkcm93ID0gJHJlc3VsdC0+RmV0Y2hSb3coKSkgDQp7DQoJJG9iaiA9ICR0aGlzLT5Jbml0aWF0ZUl0ZW0oJGZpZWxkcyk7DQoJTElTRUl0ZW1PcGVyYXRpb25zOjpMb2FkKCR0aGlzLCAkb2JqLCAkcm93KTsJDQogICAgDQoJLy8gQ2hlY2sgaWYgd2UgbmVlZCB0byBzaG93IGFueSBmaWVsZHMNCiAgaWYgKGNvdW50KCRmaWVsZHMpID4gMCkgDQogIHsNCgkJLy8gQ2hlY2sgc3RhdGljDQoJCWlmICghaW5fYXJyYXkoJ2FsaWFzJywgJGZpZWxkcykpIA0KICAgIHsNCgkJCXVuc2V0KCRvYmotPmFsaWFzKTsNCgkJfQ0KCQkNCgkJaWYgKCFpbl9hcnJheSgnY3JlYXRlX3RpbWUnLCAkZmllbGRzKSkgDQogICAgew0KCQkJdW5zZXQoJG9iai0+Y3JlYXRlX3RpbWUpOw0KCQl9IA0KICAgIGVsc2UgDQogICAgew0KCQkJJG9iai0+Y3JlYXRlX3RpbWUgPSBsaXNlX3V0aWxzOjpzdHJmdGltZSgkZGF0ZWZvcm1hdCwgc3RydG90aW1lKCRvYmotPmNyZWF0ZV90aW1lKSk7DQoJCX0NCgkJDQoJCWlmICghaW5fYXJyYXkoJ21vZGlmaWVkX3RpbWUnLCAkZmllbGRzKSkgDQogICAgew0KCQkJdW5zZXQoJG9iai0+bW9kaWZpZWRfdGltZSk7DQoJCX0gDQogICAgZWxzZSANCiAgICB7DQoJCQkkb2JqLT5tb2RpZmllZF90aW1lID0gbGlzZV91dGlsczo6c3RyZnRpbWUoJGRhdGVmb3JtYXQsIHN0cnRvdGltZSgkb2JqLT5tb2RpZmllZF90aW1lKSk7DQoJCX0JCQ0KCQkNCgkJaWYgKGluX2FycmF5KCdzdGFydF90aW1lJywgJGZpZWxkcykpIA0KICAgIHsNCgkJCSRvYmotPnN0YXJ0X3RpbWUgPSAhZW1wdHkoJG9iai0+c3RhcnRfdGltZSkgPyBsaXNlX3V0aWxzOjpzdHJmdGltZSgkZGF0ZWZvcm1hdCwgc3RydG90aW1lKCRvYmotPnN0YXJ0X3RpbWUpKSA6ICcnOw0KCQl9DQoJCQ0KCQlpZiAoaW5fYXJyYXkoJ2VuZF90aW1lJywgJGZpZWxkcykpIA0KICAgIHsNCgkJCSRvYmotPmVuZF90aW1lID0gIWVtcHR5KCRvYmotPmVuZF90aW1lKSA/IGxpc2VfdXRpbHM6OnN0cmZ0aW1lKCRkYXRlZm9ybWF0LCBzdHJ0b3RpbWUoJG9iai0+ZW5kX3RpbWUpKSA6ICcnOw0KCQl9CQkJDQogIH0NCiAgIA0KICAvLyBhcHByb3ZlDQoJaWYoJHRoaXMtPkNoZWNrUGVybWlzc2lvbigkdGhpcy0+X0dldE1vZHVsZUFsaWFzKCkgLiAnX2FwcHJvdmVfaXRlbScpKSANCiAgew0KCQlpZiAoJG9iai0+YWN0aXZlKSANCiAgICB7DQoJCQkkb2JqLT5hcHByb3ZlID0gJHRoaXMtPkNyZWF0ZUxpbmsoJGlkLCAnYWRtaW5fYXBwcm92ZWl0ZW0nLCAkcmV0dXJuaWQsICRhZG1pbnRoZW1lLT5EaXNwbGF5SW1hZ2UoJ2ljb25zL3N5c3RlbS90cnVlLmdpZicsICR0aGlzLT5Nb2RMYW5nKCdyZXZlcnQnKSwgJycsICcnLCAnc3lzdGVtaWNvbicpLCBhcnJheSgNCgkJCQknYXBwcm92ZScgPT4gMCwNCgkJCQknaXRlbV9pZCcgPT4gJHJvd1snaXRlbV9pZCddDQoJCQkpKTsNCgkJfSANCiAgICBlbHNlIA0KICAgIHsNCgkJCSRvYmotPmFwcHJvdmUgPSAkdGhpcy0+Q3JlYXRlTGluaygkaWQsICdhZG1pbl9hcHByb3ZlaXRlbScsICRyZXR1cm5pZCwgJGFkbWludGhlbWUtPkRpc3BsYXlJbWFnZSgnaWNvbnMvc3lzdGVtL2ZhbHNlLmdpZicsICR0aGlzLT5Nb2RMYW5nKCdhcHByb3ZlJyksICcnLCAnJywgJ3N5c3RlbWljb24nKSwgYXJyYXkoDQoJCQkJJ2FwcHJvdmUnID0+IDEsDQoJCQkJJ2l0ZW1faWQnID0+ICRyb3dbJ2l0ZW1faWQnXQ0KCQkJKSk7DQoJCX0NCgl9DQogICAgDQoJJGxpbmtwYXJhbXMgPSBhcnJheSgpOw0KCSRsaW5rcGFyYW1zWydpdGVtX2lkJ10gPSAkcm93WydpdGVtX2lkJ107DQoJDQoJbGlzZV91dGlsczo6Y2xlYW5fcGFyYW1zKCRwYXJhbXMsIGFycmF5KCdwYWdlJyksIHRydWUpOw0KCSRsaW5rcGFyYW1zID0gYXJyYXlfbWVyZ2UoJGxpbmtwYXJhbXMsICRwYXJhbXMpOwkNCgkNCiAgLy8gZWRpdA0KICAkb2JqLT5lZGl0bGluayA9ICR0aGlzLT5DcmVhdGVMaW5rKCRpZCwgJ2FkbWluX2VkaXRpdGVtJywgJHJldHVybmlkLCAkYWRtaW50aGVtZS0+RGlzcGxheUltYWdlKCdpY29ucy9zeXN0ZW0vZWRpdC5naWYnLCAkdGhpcy0+TW9kTGFuZygnZWRpdCcpLCAnJywgJycsICdzeXN0ZW1pY29uJyksICRsaW5rcGFyYW1zKTsNCiAgJG9iai0+dGl0bGUgPSAkdGhpcy0+Q3JlYXRlTGluaygkaWQsICdhZG1pbl9lZGl0aXRlbScsICRyZXR1cm5pZCwgJG9iai0+dGl0bGUsICRsaW5rcGFyYW1zKTsJDQoJDQoJJGxpbmtwYXJhbXNbJ21vZGUnXSA9ICdjb3B5JzsNCgkNCiAgLy8gY29weQ0KICAkb2JqLT5jb3B5bGluayA9ICR0aGlzLT5DcmVhdGVMaW5rKCRpZCwgJ2FkbWluX2VkaXRpdGVtJywgJHJldHVybmlkLCAkYWRtaW50aGVtZS0+RGlzcGxheUltYWdlKCdpY29ucy9zeXN0ZW0vY29weS5naWYnLCAkdGhpcy0+TW9kTGFuZygnY29weScpLCAnJywgJycsICdzeXN0ZW1pY29uJyksICRsaW5rcGFyYW1zKTsJDQoJDQoJLy8gZGVsZXRlDQoJaWYoJHRoaXMtPkNoZWNrUGVybWlzc2lvbigkdGhpcy0+X0dldE1vZHVsZUFsaWFzKCkgLiAnX3JlbW92ZV9pdGVtJykpIA0KICB7DQoJCSRvYmotPmRlbGV0ZSA9ICR0aGlzLT5DcmVhdGVMaW5rKCRpZCwgJ2FkbWluX2RlbGV0ZWl0ZW0nLCAkcmV0dXJuaWQsICRhZG1pbnRoZW1lLT5EaXNwbGF5SW1hZ2UoJ2ljb25zL3N5c3RlbS9kZWxldGUuZ2lmJywgJHRoaXMtPk1vZExhbmcoJ2RlbGV0ZScpLCAnJywgJycsICdzeXN0ZW1pY29uJyksIGFycmF5KA0KCQkJJ2l0ZW1faWQnID0+ICRyb3dbJ2l0ZW1faWQnXQ0KCQkpKTsNCgl9DQoJDQoJLy8gc2VsZWN0IGJveA0KICAgICRvYmotPnNlbGVjdCA9ICR0aGlzLT5DcmVhdGVJbnB1dENoZWNrYm94KCRpZCwgJ2l0ZW1zW10nLCAkcm93WydpdGVtX2lkJ10pOw0KCQ0KCSRpdGVtc1tdID0gJG9iajsNCn0NCg0KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIyBTbWFydHkgcHJvY2Vzc2luZw0KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KDQokcGFnZW51bWJlciA9ICRpdGVtX3F1ZXJ5LT5HZXRQYWdlTnVtYmVyKCk7DQokcGFnZWNvdW50ID0gJGl0ZW1fcXVlcnktPkdldFBhZ2VDb3VudCgpOw0KJHNtYXJ0eS0+YXNzaWduKCd0b3RhbGNvdW50JywgJHRvdGFsY291bnQpOw0KDQojIyBuZXcgZm9yIHF1aWNrIHNlYXJjaCBmb3JtDQokc21hcnR5LT5hc3NpZ24oJ3ByZXZpb3VzX3BhZ2VfbnVtYmVyJywgJHBhZ2VudW1iZXIgLSAxKTsNCiRzbWFydHktPmFzc2lnbignbmV4dF9wYWdlX251bWJlcicsICRwYWdlbnVtYmVyICsgMSk7DQokc21hcnR5LT5hc3NpZ24oJ2ZpcnN0X3BhZ2VfbnVtYmVyJywxKTsNCiRzbWFydHktPmFzc2lnbignbGFzdF9wYWdlX251bWJlcicsICRwYWdlY291bnQpOw0KJHNtYXJ0eS0+YXNzaWduKCdpZCcsICRpZCk7DQokc21hcnR5LT5hc3NpZ24oJ3JldHVybmlkJywgJHJldHVybmlkKTsNCg0KLy8gc29tZSBwYWdpbmF0aW9uIHZhcmlhYmxlcyB0byBzbWFydHkuDQppZiggJHBhZ2VudW1iZXIgPT0gMSApDQogIHsNCiAgICAkc21hcnR5LT5hc3NpZ24oJ3ByZXZwYWdlJywnPCcpOw0KICAgICRzbWFydHktPmFzc2lnbignZmlyc3RwYWdlJywnPDwnKTsNCiAgfQ0KZWxzZQ0KICB7DQogICAgJHNtYXJ0eS0+YXNzaWduKCdwcmV2cGFnZScsDQoJCSAgICAkdGhpcy0+Q3JlYXRlTGluaygkaWQsJ2RlZmF1bHRhZG1pbicsDQoJCQkJICAgICAgJHJldHVybmlkLCc8JywNCgkJCQkgICAgICBhcnJheSgncGFnZW51bWJlcic9PiRwYWdlbnVtYmVyLTEsDQoJCQkJCSAgICAnYWN0aXZlX3RhYic9PidpdGVtdGFiJykpKTsNCiAgICAkc21hcnR5LT5hc3NpZ24oJ2ZpcnN0cGFnZScsDQoJCSAgICAkdGhpcy0+Q3JlYXRlTGluaygkaWQsJ2RlZmF1bHRhZG1pbicsDQoJCQkJICAgICAgJHJldHVybmlkLCc8PCcsDQoJCQkJICAgICAgYXJyYXkoJ3BhZ2VudW1iZXInPT4xLA0KCQkJCQkgICAgJ2FjdGl2ZV90YWInPT4naXRlbXRhYicpKSk7DQogIH0NCmlmKCAkcGFnZW51bWJlciA+PSAkcGFnZWNvdW50ICkNCiAgew0KICAgICRzbWFydHktPmFzc2lnbignbmV4dHBhZ2UnLCc+Jyk7DQogICAgJHNtYXJ0eS0+YXNzaWduKCdsYXN0cGFnZScsJz4+Jyk7DQogIH0NCmVsc2UNCiAgew0KICAgICRzbWFydHktPmFzc2lnbignbmV4dHBhZ2UnLA0KCQkgICAgJHRoaXMtPkNyZWF0ZUxpbmsoJGlkLCdkZWZhdWx0YWRtaW4nLA0KCQkJCSAgICAgICRyZXR1cm5pZCwnPicsDQoJCQkJICAgICAgYXJyYXkoJ3BhZ2VudW1iZXInPT4kcGFnZW51bWJlcisxLA0KCQkJCQkgICAgJ2FjdGl2ZV90YWInPT4naXRlbXRhYicpKSk7DQogICAgJHNtYXJ0eS0+YXNzaWduKCdsYXN0cGFnZScsDQoJCSAgICAkdGhpcy0+Q3JlYXRlTGluaygkaWQsJ2RlZmF1bHRhZG1pbicsDQoJCQkJICAgICAgJHJldHVybmlkLCc+PicsDQoJCQkJICAgICAgYXJyYXkoJ3BhZ2VudW1iZXInPT4kcGFnZWNvdW50LA0KCQkJCQkgICAgJ2FjdGl2ZV90YWInPT4naXRlbXRhYicpKSk7DQogIH0NCg0KJGFqYXhfdXJsID0gJHRoaXMtPmNyZWF0ZV91cmwoJGlkLCAnYWpheCcsICRyZXR1cm5pZCk7DQokc21hcnR5LT5hc3NpZ24oJ2FqYXhfdXJsJywgJGFqYXhfdXJsKTsNCg0KJHNtYXJ0eS0+YXNzaWduKCdwYWdlbnVtYmVyJywkcGFnZW51bWJlcik7DQokc21hcnR5LT5hc3NpZ24oJ3BhZ2Vjb3VudCcsJHBhZ2Vjb3VudCk7DQokc21hcnR5LT5hc3NpZ24oJ29mdGV4dCcsJHRoaXMtPk1vZExhbmcoJ3Byb21wdF9vZicpKTsNCg0KJHNtYXJ0eS0+YXNzaWduKCdpdGVtcycsICRpdGVtcyk7DQokc21hcnR5LT5hc3NpZ24oJ3RpdGxlJywgJHRoaXMtPkdldFByZWZlcmVuY2UoJ2l0ZW1fc2luZ3VsYXInLCAnJykpOw0KJHNtYXJ0eS0+YXNzaWduKCd0aXRsZV9wbHVyYWwnLCAkdGhpcy0+R2V0UHJlZmVyZW5jZSgnaXRlbV9wbHVyYWwnLCAnJykpOw0KDQokc21hcnR5LT5hc3NpZ24oJ3N1Ym1pdG9yZGVyJywgJHRoaXMtPkNyZWF0ZUlucHV0U3VibWl0KCRpZCwgJ3N1Ym1pdF9pdGVtb3JkZXInLCAkdGhpcy0+TW9kTGFuZygnc3VibWl0X29yZGVyJykpKTsNCiRzbWFydHktPmFzc2lnbignYWRkbGluaycsICR0aGlzLT5DcmVhdGVMaW5rKCRpZCwgJ2FkbWluX2VkaXRpdGVtJywgJHJldHVybmlkLCAkYWRtaW50aGVtZS0+RGlzcGxheUltYWdlKCdpY29ucy9zeXN0ZW0vbmV3b2JqZWN0LmdpZicsICR0aGlzLT5Nb2RMYW5nKCdhZGQnLCAkc2luZ3VsYXIpLCAnJywgJycsICdzeXN0ZW1pY29uJykgLiANCgkkdGhpcy0+TW9kTGFuZygnYWRkJywgJHNpbmd1bGFyKSkpOw0KDQppZigkdGhpcy0+Q2hlY2tQZXJtaXNzaW9uKCR0aGlzLT5fR2V0TW9kdWxlQWxpYXMoKSAuICdfbW9kaWZ5X2FsbF9pdGVtJykpIA0Kew0KCSRzbWFydHktPmFzc2lnbignZXhwb3J0bGluaycsICR0aGlzLT5DcmVhdGVMaW5rKCRpZCwgJ2FkbWluX2V4cG9ydGl0ZW1zJywgJHJldHVybmlkLCAkYWRtaW50aGVtZS0+RGlzcGxheUltYWdlKCdpY29ucy9zeXN0ZW0vZXhwb3J0LmdpZicsICR0aGlzLT5Nb2RMYW5nKCdleHBvcnQnLCAkc2luZ3VsYXIpLCAnJywgJycsICdzeXN0ZW1pY29uJykgLiANCgkJJHRoaXMtPk1vZExhbmcoJ2V4cG9ydCcsICRwbHVyYWwpKSk7DQoJJHNtYXJ0eS0+YXNzaWduKCdpbXBvcnRsaW5rJywgJHRoaXMtPkNyZWF0ZUxpbmsoJGlkLCAnYWRtaW5faW1wb3J0aXRlbXMnLCAkcmV0dXJuaWQsICRhZG1pbnRoZW1lLT5EaXNwbGF5SW1hZ2UoJ2ljb25zL3N5c3RlbS9pbXBvcnQuZ2lmJywgJHRoaXMtPk1vZExhbmcoJ2ltcG9ydCcsICRzaW5ndWxhciksICcnLCAnJywgJ3N5c3RlbWljb24nKSAuIA0KCQkkdGhpcy0+TW9kTGFuZygnaW1wb3J0JywgJHBsdXJhbCkpKTsJDQp9CQ0KCQ0KZWNobyAkdGhpcy0+TW9kUHJvY2Vzc1RlbXBsYXRlKCdpdGVtdGFiLnRwbCcpOw0KPz4NCg==]]></data>
	</file>
	<file>
	  <filename>/framework/function.admin_local_tab.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHANCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQojIExJU0UgLSBMaXN0IEl0IFNwZWNpYWwgRWRpdGlvbg0KIyBWZXJzaW9uIDEuMg0KIyBBIGZvcmsgb2YgTGlzdEkyDQojIG1haW50YWluZWQgYnkgRmVybmFuZG8gTW9yZ2FkbyBBS0EgSm8gTW9yZw0KIyBzaW5jZSAyMDE1DQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIw0KIyBPcmlnaW5hbCBBdXRob3I6IEJlbiBNYWxlbiwgPGJlbkBjb25jZXB0ZmFjdG9yeS5jb20uYXU+DQojIENvLU1haW50YWluZXI6IFNpbW9uIFJhZGZvcmQsIDxzaW1vbkBjb25jZXB0ZmFjdG9yeS5jb20uYXU+DQojIFdlYjogd3d3LmNvbmNlcHRmYWN0b3J5LmNvbS5hdQ0KIw0KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCiMNCiMgTWFpbnRhaW5lciBzaW5jZSAyMDExIHVwIHRvIDIwMTQ6IEpvbmF0aGFuIFNjaG1pZCwgPGhpQGpvbmF0aGFuc2NobWlkLmRlPg0KIyBXZWI6IHd3dy5qb25hdGhhbnNjaG1pZC5kZQ0KIw0KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCiMNCiMgU29tZSB3YWNrb3Mgc3RhcnRlZCBkZXN0cm95aW5nIHN0dWZmIHNpbmNlIDIwMTIgYW5kIHN0b3BwZWQgYXQgMjAxNDoNCiMNCiMgVGFwaW8gTMO2eXR0eSwgPHRhcHNhQG9yYW5nZS1tZWRpYS5maT4NCiMgV2ViOiB3d3cub3JhbmdlLW1lZGlhLmZpDQojDQojIEdvcmFuIElsaWMsIDx1bmlxdTNlQGdtYWlsLmNvbT4NCiMgV2ViOiB3d3cuaWNoLW1hY2gtZGFzLmF0DQojDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIw0KIyBMSVNFIGlzIGEgQ01TIE1hZGUgU2ltcGxlIG1vZHVsZSB0aGF0IGVuYWJsZXMgdGhlIHdlYiBkZXZlbG9wZXIgdG8gY3JlYXRlDQojIG11bHRpcGxlIGxpc3RzIHRocm91Z2hvdXQgYSBzaXRlLiBJdCBjYW4gYmUgZHVwbGljYXRlZCBhbmQgZ2l2ZW4gZnJpZW5kbHkNCiMgbmFtZXMgZm9yIGVhc2llciBjbGllbnQgbWFpbnRlbmFuY2UuDQojDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIyBCRUdJTl9MSUNFTlNFDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIyBUaGlzIGZpbGUgaXMgcGFydCBvZiBMSVNFDQojIExJU0UgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5DQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5DQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yDQojIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uDQojDQojIExJU0UgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLA0KIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZg0KIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlDQojIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuDQojIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlDQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlDQojIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcgVVNBDQojIE9yIHJlYWQgaXQgb25saW5lOiBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwNCiMNCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQojIEVORF9MSUNFTlNFDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KaWYoICFkZWZpbmVkKCdDTVNfVkVSU0lPTicpICkgZXhpdDsNCg0KaWYgKCEkdGhpcy0+Q2hlY2tQZXJtaXNzaW9uKCR0aGlzLT5fR2V0TW9kdWxlQWxpYXMoKSAuICdfbW9kaWZ5X2l0ZW0nKSkgcmV0dXJuOw0KDQoNCg0KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIyBDaGVjayBwYXJhbXMNCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0NCg0KLy9pZiAoaXNzZXQoJHBhcmFtc1snY2FuY2VsJ10pKQ0KLy97DQovLwlsaXNlX3V0aWxzOjpjbGVhbl9wYXJhbXMoJHBhcmFtcywgYXJyYXkoJ3BhZ2UnKSwgdHJ1ZSk7DQovLwkkcGFyYW1zWydhY3RpdmVfdGFiJ10gPSAnaXRlbXRhYic7DQovLwkkdGhpcy0+UmVkaXJlY3QoJGlkLCAnZGVmYXVsdGFkbWluJywgJHJldHVybmlkLCAkcGFyYW1zKTsNCi8vfQ0KDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQojIEluaXQgcGFyYW1zDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQoNCiRtb2RlCSAgICAgIAkJCQkgICAgPSAnZWRpdCc7DQokaXRlbV9pZCAgICAgICAgICAgICAgICA9IC0xOw0KJHVybCAgICAgIAkJCQkgICAgICA9ICcnOw0KJHRpdGxlICAgICAgIAkJCSAJICAgID0gJHRoaXMtPkdldE5hbWUoKTsNCiRhbGlhcwkJIAkJCSAJICAgICAgPSAkdGhpcy0+R2V0TmFtZSgpOw0KJHRpbWVfY29udHJvbCAJCQkJICA9IDA7DQokYWN0aXZlICAgICAgCQkJIAkgICAgPSAxOw0KDQokdXJsX2Vycm9yID0gRkFMU0U7DQokc3RhcnRfdGltZSA9ICcnOw0KJGVuZF90aW1lID0gJyc7DQoNCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0NCiMgSW5pdCBJdGVtDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQoNCmlmKCAhZW1wdHkoJGxvY2FsX21vZGVfaW5zdGFuY2UpICkNCnsNCiAgJGxtaV9tb2QgPSBcY21zX3V0aWxzOjpnZXRfbW9kdWxlKCRsb2NhbF9tb2RlX2luc3RhbmNlKTsNCiAgJHNob3dfbG9jYWwgPSBpc19vYmplY3QoJGxtaV9tb2QpOw0KICAkb2JqID0gJGxtaV9tb2QtPkxvYWRJdGVtQnlJZGVudGlmaWVyKCAnYWxpYXMnLCAkdGhpcy0+R2V0TmFtZSgpICk7DQp9DQplbHNlDQp7DQogIHJldHVybjsNCn0NCg0KDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQojIEhhbmRsZSBjdXN0b20gZmllbGRzDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQoNCmlmIChpc3NldCgkcGFyYW1zWydjdXN0b21maWVsZCddKSkNCnsNCiAgaWYoICFpc19hcnJheSgkcGFyYW1zWydjdXN0b21maWVsZCddKSApICRwYXJhbXNbJ2N1c3RvbWZpZWxkJ10gPSBhcnJheSgkcGFyYW1zWydjdXN0b21maWVsZCddKTsNCiAgDQogIGZvcmVhY2ggKChhcnJheSkkcGFyYW1zWydjdXN0b21maWVsZCddIGFzICRmbGRpZCA9PiAkdmFsdWUpDQogIHsNCiAgICBpZihpc3NldCgkb2JqLT5maWVsZGRlZnNbJGZsZGlkXSkpICRvYmotPmZpZWxkZGVmc1skZmxkaWRdLT5TZXRWYWx1ZSgkdmFsdWUpOw0KICB9DQogIA0KICB1bnNldCgkcGFyYW1zWydjdXN0b21maWVsZCddKTsNCn0NCg0KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIyBTdWJtaXQNCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0NCg0KaWYoIGlzc2V0KCRwYXJhbXNbJ2FwcGx5J10pICkNCnsNCiAgDQogICRlcnJvcnMgPSBhcnJheSgpOw0KICANCiAgLy8gUHJlUHJvY2VzcyAmIFZhbGlkYXRpb25zDQogIGZvcmVhY2goJG9iai0+ZmllbGRkZWZzIGFzICRmaWVsZCkNCiAgew0KICAgICRmaWVsZC0+RXZlbnRIYW5kbGVyKCktPkl0ZW1TYXZlUHJlUHJvY2VzcygkZXJyb3JzLCAkcGFyYW1zKTsNCiAgfQ0KICANCiAgLy8gdGl0bGUgYW5kIHJlcXVpcmVkIGZpZWxkcyBoYXZlIHZhbHVlcywgbGV0J3MgY29udGludWUNCiAgaWYgKGVtcHR5KCRlcnJvcnMpKQ0KICB7DQogICAgJG9iai0+dGl0bGUgICAgICAgIAkgID0gJHRpdGxlOw0KICAgICRvYmotPmFsaWFzCQkgCSAgICAgID0gJGFsaWFzOw0KICAgICRvYmotPmFjdGl2ZSAgICAgICAJICA9IGlzc2V0KCRwYXJhbXNbJ2FjdGl2ZSddKSA/IDEgOiAwOw0KICAgICRvYmotPnN0YXJ0X3RpbWUgICAJICA9ICRzdGFydF90aW1lOw0KICAgICRvYmotPmVuZF90aW1lICAgICAgICA9ICRlbmRfdGltZTsNCiAgICAkb2JqLT51cmwgICAgIAkgICAgICA9ICR1cmw7DQogICAgLy8kb2JqLT5jYXRlZ29yaWVzCT0gJGNhdGVnb3JpZXM7DQogICAgLy8kb2JqLT5jYXRlZ29yeV9pZCA9ICRjYXRlZ29yeV9pZDsNCiAgICANCiAgICAvLyBTYXZlIGl0ZW0gdG8gZGF0YWJhc2UNCiAgICAkbG1pX21vZC0+U2F2ZUl0ZW0oJG9iaik7DQogICAgDQogICAgLy8gUG9zdFByb2Nlc3MNCiAgICBmb3JlYWNoKCRvYmotPmZpZWxkZGVmcyBhcyAkZmllbGQpDQogICAgew0KICAgICAgJGZpZWxkLT5FdmVudEhhbmRsZXIoKS0+SXRlbVNhdmVQb3N0UHJvY2VzcygkZXJyb3JzLCAkcGFyYW1zKTsNCiAgICB9DQogICAgDQogICAgLy8gaWYgYXBwbHkgYW5kIGFqYXgNCiAgICBpZiAoaXNzZXQoJHBhcmFtc1snYXBwbHknXSkgJiYgaXNzZXQoJHBhcmFtc1snYWpheCddKSkNCiAgICB7DQogICAgICAkcmVzcG9uc2UgPSAnPEVkaXRJdGVtPic7DQogICAgICAkcmVzcG9uc2UgLj0gJzxSZXNwb25zZT5TdWNjZXNzPC9SZXNwb25zZT4nOw0KICAgICAgJHJlc3BvbnNlIC49ICc8RGV0YWlscz48IVtDREFUQVsnIC4gJHRoaXMtPk1vZExhbmcoJ2NoYW5nZXNzYXZlZCcpIC4gJ11dPjwvRGV0YWlscz4nOw0KICAgICAgJHJlc3BvbnNlIC49ICc8SXRlbUlEPicgLiAkb2JqLT5pdGVtX2lkIC4gJzwvSXRlbUlEPic7DQogICAgICAkcmVzcG9uc2UgLj0gJzxJdGVtQWxpYXM+JyAuICRvYmotPmFsaWFzIC4gJzwvSXRlbUFsaWFzPic7DQogICAgICAkcmVzcG9uc2UgLj0gJzwvRWRpdEl0ZW0+JzsNCiAgICAgIGVjaG8gJHJlc3BvbnNlOw0KICAgICAgcmV0dXJuOw0KICAgIH0NCiAgICANCiAgICAvLyBpZiBzYXZlIGFuZCBjcmVhdGUgbmV3DQogICAgaWYgKGlzc2V0KCRwYXJhbXNbJ3NhdmVfY3JlYXRlJ10pICkNCiAgICB7DQogICAgICAkdGhpcy0+UmVkaXJlY3QoJGlkLCAnZGVmYXVsdGFkbWluJywgJHJldHVybmlkLCBhcnJheSgNCiAgICAgICAgJ21lc3NhZ2UnID0+ICdzYXZlY3JlYXRlX21lc3NhZ2UnDQogICAgICApKTsNCiAgICB9DQogICAgDQogICAgLy8gc2hvdyBzYXZlZCBtZXNzYWdlDQogICAgaWYgKGlzc2V0KCRwYXJhbXNbJ3N1Ym1pdCddKSkNCiAgICB7DQogICAgICBsaXNlX3V0aWxzOjpjbGVhbl9wYXJhbXMoJHBhcmFtcywgYXJyYXkoJ3BhZ2UnKSwgdHJ1ZSk7DQogICAgICAkcGFyYW1zWydhY3RpdmVfdGFiJ10gPSAnbG9jYWx0YWInOw0KICAgICAgJHBhcmFtc1snbWVzc2FnZSddID0gJ2NoYW5nZXNzYXZlZCc7DQogICAgICAkdGhpcy0+UmVkaXJlY3QoJGlkLCAnZGVmYXVsdGFkbWluJywgJHJldHVybmlkLCAkcGFyYW1zKTsNCiAgICAgIA0KICAgIH0NCiAgICBlbHNlDQogICAgew0KICAgICAgZWNobyAkdGhpcy0+U2hvd01lc3NhZ2UoJHRoaXMtPk1vZExhbmcoJ2NoYW5nZXNzYXZlZCcpKTsNCiAgICB9DQogICAgDQogIH0gLy8gZW5kIGVycm9yIGNoZWNrDQogIA0KfSAvLyBlbmQgc3VibWl0IG9yIGFwcGx5DQoNCg0KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIyBNZXNzYWdlIGNvbnRyb2wNCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0NCg0KLy8gZGlzcGxheSBlcnJvcnMgaWYgdGhlcmUgYXJlIGFueQ0KaWYgKCFlbXB0eSgkZXJyb3JzKSkNCnsNCiAgJGZvcm1hdGVkX2Vycm9ycyA9ICcnOw0KICANCiAgZm9yZWFjaCAoJGVycm9ycyBhcyAkZXJyb3IpDQogIHsNCiAgICAkZm9ybWF0ZWRfZXJyb3JzIC49ICc8bGk+JyAuICRlcnJvciAuICc8L2xpPic7DQogIH0NCiAgDQogIGlmIChpc3NldCgkcGFyYW1zWydhcHBseSddKSAmJiBpc3NldCgkcGFyYW1zWydhamF4J10pKQ0KICB7DQogICAgJHJlc3BvbnNlID0gJzxFZGl0SXRlbT4nOw0KICAgICRyZXNwb25zZSAuPSAnPFJlc3BvbnNlPkVycm9yPC9SZXNwb25zZT4nOw0KICAgICRyZXNwb25zZSAuPSAnPERldGFpbHM+PCFbQ0RBVEFbJzsNCiAgICAkcmVzcG9uc2UgLj0gJGZvcm1hdGVkX2Vycm9yczsNCiAgICAkcmVzcG9uc2UgLj0gJ11dPjwvRGV0YWlscz4nOw0KICAgICRyZXNwb25zZSAuPSAnPC9FZGl0SXRlbT4nOw0KICAgIGVjaG8gJHJlc3BvbnNlOw0KICAgIHJldHVybjsNCiAgfQ0KICBlbHNlDQogIHsNCiAgICBlY2hvICR0aGlzLT5TaG93RXJyb3JzKCc8dWw+JyAuICRmb3JtYXRlZF9lcnJvcnMgLiAnPC91bD4nKTsNCiAgfQ0KfQ0KDQppZihpc3NldCgkcGFyYW1zWydtZXNzYWdlJ10pICYmIGVtcHR5KCRlcnJvcnMpKQ0KICBlY2hvICR0aGlzLT5TaG93TWVzc2FnZSgkdGhpcy0+TW9kTGFuZygnY2hhbmdlc3NhdmVkX2NyZWF0ZScpKTsNCg0KDQoNCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0NCiMgU21hcnR5IHByb2Nlc3NpbmcNCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0NCg0KJHNtYXJ0eS0+YXNzaWduKCdpdGVtT2JqZWN0JywgJG9iaik7DQoNCiRhamF4X3VybDEgPSAkdGhpcy0+Y3JlYXRlX3VybCgkaWQsICdhamF4X2dldHVybCcsICRyZXR1cm5pZCk7DQokYWpheF91cmwyID0gJHRoaXMtPmNyZWF0ZV91cmwoJGlkLCAnYWpheF9nZXRfYWxpYXMnLCAkcmV0dXJuaWQpOw0KJHNtYXJ0eS0+YXNzaWduKCdhamF4X2dldF91cmwnLCAkYWpheF91cmwxKTsNCiRzbWFydHktPmFzc2lnbignYWpheF9nZXRfYWxpYXMnLCAkYWpheF91cmwyKTsNCg0KJGhlYWRlciA9ICcnOw0KJHNtYXJ0eS0+YXNzaWduKCdoZWFkZXInLCAkaGVhZGVyKTsNCiRzbWFydHktPmFzc2lnbignc3RhcnRmb3JtJywgJHRoaXMtPkNyZWF0ZUZvcm1TdGFydCgkaWQsICdhZG1pbl9sb2NhbCcsICRyZXR1cm5pZCwgJ3Bvc3QnLCAnbXVsdGlwYXJ0L2Zvcm0tZGF0YScsIGZhbHNlLCAnJywgJHBhcmFtcykpOw0KJHNtYXJ0eS0+YXNzaWduKCdlbmRmb3JtJywgJHRoaXMtPkNyZWF0ZUZvcm1FbmQoKSk7DQoNCiRzbWFydHktPmFzc2lnbignaW5wdXRfdGl0bGUnLCAkdGhpcy0+Q3JlYXRlSW5wdXRUZXh0KCRpZCwgJ3RpdGxlJywgJHRpdGxlLCA1MCkpOw0KDQppZigkdGhpcy0+Q2hlY2tQZXJtaXNzaW9uKCR0aGlzLT5fR2V0TW9kdWxlQWxpYXMoKSAuICdfYXBwcm92ZV9pdGVtJykpDQogICRzbWFydHktPmFzc2lnbignaW5wdXRfYWN0aXZlJywgJHRoaXMtPkNyZWF0ZUlucHV0Y2hlY2tib3goJGlkLCAnYWN0aXZlJywgMSwgJGFjdGl2ZSkpOw0KDQplY2hvICR0aGlzLT5Nb2RQcm9jZXNzVGVtcGxhdGUoJ2xvY2FsX2VkaXQudHBsJyk7DQo/Pg0K]]></data>
	</file>
	<file>
	  <filename>/framework/function.admin_optiontab.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHANCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQojIExJU0UgLSBMaXN0IEl0IFNwZWNpYWwgRWRpdGlvbg0KIyBWZXJzaW9uIDEuMg0KIyBBIGZvcmsgb2YgTGlzdEkyDQojIG1haW50YWluZWQgYnkgRmVybmFuZG8gTW9yZ2FkbyBBS0EgSm8gTW9yZw0KIyBzaW5jZSAyMDE1DQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIw0KIyBPcmlnaW5hbCBBdXRob3I6IEJlbiBNYWxlbiwgPGJlbkBjb25jZXB0ZmFjdG9yeS5jb20uYXU+DQojIENvLU1haW50YWluZXI6IFNpbW9uIFJhZGZvcmQsIDxzaW1vbkBjb25jZXB0ZmFjdG9yeS5jb20uYXU+DQojIFdlYjogd3d3LmNvbmNlcHRmYWN0b3J5LmNvbS5hdQ0KIw0KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCiMNCiMgTWFpbnRhaW5lciBzaW5jZSAyMDExIHVwIHRvIDIwMTQ6IEpvbmF0aGFuIFNjaG1pZCwgPGhpQGpvbmF0aGFuc2NobWlkLmRlPg0KIyBXZWI6IHd3dy5qb25hdGhhbnNjaG1pZC5kZQ0KIw0KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCiMNCiMgU29tZSB3YWNrb3Mgc3RhcnRlZCBkZXN0cm95aW5nIHN0dWZmIHNpbmNlIDIwMTIgYW5kIHN0b3BwZWQgYXQgMjAxNDoNCiMNCiMgVGFwaW8gTMO2eXR0eSwgPHRhcHNhQG9yYW5nZS1tZWRpYS5maT4NCiMgV2ViOiB3d3cub3JhbmdlLW1lZGlhLmZpDQojDQojIEdvcmFuIElsaWMsIDx1bmlxdTNlQGdtYWlsLmNvbT4NCiMgV2ViOiB3d3cuaWNoLW1hY2gtZGFzLmF0DQojDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIw0KIyBMSVNFIGlzIGEgQ01TIE1hZGUgU2ltcGxlIG1vZHVsZSB0aGF0IGVuYWJsZXMgdGhlIHdlYiBkZXZlbG9wZXIgdG8gY3JlYXRlDQojIG11bHRpcGxlIGxpc3RzIHRocm91Z2hvdXQgYSBzaXRlLiBJdCBjYW4gYmUgZHVwbGljYXRlZCBhbmQgZ2l2ZW4gZnJpZW5kbHkNCiMgbmFtZXMgZm9yIGVhc2llciBjbGllbnQgbWFpbnRlbmFuY2UuDQojDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIyBCRUdJTl9MSUNFTlNFDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIyBUaGlzIGZpbGUgaXMgcGFydCBvZiBMSVNFDQojIExJU0UgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5DQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5DQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yDQojIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uDQojDQojIExJU0UgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLA0KIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZg0KIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlDQojIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuDQojIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlDQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlDQojIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcgVVNBDQojIE9yIHJlYWQgaXQgb25saW5lOiBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwNCiMNCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQojIEVORF9MSUNFTlNFDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KDQppZiggIWRlZmluZWQoJ0NNU19WRVJTSU9OJykgKSBleGl0Ow0KDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQojIEluaXQNCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0NCg0KaWYoISR0aGlzLT5DaGVja1Blcm1pc3Npb24oJHRoaXMtPl9HZXRNb2R1bGVBbGlhcygpIC4gJ19tb2RpZnlfb3B0aW9uJykpcmV0dXJuOw0KDQokc3lzdGVtZGVmcyA9ICR0aGlzLT5HZXRGaWVsZERlZnMoKTsNCiRmaWVsZGRlZnMgID0gYXJyYXkoDQogICAgICAgICAgICAgICAgICAgICAgJHRoaXMtPk1vZExhbmcoJ2FsaWFzJykgICAgICAgICA9PiAnYWxpYXMnLA0KICAgICAgICAgICAgICAgICAgICAgICR0aGlzLT5Nb2RMYW5nKCdjcmVhdGVfdGltZScpICAgPT4gJ2NyZWF0ZV90aW1lJywNCiAgICAgICAgICAgICAgICAgICAgICAkdGhpcy0+TW9kTGFuZygnbW9kaWZpZWRfdGltZScpID0+ICdtb2RpZmllZF90aW1lJywNCiAgICAgICAgICAgICAgICAgICAgICAkdGhpcy0+TW9kTGFuZygnc3RhcnRfdGltZScpICAgID0+ICdzdGFydF90aW1lJywNCiAgICAgICAgICAgICAgICAgICAgICAkdGhpcy0+TW9kTGFuZygnZW5kX3RpbWUnKSAgICAgID0+ICdlbmRfdGltZScNCiAgICAgICAgICAgICAgICAgICAgKTsNCiAgICAgICAgICAgICAgICAgIA0KZm9yZWFjaCgkc3lzdGVtZGVmcyBhcyAkb25lZGVmKQ0Kew0KCSRmaWVsZGRlZnNbJG9uZWRlZi0+R2V0TmFtZSgpXSA9ICRvbmVkZWYtPkdldEFsaWFzKCk7DQp9DQoNCi8vIHBhZ2luYXRpb24gb3B0aW9ucw0KJGl0ZW1zX3Blcl9wYWdlID0gYXJyYXkoDQogICAgICAgICAgICAgICAgICAgICAgICAgIDEwICAgPT4gMTAsDQogICAgICAgICAgICAgICAgICAgICAgICAgIDIwICAgPT4gMjAsDQogICAgICAgICAgICAgICAgICAgICAgICAgIDUwICAgPT4gNTAsDQogICAgICAgICAgICAgICAgICAgICAgICAgIDEwMCAgPT4gMTAwLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAyMDAgID0+IDIwMCwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgMzAwICA9PiAzMDAsDQogICAgICAgICAgICAgICAgICAgICAgICAgIDQwMCAgPT4gNDAwLA0KICAgICAgICAgICAgICAgICAgICAgICAgICA1MDAgID0+IDUwMCwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgMTAwMCA9PiAxMDAwDQogICAgICAgICAgICAgICAgICAgICAgICApOw0KDQovLyBtb2R1bGUgYWRtaW4gc2VjdGlvbiBvcHRpb25zDQokYWRtaW5fc2VjdGlvbnMgPSBhcnJheSgNCiAgICAgICAgICAgICAgICAgICAgICAgICAgbGFuZygnbWFpbicpICAgICAgICA9PiAnbWFpbicsDQogICAgICAgICAgICAgICAgICAgICAgICAgIGxhbmcoJ2NvbnRlbnQnKSAgICAgPT4gJ2NvbnRlbnQnLA0KICAgICAgICAgICAgICAgICAgICAgICAgICBsYW5nKCdsYXlvdXQnKSAgICAgID0+ICdsYXlvdXQnLA0KICAgICAgICAgICAgICAgICAgICAgICAgICBsYW5nKCd1c2Vyc2dyb3VwcycpID0+ICd1c2Vyc2dyb3VwcycsDQogICAgICAgICAgICAgICAgICAgICAgICAgIGxhbmcoJ2V4dGVuc2lvbnMnKSAgPT4gJ2V4dGVuc2lvbnMnLA0KICAgICAgICAgICAgICAgICAgICAgICAgICBsYW5nKCdzaXRlYWRtaW4nKSAgID0+ICdzaXRlYWRtaW4nLA0KICAgICAgICAgICAgICAgICAgICAgICAgICBsYW5nKCdteXByZWZzJykgICAgID0+ICdteXByZWZzJywNCiAgICAgICAgICAgICAgICAgICAgICAgICAgbGFuZygnZWNvbW1lcmNlJykgICA9PiAnZWNvbW1lcmNlJw0KICAgICAgICAgICAgICAgICAgICAgICAgKTsNCg0KLy8gc29ydG9yZGVyIG9wdGlvbnMNCiRzb3J0b3JkZXIgICAgICA9IGFycmF5KA0KICAgICAgICAgICAgICAgICAgICAgICAgICAkdGhpcy0+TW9kTGFuZygnYXNjZW5kaW5nJykgID0+ICdBU0MnLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAkdGhpcy0+TW9kTGFuZygnZGVzY2VuZGluZycpID0+ICdERVNDJw0KICAgICAgICAgICAgICAgICAgICAgICAgKTsNCg0KIyB0aXRsZSBkaXNwbGF5IG1vZGVzDQoNCiR0ZG1zID0NCiAgWw0KICAgICR0aGlzLT5Nb2RMYW5nKCd0ZG1faW5wdXQnKSAgICA9PiBMSVNFOjpURU1fSU5QVVQsDQogICAgJHRoaXMtPk1vZExhbmcoJ3RkbV9yZWFkb25seScpID0+IExJU0U6OlRFTV9SRUFET05MWSwNCiAgICAkdGhpcy0+TW9kTGFuZygndGRtX2hpZGRlbicpICAgPT4gTElTRTo6VEVNX0hJRERFTg0KICBdOw0KDQokY29udGVudF9vcHMgICAgICAgICA9IGNtc21zKCktPkdldENvbnRlbnRPcGVyYXRpb25zKCk7DQoNCiRkaXNwbGF5X2lubGluZSAgICAgID0gJHRoaXMtPkdldFByZWZlcmVuY2UoJ2Rpc3BsYXlfaW5saW5lJywgMCk7DQokc3ViY2F0ZWdvcnkgICAgICAgICA9ICR0aGlzLT5HZXRQcmVmZXJlbmNlKCdzdWJjYXRlZ29yeScsIDApOw0KJGRpc3BsYXlfY3JlYXRlX2RhdGUgPSAkdGhpcy0+R2V0UHJlZmVyZW5jZSgnZGlzcGxheV9jcmVhdGVfZGF0ZScsIDApOw0KJHJlaW5kZXhfc2VhcmNoICAgICAgPSAkdGhpcy0+R2V0UHJlZmVyZW5jZSgncmVpbmRleF9zZWFyY2gnLCAwKTsNCiRhdXRvX3VwZ3JhZGUgICAgICAgID0gJHRoaXMtPkdldFByZWZlcmVuY2UoJ2F1dG9fdXBncmFkZScsIDApOw0KJGhpZGVfYWxpYXMgICAgICAgICAgPSAkdGhpcy0+R2V0UHJlZmVyZW5jZSgnaGlkZV9hbGlhcycsIDEpOw0KJGhpZGVfc2x1ZyAgICAgICAgICAgPSAkdGhpcy0+R2V0UHJlZmVyZW5jZSgnaGlkZV9zbHVnJywgMSk7DQokaGlkZV90aW1lX2NvbnRyb2wgICA9ICR0aGlzLT5HZXRQcmVmZXJlbmNlKCdoaWRlX3RpbWVfY29udHJvbCcsIDEpOw0KJHNlcGFyYXRlX3NldHRpbmdzICAgPSAkdGhpcy0+R2V0UHJlZmVyZW5jZSgnc2VwYXJhdGVfc2V0dGluZ3MnLCBGQUxTRSk7DQokdGl0bGVfZGlzcGxheV9tb2RlICA9ICR0aGlzLT5HZXRQcmVmZXJlbmNlKCd0aXRsZV9kaXNwbGF5X21vZGUnLCBMSVNFOjpURU1fSU5QVVQpOw0KJHRpdGxlX2F1dG9fZ2VuICAgICAgPSAkdGhpcy0+R2V0UHJlZmVyZW5jZSgndGl0bGVfYXV0b19nZW4nLCBGQUxTRSk7DQoNCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0NCiMgSW5zdGFuY2VzIE1vZGVzDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQokdG1wID0gXExJU0VcaW5zdGFuY2VzX29wZXJhdGlvbnM6Okxpc3RNb2R1bGVzKExJU0U6Ok1PREVfTE9DQUwpOw0KJGxvY2FsX21vZGVfaW5zdGFuY2VzID0gWyctMScgPT4gJHRoaXMtPk1vZExhbmcoJ3NlbGVjdF9vbmUnKV07DQoNCmZvcmVhY2goJHRtcCBhcyAkb25lKQ0Kew0KICAvLyBhIG1vZHVsZSBjYW4ndCBiZSBleHRyYSBzZXR0aW5ncyBvZiBpdHNlbGYNCiAgaWYoJG9uZS0+bW9kdWxlX25hbWUgPT0gJHRoaXMtPkdldE5hbWUoKSkgY29udGludWU7DQogICRsb2NhbF9tb2RlX2luc3RhbmNlc1skb25lLT5tb2R1bGVfbmFtZV0gPSAkb25lLT5tb2R1bGVfbmFtZTsNCn0NCg0KJGxvY2FsX21vZGVfc2VsZWN0ZWQgID0gJHRoaXMtPkdldFByZWZlcmVuY2UoJ2xvY2FsX21vZGVfaW5zdGFuY2UnKTsNCg0KJHNtYXJ0eS0+YXNzaWduKCdpbnB1dF9sb2NhbF9tb2RlX2luc3RhbmNlJywgJHRoaXMtPkNyZWF0ZUlucHV0RHJvcGRvd24oJGlkLCAnbG9jYWxfbW9kZV9pbnN0YW5jZScsIGFycmF5X2ZsaXAoJGxvY2FsX21vZGVfaW5zdGFuY2VzKSwgLTEsICRsb2NhbF9tb2RlX3NlbGVjdGVkKSk7DQokc21hcnR5LT5hc3NpZ24oJ2xvY2FsX21vZGVfaW5zdGFuY2VzJywgJGxvY2FsX21vZGVfaW5zdGFuY2VzKTsNCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0NCiMgU21hcnR5IHByb2Nlc3NpbmcNCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0NCg0KJHNtYXJ0eS0+YXNzaWduKCdzdGFydGZvcm0nLCAkdGhpcy0+Q3JlYXRlRm9ybVN0YXJ0KCRpZCwgJ2FkbWluX2VkaXRvcHRpb24nLCAkcmV0dXJuaWQpKTsNCiRzbWFydHktPmFzc2lnbignZW5kZm9ybScsICR0aGlzLT5DcmVhdGVGb3JtRW5kKCkpOw0KJHNtYXJ0eS0+YXNzaWduKCdzdWJtaXQnLCAkdGhpcy0+Q3JlYXRlSW5wdXRTdWJtaXQoJGlkLCAnc3VibWl0JywgbGFuZygnc3VibWl0JykpKTsNCg0KLy8gTW9kdWxlIE9wdGlvbnMNCiRzbWFydHktPmFzc2lnbignaW5wdXRfZnJpZW5kbHluYW1lJywgJHRoaXMtPkNyZWF0ZUlucHV0VGV4dCgkaWQsICdmcmllbmRseW5hbWUnLCAkdGhpcy0+R2V0UHJlZmVyZW5jZSgnZnJpZW5kbHluYW1lJywgJycpLCA1MCkpOw0KJHNtYXJ0eS0+YXNzaWduKCdpbnB1dF9tb2RkZXNjcmlwdGlvbicsICR0aGlzLT5DcmVhdGVUZXh0QXJlYShmYWxzZSwgJGlkLCAkdGhpcy0+R2V0UHJlZmVyZW5jZSgnbW9kZGVzY3JpcHRpb24nLCAkdGhpcy0+TW9kTGFuZygnbW9kZGVzY3JpcHRpb24nKSksICdtb2RkZXNjcmlwdGlvbicsICdwYWdlc21hbGx0ZXh0YXJlYScsICcnLCAnJywgJycsICc4MCcsICczJykpOw0KJHNtYXJ0eS0+YXNzaWduKCdpbnB1dF9hZG1pbnNlY3Rpb24nLCAkdGhpcy0+Q3JlYXRlSW5wdXREcm9wZG93bigkaWQsICdhZG1pbnNlY3Rpb24nLCAkYWRtaW5fc2VjdGlvbnMsIC0xLCAkdGhpcy0+R2V0UHJlZmVyZW5jZSgnYWRtaW5zZWN0aW9uJywgJ2NvbnRlbnQnKSkpOw0KJHNtYXJ0eS0+YXNzaWduKCdpbnB1dF9oaWRlX2FsaWFzJywgJHRoaXMtPkNyZWF0ZUlucHV0Q2hlY2tib3goJGlkLCAnaGlkZV9hbGlhcycsIDEsICRoaWRlX2FsaWFzLCAoJGhpZGVfYWxpYXMgPyAnY2hlY2tlZD0iY2hlY2tlZCInIDogJycpKSk7DQokc21hcnR5LT5hc3NpZ24oJ2lucHV0X2FsaWFzX3RlbXBsYXRlJywgJHRoaXMtPkNyZWF0ZUlucHV0VGV4dCgkaWQsICdhbGlhc190ZW1wbGF0ZScsICR0aGlzLT5HZXRQcmVmZXJlbmNlKCdhbGlhc190ZW1wbGF0ZScsICd7SXRlbVRpdGxlfGxvd2VyfV97SXRlbU5leHRJRHxzdHJpbmdfZm9ybWF0OiIlMDZ1In0nKSwgNTApKTsNCiRzbWFydHktPmFzc2lnbignaW5wdXRfaGlkZV9zbHVnJywgJHRoaXMtPkNyZWF0ZUlucHV0Q2hlY2tib3goJGlkLCAnaGlkZV9zbHVnJywgMSwgJGhpZGVfc2x1ZywgKCRoaWRlX3NsdWcgPyAnY2hlY2tlZD0iY2hlY2tlZCInIDogJycpKSk7DQokc21hcnR5LT5hc3NpZ24oJ2lucHV0X2hpZGVfdGltZV9jb250cm9sJywgJHRoaXMtPkNyZWF0ZUlucHV0Q2hlY2tib3goJGlkLCAnaGlkZV90aW1lX2NvbnRyb2wnLCAxLCAkaGlkZV90aW1lX2NvbnRyb2wsICgkaGlkZV90aW1lX2NvbnRyb2wgPyAnY2hlY2tlZD0iY2hlY2tlZCInIDogJycpKSk7DQokc21hcnR5LT5hc3NpZ24oJ2lucHV0X3NlcGFyYXRlX3NldHRpbmdzX2NvbnRyb2wnLCAkdGhpcy0+Q3JlYXRlSW5wdXRDaGVja2JveCgkaWQsICdzZXBhcmF0ZV9zZXR0aW5ncycsIDEsICRzZXBhcmF0ZV9zZXR0aW5ncywgKCRzZXBhcmF0ZV9zZXR0aW5ncyA/ICdjaGVja2VkPSJjaGVja2VkIicgOiAnJykpKTsNCg0KLy8gTW9kdWxlIGRlZmF1bHRzDQokc21hcnR5LT5hc3NpZ24oJ2lucHV0X2RldGFpbHBhZ2UnLCAkY29udGVudF9vcHMtPkNyZWF0ZUhpZXJhcmNoeURyb3Bkb3duKCcnLCAkdGhpcy0+R2V0UHJlZmVyZW5jZSgnZGV0YWlscGFnZScpLCAkaWQuJ2RldGFpbHBhZ2UnKSk7DQokc21hcnR5LT5hc3NpZ24oJ2lucHV0X3N1bW1hcnlwYWdlJywgJGNvbnRlbnRfb3BzLT5DcmVhdGVIaWVyYXJjaHlEcm9wZG93bignJywgJHRoaXMtPkdldFByZWZlcmVuY2UoJ3N1bW1hcnlwYWdlJyksICRpZC4nc3VtbWFyeXBhZ2UnKSk7DQoNCi8vIEl0ZW0gb3B0aW9ucw0KJHNtYXJ0eS0+YXNzaWduKCdpbnB1dF9pdGVtX3RpdGxlJywgJHRoaXMtPkNyZWF0ZUlucHV0VGV4dCgkaWQsICdpdGVtX3RpdGxlJywgJHRoaXMtPkdldFByZWZlcmVuY2UoJ2l0ZW1fdGl0bGUnLCAnJyksIDUwKSk7DQokc21hcnR5LT5hc3NpZ24oJ2lucHV0X2l0ZW1fc2luZ3VsYXInLCAkdGhpcy0+Q3JlYXRlSW5wdXRUZXh0KCRpZCwgJ2l0ZW1fc2luZ3VsYXInLCAkdGhpcy0+R2V0UHJlZmVyZW5jZSgnaXRlbV9zaW5ndWxhcicsICcnKSwgNTApKTsNCiRzbWFydHktPmFzc2lnbignaW5wdXRfaXRlbV9wbHVyYWwnLCAkdGhpcy0+Q3JlYXRlSW5wdXRUZXh0KCRpZCwgJ2l0ZW1fcGx1cmFsJywgJHRoaXMtPkdldFByZWZlcmVuY2UoJ2l0ZW1fcGx1cmFsJywgJycpLCA1MCkpOw0KJHNtYXJ0eS0+YXNzaWduKCdpbnB1dF90aXRsZV9kaXNwbGF5X21vZGUnLCAkdGhpcy0+Q3JlYXRlSW5wdXREcm9wZG93bigkaWQsICd0aXRsZV9kaXNwbGF5X21vZGUnLCAkdGRtcywgLTEsICR0aGlzLT5HZXRQcmVmZXJlbmNlKCd0aXRsZV9kaXNwbGF5X21vZGUnLCBMSVNFOjpURU1fSU5QVVQpKSk7DQokc21hcnR5LT5hc3NpZ24oJ2lucHV0X3RpdGxlX2F1dG9fZ2VuJywgJHRoaXMtPkNyZWF0ZUlucHV0Q2hlY2tib3goJGlkLCAndGl0bGVfYXV0b19nZW4nLCAxLCAkdGl0bGVfYXV0b19nZW4sICgkdGl0bGVfYXV0b19nZW4gPyAnY2hlY2tlZD0iY2hlY2tlZCInIDogJycpKSk7DQokc21hcnR5LT5hc3NpZ24oJ2lucHV0X3RpdGxlX3RlbXBsYXRlJywgJHRoaXMtPkNyZWF0ZUlucHV0VGV4dCgkaWQsICd0aXRsZV90ZW1wbGF0ZScsICR0aGlzLT5HZXRQcmVmZXJlbmNlKCd0aXRsZV90ZW1wbGF0ZScsICd7SXRlbVNpbmd1bGFyfGNhcGl0YWxpemV9IC0ge0l0ZW1OZXh0SUR8c3RyaW5nX2Zvcm1hdDoiJTA2dSJ9JyksIDUwKSk7DQokc21hcnR5LT5hc3NpZ24oJ2lucHV0X2l0ZW1zX3Blcl9wYWdlJywgJHRoaXMtPkNyZWF0ZUlucHV0RHJvcGRvd24oJGlkLCAnaXRlbXNfcGVyX3BhZ2UnLCAkaXRlbXNfcGVyX3BhZ2UsIC0xLCAkdGhpcy0+R2V0UHJlZmVyZW5jZSgnaXRlbXNfcGVyX3BhZ2UnLCAyMCkpKTsNCiRzbWFydHktPmFzc2lnbignaW5wdXRfc29ydG9yZGVyJywgJHRoaXMtPkNyZWF0ZUlucHV0RHJvcGRvd24oJGlkLCAnaXRlbXNfc29ydG9yZGVyJywgJHNvcnRvcmRlciwgLTEsICR0aGlzLT5HZXRQcmVmZXJlbmNlKCdzb3J0b3JkZXInLCAnQVNDJykpKTsNCiRzbWFydHktPmFzc2lnbignaW5wdXRfY3JlYXRlX2RhdGUnLCAkdGhpcy0+Q3JlYXRlSW5wdXRDaGVja2JveCgkaWQsICdkaXNwbGF5X2NyZWF0ZV9kYXRlJywgMSwgJGRpc3BsYXlfY3JlYXRlX2RhdGUsICgkZGlzcGxheV9jcmVhdGVfZGF0ZSA/ICdjaGVja2VkPSJjaGVja2VkIicgOiAnJykpKTsNCiRzbWFydHktPmFzc2lnbignaW5wdXRfYXV0b191cGdyYWRlJywgJHRoaXMtPkNyZWF0ZUlucHV0Q2hlY2tib3goJGlkLCAnYXV0b191cGdyYWRlJywgMSwgJGF1dG9fdXBncmFkZSwgKCRhdXRvX3VwZ3JhZGUgPyAnY2hlY2tlZD0iY2hlY2tlZCInIDogJycpKSk7DQokc21hcnR5LT5hc3NpZ24oJ2lucHV0X2l0ZW1fY29scycsICR0aGlzLT5DcmVhdGVJbnB1dFNlbGVjdExpc3QoJGlkLCAnaXRlbV9jb2xzW10nLCAkZmllbGRkZWZzLCBleHBsb2RlKCcsJywgJHRoaXMtPkdldFByZWZlcmVuY2UoJ2l0ZW1fY29scycsICcnKSksIDEwKSk7DQoNCi8vIFVSTCBvcHRpb25zDQokc21hcnR5LT5hc3NpZ24oJ2lucHV0X3VybF9wcmVmaXgnLCAkdGhpcy0+Q3JlYXRlSW5wdXRUZXh0KCRpZCwgJ3VybF9wcmVmaXgnLCAkdGhpcy0+R2V0UHJlZmVyZW5jZSgndXJsX3ByZWZpeCcsICcnKSwgNTApKTsNCiRzbWFydHktPmFzc2lnbignaW5wdXRfdXJsX3RlbXBsYXRlJywgJHRoaXMtPkNyZWF0ZUlucHV0VGV4dCgkaWQsICd1cmx0ZW1wbGF0ZScsICR0aGlzLT5HZXRQcmVmZXJlbmNlKCd1cmx0ZW1wbGF0ZScsICd7UHJlZml4fS97SXRlbVRpdGxlfScpLCA1MCkpOw0KJHNtYXJ0eS0+YXNzaWduKCdpbnB1dF9kaXNwbGF5X2lubGluZScsICR0aGlzLT5DcmVhdGVJbnB1dENoZWNrYm94KCRpZCwgJ2Rpc3BsYXlfaW5saW5lJywgMSwgJGRpc3BsYXlfaW5saW5lLCAoJGRpc3BsYXlfaW5saW5lID8gJ2NoZWNrZWQ9ImNoZWNrZWQiJyA6ICcnKSkpOw0KJHNtYXJ0eS0+YXNzaWduKCdpbnB1dF9zdWJjYXRlZ29yeScsICR0aGlzLT5DcmVhdGVJbnB1dENoZWNrYm94KCRpZCwgJ3N1YmNhdGVnb3J5JywgMSwgJHN1YmNhdGVnb3J5LCAoJHN1YmNhdGVnb3J5ID8gJ2NoZWNrZWQ9ImNoZWNrZWQiJyA6ICcnKSkpOw0KDQovLyBDcm9zcyBNb2R1bGUgb3B0aW9ucw0KJHNtYXJ0eS0+YXNzaWduKCdpbnB1dF9yZWluZGV4X3NlYXJjaCcsICR0aGlzLT5DcmVhdGVJbnB1dENoZWNrYm94KCRpZCwgJ3JlaW5kZXhfc2VhcmNoJywgMSwgJHJlaW5kZXhfc2VhcmNoLCAoJHJlaW5kZXhfc2VhcmNoID8gJ2NoZWNrZWQ9ImNoZWNrZWQiJyA6ICcnKSkpOw0KDQplY2hvICR0aGlzLT5Nb2RQcm9jZXNzVGVtcGxhdGUoJ29wdGlvbnRhYi50cGwnKTsNCg0KPz4=]]></data>
	</file>
	<file>
	  <filename>/framework/function.admin_templatetab.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBMSVNFIC0gTGlzdCBJdCBTcGVjaWFsIEVkaXRpb24KIyBWZXJzaW9uIDEuMgojIEEgZm9yayBvZiBMaXN0STIKIyBtYWludGFpbmVkIGJ5IEZlcm5hbmRvIE1vcmdhZG8gQUtBIEpvIE1vcmcKIyBzaW5jZSAyMDE1CiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBPcmlnaW5hbCBBdXRob3I6IEJlbiBNYWxlbiwgPGJlbkBjb25jZXB0ZmFjdG9yeS5jb20uYXU+CiMgQ28tTWFpbnRhaW5lcjogU2ltb24gUmFkZm9yZCwgPHNpbW9uQGNvbmNlcHRmYWN0b3J5LmNvbS5hdT4KIyBXZWI6IHd3dy5jb25jZXB0ZmFjdG9yeS5jb20uYXUKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojCiMgTWFpbnRhaW5lciBzaW5jZSAyMDExIHVwIHRvIDIwMTQ6IEpvbmF0aGFuIFNjaG1pZCwgPGhpQGpvbmF0aGFuc2NobWlkLmRlPgojIFdlYjogd3d3LmpvbmF0aGFuc2NobWlkLmRlCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIwojIFNvbWUgd2Fja29zIHN0YXJ0ZWQgZGVzdHJveWluZyBzdHVmZiBzaW5jZSAyMDEyIGFuZCBzdG9wcGVkIGF0IDIwMTQ6CiMKIyBUYXBpbyBMw7Z5dHR5LCA8dGFwc2FAb3JhbmdlLW1lZGlhLmZpPgojIFdlYjogd3d3Lm9yYW5nZS1tZWRpYS5maQojCiMgR29yYW4gSWxpYywgPHVuaXF1M2VAZ21haWwuY29tPgojIFdlYjogd3d3LmljaC1tYWNoLWRhcy5hdAojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBMSVNFIGlzIGEgQ01TIE1hZGUgU2ltcGxlIG1vZHVsZSB0aGF0IGVuYWJsZXMgdGhlIHdlYiBkZXZlbG9wZXIgdG8gY3JlYXRlCiMgbXVsdGlwbGUgbGlzdHMgdGhyb3VnaG91dCBhIHNpdGUuIEl0IGNhbiBiZSBkdXBsaWNhdGVkIGFuZCBnaXZlbiBmcmllbmRseQojIG5hbWVzIGZvciBlYXNpZXIgY2xpZW50IG1haW50ZW5hbmNlLgojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgQkVHSU5fTElDRU5TRQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIExJU0UKIyBMSVNFIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgTElTRSBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBFTkRfTElDRU5TRQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKaWYoICFkZWZpbmVkKCdDTVNfVkVSU0lPTicpICkgZXhpdDsKCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBJbml0IGl0ZW1zCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0KCmlmICghJHRoaXMtPkNoZWNrUGVybWlzc2lvbigkdGhpcy0+X0dldE1vZHVsZUFsaWFzKCkgLiAnX21vZGlmeV9vcHRpb24nKSkKICAgIHJldHVybjsKCQokYWRtaW50aGVtZSA9IGNtc191dGlsczo6Z2V0X3RoZW1lX29iamVjdCgpOwokdGVtcGxhdGVzID0gJHRoaXMtPkxpc3RUZW1wbGF0ZXMoKTsKJGl0ZW1zID0gYXJyYXkoKTsKJGFkZGxpbmtzID0gYXJyYXkoKTsKCmZvcmVhY2ggKCR0ZW1wbGF0ZXMgYXMgJHRlbXBsYXRlKSB7CgoJbGlzdCgkdHBsX3R5cGUsICR0cGxfbmFtZSkgPSBleHBsb2RlKCdfJywgJHRlbXBsYXRlLCAyKTsKCiAgICAkb25lcm93ID0gbmV3IHN0ZENsYXNzKCk7CgogICAgJG9uZXJvdy0+bGluayAgID0gJHRoaXMtPkNyZWF0ZUxpbmsoJGlkLCAnYWRtaW5fZWRpdHRlbXBsYXRlJywgJHJldHVybmlkLCAkdHBsX25hbWUsIGFycmF5KCduYW1lJyA9PiAkdGVtcGxhdGUpKTsKICAgICRvbmVyb3ctPm5hbWUgICA9ICR0cGxfbmFtZTsKICAgICRvbmVyb3ctPmRlbGV0ZSA9ICR0aGlzLT5DcmVhdGVMaW5rKCRpZCwgJ2FkbWluX2RlbGV0ZXRlbXBsYXRlJywgJHJldHVybmlkLCAkYWRtaW50aGVtZS0+RGlzcGxheUltYWdlKCdpY29ucy9zeXN0ZW0vZGVsZXRlLmdpZicsICR0aGlzLT5Nb2RMYW5nKCdkZWxldGUnKSwgJycsICcnLCAnc3lzdGVtaWNvbicpLCBhcnJheSgnbmFtZScgPT4gJHRlbXBsYXRlKSk7CiAgICAkb25lcm93LT5lZGl0ICAgPSAkdGhpcy0+Q3JlYXRlTGluaygkaWQsICdhZG1pbl9lZGl0dGVtcGxhdGUnLCAkcmV0dXJuaWQsICRhZG1pbnRoZW1lLT5EaXNwbGF5SW1hZ2UoJ2ljb25zL3N5c3RlbS9lZGl0LmdpZicsICR0aGlzLT5Nb2RMYW5nKCdlZGl0JyksICcnLCAnJywgJ3N5c3RlbWljb24nKSwgYXJyYXkoJ25hbWUnID0+ICR0ZW1wbGF0ZSkpOwoKCSR0cGxfZGVmYXVsdCA9ICR0aGlzLT5HZXRQcmVmZXJlbmNlKCR0aGlzLT5fR2V0TW9kdWxlQWxpYXMoKSAuICdfZGVmYXVsdF8nLiR0cGxfdHlwZS4nX3RlbXBsYXRlJyk7CgkKCWlmKCR0cGxfZGVmYXVsdCA9PSAkdHBsX25hbWUpIHsKCgkJJG9uZXJvdy0+ZGVmYXVsdCA9ICRhZG1pbnRoZW1lLT5EaXNwbGF5SW1hZ2UoJ2ljb25zL3N5c3RlbS90cnVlLmdpZicsICR0aGlzLT5Nb2RMYW5nKCdpc19kZWZhdWx0JyksJycsJycsJ3N5c3RlbWljb24nKTsKCQkKCQlpZigkdHBsX3R5cGUgIT0gJ2ZpbHRlcicpIC8vIDwtIEZvciB1cGdyYWRlLCBzbyBwcGwgYXJlIGFibGUgdG8gcmVtb3ZlIGFsbCBmaWx0ZXIgdGVtcGxhdGVzIGFmdGVyIG1vdmluZyBzdHVmZiB0byBzZWFyY2ggaW5zdGFuY2UuICgxLjIuMSAtPiAxLjIuMikKCQkJdW5zZXQoJG9uZXJvdy0+ZGVsZXRlKTsgLy8gPC0gRGlzYWJsZSBkZWxldGUgYnV0dG9uCgkJCgl9IGVsc2UgewoJCgkJJG9uZXJvdy0+ZGVmYXVsdCA9ICR0aGlzLT5DcmVhdGVMaW5rKCRpZCwnYWRtaW5fc2V0ZGVmYXVsdHRlbXBsYXRlJywkcmV0dXJuaWQsCgkJCQkJCSRhZG1pbnRoZW1lLT5EaXNwbGF5SW1hZ2UoJ2ljb25zL3N5c3RlbS9mYWxzZS5naWYnLCR0aGlzLT5Nb2RMYW5nKCdzdGF0dXNfZGVmYXVsdCcpLCcnLCcnLCdzeXN0ZW1pY29uJyksYXJyYXkoJ25hbWUnID0+ICR0ZW1wbGF0ZSkpOwoJfQkKCQogICAgJGl0ZW1zWyR0cGxfdHlwZV1bXSA9ICRvbmVyb3c7CgkKCWlmKCFpc3NldCgkYWRkbGlua3NbJHRwbF90eXBlXSkpCgkJJGFkZGxpbmtzWyR0cGxfdHlwZV0gPSAkdGhpcy0+Q3JlYXRlTGluaygkaWQsICdhZG1pbl9lZGl0dGVtcGxhdGUnLCAkcmV0dXJuaWQsICRhZG1pbnRoZW1lLT5EaXNwbGF5SW1hZ2UoJ2ljb25zL3N5c3RlbS9uZXdvYmplY3QuZ2lmJywgJHRoaXMtPk1vZExhbmcoJ2FkZCcsICR0aGlzLT5Nb2RMYW5nKCR0cGxfdHlwZSAuICd0ZW1wbGF0ZScpKSwgJycsICcnLCAnc3lzdGVtaWNvbicpIC4gJHRoaXMtPk1vZExhbmcoJ2FkZCcsICR0aGlzLT5Nb2RMYW5nKCR0cGxfdHlwZSAuICd0ZW1wbGF0ZScpKSwgYXJyYXkoJ3R5cGUnID0+ICR0cGxfdHlwZSkpOwp9Cgprc29ydCgkaXRlbXMpOwoKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIFNtYXJ0eSBwcm9jZXNzaW5nCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0KCiRzbWFydHktPmFzc2lnbignaXRlbXMnLCAkaXRlbXMpOwokc21hcnR5LT5hc3NpZ24oJ2FkZGxpbmtzJywgJGFkZGxpbmtzKTsKCmVjaG8gJHRoaXMtPk1vZFByb2Nlc3NUZW1wbGF0ZSgndGVtcGxhdGV0YWIudHBsJyk7Cj8+]]></data>
	</file>
	<file>
	  <filename>/framework/index.html</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[]]></data>
	</file>
	<file>
	  <filename>/framework/js</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/framework/js/footable.filter.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[KGZ1bmN0aW9uICgkLCB3LCB1bmRlZmluZWQpIHsKICAgIGlmICh3LmZvb3RhYmxlID09PSB1bmRlZmluZWQgfHwgdy5mb290YWJsZSA9PT0gbnVsbCkKICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ1BsZWFzZSBjaGVjayBhbmQgbWFrZSBzdXJlIGZvb3RhYmxlLmpzIGlzIGluY2x1ZGVkIGluIHRoZSBwYWdlIGFuZCBpcyBsb2FkZWQgcHJpb3IgdG8gdGhpcyBzY3JpcHQuJyk7CgogICAgdmFyIGRlZmF1bHRzID0gewogICAgICAgIGZpbHRlcjogewogICAgICAgICAgICBlbmFibGVkOiB0cnVlLAogICAgICAgICAgICBpbnB1dDogJy5mb290YWJsZS1maWx0ZXInLAogICAgICAgICAgICB0aW1lb3V0OiAzMDAsCiAgICAgICAgICAgIG1pbmltdW06IDIsCiAgICAgICAgICAgIGRpc2FibGVFbnRlcjogZmFsc2UsCiAgICAgICAgICAgIGZpbHRlckZ1bmN0aW9uOiBmdW5jdGlvbihpbmRleCkgewogICAgICAgICAgICAgICAgdmFyICR0ID0gJCh0aGlzKSwKICAgICAgICAgICAgICAgICAgICAkdGFibGUgPSAkdC5wYXJlbnRzKCd0YWJsZTpmaXJzdCcpLAogICAgICAgICAgICAgICAgICAgIGZpbHRlciA9ICR0YWJsZS5kYXRhKCdjdXJyZW50LWZpbHRlcicpLnRvVXBwZXJDYXNlKCksCiAgICAgICAgICAgICAgICAgICAgdGV4dCA9ICR0LmZpbmQoJ3RkJykudGV4dCgpOwogICAgICAgICAgICAgICAgaWYgKCEkdGFibGUuZGF0YSgnZmlsdGVyLXRleHQtb25seScpKSB7CiAgICAgICAgICAgICAgICAgICAgJHQuZmluZCgndGRbZGF0YS12YWx1ZV0nKS5lYWNoKGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgICAgICAgICAgICAgdGV4dCArPSAkKHRoaXMpLmRhdGEoJ3ZhbHVlJyk7CiAgICAgICAgICAgICAgICAgICAgfSk7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICByZXR1cm4gdGV4dC50b1VwcGVyQ2FzZSgpLmluZGV4T2YoZmlsdGVyKSA+PSAwOwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgfTsKCiAgICBmdW5jdGlvbiBGaWx0ZXIoKSB7CiAgICAgICAgdmFyIHAgPSB0aGlzOwogICAgICAgIHAubmFtZSA9ICdGb290YWJsZSBGaWx0ZXInOwogICAgICAgIHAuaW5pdCA9IGZ1bmN0aW9uIChmdCkgewogICAgICAgICAgICBwLmZvb3RhYmxlID0gZnQ7CiAgICAgICAgICAgIGlmIChmdC5vcHRpb25zLmZpbHRlci5lbmFibGVkID09PSB0cnVlKSB7CiAgICAgICAgICAgICAgICBpZiAoJChmdC50YWJsZSkuZGF0YSgnZmlsdGVyJykgPT09IGZhbHNlKSByZXR1cm47CiAgICAgICAgICAgICAgICBmdC50aW1lcnMucmVnaXN0ZXIoJ2ZpbHRlcicpOwogICAgICAgICAgICAgICAgJChmdC50YWJsZSkKICAgICAgICAgICAgICAgICAgICAudW5iaW5kKCcuZmlsdGVyaW5nJykKICAgICAgICAgICAgICAgICAgICAuYmluZCh7CiAgICAgICAgICAgICAgICAgICAgICAgICdmb290YWJsZV9pbml0aWFsaXplZC5maWx0ZXJpbmcnOiBmdW5jdGlvbiAoZSkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyICR0YWJsZSA9ICQoZnQudGFibGUpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGRhdGEgPSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2lucHV0JzogJHRhYmxlLmRhdGEoJ2ZpbHRlcicpIHx8IGZ0Lm9wdGlvbnMuZmlsdGVyLmlucHV0LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICd0aW1lb3V0JzogJHRhYmxlLmRhdGEoJ2ZpbHRlci10aW1lb3V0JykgfHwgZnQub3B0aW9ucy5maWx0ZXIudGltZW91dCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnbWluaW11bSc6ICR0YWJsZS5kYXRhKCdmaWx0ZXItbWluaW11bScpIHx8IGZ0Lm9wdGlvbnMuZmlsdGVyLm1pbmltdW0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2Rpc2FibGVFbnRlcic6ICR0YWJsZS5kYXRhKCdmaWx0ZXItZGlzYWJsZS1lbnRlcicpIHx8IGZ0Lm9wdGlvbnMuZmlsdGVyLmRpc2FibGVFbnRlcgogICAgICAgICAgICAgICAgICAgICAgICAgICAgfTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChkYXRhLmRpc2FibGVFbnRlcikgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICQoZGF0YS5pbnB1dCkua2V5cHJlc3MoZnVuY3Rpb24gKGV2ZW50KSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICh3aW5kb3cuZXZlbnQpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gKHdpbmRvdy5ldmVudC5rZXlDb2RlICE9PSAxMyk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsc2UKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAoZXZlbnQud2hpY2ggIT09IDEzKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICR0YWJsZS5iaW5kKCdmb290YWJsZV9jbGVhcl9maWx0ZXInLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJChkYXRhLmlucHV0KS52YWwoJycpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHAuY2xlYXJGaWx0ZXIoKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgJHRhYmxlLmJpbmQoJ2Zvb3RhYmxlX2ZpbHRlcicsIGZ1bmN0aW9uIChldmVudCwgYXJncykgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHAuZmlsdGVyKGFyZ3MuZmlsdGVyKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgJChkYXRhLmlucHV0KS5rZXl1cChmdW5jdGlvbiAoZXZlKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZnQudGltZXJzLmZpbHRlci5zdG9wKCk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGV2ZS53aGljaCA9PT0gMjcpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJChkYXRhLmlucHV0KS52YWwoJycpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmdC50aW1lcnMuZmlsdGVyLnN0YXJ0KGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyIHZhbCA9ICQoZGF0YS5pbnB1dCkudmFsKCkgfHwgJyc7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHAuZmlsdGVyKHZhbCk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwgZGF0YS50aW1lb3V0KTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pOwogICAgICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgICAgICAgICAnZm9vdGFibGVfcmVkcmF3bi5maWx0ZXJpbmcnOiBmdW5jdGlvbiAoZSkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyICR0YWJsZSA9ICQoZnQudGFibGUpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbHRlciA9ICR0YWJsZS5kYXRhKCdmaWx0ZXItc3RyaW5nJyk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoZmlsdGVyKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcC5maWx0ZXIoZmlsdGVyKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfSkKICAgICAgICAgICAgICAgIC8vc2F2ZSB0aGUgZmlsdGVyIG9iamVjdCBvbnRvIHRoZSB0YWJsZSBzbyB3ZSBjYW4gYWNjZXNzIGl0IGxhdGVyCiAgICAgICAgICAgICAgICAuZGF0YSgnZm9vdGFibGUtZmlsdGVyJywgcCk7CiAgICAgICAgICAgIH0KICAgICAgICB9OwoKICAgICAgICBwLmZpbHRlciA9IGZ1bmN0aW9uIChmaWx0ZXJTdHJpbmcpIHsKICAgICAgICAgICAgdmFyIGZ0ID0gcC5mb290YWJsZSwKICAgICAgICAgICAgICAgICR0YWJsZSA9ICQoZnQudGFibGUpLAogICAgICAgICAgICAgICAgbWluaW11bSA9ICR0YWJsZS5kYXRhKCdmaWx0ZXItbWluaW11bScpIHx8IGZ0Lm9wdGlvbnMuZmlsdGVyLm1pbmltdW0sCiAgICAgICAgICAgICAgICBjbGVhciA9ICFmaWx0ZXJTdHJpbmc7CgogICAgICAgICAgICAvL3JhaXNlIGEgcHJlLWZpbHRlciBldmVudCBzbyB0aGF0IHdlIGNhbiBjYW5jZWwgdGhlIGZpbHRlcmluZyBpZiBuZWVkZWQKICAgICAgICAgICAgdmFyIGV2ZW50ID0gZnQucmFpc2UoJ2Zvb3RhYmxlX2ZpbHRlcmluZycsIHsgZmlsdGVyOiBmaWx0ZXJTdHJpbmcsIGNsZWFyOiBjbGVhciB9KTsKICAgICAgICAgICAgaWYgKGV2ZW50ICYmIGV2ZW50LnJlc3VsdCA9PT0gZmFsc2UpIHJldHVybjsKICAgICAgICAgICAgaWYgKGV2ZW50LmZpbHRlciAmJiBldmVudC5maWx0ZXIubGVuZ3RoIDwgbWluaW11bSkgewogICAgICAgICAgICAgIHJldHVybjsgLy9pZiB3ZSBkbyBub3QgaGF2ZSB0aGUgbWluaW11bSBjaGFycyB0aGVuIGRvIG5vdGhpbmcKICAgICAgICAgICAgfQoKICAgICAgICAgIGlmIChldmVudC5jbGVhcikgewogICAgICAgICAgICAgICAgcC5jbGVhckZpbHRlcigpOwogICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgdmFyIGZpbHRlcnMgPSBldmVudC5maWx0ZXIuc3BsaXQoJyAnKTsKCiAgICAgICAgICAgICAgICAkdGFibGUuZmluZCgnPiB0Ym9keSA+IHRyJykuaGlkZSgpLmFkZENsYXNzKCdmb290YWJsZS1maWx0ZXJlZCcpOwogICAgICAgICAgICAgICAgdmFyIHJvd3MgPSAkdGFibGUuZmluZCgnPiB0Ym9keSA+IHRyOm5vdCguZm9vdGFibGUtcm93LWRldGFpbCknKTsKICAgICAgICAgICAgICAgICQuZWFjaChmaWx0ZXJzLCBmdW5jdGlvbiAoaSwgZikgewogICAgICAgICAgICAgICAgICAgIGlmIChmICYmIGYubGVuZ3RoID4gMCkgewogICAgICAgICAgICAgICAgICAgICAgICAkdGFibGUuZGF0YSgnY3VycmVudC1maWx0ZXInLCBmKTsKICAgICAgICAgICAgICAgICAgICAgICAgcm93cyA9IHJvd3MuZmlsdGVyKGZ0Lm9wdGlvbnMuZmlsdGVyLmZpbHRlckZ1bmN0aW9uKTsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9KTsKICAgICAgICAgICAgICAgIHJvd3MuZWFjaChmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICAgICAgICAgcC5zaG93Um93KHRoaXMsIGZ0KTsKICAgICAgICAgICAgICAgICAgICAkKHRoaXMpLnJlbW92ZUNsYXNzKCdmb290YWJsZS1maWx0ZXJlZCcpOwogICAgICAgICAgICAgICAgfSk7CiAgICAgICAgICAgICAgICAkdGFibGUuZGF0YSgnZmlsdGVyLXN0cmluZycsIGV2ZW50LmZpbHRlcik7CiAgICAgICAgICAgICAgICBmdC5yYWlzZSgnZm9vdGFibGVfZmlsdGVyZWQnLCB7IGZpbHRlcjogZXZlbnQuZmlsdGVyLCBjbGVhcjogZmFsc2UgfSk7CiAgICAgICAgICAgIH0KICAgICAgICB9OwoKICAgICAgICBwLmNsZWFyRmlsdGVyID0gZnVuY3Rpb24gKCkgewogICAgICAgICAgICB2YXIgZnQgPSBwLmZvb3RhYmxlLAogICAgICAgICAgICAgICAgJHRhYmxlID0gJChmdC50YWJsZSk7CgogICAgICAgICAgICAkdGFibGUuZmluZCgnPiB0Ym9keSA+IHRyOm5vdCguZm9vdGFibGUtcm93LWRldGFpbCknKS5yZW1vdmVDbGFzcygnZm9vdGFibGUtZmlsdGVyZWQnKS5lYWNoKGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgICAgIHAuc2hvd1Jvdyh0aGlzLCBmdCk7CiAgICAgICAgICAgIH0pOwogICAgICAgICAgICAkdGFibGUucmVtb3ZlRGF0YSgnZmlsdGVyLXN0cmluZycpOwogICAgICAgICAgICBmdC5yYWlzZSgnZm9vdGFibGVfZmlsdGVyZWQnLCB7IGNsZWFyOiB0cnVlIH0pOwogICAgICAgIH07CgogICAgICAgIHAuc2hvd1JvdyA9IGZ1bmN0aW9uIChyb3csIGZ0KSB7CiAgICAgICAgICAgIHZhciAkcm93ID0gJChyb3cpLCAkbmV4dCA9ICRyb3cubmV4dCgpLCAkdGFibGUgPSAkKGZ0LnRhYmxlKTsKICAgICAgICAgICAgaWYgKCRyb3cuaXMoJzp2aXNpYmxlJykpIHJldHVybjsgLy9hbHJlYWR5IHZpc2libGUgLSBkbyBub3RoaW5nCiAgICAgICAgICAgIGlmICgkdGFibGUuaGFzQ2xhc3MoJ2JyZWFrcG9pbnQnKSAmJiAkcm93Lmhhc0NsYXNzKCdmb290YWJsZS1kZXRhaWwtc2hvdycpICYmICRuZXh0Lmhhc0NsYXNzKCdmb290YWJsZS1yb3ctZGV0YWlsJykpIHsKICAgICAgICAgICAgICAgICRyb3cuYWRkKCRuZXh0KS5zaG93KCk7CiAgICAgICAgICAgICAgICBmdC5jcmVhdGVPclVwZGF0ZURldGFpbFJvdyhyb3cpOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGVsc2UgJHJvdy5zaG93KCk7CiAgICAgICAgfTsKICAgIH0KCiAgICB3LmZvb3RhYmxlLnBsdWdpbnMucmVnaXN0ZXIoRmlsdGVyLCBkZWZhdWx0cyk7Cgp9KShqUXVlcnksIHdpbmRvdyk7Cg==]]></data>
	</file>
	<file>
	  <filename>/framework/js/footable.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[LyohCiAqIEZvb1RhYmxlIC0gQXdlc29tZSBSZXNwb25zaXZlIFRhYmxlcwogKiBWZXJzaW9uIDogMi4wLjEuMgogKiBodHRwOi8vZm9vcGx1Z2lucy5jb20vcGx1Z2lucy9mb290YWJsZS1qcXVlcnkvCiAqCiAqIFJlcXVpcmVzIGpRdWVyeSAtIGh0dHA6Ly9qcXVlcnkuY29tLwogKgogKiBDb3B5cmlnaHQgMjAxMyBTdGV2ZW4gVXNoZXIgJiBCcmFkIFZpbmNlbnQKICogUmVsZWFzZWQgdW5kZXIgdGhlIE1JVCBsaWNlbnNlCiAqIFlvdSBhcmUgZnJlZSB0byB1c2UgRm9vVGFibGUgaW4gY29tbWVyY2lhbCBwcm9qZWN0cyBhcyBsb25nIGFzIHRoaXMgY29weXJpZ2h0IGhlYWRlciBpcyBsZWZ0IGludGFjdC4KICoKICogRGF0ZTogMjEgU2VwIDIwMTMKICovCihmdW5jdGlvbiAoJCwgdywgdW5kZWZpbmVkKSB7CiAgICB3LmZvb3RhYmxlID0gewogICAgICAgIG9wdGlvbnM6IHsKICAgICAgICAgICAgZGVsYXk6IDEwMCwgLy8gVGhlIG51bWJlciBvZiBtaWxsc2Vjb25kcyB0byB3YWl0IGJlZm9yZSB0cmlnZ2VyaW5nIHRoZSByZWFjdCBldmVudAogICAgICAgICAgICBicmVha3BvaW50czogeyAvLyBUaGUgZGlmZmVyZW50IHNjcmVlbiByZXNvbHV0aW9uIGJyZWFrcG9pbnRzCiAgICAgICAgICAgICAgICBwaG9uZTogNDgwLAogICAgICAgICAgICAgICAgdGFibGV0OiA3NjgKICAgICAgICAgICAgfSwKICAgICAgICAgICAgcGFyc2VyczogeyAgLy8gVGhlIGRlZmF1bHQgcGFyc2VyIHRvIHBhcnNlIHRoZSB2YWx1ZSBvdXQgb2YgYSBjZWxsICh2YWx1ZXMgYXJlIHVzZWQgaW4gYnVpbGRpbmcgdXAgcm93IGRldGFpbCkKICAgICAgICAgICAgICAgIGFscGhhOiBmdW5jdGlvbiAoY2VsbCkgewogICAgICAgICAgICAgICAgICAgIHJldHVybiAkKGNlbGwpLmRhdGEoJ3ZhbHVlJykgfHwgJC50cmltKCQoY2VsbCkudGV4dCgpKTsKICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICBudW1lcmljOiBmdW5jdGlvbiAoY2VsbCkgewogICAgICAgICAgICAgICAgICAgIHZhciB2YWwgPSAkKGNlbGwpLmRhdGEoJ3ZhbHVlJykgfHwgJChjZWxsKS50ZXh0KCkucmVwbGFjZSgvW14wLTkuXC1dL2csICcnKTsKICAgICAgICAgICAgICAgICAgICB2YWwgPSBwYXJzZUZsb2F0KHZhbCk7CiAgICAgICAgICAgICAgICAgICAgaWYgKGlzTmFOKHZhbCkpIHZhbCA9IDA7CiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHZhbDsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfSwKICAgICAgICAgICAgYWRkUm93VG9nZ2xlOiB0cnVlLAogICAgICAgICAgICBjYWxjdWxhdGVXaWR0aE92ZXJyaWRlOiBudWxsLAogICAgICAgICAgICB0b2dnbGVTZWxlY3RvcjogJyA+IHRib2R5ID4gdHI6bm90KC5mb290YWJsZS1yb3ctZGV0YWlsKScsIC8vdGhlIHNlbGVjdG9yIHRvIHNob3cvaGlkZSB0aGUgZGV0YWlsIHJvdwogICAgICAgICAgICBjb2x1bW5EYXRhU2VsZWN0b3I6ICc+IHRoZWFkID4gdHI6bGFzdC1jaGlsZCA+IHRoLCA+IHRoZWFkID4gdHI6bGFzdC1jaGlsZCA+IHRkJywgLy90aGUgc2VsZWN0b3IgdXNlZCB0byBmaW5kIHRoZSBjb2x1bW4gZGF0YSBpbiB0aGUgdGhlYWQKICAgICAgICAgICAgZGV0YWlsU2VwYXJhdG9yOiAnOicsIC8vdGhlIHNlcGFyYXRvciBjaGFyYWN0ZXIgdXNlZCB3aGVuIGJ1aWxkaW5nIHVwIHRoZSBkZXRhaWwgcm93CiAgICAgICAgICAgIHRvZ2dsZUhUTUxFbGVtZW50OiAnPHNwYW4gLz4nLCAvLyBvdmVycmlkZSB0aGlzIGlmIHlvdSB3YW50IHRvIGluc2VydCBhIGNsaWNrIHRhcmdldCByYXRoZXIgdGhhbiB1c2UgYSBiYWNrZ3JvdW5kIGltYWdlLgogICAgICAgICAgICBjcmVhdGVHcm91cGVkRGV0YWlsOiBmdW5jdGlvbiAoZGF0YSkgewogICAgICAgICAgICAgICAgdmFyIGdyb3VwcyA9IHsgJ19ub25lJzogeyAnbmFtZSc6IG51bGwsICdkYXRhJzogW10gfSB9OwogICAgICAgICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBkYXRhLmxlbmd0aDsgaSsrKSB7CiAgICAgICAgICAgICAgICAgICAgdmFyIGdyb3VwaWQgPSBkYXRhW2ldLmdyb3VwOwogICAgICAgICAgICAgICAgICAgIGlmIChncm91cGlkICE9PSBudWxsKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIGlmICghKGdyb3VwaWQgaW4gZ3JvdXBzKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdyb3Vwc1tncm91cGlkXSA9IHsgJ25hbWUnOiBkYXRhW2ldLmdyb3VwTmFtZSB8fCBkYXRhW2ldLmdyb3VwLCAnZGF0YSc6IFtdIH07CgogICAgICAgICAgICAgICAgICAgICAgICBncm91cHNbZ3JvdXBpZF0uZGF0YS5wdXNoKGRhdGFbaV0pOwogICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgICAgIGdyb3Vwcy5fbm9uZS5kYXRhLnB1c2goZGF0YVtpXSk7CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgcmV0dXJuIGdyb3VwczsKICAgICAgICAgICAgfSwKICAgICAgICAgICAgY3JlYXRlRGV0YWlsOiBmdW5jdGlvbiAoZWxlbWVudCwgZGF0YSwgY3JlYXRlR3JvdXBlZERldGFpbCwgc2VwYXJhdG9yQ2hhciwgY2xhc3NlcykgewogICAgICAgICAgICAgICAgLy8vIDxzdW1tYXJ5PlRoaXMgZnVuY3Rpb24gaXMgdXNlZCBieSBGb29UYWJsZSB0byBnZW5lcmF0ZSB0aGUgZGV0YWlsIHZpZXcgc2VlbiB3aGVuIGV4cGFuZGluZyBhIGNvbGxhcHNlZCByb3cuPC9zdW1tYXJ5PgogICAgICAgICAgICAgICAgLy8vIDxwYXJhbSBuYW1lPSJlbGVtZW50Ij5UaGlzIGlzIHRoZSBkaXYgdGhhdCBjb250YWlucyBhbGwgdGhlIGRldGFpbCByb3cgaW5mb3JtYXRpb24sIGFueXRoaW5nIGNvdWxkIGJlIGFkZGVkIHRvIGl0LjwvcGFyYW0+CiAgICAgICAgICAgICAgICAvLy8gPHBhcmFtIG5hbWU9ImRhdGEiPgogICAgICAgICAgICAgICAgLy8vICBUaGlzIGlzIGFuIGFycmF5IG9mIG9iamVjdHMgY29udGFpbmluZyB0aGUgY2VsbCBpbmZvcm1hdGlvbiBmb3IgdGhlIGN1cnJlbnQgcm93LgogICAgICAgICAgICAgICAgLy8vICBUaGVzZSBvYmplY3RzIGxvb2sgbGlrZSB0aGUgYmVsb3c6CiAgICAgICAgICAgICAgICAvLy8gICAgb2JqID0gewogICAgICAgICAgICAgICAgLy8vICAgICAgJ25hbWUnOiBTdHJpbmcsIC8vIFRoZSBuYW1lIG9mIHRoZSBjb2x1bW4KICAgICAgICAgICAgICAgIC8vLyAgICAgICd2YWx1ZSc6IE9iamVjdCwgLy8gVGhlIHZhbHVlIHBhcnNlZCBmcm9tIHRoZSBjZWxsIHVzaW5nIHRoZSBwYXJzZXJzLiBUaGlzIGNvdWxkIGJlIGEgc3RyaW5nLCBhIG51bWJlciBvciB3aGF0ZXZlciB0aGUgcGFyc2VyIG91dHB1dHMuCiAgICAgICAgICAgICAgICAvLy8gICAgICAnZGlzcGxheSc6IFN0cmluZywgLy8gVGhpcyBpcyB0aGUgYWN0dWFsIEhUTUwgZnJvbSB0aGUgY2VsbCwgc28gaWYgeW91IGhhdmUgaW1hZ2VzIGV0YyB5b3Ugd2FudCBtb3ZlZCB0aGlzIGlzIHRoZSBvbmUgdG8gdXNlIGFuZCBpcyB0aGUgZGVmYXVsdCB2YWx1ZSB1c2VkLgogICAgICAgICAgICAgICAgLy8vICAgICAgJ2dyb3VwJzogU3RyaW5nLCAvLyBUaGlzIGlzIHRoZSBpZGVudGlmaWVyIHVzZWQgaW4gdGhlIGRhdGEtZ3JvdXAgYXR0cmlidXRlIG9mIHRoZSBjb2x1bW4uCiAgICAgICAgICAgICAgICAvLy8gICAgICAnZ3JvdXBOYW1lJzogU3RyaW5nIC8vIFRoaXMgaXMgdGhlIGFjdHVhbCBuYW1lIG9mIHRoZSBncm91cCB0aGUgY29sdW1uIGJlbG9uZ3MgdG8uCiAgICAgICAgICAgICAgICAvLy8gICAgfQogICAgICAgICAgICAgICAgLy8vIDwvcGFyYW0+CiAgICAgICAgICAgICAgICAvLy8gPHBhcmFtIG5hbWU9ImNyZWF0ZUdyb3VwZWREZXRhaWwiPlRoZSBncm91cGluZyBmdW5jdGlvbiB0byBncm91cCB0aGUgZGF0YTwvcGFyYW0+CiAgICAgICAgICAgICAgICAvLy8gPHBhcmFtIG5hbWU9InNlcGFyYXRvckNoYXIiPlRoZSBzZXBhcmF0b3IgY2hhcmFjdG9yIHVzZWQ8L3BhcmFtPgogICAgICAgICAgICAgICAgLy8vIDxwYXJhbSBuYW1lPSJjbGFzc2VzIj5UaGUgYXJyYXkgb2YgY2xhc3MgbmFtZXMgdXNlZCB0byBidWlsZCB1cCB0aGUgZGV0YWlsIHJvdzwvcGFyYW0+CgogICAgICAgICAgICAgICAgdmFyIGdyb3VwcyA9IGNyZWF0ZUdyb3VwZWREZXRhaWwoZGF0YSk7CiAgICAgICAgICAgICAgICBmb3IgKHZhciBncm91cCBpbiBncm91cHMpIHsKICAgICAgICAgICAgICAgICAgICBpZiAoZ3JvdXBzW2dyb3VwXS5kYXRhLmxlbmd0aCA9PT0gMCkgY29udGludWU7CiAgICAgICAgICAgICAgICAgICAgaWYgKGdyb3VwICE9PSAnX25vbmUnKSBlbGVtZW50LmFwcGVuZCgnPGRpdiBjbGFzcz0iJyArIGNsYXNzZXMuZGV0YWlsSW5uZXJHcm91cCArICciPicgKyBncm91cHNbZ3JvdXBdLm5hbWUgKyAnPC9kaXY+Jyk7CgogICAgICAgICAgICAgICAgICAgIGZvciAodmFyIGogPSAwOyBqIDwgZ3JvdXBzW2dyb3VwXS5kYXRhLmxlbmd0aDsgaisrKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBzZXBhcmF0b3IgPSAoZ3JvdXBzW2dyb3VwXS5kYXRhW2pdLm5hbWUpID8gc2VwYXJhdG9yQ2hhciA6ICcnOwogICAgICAgICAgICAgICAgICAgICAgICBlbGVtZW50LmFwcGVuZCgnPGRpdiBjbGFzcz0iJyArIGNsYXNzZXMuZGV0YWlsSW5uZXJSb3cgKyAnIj48ZGl2IGNsYXNzPSInICsgY2xhc3Nlcy5kZXRhaWxJbm5lck5hbWUgKyAnIj4nICsgZ3JvdXBzW2dyb3VwXS5kYXRhW2pdLm5hbWUgKyBzZXBhcmF0b3IgKyAnPC9kaXY+PGRpdiBjbGFzcz0iJyArIGNsYXNzZXMuZGV0YWlsSW5uZXJWYWx1ZSArICciPicgKyBncm91cHNbZ3JvdXBdLmRhdGFbal0uZGlzcGxheSArICc8L2Rpdj48L2Rpdj4nKTsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIGNsYXNzZXM6IHsKICAgICAgICAgICAgICAgIG1haW46ICdmb290YWJsZScsCiAgICAgICAgICAgICAgICBsb2FkaW5nOiAnZm9vdGFibGUtbG9hZGluZycsCiAgICAgICAgICAgICAgICBsb2FkZWQ6ICdmb290YWJsZS1sb2FkZWQnLAogICAgICAgICAgICAgICAgdG9nZ2xlOiAnZm9vdGFibGUtdG9nZ2xlJywKICAgICAgICAgICAgICAgIGRpc2FibGVkOiAnZm9vdGFibGUtZGlzYWJsZWQnLAogICAgICAgICAgICAgICAgZGV0YWlsOiAnZm9vdGFibGUtcm93LWRldGFpbCcsCiAgICAgICAgICAgICAgICBkZXRhaWxDZWxsOiAnZm9vdGFibGUtcm93LWRldGFpbC1jZWxsJywKICAgICAgICAgICAgICAgIGRldGFpbElubmVyOiAnZm9vdGFibGUtcm93LWRldGFpbC1pbm5lcicsCiAgICAgICAgICAgICAgICBkZXRhaWxJbm5lclJvdzogJ2Zvb3RhYmxlLXJvdy1kZXRhaWwtcm93JywKICAgICAgICAgICAgICAgIGRldGFpbElubmVyR3JvdXA6ICdmb290YWJsZS1yb3ctZGV0YWlsLWdyb3VwJywKICAgICAgICAgICAgICAgIGRldGFpbElubmVyTmFtZTogJ2Zvb3RhYmxlLXJvdy1kZXRhaWwtbmFtZScsCiAgICAgICAgICAgICAgICBkZXRhaWxJbm5lclZhbHVlOiAnZm9vdGFibGUtcm93LWRldGFpbC12YWx1ZScsCiAgICAgICAgICAgICAgICBkZXRhaWxTaG93OiAnZm9vdGFibGUtZGV0YWlsLXNob3cnCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIHRyaWdnZXJzOiB7CiAgICAgICAgICAgICAgICBpbml0aWFsaXplOiAnZm9vdGFibGVfaW5pdGlhbGl6ZScsICAgICAgICAgICAgICAgICAgICAgIC8vdHJpZ2dlciB0aGlzIGV2ZW50IHRvIGZvcmNlIEZvb1RhYmxlIHRvIHJlaW5pdGlhbGl6ZQogICAgICAgICAgICAgICAgcmVzaXplOiAnZm9vdGFibGVfcmVzaXplJywgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvL3RyaWdnZXIgdGhpcyBldmVudCB0byBmb3JjZSBGb29UYWJsZSB0byByZXNpemUKICAgICAgICAgICAgICAgIHJlZHJhdzogJ2Zvb3RhYmxlX3JlZHJhdycsCQkJCQkJCQkvL3RyaWdnZXIgdGhpcyBldmVudCB0byBmb3JjZSBGb29UYWJsZSB0byByZWRyYXcKICAgICAgICAgICAgICAgIHRvZ2dsZVJvdzogJ2Zvb3RhYmxlX3RvZ2dsZV9yb3cnLCAgICAgICAgICAgICAgICAgICAgICAgLy90cmlnZ2VyIHRoaXMgZXZlbnQgdG8gZm9yY2UgRm9vVGFibGUgdG8gdG9nZ2xlIGEgcm93CiAgICAgICAgICAgICAgICBleHBhbmRGaXJzdFJvdzogJ2Zvb3RhYmxlX2V4cGFuZF9maXJzdF9yb3cnLCAgICAgICAgICAgIC8vdHJpZ2dlciB0aGlzIGV2ZW50IHRvIGZvcmNlIEZvb1RhYmxlIHRvIGV4cGFuZCB0aGUgZmlyc3Qgcm93CiAgICAgICAgICAgICAgICBleHBhbmRBbGw6ICdmb290YWJsZV9leHBhbmRfYWxsJywgICAgICAgICAgICAgICAgICAgICAgIC8vdHJpZ2dlciB0aGlzIGV2ZW50IHRvIGZvcmNlIEZvb1RhYmxlIHRvIGV4cGFuZCBhbGwgcm93cwogICAgICAgICAgICAgICAgY29sbGFwc2VBbGw6ICdmb290YWJsZV9jb2xsYXBzZV9hbGwnICAgICAgICAgICAgICAgICAgICAvL3RyaWdnZXIgdGhpcyBldmVudCB0byBmb3JjZSBGb29UYWJsZSB0byBjb2xsYXBzZSBhbGwgcm93cwogICAgICAgICAgICB9LAogICAgICAgICAgICBldmVudHM6IHsKICAgICAgICAgICAgICAgIGFscmVhZHlJbml0aWFsaXplZDogJ2Zvb3RhYmxlX2FscmVhZHlfaW5pdGlhbGl6ZWQnLCAgICAgLy9maXJlcyB3aGVuIHRoZSBGb29UYWJsZSBoYXMgYWxyZWFkeSBiZWVuIGluaXRpYWxpemVkCiAgICAgICAgICAgICAgICBpbml0aWFsaXppbmc6ICdmb290YWJsZV9pbml0aWFsaXppbmcnLCAgICAgICAgICAgICAgICAgIC8vZmlyZXMgYmVmb3JlIEZvb1RhYmxlIHN0YXJ0cyBpbml0aWFsaXppbmcKICAgICAgICAgICAgICAgIGluaXRpYWxpemVkOiAnZm9vdGFibGVfaW5pdGlhbGl6ZWQnLCAgICAgICAgICAgICAgICAgICAgLy9maXJlcyBhZnRlciBGb29UYWJsZSBoYXMgZmluaXNoZWQgaW5pdGlhbGl6aW5nCiAgICAgICAgICAgICAgICByZXNpemluZzogJ2Zvb3RhYmxlX3Jlc2l6aW5nJywgICAgICAgICAgICAgICAgICAgICAgICAgIC8vZmlyZXMgYmVmb3JlIEZvb1RhYmxlIHJlc2l6ZXMKICAgICAgICAgICAgICAgIHJlc2l6ZWQ6ICdmb290YWJsZV9yZXNpemVkJywgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy9maXJlcyBhZnRlciBGb29UYWJsZSBoYXMgcmVzaXplZAogICAgICAgICAgICAgICAgcmVkcmF3bjogJ2Zvb3RhYmxlX3JlZHJhd24nLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAvL2ZpcmVzIGFmdGVyIEZvb1RhYmxlIGhhcyByZWRyYXduCiAgICAgICAgICAgICAgICBicmVha3BvaW50OiAnZm9vdGFibGVfYnJlYWtwb2ludCcsICAgICAgICAgICAgICAgICAgICAgIC8vZmlyZXMgaW5zaWRlIHRoZSByZXNpemUgZnVuY3Rpb24sIHdoZW4gYSBicmVha3BvaW50IGlzIGhpdAogICAgICAgICAgICAgICAgY29sdW1uRGF0YTogJ2Zvb3RhYmxlX2NvbHVtbl9kYXRhJywgICAgICAgICAgICAgICAgICAgICAvL2ZpcmVzIHdoZW4gc2V0dGluZyB1cCBjb2x1bW4gZGF0YS4gUGx1Z2lucyBzaG91bGQgdXNlIHRoaXMgZXZlbnQgdG8gY2FwdHVyZSB0aGVpciBvd24gaW5mbyBhYm91dCBhIGNvbHVtbgogICAgICAgICAgICAgICAgcm93RGV0YWlsVXBkYXRpbmc6ICdmb290YWJsZV9yb3dfZGV0YWlsX3VwZGF0aW5nJywgICAgICAvL2ZpcmVzIGJlZm9yZSBhIGRldGFpbCByb3cgaXMgdXBkYXRlZAogICAgICAgICAgICAgICAgcm93RGV0YWlsVXBkYXRlZDogJ2Zvb3RhYmxlX3Jvd19kZXRhaWxfdXBkYXRlZCcsICAgICAgICAvL2ZpcmVzIHdoZW4gYSBkZXRhaWwgcm93IGlzIGJlaW5nIHVwZGF0ZWQKICAgICAgICAgICAgICAgIHJvd0NvbGxhcHNlZDogJ2Zvb3RhYmxlX3Jvd19jb2xsYXBzZWQnLCAgICAgICAgICAgICAgICAgLy9maXJlcyB3aGVuIGEgcm93IGlzIGNvbGxhcHNlZAogICAgICAgICAgICAgICAgcm93RXhwYW5kZWQ6ICdmb290YWJsZV9yb3dfZXhwYW5kZWQnLCAgICAgICAgICAgICAgICAgICAvL2ZpcmVzIHdoZW4gYSByb3cgaXMgZXhwYW5kZWQKICAgICAgICAgICAgICAgIHJvd1JlbW92ZWQ6ICdmb290YWJsZV9yb3dfcmVtb3ZlZCcsICAgICAgICAgICAgICAgICAgICAgLy9maXJlcyB3aGVuIGEgcm93IGlzIHJlbW92ZWQKICAgICAgICAgICAgICAgIHJlc2V0OiAnZm9vdGFibGVfcmVzZXQnICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy9maXJlcyB3aGVuIEZvb1RhYmxlIGlzIHJlc2V0CiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIGRlYnVnOiBmYWxzZSwgLy8gV2hldGhlciBvciBub3QgdG8gbG9nIGluZm9ybWF0aW9uIHRvIHRoZSBjb25zb2xlLgogICAgICAgICAgICBsb2c6IG51bGwKICAgICAgICB9LAoKICAgICAgICB2ZXJzaW9uOiB7CiAgICAgICAgICAgIG1ham9yOiAwLCBtaW5vcjogNSwKICAgICAgICAgICAgdG9TdHJpbmc6IGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgICAgIHJldHVybiB3LmZvb3RhYmxlLnZlcnNpb24ubWFqb3IgKyAnLicgKyB3LmZvb3RhYmxlLnZlcnNpb24ubWlub3I7CiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIHBhcnNlOiBmdW5jdGlvbiAoc3RyKSB7CiAgICAgICAgICAgICAgICB2ZXJzaW9uID0gLyhcZCspXC4/KFxkKyk/XC4/KFxkKyk/Ly5leGVjKHN0cik7CiAgICAgICAgICAgICAgICByZXR1cm4gewogICAgICAgICAgICAgICAgICAgIG1ham9yOiBwYXJzZUludCh2ZXJzaW9uWzFdLCAxMCkgfHwgMCwKICAgICAgICAgICAgICAgICAgICBtaW5vcjogcGFyc2VJbnQodmVyc2lvblsyXSwgMTApIHx8IDAsCiAgICAgICAgICAgICAgICAgICAgcGF0Y2g6IHBhcnNlSW50KHZlcnNpb25bM10sIDEwKSB8fCAwCiAgICAgICAgICAgICAgICB9OwogICAgICAgICAgICB9CiAgICAgICAgfSwKCiAgICAgICAgcGx1Z2luczogewogICAgICAgICAgICBfdmFsaWRhdGU6IGZ1bmN0aW9uIChwbHVnaW4pIHsKICAgICAgICAgICAgICAgIC8vLzxzdW1tYXJ5PlNpbXBsZSB2YWxpZGF0aW9uIG9mIHRoZSA8cGFyYW1yZWYgbmFtZT0icGx1Z2luIi8+IHRvIG1ha2Ugc3VyZSBhbnkgbWVtYmVycyBjYWxsZWQgYnkgRm9vVGFibGUgYWN0dWFsbHkgZXhpc3QuPC9zdW1tYXJ5PgogICAgICAgICAgICAgICAgLy8vPHBhcmFtIG5hbWU9InBsdWdpbiI+VGhlIG9iamVjdCBkZWZpbmluZyB0aGUgcGx1Z2luLCB0aGlzIHNob3VsZCBpbXBsZW1lbnQgYSBzdHJpbmcgcHJvcGVydHkgY2FsbGVkICJuYW1lIiBhbmQgYSBmdW5jdGlvbiBjYWxsZWQgImluaXQiLjwvcGFyYW0+CgogICAgICAgICAgICAgICAgaWYgKCEkLmlzRnVuY3Rpb24ocGx1Z2luKSkgewogICAgICAgICAgICAgICAgICBpZiAody5mb290YWJsZS5vcHRpb25zLmRlYnVnID09PSB0cnVlKSBjb25zb2xlLmVycm9yKCdWYWxpZGF0aW9uIGZhaWxlZCwgZXhwZWN0ZWQgdHlwZSAiZnVuY3Rpb24iLCByZWNlaXZlZCB0eXBlICJ7MH0iLicsIHR5cGVvZiBwbHVnaW4pOwogICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB2YXIgcCA9IG5ldyBwbHVnaW4oKTsKICAgICAgICAgICAgICAgIGlmICh0eXBlb2YgcFsnbmFtZSddICE9PSAnc3RyaW5nJykgewogICAgICAgICAgICAgICAgICAgIGlmICh3LmZvb3RhYmxlLm9wdGlvbnMuZGVidWcgPT09IHRydWUpIGNvbnNvbGUuZXJyb3IoJ1ZhbGlkYXRpb24gZmFpbGVkLCBwbHVnaW4gZG9lcyBub3QgaW1wbGVtZW50IGEgc3RyaW5nIHByb3BlcnR5IGNhbGxlZCAibmFtZSIuJywgcCk7CiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgaWYgKCEkLmlzRnVuY3Rpb24ocFsnaW5pdCddKSkgewogICAgICAgICAgICAgICAgICAgIGlmICh3LmZvb3RhYmxlLm9wdGlvbnMuZGVidWcgPT09IHRydWUpIGNvbnNvbGUuZXJyb3IoJ1ZhbGlkYXRpb24gZmFpbGVkLCBwbHVnaW4gIicgKyBwWyduYW1lJ10gKyAnIiBkb2VzIG5vdCBpbXBsZW1lbnQgYSBmdW5jdGlvbiBjYWxsZWQgImluaXQiLicsIHApOwogICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIGlmICh3LmZvb3RhYmxlLm9wdGlvbnMuZGVidWcgPT09IHRydWUpIGNvbnNvbGUubG9nKCdWYWxpZGF0aW9uIHN1Y2NlZWRlZCBmb3IgcGx1Z2luICInICsgcFsnbmFtZSddICsgJyIuJywgcCk7CiAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICAgICAgfSwKICAgICAgICAgICAgcmVnaXN0ZXJlZDogW10sIC8vIEFuIGFycmF5IGNvbnRhaW5pbmcgYWxsIHJlZ2lzdGVyZWQgcGx1Z2lucy4KICAgICAgICAgICAgcmVnaXN0ZXI6IGZ1bmN0aW9uIChwbHVnaW4sIG9wdGlvbnMpIHsKICAgICAgICAgICAgICAgIC8vLzxzdW1tYXJ5PlJlZ2lzdGVycyBhIDxwYXJhbXJlZiBuYW1lPSJwbHVnaW4iLz4gYW5kIGl0cyBkZWZhdWx0IDxwYXJhbXJlZiBuYW1lPSJvcHRpb25zIi8+IHdpdGggRm9vVGFibGUuPC9zdW1tYXJ5PgogICAgICAgICAgICAgICAgLy8vPHBhcmFtIG5hbWU9InBsdWdpbiI+VGhlIHBsdWdpbiB0aGF0IHNob3VsZCBpbXBsZW1lbnQgYSBzdHJpbmcgcHJvcGVydHkgY2FsbGVkICJuYW1lIiBhbmQgYSBmdW5jdGlvbiBjYWxsZWQgImluaXQiLjwvcGFyYW0+CiAgICAgICAgICAgICAgICAvLy88cGFyYW0gbmFtZT0ib3B0aW9ucyI+VGhlIGRlZmF1bHQgb3B0aW9ucyB0byBtZXJnZSB3aXRoIHRoZSBGb29UYWJsZSdzIGJhc2Ugb3B0aW9ucy48L3BhcmFtPgoKICAgICAgICAgICAgICAgIGlmICh3LmZvb3RhYmxlLnBsdWdpbnMuX3ZhbGlkYXRlKHBsdWdpbikpIHsKICAgICAgICAgICAgICAgICAgICB3LmZvb3RhYmxlLnBsdWdpbnMucmVnaXN0ZXJlZC5wdXNoKHBsdWdpbik7CiAgICAgICAgICAgICAgICAgICAgaWYgKHR5cGVvZiBvcHRpb25zID09PSAnb2JqZWN0JykgJC5leHRlbmQodHJ1ZSwgdy5mb290YWJsZS5vcHRpb25zLCBvcHRpb25zKTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfSwKICAgICAgICAgICAgbG9hZDogZnVuY3Rpb24oaW5zdGFuY2UpewogICAgICAgICAgICAgIHZhciBsb2FkZWQgPSBbXSwgcmVnaXN0ZXJlZCwgaTsKICAgICAgICAgICAgICBmb3IoaSA9IDA7IGkgPCB3LmZvb3RhYmxlLnBsdWdpbnMucmVnaXN0ZXJlZC5sZW5ndGg7IGkrKyl7CiAgICAgICAgICAgICAgICB0cnkgewogICAgICAgICAgICAgICAgICByZWdpc3RlcmVkID0gdy5mb290YWJsZS5wbHVnaW5zLnJlZ2lzdGVyZWRbaV07CiAgICAgICAgICAgICAgICAgIGxvYWRlZC5wdXNoKG5ldyByZWdpc3RlcmVkKGluc3RhbmNlKSk7CiAgICAgICAgICAgICAgICB9IGNhdGNoIChlcnIpIHsKICAgICAgICAgICAgICAgICAgaWYgKHcuZm9vdGFibGUub3B0aW9ucy5kZWJ1ZyA9PT0gdHJ1ZSkgY29uc29sZS5lcnJvcihlcnIpOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIH0KICAgICAgICAgICAgICByZXR1cm4gbG9hZGVkOwogICAgICAgICAgICB9LAogICAgICAgICAgICBpbml0OiBmdW5jdGlvbiAoaW5zdGFuY2UpIHsKICAgICAgICAgICAgICAgIC8vLzxzdW1tYXJ5Pkxvb3BzIHRocm91Z2ggYWxsIHJlZ2lzdGVyZWQgcGx1Z2lucyBhbmQgY2FsbHMgdGhlICJpbml0IiBtZXRob2Qgc3VwcGx5aW5nIHRoZSBjdXJyZW50IDxwYXJhbXJlZiBuYW1lPSJpbnN0YW5jZSIvPiBvZiB0aGUgRm9vVGFibGUgYXMgdGhlIGZpcnN0IHBhcmFtZXRlci48L3N1bW1hcnk+CiAgICAgICAgICAgICAgICAvLy88cGFyYW0gbmFtZT0iaW5zdGFuY2UiPlRoZSBjdXJyZW50IGluc3RhbmNlIG9mIHRoZSBGb29UYWJsZSB0aGF0IHRoZSBwbHVnaW4gaXMgYmVpbmcgaW5pdGlhbGl6ZWQgZm9yLjwvcGFyYW0+CgogICAgICAgICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBpbnN0YW5jZS5wbHVnaW5zLmxlbmd0aDsgaSsrKSB7CiAgICAgICAgICAgICAgICAgICAgdHJ5IHsKICAgICAgICAgICAgICAgICAgICAgIGluc3RhbmNlLnBsdWdpbnNbaV1bJ2luaXQnXShpbnN0YW5jZSk7CiAgICAgICAgICAgICAgICAgICAgfSBjYXRjaCAoZXJyKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIGlmICh3LmZvb3RhYmxlLm9wdGlvbnMuZGVidWcgPT09IHRydWUpIGNvbnNvbGUuZXJyb3IoZXJyKTsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICB9OwoKICAgIHZhciBpbnN0YW5jZUNvdW50ID0gMDsKCiAgICAkLmZuLmZvb3RhYmxlID0gZnVuY3Rpb24gKG9wdGlvbnMpIHsKICAgICAgICAvLy88c3VtbWFyeT5UaGUgbWFpbiBjb25zdHJ1Y3RvciBjYWxsIHRvIGluaXRpYWxpemUgdGhlIHBsdWdpbiB1c2luZyB0aGUgc3VwcGxpZWQgPHBhcmFtcmVmIG5hbWU9Im9wdGlvbnMiLz4uPC9zdW1tYXJ5PgogICAgICAgIC8vLzxwYXJhbSBuYW1lPSJvcHRpb25zIj4KICAgICAgICAvLy88cGFyYT5BIEpTT04gb2JqZWN0IGNvbnRhaW5pbmcgdXNlciBkZWZpbmVkIG9wdGlvbnMgZm9yIHRoZSBwbHVnaW4gdG8gdXNlLiBBbnkgb3B0aW9ucyBub3Qgc3VwcGxpZWQgd2lsbCBoYXZlIGEgZGVmYXVsdCB2YWx1ZSBhc3NpZ25lZC48L3BhcmE+CiAgICAgICAgLy8vPHBhcmE+Q2hlY2sgdGhlIGRvY3VtZW50YXRpb24gb3IgdGhlIGRlZmF1bHQgb3B0aW9ucyBvYmplY3QgYWJvdmUgZm9yIG1vcmUgaW5mb3JtYXRpb24gb24gYXZhaWxhYmxlIG9wdGlvbnMuPC9wYXJhPgogICAgICAgIC8vLzwvcGFyYW0+CgogICAgICAgIG9wdGlvbnMgPSBvcHRpb25zIHx8IHt9OwogICAgICAgIHZhciBvID0gJC5leHRlbmQodHJ1ZSwge30sIHcuZm9vdGFibGUub3B0aW9ucywgb3B0aW9ucyk7IC8vbWVyZ2UgdXNlciBhbmQgZGVmYXVsdCBvcHRpb25zCiAgICAgICAgcmV0dXJuIHRoaXMuZWFjaChmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgIGluc3RhbmNlQ291bnQrKzsKICAgICAgICAgICAgdmFyIGZvb3RhYmxlID0gbmV3IEZvb3RhYmxlKHRoaXMsIG8sIGluc3RhbmNlQ291bnQpOwoJCQkkKHRoaXMpLmRhdGEoJ2Zvb3RhYmxlJywgZm9vdGFibGUpOwogICAgICAgIH0pOwogICAgfTsKCiAgICAvL2hlbHBlciBmb3IgdXNpbmcgdGltZW91dHMKICAgIGZ1bmN0aW9uIFRpbWVyKCkgewogICAgICAgIC8vLzxzdW1tYXJ5PlNpbXBsZSB0aW1lciBvYmplY3QgY3JlYXRlZCBhcm91bmQgYSB0aW1lb3V0Ljwvc3VtbWFyeT4KICAgICAgICB2YXIgdCA9IHRoaXM7CiAgICAgICAgdC5pZCA9IG51bGw7CiAgICAgICAgdC5idXN5ID0gZmFsc2U7CiAgICAgICAgdC5zdGFydCA9IGZ1bmN0aW9uIChjb2RlLCBtaWxsaXNlY29uZHMpIHsKICAgICAgICAgICAgLy8vPHN1bW1hcnk+U3RhcnRzIHRoZSB0aW1lciBhbmQgd2FpdHMgdGhlIHNwZWNpZmllZCBhbW91bnQgb2YgPHBhcmFtcmVmIG5hbWU9Im1pbGxpc2Vjb25kcyIvPiBiZWZvcmUgZXhlY3V0aW5nIHRoZSBzdXBwbGllZCA8cGFyYW1yZWYgbmFtZT0iY29kZSIvPi48L3N1bW1hcnk+CiAgICAgICAgICAgIC8vLzxwYXJhbSBuYW1lPSJjb2RlIj5UaGUgY29kZSB0byBleGVjdXRlIG9uY2UgdGhlIHRpbWVyIHJ1bnMgb3V0LjwvcGFyYW0+CiAgICAgICAgICAgIC8vLzxwYXJhbSBuYW1lPSJtaWxsaXNlY29uZHMiPlRoZSB0aW1lIGluIG1pbGxpc2Vjb25kcyB0byB3YWl0IGJlZm9yZSBleGVjdXRpbmcgdGhlIHN1cHBsaWVkIDxwYXJhbXJlZiBuYW1lPSJjb2RlIi8+LjwvcGFyYW0+CgogICAgICAgICAgICBpZiAodC5idXN5KSB7CiAgICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAgIH0KICAgICAgICAgICAgdC5zdG9wKCk7CiAgICAgICAgICAgIHQuaWQgPSBzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgICAgIGNvZGUoKTsKICAgICAgICAgICAgICAgIHQuaWQgPSBudWxsOwogICAgICAgICAgICAgICAgdC5idXN5ID0gZmFsc2U7CiAgICAgICAgICAgIH0sIG1pbGxpc2Vjb25kcyk7CiAgICAgICAgICAgIHQuYnVzeSA9IHRydWU7CiAgICAgICAgfTsKICAgICAgICB0LnN0b3AgPSBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgIC8vLzxzdW1tYXJ5PlN0b3BzIHRoZSB0aW1lciBpZiBpdHMgcnVubm5pbmcgYW5kIHJlc2V0cyBpdCBiYWNrIHRvIGl0cyBzdGFydGluZyBzdGF0ZS48L3N1bW1hcnk+CgogICAgICAgICAgICBpZiAodC5pZCAhPT0gbnVsbCkgewogICAgICAgICAgICAgICAgY2xlYXJUaW1lb3V0KHQuaWQpOwogICAgICAgICAgICAgICAgdC5pZCA9IG51bGw7CiAgICAgICAgICAgICAgICB0LmJ1c3kgPSBmYWxzZTsKICAgICAgICAgICAgfQogICAgICAgIH07CiAgICB9CgogICAgZnVuY3Rpb24gRm9vdGFibGUodCwgbywgaWQpIHsKICAgICAgICAvLy88c3VtbWFyeT5Jbml0cyBhIG5ldyBpbnN0YW5jZSBvZiB0aGUgcGx1Z2luLjwvc3VtbWFyeT4KICAgICAgICAvLy88cGFyYW0gbmFtZT0idCI+VGhlIG1haW4gdGFibGUgZWxlbWVudCB0byBhcHBseSB0aGlzIHBsdWdpbiB0by48L3BhcmFtPgogICAgICAgIC8vLzxwYXJhbSBuYW1lPSJvIj5UaGUgb3B0aW9ucyBzdXBwbGllZCB0byB0aGUgcGx1Z2luLiBDaGVjayB0aGUgZGVmYXVsdHMgb2JqZWN0IHRvIHNlZSBhbGwgYXZhaWxhYmxlIG9wdGlvbnMuPC9wYXJhbT4KICAgICAgICAvLy88cGFyYW0gbmFtZT0iaWQiPlRoZSBpZCB0byBhc3NpZ24gdG8gdGhpcyBpbnN0YW5jZSBvZiB0aGUgcGx1Z2luLjwvcGFyYW0+CgogICAgICAgIHZhciBmdCA9IHRoaXM7CiAgICAgICAgZnQuaWQgPSBpZDsKICAgICAgICBmdC50YWJsZSA9IHQ7CiAgICAgICAgZnQub3B0aW9ucyA9IG87CiAgICAgICAgZnQuYnJlYWtwb2ludHMgPSBbXTsKICAgICAgICBmdC5icmVha3BvaW50TmFtZXMgPSAnJzsKICAgICAgICBmdC5jb2x1bW5zID0ge307CiAgICAgICAgZnQucGx1Z2lucyA9IHcuZm9vdGFibGUucGx1Z2lucy5sb2FkKGZ0KTsKCiAgICAgICAgdmFyIG9wdCA9IGZ0Lm9wdGlvbnMsCiAgICAgICAgICAgIGNscyA9IG9wdC5jbGFzc2VzLAogICAgICAgICAgICBldnQgPSBvcHQuZXZlbnRzLAogICAgICAgICAgICB0cmcgPSBvcHQudHJpZ2dlcnMsCiAgICAgICAgICAgIGluZGV4T2Zmc2V0ID0gMDsKCiAgICAgICAgLy8gVGhpcyBvYmplY3Qgc2ltcGx5IGhvdXNlcyBhbGwgdGhlIHRpbWVycyB1c2VkIGluIHRoZSBGb29UYWJsZS4KICAgICAgICBmdC50aW1lcnMgPSB7CiAgICAgICAgICAgIHJlc2l6ZTogbmV3IFRpbWVyKCksCiAgICAgICAgICAgIHJlZ2lzdGVyOiBmdW5jdGlvbiAobmFtZSkgewogICAgICAgICAgICAgICAgZnQudGltZXJzW25hbWVdID0gbmV3IFRpbWVyKCk7CiAgICAgICAgICAgICAgICByZXR1cm4gZnQudGltZXJzW25hbWVdOwogICAgICAgICAgICB9CiAgICAgICAgfTsKCiAgICAgICAgZnQuaW5pdCA9IGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgdmFyICR3aW5kb3cgPSAkKHcpLCAkdGFibGUgPSAkKGZ0LnRhYmxlKTsKCiAgICAgICAgICAgIHcuZm9vdGFibGUucGx1Z2lucy5pbml0KGZ0KTsKCiAgICAgICAgICAgIGlmICgkdGFibGUuaGFzQ2xhc3MoY2xzLmxvYWRlZCkpIHsKICAgICAgICAgICAgICAgIC8vYWxyZWFkeSBsb2FkZWQgRm9vVGFibGUgZm9yIHRoZSB0YWJsZSwgc28gZG9uJ3QgaW5pdCBhZ2FpbgogICAgICAgICAgICAgICAgZnQucmFpc2UoZXZ0LmFscmVhZHlJbml0aWFsaXplZCk7CiAgICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIC8vcmFpc2UgdGhlIGluaXRpYWxpemluZyBldmVudAogICAgICAgICAgICBmdC5yYWlzZShldnQuaW5pdGlhbGl6aW5nKTsKCiAgICAgICAgICAgICR0YWJsZS5hZGRDbGFzcyhjbHMubG9hZGluZyk7CgogICAgICAgICAgICAvLyBHZXQgdGhlIGNvbHVtbiBkYXRhIG9uY2UgZm9yIHRoZSBsaWZlIHRpbWUgb2YgdGhlIHBsdWdpbgogICAgICAgICAgICAkdGFibGUuZmluZChvcHQuY29sdW1uRGF0YVNlbGVjdG9yKS5lYWNoKGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgICAgIHZhciBkYXRhID0gZnQuZ2V0Q29sdW1uRGF0YSh0aGlzKTsKICAgICAgICAgICAgICAgIGZ0LmNvbHVtbnNbZGF0YS5pbmRleF0gPSBkYXRhOwogICAgICAgICAgICB9KTsKCiAgICAgICAgICAgIC8vIENyZWF0ZSBhIG5pY2UgZnJpZW5kbHkgYXJyYXkgdG8gd29yayB3aXRoIG91dCBvZiB0aGUgYnJlYWtwb2ludHMgb2JqZWN0LgogICAgICAgICAgICBmb3IgKHZhciBuYW1lIGluIG9wdC5icmVha3BvaW50cykgewogICAgICAgICAgICAgICAgZnQuYnJlYWtwb2ludHMucHVzaCh7ICduYW1lJzogbmFtZSwgJ3dpZHRoJzogb3B0LmJyZWFrcG9pbnRzW25hbWVdIH0pOwogICAgICAgICAgICAgICAgZnQuYnJlYWtwb2ludE5hbWVzICs9IChuYW1lICsgJyAnKTsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgLy8gU29ydCB0aGUgYnJlYWtwb2ludHMgc28gdGhlIHNtYWxsZXN0IGlzIGNoZWNrZWQgZmlyc3QKICAgICAgICAgICAgZnQuYnJlYWtwb2ludHMuc29ydChmdW5jdGlvbiAoYSwgYikgewogICAgICAgICAgICAgICAgcmV0dXJuIGFbJ3dpZHRoJ10gLSBiWyd3aWR0aCddOwogICAgICAgICAgICB9KTsKCiAgICAgICAgICAgICR0YWJsZQogICAgICAgICAgICAgICAgLnVuYmluZCh0cmcuaW5pdGlhbGl6ZSkKICAgICAgICAgICAgICAgIC8vYmluZCB0byBGb29UYWJsZSBpbml0aWFsaXplIHRyaWdnZXIKICAgICAgICAgICAgICAgIC5iaW5kKHRyZy5pbml0aWFsaXplLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICAgICAgICAgLy9yZW1vdmUgcHJldmlvdXMgInN0YXRlIiAodG8gImZvcmNlIiBhIHJlc2l6ZSkKICAgICAgICAgICAgICAgICAgICAkdGFibGUucmVtb3ZlRGF0YSgnZm9vdGFibGVfaW5mbycpOwogICAgICAgICAgICAgICAgICAgICR0YWJsZS5kYXRhKCdicmVha3BvaW50JywgJycpOwoKICAgICAgICAgICAgICAgICAgICAvL3RyaWdnZXIgdGhlIEZvb1RhYmxlIHJlc2l6ZQogICAgICAgICAgICAgICAgICAgICR0YWJsZS50cmlnZ2VyKHRyZy5yZXNpemUpOwoKICAgICAgICAgICAgICAgICAgICAvL3JlbW92ZSB0aGUgbG9hZGluZyBjbGFzcwogICAgICAgICAgICAgICAgICAgICR0YWJsZS5yZW1vdmVDbGFzcyhjbHMubG9hZGluZyk7CgogICAgICAgICAgICAgICAgICAgIC8vYWRkIHRoZSBGb29UYWJsZSBhbmQgbG9hZGVkIGNsYXNzCiAgICAgICAgICAgICAgICAgICAgJHRhYmxlLmFkZENsYXNzKGNscy5sb2FkZWQpLmFkZENsYXNzKGNscy5tYWluKTsKCiAgICAgICAgICAgICAgICAgICAgLy9yYWlzZSB0aGUgaW5pdGlhbGl6ZWQgZXZlbnQKICAgICAgICAgICAgICAgICAgICBmdC5yYWlzZShldnQuaW5pdGlhbGl6ZWQpOwogICAgICAgICAgICAgICAgfSkKICAgICAgICAgICAgICAgIC51bmJpbmQodHJnLnJlZHJhdykKICAgICAgICAgICAgICAgIC8vYmluZCB0byBGb29UYWJsZSByZWRyYXcgdHJpZ2dlcgogICAgICAgICAgICAgICAgLmJpbmQodHJnLnJlZHJhdywgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgICAgICAgIGZ0LnJlZHJhdygpOwogICAgICAgICAgICAgICAgfSkKICAgICAgICAgICAgICAgIC51bmJpbmQodHJnLnJlc2l6ZSkKICAgICAgICAgICAgICAgIC8vYmluZCB0byBGb29UYWJsZSByZXNpemUgdHJpZ2dlcgogICAgICAgICAgICAgICAgLmJpbmQodHJnLnJlc2l6ZSwgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgICAgICAgIGZ0LnJlc2l6ZSgpOwogICAgICAgICAgICAgICAgfSkKICAgICAgICAgICAgICAgIC51bmJpbmQodHJnLmV4cGFuZEZpcnN0Um93KQogICAgICAgICAgICAgICAgLy9iaW5kIHRvIEZvb1RhYmxlIGV4cGFuZEZpcnN0Um93IHRyaWdnZXIKICAgICAgICAgICAgICAgIC5iaW5kKHRyZy5leHBhbmRGaXJzdFJvdywgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgICAgICAgICR0YWJsZS5maW5kKG9wdC50b2dnbGVTZWxlY3RvcikuZmlyc3QoKS5ub3QoJy4nICsgY2xzLmRldGFpbFNob3cpLnRyaWdnZXIodHJnLnRvZ2dsZVJvdyk7CiAgICAgICAgICAgICAgICB9KQogICAgICAgICAgICAgICAgLnVuYmluZCh0cmcuZXhwYW5kQWxsKQogICAgICAgICAgICAgICAgLy9iaW5kIHRvIEZvb1RhYmxlIGV4cGFuZEZpcnN0Um93IHRyaWdnZXIKICAgICAgICAgICAgICAgIC5iaW5kKHRyZy5leHBhbmRBbGwsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgICAgICAgICAkdGFibGUuZmluZChvcHQudG9nZ2xlU2VsZWN0b3IpLm5vdCgnLicgKyBjbHMuZGV0YWlsU2hvdykudHJpZ2dlcih0cmcudG9nZ2xlUm93KTsKICAgICAgICAgICAgICAgIH0pCiAgICAgICAgICAgICAgICAudW5iaW5kKHRyZy5jb2xsYXBzZUFsbCkKICAgICAgICAgICAgICAgIC8vYmluZCB0byBGb29UYWJsZSBleHBhbmRGaXJzdFJvdyB0cmlnZ2VyCiAgICAgICAgICAgICAgICAuYmluZCh0cmcuY29sbGFwc2VBbGwsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgICAgICAgICAkdGFibGUuZmluZCgnLicgKyBjbHMuZGV0YWlsU2hvdykudHJpZ2dlcih0cmcudG9nZ2xlUm93KTsKICAgICAgICAgICAgICAgIH0pOwoKICAgICAgICAgICAgLy90cmlnZ2VyIGEgRm9vVGFibGUgaW5pdGlhbGl6ZQogICAgICAgICAgICAkdGFibGUudHJpZ2dlcih0cmcuaW5pdGlhbGl6ZSk7CgogICAgICAgICAgICAvL2JpbmQgdG8gd2luZG93IHJlc2l6ZQogICAgICAgICAgICAkd2luZG93CiAgICAgICAgICAgICAgICAuYmluZCgncmVzaXplLmZvb3RhYmxlJywgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgICAgICAgIGZ0LnRpbWVycy5yZXNpemUuc3RvcCgpOwogICAgICAgICAgICAgICAgICAgIGZ0LnRpbWVycy5yZXNpemUuc3RhcnQoZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgICAgICAgICAgICBmdC5yYWlzZSh0cmcucmVzaXplKTsKICAgICAgICAgICAgICAgICAgICB9LCBvcHQuZGVsYXkpOwogICAgICAgICAgICAgICAgfSk7CiAgICAgICAgfTsKCiAgICAgICAgZnQuYWRkUm93VG9nZ2xlID0gZnVuY3Rpb24gKCkgewogICAgICAgICAgICBpZiAoIW9wdC5hZGRSb3dUb2dnbGUpIHJldHVybjsKCiAgICAgICAgICAgIHZhciAkdGFibGUgPSAkKGZ0LnRhYmxlKSwKICAgICAgICAgICAgICAgIGhhc1RvZ2dsZUNvbHVtbiA9IGZhbHNlOwoKICAgICAgICAgICAgLy9maXJzdCByZW1vdmUgYWxsIHRvZ2dsZSBzcGFucwogICAgICAgICAgICAkdGFibGUuZmluZCgnc3Bhbi4nICsgY2xzLnRvZ2dsZSkucmVtb3ZlKCk7CgogICAgICAgICAgICBmb3IgKHZhciBjIGluIGZ0LmNvbHVtbnMpIHsKICAgICAgICAgICAgICAgIHZhciBjb2wgPSBmdC5jb2x1bW5zW2NdOwogICAgICAgICAgICAgICAgaWYgKGNvbC50b2dnbGUpIHsKICAgICAgICAgICAgICAgICAgICBoYXNUb2dnbGVDb2x1bW4gPSB0cnVlOwogICAgICAgICAgICAgICAgICAgIHZhciBzZWxlY3RvciA9ICc+IHRib2R5ID4gdHI6bm90KC4nICsgY2xzLmRldGFpbCArICcsLicgKyBjbHMuZGlzYWJsZWQgKyAnKSA+IHRkOm50aC1jaGlsZCgnICsgKHBhcnNlSW50KGNvbC5pbmRleCwgMTApICsgMSkgKyAnKSc7CiAgICAgICAgICAgICAgICAgICAgJHRhYmxlLmZpbmQoc2VsZWN0b3IpLm5vdCgnLicgKyBjbHMuZGV0YWlsQ2VsbCkucHJlcGVuZCgkKG9wdC50b2dnbGVIVE1MRWxlbWVudCkuYWRkQ2xhc3MoY2xzLnRvZ2dsZSkpOwogICAgICAgICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgICAgICAvL2NoZWNrIGlmIHdlIGhhdmUgYW4gdG9nZ2xlIGNvbHVtbi4gSWYgbm90IHRoZW4gYWRkIGl0IHRvIHRoZSBmaXJzdCBjb2x1bW4ganVzdCB0byBiZSBzYWZlCiAgICAgICAgICAgIGlmICghaGFzVG9nZ2xlQ29sdW1uKSB7CiAgICAgICAgICAgICAgICAkdGFibGUKICAgICAgICAgICAgICAgICAgICAuZmluZCgnPiB0Ym9keSA+IHRyOm5vdCguJyArIGNscy5kZXRhaWwgKyAnLC4nICsgY2xzLmRpc2FibGVkICsgJykgPiB0ZDpmaXJzdC1jaGlsZCcpCiAgICAgICAgICAgICAgICAgICAgLm5vdCgnLicgKyBjbHMuZGV0YWlsQ2VsbCkKICAgICAgICAgICAgICAgICAgICAucHJlcGVuZCgkKG9wdC50b2dnbGVIVE1MRWxlbWVudCkuYWRkQ2xhc3MoY2xzLnRvZ2dsZSkpOwogICAgICAgICAgICB9CiAgICAgICAgfTsKCiAgICAgICAgZnQuc2V0Q29sdW1uQ2xhc3NlcyA9IGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgJHRhYmxlID0gJChmdC50YWJsZSk7CiAgICAgICAgICAgIGZvciAodmFyIGMgaW4gZnQuY29sdW1ucykgewogICAgICAgICAgICAgICAgdmFyIGNvbCA9IGZ0LmNvbHVtbnNbY107CiAgICAgICAgICAgICAgICBpZiAoY29sLmNsYXNzTmFtZSAhPT0gbnVsbCkgewogICAgICAgICAgICAgICAgICAgIHZhciBzZWxlY3RvciA9ICcnLCBmaXJzdCA9IHRydWU7CiAgICAgICAgICAgICAgICAgICAgJC5lYWNoKGNvbC5tYXRjaGVzLCBmdW5jdGlvbiAobSwgbWF0Y2gpIHsgLy9zdXBwb3J0IGZvciBjb2xzcGFucwogICAgICAgICAgICAgICAgICAgICAgICBpZiAoIWZpcnN0KSBzZWxlY3RvciArPSAnLCAnOwogICAgICAgICAgICAgICAgICAgICAgICBzZWxlY3RvciArPSAnPiB0Ym9keSA+IHRyOm5vdCguJyArIGNscy5kZXRhaWwgKyAnKSA+IHRkOm50aC1jaGlsZCgnICsgKHBhcnNlSW50KG1hdGNoLCAxMCkgKyAxKSArICcpJzsKICAgICAgICAgICAgICAgICAgICAgICAgZmlyc3QgPSBmYWxzZTsKICAgICAgICAgICAgICAgICAgICB9KTsKICAgICAgICAgICAgICAgICAgICAvL2FkZCB0aGUgY2xhc3NOYW1lIHRvIHRoZSBjZWxscyBzcGVjaWZpZWQgYnkgZGF0YS1jbGFzcz0iYmxhaCIKICAgICAgICAgICAgICAgICAgICAkdGFibGUuZmluZChzZWxlY3Rvcikubm90KCcuJyArIGNscy5kZXRhaWxDZWxsKS5hZGRDbGFzcyhjb2wuY2xhc3NOYW1lKTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgIH07CgogICAgICAgIC8vbW92ZWQgdGhpcyBvdXQgaW50byBpdCdzIG93biBmdW5jdGlvbiBzbyB0aGF0IGl0IGNhbiBiZSBjYWxsZWQgZnJvbSBvdGhlciBhZGQtb25zCiAgICAgICAgZnQuYmluZFRvZ2dsZVNlbGVjdG9ycyA9IGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgdmFyICR0YWJsZSA9ICQoZnQudGFibGUpOwoKICAgICAgICAgICAgaWYgKCFmdC5oYXNBbnlCcmVha3BvaW50Q29sdW1uKCkpIHJldHVybjsKCiAgICAgICAgICAgICR0YWJsZS5maW5kKG9wdC50b2dnbGVTZWxlY3RvcikudW5iaW5kKHRyZy50b2dnbGVSb3cpLmJpbmQodHJnLnRvZ2dsZVJvdywgZnVuY3Rpb24gKGUpIHsKICAgICAgICAgICAgICAgIHZhciAkcm93ID0gJCh0aGlzKS5pcygndHInKSA/ICQodGhpcykgOiAkKHRoaXMpLnBhcmVudHMoJ3RyOmZpcnN0Jyk7CiAgICAgICAgICAgICAgICBmdC50b2dnbGVEZXRhaWwoJHJvdyk7CiAgICAgICAgICAgIH0pOwoKICAgICAgICAgICAgJHRhYmxlLmZpbmQob3B0LnRvZ2dsZVNlbGVjdG9yKS51bmJpbmQoJ2NsaWNrLmZvb3RhYmxlJykuYmluZCgnY2xpY2suZm9vdGFibGUnLCBmdW5jdGlvbiAoZSkgewogICAgICAgICAgICAgICAgaWYgKCR0YWJsZS5pcygnLmJyZWFrcG9pbnQnKSAmJiAkKGUudGFyZ2V0KS5pcygndGQsLicrIGNscy50b2dnbGUpKSB7CiAgICAgICAgICAgICAgICAgICAgJCh0aGlzKS50cmlnZ2VyKHRyZy50b2dnbGVSb3cpOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9KTsKICAgICAgICB9OwoKICAgICAgICBmdC5wYXJzZSA9IGZ1bmN0aW9uIChjZWxsLCBjb2x1bW4pIHsKICAgICAgICAgICAgdmFyIHBhcnNlciA9IG9wdC5wYXJzZXJzW2NvbHVtbi50eXBlXSB8fCBvcHQucGFyc2Vycy5hbHBoYTsKICAgICAgICAgICAgcmV0dXJuIHBhcnNlcihjZWxsKTsKICAgICAgICB9OwoKICAgICAgICBmdC5nZXRDb2x1bW5EYXRhID0gZnVuY3Rpb24gKHRoKSB7CiAgICAgICAgICAgIHZhciAkdGggPSAkKHRoKSwgaGlkZSA9ICR0aC5kYXRhKCdoaWRlJyksIGluZGV4ID0gJHRoLmluZGV4KCk7CiAgICAgICAgICAgIGhpZGUgPSBoaWRlIHx8ICcnOwogICAgICAgICAgICBoaWRlID0galF1ZXJ5Lm1hcChoaWRlLnNwbGl0KCcsJyksIGZ1bmN0aW9uIChhKSB7CiAgICAgICAgICAgICAgICByZXR1cm4galF1ZXJ5LnRyaW0oYSk7CiAgICAgICAgICAgIH0pOwogICAgICAgICAgICB2YXIgZGF0YSA9IHsKICAgICAgICAgICAgICAgICdpbmRleCc6IGluZGV4LAogICAgICAgICAgICAgICAgJ2hpZGUnOiB7IH0sCiAgICAgICAgICAgICAgICAndHlwZSc6ICR0aC5kYXRhKCd0eXBlJykgfHwgJ2FscGhhJywKICAgICAgICAgICAgICAgICduYW1lJzogJHRoLmRhdGEoJ25hbWUnKSB8fCAkLnRyaW0oJHRoLnRleHQoKSksCiAgICAgICAgICAgICAgICAnaWdub3JlJzogJHRoLmRhdGEoJ2lnbm9yZScpIHx8IGZhbHNlLAogICAgICAgICAgICAgICAgJ3RvZ2dsZSc6ICR0aC5kYXRhKCd0b2dnbGUnKSB8fCBmYWxzZSwKICAgICAgICAgICAgICAgICdjbGFzc05hbWUnOiAkdGguZGF0YSgnY2xhc3MnKSB8fCBudWxsLAogICAgICAgICAgICAgICAgJ21hdGNoZXMnOiBbXSwKICAgICAgICAgICAgICAgICduYW1lcyc6IHsgfSwKICAgICAgICAgICAgICAgICdncm91cCc6ICR0aC5kYXRhKCdncm91cCcpIHx8IG51bGwsCiAgICAgICAgICAgICAgICAnZ3JvdXBOYW1lJzogbnVsbAogICAgICAgICAgICB9OwoKICAgICAgICAgICAgaWYgKGRhdGEuZ3JvdXAgIT09IG51bGwpIHsKICAgICAgICAgICAgICAgIHZhciAkZ3JvdXAgPSAkKGZ0LnRhYmxlKS5maW5kKCc+IHRoZWFkID4gdHIuZm9vdGFibGUtZ3JvdXAtcm93ID4gdGhbZGF0YS1ncm91cD0iJyArIGRhdGEuZ3JvdXAgKyAnIl0sID4gdGhlYWQgPiB0ci5mb290YWJsZS1ncm91cC1yb3cgPiB0ZFtkYXRhLWdyb3VwPSInICsgZGF0YS5ncm91cCArICciXScpLmZpcnN0KCk7CiAgICAgICAgICAgICAgICBkYXRhLmdyb3VwTmFtZSA9IGZ0LnBhcnNlKCRncm91cCwgeyAndHlwZSc6ICdhbHBoYScgfSk7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIHZhciBwY29sc3BhbiA9IHBhcnNlSW50KCR0aC5wcmV2KCkuYXR0cignY29sc3BhbicpIHx8IDAsIDEwKTsKICAgICAgICAgICAgaW5kZXhPZmZzZXQgKz0gcGNvbHNwYW4gPiAxID8gcGNvbHNwYW4gLSAxIDogMDsKICAgICAgICAgICAgdmFyIGNvbHNwYW4gPSBwYXJzZUludCgkdGguYXR0cignY29sc3BhbicpIHx8IDAsIDEwKSwgY3VyaW5kZXggPSBkYXRhLmluZGV4ICsgaW5kZXhPZmZzZXQ7CiAgICAgICAgICAgIGlmIChjb2xzcGFuID4gMSkgewogICAgICAgICAgICAgICAgdmFyIG5hbWVzID0gJHRoLmRhdGEoJ25hbWVzJyk7CiAgICAgICAgICAgICAgICBuYW1lcyA9IG5hbWVzIHx8ICcnOwogICAgICAgICAgICAgICAgbmFtZXMgPSBuYW1lcy5zcGxpdCgnLCcpOwogICAgICAgICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBjb2xzcGFuOyBpKyspIHsKICAgICAgICAgICAgICAgICAgICBkYXRhLm1hdGNoZXMucHVzaChpICsgY3VyaW5kZXgpOwogICAgICAgICAgICAgICAgICAgIGlmIChpIDwgbmFtZXMubGVuZ3RoKSBkYXRhLm5hbWVzW2kgKyBjdXJpbmRleF0gPSBuYW1lc1tpXTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgIGRhdGEubWF0Y2hlcy5wdXNoKGN1cmluZGV4KTsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgZGF0YS5oaWRlWydkZWZhdWx0J10gPSAoJHRoLmRhdGEoJ2hpZGUnKSA9PT0gImFsbCIpIHx8ICgkLmluQXJyYXkoJ2RlZmF1bHQnLCBoaWRlKSA+PSAwKTsKCiAgICAgICAgICAgIHZhciBoYXNCcmVha3BvaW50ID0gZmFsc2U7CiAgICAgICAgICAgIGZvciAodmFyIG5hbWUgaW4gb3B0LmJyZWFrcG9pbnRzKSB7CiAgICAgICAgICAgICAgICBkYXRhLmhpZGVbbmFtZV0gPSAoJHRoLmRhdGEoJ2hpZGUnKSA9PT0gImFsbCIpIHx8ICgkLmluQXJyYXkobmFtZSwgaGlkZSkgPj0gMCk7CiAgICAgICAgICAgICAgICBoYXNCcmVha3BvaW50ID0gaGFzQnJlYWtwb2ludCB8fCBkYXRhLmhpZGVbbmFtZV07CiAgICAgICAgICAgIH0KICAgICAgICAgICAgZGF0YS5oYXNCcmVha3BvaW50ID0gaGFzQnJlYWtwb2ludDsKICAgICAgICAgICAgdmFyIGUgPSBmdC5yYWlzZShldnQuY29sdW1uRGF0YSwgeyAnY29sdW1uJzogeyAnZGF0YSc6IGRhdGEsICd0aCc6IHRoIH0gfSk7CiAgICAgICAgICAgIHJldHVybiBlLmNvbHVtbi5kYXRhOwogICAgICAgIH07CgogICAgICAgIGZ0LmdldFZpZXdwb3J0V2lkdGggPSBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgIHJldHVybiB3aW5kb3cuaW5uZXJXaWR0aCB8fCAoZG9jdW1lbnQuYm9keSA/IGRvY3VtZW50LmJvZHkub2Zmc2V0V2lkdGggOiAwKTsKICAgICAgICB9OwoKICAgICAgICBmdC5jYWxjdWxhdGVXaWR0aCA9IGZ1bmN0aW9uICgkdGFibGUsIGluZm8pIHsKICAgICAgICAgICAgaWYgKGpRdWVyeS5pc0Z1bmN0aW9uKG9wdC5jYWxjdWxhdGVXaWR0aE92ZXJyaWRlKSkgewogICAgICAgICAgICAgICAgcmV0dXJuIG9wdC5jYWxjdWxhdGVXaWR0aE92ZXJyaWRlKCR0YWJsZSwgaW5mbyk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgaWYgKGluZm8udmlld3BvcnRXaWR0aCA8IGluZm8ud2lkdGgpIGluZm8ud2lkdGggPSBpbmZvLnZpZXdwb3J0V2lkdGg7CiAgICAgICAgICAgIGlmIChpbmZvLnBhcmVudFdpZHRoIDwgaW5mby53aWR0aCkgaW5mby53aWR0aCA9IGluZm8ucGFyZW50V2lkdGg7CiAgICAgICAgICAgIHJldHVybiBpbmZvOwogICAgICAgIH07CgogICAgICAgIGZ0Lmhhc0JyZWFrcG9pbnRDb2x1bW4gPSBmdW5jdGlvbiAoYnJlYWtwb2ludCkgewogICAgICAgICAgICBmb3IgKHZhciBjIGluIGZ0LmNvbHVtbnMpIHsKICAgICAgICAgICAgICAgIGlmIChmdC5jb2x1bW5zW2NdLmhpZGVbYnJlYWtwb2ludF0pIHsKICAgICAgICAgICAgICAgICAgICBpZiAoZnQuY29sdW1uc1tjXS5pZ25vcmUpIHsKICAgICAgICAgICAgICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICB9OwoKICAgICAgICBmdC5oYXNBbnlCcmVha3BvaW50Q29sdW1uID0gZnVuY3Rpb24gKCkgewogICAgICAgICAgICBmb3IgKHZhciBjIGluIGZ0LmNvbHVtbnMpIHsKICAgICAgICAgICAgICAgIGlmIChmdC5jb2x1bW5zW2NdLmhhc0JyZWFrcG9pbnQpIHsKICAgICAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgfTsKCiAgICAgICAgZnQucmVzaXplID0gZnVuY3Rpb24gKCkgewogICAgICAgICAgICB2YXIgJHRhYmxlID0gJChmdC50YWJsZSk7CgogICAgICAgICAgICBpZiAoISR0YWJsZS5pcygnOnZpc2libGUnKSkgewogICAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICB9IC8vd2Ugb25seSBjYXJlIGFib3V0IEZvb1RhYmxlcyB0aGF0IGFyZSB2aXNpYmxlCgogICAgICAgICAgICBpZiAoIWZ0Lmhhc0FueUJyZWFrcG9pbnRDb2x1bW4oKSkgewogICAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICB9IC8vd2Ugb25seSBjYXJlIGFib3V0IEZvb1RhYmxlcyB0aGF0IGhhdmUgYnJlYWtwb2ludHMKCiAgICAgICAgICAgIHZhciBpbmZvID0gewogICAgICAgICAgICAgICAgJ3dpZHRoJzogJHRhYmxlLndpZHRoKCksICAgICAgICAgICAgICAgICAgLy90aGUgdGFibGUgd2lkdGgKICAgICAgICAgICAgICAgICd2aWV3cG9ydFdpZHRoJzogZnQuZ2V0Vmlld3BvcnRXaWR0aCgpLCAgIC8vdGhlIHdpZHRoIG9mIHRoZSB2aWV3cG9ydAogICAgICAgICAgICAgICAgJ3BhcmVudFdpZHRoJzogJHRhYmxlLnBhcmVudCgpLndpZHRoKCkgICAgLy90aGUgd2lkdGggb2YgdGhlIHBhcmVudAogICAgICAgICAgICB9OwoKICAgICAgICAgICAgaW5mbyA9IGZ0LmNhbGN1bGF0ZVdpZHRoKCR0YWJsZSwgaW5mbyk7CgogICAgICAgICAgICB2YXIgcGluZm8gPSAkdGFibGUuZGF0YSgnZm9vdGFibGVfaW5mbycpOwogICAgICAgICAgICAkdGFibGUuZGF0YSgnZm9vdGFibGVfaW5mbycsIGluZm8pOwogICAgICAgICAgICBmdC5yYWlzZShldnQucmVzaXppbmcsIHsgJ29sZCc6IHBpbmZvLCAnaW5mbyc6IGluZm8gfSk7CgogICAgICAgICAgICAvLyBUaGlzIChpZikgc3RhdGVtZW50IGlzIGhlcmUgcHVyZWx5IHRvIG1ha2Ugc3VyZSBldmVudHMgYXJlbid0IHJhaXNlZCB0d2ljZSBhcyBtb2JpbGUgc2FmYXJpIHNlZW1zIHRvIGRvCiAgICAgICAgICAgIGlmICghcGluZm8gfHwgKHBpbmZvICYmIHBpbmZvLndpZHRoICYmIHBpbmZvLndpZHRoICE9PSBpbmZvLndpZHRoKSkgewoKICAgICAgICAgICAgICAgIHZhciBjdXJyZW50ID0gbnVsbCwgYnJlYWtwb2ludDsKICAgICAgICAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgZnQuYnJlYWtwb2ludHMubGVuZ3RoOyBpKyspIHsKICAgICAgICAgICAgICAgICAgICBicmVha3BvaW50ID0gZnQuYnJlYWtwb2ludHNbaV07CiAgICAgICAgICAgICAgICAgICAgaWYgKGJyZWFrcG9pbnQgJiYgYnJlYWtwb2ludC53aWR0aCAmJiBpbmZvLndpZHRoIDw9IGJyZWFrcG9pbnQud2lkdGgpIHsKICAgICAgICAgICAgICAgICAgICAgICAgY3VycmVudCA9IGJyZWFrcG9pbnQ7CiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICB2YXIgYnJlYWtwb2ludE5hbWUgPSAoY3VycmVudCA9PT0gbnVsbCA/ICdkZWZhdWx0JyA6IGN1cnJlbnRbJ25hbWUnXSksCiAgICAgICAgICAgICAgICAgICAgaGFzQnJlYWtwb2ludEZpcmVkID0gZnQuaGFzQnJlYWtwb2ludENvbHVtbihicmVha3BvaW50TmFtZSksCiAgICAgICAgICAgICAgICAgICAgcHJldmlvdXNCcmVha3BvaW50ID0gJHRhYmxlLmRhdGEoJ2JyZWFrcG9pbnQnKTsKCiAgICAgICAgICAgICAgICAkdGFibGUKICAgICAgICAgICAgICAgICAgICAuZGF0YSgnYnJlYWtwb2ludCcsIGJyZWFrcG9pbnROYW1lKQogICAgICAgICAgICAgICAgICAgIC5yZW1vdmVDbGFzcygnZGVmYXVsdCBicmVha3BvaW50JykucmVtb3ZlQ2xhc3MoZnQuYnJlYWtwb2ludE5hbWVzKQogICAgICAgICAgICAgICAgICAgIC5hZGRDbGFzcyhicmVha3BvaW50TmFtZSArIChoYXNCcmVha3BvaW50RmlyZWQgPyAnIGJyZWFrcG9pbnQnIDogJycpKTsKCiAgICAgICAgICAgICAgICAvL29ubHkgZG8gc29tZXRoaW5nIGlmIHRoZSBicmVha3BvaW50IGhhcyBjaGFuZ2VkCiAgICAgICAgICAgICAgICBpZiAoYnJlYWtwb2ludE5hbWUgIT09IHByZXZpb3VzQnJlYWtwb2ludCkgewogICAgICAgICAgICAgICAgICAgIC8vdHJpZ2dlciBhIHJlZHJhdwogICAgICAgICAgICAgICAgICAgICR0YWJsZS50cmlnZ2VyKHRyZy5yZWRyYXcpOwogICAgICAgICAgICAgICAgICAgIC8vcmFpc2UgYSBicmVha3BvaW50IGV2ZW50CiAgICAgICAgICAgICAgICAgICAgZnQucmFpc2UoZXZ0LmJyZWFrcG9pbnQsIHsgJ2JyZWFrcG9pbnQnOiBicmVha3BvaW50TmFtZSwgJ2luZm8nOiBpbmZvIH0pOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CgogICAgICAgICAgICBmdC5yYWlzZShldnQucmVzaXplZCwgeyAnb2xkJzogcGluZm8sICdpbmZvJzogaW5mbyB9KTsKICAgICAgICB9OwoKICAgICAgICBmdC5yZWRyYXcgPSBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgIC8vYWRkIHRoZSB0b2dnbGVyIHRvIGVhY2ggcm93CiAgICAgICAgICAgIGZ0LmFkZFJvd1RvZ2dsZSgpOwoKICAgICAgICAgICAgLy9iaW5kIHRoZSB0b2dnbGUgc2VsZWN0b3IgY2xpY2sgZXZlbnRzCiAgICAgICAgICAgIGZ0LmJpbmRUb2dnbGVTZWxlY3RvcnMoKTsKCiAgICAgICAgICAgIC8vc2V0IGFueSBjZWxsIGNsYXNzZXMgZGVmaW5lZCBmb3IgdGhlIGNvbHVtbnMKICAgICAgICAgICAgZnQuc2V0Q29sdW1uQ2xhc3NlcygpOwoKICAgICAgICAgICAgdmFyICR0YWJsZSA9ICQoZnQudGFibGUpLAogICAgICAgICAgICAgICAgYnJlYWtwb2ludE5hbWUgPSAkdGFibGUuZGF0YSgnYnJlYWtwb2ludCcpLAogICAgICAgICAgICAgICAgaGFzQnJlYWtwb2ludEZpcmVkID0gZnQuaGFzQnJlYWtwb2ludENvbHVtbihicmVha3BvaW50TmFtZSk7CgogICAgICAgICAgICAkdGFibGUKICAgICAgICAgICAgICAgIC5maW5kKCc+IHRib2R5ID4gdHI6bm90KC4nICsgY2xzLmRldGFpbCArICcpJykuZGF0YSgnZGV0YWlsX2NyZWF0ZWQnLCBmYWxzZSkuZW5kKCkKICAgICAgICAgICAgICAgIC5maW5kKCc+IHRoZWFkID4gdHI6bGFzdC1jaGlsZCA+IHRoJykKICAgICAgICAgICAgICAgIC5lYWNoKGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgICAgICAgICB2YXIgZGF0YSA9IGZ0LmNvbHVtbnNbJCh0aGlzKS5pbmRleCgpXSwgc2VsZWN0b3IgPSAnJywgZmlyc3QgPSB0cnVlOwogICAgICAgICAgICAgICAgICAgICQuZWFjaChkYXRhLm1hdGNoZXMsIGZ1bmN0aW9uIChtLCBtYXRjaCkgewogICAgICAgICAgICAgICAgICAgICAgICBpZiAoIWZpcnN0KSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxlY3RvciArPSAnLCAnOwogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBjb3VudCA9IG1hdGNoICsgMTsKICAgICAgICAgICAgICAgICAgICAgICAgc2VsZWN0b3IgKz0gJz4gdGJvZHkgPiB0cjpub3QoLicgKyBjbHMuZGV0YWlsICsgJykgPiB0ZDpudGgtY2hpbGQoJyArIGNvdW50ICsgJyknOwogICAgICAgICAgICAgICAgICAgICAgICBzZWxlY3RvciArPSAnLCA+IHRmb290ID4gdHI6bm90KC4nICsgY2xzLmRldGFpbCArICcpID4gdGQ6bnRoLWNoaWxkKCcgKyBjb3VudCArICcpJzsKICAgICAgICAgICAgICAgICAgICAgICAgc2VsZWN0b3IgKz0gJywgPiBjb2xncm91cCA+IGNvbDpudGgtY2hpbGQoJyArIGNvdW50ICsgJyknOwogICAgICAgICAgICAgICAgICAgICAgICBmaXJzdCA9IGZhbHNlOwogICAgICAgICAgICAgICAgICAgIH0pOwoKICAgICAgICAgICAgICAgICAgICBzZWxlY3RvciArPSAnLCA+IHRoZWFkID4gdHJbZGF0YS1ncm91cC1yb3c9InRydWUiXSA+IHRoW2RhdGEtZ3JvdXA9IicgKyBkYXRhLmdyb3VwICsgJyJdJzsKICAgICAgICAgICAgICAgICAgICB2YXIgJGNvbHVtbiA9ICR0YWJsZS5maW5kKHNlbGVjdG9yKS5hZGQodGhpcyk7CiAgICAgICAgICAgICAgICAgICAgaWYgKGJyZWFrcG9pbnROYW1lICE9PSAnJykgewogICAgICAgICAgICAgICAgICAgICAgaWYgKGRhdGEuaGlkZVticmVha3BvaW50TmFtZV0gPT09IGZhbHNlKSAkY29sdW1uLnNob3coKTsKICAgICAgICAgICAgICAgICAgICAgIGVsc2UgJGNvbHVtbi5oaWRlKCk7CiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICBpZiAoJHRhYmxlLmZpbmQoJz4gdGhlYWQgPiB0ci5mb290YWJsZS1ncm91cC1yb3cnKS5sZW5ndGggPT09IDEpIHsKICAgICAgICAgICAgICAgICAgICAgICAgdmFyICRncm91cGNvbHMgPSAkdGFibGUuZmluZCgnPiB0aGVhZCA+IHRyOmxhc3QtY2hpbGQgPiB0aFtkYXRhLWdyb3VwPSInICsgZGF0YS5ncm91cCArICciXTp2aXNpYmxlLCA+IHRoZWFkID4gdHI6bGFzdC1jaGlsZCA+IHRoW2RhdGEtZ3JvdXA9IicgKyBkYXRhLmdyb3VwICsgJyJdOnZpc2libGUnKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICRncm91cCA9ICR0YWJsZS5maW5kKCc+IHRoZWFkID4gdHIuZm9vdGFibGUtZ3JvdXAtcm93ID4gdGhbZGF0YS1ncm91cD0iJyArIGRhdGEuZ3JvdXAgKyAnIl0sID4gdGhlYWQgPiB0ci5mb290YWJsZS1ncm91cC1yb3cgPiB0ZFtkYXRhLWdyb3VwPSInICsgZGF0YS5ncm91cCArICciXScpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgZ3JvdXBzcGFuID0gMDsKCiAgICAgICAgICAgICAgICAgICAgICAgICQuZWFjaCgkZ3JvdXBjb2xzLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBncm91cHNwYW4gKz0gcGFyc2VJbnQoJCh0aGlzKS5hdHRyKCdjb2xzcGFuJykgfHwgMSwgMTApOwogICAgICAgICAgICAgICAgICAgICAgICB9KTsKCiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChncm91cHNwYW4gPiAwKSAkZ3JvdXAuYXR0cignY29sc3BhbicsIGdyb3Vwc3Bhbikuc2hvdygpOwogICAgICAgICAgICAgICAgICAgICAgICBlbHNlICRncm91cC5oaWRlKCk7CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfSkKICAgICAgICAgICAgICAgIC5lbmQoKQogICAgICAgICAgICAgICAgLmZpbmQoJz4gdGJvZHkgPiB0ci4nICsgY2xzLmRldGFpbFNob3cpLmVhY2goZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgICAgICAgIGZ0LmNyZWF0ZU9yVXBkYXRlRGV0YWlsUm93KHRoaXMpOwogICAgICAgICAgICAgICAgfSk7CgogICAgICAgICAgICAkdGFibGUuZmluZCgnPiB0Ym9keSA+IHRyLicgKyBjbHMuZGV0YWlsU2hvdyArICc6dmlzaWJsZScpLmVhY2goZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgICAgdmFyICRuZXh0ID0gJCh0aGlzKS5uZXh0KCk7CiAgICAgICAgICAgICAgICBpZiAoJG5leHQuaGFzQ2xhc3MoY2xzLmRldGFpbCkpIHsKICAgICAgICAgICAgICAgICAgICBpZiAoIWhhc0JyZWFrcG9pbnRGaXJlZCkgJG5leHQuaGlkZSgpOwogICAgICAgICAgICAgICAgICAgIGVsc2UgJG5leHQuc2hvdygpOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9KTsKCiAgICAgICAgICAgIC8vIGFkZGluZyAuZm9vdGFibGUtZmlyc3QtY29sdW1uIGFuZCAuZm9vdGFibGUtbGFzdC1jb2x1bW4gdG8gdGhlIGZpcnN0IGFuZCBsYXN0IHRoIGFuZCB0ZCBvZiBlYWNoIHJvdyBpbiBvcmRlciB0byBhbGxvdwogICAgICAgICAgICAvLyBmb3Igc3R5bGluZyBpZiB0aGUgZmlyc3Qgb3IgbGFzdCBjb2x1bW4gaXMgaGlkZGVuICh3aGljaCB3b24ndCB3b3JrIHVzaW5nIDpmaXJzdC1jaGlsZCBvciA6bGFzdC1jaGlsZCkKICAgICAgICAgICAgJHRhYmxlLmZpbmQoJz4gdGhlYWQgPiB0ciA+IHRoLmZvb3RhYmxlLWxhc3QtY29sdW1uLCA+IHRib2R5ID4gdHIgPiB0ZC5mb290YWJsZS1sYXN0LWNvbHVtbicpLnJlbW92ZUNsYXNzKCdmb290YWJsZS1sYXN0LWNvbHVtbicpOwogICAgICAgICAgICAkdGFibGUuZmluZCgnPiB0aGVhZCA+IHRyID4gdGguZm9vdGFibGUtZmlyc3QtY29sdW1uLCA+IHRib2R5ID4gdHIgPiB0ZC5mb290YWJsZS1maXJzdC1jb2x1bW4nKS5yZW1vdmVDbGFzcygnZm9vdGFibGUtZmlyc3QtY29sdW1uJyk7CiAgICAgICAgICAgICR0YWJsZS5maW5kKCc+IHRoZWFkID4gdHIsID4gdGJvZHkgPiB0cicpCiAgICAgICAgICAgICAgICAuZmluZCgnPiB0aDp2aXNpYmxlOmxhc3QsID4gdGQ6dmlzaWJsZTpsYXN0JykKICAgICAgICAgICAgICAgIC5hZGRDbGFzcygnZm9vdGFibGUtbGFzdC1jb2x1bW4nKQogICAgICAgICAgICAgICAgLmVuZCgpCiAgICAgICAgICAgICAgICAuZmluZCgnPiB0aDp2aXNpYmxlOmZpcnN0LCA+IHRkOnZpc2libGU6Zmlyc3QnKQogICAgICAgICAgICAgICAgLmFkZENsYXNzKCdmb290YWJsZS1maXJzdC1jb2x1bW4nKTsKCiAgICAgICAgICAgIGZ0LnJhaXNlKGV2dC5yZWRyYXduKTsKICAgICAgICB9OwoKICAgICAgICBmdC50b2dnbGVEZXRhaWwgPSBmdW5jdGlvbiAocm93KSB7CiAgICAgICAgICAgIHZhciAkcm93ID0gKHJvdy5qcXVlcnkpID8gcm93IDogJChyb3cpLAogICAgICAgICAgICAgICAgJG5leHQgPSAkcm93Lm5leHQoKTsKCiAgICAgICAgICAgIC8vY2hlY2sgaWYgdGhlIHJvdyBpcyBhbHJlYWR5IGV4cGFuZGVkCiAgICAgICAgICAgIGlmICgkcm93Lmhhc0NsYXNzKGNscy5kZXRhaWxTaG93KSkgewogICAgICAgICAgICAgICAgJHJvdy5yZW1vdmVDbGFzcyhjbHMuZGV0YWlsU2hvdyk7CgogICAgICAgICAgICAgICAgLy9vbmx5IGhpZGUgdGhlIG5leHQgcm93IGlmIGl0J3MgYSBkZXRhaWwgcm93CiAgICAgICAgICAgICAgICBpZiAoJG5leHQuaGFzQ2xhc3MoY2xzLmRldGFpbCkpICRuZXh0LmhpZGUoKTsKCiAgICAgICAgICAgICAgICBmdC5yYWlzZShldnQucm93Q29sbGFwc2VkLCB7ICdyb3cnOiAkcm93WzBdIH0pOwoKICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgIGZ0LmNyZWF0ZU9yVXBkYXRlRGV0YWlsUm93KCRyb3dbMF0pOwogICAgICAgICAgICAgICAgJHJvdy5hZGRDbGFzcyhjbHMuZGV0YWlsU2hvdykKCQkJCQkubmV4dCgpLnNob3coKTsKCiAgICAgICAgICAgICAgICBmdC5yYWlzZShldnQucm93RXhwYW5kZWQsIHsgJ3Jvdyc6ICRyb3dbMF0gfSk7CiAgICAgICAgICAgIH0KICAgICAgICB9OwoKICAgICAgICBmdC5yZW1vdmVSb3cgPSBmdW5jdGlvbiAocm93KSB7CiAgICAgICAgICAgIHZhciAkcm93ID0gKHJvdy5qcXVlcnkpID8gcm93IDogJChyb3cpOwogICAgICAgICAgICBpZiAoJHJvdy5oYXNDbGFzcyhjbHMuZGV0YWlsKSkgewogICAgICAgICAgICAgICAgJHJvdyA9ICRyb3cucHJldigpOwogICAgICAgICAgICB9CiAgICAgICAgICAgIHZhciAkbmV4dCA9ICRyb3cubmV4dCgpOwogICAgICAgICAgICBpZiAoJHJvdy5kYXRhKCdkZXRhaWxfY3JlYXRlZCcpID09PSB0cnVlKSB7CiAgICAgICAgICAgICAgICAvL3JlbW92ZSB0aGUgZGV0YWlsIHJvdwogICAgICAgICAgICAgICAgJG5leHQucmVtb3ZlKCk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgJHJvdy5yZW1vdmUoKTsKCiAgICAgICAgICAgIC8vcmFpc2UgZXZlbnQKICAgICAgICAgICAgZnQucmFpc2UoZXZ0LnJvd1JlbW92ZWQpOwogICAgICAgIH07CgogICAgICAgIGZ0LmFwcGVuZFJvdyA9IGZ1bmN0aW9uIChyb3cpIHsKICAgICAgICAgICAgdmFyICRyb3cgPSAocm93LmpxdWVyeSkgPyByb3cgOiAkKHJvdyk7CiAgICAgICAgICAgICQoZnQudGFibGUpLmZpbmQoJ3Rib2R5JykuYXBwZW5kKCRyb3cpOwoKICAgICAgICAgICAgLy9yZWRyYXcgdGhlIHRhYmxlCiAgICAgICAgICAgIGZ0LnJlZHJhdygpOwogICAgICAgIH07CgogICAgICAgIGZ0LmdldENvbHVtbkZyb21UZEluZGV4ID0gZnVuY3Rpb24gKGluZGV4KSB7CiAgICAgICAgICAgIC8vLyA8c3VtbWFyeT5SZXR1cm5zIHRoZSBjb3JyZWN0IGNvbHVtbiBkYXRhIGZvciB0aGUgc3VwcGxpZWQgaW5kZXggdGFraW5nIGludG8gYWNjb3VudCBjb2xzcGFucy48L3N1bW1hcnk+CiAgICAgICAgICAgIC8vLyA8cGFyYW0gbmFtZT0iaW5kZXgiPlRoZSBpbmRleCB0byByZXRyaWV2ZSB0aGUgY29sdW1uIGRhdGEgZm9yLjwvcGFyYW0+CiAgICAgICAgICAgIC8vLyA8cmV0dXJucyB0eXBlPSJqc29uIj5BIEpTT04gb2JqZWN0IGNvbnRhaW5pbmcgdGhlIGNvbHVtbiBkYXRhIGZvciB0aGUgc3VwcGxpZWQgaW5kZXguPC9yZXR1cm5zPgogICAgICAgICAgICB2YXIgcmVzdWx0ID0gbnVsbDsKICAgICAgICAgICAgZm9yICh2YXIgY29sdW1uIGluIGZ0LmNvbHVtbnMpIHsKICAgICAgICAgICAgICAgIGlmICgkLmluQXJyYXkoaW5kZXgsIGZ0LmNvbHVtbnNbY29sdW1uXS5tYXRjaGVzKSA+PSAwKSB7CiAgICAgICAgICAgICAgICAgICAgcmVzdWx0ID0gZnQuY29sdW1uc1tjb2x1bW5dOwogICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CiAgICAgICAgfTsKCiAgICAgICAgZnQuY3JlYXRlT3JVcGRhdGVEZXRhaWxSb3cgPSBmdW5jdGlvbiAoYWN0dWFsUm93KSB7CiAgICAgICAgICAgIHZhciAkcm93ID0gJChhY3R1YWxSb3cpLCAkbmV4dCA9ICRyb3cubmV4dCgpLCAkZGV0YWlsLCB2YWx1ZXMgPSBbXTsKICAgICAgICAgICAgaWYgKCRyb3cuZGF0YSgnZGV0YWlsX2NyZWF0ZWQnKSA9PT0gdHJ1ZSkgcmV0dXJuIHRydWU7CgogICAgICAgICAgICBpZiAoJHJvdy5pcygnOmhpZGRlbicpKSByZXR1cm4gZmFsc2U7IC8vaWYgdGhlIHJvdyBpcyBoaWRkZW4gZm9yIHNvbWUgcmVhc29uIChwZXJoYXBzIGZpbHRlcmVkKSB0aGVuIGdldCBvdXQgb2YgaGVyZQogICAgICAgICAgICBmdC5yYWlzZShldnQucm93RGV0YWlsVXBkYXRpbmcsIHsgJ3Jvdyc6ICRyb3csICdkZXRhaWwnOiAkbmV4dCB9KTsKICAgICAgICAgICAgJHJvdy5maW5kKCc+IHRkOmhpZGRlbicpLmVhY2goZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgICAgdmFyIGluZGV4ID0gJCh0aGlzKS5pbmRleCgpLCBjb2x1bW4gPSBmdC5nZXRDb2x1bW5Gcm9tVGRJbmRleChpbmRleCksIG5hbWUgPSBjb2x1bW4ubmFtZTsKICAgICAgICAgICAgICAgIGlmIChjb2x1bW4uaWdub3JlID09PSB0cnVlKSByZXR1cm4gdHJ1ZTsKCiAgICAgICAgICAgICAgICBpZiAoaW5kZXggaW4gY29sdW1uLm5hbWVzKSBuYW1lID0gY29sdW1uLm5hbWVzW2luZGV4XTsKICAgICAgICAgICAgICAgIHZhbHVlcy5wdXNoKHsgJ25hbWUnOiBuYW1lLCAndmFsdWUnOiBmdC5wYXJzZSh0aGlzLCBjb2x1bW4pLCAnZGlzcGxheSc6ICQudHJpbSgkKHRoaXMpLmh0bWwoKSksICdncm91cCc6IGNvbHVtbi5ncm91cCwgJ2dyb3VwTmFtZSc6IGNvbHVtbi5ncm91cE5hbWUgfSk7CiAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICAgICAgfSk7CiAgICAgICAgICAgIGlmICh2YWx1ZXMubGVuZ3RoID09PSAwKSByZXR1cm4gZmFsc2U7IC8vcmV0dXJuIGlmIHdlIGRvbid0IGhhdmUgYW55IGRhdGEgdG8gc2hvdwogICAgICAgICAgICB2YXIgY29sc3BhbiA9ICRyb3cuZmluZCgnPiB0ZDp2aXNpYmxlJykubGVuZ3RoOwogICAgICAgICAgICB2YXIgZXhpc3RzID0gJG5leHQuaGFzQ2xhc3MoY2xzLmRldGFpbCk7CiAgICAgICAgICAgIGlmICghZXhpc3RzKSB7IC8vIENyZWF0ZQogICAgICAgICAgICAgICAgJG5leHQgPSAkKCc8dHIgY2xhc3M9IicgKyBjbHMuZGV0YWlsICsgJyI+PHRkIGNsYXNzPSInICsgY2xzLmRldGFpbENlbGwgKyAnIj48ZGl2IGNsYXNzPSInICsgY2xzLmRldGFpbElubmVyICsgJyI+PC9kaXY+PC90ZD48L3RyPicpOwogICAgICAgICAgICAgICAgJHJvdy5hZnRlcigkbmV4dCk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgJG5leHQuZmluZCgnPiB0ZDpmaXJzdCcpLmF0dHIoJ2NvbHNwYW4nLCBjb2xzcGFuKTsKICAgICAgICAgICAgJGRldGFpbCA9ICRuZXh0LmZpbmQoJy4nICsgY2xzLmRldGFpbElubmVyKS5lbXB0eSgpOwogICAgICAgICAgICBvcHQuY3JlYXRlRGV0YWlsKCRkZXRhaWwsIHZhbHVlcywgb3B0LmNyZWF0ZUdyb3VwZWREZXRhaWwsIG9wdC5kZXRhaWxTZXBhcmF0b3IsIGNscyk7CiAgICAgICAgICAgICRyb3cuZGF0YSgnZGV0YWlsX2NyZWF0ZWQnLCB0cnVlKTsKICAgICAgICAgICAgZnQucmFpc2UoZXZ0LnJvd0RldGFpbFVwZGF0ZWQsIHsgJ3Jvdyc6ICRyb3csICdkZXRhaWwnOiAkbmV4dCB9KTsKICAgICAgICAgICAgcmV0dXJuICFleGlzdHM7CiAgICAgICAgfTsKCiAgICAgICAgZnQucmFpc2UgPSBmdW5jdGlvbiAoZXZlbnROYW1lLCBhcmdzKSB7CgogICAgICAgICAgICBpZiAoZnQub3B0aW9ucy5kZWJ1ZyA9PT0gdHJ1ZSAmJiAkLmlzRnVuY3Rpb24oZnQub3B0aW9ucy5sb2cpKSBmdC5vcHRpb25zLmxvZyhldmVudE5hbWUsICdldmVudCcpOwoKICAgICAgICAgICAgYXJncyA9IGFyZ3MgfHwgeyB9OwogICAgICAgICAgICB2YXIgZGVmID0geyAnZnQnOiBmdCB9OwogICAgICAgICAgICAkLmV4dGVuZCh0cnVlLCBkZWYsIGFyZ3MpOwogICAgICAgICAgICB2YXIgZSA9ICQuRXZlbnQoZXZlbnROYW1lLCBkZWYpOwogICAgICAgICAgICBpZiAoIWUuZnQpIHsKICAgICAgICAgICAgICAgICQuZXh0ZW5kKHRydWUsIGUsIGRlZik7CiAgICAgICAgICAgIH0gLy9wcmUgalF1ZXJ5IDEuNiB3aGljaCBkaWQgbm90IGFsbG93IGRhdGEgdG8gYmUgcGFzc2VkIHRvIGV2ZW50IG9iamVjdCBjb25zdHJ1Y3RvcgogICAgICAgICAgICAkKGZ0LnRhYmxlKS50cmlnZ2VyKGUpOwogICAgICAgICAgICByZXR1cm4gZTsKICAgICAgICB9OwoKICAgICAgICAvL3Jlc2V0IHRoZSBzdGF0ZSBvZiBGb29UYWJsZQogICAgICAgIGZ0LnJlc2V0ID0gZnVuY3Rpb24oKSB7CiAgICAgICAgICAgIHZhciAkdGFibGUgPSAkKGZ0LnRhYmxlKTsKICAgICAgICAgICAgJHRhYmxlLnJlbW92ZURhdGEoJ2Zvb3RhYmxlX2luZm8nKQogICAgICAgICAgICAgICAgLmRhdGEoJ2JyZWFrcG9pbnQnLCAnJykKICAgICAgICAgICAgICAgIC5yZW1vdmVDbGFzcyhjbHMubG9hZGluZykKICAgICAgICAgICAgICAgIC5yZW1vdmVDbGFzcyhjbHMubG9hZGVkKTsKCiAgICAgICAgICAgICR0YWJsZS5maW5kKG9wdC50b2dnbGVTZWxlY3RvcikudW5iaW5kKHRyZy50b2dnbGVSb3cpLnVuYmluZCgnY2xpY2suZm9vdGFibGUnKTsKCiAgICAgICAgICAgICR0YWJsZS5maW5kKCc+IHRib2R5ID4gdHInKS5yZW1vdmVDbGFzcyhjbHMuZGV0YWlsU2hvdyk7CgogICAgICAgICAgICAkdGFibGUuZmluZCgnPiB0Ym9keSA+IHRyLicgKyBjbHMuZGV0YWlsKS5yZW1vdmUoKTsKCiAgICAgICAgICAgIGZ0LnJhaXNlKGV2dC5yZXNldCk7CiAgICAgICAgfTsKCiAgICAgICAgZnQuaW5pdCgpOwogICAgICAgIHJldHVybiBmdDsKICAgIH0KfSkoalF1ZXJ5LCB3aW5kb3cpOwo=]]></data>
	</file>
	<file>
	  <filename>/framework/js/footable.sort.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[77u/KGZ1bmN0aW9uICgkLCB3LCB1bmRlZmluZWQpIHsKICAgIGlmICh3LmZvb3RhYmxlID09PSB1bmRlZmluZWQgfHwgdy5mb290YWJsZSA9PT0gbnVsbCkKICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ1BsZWFzZSBjaGVjayBhbmQgbWFrZSBzdXJlIGZvb3RhYmxlLmpzIGlzIGluY2x1ZGVkIGluIHRoZSBwYWdlIGFuZCBpcyBsb2FkZWQgcHJpb3IgdG8gdGhpcyBzY3JpcHQuJyk7CgogICAgdmFyIGRlZmF1bHRzID0gewogICAgICAgIHNvcnQ6IHRydWUsCiAgICAgICAgc29ydGVyczogewogICAgICAgICAgICBhbHBoYTogZnVuY3Rpb24gKGEsIGIpIHsKCQkJCWlmICh0eXBlb2YoYSkgPT09ICdzdHJpbmcnKSB7IGEgPSBhLnRvTG93ZXJDYXNlKCk7IH0KCQkJCWlmICh0eXBlb2YoYikgPT09ICdzdHJpbmcnKSB7IGIgPSBiLnRvTG93ZXJDYXNlKCk7IH0KCQkJCWlmIChhID09PSBiKSByZXR1cm4gMDsKCQkJCWlmIChhIDwgYikgcmV0dXJuIC0xOwoJCQkJcmV0dXJuIDE7CiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIG51bWVyaWM6IGZ1bmN0aW9uIChhLCBiKSB7CiAgICAgICAgICAgICAgICByZXR1cm4gYSAtIGI7CiAgICAgICAgICAgIH0KICAgICAgICB9LAogICAgICAgIGNsYXNzZXM6IHsKICAgICAgICAgICAgc29ydDogewogICAgICAgICAgICAgICAgc29ydGFibGU6ICdmb290YWJsZS1zb3J0YWJsZScsCiAgICAgICAgICAgICAgICBzb3J0ZWQ6ICdmb290YWJsZS1zb3J0ZWQnLAogICAgICAgICAgICAgICAgZGVzY2VuZGluZzogJ2Zvb3RhYmxlLXNvcnRlZC1kZXNjJywKICAgICAgICAgICAgICAgIGluZGljYXRvcjogJ2Zvb3RhYmxlLXNvcnQtaW5kaWNhdG9yJwogICAgICAgICAgICB9CiAgICAgICAgfSwKICAgICAgICBldmVudHM6IHsKICAgICAgICAgICAgc29ydDogewogICAgICAgICAgICAgICAgc29ydGluZzogJ2Zvb3RhYmxlX3NvcnRpbmcnLAogICAgICAgICAgICAgICAgc29ydGVkOiAnZm9vdGFibGVfc29ydGVkJwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgfTsKCiAgICBmdW5jdGlvbiBTb3J0KCkgewogICAgICAgIHZhciBwID0gdGhpczsKICAgICAgICBwLm5hbWUgPSAnRm9vdGFibGUgU29ydGFibGUnOwogICAgICAgIHAuaW5pdCA9IGZ1bmN0aW9uIChmdCkgewogICAgICAgICAgICBwLmZvb3RhYmxlID0gZnQ7CiAgICAgICAgICAgIGlmIChmdC5vcHRpb25zLnNvcnQgPT09IHRydWUpIHsKICAgICAgICAgICAgICAgICQoZnQudGFibGUpCiAgICAgICAgICAgICAgICAgICAgLnVuYmluZCgnLnNvcnRpbmcnKQogICAgICAgICAgICAgICAgICAgIC5iaW5kKHsKICAgICAgICAgICAgICAgICAgICAgICAgJ2Zvb3RhYmxlX2luaXRpYWxpemVkLnNvcnRpbmcnOiBmdW5jdGlvbiAoZSkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyICR0YWJsZSA9ICQoZnQudGFibGUpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICR0Ym9keSA9ICR0YWJsZS5maW5kKCc+IHRib2R5JyksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xzID0gZnQub3B0aW9ucy5jbGFzc2VzLnNvcnQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29sdW1uLCAkdGg7CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCR0YWJsZS5kYXRhKCdzb3J0JykgPT09IGZhbHNlKSByZXR1cm47CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgJHRhYmxlLmZpbmQoJz4gdGhlYWQgPiB0cjpsYXN0LWNoaWxkID4gdGgsID4gdGhlYWQgPiB0cjpsYXN0LWNoaWxkID4gdGQnKS5lYWNoKGZ1bmN0aW9uIChlYykgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICR0aCA9ICQodGhpcyksIGNvbHVtbiA9IGZ0LmNvbHVtbnNbJHRoLmluZGV4KCldOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChjb2x1bW4uc29ydC5pZ25vcmUgIT09IHRydWUgJiYgISR0aC5oYXNDbGFzcyhjbHMuc29ydGFibGUpKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICR0aC5hZGRDbGFzcyhjbHMuc29ydGFibGUpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkKCc8c3BhbiAvPicpLmFkZENsYXNzKGNscy5pbmRpY2F0b3IpLmFwcGVuZFRvKCR0aCk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgfSk7CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgJHRhYmxlLmZpbmQoJz4gdGhlYWQgPiB0cjpsYXN0LWNoaWxkID4gdGguJyArIGNscy5zb3J0YWJsZSArICcsID4gdGhlYWQgPiB0cjpsYXN0LWNoaWxkID4gdGQuJyArIGNscy5zb3J0YWJsZSkudW5iaW5kKCdjbGljay5mb290YWJsZScpLmJpbmQoJ2NsaWNrLmZvb3RhYmxlJywgZnVuY3Rpb24gKGVjKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZWMucHJldmVudERlZmF1bHQoKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkdGggPSAkKHRoaXMpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhciBhc2NlbmRpbmcgPSAhJHRoLmhhc0NsYXNzKGNscy5zb3J0ZWQpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHAuZG9Tb3J0KCR0aC5pbmRleCgpLCBhc2NlbmRpbmcpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pOwoKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhciBkaWRTb21lU29ydGluZyA9IGZhbHNlOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9yICh2YXIgYyBpbiBmdC5jb2x1bW5zKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29sdW1uID0gZnQuY29sdW1uc1tjXTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoY29sdW1uLnNvcnQuaW5pdGlhbCkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgYXNjZW5kaW5nID0gKGNvbHVtbi5zb3J0LmluaXRpYWwgIT09ICdkZXNjZW5kaW5nJyk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHAuZG9Tb3J0KGNvbHVtbi5pbmRleCwgYXNjZW5kaW5nKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGRpZFNvbWVTb3J0aW5nKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZnQuYmluZFRvZ2dsZVNlbGVjdG9ycygpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgICAgICAgICAnZm9vdGFibGVfcmVkcmF3bi5zb3J0aW5nJzogZnVuY3Rpb24oZSkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyICR0YWJsZSA9ICQoZnQudGFibGUpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNscyA9IGZ0Lm9wdGlvbnMuY2xhc3Nlcy5zb3J0OwogICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCR0YWJsZS5kYXRhKCdzb3J0ZWQnKSA+PSAwKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJHRhYmxlLmZpbmQoJz4gdGhlYWQgPiB0cjpsYXN0LWNoaWxkID4gdGgnKS5lYWNoKGZ1bmN0aW9uKGkpewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgJHRoID0gJCh0aGlzKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCR0aC5oYXNDbGFzcyhjbHMuc29ydGVkKSB8fCAkdGguaGFzQ2xhc3MoY2xzLmRlc2NlbmRpbmcpKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwLmRvU29ydChpKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgICAgICAgICAnZm9vdGFibGVfY29sdW1uX2RhdGEuc29ydGluZyc6IGZ1bmN0aW9uIChlKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgJHRoID0gJChlLmNvbHVtbi50aCk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBlLmNvbHVtbi5kYXRhLnNvcnQgPSBlLmNvbHVtbi5kYXRhLnNvcnQgfHwge307CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBlLmNvbHVtbi5kYXRhLnNvcnQuaW5pdGlhbCA9ICR0aC5kYXRhKCdzb3J0LWluaXRpYWwnKSB8fCBmYWxzZTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGUuY29sdW1uLmRhdGEuc29ydC5pZ25vcmUgPSAkdGguZGF0YSgnc29ydC1pZ25vcmUnKSB8fCBmYWxzZTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGUuY29sdW1uLmRhdGEuc29ydC5zZWxlY3RvciA9ICR0aC5kYXRhKCdzb3J0LXNlbGVjdG9yJykgfHwgbnVsbDsKCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgbWF0Y2ggPSAkdGguZGF0YSgnc29ydC1tYXRjaCcpIHx8IDA7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAobWF0Y2ggPj0gZS5jb2x1bW4uZGF0YS5tYXRjaGVzLmxlbmd0aCkgbWF0Y2ggPSAwOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgZS5jb2x1bW4uZGF0YS5zb3J0Lm1hdGNoID0gZS5jb2x1bW4uZGF0YS5tYXRjaGVzW21hdGNoXTsKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIH0pCiAgICAgICAgICAgICAgICAvL3NhdmUgdGhlIHNvcnQgb2JqZWN0IG9udG8gdGhlIHRhYmxlIHNvIHdlIGNhbiBhY2Nlc3MgaXQgbGF0ZXIKICAgICAgICAgICAgICAgIC5kYXRhKCdmb290YWJsZS1zb3J0JywgcCk7CiAgICAgICAgICAgIH0KICAgICAgICB9OwoKICAgICAgICBwLmRvU29ydCA9IGZ1bmN0aW9uKGNvbHVtbkluZGV4LCBhc2NlbmRpbmcpIHsKICAgICAgICAgICAgdmFyIGZ0ID0gcC5mb290YWJsZTsKICAgICAgICAgICAgaWYgKCQoZnQudGFibGUpLmRhdGEoJ3NvcnQnKSA9PT0gZmFsc2UpIHJldHVybjsKCiAgICAgICAgICAgIHZhciAkdGFibGUgPSAkKGZ0LnRhYmxlKSwKICAgICAgICAgICAgICAgICR0Ym9keSA9ICR0YWJsZS5maW5kKCc+IHRib2R5JyksCiAgICAgICAgICAgICAgICBjb2x1bW4gPSBmdC5jb2x1bW5zW2NvbHVtbkluZGV4XSwKICAgICAgICAgICAgICAgICR0aCA9ICR0YWJsZS5maW5kKCc+IHRoZWFkID4gdHI6bGFzdC1jaGlsZCA+IHRoOmVxKCcgKyBjb2x1bW5JbmRleCArICcpJyksCiAgICAgICAgICAgICAgICBjbHMgPSBmdC5vcHRpb25zLmNsYXNzZXMuc29ydCwKICAgICAgICAgICAgICAgIGV2dCA9IGZ0Lm9wdGlvbnMuZXZlbnRzLnNvcnQ7CgogICAgICAgICAgICBhc2NlbmRpbmcgPSAoYXNjZW5kaW5nID09PSB1bmRlZmluZWQpID8gJHRoLmhhc0NsYXNzKGNscy5zb3J0ZWQpIDoKICAgICAgICAgICAgICAgIChhc2NlbmRpbmcgPT09ICd0b2dnbGUnKSA/ICEkdGguaGFzQ2xhc3MoY2xzLnNvcnRlZCkgOiBhc2NlbmRpbmc7CgogICAgICAgICAgICBpZiAoY29sdW1uLnNvcnQuaWdub3JlID09PSB0cnVlKSByZXR1cm4gdHJ1ZTsKCiAgICAgICAgICAgIC8vcmFpc2UgYSBwcmUtc29ydGluZyBldmVudCBzbyB0aGF0IHdlIGNhbiBjYW5jZWwgdGhlIHNvcnRpbmcgaWYgbmVlZGVkCiAgICAgICAgICAgIHZhciBldmVudCA9IGZ0LnJhaXNlKGV2dC5zb3J0aW5nLCB7IGNvbHVtbjogY29sdW1uLCBkaXJlY3Rpb246IGFzY2VuZGluZyA/ICdBU0MnIDogJ0RFU0MnIH0pOwogICAgICAgICAgICBpZiAoZXZlbnQgJiYgZXZlbnQucmVzdWx0ID09PSBmYWxzZSkgcmV0dXJuOwoKICAgICAgICAgICAgJHRhYmxlLmRhdGEoJ3NvcnRlZCcsIGNvbHVtbi5pbmRleCk7CgogICAgICAgICAgICAkdGFibGUuZmluZCgnPiB0aGVhZCA+IHRyOmxhc3QtY2hpbGQgPiB0aCwgPiB0aGVhZCA+IHRyOmxhc3QtY2hpbGQgPiB0ZCcpLm5vdCgkdGgpLnJlbW92ZUNsYXNzKGNscy5zb3J0ZWQgKyAnICcgKyBjbHMuZGVzY2VuZGluZyk7CgogICAgICAgICAgICBpZiAoYXNjZW5kaW5nID09PSB1bmRlZmluZWQpIHsKICAgICAgICAgICAgICAgIGFzY2VuZGluZyA9ICR0aC5oYXNDbGFzcyhjbHMuc29ydGVkKTsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgaWYgKGFzY2VuZGluZykgewogICAgICAgICAgICAgICAgJHRoLnJlbW92ZUNsYXNzKGNscy5kZXNjZW5kaW5nKS5hZGRDbGFzcyhjbHMuc29ydGVkKTsKICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICR0aC5yZW1vdmVDbGFzcyhjbHMuc29ydGVkKS5hZGRDbGFzcyhjbHMuZGVzY2VuZGluZyk7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIHAuc29ydChmdCwgJHRib2R5LCBjb2x1bW4sIGFzY2VuZGluZyk7CgogICAgICAgICAgICBmdC5iaW5kVG9nZ2xlU2VsZWN0b3JzKCk7CiAgICAgICAgICAgIGZ0LnJhaXNlKGV2dC5zb3J0ZWQsIHsgY29sdW1uOiBjb2x1bW4sIGRpcmVjdGlvbjogYXNjZW5kaW5nID8gJ0FTQycgOiAnREVTQycgfSk7CiAgICAgICAgfTsKCiAgICAgICAgcC5yb3dzID0gZnVuY3Rpb24gKGZ0LCB0Ym9keSwgY29sdW1uKSB7CiAgICAgICAgICAgIHZhciByb3dzID0gW107CiAgICAgICAgICAgIHRib2R5LmZpbmQoJz4gdHInKS5lYWNoKGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgICAgIHZhciAkcm93ID0gJCh0aGlzKSwgJG5leHQgPSBudWxsOwogICAgICAgICAgICAgICAgaWYgKCRyb3cuaGFzQ2xhc3MoZnQub3B0aW9ucy5jbGFzc2VzLmRldGFpbCkpIHJldHVybiB0cnVlOwogICAgICAgICAgICAgICAgaWYgKCRyb3cubmV4dCgpLmhhc0NsYXNzKGZ0Lm9wdGlvbnMuY2xhc3Nlcy5kZXRhaWwpKSB7CiAgICAgICAgICAgICAgICAgICAgJG5leHQgPSAkcm93Lm5leHQoKS5nZXQoMCk7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB2YXIgcm93ID0geyAncm93JzogJHJvdywgJ2RldGFpbCc6ICRuZXh0IH07CiAgICAgICAgICAgICAgICBpZiAoY29sdW1uICE9PSB1bmRlZmluZWQpIHsKICAgICAgICAgICAgICAgICAgICByb3cudmFsdWUgPSBmdC5wYXJzZSh0aGlzLmNlbGxzW2NvbHVtbi5zb3J0Lm1hdGNoXSwgY29sdW1uKTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIHJvd3MucHVzaChyb3cpOwogICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgICAgICAgIH0pLmRldGFjaCgpOwogICAgICAgICAgICByZXR1cm4gcm93czsKICAgICAgICB9OwoKICAgICAgICBwLnNvcnQgPSBmdW5jdGlvbiAoZnQsIHRib2R5LCBjb2x1bW4sIGFzY2VuZGluZykgewogICAgICAgICAgICB2YXIgcm93cyA9IHAucm93cyhmdCwgdGJvZHksIGNvbHVtbik7CiAgICAgICAgICAgIHZhciBzb3J0ZXIgPSBmdC5vcHRpb25zLnNvcnRlcnNbY29sdW1uLnR5cGVdIHx8IGZ0Lm9wdGlvbnMuc29ydGVycy5hbHBoYTsKICAgICAgICAgICAgcm93cy5zb3J0KGZ1bmN0aW9uIChhLCBiKSB7CiAgICAgICAgICAgICAgICBpZiAoYXNjZW5kaW5nKSB7CiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHNvcnRlcihhLnZhbHVlLCBiLnZhbHVlKTsKICAgICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHNvcnRlcihiLnZhbHVlLCBhLnZhbHVlKTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfSk7CiAgICAgICAgICAgIGZvciAodmFyIGogPSAwOyBqIDwgcm93cy5sZW5ndGg7IGorKykgewogICAgICAgICAgICAgICAgdGJvZHkuYXBwZW5kKHJvd3Nbal0ucm93KTsKICAgICAgICAgICAgICAgIGlmIChyb3dzW2pdLmRldGFpbCAhPT0gbnVsbCkgewogICAgICAgICAgICAgICAgICAgIHRib2R5LmFwcGVuZChyb3dzW2pdLmRldGFpbCk7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICB9OwogICAgfQoKICAgIHcuZm9vdGFibGUucGx1Z2lucy5yZWdpc3RlcihTb3J0LCBkZWZhdWx0cyk7Cgp9KShqUXVlcnksIHdpbmRvdyk7]]></data>
	</file>
	<file>
	  <filename>/framework/js/index.html</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[]]></data>
	</file>
	<file>
	  <filename>/framework/js/jquery.colorbox.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[Ly8gQ29sb3JCb3ggdjEuMy4yMC4xIC0galF1ZXJ5IGxpZ2h0Ym94IHBsdWdpbgovLyAoYykgMjAxMSBKYWNrIE1vb3JlIC0gamFja2xtb29yZS5jb20KLy8gTGljZW5zZTogaHR0cDovL3d3dy5vcGVuc291cmNlLm9yZy9saWNlbnNlcy9taXQtbGljZW5zZS5waHAKKGZ1bmN0aW9uICgkLCBkb2N1bWVudCwgd2luZG93KSB7Cgl2YXIKCS8vIERlZmF1bHQgc2V0dGluZ3Mgb2JqZWN0LgoJLy8gU2VlIGh0dHA6Ly9qYWNrbG1vb3JlLmNvbS9jb2xvcmJveCBmb3IgZGV0YWlscy4KCWRlZmF1bHRzID0gewoJCXRyYW5zaXRpb246ICJlbGFzdGljIiwKCQlzcGVlZDogMzAwLAoJCXdpZHRoOiBmYWxzZSwKCQlpbml0aWFsV2lkdGg6ICI2MDAiLAoJCWlubmVyV2lkdGg6IGZhbHNlLAoJCW1heFdpZHRoOiBmYWxzZSwKCQloZWlnaHQ6IGZhbHNlLAoJCWluaXRpYWxIZWlnaHQ6ICI0NTAiLAoJCWlubmVySGVpZ2h0OiBmYWxzZSwKCQltYXhIZWlnaHQ6IGZhbHNlLAoJCXNjYWxlUGhvdG9zOiB0cnVlLAoJCXNjcm9sbGluZzogdHJ1ZSwKCQlpbmxpbmU6IGZhbHNlLAoJCWh0bWw6IGZhbHNlLAoJCWlmcmFtZTogZmFsc2UsCgkJZmFzdElmcmFtZTogdHJ1ZSwKCQlwaG90bzogZmFsc2UsCgkJaHJlZjogZmFsc2UsCgkJdGl0bGU6IGZhbHNlLAoJCXJlbDogZmFsc2UsCgkJb3BhY2l0eTogMC45LAoJCXByZWxvYWRpbmc6IHRydWUsCgoJCWN1cnJlbnQ6ICJpbWFnZSB7Y3VycmVudH0gb2Yge3RvdGFsfSIsCgkJcHJldmlvdXM6ICJwcmV2aW91cyIsCgkJbmV4dDogIm5leHQiLAoJCWNsb3NlOiAiY2xvc2UiLAoJCXhockVycm9yOiAiVGhpcyBjb250ZW50IGZhaWxlZCB0byBsb2FkLiIsCgkJaW1nRXJyb3I6ICJUaGlzIGltYWdlIGZhaWxlZCB0byBsb2FkLiIsCgoJCW9wZW46IGZhbHNlLAoJCXJldHVybkZvY3VzOiB0cnVlLAoJCXJlcG9zaXRpb246IHRydWUsCgkJbG9vcDogdHJ1ZSwKCQlzbGlkZXNob3c6IGZhbHNlLAoJCXNsaWRlc2hvd0F1dG86IHRydWUsCgkJc2xpZGVzaG93U3BlZWQ6IDI1MDAsCgkJc2xpZGVzaG93U3RhcnQ6ICJzdGFydCBzbGlkZXNob3ciLAoJCXNsaWRlc2hvd1N0b3A6ICJzdG9wIHNsaWRlc2hvdyIsCgkJb25PcGVuOiBmYWxzZSwKCQlvbkxvYWQ6IGZhbHNlLAoJCW9uQ29tcGxldGU6IGZhbHNlLAoJCW9uQ2xlYW51cDogZmFsc2UsCgkJb25DbG9zZWQ6IGZhbHNlLAoJCW92ZXJsYXlDbG9zZTogdHJ1ZSwKCQllc2NLZXk6IHRydWUsCgkJYXJyb3dLZXk6IHRydWUsCgkJdG9wOiBmYWxzZSwKCQlib3R0b206IGZhbHNlLAoJCWxlZnQ6IGZhbHNlLAoJCXJpZ2h0OiBmYWxzZSwKCQlmaXhlZDogZmFsc2UsCgkJZGF0YTogdW5kZWZpbmVkCgl9LAoJCgkvLyBBYnN0cmFjdGluZyB0aGUgSFRNTCBhbmQgZXZlbnQgaWRlbnRpZmllcnMgZm9yIGVhc3kgcmVicmFuZGluZwoJY29sb3Jib3ggPSAnY29sb3Jib3gnLAoJcHJlZml4ID0gJ2Nib3gnLAoJYm94RWxlbWVudCA9IHByZWZpeCArICdFbGVtZW50JywKCQoJLy8gRXZlbnRzCglldmVudF9vcGVuID0gcHJlZml4ICsgJ19vcGVuJywKCWV2ZW50X2xvYWQgPSBwcmVmaXggKyAnX2xvYWQnLAoJZXZlbnRfY29tcGxldGUgPSBwcmVmaXggKyAnX2NvbXBsZXRlJywKCWV2ZW50X2NsZWFudXAgPSBwcmVmaXggKyAnX2NsZWFudXAnLAoJZXZlbnRfY2xvc2VkID0gcHJlZml4ICsgJ19jbG9zZWQnLAoJZXZlbnRfcHVyZ2UgPSBwcmVmaXggKyAnX3B1cmdlJywKCQoJLy8gU3BlY2lhbCBIYW5kbGluZyBmb3IgSUUKCWlzSUUgPSAhJC5zdXBwb3J0Lm9wYWNpdHkgJiYgISQuc3VwcG9ydC5zdHlsZSwgLy8gSUU3ICYgSUU4Cglpc0lFNiA9IGlzSUUgJiYgIXdpbmRvdy5YTUxIdHRwUmVxdWVzdCwgLy8gSUU2CglldmVudF9pZTYgPSBwcmVmaXggKyAnX0lFNicsCgoJLy8gQ2FjaGVkIGpRdWVyeSBPYmplY3QgVmFyaWFibGVzCgkkb3ZlcmxheSwKCSRib3gsCgkkd3JhcCwKCSRjb250ZW50LAoJJHRvcEJvcmRlciwKCSRsZWZ0Qm9yZGVyLAoJJHJpZ2h0Qm9yZGVyLAoJJGJvdHRvbUJvcmRlciwKCSRyZWxhdGVkLAoJJHdpbmRvdywKCSRsb2FkZWQsCgkkbG9hZGluZ0JheSwKCSRsb2FkaW5nT3ZlcmxheSwKCSR0aXRsZSwKCSRjdXJyZW50LAoJJHNsaWRlc2hvdywKCSRuZXh0LAoJJHByZXYsCgkkY2xvc2UsCgkkZ3JvdXBDb250cm9scywKCQoJLy8gVmFyaWFibGVzIGZvciBjYWNoZWQgdmFsdWVzIG9yIHVzZSBhY3Jvc3MgbXVsdGlwbGUgZnVuY3Rpb25zCglzZXR0aW5ncywKCWludGVyZmFjZUhlaWdodCwKCWludGVyZmFjZVdpZHRoLAoJbG9hZGVkSGVpZ2h0LAoJbG9hZGVkV2lkdGgsCgllbGVtZW50LAoJaW5kZXgsCglwaG90bywKCW9wZW4sCglhY3RpdmUsCgljbG9zaW5nLAoJbG9hZGluZ1RpbWVyLAoJcHVibGljTWV0aG9kLAoJZGl2ID0gImRpdiIsCglpbml0OwoKCS8vICoqKioqKioqKioqKioqKioKCS8vIEhFTFBFUiBGVU5DVElPTlMKCS8vICoqKioqKioqKioqKioqKioKCQoJLy8gQ29udmllbmNlIGZ1bmN0aW9uIGZvciBjcmVhdGluZyBuZXcgalF1ZXJ5IG9iamVjdHMKCWZ1bmN0aW9uICR0YWcodGFnLCBpZCwgY3NzKSB7CgkJdmFyIGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KHRhZyk7CgoJCWlmIChpZCkgewoJCQllbGVtZW50LmlkID0gcHJlZml4ICsgaWQ7CgkJfQoKCQlpZiAoY3NzKSB7CgkJCWVsZW1lbnQuc3R5bGUuY3NzVGV4dCA9IGNzczsKCQl9CgoJCXJldHVybiAkKGVsZW1lbnQpOwoJfQoKCS8vIERldGVybWluZSB0aGUgbmV4dCBhbmQgcHJldmlvdXMgbWVtYmVycyBpbiBhIGdyb3VwLgoJZnVuY3Rpb24gZ2V0SW5kZXgoaW5jcmVtZW50KSB7CgkJdmFyCgkJbWF4ID0gJHJlbGF0ZWQubGVuZ3RoLAoJCW5ld0luZGV4ID0gKGluZGV4ICsgaW5jcmVtZW50KSAlIG1heDsKCQkKCQlyZXR1cm4gKG5ld0luZGV4IDwgMCkgPyBtYXggKyBuZXdJbmRleCA6IG5ld0luZGV4OwoJfQoKCS8vIENvbnZlcnQgJyUnIGFuZCAncHgnIHZhbHVlcyB0byBpbnRlZ2VycwoJZnVuY3Rpb24gc2V0U2l6ZShzaXplLCBkaW1lbnNpb24pIHsKCQlyZXR1cm4gTWF0aC5yb3VuZCgoLyUvLnRlc3Qoc2l6ZSkgPyAoKGRpbWVuc2lvbiA9PT0gJ3gnID8gd2luV2lkdGgoKSA6IHdpbkhlaWdodCgpKSAvIDEwMCkgOiAxKSAqIHBhcnNlSW50KHNpemUsIDEwKSk7Cgl9CgkKCS8vIENoZWNrcyBhbiBocmVmIHRvIHNlZSBpZiBpdCBpcyBhIHBob3RvLgoJLy8gVGhlcmUgaXMgYSBmb3JjZSBwaG90byBvcHRpb24gKHBob3RvOiB0cnVlKSBmb3IgaHJlZnMgdGhhdCBjYW5ub3QgYmUgbWF0Y2hlZCBieSB0aGlzIHJlZ2V4LgoJZnVuY3Rpb24gaXNJbWFnZSh1cmwpIHsKCQlyZXR1cm4gc2V0dGluZ3MucGhvdG8gfHwgL1wuKGdpZnxwbmd8anAoZXxnfGVnKXxibXB8aWNvKSgoI3xcPykuKik/JC9pLnRlc3QodXJsKTsKCX0KCQoJZnVuY3Rpb24gd2luV2lkdGgoKSB7CgkJLy8gJCh3aW5kb3cpLndpZHRoKCkgaXMgaW5jb3JyZWN0IGZvciBzb21lIG1vYmlsZSBicm93c2VycywgYnV0CgkJLy8gd2luZG93LmlubmVyV2lkdGggaXMgdW5zdXBwb3J0ZWQgaW4gSUU4IGFuZCBsb3dlci4KCQlyZXR1cm4gd2luZG93LmlubmVyV2lkdGggfHwgJHdpbmRvdy53aWR0aCgpOwoJfQoKCWZ1bmN0aW9uIHdpbkhlaWdodCgpIHsKCQlyZXR1cm4gd2luZG93LmlubmVySGVpZ2h0IHx8ICR3aW5kb3cuaGVpZ2h0KCk7Cgl9CgoJLy8gQXNzaWducyBmdW5jdGlvbiByZXN1bHRzIHRvIHRoZWlyIHJlc3BlY3RpdmUgcHJvcGVydGllcwoJZnVuY3Rpb24gbWFrZVNldHRpbmdzKCkgewoJCXZhciBpLAoJCQlkYXRhID0gJC5kYXRhKGVsZW1lbnQsIGNvbG9yYm94KTsKCQkKCQlpZiAoZGF0YSA9PSBudWxsKSB7CgkJCXNldHRpbmdzID0gJC5leHRlbmQoe30sIGRlZmF1bHRzKTsKCQkJaWYgKGNvbnNvbGUgJiYgY29uc29sZS5sb2cpIHsKCQkJCWNvbnNvbGUubG9nKCdFcnJvcjogY2JveEVsZW1lbnQgbWlzc2luZyBzZXR0aW5ncyBvYmplY3QnKTsKCQkJfQoJCX0gZWxzZSB7CgkJCXNldHRpbmdzID0gJC5leHRlbmQoe30sIGRhdGEpOwoJCX0KCQkKCQlmb3IgKGkgaW4gc2V0dGluZ3MpIHsKCQkJaWYgKCQuaXNGdW5jdGlvbihzZXR0aW5nc1tpXSkgJiYgaS5zbGljZSgwLCAyKSAhPT0gJ29uJykgeyAvLyBjaGVja3MgdG8gbWFrZSBzdXJlIHRoZSBmdW5jdGlvbiBpc24ndCBvbmUgb2YgdGhlIGNhbGxiYWNrcywgdGhleSB3aWxsIGJlIGhhbmRsZWQgYXQgdGhlIGFwcHJvcHJpYXRlIHRpbWUuCgkJCQlzZXR0aW5nc1tpXSA9IHNldHRpbmdzW2ldLmNhbGwoZWxlbWVudCk7CgkJCX0KCQl9CgkJCgkJc2V0dGluZ3MucmVsID0gc2V0dGluZ3MucmVsIHx8IGVsZW1lbnQucmVsIHx8ICQoZWxlbWVudCkuZGF0YSgncmVsJykgfHwgJ25vZm9sbG93JzsKCQlzZXR0aW5ncy5ocmVmID0gc2V0dGluZ3MuaHJlZiB8fCAkKGVsZW1lbnQpLmF0dHIoJ2hyZWYnKTsKCQlzZXR0aW5ncy50aXRsZSA9IHNldHRpbmdzLnRpdGxlIHx8IGVsZW1lbnQudGl0bGU7CgkJCgkJaWYgKHR5cGVvZiBzZXR0aW5ncy5ocmVmID09PSAic3RyaW5nIikgewoJCQlzZXR0aW5ncy5ocmVmID0gJC50cmltKHNldHRpbmdzLmhyZWYpOwoJCX0KCX0KCglmdW5jdGlvbiB0cmlnZ2VyKGV2ZW50LCBjYWxsYmFjaykgewoJCSQuZXZlbnQudHJpZ2dlcihldmVudCk7CgkJaWYgKGNhbGxiYWNrKSB7CgkJCWNhbGxiYWNrLmNhbGwoZWxlbWVudCk7CgkJfQoJfQoKCS8vIFNsaWRlc2hvdyBmdW5jdGlvbmFsaXR5CglmdW5jdGlvbiBzbGlkZXNob3coKSB7CgkJdmFyCgkJdGltZU91dCwKCQljbGFzc05hbWUgPSBwcmVmaXggKyAiU2xpZGVzaG93XyIsCgkJY2xpY2sgPSAiY2xpY2suIiArIHByZWZpeCwKCQlzdGFydCwKCQlzdG9wLAoJCWNsZWFyOwoJCQoJCWlmIChzZXR0aW5ncy5zbGlkZXNob3cgJiYgJHJlbGF0ZWRbMV0pIHsKCQkJc3RhcnQgPSBmdW5jdGlvbiAoKSB7CgkJCQkkc2xpZGVzaG93CgkJCQkJLnRleHQoc2V0dGluZ3Muc2xpZGVzaG93U3RvcCkKCQkJCQkudW5iaW5kKGNsaWNrKQoJCQkJCS5iaW5kKGV2ZW50X2NvbXBsZXRlLCBmdW5jdGlvbiAoKSB7CgkJCQkJCWlmIChzZXR0aW5ncy5sb29wIHx8ICRyZWxhdGVkW2luZGV4ICsgMV0pIHsKCQkJCQkJCXRpbWVPdXQgPSBzZXRUaW1lb3V0KHB1YmxpY01ldGhvZC5uZXh0LCBzZXR0aW5ncy5zbGlkZXNob3dTcGVlZCk7CgkJCQkJCX0KCQkJCQl9KQoJCQkJCS5iaW5kKGV2ZW50X2xvYWQsIGZ1bmN0aW9uICgpIHsKCQkJCQkJY2xlYXJUaW1lb3V0KHRpbWVPdXQpOwoJCQkJCX0pCgkJCQkJLm9uZShjbGljayArICcgJyArIGV2ZW50X2NsZWFudXAsIHN0b3ApOwoJCQkJJGJveC5yZW1vdmVDbGFzcyhjbGFzc05hbWUgKyAib2ZmIikuYWRkQ2xhc3MoY2xhc3NOYW1lICsgIm9uIik7CgkJCQl0aW1lT3V0ID0gc2V0VGltZW91dChwdWJsaWNNZXRob2QubmV4dCwgc2V0dGluZ3Muc2xpZGVzaG93U3BlZWQpOwoJCQl9OwoJCQkKCQkJc3RvcCA9IGZ1bmN0aW9uICgpIHsKCQkJCWNsZWFyVGltZW91dCh0aW1lT3V0KTsKCQkJCSRzbGlkZXNob3cKCQkJCQkudGV4dChzZXR0aW5ncy5zbGlkZXNob3dTdGFydCkKCQkJCQkudW5iaW5kKFtldmVudF9jb21wbGV0ZSwgZXZlbnRfbG9hZCwgZXZlbnRfY2xlYW51cCwgY2xpY2tdLmpvaW4oJyAnKSkKCQkJCQkub25lKGNsaWNrLCBmdW5jdGlvbiAoKSB7CgkJCQkJCXB1YmxpY01ldGhvZC5uZXh0KCk7CgkJCQkJCXN0YXJ0KCk7CgkJCQkJfSk7CgkJCQkkYm94LnJlbW92ZUNsYXNzKGNsYXNzTmFtZSArICJvbiIpLmFkZENsYXNzKGNsYXNzTmFtZSArICJvZmYiKTsKCQkJfTsKCQkJCgkJCWlmIChzZXR0aW5ncy5zbGlkZXNob3dBdXRvKSB7CgkJCQlzdGFydCgpOwoJCQl9IGVsc2UgewoJCQkJc3RvcCgpOwoJCQl9CgkJfSBlbHNlIHsKCQkJJGJveC5yZW1vdmVDbGFzcyhjbGFzc05hbWUgKyAib2ZmICIgKyBjbGFzc05hbWUgKyAib24iKTsKCQl9Cgl9CgoJZnVuY3Rpb24gbGF1bmNoKHRhcmdldCkgewoJCWlmICghY2xvc2luZykgewoJCQkKCQkJZWxlbWVudCA9IHRhcmdldDsKCQkJCgkJCW1ha2VTZXR0aW5ncygpOwoJCQkKCQkJJHJlbGF0ZWQgPSAkKGVsZW1lbnQpOwoJCQkKCQkJaW5kZXggPSAwOwoJCQkKCQkJaWYgKHNldHRpbmdzLnJlbCAhPT0gJ25vZm9sbG93JykgewoJCQkJJHJlbGF0ZWQgPSAkKCcuJyArIGJveEVsZW1lbnQpLmZpbHRlcihmdW5jdGlvbiAoKSB7CgkJCQkJdmFyIGRhdGEgPSAkLmRhdGEodGhpcywgY29sb3Jib3gpLAoJCQkJCQlyZWxSZWxhdGVkOwoKCQkJCQlpZiAoZGF0YSkgewoJCQkJCQlyZWxSZWxhdGVkID0gICQodGhpcykuZGF0YSgncmVsJykgfHwgZGF0YS5yZWwgfHwgdGhpcy5yZWw7CgkJCQkJfQoJCQkJCQoJCQkJCXJldHVybiAocmVsUmVsYXRlZCA9PT0gc2V0dGluZ3MucmVsKTsKCQkJCX0pOwoJCQkJaW5kZXggPSAkcmVsYXRlZC5pbmRleChlbGVtZW50KTsKCQkJCQoJCQkJLy8gQ2hlY2sgZGlyZWN0IGNhbGxzIHRvIENvbG9yQm94LgoJCQkJaWYgKGluZGV4ID09PSAtMSkgewoJCQkJCSRyZWxhdGVkID0gJHJlbGF0ZWQuYWRkKGVsZW1lbnQpOwoJCQkJCWluZGV4ID0gJHJlbGF0ZWQubGVuZ3RoIC0gMTsKCQkJCX0KCQkJfQoJCQkKCQkJaWYgKCFvcGVuKSB7CgkJCQlvcGVuID0gYWN0aXZlID0gdHJ1ZTsgLy8gUHJldmVudHMgdGhlIHBhZ2UtY2hhbmdlIGFjdGlvbiBmcm9tIHF1ZXVpbmcgdXAgaWYgdGhlIHZpc2l0b3IgaG9sZHMgZG93biB0aGUgbGVmdCBvciByaWdodCBrZXlzLgoJCQkJCgkJCQkkYm94LnNob3coKTsKCQkJCQoJCQkJaWYgKHNldHRpbmdzLnJldHVybkZvY3VzKSB7CgkJCQkJJChlbGVtZW50KS5ibHVyKCkub25lKGV2ZW50X2Nsb3NlZCwgZnVuY3Rpb24gKCkgewoJCQkJCQkkKHRoaXMpLmZvY3VzKCk7CgkJCQkJfSk7CgkJCQl9CgkJCQkKCQkJCS8vICtzZXR0aW5ncy5vcGFjaXR5IGF2b2lkcyBhIHByb2JsZW0gaW4gSUUgd2hlbiB1c2luZyBub24temVyby1wcmVmaXhlZC1zdHJpbmctdmFsdWVzLCBsaWtlICcuNScKCQkJCSRvdmVybGF5LmNzcyh7Im9wYWNpdHkiOiArc2V0dGluZ3Mub3BhY2l0eSwgImN1cnNvciI6IHNldHRpbmdzLm92ZXJsYXlDbG9zZSA/ICJwb2ludGVyIiA6ICJhdXRvIn0pLnNob3coKTsKCQkJCQoJCQkJLy8gT3BlbnMgaW5pdGFsIGVtcHR5IENvbG9yQm94IHByaW9yIHRvIGNvbnRlbnQgYmVpbmcgbG9hZGVkLgoJCQkJc2V0dGluZ3MudyA9IHNldFNpemUoc2V0dGluZ3MuaW5pdGlhbFdpZHRoLCAneCcpOwoJCQkJc2V0dGluZ3MuaCA9IHNldFNpemUoc2V0dGluZ3MuaW5pdGlhbEhlaWdodCwgJ3knKTsKCQkJCXB1YmxpY01ldGhvZC5wb3NpdGlvbigpOwoJCQkJCgkJCQlpZiAoaXNJRTYpIHsKCQkJCQkkd2luZG93LmJpbmQoJ3Jlc2l6ZS4nICsgZXZlbnRfaWU2ICsgJyBzY3JvbGwuJyArIGV2ZW50X2llNiwgZnVuY3Rpb24gKCkgewoJCQkJCQkkb3ZlcmxheS5jc3Moe3dpZHRoOiB3aW5XaWR0aCgpLCBoZWlnaHQ6IHdpbkhlaWdodCgpLCB0b3A6ICR3aW5kb3cuc2Nyb2xsVG9wKCksIGxlZnQ6ICR3aW5kb3cuc2Nyb2xsTGVmdCgpfSk7CgkJCQkJfSkudHJpZ2dlcigncmVzaXplLicgKyBldmVudF9pZTYpOwoJCQkJfQoJCQkJCgkJCQl0cmlnZ2VyKGV2ZW50X29wZW4sIHNldHRpbmdzLm9uT3Blbik7CgkJCQkKCQkJCSRncm91cENvbnRyb2xzLmFkZCgkdGl0bGUpLmhpZGUoKTsKCQkJCQoJCQkJJGNsb3NlLmh0bWwoc2V0dGluZ3MuY2xvc2UpLnNob3coKTsKCQkJfQoJCQkKCQkJcHVibGljTWV0aG9kLmxvYWQodHJ1ZSk7CgkJfQoJfQoKCS8vIENvbG9yQm94J3MgbWFya3VwIG5lZWRzIHRvIGJlIGFkZGVkIHRvIHRoZSBET00gcHJpb3IgdG8gYmVpbmcgY2FsbGVkCgkvLyBzbyB0aGF0IHRoZSBicm93c2VyIHdpbGwgZ28gYWhlYWQgYW5kIGxvYWQgdGhlIENTUyBiYWNrZ3JvdW5kIGltYWdlcy4KCWZ1bmN0aW9uIGFwcGVuZEhUTUwoKSB7CgkJaWYgKCEkYm94ICYmIGRvY3VtZW50LmJvZHkpIHsKCQkJaW5pdCA9IGZhbHNlOwoKCQkJJHdpbmRvdyA9ICQod2luZG93KTsKCQkJJGJveCA9ICR0YWcoZGl2KS5hdHRyKHtpZDogY29sb3Jib3gsICdjbGFzcyc6IGlzSUUgPyBwcmVmaXggKyAoaXNJRTYgPyAnSUU2JyA6ICdJRScpIDogJyd9KS5oaWRlKCk7CgkJCSRvdmVybGF5ID0gJHRhZyhkaXYsICJPdmVybGF5IiwgaXNJRTYgPyAncG9zaXRpb246YWJzb2x1dGUnIDogJycpLmhpZGUoKTsKCQkJJGxvYWRpbmdPdmVybGF5ID0gJHRhZyhkaXYsICJMb2FkaW5nT3ZlcmxheSIpLmFkZCgkdGFnKGRpdiwgIkxvYWRpbmdHcmFwaGljIikpOwoJCQkkd3JhcCA9ICR0YWcoZGl2LCAiV3JhcHBlciIpOwoJCQkkY29udGVudCA9ICR0YWcoZGl2LCAiQ29udGVudCIpLmFwcGVuZCgKCQkJCSRsb2FkZWQgPSAkdGFnKGRpdiwgIkxvYWRlZENvbnRlbnQiLCAnd2lkdGg6MDsgaGVpZ2h0OjA7IG92ZXJmbG93OmhpZGRlbicpLAoJCQkJJHRpdGxlID0gJHRhZyhkaXYsICJUaXRsZSIpLAoJCQkJJGN1cnJlbnQgPSAkdGFnKGRpdiwgIkN1cnJlbnQiKSwKCQkJCSRuZXh0ID0gJHRhZyhkaXYsICJOZXh0IiksCgkJCQkkcHJldiA9ICR0YWcoZGl2LCAiUHJldmlvdXMiKSwKCQkJCSRzbGlkZXNob3cgPSAkdGFnKGRpdiwgIlNsaWRlc2hvdyIpLmJpbmQoZXZlbnRfb3Blbiwgc2xpZGVzaG93KSwKCQkJCSRjbG9zZSA9ICR0YWcoZGl2LCAiQ2xvc2UiKQoJCQkpOwoJCQkKCQkJJHdyYXAuYXBwZW5kKCAvLyBUaGUgM3gzIEdyaWQgdGhhdCBtYWtlcyB1cCBDb2xvckJveAoJCQkJJHRhZyhkaXYpLmFwcGVuZCgKCQkJCQkkdGFnKGRpdiwgIlRvcExlZnQiKSwKCQkJCQkkdG9wQm9yZGVyID0gJHRhZyhkaXYsICJUb3BDZW50ZXIiKSwKCQkJCQkkdGFnKGRpdiwgIlRvcFJpZ2h0IikKCQkJCSksCgkJCQkkdGFnKGRpdiwgZmFsc2UsICdjbGVhcjpsZWZ0JykuYXBwZW5kKAoJCQkJCSRsZWZ0Qm9yZGVyID0gJHRhZyhkaXYsICJNaWRkbGVMZWZ0IiksCgkJCQkJJGNvbnRlbnQsCgkJCQkJJHJpZ2h0Qm9yZGVyID0gJHRhZyhkaXYsICJNaWRkbGVSaWdodCIpCgkJCQkpLAoJCQkJJHRhZyhkaXYsIGZhbHNlLCAnY2xlYXI6bGVmdCcpLmFwcGVuZCgKCQkJCQkkdGFnKGRpdiwgIkJvdHRvbUxlZnQiKSwKCQkJCQkkYm90dG9tQm9yZGVyID0gJHRhZyhkaXYsICJCb3R0b21DZW50ZXIiKSwKCQkJCQkkdGFnKGRpdiwgIkJvdHRvbVJpZ2h0IikKCQkJCSkKCQkJKS5maW5kKCdkaXYgZGl2JykuY3NzKHsnZmxvYXQnOiAnbGVmdCd9KTsKCQkJCgkJCSRsb2FkaW5nQmF5ID0gJHRhZyhkaXYsIGZhbHNlLCAncG9zaXRpb246YWJzb2x1dGU7IHdpZHRoOjk5OTlweDsgdmlzaWJpbGl0eTpoaWRkZW47IGRpc3BsYXk6bm9uZScpOwoJCQkKCQkJJGdyb3VwQ29udHJvbHMgPSAkbmV4dC5hZGQoJHByZXYpLmFkZCgkY3VycmVudCkuYWRkKCRzbGlkZXNob3cpOwoKCQkJJChkb2N1bWVudC5ib2R5KS5hcHBlbmQoJG92ZXJsYXksICRib3guYXBwZW5kKCR3cmFwLCAkbG9hZGluZ0JheSkpOwoJCX0KCX0KCgkvLyBBZGQgQ29sb3JCb3gncyBldmVudCBiaW5kaW5ncwoJZnVuY3Rpb24gYWRkQmluZGluZ3MoKSB7CgkJaWYgKCRib3gpIHsKCQkJaWYgKCFpbml0KSB7CgkJCQlpbml0ID0gdHJ1ZTsKCgkJCQkvLyBDYWNoZSB2YWx1ZXMgbmVlZGVkIGZvciBzaXplIGNhbGN1bGF0aW9ucwoJCQkJaW50ZXJmYWNlSGVpZ2h0ID0gJHRvcEJvcmRlci5oZWlnaHQoKSArICRib3R0b21Cb3JkZXIuaGVpZ2h0KCkgKyAkY29udGVudC5vdXRlckhlaWdodCh0cnVlKSAtICRjb250ZW50LmhlaWdodCgpOy8vU3VidHJhY3Rpb24gbmVlZGVkIGZvciBJRTYKCQkJCWludGVyZmFjZVdpZHRoID0gJGxlZnRCb3JkZXIud2lkdGgoKSArICRyaWdodEJvcmRlci53aWR0aCgpICsgJGNvbnRlbnQub3V0ZXJXaWR0aCh0cnVlKSAtICRjb250ZW50LndpZHRoKCk7CgkJCQlsb2FkZWRIZWlnaHQgPSAkbG9hZGVkLm91dGVySGVpZ2h0KHRydWUpOwoJCQkJbG9hZGVkV2lkdGggPSAkbG9hZGVkLm91dGVyV2lkdGgodHJ1ZSk7CgkJCQkKCQkJCS8vIFNldHRpbmcgcGFkZGluZyB0byByZW1vdmUgdGhlIG5lZWQgdG8gZG8gc2l6ZSBjb252ZXJzaW9ucyBkdXJpbmcgdGhlIGFuaW1hdGlvbiBzdGVwLgoJCQkJJGJveC5jc3MoeyJwYWRkaW5nLWJvdHRvbSI6IGludGVyZmFjZUhlaWdodCwgInBhZGRpbmctcmlnaHQiOiBpbnRlcmZhY2VXaWR0aH0pOwoKCQkJCS8vIEFub255bW91cyBmdW5jdGlvbnMgaGVyZSBrZWVwIHRoZSBwdWJsaWMgbWV0aG9kIGZyb20gYmVpbmcgY2FjaGVkLCB0aGVyZWJ5IGFsbG93aW5nIHRoZW0gdG8gYmUgcmVkZWZpbmVkIG9uIHRoZSBmbHkuCgkJCQkkbmV4dC5jbGljayhmdW5jdGlvbiAoKSB7CgkJCQkJcHVibGljTWV0aG9kLm5leHQoKTsKCQkJCX0pOwoJCQkJJHByZXYuY2xpY2soZnVuY3Rpb24gKCkgewoJCQkJCXB1YmxpY01ldGhvZC5wcmV2KCk7CgkJCQl9KTsKCQkJCSRjbG9zZS5jbGljayhmdW5jdGlvbiAoKSB7CgkJCQkJcHVibGljTWV0aG9kLmNsb3NlKCk7CgkJCQl9KTsKCQkJCSRvdmVybGF5LmNsaWNrKGZ1bmN0aW9uICgpIHsKCQkJCQlpZiAoc2V0dGluZ3Mub3ZlcmxheUNsb3NlKSB7CgkJCQkJCXB1YmxpY01ldGhvZC5jbG9zZSgpOwoJCQkJCX0KCQkJCX0pOwoJCQkJCgkJCQkvLyBLZXkgQmluZGluZ3MKCQkJCSQoZG9jdW1lbnQpLmJpbmQoJ2tleWRvd24uJyArIHByZWZpeCwgZnVuY3Rpb24gKGUpIHsKCQkJCQl2YXIga2V5ID0gZS5rZXlDb2RlOwoJCQkJCWlmIChvcGVuICYmIHNldHRpbmdzLmVzY0tleSAmJiBrZXkgPT09IDI3KSB7CgkJCQkJCWUucHJldmVudERlZmF1bHQoKTsKCQkJCQkJcHVibGljTWV0aG9kLmNsb3NlKCk7CgkJCQkJfQoJCQkJCWlmIChvcGVuICYmIHNldHRpbmdzLmFycm93S2V5ICYmICRyZWxhdGVkWzFdKSB7CgkJCQkJCWlmIChrZXkgPT09IDM3KSB7CgkJCQkJCQllLnByZXZlbnREZWZhdWx0KCk7CgkJCQkJCQkkcHJldi5jbGljaygpOwoJCQkJCQl9IGVsc2UgaWYgKGtleSA9PT0gMzkpIHsKCQkJCQkJCWUucHJldmVudERlZmF1bHQoKTsKCQkJCQkJCSRuZXh0LmNsaWNrKCk7CgkJCQkJCX0KCQkJCQl9CgkJCQl9KTsKCgkJCQkkKCcuJyArIGJveEVsZW1lbnQsIGRvY3VtZW50KS5saXZlKCdjbGljaycsIGZ1bmN0aW9uIChlKSB7CgkJCQkJLy8gaWdub3JlIG5vbi1sZWZ0LW1vdXNlLWNsaWNrcyBhbmQgY2xpY2tzIG1vZGlmaWVkIHdpdGggY3RybCAvIGNvbW1hbmQsIHNoaWZ0LCBvciBhbHQuCgkJCQkJLy8gU2VlOiBodHRwOi8vamFja2xtb29yZS5jb20vbm90ZXMvY2xpY2stZXZlbnRzLwoJCQkJCWlmICghKGUud2hpY2ggPiAxIHx8IGUuc2hpZnRLZXkgfHwgZS5hbHRLZXkgfHwgZS5tZXRhS2V5KSkgewoJCQkJCQllLnByZXZlbnREZWZhdWx0KCk7CgkJCQkJCWxhdW5jaCh0aGlzKTsKCQkJCQl9CgkJCQl9KTsKCQkJfQoJCQlyZXR1cm4gdHJ1ZTsKCQl9CgkJcmV0dXJuIGZhbHNlOwoJfQoKCS8vIERvbid0IGRvIGFueXRoaW5nIGlmIENvbG9yQm94IGFscmVhZHkgZXhpc3RzLgoJaWYgKCQuY29sb3Jib3gpIHsKCQlyZXR1cm47Cgl9CgoJLy8gQXBwZW5kIHRoZSBIVE1MIHdoZW4gdGhlIERPTSBsb2FkcwoJJChhcHBlbmRIVE1MKTsKCgoJLy8gKioqKioqKioqKioqKioqKgoJLy8gUFVCTElDIEZVTkNUSU9OUwoJLy8gVXNhZ2UgZm9ybWF0OiAkLmZuLmNvbG9yYm94LmNsb3NlKCk7CgkvLyBVc2FnZSBmcm9tIHdpdGhpbiBhbiBpZnJhbWU6IHBhcmVudC4kLmZuLmNvbG9yYm94LmNsb3NlKCk7CgkvLyAqKioqKioqKioqKioqKioqCgkKCXB1YmxpY01ldGhvZCA9ICQuZm5bY29sb3Jib3hdID0gJFtjb2xvcmJveF0gPSBmdW5jdGlvbiAob3B0aW9ucywgY2FsbGJhY2spIHsKCQl2YXIgJHRoaXMgPSB0aGlzOwoJCQoJCW9wdGlvbnMgPSBvcHRpb25zIHx8IHt9OwoJCQoJCWFwcGVuZEhUTUwoKTsKCgkJaWYgKGFkZEJpbmRpbmdzKCkpIHsKCQkJaWYgKCEkdGhpc1swXSkgewoJCQkJaWYgKCR0aGlzLnNlbGVjdG9yKSB7IC8vIGlmIGEgc2VsZWN0b3Igd2FzIGdpdmVuIGFuZCBpdCBkaWRuJ3QgbWF0Y2ggYW55IGVsZW1lbnRzLCBnbyBhaGVhZCBhbmQgZXhpdC4KCQkJCQlyZXR1cm4gJHRoaXM7CgkJCQl9CgkJCQkvLyBpZiBubyBzZWxlY3RvciB3YXMgZ2l2ZW4gKGllLiAkLmNvbG9yYm94KCkpLCBjcmVhdGUgYSB0ZW1wb3JhcnkgZWxlbWVudCB0byB3b3JrIHdpdGgKCQkJCSR0aGlzID0gJCgnPGEvPicpOwoJCQkJb3B0aW9ucy5vcGVuID0gdHJ1ZTsgLy8gYXNzdW1lIGFuIGltbWVkaWF0ZSBvcGVuCgkJCX0KCQkJCgkJCWlmIChjYWxsYmFjaykgewoJCQkJb3B0aW9ucy5vbkNvbXBsZXRlID0gY2FsbGJhY2s7CgkJCX0KCQkJCgkJCSR0aGlzLmVhY2goZnVuY3Rpb24gKCkgewoJCQkJJC5kYXRhKHRoaXMsIGNvbG9yYm94LCAkLmV4dGVuZCh7fSwgJC5kYXRhKHRoaXMsIGNvbG9yYm94KSB8fCBkZWZhdWx0cywgb3B0aW9ucykpOwoJCQl9KS5hZGRDbGFzcyhib3hFbGVtZW50KTsKCQkJCgkJCWlmICgoJC5pc0Z1bmN0aW9uKG9wdGlvbnMub3BlbikgJiYgb3B0aW9ucy5vcGVuLmNhbGwoJHRoaXMpKSB8fCBvcHRpb25zLm9wZW4pIHsKCQkJCWxhdW5jaCgkdGhpc1swXSk7CgkJCX0KCQl9CgkJCgkJcmV0dXJuICR0aGlzOwoJfTsKCglwdWJsaWNNZXRob2QucG9zaXRpb24gPSBmdW5jdGlvbiAoc3BlZWQsIGxvYWRlZENhbGxiYWNrKSB7CgkJdmFyCgkJY3NzLAoJCXRvcCA9IDAsCgkJbGVmdCA9IDAsCgkJb2Zmc2V0ID0gJGJveC5vZmZzZXQoKSwKCQlzY3JvbGxUb3AsCgkJc2Nyb2xsTGVmdDsKCQkKCQkkd2luZG93LnVuYmluZCgncmVzaXplLicgKyBwcmVmaXgpOwoKCQkvLyByZW1vdmUgdGhlIG1vZGFsIHNvIHRoYXQgaXQgZG9lc24ndCBpbmZsdWVuY2UgdGhlIGRvY3VtZW50IHdpZHRoL2hlaWdodAoJCSRib3guY3NzKHt0b3A6IC05ZTQsIGxlZnQ6IC05ZTR9KTsKCgkJc2Nyb2xsVG9wID0gJHdpbmRvdy5zY3JvbGxUb3AoKTsKCQlzY3JvbGxMZWZ0ID0gJHdpbmRvdy5zY3JvbGxMZWZ0KCk7CgoJCWlmIChzZXR0aW5ncy5maXhlZCAmJiAhaXNJRTYpIHsKCQkJb2Zmc2V0LnRvcCAtPSBzY3JvbGxUb3A7CgkJCW9mZnNldC5sZWZ0IC09IHNjcm9sbExlZnQ7CgkJCSRib3guY3NzKHtwb3NpdGlvbjogJ2ZpeGVkJ30pOwoJCX0gZWxzZSB7CgkJCXRvcCA9IHNjcm9sbFRvcDsKCQkJbGVmdCA9IHNjcm9sbExlZnQ7CgkJCSRib3guY3NzKHtwb3NpdGlvbjogJ2Fic29sdXRlJ30pOwoJCX0KCgkJLy8ga2VlcHMgdGhlIHRvcCBhbmQgbGVmdCBwb3NpdGlvbnMgd2l0aGluIHRoZSBicm93c2VyJ3Mgdmlld3BvcnQuCgkJaWYgKHNldHRpbmdzLnJpZ2h0ICE9PSBmYWxzZSkgewoJCQlsZWZ0ICs9IE1hdGgubWF4KHdpbldpZHRoKCkgLSBzZXR0aW5ncy53IC0gbG9hZGVkV2lkdGggLSBpbnRlcmZhY2VXaWR0aCAtIHNldFNpemUoc2V0dGluZ3MucmlnaHQsICd4JyksIDApOwoJCX0gZWxzZSBpZiAoc2V0dGluZ3MubGVmdCAhPT0gZmFsc2UpIHsKCQkJbGVmdCArPSBzZXRTaXplKHNldHRpbmdzLmxlZnQsICd4Jyk7CgkJfSBlbHNlIHsKCQkJbGVmdCArPSBNYXRoLnJvdW5kKE1hdGgubWF4KHdpbldpZHRoKCkgLSBzZXR0aW5ncy53IC0gbG9hZGVkV2lkdGggLSBpbnRlcmZhY2VXaWR0aCwgMCkgLyAyKTsKCQl9CgkJCgkJaWYgKHNldHRpbmdzLmJvdHRvbSAhPT0gZmFsc2UpIHsKCQkJdG9wICs9IE1hdGgubWF4KHdpbkhlaWdodCgpIC0gc2V0dGluZ3MuaCAtIGxvYWRlZEhlaWdodCAtIGludGVyZmFjZUhlaWdodCAtIHNldFNpemUoc2V0dGluZ3MuYm90dG9tLCAneScpLCAwKTsKCQl9IGVsc2UgaWYgKHNldHRpbmdzLnRvcCAhPT0gZmFsc2UpIHsKCQkJdG9wICs9IHNldFNpemUoc2V0dGluZ3MudG9wLCAneScpOwoJCX0gZWxzZSB7CgkJCXRvcCArPSBNYXRoLnJvdW5kKE1hdGgubWF4KHdpbkhlaWdodCgpIC0gc2V0dGluZ3MuaCAtIGxvYWRlZEhlaWdodCAtIGludGVyZmFjZUhlaWdodCwgMCkgLyAyKTsKCQl9CgoJCSRib3guY3NzKHt0b3A6IG9mZnNldC50b3AsIGxlZnQ6IG9mZnNldC5sZWZ0fSk7CgoJCS8vIHNldHRpbmcgdGhlIHNwZWVkIHRvIDAgdG8gcmVkdWNlIHRoZSBkZWxheSBiZXR3ZWVuIHNhbWUtc2l6ZWQgY29udGVudC4KCQlzcGVlZCA9ICgkYm94LndpZHRoKCkgPT09IHNldHRpbmdzLncgKyBsb2FkZWRXaWR0aCAmJiAkYm94LmhlaWdodCgpID09PSBzZXR0aW5ncy5oICsgbG9hZGVkSGVpZ2h0KSA/IDAgOiBzcGVlZCB8fCAwOwoJCQoJCS8vIHRoaXMgZ2l2ZXMgdGhlIHdyYXBwZXIgcGxlbnR5IG9mIGJyZWF0aGluZyByb29tIHNvIGl0J3MgZmxvYXRlZCBjb250ZW50cyBjYW4gbW92ZSBhcm91bmQgc21vb3RobHksCgkJLy8gYnV0IGl0IGhhcyB0byBiZSBzaHJhbmsgZG93biBhcm91bmQgdGhlIHNpemUgb2YgZGl2I2NvbG9yYm94IHdoZW4gaXQncyBkb25lLiAgSWYgbm90LAoJCS8vIGl0IGNhbiBpbnZva2UgYW4gb2JzY3VyZSBJRSBidWcgd2hlbiB1c2luZyBpZnJhbWVzLgoJCSR3cmFwWzBdLnN0eWxlLndpZHRoID0gJHdyYXBbMF0uc3R5bGUuaGVpZ2h0ID0gIjk5OTlweCI7CgkJCgkJZnVuY3Rpb24gbW9kYWxEaW1lbnNpb25zKHRoYXQpIHsKCQkJJHRvcEJvcmRlclswXS5zdHlsZS53aWR0aCA9ICRib3R0b21Cb3JkZXJbMF0uc3R5bGUud2lkdGggPSAkY29udGVudFswXS5zdHlsZS53aWR0aCA9IHRoYXQuc3R5bGUud2lkdGg7CgkJCSRjb250ZW50WzBdLnN0eWxlLmhlaWdodCA9ICRsZWZ0Qm9yZGVyWzBdLnN0eWxlLmhlaWdodCA9ICRyaWdodEJvcmRlclswXS5zdHlsZS5oZWlnaHQgPSB0aGF0LnN0eWxlLmhlaWdodDsKCQl9CgoJCWNzcyA9IHt3aWR0aDogc2V0dGluZ3MudyArIGxvYWRlZFdpZHRoLCBoZWlnaHQ6IHNldHRpbmdzLmggKyBsb2FkZWRIZWlnaHQsIHRvcDogdG9wLCBsZWZ0OiBsZWZ0fTsKCQlpZihzcGVlZD09PTApeyAvLyB0ZW1wb3Jhcnkgd29ya2Fyb3VuZCB0byBzaWRlLXN0ZXAgalF1ZXJ5LVVJIDEuOCBidWcgKGh0dHA6Ly9idWdzLmpxdWVyeS5jb20vdGlja2V0LzEyMjczKQoJCQkkYm94LmNzcyhjc3MpOwoJCX0KCQkkYm94LmRlcXVldWUoKS5hbmltYXRlKGNzcywgewoJCQlkdXJhdGlvbjogc3BlZWQsCgkJCWNvbXBsZXRlOiBmdW5jdGlvbiAoKSB7CgkJCQltb2RhbERpbWVuc2lvbnModGhpcyk7CgkJCQkKCQkJCWFjdGl2ZSA9IGZhbHNlOwoJCQkJCgkJCQkvLyBzaHJpbmsgdGhlIHdyYXBwZXIgZG93biB0byBleGFjdGx5IHRoZSBzaXplIG9mIGNvbG9yYm94IHRvIGF2b2lkIGEgYnVnIGluIElFJ3MgaWZyYW1lIGltcGxlbWVudGF0aW9uLgoJCQkJJHdyYXBbMF0uc3R5bGUud2lkdGggPSAoc2V0dGluZ3MudyArIGxvYWRlZFdpZHRoICsgaW50ZXJmYWNlV2lkdGgpICsgInB4IjsKCQkJCSR3cmFwWzBdLnN0eWxlLmhlaWdodCA9IChzZXR0aW5ncy5oICsgbG9hZGVkSGVpZ2h0ICsgaW50ZXJmYWNlSGVpZ2h0KSArICJweCI7CgkJCQkKCQkJCWlmIChzZXR0aW5ncy5yZXBvc2l0aW9uKSB7CgkJCQkJc2V0VGltZW91dChmdW5jdGlvbiAoKSB7ICAvLyBzbWFsbCBkZWxheSBiZWZvcmUgYmluZGluZyBvbnJlc2l6ZSBkdWUgdG8gYW4gSUU4IGJ1Zy4KCQkJCQkJJHdpbmRvdy5iaW5kKCdyZXNpemUuJyArIHByZWZpeCwgcHVibGljTWV0aG9kLnBvc2l0aW9uKTsKCQkJCQl9LCAxKTsKCQkJCX0KCgkJCQlpZiAobG9hZGVkQ2FsbGJhY2spIHsKCQkJCQlsb2FkZWRDYWxsYmFjaygpOwoJCQkJfQoJCQl9LAoJCQlzdGVwOiBmdW5jdGlvbiAoKSB7CgkJCQltb2RhbERpbWVuc2lvbnModGhpcyk7CgkJCX0KCQl9KTsKCX07CgoJcHVibGljTWV0aG9kLnJlc2l6ZSA9IGZ1bmN0aW9uIChvcHRpb25zKSB7CgkJaWYgKG9wZW4pIHsKCQkJb3B0aW9ucyA9IG9wdGlvbnMgfHwge307CgkJCQoJCQlpZiAob3B0aW9ucy53aWR0aCkgewoJCQkJc2V0dGluZ3MudyA9IHNldFNpemUob3B0aW9ucy53aWR0aCwgJ3gnKSAtIGxvYWRlZFdpZHRoIC0gaW50ZXJmYWNlV2lkdGg7CgkJCX0KCQkJaWYgKG9wdGlvbnMuaW5uZXJXaWR0aCkgewoJCQkJc2V0dGluZ3MudyA9IHNldFNpemUob3B0aW9ucy5pbm5lcldpZHRoLCAneCcpOwoJCQl9CgkJCSRsb2FkZWQuY3NzKHt3aWR0aDogc2V0dGluZ3Mud30pOwoJCQkKCQkJaWYgKG9wdGlvbnMuaGVpZ2h0KSB7CgkJCQlzZXR0aW5ncy5oID0gc2V0U2l6ZShvcHRpb25zLmhlaWdodCwgJ3knKSAtIGxvYWRlZEhlaWdodCAtIGludGVyZmFjZUhlaWdodDsKCQkJfQoJCQlpZiAob3B0aW9ucy5pbm5lckhlaWdodCkgewoJCQkJc2V0dGluZ3MuaCA9IHNldFNpemUob3B0aW9ucy5pbm5lckhlaWdodCwgJ3knKTsKCQkJfQoJCQlpZiAoIW9wdGlvbnMuaW5uZXJIZWlnaHQgJiYgIW9wdGlvbnMuaGVpZ2h0KSB7CgkJCQkkbG9hZGVkLmNzcyh7aGVpZ2h0OiAiYXV0byJ9KTsKCQkJCXNldHRpbmdzLmggPSAkbG9hZGVkLmhlaWdodCgpOwoJCQl9CgkJCSRsb2FkZWQuY3NzKHtoZWlnaHQ6IHNldHRpbmdzLmh9KTsKCQkJCgkJCXB1YmxpY01ldGhvZC5wb3NpdGlvbihzZXR0aW5ncy50cmFuc2l0aW9uID09PSAibm9uZSIgPyAwIDogc2V0dGluZ3Muc3BlZWQpOwoJCX0KCX07CgoJcHVibGljTWV0aG9kLnByZXAgPSBmdW5jdGlvbiAob2JqZWN0KSB7CgkJaWYgKCFvcGVuKSB7CgkJCXJldHVybjsKCQl9CgkJCgkJdmFyIGNhbGxiYWNrLCBzcGVlZCA9IHNldHRpbmdzLnRyYW5zaXRpb24gPT09ICJub25lIiA/IDAgOiBzZXR0aW5ncy5zcGVlZDsKCQkKCQkkbG9hZGVkLnJlbW92ZSgpOwoJCSRsb2FkZWQgPSAkdGFnKGRpdiwgJ0xvYWRlZENvbnRlbnQnKS5hcHBlbmQob2JqZWN0KTsKCQkKCQlmdW5jdGlvbiBnZXRXaWR0aCgpIHsKCQkJc2V0dGluZ3MudyA9IHNldHRpbmdzLncgfHwgJGxvYWRlZC53aWR0aCgpOwoJCQlzZXR0aW5ncy53ID0gc2V0dGluZ3MubXcgJiYgc2V0dGluZ3MubXcgPCBzZXR0aW5ncy53ID8gc2V0dGluZ3MubXcgOiBzZXR0aW5ncy53OwoJCQlyZXR1cm4gc2V0dGluZ3MudzsKCQl9CgkJZnVuY3Rpb24gZ2V0SGVpZ2h0KCkgewoJCQlzZXR0aW5ncy5oID0gc2V0dGluZ3MuaCB8fCAkbG9hZGVkLmhlaWdodCgpOwoJCQlzZXR0aW5ncy5oID0gc2V0dGluZ3MubWggJiYgc2V0dGluZ3MubWggPCBzZXR0aW5ncy5oID8gc2V0dGluZ3MubWggOiBzZXR0aW5ncy5oOwoJCQlyZXR1cm4gc2V0dGluZ3MuaDsKCQl9CgkJCgkJJGxvYWRlZC5oaWRlKCkKCQkuYXBwZW5kVG8oJGxvYWRpbmdCYXkuc2hvdygpKS8vIGNvbnRlbnQgaGFzIHRvIGJlIGFwcGVuZGVkIHRvIHRoZSBET00gZm9yIGFjY3VyYXRlIHNpemUgY2FsY3VsYXRpb25zLgoJCS5jc3Moe3dpZHRoOiBnZXRXaWR0aCgpLCBvdmVyZmxvdzogc2V0dGluZ3Muc2Nyb2xsaW5nID8gJ2F1dG8nIDogJ2hpZGRlbid9KQoJCS5jc3Moe2hlaWdodDogZ2V0SGVpZ2h0KCl9KS8vIHNldHMgdGhlIGhlaWdodCBpbmRlcGVuZGVudGx5IGZyb20gdGhlIHdpZHRoIGluIGNhc2UgdGhlIG5ldyB3aWR0aCBpbmZsdWVuY2VzIHRoZSB2YWx1ZSBvZiBoZWlnaHQuCgkJLnByZXBlbmRUbygkY29udGVudCk7CgkJCgkJJGxvYWRpbmdCYXkuaGlkZSgpOwoJCQoJCS8vIGZsb2F0aW5nIHRoZSBJTUcgcmVtb3ZlcyB0aGUgYm90dG9tIGxpbmUtaGVpZ2h0IGFuZCBmaXhlZCBhIHByb2JsZW0gd2hlcmUgSUUgbWlzY2FsY3VsYXRlcyB0aGUgd2lkdGggb2YgdGhlIHBhcmVudCBlbGVtZW50IGFzIDEwMCUgb2YgdGhlIGRvY3VtZW50IHdpZHRoLgoJCS8vJChwaG90bykuY3NzKHsnZmxvYXQnOiAnbm9uZScsIG1hcmdpbkxlZnQ6ICdhdXRvJywgbWFyZ2luUmlnaHQ6ICdhdXRvJ30pOwoJCQoJCSQocGhvdG8pLmNzcyh7J2Zsb2F0JzogJ25vbmUnfSk7CgkJCgkJLy8gSGlkZXMgU0VMRUNUIGVsZW1lbnRzIGluIElFNiBiZWNhdXNlIHRoZXkgd291bGQgb3RoZXJ3aXNlIHNpdCBvbiB0b3Agb2YgdGhlIG92ZXJsYXkuCgkJaWYgKGlzSUU2KSB7CgkJCSQoJ3NlbGVjdCcpLm5vdCgkYm94LmZpbmQoJ3NlbGVjdCcpKS5maWx0ZXIoZnVuY3Rpb24gKCkgewoJCQkJcmV0dXJuIHRoaXMuc3R5bGUudmlzaWJpbGl0eSAhPT0gJ2hpZGRlbic7CgkJCX0pLmNzcyh7J3Zpc2liaWxpdHknOiAnaGlkZGVuJ30pLm9uZShldmVudF9jbGVhbnVwLCBmdW5jdGlvbiAoKSB7CgkJCQl0aGlzLnN0eWxlLnZpc2liaWxpdHkgPSAnaW5oZXJpdCc7CgkJCX0pOwoJCX0KCQkKCQljYWxsYmFjayA9IGZ1bmN0aW9uICgpIHsKCQkJdmFyIHByZWxvYWQsCgkJCQlpLAoJCQkJdG90YWwgPSAkcmVsYXRlZC5sZW5ndGgsCgkJCQlpZnJhbWUsCgkJCQlmcmFtZUJvcmRlciA9ICdmcmFtZUJvcmRlcicsCgkJCQlhbGxvd1RyYW5zcGFyZW5jeSA9ICdhbGxvd1RyYW5zcGFyZW5jeScsCgkJCQljb21wbGV0ZSwKCQkJCXNyYywKCQkJCWltZywKCQkJCWRhdGE7CgkJCQoJCQlpZiAoIW9wZW4pIHsKCQkJCXJldHVybjsKCQkJfQoJCQkKCQkJZnVuY3Rpb24gcmVtb3ZlRmlsdGVyKCkgewoJCQkJaWYgKGlzSUUpIHsKCQkJCQkkYm94WzBdLnN0eWxlLnJlbW92ZUF0dHJpYnV0ZSgnZmlsdGVyJyk7CgkJCQl9CgkJCX0KCQkJCgkJCWNvbXBsZXRlID0gZnVuY3Rpb24gKCkgewoJCQkJY2xlYXJUaW1lb3V0KGxvYWRpbmdUaW1lcik7CgkJCQkvLyBEZXRhY2hpbmcgZm9yY2VzIEFuZHJpb2Qgc3RvY2sgYnJvd3NlciB0byByZWRyYXcgdGhlIGFyZWEgdW5kZXJuZWF0IHRoZSBsb2FkaW5nIG92ZXJsYXkuICBIaWRpbmcgYWxvbmUgaXNuJ3QgZW5vdWdoLgoJCQkJJGxvYWRpbmdPdmVybGF5LmRldGFjaCgpLmhpZGUoKTsKCQkJCXRyaWdnZXIoZXZlbnRfY29tcGxldGUsIHNldHRpbmdzLm9uQ29tcGxldGUpOwoJCQl9OwoJCQkKCQkJaWYgKGlzSUUpIHsKCQkJCS8vVGhpcyBmYWRlSW4gaGVscHMgdGhlIGJpY3ViaWMgcmVzYW1wbGluZyB0byBraWNrLWluLgoJCQkJaWYgKHBob3RvKSB7CgkJCQkJJGxvYWRlZC5mYWRlSW4oMTAwKTsKCQkJCX0KCQkJfQoJCQkKCQkJJHRpdGxlLmh0bWwoc2V0dGluZ3MudGl0bGUpLmFkZCgkbG9hZGVkKS5zaG93KCk7CgkJCQoJCQlpZiAodG90YWwgPiAxKSB7IC8vIGhhbmRsZSBncm91cGluZwoJCQkJaWYgKHR5cGVvZiBzZXR0aW5ncy5jdXJyZW50ID09PSAic3RyaW5nIikgewoJCQkJCSRjdXJyZW50Lmh0bWwoc2V0dGluZ3MuY3VycmVudC5yZXBsYWNlKCd7Y3VycmVudH0nLCBpbmRleCArIDEpLnJlcGxhY2UoJ3t0b3RhbH0nLCB0b3RhbCkpLnNob3coKTsKCQkJCX0KCQkJCQoJCQkJJG5leHRbKHNldHRpbmdzLmxvb3AgfHwgaW5kZXggPCB0b3RhbCAtIDEpID8gInNob3ciIDogImhpZGUiXSgpLmh0bWwoc2V0dGluZ3MubmV4dCk7CgkJCQkkcHJldlsoc2V0dGluZ3MubG9vcCB8fCBpbmRleCkgPyAic2hvdyIgOiAiaGlkZSJdKCkuaHRtbChzZXR0aW5ncy5wcmV2aW91cyk7CgkJCQkKCQkJCWlmIChzZXR0aW5ncy5zbGlkZXNob3cpIHsKCQkJCQkkc2xpZGVzaG93LnNob3coKTsKCQkJCX0KCQkJCQoJCQkJLy8gUHJlbG9hZHMgaW1hZ2VzIHdpdGhpbiBhIHJlbCBncm91cAoJCQkJaWYgKHNldHRpbmdzLnByZWxvYWRpbmcpIHsKCQkJCQlwcmVsb2FkID0gWwoJCQkJCQlnZXRJbmRleCgtMSksCgkJCQkJCWdldEluZGV4KDEpCgkJCQkJXTsKCQkJCQl3aGlsZSAoaSA9ICRyZWxhdGVkW3ByZWxvYWQucG9wKCldKSB7CgkJCQkJCWRhdGEgPSAkLmRhdGEoaSwgY29sb3Jib3gpOwoJCQkJCQkKCQkJCQkJaWYgKGRhdGEgJiYgZGF0YS5ocmVmKSB7CgkJCQkJCQlzcmMgPSBkYXRhLmhyZWY7CgkJCQkJCQlpZiAoJC5pc0Z1bmN0aW9uKHNyYykpIHsKCQkJCQkJCQlzcmMgPSBzcmMuY2FsbChpKTsKCQkJCQkJCX0KCQkJCQkJfSBlbHNlIHsKCQkJCQkJCXNyYyA9IGkuaHJlZjsKCQkJCQkJfQoKCQkJCQkJaWYgKGlzSW1hZ2Uoc3JjKSkgewoJCQkJCQkJaW1nID0gbmV3IEltYWdlKCk7CgkJCQkJCQlpbWcuc3JjID0gc3JjOwoJCQkJCQl9CgkJCQkJfQoJCQkJfQoJCQl9IGVsc2UgewoJCQkJJGdyb3VwQ29udHJvbHMuaGlkZSgpOwoJCQl9CgkJCQoJCQlpZiAoc2V0dGluZ3MuaWZyYW1lKSB7CgkJCQlpZnJhbWUgPSAkdGFnKCdpZnJhbWUnKVswXTsKCQkJCQoJCQkJaWYgKGZyYW1lQm9yZGVyIGluIGlmcmFtZSkgewoJCQkJCWlmcmFtZVtmcmFtZUJvcmRlcl0gPSAwOwoJCQkJfQoJCQkJaWYgKGFsbG93VHJhbnNwYXJlbmN5IGluIGlmcmFtZSkgewoJCQkJCWlmcmFtZVthbGxvd1RyYW5zcGFyZW5jeV0gPSAidHJ1ZSI7CgkJCQl9CgkJCQkvLyBnaXZlIHRoZSBpZnJhbWUgYSB1bmlxdWUgbmFtZSB0byBwcmV2ZW50IGNhY2hpbmcKCQkJCWlmcmFtZS5uYW1lID0gcHJlZml4ICsgKCtuZXcgRGF0ZSgpKTsKCQkJCWlmIChzZXR0aW5ncy5mYXN0SWZyYW1lKSB7CgkJCQkJY29tcGxldGUoKTsKCQkJCX0gZWxzZSB7CgkJCQkJJChpZnJhbWUpLm9uZSgnbG9hZCcsIGNvbXBsZXRlKTsKCQkJCX0KCQkJCWlmcmFtZS5zcmMgPSBzZXR0aW5ncy5ocmVmOwoJCQkJaWYgKCFzZXR0aW5ncy5zY3JvbGxpbmcpIHsKCQkJCQlpZnJhbWUuc2Nyb2xsaW5nID0gIm5vIjsKCQkJCX0KCQkJCSQoaWZyYW1lKS5hZGRDbGFzcyhwcmVmaXggKyAnSWZyYW1lJykuYXBwZW5kVG8oJGxvYWRlZCkub25lKGV2ZW50X3B1cmdlLCBmdW5jdGlvbiAoKSB7CgkJCQkJaWZyYW1lLnNyYyA9ICIvL2Fib3V0OmJsYW5rIjsKCQkJCX0pOwoJCQl9IGVsc2UgewoJCQkJY29tcGxldGUoKTsKCQkJfQoJCQkKCQkJaWYgKHNldHRpbmdzLnRyYW5zaXRpb24gPT09ICdmYWRlJykgewoJCQkJJGJveC5mYWRlVG8oc3BlZWQsIDEsIHJlbW92ZUZpbHRlcik7CgkJCX0gZWxzZSB7CgkJCQlyZW1vdmVGaWx0ZXIoKTsKCQkJfQoJCX07CgkJCgkJaWYgKHNldHRpbmdzLnRyYW5zaXRpb24gPT09ICdmYWRlJykgewoJCQkkYm94LmZhZGVUbyhzcGVlZCwgMCwgZnVuY3Rpb24gKCkgewoJCQkJcHVibGljTWV0aG9kLnBvc2l0aW9uKDAsIGNhbGxiYWNrKTsKCQkJfSk7CgkJfSBlbHNlIHsKCQkJcHVibGljTWV0aG9kLnBvc2l0aW9uKHNwZWVkLCBjYWxsYmFjayk7CgkJfQoJfTsKCglwdWJsaWNNZXRob2QubG9hZCA9IGZ1bmN0aW9uIChsYXVuY2hlZCkgewoJCXZhciBocmVmLCBzZXRSZXNpemUsIHByZXAgPSBwdWJsaWNNZXRob2QucHJlcDsKCQkKCQlhY3RpdmUgPSB0cnVlOwoJCQoJCXBob3RvID0gZmFsc2U7CgkJCgkJZWxlbWVudCA9ICRyZWxhdGVkW2luZGV4XTsKCQkKCQlpZiAoIWxhdW5jaGVkKSB7CgkJCW1ha2VTZXR0aW5ncygpOwoJCX0KCQkKCQl0cmlnZ2VyKGV2ZW50X3B1cmdlKTsKCQkKCQl0cmlnZ2VyKGV2ZW50X2xvYWQsIHNldHRpbmdzLm9uTG9hZCk7CgkJCgkJc2V0dGluZ3MuaCA9IHNldHRpbmdzLmhlaWdodCA/CgkJCQlzZXRTaXplKHNldHRpbmdzLmhlaWdodCwgJ3knKSAtIGxvYWRlZEhlaWdodCAtIGludGVyZmFjZUhlaWdodCA6CgkJCQlzZXR0aW5ncy5pbm5lckhlaWdodCAmJiBzZXRTaXplKHNldHRpbmdzLmlubmVySGVpZ2h0LCAneScpOwoJCQoJCXNldHRpbmdzLncgPSBzZXR0aW5ncy53aWR0aCA/CgkJCQlzZXRTaXplKHNldHRpbmdzLndpZHRoLCAneCcpIC0gbG9hZGVkV2lkdGggLSBpbnRlcmZhY2VXaWR0aCA6CgkJCQlzZXR0aW5ncy5pbm5lcldpZHRoICYmIHNldFNpemUoc2V0dGluZ3MuaW5uZXJXaWR0aCwgJ3gnKTsKCQkKCQkvLyBTZXRzIHRoZSBtaW5pbXVtIGRpbWVuc2lvbnMgZm9yIHVzZSBpbiBpbWFnZSBzY2FsaW5nCgkJc2V0dGluZ3MubXcgPSBzZXR0aW5ncy53OwoJCXNldHRpbmdzLm1oID0gc2V0dGluZ3MuaDsKCQkKCQkvLyBSZS1ldmFsdWF0ZSB0aGUgbWluaW11bSB3aWR0aCBhbmQgaGVpZ2h0IGJhc2VkIG9uIG1heFdpZHRoIGFuZCBtYXhIZWlnaHQgdmFsdWVzLgoJCS8vIElmIHRoZSB3aWR0aCBvciBoZWlnaHQgZXhjZWVkIHRoZSBtYXhXaWR0aCBvciBtYXhIZWlnaHQsIHVzZSB0aGUgbWF4aW11bSB2YWx1ZXMgaW5zdGVhZC4KCQlpZiAoc2V0dGluZ3MubWF4V2lkdGgpIHsKCQkJc2V0dGluZ3MubXcgPSBzZXRTaXplKHNldHRpbmdzLm1heFdpZHRoLCAneCcpIC0gbG9hZGVkV2lkdGggLSBpbnRlcmZhY2VXaWR0aDsKCQkJc2V0dGluZ3MubXcgPSBzZXR0aW5ncy53ICYmIHNldHRpbmdzLncgPCBzZXR0aW5ncy5tdyA/IHNldHRpbmdzLncgOiBzZXR0aW5ncy5tdzsKCQl9CgkJaWYgKHNldHRpbmdzLm1heEhlaWdodCkgewoJCQlzZXR0aW5ncy5taCA9IHNldFNpemUoc2V0dGluZ3MubWF4SGVpZ2h0LCAneScpIC0gbG9hZGVkSGVpZ2h0IC0gaW50ZXJmYWNlSGVpZ2h0OwoJCQlzZXR0aW5ncy5taCA9IHNldHRpbmdzLmggJiYgc2V0dGluZ3MuaCA8IHNldHRpbmdzLm1oID8gc2V0dGluZ3MuaCA6IHNldHRpbmdzLm1oOwoJCX0KCQkKCQlocmVmID0gc2V0dGluZ3MuaHJlZjsKCQkKCQlsb2FkaW5nVGltZXIgPSBzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHsKCQkJJGxvYWRpbmdPdmVybGF5LnNob3coKS5hcHBlbmRUbygkY29udGVudCk7CgkJfSwgMTAwKTsKCQkKCQlpZiAoc2V0dGluZ3MuaW5saW5lKSB7CgkJCS8vIEluc2VydHMgYW4gZW1wdHkgcGxhY2Vob2xkZXIgd2hlcmUgaW5saW5lIGNvbnRlbnQgaXMgYmVpbmcgcHVsbGVkIGZyb20uCgkJCS8vIEFuIGV2ZW50IGlzIGJvdW5kIHRvIHB1dCBpbmxpbmUgY29udGVudCBiYWNrIHdoZW4gQ29sb3JCb3ggY2xvc2VzIG9yIGxvYWRzIG5ldyBjb250ZW50LgoJCQkkdGFnKGRpdikuaGlkZSgpLmluc2VydEJlZm9yZSgkKGhyZWYpWzBdKS5vbmUoZXZlbnRfcHVyZ2UsIGZ1bmN0aW9uICgpIHsKCQkJCSQodGhpcykucmVwbGFjZVdpdGgoJGxvYWRlZC5jaGlsZHJlbigpKTsKCQkJfSk7CgkJCXByZXAoJChocmVmKSk7CgkJfSBlbHNlIGlmIChzZXR0aW5ncy5pZnJhbWUpIHsKCQkJLy8gSUZyYW1lIGVsZW1lbnQgd29uJ3QgYmUgYWRkZWQgdG8gdGhlIERPTSB1bnRpbCBpdCBpcyByZWFkeSB0byBiZSBkaXNwbGF5ZWQsCgkJCS8vIHRvIGF2b2lkIHByb2JsZW1zIHdpdGggRE9NLXJlYWR5IEpTIHRoYXQgbWlnaHQgYmUgdHJ5aW5nIHRvIHJ1biBpbiB0aGF0IGlmcmFtZS4KCQkJcHJlcCgiICIpOwoJCX0gZWxzZSBpZiAoc2V0dGluZ3MuaHRtbCkgewoJCQlwcmVwKHNldHRpbmdzLmh0bWwpOwoJCX0gZWxzZSBpZiAoaXNJbWFnZShocmVmKSkgewoJCQkkKHBob3RvID0gbmV3IEltYWdlKCkpCgkJCS5hZGRDbGFzcyhwcmVmaXggKyAnUGhvdG8nKQoJCQkuZXJyb3IoZnVuY3Rpb24gKCkgewoJCQkJc2V0dGluZ3MudGl0bGUgPSBmYWxzZTsKCQkJCXByZXAoJHRhZyhkaXYsICdFcnJvcicpLmh0bWwoc2V0dGluZ3MuaW1nRXJyb3IpKTsKCQkJfSkKCQkJLmxvYWQoZnVuY3Rpb24gKCkgewoJCQkJdmFyIHBlcmNlbnQ7CgkJCQlwaG90by5vbmxvYWQgPSBudWxsOyAvL3N0b3BzIGFuaW1hdGVkIGdpZnMgZnJvbSBmaXJpbmcgdGhlIG9ubG9hZCByZXBlYXRlZGx5LgoJCQkJCgkJCQlpZiAoc2V0dGluZ3Muc2NhbGVQaG90b3MpIHsKCQkJCQlzZXRSZXNpemUgPSBmdW5jdGlvbiAoKSB7CgkJCQkJCXBob3RvLmhlaWdodCAtPSBwaG90by5oZWlnaHQgKiBwZXJjZW50OwoJCQkJCQlwaG90by53aWR0aCAtPSBwaG90by53aWR0aCAqIHBlcmNlbnQ7CgkJCQkJfTsKCQkJCQlpZiAoc2V0dGluZ3MubXcgJiYgcGhvdG8ud2lkdGggPiBzZXR0aW5ncy5tdykgewoJCQkJCQlwZXJjZW50ID0gKHBob3RvLndpZHRoIC0gc2V0dGluZ3MubXcpIC8gcGhvdG8ud2lkdGg7CgkJCQkJCXNldFJlc2l6ZSgpOwoJCQkJCX0KCQkJCQlpZiAoc2V0dGluZ3MubWggJiYgcGhvdG8uaGVpZ2h0ID4gc2V0dGluZ3MubWgpIHsKCQkJCQkJcGVyY2VudCA9IChwaG90by5oZWlnaHQgLSBzZXR0aW5ncy5taCkgLyBwaG90by5oZWlnaHQ7CgkJCQkJCXNldFJlc2l6ZSgpOwoJCQkJCX0KCQkJCX0KCQkJCQoJCQkJaWYgKHNldHRpbmdzLmgpIHsKCQkJCQlwaG90by5zdHlsZS5tYXJnaW5Ub3AgPSBNYXRoLm1heChzZXR0aW5ncy5oIC0gcGhvdG8uaGVpZ2h0LCAwKSAvIDIgKyAncHgnOwoJCQkJfQoJCQkJCgkJCQlpZiAoJHJlbGF0ZWRbMV0gJiYgKHNldHRpbmdzLmxvb3AgfHwgJHJlbGF0ZWRbaW5kZXggKyAxXSkpIHsKCQkJCQlwaG90by5zdHlsZS5jdXJzb3IgPSAncG9pbnRlcic7CgkJCQkJcGhvdG8ub25jbGljayA9IGZ1bmN0aW9uICgpIHsKCQkJCQkJcHVibGljTWV0aG9kLm5leHQoKTsKCQkJCQl9OwoJCQkJfQoJCQkJCgkJCQlpZiAoaXNJRSkgewoJCQkJCXBob3RvLnN0eWxlLm1zSW50ZXJwb2xhdGlvbk1vZGUgPSAnYmljdWJpYyc7CgkJCQl9CgkJCQkKCQkJCXNldFRpbWVvdXQoZnVuY3Rpb24gKCkgeyAvLyBBIHBhdXNlIGJlY2F1c2UgQ2hyb21lIHdpbGwgc29tZXRpbWVzIHJlcG9ydCBhIDAgYnkgMCBzaXplIG90aGVyd2lzZS4KCQkJCQlwcmVwKHBob3RvKTsKCQkJCX0sIDEpOwoJCQl9KTsKCQkJCgkJCXNldFRpbWVvdXQoZnVuY3Rpb24gKCkgeyAvLyBBIHBhdXNlIGJlY2F1c2UgT3BlcmEgMTAuNisgd2lsbCBzb21ldGltZXMgbm90IHJ1biB0aGUgb25sb2FkIGZ1bmN0aW9uIG90aGVyd2lzZS4KCQkJCXBob3RvLnNyYyA9IGhyZWY7CgkJCX0sIDEpOwoJCX0gZWxzZSBpZiAoaHJlZikgewoJCQkkbG9hZGluZ0JheS5sb2FkKGhyZWYsIHNldHRpbmdzLmRhdGEsIGZ1bmN0aW9uIChkYXRhLCBzdGF0dXMsIHhocikgewoJCQkJcHJlcChzdGF0dXMgPT09ICdlcnJvcicgPyAkdGFnKGRpdiwgJ0Vycm9yJykuaHRtbChzZXR0aW5ncy54aHJFcnJvcikgOiAkKHRoaXMpLmNvbnRlbnRzKCkpOwoJCQl9KTsKCQl9Cgl9OwoJCQoJLy8gTmF2aWdhdGVzIHRvIHRoZSBuZXh0IHBhZ2UvaW1hZ2UgaW4gYSBzZXQuCglwdWJsaWNNZXRob2QubmV4dCA9IGZ1bmN0aW9uICgpIHsKCQlpZiAoIWFjdGl2ZSAmJiAkcmVsYXRlZFsxXSAmJiAoc2V0dGluZ3MubG9vcCB8fCAkcmVsYXRlZFtpbmRleCArIDFdKSkgewoJCQlpbmRleCA9IGdldEluZGV4KDEpOwoJCQlwdWJsaWNNZXRob2QubG9hZCgpOwoJCX0KCX07CgkKCXB1YmxpY01ldGhvZC5wcmV2ID0gZnVuY3Rpb24gKCkgewoJCWlmICghYWN0aXZlICYmICRyZWxhdGVkWzFdICYmIChzZXR0aW5ncy5sb29wIHx8IGluZGV4KSkgewoJCQlpbmRleCA9IGdldEluZGV4KC0xKTsKCQkJcHVibGljTWV0aG9kLmxvYWQoKTsKCQl9Cgl9OwoKCS8vIE5vdGU6IHRvIHVzZSB0aGlzIHdpdGhpbiBhbiBpZnJhbWUgdXNlIHRoZSBmb2xsb3dpbmcgZm9ybWF0OiBwYXJlbnQuJC5mbi5jb2xvcmJveC5jbG9zZSgpOwoJcHVibGljTWV0aG9kLmNsb3NlID0gZnVuY3Rpb24gKCkgewoJCWlmIChvcGVuICYmICFjbG9zaW5nKSB7CgkJCQoJCQljbG9zaW5nID0gdHJ1ZTsKCQkJCgkJCW9wZW4gPSBmYWxzZTsKCQkJCgkJCXRyaWdnZXIoZXZlbnRfY2xlYW51cCwgc2V0dGluZ3Mub25DbGVhbnVwKTsKCQkJCgkJCSR3aW5kb3cudW5iaW5kKCcuJyArIHByZWZpeCArICcgLicgKyBldmVudF9pZTYpOwoJCQkKCQkJJG92ZXJsYXkuZmFkZVRvKDIwMCwgMCk7CgkJCQoJCQkkYm94LnN0b3AoKS5mYWRlVG8oMzAwLCAwLCBmdW5jdGlvbiAoKSB7CgkJCQoJCQkJJGJveC5hZGQoJG92ZXJsYXkpLmNzcyh7J29wYWNpdHknOiAxLCBjdXJzb3I6ICdhdXRvJ30pLmhpZGUoKTsKCQkJCQoJCQkJdHJpZ2dlcihldmVudF9wdXJnZSk7CgkJCQkKCQkJCSRsb2FkZWQucmVtb3ZlKCk7CgkJCQkKCQkJCXNldFRpbWVvdXQoZnVuY3Rpb24gKCkgewoJCQkJCWNsb3NpbmcgPSBmYWxzZTsKCQkJCQl0cmlnZ2VyKGV2ZW50X2Nsb3NlZCwgc2V0dGluZ3Mub25DbG9zZWQpOwoJCQkJfSwgMSk7CgkJCX0pOwoJCX0KCX07CgoJLy8gUmVtb3ZlcyBjaGFuZ2VzIENvbG9yQm94IG1hZGUgdG8gdGhlIGRvY3VtZW50LCBidXQgZG9lcyBub3QgcmVtb3ZlIHRoZSBwbHVnaW4KCS8vIGZyb20galF1ZXJ5LgoJcHVibGljTWV0aG9kLnJlbW92ZSA9IGZ1bmN0aW9uICgpIHsKCQkkKFtdKS5hZGQoJGJveCkuYWRkKCRvdmVybGF5KS5yZW1vdmUoKTsKCQkkYm94ID0gbnVsbDsKCQkkKCcuJyArIGJveEVsZW1lbnQpCgkJCS5yZW1vdmVEYXRhKGNvbG9yYm94KQoJCQkucmVtb3ZlQ2xhc3MoYm94RWxlbWVudCkKCQkJLmRpZSgpOwoJfTsKCgkvLyBBIG1ldGhvZCBmb3IgZmV0Y2hpbmcgdGhlIGN1cnJlbnQgZWxlbWVudCBDb2xvckJveCBpcyByZWZlcmVuY2luZy4KCS8vIHJldHVybnMgYSBqUXVlcnkgb2JqZWN0LgoJcHVibGljTWV0aG9kLmVsZW1lbnQgPSBmdW5jdGlvbiAoKSB7CgkJcmV0dXJuICQoZWxlbWVudCk7Cgl9OwoKCXB1YmxpY01ldGhvZC5zZXR0aW5ncyA9IGRlZmF1bHRzOwoKfShqUXVlcnksIGRvY3VtZW50LCB0aGlzKSk7]]></data>
	</file>
	<file>
	  <filename>/framework/js/jquery.slug.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[Ly8KLy8gICAgICBqUXVlcnkgU2x1ZyBHZW5lcmF0aW9uIFBsdWdpbiBieSBQZXJyeSBUcmluaWVyIChwZXJyeXRyaW5pZXJAZ21haWwuY29tKQovLyAgTGljZW5zZWQgdW5kZXIgdGhlIEdQTDogaHR0cDovL3d3dy5nbnUub3JnL2NvcHlsZWZ0L2dwbC5odG1sCgpqUXVlcnkuZm4uc2x1ZyA9IGZ1bmN0aW9uKG9wdGlvbnMpIHsKICAgIHZhciBzZXR0aW5ncyA9IHsKICAgICAgICBzbHVnIDogJ3NsdWcnLCAvLyBDbGFzcyB1c2VkIGZvciBzbHVnIGRlc3RpbmF0aW9uIGlucHV0IGFuZCBzcGFuLiBUaGUgc3BhbiBpcyBjcmVhdGVkIG9uICQoZG9jdW1lbnQpLnJlYWR5KCkKICAgICAgICBoaWRlIDogdHJ1ZSwgLy8gQm9vbGVhbiAtIEJ5IGRlZmF1bHQgdGhlIHNsdWcgaW5wdXQgZmllbGQgaXMgaGlkZGVuLCBzZXQgdG8gZmFsc2UgdG8gc2hvdyB0aGUgaW5wdXQgZmllbGQgYW5kIGhpZGUgdGhlIHNwYW4uCiAgICAgICAgcHJlZml4IDogJycgLy8gcHJlZml4IGZvciBzbHVnIGlmIHNsdWcgaXMgbnVtZXJpYwogICAgfTsKCiAgICBpZiAob3B0aW9ucykgewogICAgICAgIGpRdWVyeS5leHRlbmQoc2V0dGluZ3MsIG9wdGlvbnMpOwogICAgfQoKICAgICR0aGlzID0galF1ZXJ5KHRoaXMpOwoKICAgIGpRdWVyeShkb2N1bWVudCkucmVhZHkoZnVuY3Rpb24oKSB7CiAgICAgICAgaWYgKHNldHRpbmdzLmhpZGUpIHsKICAgICAgICAgICAgalF1ZXJ5KCdpbnB1dC4nICsgc2V0dGluZ3Muc2x1ZykuYWZ0ZXIoIjxzcGFuIGNsYXNzPSIgKyBzZXR0aW5ncy5zbHVnICsgIj48L3NwYW4+Iik7CiAgICAgICAgICAgIGpRdWVyeSgnaW5wdXQuJyArIHNldHRpbmdzLnNsdWcpLmhpZGUoKTsKICAgICAgICB9CiAgICB9KTsKCiAgICAvLyBodHRwOi8vc3RhY2tvdmVyZmxvdy5jb20vcXVlc3Rpb25zLzk5MDkwNC9qYXZhc2NyaXB0LXJlbW92ZS1hY2NlbnRzLWluLXN0cmluZ3MjYW5zd2VyLTU5MTI3NDYKICAgIHZhciBkZWZhdWx0RGlhY3JpdGljc1JlbW92YWxNYXAgPSBbewogICAgICAgICdiYXNlJyA6ICdBJywKICAgICAgICAnbGV0dGVycycgOiAvW1x1MDA0MVx1MjRCNlx1RkYyMVx1MDBDMFx1MDBDMVx1MDBDMlx1MUVBNlx1MUVBNFx1MUVBQVx1MUVBOFx1MDBDM1x1MDEwMFx1MDEwMlx1MUVCMFx1MUVBRVx1MUVCNFx1MUVCMlx1MDIyNlx1MDFFMFx1MDBDNFx1MDFERVx1MUVBMlx1MDBDNVx1MDFGQVx1MDFDRFx1MDIwMFx1MDIwMlx1MUVBMFx1MUVBQ1x1MUVCNlx1MUUwMFx1MDEwNFx1MDIzQVx1MkM2Rl0vZwogICAgfSwgewogICAgICAgICdiYXNlJyA6ICdBQScsCiAgICAgICAgJ2xldHRlcnMnIDogL1tcdUE3MzJdL2cKICAgIH0sIHsKICAgICAgICAnYmFzZScgOiAnQUUnLAogICAgICAgICdsZXR0ZXJzJyA6IC9bXHUwMEM2XHUwMUZDXHUwMUUyXS9nCiAgICB9LCB7CiAgICAgICAgJ2Jhc2UnIDogJ0FPJywKICAgICAgICAnbGV0dGVycycgOiAvW1x1QTczNF0vZwogICAgfSwgewogICAgICAgICdiYXNlJyA6ICdBVScsCiAgICAgICAgJ2xldHRlcnMnIDogL1tcdUE3MzZdL2cKICAgIH0sIHsKICAgICAgICAnYmFzZScgOiAnQVYnLAogICAgICAgICdsZXR0ZXJzJyA6IC9bXHVBNzM4XHVBNzNBXS9nCiAgICB9LCB7CiAgICAgICAgJ2Jhc2UnIDogJ0FZJywKICAgICAgICAnbGV0dGVycycgOiAvW1x1QTczQ10vZwogICAgfSwgewogICAgICAgICdiYXNlJyA6ICdCJywKICAgICAgICAnbGV0dGVycycgOiAvW1x1MDA0Mlx1MjRCN1x1RkYyMlx1MUUwMlx1MUUwNFx1MUUwNlx1MDI0M1x1MDE4Mlx1MDE4MV0vZwogICAgfSwgewogICAgICAgICdiYXNlJyA6ICdDJywKICAgICAgICAnbGV0dGVycycgOiAvW1x1MDA0M1x1MjRCOFx1RkYyM1x1MDEwNlx1MDEwOFx1MDEwQVx1MDEwQ1x1MDBDN1x1MUUwOFx1MDE4N1x1MDIzQlx1QTczRV0vZwogICAgfSwgewogICAgICAgICdiYXNlJyA6ICdEJywKICAgICAgICAnbGV0dGVycycgOiAvW1x1MDA0NFx1MjRCOVx1RkYyNFx1MUUwQVx1MDEwRVx1MUUwQ1x1MUUxMFx1MUUxMlx1MUUwRVx1MDExMFx1MDE4Qlx1MDE4QVx1MDE4OVx1QTc3OV0vZwogICAgfSwgewogICAgICAgICdiYXNlJyA6ICdEWicsCiAgICAgICAgJ2xldHRlcnMnIDogL1tcdTAxRjFcdTAxQzRdL2cKICAgIH0sIHsKICAgICAgICAnYmFzZScgOiAnRHonLAogICAgICAgICdsZXR0ZXJzJyA6IC9bXHUwMUYyXHUwMUM1XS9nCiAgICB9LCB7CiAgICAgICAgJ2Jhc2UnIDogJ0UnLAogICAgICAgICdsZXR0ZXJzJyA6IC9bXHUwMDQ1XHUyNEJBXHVGRjI1XHUwMEM4XHUwMEM5XHUwMENBXHUxRUMwXHUxRUJFXHUxRUM0XHUxRUMyXHUxRUJDXHUwMTEyXHUxRTE0XHUxRTE2XHUwMTE0XHUwMTE2XHUwMENCXHUxRUJBXHUwMTFBXHUwMjA0XHUwMjA2XHUxRUI4XHUxRUM2XHUwMjI4XHUxRTFDXHUwMTE4XHUxRTE4XHUxRTFBXHUwMTkwXHUwMThFXS9nCiAgICB9LCB7CiAgICAgICAgJ2Jhc2UnIDogJ0YnLAogICAgICAgICdsZXR0ZXJzJyA6IC9bXHUwMDQ2XHUyNEJCXHVGRjI2XHUxRTFFXHUwMTkxXHVBNzdCXS9nCiAgICB9LCB7CiAgICAgICAgJ2Jhc2UnIDogJ0cnLAogICAgICAgICdsZXR0ZXJzJyA6IC9bXHUwMDQ3XHUyNEJDXHVGRjI3XHUwMUY0XHUwMTFDXHUxRTIwXHUwMTFFXHUwMTIwXHUwMUU2XHUwMTIyXHUwMUU0XHUwMTkzXHVBN0EwXHVBNzdEXHVBNzdFXS9nCiAgICB9LCB7CiAgICAgICAgJ2Jhc2UnIDogJ0gnLAogICAgICAgICdsZXR0ZXJzJyA6IC9bXHUwMDQ4XHUyNEJEXHVGRjI4XHUwMTI0XHUxRTIyXHUxRTI2XHUwMjFFXHUxRTI0XHUxRTI4XHUxRTJBXHUwMTI2XHUyQzY3XHUyQzc1XHVBNzhEXS9nCiAgICB9LCB7CiAgICAgICAgJ2Jhc2UnIDogJ0knLAogICAgICAgICdsZXR0ZXJzJyA6IC9bXHUwMDQ5XHUyNEJFXHVGRjI5XHUwMENDXHUwMENEXHUwMENFXHUwMTI4XHUwMTJBXHUwMTJDXHUwMTMwXHUwMENGXHUxRTJFXHUxRUM4XHUwMUNGXHUwMjA4XHUwMjBBXHUxRUNBXHUwMTJFXHUxRTJDXHUwMTk3XS9nCiAgICB9LCB7CiAgICAgICAgJ2Jhc2UnIDogJ0onLAogICAgICAgICdsZXR0ZXJzJyA6IC9bXHUwMDRBXHUyNEJGXHVGRjJBXHUwMTM0XHUwMjQ4XS9nCiAgICB9LCB7CiAgICAgICAgJ2Jhc2UnIDogJ0snLAogICAgICAgICdsZXR0ZXJzJyA6IC9bXHUwMDRCXHUyNEMwXHVGRjJCXHUxRTMwXHUwMUU4XHUxRTMyXHUwMTM2XHUxRTM0XHUwMTk4XHUyQzY5XHVBNzQwXHVBNzQyXHVBNzQ0XHVBN0EyXS9nCiAgICB9LCB7CiAgICAgICAgJ2Jhc2UnIDogJ0wnLAogICAgICAgICdsZXR0ZXJzJyA6IC9bXHUwMDRDXHUyNEMxXHVGRjJDXHUwMTNGXHUwMTM5XHUwMTNEXHUxRTM2XHUxRTM4XHUwMTNCXHUxRTNDXHUxRTNBXHUwMTQxXHUwMjNEXHUyQzYyXHUyQzYwXHVBNzQ4XHVBNzQ2XHVBNzgwXS9nCiAgICB9LCB7CiAgICAgICAgJ2Jhc2UnIDogJ0xKJywKICAgICAgICAnbGV0dGVycycgOiAvW1x1MDFDN10vZwogICAgfSwgewogICAgICAgICdiYXNlJyA6ICdMaicsCiAgICAgICAgJ2xldHRlcnMnIDogL1tcdTAxQzhdL2cKICAgIH0sIHsKICAgICAgICAnYmFzZScgOiAnTScsCiAgICAgICAgJ2xldHRlcnMnIDogL1tcdTAwNERcdTI0QzJcdUZGMkRcdTFFM0VcdTFFNDBcdTFFNDJcdTJDNkVcdTAxOUNdL2cKICAgIH0sIHsKICAgICAgICAnYmFzZScgOiAnTicsCiAgICAgICAgJ2xldHRlcnMnIDogL1tcdTAwNEVcdTI0QzNcdUZGMkVcdTAxRjhcdTAxNDNcdTAwRDFcdTFFNDRcdTAxNDdcdTFFNDZcdTAxNDVcdTFFNEFcdTFFNDhcdTAyMjBcdTAxOURcdUE3OTBcdUE3QTRdL2cKICAgIH0sIHsKICAgICAgICAnYmFzZScgOiAnTkonLAogICAgICAgICdsZXR0ZXJzJyA6IC9bXHUwMUNBXS9nCiAgICB9LCB7CiAgICAgICAgJ2Jhc2UnIDogJ05qJywKICAgICAgICAnbGV0dGVycycgOiAvW1x1MDFDQl0vZwogICAgfSwgewogICAgICAgICdiYXNlJyA6ICdPJywKICAgICAgICAnbGV0dGVycycgOiAvW1x1MDA0Rlx1MjRDNFx1RkYyRlx1MDBEMlx1MDBEM1x1MDBENFx1MUVEMlx1MUVEMFx1MUVENlx1MUVENFx1MDBENVx1MUU0Q1x1MDIyQ1x1MUU0RVx1MDE0Q1x1MUU1MFx1MUU1Mlx1MDE0RVx1MDIyRVx1MDIzMFx1MDBENlx1MDIyQVx1MUVDRVx1MDE1MFx1MDFEMVx1MDIwQ1x1MDIwRVx1MDFBMFx1MUVEQ1x1MUVEQVx1MUVFMFx1MUVERVx1MUVFMlx1MUVDQ1x1MUVEOFx1MDFFQVx1MDFFQ1x1MDBEOFx1MDFGRVx1MDE4Nlx1MDE5Rlx1QTc0QVx1QTc0Q10vZwogICAgfSwgewogICAgICAgICdiYXNlJyA6ICdPSScsCiAgICAgICAgJ2xldHRlcnMnIDogL1tcdTAxQTJdL2cKICAgIH0sIHsKICAgICAgICAnYmFzZScgOiAnT08nLAogICAgICAgICdsZXR0ZXJzJyA6IC9bXHVBNzRFXS9nCiAgICB9LCB7CiAgICAgICAgJ2Jhc2UnIDogJ09VJywKICAgICAgICAnbGV0dGVycycgOiAvW1x1MDIyMl0vZwogICAgfSwgewogICAgICAgICdiYXNlJyA6ICdQJywKICAgICAgICAnbGV0dGVycycgOiAvW1x1MDA1MFx1MjRDNVx1RkYzMFx1MUU1NFx1MUU1Nlx1MDFBNFx1MkM2M1x1QTc1MFx1QTc1Mlx1QTc1NF0vZwogICAgfSwgewogICAgICAgICdiYXNlJyA6ICdRJywKICAgICAgICAnbGV0dGVycycgOiAvW1x1MDA1MVx1MjRDNlx1RkYzMVx1QTc1Nlx1QTc1OFx1MDI0QV0vZwogICAgfSwgewogICAgICAgICdiYXNlJyA6ICdSJywKICAgICAgICAnbGV0dGVycycgOiAvW1x1MDA1Mlx1MjRDN1x1RkYzMlx1MDE1NFx1MUU1OFx1MDE1OFx1MDIxMFx1MDIxMlx1MUU1QVx1MUU1Q1x1MDE1Nlx1MUU1RVx1MDI0Q1x1MkM2NFx1QTc1QVx1QTdBNlx1QTc4Ml0vZwogICAgfSwgewogICAgICAgICdiYXNlJyA6ICdTJywKICAgICAgICAnbGV0dGVycycgOiAvW1x1MDA1M1x1MjRDOFx1RkYzM1x1MUU5RVx1MDE1QVx1MUU2NFx1MDE1Q1x1MUU2MFx1MDE2MFx1MUU2Nlx1MUU2Mlx1MUU2OFx1MDIxOFx1MDE1RVx1MkM3RVx1QTdBOFx1QTc4NF0vZwogICAgfSwgewogICAgICAgICdiYXNlJyA6ICdUJywKICAgICAgICAnbGV0dGVycycgOiAvW1x1MDA1NFx1MjRDOVx1RkYzNFx1MUU2QVx1MDE2NFx1MUU2Q1x1MDIxQVx1MDE2Mlx1MUU3MFx1MUU2RVx1MDE2Nlx1MDFBQ1x1MDFBRVx1MDIzRVx1QTc4Nl0vZwogICAgfSwgewogICAgICAgICdiYXNlJyA6ICdUWicsCiAgICAgICAgJ2xldHRlcnMnIDogL1tcdUE3MjhdL2cKICAgIH0sIHsKICAgICAgICAnYmFzZScgOiAnVScsCiAgICAgICAgJ2xldHRlcnMnIDogL1tcdTAwNTVcdTI0Q0FcdUZGMzVcdTAwRDlcdTAwREFcdTAwREJcdTAxNjhcdTFFNzhcdTAxNkFcdTFFN0FcdTAxNkNcdTAwRENcdTAxREJcdTAxRDdcdTAxRDVcdTAxRDlcdTFFRTZcdTAxNkVcdTAxNzBcdTAxRDNcdTAyMTRcdTAyMTZcdTAxQUZcdTFFRUFcdTFFRThcdTFFRUVcdTFFRUNcdTFFRjBcdTFFRTRcdTFFNzJcdTAxNzJcdTFFNzZcdTFFNzRcdTAyNDRdL2cKICAgIH0sIHsKICAgICAgICAnYmFzZScgOiAnVicsCiAgICAgICAgJ2xldHRlcnMnIDogL1tcdTAwNTZcdTI0Q0JcdUZGMzZcdTFFN0NcdTFFN0VcdTAxQjJcdUE3NUVcdTAyNDVdL2cKICAgIH0sIHsKICAgICAgICAnYmFzZScgOiAnVlknLAogICAgICAgICdsZXR0ZXJzJyA6IC9bXHVBNzYwXS9nCiAgICB9LCB7CiAgICAgICAgJ2Jhc2UnIDogJ1cnLAogICAgICAgICdsZXR0ZXJzJyA6IC9bXHUwMDU3XHUyNENDXHVGRjM3XHUxRTgwXHUxRTgyXHUwMTc0XHUxRTg2XHUxRTg0XHUxRTg4XHUyQzcyXS9nCiAgICB9LCB7CiAgICAgICAgJ2Jhc2UnIDogJ1gnLAogICAgICAgICdsZXR0ZXJzJyA6IC9bXHUwMDU4XHUyNENEXHVGRjM4XHUxRThBXHUxRThDXS9nCiAgICB9LCB7CiAgICAgICAgJ2Jhc2UnIDogJ1knLAogICAgICAgICdsZXR0ZXJzJyA6IC9bXHUwMDU5XHUyNENFXHVGRjM5XHUxRUYyXHUwMEREXHUwMTc2XHUxRUY4XHUwMjMyXHUxRThFXHUwMTc4XHUxRUY2XHUxRUY0XHUwMUIzXHUwMjRFXHUxRUZFXS9nCiAgICB9LCB7CiAgICAgICAgJ2Jhc2UnIDogJ1onLAogICAgICAgICdsZXR0ZXJzJyA6IC9bXHUwMDVBXHUyNENGXHVGRjNBXHUwMTc5XHUxRTkwXHUwMTdCXHUwMTdEXHUxRTkyXHUxRTk0XHUwMUI1XHUwMjI0XHUyQzdGXHUyQzZCXHVBNzYyXS9nCiAgICB9LCB7CiAgICAgICAgJ2Jhc2UnIDogJ2EnLAogICAgICAgICdsZXR0ZXJzJyA6IC9bXHUwMDYxXHUyNEQwXHVGRjQxXHUxRTlBXHUwMEUwXHUwMEUxXHUwMEUyXHUxRUE3XHUxRUE1XHUxRUFCXHUxRUE5XHUwMEUzXHUwMTAxXHUwMTAzXHUxRUIxXHUxRUFGXHUxRUI1XHUxRUIzXHUwMjI3XHUwMUUxXHUwMEU0XHUwMURGXHUxRUEzXHUwMEU1XHUwMUZCXHUwMUNFXHUwMjAxXHUwMjAzXHUxRUExXHUxRUFEXHUxRUI3XHUxRTAxXHUwMTA1XHUyQzY1XHUwMjUwXS9nCiAgICB9LCB7CiAgICAgICAgJ2Jhc2UnIDogJ2FhJywKICAgICAgICAnbGV0dGVycycgOiAvW1x1QTczM10vZwogICAgfSwgewogICAgICAgICdiYXNlJyA6ICdhZScsCiAgICAgICAgJ2xldHRlcnMnIDogL1tcdTAwRTZcdTAxRkRcdTAxRTNdL2cKICAgIH0sIHsKICAgICAgICAnYmFzZScgOiAnYW8nLAogICAgICAgICdsZXR0ZXJzJyA6IC9bXHVBNzM1XS9nCiAgICB9LCB7CiAgICAgICAgJ2Jhc2UnIDogJ2F1JywKICAgICAgICAnbGV0dGVycycgOiAvW1x1QTczN10vZwogICAgfSwgewogICAgICAgICdiYXNlJyA6ICdhdicsCiAgICAgICAgJ2xldHRlcnMnIDogL1tcdUE3MzlcdUE3M0JdL2cKICAgIH0sIHsKICAgICAgICAnYmFzZScgOiAnYXknLAogICAgICAgICdsZXR0ZXJzJyA6IC9bXHVBNzNEXS9nCiAgICB9LCB7CiAgICAgICAgJ2Jhc2UnIDogJ2InLAogICAgICAgICdsZXR0ZXJzJyA6IC9bXHUwMDYyXHUyNEQxXHVGRjQyXHUxRTAzXHUxRTA1XHUxRTA3XHUwMTgwXHUwMTgzXHUwMjUzXS9nCiAgICB9LCB7CiAgICAgICAgJ2Jhc2UnIDogJ2MnLAogICAgICAgICdsZXR0ZXJzJyA6IC9bXHUwMDYzXHUyNEQyXHVGRjQzXHUwMTA3XHUwMTA5XHUwMTBCXHUwMTBEXHUwMEU3XHUxRTA5XHUwMTg4XHUwMjNDXHVBNzNGXHUyMTg0XS9nCiAgICB9LCB7CiAgICAgICAgJ2Jhc2UnIDogJ2QnLAogICAgICAgICdsZXR0ZXJzJyA6IC9bXHUwMDY0XHUyNEQzXHVGRjQ0XHUxRTBCXHUwMTBGXHUxRTBEXHUxRTExXHUxRTEzXHUxRTBGXHUwMTExXHUwMThDXHUwMjU2XHUwMjU3XHVBNzdBXS9nCiAgICB9LCB7CiAgICAgICAgJ2Jhc2UnIDogJ2R6JywKICAgICAgICAnbGV0dGVycycgOiAvW1x1MDFGM1x1MDFDNl0vZwogICAgfSwgewogICAgICAgICdiYXNlJyA6ICdlJywKICAgICAgICAnbGV0dGVycycgOiAvW1x1MDA2NVx1MjRENFx1RkY0NVx1MDBFOFx1MDBFOVx1MDBFQVx1MUVDMVx1MUVCRlx1MUVDNVx1MUVDM1x1MUVCRFx1MDExM1x1MUUxNVx1MUUxN1x1MDExNVx1MDExN1x1MDBFQlx1MUVCQlx1MDExQlx1MDIwNVx1MDIwN1x1MUVCOVx1MUVDN1x1MDIyOVx1MUUxRFx1MDExOVx1MUUxOVx1MUUxQlx1MDI0N1x1MDI1Qlx1MDFERF0vZwogICAgfSwgewogICAgICAgICdiYXNlJyA6ICdmJywKICAgICAgICAnbGV0dGVycycgOiAvW1x1MDA2Nlx1MjRENVx1RkY0Nlx1MUUxRlx1MDE5Mlx1QTc3Q10vZwogICAgfSwgewogICAgICAgICdiYXNlJyA6ICdnJywKICAgICAgICAnbGV0dGVycycgOiAvW1x1MDA2N1x1MjRENlx1RkY0N1x1MDFGNVx1MDExRFx1MUUyMVx1MDExRlx1MDEyMVx1MDFFN1x1MDEyM1x1MDFFNVx1MDI2MFx1QTdBMVx1MUQ3OVx1QTc3Rl0vZwogICAgfSwgewogICAgICAgICdiYXNlJyA6ICdoJywKICAgICAgICAnbGV0dGVycycgOiAvW1x1MDA2OFx1MjREN1x1RkY0OFx1MDEyNVx1MUUyM1x1MUUyN1x1MDIxRlx1MUUyNVx1MUUyOVx1MUUyQlx1MUU5Nlx1MDEyN1x1MkM2OFx1MkM3Nlx1MDI2NV0vZwogICAgfSwgewogICAgICAgICdiYXNlJyA6ICdodicsCiAgICAgICAgJ2xldHRlcnMnIDogL1tcdTAxOTVdL2cKICAgIH0sIHsKICAgICAgICAnYmFzZScgOiAnaScsCiAgICAgICAgJ2xldHRlcnMnIDogL1tcdTAwNjlcdTI0RDhcdUZGNDlcdTAwRUNcdTAwRURcdTAwRUVcdTAxMjlcdTAxMkJcdTAxMkRcdTAwRUZcdTFFMkZcdTFFQzlcdTAxRDBcdTAyMDlcdTAyMEJcdTFFQ0JcdTAxMkZcdTFFMkRcdTAyNjhcdTAxMzFdL2cKICAgIH0sIHsKICAgICAgICAnYmFzZScgOiAnaicsCiAgICAgICAgJ2xldHRlcnMnIDogL1tcdTAwNkFcdTI0RDlcdUZGNEFcdTAxMzVcdTAxRjBcdTAyNDldL2cKICAgIH0sIHsKICAgICAgICAnYmFzZScgOiAnaycsCiAgICAgICAgJ2xldHRlcnMnIDogL1tcdTAwNkJcdTI0REFcdUZGNEJcdTFFMzFcdTAxRTlcdTFFMzNcdTAxMzdcdTFFMzVcdTAxOTlcdTJDNkFcdUE3NDFcdUE3NDNcdUE3NDVcdUE3QTNdL2cKICAgIH0sIHsKICAgICAgICAnYmFzZScgOiAnbCcsCiAgICAgICAgJ2xldHRlcnMnIDogL1tcdTAwNkNcdTI0REJcdUZGNENcdTAxNDBcdTAxM0FcdTAxM0VcdTFFMzdcdTFFMzlcdTAxM0NcdTFFM0RcdTFFM0JcdTAxN0ZcdTAxNDJcdTAxOUFcdTAyNkJcdTJDNjFcdUE3NDlcdUE3ODFcdUE3NDddL2cKICAgIH0sIHsKICAgICAgICAnYmFzZScgOiAnbGonLAogICAgICAgICdsZXR0ZXJzJyA6IC9bXHUwMUM5XS9nCiAgICB9LCB7CiAgICAgICAgJ2Jhc2UnIDogJ20nLAogICAgICAgICdsZXR0ZXJzJyA6IC9bXHUwMDZEXHUyNERDXHVGRjREXHUxRTNGXHUxRTQxXHUxRTQzXHUwMjcxXHUwMjZGXS9nCiAgICB9LCB7CiAgICAgICAgJ2Jhc2UnIDogJ24nLAogICAgICAgICdsZXR0ZXJzJyA6IC9bXHUwMDZFXHUyNEREXHVGRjRFXHUwMUY5XHUwMTQ0XHUwMEYxXHUxRTQ1XHUwMTQ4XHUxRTQ3XHUwMTQ2XHUxRTRCXHUxRTQ5XHUwMTlFXHUwMjcyXHUwMTQ5XHVBNzkxXHVBN0E1XS9nCiAgICB9LCB7CiAgICAgICAgJ2Jhc2UnIDogJ25qJywKICAgICAgICAnbGV0dGVycycgOiAvW1x1MDFDQ10vZwogICAgfSwgewogICAgICAgICdiYXNlJyA6ICdvJywKICAgICAgICAnbGV0dGVycycgOiAvW1x1MDA2Rlx1MjRERVx1RkY0Rlx1MDBGMlx1MDBGM1x1MDBGNFx1MUVEM1x1MUVEMVx1MUVEN1x1MUVENVx1MDBGNVx1MUU0RFx1MDIyRFx1MUU0Rlx1MDE0RFx1MUU1MVx1MUU1M1x1MDE0Rlx1MDIyRlx1MDIzMVx1MDBGNlx1MDIyQlx1MUVDRlx1MDE1MVx1MDFEMlx1MDIwRFx1MDIwRlx1MDFBMVx1MUVERFx1MUVEQlx1MUVFMVx1MUVERlx1MUVFM1x1MUVDRFx1MUVEOVx1MDFFQlx1MDFFRFx1MDBGOFx1MDFGRlx1MDI1NFx1QTc0Qlx1QTc0RFx1MDI3NV0vZwogICAgfSwgewogICAgICAgICdiYXNlJyA6ICdvaScsCiAgICAgICAgJ2xldHRlcnMnIDogL1tcdTAxQTNdL2cKICAgIH0sIHsKICAgICAgICAnYmFzZScgOiAnb3UnLAogICAgICAgICdsZXR0ZXJzJyA6IC9bXHUwMjIzXS9nCiAgICB9LCB7CiAgICAgICAgJ2Jhc2UnIDogJ29vJywKICAgICAgICAnbGV0dGVycycgOiAvW1x1QTc0Rl0vZwogICAgfSwgewogICAgICAgICdiYXNlJyA6ICdwJywKICAgICAgICAnbGV0dGVycycgOiAvW1x1MDA3MFx1MjRERlx1RkY1MFx1MUU1NVx1MUU1N1x1MDFBNVx1MUQ3RFx1QTc1MVx1QTc1M1x1QTc1NV0vZwogICAgfSwgewogICAgICAgICdiYXNlJyA6ICdxJywKICAgICAgICAnbGV0dGVycycgOiAvW1x1MDA3MVx1MjRFMFx1RkY1MVx1MDI0Qlx1QTc1N1x1QTc1OV0vZwogICAgfSwgewogICAgICAgICdiYXNlJyA6ICdyJywKICAgICAgICAnbGV0dGVycycgOiAvW1x1MDA3Mlx1MjRFMVx1RkY1Mlx1MDE1NVx1MUU1OVx1MDE1OVx1MDIxMVx1MDIxM1x1MUU1Qlx1MUU1RFx1MDE1N1x1MUU1Rlx1MDI0RFx1MDI3RFx1QTc1Qlx1QTdBN1x1QTc4M10vZwogICAgfSwgewogICAgICAgICdiYXNlJyA6ICdzJywKICAgICAgICAnbGV0dGVycycgOiAvW1x1MDA3M1x1MjRFMlx1RkY1M1x1MDBERlx1MDE1Qlx1MUU2NVx1MDE1RFx1MUU2MVx1MDE2MVx1MUU2N1x1MUU2M1x1MUU2OVx1MDIxOVx1MDE1Rlx1MDIzRlx1QTdBOVx1QTc4NVx1MUU5Ql0vZwogICAgfSwgewogICAgICAgICdiYXNlJyA6ICd0JywKICAgICAgICAnbGV0dGVycycgOiAvW1x1MDA3NFx1MjRFM1x1RkY1NFx1MUU2Qlx1MUU5N1x1MDE2NVx1MUU2RFx1MDIxQlx1MDE2M1x1MUU3MVx1MUU2Rlx1MDE2N1x1MDFBRFx1MDI4OFx1MkM2Nlx1QTc4N10vZwogICAgfSwgewogICAgICAgICdiYXNlJyA6ICd0eicsCiAgICAgICAgJ2xldHRlcnMnIDogL1tcdUE3MjldL2cKICAgIH0sIHsKICAgICAgICAnYmFzZScgOiAndScsCiAgICAgICAgJ2xldHRlcnMnIDogL1tcdTAwNzVcdTI0RTRcdUZGNTVcdTAwRjlcdTAwRkFcdTAwRkJcdTAxNjlcdTFFNzlcdTAxNkJcdTFFN0JcdTAxNkRcdTAwRkNcdTAxRENcdTAxRDhcdTAxRDZcdTAxREFcdTFFRTdcdTAxNkZcdTAxNzFcdTAxRDRcdTAyMTVcdTAyMTdcdTAxQjBcdTFFRUJcdTFFRTlcdTFFRUZcdTFFRURcdTFFRjFcdTFFRTVcdTFFNzNcdTAxNzNcdTFFNzdcdTFFNzVcdTAyODldL2cKICAgIH0sIHsKICAgICAgICAnYmFzZScgOiAndicsCiAgICAgICAgJ2xldHRlcnMnIDogL1tcdTAwNzZcdTI0RTVcdUZGNTZcdTFFN0RcdTFFN0ZcdTAyOEJcdUE3NUZcdTAyOENdL2cKICAgIH0sIHsKICAgICAgICAnYmFzZScgOiAndnknLAogICAgICAgICdsZXR0ZXJzJyA6IC9bXHVBNzYxXS9nCiAgICB9LCB7CiAgICAgICAgJ2Jhc2UnIDogJ3cnLAogICAgICAgICdsZXR0ZXJzJyA6IC9bXHUwMDc3XHUyNEU2XHVGRjU3XHUxRTgxXHUxRTgzXHUwMTc1XHUxRTg3XHUxRTg1XHUxRTk4XHUxRTg5XHUyQzczXS9nCiAgICB9LCB7CiAgICAgICAgJ2Jhc2UnIDogJ3gnLAogICAgICAgICdsZXR0ZXJzJyA6IC9bXHUwMDc4XHUyNEU3XHVGRjU4XHUxRThCXHUxRThEXS9nCiAgICB9LCB7CiAgICAgICAgJ2Jhc2UnIDogJ3knLAogICAgICAgICdsZXR0ZXJzJyA6IC9bXHUwMDc5XHUyNEU4XHVGRjU5XHUxRUYzXHUwMEZEXHUwMTc3XHUxRUY5XHUwMjMzXHUxRThGXHUwMEZGXHUxRUY3XHUxRTk5XHUxRUY1XHUwMUI0XHUwMjRGXHUxRUZGXS9nCiAgICB9LCB7CiAgICAgICAgJ2Jhc2UnIDogJ3onLAogICAgICAgICdsZXR0ZXJzJyA6IC9bXHUwMDdBXHUyNEU5XHVGRjVBXHUwMTdBXHUxRTkxXHUwMTdDXHUwMTdFXHUxRTkzXHUxRTk1XHUwMUI2XHUwMjI1XHUwMjQwXHUyQzZDXHVBNzYzXS9nCiAgICB9XTsKCiAgICB2YXIgY2hhbmdlczsKCiAgICBmdW5jdGlvbiByZW1vdmVEaWFjcml0aWNzKHN0cikgewogICAgICAgIGlmICghY2hhbmdlcykgewogICAgICAgICAgICBjaGFuZ2VzID0gZGVmYXVsdERpYWNyaXRpY3NSZW1vdmFsTWFwOwogICAgICAgIH0KICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGNoYW5nZXMubGVuZ3RoOyBpKyspIHsKICAgICAgICAgICAgc3RyID0gc3RyLnJlcGxhY2UoY2hhbmdlc1tpXS5sZXR0ZXJzLCBjaGFuZ2VzW2ldLmJhc2UpOwogICAgICAgIH0KICAgICAgICByZXR1cm4gc3RyOwogICAgfQoKICAgIG1ha2VTbHVnID0gZnVuY3Rpb24oKSB7CiAgICAgICAgdmFyIHNsdWdjb250ZW50ID0galF1ZXJ5LnRyaW0ocmVtb3ZlRGlhY3JpdGljcygkdGhpcy52YWwoKSkpLAogICAgICAgICAgICBzbHVnY29udGVudF9oeXBoZW5zID0gc2x1Z2NvbnRlbnQucmVwbGFjZSgvXHMvZywgJy0nKSwKICAgICAgICAgICAgZmluaXNoZWRzbHVnID0gc2x1Z2NvbnRlbnRfaHlwaGVucy5yZXBsYWNlKC9bXmEtekEtWjAtOVwtXS9nLCAnLScpLAogICAgICAgICAgICBmaW5pc2hlZHNsdWcgPSBmaW5pc2hlZHNsdWcucmVwbGFjZSgvWy1dezIsfS9nLCAnLScpLAogICAgICAgICAgICBmaW5pc2hlZHNsdWcgPSBmaW5pc2hlZHNsdWcucmVwbGFjZSgvKF5bLV0pfChbLV0kKS9nLCAnJyk7CgogICAgICAgIGlmIChzZXR0aW5ncy5wcmVmaXggJiYgJC5pc051bWVyaWMoZmluaXNoZWRzbHVnKSkgewogICAgICAgICAgICBqUXVlcnkoJ2lucHV0LicgKyBzZXR0aW5ncy5zbHVnKS52YWwoc2V0dGluZ3MucHJlZml4ICsgZmluaXNoZWRzbHVnLnRvTG93ZXJDYXNlKCkpOwogICAgICAgICAgICBqUXVlcnkoJ3NwYW4uJyArIHNldHRpbmdzLnNsdWcpLnRleHQoc2V0dGluZ3MucHJlZml4ICsgZmluaXNoZWRzbHVnLnRvTG93ZXJDYXNlKCkpOwogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgIGpRdWVyeSgnaW5wdXQuJyArIHNldHRpbmdzLnNsdWcpLnZhbChmaW5pc2hlZHNsdWcudG9Mb3dlckNhc2UoKSk7CiAgICAgICAgICAgIGpRdWVyeSgnc3Bhbi4nICsgc2V0dGluZ3Muc2x1ZykudGV4dChmaW5pc2hlZHNsdWcudG9Mb3dlckNhc2UoKSk7CiAgICAgICAgfQogICAgfQoKICAgIGpRdWVyeSh0aGlzKS5rZXl1cChtYWtlU2x1Zyk7CgogICAgcmV0dXJuICR0aGlzOwp9Owo=]]></data>
	</file>
	<file>
	  <filename>/framework/js/lise.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[LyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogRlVOQ1RJT05TCiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCgpmdW5jdGlvbiB1cGRhdGVSb3dzKCkgewogICAgJCgndGFibGUjc29ydGFibGVfaXRlbSA+IHRib2R5ID4gdHInKS5yZW1vdmVDbGFzcygncm93MScpLnJlbW92ZUNsYXNzKCdyb3cyJyk7CiAgICAkKCd0YWJsZSNzb3J0YWJsZV9pdGVtID4gdGJvZHkgPiB0cjp2aXNpYmxlOmV2ZW4nKS5hZGRDbGFzcygncm93MicpOwogICAgJCgndGFibGUjc29ydGFibGVfaXRlbSA+IHRib2R5ID4gdHI6dmlzaWJsZTpvZGQnKS5hZGRDbGFzcygncm93MScpOwp9CgpmdW5jdGlvbiBpbml0VGFibGVTb3J0ZXIoKSB7CiAgICAKICAgICQoJ3RhYmxlJykuZm9vdGFibGUoKS5iaW5kKHsKICAgICAgICAnZm9vdGFibGVfc29ydGVkJyA6IGZ1bmN0aW9uKCkgewogICAgICAgICAgICB1cGRhdGVSb3dzKCk7CiAgICAgICAgfSwKICAgICAgICAnZm9vdGFibGVfZmlsdGVyZWQnIDogZnVuY3Rpb24oKSB7CiAgICAgICAgICAgIHVwZGF0ZVJvd3MoKTsKICAgICAgICB9LAogICAgICAgICdmb290YWJsZV9yb3dfZXhwYW5kZWQnIDogZnVuY3Rpb24oKSB7CiAgICAgICAgICAgIGluaXRBamF4KCk7CiAgICAgICAgICAgIGluaXRBamF4RXZlbnRzKCk7CiAgICAgICAgICAgIAogICAgICAgICAgICAkKCcuZm9vdGFibGUtcm93LWRldGFpbC1uYW1lOmVtcHR5JykuaGlkZSgpOwogICAgICAgIH0KICAgIH0pOwp9CgpmdW5jdGlvbiBpbml0RGF0ZXBpY2tlcigpIHsKICAgICQoJyNtMV9zdGFydF90aW1lLCAjbTFfZW5kX3RpbWUnKS5kYXRlcGlja2VyKHsKICAgICAgICBkYXRlRm9ybWF0IDogJ3l5LW1tLWRkJwogICAgfSk7Cn0KCmZ1bmN0aW9uIGluaXRTb3J0YWJsZSgpIHsKCiAgICAkKCdib2R5JykuZGVsZWdhdGUoJyNtMV9zdWJtaXRfaXRlbW9yZGVyJywgJ2NsaWNrJywgZnVuY3Rpb24oZXZlbnQpIHsKCiAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTsKCiAgICAgICAgdmFyIG5ld09yZGVySWRzID0gZ2V0T3JkZXJpbmcoJyNzb3J0YWJsZV9pdGVtJyk7CiAgICAgICAgdmFyIGNhbGxiYWNrID0gYWpheF9mdW5jdGlvbignU2F2ZUl0ZW1PcmRlcicsIG5ld09yZGVySWRzKTsKICAgICAgICBjYWxsYmFjay5zdWNjZXNzKGZ1bmN0aW9uKGRhdGEpIHsKICAgICAgICAgICAgc2hvd19tZXNzYWdlKGRhdGEpOwogICAgICAgIH0pOwoKICAgIH0pOwoKICAgICQoJ2JvZHknKS5kZWxlZ2F0ZSgnI20xX3N1Ym1pdF9maWVsZGRlZm9yZGVyJywgJ2NsaWNrJywgZnVuY3Rpb24oZXZlbnQpIHsKCiAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTsKCiAgICAgICAgdmFyIG5ld09yZGVySWRzID0gZ2V0T3JkZXJpbmcoJyNzb3J0YWJsZV9maWVsZGRlZicpOwogICAgICAgIHZhciBjYWxsYmFjayA9IGFqYXhfZnVuY3Rpb24oJ1NhdmVGaWVsZERlZk9yZGVyJywgbmV3T3JkZXJJZHMpOwogICAgICAgIGNhbGxiYWNrLnN1Y2Nlc3MoZnVuY3Rpb24oZGF0YSkgewogICAgICAgICAgICBzaG93X21lc3NhZ2UoZGF0YSk7CiAgICAgICAgfSk7CgogICAgfSk7CgogICAgdmFyIGdldE9yZGVyaW5nID0gZnVuY3Rpb24oaXRlbSkgewoKICAgICAgICB2YXIgbmV3T3JkZXJpbmcgPSAkKGl0ZW0pLmZpbmQoInRib2R5LmNvbnRlbnQiKS5zb3J0YWJsZSgndG9BcnJheScpOwoKICAgICAgICBpZiAoaXRlbSA9PSAnI3NvcnRhYmxlX2l0ZW0nKQogICAgICAgICAgICB2YXIgbCA9ICJpdGVtXyIubGVuZ3RoOwoKICAgICAgICBpZiAoaXRlbSA9PSAnI3NvcnRhYmxlX2ZpZWxkZGVmJykKICAgICAgICAgICAgdmFyIGwgPSAiZmllbGRkZWZfIi5sZW5ndGg7CgogICAgICAgIHZhciBuZXdPcmRlcklkcyA9IG5ldyBBcnJheShuZXdPcmRlcmluZy5sZW5ndGgpOwogICAgICAgIHZhciBjdHIgPSAwOwogICAgICAgIC8vIExvb3Agb3ZlciBlYWNoIHZhbHVlIGluIHRoZSBhcnJheSBhbmQgZ2V0IHRoZSBJRAogICAgICAgICQuZWFjaChuZXdPcmRlcmluZywgZnVuY3Rpb24oaW50SW5kZXgsIG9ialZhbHVlKSB7CiAgICAgICAgICAgIC8vR2V0IHRoZSBJRCBvZiB0aGUgcmVvcmRlcmVkIGl0ZW1zCiAgICAgICAgICAgIC8vLSB0aGlzIGlzIHNlbnQgYmFjayB0byBzZXJ2ZXIgdG8gc2F2ZQogICAgICAgICAgICBuZXdPcmRlcklkc1tjdHJdID0gb2JqVmFsdWUuc3Vic3RyaW5nKGwsIG9ialZhbHVlLmxlbmd0aCk7CiAgICAgICAgICAgIGN0ciA9IGN0ciArIDE7CiAgICAgICAgfSk7CiAgICAgICAgcmV0dXJuIG5ld09yZGVySWRzOwogICAgfTsKCiAgICAvL2ZpeCB0YWJsZSB3aWR0aCBvbiBzb3J0aW5nCiAgICB2YXIgZml4SGVscGVyID0gZnVuY3Rpb24oZSwgdWkpIHsKICAgICAgICB1aS5jaGlsZHJlbigpLmVhY2goZnVuY3Rpb24oKSB7CiAgICAgICAgICAgICQodGhpcykud2lkdGgoJCh0aGlzKS53aWR0aCgpKTsKICAgICAgICB9KTsKICAgICAgICByZXR1cm4gdWk7CiAgICB9OwoKICAgIC8vcnVuIHNvcnRhYmxlIGZ1bmN0aW9uCiAgICAkKCIjc29ydGFibGVfaXRlbSB0Ym9keS5jb250ZW50LCAjc29ydGFibGVfZmllbGRkZWYgdGJvZHkuY29udGVudCIpLnNvcnRhYmxlKHsKICAgICAgICBoZWxwZXIgOiBmaXhIZWxwZXIsCiAgICAgICAgdXBkYXRlIDogZnVuY3Rpb24oZXZlbnQsIHVpKSB7CiAgICAgICAgICAgICQoIiNzb3J0YWJsZV9pdGVtLCAjc29ydGFibGVfZmllbGRkZWYiKS5maW5kKCJ0Ym9keS5jb250ZW50IHRyOm9kZCIpLmF0dHIoJ2NsYXNzJywgInJvdzIiKTsKICAgICAgICAgICAgJCgiI3NvcnRhYmxlX2l0ZW0sICNzb3J0YWJsZV9maWVsZGRlZiIpLmZpbmQoInRib2R5LmNvbnRlbnQgdHI6ZXZlbiIpLmF0dHIoJ2NsYXNzJywgInJvdzEiKTsKICAgICAgICB9CiAgICB9KTsKICAgICQoIiNzb3J0YWJsZV9pdGVtLCAjc29ydGFibGVfZmllbGRkZWYiKS5maW5kKCJ0Ym9keS5jb250ZW50IikuZGlzYWJsZVNlbGVjdGlvbigpOwp9CgpmdW5jdGlvbiBpbml0U2VsZWN0QWxsKCkgewogICAgJCgnI2NoZWNrX2FsbF9pdGVtLCAjY2hlY2tfYWxsX2NhdGVnb3J5LCAjY2hlY2tfYWxsX2ZpZWxkZGVmJykuY2xpY2soZnVuY3Rpb24oKSB7CgogICAgICAgICQodGhpcykuY2xvc2VzdCgndGFibGUnKS5maW5kKCJ0Ym9keSB0ciIpLmVhY2goZnVuY3Rpb24oKSB7CgogICAgICAgICAgICAkY2hlY2tib3ggPSAkKHRoaXMpLmZpbmQoJzpjaGVja2JveCcpOwogICAgICAgICAgICAkY2hlY2tib3gucHJvcCgnY2hlY2tlZCcsICEkY2hlY2tib3hbMF0uY2hlY2tlZCk7CiAgICAgICAgfSk7CiAgICB9KTsKfQovKiogZGVwcmVjYXRlZCAqKi8KLyoKZnVuY3Rpb24gaW5pdFNsdWcoKSB7CgogICAgaWYgKCQoJyNtMV9hbGlhcycpLnZhbCgpID09ICcnKSB7CiAgICAgICAgJCgnI20xX2FsaWFzJykuYWRkQ2xhc3MoJ3NsdWcnKTsKICAgICAgICAvLyBzbHVnIGFsaWFzCiAgICAgICAgJCgiI20xX3RpdGxlIikuc2x1Zyh7CiAgICAgICAgICAgIHNsdWcgOiAnc2x1ZycsIC8vIGNsYXNzIG9mIGlucHV0IC8gc3BhbiB0aGF0IGNvbnRhaW5zIHRoZSBnZW5lcmF0ZWQgc2x1ZwogICAgICAgICAgICBoaWRlIDogZmFsc2UsIC8vIGhpZGUgdGhlIHRleHQgaW5wdXQsIHRydWUgYnkgZGVmYXVsdAogICAgICAgICAgICBwcmVmaXggOiAnaXRlbS0nCiAgICAgICAgfSk7CiAgICB9Cn0KKi8KCmZ1bmN0aW9uIGluaXRRdWlja1NlYXJjaCgpIHsKICAgIAogICAgJCgndGFibGUjc29ydGFibGVfaXRlbScpLnRyaWdnZXIoJ2Zvb3RhYmxlX2ZpbHRlcicsCiAgICAgICAgewogICAgICAgICAgICBmaWx0ZXI6ICQoJ2lucHV0I2l0ZW1fc2VhcmNoJykudmFsKCkKICAgICAgICB9CiAgICApOwogICAgCiAgICAkKCcjcXVpY2tzZWFyY2hfZm9ybScpLnN1Ym1pdChmdW5jdGlvbihldmVudCkgewogICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7CiAgICB9KTsKfQoKZnVuY3Rpb24gaW5pdENvbG9yQm94KCkgewoKICAgIGlmICgoICQoJy5jYm94JykubGVuZ3RoICE9PSAwICkgJiYgKCB0eXBlb2YgJC5jb2xvcmJveCA9PT0gJ2Z1bmN0aW9uJyApKSB7CiAgICAgICAgJCgnLmNib3gnKS5jb2xvcmJveCh7CiAgICAgICAgICAgIHNjYWxlUGhvdG9zIDogdHJ1ZSwKICAgICAgICAgICAgbWF4V2lkdGggOiA4MDAsCiAgICAgICAgICAgIG1heEhlaWdodCA6IDYwMCwKICAgICAgICAgICAgcmVsIDogJ2dyb3VwJywKICAgICAgICAgICAgb3BhY2l0eSA6IDAuMgogICAgICAgIH0pOwogICAgfQp9CgogIC8vZnVuY3Rpb24gaW5pdFNlYXJjaCgpIHsKICAvLyAgJCgnI3F1aWNrc2VhcmNoX2Zvcm0nKS5zdWJtaXQoZnVuY3Rpb24oZXZlbnQpIHsKICAvLyAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpOwogIC8vICB9KTsKICAvLwogIC8vICB2YXIgU2VhcmNoSW5wdXQgPSAkKCdpbnB1dCNpdGVtX3NlYXJjaDInKTsKICAvLwogIC8vICBTZWFyY2hJbnB1dC5vbigna2V5dXAnLCBmdW5jdGlvbigpIHsKICAvLyAgICBpZihTZWFyY2hJbnB1dC52YWwoKS5sZW5ndGggPiAzICkKICAvLyAgICB7CiAgLy8gICAgICAvLwogIC8vICAgIH0KICAvLwogIC8vICAgIHZhciB0ZXN0ID0gYWpheF9mdW5jdGlvbignX3Rlc3QnLCBTZWFyY2hJbnB1dC52YWwoKSk7CiAgLy8KICAvLyAgICBjb25zb2xlLmxvZyh0ZXN0KTsKICAvLwogIC8vICB9KTsKICAvLwogIC8vfQogIC8vCgoKLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogJCBJTklUIChSdW4gaW5pdGlhbCBzdHVmZiBoZXJlKQogKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwoKJChmdW5jdGlvbigkKSB7CgogICAgJCgiLnBhZ2VtY29udGFpbmVyIikuZWFjaChmdW5jdGlvbigpIHsKICAgICAgICB2YXIgYyA9ICQodGhpcyk7CiAgICAgICAgd2luZG93LnNldFRpbWVvdXQoZnVuY3Rpb24oKSB7CiAgICAgICAgICAgIGMuaGlkZSgpOwogICAgICAgIH0sIDkwMDApOwogICAgfSk7CiAgICAKICAgICQoJ3RhYmxlI3NvcnRhYmxlX2l0ZW0nKS5mb290YWJsZSgpOwoKICAgIGluaXRTb3J0YWJsZSgpOwogICAgaW5pdFNlbGVjdEFsbCgpOwogICAgaW5pdERhdGVwaWNrZXIoKTsKICAgIGluaXRUYWJsZVNvcnRlcigpOwogICAgLyppbml0U2x1ZygpOyAgICAgICAqLyAvKiogZGVwcmVjYXRlZCAqKi8KICAvL2luaXRRdWlja1NlYXJjaCgpOwogICAgaW5pdENvbG9yQm94KCk7CiAgLy9pbml0U2VhcmNoKCk7Cn0pOwoKLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogQUpBWCBMT0FESU5HIChPbmx5IGxvYWQgYWpheCBmdW5jdGlvbnMgaW4gaGVyZSkKICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KCi8qKgogKiBBY2Nlc3MgbW9kdWxlIG9iamVjdCBtZXRob2RzIHdpdGggdGhpcwogKiBAIHVzcl9mdW5jdGlvbjogTWV0aG9kIG9mIG1vZHVsZSBvYmplY3QKICogQCBwYXJhbXM6IFBhcmFtcyB0byBtb2R1bGUgb2JqZWN0CiAqLwpmdW5jdGlvbiBhamF4X2Z1bmN0aW9uKHVzcl9mdW5jdGlvbiwgcGFyYW1zKSB7CgogICAgcmV0dXJuICQucG9zdChDTVNfQURNSU5fRElSICsgIi9tb2R1bGVpbnRlcmZhY2UucGhwIiArIENNU19VU0VSX0tFWSwgewogICAgICAgIG1hY3QgOiBNT0RVTEVfTkFNRSArICcsbTFfLGFqYXgsMCcsCiAgICAgICAgbTFfdXNyX2Z1bmN0aW9uIDogdXNyX2Z1bmN0aW9uLAogICAgICAgIHNob3d0ZW1wbGF0ZSA6IGZhbHNlLAogICAgICAgIG0xX3BhcmFtcyA6IHBhcmFtcwogICAgfSk7Cn0KCiQoZnVuY3Rpb24oJCkgewoKICAgIC8qKgogICAgICogVFlQRSBTRUxFQ1QKICAgICAqLwogICAgJCgnI20xX3R5cGUnKS5jaGFuZ2UoZnVuY3Rpb24oZXZlbnQpIHsKCiAgICAgICAgdmFyIHVybCA9ICQodGhpcykuY2xvc2VzdCgiZm9ybSIpLmF0dHIoImFjdGlvbiIpOwogICAgICAgIHZhciBwYXJhbXMgPSAkKHRoaXMpLmNsb3Nlc3QoImZvcm0iKS5zZXJpYWxpemUoKTsKICAgICAgICBwYXJhbXMgKz0gIiZzaG93dGVtcGxhdGU9ZmFsc2UiOwogICAgICAgIHZhciBzZWxlY3RvciA9ICcubGlzZV90eXBlb3B0aW9ucyc7CiAgICAgICAgdmFyIHNlbGVjdG9yMiA9ICcudGVtcGxhdGVfaW5wdXQgPiB0ZXh0YXJlYSc7CgogICAgICAgICQuYWpheCh7CiAgICAgICAgICAgIHR5cGUgOiAiUE9TVCIsCiAgICAgICAgICAgIHVybCA6IHVybCwKICAgICAgICAgICAgYXN5bmMgOiB0cnVlLAogICAgICAgICAgICBkYXRhVHlwZSA6ICJodG1sIiwKICAgICAgICAgICAgZGF0YSA6IHBhcmFtcywKICAgICAgICAgICAgYmVmb3JlU2VuZCA6IGZ1bmN0aW9uKCkgewogICAgICAgICAgICAgICAgJChzZWxlY3RvcjIpLmVtcHR5KCk7CiAgICAgICAgICAgICAgICAkKHNlbGVjdG9yKS5lbXB0eSgpLmFwcGVuZCgnPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij48ZGl2IGNsYXNzPSJwYWdlaW5wdXQiPjxkaXYgY2xhc3M9ImFqYXgtbG9hZGluZyBhamF4LWxvYWRlci10eXBlLXdpZGUiPjwvZGl2PjwvZGl2PjwvZGl2PicpOyAgICAgICAgICAgCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIGVycm9yIDogZnVuY3Rpb24oanFYSFIsIHRleHRTdGF0dXMsIGVycm9yVGhyb3duKSB7CiAgICAgICAgICAgICAgICBhbGVydCgiU29ycnkuIFRoZXJlIHdhcyBhIExJU0UgQUpBWCBlcnJvcjogIiArIHRleHRTdGF0dXMpOwogICAgICAgICAgICB9LAogICAgICAgICAgICBzdWNjZXNzIDogZnVuY3Rpb24oZGF0YSkgewogICAgICAgICAgICAgICAgdmFyIG15X2RhdGEgPSAkKHNlbGVjdG9yLCBkYXRhKS5odG1sKCk7CiAgICAgICAgICAgICAgICAkKHNlbGVjdG9yKS5odG1sKG15X2RhdGEpOwogICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICB2YXIgbXlfZGF0YTIgPSAgJCgiPGRpdi8+IikuaHRtbCgkKHNlbGVjdG9yMiwgZGF0YSkuaHRtbCgpKS50ZXh0KCk7CiAgICAgICAgICAgICAgICAkKHNlbGVjdG9yMikudmFsKG15X2RhdGEyKTsgICAKICAgICAgICAgICAgfQogICAgICAgIH0pOwogICAgfSk7CgogICAgLyoqCiAgICAgKiBNQVNTIEFDVElPTiBJVEVNUwogICAgICovCiAgICAkKCcjbGlzZV9pdGVtX21hc3NfYWN0aW9uJykuY2hhbmdlKGZ1bmN0aW9uKGV2ZW50KSB7CgogICAgICAgIGlmIChjb25maXJtKCdBcmUgeW91ciBzdXJlPycpKSB7CgogICAgICAgICAgICB2YXIgaXRlbXMgPSAkKCIuaXRlbS1tYXNzLWFjdGlvbiA6aW5wdXQiKS5zZXJpYWxpemVBcnJheSgpOwoKICAgICAgICAgICAgc3dpdGNoKCQodGhpcykudmFsKCkpIHsKICAgICAgICAgICAgICAgIGNhc2UgJ2RlbGV0ZSc6CgogICAgICAgICAgICAgICAgICAgICQuZWFjaChpdGVtcywgZnVuY3Rpb24oaSwgZmllbGQpIHsKICAgICAgICAgICAgICAgICAgICAgICAgYWpheF9kZWxldGUoJCgiI2l0ZW1fIiArIGZpZWxkLnZhbHVlKS5maW5kKCIuYWpheC1kZWxldGUiKSk7CiAgICAgICAgICAgICAgICAgICAgfSk7CiAgICAgICAgICAgICAgICAgICAgYnJlYWs7CgogICAgICAgICAgICAgICAgY2FzZSAnYXBwcm92ZSc6CgogICAgICAgICAgICAgICAgICAgICQuZWFjaChpdGVtcywgZnVuY3Rpb24oaSwgZmllbGQpIHsKICAgICAgICAgICAgICAgICAgICAgICAgYWpheF90b2dnbGUoJCgiI2l0ZW1fIiArIGZpZWxkLnZhbHVlKS5maW5kKCIuYXBwcm92ZS1pdGVtIC5hamF4LXRvZ2dsZSIpKTsKICAgICAgICAgICAgICAgICAgICB9KTsKICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgfQoKICAgICAgICB9CgogICAgICAgICQodGhpcykudmFsKDApOwoKICAgIH0pOwoKICAgIC8qKgogICAgICogTUFTUyBBQ1RJT04gQ0FURUdPUklFUwogICAgICovCiAgICAkKCcjbGlzZV9jYXRlZ29yeV9tYXNzX2FjdGlvbicpLmNoYW5nZShmdW5jdGlvbihldmVudCkgewoKICAgICAgICBpZiAoY29uZmlybSgnQXJlIHlvdXIgc3VyZT8nKSkgewoKICAgICAgICAgICAgdmFyIGl0ZW1zID0gJCgiLmNhdGVnb3J5LW1hc3MtYWN0aW9uIDppbnB1dCIpLnNlcmlhbGl6ZUFycmF5KCk7CgogICAgICAgICAgICBzd2l0Y2goJCh0aGlzKS52YWwoKSkgewogICAgICAgICAgICAgICAgY2FzZSAnZGVsZXRlJzoKCiAgICAgICAgICAgICAgICAgICAgJC5lYWNoKGl0ZW1zLCBmdW5jdGlvbihpLCBmaWVsZCkgewogICAgICAgICAgICAgICAgICAgICAgICBhamF4X2RlbGV0ZSgkKCIjY2F0ZWdvcnlfIiArIGZpZWxkLnZhbHVlKS5maW5kKCIuYWpheC1kZWxldGUiKSk7CiAgICAgICAgICAgICAgICAgICAgfSk7CiAgICAgICAgICAgICAgICAgICAgYnJlYWs7CgogICAgICAgICAgICAgICAgY2FzZSAnYXBwcm92ZSc6CgogICAgICAgICAgICAgICAgICAgICQuZWFjaChpdGVtcywgZnVuY3Rpb24oaSwgZmllbGQpIHsKICAgICAgICAgICAgICAgICAgICAgICAgYWpheF90b2dnbGUoJCgiI2NhdGVnb3J5XyIgKyBmaWVsZC52YWx1ZSkuZmluZCgiLmFwcHJvdmUtY2F0ZWdvcnkgLmFqYXgtdG9nZ2xlIikpOwogICAgICAgICAgICAgICAgICAgIH0pOwogICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICAkKHRoaXMpLnZhbCgwKTsKCiAgICB9KTsKCiAgICAvKioKICAgICAqIE1BU1MgQUNUSU9OIEZJRUxEREVGUwogICAgICovCiAgICAkKCcjbGlzZV9maWVsZGRlZl9tYXNzX2FjdGlvbicpLmNoYW5nZShmdW5jdGlvbihldmVudCkgewoKICAgICAgICBpZiAoY29uZmlybSgnQXJlIHlvdXIgc3VyZT8nKSkgewoKICAgICAgICAgICAgdmFyIGl0ZW1zID0gJCgiLmZpZWxkZGVmLW1hc3MtYWN0aW9uIDppbnB1dCIpLnNlcmlhbGl6ZUFycmF5KCk7CgogICAgICAgICAgICBzd2l0Y2goJCh0aGlzKS52YWwoKSkgewogICAgICAgICAgICAgICAgY2FzZSAnZGVsZXRlJzoKCiAgICAgICAgICAgICAgICAgICAgJC5lYWNoKGl0ZW1zLCBmdW5jdGlvbihpLCBmaWVsZCkgewogICAgICAgICAgICAgICAgICAgICAgICBhamF4X2RlbGV0ZSgkKCIjZmllbGRkZWZfIiArIGZpZWxkLnZhbHVlKS5maW5kKCIuYWpheC1kZWxldGUiKSk7CiAgICAgICAgICAgICAgICAgICAgfSk7CiAgICAgICAgICAgICAgICAgICAgYnJlYWs7CgogICAgICAgICAgICAgICAgY2FzZSAncmVxdWlyZSc6CgogICAgICAgICAgICAgICAgICAgICQuZWFjaChpdGVtcywgZnVuY3Rpb24oaSwgZmllbGQpIHsKICAgICAgICAgICAgICAgICAgICAgICAgYWpheF90b2dnbGUoJCgiI2ZpZWxkZGVmXyIgKyBmaWVsZC52YWx1ZSkuZmluZCgiLmFqYXgtdG9nZ2xlIikpOwogICAgICAgICAgICAgICAgICAgIH0pOwogICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICAkKHRoaXMpLnZhbCgwKTsKCiAgICB9KTsKfSk7IA==]]></data>
	</file>
	<file>
	  <filename>/framework/method.installGlobals.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHANCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQojIExJU0UgLSBMaXN0IEl0IFNwZWNpYWwgRWRpdGlvbg0KIyBWZXJzaW9uIDEuMg0KIyBBIGZvcmsgb2YgTGlzdEkyDQojIG1haW50YWluZWQgYnkgRmVybmFuZG8gTW9yZ2FkbyBBS0EgSm8gTW9yZw0KIyBzaW5jZSAyMDE1DQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIw0KIyBPcmlnaW5hbCBBdXRob3I6IEJlbiBNYWxlbiwgPGJlbkBjb25jZXB0ZmFjdG9yeS5jb20uYXU+DQojIENvLU1haW50YWluZXI6IFNpbW9uIFJhZGZvcmQsIDxzaW1vbkBjb25jZXB0ZmFjdG9yeS5jb20uYXU+DQojIFdlYjogd3d3LmNvbmNlcHRmYWN0b3J5LmNvbS5hdQ0KIw0KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCiMNCiMgTWFpbnRhaW5lciBzaW5jZSAyMDExIHVwIHRvIDIwMTQ6IEpvbmF0aGFuIFNjaG1pZCwgPGhpQGpvbmF0aGFuc2NobWlkLmRlPg0KIyBXZWI6IHd3dy5qb25hdGhhbnNjaG1pZC5kZQ0KIw0KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCiMNCiMgU29tZSB3YWNrb3Mgc3RhcnRlZCBkZXN0cm95aW5nIHN0dWZmIHNpbmNlIDIwMTIgYW5kIHN0b3BwZWQgYXQgMjAxNDoNCiMNCiMgVGFwaW8gTMO2eXR0eSwgPHRhcHNhQG9yYW5nZS1tZWRpYS5maT4NCiMgV2ViOiB3d3cub3JhbmdlLW1lZGlhLmZpDQojDQojIEdvcmFuIElsaWMsIDx1bmlxdTNlQGdtYWlsLmNvbT4NCiMgV2ViOiB3d3cuaWNoLW1hY2gtZGFzLmF0DQojDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIw0KIyBMSVNFIGlzIGEgQ01TIE1hZGUgU2ltcGxlIG1vZHVsZSB0aGF0IGVuYWJsZXMgdGhlIHdlYiBkZXZlbG9wZXIgdG8gY3JlYXRlDQojIG11bHRpcGxlIGxpc3RzIHRocm91Z2hvdXQgYSBzaXRlLiBJdCBjYW4gYmUgZHVwbGljYXRlZCBhbmQgZ2l2ZW4gZnJpZW5kbHkNCiMgbmFtZXMgZm9yIGVhc2llciBjbGllbnQgbWFpbnRlbmFuY2UuDQojDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIyBCRUdJTl9MSUNFTlNFDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIyBUaGlzIGZpbGUgaXMgcGFydCBvZiBMSVNFDQojIExJU0UgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5DQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5DQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yDQojIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uDQojDQojIExJU0UgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLA0KIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZg0KIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlDQojIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuDQojIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlDQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlDQojIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcgVVNBDQojIE9yIHJlYWQgaXQgb25saW5lOiBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwNCiMNCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQojIEVORF9MSUNFTlNFDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KaWYoICFkZWZpbmVkKCdDTVNfVkVSU0lPTicpICkgZXhpdDsNCg0KDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQojIERhdGFiYXNlIHRhYmxlcw0KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KDQokZGljdCA9IE5ld0RhdGFEaWN0aW9uYXJ5KCRkYik7DQokdGFib3B0YXJyYXkgPSBhcnJheSgnbXlzcWwnID0+ICdFbmdpbmU9SW5ub0RCJyk7DQoNCi8vIGNyZWF0ZSBpdGVtIHRhYmxlDQokZmllbGRzID0gJw0KICAgICAgICAgICAgaXRlbV9pZCBJIEtFWSBBVVRPLA0KICAgICAgICAgICAgdXJsIEMoMjU1KSwNCiAgICAgICAgICAgIGNhdGVnb3J5X2lkIEksDQogICAgICAgICAgICB0aXRsZSBDKDI1NSksDQogICAgICAgICAgICBhbGlhcyBDKDI1NSksDQogICAgICAgICAgICBwb3NpdGlvbiBJLA0KICAgICAgICAgICAgYWN0aXZlIEk0LA0KICAgICAgICAgICAgY3JlYXRlX3RpbWUgRFQsDQogICAgICAgICAgICBtb2RpZmllZF90aW1lIERULA0KICAgICAgICAgICAgc3RhcnRfdGltZSBELA0KICAgICAgICAgICAgZW5kX3RpbWUgRCwNCiAgICAgICAgICAgIGtleTEgQyg1MCksDQogICAgICAgICAgICBrZXkyIEMoNTApLA0KICAgICAgICAgICAga2V5MyBDKDUwKSwNCiAgICAgICAgICAgIG93bmVyIEkNCic7DQoNCiRzcWxhcnJheSA9ICRkaWN0LT5DcmVhdGVUYWJsZVNRTChjbXNfZGJfcHJlZml4KCkgLiAnbW9kdWxlXycgLiAkdGhpcy0+X0dldE1vZHVsZUFsaWFzKCkgLiAnX2l0ZW0nLCAkZmllbGRzLCAkdGFib3B0YXJyYXkpOw0KJGRpY3QtPkV4ZWN1dGVTUUxBcnJheSgkc3FsYXJyYXkpOw0KDQovLyBjcmVhdGUgY2F0ZWdvcnkgdGFibGUNCiRmaWVsZHMgPSAnDQogICAgICAgICAgICBjYXRlZ29yeV9pZCBJIEtFWSBBVVRPLA0KICAgICAgICAgICAgY2F0ZWdvcnlfbmFtZSBDKDI1NSksDQogICAgICAgICAgICBjYXRlZ29yeV9hbGlhcyBDKDI1NSksDQogICAgICAgICAgICBjYXRlZ29yeV9kZXNjcmlwdGlvbiBYLA0KICAgICAgICAgICAgcGFyZW50X2lkIEksDQogICAgICAgICAgICBwb3NpdGlvbiBJLA0KICAgICAgICAgICAgaGllcmFyY2h5IEMoMjU1KSwNCiAgICAgICAgICAgIGhpZXJhcmNoeV9wYXRoIEMoMjU1KSwNCiAgICAgICAgICAgIGlkX2hpZXJhcmNoeSBDKDI1NSksDQogICAgICAgICAgICBhY3RpdmUgSTQsDQogICAgICAgICAgICBjcmVhdGVfZGF0ZSBEVCwNCiAgICAgICAgICAgIG1vZGlmaWVkX2RhdGUgRFQsDQogICAgICAgICAgICBrZXkxIEMoNTApLA0KICAgICAgICAgICAga2V5MiBDKDUwKSwNCiAgICAgICAgICAgIGtleTMgQyg1MCkNCic7DQoNCiRzcWxhcnJheSA9ICRkaWN0LT5DcmVhdGVUYWJsZVNRTChjbXNfZGJfcHJlZml4KCkgLiAnbW9kdWxlXycgLiAkdGhpcy0+X0dldE1vZHVsZUFsaWFzKCkgLiAnX2NhdGVnb3J5JywgJGZpZWxkcywgJHRhYm9wdGFycmF5KTsNCiRkaWN0LT5FeGVjdXRlU1FMQXJyYXkoJHNxbGFycmF5KTsNCg0KLy8gY3JlYXRlIGl0ZW1fY2F0ZWdvcmllcw0KJGZpZWxkcyA9ICcNCiAgICBpdGVtX2lkIEkgS0VZIE5PVCBOVUxMIERFRkFVTFQgXCctMVwnLA0KICAgIGNhdGVnb3J5X2lkIEkgS0VZIE5PVCBOVUxMIERFRkFVTFQgXCctMVwnDQonOw0KDQokc3FsYXJyYXkgPSAkZGljdC0+Q3JlYXRlVGFibGVTUUwoY21zX2RiX3ByZWZpeCgpIC4gJ21vZHVsZV8nIC4gJHRoaXMtPl9HZXRNb2R1bGVBbGlhcygpIC4gJ19pdGVtX2NhdGVnb3JpZXMnLCAkZmllbGRzLCAkdGFib3B0YXJyYXkpOw0KJGRpY3QtPkV4ZWN1dGVTUUxBcnJheSgkc3FsYXJyYXkpOw0KDQovLyBjcmVhdGUgZmllbGRkZWYgdGFibGUNCiRmaWVsZHMgPSAnDQogICAgICAgICAgICBmaWVsZGRlZl9pZCBJIEtFWSBBVVRPLA0KICAgICAgICAgICAgbmFtZSBDKDI1NSksDQogICAgICAgICAgICBhbGlhcyBDKDI1NSksDQogICAgICAgICAgICBoZWxwIEMoMjU1KSwNCiAgICAgICAgICAgIHR5cGUgQyg1MCksDQogICAgICAgICAgICBwb3NpdGlvbiBJLA0KICAgICAgICAgICAgcmVxdWlyZWQgSSwNCiAgICAgICAgICAgIHRlbXBsYXRlIEMoMjU1KSwNCiAgICAgICAgICAgIGV4dHJhIFgNCic7DQoNCiRzcWxhcnJheSA9ICRkaWN0LT5DcmVhdGVUYWJsZVNRTChjbXNfZGJfcHJlZml4KCkgLiAnbW9kdWxlXycgLiAkdGhpcy0+X0dldE1vZHVsZUFsaWFzKCkgLiAnX2ZpZWxkZGVmJywgJGZpZWxkcywgJHRhYm9wdGFycmF5KTsNCiRkaWN0LT5FeGVjdXRlU1FMQXJyYXkoJHNxbGFycmF5KTsNCg0KLy8gY3JlYXRlIGZpZWxkZGVmIG9wdGlvbnMgdGFibGUNCiRmaWVsZHMgPSAnDQogICAgICAgICAgICBmaWVsZGRlZl9pZCBJIEtFWSwNCiAgICAgICAgICAgIG5hbWUgQygyNTUpIEtFWSwNCiAgICAgICAgICAgIHZhbHVlIFgNCic7DQoNCiRzcWxhcnJheSA9ICRkaWN0LT5DcmVhdGVUYWJsZVNRTChjbXNfZGJfcHJlZml4KCkgLiAnbW9kdWxlXycgLiAkdGhpcy0+X0dldE1vZHVsZUFsaWFzKCkgLiAnX2ZpZWxkZGVmX29wdHMnLCAkZmllbGRzLCAkdGFib3B0YXJyYXkpOw0KJGRpY3QtPkV4ZWN1dGVTUUxBcnJheSgkc3FsYXJyYXkpOw0KDQovLyBjcmVhdGUgZmllbGR2YWwgdGFibGUNCiRmaWVsZHMgPSAnDQogICAgICAgICAgICBpdGVtX2lkIEkgS0VZIE5PVCBudWxsLA0KICAgICAgICAgICAgZmllbGRkZWZfaWQgSSBLRVkgTk9UIG51bGwsDQogICAgICAgICAgICB2YWx1ZV9pbmRleCBJIEtFWSBOT1QgbnVsbCwNCiAgICAgICAgICAgIHZhbHVlIFgsDQogICAgICAgICAgICBkYXRhIFgNCic7DQoNCiRzcWxhcnJheSA9ICRkaWN0LT5DcmVhdGVUYWJsZVNRTChjbXNfZGJfcHJlZml4KCkgLiAnbW9kdWxlXycgLiAkdGhpcy0+X0dldE1vZHVsZUFsaWFzKCkgLiAnX2ZpZWxkdmFsJywgJGZpZWxkcywgJHRhYm9wdGFycmF5KTsNCiRkaWN0LT5FeGVjdXRlU1FMQXJyYXkoJHNxbGFycmF5KTsNCg0KIyBub3cgY2hlY2sgZm9yIEROQSBkYXRhIGFuZCBpZiBpdCBleGlzdHMgdXNlIGl0IGluc3RlYWQNCiRmbiA9IGNtc19qb2luX3BhdGgoJHRoaXMtPkdldE1vZHVsZVBhdGgoKSwgJ2RhdGEnLCAnZG5hLnhtbCcpOw0KDQokaW1wb3J0ZWQgPSBGQUxTRTsNCmlmKEBpc19yZWFkYWJsZSgkZm4pKQ0Kew0KICAkeG1sc3RyID0gZmlsZV9nZXRfY29udGVudHMoJGZuKTsNCiAgJGltcG9ydGVyID0gbmV3IFxMSVNFXEROQUltcG9ydGVyKCR4bWxzdHIpOw0KICANCiAgdHJ5DQogIHsNCiAgICAkaW1wb3J0ZXItPlJ1bigpOw0KICAgICRpbXBvcnRlZCA9IFRSVUU7DQogIH0NCiAgY2F0Y2goRXhjZXB0aW9uICRlKQ0KICB7DQogICAgYXVkaXQoJycsICR0aGlzLT5HZXROYW1lKCksICdDb3VsZCBub3QgaW1wb3J0IGZyb20gRE5BIGZpbGUhJyk7DQogIH0NCn0NCg0KaWYoISRpbXBvcnRlZCkNCnsNCiAgIy0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KICAjIFRlbXBsYXRlcw0KICAjLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQogIA0KICAvLyBTdW1tYXJ5IHRlbXBsYXRlcw0KICAkZm4gPSBjbXNfam9pbl9wYXRoKExJU0VfVEVNUExBVEVfUEFUSCwgJ2ZlX3N1bW1hcnlfZGVmYXVsdC50cGwnKTsNCiAgaWYoIGZpbGVfZXhpc3RzKCAkZm4gKSApIHsNCiAgICAkdGVtcGxhdGUgPSBAZmlsZV9nZXRfY29udGVudHMoJGZuKTsNCiAgICAkdGhpcy0+U2V0VGVtcGxhdGUoJ3N1bW1hcnlfZGVmYXVsdCcsICR0ZW1wbGF0ZSk7DQogICAgJHRoaXMtPlNldFByZWZlcmVuY2UoJHRoaXMtPl9HZXRNb2R1bGVBbGlhcygpIC4gJ19kZWZhdWx0X3N1bW1hcnlfdGVtcGxhdGUnLCAnZGVmYXVsdCcpOw0KICB9DQogIA0KICAkZm4gPSBjbXNfam9pbl9wYXRoKExJU0VfVEVNUExBVEVfUEFUSCwgJ2ZlX3N1bW1hcnlfY2F0ZWdvcml6ZWQudHBsJyk7DQogIGlmKCBmaWxlX2V4aXN0cyggJGZuICkgKSB7DQogICAgJHRlbXBsYXRlID0gQGZpbGVfZ2V0X2NvbnRlbnRzKCRmbik7DQogICAgJHRoaXMtPlNldFRlbXBsYXRlKCdzdW1tYXJ5X2NhdGVnb3JpemVkJywgJHRlbXBsYXRlKTsNCiAgfQ0KICANCiAgJGZuID0gY21zX2pvaW5fcGF0aChMSVNFX1RFTVBMQVRFX1BBVEgsICdmZV9zdW1tYXJ5X2FjY29yZGlvbi50cGwnKTsNCiAgaWYoIGZpbGVfZXhpc3RzKCAkZm4gKSApIHsNCiAgICAkdGVtcGxhdGUgPSBAZmlsZV9nZXRfY29udGVudHMoJGZuKTsNCiAgICAkdGhpcy0+U2V0VGVtcGxhdGUoJ3N1bW1hcnlfYWNjb3JkaW9uJywgJHRlbXBsYXRlKTsNCiAgfQ0KICANCiAgJGZuID0gY21zX2pvaW5fcGF0aChMSVNFX1RFTVBMQVRFX1BBVEgsICdmZV9zdW1tYXJ5X3NlYXJjaHJlc3VsdHMudHBsJyk7DQogIGlmKCBmaWxlX2V4aXN0cyggJGZuICkgKSB7DQogICAgJHRlbXBsYXRlID0gQGZpbGVfZ2V0X2NvbnRlbnRzKCRmbik7DQogICAgJHRoaXMtPlNldFRlbXBsYXRlKCdzdW1tYXJ5X3NlYXJjaHJlc3VsdHMnLCAkdGVtcGxhdGUpOw0KICB9DQogIA0KICAvLyBEZXRhaWwgdGVtcGxhdGVzDQogICRmbiA9IGNtc19qb2luX3BhdGgoTElTRV9URU1QTEFURV9QQVRILCAnZmVfZGV0YWlsX2RlZmF1bHQudHBsJyk7DQogIGlmKCBmaWxlX2V4aXN0cyggJGZuICkgKSB7DQogICAgJHRlbXBsYXRlID0gQGZpbGVfZ2V0X2NvbnRlbnRzKCRmbik7DQogICAgJHRoaXMtPlNldFRlbXBsYXRlKCdkZXRhaWxfZGVmYXVsdCcsICR0ZW1wbGF0ZSk7DQogICAgJHRoaXMtPlNldFByZWZlcmVuY2UoJHRoaXMtPl9HZXRNb2R1bGVBbGlhcygpIC4gJ19kZWZhdWx0X2RldGFpbF90ZW1wbGF0ZScsICdkZWZhdWx0Jyk7DQogIH0NCiAgDQogIC8vIFNlYXJjaCB0ZW1wbGF0ZXMNCiAgJGZuID0gY21zX2pvaW5fcGF0aChMSVNFX1RFTVBMQVRFX1BBVEgsICdmZV9zZWFyY2hfZGVmYXVsdC50cGwnKTsNCiAgaWYoIGZpbGVfZXhpc3RzKCAkZm4gKSApIHsNCiAgICAkdGVtcGxhdGUgPSBAZmlsZV9nZXRfY29udGVudHMoJGZuKTsNCiAgICAkdGhpcy0+U2V0VGVtcGxhdGUoJ3NlYXJjaF9kZWZhdWx0JywgJHRlbXBsYXRlKTsNCiAgICAkdGhpcy0+U2V0UHJlZmVyZW5jZSgkdGhpcy0+X0dldE1vZHVsZUFsaWFzKCkgLiAnX2RlZmF1bHRfc2VhcmNoX3RlbXBsYXRlJywgJ2RlZmF1bHQnKTsNCiAgfQ0KICANCiAgJGZuID0gY21zX2pvaW5fcGF0aChMSVNFX1RFTVBMQVRFX1BBVEgsICdmZV9zZWFyY2hfZmlsdGVyLnRwbCcpOw0KICBpZiggZmlsZV9leGlzdHMoICRmbiApICkgew0KICAgICR0ZW1wbGF0ZSA9IEBmaWxlX2dldF9jb250ZW50cygkZm4pOw0KICAgICR0aGlzLT5TZXRUZW1wbGF0ZSgnc2VhcmNoX2ZpbHRlcicsICR0ZW1wbGF0ZSk7DQogIH0NCiAgDQogICRmbiA9IGNtc19qb2luX3BhdGgoTElTRV9URU1QTEFURV9QQVRILCAnZmVfc2VhcmNoX211bHRpc2VsZWN0LnRwbCcpOw0KICBpZiggZmlsZV9leGlzdHMoICRmbiApICkgew0KICAgICR0ZW1wbGF0ZSA9IEBmaWxlX2dldF9jb250ZW50cygkZm4pOw0KICAgICR0aGlzLT5TZXRUZW1wbGF0ZSgnc2VhcmNoX211bHRpc2VsZWN0JywgJHRlbXBsYXRlKTsNCiAgfQ0KICANCiAgLy8gQ2F0ZWdvcnkgdGVtcGxhdGVzDQogICRmbiA9IGNtc19qb2luX3BhdGgoTElTRV9URU1QTEFURV9QQVRILCAnZmVfY2F0ZWdvcnlfZGVmYXVsdC50cGwnKTsNCiAgaWYoIGZpbGVfZXhpc3RzKCAkZm4gKSApIHsNCiAgICAkdGVtcGxhdGUgPSBAZmlsZV9nZXRfY29udGVudHMoJGZuKTsNCiAgICAkdGhpcy0+U2V0VGVtcGxhdGUoJ2NhdGVnb3J5X2RlZmF1bHQnLCAkdGVtcGxhdGUpOw0KICAgICR0aGlzLT5TZXRQcmVmZXJlbmNlKCR0aGlzLT5fR2V0TW9kdWxlQWxpYXMoKSAuICdfZGVmYXVsdF9jYXRlZ29yeV90ZW1wbGF0ZScsICdkZWZhdWx0Jyk7DQogIH0NCiAgDQogICRmbiA9IGNtc19qb2luX3BhdGgoTElTRV9URU1QTEFURV9QQVRILCAnZmVfY2F0ZWdvcnlfaGllcmFyY2h5LnRwbCcpOw0KICBpZiggZmlsZV9leGlzdHMoICRmbiApICkgew0KICAgICR0ZW1wbGF0ZSA9IEBmaWxlX2dldF9jb250ZW50cygkZm4pOw0KICAgICR0aGlzLT5TZXRUZW1wbGF0ZSgnY2F0ZWdvcnlfaGllcmFyY2h5JywgJHRlbXBsYXRlKTsNCiAgfQ0KICANCiAgLy8gQXJjaGl2ZSB0ZW1wbGF0ZXMNCiAgJGZuID0gY21zX2pvaW5fcGF0aChMSVNFX1RFTVBMQVRFX1BBVEgsICdmZV9hcmNoaXZlX2RlZmF1bHQudHBsJyk7DQogIGlmKCBmaWxlX2V4aXN0cyggJGZuICkgKSB7DQogICAgJHRlbXBsYXRlID0gQGZpbGVfZ2V0X2NvbnRlbnRzKCRmbik7DQogICAgJHRoaXMtPlNldFRlbXBsYXRlKCdhcmNoaXZlX2RlZmF1bHQnLCAkdGVtcGxhdGUpOw0KICAgICR0aGlzLT5TZXRQcmVmZXJlbmNlKCR0aGlzLT5fR2V0TW9kdWxlQWxpYXMoKSAuICdfZGVmYXVsdF9hcmNoaXZlX3RlbXBsYXRlJywgJ2RlZmF1bHQnKTsNCiAgfQ0KICANCiAgIy0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KICAjIFByZWZlcmVuY2VzDQogICMtLS0tLS0tLS0tLS0tLS0tLS0tLS0NCiAgDQogICR0aGlzLT5TZXRQcmVmZXJlbmNlKCdzb3J0b3JkZXInLCAnQVNDJyk7DQogICR0aGlzLT5TZXRQcmVmZXJlbmNlKCdhZG1pbnNlY3Rpb24nLCAnY29udGVudCcpOw0KICAkdGhpcy0+U2V0UHJlZmVyZW5jZSgndXJsX3ByZWZpeCcsIG11bmdlX3N0cmluZ190b191cmwoJHRoaXMtPkdldE5hbWUoKSwgdHJ1ZSkpOw0KICAkdGhpcy0+U2V0UHJlZmVyZW5jZSgndXJsdGVtcGxhdGUnLCAne1ByZWZpeHxsb3dlcn0ve0l0ZW1UaXRsZXxsb3dlcn0nKTsNCiAgJHRoaXMtPlNldFByZWZlcmVuY2UoJ2FsaWFzX3RlbXBsYXRlJywgJ3tJdGVtVGl0bGV8bG93ZXJ9X3tJdGVtTmV4dElEfHN0cmluZ19mb3JtYXQ6IiUwNnUifScpOw0KICAkdGhpcy0+U2V0UHJlZmVyZW5jZSgnZnJpZW5kbHluYW1lJywgJHRoaXMtPkdldE5hbWUoKSk7DQogICR0aGlzLT5TZXRQcmVmZXJlbmNlKCdpdGVtX3Npbmd1bGFyJywgdXRmOF9lbmNvZGUoaHRtbF9lbnRpdHlfZGVjb2RlKCR0aGlzLT5Nb2RMYW5nKCdpdGVtJykpKSk7DQogICR0aGlzLT5TZXRQcmVmZXJlbmNlKCdpdGVtX3BsdXJhbCcsIHV0ZjhfZW5jb2RlKGh0bWxfZW50aXR5X2RlY29kZSgkdGhpcy0+TW9kTGFuZygnaXRlbXMnKSkpKTsNCiAgJHRoaXMtPlNldFByZWZlcmVuY2UoJ2l0ZW1fdGl0bGUnLCB1dGY4X2VuY29kZShodG1sX2VudGl0eV9kZWNvZGUoJHRoaXMtPk1vZExhbmcoJ2l0ZW1fdGl0bGUnKSkpKTsNCiAgLy8kdGhpcy0+U2V0UHJlZmVyZW5jZSgkdGhpcy0+X0dldE1vZHVsZUFsaWFzKCkgLiAnX2RlZmF1bHRfY2F0ZWdvcnknLCAnMScpOw0KfQ0KDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQojIFBlcm1pc3Npb25zDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQoNCiR0aGlzLT5DcmVhdGVQZXJtaXNzaW9uKCR0aGlzLT5fR2V0TW9kdWxlQWxpYXMoKSAuICdfbW9kaWZ5X2l0ZW0nLCAkdGhpcy0+X0dldE1vZHVsZUFsaWFzKCkgLiAnOiBNb2RpZnkgSXRlbXMnKTsNCiR0aGlzLT5DcmVhdGVQZXJtaXNzaW9uKCR0aGlzLT5fR2V0TW9kdWxlQWxpYXMoKSAuICdfbW9kaWZ5X2NhdGVnb3J5JywgJHRoaXMtPl9HZXRNb2R1bGVBbGlhcygpIC4gJzogTW9kaWZ5IENhdGVnb3JpZXMnKTsNCiR0aGlzLT5DcmVhdGVQZXJtaXNzaW9uKCR0aGlzLT5fR2V0TW9kdWxlQWxpYXMoKSAuICdfbW9kaWZ5X29wdGlvbicsICR0aGlzLT5fR2V0TW9kdWxlQWxpYXMoKSAuICc6IE1vZGlmeSBPcHRpb25zJyk7DQokdGhpcy0+Q3JlYXRlUGVybWlzc2lvbigkdGhpcy0+X0dldE1vZHVsZUFsaWFzKCkgLiAnX3JlbW92ZV9pdGVtJywgJHRoaXMtPl9HZXRNb2R1bGVBbGlhcygpIC4gJzogUmVtb3ZlIGl0ZW1zJyk7DQokdGhpcy0+Q3JlYXRlUGVybWlzc2lvbigkdGhpcy0+X0dldE1vZHVsZUFsaWFzKCkgLiAnX2FwcHJvdmVfaXRlbScsICR0aGlzLT5fR2V0TW9kdWxlQWxpYXMoKSAuICc6IEFwcHJvdmUgaXRlbXMnKTsNCiR0aGlzLT5DcmVhdGVQZXJtaXNzaW9uKCR0aGlzLT5fR2V0TW9kdWxlQWxpYXMoKSAuICdfbW9kaWZ5X2FsbF9pdGVtJywgJHRoaXMtPl9HZXRNb2R1bGVBbGlhcygpIC4gJzogTW9kaWZ5IGFsbCBpdGVtcycpOw0KDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQojIEV2ZW50cw0KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KDQokdGhpcy0+Q3JlYXRlRXZlbnQoJ1ByZUl0ZW1TYXZlJyk7DQokdGhpcy0+Q3JlYXRlRXZlbnQoJ1Bvc3RJdGVtU2F2ZScpOw0KDQokdGhpcy0+Q3JlYXRlRXZlbnQoJ1ByZUl0ZW1EZWxldGUnKTsNCiR0aGlzLT5DcmVhdGVFdmVudCgnUG9zdEl0ZW1EZWxldGUnKTsNCg0KJHRoaXMtPkNyZWF0ZUV2ZW50KCdQcmVJdGVtTG9hZCcpOw0KJHRoaXMtPkNyZWF0ZUV2ZW50KCdQb3N0SXRlbUxvYWQnKTsNCg0KJHRoaXMtPkNyZWF0ZUV2ZW50KCdQcmVSZW5kZXJBY3Rpb24nKTs=]]></data>
	</file>
	<file>
	  <filename>/framework/method.uninstallGlobals.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHANCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQojIExJU0UgLSBMaXN0IEl0IFNwZWNpYWwgRWRpdGlvbg0KIyBWZXJzaW9uIDEuMg0KIyBBIGZvcmsgb2YgTGlzdEkyDQojIG1haW50YWluZWQgYnkgRmVybmFuZG8gTW9yZ2FkbyBBS0EgSm8gTW9yZw0KIyBzaW5jZSAyMDE1DQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIw0KIyBPcmlnaW5hbCBBdXRob3I6IEJlbiBNYWxlbiwgPGJlbkBjb25jZXB0ZmFjdG9yeS5jb20uYXU+DQojIENvLU1haW50YWluZXI6IFNpbW9uIFJhZGZvcmQsIDxzaW1vbkBjb25jZXB0ZmFjdG9yeS5jb20uYXU+DQojIFdlYjogd3d3LmNvbmNlcHRmYWN0b3J5LmNvbS5hdQ0KIw0KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCiMNCiMgTWFpbnRhaW5lciBzaW5jZSAyMDExIHVwIHRvIDIwMTQ6IEpvbmF0aGFuIFNjaG1pZCwgPGhpQGpvbmF0aGFuc2NobWlkLmRlPg0KIyBXZWI6IHd3dy5qb25hdGhhbnNjaG1pZC5kZQ0KIw0KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCiMNCiMgU29tZSB3YWNrb3Mgc3RhcnRlZCBkZXN0cm95aW5nIHN0dWZmIHNpbmNlIDIwMTIgYW5kIHN0b3BwZWQgYXQgMjAxNDoNCiMNCiMgVGFwaW8gTMO2eXR0eSwgPHRhcHNhQG9yYW5nZS1tZWRpYS5maT4NCiMgV2ViOiB3d3cub3JhbmdlLW1lZGlhLmZpDQojDQojIEdvcmFuIElsaWMsIDx1bmlxdTNlQGdtYWlsLmNvbT4NCiMgV2ViOiB3d3cuaWNoLW1hY2gtZGFzLmF0DQojDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIw0KIyBMSVNFIGlzIGEgQ01TIE1hZGUgU2ltcGxlIG1vZHVsZSB0aGF0IGVuYWJsZXMgdGhlIHdlYiBkZXZlbG9wZXIgdG8gY3JlYXRlDQojIG11bHRpcGxlIGxpc3RzIHRocm91Z2hvdXQgYSBzaXRlLiBJdCBjYW4gYmUgZHVwbGljYXRlZCBhbmQgZ2l2ZW4gZnJpZW5kbHkNCiMgbmFtZXMgZm9yIGVhc2llciBjbGllbnQgbWFpbnRlbmFuY2UuDQojDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIyBCRUdJTl9MSUNFTlNFDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIyBUaGlzIGZpbGUgaXMgcGFydCBvZiBMSVNFDQojIExJU0UgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5DQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5DQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yDQojIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uDQojDQojIExJU0UgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLA0KIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZg0KIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlDQojIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuDQojIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlDQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlDQojIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcgVVNBDQojIE9yIHJlYWQgaXQgb25saW5lOiBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwNCiMNCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQojIEVORF9MSUNFTlNFDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KDQppZiggIWRlZmluZWQoJ0NNU19WRVJTSU9OJykgKSBleGl0Ow0KDQojIHNhdmUgdG8gRE5BIGJlZm9yZSB1bmluc3RhbGxpbmcNCg0KJGV4cG9ydGVyID0gbmV3IFxMSVNFXEROQUV4cG9ydGVyKCR0aGlzLT5HZXROYW1lKCkpOw0KJGV4cG9ydGVyLT5SdW4oKTsNCg0KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIyBEYXRhYmFzZSB0YWJsZXMNCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0NCg0KJGRpY3QgPSBOZXdEYXRhRGljdGlvbmFyeSgkZGIpOw0KDQokc3FsYXJyYXkgPSAkZGljdC0+RHJvcFRhYmxlU1FMKGNtc19kYl9wcmVmaXgoKSAuICdtb2R1bGVfJyAuICR0aGlzLT5fR2V0TW9kdWxlQWxpYXMoKSAuICdfaXRlbScpOw0KJGRpY3QtPkV4ZWN1dGVTUUxBcnJheSgkc3FsYXJyYXkpOw0KDQokc3FsYXJyYXkgPSAkZGljdC0+RHJvcFRhYmxlU1FMKGNtc19kYl9wcmVmaXgoKSAuICdtb2R1bGVfJyAuICR0aGlzLT5fR2V0TW9kdWxlQWxpYXMoKSAuICdfZmllbGRkZWYnKTsNCiRkaWN0LT5FeGVjdXRlU1FMQXJyYXkoJHNxbGFycmF5KTsNCg0KJHNxbGFycmF5ID0gJGRpY3QtPkRyb3BUYWJsZVNRTChjbXNfZGJfcHJlZml4KCkgLiAnbW9kdWxlXycgLiAkdGhpcy0+X0dldE1vZHVsZUFsaWFzKCkgLiAnX2ZpZWxkZGVmX29wdHMnKTsNCiRkaWN0LT5FeGVjdXRlU1FMQXJyYXkoJHNxbGFycmF5KTsNCg0KJHNxbGFycmF5ID0gJGRpY3QtPkRyb3BUYWJsZVNRTChjbXNfZGJfcHJlZml4KCkgLiAnbW9kdWxlXycgLiAkdGhpcy0+X0dldE1vZHVsZUFsaWFzKCkgLiAnX2NhdGVnb3J5Jyk7IC8vIHRoZSBvbmx5IGdvb2QgY2F0IGlzIGEgZGVhZCBjYXQNCiRkaWN0LT5FeGVjdXRlU1FMQXJyYXkoJHNxbGFycmF5KTsNCg0KJHNxbGFycmF5ID0gJGRpY3QtPkRyb3BUYWJsZVNRTChjbXNfZGJfcHJlZml4KCkgLiAnbW9kdWxlXycgLiAkdGhpcy0+X0dldE1vZHVsZUFsaWFzKCkgLiAnX2l0ZW1fY2F0ZWdvcmllcycpOw0KJGRpY3QtPkV4ZWN1dGVTUUxBcnJheSgkc3FsYXJyYXkpOw0KDQovLyBERVBSRUNBVEVEDQokc3FsYXJyYXkgPSAkZGljdC0+RHJvcFRhYmxlU1FMKGNtc19kYl9wcmVmaXgoKSAuICdtb2R1bGVfJyAuICR0aGlzLT5fR2V0TW9kdWxlQWxpYXMoKSAuICdfdGVtcGxhdGUnKTsNCiRkaWN0LT5FeGVjdXRlU1FMQXJyYXkoJHNxbGFycmF5KTsNCg0KJHNxbGFycmF5ID0gJGRpY3QtPkRyb3BUYWJsZVNRTChjbXNfZGJfcHJlZml4KCkgLiAnbW9kdWxlXycgLiAkdGhpcy0+X0dldE1vZHVsZUFsaWFzKCkgLiAnX2ZpZWxkdmFsJyk7DQokZGljdC0+RXhlY3V0ZVNRTEFycmF5KCRzcWxhcnJheSk7DQoNCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0NCiMgVGVtcGxhdGVzDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tCQ0KDQokdGhpcy0+RGVsZXRlVGVtcGxhdGUoKTsNCg0KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIyBQcmVmZXJlbmNlcw0KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KDQokdGhpcy0+UmVtb3ZlUHJlZmVyZW5jZSgpOw0KDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQojIFBlcm1pc3Npb25zDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQoNCiR0aGlzLT5SZW1vdmVQZXJtaXNzaW9uKCR0aGlzLT5fR2V0TW9kdWxlQWxpYXMoKSAuICdfbW9kaWZ5X2l0ZW0nKTsNCiR0aGlzLT5SZW1vdmVQZXJtaXNzaW9uKCR0aGlzLT5fR2V0TW9kdWxlQWxpYXMoKSAuICdfbW9kaWZ5X2NhdGVnb3J5Jyk7DQokdGhpcy0+UmVtb3ZlUGVybWlzc2lvbigkdGhpcy0+X0dldE1vZHVsZUFsaWFzKCkgLiAnX21vZGlmeV9vcHRpb24nKTsNCiR0aGlzLT5SZW1vdmVQZXJtaXNzaW9uKCR0aGlzLT5fR2V0TW9kdWxlQWxpYXMoKSAuICdfcmVtb3ZlX2l0ZW0nKTsNCiR0aGlzLT5SZW1vdmVQZXJtaXNzaW9uKCR0aGlzLT5fR2V0TW9kdWxlQWxpYXMoKSAuICdfYXBwcm92ZV9pdGVtJyk7DQokdGhpcy0+UmVtb3ZlUGVybWlzc2lvbigkdGhpcy0+X0dldE1vZHVsZUFsaWFzKCkgLiAnX21vZGlmeV9hbGxfaXRlbScpOw0KDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQojIEV2ZW50cw0KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KDQokdGhpcy0+UmVtb3ZlRXZlbnQoJ1ByZUl0ZW1TYXZlJyk7DQokdGhpcy0+UmVtb3ZlRXZlbnQoJ1Bvc3RJdGVtU2F2ZScpOw0KDQokdGhpcy0+UmVtb3ZlRXZlbnQoJ1ByZUl0ZW1EZWxldGUnKTsNCiR0aGlzLT5SZW1vdmVFdmVudCgnUG9zdEl0ZW1EZWxldGUnKTsNCg0KJHRoaXMtPlJlbW92ZUV2ZW50KCdQcmVJdGVtTG9hZCcpOw0KJHRoaXMtPlJlbW92ZUV2ZW50KCdQb3N0SXRlbUxvYWQnKTsNCg0KJHRoaXMtPlJlbW92ZUV2ZW50KCdQcmVSZW5kZXJBY3Rpb24nKTsNCg0K]]></data>
	</file>
	<file>
	  <filename>/framework/method.upgradeGlobals.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBMSVNFIC0gTGlzdCBJdCBTcGVjaWFsIEVkaXRpb24KIyBWZXJzaW9uIDEuMgojIEEgZm9yayBvZiBMaXN0STIKIyBtYWludGFpbmVkIGJ5IEZlcm5hbmRvIE1vcmdhZG8gQUtBIEpvIE1vcmcKIyBzaW5jZSAyMDE1CiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBPcmlnaW5hbCBBdXRob3I6IEJlbiBNYWxlbiwgPGJlbkBjb25jZXB0ZmFjdG9yeS5jb20uYXU+CiMgQ28tTWFpbnRhaW5lcjogU2ltb24gUmFkZm9yZCwgPHNpbW9uQGNvbmNlcHRmYWN0b3J5LmNvbS5hdT4KIyBXZWI6IHd3dy5jb25jZXB0ZmFjdG9yeS5jb20uYXUKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojCiMgTWFpbnRhaW5lciBzaW5jZSAyMDExIHVwIHRvIDIwMTQ6IEpvbmF0aGFuIFNjaG1pZCwgPGhpQGpvbmF0aGFuc2NobWlkLmRlPgojIFdlYjogd3d3LmpvbmF0aGFuc2NobWlkLmRlCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIwojIFNvbWUgd2Fja29zIHN0YXJ0ZWQgZGVzdHJveWluZyBzdHVmZiBzaW5jZSAyMDEyIGFuZCBzdG9wcGVkIGF0IDIwMTQ6CiMKIyBUYXBpbyBMw7Z5dHR5LCA8dGFwc2FAb3JhbmdlLW1lZGlhLmZpPgojIFdlYjogd3d3Lm9yYW5nZS1tZWRpYS5maQojCiMgR29yYW4gSWxpYywgPHVuaXF1M2VAZ21haWwuY29tPgojIFdlYjogd3d3LmljaC1tYWNoLWRhcy5hdAojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBMSVNFIGlzIGEgQ01TIE1hZGUgU2ltcGxlIG1vZHVsZSB0aGF0IGVuYWJsZXMgdGhlIHdlYiBkZXZlbG9wZXIgdG8gY3JlYXRlCiMgbXVsdGlwbGUgbGlzdHMgdGhyb3VnaG91dCBhIHNpdGUuIEl0IGNhbiBiZSBkdXBsaWNhdGVkIGFuZCBnaXZlbiBmcmllbmRseQojIG5hbWVzIGZvciBlYXNpZXIgY2xpZW50IG1haW50ZW5hbmNlLgojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgQkVHSU5fTElDRU5TRQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIExJU0UKIyBMSVNFIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgTElTRSBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBFTkRfTElDRU5TRQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQppZiggIWRlZmluZWQoJ0NNU19WRVJTSU9OJykgKSBleGl0OwoKJGRiID0gY21zbXMoKS0+R2V0RGIoKTsgCgpzd2l0Y2ggKCRvbGR2ZXJzaW9uKSAKewogIGNhc2UgJzAuMS5iLjInOgogICAgIyBhZGQgYSB0ZW1wbGF0ZSByb3cgZm9yIGZpZWxkIGRlZmluaXRpb24KICAgICR0YWJvcHRhcnJheSA9IGFycmF5KCdteXNxbCcgPT4gJ1RZUEU9TXlJU0FNJyk7CiAgICAkZGljdCA9IE5ld0RhdGFEaWN0aW9uYXJ5KCRkYik7CiAgICAkc3FsYXJyYXkgPSAkZGljdC0+QWRkQ29sdW1uU1FMKGNtc19kYl9wcmVmaXgoKSAuICdtb2R1bGVfJyAuICR0aGlzLT5fR2V0TW9kdWxlQWxpYXMoKSAuICdfZmllbGRkZWYnLCAndGVtcGxhdGUgQygyNTUpJyk7CiAgICAkZGljdC0+RXhlY3V0ZVNRTEFycmF5KCRzcWxhcnJheSk7CiAgCiAgY2FzZSAnMC4xLmIuMyc6CiAgICAjIHdlIG5vdyBzdXBwb3J0IElubm9EQiBpbnN0ZWFkIG9mIE15SVNBTQogICAgJHByZWZpeCA9IGNtc19kYl9wcmVmaXgoKSAuICdtb2R1bGVfJyAuICR0aGlzLT5fR2V0TW9kdWxlQWxpYXMoKSAuICdfJzsKICAgIAogICAgJHRhYmxlX2xpc3QgPSBhcnJheSgKICAgICAgICAgICAgICAgICAgICAgICAgICAnaXRlbScsCiAgICAgICAgICAgICAgICAgICAgICAgICAgJ2NhdGVnb3J5JywKICAgICAgICAgICAgICAgICAgICAgICAgICAnaXRlbV9jYXRlZ29yaWVzJywKICAgICAgICAgICAgICAgICAgICAgICAgICAnZmllbGRkZWYnLAogICAgICAgICAgICAgICAgICAgICAgICAgICdmaWVsZGRlZl9vcHRzJywKICAgICAgICAgICAgICAgICAgICAgICAgICAnZmllbGR2YWwnCiAgICAgICAgICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgICAgICAgICAgICAgIAogICAgZm9yZWFjaCgkdGFibGVfbGlzdCBhcyAkdGFibGUpCiAgICB7CiAgICAgICR0YWJsZW5hbWUgPSAkcHJlZml4IC4gJHRhYmxlOwogICAgICAkcSA9ICdBTFRFUiBUQUJMRSAnIC4gJHRhYmxlbmFtZSAuICcgRU5HSU5FPUlubm9EQjsnOwogICAgICAKICAgICAgdHJ5CiAgICAgIHsKICAgICAgICAkciA9ICRkYi0+RXhlY3V0ZSgkcSk7CiAgICAgICAgCiAgICAgICAgaWYoISRyKSB0aHJvdyBuZXcgXExJU0VcRXhjZXB0aW9uKCRkYi0+RXJyb3JObygpIC4gJyAtICcgLiAkZGItPkVycm9yTXNnKCkgLiAnIC0gUXVlcnk6ICcgLiAkZGItPnNxbCwgXExJU0VcRXJyb3I6OkRJU0NSRVRFX0RCICk7CiAgICAgICAgLy9pZighJHIpIHRocm93IG5ldyBFeGNlcHRpb24oJGRiLT5FcnJvck1zZygpLCAkZGItPkVycm9yTm8oKSk7CiAgICAgICAgJHRoaXMtPmF1ZGl0KDAsICdhbHRlciB0YWJsZScsICR0YWJsZSAuICcgc3VjY2VzcyEnKTsKICAgICAgfQogICAgICBjYXRjaCAoRXhjZXB0aW9uICRlKSAKICAgICAgewogICAgICAgICR0aGlzLT5hdWRpdCgwLCAnYWx0ZXIgdGFibGUnLCAkZSk7CiAgICAgIH0KCiAgICB9CiAgICAKICBjYXNlICcxLjEnOgogIGNhc2UgJzEuMi5iLjEnOgogIGNhc2UgJzEuMi5iLjInOgogIGNhc2UgJzEuMi5iLjMnOgogIGNhc2UgJzEuMi5iLjMuMic6CiAgY2FzZSAnMS4yLmIuMy4zJzoKICBjYXNlICcxLjIuYi4zLjQnOgogIGNhc2UgJzEuMi5iLjMuNSc6CiAgY2FzZSAnMS4yLmIuMy42JzoKICBjYXNlICcxLjIuYi4zLjcnOgogIGNhc2UgJzEuMi5iLjMuOCc6CiAgY2FzZSAnMS4yLmIuMy45JzoKICAgIAogICAgJG1vZF9wcmVmaXggPSBjbXNfZGJfcHJlZml4KCkgLiAnbW9kdWxlXycgLiAkdGhpcy0+X0dldE1vZHVsZUFsaWFzKCkgLiAnXyc7CiAgCiAgICAjIHNvIHdlIG1hZGUgYSBib29ib28uLi4gbGV0J3MgZml4IGl0CiAgICAjIDFzdCB0aGUgYXV0byBmaWVsZHMKICAgICRjaGFuZ2VzID0gYXJyYXkoCiAgICAgICAgICAgICAgICAgICAgICAnaXRlbScgPT4gJ2l0ZW1faWQnLAogICAgICAgICAgICAgICAgICAgICAgJ2NhdGVnb3J5JyA9PiAnY2F0ZWdvcnlfaWQnLAogICAgICAgICAgICAgICAgICAgICAgJ2ZpZWxkZGVmJyA9PiAnZmllbGRkZWZfaWQnCiAgICAgICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgICAgICAgICAKICAgIGZvcmVhY2goJGNoYW5nZXMgYXMgJHRhYmxlID0+ICRmaWVsZCkKICAgIHsKICAgICAgJHExID0gJ0FMVEVSIFRBQkxFICcgLiAkbW9kX3ByZWZpeCAuICR0YWJsZSAuICcgRFJPUCBJTkRFWCAnIC4gJGZpZWxkOwogICAgICAkcTIgPSAnQUxURVIgVEFCTEUgJyAuICRtb2RfcHJlZml4IC4gJHRhYmxlIC4gJyBNT0RJRlkgJyAuICRmaWVsZCAuICcgSU5URUdFUiBOT1QgTlVMTCBBVVRPX0lOQ1JFTUVOVCAsIEFERCBQUklNQVJZIEtFWSAoJyAuICRmaWVsZCAuICcpJzsKICAgICAgdHJ5CiAgICAgIHsKICAgICAgICAkciA9ICRkYi0+RXhlY3V0ZSgkcTEpOwogICAgICAgIAogICAgICAgIC8vaWYoISRyKSB0aHJvdyBuZXcgXExJU0VcRXhjZXB0aW9uKCRkYi0+RXJyb3JObygpIC4gJyAtICcgLiAkZGItPkVycm9yTXNnKCkgLCBcTElTRVxFcnJvcjo6RElTQ1JFVEVfREIgKTsKICAgICAgICAvL2lmKCEkcikgdGhyb3cgbmV3IEV4Y2VwdGlvbigkZGItPkVycm9yTXNnKCksICRkYi0+RXJyb3JObygpKTsKICAgICAgICAKICAgICAgICAkciA9ICRkYi0+RXhlY3V0ZSgkcTIpOwogICAgICAgICAgICAgICAgCiAgICAgICAgaWYoISRyKSB0aHJvdyBuZXcgXExJU0VcRXhjZXB0aW9uKCRkYi0+RXJyb3JObygpIC4gJyAtICcgLiAkZGItPkVycm9yTXNnKCkgLiAnIC0gUXVlcnk6ICcgLiAkZGItPnNxbCwgXExJU0VcRXJyb3I6OkRJU0NSRVRFX0RCICk7CiAgICAgICAgLy9pZighJHIpIHRocm93IG5ldyBFeGNlcHRpb24oJGRiLT5FcnJvck1zZygpLCAkZGItPkVycm9yTm8oKSk7CiAgICAgICAgCiAgICAgICAgJHRoaXMtPmF1ZGl0KDAsICdhbHRlciB0YWJsZScsICR0YWJsZSAuICcgc3VjY2VzcyEnKTsKICAgICAgfQogICAgICBjYXRjaCAoRXhjZXB0aW9uICRlKSAKICAgICAgewogICAgICAgICR0aGlzLT5hdWRpdCgwLCAnYWx0ZXIgdGFibGUnLCAkZSk7CiAgICAgIH0KICAgIH0KICAgIAogIAogICAgIyB0aGVuIHRoZSBrZXlzLi4uCiAgICAkY2hhbmdlcyA9IGFycmF5KAogICAgICAgICAgICAgICAgICAgICAgJ2ZpZWxkZGVmX29wdHMnID0+ICdmaWVsZGRlZl9pZCxuYW1lJywKICAgICAgICAgICAgICAgICAgICAgICdmaWVsZHZhbCcgPT4gJ2l0ZW1faWQsZmllbGRkZWZfaWQsdmFsdWVfaW5kZXgnCiAgICAgICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgICAgICAgICAKICAgIGZvcmVhY2goJGNoYW5nZXMgYXMgJHRhYmxlID0+ICRmaWVsZHMpCiAgICB7CiAgICAgICRmcyA9IGV4cGxvZGUoJywnLCAkZmllbGRzKTsKICAgICAgCiAgICAgICRzYnExID0gYXJyYXkoKTsKICAgICAgJHNicTIgPSBhcnJheSgpOwogICAgICAkbm4gPSAoJHRhYmxlID09PSAnZmllbGRkZWZfb3B0cycpID8gJycgOiAnTk9UIG51bGwnOwogICAgICAKICAgICAgZm9yZWFjaCgkZnMgYXMgJG9uZSApCiAgICAgIHsgCiAgICAgICAgJHNicTFbXSA9ICcgRFJPUCBJTkRFWCAoJyAuICRvbmUgLiAnKSc7CiAgICAgICAgJHNicTJbXSA9ICcgQUREIElOREVYICgnIC4gJG9uZSAuICcpICc7CiAgICAgIH0KICAgICAgICAgICAgCiAgICAgICRxMSA9ICdBTFRFUiBUQUJMRSAnIC4gJG1vZF9wcmVmaXggLiAkdGFibGUgLiBpbXBsb2RlKCcsJywgJHNicTEpOwogICAgICAkcTIgPSAnQUxURVIgVEFCTEUgJyAuICRtb2RfcHJlZml4IC4gJHRhYmxlIC4gaW1wbG9kZSgnLCcsICRzYnEyKTsKICAgICAKICAgICAgdHJ5CiAgICAgIHsKICAgICAgICAkcjEgPSAkZGItPkV4ZWN1dGUoJHExKTsKICAgICAgICAkcjIgPSAkZGItPkV4ZWN1dGUoJHEyKTsKCiAgICAgICAgaWYoISRyMikgdGhyb3cgbmV3IFxMSVNFXEV4Y2VwdGlvbigkZGItPkVycm9yTm8oKSAuICcgLSAnIC4gJGRiLT5FcnJvck1zZygpIC4gJyAtIFF1ZXJ5OiAnIC4gJGRiLT5zcWwsIFxMSVNFXEVycm9yOjpESVNDUkVURV9EQiApOwogICAgICAgIC8vaWYoISRyMikgdGhyb3cgbmV3IEV4Y2VwdGlvbigkZGItPkVycm9yTXNnKCksICRkYi0+RXJyb3JObygpKTsKICAgICAgICAkdGhpcy0+YXVkaXQoMCwgJ2FsdGVyIHRhYmxlJywgJHRhYmxlIC4gJyBzdWNjZXNzIScpOwogICAgICB9CiAgICAgIGNhdGNoIChFeGNlcHRpb24gJGUpIAogICAgICB7CiAgICAgICAgJHRoaXMtPmF1ZGl0KDAsICdhbHRlciB0YWJsZScsICRlKTsKICAgICAgfQogICAgfQogIGNhc2UgJzEuMi4yJzoKICBjYXNlICcxLjIuMi4xJzoKICAgIHRyeQogICAgewogICAgICAkbW9kX3ByZWZpeCA9IGNtc19kYl9wcmVmaXgoKSAuICdtb2R1bGVfJyAuICR0aGlzLT5fR2V0TW9kdWxlQWxpYXMoKSAuICdfJzsgCiAgICAgICRxID0gJ0FMVEVSIFRBQkxFICcgLiAkbW9kX3ByZWZpeCAuICdpdGVtX2NhdGVnb3JpZXMgQUxURVIgaXRlbV9pZCBTRVQgREVGQVVMVCAtMSwgJzsKICAgICAgJHEgLj0gJyBBTFRFUiBjYXRlZ29yeV9pZCAgU0VUIERFRkFVTFQgLTEnOwogICAgICAkciA9ICRkYi0+RXhlY3V0ZSgkcSk7CiAgICAgIGlmKCEkcikgdGhyb3cgbmV3IFxMSVNFXEV4Y2VwdGlvbigkZGItPkVycm9yTm8oKSAuICcgLSAnIC4gJGRiLT5FcnJvck1zZygpIC4gJyAtIFF1ZXJ5OiAnIC4gJGRiLT5zcWwsIFxMSVNFXEVycm9yOjpESVNDUkVURV9EQiApOwogICAgfQogICAgY2F0Y2ggKEV4Y2VwdGlvbiAkZSkgCiAgICB7CiAgICAgICR0aGlzLT5hdWRpdCgwLCAnYWx0ZXIgdGFibGUnLCAkZSk7CiAgICB9CiAgYnJlYWs7Cn0KPz4=]]></data>
	</file>
	<file>
	  <filename>/framework/templates</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/framework/templates/admin_csv_do_import.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PHNjcmlwdCB0eXBlPSd0ZXh0L2phdmFzY3JpcHQnPg0KZnVuY3Rpb24gZ28ocmVjb3JkID0gMCkNCnsNCiAgJC5hamF4KA0KICB7DQogICAgdHlwZTogJ1BPU1QnLA0KICAgIHVybDogJ3tjbXNfYWN0aW9uX3VybCBhY3Rpb249YWRtaW5fZG9faW1wb3J0X2NzdiBmb3Jqcz0xfScsDQogICAgZGF0YTp7DQogICAgICAgICAgICByZWNvcmQ6IHJlY29yZCwNCiAgICAgICAgICAgIG9mOiB7JHJvd3NfY291bnR9DQogICAgICAgICB9LA0KICAgIHN1Y2Nlc3M6IGZ1bmN0aW9uIChkYXRhLCBzdGF0dXMsIHhocikNCiAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICB2YXIgcGVyY2VudGFnZV9kb25lID0gTWF0aC5mbG9vcigoZGF0YS5jdXJyZW50IC8geyRyb3dzX2NvdW50fSkgKiAxMDApOw0KICAgICAgICAgICAgICAgJCgiI3Byb2dyZXNzYmFyIikNCiAgICAgICAgICAgICAgICAgLnByb2dyZXNzYmFyKA0KICAgICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgICB2YWx1ZTogcGVyY2VudGFnZV9kb25lDQogICAgICAgICAgICAgICAgICAgfSk7DQogICAgICAgICAgICAgICAkKCcjY3VycmVudF9yZWMnKS5odG1sKHBlcmNlbnRhZ2VfZG9uZSk7DQogICAgICAgICAgICAgICBpZihkYXRhLmN1cnJlbnQgPCB7JHJvd3NfY291bnR9ICYmICFkYXRhLmRvbmUpDQogICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgIHJldHVybiBnbyhkYXRhLmN1cnJlbnQpOw0KICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgJCgiLnBhZ2ViYWNrIikuc2hvdygpOw0KICAgICAgICAgICAgICAgJCgiI3N1Y2Nlc3MiKS5zaG93KCk7DQogICAgICAgICAgICAgICByZXR1cm47DQogICAgICAgICAgICAgfSwNCiAgICBlcnJvcjogZnVuY3Rpb24oeGhyKQ0KICAgICAgICAgICB7DQogICAgICAgICAgICAgJCgiI2Vycm9yX3AiKS5odG1sKHhoci5zdGF0dXMgKyAiICIgKyB4aHIuc3RhdHVzVGV4dCk7DQogICAgICAgICAgICAgJCgiI2Vycm9yIikuc2hvdygpOw0KICAgICAgICAgICB9DQogIH0pOw0KfQ0KDQokKGRvY3VtZW50KS5yZWFkeShmdW5jdGlvbigpDQp7DQogICQoIiNwcm9ncmVzc2JhciIpDQogICAgLnByb2dyZXNzYmFyKHsNCiAgICAgICAgICAgICAgICAgICBtYXg6IDEwMA0KICAgICAgICAgICAgICAgICB9KTsNCiAgJCgiLnBhZ2ViYWNrIikuaGlkZSgpOw0KICAkKCIjc3VjY2VzcyIpLmhpZGUoKTsNCiAgJCgiI2Vycm9yIikuaGlkZSgpOw0KICBnbygpOw0KfSk7DQo8L3NjcmlwdD4NCjxoMj57JHRpdGxlfTwvaDI+DQo8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPg0KICA8ZGl2IGNsYXNzPSJ3YXJuaW5nIj4NCiAgICA8cD5QbGVhc2Ugbm90ZSB0aGF0IHdoaWxlIHRoaXMgbW9kdWxlIHdhcyBub3QgZGVzaWduZWQgdG8gc3VwcG9ydCBhIGxhcmdlIG51bWJlciBvZiBpdGVtcywgaXQgaGFzIGJlZW4ga25vd24gdG8gYmUgdXNlZCwgaW4gY2VydGFpbiBzZXJ2ZXIgY29uZmlndXJhdGlvbnMsIHdpdGggdGVucyBvZiB0aG91c2FuZHMgb2YgcmVjb3JkcyB0b2dldGhlciB3aXRoIGEgaGlnaCBudW1iZXIgb2YgY3VzdG9tIGZpZWxkcyBwZXIgaW5zdGFuY2UsIGFsbCB3aXRoIGEgcmVhc29uYWJsZSBwZXJmb3JtYW5jZS4gQXMgc3VjaCBwbGVhc2UgYmUgYWR2aXNlZCB0aGF0IGltcG9ydGluZyBhIGxhcmdlIG51bWJlciBvZiBmaWxlcyBjYW4gYmUgc2xvdyBvbiBzb21lIHNlcnZlcnMuIFRoZQ0KICAgICAgaW1wb3J0IGZ1bmN0aW9uIGhhcyBiZWVuIGltcHJvdmVkIHRvIHByZXZlbnQgdGltZW91dHMuIFRoZSBzcGVlZCB3aWxsIHZhcnkgd2l0aCB2YXJ5IGZyb20gc2VydmVyDQogICAgICBjb25maWd1cmF0aW9uIHRvIHNlcnZlciBjb25maWd1cmF0aW9uLjwvcD4NCiAgPC9kaXY+DQo8L2Rpdj4NCjxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+DQogIDxkaXYgaWQ9InByb2dyZXNzYmFyIj48L2Rpdj4NCiAgPHA+SW1wb3J0ZWQgPHNwYW4gaWQ9ImN1cnJlbnRfcmVjIj4wPC9zcGFuPiUgb2YgeyRyb3dzX2NvdW50fSByZWNvcmRzITwvcD4NCiAgPGRpdiBpZD0ic3VjY2VzcyIgY2xhc3M9ImdyZWVuIj48cD5JbXBvcnQgaGFzIGJlZW4gY29tcGxldGVkIHN1Y2Vzc2Z1bHkuPC9wPjwvZGl2Pg0KICA8ZGl2IGlkPSJlcnJvciIgY2xhc3M9InJlZCI+PHAgaWQ9ImVycm9yX3AiPkltcG9ydCBoYXMgYmVlbiBjb21wbGV0ZWQgc3VjZXNzZnVseS48L3A+PC9kaXY+DQo8L2Rpdj4NCnskYmFja2xpbmt9]]></data>
	</file>
	<file>
	  <filename>/framework/templates/admin_csv_import.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PCEtLSBzdGFydCB0YWIgLS0+CjxkaXYgaWQ9InBhZ2VfdGFicyI+Cgk8ZGl2IGlkPSJlZGl0aXRlbSI+CgkJeyR0aXRsZX0KCTwvZGl2Pgo8L2Rpdj4KPCEtLSBlbmQgdGFiIC8vLS0+CjwhLS0gc3RhcnQgY29udGVudCAtLT4KPGRpdiBpZD0icGFnZV9jb250ZW50Ij4gCgk8ZGl2IGlkPSJlZGl0aXRlbV9jIj4gCgk8ZGl2IGlkPSJlZGl0aXRlbV9yZXN1bHQiPjwvZGl2PgoKCQl7JGJhY2tsaW5rfQoJCXskc3RhcnRmb3JtfQoKCQk8dGFibGUgY2VsbHNwYWNpbmc9IjAiIGNsYXNzPSJwYWdldGFibGUiPgoJCQk8dGhlYWQ+CgkJCQk8dHIgY2xhc3M9InRvcCI+CgkJCQkJPHRoPnskbW9kLT5Nb2RMYW5nKCdpbXBvcnRfYWxpYXMnKX08L3RoPgoJCQkJCTx0aD57JG1vZC0+TW9kTGFuZygnZmlsZV9hbGlhcycpfTwvdGg+CgkJCQkJPHRoPntsYW5nKCdoZWxwJyl9PC90aD4KCQkJCQk8dGggY2xhc3M9InBhZ2VpY29uIj57JG1vZC0+TW9kTGFuZygncmVxdWlyZWQnKX08L3RoPgoJCQkJPC90cj4KCQkJPC90aGVhZD4KCQkJPHRib2R5IGNsYXNzPSJjb250ZW50IiB3aWR0aD0iMTAwJSI+CgkJe2ZvcmVhY2ggZnJvbT0kZGF0YWJhc2VfdmFsdWVzIGl0ZW09b2JqfQoJCQkJPHRyIGNsYXNzPSJ7Y3ljbGUgdmFsdWVzPSdyb3cxLHJvdzInfSI+CgkJCQkJPHRkPnskb2JqLT5hbGlhc308L3RkPgoJCQkJCTx0ZD57aHRtbF9vcHRpb25zIG5hbWU9InskYWN0aW9uaWR9aW1wb3J0X3ZhbHVlc1t7JG9iai0+YWxpYXN9XSIgb3B0aW9ucz0kZmlsZV92YWx1ZXMgc2VsZWN0ZWQ9JGZpbGVfdmFsdWVzWyRvYmotPmFsaWFzXX08L3RkPgoJCQkJCTx0ZD57JG9iai0+aGVscH08L3RkPgoJCQkJCTx0ZD57JG9iai0+cmVxdWlyZWRfaW1hZ2V9PC90ZD4KCQkJCTwvdHI+CgkJey9mb3JlYWNofQkJCgkJCTwvdGJvZHk+CgkJPC90YWJsZT4JCQoKCQk8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgoJCQk8ZGl2IGNsYXNzPSJwYWdldGV4dCI+Jm5ic3A7PC9kaXY+CgkJCTxkaXYgY2xhc3M9InBhZ2VpbnB1dCI+eyRwcmV2aW91c317JGRvX2ltcG9ydH17JGNhbmNlbH08L2Rpdj4KCQk8L2Rpdj4KCgkJeyRlbmRmb3JtfQoJPC9kaXY+CjwvZGl2Pgo8IS0tIGVuZCBjb250ZW50IC8vLS0+]]></data>
	</file>
	<file>
	  <filename>/framework/templates/admin_csv_import_app.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PHNjcmlwdD4NCiAgbGV0IGN2c19hcHAgPSB7DQogICAgcnVubmluZzogZmFsc2UsDQogICAgc3RhcnQ6IDEsDQogICAgc3RlcDogMTAsDQogICAgZW5kOiAwLA0KICAgIGNvdW50OiAwDQogIH07DQoNCiAgbGV0IHRpbWVyX2FwcCA9IHsNCiAgICBlc3RpbWF0ZV90aW1lcjogbnVsbCwNCiAgICBzdGFydF90aW1lOiAwLA0KICAgIGxhcF90aW1lOiAwDQogIH07DQoNCiAgZnVuY3Rpb24gbXNUb1RpbWUocykNCiAgew0KICAgIC8vIFBhZCB0byAyIG9yIDMgZGlnaXRzLCBkZWZhdWx0IGlzIDINCiAgICBsZXQgcGFkID0gKG4sIHogPSAyKSA9PiAoJzAwJyArIG4pLnNsaWNlKC16KTsNCiAgICByZXR1cm4gcGFkKHMvMy42ZTZ8MCkgKyAnSCAnICsgcGFkKChzJTMuNmU2KS82ZTQgfCAwKSArICdtICcgKyBwYWQoKHMlNmU0KS8xMDAwfDApICsgJ3MnIC8qKyBwYWQocyUxMDAwLCAzKSovOw0KICB9DQoNCiAgZnVuY3Rpb24gc2V0X2VuZCh2YWwpDQogIHsNCiAgICBjdnNfYXBwLmVuZCA9IHZhbDsNCiAgICAkKCIjcHJvZ3Jlc3NiYXIiKS5wcm9ncmVzc2JhciggIm9wdGlvbiIsICJtYXgiLCBjdnNfYXBwLmVuZCApOw0KICAgICQoIiN0b3RhbCIpLmh0bWwoY3ZzX2FwcC5lbmQpOw0KICB9DQoNCiAgZnVuY3Rpb24gc2V0X3Byb2dyZXNzKHZhbCkNCiAgew0KICAgIGN2c19hcHAuY291bnQgPSB2YWw7DQogICAgJCgiI2NvdW50IikuaHRtbChjdnNfYXBwLmNvdW50KTsNCiAgICAkKCAiI3Byb2dyZXNzYmFyIiApLnByb2dyZXNzYmFyKHsNCiAgICAgIHZhbHVlOiBjdnNfYXBwLmNvdW50DQogICAgfSk7DQogIH0NCg0KICBmdW5jdGlvbiBzdGFydF9lc3RpbWF0aW5nKCkNCiAgew0KICAgIHRpbWVyX2FwcC5zdGFydF90aW1lID0gbmV3IERhdGUoKS5nZXRUaW1lKCk7DQogICAgdGltZXJfYXBwLmVzdGltYXRlX3RpbWVyID0gc2V0SW50ZXJ2YWwoZXN0aW1hdGVfdGltZSwgMTAwMCk7DQogIH0NCg0KICBmdW5jdGlvbiBlc3RpbWF0ZV90aW1lKCkNCiAgew0KICAgIHRpbWVyX2FwcC5sYXBfdGltZSA9IG5ldyBEYXRlKCkuZ2V0VGltZSgpOw0KICAgIGxldCBsYXBzZWQgPSB0aW1lcl9hcHAubGFwX3RpbWUgLSB0aW1lcl9hcHAuc3RhcnRfdGltZTsNCiAgICBsZXQgcmF0aW8gPSBsYXBzZWQgLyBjdnNfYXBwLmNvdW50Ow0KICAgIGxldCBlc3RpbWF0ZWQgPSByYXRpbyAqIGN2c19hcHAuZW5kOw0KICAgIGxldCB0aW1lX2xlZnQgPSBlc3RpbWF0ZWQgLSBsYXBzZWQ7DQogICAgJCgiI2xhcHNlZCIpLmh0bWwoIG1zVG9UaW1lKGxhcHNlZCkgKTsNCiAgICAkKCIjdGltZV9lc3RpbWF0ZWQiKS5odG1sKCBtc1RvVGltZShlc3RpbWF0ZWQpICk7DQogICAgJCgiI3RpbWVfbGVmdCIpLmh0bWwoIG1zVG9UaW1lKHRpbWVfbGVmdCkgKTsNCiAgfQ0KDQogIGZ1bmN0aW9uIHN0b3BfZXN0aW1hdGluZygpDQogIHsNCiAgICBjbGVhckludGVydmFsKHRpbWVyX2FwcC5lc3RpbWF0ZV90aW1lcik7DQogIH0NCg0KeyogIGZ1bmN0aW9uIGFqYXhfaW5pdCgpKn0NCnsqICB7Kn0NCnsqICAgICQuYWpheCh7Kn0NCnsqICAgICAgdHlwZToiR0VUIiwqfQ0KeyogICAgICB1cmw6ICJ7Y21zX2FjdGlvbl91cmwgYWN0aW9uPWFkbWluX2N2c19leHBvcnRfYWpheCBmb3Jqcz0xfSIsKn0NCnsqICAgICAgZGF0YTogInskYWN0aW9uaWR9d3N0cD0wIiwqfQ0KeyogICAgICBzdWNjZXNzOiBmdW5jdGlvbihkYXRhKSp9DQp7KiAgICAgICAgICAgeyp9DQp7KiAgICAgICAgICAgICBzZXRfZW5kKGRhdGEuY29udGVudC5saW5lcyk7Kn0NCnsqICAgICAgICAgICAgIC8vcmVjdXJzaXZlX2FqYXgoKTsqfQ0KeyogICAgICAgICAgIH0qfQ0KeyogICAgfSk7Kn0NCg0KeyogIH0qfQ0KDQp7KiAgZnVuY3Rpb24gcmVjdXJzaXZlX2FqYXgoKSp9DQp7KiAgeyp9DQp7Ki8vICAgIGxldCBzdGVwID0gY3ZzX2FwcC5zdGVwOyp9DQp7Ki8vKn0NCnsqLy8gICAgaWYoY3ZzX2FwcC5jb3VudCA9PT0gMCkqfQ0KeyovLyAgICB7Kn0NCnsqLy8gICAgICBjdnNfYXBwLmNvdW50ID0gMTsqfQ0KeyovLyAgICB9Kn0NCg0KeyogICAgaWYoY3ZzX2FwcC5jb3VudCArIGN2c19hcHAuc3RlcCA+IGN2c19hcHAuZW5kKSp9DQp7KiAgICB7Kn0NCnsqICAgICAgY3ZzX2FwcC5zdGVwID0gY3ZzX2FwcC5lbmQgLSBjdnNfYXBwLmNvdW50Oyp9DQp7KiAgICB9Kn0NCg0KeyogICAgJC5hamF4KHsqfQ0KeyogICAgICB0eXBlOiJHRVQiLCp9DQp7KiAgICAgIHVybDogIntjbXNfYWN0aW9uX3VybCBhY3Rpb249YWRtaW5fY3ZzX2V4cG9ydF9hamF4IGZvcmpzPTF9IiwqfQ0KeyogICAgICBkYXRhOiAieyRhY3Rpb25pZH13c3RwPTEmeyRhY3Rpb25pZH1vZmZzZXQ9IiArIGN2c19hcHAuY291bnQgKyAiJnskYWN0aW9uaWR9c3RlcD0iICsgY3ZzX2FwcC5zdGVwLCp9DQp7KiAgICAgIHN1Y2Nlc3M6IGZ1bmN0aW9uKGRhdGEpKn0NCnsqICAgICAgICAgICAgICAgeyp9DQp7KiAgICAgICAgICAgICAgICAgY3ZzX2FwcC5jb3VudCA9IGN2c19hcHAuY291bnQgKyBjdnNfYXBwLnN0ZXA7Kn0NCg0KeyogICAgICAgICAgICAgICAgICAvL2NvbnNvbGUud2FybihjdnNfYXBwLmNvdW50LCBjdnNfYXBwLmVuZCwgIE1hdGgucm91bmQoY3ZzX2FwcC5jb3VudCAvIGN2c19hcHAuZW5kKSwgTWF0aC5yb3VuZCggMTAwMCAqIChjdnNfYXBwLmNvdW50IC8gY3ZzX2FwcC5lbmQpICkgKTsqfQ0KeyogICAgICAgICAgICAgICAgICQoICIjcHJvZ3Jlc3NiYXIiICkucHJvZ3Jlc3NiYXIoeyp9DQp7KiAgICAgICAgICAgICAgICAgICAvL3ZhbHVlOiAxMDAwICogKGN2c19hcHAuY291bnQgLyBjdnNfYXBwLmVuZCkgIC8vMTAwICogKExvYWRlZCAvIFRvdGFsKSp9DQp7KiAgICAgICAgICAgICAgICAgICB2YWx1ZTogY3ZzX2FwcC5jb3VudCp9DQp7KiAgICAgICAgICAgICAgICAgfSk7Kn0NCg0KeyogICAgICAgICAgICAgICAgICQoIiNjb3VudCIpLmh0bWwoY3ZzX2FwcC5jb3VudCk7Kn0NCnsqICAgICAgICAgICAgICAgICAkKCIjdG90YWwiKS5odG1sKGN2c19hcHAuZW5kKTsqfQ0KDQp7KiAgICAgICAgICAgICAgICAgaWYoY3ZzX2FwcC5jb3VudCA+PSBjdnNfYXBwLmVuZCkqfQ0KeyogICAgICAgICAgICAgICAgICAgIHsqfQ0KeyogICAgICAgICAgICAgICAgICAgICAgc3RvcCgpOyp9DQp7KiAgICAgICAgICAgICAgICAgICAgfSp9DQoNCnsqICAgICAgICAgICAgICAgICBpZihjdnNfYXBwLnJ1bm5pbmcpKn0NCnsqICAgICAgICAgICAgICAgICAgIHsqfQ0KeyogICAgICAgICAgICAgICAgICAgICAvL2NvbnNvbGUud2FybigiZ2V0IGp2bSBpbmZvIHN1Y2Nlc3MiKTsqfQ0KeyogICAgICAgICAgICAgICAgICAgICByZWN1cnNpdmVfYWpheCgpOyp9DQp7KiAgICAgICAgICAgICAgICAgICB9Kn0NCnsqICAgICAgICAgICAgICAgICBlbHNlKn0NCnsqICAgICAgICAgICAgICAgICAgIHsqfQ0KeyogICAgICAgICAgICAgICAgICAgICBjb25zb2xlLndhcm4oInN0b3BwZWQiKTsqfQ0KeyogICAgICAgICAgICAgICAgICAgfSp9DQp7KiAgICAgICAgICAgICAgICB9Kn0NCnsqICAgIH0pOyp9DQp7KiAgfSp9DQoNCiAgZnVuY3Rpb24gcnVuKCkNCiAgew0KICAgIGNvbnNvbGUud2Fybigic3RhcnRlZCIpOw0KICAgIGN2c19hcHAucnVubmluZyA9IHRydWU7DQogICAgc3RhcnRfZXN0aW1hdGluZygpOw0KICAgIC8vYWpheF9pbml0KCk7DQogICAgcmVjdXJzaXZlX2FqYXgoKTsNCiAgfQ0KDQogIGZ1bmN0aW9uIHN0b3AoKQ0KICB7DQogICAgc3RvcF9lc3RpbWF0aW5nKCk7DQogICAgY3ZzX2FwcC5ydW5uaW5nID0gZmFsc2U7DQogIH0NCg0KICBmdW5jdGlvbiB0b2dnbGUoKQ0KICB7DQogICAgaWYoY3ZzX2FwcC5ydW5uaW5nKQ0KICAgIHsNCiAgICAgIHN0b3AoKTsNCiAgICAgICQoIiNydW4iKS5odG1sKCdydW4nKTsNCiAgICB9DQogICAgZWxzZQ0KICAgIHsNCiAgICAgIHJ1bigpOw0KICAgICAgJCgiI3J1biIpLmh0bWwoJ3N0b3AnKTsNCiAgICB9DQogIH0NCg0KICAkKGZ1bmN0aW9uKCkNCiAgew0KICAgICQoIiNwcm9ncmVzc2JhciIpLnByb2dyZXNzYmFyKHsNCiAgICAgIG1heDogMTAwMA0KICAgIH0pOw0KDQogICAkKCIjcnVuIikub24oICJjbGljayIsIGZ1bmN0aW9uKCkgew0KICAgICB0b2dnbGUoKTsNCiAgICAgcmV0dXJuIGZhbHNlOw0KICAgfSk7DQoNCiAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnbG9hZGFyZWEnKS5zcmMgPSAne2Ntc19hY3Rpb25fdXJsIGFjdGlvbj1jdnNfaW1wb3J0X3N0ZXBfMSBmb3Jqcz0xfSc7DQoNCiAgIC8vYWpheF9pbml0KCk7DQoNCiAgfSk7DQoNCjwvc2NyaXB0Pg0KDQo8ZGl2IGlkPSJhcHAiPg0KICA8ZGl2IGNsYXNzPSJjb250YWluZXIgY19mdWxsIGNmIj4NCiAgICA8ZGl2IGlkPSJtZXNzYWdlcyIgY2xhc3M9ImdyaWRfOCB3YXJuaW5nIj4NCiAgICAgIFBsZWFzZSB3YWl0IGEgZmV3IG1vbWVudHM6IHByZXBhcmF0aW9uIGNhbiB0YWtlIGZyb20gYSBmZXcgc2Vjb25kcyB0byBhIGZldyBtaW51dGVzIGRlcGVuZGluZyBvbiB0aGUgaW1wb3J0IHNpemUuDQogICAgPC9kaXY+DQogIDwvZGl2Pg0KPC9kaXY+DQoNCnsqPGEgaHJlZj0iIyIgaWQ9InJ1biIgY2xhc3M9ImJ1dHRvbiI+cnVuPC9hPip9DQoNCjxkaXYgaWQ9InByb2dyZXNzYmFyIiBjbGFzcz0idWktcHJvZ3Jlc3NiYXItdmFsdWUiPjwvZGl2Pg0KPGRpdiBpZD0iaW5mbyIgc3R5bGU9Im1heC13aWR0aDogNTAlIj4NCiAgPHA+SXRlbXM6IDxzcGFuIGlkPSJjb3VudCIgc3R5bGU9Im1hcmdpbjogYXV0byI+MDwvc3Bhbj4gb2YgPHNwYW4gaWQ9InRvdGFsIj4wPC9zcGFuPjwvcD4NCiAgPHA+VGltZTogPHNwYW4gaWQ9ImxhcHNlZCIgc3R5bGU9Im1hcmdpbjogYXV0byI+MDBIIDAwbSAwMHM8L3NwYW4+PC9wPg0KICA8cD5MZWZ0OiA8c3BhbiBpZD0idGltZV9sZWZ0IiBzdHlsZT0ibWFyZ2luOiBhdXRvIj4wMEggMDBtIDAwczwvc3Bhbj48L3A+DQogIDxwPkVzdGltYXRlZDogPHNwYW4gaWQ9InRpbWVfZXN0aW1hdGVkIiBzdHlsZT0ibWFyZ2luOiBhdXRvIj4wMEggMDBtIDAwczwvc3Bhbj48L3A+DQo8L2Rpdj4NCg0KDQoNCjxpZnJhbWUgaWQ9ImxvYWRhcmVhIiBzdHlsZT0iZGlzcGxheTpub25lOyI+PC9pZnJhbWU+DQoNCg0KDQo=]]></data>
	</file>
	<file>
	  <filename>/framework/templates/admin_csv_import_export.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PCEtLSBzdGFydCB0YWIgLS0+CjxkaXYgaWQ9InBhZ2VfdGFicyI+Cgk8ZGl2IGlkPSJlZGl0aXRlbSI+CgkJeyR0aXRsZX0KCTwvZGl2Pgo8L2Rpdj4KPCEtLSBlbmQgdGFiIC8vLS0+CjwhLS0gc3RhcnQgY29udGVudCAtLT4KPGRpdiBpZD0icGFnZV9jb250ZW50Ij4gCgk8ZGl2IGlkPSJlZGl0aXRlbV9jIj4gCgk8ZGl2IGlkPSJlZGl0aXRlbV9yZXN1bHQiPjwvZGl2PgoKCQl7JGJhY2tsaW5rfQoJCXskc3RhcnRmb3JtfQoKCQl7aWYgaXNzZXQoJGlucHV0X2V4cG9ydHZhbHVlcyl9CgkJPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KCQkJPGRpdiBjbGFzcz0icGFnZXRleHQiPnskbW9kLT5Nb2RMYW5nKCd2YWx1ZXMnKX06PC9kaXY+CgkJCTxkaXYgY2xhc3M9InBhZ2VpbnB1dCI+eyRpbnB1dF9leHBvcnR2YWx1ZXN9PC9kaXY+CgkJPC9kaXY+CgkJey9pZn0JCgoJCTxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CgkJCTxkaXYgY2xhc3M9InBhZ2V0ZXh0Ij57JG1vZC0+TW9kTGFuZygnZmlsZScpfTo8L2Rpdj4KCQkJPGRpdiBjbGFzcz0icGFnZWlucHV0Ij57JGlucHV0X2ZpbGV9PC9kaXY+CgkJPC9kaXY+CgkKCQk8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgoJCQk8ZGl2IGNsYXNzPSJwYWdldGV4dCI+eyRtb2QtPk1vZExhbmcoJ3NlcGFyYXRvcicpfTo8L2Rpdj4KCQkJPGRpdiBjbGFzcz0icGFnZWlucHV0Ij57JGlucHV0X3NlcGFyYXRvcn08L2Rpdj4KCQk8L2Rpdj4KCgkJPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KCQkJPGRpdiBjbGFzcz0icGFnZXRleHQiPnskbW9kLT5Nb2RMYW5nKCdlbmNsb3N1cmUnKX06PC9kaXY+CgkJCTxkaXYgY2xhc3M9InBhZ2VpbnB1dCI+eyRpbnB1dF9lbmNsb3N1cmV9PC9kaXY+CgkJPC9kaXY+CgoJCTxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CgkJCTxkaXYgY2xhc3M9InBhZ2V0ZXh0Ij4mbmJzcDs8L2Rpdj4KCQkJPGRpdiBjbGFzcz0icGFnZWlucHV0Ij57JHN1Ym1pdH17JGNhbmNlbH08L2Rpdj4KCQk8L2Rpdj4KCgkJeyRlbmRmb3JtfQoJPC9kaXY+CjwvZGl2Pgo8IS0tIGVuZCBjb250ZW50IC8vLS0+]]></data>
	</file>
	<file>
	  <filename>/framework/templates/admin_edit_item_buttons.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4NCiAgPHAgY2xhc3M9InBhZ2VpbnB1dCI+DQogICAgeyRzaG93X29wdHMgPSAwfQ0KICAgIHtpZiAkcHJldmlvdXNfaWQgPiAwICYmICRpdGVtT2JqZWN0LT5pdGVtX2lkfGRlZmF1bHQ6LTEgPiAwfXskc2hvd19vcHRzID0gMX0NCiAgICAgIDxhDQogICAgICAgIHRpdGxlPSJ7bGFuZygncHJldmlvdXMnKX0iDQogICAgICAgIGNsYXNzPSJ1aS1idXR0b24gdWktd2lkZ2V0IHVpLXN0YXRlLWRlZmF1bHQgdWktY29ybmVyLWFsbCBsaXNlLXByZXZpb3VzLW5leHQgZWRpdC1wcmV2aW91cyINCiAgICAgICAgaHJlZj0ie2Ntc19hY3Rpb25fdXJsIGFjdGlvbj1hZG1pbl9lZGl0aXRlbSBpdGVtX2lkPSRwcmV2aW91c19pZH0iPg0KICAgICAgICA8c3BhbiBjbGFzcz0idWktaWNvbiB1aS1idXR0b24taWNvbi1wcmltYXJ5IHVpLWljb24tdHJpYW5nbGUtMS13Ig0KICAgICAgICAgICAgICBzdHlsZT0icG9zaXRpb246cmVsYXRpdmU7dG9wOjUwJTttYXJnaW4tdG9wOi04cHgiDQogICAgICAgID48L3NwYW4+DQogICAgICA8L2E+DQogICAgey9pZn0NCiAgICA8aW5wdXQgbmFtZT0ieyRhY3Rpb25pZH1jYW5jZWwiIGNsYXNzPSJsaXNlX2NhbmNlbCIgdmFsdWU9IntsYW5nKCdjYW5jZWwnKX0iIHR5cGU9InN1Ym1pdCIgLz4NCiAgICB7aWYgJGl0ZW1PYmplY3QtPml0ZW1faWR8ZGVmYXVsdDotMSA+IDB9DQogICAgICA8aW5wdXQgbmFtZT0ieyRhY3Rpb25pZH1hcHBseSIgY2xhc3M9Imxpc2VfYXBwbHkiIHZhbHVlPSJ7bGFuZygnYXBwbHknKX0iIHR5cGU9InN1Ym1pdCIgLz4NCiAgICB7L2lmfQ0KICAgIDxpbnB1dCBuYW1lPSJ7JGFjdGlvbmlkfXNhdmVfY3JlYXRlIiBjbGFzcz0ibGlzZV9zYXZlX2NyZWF0ZSIgdmFsdWU9InskbW9kLT5Nb2RMYW5nKCdzYXZlX2NyZWF0ZScpfSIgdHlwZT0ic3VibWl0IiAvPg0KICAgIDxpbnB1dCBuYW1lPSJ7JGFjdGlvbmlkfXN1Ym1pdCIgY2xhc3M9Imxpc2Vfc3VibWl0IiB2YWx1ZT0ie2xhbmcoJ3N1Ym1pdCcpfSIgdHlwZT0ic3VibWl0IiAvPg0KICB7aWYgJG5leHRfaWQgPiAwICYmICRpdGVtT2JqZWN0LT5pdGVtX2lkfGRlZmF1bHQ6LTEgPiAwfXskc2hvd19vcHRzID0gMX0NCg0KICAgICA8YQ0KICAgICAgdGl0bGU9IntsYW5nKCduZXh0Jyl9Ig0KICAgICAgY2xhc3M9InVpLWJ1dHRvbiB1aS13aWRnZXQgdWktc3RhdGUtZGVmYXVsdCB1aS1jb3JuZXItYWxsIGxpc2UtcHJldmlvdXMtbmV4dCBlZGl0LW5leHQiDQogICAgICBocmVmPSJ7Y21zX2FjdGlvbl91cmwgYWN0aW9uPWFkbWluX2VkaXRpdGVtIGl0ZW1faWQ9JG5leHRfaWR9Ij4NCiAgICAgIDxzcGFuIGNsYXNzPSJ1aS1pY29uIHVpLWljb24tdHJpYW5nbGUtMS1lIg0KICAgICAgICAgICAgc3R5bGU9InBvc2l0aW9uOnJlbGF0aXZlO3RvcDo1MCU7bWFyZ2luLXRvcDotOHB4Ig0KICAgICAgPjwvc3Bhbj4NCiAgICA8L2E+DQoNCiAgICB7L2lmfQ0KDQogICAge2lmICRzaG93X29wdHN9DQogICAgICA8YQ0KICAgICAgICB0aXRsZT0ie2xhbmcoJ29wdGlvbnMnKX0iDQogICAgICAgIGNsYXNzPSJ1aS1idXR0b24gdWktd2lkZ2V0IHVpLXN0YXRlLWRlZmF1bHQgdWktY29ybmVyLWFsbCBsaXNlLWVkaXRvci1vcHRpb25zIj4NCiAgICAgIDxzcGFuIGNsYXNzPSJ1aS1pY29uIHVpLWljb24tZ2VhciINCiAgICAgICAgICAgIHN0eWxlPSJwb3NpdGlvbjpyZWxhdGl2ZTt0b3A6NTAlO21hcmdpbi10b3A6LThweCINCiAgICAgID48L3NwYW4+DQogICAgPC9hPg0KICAgIHsvaWZ9DQogIDwvcD4NCjwvZGl2Pg==]]></data>
	</file>
	<file>
	  <filename>/framework/templates/admin_reordercategory.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[e2Z1bmN0aW9uIG5hbWU9dHJlZV9tYW5hZ2VyIGRlcHRoPTAgdHJlZT0wfQogIDx1bCBjbGFzcz0ic29ydGFibGVMaXN0e2lmICRkZXB0aCA9PSAwfSBzb3J0YWJsZXsvaWZ9Ij4KICB7Zm9yZWFjaCBmcm9tPSR0cmVlIGl0ZW09aXRlbX0KICAgIDxsaSBpZD0iY2F0X3skaXRlbS5jYXRlZ29yeV9pZH0iPgoJCTxkaXYgY2xhc3M9ImxhYmVsIj48c3Bhbj4mbmJzcDs8L3NwYW4+eyRpdGVtLmNhdGVnb3J5X25hbWV9PC9kaXY+CgkJe2lmIGlzc2V0KCRpdGVtLmNoaWxkcmVuKX0KCQkJe3RyZWVfbWFuYWdlciBkZXB0aD0kZGVwdGgrMSB0cmVlPSRpdGVtLmNoaWxkcmVufQoJCXsvaWZ9CiAgICA8L2xpPgogIHsvZm9yZWFjaH0KICA8L3VsPgp7L2Z1bmN0aW9ufQoKPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgpmdW5jdGlvbiBwYXJzZVRyZWUodWwpewoKCXZhciB0YWdzID0gW107Cgl1bC5jaGlsZHJlbigibGkiKS5lYWNoKGZ1bmN0aW9uKCl7CgkKCQl2YXIgc3VidHJlZSA9CSQodGhpcykuY2hpbGRyZW4oInVsIik7CgkJaWYoc3VidHJlZS5zaXplKCkgPiAwKQoJCQl0YWdzLnB1c2goWyQodGhpcykuYXR0cigiaWQiKSwgcGFyc2VUcmVlKHN1YnRyZWUpXSk7CgkJZWxzZQoJCQl0YWdzLnB1c2goJCh0aGlzKS5hdHRyKCJpZCIpKTsKCX0pOwoJCglyZXR1cm4gdGFnczsKfQoKalF1ZXJ5KGRvY3VtZW50KS5yZWFkeShmdW5jdGlvbigkKXsKCglqUXVlcnkoJ3VsLnNvcnRhYmxlJykubmVzdGVkU29ydGFibGUoewoJCWRpc2FibGVOZXN0aW5nOiAnbm8tbmVzdCcsCgkJZm9yY2VQbGFjZWhvbGRlclNpemU6IHRydWUsCgkJaGFuZGxlOiAnZGl2JywKCQlpdGVtczogJ2xpJywKCQlvcGFjaXR5OiA2LAoJCXBsYWNlaG9sZGVyOiAncGxhY2Vob2xkZXInLAoJCXRhYlNpemU6IDM1LAoJCXRvbGVyYW5jZTogJ3BvaW50ZXInLAoJCWxpc3RUeXBlOiAndWwnLAoJCXRvbGVyYW5jZUVsZW1lbnQ6ICc+IGRpdicKCX0pOwoKCWpRdWVyeSgiI2xpc2Vfb3JkZXJmb3JtIikuc3VibWl0KGZ1bmN0aW9uKCl7CgoJCXZhciB0cmVlID0gJC50b0pTT04ocGFyc2VUcmVlKCQoJ3VsLnNvcnRhYmxlJykpKTsKCQkkKCcjb3JkZXJkYXRhJykudmFsKHRyZWUpOwoJfSk7Cgp9KTsKPC9zY3JpcHQ+CjwhLS0gc3RhcnQgdGFiIC0tPgo8ZGl2IGlkPSJwYWdlX3RhYnMiPgoJPGRpdiBpZD0icmVvcmRlcl9jYXRlZ29yaWVzIj4KCQl7JG1vZC0+TW9kTGFuZygncmVvcmRlcl9jYXRlZ29yaWVzJyl9Cgk8L2Rpdj4KPC9kaXY+CjwhLS0gZW5kIHRhYiAvLy0tPgo8IS0tIHN0YXJ0IGNvbnRlbnQgLS0+CjxkaXYgaWQ9InBhZ2VfY29udGVudCI+IAoJPGRpdiBpZD0icmVvcmRlcl9jYXRlZ29yaWVzX2MiPiAKCgkJPGRpdiBpZD0ibGlzZV9vcmRlcmZvcm0iPgoJCQl7JGZvcm1zdGFydH0KCgkJCQk8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJ7JGFjdGlvbmlkfW9yZGVyZGF0YSIgdmFsdWU9IiIgaWQ9Im9yZGVyZGF0YSIgLz4KCgkJCQk8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgoJCQkJICA8ZGl2IGNsYXNzPSJwYWdlaW5wdXQiPgoJCQkJCTxkaXYgY2xhc3M9InJlb3JkZXItcGFnZXMiPgoJCQkJCQl7dHJlZV9tYW5hZ2VyIHRyZWU9JHRyZWV9CgkJCQkJPC9kaXY+CgkJCQkgIDwvZGl2PgoJCQkJPGRpdj4KCgkJCQk8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgoJCQkJCTxwIGNsYXNzPSJwYWdldGV4dCI+Jm5ic3A7PC9wPgoJCQkJCTxwIGNsYXNzPSJwYWdlaW5wdXQiPnskc3VibWl0fXskY2FuY2VsfTwvcD4KCQkJCTwvZGl2PgoJCQkJCgkJCXskZm9ybWVuZH0KCQk8L2Rpdj4KCgk8L2Rpdj4KPC9kaXY+CjwhLS0gZW5kIGNvbnRlbnQgLy8tLT4=]]></data>
	</file>
	<file>
	  <filename>/framework/templates/ajax_quick_search.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PGRpdiBjbGFzcz0icGFnZXNob3dyb3dzIj4NCiAge2lmICRwYWdlbnVtYmVyID4gMX0NCg0KICAgIDxhIGhyZWY9ImphdmFzY3JpcHQ6dm9pZCgwKSIgb25jbGljaz0ib25fcGFnaW5hdGlvbl9jbGljaygnZmlyc3QnLCAxKSI+Jmx0OyZsdDs8L2E+DQogICAgPGEgaHJlZj0iamF2YXNjcmlwdDp2b2lkKDApIiBvbmNsaWNrPSJvbl9wYWdpbmF0aW9uX2NsaWNrKCdwcmV2aW91cycsIHskcGFnZW51bWJlciAtIDF9KSI+Jmx0OzwvYT4NCiAgey9pZn0NCiAgeyRwYWdlbnVtYmVyfSZuYnNwO3skb2Z0ZXh0fSZuYnNwO3skcGFnZWNvdW50fQ0KICB7aWYgJHBhZ2VudW1iZXIgPCAkcGFnZWNvdW50fQ0KDQogICAgPGEgaHJlZj0iamF2YXNjcmlwdDp2b2lkKDApIiBvbmNsaWNrPSJvbl9wYWdpbmF0aW9uX2NsaWNrKCdwcmV2aW91cycsIHskcGFnZW51bWJlciArIDF9KSI+Jmd0OzwvYT4NCiAgICA8YSBocmVmPSJqYXZhc2NyaXB0OnZvaWQoMCkiIG9uY2xpY2s9Im9uX3BhZ2luYXRpb25fY2xpY2soJ2xhc3QnLCB7JHBhZ2Vjb3VudH0pIj4mZ3Q7Jmd0OzwvYT4NCiAgey9pZn0NCjwvZGl2Pg0KDQp7aWYgIWVtcHR5KCRpdGVtcyl9DQogIDx0YWJsZSBpZD0ic29ydGFibGVfaXRlbSIgZGF0YS1maWx0ZXI9IiNpdGVtX3NlYXJjaCIgY2VsbHNwYWNpbmc9IjAiIGNsYXNzPSJwYWdldGFibGUgeyR0aGVtZU9iamVjdC0+dGhlbWVOYW1lfSI+DQogICAgPHRoZWFkPg0KICAgICAgPHRyIGNsYXNzPSJ0b3AiPg0KICAgICAgICA8dGggZGF0YS10b2dnbGU9InRydWUiPnskdGl0bGV9PC90aD4NCiAgICAgICAge2lmIGlzc2V0KCRpdGVtcy4wLT5hbGlhcyl9PHRoIGRhdGEtaGlkZT0icGhvbmUsdGFibGV0Ij57JG1vZC0+TW9kTGFuZygnYWxpYXMnKX08L3RoPnsvaWZ9DQoNCiAgICAgICAge2ZvcmVhY2ggZnJvbT0kaXRlbXMuMC0+ZmllbGRkZWZzIGl0ZW09ZmllbGRkZWZ9DQogICAgICAgICAgPHRoIGRhdGEtaGlkZT0icGhvbmUudGFibGV0Ij57JGZpZWxkZGVmLm5hbWV9PC90aD4NCiAgICAgICAgey9mb3JlYWNofQ0KICAgICAgICB7aWYgaXNzZXQoJGl0ZW1zLjAtPmNyZWF0ZV90aW1lKX08dGggZGF0YS1oaWRlPSJwaG9uZSx0YWJsZXQiIGRhdGEtdHlwZT0ibnVtZXJpYyI+eyRtb2QtPk1vZExhbmcoJ2NyZWF0ZV90aW1lJyl9PC90aD57L2lmfQ0KICAgICAgICB7aWYgaXNzZXQoJGl0ZW1zLjAtPm1vZGlmaWVkX3RpbWUpfTx0aCBkYXRhLWhpZGU9InBob25lLHRhYmxldCIgZGF0YS10eXBlPSJudW1lcmljIj57JG1vZC0+TW9kTGFuZygnbW9kaWZpZWRfdGltZScpfTwvdGg+ey9pZn0NCiAgICAgICAge2lmIGlzc2V0KCRpdGVtcy4wLT5zdGFydF90aW1lKX08dGggZGF0YS1oaWRlPSJwaG9uZSx0YWJsZXQiIGRhdGEtdHlwZT0ibnVtZXJpYyI+eyRtb2QtPk1vZExhbmcoJ3N0YXJ0X3RpbWUnKX08L3RoPnsvaWZ9DQogICAgICAgIHtpZiBpc3NldCgkaXRlbXMuMC0+ZW5kX3RpbWUpfTx0aCBkYXRhLWhpZGU9InBob25lLHRhYmxldCIgZGF0YS10eXBlPSJudW1lcmljIj57JG1vZC0+TW9kTGFuZygnZW5kX3RpbWUnKX08L3RoPnsvaWZ9DQogICAgICAgIHtpZiBpc3NldCgkaXRlbXMuMC0+YXBwcm92ZSl9PHRoIGRhdGEtaWdub3JlPSJoaWdobGlnaHQiIGRhdGEtaGlkZT0icGhvbmUsdGFibGV0IiBkYXRhLWNsYXNzPSJoaWRlLWhlYWRpbmciIGRhdGEtc29ydC1pZ25vcmU9InRydWUiIGNsYXNzPSJwYWdlaWNvbiI+PHNwYW4gY2xhc3M9Imxpc2UtaGlkZGVuIj57JG1vZC0+TW9kTGFuZygndG9nZ2xlX3N0YXR1cycpfTwvc3Bhbj4mbmJzcDs8L3RoPnsvaWZ9DQogICAgICAgIDx0aCBkYXRhLWlnbm9yZT0iaGlnaGxpZ2h0IiBkYXRhLWhpZGU9InBob25lLHRhYmxldCIgZGF0YS1zb3J0LWlnbm9yZT0idHJ1ZSIgZGF0YS1jbGFzcz0iaGlkZS1oZWFkaW5nIiBjbGFzcz0icGFnZWljb24iPjxzcGFuIGNsYXNzPSJsaXNlLWhpZGRlbiI+eyRtb2QtPk1vZExhbmcoJ2NvcHknKX08L3NwYW4+Jm5ic3A7PC90aD4NCiAgICAgICAgPHRoIGRhdGEtaWdub3JlPSJoaWdobGlnaHQiIGRhdGEtaGlkZT0icGhvbmUsdGFibGV0IiBkYXRhLXNvcnQtaWdub3JlPSJ0cnVlIiBkYXRhLWNsYXNzPSJoaWRlLWhlYWRpbmciIGNsYXNzPSJwYWdlaWNvbiI+PHNwYW4gY2xhc3M9Imxpc2UtaGlkZGVuIj57JG1vZC0+TW9kTGFuZygnZWRpdCcpfTwvc3Bhbj4mbmJzcDs8L3RoPg0KICAgICAgICB7aWYgaXNzZXQoJGl0ZW1zLjAtPmRlbGV0ZSl9PHRoIGRhdGEtaWdub3JlPSJoaWdobGlnaHQiIGRhdGEtaGlkZT0icGhvbmUsdGFibGV0IiBkYXRhLWNsYXNzPSJoaWRlLWhlYWRpbmciIGRhdGEtc29ydC1pZ25vcmU9InRydWUiIGNsYXNzPSJwYWdlaWNvbiI+PHNwYW4gY2xhc3M9Imxpc2UtaGlkZGVuIj57JG1vZC0+TW9kTGFuZygnZGVsZXRlJyl9PC9zcGFuPiZuYnNwOzwvdGg+ey9pZn0NCiAgICAgICAgPHRoIGRhdGEtaWdub3JlPSJoaWdobGlnaHQiIGRhdGEtaGlkZT0icGhvbmUsdGFibGV0IiBkYXRhLXNvcnQtaWdub3JlPSJ0cnVlIiBkYXRhLWNsYXNzPSJoaWRlLWhlYWRpbmcidGl0bGU9InskbW9kLT5Nb2RMYW5nKCdzZWxlY3RfYWxsJyl9IiBjbGFzcz0icGFnZWljb24gbm8tc29ydCI+PHNwYW4gY2xhc3M9Imxpc2UtaGlkZGVuIj57JG1vZC0+TW9kTGFuZygnc2VsZWN0X2l0ZW0nKX08L3NwYW4+PGlucHV0IGlkPSJjaGVja19hbGxfaXRlbSIgdHlwZT0iY2hlY2tib3giIC8+PC90aD4NCiAgICAgIDwvdHI+DQogICAgPC90aGVhZD4NCiAgICA8dGJvZHkgY2xhc3M9ImNvbnRlbnQiIHdpZHRoPSIxMDAlIj4NCiAgICAgIHtmb3JlYWNoIGZyb209JGl0ZW1zIGl0ZW09ZW50cnl9DQogICAgICAgIHtjeWNsZSB2YWx1ZXM9InJvdzEscm93MiIgYXNzaWduPSdyb3djbGFzcyd9DQogICAgICAgIDx0ciBpZD0iaXRlbV97JGVudHJ5LT5pdGVtX2lkfSIgY2xhc3M9Inskcm93Y2xhc3N9IiBzdHlsZT0iY3Vyc29yOiBtb3ZlOyI+DQogICAgICAgICAgPHRkPnskZW50cnktPnRpdGxlfTwvdGQ+DQogICAgICAgICAge2lmIGlzc2V0KCRpdGVtcy4wLT5hbGlhcyl9PHRkPnskZW50cnktPmFsaWFzfTwvdGQ+ey9pZn0NCiAgICAgICAgICB7Zm9yZWFjaCBmcm9tPSRlbnRyeS0+ZmllbGRkZWZzIGl0ZW09ZmllbGRkZWZ9DQogICAgICAgICAgICB7aWYgJ1NlbGVjdERhdGVUaW1lJyA9PSAkZmllbGRkZWYtPkdldFR5cGUoKX0NCiAgICAgICAgICAgICAgPHRkIGRhdGEtdmFsdWU9InskZmllbGRkZWYtPkdldE9wdGlvblZhbHVlKCd1bml4X2RhdGV0aW1lX3N0YW1wJyl9Ij57JGZpZWxkZGVmLT5SZW5kZXJGb3JBZG1pbkxpc3RpbmcoJGFjdGlvbmlkLCAkcmV0dXJuaWQpfTwvdGQ+DQogICAgICAgICAgICB7ZWxzZX0NCiAgICAgICAgICAgICAgPHRkPnskZmllbGRkZWYtPlJlbmRlckZvckFkbWluTGlzdGluZygkYWN0aW9uaWQsICRyZXR1cm5pZCl9PC90ZD4NCiAgICAgICAgICAgIHsvaWZ9DQogICAgICAgICAgey9mb3JlYWNofQ0KICAgICAgICAgIHtpZiBpc3NldCgkaXRlbXMuMC0+Y3JlYXRlX3RpbWUpfTx0ZCBkYXRhLXZhbHVlPSJ7JGVudHJ5LT5jcmVhdGVfdGltZXxjbXNfZGF0ZV9mb3JtYXR9Ij57JGVudHJ5LT5jcmVhdGVfdGltZX08L3RkPnsvaWZ9DQogICAgICAgICAge2lmIGlzc2V0KCRpdGVtcy4wLT5tb2RpZmllZF90aW1lKX08dGQgZGF0YS12YWx1ZT0ieyRlbnRyeS0+bW9kaWZpZWRfdGltZXxjbXNfZGF0ZV9mb3JtYXR9Ij57JGVudHJ5LT5tb2RpZmllZF90aW1lfTwvdGQ+ey9pZn0NCiAgICAgICAgICB7aWYgaXNzZXQoJGl0ZW1zLjAtPnN0YXJ0X3RpbWUpfTx0ZCBkYXRhLXZhbHVlPSJ7JGVudHJ5LT5zdGFydF90aW1lfGNtc19kYXRlX2Zvcm1hdH0iPnskZW50cnktPnN0YXJ0X3RpbWV9PC90ZD57L2lmfQ0KICAgICAgICAgIHtpZiBpc3NldCgkaXRlbXMuMC0+ZW5kX3RpbWUpfTx0ZCBkYXRhLXZhbHVlPSJ7JGVudHJ5LT5lbmRfdGltZXxjbXNfZGF0ZV9mb3JtYXR9Ij57JGVudHJ5LT5lbmRfdGltZX08L3RkPnsvaWZ9DQogICAgICAgICAge2lmIGlzc2V0KCRlbnRyeS0+YXBwcm92ZSl9PHRkIGNsYXNzPSJpbml0LWFqYXgtdG9nZ2xlIGFwcHJvdmUtaXRlbSI+eyRlbnRyeS0+YXBwcm92ZX08L3RkPnsvaWZ9DQogICAgICAgICAgPHRkPnskZW50cnktPmNvcHlsaW5rfTwvdGQ+DQogICAgICAgICAgPHRkPnskZW50cnktPmVkaXRsaW5rfTwvdGQ+DQogICAgICAgICAge2lmIGlzc2V0KCRlbnRyeS0+ZGVsZXRlKX08dGQgY2xhc3M9ImluaXQtYWpheC1kZWxldGUiPnskZW50cnktPmRlbGV0ZX08L3RkPnsvaWZ9DQogICAgICAgICAgPHRkIGNsYXNzPSJpdGVtLW1hc3MtYWN0aW9uIj57JGVudHJ5LT5zZWxlY3R9PC90ZD4NCiAgICAgICAgPC90cj4NCiAgICAgIHsvZm9yZWFjaH0NCiAgICA8L3Rib2R5Pg0KICA8L3RhYmxlPg0Ke2Vsc2V9DQogIDxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+PGRpdiBjbGFzcz0icGFnZXRleHQiPllvdXIgcXVlcnkgcmV0dXJuZWQgbm8gcmVzdWx0czwvZGl2PjwvZGl2Pg0Key9pZn0NCg0KPGRpdiBjbGFzcz0icGFnZXNob3dyb3dzIj4NCiAge2lmICRwYWdlbnVtYmVyID4gMX0NCg0KICAgIDxhIGhyZWY9ImphdmFzY3JpcHQ6dm9pZCgwKSIgb25jbGljaz0ib25fcGFnaW5hdGlvbl9jbGljaygnZmlyc3QnLCAxKSI+Jmx0OyZsdDs8L2E+DQogICAgPGEgaHJlZj0iamF2YXNjcmlwdDp2b2lkKDApIiBvbmNsaWNrPSJvbl9wYWdpbmF0aW9uX2NsaWNrKCdwcmV2aW91cycsIHskcGFnZW51bWJlciAtIDF9KSI+Jmx0OzwvYT4NCiAgey9pZn0NCiAgeyRwYWdlbnVtYmVyfSZuYnNwO3skb2Z0ZXh0fSZuYnNwO3skcGFnZWNvdW50fQ0KICB7aWYgJHBhZ2VudW1iZXIgPCAkcGFnZWNvdW50fQ0KDQogICAgPGEgaHJlZj0iamF2YXNjcmlwdDp2b2lkKDApIiBvbmNsaWNrPSJvbl9wYWdpbmF0aW9uX2NsaWNrKCdwcmV2aW91cycsIHskcGFnZW51bWJlciArIDF9KSI+Jmd0OzwvYT4NCiAgICA8YSBocmVmPSJqYXZhc2NyaXB0OnZvaWQoMCkiIG9uY2xpY2s9Im9uX3BhZ2luYXRpb25fY2xpY2soJ2xhc3QnLCB7JHBhZ2Vjb3VudH0pIj4mZ3Q7Jmd0OzwvYT4NCiAgey9pZn0NCjwvZGl2Pg0K]]></data>
	</file>
	<file>
	  <filename>/framework/templates/categorytab.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[e2lmIGNvdW50KCRpdGVtcykgPiAwfQogIDx0YWJsZSBpZD0ic29ydGFibGVfY2F0ZWdvcnkiIGNlbGxzcGFjaW5nPSIwIiBjbGFzcz0icGFnZXRhYmxlIj4KICAgIDx0aGVhZD4KICAgICAgPHRyPgogICAgICAgIDx0aD57JG1vZC0+TW9kTGFuZygnY2F0ZWdvcnknKX08L3RoPgogICAgICAgIDx0aD57JG1vZC0+TW9kTGFuZygnYWxpYXMnKX08L3RoPgogICAgICAgIDx0aCBkYXRhLWlnbm9yZT0iaGlnaGxpZ2h0IiBkYXRhLWhpZGU9InBob25lLHRhYmxldCIgZGF0YS1jbGFzcz0iaGlkZS1oZWFkaW5nIiBkYXRhLXNvcnQtaWdub3JlPSJ0cnVlIiBjbGFzcz0icGFnZWljb24iPiZuYnNwOzwvdGg+CiAgICAgICAgPHRoIGRhdGEtaWdub3JlPSJoaWdobGlnaHQiIGRhdGEtaGlkZT0icGhvbmUsdGFibGV0IiBkYXRhLWNsYXNzPSJoaWRlLWhlYWRpbmciIGRhdGEtc29ydC1pZ25vcmU9InRydWUiIGNsYXNzPSJwYWdlaWNvbiI+Jm5ic3A7PC90aD4KICAgICAgICA8dGggZGF0YS1pZ25vcmU9ImhpZ2hsaWdodCIgZGF0YS1oaWRlPSJwaG9uZSx0YWJsZXQiIGRhdGEtY2xhc3M9ImhpZGUtaGVhZGluZyIgZGF0YS1zb3J0LWlnbm9yZT0idHJ1ZSIgY2xhc3M9InBhZ2VpY29uIj4mbmJzcDs8L3RoPgogICAgICAgIDx0aCBkYXRhLWlnbm9yZT0iaGlnaGxpZ2h0IiBkYXRhLWhpZGU9InBob25lLHRhYmxldCIgZGF0YS1jbGFzcz0iaGlkZS1oZWFkaW5nIiBkYXRhLXNvcnQtaWdub3JlPSJ0cnVlIiB0aXRsZT0ieyRtb2QtPk1vZExhbmcoJ3NlbGVjdF9hbGwnKX0iIGNsYXNzPSJwYWdlaWNvbiBuby1zb3J0Ij48aW5wdXQgaWQ9ImNoZWNrX2FsbF9jYXRlZ29yeSIgdHlwZT0iY2hlY2tib3giIC8+PC90aD4KICAgICAgPC90cj4KICAgIDwvdGhlYWQ+CiAgICA8dGJvZHkgY2xhc3M9ImNvbnRlbnQiIHdpZHRoPSIxMDAlIj4KICB7Zm9yZWFjaCBmcm9tPSRpdGVtcyBpdGVtPWVudHJ5fQogICAge2N5Y2xlIHZhbHVlcz0icm93MSxyb3cyIiBhc3NpZ249J3Jvd2NsYXNzJ30KICAgICAgPHRyIGlkPSJjYXRlZ29yeV97JGVudHJ5LT5jYXRlZ29yeV9pZH0iIGNsYXNzPSJ7JHJvd2NsYXNzfSI+CiAgICAgICAgPHRkPntyZXBlYXQgc3RyaW5nPSc+Jm5ic3A7JyB0aW1lcz0kZW50cnktPmRlcHRoIC0gMX17JGVudHJ5LT5uYW1lfTwvdGQ+CiAgICAgICAgPHRkPnskZW50cnktPmFsaWFzfTwvdGQ+CiAgICAgICAgPHRkIGNsYXNzPSJpbml0LWFqYXgtdG9nZ2xlIGFwcHJvdmUtY2F0ZWdvcnkiPnskZW50cnktPmFwcHJvdmV9PC90ZD4KICAgICAgICA8dGQ+eyRlbnRyeS0+ZWRpdGxpbmt9PC90ZD4KICAgICAgICA8dGQgY2xhc3M9ImluaXQtYWpheC1kZWxldGUiPnskZW50cnktPmRlbGV0ZX08L3RkPgogICAgICAgIDx0ZCBjbGFzcz0iY2F0ZWdvcnktbWFzcy1hY3Rpb24iPnskZW50cnktPnNlbGVjdH08L3RkPgogICAgICA8L3RyPgogIHsvZm9yZWFjaH0KICAgIDwvdGJvZHk+CiAgPC90YWJsZT4KICA8ZGl2IGNsYXNzPSJwYWdlb3B0aW9ucyIgc3R5bGU9ImZsb2F0OnJpZ2h0OyI+CiAgICA8c2VsZWN0IGlkPSJsaXNlX2NhdGVnb3J5X21hc3NfYWN0aW9uIj4KICAgICAgPG9wdGlvbiB2YWx1ZT0iIj57JG1vZC0+TW9kTGFuZygnc2VsZWN0X29uZScpfTwvb3B0aW9uPgogICAgICA8b3B0aW9uIHZhbHVlPSJkZWxldGUiPkRlbGV0ZTwvb3B0aW9uPgogICAgICA8b3B0aW9uIHZhbHVlPSJhcHByb3ZlIj5Ub2dnbGUgYWN0aXZlPC9vcHRpb24+CiAgICA8L3NlbGVjdD4KICA8L2Rpdj4Key9pZn0KCjxkaXYgY2xhc3M9InBhZ2VvcHRpb25zIj57JGFkZGxpbmt9e2lmIGlzc2V0KCRyZW9yZGVybGluayl9Jm5ic3A7eyRyZW9yZGVybGlua317L2lmfTwvZGl2Pg==]]></data>
	</file>
	<file>
	  <filename>/framework/templates/editcategory.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PCEtLSBzdGFydCB0YWIgLS0+CjxkaXYgaWQ9InBhZ2VfdGFicyI+Cgk8ZGl2IGlkPSJlZGl0Y2F0ZWdvcnkiPgoJCXskdGl0bGV9Cgk8L2Rpdj4KPC9kaXY+CjwhLS0gZW5kIHRhYiAvLy0tPgo8IS0tIHN0YXJ0IGNvbnRlbnQgLS0+CjxkaXYgaWQ9InBhZ2VfY29udGVudCI+IAoJPGRpdiBpZD0iZWRpdGNhdGVnb3J5X2MiPiAKCXskYmFja2xpbmt9Cgl7JHN0YXJ0Zm9ybX0KCgkJPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KICAgIAkJPHAgY2xhc3M9InBhZ2V0ZXh0Ij4qeyRtb2QtPk1vZExhbmcoJ2NhdGVnb3J5X25hbWUnKX06PC9wPgogICAgCQk8cCBjbGFzcz0icGFnZWlucHV0Ij57JGlucHV0X2NhdGVnb3J5fTwvcD4KCQk8L2Rpdj4KCQk8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgogICAgCQk8cCBjbGFzcz0icGFnZXRleHQiPnskbW9kLT5Nb2RMYW5nKCdhbGlhcycpfTo8L3A+CiAgICAJCTxwIGNsYXNzPSJwYWdlaW5wdXQiPnskaW5wdXRfYWxpYXN9PC9wPgoJCTwvZGl2PgoJCgkJPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KICAgIAkJPHAgY2xhc3M9InBhZ2V0ZXh0Ij57bGFuZygncGFyZW50Jyl9OjwvcD4KICAgIAkJPHAgY2xhc3M9InBhZ2VpbnB1dCI+eyRpbnB1dF9wYXJlbnR9PC9wPgoJCTwvZGl2PgoKCQk8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgogICAgCQk8cCBjbGFzcz0icGFnZXRleHQiPnskbW9kLT5Nb2RMYW5nKCdjYXRlZ29yeV9kZXNjcmlwdGlvbicpfTo8L3A+CiAgICAJCTxwIGNsYXNzPSJwYWdlaW5wdXQiPnskaW5wdXRfY2F0ZWdvcnlfZGVzY3JpcHRpb259PC9wPgoJCTwvZGl2PgoJCQoJCTxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CiAgICAJCTxwIGNsYXNzPSJwYWdldGV4dCI+eyRtb2QtPk1vZExhbmcoJ2FjdGl2ZScpfTo8L3A+CiAgICAJCTxwIGNsYXNzPSJwYWdlaW5wdXQiPnskaW5wdXRfYWN0aXZlfTwvcD4KCQk8L2Rpdj4JCQoKCQk8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgogICAgCQk8cCBjbGFzcz0icGFnZXRleHQiPiZuYnNwOzwvcD4KICAgIAkJPHAgY2xhc3M9InBhZ2VpbnB1dCI+CgkJCQk8aW5wdXQgbmFtZT0ieyRhY3Rpb25pZH1zdWJtaXQiIGlkPSJsaXNlX3N1Ym1pdCIgdmFsdWU9IntsYW5nKCdzdWJtaXQnKX0iIHR5cGU9InN1Ym1pdCIgLz4KCQkJCTxpbnB1dCBuYW1lPSJ7JGFjdGlvbmlkfWNhbmNlbCIgaWQ9Imxpc2VfY2FuY2VsIiB2YWx1ZT0ie2xhbmcoJ2NhbmNlbCcpfSIgdHlwZT0ic3VibWl0IiAvPgoJCQkJPGlucHV0IG5hbWU9InskYWN0aW9uaWR9YXBwbHkiIGlkPSJsaXNlX2FwcGx5IiB2YWx1ZT0ie2xhbmcoJ2FwcGx5Jyl9IiB0eXBlPSJzdWJtaXQiIC8+CgkJCQk8aW5wdXQgbmFtZT0ieyRhY3Rpb25pZH1zYXZlX2NyZWF0ZSIgaWQ9Imxpc2Vfc2F2ZV9jcmVhdGUiIHZhbHVlPSJ7JG1vZC0+TW9kTGFuZygnc2F2ZV9jcmVhdGUnKX0iIHR5cGU9InN1Ym1pdCIgLz4JCQkJCgkJCTwvcD4KCQk8L2Rpdj4KCQoJeyRlbmRmb3JtfQoJPC9kaXY+CjwvZGl2Pgo=]]></data>
	</file>
	<file>
	  <filename>/framework/templates/editfielddef.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PCEtLSBzdGFydCB0YWIgLS0+DQo8ZGl2IGlkPSJwYWdlX3RhYnMiPg0KCTxkaXYgaWQ9ImVkaXRmaWVsZGRlZiI+DQoJCXskdGl0bGV9DQoJPC9kaXY+DQogIHtpZiBpc3NldCgkaW5wdXRfZXh0cmEpfQ0KICAgIDxkaXYgaWQ9ImZpZWxkZGVmZXh0cmEiPg0KCQl7JG1vZC0+TW9kTGFuZygnZXh0cmEnKX0NCgk8L2Rpdj4NCiAgey9pZn0NCjwvZGl2Pg0KPCEtLSBlbmQgdGFiIC8vLS0+DQo8IS0tIHN0YXJ0IGNvbnRlbnQgLS0+DQp7JHN0YXJ0Zm9ybX0NCjxkaXYgaWQ9InBhZ2VfY29udGVudCI+IA0KICB7JGJhY2tsaW5rfQ0KICA8ZGl2IGlkPSJlZGl0ZmllbGRkZWZfYyI+DQogICAgPGZpZWxkc2V0Pg0KICAgICAgPGxlZ2VuZD57JG1vZC0+TW9kTGFuZygnbWFpbl9zZXR0aW5ncycpfTwvbGVnZW5kPg0KCQkgIDxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+DQogICAgCQkgIDxwIGNsYXNzPSJwYWdldGV4dCI+eyRtb2QtPk1vZExhbmcoJ2ZpZWxkZGVmX3R5cGUnKX06PC9wPg0KICAgIAkJICA8cCBjbGFzcz0icGFnZWlucHV0Ij57JGlucHV0dHlwZX08L3A+DQoJCSAgPC9kaXY+DQoJCSAgPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4NCgkJCSAgPHAgY2xhc3M9InBhZ2V0ZXh0Ij4qeyRtb2QtPk1vZExhbmcoJ2ZpZWxkZGVmX25hbWUnKX06PC9wPg0KCQkJICA8cCBjbGFzcz0icGFnZWlucHV0Ij57JGlucHV0bmFtZX08L3A+DQoJCSAgPC9kaXY+DQoJCSAgPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4NCgkJCSAgPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JG1vZC0+TW9kTGFuZygnYWxpYXMnKX06PC9wPg0KCQkJICA8cCBjbGFzcz0icGFnZWlucHV0Ij57JGlucHV0X2FsaWFzfTwvcD4NCgkJICA8L2Rpdj4NCgkJICANCgkJICA8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPg0KCQkJICA8cCBjbGFzcz0icGFnZXRleHQiPnskbW9kLT5Nb2RMYW5nKCdmaWVsZGRlZl9oZWxwJyl9OjwvcD4NCgkJCSAgPHAgY2xhc3M9InBhZ2VpbnB1dCI+eyRpbnB1dGhlbHB9PC9wPg0KCQkgIDwvZGl2Pg0KICAgICAgPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4NCiAgICAgICAgPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JG1vZC0+TW9kTGFuZygnZmllbGRkZWZfcmVxdWlyZWQnKX06PC9wPg0KICAgICAgICA8cCBjbGFzcz0icGFnZWlucHV0Ij57JGlucHV0X3JlcXVpcmVkfTwvcD4NCiAgICAgIDwvZGl2Pg0KICAgIDwvZmllbGRzZXQ+ICANCgkJPGRpdiBjbGFzcz0ibGlzZV90eXBlb3B0aW9ucyI+DQogICAgICB7aWYgaXNzZXQoJGZpZWxkZGVmKSAmJiAkZmllbGRkZWYtPkhhc1RlbXBsYXRlKCl9DQogICAgICAgIDxmaWVsZHNldD4gICAgDQogICAgICAgICAgPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4NCiAgICAgICAgICAgIDxwIGNsYXNzPSJwYWdldGV4dCI+eyRtb2QtPk1vZExhbmcoJ2ZpZWxkZGVmX3RlbXBsYXRlJyl9OjwvcD4NCiAgICAgICAgICAgIDxwIGNsYXNzPSJwYWdlaW5wdXQgdGVtcGxhdGVfaW5wdXQiPnskaW5wdXRfdGVtcGxhdGV9PC9wPg0KICAgICAgICAgIDwvZGl2Pg0KICAgICAgICA8L2ZpZWxkc2V0Pg0KICAgICAgey9pZn0NCg0KICAgICAge2lmIGlzc2V0KCRmaWVsZGRlZil9DQogICAgICAgIHsqaWYgJGZpZWxkZGVmLT5IYXNUZW1wbGF0ZSgpfQ0KICAgICAgICAgIDxmaWVsZHNldD4gICAgDQogICAgICAgICAgICA8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPg0KICAgICAgICAgICAgICA8cCBjbGFzcz0icGFnZXRleHQiPnskbW9kLT5Nb2RMYW5nKCdmaWVsZGRlZl90ZW1wbGF0ZScpfTo8L3A+DQogICAgICAgICAgICAgIDxwIGNsYXNzPSJwYWdlaW5wdXQgdGVtcGxhdGVfaW5wdXQiPnskaW5wdXRfdGVtcGxhdGV9PC9wPg0KICAgICAgICAgICAgPC9kaXY+DQogICAgICAgICAgPC9maWVsZHNldD4NCiAgICAgICAgey9pZip9DQogICAgICAgIHskZmllbGRkZWYtPlJlbmRlckZvckVkaXQoJGFjdGlvbmlkLCAkcmV0dXJuaWQpfQ0KICAgICAgey9pZn0NCgkJPC9kaXY+ICAgICAgIA0KCTwvZGl2Pg0KICB7aWYgaXNzZXQoJGlucHV0X2V4dHJhKX0NCiAgICA8ZGl2IGlkPSJmaWVsZGRlZmV4dHJhX2MiPg0KCQkgIDxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+DQogICAgCSAgPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JG1vZC0+TW9kTGFuZygnZXh0cmEnKX06PC9wPg0KICAgIAkgIDxwIGNsYXNzPSJwYWdlaW5wdXQiPnskaW5wdXRfZXh0cmF9PC9wPg0KCQkgIDwvZGl2Pg0KCSAgPC9kaXY+DQogIHsvaWZ9DQogIDxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+DQoJCTxwIGNsYXNzPSJwYWdldGV4dCI+Jm5ic3A7PC9wPg0KCQk8cCBjbGFzcz0icGFnZWlucHV0Ij4NCgkJCTxpbnB1dCBuYW1lPSJ7JGFjdGlvbmlkfXN1Ym1pdCIgaWQ9Imxpc2Vfc3VibWl0IiB2YWx1ZT0ie2xhbmcoJ3N1Ym1pdCcpfSIgdHlwZT0ic3VibWl0IiAvPg0KCQkJPGlucHV0IG5hbWU9InskYWN0aW9uaWR9Y2FuY2VsIiBpZD0ibGlzZV9jYW5jZWwiIHZhbHVlPSJ7bGFuZygnY2FuY2VsJyl9IiB0eXBlPSJzdWJtaXQiIC8+DQoJCQk8aW5wdXQgbmFtZT0ieyRhY3Rpb25pZH1hcHBseSIgaWQ9Imxpc2VfYXBwbHkiIHZhbHVlPSJ7bGFuZygnYXBwbHknKX0iIHR5cGU9InN1Ym1pdCIgLz4NCgkJCTxpbnB1dCBuYW1lPSJ7JGFjdGlvbmlkfXNhdmVfY3JlYXRlIiBpZD0ibGlzZV9zYXZlX2NyZWF0ZSIgdmFsdWU9InskbW9kLT5Nb2RMYW5nKCdzYXZlX2NyZWF0ZScpfSIgdHlwZT0ic3VibWl0IiAvPgkJCQkNCgkJPC9wPg0KCTwvZGl2PgkJDQo8L2Rpdj4NCnskZW5kZm9ybX0=]]></data>
	</file>
	<file>
	  <filename>/framework/templates/edititem.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[eyRiYWNrbGlua30NCnsqKn0NCnskbmV3X2l0ZW1fZmxhZyA9ICcnfQ0Ke2lmICRpdGVtT2JqZWN0LT5pdGVtX2lkIDwgMX0NCiAgeyRuZXdfaXRlbV9mbGFnID0gJyonfQ0Key9pZn0NCg0Ke2lmICRtb2QtPkdldFByZWZlcmVuY2UoJ3RpdGxlX2F1dG9fZ2VuJywgRkFMU0UpfQ0KICB7JHRpdGxlID0gJHRpdGxlfGRlZmF1bHQ6TElTRVNtYXJ0eTo6R2VuZXJhdGVUaXRsZSgpfQ0Key9pZn0NCnsqKn0NCjxoMz57JHBhZ2VfdGl0bGV9PC9oMz4NCjxoND57JHRpdGxlfGRlZmF1bHQ6IiZsYXF1bzt7JG1vZC0+TW9kTGFuZygndW50aXRsZWQnKX0mcmFxdW87In0geyRuZXdfaXRlbV9mbGFnfTwvaDQ+DQoNCnskc3RhcnRmb3JtfQ0KICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJ7JGFjdGlvbmlkfXByZXZpb3VzX2lkIiB2YWx1ZT0ieyRwcmV2aW91c19pZH0iPg0KICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJ7JGFjdGlvbmlkfW5leHRfaWQiIHZhbHVlPSJ7JG5leHRfaWR9Ij4NCiAgPGlucHV0IHR5cGU9ImhpZGRlbiIgaWQ9InskYWN0aW9uaWR9c3VibWl0X29uX3BuIiBuYW1lPSJ7JGFjdGlvbmlkfXN1Ym1pdF9vbl9wbiIgdmFsdWU9IiI+DQogIDxpbnB1dCB0eXBlPSJoaWRkZW4iIGlkPSJ7JGFjdGlvbmlkfWdvIiBuYW1lPSJ7JGFjdGlvbmlkfWdvIiB2YWx1ZT0iIj4NCiAgPGlucHV0IHR5cGU9ImhpZGRlbiIgaWQ9InskYWN0aW9uaWR9bW9kaWZpZWQiIG5hbWU9InskYWN0aW9uaWR9bW9kaWZpZWQiIHZhbHVlPSIiPg0KDQogIHtpbmNsdWRlIGZpbGU9Imxpc2V0ZW1wbGF0ZTppbnN0YW5jZTt7JG1vZC0+R2V0TmFtZSgpfTthZG1pbl9lZGl0X2l0ZW1fYnV0dG9ucy50cGwiIHAgPSAndG9wJ30NCg0KPCEtLSBzdGFydCB0YWIgLS0+DQo8ZGl2IGlkPSJwYWdlX3RhYnMiPg0KCTxkaXYgaWQ9ImVkaXRpdGVtIj4NCiAgICB7JG1vZC0+R2V0UHJlZmVyZW5jZSgnaXRlbV9zaW5ndWxhcicpfQ0KCTwvZGl2Pg0KICAgIHtpZiBpc3NldCgkaXRlbU9iamVjdHxkZWZhdWx0OltdKX0NCiAgICAgIHtmb3JlYWNoIGZyb209JGl0ZW1PYmplY3QtPmZpZWxkZGVmcyBpdGVtPSdmaWVsZGRlZid9DQogICAgICAgIHtpZiAkZmllbGRkZWYtPnR5cGUgPT09ICdUYWJzJyB8fCAkZmllbGRkZWYtPnR5cGUgPT09ICdQcmV2aWV3J30NCiAgICAgICAgICB7JGZpZWxkZGVmLT5kaXNwbGF5VGFiSGVhZGVyKCl9DQogICAgICAgIHsvaWZ9DQogICAgICB7L2ZvcmVhY2h9DQogICAgey9pZn0NCjwvZGl2Pg0KPCEtLSBlbmQgdGFiIC8vLS0+DQoNCjwhLS0gc3RhcnQgY29udGVudCAtLT4NCjxkaXYgaWQ9InBhZ2VfY29udGVudCI+IA0KICA8ZGl2IGlkPSJlZGl0aXRlbV9yZXN1bHQiPjwvZGl2Pg0KICA8ZGl2IGlkPSJlZGl0aXRlbV9jIj4NCg0KICAgIHtpZiBpc3NldCgkaW5wdXRfYWN0aXZlKX0NCiAgICAgIDxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+DQogICAgICAgIDxwIGNsYXNzPSJwYWdldGV4dCI+eyRtb2QtPk1vZExhbmcoJ2FjdGl2ZScpfTo8L3A+DQogICAgICAgIDxwIGNsYXNzPSJwYWdlaW5wdXQiPnskaW5wdXRfYWN0aXZlfTwvcD4NCiAgICAgIDwvZGl2Pg0KICAgIHsvaWZ9DQoNCiAgICB7aWYgJG1vZC0+R2V0UHJlZmVyZW5jZSgnZGlzcGxheV9jcmVhdGVfZGF0ZScsIDApID09IDF9DQogICAgICA8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPg0KICAgICAgICA8cCBjbGFzcz0ncGFnZXRleHQnPnskbW9kLT5Nb2RMYW5nKCdjcmVhdGVfdGltZScsICcnKX06IDxlbSBzdHlsZT0nZm9udC13ZWlnaHQ6IG5vcm1hbDsnPnskaXRlbU9iamVjdC0+Y3JlYXRlX3RpbWV9PC9lbT48L3A+DQogICAgICA8L2Rpdj4NCiAgICB7L2lmfQ0KDQogICAgeyoqKiB0aXRsZSBsb2dpYyBzdGFydCAqKip9DQogICAge2lmICRtb2QtPkdldFByZWZlcmVuY2UoJ3RpdGxlX2Rpc3BsYXlfbW9kZScsIDApID09IDB9DQogICAgICA8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPg0KICAgICAgICA8cCBjbGFzcz0icGFnZXRleHQiPnskbW9kLT5HZXRQcmVmZXJlbmNlKCdpdGVtX3RpdGxlJywgJycpfSo6PC9wPg0KICAgICAgICA8cCBjbGFzcz0icGFnZWlucHV0Ij4NCiAgICAgICAgICA8aW5wdXQgY2xhc3M9ImNtc190ZXh0ZmllbGQiIG5hbWU9InskYWN0aW9uaWR9dGl0bGUiIGlkPSJ7JGFjdGlvbmlkfXRpdGxlIiB2YWx1ZT0ieyR0aXRsZX0iIHNpemU9IjUwIiBtYXhsZW5ndGg9IjI1NSIgdHlwZT0idGV4dCI+DQogICAgICAgIDwvcD4NCiAgICAgIDwvZGl2Pg0KICAgIHtlbHNlaWYgJG1vZC0+R2V0UHJlZmVyZW5jZSgndGl0bGVfZGlzcGxheV9tb2RlJywgMCkgPT0gMX0NCiAgICAgICAgPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4NCiAgICAgICAgICA8cCBjbGFzcz0icGFnZXRleHQiPnskbW9kLT5HZXRQcmVmZXJlbmNlKCdpdGVtX3RpdGxlJywgJycpfSo6PC9wPg0KICAgICAgICA8cCBjbGFzcz0icGFnZWlucHV0Ij4NCiAgICAgICAgICA8aW5wdXQgY2xhc3M9ImNtc190ZXh0ZmllbGQiIG5hbWU9InskYWN0aW9uaWR9dGl0bGUiIGlkPSJ7JGFjdGlvbmlkfXRpdGxlIiB2YWx1ZT0ieyR0aXRsZX0iIHNpemU9IjUwIiBtYXhsZW5ndGg9IjI1NSIgdHlwZT0idGV4dCIgZGlzYWJsZWQgcmVhZG9ubHk+DQogICAgICAgIDwvcD4NCiAgICAgICAgPC9kaXY+DQogICAge2Vsc2VpZiAkbW9kLT5HZXRQcmVmZXJlbmNlKCd0aXRsZV9kaXNwbGF5X21vZGUnLCAwKSA9PSAyfQ0KICAgICAgPGlucHV0ICBuYW1lPSJ7JGFjdGlvbmlkfXRpdGxlIiBpZD0ieyRhY3Rpb25pZH10aXRsZSIgdmFsdWU9InskdGl0bGV9IiB0eXBlPSJoaWRkZW4iPg0KICAgIHsvaWZ9DQoNCiAgICB7KioqIHRpdGxlIGxvZ2ljIGVuZCAqKip9DQoNCiAgICB7KioqIGFsaWFzIGxvZ2ljICoqKn0NCg0KICAgIHtpZiAkaGlkZV9hbGlhc30NCiAgICAgIHskaW5wdXRfYWxpYXN9DQogICAge2Vsc2V9DQogICAgICA8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPg0KICAgICAgICA8cCBjbGFzcz0icGFnZXRleHQiPnskbW9kLT5Nb2RMYW5nKCdhbGlhcycpfTo8L3A+eyokYWxpYXN8ZGVmYXVsdDonJyp9DQogICAgICAgIDxwIGNsYXNzPSJwYWdlaW5wdXQiPnskaW5wdXRfYWxpYXN9PC9wPg0KICAgICAgPC9kaXY+DQogICAgey9pZn0NCg0KICAgIHsqKiogYWxpYXMgbG9naWMgZW5kICoqKn0NCg0KICAgIHsqKiogc2x1ZyBsb2dpYyAqKip9DQogICAge2lmICRoaWRlX3NsdWd9DQogICAgICB7KiRpbnB1dF91cmwqfQ0KICAgICAgPGlucHV0DQogICAgICAgIHR5cGU9ImhpZGRlbiINCiAgICAgICAgbmFtZT0ieyRhY3Rpb25pZH11cmwiDQogICAgICAgIGlkPSJ7JGFjdGlvbmlkfXVybCINCiAgICAgICAgdmFsdWU9InskdXJsfSI+DQogICAge2Vsc2V9DQogICAgICA8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPg0KICAgICAgICA8cCBjbGFzcz0icGFnZXRleHQiPnskbW9kLT5Nb2RMYW5nKCd1cmwnKX06PC9wPnsqJHVybHxkZWZhdWx0OicnKn0NCiAgICAgICAgPHAgY2xhc3M9InBhZ2VpbnB1dCI+DQogICAgICAgICAgeyokaW5wdXRfdXJsKn0NCiAgICAgICAgICA8aW5wdXQNCiAgICAgICAgICAgIHR5cGU9InRleHQiDQogICAgICAgICAgICBjbGFzcz0iY21zX3RleHRmaWVsZCINCiAgICAgICAgICAgIG5hbWU9InskYWN0aW9uaWR9dXJsIg0KICAgICAgICAgICAgaWQ9InskYWN0aW9uaWR9dXJsIg0KICAgICAgICAgICAgdmFsdWU9InskdXJsfSIgc2l6ZT0iNTAiIG1heGxlbmd0aD0iMjU1Ig0KICAgICAgICAgICAgc3R5bGU9ImN1cnNvcjogYXV0bzsiPg0KICAgICAgICA8L3A+DQogICAgICA8L2Rpdj4NCiAgICB7L2lmfQ0KDQogICAgeyoqKiBzbHVnIGxvZ2ljIGVuZCAqKip9DQoNCiAgICB7KioqIHRpbWVfY29udHJvbCBsb2dpYyAqKip9DQoNCiAgICB7aWYgISRoaWRlX3RpbWVfY29udHJvbH0NCiAgICAgIDxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+DQogICAgICAgIDxwIGNsYXNzPSJwYWdldGV4dCI+eyRtb2QtPk1vZExhbmcoJ3RpbWVfY29udHJvbCcpfTo8L3A+DQogICAgICAgIDxwIGNsYXNzPSJwYWdlaW5wdXQiPnskaW5wdXRfdGltZV9jb250cm9sfTwvcD4NCiAgICAgIDwvZGl2Pg0KDQogICAgICA8ZGl2IGlkPSJleHBpcnlpbmZvIntpZiAkdXNlX3RpbWVfY29udHJvbCAhPSB0cnVlfSBzdHlsZT0iZGlzcGxheTpub25lOyJ7L2lmfT4NCiAgICAgICAgPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4NCiAgICAgICAgICA8cCBjbGFzcz0icGFnZXRleHQiPnskbW9kLT5Nb2RMYW5nKCdzdGFydF90aW1lJyl9OjwvcD4NCiAgICAgICAgICA8cCBjbGFzcz0icGFnZWlucHV0Ij57JGlucHV0X3N0YXJ0X3RpbWV9PC9wPg0KICAgICAgICA8L2Rpdj4NCg0KICAgICAgICA8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPg0KICAgICAgICAgIDxwIGNsYXNzPSJwYWdldGV4dCI+eyRtb2QtPk1vZExhbmcoJ2VuZF90aW1lJyl9OjwvcD4NCiAgICAgICAgICA8cCBjbGFzcz0icGFnZWlucHV0Ij57JGlucHV0X2VuZF90aW1lfTwvcD4NCiAgICAgICAgPC9kaXY+DQogICAgICA8L2Rpdj4NCiAgICB7L2lmfQ0KDQogICAgeyoqKiB0aW1lX2NvbnRyb2wgbG9naWMgZW5kICoqKn0NCg0KICAgIHsqKiogZGVmaW5lZCBjdXN0b20gZmllbGRzIGxvZ2ljICoqKn0NCg0KICAgIHtpZiBpc3NldCgkaXRlbU9iamVjdHxkZWZhdWx0OltdKX0NCiAgICAgIHtmb3JlYWNoIGZyb209JGl0ZW1PYmplY3QtPmZpZWxkZGVmcyBpdGVtPSdmaWVsZGRlZid9DQogICAgICAgIHtpZiAkZmllbGRkZWYtPnR5cGUgPT09ICdUYWJzJyB8fCAkZmllbGRkZWYtPnR5cGUgPT09ICdQcmV2aWV3J30NCiAgICAgICAgICAgIHskZmllbGRkZWYtPlJlbmRlcklucHV0KCRhY3Rpb25pZCwgJHJldHVybmlkKX0NCiAgICAgICAge2Vsc2V9DQogICAgICAgICAgPGRpdiBpZD0iZmllbGRkZWYteyRmaWVsZGRlZkBpbmRleH0iPg0KICAgICAgICAgICAgeyRmaWVsZGRlZi0+UmVuZGVySW5wdXQoJGFjdGlvbmlkLCAkcmV0dXJuaWQpfQ0KICAgICAgICAgIDwvZGl2Pg0KICAgICAgICB7L2lmfQ0KDQogICAgICB7L2ZvcmVhY2h9DQogICAgey9pZn0NCg0KICAgIHsqKiogZGVmaW5lZCBjdXN0b20gZmllbGRzIGxvZ2ljIGVuZCAqKip9DQogDQogIDwvZGl2Pg0KDQo8L2Rpdj4NCiAge2luY2x1ZGUgZmlsZT0ibGlzZXRlbXBsYXRlOmluc3RhbmNlO3skbW9kLT5HZXROYW1lKCl9O2FkbWluX2VkaXRfaXRlbV9idXR0b25zLnRwbCIgcCA9ICdib3R0b20nfQ0KeyRlbmRmb3JtfQ0KPCEtLSBlbmQgY29udGVudCAvLy0tPg0KPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPg0KICB2YXIgaXRlbV9pZCA9IHskaXRlbU9iamVjdC0+aXRlbV9pZHxkZWZhdWx0Oi0xfTsNCiAgdmFyIHByZXZpb3VzX2lkID0gInskcHJldmlvdXNfaWR9IjsNCiAgdmFyIG5leHRfaWQgPSAieyRuZXh0X2lkfSI7DQogIHZhciBhamF4X3VybCA9ICd7Y21zX2FjdGlvbl91cmwgYWN0aW9uPWFqYXggZm9yanM9MX0nOw0KICB2YXIgYWN0aW9uX2lkID0gJ3skYWN0aW9uaWR9JzsNCiAgdmFyIG1hbnVhbGx5X2NoYW5nZWQxID0gaXRlbV9pZDsNCiAgdmFyIG1hbnVhbGx5X2NoYW5nZWQyID0gaXRlbV9pZDsNCiAgdmFyIGZpbmlzaGVkX3NldHVwID0gMDsNCiAgdmFyIGFqYXhfeGhyMSA9IDA7DQogIHZhciBhamF4X3hocjIgPSAwOw0KICB2YXIgYWpheF90aW1lb3V0MTsNCiAgdmFyIGFqYXhfdGltZW91dDI7DQogIHZhciBmaXJlX29mZiA9IHskbW9kLT5HZXRQcmVmZXJlbmNlKCd0aXRsZV9hdXRvX2dlbicsIDApfGRlZmF1bHQ6JzAnfTsNCiAgdmFyIHN1Ym1pdF9vbl9wbiA9IHsoaW50KSRtb2QtPkdldFByZWZlcmVuY2UoJ3N1Ym1pdF9vbl9wbicsIDApfTsNCiAgdmFyIHN1Ym1pdF9vbl9wbl9jaGFuZ2VkID0gZmFsc2U7DQogIHZhciBpc19tb2RpZmllZCA9IGZhbHNlOw0KICB2YXIgaW5wdXRfZ28gPSAkKCIjeyRhY3Rpb25pZH1nbyIpOw0KICB2YXIgaW5wdXRfbW9kaWZpZWQgPSAkKCIjeyRhY3Rpb25pZH1tb2RpZmllZCIpOw0KDQogIGZ1bmN0aW9uIGFqYXhfZ2V0dXJsKCkNCiAgew0KICAgIHZhciB2dGl0bGUgPSAkKCcjeyRhY3Rpb25pZH10aXRsZScpLnZhbCgpOw0KICAgIHZhciBkYXRhID0gew0KICAgICAgeyRhY3Rpb25pZH1mbmM6ICdnZW5fc2x1ZycsDQogICAgICB7JGFjdGlvbmlkfXBhcmFtcyA6IHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aXRsZTogdnRpdGxlLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlpZDogaXRlbV9pZA0KICAgICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgfTsNCg0KICAgIGFqYXhfeGhyMSA9ICQuYWpheCgNCiAgICB7DQogICAgICB1cmw6IGFqYXhfdXJsLA0KICAgICAgbWV0aG9kOiAnUE9TVCcsDQogICAgICBkYXRhOiAgZGF0YSwNCg0KICAgICAgc3VjY2VzczogZnVuY3Rpb24ocmVzdWx0KQ0KICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAkKCcjeyRhY3Rpb25pZH11cmwnKS52YWwocmVzdWx0LmNvbnRlbnQpOw0KICAgICAgICAgICAgICAgICBhamF4X3hocjEgPSAwOw0KICAgICAgICAgICAgICAgIH0NCiAgICB9KTsNCiAgfQ0KDQogIGZ1bmN0aW9uIGFqYXhfZ2V0X2FsaWFzKCkNCiAgew0KICAgIHZhciB2dGl0bGUgPSAkKCcjeyRhY3Rpb25pZH10aXRsZScpLnZhbCgpOw0KICAgIHZhciBkYXRhID0gew0KICAgICAgeyRhY3Rpb25pZH1mbmM6ICdnZW5fYWxpYXMnLA0KICAgICAgeyRhY3Rpb25pZH1wYXJhbXMgOiB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgdGl0bGU6IHZ0aXRsZQ0KICAgICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgfTsNCg0KICAgIGFqYXhfeGhyMiA9ICQuYWpheCgNCiAgICB7DQogICAgICB1cmw6IGFqYXhfdXJsLA0KICAgICAgbWV0aG9kOiAnUE9TVCcsDQogICAgICBkYXRhOiAgZGF0YSwNCg0KICAgICAgc3VjY2VzczogZnVuY3Rpb24ocmVzdWx0KQ0KICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAkKCcjeyRhY3Rpb25pZH1hbGlhcycpLnZhbChyZXN1bHQuY29udGVudCk7DQogICAgICAgICAgICAgICAgIGFqYXhfeGhyMiA9IDA7DQogICAgICAgICAgICAgICB9DQogICAgfSk7DQogIH0NCg0KICBmdW5jdGlvbiBvbl9jaGFuZ2UoKQ0KICB7DQogICAgaWYoIG1hbnVhbGx5X2NoYW5nZWQxIDwgMSAmJiBmaW5pc2hlZF9zZXR1cCA9PSAxKQ0KICAgIHsNCiAgICAgIC8vIGFqYXggZnVuY3Rpb24gdG8gZ2V0IGEgdW5pcXVlIHVybCBnaXZlbiBhIHRpdGxlLg0KICAgICAgaWYoIGFqYXhfdGltZW91dDEgIT0gdW5kZWZpbmVkICkgY2xlYXJUaW1lb3V0KGFqYXhfdGltZW91dDEpOw0KICAgICAgaWYoIGFqYXhfeGhyMSA9IDAgKSB4aHIuYWJvcnQoKTsNCiAgICAgIGFqYXhfdGltZW91dDEgPSBzZXRUaW1lb3V0KGFqYXhfZ2V0dXJsLDUwMCk7DQogICAgfQ0KDQogICAgaWYoIG1hbnVhbGx5X2NoYW5nZWQyIDwgMSAmJiBmaW5pc2hlZF9zZXR1cCA9PSAxKQ0KICAgIHsNCiAgICAgIC8vIGFqYXggZnVuY3Rpb24gdG8gZ2V0IGEgdW5pcXVlIGFsaWFzIGdpdmVuIGEgdGl0bGUuDQogICAgICBpZiggYWpheF90aW1lb3V0MiAhPSB1bmRlZmluZWQgKSBjbGVhclRpbWVvdXQoYWpheF90aW1lb3V0Mik7DQogICAgICBpZiggYWpheF94aHIyID0gMCApIHhoci5hYm9ydCgpOw0KICAgICAgYWpheF90aW1lb3V0MiA9IHNldFRpbWVvdXQoYWpheF9nZXRfYWxpYXMsNTAwKTsNCiAgICB9DQogIH0NCg0KICBmdW5jdGlvbiBzdWJtaXRfb25fcG5fc2V0KGUpDQogIHsNCiAgICBpZiggJChlKS5pcygnOmNoZWNrZWQnKSApDQogICAgew0KICAgICBzdWJtaXRfb25fcG4gPSB0cnVlOw0KICAgIH0NCiAgICBlbHNlDQogICAgew0KICAgICBzdWJtaXRfb25fcG4gPSBmYWxzZTsNCiAgICB9DQoNCiAgICAkKCIjeyRhY3Rpb25pZH1zdWJtaXRfb25fcG4iKQ0KICAgICAudmFsKCAoc3VibWl0X29uX3BuID8gMSA6IDApICk7DQogICAgc3VibWl0X29uX3BuX2NoYW5nZWQgPSB0cnVlOw0KICB9DQoNCiAgZnVuY3Rpb24gcHJvY2Vzc19wbihkaXJlY3Rpb24pDQogIHsNCiAgICBpZiggZGlyZWN0aW9uID09PSAncHJldmlvdXMnKQ0KICAgIHsNCiAgICAgIGlucHV0X2dvLnZhbChwcmV2aW91c19pZCk7DQogICAgfQ0KDQogICAgaWYoIGRpcmVjdGlvbiA9PT0gJ25leHQnKQ0KICAgIHsNCiAgICAgIGlucHV0X2dvLnZhbChuZXh0X2lkKTsNCiAgICB9DQoNCiAgICBpZihzdWJtaXRfb25fcG4pDQogICAgew0KICAgICAgJCgnLmNtc19mb3JtJykuc3VibWl0KCk7DQogICAgICByZXR1cm4gZmFsc2U7DQogICAgfQ0KICAgIGVsc2UNCiAgICB7DQoNCiAgICAgIGlmKHN1Ym1pdF9vbl9wbl9jaGFuZ2VkKQ0KICAgICAgew0KICAgICAgICAkKCcuY21zX2Zvcm0nKS5zdWJtaXQoKTsNCiAgICAgICAgcmV0dXJuIGZhbHNlOw0KICAgICAgfQ0KICAgICAgZWxzZQ0KICAgICAgew0KICAgICAgICBpZihpc19tb2RpZmllZCkNCiAgICAgICAgew0KICAgICAgICAgICQoJyNjb25maXJtLWRpYWxvZycpLmRpYWxvZygnb3BlbicpOw0KICAgICAgICAgIHJldHVybiBmYWxzZTsNCiAgICAgICAgfQ0KICAgICAgfQ0KICAgIH0NCiAgfQ0KDQogIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovDQoNCiAgalF1ZXJ5KGRvY3VtZW50KQ0KICAgIC5yZWFkeShmdW5jdGlvbigpDQogICAgew0KICAgICAgJCgiLmxpc2UtcHJldmlvdXMtbmV4dCwgLmxpc2UtZWRpdG9yLW9wdGlvbnMiKQ0KICAgICAgLmhvdmVyKCBmdW5jdGlvbigpDQogICAgICB7DQogICAgICAgICQodGhpcykuYWRkQ2xhc3MoJ3VpLXN0YXRlLWhvdmVyJyk7DQogICAgICB9LA0KICAgICAgZnVuY3Rpb24oKQ0KICAgICAgew0KICAgICAgICAkKHRoaXMpLnJlbW92ZUNsYXNzKCd1aS1zdGF0ZS1ob3ZlcicpOw0KICAgICAgfQ0KICAgICAgKTsNCg0KICAgICAgJCgiI3N1Ym1pdF9vbl9wbl9jYiIpDQogICAgICAuYXR0cignY2hlY2tlZCcsIChzdWJtaXRfb25fcG4gPyB0cnVlIDogZmFsc2UpKTsNCg0KICAgICAgJCgiI3skYWN0aW9uaWR9c3VibWl0X29uX3BuIikNCiAgICAgIC52YWwoc3VibWl0X29uX3BuKTsNCg0KICAgICAgaXNfbW9kaWZpZWQgPSAoaXRlbV9pZCA9PT0gJy0xJyk7DQoNCiAgICAgICQoIltuYW1lKj0nIiArIGFjdGlvbl9pZCArICInIikNCiAgICAgIC5vbigiY2hhbmdlIiwgZnVuY3Rpb24oKQ0KICAgICAgew0KICAgICAgICBpc19tb2RpZmllZCA9IHRydWU7DQogICAgICAgICQoaW5wdXRfbW9kaWZpZWQpLnZhbCgiMSIpOw0KICAgICAgfSk7DQoNCiAgICAgICQoJ3skYWN0aW9uaWR9dXJsJykNCiAgICAgIC5rZXl1cChmdW5jdGlvbigpDQogICAgICB7DQogICAgICAgIHZhciB2YWwgPSAkKHRoaXMpLnZhbCgpOw0KICAgICAgICBtYW51YWxseV9jaGFuZ2VkMSA9IDANCiAgICAgICAgaWYoIHZhbCAhPSAnJyApIG1hbnVhbGx5X2NoYW5nZWQxID0gMTsNCiAgICAgIH0pOw0KDQogICAgICAkKCd7JGFjdGlvbmlkfWFsaWFzJykNCiAgICAgIC5rZXl1cChmdW5jdGlvbigpDQogICAgICB7DQogICAgICAgIHZhciB2YWwgPSAkKHRoaXMpLnZhbCgpOw0KICAgICAgICBtYW51YWxseV9jaGFuZ2VkMSA9IDANCiAgICAgICAgaWYoIHZhbCAhPSAnJyApIG1hbnVhbGx5X2NoYW5nZWQyID0gMTsNCiAgICAgIH0pOw0KDQogICAgICAkKCdmb3JtJykNCiAgICAgICAgLmFqYXhTdGFydChmdW5jdGlvbigpDQogICAgICAgIHsNCiAgICAgICAgICAkKCcqJykuY3NzKCdjdXJzb3InLCdwcm9ncmVzcycpOw0KICAgICAgICB9KTsNCg0KICAgICAgJCgnZm9ybScpDQogICAgICAuYWpheFN0b3AoZnVuY3Rpb24oKQ0KICAgICAgew0KICAgICAgICAkKCcqJykuY3NzKCdjdXJzb3InLCdhdXRvJyk7DQogICAgICB9KTsNCg0KICAgICAgJCgnI3skYWN0aW9uaWR9dGl0bGUnKQ0KICAgICAgLmtleXVwKGZ1bmN0aW9uKCkNCiAgICAgIHsNCiAgICAgICAgb25fY2hhbmdlKCk7DQogICAgICB9KTsNCg0KICAgICAgaWYoZmlyZV9vZmYgJiYgaXRlbV9pZCA8IDEpDQogICAgICB7DQogICAgICAgIGFqYXhfZ2V0X2FsaWFzKCk7DQogICAgICAgIGFqYXhfZ2V0dXJsKCk7DQogICAgICB9DQoNCiAgICAgICAkKCcuZWRpdC1wcmV2aW91cycpDQogICAgICAgLm9uKCJjbGljayIsIGZ1bmN0aW9uKCkNCiAgICAgICB7DQogICAgICAgICBsaW5rID0gdGhpczsNCiAgICAgICAgIHJldHVybiBwcm9jZXNzX3BuKCdwcmV2aW91cycpDQogICAgICAgfSk7DQoNCiAgICAgICAkKCcuZWRpdC1uZXh0JykNCiAgICAgICAub24oImNsaWNrIiwgZnVuY3Rpb24oKQ0KICAgICAgIHsNCiAgICAgICAgIGxpbmsgPSB0aGlzOw0KICAgICAgICAgcmV0dXJuIHByb2Nlc3NfcG4oJ25leHQnKQ0KICAgICAgIH0pOw0KDQogICAgICAgIGZpbmlzaGVkX3NldHVwID0gMTsNCg0KICAgICAgICBqUXVlcnkoJ1tuYW1lPW0xX2FwcGx5XScpDQogICAgICAgICAgLm9uKCdjbGljaycsIGZ1bmN0aW9uKCkNCiAgICAgICAgICB7DQogICAgICAgICAgICBpZiAodHlwZW9mIHRpbnlNQ0UgIT0gJ3VuZGVmaW5lZCcpDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgIHRpbnlNQ0UudHJpZ2dlclNhdmUoKTsNCiAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgdmFyIGRhdGEgPSBqUXVlcnkoJ2Zvcm0nKS5maW5kKCdpbnB1dDpub3QoW3R5cGU9c3VibWl0XSksIHNlbGVjdCwgdGV4dGFyZWEnKS5zZXJpYWxpemVBcnJheSgpOw0KDQogICAgICAgICAgICBkYXRhLnB1c2goew0KICAgICAgICAgICAgICAgICduYW1lJzogJ20xX2FqYXgnLA0KICAgICAgICAgICAgICAgICd2YWx1ZSc6IDENCiAgICAgICAgICAgIH0pOw0KICAgICAgICAgICAgZGF0YS5wdXNoKHsNCiAgICAgICAgICAgICAgICAnbmFtZSc6ICdtMV9hcHBseScsDQogICAgICAgICAgICAgICAgJ3ZhbHVlJzogMQ0KICAgICAgICAgICAgfSk7DQogICAgICAgICAgICBkYXRhLnB1c2goew0KICAgICAgICAgICAgICAgICduYW1lJzogJ3Nob3d0ZW1wbGF0ZScsDQogICAgICAgICAgICAgICAgJ3ZhbHVlJzogJ2ZhbHNlJw0KICAgICAgICAgICAgfSk7DQoNCiAgICAgICAgICAgIHZhciB1cmwgPSBqUXVlcnkoJ2Zvcm0nKS5hdHRyKCdhY3Rpb24nKTsNCg0KICAgICAgICBqUXVlcnkNCiAgICAgICAgICAucG9zdCh1cmwsIGRhdGEsIGZ1bmN0aW9uKHJlc3VsdGRhdGEsIHRleHQpDQogICAgICAgICAgew0KICAgICAgICAgICAgdmFyIHJlc3AgPSBqUXVlcnkocmVzdWx0ZGF0YSkuZmluZCgnUmVzcG9uc2UnKS50ZXh0KCk7DQogICAgICAgICAgICB2YXIgZGV0YWlscyA9IGpRdWVyeShyZXN1bHRkYXRhKS5maW5kKCdEZXRhaWxzJykudGV4dCgpOw0KICAgICAgICAgICAgdmFyIGh0bWxTaG93ID0gJyc7DQoNCiAgICAgICAgICAgIGlmIChyZXNwID09PSAnU3VjY2VzcycgJiYgZGV0YWlscyAhPT0gJycpDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgIGh0bWxTaG93ID0gJzxkaXYgY2xhc3M9InBhZ2VtY29udGFpbmVyIj48cCBjbGFzcz0icGFnZW1lc3NhZ2UiPicgKyBkZXRhaWxzICsgJzxcL3A+PFwvZGl2Pic7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBlbHNlDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgIGh0bWxTaG93ID0gJzxkaXYgY2xhc3M9InBhZ2VlcnJvcmNvbnRhaW5lciI+PHVsIGNsYXNzPSJwYWdlZXJyb3IiPic7DQogICAgICAgICAgICAgIGh0bWxTaG93ICs9IGRldGFpbHM7DQogICAgICAgICAgICAgIGh0bWxTaG93ICs9ICc8XC91bD48XC9kaXY+JzsNCiAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgalF1ZXJ5KCcjZWRpdGl0ZW1fcmVzdWx0JykuaHRtbChodG1sU2hvdyk7DQoNCiAgICAgICAgICAgIHdpbmRvdw0KICAgICAgICAgICAgICAuc2V0VGltZW91dChmdW5jdGlvbigpDQogICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAkKCcucGFnZW1jb250YWluZXInKS5oaWRlKCk7DQogICAgICAgICAgICAgIH0sIDkwMDApDQogICAgICAgICAgfSwgJ3htbCcpOw0KDQogICAgICAgIHJldHVybiBmYWxzZTsNCiAgICAgIH0pOw0KDQoNCiAgICAgICAkKCcjY29uZmlybS1kaWFsb2cnKQ0KICAgICAgIC5kaWFsb2coDQogICAgICAgew0KICAgICAgICAgYXV0b09wZW46IGZhbHNlLA0KICAgICAgICAgd2lkdGg6IDQwMCwNCiAgICAgICAgIHJlc2l6YWJsZTogZmFsc2UsDQogICAgICAgICBtb2RhbDogdHJ1ZSwNCiAgICAgICAgIGJ1dHRvbnM6IHsNCiAgICAgICAgICAgIkNvbnRpbnVlIjogZnVuY3Rpb24oKSB7DQogICAgICAgICAgICAgd2luZG93LmxvY2F0aW9uID0gbGluay5ocmVmOw0KICAgICAgICAgICB9LA0KICAgICAgICAgICAiQ2FuY2VsIjogZnVuY3Rpb24oKSB7DQogICAgICAgICAgICAgJCh0aGlzKS5kaWFsb2coImNsb3NlIik7DQogICAgICAgICAgIH0NCiAgICAgICAgIH0NCiAgICAgICB9KTsNCg0KICAgICAgICQoJyNsaXNlLWVkaXRvci1vcHRpb25zLWRsZycpDQogICAgICAgLmRpYWxvZygNCiAgICAgICB7DQogICAgICAgICBhdXRvT3BlbjogZmFsc2UsDQogICAgICAgICB3aWR0aDogNDAwLA0KICAgICAgICAgcmVzaXphYmxlOiBmYWxzZSwNCiAgICAgICAgIG1vZGFsOiB0cnVlLA0KICAgICAgICAgYnV0dG9uczogew0KICAgICAgICAgICAnT0snOiBmdW5jdGlvbiAoKSB7DQogICAgICAgICAgICAgJCh0aGlzKS5kaWFsb2coJ2Nsb3NlJyk7DQogICAgICAgICAgICAgc3VibWl0X29uX3BuX3NldCggJCgiI3N1Ym1pdF9vbl9wbl9jYiIpICk7DQogICAgICAgICAgIH0sDQogICAgICAgICAgICdDYW5jZWwnOiBmdW5jdGlvbiAoKSB7DQogICAgICAgICAgICAgJCh0aGlzKS5kaWFsb2coJ2Nsb3NlJyk7DQogICAgICAgICAgIH0sDQogICAgICAgICB9DQogICAgICAgfSk7DQoNCiAgICAgICAkKCcubGlzZS1lZGl0b3Itb3B0aW9ucycpLm9uKCJjbGljayIsIGZ1bmN0aW9uKCkNCiAgICAgICB7DQogICAgICAgICAkKCcjbGlzZS1lZGl0b3Itb3B0aW9ucy1kbGcnKS5kaWFsb2coJ29wZW4nKTsNCiAgICAgICB9KTsNCg0KICB9KTsNCg0KPC9zY3JpcHQ+DQoNCg0KeyogKiogKioqICoqICp9DQp7KiBoaWRkZW4gICAgKn0NCnsqICoqICoqKiAqKiAqfQ0KDQo8ZGl2IGlkPSJjb25maXJtLWRpYWxvZyIgdGl0bGU9InskbW9kLT5Nb2RMYW5nKCdkbGdfZWRpdG9yX25wX3dhcm5fdGl0bGUnKX0iPnskbW9kLT5Nb2RMYW5nKCdkbGdfZWRpdG9yX25wX3dhcm5pbmcnKX08L2Rpdj4NCg0KeyogKiogKioqICoqICp9DQoNCjxkaXYgaWQ9Imxpc2UtZWRpdG9yLW9wdGlvbnMtZGxnIiB0aXRsZT0iT3B0aW9ucyI+DQogIDxkaXYgaWQ9InVzZXJvcHRpb25zIiBzdHlsZT0id2lkdGg6IGF1dG87IG1pbi1oZWlnaHQ6IDExM3B4OyBtYXgtaGVpZ2h0OiBub25lOyBoZWlnaHQ6IGF1dG87IiBjbGFzcz0idWktZGlhbG9nLWNvbnRlbnQgdWktd2lkZ2V0LWNvbnRlbnQiPg0KICAgIDxmb3JtPg0KICAgICAgPGRpdiBjbGFzcz0iY19mdWxsIGNmIj4NCiAgICAgIDxwIGNsYXNzPSJwYWdlaW5wdXQiPg0KICAgICAgICA8bGFiZWwgZm9yPSJzdWJtaXRfb25fcG5fY2IiPiB7JG1vZC0+TW9kTGFuZygnb3B0aW9uX2NsaWNrX2Fycm93cycpfToNCiAgICAgICAgICA8aW5wdXQgdHlwZT0iY2hlY2tib3giDQogICAgICAgICAgICAgICAgICBuYW1lPSJzdWJtaXRfb25fcG5fY2IiDQogICAgICAgICAgICAgICAgICBpZD0ic3VibWl0X29uX3BuX2NiIg0KICAgICAgICAgICAgICAgICAgdmFsdWU9IjEiDQogICAgICAgICAgIC8+DQogICAgICAgIDwvbGFiZWw+DQogICAgICA8L3A+DQoJCQk8L2Rpdj4NCiAgICA8L2Zvcm0+DQoJPC9kaXY+DQo8L2Rpdj4=]]></data>
	</file>
	<file>
	  <filename>/framework/templates/edittemplate.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PCEtLSBzdGFydCB0YWIgLS0+CjxkaXYgaWQ9InBhZ2VfdGFicyI+Cgk8ZGl2IGlkPSJlZGl0dGVtcGxhdGUiPgoJCXskdGl0bGV9Cgk8L2Rpdj4KPC9kaXY+CjwhLS0gZW5kIHRhYiAvLy0tPgo8IS0tIHN0YXJ0IGNvbnRlbnQgLS0+CjxkaXYgaWQ9InBhZ2VfY29udGVudCI+IAoJPGRpdiBpZD0iZWRpdHRlbXBsYXRlX2MiPiAKCTxkaXYgaWQ9ImVkaXR0ZW1wbGF0ZV9yZXN1bHQiPjwvZGl2PgoJeyRiYWNrbGlua30KCXskc3RhcnRmb3JtfQoKCQk8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgogICAgCQk8cCBjbGFzcz0icGFnZXRleHQiPiogeyRtb2QtPk1vZExhbmcoJ3RlbXBsYXRlX25hbWUnKX06PC9wPgogICAgCQk8cCBjbGFzcz0icGFnZWlucHV0Ij57JGlucHV0X25hbWV9PC9wPgoJCTwvZGl2PgoJCQoJCTxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CiAgICAJCTxwIGNsYXNzPSJwYWdldGV4dCI+eyRtb2QtPk1vZExhbmcoJ2RlZmF1bHRfdGVtcGxhdGVzJyl9OjwvcD4KICAgIAkJPHAgY2xhc3M9InBhZ2VpbnB1dCB0cGxfbGlzdCI+eyRpbnB1dF90cGxfbGlzdH08L3A+CgkJPC9kaXY+CgoJCTxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CiAgICAJCTxwIGNsYXNzPSJwYWdldGV4dCI+eyRtb2QtPk1vZExhbmcoJ3RlbXBsYXRlJyl9OjwvcD4KICAgIAkJPGRpdiBjbGFzcz0icGFnZWlucHV0IHRwbF9jb250ZW50Ij57JGlucHV0X3RlbXBsYXRlfTwvZGl2PgoJCTwvZGl2PgoKCQk8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgogICAgCQk8cCBjbGFzcz0icGFnZXRleHQiPiZuYnNwOzwvcD4KICAgIAkJPHAgY2xhc3M9InBhZ2VpbnB1dCI+e2lmIGlzc2V0KCRpZGZpZWxkKX17JGlkZmllbGR9ey9pZn17JHN1Ym1pdH17JGNhbmNlbH17JGFwcGx5fXtpZiBpc3NldCgkcmVzZXQpfXskcmVzZXR9ey9pZn08L3A+CgkJPC9kaXY+CgoJeyRlbmRmb3JtfQoJPC9kaXY+CjwvZGl2PgoKPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPntsaXRlcmFsfQpqUXVlcnkoZG9jdW1lbnQpLnJlYWR5KGZ1bmN0aW9uKCkgewoKCWpRdWVyeSgnLnRwbF9saXN0IHNlbGVjdCcpLmNoYW5nZShmdW5jdGlvbigpIHsKCQl2YXIgY2FsbGJhY2sgPSBhamF4X2Z1bmN0aW9uKCdNb2RHZXRUZW1wbGF0ZUZyb21GaWxlJywgJCh0aGlzKS52YWwoKSk7CgkJY2FsbGJhY2suc3VjY2VzcyhmdW5jdGlvbihkYXRhKSB7CgkJCWpRdWVyeSgnLnRwbF9jb250ZW50IHRleHRhcmVhJykudmFsKGRhdGEpOwoJCX0pOwoJfSk7CgogICAgalF1ZXJ5KCdbbmFtZT1tMV9hcHBseV0nKS5saXZlKCdjbGljaycsIGZ1bmN0aW9uKCkgewogICAgICAgIGlmICh0eXBlb2YgdGlueU1DRSAhPSAndW5kZWZpbmVkJykgewogICAgICAgICAgICB0aW55TUNFLnRyaWdnZXJTYXZlKCk7CiAgICAgICAgfQogICAgICAgIHZhciBkYXRhID0galF1ZXJ5KCdmb3JtJykuZmluZCgnaW5wdXQ6bm90KFt0eXBlPXN1Ym1pdF0pLCBzZWxlY3QsIHRleHRhcmVhJykuc2VyaWFsaXplQXJyYXkoKTsKICAgICAgICBkYXRhLnB1c2goewogICAgICAgICAgICAnbmFtZSc6ICdtMV9hamF4JywKICAgICAgICAgICAgJ3ZhbHVlJzogMQogICAgICAgIH0pOwogICAgICAgIGRhdGEucHVzaCh7CiAgICAgICAgICAgICduYW1lJzogJ20xX2FwcGx5JywKICAgICAgICAgICAgJ3ZhbHVlJzogMQogICAgICAgIH0pOwogICAgICAgIGRhdGEucHVzaCh7CiAgICAgICAgICAgICduYW1lJzogJ3Nob3d0ZW1wbGF0ZScsCiAgICAgICAgICAgICd2YWx1ZSc6ICdmYWxzZScKICAgICAgICB9KTsKICAgICAgICB2YXIgdXJsID0galF1ZXJ5KCdmb3JtJykuYXR0cignYWN0aW9uJyk7CgkJCiAgICAgICAgalF1ZXJ5LnBvc3QodXJsLCBkYXRhLCBmdW5jdGlvbihyZXN1bHRkYXRhLCB0ZXh0KSB7CiAgICAgICAgICAgIHZhciByZXNwID0galF1ZXJ5KHJlc3VsdGRhdGEpLmZpbmQoJ1Jlc3BvbnNlJykudGV4dCgpOwogICAgICAgICAgICB2YXIgZGV0YWlscyA9IGpRdWVyeShyZXN1bHRkYXRhKS5maW5kKCdEZXRhaWxzJykudGV4dCgpOwogICAgICAgICAgICB2YXIgaHRtbFNob3cgPSAnJzsKICAgICAgICAgICAgaWYgKHJlc3AgPT09ICdTdWNjZXNzJyAmJiBkZXRhaWxzICE9PSAnJykgewogICAgICAgICAgICAgICAgaHRtbFNob3cgPSAnPGRpdiBjbGFzcz0icGFnZW1jb250YWluZXIiPjxwIGNsYXNzPSJwYWdlbWVzc2FnZSI+JyArIGRldGFpbHMgKyAnPFwvcD48XC9kaXY+JzsKICAgICAgICAgICAgfQogICAgICAgICAgICBlbHNlIHsKICAgICAgICAgICAgICAgIGh0bWxTaG93ID0gJzxkaXYgY2xhc3M9InBhZ2VlcnJvcmNvbnRhaW5lciI+PHVsIGNsYXNzPSJwYWdlZXJyb3IiPic7CiAgICAgICAgICAgICAgICBodG1sU2hvdyArPSBkZXRhaWxzOwogICAgICAgICAgICAgICAgaHRtbFNob3cgKz0gJzxcL3VsPjxcL2Rpdj4nOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGpRdWVyeSgnI2VkaXR0ZW1wbGF0ZV9yZXN1bHQnKS5odG1sKGh0bWxTaG93KTsKICAgICAgICAgICAgd2luZG93LnNldFRpbWVvdXQoZnVuY3Rpb24oKXsgCiAgICAgICAgICAgIAkkKCcucGFnZW1jb250YWluZXInKS5oaWRlKCk7IAogICAgICAgICAgICAJfSwgOTAwMCkKICAgICAgICB9LCAneG1sJyk7CiAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgfSk7Cn0pOwp7L2xpdGVyYWx9PC9zY3JpcHQ+Cg==]]></data>
	</file>
	<file>
	  <filename>/framework/templates/fe_archive_default.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[e2lmICRhcmNoaXZlc3xAY291bnQgPiAwfQoKICAgIDwhLS0gYXJjaGl2ZXMgLS0+CiAgICA8dWw+CiAgICAgICAge2ZvcmVhY2ggZnJvbT0kYXJjaGl2ZXMgaXRlbT0nYXJjaGl2ZSd9CiAgICAgICAgICAgIDxsaT48YSBocmVmPSJ7JGFyY2hpdmUtPnVybH0iPnskYXJjaGl2ZS0+bW9udGh9L3skYXJjaGl2ZS0+eWVhcn0gKHskYXJjaGl2ZS0+Y291bnR9KTwvYT4gW3skYXJjaGl2ZS0+dGltZXN0YW1wfGNtc19kYXRlX2Zvcm1hdDonJUIgJVknfV08L2xpPiAgICAKICAgICAgICB7L2ZvcmVhY2h9CiAgICA8L3VsPgogICAgPCEtLSBhcmNoaXZlcyAvLy0tPgogICAgCnsvaWZ9]]></data>
	</file>
	<file>
	  <filename>/framework/templates/fe_category_default.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PCEtLSBjYXRlZ29yaWVzIC0tPgo8dWw+Cntmb3JlYWNoIGZyb209JGNhdGVnb3JpZXMgaXRlbT1jYXRlZ29yeX0KCTxsaSBjbGFzcz0iY2F0ZWdvcnkteyRjYXRlZ29yeS0+YWxpYXN9Ij4KCQk8YSBjbGFzcz0iY2F0ZWdvcnktbmFtZSIgaHJlZj0ieyRjYXRlZ29yeS0+dXJsfSI+eyRjYXRlZ29yeS0+bmFtZX0gKHskY2F0ZWdvcnktPml0ZW1zfGNvdW50fSk8L2E+CgkJCXtpZiAhZW1wdHkoJGNhdGVnb3J5LT5kZXNjcmlwdGlvbil9CgkJCTxkaXYgY2xhc3M9ImNhdGVnb3J5LWRlc2NyaXB0aW9uIj4KCQkJCXtldmFsIHZhcj0kY2F0ZWdvcnktPmRlc2NyaXB0aW9ufQoJCQk8L2Rpdj4KCQkJey9pZn0KCTwvbGk+CnsvZm9yZWFjaH0KPHVsPgo8IS0tIGNhdGVnb3JpZXMgLy8tLT4=]]></data>
	</file>
	<file>
	  <filename>/framework/templates/fe_category_hierarchy.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PCEtLSBjYXRlZ29yaWVzIGhpZXJhcmNoeSAtLT4KPHVsIGNsYXNzPSJjYXRlZ29yaWVzIj4Ke2ZvcmVhY2ggZnJvbT0kY2F0ZWdvcmllcyBpdGVtPWNhdGVnb3J5fQoKe2lmICRjYXRlZ29yeS0+ZGVwdGggPiAkY2F0ZWdvcnktPnByZXZkZXB0aH0KCXtyZXBlYXQgc3RyaW5nPSI8dWw+IiB0aW1lcz0kY2F0ZWdvcnktPmRlcHRoLSRjYXRlZ29yeS0+cHJldmRlcHRofQp7ZWxzZWlmICRjYXRlZ29yeS0+ZGVwdGggPCAkY2F0ZWdvcnktPnByZXZkZXB0aH0KCXtyZXBlYXQgc3RyaW5nPSI8L2xpPjwvdWw+IiB0aW1lcz0kY2F0ZWdvcnktPnByZXZkZXB0aC0kY2F0ZWdvcnktPmRlcHRofQoJPC9saT4Ke2Vsc2VpZiAkY2F0ZWdvcnktPmluZGV4ID4gMH0KCTwvbGk+CnsvaWZ9Cgp7aWYgJGNhdGVnb3J5LT5jdXJyZW50fQo8bGkgY2xhc3M9ImNhdGVnb3J5LXskY2F0ZWdvcnktPmFsaWFzfSBjdXJyZW50e2lmICRjYXRlZ29yeS0+cGFyZW50ID09IHRydWUgfHwgJGNhdGVnb3J5LT5jaGlsZHJlbnxAY291bnQgPiAwfSBwYXJlbnR7L2lmfSI+Cgk8YSBocmVmPSJ7JGNhdGVnb3J5LT51cmx9Ij57JGNhdGVnb3J5LT5tZW51dGV4dH08L2E+CntlbHNlfQo8bGkgY2xhc3M9ImNhdGVnb3J5LXskY2F0ZWdvcnktPmFsaWFzfXtpZiAkY2F0ZWdvcnktPnBhcmVudCA9PSB0cnVlIHx8ICRjYXRlZ29yeS0+Y2hpbGRyZW58QGNvdW50ID4gMH0gcGFyZW50ey9pZn0iPgoJPGEgaHJlZj0ieyRjYXRlZ29yeS0+dXJsfSI+eyRjYXRlZ29yeS0+bWVudXRleHR9PC9hPgp7L2lmfQoKey9mb3JlYWNofQoKCXtyZXBlYXQgc3RyaW5nPSI8L2xpPjwvdWw+IiB0aW1lcz0kY2F0ZWdvcnktPmRlcHRoLTF9Cgk8L2xpPgo8L3VsPgo8IS0tIGNhdGVnb3JpZXMgaGllcmFyY2h5IC8vLS0+]]></data>
	</file>
	<file>
	  <filename>/framework/templates/fe_detail_default.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PCEtLSBpdGVtIC0tPgo8ZGl2IGNsYXNzPSJpdGVtIj4KCTxoMiBjbGFzcz0iaXRlbS10aXRsZSI+eyRpdGVtLT50aXRsZXxjbXNfZXNjYXBlfTwvaDI+CgoJe2lmICFlbXB0eSgkaXRlbS0+ZmllbGRkZWZzKX0KCgk8ZGl2IGNsYXNzPSJpdGVtLXByb3BlcnRpZXMiPgoJCXtmb3JlYWNoIGZyb209JGl0ZW0tPmZpZWxkZGVmcyBpdGVtPWZpZWxkZGVmfQoKCQl7KgoJCQlDYXRlZ29yaWVzIHdlcmUgbW92ZWQgdG8gZmllbGQgZGVmaW5pdGlvbnMuCgkJCUlmIHlvdSBuZWVkIENhdGVnb3JpZXMsIGNyZWF0ZSBuZXcgRmllbGQgZGVmaW5pdGlvbiB3aXRoIGFsaWFzICJjYXRlZ29yeSIKCQkJYW5kIENhdGVnb3JpZXMgd2lsbCBiZSBhdmFpbGFibGUgYWdhaW4uCgkJKn0KCgkJe2lmICRmaWVsZGRlZi50eXBlID09ICdDYXRlZ29yaWVzJyAmJiAoJGZpZWxkZGVmLnZhbHVlICE9ICcnKX0KCgkJCXsqIHVzZSBMSVNFTG9hZGVyIHBsdWdpbiBpZiB5b3UgbmVlZCBDYXRlZ29yeSBpbmZvcm1hdGlvbiBpbiBkZWZhdWx0IG1vZHVsZSBhY3Rpb24gdGVtcGxhdGVzICp9CgkJCXtMSVNFTG9hZGVyIGl0ZW09J2NhdGVnb3J5JyBmb3JjZV9hcnJheT0xIHZhbHVlPSRmaWVsZGRlZi52YWx1ZSBhc3NpZ249J2NhdHMnfQoJCgkJCTwhLS0gY2F0ZWdvcmllcyAtLT4KCQkJPGRpdiBjbGFzcz0iaXRlbS1jYXRlZ29yeSI+CgkJCQlDYXRlZ29yeToge2ltcGxvZGUoJywnLCAkY2F0cyl9CgkJCTwvZGl2PgoJCQk8IS0tIGNhdGVnb3JpZXMgLy8tLT4KCQkJCgkJey9pZn0KCgkJe2lmICRmaWVsZGRlZi52YWx1ZSAmJiAkZmllbGRkZWYudHlwZSAhPSAnQ2F0ZWdvcmllcyd9CgkJCXtpZiAkZmllbGRkZWYudHlwZSA9PSAnU2VsZWN0RmlsZScgfHwgJGZpZWxkZGVmLnR5cGUgPT0gJ0ZpbGVVcGxvYWQnfQoJCQkJeyRmaWVsZGRlZi5uYW1lfTogPGEgaHJlZj0ieyRmaWVsZGRlZi0+R2V0SW1hZ2VQYXRoKHRydWUpfS97JGZpZWxkZGVmLnZhbHVlfSI+eyRmaWVsZGRlZi52YWx1ZX08L2E+PGJyIC8+CgkJe2Vsc2VpZiAkZmllbGRkZWYudHlwZSA9PSAnU2VsZWN0RGF0ZVRpbWUnfQoJCQkJCXskZmllbGRkZWYubmFtZX06IHskZmllbGRkZWYudmFsdWV8Y21zX2RhdGVfZm9ybWF0fTxiciAvPgoJCXtlbHNlfQoJCQl7JGZpZWxkZGVmLm5hbWV9OiB7JGZpZWxkZGVmLnZhbHVlfTxiciAvPgoJCQl7L2lmfQoJCXsvaWZ9CgoJCXsvZm9yZWFjaH0KCTwvZGl2PgoKCXsvaWZ9CgkKCTxhIGhyZWY9InskcmV0dXJuX3VybH0iIGNsYXNzPSJyZXR1cm4tbGluayI+cmV0dXJuPC9hPgoJeyogb3IgdXNlIHskcmV0dXJuX2xpbmt9IHRvIGNyZWF0ZSBsaW5rIHRhZyAqfQoJCjwvZGl2Pgo8IS0tIGl0ZW0gLy8tLT4=]]></data>
	</file>
	<file>
	  <filename>/framework/templates/fe_search_default.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PGRpdiBpZD0ieyRtb2R1bGVhbGlhc31fc2VhcmNoIj4KCXskZm9ybXN0YXJ0fQoJCTxsYWJlbCBmb3I9InskbW9kdWxlYWxpYXN9c2VhcmNoaW5wdXQiPnskbW9kLT5Nb2RMYW5nKCdzZWFyY2hmb3InKX06PC9sYWJlbD4mbmJzcDsKCQk8aW5wdXQgdHlwZT0idGV4dCIgaWQ9InskbW9kdWxlYWxpYXN9c2VhcmNoaW5wdXQiIG5hbWU9InskYWN0aW9uaWR9c2VhcmNoIiBzaXplPSIyMCIgbWF4bGVuZ3RoPSI1MCIgdmFsdWU9IiIgLz4KCQk8aW5wdXQgY2xhc3M9InNlYXJjaC1idXR0b24iIG5hbWU9InN1Ym1pdCIgdmFsdWU9InskbW9kLT5Nb2RMYW5nKCdzZWFyY2gnKX0iIHR5cGU9InN1Ym1pdCIgLz4KCXskZm9ybWVuZH0KPC9kaXY+]]></data>
	</file>
	<file>
	  <filename>/framework/templates/fe_search_filter.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PGRpdiBpZD0ieyRtb2R1bGVhbGlhc31fZmlsdGVyIj4KCgk8aDM+eyRmaWx0ZXJwcm9tcHR9PC9oMz4KCgl7JGZvcm1zdGFydH0KCgkJe2ZvcmVhY2ggZnJvbT0kZmllbGRkZWZzIGl0ZW09ZmllbGRkZWZ9CgkJPGRpdiBjbGFzcz0iZm9ybS1yb3ciPgoJCQkKCQl7aWYgJGZpZWxkZGVmLnR5cGUgIT0gJ0NhdGVnb3JpZXMnfQoJCQk8bGFiZWwgZm9yPSJmaWx0ZXJfeyRmaWVsZGRlZi0+YWxpYXN9Ij57JGZpZWxkZGVmLT5uYW1lfTwvbGFiZWw+CgkJCQoJCQl7aWYgJGZpZWxkZGVmLnR5cGUgPT0gJ0NoZWNrYm94J30KCQkJCTxpbnB1dCB0eXBlPSJjaGVja2JveCIgbmFtZT0ieyRhY3Rpb25pZH1zZWFyY2hfeyRmaWVsZGRlZi0+YWxpYXN9IiBpZD0iZmlsdGVyX3skZmllbGRkZWYtPmFsaWFzfSIgdmFsdWU9InskZmllbGRkZWYtPnZhbHVlfSIgLz4KCQkJe2Vsc2V9CgkJCQoJCQk8c2VsZWN0IG5hbWU9InskYWN0aW9uaWR9c2VhcmNoX3skZmllbGRkZWYtPmFsaWFzfSIgaWQ9ImZpbHRlcl97JGZpZWxkZGVmLT5hbGlhc30iPgoJCQkJPG9wdGlvbiB2YWx1ZT0nJz57JG1vZC0+TW9kTGFuZygnYWxsJyl9PC9vcHRpb24+CgkJCQl7Zm9yZWFjaCBmcm9tPSRmaWVsZGRlZi0+dmFsdWVzIGl0ZW09dmFsdWV9CgkJCQk8b3B0aW9uPnskdmFsdWV9PC9vcHRpb24+CgkJCQl7L2ZvcmVhY2h9CgkJCTwvc2VsZWN0PgoJCQl7L2lmfQoJCQkKCQl7L2lmfQoJCQkKCQk8L2Rpdj4KCQl7L2ZvcmVhY2h9CgkKCQk8aW5wdXQgY2xhc3M9InNlYXJjaC1idXR0b24iIG5hbWU9InN1Ym1pdCIgdmFsdWU9InskbW9kLT5Nb2RMYW5nKCdzZWFyY2gnKX0iIHR5cGU9InN1Ym1pdCIgLz4KCgl7JGZvcm1lbmR9Cgo8L2Rpdj4=]]></data>
	</file>
	<file>
	  <filename>/framework/templates/fe_search_multiselect.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PGRpdiBpZD0ieyRtb2R1bGVhbGlhc31fZmlsdGVyIj4KCgk8aDM+eyRmaWx0ZXJwcm9tcHR9PC9oMz4KCgl7JGZvcm1zdGFydH0KCgkJe2ZvcmVhY2ggZnJvbT0kZmllbGRkZWZzIGl0ZW09ZmllbGRkZWZ9CgkJPGRpdiBjbGFzcz0iZmlsdGVyIGZvcm0tcm93Ij4KCgkJe2lmICRmaWVsZGRlZi50eXBlICE9ICdDYXRlZ29yaWVzJ30KCQkKCQkJPGxhYmVsPnskZmllbGRkZWYtPm5hbWV9PC9sYWJlbD48YnIgLz4KCQkJe2lmICRmaWVsZGRlZi50eXBlID09ICdDaGVja2JveCd9CgkJCQkKCQkJCTxpbnB1dCB0eXBlPSJjaGVja2JveCIgbmFtZT0ieyRhY3Rpb25pZH1zZWFyY2hfeyRmaWVsZGRlZi0+YWxpYXN9IiBpZD0iZmlsdGVyX3skZmllbGRkZWYtPmFsaWFzfSIgdmFsdWU9InskZmllbGRkZWYtPnZhbHVlfSIgLz4KCQkJe2Vsc2V9CgkJCQkKCQkJCTxzZWxlY3QgbmFtZT0ieyRhY3Rpb25pZH1zZWFyY2hfeyRmaWVsZGRlZi0+YWxpYXN9W10iIHNpemU9IjUiIG11bHRpcGxlPSJtdWx0aXBsZSI+CgkJCQkJe2ZvcmVhY2ggZnJvbT0kZmllbGRkZWYtPnZhbHVlcyBpdGVtPSd2YWx1ZSd9CgkJCQkJPG9wdGlvbiB2YWx1ZT0ieyR2YWx1ZX0iPnskdmFsdWV9PC9vcHRpb24+CgkJCQkJey9mb3JlYWNofQoJCQkJPC9zZWxlY3Q+CgkJCXsvaWZ9CgkJey9pZn0KCQk8L2Rpdj4KCQl7L2ZvcmVhY2h9CgoJCTxpbnB1dCBjbGFzcz0ic2VhcmNoLWJ1dHRvbiIgbmFtZT0ic3VibWl0IiB2YWx1ZT0ieyRtb2QtPk1vZExhbmcoJ2ZpbHRlcicpfSIgdHlwZT0ic3VibWl0IiAvPgoKCXskZm9ybWVuZH0KPC9kaXY+]]></data>
	</file>
	<file>
	  <filename>/framework/templates/fe_summary_default.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[e2lmICRpdGVtc3xAY291bnQgPiAwfQoKCXtpZiAkcGFnZWNvdW50ID4gMX0KCTwhLS0gcGFnaW5hdGlvbiAtLT4KCTxwPgoJCXtpZiAkcGFnZW51bWJlciA+IDF9CgkJCXskZmlyc3RwYWdlfSZuYnNwO3skcHJldnBhZ2V9Jm5ic3A7CgkJey9pZn0KCQkJe2ZvcmVhY2ggZnJvbT0kcGFnZWxpbmtzIGl0ZW09cGFnZX0KCQkJCXskcGFnZS0+bGlua30KCQkJey9mb3JlYWNofQoJCXtpZiAkcGFnZW51bWJlciA8ICRwYWdlY291bnR9CgkJCSZuYnNwO3skbmV4dHBhZ2V9Jm5ic3A7eyRsYXN0cGFnZX0KCQl7L2lmfQoJPC9wPgoJPCEtLSBwYWdpbmF0aW9uIC8vLS0+Cgl7L2lmfQoJCgk8IS0tIGl0ZW1zIC0tPgoJe2ZvcmVhY2ggZnJvbT0kaXRlbXMgaXRlbT1pdGVtfQoJPCEtLSBpdGVtIC0tPgoJPGRpdiBjbGFzcz0iaXRlbSI+CgkKCQk8aDIgY2xhc3M9Iml0ZW0tdGl0bGUiPnskaXRlbS0+dGl0bGV9PC9oMj4KCQoJCXtpZiAhZW1wdHkoJGl0ZW0tPmZpZWxkZGVmcyl9CgkJPCEtLSBmaWVsZCBkZWZpbml0aW9ucyAtLT4KCQk8ZGl2IGNsYXNzPSJpdGVtLXByb3BlcnRpZXMiPgoJCQl7Zm9yZWFjaCBmcm9tPSRpdGVtLT5maWVsZGRlZnMgaXRlbT1maWVsZGRlZn0KCQoJCQl7KgoJCQkJQ2F0ZWdvcmllcyB3ZXJlIG1vdmVkIHRvIGZpZWxkIGRlZmluaXRpb25zLgoJCQkJSWYgeW91IG5lZWQgQ2F0ZWdvcmllcywgY3JlYXRlIG5ldyBGaWVsZCBkZWZpbml0aW9uIHdpdGggYWxpYXMgImNhdGVnb3J5IgoJCQkJYW5kIENhdGVnb3JpZXMgd2lsbCBiZSBhdmFpbGFibGUgYWdhaW4uCgkJCSp9CgkKCQkJe2lmICRmaWVsZGRlZi50eXBlID09ICdDYXRlZ29yaWVzJyAmJiAoJGZpZWxkZGVmLnZhbHVlICE9ICcnKX0KCQoJCQl7KiB1c2UgTElTRUxvYWRlciBwbHVnaW4gaWYgeW91IG5lZWQgQ2F0ZWdvcnkgaW5mb3JtYXRpb24gaW4gZGVmYXVsdCBtb2R1bGUgYWN0aW9uIHRlbXBsYXRlcyAqfQoJCQl7TElTRUxvYWRlciBpdGVtPSdjYXRlZ29yeScgZm9yY2VfYXJyYXk9MSB2YWx1ZT0kZmllbGRkZWYudmFsdWUgYXNzaWduPSdjYXRzJ30KCQoJCQk8IS0tIGNhdGVnb3JpZXMgLS0+CgkJCTxkaXYgY2xhc3M9Iml0ZW0tY2F0ZWdvcnkiPgoJCQkJQ2F0ZWdvcnk6IHtpbXBsb2RlKCcsJywgJGNhdHMpfQoJCQk8L2Rpdj4KCQkJPCEtLSBjYXRlZ29yaWVzIC8vLS0+CgkJCXsvaWZ9CgkKCQkJe2lmICRmaWVsZGRlZi52YWx1ZSAmJiAkZmllbGRkZWYudHlwZSAhPSAnQ2F0ZWdvcmllcyd9CgkJCQl7aWYgJGZpZWxkZGVmLnR5cGUgPT0gJ1NlbGVjdEZpbGUnIHx8ICRmaWVsZGRlZi50eXBlID09ICdGaWxlVXBsb2FkJ30KCQkJCQl7JGZpZWxkZGVmLm5hbWV9OiA8YSBocmVmPSJ7JGZpZWxkZGVmLT5HZXRJbWFnZVBhdGgodHJ1ZSl9L3skZmllbGRkZWYudmFsdWV9Ij57JGZpZWxkZGVmLnZhbHVlfTwvYT48YnIgLz4KCQkJCXtlbHNlaWYgJGZpZWxkZGVmLnR5cGUgPT0gJ1NlbGVjdERhdGVUaW1lJ30KCQkJCQl7JGZpZWxkZGVmLm5hbWV9OiB7JGZpZWxkZGVmLnZhbHVlfGNtc19kYXRlX2Zvcm1hdH08YnIgLz4KCQkJCXtlbHNlfQoJCQkJCXskZmllbGRkZWYubmFtZX06IHskZmllbGRkZWYudmFsdWV9PGJyIC8+CgkJCQl7L2lmfQoJCQl7L2lmfQoJCgkJCXsvZm9yZWFjaH0KCQk8L2Rpdj4KCQk8IS0tIGZpZWxkIGRlZmluaXRpb25zIC8vLS0+CgkJey9pZn0KCQoJCTxhIGhyZWY9InskaXRlbS0+dXJsfSI+bW9yZTwvYT4KCTwvZGl2PgoJPCEtLSBpdGVtIC8vLS0+Cgl7L2ZvcmVhY2h9Cgk8IS0tIGl0ZW1zIC8vLS0+Cgp7L2lmfQ==]]></data>
	</file>
	<file>
	  <filename>/framework/templates/fe_summary_searchresults.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[e2lmICRpdGVtc3xAY291bnQgPiAwfQoKe2lmICRwYWdlY291bnQgPiAxfQo8IS0tIHBhZ2luYXRpb24gLS0+CjxwPgp7aWYgJHBhZ2VudW1iZXIgPiAxfQogICAgeyRmaXJzdHBhZ2V9Jm5ic3A7eyRwcmV2cGFnZX0Key9pZn0Ke2ZvcmVhY2ggZnJvbT0kcGFnZWxpbmtzIGl0ZW09cGFnZX0KICAgIHskcGFnZS0+bGlua30Key9mb3JlYWNofQp7aWYgJHBhZ2VudW1iZXIgPCAkcGFnZWNvdW50fQogICAgJm5ic3A7eyRuZXh0cGFnZX0mbmJzcDt7JGxhc3RwYWdlfQp7L2lmfQo8L3A+CjwhLS0gcGFnaW5hdGlvbiAvLy0tPgp7L2lmfQoKe2lmICFlbXB0eSgkYWN0aW9ucGFyYW1zLnNlYXJjaCl9CiAgICA8aDI+eyRtb2QtPk1vZExhbmcoJ3NlYXJjaHJlc3VsdHNmb3InKX0gJnF1b3Q7eyRhY3Rpb25wYXJhbXMuc2VhcmNofSZxdW90OzwvaDI+CnsvaWZ9Cgo8dWw+Cntmb3JlYWNoIGZyb209JGl0ZW1zIGl0ZW09aXRlbX0KICAgIDxsaSBjbGFzcz0iaXRlbSBzZWFyY2hyZXN1bHQiPgogICAgICAgIDxhIGhyZWY9InskaXRlbS0+dXJsfSI+eyRpdGVtLT50aXRsZX08L2E+CiAgICA8L2xpPgp7L2ZvcmVhY2h9CjwvdWw+Cgp7L2lmfQ==]]></data>
	</file>
	<file>
	  <filename>/framework/templates/fielddeftab.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[e2lmIGNvdW50KCRpdGVtcykgPiAwfQogIDxkaXYgY2xhc3M9InBhZ2VvcHRpb25zIj57JGFkZGxpbmt9PC9kaXY+CiAgPHRhYmxlIGlkPSJzb3J0YWJsZV9maWVsZGRlZiIgY2VsbHNwYWNpbmc9IjAiIGNsYXNzPSJwYWdldGFibGUiPgogICAgPHRoZWFkPgogICAgICAgIDx0cj4KICAgICAgICAgICAgPHRoPnskbW9kLT5Nb2RMYW5nKCdmaWVsZGRlZicpfTwvdGg+CiAgICAgICAgICAgIDx0aD57JG1vZC0+TW9kTGFuZygnYWxpYXMnKX08L3RoPgogICAgICAgICAgICA8dGg+eyRtb2QtPk1vZExhbmcoJ2ZpZWxkZGVmX3R5cGUnKX08L3RoPgogICAgICAgICAgICA8dGg+eyRtb2QtPk1vZExhbmcoJ3JlcXVpcmVkJyl9PC90aD4KICAgICAgICAgICAgPHRoIGRhdGEtaWdub3JlPSJoaWdobGlnaHQiIGRhdGEtaGlkZT0icGhvbmUsdGFibGV0IiBkYXRhLWNsYXNzPSJoaWRlLWhlYWRpbmciIGRhdGEtc29ydC1pZ25vcmU9InRydWUiIGNsYXNzPSJwYWdlaWNvbiI+Jm5ic3A7PC90aD4KICAgICAgICAgICAgPHRoIGRhdGEtaWdub3JlPSJoaWdobGlnaHQiIGRhdGEtaGlkZT0icGhvbmUsdGFibGV0IiBkYXRhLWNsYXNzPSJoaWRlLWhlYWRpbmciIGRhdGEtc29ydC1pZ25vcmU9InRydWUiIGNsYXNzPSJwYWdlaWNvbiI+Jm5ic3A7PC90aD4KICAgICAgICAgICAgPHRoIGRhdGEtaWdub3JlPSJoaWdobGlnaHQiIGRhdGEtaGlkZT0icGhvbmUsdGFibGV0IiBkYXRhLWNsYXNzPSJoaWRlLWhlYWRpbmciIGRhdGEtc29ydC1pZ25vcmU9InRydWUiIHRpdGxlPSJ7JG1vZC0+TW9kTGFuZygnc2VsZWN0X2FsbCcpfSIgY2xhc3M9InBhZ2VpY29uIj48aW5wdXQgaWQ9ImNoZWNrX2FsbF9maWVsZGRlZiIgdHlwZT0iY2hlY2tib3giIC8+PC90aD4KICAgICAgICA8L3RyPgogICAgPC90aGVhZD4KICAgIDx0Ym9keSBjbGFzcz0iY29udGVudCI+CiAgICAgIHtmb3JlYWNoIGZyb209JGl0ZW1zIGl0ZW09J2ZpZWxkZGVmJ30KICAgICAgICAgIHtjeWNsZSB2YWx1ZXM9InJvdzEscm93MiIgYXNzaWduPSdyb3djbGFzcyd9CiAgICAgICAgPHRyIGlkPSJmaWVsZGRlZl97JGZpZWxkZGVmLT5HZXRJZCgpfSIgY2xhc3M9Inskcm93Y2xhc3N9IiBzdHlsZT0iY3Vyc29yOiBtb3ZlOyI+CiAgICAgICAgICAgICAgICAgIDx0ZD57JGZpZWxkZGVmLT5HZXROYW1lKCl9PC90ZD4KICAgICAgICAgICAgICAgICAgPHRkPnskZmllbGRkZWYtPkdldEFsaWFzKCl9PC90ZD4KICAgICAgICAgICAgICAgICAgPHRkPnskZmllbGRkZWYtPkdldEZyaWVuZGx5VHlwZSgpfTwvdGQ+CiAgICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz0iaW5pdC1hamF4LXRvZ2dsZSI+eyRmaWVsZGRlZi0+R2V0UmVxdWlyZWQoKX08L3RkPgogICAgICAgICAgICAgICAgICA8dGQ+eyRmaWVsZGRlZi0+ZWRpdGxpbmt9PC90ZD4KICAgICAgICAgICAgICAgICAgPHRkIGNsYXNzPSJpbml0LWFqYXgtZGVsZXRlIj57JGZpZWxkZGVmLT5kZWxldGVsaW5rfTwvdGQ+CiAgICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz0iZmllbGRkZWYtbWFzcy1hY3Rpb24iPnskZmllbGRkZWYtPnNlbGVjdH08L3RkPgogICAgICAgICAgICAgIDwvdHI+CiAgICAgIHsvZm9yZWFjaH0KICAgIDwvdGJvZHk+CiAgPC90YWJsZT4KICA8ZGl2IGNsYXNzPSJwYWdlb3B0aW9ucyIgc3R5bGU9ImZsb2F0OnJpZ2h0OyI+CiAgICA8c2VsZWN0IGlkPSJsaXNlX2ZpZWxkZGVmX21hc3NfYWN0aW9uIj4KICAgICAgPG9wdGlvbiB2YWx1ZT0iIj57JG1vZC0+TW9kTGFuZygnc2VsZWN0X29uZScpfTwvb3B0aW9uPgogICAgICA8b3B0aW9uIHZhbHVlPSJkZWxldGUiPkRlbGV0ZTwvb3B0aW9uPgogICAgICA8b3B0aW9uIHZhbHVlPSJyZXF1aXJlIj5Ub2dnbGUgcmVxdWlyZTwvb3B0aW9uPgogICAgPC9zZWxlY3Q+CiAgPC9kaXY+CiAgPGRpdiBjbGFzcz0icGFnZW9wdGlvbnMiIHN0eWxlPSJmbG9hdDpyaWdodDsiPnskc3VibWl0b3JkZXJ9PC9kaXY+CnsvaWZ9Cgo8ZGl2IGNsYXNzPSJwYWdlb3B0aW9ucyI+eyRhZGRsaW5rfTwvZGl2Pg==]]></data>
	</file>
	<file>
	  <filename>/framework/templates/global_edit.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[eyokYmFja2xpbmsqfQ0KeyogPGgzPnskaGVhZGVyfTwvaDM+ICp9DQp7JHN0YXJ0Zm9ybX0NCiAgPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4NCiAgICA8cCBjbGFzcz0icGFnZWlucHV0Ij4NCiAgICAgIDxpbnB1dCBuYW1lPSJ7JGFjdGlvbmlkfWFwcGx5IiBjbGFzcz0ibGlzZV9hcHBseSIgdmFsdWU9IntsYW5nKCdhcHBseScpfSIgdHlwZT0ic3VibWl0IiAvPg0KICAgIDwvcD4NCiAgPC9kaXY+DQogIDwhLS0gc3RhcnQgdGFiIC0tPg0KICA8ZGl2IGlkPSJwYWdlX3RhYnMiPg0KICAgIDxkaXYgaWQ9ImVkaXRpdGVtIj4NCiAgICAgIHsnc2V0dGluZ3MnfGxhbmd9DQogICAgPC9kaXY+DQogICAgICB7aWYgaXNzZXQoJGl0ZW1PYmplY3R8ZGVmYXVsdDpbXSl9DQogICAgICAgIHtmb3JlYWNoIGZyb209JGl0ZW1PYmplY3QtPmZpZWxkZGVmcyBpdGVtPSdmaWVsZGRlZid9DQogICAgICAgICAge2lmICRmaWVsZGRlZi0+dHlwZSA9PT0gJ1RhYnMnfQ0KICAgICAgICAgICAgeyRmaWVsZGRlZi0+ZGlzcGxheVRhYkhlYWRlcigpfQ0KICAgICAgICAgIHsvaWZ9DQogICAgICAgIHsvZm9yZWFjaH0NCiAgICAgIHsvaWZ9DQogIDwvZGl2Pg0KICA8IS0tIGVuZCB0YWIgLy8tLT4NCiAgPCEtLSBzdGFydCBjb250ZW50IC0tPg0KICA8ZGl2IGlkPSJwYWdlX2NvbnRlbnQiPg0KICAgIDxkaXYgaWQ9ImVkaXRpdGVtX3Jlc3VsdCI+PC9kaXY+DQogICAgPGRpdiBpZD0iZWRpdGl0ZW1fYyI+DQogICAgICB7aWYgaXNzZXQoJGl0ZW1PYmplY3R8ZGVmYXVsdDpbXSl9DQogICAgICAgIHtmb3JlYWNoIGZyb209JGl0ZW1PYmplY3QtPmZpZWxkZGVmcyBpdGVtPSdmaWVsZGRlZid9DQogICAgICAgICAgeyRmaWVsZGRlZi0+UmVuZGVySW5wdXQoJGFjdGlvbmlkLCAkcmV0dXJuaWQpfQ0KICAgICAgICB7L2ZvcmVhY2h9DQogICAgICB7L2lmfQ0KDQogICAgPC9kaXY+DQogIDwvZGl2Pg0KDQogIDxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+DQogICAgPHAgY2xhc3M9InBhZ2V0ZXh0Ij4mbmJzcDs8L3A+DQogICAgPHAgY2xhc3M9InBhZ2VpbnB1dCI+DQogICAgICA8aW5wdXQgbmFtZT0ieyRhY3Rpb25pZH1hcHBseSIgY2xhc3M9Imxpc2VfYXBwbHkiIHZhbHVlPSJ7bGFuZygnYXBwbHknKX0iIHR5cGU9InN1Ym1pdCIgLz4NCiAgICA8L3A+DQogIDwvZGl2Pg0KeyRlbmRmb3JtfQ0KDQp7Kg0KPCEtLSBlbmQgY29udGVudCAvLy0tPg0KPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPg0KdmFyIGFjdGlvbl9pZCA9ICd7JGFjdGlvbmlkfSc7DQp2YXIgaXRlbV9pZCA9ICd7JGl0ZW1PYmplY3QtPml0ZW1faWR8ZGVmYXVsdDotMX0nOw0KdmFyIGFqYXhfdXJsMSA9ICd7JGFqYXhfZ2V0X3VybH0nOw0KdmFyIGFqYXhfdXJsMiA9ICd7JGFqYXhfZ2V0X2FsaWFzfSc7DQp2YXIgbWFudWFsbHlfY2hhbmdlZDEgPSBpdGVtX2lkOw0KdmFyIG1hbnVhbGx5X2NoYW5nZWQyID0gaXRlbV9pZDsNCnZhciBmaW5pc2hlZF9zZXR1cCA9IDA7DQp2YXIgYWpheF94aHIxID0gMDsNCnZhciBhamF4X3hocjIgPSAwOw0KdmFyIGFqYXhfdGltZW91dDE7DQp2YXIgYWpheF90aW1lb3V0MjsNCmFqYXhfdXJsMSA9IGFqYXhfdXJsMS5yZXBsYWNlKC9hbXA7L2csJycpICsgJyZzdXBwcmVzc291dHB1dD0xJzsNCmFqYXhfdXJsMiA9IGFqYXhfdXJsMi5yZXBsYWNlKC9hbXA7L2csJycpICsgJyZzdXBwcmVzc291dHB1dD0xJzsNCg0KZnVuY3Rpb24gYWpheF9nZXR1cmwoKSB7DQogIHZhciBmb3JtID0gJCgnI2xpc2VfZWRpdGl0ZW0gZm9ybScpOw0KICB2YXIgdnRpdGxlID0gJCgnI3skYWN0aW9uaWR9dGl0bGUnKS52YWwoKTsNCiAgYWpheF94aHIgPSAkLnBvc3QoYWpheF91cmwxLCB7IHRpdGxlOiB2dGl0bGUsIGl0ZW1pZDogaXRlbV9pZCB9LCBmdW5jdGlvbihyZXRkYXRhKXsNCiAgICAkKCcjeyRhY3Rpb25pZH11cmwnKS52YWwocmV0ZGF0YSk7DQogICAgYWpheF94aHIxID0gMDsNCn0pOw0KfQ0KDQpmdW5jdGlvbiBhamF4X2dldF9hbGlhcygpIHsNCiAgdmFyIGZvcm0gPSAkKCcjbGlzZV9lZGl0aXRlbSBmb3JtJyk7DQogIHZhciB2dGl0bGUgPSAkKCcjeyRhY3Rpb25pZH10aXRsZScpLnZhbCgpOw0KICBhamF4X3hociA9ICQucG9zdChhamF4X3VybDIsIHsgdGl0bGU6IHZ0aXRsZSB9LCBmdW5jdGlvbihyZXRkYXRhKXsNCiAgICAkKCcjeyRhY3Rpb25pZH1hbGlhcycpLnZhbChyZXRkYXRhKTsNCiAgICBhamF4X3hocjIgPSAwOw0KfSk7DQp9DQoNCmZ1bmN0aW9uIG9uX2NoYW5nZSgpIHsNCiAgaWYoIG1hbnVhbGx5X2NoYW5nZWQxIDwgMSAmJiBmaW5pc2hlZF9zZXR1cCA9PSAxKSB7DQogICAgLy8gYWpheCBmdW5jdGlvbiB0byBnZXQgYSB1bmlxdWUgdXJsIGdpdmVuIGEgdGl0bGUuDQogICAgaWYoIGFqYXhfdGltZW91dDEgIT0gdW5kZWZpbmVkICkgY2xlYXJUaW1lb3V0KGFqYXhfdGltZW91dDEpOw0KICAgIGlmKCBhamF4X3hocjEgPSAwICkgeGhyLmFib3J0KCk7DQogICAgYWpheF90aW1lb3V0MSA9IHNldFRpbWVvdXQoYWpheF9nZXR1cmwsNTAwKTsNCn0NCiAgaWYoIG1hbnVhbGx5X2NoYW5nZWQyIDwgMSAmJiBmaW5pc2hlZF9zZXR1cCA9PSAxKSB7DQogICAgLy8gYWpheCBmdW5jdGlvbiB0byBnZXQgYSB1bmlxdWUgYWxpYXMgZ2l2ZW4gYSB0aXRsZS4NCiAgICBpZiggYWpheF90aW1lb3V0MiAhPSB1bmRlZmluZWQgKSBjbGVhclRpbWVvdXQoYWpheF90aW1lb3V0Mik7DQogICAgaWYoIGFqYXhfeGhyMiA9IDAgKSB4aHIuYWJvcnQoKTsNCiAgICBhamF4X3RpbWVvdXQxID0gc2V0VGltZW91dChhamF4X2dldF9hbGlhcyw1MDApOw0KfQ0KfQ0KDQpqUXVlcnkoZG9jdW1lbnQpLnJlYWR5KGZ1bmN0aW9uKCkgew0KDQogICQoJ3skYWN0aW9uaWR9dXJsJykua2V5dXAoZnVuY3Rpb24oKSB7DQogICAgdmFyIHZhbCA9ICQodGhpcykudmFsKCk7DQogICAgbWFudWFsbHlfY2hhbmdlZDEgPSAwDQogICAgaWYoIHZhbCAhPSAnJyApIG1hbnVhbGx5X2NoYW5nZWQxID0gMTsNCn0pOw0KDQogICQoJ3skYWN0aW9uaWR9YWxpYXMnKS5rZXl1cChmdW5jdGlvbigpIHsNCiAgICB2YXIgdmFsID0gJCh0aGlzKS52YWwoKTsNCiAgICBtYW51YWxseV9jaGFuZ2VkMSA9IDANCiAgICBpZiggdmFsICE9ICcnICkgbWFudWFsbHlfY2hhbmdlZDIgPSAxOw0KfSk7DQoNCiAgJCgnZm9ybScpLmFqYXhTdGFydChmdW5jdGlvbigpIHsNCiAgICAkKCcqJykuY3NzKCdjdXJzb3InLCdwcm9ncmVzcycpOw0KfSk7DQoNCiAgJCgnZm9ybScpLmFqYXhTdG9wKGZ1bmN0aW9uKCkgew0KICAgICQoJyonKS5jc3MoJ2N1cnNvcicsJ2F1dG8nKTsNCn0pOw0KDQogICQoJyN7JGFjdGlvbmlkfXRpdGxlJykua2V5dXAoZnVuY3Rpb24oKSB7DQogICAgb25fY2hhbmdlKCk7DQp9KTsNCg0KICBmaW5pc2hlZF9zZXR1cCA9IDE7DQoNCg0KICBqUXVlcnkoJ1tuYW1lPW0xX2FwcGx5XScpLmxpdmUoJ2NsaWNrJywgZnVuY3Rpb24oKSB7DQogICAgaWYgKHR5cGVvZiB0aW55TUNFICE9ICd1bmRlZmluZWQnKSB7DQogICAgICB0aW55TUNFLnRyaWdnZXJTYXZlKCk7DQogIH0NCg0KICB2YXIgZGF0YSA9IGpRdWVyeSgnZm9ybScpLmZpbmQoJ2lucHV0Om5vdChbdHlwZT1zdWJtaXRdKSwgc2VsZWN0LCB0ZXh0YXJlYScpLnNlcmlhbGl6ZUFycmF5KCk7DQoNCiAgZGF0YS5wdXNoKHsNCiAgICAgICduYW1lJzogJ20xX2FqYXgnLA0KICAgICAgJ3ZhbHVlJzogMQ0KICB9KTsNCiAgZGF0YS5wdXNoKHsNCiAgICAgICduYW1lJzogJ20xX2FwcGx5JywNCiAgICAgICd2YWx1ZSc6IDENCiAgfSk7DQogIGRhdGEucHVzaCh7DQogICAgICAnbmFtZSc6ICdzaG93dGVtcGxhdGUnLA0KICAgICAgJ3ZhbHVlJzogJ2ZhbHNlJw0KICB9KTsNCg0KICB2YXIgdXJsID0galF1ZXJ5KCdmb3JtJykuYXR0cignYWN0aW9uJyk7DQoNCiAgalF1ZXJ5LnBvc3QodXJsLCBkYXRhLCBmdW5jdGlvbihyZXN1bHRkYXRhLCB0ZXh0KSB7DQogICAgICB2YXIgcmVzcCA9IGpRdWVyeShyZXN1bHRkYXRhKS5maW5kKCdSZXNwb25zZScpLnRleHQoKTsNCiAgICAgIHZhciBkZXRhaWxzID0galF1ZXJ5KHJlc3VsdGRhdGEpLmZpbmQoJ0RldGFpbHMnKS50ZXh0KCk7DQogICAgICB2YXIgaHRtbFNob3cgPSAnJzsNCiAgICAgIGlmIChyZXNwID09PSAnU3VjY2VzcycgJiYgZGV0YWlscyAhPT0gJycpIHsNCiAgICAgICAgaHRtbFNob3cgPSAnPGRpdiBjbGFzcz0icGFnZW1jb250YWluZXIiPjxwIGNsYXNzPSJwYWdlbWVzc2FnZSI+JyArIGRldGFpbHMgKyAnPFwvcD48XC9kaXY+JzsNCiAgICB9DQogICAgZWxzZSB7DQogICAgICAgIGh0bWxTaG93ID0gJzxkaXYgY2xhc3M9InBhZ2VlcnJvcmNvbnRhaW5lciI+PHVsIGNsYXNzPSJwYWdlZXJyb3IiPic7DQogICAgICAgIGh0bWxTaG93ICs9IGRldGFpbHM7DQogICAgICAgIGh0bWxTaG93ICs9ICc8XC91bD48XC9kaXY+JzsNCiAgICB9DQogICAgalF1ZXJ5KCcjZWRpdGl0ZW1fcmVzdWx0JykuaHRtbChodG1sU2hvdyk7DQogICAgd2luZG93LnNldFRpbWVvdXQoZnVuY3Rpb24oKXsNCiAgICAgJCgnLnBhZ2VtY29udGFpbmVyJykuaGlkZSgpOw0KIH0sIDkwMDApDQp9LCAneG1sJyk7DQogIHJldHVybiBmYWxzZTsNCn0pOw0KfSk7DQo8L3NjcmlwdD4NCg0KICAgICAgKn0=]]></data>
	</file>
	<file>
	  <filename>/framework/templates/help.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[e3N0cmlwfQ0KICA8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Inskcm9vdF91cmx9L21vZHVsZXMveyRwYXJlbnRfbmFtZX0vbGliL2Nzcy9saXNlSGVscC5jc3MiIHR5cGU9InRleHQvY3NzIiAvPg0KICA8c2NyaXB0IHNyYz0ieyRyb290X3VybH0vbW9kdWxlcy97JHBhcmVudF9uYW1lfS9saWIvanMvanMuY29va2llLmpzIj48L3NjcmlwdD4NCiAgPHNjcmlwdD4NCmpRdWVyeShkb2N1bWVudCkucmVhZHkoZnVuY3Rpb24oKXsNCiAgdmFyIGFjdGl2ZV90YWIgPSBDb29raWVzLmdldCgneyRtb2QtPkdldE5hbWUoKX1fYWN0aXZlJyk7DQoNCiAgaWYodHlwZW9mIGFjdGl2ZV90YWIgPT09ICJ1bmRlZmluZWQiKQ0KICB7DQogICAgX3NldF9hY3RpdmVfdGFiKCdnZW5lcmFsJyk7DQogIH0NCiAgZWxzZQ0KICB7DQogICAgX3NldF9hY3RpdmVfdGFiKGFjdGl2ZV90YWIpOw0KICB9DQoNCiAgJCgnI3BhZ2VfdGFicyA+IGRpdicpDQogICAgLmVhY2goZnVuY3Rpb24oKQ0KICAgICAgICAgIHsNCiAgICAgICAgICAgICQodGhpcykNCiAgICAgICAgICAgICAgLmNsaWNrKGZ1bmN0aW9uKCkNCiAgICAgICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgICAgQ29va2llcy5zZXQoJ3skbW9kLT5HZXROYW1lKCl9X2FjdGl2ZScsIHRoaXMuaWQpOw0KICAgICAgICAgICAgICAgICAgICAgfSk7DQogICAgICAgICAgfSk7DQp9KTsNCg0KDQpmdW5jdGlvbiBfc2V0X2FjdGl2ZV90YWIodGFiX25hbWUpDQp7DQogICQoJyNwYWdlX3RhYnMgPiBkaXYnKQ0KICAgIC5lYWNoKGZ1bmN0aW9uKCkNCiAgICAgICAgICB7DQogICAgICAgICAgICAkKHRoaXMpLnJlbW92ZUNsYXNzKCdhY3RpdmUnKTsNCiAgICAgICAgICB9KTsNCg0KICAkKCcjcGFnZV9jb250ZW50ID4gZGl2JykNCiAgICAuZWFjaChmdW5jdGlvbigpDQogICAgICAgICAgew0KICAgICAgICAgICAgJCh0aGlzKS5oaWRlKCk7DQogICAgICAgICAgfSk7DQoNCiAgJCgnIycgKyB0YWJfbmFtZSkuYWRkQ2xhc3MoJ2FjdGl2ZScpOw0KICAkKCcjJyArIHRhYl9uYW1lICsgJ19jJykuc2hvdygpOw0KICBDb29raWVzLnNldCgneyRtb2QtPkdldE5hbWUoKX1fYWN0aXZlJywgdGFiX25hbWUpOw0KfQ0KPC9zY3JpcHQ+DQoNCiAgPGRpdiBjbGFzcz0iY2xlYXIiPjwvZGl2Pg0KICA8ZGl2IGlkPSJwYWdlX3RhYnMiPg0KCTxkaXYgaWQ9ImdlbmVyYWwiPg0KCQl7JG1vZC0+TW9kTGFuZygnZ2VuZXJhbCcpfQ0KCTwvZGl2Pg0KCTxkaXYgaWQ9InVzYWdlIj4NCgkJeyRtb2QtPk1vZExhbmcoJ3VzYWdlJyl9DQoJPC9kaXY+DQoJPGRpdiBpZD0icGFyYW1zIj4NCgkJeyRtb2QtPk1vZExhbmcoJ3BhcmFtcycpfQ0KCTwvZGl2Pg0KCTxkaXYgaWQ9InBlcm1pc3Npb25zIj4NCgkJeyRtb2QtPk1vZExhbmcoJ3Blcm1pc3Npb25zJyl9DQoJPC9kaXY+DQoJPGRpdiBpZD0iZmllbGQiPg0KCQl7JG1vZC0+TW9kTGFuZygnZmllbGRkZWZzJyl9DQoJPC9kaXY+DQoJPGRpdiBpZD0iY2F0ZWdvcmllcyI+DQoJCXskbW9kLT5Nb2RMYW5nKCdjYXRlZ29yaWVzJyl9DQoJPC9kaXY+DQoJPGRpdiBpZD0idGVtcGxhdGVzIj4NCgkJeyRtb2QtPk1vZExhbmcoJ3RlbXBsYXRlcycpfQ0KCTwvZGl2Pg0KCTxkaXYgaWQ9ImNvbnRyaWJ1dGUiPg0KCQl7JG1vZC0+TW9kTGFuZygnY29udHJpYnV0ZScpfQ0KCTwvZGl2Pg0KCTxkaXYgaWQ9ImFib3V0Ij4NCgkJeyRtb2QtPk1vZExhbmcoJ2Fib3V0Jyl9DQoJPC9kaXY+DQo8L2Rpdj4NCiAgPGRpdiBjbGFzcz0iY2xlYXJiIj48L2Rpdj4NCiAgPGRpdiBpZD0icGFnZV9jb250ZW50Ij4NCgk8ZGl2IGlkPSJnZW5lcmFsX2MiPg0KCQk8aW1nIHNyYz0iZGF0YTppbWFnZS9wbmc7YmFzZTY0LGlWQk9SdzBLR2dvQUFBQU5TVWhFVWdBQUFXUUFBQURJQ0FZQUFBRGZzcHNCQUFBZ0FFbEVRVlI0bk8yZGVaUmtWWlh1VDFVeFZZa0NRbElhRlNTUkVUZk8vcjY5THdXdEtNNkNyWWcweUFLN3RWVlFGSlh1dGxWUVcrWHBVMFJYdDRvS3ZNYmgyYlF6WWo5dDdWYlJwL2pzcHozWU9HQTdJU2hEd1dPcWVaNm45MGRFU2xGVVptVkUzQnYzM3NqOVcrdGJyRW95NDU2Nzk3bGYzanpEUGlFNGp1TTRqdU00anVNNGp1TTRqdU00anVNNGp1TTRqdU00anVNNGp1TTRqdU00anVNNGp1TTRqdU00anVNNGp1TTRqdU00anVNNGp1TTRqdU00anVNNGp1TTRqdU00anVNNGp1TTRqdU00anVNNGp1TTRqdU00anVNNGp1TTRqdU00anVNNGp1TTRqdU00anVQMHk1d2tTUTZ1MSt2emkyN0lOTXdwdWdIT1FNeXIxK3Z6RzQzR0lVVTNaQ2JVNi9YNXJ2NlVKTW5CUmVldmFzd0JjTEtSMXhqbEhsTnVVK1Y2STlZb3NVdFY3ekx5R2pLK0tCUmdoTUNpSTBtNVNGWC8yUlQzR3JIRGxOdU4yS0dxZDVIOHJJaWNGa0k0YU5odGMyYk1nU3J5UXBMWG1HS3BFWnRNdVZhSmRVcnNNdVhOcEh4a1ltSmlZZEVORFNFRUVUbVJJbjlueWdlVTJHWEVHbE91ZGZVdVZhNVhZcGVTdnlYdzRSampFNHZPYjJreGtWTk11ZDJNOTVoeTkzUktqY3RNdVkza3E0YlV2QU5VOVZvamxwbHk0L1R0MDlWS3JEUHltaUcxemRrUFkyTmpoNUk4T3pYN3Y2bHhreWxYN2ErUG1YS3RtYTVTYlo5VVJKdUI5aG1xV0s2cUsyZlFWbGNmVXVYOVNpNFJrY1ZGNUxpMHFITHJEQitTdmJVaE5iMTk4ZUxGajhpcmJRRE82YmF2dDJRVFcwMjUyY2lMODJxYk16VXh4cU1NT0YrVlArdStWZTduRittVVdxM0FwMElJQnd5ajNVbVNqSm5welVxc0s5cXdab3M2TDFENDlERHlXM2JtbW5KM2FqcG9VRGVReWVQR3g4ZVB5S3BoSXJMWWlGdU4zRFJZMi9SMm9QM21yTnJsVEUycjFUckd5SXROOVhaVnJsUmlTMVlQYldyY0ZFS1ltMmY3VmVTRnFlblNvZzFxOWdyM0prbWllZWE0dEN3bTA5UjBRNVlCemRLUWpieXlPMGFjUmR0V2tmTFJyTnJtUElpSUNDbnY3UXhqWVhscXpDcG4rOUpxQUkvUDZWWU84cmZpNHBXYWJnaXpjYUplZ1h1ekRxWVNLMktNaXdadG0wRytuSnB1ejdSdHlwV2tYSkJGN0dZN1pQSTRJejlxeW8xR0xDTmsxN0FlV0ZXdUhCc2JPelRyZThyeWJkNDF1TExPYjZraCtkbmNna25jbVNUSldQOXRrNDhxc0R5UHRxWEdaVW1TMUxPTTVTeGhuc2I0ZEpKZlRGVjNFMWhSMUlQYUhWNjdPY3ViVStYNm9nM0k5YkFjYjhzeXg2V2wzVzZma09lZlpxcmNDc1IzOWRNMmN1SllKWmZrbW5ES0hWbkhkQlNwMSt2enlYaTZHYjdkZlh0Y1hmU0QrcUN3SE1CTHNyaFBWVG1ydS9LakJQZmwya09yUlZxblpKSGpVbU9xZCtjZFRDV1h0RnF0WTNwdG15cmVuZUc0OFJSdHczMXBpalB5aUczVmFUUWFod040c1NwdlZHSmRtZDhjVTlQYnM3am5mbGJ3dUlhbTdXR1V4NU8xM1Q0cE5YMGc5MEFTbTRCNFNTOXRHeHNiTzlRMG42R0t2WldTLzVCWGpLc0dlZXhqR2VOZm1PcHZUTGxLaWMwbGVCRDNLeVdYQUhqQllQY2V6N2IrbG51NmhpTGNDK0RrakxwNitTRGx5cUVGczhjM0dCRTV6WFFJdnl3NldsMnIxUmJrRmVleWt5UkppNVIzbU9KZUpWWW9zYTM0aDY4UFVkNDZTQnlNK0hUaDkrRGFUNDVIZUlPWEtuODNyRUFxc2E2WHZldUFYRDdFdHEySU1TTFBXSmNOQU1jWjVZck9KZzBzTitYT3doKzJBVVh5VjRQRXhKVFYvRVUwcTRSN3Mzb0dTc2N3QTVtYVBrQk9IRHZUdGluNWcyRzFUWWt0Zy82NVd3SG1rTW1UelBDWjFIUzdRb1l5SERSczlSdWNScU54aUpWNGpOejFlMjBMb3ppTzNHZzBEaG5td3ZmVXVLemRibk9tN1ZQeVY4Tk1OSWtQNXhudmdqZ29KWjlqaHErYmNydU4rUGlvS3RmM1cwR3MwV2c4cGx1VHBmRDdjT1dUNDFKVHE5VVdXS2ZxMG5BQ0NWa080TGladHMrSVc0ZVphQTQ0L2xnV1JPU1JRUHNGU3Y0Z05kMm9sS0hsdUdncHNhN2ZzcDB4eGtXbThHM1NaUmV4WmlUbmUwcHZ5S3IvTnNRazcxRFZDL09NZDU0a1NUSkdrUXRTd3k5TXVUbzE3YmR3VCtYVmJ3ekh4c1lPN1JZOUt2d2VYRk5MaVYxWlBqdWxvZXlHcktxZkhHS1NWd0E0TmM5NFowMnoyUnhYNE0xS0xsRmloYStmNVc1VERMUVd1VnQvdVFUMzRacEtxbnBYVnM5UXFTaTdJUjlIUG1OWWIzcEszRmVGTGRReFJpamlYeXV4UWlITDg5NDBVeldSdUhxUStBNXpJdG5WcDBaMTJWdlpEWGxpWW1LaEtZZXlEbG1KZFhuR2VoQkU1RVFGL3FjcE42dGkrVEFMOTFSSnFsd3BJaWNPRXVzVU9LZDdZa25oOStONnVGTGpzdTdwUktOSDJRMDVoQkJJM3BCNzI0aE5aRHc3cnpqM3dUd2dlYWFxZnNtMFl6UkZQd2dWMGFvc3p1SHpZWXRTYXpTWHZJVlFEVVB1dmlYbjNFWmRWZlNocmJWYWJRR0FNNVg4cm5WT05mSEpwVjc2Rm1XdHFyNCtpMXdBN1RkWGRxZmlDQ3MxM1dqQXE3UEljU21wZ2lHSEVBSXA3OC90cllWWVJzcGI4b2p2L2hnZkh6OUNWYzQxdzArMGs0ZE1Ed2VZVGNxcXNOQWtYcGkrZkVxTm8xMlZzU3FHSEVJSXByd3Rod1R2TU5WVldjZDFPa1NrcHNEcmxQeHQ5MGlqU2hUdUtibTJoUkRtWlprbnNwVjJEOUF0K3Q1Y0hXM0k4NXpPVWxBbFEyYXoyYmFNNnd5a3hudXlqdW0rYUxWYWlRTHZVdVg5M1pvUi91ZHdSaUp4cDRxY20wZmVGTGlrazdQaTczTzJLOGRqdXNwRGxReTV5N3lNbHNGdFUrVS9aUmJJZmRCc05nOGpjWFVudmxpdVJPVUw5NVJOcXJ6THpFN0lNNDlrL0FzLzVMVEFIQk1yek96UjlYcjkwWG5tdVJSVTBKQkRDT0dnN3FxRHZveFpsU3RUNDQ4ekNlQVVBSGliRWl1eVBnUFExUkVoVzB5NU9jYjRoRHp6T0luRitNVHVDU21lenlGSmxWdU5ja2NXNTNGV2hvb2Fja2lTNUdBQUY1cmlYcHVoTVhkTi9HWUFUODRpZGxOd29LbmU3dXRZYzlOR0piWW84S21ROFpqeERKaEg0QXRtZXJmNWtGTitJallwdVlTVXl5WW1KaFlPT2NmRlVsVkRuaVRHZUpTUkY1dnBiV1pjbzhyN3RUTkd1Nm83VExEQ2xKdFQ4bk5wbXUrMmFKTEgyaXl1SDVIbkEycW1xMHg1c3lyK05nemZpQjhDZ0FZWlg2YktHMDI1dHR2Zkh1ak1EYmg2VmFlNm5qNWd5clZtdkVNVi82M1piSTRYbWVQQ3FMb2g3MG05WHA4ZlkwU004V2tBVGhhUkU0ZjVHOVpLZGVCbnRhWEVPaVhXa2ZnaEdmKzAwV2djUHF3ODlrS2owVGhFUkdveHh1TkZaTEdyTjhVWWo5Y2tNUUNOTERiMFZKNVJNdVFpNlN5Zks5N0lxcXpVZExVcXQ2ckt0elRHNS9rRDZzdzYzSkFIUjRFMytaaHhuLzJoYzNiZkxqTmNGMk44V2doaGJ0SDVkSnpDY0VNZUhQTUpubDRNZUdkM0hmWUdJNi9XSlBtRG92UG5PS1hCRFhrd1NQNlZHL0wwNml6OXczSXpYYXFLZHdQTldIVGVIS2VVdUNFUGhvM0FLYzI1NUpuWTNGMkhmVHNwRjFXaHpyVGpGSTRiY3Y4a1NUTG1aVEgzeUsxeXZSblhLSGtUZ0pjRGk0NHNPa2VPVXluY2tQc0h3TW5EakYwcDFTa1J1dEZVdjZjcVp5MWN1SEMwaTc4NFRwNjRJZmNQRUY4OUcwL3VZR2V6emM2VStJcUluQkpDT0xEb1hEak9TT0NHM0Q5R3ZxTm9jeHlLQVVOMm1XSjVwN1lBcnhsVy9RakhtWFc0SWZkUGQ0VkY0WWFaaTRnZDNWckFxMGg1ZjVJa1duUzhIV2ZrR1JWREZwRVRHZU41S2ZuM0tmbDlBMzVpaG44aGNIV2E0cHhXcTNWMDF0Y2s0OW5XWjhXNU1rcVZXeFZZcnNxN0RIZ2JnRWJXTVJzbEFEeEZnWGVuNUZlTi9MR1NON2w2RTRtZm11SGZWZlZhQlM2TU1TS0VjRkRSdVMyTXFoc3lZM3lSS2RlcThpNGx0azVoTk90TnNUUTEzSkttT0NlcmE4Y1kwU21NVXJ5WjlxdlV1TWxVVnhQNEpZRFh6THJxV2oxU3I5Zm5LL0FoVSs3MDAwU3lsUks3T2lmb2NLMlJIdzRGRjVFcWhLb2FjcXpWamxKeWlmVjRCaDJCKzVUOExwazhMb3Y0cGFaVlBBTnZyU3JYRytUZlZlU0ZTWkk4S290WWpEcUsrQ1pWcnZlREJvYWk3YXJjQ2lSbkZwMzNvVkkxUTA2UzVPRHVLUndER2FFcWZ4MWpQTDdaYkI0MlNQek04TzBTZE40WlNGZVpjbHRLWG05bXowMlM1T0JCN25zMjBXZzBEamZ5am94T3FuSDFvTTdhZG53bXpKWmhqS29ac2dIblc0WmxMazg2NmFTQjNnNDd3eGI2UU5FZGQ5L0NjbFB1VENtZkEvQ1U0SVY3K2tMSlgrVjI0cmxySnRwTzh2dEY5NE9oVUNWREpubE5EanZqVnJWYXJXTUdpYUZCdmx5RzljaEs3RFJ5bWFxdVR5Rlh4UmlQSCtTK25CQlV1VDQxTGRxUVpyMVMwKzJwNmRLaSswUHVWTVdRRzQzRzRhYmNuRXU3eURzR3JiVlE0TGppdHU0YTRmc05lR2VyMVVvR3VRL25RVWg1aS9rWmVxV1JFcHRWNVlWRjk0dGNxWW9oMjRCanh2dEo5RTRqUHp0SUhKTWswZTRRd1pBNkpsY3ErVnNBcnhPUjJpQnRkeDVPcTlVNnVyTTZwM2dqY3UwcExCL3AvbDRGUXlibEEzay9IS3E4ZjlDM1N4VjVZWTd0VzIrZE04ZCtyQ0xuem9vajBRdEV5WnVLTngvWEZNL0NYVVgzajl5b2dpRVBZMElsTmQxdGhxOFBHczk2dlQ3ZmpHdXlhUlBYbUhJenlSc0FuRkdyMVJZTTJqNW4vd0E0emhSTGl6WWUxNVM2dTd1QlpQUW91eUVEZUx3Uzl3MmpiYW5weGl4aU9qWTJkaWpKTDNZcm9mVVdIMkpGcXJwYlZiOEU0T1F3R3hmSEZ3eUJMNVRBZEZ4VFA2ZmJSZHB2TDdxZjVFTFpEWG5JRXl1cnlHTWZtMVZzMiszMkNhbDExcThxc1dYZm5ZczdyTE9NYjdPcWZGeEVUc3pxK2s1L2REY2NGVzQ4cm1rRS9LTG9mcElMWlRma2xMeCtXRzFMVFRlS3lMT3lqbkc5WHArdk1mNmhxbHliRWo4MDVjMUcrYmtaL2hIQVgyYjVTOEFabUxtcTNPY1dmRmVwdExQb2pwSUw1VGRrL0hLWWlRYnd1anpqN1pRYllOR1JCRmFVd0hCYzAwaFYxNC9rYnRPeUd6S0pXNGVhYk9CdGVjYmJLVGN4eGtWVkx4ZzFTN1IySkNlNXkyN0ladnFqb1NZYWVFMmU4WGJLVFl6eHFHR3RKM2NOcE0xaEZDZTh5MjdJQkQ0OXhDU3ZCWEJxbnZGMnBtVU9nQWFBZDZycXY2YUdXOHowdHRUd0gwYjVDSURuRHVHdGFKNFMrZXdJZFdVbVZhN011UjhVUTlrTkdjQkxwbHFoa0xWUzR6SS9ybjY0TkJxTlF3QThsOFEzVExsZGlYWFQ1R2lqRXV1TXVITXhtVW41MUgyUm10NWV0T0c0cGhlQnIrU1YvMElwdXlHM1dxMWpoamltdHlIUFdEc2Q2dlg2bzFYa3BhcThVWWwxZmUzQ0pKWVorZG14c2JGRHMyNmZrZS9wTGtjczNIaGNENWNTVzJLTXo4NDY3NldnN0lZY1FnaXF2RC92ZHFYR0hhUjhJSzg0ejNaYXJkWXhwRnlreXQ5MTZuQU1QaXhBeUs3dW42NlpqaVcyV3Exa1dKdVJYUDBweTN5WGlpb1ljb3p4MmYzc2V1dEp4bnQ4dUNKYmtpUlJJOStueEFwVExNL3pyVFByRFRXbThwdWlUY2YxY0NteFUxWC9WNWE1TGhWVk1PUVFRbERsalRtMmE2TUJYOHNqdnJPTXVVRHlaQktmN215dXdQSWgxb2xlZmNJSkp4eWUxWTJJeUNrMjdDV1hydjFLaVYxWjViaVVWTVdRUldTeFVlN0lLY25yOG9qdGJLQzdDL0Y1U243VGxOdTZSMFVWOU1BaTB3TG1wRnhtUkw1L21ibG1MbUlaeVZkbG1lUFNVUlZERGlFRU16c2hqelpsSGROUkIxaDBwSXFjYTZvL1VtTGRmbFpHREUycTNFcktaVm5lcTZwKzNyZFNsME9xY2xhV3VTMGxWVEprWU5HUnJWWXJ5V3JWUldxNlZJNDY2cEVoaEFNeUR1dkkwV3cyeHcxNFkycDZPNEVWWlYycnE4U0tScU9SMmRCRkNDRVkrVVUzNWVKRXlEb0RYaU1pa21WZVMwbVZESGtTMWZaSnFXbmZreTZxM0pxYXJnWVdIWmxWSEVjUnNwV1M4bjVWcmpSaVdSV1dnblhma2pOZkxTTWlyekJsU1ErekhXWHA3NEQybTdQT1oybXBvaUdIRUlJbXlSOTBLc0hwM1RPK05yR3I4OER5NHBFc1RESTRjd0U4eFF5ZlNVMjNHMUhKbWc2cS9IVWV3U0g1SEZQZVJwUmppR2EwaGFXbXZEdFZQVGVQWEphV3FocnlKR1Q3T1NuNWZWT3VUVTJYN3VOUHl3M2Q1SzVWeFNWaEZQZS9EMEM5WHA5UHh0TlY1VnVkMkJVNUtaZVpWaVZKOHFpOFlpWWlweGx4cDZuK1AxT3VIc2FKTmlNdllvZENscWVtRDVqcTNTVC9QSy84bFpxcUcvSWtqVWJqRUJFNTBRem5LL0J1bzN5QUltOFhrVDhXa1ltc3IxZGxZb3hIQVhpNUdYN1M5MDY1TW90WUppS0w4NDRqT1hHc3h2aDBBSzlSNEc4QXVkelZ1OHo0WGpLK2xqRStPMG1Tc2J6elZtcEd4WkNkNlFIUVVPRE5SdHpaM1NrM2xQb2dCUm55R3NaNGV0RXhkNXllY1VNZVhRQWNCOGpscWVscVV5dzNvdlNUY3BuME1lVjZBR2NXSFgvSDZSazM1SkZpbm9nOE5hVjhMalh1VU1pc3JPdWJHdGNBZUVyUnlYQ2NubkZEcmphMVdtMEJnRE1JZktjN0RERUtrM0tEOVRIbFNoR3BGWjBieCtrWk4rVHFrU1RKbUFIbkszbVRLZGVPM0tUY2dFcU5tNEp2OW5HcWlCdHlOUURRSVBsV0paY29zV0trSitVRzdXT3EvMXgwdmh5bkw5eVF5MHVub0JLdk1PWHFUa0gyMlRFcE40aFMwMVVHdktUbzNEbE9YN2dobDRwNUd1UFRWZlZhVSs3MHd6YjdFTEdqNkNRNlR0KzRJUmZMd29VTEh3SGdUSkkzS0xHbHMwU3RCTVpXUVNteElnWE9LRHFuanRNM2JzakRwOVZxSGEwcXIxRGx6OHk0eHBRYmlqYXp5b3ZZWWNDM2k4NnQ0d3pFS0JteWlOUlU1RThZNDJzVnVJVGtud040YnF2Vk9pYVA2L1ZDakxHcHdDV3F2RXNoeTMxU0x1TitwZHhhUUZybmRUYmY0RlF5bnVmcVR3cThXMFJPaVRHaWdCeVdpNm9iY3F2VlNraGViOHFOMWxtRCs1QzN6ZFM0SmpWZGFzb05xcmg4bU9aY3I5Y2ZuYWI4bUJMclVxTlB5dVhSbjRpZEtmSExack41MkxEeUN1QTRnM3hOaVMxSzNFZGdYYmVvMVU1WFg5cXVsTFZLM0tmSzlVcCtjOWFhYzFVTnVkVnFIVVBnQzlaYmpkcHRwcnc3cGJ3aDcvS2Jabmlua2N1NjF5emN1RVpVRzFUMWszbm1jVStTSktrcmVaTXFWNWJnM2tkYnhMS1UrRVlJWWM2dzhsc0txbWpJQUJwS0x1bjdBRTFpMHg3SHgyZWE4RWFqY1lncTd6SmlVK0dkZWtTVkdqZVpjalBKWjJTWnUra3d4SGQyVHM4dS92NW5sWWdkWkx4NFdIa3VuQ29aY296eHFQSHg4U05NbWRsS2hFc3Z2WFJ1VnJGTTA3UlZsdlBsUmsxS2JPblU1dEJWRkxrZ3E1ek5CS1A4UE1zKzUrcFpEd0I0d1RCelhoalZNdVRtMHpKdmsrbmQ1TEdQelNLV3ZtNDQ0NzZpWEo4YTE1anBmNm5LSzF1dDF0Rlo1S2tYU0xuQWxLVThQM0NXNlFGVitmeXc4ejkwcW1MSU1jYW5xZkxYdWJUTDlOOEdqYU9mR3BHWlZwbHlzNUxmVlpXenhzYkdEaDAwTi8xQ2tjdk16OUVya3piRUdCY1YxUitHUWxVTVdaVTM1dFltWW91cXZLTGZHRkxrRFQ1bVBJaXdYSWxkWnJpT2JEOGpsT0NZcmJHeHNVUFR6aHJ4RXNUSHRZZTJoMUdlNkt1Q0laTjhXV3JNKzhETnphR1BDbUgxZXYzUlEyamJhSW5ZWWNabHFYR05rVmNNNDdpbFhpRnhkZUZ4Y3UxTDJ3ejRXdEg5SXplcVlNaW11RGZ2ZG5WT1dlWjdlbzBmR2M4ejVmWVNkTlJTcTd0bWQ0V3EzbVhBMjhwOHpxR0kxRXpWaHlwS3F0UjA2Zmo0K0JGRjk1TmNLTHNoa3hQSHF2TCtZYld2MS9qNWpydHB0Y0dNYTFUNU0xVjVSVlVPc0ZTUmw1ci9raTJ0bEZoSDhyeWkrMGt1bE42UVkzeVpFa09aNVZibHlsNU1JMG1TTWZyYTFJY29OVjJ0eEJhU053QTRjK0hDaFkvb3IyY1doNUwvV1hRY1hkTkxsZDh0dXAva1F0a051VnVLY2xpSlh0dWRWSm9SQUU3MWlaOU9UbzNZb1NxZmp6RStMWlJnVW00UWlvNm5hd1o5VHJtKzZINlNDMlUzNUpUNDZiRGFSc2d1QTg2ZmFkdkkrTnErZHd0V1djUU9JNWFaY2pXSkQ0OVM5Yjd4OGZFamZHdDArVFd5eDNTVjNaQkozRHJVWkFOdm0ybmJqSHhIMFIxemFIbWJuSlFqbDVCOEs0QkdYeDJ1NU1RWUY1bGlhZEh4ZHUxWGEydTEyb0tpKzB2bWxOMlFoL21HYk1yZEt2TDZtYmFONUYrVm9HUG1Gd3ZsZWxXdUpmRlRBQyt2eXFUY0lFeE1UQ3owWll5VjBNWVF3b0ZGOTVmTUtic2hHM0RkRUpPOG9aYzk4MEQ3SE91VS9TeTZjMmFwVmFyY2FvWnZrKzAvR3NtM2tHbW8xK3Z6ZFlqUGc2dFBFWnVLN2l1NVVIWkRCdUtyaDFWSFdKWDNhNUxZVE51V0pJbDJheTBYMzBFSHpFbHEzSkZTUGljaVR3MGhaRlp3cVlxWUZ4SXF2VlQxeHFMN1NTNlUzWkNUSkdrTnEreWhFbHRDajJaa1ZTdzhRK3d3eGZMVWRCVWdsNC9TcEZ3V0RIbGxqNnQzN1J6WmtweGxOK1FRd3J5aDFZbXczcmRrbXVuM1N0QkI5eDkzWW9zcVY2YkdPd0M4aVp3NHR0ZDduUzBBeVROOVlxKzhVbkpKalBHSlJmZVRYS2lBSVFkUzNtNDVqOVVxdVFUQVUzcU5IOWxLbGJpdjZFNjY3M3ZDT2lYWG11RW5KRjhHTERxeTEvdWJyZmh4VytWVmFucDcwZjBqTjZwZ3lDR0VrQnB6ZTBBSTJVWGdDLzNHMEF4Zks4OTZaRjJseXEycStpMHlubDZ2MStmM2UxK3pHWXBjcE1pL2hvcXJONlhHWmFvNjQzbWV5bEVWUXdidytMd1c3S2VHV3dZOFZIR3VGWHAySHBhYmNodUpUd1BKazhNc241VExDaVYvb01UT29rM0kxWkVxdHhweGRkSDlJbGVxWXNnaGhLQXgvbUhtYlNLVzliS3lZaXBpak1jUGE4VkZhdHhoeERJbFZsRGtmVm0wMzlrM3FmR2VvbzNJMVpFcWYxZDBmOGlkS2hreW04MjJBaGNTMloxYkp5SzFyR0twS3VmbUZqZGlNNEVWcWVudEJyeXgyV3lPWjlWdVozcDBDT1ZmWFZNck5kMU44dnRKa21qUmZTRjNxbVRJa3dEeG5ZVGNPVkJiVEc5anE1Vm1YVmUxWHEvUHorNmdVMTJ2eERwVjNxZ2k1L3FrWERFQWFCRDRZV3BhNExEVXJOVUdKWDlWZEI4WUdsVTA1QkJDSU9VTnFla0dVMjdvc1EycmxQelBQTmZlMW1xMUJXWjZXNTkxbkZlbHB0dFQ4bm9UT2EzUmFCeVNWenVkM2tpSnIvaXA0c05SYXJwYmxTc04rSmVpOHo1VXFtcklrNUR5QVNWMmRjMXZxZ21ZemFwY3I4UjlKdktzcks2OVAxVGtGZDJ6QU5kT1ZjZytOZTVJVFZkM1YwWjhra3llRkViNXpMQ0tNejQrZm9TUzM3VE9mRUgxTmdXVlhKMWZlTGpYVFA5ck50Uk9lUmhWTitSSnlPUnhwTHlGeERkU3d5OE11TVZNZjJUa05SUzVvTWhDNlVtU1BBckFHU25sWTZuaFB3eTR4U2cvVG9sdkFQR2RyVmJybUtMYTV2VEh4TVRFUWhFNXhReGZUb2xmZGlyaHVmcFJhcnJVZ0ZzTXVFNVZYOXBvTkI1VGRINExZMVFNMlhFY3AvSzRJVHVPNDVRRU4yVEhjWnlTNElic09JNVRFdHlRSGNkeFNvSWJzdU00VGtsd1EzWWN4eWtKYnNpTzR6Z2x3UTNaY1J5bkpMZ2hPNDdqbElSaEc3SXBWeHZ3QWhGWjdISzVYSm9rTmpFeHNUQ0VjR0RSZmxnNFEzOURKbmFaNmVyT0tSY3VsMnUyS3pVdTY1NHN2OEZVdnFjaXJ3OGhIRkMwTnhaQ0FXL0lMcGZMTmJVNnA4eHZCdHF2QzdQdE9ESTNaSmZMVlVZcHNWV0pMU0dFZVVYNzVOQndRM2E1WENYWGRoRjVaTkZlT1JUY2tGMHVWOW1seEM2Zy9lS2kvVEozM0pCZExsY1ZwTXFWaXhjdlBycG96OHdWTjJTWHkxVVZLZm5ib2owelY5eVFYUzVYWlVSc0lubDIwYjZaRzdWYWJVR3E5Sk4wWFM1WEphVEtsVVg3Wm03VWFyVUZxWEZUMFVGMnVWeXVtU2cxcmhHUkU0djJ6bHpvRGxsc0t6cklMcGZMTlZPcDZpZUw5czVjcU5WcUM1VFlWWFNBWFM2WGE2WktqY3VLOXM1YzZMNGhGeDVnbDh2bDZrRTdpL2JPWEZpMGFOR1JKUWl1eStWeXpWekVtbHF0dHFCby84d2NrdTNDZyt0eXVWdzlTSlhya3lRNXVHai96SU41UlFmWDVYSzVlcEVTdTRvMnp0d3c1YzZpQSt4eXVWd3oxVWp2MkZQeXQwVUgyT1Z5dVdZcVVxNG8yamR6ZzR3WG03OGx1MXl1YXVpQkdPTVRpL2JOM0xqMDBrdm5saURJTHBmTHRWK3A4cTZpUFROM0ZQRk5SUWZhNVhLNXBwTXExOGNZankvYUw0ZEMwY0YydVZ5dWFXWDJtYUo5Y3FnVUhuQ1h5K1hhcDNCdjBmNDRkSHc4MmVWeWxWQWJWTldLOXNkQ1VKR3p6RmRkdUZ5dWdwV2E3amJsN2hEQzNLSjlzWEJNZVZ2UkNYRzVYTE5XcTB5NXJXZ2ZMQlVxOGllcGNZY1Mvc2JzY3JueWwvRWVVMjR6a1djVjdYK2xSVVZlcWVSTnFlbjJ2UVBZcmFlOHpaUWJySE0rbjh2bGNzMUlTcXhUNVZaVDNKdVNmeThpcDRRUTVoVHRlWldpMld3ZXRtalJvaVByOWZwOGw4dmw2a2UxV20xQm85RTRKUGdZc2VNNGp1TTRqdU00anVNNGp1TTRqdU00anVNNGp1TTRqdU00anVNNGp0T2wxV29kMDJnMER1LzM1NU1rcVlkOWJCQm90VnJIN0ZVVGQxNmowVGg4VW1Hdk5hMWsrNC8yK0x6ZlU2L1g1d09ManV5M2ZZN2pPRlZnTHNrYlRMbFJsVnRGNVBuOWZJZ0NGNDZOalIyNjk5ZUI1SmtLWERqNTczYTdmWUx0c1hPVW5EaDJ6KzhuOElVUXdvRUt2Szd6OHpnMWhCQ1NKRkVST2EyZnRqbU80MVFDQUkxSll3UVdIVm1yMVJhSXlQUEplRFlwSCsxdWpRMGlVbFBnZzZUODl5UkpEZzRoekZIZ1FnS2ZFSkduaXNnZmh4QU9ZclBaQnVSeUJmNjYwV2djUHBVaGR6OGpoTkF4VzBDdVVwRS9VNVhQaHhEbUFIZ0oyWDZPVVg2dXdMdGlqRTBnZVhLM3pTOG01U05BKzV6dXY1OHJJczhuY0RVWnp4NXFBQjNIS1RmTlpuTWNRS1BaYkI0MnhiY2NSTVpYMWV2MStWbGV0Mk9xMDE1M1h4eEE0cGRLL29wc1B5ZUVFQUM1Q29ndlQ1TGtZQ1cvbVNUSm8xVGwyaVJKeGdDY3FzQWxaSHlSQW04S0lSdzROaloyS0lGUGpJMk5IUnBqUEdwc2JPeFFFWGtXRU44NDVSc3k4RFZWK1ZJSUlaaksvMjQybTRkcHUzMFNpZStFRU9hb3lyVWhoR0RBZFoxN2F6OURSZjRNU0o1SnludEQ1eGZDaDJLTVQ2RElaYVJjRkVLWVo4RFhzNDZyNHpnVlJwWHJUYm1iSW0vZjEvK1BNVDdCbExzbjN6NW53RHlnR1dkdzNhMmR0MTE1eStUWEZpNWMrSWhXcTNYTWREL1hiRFlQVStCdlZMbFZZM3dlSUZmRkdCZUZFQUpGM3Q1cHIvd0drTXRKdVpLVUQzVCsrK0J3dzZRaEE4bVRTWGt2S1ZlUThwNnBESm1NcnlMamViVmFiY0drK1lZUWdnSC9HS1l4WkFVdW1UekZ1R3ZPRjFIa3NuYTd6YzczeVpXdFZ1dm9HY2JWY1p4UlozK0dIRUtZQytETUVNSUJNL2s4TW5rU3lSdG1jTjJIR1RKRkxpRGx5cWsvKzlqSGtzbmpRZ2dIcXZKZlNYa0hJRmUxMiswVFFnaUJ3TlZKa3JSVTVWc1B1UmJ3TG0yM1Qvcjk1M1FOdWZ0OTgyS01UNXpPa0NjbUpoWjJKL1VPVU1vL2hSQkNvOUU0aE9UMVlUcERGbm1saXB6VitWcjhVeFU1bHlLWHRWcXRwUE0xTjJUSGNmWmdCb1k4cjlGb1BDYnNaY2d4UnBEdFoyaVNXQWhoWHZmTGN6cHZtL3grbzlGNFRQZm5EcHJpdW5zYjhvRWtyeWZ3aVQxKzlpRXJJVFJKeklnMVN1d2ljYXVJVEFCeWxhcDh2RHRtL0hjaGhFREc4d3k0anBRckdlUHBTWkxVU1g1VmdRK0t5R20vTjJUZ1V4UjVud0lmb3NobE01blVJK1VkQks1VzRHOUorVnpZdzVCSi9vTUNsMDRhOHNLRkN4K2hLcCtueVBzTXVLNVdxeTF3UTNZY1owcjJaOGhKa3JSTXVidHJ2Q0hHdU1pQW42aHlxd0xMdXpXckh4Z2ZIeitDNUZlVjJObjkyblpUYmdmd2xDbXUreEJESm5HckVydTZCeFpzTitYMktjYVg1eVJKOHFqSmZ3QnlWWklrWXlMeXlMM2FmZkJlS3lubTd2MDlJWVN3cjYvdGorN243cXVzNDV4OXJONTRTSHNkeDNHbXBGZERWcFdQbThyM0pvMnMyV3dleGhoUGYvRHo0di9vZDhoQ1ZmN1BkRU1XKzJMU2tIdjVHY2R4bkZMU3F5R1QvR0ozTW11S3p4dXVJWWNRRGd4K0NvVGpPS05BcjRZTTRHUWxOaXY1WFkzeGVXR3ZQOTBMTUdUSGNaelJvRmRERGlFRW9Ca1YrSlFTVzdxVGE2YzkrSGx1eUk3ak9IM1JqeUZQTWpFeHNWQ0JUNWx5ZTVJazJ2azhOMlRIY1MzSGhsQUFBQURaU1VSQlZKeSttRFJrQlQ0SW9MR25RZ2dIVG1mSVhlYVk4Z0VBNTRjUUFpbFhLUG1ER1Z6MzRldVFpZStROHJFczdzdHhIS2R5VEJyeXZpUWk4dkJKdlhoZWQvZlpnU0dFQThoNGRuZDUyK05EQ0FIQVg1cHlZM2MzMnR3OTYwRHNkZDE5R0xKOHpCUzNkMWROSEJRZVhOL3NPSTR6K3ZSdXlQSmVWVzd0cmpmZWFjclZrOVhPUWdnaFNaSkhtY3FQVExuYmlCMVRWVDNibHlFblNkSlNjc25rWnplYnpmSDhJK0E0amxOaEdvM0dJYTFXSzBtU3BCWDJ2YVY2am9oTTdLOHV4UlRNWTdQWjloMXNqdU00anVNNGp1TTRzNDMvRDdCRWZZVG8rYWk5QUFBQUFFbEZUa1N1UW1DQyIgYWx0PSJMSVNFIExvZ28iIC8+DQogICAgeyRtb2QtPk1vZExhbmcoJ2hlbHBfZ2VuZXJhbCcpfQ0KCTwvZGl2PgkNCgk8ZGl2IGlkPSJ1c2FnZV9jIj4JCQ0KCQl7JHVzYWdlX3RleHR9DQogICAgPGRpdiBzdHlsZT0iZmxvYXQ6bGVmdDsiPg0KCQkJeyRtb2QtPk1vZExhbmcoJ2hlbHBfdXNhZ2Vfb3B0aW9ucycpfQ0KCQk8L2Rpdj4NCgkJPGJyIHN0eWxlPSJjbGVhcjpib3RoOyIgLz4NCgkJPGRpdiBzdHlsZT0iZmxvYXQ6bGVmdDsgZGlzcGxheTogaW5saW5lOyI+DQoJCQl7JG1vZC0+TW9kTGFuZygnaGVscF91c2FnZV9maWVsZGRlZnMnKX0NCgkJPC9kaXY+DQoJCTxiciBzdHlsZT0iY2xlYXI6Ym90aDsiIC8+DQoJCTxkaXYgc3R5bGU9ImZsb2F0OmxlZnQ7Ij4NCgkJCXskbW9kLT5Nb2RMYW5nKCdoZWxwX3VzYWdlX2NhdGVnb3JpZXMnKX0NCgkJPC9kaXY+DQoJCTxiciBzdHlsZT0iY2xlYXI6Ym90aDsiIC8+DQoJCTxkaXYgc3R5bGU9ImZsb2F0OmxlZnQ7Ij4NCgkJCXskbW9kLT5Nb2RMYW5nKCdoZWxwX3VzYWdlX2l0ZW1zJyl9DQoJCTwvZGl2Pg0KCQk8YnIgc3R5bGU9ImNsZWFyOmJvdGg7IiAvPg0KCTwvZGl2Pg0KCTxkaXYgaWQ9InBhcmFtc19jIj4NCgkJe2luY2x1ZGUgZmlsZT0nbW9kdWxlX2ZpbGVfdHBsOkxJU0U7aGVscF9wYXJhbXNfdGFiLnRwbCd9DQoJPC9kaXY+DQoJPGRpdiBpZD0icGVybWlzc2lvbnNfYyI+DQoJCXskcGVybWlzc2lvbnNfdGV4dH0NCgk8L2Rpdj4NCgk8ZGl2IGlkPSJmaWVsZF9jIj4NCgkJeyokbW9kLT5Nb2RMYW5nKCdoZWxwX2ZpZWxkZGVmcycpKn0NCiAgICB7aW5jbHVkZSBmaWxlPSdtb2R1bGVfZmlsZV90cGw6TElTRTtoZWxwX2ZpZWxkZGVmc190YWIudHBsJ30NCgk8L2Rpdj4NCgk8ZGl2IGlkPSJjYXRlZ29yaWVzX2MiPg0KICAgIHskY2F0ZWdvcmllc190ZXh0fQ0KICAgIHsqJG1vZC0+TW9kTGFuZygnaGVscF9jYXRlZ29yaWVzJykqfQ0KCTwvZGl2Pg0KCTxkaXYgaWQ9InRlbXBsYXRlc19jIj4NCgkJeyR0ZW1wbGF0ZXNfdGV4dH0NCiAgICA8cHJlIGNsYXNzPSJjb2RlIj4NCjxjb2RlPg0Ke2xpdGVyYWx9DQogIHtmb3JlYWNoIGZyb209JGl0ZW1zIGl0ZW09aXRlbX0NCiAgeyRpdGVtLT5maWVsZGRlZnMucG9zaXRpb24udmFsdWV8Y21zX2VzY2FwZX0mbHQ7YnIgLyZndDsNCiAgey9mb3JlYWNofQ0Key9saXRlcmFsfQ0KDQogIHtsaXRlcmFsfQ0KICAgIHtmb3JlYWNoIGZyb209JGl0ZW1zIGl0ZW09aXRlbX0NCiAgICB7JGl0ZW0tPnBvc2l0aW9ufGNtc19lc2NhcGV9Jmx0O2JyIC8mZ3Q7DQogICAgey9mb3JlYWNofQ0KICB7L2xpdGVyYWx9DQo8L2NvZGU+DQo8L3ByZT4NCgk8L2Rpdj4NCgk8ZGl2IGlkPSJjb250cmlidXRlX2MiPg0KCQl7aW5jbHVkZSBmaWxlPSdtb2R1bGVfZmlsZV90cGw6TElTRTtoZWxwX2NvbnRyaWJ1dGVfdGFiLnRwbCd9DQoJPC9kaXY+DQoJPGRpdiBpZD0iYWJvdXRfYyI+DQoJCXtpbmNsdWRlIGZpbGU9J21vZHVsZV9maWxlX3RwbDpMSVNFO2hlbHBfYWJvdXRfdGFiLnRwbCd9DQoJPC9kaXY+DQoJPGRpdiBjbGFzcz0iY2xlYXJiIj48L2Rpdj4JDQo8L2Rpdj4NCnsvc3RyaXB9]]></data>
	</file>
	<file>
	  <filename>/framework/templates/HTML_Header.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[eyRqcXVlcnl1aX0NCjxsaW5rIHR5cGU9InRleHQvY3NzIiByZWw9InN0eWxlc2hlZXQiIGhyZWY9InskbW9kdWxlZGlyfS9jc3MvY29sb3Jib3guY3NzIiAvPg0KPGxpbmsgdHlwZT0idGV4dC9jc3MiIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0ieyRtb2R1bGVkaXJ9L2Nzcy9mb290YWJsZS5jb3JlLm1pbi5jc3MiIC8+DQo8bGluayB0eXBlPSJ0ZXh0L2NzcyIgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJ7JGdsb2JhbHNfY3NzfWxpc2UtZ2xvYmFscy5jc3MiIC8+DQo8bGluayB0eXBlPSJ0ZXh0L2NzcyIgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJ7JG1vZHVsZWRpcn0vY3NzL2JhY2tlbmQuY3NzIiAvPg0KPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPg0KPCEtLQ0KdmFyIENNU19BRE1JTl9ESVIgPSAneyRhZG1pbmRpcn0nOw0KdmFyIENNU19VU0VSX0tFWSA9ICd7JHVzZXJrZXl9JzsNCnZhciBNT0RVTEVfTkFNRSA9ICd7JG1vZHVsZW5hbWV9JzsNCi0tPg0KPC9zY3JpcHQ+DQo8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJ7JG1vZHVsZWRpcn0vanMvZm9vdGFibGUuanMiPjwvc2NyaXB0Pg0KPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0ieyRtb2R1bGVkaXJ9L2pzL2Zvb3RhYmxlLmZpbHRlci5qcyI+PC9zY3JpcHQ+DQo8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJ7JG1vZHVsZWRpcn0vanMvZm9vdGFibGUuc29ydC5qcyI+PC9zY3JpcHQ+DQo8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJ7JG1vZHVsZWRpcn0vanMvanF1ZXJ5LnNsdWcuanMiPjwvc2NyaXB0Pg0KPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0ieyRtb2R1bGVkaXJ9L2pzL2pxdWVyeS5jb2xvcmJveC5qcyI+PC9zY3JpcHQ+DQo8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJ7JGdsb2JhbHNfanN9bGlzZS1nbG9iYWxzLmpzIj48L3NjcmlwdD4NCjxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9InskbW9kdWxlZGlyfS9qcy9saXNlLmpzIj48L3NjcmlwdD4=]]></data>
	</file>
	<file>
	  <filename>/framework/templates/index.html</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[]]></data>
	</file>
	<file>
	  <filename>/framework/templates/itemtab.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[e2lmIGNvdW50KCRpdGVtcykgPiAwfQ0KICA8ZGl2IGNsYXNzPSJpdGVtLXNlYXJjaCI+DQogICAgPGZvcm0gaWQ9InF1aWNrc2VhcmNoX2Zvcm0iPg0KICAgICAgPGxhYmVsIGNsYXNzPSJwYWdldGV4dCI+eyRtb2QtPk1vZExhbmcoJ3NlYXJjaCcpfSB7JHRpdGxlX3BsdXJhbH06IDwvbGFiZWw+DQogICAgICAgIDxpbnB1dCB0eXBlPSJ0ZXh0IiBuYW1lPSJzZWFyY2giIHZhbHVlPSIiIGlkPSJpdGVtX3NlYXJjaDIiIHBsYWNlaG9sZGVyPSJ7JG1vZC0+TW9kTGFuZygnc2VhcmNoZm9yJyl9IHskdGl0bGV9IiAvPg0KICAgICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJpZCIgdmFsdWU9InskaWR9IiAvPg0KICAgICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJhY3Rpb25pZCIgdmFsdWU9InskYWN0aW9uaWR9IiAvPg0KICAgICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJyZXR1cm5pZCIgdmFsdWU9InskcmV0dXJuaWR9IiAvPg0KICAgICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBpZD0icGFnZW51bWJlciIgbmFtZT0icGFnZW51bWJlciIgdmFsdWU9InskcGFnZW51bWJlcn0iIC8+DQogICAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9InBhZ2Vjb3VudCIgdmFsdWU9InskcGFnZWNvdW50fSIgLz4NCiAgICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iZmlyc3QiIHZhbHVlPSJ7JGZpcnN0X3BhZ2VfbnVtYmVyfSIgLz4NCiAgICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0icHJldmlvdXMiIHZhbHVlPSJ7JHByZXZpb3VzX3BhZ2VfbnVtYmVyfSIgLz4NCiAgICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0ibmV4dCIgdmFsdWU9InskbmV4dF9wYWdlX251bWJlcn0iIC8+DQogICAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9Imxhc3QiIHZhbHVlPSJ7JGxhc3RfcGFnZV9udW1iZXJ9IiAvPg0KDQogICAgPC9mb3JtPg0KICA8L2Rpdj4NCiAgPGRpdiBjbGFzcz0icGFnZW9wdGlvbnMiPnskYWRkbGlua317aWYgaXNzZXQoJGltcG9ydGxpbmspfXskaW1wb3J0bGlua317L2lmfXtpZiBpc3NldCgkZXhwb3J0bGluayl9eyRleHBvcnRsaW5rfXsvaWZ9PC9kaXY+DQogIDxkaXYgY2xhc3M9ImNsZWFyIj48L2Rpdj4NCg0KICA8ZGl2IGlkPSJhamF4X2NudCI+eyogYWpheCAqfQ0KDQogIDwvZGl2PiB7KiBhamF4ICp9DQoNCiAgPGRpdiBjbGFzcz0icGFnZW9wdGlvbnMiIHN0eWxlPSJmbG9hdDpyaWdodDsiPg0KICAgIDxzZWxlY3QgaWQ9Imxpc2VfaXRlbV9tYXNzX2FjdGlvbiI+DQoJICAgIDxvcHRpb24gdmFsdWU9IiI+eyRtb2QtPk1vZExhbmcoJ3NlbGVjdF9vbmUnKX08L29wdGlvbj4NCgkgICAgPG9wdGlvbiB2YWx1ZT0iZGVsZXRlIj5EZWxldGU8L29wdGlvbj4NCgkgICAgPG9wdGlvbiB2YWx1ZT0iYXBwcm92ZSI+VG9nZ2xlIGFwcHJvdmU8L29wdGlvbj4NCiAgICA8L3NlbGVjdD4NCiAgPC9kaXY+DQogIDxkaXYgY2xhc3M9InBhZ2VvcHRpb25zIiBzdHlsZT0iZmxvYXQ6cmlnaHQ7Ij57JHN1Ym1pdG9yZGVyfTwvZGl2Pg0Key9pZn0NCjxkaXYgY2xhc3M9InBhZ2VvcHRpb25zIj4NCiAgeyRhZGRsaW5rfXtpZiBpc3NldCgkaW1wb3J0bGluayl9eyRpbXBvcnRsaW5rfXsvaWZ9e2lmIGlzc2V0KCRleHBvcnRsaW5rKX17JGV4cG9ydGxpbmt9ey9pZn0NCjwvZGl2Pg0KeyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioNCg0KdGVzdGluZyBzdHVmZi4uLg0KDQoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqfQ0KDQoNCjxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4NCiAgdmFyIGRvb21fcmVhZHkgPSBmYWxzZTsNCg0KdmFyIGFqYXhfdXJsID0gIntjbXNfYWN0aW9uX3VybCBhY3Rpb24gPSBhamF4IGZvcmpzID0gMSB1c3JfZnVuY3Rpb24gPSAnYmVJdGVtc0xpc3QnfSI7DQoNCmZ1bmN0aW9uIGFqYXhfcG9zdChwYXJhbXMsIGFqYXhfdXJsLCBzZWxlY3RvcikNCnsNCiAgJC5hamF4KHsNCiAgICAgICAgICAgdHlwZSA6ICJQT1NUIiwNCiAgICAgICAgICAgdXJsIDogYWpheF91cmwsDQogICAgICAgICAgIGFzeW5jIDogdHJ1ZSwNCiAgICAgICAgICAgZGF0YVR5cGUgOiAiaHRtbCIsDQogICAgICAgICAgIGRhdGEgOiB7IG0xX3BhcmFtczogcGFyYW1zIH0sDQogICAgICAgICAgIGJlZm9yZVNlbmQgOiBmdW5jdGlvbigpIHsNCiAgICAgICAgICAgICAkKHNlbGVjdG9yKS5lbXB0eSgpLmh0bWwoJzxkaXYgY2xhc3M9ImFqYXgtbG9hZGluZyBhamF4LWxvYWRlci10eXBlLXdpZGUiPjwvZGl2PicpOw0KICAgICAgICAgICAgIGRvb21fcmVhZHkgPSBmYWxzZTsNCiAgICAgICAgICAgfSwNCiAgICAgICAgICAgZXJyb3IgOiBmdW5jdGlvbihqcVhIUiwgdGV4dFN0YXR1cywgZXJyb3JUaHJvd24pIHsNCiAgICAgICAgICAgICBhbGVydCgiU29ycnkuIFRoZXJlIHdhcyBhIExJU0UgQUpBWCBlcnJvcjogIiArIHRleHRTdGF0dXMpOw0KICAgICAgICAgICAgIGRvb21fcmVhZHkgPSB0cnVlOw0KICAgICAgICAgICB9LA0KICAgICAgICAgICBzdWNjZXNzIDogZnVuY3Rpb24oZGF0YSkgew0KICAgICAgICAgICAgICQoc2VsZWN0b3IpLmh0bWwoZGF0YSk7DQoNCiAgICAgICAgICAgICBpbml0QWpheCgpOw0KICAgICAgICAgICAgIGluaXRBamF4RXZlbnRzKCk7DQoNCiAgICAgICAgICAgICAkKCIucGFnZW1jb250YWluZXIiKS5lYWNoKGZ1bmN0aW9uKCkgew0KICAgICAgICAgICAgICAgdmFyIGMgPSAkKHRoaXMpOw0KICAgICAgICAgICAgICAgd2luZG93LnNldFRpbWVvdXQoZnVuY3Rpb24oKSB7DQogICAgICAgICAgICAgICAgIGMuaGlkZSgpOw0KICAgICAgICAgICAgICAgfSwgOTAwMCk7DQogICAgICAgICAgICAgfSk7DQoNCiAgICAgICAgICAgICAkKCd0YWJsZSNzb3J0YWJsZV9pdGVtJykuZm9vdGFibGUoKTsNCg0KICAgICAgICAgICAgIGluaXRTb3J0YWJsZSgpOw0KICAgICAgICAgICAgIGluaXRTZWxlY3RBbGwoKTsNCiAgICAgICAgICAgICBpbml0RGF0ZXBpY2tlcigpOw0KICAgICAgICAgICAgIGluaXRUYWJsZVNvcnRlcigpOw0KICAgICAgICAgICAgIGluaXRDb2xvckJveCgpOw0KICAgICAgICAgICAgIGRvb21fcmVhZHkgPSB0cnVlOw0KICAgICAgICAgICB9DQogICAgICAgICB9KTsNCn0NCg0KZnVuY3Rpb24gb25fY2hhbmdlKCkNCnsNCiAgaWYoIWRvb21fcmVhZHkpIHJldHVybjsNCiAgdmFyIHBhcmFtcyA9ICQoJyNxdWlja3NlYXJjaF9mb3JtJykuc2VyaWFsaXplQXJyYXkoKTsNCiAgYWpheF9wb3N0KHBhcmFtcywgYWpheF91cmwsICcjYWpheF9jbnQnKTsNCn0NCg0KZnVuY3Rpb24gb25fcGFnaW5hdGlvbl9jbGljayh0eXBlLCBwYWdlX251bWJlcikNCnsNCiAgJCgnI3BhZ2VudW1iZXInKS52YWwocGFnZV9udW1iZXIpOw0KDQogIHZhciBwYXJhbXMgPSAkKCcjcXVpY2tzZWFyY2hfZm9ybScpLnNlcmlhbGl6ZUFycmF5KCk7DQoNCiAgY29uc29sZS5sb2cocGFyYW1zKTsNCiAgYWpheF9wb3N0KHBhcmFtcywgYWpheF91cmwsICcjYWpheF9jbnQnKTsNCn0NCg0KalF1ZXJ5KGRvY3VtZW50KQ0KICAucmVhZHkoZnVuY3Rpb24oKQ0KICB7DQogICAgdmFyIHBhcmFtcyA9ICQoJyNxdWlja3NlYXJjaF9mb3JtJykuc2VyaWFsaXplQXJyYXkoKTsNCg0KICAgICQoJyNxdWlja3NlYXJjaF9mb3JtJykuc3VibWl0KGZ1bmN0aW9uKGV2ZW50KSB7DQogICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpOw0KICAgIH0pOw0KDQogICAgJCgnI2FqYXhfY250JykuaHRtbCgnPGRpdiBjbGFzcz0iYWpheC1sb2FkaW5nIGFqYXgtbG9hZGVyLXR5cGUtd2lkZSI+PC9kaXY+Jyk7DQoNCg0KICAgIGFqYXhfcG9zdChwYXJhbXMsIGFqYXhfdXJsLCAnI2FqYXhfY250JykNCg0KDQogICAgdmFyIHRpbWVvdXQ7DQogICAgJCgnI2l0ZW1fc2VhcmNoMicpLmtleXVwKGZ1bmN0aW9uKCkgew0KICAgICAgaWYodGltZW91dCkgew0KICAgICAgICBjbGVhclRpbWVvdXQodGltZW91dCk7DQogICAgICAgIHRpbWVvdXQgPSBudWxsOw0KICAgICAgfQ0KDQogICAgICB0aW1lb3V0ID0gc2V0VGltZW91dChvbl9jaGFuZ2UsIDUwMCkNCiAgICB9KTsNCiAgICBkb29tX3JlYWR5ID0gdHJ1ZTsNCiAgfSk7DQoNCg0KPC9zY3JpcHQ+]]></data>
	</file>
	<file>
	  <filename>/framework/templates/local_edit.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[eyokYmFja2xpbmsqfQ0KeyogPGgzPnskaGVhZGVyfTwvaDM+ICp9DQp7JHN0YXJ0Zm9ybX0NCiAgPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4NCiAgICA8cCBjbGFzcz0icGFnZWlucHV0Ij4NCiAgICAgIDxpbnB1dCBuYW1lPSJ7JGFjdGlvbmlkfWFwcGx5IiBjbGFzcz0ibGlzZV9hcHBseSIgdmFsdWU9IntsYW5nKCdhcHBseScpfSIgdHlwZT0ic3VibWl0IiAvPg0KICAgIDwvcD4NCiAgPC9kaXY+DQoNCiAge2lmIGlzc2V0KCRpdGVtT2JqZWN0fGRlZmF1bHQ6W10pfQ0KICAgIHtmb3JlYWNoIGZyb209JGl0ZW1PYmplY3QtPmZpZWxkZGVmcyBpdGVtPSdmaWVsZGRlZid9DQogICAgICB7aWYgJGZpZWxkZGVmLT50eXBlID09PSAnVGFicyd9e2NvbnRpbnVlfXsvaWZ9DQogICAgICB7JGZpZWxkZGVmLT5SZW5kZXJJbnB1dCgkYWN0aW9uaWQsICRyZXR1cm5pZCl9DQogICAgey9mb3JlYWNofQ0KICB7L2lmfQ0KDQogIDxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+DQogICAgPHAgY2xhc3M9InBhZ2V0ZXh0Ij4mbmJzcDs8L3A+DQogICAgPHAgY2xhc3M9InBhZ2VpbnB1dCI+DQogICAgICA8aW5wdXQgbmFtZT0ieyRhY3Rpb25pZH1hcHBseSIgY2xhc3M9Imxpc2VfYXBwbHkiIHZhbHVlPSJ7bGFuZygnYXBwbHknKX0iIHR5cGU9InN1Ym1pdCIgLz4NCiAgICA8L3A+DQogIDwvZGl2Pg0KeyRlbmRmb3JtfQ0KeyoNCjwhLS0gZW5kIGNvbnRlbnQgLy8tLT4NCjxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4NCnZhciBhY3Rpb25faWQgPSAneyRhY3Rpb25pZH0nOw0KdmFyIGl0ZW1faWQgPSAneyRpdGVtT2JqZWN0LT5pdGVtX2lkfGRlZmF1bHQ6LTF9JzsNCnZhciBhamF4X3VybDEgPSAneyRhamF4X2dldF91cmx9JzsNCnZhciBhamF4X3VybDIgPSAneyRhamF4X2dldF9hbGlhc30nOw0KdmFyIG1hbnVhbGx5X2NoYW5nZWQxID0gaXRlbV9pZDsNCnZhciBtYW51YWxseV9jaGFuZ2VkMiA9IGl0ZW1faWQ7DQp2YXIgZmluaXNoZWRfc2V0dXAgPSAwOw0KdmFyIGFqYXhfeGhyMSA9IDA7DQp2YXIgYWpheF94aHIyID0gMDsNCnZhciBhamF4X3RpbWVvdXQxOw0KdmFyIGFqYXhfdGltZW91dDI7DQphamF4X3VybDEgPSBhamF4X3VybDEucmVwbGFjZSgvYW1wOy9nLCcnKSArICcmc3VwcHJlc3NvdXRwdXQ9MSc7DQphamF4X3VybDIgPSBhamF4X3VybDIucmVwbGFjZSgvYW1wOy9nLCcnKSArICcmc3VwcHJlc3NvdXRwdXQ9MSc7DQoNCmZ1bmN0aW9uIGFqYXhfZ2V0dXJsKCkgew0KICB2YXIgZm9ybSA9ICQoJyNsaXNlX2VkaXRpdGVtIGZvcm0nKTsNCiAgdmFyIHZ0aXRsZSA9ICQoJyN7JGFjdGlvbmlkfXRpdGxlJykudmFsKCk7DQogIGFqYXhfeGhyID0gJC5wb3N0KGFqYXhfdXJsMSwgeyB0aXRsZTogdnRpdGxlLCBpdGVtaWQ6IGl0ZW1faWQgfSwgZnVuY3Rpb24ocmV0ZGF0YSl7DQogICAgJCgnI3skYWN0aW9uaWR9dXJsJykudmFsKHJldGRhdGEpOw0KICAgIGFqYXhfeGhyMSA9IDA7DQp9KTsNCn0NCg0KZnVuY3Rpb24gYWpheF9nZXRfYWxpYXMoKSB7DQogIHZhciBmb3JtID0gJCgnI2xpc2VfZWRpdGl0ZW0gZm9ybScpOw0KICB2YXIgdnRpdGxlID0gJCgnI3skYWN0aW9uaWR9dGl0bGUnKS52YWwoKTsNCiAgYWpheF94aHIgPSAkLnBvc3QoYWpheF91cmwyLCB7IHRpdGxlOiB2dGl0bGUgfSwgZnVuY3Rpb24ocmV0ZGF0YSl7DQogICAgJCgnI3skYWN0aW9uaWR9YWxpYXMnKS52YWwocmV0ZGF0YSk7DQogICAgYWpheF94aHIyID0gMDsNCn0pOw0KfQ0KDQpmdW5jdGlvbiBvbl9jaGFuZ2UoKSB7DQogIGlmKCBtYW51YWxseV9jaGFuZ2VkMSA8IDEgJiYgZmluaXNoZWRfc2V0dXAgPT0gMSkgew0KICAgIC8vIGFqYXggZnVuY3Rpb24gdG8gZ2V0IGEgdW5pcXVlIHVybCBnaXZlbiBhIHRpdGxlLg0KICAgIGlmKCBhamF4X3RpbWVvdXQxICE9IHVuZGVmaW5lZCApIGNsZWFyVGltZW91dChhamF4X3RpbWVvdXQxKTsNCiAgICBpZiggYWpheF94aHIxID0gMCApIHhoci5hYm9ydCgpOw0KICAgIGFqYXhfdGltZW91dDEgPSBzZXRUaW1lb3V0KGFqYXhfZ2V0dXJsLDUwMCk7DQp9DQogIGlmKCBtYW51YWxseV9jaGFuZ2VkMiA8IDEgJiYgZmluaXNoZWRfc2V0dXAgPT0gMSkgew0KICAgIC8vIGFqYXggZnVuY3Rpb24gdG8gZ2V0IGEgdW5pcXVlIGFsaWFzIGdpdmVuIGEgdGl0bGUuDQogICAgaWYoIGFqYXhfdGltZW91dDIgIT0gdW5kZWZpbmVkICkgY2xlYXJUaW1lb3V0KGFqYXhfdGltZW91dDIpOw0KICAgIGlmKCBhamF4X3hocjIgPSAwICkgeGhyLmFib3J0KCk7DQogICAgYWpheF90aW1lb3V0MSA9IHNldFRpbWVvdXQoYWpheF9nZXRfYWxpYXMsNTAwKTsNCn0NCn0NCg0KalF1ZXJ5KGRvY3VtZW50KS5yZWFkeShmdW5jdGlvbigpIHsNCg0KICAkKCd7JGFjdGlvbmlkfXVybCcpLmtleXVwKGZ1bmN0aW9uKCkgew0KICAgIHZhciB2YWwgPSAkKHRoaXMpLnZhbCgpOw0KICAgIG1hbnVhbGx5X2NoYW5nZWQxID0gMA0KICAgIGlmKCB2YWwgIT0gJycgKSBtYW51YWxseV9jaGFuZ2VkMSA9IDE7DQp9KTsNCg0KICAkKCd7JGFjdGlvbmlkfWFsaWFzJykua2V5dXAoZnVuY3Rpb24oKSB7DQogICAgdmFyIHZhbCA9ICQodGhpcykudmFsKCk7DQogICAgbWFudWFsbHlfY2hhbmdlZDEgPSAwDQogICAgaWYoIHZhbCAhPSAnJyApIG1hbnVhbGx5X2NoYW5nZWQyID0gMTsNCn0pOw0KDQogICQoJ2Zvcm0nKS5hamF4U3RhcnQoZnVuY3Rpb24oKSB7DQogICAgJCgnKicpLmNzcygnY3Vyc29yJywncHJvZ3Jlc3MnKTsNCn0pOw0KDQogICQoJ2Zvcm0nKS5hamF4U3RvcChmdW5jdGlvbigpIHsNCiAgICAkKCcqJykuY3NzKCdjdXJzb3InLCdhdXRvJyk7DQp9KTsNCg0KICAkKCcjeyRhY3Rpb25pZH10aXRsZScpLmtleXVwKGZ1bmN0aW9uKCkgew0KICAgIG9uX2NoYW5nZSgpOw0KfSk7DQoNCiAgZmluaXNoZWRfc2V0dXAgPSAxOw0KDQoNCiAgalF1ZXJ5KCdbbmFtZT1tMV9hcHBseV0nKS5saXZlKCdjbGljaycsIGZ1bmN0aW9uKCkgew0KICAgIGlmICh0eXBlb2YgdGlueU1DRSAhPSAndW5kZWZpbmVkJykgew0KICAgICAgdGlueU1DRS50cmlnZ2VyU2F2ZSgpOw0KICB9DQoNCiAgdmFyIGRhdGEgPSBqUXVlcnkoJ2Zvcm0nKS5maW5kKCdpbnB1dDpub3QoW3R5cGU9c3VibWl0XSksIHNlbGVjdCwgdGV4dGFyZWEnKS5zZXJpYWxpemVBcnJheSgpOw0KDQogIGRhdGEucHVzaCh7DQogICAgICAnbmFtZSc6ICdtMV9hamF4JywNCiAgICAgICd2YWx1ZSc6IDENCiAgfSk7DQogIGRhdGEucHVzaCh7DQogICAgICAnbmFtZSc6ICdtMV9hcHBseScsDQogICAgICAndmFsdWUnOiAxDQogIH0pOw0KICBkYXRhLnB1c2goew0KICAgICAgJ25hbWUnOiAnc2hvd3RlbXBsYXRlJywNCiAgICAgICd2YWx1ZSc6ICdmYWxzZScNCiAgfSk7DQoNCiAgdmFyIHVybCA9IGpRdWVyeSgnZm9ybScpLmF0dHIoJ2FjdGlvbicpOw0KDQogIGpRdWVyeS5wb3N0KHVybCwgZGF0YSwgZnVuY3Rpb24ocmVzdWx0ZGF0YSwgdGV4dCkgew0KICAgICAgdmFyIHJlc3AgPSBqUXVlcnkocmVzdWx0ZGF0YSkuZmluZCgnUmVzcG9uc2UnKS50ZXh0KCk7DQogICAgICB2YXIgZGV0YWlscyA9IGpRdWVyeShyZXN1bHRkYXRhKS5maW5kKCdEZXRhaWxzJykudGV4dCgpOw0KICAgICAgdmFyIGh0bWxTaG93ID0gJyc7DQogICAgICBpZiAocmVzcCA9PT0gJ1N1Y2Nlc3MnICYmIGRldGFpbHMgIT09ICcnKSB7DQogICAgICAgIGh0bWxTaG93ID0gJzxkaXYgY2xhc3M9InBhZ2VtY29udGFpbmVyIj48cCBjbGFzcz0icGFnZW1lc3NhZ2UiPicgKyBkZXRhaWxzICsgJzxcL3A+PFwvZGl2Pic7DQogICAgfQ0KICAgIGVsc2Ugew0KICAgICAgICBodG1sU2hvdyA9ICc8ZGl2IGNsYXNzPSJwYWdlZXJyb3Jjb250YWluZXIiPjx1bCBjbGFzcz0icGFnZWVycm9yIj4nOw0KICAgICAgICBodG1sU2hvdyArPSBkZXRhaWxzOw0KICAgICAgICBodG1sU2hvdyArPSAnPFwvdWw+PFwvZGl2Pic7DQogICAgfQ0KICAgIGpRdWVyeSgnI2VkaXRpdGVtX3Jlc3VsdCcpLmh0bWwoaHRtbFNob3cpOw0KICAgIHdpbmRvdy5zZXRUaW1lb3V0KGZ1bmN0aW9uKCl7DQogICAgICQoJy5wYWdlbWNvbnRhaW5lcicpLmhpZGUoKTsNCiB9LCA5MDAwKQ0KfSwgJ3htbCcpOw0KICByZXR1cm4gZmFsc2U7DQp9KTsNCn0pOw0KPC9zY3JpcHQ+DQogICAgICAqfQ==]]></data>
	</file>
	<file>
	  <filename>/framework/templates/optiontab.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[eyRzdGFydGZvcm19DQo8ZmllbGRzZXQ+DQoJPGxlZ2VuZD57JG1vZC0+TW9kTGFuZygnbW9kdWxlX29wdGlvbnMnKX08L2xlZ2VuZD4NCgk8ZGl2IGNsYXNzPSJwYWdld2FybmluZyI+DQoJCTxoMz57JG1vZC0+TW9kTGFuZygnbm90aWNlJyl9PC9oMz4NCgkJPHA+eyRtb2QtPk1vZExhbmcoJ29wdGlvbnNfbm90aWNlJyl9PC9wPg0KCTwvZGl2PgkNCiAgICA8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPg0KICAgICAgPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JG1vZC0+TW9kTGFuZygncHJvbXB0X2ZyaWVuZGx5bmFtZScpfTo8L3A+DQogICAgICA8cCBjbGFzcz0icGFnZWlucHV0Ij57JGlucHV0X2ZyaWVuZGx5bmFtZX08L3A+DQogICAgPC9kaXY+DQogICAgPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4NCiAgICAgIDxwIGNsYXNzPSJwYWdldGV4dCI+eyRtb2QtPk1vZExhbmcoJ3Byb21wdF9tb2RkZXNjcmlwdGlvbicpfTo8L3A+DQogICAgICA8cCBjbGFzcz0icGFnZWlucHV0Ij57JGlucHV0X21vZGRlc2NyaXB0aW9ufTwvcD4NCiAgICA8L2Rpdj4gICAgICANCiAgICA8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPg0KICAgICAgPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JG1vZC0+TW9kTGFuZygncHJvbXB0X2FkbWluc2VjdGlvbicpfTo8L3A+DQogICAgICA8cCBjbGFzcz0icGFnZWlucHV0Ij57JGlucHV0X2FkbWluc2VjdGlvbn08L3A+DQogICAgPC9kaXY+DQogICAgPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4NCiAgICAgIDxwIGNsYXNzPSJwYWdldGV4dCI+eyRtb2QtPk1vZExhbmcoJ3Byb21wdF9zZXBhcmF0ZV9zZXR0aW5nc19jb250cm9sJyl9OjwvcD4NCiAgICAgIDxwIGNsYXNzPSJwYWdlaW5wdXQiPnskaW5wdXRfc2VwYXJhdGVfc2V0dGluZ3NfY29udHJvbH08L3A+DQogICAgPC9kaXY+DQogICAgPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4NCiAgICAgIDxwIGNsYXNzPSJwYWdldGV4dCI+eyRtb2QtPk1vZExhbmcoJ3Byb21wdF9sb2NhbF9pbnN0YW5jZXNfbGlzdCcpfTo8L3A+DQogICAgICA8cCBjbGFzcz0icGFnZWlucHV0Ij57JGlucHV0X2xvY2FsX21vZGVfaW5zdGFuY2V9PC9wPg0KICAgIDwvZGl2Pg0KPC9maWVsZHNldD4NCg0KPGZpZWxkc2V0Pg0KCTxsZWdlbmQ+eyRtb2QtPk1vZExhbmcoJ2RlZmF1bHRfb3B0aW9ucycpfTwvbGVnZW5kPg0KCTxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+DQogICAgICAgIDxwIGNsYXNzPSJwYWdldGV4dCI+eyRtb2QtPk1vZExhbmcoJ3Byb21wdF9kZXRhaWxwYWdlJyl9OjwvcD4NCiAgICAgICAgPHAgY2xhc3M9InBhZ2VpbnB1dCI+eyRpbnB1dF9kZXRhaWxwYWdlfTwvcD4NCiAgICA8L2Rpdj4gDQoJPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4NCiAgICAgICAgPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JG1vZC0+TW9kTGFuZygncHJvbXB0X3N1bW1hcnlwYWdlJyl9OjwvcD4NCiAgICAgICAgPHAgY2xhc3M9InBhZ2VpbnB1dCI+eyRpbnB1dF9zdW1tYXJ5cGFnZX08L3A+DQogICAgPC9kaXY+IAkNCjwvZmllbGRzZXQ+DQoNCjxmaWVsZHNldD4NCiAgICA8bGVnZW5kPnskbW9kLT5Nb2RMYW5nKCdpdGVtc19vcHRpb25zJyl9PC9sZWdlbmQ+ICAgICAgICAgICANCiAgICA8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPg0KICAgICAgICA8cCBjbGFzcz0icGFnZXRleHQiPnskbW9kLT5Nb2RMYW5nKCdwcm9tcHRfaXRlbV90aXRsZScpfTo8L3A+DQogICAgICAgIDxwIGNsYXNzPSJwYWdlaW5wdXQiPnskaW5wdXRfaXRlbV90aXRsZX08L3A+DQogICAgPC9kaXY+DQogICAgPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4NCiAgICAgICAgPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JG1vZC0+TW9kTGFuZygncHJvbXB0X2l0ZW1fc2luZ3VsYXInKX06PC9wPg0KICAgICAgICA8cCBjbGFzcz0icGFnZWlucHV0Ij57JGlucHV0X2l0ZW1fc2luZ3VsYXJ9PC9wPg0KICAgIDwvZGl2Pg0KICAgIDxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+DQogICAgICAgIDxwIGNsYXNzPSJwYWdldGV4dCI+eyRtb2QtPk1vZExhbmcoJ3Byb21wdF9pdGVtX3BsdXJhbCcpfTo8L3A+DQogICAgICAgIDxwIGNsYXNzPSJwYWdlaW5wdXQiPnskaW5wdXRfaXRlbV9wbHVyYWx9PC9wPg0KICAgIDwvZGl2Pg0KICAgIDxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+DQogICAgICA8cCBjbGFzcz0icGFnZXRleHQiPnskbW9kLT5Nb2RMYW5nKCdwcm9tcHRfdGl0bGVfZGlzcGxheV9tb2RlJyl9OjwvcD4NCiAgICAgIDxwIGNsYXNzPSJwYWdlaW5wdXQiPnskaW5wdXRfdGl0bGVfZGlzcGxheV9tb2RlfTwvcD4NCiAgICA8L2Rpdj4NCiAgICA8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPg0KICAgICAgPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JG1vZC0+TW9kTGFuZygncHJvbXB0X3RpdGxlX2F1dG9fZ2VuJyl9OjwvcD4NCiAgICAgIDxwIGNsYXNzPSJwYWdlaW5wdXQiPnskaW5wdXRfdGl0bGVfYXV0b19nZW59PC9wPg0KICAgIDwvZGl2Pg0KICAgIDxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+DQogICAgICA8cCBjbGFzcz0icGFnZXRleHQiPnskbW9kLT5Nb2RMYW5nKCdwcm9tcHRfdGl0bGVfdGVtcGxhdGUnKX06IHtjbXNfaGVscCByZWFsbT0nTElTRScga2V5PSd0aXRsZV90ZW1wbGF0ZV9wb3B1cF9oZWxwJyB0aXRsZT0kbW9kLT5Nb2RMYW5nKCd0aXRsZV90ZW1wbGF0ZV9wb3B1cF9oZWxwX3RpdGxlJyl9PC9wPg0KICAgICAgPHAgY2xhc3M9InBhZ2VpbnB1dCI+eyRpbnB1dF90aXRsZV90ZW1wbGF0ZX08L3A+DQogICAgPC9kaXY+DQoJICA8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPg0KICAgICAgPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JG1vZC0+TW9kTGFuZygncHJvbXB0X2NyZWF0ZV9kYXRlJyl9PC9wPg0KICAgICAgPHAgY2xhc3M9InBhZ2VpbnB1dCI+eyRpbnB1dF9jcmVhdGVfZGF0ZX08L3A+DQogIDwvZGl2Pg0KICA8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPg0KICAgIDxwIGNsYXNzPSJwYWdldGV4dCI+eyRtb2QtPk1vZExhbmcoJ3Byb21wdF9oaWRlX2FsaWFzJyl9OjwvcD4NCiAgICA8cCBjbGFzcz0icGFnZWlucHV0Ij57JGlucHV0X2hpZGVfYWxpYXN9PC9wPg0KICA8L2Rpdj4NCiAgPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4NCiAgICA8cCBjbGFzcz0icGFnZXRleHQiPnskbW9kLT5Nb2RMYW5nKCdwcm9tcHRfYWxpYXNfdGVtcGxhdGUnKX06IHtjbXNfaGVscCByZWFsbT0nTElTRScga2V5PSdhbGlhc190ZW1wbGF0ZV9wb3B1cF9oZWxwJyB0aXRsZT0kbW9kLT5Nb2RMYW5nKCdhbGlhc190ZW1wbGF0ZV9wb3B1cF9oZWxwX3RpdGxlJyl9PC9wPg0KICAgIDxwIGNsYXNzPSJwYWdlaW5wdXQiPnskaW5wdXRfYWxpYXNfdGVtcGxhdGV9PC9wPg0KICA8L2Rpdj4NCiAgPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4NCiAgICA8cCBjbGFzcz0icGFnZXRleHQiPnskbW9kLT5Nb2RMYW5nKCdwcm9tcHRfaGlkZV9zbHVnJyl9OjwvcD4NCiAgICA8cCBjbGFzcz0icGFnZWlucHV0Ij57JGlucHV0X2hpZGVfc2x1Z308L3A+DQogIDwvZGl2Pg0KICA8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPg0KICAgIDxwIGNsYXNzPSJwYWdldGV4dCI+eyRtb2QtPk1vZExhbmcoJ3Byb21wdF9oaWRlX3RpbWVfY29udHJvbCcpfTo8L3A+DQogICAgPHAgY2xhc3M9InBhZ2VpbnB1dCI+eyRpbnB1dF9oaWRlX3RpbWVfY29udHJvbH08L3A+DQogIDwvZGl2Pg0KICA8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPg0KICAgIDxwIGNsYXNzPSJwYWdldGV4dCI+eyRtb2QtPk1vZExhbmcoJ3Byb21wdF9pdGVtX2NvbHMnKX06PC9wPg0KICAgIDxwIGNsYXNzPSJwYWdlaW5wdXQiPnskaW5wdXRfaXRlbV9jb2xzfTwvcD4NCiAgPC9kaXY+DQogIDxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+DQogICAgPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JG1vZC0+TW9kTGFuZygncHJvbXB0X2l0ZW1zX3Blcl9wYWdlJyl9OjwvcD4NCiAgICA8cCBjbGFzcz0icGFnZWlucHV0Ij57JGlucHV0X2l0ZW1zX3Blcl9wYWdlfTwvcD4NCiAgPC9kaXY+DQogIDxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+DQogICAgPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JG1vZC0+TW9kTGFuZygndGV4dF9zb3J0b3JkZXInKX06PC9wPg0KICAgIDxwIGNsYXNzPSJwYWdlaW5wdXQiPnskaW5wdXRfc29ydG9yZGVyfTwvcD4NCiAgPC9kaXY+DQo8L2ZpZWxkc2V0Pg0KDQo8ZmllbGRzZXQ+DQoJPGxlZ2VuZD57JG1vZC0+TW9kTGFuZygndXJsX29wdGlvbnMnKX08L2xlZ2VuZD4NCgk8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPg0KICAgICAgICA8cCBjbGFzcz0icGFnZXRleHQiPnskbW9kLT5Nb2RMYW5nKCdwcm9tcHRfdXJsX3ByZWZpeCcpfTo8L3A+DQogICAgICAgIDxwIGNsYXNzPSJwYWdlaW5wdXQiPnskaW5wdXRfdXJsX3ByZWZpeH08L3A+DQogICAgPC9kaXY+IA0KICA8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPg0KICAgICAgICA8cCBjbGFzcz0icGFnZXRleHQiPnskbW9kLT5Nb2RMYW5nKCdwcm9tcHRfdXJsX3RlbXBsYXRlJyl9OiB7Y21zX2hlbHAgcmVhbG09J0xJU0UnIGtleT0nc2x1Z190ZW1wbGF0ZV9wb3B1cF9oZWxwJyB0aXRsZT0kbW9kLT5Nb2RMYW5nKCdzbHVnX3RlbXBsYXRlX3BvcHVwX2hlbHBfdGl0bGUnKX08L3A+DQogICAgICAgIDxwIGNsYXNzPSJwYWdlaW5wdXQiPnskaW5wdXRfdXJsX3RlbXBsYXRlfTwvcD4NCiAgICA8L2Rpdj4gDQoJPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4NCiAgICAgICAgPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JG1vZC0+TW9kTGFuZygncHJvbXB0X3N1YmNhdGVnb3J5Jyl9OjwvcD4NCiAgICAgICAgPHAgY2xhc3M9InBhZ2VpbnB1dCI+eyRpbnB1dF9zdWJjYXRlZ29yeX08L3A+DQogICAgPC9kaXY+CQ0KCTxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+DQogICAgICAgIDxwIGNsYXNzPSJwYWdldGV4dCI+eyRtb2QtPk1vZExhbmcoJ3Byb21wdF9kaXNwbGF5X2lubGluZScpfTo8L3A+DQogICAgICAgIDxwIGNsYXNzPSJwYWdlaW5wdXQiPnskaW5wdXRfZGlzcGxheV9pbmxpbmV9PC9wPg0KICAgIDwvZGl2Pg0KPC9maWVsZHNldD4NCjxmaWVsZHNldD4NCiAgPGxlZ2VuZD57JG1vZC0+TW9kTGFuZygneG1vZHVsZV9vcHRpb25zJyl9PC9sZWdlbmQ+DQogIDxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+DQogICAgPGRpdiBjbGFzcz0id2FybmluZyI+DQogICAgICA8cD57JG1vZC0+TW9kTGFuZygnd2FybmluZ19yZWluZGV4X3NlYXJjaCcpfTwvcD4NCiAgICA8L2Rpdj4gICAgICAgICAgDQogIDwvZGl2PiAgIA0KICA8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPg0KICAgIDxwIGNsYXNzPSJwYWdldGV4dCI+eyRtb2QtPk1vZExhbmcoJ3Byb21wdF9yZWluZGV4X3NlYXJjaCcpfTo8L3A+DQogICAgPHAgY2xhc3M9InBhZ2VpbnB1dCI+eyRpbnB1dF9yZWluZGV4X3NlYXJjaH08L3A+DQogIDwvZGl2PiAgDQogIDxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+DQogICAgICA8cCBjbGFzcz0icGFnZXRleHQiPnskbW9kLT5Nb2RMYW5nKCdwcm9tcHRfcmVpbmRleF9kb19zZWFyY2gnKX06PC9wPg0KICAgICAgPHAgY2xhc3M9InBhZ2VpbnB1dCI+DQogICAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iDQogICAgICAgICAgICAgICBuYW1lPSJ7JGFjdGlvbmlkfV9kb19yZWluZGV4Ig0KICAgICAgICAgICAgICAgdmFsdWU9IjAiIC8+DQogICAgICAgIDxpbnB1dCB0eXBlPSJjaGVja2JveCINCiAgICAgICAgICAgICAgIG5hbWU9InskYWN0aW9uaWR9X2RvX3JlaW5kZXgiDQogICAgICAgICAgICAgICB2YWx1ZT0iMSIgLz4NCiAgICAgIDwvcD4NCiAgPC9kaXY+DQogIDxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+DQogICAgPGRpdiBjbGFzcz0id2FybmluZyI+DQogICAgICA8cD57JG1vZC0+TW9kTGFuZygnd2FybmluZ19yZWluZGV4X3NlYXJjaF9ub3cnKX08L3A+DQogICAgPC9kaXY+ICAgICAgICAgIA0KICA8L2Rpdj4gDQo8L2ZpZWxkc2V0Pg0KPGZpZWxkc2V0Pg0KCTxsZWdlbmQ+eyRtb2QtPk1vZExhbmcoJ21pc2Nfb3B0aW9ucycpfTwvbGVnZW5kPg0KCTxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+DQogICAgICA8cCBjbGFzcz0icGFnZXRleHQiPnskbW9kLT5Nb2RMYW5nKCdwcm9tcHRfYXV0b191cGdyYWRlJyl9OjwvcD4NCiAgICAgIDxwIGNsYXNzPSJwYWdlaW5wdXQiPnskaW5wdXRfYXV0b191cGdyYWRlfTwvcD4NCiAgPC9kaXY+DQo8L2ZpZWxkc2V0Pg0KICAgIDxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+DQogICAgICAgIDxwIGNsYXNzPSJwYWdldGV4dCI+Jm5ic3A7PC9wPg0KICAgICAgICA8cCBjbGFzcz0icGFnZWlucHV0Ij4NCgkJCXskc3VibWl0fQ0KCQk8L3A+DQogICAgPC9kaXY+DQoNCnskZW5kZm9ybX0NCg==]]></data>
	</file>
	<file>
	  <filename>/framework/templates/templatetab.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[77u/e2ZvcmVhY2ggZnJvbT0kaXRlbXMga2V5PXNlY3Rpb24gaXRlbT10ZW1wbGF0ZXN9CgoJPGZpZWxkc2V0PgoJCXtjYXB0dXJlIGFzc2lnbj0nc2VjdGlvbl9sYW5nJ317JHNlY3Rpb259dGVtcGxhdGVzey9jYXB0dXJlfQoJCTxsZWdlbmQ+eyRtb2QtPk1vZExhbmcoJHNlY3Rpb25fbGFuZyl9PC9sZWdlbmQ+CgoJCXtpZiBjb3VudCgkdGVtcGxhdGVzKSA+IDB9CgkJPHRhYmxlIGNlbGxzcGFjaW5nPSIwIiBjbGFzcz0icGFnZXRhYmxlIj4KCQkJPHRoZWFkPgoJCQkJPHRyPgoJCQkJCTx0aD57JG1vZC0+TW9kTGFuZygndGVtcGxhdGUnKX08L3RoPgkJCQkKCQkJCQk8dGggY2xhc3M9InBhZ2VpY29uIj57J2RlZmF1bHQnfGxhbmd9PC90aD4KCQkJCQk8dGggY2xhc3M9InBhZ2VpY29uIj4mbmJzcDs8L3RoPgoJCQkJCTx0aCBjbGFzcz0icGFnZWljb24iPiZuYnNwOzwvdGg+CgkJCQk8L3RyPgoJCQk8L3RoZWFkPgoJCQk8dGJvZHk+CgkJCXtmb3JlYWNoIGZyb209JHRlbXBsYXRlcyBpdGVtPWVudHJ5fQoJCQkJPHRyIGNsYXNzPSJ7Y3ljbGUgdmFsdWVzPSdyb3cxLHJvdzInIG5hbWU9J3N1bW1hcnknfSI+CgkJCQkJPHRkPnskZW50cnktPmxpbmt9PC90ZD4KCQkJCQk8dGQ+eyRlbnRyeS0+ZGVmYXVsdH08L3RkPgoJCQkJCTx0ZD57JGVudHJ5LT5lZGl0fTwvdGQ+CgkJCQkJPHRkIGNsYXNzPSJpbml0LWFqYXgtZGVsZXRlIj57JGVudHJ5LT5kZWxldGV8ZGVmYXVsdDonJ308L3RkPgoJCQkJPC90cj4KCQkJey9mb3JlYWNofQoJCQk8L3Rib2R5PgoJCTwvdGFibGU+CgkJey9pZn0KCgkJPGRpdiBjbGFzcz0icGFnZW9wdGlvbnMiPnskYWRkbGlua3MuJHNlY3Rpb259PC9kaXY+Cgk8L2ZpZWxkc2V0PgkKCQp7L2ZvcmVhY2h9]]></data>
	</file>
	<file>
	  <filename>/images</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/images/btc_qr_code.png</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[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]]></data>
	</file>
	<file>
	  <filename>/images/icon.png</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAABmJLR0QA/wD/AP+gvaeTAAAACXBIWXMAAC4jAAAuIwF4pT92AAAAB3RJTUUH3wUYEQMKpO2HwAAAA91JREFUaN7t11uoVFUcBvDfmnNRj1Z2024PZT00MwpmUWRIoEFRUVHRYxQ9RBe0ICKIIrpRQdCVXnspuhhINzTMMo0Mi7I4x64IIYnYTS01PWdWD2vtGsdz2fOQJewPhpm99tprf99a/+9ba6hQoUKFChUqVKhwyCK0XzQb9aJtEvai1Xa7P18PxxgNbfxqwsHzeNCHGv4sGmIkBP153DJoYTfi4NDGAwXkl03GrbgEq/E4dubrW7AVD+E7aB9oFNJTcCoWYBEG8AzezvcX4A4cU1LAMN7E09hTvLu3o9O5uBeHYT424H08iLm5zw4s6SQdYxRCmIY6zs+k52WCtdx1Jj7GrvyeC0qSLzAPn2JV0dApYCam5t/9OB499l/mSYNDGzUbdc1GPWA6ZocQFmIh5uS2MAqB3iymJpVVt+jp5Nw7wQM1/ISHsRjb8Fwuk+NwMy7C6XnVxsIf+BqPhhC2xRjhkSzyqJLkR6QS+rAbAQVewDKpDgsj3o47x3lmOwbxnrTkG/BLJq+nJywfGYmrJd+VFfA7Wu3eKyvgNFyZV+A1ydgndfSJ+DkTfVfyzqDkmb8NX5h8ZCSeiKsxoySHfXki1jQb9TiWiTsRpTR5EhfnWTgWj+F5/9T7BqyUkusbyaSjplRGnxQM15UkX+B6XJbfV1rAEVKNk0w0R6rdlbhQKoEf5dJqn+lmo16TgmGu5JHVUhQPYHaX5OEEnNyNgJoYtwphKW7Cb1IJxUx2S9GxUa8LgWaj3ieV1zlSTM7HLCnJXsENtVpte6vVejm3DxTjjYOQ+6zB+vYbE3sghIj78JJkou+LmW7btCZnMudl0mdnEZ3jz8eMVqu1CU9hBY4sIYAUIN9KqdiFgGIl0gz25dnQbNSLclqUP2dIhqyNMUbEB1IJFbPamz9lVqDgsR/KCAh4ADdK0bgYS3ENnjB+iuzFD1iHd7BcMnjAbbhLComyWCsZf3NZAS1pw7pcqtWB/HsZrhiD/G5pqddKcbpeMvlIaziq9QY4XIrQ6V2QJx1RzuxGQMCvUp7Pkurws7bvq6Rk2oEhKftX4XOpVmNnlGbf7MIXOKtLAZuxqb2hjIA9UtmszKRez/eezQMeLR3QhmK0I4Rx87/APtyNT6SYLYN9eYK+7EbA4dJpchdezG1TMU0y3vI2oVNCMNA2yxMh4lWjH/pGw4jkwdjNUWIJru3iJf8mRvAW7m826jvLHiVmKH9WORg4RSrlFUVDZ65ukTar/yv2avtbyoErsA734FLlN7mDhWG8gY/aG8f6U99v7B31v0JLWoFYIuUqVKhQoUKFChUqHAr4C5raFbyiXgGBAAAAJXRFWHRkYXRlOmNyZWF0ZQAyMDE1LTA1LTI0VDE3OjAzOjEwKzAyOjAwYp9tzQAAACV0RVh0ZGF0ZTptb2RpZnkAMjAxNS0wNS0yNFQxNzowMzoxMCswMjowMBPC1XEAAAAASUVORK5CYII=]]></data>
	</file>
	<file>
	  <filename>/images/index.html</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[]]></data>
	</file>
	<file>
	  <filename>/images/jqueryui</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/images/jqueryui/index.html</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[]]></data>
	</file>
	<file>
	  <filename>/images/jqueryui/ui-anim_basic_16x16.gif</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[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]]></data>
	</file>
	<file>
	  <filename>/images/jqueryui/ui-bg_diagonals-thick_18_b81900_40x40.png</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[iVBORw0KGgoAAAANSUhEUgAAACgAAAAoCAYAAACM/rhtAAAAy0lEQVRYhe3XQQrCMBSE4d8svIH0Ft5/5X3EG7jRTYUYk5ekackgb5alDF8LbZjT7bq8SPJ83NNLPzlfluo9e/SFPctyGe37AqrhIAIq4mAFquIAgjIOMh/JSNkRD2sCZ+PAeIMKOCgAVXCQASrhIAGq4SACKuJgBariAIIyDhp+1D1lRzxsE3DmcVgFzj6rTeBsHBhABRwUgCo48E3im6Sv7BPfJFvLfJOMllnxTdJSlotvkp6yOL5JtpSBb5Kxstb4JimV1fKXm+QNcHvyUkD/BIAAAAAASUVORK5CYII=]]></data>
	</file>
	<file>
	  <filename>/images/jqueryui/ui-bg_diagonals-thick_20_666666_40x40.png</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[iVBORw0KGgoAAAANSUhEUgAAACgAAAAoCAYAAACM/rhtAAAAwklEQVRYhe3XXQqDMBhE0dtsIKvNwrOC+mIhTfNrlAzlm0eR4ShomFcI4U2WGGN+6Sfe++49d/S5O8tKWe37AqrhIAEq4uAEquIAnDIOCh/JStkTD9sE7sZB4w0q4KACVMFBAaiEgwyohoMEqIiDE6iKA3DKOBj4Uc+UPfGwQ8Cdx2EXuPusbgJ346ABVMBBBaiCA9sktknmyj6xTXK1zDbJalkrtklGykqxTTJTlsY2yZUysE2yVjYa2yS1sl7+cpMcegPyrqBRcaoAAAAASUVORK5CYII=]]></data>
	</file>
	<file>
	  <filename>/images/jqueryui/ui-bg_flat_10_000000_40x100.png</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[iVBORw0KGgoAAAANSUhEUgAAACgAAABkCAYAAAD0ZHJ6AAAAeUlEQVRoge3OMQHAIBAAsQf/nlsJDDfAkCjImplvHrZvB04EK8FKsBKsBCvBSrASrAQrwUqwEqwEK8FKsBKsBCvBSrASrAQrwUqwEqwEK8FKsBKsBCvBSrASrAQrwUqwEqwEK8FKsBKsBCvBSrASrAQrwUqwEqwEqx92LQHHRpDUNwAAAABJRU5ErkJggg==]]></data>
	</file>
	<file>
	  <filename>/images/jqueryui/ui-bg_glass_100_f6f6f6_1x400.png</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[iVBORw0KGgoAAAANSUhEUgAAAAEAAAGQCAYAAABvWArbAAAAL0lEQVQ4je3HsQ0AIBDDwIT9F/4igpYiAyDk5mRrZvaSJAD4liT32u7bqi0APMcBiYQKDwcroFAAAAAASUVORK5CYII=]]></data>
	</file>
	<file>
	  <filename>/images/jqueryui/ui-bg_glass_100_fdf5ce_1x400.png</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[iVBORw0KGgoAAAANSUhEUgAAAAEAAAGQCAYAAABvWArbAAAARElEQVQ4jWP4+/PhfyYGBgaGUWKUGCWGL/HnLQMTAwMjjGBkYmBiYGBiYGJgZEZlMcNlYRKMCMUQAwbcM6PEKDFKYCEAGrQJAcbElNQAAAAASUVORK5CYII=]]></data>
	</file>
	<file>
	  <filename>/images/jqueryui/ui-bg_glass_65_ffffff_1x400.png</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[iVBORw0KGgoAAAANSUhEUgAAAAEAAAGQCAYAAABvWArbAAAAMElEQVQ4je3LIQ4AIBTD0O3f/8wrFgmKhMy8pKJKwkhSKeVbbGuAPU9f4PIopTxgAeS0DRtI4yK0AAAAAElFTkSuQmCC]]></data>
	</file>
	<file>
	  <filename>/images/jqueryui/ui-bg_gloss-wave_35_f6a828_500x100.png</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[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]]></data>
	</file>
	<file>
	  <filename>/images/jqueryui/ui-bg_highlight-soft_100_eeeeee_1x100.png</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[iVBORw0KGgoAAAANSUhEUgAAAAEAAABkCAYAAABHLFpgAAAAIUlEQVQYlWP48ePHfyYGBgaGIUT8//8fO5cSFn6J4UQAAJSgIpAFCJPdAAAAAElFTkSuQmCC]]></data>
	</file>
	<file>
	  <filename>/images/jqueryui/ui-bg_highlight-soft_75_ffe45c_1x100.png</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[iVBORw0KGgoAAAANSUhEUgAAAAEAAABkCAYAAABHLFpgAAAASElEQVQYldWPwQmAQBADJ+m/DfuzgN2ND/WjX+HwMzAQBkL2LQb4EZLCZLAYnDSWGpO6lBSGwjy1sHjvRN+pM1oYBmv5349xADIyLQUayPX/AAAAAElFTkSuQmCC]]></data>
	</file>
	<file>
	  <filename>/images/jqueryui/ui-icons_222222_256x240.png</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[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]]></data>
	</file>
	<file>
	  <filename>/images/jqueryui/ui-icons_228ef1_256x240.png</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[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]]></data>
	</file>
	<file>
	  <filename>/images/jqueryui/ui-icons_ef8c08_256x240.png</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[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]]></data>
	</file>
	<file>
	  <filename>/images/jqueryui/ui-icons_ffd27a_256x240.png</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[iVBORw0KGgoAAAANSUhEUgAAAQAAAADwCAMAAADYSUr5AAAA7VBMVEX80nz80nz80nz80nz80nz80nz80nz80nz80nz80nz80nz80nz80nz80nz80nz80nz80nz80nz80nz80nz80nz80nz80nz80nz80nz80nz80nz80nz80nz80nz80nz80nz80nz80nz80nz80nz80nz80nz80nz80nz80nz80nz80nz80nz80nz80nz80nz80nz80nz80nz80nz80nz80nz80nz80nz80nz80nz80nz80nz80nz80nz80nz80nz80nz80nz80nz80nz80nz80nz80nz80nz80nz80nz80nz80nz80nz80nz80nz80nzkx5/eAAAATnRSTlMAGBAyBAhQv4OZLiJUcEBmYBoSzQwgPBZCSEoeWiYwUiyFNIeBw2rJz8c4RBy9uXyrtaWNqa2zKP2fJO8KBgKPo2KVoa9s351GPm5+kWho0kj9AAAPhUlEQVR4nO1djWLbthEGyUiq5YSSLXtp7FpLOmfzkmxr126tmi2p03RJ1/Xe/3EGgARxPyAgRbIk2/hkSz4CJO4+HsE7AJSVysjI2AMUUOxahZ2iANhzBtZWr4BoIRSYAVN5u4QwDwQDRbcwfUi5KS3wFuDmFnQLa4Dtb//cqktwD5QEFFwfUs7PoCCA7y4bEJVFizcIob8KmhAplwwqVjt+9FBl3uINQniwEiryEyw9JHqGpQdEFNi+B4QQ7QOiHhysIPoAxUqxvdvvA9K42bsAv4S2fxfYOe57IJSRkZGRkZGxx7jxSHDHcRBXQMTyIjInBgHwBJ/bEx8PEANC+uhbpSSggCBAVODVabpI1S/k4WLZpTn6NpMhoX9Y40hxYERFpMcqUs4AloCtDQdID1YhnyXZ2hLjAYWiO9Dy1PDB7tPhIqLx+uMB8grZaR+Qxl2/C2RkZGRkZGRk7A7rBf7J0DR5/LUTjzUPIPSPGvQJiVJiB7kcQCiUOJrcFNtDZIf2xarQ3aGvLNxAVIFAabz90BFiBIlycTBhgWwOWCH0FLYHlPqwHaCvcIn2ZbosCevfPTRiFFcgvHukCjWwrc3GrGh1fsAof8EaUReKXkCB4/MzFNo97qLpFiKFYv/kNR5YQxQbQEofkZ2OuEOHqqT6gFTpru8CN7x/+jaZkZGRkZGRcV+x/rLUNcMM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]]></data>
	</file>
	<file>
	  <filename>/images/jqueryui/ui-icons_ffffff_256x240.png</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[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]]></data>
	</file>
	<file>
	  <filename>/images/moduleui</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/images/moduleui/ajax-loader-wide.gif</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[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]]></data>
	</file>
	<file>
	  <filename>/images/moduleui/banner.png</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[iVBORw0KGgoAAAANSUhEUgAAAAEAAABQCAYAAADYxx/bAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAABx0RVh0U29mdHdhcmUAQWRvYmUgRmlyZXdvcmtzIENTNXG14zYAAAAWdEVYdENyZWF0aW9uIFRpbWUAMTAvMTAvMzDEOp2NAAAAJ0lEQVQYlWP4+PHjfyYGBgYGpv///0MJNC6xYkSYQl9tpLt5wL0KAHD2rsaLVlOZAAAAAElFTkSuQmCC]]></data>
	</file>
	<file>
	  <filename>/images/moduleui/blank.gif</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[R0lGODlhAQABAID/AMDAwAAAACH5BAEAAAAALAAAAAABAAEAAAICRAEAOw==]]></data>
	</file>
	<file>
	  <filename>/images/moduleui/index.html</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[]]></data>
	</file>
	<file>
	  <filename>/images/moduleui/xml_rss.gif</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[R0lGODlhJAAOAOYAAP/////9+f/9+v/68f/58P/45P/24//z3v7x2/7v2v7pvP7os/7muf7nqP7ktf7lr/7jo/7iq/7jmf7frv7gnv7cq/7fiv7cmf7YlP3be/3eZP3bYP3Vm/3aX/7Uj/3VfP3WWv3Qiv3Rgv3VWf3UWP3SXPzQY/3Mhf3PUPzLU/zKW/3FafzHRvzDU/zESv3DXfzAYvzAPPy8S/68N/64Mvy2Qvy4M/6xKfywOvywKfypMfuoJvypH/yjKfukHPuhFfucE/uaE/uZC/+WBf+VBPuVCf2TAvuRAPuSAf///wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAEHAEkALAAAAAAkAA4AAAf/gDdEREOFhoeIiYqHgjMbGpCRkpOUlZAdNIMkIJydnp+goZ+DKKWlDQWlGQUlpQUSphasKLKmtqWDLLq6KQALLAIGuwAAuwICJiwQxbvNLIMx0dIPAAoALtLEHzEqxCoxFADS49GDNufoNsQR6QABAzYMxC02FwDp+IM5+/w5BwAi+gHAAOAFAAcAZOQg2K/hIB4QI64AQABARB4AalQMUCMjDw8WL14c9KOkSQAIfACYcBIHDAAhcADA8SPETBw4dpgsOUiIT58VAAARwgGADp9GhQAQoiPpCWLEEvz0OQiJVas9glztUQSr1a5IenztQTbrVauDiBxZy7at27dwDd0SMZK2rt27ePPODQQAOw==]]></data>
	</file>
	<file>
	  <filename>/images/pp_button.png</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[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]]></data>
	</file>
	<file>
	  <filename>/images/pp_qr_code.png</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[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]]></data>
	</file>
	<file>
	  <filename>/index.html</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[]]></data>
	</file>
	<file>
	  <filename>/lang</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/lang/en_US.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHANCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQojIExJU0UgLSBMaXN0IEl0IFNwZWNpYWwgRWRpdGlvbg0KIyBWZXJzaW9uIDEuMg0KIyBBIGZvcmsgb2YgTGlzdEkyDQojIG1haW50YWluZWQgYnkgRmVybmFuZG8gTW9yZ2FkbyBBS0EgSm8gTW9yZw0KIyBzaW5jZSAyMDE1DQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIw0KIyBPcmlnaW5hbCBBdXRob3I6IEJlbiBNYWxlbiwgPGJlbkBjb25jZXB0ZmFjdG9yeS5jb20uYXU+DQojIENvLU1haW50YWluZXI6IFNpbW9uIFJhZGZvcmQsIDxzaW1vbkBjb25jZXB0ZmFjdG9yeS5jb20uYXU+DQojIFdlYjogd3d3LmNvbmNlcHRmYWN0b3J5LmNvbS5hdQ0KIw0KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCiMNCiMgTWFpbnRhaW5lciBzaW5jZSAyMDExIHVwIHRvIDIwMTQ6IEpvbmF0aGFuIFNjaG1pZCwgPGhpQGpvbmF0aGFuc2NobWlkLmRlPg0KIyBXZWI6IHd3dy5qb25hdGhhbnNjaG1pZC5kZQ0KIw0KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCiMNCiMgU29tZSB3YWNrb3Mgc3RhcnRlZCBkZXN0cm95aW5nIHN0dWZmIHNpbmNlIDIwMTIgYW5kIHN0b3BwZWQgYXQgMjAxNDoNCiMNCiMgVGFwaW8gTMO2eXR0eSwgPHRhcHNhQG9yYW5nZS1tZWRpYS5maT4NCiMgV2ViOiB3d3cub3JhbmdlLW1lZGlhLmZpDQojDQojIEdvcmFuIElsaWMsIDx1bmlxdTNlQGdtYWlsLmNvbT4NCiMgV2ViOiB3d3cuaWNoLW1hY2gtZGFzLmF0DQojDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIw0KIyBMSVNFIGlzIGEgQ01TIE1hZGUgU2ltcGxlIG1vZHVsZSB0aGF0IGVuYWJsZXMgdGhlIHdlYiBkZXZlbG9wZXIgdG8gY3JlYXRlDQojIG11bHRpcGxlIGxpc3RzIHRocm91Z2hvdXQgYSBzaXRlLiBJdCBjYW4gYmUgZHVwbGljYXRlZCBhbmQgZ2l2ZW4gZnJpZW5kbHkNCiMgbmFtZXMgZm9yIGVhc2llciBjbGllbnQgbWFpbnRlbmFuY2UuDQojDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIyBCRUdJTl9MSUNFTlNFDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIyBUaGlzIGZpbGUgaXMgcGFydCBvZiBMSVNFDQojIExJU0UgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5DQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5DQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yDQojIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uDQojDQojIExJU0UgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLA0KIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZg0KIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlDQojIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuDQojIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlDQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlDQojIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcgVVNBDQojIE9yIHJlYWQgaXQgb25saW5lOiBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwNCiMNCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQojIEVORF9MSUNFTlNFDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KDQovKiAtLS0gZG8gbm90IGVkaXQgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovDQovKiBPbmx5IG5lY2Vzc2FyeSBpbiB0aGUgRW5nbGlzaCBsYW5nIGZpbGUsIGJlY2F1c2UgaXQncyBhbHdheXMgbG9hZGVkIGZpcnN0LCBldmVuIGlmIEVuZ2xpc2ggaXMgbm90IHRoZSB1c2VyJ3MgbGFuZ3VhZ2UuDQoqLw0KJG1vZHVsZV9uYW1lID0gJyc7DQppZiggaXNzZXQoJG1vZGluc3RhbmNlKSAmJiBpc19vYmplY3QoJG1vZGluc3RhbmNlKSApIHsgJG1vZHVsZV9uYW1lID0gJG1vZGluc3RhbmNlLT5HZXROYW1lKCk7IH0NCg0KLyogLS0gZW5kIG9mIGRvIG5vdCBlZGl0IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqLw0KDQovLyBnbG9iYWwNCiRsYW5nWydpbnZhbGlkX2NoYXJhY3RlcnMnXSA9ICdDaGFyYWN0ZXJzLCBzdWNoOiAlcyBub3QgYWxsb3dlZCB3aXRoIGZpZWxkOiAlcyc7DQokbGFuZ1snZ3JlZW4nXSA9ICdHcmVlbic7DQokbGFuZ1sneWVsbG93J10gPSAnWWVsbG93JzsNCiRsYW5nWydyZWQnXSA9ICdSZWQnOw0KJGxhbmdbJ2xpc2VfbW9kZV9saXN0X25hbWUnXSA9ICdMaXN0IE1vZGUnOw0KJGxhbmdbJ2xpc2VfbW9kZV9nbG9iYWxfbmFtZSddID0gJ0dsb2JhbCBNb2RlJzsNCiRsYW5nWydsaXNlX21vZGVfbG9jYWxfbmFtZSddID0gJ0xvY2FsIE1vZGUnOw0KJGxhbmdbJ3Byb21wdF90aXRsZV9kaXNwbGF5X21vZGUnXSA9ICdUaXRsZSBEaXNwbGF5IE1vZGUnOw0KJGxhbmdbJ3RkbV9pbnB1dCddID0gJ2lucHV0JzsNCiRsYW5nWyd0ZG1fcmVhZG9ubHknXSA9ICdyZWFkb25seSc7DQokbGFuZ1sndGRtX2hpZGRlbiddID0gJ2hpZGRlbic7DQokbGFuZ1sncHJvbXB0X3RpdGxlX2F1dG9fZ2VuJ10gPSAnQXV0byBHZW5lcmF0ZSBUaXRsZSc7DQokbGFuZ1sncHJvbXB0X3RpdGxlX3RlbXBsYXRlJ10gPSAnQXV0byBHZW5lcmF0ZSBUaXRsZSBUZW1wbGF0ZSc7DQokbGFuZ1sncHJvbXB0X2FsaWFzX3RlbXBsYXRlJ10gPSAnQXV0byBHZW5lcmF0ZSBBbGlhcyBUZW1wbGF0ZSc7DQoNCi8vIHRhYnMNCiRsYW5nWydpdGVtJ10gPSAnSXRlbSc7DQokbGFuZ1snaXRlbXMnXSA9ICdJdGVtcyc7DQokbGFuZ1snZ2xvYmFsJ10gPSAnR2xvYmFsIFNldHRpbmdzJzsNCiRsYW5nWydsb2NhbF9zZXR0aW5ncyddID0gJ1NldHRpbmdzJzsNCiRsYW5nWydmaWVsZGRlZiddID0gJ0ZpZWxkIERlZmluaXRpb24nOw0KJGxhbmdbJ2ZpZWxkZGVmcyddID0gJ0ZpZWxkIERlZmluaXRpb25zJzsNCiRsYW5nWyd0ZW1wbGF0ZSddID0gJ1RlbXBsYXRlJzsNCiRsYW5nWyd0ZW1wbGF0ZXMnXSA9ICdUZW1wbGF0ZXMnOw0KJGxhbmdbJ2NhdGVnb3J5J10gPSAnQ2F0ZWdvcnknOw0KJGxhbmdbJ2NhdGVnb3JpZXMnXSA9ICdDYXRlZ29yaWVzJzsNCiRsYW5nWydvcHRpb24nXSA9ICdPcHRpb24nOw0KJGxhbmdbJ29wdGlvbnMnXSA9ICdPcHRpb25zJzsNCiRsYW5nWydtYWludGVuYW5jZSddID0gJ01haW50ZW5hbmNlJzsNCiRsYW5nWydiYWNrJ10gPSAnR28gb25lIHBhZ2UgYmFjayc7DQokbGFuZ1snYWJvdXQnXSA9ICdBYm91dCc7DQokbGFuZ1snY29udHJpYnV0ZSddID0gJ0NvbnRyaWJ1dGUnOw0KJGxhbmdbJ3doYXRzbmV3J10gPSAnV2hhdFwncyBOZXcnOw0KDQovLyBtYWludGVuYW5jZQ0KJGxhbmdbJ3Byb21wdF9maXhfZmllbGRkZWZzJ10gPSAnQXR0ZW1wdCB0byByZXBhaXIgZmllbGQgZGVmaW5pdGlvbiBkYXRhYmFzZSB0YWJsZXMnOw0KJGxhbmdbJ21lc3NhZ2VfZmllbGRkZWZzX2ZpeGVkJ10gPSAnRmllbGQgRGVmaW5pdGlvbnMgb24gYWxsIGluc3RhbmNlcyByZXBhaXJlZC4nOw0KJGxhbmdbJ21lc3NhZ2VfaW5zdGFuY2VzX2NvcGllZCddID0gJ0FsbCBpbnN0YW5jZXMgaGF2ZSBiZWVuIGNsb25lZC4nOw0KDQovLyBpdGVtcw0KJGxhbmdbJ2l0ZW1fdGl0bGUnXSA9ICdUaXRsZSc7DQokbGFuZ1sncHJvbXB0X2l0ZW1fdGl0bGUnXSA9ICdJdGVtIHRpdGxlJzsNCiRsYW5nWydwcm9tcHRfb2YnXSA9ICdvZic7DQokbGFuZ1snYWN0aXZlJ10gPSAnQWN0aXZlJzsNCiRsYW5nWydjcmVhdGVfdGltZSddID0gJ0RhdGUgY3JlYXRlZCc7DQokbGFuZ1snbW9kaWZpZWRfdGltZSddID0gJ0RhdGUgbW9kaWZpZWQnOw0KJGxhbmdbJ3RpbWVfY29udHJvbCddID0gJ1VzZSB0aW1lIGNvbnRyb2wnOw0KJGxhbmdbJ3N0YXJ0X3RpbWUnXSA9ICdTdGFydCB0aW1lJzsNCiRsYW5nWydlbmRfdGltZSddID0gJ0VuZCB0aW1lJzsNCiRsYW5nWydpdGVtX3RpdGxlX2VtcHR5J10gPSAnSXRlbSB0aXRsZSBpcyBlbXB0eSc7DQokbGFuZ1sncmVxdWlyZWRfZmllbGRfZW1wdHknXSA9ICdSZXF1aXJlZCBmaWVsZCBpcyBlbXB0eSc7DQokbGFuZ1sndG9vX2xvbmcnXSA9ICdGaWVsZCB2YWx1ZSBleGNlZWRzIG1heCBsZW5ndGgnOw0KJGxhbmdbJ2FwcHJvdmUnXSA9ICdTZXQgU3RhdHVzIHRvIFwnQWN0aXZlXCcnOw0KJGxhbmdbJ3JldmVydCddID0gJ1NldCBTdGF0dXMgdG8gXCdJbmFjdGl2ZVwnJzsNCiRsYW5nWyd0b2dnbGVfc3RhdHVzJ10gPSAnVG9nZ2xlIFN0YXR1cyc7DQokbGFuZ1snc2VsZWN0X2l0ZW0nXSA9ICdTZWxlY3QgaXRlbSc7DQokbGFuZ1snc3VibWl0X29yZGVyJ10gPSAnU2F2ZSBvcmRlcic7DQokbGFuZ1snZGVsZXRlX3NlbGVjdGVkJ10gPSAnRGVsZXRlIFNlbGVjdGVkICVzJzsNCiRsYW5nWydhcmV5b3VzdXJlX2RlbGV0ZW11bHRpcGxlJ10gPSAnQXJlIHlvdSBzdXJlIHlvdSB3YW50IHRvIGRlbGV0ZSBhbGwgb2YgdGhlc2UgJXM/JzsNCiRsYW5nWydzZWxlY3RfYWxsJ10gPSAnU2VsZWN0IGFsbCc7DQokbGFuZ1snZXJyb3Jfc3RhcnRncmVhdGVyZW5kJ10gPSAnU3RhcnQgZGF0ZSBpcyBncmVhdGVyIHRoYW4gZW5kIGRhdGUuJzsNCiRsYW5nWydpdGVtX2FsaWFzX2V4aXN0cyddID0gJ0l0ZW0gYWxpYXMgYWxyZWFkeSBleGlzdHMuIEFsaWFzIG11c3QgYmUgdW5pcXVlLic7DQokbGFuZ1sncmV0dXJuX3VybCddID0gJ1JldHVybic7DQokbGFuZ1sncGF0aGNvbnRhaW5zdmFycyddID0gJ1RoaXMgZmllbGQgY2FuIGJlIGVkaXRlZCBhZnRlciBmaXJzdCBzYXZpbmcgdGhpcyAlcyc7IC8vIDwtIHVudXNlZC4NCiRsYW5nWyd1cmwnXSA9ICdDaG9vc2UgYSBjdXN0b20gVVJMIGZvciB0aGlzIGl0ZW0gb3IgYWNjZXB0IHRoZSBnZW5lcmF0ZWQgb25lJzsNCiRsYW5nWydvcHRpb25fY2xpY2tfYXJyb3dzJ10gPSAnQ2xpY2tpbmcgYXJyb3dzIHN1Ym1pdHMnOw0KJGxhbmdbJ2RsZ19lZGl0b3JfbnBfd2Fybl90aXRsZSddID0gJ0NvbmZpcm1hdGlvbic7DQokbGFuZ1snZGxnX2VkaXRvcl9ucF93YXJuaW5nJ10gPSAnPHA+WW91IGhhdmUgbWFkZSBjaGFuZ2VzIHRvIHRoaXMgZm9ybSBhbmQgd2lsbCBsb3NlIHRoZW0gaWYgeW91IGxlYXZlITwvcD48cD5BcmUgeW91IHN1cmUgeW91IHdhbnQgdG8gcHJvY2VlZD88L3A+JzsNCg0KLy8gSXRlbSBzdGF0aWMgdmFyaWFibGUgaGVscHMNCiRsYW5nWydpdGVtX3Zhcl9oZWxwX2l0ZW1faWQnXSA9ICdJZiBpdGVtX2lkIGlzIGdpdmVuLCBpdGVtcyBhcmUgZXhwZWN0ZWQgdG8gYmUgZXhpc3Rpbmcgb25lcyBpbiBkYXRhYmFzZS4gSWYgeW91XCdyZSBpbXBvcnRpbmcgbmV3IGl0ZW1zLCBpZ25vcmUgdGhpcyBmaWVsZC4nOw0KJGxhbmdbJ2l0ZW1fdmFyX2hlbHBfY2F0ZWdvcnlfaWQnXSA9ICdJZiBjYXRlZ29yeV9pZCBpcyBnaXZlbiwgdGhlIGl0ZW0gd2lsbCBiZSBzZXQgaW50byB0aGlzIGNhdGVnb3J5LiBJZiBjYXRlZ29yeV9pZCBpcyBnaXZlbiBidXQgZG9lc25cJ3QgZXhpc3QsIGl0IGlzIGlnbm9yZWQgYW5kIHRoZSBkZWZhdWx0IGNhdGVnb3J5IGlzIHVzZWQgaW5zdGVhZC4nOw0KJGxhbmdbJ2l0ZW1fdmFyX2hlbHBfdGl0bGUnXSA9ICdJdGVtIHRpdGxlIHRoYXQgaXMgc2hvd24gaW4gVVJMIGFuZCBkZXNjcmliZXMgaXRlbS4nOw0KJGxhbmdbJ2l0ZW1fdmFyX2hlbHBfYWxpYXMnXSA9ICdJdGVtIGFsaWFzIGRldGVybWluZXMgZnJpZW5kbHkgY29tcHV0ZXIgYWNjZXB0YWJsZSBuYW1lIG9mIGl0ZW0uIEFsaWFzIGlzIHVuaXF1ZSBmb3IgZWFjaCBpdGVtLic7DQokbGFuZ1snaXRlbV92YXJfaGVscF91cmwnXSA9ICdJdGVtIGN1c3RvbSBVUkwuIE11c3QgYmUgdW5pcXVlIGZvciBlYWNoIGl0ZW0gYW5kIHN5c3RlbSB3aWRlLic7DQokbGFuZ1snaXRlbV92YXJfaGVscF9wb3NpdGlvbiddID0gJ1lvdSBjYW4gc2V0IHRoZSBwb3NpdGlvbiBvZiBpdGVtcyB3aGljaCBkZXRlcm1pbmVzIHRoZWlyIG9yZGVyIG9mIGRpc3BsYXkuJzsNCiRsYW5nWydpdGVtX3Zhcl9oZWxwX2FjdGl2ZSddID0gJ1RoaXMgb3B0aW9uIHdpbGwgc2V0IHRoZSBpdGVtIGFzIGVpdGhlciBhY3RpdmUgb3IgaW5hY3RpdmUuJzsNCiRsYW5nWydpdGVtX3Zhcl9oZWxwX3N0YXJ0X3RpbWUnXSA9ICdTZXQgdGhlIHRpbWUgd2hlbiB5b3Ugd2FudCB0byBzaG93IHRoaXMgaXRlbS4nOw0KJGxhbmdbJ2l0ZW1fdmFyX2hlbHBfZW5kX3RpbWUnXSA9ICdTZXQgdGhlIHRpbWUgd2hlbiB5b3Ugd2FudCB0byBoaWRlIHRoaXMgaXRlbS4nOw0KJGxhbmdbJ2l0ZW1fdmFyX2hlbHBfb3duZXInXSA9ICdTZXQgYWRtaW4gdXNlciBJRCBmb3IgdGhpcyBpdGVtLCB0byBzZXQgb3duZXIuJzsNCiRsYW5nWydpdGVtX3Zhcl9oZWxwX2tleTEnXSA9ICdTZXQgYWRkaXRpb25hbCBpZGVudGlmaWVyIFwna2V5MVwnIGZvciB0aGlzIGl0ZW0uJzsNCiRsYW5nWydpdGVtX3Zhcl9oZWxwX2tleTInXSA9ICdTZXQgYWRkaXRpb25hbCBpZGVudGlmaWVyIFwna2V5MlwnIGZvciB0aGlzIGl0ZW0uJzsNCiRsYW5nWydpdGVtX3Zhcl9oZWxwX2tleTMnXSA9ICdTZXQgYWRkaXRpb25hbCBpZGVudGlmaWVyIFwna2V5M1wnIGZvciB0aGlzIGl0ZW0uJzsNCg0KLy8gZmllbGQgZGVmaW5pdGlvbnMNCiRsYW5nWydtYWluX3NldHRpbmdzJ10gPSAnTWFpbiBTZXR0aW5ncyc7DQokbGFuZ1snZWRpdGZpZWxkZGVmJ10gPSAnRWRpdCBGaWVsZCBEZWZpbml0aW9uJzsNCiRsYW5nWydmaWVsZGRlZl9uYW1lJ10gPSAnTmFtZSc7DQokbGFuZ1snZmllbGRkZWZfaGVscCddID0gJ0hlbHBmdWwgdGlwJzsNCiRsYW5nWydmaWVsZGRlZl90eXBlJ10gPSAnVHlwZSc7DQokbGFuZ1snZmllbGRkZWZfZGVwcyddID0gJ01vZHVsZSBEZXBlbmRlbmNpZXMnOw0KJGxhbmdbJ2ZpZWxkZGVmX2RlcHNfbWlzc2luZyddID0gJ09uZSBvciBtb3JlIG1vZHVsZSBkZXBlbmRlbmNpZXMgYXJlIG1pc3NpbmcuIFBsZWFzZSBpbnN0YWxsIGFsbCByZXF1aXJlZCBtb2R1bGVzIHRvIHN0YXJ0IHVzaW5nIHRoaXMgZmllbGQuJzsNCiRsYW5nWydmaWVsZGRlZl9zY2FuJ10gPSAnU2NhbiBGaWVsZCBEZWZpbml0aW9ucyc7DQokbGFuZ1snZmllbGRkZWZfc2Nhbm5lZCddID0gJ0ZpZWxkIERlZmluaXRpb25zIHNjYW5uZWQnOw0KJGxhbmdbJ2ZpZWxkZGVmX3R5cGVfbm90c2V0J10gPSAnRmllbGQgRGVmaW5pdGlvbnMgdHlwZSBpcyBub3Qgc2V0JzsNCiRsYW5nWydmaWVsZGRlZl9mcmllbmRseXR5cGUnXSA9ICdGcmllbmRseSBUeXBlJzsNCiRsYW5nWydmaWVsZGRlZl9vcmlnaW5hdG9yJ10gPSAnT3JpZ2luYXRvcic7DQokbGFuZ1snZmllbGRkZWZfbWF4X2xlbmd0aCddID0gJ01heGltdW0gbGVuZ3RoJzsNCiRsYW5nWydmaWVsZGRlZl9yZXF1aXJlZCddID0gJ1JlcXVpcmVkJzsNCiRsYW5nWydyZWdpc3RlcmVkX2ZpZWxkZGVmcyddID0gJ1JlZ2lzdGVyZWQgRmllbGQgRGVmaW5pdGlvbnMnOw0KJGxhbmdbJ2ZpZWxkZGVmX25hbWVfZW1wdHknXSA9ICdGaWVsZCBkZWZpbml0aW9uIG5hbWUgaXMgZW1wdHknOw0KJGxhbmdbJ2ZpZWxkZGVmX25hbWVfZXhpc3RzJ10gPSAnRmllbGQgZGVmaW5pdGlvbiBuYW1lIGFscmVhZHkgZXhpc3RzJzsNCiRsYW5nWydmaWVsZGRlZl9hbGlhc19leGlzdHMnXSA9ICdGaWVsZCBkZWZpbml0aW9uIGFsaWFzIGFscmVhZHkgZXhpc3RzLiBBbGlhcyBtdXN0IGJlIHVuaXF1ZS4nOw0KJGxhbmdbJ2ZpZWxkZGVmX2lzX3VuaXF1ZSddID0gJ0ZpZWxkIGRlZmluaXRpb24gaXMgdW5pcXVlLCB5b3UgY2FuXCd0IGhhdmUgbW9yZSB0aGFuIG9uZSBvZiB0aGVzZS4nOw0KJGxhbmdbJ2ZpZWxkZGVmX2ltYWdlJ10gPSAnRXhwZWN0ZWQgdG8gYmUgaW1hZ2UnOw0KJGxhbmdbJ2ludmFsaWQnXSA9ICdGaWVsZCB2YWx1ZSBpcyBpbnZhbGlkJzsNCiRsYW5nWydzdGF0dXNfcmVxdWlyZWQnXSA9ICdTZXQgc3RhdHVzIHRvIFwncmVxdWlyZWRcJyc7DQokbGFuZ1snc3RhdHVzX29wdGlvbmFsJ10gPSAnU2V0IHN0YXR1cyB0byBcJ29wdGlvbmFsXCcnOw0KJGxhbmdbJ2lzX2RlZmF1bHQnXSA9ICdJcyBzZXQgdG8gXCdEZWZhdWx0XCcnOw0KJGxhbmdbJ3N0YXR1c19kZWZhdWx0J10gPSAnU2V0IHRvIFwnRGVmYXVsdFwnJzsNCiRsYW5nWydoZWxwdGV4dF90aXRsZSddID0gJ1Bvc3NpYmxlIEZpZWxkIERlZmluaXRpb24gaW5zdHJ1Y3Rpb25zIGZvciBFeHRyYSBmaWVsZDonOw0KJGxhbmdbJ2ZpZWxkZGVmX3RlbXBsYXRlJ10gPSAnVGVtcGxhdGUgKGRlcHJlY2F0ZWQpJzsNCiRsYW5nWydmaWVsZF9zZWFyY2hfaW5kZXgnXSA9ICdBbGxvdyB0aGlzIGZpZWxkIHRvIGJlIGluZGV4ZWQgYnkgZ2xvYmFsIHNlYXJjaCc7DQokbGFuZ1sncHJvbXB0X3JlaW5kZXhfZG9fc2VhcmNoJ10gPSAnUmUtaW5kZXggc2VhcmNoIG9uIHN1Ym1pdCAob3IgcmVtb3ZlIHdvcmRzIGlmIHRoZSBhYm92ZSBpcyB1bmNoZWNrZWQpJzsNCiRsYW5nWydmaWVsZGRlZl9zZWFyY2hfaW5kZXhfaGVscCddID0gJ0NoZWNraW5nIHRoaXMgYm94IHdpbGwgbWFyayB0aGlzIGZpZWxkIHRvIGJlIGluZGV4ZWQgYnkgZ2xvYmFsIHNlYXJjaCwgd2hlbiBjcmVhdGluZyBuZXcgaXRlbXMsIGVkaXRpbmcgaXRlbXMsIG9yIHJlLWluZGV4aW5nIGFsbCBjb250ZW50IGZyb20gdGhlIHNlbGVjdGVkIHNlYXJjaCBtb2R1bGUuJzsNCiRsYW5nWyd3YXJuaW5nX3JlaW5kZXhfc2VhcmNoX25vdyddID0gJ1BsZWFzZSBub3RlIHRoaXMgY2FuIGJlIHNsb3csIGRlcGVuZGluZyBvbiB0aGUgbnVtYmVyIG9mIHJlY29yZHMuJzsNCiRsYW5nWyd3YXJuaW5nX3JlaW5kZXhfc2VhcmNoJ10gPSAnUGxlYXNlIG5vdGUgdGhhdCB3aGlsZSB0aGlzIG1vZHVsZSB3YXMgbm90IGRlc2lnbmVkIHRvIHN1cHBvcnQgYSBsYXJnZSBudW1iZXIgb2YgaXRlbXMsIGl0IGhhcyBiZWVuIGtub3duIHRvIGJlIHVzZWQsIGluIGNlcnRhaW4gc2VydmVyIGNvbmZpZ3VyYXRpb25zLCB3aXRoIHRlbnMgb2YgdGhvdXNhbmRzIG9mIHJlY29yZHMgdG9nZXRoZXIgd2l0aCBhIGhpZ2ggbnVtYmVyIG9mIGN1c3RvbSBmaWVsZHMgcGVyIGluc3RhbmNlIGFsbCB3aXRoIGEgcmVhc29uYWJsZSBwZXJmb3JtYW5jZS4gQXMgc3VjaCBwbGVhc2UgYmUgYWR2aXNlZCB0aGF0IGluZGV4aW5nIHRoaXMgbW9kdWxlIHdpdGggdGhlIHNlYXJjaCBtb2R1bGUgY2FuIG9ubHkgYmUgZWZmZWN0aXZlIHdpdGggaXRlbXMgaW4gdGhlIG9yZGVyIG9mIHRoZSBodW5kcmVkcyBvZiByZWNvcmRzLCBub3QgdGhvdXNhbmRzLiBJZiB5b3UgcGxhbiB0byB1c2UgYSBodWdlIG51bWJlciByZWNvcmRzLCBrZWVwIGluIG1pbmQgdGhhdCB0aGUgaW5kZXhpbmcgYW5kIHRoZSBzZWFyY2ggaXRzZWxmIGNhbiBiZSBzbG93IHRvIHRoZSBleHRyZW1lIG9mIGJlaW5nIHVudXNhYmxlLCBzbyB5b3Ugc2hvdWxkIHN0aWNrIHRvIHRoZSBtb2R1bGUgb3duIHNlYXJjaCBmZWF0dXJlIGFzIGl0IGlzIG9wdGltaXplZCBmb3IgdGhlc2UgY2FzZXMuJzsNCg0KLy8gZmllbGRzIGRlZmZzDQoNCi8vIFRleHRJbnB1dA0KJGxhbmdbJ2ZpZWxkZGVmX1RleHRJbnB1dCddID0gJ1RleHQgSW5wdXQnOw0KLy8gQ2hlY2tCb3gNCiRsYW5nWydmaWVsZGRlZl9DaGVja2JveCddID0gJ0NoZWNrYm94JzsNCi8vIFRleHRBcmVhDQokbGFuZ1snZmllbGRkZWZfVGV4dEFyZWEnXSA9ICdUZXh0IEFyZWEnOw0KLy8gU2VsZWN0IERhdGUgKGRlcHJlY2F0ZWQpDQokbGFuZ1snZmllbGRkZWZfU2VsZWN0RGF0ZSddID0gJ1NlbGVjdCBEYXRlJzsNCi8vIFNlbGVjdCBEYXRlVGltZQ0KJGxhbmdbJ2ZpZWxkZGVmX1NlbGVjdERhdGVUaW1lJ10gPSAnU2VsZWN0IERhdGVUaW1lJzsNCiRsYW5nWydmaWVsZGRlZl9kdF9iYWNrd2FyZHNfY29tcGF0aWJpbGl0eSddID0gJ0JhY2t3YXJkcyBDb21wYXRpYmlsaXR5JzsNCiRsYW5nWydmaWVsZGRlZl9kdF9maWVsZGRlZl9iYWNrd2FyZHNfY29tcGF0aWJpbGl0eV9oZWxwJ10gPSAnQ2hlY2sgdGhpcyBmaWVsZCB0byBrZWVwIHVzaW5nIG9sZCBEYXRlVGltZSBkYiBzdG9yYWdlJzsNCi8vRHJvcGRvd24NCiRsYW5nWydmaWVsZGRlZl9Ecm9wZG93biddID0gJ0Ryb3Bkb3duJzsNCi8vIENvbnRlbnQgUGFnZXMNCiRsYW5nWydmaWVsZGRlZl9Db250ZW50UGFnZXMnXSA9ICdDb250ZW50IFBhZ2VzJzsNCi8vIFNlbGVjdCBGaWxlDQokbGFuZ1snZmllbGRkZWZfU2VsZWN0RmlsZSddID0gJ1NlbGVjdCBGaWxlJzsNCi8vIFJhZGlvIEdyb3VwDQokbGFuZ1snZmllbGRkZWZfUmFkaW9Hcm91cCddID0gJ1JhZGlvIEdyb3VwJzsNCiRsYW5nWydlbmFibGVfanF1aSddID0gJ1VzZSBqUXVlcnlVSSBCdXR0b25zJzsNCi8vIFNsaWRlcg0KJGxhbmdbJ2ZpZWxkZGVmX1NsaWRlciddID0gJ1NsaWRlcic7DQovLyBNdWx0aSBTZWxlY3QNCiRsYW5nWydmaWVsZGRlZl9NdWx0aVNlbGVjdCddID0gJ011bHRpIFNlbGVjdCc7DQovLyBDaGVja2JveCBHcm91cA0KJGxhbmdbJ2ZpZWxkZGVmX0NoZWNrYm94R3JvdXAnXSA9ICdDaGVja2JveCBHcm91cCc7DQovLyBGaWxlIFVwbG9hZA0KJGxhbmdbJ2ZpZWxkZGVmX0ZpbGVVcGxvYWQnXSA9ICdGaWxlIFVwbG9hZCc7DQokbGFuZ1snZmllbGRkZWZfcmVzaXplX29wdF9sZWdlbmQnXSA9ICdSZXNpemUgSW1hZ2UgT3B0aW9ucyc7DQokbGFuZ1snZmllbGRkZWZfcmVzaXplX29wdF9pbmZvJ10gPSAnQWxsb3dzIHRoZSBpbWFnZSB0byBiZSByZXNpemVkIG9uIHVwbG9hZCwgd2lsbCBvbmx5IHdvcmsgaWYgPGI+RXhwZWN0ZWQgdG8gYmUgaW1hZ2U8L2I+IGlzIGNoZWNrZWQgYWJvdmUuJzsNCiRsYW5nWydmaWVsZGRlZl9yZXNpemVfb3B0X2VuYWJsZV9sYWJlbCddID0gJ0VuYWJsZSBSZXNpemUnOw0KJGxhbmdbJ2ZpZWxkZGVmX3Jlc2l6ZV9vcHRfbWF4X2ltZ193X2xhYmVsJ10gPSAnTWF4aW11bSBJbWFnZSBXaWR0aCc7DQokbGFuZ1snZmllbGRkZWZfcmVzaXplX29wdF9tYXhfaW1nX2hfbGFiZWwnXSA9ICdNYXhpbXVtIEltYWdlIEhlaWdodCc7DQokbGFuZ1snZmllbGRkZWZfcmVzaXplX29wdF9rZWVwX3Bhcl9sYWJlbCddID0gJ0tlZXAgQXNwZWN0IFJhdGlvJzsNCiRsYW5nWydmaWVsZGRlZl9yZXNpemVfb3B0X2Nhbl91cHNjYWxlX2xhYmVsJ10gPSAnQWxsb3cgVXAtc2NhbGluZyc7DQokbGFuZ1snZmllbGRkZWZfcmVzaXplX29wdF9xdWFsaXR5X2xhYmVsJ10gPSAnSW1hZ2UgUXVhbGl0eSc7DQoNCi8vIENvbG9yIFBpY2tlcg0KJGxhbmdbJ2ZpZWxkZGVmX0NvbG9yUGlja2VyJ10gPSAnQ29sb3IgUGlja2VyJzsNCi8vIFRhZ3MNCiRsYW5nWydmaWVsZGRlZl9UYWdzJ10gPSAnVGFncyc7DQovLyBUYWJzDQokbGFuZ1snZmllbGRkZWZfVGFicyddID0gJ1RhYic7DQoNCiMgQmFja2VuZFRleHQNCiRsYW5nWydmaWVsZGRlZl9CYWNrZW5kVGV4dCddID0gJ0JhY2tlbmQgVGV4dCc7DQokbGFuZ1snZmllbGRkZWZfQlRfY29udGFpbmVyX2RpdiddID0gJ0NvbnRhaW5lciBESVYgVHlwZSc7DQokbGFuZ1snZmllbGRkZWZfQlRfY29udGFpbmVyX2Rpdl9oZWxwJ10gPSAnVGhlc2UgYXJlIENNU01TIGNvcmUgYmFja2VuZCBjc3Mgc3R5bGVzJzsNCiRsYW5nWydmaWVsZGRlZl9CVF9jb250YWluZXJfdGV4dCddID0gJ1RleHQnOw0KJGxhbmdbJ2ZpZWxkZGVmX0JUX2NvbnRhaW5lcl90ZXh0X2hlbHAnXSA9ICdUaGUgdGV4dCB0byBkaXNwbGF5IG9uIHRoZSBiYWNrZW5kJzsNCiRsYW5nWydmaWVsZGRlZl9CVF9pbmZvcm1hdGlvbiddID0gJ0luZm9ybWF0aW9uJzsNCiRsYW5nWydmaWVsZGRlZl9CVF93YXJuaW5nJ10gPSAnV2FybmluZyc7DQoNCiMgRkVVRHJvcGRvd24NCiRsYW5nWydmaWVsZGRlZl9GRVVEcm9wZG93biddID0gJ0Zyb250RW5kVXNlcnMgRHJvcGRvd24nOw0KJGxhbmdbJ2ZpZWxkZGVmX2ZldV9vcHRpb25zJ10gPSAnRkVVIEdyb3Vwcyc7DQokbGFuZ1snZmllbGRkZWZfZmV1X2Ryb3Bkb3duX2hlbHAnXSA9ICdQbGVhc2Ugc2VsZWN0IG9uZSBvZiBhdmFpbGFibGUgRnJvbnRFbmRVc2VycyBHcm91cHMnOw0KDQojIEdhbGxlcnlEcm9wZG93bg0KJGxhbmdbJ2ZpZWxkZGVmX0dhbGxlcnlEcm9wZG93biddID0gJ0dhbGxlcnkgRHJvcGRvd24nOw0KDQojIEdCRmlsZVBpY2tlcg0KJGxhbmdbJ2ZpZWxkZGVmX0dCRmlsZVBpY2tlciddID0gJ0dCRmlsZVBpY2tlciBVcGxvYWQgRmlsZSc7DQokbGFuZ1snZmllbGRkZWZfR0JGaWxlUGlja2VyX2ZpbGVicm93c2VyJ10gPSAnRW5hYmxlIEZpbGVicm93c2VyJzsNCiRsYW5nWydmaWVsZGRlZl9HQkZpbGVQaWNrZXJfaW1hZ2UnXSA9ICdFeHBlY3RlZCB0byBiZSBpbWFnZSc7DQokbGFuZ1snZmllbGRkZWZfR0JGaWxlUGlja2VyX2NyZWF0ZV9kaXJzJ10gPSAnQWxsb3cgZGlyZWN0b3J5IGNyZWF0aW9uJzsNCiRsYW5nWydmaWVsZGRlZl9HQkZpbGVQaWNrZXJfZGVsZXRlJ10gPSAnQWxsb3cgZGVsZXRlJzsNCiRsYW5nWydmaWVsZGRlZl9HQkZpbGVQaWNrZXJfc2hvd19zdWJkaXJzJ10gPSAnQWxsb3cgc3ViIGRpcmVjdG9yaWVzJzsNCg0KJGxhbmdbJ2ZpZWxkZGVmX0dCRlBfYWxsb3dfaGVscCddID0gJ1NwZWNpZnkgYSBjb21tYSBzZXBhcmF0ZWQgbGlzdCBvZiBmaWxlIGV4dGVuc2lvbnMgdGhhdCBhcmUgYWxsb3dlZC4gRm9yIGV4YW1wbGU6IHBkZixnaWYsanBlZyxqcGcgKGtlZXAgbG93ZXJjYXNlKSc7DQokbGFuZ1snZmllbGRkZWZfR0JGUF9kaXJfaGVscCddID0gJ0RpcmVjdG9yeSBwYXRoIHRoYXQgd2lsbCBiZSBhcHBlbmRlZCB0byAkY29uZmlnW1wndXBsb2Fkc191cmxcJ10gLiBObyBzbGFzaCBhdCB0aGUgZW5kLic7DQokbGFuZ1snZmllbGRkZWZfR0JGUF9leGNsdWRlX3ByZWZpeF9oZWxwJ10gPSAnU3BlY2lmeSBjb21tYSBzZXBhcmF0ZWQgbGlzdCBvZiBwcmVmaXhlcyB0byBleGNsdWRlIGZpbGVzIHRoYXQgc3RhcnRzIHdpdGggdGhlIHNldCBwcmVmaXguIEZvciBleGFtcGxlOiB0aHVtYl8sIGZvb18nOw0KJGxhbmdbJ2ZpZWxkZGVmX0dCRlBfZmlsZWJyb3dzZXJfaGVscCddID0gJ0J5IGRlZmF1bHQgYSBkcm9wZG93biB3aWxsIGJlIHVzZWQuIEVuYWJsZSBmaWxlYnJvd3NlciBpZiB1c2VyIG1heSBicm93c2UgdGhlIGZpbGVzLic7DQokbGFuZ1snZmllbGRkZWZfR0JGUF9tZWRpYV90eXBlX2hlbHAnXSA9ICdBbGxvd3MgeW91IHRvIHNwZWNpZnkgaW1hZ2VzIGFzIG1lZGlhIHR5cGUgdG8gYmUgZGlzcGxheWVkLiBCeSBkZWZhdWx0IGFsbCBmaWxlcyB3aWxsIGJlIHNob3duLic7DQokbGFuZ1snZmllbGRkZWZfR0JGUF9kZWxldGVfaGVscCddID0gJ0lmIGVuYWJsZWQgeW91IGNhbiBncmFudCBkZWxldGluZyBmaWxlcyBvciBkaXJlY3RvcmllcyBmb3IgdGhpcyBmaWVsZCBldmVuIHRvIHVzZXJzIHdpdGhvdXQgYXBwcm9wcmlhdGUgcGVybWlzc2lvbi4nOw0KJGxhbmdbJ2ZpZWxkZGVmX0dCRlBfY3JlYXRlX2RpcnNfaGVscCddID0gJ0lmIGVuYWJsZWQgeW91IGNhbiBncmFudCBjcmVhdGlvbiBvZiBkaXJlY3RvcmllcyBmb3IgdGhpcyBmaWVsZCBldmVuIHRvIHVzZXJzIHdpdGhvdXQgYXBwcm9wcmlhdGUgcGVybWlzc2lvbi4nOw0KJGxhbmdbJ2ZpZWxkZGVmX0dCRlBfc2hvd19zdWJkaXJzX2hlbHAnXSA9ICdJZiBlbmFibGVkIHVzZXIgbWF5IGJyb3dzZSBzdWJkaXJlY3Rvcmllcy4nOw0KDQojIEpNRmlsZVBpY2tlcg0KJGxhbmdbJ2ZpZWxkZGVmX0pNRmlsZVBpY2tlciddID0gJ0pNRmlsZVBpY2tlciBVcGxvYWQgRmlsZSc7DQokbGFuZ1snZmllbGRkZWZfSk1GaWxlUGlja2VyX2ZpbGVicm93c2VyJ10gPSAnRW5hYmxlIEZpbGVicm93c2VyJzsNCiRsYW5nWydmaWVsZGRlZl9KTUZpbGVQaWNrZXJfaW1hZ2UnXSA9ICdFeHBlY3RlZCB0byBiZSBpbWFnZSc7DQokbGFuZ1snZmllbGRkZWZfSk1GaWxlUGlja2VyX2NyZWF0ZV9kaXJzJ10gPSAnQWxsb3cgZGlyZWN0b3J5IGNyZWF0aW9uJzsNCiRsYW5nWydmaWVsZGRlZl9KTUZpbGVQaWNrZXJfZGVsZXRlJ10gPSAnQWxsb3cgZGVsZXRlJzsNCiRsYW5nWydmaWVsZGRlZl9KTUZpbGVQaWNrZXJfc2hvd19zdWJkaXJzJ10gPSAnQWxsb3cgc3ViIGRpcmVjdG9yaWVzJzsNCg0KJGxhbmdbJ2ZpZWxkZGVmX0pNRlBfYWxsb3dfaGVscCddID0gJ1NwZWNpZnkgYSBjb21tYSBzZXBhcmF0ZWQgbGlzdCBvZiBmaWxlIGV4dGVuc2lvbnMgdGhhdCBhcmUgYWxsb3dlZC4gRm9yIGV4YW1wbGU6IHBkZixnaWYsanBlZyxqcGcgKGtlZXAgbG93ZXJjYXNlKSc7DQokbGFuZ1snZmllbGRkZWZfSk1GUF9kaXJfaGVscCddID0gJ0RpcmVjdG9yeSBwYXRoIHRoYXQgd2lsbCBiZSBhcHBlbmRlZCB0byAkY29uZmlnW1wndXBsb2Fkc191cmxcJ10gLiBObyBzbGFzaCBhdCB0aGUgZW5kLic7DQokbGFuZ1snZmllbGRkZWZfSk1GUF9leGNsdWRlX3ByZWZpeF9oZWxwJ10gPSAnU3BlY2lmeSBjb21tYSBzZXBhcmF0ZWQgbGlzdCBvZiBwcmVmaXhlcyB0byBleGNsdWRlIGZpbGVzIHRoYXQgc3RhcnRzIHdpdGggdGhlIHNldCBwcmVmaXguIEZvciBleGFtcGxlOiB0aHVtYl8sIGZvb18nOw0KJGxhbmdbJ2ZpZWxkZGVmX0pNRlBfZmlsZWJyb3dzZXJfaGVscCddID0gJ0J5IGRlZmF1bHQgYSBkcm9wZG93biB3aWxsIGJlIHVzZWQuIEVuYWJsZSBmaWxlYnJvd3NlciBpZiB1c2VyIG1heSBicm93c2UgdGhlIGZpbGVzLic7DQokbGFuZ1snZmllbGRkZWZfSk1GUF9tZWRpYV90eXBlX2hlbHAnXSA9ICdBbGxvd3MgeW91IHRvIHNwZWNpZnkgaW1hZ2VzIGFzIG1lZGlhIHR5cGUgdG8gYmUgZGlzcGxheWVkLiBCeSBkZWZhdWx0IGFsbCBmaWxlcyB3aWxsIGJlIHNob3duLic7DQokbGFuZ1snZmllbGRkZWZfSk1GUF9kZWxldGVfaGVscCddID0gJ0lmIGVuYWJsZWQgeW91IGNhbiBncmFudCBkZWxldGluZyBmaWxlcyBvciBkaXJlY3RvcmllcyBmb3IgdGhpcyBmaWVsZCBldmVuIHRvIHVzZXJzIHdpdGhvdXQgYXBwcm9wcmlhdGUgcGVybWlzc2lvbi4nOw0KJGxhbmdbJ2ZpZWxkZGVmX0pNRlBfY3JlYXRlX2RpcnNfaGVscCddID0gJ0lmIGVuYWJsZWQgeW91IGNhbiBncmFudCBjcmVhdGlvbiBvZiBkaXJlY3RvcmllcyBmb3IgdGhpcyBmaWVsZCBldmVuIHRvIHVzZXJzIHdpdGhvdXQgYXBwcm9wcmlhdGUgcGVybWlzc2lvbi4nOw0KJGxhbmdbJ2ZpZWxkZGVmX0pNRlBfc2hvd19zdWJkaXJzX2hlbHAnXSA9ICdJZiBlbmFibGVkIHVzZXIgbWF5IGJyb3dzZSBzdWJkaXJlY3Rvcmllcy4nOw0KDQojIENvbG9yUGlja2VyDQokbGFuZ1snZmllbGRkZWZfQ29sb3JQaWNrZXInXSA9ICdDb2xvciBQaWNrZXInOw0KDQovLyBDdXN0b21Gcm9tVURUDQokbGFuZ1snZmllbGRkZWZfQ3VzdG9tRnJvbVVEVCddID0gJ0N1c3RvbSBGaWVsZCBGcm9tIFVEVCc7DQokbGFuZ1snZmllbGRkZWZfdHlwZSddID0gJ1R5cGUnOw0KJGxhbmdbJ2ZpZWxkZGVmX3R5cGVfaGVscCddID0gJ1NlbGVjdCB0aGUgdHlwZSBvZiB0aGlzIGZpZWxkJzsNCiRsYW5nWydmaWVsZGRlZl9zb3VyY2VfdWR0J10gPSAnU291cmNlIFVEVCc7DQokbGFuZ1snZmllbGRkZWZfc291cmNlX1VEVF9oZWxwJ10gPSAnU2VsZWN0IHRoZSBzb3VyY2UgVURUJzsNCiRsYW5nWydmaWVsZGRlZl92YWxpZGF0aW9uX3VkdCddID0gJ1ZhbGlkYXRpb24gVURUJzsNCiRsYW5nWydmaWVsZGRlZl92YWxpZGF0aW9uX1VEVF9oZWxwJ10gPSAnU2VsZWN0IHRoZSB2YWxpZGF0aW9uIFVEVCAob3B0aW9uYWwpJzsNCiRsYW5nWydmaWVsZGRlZl9yZW5kZXJfZm9yX2FkbWluX2xpc3RpbmdfdWR0J10gPSAnU2VsZWN0IHRoZSBBZG1pbmlzdHJhdG9yIExpc3RpbmcgVURUJzsNCiRsYW5nWydmaWVsZGRlZl9yZW5kZXJfZm9yX2FkbWluX2xpc3RpbmdfVURUX2hlbHAnXSA9ICdTZWxlY3QgdGhlIHZhbGlkYXRpb24gVURUIChvcHRpb25hbCknOw0KDQovLyBDdXN0b21Gcm9tU21hcnR5DQokbGFuZ1snZmllbGRkZWZfQ3VzdG9tRnJvbVNtYXJ0eSddID0gJ0N1c3RvbSBGaWVsZCBGcm9tIFNtYXJ0eSc7DQokbGFuZ1snZmllbGRkZWZfc291cmNlX3RlbXBsYXRlJ10gPSAnU291cmNlIFNtYXJ0eSBUZW1wbGF0ZSc7DQokbGFuZ1snZmllbGRkZWZfc291cmNlX3RlbXBsYXRlX2hlbHAnXSA9ICcNCgk8cD5GaWxsIDxiPnskb3B0c308L2I+IGFycmF5IHdpdGgga2V5IHZhbHVlIHBhaXJzIGFuZCBwYXNzIGl0IHRvIGFueSBvZiB0aGUgZm9sbG93aW5nIHRhZ3MuIDxiPnskbmFtZX08L2I+IGFuZCA8Yj57JHNlbH08L2I+IGFyZSBhbHJlYWR5IHByb3ZpZGVkIGJ5IHRoZSBtb2R1bGUuPC9wPg0KCTxwPjxiPnskbmFtZX08L2I+IGhvbGRzIHRoZSBmaWVsZCBuYW1lIChuZWVkZWQgZm9yIFJhZGlvR3JvdXAsIENoZWNrYm94R3JvdXAsIG9yIGlmIHlvdSB3YW50IHRvIHVzZSBwdXJlIGh0bWwpPC9wPg0KCTxwPjxiPnskc2VsfTwvYj4gaG9sZHMgdGhlIHNlbGVjdGVkIHZhbHVlIGlmIGl0IGV4aXN0cy48L3A+DQoJPHA+RXhhbXBsZTo8YnI+DQoJPGI+eyRvcHRzID0gWzEgPT4gXCdvbmVcJywgMiA9PiBcJ3R3b1wnXX08YnI+DQogIHtodG1sX29wdGlvbnMgb3B0aW9ucz0kb3B0cyBzZWxlY3RlZD0kc2VsfTwvYj4NCgk8L3A+DQoJPHA+Rm9yIDxiPkRyb3Bkb3duPC9iPiBhbmQgPGI+TXVsdGlTZWxlY3Q8L2I+IHR5cGVzIHVzZTogPGI+e2h0bWxfb3B0aW9ucyBvcHRpb25zPSRvcHRzIHNlbGVjdGVkPSRzZWx9PC9iPjwvcD4NCgk8cD5Gb3IgPGI+UmFkaW9Hcm91cDwvYj4gdHlwZSB1c2U6IDxiPntodG1sX3JhZGlvcyBuYW1lPSRuYW1lIG9wdGlvbnM9JG9wdHMgc2VsZWN0ZWQ9JHNlbCBzZXBhcmF0b3I9XCcmbHQ7YnIgLz5cJ308L2I+PC9wPg0KCTxwPkZvciA8Yj5DaGVja2JveEdyb3VwPC9iPiB0eXBlIHVzZTogPGI+e2h0bWxfY2hlY2tib3hlcyAgbmFtZT0kbmFtZSBvcHRpb25zPSRvcHRzIHNlbGVjdGVkPSRzZWwgc2VwYXJhdG9yPVwnJmx0O2JyIC8+XCd9PC9iPjwvcD4NCic7DQoNCi8vIExJU0VJbnN0YW5jZQ0KJGxhbmdbJ2ZpZWxkZGVmX0xJU0VJbnN0YW5jZSddID0gJ0xJU0UgSW5zdGFuY2UnOw0KJGxhbmdbJ2ZpZWxkZGVmX2xpX3NlbGVjdF9ub25lJ10gPSAnVGV4dCBmb3IgPGk+bm9uZTwvaT4gb3B0aW9uIGluIGxpc3QnOw0KJGxhbmdbJ2ZpZWxkZGVmX2xpX3NlbGVjdF9ub25lX2hlbHAnXSA9ICdGaWxsIHdpdGggYSBzdHJpbmc6IHRoZSBtb2R1bGUgd2lsbCB0cnkgdG8gZmluZCBhIGxhbmd1YWdlIGtleSBpbiBpdHMgcmVzb3VyY2VzIGZvciBsYW5ndWFnZSBzdHJpbmdzLiBJZiBpdCBmYWlscyB0byBsb2FkIGEgdmFsaWQgc3RyaW5nIGl0IHdpbGwgdXNlIHRoZSBzdHJpbmcgdG8gZGlzcGxheSB0aGUgb3B0aW9uLiBMZWF2aW5nIGVtcHR5IGRpc2FibGVzIHRoaXMuJzsNCg0KLy8gTElTRUluc3RhbmNlSXRlbQ0KJGxhbmdbJ2ZpZWxkZGVmX0xJU0VJbnN0YW5jZUl0ZW0nXSA9ICdMSVNFIEluc3RhbmNlIEl0ZW0nOw0KJGxhbmdbJ2ZpZWxkZGVmX2luc3RhbmNlX2hlbHAnXSA9ICdTZWxlY3QgaW5zdGFuY2UnOw0KJGxhbmdbJ2ZpZWxkZGVmX2lkZW50aWZpZXJfaGVscCddID0gJ1NlbGVjdCBkYXRhYmFzZSBpZGVudGlmaWVyJzsNCiRsYW5nWydpbnN0YW5jZSddID0gJ0luc3RhbmNlJzsNCiRsYW5nWydpZGVudGlmaWVyJ10gPSAnSWRlbnRpZmllcic7DQokbGFuZ1sncHJvbXB0X2luY2x1ZGVfaXRlbXMnXSA9ICdJdGVtcyB0byBJbmNsdWRlIGluIExpc3QnOw0KJGxhbmdbJ2lpX29wdGlvbl9pbmNsdWRlX2RlZmF1bHQnXSA9ICdkZWZhdWx0JzsNCiRsYW5nWydpaV9vcHRpb25faW5jbHVkZV9vbmx5X2FjdGl2ZSddID0gJ29ubHkgYWN0aXZlJzsNCiRsYW5nWydpaV9vcHRpb25faW5jbHVkZV9vbmx5X2luYWN0aXZlJ10gPSAnb25seSBpbmFjdGl2ZSc7DQokbGFuZ1snaWlfb3B0aW9uX2luY2x1ZGVfYWxsJ10gPSAnYWxsJzsNCg0KLy9GRVVNdWx0aVNlbGVjdA0KJGxhbmdbJ2ZpZWxkZGVmX0ZFVU11bHRpU2VsZWN0J10gPSAnRkVVIE11bHRpIFNlbGVjdCc7DQokbGFuZ1snZmllbGRkZWZfSlF1ZXJ5TXVsdGlTZWxlY3QnXSA9ICdKUXVlcnkgTXVsdGlTZWxlY3QnOw0KJGxhbmdbJ2ZpZWxkZGVmX2ZldV9tdWx0aXNlbGVjdF9oZWxwJ10gPSAnUGxlYXNlIHNlbGVjdCBvbmUgb3IgbW9yZSBvZiB0aGUgYXZhaWxhYmxlIEZyb250RW5kVXNlcnMgR3JvdXBzJzsNCiRsYW5nWydmaWVsZGRlZl9mZXVfZmllbGRzX2hlbHAnXSA9ICdQbGVhc2Ugc2VsZWN0IHRoZSBjdXN0b20gZmllbGQgZnJvbSBGRVUgZnJvbSB3aGljaCB0byBkcmF3IHRoZSB2YWx1ZXMgdGhhdCB3aWxsIGJlIHNob3duIG9uIHRoZSBzZWxlY3QgZmllbGQuPGJyPk5vdGUgdGhhdCB0aGUgc2VsZWN0ZWQgZmllbGQgc2hvdWxkIGhhdmUgdW5pcXVlIHZhbHVlcyBhY3Jvc3MgYWxsIEZFVSB1c2VycyBlbnRyaWVzLic7DQokbGFuZ1snZmllbGRkZWZfZmV1X2ZpZWxkcyddID0gJ1NlbGVjdCAxc3QgRkVVIEZpZWxkJzsNCiRsYW5nWydmaWVsZGRlZl9mZXVfZmllbGRzMiddID0gJ1NlbGVjdCAybmQgRkVVIEZpZWxkJzsNCiRsYW5nWydmaWVsZGRlZl91c2VycyddID0gJ1VzZXJzJzsNCiRsYW5nWydmaWVsZGRlZl91c2VfdXNlcm5hbWUnXSA9ICdVc2UgVXNlcm5hbWUgRmllbGQnOw0KJGxhbmdbJ2ZpZWxkZGVmX3VzZV91aWQnXSA9ICdQcmVwZW5kIFVzZXIgSUQnOw0KJGxhbmdbJ2ZpZWxkZGVmX3VzZV91aWRfaGVscCddID0gJ1ByZXBlbmQgdXNlciBpZCB0byB0aGUgb3B0aW9ucyBpbiBbbl0gZm9ybWF0Lic7DQokbGFuZ1snZmllbGRkZWZfdXNlX3VzZXJuYW1lX2hlbHAnXSA9ICdJZiB5b3UgY2hlY2sgdGhpcyBvcHRpb24sIHRoZSBjdXN0b20gZmllbGRzIGJlbG93IHdpbGwgbm90IGJlIHVzZWQuJzsNCiRsYW5nWydmaWVsZGRlZl9zZXBhcmF0b3JfY2hyJ10gPSAnU2VwYXJhdG9yIENoYXJhY3Rlcic7DQokbGFuZ1snZmllbGRkZWZfc2VwYXJhdG9yX2Nocl9oZWxwJ10gPSAnQ2hhcmFjdGVyIHVzZWQgdG8gc2VwYXJhdGUgZmllbGQgMSBhbmQgZmllbGQgMiBvbiB0aGUgb3B0aW9ucyB0ZXh0LiBEZWZhdWx0IGlzIGEgc3BhY2UgY2hhcmFjdGVyLic7DQoNCi8vRkVVU2luZ2xlU2VsZWN0DQokbGFuZ1snZmllbGRkZWZfRkVVU2luZ2xlU2VsZWN0J10gPSAnRkVVIFNpbmdsZSBTZWxlY3QnOw0KDQovL0NvcmUgRmlsZVBpY2tlcg0KJGxhbmdbJ2ZpZWxkZGVmX0NvcmVGaWxlUGlja2VyJ10gPSAnRmlsZSBQaWNrZXInOw0KJGxhbmdbJ2ZpZWxkZGVmX2NvcmVfZnBfcHJvZmlsZXMnXSA9ICdQcm9maWxlJzsNCiRsYW5nWydmaWVsZGRlZl9jb3JlX2ZwX3Byb2ZpbGVzX2hlbHAnXSA9ICdDaG9vc2UgYSBGaWxlIFBpY2tlciBwcm9maWxlLiBJdCBtdXN0IGV4aXN0ISBDaG9vc2luZyBub25lIG9yIGEgbm9uIGV4aXN0aW5nIG9uZSB3aWxsIHJlc2V0IHRvIGRlZmF1bHQgcHJvZmlsZSBvciBkZWZhdWx0IHZhbHVlcy4nOw0KDQovLyBIZWxwUG9wdXANCiRsYW5nWydmaWVsZGRlZl9IZWxwUG9wdXAnXSA9ICdIZWxwIFBvcHVwJzsNCiRsYW5nWydmaWVsZGRlZl9waF90aXRsZSddID0gJ0RpYWxvZyBUaXRsZSc7DQokbGFuZ1snZmllbGRkZWZfcGhfdGl0bGVfaGVscCddID0gJ1NldCB0aGUgdGl0bGUgb2YgdGhlIGRpYWxvZyAobm8gSFRNTCBhbGxvd2VkKS4gVGhpcyBmaWVsZCBpcyByZXF1aXJlZCEgaWYgZW1wdHkgdGhlIGRpYWxvZyB3aWxsIGJlIGRpc2FibGVkLic7DQokbGFuZ1snZmllbGRkZWZfcGhfbXNnJ10gPSAnRGlhbG9nIE1lc3NhZ2UnOw0KJGxhbmdbJ2ZpZWxkZGVmX3BoX21zZ19oZWxwJ10gPSAnU2V0IHRoZSBtZXNzYWdlIG9mIHRoZSBkaWFsb2cuIEhUTUwgY2FuIGJlIHVzZWQgaGVyZSBidXQgYmUgY2F1dGlvdXMsIGl0IG1heSBicmVhayB0aGUgZGlhbG9nIGJveC4nOw0KDQovLyBQcmV2aWV3DQokbGFuZ1snZmllbGRkZWZfUHJldmlldyddID0gJ1ByZXZpZXcnOw0KJGxhbmdbJ2ZpZWxkZGVmX3dhcm5pbmdfcHJldmlldyddID0gJ1dhcm5pbmc6IFRoaXMgcHJldmlldyBwYW5lbCBiZWhhdmVzIG11Y2ggbGlrZSBhIGJyb3dzZXIgd2luZG93IGFsbG93aW5nIHlvdSB0byBuYXZpZ2F0ZSBhd2F5IGZyb20gdGhlIGluaXRpYWxseSBwcmV2aWV3ZWQgcGFnZS4gSG93ZXZlciwgaWYgeW91IGRvIHRoYXQsIHlvdSBtYXkgZXhwZXJpZW5jZSB1bmV4cGVjdGVkIGJlaGF2aW91ci4gTmF2aWdhdGluZyBhd2F5IGZyb20gdGhlIGluaXRpYWwgcGFnZSBhbmQgcmV0dXJuaW5nIHdpbGwgbm90IGdpdmUgdGhlIGV4cGVjdGVkIHJlc3VsdHMuJzsNCiRsYW5nWydmaWVsZGRlZl9kZXRhaWxfdGVtcGxhdGUnXSA9ICdEZXRhaWwgVGVtcGxhdGUnOw0KJGxhbmdbJ2ZpZWxkZGVmX2RldGFpbF9wYWdlJ10gPSAnRGV0YWlsIFBhZ2UnOw0KDQovKiBJbnN0cnVjdGlvbnMgKi8NCiRsYW5nWydmaWVsZGRlZl9hbGxvd19oZWxwJ10gPSAnU3BlY2lmeSBhIGNvbW1hIHNlcGFyYXRlZCBsaXN0IG9mIGZpbGUgZXh0ZW5zaW9ucyB0aGF0IGFyZSBhbGxvd2VkLiBGb3IgZXhhbXBsZTogcGRmLGdpZixqcGVnLGpwZyAoa2VlcCBsb3dlcmNhc2UpJzsNCiRsYW5nWydmaWVsZGRlZl9kaXJfaGVscCddID0gJ0RpcmVjdG9yeSBwYXRoIHRoYXQgd2lsbCBiZSBhcHBlbmRlZCB0byAkY29uZmlnW1wndXBsb2Fkc191cmxcJ10gLiBObyBzbGFzaCBhdCB0aGUgZW5kLiB7JGl0ZW1faWR9IGFuZCB7JGZpZWxkX2lkfSB3aWxsIGJlIHJlcGxhY2VkLic7DQokbGFuZ1snZmllbGRkZWZfZXhjbHVkZV9wcmVmaXhfaGVscCddID0gJ1NwZWNpZnkgYSBjb21tYSBzZXBhcmF0ZWQgbGlzdCBvZiBwcmVmaXhlcyB0byBleGNsdWRlIGZpbGVzIHRoYXQgc3RhcnQgd2l0aCB0aG9zZSBwcmVmaXhlcy4gRm9yIGV4YW1wbGU6IHRodW1iXywgZm9vXyc7DQokbGFuZ1snZmllbGRkZWZfbXVsdGlvcHRpb25zX2hlbHAnXSA9ICdPcHRpb25zIHNlcGFyYXRlZCBieSBsaW5lIGJyZWFrcy4gVmFsdWVzIGNhbiBiZSBzZXBhcmF0ZWQgZnJvbSB0ZXh0IHdpdGggYSA9IGNoYXJhY3Rlci4gRm9yIGV4YW1wbGU6IEJhbmFuYT1iYW5hbmEnOw0KJGxhbmdbJ2ZpZWxkZGVmX3NlcGFyYXRvcl9oZWxwJ10gPSAnQ2FuIGJlIGVtcHR5LCBzaW5nbGUgY2hhcmFjdGVyIG9yIEhUTUwgZW50aXR5Lic7DQokbGFuZ1snZmllbGRkZWZfc2l6ZV9oZWxwJ10gPSAnU3BlY2lmeSBzaXplIG9mIGlucHV0IGZpZWxkLiBGb3IgZXhhbXBsZTogMjAnOw0KJGxhbmdbJ2ZpZWxkZGVmX21heF9sZW5ndGhfaGVscCddID0gJ1NwZWNpZnkgbWF4aW11bSBsZW5ndGggb2YgdGhlIGZpZWxkLiBGb3IgZXhhbXBsZTogMjU1JzsNCiRsYW5nWydmaWVsZGRlZl9kYXRlX2Zvcm1hdF9oZWxwJ10gPSAnU3BlY2lmeSBkYXRlIGZvcm1hdCB1c2VkIGJ5IGpRdWVyeSBEYXRlcGlja2VyLiBUcnkgPGVtPmdvb2dsaW5nPFxlbT4gXCdqcXVlcnkgZm9ybWF0RGF0ZVwnLiBGb3IgZXhhbXBsZTogZGQtbW0teXknOw0KJGxhbmdbJ2ZpZWxkZGVmX2Zvcm1hdF90eXBlX2hlbHAnXSA9ICdTcGVjaWZ5IG91dHB1dCBmb3JtYXQgZm9yIHRoaXMgZmllbGQuJzsNCiRsYW5nWydmaWVsZGRlZl9zaG93X3NlY29uZHNfaGVscCddID0gJ1NwZWNpZnkgd2hldGhlciB0aGUgc2Vjb25kcyBzY3JvbGxlciBzaG91bGQgYmUgc2hvd24uIE5PVElDRSwgc2Vjb25kIHNjcm9sbGVyIGhhcyBubyBlZmZlY3QgaWYgdGltZSBmb3JtYXQgaXMgd3JvbmcuIFRyeSBISDptbTpzcyc7DQokbGFuZ1snZmllbGRkZWZfdGltZV9mb3JtYXRfaGVscCddID0gJ1NwZWNpZnkgZGF0ZSBmb3JtYXQgdXNlZCBieSBqUXVlcnkgdGltZXBpY2tlci4gVHJ5IGdvb2dsaW5nIFwnanF1ZXJ5IGZvcm1hdFRpbWVcJy4gRm9yIGV4YW1wbGU6IEhIOm1tJzsNCiRsYW5nWydmaWVsZGRlZl93eXNpd3lnX2hlbHAnXSA9ICdJZiBjaGVja2VkLCBhIFdZU0lXWUcgRWRpdG9yIHdpbGwgYmUgZW5hYmxlZCBmb3IgdGhpcyBmaWVsZC4nOw0KJGxhbmdbJ2ZpZWxkZGVmX21pbl92YWx1ZV9oZWxwJ10gPSAnU3BlY2lmeSBtaW5pbXVtIHZhbHVlIGZvciB0aGlzIGZpZWxkLic7DQokbGFuZ1snZmllbGRkZWZfbWF4X3ZhbHVlX2hlbHAnXSA9ICdTcGVjaWZ5IG1heGltdW0gdmFsdWUgZm9yIHRoaXMgZmllbGQuJzsNCiRsYW5nWydmaWVsZGRlZl9pbmNyZW1lbnRfYnlfaGVscCddID0gJ0luY3JlbWVudCBzbGlkZXIgdmFsdWVzICwgY29tbW9ubHkgYSBkaXZpZGVuZCBvZiB0aGUgc2xpZGVyXCdzIG1heGltdW0gdmFsdWUuIFRoZSBkZWZhdWx0IGluY3JlbWVudCBpcyAxLic7DQokbGFuZ1snZmllbGRkZWZfd2lkdGhfaGVscCddID0gJ1NwZWNpZnkgd2lkdGggb2YgZWxlbWVudC4gQ2FuIGJlIGEgcGVyY2VudGFnZSBvciBwaXhlbCB2YWx1ZS4gVGhpcyBpcyB1c2VkIGFzIHRoZSBDU1MgdmFsdWUuJzsNCiRsYW5nWydmaWVsZGRlZl9zdWJ0eXBlX2hlbHAnXSA9ICdTZWxlY3QgU3ViIFR5cGUgZm9yIHRoaXMgZmllbGQgdG8gZGV0ZXJtaW5lIGl0cyBiZWhhdmlvci4nOw0KJGxhbmdbJ2ZpZWxkZGVmX3Nob3dhbGxfaGVscCddID0gJ1Nob3cgYWxsLCByZWdhcmRsZXNzIG9mIHN5c3RlbSBwZXJtaXNzaW9ucy4nOw0KJGxhbmdbJ2ZpZWxkZGVmX2NvbHVtbnNfaGVscCddID0gJ051bWJlciBvZiBjb2x1bW5zLiBEaXZpZGUgdGhpcyBmaWVsZCBpbnRvIG11bHRpcGxlIGNvbHVtbnMgZm9yIGEgYmV0dGVyIHVzZXIgZXhwZXJpZW5jZS4nOw0KJGxhbmdbJ2ZpZWxkZGVmX21lZGlhX3R5cGVfaGVscCddID0gJ0FsbG93cyB5b3UgdG8gc3BlY2lmeSBpbWFnZXMgYXMgbWVkaWEgdHlwZSB0byBiZSBkaXNwbGF5ZWQuIEJ5IGRlZmF1bHQgYWxsIGZpbGVzIHdpbGwgYmUgc2hvd24uJzsNCiRsYW5nWydmaWVsZGRlZl9lbmFibGVfanF1aV9oZWxwJ10gPSAnRW5oYW5jZXMgc3RhbmRhcmQgZm9ybSBlbGVtZW50cyB0byB0aGVtZWFibGUgYnV0dG9ucyB3aXRoIGFwcHJvcHJpYXRlIGhvdmVyIGFuZCBhY3RpdmUgc3R5bGVzLic7DQoNCi8vIGNhdGVnb3J5DQokbGFuZ1sncmVvcmRlcl9jYXRlZ29yaWVzJ10gPSAnUmVvcmRlciBDYXRlZ29yaWVzJzsNCiRsYW5nWydlZGl0X2NhdGVnb3J5J10gPSAnRWRpdCBDYXRlZ29yeSc7DQokbGFuZ1snY2F0ZWdvcnlfbmFtZSddID0gJ0NhdGVnb3J5IG5hbWUnOw0KJGxhbmdbJ2NhdGVnb3J5X2Rlc2NyaXB0aW9uJ10gPSAnQ2F0ZWdvcnkgRGVzY3JpcHRpb24nOw0KJGxhbmdbJ2NhdGVnb3J5X25hbWVfZW1wdHknXSA9ICdDYXRlZ29yeSBuYW1lIGlzIGVtcHR5JzsNCiRsYW5nWydjYXRlZ29yeV9hbGlhc19leGlzdHMnXSA9ICdDYXRlZ29yeSBhbGlhcyBhbHJlYWR5IGV4aXN0cy4gQWxpYXMgbXVzdCBiZSB1bmlxdWUuJzsNCg0KLy8gdGVtcGxhdGVzDQokbGFuZ1snYXJjaGl2ZXRlbXBsYXRlJ10gPSAnQXJjaGl2ZSBUZW1wbGF0ZSc7DQokbGFuZ1snYXJjaGl2ZXRlbXBsYXRlcyddID0gJ0FyY2hpdmUgVGVtcGxhdGVzJzsNCiRsYW5nWydjYXRlZ29yeXRlbXBsYXRlJ10gPSAnQ2F0ZWdvcnkgVGVtcGxhdGUnOw0KJGxhbmdbJ2NhdGVnb3J5dGVtcGxhdGVzJ10gPSAnQ2F0ZWdvcnkgVGVtcGxhdGVzJzsNCiRsYW5nWydzdW1tYXJ5dGVtcGxhdGUnXSA9ICdTdW1tYXJ5IFRlbXBsYXRlJzsNCiRsYW5nWydzdW1tYXJ5dGVtcGxhdGVzJ10gPSAnU3VtbWFyeSBUZW1wbGF0ZXMnOw0KJGxhbmdbJ2RldGFpbHRlbXBsYXRlJ10gPSAnRGV0YWlsIFRlbXBsYXRlJzsNCiRsYW5nWydkZXRhaWx0ZW1wbGF0ZXMnXSA9ICdEZXRhaWwgVGVtcGxhdGVzJzsNCiRsYW5nWydzZWFyY2h0ZW1wbGF0ZSddID0gJ1NlYXJjaCBUZW1wbGF0ZSc7DQokbGFuZ1snc2VhcmNodGVtcGxhdGVzJ10gPSAnU2VhcmNoIFRlbXBsYXRlcyc7DQokbGFuZ1snZmlsdGVydGVtcGxhdGUnXSA9ICdGaWx0ZXIgVGVtcGxhdGUnOw0KJGxhbmdbJ2ZpbHRlcnRlbXBsYXRlcyddID0gJ0ZpbHRlciBUZW1wbGF0ZXMnOw0KJGxhbmdbJ2VkaXR0ZW1wbGF0ZSddID0gJ0VkaXQgVGVtcGxhdGUnOw0KJGxhbmdbJ3RlbXBsYXRlX25hbWUnXSA9ICdUZW1wbGF0ZSBuYW1lJzsNCiRsYW5nWyd0ZW1wbGF0ZV9uYW1lX2VtcHR5J10gPSAnVGVtcGxhdGUgbmFtZSBpcyBlbXB0eSc7DQokbGFuZ1sndGVtcGxhdGVfY29udGVudF9lbXB0eSddID0gJ1RlbXBsYXRlIGNvbnRlbnQgaXMgZW1wdHknOw0KJGxhbmdbJ2RlZmF1bHRfdGVtcGxhdGVzJ10gPSAnRGVmYXVsdCB0ZW1wbGF0ZXMnOw0KDQovLyBvcHRpb25zDQokbGFuZ1snbW9kdWxlX29wdGlvbnMnXSA9ICdNb2R1bGUgT3B0aW9ucyc7DQokbGFuZ1snbW9kdWxlX21haW5fb3B0aW9ucyddID0gJ01vZHVsZSBNYWluIE9wdGlvbnMnOw0KJGxhbmdbJ21vZHVsZV9hZHZhbmNlZF9vcHRpb25zJ10gPSAnTW9kdWxlIEFkdmFuY2VkIE9wdGlvbnMnOw0KJGxhbmdbJ3VybF9vcHRpb25zJ10gPSAnVVJMIE9wdGlvbnMnOw0KJGxhbmdbJ2RlZmF1bHRfb3B0aW9ucyddID0gJ01vZHVsZSBkZWZhdWx0cyc7DQokbGFuZ1sneG1vZHVsZV9vcHRpb25zJ10gPSAnQ3Jvc3MgTW9kdWxlIE9wdGlvbnMnOw0KJGxhbmdbJ3Byb21wdF9mcmllbmRseW5hbWUnXSA9ICdNb2R1bGUgZnJpZW5kbHkgbmFtZSc7DQokbGFuZ1sncHJvbXB0X21vZGRlc2NyaXB0aW9uJ10gPSAnTW9kdWxlIEFkbWluIGRlc2NyaXB0aW9uJzsNCiRsYW5nWydwcm9tcHRfYWRtaW5zZWN0aW9uJ10gPSAnTW9kdWxlIEFkbWluIFNlY3Rpb24nOw0KJGxhbmdbJ2l0ZW1zX29wdGlvbnMnXSA9ICdJdGVtcyBPcHRpb25zJzsNCiRsYW5nWydwcm9tcHRfaXRlbV9zaW5ndWxhciddID0gJ0l0ZW0gc2luZ3VsYXInOw0KJGxhbmdbJ3Byb21wdF9pdGVtX3BsdXJhbCddID0gJ0l0ZW0gcGx1cmFsJzsNCiRsYW5nWydwcm9tcHRfdXJsX3ByZWZpeCddID0gJ1VSTCBQcmVmaXgnOw0KJGxhbmdbJ3Byb21wdF91cmxfdGVtcGxhdGUnXSA9ICdVUkwgVGVtcGxhdGUnOw0KJGxhbmdbJ3Byb21wdF9kaXNwbGF5X2lubGluZSddID0gJ0Rpc3BsYXkgZGV0YWlscyBpbmxpbmUgKHJlcGxhY2VzIG1vZHVsZSB0YWcgaW5zdGVhZCBvZiB7Y29udGVudH0pJzsNCiRsYW5nWydwcm9tcHRfc3ViY2F0ZWdvcnknXSA9ICdFbmFibGUgc3ViY2F0ZWdvcnkgb3B0aW9uLCB3aWxsIHNob3cgaW5oZXJpdGVkIGl0ZW1zIGluIGNhdGVnb3J5IGFuZCBpdHMgY2hpbGRyZW4nOw0KJGxhbmdbJ3Byb21wdF9pdGVtX2NvbHMnXSA9ICdEaXNwbGF5IHRoZXNlIGZpZWxkcyBpbiBpdGVtIG92ZXJ2aWV3JzsNCiRsYW5nWydwcm9tcHRfaXRlbXNfcGVyX3BhZ2UnXSA9ICdEaXNwbGF5IGl0ZW1zIHBlciBwYWdlJzsNCiRsYW5nWydwcm9tcHRfY3JlYXRlX2RhdGUnXSA9ICdEaXNwbGF5IGl0ZW0gY3JlYXRlZCBkYXRlIGluIEl0ZW0gZWRpdCBtb2RlPyc7DQokbGFuZ1sncHJvbXB0X2RldGFpbHBhZ2UnXSA9ICdEZXRhaWwgcGFnZSc7DQokbGFuZ1sncHJvbXB0X3N1bW1hcnlwYWdlJ10gPSAnU3VtbWFyeSBwYWdlJzsNCiRsYW5nWydwcm9tcHRfcmVpbmRleF9zZWFyY2gnXSA9ICdJdGVtcyBzZWFyY2hhYmxlIGJ5IFNlYXJjaCBtb2R1bGUnOw0KJGxhbmdbJ3RleHRfc29ydG9yZGVyJ10gPSAnRGVmYXVsdCBJdGVtcyBzb3J0b3JkZXInOw0KJGxhbmdbJ29wdGlvbnNfbm90aWNlJ10gPSAnQWZ0ZXIgY2hhbmdpbmcgbW9kdWxlIGZyaWVuZGx5IG5hbWUgb3IgQWRtaW4gc2VjdGlvbiwgeW91IG1heSBuZWVkIHRvIGNsZWFyIHRoZSBjYWNoZSBmb3IgeW91ciBjaGFuZ2VzIHRvIHRha2UgZWZmZWN0Lic7DQokbGFuZ1sncHJvbXB0X2FsbG93X2F1dG9zY2FuJ10gPSAnQWxsb3cgc3lzdGVtIHRvIHNjYW4gZmllbGQgZGVmaW5pdGlvbnMgYXV0b21hdGljYWxseSc7DQokbGFuZ1snbm90aWNlX2FsbG93X2F1dG9zY2FuJ10gPSAnQWxsb3dpbmcgYXV0b21hdGljIHNjYW4gb24gTW9kdWxlSW5zdGFsbGVkLCBNb2R1bGVVcGdyYWRlZCwgTW9kdWxlVW5pbnN0YWxsZWQgYW5kIENvbnRlbnRQb3N0Q29tcGlsZSBldmVudHMsIG1pZ2h0IGhhdmUgc29tZSBzdHJhbmdlIGJlaGF2aW9yIHdpdGggc29tZSBjb3JlIHZlcnNpb25zLic7DQokbGFuZ1sncHJvbXB0X2FsbG93X2F1dG9pbnN0YWxsJ10gPSAnQWxsb3cgc3lzdGVtIHRvIGluc3RhbGwgaW5zdGFuY2VzIGF1dG9tYXRpY2FsbHknOw0KJGxhbmdbJ3Byb21wdF9hbGxvd19hdXRvdXBkYXRlJ10gPSAnQWxsb3cgc3lzdGVtIHRvIHVwZ3JhZGUgaW5zdGFuY2VzIGF1dG9tYXRpY2FsbHkgd2hlbiBMSVNFIGlzIHVwZ3JhZGVkJzsNCiRsYW5nWydtaXNjX29wdGlvbnMnXSA9ICdNaXNjZWxsYW5lb3VzJzsNCiRsYW5nWydwcm9tcHRfYXV0b191cGdyYWRlJ10gPSAnQWxsb3cgc3lzdGVtIHRvIHVwZ3JhZGUgdGhpcyBpbnN0YW5jZSBhdXRvbWF0aWNhbGx5IHdoZW4gTElTRSBpcyB1cGdyYWRlZCc7DQokbGFuZ1sncHJvbXB0X2hpZGVfYWxpYXMnXSA9ICdIaWRlIGFsaWFzIGZpZWxkIGZyb20gaXRlbSBlZGl0b3IgKHdpbGwgYmUgYXV0byBnZW5lcmF0ZWQpJzsNCiRsYW5nWydwcm9tcHRfaGlkZV9zbHVnJ10gPSAnSGlkZSBVUkwgZmllbGQgZnJvbSBpdGVtIGVkaXRvciAod2lsbCBiZSBhdXRvIGdlbmVyYXRlZCknOw0KJGxhbmdbJ3Byb21wdF9oaWRlX3RpbWVfY29udHJvbCddID0gJ0RvIG5vdCB1c2UgdGltZSBjb250cm9sJzsNCiRsYW5nWydwcm9tcHRfaW5zdGFuY2VfbW9kZSddID0gJ0luc3RhbmNlIG9wZXJhdGlvbiBtb2RlJzsNCiRsYW5nWydwcm9tcHRfbG9jYWxfaW5zdGFuY2VzX2xpc3QnXSA9ICdJbnN0YW5jZXMgaW4gTG9jYWwgTW9kZSc7DQokbGFuZ1sncHJvbXB0X3NlcGFyYXRlX3NldHRpbmdzX2NvbnRyb2wnXSA9ICdTZXBhcmF0ZSBtZW51IGVudHJ5IGZvciBpbnN0YW5jZSBzZXR0aW5ncyc7DQoNCi8vIGluc3RhbmNlcw0KJGxhbmdbJ25vdGljZSddID0gJ05vdGljZSc7DQokbGFuZ1snaW5mb3JtYXRpb24nXSA9ICdJbmZvcm1hdGlvbic7DQokbGFuZ1snaW5zdGFuY2VzJ10gPSAnSW5zdGFuY2VzJzsNCiRsYW5nWydpbnN0YWxsZWRfaW5zdGFuY2VzX3dhcm5pbmcnXSA9ICdCZWxvdyBpcyBhIGxpc3Qgb2YgZHVwbGljYXRlZCBtb2R1bGUgaW5zdGFuY2VzLjxiciAvPk1ha2Ugc3VyZSB0byBiYWNrdXAgeW91ciBzaXRlIChEYXRhYmFzZSBhbmQgRmlsZXMpIGJlZm9yZSAidXBkYXRlIiBhY3Rpb24nOw0KJGxhbmdbJ2Nsb25lX2luc3RhbmNlc193YXJuaW5nJ10gPSAnQWxsIHNldHRpbmdzIHdpbGwgYmUgY29waWVkIGV4Y2VwdCBmb3IgcGVybWlzc2lvbnMgd2hpY2ggd2lsbCBoYXZlIHRvIGJlIHNldCBtYW51YWxseS4nOw0KJGxhbmdbJ2luc3RhbGxlZF9pbnN0YW5jZXMnXSA9ICdJbnN0YWxsZWQgaW5zdGFuY2VzJzsNCiRsYW5nWydpbnN0YW5jZV9uYW1lJ10gPSAnSW5zdGFuY2UgbmFtZSc7DQokbGFuZ1snaW5zdGFuY2VfZnJpZW5kbHluYW1lJ10gPSAnRnJpZW5kbHkgbmFtZSc7DQokbGFuZ1snaW5zdGFuY2Vfc21hcnR5J10gPSAnU21hcnR5IHRhZyc7DQokbGFuZ1snaW5zdGFuY2VfdmVyc2lvbiddID0gJ1ZlcnNpb24nOw0KJGxhbmdbJ2luc3RhbmNlX3VwZ3JhZGUnXSA9ICdVcGdyYWRlJzsNCiRsYW5nWydpbnN0YW5jZV91cHRvZGF0ZSddID0gJ1VwIHRvIGRhdGUnOw0KJGxhbmdbJ2luc3RhbmNlX21vZHVsZXVwZ3JhZGVkJ10gPSAnTW9kdWxlIHVwZ3JhZGVkJzsNCiRsYW5nWydpbnN0YW5jZV9tb2R1bGVfZG5hX3NhdmVkJ10gPSAnTW9kdWxlIEROQSBjcmVhdGVkIGFuZCBzYXZlZCc7DQovLyRsYW5nWydkdXBsaWNhdGVfaW5zdGFuY2UnXSA9ICdEdXBsaWNhdGUgbW9kdWxlJzsNCi8vJGxhbmdbJ2R1cGxpY2F0ZV9kZXNjcmlwdGlvbiddID0gJG1vZHVsZV9uYW1lIC4gJyBjYW4gYmUgZWFzaWx5IGR1cGxpY2F0ZWQgdG8gbXVsdGlwbGUgbW9kdWxlIGluc3RhbmNlcyB3aXRoIGR1cGxpY2F0ZSBidXR0b24uPGJyIC8+IEluc3RhbGwgbmV3bHkgY29waWVkIG1vZHVsZSBmcm9tICJFeHRlbnNpb25zICZyYXF1bzsgTW9kdWxlcyIuJzsNCiRsYW5nWydjb3B5X3RpdGxlJ10gPSAnRHVwbGljYXRlIG1vZHVsZSc7DQokbGFuZ1snaW1wb3J0X2Zyb21fTEkyX3RpdGxlJ10gPSAnSW1wb3J0IEluc3RhbmNlcyBGcm9tIExJMic7DQokbGFuZ1sncHJvbXB0X2ltcG9ydF9mcm9tX0xJMiddID0gJ0ltcG9ydCBmcm9tIGV4aXN0aW5nIExJMiBpbnN0YW5jZXMnOw0KJGxhbmdbJ2J1dHRvbl9pbXBvcnRfZnJvbV9MSTInXSA9ICdJbXBvcnQhJzsNCiRsYW5nWydmaXhfaW1wb3J0X2Zyb21fTEkyX3RpdGxlJ10gPSAnRml4IExpc3RJdDIgSW1wb3J0ZWQgVGFibGVzJzsNCiRsYW5nWydmaXhfTEkyX2luc3RhbmNlc193YXJuaW5nJ10gPSAnVXNlIG9ubHkgaWYgeW91IGhhdmUgcHJvYmxlbXMgd2l0aCBhZGRpbmcgb3IgZWRpdGluZyBpdGVtcyBvciBmaWVsZCBkZWZpbml0aW9ucyBvbiBpbnN0YW5jZXMgaW1wb3J0ZWQgZnJvbSBMaXN0SXQyISc7DQokbGFuZ1sncHJvbXB0X2ZpeF9pbXBvcnRfZnJvbV9MSTInXSA9ICdUcnkgdG8gZml4IHRhYmxlcyBpbXBvcnRlZCBmcm9tIExJMiBpbnN0YW5jZXMnOw0KJGxhbmdbJ2J1dHRvbl9maXhfaW1wb3J0X2Zyb21fTEkyJ10gPSAnRml4ISc7DQokbGFuZ1snbWlzc2luZ19vcHRpb25zX25vdGljZSddID0gJ01pc3Npbmcgc29tZSBvcHRpb25zIGhlcmU/IFRoZSBtaXNzaW5nIG9wdGlvbnMgd2lsbCBvbmx5IGJlIHBvc3NpYmxlIHdpdGggdGhlIDxiPkFsbG93IHN5c3RlbSB0byBpbnN0YWxsIGluc3RhbmNlcyBhdXRvbWF0aWNhbGx5PC9iPiBjaGVja2JveCB0aWNrZWQgb24gTElTRSBvcHRpb25zIHRhYi4nOw0KJGxhbmdbJ2luc3RhbmNlX21vZGVfbm90aWNlJ10gPSAnWW91IHdpbGwgbm90IGJlIGFibGUgdG8gcmV2ZXJ0IHRoZSBmb2xsb3dpbmcgb3B0aW9uIG9uY2UgdGhlIG1vZHVsZSBpcyBpbnN0YWxsZWQuIElmIHlvdSBhcmUgbm90IHN1cmUgd2hhdCB0byBzZWxlY3QsIGtlZXAgdGhlIGRlZmF1bHQgb3B0aW9uIDxiPkxpc3QgTW9kZTwvYj4gc2VsZWN0ZWQgYXMgaXQgaXMgdGhlIHVzdWFsLCB3ZWxsIGtub3duLCBMSVNFIHdvcmtpbmcgbW9kZS4gRm9yIGZ1cnRoZXIgaW5mbyBwbGVhc2UgcmVmZXIgdG8gdGhlIG1vZHVsZSBoZWxwIGRvY3VtZW50YXRpb24uJzsNCiRsYW5nWydhZG1pbl9zZWN0aW9uX2luZm8nXSA9ICdZb3UgY2FuIHNlbGVjdCBiZWxvdyBhIGZldyBvcHRpb25zIHJlZ2FyZGluZyBMSVNFIGluc3RhbmNlcyBiZWhhdmlvdXIgaW4gdGhlIGFkbWluIGNvbnRyb2wgaW50ZXJmYWNlLiBJZiB5b3Ugb3B0IHRvIGhhdmUgYSBzZXBhcmF0ZSBtZW51IGVudHJ5IGZvciB0aGUgaW5zdGFuY2Ugc2V0dGluZ3MgdGhlc2Ugd2lsbCBhbHdheXMgYmUgdW5kZXIgdGhlIDxiPlNpdGUgQWRtaW48L2I+IHNlY3Rpb24gYW5kIHdpbGwgaGF2ZSB0aGUgZm9sbG93aW5nIGZvcm1hdDogPGI+U2V0dGluZ3MgLSAJJmx0O0luc3RhbmNlIEZyaWVuZGx5IE5hbWUmZ3Q7PC9iPi4nOw0KJGxhbmdbJ2luc3RhbmNlX21vZGVfaW5mbyddID0gJ09wZXJhdGlvbiBtb2RlcyB3aWxsIGFmZmVjdCBob3cgPGI+TW9kdWxlIEFkbWluIFNlY3Rpb248L2I+IGFuZCA8Yj5TZXBhcmF0ZSBtZW51IGVudHJ5IGZvciBpbnN0YW5jZSBzZXR0aW5nczwvYj4gd29yay4gUmVhZCBoZWxwIGRvY3VtZW50YXRpb24gZm9yIGRldGFpbHMuJzsNCiRsYW5nWydpbnN0YW5jZV9tb2RlJ10gPSAnTW9kZSc7DQokbGFuZ1snbW9kZV9saXN0J10gPSAnTGlzdCc7DQokbGFuZ1snbW9kZV9nbG9iYWwnXSA9ICdHbG9iYWwnOw0KJGxhbmdbJ21vZGVfbG9jYWwnXSA9ICdMb2NhbCc7DQoNCi8vIGdsb2JhbA0KJGxhbmdbJ3N1Ym1pdCddID0gJ1N1Ym1pdCc7DQokbGFuZ1snZGVmYXVsdCddID0gJ0RlZmF1bHQnOw0KJGxhbmdbJ2NhbmNlbCddID0gJ0NhbmNlbCc7DQokbGFuZ1sndXBkYXRlJ10gPSAnVXBkYXRlJzsNCiRsYW5nWydyZXBhaXInXSA9ICdSZXBhaXInOw0KJGxhbmdbJ3NhdmVfY3JlYXRlJ10gPSAnU2F2ZSAmYW1wOyBDcmVhdGUnOw0KJGxhbmdbJ3Jlc2V0J10gPSAnUmVzZXQgRGVmYXVsdCc7DQokbGFuZ1snZHVwbGljYXRlJ10gPSAnQ3JlYXRlIGluc3RhbmNlJzsNCiRsYW5nWydjaGFuZ2Vzc2F2ZWQnXSA9ICdZb3VyIGNoYW5nZXMgaGF2ZSBiZWVuIHN1Y2Nlc3NmdWxseSBzYXZlZC4nOw0KJGxhbmdbJ2NoYW5nZXNfc2F2ZWRfcHJldmlvdXMnXSA9ICdZb3VyIHByZXZpb3VzIGl0ZW0gaGFzIGJlZW4gc3VjY2Vzc2Z1bGx5IHNhdmVkLic7DQokbGFuZ1snY2hhbmdlc3NhdmVkX2NyZWF0ZSddID0gJ1lvdXIgcHJldmlvdXMgaXRlbSBoYXMgYmVlbiBzdWNjZXNzZnVsbHkgc2F2ZWQuIENyZWF0ZSBuZXcgaXRlbT8nOw0KJGxhbmdbJ3RlbXBsYXRlcmVzdG9yZWQnXSA9ICdEZWZhdWx0IFRlbXBsYXRlIGhhcyBiZWVuIHJlc3RvcmVkLic7DQokbGFuZ1snYXJleW91c3VyZSddID0gJ0FyZSB5b3Ugc3VyZSB5b3Ugd2FudCB0byBkZWxldGU/JzsNCiRsYW5nWyd1cCddID0gJ1VwJzsNCiRsYW5nWydkb3duJ10gPSAnRG93bic7DQokbGFuZ1snZWRpdCddID0gJ0VkaXQnOw0KJGxhbmdbJ2NvcHknXSA9ICdDb3B5JzsNCiRsYW5nWydkZWxldGUnXSA9ICdEZWxldGUnOw0KJGxhbmdbJ25vc3VjaGlkJ10gPSAnTm8gc3VjaCBJRCc7DQokbGFuZ1snZGVsZXRlZCddID0gJ1RoZSBpdGVtKHMpIGhhdmUgYmVlbiBzdWNjZXNzZnVsbHkgZGVsZXRlZC4nOw0KJGxhbmdbJ2FkZCddID0gJ0FkZCAlcyc7DQokbGFuZ1snaW1wb3J0J10gPSAnSW1wb3J0ICVzJzsNCiRsYW5nWydleHBvcnQnXSA9ICdFeHBvcnQgJXMnOw0KJGxhbmdbJ2Nsb25lJ10gPSAnQ2xvbmUgJXMnOw0KJGxhbmdbJ2V4cG9ydF90aXRsZSddID0gJ0V4cG9ydCc7DQokbGFuZ1snaW1wb3J0X3RpdGxlJ10gPSAnSW1wb3J0JzsNCiRsYW5nWydjbG9uZV90aXRsZSddID0gJ0Nsb25lJzsNCiRsYW5nWydhbGlhcyddID0gJ0FsaWFzJzsNCiRsYW5nWydhbGlhc19kdXBsaWNhdGUnXSA9ICdBbGlhcyBpcyBpbnZhbGlkLiBFYWNoIGFsaWFzIG11c3QgYmUgdW5pcXVlJzsNCiRsYW5nWydhbGlhc19pbnZhbGlkJ10gPSAnQWxpYXMgaXMgaW52YWxpZC4gSXQgbXVzdCBzdGFydCB3aXRoIGEgbGV0dGVyIGFuZCBvbmx5IGluY2x1ZGUgbGV0dGVycywgbnVtYmVycyBhbmQgdW5kZXJzY29yZXMnOw0KJGxhbmdbJ3NlYXJjaCddID0gJ1NlYXJjaCc7DQokbGFuZ1snc2VhcmNoZm9yJ10gPSAnU2VhcmNoIGZvcic7DQokbGFuZ1snc2VhcmNocmVzdWx0c2ZvciddID0gJ1NlYXJjaCByZXN1bHRzIGZvcic7DQokbGFuZ1snZmlyc3RwYWdlJ10gPSAnJmx0OyZsdDsnOw0KJGxhbmdbJ3ByZXZwYWdlJ10gPSAnJmx0Oyc7DQokbGFuZ1snbmV4dHBhZ2UnXSA9ICcmZ3Q7JzsNCiRsYW5nWydsYXN0cGFnZSddID0gJyZndDsmZ3Q7JzsNCiRsYW5nWydtb2R1bGVfbmFtZSddID0gJ01vZHVsZSBuYW1lJzsNCiRsYW5nWydtb2R1bGVfbmFtZV9lbXB0eSddID0gJ01vZHVsZSBuYW1lIGlzIGVtcHR5JzsNCiRsYW5nWydtb2R1bGVfbmFtZV9pbnZhbGlkJ10gPSAnTW9kdWxlIG5hbWUgY29udGFpbnMgaW52YWxpZCBjaGFyYWN0ZXJzJzsNCiRsYW5nWydtb2R1bGVjb3BpZWQnXSA9ICdNb2R1bGUgY29waWVkIHN1Y2Nlc3NmdWxseSc7DQokbGFuZ1snc2VsZWN0X29uZSddID0gJ1NlbGVjdCBPbmUnOw0KJGxhbmdbJ3NpemUnXSA9ICdTaXplJzsNCiRsYW5nWydtYXhfbGVuZ3RoJ10gPSAnTWF4IExlbmd0aCc7DQokbGFuZ1snd3lzaXd5ZyddID0gJ1dZU0lXWUcnOw0KJGxhbmdbJ2RhdGVfZm9ybWF0J10gPSAnRGF0ZSBGb3JtYXQnOw0KJGxhbmdbJ3RpbWVfZm9ybWF0J10gPSAnVGltZSBGb3JtYXQnOw0KJGxhbmdbJ2Zvcm1hdF90eXBlJ10gPSAnRm9ybWF0IFR5cGUnOw0KJGxhbmdbJ2RpciddID0gJ0RpcmVjdG9yeSc7DQokbGFuZ1snYWxsb3dlZCddID0gJ0FsbG93ZWQnOw0KJGxhbmdbJ2V4Y2x1ZGVfcHJlZml4J10gPSAnRXhjbHVkZSBwcmVmaXgnOw0KJGxhbmdbJ2ltYWdlJ10gPSAnSW1hZ2UnOw0KJGxhbmdbJ2ZpbGUnXSA9ICdGaWxlJzsNCiRsYW5nWydyZXF1aXJlZCddID0gJ1JlcXVpcmVkJzsNCiRsYW5nWydhc2NlbmRpbmcnXSA9ICdBc2NlbmRpbmcnOw0KJGxhbmdbJ2Rlc2NlbmRpbmcnXSA9ICdEZXNjZW5kaW5nJzsNCiRsYW5nWydleHRyYSddID0gJ0V4dHJhJzsNCiRsYW5nWydjb21iaW5lZCddID0gJ0NvbWJpbmVkJzsNCiRsYW5nWydzaG93X3NlY29uZHMnXSA9ICdTaG93IFNlY29uZHMnOw0KJGxhbmdbJ3ZhbHVlJ10gPSAnVmFsdWUnOw0KJGxhbmdbJ3dpZHRoJ10gPSAnV2lkdGgnOw0KJGxhbmdbJ21pbl92YWx1ZSddID0gJ01pbmltdW0gVmFsdWUnOw0KJGxhbmdbJ21heF92YWx1ZSddID0gJ01heGltdW0gVmFsdWUnOw0KJGxhbmdbJ2luY3JlbWVudF9ieSddID0gJ0luY3JlbWVudCBieSc7DQokbGFuZ1snc3VidHlwZSddID0gJ1N1YiBUeXBlJzsNCiRsYW5nWydzaG93YWxsJ10gPSAnU2hvdyBBbGwnOw0KJGxhbmdbJ2NvbHVtbnMnXSA9ICdDb2x1bW5zJzsNCiRsYW5nWydvd25lciddID0gJ093bmVyJzsNCiRsYW5nWyd1bnRpdGxlZCddID0gJ3VudGl0bGVkJzsNCiRsYW5nWydpbXBvcnRfaW5zdGFuY2UnXSA9ICdJbXBvcnQgZnJvbSBhIExJU0UgWE1MIGV4cG9ydCBnZW5lcmF0ZWQgZmlsZSc7DQokbGFuZ1snaW1wb3J0X2luc3RhbmNlX2luZm8nXSA9ICdZb3UgY2FuIGxlYXZlIHRoZSA8c3Ryb25nPkluc3RhbmNlIE5hbWU8L3N0cm9uZz4gZmllbGQgZW1wdHkuIFRoZSBuYW1lIG9mIHRoZSBpbnN0YW5jZSB3aWxsIGJlIGV4dHJhY3RlZCBmcm9tIFhNTCBieSBkZWZhdWx0Lic7DQokbGFuZ1snc2F2ZV9kbmEnXSA9ICdTYXZlIEROQSc7DQokbGFuZ1snc2F2ZV9kbmFfdGl0bGUnXSA9ICdTYXZlIEROQSc7DQoNCg0KLy8gY3N2IGltcG9ydC9leHBvcnQNCiRsYW5nWydmaWxlbmFtZSddID0gJ0ZpbGUgbmFtZSc7DQokbGFuZ1snZW5jbG9zdXJlJ10gPSAnRW5jbG9zdXJlJzsNCiRsYW5nWydzZXBhcmF0b3InXSA9ICdTZXBhcmF0b3InOw0KJGxhbmdbJ3ZhbHVlcyddID0gJ1ZhbHVlcyc7DQokbGFuZ1snaW1wb3J0X2FsaWFzJ10gPSAnSXRlbS9GaWVsZGRlZiBhbGlhcyc7DQokbGFuZ1snZmlsZV9hbGlhcyddID0gJ0ZpbGUgaGVhZGVyL2FsaWFzJzsNCg0KLy8gZXJyb3JzDQokbGFuZ1snZXJyb3Jfb3B0aW9ucmVxdWlyZWQnXSA9ICdPcHRpb24gJXMgaXMgcmVxdWlyZWQnOw0KJGxhbmdbJ2Vycm9yX2JhZF9leHRlbnNpb24nXSA9ICdGaWxlIHlvdSB0cnlpbmcgdG8gdXBsb2FkIGhhcyBiYWQgZXh0ZW5zaW9uJzsNCiRsYW5nWydlcnJvcl9maWxlX3Blcm1pc3Npb25zJ10gPSAnVGhlcmUgd2FzIHByb2JsZW0gd2l0aCBmaWxlIHBlcm1pc3Npb25zJzsNCiRsYW5nWydlcnJvcl9maWxlX2VtcHR5J10gPSAnTm8gZmlsZSBnaXZlbic7DQokbGFuZ1snZXJyb3JfZmlsZV9ub2NzdiddID0gJ0ZpbGUgaXMgbm90IENTViBmaWxlJzsNCg0KLy8gZmlsdGVyDQokbGFuZ1snZmlsdGVyJ10gPSAnRmlsdGVyJzsNCiRsYW5nWydmaWx0ZXJwcm9tcHQnXSA9ICdGaWx0ZXIgJXMnOw0KJGxhbmdbJ3BhcmFtX2ZpbHRlcl9taXNzaW5nJ10gPSAnUGFyYW1ldGVyIDxlbT5maWx0ZXI8L2VtPiBpcyByZXF1aXJlZCBpbiBmaWx0ZXIgbW9kZS4nOw0KJGxhbmdbJ2FsbCddID0gJ0FsbCc7DQoNCi8vIEV2ZW50IGRlc2NyaXB0aW9ucw0KJGxhbmdbJ2V2ZW50ZGVzY19QcmVJdGVtU2F2ZSddID0gJ1NlbnQgYmVmb3JlIGl0ZW0gc2F2ZSBwcm9jZXNzIGJlZ2lucy4gUG9zc2libGUgdG8gbWFuaXB1bGF0ZSBpdGVtIG9iamVjdCBkYXRhLic7DQokbGFuZ1snZXZlbnRkZXNjX1Bvc3RJdGVtU2F2ZSddID0gJ1NlbnQgYWZ0ZXIgaXRlbSBzYXZlIHByb2Nlc3MgaGFzIGNvbXBsZXRlZC4gUG9zc2libGUgdG8gbWFuaXB1bGF0ZSBpdGVtIG9iamVjdCBkYXRhLic7DQokbGFuZ1snZXZlbnRkZXNjX1ByZUl0ZW1EZWxldGUnXSA9ICdTZW50IGJlZm9yZSBpdGVtIGRlbGV0ZSBwcm9jZXNzIGJlZ2lucy4gUG9zc2libGUgdG8gbWFuaXB1bGF0ZSBpdGVtIG9iamVjdCBkYXRhLic7DQokbGFuZ1snZXZlbnRkZXNjX1Bvc3RJdGVtRGVsZXRlJ10gPSAnU2VudCBhZnRlciBpdGVtIGRlbGV0ZSBwcm9jZXNzIGhhcyBjb21wbGV0ZWQuIFBvc3NpYmxlIHRvIG1hbmlwdWxhdGUgaXRlbSBvYmplY3QgZGF0YS4nOw0KJGxhbmdbJ2V2ZW50ZGVzY19QcmVJdGVtTG9hZCddID0gJ1NlbnQgYmVmb3JlIGl0ZW0gbG9hZCBwcm9jZXNzIGJlZ2lucy4gUG9zc2libGUgdG8gbWFuaXB1bGF0ZSBpdGVtIG9iamVjdCBkYXRhLic7DQokbGFuZ1snZXZlbnRkZXNjX1Bvc3RJdGVtTG9hZCddID0gJ1NlbnQgYWZ0ZXIgaXRlbSBsb2FkIHByb2Nlc3MgaGFzIGNvbXBsZXRlZC4gUG9zc2libGUgdG8gbWFuaXB1bGF0ZSBpdGVtIG9iamVjdCBkYXRhLic7DQokbGFuZ1snZXZlbnRkZXNjX1ByZVJlbmRlckFjdGlvbiddID0gJ1NlbnQgb24gYWN0aW9uIGV4ZWN1dGUuIFBvc3NpYmxlIHRvIG1hbmlwdWxhdGUgaXRlbSBxdWVyeSBkYXRhLic7DQoNCiNFdmVudCBoZWxwDQokbGFuZ1snZXZlbnRoZWxwX1ByZUl0ZW1TYXZlJ10gPSAiPHA+Ii4kbGFuZ1snZXZlbnRkZXNjX1ByZUl0ZW1TYXZlJ10uIjwvcD4NCjxoND5QYXJhbWV0ZXJzPC9oND4NCjx1bD4NCjxsaT4naXRlbV9vYmplY3QnIC0gUmVmZXJlbmNlIHRvIGFmZmVjdGVkIGl0ZW0gb2JqZWN0LjwvbGk+DQo8L3VsPiI7DQoNCiRsYW5nWydldmVudGhlbHBfUG9zdEl0ZW1TYXZlJ10gPSAiPHA+Ii4kbGFuZ1snZXZlbnRkZXNjX1Bvc3RJdGVtU2F2ZSddLiI8L3A+DQo8aDQ+UGFyYW1ldGVyczwvaDQ+DQo8dWw+DQo8bGk+J2l0ZW1fb2JqZWN0JyAtIFJlZmVyZW5jZSB0byBhZmZlY3RlZCBpdGVtIG9iamVjdC48L2xpPg0KPC91bD4iOw0KDQokbGFuZ1snZXZlbnRoZWxwX1ByZUl0ZW1EZWxldGUnXSA9ICI8cD4iLiRsYW5nWydldmVudGRlc2NfUHJlSXRlbURlbGV0ZSddLiI8L3A+DQo8aDQ+UGFyYW1ldGVyczwvaDQ+DQo8dWw+DQo8bGk+J2l0ZW1fb2JqZWN0JyAtIFJlZmVyZW5jZSB0byBhZmZlY3RlZCBpdGVtIG9iamVjdC48L2xpPg0KPC91bD4iOw0KDQokbGFuZ1snZXZlbnRoZWxwX1Bvc3RJdGVtRGVsZXRlJ10gPSAiPHA+Ii4kbGFuZ1snZXZlbnRkZXNjX1Bvc3RJdGVtRGVsZXRlJ10uIjwvcD4NCjxoND5QYXJhbWV0ZXJzPC9oND4NCjx1bD4NCjxsaT4naXRlbV9vYmplY3QnIC0gUmVmZXJlbmNlIHRvIGFmZmVjdGVkIGl0ZW0gb2JqZWN0LjwvbGk+DQo8L3VsPiI7DQoNCiRsYW5nWydldmVudGhlbHBfUHJlSXRlbUxvYWQnXSA9ICI8cD4iLiRsYW5nWydldmVudGRlc2NfUHJlSXRlbUxvYWQnXS4iPC9wPg0KPGg0PlBhcmFtZXRlcnM8L2g0Pg0KPHVsPg0KPGxpPidpdGVtX29iamVjdCcgLSBSZWZlcmVuY2UgdG8gYWZmZWN0ZWQgaXRlbSBvYmplY3QuPC9saT4NCjwvdWw+IjsNCg0KJGxhbmdbJ2V2ZW50aGVscF9Qb3N0SXRlbUxvYWQnXSA9ICI8cD4iLiRsYW5nWydldmVudGRlc2NfUG9zdEl0ZW1Mb2FkJ10uIjwvcD4NCjxoND5QYXJhbWV0ZXJzPC9oND4NCjx1bD4NCjxsaT4naXRlbV9vYmplY3QnIC0gUmVmZXJlbmNlIHRvIGFmZmVjdGVkIGl0ZW0gb2JqZWN0LjwvbGk+DQo8L3VsPiI7DQoNCiRsYW5nWydldmVudGhlbHBfUHJlUmVuZGVyQWN0aW9uJ10gPSAiPHA+Ii4kbGFuZ1snZXZlbnRkZXNjX1ByZVJlbmRlckFjdGlvbiddLiI8L3A+DQo8aDQ+UGFyYW1ldGVyczwvaDQ+DQo8dWw+DQo8bGk+J2FjdGlvbl9uYW1lJyAtIE5hbWUgb2YgZXhlY3V0ZWQgYWN0aW9uLjwvbGk+DQo8bGk+J3F1ZXJ5X29iamVjdCcgLSBSZWZlcmVuY2UgdG8gYWZmZWN0ZWQgcXVlcnkgb2JqZWN0LjwvbGk+DQo8L3VsPiI7DQoNCi8vIG1vZHVsZQ0KJGxhbmdbJ21vZGRlc2NyaXB0aW9uJ10gPSAnTElTRSBhbGxvd3MgeW91IHRvIGNyZWF0ZSBsaXN0cyB0aGF0IHlvdSBjYW4gZGlzcGxheSB0aHJvdWdob3V0IHlvdXIgd2Vic2l0ZS4nOw0KJGxhbmdbJ3Bvc3RpbnN0YWxsJ10gPSAkbW9kdWxlX25hbWUgLiAnIGhhcyBzdWNjZXNzZnVsbHkgYmVlbiBpbnN0YWxsZWQnOw0KJGxhbmdbJ3Bvc3R1bmluc3RhbGwnXSA9ICRtb2R1bGVfbmFtZSAuICcgaGFzIHN1Y2Nlc3NmdWxseSBiZWVuIHVuaW5zdGFsbGVkJzsNCg0KLy8gbW9kdWxlIGhlbHANCiRsYW5nWydnZW5lcmFsJ10gPSAnR2VuZXJhbCc7DQokbGFuZ1sndXNhZ2UnXSA9ICdVc2FnZSc7DQokbGFuZ1sncGVybWlzc2lvbnMnXSA9ICdQZXJtaXNzaW9ucyc7DQokbGFuZ1snZHVwbGljYXRpbmcnXSA9ICdDcmVhdGluZyBJbnN0YW5jZXMnOw0KJGxhbmdbJ3VwZ3JhZGluZyddID0gJ1VwZ3JhZGluZyc7DQokbGFuZ1snaW1wb3J0aW5nJ10gPSAnSW1wb3J0aW5nIEZyb20gTGlzdEl0RXh0ZW5kZWQgSW5zdGFsbGF0aW9ucyc7DQokbGFuZ1snc21hcnR5X3BsdWdpbnMnXSA9ICdTbWFydHkgcGx1Z2lucyc7DQovLyRsYW5nWydhYm91dCddID0gJ0Fib3V0JzsNCiRsYW5nWyd1cGdyYWRlX2Zyb20nXSA9ICdVcGdyYWRpbmcgZnJvbSc7DQokbGFuZ1snaW1wb3J0aW5nX2Zyb21fbGkyJ10gPSAnSW1wb3J0aW5nIEZyb20gTEkyIEluc3RhbmNlcyc7DQokbGFuZ1sndGVhbSddID0gJ1RlYW0nOw0KJGxhbmdbJ3BhcmFtcyddID0gJ1BhcmFtZXRlcnMnOw0KLy8kbGFuZ1snY29udHJpYnV0b3JzJ10gPSAnQ29udHJpYnV0b3JzJzsNCg0KDQojIyMgaGVscA0KJGxhbmdbJ3RpdGxlX3RlbXBsYXRlX3BvcHVwX2hlbHBfdGl0bGUnXSA9ICdUaXRsZSBUZW1wbGF0ZSc7DQokbGFuZ1sndGl0bGVfdGVtcGxhdGVfcG9wdXBfaGVscCddID0gJw0KPHA+U21hcnR5IHRhZ3MgcXVpY2sgcmVmZXJlbmNlOg0KICA8dWw+DQogICAgPGxpPjxiPntJdGVtU2luZ3VsYXJ9PC9iPiAtIHRoZSBpbnN0YW5jZSBwcmVmZXJlbmNlIHN0b3JlZCB0byBuYW1lIHRoZSBJdGVtOzwvbGk+DQogICAgPGxpPjxiPntJdGVtUGx1cmFsfTwvYj4gLSB0aGUgaW5zdGFuY2UgcHJlZmVyZW5jZSBzdG9yZWQgdG8gbmFtZSB0aGUgSXRlbTs8L2xpPg0KICAgIDxsaT48Yj57SXRlbU5leHRJRH08L2I+IC0gdGhlIGV4cGVjdGVkIGl0ZW0gaWQgb2YgdGhlIG5ldyBpdGVtIHdoZW4gc3VibWl0dGVkOzwvbGk+DQogICAgPGxpPjxiPntJdGVtQ291bnRlcn08L2I+IC0gdGhlIGV4cGVjdGVkICMgb2YgdGhlIG5ldyBpdGVtIHdoZW4gc3VibWl0dGVkOzwvbGk+DQogICAgPGxpPjxiPntSYW5kb21TdHJpbmd9PC9iPiAtIGEgcmFuZG9tIHN0cmluZyBnZW5lcmF0b3Igd2l0aCB0aGUgZm9sbG93aW5nIHBhcmFtZXRlcnM6DQogICAgICA8dWw+DQogICAgICAgIDxsaT48Yj5sPTI1PC9iPiA8aT4ob3B0aW9uYWwpPC9pPiAtIHRoZSBsZW5ndGggb2YgdGhlIHN0cmluZywgZGVmYXVsdCAxMDs8L2xpPg0KICAgICAgICA8bGk+PGI+Zj11ZDwvYj4gPGk+KG9wdGlvbmFsKTwvaT4gLSBtb2RlIGZsYWdzOg0KICAgICAgICAgIDx1bD4NCiAgICAgICAgICAgIDxsaT48Yj5tPC9iPiAoZGVmYXVsdCkgLSAgbWl4ZWQ6IGRpZ2l0cywgdXBwZXIgYW5kIGxvd2VyIGNoYXJhY3RlcnM7PC9saT4NCiAgICAgICAgICAgIDxsaT48Yj5kPC9iPiAtIGRpZ2l0czs8L2xpPg0KICAgICAgICAgICAgPGxpPjxiPnU8L2I+IC0gdXBwZXIgY2hhcmFjdGVyczs8L2xpPg0KICAgICAgICAgICAgPGxpPjxiPmw8L2I+IC0gbG93ZXIgY2hhcmFjdGVyczs8L2xpPg0KICAgICAgICAgIDwvdWw+DQogICAgICAgIDwvbGk+DQogICAgICA8L3VsPg0KICAgIDwvbGk+DQogIDwvdWw+DQo8L3A+DQo8cD5TZWUgbW9kdWxlIGhlbHAgZm9yIGRldGFpbGVkIGV4cGxhbmF0aW9uIG9mIHRoZSB0YWdzPC9wPg0KJzsNCiRsYW5nWydhbGlhc190ZW1wbGF0ZV9wb3B1cF9oZWxwX3RpdGxlJ10gPSAnQWxpYXMgVGVtcGxhdGUnOw0KJGxhbmdbJ2FsaWFzX3RlbXBsYXRlX3BvcHVwX2hlbHAnXSA9ICcNCjxwPlNtYXJ0eSB0YWdzIHF1aWNrIHJlZmVyZW5jZToNCiAgPHVsPg0KICAgIDxsaT48Yj57SXRlbVRpdGxlfTwvYj4gLSB0aGUgbWFudWFsbHkgaW5zZXJ0ZWQgdGl0bGUgb3IgZ2VuZXJhdGVkIHRpdGxlIGZyb20gdGhlIHByZXZpb3VzIHRlbXBsYXRlOzwvbGk+DQogICAgPGxpPjxiPntJdGVtU2luZ3VsYXJ9PC9iPiAtIHRoZSBpbnN0YW5jZSBwcmVmZXJlbmNlIHN0b3JlZCB0byBuYW1lIHRoZSBJdGVtOzwvbGk+DQogICAgPGxpPjxiPntJdGVtUGx1cmFsfTwvYj4gLSB0aGUgaW5zdGFuY2UgcHJlZmVyZW5jZSBzdG9yZWQgdG8gbmFtZSB0aGUgSXRlbTs8L2xpPg0KICAgIDxsaT48Yj57SXRlbU5leHRJRH08L2I+IC0gdGhlIGV4cGVjdGVkIGl0ZW0gaWQgb2YgdGhlIG5ldyBpdGVtIHdoZW4gc3VibWl0dGVkOzwvbGk+DQogICAgPGxpPjxiPntJdGVtQ291bnRlcn08L2I+IC0gdGhlIGV4cGVjdGVkICMgb2YgdGhlIG5ldyBpdGVtIHdoZW4gc3VibWl0dGVkOzwvbGk+DQogICAgPGxpPjxiPntSYW5kb21TdHJpbmd9PC9iPiAtIGEgcmFuZG9tIHN0cmluZyBnZW5lcmF0b3Igd2l0aCB0aGUgZm9sbG93aW5nIHBhcmFtZXRlcnM6DQogICAgICA8dWw+DQogICAgICAgIDxsaT48Yj5sPTI1PC9iPiA8aT4ob3B0aW9uYWwpPC9pPiAtIHRoZSBsZW5ndGggb2YgdGhlIHN0cmluZywgZGVmYXVsdCAxMDs8L2xpPg0KICAgICAgICA8bGk+PGI+Zj11ZDwvYj4gPGk+KG9wdGlvbmFsKTwvaT4gLSBtb2RlIGZsYWdzOg0KICAgICAgICAgIDx1bD4NCiAgICAgICAgICAgIDxsaT48Yj5tPC9iPiAoZGVmYXVsdCkgLSAgbWl4ZWQ6IGRpZ2l0cywgdXBwZXIgYW5kIGxvd2VyIGNoYXJhY3RlcnM7PC9saT4NCiAgICAgICAgICAgIDxsaT48Yj5kPC9iPiAtIGRpZ2l0czs8L2xpPg0KICAgICAgICAgICAgPGxpPjxiPnU8L2I+IC0gdXBwZXIgY2hhcmFjdGVyczs8L2xpPg0KICAgICAgICAgICAgPGxpPjxiPmw8L2I+IC0gbG93ZXIgY2hhcmFjdGVyczs8L2xpPg0KICAgICAgICAgIDwvdWw+DQogICAgICAgIDwvbGk+DQogICAgICA8L3VsPg0KICAgIDwvbGk+DQogIDwvdWw+DQo8L3A+DQo8cD5TZWUgbW9kdWxlIGhlbHAgZm9yIGRldGFpbGVkIGV4cGxhbmF0aW9uIG9mIHRoZSB0YWdzPC9wPg0KJzsNCiRsYW5nWydzbHVnX3RlbXBsYXRlX3BvcHVwX2hlbHBfdGl0bGUnXSA9ICdVUkwgVGVtcGxhdGUnOw0KJGxhbmdbJ3NsdWdfdGVtcGxhdGVfcG9wdXBfaGVscCddID0gJw0KPHA+U21hcnR5IHRhZ3MgcXVpY2sgcmVmZXJlbmNlOg0KICA8dWw+DQogICAgPGxpPjxiPntQcmVmaXh9PC9iPiAtIHRoZSBVUkwgcHJlZml4IHNlbGVjdGVkOzwvbGk+DQogICAgPGxpPjxiPntJdGVtVGl0bGV9PC9iPiAtIHRoZSBtYW51YWxseSBpbnNlcnRlZCB0aXRsZSBvciBnZW5lcmF0ZWQgdGl0bGUgZnJvbSB0aGUgcHJldmlvdXMgdGVtcGxhdGU7PC9saT4NCiAgICA8bGk+PGI+e0l0ZW1BbGlhc308L2I+IC0gdGhlIG1hbnVhbGx5IGluc2VydGVkIGFsaWFzIG9yIGdlbmVyYXRlZCBhbGlhcyBmcm9tIHRoZSBwcmV2aW91cyB0ZW1wbGF0ZTs8L2xpPg0KICAgIDxsaT48Yj57SXRlbUNhdGVnb3J5fTwvYj4gLSB0aGUgZmlyc3QgZGV0ZXJtaW5lZCBjYXRlZ29yeSBhbiBpdGVtIGJlbG9uZ3MgdG87PC9saT4NCiAgICA8bGk+PGI+e0l0ZW1QbHVyYWx9PC9iPiAtIHRoZSBpbnN0YW5jZSBwcmVmZXJlbmNlIHN0b3JlZCB0byBuYW1lIHRoZSBJdGVtOzwvbGk+DQogICAgPGxpPjxiPntJdGVtTmV4dElEfTwvYj4gLSB0aGUgZXhwZWN0ZWQgaXRlbSBpZCBvZiB0aGUgbmV3IGl0ZW0gd2hlbiBzdWJtaXR0ZWQ7PC9saT4NCiAgICA8bGk+PGI+e0l0ZW1Db3VudGVyfTwvYj4gLSB0aGUgZXhwZWN0ZWQgIyBvZiB0aGUgbmV3IGl0ZW0gd2hlbiBzdWJtaXR0ZWQ7PC9saT4NCiAgICA8bGk+PGI+e1JhbmRvbVN0cmluZ308L2I+IC0gYSByYW5kb20gc3RyaW5nIGdlbmVyYXRvciB3aXRoIHRoZSBmb2xsb3dpbmcgcGFyYW1ldGVyczoNCiAgICAgIDx1bD4NCiAgICAgICAgPGxpPjxiPmw9MjU8L2I+IDxpPihvcHRpb25hbCk8L2k+IC0gdGhlIGxlbmd0aCBvZiB0aGUgc3RyaW5nLCBkZWZhdWx0IDEwOzwvbGk+DQogICAgICAgIDxsaT48Yj5mPXVkPC9iPiA8aT4ob3B0aW9uYWwpPC9pPiAtIG1vZGUgZmxhZ3M6DQogICAgICAgICAgPHVsPg0KICAgICAgICAgICAgPGxpPjxiPm08L2I+IChkZWZhdWx0KSAtICBtaXhlZDogZGlnaXRzLCB1cHBlciBhbmQgbG93ZXIgY2hhcmFjdGVyczs8L2xpPg0KICAgICAgICAgICAgPGxpPjxiPmQ8L2I+IC0gZGlnaXRzOzwvbGk+DQogICAgICAgICAgICA8bGk+PGI+dTwvYj4gLSB1cHBlciBjaGFyYWN0ZXJzOzwvbGk+DQogICAgICAgICAgICA8bGk+PGI+bDwvYj4gLSBsb3dlciBjaGFyYWN0ZXJzOzwvbGk+DQogICAgICAgICAgPC91bD4NCiAgICAgICAgPC9saT4NCiAgICAgIDwvdWw+DQogICAgPC9saT4NCiAgICA8bGk+PGI+eyRwcmVmaXh9PC9iPiAtIGRlcHJlY2F0ZWQ6IHVzZSA8Yj57UHJlZml4fTwvYj47PC9saT4NCiAgICA8bGk+PGI+eyRpdGVtX3RpdGxlfTwvYj4gLSBkZXByZWNhdGVkOiB1c2UgPGI+e0l0ZW1UaXRsZX08L2I+OzwvbGk+DQogICAgPGxpPjxiPnskaXRlbV9jYXRlZ29yeX08L2I+IC0gZGVwcmVjYXRlZDogdXNlIDxiPntJdGVtQ2F0ZWdvcnl9PC9iPjs8L2xpPg0KICA8L3VsPg0KPC9wPg0KPHA+U2VlIG1vZHVsZSBoZWxwIGZvciBkZXRhaWxlZCBleHBsYW5hdGlvbiBvZiB0aGUgdGFnczwvcD4NCic7DQoNCg0KJGxhbmdbJ2hlbHBfZ2VuZXJhbCddID0gJzxoMz5HZW5lcmFsIEluZm88L2gzPg0KICAgIDxwPlNpbXBseSBwdXQsIExJU0UgYWxsb3dzIHlvdSB0byBjcmVhdGUgbGlzdHMgdGhhdCB5b3UgY2FuIGRpc3BsYXkgdGhyb3VnaG91dCB5b3VyIHdlYnNpdGUuIFlvdSBjYW4gbWFrZSBhIHNpbXBsZSBGQVEgb3IgVGVzdGltb25pYWxzIGZlYXR1cmUgd2l0aCB0aGlzIG1vZHVsZS4gVGhlIHdlYiBkZXZlbG9wZXIgY2FuIGRlZmluZSBmaWVsZHMgdG8gY29uc3RyYWluIHdoYXQgZGF0YSB0aGUgY2xpZW50IGNhbiBlbnRlci4gQSBudW1iZXIgb2YgZmllbGQgdHlwZXMgY2FuIGJlIHNwZWNpZmllZCAtIHRleHQgaW5wdXQsIGNoZWNrYm94LCB0ZXh0IGFyZWEsIHNlbGVjdCBkYXRlLCB1cGxvYWQgZmlsZSwgc2VsZWN0IGZpbGUsIGRyb3Bkb3duIC0gYW5kIGFkZGl0aW9uYWwgaW5zdHJ1Y3Rpb25zIGNhbiBiZSBzZXQgZm9yIGVhY2ggdHlwZSwgZm9yIGV4YW1wbGUsIGlucHV0IGZpZWxkIHNpemUsIG1heCBsZW5ndGgsIFdZU0lXWUcgZWRpdG9yLCBwb3NzaWJsZSBkcm9wIGRvd24gdmFsdWVzLCBwb3NzaWJsZSBmaWxlIGV4dGVuc2lvbnMsIGRpcmVjdG9yeSBwYXRocyBmb3IgZmlsZSBzZWxlY3Rpb25zLCBkYXRlIGZvcm1hdHMsIGV0Yy4uPC9wPg0KICAgIDxwPkFuIGltcG9ydGFudCBub3RlIG9mIHdhcm5pbmcgLSBUaGlzIGlzIG5vdCBhIGNvbnRlbnQgY29uc3RydWN0aW9uIGtpdCwgc3VjaCBhcyBpbiBEcnVwYWwuIEl0IGlzIG1lYW50IGZvciBzbWFsbCBsaXN0aW5ncywgbm90IHRvIHN0b3JlIHRob3VzYW5kcyBvZiByZWNvcmRzLiBUaGlzIGlzIGJlY2F1c2Ugb2YgdGhlIGRhdGFiYXNlIG1vZGVsIHVzZWQgKEVBVikuIEFsc28sIGVhY2ggYml0IG9mIGRhdGEgeW91IGVudGVyIGlzIHN0b3JlZCBhcyBURVhUIGRhdGEgdHlwZSwgcmVnYXJkbGVzcyBvZiB3aGV0aGVyIGl0IGlzIHZhcmNoYXIsIGJvb2xlYW4sIHRpbWVzdGFtcCwgZXRjLjwvcD4NCiAgICA8ZGl2IGNsYXNzPSJyZWQiPllvdSBjYW4gaW1wb3J0IGluc3RhbmNlcyBmcm9tIExpc3RJdEV4dGVuZGVkLiBJZiB5b3UgaGF2ZSBpdCBpbnN0YWxsZWQgeW91IHdpbGwgc2VlIGEgdGFiLCA8c3Ryb25nPkltcG9ydGluZyBGcm9tIExpc3RJdEV4dGVuZGVkIEluc3RhbGxhdGlvbnM8L3N0cm9uZz4sIHdpdGggbW9yZSBoZWxwLi4uPC9kaXY+DQogICAgJzsNCg0KJGxhbmdbJ2hlbHBfdXNhZ2UnXSA9ICc8aDM+VXNhZ2U8L2gzPg0KICAgIA0KICAgIDxwPllvdSBjYW4gY29uZmlndXJlIHskbW9kdWxlX25hbWV9IGhlcmU6IENvbnRlbnQgJnJhcXVvOyB7JG1vZHVsZV9uYW1lfTwvcD4NCiAgICA8cD5QbGFjZSB0aGlzIHRhZyBpbiB5b3VyIHBhZ2U6IHt7JG1vZHVsZV9uYW1lfX08L3A+PGJyIC8+JzsNCg0KJGxhbmdbJ2hlbHBfdXNhZ2Vfb3B0aW9ucyddID0gJ0FmdGVyIGluc3RhbGxpbmcgdGhlIG1vZHVsZSB0aGUgbmV4dCB0aGluZyB0byBkbyBpcyBzZXQgdGhlIG9wdGlvbnMuDQogICAgPG9sPg0KICAgICAgICA8bGk+VG8gY2hhbmdlIHRoZSBuYW1lIG9mIHRoZSBtb2R1bGUgaW4gdGhlIG1lbnUgY2hhbmdlIHRoZSAiTW9kdWxlIEZyaWVuZGx5IE5hbWUiLjwvbGk+DQogICAgICAgIDxsaT5UbyBjaGFuZ2UgdGhlIG5hbWUgb2YgdGhlIGl0ZW0gdGFiIGNoYW5nZSB0aGUgIkl0ZW0gUGx1cmFsIi48L2xpPg0KICAgIDwvb2w+JzsNCg0KJGxhbmdbJ2hlbHBfdXNhZ2VfZmllbGRkZWZzJ10gPSAnTmV4dCAtIHNldCB0aGUgRmllbGQgRGVmaW5pdGlvbnMuDQogICAgPG9sPg0KICAgICAgICA8bGk+Q2hvb3NlIGZyb20gIlRleHQgSW5wdXQiLCAiQ2hlY2tib3giLCAiVGV4dCBBcmVhIiwgIlNlbGVjdCBEYXRlIiwgIlNlbGVjdCBGaWxlIiwgIkNvbnRlbnQgUGFnZXMiICAmYW1wOyAiRHJvcGRvd24iLjwvbGk+DQogICAgICAgIDxsaT5Gb3IgZWFjaCBmaWVsZCBkZWZpbml0aW9uLCB5b3UgY2FuIHNwZWNpZnkgb3IgY2hvb3NlIGFkZGl0aW9uYWwgc2V0dGluZ3M8YnIgLz4gZnJvbSBhdmFpbGFibGUgb3B0aW9ucyB3aGljaCBkZXBlbmQgb24gZmllbGQgZGVmaW5pdGlvbiB0eXBlLjwvbGk+DQogICAgICAgIDxsaT5FYWNoIGl0ZW0gaW4gZWFjaCBsaXN0IGhhcyB0aHJlZSBkZWZhdWx0IGZpZWxkcy4gPGJyIC8+QWxsIEZpZWxkIERlZmluaXRpb25zIHNldCBoZXJlIGFyZSBhZGRpdGlvbmFsIHRvIHRoZW0uPC9saT4NCiAgICA8L29sPic7DQoNCiRsYW5nWydoZWxwX3VzYWdlX2NhdGVnb3JpZXMnXSA9ICdUbyBiZSBhYmxlIHRvIHVzZSBDYXRlZ29yaWVzIHdpdGggeW91ciBMSVNFIGluc3RhbmNlIHlvdSB3aWxsIGhhdmUgdG8gY3JlYXRlIGENCgkgRmllbGQgZGVmaW5pdGlvbiB3aXRoIHR5cGUgb2YgIkNhdGVnb3J5Ii48YnIgLz4gT25jZSBhIEZpZWxkIGRlZmluaXRpb24gd2FzIGNyZWF0ZSBuZXcgVGFiIHdpdGggbmFtZSAiQ2F0ZWdvcmllcyIgd2lsbCBiZWNvbWUgYXZhaWxhYmxlIGluIHlvdXIgTElTRSBtb2R1bGUgaW5zdGFuY2UuPGJyIC8+DQoJIE5vdyB5b3UgY2FuIHN0YXJ0IGFkZGluZyBjYXRlZ29yaWVzLic7DQoNCiRsYW5nWydoZWxwX3VzYWdlX2l0ZW1zJ10gPSAnTm93IHdlIG1vdmUgb24gdG8gdGhlIGl0ZW0gbGlzdCBpdHNlbGYuIEluIHRoaXMgZXhhbXBsZSBpdCBzYXlzICJBZGQgQm94IiwgdGhpcyB3YXMgcmVuYW1lZCBpbiB0aGUgIk9wdGlvbnMiIHRhYi4NCiAgICA8b2w+DQogICAgICAgIDxsaT5UaGUgZmlyc3QgZmllbGQgaXMgdGhlIGRlZmF1bHQgIlRpdGxlIiBmaWVsZC48L2xpPg0KICAgICAgICA8bGk+VGhlICJDYXRlZ29yeSIgZHJvcGRvd24gaXMgYWxzbyBhIGRlZmF1bHQgZmllbGQsIGFuZCBpZiB1bmNoYW5nZWQsIHdpbGwgYmUgc2V0IHRvICJHZW5lcmFsIi48L2xpPg0KICAgICAgICA8bGk+VGhlIHRoaXJkIGRlZmF1bHQgZmllbGQgaXMgdGhlIGNoZWNrYm94IGNhbGxlZCAiQWN0aXZlIi4gVGhpcyBhbGxvd3MgeW91IHRvIHRvZ2dsZSBhIGxpc3QgZW50cnkgd2l0aG91dCBkZWxldGluZyBpdC48L2xpPg0KICAgIDwvb2w+JzsNCg0KJGxhbmdbJ2hlbHBfcGVybWlzc2lvbnMnXSA9ICc8aDM+UGVybWlzc2lvbnM8L2gzPg0KICAgIDxwPllvdSBjYW4gc3BlY2lmeSB0aGUgZm9sbG93aW5nIHBlcm1pc3Npb25zIHVuZGVyIFVzZXJzICZhbXA7IEdyb3VwcyAmcmFycjsgR3JvdXAgUGVybWlzc2lvbnM8L3A+DQogICAgPHVsPg0KICAgICAgICA8bGk+eyRtb2R1bGVfbmFtZX06IE1vZGlmeSBJdGVtczwvbGk+DQogICAgICAgIDxsaT57JG1vZHVsZV9uYW1lfTogTW9kaWZ5IGFsbCBpdGVtczwvbGk+DQogICAgICAgIDxsaT57JG1vZHVsZV9uYW1lfTogUmVtb3ZlIGl0ZW1zPC9saT4NCiAgICAgICAgPGxpPnskbW9kdWxlX25hbWV9OiBBcHByb3ZlIGl0ZW1zPC9saT4NCiAgICAgICAgPGxpPnskbW9kdWxlX25hbWV9OiBNb2RpZnkgQ2F0ZWdvcmllczwvbGk+DQogICAgICAgIDxsaT57JG1vZHVsZV9uYW1lfTogTW9kaWZ5IE9wdGlvbnM8L2xpPg0KICAgIDwvdWw+DQogICAgPHA+VG8gYWxsb3cgbm9uLWFkbWluIHVzZXJzIHRvIHVwbG9hZCBmaWxlcywgcGxlYXNlIHJlZmVyIHRvIHRoZSBtb2R1bGUocykgdXNlZCB0byB1cGxvYWQgZmlsZXMgc2V0dGluZ3MuPC9wPic7DQoNCiRsYW5nWydoZWxwX2ZpZWxkZGVmcyddID0gJzxoMz5GaWVsZCBEZWZpbml0aW9uczwvaDM+DQogICAgPHA+VGhlIGZpcnN0IHRoaW5nIHlvdSBzaG91bGQgY29uZmlndXJlIGFyZSB5b3VyIGZpZWxkIGRlZmluaXRpb25zLjwvcD4NCiAgICA8cD5Gb3IgZWFjaCBmaWVsZCBkZWZpbml0aW9uLCB5b3UgY2FuIHNwZWNpZnkgYWRkaXRpb25hbCBzZXR0aW5ncyBieSBjaG9vc2luZyBmcm9tIGF2YWlsYWJsZSBvcHRpb25zLjwvcD4NCiAgICANCiAgICA8aDM+RGVmYXVsdCBGaWVsZCBEZWZpbml0aW9ucyBieSB0eXBlPC9oMz4NCiAgICA8dWw+DQogICAgICA8bGk+QmFja2VuZFRleHQgLSA8c3Ryb25nPkJhY2tlbmQgVGV4dDwvc3Ryb25nPjs8L2xpPg0KICAgICAgPGxpPkNhdGVnb3JpZXMgLSA8c3Ryb25nPkNhdGVnb3JpZXM8L3N0cm9uZz47PC9saT4NCiAgICAgIDxsaT5DaGVja2JveCAtIDxzdHJvbmc+Q2hlY2tib3g8L3N0cm9uZz47PC9saT4NCiAgICAgIDxsaT5DaGVja2JveEdyb3VwIC0gPHN0cm9uZz5DaGVja2JveCBHcm91cDwvc3Ryb25nPjs8L2xpPg0KICAgICAgPGxpPkNvbG9yUGlja2VyIC0gPHN0cm9uZz5Db2xvclBpY2tlcjwvc3Ryb25nPjs8L2xpPg0KICAgICAgPGxpPkNvbnRlbnRQYWdlcyAtIDxzdHJvbmc+Q29udGVudCBQYWdlczwvc3Ryb25nPjs8L2xpPg0KICAgICAgPGxpPkNvcmVGaWxlUGlja2VyIC0gPHN0cm9uZz5GaWxlIFBpY2tlciAoMSkgPHNwYW4gc3R5bGU9ImNvbG9yOmdyZWVuIj4obmV3KTwvc3Bhbj48L3N0cm9uZz47PC9saT4NCiAgICAgIDxsaT5DdXN0b21Gcm9tVURUIC0gPHN0cm9uZz5DdXN0b20gRmllbGQgRnJvbSBVRFQ8L3N0cm9uZz47PC9saT4NCiAgICAgIDxsaT5Ecm9wZG93biAtIDxzdHJvbmc+RHJvcGRvd248L3N0cm9uZz47PC9saT4NCiAgICAgIDxsaT5GRVVEcm9wZG93biAtIDxzdHJvbmc+RnJvbnRFbmRVc2VycyBEcm9wZG93biAoMikoNikgPHNwYW4gc3R5bGU9ImNvbG9yOm9yYW5nZSI+KGRlcHJlY2F0ZWQpPC9zcGFuPjwvc3Ryb25nPjs8L2xpPg0KICAgICAgPGxpPkZFVU11bHRpU2VsZWN0IC0gPHN0cm9uZz5GRVUgTXVsdGkgU2VsZWN0ICgyKTwvc3Ryb25nPjs8L2xpPg0KICAgICAgPGxpPkZFVVNpbmdsZVNlbGVjdCAtIDxzdHJvbmc+RkVVIFNpbmdsZSBTZWxlY3QgKDIpPC9zdHJvbmc+OzwvbGk+DQogICAgICA8bGk+RmlsZVVwbG9hZCAtIDxzdHJvbmc+RmlsZSBVcGxvYWQ8L3N0cm9uZz47PC9saT4NCiAgICAgIDxsaT5HYWxsZXJ5RHJvcGRvd24gLSA8c3Ryb25nPkdhbGxlcnkgRHJvcGRvd24gKDMpPC9zdHJvbmc+OzwvbGk+DQogICAgICA8bGk+R0JGaWxlUGlja2VyIC0gPHN0cm9uZz5HQkZpbGVQaWNrZXIgVXBsb2FkIEZpbGUgKDQpKDYpIDxzcGFuIHN0eWxlPSJjb2xvcjpvcmFuZ2UiPihkZXByZWNhdGVkKTwvc3Bhbj48L3N0cm9uZz47PC9saT4NCiAgICAgIDxsaT5KTUZpbGVQaWNrZXIgLSA8c3Ryb25nPkpNRmlsZVBpY2tlciBVcGxvYWQgRmlsZSAoNSk8L3N0cm9uZz47PC9saT4NCiAgICAgIDxsaT5KUXVlcnlNdWx0aVNlbGVjdCAtIDxzdHJvbmc+SlF1ZXJ5IE11bHRpU2VsZWN0PC9zdHJvbmc+OzwvbGk+DQogICAgICA8bGk+TElTRUluc3RhbmNlIC0gPHN0cm9uZz5MSVNFIEluc3RhbmNlPC9zdHJvbmc+OzwvbGk+DQogICAgICA8bGk+TElTRUluc3RhbmNlSXRlbSAtIDxzdHJvbmc+TElTRSBJbnN0YW5jZSBJdGVtPC9zdHJvbmc+OzwvbGk+DQogICAgICA8bGk+TXVsdGlTZWxlY3QgLSA8c3Ryb25nPk11bHRpIFNlbGVjdDwvc3Ryb25nPjs8L2xpPg0KICAgICAgPGxpPlJhZGlvR3JvdXAgLSA8c3Ryb25nPlJhZGlvIEdyb3VwPC9zdHJvbmc+OzwvbGk+DQogICAgICA8bGk+U2VsZWN0RGF0ZVRpbWUgLSA8c3Ryb25nPlNlbGVjdCBEYXRlVGltZTwvc3Ryb25nPjs8L2xpPg0KICAgICAgPGxpPlNlbGVjdEZpbGUgLSA8c3Ryb25nPlNlbGVjdCBGaWxlPC9zdHJvbmc+OzwvbGk+DQogICAgICA8bGk+U2xpZGVyIC0gPHN0cm9uZz5TbGlkZXI8L3N0cm9uZz47PC9saT4NCiAgICAgIDxsaT5UYWJzIC0gPHN0cm9uZz5UYWJzPC9zdHJvbmc+OzwvbGk+DQogICAgICA8bGk+VGFncyAtIDxzdHJvbmc+VGFnczwvc3Ryb25nPjs8L2xpPg0KICAgICAgPGxpPlRleHRBcmVhIC0gPHN0cm9uZz5UZXh0IEFyZWE8L3N0cm9uZz47PC9saT4NCiAgICAgIDxsaT5UZXh0SW5wdXQgLSA8c3Ryb25nPlRleHQgSW5wdXQ8L3N0cm9uZz47PC9saT4NCiAgICA8L3VsPg0KICAgIDxkaXYgY2xhc3M9ImluZm9ybWF0aW9uIj48c3Ryb25nPk5vdGU6IHRoaXMgbGlzdCBkb2VzIG5vdCBpbmNsdWRlIGFkZGl0aW9uYWwgZmllbGQgZGVmaW5pdGlvbnMgdGhhdCBtYXkgYmUgcmVnaXN0ZXJlZCBieSBleHRlcm5hbCBtb2R1bGVzLjwvc3Ryb25nPjwvZGl2Pg0KICAgIDxkaXYgY2xhc3M9ImluZm9ybWF0aW9uIj48c3Ryb25nPk5vdGU6IGFmdGVyIHVwZ3JhZGluZyBMSVNFIG9yIGluc3RhbGxpbmcgYSBtb2R1bGUgd2hpY2ggY291bGQgcmVnaXN0ZXIgYWRkaXRpb25hbCBmaWVsZCBkZWZpbml0aW9ucywgcmUtc2NhbiBmaWVsZCBkZWZpbml0aW9ucyBmb3IgdGhlbSB0byBhcHBlYXIgb24gdGhlIGxpc3Qgb2YgYXZhaWxhYmxlIGZpZWxkIGRlZmluaXRpb25zLjwvc3Ryb25nPjwvZGl2Pg0KICAgIDxwPigxKSBIYXMgZGVwZW5kZW5jaWVzOiA8c3Ryb25nPkZpbGUgUGlja2VyIChjb3JlKTwvc3Ryb25nPjs8L3A+DQogICAgPHA+KDIpIEhhcyBkZXBlbmRlbmNpZXM6IDxzdHJvbmc+RnJvbnRFbmRVc2VyPC9zdHJvbmc+cyBhbmQgPHN0cm9uZz5DR0V4dGVuc2lvbnM8L3N0cm9uZz47PC9wPg0KICAgIDxwPigzKSBIYXMgZGVwZW5kZW5jaWVzOiA8c3Ryb25nPkdhbGxlcnk8L3N0cm9uZz47PC9wPg0KICAgIDxwPig0KSBIYXMgZGVwZW5kZW5jaWVzOiA8c3Ryb25nPkdCRmlsZVBpY2tlcjwvc3Ryb25nPi4gPGVtPk5vdGU6IEl0IG9ubHkgd29ya3Mgd2l0aCBDTVNNUyAxLnggYnJhbmNoPC9lbT47PC9wPg0KICAgIDxwPig1KSBIYXMgZGVwZW5kZW5jaWVzOiA8c3Ryb25nPkpNRmlsZVBpY2tlcjwvc3Ryb25nPi48L3A+DQogICAgPHA+KDYpIERlcHJlY2F0ZWQ6IDxzdHJvbmc+d2lsbCBiZSByZW1vdmVkIGluIGEgbmVhciBmdXR1cmUsIHVzZSB0aGUgcmVwbGFjZW1lbnRzIEFTQVA8L3N0cm9uZz4uPC9wPg0KICAgICc7DQoNCiRsYW5nWydoZWxwX2ltcG9ydGluZ19mcm9tX2xpMiddID0gJw0KICAgIDxkaXYgY2xhc3M9InJlZCI+DQogICAgICA8dWw+DQogICAgICAgIDxsaT4NCiAgICAgICAgICBUaGlzIHRhYiB3aWxsIG9ubHkgYmUgdmlzaWJsZSBpZiB0aGVyZSBpcyBhIHZhbGlkIExpc3RJdEV4dGVuZGVkIGluc3RhbGxhdGlvbiBvbiB0aGUgY3VycmVudCBzaXRlLg0KICAgICAgICA8L2xpPg0KICAgICAgICA8bGk+DQogICAgICAgICAgPHN0cm9uZz5NYWtlIHN1cmUgeW91IGNyZWF0ZSBhIGZ1bGwgYmFja3VwIG9yIHlvdXIgc2l0ZSBhbmQgZGF0YWJhc2UgYmVmb3JlIHRha2luZyBhbnkgZnVydGhlciBhY3Rpb25zLjwvc3Ryb25nPg0KICAgICAgICA8L2xpPg0KICAgICAgPC91bD4NCiAgICA8L2Rpdj4NCiAgICA8aDQ+U3RlcCBPbmU8L2g0Pg0KICAgIDxwPklmIHRoZXJlIGFyZSB2YWxpZCBMaXN0SXRFeHRlbmRlZCBpbnN0YW5jZXMgb24gdGhlIHN5c3RlbSBMSVNFIHdpbGwgYmUgYWJsZSB0byBkZXRlY3QgdGhlbSBhbmQgdGhlcmUgd2lsbCBhcHBlYXIgYSBidXR0b24gb24gTElTRSBtYXN0ZXIgbW9kdWxlLCB1bmRlciB0aGUgTWFpbnRlbmFuY2UgdGFiIGluc2lkZSBJbXBvcnQgSW5zdGFuY2VzIEZyb20gTEkyIGZvcm0uIFRoaXMgaW1wb3J0IGJ1dHRvbiBzaG91bGQgbWFrZSBhIGNvcHkgb2YgYWxsIGN1cnJlbnRseSBpbnN0YWxsZWQgTEkyIGluc3RhbmNlcywgd2l0aG91dCBjaGFuZ2luZyB0aGUgb3JpZ2luYWwgb25lcy4gSG93ZXZlciwgYXQgdGhpcyBwb2ludCBMSVNFIHdpbGwgbm90IGNvcHkgdGhlIHVzZXJzIHBlcm1pc3Npb25zIGZyb20gTEkyLCBnaXZlbiB0aGUgbGFjayBvZiBhIENNU01TIENvcmUgQVBJIHRvIGRvIHNvLiBUaGF0IHNob3VsZCBiZSBkb25lIG1hbnVhbGx5LjwvcD4NCiAgICA8cD5UZW1wbGF0ZXMgbWF5IGhhdmUgdG8gYmUgYWRqdXN0ZWQgdG8gd29yayB3aXRoIExJU0UuPC9wPg0KICAgIDxoND5TdGVwIFR3bzwvaDQ+DQogICAgPHA+QWZ0ZXIgeW91IGFyZSBzYXRpc2ZpZWQgd2l0aCB0aGUgTElTRSBpbnN0YW5jZSBjb3BpZXMgeW91IHdpbGwgbmVlZCB0byBjaGFuZ2UgdGhlIGNhbGxpbmcgdGFncyBmcm9tIDxzdHJvbmc+e0xpc3RJdDImbHNhcXVvO2luc3RhbmNlX25hbWUmcnNhcXVvO308L3N0cm9uZz4gdG8gPHN0cm9uZz57TElTRSZsc2FxdW87aW5zdGFuY2VfbmFtZSZyc2FxdW87fTwvc3Ryb25nPiBvbiBldmVyeSB0ZW1wbGF0ZSB3aGVyZSB0aGV5IGFyZSBiZWluZyBjYWxsZWQuPC9wPg0KICAgIDxoND5TdGVwIFRocmVlPC9oND4NCiAgICBJZGVhbGx5IHlvdXIgRmllbGQgZGVmaW5pdGlvbnMgc2hvdWxkIHdvcmsgYWdhaW4sIGlmIHRoYXQgaXMgbm90IHRoZSBjYXNlIHlvdSBzaG91bGQgdHJ5IHRvIHJlcGFpciBGaWVsZCBkZWZpbml0aW9ucyBkYXRhYmFzZSB0YWJsZSBieSBjbGlja2luZyBvbiAiUmVwYWlyIiBidXR0b24gdW5kZXIgIk1haW50ZW5hbmNlIiB0YWIuPC9wPjxiciAvPg0KICAgIDxwPjxzdHJvbmc+SWYgeW91IGhhdmUgZm9sbG93ZWQgYWJvdmUgc3RlcHMsIHlvdSBzaG91bGQgbm93IGhhdmUgYSBmdWxseSBmdW5jdGlvbmFsIGFuZCB1cGdyYWRlZCBMSVNFIE1vZHVsZSBhbmQgYWxsIGNyZWF0ZWQgSW5zdGFuY2VzLjwvc3Ryb25nPjwvcD4NCiAgICA8cD48c3Ryb25nPkFmdGVyIHRoaXMgcG9pbnQgeW91IHNob3VsZCBiZSBhYmxlIHRvIHVuaW5zdGFsbCBMSTIgSW5zdGFuY2VzIGFuZCBMaXN0SXRFeHRlbmRlZCBpdHNlbGYgKG1ha2Ugc3VyZSB5b3Uga2VlcCBhIGZ1bGwgYmFja3VwIGp1c3QgaW4gY2FzZSkuPC9zdHJvbmc+PC9wPic7DQoNCiRsYW5nWydoZWxwX2NhdGVnb3JpZXMnXSA9ICcNCgk8aDM+Q2F0ZWdvcmllczwvaDM+DQogICAgPHA+Q2F0ZWdvcmllcyBhcmUgcGFydCBvZiBGaWVsZCBkZWZpbml0aW9ucyBhbmQgZGlzYWJsZWQgYnkgZGVmYXVsdC48YnIgLz4NCiAgICBJZiB5b3UgbmVlZCBDYXRlZ29yaWVzIHdpdGggdGhpcyBpbnN0YW5jZSB5b3Ugd2lsbCBoYXZlIHRvIGNyZWF0ZSBhIG5ldyBGaWVsZCBkZWZpbml0aW9uIG9mIHR5cGUgIkNhdGVnb3J5Ii48YnIgLz4NCiAgICBPbmNlIGEgRmllbGQgZGVmaW5pdGlvbiB3YXMgY3JlYXRlZCwgYSBuZXdzIHRhYiBuYW1lZCAiQ2F0ZWdvcmllcyIgd2lsbCBiZWNvbWUgYXZhaWxhYmxlIGluIG1vZHVsZSBJbnN0YW5jZS48L3A+DQogICAgPHA+Q2F0ZWdvcmllcyBzdXBwb3J0IG11bHRpcGxlIGxldmVscyBhbmQgY3JlYXRlZCBJdGVtcyBtYXkgYmVsb25nIHRvIG11bHRpcGxlIGNhdGVnb3JpZXMsIGRlcGVuZGluZyBvbiB5b3VyIHNlbGVjdGVkIG9wdGlvbnMgd2hpbGUgY3JlYXRpbmcgQ2F0ZWdvcnkgRmllbGQgZGVmaW50aW9uLjwvcD48YnIgLz4NCiAgICA8cD5UaGVyZSBhcmUgdHdvIHNhbXBsZSB0ZW1wbGF0ZXMgaW5jbHVkZWQgdG8gZGVtb25zdHJhdGUgaG93IGNhdGVnb3JpZXMgd2l0aGluIExJU0UgTW9kdWxlIGluc3RhbmNlIHdvcmssIHRoaXMgc2hvdWxkIGdpdmUgeW91IGEgc3RhcnRpbmcgaWRlYSBvbiBob3cgdG8gY3JlYXRlIHlvdXIgcGVyc29uYWxpemllZCBhbmQgY3VzdG9tPGJyIC8+DQogICAgVGVtcGxhdGVzIGZvciB5b3VyIG5leHQgcHJvamVjdC48L3A+DQogICAgPGg0PlVzaW5nIENhdGVnb3JpZXM8L2g0Pg0KICAgIDxwPkZvciBkZXRhaWxlZCB1c2FnZSBhbmQgYXZhaWxhYmxlIHBhcmFtZXRlcnMsIGhhdmUgYSBsb29rIGJlbG93IGF0ICJQYXJhbWV0ZXJzIiBIZWxwIHNlY3Rpb248L3A+DQogICAgPHByZT48Y29kZT57eyRtb2R1bGVfbmFtZX0gYWN0aW9uPVwnY2F0ZWdvcnlcJ308L2NvZGU+PC9wcmU+JzsNCg0KJGxhbmdbJ2hlbHBfdGVtcGxhdGVzJ10gPSAnPGgzPlRlbXBsYXRlczwvaDM+DQogICAgPHA+SWYgeW91IGFyZSBub3Qgc3VyZSB3aGF0IHZhcmlhYmxlcyBhcmUgYXZhaWxhYmxlIHRvIHVzZSBpbiB5b3VyIHRlbXBsYXRlcywgdHJ5IGRlYnVnZ2luZzo8L3A+DQogICAgPHA+e3skbW9kdWxlX25hbWV9IGRlYnVnPTF9PC9wPg0KICAgIDxwPllvdSBjYW4gYWNjZXNzIGFueSBmaWVsZCBkaXJlY3RseSB3aGVuIGxvb3BpbmcgdGhyb3VnaCBpdGVtcyB1c2luZyBpdHMgYWxpYXMsIGZvciBleGFtcGxlLCB0byBpZiB5b3UgY3JlYXRlZCBhIGZpZWxkIGRlZmluaXRpb24gd2l0aCBhbiBhbGlhcyAicG9zaXRpb24iLCB5b3UgY2FuIGRvIG9uZSBvZiB0aGUgZm9sbG93aW5nOjwvcD4nOw0KDQokbGFuZ1snaGVscF9kdXBsaWNhdGluZyddID0gJzxoMz5DcmVhdGluZyBNb2R1bGUgSW5zdGFuY2VzPC9oMz4NCiAgICA8cD5UaGlzIG1vZHVsZSBpcyBhIENvbnRyb2wgUGFuZWwgZm9yIGNyZWF0aW5nIExJU0UgTW9kdWxlIEluc3RhbmNlcy4gVG8gY3JlYXRlIGEgTElTRSBtb2R1bGUgSW5zdGFuY2UsIHNpbXBseSBnbyB0byAiSW5zdGFuY2VzIiB0YWIgYW5kIGNsaWNrIG9uICJDcmVhdGUgSW5zdGFuY2UiIGJ1dHRvbi48YnIgLz4NCiAgICBNYWtlIHN1cmUgeW91IGZvbGxvdyB0aGUgQ01TTVMgbW9kdWxlIG5hbWluZyBjb252ZW50aW9ucywgYS16IHdpdGggbm8gcHVuY3R1YXRpb24gY2hhcmFjdGVycyBvciBzcGFjZXMgdG8gYmUgc2FmZSA6KTxiciAvPg0KICAgIFlvdSBjYW4gc2V0IHRoZSBpbnN0YW5jZSA8c3Ryb25nPkZyaWVuZGx5IE5hbWU8L3N0cm9uZz4sIDxzdHJvbmc+TW9kdWxlIEFkbWluIERlc2NyaXB0aW9uPC9zdHJvbmc+IGFuZCA8c3Ryb25nPk1vZHVsZSBBZG1pbiBTZWN0aW9uPC9zdHJvbmc+IG9uIHRoZSA8c3Ryb25nPkNyZWF0ZSBJbnN0YW5jZTwvc3Ryb25nPiBmb3JtLjxiciAvPg0KICAgIEFmdGVyIHRoZSBtb2R1bGUgaGFzIGJlZW4gY3JlYXRlZCBhIG5ldyBpbnN0YW5jZSB3aWxsIGJlIGluc3RhbGxlZCBhbmQgbGlzdGVkIGluIG9yaWdpbmFsIExJU0UgbW9kdWxlIHVuZGVyICJJbnN0YW5jZXMiIHRhYi48L3A+PGJyIC8+DQogICAgPHA+WW91IGNhbiBhbHdheXMgY2hhbmdlIHRoZSBtb2R1bGUgZnJpZW5kbHkgbmFtZSBvbmNlIGluc3RhbGxlZCB1bmRlciAiT3B0aW9ucyIgKENvbnRlbnQgJnJhcXVvOyBMSVNFTmFtZU9mRHVwbGljYXRlKS48YnIgLz4NCiAgICBUbyBjaGFuZ2UgdGhlIGljb24sIHJlcGxhY2UgL21vZHVsZXMvTElTRU5hbWVPZkR1cGxpY2F0ZS9pbWFnZXMvaWNvbi5naWYuPGJyIC8+DQogICAgVG8gY2hhbmdlIEFkbWluIHNlY3Rpb24gb2YgdGhlIG1vZHVsZSwgc2ltcGx5IHNlbGVjdCBhcHByb3ByaWF0ZSBzZWN0aW9uIGZyb20gRHJvcGRvd24uIE1ha2Ugc3VyZSB5b3UgY2xlYXIgdGhlIGNhY2hlIGFmdGVyIHRoZXNlIGNoYW5nZXMuPC9wPic7DQoNCg0KJGxhbmdbJ2hlbHBfc21hcnR5X3BsdWdpbnMnXSA9ICcNCgk8aDQ+V2hhdCBkb2VzIHRoaXMgZG8/PC9oND4NCgkgPHA+VGhpcyBwbHVnaW4gYWxsb3dzIHlvdSB0byBsb2FkIExJU0UgaXRlbSBhbmQgY2F0ZWdvcnkgb2JqZWN0IGJ5IGNlcnRhaW4gY3JpdGVyaWEsIGFueXdoZXJlIGluIHRoZSBzeXN0ZW0uPC9wPg0KCSANCgk8aDQ+SG93IGRvIEkgdXNlIGl0PzwvaDQ+DQoJPHA+U2ltcGx5IGluc2VydCB0aGlzIHRhZyBpbnRvIHlvdXIgcGFnZSBvciB0ZW1wbGF0ZTo8L3A+DQoJPHByZT48Y29kZT57TElTRUxvYWRlciBpdGVtPVwnaXRlbVwnIGlkZW50aWZpZXI9XCdhbGlhc1wnIGluc3RhbmNlPVwnTElTRUluc3RhbmNlXCcgdmFsdWU9XCdteWFsaWFzXCcgYXNzaWduPVwndG1wXCd9PC9jb2RlPjwvcHJlPg0KCQ0KCTxwPiZuYnNwOzwvcD4NCgkNCgk8cD5Gb2xsb3dpbmcgbGluZSB3aWxsIGxvYWQgaXRlbSBvYmplY3QgZnJvbSBpbnN0YW5jZSBcJ0xJU0VJbnN0YW5jZVwnIGJ5IGFsaWFzIFwnbXlhbGlhc1wnIGFuZCBhc3NpZ24gaXQgdG8gdmFyaWFibGUgJmRvbGxhcjt0bXAuIDxiciAvPg0KCUFmdGVyIHRoaXMgeW91IGNhbiB1c2UgaXQgaW4gc2ltaWxhciB3YXksIGp1c3QgbGlrZSBpbiByZWd1bGFyIExJU0UgdGVtcGxhdGVzOjwvcD4NCgk8cHJlPjxjb2RlPnsmZG9sbGFyO3RtcC0+dGl0bGV9PC9jb2RlPjwvcHJlPg0KCQ0KCTxwPiZuYnNwOzwvcD4NCgkNCgk8cD5JZiBtdWx0aXBsZSBpdGVtcyBhcmUgYmVpbmcgbG9hZGVkLCB0aGlzIGZ1bmN0aW9uIHJldHVybnMgYXJyYXkgb2Ygb2JqZWN0cywgZWxzZSBpdCByZXR1cm5zIHNpbmdsZSBpdGVtL2NhdGVnb3J5IG9iamVjdDwvcD4NCg0KCTxoND5XaGF0IHBhcmFtZXRlcnMgZG9lcyBpdCB0YWtlPzwvaDQ+DQoJPHVsPg0KCQk8bGk+PGVtPihyZXF1aXJlZCkgPC9lbT48dHQ+aW5zdGFuY2U8L3R0PiAtIE5hbWUgb2YgaW5zdGFuY2UgdGhhdCBob2xkcyBpdGVtcy4gPGk+KElmIHVzZWQgaW5zaWRlIExJU0UgdGVtcGxhdGVzLCB0aGlzIHBhcmFtZXRlciBpcyBvcHRpb25hbCk8L2k+PC9saT4NCgkJPGxpPjxlbT4ocmVxdWlyZWQpIDwvZW0+PHR0PnZhbHVlPC90dD4gLSBDb21tYSBzZXBhcmF0ZWQgbGlzdCBvZiBpZGVudGlmaWVyIHZhbHVlczogXCdhbGlhczEsYWxpYXMyLGFsaWFzM1wnIG9yIFwnMSwyLDNcJzwvbGk+DQoJCTxsaT48ZW0+KG9wdGlvbmFsKSA8L2VtPjx0dD5pdGVtPSJpdGVtIjwvdHQ+IC0gV2FudGVkIGl0ZW0gdHlwZSwgZWl0aGVyOiBpdGVtL2NhdGVnb3J5PC9saT4NCgkJPGxpPjxlbT4ob3B0aW9uYWwpIDwvZW0+PHR0PmlkZW50aWZpZXI9Iml0ZW1faWQvY2F0ZWdvcnlfaWQiPC90dD4gLSBXYW50ZWQgaWRlbnRpZmllciwgb25lIG9mIGZvbGxvd2luZzogaXRlbV9pZCwgY2F0ZWdvcnlfaWQsIGFsaWFzPC9saT4NCgkJPGxpPjxlbT4ob3B0aW9uYWwpIDwvZW0+PHR0PmZvcmNlX2FycmF5PSJmYWxzZSI8L3R0PiAtIEZvcmNlIG91dHB1dCB2YWx1ZSBhcyBhcnJheTwvbGk+DQoJPC91bD4NCic7DQoNCiRsYW5nWydoZWxwX3BhcmFtX2FjdGlvbiddID0gJw0KICAgIE92ZXJyaWRlIHRoZSBkZWZhdWx0IGFjdGlvbi4gUG9zc2libGUgdmFsdWVzIGFyZToNCiAgICA8dWw+DQogICAgICAgIDxsaT4mcXVvdDtkZWZhdWx0JnF1b3Q7IC0gZGlzcGxheXMgdGhlIHN1bW1hcnkgdmlldy48L2xpPg0KICAgICAgICA8bGk+JnF1b3Q7ZGV0YWlsJnF1b3Q7IC0gZGlzcGxheXMgYSBzcGVjaWZpZWQgZW50cnkgaW4gZGV0YWlsIG1vZGUuPC9saT4NCiAgICAgICAgPGxpPiZxdW90O3NlYXJjaCZxdW90OyAtIGRpc3BsYXlzIHRoZSBzZWFyY2ggZm9ybS4gT3B0aW9uYWwgcGFyYW1ldGVycyB0aGF0IGFmZmVjdCB0byB0aGlzIGFjdGlvbiBvbmx5OiA8ZW0+ZmlsdGVyLjwvZW0+PC9saT4NCiAgICAgICAgPGxpPiZxdW90O2NhdGVnb3J5JnF1b3Q7IC0gZGlzcGxheXMgdGhlIGNhdGVnb3JpZXMuIE9wdGlvbmFsIHBhcmFtZXRlcnMgdGhhdCBhZmZlY3QgdG8gdGhpcyBhY3Rpb24gb25seTogPGVtPnNob3dfaXRlbXMsIGNvbGxhcHNlLCBudW1iZXJfb2ZfbGV2ZWxzLjwvZW0+PC9saT4NCiAgICAgICAgPGxpPiZxdW90O2FyY2hpdmUmcXVvdDsgLSBkaXNwbGF5cyB0aGUgYXJjaGl2ZXMuIDwvbGk+DQogICAgPC91bD4nOw0KJGxhbmdbJ2hlbHBfcGFyYW1fc2hvd2FsbCddID0gJ1Nob3cgYWxsIGl0ZW1zLCBpcnJlc3BlY3RpdmUgb2YgZW5kIGRhdGUuJzsNCiRsYW5nWydoZWxwX3BhcmFtX2NhdGVnb3J5J10gPSAnU3BlY2lmeSBhbiBhbGlhcyBvciBjb21tYSBzZXBhcmF0ZWQgYWxpYXNlcyBvZiB0aGUgY2F0ZWdvcnkvY2F0ZWdvcmllcyBkaXNwbGF5ZWQgaXRlbXMgbXVzdCBiZSBhIG1lbWJlciBvZi4nOw0KJGxhbmdbJ2hlbHBfcGFyYW1fZXhjbHVkZV9jYXRlZ29yeSddID0gJ1NwZWNpZnkgYW4gYWxpYXMgb3IgY29tbWEgc2VwYXJhdGVkIGFsaWFzZXMgb2YgdGhlIGNhdGVnb3J5L2NhdGVnb3JpZXMgZGlzcGxheWVkIGl0ZW1zIG11c3Qgbm90IGJlIGEgbWVtYmVyIG9mLic7DQokbGFuZ1snaGVscF9wYXJhbV9zdWJjYXRlZ29yeSddID0gJ0lmIHBhcmFtZXRlciBcJ2NhdGVnb3J5XCcgaXMgc3BlY2lmaWVkLCB0aGlzIHBhcmFtZXRlciBzZXQgdG8gPGVtPnRydWU8L2VtPiB3aWxsIG1ha2UgYWxsb3dhbmNlIGZvciBzdWJjYXRlZ29yaWVzXCcgaXRlbXMuIEl0IGlzIHNldCB0byBmYWxzZSBieSBkZWZhdWx0Lic7DQokbGFuZ1snaGVscF9wYXJhbV9kZXRhaWx0ZW1wbGF0ZSddID0gJ1RoZSBkZXRhaWwgdGVtcGxhdGUgeW91IHdpc2ggdG8gdXNlLic7DQokbGFuZ1snaGVscF9wYXJhbV9zdW1tYXJ5dGVtcGxhdGUnXSA9ICdUaGUgc3VtbWFyeSB0ZW1wbGF0ZSB5b3Ugd2lzaCB0byB1c2UuJzsNCiRsYW5nWydoZWxwX3BhcmFtX3NlYXJjaHRlbXBsYXRlJ10gPSAnVGhlIHNlYXJjaCB0ZW1wbGF0ZSB5b3Ugd2lzaCB0byB1c2UuJzsNCiRsYW5nWydoZWxwX3BhcmFtX2NhdGVnb3J5dGVtcGxhdGUnXSA9ICdUaGUgY2F0ZWdvcnkgdGVtcGxhdGUgeW91IHdpc2ggdG8gdXNlLic7DQokbGFuZ1snaGVscF9wYXJhbV9vcmRlcmJ5J10gPSAnWW91IGNhbiBvcmRlciBieSBhbnkgb2YgdGhlIGZvbGxvd2luZyBjb2x1bW5zOiBpdGVtX2lkLCBpdGVtX3RpdGxlLCBpdGVtX3Bvc2l0aW9uLCBpdGVtX2NyZWF0ZWQsIGNhdGVnb3J5X2lkLCBjYXRlZ29yeV9uYW1lLCBjYXRlZ29yeV9wb3NpdGlvbiwgY2F0ZWdvcnlfaGllcmFyY2h5LCByYW5kIGFuZCBhbHNvIGJ5IGN1c3RvbSBmaWVsZHMgd2l0aCBjdXN0b21fKiAoKiB3b3VsZCBiZSBmaWVsZCBkZWZpbml0aW9uIGFsaWFzKS4NCjxwPkZvciBleGFtcGxlOjwvcD4NCiAgICA8dWw+DQogICAgICAgIDxsaT5vcmRlcmJ5PVwnY2F0ZWdvcnlfbmFtZSwgaXRlbV90aXRsZVwnPC9saT4NCiAgICAgICAgPGxpPg0KICAgICAgICAgIDxwPldpdGggZmllbGRkZWYgdmFsdWVzOjwvcD4NCiAgICAgICAgICBvcmRlcmJ5PVwnY3VzdG9tX1tmaWVsZGRlZiBhbGlhc11cJw0KICAgICAgICA8L2xpPg0KICAgICAgICA8bGk+DQogICAgICAgICAgPHA+WW91IGNhbiBhbHNvIHNwZWNpZnkgYXNjZW5kaW5nIG9yIGRlc2NlbmRpbmcgZm9yIGFueSBjb2x1bW4sIGZvciBleGFtcGxlOjwvcD4NCiAgICAgICAgICBvcmRlcmJ5PVwnY2F0ZWdvcnlfbmFtZXxBU0MsIGl0ZW1fdGl0bGV8REVTQ1wnDQogICAgICAgIDwvbGk+DQogICAgPC91bD4nOw0KJGxhbmdbJ2hlbHBfcGFyYW1fcGFnZWxpbWl0J10gPSAnTWF4aW11bSBudW1iZXIgb2YgaXRlbXMgdG8gZGlzcGxheSAocGVyIHBhZ2UpLiAgSWYgdGhpcyBwYXJhbWV0ZXIgaXMgbm90IHN1cHBsaWVkIGFsbCBtYXRjaGluZyBpdGVtcyB3aWxsIGJlIGRpc3BsYXllZC4gIElmIGl0IGlzLCBhbmQgdGhlcmUgYXJlIG1vcmUgaXRlbXMgYXZhaWxhYmxlIHRoYW4gc3BlY2lmaWVkIGluIHRoZSBwYXJhbWV0ZXIsIHRleHQgYW5kIGxpbmtzIHdpbGwgYmUgc3VwcGxpZWQgdG8gYWxsb3cgc2Nyb2xsaW5nIHRocm91Z2ggdGhlIHJlc3VsdHMnOw0KJGxhbmdbJ2hlbHBfcGFyYW1fc3RhcnQnXSA9ICdTdGFydCBhdCB0aGUgbnRoIGl0ZW0gLS0gbGVhdmluZyBlbXB0eSB3aWxsIHN0YXJ0IGF0IHRoZSBmaXJzdCBpdGVtLic7DQokbGFuZ1snaGVscF9wYXJhbV9udW1iZXInXSA9ICdNYXhpbXVtIG51bWJlciBvZiBpdGVtcyB0byBkaXNwbGF5IChwZXIgcGFnZSkgLS0gbGVhdmluZyBlbXB0eSB3aWxsIHNob3cgYWxsIGl0ZW1zLiBUaGlzIGlzIGEgc3lub255bSBmb3IgdGhlIHBhZ2VsaW1pdCBwYXJhbWV0ZXIuJzsNCiRsYW5nWydoZWxwX3BhcmFtX2RldGFpbHBhZ2UnXSA9ICdQYWdlIHRvIGRpc3BsYXkgaXRlbSBkZXRhaWxzIGluLiBNdXN0IGJlIGEgcGFnZSBhbGlhcy9pZC4gVXNlZCB0byBhbGxvdyBkZXRhaWxzIHRvIGJlIGRpc3BsYXllZCBpbiBhIGRpZmZlcmVudCBwYWdlIHRoYW4gc3VtbWFyeS4nOw0KJGxhbmdbJ2hlbHBfcGFyYW1fc3VtbWFyeXBhZ2UnXSA9ICdQYWdlIHRvIGRpc3BsYXkgaXRlbSBzdW1tYXJ5IGluLiBNdXN0IGJlIGEgcGFnZSBhbGlhcy9pZC4gVXNlZCB0byBhbGxvdyBzdW1tYXJpZXMgdG8gYmUgZGlzcGxheWVkIGluIGEgZGlmZmVyZW50IHBhZ2UgdGhhbiBpbml0aWF0b3IuJzsNCiRsYW5nWydoZWxwX3BhcmFtX2l0ZW0nXSA9ICdUaGlzIHBhcmFtZXRlciBpcyBvbmx5IGFwcGxpY2FibGUgdG8gdGhlIGRldGFpbCB2aWV3LiBJdCBhbGxvd3Mgc3BlY2lmeWluZyB3aGljaCBpdGVtIHRvIGRpc3BsYXkgaW4gZGV0YWlsIG1vZGUuIE11c3QgYmUgYW4gaXRlbSBhbGlhcy4nOw0KJGxhbmdbJ2hlbHBfcGFyYW1fc2VhcmNoJ10gPSAnU2VhcmNoIGFsbCBmaWVsZHMuIFVzZXMgPHN0cm9uZz5mdWxsdGV4dDwvc3Ryb25nPiBzZWFyY2guIENhbiBiZSBjb21iaW5lZCB3aXRoIGZpbHRlciBzZWFyY2guJzsNCiRsYW5nWydoZWxwX3BhcmFtX3NlYXJjaF8nXSA9ICdTZWFyY2ggYSBwYXJ0aWN1bGFyIGZpZWxkLiBZb3UgY2FuIHVzZSBcJ3RpdGxlXCcgb3IgdGhlIGFsaWFzIG9mIGEgZmllbGQgZGVmaW5pdGlvbiwgZS5nLiBzZWFyY2hfdGl0bGUuIENhbiBiZSBjb21iaW5lZCB3aXRoIGZ1bGx0ZXh0IHNlYXJjaC4gTXVsdGlwbGUgc2VhcmNoXyogcGFyYW1zIGNhbiBiZSBjb21iaW5lZC4nOw0KJGxhbmdbJ2hlbHBfcGFyYW1fZmlsdGVyJ10gPSAnQXBwbGllcyBvbmx5IHRvIGFjdGlvbjogPGVtPnNlYXJjaDwvZW0+LiBTcGVjaWZ5IHRoZSBmaWVsZHMgd2hvc2UgdmFsdWVzIHNob3VsZCBiZSBvZmZlcmVkIGFzIGZpbHRlciBvcHRpb25zIGJ5IGxpc3RpbmcgdGhlIGZpZWxkXCdzIGFsaWFzZXMgY29tbWEgc2VwYXJhdGVkLic7DQokbGFuZ1snaGVscF9wYXJhbV9maWx0ZXJfb3JkZXJfYnknXSA9ICdXaGVuIGZpbHRlcmluZyBpbiBhIHNlYXJjaCBhY3Rpb24geW91IGNhbiBvcmRlciBieSBhbnkgb2YgdGhlIGZvbGxvd2luZyBjb2x1bW5zOiB2YWx1ZSwgaXRlbV9pZCwgYWxpYXMsIHRpdGxlLCBwb3NpdGlvbiwgY3JlYXRlX3RpbWUgYW5kIG1vZGlmaWVkX3RpbWUuDQo8cD5UaGUgdXNlIGlzIHNpbWlsYXIgdG8gdGhlIG9uZSB1c2VkIGluIHRoZSA8ZW0+b3JkZXJieTwvZW0+IHBhcmFtZXRlci4gQWxzbyBmb3IgdGhpcyB0byBoYXZlIGFueSBlZmZlY3QsIHRoZSA8ZW0+ZmlsdGVyPC9lbT4gcGFyYW1ldGVyIGlzIHJlcXVpcmVkLjwvcD4NCjxwPlRoZXJlIG9yZGVyIG9mIHRoZSBjb21tYSBzZXBhcmF0ZWQgbGlzdCBvZiBmaWx0ZXIgYWxpYXNlcyBpcyB1c2VkIHRvIGRldGVybW5pbmUgdGhlIG9yZGVyIGJ5IHdoaWNoIHRoZSA8ZW0+ZmlsdGVyb3JkZXJieTwvZW0+IGlzIGFwcGxpZWQuPC9wPg0KPHA+Rm9yIGV4YW1wbGU6PC9wPg0KICAgIDx1bD4NCiAgICAgIDxsaT5maWx0ZXI9XCdbZmllbGRkZWYgYWxpYXNdXCcgZmlsdGVyb3JkZXJieT1cJ3ZhbHVlfEFTQ1wnIChkZWZhdWx0IGJlaGF2aW91ciBzbyA8ZW0+ZmlsdGVyb3JkZXJieTwvZW0+IGNhbiBiZSBvbWl0ZWQgaW4gdGhpcyBjYXNlKTwvbGk+DQogICAgICA8bGk+DQogICAgICAgIDxwPldpdGggbXVsdGlwbGUgYWxpYXNlcyB0byBzb3J0IGRpZmZlcmVudGx5OjwvcD4NCiAgICAgICAgPHA+ZmlsdGVyPVwnW2ZpZWxkZGVmIGFsaWFzXSxbYW5vdGhlciBmaWVsZGRlZiBhbGlhc11cJyBmaWx0ZXJvcmRlcmJ5PVwndGl0bGUsdmFsdWV8REVTQ1wnIChBU0MgaXMgZGVmYXVsdCBzbyBjYW4gYmUgb21taXRlZCk8L3A+DQogICAgICAgIDxwPlRoaXMgd2lsbCBzb3J0IHRoZSBmaWx0ZXIgZHJvcGRvd25zIG9yIG11bHRpc2VsZWN0IGZpZWxkcyBieSB0aXRsZSBBU0MgYW5kIGJ5IHZhbHVlIERFU0MgcmVzcGVjdGl2ZWx5PC9wPg0KICAgICAgPC9saT4NCiAgICA8L3VsPic7DQovLyRsYW5nWydoZWxwX3BhcmFtX3JldHVybnBhZ2UnXSA9ICdVc2VkIGZvciBmaWx0ZXIgb3Igc2VhcmNoIG1vZGUgb25seS4gUGFnZSB0byBkaXNwbGF5IHNlYXJjaCByZXN1bHRzIHJlc3BlY3Rpdmx5IGZpbHRlcmVkIGl0ZW1zIGluLiBNdXN0IGJlIGEgcGFnZSBhbGlhcy4gVXNlZCB0byBhbGxvdyBzdW1tYXJ5IHRvIGJlIGRpc3BsYXllZCBpbiBhIGRpZmZlcmVudCBwYWdlIHRoYW4gZmlsdGVyIC8gc2VhcmNoIG1hc2suJzsNCiRsYW5nWydoZWxwX3BhcmFtX2RlYnVnJ10gPSAnRW5hYmxlcyBkZWJ1ZyBtb2RlLCBwcmludGluZyBvdXQgYWxsIHRoZSBvYmplY3RzLCBhcnJheXMsIHZhcmlhYmxlcyBhdmFpbGFibGUgZm9yIGN1cnJlbnQgYWN0aW9uLic7DQokbGFuZ1snaGVscF9wYXJhbV9jb2xsYXBzZSddID0gJ0FwcGxpZXMgb25seSB0byBhY3Rpb246IDxlbT5jYXRlZ29yeTwvZW0+LiBUb2dnbGUgY29sbGFwc2UgY2F0ZWdvcmllcy4nOw0KJGxhbmdbJ2hlbHBfcGFyYW1fc2hvd19pdGVtcyddID0gJ0FwcGxpZXMgb25seSB0byBhY3Rpb246IDxlbT5jYXRlZ29yeTwvZW0+LiBBcHBlbmQgaXRlbXMgdG8gY2F0ZWdvcnkgdHJlZS4nOw0KJGxhbmdbJ2hlbHBfcGFyYW1fbnVtYmVyX29mX2xldmVscyddID0gJ0FwcGxpZXMgb25seSB0byBhY3Rpb246IDxlbT5jYXRlZ29yeTwvZW0+LiBOdW1iZXIgb2Ygb2YgY2F0ZWdvcnkgbGV2ZWxzIHRvIHNob3cuJzsNCiRsYW5nWydoZWxwX3BhcmFtX2luY2x1ZGVfaXRlbXMnXSA9ICdTcGVjaWZ5IGFuIGlkL2FsaWFzIG9yIGNvbW1hIHNlcGFyYXRlZCBpZHMvYWxpYXNlcyBvZiB0aGUgaXRlbXMgeW91IHdhbnQgdG8gZGlzcGxheS4nOw0KJGxhbmdbJ2hlbHBfcGFyYW1fZXhjbHVkZV9pdGVtcyddID0gJ1NwZWNpZnkgYW4gaWQvYWxpYXMgb3IgY29tbWEgc2VwYXJhdGVkIGlkcy9hbGlhc2VzIG9mIHRoZSBpdGVtcyB5b3Ugd2FudCB0byBleGNsdWRlIGZyb20gbGlzdC4nOw0KJGxhbmdbJ2hlbHBfcGFyYW1feWVhciddID0gJ0ZpbHRlciBpdGVtcyBieSB5ZWFyLic7DQokbGFuZ1snaGVscF9wYXJhbV9tb250aCddID0gJ0ZpbHRlciBpdGVtcyBieSBtb250aC4nOw0KDQovLyB0aGlzIGlzIGZvciBpbXBvcnRpbmcgZnJvbSBMSTINCiRsYW5nWydpbXBvcnRpbmdfd2FybmluZyddID0gJzxoMz5JbXBvcnRhbnQgSW5mb3JtYXRpb248L2gzPg0KICAgIDxwPjxzdHJvbmc+UmVhZCB0aGlzIGNhcmVmdWxseSE8L3N0cm9uZz48L3A+DQogICAgPHA+WW91IG5lZWQgdG8gaGF2ZSBhIExpc3RJdEV4dGVuZGVkIGluc3RhbGxhdGlvbiB1cGRhdGVkIHVwIHRvIGl0XCdzIGxhdGVzdCBrbm93biB2ZXJzaW9uICgxLjQuMSkuPGJyIC8+DQogICAgRG9uXCd0IGF0dGVtcHQgdG8gaW1wb3J0IExpc3RJdEV4dGVuZGVkIGluc3RhbmNlcyB3aXRob3V0IHVwZ3JhZGluZyBhcyBpdCBtYXkgcmVzdWx0IGluIGluY29tcGxldGUgTElTRSBpbnN0YW5jZXMuPC9wPic7DQoNCi8vIGVycm9ycyBhbmQgZXhjZXB0aW9ucw0KLy8gTm90ZToga2VlcCBwbGFjZWhvbGRlcnMgaW4gdGhlIHNhbWUgbnVtYmVyIGFzIHlvdSBmaW5kIHRoZW0gaW4gZWFjaCBsaW5lIHdoZW4gdHJhbnNsYXRpbmcNCiRsYW5nWycwMDAwMCddID0gJyVzOiBVbmtub3duIExJU0UgZXJyb3IhJzsNCiRsYW5nWycwMDAwMSddID0gJyVzOiBMSVNFIGVycm9yOiAlcyEnOw0KJGxhbmdbJzAwMDAyJ10gPSAnJXM6IExJU0UgRGF0YWJhc2UgZXJyb3I6ICVzISc7DQokbGFuZ1snMDAwMTAnXSA9ICclczogQXR0ZW1wdCB0byB3cml0ZSB0byBjb25maWd1cmF0aW9uOyBMSVNFIGNvbmZpZ3VyYXRpb24gdmFyaWFibGVzIGFyZSBSRUFEIE9OTFkhJzsNCiRsYW5nWycwMDAzMCddID0gJyVzOiBGYWlsZWQgdG8gY3JlYXRlIGRpciAlcyEnOw0KPz4=]]></data>
	</file>
	<file>
	  <filename>/lang/ext</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/lang/ext/de_DE.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKJGxhbmdbJ2ludmFsaWRfY2hhcmFjdGVycyddID0gJ1plaWNoZW4gd2llIOKAniVz4oCcIHNpbmQgbmljaHQgZXJsYXVidCBtaXQgZGVtIEZlbGQg4oCeJXPigJwnOwokbGFuZ1snZ3JlZW4nXSA9ICdncsO8bic7CiRsYW5nWyd5ZWxsb3cnXSA9ICdnZWxiJzsKJGxhbmdbJ3JlZCddID0gJ3JvdCc7CiRsYW5nWydsaXNlX21vZGVfbGlzdF9uYW1lJ10gPSAnTGlzdGVubW9kdXMnOwokbGFuZ1snbGlzZV9tb2RlX2dsb2JhbF9uYW1lJ10gPSAnZ2xvYmFsZXIgTW9kdXMnOwokbGFuZ1snbGlzZV9tb2RlX2xvY2FsX25hbWUnXSA9ICdsb2thbGVyIE1vZHVzJzsKJGxhbmdbJ3Byb21wdF90aXRsZV9kaXNwbGF5X21vZGUnXSA9ICdUaXRlbGFuemVpZ2UtTW9kdXMnOwokbGFuZ1sndGRtX3JlYWRvbmx5J10gPSAnbnVyIGxlc2VuJzsKJGxhbmdbJ3RkbV9oaWRkZW4nXSA9ICd2ZXJzdGVja3QnOwokbGFuZ1sncHJvbXB0X3RpdGxlX2F1dG9fZ2VuJ10gPSAnVGl0ZWwgYXV0b21hdGlzY2ggZXJ6ZXVnZW4nOwokbGFuZ1sncHJvbXB0X3RpdGxlX3RlbXBsYXRlJ10gPSAnVm9ybGFnZW50aXRlbCBhdXRvbWF0aXNjaCBlcnpldWdlbic7CiRsYW5nWydwcm9tcHRfYWxpYXNfdGVtcGxhdGUnXSA9ICdBbGlhcy1UaXRlbCBhdXRvbWF0aXNjaCBlcnpldWdlbic7CiRsYW5nWydpdGVtJ10gPSAnRWludHJhZyc7CiRsYW5nWydpdGVtcyddID0gJ0VpbnRyw6RnZSc7CiRsYW5nWydnbG9iYWwnXSA9ICdHbG9iYWxlIEVpbnN0ZWxsdW5nZW4nOwokbGFuZ1snbG9jYWxfc2V0dGluZ3MnXSA9ICdFaW5zdGVsbHVuZ2VuJzsKJGxhbmdbJ2ZpZWxkZGVmJ10gPSAnRmVsZGRlZmluaXRpb24nOwokbGFuZ1snZmllbGRkZWZzJ10gPSAnRmVsZGRlZmluaXRpb25lbic7CiRsYW5nWyd0ZW1wbGF0ZSddID0gJ1ZvcmxhZ2UnOwokbGFuZ1sndGVtcGxhdGVzJ10gPSAnVm9ybGFnZW4nOwokbGFuZ1snY2F0ZWdvcnknXSA9ICdLYXRlZ29yaWUnOwokbGFuZ1snY2F0ZWdvcmllcyddID0gJ0thdGVnb3JpZW4nOwokbGFuZ1snb3B0aW9uJ10gPSAnT3B0aW9uJzsKJGxhbmdbJ29wdGlvbnMnXSA9ICdPcHRpb25lbic7CiRsYW5nWydtYWludGVuYW5jZSddID0gJ1dhcnR1bmcnOwokbGFuZ1snYmFjayddID0gJ0VpbmUgU2VpdGUgenVyw7xjayc7CiRsYW5nWydhYm91dCddID0gJ8OcYmVyIExJU0UnOwokbGFuZ1snd2hhdHNuZXcnXSA9ICdXYXMgZ2lidCBlcyBuZXVlcyc7CiRsYW5nWydwcm9tcHRfZml4X2ZpZWxkZGVmcyddID0gJ1ZlcnN1Y2hlIFJlcGFyYXR1ciBkZXIgRGF0ZW5iYW5rZWludHLDpGdlIGbDvHIgRmVsZGRlZmluaXRpb25lbic7CiRsYW5nWydtZXNzYWdlX2ZpZWxkZGVmc19maXhlZCddID0gJ0ZlbGRkZWZpbml0aW9uZW4gZsO8ciBhbGxlIEluc3RhbnplbiByZXBhcmllcnQuJzsKJGxhbmdbJ21lc3NhZ2VfaW5zdGFuY2VzX2NvcGllZCddID0gJ0FsbGUgSW5zdGFuemVuIHd1cmRlbiBnZWtsb250JzsKJGxhbmdbJ2l0ZW1fdGl0bGUnXSA9ICdUaXRlbCc7CiRsYW5nWydwcm9tcHRfaXRlbV90aXRsZSddID0gJ1RpdGVsIGRlcyBFaW50cmFncyc7CiRsYW5nWydwcm9tcHRfb2YnXSA9ICd2b24nOwokbGFuZ1snYWN0aXZlJ10gPSAnQWt0aXYnOwokbGFuZ1snY3JlYXRlX3RpbWUnXSA9ICdFcnN0ZWxsdW5nc2RhdHVtJzsKJGxhbmdbJ21vZGlmaWVkX3RpbWUnXSA9ICdCZWFyYmVpdHVuZ3NkYXR1bSc7CiRsYW5nWyd0aW1lX2NvbnRyb2wnXSA9ICdaZWl0c3RldWVydW5nIHZlcndlbmRlbic7CiRsYW5nWydzdGFydF90aW1lJ10gPSAnQmVnaW5uJzsKJGxhbmdbJ2VuZF90aW1lJ10gPSAnRW5kZSc7CiRsYW5nWydpdGVtX3RpdGxlX2VtcHR5J10gPSAnVGl0ZWwgZGVzIEVpbnRyYWdzIGlzdCBsZWVyJzsKJGxhbmdbJ3JlcXVpcmVkX2ZpZWxkX2VtcHR5J10gPSAnUGZsaWNodGZlbGQgaXN0IGxlZXInOwokbGFuZ1sndG9vX2xvbmcnXSA9ICdGZWxkd2VydCDDvGJlcnNjaHJlaXRldCBtYXhpbWFsZSBMw6RuZ2UnOwokbGFuZ1snYXBwcm92ZSddID0gJ1N0YXR1cyBhdWYg4oCeQWt0aXbigJwgc2V0emVuJzsKJGxhbmdbJ3JldmVydCddID0gJ1N0YXR1cyBhdWYg4oCeSW5ha3RpduKAnCBzZXR6ZW4nOwokbGFuZ1sndG9nZ2xlX3N0YXR1cyddID0gJ1N0YXR1cyB1bXNjaGFsdGVuJzsKJGxhbmdbJ3NlbGVjdF9pdGVtJ10gPSAnRWludHJhZyBhdXN3w6RobGVuJzsKJGxhbmdbJ3N1Ym1pdF9vcmRlciddID0gJ1JlaWhlbmZvbGdlIHNwZWljaGVybic7CiRsYW5nWydkZWxldGVfc2VsZWN0ZWQnXSA9ICdBdXNnZXfDpGhsdGUgJXMgbMO2c2NoZW4nOwokbGFuZ1snYXJleW91c3VyZV9kZWxldGVtdWx0aXBsZSddID0gJ1dvbGxlbiBTaWUgd2lya2xpY2ggYWxsZSAlcyBsw7ZzY2hlbj8nOwokbGFuZ1snc2VsZWN0X2FsbCddID0gJ0FsbGUgYXVzd8OkaGxlbic7CiRsYW5nWydlcnJvcl9zdGFydGdyZWF0ZXJlbmQnXSA9ICdGRUhMRVI6IERhcyBTdGFydGRhdHVtIGlzdCBzcMOkdGVyIGFscyBkYXMgRW5kZGF0dW0uJzsKJGxhbmdbJ2l0ZW1fYWxpYXNfZXhpc3RzJ10gPSAnQWxpYXMgZGVzIEVpbnRyYWdzIGV4aXN0aWVydCBiZXJlaXRzLiBEZXIgQWxpYXMg4oCL4oCLbXVzcyBlaW5kZXV0aWcgc2Vpbi4nOwokbGFuZ1sncmV0dXJuX3VybCddID0gJ1p1csO8Y2snOwokbGFuZ1sncGF0aGNvbnRhaW5zdmFycyddID0gJ0RpZXNlcyBGZWxkIGthbm4gbmFjaCBkZW0gZXJzdGVuIFNwZWljaGVybiBkZXMgJXMgYmVhcmJlaXRldCB3ZXJkZW4nOwokbGFuZ1sndXJsJ10gPSAnRWluZW4gc2VsYnN0IGVyc3RlbGx0ZW4gVVJMIGbDvHIgZGllc2VuIEVpbnRyYWcgd8OkaGxlbiBvZGVyIGRlbiBhdXRvbWF0aXNjaCBnZW5lcmllcnRlbiBha3plcHRpZXJlbic7CiRsYW5nWydkbGdfZWRpdG9yX25wX3dhcm5fdGl0bGUnXSA9ICdCZXN0w6R0aWd1bmcnOwokbGFuZ1snZGxnX2VkaXRvcl9ucF93YXJuaW5nJ10gPSAnPHA+U2llIGhhYmVuIGFuIGRpZXNlbSBGb3JtdWxhciDDhG5kZXJ1bmdlbiB2b3JnZW5vbW1lbiB1bmQgd2VyZGVuIGRpZXNlIHZlcmxpZXJlbiwgd2VubiBTaWUgZGllIFNlaXRlIHZlcmxhc3Nlbi4gV29sbGVuIFNpZSB3aXJrbGljaCBmb3J0ZmFocmVuPzwvcD4nOwokbGFuZ1snaXRlbV92YXJfaGVscF9pdGVtX2lkJ10gPSAnV2VubiBpdGVtX2lkIGFuZ2VnZWJlbiBpc3QsIHdpcmQgZXJ3YXJ0ZXQsIGRhc3MgRWludHLDpGdlIGluIGRlciBEYXRlbmJhbmsgYmVyZWl0cyBleGlzdGllcmVuOyB3ZXJkZW4gbmV1ZSBFaW50csOkZ2UgaW1wb3J0aWVydCwgc29sbHRlIGRpZXNlcyBGZWxkIGlnbm9yaWVydCB3ZXJkZW4nOwokbGFuZ1snaXRlbV92YXJfaGVscF9jYXRlZ29yeV9pZCddID0gJ1dlbm4gY2F0ZWdvcnlfaWQgYW5nZWdlYmVuIGlzdCwgd2lyZCBkZXIgamV3ZWlsaWdlIEVpbnRyYWcgZGVyIGVudHNwcmVjaGVuZGVuIEthdGVnb3JpZSB6dWdlb3JkbmV0LiBXZW5uIGNhdGVnb3J5X2lkIGFuZ2VnZWJlbiBpc3QsIGFiZXIgbmljaHQgZXhpc3RpZXJ0LCB3aXJkIGVzIGlnbm9yaWVydCB1bmQgc3RhdHRkZXNzZW4gZGllIFN0YW5kYXJka2F0ZWdvcmllIHp1Z2V3aWVzZW4uJzsKJGxhbmdbJ2l0ZW1fdmFyX2hlbHBfdGl0bGUnXSA9ICdUaXRlbCBkZXMgRWludHJhZ3MsIGRlciBpbSBVUkwgYW5nZXplaWd0IHdpcmQgdW5kIGRlbiBFaW50cmFnIGJlemVpY2huZXQuJzsKJGxhbmdbJ2l0ZW1fdmFyX2hlbHBfYWxpYXMnXSA9ICdEZXIgQWxpYXMgYmVzdGltbXQgZWluZW4gZWluemlnYXJ0aWdlbiB1bmQgZsO8ciBkYXMgU3lzdGVtIHZlcndlbmRiYXJlbiBOYW1lbiBmw7xyIGVpbmVuIEVpbnRyYWcsIGQuIGguIG9obmUgU29uZGVyLSB1bmQgTGVlcnplaWNoZW4uJzsKJGxhbmdbJ2l0ZW1fdmFyX2hlbHBfdXJsJ10gPSAnRGVyIFVSTCBtdXNzIGVpbnppZ2FydGlnIGbDvHIgamVkZW4gRWludHJhZyB1bmQgaW0gZ2VzYW10ZW4gU3lzdGVtIHNlaW4uJzsKJGxhbmdbJ2l0ZW1fdmFyX2hlbHBfcG9zaXRpb24nXSA9ICdEaWUgUG9zaXRpb24gaW4gZGVyIFJlaWhlbmZvbGdlLCBpbiBkZXIgRWludHLDpGdlIGFuZ2V6ZWlndCB3ZXJkZW4uJzsKJGxhbmdbJ2l0ZW1fdmFyX2hlbHBfYWN0aXZlJ10gPSAnRGllc2UgT3B0aW9uIHNldHp0IGRlbiBFaW50cmFnIGVudHdlZGVyIGF1ZiDigJ5ha3RpduKAnCBvZGVyIOKAnmluYWt0aXbigJwnOwokbGFuZ1snaXRlbV92YXJfaGVscF9zdGFydF90aW1lJ10gPSAnQmVzdGltbXQgZGllIFplaXQsIGFiIGRlciBlaW4gRWludHJhZyBhbmdlemVpZ3Qgd2lyZC4nOwokbGFuZ1snaXRlbV92YXJfaGVscF9lbmRfdGltZSddID0gJ0Jlc3RpbW10IGRpZSBaZWl0LCBhYiBkZXIgZWluIEVpbnRyYWcgdmVyc3RlY2t0IHdpcmQuJzsKJGxhbmdbJ2l0ZW1fdmFyX2hlbHBfb3duZXInXSA9ICdCZW51dHplci1JRCBlaW5lcyBBZG1pbmlzdHJhdGlvbnNiZW51dHplcnMnOwokbGFuZ1snaXRlbV92YXJfaGVscF9rZXkxJ10gPSAnQmVzdGltbXQgZWluZW4genVzw6R0emxpY2hlbiBJZGVudGlmaWthdGlvbnNzY2hsw7xzc2VsIOKAnGtleTHigJ0gZsO8ciBkaWVzZW4gRWludHJhZy4nOwokbGFuZ1snaXRlbV92YXJfaGVscF9rZXkyJ10gPSAnQmVzdGltbXQgZWluZW4genVzw6R0emxpY2hlbiBJZGVudGlmaWthdGlvbnNzY2hsw7xzc2VsIOKAnGtleTLigJ0gZsO8ciBkaWVzZW4gRWludHJhZy4nOwokbGFuZ1snaXRlbV92YXJfaGVscF9rZXkzJ10gPSAnQmVzdGltbXQgZWluZW4genVzw6R0emxpY2hlbiBJZGVudGlmaWthdGlvbnNzY2hsw7xzc2VsIOKAnGtleTPigJ0gZsO8ciBkaWVzZW4gRWludHJhZy4nOwokbGFuZ1snbWFpbl9zZXR0aW5ncyddID0gJ0hhdXB0ZWluc3RlbGx1bmdlbic7CiRsYW5nWydlZGl0ZmllbGRkZWYnXSA9ICdGZWxkZGVmaW5pdGlvbiBiZWFyYmVpdGVuJzsKJGxhbmdbJ2ZpZWxkZGVmX25hbWUnXSA9ICdOYW1lJzsKJGxhbmdbJ2ZpZWxkZGVmX2hlbHAnXSA9ICdIaWxmcmVpY2hlciBUaXBwJzsKJGxhbmdbJ2ZpZWxkZGVmX3R5cGUnXSA9ICdUeXAnOwokbGFuZ1snZmllbGRkZWZfZGVwcyddID0gJ01vZHVsYWJow6RuZ2lna2VpdGVuJzsKJGxhbmdbJ2ZpZWxkZGVmX2RlcHNfbWlzc2luZyddID0gJ0VpbiBvZGVyIG1laHJlcmUgYWJow6RuZ2lnZSBNb2R1bGUgZmVobGVuLiBCaXR0ZSBpbnN0YWxsaWVyZW4gU2llIGFsbGUgZXJmb3JkZXJsaWNoZW4gTW9kdWxlLCB1bSBkaWVzZXMgRmVsZCBudXR6ZW4genUga8O2bm5lbi4nOwokbGFuZ1snZmllbGRkZWZfc2NhbiddID0gJ0ZlbGRkZWZpbml0aW9uZW4gZWlubGVzZW4nOwokbGFuZ1snZmllbGRkZWZfc2Nhbm5lZCddID0gJ0ZlbGRkZWZpbml0aW9uZW4gZWluZ2VsZXNlbic7CiRsYW5nWydmaWVsZGRlZl90eXBlX25vdHNldCddID0gJ0ZlbGRkZWZpbml0aW9uc3R5cCBuaWNodCBkZWZpbmllcnQnOwokbGFuZ1snZmllbGRkZWZfZnJpZW5kbHl0eXBlJ10gPSAnRWlnZW5lIEJlemVpY2hudW5nJzsKJGxhbmdbJ2ZpZWxkZGVmX29yaWdpbmF0b3InXSA9ICdVcnNwcnVuZyc7CiRsYW5nWydmaWVsZGRlZl9tYXhfbGVuZ3RoJ10gPSAnbWF4aW1hbGUgTMOkbmdlJzsKJGxhbmdbJ2ZpZWxkZGVmX3JlcXVpcmVkJ10gPSAnRXJmb3JkZXJsaWNoJzsKJGxhbmdbJ3JlZ2lzdGVyZWRfZmllbGRkZWZzJ10gPSAnUmVnaXN0cmllcnRlIEZlbGRkZWZpbml0aW9uZW4nOwokbGFuZ1snZmllbGRkZWZfbmFtZV9lbXB0eSddID0gJ0RlciBOYW1lIGRlciBGZWxkZGVmaW5pdGlvbiBpc3QgbGVlcic7CiRsYW5nWydmaWVsZGRlZl9uYW1lX2V4aXN0cyddID0gJ0RlciBOYW1lIGRlciBGZWxkZGVmaW5pdGlvbmVuIGV4aXN0aWVydCBiZXJlaXRzJzsKJGxhbmdbJ2ZpZWxkZGVmX2FsaWFzX2V4aXN0cyddID0gJ0RlciBBbGlhcyBleGlzdGllcnQgYmVyZWl0czsgQWxpYXMgbXVzcyBlaW5kZXV0aWcgc2Vpbi4nOwokbGFuZ1snZmllbGRkZWZfaXNfdW5pcXVlJ10gPSAnRmVsZGRlZmluaXRpb24gbXVzcyBlaW56aWdhcnRpZyBzZWluOyBlcyBrYW5uIG5pY2h0IG1laHJtYWxzIGRpZSBnbGVpY2hlIGV4aXN0aWVyZW4nOwokbGFuZ1snZmllbGRkZWZfaW1hZ2UnXSA9ICdCaWxkIGVyd2FydGV0JzsKJGxhbmdbJ2ludmFsaWQnXSA9ICdEZXIgRmVsZHdlcnQgaXN0IHVuenVsw6Rzc2lnJzsKJGxhbmdbJ3N0YXR1c19yZXF1aXJlZCddID0gJ1N0YXR1cyBhdWYg4oCeZXJmb3JkZXJsaWNo4oCcIHNldHplbic7CiRsYW5nWydzdGF0dXNfb3B0aW9uYWwnXSA9ICdTdGF0dXMgYXVmIOKAnm9wdGlvbmFs4oCcIHNldHplbic7CiRsYW5nWydpc19kZWZhdWx0J10gPSAnSXN0IOKAnlN0YW5kYXJk4oCcJzsKJGxhbmdbJ3N0YXR1c19kZWZhdWx0J10gPSAnQXVmIOKAnlN0YW5kYXJk4oCcIHNldHplbic7CiRsYW5nWydoZWxwdGV4dF90aXRsZSddID0gJ03DtmdsaWNoZSBGZWxkZGVmaW5pdGlvbi1BbndlaXN1bmdlbiBmw7xyIGRhcyBFeHRyYS1GZWxkOic7CiRsYW5nWydmaWVsZGRlZl90ZW1wbGF0ZSddID0gJ1ZvcmxhZ2UnOwokbGFuZ1snZmllbGRkZWZfc2VhcmNoX2luZGV4X2hlbHAnXSA9ICdXZW5uIFNpZSBkaWVzZXMgS29udHJvbGxrw6RzdGNoZW4gYWt0aXZpZXJlbiwgd2lyZCBkaWVzZXMgRmVsZCBtYXJraWVydCwgZGFtaXQgZXMgdm9uIGRlciBnbG9iYWxlbiBTdWNoZSBpbmRpemllcnQgd2lyZCwgd2VubiBuZXVlIEVsZW1lbnRlIGVyc3RlbGx0LCBFbGVtZW50ZSBiZWFyYmVpdGV0IG9kZXIgYWxsZSBJbmhhbHRlIGF1cyBkZW0gYXVzZ2V3w6RobHRlbiBTdWNobW9kdWwgbmV1IGluZGl6aWVydCB3ZXJkZW4uJzsKJGxhbmdbJ3dhcm5pbmdfcmVpbmRleF9zZWFyY2gnXSA9ICdCaXR0ZSBiZWFjaHRlbiBTaWUsIGRhc3MgZGllc2VzIE1vZHVsIHp3YXIgbmljaHQgZsO8ciBkaWUgVW50ZXJzdMO8dHp1bmcgZWluZXIgZ3Jvw59lbiBBbnphaGwgdm9uIEVsZW1lbnRlbiBhdXNnZWxlZ3Qgd3VyZGUsIGF1Y2ggd2VubiBlcyBkYWbDvHIgYmVrYW5udCBpc3QsIGRhc3MgZXMgYmVpIGJlc3RpbW10ZW4gU2VydmVya29uZmlndXJhdGlvbmVuIGRlbm5vY2ggbWl0IHplaG50YXVzZW5kZW4gdm9uIERhdGVuc8OkdHplbiB1bmQgbWl0IGVpbmVyIGdyb8OfZW4gQW56YWhsIHZvbiBiZW51dHplcmRlZmluaWVydGVuIEZlbGRlcm4gcHJvIEluc3RhbnogZWluZSBhbmdlbWVzc2VuZSBMZWlzdHVuZyBlcmJyaW5ndC4gQml0dGUgYmVhY2h0ZW4gU2llIGRhaGVyLCBkYXNzIGRpZSBJbmRpemllcnVuZyBkaWVzZXMgTW9kdWxzIG1pdCBkZW0gU3VjaG1vZHVsIG51ciBtaXQgZWluZXIgQW56YWhsIHZvbiBodW5kZXJ0ZW4gdm9uIERhdGVuc8OkdHplbiBlZmZla3RpdiBzZWluIGthbm4sIG5pY2h0IHZvbiB0YXVzZW5kZW4uIFdlbm4gU2llIHZvcmhhYmVuLCBlaW5lIGdyb8OfZSBBbnphaGwgdm9uIERhdGVuc8OkdHplbiB6dSB2ZXJ3ZW5kZW4sIGRlbmtlbiBTaWUgZGFyYW4sIGRhc3MgZGllIEluZGl6aWVydW5nIHVuZCBkaWUgU3VjaGUgbGFuZ3NhbSDigJMgaW4gRXh0cmVtZsOkbGxlbiBiaXMgaGluIHp1ciBVbmJyYXVjaGJhcmtlaXQg4oCTIHNlaW4ga8O2bm5lbi4gU2llIHNvbGx0ZW4gc2ljaCBhbHNvIGFuIGRpZSBtb2R1bGVpZ2VuZSBTdWNoZnVua3Rpb24gaGFsdGVuLCBkYSBzaWUgZsO8ciBkaWVzZSBGw6RsbGUgb3B0aW1pZXJ0IGlzdC4nOwokbGFuZ1snZmllbGRkZWZfVGV4dElucHV0J10gPSAnVGV4dGZlbGQnOwokbGFuZ1snZmllbGRkZWZfQ2hlY2tib3gnXSA9ICdLb250cm9sbGvDpHN0Y2hlbic7CiRsYW5nWydmaWVsZGRlZl9UZXh0QXJlYSddID0gJ1RleHRiZXJlaWNoJzsKJGxhbmdbJ2ZpZWxkZGVmX1NlbGVjdERhdGUnXSA9ICdEYXR1bXNhdXN3YWhsJzsKJGxhbmdbJ2ZpZWxkZGVmX1NlbGVjdERhdGVUaW1lJ10gPSAnRGF0dW1zYXVzd2FobCc7CiRsYW5nWydmaWVsZGRlZl9kdF9iYWNrd2FyZHNfY29tcGF0aWJpbGl0eSddID0gJ1LDvGNrd8OkcnRza29tcGF0aWJpbGl0w6R0JzsKJGxhbmdbJ2ZpZWxkZGVmX0Ryb3Bkb3duJ10gPSAnQXVzd2FobGZlbGQnOwokbGFuZ1snZmllbGRkZWZfQ29udGVudFBhZ2VzJ10gPSAnSW5oYWx0c3NlaXRlbic7CiRsYW5nWydmaWVsZGRlZl9TZWxlY3RGaWxlJ10gPSAnRGF0ZWlhdXN3YWhsJzsKJGxhbmdbJ2ZpZWxkZGVmX1JhZGlvR3JvdXAnXSA9ICdSYWRpb2tub3BmZ3J1cHBlJzsKJGxhbmdbJ2VuYWJsZV9qcXVpJ10gPSAnalF1ZXJ5LVVJLUtuw7ZwZmUgdmVyd2VuZGVuJzsKJGxhbmdbJ2ZpZWxkZGVmX1NsaWRlciddID0gJ1NjaGllYmVyZWdsZXInOwokbGFuZ1snZmllbGRkZWZfTXVsdGlTZWxlY3QnXSA9ICdNZWhyZmFjaGF1c3dhaGwnOwokbGFuZ1snZmllbGRkZWZfQ2hlY2tib3hHcm91cCddID0gJ0tvbnRyb2xsa8Okc3RjaGVuLUdydXBwZSc7CiRsYW5nWydmaWVsZGRlZl9GaWxlVXBsb2FkJ10gPSAnRGF0ZWktVXBsb2FkJzsKJGxhbmdbJ2ZpZWxkZGVmX0NvbG9yUGlja2VyJ10gPSAnRmFyYmF1c3dhaGwnOwokbGFuZ1snZmllbGRkZWZfVGFncyddID0gJ1RhZ3MnOwokbGFuZ1snZmllbGRkZWZfVGFicyddID0gJ1JlaXRlcic7CiRsYW5nWydmaWVsZGRlZl9CVF9jb250YWluZXJfdGV4dCddID0gJ1RleHQnOwokbGFuZ1snZmllbGRkZWZfQlRfaW5mb3JtYXRpb24nXSA9ICdJbmZvcm1hdGlvbic7CiRsYW5nWydmaWVsZGRlZl9CVF93YXJuaW5nJ10gPSAnV2FybnVuZyc7CiRsYW5nWydmaWVsZGRlZl9GRVVEcm9wZG93biddID0gJ0Zyb250ZW5kVXNlcnMtQXVzd2FobCc7CiRsYW5nWydmaWVsZGRlZl9mZXVfb3B0aW9ucyddID0gJ0ZFVS1HcnVwcGVuJzsKJGxhbmdbJ2ZpZWxkZGVmX2ZldV9kcm9wZG93bl9oZWxwJ10gPSAnQml0dGUgd8OkaGxlbiBzaWUgZWluZSBkZXIgdmVyZsO8Z2JhcmVuIEZyb250RW5kVXNlcnMtR3J1cHBlbic7CiRsYW5nWydmaWVsZGRlZl9HYWxsZXJ5RHJvcGRvd24nXSA9ICdHYWxlcmllYXVzd2FobCc7CiRsYW5nWydmaWVsZGRlZl9HQkZpbGVQaWNrZXInXSA9ICdHQkZpbGVQaWNrZXItRGF0ZWktVXBsb2FkJzsKJGxhbmdbJ2ZpZWxkZGVmX0dCRmlsZVBpY2tlcl9maWxlYnJvd3NlciddID0gJ0RhdGVpYnJvd3NlciBha3RpdmllcmVuJzsKJGxhbmdbJ2ZpZWxkZGVmX0dCRmlsZVBpY2tlcl9pbWFnZSddID0gJ0JpbGQgZXJ3YXJ0ZXQnOwokbGFuZ1snZmllbGRkZWZfR0JGaWxlUGlja2VyX2NyZWF0ZV9kaXJzJ10gPSAnRXJzdGVsbGVuIHZvbiBWZXJ6ZWljaG5pc3NlbiBlcmxhdWJlbic7CiRsYW5nWydmaWVsZGRlZl9HQkZpbGVQaWNrZXJfZGVsZXRlJ10gPSAnTMO2c2NoZW4gZXJsYXViZW4nOwokbGFuZ1snZmllbGRkZWZfR0JGaWxlUGlja2VyX3Nob3dfc3ViZGlycyddID0gJ1VudGVydmVyemVpY2huaXNzZSBlcmxhdWJlbic7CiRsYW5nWydmaWVsZGRlZl9KTUZpbGVQaWNrZXInXSA9ICdKTUZpbGVQaWNrZXItRGF0ZWktVXBsb2FkJzsKJGxhbmdbJ2ZpZWxkZGVmX0pNRmlsZVBpY2tlcl9maWxlYnJvd3NlciddID0gJ0RhdGVpYnJvd3NlciBha3RpdmllcmVuJzsKJGxhbmdbJ2ZpZWxkZGVmX0pNRmlsZVBpY2tlcl9pbWFnZSddID0gJ0JpbGQgZXJ3YXJ0ZXQnOwokbGFuZ1snZmllbGRkZWZfSk1GaWxlUGlja2VyX2NyZWF0ZV9kaXJzJ10gPSAnRXJzdGVsbGVuIHZvbiBWZXJ6ZWljaG5pc3NlbiBlcmxhdWJlbic7CiRsYW5nWydmaWVsZGRlZl9KTUZpbGVQaWNrZXJfZGVsZXRlJ10gPSAnTMO2c2NoZW4gZXJsYXViZW4nOwokbGFuZ1snZmllbGRkZWZfSk1GaWxlUGlja2VyX3Nob3dfc3ViZGlycyddID0gJ1VudGVydmVyemVpY2huaXNzZSBlcmxhdWJlbic7CiRsYW5nWydmaWVsZGRlZl9MSVNFSW5zdGFuY2UnXSA9ICdMSVNFLUluc3RhbnonOwokbGFuZ1snZmllbGRkZWZfaW5zdGFuY2VfaGVscCddID0gJ0luc3RhbnogYXVzd8OkaGxlbic7CiRsYW5nWydpbnN0YW5jZSddID0gJ0luc3RhbnonOwokbGFuZ1snaWlfb3B0aW9uX2luY2x1ZGVfZGVmYXVsdCddID0gJ3N0YW5kYXJkJzsKJGxhbmdbJ2lpX29wdGlvbl9pbmNsdWRlX29ubHlfYWN0aXZlJ10gPSAnbnVyIGFrdGl2JzsKJGxhbmdbJ2lpX29wdGlvbl9pbmNsdWRlX29ubHlfaW5hY3RpdmUnXSA9ICdudXIgaW5ha3Rpdic7CiRsYW5nWydpaV9vcHRpb25faW5jbHVkZV9hbGwnXSA9ICdhbGxlJzsKJGxhbmdbJ2ZpZWxkZGVmX0pRdWVyeU11bHRpU2VsZWN0J10gPSAnalF1ZXJ5LU1laHJmYWNoYXVzd2FobCc7CiRsYW5nWydmaWVsZGRlZl91c2VycyddID0gJ0JlbnV0emVyJzsKJGxhbmdbJ2ZpZWxkZGVmX3VzZV91c2VybmFtZSddID0gJ0JlbnV0emVybmFtZW5zZmVsZCB2ZXJ3ZW5kZW4nOwokbGFuZ1snZmllbGRkZWZfdXNlX3VpZCddID0gJ0JlbnV0emVyLUlEIHZvcmFuc3RlbGxlbic7CiRsYW5nWydmaWVsZGRlZl9zZXBhcmF0b3JfY2hyJ10gPSAnVHJlbm56ZWljaGVuJzsKJGxhbmdbJ2ZpZWxkZGVmX2NvcmVfZnBfcHJvZmlsZXMnXSA9ICdQcm9maWwnOwokbGFuZ1snZmllbGRkZWZfSGVscFBvcHVwJ10gPSAnSGlsZmVkaWFsb2cnOwokbGFuZ1snZmllbGRkZWZfcGhfdGl0bGUnXSA9ICdEaWFsb2ctVGl0ZWwnOwokbGFuZ1snZmllbGRkZWZfcGhfbXNnJ10gPSAnRGlhbG9nLU5hY2hyaWNodCc7CiRsYW5nWydmaWVsZGRlZl9zZXBhcmF0b3JfaGVscCddID0gJ0thbm4gbGVlciwgZWluIGVpbnplbG5lcyBaZWljaGVuIG9kZXIgZWluZSBIVE1MLUVudGl0w6R0IHNlaW4uJzsKJGxhbmdbJ2ZpZWxkZGVmX3NpemVfaGVscCddID0gJ0dyw7bDn2UgZGVzIEVpbmdhYmVmZWxkcyAoQW56YWhsIGRlciBaZWljaGVuKTsgei4gQi4g4oCeMjDigJwnOwokbGFuZ1snZmllbGRkZWZfbWF4X2xlbmd0aF9oZWxwJ10gPSAnTWF4aW1hbGUgRWluZ2FiZWzDpG5nZSBkZXMgRmVsZHMgKEFuemFobCBkZXIgWmVpY2hlbiksIHouIEIuIDI1NSc7CiRsYW5nWydmaWVsZGRlZl9kYXRlX2Zvcm1hdF9oZWxwJ10gPSAnRGF0dW1zZm9ybWF0IGRlciBqUXVlcnktRGF0dW1zYXVzd2FobCAoc2llaGUgPGEgaHJlZj0iaHR0cDovL2FwaS5qcXVlcnl1aS5jb20vZGF0ZXBpY2tlci8jdXRpbGl0eS1mb3JtYXREYXRlIj5EYXRlcGlja2VyIFdpZGdldCB8IGpRdWVyeSBVSSBBUEkgRG9jdW1lbnRhdGlvbjwvYT4gKGVuZ2xpc2NoKSksIHouIEIuIDxjb2RlPmRkLm1tLnl5PC9jb2RlPic7CiRsYW5nWydmaWVsZGRlZl9mb3JtYXRfdHlwZV9oZWxwJ10gPSAnQXVzZ2FiZWZvcm1hdCBkZXMgRmVsZHMnOwokbGFuZ1snZmllbGRkZWZfbWluX3ZhbHVlX2hlbHAnXSA9ICdNaW5pbWFsd2VydCBmw7xyIGRhcyBGZWxkJzsKJGxhbmdbJ2ZpZWxkZGVmX21heF92YWx1ZV9oZWxwJ10gPSAnTWF4aW1hbHdlcnQgZsO8ciBkYXMgRmVsZCc7CiRsYW5nWydyZW9yZGVyX2NhdGVnb3JpZXMnXSA9ICdLYXRlZ29yaWVuIG5ldSBhbm9yZG5lbic7CiRsYW5nWydlZGl0X2NhdGVnb3J5J10gPSAnS2F0ZWdvcmllIGJlYXJiZWl0ZW4nOwokbGFuZ1snY2F0ZWdvcnlfbmFtZSddID0gJ05hbWUgZGVyIEthdGVnb3JpZSc7CiRsYW5nWydjYXRlZ29yeV9kZXNjcmlwdGlvbiddID0gJ0thdGVnb3JpZWJlc2NocmVpYnVuZyc7CiRsYW5nWydjYXRlZ29yeV9uYW1lX2VtcHR5J10gPSAnTmFtZSBkZXIgS2F0ZWdvcmllIGlzdCBsZWVyJzsKJGxhbmdbJ2NhdGVnb3J5X2FsaWFzX2V4aXN0cyddID0gJ0RlciBLYXRlZ29yaWUtQWxpYXMgZXhpc3RpZXJ0IGJlcmVpdHMuIEFsaWFzIG11c3MgZWluZGV1dGlnIHNlaW4uJzsKJGxhbmdbJ2FyY2hpdmV0ZW1wbGF0ZSddID0gJ0FyY2hpdnZvcmxhZ2UnOwokbGFuZ1snYXJjaGl2ZXRlbXBsYXRlcyddID0gJ0FyY2hpdnZvcmxhZ2VuJzsKJGxhbmdbJ2NhdGVnb3J5dGVtcGxhdGUnXSA9ICdLYXRlZ29yaWV2b3JsYWdlJzsKJGxhbmdbJ2NhdGVnb3J5dGVtcGxhdGVzJ10gPSAnS2F0ZWdvcmlldm9ybGFnZW4nOwokbGFuZ1snc3VtbWFyeXRlbXBsYXRlJ10gPSAnWnVzYW1tZW5mYXNzdW5nc3ZvcmxhZ2UnOwokbGFuZ1snc3VtbWFyeXRlbXBsYXRlcyddID0gJ1p1c2FtbWVuZmFzc3VuZ3N2b3JsYWdlbic7CiRsYW5nWydkZXRhaWx0ZW1wbGF0ZSddID0gJ0RldGFpbHZvcmxhZ2UnOwokbGFuZ1snZGV0YWlsdGVtcGxhdGVzJ10gPSAnRGV0YWlsdm9ybGFnZW4nOwokbGFuZ1snc2VhcmNodGVtcGxhdGUnXSA9ICdTdWNodm9ybGFnZSc7CiRsYW5nWydzZWFyY2h0ZW1wbGF0ZXMnXSA9ICdTdWNodm9ybGFnZW4nOwokbGFuZ1snZmlsdGVydGVtcGxhdGUnXSA9ICdGaWx0ZXJ2b3JsYWdlJzsKJGxhbmdbJ2ZpbHRlcnRlbXBsYXRlcyddID0gJ0ZpbHRlcnZvcmxhZ2VuJzsKJGxhbmdbJ2VkaXR0ZW1wbGF0ZSddID0gJ1ZvcmxhZ2UgYmVhcmJlaXRlbic7CiRsYW5nWyd0ZW1wbGF0ZV9uYW1lJ10gPSAnVm9ybGFnZW5uYW1lJzsKJGxhbmdbJ3RlbXBsYXRlX25hbWVfZW1wdHknXSA9ICdOYW1lIGRlciBWb3JsYWdlIGlzdCBsZWVyJzsKJGxhbmdbJ3RlbXBsYXRlX2NvbnRlbnRfZW1wdHknXSA9ICdWb3JsYWdlbmluaGFsdCBpc3QgbGVlcic7CiRsYW5nWydkZWZhdWx0X3RlbXBsYXRlcyddID0gJ1N0YW5kYXJkdm9ybGFnZW4nOwokbGFuZ1snbW9kdWxlX29wdGlvbnMnXSA9ICdNb2R1bG9wdGlvbmVuJzsKJGxhbmdbJ21vZHVsZV9tYWluX29wdGlvbnMnXSA9ICdTdGFuZGFyZG1vZHVsb3B0aW9uZW4nOwokbGFuZ1snbW9kdWxlX2FkdmFuY2VkX29wdGlvbnMnXSA9ICdlcndlaXRlcnRlIE1vZHVsb3B0aW9uZW4nOwokbGFuZ1sndXJsX29wdGlvbnMnXSA9ICdVUkwtT3B0aW9uZW4nOwokbGFuZ1snZGVmYXVsdF9vcHRpb25zJ10gPSAnTW9kdWxzdGFuZGFyZHMnOwokbGFuZ1sneG1vZHVsZV9vcHRpb25zJ10gPSAnSW50ZXJtb2R1bGFyZSBPcHRpb25lbic7CiRsYW5nWydwcm9tcHRfZnJpZW5kbHluYW1lJ10gPSAnQW5nZXplaWd0ZXIgTW9kdWxuYW1lJzsKJGxhbmdbJ3Byb21wdF9hZG1pbnNlY3Rpb24nXSA9ICdNb2R1bC1BZG1pbmJlcmVpY2gnOwokbGFuZ1snaXRlbXNfb3B0aW9ucyddID0gJ0VpbnRyYWctT3B0aW9uZW4nOwokbGFuZ1sncHJvbXB0X2l0ZW1fc2luZ3VsYXInXSA9ICdFaW56YWhsIHZvbiDigJ5FaW50cmFn4oCcJzsKJGxhbmdbJ3Byb21wdF9pdGVtX3BsdXJhbCddID0gJ01laHJ6YWhsIHZvbiDigJ5FaW50cmFn4oCcJzsKJGxhbmdbJ3Byb21wdF91cmxfcHJlZml4J10gPSAnVVJMLVByw6RmaXgnOwokbGFuZ1sncHJvbXB0X3VybF90ZW1wbGF0ZSddID0gJ1VSTC1Wb3JsYWdlJzsKJGxhbmdbJ3Byb21wdF9kaXNwbGF5X2lubGluZSddID0gJ0RldGFpbHMg4oCeaW5saW5l4oCcIGFuemVpZ2VuJzsKJGxhbmdbJ3Byb21wdF9pdGVtX2NvbHMnXSA9ICdEaWVzZSBGZWxkZXIgaW4gZGVyIMOcYmVyc2ljaHQgemVpZ2VuJzsKJGxhbmdbJ3Byb21wdF9pdGVtc19wZXJfcGFnZSddID0gJ0FydGlrZWwgcHJvIFNlaXRlIGFuemVpZ2VuJzsKJGxhbmdbJ3Byb21wdF9jcmVhdGVfZGF0ZSddID0gJ0Vyc3RlbGx1bmdzZGF0dW0gaW0gQmVhcmJlaXR1bmdzbW9kdXMgYW56ZWlnZW4/JzsKJGxhbmdbJ3Byb21wdF9kZXRhaWxwYWdlJ10gPSAnRGV0YWlsc2VpdGUnOwokbGFuZ1sncHJvbXB0X3N1bW1hcnlwYWdlJ10gPSAnWnVzYW1tZW5mYXNzdW5nc3NlaXRlJzsKJGxhbmdbJ3Byb21wdF9yZWluZGV4X3NlYXJjaCddID0gJ0VpbnRyw6RnZSBtaXQgU3VjaG1vZHVsIGR1cmNoc3VjaGJhcic7CiRsYW5nWyd0ZXh0X3NvcnRvcmRlciddID0gJ1ZvcmVpbmdlc3RlbGx0ZSBFaW50cmFnLVNvcnRpZXJyZWloZW5mb2xnZSBpbiBkZXIgQWRtaW5pc3RyYXRpb24nOwokbGFuZ1snb3B0aW9uc19ub3RpY2UnXSA9ICdOYWNoIMOEbmRlcnVuZyBkZXMgTW9kdWwtQW56ZWlnZW5hbWVucyBvZGVyIEFkbWluaXN0cmF0aW9uc2JlcmVpY2hzLCBrw7ZubnRlIGVzIGVyZm9yZGVybGljaCBzZWluLCBkZW4gWndpc2NoZW5zcGVpY2hlciB6dSBsZWVyZW4sIGRhbWl0IGRpZSDDhG5kZXJ1bmdlbiB3aXJrc2FtIHdlcmRlbi4nOwokbGFuZ1sncHJvbXB0X2FsbG93X2F1dG9zY2FuJ10gPSAnRGVtIFN5c3RlbSBlcmxhdWJlbiwgRmVsZGRlZmluaXRpb25lbiBhdXRvbWF0aXNjaCBhYnp1ZnJhZ2VuJzsKJGxhbmdbJ3Byb21wdF9hbGxvd19hdXRvaW5zdGFsbCddID0gJ0RlbSBTeXN0ZW0gZXJsYXViZW4sIE1vZHVsaW5zdGFuemVuIGF1dG9tYXRpc2NoIHp1IGluc3RhbGxpZXJlbic7CiRsYW5nWydub3RpY2UnXSA9ICdIaW53ZWlzJzsKJGxhbmdbJ2luc3RhbmNlcyddID0gJ0luc3Rhbnplbic7CiRsYW5nWydpbnN0YWxsZWRfaW5zdGFuY2VzX3dhcm5pbmcnXSA9ICdVbnRlbiBpc3QgZWluZSBMaXN0ZSB2b24gZHVwbGl6aWVydGVuIE1vZHVsLUluc3Rhbnplbi48YnIgLz5Wb3IgZWluZXIgQWt0dWFsaXNpZXJ1bmcgZGVzIE1vZHVscyBzb2xsdGUgZWluZSBTaWNoZXJ1bmdza29waWUgZGVyIFdlYnNpdGUgKERhdGVuYmFuayB1bmQgRGF0ZWllbikgZXJzdGVsbHQgd2VyZGVuLic7CiRsYW5nWydpbnN0YWxsZWRfaW5zdGFuY2VzJ10gPSAnSW5zdGFsbGllcnRlIEluc3Rhbnplbic7CiRsYW5nWydpbnN0YW5jZV9uYW1lJ10gPSAnSW5zdGFuem5hbWUnOwokbGFuZ1snaW5zdGFuY2VfZnJpZW5kbHluYW1lJ10gPSAnQW56ZWlnZW5hbWUnOwokbGFuZ1snaW5zdGFuY2Vfc21hcnR5J10gPSAnU21hcnR5LVRhZyc7CiRsYW5nWydpbnN0YW5jZV92ZXJzaW9uJ10gPSAnVmVyc2lvbic7CiRsYW5nWydpbnN0YW5jZV91cGdyYWRlJ10gPSAnQWt0dWFsaXNpZXJlbic7CiRsYW5nWydpbnN0YW5jZV91cHRvZGF0ZSddID0gJ0FrdHVlbGwnOwokbGFuZ1snaW5zdGFuY2VfbW9kdWxldXBncmFkZWQnXSA9ICdNb2R1bCBha3R1YWxpc2llcnQnOwokbGFuZ1snY29weV90aXRsZSddID0gJ01vZHVsIGR1cGxpemllcmVuJzsKJGxhbmdbJ2ltcG9ydF9mcm9tX0xJMl90aXRsZSddID0gJ0luc3RhbnplbiBhdXMgTEkyIGltcG9ydGllcmVuJzsKJGxhbmdbJ3Byb21wdF9pbXBvcnRfZnJvbV9MSTInXSA9ICdhdXMgZXhpc3RpZXJlbmRlbiBMSTItSW5zdGFuemVuIGltcG9ydGllcmVuJzsKJGxhbmdbJ2J1dHRvbl9pbXBvcnRfZnJvbV9MSTInXSA9ICdJbXBvcnRpZXJlbic7CiRsYW5nWydmaXhfaW1wb3J0X2Zyb21fTEkyX3RpdGxlJ10gPSAnYXVzIExpc3RJdDIgaW1wb3J0aWVydGUgVGFiZWxsZW4gcmVwYXJpZXJlbic7CiRsYW5nWydidXR0b25fZml4X2ltcG9ydF9mcm9tX0xJMiddID0gJ1JlcGFyaWVyZW4nOwokbGFuZ1snaW5zdGFuY2VfbW9kZSddID0gJ01vZHVzJzsKJGxhbmdbJ21vZGVfbGlzdCddID0gJ0xpc3RlJzsKJGxhbmdbJ21vZGVfZ2xvYmFsJ10gPSAnR2xvYmFsJzsKJGxhbmdbJ21vZGVfbG9jYWwnXSA9ICdMb2thbCc7CiRsYW5nWydzdWJtaXQnXSA9ICdBYnNlbmRlbic7CiRsYW5nWydkZWZhdWx0J10gPSAnU3RhbmRhcmQnOwokbGFuZ1snY2FuY2VsJ10gPSAnQWJicmVjaGVuJzsKJGxhbmdbJ3VwZGF0ZSddID0gJ0FrdHVhbGlzaWVyZW4nOwokbGFuZ1sncmVwYWlyJ10gPSAnUmVwYXJpZXJlbic7CiRsYW5nWydzYXZlX2NyZWF0ZSddID0gJ1NwZWljaGVybiAmIEVyc3RlbGxlbic7CiRsYW5nWydyZXNldCddID0gJ1N0YW5kYXJkIHp1csO8Y2tzZXR6ZW4nOwokbGFuZ1snZHVwbGljYXRlJ10gPSAnRHVwbGl6aWVyZW4nOwokbGFuZ1snY2hhbmdlc3NhdmVkJ10gPSAnSWhyZSDDhG5kZXJ1bmdlbiB3dXJkZW4gZ2VzcGVpY2hlcnQuJzsKJGxhbmdbJ2NoYW5nZXNzYXZlZF9jcmVhdGUnXSA9ICdEZXIgRWludHJhZyB3dXJkZSBlcnN0ZWxsdC4gRWluZW4gd2VpdGVyZW4gZXJzdGVsbGVuPyc7CiRsYW5nWyd0ZW1wbGF0ZXJlc3RvcmVkJ10gPSAnVm9yZWluZ2VzdGVsbHRlIFZvcmxhZ2Ugd3VyZGUgd2llZGVyaGVyZ2VzdGVsbHQuJzsKJGxhbmdbJ2FyZXlvdXN1cmUnXSA9ICdXb2xsZW4gU2llIGRpZXMgd2lya2xpY2ggbMO2c2NoZW4/JzsKJGxhbmdbJ3VwJ10gPSAnTmFjaCBvYmVuJzsKJGxhbmdbJ2Rvd24nXSA9ICdOYWNoIHVudGVuJzsKJGxhbmdbJ2VkaXQnXSA9ICdCZWFyYmVpdGVuJzsKJGxhbmdbJ2NvcHknXSA9ICdEdXBsaXppZXJlbic7CiRsYW5nWydkZWxldGUnXSA9ICdMw7ZzY2hlbic7CiRsYW5nWydub3N1Y2hpZCddID0gJ0tlaW5lIHNvbGNoZSBJRCB2b3JoYW5kZW4nOwokbGFuZ1snZGVsZXRlZCddID0gJ0locmUgQXVzd2FobCB3dXJkZSBnZWzDtnNjaHQuJzsKJGxhbmdbJ2FkZCddID0gJyVzIGhpbnp1ZsO8Z2VuJzsKJGxhbmdbJ2ltcG9ydCddID0gJyVzIGltcG9ydGllcmVuJzsKJGxhbmdbJ2V4cG9ydCddID0gJyVzIGV4cG9ydGllcmVuJzsKJGxhbmdbJ2Nsb25lJ10gPSAnJXMga2xvbmVuJzsKJGxhbmdbJ2V4cG9ydF90aXRsZSddID0gJ0V4cG9ydGllcmVuJzsKJGxhbmdbJ2ltcG9ydF90aXRsZSddID0gJ0ltcG9ydGllcmVuJzsKJGxhbmdbJ2Nsb25lX3RpdGxlJ10gPSAnS2xvbmVuJzsKJGxhbmdbJ2FsaWFzJ10gPSAnQWxpYXMnOwokbGFuZ1snYWxpYXNfZHVwbGljYXRlJ10gPSAnVW5nw7xsdGlnZXMgQWxpYXM7IGplZGVyIEFsaWFzIG11c3MgZWluemlnYXJ0aWcgc2Vpbi4nOwokbGFuZ1snYWxpYXNfaW52YWxpZCddID0gJ0RlciBBbGlhcyDigIvigItpc3QgdW5nw7xsdGlnOyBlciBtdXNzIG1pdCBlaW5lbSBCdWNoc3RhYmVuIGJlZ2lubmVuIHVuZCBkYXJmIG51ciBCdWNoc3RhYmVuLCBaYWhsZW4gdW5kIFVudGVyc3RyaWNoZSBlbnRoYWx0ZW4uJzsKJGxhbmdbJ3NlYXJjaCddID0gJ1N1Y2hlJzsKJGxhbmdbJ3NlYXJjaGZvciddID0gJ1N1Y2hlIG5hY2gnOwokbGFuZ1snc2VhcmNocmVzdWx0c2ZvciddID0gJ1N1Y2hlcmdlYm5pc3NlIGbDvHInOwokbGFuZ1snZmlyc3RwYWdlJ10gPSAnwqsnOwokbGFuZ1sncHJldnBhZ2UnXSA9ICfigLknOwokbGFuZ1snbmV4dHBhZ2UnXSA9ICfigLonOwokbGFuZ1snbGFzdHBhZ2UnXSA9ICfCuyc7CiRsYW5nWydtb2R1bGVfbmFtZSddID0gJ01vZHVsbmFtZSc7CiRsYW5nWydtb2R1bGVfbmFtZV9lbXB0eSddID0gJ01vZHVsbmFtZSBpc3QgbGVlcic7CiRsYW5nWydtb2R1bGVfbmFtZV9pbnZhbGlkJ10gPSAnTW9kdWxuYW1lIGVudGjDpGx0IHVuZ8O8bHRpZ2UgWmVpY2hlbic7CiRsYW5nWydtb2R1bGVjb3BpZWQnXSA9ICdNb2R1bCBlcmZvbGdyZWljaCBrb3BpZXJ0JzsKJGxhbmdbJ3NlbGVjdF9vbmUnXSA9ICdCaXR0ZSBhdXN3w6RobGVuJzsKJGxhbmdbJ3NpemUnXSA9ICdHcsO2w59lJzsKJGxhbmdbJ21heF9sZW5ndGgnXSA9ICdtYXhpbWFsZSBMw6RuZ2UnOwokbGFuZ1snd3lzaXd5ZyddID0gJ1dZU0lXWUcnOwokbGFuZ1snZGF0ZV9mb3JtYXQnXSA9ICdEYXR1bXNmb3JtYXQnOwokbGFuZ1sndGltZV9mb3JtYXQnXSA9ICdaZWl0Zm9ybWF0JzsKJGxhbmdbJ2Zvcm1hdF90eXBlJ10gPSAnRm9ybWF0LVR5cCc7CiRsYW5nWydkaXInXSA9ICdWZXJ6ZWljaG5pcyc7CiRsYW5nWydhbGxvd2VkJ10gPSAnRXJsYXVidCc7CiRsYW5nWydleGNsdWRlX3ByZWZpeCddID0gJ1Byw6RmaXggYXVzc2NobGllw59lbic7CiRsYW5nWydpbWFnZSddID0gJ0JpbGQnOwokbGFuZ1snZmlsZSddID0gJ0RhdGVpJzsKJGxhbmdbJ3JlcXVpcmVkJ10gPSAnRXJmb3JkZXJsaWNoJzsKJGxhbmdbJ2FzY2VuZGluZyddID0gJ0F1ZnN0ZWlnZW5kJzsKJGxhbmdbJ2Rlc2NlbmRpbmcnXSA9ICdBYnN0ZWlnZW5kJzsKJGxhbmdbJ2V4dHJhJ10gPSAnRXh0cmEnOwokbGFuZ1snY29tYmluZWQnXSA9ICdLb21iaW5pZXJ0JzsKJGxhbmdbJ3Nob3dfc2Vjb25kcyddID0gJ1Nla3VuZGVuIGFuemVpZ2VuJzsKJGxhbmdbJ3ZhbHVlJ10gPSAnV2VydCc7CiRsYW5nWyd3aWR0aCddID0gJ0JyZWl0ZSc7CiRsYW5nWydtaW5fdmFsdWUnXSA9ICdNaW5pbWFsd2VydCc7CiRsYW5nWydtYXhfdmFsdWUnXSA9ICdNYXhpbWFsd2VydCc7CiRsYW5nWydpbmNyZW1lbnRfYnknXSA9ICdlcmjDtmhlbiB1bSc7CiRsYW5nWydzdWJ0eXBlJ10gPSAnVW50ZXJ0eXAnOwokbGFuZ1snc2hvd2FsbCddID0gJ0FsbGUgemVpZ2VuJzsKJGxhbmdbJ2NvbHVtbnMnXSA9ICdTcGFsdGVuJzsKJGxhbmdbJ293bmVyJ10gPSAnQmVzaXR6ZXInOwokbGFuZ1sndW50aXRsZWQnXSA9ICd1bmJlbmFubnQnOwokbGFuZ1snZmlsZW5hbWUnXSA9ICdEYXRlaS1OYW1lJzsKJGxhbmdbJ2VuY2xvc3VyZSddID0gJ1RleHRiZWdyZW56dW5nc3plaWNoZW4nOwokbGFuZ1snc2VwYXJhdG9yJ10gPSAnRmVsZHRyZW5udW5nc3plaWNoZW4nOwokbGFuZ1sndmFsdWVzJ10gPSAnV2VydGUnOwokbGFuZ1snZXJyb3Jfb3B0aW9ucmVxdWlyZWQnXSA9ICdPcHRpb24gJXMgd2lyZCB6d2luZ2VuZCBiZW7DtnRpZ3QnOwokbGFuZ1snZXJyb3JfYmFkX2V4dGVuc2lvbiddID0gJ0RpZSBEYXRlaSBoYXQgZWluZSB1bmfDvGx0aWdlIEVyd2VpdGVydW5nJzsKJGxhbmdbJ2Vycm9yX2ZpbGVfcGVybWlzc2lvbnMnXSA9ICdFcyB0cmF0ZW4gUHJvYmxlbWUgbWl0IGRlbiBEYXRlaWJlcmVjaHRpZ3VuZ2VuIGF1Zic7CiRsYW5nWydlcnJvcl9maWxlX2VtcHR5J10gPSAnS2VpbmUgRGF0ZWkgZ2VmdW5kZW4nOwokbGFuZ1snZXJyb3JfZmlsZV9ub2NzdiddID0gJ0RhdGVpIGlzdCBuaWNodCBpbSBDU1YtRm9ybWF0JzsKJGxhbmdbJ2ZpbHRlciddID0gJ0ZpbHRlcic7CiRsYW5nWydmaWx0ZXJwcm9tcHQnXSA9ICdGaWx0ZXIgJXMnOwokbGFuZ1sncGFyYW1fZmlsdGVyX21pc3NpbmcnXSA9ICdGw7xyIGRlbiBGaWx0ZXJtb2R1cyBpc3QgendpbmdlbmQgZGVyIFBhcmFtZXRlciA8ZW0+ZmlsdGVyPC9lbT4gZXJmb3JkZXJsaWNoLic7CiRsYW5nWydhbGwnXSA9ICdBbGxlJzsKJGxhbmdbJ21vZGRlc2NyaXB0aW9uJ10gPSAnTElTRSBlcmxhdWJ0IGVzIElobmVuLCBMaXN0ZW4genUgZXJzdGVsbGVuLCBkaWUgU2llIGF1ZiBJaHJlciBXZWJzaXRlIGFuemVpZ2VuIGvDtm5uZW4uJzsKJGxhbmdbJ3Bvc3RpbnN0YWxsJ10gPSAnd3VyZGUgaW5zdGFsbGllcnQnOwokbGFuZ1sncG9zdHVuaW5zdGFsbCddID0gJ3d1cmRlIGRlaW5zdGFsbGllcnQnOwokbGFuZ1snZ2VuZXJhbCddID0gJ0FsbGdlbWVpbic7CiRsYW5nWyd1c2FnZSddID0gJ1ZlcndlbmR1bmcnOwokbGFuZ1sncGVybWlzc2lvbnMnXSA9ICdCZXJlY2h0aWd1bmdlbic7CiRsYW5nWydkdXBsaWNhdGluZyddID0gJ0RpZXNlcyBNb2R1bCBkdXBsaXppZXJlbic7CiRsYW5nWyd1cGdyYWRpbmcnXSA9ICdBa3R1YWxpc2llcmVuJzsKJGxhbmdbJ3NtYXJ0eV9wbHVnaW5zJ10gPSAnU21hcnR5LUVyd2VpdGVydW5nZW4nOwokbGFuZ1sndXBncmFkZV9mcm9tJ10gPSAnQWt0dWFsaXNpZXJlbiB2b24nOwokbGFuZ1sndGVhbSddID0gJ0tvbGxla3Rpdic7CiRsYW5nWydwYXJhbXMnXSA9ICdQYXJhbWV0ZXInOwokbGFuZ1sndGl0bGVfdGVtcGxhdGVfcG9wdXBfaGVscF90aXRsZSddID0gJ1RpdGVsdm9ybGFnZSc7CiRsYW5nWydhbGlhc190ZW1wbGF0ZV9wb3B1cF9oZWxwX3RpdGxlJ10gPSAnQWxpYXN2b3JsYWdlJzsKJGxhbmdbJ3NsdWdfdGVtcGxhdGVfcG9wdXBfaGVscF90aXRsZSddID0gJ1VSTC1Wb3JsYWdlJzsKJGxhbmdbJ2hlbHBfZ2VuZXJhbCddID0gJzxoMz5BbGxnZW1laW5lIEluZm9ybWF0aW9uZW48L2gzPg0KPHA+RWluZmFjaCBhdXNnZWRyw7xja3QgZXJtw7ZnbGljaHQgSWhuZW4gTElTRSBkYXMgRXJzdGVsbGVuIHZvbiBMaXN0ZW4sIGRpZSBTaWUgYXVmIElocmVyIFdlYnNpdGUgYW56ZWlnZW4ga8O2bm5lbi4gTWl0IGRpZXNlbSBNb2R1bCBrw7ZubmVuIFNpZSBlaW5lIGVpbmZhY2hlIEZBUS0gb2RlciBUZXN0aW1vbmlhbHMtRnVua3Rpb24gZXJzdGVsbGVuLiBXZWJlbnR3aWNrbGVyIGvDtm5uZW4gRmVsZGVyIGRlZmluaWVyZW4sIHVtIGVpbnp1c2NocsOkbmtlbiwgd2VsY2hlIERhdGVuIEJlbnV0emVyIGVpbmdlYmVuIGvDtm5uZW4uIEVzIGvDtm5uZW4gZWluZSBSZWloZSB2b24gRmVsZHR5cGVuIGFuZ2VnZWJlbiB3ZXJkZW46IGVpbnplaWxpZ2UgVGV4dGVpbmdhYmUsIEtvbnRyb2xsa8Okc3RjaGVuLCBtZWhyemVpbGlnZSBUZXh0YmVyZWljaGUsIERhdHVtIGF1c3fDpGhsZW4sIERhdGVpIGhvY2hsYWRlbiwgRGF0ZWkgYXVzd8OkaGxlbiwgQXVma2xhcHBsaXN0ZW4g4oCTIHVuZCBmw7xyIGplZGVuIFR5cCBrw7ZubmVuIHp1c8OkdHpsaWNoZSBBbndlaXN1bmdlbiBmZXN0Z2VsZWd0IHdlcmRlbiwgei4gQi4gRWluZ2FiZWZlbGRncsO2w59lLCBtYXhpbWFsZSBMw6RuZ2UsIFdZU0lXWUctRWRpdG9yICwgbcO2Z2xpY2hlIEF1c3dhaGx3ZXJ0ZSwgbcO2Z2xpY2hlIERhdGVpZXJ3ZWl0ZXJ1bmdlbiwgVmVyemVpY2huaXNwZmFkZSBmw7xyIGRpZSBEYXRlaWF1c3dhaGwsIERhdHVtc2Zvcm1hdGUgdXN3LjwvcD4NCjxwPkVpbiB3aWNodGlnZXIgV2FybmhpbndlaXM6IERpZXMgaXN0IGtlaW4gSW5oYWx0c2JhdWthc3Rlbiwgd2llIGV0d2EgaW4gRHJ1cGFsLiBFcyBpc3QgZsO8ciBrbGVpbmUgQXVmbGlzdHVuZ2VuIGdlZGFjaHQsIG5pY2h0IHp1bSBTcGVpY2hlcm4gdm9uIHRhdXNlbmRlbiB2b24gRGF0ZW5zw6R0emVuOyBkaWVzIGxpZWd0IGFtIHZlcndlbmRldGVuIERhdGVuYmFua21vZGVsbCAoRUFWKS4gQXXDn2VyZGVtIHdpcmQgamVkZXMgdm9uIElobmVuIGVpbmdlZ2ViZW5lIERhdGVuYml0IGFscyBURVhULURhdGVudHlwIGdlc3BlaWNoZXJ0LCB1bmFiaMOkbmdpZyBkYXZvbiwgb2IgZXMgdmFyY2hhciwgYm9vbGVhbiwgdGltZXN0YW1wIHVzdy4gaXN0LjwvcD4NCjxkaXYgY2xhc3M9InJlZCI+U2llIGvDtm5uZW4gSW5zdGFuemVuIHZvbiBMaXN0SXRFeHRlbmRlZCBpbXBvcnRpZXJlbi4gV2VubiBTaWUgZXMgaW5zdGFsbGllcnQgaGFiZW4sIHNlaGVuIFNpZSBlaW5lIFJlZ2lzdGVya2FydGUg4oCeSW1wb3J0aWVyZW4gdm9uIExpc3RJdEV4dGVuZGVkLUluc3RhbGxhdGlvbmVu4oCcIG1pdCB3ZWl0ZXJlciBIaWxmZS48L2Rpdj4nOwokbGFuZ1snaGVscF9wYXJhbV9hY3Rpb24nXSA9ICfDnGJlcnNjaHJlaWJlbiBkZXIgU3RhbmRhcmQtQWt0aW9uLiBNw7ZnbGljaGUgV2VydGUgc2luZDoNCjx0YWJsZT4NCgk8dHI+DQoJCTx0aD5kZWZhdWx0PC90aD4NCgkJPHRkPkFuemVpZ2UgZGVyIFp1c2FtbWVuZmFzc3VuZy48L3RkPg0KCTwvdHI+DQoJPHRyPg0KCQk8dGg+ZGV0YWlsPC90aD4NCgkJPHRkPkFuemVpZ2UgZGVyIERldGFpbHNlaXRlPC90ZD4NCgk8L3RyPg0KCTx0cj4NCgkJPHRoPnNlYXJjaDwvdGg+DQoJCTx0ZD5BbnplaWdlIGRlcyBTdWNoZm9ybXVsYXJzPC90ZD4NCgk8L3RyPg0KCTx0cj4NCgkJPHRoPmNhdGVnb3J5PC90aD4NCgkJPHRkPkFuemVpZ2UgZGVyIEthdGVnb3JpZXNlaXRlOyBvcHRpb25hbGUgUGFyYW1ldGVyLCBkaWUgZGllc2UgbnVyIEFrdGlvbiBiZWVpbmZsdXNzZW46IDxjb2RlPnNob3dfaXRlbXM8L2NvZGU+LCA8Y29kZT5jb2xsYXBzZTwvY29kZT4sIDxjb2RlPm51bWJlcl9vZl9sZXZlbHM8L2NvZGU+PC90ZD4NCgk8L3RyPg0KCTx0cj4NCgkJPHRoPmFyY2hpdmU8L3RoPg0KCQk8dGQ+QW56ZWlnZSBkZXMgQXJjaGl2czwvdGQ+DQoJPC90cj4NCjwvdGFibGU+JzsKJGxhbmdbJ2hlbHBfcGFyYW1fc2hvd2FsbCddID0gJ0FsbGUgRWludHLDpGdlIHVuYWJow6RuZ2lnIHZvbiBkZXIgWmVpdHN0ZXVlcnVuZyBhbnplaWdlbi4nOwokbGFuZ1snaGVscF9wYXJhbV9jYXRlZ29yeSddID0gJ0dlYmVuIFNpZSBlaW5lbiBvZGVyIG1laHJlcmUgS29tbWEgZ2V0cmVubnRlIEFsaWFzIHZvbiBLYXRlZ29yaWUobikgYW4sIHVtIG51ciBFaW50csOkZ2UgYXVzIGRpZXNlbiBhbnp1emVpZ2VuLic7CiRsYW5nWydoZWxwX3BhcmFtX2V4Y2x1ZGVfY2F0ZWdvcnknXSA9ICdHZWJlbiBTaWUgZWluZW4gb2RlciBtZWhyZXJlIEtvbW1hIGdldHJlbm50ZSBBbGlhcyB2b24gS2F0ZWdvcmllKG4pIGFuLCB1bSBFaW50csOkZ2UgYXVzIGRpZXNlbiBhdXN6dXNjaGxpZcOfZW4uJzsKJGxhbmdbJ2hlbHBfcGFyYW1fc3ViY2F0ZWdvcnknXSA9ICdXZW5uIFNpZSBkZW4gUGFyYW1ldGVyIFwnY2F0ZWdvcnlcJyBhbmdlZ2ViZW4gaGFiZW4sIGvDtm5uZW4gU2llIG1pdCA8ZW0+dHJ1ZTwvIGVtPiBhdWNoIEVsZW1lbnRlIGF1cyBVbnRlcmthdGVnb3JpZW4gYW56ZWlnZW4uIFN0YW5kYXJkbcOkw59pZyBpc3QgZGVyIFdlcnQgYXVmIGZhbHNlIGdlc2V0enQuJzsKJGxhbmdbJ2hlbHBfcGFyYW1fZGV0YWlsdGVtcGxhdGUnXSA9ICdEaWUgRGV0YWlsdm9ybGFnZSwgZGllIFNpZSB2ZXJ3ZW5kZW4gbcO2Y2h0ZW4uJzsKJGxhbmdbJ2hlbHBfcGFyYW1fc3VtbWFyeXRlbXBsYXRlJ10gPSAnRGllIFp1c2FtbWVuZmFzc3VuZ3N2b3JsYWdlLCBkaWUgU2llIHZlcndlbmRlbiBtw7ZjaHRlbi4nOwokbGFuZ1snaGVscF9wYXJhbV9zZWFyY2h0ZW1wbGF0ZSddID0gJ0RpZSBTdWNodm9ybGFnZSwgZGllIFNpZSB2ZXJ3ZW5kZW4gbcO2Y2h0ZW4uJzsKJGxhbmdbJ2hlbHBfcGFyYW1fY2F0ZWdvcnl0ZW1wbGF0ZSddID0gJ0RpZSB6dSB2ZXJ3ZW5kZW5kZSBLYXRlZ29yaWV2b3JsYWdlJzsKJGxhbmdbJ2hlbHBfcGFyYW1fcGFnZWxpbWl0J10gPSAnTWF4aW1hbGUgQW56YWhsIGRlciBhbnp1emVpZ2VuZGVuIEVpbnRyw6RnZSAocHJvIFNlaXRlKS4gV2VubiBkaWVzZXIgUGFyYW1ldGVyIG5pY2h0IGFuZ2VnZWJlbiB3aXJkLCB3ZXJkZW4gYWxsZSBwYXNzZW5kZW4gRWludHLDpGdlIGFuZ2V6ZWlndC4gV2VubiBlcyBpc3QsIHVuZCBlcyBnaWJ0IG1laHIgRWludHLDpGdlIGFscyBpbSBQYXJhbWV0ZXIgYW5nZWdlYmVuLCB3aXJkIGRlciBUZXh0IHVuZCBMaW5rcyBhbmdlemVpZ3QsIHVtIGRhcyBTY3JvbGxlbiBkdXJjaCBkaWUgRXJnZWJuaXNzZSB6dSBlcm3DtmdsaWNoZW4nOwokbGFuZ1snaGVscF9wYXJhbV9zdGFydCddID0gJ0JlZ2lubmVuIGJlaW0gbi10ZW4gRWludHJhZyDigJMgYmVpbSBsZWVyZW4gd2VydCB3aXJkIGFiIGVyc3RlbiBFaW50cmFnIGdlc3RhcnRldC4nOwokbGFuZ1snaGVscF9wYXJhbV9udW1iZXInXSA9ICdNYXhpbWFsZSBhbnphaGwgZGVyIEVpbnRyw6RnZSAocHJvIFNlaXRlKSAtIGJlaW0gbGVlcmVuIHdlcnQgd2VyZGVuIGFsbGUgRWludHLDpGdlIGFuZ2VpemVpZ3QuIERpZXMgaXN0IGVpbiBTeW5vbnltIGbDvHIgZGllIHBhZ2VsaW1pdCBQYXJhbWV0ZXIuJzsKJGxhbmdbJ2hlbHBfcGFyYW1fZGV0YWlscGFnZSddID0gJ1NlaXRlIGbDvHIgRWludHJhZ2RldGFpbHMuIE11c3MgZWluIFNlaXRlbmFsaWFzIHNlaW4uIFdpcmQgdmVyd2VuZGV0LCBkYW1pdCBEZXRhaWxzIGluIGVpbmVyIGFuZGVyZW4gU2VpdGUgYWxzIFp1c2FtbWVuZmFzc3VuZyBhbmdlemVpZ3Qgd2VyZGVuLic7CiRsYW5nWydoZWxwX3BhcmFtX2l0ZW0nXSA9ICdEaWVzZXIgUGFyYW1ldGVyIGlzdCBudXIgZsO8ciBkaWUgRGV0YWlsYW5zaWNodC4gRXMgZXJtw7ZnbGljaHQgZGllIEFuZ2FiZSwgd2VsY2hlcyBFbGVtZW50IGltIERldGFpbC1Nb2R1cyBhbmdlemVpZ3Qgd2VyZGVuIHNvbGwuIE11c3MgZWluIEVsZW1lbnQgQWxpYXMg4oCL4oCLc2Vpbi4nOwokbGFuZ1snaGVscF9wYXJhbV9zZWFyY2hfJ10gPSAnRHVyY2hzdWNodCBlaW4gYmVzdGltbXRlcyBGZWxkLiBTaWUga8O2bm5lbiBcJ3RpdGxlXCcgdmVyd2VuZGVuIG9kZXIgZGVuIEFsaWFzIGVpbmVzIEV4dHJhLUZlbGRzLCBic3B3LiBzZWFyY2hfdGl0bGUuIEJsZWlidCB1bmJlYWNodGV0LCB3ZW5uIGRlciBQYXJhbWV0ZXIgXCdzZWFyY2hcJyBnZXNldHp0IGlzdCwgamVkb2NoIGlzdCBkaWUgS29tYmluYXRpb24gbWVocmVyZXIgc2VhcmNoXyogUGFyYW1ldGVyIG3DtmdsaWNoLic7CiRsYW5nWydoZWxwX3BhcmFtX2RlYnVnJ10gPSAnRXJtw7ZnbGljaHQgRGVidWctTW9kdXMsIEF1c2dhYmUgYWxsZXIgT2JqZWt0ZSwgQXJyYXlzIHVuZCBWYXJpYWJsZW4gZsO8ciBha3R1ZWxsZSBBa3Rpb24uJzsKJGxhbmdbJ2hlbHBfcGFyYW1feWVhciddID0gJ0VpbnRyw6RnZSBuYWNoIEphaHIgZmlsdGVybic7CiRsYW5nWydoZWxwX3BhcmFtX21vbnRoJ10gPSAnRWludHLDpGdlIG5hY2ggTW9uYXQgZmlsdGVybic7CiRsYW5nWydpbXBvcnRpbmdfd2FybmluZyddID0gJzxoMz5XaWNodGlnZSBJbmZvcm1hdGlvbjwvaDM+DQo8cD48c3Ryb25nPkF1Zm1lcmtzYW0gbGVzZW4hPC9zdHJvbmc+PC9wPg0KPHA+TGlzdEl0RXh0ZW5kZWQgbXVzcyBhdWYgZGllIGxldHp0ZSBiZWthbm50ZW4gVmVyc2lvbiAoMS40LjEpIGFrdHVhbGlzaWVydCB3ZXJkZW47PGJyIC8+ZWluIFZlcnN1Y2gsIExpc3RJdEV4dGVuZGVkLUluc3RhbnplbiB6dSBpbXBvcnRpZXJlbiwgZGllIG5pY2h0IGF1ZiBkZW0gYWt0dWVsbHN0ZW4gU3RhbmQgc2luZCwga2FubiB6dSB1bnZvbGxzdMOkbmRpZ2VuIExJU0UtSW5zdGFuemVuIGbDvGhyZW4uPC9wPic7CiRsYW5nWycwMDAwMCddID0gJyVzOiB1bmJla2FubnRlciBMSVNFLUZlaGxlcic7CiRsYW5nWycwMDAwMSddID0gJyVzOiBMSVNFLUZlaGxlciAlcyEnOwokbGFuZ1snMDAwMDInXSA9ICclczogTElTRS1EYXRlbmJhbmtmZWhsZXIgJXMhJzsKJGxhbmdbJzAwMDEwJ10gPSAnJXM6IExJU0UtS29uZmlndXJhdGlvbnN2YXJpYWJsZW4ga8O2bm5lbiBuaWNodCBnZXNjaHJpZWJlbiwgc29uZGVybiBudXIgZ2VsZXNlbiB3ZXJkZW4uJzsKJGxhbmdbJzAwMDMwJ10gPSAnJXM6IERpZSBFcnN0ZWxsdW5nIGRlcyBWZXJ6ZWljaG5pc3NlcyAlcyBpc3QgZmVobGdlc2NobGFnZW4uJzsKPz4=]]></data>
	</file>
	<file>
	  <filename>/lang/ext/es_ES.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKJGxhbmdbJ2dyZWVuJ10gPSAnVmVyZGUnOwokbGFuZ1sneWVsbG93J10gPSAnQW1hcmlsbG8nOwokbGFuZ1sncmVkJ10gPSAnUm9qbyc7CiRsYW5nWydpdGVtJ10gPSAnSXRlbSc7CiRsYW5nWydpdGVtcyddID0gJ0l0ZW1zJzsKJGxhbmdbJ2ZpZWxkZGVmJ10gPSAnRGVmaW5pY2nDs24gZGUgY2FtcG8nOwokbGFuZ1snZmllbGRkZWZzJ10gPSAnRGVmaW5pY2lvbmVzIGRlIGNhbXBvJzsKJGxhbmdbJ3RlbXBsYXRlJ10gPSAnUGxhbnRpbGxhJzsKJGxhbmdbJ3RlbXBsYXRlcyddID0gJ1BsYW50aWxsYXMnOwokbGFuZ1snY2F0ZWdvcnknXSA9ICdDYXRlZ29yw61hJzsKJGxhbmdbJ2NhdGVnb3JpZXMnXSA9ICdDYXRlZ29yaWFzJzsKJGxhbmdbJ29wdGlvbiddID0gJ09wY2nDs24nOwokbGFuZ1snb3B0aW9ucyddID0gJ09wY2lvbmVzJzsKJGxhbmdbJ21haW50ZW5hbmNlJ10gPSAnTWFudGVuaW1pZW50byc7CiRsYW5nWydiYWNrJ10gPSAnUmVncmVzYXInOwokbGFuZ1snYWJvdXQnXSA9ICdBY2VyY2EgZGUnOwokbGFuZ1snd2hhdHNuZXcnXSA9ICdRdWUgaGF5IGRlIG51ZXZvJzsKJGxhbmdbJ3Byb21wdF9maXhfZmllbGRkZWZzJ10gPSAnSW50ZW50YXIgcmVwYXJhciBsYXMgdGFibGFzIGRlIGxhcyBkZWZpbmljaW9uZXMgZGUgY2FtcG8nOwokbGFuZ1snbWVzc2FnZV9maWVsZGRlZnNfZml4ZWQnXSA9ICdEZWZpbmljaW9uZXMgZGUgY2FtcG8gcmVwYXJhZGFzJzsKJGxhbmdbJ21lc3NhZ2VfaW5zdGFuY2VzX2NvcGllZCddID0gJ1RvZGFzIGxhcyBpbnN0YW5jaWFzIGhhbiBzaWRvIGNsb25hZGFzJzsKJGxhbmdbJ2l0ZW1fdGl0bGUnXSA9ICdUw610dWxvJzsKJGxhbmdbJ3Byb21wdF9pdGVtX3RpdGxlJ10gPSAnVMOtdHVsbyBkZWwgw610ZW0nOwokbGFuZ1snYWN0aXZlJ10gPSAnQWN0aXZvJzsKJGxhbmdbJ2NyZWF0ZV90aW1lJ10gPSAnRmVjaGEgZGUgY3JlYWNpw7NuJzsKJGxhbmdbJ21vZGlmaWVkX3RpbWUnXSA9ICdGZWNoYSBkZSBtb2RpZmljYWNpw7NuJzsKJGxhbmdbJ3RpbWVfY29udHJvbCddID0gJ1VzYXIgY29udHJvbCBob3JhcmlvJzsKJGxhbmdbJ3N0YXJ0X3RpbWUnXSA9ICdIb3JhIGRlIGluaWNpbyc7CiRsYW5nWydlbmRfdGltZSddID0gJ0hvcmEgZGUgZmluJzsKJGxhbmdbJ2l0ZW1fdGl0bGVfZW1wdHknXSA9ICdFbCB0w610dWxvIGRlbCDDrXRlbSBlc3TDoSB2YWPDrW8nOwokbGFuZ1sncmVxdWlyZWRfZmllbGRfZW1wdHknXSA9ICdDYW1wbyByZXF1ZXJpZG8gZXN0w6EgdmFjw61vJzsKJGxhbmdbJ3Rvb19sb25nJ10gPSAnRWwgdmFsb3IgZGVsIGNhbXBvIGV4Y2VkZSBsYSBsb25naXR1ZCBtw6F4aW1hJzsKJGxhbmdbJ2FwcHJvdmUnXSA9ICdFc3RhYmxlY2VyIGVzdGFkbyBjb21vIFwnQWN0aXZvXCcnOwokbGFuZ1sncmV2ZXJ0J10gPSAnRXN0YWJsZWNlciBlc3RhZG8gY29tbyBcJ0luYWN0aXZvXCcnOwokbGFuZ1sndG9nZ2xlX3N0YXR1cyddID0gJ0NhbWJpYXIgZWwgZXN0YWRvJzsKJGxhbmdbJ3NlbGVjdF9pdGVtJ10gPSAnU2VsZWNjaW9uYXIgw610ZW0nOwokbGFuZ1snc3VibWl0X29yZGVyJ10gPSAnR3VhcmRhciBvcmRlbic7CiRsYW5nWydkZWxldGVfc2VsZWN0ZWQnXSA9ICdCb3JyYXIgc2VsZWNjacOzbiAlcyc7CiRsYW5nWydhcmV5b3VzdXJlX2RlbGV0ZW11bHRpcGxlJ10gPSAnwr9Fc3TDoSBzZWd1cm8gZGUgYm9ycmFyIGVzdG9zICVzPyc7CiRsYW5nWydzZWxlY3RfYWxsJ10gPSAnU2VsZWNjaW9uYXIgdG9kbyc7CiRsYW5nWydlcnJvcl9zdGFydGdyZWF0ZXJlbmQnXSA9ICdMYSBmZWNoYSBkZSBpbmljaW8gZXMgc3VwZXJpb3IgYSBsYSBmZWNoYSBkZSBmaW4nOwokbGFuZ1snaXRlbV9hbGlhc19leGlzdHMnXSA9ICdFbCBhbGlhcyBkZSDDrXRlbSB5YSBleGlzdGUuIEVsIGFsaWFzIGRlYmUgc2VyIMO6bmljby4nOwokbGFuZ1sncmV0dXJuX3VybCddID0gJ1JlZ3Jlc2FyJzsKJGxhbmdbJ21haW5fc2V0dGluZ3MnXSA9ICdBanVzdGVzIHByaW5jaXBhbGVzJzsKJGxhbmdbJ2VkaXRmaWVsZGRlZiddID0gJ0VkaXRhciBsYSBkZWZpbmljacOzbiBkZSBjYW1wbyc7CiRsYW5nWydmaWVsZGRlZl9uYW1lJ10gPSAnTm9tYnJlJzsKJGxhbmdbJ2ZpZWxkZGVmX2hlbHAnXSA9ICdUaXAgZGUgYXl1ZGEnOwokbGFuZ1snZmllbGRkZWZfdHlwZSddID0gJ1RpcG8nOwokbGFuZ1snZmllbGRkZWZfZGVwcyddID0gJ0RlcGVuZGVuY2lhcyBkZWwgbcOzZHVsbyc7CiRsYW5nWydmaWVsZGRlZl9kZXBzX21pc3NpbmcnXSA9ICdVbmEgbyBtw6FzIGRlcGVuZGVuY2lhcyBubyBzZSBlbmNvbnRyYXJvbi4gUG9yIGZhdm9yIGluc3RhbGUgdG9kb3MgbG9zIG3Ds2R1bG9zIHJlcXVlcmlkb3MgcGFyYSB1c2FyIGVzdGUgY2FtcG8uJzsKJGxhbmdbJ2ZpZWxkZGVmX3NjYW4nXSA9ICdFc2NhbmVhciBkZWZpbmljaW9uZXMgZGUgY2FtcG8nOwokbGFuZ1snZmllbGRkZWZfc2Nhbm5lZCddID0gJ0RlZmluaWNpb25lcyBkZSBjYW1wbyBlc2NhbmVhZGFzJzsKJGxhbmdbJ2ZpZWxkZGVmX3R5cGVfbm90c2V0J10gPSAnRWwgdGlwbyBkZSBkZWZpbmljaW9uZXMgZGUgY2FtcG8gbm8gc2UgaGEgZXN0YWJsZWNpZG8nOwokbGFuZ1snZmllbGRkZWZfZnJpZW5kbHl0eXBlJ10gPSAnVGlwbyBhbWlnYWJsZSc7CiRsYW5nWydmaWVsZGRlZl9vcmlnaW5hdG9yJ10gPSAnT3JpZ2VuJzsKJGxhbmdbJ2ZpZWxkZGVmX21heF9sZW5ndGgnXSA9ICdMb25naXR1ZCBtw6F4aW1hJzsKJGxhbmdbJ2ZpZWxkZGVmX3JlcXVpcmVkJ10gPSAnUmVxdWVyaWRvJzsKJGxhbmdbJ3JlZ2lzdGVyZWRfZmllbGRkZWZzJ10gPSAnRGVmaW5pY2lvbmVzIGRlIGNhbXBvIHJlZ2lzdHJhZGFzJzsKJGxhbmdbJ2ZpZWxkZGVmX25hbWVfZW1wdHknXSA9ICdMYSBkZWZpbmljacOzbiBkZSBjYW1wbyBlc3TDoSB2YWPDrWEnOwokbGFuZ1snZmllbGRkZWZfbmFtZV9leGlzdHMnXSA9ICdFbCBub21icmUgZGUgZGVmaW5pY2nDs24gZGUgY2FtcG8geWEgZXhpc3RlJzsKJGxhbmdbJ2lzX2RlZmF1bHQnXSA9ICdFc3RhYmxlY2lkbyBhIFwncG9yIGRlZmVjdG9cJyc7CiRsYW5nWydzdGF0dXNfZGVmYXVsdCddID0gJ0VzdGFibGVjZXIgYSBcJ3BvciBkZWZlY3RvXCcnOwokbGFuZ1snZmllbGRkZWZfdGVtcGxhdGUnXSA9ICdQbGFudGlsbGEnOwokbGFuZ1snZmllbGRkZWZfVGV4dElucHV0J10gPSAnSW5ncmVzbyBkZSB0ZXh0byc7CiRsYW5nWydmaWVsZGRlZl9DaGVja2JveCddID0gJ0Nhc2lsbGEnOwokbGFuZ1snZmllbGRkZWZfVGV4dEFyZWEnXSA9ICdBcmVhIGRlIHRleHRvJzsKJGxhbmdbJ2ZpZWxkZGVmX1NlbGVjdERhdGUnXSA9ICdTZWxlY2Npw7NuIGRlIGZlY2hhJzsKJGxhbmdbJ2ZpZWxkZGVmX1NlbGVjdERhdGVUaW1lJ10gPSAnU2VsZWNjacOzbiBkZSBmZWNoYS9ob3JhJzsKJGxhbmdbJ2ZpZWxkZGVmX2R0X2JhY2t3YXJkc19jb21wYXRpYmlsaXR5J10gPSAnQ29tcGF0aWJpbGlkYWQgZW4gcmV2ZXJzYSc7CiRsYW5nWydmaWVsZGRlZl9Ecm9wZG93biddID0gJ01lbsO6IGRlc3BsZWdhYmxlJzsKJGxhbmdbJ2ZpZWxkZGVmX0NvbnRlbnRQYWdlcyddID0gJ1DDoWdpbmFzIGRlIGNvbnRlbmlkbyc7CiRsYW5nWydmaWVsZGRlZl9TZWxlY3RGaWxlJ10gPSAnU2VsZWN0b3IgZGUgYXJjaGl2byc7CiRsYW5nWydmaWVsZGRlZl9SYWRpb0dyb3VwJ10gPSAnQm90w7NuIGNpcmN1bGFyJzsKJGxhbmdbJ2VuYWJsZV9qcXVpJ10gPSAnVXNhciBib3RvbmVzIEpRdWVyeVVJJzsKJGxhbmdbJ2ZpZWxkZGVmX011bHRpU2VsZWN0J10gPSAnU2VsZWNjacOzbiBtw7psdGlwbGUnOwokbGFuZ1snZmllbGRkZWZfQ2hlY2tib3hHcm91cCddID0gJ0dydXBvIGRlIGNhc2lsbGFzJzsKJGxhbmdbJ2ZpZWxkZGVmX0ZpbGVVcGxvYWQnXSA9ICdTdWJpciBhcmNoaXZvJzsKJGxhbmdbJ2ZpZWxkZGVmX0NvbG9yUGlja2VyJ10gPSAnU2VsZWN0b3IgZGUgY29sb3InOwokbGFuZ1snZmllbGRkZWZfVGFncyddID0gJ0V0aXF1ZXRhcyc7CiRsYW5nWydmaWVsZGRlZl9UYWJzJ10gPSAnUGVzdGHDsWEnOwokbGFuZ1snZmllbGRkZWZfQmFja2VuZFRleHQnXSA9ICdUZXh0byBwYXJhIHVzdWFyaW9zIGRlbCBtw7NkdWxvJzsKJGxhbmdbJ2ZpZWxkZGVmX0JUX2NvbnRhaW5lcl9kaXYnXSA9ICdUaXBvIGRlIGNvbnRlbmVkb3IgRElWJzsKPz4=]]></data>
	</file>
	<file>
	  <filename>/lang/ext/fr_FR.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKJGxhbmdbJ2ludmFsaWRfY2hhcmFjdGVycyddID0gJ0xlcyBjYXJhY3TDqHJlcyAlcyBuZSBzb250IHBhcyBhdXRvcmlzw6lzIGRhbnMgbGUgY2hhbXAgJXMnOwokbGFuZ1snZ3JlZW4nXSA9ICdWZXJ0JzsKJGxhbmdbJ3llbGxvdyddID0gJ0phdW5lJzsKJGxhbmdbJ3JlZCddID0gJ1JvdWdlJzsKJGxhbmdbJ2xpc2VfbW9kZV9saXN0X25hbWUnXSA9ICdNb2RlIGxpc3RlJzsKJGxhbmdbJ2xpc2VfbW9kZV9nbG9iYWxfbmFtZSddID0gJ01vZGUgZ2xvYmFsJzsKJGxhbmdbJ2xpc2VfbW9kZV9sb2NhbF9uYW1lJ10gPSAnTW9kZSBsb2NhbCc7CiRsYW5nWydpdGVtJ10gPSAnRWzDqW1lbnQnOwokbGFuZ1snaXRlbXMnXSA9ICdFbMOpbWVudHMnOwokbGFuZ1snZ2xvYmFsJ10gPSAnUGFyYW3DqHRyZXMgZ2xvYmF1eCc7CiRsYW5nWydsb2NhbF9zZXR0aW5ncyddID0gJ1BhcmFtw6h0cmVzJzsKJGxhbmdbJ2ZpZWxkZGVmJ10gPSAnRMOpZmluaXRpb24gZGUgY2hhbXAnOwokbGFuZ1snZmllbGRkZWZzJ10gPSAnRMOpZmluaXRpb25zIGRlIGNoYW1wJzsKJGxhbmdbJ3RlbXBsYXRlJ10gPSAnR2FiYXJpdCc7CiRsYW5nWyd0ZW1wbGF0ZXMnXSA9ICdHYWJhcml0cyc7CiRsYW5nWydjYXRlZ29yeSddID0gJ0NhdMOpZ29yaWUnOwokbGFuZ1snY2F0ZWdvcmllcyddID0gJ0NhdMOpZ29yaWVzJzsKJGxhbmdbJ29wdGlvbiddID0gJ09wdGlvbic7CiRsYW5nWydvcHRpb25zJ10gPSAnT3B0aW9ucyc7CiRsYW5nWydtYWludGVuYW5jZSddID0gJ01haW50ZW5hbmNlJzsKJGxhbmdbJ2JhY2snXSA9ICdQYWdlIHByw6ljw6lkZW50ZSc7CiRsYW5nWydhYm91dCddID0gJ0EgcHJvcG9zJzsKJGxhbmdbJ3doYXRzbmV3J10gPSAnTm91dmVhdXTDqXMnOwokbGFuZ1sncHJvbXB0X2ZpeF9maWVsZGRlZnMnXSA9ICdUZW50ZXIgdW5lIHLDqXBhcmF0aW9uIGRlcyB0YWJsZXMgZGVzIGTDqWZpbml0aW9ucyBkZSBjaGFtcHMnOwokbGFuZ1snbWVzc2FnZV9maWVsZGRlZnNfZml4ZWQnXSA9ICdMZXMgZMOpZmluaXRpb25zIGRlIGNoYW1wcyBvbnQgw6l0w6kgcsOpcGFyw6llcyBzdXIgdG91dGVzIGxlcyBpbnN0YW5jZXMnOwokbGFuZ1snbWVzc2FnZV9pbnN0YW5jZXNfY29waWVkJ10gPSAnVG91dGVzIGxlcyBpbnN0YW5jZXMgb250IMOpdMOpIGNsb27DqWVzJzsKJGxhbmdbJ2l0ZW1fdGl0bGUnXSA9ICdUaXRyZSc7CiRsYW5nWydwcm9tcHRfaXRlbV90aXRsZSddID0gJ1RpdHJlIGRlIGxcJ8OpbMOpbWVudCc7CiRsYW5nWydwcm9tcHRfb2YnXSA9ICdzdXInOwokbGFuZ1snYWN0aXZlJ10gPSAnQWN0aWYnOwokbGFuZ1snY3JlYXRlX3RpbWUnXSA9ICdEYXRlIGRlIGNyw6lhdGlvbic7CiRsYW5nWydtb2RpZmllZF90aW1lJ10gPSAnRGF0ZSBkZSBtb2RpZmljYXRpb24nOwokbGFuZ1sndGltZV9jb250cm9sJ10gPSAnVXRpbGlzZXIgdW5lIGRhdGUgZFwnZXhwaXJhdGlvbic7CiRsYW5nWydzdGFydF90aW1lJ10gPSAnRGF0ZSBkZSBkw6lidXQnOwokbGFuZ1snZW5kX3RpbWUnXSA9ICdEYXRlIGRlIGZpbic7CiRsYW5nWydpdGVtX3RpdGxlX2VtcHR5J10gPSAnTGUgdGl0cmUgZGUgbFwnw6lsw6ltZW50IGVzdCB2aWRlJzsKJGxhbmdbJ3JlcXVpcmVkX2ZpZWxkX2VtcHR5J10gPSAnVW4gY2hhbXAgcmVxdWlzIGVzdCB2aWRlJzsKJGxhbmdbJ3Rvb19sb25nJ10gPSAnTGEgdmFsZXVyIGR1IGNoYW1wIGV4Y8OoZGUgbGEgdGFpbGxlIG1heGltYWxlJzsKJGxhbmdbJ2FwcHJvdmUnXSA9ICdSZW5kcmUgYWN0aWYnOwokbGFuZ1sncmV2ZXJ0J10gPSAnUmVuZHJlIGluYWN0aWYnOwokbGFuZ1sndG9nZ2xlX3N0YXR1cyddID0gJ01vZGlmaWVyIGxlIHN0YXR1dCc7CiRsYW5nWydzZWxlY3RfaXRlbSddID0gJ1PDqWxlY3Rpb25uZXIgdW4gw6lsw6ltZW50JzsKJGxhbmdbJ3N1Ym1pdF9vcmRlciddID0gJ0VucmVnaXN0cmVyIGxlcyBwb3NpdGlvbnMnOwokbGFuZ1snZGVsZXRlX3NlbGVjdGVkJ10gPSAnU3VwcHJpbWVyIGxlcyDDqWzDqW1lbnRzIHPDqWxlY3Rpb25uw6lzICVzJzsKJGxhbmdbJ2FyZXlvdXN1cmVfZGVsZXRlbXVsdGlwbGUnXSA9ICfDinRlcy12b3VzIHPDu3IgZGUgdm91bG9pciBzdXBwcmltZXIgdG91cyBsZXMgJXMgPyc7CiRsYW5nWydzZWxlY3RfYWxsJ10gPSAnVG91dCBzw6lsZWN0aW9ubmVyJzsKJGxhbmdbJ2Vycm9yX3N0YXJ0Z3JlYXRlcmVuZCddID0gJ0xhIGRhdGUgZGUgZMOpYnV0IGVzdCBwbHVzIHLDqWNlbnRlIHF1ZSBsYSBkYXRlIGRlIGZpbi4nOwokbGFuZ1snaXRlbV9hbGlhc19leGlzdHMnXSA9ICdDZXQgYWxpYXMgZXhpc3RlIGTDqWrDoC4gVW4gYWxpYXMgZG9pdCDDqnRyZSB1bmlxdWUuJzsKJGxhbmdbJ3JldHVybl91cmwnXSA9ICdSZXZlbmlyJzsKJGxhbmdbJ3BhdGhjb250YWluc3ZhcnMnXSA9ICdDZSBjaGFtcCBwb3VycmEgw6p0cmUgw6lkaXTDqSBhcHLDqHMgYXZvaXIgc2F1dsOpIHVuZSBwcmVtacOocmUgZm9pcyBsZSAlcyc7CiRsYW5nWyd1cmwnXSA9ICdFbnRyZXogdW5lIFVSTCBvdSB1dGlsaXNleiBjZWxsZSBwcm9wb3PDqWUnOwokbGFuZ1snaXRlbV92YXJfaGVscF9pdGVtX2lkJ10gPSAnU2kgbFwnSUQgZGUgbFwnw6lsw6ltZW50IChpdGVtX2lkKSBlc3QgcmVuc2VpZ27DqWUsIGxlcyDDqWzDqW1lbnRzIHNvbnQgY2Vuc8OpcyBleGlzdGVyIGRhbnMgbGEgYmFzZSBkZSBkb25uw6llcy4gU2kgdm91cyBpbXBvcnRleiBkZXMgw6lsw6ltZW50cyBub3V2ZWF1eCwgaWdub3JleiBjZSBjaGFtcC4nOwokbGFuZ1snaXRlbV92YXJfaGVscF9jYXRlZ29yeV9pZCddID0gJ1NpIGxcJ0lEIGRlIGNhdMOpZ29yaWUgKGNhdGVnb3J5X2lkKSBlc3QgcmVuc2VpZ27DqWUsIGxcJ8OpbMOpbWVudCBzZXJhIGluc8OpcsOpIGRhbnMgY2V0dGUgY2F0w6lnb3JpZS4gU2kgbFwnSUQgZGUgY2F0w6lnb3JpZSBlc3QgcmVuc2VpZ27DqWUgbWFpcyBuXCdleGlzdGUgcGFzLCBlbGxlIGVzdCBpZ25vcsOpZSBldCBsYSBjYXTDqWdvcmllIHBhciBkw6lmYXV0IGVzdCB1dGlsaXPDqWUgw6AgbGEgcGxhY2UuJzsKJGxhbmdbJ2l0ZW1fdmFyX2hlbHBfdGl0bGUnXSA9ICdUaXRyZSBkZSBsXCfDqWzDqW1lbnQgdmlzaWJsZSBkYW5zIGxcJ1VSTCBxdWkgZMOpY3JpdCBsXCfDqWzDqW1lbnQuJzsKJGxhbmdbJ2l0ZW1fdmFyX2hlbHBfYWxpYXMnXSA9ICdMXCdhbGlhcyBkZSBsXCfDqWzDqW1lbnQgZMOpdGVybWluZSB1biBub20gaW5mb3JtYXRpY28tY29tcGF0aWJsZSBkZSBsXCfDqWzDqW1lbnQuIExcJ2FsaWFzIGVzdCB1bmlxdWUgcG91ciBjaGFxdWUgw6lsw6ltZW50Lic7CiRsYW5nWydpdGVtX3Zhcl9oZWxwX3VybCddID0gJ1VSTCBwZXJzb25uYWxpc8OpZSBkZSBsXCfDqWzDqW1lbnQuIERvaXQgw6p0cmUgdW5pcXVlIHBvdXIgY2hhcXVlIMOpbMOpbWVudCBldCBwb3VyIHRvdXQgbGUgQ01TLic7CiRsYW5nWydpdGVtX3Zhcl9oZWxwX3Bvc2l0aW9uJ10gPSAnVm91cyBwb3V2ZXogZMOpZmluaXIgbGEgcG9zaXRpb24gZGVzIMOpbMOpbWVudHMgY2UgcXVpIGTDqXRlcm1pbmUgbGV1ciBvcmRyZSBkXCdhZmZpY2hhZ2UuJzsKJGxhbmdbJ2l0ZW1fdmFyX2hlbHBfYWN0aXZlJ10gPSAnQ2V0dGUgb3B0aW9uIHZhIGTDqWZpbmlyIGxcJ8OpbMOpbWVudCBzb2l0IGFjdGlmLCBzb2l0IGluYWN0aWYuJzsKJGxhbmdbJ2l0ZW1fdmFyX2hlbHBfc3RhcnRfdGltZSddID0gJ0TDqWZpbmlyIGxhIGRhdGUgw6AgbGFxdWVsbGUgdm91cyBzb3VoYWl0ZXogYWZmaWNoZXIgY2V0IMOpbMOpbWVudC4nOwokbGFuZ1snaXRlbV92YXJfaGVscF9lbmRfdGltZSddID0gJ0TDqWZpbmlyIGxhIGRhdGUgw6AgbGFxdWVsbGUgdm91cyBzb3VoYWl0ZXogY2FjaGVyIGNldCDDqWzDqW1lbnQuJzsKJGxhbmdbJ2l0ZW1fdmFyX2hlbHBfb3duZXInXSA9ICdEw6lmaW5pciBsXCdJRCBkXCd1dGlsaXNhdGV1ciBhZG1pbiBwb3VyIGNldCDDqWzDqW1lbnQsIHBvdXIgZMOpZmluaXIgbGUgcHJvcHJpw6l0YWlyZS4nOwokbGFuZ1snaXRlbV92YXJfaGVscF9rZXkxJ10gPSAnRMOpZmluaXIgbFwnaWRlbnRpZmlhbnQgYWRkaXRpb25uZWwgXCdrZXkxXCcgcG91ciBjZXQgw6lsw6ltZW50JzsKJGxhbmdbJ2l0ZW1fdmFyX2hlbHBfa2V5MiddID0gJ0TDqWZpbmlyIGxcJ2lkZW50aWZpYW50IGFkZGl0aW9ubmVsIFwna2V5MlwnIHBvdXIgY2V0IMOpbMOpbWVudCc7CiRsYW5nWydpdGVtX3Zhcl9oZWxwX2tleTMnXSA9ICdEw6lmaW5pciBsXCdpZGVudGlmaWFudCBhZGRpdGlvbm5lbCBcJ2tleTNcJyBwb3VyIGNldCDDqWzDqW1lbnQnOwokbGFuZ1snbWFpbl9zZXR0aW5ncyddID0gJ1BhcmFtw6h0cmVzIHByaW5jaXBhdXgnOwokbGFuZ1snZWRpdGZpZWxkZGVmJ10gPSAnTW9kaWZpZXIgbGEgZMOpZmluaXRpb24gZGUgY2hhbXAnOwokbGFuZ1snZmllbGRkZWZfbmFtZSddID0gJ05vbSc7CiRsYW5nWydmaWVsZGRlZl9oZWxwJ10gPSAnQXN0dWNlJzsKJGxhbmdbJ2ZpZWxkZGVmX3R5cGUnXSA9ICdUeXBlJzsKJGxhbmdbJ2ZpZWxkZGVmX2RlcHMnXSA9ICdEw6lwZW5kYW5jZXMgZHUgbW9kdWxlJzsKJGxhbmdbJ2ZpZWxkZGVmX2RlcHNfbWlzc2luZyddID0gJ1VuZSBvdSBwbHVzaWV1cnMgZMOpcGVuZGFuY2VzIGRlIG1vZHVsZSBzb250IG1hbnF1YW50ZShzKS4gTWVyY2kgZFwnaW5zdGFsbGVyIHRvdXMgbGVzIG1vZHVsZXMgcmVxdWlzIGFmaW4gZFwndXRpbGlzZXIgY2UgY2hhbXAuJzsKJGxhbmdbJ2ZpZWxkZGVmX3NjYW4nXSA9ICdTY2FubmVyIGxlcyBkw6lmaW5pdGlvbnMgZGUgY2hhbXBzJzsKJGxhbmdbJ2ZpZWxkZGVmX3NjYW5uZWQnXSA9ICdMZXMgZMOpZmluaXRpb25zIGRlIGNoYW1wcyBvbnQgw6l0w6kgc2Nhbm7DqWVzJzsKJGxhbmdbJ2ZpZWxkZGVmX3R5cGVfbm90c2V0J10gPSAnTGUgdHlwZSBkZSBkw6lmaW5pdGlvbiBkZSBjaGFtcCBuXCdlc3QgcGFzIGTDqWZpbmknOwokbGFuZ1snZmllbGRkZWZfZnJpZW5kbHl0eXBlJ10gPSAnVHlwZSAiY29udml2aWFsIic7CiRsYW5nWydmaWVsZGRlZl9vcmlnaW5hdG9yJ10gPSAnU291cmNlJzsKJGxhbmdbJ2ZpZWxkZGVmX21heF9sZW5ndGgnXSA9ICdUYWlsbGUgbWF4aW1hbGUnOwokbGFuZ1snZmllbGRkZWZfcmVxdWlyZWQnXSA9ICdSZXF1aXMnOwokbGFuZ1sncmVnaXN0ZXJlZF9maWVsZGRlZnMnXSA9ICdEw6lmaW5pdGlvbnMgZGUgY2hhbXBzIGTDqWZpbmllcyc7CiRsYW5nWydmaWVsZGRlZl9uYW1lX2VtcHR5J10gPSAnTGUgbm9tIGRlIGxhIGTDqWZpbml0aW9uIGRlIGNoYW1wIGVzdCB2aWRlJzsKJGxhbmdbJ2ZpZWxkZGVmX25hbWVfZXhpc3RzJ10gPSAnQ2Ugbm9tIGRlIGTDqWZpbml0aW9uIGRlIGNoYW1wIGV4aXN0ZSBkw6lqw6AnOwokbGFuZ1snZmllbGRkZWZfYWxpYXNfZXhpc3RzJ10gPSAnQ2V0IGFsaWFzIGRlIGTDqWZpbml0aW9uIGRlIGNoYW1wIGV4aXN0ZSBkw6lqw6AuIENldCBhbGlhcyBkb2l0IMOqdHJlIHVuaXF1ZS4nOwokbGFuZ1snZmllbGRkZWZfaXNfdW5pcXVlJ10gPSAnQ2V0dGUgZMOpZmluaXRpb24gZGUgY2hhbXAgZXN0IHVuaXF1ZSwgdm91cyBuZSBwb3V2ZXogZW4gYXZvaXIgcGx1cyBkXCd1bmUuJzsKJGxhbmdbJ2ZpZWxkZGVmX2ltYWdlJ10gPSAnRXN0IHN1cHBvc8OpIMOqdHJlIHVuZSBpbWFnZSc7CiRsYW5nWydpbnZhbGlkJ10gPSAnTGEgdmFsZXVyIGR1IGNoYW1wIGVzdCBpbnZhbGlkZSc7CiRsYW5nWydzdGF0dXNfcmVxdWlyZWQnXSA9ICdSZW5kcmUgXCdyZXF1aXNcJyc7CiRsYW5nWydzdGF0dXNfb3B0aW9uYWwnXSA9ICdSZW5kcmUgXCdvcHRpb25uZWxcJyc7CiRsYW5nWydpc19kZWZhdWx0J10gPSAnRXN0IGTDqWZpbmkgXCdwYXIgZMOpZmF1dFwnJzsKJGxhbmdbJ3N0YXR1c19kZWZhdWx0J10gPSAnRMOpZmluaXIgXCdwYXIgZMOpZmF1dFwnJzsKJGxhbmdbJ2hlbHB0ZXh0X3RpdGxlJ10gPSAnSW5zdHJ1Y3Rpb25zIHBvc3NpYmxlcyBkZSBkw6lmaW5pdGlvbiBkZSBjaGFtcCBwb3VyIGxlIGNoYW1wIGV4dHJhIDonOwokbGFuZ1snZmllbGRkZWZfdGVtcGxhdGUnXSA9ICdHYWJhcml0JzsKJGxhbmdbJ2ZpZWxkX3NlYXJjaF9pbmRleCddID0gJ0F1dG9yaXNlIGNlIGNoYW1wIMOgIMOqdHJlIGluZGV4w6kgcGFyIGxhIHJlY2hlcmNoZSBnbG9iYWxlJzsKJGxhbmdbJ3Byb21wdF9yZWluZGV4X2RvX3NlYXJjaCddID0gJ1JlLWluZGV4ZSBsYSByZWNoZXJjaGUgw6AgbFwnZW52b2kgKG91IHN1cHByaW1lIGxlcyBtb3RzIHNpIGxhIGNhc2UgY2ktZGVzc3VzIGVzdCBkw6ljb2Now6llKSc7CiRsYW5nWydmaWVsZGRlZl9zZWFyY2hfaW5kZXhfaGVscCddID0gJ0NvY2hlciBjZXR0ZSBjYXNlIHZhIGZhaXJlIHF1ZSBjZSBjaGFtcCBzZXJhIGluZGV4w6kgcGFyIGxhIHJlY2hlcmNoZSBnbG9iYWxlLCDDoCBsYSBjcsOpYXRpb24gZGUgbm91dmVhdXggw6lsw6ltZW50cywgw6AgbFwnw6lkaXRpb24gZFwnw6lsw6ltZW50cywgb3Ugw6AgbGEgcsOpLWluZGV4YXRpb24gZGUgdG91dCBsZSBjb250ZW51IGR1IG1vZHVsZSBkZSByZWNoZXJjaGUgc8OpbGVjdGlvbm7DqS4nOwokbGFuZ1snd2FybmluZ19yZWluZGV4X3NlYXJjaF9ub3cnXSA9ICdNZXJjaSBkZSBub3RlciBxdWUgw6dhIHBldXQgw6p0cmUgbGVudCBzZWxvbiBsZSBub21icmUgZFwnZW5yZWdpc3RyZW1lbnRzLic7CiRsYW5nWyd3YXJuaW5nX3JlaW5kZXhfc2VhcmNoJ10gPSAnTWVyY2kgZGUgbm90ZXIgcXVlIGJpZW4gcXVlIGNlIG1vZHVsZSBuXCdhaXQgcGFzIMOpdMOpIGNvbsOndSBwb3VyIHN1cHBvcnRlciB1biBncmFuZCBub21icmUgZFwnw6lsw6ltZW50cywgaWwgZXN0IHJlY29ubnUgcXVcJ2lsIGVzdCB1dGlsaXPDqSwgc291cyBjZXJ0YWluZXMgY29uZmlndXJhdGlvbnMgZGUgc2VydmV1ciwgYXZlYyBkZXMgZGl6YWluZXMgZGUgbWlsbGllcnMgZFwnZW5yZWdpc3RyZW1lbnRzIGV0IHVuIGdyYW5kIG5vbWJyZSBkZSBjaGFtcHMgcGVyc29ubmFsaXPDqXMgcGFyIGluc3RhbmNlLCBkYW5zIGRlcyBwZXJmb3JtYW5jZXMgcmFpc29ubmFibGVzLg0KQWluc2ksIHZldWlsbGV6IG5vdGVyIHF1ZSBsXCdpbmRleGF0aW9uIGRlIGNlIG1vZHVsZSBwYXIgbGUgbW9kdWxlIGRlIHJlY2hlcmNoZSBuZSBwZXV0IMOqdHJlIGVmZmVjdGlmIGF2ZWMgdW4gbm9tYnJlIGRcJ8OpbMOpbWVudHMgc2UgY29tcHRhbnQgcGFyIGNlbnRhaW5lcywgZXQgbm9uIHBhciBtaWxsaWVycy4gU2kgdm91cyBjb21wdGV6IHV0aWxpc2VyIHVuIGxhcmdlIG5vbWJyZSBkXCdlbnJlZ2lzdHJlbWVudHMsIGdhcmRleiBlbiB0w6p0ZSBxdWUgbFwnaW5kZXhhdGlvbiBldCBsYSByZWNoZXJjaGUgZWxsZS1tw6ptZSBwZXV0IMOqdHJlIGxlbnRlIHZvaXJlIGludXRpbGlzYWJsZSA7IGRhbnMgY2UgY2FzLCB2b3VzIGRldnJpZXogblwndXRpbGlzZXIgcXVlIGxhIHJlY2hlcmNoZSBpbnRlcm5lIGR1IG1vZHVsZSBxdWkgZXN0IG9wdGltaXPDqWUgcG91ciBjZXMgY2FzLWzDoC4nOwokbGFuZ1snZmllbGRkZWZfVGV4dElucHV0J10gPSAnQ2hhbXAgdGV4dGUnOwokbGFuZ1snZmllbGRkZWZfQ2hlY2tib3gnXSA9ICdDYXNlIMOgIGNvY2hlcic7CiRsYW5nWydmaWVsZGRlZl9UZXh0QXJlYSddID0gJ1pvbmUgZGUgdGV4dGUnOwokbGFuZ1snZmllbGRkZWZfU2VsZWN0RGF0ZSddID0gJ1PDqWxlY3Rpb25uZXIgdW5lIGRhdGUnOwokbGFuZ1snZmllbGRkZWZfU2VsZWN0RGF0ZVRpbWUnXSA9ICdTw6lsZWN0aW9ubmVyIHVuZSBkYXRlICsgaGV1cmUnOwokbGFuZ1snZmllbGRkZWZfZHRfYmFja3dhcmRzX2NvbXBhdGliaWxpdHknXSA9ICdSw6l0cm9jb21wYXRpYmlsaXTDqSc7CiRsYW5nWydmaWVsZGRlZl9kdF9maWVsZGRlZl9iYWNrd2FyZHNfY29tcGF0aWJpbGl0eV9oZWxwJ10gPSAnQ29jaGVyIGNlIGNoYW1wIHBvdXIgY29udGludWVyIGRcJ3V0aWxpc2VyIGxcJ2FuY2llbm5lIERhdGVUaW1lIGRlIHN0b2NrYWdlIGRlIGxhIGJhc2UgZGUgZG9ubsOpZXMnOwokbGFuZ1snZmllbGRkZWZfRHJvcGRvd24nXSA9ICdNZW51IGTDqXJvdWxhbnQnOwokbGFuZ1snZmllbGRkZWZfQ29udGVudFBhZ2VzJ10gPSAnUGFnZXMgZGUgY29udGVudSc7CiRsYW5nWydmaWVsZGRlZl9TZWxlY3RGaWxlJ10gPSAnU8OpbGVjdGlvbm5lciB1biBmaWNoaWVyJzsKJGxhbmdbJ2ZpZWxkZGVmX1JhZGlvR3JvdXAnXSA9ICdHcm91cGUgZGUgYm91dG9ucyByYWRpb3MnOwokbGFuZ1snZW5hYmxlX2pxdWknXSA9ICdVdGlsaXNlciBkZXMgYm91dG9ucyBqUXVlcnlVSSc7CiRsYW5nWydmaWVsZGRlZl9TbGlkZXInXSA9ICdTbGlkZXInOwokbGFuZ1snZmllbGRkZWZfTXVsdGlTZWxlY3QnXSA9ICdTw6lsZWN0aW9uIG11bHRpcGxlJzsKJGxhbmdbJ2ZpZWxkZGVmX0NoZWNrYm94R3JvdXAnXSA9ICdHcm91cGUgZGUgY2FzZXMgw6AgY29jaGVyJzsKJGxhbmdbJ2ZpZWxkZGVmX0ZpbGVVcGxvYWQnXSA9ICdFbnZvaSBkZSBmaWNoaWVyJzsKJGxhbmdbJ2ZpZWxkZGVmX0NvbG9yUGlja2VyJ10gPSAnU8OpbGVjdGlvbiBkZSBjb3VsZXVyJzsKJGxhbmdbJ2ZpZWxkZGVmX1RhZ3MnXSA9ICdNb3RzLWNsw6lzJzsKJGxhbmdbJ2ZpZWxkZGVmX1RhYnMnXSA9ICdPbmdsZXQnOwokbGFuZ1snZmllbGRkZWZfQmFja2VuZFRleHQnXSA9ICdUZXh0ZSBzdGF0aXF1ZSBzdXIgbFwnYWRtaW4nOwokbGFuZ1snZmllbGRkZWZfQlRfY29udGFpbmVyX2RpdiddID0gJ1R5cGUgZGUgY29udGVuZXVyIERJVic7CiRsYW5nWydmaWVsZGRlZl9CVF9jb250YWluZXJfZGl2X2hlbHAnXSA9ICdDZSBzb250IGxlcyBzdHlsZXMgY3NzIGR1IGJhY2tlbmQgZHUgbm95YXUgZGUgQ01TTVMnOwokbGFuZ1snZmllbGRkZWZfQlRfY29udGFpbmVyX3RleHQnXSA9ICdUZXh0ZSc7CiRsYW5nWydmaWVsZGRlZl9CVF9jb250YWluZXJfdGV4dF9oZWxwJ10gPSAnVGV4dGUgw6AgYWZmaWNoZXIgc3VyIGxcJ2FkbWluJzsKJGxhbmdbJ2ZpZWxkZGVmX0JUX2luZm9ybWF0aW9uJ10gPSAnSW5mb3JtYXRpb24nOwokbGFuZ1snZmllbGRkZWZfQlRfd2FybmluZyddID0gJ0F2ZXJ0aXNzZW1lbnQnOwokbGFuZ1snZmllbGRkZWZfRkVVRHJvcGRvd24nXSA9ICdNZW51IGTDqXJvdWxhbnQgZGVzIHV0aWxpc2F0ZXVycyBkdSBzaXRlJzsKJGxhbmdbJ2ZpZWxkZGVmX2ZldV9vcHRpb25zJ10gPSAnR3JvdXBlcyBGRVUnOwokbGFuZ1snZmllbGRkZWZfZmV1X2Ryb3Bkb3duX2hlbHAnXSA9ICdNZXJjaSBkZSBzw6lsZWN0aW9ubmVyIHVuIGRlcyBncm91cGVzIGRpc3BvbmlibGVzIGR1IG1vZHVsZSBGcm9udEVuZFVzZXJzJzsKJGxhbmdbJ2ZpZWxkZGVmX0dhbGxlcnlEcm9wZG93biddID0gJ0Nob2l4IGRcJ3VuZSBnYWxlcmllIHBob3Rvcyc7CiRsYW5nWydmaWVsZGRlZl9HQkZpbGVQaWNrZXInXSA9ICdFbnZvaSBkZSBmaWNoaWVyIHZpYSBHQkZpbGVQaWNrZXInOwokbGFuZ1snZmllbGRkZWZfR0JGaWxlUGlja2VyX2ZpbGVicm93c2VyJ10gPSAnQWN0aXZlciBsZSBnZXN0aW9ubmFpcmUgZGUgZmljaGllcnMnOwokbGFuZ1snZmllbGRkZWZfR0JGaWxlUGlja2VyX2ltYWdlJ10gPSAnU3VwcG9zw6kgw6p0cmUgdW5lIGltYWdlJzsKJGxhbmdbJ2ZpZWxkZGVmX0dCRmlsZVBpY2tlcl9jcmVhdGVfZGlycyddID0gJ0F1dG9yaXNlciBsYSBjcsOpYXRpb24gZFwndW4gcsOpcGVydG9pcmUnOwokbGFuZ1snZmllbGRkZWZfR0JGaWxlUGlja2VyX2RlbGV0ZSddID0gJ0F1dG9yaXNlciBsYSBzdXBwcmVzc2lvbic7CiRsYW5nWydmaWVsZGRlZl9HQkZpbGVQaWNrZXJfc2hvd19zdWJkaXJzJ10gPSAnQXV0b3Jpc2VyIGxlcyBzb3VzLXLDqXBlcnRvaXJlcyc7CiRsYW5nWydmaWVsZGRlZl9HQkZQX2FsbG93X2hlbHAnXSA9ICdTcMOpY2lmaWUgdW5lIGxpc3RlIChzw6lwYXLDqWUgcGFyIGRlcyB2aXJndWxlcykgZFwnZXh0ZW5zaW9ucyBkZSBmaWNoaWVycyBxdWkgc29udCBhdXRvcmlzw6llcy4gUGFyIGV4ZW1wbGU6IHBkZixnaWYsanBlZyxqcGcgKGdhcmRlciBlbiBtaW51c2N1bGUpJzsKJGxhbmdbJ2ZpZWxkZGVmX0dCRlBfZGlyX2hlbHAnXSA9ICdMZSBjaGVtaW4gZHUgcsOpcGVydG9pcmUgcXVpIHNlcmEgYWpvdXTDqSBhcHLDqHMgJGNvbmZpZ1tcJ3VwbG9hZHNfdXJsXCddLiBQYXMgZGUgc2xhc2ggw6AgbGEgZmluLic7CiRsYW5nWydmaWVsZGRlZl9HQkZQX2V4Y2x1ZGVfcHJlZml4X2hlbHAnXSA9ICdTcMOpY2lmaWVyIHVuZSBsaXN0ZSBkZSBwcsOpZml4ZXMgc8OpcGFyw6llIHBhciBkZXMgdmlyZ3VsZXMgcG91ciBleGNsdXJlIGxlcyBmaWNoaWVycyBxdWkgY29tbWVuY2VudCBwYXIgY2UocykgcHLDqWZpeGUocykuIFBhciBleGVtcGxlIDogdGh1bWJfLCBmb29fJzsKJGxhbmdbJ2ZpZWxkZGVmX0dCRlBfZmlsZWJyb3dzZXJfaGVscCddID0gJ1BhciBkw6lmYXV0LCB1biBjaGFtcCBkw6lyb3VsYW50IHNlcmEgdXRpbGlzw6kuIEFjdGl2ZXIgbGUgbmF2aWdhdGV1ciBkZSBmaWNoaWVycyBzaSBsXCd1dGlsaXNhdGV1ciBkb2l0IHBhcmNvdXJpciBsZXMgZmljaGllcnMuJzsKJGxhbmdbJ2ZpZWxkZGVmX0dCRlBfbWVkaWFfdHlwZV9oZWxwJ10gPSAnUGVybWV0IGRlIHNww6ljaWZpZXIgbGUgdHlwZSBkZSBtw6lkaWEgaW1hZ2Ugw6AgYWZmaWNoZXIuIFBhciBkw6lmYXV0LCB0b3VzIGxlcyBmaWNoaWVycyBzZXJvbnQgYWZmaWNow6lzLic7CiRsYW5nWydmaWVsZGRlZl9HQkZQX2RlbGV0ZV9oZWxwJ10gPSAnU2kgYWN0aXbDqSwgdm91cyBwb3V2ZXogZG9ubmVyIGxhIHBvc3NpYmlsaXTDqSBkZSBzdXBwcmltZXIgZGVzIGZpY2hpZXJzIG91IGRvc3NpZXJzIHBvdXIgY2UgY2hhbXAgbcOqbWUgc2kgbFwndXRpbGlzYXRldXIgblwnYSBwYXMgbGVzIHBlcm1pc3Npb25zIGFwcHJvcHJpw6llcy4nOwokbGFuZ1snZmllbGRkZWZfR0JGUF9jcmVhdGVfZGlyc19oZWxwJ10gPSAnU2kgYWN0aXbDqSwgdm91cyBwb3V2ZXogZG9ubmVyIGxhIHBvc3NpYmlsaXTDqSBkZSBjcsOpZXIgZGVzIGRvc3NpZXJzIHBvdXIgY2UgY2hhbXAgbcOqbWUgc2kgbFwndXRpbGlzYXRldXIgblwnYSBwYXMgbGVzIHBlcm1pc3Npb25zIGFwcHJvcHJpw6llcy4nOwokbGFuZ1snZmllbGRkZWZfR0JGUF9zaG93X3N1YmRpcnNfaGVscCddID0gJ1NpIGFjdGl2w6ksIGxcJ3V0aWxpc2F0ZXVyIHBldXQgcGFyY291cmlyIGxlcyBzb3VzLXLDqXBlcnRvaXJlcy4nOwokbGFuZ1snZmllbGRkZWZfSk1GaWxlUGlja2VyJ10gPSAnRW52b2kgZGUgZmljaGllciB2aWEgSk1GaWxlUGlja2VyJzsKJGxhbmdbJ2ZpZWxkZGVmX0pNRmlsZVBpY2tlcl9maWxlYnJvd3NlciddID0gJ0FjdGl2ZXIgbGUgbmF2aWdhdGV1ciBkZSBmaWNoaWVycyc7CiRsYW5nWydmaWVsZGRlZl9KTUZpbGVQaWNrZXJfaW1hZ2UnXSA9ICdEZXZyYWl0IMOqdHJlIHVuZSBpbWFnZSc7CiRsYW5nWydmaWVsZGRlZl9KTUZpbGVQaWNrZXJfY3JlYXRlX2RpcnMnXSA9ICdQZXJtZXR0cmUgbGEgY3LDqWF0aW9uIGRlIHLDqXBlcnRvaXJlJzsKJGxhbmdbJ2ZpZWxkZGVmX0pNRmlsZVBpY2tlcl9kZWxldGUnXSA9ICdQZXJtZXR0cmUgbGEgc3VwcHJlc3Npb24nOwokbGFuZ1snZmllbGRkZWZfSk1GaWxlUGlja2VyX3Nob3dfc3ViZGlycyddID0gJ1Blcm1ldHRyZSBsZXMgc291cy1yw6lwZXJ0b2lyZXMnOwokbGFuZ1snZmllbGRkZWZfSk1GUF9hbGxvd19oZWxwJ10gPSAnU3DDqWNpZmllciB1bmUgbGlzdGUgZFwnZXh0ZW5zaW9ucyBkZSBmaWNoaWVyIGF1dG9yaXPDqWVzLCBzw6lwYXLDqWUgcGFyIGRlcyB2aXJndWxlcy4gUGFyIGV4ZW1wbGUgOiBwZGYsIGdpZiwganBlZywganBnIChyZXN0ZXIgZW4gbWludXNjdWxlKSc7CiRsYW5nWydmaWVsZGRlZl9KTUZQX2Rpcl9oZWxwJ10gPSAnTGUgY2hlbWluIGR1IHLDqXBlcnRvaXJlIHF1aSBzZXJhIGFqb3V0w6kgYXByw6hzICRjb25maWdbXCd1cGxvYWRzX3VybFwnXS4gUGFzIGRlIHNsYXNoIMOgIGxhIGZpbi4nOwokbGFuZ1snZmllbGRkZWZfSk1GUF9leGNsdWRlX3ByZWZpeF9oZWxwJ10gPSAnU3DDqWNpZmllciB1bmUgbGlzdGUgZGUgcHLDqWZpeGVzIHPDqXBhcsOpZSBwYXIgZGVzIHZpcmd1bGVzLCBwb3VyIGV4Y2x1cmUgbGVzIGZpY2hpZXJzIHF1aSBjb21tZW5jZW50IHBhciBjZXV4LWNpLiBQYXIgZXhlbXBsZSA6IHRodW1iXywgZm9vXyc7CiRsYW5nWydmaWVsZGRlZl9KTUZQX2ZpbGVicm93c2VyX2hlbHAnXSA9ICdQYXIgZMOpZmF1dCwgdW4gbWVudSBkw6lyb3VsYW50IHNlcmEgdXRpbGlzw6kuIEFjdGl2ZXIgbGUgbmF2aWdhdGV1ciBkZSBmaWNoaWVycyBzaSBsXCd1dGlsaXNhdGV1ciBkb2l0IG5hdmlndWVyIGRhbnMgbGVzIGZpY2hpZXJzLic7CiRsYW5nWydmaWVsZGRlZl9KTUZQX21lZGlhX3R5cGVfaGVscCddID0gJ1Blcm1ldCBkZSBzcMOpY2lmaWVyIGxlIHR5cGUgZGUgbcOpZGlhIGltYWdlIMOgIGFmZmljaGVyLiBQYXIgZMOpZmF1dCwgdG91cyBsZXMgZmljaGllcnMgc2Vyb250IGFmZmljaMOpcy4nOwokbGFuZ1snZmllbGRkZWZfSk1GUF9kZWxldGVfaGVscCddID0gJ1NpIGFjdGl2w6ksIHZvdXMgcG91dmV6IGRvbm5lciBsYSBwb3NzaWJpbGl0w6kgZGUgc3VwcHJpbWVyIGRlcyBmaWNoaWVycyBvdSBkb3NzaWVycyBwb3VyIGNlIGNoYW1wIG3Dqm1lIHNpIGxcJ3V0aWxpc2F0ZXVyIG5cJ2EgcGFzIGxlcyBwZXJtaXNzaW9ucyBhcHByb3ByacOpZXMuJzsKJGxhbmdbJ2ZpZWxkZGVmX0pNRlBfY3JlYXRlX2RpcnNfaGVscCddID0gJ1NpIGFjdGl2w6ksIHZvdXMgcG91dmV6IGRvbm5lciBsYSBwb3NzaWJpbGl0w6kgZGUgY3LDqWVyIGRlcyBkb3NzaWVycyBwb3VyIGNlIGNoYW1wIG3Dqm1lIHNpIGxcJ3V0aWxpc2F0ZXVyIG5cJ2EgcGFzIGxlcyBwZXJtaXNzaW9ucyBhcHByb3ByacOpZXMuJzsKJGxhbmdbJ2ZpZWxkZGVmX0pNRlBfc2hvd19zdWJkaXJzX2hlbHAnXSA9ICdTaSBhY3RpdsOpLCBsXCd1dGlsaXNhdGV1ciBwb3VycmEgbmF2aWd1ZXIgZGFucyBsZXMgc291cy1yw6lwZXJ0b2lyZXMuJzsKJGxhbmdbJ2ZpZWxkZGVmX0xJU0VJbnN0YW5jZSddID0gJ0luc3RhbmNlIExJU0UnOwokbGFuZ1snZmllbGRkZWZfTElTRUluc3RhbmNlSXRlbSddID0gJ0Vsw6ltZW50IGRcJ3VuZSBpbnN0YW5jZSBMSVNFJzsKJGxhbmdbJ2ZpZWxkZGVmX2luc3RhbmNlX2hlbHAnXSA9ICdTw6lsZWN0aW9ubmVyIHVuZSBpbnN0YW5jZSc7CiRsYW5nWydmaWVsZGRlZl9pZGVudGlmaWVyX2hlbHAnXSA9ICdTw6lsZWN0aW9ubmVyIHVuIGlkZW50aWZpYW50IGRlIGJhc2UgZGUgZG9ubsOpZXMnOwokbGFuZ1snaW5zdGFuY2UnXSA9ICdJbnN0YW5jZSc7CiRsYW5nWydpZGVudGlmaWVyJ10gPSAnSWRlbnRpZmlhbnQnOwokbGFuZ1snZmllbGRkZWZfRkVVTXVsdGlTZWxlY3QnXSA9ICdNdWx0aSBzw6lsZWN0aW9uIEZyb250RW5kVXNlcnMnOwokbGFuZ1snZmllbGRkZWZfSlF1ZXJ5TXVsdGlTZWxlY3QnXSA9ICdNdWx0aXMgw6lsZWN0aW9uIGpRdWVyeSc7CiRsYW5nWydmaWVsZGRlZl9mZXVfbXVsdGlzZWxlY3RfaGVscCddID0gJ01lcmNpIGRlIHPDqWxlY3Rpb25uZXIgdW4gb3UgcGx1c2lldXJzIGdyb3VwZXMgRkVVIGRpc3BvbmlibGVzJzsKJGxhbmdbJ2ZpZWxkZGVmX2ZldV9maWVsZHMnXSA9ICdTw6lsZWN0aW9ubmVyIGxlIDFlciBjaGFtcCBGRVUnOwokbGFuZ1snZmllbGRkZWZfZmV1X2ZpZWxkczInXSA9ICdTw6lsZWN0aW9ubmVyIGxlIDJlIGNoYW1wIEZFVSc7CiRsYW5nWydmaWVsZGRlZl91c2VycyddID0gJ1V0aWxpc2F0ZXVycyc7CiRsYW5nWydmaWVsZGRlZl91c2VfdXNlcm5hbWUnXSA9ICdVdGlsaXNlciBsZSBjaGFtcCBub20gZFwndXRpbGlzYXRldXInOwokbGFuZ1snZmllbGRkZWZfdXNlX3VpZCddID0gJ1Byw6lmaXhlciBsXCdJRCBkZSBsXCd1dGlsaXNhdGV1cic7CiRsYW5nWydmaWVsZGRlZl91c2VfdXNlcm5hbWVfaGVscCddID0gJ1NpIHZvdXMgY29jaGV6IGNldHRlIG9wdGlvbiwgbGUgY2hhbXAgcGVyc29ubmFsaXPDqSBjaS1kZXNzb3VzIG5lIHNlcmEgcGFzIHV0aWxpc8OpLic7CiRsYW5nWydmaWVsZGRlZl9zZXBhcmF0b3JfY2hyJ10gPSAnQ2FyYWN0w6hyZSBkZSBzw6lwYXJhdGlvbic7CiRsYW5nWydmaWVsZGRlZl9zZXBhcmF0b3JfY2hyX2hlbHAnXSA9ICdDYXJhY3TDqHJlIHV0aWxpc8OpIHBvdXIgc8OpcGFyZXIgbGUgY2hhbXAgMSBkdSBjaGFtcCAyIGRhbnMgbGUgdGV4dGUgZFwnb3B0aW9ucy4gTFwnZXNwYWNlIGVzdCBsZSBjYXJhY3TDqHJlIHBhciBkw6lmYXV0Lic7CiRsYW5nWydmaWVsZGRlZl9Db3JlRmlsZVBpY2tlciddID0gJ1PDqWxlY3RldXIgZGUgZmljaGllciAoRmlsZSBQaWNrZXIpJzsKJGxhbmdbJ2ZpZWxkZGVmX2NvcmVfZnBfcHJvZmlsZXMnXSA9ICdQcm9maWwnOwokbGFuZ1snZmllbGRkZWZfY29yZV9mcF9wcm9maWxlc19oZWxwJ10gPSAnQ2hvaXNpciB1biBwcm9maWwgZGUgRmlsZSBQaWNrZXIuIElsIGRvaXQgZXhpc3RlciAhIENob2lzaXIgYXVjdW4gb3Ugbm9uLWV4aXN0YW50IGJhc2N1bGVyYSBzdXIgbGUgcHJvZmlsIG91IGxlcyB2YWxldXJzIHBhciBkw6lmYXV0Lic7CiRsYW5nWydmaWVsZGRlZl9hbGxvd19oZWxwJ10gPSAnU3DDqWNpZmllciB1bmUgbGlzdGUgZFwnZXh0ZW5zaW9ucyBkZSBmaWNoaWVyIGF1dG9yaXPDqWVzLCBzw6lwYXLDqWUgcGFyIGRlcyB2aXJndWxlcy4gUGFyIGV4ZW1wbGUgOiBwZGYsIGdpZiwganBlZywganBnIChyZXN0ZXIgZW4gbWludXNjdWxlKSc7CiRsYW5nWydmaWVsZGRlZl9kaXJfaGVscCddID0gJ0xlIGNoZW1pbiBkdSByw6lwZXJ0b2lyZSBxdWkgc2VyYSBham91dMOpIGFwcsOocyAkY29uZmlnW1wndXBsb2Fkc191cmxcJ10uIFBhcyBkZSBzbGFzaCDDoCBsYSBmaW4uIHskaXRlbV9pZH0gZXQgeyRmaWVsZF9pZH0gc2Vyb250IHJlbXBsYWPDqXMuJzsKJGxhbmdbJ2ZpZWxkZGVmX2V4Y2x1ZGVfcHJlZml4X2hlbHAnXSA9ICdTcMOpY2lmaWVyIHVuZSBsaXN0ZSBkZSBwcsOpZml4ZXMgc8OpcGFyw6llIHBhciBkZXMgdmlyZ3VsZXMsIHBvdXIgZXhjbHVyZSBsZXMgZmljaGllcnMgcXVpIGNvbW1lbmNlbnQgcGFyIGNldXgtY2kuIFBhciBleGVtcGxlIDogdGh1bWJfLCBmb29fJzsKJGxhbmdbJ2ZpZWxkZGVmX211bHRpb3B0aW9uc19oZWxwJ10gPSAnT3B0aW9ucyBzw6lwYXLDqWVzIHBhciBkZXMgc2F1dHMgZGUgbGlnbmUuIExlcyB2YWxldXJzIHBldXZlbnQgw6p0cmUgc8OpcGFyw6llcyBkdSB0ZXh0ZSBwYXIgbGUgY2FyYWN0w6hyZSA9LiBQYXIgZXhlbXBsZSA6IEJhbmFuZT1iYW5hbmUnOwokbGFuZ1snZmllbGRkZWZfc2VwYXJhdG9yX2hlbHAnXSA9ICdQZXV0IMOqdHJlIHZpZGUsIGNhcmFjdMOocmUgc2ltcGxlIG91IGVudGl0w6kgSFRNTC4nOwokbGFuZ1snZmllbGRkZWZfc2l6ZV9oZWxwJ10gPSAnU3DDqWNpZmllciBsYSB0YWlsbGUgZHUgY2hhbXAgaW5wdXQuIFBhciBleGVtcGxlIDogMjAnOwokbGFuZ1snZmllbGRkZWZfbWF4X2xlbmd0aF9oZWxwJ10gPSAnU3DDqWNpZmllciBsYSB0YWlsbGUgbWF4aW1hbGUgZHUgY2hhbXAuIFBhciBleGVtcGxlIDogMjU1JzsKJGxhbmdbJ2ZpZWxkZGVmX2RhdGVfZm9ybWF0X2hlbHAnXSA9ICdTcMOpY2lmaWVyIHVuIGZvcm1hdCBkZSBkYXRlIHV0aWxpc8OpIHBhciBqUXVlcnkgRGF0ZXBpY2tlci4gRXNzYXllciBkZSA8ZW0+Z29vZ2xlcjwvZW0+IFwnanF1ZXJ5IGZvcm1hdERhdGVcJy4gUGFyIGV4ZW1wbGUgOiBkZC1tbS15eSc7CiRsYW5nWydmaWVsZGRlZl9mb3JtYXRfdHlwZV9oZWxwJ10gPSAnU3DDqWNpZmllciB1biBmb3JtYXQgZGUgc29ydGllIHBvdXIgY2UgY2hhbXAuJzsKJGxhbmdbJ2ZpZWxkZGVmX3RpbWVfZm9ybWF0X2hlbHAnXSA9ICdTcMOpY2lmaWVyIHVuIGZvcm1hdCBkZSBkYXRlIHV0aWxpc8OpIHBhciBqUXVlcnkgdGltZXBpY2tlci4gRXNzYXllciBkZSA8ZW0+Z29vZ2xlcjwvZW0+IFwnanF1ZXJ5IGZvcm1hdFRpbWVcJy4gUGFyIGV4ZW1wbGUgOiBISDptbSc7CiRsYW5nWydmaWVsZGRlZl93eXNpd3lnX2hlbHAnXSA9ICdTaSBjb2Now6ksIHVuIMOpZGl0ZXVyIFdZU0lXWUcgc2VyYSBhY3RpdsOpIHBvdXIgY2UgY2hhbXAuJzsKJGxhbmdbJ2ZpZWxkZGVmX21pbl92YWx1ZV9oZWxwJ10gPSAnU3DDqWNpZmllciB1bmUgdmFsZXVyIG1pbmltYWxlIHBvdXIgY2UgY2hhbXAuJzsKJGxhbmdbJ2ZpZWxkZGVmX21heF92YWx1ZV9oZWxwJ10gPSAnU3DDqWNpZmllciB1bmUgdmFsZXVyIG1heGltYWxlIHBvdXIgY2UgY2hhbXAuJzsKJGxhbmdbJ2ZpZWxkZGVmX3N1YnR5cGVfaGVscCddID0gJ1PDqWxlY3Rpb25uZXIgdW4gc291cy10eXBlIHBvdXIgY2UgY2hhbXAgYWZpbmRlIGTDqXRlcm1pbmVyIHNvbiBjb21wb3J0ZW1lbnQuJzsKJGxhbmdbJ2ZpZWxkZGVmX3Nob3dhbGxfaGVscCddID0gJ01vbnRyZXIgdG91dCwgbWFsZ3LDqSBsZXMgcGVybWlzc2lvbnMgZHUgc3lzdMOobWUuJzsKJGxhbmdbJ2ZpZWxkZGVmX2NvbHVtbnNfaGVscCddID0gJ05vbWJyZSBkZSBjb2xvbm5lLiBEaXZpc2VyIGNlIGNoYW1wIGVuIGNvbG9ubmVzIG11bHRpcGxlIHBvdXIgdW5lIG1laWxsZXVyZSBleHDDqXJpZW5jZSB1dGlsaXNhdGV1ci4nOwokbGFuZ1sncmVvcmRlcl9jYXRlZ29yaWVzJ10gPSAnUsOpb3Jkb25uZXIgbGVzIGNhdMOpZ29yaWVzJzsKJGxhbmdbJ2VkaXRfY2F0ZWdvcnknXSA9ICdFZGl0ZXIgbGEgY2F0w6lnb3JpZSc7CiRsYW5nWydjYXRlZ29yeV9uYW1lJ10gPSAnTm9tIGRlIGNhdMOpZ29yaWUnOwokbGFuZ1snY2F0ZWdvcnlfZGVzY3JpcHRpb24nXSA9ICdEZXNjcmlwdGlvbiBkZSBjYXTDqWdvcmllJzsKJGxhbmdbJ2NhdGVnb3J5X25hbWVfZW1wdHknXSA9ICdMZSBub20gZGUgbGEgY2F0w6lnb3JpZSBlc3QgdmlkZSc7CiRsYW5nWydjYXRlZ29yeV9hbGlhc19leGlzdHMnXSA9ICdMXCdBbGlhcyBkZSBsYSBjYXTDqWdvcmllIGV4aXN0ZSBkw6lqw6AuIExcJ0FsaWFzIGRvaXQgw6p0cmUgdW5pcXVlLic7CiRsYW5nWydhcmNoaXZldGVtcGxhdGUnXSA9ICdHYWJhcml0IGRcJ2FyY2hpdmVzJzsKJGxhbmdbJ2FyY2hpdmV0ZW1wbGF0ZXMnXSA9ICdHYWJhcml0cyBkXCdhcmNoaXZlcyc7CiRsYW5nWydjYXRlZ29yeXRlbXBsYXRlJ10gPSAnR2FiYXJpdCBkZSBjYXTDqWdvcmllJzsKJGxhbmdbJ2NhdGVnb3J5dGVtcGxhdGVzJ10gPSAnR2FiYXJpdHMgZGUgY2F0w6lnb3JpZSc7CiRsYW5nWydzdW1tYXJ5dGVtcGxhdGUnXSA9ICdHYWJhcml0IGRlIHNvbW1haXJlJzsKJGxhbmdbJ3N1bW1hcnl0ZW1wbGF0ZXMnXSA9ICdHYWJhcml0cyBkZSBzb21tYWlyZSc7CiRsYW5nWydkZXRhaWx0ZW1wbGF0ZSddID0gJ0dhYmFyaXQgZGUgZMOpdGFpbCc7CiRsYW5nWydkZXRhaWx0ZW1wbGF0ZXMnXSA9ICdHYWJhcml0cyBkZSBkw6l0YWlsJzsKJGxhbmdbJ3NlYXJjaHRlbXBsYXRlJ10gPSAnR2FiYXJpdCBkZSByZWNoZXJjaGUnOwokbGFuZ1snc2VhcmNodGVtcGxhdGVzJ10gPSAnR2FiYXJpdHMgZGUgcmVjaGVyY2hlJzsKJGxhbmdbJ2ZpbHRlcnRlbXBsYXRlJ10gPSAnR2FiYXJpdCBkZSBmaWx0cmUnOwokbGFuZ1snZmlsdGVydGVtcGxhdGVzJ10gPSAnR2FiYXJpdHMgZGUgZmlsdHJlJzsKJGxhbmdbJ2VkaXR0ZW1wbGF0ZSddID0gJ01vZGlmaWVyIGxlIGdhYmFyaXQnOwokbGFuZ1sndGVtcGxhdGVfbmFtZSddID0gJ05vbSBkdSBnYWJhcml0JzsKJGxhbmdbJ3RlbXBsYXRlX25hbWVfZW1wdHknXSA9ICdMZSBub20gZHUgZ2FiYXJpdCBlc3QgdmlkZSc7CiRsYW5nWyd0ZW1wbGF0ZV9jb250ZW50X2VtcHR5J10gPSAnTGUgY29udGVudSBkdSBnYWJhcml0IGVzdCB2aWRlJzsKJGxhbmdbJ2RlZmF1bHRfdGVtcGxhdGVzJ10gPSAnR2FiYXJpdHMgcGFyIGTDqWZhdXQnOwokbGFuZ1snbW9kdWxlX29wdGlvbnMnXSA9ICdPcHRpb25zIGR1IG1vZHVsZSc7CiRsYW5nWydtb2R1bGVfbWFpbl9vcHRpb25zJ10gPSAnT3B0aW9ucyBwcmluY2lwYWxlcyBkdSBtb2R1bGUnOwokbGFuZ1snbW9kdWxlX2FkdmFuY2VkX29wdGlvbnMnXSA9ICdPcHRpb25zIGF2YW5jw6llcyBkdSBtb2R1bGUnOwokbGFuZ1sndXJsX29wdGlvbnMnXSA9ICdPcHRpb25zIGRcJ1VSTCc7CiRsYW5nWydkZWZhdWx0X29wdGlvbnMnXSA9ICdQYXJhbcOodHJlcyBwYXIgZMOpZmF1dCBkdSBtb2R1bGUnOwokbGFuZ1sneG1vZHVsZV9vcHRpb25zJ10gPSAnT3B0aW9ucyBkZSBjcm9pc2VtZW50IGRlIG1vZHVsZSc7CiRsYW5nWydwcm9tcHRfZnJpZW5kbHluYW1lJ10gPSAnTm9tICJjb252aXZpYWwiIGR1IG1vZHVsZSc7CiRsYW5nWydwcm9tcHRfbW9kZGVzY3JpcHRpb24nXSA9ICdEZXNjcmlwdGlvbiBkdSBtb2R1bGUgZGFucyBsXCdhZG1pbic7CiRsYW5nWydwcm9tcHRfYWRtaW5zZWN0aW9uJ10gPSAnU2VjdGlvbiBkdSBtb2R1bGUgZGFucyBsXCdhZG1pbic7CiRsYW5nWydpdGVtc19vcHRpb25zJ10gPSAnT3B0aW9ucyBkZXMgw6lsw6ltZW50cyc7CiRsYW5nWydwcm9tcHRfaXRlbV9zaW5ndWxhciddID0gJ05vbSBkZSBsXCfDqWzDqW1lbnQgYXUgc2luZ3VsaWVyJzsKJGxhbmdbJ3Byb21wdF9pdGVtX3BsdXJhbCddID0gJ05vbSBkZSBsXCfDqWzDqW1lbnQgYXUgcGx1cmllbCc7CiRsYW5nWydwcm9tcHRfdXJsX3ByZWZpeCddID0gJ1Byw6lmaXhlIGRlcyBVUkxzJzsKJGxhbmdbJ3Byb21wdF91cmxfdGVtcGxhdGUnXSA9ICdHYWJhcml0IGRlIGxcJ1VSTCc7CiRsYW5nWydwcm9tcHRfZGlzcGxheV9pbmxpbmUnXSA9ICdBZmZpY2hlIGxlcyBkw6l0YWlscyBlbiBsaWduZSAocmVtcGxhY2Uge2NvbnRlbnR9IHBhciBsYSBiYWxpc2UgZHUgbW9kdWxlKSc7CiRsYW5nWydwcm9tcHRfc3ViY2F0ZWdvcnknXSA9ICdBY3RpdmUgbFwnb3B0aW9uIGRlIHNvdXMtY2F0w6lnb3JpZSwgbW9udHJlcmEgbGVzIMOpbMOpbWVudHMgaMOpcml0w6lzIGRlIGxhIGNhdMOpZ29yaWUgZXQgZGUgc2VzIGVuZmFudHMnOwokbGFuZ1sncHJvbXB0X2l0ZW1fY29scyddID0gJ0FmZmljaGVyIGNlcyBjaGFtcHMgZGFucyBsYSB2dWUgZFwnZW5zZW1ibGUgZGVzIMOpbMOpbWVudHMnOwokbGFuZ1sncHJvbXB0X2l0ZW1zX3Blcl9wYWdlJ10gPSAnw4lsw6ltZW50cyBhZmZpY2jDqXMgcGFyIHBhZ2UnOwokbGFuZ1sncHJvbXB0X2NyZWF0ZV9kYXRlJ10gPSAnQWZmaWNoZXIgbGEgZGF0ZSBkZSBjcsOpYXRpb24gZGUgbFwnw6lsw6ltZW50IGRhbnMgbGUgbW9kZSBkXCfDqWRpdGlvbiBkZSBsXCfDqWzDqW1lbnQgPyc7CiRsYW5nWydwcm9tcHRfZGV0YWlscGFnZSddID0gJ1BhZ2UgZGUgZMOpdGFpbCc7CiRsYW5nWydwcm9tcHRfc3VtbWFyeXBhZ2UnXSA9ICdQYWdlIGRlIHNvbW1haXJlJzsKJGxhbmdbJ3Byb21wdF9yZWluZGV4X3NlYXJjaCddID0gJ8OJbMOpbWVudHMgcG91dmFudCDDqnRyZSBjaGVyY2jDqXMgcGFyIGxlIG1vZHVsZSBkZSByZWNoZXJjaGUnOwokbGFuZ1sndGV4dF9zb3J0b3JkZXInXSA9ICdUcmkgZGVzIMOpbMOpbWVudHMgcGFyIGTDqWZhdXQnOwokbGFuZ1snb3B0aW9uc19ub3RpY2UnXSA9ICdBcHLDqHMgYXZvaXIgY2hhbmfDqSBsZSBub20gZHUgbW9kdWxlIG91IGxhIHNlY3Rpb24gZGUgbFwnYWRtaW4sIGlsIGVzdCBwb3NzaWJsZSBkZSBkZXZvaXIgdmlkZXIgbGUgY2FjaGUgcG91ciBxdWUgY2VzIGNoYW5nZW1lbnRzIHNvaWVudCBlZmZlY3RpZnMuJzsKJGxhbmdbJ3Byb21wdF9hbGxvd19hdXRvc2NhbiddID0gJ0F1dG9yaXNlciBsZSBzeXN0w6htZSDDoCBzY2FubmVyIGF1dG9tYXRpcXVlbWVudCBsZXMgZMOpZmluaXRpb25zIGRlIGNoYW1wJzsKJGxhbmdbJ25vdGljZV9hbGxvd19hdXRvc2NhbiddID0gJ0F1dG9yaXNlciBsZSBzY2FuIGF1dG9tYXRpcXVlIHN1ciBsZXMgw6l2w6luZW1lbnRzIE1vZHVsZUluc3RhbGxlZCwgTW9kdWxlVXBncmFkZWQsIE1vZHVsZVVuaW5zdGFsbGVkIGV0IENvbnRlbnRQb3N0Q29tcGlsZSBwb3VycmFpdCBjb25kdWlyZSDDoCB1biBjb21wb3J0ZW1lbnQgw6l0cmFuZ2UgYXZlYyBjZXJ0YWluZXMgdmVyc2lvbnMgZHUgbm95YXUuJzsKJGxhbmdbJ3Byb21wdF9hbGxvd19hdXRvaW5zdGFsbCddID0gJ0F1dG9yaXNlciBsZSBzeXN0w6htZSDDoCBpbnN0YWxsZXIgZGVzIGluc3RhbmNlcyBhdXRvbWF0aXF1ZW1lbnQnOwokbGFuZ1sncHJvbXB0X2FsbG93X2F1dG91cGRhdGUnXSA9ICdBdXRvcmlzZXIgbGUgc3lzdMOobWUgw6AgbWV0dHJlIMOgIGpvdXIgbGVzIGluc3RhbmNlcyBhdXRvbWF0aXF1ZW1lbnQgcXVhbmQgTElTRSBlc3QgbWlzIMOgIGpvdXInOwokbGFuZ1snbWlzY19vcHRpb25zJ10gPSAnRGl2ZXJzJzsKJGxhbmdbJ3Byb21wdF9hdXRvX3VwZ3JhZGUnXSA9ICdBdXRvcmlzZXIgbGUgc3lzdMOobWUgw6AgbWV0dHJlIMOgIGpvdXIgY2V0dGUgaW5zdGFuY2UgYXV0b21hdGlxdWVtZW50IHF1YW5kIExJU0UgZXN0IG1pcyDDoCBqb3VyJzsKJGxhbmdbJ3Byb21wdF9oaWRlX2FsaWFzJ10gPSAnQ2FjaGVyIGxlIGNoYW1wIGRcJ2FsaWFzIGRhbnMgbFwnw6lkaXRpb24gZGUgbFwnw6lsw6ltZW50IChzZXJhIGF1dG8tZ8OpbsOpcsOpKSc7CiRsYW5nWydwcm9tcHRfaGlkZV9zbHVnJ10gPSAnQ2FjaGVyIGxlIGNoYW1wIGRcJ1VSTCBkYW5zIGxcJ8OpZGl0aW9uIGRlIGxcJ8OpbMOpbWVudCAoc2VyYSBhdXRvLWfDqW7DqXLDqSknOwokbGFuZ1sncHJvbXB0X2hpZGVfdGltZV9jb250cm9sJ10gPSAnTmUgcGFzIHV0aWxpc2VyIGxlIGNvbnRyw7RsZSB0ZW1wb3JlbCc7CiRsYW5nWydwcm9tcHRfaW5zdGFuY2VfbW9kZSddID0gJ01vZGUgb3DDqXJhdG9pcmUgZGUgbFwnaW5zdGFuY2UnOwokbGFuZ1sncHJvbXB0X2xvY2FsX2luc3RhbmNlc19saXN0J10gPSAnSW5zdGFuY2UgZW4gbW9kZSBsb2NhbCc7CiRsYW5nWydwcm9tcHRfc2VwYXJhdGVfc2V0dGluZ3NfY29udHJvbCddID0gJ0VudHLDqWUgZGUgbWVudSBzw6lwYXLDqWUgcG91ciBsZXMgcGFyYW3DqHRyZXMgZFwnaW5zdGFuY2UnOwokbGFuZ1snbm90aWNlJ10gPSAnTm90aWNlJzsKJGxhbmdbJ2luZm9ybWF0aW9uJ10gPSAnSW5mb3JtYXRpb24nOwokbGFuZ1snaW5zdGFuY2VzJ10gPSAnSW5zdGFuY2VzJzsKJGxhbmdbJ2luc3RhbGxlZF9pbnN0YW5jZXNfd2FybmluZyddID0gJ0NpLWRlc3NvdXMgc2UgdHJvdXZlIHVuZSBsaXN0ZSBkXCdpbnN0YW5jZXMgZHVwbGlxdcOpZXMgZHUgbW9kdWxlLjxiciAvPkFzc3VyZXotdm91cyBkZSBzYXV2ZWdhcmRlciB2b3RyZSBzaXRlIChCYXNlIGRlIGRvbm7DqWVzIGV0IGZpY2hpZXJzKSBhdmFudCBkXCdhY3Rpb25uZXIgInVwZGF0ZSInOwokbGFuZ1snY2xvbmVfaW5zdGFuY2VzX3dhcm5pbmcnXSA9ICdUb3VzIGxlcyBwYXJhbcOodHJlcyB2b250IMOqdHJlIGNvcGnDqXMgc2F1ZiBsZXMgcGVybWlzc2lvbnMgcXVpIGRldnJvbnQgw6p0cmUgcsOpZ2zDqWVzIG1hbnVlbGxlbWVudC4nOwokbGFuZ1snaW5zdGFsbGVkX2luc3RhbmNlcyddID0gJ0luc3RhbmNlcyBpbnN0YWxsw6llcyc7CiRsYW5nWydpbnN0YW5jZV9uYW1lJ10gPSAnTm9tIGRlIGxcJ2luc3RhbmNlJzsKJGxhbmdbJ2luc3RhbmNlX2ZyaWVuZGx5bmFtZSddID0gJ05vbSAiY29udml2aWFsIic7CiRsYW5nWydpbnN0YW5jZV9zbWFydHknXSA9ICdCYWxpc2UgU21hcnR5JzsKJGxhbmdbJ2luc3RhbmNlX3ZlcnNpb24nXSA9ICdWZXJzaW9uJzsKJGxhbmdbJ2luc3RhbmNlX3VwZ3JhZGUnXSA9ICdNZXR0cmUgw6Agam91cic7CiRsYW5nWydpbnN0YW5jZV91cHRvZGF0ZSddID0gJ8OAIGpvdXInOwokbGFuZ1snaW5zdGFuY2VfbW9kdWxldXBncmFkZWQnXSA9ICdNb2R1bGUgbWlzIMOgIGpvdXInOwokbGFuZ1snY29weV90aXRsZSddID0gJ01vZHVsZSBkdXBsaXF1w6knOwokbGFuZ1snaW1wb3J0X2Zyb21fTEkyX3RpdGxlJ10gPSAnSW1wb3J0ZXIgbGVzIGluc3RhbmNlcyBkZXB1aXMgTEkyJzsKJGxhbmdbJ3Byb21wdF9pbXBvcnRfZnJvbV9MSTInXSA9ICdJbXBvcnRlciBkZXB1aXMgZGVzIGluc3RhbmNlcyBMSTIgZXhpc3RhbnRlcyc7CiRsYW5nWydidXR0b25faW1wb3J0X2Zyb21fTEkyJ10gPSAnSW1wb3J0ZXIgISc7CiRsYW5nWydmaXhfaW1wb3J0X2Zyb21fTEkyX3RpdGxlJ10gPSAnUsOpcGFyZXIgbGVzIHRhYmxlcyBpbXBvcnTDqWVzIGRlIExpc3RJdDInOwokbGFuZ1snZml4X0xJMl9pbnN0YW5jZXNfd2FybmluZyddID0gJ8OAIHV0aWxpc2VyIHVuaXF1ZW1lbnQgc2kgdm91cyBhdmV6IGRlcyBwcm9ibMOobWVzIGVuIGFqb3V0YW50IG91IMOpZGl0YW50IGRlcyDDqWzDqW1lbnRzIG91IGTDqWZpbml0aW9ucyBkZSBjaGFtcHMgc3VyIGRlcyBpbnN0YW5jZXMgaW1wb3J0w6llcyBkZSBMaXN0SXQyJzsKJGxhbmdbJ3Byb21wdF9maXhfaW1wb3J0X2Zyb21fTEkyJ10gPSAnZXNzYXllciBkZSByw6lwYXJlciBsZXMgdGFibGVzIGltcG9ydMOpZXMgZGUgTGlzdEl0Mic7CiRsYW5nWydidXR0b25fZml4X2ltcG9ydF9mcm9tX0xJMiddID0gJ1LDqXBhcmVyICEnOwokbGFuZ1snbWlzc2luZ19vcHRpb25zX25vdGljZSddID0gJ0RlcyBvcHRpb25zIG1hbnF1ZW50IGljaSA/IExlcyBvcHRpb25zIG1hbnF1YW50ZXMgbmUgc2Vyb250IHBvc3NpYmxlcyBxdWUgc2kgbGEgY2FzZSA8Yj5BdXRvcmlzZXIgbGUgc3lzdMOobWUgw6AgaW5zdGFsbGVyIGRlcyBpbnN0YW5jZXMgYXV0b21hdGlxdWVtZW50PC9iPiBlc3QgY29jaMOpZSBkYW5zIGxcJ29uZ2xldCBkZXMgb3B0aW9ucyBkZSBMSVNFLic7CiRsYW5nWydpbnN0YW5jZV9tb2RlX25vdGljZSddID0gJ1ZvdXMgbmUgcG91cnJleiBwYXMgcmV2ZW5pciDDoCBsXCdvcHRpb24gc3VpdmFudGUgdW5lIGZvaXMgbGUgbW9kdWxlIGluc3RhbGzDqS4gU2kgdm91cyBuXCfDqnRlcyBwYXMgc8O7ciBkZSBiaWVuIHPDqWxlY3Rpb25uZXIsIHPDqWxlY3Rpb25uZXogbFwnb3B0aW9uIDxiPk1vZGUgbGlzdGU8L2I+IHBhciBkw6lmYXV0LCDDqXRhbnQgbGUgbW9kZSBoYWJpdHVlbCBldCBjb25udSBkZSBmb25jdGlvbm5lbWVudCBkZSBMSVNFLiBQb3VyIHBsdXMgZFwnaW5mbywgc2UgcsOpZsOpcmVyIMOgIGxhIGRvY3VtZW50YXRpb24gZFwnYWlkZSBkdSBtb2R1bGUuJzsKJGxhbmdbJ2luc3RhbmNlX21vZGVfaW5mbyddID0gJ0xlcyBtb2RlcyBvcMOpcmF0b2lyZXMgYWZmZWN0ZXJvbnQgY29tbWVudCA8Yj5TZWN0aW9uIGR1IG1vZHVsZSBkYW5zIGxcJ2FkbWluPC9iPiBldCA8Yj5FbnRyw6llIGRlIG1lbnUgc8OpcGFyw6llIHBvdXIgbGVzIHBhcmFtw6h0cmVzIGRcJ2luc3RhbmNlPC9iPiBmb25jdGlvbm5lbnQuIExpcmUgbGEgZG9jdW1lbnRhdGlvbiBwb3VyIHBsdXMgZGUgZMOpdGFpbHMuJzsKJGxhbmdbJ2luc3RhbmNlX21vZGUnXSA9ICdNb2RlJzsKJGxhbmdbJ21vZGVfbGlzdCddID0gJ0xpc3RlJzsKJGxhbmdbJ21vZGVfZ2xvYmFsJ10gPSAnR2xvYmFsJzsKJGxhbmdbJ21vZGVfbG9jYWwnXSA9ICdMb2NhbCc7CiRsYW5nWydzdWJtaXQnXSA9ICdFbnZveWVyJzsKJGxhbmdbJ2RlZmF1bHQnXSA9ICdEw6lmYXV0JzsKJGxhbmdbJ2NhbmNlbCddID0gJ0FubnVsZXInOwokbGFuZ1sndXBkYXRlJ10gPSAnTWV0dHJlIMOgIGpvdXInOwokbGFuZ1sncmVwYWlyJ10gPSAnUsOpcGFyZXInOwokbGFuZ1snc2F2ZV9jcmVhdGUnXSA9ICdFbnJlZ2lzdHJlciBldCBjcsOpZXIgbm91dmVhdSc7CiRsYW5nWydyZXNldCddID0gJ1JlbWV0dHJlIMOgIHrDqXJvJzsKJGxhbmdbJ2R1cGxpY2F0ZSddID0gJ0Nyw6llciB1bmUgaW5zdGFuY2UnOwokbGFuZ1snY2hhbmdlc3NhdmVkJ10gPSAnVm9zIG1vZGlmaWNhdGlvbnMgb250IMOpdMOpIHByaXNlcyBlbiBjb21wdGUuJzsKJGxhbmdbJ2NoYW5nZXNzYXZlZF9jcmVhdGUnXSA9ICdWb3RyZSDDqWzDqW1lbnQgcHLDqWPDqWRlbnQgYSBiaWVuIMOpdMOpIHNhdXZlZ2FyZMOpLiBDcsOpZXIgdW4gbm91dmVsIMOpbMOpbWVudCA/JzsKJGxhbmdbJ3RlbXBsYXRlcmVzdG9yZWQnXSA9ICdMZSBnYWJhcml0IHBhciBkw6lmYXV0IGEgw6l0w6kgcmVzdGF1csOpLic7CiRsYW5nWydhcmV5b3VzdXJlJ10gPSAnRXRlcy12b3VzIHPDu3LCt2UgZGUgdm91bG9pciBzdXBwcmltZXIgPyc7CiRsYW5nWyd1cCddID0gJ1ZlcnMgbGUgaGF1dCc7CiRsYW5nWydkb3duJ10gPSAnVmVycyBsZSBiYXMnOwokbGFuZ1snZWRpdCddID0gJ0VkaXRpb24nOwokbGFuZ1snY29weSddID0gJ0NvcGllcic7CiRsYW5nWydkZWxldGUnXSA9ICdTdXBwcmltZXInOwokbGFuZ1snbm9zdWNoaWQnXSA9ICdQYXMgZGUgdGVsIElEJzsKJGxhbmdbJ2RlbGV0ZWQnXSA9ICdMZSAob3UgbGVzKSDDqWzDqW1lbnQocykgYSAob250KSDDqXTDqSBzdXBwcmltw6kocykgYXZlYyBzdWNjw6hzLic7CiRsYW5nWydhZGQnXSA9ICdBam91dGVyICVzJzsKJGxhbmdbJ2ltcG9ydCddID0gJ0ltcG9ydGVyICVzJzsKJGxhbmdbJ2V4cG9ydCddID0gJ0V4cG9ydGVyICVzJzsKJGxhbmdbJ2Nsb25lJ10gPSAnQ2xvbmVyICVzJzsKJGxhbmdbJ2V4cG9ydF90aXRsZSddID0gJ0V4cG9ydGVyJzsKJGxhbmdbJ2ltcG9ydF90aXRsZSddID0gJ0ltcG9ydGVyJzsKJGxhbmdbJ2Nsb25lX3RpdGxlJ10gPSAnQ2xvbmVyJzsKJGxhbmdbJ2FsaWFzJ10gPSAnQWxpYXMnOwokbGFuZ1snYWxpYXNfZHVwbGljYXRlJ10gPSAnQWxpYXMgaW52YWxpZGUuIENoYXF1ZSBBbGlhcyBkb2l0IMOqdHJlIHVuaXF1ZSc7CiRsYW5nWydhbGlhc19pbnZhbGlkJ10gPSAnQWxpYXMgaW52YWxpZGUuIElsIGRvaXQgY29tbWVuY2VyIHBhciB1bmUgbGV0dHJlIGV0IG5cJ2luY2x1cmUgcXVlIGRlcyBsZXR0cmVzLCBjaGlmZnJlcyBldCB0aXJldHMgYmFzJzsKJGxhbmdbJ3NlYXJjaCddID0gJ1JlY2hlcmNoZXInOwokbGFuZ1snc2VhcmNoZm9yJ10gPSAnUmVjaGVyY2hlIGRlJzsKJGxhbmdbJ3NlYXJjaHJlc3VsdHNmb3InXSA9ICdSw6lzdWx0YXQgZGUgcmVjaGVyY2hlIHBvdXInOwokbGFuZ1snZmlyc3RwYWdlJ10gPSAnPDwnOwokbGFuZ1sncHJldnBhZ2UnXSA9ICc8JzsKJGxhbmdbJ25leHRwYWdlJ10gPSAnPic7CiRsYW5nWydsYXN0cGFnZSddID0gJz4+JzsKJGxhbmdbJ21vZHVsZV9uYW1lJ10gPSAnTm9tIGR1IG1vZHVsZSc7CiRsYW5nWydtb2R1bGVfbmFtZV9lbXB0eSddID0gJ0xlIG5vbSBkdSBtb2R1bGUgZXN0IHZpZGUnOwokbGFuZ1snbW9kdWxlX25hbWVfaW52YWxpZCddID0gJ0xlIG5vbSBkdSBtb2R1bGUgY29udGllbnQgZGVzIGNhcmFjdMOocmVzIGludmFsaWRlcyc7CiRsYW5nWydtb2R1bGVjb3BpZWQnXSA9ICdNb2R1bGUgY29wacOpIGF2ZWMgc3VjY8Oocyc7CiRsYW5nWydzZWxlY3Rfb25lJ10gPSAnU8OpbGVjdGlvbm5lei1lbiB1bic7CiRsYW5nWydzaXplJ10gPSAnVGFpbGxlJzsKJGxhbmdbJ21heF9sZW5ndGgnXSA9ICdUYWlsbGUgbWF4aW1hbGUnOwokbGFuZ1snd3lzaXd5ZyddID0gJ1dZU0lXWUcnOwokbGFuZ1snZGF0ZV9mb3JtYXQnXSA9ICdGb3JtYXQgZGUgZGF0ZSc7CiRsYW5nWyd0aW1lX2Zvcm1hdCddID0gJ0Zvcm1hdCBkZSB0ZW1wcyc7CiRsYW5nWydmb3JtYXRfdHlwZSddID0gJ1R5cGUgZGUgZm9ybWF0JzsKJGxhbmdbJ2RpciddID0gJ1LDqXBlcnRvaXJlJzsKJGxhbmdbJ2FsbG93ZWQnXSA9ICdBdXRvcmlzw6knOwokbGFuZ1snZXhjbHVkZV9wcmVmaXgnXSA9ICdFeGNsdXJlIGxlIHByw6lmaXhlJzsKJGxhbmdbJ2ltYWdlJ10gPSAnSW1hZ2UnOwokbGFuZ1snZmlsZSddID0gJ0ZpY2hpZXInOwokbGFuZ1sncmVxdWlyZWQnXSA9ICdSZXF1aXMnOwokbGFuZ1snYXNjZW5kaW5nJ10gPSAnQXNjZW5kYW50JzsKJGxhbmdbJ2Rlc2NlbmRpbmcnXSA9ICdEZXNjZW5kYW50JzsKJGxhbmdbJ2V4dHJhJ10gPSAnRXh0cmEnOwokbGFuZ1snY29tYmluZWQnXSA9ICdDb21iaW7DqSc7CiRsYW5nWydzaG93X3NlY29uZHMnXSA9ICdNb250cmVyIGxlcyBzZWNvbmRlcyc7CiRsYW5nWyd2YWx1ZSddID0gJ1ZhbGV1cic7CiRsYW5nWyd3aWR0aCddID0gJ0xhcmdldXInOwokbGFuZ1snbWluX3ZhbHVlJ10gPSAnVmFsZXVyIG1pbmltdW0nOwokbGFuZ1snbWF4X3ZhbHVlJ10gPSAnVmFsZXVyIG1heGltdW0nOwokbGFuZ1snaW5jcmVtZW50X2J5J10gPSAnSW5jcsOpbWVudGVyIHBhcic7CiRsYW5nWydzdWJ0eXBlJ10gPSAnU291cy10eXBlJzsKJGxhbmdbJ3Nob3dhbGwnXSA9ICdNb250cmVyIHRvdXQnOwokbGFuZ1snY29sdW1ucyddID0gJ0NvbG9ubmVzJzsKJGxhbmdbJ293bmVyJ10gPSAnUHJvcHJpw6l0YWlyZSc7CiRsYW5nWyd1bnRpdGxlZCddID0gJ1NhbnMgdGl0cmUnOwokbGFuZ1snaW1wb3J0X2luc3RhbmNlJ10gPSAnSW1wb3J0ZXIgdW4gZmljaGllciBYTUwgZXhwb3J0w6kgZGUgTElTRSc7CiRsYW5nWydpbXBvcnRfaW5zdGFuY2VfaW5mbyddID0gJ1ZvdXMgcG91dmV6IGxhaXNzZXIgbGUgY2hhbXAgPHN0cm9uZz5Ob20gZGUgbFwnaW5zdGFuY2U8L3N0cm9uZz4gdmlkZS4gTGUgbm9tIGRlIGxcJ2luc3RhbmNlIHNlcmEgZXh0cmFpdCBwYXIgZMOpZmF1dCBkdSBYTUwuJzsKJGxhbmdbJ3NhdmVfZG5hJ10gPSAnU2F1dmVyIGxcJ0FETic7CiRsYW5nWydzYXZlX2RuYV90aXRsZSddID0gJ1NhdXZlciBsXCdBRE4nOwokbGFuZ1snZmlsZW5hbWUnXSA9ICdOb20gZGUgZmljaGllcic7CiRsYW5nWydlbmNsb3N1cmUnXSA9ICdEw6lsaW1pdGV1ciBkZSBjaGHDrm5lIGRlIGNhcmFjdMOocmVzJzsKJGxhbmdbJ3NlcGFyYXRvciddID0gJ1PDqXBhcmF0ZXVyJzsKJGxhbmdbJ3ZhbHVlcyddID0gJ1ZhbGV1cnMnOwokbGFuZ1snaW1wb3J0X2FsaWFzJ10gPSAnQWxpYXMgZFwnw6lsw6ltZW50IC8gZGUgZMOpZmluaXRpb24gZGUgY2hhbXAnOwokbGFuZ1snZmlsZV9hbGlhcyddID0gJ0FsaWFzL2VudMOqdGUgZGUgZmljaGllcic7CiRsYW5nWydlcnJvcl9vcHRpb25yZXF1aXJlZCddID0gJ0xcJ29wdGlvbiAlcyBlc3QgcmVxdWlzZSc7CiRsYW5nWydlcnJvcl9iYWRfZXh0ZW5zaW9uJ10gPSAnTGUgZmljaGllciBxdWUgdm91cyBlc3NheWVyIGRlIHTDqWzDqXZlcnNlciBuXCdhIHBhcyBsYSBib25uZSBleHRlbnNpb24nOwokbGFuZ1snZXJyb3JfZmlsZV9wZXJtaXNzaW9ucyddID0gJ0lsIHkgYSBldSB1biBwcm9ibMOobWUgYXZlYyBsZXMgcGVybWlzc2lvbnMgZGUgZmljaGllcic7CiRsYW5nWydlcnJvcl9maWxlX2VtcHR5J10gPSAnUGFzIGRlIGZpY2hpZXIgZm91cm5pJzsKJGxhbmdbJ2Vycm9yX2ZpbGVfbm9jc3YnXSA9ICdMZSBmaWNoaWVyIG5cJ2VzdCBwYXMgdW4gQ1NWJzsKJGxhbmdbJ2ZpbHRlciddID0gJ0ZpbHRyZSc7CiRsYW5nWydmaWx0ZXJwcm9tcHQnXSA9ICdGaWx0cmUgJXMnOwokbGFuZ1sncGFyYW1fZmlsdGVyX21pc3NpbmcnXSA9ICdMZSBwYXJhbcOodHJlIDxlbT5maWx0ZXI8L2VtPiBlc3QgcmVxdWlzIGVuIG1vZGUgZmlsdHJlLic7CiRsYW5nWydhbGwnXSA9ICdUb3VzJzsKJGxhbmdbJ21vZGRlc2NyaXB0aW9uJ10gPSAnTElTRSB2b3VzIHBlcm1ldCBkZSBjcsOpZXIgZGVzIGxpc3RlcyBxdWUgdm91cyBwb3V2ZXogYWZmaWNoZXIgc3VyIHZvdHJlIHNpdGUgd2ViLic7CiRsYW5nWydwb3N0aW5zdGFsbCddID0gJ2Egw6l0w6kgaW5zdGFsbMOpIGF2ZWMgc3VjY8Oocyc7CiRsYW5nWydwb3N0dW5pbnN0YWxsJ10gPSAnYSDDqXTDqSBkw6lzaW5zdGFsbMOpIGF2ZWMgc3VjY8Oocyc7CiRsYW5nWydnZW5lcmFsJ10gPSAnR8OpbsOpcmFsJzsKJGxhbmdbJ3VzYWdlJ10gPSAnVXNhZ2UnOwokbGFuZ1sncGVybWlzc2lvbnMnXSA9ICdQZXJtaXNzaW9ucyc7CiRsYW5nWydkdXBsaWNhdGluZyddID0gJ0Nyw6llciBkZXMgaW5zdGFuY2VzJzsKJGxhbmdbJ3VwZ3JhZGluZyddID0gJ01ldHRyZSDDoCBqb3VyJzsKJGxhbmdbJ2ltcG9ydGluZyddID0gJ0ltcG9ydGVyIGRlcHVpcyBkZXMgaW5zdGFsbGF0aW9ucyBMaXN0SXRFeHRlbmRlZCBleGlzdGFudGVzJzsKJGxhbmdbJ3NtYXJ0eV9wbHVnaW5zJ10gPSAnUGx1Z2lucyBzbWFydHknOwokbGFuZ1sndXBncmFkZV9mcm9tJ10gPSAnTWV0dHJlIMOgIGpvdXIgZGUnOwokbGFuZ1snaW1wb3J0aW5nX2Zyb21fbGkyJ10gPSAnSW1wb3J0ZXIgZGVwdWlzIGRlcyBpbnN0YW5jZXMgTEkyJzsKJGxhbmdbJ3RlYW0nXSA9ICfDiXF1aXBlJzsKJGxhbmdbJ3BhcmFtcyddID0gJ1BhcmFtw6h0cmVzJzsKJGxhbmdbJ2hlbHBfcGFyYW1fc2hvd2FsbCddID0gJ01vbnRyZXIgdG91cyBsZXMgw6lsw6ltZW50cywgcXVlbGxlIHF1ZSBzb2l0IGxhIGRhdGUgZGUgZmluLic7CiRsYW5nWydoZWxwX3BhcmFtX2RldGFpbHRlbXBsYXRlJ10gPSAnTGUgZ2FiYXJpdCBkZSBkw6l0YWlsIHF1ZSB2b3VzIHNvdWhhaXRleiB1dGlsaXNlci4nOwokbGFuZ1snaGVscF9wYXJhbV9zdW1tYXJ5dGVtcGxhdGUnXSA9ICdMZSBnYWJhcml0IGRlIHNvbW1haXJlIHF1ZSB2b3VzIHNvdWhhaXRleiB1dGlsaXNlci4nOwokbGFuZ1snaGVscF9wYXJhbV9zZWFyY2h0ZW1wbGF0ZSddID0gJ0xlIGdhYmFyaXQgZGUgcmVjaGVyY2hlIHF1ZSB2b3VzIHNvdWhhaXRleiB1dGlsaXNlci4nOwokbGFuZ1snaGVscF9wYXJhbV9jYXRlZ29yeXRlbXBsYXRlJ10gPSAnTGUgZ2FiYXJpdCBkZSBjYXTDqWdvcmllIHF1ZSB2b3VzIHNvdWhhaXRleiB1dGlsaXNlci4nOwokbGFuZ1snaGVscF9wYXJhbV95ZWFyJ10gPSAnRmlsdHJlciBsZXMgYXJ0aWNsZXMgcGFyIGFubsOpZS4nOwokbGFuZ1snaGVscF9wYXJhbV9tb250aCddID0gJ0ZpbHRyZXIgbGVzIGFydGljbGVzIHBhciBtb2lzLic7CiRsYW5nWycwMDAwMCddID0gJyVzIDogRXJyZXVyIExJU0UgaW5jb25udWUgISc7CiRsYW5nWycwMDAwMSddID0gJyVzIDogRXJyZXVyIGRpc2Nyw6h0ZSBMSVNFIDogJXMhJzsKJGxhbmdbJzAwMDAyJ10gPSAnJXMgOiBFcnJldXIgZGlzY3LDqHRlIGRlIGJhc2UgZGUgZG9ubsOpZXMgTElTRSA6ICVzISc7CiRsYW5nWycwMDAxMCddID0gJyVzIDogVGVudGF0aXZlIGRcJ8OpY3JpdHVyZSBkZSBjb25maWd1cmF0aW9uIDsgbGVzIHZhcmlhYmxlcyBkZSBjb25maWd1cmF0aW9uIExJU0Ugc29udCBlbiBMRUNUVVJFIFNFVUxFICEnOwokbGFuZ1snMDAwMzAnXSA9ICclcyA6IMOJY2hlYyBkZSBjcsOpYXRpb24gZHUgcsOpcGVydG9pcmUgJXMgISc7Cj8+]]></data>
	</file>
	<file>
	  <filename>/lang/ext/it_IT.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKJGxhbmdbJ2ludmFsaWRfY2hhcmFjdGVycyddID0gJ0NhcmF0dGVyaSwgcXVhbGk6ICVzIG5vbiBhbW1lc3NpIGNvbiBpbCBjYW1wbzogJXMnOwokbGFuZ1snZ3JlZW4nXSA9ICdWZXJkZSc7CiRsYW5nWyd5ZWxsb3cnXSA9ICdHaWFsbG8nOwokbGFuZ1sncmVkJ10gPSAnUm9zc28nOwokbGFuZ1snbGlzZV9tb2RlX2xpc3RfbmFtZSddID0gJ01vZGFsaXTDoCBlbGVuY28nOwokbGFuZ1snbGlzZV9tb2RlX2dsb2JhbF9uYW1lJ10gPSAnTW9kYWxpdMOgIGdsb2JhbGUnOwokbGFuZ1snbGlzZV9tb2RlX2xvY2FsX25hbWUnXSA9ICdNb2RhbGl0w6AgbG9jYWxlJzsKJGxhbmdbJ3Byb21wdF90aXRsZV9kaXNwbGF5X21vZGUnXSA9ICdNb2RhbGl0w6AgdmlzdWFsaXp6YXppb25lIHRpdG9sbyc7CiRsYW5nWyd0ZG1faW5wdXQnXSA9ICdpbW1pc3Npb25lJzsKJGxhbmdbJ3RkbV9yZWFkb25seSddID0gJ3NvbGEgbGV0dHVyYSc7CiRsYW5nWyd0ZG1faGlkZGVuJ10gPSAnbmFzY29zdG8nOwokbGFuZ1sncHJvbXB0X3RpdGxlX2F1dG9fZ2VuJ10gPSAnR2VuZXJhemlvbmUgYXV0b21hdGljYSB0aXRvbG8nOwokbGFuZ1sncHJvbXB0X3RpdGxlX3RlbXBsYXRlJ10gPSAnTW9kZWxsbyBkaSBnZW5lcmF6aW9uZSBhdXRvbWF0aWNhIHRpdG9sbyc7CiRsYW5nWydwcm9tcHRfYWxpYXNfdGVtcGxhdGUnXSA9ICdNb2RlbGxvIGRpIGdlbmVyYXppb25lIGF1dG9tYXRpY2EgYWxpYXMnOwokbGFuZ1snaXRlbSddID0gJ0VsZW1lbnRvJzsKJGxhbmdbJ2l0ZW1zJ10gPSAnRWxlbWVudGknOwokbGFuZ1snZ2xvYmFsJ10gPSAnSW1wb3N0YXppb25pIGdsb2JhbGknOwokbGFuZ1snbG9jYWxfc2V0dGluZ3MnXSA9ICdJbXBvc3RhemlvbmknOwokbGFuZ1snZmllbGRkZWYnXSA9ICdEZWZpbml6aW9uZSBjYW1wbyc7CiRsYW5nWydmaWVsZGRlZnMnXSA9ICdEZWZpbml6aW9uZSBjYW1waSc7CiRsYW5nWyd0ZW1wbGF0ZSddID0gJ01vZGVsbG8nOwokbGFuZ1sndGVtcGxhdGVzJ10gPSAnTW9kZWxsaSc7CiRsYW5nWydjYXRlZ29yeSddID0gJ0NhdGVnb3JpYSc7CiRsYW5nWydjYXRlZ29yaWVzJ10gPSAnQ2F0ZWdvcmllJzsKJGxhbmdbJ29wdGlvbiddID0gJ09wemlvbmUnOwokbGFuZ1snb3B0aW9ucyddID0gJ09wemlvbmknOwokbGFuZ1snbWFpbnRlbmFuY2UnXSA9ICdNYW51dGVuemlvbmUnOwokbGFuZ1snYmFjayddID0gJ1ZhaSBpbmRpZXRybyB1bmEgcGFnaW5hJzsKJGxhbmdbJ2Fib3V0J10gPSAnQWJvdXQnOwokbGFuZ1snd2hhdHNuZXcnXSA9ICdDb3NhIGNcJ8OoIGRpIG51b3ZvJzsKJGxhbmdbJ3Byb21wdF9maXhfZmllbGRkZWZzJ10gPSAnVGVudGF0aXZvIGRpIHJpcGFyYXJlIGxlIHRhYmVsbGUgZGVsIGRhdGFiYXNlIGRpIGRlZmluaXppb25lIGNhbXBvJzsKJGxhbmdbJ21lc3NhZ2VfZmllbGRkZWZzX2ZpeGVkJ10gPSAnUmlwYXJhdGUgZGVmaW5pemlvbmkgZGkgY2FtcG8gc3UgdHV0dGUgbGUgaXN0YW56ZS4nOwokbGFuZ1snbWVzc2FnZV9pbnN0YW5jZXNfY29waWVkJ10gPSAnVHV0dGUgbGUgaXN0YW56ZSBzb25vIHN0YXRlIGNsb25hdGUuJzsKJGxhbmdbJ2l0ZW1fdGl0bGUnXSA9ICdUaXRvbG8nOwokbGFuZ1sncHJvbXB0X2l0ZW1fdGl0bGUnXSA9ICdUaXRvbG8gZWxlbWVudG8nOwokbGFuZ1sncHJvbXB0X29mJ10gPSAnZGknOwokbGFuZ1snYWN0aXZlJ10gPSAnQXR0aXZvJzsKJGxhbmdbJ2NyZWF0ZV90aW1lJ10gPSAnRGF0YSBkaSBjcmVhemlvbmUnOwokbGFuZ1snbW9kaWZpZWRfdGltZSddID0gJ0RhdGEgZGkgbW9kaWZpY2EnOwokbGFuZ1sndGltZV9jb250cm9sJ10gPSAnVXNhIGNvbnRyb2xsbyB0ZW1wb3JhbGUnOwokbGFuZ1snc3RhcnRfdGltZSddID0gJ0RhdGEgaW5pemlvJzsKJGxhbmdbJ2VuZF90aW1lJ10gPSAnRGF0YSBmaW5lJzsKJGxhbmdbJ2l0ZW1fdGl0bGVfZW1wdHknXSA9ICdJbCB0aXRvbG8gZWxlbWVudG8gw6ggdnVvdG8nOwokbGFuZ1sncmVxdWlyZWRfZmllbGRfZW1wdHknXSA9ICdVbiBjYW1wbyBvYmJsaWdhdG9yaW8gw6ggdnVvdG8nOwokbGFuZ1sndG9vX2xvbmcnXSA9ICdJbCB2YWxvcmUgZGVsIGNhbXBvIGVjY2VkZSBsYSBsdW5naGV6emEgbWFzc2ltYSc7CiRsYW5nWydhcHByb3ZlJ10gPSAnSW1wb3N0YSBzdGF0byBhIFwnQXR0aXZvXCcnOwokbGFuZ1sncmV2ZXJ0J10gPSAnSW1wb3N0YSBzdGF0byBhIFwnSW5hdHRpdm9cJyc7CiRsYW5nWyd0b2dnbGVfc3RhdHVzJ10gPSAnSW50ZXJydXR0b3JlIHN0YXRvJzsKJGxhbmdbJ3NlbGVjdF9pdGVtJ10gPSAnU2VsZXppb25hIGVsZW1lbnRvJzsKJGxhbmdbJ3N1Ym1pdF9vcmRlciddID0gJ1NhbHZhIG9yZGluZSc7CiRsYW5nWydkZWxldGVfc2VsZWN0ZWQnXSA9ICdDYW5jZWxsYSBzZWxlemlvbmF0byAlcyc7CiRsYW5nWydhcmV5b3VzdXJlX2RlbGV0ZW11bHRpcGxlJ10gPSAnU2VpIGNlcnRvIGRpIHZvbGVyIGNhbmNlbGxhcmUgdHV0dGkgcXVlc3RpICVzPyc7CiRsYW5nWydzZWxlY3RfYWxsJ10gPSAnU2VsZXppb25hIHR1dHRvJzsKJGxhbmdbJ2Vycm9yX3N0YXJ0Z3JlYXRlcmVuZCddID0gJ0xhIGRhdGEgZGkgaW5pemlvIMOoIG1hZ2dpb3JlIGRpIHF1ZWxsYSBkaSBmaW5lLic7CiRsYW5nWydpdGVtX2FsaWFzX2V4aXN0cyddID0gJ0FsaWFzIGVsZW1lbnRvIGdpw6AgcHJlc2VudGUuIExcJ2FsaWFzIGRldmUgZXNzZXJlIHVuaWNvLic7CiRsYW5nWydyZXR1cm5fdXJsJ10gPSAnUml0b3JuYSc7CiRsYW5nWydwYXRoY29udGFpbnN2YXJzJ10gPSAnUXVlc3RvIGNhbXBvIHB1w7IgZXNzZXJlIG1vZGlmaWNhdG8gZG9wbyBhdmVyIHNhbHZhdG8gcXVlc3RvICVzJzsKJGxhbmdbJ3VybCddID0gJ1NjZWdsaSB1biBVUkwgcGVyc29uYWxpenphdG8gcGVyIHF1ZXN0byBlbGVtZW50byBvIGFjY2V0dGEgcXVlbGxvIGdlbmVyYXRvJzsKJGxhbmdbJ29wdGlvbl9jbGlja19hcnJvd3MnXSA9ICdGYWNlbmRvIGNsaWMgc3VsbGUgZnJlY2NlIHNpIGludmlhJzsKJGxhbmdbJ2RsZ19lZGl0b3JfbnBfd2Fybl90aXRsZSddID0gJ0NvbmZlcm1hJzsKJGxhbmdbJ2RsZ19lZGl0b3JfbnBfd2FybmluZyddID0gJzxwPkhhaSBhcHBvcnRhdG8gZGVsbGUgbW9kaWZpY2hlIGEgcXVlc3RvIG1vZHVsbyBlIGxlIHBlcmRlcmFpIHVzY2VuZG8hPC9wPjxwPlNlaSBzaWN1cm8gZGkgdm9sZXIgcHJvY2VkZXJlPz88L3A+JzsKJGxhbmdbJ2l0ZW1fdmFyX2hlbHBfaXRlbV9pZCddID0gJ1NlIHZpZW5lIGZvcm5pdG8gaXRlbV9pZCwgZ2xpIGVsZW1lbnRpIGRvdnJlYmJlcm8gZXNzZXJlIHF1ZWxsaSBlc2lzdGVudGkgbmVsIGRhdGFiYXNlLiBTZSBzdGFpIGltcG9ydGFuZG8gbnVvdmkgZWxlbWVudGksIGlnbm9yYSBxdWVzdG8gY2FtcG8uJzsKJGxhbmdbJ2l0ZW1fdmFyX2hlbHBfY2F0ZWdvcnlfaWQnXSA9ICdTZSB2aWVuZSBmb3JuaXRvIGNhdGVnb3J5X2lkLCBsXCdlbGVtZW50byB2ZXJyw6AgaW1wb3N0YXRvIGluIHF1ZXN0YSBjYXRlZ29yaWEuIFNlIGNhdGVnb3J5X2lkIHZpZW5lIGZvcm5pdG8gbWEgbm9uIGVzaXN0ZSwgdmllbmUgaWdub3JhdG8gZSB2aWVuZSBpbnZlY2UgdXRpbGl6emF0YSBsYSBjYXRlZ29yaWEgcHJlZGVmaW5pdGEuJzsKJGxhbmdbJ2l0ZW1fdmFyX2hlbHBfdGl0bGUnXSA9ICdUaXRvbG8gZGVsbFwnYXJ0aWNvbG8gY2hlIHZpZW5lIG1vc3RyYXRvIG5lbGxcJ1VSTCBlIGRlc2NyaXZlIGxcJ2VsZW1lbnRvLic7CiRsYW5nWydpdGVtX3Zhcl9oZWxwX2FsaWFzJ10gPSAnTFwnYWxpYXMgZWxlbWVudG8gZGV0ZXJtaW5hIHVuIG5vbWUgYWNjZXR0YWJpbGUgZGFsIGNvbXB1dGVyLiBMXCdhbGlhcyDDqCB1bmljbyBwZXIgb2duaSBlbGVtZW50by4nOwokbGFuZ1snaXRlbV92YXJfaGVscF91cmwnXSA9ICdFbGVtZW50byBVUkwgcGVyc29uYWxpenphdG8uIERldmUgZXNzZXJlIHVuaXZvY28gcGVyIG9nbmkgZWxlbWVudG8gZSBhIGxpdmVsbG8gZGkgc2lzdGVtYS4nOwokbGFuZ1snaXRlbV92YXJfaGVscF9wb3NpdGlvbiddID0gJ8OIIHBvc3NpYmlsZSBpbXBvc3RhcmUgbGEgcG9zaXppb25lIGRlZ2xpIGVsZW1lbnRpIGNoZSBkZXRlcm1pbmEgaWwgbG9ybyBvcmRpbmUgZGkgdmlzdWFsaXp6YXppb25lLic7CiRsYW5nWydpdGVtX3Zhcl9oZWxwX2FjdGl2ZSddID0gJ1F1ZXN0YSBvcHppb25lIGltcG9zdGEgbFwnZWxlbWVudG8gY29tZSBhdHRpdm8gbyBpbmF0dGl2by4nOwokbGFuZ1snaXRlbV92YXJfaGVscF9zdGFydF90aW1lJ10gPSAnSW1wb3N0YXJlIGxhIGRhdGEgaW4gY3VpIHNpIGRlc2lkZXJhIHZpc3VhbGl6emFyZSBxdWVzdG8gZWxlbWVudG8uJzsKJGxhbmdbJ2l0ZW1fdmFyX2hlbHBfZW5kX3RpbWUnXSA9ICdJbXBvc3RhcmUgbGEgZGF0YSBpbiBjdWkgc2kgZGVzaWRlcmEgbmFzY29uZGVyZSBxdWVzdG8gZWxlbWVudG8uJzsKJGxhbmdbJ2l0ZW1fdmFyX2hlbHBfb3duZXInXSA9ICdJbXBvc3RhIElEIHV0ZW50ZSBhbW1pbmlzdHJhdG9yZSBwZXIgcXVlc3RvIGVsZW1lbnRvLCBwZXIgaW1wb3N0YXJlIGlsIHByb3ByaWV0YXJpby4nOwokbGFuZ1snaXRlbV92YXJfaGVscF9rZXkxJ10gPSAnSW1wb3N0YSBpZGVudGlmaWNhdG9yZSBhZ2dpdW50aXZvIFwna2V5MVwnIHBlciBxdWVzdG8gZWxlbWVudG8uJzsKJGxhbmdbJ2l0ZW1fdmFyX2hlbHBfa2V5MiddID0gJ0ltcG9zdGEgaWRlbnRpZmljYXRvcmUgYWdnaXVudGl2byBcJ2tleTJcJyBwZXIgcXVlc3RvIGVsZW1lbnRvLic7CiRsYW5nWydpdGVtX3Zhcl9oZWxwX2tleTMnXSA9ICdJbXBvc3RhIGlkZW50aWZpY2F0b3JlIGFnZ2l1bnRpdm8gXCdrZXkyXCcgcGVyIHF1ZXN0byBlbGVtZW50by4nOwokbGFuZ1snZWRpdGZpZWxkZGVmJ10gPSAnTW9kaWZpY2FyZSBsYSBkZWZpbml6aW9uZSBkaSBjYW1wbyc7CiRsYW5nWydmaWVsZGRlZl9uYW1lJ10gPSAnTm9tZSc7CiRsYW5nWydmaWVsZGRlZl9oZWxwJ10gPSAnU3VnZ2VyaW1lbnRvIHV0aWxlJzsKJGxhbmdbJ2ZpZWxkZGVmX3R5cGUnXSA9ICdUaXBvJzsKJGxhbmdbJ2ZpZWxkZGVmX2RlcHMnXSA9ICdEaXBlbmRlbnplIGRlaSBtb2R1bGknOwokbGFuZ1snZmllbGRkZWZfZGVwc19taXNzaW5nJ10gPSAnTWFuY2FubyB1bm8gbyBwacO5IGRpcGVuZGVuemUgZGVpIG1vZHVsaS4gU2kgcHJlZ2EgZGkgaW5zdGFsbGFyZSB0dXR0aSBpIG1vZHVsaSBuZWNlc3NhcmkgcGVyIGluaXppYXJlIGEgdXRpbGl6emFyZSBxdWVzdG8gY2FtcG8uJzsKJGxhbmdbJ2ZpZWxkZGVmX3NjYW4nXSA9ICdTY2Fuc2lvbmUgZGVsbGUgZGVmaW5pemlvbmkgZGVpIGNhbXBpJzsKJGxhbmdbJ2ZpZWxkZGVmX3NjYW5uZWQnXSA9ICdEZWZpbml6aW9uaSBkaSBjYW1wbyBzY2Fuc2lvbmF0ZSc7CiRsYW5nWydmaWVsZGRlZl90eXBlX25vdHNldCddID0gJ1RpcG8gZGkgZGVmaW5pemlvbmkgZGkgY2FtcG8gbm9uIGltcG9zdGF0byc7CiRsYW5nWydmaWVsZGRlZl9mcmllbmRseXR5cGUnXSA9ICdOb21lIFRpcG8gc2VtcGxpZmljYXRvJzsKJGxhbmdbJ2ZpZWxkZGVmX29yaWdpbmF0b3InXSA9ICdPcmlnaW5hdG9yZSc7CiRsYW5nWydmaWVsZGRlZl9tYXhfbGVuZ3RoJ10gPSAnTHVuZ2hlenphIG1hc3NpbWEnOwokbGFuZ1snZmllbGRkZWZfcmVxdWlyZWQnXSA9ICdPYmJsaWdhdG9yaW8nOwokbGFuZ1sncmVnaXN0ZXJlZF9maWVsZGRlZnMnXSA9ICdEZWZpbml6aW9uZSBjYW1waSByZWdpc3RyYXRlJzsKJGxhbmdbJ2ZpZWxkZGVmX25hbWVfZW1wdHknXSA9ICdOb21lIGRlZmluaXppb25lIGNhbXBvIHZ1b3RvJzsKJGxhbmdbJ2ZpZWxkZGVmX25hbWVfZXhpc3RzJ10gPSAnTm9tZSBkZWZpbml6aW9uZSBjYW1wbyBnacOgIHByZXNlbnRlJzsKJGxhbmdbJ2ZpZWxkZGVmX2FsaWFzX2V4aXN0cyddID0gJ05vbWUgZGVmaW5pemlvbmUgY2FtcG8gZ2nDoCBwcmVzZW50ZS4gRGV2ZSBlc3NlcmUgdW5pY28nOwokbGFuZ1snZmllbGRkZWZfaXNfdW5pcXVlJ10gPSAnRGVmaW5pemlvbmUgZGkgY2FtcG8gw6ggdW5pY28sIG5vbiBzaSBwdcOyIGF2ZXJlIHBpw7kgZGkgdW5vIGRpIHF1ZXN0aS4nOwokbGFuZ1snZmllbGRkZWZfaW1hZ2UnXSA9ICdEb3ZyZWJiZSBlc3NlcmUgaW1tYWdpbmUnOwokbGFuZ1snaW52YWxpZCddID0gJ0lsIHZhbG9yZSBkZWwgY2FtcG8gbm9uIMOoIHZhbGlkbyc7CiRsYW5nWydzdGF0dXNfcmVxdWlyZWQnXSA9ICdJbXBvc3RhIGxvIHN0YXRvIHN1ICJyaWNoaWVzdG8iJzsKJGxhbmdbJ3N0YXR1c19vcHRpb25hbCddID0gJ0ltcG9zdGEgbG8gc3RhdG8gc3UgImZhY29sdGF0aXZvIic7CiRsYW5nWydpc19kZWZhdWx0J10gPSAnw4ggaW1wb3N0YXRvIHN1ICJQcmVkZWZpbml0byInOwokbGFuZ1snc3RhdHVzX2RlZmF1bHQnXSA9ICdJbXBvc3RhIHN1ICJQcmVkZWZpbml0byInOwokbGFuZ1snaGVscHRleHRfdGl0bGUnXSA9ICdQb3NzaWJpbGkgaXN0cnV6aW9uaSBwZXIgbGEgZGVmaW5pemlvbmUgZGVsIGNhbXBvIHBlciBpbCBjYW1wbyBFeHRyYTonOwokbGFuZ1snZmllbGRkZWZfdGVtcGxhdGUnXSA9ICdNb2RlbGxvIChkZXByZWNhdG8pJzsKJGxhbmdbJ2ZpZWxkX3NlYXJjaF9pbmRleCddID0gJ0NvbnNlbnRpIGEgcXVlc3RvIGNhbXBvIGRpIGVzc2VyZSBpbmRpY2l6emF0byBkYWxsYSByaWNlcmNhIGdsb2JhbGUnOwokbGFuZ1sncHJvbXB0X3JlaW5kZXhfZG9fc2VhcmNoJ10gPSAnUmVpbmRpY2l6emEgbGEgcmljZXJjYSBhbGxcJ2ludmlvIChvIHJpbXVvdmkgbGUgcGFyb2xlIHNlIHF1YW50byBzb3ByYSDDqCBkZXNlbGV6aW9uYXRvKSc7CiRsYW5nWydmaWVsZGRlZl9zZWFyY2hfaW5kZXhfaGVscCddID0gJ1NlbGV6aW9uYW5kbyBxdWVzdGEgY2FzZWxsYSwgcXVlc3RvIGNhbXBvIHZlcnLDoCBjb250cmFzc2VnbmF0byBwZXIgZXNzZXJlIGluZGljaXp6YXRvIGRhbGxhIHJpY2VyY2EgZ2xvYmFsZSwgZHVyYW50ZSBsYSBjcmVhemlvbmUgZGkgbnVvdmkgZWxlbWVudGksIGxhIG1vZGlmaWNhIGRpIGVsZW1lbnRpIG8gbGEgcmVpbmRpY2l6emF6aW9uZSBkaSB0dXR0byBpbCBjb250ZW51dG8gZGFsIG1vZHVsbyBkaSByaWNlcmNhIHNlbGV6aW9uYXRvLic7CiRsYW5nWyd3YXJuaW5nX3JlaW5kZXhfc2VhcmNoX25vdyddID0gJ1NpIHByZWdhIGRpIG5vdGFyZSBjaGUgcXVlc3RvIHB1w7IgZXNzZXJlIGxlbnRvLCBhIHNlY29uZGEgZGVsIG51bWVybyBkaSByZWNvcmQuJzsKJGxhbmdbJ3dhcm5pbmdfcmVpbmRleF9zZWFyY2gnXSA9ICdTaSBub3RpIGNoZSBzZWJiZW5lIHF1ZXN0byBtb2R1bG8gbm9uIHNpYSBzdGF0byBwcm9nZXR0YXRvIHBlciBzdXBwb3J0YXJlIHVuIG51bWVybyBlbGV2YXRvIGRpIGVsZW1lbnRpLCDDqCBub3RvIGNoZSB2aWVuZSB1dGlsaXp6YXRvLCBpbiBkZXRlcm1pbmF0ZSBjb25maWd1cmF6aW9uaSBkZWwgc2VydmVyLCBjb24gZGVjaW5lIGRpIG1pZ2xpYWlhIGRpIHJlY29yZCBpbnNpZW1lIGEgdW4gbnVtZXJvIGVsZXZhdG8gZGkgY2FtcGkgcGVyc29uYWxpenphdGkgcGVyIGlzdGFuemEsIFR1dHRvIGNpw7IgY29uIHJhZ2lvbmV2b2xpIHByZXN0YXppb25pLiBQZXJ0YW50bywgc2kgdGVuZ2EgcHJlc2VudGUgY2hlIGxcJ2luZGljaXp6YXppb25lIGRpIHF1ZXN0byBtb2R1bG8gY29uIGlsIG1vZHVsbyBkaSByaWNlcmNhIHB1w7IgZXNzZXJlIGVmZmljYWNlIHNvbG8gY29uIHVuIG51bWVybyBkaSBlbGVtZW50aSBuZWxsXCdvcmRpbmUgZGVsbGUgY2VudGluYWlhIGRpIHJlY29yZCwgbm9uIGRlbGxlIG1pZ2xpYWlhLiBTZSBzaSBwcmV2ZWRlIGRpIHV0aWxpenphcmUgdW4gbnVtZXJvIGVub3JtZSBkaSByZWNvcmQsIHZhIHRlbnV0byBwcmVzZW50ZSBjaGUgbFwnaW5kaWNpenphemlvbmUgZSBsYSByaWNlcmNhIHN0ZXNzYSBwb3Nzb25vIGVzc2VyZSBsZW50ZSBmaW5vIGFsbFwnZXN0cmVtbyBkaSBlc3NlcmUgaW51dGlsaXp6YWJpbGksIHF1aW5kaSBjaSBzaSBkb3ZyZWJiZSBhdHRlbmVyZSBhbGxhIGZ1bnppb25lIGRpIHJpY2VyY2EgZGVsIG1vZHVsbyBwb2ljaMOpIMOoIG90dGltaXp6YXRhIHBlciBxdWVzdGkgY2FzaS4nOwokbGFuZ1snZmllbGRkZWZfVGV4dElucHV0J10gPSAnSW1taXNzaW9uZSBkaSB0ZXN0byc7CiRsYW5nWydmaWVsZGRlZl9DaGVja2JveCddID0gJ0Nhc2VsbGEgZGkgY29udHJvbGxvJzsKJGxhbmdbJ2ZpZWxkZGVmX1RleHRBcmVhJ10gPSAnQXJlYSBkaSB0ZXN0byc7CiRsYW5nWydmaWVsZGRlZl9TZWxlY3REYXRlJ10gPSAnU2VsZXppb25hIERhdGEnOwokbGFuZ1snZmllbGRkZWZfU2VsZWN0RGF0ZVRpbWUnXSA9ICdTZWxlemlvbmFyZSBEYXRlVGltZSc7CiRsYW5nWydmaWVsZGRlZl9kdF9iYWNrd2FyZHNfY29tcGF0aWJpbGl0eSddID0gJ0NvbXBhdGliaWxpdMOgIGNvbiBsZSB2ZXJzaW9uaSBwcmVjZWRlbnRpJzsKJGxhbmdbJ2ZpZWxkZGVmX2R0X2ZpZWxkZGVmX2JhY2t3YXJkc19jb21wYXRpYmlsaXR5X2hlbHAnXSA9ICdTZWxlemlvbmEgcXVlc3RvIGNhbXBvIHBlciBjb250aW51YXJlIGEgdXRpbGl6emFyZSB2ZWNjaGllIGFyY2hpdmlhemlvbmkgZGkgREIgRGF0ZVRpbWUnOwokbGFuZ1snZmllbGRkZWZfRHJvcGRvd24nXSA9ICdBIGRpc2Nlc2EnOwokbGFuZ1snZmllbGRkZWZfQ29udGVudFBhZ2VzJ10gPSAnUGFnaW5lIGRpIGNvbnRlbnV0aSc7CiRsYW5nWydmaWVsZGRlZl9TZWxlY3RGaWxlJ10gPSAnU2VsZXppb25hIGlsIGZpbGUnOwokbGFuZ1snZmllbGRkZWZfUmFkaW9Hcm91cCddID0gJ1JhZGlvIEdyb3VwJzsKJGxhbmdbJ2VuYWJsZV9qcXVpJ10gPSAnVXNhIGkgcHVsc2FudGkgalF1ZXJ5VUknOwokbGFuZ1snZmllbGRkZWZfU2xpZGVyJ10gPSAnQ3Vyc29yZSc7CiRsYW5nWydmaWVsZGRlZl9NdWx0aVNlbGVjdCddID0gJ1NlbGV6aW9uZSBtdWx0aXBsYSc7CiRsYW5nWydmaWVsZGRlZl9DaGVja2JveEdyb3VwJ10gPSAnR3J1cHBvIGRpIGNhc2VsbGUgZGkgY29udHJvbGxvJzsKJGxhbmdbJ2ZpZWxkZGVmX0ZpbGVVcGxvYWQnXSA9ICdDYXJpY2FtZW50byBkaSBmaWxlJzsKJGxhbmdbJ2ZpZWxkZGVmX0NvbG9yUGlja2VyJ10gPSAnQ29sb3IgUGlja2VyJzsKJGxhbmdbJ2ZpZWxkZGVmX1RhZ3MnXSA9ICdUYWcnOwokbGFuZ1snZmllbGRkZWZfVGFicyddID0gJ1NjaGVkYSc7CiRsYW5nWydmaWVsZGRlZl9CYWNrZW5kVGV4dCddID0gJ1Rlc3RvIGRpIGJhY2tlbmQnOwokbGFuZ1snZmllbGRkZWZfQlRfY29udGFpbmVyX2RpdiddID0gJ1RpcG8gRElWIGNvbnRlbml0b3JlJzsKJGxhbmdbJ2ZpZWxkZGVmX0JUX2NvbnRhaW5lcl9kaXZfaGVscCddID0gJ1F1ZXN0aSBzb25vIHN0aWxpIGNzcyBkaSBiYWNrLWVuZCBkZWwgY29yZSBkaSBDTVNNUyc7CiRsYW5nWydmaWVsZGRlZl9CVF9jb250YWluZXJfdGV4dCddID0gJ1Rlc3RvJzsKJGxhbmdbJ2ZpZWxkZGVmX0JUX2NvbnRhaW5lcl90ZXh0X2hlbHAnXSA9ICdJbCB0ZXN0byBkYSB2aXN1YWxpenphcmUgc3VsIGJhY2stZW5kJzsKJGxhbmdbJ2ZpZWxkZGVmX0JUX2luZm9ybWF0aW9uJ10gPSAnSW5mb3JtYXppb25lJzsKJGxhbmdbJ2ZpZWxkZGVmX0JUX3dhcm5pbmcnXSA9ICdBdnZpc28nOwokbGFuZ1snZmllbGRkZWZfRkVVRHJvcGRvd24nXSA9ICdNZW51IGEgZGlzY2VzYSBVdGVudGkgZnJvbnRlbmQnOwokbGFuZ1snZmllbGRkZWZfZmV1X29wdGlvbnMnXSA9ICdHcnVwcGkgRkVVJzsKJGxhbmdbJ2ZpZWxkZGVmX2ZldV9kcm9wZG93bl9oZWxwJ10gPSAnU2VsZXppb25hIHVubyBkZWkgZ3J1cHBpIGRpIEZyb250RW5kVXNlcnMgZGlzcG9uaWJpbGknOwokbGFuZ1snZmllbGRkZWZfR2FsbGVyeURyb3Bkb3duJ10gPSAnR2FsbGVyaWEgYSBkaXNjZXNhJzsKJGxhbmdbJ2ZpZWxkZGVmX0dCRmlsZVBpY2tlciddID0gJ0dCRmlsZVBpY2tlciBVcGxvYWQgRmlsZSc7CiRsYW5nWydmaWVsZGRlZl9HQkZpbGVQaWNrZXJfZmlsZWJyb3dzZXInXSA9ICdBYmlsaXRhIEZpbGVicm93c2VyJzsKJGxhbmdbJ2ZpZWxkZGVmX0dCRmlsZVBpY2tlcl9pbWFnZSddID0gJ0RvdnJlYmJlIGVzc2VyZSB1blwnaW1tYWdpbmUnOwokbGFuZ1snZmllbGRkZWZfR0JGaWxlUGlja2VyX2NyZWF0ZV9kaXJzJ10gPSAnQ29uc2VudGkgY3JlYXppb25lIGRpcmVjdG9yeSc7CiRsYW5nWydmaWVsZGRlZl9HQkZpbGVQaWNrZXJfZGVsZXRlJ10gPSAnQ29uc2VudGkgZWxpbWluYXppb25lJzsKJGxhbmdbJ2ZpZWxkZGVmX0dCRmlsZVBpY2tlcl9zaG93X3N1YmRpcnMnXSA9ICdDb25zZW50aSBzb3R0b2RpcmVjdG9yeSc7CiRsYW5nWydmaWVsZGRlZl9HQkZQX2FsbG93X2hlbHAnXSA9ICdTcGVjaWZpY2FyZSB1biBlbGVuY28gc2VwYXJhdG8gZGEgdmlyZ29sZSBkaSBlc3RlbnNpb25pIGRpIGZpbGUgY29uc2VudGl0ZS4gQWQgZXNlbXBpbzogcGRmLGdpZixqcGVnLGpwZyAobWFudGVuZXJlIGNhcmF0dGVyaSBtaW51c2NvbGkpJzsKJGxhbmdbJ2ZpZWxkZGVmX0dCRlBfZGlyX2hlbHAnXSA9ICdQZXJjb3JzbyBkZWxsYSBkaXJlY3RvcnkgY2hlIHZlcnLDoCBhZ2dpdW50byBhICRjb25maWdbXCd1cGxvYWRzX3VybFwnXSAuIE5lc3N1bmEgYmFycmEgYWxsYSBmaW5lLic7CiRsYW5nWydmaWVsZGRlZl9HQkZQX2V4Y2x1ZGVfcHJlZml4X2hlbHAnXSA9ICdTcGVjaWZpY2EgdW4gZWxlbmNvIGRpIHByZWZpc3NpIHNlcGFyYXRpIGRhIHZpcmdvbGUgcGVyIGVzY2x1ZGVyZSBpIGZpbGUgY2hlIGluaXppYW5vIGNvbiBpbCBwcmVmaXNzbyBpbXBvc3RhdG8uIEFkIGVzZW1waW86IHRodW1iXywgZm9vXyc7CiRsYW5nWydmaWVsZGRlZl9HQkZQX2ZpbGVicm93c2VyX2hlbHAnXSA9ICdQZXIgaW1wb3N0YXppb25lIHByZWRlZmluaXRhIHZlcnLDoCB1dGlsaXp6YXRvIHVuIG1lbnUgYSBkaXNjZXNhLiBBYmlsaXRhIGZpbGVicm93c2VyIHNlIGxcJ3V0ZW50ZSBwdcOyIHNmb2dsaWFyZSBpIGZpbGUuJzsKJGxhbmdbJ2ZpZWxkZGVmX0dCRlBfbWVkaWFfdHlwZV9oZWxwJ10gPSAnQ29uc2VudGUgZGkgc3BlY2lmaWNhcmUgbGUgaW1tYWdpbmkgY29tZSB0aXBvIGRpIG1lZGlhIGRhIHZpc3VhbGl6emFyZS4gUGVyIGltcG9zdGF6aW9uZSBwcmVkZWZpbml0YSB2ZXJyYW5ubyB2aXN1YWxpenphdGkgdHV0dGkgaSBmaWxlLic7CiRsYW5nWydmaWVsZGRlZl9HQkZQX2RlbGV0ZV9oZWxwJ10gPSAnU2UgYWJpbGl0YXRvIMOoIHBvc3NpYmlsZSBjb25jZWRlcmUgbFwnZWxpbWluYXppb25lIGRpIGZpbGUgbyBkaXJlY3RvcnkgcGVyIHF1ZXN0byBjYW1wbyBhbmNoZSBhZ2xpIHV0ZW50aSBzcHJvdnZpc3RpIGRpIGFwcG9zaXRhIGF1dG9yaXp6YXppb25lLic7CiRsYW5nWydmaWVsZGRlZl9HQkZQX2NyZWF0ZV9kaXJzX2hlbHAnXSA9ICdTZSBhYmlsaXRhdG8gw6ggcG9zc2liaWxlIGNvbmNlZGVyZSBsYSBjcmVhemlvbmUgZGkgZGlyZWN0b3J5IHBlciBxdWVzdG8gY2FtcG8gYW5jaGUgYWdsaSB1dGVudGkgc3Byb3Z2aXN0aSBkaSBhcHBvc2l0byBwZXJtZXNzby4nOwokbGFuZ1snZmllbGRkZWZfR0JGUF9zaG93X3N1YmRpcnNfaGVscCddID0gJ1NlIGFiaWxpdGF0bywgbFwndXRlbnRlIHB1w7IgbmF2aWdhcmUgbmVsbGUgc290dG9kaXJlY3RvcnkuJzsKJGxhbmdbJ2ZpZWxkZGVmX0pNRmlsZVBpY2tlciddID0gJ0pNRmlsZVBpY2tlciBVcGxvYWQgRmlsZSc7CiRsYW5nWydmaWVsZGRlZl9KTUZpbGVQaWNrZXJfZmlsZWJyb3dzZXInXSA9ICdBYmlsaXRhIEZpbGVicm93c2VyJzsKJGxhbmdbJ2ZpZWxkZGVmX0pNRmlsZVBpY2tlcl9pbWFnZSddID0gJ0RvdnJlYmJlIGVzc2VyZSB1blwnaW1tYWdpbmUnOwokbGFuZ1snZmllbGRkZWZfSk1GaWxlUGlja2VyX2NyZWF0ZV9kaXJzJ10gPSAnQ29uc2VudGkgY3JlYXppb25lIGRpcmVjdG9yeSc7CiRsYW5nWydmaWVsZGRlZl9KTUZpbGVQaWNrZXJfZGVsZXRlJ10gPSAnQ29uc2VudGkgZWxpbWluYXppb25lJzsKJGxhbmdbJ2ZpZWxkZGVmX0pNRmlsZVBpY2tlcl9zaG93X3N1YmRpcnMnXSA9ICdDb25zZW50aSBzb3R0b2RpcmVjdG9yeSc7CiRsYW5nWydmaWVsZGRlZl9KTUZQX2FsbG93X2hlbHAnXSA9ICdTcGVjaWZpY2FyZSB1biBlbGVuY28gc2VwYXJhdG8gZGEgdmlyZ29sZSBkaSBlc3RlbnNpb25pIGRpIGZpbGUgY29uc2VudGl0ZS4gQWQgZXNlbXBpbzogcGRmLGdpZixqcGVnLGpwZyAobWFudGVuZXJlIGNhcmF0dGVyaSBtaW51c2NvbGkpJzsKJGxhbmdbJ2ZpZWxkZGVmX0pNRlBfZGlyX2hlbHAnXSA9ICdQZXJjb3JzbyBkZWxsYSBkaXJlY3RvcnkgY2hlIHZlcnLDoCBhZ2dpdW50byBhICRjb25maWdbXCd1cGxvYWRzX3VybFwnXSAuIE5lc3N1bmEgYmFycmEgYWxsYSBmaW5lLic7CiRsYW5nWydmaWVsZGRlZl9KTUZQX2V4Y2x1ZGVfcHJlZml4X2hlbHAnXSA9ICdTcGVjaWZpY2EgdW4gZWxlbmNvIGRpIHByZWZpc3NpIHNlcGFyYXRpIGRhIHZpcmdvbGUgcGVyIGVzY2x1ZGVyZSBpIGZpbGUgY2hlIGluaXppYW5vIGNvbiBpbCBwcmVmaXNzbyBpbXBvc3RhdG8uIEFkIGVzZW1waW86IHRodW1iXywgZm9vXyc7CiRsYW5nWydmaWVsZGRlZl9KTUZQX2ZpbGVicm93c2VyX2hlbHAnXSA9ICdQZXIgaW1wb3N0YXppb25lIHByZWRlZmluaXRhIHZlcnLDoCB1dGlsaXp6YXRvIHVuIG1lbnUgYSBkaXNjZXNhLiBBYmlsaXRhIGZpbGVicm93c2VyIHNlIGxcJ3V0ZW50ZSBwdcOyIHNmb2dsaWFyZSBpIGZpbGUuJzsKJGxhbmdbJ2ZpZWxkZGVmX0pNRlBfbWVkaWFfdHlwZV9oZWxwJ10gPSAnQ29uc2VudGUgZGkgc3BlY2lmaWNhcmUgbGUgaW1tYWdpbmkgY29tZSB0aXBvIGRpIG1lZGlhIGRhIHZpc3VhbGl6emFyZS4gUGVyIGltcG9zdGF6aW9uZSBwcmVkZWZpbml0YSB2ZXJyYW5ubyB2aXN1YWxpenphdGkgdHV0dGkgaSBmaWxlLic7CiRsYW5nWydmaWVsZGRlZl9KTUZQX2RlbGV0ZV9oZWxwJ10gPSAnU2UgYWJpbGl0YXRvIMOoIHBvc3NpYmlsZSBjb25jZWRlcmUgbFwnZWxpbWluYXppb25lIGRpIGZpbGUgbyBkaXJlY3RvcnkgcGVyIHF1ZXN0byBjYW1wbyBhbmNoZSBhZ2xpIHV0ZW50aSBzcHJvdnZpc3RpIGRpIGFwcG9zaXRhIGF1dG9yaXp6YXppb25lLic7CiRsYW5nWydmaWVsZGRlZl9KTUZQX2NyZWF0ZV9kaXJzX2hlbHAnXSA9ICdTZSBhYmlsaXRhdG8gw6ggcG9zc2liaWxlIGNvbmNlZGVyZSBsYSBjcmVhemlvbmUgZGkgZGlyZWN0b3J5IHBlciBxdWVzdG8gY2FtcG8gYW5jaGUgYWdsaSB1dGVudGkgc3Byb3Z2aXN0aSBkaSBhcHBvc2l0byBwZXJtZXNzby4nOwokbGFuZ1snZmllbGRkZWZfSk1GUF9zaG93X3N1YmRpcnNfaGVscCddID0gJ1NlIGFiaWxpdGF0bywgbFwndXRlbnRlIHB1w7IgbmF2aWdhcmUgbmVsbGUgc290dG9kaXJlY3RvcnkuJzsKJGxhbmdbJ2ZpZWxkZGVmX0N1c3RvbUZyb21VRFQnXSA9ICdDYW1wbyBwZXJzb25hbGl6emF0byBkYSBVRFQnOwokbGFuZ1snZmllbGRkZWZfdHlwZV9oZWxwJ10gPSAnU2VsZXppb25hIGlsIHRpcG8gZGkgcXVlc3RvIGNhbXBvJzsKJGxhbmdbJ2ZpZWxkZGVmX3NvdXJjZV91ZHQnXSA9ICdVRFQgZGkgb3JpZ2luZSc7CiRsYW5nWydmaWVsZGRlZl9zb3VyY2VfVURUX2hlbHAnXSA9ICdTZWxlemlvbmFyZSBVRFQgZGkgb3JpZ2luZSc7CiRsYW5nWydmaWVsZGRlZl92YWxpZGF0aW9uX3VkdCddID0gJ1VEVCBkaSBjb252YWxpZGEnOwokbGFuZ1snZmllbGRkZWZfdmFsaWRhdGlvbl9VRFRfaGVscCddID0gJ1NlbGV6aW9uYSBVRFQgZGkgY29udmFsaWRhIChmYWNvbHRhdGl2byknOwokbGFuZ1snZmllbGRkZWZfcmVuZGVyX2Zvcl9hZG1pbl9saXN0aW5nX3VkdCddID0gJ1NlbGV6aW9uYXJlIFVEVCBlbGVuY28gYW1taW5pc3RyYXRvcmknOwokbGFuZ1snZmllbGRkZWZfcmVuZGVyX2Zvcl9hZG1pbl9saXN0aW5nX1VEVF9oZWxwJ10gPSAnU2VsZXppb25hIFVEVCBkaSBjb252YWxpZGEgKGZhY29sdGF0aXZvKSc7CiRsYW5nWydmaWVsZGRlZl9DdXN0b21Gcm9tU21hcnR5J10gPSAnQ2FtcG8gcGVyc29uYWxpenphdG8gZGEgU21hcnR5JzsKJGxhbmdbJ2ZpZWxkZGVmX3NvdXJjZV90ZW1wbGF0ZSddID0gJ01vZGVsbG8gU21hcnR5IGRpIG9yaWdpbmUnOwokbGFuZ1snZmllbGRkZWZfc291cmNlX3RlbXBsYXRlX2hlbHAnXSA9ICc8cD5Db21waWxhcmUgYXJyYXkgPGI+eyRvcHRzfTwvYj4gY29uIGNvcHBpZSBjaGlhdmUtdmFsb3JlIGUgcGFzc2FybG8gYSB1bm8gZGVpIHNlZ3VlbnRpIHRhZy4gPGI+eyRuYW1lfTwvYj4gZSA8Yj57JHNlbH08L2I+IHNvbm8gZ2nDoCBmb3JuaXRpIGRhbCBtb2R1bG8uPC9wPg0KCTxwPjxiPnskbmFtZX08L2I+IHRpZW5lIGlsIGNhbXBvIG5hbWUgKG5lY2Vzc2FyaW8gcGVyIFJhZGlvR3JvdXAsIENoZWNrYm94R3JvdXAsIG8gc2UgdnVvaSB1c2FyZSBwdXJlIGh0bWwpPC9wPg0KCTxwPjxiPnskc2VsfTwvYj4gbWFudGllbmUgaWwgdmFsb3JlIHNlbGV6aW9uYXRvIHNlIGVzaXN0ZS48L3A+DQoJPHA+RXNlbXBpbzo8YnI+DQoJPGI+eyRvcHRzID0gWzEgPT4gXCdvbmVcJywgMiA9PiBcJ3R3b1wnXX08YnI+DQogIHtodG1sX29wdGlvbnMgb3B0aW9ucz0kb3B0cyBzZWxlY3RlZD0kc2VsfTwvYj4NCgk8L3A+DQoJPHA+UGVyIGkgdGlwaSA8Yj5Ecm9wZG93bjwvYj4gZSA8Yj5NdWx0aVNlbGVjdDwvYj4gdXNhcmU6IDxiPntodG1sX29wdGlvbnMgb3B0aW9ucz0kb3B0cyBzZWxlY3RlZD0kc2VsfTwvYj48L3A+DQoJPHA+UGVyIGlsIHRpcG8gPGI+UmFkaW9Hcm91cDwvYj4gdXNhcmU6IDxiPntodG1sX3JhZGlvcyBuYW1lPSRuYW1lIG9wdGlvbnM9JG9wdHMgc2VsZWN0ZWQ9JHNlbCBzZXBhcmF0b3I9XCc8YnIgLz5cJ308L2I+PC9wPg0KCTxwPlBlciBpbCB0aXBvIDxiPkNoZWNrYm94R3JvdXA8L2I+IHVzYXJlOiA8Yj57aHRtbF9jaGVja2JveGVzICBuYW1lPSRuYW1lIG9wdGlvbnM9JG9wdHMgc2VsZWN0ZWQ9JHNlbCBzZXBhcmF0b3I9XCc8YnIgLz5cJ308L2I+PC9wPic7CiRsYW5nWydmaWVsZGRlZl9MSVNFSW5zdGFuY2UnXSA9ICdJc3RhbnphIExJU0UnOwokbGFuZ1snZmllbGRkZWZfbGlfc2VsZWN0X25vbmUnXSA9ICdUZXN0byBwZXIgbFwnb3B6aW9uZSA8aT5ub25lPC9pPiBpbiBlbGVuY28nOwokbGFuZ1snZmllbGRkZWZfbGlfc2VsZWN0X25vbmVfaGVscCddID0gJ0NvbXBpbGEgY29uIHVuYSBzdHJpbmdhOiBpbCBtb2R1bG8gcHJvdmVyw6AgYSB0cm92YXJlIHVuYSBjaGlhdmUgZGkgbGluZ3VhIG5lbGxlIHN1ZSByaXNvcnNlIHBlciBsZSBzdHJpbmdoZSBkaSBsaW5ndWEuIFNlIG5vbiByaWVzY2UgYSBjYXJpY2FyZSB1bmEgc3RyaW5nYSB2YWxpZGEsIHV0aWxpenplcsOgIGxhIHN0cmluZ2EgcGVyIHZpc3VhbGl6emFyZSBsXCdvcHppb25lLiBMYXNjaWFyZSB2dW90byBsbyBkaXNhYmlsaXRhLic7CiRsYW5nWydmaWVsZGRlZl9MSVNFSW5zdGFuY2VJdGVtJ10gPSAnRWxlbWVudG8gaXN0YW56YSBMSVNFJzsKJGxhbmdbJ2ZpZWxkZGVmX2luc3RhbmNlX2hlbHAnXSA9ICdTZWxlemlvbmEgaXN0YW56YSc7CiRsYW5nWydmaWVsZGRlZl9pZGVudGlmaWVyX2hlbHAnXSA9ICdTZWxlemlvbmEgbFwnaWRlbnRpZmljYXRvcmUgZGVsIGRhdGFiYXNlJzsKJGxhbmdbJ2luc3RhbmNlJ10gPSAnSXN0YW56YSc7CiRsYW5nWydpZGVudGlmaWVyJ10gPSAnSWRlbnRpZmljYXRvcmUnOwokbGFuZ1sncHJvbXB0X2luY2x1ZGVfaXRlbXMnXSA9ICdFbGVtZW50aSBkYSBpbmNsdWRlcmUgbmVsbFwnZWxlbmNvJzsKJGxhbmdbJ2lpX29wdGlvbl9pbmNsdWRlX2RlZmF1bHQnXSA9ICdwcmVkZWZpbml0byc7CiRsYW5nWydpaV9vcHRpb25faW5jbHVkZV9vbmx5X2FjdGl2ZSddID0gJ3NvbG8gYXR0aXZvJzsKJGxhbmdbJ2lpX29wdGlvbl9pbmNsdWRlX29ubHlfaW5hY3RpdmUnXSA9ICdzb2xvIGluYXR0aXZvJzsKJGxhbmdbJ2lpX29wdGlvbl9pbmNsdWRlX2FsbCddID0gJ1R1dHRvJzsKJGxhbmdbJ2ZpZWxkZGVmX0ZFVU11bHRpU2VsZWN0J10gPSAnTXVsdGkgU2VsZWN0IEZFVSc7CiRsYW5nWydmaWVsZGRlZl9KUXVlcnlNdWx0aVNlbGVjdCddID0gJ011bHRpU2VsZWN0IEpRdWVyeSc7CiRsYW5nWydmaWVsZGRlZl9mZXVfbXVsdGlzZWxlY3RfaGVscCddID0gJ1NlbGV6aW9uYSB1bm8gbyBwacO5IGRlaSBncnVwcGkgRnJvbnRFbmRVc2VycyBkaXNwb25pYmlsaSc7CiRsYW5nWydmaWVsZGRlZl9mZXVfZmllbGRzX2hlbHAnXSA9ICdTZWxlemlvbmEgaWwgY2FtcG8gcGVyc29uYWxpenphdG8gZGEgRkVVIGRhIGN1aSB0cmFycmUgaSB2YWxvcmkgY2hlIHZlcnJhbm5vIHZpc3VhbGl6emF0aSBuZWwgY2FtcG8gZGkgc2VsZXppb25lLjxicj5UaWVuaSBwcmVzZW50ZSBjaGUgaWwgY2FtcG8gc2VsZXppb25hdG8gZGV2ZSBhdmVyZSB2YWxvcmkgdW5pdm9jaSBpbiB0dXR0ZSBsZSB2b2NpIGRlZ2xpIHV0ZW50aSBGRVUuJzsKJGxhbmdbJ2ZpZWxkZGVmX2ZldV9maWVsZHMnXSA9ICdTZWxlemlvbmEgaWwgMcKwIGNhbXBvIEZFVSc7CiRsYW5nWydmaWVsZGRlZl9mZXVfZmllbGRzMiddID0gJ1NlbGV6aW9uYSBpbCAywrAgY2FtcG8gRkVVJzsKJGxhbmdbJ2ZpZWxkZGVmX3VzZXJzJ10gPSAnVXRlbnRpJzsKJGxhbmdbJ2ZpZWxkZGVmX3VzZV91c2VybmFtZSddID0gJ1VzYSBpbCBjYW1wbyBVc2VybmFtZSc7CiRsYW5nWydmaWVsZGRlZl91c2VfdWlkJ10gPSAnQW50ZXBvbmkgbFwnSUQgdXRlbnRlJzsKJGxhbmdbJ2ZpZWxkZGVmX3VzZV91aWRfaGVscCddID0gJ0FudGVwb25pIElEIHV0ZW50ZSBhbGxlIG9wemlvbmkgbmVsIGZvcm1hdG8gW25dLic7CiRsYW5nWydmaWVsZGRlZl91c2VfdXNlcm5hbWVfaGVscCddID0gJ1NlIHNlbGV6aW9uaSBxdWVzdGEgb3B6aW9uZSwgaSBjYW1waSBwZXJzb25hbGl6emF0aSBkaSBzZWd1aXRvIG5vbiB2ZXJyYW5ubyB1dGlsaXp6YXRpLic7CiRsYW5nWydmaWVsZGRlZl9zZXBhcmF0b3JfY2hyJ10gPSAnQ2FyYXR0ZXJlIHNlcGFyYXRvcmUnOwokbGFuZ1snZmllbGRkZWZfc2VwYXJhdG9yX2Nocl9oZWxwJ10gPSAnQ2FyYXR0ZXJlIHV0aWxpenphdG8gcGVyIHNlcGFyYXJlIGlsIGNhbXBvIDEgZSBpbCBjYW1wbyAyIG5lbCB0ZXN0byBkZWxsZSBvcHppb25pLiBMXCdpbXBvc3RhemlvbmUgcHJlZGVmaW5pdGEgw6ggdW4gY2FyYXR0ZXJlIHNwYXppby4nOwo/Pg==]]></data>
	</file>
	<file>
	  <filename>/lang/ext/nb_NO.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKJGxhbmdbJ2ludmFsaWRfY2hhcmFjdGVycyddID0gJ1RlZ24gc29tOiAlcyBlciBpa2tlIHRpbGxhdHQgaSBmZWx0ZXQ6ICVzJzsKJGxhbmdbJ2dyZWVuJ10gPSAnR3LDuG5uJzsKJGxhbmdbJ3llbGxvdyddID0gJ0d1bCc7CiRsYW5nWydyZWQnXSA9ICdSw7hkJzsKJGxhbmdbJ2l0ZW0nXSA9ICdFbGVtZW50JzsKJGxhbmdbJ2l0ZW1zJ10gPSAnRWxlbWVudGVyJzsKJGxhbmdbJ2ZpZWxkZGVmJ10gPSAnRmVsdGRlZmluaXNqb24nOwokbGFuZ1snZmllbGRkZWZzJ10gPSAnRmVsdGRlZmluaXNqb25lcic7CiRsYW5nWyd0ZW1wbGF0ZSddID0gJ01hbCc7CiRsYW5nWyd0ZW1wbGF0ZXMnXSA9ICdNYWxlcic7CiRsYW5nWydjYXRlZ29yeSddID0gJ0thdGVnb3JpJzsKJGxhbmdbJ2NhdGVnb3JpZXMnXSA9ICdLYXRlZ29yaWVyJzsKJGxhbmdbJ29wdGlvbiddID0gJ1ZhbGcnOwokbGFuZ1snb3B0aW9ucyddID0gJ1ZhbGcnOwokbGFuZ1snbWFpbnRlbmFuY2UnXSA9ICdWZWRsaWtlaG9sZCc7CiRsYW5nWydiYWNrJ10gPSAnR8OlIHRpbGJha2UgdGlsIGZvcnJpZ2Ugc2lkZSc7CiRsYW5nWydhYm91dCddID0gJ09tJzsKJGxhbmdbJ3doYXRzbmV3J10gPSAnSHZhIGVyIG55dHQnOwokbGFuZ1sncHJvbXB0X2ZpeF9maWVsZGRlZnMnXSA9ICdQcsO4dmVyIMOlIHJlcGFyZXJlIGZlbHRkZWZpbmlzam9ucy1kYXRhYmFzZW4nOwokbGFuZ1snbWVzc2FnZV9maWVsZGRlZnNfZml4ZWQnXSA9ICdGZWlsZGVmaW5pc2pvbmVyIGZvciBhbGxlIGZvcmVrb21zdGVyIGVyIHJlcGFyZXJ0JzsKJGxhbmdbJ21lc3NhZ2VfaW5zdGFuY2VzX2NvcGllZCddID0gJ0FsbGUgZm9yZWtvbXN0ZXIgaGFyIGJsaXR0IGR1cGxpc2VydC4nOwokbGFuZ1snaXRlbV90aXRsZSddID0gJ1RpdHRlbCc7CiRsYW5nWydwcm9tcHRfaXRlbV90aXRsZSddID0gJ0VsZW1lbnQgdGl0dGVsJzsKJGxhbmdbJ3Byb21wdF9vZiddID0gJ2F2JzsKJGxhbmdbJ2FjdGl2ZSddID0gJ0FrdGl2JzsKJGxhbmdbJ2NyZWF0ZV90aW1lJ10gPSAnRGF0byBvcHByZXR0ZXQnOwokbGFuZ1snbW9kaWZpZWRfdGltZSddID0gJ0RhdG8gZW5kcmV0JzsKJGxhbmdbJ3RpbWVfY29udHJvbCddID0gJ0JydWsgdGlkc3N0eXJpbmcnOwokbGFuZ1snc3RhcnRfdGltZSddID0gJ1N0YXJ0LXRpZCc7CiRsYW5nWydlbmRfdGltZSddID0gJ1NsdXR0LXRpZCc7CiRsYW5nWydpdGVtX3RpdGxlX2VtcHR5J10gPSAnVGl0dGVsIGVyIHRvbSc7CiRsYW5nWydyZXF1aXJlZF9maWVsZF9lbXB0eSddID0gJ1DDpWtyZXZkIGZlbHQgZXIgdG9tdCc7CiRsYW5nWyd0b29fbG9uZyddID0gJ0ZlbHR2ZXJkaSBvdmVyc2tyaWRlciBtYWtzIGxlbmdkZSc7CiRsYW5nWydhcHByb3ZlJ10gPSAnU2V0dCBzdGF0dXMgdGlsIFwnYWt0aXZcJyc7CiRsYW5nWydyZXZlcnQnXSA9ICdTZXQgc3RhdHVzIHRpbCBcJ2luYWt0aXZcJyc7CiRsYW5nWyd0b2dnbGVfc3RhdHVzJ10gPSAnQnl0dCBzdGF0dXMnOwokbGFuZ1snc2VsZWN0X2l0ZW0nXSA9ICdWZWxkIGVsZW1lbnQnOwokbGFuZ1snc3VibWl0X29yZGVyJ10gPSAnTGFncmUgcmVra2Vmw7hsZ2UnOwokbGFuZ1snZGVsZXRlX3NlbGVjdGVkJ10gPSAnU2xldHQgdmVsZ3QgJXMnOwokbGFuZ1snYXJleW91c3VyZV9kZWxldGVtdWx0aXBsZSddID0gJ0VyIGR1IHNpa2tlciBww6UgYXQgZHUgdmlsIHNsZXR0ZSBhbGxlIGRpc3NlICVzPyc7CiRsYW5nWydzZWxlY3RfYWxsJ10gPSAnVmVsZyBhbGxlJzsKJGxhbmdbJ2Vycm9yX3N0YXJ0Z3JlYXRlcmVuZCddID0gJ1N0YXJ0ZGF0byBlciBldHRlciBzbHV0dGRhdG8nOwokbGFuZ1snaXRlbV9hbGlhc19leGlzdHMnXSA9ICdFbGVtZW50IGVrc2lzdGVyZXIgYWxsZXJlZGUuIER1IG3DpSBicnVrZSBldHR1bmlrdCBhbGlhcy4nOwokbGFuZ1sncmV0dXJuX3VybCddID0gJ1RpbGJha2UnOwokbGFuZ1sncGF0aGNvbnRhaW5zdmFycyddID0gJ0RldHRlIGZlbHRldCBrYW4gcmVkaWdlcmVzIGV0dGVyIGF0IGR1IGhhciBsYWdyZXQgZGVubmUgJXMnOwokbGFuZ1sndXJsJ10gPSAnVmVsZyBlbiB0aWxwYXNzZXQgVVJMIGZvciBkZXR0ZSBlbGVtZW50ZXQsIGVsbGVyIGFrc2VwdGVyIGRlbiBnZW5lcmVydGUuJzsKJGxhbmdbJ2VkaXRmaWVsZGRlZiddID0gJ1JlZGlnZXIgZmVsdGRlZmluaXNqb24nOwokbGFuZ1snZmllbGRkZWZfbmFtZSddID0gJ05hdm4nOwokbGFuZ1snZmllbGRkZWZfaGVscCddID0gJ0hqZWxwZW5kZSB0aXBzJzsKJGxhbmdbJ2ZpZWxkZGVmX2RlcHMnXSA9ICdNb2R1bCBhdmhlbmdpZ2hldGVyJzsKJGxhbmdbJ2ZpZWxkZGVmX3NjYW4nXSA9ICdTw7hrIGV0dGVyIGZlbHRkZWZpbmlzam9uZXInOwokbGFuZ1snZmllbGRkZWZfc2Nhbm5lZCddID0gJ0ZlbHRkZWZpbmlzam9uZXIgZXIgc2pla2tldCc7CiRsYW5nWydmaWVsZGRlZl90eXBlX25vdHNldCddID0gJ0ZlbHRkZWZpbmlzam9ucy10eXBlIGVyIGlra2Ugc2F0dCc7CiRsYW5nWydmaWVsZGRlZl9tYXhfbGVuZ3RoJ10gPSAnTWFrc2ltdW0gbGVuZ2RlJzsKJGxhbmdbJ2ZpZWxkZGVmX3JlcXVpcmVkJ10gPSAnUMOla3JldmQnOwokbGFuZ1sncmVnaXN0ZXJlZF9maWVsZGRlZnMnXSA9ICdSZWdpc3RyZXJ0ZSBmZWx0ZGVmaW5pc2pvbmVyJzsKJGxhbmdbJ2ZpZWxkZGVmX25hbWVfZW1wdHknXSA9ICdGZWx0ZGVmaW5pc2pvbnMtbmF2biBlciB0b210JzsKJGxhbmdbJ2ZpZWxkZGVmX25hbWVfZXhpc3RzJ10gPSAnRmVsdGRlZmluaXNqb25zLW5hdm4gZWtzaXN0ZXJlciBmcmEgZsO4cic7CiRsYW5nWydmaWVsZGRlZl9hbGlhc19leGlzdHMnXSA9ICdGZWx0ZGVmaW5pc2pvbnMtYWxpYXMgZWtzaXN0ZXJlci4gRHUgbcOlIGJydWtlIGV0IHVuaWt0IGFsaWFzLic7CiRsYW5nWydmaWVsZGRlZl9pc191bmlxdWUnXSA9ICdGZWx0ZGVmaW5pc2pvbmVuIGVyIHVuaWsuIER1IGthbiBpa2tlIGhhIG1lcmUgZW5uIGVuIGF2IGRpc3NlLic7CiRsYW5nWydmaWVsZGRlZl9pbWFnZSddID0gJ0ZvcnZlbnRlciBldHQgYmlsZGUnOwokbGFuZ1snaW52YWxpZCddID0gJ0ZlbHQgdmVyZGkgZXIgdWd5bGRpZyc7CiRsYW5nWydzdGF0dXNfcmVxdWlyZWQnXSA9ICdTZXR0IHN0YXR1cyB0aWwgInDDpWtyZXZkIic7CiRsYW5nWydzdGF0dXNfb3B0aW9uYWwnXSA9ICdTZXR0IHN0YXR1cyB0aWwgInZhbGdmcmkiJzsKJGxhbmdbJ2ZpZWxkZGVmX3RlbXBsYXRlJ10gPSAnTWFsJzsKJGxhbmdbJ2ZpZWxkZGVmX1RleHRJbnB1dCddID0gJ1Rla3N0bGluamUnOwokbGFuZ1snZmllbGRkZWZfQ2hlY2tib3gnXSA9ICdBdmtyeXNzbmluZ3Nib2tzJzsKJGxhbmdbJ2ZpZWxkZGVmX1RleHRBcmVhJ10gPSAnVGVrc3RmZWx0JzsKJGxhbmdbJ2ZpZWxkZGVmX1NlbGVjdERhdGUnXSA9ICdWZWxnIGRhdG8nOwokbGFuZ1snZmllbGRkZWZfU2VsZWN0RGF0ZVRpbWUnXSA9ICdWZWxnIGRhdG8gb2cgdGlkJzsKJGxhbmdbJ2ZpZWxkZGVmX2R0X2JhY2t3YXJkc19jb21wYXRpYmlsaXR5J10gPSAnQmFrb3ZlcmtvbXBpdGFiaWxpdGV0JzsKJGxhbmdbJ2ZpZWxkZGVmX0Ryb3Bkb3duJ10gPSAnTmVkdHJla2tzbGlzdGUnOwokbGFuZ1snZmllbGRkZWZfQ29udGVudFBhZ2VzJ10gPSAnSW5uaG9sZHMtc2lkZSc7CiRsYW5nWydmaWVsZGRlZl9TZWxlY3RGaWxlJ10gPSAnVmVsZyBmaWwnOwokbGFuZ1snZmllbGRkZWZfUmFkaW9Hcm91cCddID0gJ1JhZGlvLWdydXBwZSc7CiRsYW5nWydmaWVsZGRlZl9TbGlkZXInXSA9ICdTbGlkZXInOwokbGFuZ1snZmllbGRkZWZfTXVsdGlTZWxlY3QnXSA9ICdGbGVydmFsZyc7CiRsYW5nWydmaWVsZGRlZl9DaGVja2JveEdyb3VwJ10gPSAnQXZrcnlzc25pbmdzYm9rcy1ncnVwcGUnOwokbGFuZ1snZmllbGRkZWZfRmlsZVVwbG9hZCddID0gJ0ZpbG9wcGxhc3RpbmcnOwokbGFuZ1snZmllbGRkZWZfQ29sb3JQaWNrZXInXSA9ICdGYXJnZXZlbGdlcic7CiRsYW5nWydmaWVsZGRlZl9UYWdzJ10gPSAnVGFnZ2VyJzsKJGxhbmdbJ2ZpZWxkZGVmX1RhYnMnXSA9ICdGYW5lJzsKJGxhbmdbJ2ZpZWxkZGVmX0JUX2NvbnRhaW5lcl90ZXh0J10gPSAnVGVrc3QnOwokbGFuZ1snZmllbGRkZWZfQlRfaW5mb3JtYXRpb24nXSA9ICdJbmZvcm1hc2pvbic7CiRsYW5nWydmaWVsZGRlZl9CVF93YXJuaW5nJ10gPSAnQWR2YXJzZWwnOwokbGFuZ1snZmllbGRkZWZfR0JGaWxlUGlja2VyX2NyZWF0ZV9kaXJzJ10gPSAnVGlsbGF0IMOlIG9wcHJldHRlIGthdGFsb2dlcic7CiRsYW5nWydmaWVsZGRlZl9HQkZpbGVQaWNrZXJfZGVsZXRlJ10gPSAnVGlsbGF0IMOlIHNsZXR0ZSc7CiRsYW5nWydmaWVsZGRlZl9HQkZpbGVQaWNrZXJfc2hvd19zdWJkaXJzJ10gPSAnVGlsbGF0IHVuZGVybWFwcGVyJzsKJGxhbmdbJ2ZpZWxkZGVmX0pNRmlsZVBpY2tlcl9jcmVhdGVfZGlycyddID0gJ1RpbGxhdCDDpSBvcHByZXR0ZSBrYXRhbG9nZXInOwokbGFuZ1snZmllbGRkZWZfSk1GaWxlUGlja2VyX2RlbGV0ZSddID0gJ1RpbGxhdCDDpSBzbGV0dGUnOwokbGFuZ1snZmllbGRkZWZfSk1GaWxlUGlja2VyX3Nob3dfc3ViZGlycyddID0gJ1RpbGxhdCB1bmRlcm1hcHBlcic7CiRsYW5nWydmaWVsZGRlZl9MSVNFSW5zdGFuY2UnXSA9ICdMSVNFIGZvcmtvbXN0JzsKJGxhbmdbJ2ZpZWxkZGVmX0xJU0VJbnN0YW5jZUl0ZW0nXSA9ICdMSVNFIGZvcmVrb21zdCBFbGVtZW50JzsKJGxhbmdbJ2ZpZWxkZGVmX2luc3RhbmNlX2hlbHAnXSA9ICdWZWxnIGZvcmVrb21zdCc7CiRsYW5nWydpbnN0YW5jZSddID0gJ0ZvcmtvbXN0JzsKJGxhbmdbJ3Jlb3JkZXJfY2F0ZWdvcmllcyddID0gJ1Jlb3JnYW5pc2VyIGthdGVnb3JpZXInOwokbGFuZ1snZWRpdF9jYXRlZ29yeSddID0gJ1JlZGlnZXIga2F0ZWdvcmknOwokbGFuZ1snY2F0ZWdvcnlfbmFtZSddID0gJ0thdGVnb3JpbmF2bic7CiRsYW5nWydjYXRlZ29yeV9kZXNjcmlwdGlvbiddID0gJ0thdGVnb3JpYmVza3JpdmVsc2UnOwokbGFuZ1snY2F0ZWdvcnlfbmFtZV9lbXB0eSddID0gJ0thdGVnb3JpbmF2biBlciB0b210JzsKJGxhbmdbJ2NhdGVnb3J5X2FsaWFzX2V4aXN0cyddID0gJ0thdGVnb3JpYWxpYXMgZWtzaXN0ZXJlciBhbGxlcmVkZS4gQWxpYXMgbcOlIHbDpnJlIHVuaWt0JzsKJGxhbmdbJ2FyY2hpdmV0ZW1wbGF0ZSddID0gJ2Fya2l2LW1hbCc7CiRsYW5nWydhcmNoaXZldGVtcGxhdGVzJ10gPSAnQXJraXYtbWFsZXInOwokbGFuZ1snY2F0ZWdvcnl0ZW1wbGF0ZSddID0gJ2thdGVnb3JpLW1hbCc7CiRsYW5nWydjYXRlZ29yeXRlbXBsYXRlcyddID0gJ0thdGVnb3JpLW1hbGVyJzsKJGxhbmdbJ3N1bW1hcnl0ZW1wbGF0ZSddID0gJ3NhbW1lbmRyYWctbWFsJzsKJGxhbmdbJ3N1bW1hcnl0ZW1wbGF0ZXMnXSA9ICdTYW1tZW5kcmFnLW1hbGVyJzsKJGxhbmdbJ2RldGFpbHRlbXBsYXRlJ10gPSAnc2V0YWxqLW1hbCc7CiRsYW5nWydkZXRhaWx0ZW1wbGF0ZXMnXSA9ICdEZXRhbGotbWFsZXInOwokbGFuZ1snc2VhcmNodGVtcGxhdGUnXSA9ICdzw7hrZS1tYWwnOwokbGFuZ1snc2VhcmNodGVtcGxhdGVzJ10gPSAnU8O4a2UtbWFsZXInOwokbGFuZ1snZmlsdGVydGVtcGxhdGUnXSA9ICdmaWx0ZXItbWFsJzsKJGxhbmdbJ2ZpbHRlcnRlbXBsYXRlcyddID0gJ0ZpbGVyLW1hbGVyJzsKJGxhbmdbJ2VkaXR0ZW1wbGF0ZSddID0gJ1JlZGlnZXIgbWFsJzsKJGxhbmdbJ3RlbXBsYXRlX25hbWUnXSA9ICdNYWwtbmF2bic7CiRsYW5nWyd0ZW1wbGF0ZV9uYW1lX2VtcHR5J10gPSAnTWFsLW5hdm4gZXIgdG9tdCc7CiRsYW5nWyd0ZW1wbGF0ZV9jb250ZW50X2VtcHR5J10gPSAnTWFsLWlubmhvbGQgZXIgdG9tdCc7CiRsYW5nWydkZWZhdWx0X3RlbXBsYXRlcyddID0gJ1N0YW5kYXJkIG1hbGVyJzsKJGxhbmdbJ21vZHVsZV9vcHRpb25zJ10gPSAnTW9kdWwtdmFsZyc7CiRsYW5nWydpbnN0YW5jZXMnXSA9ICdGb3Jla29tc3Rlcic7CiRsYW5nWydpbnN0YWxsZWRfaW5zdGFuY2VzJ10gPSAnSW5zdGFsbGVydGUgZm9yZWtvbXN0ZXInOwokbGFuZ1snaW5zdGFuY2VfbmFtZSddID0gJ0ZvcmVrb21zdC1uYXZuJzsKJGxhbmdbJ2luc3RhbmNlX2ZyaWVuZGx5bmFtZSddID0gJ1Zlbm5saWctbmF2bic7CiRsYW5nWydpbnN0YW5jZV92ZXJzaW9uJ10gPSAnVmVyc2pvbic7CiRsYW5nWydpbnN0YW5jZV91cGdyYWRlJ10gPSAnT3BwZ3JhZGVyJzsKJGxhbmdbJ2luc3RhbmNlX3VwdG9kYXRlJ10gPSAnT3BwZGF0ZXJ0JzsKJGxhbmdbJ2luc3RhbmNlX21vZHVsZXVwZ3JhZGVkJ10gPSAnTW9kdWwgb3BwZ3JhZGVydCc7CiRsYW5nWydjb3B5X3RpdGxlJ10gPSAnRHVwbGlrYXQtbW9kdWwnOwokbGFuZ1snaW1wb3J0X2Zyb21fTEkyX3RpdGxlJ10gPSAnSW1wb3J0ZXIgZm9yZWtvbXN0ZXIgZnJhIExJMic7CiRsYW5nWydwcm9tcHRfaW1wb3J0X2Zyb21fTEkyJ10gPSAnSW1wb3J0ZXIgZnJhIGVrc2lzdGVyZW5kZSBMSTIgZm9yZWtvbXN0ZXInOwokbGFuZ1snYnV0dG9uX2ltcG9ydF9mcm9tX0xJMiddID0gJ0ltcG9ydGVyISc7CiRsYW5nWydmaXhfaW1wb3J0X2Zyb21fTEkyX3RpdGxlJ10gPSAnRmlrcyBMaXN0SXQyIGltcG9ydGVydGUgdGFiZWxsZXInOwokbGFuZ1snZml4X0xJMl9pbnN0YW5jZXNfd2FybmluZyddID0gJ0JydWsga3VuIGh2aXMgZHUgaGFyIHByb2JsZW1lciBtZWQgw6UgbGVnZ2UgdGlsIGVsbGVyIHJlZGlnZXJlIGVsZW1lbnRlciBlbGxlciBmZWx0ZGVmaW5pc2pvbmVyIHDDpSBmb3Jla29tc3RlciBpbXBvcnRlcnQgZnJhIExpc3RJdDIhJzsKJGxhbmdbJ3Byb21wdF9maXhfaW1wb3J0X2Zyb21fTEkyJ10gPSAnUHLDuHYgw6UgZmlrcyB0YWJlbGxlciBpbXBvcnRlcnQgZnJhIExJMiBmb3Jrb21zdGVyJzsKJGxhbmdbJ2J1dHRvbl9maXhfaW1wb3J0X2Zyb21fTEkyJ10gPSAnRmlrcyEnOwokbGFuZ1snc3VibWl0J10gPSAnU2VuZCc7CiRsYW5nWydkZWZhdWx0J10gPSAnU3RhbmRhcmQnOwokbGFuZ1snY2FuY2VsJ10gPSAnQXZicnl0JzsKJGxhbmdbJ3VwZGF0ZSddID0gJ09wcGRhdGVyJzsKJGxhbmdbJ3JlcGFpciddID0gJ1JlcGFyZXInOwokbGFuZ1snc2F2ZV9jcmVhdGUnXSA9ICdMYWdyZSAmIG9wcHJldHQnOwokbGFuZ1sncmVzZXQnXSA9ICdUaWxiYWtlc3RpbGwgdGlsIHN0YW5kYXJkJzsKJGxhbmdbJ2R1cGxpY2F0ZSddID0gJ09wcHJldHQgZm9yZWtvbXN0JzsKJGxhbmdbJ2NoYW5nZXNzYXZlZCddID0gJ0RpbmUgZW5kcmluZ2VyIGhhciBibGl0dCBsYWdyZXQuJzsKJGxhbmdbJ2NoYW5nZXNzYXZlZF9jcmVhdGUnXSA9ICdEaXR0IGZvcnJpZ2UgZWxlbWVudCBibGUgbGFncmV0LiBTa2FsIGR1IGxhZ2UgZXR0IG55dHQ/JzsKJGxhbmdbJ3RlbXBsYXRlcmVzdG9yZWQnXSA9ICdTdGFuZGFyZCBNYWwgaGFyIGJsaXR0IGdqZW5vcHByZXR0ZXQuJzsKJGxhbmdbJ2FyZXlvdXN1cmUnXSA9ICdFciBkdSBzaWtrZXIgcMOlIGF0IGR1IMO4bnNrZXIgw6Ugc2xldHRlPyc7CiRsYW5nWyd1cCddID0gJ09wcCc7CiRsYW5nWydkb3duJ10gPSAnTmVkJzsKJGxhbmdbJ2VkaXQnXSA9ICdSZWRpZ2VyJzsKJGxhbmdbJ2NvcHknXSA9ICdLb3BpJzsKJGxhbmdbJ2RlbGV0ZSddID0gJ1NsZXR0JzsKJGxhbmdbJ2FkZCddID0gJ0xlZ2cgdGlsICVzJzsKJGxhbmdbJ2ltcG9ydCddID0gJ0ltcG9ydGVyICVzJzsKJGxhbmdbJ2V4cG9ydCddID0gJ0Vrc3BvcnRlciAlcyc7CiRsYW5nWydjbG9uZSddID0gJ0R1cGxpc2VyICVzJzsKJGxhbmdbJ2V4cG9ydF90aXRsZSddID0gJ0Vrc3BvcnQnOwokbGFuZ1snaW1wb3J0X3RpdGxlJ10gPSAnSW1wb3J0JzsKJGxhbmdbJ2Nsb25lX3RpdGxlJ10gPSAnRHVwbGlzZXInOwokbGFuZ1snc2VhcmNoJ10gPSAnU8O4ayc7CiRsYW5nWydzZWFyY2hmb3InXSA9ICdTw7hrIGV0dGVyJzsKJGxhbmdbJ3NlYXJjaHJlc3VsdHNmb3InXSA9ICdTw7hrZXJlc3VsdGF0ZXIgZm9yJzsKJGxhbmdbJ21vZHVsZV9uYW1lJ10gPSAnTW9kdWxuYXZuJzsKJGxhbmdbJ21vZHVsZV9uYW1lX2VtcHR5J10gPSAnTW9kdWxuYXZuIGVyIHRvbXQnOwokbGFuZ1snbW9kdWxlX25hbWVfaW52YWxpZCddID0gJ01vZHVsbmF2biBpbm5laG9sZGVyIHVneWxkaWdlIGJva3N0YXZlcic7CiRsYW5nWydtb2R1bGVjb3BpZWQnXSA9ICdNb2R1bGVuIGJsZSBrb3BpZXJ0JzsKJGxhbmdbJ3NlbGVjdF9vbmUnXSA9ICdWZWxnIGVuJzsKJGxhbmdbJ3NpemUnXSA9ICdTdMO4cnJlbHNlJzsKJGxhbmdbJ21heF9sZW5ndGgnXSA9ICdNYWtzIGxlbmdkZSc7CiRsYW5nWydkYXRlX2Zvcm1hdCddID0gJ0RhdG8tZm9ybWF0JzsKJGxhbmdbJ3RpbWVfZm9ybWF0J10gPSAnVGlkcy1mb3JtYXQnOwokbGFuZ1snZm9ybWF0X3R5cGUnXSA9ICdGb3JtYXQnOwokbGFuZ1snZGlyJ10gPSAnTWFwcGUnOwokbGFuZ1snYWxsb3dlZCddID0gJ1RpbGxhdHQnOwokbGFuZ1snZXhjbHVkZV9wcmVmaXgnXSA9ICdVdGVsYXQgZmlsZW5kZWxzZXInOwokbGFuZ1snaW1hZ2UnXSA9ICdCaWxkZSc7CiRsYW5nWydmaWxlJ10gPSAnRmlsJzsKJGxhbmdbJ3JlcXVpcmVkJ10gPSAnUMOla3JldmQnOwokbGFuZ1snYXNjZW5kaW5nJ10gPSAnU3RpZ2VuZGUnOwokbGFuZ1snZGVzY2VuZGluZyddID0gJ1N5bmtlbmRlJzsKJGxhbmdbJ2V4dHJhJ10gPSAnRWtzdHJhJzsKJGxhbmdbJ2NvbWJpbmVkJ10gPSAnU2FtbWVuc2zDpXR0JzsKJGxhbmdbJ3Nob3dfc2Vjb25kcyddID0gJ1ZpcyBzZWt1bmRlcic7CiRsYW5nWyd2YWx1ZSddID0gJ1ZlcmRpJzsKJGxhbmdbJ3dpZHRoJ10gPSAnQnJlZGRlJzsKJGxhbmdbJ3Nob3dhbGwnXSA9ICdWaXMgYWxsZSc7CiRsYW5nWydjb2x1bW5zJ10gPSAnS29sb25uZXInOwokbGFuZ1snb3duZXInXSA9ICdFaWVyJzsKJGxhbmdbJ2ZpbGVuYW1lJ10gPSAnRmlsbmF2bic7CiRsYW5nWydkdXBsaWNhdGluZyddID0gJ09wcHJldHRlciBmb3Jla29tc3QnOwokbGFuZ1snaW1wb3J0aW5nX2Zyb21fbGkyJ10gPSAnSW1wb3J0ZXJlciBmcmEgTEkyIGZvcmtvbXN0ZXInOwo/Pg==]]></data>
	</file>
	<file>
	  <filename>/lang/ext/nl_NL.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKJGxhbmdbJ2ludmFsaWRfY2hhcmFjdGVycyddID0gJ0thcmFrdGVycywgem9hbHMgJXMgemlqbiBuaWV0IHRvZWdlc3RhYW4gdm9vciB2ZWxkOiAlcyc7CiRsYW5nWydncmVlbiddID0gJ0dyb2VuJzsKJGxhbmdbJ3llbGxvdyddID0gJ0dlZW4nOwokbGFuZ1sncmVkJ10gPSAnUm9vZCc7CiRsYW5nWydsaXNlX21vZGVfbGlzdF9uYW1lJ10gPSAnTGlzdCBtb2R1cyc7CiRsYW5nWydsaXNlX21vZGVfZ2xvYmFsX25hbWUnXSA9ICdHbG9iYWwgbW9kdXMnOwokbGFuZ1snbGlzZV9tb2RlX2xvY2FsX25hbWUnXSA9ICdMb2NhbCBtb2R1cyc7CiRsYW5nWydpdGVtJ10gPSAnSXRlbSc7CiRsYW5nWydpdGVtcyddID0gJ0l0ZW1zJzsKJGxhbmdbJ2dsb2JhbCddID0gJ0dsb2JhbGUgaW5zdGVsbGluZ2VuJzsKJGxhbmdbJ2xvY2FsX3NldHRpbmdzJ10gPSAnSW5zdGVsbGluZ2VuJzsKJGxhbmdbJ2ZpZWxkZGVmJ10gPSAnVmVsZGRlZmluaXRpZSc7CiRsYW5nWydmaWVsZGRlZnMnXSA9ICdWZWxkZGVmaW5pdGllcyc7CiRsYW5nWyd0ZW1wbGF0ZSddID0gJ1NqYWJsb29uJzsKJGxhbmdbJ3RlbXBsYXRlcyddID0gJ1NqYWJsb25lbic7CiRsYW5nWydjYXRlZ29yeSddID0gJ0NhdGVnb3JpZSc7CiRsYW5nWydjYXRlZ29yaWVzJ10gPSAnQ2F0ZWdvcmllw6tuJzsKJGxhbmdbJ29wdGlvbiddID0gJ09wdGllJzsKJGxhbmdbJ29wdGlvbnMnXSA9ICdPcHRpZXMnOwokbGFuZ1snbWFpbnRlbmFuY2UnXSA9ICdPbmRlcmhvdWQnOwokbGFuZ1snYmFjayddID0gJ0dhIMOpw6luIHBhZ2luYSB0ZXJ1Zyc7CiRsYW5nWydhYm91dCddID0gJ092ZXInOwokbGFuZ1snd2hhdHNuZXcnXSA9ICdXYXQgaXMgZXIgbmlldXcnOwokbGFuZ1sncHJvbXB0X2ZpeF9maWVsZGRlZnMnXSA9ICdQcm9iZWVyIGRlIHZlbGRkZWZpbml0aWUgZGF0YWJhc2V0YWJlbGxlbiB0ZSByZXBhcmVyZW4nOwokbGFuZ1snbWVzc2FnZV9maWVsZGRlZnNfZml4ZWQnXSA9ICdWZWxkZGVmaW5pdGllcyBpbiBhbGxlIGluc3RhbnRpZXMgZ2VyZXBhcmVlcmQnOwokbGFuZ1snbWVzc2FnZV9pbnN0YW5jZXNfY29waWVkJ10gPSAnQWxsZSBpbnN0YW50aWVzIHppam4gZ2VrbG9vbmQnOwokbGFuZ1snaXRlbV90aXRsZSddID0gJ1RpdGVsJzsKJGxhbmdbJ3Byb21wdF9pdGVtX3RpdGxlJ10gPSAnSXRlbSB0aXRlbCc7CiRsYW5nWydwcm9tcHRfb2YnXSA9ICdvcic7CiRsYW5nWydhY3RpdmUnXSA9ICdBY3RpZWYnOwokbGFuZ1snY3JlYXRlX3RpbWUnXSA9ICdBYW5tYWFrZGF0dW0nOwokbGFuZ1snbW9kaWZpZWRfdGltZSddID0gJ1dpanppZ2luZ3NkYXR1bSc7CiRsYW5nWyd0aW1lX2NvbnRyb2wnXSA9ICdHZWJydWlrIHRpamRzY29udHJvbGUnOwokbGFuZ1snc3RhcnRfdGltZSddID0gJ1N0YXJ0dGlqZCc7CiRsYW5nWydlbmRfdGltZSddID0gJ0VpbmR0aWpkJzsKJGxhbmdbJ2l0ZW1fdGl0bGVfZW1wdHknXSA9ICdJdGVtIHRpdGVsIGlzIGxlZWcnOwokbGFuZ1sncmVxdWlyZWRfZmllbGRfZW1wdHknXSA9ICdWZXJlaXN0IHZlbGQgaXMgbGVlZyc7CiRsYW5nWyd0b29fbG9uZyddID0gJ1dhYXJkZSB2YW4gaGV0IHZlbGQgb3ZlcnNjaHJpamZ0IGRlIG1heGltYWxlIGxlbmd0ZSc7CiRsYW5nWydhcHByb3ZlJ10gPSAnWmV0IGRlIHN0YXR1cyBvcCBcJ2FjdGllZlwnJzsKJGxhbmdbJ3JldmVydCddID0gJ1pldCBkZSBzdGF0dXMgb3AgXCdpbmFjdGllZlwnJzsKJGxhbmdbJ3RvZ2dsZV9zdGF0dXMnXSA9ICdLZWVyIGRlIHN0YXR1cyBvbSc7CiRsYW5nWydzZWxlY3RfaXRlbSddID0gJ1NlbGVjdGVlciBpdGVtJzsKJGxhbmdbJ3N1Ym1pdF9vcmRlciddID0gJ1NsYSBkZSB2b2xnb3JkZSBvcCc7CiRsYW5nWydkZWxldGVfc2VsZWN0ZWQnXSA9ICdWZXJ3aWpkZXJlZCBnZXNlbGVjdGVlcmRlICVzJzsKJGxhbmdbJ2FyZXlvdXN1cmVfZGVsZXRlbXVsdGlwbGUnXSA9ICdXZWV0IGplIHpla2VyIGRhdCBqZSBhbCBkZXplICVzIHdpbHQgdmVyd2lqZGVyZW4/JzsKJGxhbmdbJ3NlbGVjdF9hbGwnXSA9ICdTZWxlY3RlZXIgYWxsZXMnOwokbGFuZ1snZXJyb3Jfc3RhcnRncmVhdGVyZW5kJ10gPSAnU3RhcnRkYXR1bSBpcyBncm90ZXIgZGFuIGVpbmRkYXR1bSc7CiRsYW5nWydpdGVtX2FsaWFzX2V4aXN0cyddID0gJ0l0ZW0gYWxpYXMgYmVzdGFhdCByZWVkcy4gQWxpYXMgbW9ldCB1bmllayB6aWpuLic7CiRsYW5nWydyZXR1cm5fdXJsJ10gPSAnVGVydWcnOwokbGFuZ1sncGF0aGNvbnRhaW5zdmFycyddID0gJ0RpdCB2ZWxkIGthbiBhYW5nZXBhc3Qgd29yZGVuIG5hZGF0IGRpdCAlcyBpcyBvcGdlc2xhZ2VuLic7CiRsYW5nWyd1cmwnXSA9ICdLaWVzIGVlbiBhYW5nZXBhc3RlIFVSTCB2b29yIGRpdCBpdGVtIG9mIGFjY2VwdGVlciBkZSBnZWdlbmVyZWVyZGUnOwokbGFuZ1snaXRlbV92YXJfaGVscF9pdGVtX2lkJ10gPSAnQWxzIGl0ZW1faWQgd29yZHQgb3BnZWdldmVuIGRhbiB3b3JkdCBlcnZhbiB1aXRnZWdhYW4gZGF0IGhldCBiZXN0YWFuZGUgaXRlbXMgaW4gZGUgZGF0YWJhc2UgYmV0cmVmdC4gQWxzIGplIG5pZXV3ZSBpdGVtcyBpbXBvcnRlZXJ0LCBuZWdlZXIgZGl0IHZlbGQuJzsKJGxhbmdbJ2l0ZW1fdmFyX2hlbHBfY2F0ZWdvcnlfaWQnXSA9ICdBbHMgY2F0ZWdvcnlfaWQgd29yZHQgb3BnZWdldmVuIGRhbiB3b3JkdCBoZXQgaXRlbSBpbiBkZXplIGNhdGVnb3J5IGdlcGxhYXRzdC4gQWxzIGRlIGNhdGVnb3J5X2lkIGlzIG9wZ2VnZXZlbiBtYWFyIG5pZXQgYmVzdGFhdCBkYW4gd29yZHQgZGV6ZSBnZW5lZ2VlcmQgZW4gaGV0IGl0ZW0gaW4gZGUgc3RhbmRhYXJkIGNhdGVnb3J5IGdlcGxhYXRzdC4nOwokbGFuZ1snaXRlbV92YXJfaGVscF90aXRsZSddID0gJ0l0ZW0gdGl0ZWwgd29yZHQgaW4gZGUgVVJMIGdlYnJ1aWt0IGVuIGhldCBiZXNjaHJpamZ0IGhldCBpdGVtJzsKPz4=]]></data>
	</file>
	<file>
	  <filename>/lang/ext/pt_PT.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKJGxhbmdbJ2l0ZW0nXSA9ICdJdGVtJzsKJGxhbmdbJ2l0ZW1zJ10gPSAnSXRlbnMnOwo/Pg==]]></data>
	</file>
	<file>
	  <filename>/lang/ext/ru_RU.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKJGxhbmdbJ2dyZWVuJ10gPSAn0JfQtdC70LXQvdGL0LknOwokbGFuZ1sneWVsbG93J10gPSAn0JbQtdC70YLRi9C5JzsKJGxhbmdbJ3JlZCddID0gJ9Ca0YDQsNGB0L3Ri9C5JzsKJGxhbmdbJ2l0ZW0nXSA9ICfQntCx0YrQtdC60YInOwokbGFuZ1snaXRlbXMnXSA9ICfQntCx0YrQtdC60YLRiyc7CiRsYW5nWydnbG9iYWwnXSA9ICfQntCx0YnQuNC1INC90LDRgdGC0YDQvtC50LrQuCc7CiRsYW5nWydsb2NhbF9zZXR0aW5ncyddID0gJ9Cd0LDRgdGC0YDQvtC50LrQuCc7CiRsYW5nWydmaWVsZGRlZiddID0gJ9Cf0L7Qu9GM0LfQvtCy0LDRgtC10LvRjNGB0LrQvtC1INC/0L7Qu9C1JzsKJGxhbmdbJ2ZpZWxkZGVmcyddID0gJ9Cf0L7Qu9GM0LfQvtCy0LDRgtC10LvRjNGB0LrQuNC1INC/0L7Qu9GPJzsKJGxhbmdbJ3RlbXBsYXRlJ10gPSAn0KjQsNCx0LvQvtC9JzsKJGxhbmdbJ3RlbXBsYXRlcyddID0gJ9Co0LDQsdC70L7QvdGLJzsKJGxhbmdbJ2NhdGVnb3J5J10gPSAn0JrQsNGC0LXQs9C+0YDQuNGPJzsKJGxhbmdbJ2NhdGVnb3JpZXMnXSA9ICfQmtCw0YLQtdCz0L7RgNC40LgnOwokbGFuZ1snb3B0aW9uJ10gPSAn0J7Qv9GG0LjRjyc7CiRsYW5nWydvcHRpb25zJ10gPSAn0J7Qv9GG0LjQuCc7CiRsYW5nWydtYWludGVuYW5jZSddID0gJ9Ce0LHRgdC70YPQttC40LLQsNC90LjQtSc7CiRsYW5nWydiYWNrJ10gPSAn0J/QtdGA0LXQudGC0Lgg0L3QsCDQvtC00L3RgyDRgdGC0YDQsNC90LjRhtGDINC90LDQt9Cw0LQnOwokbGFuZ1snYWJvdXQnXSA9ICfQniDQvNC+0LTRg9C70LUnOwokbGFuZ1snd2hhdHNuZXcnXSA9ICfQp9GC0L4g0L3QvtCy0L7Qs9C+JzsKJGxhbmdbJ2l0ZW1fdGl0bGUnXSA9ICfQl9Cw0LPQvtC70L7QstC+0LonOwokbGFuZ1sncHJvbXB0X2l0ZW1fdGl0bGUnXSA9ICfQl9Cw0LPQvtC70L7QstC+0Log0L7QsdGK0LXQutGC0LAnOwokbGFuZ1sncHJvbXB0X29mJ10gPSAn0LjQtyc7CiRsYW5nWydhY3RpdmUnXSA9ICfQkNC60YLQuNCy0L3Ri9C5JzsKJGxhbmdbJ2NyZWF0ZV90aW1lJ10gPSAn0JTQsNGC0LAg0YHQvtC30LTQsNC90LjRjyc7CiRsYW5nWydtb2RpZmllZF90aW1lJ10gPSAn0JTQsNGC0LAg0LjQt9C80LXQvdC10L3QuNGPJzsKJGxhbmdbJ3RpbWVfY29udHJvbCddID0gJ9CY0YHQv9C+0LvRjNC30L7QstCw0YLRjCDQutC+0L3RgtGA0L7Qu9GMINCy0YDQtdC80LXQvdC4JzsKJGxhbmdbJ3N0YXJ0X3RpbWUnXSA9ICfQktGA0LXQvNGPINC90LDRh9Cw0LvQsCc7CiRsYW5nWydlbmRfdGltZSddID0gJ9CS0YDQtdC80Y8g0L7QutC+0L3Rh9Cw0L3QuNGPJzsKJGxhbmdbJ2l0ZW1fdGl0bGVfZW1wdHknXSA9ICfQl9Cw0LPQvtC70L7QstC+0Log0L7QsdGK0LXQutGC0LAg0L/Rg9GB0YInOwokbGFuZ1sncmVxdWlyZWRfZmllbGRfZW1wdHknXSA9ICfQntCx0Y/Qt9Cw0YLQtdC70YzQvdC+0LUg0L/QvtC70LUg0L/Rg9GB0YLQvic7CiRsYW5nWyd0b29fbG9uZyddID0gJ9CX0L3QsNGH0LXQvdC40LUg0L/QvtC70Y8g0L/RgNC10LLRi9GI0LDQtdGCINC80LDQutGB0LjQvNCw0LvRjNC90YPRjiDQtNC70LjQvdGDJzsKJGxhbmdbJ2FwcHJvdmUnXSA9ICfQo9GB0YLQsNC90L7QstC40YLQtSDRgdGC0LDRgtGD0YEgIMKr0JDQutGC0LjQstC90YvQucK7JzsKJGxhbmdbJ3JldmVydCddID0gJ9Cj0YHRgtCw0L3QvtCy0LjRgtC1INGB0YLQsNGC0YPRgSAgwqvQndC10LDQutGC0LjQstC90YvQucK7JzsKJGxhbmdbJ3RvZ2dsZV9zdGF0dXMnXSA9ICfQn9C10YDQtdC60LvRjtGH0LjRgtGMINGB0YLQsNGC0YPRgSc7CiRsYW5nWydzZWxlY3RfaXRlbSddID0gJ9CS0YvQsdGA0LDRgtGMINC+0LHRitC10LrRgic7CiRsYW5nWydkZWxldGVfc2VsZWN0ZWQnXSA9ICfQo9C00LDQu9C40YLRjCDQstGL0LHRgNCw0L3QvdC+0LUgJXMnOwokbGFuZ1snYXJleW91c3VyZV9kZWxldGVtdWx0aXBsZSddID0gJ9CS0Ysg0LTQtdC50YHRgtCy0LjRgtC10LvRjNC90L4g0YXQvtGC0LjRgtC1INGD0LTQsNC70LjRgtGMINCy0YHQtSDRjdGC0LggJXM/JzsKJGxhbmdbJ3NlbGVjdF9hbGwnXSA9ICfQktGL0LHRgNCw0YLRjCDQstGB0LUnOwokbGFuZ1snZXJyb3Jfc3RhcnRncmVhdGVyZW5kJ10gPSAn0JTQsNGC0LAg0L3QsNGH0LDQu9CwINCx0L7Qu9GM0YjQtSDQtNCw0YLRiyDQvtC60L7QvdGH0LDQvdC40Y8uJzsKJGxhbmdbJ2l0ZW1fYWxpYXNfZXhpc3RzJ10gPSAn0J/RgdC10LLQtNC+0L3QuNC8INGN0LvQtdC80LXQvdGC0LAg0YPQttC1INGB0YPRidC10YHRgtCy0YPQtdGCLiDQn9GB0LXQstC00L7QvdC40Lwg0LTQvtC70LbQtdC9INCx0YvRgtGMINGD0L3QuNC60LDQu9GM0L3Ri9C8Lic7CiRsYW5nWydyZXR1cm5fdXJsJ10gPSAn0JLQtdGA0L3Rg9GC0YzRgdGPJzsKJGxhbmdbJ3BhdGhjb250YWluc3ZhcnMnXSA9ICfQrdGC0L4g0L/QvtC70LUg0LzQvtC20L3QviDRgNC10LTQsNC60YLQuNGA0L7QstCw0YLRjCDQv9C+0YHQu9C1INC/0YDQtdC00LLQsNGA0LjRgtC10LvRjNC90L7Qs9C+INGB0L7RhdGA0LDQvdC10L3QuNGPICAlcyc7CiRsYW5nWyd1cmwnXSA9ICfQktGL0LHQtdGA0LjRgtC1INGB0L7QsdGB0YLQstC10L3QvdGL0LkgVVJMINC00LvRjyDRjdGC0L7Qs9C+INC+0LHRitC10LrRgtCwINC40LvQuCDQv9GA0LjQvNC40YLQtSDRgdCz0LXQvdC10YDQuNGA0L7QstCw0L3QvdGL0LknOwokbGFuZ1snZGxnX2VkaXRvcl9ucF93YXJuX3RpdGxlJ10gPSAn0J/QvtC00YLQstC10YDQttC00LXQvdC40LUnOwokbGFuZ1snbWFpbl9zZXR0aW5ncyddID0gJ9Ce0YHQvdC+0LLQvdGL0LUg0L/QsNGA0LDQvNC10YLRgNGLJzsKJGxhbmdbJ2ZpZWxkZGVmX25hbWUnXSA9ICfQmNC80Y8nOwokbGFuZ1snZmllbGRkZWZfaGVscCddID0gJ9Cf0L7Qu9C10LfQvdGL0Lkg0YHQvtCy0LXRgic7CiRsYW5nWydmaWVsZGRlZl90eXBlJ10gPSAn0KLQuNC/JzsKJGxhbmdbJ2ZpZWxkZGVmX2RlcHMnXSA9ICfQl9Cw0LLQuNGB0LjQvNC+0YHRgtC4INC80L7QtNGD0LvQtdC5JzsKJGxhbmdbJ2ZpZWxkZGVmX21heF9sZW5ndGgnXSA9ICfQnNCw0LrRgdC40LzQsNC70YzQvdCw0Y8g0LTQu9C40L3QsCc7CiRsYW5nWydmaWVsZGRlZl9yZXF1aXJlZCddID0gJ9Ce0LHRj9C30LDRgtC10LvRjNC90YvQtSc7CiRsYW5nWydmaWVsZGRlZl9CVF9pbmZvcm1hdGlvbiddID0gJ9CY0L3RhNC+0YDQvNCw0YbQuNGPJzsKJGxhbmdbJ2ZpZWxkZGVmX0JUX3dhcm5pbmcnXSA9ICfQn9GA0LXQtNGD0L/RgNC10LbQtNC10L3QuNC1JzsKJGxhbmdbJ2luc3RhbmNlJ10gPSAn0J/RgNC40LzQtdGAJzsKJGxhbmdbJ2lkZW50aWZpZXInXSA9ICfQmNC00LXQvdGC0LjRhNC40LrQsNGC0L7RgCc7CiRsYW5nWydmaWVsZGRlZl91c2VycyddID0gJ9Cf0L7Qu9GM0LfQvtCy0LDRgtC10LvQuCc7CiRsYW5nWydjYXRlZ29yeXRlbXBsYXRlJ10gPSAn0KjQsNCx0LvQvtC9INC60LDRgtC10LPQvtGA0LjQuCc7CiRsYW5nWydjYXRlZ29yeXRlbXBsYXRlcyddID0gJ9Co0LDQsdC70L7QvdGLINC60LDRgtC10LPQvtGA0LjQuSc7CiRsYW5nWydzdW1tYXJ5dGVtcGxhdGUnXSA9ICfQodGD0LzQvNCw0YDQvdGL0Lkg0YjQsNCx0LvQvtC9JzsKJGxhbmdbJ3N1bW1hcnl0ZW1wbGF0ZXMnXSA9ICfQodGD0LzQvNCw0YDQvdGL0LUg0YjQsNCx0LvQvtC90YsnOwokbGFuZ1snZGV0YWlsdGVtcGxhdGUnXSA9ICfQn9C+0LTRgNC+0LHQvdGL0Lkg0YjQsNCx0LvQvtC9JzsKJGxhbmdbJ2RldGFpbHRlbXBsYXRlcyddID0gJ9Cf0L7QtNGA0L7QsdC90YvQtSDRiNCw0LHQu9C+0L3Riyc7CiRsYW5nWydzZWFyY2h0ZW1wbGF0ZSddID0gJ9Co0LDQsdC70L7QvSDQv9C+0LjRgdC60LAnOwokbGFuZ1snc2VhcmNodGVtcGxhdGVzJ10gPSAn0KjQsNCx0LvQvtC90Ysg0L/QvtC40YHQutCwJzsKJGxhbmdbJ2ZpbHRlcnRlbXBsYXRlJ10gPSAn0KjQsNCx0LvQvtC9INGE0LjQu9GM0YDQsCc7CiRsYW5nWydmaWx0ZXJ0ZW1wbGF0ZXMnXSA9ICfQqNCw0LHQu9C+0L3RiyDRhNC40LvRjNGA0LAnOwokbGFuZ1snZWRpdHRlbXBsYXRlJ10gPSAn0JjQt9C80LXQvdC40YLRjCDRiNCw0LHQu9C+0L0nOwokbGFuZ1sndGVtcGxhdGVfbmFtZSddID0gJ9CY0LzRjyDRiNCw0LHQu9C+0L3QsCc7CiRsYW5nWyd0ZW1wbGF0ZV9uYW1lX2VtcHR5J10gPSAn0JjQvNGPINGI0LDQsdC70L7QvdCwINC90LUg0LfQsNC00LDQvdC+JzsKJGxhbmdbJ3RlbXBsYXRlX2NvbnRlbnRfZW1wdHknXSA9ICfQqNCw0LHQu9C+0L0g0L3QtSDQt9Cw0LTQsNC9JzsKJGxhbmdbJ2RlZmF1bHRfdGVtcGxhdGVzJ10gPSAn0KjQsNCx0LvQvtC90Ysg0L/QviDRg9C80L7Qu9GH0LDQvdC40Y4nOwokbGFuZ1snbW9kdWxlX29wdGlvbnMnXSA9ICfQn9Cw0YDQsNC80LXRgtGA0Ysg0LzQvtC00YPQu9GPJzsKJGxhbmdbJ3VybF9vcHRpb25zJ10gPSAn0J/QsNGA0LDQvNC10YLRgNGLIFVSTCc7CiRsYW5nWydkZWZhdWx0X29wdGlvbnMnXSA9ICfQndCw0YHRgtGA0L7QudC60Lgg0LzQvtC00YPQu9GPINC/0L4g0YPQvNC+0LvRh9Cw0L3QuNGOJzsKJGxhbmdbJ3htb2R1bGVfb3B0aW9ucyddID0gJ9Ce0L/RhtC40Lgg0LrRgNC+0YHRgS3QvNC+0LTRg9C70Y8nOwokbGFuZ1sncHJvbXB0X2ZyaWVuZGx5bmFtZSddID0gJ9CY0LzRjyDQvNC+0LTRg9C70Y8gKGZyaWVuZGx5IG5hbWUpJzsKJGxhbmdbJ3Byb21wdF91cmxfcHJlZml4J10gPSAn0J/RgNC10YTQuNC60YEgVVJMJzsKJGxhbmdbJ3Byb21wdF91cmxfdGVtcGxhdGUnXSA9ICfQqNCw0LHQu9C+0L0gVVJMJzsKJGxhbmdbJ3Byb21wdF9kZXRhaWxwYWdlJ10gPSAn0KHRgtGA0LDQvdC40YbQsCDQtNC70Y8g0L/QvtC00YDQvtCx0L3QvtCz0L4g0L/RgNC+0YHQvNC+0YLRgNCwJzsKJGxhbmdbJ3Byb21wdF9zdW1tYXJ5cGFnZSddID0gJ9Ch0YLRgNCw0L3QuNGG0LAg0LTQu9GPINGB0YPQvNC80LDRgNC90L7Qs9C+INC/0YDQvtGB0LzQvtGC0YDQsCc7CiRsYW5nWydpbnN0YW5jZV9mcmllbmRseW5hbWUnXSA9ICfQlNGA0YPQttC10YHRgtCy0LXQvdC90L7QtSDQuNC80Y8nOwokbGFuZ1snaW5zdGFuY2VfdmVyc2lvbiddID0gJ9CS0LXRgNGB0LjRjyc7CiRsYW5nWydpbnN0YW5jZV91cGdyYWRlJ10gPSAn0J7QsdC90L7QstC40YLRjCc7CiRsYW5nWydpbnN0YW5jZV9tb2R1bGV1cGdyYWRlZCddID0gJ9Cc0L7QtNGD0LvRjCDQvtCx0L3QvtCy0LvQtdC9JzsKJGxhbmdbJ2NvcHlfdGl0bGUnXSA9ICfQlNGD0LHQu9C40YDRg9GO0YnQuNC5INC80L7QtNGD0LvRjCc7CiRsYW5nWydidXR0b25faW1wb3J0X2Zyb21fTEkyJ10gPSAn0JjQvNC/0L7RgNGCISc7CiRsYW5nWydzdWJtaXQnXSA9ICfQntGC0L/RgNCw0LLQuNGC0YwnOwokbGFuZ1snZGVmYXVsdCddID0gJ9Cf0L4g0YPQvNC+0LvRh9Cw0L3QuNGOJzsKJGxhbmdbJ2NhbmNlbCddID0gJ9Ce0YLQvNC10L3QsCc7CiRsYW5nWyd1cGRhdGUnXSA9ICfQntCx0L3QvtCy0LjRgtGMJzsKJGxhbmdbJ3JlcGFpciddID0gJ9Cf0L7Rh9C40L3QuNGC0YwnOwokbGFuZ1snc2F2ZV9jcmVhdGUnXSA9ICfQodC+0YXRgNCw0L3QuNGC0YwgJmFtcDsg0KHQvtC30LTQsNGC0YwnOwokbGFuZ1sncmVzZXQnXSA9ICfQodCx0YDQvtGB0LjRgtGMINC/0L4g0YPQvNC+0LvRh9Cw0L3QuNGOJzsKJGxhbmdbJ2R1cGxpY2F0ZSddID0gJ9Ch0L7Qt9C00LDRgtGMINGN0LrQt9C10LzQv9C70Y/RgCc7CiRsYW5nWydjaGFuZ2Vzc2F2ZWQnXSA9ICfQktCw0YjQuCDQuNC30LzQtdC90LXQvdC40Y8g0LHRi9C70Lgg0YPRgdC/0LXRiNC90L4g0YHQvtGF0YDQsNC90LXQvdGLLic7CiRsYW5nWyd0ZW1wbGF0ZXJlc3RvcmVkJ10gPSAn0KjQsNCx0LvQvtC9INC/0L4g0YPQvNC+0LvRh9Cw0L3QuNGOINCy0L7RgdGB0YLQsNC90L7QstC70LXQvS4nOwokbGFuZ1snYXJleW91c3VyZSddID0gJ9CS0Ysg0YPQstC10YDQtdC90YssINGH0YLQviDRhdC+0YLQuNGC0LUg0YPQtNCw0LvQuNGC0Yw/JzsKJGxhbmdbJ3VwJ10gPSAn0J3QsNCy0LXRgNGFJzsKJGxhbmdbJ2Rvd24nXSA9ICfQktC90LjQtyc7CiRsYW5nWydlZGl0J10gPSAn0KDQtdC00LDQutGC0LjRgNC+0LLQsNGC0YwnOwokbGFuZ1snY29weSddID0gJ9Ca0L7Qv9C40YDQvtCy0LDRgtGMJzsKJGxhbmdbJ2RlbGV0ZSddID0gJ9Cj0LTQsNC70LjRgtGMJzsKJGxhbmdbJ25vc3VjaGlkJ10gPSAn0J3QtdGCINGC0LDQutC+0LPQviAgSUQnOwokbGFuZ1snYWRkJ10gPSAn0JTQvtCx0LDQstC40YLRjCAlcyc7CiRsYW5nWydpbXBvcnQnXSA9ICfQmNC80L/QvtGA0YLQuNGA0L7QstCw0YLRjCAlcyc7CiRsYW5nWydleHBvcnQnXSA9ICfQrdC60YHQv9C+0YDRgtC40YDQvtCy0LDRgtGMICVzJzsKJGxhbmdbJ2Nsb25lJ10gPSAn0JrQvtC/0LjRgNCy0L7QsNGC0YwgJXMnOwokbGFuZ1snZXhwb3J0X3RpdGxlJ10gPSAn0K3QutGB0L/QvtGA0YInOwokbGFuZ1snaW1wb3J0X3RpdGxlJ10gPSAn0JjQvNC/0L7RgNGCJzsKJGxhbmdbJ2Nsb25lX3RpdGxlJ10gPSAn0JrQvtC/0LjRgNC+0LLQsNC90LjQtSc7CiRsYW5nWydhbGlhcyddID0gJ9Cf0YHQtdCy0LTQvtC90LjQvCc7CiRsYW5nWydhbGlhc19kdXBsaWNhdGUnXSA9ICfQn9GB0LXQstC00L7QvdC40Lwg0L3QtdC00LXQudGB0YLQstC40YLQtdC70LXQvS4g0JrQsNC20LTRi9C5INC/0YHQtdCy0LTQvtC90LjQvCDQtNC+0LvQttC10L0g0LHRi9GC0Ywg0YPQvdC40LrQsNC70YzQvdGL0LwnOwokbGFuZ1snYWxpYXNfaW52YWxpZCddID0gJ9Cf0YHQtdCy0LTQvtC90LjQvCDQvdC10LTQtdC50YHRgtCy0LjRgtC10LvQtdC9LiDQntC9INC00L7Qu9C20LXQvSDQvdCw0YfQuNC90LDRgtGM0YHRjyDRgSDQsdGD0LrQstGLINC4INCy0LrQu9GO0YfQsNGC0Ywg0YLQvtC70YzQutC+INCx0YPQutCy0YssINGG0LjRhNGA0Ysg0Lgg0YHQuNC80LLQvtC70Ysg0L/QvtC00YfQtdGA0LrQuNCy0LDQvdC40Y8nOwokbGFuZ1snc2VhcmNoJ10gPSAn0J/QvtC40YHQuic7CiRsYW5nWydzZWFyY2hmb3InXSA9ICfQmNGB0LrQsNGC0YwnOwokbGFuZ1snc2VhcmNocmVzdWx0c2ZvciddID0gJ9Cg0LXQt9GD0LvRjNGC0LDRgtGLINC/0L7QuNGB0LrQsCDQtNC70Y8nOwokbGFuZ1snZmlyc3RwYWdlJ10gPSAnJmx0OyZsdDsnOwokbGFuZ1sncHJldnBhZ2UnXSA9ICcmbHQ7JzsKJGxhbmdbJ25leHRwYWdlJ10gPSAnJmd0Oyc7CiRsYW5nWydsYXN0cGFnZSddID0gJyZndDsmZ3Q7JzsKJGxhbmdbJ21vZHVsZV9uYW1lJ10gPSAn0JjQvNGPINC80L7QtNGD0LvRjyc7CiRsYW5nWydtb2R1bGVfbmFtZV9lbXB0eSddID0gJ9CY0LzRjyDQvNC+0LTRg9C70Y8g0L3QtSDQt9Cw0LTQsNC90L4nOwokbGFuZ1snbW9kdWxlX25hbWVfaW52YWxpZCddID0gJ9CY0LzRjyDQvNC+0LTRg9C70Y8g0YHQvtC00LXRgNC20LjRgiDQvdC10LTQvtC/0YPRgdGC0LjQvNGL0LUg0YHQuNC80LLQvtC70YsnOwokbGFuZ1snbW9kdWxlY29waWVkJ10gPSAn0JzQvtC00YPQu9GMINGD0YHQv9C10YjQvdC+INGB0LrQvtC/0LjRgNC+0LLQsNC9JzsKJGxhbmdbJ3NlbGVjdF9vbmUnXSA9ICfQktGL0LHQtdGA0Lgg0L7QtNC40L0nOwokbGFuZ1snc2l6ZSddID0gJ9Cg0LDQt9C80LXRgCc7CiRsYW5nWydtYXhfbGVuZ3RoJ10gPSAn0JzQsNC60YHQuNC80LDQu9GM0L3QsNGPINC00LvQuNC90LAnOwokbGFuZ1snd3lzaXd5ZyddID0gJ1dZU0lXWUcnOwokbGFuZ1snZGF0ZV9mb3JtYXQnXSA9ICfQpNC+0YDQvNCw0YIg0LTQsNGC0YsnOwokbGFuZ1sndGltZV9mb3JtYXQnXSA9ICfQpNC+0YDQvNCw0YIg0LLRgNC10LzQtdC90LgnOwokbGFuZ1snZm9ybWF0X3R5cGUnXSA9ICfQotC40L8g0YTQvtGA0LzQsNGC0LAnOwokbGFuZ1snaW1hZ2UnXSA9ICfQmNC30L7QsdGA0LDQttC10L3QuNC1JzsKJGxhbmdbJ2ZpbGUnXSA9ICfQpNCw0LnQuyc7CiRsYW5nWyd1bnRpdGxlZCddID0gJ9C90LUg0YPQutCw0LfQsNC90L4nOwokbGFuZ1snZ2EnXSA9ICdHQTEuMi40MDIzNDgwOTEuMTYzNDE5MjMyMyc7CiRsYW5nWydnaWQnXSA9ICdHQTEuMi4xNTEzODgwODk4LjE2NDQ4MTAzNDgnOwokbGFuZ1snZmJwJ10gPSAnZmIuMS4xNjQ0ODExNjE5NjY4LjE4NTQ2NTg3ODYnOwo/Pg==]]></data>
	</file>
	<file>
	  <filename>/lang/ext/tr_TR.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKJGxhbmdbJ2dyZWVuJ10gPSAnWWXFn2lsJzsKJGxhbmdbJ3llbGxvdyddID0gJ1NhcsSxJzsKJGxhbmdbJ3JlZCddID0gJ0vEsXJtxLF6xLEnOwokbGFuZ1snY2F0ZWdvcnknXSA9ICdLYXRlZ29yaSc7CiRsYW5nWydjYXRlZ29yaWVzJ10gPSAnS2F0ZWdvcmlsZXInOwokbGFuZ1snb3B0aW9uJ10gPSAnQXlhcic7CiRsYW5nWydvcHRpb25zJ10gPSAnQXlhcmxhcic7CiRsYW5nWydtYWludGVuYW5jZSddID0gJ0Jha8SxbSc7CiRsYW5nWydiYWNrJ10gPSAnR2VyaSBnaXQnOwokbGFuZ1snaXRlbV90aXRsZSddID0gJ0JhxZ9sxLFrJzsKJGxhbmdbJ2FjdGl2ZSddID0gJ0FrdGlmJzsKPz4=]]></data>
	</file>
	<file>
	  <filename>/lang/ext/uk_UA.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKJGxhbmdbJ2ludmFsaWRfY2hhcmFjdGVycyddID0gJ9Ch0LjQvNCy0L7Qu9C4LCDRgtCw0LrRliDRj9C6ICVzINC90LUg0LTQvtC30LLQvtC70LXQvdGWINCyINC/0L7Qu9GWICVzJzsKJGxhbmdbJ2dyZWVuJ10gPSAn0JfQtdC70LXQvdC40LknOwokbGFuZ1sneWVsbG93J10gPSAn0JbQvtCy0YLQuNC5JzsKJGxhbmdbJ3JlZCddID0gJ9Cn0LXRgNCy0L7QvdC40LknOwokbGFuZ1snaXRlbSddID0gJ9CV0LvQtdC80LXQvdGCJzsKJGxhbmdbJ2l0ZW1zJ10gPSAn0JXQu9C10LzQtdC90YLQuCc7CiRsYW5nWydmaWVsZGRlZiddID0gJ9Cf0L7Qu9C1JzsKJGxhbmdbJ2ZpZWxkZGVmcyddID0gJ9Ci0LjQv9C4INC/0L7Qu9GW0LInOwokbGFuZ1sndGVtcGxhdGUnXSA9ICfQqNCw0LHQu9C+0L0nOwokbGFuZ1sndGVtcGxhdGVzJ10gPSAn0KjQsNCx0LvQvtC90LgnOwokbGFuZ1snY2F0ZWdvcnknXSA9ICfQmtCw0YLQtdCz0L7RgNGW0Y8nOwokbGFuZ1snY2F0ZWdvcmllcyddID0gJ9Ca0LDRgtC10LPQvtGA0ZbRlyc7CiRsYW5nWydvcHRpb24nXSA9ICfQn9Cw0YDQsNC80LXRgtGAJzsKJGxhbmdbJ29wdGlvbnMnXSA9ICfQn9Cw0YDQsNC80LXRgtGA0LgnOwokbGFuZ1snbWFpbnRlbmFuY2UnXSA9ICfQn9GW0LTRgtGA0LjQvNC60LAnOwokbGFuZ1snYmFjayddID0gJ9Cf0L7QstC10YDQvdGD0YLQuNGB0Y8g0L3QsCDRgdGC0L7RgNGW0L3QutGDINC90LDQt9Cw0LQnOwokbGFuZ1snYWJvdXQnXSA9ICfQlNC+0LLRltC00LrQsCc7CiRsYW5nWyd3aGF0c25ldyddID0gJ9Cp0L4g0L3QvtCy0L7Qs9C+JzsKJGxhbmdbJ3Byb21wdF9maXhfZmllbGRkZWZzJ10gPSAn0KHQv9GA0L7QsdCwINCy0ZbQtNC90L7QstC40YLQuCDQv9C+0LvRjyDQtyDQsdCw0LfQuCDQtNCw0L3QuNGFJzsKJGxhbmdbJ21lc3NhZ2VfZmllbGRkZWZzX2ZpeGVkJ10gPSAn0J/QvtC70Y8g0LTQu9GPINCy0YHRltGFINC10LrQt9C10LzQv9C70Y/RgNGW0LIg0LzQvtC00YPQu9GPINCy0ZbQtNC90L7QstC70LXQvdC+Lic7CiRsYW5nWydtZXNzYWdlX2luc3RhbmNlc19jb3BpZWQnXSA9ICfQktGB0ZYg0LXQutC30LXQvNC/0LvRj9GA0Lgg0L/RgNC+0LTRg9Cx0LvRjNC+0LLQsNC90L4uJzsKJGxhbmdbJ2l0ZW1fdGl0bGUnXSA9ICfQl9Cw0LPQvtC70L7QstC+0LonOwokbGFuZ1sncHJvbXB0X2l0ZW1fdGl0bGUnXSA9ICfQl9Cw0LPQvtC70L7QstC+0Log0LXQu9C10LzQtdC90YLQsCc7CiRsYW5nWydwcm9tcHRfb2YnXSA9ICfQtyc7CiRsYW5nWydhY3RpdmUnXSA9ICfQkNC60YLQuNCy0L3QuNC5JzsKJGxhbmdbJ2NyZWF0ZV90aW1lJ10gPSAn0JTQsNGC0LAg0YHRgtCy0L7RgNC10L3QvdGPJzsKJGxhbmdbJ21vZGlmaWVkX3RpbWUnXSA9ICfQlNCw0YLQsCDQt9C80ZbQvdC4JzsKJGxhbmdbJ3RpbWVfY29udHJvbCddID0gJ9CS0LjQutC+0YDQuNGB0YLQvtCy0YPQstCw0YLQuCDQutC+0L3RgtGA0L7Qu9GMINGH0LDRgdGDJzsKJGxhbmdbJ3N0YXJ0X3RpbWUnXSA9ICfQp9Cw0YEg0L/QvtGH0LDRgtC60YMnOwokbGFuZ1snZW5kX3RpbWUnXSA9ICfQp9Cw0YEg0LfQsNC60ZbQvdGH0LXQvdC90Y8nOwokbGFuZ1snaXRlbV90aXRsZV9lbXB0eSddID0gJ9Cd0LUg0LfQsNC/0L7QstC90LXQvdC+INC30LDQs9C+0LvQvtCy0L7QuiDQtdC70LXQvNC10L3RgtCwJzsKJGxhbmdbJ3JlcXVpcmVkX2ZpZWxkX2VtcHR5J10gPSAn0J3QtSDQt9Cw0L/QvtCy0L3QtdC90L4g0L7QsdC+0LJcJ9GP0LfQutC+0LLQtSDQv9C+0LvQtSc7CiRsYW5nWyd0b29fbG9uZyddID0gJ9CX0L3QsNGH0LXQvdC90Y8g0L/QvtC70Y8g0L/QtdGA0LXQstC40YnRg9GUINC80LDQutGB0LjQvNCw0LvRjNC90YMg0LTQvtCy0LbQuNC90YMnOwokbGFuZ1snYXBwcm92ZSddID0gJ9CS0YHRgtCw0L3QvtCy0LjRgtC4INGB0YLQsNGC0YPRgSBcJ9CQ0LrRgtC40LLQvdC40LlcJyc7CiRsYW5nWydyZXZlcnQnXSA9ICfQktGB0YLQsNC90L7QstC40YLQuCDRgdGC0LDRgtGD0YEgXCfQndC10LDQutGC0LjQstC90LjQuVwnJzsKJGxhbmdbJ3RvZ2dsZV9zdGF0dXMnXSA9ICfQn9C10YDQtdC80LrQvdGD0YLQuCDRgdGC0LDRgtGD0YEnOwokbGFuZ1snc2VsZWN0X2l0ZW0nXSA9ICfQktC40LHRgNCw0YLQuCDQtdC70LXQvNC10L3Rgic7CiRsYW5nWydzdWJtaXRfb3JkZXInXSA9ICfQl9Cx0LXRgNC10LPRgtC4INC/0L7RgNGP0LTQvtC6JzsKJGxhbmdbJ2RlbGV0ZV9zZWxlY3RlZCddID0gJ9CS0LjQtNCw0LvQuNGC0Lgg0LLQuNCx0YDQsNC90LUgJXMnOwokbGFuZ1snYXJleW91c3VyZV9kZWxldGVtdWx0aXBsZSddID0gJ9CS0Lgg0LLQv9C10LLQvdC10L3Rliwg0YnQviDRhdC+0YfQtdGC0LUg0LLQuNC00LDQu9C40YLQuCDQstGB0LUg0YbQtSAlcz8nOwokbGFuZ1snc2VsZWN0X2FsbCddID0gJ9CS0LjQsdGA0LDRgtC4INCy0YHQtSc7CiRsYW5nWydlcnJvcl9zdGFydGdyZWF0ZXJlbmQnXSA9ICfQlNCw0YLQsCDQv9C+0YfQsNGC0LrRgyDQsdGW0LvRjNGI0LAsINC90ZbQtiDQtNCw0YLQsCDQt9Cw0LrRltC90YfQtdC90L3Rjyc7CiRsYW5nWydpdGVtX2FsaWFzX2V4aXN0cyddID0gJ9Ci0LDQutC40Lkg0L/RgdC10LLQtNC+0L3RltC8INC10LvQtdC80LXQvdGC0LAg0LLQttC1INGW0YHQvdGD0ZQuINCf0YHQtdCy0LTQvtC90ZbQvCDQvNCw0ZQg0LHRg9GC0Lgg0YPQvdGW0LrQsNC70YzQvdC40LwuJzsKJGxhbmdbJ3JldHVybl91cmwnXSA9ICfQn9C+0LLQtdGA0L3Rg9GC0LjRgdGPJzsKJGxhbmdbJ3BhdGhjb250YWluc3ZhcnMnXSA9ICfQptC1INC/0L7Qu9C1INC80L7QttC90LAg0YDQtdC00LDQs9GD0LLQsNGC0Lgg0L/RltGB0LvRjyDQv9C10YDRiNC+0LPQviDQt9Cx0LXRgNC10LbQtdC90L3RjyDRhtGM0L7Qs9C+ICVzJzsKJGxhbmdbJ3VybCddID0gJ9CS0LjQsdC10YDRltGC0Ywg0LLQu9Cw0YHQvdGDIFVSTC3QsNC00YDQtdGB0YMg0LTQu9GPINGG0YzQvtCz0L4g0LXQu9C10LzQtdC90YLQsCDQsNCx0L4g0L/RltC00YLQstC10YDQtNGW0YLRjCDQt9Cz0LXQvdC10YDQvtCy0LDQvdGDJzsKJGxhbmdbJ2l0ZW1fdmFyX2hlbHBfaXRlbV9pZCddID0gJ9Cv0LrRidC+INC30LDQtNCw0L3QviBpdGVtX2lkLCDQvtGH0ZbQutGD0ZTRgtGM0YHRjywg0YnQviDQtdC70LXQvNC10L3RgtC4INCy0LbQtSDRltGB0L3Rg9GO0YLRjCDQsiDQsdCw0LfRliDQtNCw0L3QuNGFLiDQr9C60YnQviDQstC4INGW0LzQv9C+0YDRgtGD0ZTRgtC1INC90L7QstGWINC10LvQtdC80LXQvdGC0LgsINGW0LPQvdC+0YDRg9C50YLQtSDRhtC1INC/0L7Qu9C1Lic7CiRsYW5nWydpdGVtX3Zhcl9oZWxwX2NhdGVnb3J5X2lkJ10gPSAn0K/QutGJ0L4g0LfQsNC00LDQvdC+IGNhdGVnb3J5X2lkLCDQtdC70LXQvNC10L3RgtGDINCx0YPQtNC1INC/0YDQuNC30L3QsNGH0LXQvdC+INGG0Y4g0LrQsNGC0LXQs9C+0YDRltGOLiDQr9C60YnQviBjYXRlZ29yeV9pZCDQt9Cw0LTQsNC90L4sINCw0LvQtSDRl9GXINC90LUg0ZbRgdC90YPRlCwg0LLQvtC90LAg0ZbQs9C90L7RgNGD0ZTRgtGM0YHRjywg0LAg0LfQsNC80ZbRgdGC0Ywg0YbRjNC+0LPQviDQstC40LrQvtGA0LjRgdGC0L7QstGD0ZTRgtGM0YHRjyDQutCw0YLQtdCz0L7RgNGW0Y8g0LfQsCDQt9Cw0LzQvtCy0YfRg9Cy0LDQvdC90Y/QvC4nOwokbGFuZ1snaXRlbV92YXJfaGVscF90aXRsZSddID0gJ9CX0LDQs9C+0LvQvtCy0L7QuiDQtdC70LXQvNC10L3RgtCwLCDRj9C60LjQuSDQstGW0LTQvtCx0YDQsNC20LDRlNGC0YzRgdGPINCyIFVSTC3QsNC00YDQtdGB0ZYg0YLQsCDQvtC/0LjRgdGD0ZQg0LXQu9C10LzQtdC90YIuJzsKJGxhbmdbJ2l0ZW1fdmFyX2hlbHBfYWxpYXMnXSA9ICfQn9GB0LXQstC00L7QvdGW0Lwg0LXQu9C10LzQtdC90YLQsCDQstC40LrQvtGA0LjRgdGC0L7QstGD0ZTRgtGM0YHRjyDQtNC70Y8g0L3QsNC00LDQvdC90Y8g0LXQu9C10LzQtdC90YLRgyDQt9GA0YPRh9C90L7Qs9C+INGWINC30YDQvtC30YPQvNGW0LvQvtCz0L4g0LrQvtGA0L7RgtC60L7Qs9C+INGW0LzQtdC90ZYuINCf0YHQtdCy0LTQvtC90ZbQvCDRg9C90ZbQutCw0LvRjNC90LjQuSDQtNC70Y8g0LrQvtC20L3QvtCz0L4g0LXQu9C10LzQtdC90YLQsC4nOwokbGFuZ1snaXRlbV92YXJfaGVscF91cmwnXSA9ICfQktC70LDRgdC90LAgVVJMLdCw0LTRgNC10YHQsCDQtNC70Y8g0LXQu9C10LzQtdC90YLQsC4g0JzQsNGUINCx0YPRgtC4INGD0L3RltC60LDQu9GM0L3QvtGOINC00LvRjyDQutC+0LbQvdC+0LPQviDQtdC70LXQvNC10L3RgtCwINGC0LAg0YHQuNGB0YLQtdC80LguJzsKJGxhbmdbJ2l0ZW1fdmFyX2hlbHBfcG9zaXRpb24nXSA9ICfQktC4INC80L7QttC10YLQtSDQstGB0YLQsNC90L7QstC40YLQuCDQv9C+0LfQuNGG0ZbRjiDQtdC70LXQvNC10L3RgtGW0LIsINGP0LrQsCDQstC40LfQvdCw0YfQsNGUINGX0YUg0L/QvtGA0Y/QtNC+0Log0LLRltC00L7QsdGA0LDQttC10L3QvdGPLic7CiRsYW5nWydpdGVtX3Zhcl9oZWxwX2FjdGl2ZSddID0gJ9Cm0LXQuSDQv9Cw0YDQsNC80LXRgtGAINCy0YHRgtCw0L3QvtCy0LjRgtGMINC10LvQtdC80LXQvdGCINCw0LrRgtC40LLQvdC40Lwg0LDQsdC+INC90LXQsNC60YLQuNCy0L3QuNC8Lic7CiRsYW5nWydpdGVtX3Zhcl9oZWxwX3N0YXJ0X3RpbWUnXSA9ICfQktGB0YLQsNC90L7QstC40YLQuCDRh9Cw0YEsINC3INGP0LrQvtCz0L4g0YbQtdC5INC10LvQtdC80LXQvdGCINCx0YPQtNC1INCy0ZbQtNC+0LHRgNCw0LbQsNGC0LjRgdGPLic7CiRsYW5nWydpdGVtX3Zhcl9oZWxwX2VuZF90aW1lJ10gPSAn0JLRgdGC0LDQvdC+0LLQuNGC0Lgg0YfQsNGBLCDQtNC+INGP0LrQvtCz0L4g0YbQtdC5INC10LvQtdC80LXQvdGCINCx0YPQtNC1INCy0ZbQtNC+0LHRgNCw0LbQsNGC0LjRgdGPLic7CiRsYW5nWydpdGVtX3Zhcl9oZWxwX293bmVyJ10gPSAn0JLQuNCx0LXRgNGW0YLRjCBJRCDQsNC00LzRltC9LiDQutC+0YDQuNGB0YLRg9Cy0LDRh9CwINC00LvRjyDRhtGM0L7Qs9C+INC10LvQtdC80LXQvdGC0LAsINGJ0L7QsSDQstGB0YLQsNC90L7QstC40YLQuCDQstC70LDRgdC90LjQutCwLic7CiRsYW5nWydpdGVtX3Zhcl9oZWxwX2tleTEnXSA9ICfQktGB0YLQsNC90L7QstC40YLQuCDQtNC+0LTQsNGC0LrQvtCy0LjQuSDRltC00LXQvdGC0LjRhNGW0LrQsNGC0L7RgCBcJ2tleTFcJyDQtNC70Y8g0YbRjNC+0LPQviDQtdC70LXQvNC10L3RgtCwLic7CiRsYW5nWydpdGVtX3Zhcl9oZWxwX2tleTInXSA9ICfQktGB0YLQsNC90L7QstC40YLQuCDQtNC+0LTQsNGC0LrQvtCy0LjQuSDRltC00LXQvdGC0LjRhNGW0LrQsNGC0L7RgCBcJ2tleTJcJyDQtNC70Y8g0YbRjNC+0LPQviDQtdC70LXQvNC10L3RgtCwLic7CiRsYW5nWydpdGVtX3Zhcl9oZWxwX2tleTMnXSA9ICfQktGB0YLQsNC90L7QstC40YLQuCDQtNC+0LTQsNGC0LrQvtCy0LjQuSDRltC00LXQvdGC0LjRhNGW0LrQsNGC0L7RgCBcJ2tleTNcJyDQtNC70Y8g0YbRjNC+0LPQviDQtdC70LXQvNC10L3RgtCwLic7CiRsYW5nWydtYWluX3NldHRpbmdzJ10gPSAn0J7RgdC90L7QstC90ZYg0L3QsNC70LDRiNGC0YPQstCw0L3QvdGPJzsKJGxhbmdbJ2VkaXRmaWVsZGRlZiddID0gJ9Cg0LXQtNCw0LPRg9Cy0LDRgtC4INC/0L7Qu9C1JzsKJGxhbmdbJ2ZpZWxkZGVmX25hbWUnXSA9ICfQndCw0LfQstCwJzsKJGxhbmdbJ2ZpZWxkZGVmX2hlbHAnXSA9ICfQmtC+0YDQuNGB0L3QsCDQv9C+0YDQsNC00LAnOwokbGFuZ1snZmllbGRkZWZfdHlwZSddID0gJ9Ci0LjQvyc7CiRsYW5nWydmaWVsZGRlZl9kZXBzJ10gPSAn0JfQsNC70LXQttC90L7RgdGC0ZYg0LzQvtC00YPQu9GPJzsKJGxhbmdbJ2ZpZWxkZGVmX2RlcHNfbWlzc2luZyddID0gJ9Ce0LTQvdCwINCw0LHQviDQtNC10LrRltC70YzQutCwINC30LDQu9C10LbQvdC+0YHRgtC10Lkg0LzQvtC00YPQu9GPINCy0ZbQtNGB0YPRgtC90ZYuINCR0YPQtNGMINC70LDRgdC60LAsINCy0YHRgtCw0L3QvtCy0ZbRgtGMINCy0YHRliDQvdC10L7QsdGF0ZbQtNC90ZYg0LzQvtC00YPQu9GWLCDRidC+0LEg0L/QvtGH0LDRgtC4INC60L7RgNC40YHRgtGD0LLQsNGC0LjRgdGPINGG0LjQvCDQv9C+0LvQtdC8Lic7CiRsYW5nWydmaWVsZGRlZl9zY2FuJ10gPSAn0JfQvdCw0LnRgtC4INCy0YHRliDRgtC40L/QuCDQv9C+0LvRltCyJzsKJGxhbmdbJ2ZpZWxkZGVmX3NjYW5uZWQnXSA9ICfQotC40L/QuCDQv9C+0LvRltCyINC/0YDQvtGB0LrQsNC90L7QstCw0L3Qvic7CiRsYW5nWydmaWVsZGRlZl90eXBlX25vdHNldCddID0gJ9Ci0LjQvyDQv9C+0LvRjyDQvdC1INCy0YHRgtCw0L3QvtCy0LvQtdC90L4nOwokbGFuZ1snZmllbGRkZWZfZnJpZW5kbHl0eXBlJ10gPSAn0JTRgNGD0LbQvdGWINGC0LjQv9C4JzsKJGxhbmdbJ2ZpZWxkZGVmX29yaWdpbmF0b3InXSA9ICfQhtC90ZbRhtGW0LDRgtC+0YAnOwokbGFuZ1snZmllbGRkZWZfbWF4X2xlbmd0aCddID0gJ9Cc0LDQutGB0LjQvNCw0LvRjNC90LAg0LTQvtCy0LbQuNC90LAnOwokbGFuZ1snZmllbGRkZWZfcmVxdWlyZWQnXSA9ICfQntCx0L7Qslwn0Y/Qt9C60L7QstC1JzsKJGxhbmdbJ3JlZ2lzdGVyZWRfZmllbGRkZWZzJ10gPSAn0JLRgdGWINC00L7RgdGC0YPQv9C90ZYg0YLQuNC/0Lgg0L/QvtC70ZbQsic7CiRsYW5nWydmaWVsZGRlZl9uYW1lX2VtcHR5J10gPSAn0J3QtSDQt9Cw0L/QvtCy0L3QtdC90L4g0L3QsNC30LLRgyDQv9C+0LvRjyc7CiRsYW5nWydmaWVsZGRlZl9uYW1lX2V4aXN0cyddID0gJ9Ci0LDQutCwINC90LDQt9Cy0LAg0L/QvtC70Y8g0LLQttC1INGW0YHQvdGD0ZQnOwokbGFuZ1snZmllbGRkZWZfYWxpYXNfZXhpc3RzJ10gPSAn0KLQsNC60LjQuSDQv9GB0LXQstC00L7QvdGW0Lwg0L/QvtC70Y8g0LLQttC1INGW0YHQvdGD0ZQuINCf0YHQtdCy0LTQvtC90ZbQvCDQvNCw0ZQg0LHRg9GC0Lgg0YPQvdGW0LrQsNC70YzQvdC40LwuJzsKJGxhbmdbJ2ZpZWxkZGVmX2lzX3VuaXF1ZSddID0gJ9Cm0LUg0L/QvtC70LUg0YPQvdGW0LrQsNC70YzQvdC1LCDRgyDQstCw0YEg0L3QtSDQvNC+0LbQtSDQsdGD0YLQuCDRl9GFINCx0ZbQu9GM0YjQtSDQvtC00L3QvtCz0L4uJzsKJGxhbmdbJ2ZpZWxkZGVmX2ltYWdlJ10gPSAn0J7Rh9GW0LrRg9GU0YLRjNGB0Y8g0LfQvtCx0YDQsNC20LXQvdC90Y8nOwokbGFuZ1snaW52YWxpZCddID0gJ9CX0L3QsNGH0LXQvdC90Y8g0L/QvtC70Y8g0L3QtdC00ZbQudGB0L3QtSc7CiRsYW5nWydzdGF0dXNfcmVxdWlyZWQnXSA9ICfQktGB0YLQsNC90L7QstC40YLQuCDRgdGC0LDRgtGD0YEgXCfQvtCx0L7Qslwn0Y/Qt9C60L7QstC1XCcnOwokbGFuZ1snc3RhdHVzX29wdGlvbmFsJ10gPSAn0JLRgdGC0LDQvdC+0LLQuNGC0Lgg0YHRgtCw0YLRg9GBIFwn0L3QtdC+0LHQvtCyXCfRj9C30LrQvtCy0LVcJyc7CiRsYW5nWydpc19kZWZhdWx0J10gPSAn0JLRgdGC0LDQvdC+0LLQu9C10L3QviDQt9CwINC30LDQvNC+0LLRh9GD0LLQsNC90L3Rj9C8JzsKJGxhbmdbJ3N0YXR1c19kZWZhdWx0J10gPSAn0JLRgdGC0LDQvdC+0LLQuNGC0Lgg0LfQsCDQt9Cw0LzQvtCy0YfRg9Cy0LDQvdC90Y/QvCc7CiRsYW5nWydoZWxwdGV4dF90aXRsZSddID0gJ9CU0L7RgdGC0YPQv9C90ZYg0YLQuNC/0Lgg0L/QvtC70ZbQsiDQtNC70Y8g0LTQvtC00LDRgtC60L7QstC+0LPQviDQv9C+0LvRjzonOwokbGFuZ1snZmllbGRkZWZfdGVtcGxhdGUnXSA9ICfQqNCw0LHQu9C+0L0nOwokbGFuZ1snZmllbGRfc2VhcmNoX2luZGV4J10gPSAn0JTQvtC30LLQvtC70LjRgtC4INGW0L3QtNC10LrRgdGD0LLQsNC90L3RjyDRhtGM0L7Qs9C+INC/0L7Qu9GPINC+0YHQvdC+0LLQvdC40Lwg0LzQvtC00YPQu9C10Lwg0L/QvtGI0YPQutGDINGB0LjRgdGC0LXQvNC4JzsKJGxhbmdbJ3Byb21wdF9yZWluZGV4X2RvX3NlYXJjaCddID0gJ9Cf0LXRgNC10ZbQvdC00LXQutGB0YPQstCw0YLQuCDQstGB0LUgKNCw0LHQviDQstC40LTQsNC70LjRgtC4INCy0LbQtSDQv9GA0L7RltC90LTQtdC60YHQvtCy0LDQvdC1LCDRj9C60YnQviDQvdC1INCy0ZbQtNC80ZbRh9C10L3QviDQv9C+0L/QtdGA0LXQtNC90ZQg0L/QvtC70LUpIC0g0L7QtNC90L7RgNCw0LfQvtCy0L4nOwokbGFuZ1snZmllbGRkZWZfc2VhcmNoX2luZGV4X2hlbHAnXSA9ICfQn9C+0LfQvdCw0YfQtdC90L3RjyDRhtGM0L7Qs9C+INC/0L7Qu9GPINC00L7Qt9Cy0L7Qu9C40YLRjCDRltC90LTQtdC60YHRg9Cy0LDRgtC4INGG0LUg0L/QvtC70LUg0L7RgdC90L7QstC90LjQvCDQvNC+0LTRg9C70LXQvCDQv9C+0YjRg9C60YMg0YHQuNGB0YLQtdC80LgsINC60L7Qu9C4INCy0Lgg0YHRgtCy0L7RgNGO0ZTRgtC1LCDQt9C80ZbQvdGO0ZTRgtC1INC10LvQtdC80LXQvdGC0LgsINCw0LHQviDQstC40LHRgNCw0LvQuCAi0J/QtdGA0LXRltC90LTQtdC60YHRg9Cy0LDRgtC4INCy0YHQtSInOwokbGFuZ1snd2FybmluZ19yZWluZGV4X3NlYXJjaF9ub3cnXSA9ICfQl9Cw0YPQstCw0LbRgtC1LCDRidC+INGG0LUg0LzQvtC20LUg0LfQsNC50L3Rj9GC0Lgg0LHQsNCz0LDRgtC+INGH0LDRgdGDLCDQt9Cw0LvQtdC20L3QviDQstGW0LQg0LrRltC70YzQutC+0YHRgtGWINC30LDQv9C40YHRltCyLic7CiRsYW5nWyd3YXJuaW5nX3JlaW5kZXhfc2VhcmNoJ10gPSAn0JfQstC10YDQvdGW0YLRjCDRg9Cy0LDQs9GDLCDRhdC+0Ycg0YbQtdC5INC80L7QtNGD0LvRjCDQvdC1INC/0YDQuNC30L3QsNGH0LXQvdC40Lkg0LTQu9GPINCy0LXQu9C40LrQvtGXINC60ZbQu9GM0LrQvtGB0YLRliDQtdC70LXQvNC10L3RgtGW0LIsINCy0ZbQtNC+0LzQviwg0YnQviDQtNC10Y/QutGWINGB0LXRgNCy0LXRgNC4INC00L7RgdGC0LDRgtC90YzQviDQtdGE0LXQutGC0LjQstC90L4g0LfQsdC10YDRltCz0LDRjtGC0Ywg0ZYg0L7QsdGA0L7QsdC70Y/RjtGC0Ywg0LTQtdGB0Y/RgtC60Lgg0YLQuNGB0Y/RhyDQtdC70LXQvNC10L3RgtGW0LIg0YDQsNC30L7QvCDQtyDQstC10LvQuNC60L7RjiDQutGW0LvRjNC60ZbRgdGC0Y4g0LTQvtC00LDRgtC60L7QstC40YUg0L/QvtC70ZbQsi4g0KLQvtC80YMg0L/QvtCy0ZbQtNC+0LzQu9GP0ZTQvNC+LCDRidC+ICDRltC90LTQtdC60YHRg9Cy0LDQvdC90Y8g0LTQsNC90LjRhSDRhtGM0L7Qs9C+INC80L7QtNGD0LvRjyDQvtGB0L3QvtCy0L3QuNC8INC80L7QtNGD0LvQtdC8INC/0L7RiNGD0LrRgyDRgdC40YHRgtC10LzQuCDQvNC+0LbQtSDQsdGD0YLQuCDQtdGE0LXQutGC0LjQstC90LjQvCDRgtGW0LvRjNC60Lgg0Lcg0LXQu9C10LzQtdC90YLQsNC80Lgg0LIg0LrRltC70YzQutC+0YHRgtGWINGB0L7RgtC10L3RjCDQt9Cw0L/QuNGB0ZbQsiwg0LAg0L3QtSDRgtC40YHRj9GHLiDQr9C60YnQviDQstC4INC/0LvQsNC90YPRlNGC0LUg0LLQuNC60L7RgNC40YHRgtC+0LLRg9Cy0LDRgtC4INCy0LXQu9C40YfQtdC30L3RgyDQutGW0LvRjNC60ZbRgdGC0Ywg0LfQsNC/0LjRgdGW0LIsINC/0LDQvFwn0Y/RgtCw0LnRgtC1LCDRidC+INGW0L3QtNC10LrRgdGD0LLQsNC90L3RjyDRgtCwINGB0LDQvCDQv9C+0YjRg9C6INC80L7QttGD0YLRjCDQsdGD0YLQuCDQtNGD0LbQtSDQv9C+0LLRltC70YzQvdC40LzQuCwg0YLQvtC80YMg0LLQuCDQv9C+0LLQuNC90L3RliDQstC40LrQvtGA0LjRgdGC0L7QstGD0LLQsNGC0Lgg0LLQsdGD0LTQvtCy0LDQvdGDINCyINGG0LXQuSDQvNC+0LTRg9C70Ywg0YTRg9C90LrRhtGW0Y4g0L/QvtGI0YPQutGDLCDQvtGB0LrRltC70YzQutC4INCy0L7QvdCwINC+0L/RgtC40LzRltC30L7QstCw0L3QsCDQtNC70Y8g0YbQuNGFINCy0LjQv9Cw0LTQutGW0LIuJzsKJGxhbmdbJ2ZpZWxkZGVmX1RleHRJbnB1dCddID0gJ9Cf0L7Qu9C1INC00LvRjyDRgtC10LrRgdGC0YMnOwokbGFuZ1snZmllbGRkZWZfQ2hlY2tib3gnXSA9ICfQn9GA0LDQv9C+0YDQtdGG0YwnOwokbGFuZ1snZmllbGRkZWZfVGV4dEFyZWEnXSA9ICfQotC10LrRgdGC0L7QstCwINC+0LHQu9Cw0YHRgtGMJzsKJGxhbmdbJ2ZpZWxkZGVmX1NlbGVjdERhdGUnXSA9ICfQktC40LHRgNCw0YLQuCDQtNCw0YLRgyc7CiRsYW5nWydmaWVsZGRlZl9TZWxlY3REYXRlVGltZSddID0gJ9CS0LjQsdGA0LDRgtC4INC00LDRgtGDINGC0LAg0YfQsNGBJzsKJGxhbmdbJ2ZpZWxkZGVmX2R0X2JhY2t3YXJkc19jb21wYXRpYmlsaXR5J10gPSAn0JfQstC+0YDQvtGC0L3QsCDRgdGD0LzRltGB0L3RltGB0YLRjCc7CiRsYW5nWydmaWVsZGRlZl9kdF9maWVsZGRlZl9iYWNrd2FyZHNfY29tcGF0aWJpbGl0eV9oZWxwJ10gPSAn0J/QvtC30L3QsNGH0YLQtSDRhtC1INC/0L7Qu9C1INC00LvRjyDQv9GA0L7QtNC+0LLQttC10L3QvdGPINC60L7RgNC40YHRgtGD0LLQsNC90L3RjyDRgdGC0LDRgNC40Lwg0YTQvtGA0LzQsNGC0L7QvCDQtNCw0YLQuCDRgtCwINGH0LDRgdGDINCx0LDQt9C4INC00LDQvdC40YUnOwokbGFuZ1snZmllbGRkZWZfRHJvcGRvd24nXSA9ICfQktC40L/QsNC00LDRjtGH0LjQuSDRgdC/0LjRgdC+0LonOwokbGFuZ1snZmllbGRkZWZfQ29udGVudFBhZ2VzJ10gPSAn0KHRgtC+0YDRltC90LrQuCc7CiRsYW5nWydmaWVsZGRlZl9TZWxlY3RGaWxlJ10gPSAn0JLQuNCx0YDQsNGC0Lgg0YTQsNC50LsnOwokbGFuZ1snZmllbGRkZWZfUmFkaW9Hcm91cCddID0gJ9CT0YDRg9C/0LAg0YDQsNC00ZbQvi3QutC90L7Qv9C+0LonOwokbGFuZ1snZW5hYmxlX2pxdWknXSA9ICfQktC40LrQvtGA0LjRgdGC0L7QstGD0LLQsNGC0Lgg0LrQvdC+0L/QutC4IGpRdWVyeVVJJzsKJGxhbmdbJ2ZpZWxkZGVmX1NsaWRlciddID0gJ9Cf0L7QstC30YPQvdC+0LonOwokbGFuZ1snZmllbGRkZWZfTXVsdGlTZWxlY3QnXSA9ICfQn9C+0LvQtSDQvNGD0LvRjNGC0Lgt0LLQuNCx0L7RgNGDJzsKJGxhbmdbJ2ZpZWxkZGVmX0NoZWNrYm94R3JvdXAnXSA9ICfQk9GA0YPQv9CwINC/0YDQsNC/0L7RgNGG0ZbQsic7CiRsYW5nWydmaWVsZGRlZl9GaWxlVXBsb2FkJ10gPSAn0J/QvtC70LUg0LLQuNCy0LDQvdGC0LDQttC10L3QvdGPINGE0LDQudC70YMnOwokbGFuZ1snZmllbGRkZWZfQ29sb3JQaWNrZXInXSA9ICfQn9C+0LvQtSDQstC40LHQvtGA0YMg0LrQvtC70YzQvtGA0YMnOwokbGFuZ1snZmllbGRkZWZfVGFncyddID0gJ9Ci0LXSkdC4JzsKJGxhbmdbJ2ZpZWxkZGVmX1RhYnMnXSA9ICfQktC60LvQsNC00LrQsCc7CiRsYW5nWydmaWVsZGRlZl9CYWNrZW5kVGV4dCddID0gJ9Ci0LXQutGB0YIg0LIg0LDQtNC80ZbQvS4g0L/QsNC90LXQu9GWJzsKJGxhbmdbJ2ZpZWxkZGVmX0JUX2NvbnRhaW5lcl9kaXYnXSA9ICfQkdC70L7QuiBESVYnOwokbGFuZ1snZmllbGRkZWZfQlRfY29udGFpbmVyX2Rpdl9oZWxwJ10gPSAn0KbQtSDQsdCw0LfQvtCy0ZYgQ1NTLdGB0YLQuNC70ZYsINC/0YDQuNC30L3QsNGH0LXQvdGWINC00LvRjyDQsNC00LzRltC9LiDQv9Cw0L3QtdC70ZYgQ01TTVMnOwokbGFuZ1snZmllbGRkZWZfQlRfY29udGFpbmVyX3RleHQnXSA9ICfQotC10LrRgdGCJzsKJGxhbmdbJ2ZpZWxkZGVmX0JUX2NvbnRhaW5lcl90ZXh0X2hlbHAnXSA9ICfQotC10LrRgdGCINC00LvRjyDQstGW0LTQvtCx0YDQsNC20LXQvdC90Y8g0L3QsCDQsNC00LzRltC9LiDQv9Cw0L3QtdC70ZYnOwokbGFuZ1snZmllbGRkZWZfQlRfaW5mb3JtYXRpb24nXSA9ICfQhtC90YTQvtGA0LzQsNGG0ZbRjyc7CiRsYW5nWydmaWVsZGRlZl9CVF93YXJuaW5nJ10gPSAn0J/QvtC/0LXRgNC10LTQttC10L3QvdGPJzsKJGxhbmdbJ2ZpZWxkZGVmX0ZFVURyb3Bkb3duJ10gPSAn0JLQuNC/0LDQtNCw0Y7Rh9C40Lkg0YHQv9C40YHQvtC6IEZyb250RW5kVXNlcnMnOwokbGFuZ1snZmllbGRkZWZfZmV1X29wdGlvbnMnXSA9ICfQk9GA0YPQv9C4IEZFVSc7CiRsYW5nWydmaWVsZGRlZl9mZXVfZHJvcGRvd25faGVscCddID0gJ9CR0YPQtNGMINC70LDRgdC60LAsINCy0LjQsdC10YDRltGC0Ywg0L7QtNC90YMg0Lcg0LTQvtGB0YLRg9C/0L3QuNGFINCz0YDRg9C/IEZyb250RW5kVXNlcnMnOwokbGFuZ1snZmllbGRkZWZfR2FsbGVyeURyb3Bkb3duJ10gPSAn0JLQuNC/0LDQtNCw0Y7Rh9C40Lkg0YHQv9C40YHQvtC6INC00LvRjyDQstC40LHQvtGA0YMg0LPQsNC70LXRgNC10ZcnOwokbGFuZ1snZmllbGRkZWZfR0JGaWxlUGlja2VyJ10gPSAn0J/QvtC70LUg0LLQuNCy0LDQvdGC0LDQttC10L3QvdGPINGE0LDQudC70YMgR0JGaWxlUGlja2VyJzsKJGxhbmdbJ2ZpZWxkZGVmX0dCRmlsZVBpY2tlcl9maWxlYnJvd3NlciddID0gJ9Cj0LLRltC80LrQvdGD0YLQuCDRhNCw0LnQu9C+0LLQuNC5INCx0YDQsNGD0LfQtdGAJzsKJGxhbmdbJ2ZpZWxkZGVmX0dCRmlsZVBpY2tlcl9pbWFnZSddID0gJ9Ce0YfRltC60YPRlNGC0YzRgdGPINC30L7QsdGA0LDQttC10L3QvdGPJzsKJGxhbmdbJ2ZpZWxkZGVmX0dCRmlsZVBpY2tlcl9jcmVhdGVfZGlycyddID0gJ9CU0L7Qt9Cy0L7Qu9C40YLQuCDRgdGC0LLQvtGA0LXQvdC90Y8g0YLQtdC60LgnOwokbGFuZ1snZmllbGRkZWZfR0JGaWxlUGlja2VyX2RlbGV0ZSddID0gJ9CU0L7Qt9Cy0L7Qu9C40YLQuCDQstC40LTQsNC70LXQvdC90Y8nOwokbGFuZ1snZmllbGRkZWZfR0JGaWxlUGlja2VyX3Nob3dfc3ViZGlycyddID0gJ9CU0L7Qt9Cy0L7Qu9C40YLQuCDQv9GW0LTRgtC10LrQuCc7CiRsYW5nWydmaWVsZGRlZl9HQkZQX2FsbG93X2hlbHAnXSA9ICfQktC60LDQttGW0YLRjCDRgdC/0LjRgdC+0Log0LTQvtC30LLQvtC70LXQvdC40YUg0YDQvtC30YjQuNGA0LXQvdGMINGE0LDQudC70ZbQsiDRh9C10YDQtdC3INC60L7QvNGDLiDQndCw0L/RgNC40LrQu9Cw0LQ6IHBkZiwgZ2lmLCBqcGVnLCBqcGcgKNC/0LjRiNGW0YLRjCDRgyDQvdC40LbQvdGM0L7QvNGDINGA0LXQs9GW0YHRgtGA0ZYpJzsKJGxhbmdbJ2ZpZWxkZGVmX0dCRlBfZGlyX2hlbHAnXSA9ICfQqNC70Y/RhSDQtNC+INGC0LXQutC4LCDRj9C60LjQuSDQsdGD0LTQtSDQtNC+0LTQsNC90L4g0LTQviAkY29uZmlnW1wndXBsb2Fkc191cmxcJ10gLiDQoyDQutGW0L3RhtGWINC90LXQvNCw0ZQg0LHRg9GC0Lgg0LrQvtGB0L7RlyDRgNC40YHQutC4Lic7CiRsYW5nWydmaWVsZGRlZl9HQkZQX2V4Y2x1ZGVfcHJlZml4X2hlbHAnXSA9ICfQktC60LDQttGW0YLRjCDRh9C10YDQtdC3INC60L7QvNGDINGB0L/QuNGB0L7QuiDQv9GA0LXRhNGW0LrRgdGW0LIsINGJ0L7QsSDQstC40LrQu9GO0YfQuNGC0Lgg0YTQsNC50LvQuCwg0YnQviDQv9C+0YfQuNC90LDRjtGC0YzRgdGPINC3INCy0LrQsNC30LDQvdC+0LPQviDQv9GA0LXRhNGW0LrRgdGDLiDQndCw0L/RgNC40LrQu9Cw0LQ6IHRodW1iXywgZm9vXyc7CiRsYW5nWydmaWVsZGRlZl9HQkZQX2ZpbGVicm93c2VyX2hlbHAnXSA9ICfQl9CwINC30LDQvNC+0LLRh9GD0LLQsNC90L3Rj9C8INCx0YPQtNC1INCy0LjQutC+0YDQuNGB0YLQsNC90L4g0LLQuNC/0LDQtNCw0Y7Rh9C40Lkg0YHQv9C40YHQvtC6LiDQo9Cy0ZbQvNC60L3Rg9GC0Lgg0YTQsNC50LvQvtCy0LjQuSDQsdGA0LDRg9C30LXRgCwg0Y/QutGJ0L4g0LrQvtGA0LjRgdGC0YPQstCw0Ycg0LzQvtC20LUg0L/QtdGA0LXQs9C70Y/QtNCw0YLQuCDRhNCw0LnQu9C4Lic7CiRsYW5nWydmaWVsZGRlZl9HQkZQX21lZGlhX3R5cGVfaGVscCddID0gJ9CU0L7Qt9Cy0L7Qu9GP0ZQg0LLQutCw0LfRg9Cy0LDRgtC4INC30L7QsdGA0LDQttC10L3QvdGPINGP0Log0YLQuNC/INC80LXQtNGW0LAsINGP0LrQuNC5INCx0YPQtNC1INCy0ZbQtNC+0LHRgNCw0LbQsNGC0LjRgdGPLiDQl9CwINC30LDQvNC+0LLRh9GD0LLQsNC90L3Rj9C8INCx0YPQtNGD0YLRjCDQstGW0LTQvtCx0YDQsNC20LDRgtC40YHRjyDQstGB0ZYg0YTQsNC50LvQuC4nOwokbGFuZ1snZmllbGRkZWZfR0JGUF9kZWxldGVfaGVscCddID0gJ9Cv0LrRidC+INGG0LXQuSDQv9Cw0YDQsNC80LXRgtGAINGD0LLRltC80LrQvdC10L3Qviwg0LLQuCDQvNC+0LbQtdGC0LUg0LTQvtC30LLQvtC70LjRgtC4INCy0LjQtNCw0LvQtdC90L3RjyDRhNCw0LnQu9GW0LIg0YfQuCDRgtC10Log0LTQu9GPINGG0YzQvtCz0L4g0L/QvtC70Y8g0L3QsNCy0ZbRgtGMINC60L7RgNC40YHRgtGD0LLQsNGH0LDQvCDQsdC10Lcg0LLRltC00L/QvtCy0ZbQtNC90L7Qs9C+INC00L7Qt9Cy0L7Qu9GDLic7CiRsYW5nWydmaWVsZGRlZl9HQkZQX2NyZWF0ZV9kaXJzX2hlbHAnXSA9ICfQr9C60YnQviDRhtC10Lkg0L/QsNGA0LDQvNC10YLRgCDRg9Cy0ZbQvNC60L3QtdC90L4sINCy0Lgg0LzQvtC20LXRgtC1INC00L7Qt9Cy0L7Qu9C40YLQuCDRgdGC0LLQvtGA0LXQvdC90Y8g0YLQtdC6INC00LvRjyDRhtGM0L7Qs9C+INC/0L7Qu9GPINC90LDQstGW0YLRjCDQutC+0YDQuNGB0YLRg9Cy0LDRh9Cw0Lwg0LHQtdC3INCy0ZbQtNC/0L7QstGW0LTQvdC+0LPQviDQtNC+0LfQstC+0LvRgy4nOwokbGFuZ1snZmllbGRkZWZfR0JGUF9zaG93X3N1YmRpcnNfaGVscCddID0gJ9Cv0LrRidC+INGG0LXQuSDQv9Cw0YDQsNC80LXRgtGAINGD0LLRltC80LrQvdC10L3Qviwg0LrQvtGA0LjRgdGC0YPQstCw0Ycg0LzQvtC20LUg0L/QtdGA0LXQs9C70Y/QtNCw0YLQuCDQv9GW0LTRgtC10LrQuC4nOwokbGFuZ1snZmllbGRkZWZfSk1GaWxlUGlja2VyJ10gPSAn0J/QvtC70LUg0LLQuNCy0LDQvdGC0LDQttC10L3QvdGPINGE0LDQudC70YNKTUZpbGVQaWNrZXInOwokbGFuZ1snZmllbGRkZWZfSk1GaWxlUGlja2VyX2ZpbGVicm93c2VyJ10gPSAn0KPQstGW0LzQutC90YPRgtC4INGE0LDQudC70L7QstC40Lkg0LHRgNCw0YPQt9C10YAnOwokbGFuZ1snZmllbGRkZWZfSk1GaWxlUGlja2VyX2ltYWdlJ10gPSAn0J7Rh9GW0LrRg9GU0YLRjNGB0Y8g0LfQvtCx0YDQsNC20LXQvdC90Y8nOwokbGFuZ1snZmllbGRkZWZfSk1GaWxlUGlja2VyX2NyZWF0ZV9kaXJzJ10gPSAn0JTQvtC30LLQvtC70LjRgtC4INGB0YLQstC+0YDQtdC90L3RjyDRgtC10LrQuCc7CiRsYW5nWydmaWVsZGRlZl9KTUZpbGVQaWNrZXJfZGVsZXRlJ10gPSAn0JTQvtC30LLQvtC70LjRgtC4INCy0LjQtNCw0LvQtdC90L3Rjyc7CiRsYW5nWydmaWVsZGRlZl9KTUZpbGVQaWNrZXJfc2hvd19zdWJkaXJzJ10gPSAn0JTQvtC30LLQvtC70LjRgtC4INC/0ZbQtNGC0LXQutC4JzsKJGxhbmdbJ2ZpZWxkZGVmX0pNRlBfYWxsb3dfaGVscCddID0gJ9CS0LrQsNC20ZbRgtGMINGB0L/QuNGB0L7QuiDQtNC+0LfQstC+0LvQtdC90LjRhSDRgNC+0LfRiNC40YDQtdC90Ywg0YTQsNC50LvRltCyINGH0LXRgNC10Lcg0LrQvtC80YMuINCd0LDQv9GA0LjQutC70LDQtDogcGRmLCBnaWYsIGpwZWcsIGpwZyAo0L/QuNGI0ZbRgtGMINGDINC90LjQttC90YzQvtC80YMg0YDQtdCz0ZbRgdGC0YDRliknOwokbGFuZ1snZmllbGRkZWZfSk1GUF9kaXJfaGVscCddID0gJ9Co0LvRj9GFINC00L4g0YLQtdC60LgsINGP0LrQuNC5INCx0YPQtNC1INC00L7QtNCw0L3QviDQtNC+ICRjb25maWdbXCd1cGxvYWRzX3VybFwnXSAuINCjINC60ZbQvdGG0ZYg0L3QtdC80LDRlCDQsdGD0YLQuCDQutC+0YHQvtGXINGA0LjRgdC60LguJzsKJGxhbmdbJ2ZpZWxkZGVmX0pNRlBfZXhjbHVkZV9wcmVmaXhfaGVscCddID0gJ9CS0LrQsNC20ZbRgtGMINGH0LXRgNC10Lcg0LrQvtC80YMg0YHQv9C40YHQvtC6INC/0YDQtdGE0ZbQutGB0ZbQsiwg0YnQvtCxINCy0LjQutC70Y7Rh9C40YLQuCDRhNCw0LnQu9C4LCDRidC+INC/0L7Rh9C40L3QsNGO0YLRjNGB0Y8g0Lcg0LLQutCw0LfQsNC90L7Qs9C+INC/0YDQtdGE0ZbQutGB0YMuINCd0LDQv9GA0LjQutC70LDQtDogdGh1bWJfLCBmb29fJzsKJGxhbmdbJ2ZpZWxkZGVmX0pNRlBfZmlsZWJyb3dzZXJfaGVscCddID0gJ9CX0LAg0LfQsNC80L7QstGH0YPQstCw0L3QvdGP0Lwg0LHRg9C00LUg0LLQuNC60L7RgNC40YHRgtCw0L3QviDQstC40L/QsNC00LDRjtGH0LjQuSDRgdC/0LjRgdC+0LouINCj0LLRltC80LrQvdGD0YLQuCDRhNCw0LnQu9C+0LLQuNC5INCx0YDQsNGD0LfQtdGALCDRj9C60YnQviDQutC+0YDQuNGB0YLRg9Cy0LDRhyDQvNC+0LbQtSDQv9C10YDQtdCz0LvRj9C00LDRgtC4INGE0LDQudC70LguJzsKJGxhbmdbJ2ZpZWxkZGVmX0pNRlBfbWVkaWFfdHlwZV9oZWxwJ10gPSAn0JTQvtC30LLQvtC70Y/RlCDQstC60LDQt9GD0LLQsNGC0Lgg0LfQvtCx0YDQsNC20LXQvdC90Y8g0Y/QuiDRgtC40L8g0LzQtdC00ZbQsCwg0Y/QutC40Lkg0LHRg9C00LUg0LLRltC00L7QsdGA0LDQttCw0YLQuNGB0Y8uINCX0LAg0LfQsNC80L7QstGH0YPQstCw0L3QvdGP0Lwg0LHRg9C00YPRgtGMINCy0ZbQtNC+0LHRgNCw0LbQsNGC0LjRgdGPINCy0YHRliDRhNCw0LnQu9C4Lic7CiRsYW5nWydmaWVsZGRlZl9KTUZQX2RlbGV0ZV9oZWxwJ10gPSAn0K/QutGJ0L4g0YbQtdC5INC/0LDRgNCw0LzQtdGC0YAg0YPQstGW0LzQutC90LXQvdC+LCDQstC4INC80L7QttC10YLQtSDQtNC+0LfQstC+0LvQuNGC0Lgg0LLQuNC00LDQu9C10L3QvdGPINGE0LDQudC70ZbQsiDRh9C4INGC0LXQuiDQtNC70Y8g0YbRjNC+0LPQviDQv9C+0LvRjyDQvdCw0LLRltGC0Ywg0LrQvtGA0LjRgdGC0YPQstCw0YfQsNC8INCx0LXQtyDQstGW0LTQv9C+0LLRltC00L3QvtCz0L4g0LTQvtC30LLQvtC70YMuJzsKJGxhbmdbJ2ZpZWxkZGVmX0pNRlBfY3JlYXRlX2RpcnNfaGVscCddID0gJ9Cv0LrRidC+INGG0LXQuSDQv9Cw0YDQsNC80LXRgtGAINGD0LLRltC80LrQvdC10L3Qviwg0LLQuCDQvNC+0LbQtdGC0LUg0LTQvtC30LLQvtC70LjRgtC4INGB0YLQstC+0YDQtdC90L3RjyDRgtC10Log0LTQu9GPINGG0YzQvtCz0L4g0L/QvtC70Y8g0L3QsNCy0ZbRgtGMINC60L7RgNC40YHRgtGD0LLQsNGH0LDQvCDQsdC10Lcg0LLRltC00L/QvtCy0ZbQtNC90L7Qs9C+INC00L7Qt9Cy0L7Qu9GDLic7CiRsYW5nWydmaWVsZGRlZl9KTUZQX3Nob3dfc3ViZGlyc19oZWxwJ10gPSAn0K/QutGJ0L4g0YbQtdC5INC/0LDRgNCw0LzQtdGC0YAg0YPQstGW0LzQutC90LXQvdC+LCDQutC+0YDQuNGB0YLRg9Cy0LDRhyDQvNC+0LbQtSDQv9C10YDQtdCz0LvRj9C00LDRgtC4INC/0ZbQtNGC0LXQutC4Lic7CiRsYW5nWydmaWVsZGRlZl9DdXN0b21Gcm9tVURUJ10gPSAn0JTQvtC00LDRgtC60L7QstC1INC/0L7Qu9C1INC3INGC0LXSkdGDINC60L7RgNC40YHRgtGD0LLQsNGH0LAgKFVEVCknOwokbGFuZ1snZmllbGRkZWZfdHlwZV9oZWxwJ10gPSAn0JLQuNCx0YDQsNGC0Lgg0YLQuNC/INGG0YzQvtCz0L4g0L/QvtC70Y8nOwokbGFuZ1snZmllbGRkZWZfc291cmNlX3VkdCddID0gJ9Ci0LXSkSDQutC+0YDQuNGB0YLRg9Cy0LDRh9CwIChVRFQpIC0g0LTQttC10YDQtdC70L4nOwokbGFuZ1snZmllbGRkZWZfc291cmNlX1VEVF9oZWxwJ10gPSAn0JLQuNCx0YDQsNGC0Lgg0YLQtdKRINC60L7RgNC40YHRgtGD0LLQsNGH0LAgKFVEVCkgLSDQtNC20LXRgNC10LvQvic7CiRsYW5nWydmaWVsZGRlZl92YWxpZGF0aW9uX3VkdCddID0gJ9Ci0LXSkSDQutC+0YDQuNGB0YLRg9Cy0LDRh9CwIChVRFQpINC00LvRjyDQstCw0LvRltC00LDRhtGW0ZcnOwokbGFuZ1snZmllbGRkZWZfdmFsaWRhdGlvbl9VRFRfaGVscCddID0gJ9CS0LjQsdGA0LDRgtC4INGC0LXSkSDQutC+0YDQuNGB0YLRg9Cy0LDRh9CwIChVRFQpINC00LvRjyDQstCw0LvRltC00LDRhtGW0ZcgKNC90LUg0L7QsdC+0LJcJ9GP0LfQutC+0LLQviknOwokbGFuZ1snZmllbGRkZWZfcmVuZGVyX2Zvcl9hZG1pbl9saXN0aW5nX3VkdCddID0gJ9CS0LjQsdGA0LDRgtC4INGC0LXSkSDQutC+0YDQuNGB0YLRg9Cy0LDRh9CwIChVRFQpINC3INGB0L/QuNGB0LrRgyDQtNC70Y8g0LDQtNC80ZbQvdGW0YHRgtGA0LDRgtC+0YDRltCyJzsKJGxhbmdbJ2ZpZWxkZGVmX3JlbmRlcl9mb3JfYWRtaW5fbGlzdGluZ19VRFRfaGVscCddID0gJ9CS0LjQsdGA0LDRgtC4INGC0LXSkSDQutC+0YDQuNGB0YLRg9Cy0LDRh9CwIChVRFQpINC00LvRjyDQstCw0LvRltC00LDRhtGW0ZcgKNC90LUg0L7QsdC+0LJcJ9GP0LfQutC+0LLQviknOwokbGFuZ1snZmllbGRkZWZfTElTRUluc3RhbmNlJ10gPSAn0JXQutC30LXQvNC/0LvRj9GAINC80L7QtNGD0LvRjyBMSVNFJzsKJGxhbmdbJ2ZpZWxkZGVmX0xJU0VJbnN0YW5jZUl0ZW0nXSA9ICfQldC70LXQvNC10L3RgiDQtdC60LfQtdC80L/Qu9GP0YDRgyDQvNC+0LTRg9C70Y8gTElTRSc7CiRsYW5nWydmaWVsZGRlZl9pbnN0YW5jZV9oZWxwJ10gPSAn0JLQuNCx0YDQsNGC0Lgg0LXQutC30LXQvNC/0LvRj9GAJzsKJGxhbmdbJ2ZpZWxkZGVmX2lkZW50aWZpZXJfaGVscCddID0gJ9CS0LjQsdC10YDRltGC0Ywg0ZbQtNC10L3RgtC40YTRltC60LDRgtC+0YAg0LHQsNC30Lgg0LTQsNC90LjRhSc7CiRsYW5nWydpbnN0YW5jZSddID0gJ9CV0LrQt9C10LzQv9C70Y/RgCc7CiRsYW5nWydpZGVudGlmaWVyJ10gPSAn0IbQtNC10L3RgtC40YTRltC60LDRgtC+0YAnOwokbGFuZ1snZmllbGRkZWZfRkVVTXVsdGlTZWxlY3QnXSA9ICfQn9C+0LvQtSDQvNGD0LvRjNGC0Lgt0LLQuNCx0L7RgNGDIEZFVSc7CiRsYW5nWydmaWVsZGRlZl9KUXVlcnlNdWx0aVNlbGVjdCddID0gJ9Cf0L7Qu9C1INC80YPQu9GM0YLQuC3QstC40LHQvtGA0YMgSlF1ZXJ5JzsKJGxhbmdbJ2ZpZWxkZGVmX2ZldV9tdWx0aXNlbGVjdF9oZWxwJ10gPSAn0JHRg9C00Ywg0LvQsNGB0LrQsCwg0LLQuNCx0LXRgNGW0YLRjCDQvtC00L3RgyDQsNCx0L4g0LTQtdC60ZbQu9GM0LrQsCDQtNC+0YHRgtGD0L/QvdC40YUg0LPRgNGD0L8gRnJvbnRFbmRVc2Vycyc7CiRsYW5nWydmaWVsZGRlZl9mZXVfZmllbGRzX2hlbHAnXSA9ICfQkdGD0LTRjCDQu9Cw0YHQutCwLCDQstC40LHQtdGA0ZbRgtGMINC00L7QtNCw0YLQutC+0LLQtSDQv9C+0LvQtSDQtyBGRVUsINC3INGP0LrQvtCz0L4g0LHRg9C00LUg0LfQs9C10L3QtdGA0L7QstCw0L3QviDQt9C90LDRh9C10L3QvdGPLCDRj9C60LUg0LHRg9C00LUg0L/QvtC60LDQt9Cw0L3QviDRgyDQv9C+0LvRliDQstC40LHQvtGA0YMuPGJyPtCX0LLQtdGA0L3RltGC0Ywg0YPQstCw0LPRgywg0YnQviDQstC40LHRgNCw0L3QtSDQv9C+0LvQtSDQv9C+0LLQuNC90L3QviDQvNCw0YLQuCDRg9C90ZbQutCw0LvRjNC90ZYg0LfQvdCw0YfQtdC90L3RjyDRgyDQstGB0ZbRhSDQt9Cw0L/QuNGB0LDRhSDQutC+0YDQuNGB0YLRg9Cy0LDRh9GW0LIgRkVVLic7CiRsYW5nWydmaWVsZGRlZl9mZXVfZmllbGRzJ10gPSAn0JLQuNCx0YDQsNGC0Lgg0L/QtdGA0YjQtSDQv9C+0LvQtSBGRVUnOwokbGFuZ1snZmllbGRkZWZfZmV1X2ZpZWxkczInXSA9ICfQktC40LHRgNCw0YLQuCDQtNGA0YPQs9C1INC/0L7Qu9C1IEZFVSc7CiRsYW5nWydmaWVsZGRlZl91c2VycyddID0gJ9Ca0L7RgNC40YHRgtGD0LLQsNGH0ZYnOwokbGFuZ1snZmllbGRkZWZfdXNlX3VzZXJuYW1lJ10gPSAn0JLQuNC60L7RgNC40YHRgtC+0LLRg9Cy0LDRgtC4INC/0L7Qu9C1ICLQhtC8XCfRjyDQutC+0YDQuNGB0YLRg9Cy0LDRh9CwIic7CiRsYW5nWydmaWVsZGRlZl91c2VfdWlkJ10gPSAn0JTQvtC00LDRgtC4IElEINC60L7RgNC40YHRgtGD0LLQsNGH0LAg0YHQv9C10YDQtdC00YMnOwokbGFuZ1snZmllbGRkZWZfdXNlX3VpZF9oZWxwJ10gPSAn0JTQvtC00LDRgtC4IElEINC60L7RgNC40YHRgtGD0LLQsNGH0LAg0YHQv9C10YDQtdC00YMg0LTQviDQv9Cw0YDQsNC80LXRgtGA0ZbQsiDRgyDRhNC+0YDQvNCw0YLRliBbbl0uJzsKJGxhbmdbJ2ZpZWxkZGVmX3VzZV91c2VybmFtZV9oZWxwJ10gPSAn0K/QutGJ0L4g0LLQuCDQv9C+0LfQvdCw0YfQuNGC0LUg0YbQtdC5INC/0LDRgNCw0LzQtdGC0YAsINC00L7QtNCw0YLQutC+0LLRliDQv9C+0LvRjyDQvdC40LbRh9C1INC90LUg0LHRg9C00YPRgtGMINCy0LjQutC+0YDQuNGB0YLQvtCy0YPQstCw0YLQuNGB0Y8uJzsKJGxhbmdbJ2ZpZWxkZGVmX3NlcGFyYXRvcl9jaHInXSA9ICfQoNC+0LfQtNGW0LvQvtCy0LjQuSDQt9C90LDQuic7CiRsYW5nWydmaWVsZGRlZl9zZXBhcmF0b3JfY2hyX2hlbHAnXSA9ICfQodC40LzQstC+0LssINGP0LrQuNC5INCy0LjQutC+0YDQuNGB0YLQvtCy0YPRlNGC0YzRgdGPINC00LvRjyDQstGW0LTQvtC60YDQtdC80LvQtdC90L3RjyDQv9C+0LvRjyAxINGWINC/0L7Qu9GPIDIg0YMg0YLQtdC60YHRgtGWINC+0L/RhtGW0LkuINCX0LAg0LfQsNC80L7QstGH0YPQstCw0L3QvdGP0Lwg0YbQtSDQv9GA0L7QsdGW0LsuJzsKJGxhbmdbJ2ZpZWxkZGVmX0ZFVVNpbmdsZVNlbGVjdCddID0gJ9Cf0L7Qu9C1INCy0LjQsdC+0YDRgyDQvtC00L3QvtCz0L4gRkVVJzsKJGxhbmdbJ2ZpZWxkZGVmX0NvcmVGaWxlUGlja2VyJ10gPSAn0J/QvtC70LUg0LLQuNCx0L7RgNGDINGE0LDQudC70YMnOwokbGFuZ1snZmllbGRkZWZfY29yZV9mcF9wcm9maWxlcyddID0gJ9Cf0YDQvtGE0ZbQu9GMJzsKJGxhbmdbJ2ZpZWxkZGVmX2NvcmVfZnBfcHJvZmlsZXNfaGVscCddID0gJ9CS0LjQsdGA0LDRgtC4INC/0YDQvtGE0ZbQu9GMINCf0L7Qu9GPINCy0LjQsdC+0YDRgyDRhNCw0LnQu9GW0LIuINCS0ZbQvSDQv9C+0LLQuNC90LXQvSDRltGB0L3Rg9Cy0LDRgtC4ISDQndC1INCy0LjQsdGA0LDQstGI0Lgg0L3RltGH0L7Qs9C+INCw0LHQviDQstC40LHRgNCw0LLRiNC4INC90LUg0ZbRgdC90YPRjtGH0LjQuSwg0LHRg9C00LUg0YHQutC40L3Rg9GC0L4g0LTQviDQv9GA0L7RhNGW0LvRjyDQt9CwINC30LDQvNC+0LLRh9GD0LLQsNC90L3Rj9C8INCw0LHQviDQtNC+INC30L3QsNGH0LXQvdC90Y8g0LfQsCDQt9Cw0LzQvtCy0YfRg9Cy0LDQvdC90Y/QvC4nOwokbGFuZ1snZmllbGRkZWZfYWxsb3dfaGVscCddID0gJ9CS0LrQsNC20ZbRgtGMINGB0L/QuNGB0L7QuiDQtNC+0LfQstC+0LvQtdC90LjRhSDRgNC+0LfRiNC40YDQtdC90Ywg0YTQsNC50LvRltCyINGH0LXRgNC10Lcg0LrQvtC80YMuINCd0LDQv9GA0LjQutC70LDQtDogcGRmLCBnaWYsIGpwZWcsIGpwZyAo0L/QuNGI0ZbRgtGMINGDINC90LjQttC90YzQvtC80YMg0YDQtdCz0ZbRgdGC0YDRliknOwokbGFuZ1snZmllbGRkZWZfZGlyX2hlbHAnXSA9ICfQqNC70Y/RhSDQtNC+INGC0LXQutC4LCDRj9C60LjQuSDQsdGD0LTQtSDQtNC+0LTQsNC90L4g0LTQviAkY29uZmlnW1wndXBsb2Fkc191cmxcJ10gLiDQoyDQutGW0L3RhtGWINC90LXQvNCw0ZQg0LHRg9GC0Lgg0LrQvtGB0L7RlyDRgNC40YHQutC4LiB7JGl0ZW1faWR9INGWIHskZmllbGRfaWR9INCx0YPQtNC1INC30LDQvNGW0L3QtdC90L4uJzsKJGxhbmdbJ2ZpZWxkZGVmX2V4Y2x1ZGVfcHJlZml4X2hlbHAnXSA9ICfQktC60LDQttGW0YLRjCDRh9C10YDQtdC3INC60L7QvNGDINGB0L/QuNGB0L7QuiDQv9GA0LXRhNGW0LrRgdGW0LIsINGJ0L7QsSDQstC40LrQu9GO0YfQuNGC0Lgg0YTQsNC50LvQuCwg0YnQviDQv9C+0YfQuNC90LDRjtGC0YzRgdGPINC3INCy0LrQsNC30LDQvdC+0LPQviDQv9GA0LXRhNGW0LrRgdGDLiDQndCw0L/RgNC40LrQu9Cw0LQ6IHRodW1iXywgZm9vXyc7CiRsYW5nWydmaWVsZGRlZl9tdWx0aW9wdGlvbnNfaGVscCddID0gJ9Ca0L7QttC90LAg0L7Qv9GG0ZbRjyDQv9C+0LLQuNC90L3QsCDQsdGD0YLQuCDQsiDQvtC60YDQtdC80L7QvNGDINGA0Y/QtNC60YMuINCX0L3QsNGH0LXQvdC90Y8g0LzQvtC20L3QsCDQstGW0LTQtNGW0LvQuNGC0Lgg0LLRltC0INGC0LXQutGB0YLRgyDQt9CwINC00L7Qv9C+0LzQvtCz0L7RjiDRgdC40LzQstC+0LvRgyA9LiDQndCw0L/RgNC40LrQu9Cw0LQ6IEJhbmFuYT1iYW5hbmEnOwokbGFuZ1snZmllbGRkZWZfc2VwYXJhdG9yX2hlbHAnXSA9ICfQnNC+0LbQtSDQsdGD0YLQuCDQv9C+0YDQvtC20L3RltC8LCDQvtC00L3QuNC8INGB0LjQvNCy0L7Qu9C+0Lwg0LDQsdC+IEhUTUwt0LXQu9C10LzQtdC90YLQvtC8Lic7CiRsYW5nWydmaWVsZGRlZl9zaXplX2hlbHAnXSA9ICfQktC60LDQttGW0YLRjCDRgNC+0LfQvNGW0YAg0L/QvtC70Y8g0LLQstC10LTQtdC90L3Rjy4g0J3QsNC/0YDQuNC60LvQsNC0OiAyMCc7CiRsYW5nWydmaWVsZGRlZl9tYXhfbGVuZ3RoX2hlbHAnXSA9ICfQktC60LDQttGW0YLRjCDQvNCw0LrRgdC40LzQsNC70YzQvdGDINC00L7QstC20LjQvdGDINC/0L7Qu9GPLiDQndCw0L/RgNC40LrQu9Cw0LQ6IDI1NSc7CiRsYW5nWydmaWVsZGRlZl9kYXRlX2Zvcm1hdF9oZWxwJ10gPSAn0JLQutCw0LbRltGC0Ywg0YTQvtGA0LzQsNGCINC00LDRgtC4LCDRidC+INCy0LjQutC+0YDQuNGB0YLQvtCy0YPRlCDQv9C+0LvQtSDQstC40LHQvtGA0YMg0LTQsNGC0LggalF1ZXJ5LiDQodC/0YDQvtCx0YPQudGC0LUgPGVtPtC/0L7SkdGD0pHQu9C40YLQuDwvZW0+IFwnanF1ZXJ5IGZvcm1hdERhdGVcJy4g0J3QsNC/0YDQuNC60LvQsNC0OiBkZC1tbS15eSc7CiRsYW5nWydmaWVsZGRlZl9mb3JtYXRfdHlwZV9oZWxwJ10gPSAn0JLQutCw0LbRltGC0Ywg0YTQvtGA0LzQsNGCINCy0LjQstC+0LTRgyDQtNC70Y8g0YbRjNC+0LPQviDQv9C+0LvRjy4nOwokbGFuZ1snZmllbGRkZWZfc2hvd19zZWNvbmRzX2hlbHAnXSA9ICfQktC60LDQttGW0YLRjCwg0YfQuCDRgdC70ZbQtCDQstGW0LTQvtCx0YDQsNC20LDRgtC4INC/0L7QstC30YPQvdC+0Log0YHQtdC60YPQvdC0LiDQl9CS0JXQoNCd0IbQotCsINCj0JLQkNCT0KMsINC00YDRg9Cz0LjQuSDQv9C+0LLQt9GD0L3QvtC6INC90LUg0LzQsNGUINCy0L/Qu9C40LLRgywg0Y/QutGJ0L4g0YTQvtGA0LzQsNGCINGH0LDRgdGDINC90LXQv9GA0LDQstC40LvRjNC90LjQuS4g0KHQv9GA0L7QsdGD0LnRgtC1IEhIOm1tOnNzJzsKJGxhbmdbJ2ZpZWxkZGVmX3RpbWVfZm9ybWF0X2hlbHAnXSA9ICfQktC60LDQttGW0YLRjCDRhNC+0YDQvNCw0YIg0LTQsNGC0LgsINGP0LrQuNC5INCy0LjQutC+0YDQuNGB0YLQvtCy0YPRlCDQv9C+0LvQtSDQstC40LHQvtGA0YMg0YfQsNGB0YMgalF1ZXJ5LiDQodC/0YDQvtCx0YPQudGC0LUg0L/QvtKR0YPSkdC70LjRgtC4IFwnanF1ZXJ5IGZvcm1hdFRpbWVcJy4g0J3QsNC/0YDQuNC60LvQsNC0OiBISDptbSc7CiRsYW5nWydmaWVsZGRlZl93eXNpd3lnX2hlbHAnXSA9ICfQr9C60YnQviDQv9C+0LfQvdCw0YfQtdC90L4sINC00LvRjyDRhtGM0L7Qs9C+INC/0L7Qu9GPINCx0YPQtNC1INCw0LrRgtC40LLQvtCy0LDQvdC+INCy0ZbQt9GD0LDQu9GM0L3QuNC5INGA0LXQtNCw0LrRgtC+0YAuJzsKJGxhbmdbJ2ZpZWxkZGVmX21pbl92YWx1ZV9oZWxwJ10gPSAn0JLQutCw0LbRltGC0Ywg0LzRltC90ZbQvNCw0LvRjNC90LUg0LfQvdCw0YfQtdC90L3RjyDQtNC70Y8g0YbRjNC+0LPQviDQv9C+0LvRjy4nOwokbGFuZ1snZmllbGRkZWZfbWF4X3ZhbHVlX2hlbHAnXSA9ICfQktC60LDQttGW0YLRjCDQvNCw0LrRgdC40LzQsNC70YzQvdC1INC30L3QsNGH0LXQvdC90Y8g0LTQu9GPINGG0YzQvtCz0L4g0L/QvtC70Y8uJzsKJGxhbmdbJ2ZpZWxkZGVmX2luY3JlbWVudF9ieV9oZWxwJ10gPSAn0JLQuNC30L3QsNGH0YLQtSDQutGA0L7QuiDQt9Cx0ZbQu9GM0YjQtdC90L3Rjy/Qt9C80LXQvdGI0LXQvdC90Y8g0LTQu9GPINC/0L7QstC30YPQvdC60LAuINCa0YDQvtC6INC30LAg0LfQsNC80L7QstGH0YPQstCw0L3QvdGP0LwgLSAxLic7CiRsYW5nWydmaWVsZGRlZl93aWR0aF9oZWxwJ10gPSAn0JLQutCw0LbRltGC0Ywg0YjQuNGA0LjQvdGDINC10LvQtdC80LXQvdGC0LAuINCm0LUg0LzQvtC20LUg0LHRg9GC0Lgg0LLRltC00YHQvtGC0LrQvtCy0LUg0LDQsdC+INC/0ZbQutGB0LXQu9GM0L3QtSDQt9C90LDRh9C10L3QvdGPLiDQptC1INCx0YPQtNC1INCy0LjQutC+0YDQuNGB0YLQsNC90L4g0Y/QuiDQt9C90LDRh9C10L3QvdGPIENTUy4nOwokbGFuZ1snZmllbGRkZWZfc3VidHlwZV9oZWxwJ10gPSAn0JLQuNCx0LXRgNGW0YLRjCDQv9GW0LTRgtC40L8g0LTQu9GPINGG0YzQvtCz0L4g0L/QvtC70Y8sINGJ0L7QsSDQstC40LfQvdCw0YfQuNGC0Lgg0LnQvtCz0L4g0L/QvtCy0LXQtNGW0L3QutGDLic7CiRsYW5nWydmaWVsZGRlZl9zaG93YWxsX2hlbHAnXSA9ICfQn9C+0LrQsNC30LDRgtC4INCy0YHQtSwg0L3QtdC30LDQu9C10LbQvdC+INCy0ZbQtCDQtNC+0LfQstC+0LvRltCyINGB0LjRgdGC0LXQvNC4Lic7CiRsYW5nWydmaWVsZGRlZl9jb2x1bW5zX2hlbHAnXSA9ICfQmtGW0LvRjNC60ZbRgdGC0Ywg0YHRgtC+0LLQv9GG0ZbQsi4g0KDQvtC30LTRltC70ZbRgtGMINGG0LUg0L/QvtC70LUg0L3QsCDQtNC10LrRltC70YzQutCwINGB0YLQvtCy0L/RhtGW0LIg0LTQu9GPINC/0L7QutGA0LDRidC10L3QvdGPINC30YDRg9GH0L3QvtGB0YLRliDQutC+0YDQuNGB0YLRg9Cy0LDQvdC90Y8uJzsKJGxhbmdbJ2ZpZWxkZGVmX21lZGlhX3R5cGVfaGVscCddID0gJ9CU0L7Qt9Cy0L7Qu9GP0ZQg0LLQutCw0LfRg9Cy0LDRgtC4INC30L7QsdGA0LDQttC10L3QvdGPINGP0Log0YLQuNC/INC80LXQtNGW0LAsINGP0LrQuNC5INCx0YPQtNC1INCy0ZbQtNC+0LHRgNCw0LbQsNGC0LjRgdGPLiDQl9CwINC30LDQvNC+0LLRh9GD0LLQsNC90L3Rj9C8INCx0YPQtNGD0YLRjCDQstGW0LTQvtCx0YDQsNC20LDRgtC40YHRjyDQstGB0ZYg0YTQsNC50LvQuC4nOwokbGFuZ1snZmllbGRkZWZfZW5hYmxlX2pxdWlfaGVscCddID0gJ9Cf0L7QutGA0LDRidGD0ZQg0YHRgtCw0L3QtNCw0YDRgtC90ZYg0LXQu9C10LzQtdC90YLQuCDRhNC+0YDQvNC4LCDRg9GA0ZbQt9C90L7QvNCw0L3RltGC0Y7RjtGH0Lgg0LTQuNC30LDQudC9INC60L3QvtC/0L7QuiDRltC3INCy0ZbQtNC/0L7QstGW0LTQvdC40Lwg0LLQuNCz0LvRj9C00L7QvCDQv9GA0Lgg0L3QsNCy0LXQtNC10L3QvdGWINC80LjRiNC+0Y4g0YLQsCDQv9GW0LQg0YfQsNGBINC60LvRltC60YMuJzsKJGxhbmdbJ3Jlb3JkZXJfY2F0ZWdvcmllcyddID0gJ9CX0LzRltC90LjRgtC4INC/0L7RgNGP0LTQvtC6INC60LDRgtC10LPQvtGA0ZbQuSc7CiRsYW5nWydlZGl0X2NhdGVnb3J5J10gPSAn0KDQtdC00LDQs9GD0LLQsNGC0Lgg0LrQsNGC0LXQs9C+0YDRltGOJzsKJGxhbmdbJ2NhdGVnb3J5X25hbWUnXSA9ICfQndCw0LfQstCwINC60LDRgtC10LPQvtGA0ZbRlyc7CiRsYW5nWydjYXRlZ29yeV9kZXNjcmlwdGlvbiddID0gJ9Ce0L/QuNGBINC60LDRgtC10LPQvtGA0ZbRlyc7CiRsYW5nWydjYXRlZ29yeV9uYW1lX2VtcHR5J10gPSAn0J3QtSDQt9Cw0L/QvtCy0L3QtdC90L4g0L3QsNC30LLRgyDQutCw0YLQtdCz0L7RgNGW0ZcnOwokbGFuZ1snY2F0ZWdvcnlfYWxpYXNfZXhpc3RzJ10gPSAn0KLQsNC60LjQuSDQv9GB0LXQstC00L7QvdGW0Lwg0LrQsNGC0LXQs9C+0YDRltGXINCy0LbQtSDRltGB0L3Rg9GULiDQn9GB0LXQstC00L7QvdGW0Lwg0LzQsNGUINCx0YPRgtC4INGD0L3RltC60LDQu9GM0L3QuNC8Lic7CiRsYW5nWydhcmNoaXZldGVtcGxhdGUnXSA9ICfQqNCw0LHQu9C+0L0g0LDRgNGF0ZbQstGDJzsKJGxhbmdbJ2FyY2hpdmV0ZW1wbGF0ZXMnXSA9ICfQqNCw0LHQu9C+0L3QuCDQsNGA0YXRltCy0YMnOwokbGFuZ1snY2F0ZWdvcnl0ZW1wbGF0ZSddID0gJ9Co0LDQsdC70L7QvSDQutCw0YLQtdCz0L7RgNGW0LknOwokbGFuZ1snY2F0ZWdvcnl0ZW1wbGF0ZXMnXSA9ICfQqNCw0LHQu9C+0L3QuCDQutCw0YLQtdCz0L7RgNGW0LknOwokbGFuZ1snc3VtbWFyeXRlbXBsYXRlJ10gPSAn0KjQsNCx0LvQvtC9INGB0L/QuNGB0LrRgyDQtdC70LXQvNC10L3RgtGW0LInOwokbGFuZ1snc3VtbWFyeXRlbXBsYXRlcyddID0gJ9Co0LDQsdC70L7QvdC4INGB0L/QuNGB0LrRgyDQtdC70LXQvNC10L3RgtGW0LInOwokbGFuZ1snZGV0YWlsdGVtcGxhdGUnXSA9ICfQqNCw0LHQu9C+0L0g0LLQuNCy0L7QtNGDINC10LvQtdC80LXQvdGC0LAnOwokbGFuZ1snZGV0YWlsdGVtcGxhdGVzJ10gPSAn0KjQsNCx0LvQvtC90Lgg0LLQuNCy0L7QtNGDINC10LvQtdC80LXQvdGC0LAnOwokbGFuZ1snc2VhcmNodGVtcGxhdGUnXSA9ICfQqNCw0LHQu9C+0L0g0LTQu9GPINC/0L7RiNGD0LrRgyc7CiRsYW5nWydzZWFyY2h0ZW1wbGF0ZXMnXSA9ICfQqNCw0LHQu9C+0L3QuCDQtNC70Y8g0L/QvtGI0YPQutGDJzsKJGxhbmdbJ2ZpbHRlcnRlbXBsYXRlJ10gPSAn0KjQsNCx0LvQvtC9INCy0LjQstC+0LTRgyDRhNGW0LvRjNGC0YDQsCc7CiRsYW5nWydmaWx0ZXJ0ZW1wbGF0ZXMnXSA9ICfQqNCw0LHQu9C+0L3QuCDQstC40LLQvtC00YMg0YTRltC70YzRgtGA0LAnOwokbGFuZ1snZWRpdHRlbXBsYXRlJ10gPSAn0KDQtdC00LDQs9GD0LLQsNGC0Lgg0YjQsNCx0LvQvtC9JzsKJGxhbmdbJ3RlbXBsYXRlX25hbWUnXSA9ICfQndCw0LfQstCwINGI0LDQsdC70L7QvdGDJzsKJGxhbmdbJ3RlbXBsYXRlX25hbWVfZW1wdHknXSA9ICfQndC1INC30LDQv9C+0LLQvdC10L3QviDQvdCw0LfQstGDINGI0LDQsdC70L7QvdGDJzsKJGxhbmdbJ3RlbXBsYXRlX2NvbnRlbnRfZW1wdHknXSA9ICfQndC1INC30LDQv9C+0LLQvdC10L3QviDQstC80ZbRgdGCINGI0LDQsdC70L7QvdGDJzsKJGxhbmdbJ2RlZmF1bHRfdGVtcGxhdGVzJ10gPSAn0KjQsNCx0LvQvtC90Lgg0LfQsCDQt9Cw0LzQvtCy0YfRg9Cy0LDQvdC90Y/QvCc7CiRsYW5nWydtb2R1bGVfb3B0aW9ucyddID0gJ9Ce0L/RhtGW0Zcg0LzQvtC00YPQu9GPJzsKJGxhbmdbJ3VybF9vcHRpb25zJ10gPSAn0J7Qv9GG0ZbRlyBVUkwnOwokbGFuZ1snZGVmYXVsdF9vcHRpb25zJ10gPSAn0JzQvtC00YPQu9GMINC30LAg0LfQsNC80L7QstGH0YPQstCw0L3QvdGP0LwnOwokbGFuZ1sneG1vZHVsZV9vcHRpb25zJ10gPSAn0J7Qv9GG0ZbRlyDQv9C10YDQtdGF0YDQtdGB0L3QvtCz0L4g0LzQvtC00YPQu9GPJzsKJGxhbmdbJ3Byb21wdF9mcmllbmRseW5hbWUnXSA9ICfQk9Cw0YDQvdC1INGW0LxcJ9GPINC80L7QtNGD0LvRjyc7CiRsYW5nWydwcm9tcHRfbW9kZGVzY3JpcHRpb24nXSA9ICfQntC/0LjRgSDQutC10YDRg9Cy0LDQvdC90Y8g0LzQvtC00YPQu9C10LwnOwokbGFuZ1sncHJvbXB0X2FkbWluc2VjdGlvbiddID0gJ9Cg0L7Qt9C00ZbQuyDQsNC00LzRltC9LiDQv9Cw0L3QtdC70ZYsINCyINGP0LrQvtC80YMg0YDQvtC30LzRltGJ0LXQvdC+INC80L7QtNGD0LvRjCc7CiRsYW5nWydpdGVtc19vcHRpb25zJ10gPSAn0J7Qv9GG0ZbRlyDQtdC70LXQvNC10L3RgtGW0LInOwokbGFuZ1sncHJvbXB0X2l0ZW1fc2luZ3VsYXInXSA9ICfQldC70LXQvNC10L3RgiDQsiDQvtC00L3QuNC90ZYnOwokbGFuZ1sncHJvbXB0X2l0ZW1fcGx1cmFsJ10gPSAn0JXQu9C10LzQtdC90YIg0LIg0LzQvdC+0LbQuNC90ZYnOwokbGFuZ1sncHJvbXB0X3VybF9wcmVmaXgnXSA9ICfQn9GA0LXRhNGW0LrRgSBVUkwnOwokbGFuZ1sncHJvbXB0X3VybF90ZW1wbGF0ZSddID0gJ9Co0LDQsdC70L7QvSBVUkwnOwokbGFuZ1sncHJvbXB0X2Rpc3BsYXlfaW5saW5lJ10gPSAn0JLRltC00L7QsdGA0LDQttCw0YLQuCDRgNC10LfRg9C70YzRgtCw0YLQuCDQstCx0YPQtNC+0LLQsNC90L4gKNC30LDQvNGW0L3RjtGUINGC0LXSkSDQvNC+0LTRg9C70Y8g0LfQsNC80ZbRgdGC0Ywge2NvbnRlbnR9KSc7CiRsYW5nWydwcm9tcHRfc3ViY2F0ZWdvcnknXSA9ICfQo9Cy0ZbQvNC60L3Rg9Cy0YjQuCDQv9Cw0YDQsNC80LXRgtGAINC/0ZbQtNC60LDRgtC10LPQvtGA0ZbRlywg0LHRg9C00LUg0L/QvtC60LDQt9Cw0L3QviDQtNC+0YfRltGA0L3RliDQtdC70LXQvNC10L3RgtC4INC60LDRgtC10LPQvtGA0ZbRlyDRgtCwINGX0Zcg0L/RltC00LrQsNGC0LXQs9C+0YDRltC5JzsKJGxhbmdbJ3Byb21wdF9pdGVtX2NvbHMnXSA9ICfQktGW0LTQvtCx0YDQsNC20LDRgtC4INGG0ZYg0L/QvtC70Y8g0LIg0L/QtdGA0LXQs9C70Y/QtNGWINC10LvQtdC80LXQvdGC0ZbQsic7CiRsYW5nWydwcm9tcHRfaXRlbXNfcGVyX3BhZ2UnXSA9ICfQktGW0LTQvtCx0YDQsNC20LDRgtC4INC10LvQtdC80LXQvdGC0Lgg0L3QsCDRgdGC0L7RgNGW0L3RhtGWJzsKJGxhbmdbJ3Byb21wdF9jcmVhdGVfZGF0ZSddID0gJ9CS0ZbQtNC+0LHRgNCw0LbQsNGC0Lgg0LTQsNGC0YMg0YHRgtCy0L7RgNC10L3QvdGPINC10LvQtdC80LXQvdGC0LAg0LIg0YDQtdC20LjQvNGWINGA0LXQtNCw0LPRg9Cy0LDQvdC90Y8/JzsKJGxhbmdbJ3Byb21wdF9kZXRhaWxwYWdlJ10gPSAn0KHRgtC+0YDRltC90LrQsCDQtNC70Y8g0LLQuNCy0L7QtNGDINC10LvQtdC80LXQvdGC0LAnOwokbGFuZ1sncHJvbXB0X3N1bW1hcnlwYWdlJ10gPSAn0KHRgtC+0YDRltC90LrQsCDQtNC70Y8g0LLQuNCy0L7QtNGDINGB0L/QuNGB0LrRgyDQtdC70LXQvNC10L3RgtGW0LInOwokbGFuZ1sncHJvbXB0X3JlaW5kZXhfc2VhcmNoJ10gPSAn0JXQu9C10LzQtdC90YLQuCDQtNC+0YHRgtGD0L/QvdGWINC00LvRjyDQv9C+0YjRg9C60YMg0L/QvtGI0YPQutC+0LLQuNC8INC80L7QtNGD0LvQtdC8JzsKJGxhbmdbJ3RleHRfc29ydG9yZGVyJ10gPSAn0J/QvtGA0Y/QtNC+0Log0YHQvtGA0YLRg9Cy0LDQvdC90Y8g0LXQu9C10LzQtdC90YLRltCyINC30LAg0LfQsNC80L7QstGH0YPQstCw0L3QvdGP0LwnOwokbGFuZ1snb3B0aW9uc19ub3RpY2UnXSA9ICfQn9GW0YHQu9GPINC30LzRltC90Lgg0LPQsNGA0L3QvtCz0L4g0ZbQvNC10L3RliDQvNC+0LTRg9C70Y8g0LDQsdC+INGA0L7Qt9C00ZbQu9GDINCw0LTQvNGW0L0uINC/0LDQvdC10LvRliwg0LIg0Y/QutC+0LzRgyDRgNC+0LfQvNGW0YnQtdC90L4g0LzQvtC00YPQu9GMLCDQvNC+0LbQu9C40LLQviDQv9C+0YLRgNGW0LHQvdC+INCx0YPQtNC1INC+0YfQuNGB0YLQuNGC0Lgg0LrQtdGILCDRidC+0LEg0LfQvNGW0L3QuCDQstGB0YLRg9C/0LjQu9C4INCyINGB0LjQu9GDLic7CiRsYW5nWydwcm9tcHRfYWxsb3dfYXV0b3NjYW4nXSA9ICfQlNC+0LfQstC+0LvQuNGC0Lgg0YHQuNGB0YLQtdC80ZYg0LDQstGC0L7QvNCw0YLQuNGH0L3QviDRgdC60LDQvdGD0LLQsNGC0Lgg0L/QvtC70Y8nOwokbGFuZ1snbm90aWNlX2FsbG93X2F1dG9zY2FuJ10gPSAn0JTQvtC30LLQvtC70LjQstGI0Lgg0YHQuNGB0YLQtdC80ZYg0LDQstGC0L7QvNCw0YLQuNGH0L3QtSDRgdC60LDQvdGD0LLQsNC90L3RjyDQv9C+0LTRltC5IE1vZHVsZUluc3RhbGxlZCwgTW9kdWxlVXBncmFkZWQsIE1vZHVsZVVuaW5zdGFsbGVkINGWIENvbnRlbnRQb3N0Q29tcGlsZSDQvNC+0LbQu9C40LLQsCDQtNC40LLQvdCwINC/0L7QstC10LTRltC90LrQsCDQtyDQtNC10Y/QutC40LzQuCDQvtGB0L3QvtCy0L3QuNC80Lgg0LLQtdGA0YHRltGP0LzQuC4nOwokbGFuZ1sncHJvbXB0X2FsbG93X2F1dG9pbnN0YWxsJ10gPSAn0JTQvtC30LLQvtC70LjRgtC4INGB0LjRgdGC0LXQvNGWINCy0YHRgtCw0L3QvtCy0LvRjtCy0LDRgtC4INC10LrQt9C10LzQv9C70Y/RgNC4INCw0LLRgtC+0LzQsNGC0LjRh9C90L4nOwokbGFuZ1sncHJvbXB0X2FsbG93X2F1dG91cGRhdGUnXSA9ICfQlNC+0LfQstC+0LvQuNGC0Lgg0YHQuNGB0YLQtdC80ZYg0L7QvdC+0LLQu9GO0LLQsNGC0Lgg0LXQutC30LXQvNC/0LvRj9GA0Lgg0LDQstGC0L7QvNCw0YLQuNGH0L3Qviwg0LrQvtC70LggTElTRSDQvtC90L7QstC70LXQvdC+JzsKJGxhbmdbJ21pc2Nfb3B0aW9ucyddID0gJ9Cg0ZbQt9C90LUnOwokbGFuZ1sncHJvbXB0X2F1dG9fdXBncmFkZSddID0gJ9CU0L7Qt9Cy0L7Qu9C40YLQuCDRgdC40YHRgtC10LzRliDQvtC90L7QstC70Y7QstCw0YLQuCDRhtC10Lkg0LXQutC30LXQvNC/0LvRj9GAINCw0LLRgtC+0LzQsNGC0LjRh9C90L4sINC60L7Qu9C4IExJU0Ug0L7QvdC+0LLQu9C10L3Qvic7CiRsYW5nWydub3RpY2UnXSA9ICfQl9Cy0LXRgNC90ZbRgtGMINGD0LLQsNCz0YMnOwokbGFuZ1snaW5zdGFuY2VzJ10gPSAn0JXQutC30LXQvNC/0LvRj9GA0LgnOwokbGFuZ1snaW5zdGFsbGVkX2luc3RhbmNlc193YXJuaW5nJ10gPSAn0J3QuNC20YfQtSDQvdCw0LLQtdC00LXQvdC+INGB0L/QuNGB0L7QuiDQtNGD0LHQu9GM0L7QstCw0L3QuNGFINC10LrQt9C10LzQv9C70Y/RgNGW0LIg0LzQvtC00YPQu9GW0LIuPGJyLz4g0J/QtdGA0LXQtCDQvtC90L7QstC70LXQvdC90Y/QvCDQvtCx0L7Qslwn0Y/Qt9C60L7QstC+INGB0YLQstC+0YDRltGC0Ywg0YDQtdC30LXRgNCy0L3RgyDQutC+0L/RltGOINCy0LDRiNC+0LPQviDRgdCw0LnRgtGDICjQsdCw0LfQuCDQtNCw0L3QuNGFINGC0LAg0YTQsNC50LvRltCyKSc7CiRsYW5nWydjbG9uZV9pbnN0YW5jZXNfd2FybmluZyddID0gJ9CS0YHRliDQvdCw0LvQsNGI0YLRg9Cy0LDQvdC90Y8g0LHRg9C00LUg0YHQutC+0L/RltC50L7QstCw0L3Qviwg0L7QutGA0ZbQvCDQtNC+0LfQstC+0LvRltCyLCDRj9C60ZYg0L/QvtGC0YDRltCx0L3QviDQsdGD0LTQtSDQstGB0YLQsNC90L7QstC40YLQuCDQstGA0YPRh9C90YMuJzsKJGxhbmdbJ2luc3RhbGxlZF9pbnN0YW5jZXMnXSA9ICfQktGB0YLQsNC90L7QstC70LXQvdGWINC10LrQt9C10LzQv9C70Y/RgNC4JzsKJGxhbmdbJ2luc3RhbmNlX25hbWUnXSA9ICfQndCw0LfQstCwINC10LrQt9C10LzQv9C70Y/RgNGDJzsKJGxhbmdbJ2luc3RhbmNlX2ZyaWVuZGx5bmFtZSddID0gJ9CT0LDRgNC90LUg0ZbQvFwn0Y8nOwokbGFuZ1snaW5zdGFuY2Vfc21hcnR5J10gPSAn0KLQtdKRIFNtYXJ0eSc7CiRsYW5nWydpbnN0YW5jZV92ZXJzaW9uJ10gPSAn0JLQtdGA0YHRltGPJzsKJGxhbmdbJ2luc3RhbmNlX3VwZ3JhZGUnXSA9ICfQntC90L7QstC40YLQuCDQstC10YDRgdGW0Y4nOwokbGFuZ1snaW5zdGFuY2VfdXB0b2RhdGUnXSA9ICfQntC90L7QstC40YLQuCc7CiRsYW5nWydpbnN0YW5jZV9tb2R1bGV1cGdyYWRlZCddID0gJ9Ce0L3QvtCy0LvQtdC90L4g0LLQtdGA0YHRltGOINC80L7QtNGD0LvRjyc7CiRsYW5nWydjb3B5X3RpdGxlJ10gPSAn0JTRg9Cx0LvRjtCy0LDRgtC4INC80L7QtNGD0LvRjCc7CiRsYW5nWydpbXBvcnRfZnJvbV9MSTJfdGl0bGUnXSA9ICfQhtC80L/QvtGA0YLRg9Cy0LDRgtC4INC10LrQt9C10LzQv9C70Y/RgNC4INC3IExpc3RJdDInOwokbGFuZ1sncHJvbXB0X2ltcG9ydF9mcm9tX0xJMiddID0gJ9CG0LzQv9C+0YDRgtGD0LLQsNGC0Lgg0Lcg0ZbRgdC90YPRjtGH0LjRhSDQtdC60LfQtdC80L/Qu9GP0YDRltCyIExpc3RJdDInOwokbGFuZ1snYnV0dG9uX2ltcG9ydF9mcm9tX0xJMiddID0gJ9CG0LzQv9C+0YDRgtGD0LLQsNGC0LghJzsKJGxhbmdbJ2ZpeF9pbXBvcnRfZnJvbV9MSTJfdGl0bGUnXSA9ICfQn9C+0LvQsNCz0L7QtNGM0YLQtSDRltC80L/QvtGA0YLQvtCy0LDQvdGWINGC0LDQsdC70LjRhtGWIExpc3RJdDInOwokbGFuZ1snZml4X0xJMl9pbnN0YW5jZXNfd2FybmluZyddID0gJ9CS0LjQutC+0YDQuNGB0YLQvtCy0YPQudGC0LUsINGP0LrRidC+INGDINCy0LDRgSDQstC40L3QuNC60LvQuCDQv9GA0L7QsdC70LXQvNC4INC3INC00L7QtNCw0LLQsNC90L3Rj9C8INCw0LHQviDRgNC10LTQsNCz0YPQstCw0L3QvdGP0Lwg0LXQu9C10LzQtdC90YLRltCyINGH0Lgg0L/QvtC70ZbQsiDRgyDQtdC60LfQtdC80L/Qu9GP0YDQsNGFLCDRltC80L/QvtGA0YLQvtCy0LDQvdC40YUg0LcgTGlzdEl0MiEnOwokbGFuZ1sncHJvbXB0X2ZpeF9pbXBvcnRfZnJvbV9MSTInXSA9ICfQodC/0YDQvtCx0YPQudGC0LUg0L/QvtC70LDQs9C+0LTQuNGC0Lgg0YLQsNCx0LvQuNGG0ZYsINGW0LzQv9C+0YDRgtC+0LLQsNC90ZYg0Lcg0LXQutC30LXQvNC/0LvRj9GA0ZbQsiBMaXN0SXQyJzsKJGxhbmdbJ2J1dHRvbl9maXhfaW1wb3J0X2Zyb21fTEkyJ10gPSAn0J/QvtC70LDQs9C+0LTQuNGC0LghJzsKJGxhbmdbJ3N1Ym1pdCddID0gJ9CS0ZbQtNC/0YDQsNCy0LjRgtC4JzsKJGxhbmdbJ2RlZmF1bHQnXSA9ICfQl9CwINC30LDQvNC+0LLRh9GD0LLQsNC90L3Rj9C8JzsKJGxhbmdbJ2NhbmNlbCddID0gJ9Ch0LrQsNGB0YPQstCw0YLQuCc7CiRsYW5nWyd1cGRhdGUnXSA9ICfQntC90L7QstC40YLQuCc7CiRsYW5nWydyZXBhaXInXSA9ICfQktGW0LTRgNC10LzQvtC90YLRg9Cy0LDRgtC4JzsKJGxhbmdbJ3NhdmVfY3JlYXRlJ10gPSAn0JfQsdC10YDQtdCz0YLQuCAmINCh0YLQstC+0YDQuNGC0LgnOwokbGFuZ1sncmVzZXQnXSA9ICfQodC60LjQvdGD0YLQuCDQtNC+INC30L3QsNGH0LXQvdGMINC30LAg0LfQsNC80L7QstGH0YPQstCw0L3QvdGP0LwnOwokbGFuZ1snZHVwbGljYXRlJ10gPSAn0KHRgtCy0L7RgNC40YLQuCDQtdC60LfQtdC80L/Qu9GP0YAnOwokbGFuZ1snY2hhbmdlc3NhdmVkJ10gPSAn0JLQsNGI0ZYg0LfQvNGW0L3QuCDRg9GB0L/RltGI0L3QviDQt9Cx0LXRgNC10LbQtdC90L4uJzsKJGxhbmdbJ2NoYW5nZXNzYXZlZF9jcmVhdGUnXSA9ICfQktCw0Ygg0L/QvtC/0LXRgNC10LTQvdGW0Lkg0LXQu9C10LzQtdC90YIg0YPRgdC/0ZbRiNC90L4g0LfQsdC10YDQtdC20LXQvdC+LiDQodGC0LLQvtGA0LjRgtC4INC90L7QstC40Lk/JzsKJGxhbmdbJ3RlbXBsYXRlcmVzdG9yZWQnXSA9ICfQqNCw0LHQu9C+0L0g0LfQsCDQt9Cw0LzQvtCy0YfRg9Cy0LDQvdC90Y/QvCDQstGW0LTQvdC+0LLQu9C10L3Qvi4nOwokbGFuZ1snYXJleW91c3VyZSddID0gJ9CS0Lgg0LLQv9C10LLQvdC10L3Rliwg0YnQviDRhdC+0YfQtdGC0LUg0LLQuNC00LDQu9C40YLQuD8nOwokbGFuZ1sndXAnXSA9ICfQktCy0LXRgNGFJzsKJGxhbmdbJ2Rvd24nXSA9ICfQktC90LjQtyc7CiRsYW5nWydlZGl0J10gPSAn0KDQtdC00LDQs9GD0LLQsNGC0LgnOwokbGFuZ1snY29weSddID0gJ9Ca0L7Qv9GW0Y7QstCw0YLQuCc7CiRsYW5nWydkZWxldGUnXSA9ICfQktC40LTQsNC70LjRgtC4JzsKJGxhbmdbJ25vc3VjaGlkJ10gPSAn0J3QtSDQt9C90LDQudC00LXQvdC+INGC0LDQutC+0LPQviBJRCc7CiRsYW5nWydkZWxldGVkJ10gPSAn0JXQu9C10LzQtdC90YIo0LgpINGD0YHQv9GW0YjQvdC+INCy0LjQtNCw0LvQtdC90L4uJzsKJGxhbmdbJ2FkZCddID0gJ9CU0L7QtNCw0YLQuCAlcyc7CiRsYW5nWydpbXBvcnQnXSA9ICfQhtC80L/QvtGA0YLRg9Cy0LDRgtC4ICVzJzsKJGxhbmdbJ2V4cG9ydCddID0gJ9CV0LrRgdC/0L7RgNGC0YPQstCw0YLQuCAlcyc7CiRsYW5nWydjbG9uZSddID0gJ9CU0YPQsdC70Y7QstCw0YLQuCAlcyc7CiRsYW5nWydleHBvcnRfdGl0bGUnXSA9ICfQldC60YHQv9C+0YDRgtGD0LLQsNGC0LgnOwokbGFuZ1snaW1wb3J0X3RpdGxlJ10gPSAn0IbQvNC/0L7RgNGC0YPQstCw0YLQuCc7CiRsYW5nWydjbG9uZV90aXRsZSddID0gJ9CU0YPQsdC70Y7QstCw0YLQuCc7CiRsYW5nWydhbGlhcyddID0gJ9Cf0YHQtdCy0LTQvtC90ZbQvCc7CiRsYW5nWydhbGlhc19kdXBsaWNhdGUnXSA9ICfQn9GB0LXQstC00L7QvdGW0Lwg0L3QtdC00ZbQudGB0L3QuNC5LiDQmtC+0LbQtdC9INC/0YHQtdCy0LTQvtC90ZbQvCDQvNCw0ZQg0LHRg9GC0Lgg0YPQvdGW0LrQsNC70YzQvdC40LwnOwokbGFuZ1snYWxpYXNfaW52YWxpZCddID0gJ9Cf0YHQtdCy0LTQvtC90ZbQvCDQvdC10LTRltC50YHQvdC40LkuINCS0ZbQvSDQv9C+0LLQuNC90LXQvSDQv9C+0YfQuNC90LDRgtC40YHRjyDQtyDQu9GW0YLQtdGA0Lgg0ZYg0LLQutC70Y7Rh9Cw0YLQuCDQu9C40YjQtSDQu9GW0YLQtdGA0LgsINGG0LjRhNGA0Lgg0YLQsCDQt9C90LDQutC4INC/0ZbQtNC60YDQtdGB0LvQtdC90L3Rjyc7CiRsYW5nWydzZWFyY2gnXSA9ICfQn9C+0YjRg9C6JzsKJGxhbmdbJ3NlYXJjaGZvciddID0gJ9Co0YPQutCw0YLQuCc7CiRsYW5nWydzZWFyY2hyZXN1bHRzZm9yJ10gPSAn0KDQtdC30YPQu9GM0YLQsNGC0Lgg0L/QvtGI0YPQutGDINC00LvRjyc7CiRsYW5nWydmaXJzdHBhZ2UnXSA9ICc8PCc7CiRsYW5nWydwcmV2cGFnZSddID0gJzwnOwokbGFuZ1snbmV4dHBhZ2UnXSA9ICc+JzsKJGxhbmdbJ2xhc3RwYWdlJ10gPSAnPj4nOwokbGFuZ1snbW9kdWxlX25hbWUnXSA9ICfQndCw0LfQstCwINC80L7QtNGD0LvRjyc7CiRsYW5nWydtb2R1bGVfbmFtZV9lbXB0eSddID0gJ9Cd0LUg0LfQsNC/0L7QstC90LXQvdC+INC90LDQt9Cy0YMg0LzQvtC00YPQu9GPJzsKJGxhbmdbJ21vZHVsZV9uYW1lX2ludmFsaWQnXSA9ICfQndCw0LfQstCwINC80L7QtNGD0LvRjyDQvNGW0YHRgtC40YLRjCDQvdC10LTRltC50YHQvdGWINGB0LjQvNCy0L7Qu9C4JzsKJGxhbmdbJ21vZHVsZWNvcGllZCddID0gJ9Cc0L7QtNGD0LvRjCDRg9GB0L/RltGI0L3QviDRgdC60L7Qv9GW0LnQvtCy0LDQvdC+JzsKJGxhbmdbJ3NlbGVjdF9vbmUnXSA9ICfQktC40LHQtdGA0ZbRgtGMINC+0LTQvdC1JzsKJGxhbmdbJ3NpemUnXSA9ICfQoNC+0LfQvNGW0YAnOwokbGFuZ1snbWF4X2xlbmd0aCddID0gJ9Cc0LDQutGB0LjQvNCw0LvRjNC90LAg0LTQvtCy0LbQuNC90LAnOwokbGFuZ1snd3lzaXd5ZyddID0gJ9CS0ZbQt9GD0LDQu9GM0L3QuNC5INGA0LXQtNCw0LrRgtC+0YAnOwokbGFuZ1snZGF0ZV9mb3JtYXQnXSA9ICfQpNC+0YDQvNCw0YIg0LTQsNGC0LgnOwokbGFuZ1sndGltZV9mb3JtYXQnXSA9ICfQpNC+0YDQvNCw0YIg0YfQsNGB0YMnOwokbGFuZ1snZm9ybWF0X3R5cGUnXSA9ICfQpNC+0YDQvNCw0YInOwokbGFuZ1snZGlyJ10gPSAn0KLQtdC60LAnOwokbGFuZ1snYWxsb3dlZCddID0gJ9CU0L7Qt9Cy0L7Qu9C10L3Qvic7CiRsYW5nWydleGNsdWRlX3ByZWZpeCddID0gJ9CS0LjQutC70Y7Rh9C40YLQuCDQv9GA0LXRhNGW0LrRgSc7CiRsYW5nWydpbWFnZSddID0gJ9CX0L7QsdGA0LDQttC10L3QvdGPJzsKJGxhbmdbJ2ZpbGUnXSA9ICfQpNCw0LnQuyc7CiRsYW5nWydyZXF1aXJlZCddID0gJ9Ce0LHQvtCyXCfRj9C30LrQvtCy0LUnOwokbGFuZ1snYXNjZW5kaW5nJ10gPSAn0JfQsCDQt9GA0L7RgdGC0LDQvdC90Y/QvCc7CiRsYW5nWydkZXNjZW5kaW5nJ10gPSAn0JfQsCDRgdC/0LDQtNCw0L3QvdGP0LwnOwokbGFuZ1snZXh0cmEnXSA9ICfQlNC+0LTQsNGC0LrQvtCy0L4nOwokbGFuZ1snY29tYmluZWQnXSA9ICfQmtC+0LzQsdGW0L3QvtCy0LDQvdC+JzsKJGxhbmdbJ3Nob3dfc2Vjb25kcyddID0gJ9Cf0L7QutCw0LfRg9Cy0LDRgtC4INGB0LXQutGD0L3QtNC4JzsKJGxhbmdbJ3ZhbHVlJ10gPSAn0JfQvdCw0YfQtdC90L3Rjyc7CiRsYW5nWyd3aWR0aCddID0gJ9Co0LjRgNC40L3QsCc7CiRsYW5nWydtaW5fdmFsdWUnXSA9ICfQnNGW0L3RltC80LDQu9GM0L3QtSDQt9C90LDRh9C10L3QvdGPJzsKJGxhbmdbJ21heF92YWx1ZSddID0gJ9Cc0LDQutGB0LjQvNCw0LvRjNC90LUg0LfQvdCw0YfQtdC90L3Rjyc7CiRsYW5nWydpbmNyZW1lbnRfYnknXSA9ICfQl9Cx0ZbQu9GM0YjQuNGC0Lgg0L3QsCc7CiRsYW5nWydzdWJ0eXBlJ10gPSAn0J/RltC00YLQuNC/0LgnOwokbGFuZ1snc2hvd2FsbCddID0gJ9Cf0L7QutCw0LfQsNGC0Lgg0LLRgdC1JzsKJGxhbmdbJ2NvbHVtbnMnXSA9ICfQodGC0L7QstC/0YbRlic7CiRsYW5nWydvd25lciddID0gJ9CS0LvQsNGB0L3QuNC6JzsKJGxhbmdbJ3VudGl0bGVkJ10gPSAn0LHQtdC3INC90LDQt9Cy0LgnOwokbGFuZ1snZmlsZW5hbWUnXSA9ICfQndCw0LfQstCwINGE0LDQudC70YMnOwokbGFuZ1snZW5jbG9zdXJlJ10gPSAn0JLQutC70LDQtNC10L3QvdGPJzsKJGxhbmdbJ3NlcGFyYXRvciddID0gJ9Cg0L7Qt9C00ZbQu9GM0L3QuNC6JzsKJGxhbmdbJ3ZhbHVlcyddID0gJ9CX0L3QsNGH0LXQvdC90Y8nOwokbGFuZ1snaW1wb3J0X2FsaWFzJ10gPSAn0J/RgdC10LLQtNC+0L3RltC8INC10LvQtdC80LXQvdGC0LAv0L/QvtC70Y8nOwokbGFuZ1snZmlsZV9hbGlhcyddID0gJ9CX0LDQs9C+0LvQvtCy0L7QuiDRhNCw0LnQu9GDL9C/0YHQtdCy0LTQvtC90ZbQvCc7CiRsYW5nWydlcnJvcl9vcHRpb25yZXF1aXJlZCddID0gJ9Cf0LDRgNCw0LzQtdGC0YAgJXMg0L7QsdC+0LJcJ9GP0LfQutC+0LLQuNC5JzsKJGxhbmdbJ2Vycm9yX2JhZF9leHRlbnNpb24nXSA9ICfQpNCw0LnQuywg0Y/QutC40Lkg0LLQuCDQvdCw0LzQsNCz0LDRlNGC0LXRgdGPINCy0LjQstCw0L3RgtCw0LbQuNGC0LgsINC80LDRlCDQvdC10L/RltC00YXQvtC20LUg0YDQvtC30YjQuNGA0LXQvdC90Y8nOwokbGFuZ1snZXJyb3JfZmlsZV9wZXJtaXNzaW9ucyddID0gJ9CS0LjQvdC40LrQu9CwINC/0YDQvtCx0LvQtdC80LAg0Lcg0L/RgNCw0LLQsNC80Lgg0LTQvtGB0YLRg9C/0YMg0LTQviDRhNCw0LnQu9GW0LInOwokbGFuZ1snZXJyb3JfZmlsZV9lbXB0eSddID0gJ9Ck0LDQudC7INC90LUg0LLQutCw0LfQsNC90L4nOwokbGFuZ1snZXJyb3JfZmlsZV9ub2NzdiddID0gJ9Ck0LDQudC7INC90LUg0ZQg0YTQsNC50LvQvtC8IENTVic7CiRsYW5nWydmaWx0ZXInXSA9ICfQpNGW0LvRjNGC0YAnOwokbGFuZ1snZmlsdGVycHJvbXB0J10gPSAn0KTRltC70YzRgtGA0YPQstCw0YLQuCAlcyc7CiRsYW5nWydwYXJhbV9maWx0ZXJfbWlzc2luZyddID0gJ9Cf0LDRgNCw0LzQtdGC0YAgPGVtPmZpbHRlcjwvZW0+INC/0L7RgtGA0ZbQsdC10L0g0YMg0YDQtdC20LjQvNGWINGE0ZbQu9GM0YLRgNCwIChmaWx0ZXIgbW9kZSkuJzsKJGxhbmdbJ2FsbCddID0gJ9CS0YHRlic7CiRsYW5nWydldmVudGRlc2NfUHJlSXRlbVNhdmUnXSA9ICfQndCw0LTRltGB0LvQsNC90L4g0L/QtdGA0LXQtCDQv9C+0YfQsNGC0LrQvtC8INC/0YDQvtGG0LXRgdGDINC30LHQtdGA0LXQttC10L3QvdGPINC10LvQtdC80LXQvdGC0LAuINCc0L7QttC10YLQtSDQvNCw0L3RltC/0YPQu9GO0LLQsNGC0Lgg0LTQsNC90LjQvNC4INC10LvQtdC80LXQvdGC0LAuJzsKJGxhbmdbJ2V2ZW50ZGVzY19Qb3N0SXRlbVNhdmUnXSA9ICfQndCw0LTRltGB0LvQsNC90L4g0L/RltGB0LvRjyDQt9Cw0LLQtdGA0YjQtdC90L3RjyDQv9GA0L7RhtC10YHRgyDQt9Cx0LXRgNC10LbQtdC90L3RjyDQtdC70LXQvNC10L3RgtCwLiDQnNC+0LbQtdGC0LUg0LzQsNC90ZbQv9GD0LvRjtCy0LDRgtC4INC00LDQvdC40LzQuCDQtdC70LXQvNC10L3RgtCwLic7CiRsYW5nWydldmVudGRlc2NfUHJlSXRlbURlbGV0ZSddID0gJ9Cd0LDQtNGW0YHQu9Cw0L3QviDQv9C10YDQtdC0INC/0L7Rh9Cw0YLQutC+0Lwg0L/RgNC+0YbQtdGB0YMg0LLQuNC00LDQu9C10L3QvdGPINC10LvQtdC80LXQvdGC0LAuINCc0L7QttC10YLQtSDQvNCw0L3RltC/0YPQu9GO0LLQsNGC0Lgg0LTQsNC90LjQvNC4INC10LvQtdC80LXQvdGC0LAuJzsKJGxhbmdbJ2V2ZW50ZGVzY19Qb3N0SXRlbURlbGV0ZSddID0gJ9Cd0LDQtNGW0YHQu9Cw0L3QviDQv9GW0YHQu9GPINC30LDQstC10YDRiNC10L3QvdGPINC/0YDQvtGG0LXRgdGDINCy0LjQtNCw0LvQtdC90L3RjyDQtdC70LXQvNC10L3RgtCwLiDQnNC+0LbQtdGC0LUg0LzQsNC90ZbQv9GD0LvRjtCy0LDRgtC4INC00LDQvdC40LzQuCDQtdC70LXQvNC10L3RgtCwLic7CiRsYW5nWydldmVudGRlc2NfUHJlSXRlbUxvYWQnXSA9ICfQndCw0LTRltGB0LvQsNC90L4g0L/QtdGA0LXQtCDQv9C+0YfQsNGC0LrQvtC8INC30LDQstCw0L3RgtCw0LbQtdC90L3RjyDQtdC70LXQvNC10L3RgtCwLiDQnNC+0LbQtdGC0LUg0LzQsNC90ZbQv9GD0LvRjtCy0LDRgtC4INC00LDQvdC40LzQuCDQtdC70LXQvNC10L3RgtCwLic7CiRsYW5nWydldmVudGRlc2NfUG9zdEl0ZW1Mb2FkJ10gPSAn0J3QsNC00ZbRgdC70LDQvdC+INC/0ZbRgdC70Y8g0LfQsNCy0LXRgNGI0LXQvdC90Y8g0L/RgNC+0YbQtdGB0YMg0LfQsNCy0LDQvdGC0LDQttC10L3QvdGPINC10LvQtdC80LXQvdGC0LAuINCc0L7QttC10YLQtSDQvNCw0L3RltC/0YPQu9GO0LLQsNGC0Lgg0LTQsNC90LjQvNC4INC10LvQtdC80LXQvdGC0LAuJzsKJGxhbmdbJ2V2ZW50ZGVzY19QcmVSZW5kZXJBY3Rpb24nXSA9ICfQndCw0LTRltGB0LvQsNC90L4g0L3QsCDQstC40LrQvtC90LDQvdC90Y8g0LTRltGXLiDQnNC+0LbQtdGC0LUg0LzQsNC90ZbQv9GD0LvRjtCy0LDRgtC4INC00LDQvdC40LzQuCDQt9Cw0L/QuNGC0YMuJzsKJGxhbmdbJ2V2ZW50aGVscF9QcmVJdGVtU2F2ZSddID0gJzxwPtCd0LDQtNGW0YHQu9Cw0L3QviDQv9C10YDQtdC0INC/0L7Rh9Cw0YLQutC+0Lwg0L/RgNC+0YbQtdGB0YMg0LfQsdC10YDQtdC20LXQvdC90Y8g0LXQu9C10LzQtdC90YLQsC4g0JzQvtC20LXRgtC1INC80LDQvdGW0L/Rg9C70Y7QstCw0YLQuCDQtNCw0L3QuNC80Lgg0LXQu9C10LzQtdC90YLQsC48L3A+DQo8aDQ+0J/QsNGA0LDQvNC10YLRgNC4PC9oND4NCjx1bD4NCjxsaT5cJ2l0ZW1fb2JqZWN0XCcgLSDQn9C+0YHQuNC70LDQvdC90Y8g0L3QsCDQvtCxXCfRlNC60YIg0LXQu9C10LzQtdC90YLQsCwg0L3QsNC0INGP0LrQuNC8INCy0LjQutC+0L3QsNC90LAg0LTRltGPLjwvbGk+IA0KPC91bD4nOwokbGFuZ1snZXZlbnRoZWxwX1Bvc3RJdGVtU2F2ZSddID0gJzxwPtCd0LDQtNGW0YHQu9Cw0L3QviDQv9GW0YHQu9GPINC30LDQstC10YDRiNC10L3QvdGPINC/0YDQvtGG0LXRgdGDINC30LHQtdGA0LXQttC10L3QvdGPINC10LvQtdC80LXQvdGC0LAuINCc0L7QttC10YLQtSDQvNCw0L3RltC/0YPQu9GO0LLQsNGC0Lgg0LTQsNC90LjQvNC4INC10LvQtdC80LXQvdGC0LAuPC9wPg0KPGg0PtCf0LDRgNCw0LzQtdGC0YDQuDwvaDQ+DQo8dWw+DQo8bGk+XCdpdGVtX29iamVjdFwnIC0g0J/QvtGB0LjQu9Cw0L3QvdGPINC90LAg0L7QsVwn0ZTQutGCINC10LvQtdC80LXQvdGC0LAsINC90LDQtCDRj9C60LjQvCDQstC40LrQvtC90LDQvdCwINC00ZbRjy48L2xpPiANCjwvdWw+JzsKJGxhbmdbJ2V2ZW50aGVscF9QcmVJdGVtRGVsZXRlJ10gPSAnPHA+0J3QsNC00ZbRgdC70LDQvdC+INC/0LXRgNC10LQg0L/QvtGH0LDRgtC60L7QvCDQv9GA0L7RhtC10YHRgyDQstC40LTQsNC70LXQvdC90Y8g0LXQu9C10LzQtdC90YLQsC4g0JzQvtC20LXRgtC1INC80LDQvdGW0L/Rg9C70Y7QstCw0YLQuCDQtNCw0L3QuNC80Lgg0LXQu9C10LzQtdC90YLQsC48L3A+DQo8aDQ+0J/QsNGA0LDQvNC10YLRgNC4PC9oND4NCjx1bD4NCjxsaT5cJ2l0ZW1fb2JqZWN0XCcgLSDQn9C+0YHQuNC70LDQvdC90Y8g0L3QsCDQvtCxXCfRlNC60YIg0LXQu9C10LzQtdC90YLQsCwg0L3QsNC0INGP0LrQuNC8INCy0LjQutC+0L3QsNC90LAg0LTRltGPLjwvbGk+IA0KPC91bD4nOwokbGFuZ1snZXZlbnRoZWxwX1Bvc3RJdGVtRGVsZXRlJ10gPSAnPHA+0J3QsNC00ZbRgdC70LDQvdC+INC/0ZbRgdC70Y8g0LfQsNCy0LXRgNGI0LXQvdC90Y8g0L/RgNC+0YbQtdGB0YMg0LLQuNC00LDQu9C10L3QvdGPINC10LvQtdC80LXQvdGC0LAuINCc0L7QttC10YLQtSDQvNCw0L3RltC/0YPQu9GO0LLQsNGC0Lgg0LTQsNC90LjQvNC4INC10LvQtdC80LXQvdGC0LAuPC9wPg0KPGg0PtCf0LDRgNCw0LzQtdGC0YDQuDwvaDQ+DQo8dWw+DQo8bGk+XCdpdGVtX29iamVjdFwnIC0g0J/QvtGB0LjQu9Cw0L3QvdGPINC90LAg0L7QsVwn0ZTQutGCINC10LvQtdC80LXQvdGC0LAsINC90LDQtCDRj9C60LjQvCDQstC40LrQvtC90LDQvdCwINC00ZbRjy48L2xpPiANCjwvdWw+JzsKJGxhbmdbJ2V2ZW50aGVscF9QcmVJdGVtTG9hZCddID0gJzxwPtCd0LDQtNGW0YHQu9Cw0L3QviDQv9C10YDQtdC0INC/0L7Rh9Cw0YLQutC+0Lwg0LfQsNCy0LDQvdGC0LDQttC10L3QvdGPINC10LvQtdC80LXQvdGC0LAuINCc0L7QttC10YLQtSDQvNCw0L3RltC/0YPQu9GO0LLQsNGC0Lgg0LTQsNC90LjQvNC4INC10LvQtdC80LXQvdGC0LAuPC9wPg0KPGg0PlBhcmFtZXRlcnM8L2g0Pg0KPHVsPg0KPGxpPlwnaXRlbV9vYmplY3RcJyAtINCf0L7RgdC40LvQsNC90L3RjyDQvdCwINC+0LFcJ9GU0LrRgiDQtdC70LXQvNC10L3RgtCwLCDQvdCw0LQg0Y/QutC40Lwg0LLQuNC60L7QvdCw0L3QsCDQtNGW0Y8uPC9saT4gDQo8L3VsPic7CiRsYW5nWydldmVudGhlbHBfUG9zdEl0ZW1Mb2FkJ10gPSAnPHA+0J3QsNC00ZbRgdC70LDQvdC+INC/0ZbRgdC70Y8g0LfQsNCy0LXRgNGI0LXQvdC90Y8g0L/RgNC+0YbQtdGB0YMg0LfQsNCy0LDQvdGC0LDQttC10L3QvdGPINC10LvQtdC80LXQvdGC0LAuINCc0L7QttC10YLQtSDQvNCw0L3RltC/0YPQu9GO0LLQsNGC0Lgg0LTQsNC90LjQvNC4INC10LvQtdC80LXQvdGC0LAuPC9wPg0KPGg0PtCf0LDRgNCw0LzQtdGC0YDQuDwvaDQ+DQo8dWw+DQo8bGk+XCdpdGVtX29iamVjdFwnIC0g0J/QvtGB0LjQu9Cw0L3QvdGPINC90LAg0L7QsVwn0ZTQutGCINC10LvQtdC80LXQvdGC0LAsINC90LDQtCDRj9C60LjQvCDQstC40LrQvtC90LDQvdCwINC00ZbRjy48L2xpPiANCjwvdWw+JzsKJGxhbmdbJ2V2ZW50aGVscF9QcmVSZW5kZXJBY3Rpb24nXSA9ICc8cD7QndCw0LTRltGB0LvQsNC90L4g0L3QsCDQstC40LrQvtC90LDQvdC90Y8g0LTRltGXLiDQnNC+0LbQtdGC0LUg0LzQsNC90ZbQv9GD0LvRjtCy0LDRgtC4INC00LDQvdC40LzQuCDQt9Cw0L/QuNGC0YMuPC9wPg0KPGg0PtCf0LDRgNCw0LzQtdGC0YDQuDwvaDQ+DQo8dWw+DQo8bGk+XCdhY3Rpb25fbmFtZVwnIC0g0J3QsNC30LLQsCDQstC40LrQvtC90LDQvdC+0Zcg0LTRltGXLjwvbGk+DQo8bGk+XCdxdWVyeV9vYmplY3RcJyAtINCf0L7RgdC40LvQsNC90L3RjyDQvdCwINC+0LFcJ9GU0LrRgiDQt9Cw0L/QuNGC0YMsINC90LDQtCDRj9C60LjQvCDQstC40LrQvtC90LDQvdCwINC00ZbRjy48L2xpPiANCjwvdWw+JzsKJGxhbmdbJ21vZGRlc2NyaXB0aW9uJ10gPSAnTElTRSDQtNC+0LfQstC+0LvRj9GUINGB0YLQstC+0YDRjtCy0LDRgtC4INGB0L/QuNGB0LrQuCwg0Y/QutGWINCy0Lgg0LzQvtC20LXRgtC1INCy0ZbQtNC+0LHRgNCw0LbQsNGC0Lgg0L3QsCDRgdCy0L7RlNC80YMg0LLQtdCxLdGB0LDQudGC0ZYuJzsKJGxhbmdbJ3Bvc3RpbnN0YWxsJ10gPSAn0YPRgdC/0ZbRiNC90L4g0LLRgdGC0LDQvdC+0LLQu9C10L3Qvic7CiRsYW5nWydwb3N0dW5pbnN0YWxsJ10gPSAn0YPRgdC/0ZbRiNC90L4g0LTQtdGW0L3RgdGC0LDQu9GM0L7QstCw0L3Qvic7CiRsYW5nWydnZW5lcmFsJ10gPSAn0JfQsNCz0LDQu9GM0L3QsCc7CiRsYW5nWyd1c2FnZSddID0gJ9CS0LjQutC+0YDQuNGB0YLQsNC90L3Rjyc7CiRsYW5nWydwZXJtaXNzaW9ucyddID0gJ9CU0L7Qt9Cy0L7Qu9C4JzsKJGxhbmdbJ2R1cGxpY2F0aW5nJ10gPSAn0KHRgtCy0L7RgNC10L3QvdGPINC10LrQt9C10LzQv9C70Y/RgNGW0LInOwokbGFuZ1sndXBncmFkaW5nJ10gPSAn0J7QvdC+0LLQu9C10L3QvdGPINCy0LXRgNGB0ZbRlyc7CiRsYW5nWydpbXBvcnRpbmcnXSA9ICfQhtC80L/QvtGA0YIg0Lcg0LXQutC30LXQvNC/0LvRj9GA0ZbQsiBMaXN0SXRFeHRlbmRlZCc7CiRsYW5nWydzbWFydHlfcGx1Z2lucyddID0gJ9Cf0LvQsNKR0ZbQvdC4IFNtYXJ0eSc7CiRsYW5nWyd1cGdyYWRlX2Zyb20nXSA9ICfQntC90L7QstC70LXQvdC90Y8g0LcnOwokbGFuZ1snaW1wb3J0aW5nX2Zyb21fbGkyJ10gPSAn0IbQvNC/0L7RgNGCINC3INC10LrQt9C10LzQv9C70Y/RgNGW0LIgTGlzdEl0Mic7CiRsYW5nWyd0ZWFtJ10gPSAn0JrQvtC80LDQvdC00LAnOwokbGFuZ1snaGVscF9nZW5lcmFsJ10gPSAnPGgzPtCX0LDQs9Cw0LvRjNC90LAg0ZbQvdGE0L7RgNC80LDRhtGW0Y88L2gzPg0KICAgIDxwPtCv0LrRidC+INGB0YLQuNGB0LvQviwgTElTRSDQtNC+0LfQstC+0LvRj9GUINGB0YLQstC+0YDRjtCy0LDRgtC4INGB0L/QuNGB0LrQuCwg0Y/QutGWINCy0Lgg0LzQvtC20LXRgtC1INC/0L7QutCw0LfRg9Cy0LDRgtC4INC90LAg0YHQstC+0ZTQvNGDINCy0LXQsS3RgdCw0LnRgtGWLiDQktC4INC80L7QttC10YLQtSDQv9GA0L7RgdGC0L4g0LfRgNC+0LHQuNGC0Lgg0KfQsNCf0Lgg0LDQsdC+INGE0YPQvdC60YbRltGOICLQktGW0LTQs9GD0LrQuCIg0Lcg0YbQuNC8INC80L7QtNGD0LvQtdC8LiDQktC10LEt0YDQvtC30YDQvtCx0L3QuNC6INC80L7QttC1INCy0LjQt9C90LDRh9Cw0YLQuCDQv9C+0LvRjywg0YnQvtCxINC+0LHQvNC10LbQuNGC0Lgg0LTQsNC90ZYsINGP0LrRliDQvNC+0LbQtSDQstCy0LXRgdGC0Lgg0LrQu9GW0ZTQvdGCLiDQnNC+0LbQvdCwINCy0LrQsNC30LDRgtC4INGA0Y/QtCDRgtC40L/RltCyINC/0L7Qu9GW0LIgLSDQv9C+0LvQtSDQtNC70Y8g0YLQtdC60YHRgtGDLCDQv9GA0LDQv9C+0YDQtdGG0YwsINC+0LHQu9Cw0YHRgtGMINGC0LXQutGB0YLRgywg0LLQuNCx0ZbRgCDQtNCw0YLQuCwg0LfQsNCy0LDQvdGC0LDQttC40YLQuCDRhNCw0LnQuywg0LLQuNCx0YDQsNGC0Lgg0YTQsNC50LssINCy0LjQv9Cw0LTQsNGO0YfQuNC5INGB0L/QuNGB0L7QuiAtINGWINC80L7QttC90LAg0LLRgdGC0LDQvdC+0LLQuNGC0Lgg0LTQvtC00LDRgtC60L7QstGWINGW0L3RgdGC0YDRg9C60YbRltGXINC00LvRjyDQutC+0LbQvdC+0LPQviDRgtC40L/Rgywg0L3QsNC/0YDQuNC60LvQsNC0LCDRgNC+0LfQvNGW0YAg0L/QvtC70Y8g0LLQstC10LTQtdC90L3Rjywg0LzQsNC60YHQuNC80LDQu9GM0L3QsCDQtNC+0LLQttC40L3QsCwg0LLRltC30YPQsNC70YzQvdC40Lkg0YDQtdC00LDQutGC0L7RgCwg0LzQvtC20LvQuNCy0ZYg0LLQuNC/0LDQtNCw0Y7Rh9GWINC30L3QsNGH0LXQvdC90Y8sINC80L7QttC70LjQstGWINGA0L7Qt9GI0LjRgNC10L3QvdGPINGE0LDQudC70ZbQsiwg0YjQu9GP0YXQuCDQtNC+INGC0LXQuiDQtNC70Y8g0LLQuNCx0L7RgNGDINGE0LDQudC70ZbQsiwg0YTQvtGA0LzQsNGC0Lgg0LTQsNGC0Lgg0YLQsCDRltC9LjwvcD4NCiAgICA8cD7QktCw0LbQu9C40LLQtSDQv9C+0L/QtdGA0LXQtNC20LXQvdC90Y8gLSDQptC1INC90LUg0LzQvtC00YPQu9GMINC00LvRjyDQutC+0L3RgdGC0YDRg9C60YLQvtGA0LAg0LrQvtC90YLQtdC90YLRgywg0Y/QuiDRgyBEcnVwYWwuINCS0ZbQvSDQv9GA0LjQt9C90LDRh9C10L3QuNC5INC00LvRjyDQvdC10LLQtdC70LjQutC40YUg0YHQv9C40YHQutGW0LIsINCwINC90LUg0LTQu9GPINC30LHQtdGA0ZbQs9Cw0L3QvdGPINGC0LjRgdGP0Ycg0LfQsNC/0LjRgdGW0LIuINCm0LUg0L/QvtCyXCfRj9C30LDQvdC+INC3INCy0LjQutC+0YDQuNGB0YLQsNC90L3Rj9C8INC80L7QtNC10LvRliDQsdCw0LfQuCDQtNCw0L3QuNGFIChFQVYpLiDQmtGA0ZbQvCDRgtC+0LPQviwg0LrQvtC20L3QsCDRh9Cw0YHRgtC40L3QsCDQtNCw0L3QuNGFLCDRj9C60YMg0LLQuCDQstCy0L7QtNC40YLQtSwg0LfQsdC10YDRltCz0LDRlNGC0YzRgdGPINGP0Log0YLQuNC/INC00LDQvdC40YUgVEVYVCwg0L3QtdC30LDQu9C10LbQvdC+INCy0ZbQtCDRgtC+0LPQviwg0YfQuCDRhtC1IHZhcmNoYXIsIGJvb2xlYW4sIHRpbWVzdGFtcCwg0YLQvtGJ0L4uPC9wPg0KICAgIDxkaXYgY2xhc3M9InJlZCI+0JLQuCDQvNC+0LbQtdGC0LUg0ZbQvNC/0L7RgNGC0YPQstCw0YLQuCDQtdC60LfQtdC80L/Qu9GP0YDQuCDQtyBMaXN0SXRFeHRlbmRlZC4g0K/QutGJ0L4g0LLRltC9INGDINCy0LDRgSDQstGB0YLQsNC90L7QstC70LXQvdC40LksINCy0Lgg0L/QvtCx0LDRh9C40YLQtSDQstC60LvQsNC00LrRgywgPHN0cm9uZz7QhtC80L/QvtGA0YIg0Lcg0LXQutC30LXQvNC/0LvRj9GA0ZbQsiBMaXN0SXRFeHRlbmRlZDwvc3Ryb25nPiwg0Lcg0LTQvtC00LDRgtC60L7QstC+0Y4g0ZbQvdGE0L7RgNC80LDRhtGW0ZTRji4uLjwvZGl2Pic7CiRsYW5nWydoZWxwX3VzYWdlJ10gPSAnPGgzPtCS0LjQutC+0YDQuNGB0YLQsNC90L3RjzwvaDM+DQogICAgDQogICAgPHA+0JLQuCDQvNC+0LbQtdGC0LUg0L3QsNC70LDRiNGC0YPQstCw0YLQuCB7JG1vZHVsZV9uYW1lfSDRgtGD0YI6INCS0LzRltGB0YIgwrsgeyRtb2R1bGVfbmFtZX08L3A+DQogICAgPHA+0J/QvtC80ZbRgdGC0ZbRgtGMINGG0LXQuSDRgtC10pEg0L3QsCDRgdCy0L7RjiDRgdGC0L7RgNGW0L3QutGDOiB7eyRtb2R1bGVfbmFtZX19PC9wPjxiciAvPic7CiRsYW5nWydoZWxwX3VzYWdlX29wdGlvbnMnXSA9ICfQn9GW0YHQu9GPINCy0YHRgtCw0L3QvtCy0LvQtdC90L3RjyDQvNC+0LTRg9C70Y8sINC90LDRgdGC0YPQv9C90LUsINGJ0L4g0L/QvtGC0YDRltCx0L3QviDQt9GA0L7QsdC40YLQuCwgLSDQstGB0YLQsNC90L7QstC40YLQuCDQv9Cw0YDQsNC80LXRgtGA0LguDQrCoMKgwqDCoCA8b2w+DQrCoMKgwqDCoMKgwqDCoMKgIDxsaT7QqdC+0LEg0LfQvNGW0L3QuNGC0Lgg0L3QsNC30LLRgyDQvNC+0LTRg9C70Y8g0LIg0LzQtdC90Y4sINC30LzRltC90ZbRgtGMINC90LDQt9Cy0YMgItCT0LDRgNC90LUg0ZbQvFwn0Y8g0LzQvtC00YPQu9GPIi48L2xpPg0KwqDCoMKgwqDCoMKgwqDCoCA8bGk+0KnQvtCxINC30LzRltC90LjRgtC4INC90LDQt9Cy0YMg0LLQutC70LDQtNC60Lgg0Lcg0LXQu9C10LzQtdC90YLQsNC80LgsINC30LzRltC90ZbRgtGMINC/0LDRgNCw0LzQtdGC0YAgItCV0LvQtdC80LXQvdGCINCyINC80L3QvtC20LjQvdGWIi48L2xpPg0KwqDCoMKgwqAgPC9vbD4nOwokbGFuZ1snaGVscF91c2FnZV9maWVsZGRlZnMnXSA9ICfQlNCw0LvRliAtINCy0YHRgtCw0L3QvtCy0LjRgtC4INGC0LjQv9C4INC/0L7Qu9GW0LIuIA0KwqDCoMKgwqAgPG9sPg0KwqDCoMKgwqDCoMKgwqDCoCA8bGk+INCS0LjQsdC10YDRltGC0YwgItCf0L7Qu9C1INC00LvRjyDRgtC10LrRgdGC0YMiLCAi0J/RgNCw0L/QvtGA0LXRhtGMIiwgItCi0LXQutGB0YLQvtCy0LAg0L7QsdC70LDRgdGC0YwiLCAi0JLQuNCx0YDQsNGC0Lgg0LTQsNGC0YMiLCAi0JLQuNCx0YDQsNGC0Lgg0YTQsNC50LsiLCAi0KHRgtC+0YDRltC90LrQuCIgJiAi0JLQuNC/0LDQtNCw0Y7Rh9C40Lkg0YHQv9C40YHQvtC6Ii4gPC9saT4NCsKgwqDCoMKgwqDCoMKgwqAgPGxpPiDQlNC70Y8g0LrQvtC20L3QvtCz0L4g0L/QvtC70Y8g0LLQuCDQvNC+0LbQtdGC0LUg0LLQutCw0LfQsNGC0Lgg0LDQsdC+INCy0LjQsdGA0LDRgtC4INC00L7QtNCw0YLQutC+0LLRliDQv9Cw0YDQsNC80LXRgtGA0LggPGJyIC8+INC3INC00L7RgdGC0YPQv9C90LjRhSDQvtC/0YbRltC5LCDRj9C60ZYg0LfQsNC70LXQttCw0YLRjCDQstGW0LQg0YLQuNC/0YMg0L/QvtC70Y8uIDwvbGk+DQrCoMKgwqDCoMKgwqDCoMKgIDxsaT4g0JrQvtC20LXQvSDQtdC70LXQvNC10L3RgiDRgyDQutC+0LbQvdC+0LzRgyDRgdC/0LjRgdC60YMg0LzQsNGUINGC0YDQuCDQv9C+0LvRjyDQt9CwINC30LDQvNC+0LLRh9GD0LLQsNC90L3Rj9C8LiA8YnIgLz4g0JLRgdGWINC/0L7Qu9GPLCDQstC40LfQvdCw0YfQtdC90ZYg0YLRg9GCLCDRlCDQtNC+0LTQsNGC0LrQvtCy0LjQvNC4LiA8L2xpPg0KwqDCoMKgwqAgPC9vbD4nOwokbGFuZ1snaGVscF91c2FnZV9jYXRlZ29yaWVzJ10gPSAn0KnQvtCxINC80LDRgtC4INC80L7QttC70LjQstGW0YHRgtGMINCy0LjQutC+0YDQuNGB0YLQvtCy0YPQstCw0YLQuCDQutCw0YLQtdCz0L7RgNGW0Zcg0Lcg0LLQsNGI0LjQvCDQtdC60LfQtdC80L/Qu9GP0YDQvtC8IExJU0UsINCy0LDQvCDQtNC+0LLQtdC00LXRgtGM0YHRjyDRgdGC0LLQvtGA0LjRgtC4INC/0L7Qu9C1INGC0LjQv9GDICLQmtCw0YLQtdCz0L7RgNGW0Y8iLiA8YnIgLz4g0J/RltGB0LvRjyDRgdGC0LLQvtGA0LXQvdC90Y8g0YbRjNCz0L4g0L/QvtC70Y8g0L3QvtCy0LAg0LLQutC70LDQtNC60LAg0Lcg0L3QsNC30LLQvtGOICLQmtCw0YLQtdCz0L7RgNGW0ZciINGB0YLQsNC90LUg0LTQvtGB0YLRg9C/0L3QvtGOINGDINCy0LDRiNC+0LzRgyDQvNC+0LTRg9C70ZYgTElTRS48YnIvPg0KCSDQotC10L/QtdGAINCy0Lgg0LzQvtC20LXRgtC1INC00L7QtNCw0LLQsNGC0Lgg0LrQsNGC0LXQs9C+0YDRltGXLic7CiRsYW5nWydoZWxwX3VzYWdlX2l0ZW1zJ10gPSAn0KLQtdC/0LXRgCDQv9C10YDQtdC50LTQtdC80L4g0LTQviDRgdCw0LzQvtCz0L4g0YHQv9C40YHQutGDINC10LvQtdC80LXQvdGC0ZbQsi4g0KMg0YbRjNC+0LzRgyDQv9GA0LjQutC70LDQtNGWINCy0ZbQvSDQvdCw0LfQuNCy0LDRlNGC0YzRgdGPIkFkZCBCb3giLCDQudC+0LPQviDQv9C10YDQtdC50LzQtdC90L7QstCw0L3QviDRgyDQstC60LvQsNC00YbRliAi0J/QsNGA0LDQvNC10YLRgNC4Ii4NCsKgwqDCoMKgIDxvbD4NCsKgwqDCoMKgwqDCoMKgwqAgPGxpPiDQn9C10YDRiNC1INC/0L7Qu9C1INGUINC/0L7Qu9C10Lwg0LfQsCDQt9Cw0LzQvtCy0YfRg9Cy0LDQvdC90Y/QvCAi0JfQsNCz0L7Qu9C+0LLQvtC6Ii4gPC9saT4NCsKgwqDCoMKgwqDCoMKgwqAgPGxpPiDQktC40L/QsNC00LDRjtGH0LjQuSDRgdC/0LjRgdC+0LogItCa0LDRgtC10LPQvtGA0ZbRjyIg0YLQsNC60L7QtiDRlCDQv9C+0LvQtdC8INC30LAg0LfQsNC80L7QstGH0YPQstCw0L3QvdGP0LwsINGWINGP0LrRidC+INC50L7Qs9C+INC90LUg0LfQvNGW0L3RjtCy0LDRgtC4LCDQsdGD0LTQtSDQstGB0YLQsNC90L7QstC70LXQvdC+ICLQl9Cw0LPQsNC70YzQvdCwIi48L2xpPg0KwqDCoMKgwqDCoMKgwqDCoCA8bGk+INCi0YDQtdGC0ZbQvCDQv9C+0LvQtdC8INC30LAg0LfQsNC80L7QstGH0YPQstCw0L3QvdGP0Lwg0ZQg0L/RgNCw0L/QvtGA0LXRhtGMICLQkNC60YLQuNCy0L3QuNC5Ii4g0KbQtSDQtNC+0LfQstC+0LvRj9GUINC/0LXRgNC10LzQuNC60LDRgtC4INGB0YLQsNGC0YPRgSDQtdC70LXQvNC10L3RgtCwINGDINGB0L/QuNGB0LrRgywg0L3QtSDQstC40LTQsNC70Y/RjtGH0Lgg0LnQvtCz0L4uPC9saT4NCsKgwqDCoMKgIDwvIG9sPic7CiRsYW5nWydoZWxwX3Blcm1pc3Npb25zJ10gPSAnPGgzPtCU0L7Qt9Cy0L7Qu9C4PC9oMz4gDQrCoMKgwqDCoCA8cD4g0JLQuCDQvNC+0LbQtdGC0LUg0LLQutCw0LfQsNGC0Lgg0L3QsNGB0YLRg9C/0L3RliDQtNC+0LfQstC+0LvQuCDQsiDRgNC+0LfQtNGW0LvRliDQmtC+0YDQuNGB0YLRg9Cy0LDRh9GWICYg0JPRgNGD0L/QuCDihpIg0JTQvtC30LLQvtC70Lgg0LPRgNGD0L/QuDwvcD4NCsKgwqDCoMKgIDx1bD4NCsKgwqDCoMKgwqDCoMKgwqA8bGk+eyRtb2R1bGVfbmFtZX06IE1vZGlmeSBJdGVtczwvbGk+DQogICAgICAgIDxsaT57JG1vZHVsZV9uYW1lfTogTW9kaWZ5IGFsbCBpdGVtczwvbGk+DQogICAgICAgIDxsaT57JG1vZHVsZV9uYW1lfTogUmVtb3ZlIGl0ZW1zPC9saT4NCiAgICAgICAgPGxpPnskbW9kdWxlX25hbWV9OiBBcHByb3ZlIGl0ZW1zPC9saT4NCiAgICAgICAgPGxpPnskbW9kdWxlX25hbWV9OiBNb2RpZnkgQ2F0ZWdvcmllczwvbGk+DQogICAgICAgIDxsaT57JG1vZHVsZV9uYW1lfTogTW9kaWZ5IE9wdGlvbnM8L2xpPg0KICAgIDwvdWw+DQrCoMKgwqDCoCA8cD4g0KnQvtCxINC00L7Qt9Cy0L7Qu9C40YLQuCDQutC+0YDQuNGB0YLRg9Cy0LDRh9Cw0LwsINGP0LrRliDQvdC1INGUINCw0LTQvNGW0L3RltGB0YLRgNCw0YLQvtGA0LDQvNC4LCDQt9Cw0LLQsNC90YLQsNC20YPQstCw0YLQuCDRhNCw0LnQu9C4LCDQv9C10YDQtdC50LTRltGC0Ywg0LTQviDQoNC+0LfRiNC40YDQtdC90L3RjyA+IEdCRmlsZVBpY2tlciDRliDQv9C+0YHRgtCw0LLRgtC1INC/0YDQsNC/0L7RgNC10YbRjCDQv9C+0YDRg9GHINGW0Lcg0L/Rg9C90LrRgtC+0LwgIlNob3cgZmlsZW1hbmFnZW1lbnQgb3B0aW9ucyIuIDwvcD4nOwokbGFuZ1snaGVscF9maWVsZGRlZnMnXSA9ICc8aDM+0KLQuNC/0Lgg0L/QvtC70ZbQsjwvaDM+DQogICAgPHA+0J/QtdGA0YjQtSwg0YnQviDQv9C+0YLRgNGW0LHQvdC+INC90LDQu9Cw0YjRgtGD0LLQsNGC0LgsIC0g0YbQtSDQstCw0YjRliDRgtC40L/QuCDQv9C+0LvRltCyLjwvcD4NCiAgICA8cD7QlNC70Y8g0LrQvtC20L3QvtCz0L4g0L/QvtC70Y8g0LLQuCDQvNC+0LbQtdGC0LUg0LLQutCw0LfQsNGC0Lgg0LTQvtC00LDRgtC60L7QstGWINC/0LDRgNCw0LzQtdGC0YDQuCwg0LLQuNCx0YDQsNCy0YjQuCDQtyDQtNC+0YHRgtGD0L/QvdC40YUg0L7Qv9GG0ZbQuS48L3A+DQogICAgDQogICAgPGgzPtCi0LjQv9C4INC/0L7Qu9GW0LIg0LfQsCDQt9Cw0LzQvtCy0YfRg9Cy0LDQvdC90Y/QvDwvaDM+DQogICAgPHVsPg0KICAgICAgPGxpPkJhY2tlbmRUZXh0IC0gPHN0cm9uZz7QotC10LrRgdGCINCyINCw0LTQvNGW0L0uINC/0LDQvdC10LvRljwvc3Ryb25nPjs8L2xpPg0KICAgICAgPGxpPkNhdGVnb3JpZXMgLSA8c3Ryb25nPtCa0LDRgtC10LPQvtGA0ZbRlzwvc3Ryb25nPjs8L2xpPg0KICAgICAgPGxpPkNoZWNrYm94IC0gPHN0cm9uZz7Qn9GA0LDQv9C+0YDQtdGG0Yw8L3N0cm9uZz47PC9saT4NCiAgICAgIDxsaT5DaGVja2JveEdyb3VwIC0gPHN0cm9uZz7Qk9GA0YPQv9CwINC/0YDQsNC/0L7RgNGG0ZbQsjwvc3Ryb25nPjs8L2xpPg0KICAgICAgPGxpPkNvbG9yUGlja2VyIC0gPHN0cm9uZz7Qn9C+0LvQtSDQstC40LHQvtGA0YMg0LrQvtC70YzQvtGA0YM8L3N0cm9uZz47PC9saT4NCiAgICAgIDxsaT5Db250ZW50UGFnZXMgLSA8c3Ryb25nPtCh0YLQvtGA0ZbQvdC60Lg8L3N0cm9uZz47PC9saT4NCiAgICAgIDxsaT5Db3JlRmlsZVBpY2tlciAtIDxzdHJvbmc+0J/QvtC70LUg0LLQuNCx0L7RgNGDINGE0LDQudC70YMgKDEpIDxzcGFuIHN0eWxlPSJjb2xvcjpncmVlbiI+KG5ldyk8L3NwYW4+PC9zdHJvbmc+OzwvbGk+DQogICAgICA8bGk+Q3VzdG9tRnJvbVVEVCAtIDxzdHJvbmc+0JTQvtC00LDRgtC60L7QstC1INC/0L7Qu9C1INC3INGC0LXSkdGDINC60L7RgNC40YHRgtGD0LLQsNGH0LAgKFVEVCk8L3N0cm9uZz47PC9saT4NCiAgICAgIDxsaT5Ecm9wZG93biAtIDxzdHJvbmc+0JLQuNC/0LDQtNCw0Y7Rh9C40Lkg0YHQv9C40YHQvtC6PC9zdHJvbmc+OzwvbGk+DQogICAgICA8bGk+RkVVRHJvcGRvd24gLSA8c3Ryb25nPtCS0LjQv9Cw0LTQsNGO0YfQuNC5INGB0L/QuNGB0L7QuiBGcm9udEVuZFVzZXJzICgyKSg2KSA8c3BhbiBzdHlsZT0iY29sb3I6b3JhbmdlIj4o0LfQsNGB0YLQsNGA0ZbQu9C40LkpPC9zcGFuPjwvc3Ryb25nPjs8L2xpPg0KICAgICAgPGxpPkZFVU11bHRpU2VsZWN0IC0gPHN0cm9uZz7Qn9C+0LvQtSDQvNGD0LvRjNGC0Lgt0LLQuNCx0L7RgNGDIEZFVSAoMik8L3N0cm9uZz47PC9saT4NCiAgICAgIDxsaT5GRVVTaW5nbGVTZWxlY3QgLSA8c3Ryb25nPtCf0L7Qu9C1INCy0LjQsdC+0YDRgyDQvtC00L3QvtCz0L4gRkVVICgyKTwvc3Ryb25nPjs8L2xpPg0KICAgICAgPGxpPkZpbGVVcGxvYWQgLSA8c3Ryb25nPtCf0L7Qu9C1INCy0LjQstCw0L3RgtCw0LbQtdC90L3RjyDRhNCw0LnQu9GDPC9zdHJvbmc+OzwvbGk+DQogICAgICA8bGk+R2FsbGVyeURyb3Bkb3duIC0gPHN0cm9uZz7QktC40L/QsNC00LDRjtGH0LjQuSDRgdC/0LjRgdC+0Log0LTQu9GPINCy0LjQsdC+0YDRgyDQs9Cw0LvQtdGA0LXRlyAoMyk8L3N0cm9uZz47PC9saT4NCiAgICAgIDxsaT5HQkZpbGVQaWNrZXIgLSA8c3Ryb25nPtCf0L7Qu9C1INCy0LjQstCw0L3RgtCw0LbQtdC90L3RjyDRhNCw0LnQu9GDIEdCRmlsZVBpY2tlciAoNCkoNikgPHNwYW4gc3R5bGU9ImNvbG9yOm9yYW5nZSI+KNC30LDRgdGC0LDRgNGW0LvQuNC5KTwvc3Bhbj48L3N0cm9uZz47PC9saT4NCiAgICAgIDxsaT5KTUZpbGVQaWNrZXIgLSA8c3Ryb25nPtCf0L7Qu9C1INCy0LjQstCw0L3RgtCw0LbQtdC90L3RjyDRhNCw0LnQu9GDSk1GaWxlUGlja2VyICg1KTwvc3Ryb25nPjs8L2xpPg0KICAgICAgPGxpPkpRdWVyeU11bHRpU2VsZWN0IC0gPHN0cm9uZz7Qn9C+0LvQtSDQvNGD0LvRjNGC0Lgt0LLQuNCx0L7RgNGDIEpRdWVyeTwvc3Ryb25nPjs8L2xpPg0KICAgICAgPGxpPkxJU0VJbnN0YW5jZSAtIDxzdHJvbmc+0JXQutC30LXQvNC/0LvRj9GAINC80L7QtNGD0LvRjyBMSVNFPC9zdHJvbmc+OzwvbGk+DQogICAgICA8bGk+TElTRUluc3RhbmNlSXRlbSAtIDxzdHJvbmc+0JXQu9C10LzQtdC90YIg0LXQutC30LXQvNC/0LvRj9GA0YMg0LzQvtC00YPQu9GPIExJU0U8L3N0cm9uZz47PC9saT4NCiAgICAgIDxsaT5NdWx0aVNlbGVjdCAtIDxzdHJvbmc+0J/QvtC70LUg0LzRg9C70YzRgtC4LdCy0LjQsdC+0YDRgzwvc3Ryb25nPjs8L2xpPg0KICAgICAgPGxpPlJhZGlvR3JvdXAgLSA8c3Ryb25nPtCT0YDRg9C/0LAg0YDQsNC00ZbQvi3QutC90L7Qv9C+0Lo8L3N0cm9uZz47PC9saT4NCiAgICAgIDxsaT5TZWxlY3REYXRlVGltZSAtIDxzdHJvbmc+0JLQuNCx0YDQsNGC0Lgg0LTQsNGC0YMg0YLQsCDRh9Cw0YE8L3N0cm9uZz47PC9saT4NCiAgICAgIDxsaT5TZWxlY3RGaWxlIC0gPHN0cm9uZz7QktC40LHRgNCw0YLQuCDRhNCw0LnQuzwvc3Ryb25nPjs8L2xpPg0KICAgICAgPGxpPlNsaWRlciAtIDxzdHJvbmc+0J/QvtCy0LfRg9C90L7Qujwvc3Ryb25nPjs8L2xpPg0KICAgICAgPGxpPlRhYnMgLSA8c3Ryb25nPtCS0LrQu9Cw0LTQutC4PC9zdHJvbmc+OzwvbGk+DQogICAgICA8bGk+VGFncyAtIDxzdHJvbmc+0KLQtdKR0Lg8L3N0cm9uZz47PC9saT4NCiAgICAgIDxsaT5UZXh0QXJlYSAtIDxzdHJvbmc+0KLQtdC60YHRgtC+0LLQsCDQvtCx0LvQsNGB0YLRjDwvc3Ryb25nPjs8L2xpPg0KICAgICAgPGxpPlRleHRJbnB1dCAtIDxzdHJvbmc+0J/QvtC70LUg0LTQu9GPINGC0LXQutGB0YLRgzwvc3Ryb25nPjs8L2xpPg0KICAgIDwvdWw+DQogICAgPGRpdiBjbGFzcz0iaW5mb3JtYXRpb24iPjxzdHJvbmc+0J/RgNC40LzRltGC0LrQsDog0YbQtdC5INGB0L/QuNGB0L7QuiDQvdC1INCy0LrQu9GO0YfQsNGUINC00L7QtNCw0YLQutC+0LLRliDQv9C+0LvRjywg0Y/QutGWINC80L7QttGD0YLRjCDQsdGD0YLQuCDQt9Cw0YDQtdGU0YHRgtGA0L7QstCw0L3RliDQt9C+0LLQvdGW0YjQvdGW0LzQuCDQvNC+0LTRg9C70Y/QvNC4Ljwvc3Ryb25nPjwvZGl2Pg0KICAgIDxkaXYgY2xhc3M9ImluZm9ybWF0aW9uIj48c3Ryb25nPtCf0YDQuNC80ZbRgtC60LA6INC/0ZbRgdC70Y8g0L7QvdC+0LLQu9C10L3QvdGPIExJU0Ug0LDQsdC+INCy0YHRgtCw0L3QvtCy0LvQtdC90L3RjyDQvNC+0LTRg9C70Y8sINGP0LrQuNC5INC80ZbQsyDQsdC4INC30LDRgNC10ZTRgdGC0YDRg9Cy0LDRgtC4INC00L7QtNCw0YLQutC+0LLRliDQv9C+0LvRjywg0L/QtdGA0LXRgdC60LDQvdGD0LnRgtC1INC/0L7Qu9GPINC00LvRjyDRl9GFINC/0L7Rj9Cy0Lgg0LIg0YHQv9C40YHQutGDINC00L7RgdGC0YPQv9C90LjRhSDRgtC40L/RltCyINC/0L7Qu9GW0LIuPC9zdHJvbmc+PC9kaXY+DQogICAgPHA+KDEpINCc0LDRlCDQt9Cw0LvQtdC20L3QvtGB0YLRljogPHN0cm9uZz5GaWxlIFBpY2tlciAoY29yZSk8L3N0cm9uZz47PC9wPg0KICAgIDxwPigyKSDQnNCw0ZQg0LfQsNC70LXQttC90L7RgdGC0ZY6IDxzdHJvbmc+RnJvbnRFbmRVc2Vyczwvc3Ryb25nPiDRliA8c3Ryb25nPkNHRXh0ZW5zaW9uczwvc3Ryb25nPjs8L3A+DQogICAgPHA+KDMpINCc0LDRlCDQt9Cw0LvQtdC20L3QvtGB0YLRljogPHN0cm9uZz5HYWxsZXJ5PC9zdHJvbmc+OzwvcD4NCiAgICA8cD4oNCkg0JzQsNGUINC30LDQu9C10LbQvdC+0YHRgtGWOiA8c3Ryb25nPkdCRmlsZVBpY2tlcjwvc3Ryb25nPi4gPGVtPtCf0YDQuNC80ZbRgtC60LA6INCf0YDQsNGG0Y7RlCDQu9C40YjQtSDQtyBDTVNNUyAxLnggPC9lbT47PC9wPg0KICAgIDxwPig1KSDQnNCw0ZQg0LfQsNC70LXQttC90L7RgdGC0ZY6IDxzdHJvbmc+Sk1GaWxlUGlja2VyPC9zdHJvbmc+LjwvcD4NCiAgICA8cD4oNikg0JfQsNGB0YLQsNGA0ZbQu9C40Lk6IDxzdHJvbmc+0LHRg9C00LUg0LLQuNC00LDQu9C10L3QviDQsiDQvdCw0LnQsdC70LjQttGH0L7QvNGDINC80LDQudCx0YPRgtC90YzQvtC80YMsINCy0LjQutC+0YDQuNGB0YLQvtCy0YPQudGC0LUg0LfQsNC80ZbQvdC90LjQutC4INGP0LrQvtC80L7Qs9CwINGI0LLQuNC00YjQtTwvc3Ryb25nPi48L3A+JzsKJGxhbmdbJ2hlbHBfaW1wb3J0aW5nX2Zyb21fbGkyJ10gPSAnPGRpdiBjbGFzcz0icmVkIj4NCiAgICAgIDx1bD4NCiAgICAgICAgPGxpPg0KICAgICAgICAgINCm0Y8g0LLQutC70LDQtNC60LAg0LLRltC00L7QsdGA0LDQttCw0YLQuNC80LXRgtGM0YHRjyDQu9C40YjQtSDRgtC+0LTRliwg0Y/QutGJ0L4g0L3QsNGP0LLQvdGWINC00ZbQudGB0L3RliDQtdC60LfQtdC80L/Qu9GP0YDQuCBMaXN0SXRFeHRlbmRlZCDQvdCwINC/0L7RgtC+0YfQvdC+0LzRgyDRgdCw0LnRgtGWLiANCiAgICAgICAgPC9saT4NCiAgICAgICAgPGxpPg0KICAgICAgICAgIDxzdHJvbmc+0J/QtdGA0Ygg0L3RltC2INCy0LbQuNGC0Lgg0LHRg9C00Ywt0Y/QutGWINC/0L7QtNCw0LvRjNGI0ZYg0LTRltGXLCDQv9C10YDQtdC60L7QvdCw0LnRgtC10YHRjywg0YnQviDQstC4INGB0YLQstC+0YDQuNC70Lgg0L/QvtCy0L3RgyDRgNC10LfQtdGA0LLQvdGDINC60L7Qv9GW0Y4g0LLQsNGI0L7Qs9C+INGB0LDQudGC0YMg0YLQsCDQsdCw0LfQuCDQtNCw0L3QuNGFLjwvc3Ryb25nPg0KICAgICAgICA8L2xpPg0KICAgICAgPC91bD4NCiAgICA8L2Rpdj4NCiAgICA8aDQ+0JrRgNC+0LogMTwvaDQ+DQogICAgPHA+0K/QutGJ0L4g0LIg0YHQuNGB0YLQtdC80ZYg0ZQg0LTRltC50YHQvdGWINC10LrQt9C10LzQv9C70Y/RgNC4IExpc3RJdEV4dGVuZGVkLCBMSVNFINC30LzQvtC20LUg0ZfRhSDQstC40Y/QstC70Y/RgtC4LCDRliDRgtCw0Lwg0LdcJ9GP0LLQuNGC0YzRgdGPINC60L3QvtC/0LrQsCDQvdCwINC+0YHQvdC+0LLQvdC+0LzRgyDQvNC+0LTRg9C70ZYgTElTRSwg0L3QsCDQstC60LvQsNC00YbRliDQn9GW0YLRgNC40LzQutCwIC0g0IbQvNC/0L7RgNGC0YPQstCw0L3QvdGPINC10LrQt9C10LzQv9C70Y/RgNGW0LIg0LcgTGlzdEl0Mi4g0KbRjyDQutC90L7Qv9C60LAg0ZbQvNC/0L7RgNGC0YMg0L/QvtCy0LjQvdC90LAg0YDQvtCx0LjRgtC4INC60L7Qv9GW0Y4g0LLRgdGW0YUg0LLRgdGC0LDQvdC+0LLQu9C10L3QuNGFINC10LrQt9C10LzQv9C70Y/RgNGW0LIgTGlzdEl0Miwg0L3QtSDQt9C80ZbQvdGO0Y7Rh9C4INC+0YDQuNCz0ZbQvdCw0LvRjNC90LjRhS4g0J7QtNC90LDQuiwg0L3QsCDQtNCw0L3QvtC80YMg0LXRgtCw0L/RliBMSVNFINC90LUg0LrQvtC/0ZbRjtGUINC00L7Qt9Cy0L7Qu9C4INC60L7RgNC40YHRgtGD0LLQsNGH0ZbQsiDQtyBMaXN0SXQyLCDQvtGB0LrRltC70YzQutC4INGC0LDQutCwINC80L7QttC70LjQstGW0YHRgtGMINCy0ZbQtNGB0YPRgtC90Y8g0YMgQ01TTVMgQ29yZSBBUEkuINCm0LUg0LzQsNGUINCx0YPRgtC4INC30YDQvtCx0LvQtdC90L4g0LLRgNGD0YfQvdGDLjwvcD4NCiAgICA8cD7QqNCw0LHQu9C+0L3QuCwg0LzQvtC20LvQuNCy0L4sINGC0YDQtdCx0LAg0LHRg9C00LUg0L3QsNC70LDRiNGC0YPQstCw0YLQuCDQtNC70Y8g0YDQvtCx0L7RgtC4INC3IExJU0UuPC9wPg0KICAgIDxoND7QmtGA0L7QuiAyPC9oND4NCiAgICA8cD7Qn9GW0YHQu9GPINGC0L7Qs9C+INGP0Log0LLQuCDQvtGC0YDQuNC80LDRlNGC0LUg0LrQvtC/0ZbRlyDQtdC60LfQtdC80L/Qu9GP0YDRltCyIExJU0UsINCy0LDQvCDQv9C+0YLRgNGW0LHQvdC+INCx0YPQtNC1INC30LzRltC90LjRgtC4INCy0LjQutC70LjQuiDRgtC10pHRltCyINC3IDxzdHJvbmc+e0xpc3RJdDLigLlpbnN0YW5jZV9uYW1l4oC6fTwvc3Ryb25nPiDQvdCwIDxzdHJvbmc+e0xJU0XigLlpbnN0YW5jZV9uYW1l4oC6fTwvc3Ryb25nPiDQvdCwINC60L7QttC90L7QvNGDINGI0LDQsdC70L7QvdGWLCDQtNC1INGX0YUg0LLQuNC60LvQuNC60LDRjtGC0YwuPC9wPg0KICAgIDxoND7QmtGA0L7QuiAzPC9oND4NCiAgICDQkiDRltC00LXQsNC70ZYsINCy0LDRiNGWINGC0LjQv9C4INC/0L7Qu9GW0LIg0L/QvtCy0LjQvdC90ZYg0LfQvdC+0LLRgyDQv9GA0LDRhtGO0LLQsNGC0LgsINGP0LrRidC+INGG0LUg0L3QtSDRgtCw0LosINGC0L4g0LLQsNC8INGB0LvRltC0INGB0L/RgNC+0LHRg9Cy0LDRgtC4INCy0ZbQtNC90L7QstC40YLQuCDQv9C+0LvRjyDQtyDQsdCw0LfQuCDQtNCw0L3QuNGFLCDQvdCw0YLQuNGB0L3Rg9Cy0YjQuCDQutC90L7Qv9C60YMgwqvQktGW0LTQvdC+0LLQuNGC0LjCuyDQvdCwINCy0LrQu9Cw0LTRhtGWIMKr0J/RltC00YLRgNC40LzQutCwwrsuPC9wPjxiciAvPg0KICAgIDxwPjxzdHJvbmc+0K/QutGJ0L4g0LLQuCDQstC40LrQvtC90LDQu9C4INC90LDQstC10LTQtdC90ZYg0LLQuNGJ0LUg0LrRgNC+0LrQuCwg0LLQuCDQv9C+0LLQuNC90L3RliDQvtGC0YDQuNC80LDRgtC4INC/0L7QstC90L7RhNGD0L3QutGG0ZbQvtC90LDQu9GM0L3QuNC5INGC0LAg0L7QvdC+0LLQu9C10L3QuNC5INC80L7QtNGD0LvRjCBMSVNFINGC0LAg0LLRgdGWINGB0YLQstC+0YDQtdC90ZYg0LXQutC30LXQvNC/0LvRj9GA0LguPC9zdHJvbmc+PC9wPg0KICAgIDxwPjxzdHJvbmc+0J/RltGB0LvRjyDRhtGM0L7Qs9C+INCy0Lgg0LzQvtC20LXRgtC1INCy0LjQtNCw0LvQuNGC0Lgg0LXQutC30LXQvNC/0LvRj9GA0LggTGlzdEl0MiDRgtCwIExpc3RJdEV4dGVuZGVkINGB0LDQvNC+0YHRgtGW0LnQvdC+ICjQv9C10YDQtdC60L7QvdCw0LnRgtC10YHRjywg0YnQviDQstC4INC30LHQtdGA0LXQs9C70Lgg0L/QvtCy0L3RgyDRgNC10LfQtdGA0LLQvdGDINC60L7Qv9GW0Y4sINC90LAg0LLRgdGP0Log0LLQuNC/0LDQtNC+0LopLjwvc3Ryb25nPjwvcD4nOwokbGFuZ1snaGVscF9jYXRlZ29yaWVzJ10gPSAnPGgzPtCa0LDRgtC10LPQvtGA0ZbRlzwvaDM+DQogICAgPHA+0JrQsNGC0LXQs9C+0YDRltGXINGUINC+0LTQvdC40Lwg0Lcg0YLQuNC/0ZbQsiDQv9C+0LvRltCyINGWINCy0ZbQtNC60LvRjtGH0LXQvdGWINC30LAg0LfQsNC80L7QstGH0YPQstCw0L3QvdGP0LwuPGJyIC8+DQogICAg0K/QutGJ0L4g0LLQsNC8INC/0L7RgtGA0ZbQsdC90ZYg0JrQsNGC0LXQs9C+0YDRltGXINC3INGG0LjQvCDQtdC60LfQtdC80L/Qu9GP0YDQvtC8LCDQstCw0Lwg0LTQvtCy0LXQtNC10YLRjNGB0Y8g0YHRgtCy0L7RgNC40YLQuCDQvdC+0LLQtSDQv9C+0LvQtSDRgtC40L/RgyAi0JrQsNGC0LXQs9C+0YDRltGPIi48YnIgLz4NCiAgICDQn9GW0YHQu9GPINGB0YLQstC+0YDQtdC90L3RjyDQv9C+0LvRjyDQvdC+0LLQsCDQstC60LvQsNC00LrQsCDQtyDQvdCw0LfQstC+0Y4gItCa0LDRgtC10LPQvtGA0ZbRlyIg0LdcJ9GP0LLQuNGC0YzRgdGPINGC0LAg0YHRgtCw0L3QtSDQtNC+0YHRgtGD0L/QvdC+0Y4g0LIg0LXQutC30LXQvNC/0LvRj9GA0ZYg0LzQvtC00YPQu9GPLjwvcD4NCiAgICA8cD7QmtCw0YLQtdCz0L7RgNGW0Zcg0L/RltC00YLRgNC40LzRg9GO0YLRjCDQutGW0LvRjNC60LAg0YDRltCy0L3RltCyLCDRliDRgdGC0LLQvtGA0Y7QstCw0L3RliDQtdC70LXQvNC10L3RgtC4INC80L7QttGD0YLRjCDQvdCw0LvQtdC20LDRgtC4INC00L4g0LrRltC70YzQutC+0YUg0LrQsNGC0LXQs9C+0YDRltC5INC30LDQu9C10LbQvdC+INCy0ZbQtCDQstC40LHRgNCw0L3QuNGFINC/0LDRgNCw0LzQtdGC0YDRltCyINC/0YDQuCDRgdGC0LLQvtGA0LXQvdC90ZYg0L/QvtC70Y8gItCa0LDRgtC10LPQvtGA0ZbRjyIuPC9wPjxiciAvPg0KICAgIDxwPtCG0YHQvdGD0ZQg0LTQstCwINC30YDQsNC30LrQuCDRiNCw0LHQu9C+0L3RltCyLCDRj9C60ZYg0LTQtdC80L7QvdGB0YLRgNGD0Y7RgtGMLCDRj9C6INC/0YDQsNGG0Y7RjtGC0Ywg0LrQsNGC0LXQs9C+0YDRltGXINCyINGA0LDQvNC60LDRhSDRgNC+0LHQvtGC0Lgg0LXQutC30LXQvNC/0LvRj9GA0ZbQsiDQvNC+0LTRg9C70ZbQsiBMSVNFLCDRhtC1INC00LDRgdGC0Ywg0LLQsNC8INC/0L7Rh9Cw0YLQutC+0LLQtSDRg9GP0LLQu9C10L3QvdGPINC/0YDQviDRgtC1LCDRj9C6INGB0YLQstC+0YDQuNGC0Lgg0YHQstC+0Zcg0L/QtdGA0YHQvtC90LDQu9GW0LfQvtCy0LDQvdGWINGI0LDQsdC70L7QvdC4INC00LvRjyDQstCw0YjQvtCz0L4g0L3QsNGB0YLRg9C/0L3QvtCz0L4g0L/RgNC+0LXQutGC0YMuPC9wPg0KICAgIDxoND7QktC40LrQvtGA0LjRgdGC0LDQvdC90Y8g0LrQsNGC0LXQs9C+0YDRltC5PC9oND4NCiAgICA8cD7QlNC70Y8g0LTQtdGC0LDQu9GM0L3QvtCz0L4g0LLQuNC60L7RgNC40YHRgtCw0L3QvdGPINGC0LAg0LTQvtGB0YLRg9C/0L3QuNGFINC/0LDRgNCw0LzQtdGC0YDRltCyINC00LjQsi4g0L3QuNC20YfQtSDQsiDRgNC+0LfQtNGW0LvRliDQlNC+0LLRltC00LrQuCAi0J/QsNGA0LDQvNC10YLRgNC4IjwvcD4NCiAgICA8cHJlPjxjb2RlPnt7JG1vZHVsZV9uYW1lfSBhY3Rpb249XCdjYXRlZ29yeVwnfTwvY29kZT48L3ByZT4nOwokbGFuZ1snaGVscF90ZW1wbGF0ZXMnXSA9ICc8aDM+0KjQsNCx0LvQvtC90Lg8L2gzPg0KICAgIDxwPtCv0LrRidC+INCy0Lgg0L3QtSDQstC/0LXQstC90LXQvdGWLCDRj9C60ZYg0LfQvNGW0L3QvdGWINC80L7QttC90LAg0LLQuNC60L7RgNC40YHRgtC+0LLRg9Cy0LDRgtC4INGDINCy0LDRiNC40YUg0YjQsNCx0LvQvtC90LDRhSwg0YHQv9GA0L7QsdGD0LnRgtC1INCy0ZbQtNC70LDQs9C+0LTQuNGC0Lg6PC9wPiANCiAgICA8cD57eyRtb2R1bGVfbmFtZX0gZGVidWc9MX08L3A+DQogICAgPHA+0JLQuCDQvNC+0LbQtdGC0LUg0L7RgtGA0LjQvNCw0YLQuCDQtNC+0YHRgtGD0L8g0LTQviDQsdGD0LTRjC3Rj9C60L7Qs9C+INC/0L7Qu9GPINCx0LXQt9C/0L7RgdC10YDQtdC00L3RjNC+INC/0YDQuCDQv9C10YDQtdCx0L7RgNGWINC10LvQtdC80LXQvdGC0ZbQsiDQt9CwINC00L7Qv9C+0LzQvtCz0L7RjiDQv9GB0LXQstC00L7QvdGW0LzRgyDQv9C+0LvRjywg0L3QsNC/0YDQuNC60LvQsNC0LCDRj9C60YnQviDQstC4INGB0YLQstC+0YDQuNC70Lgg0L/QvtC70LUg0Lcg0L/RgdC10LLQtNC+0L3RltC80L7QvCAicG9zaXRpb24iLCDQstC4INC80L7QttC10YLQtSDQstC40LrQvtC90LDRgtC4INC+0LTQvdGDINC3INGC0LDQutC40YUg0LTRltC5OjwvcD4nOwokbGFuZ1snaGVscF9kdXBsaWNhdGluZyddID0gJzxoMz7QodGC0LLQvtGA0LXQvdC90Y8g0LXQutC30LXQvNC/0LvRj9GA0ZbQsiDQvNC+0LTRg9C70Y88L2gzPg0KICAgIDxwPtCm0LXQuSDQvNC+0LTRg9C70YwgLSDQn9Cw0L3QtdC70Ywg0YPQv9GA0LDQstC70ZbQvdC90Y8g0LTQu9GPINGB0YLQstC+0YDQtdC90L3RjyDQtdC60LfQtdC80L/Qu9GP0YDRltCyINC80L7QtNGD0LvRjyBMSVNFLiDQqdC+0LEg0YHRgtCy0L7RgNC40YLQuCDQvNC+0LTRg9C70YwgTElTRSwg0L/RgNC+0YHRgtC+INC/0LXRgNC10LnQtNGW0YLRjCDQvdCwINCy0LrQu9Cw0LTQutGDICLQldC60LfQtdC80L/Qu9GP0YDQuCIg0YLQsCDQvdCw0YLQuNGB0L3RltGC0Ywg0LrQvdC+0L/QutGDICLQodGC0LLQvtGA0LjRgtC4INC10LrQt9C10LzQv9C70Y/RgCIuPGJyIC8+DQogICAg0J/QtdGA0LXQutC+0L3QsNC50YLQtdGB0Y8sINGJ0L4g0LLQuCDQtNC+0YLRgNC40LzRg9GU0YLQtdGB0Ywg0L/RgNCw0LLQuNC7INGJ0L7QtNC+INCy0LLQtdC00LXQvdC90Y8g0L3QsNC30LIg0LzQvtC00YPQu9GW0LIgQ01TTVMsIGEteiDQsdC10Lcg0LHRg9C00Ywt0Y/QutC40YUg0LfQvdCw0LrRltCyINC/0YPQvdC60YLRg9Cw0YbRltGXINCw0LHQviDQv9GA0L7QsdGW0LvRltCyLCDRidC+0LEg0LLRgdC1INCx0YPQu9C+INC00L7QsdGA0LUgOik8YnIgLz4gDQogICAg0JLQuCDQvNC+0LbQtdGC0LUg0LLRgdGC0LDQvdC+0LLQuNGC0Lgg0LXQutC30LXQvNC/0LvRj9GA0YMgPHN0cm9uZz7Qk9Cw0YDQvdC1INGW0LxcJ9GPPC9zdHJvbmc+LCA8c3Ryb25nPtCe0L/QuNGBINC60LXRgNGD0LLQsNC90L3RjyDQvNC+0LTRg9C70LXQvDwvc3Ryb25nPiDRliA8c3Ryb25nPtCg0L7Qt9C00ZbQuyDQsNC00LzRltC9LiDQv9Cw0L3QtdC70ZYsINCyINGP0LrQvtC80YMg0YDQvtC30LzRltGJ0LXQvdC+INC80L7QtNGD0LvRjDwvc3Ryb25nPiDRgyDRhNC+0YDQvNGWIDxzdHJvbmc+0KHRgtCy0L7RgNC40YLQuCDQtdC60LfQtdC80L/Qu9GP0YA8L3N0cm9uZz4uPGJyIC8+DQogICAg0J/RltGB0LvRjyDRgdGC0LLQvtGA0LXQvdC90Y8g0LzQvtC00YPQu9GPINCx0YPQtNC1INCy0YHRgtCw0L3QvtCy0LvQtdC90L4g0L3QvtCy0LjQuSDQtdC60LfQtdC80L/Qu9GP0YAg0ZYg0L/QvtC80ZbRidC10L3QviDQsiDQvtGA0LjQs9GW0L3QsNC70YzQvdC40Lkg0LzQvtC00YPQu9GMIExJU0Ug0YMg0LLQutC70LDQtNGG0ZYgItCV0LrQt9C10LzQv9C70Y/RgNC4Ii48L3A+PGJyIC8+IA0KICAgIDxwPtCS0Lgg0LfQsNCy0LbQtNC4INC80L7QttC10YLQtSDQt9C80ZbQvdC40YLQuCDQs9Cw0YDQvdC1INGW0LxcJ9GPINC80L7QtNGD0LvRjyDQv9GW0YHQu9GPINCy0YHRgtCw0L3QvtCy0LvQtdC90L3RjyDQsiDRgNC+0LfQtNGW0LvRliAi0J/QsNGA0LDQvNC10YLRgNC4IijQktC80ZbRgdGCIMK7IExJU0XQndCw0LfQstCw0LzQvtC00YPQu9GPKS48YnIgLz4NCiAgICDQqdC+0LEg0LfQvNGW0L3QuNGC0Lgg0L/RltC60YLQvtCz0YDQsNC80YMsINC30LDQvNGW0L3RltGC0YwgL21vZHVsZXMvTElTRdCd0LDQt9Cy0LDQvNC+0LTRg9C70Y8vaW1hZ2VzL2ljb24uZ2lmLjxiciAvPg0KICAgINCp0L7QsSDQt9C80ZbQvdC40YLQuCDRgNC+0LfQtNGW0Lsg0LDQtNC80ZbQvS4g0L/QsNC90LXQu9GWLCDQsiDRj9C60L7QvNGDINCx0YPQtNC1INC80L7QtNGD0LvRjCwg0L/RgNC+0YHRgtC+INCy0LjQsdC10YDRltGC0Ywg0LLRltC00L/QvtCy0ZbQtNC90LjQuSDRgNC+0LfQtNGW0Lsg0Lcg0LLQuNC/0LDQtNCw0Y7Rh9C+0LPQviDRgdC/0LjRgdC60YMuINCf0ZbRgdC70Y8g0YbQuNGFINC30LzRltC9INC/0LXRgNC10LrQvtC90LDQudGC0LXRgdGPLCDRidC+INCy0Lgg0L7Rh9C40YHRgtC40LvQuCDQutC10YguPC9wPic7CiRsYW5nWydoZWxwX3NtYXJ0eV9wbHVnaW5zJ10gPSAnPGg0PtCU0ZbRjzo8L2g0Pg0KCSA8cD7QptC10Lkg0L/Qu9Cw0pHRltC9INC00L7Qt9Cy0L7Qu9GP0ZQg0LfQsNCy0LDQvdGC0LDQttGD0LLQsNGC0Lgg0LXQu9C10LzQtdC90YIgTElTRSDRgtCwINC+0LFcJ9GU0LrRgiDQutCw0YLQtdCz0L7RgNGW0Zcg0LfQsCDQv9C10LLQvdC40LzQuCDQutGA0LjRgtC10YDRltGP0LzQuCDQsiDQsdGD0LTRjC3Rj9C60ZbQuSDRgtC+0YfRhtGWINGB0LjRgdGC0LXQvNC4LjwvcD4gDQoJIA0KCTxoND7QktC40LrQvtGA0LjRgdGC0LDQvdC90Y86PC9oND4NCgk8cD7Qn9GA0L7RgdGC0L4g0LLRgdGC0LDQstGC0LUg0YbQtdC5INGC0LXSkSDQvdCwINGB0LLQvtGOINGB0YLQvtGA0ZbQvdC60YMg0LDQsdC+INGI0LDQsdC70L7QvTo8L3A+DQoJPHByZT48Y29kZT57TElTRUxvYWRlciBpdGVtPVwnaXRlbVwnIGlkZW50aWZpZXI9XCdhbGlhc1wnIGluc3RhbmNlPVwnTElTRUluc3RhbmNlXCcgdmFsdWU9XCdteWFsaWFzXCcgYXNzaWduPVwndG1wXCd9PC9jb2RlPjwvcHJlPg0KCQ0KCTxwPsKgPC9wPg0KCQ0KCTxwPtCd0LDRgdGC0YPQv9C90LjQuSDRgNGP0LTQvtC6INCx0YPQtNC1INC30LDQstCw0L3RgtCw0LbRg9Cy0LDRgtC4INC+0LFcJ9GU0LrRgiDQtdC70LXQvNC10L3RgtCwINC3INC10LrQt9C10LzQv9C70Y/RgNGDICJMSVNFSW5zdGFuY2UiINC30LAg0L/RgdC10LLQtNC+0L3RltC80L7QvCAibXlhbGlhcyIg0ZYg0L/RgNC40LfQvdCw0YfQsNGC0Lgg0LnQvtCz0L4g0LfQvNGW0L3QvdGW0LkgJmRvbGxhcjt0bXAuIDxiciAvPiANCgnQn9GW0YHQu9GPINGG0YzQvtCz0L4g0LLQuCDQvNC+0LbQtdGC0LUg0LLQuNC60L7RgNC40YHRgtC+0LLRg9Cy0LDRgtC4INC50L7Qs9C+INCw0L3QsNC70L7Qs9GW0YfQvdC40Lwg0YfQuNC90L7QvCwg0Y/QuiDRliDQsiDQt9Cy0LjRh9Cw0LnQvdC40YUg0YjQsNCx0LvQvtC90LDRhSBMSVNFOjwvcD4NCgk8cHJlPjxjb2RlPnsmZG9sbGFyO3RtcC0+dGl0bGV9PC9jb2RlPjwvcHJlPg0KCQ0KCTxwPsKgPC9wPg0KCQ0KCTxwPtCv0LrRidC+INC30LDQstCw0L3RgtCw0LbRg9GU0YLRjNGB0Y8g0LTQtdC60ZbQu9GM0LrQsCDQtdC70LXQvNC10L3RgtGW0LIsINGG0Y8g0YTRg9C90LrRhtGW0Y8g0L/QvtCy0LXRgNGC0LDRlCDQvNCw0YHQuNCyINC+0LFcJ9GU0LrRgtGW0LIsINCyINGW0L3RiNC+0LzRgyDQstC40L/QsNC00LrRgyDQstGW0L0g0L/QvtCy0LXRgNGC0LDRlCDQvtC60YDQtdC80LjQuSDQvtCxXCfRlNC60YIg0LXQu9C10LzQtdC90YLQsC/QutCw0YLQtdCz0L7RgNGW0Zc8L3A+DQoNCgk8aDQ+0K/QutC40Lkg0L/QsNGA0LDQvNC10YLRgCDQstGW0L0g0L/RgNC40LnQvNCw0ZQ/PC9oND4NCgk8dWw+DQoJCTxsaT48ZW0+KHJlcXVpcmVkKSA8L2VtPjx0dD5pbnN0YW5jZTwvdHQ+IC0g0J3QsNC30LLQsCDQtdC60LfQtdC80L/Qu9GP0YDQsCwg0YnQviDQvNGW0YHRgtC40YLRjCDQtdC70LXQvNC10L3RgtC4LjxpPijQr9C60YnQviDQstC40LrQvtGA0LjRgdGC0L7QstGD0ZTRgtGM0YHRjyDQstGB0LXRgNC10LTQuNC90ZYg0YjQsNCx0LvQvtC90ZbQsiBMSVNFLCDRhtC10Lkg0L/QsNGA0LDQvNC10YLRgCDRlCDQvdC10L7QsdC+0LJcJ9GP0LfQutC+0LLQuNC8KTwvaT48L2xpPg0KCQk8bGk+PGVtPihyZXF1aXJlZCkgPC9lbT48dHQ+dmFsdWU8L3R0PiAtINCf0LXRgNC10LvRltC6INC30L3QsNGH0LXQvdGMINGW0LTQtdC90YLQuNGE0ZbQutCw0YLQvtGA0LAg0YfQtdGA0LXQtyDQutC+0LzRgzogXCdhbGlhczEsYWxpYXMyLGFsaWFzM1wnINCw0LHQviBcJzEsMiwzXCc8L2xpPg0KCQk8bGk+PGVtPihvcHRpb25hbCkgPC9lbT48dHQ+aXRlbT0iaXRlbSI8L3R0PiAtINCf0L7RgtGA0ZbQsdC90LjQuSDRgtC40L8g0LXQu9C10LzQtdC90YLQsDog0LXQu9C10LzQtdC90YIv0LrQsNGC0LXQs9C+0YDRltGPPC9saT4NCgkJPGxpPjxlbT4ob3B0aW9uYWwpIDwvZW0+PHR0PmlkZW50aWZpZXI9Iml0ZW1faWQvY2F0ZWdvcnlfaWQiPC90dD4gLSDQn9C+0YLRgNGW0LHQvdC40Lkg0ZbQtNC10L3RgtC40YTRltC60LDRgtC+0YAsINC+0LTQuNC9INC3INC90LDRgdGC0YPQv9C90LjRhTogaXRlbV9pZCwgY2F0ZWdvcnlfaWQsIGFsaWFzPC9saT4NCgkJPGxpPjxlbT4ob3B0aW9uYWwpIDwvZW0+PHR0PmZvcmNlX2FycmF5PSJmYWxzZSI8L3R0PiAtINCS0LjQstC+0LTQuNGC0Lgg0YMg0LLQuNCz0LvRj9C00ZYg0LzQsNGB0LjQstGDPC9saT4gDQoJPC91bD4nOwokbGFuZ1snaGVscF9wYXJhbV9hY3Rpb24nXSA9ICfQn9C10YDQtdCy0LjQt9C90LDRh9C40YLQuCDQtNGW0Y4g0LfQsCDQt9Cw0LzQvtCy0YfRg9Cy0LDQvdC90Y/QvC4g0JzQvtC20LvQuNCy0ZYg0LfQvdCw0YfQtdC90L3RjzoNCiAgICA8dWw+DQogICAgICAgIDxsaT4iZGVmYXVsdCIgLSDQstGW0LTQvtCx0YDQsNC20LDRgtC4INGB0L/QuNGB0L7QuiDQtdC70LXQvNC10L3RgtGW0LIuPC9saT4NCiAgICAgICAgPGxpPiJkZXRhaWwiIC0g0LLRltC00L7QsdGA0LDQttCw0YLQuCDQstC40LHRgNCw0L3QuNC5INC10LvQtdC80LXQvdGCINGDINC00LXRgtCw0LvRjNC90L7QvNGDINGA0LXQttC40LzRli48L2xpPiANCiAgICAgICAgPGxpPiJzZWFyY2giIC0g0LLRltC00L7QsdGA0LDQttCw0YLQuCDRhNC+0YDQvNGDINC/0L7RiNGD0LrRgy4g0JTQvtC00LDRgtC60L7QstGWINC/0LDRgNCw0LzQtdGC0YDQuCwg0Y/QutGWINCy0L/Qu9C40LLQsNGO0YLRjCDQu9C40YjQtSDQvdCwINGG0Y4g0LTRltGOOiA8ZW0+ZmlsdGVyLjwvZW0+PC9saT4NCiAgICAgICAgPGxpPiJjYXRlZ29yeSIgLSDQstGW0LTQvtCx0YDQsNC20LDRgtC4INC60LDRgtC10LPQvtGA0ZbRly4g0JTQvtC00LDRgtC60L7QstGWINC/0LDRgNCw0LzQtdGC0YDQuCwg0Y/QutGWINCy0L/Qu9C40LLQsNGO0YLRjCDQu9C40YjQtSDQvdCwINGG0Y4g0LTRltGOOiA8ZW0+c2hvd19pdGVtcywgY29sbGFwc2UsIG51bWJlcl9vZl9sZXZlbHMuPC9lbT48L2xpPg0KICAgICAgICA8bGk+ImFyY2hpdmUiIC0g0LLRltC00L7QsdGA0LDQttCw0YLQuCDQsNGA0YXRltCy0LguIDwvbGk+DQogICAgPC91bD4nOwokbGFuZ1snaGVscF9wYXJhbV9zaG93YWxsJ10gPSAn0J/QvtC60LDQt9Cw0YLQuCDQstGB0ZYg0LXQu9C10LzQtdC90YLQuCDQvdC10LfQsNC70LXQttC90L4g0LLRltC0INC00LDRgtC4INC30LDQstC10YDRiNC10L3QvdGPLic7CiRsYW5nWydoZWxwX3BhcmFtX2NhdGVnb3J5J10gPSAn0JLQutCw0LbRltGC0Ywg0L/RgdC10LLQtNC+0L3RltC8INC60LDRgtC10LPQvtGA0ZbRlyDQsNCx0L4g0L/RgdC10LLQtNC+0L3RltC80Lgg0LrQsNGC0LXQs9C+0YDRltC5INGH0LXRgNC10Lcg0LrQvtC80YMsINGH0LvQtdC90LDQvNC4INGP0LrQuNGFINC/0L7QstC40L3QvdGWINCx0YPRgtC4INCy0ZbQtNC+0LHRgNCw0LbQtdC90ZYg0LXQu9C10LzQtdC90YLQuCc7CiRsYW5nWydoZWxwX3BhcmFtX2V4Y2x1ZGVfY2F0ZWdvcnknXSA9ICfQktC60LDQttGW0YLRjCDQv9GB0LXQstC00L7QvdGW0Lwg0LrQsNGC0LXQs9C+0YDRltGXINCw0LHQviDQv9GB0LXQstC00L7QvdGW0LzQuCDQutCw0YLQtdCz0L7RgNGW0Lkg0YfQtdGA0LXQtyDQutC+0LzRgywg0YfQu9C10L3QsNC80Lgg0Y/QutC40YUg0L3QtSDQv9C+0LLQuNC90L3RliDQsdGD0YLQuCDQstGW0LTQvtCx0YDQsNC20LXQvdGWINC10LvQtdC80LXQvdGC0LgnOwokbGFuZ1snaGVscF9wYXJhbV9zdWJjYXRlZ29yeSddID0gJ9Cv0LrRidC+INCy0LrQsNC30LDQvdC+INC/0LDRgNCw0LzQtdGC0YAgImNhdGVnb3J5Iiwg0YbQtdC5INC/0LDRgNCw0LzQtdGC0YAsINCy0YHRgtCw0L3QvtCy0LvQtdC90LjQuSDQvdCwIDxlbT50cnVlPC9lbT4sINCx0YPQtNC1INCy0YDQsNGF0L7QstGD0LLQsNGC0Lgg0LXQu9C10LzQtdC90YLQuCDQv9GW0LTQutCw0YLQtdCz0L7RgNGW0LkuINCX0LAg0LfQsNC80L7QstGH0YPQstCw0L3QvdGP0Lwg0LLRgdGC0LDQvdC+0LLQu9C10L3QviDQt9C90LDRh9C10L3QvdGPICJmYWxzZSIuJzsKJGxhbmdbJ2hlbHBfcGFyYW1fZGV0YWlsdGVtcGxhdGUnXSA9ICfQqNCw0LHQu9C+0L0g0LLQuNCy0L7QtNGDINC10LvQtdC80LXQvdGC0LAsINGP0LrQuNC5INCy0Lgg0YXQvtGH0LXRgtC1INCy0LjQutC+0YDQuNGB0YLQvtCy0YPQstCw0YLQuC4nOwokbGFuZ1snaGVscF9wYXJhbV9zdW1tYXJ5dGVtcGxhdGUnXSA9ICfQqNCw0LHQu9C+0L0g0YHQv9C40YHQutGDINC10LvQtdC80LXQvdGC0ZbQsiwg0Y/QutC40Lkg0LLQuCDRhdC+0YfQtdGC0LUg0LLQuNC60L7RgNC40YHRgtC+0LLRg9Cy0LDRgtC4Lic7CiRsYW5nWydoZWxwX3BhcmFtX3NlYXJjaHRlbXBsYXRlJ10gPSAn0KjQsNCx0LvQvtC9INC00LvRjyDQv9C+0YjRg9C60YMsINGP0LrQuNC5INCy0Lgg0YXQvtGH0LXRgtC1INCy0LjQutC+0YDQuNGB0YLQvtCy0YPQstCw0YLQuC4nOwokbGFuZ1snaGVscF9wYXJhbV9jYXRlZ29yeXRlbXBsYXRlJ10gPSAn0KjQsNCx0LvQvtC9INC60LDRgtC10LPQvtGA0ZbQuSwg0Y/QutC40Lkg0LLQuCDRhdC+0YfQtdGC0LUg0LLQuNC60L7RgNC40YHRgtC+0LLRg9Cy0LDRgtC4Lic7CiRsYW5nWydoZWxwX3BhcmFtX29yZGVyYnknXSA9ICfQktC4INC80L7QttC10YLQtSDRg9C/0L7RgNGP0LTQutGD0LLQsNGC0Lgg0LfQsCDQsdGD0LTRjC3Rj9C60LjQvCDQtyDQvdCw0YHRgtGD0L/QvdC40YUg0YHRgtC+0LLQv9GG0ZbQsjogaXRlbV9pZCwgaXRlbV90aXRsZSwgaXRlbV9wb3NpdGlvbiwgaXRlbV9jcmVhdGVkLCBjYXRlZ29yeV9pZCwgY2F0ZWdvcnlfbmFtZSwgY2F0ZWdvcnlfcG9zaXRpb24sIGNhdGVnb3J5X2hpZXJhcmNoeSwgcmFuZCwg0LAg0YLQsNC60L7QtiDQtNC+0LTQsNGC0LrQvtCy0ZYg0L/QvtC70Y8g0LcgY3VzdG9tXyAqICgqINCx0YPQtNC1INC/0YHQtdCy0LTQvtC90ZbQvNC+0Lwg0L/QvtC70Y8pLg0KPHA+0J3QsNC/0YDQuNC60LvQsNC0OjwvcD4NCiAgICA8dWw+DQogICAgICAgIDxsaT5vcmRlcmJ5PVwnY2F0ZWdvcnlfbmFtZSwgaXRlbV90aXRsZVwnPC9saT4NCiAgICAgICAgPGxpPg0KICAgICAgICAgIDxwPtCX0LAg0LfQvdCw0YfQtdC90L3Rj9C80Lgg0L/QvtC70ZbQsjo8L3A+IA0KICAgICAgICAgIG9yZGVyYnk9XCdjdXN0b21fW2ZpZWxkZGVmIGFsaWFzXVwnDQogICAgICAgIDwvbGk+DQogICAgICAgIDxsaT4NCiAgICAgICAgICA8cD7QktC4INGC0LDQutC+0LYg0LzQvtC20LXRgtC1INCy0LrQsNC30LDRgtC4INGB0L7RgNGC0YPQstCw0L3QvdGPINC30LAg0LfRgNC+0YHRgtCw0L3QvdGP0Lwg0LDQsdC+INC30LAg0YHQv9Cw0LTQsNC90L3Rj9C8INC00LvRjyDQsdGD0LTRjC3Rj9C60L7Qs9C+INGB0YLQvtCy0L/RhtGPLCDQvdCw0L/RgNC40LrQu9Cw0LQ6PC9wPg0KICAgICAgICAgIG9yZGVyYnk9XCdjYXRlZ29yeV9uYW1lfEFTQywgaXRlbV90aXRsZXxERVNDXCcNCiAgICAgICAgPC9saT4NCiAgICA8L3VsPic7CiRsYW5nWydoZWxwX3BhcmFtX3BhZ2VsaW1pdCddID0gJ9Cc0LDQutGB0LjQvNCw0LvRjNC90LAg0LrRltC70YzQutGW0YHRgtGMINC10LvQtdC80LXQvdGC0ZbQsiDQtNC70Y8g0LLQuNCy0L7QtNGDICjQvdCwINGB0YLQvtGA0ZbQvdGG0ZYpLiDQr9C60YnQviDQv9Cw0YDQsNC80LXRgtGAINC90LUg0LLQutCw0LfQsNC90L4sINGC0L4g0LHRg9C00LUg0L/QvtC60LDQt9Cw0L3QviDQstGB0ZYg0LXQu9C10LzQtdC90YLQuC4g0K/QutGJ0L4g0LLQutCw0LfQsNC90L4g0ZYg0LfQvdCw0YfQtdC90L3RjyDRlCDQvNC10L3RiNC40Lwg0LfQsCDQutGW0LvRjNC60ZbRgdGC0Ywg0LXQu9C10LzQtdC90YLRltCyLCDRgtC+INCx0YPQtNC1INCy0LjQstC10LTQtdC90L4g0YHRgtC+0YDRltC90LrQuCAi0LLQv9C10YDQtdC0IiwgItC90LDQt9Cw0LQiLCDRj9C60ZYg0LTQvtC30LLQvtC70Y/RgtGMINC/0L7QsdCw0YfQuNGC0Lgg0LLRgdGWINC10LvQtdC80LXQvdGC0LguJzsKJGxhbmdbJ2hlbHBfcGFyYW1fc3RhcnQnXSA9ICfQn9C+0YfQsNGC0Lgg0Lcgbi3Qs9C+INC10LvQtdC80LXQvdGC0LAgLSDRj9C60YnQviDQv9C+0LvQtSDQv9C+0YDQvtC20L3RlCwg0YLQviDQsdGD0LTQtSDQv9C+0LrQsNC30LDQvdC+INC3INC/0LXRgNGI0L7Qs9C+INC10LvQtdC80LXQvdGC0LAuJzsKJGxhbmdbJ2hlbHBfcGFyYW1fbnVtYmVyJ10gPSAn0JzQsNC60YHQuNC80LDQu9GM0L3QsCDQutGW0LvRjNC60ZbRgdGC0Ywg0YHRgtCw0YLQtdC5INC00LvRjyDQstC40LLQvtC00YMgKNC90LAg0YHRgtC+0YDRltC90YbRlikgLS0g0Y/QutGJ0L4g0L/QvtC70LUg0L/QvtGA0L7QttC90ZQsINGC0L4g0LHRg9C00LUg0L/QvtC60LDQt9Cw0L3QviDQstGB0ZYg0LXQu9C10LzQtdC90YLQuC4g0KbQtSDRgdC40L3QvtC90ZbQvCDQtNC+INC/0LDRgNCw0LzQtdGC0YDQsCBwYWdlbGltaXQnOwokbGFuZ1snaGVscF9wYXJhbV9kZXRhaWxwYWdlJ10gPSAn0KHRgtC+0YDRltC90LrQsCDQtNC70Y8g0LLRltC00L7QsdGA0LDQttC10L3QvdGPINC00LXRgtCw0LvQtdC5INC10LvQtdC80LXQvdGC0LAuINCc0LDRlCDQsdGD0YLQuCDQv9GB0LXQstC00L7QvdGW0LwvaWQg0YHRgtC+0YDRltC90LrQuC4g0JTQvtC30LLQvtC70Y/RlCDQv9C10YDQtdCz0LvRj9C90YPRgtC4INC00LXRgtCw0LvRjNC90ZYg0LTQsNC90ZYg0L3QsCDRgdGC0L7RgNGW0L3RhtGWLCDQstGW0LTQvNGW0L3QvdGW0Lkg0LLRltC0INGB0YLQvtGA0ZbQvdC60LgsINC90LAg0Y/QutGW0Lkg0LLQuNCy0LXQtNC10L3QviDRgdC/0LjRgdC+0Log0LXQu9C10LzQtdC90YLRltCyLic7CiRsYW5nWydoZWxwX3BhcmFtX3N1bW1hcnlwYWdlJ10gPSAn0KHRgtC+0YDRltC90LrQsCDQtNC70Y8g0LLQuNCy0L7QtNGDINGB0L/QuNGB0LrRgyDQtdC70LXQvNC10L3RgtGW0LIuINCf0L7QstC40L3QtdC9INCx0YPRgtC4INC/0YHQtdCy0LTQvtC90ZbQvC9pZCDRgdGC0L7RgNGW0L3QutC4LiDQlNC+0LfQstC+0LvRj9GUINCy0ZbQtNC+0LHRgNCw0LbQsNGC0Lgg0YHQv9C40YHQvtC6INC90LAg0ZbQvdGI0ZbQuSDRgdGC0L7RgNGW0L3RhtGWLCDQvdGW0LYg0L/QvtGH0LDRgtC60L7QstCwICjQtNC1INCx0YPQsiDRgtC10pEgTElTRdCd0LDQt9Cy0LDQvNC+0LTRg9C70Y8pLic7CiRsYW5nWydoZWxwX3BhcmFtX2l0ZW0nXSA9ICfQptC10Lkg0L/QsNGA0LDQvNC10YLRgCDQt9Cw0YHRgtC+0YHQvtCy0YPRlNGC0YzRgdGPINC70LjRiNC1INC00LvRjyDQstC40LLQvtC00YMg0LXQu9C10LzQtdC90YLQsC4g0JLRltC9INC00L7Qt9Cy0L7Qu9GP0ZQg0LLQutCw0LfQsNGC0LgsINGP0LrQuNC5INC10LvQtdC80LXQvdGCINCy0ZbQtNC+0LHRgNCw0LbQsNGC0Lgg0LIg0LTQtdGC0LDQu9GM0L3QvtC80YMg0YDQtdC20LjQvNGWLiDQn9C+0LLQuNC90LXQvSDQsdGD0YLQuCDQv9GB0LXQstC00L7QvdGW0Lwg0LXQu9C10LzQtdC90YLQsC4nOwokbGFuZ1snaGVscF9wYXJhbV9zZWFyY2gnXSA9ICfQqNGD0LrQsNGC0Lgg0LLRgdGWINC/0L7Qu9GPLiDQktC40LrQvtGA0LjRgdGC0L7QstGD0ZQg0L/QvtGI0YPQuiA8c3Ryb25nPmZ1bGx0ZXh0PC9zdHJvbmc+LiDQnNC+0LbQvdCwINC/0L7RlNC00L3Rg9Cy0LDRgtC4INC3INC/0L7RiNGD0LrQvtC8INGE0ZbQu9GM0YLRgNCwLic7CiRsYW5nWydoZWxwX3BhcmFtX3NlYXJjaF8nXSA9ICfQqNGD0LrQsNGC0Lgg0LIg0L/QtdCy0L3QvtC80YMg0L/QvtC70ZYuINCS0Lgg0LzQvtC20LXRgtC1INCy0LjQutC+0YDQuNGB0YLQvtCy0YPQstCw0YLQuCBcJ3RpdGxlXCcg0LDQsdC+INC/0YHQtdCy0LTQvtC90ZbQvCDQv9C+0LvRjywg0L3QsNC/0YDQuNC60LvQsNC0IHNlYXJjaF90aXRsZS4g0JzQvtC20L3QsCDQvtCxXCfRlNC00L3QsNGC0Lgg0Lcg0L/QvtCy0L3QvtGC0LXQutGB0YLQvtCy0LjQvCDQv9C+0YjRg9C60L7QvC4g0J/QsNGA0LDQvNC10YLRgNC4INC00LXQutGW0LvRjNC60L7RhSDQv9C+0YjRg9C60L7QstC40YUg0L3QsNC70LDRiNGC0YPQstCw0L3RjCBzZWFyY2hfKiDQvNC+0LbRg9GC0Ywg0LHRg9GC0Lgg0L7QsVwn0ZTQtNC90LDQvdGWLic7CiRsYW5nWydoZWxwX3BhcmFtX2ZpbHRlciddID0gJ9CX0LDRgdGC0L7RgdC+0LLRg9GU0YLRjNGB0Y8g0LvQuNGI0LUg0LTQviDQtNGW0Zc6IDxlbT5zZWFyY2g8LyBlbT4uINCS0LrQsNC30YPRlCDQv9C+0LvRjywg0LfQvdCw0YfQtdC90L3RjyDRj9C60LjRhSDQv9C+0LLQuNC90L3RliDQsdGD0YLQuCDQt9Cw0L/RgNC+0L/QvtC90L7QstCw0L3RliDRj9C6INC/0LDRgNCw0LzQtdGC0YDQuCDRhNGW0LvRjNGC0YDRgywg0LLQutCw0LfQsNCy0YjQuCDQv9GB0LXQstC00L7QvdGW0LzQuCDQv9C+0LvRltCyINGH0LXRgNC10Lcg0LrQvtC80YMuJzsKJGxhbmdbJ2hlbHBfcGFyYW1fZmlsdGVyX29yZGVyX2J5J10gPSAn0J/RgNC4INGE0ZbQu9GM0YLRgNCw0YbRltGXINCyINC/0L7RiNGD0LrQvtCy0ZbQuSDQtNGW0Zcg0LLQuCDQvNC+0LbQtdGC0LUg0YPQv9C+0YDRj9C00LrRg9Cy0LDRgtC4INC30LAg0LHRg9C00Ywt0Y/QutC40Lwg0Lcg0L3QsNGB0YLRg9C/0L3QuNGFINGB0YLQvtCy0L/RhtGW0LI6IHZhbHVlLCBpdGVtX2lkLCBhbGlhcywgdGl0bGUsIHBvc2l0aW9uLCBjcmVhdGVfdGltZSDRliBtb2RpZmllZF90aW1lLiANCjxwPtCS0LjQutC+0YDQuNGB0YLQsNC90L3RjyDQv9C+0LTRltCx0L3QtSDQtNC+INC/0LDRgNCw0LzQtdGC0YDRgyA8ZW0+b3JkZXJieTwvZW0+LiDQotCw0LrQvtC2INC00LvRjyDRhtGM0L7Qs9C+INC/0L7RgtGA0ZbQsdC10L0g0L/QsNGA0LDQvNC10YLRgCA8ZW0+ZmlsdGVyPC9lbT4uPC9wPg0KPHA+0J/QvtGA0Y/QtNC+0Log0YHQv9C40YHQutGDINC/0YHQtdCy0LTQvtC90ZbQvNGW0LIg0YfQtdGA0LXQtyDQutC+0LzRgyDQstC40LrQvtGA0LjRgdGC0L7QstGD0ZTRgtGM0YHRjyDQtNC70Y8g0LLQuNC30L3QsNGH0LXQvdC90Y8g0L/QvtGA0Y/QtNC60YMg0ZfRhSDQt9Cw0YHRgtC+0YHRg9Cy0LDQvdC90Y8g0YMg0YTRltC70YzRgtGA0LDRhtGW0ZcgPGVtPmZpbHRlcm9yZGVyYnk8L2VtPi48L3A+DQo8cD7QndCw0L/RgNC40LrQu9Cw0LQ6PC9wPg0KICAgIDx1bD4NCiAgICAgIDxsaT5maWx0ZXI9XCdbZmllbGRkZWYgYWxpYXNdXCcgZmlsdGVyb3JkZXJieT1cJ3ZhbHVlfEFTQ1wnICjQv9C+0LLQtdC00ZbQvdC60LAg0LfQsCDQt9Cw0LzQvtCy0YfRg9Cy0LDQvdC90Y/QvCwg0YLQvtC80YMgPGVtPmZpbHRlcm9yZGVyYnk8L2VtPiDQvNC+0LbQvdCwINC/0YDQvtC/0YPRgdGC0LjRgtC4INCyINGG0YzQvtC80YMg0LLQuNC/0LDQtNC60YMpPC9saT4gDQogICAgICA8bGk+DQogICAgICAgIDxwPtCXINC60ZbQu9GM0LrQvtC80LAg0L/RgdC10LLQtNC+0L3RltC80LDQvNC4LCDRidC+0LEg0LLRltC00YHQvtGA0YLRg9Cy0LDRgtC4INC/0L4t0ZbQvdGI0L7QvNGDOjwvcD4NCiAgICAgICAgPHA+ZmlsdGVyPVwnW2ZpZWxkZGVmIGFsaWFzXSxbYW5vdGhlciBmaWVsZGRlZiBhbGlhc11cJyBmaWx0ZXJvcmRlcmJ5PVwndGl0bGUsdmFsdWV8REVTQ1wnIChBU0Mg0LfQsCDQt9Cw0LzQvtCy0YfRg9Cy0LDQvdC90Y/QvCwg0YLQvtC80YMg0LnQvtCz0L4g0LzQvtC20L3QsCDQv9GA0L7Qv9GD0YHRgtC40YLQuCk8L3A+DQogICAgICAgIDxwPtCm0Y8g0LTRltGPINCx0YPQtNC1INGB0L7RgNGC0YPQstCw0YLQuCDQstC40L/QsNC00LDRjtGH0ZYg0YHQv9C40YHQutC4INGE0ZbQu9GM0YLRgNCwINCw0LHQviDQvNGD0LvRjNGC0Lgt0LLQuNCx0ZbRgCDQv9C+0LvRltCyINC30LAg0L3QsNC30LLQvtGOIEFTQyDRliDQt9CwINC30L3QsNGH0LXQvdC90Y/QvCBERVNDINCy0ZbQtNC/0L7QstGW0LTQvdC+PC9wPg0KICAgICAgPC9saT4NCiAgICA8L3VsPic7CiRsYW5nWydoZWxwX3BhcmFtX2RlYnVnJ10gPSAn0JLQvNC40LrQsNGUINGA0LXQttC40Lwg0LLRltC00LvQsNCz0L7QtNC20LXQvdC90Y8sINCy0LjQstC+0LTQuNGC0Ywg0LLRgdGWINC+0LFcJ9GU0LrRgtC4LCDQvNCw0YHQuNCy0LgsINC30LzRltC90L3Rliwg0LTQvtGB0YLRg9C/0L3RliDQtNC70Y8g0L/QvtGC0L7Rh9C90L7RlyDQtNGW0ZcuJzsKJGxhbmdbJ2hlbHBfcGFyYW1fY29sbGFwc2UnXSA9ICfQl9Cw0YHRgtC+0YHQvtCy0YPRlNGC0YzRgdGPINC70LjRiNC1INC00L4g0LTRltGXOiA8ZW0+Y2F0ZWdvcnk8L2VtPi4g0J/QtdGA0LXQutC70Y7Rh9Cw0ZQg0LfQs9C+0YDRgtCw0L3QvdGPL9GA0L7Qt9Cz0L7RgNGC0LDQvdC90Y8g0LrQsNGC0LXQs9C+0YDRltC5Lic7CiRsYW5nWydoZWxwX3BhcmFtX3Nob3dfaXRlbXMnXSA9ICfQl9Cw0YHRgtC+0YHQvtCy0YPRlNGC0YzRgdGPINC70LjRiNC1INC00L4g0LTRltGXOiA8ZW0+Y2F0ZWdvcnk8L2VtPi4g0JTQvtC00LDRlCDQtdC70LXQvNC10L3RgtC4INC00L4g0LTQtdGA0LXQstCwINC60LDRgtC10LPQvtGA0ZbQuS4nOwokbGFuZ1snaGVscF9wYXJhbV9udW1iZXJfb2ZfbGV2ZWxzJ10gPSAn0JfQsNGB0YLQvtGB0L7QstGD0ZTRgtGM0YHRjyDQu9C40YjQtSDQtNC+INC00ZbRlzogPGVtPmNhdGVnb3J5PC9lbT4uINCT0LvQuNCx0LjQvdCwINGA0ZbQstC90ZbQsiDQutCw0YLQtdCz0L7RgNGW0Lkg0LTQu9GPINCy0LjQstC+0LTRgy4nOwokbGFuZ1snaGVscF9wYXJhbV9pbmNsdWRlX2l0ZW1zJ10gPSAn0JLQutCw0LbRltGC0YwgaWQv0L/RgdC10LLQtNC+0L3RltC8INCw0LHQviBpZC/Qv9GB0LXQstC00L7QvdGW0LzQuCDQtdC70LXQvNC10L3RgtGW0LIg0YfQtdGA0LXQtyDQutC+0LzRgywg0Y/QutGWINCy0Lgg0YXQvtGH0LXRgtC1INCy0ZbQtNC+0LHRgNCw0LfQuNGC0LguJzsKJGxhbmdbJ2hlbHBfcGFyYW1fZXhjbHVkZV9pdGVtcyddID0gJ9CS0LrQsNC20ZbRgtGMIGlkL9C/0YHQtdCy0LTQvtC90ZbQvCDQsNCx0L4gaWQv0L/RgdC10LLQtNC+0L3RltC80Lgg0LXQu9C10LzQtdC90YLRltCyINGH0LXRgNC10Lcg0LrQvtC80YMsINGP0LrRliDQstC4INGF0L7Rh9C10YLQtSDQstC40LrQu9GO0YfQuNGC0Lgg0LfRliDRgdC/0LjRgdC60YMuJzsKJGxhbmdbJ2hlbHBfcGFyYW1feWVhciddID0gJ9Ck0ZbQu9GM0YLRgNGD0LLQsNGC0Lgg0LXQu9C10LzQtdC90YLQuCDQt9CwINGA0L7QutC+0LwuJzsKJGxhbmdbJ2hlbHBfcGFyYW1fbW9udGgnXSA9ICfQpNGW0LvRjNGC0YDRg9Cy0LDRgtC4INC10LvQtdC80LXQvdGC0Lgg0LfQsCDQvNGW0YHRj9GG0LXQvC4nOwokbGFuZ1snaW1wb3J0aW5nX3dhcm5pbmcnXSA9ICc8aDM+INCS0LDQttC70LjQstCwINGW0L3RhNC+0YDQvNCw0YbRltGPIDwvaDM+DQrCoMKgwqDCoCA8cD4gPHN0cm9uZz4g0J/RgNC+0YfQuNGC0LDQudGC0LUg0YbQtSDRgNC10YLQtdC70YzQvdC+ITwvc3Ryb25nPjwvcD4NCsKgwqDCoMKgIDxwPiDQktCw0Lwg0L/QvtGC0YDRltCx0L3QviDQvNCw0YLQuCDQtdC60LfQtdC80L/Qu9GP0YAgTGlzdEl0RXh0ZW5kZWQsINC+0L3QvtCy0LvQtdC90LjQuSDQtNC+INC90LDQudC90L7QstGW0YjQvtGXINCy0LXRgNGB0ZbRlyAoMS40LjEpLjxici8+DQrCoMKgwqDCoCDQndC1INC90LDQvNCw0LPQsNC50YLQtdGB0Y8g0ZbQvNC/0L7RgNGC0YPQstCw0YLQuCDQtdC60LfQtdC80L/Qu9GP0YDQuCBMaXN0SXRFeHRlbmRlZCDQsdC10Lcg0L7QvdC+0LLQu9C10L3QvdGPLCDQvtGB0LrRltC70YzQutC4INGG0LUg0LzQvtC20LUg0L/RgNC40LfQstC10YHRgtC4INC00L4g0L3QtdC/0L7QstC90LjRhSDQtdC60LfQtdC80L/Qu9GP0YDRltCyIExJU0UuPC9wPic7CiRsYW5nWycwMDAwMCddID0gJyVzOiDQndC10LLRltC00L7QvNCwINC/0L7QvNC40LvQutCwIExJU0UhJzsKJGxhbmdbJzAwMDAxJ10gPSAnJXM6INCU0LjRgdC60YDQtdGC0L3QsCDQv9C+0LzQuNC70LrQsCBMSVNFOiAlcyEnOwokbGFuZ1snMDAwMDInXSA9ICclczrQlNC40YHQutGA0LXRgtC90LAg0L/QvtC80LjQu9C60LAg0JHQsNC30Lgg0LTQsNC90LjRhSBMSVNFOiAlcyEnOwokbGFuZ1snMDAwMTAnXSA9ICclczog0YHQv9GA0L7QsdCwINC30LDQv9C40YHQsNGC0Lgg0LTQviDQutC+0L3RhNGW0LPRg9GA0LDRhtGW0Zc7INCa0L7QvdGE0ZbQs9GD0YDQsNGG0ZbRjyBMSVNFOiDQotCG0JvQrNCa0Jgg0JTQm9CvINCn0JjQotCQ0J3QndCvISc7Cj8+]]></data>
	</file>
	<file>
	  <filename>/lang/index.html</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[]]></data>
	</file>
	<file>
	  <filename>/lib</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/lib/class.ajax_handler.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHANCg0KDQpuYW1lc3BhY2UgTElTRTsNCg0KDQpmaW5hbCBjbGFzcyBhamF4X2hhbmRsZXINCnsNCiAgIyBiYWNrZW5kIGZ1bmN0aW9ucyAoYmVfKQ0KICANCiAgLyoqDQogICAqIEBwYXJhbSBzdHJpbmcgJGluc3RhbmNlX25hbWUNCiAgICoNCiAgICogQHJldHVybiBzdHJpbmcNCiAgICogQHRocm93cyBcTElTRUV4Y2VwdGlvbg0KICAgKi8NCiAgcHVibGljIHN0YXRpYyBmdW5jdGlvbiBiZV9nZW5fdGl0bGUoJGluc3RhbmNlX25hbWUgPSAnJykgOiBzdHJpbmcNCiAgew0KICAgIHJldHVybiBhcGk6OkdlbmVyYXRlVGl0bGUoJGluc3RhbmNlX25hbWUpOw0KICB9DQogIA0KICBzdGF0aWMgZnVuY3Rpb24gYmVfZ2VuX2FsaWFzKCRpbnN0YW5jZV9uYW1lID0gJycsICR0aXRsZSA9ICcnKQ0KICB7DQogICAgcmV0dXJuIGFsaWFzX2dlbmVyYXRvcjo6Z2V0SW5zdGFuY2UoKS0+Z2VuZXJhdGVfbmV3KCRpbnN0YW5jZV9uYW1lLCAkdGl0bGUpOw0KICB9DQogIA0KICBzdGF0aWMgZnVuY3Rpb24gYmVfZ2VuX3NsdWcoJGluc3RhbmNlX25hbWUgPSAnJywgJHRpdGxlID0gJycsICRpaWQgPSAtMSwgJGNpZCA9IC0xKQ0KICB7DQogICAgaWYoIGVtcHR5KCRpbnN0YW5jZV9uYW1lKSApeyAkaW5zdGFuY2VfbmFtZSA9IHNlbGY6Okluc3RhbmNlTmFtZSgpOyB9DQogICAgaWYoIGVtcHR5KCR0aXRsZSkgKXsgdGhyb3cgbmV3IFxFeGNlcHRpb24oJ01pc3NpbmcgdGl0bGUgcGFyYW1ldGVyJyk7IH0NCiAgICANCiAgICByZXR1cm4gc2x1Z19nZW5lcmF0b3I6OmdldEluc3RhbmNlKCktPmdlbmVyYXRlX25ldygkaW5zdGFuY2VfbmFtZSwgJHRpdGxlLCAkaWlkLCAkY2lkKTsNCiAgfQ0KICANCiAgIyBmcm9udGVuZCBmdW5jdGlvbnMgKGZlXykNCiAgDQogICMgc3RhdGljIGZ1bmN0aW9uIGZlX3Rlc3QoKXsgcmV0dXJuICd0ZXN0JzsgfQ0KfQ0KDQo/Pg==]]></data>
	</file>
	<file>
	  <filename>/lib/class.alias_generator.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHANCg0KDQpuYW1lc3BhY2UgTElTRTsNCg0KDQpmaW5hbCBjbGFzcyBhbGlhc19nZW5lcmF0b3INCnsNCiAgLyoqDQogICAqIHByaXZhdGUgcHJvcHMNCiAgICovDQogIHByaXZhdGUgc3RhdGljICRfaW5zdGFuY2UgPSBudWxsOw0KICBwcml2YXRlICAkX3BhcnNlciA9IE5VTEw7DQogIHByaXZhdGUgICRfaW5zdGFuY2VfbmFtZTsNCiAgcHJpdmF0ZSAgJF9pdGVtX3RpdGxlOw0KICANCiAgLyoqDQogICAqIHB1YmxpYyBwcm9wcw0KICAgKi8NCiAgDQogIC8qKg0KICAgKiBwcml2YXRlIG1ldGhvZHMNCiAgICovDQogIHByaXZhdGUgZnVuY3Rpb24gX19jb25zdHJ1Y3QoKQ0KICB7DQogICAgIyB0YWcgbmFtZSA9PiBbdHlwZSwgY2FsbGFibGVdDQogICAgJHRhZ3MgPSBbDQogICAgICAgICAgICAgICdSYW5kb21TdHJpbmcnID0+IFsgJ2Z1bmN0aW9uJywgWyR0aGlzLCAnX3JhbmRvbV9zdHJpbmcnXSBdLA0KICAgICAgICAgICAgICAnSXRlbUNvdW50ZXInICA9PiBbICdmdW5jdGlvbicsIFskdGhpcywgJ19pdGVtX2NvdW50ZXInXSBdLA0KICAgICAgICAgICAgICAnSXRlbU5leHRJRCcgICA9PiBbICdmdW5jdGlvbicsIFskdGhpcywgJ19pdGVtX25leHRfaWQnXSBdLA0KICAgICAgICAgICAgICAnSXRlbVNpbmd1bGFyJyA9PiBbICdmdW5jdGlvbicsIFskdGhpcywgJ19pdGVtX3Npbmd1bGFyJ10gXSwNCiAgICAgICAgICAgICAgJ0l0ZW1QbHVyYWwnICAgPT4gWyAnZnVuY3Rpb24nLCBbJHRoaXMsICdfaXRlbV9wbHVyYWwnXSBdLA0KICAgICAgICAgICAgICAnSXRlbVRpdGxlJyAgICA9PiBbICdmdW5jdGlvbicsIFskdGhpcywgJ19pdGVtX3RpdGxlJ10gXQ0KICAgIF07DQogIA0KICAgICR0aGlzLT5fcGFyc2VyID0gbmV3IG1pbmlfc21hcnR5X3BhcnNlcigpOw0KICAgICR0aGlzLT5fcGFyc2VyIC0+UmVnaXN0ZXJUYWdzKCR0YWdzKTsNCiAgfQ0KICANCiAgcHJpdmF0ZSBmdW5jdGlvbiBfY29uZm9ybSgkc3RyKQ0KICB7DQogICAgLy8gbGVmdCB0cmltIHVwIHRvIHRoZSBmaXJzdCBsZXR0ZXINCiAgICAkc3RyID0gcHJlZ19yZXBsYWNlKCcvXlteYS16QS1aMC05X1x4N2YtXHhmZl0qLycsICcnLCAkc3RyKTsNCiAgDQogICAgLy8gcmVwbGFjZSBhbnkgaW52YWxpZCBjaGFyYWN0ZXJzIHdpdGggYW4gdW5kZXJzY29yZQ0KICAgICRzdHIgPSBwcmVnX3JlcGxhY2UoJy9bXmEtekEtWjAtOV9cLVx4N2YtXHhmZl0vJywgJ18nLCAkc3RyKTsNCiAgDQogICAgLy8gcmVwbGFjZSBtdWx0aXBsZSB1bmRlcnNjb3JlcyB3aXRoIHNpbmdsZSB1bmRlcnNjb3JlDQogICAgJHN0ciA9IHByZWdfcmVwbGFjZSgnL18rLycsICdfJywgJHN0cik7DQogIA0KICAgIC8vIGNvbnZlcnQgdG8gbG93ZXJjYXNlDQogICAgJHN0ciA9IHN0cnRvbG93ZXIoJHN0cik7DQogIA0KICAgIC8vIHJlbW92ZSB1bmRlcnNjb3JlIGZyb20gc3RhcnQgYW5kIGVuZA0KICAgICRzdHIgPSB0cmltKCRzdHIsICdfJyk7DQogICAgDQogICAgcmV0dXJuICRzdHI7DQogIH0NCiAgDQogIHByaXZhdGUgZnVuY3Rpb24gX3N0YXJ0c193aXRoX2RpZ2l0cygkc3RyKQ0KICB7DQogICAgcmV0dXJuIHByZWdfbWF0Y2goJy9eXGQvJywgJHN0cikgPT09IDE7DQogIH0NCiAgDQogIHByaXZhdGUgZnVuY3Rpb24gX2NvdW50KCkNCiAgew0KICAgICRpbnN0YW5jZSA9IFxjbXNfdXRpbHM6OmdldF9tb2R1bGUoICR0aGlzLT5faW5zdGFuY2VfbmFtZSk7DQogICAgJGRiID0gXGNtc191dGlsczo6Z2V0X2RiKCk7DQogIA0KICAgICRxdWVyeSA9ICdTRUxFQ1QgY291bnQoKikgRlJPTSAnDQogICAgICAgICAgICAgLiBcY21zX2RiX3ByZWZpeCgpDQogICAgICAgICAgICAgLiAnbW9kdWxlXycgLiAkaW5zdGFuY2UtPl9HZXRNb2R1bGVBbGlhcygpIC4gJ19pdGVtJzsNCiAgDQogICAgcmV0dXJuICRkYi0+R2V0T25lKCRxdWVyeSApOw0KICAgIA0KICB9DQogIA0KICBwcml2YXRlIGZ1bmN0aW9uIF9sYXN0X2lkKCkNCiAgew0KICAgICRpbnN0YW5jZSA9IFxjbXNfdXRpbHM6OmdldF9tb2R1bGUoICR0aGlzLT5faW5zdGFuY2VfbmFtZSk7DQogICAgJGRiID0gXGNtc191dGlsczo6Z2V0X2RiKCk7DQogICAgDQogICAgJHF1ZXJ5ID0gJ1NFTEVDVCBNQVgoaXRlbV9pZCkgRlJPTSAnDQogICAgICAgICAgICAgLiBcY21zX2RiX3ByZWZpeCgpDQogICAgICAgICAgICAgLiAnbW9kdWxlXycgLiAkaW5zdGFuY2UtPl9HZXRNb2R1bGVBbGlhcygpIC4gJ19pdGVtJzsNCiAgICANCiAgICByZXR1cm4gKGludCkkZGItPkdldE9uZSgkcXVlcnkpOw0KICB9DQogIA0KICBwcml2YXRlIGZ1bmN0aW9uIF9pc191bmlxdWUoJGFsaWFzKQ0KICB7DQogICAgJGluc3RhbmNlID0gXGNtc191dGlsczo6Z2V0X21vZHVsZSggJHRoaXMtPl9pbnN0YW5jZV9uYW1lKTsNCiAgICAkZGIgPSBcY21zX3V0aWxzOjpnZXRfZGIoKTsNCiAgICANCiAgICAkcXVlcnkgPSAnU0VMRUNUIGNvdW50KCopIGFzIGMgRlJPTSAnDQogICAgICAgICAgICAgLiBcY21zX2RiX3ByZWZpeCgpDQogICAgICAgICAgICAgLiAnbW9kdWxlXycgLiAkaW5zdGFuY2UtPl9HZXRNb2R1bGVBbGlhcygpDQogICAgICAgICAgICAgLiAnX2l0ZW0gV0hFUkUgYWxpYXMgPSA/JzsNCiAgICANCiAgICByZXR1cm4gIShib29sKSRkYi0+R2V0T25lKCRxdWVyeSwgYXJyYXkoJGFsaWFzKSApOw0KICB9DQogIA0KICANCiAgLyoqDQogICAqIHB1YmxpYyBtZXRob2RzDQogICAqLw0KICANCiAgcHVibGljIHN0YXRpYyBmdW5jdGlvbiBnZXRJbnN0YW5jZSgpDQogIHsNCiAgICBpZiAoc2VsZjo6JF9pbnN0YW5jZSA9PSBudWxsKXsgc2VsZjo6JF9pbnN0YW5jZSA9IG5ldyBhbGlhc19nZW5lcmF0b3IoKTt9DQogICAgDQogICAgcmV0dXJuIHNlbGY6OiRfaW5zdGFuY2U7DQogIH0NCiAgDQogIHB1YmxpYyBmdW5jdGlvbiBfcmFuZG9tX3N0cmluZygkcGFyYW1zLCAkc21hcnR5KQ0KICB7DQogICAgJGxlbmd0aCA9IGlzc2V0KCRwYXJhbXNbJ2wnXSkgPyAoaW50KSRwYXJhbXNbJ2wnXSA6IDEwOw0KICAgICRmbGFncyA9IGlzc2V0KCRwYXJhbXNbJ2YnXSkgPyAoc3RyaW5nKSRwYXJhbXNbJ2YnXSA6ICdtJzsNCiAgICANCiAgICAkZiA9IFJhbmRvbVN0cmluZzo6TUlYRUQ7DQogICAgJGZsYWdzID0gc3RyX3NwbGl0KCBzdHJ0b2xvd2VyKCRmbGFncykgKTsNCiAgICANCiAgICBmb3JlYWNoKCRmbGFncyBhcyAkZmxhZykNCiAgICB7DQogICAgICBzd2l0Y2ggKCRmbGFnKQ0KICAgICAgew0KICAgICAgICBjYXNlICdsJzoNCiAgICAgICAgICAkZiA9ICRmIHwgUmFuZG9tU3RyaW5nOjpMT1dFUjsNCiAgICAgICAgYnJlYWs7DQogICAgICAgIGNhc2UgJ3UnOg0KICAgICAgICAgICRmID0gJGYgfCBSYW5kb21TdHJpbmc6OlVQUEVSOw0KICAgICAgICBicmVhazsNCiAgICAgICAgY2FzZSAnZCc6DQogICAgICAgICAgJGYgPSAkZiB8IFJhbmRvbVN0cmluZzo6RElHSVRTOw0KICAgICAgICBicmVhazsNCiAgICAgIH0NCiAgICB9DQogICAgDQogICAgcmV0dXJuIFJhbmRvbVN0cmluZzo6Z2V0KCRsZW5ndGgsICRmKTsNCiAgfQ0KICANCiAgDQogIGZ1bmN0aW9uIF9pdGVtX3Npbmd1bGFyKCkNCiAgew0KICAgICRpbnN0YW5jZSA9IFxjbXNfdXRpbHM6OmdldF9tb2R1bGUoICR0aGlzLT5faW5zdGFuY2VfbmFtZSk7DQogICAgDQogICAgaWYoICFpc19vYmplY3QoJGluc3RhbmNlKSApIHRocm93IG5ldyBcTElTRUV4Y2VwdGlvbignQ291bGQgbm90IGxvYWQgaW5zdGFuY2UgJyAuICR0aGlzLT5faW5zdGFuY2VfbmFtZSk7DQogICAgDQogICAgcmV0dXJuICRpbnN0YW5jZS0+R2V0UHJlZmVyZW5jZSgnaXRlbV9zaW5ndWxhcicpOw0KICB9DQogIA0KICANCiAgZnVuY3Rpb24gX2l0ZW1fcGx1cmFsKCkNCiAgew0KICAgICRpbnN0YW5jZSA9IFxjbXNfdXRpbHM6OmdldF9tb2R1bGUoICR0aGlzLT5faW5zdGFuY2VfbmFtZSk7DQogICAgDQogICAgaWYoICFpc19vYmplY3QoJGluc3RhbmNlKSApIHRocm93IG5ldyBcTElTRUV4Y2VwdGlvbignQ291bGQgbm90IGxvYWQgaW5zdGFuY2UgJyAuICR0aGlzLT5faW5zdGFuY2VfbmFtZSk7DQogICAgcmV0dXJuICRpbnN0YW5jZS0+R2V0UHJlZmVyZW5jZSgnaXRlbV9wbHVyYWwnKTsNCiAgfQ0KICANCiAgcHVibGljIGZ1bmN0aW9uIF9pdGVtX3RpdGxlKCRwYXJhbXMsICRzbWFydHkpDQogIHsNCiAgICAkciA9IGVtcHR5KCR0aGlzLT5faXRlbV90aXRsZSkgPyBhcGk6OkdlbmVyYXRlVGl0bGUoKSA6ICR0aGlzLT5faXRlbV90aXRsZTsNCiAgICAkciA9IGVtcHR5KCRyKSA/ICdsaXNlX3RpdGxlX2Vycm9yJyA6JHI7DQogICAgcmV0dXJuICRyOw0KICB9DQogIA0KICBwdWJsaWMgZnVuY3Rpb24gX2l0ZW1fY291bnRlcigkcGFyYW1zLCAkc21hcnR5KQ0KICB7DQogICAgcmV0dXJuIDEgKyAkdGhpcy0+X2NvdW50KCk7DQogIH0NCiAgDQogIGZ1bmN0aW9uIF9pdGVtX25leHRfaWQoJHBhcmFtcywgJHNtYXJ0eSkNCiAgew0KICAgIHJldHVybiAxICsgJHRoaXMtPl9sYXN0X2lkKCk7DQogIH0NCiAgDQogIA0KICAvKioqICoqKiAqKiovDQogIA0KICAvKioNCiAgICogQHBhcmFtIHN0cmluZyAkaW5zdGFuY2VfbmFtZQ0KICAgKiBAcGFyYW0gc3RyaW5nICR0aXRsZQ0KICAgKg0KICAgKiBAcmV0dXJuIHN0cmluZ3xzdHJpbmdbXXxudWxsDQogICAqIEB0aHJvd3MgXExJU0VFeGNlcHRpb24NCiAgICovDQogIGZ1bmN0aW9uIGdlbmVyYXRlX25ldygkaW5zdGFuY2VfbmFtZSA9ICcnLCAkdGl0bGUgPSAnJykNCiAgew0KICAgIGlmKCBlbXB0eSgkaW5zdGFuY2VfbmFtZSkgKSAkaW5zdGFuY2VfbmFtZSA9IGFwaTo6SW5zdGFuY2VOYW1lKCk7DQogICAgJHRoaXMtPl9pbnN0YW5jZV9uYW1lID0gJGluc3RhbmNlX25hbWU7DQogICAgJHRoaXMtPl9pdGVtX3RpdGxlICAgID0gJHRpdGxlOw0KICAgICRpbnN0YW5jZSA9IFxjbXNfdXRpbHM6OmdldF9tb2R1bGUoJGluc3RhbmNlX25hbWUpOw0KICAgIA0KICAgIGlmKCAhaXNfb2JqZWN0KCRpbnN0YW5jZSkgKSB0aHJvdyBuZXcgXExJU0VFeGNlcHRpb24oJ0NvdWxkIG5vdCBsb2FkIGluc3RhbmNlICcgLiAkaW5zdGFuY2VfbmFtZSk7DQogIA0KICAgICR0ZW1wbGF0ZSA9ICRpbnN0YW5jZS0+R2V0UHJlZmVyZW5jZSgnYWxpYXNfdGVtcGxhdGUnLCAnJyk7DQogICAgDQogICAgJGNvbXBhcmUgPSAnJzsNCiAgICAkYyA9IDA7DQogICAgDQogICAgZG8NCiAgICB7DQogICAgICAkdG1wID0gJGNvbXBhcmU7DQogICAgICAkb3V0ID0gJHRoaXMtPl9wYXJzZXItPkxvYWQoJHRlbXBsYXRlKS0+UGFyc2UoKTsNCiAgICAgIA0KICAgICAgJGNvbXBhcmUgPSAkb3V0ID0gJHRoaXMtPl9jb25mb3JtKCRvdXQpOw0KICAgICAgDQogICAgICAjIHRoZSB0ZW1wbGF0ZSB3b24ndCBzb2x2ZSB1bmlxdWVuZXNzPw0KICAgICAgaWYoJHRtcCA9PT0gJGNvbXBhcmUpDQogICAgICB7DQogICAgICAgICMgd2UnbGwgYWRkIGFuIGluY3JlbWVudGFsIG51bWVyaWMgc3VmZml4IGluZiB0aGUgZm9ybSBvZiAnX24nDQogICAgICAgICR0ZXN0ID0gJG91dDsNCiAgICAgICAgDQogICAgICAgIGRvDQogICAgICAgIHsNCiAgICAgICAgICAkc3VmZml4ID0gJ18nIC4gJGMrKzsNCiAgICAgICAgICAkb3V0ID0gJHRlc3QgLiAkc3VmZml4Ow0KICAgICAgICB9DQogICAgICAgIHdoaWxlKCEkdGhpcy0+X2lzX3VuaXF1ZSgkb3V0KSk7DQogICAgICB9DQogICAgfQ0KICAgIHdoaWxlKCAhJHRoaXMtPl9pc191bmlxdWUoJG91dCkgKTsNCiAgICANCiAgICByZXR1cm4gJG91dDsNCiAgfQ0KfQ0KDQo/Pg==]]></data>
	</file>
	<file>
	  <filename>/lib/class.api.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHANCg0KDQpuYW1lc3BhY2UgTElTRTsNCg0KDQpjbGFzcyBhcGkNCnsNCiAgLyoqDQogICAqIHByaXZhdGUgcHJvcHMNCiAgICovDQogIA0KICBwcml2YXRlIHN0YXRpYyA/YXBpICRfaW5zdGFuY2UgPSBOVUxMOw0KICANCiAgDQogIC8qKg0KICAgKiBwdWJsaWMgcHJvcHMNCiAgICovDQogIA0KICAvKioNCiAgICogcHJpdmF0ZSBtZXRob2RzDQogICAqLw0KICBwcml2YXRlIGZ1bmN0aW9uIF9fY29uc3RydWN0KCl7fQ0KICANCiAgLyoqDQogICAqIGFsbG93cyBmb3Igc29tZSB0eXBlIG9mIG92ZXJsb2FkaW5nOg0KICAgKiAkaW5zdGFuY2UgY2FuIGJlIGVpdGhlciBhIHZhbGlkIExJU0UgaW5zdGFuY2UgbmFtZQ0KICAgKiBvciB0aGUgaW5zdGFuY2UgaXRzZWxmLi4uDQogICAqIGlmIGxlZnQgZW1wdHkgKE5VTEwpIGl0IHdpbGwgdHJ5IHRvIGRldGVybWluZQ0KICAgKiB0aGUgaW5zdGFuY2UgZnJvbSB0aGUgY29udGV4dA0KICAgKg0KICAgKiBAcGFyYW0gbnVsbCAkaW5zdGFuY2UNCiAgICoNCiAgICogQHJldHVybiBcTElTRUluc3RhbmNlfG51bGwNCiAgICovDQogIHByaXZhdGUgc3RhdGljIGZ1bmN0aW9uIF9vdmVybG9hZF9saXNlX2dldF9pbnN0YW5jZSgkaW5zdGFuY2UgPSBOVUxMKSA6ID9cTElTRUluc3RhbmNlDQogIHsNCiAgICAkcmV0ID0gTlVMTDsNCiAgICANCiAgICBpZiggIWlzX2EoJGluc3RhbmNlLCBcTElTRUluc3RhbmNlOjpjbGFzcykgKQ0KICAgIHsNCiAgICAgIGlmKCBpc19zdHJpbmcoJGluc3RhbmNlKSApDQogICAgICB7DQogICAgICAgIGlmKCBlbXB0eSgkaW5zdGFuY2UpICl7ICRpbnN0YW5jZSA9IHNlbGY6Okluc3RhbmNlTmFtZSgpOyB9DQogICAgICAgIA0KICAgICAgICBpZigkaW5zdGFuY2UgIT09ICdMSVNFJykNCiAgICAgICAgew0KICAgICAgICAgICRyZXQgPSBcY21zX3V0aWxzOjpnZXRfbW9kdWxlKCRpbnN0YW5jZSk7DQogICAgICAgIH0NCiAgICAgIH0NCiAgICB9DQogICAgZWxzZQ0KICAgIHsNCiAgICAgICRyZXQgPSAkaW5zdGFuY2U7DQogICAgfQ0KICAgIA0KICAgIHJldHVybiAkcmV0Ow0KICB9DQogIA0KICANCiAgLyoqDQogICAqIHB1YmxpYyBtZXRob2RzDQogICAqLw0KICANCiAgcHVibGljIHN0YXRpYyBmdW5jdGlvbiBnZXRJbnN0YW5jZSgpIDogP2FwaQ0KICB7DQogICAgaWYgKHNlbGY6OiRfaW5zdGFuY2UgPT09IG51bGwpeyBzZWxmOjokX2luc3RhbmNlID0gbmV3IHNlbGY7fQ0KICAgIA0KICAgIHJldHVybiBzZWxmOjokX2luc3RhbmNlOw0KICB9DQogIA0KICAvKioqKioqKioqKioqKioqKioqKioqKioqDQogICAqIFB1YmxpYyBBUEkNCiAgICoqKioqKioqKioqKioqKioqKioqKioqKi8NCiAgDQogIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovDQogIA0KICAvKioNCiAgICogSW5zdGFuY2UocykgZnVuY3Rpb25zDQogICAqLw0KICANCiAgLyoqDQogICAqIFRyaWVzIHRvIGRldGVybWluZSB0aGUgaW5zdGFuY2UgbmFtZQ0KICAgKiBmcm9tIHRoZSByZXF1ZXN0IGNvbnRleHQNCiAgICogd2lsbCByZXR1cm4gYW4gZW1wdHkgc3RyaW5nIGlmIGltcG9zc2libGUgdG8gZGV0ZXJtaW5lDQogICAqIG9yIHRoZSBuYW1lIG9mIHRoZSBpbnN0YW5jZQ0KICAgKg0KICAgKiBAcmV0dXJuIHN0cmluZw0KICAgKi8NCiAgcHVibGljIHN0YXRpYyBmdW5jdGlvbiBJbnN0YW5jZU5hbWUoKSA6IHN0cmluZw0KICB7DQogICAgJGluc3RhbmNlX25hbWUgPSBcY21zX3V0aWxzOjpnZXRfYXBwX2RhdGEoJ2xpc2VfaW5zdGFuY2UnKTsNCiAgICBpZiggZW1wdHkoJGluc3RhbmNlX25hbWUpICkgJGluc3RhbmNlX25hbWUgPSAnJzsNCiAgICANCiAgICByZXR1cm4gJGluc3RhbmNlX25hbWU7DQogIH0NCiAgDQogIC8qKg0KICAgKiBUcmllcyB0byBkZXRlcm1pbmUgdGhlIGluc3RhbmNlDQogICAqIGZyb20gdGhlIHJlcXVlc3QgY29udGV4dA0KICAgKiB3aWxsIHJldHVybiB0aGUgaW5zdGFuY2Ugb3IgTlVMTA0KICAgKiBpZiBpbXBvc3NpYmxlIHRvIGRldGVybWluZQ0KICAgKg0KICAgKiBAcGFyYW0gc3RyaW5nICRpbnN0YW5jZV9uYW1lDQogICAqDQogICAqIEByZXR1cm4gXExJU0VJbnN0YW5jZXxudWxsDQogICAqLw0KICBwdWJsaWMgc3RhdGljIGZ1bmN0aW9uIEluc3RhbmNlT2JqKCRpbnN0YW5jZV9uYW1lID0gJycpIDogP1xMSVNFSW5zdGFuY2UNCiAgew0KICAgICRvYmogPSBOVUxMOw0KICAgIA0KICAgIGlmKCBlbXB0eSgkaW5zdGFuY2VfbmFtZSkgKQ0KICAgIHsNCiAgICAgICRpbnN0YW5jZV9uYW1lID0gc2VsZjo6SW5zdGFuY2VOYW1lKCk7DQogICAgfQ0KICAgIA0KICAgIGlmKCAhZW1wdHkoJGluc3RhbmNlX25hbWUpICkNCiAgICB7DQogICAgICAkb2JqID0gc2VsZjo6X292ZXJsb2FkX2xpc2VfZ2V0X2luc3RhbmNlKCRpbnN0YW5jZV9uYW1lKTsNCiAgICAgIA0KICAgICAgaWYoIGlzX2EoJG9iaiwgXExJU0VJbnN0YW5jZTo6Y2xhc3MpICkgeyByZXR1cm4gJG9iajsgfQ0KICAgIH0NCiAgICANCiAgICByZXR1cm4gJG9iajsNCiAgfQ0KICANCiAgLyoqDQogICAqIEdpdmVuIGEgTElTRSBpbnN0YW5jZSBuYW1lDQogICAqIHJldHVybiBpdHMgY29uZmlndXJhdGlvbiBvYmplY3QNCiAgICoNCiAgICogQHBhcmFtICRtb2RfbmFtZQ0KICAgKg0KICAgKiBAcmV0dXJuIFxMSVNFQ29uZmlnDQogICAqLw0KICBwdWJsaWMgc3RhdGljIGZ1bmN0aW9uIEdldENvbmZpZ0Zvckluc3RhbmNlTmFtZSgkbW9kX25hbWUgPSAnTElTRScpIDogXExJU0VDb25maWcNCiAgew0KICAgIHJldHVybiBDb25maWdNYW5hZ2VyOjpHZXRDb25maWdGb3JJbnN0YW5jZU5hbWUoJG1vZF9uYW1lKTsNCiAgfQ0KICANCiAgLyoqDQogICAqIEdpdmVuIGEgTElTRSBpbnN0YW5jZSBuYW1lDQogICAqIG9yIGluc3RhbmNlIG9iamVjdA0KICAgKiByZXR1cm4gaXRzIGNvbmZpZ3VyYXRpb24gb2JqZWN0DQogICAqDQogICAqIE5PVEU6IGl0IHdvbid0IHdvcmsgZm9yIHRoZSBMSVNFDQogICAqIG1haW4gbW9kdWxlDQogICAqDQogICAqIEBwYXJhbSAkaW5zdGFuY2UNCiAgICoNCiAgICogQHJldHVybiBcTElTRUNvbmZpZw0KICAgKi8NCiAgcHVibGljIHN0YXRpYyBmdW5jdGlvbiBHZXRDb25maWdGb3JJbnN0YW5jZSgkaW5zdGFuY2UpIDogXExJU0VDb25maWcNCiAgew0KICAgICRpbnN0YW5jZSA9IHNlbGY6Ol9vdmVybG9hZF9saXNlX2dldF9pbnN0YW5jZSgkaW5zdGFuY2UpOw0KICAgIA0KICAgIHJldHVybiBDb25maWdNYW5hZ2VyOjpHZXRDb25maWdJbnN0YW5jZSgkaW5zdGFuY2UpOw0KICB9DQogIA0KICAvKioNCiAgICogQHBhcmFtIG51bGwgJG1vZGUNCiAgICoNCiAgICogQHJldHVybiBhcnJheQ0KICAgKiBAdGhyb3dzIFxFeGNlcHRpb24NCiAgICovDQogIHB1YmxpYyBzdGF0aWMgZnVuY3Rpb24gR2V0SW5zdGFuY2VzTGlzdCgkbW9kZSA9IE5VTEwpIDogYXJyYXkNCiAgew0KICAgIHJldHVybiBpbnN0YW5jZXNfb3BlcmF0aW9uczo6TGlzdE1vZHVsZXMoJG1vZGUpOw0KICB9DQogIA0KICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLw0KICANCiAgLyoqDQogICAqIEl0ZW1zIGZ1bmN0aW9ucw0KICAgKi8NCiAgDQogIC8qKg0KICAgKiBAcGFyYW0gICAgICAkaWRlbnRpZmllciAtIGEgdmFsaWQgaWRlbnRpZmllciBAc2VlIExJU0VJdGVtT3BlcmF0aW9ucw0KICAgKiBAcGFyYW0gICAgICAkdmFsdWUgICAgICAtIHRoZSB2YWx1ZSB0byBzZWFyY2ggZm9yIHdpdGhpbiB0aGUgaWRlbnRpZmllcg0KICAgKiBAcGFyYW0gYm9vbCAkbm9mZHMgICAgICAtIHdoZXRoZXIgdG8gbG9hZCB0aGUgZmllbGRzIG9yIG5vdA0KICAgKiBAcGFyYW0gbnVsbCAkaW5zdGFuY2UgLSB0aGUgaW5zdGFuY2Ugd2UgYXJlIHdvcmtpbmcgd2l0aA0KICAgKiAgICAgICAgICAgICAgICAgICAgICAgKHRoZSBBUEkgd2lsbCB0cnkgdG8gZGV0ZXJtaW5lIHRoZSBjdXJyZW50IGluc3RhbmNlDQogICAqICAgICAgICAgICAgICAgICAgICAgICBmcm9tIHRoZSBhY3Rpb24sIGJ1dCBpdCBtYXkgZmFpbCkNCiAgICoNCiAgICogQHJldHVybiBcTElTRUl0ZW18bWl4ZWR8bnVsbA0KICAgKiBAdGhyb3dzIFxMSVNFRXhjZXB0aW9uDQogICAqIEB0aHJvd3MgXExJU0VcRXhjZXB0aW9uDQogICAqLw0KICBwdWJsaWMgc3RhdGljIGZ1bmN0aW9uIExvYWRJdGVtQnlJZGVudGlmaWVyKCRpZGVudGlmaWVyLCAkdmFsdWUsICRub2ZkcyA9IEZBTFNFLCAkaW5zdGFuY2UgPSBOVUxMKQ0KICB7DQogICAgJGluc3RhbmNlID0gc2VsZjo6X292ZXJsb2FkX2xpc2VfZ2V0X2luc3RhbmNlKCRpbnN0YW5jZSk7DQogIA0KICAgIGlmKCEkaW5zdGFuY2UpDQogICAgew0KICAgICAgdGhyb3cgbmV3IFxMSVNFRXhjZXB0aW9uKCdDb3VsZCBub3QgZGV0ZXJtaW5lIGluc3RhbmNlJyk7DQogICAgfQ0KICANCiAgICByZXR1cm4gJGluc3RhbmNlLT5Mb2FkSXRlbUJ5SWRlbnRpZmllcigkaWRlbnRpZmllciwgJHZhbHVlLCAkbm9mZHMpOw0KICB9DQogIA0KICAvKioNCiAgICogQHBhcmFtIG51bGwgJGl0ZW0NCiAgICogQHBhcmFtIG51bGwgJGluc3RhbmNlDQogICAqDQogICAqIEB0aHJvd3MgXExJU0VFeGNlcHRpb24NCiAgICovDQogIHB1YmxpYyBzdGF0aWMgZnVuY3Rpb24gU2F2ZUl0ZW0oJGl0ZW0gPSBOVUxMLCAkaW5zdGFuY2UgPSBOVUxMKQ0KICB7DQogICAgJGluc3RhbmNlID0gc2VsZjo6X292ZXJsb2FkX2xpc2VfZ2V0X2luc3RhbmNlKCRpbnN0YW5jZSk7DQogIA0KICAgIGlmKCEkaW5zdGFuY2UpDQogICAgew0KICAgICAgdGhyb3cgbmV3IFxMSVNFRXhjZXB0aW9uKCdDb3VsZCBub3QgZGV0ZXJtaW5lIGluc3RhbmNlJyk7DQogICAgfQ0KICB9DQogIA0KICAvKioNCiAgICogQHBhcmFtIGludCAgJGN1cnJlbnRfaWQNCiAgICogQHBhcmFtIGJvb2wgJGJ5X3Bvc2l0aW9uDQogICAqIEBwYXJhbSBudWxsICRpbnN0YW5jZQ0KICAgKg0KICAgKiBAcmV0dXJuIGJvb2x8bWl4ZWQNCiAgICogQHRocm93cyBcTElTRUV4Y2VwdGlvbg0KICAgKiBAdGhyb3dzIFxFeGNlcHRpb24NCiAgICovDQogIHB1YmxpYyBzdGF0aWMgZnVuY3Rpb24gUHJldmlvdXNJdGVtKCRjdXJyZW50X2lkID0gLTEsICRieV9wb3NpdGlvbiA9IFRSVUUsICRpbnN0YW5jZSA9IE5VTEwsICRwYXJhbXMgPSBbXSkNCiAgew0KICAgICRpbnN0YW5jZSA9IHNlbGY6Ol9vdmVybG9hZF9saXNlX2dldF9pbnN0YW5jZSgkaW5zdGFuY2UpOw0KICAgIA0KICAgIGlmKCEkaW5zdGFuY2UpDQogICAgew0KICAgICAgdGhyb3cgbmV3IFxMSVNFRXhjZXB0aW9uKCdDb3VsZCBub3QgZGV0ZXJtaW5lIGluc3RhbmNlJyk7DQogICAgfQ0KICAgIA0KICAgIHJldHVybiBcTElTRUl0ZW1PcGVyYXRpb25zOjpwcmV2aW91c19mcm9tX2N1cnJlbnQoJGN1cnJlbnRfaWQsICRpbnN0YW5jZSwgJGJ5X3Bvc2l0aW9uLCAkcGFyYW1zKTsNCiAgfQ0KICANCiAgLyoqDQogICAqIEBwYXJhbSBpbnQgICRjdXJyZW50X2lkDQogICAqIEBwYXJhbSBib29sICRieV9wb3NpdGlvbg0KICAgKiBAcGFyYW0gbnVsbCAkaW5zdGFuY2UNCiAgICoNCiAgICogQHJldHVybiBib29sfG1peGVkDQogICAqIEB0aHJvd3MgXExJU0VFeGNlcHRpb24NCiAgICovDQogIHB1YmxpYyBzdGF0aWMgZnVuY3Rpb24gTmV4dEl0ZW0oJGN1cnJlbnRfaWQgPSAtMSwgJGJ5X3Bvc2l0aW9uID0gVFJVRSwgJGluc3RhbmNlID0gTlVMTCkNCiAgew0KICAgICRpbnN0YW5jZSA9IHNlbGY6Ol9vdmVybG9hZF9saXNlX2dldF9pbnN0YW5jZSgkaW5zdGFuY2UpOw0KICAgIA0KICAgIGlmKCEkaW5zdGFuY2UpDQogICAgew0KICAgICAgdGhyb3cgbmV3IFxMSVNFRXhjZXB0aW9uKCdDb3VsZCBub3QgZGV0ZXJtaW5lIGluc3RhbmNlJyk7DQogICAgfQ0KICAgIA0KICAgIHJldHVybiBcTElTRUl0ZW1PcGVyYXRpb25zOjpuZXh0X2Zyb21fY3VycmVudCgkY3VycmVudF9pZCwgJGluc3RhbmNlLCAkYnlfcG9zaXRpb24pOw0KICB9DQogIA0KICAvKioNCiAgICogR2VuZXJhdGUgYSB0aXRsZSBmcm9tIHRoZSBpbnN0YW5jZSB0ZW1wbGF0ZQ0KICAgKiBJZiAkaW5zdGFuY2VfbmFtZSBpcyBlbXB0eSBvciBpbnZhbGlkDQogICAqIGFuZCBjYW5ub3QgYmUgZGV0ZXJtaW5lZCBmcm9tIHRoZSByZXF1ZXN0IGNvbnRleHQNCiAgICogaXQgd2lsbCB0aHJvdyBhbiBleGNlcHRpb24NCiAgICoNCiAgICogQHBhcmFtIHN0cmluZyAkaW5zdGFuY2VfbmFtZQ0KICAgKg0KICAgKiBAcmV0dXJuIG1peGVkfHN0cmluZw0KICAgKiBAdGhyb3dzIFxMSVNFRXhjZXB0aW9uDQogICAqLw0KICBwdWJsaWMgc3RhdGljIGZ1bmN0aW9uIEdlbmVyYXRlVGl0bGUoJGluc3RhbmNlX25hbWUgPSAnJykNCiAgew0KICAgIGlmKCBlbXB0eSgkaW5zdGFuY2VfbmFtZSkgKXsgJGluc3RhbmNlX25hbWUgPSBzZWxmOjpJbnN0YW5jZU5hbWUoKTsgfQ0KDQogICAgdHJ5DQogICAgew0KICAgICAgJG91dCA9IHRpdGxlX2dlbmVyYXRvcjo6Z2V0SW5zdGFuY2UoKS0+Z2VuZXJhdGVfbmV3KCRpbnN0YW5jZV9uYW1lKTsNCiAgICB9DQogICAgY2F0Y2goXEV4Y2VwdGlvbiAkZSkNCiAgICB7DQogICAgICAkb3V0ID0gJy0tZXJyb3ItLSc7DQogICAgfQ0KICAgIA0KICAgIHJldHVybiAkb3V0Ow0KICB9DQogIA0KICAvKioNCiAgICogQHBhcmFtIHN0cmluZyAkaW5zdGFuY2VfbmFtZQ0KICAgKiBAcGFyYW0gc3RyaW5nICR0aXRsZQ0KICAgKiBAcGFyYW0gaW50ICAgICRpaWQNCiAgICogQHBhcmFtIGludCAgICAkY2lkDQogICAqDQogICAqIEByZXR1cm4gc3RyaW5nDQogICAqLw0KICBwdWJsaWMgc3RhdGljIGZ1bmN0aW9uIEdlbmVyYXRlU2x1ZygkdGl0bGUgPSAnJywgJGlpZCA9IC0xLCAkY2lkID0gLTEsICRpbnN0YW5jZV9uYW1lID0gJycpIDogc3RyaW5nDQogIHsNCiAgICBpZiggZW1wdHkoJGluc3RhbmNlX25hbWUpICl7ICRpbnN0YW5jZV9uYW1lID0gc2VsZjo6SW5zdGFuY2VOYW1lKCk7IH0NCg0KICAgIHRyeQ0KICAgIHsNCiAgICAgICRvdXQgPSBzbHVnX2dlbmVyYXRvcjo6Z2V0SW5zdGFuY2UoKS0+Z2VuZXJhdGVfbmV3KCRpbnN0YW5jZV9uYW1lLCAkdGl0bGUsICRpaWQsICRjaWQpOw0KICAgIH0NCiAgICBjYXRjaChcRXhjZXB0aW9uICRlKQ0KICAgIHsNCiAgICAgICRvdXQgPSAnLS1lcnJvci0tJzsNCiAgICB9DQogICAgDQogICAgcmV0dXJuICRvdXQ7DQogIH0NCiAgDQogIC8qKg0KICAgKiBHZW5lcmF0ZSBhbiBhbGlhcyBmcm9tIHRoZSBpbnN0YW5jZSB0ZW1wbGF0ZQ0KICAgKiBJZiAkaW5zdGFuY2VfbmFtZSBpcyBlbXB0eSBvciBpbnZhbGlkDQogICAqIGFuZCBjYW5ub3QgYmUgZGV0ZXJtaW5lZCBmcm9tIHRoZSByZXF1ZXN0IGNvbnRleHQNCiAgICogaXQgd2lsbCB0aHJvdyBhbiBleGNlcHRpb24NCiAgICoNCiAgICogaWYgdGl0bGUgaXMgZW1wdHkgYSBuZXcgb25lIHdpbGwgYmUgZ2VuZXJhdGVkDQogICAqIGZyb20gdGhlIGluc3RhbmNlIHRlbXBsYXRlIGZvciB0aXRsZXMNCiAgICoNCiAgICogQHBhcmFtIHN0cmluZyAkaW5zdGFuY2VfbmFtZQ0KICAgKiBAcGFyYW0gc3RyaW5nICR0aXRsZQ0KICAgKg0KICAgKiBAcmV0dXJuIHN0cmluZw0KICAgKi8NCiAgcHVibGljIHN0YXRpYyBmdW5jdGlvbiBHZW5lcmF0ZUFsaWFzKCR0aXRsZSA9ICcnLCAkaW5zdGFuY2VfbmFtZSA9ICcnKSA6IHN0cmluZw0KICB7DQogICAgaWYoIGVtcHR5KCRpbnN0YW5jZV9uYW1lKSApeyAkaW5zdGFuY2VfbmFtZSA9IHNlbGY6Okluc3RhbmNlTmFtZSgpOyB9DQogICAgDQogICAgdHJ5DQogICAgew0KICAgICAgJG91dCA9IGFsaWFzX2dlbmVyYXRvcjo6Z2V0SW5zdGFuY2UoKS0+Z2VuZXJhdGVfbmV3KCRpbnN0YW5jZV9uYW1lLCAkdGl0bGUpOw0KICAgIH0NCiAgICBjYXRjaChcRXhjZXB0aW9uICRlKQ0KICAgIHsNCiAgICAgICRvdXQgPSAnLS1lcnJvci0tJzsNCiAgICB9DQogICAgDQogICAgcmV0dXJuICRvdXQ7DQogIH0NCiAgDQogIC8qKg0KICAgKiBUZXN0cyBpZiBmb3IgYSBkdXBsaWNhdGUgSXRlbSBieSBpdGVtX2lkIG9yIGFsaWFzIG9yIGJvdGgNCiAgICoNCiAgICogQHBhcmFtIHN0cmluZyAkaW5zdGFuY2VfbmFtZQ0KICAgKiBAcGFyYW0gaW50ICAgICRpZA0KICAgKiBAcGFyYW0gc3RyaW5nICRhbGlhcw0KICAgKg0KICAgKiBAcmV0dXJuIGJvb2wNCiAgICogQHRocm93cyBcRXhjZXB0aW9uDQogICAqLw0KICBwdWJsaWMgc3RhdGljIGZ1bmN0aW9uIElzRHVwbGljYXRlSXRlbSgkaWQgPSAtMSwgJGFsaWFzID0gJycsICRpbnN0YW5jZV9uYW1lID0gJycpIDogYm9vbA0KICB7DQogICAgaWYoIGVtcHR5KCRpbnN0YW5jZV9uYW1lKSApeyAkaW5zdGFuY2VfbmFtZSA9IHNlbGY6Okluc3RhbmNlTmFtZSgpOyB9DQogICAgDQogICAgJG1vZCA9IHNlbGY6Okluc3RhbmNlT2JqKCRpbnN0YW5jZV9uYW1lKTsNCiAgICANCiAgICBpZiggIWlzX29iamVjdCgkbW9kKSApeyByZXR1cm4gRkFMU0U7IH0NCiAgICANCiAgICBpZigkaWQgPiAwICYmICFlbXB0eSgkYWxpYXMpICl7IHJldHVybiBcTElTRUl0ZW1PcGVyYXRpb25zOjppc19kdXBsaWNhdGUoJG1vZCwgJGlkLCAkYWxpYXMpOyB9DQogICAgDQogICAgaWYoJGlkID4gMCl7IHJldHVybiBcTElTRUl0ZW1PcGVyYXRpb25zOjppc19kdXBsaWNhdGVfaWQoJG1vZCwgJGlkKTsgfQ0KICAgIA0KICAgIHJldHVybiBcTElTRUl0ZW1PcGVyYXRpb25zOjppc19kdXBsaWNhdGVfYWxpYXMoJG1vZCwgJGFsaWFzKTsNCiAgDQogIH0NCiAgDQogIC8qKg0KICAgKiBmaWVsZHMgZnVuY3Rpb25zDQogICAqLw0KICANCiAgcHVibGljIHN0YXRpYyBmdW5jdGlvbiBMb2FkRmllbGREZWZpbml0aW9ucygpDQogIHsNCiAgICBcTElTRUZpZWxkZGVmT3BlcmF0aW9uczo6R2V0UmVnaXN0ZXJlZEZpZWxkZGVmcygpOw0KICB9DQogIA0KICAvKioNCiAgICogR2V0IGFsbCBmaWVsZCBhbGlhc2VzIGZvciBhIHNwZWNpZmljIGluc3RhbmNlDQogICAqDQogICAqIEBwYXJhbSAkbWluaW1hbCAtIHdoZXRoZXIgdGhlIGhlbHAgdGV4dCBhbmQgdGhlICJyZXF1aXJlZCIgaWNvbiBzaG91bGQgYmUgcmV0dXJuZWQNCiAgICogQHBhcmFtICRpbnN0YW5jZV9uYW1lDQogICAqDQogICAqIEByZXR1cm4gYXJyYXl8ZmFsc2UNCiAgICovDQogIHB1YmxpYyBzdGF0aWMgZnVuY3Rpb24gR2V0RmllbGRzUmVxdWlyZW1lbnRzKCRtaW5pbWFsID0gVFJVRSwgJGluc3RhbmNlX25hbWUgPSAnJykNCiAgew0KICAgIGlmKCBlbXB0eSgkaW5zdGFuY2VfbmFtZSkgKXsgJGluc3RhbmNlX25hbWUgPSBzZWxmOjpJbnN0YW5jZU5hbWUoKTsgfQ0KICANCiAgICAkbW9kID0gc2VsZjo6SW5zdGFuY2VPYmooJGluc3RhbmNlX25hbWUpOw0KICANCiAgICBpZiggIWlzX29iamVjdCgkbW9kKSApeyByZXR1cm4gRkFMU0U7IH0NCiAgICANCiAgICByZXR1cm4gXExJU0VGaWVsZGRlZk9wZXJhdGlvbnM6OkdldERiVmFsdWVzUmVxdWlyZW1lbnRzKCRtb2QsICRtaW5pbWFsKTsNCiAgfQ0KICANCiAgDQogIC8qKg0KICAgKiBnZW5lcmFsIHV0aWxzDQogICAqLw0KICANCiAgLyoqDQogICAqIEdldCB0aGUgQ29yZSBEQiBjb25uZWN0aW9uDQogICAqDQogICAqIEByZXR1cm4gXENNU01TXERhdGFiYXNlXENvbm5lY3Rpb24NCiAgICogQHRocm93cyBcRXhjZXB0aW9uDQogICAqLw0KICBwdWJsaWMgc3RhdGljIGZ1bmN0aW9uIERCKCkgOiBcQ01TTVNcRGF0YWJhc2VcQ29ubmVjdGlvbg0KICB7DQogICAgcmV0dXJuIFxjbXNfdXRpbHM6OmdldF9kYigpOw0KICB9DQogIA0KICAvKioNCiAgICogR2V0IENNU01TIGNvcmUgc21hcnR5IG9iamVjdA0KICAgKiBAcmV0dXJuIFxTbWFydHlfQ01TDQogICAqLw0KICBwdWJsaWMgc3RhdGljIGZ1bmN0aW9uIFNtYXJ0eSgpIDogXFNtYXJ0eV9DTVMNCiAgew0KICAgIHJldHVybiBcY21zX3V0aWxzOjpnZXRfc21hcnR5KCk7DQogIH0NCn0NCg0KPz4=]]></data>
	</file>
	<file>
	  <filename>/lib/class.app_storage.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHANCg0KDQpuYW1lc3BhY2UgTElTRTsNCg0KDQovKioNCiAqIENsYXNzIGFwcF9zdG9yYWdlDQogKg0KICogQHBhY2thZ2UgTElTRQ0KICovDQpmaW5hbCBjbGFzcyBhcHBfc3RvcmFnZQ0Kew0KICAvKioNCiAgICogQHZhciBcTElTRVxhcHBfc3RvcmFnZXxudWxsDQogICAqLw0KICBwcml2YXRlIHN0YXRpYyA/YXBwX3N0b3JhZ2UgJF9pbnN0YW5jZSA9IE5VTEw7DQogIC8qKg0KICAgKiBAdmFyIGFycmF5DQogICAqLw0KICBwcm90ZWN0ZWQgYXJyYXkgICAgICAgICAgICAgJF9kYXRhID0gW107DQogIA0KICAvKioNCiAgICogYXBwX3N0b3JhZ2UgY29uc3RydWN0b3IuDQogICAqLw0KICBwcml2YXRlIGZ1bmN0aW9uIF9fY29uc3RydWN0KCl7fQ0KICANCiAgLyoqDQogICAqIEByZXR1cm4gXExJU0VcYXBwX3N0b3JhZ2UNCiAgICovDQogIHB1YmxpYyBzdGF0aWMgZnVuY3Rpb24gZ2V0SW5zdGFuY2UoKQ0KICB7DQogICAgaWYoc2VsZjo6JF9pbnN0YW5jZSA9PT0gTlVMTCkNCiAgICB7DQogICAgICBzZWxmOjokX2luc3RhbmNlID0gbmV3IGFwcF9zdG9yYWdlKCk7DQogICAgfQ0KICAgIA0KICAgIHJldHVybiBzZWxmOjokX2luc3RhbmNlOw0KICB9DQogIA0KICAvKioNCiAgICogQHJldHVybiBhcnJheQ0KICAgKi8NCiAgcHVibGljIGZ1bmN0aW9uIF9fZGVidWdJbmZvKCkNCiAgew0KICAgIHJldHVybiAkdGhpcy0+X2RhdGE7DQogIH0NCiAgDQogIC8qKg0KICAgKiBAcGFyYW0gJG5hbWUNCiAgICogQHBhcmFtICR2YWx1ZQ0KICAgKi8NCiAgcHVibGljIGZ1bmN0aW9uIF9fc2V0KCRuYW1lLCAkdmFsdWUpDQogIHsNCiAgICAkdGhpcy0+X2RhdGFbJG5hbWVdID0gJHZhbHVlOw0KICB9DQogIA0KICAvKioNCiAgICogQHBhcmFtICRuYW1lDQogICAqDQogICAqIEByZXR1cm4gYm9vbA0KICAgKi8NCiAgcHVibGljIGZ1bmN0aW9uIF9faXNzZXQoJG5hbWUpDQogIHsNCiAgICByZXR1cm4gaXNzZXQoJHRoaXMtPl9kYXRhWyRuYW1lXSk7DQogIH0NCiAgDQogIC8qKg0KICAgKiBAcGFyYW0gJG5hbWUNCiAgICoNCiAgICogQHJldHVybiBtaXhlZHxudWxsDQogICAqLw0KICBwdWJsaWMgZnVuY3Rpb24gX19nZXQoJG5hbWUpDQogIHsNCiAgICByZXR1cm4gJHRoaXMtPl9kYXRhWyRuYW1lXSA/PyBOVUxMOw0KICB9DQogIA0KICAvKioNCiAgICogQHJldHVybiBhcnJheQ0KICAgKi8NCiAgcHVibGljIGZ1bmN0aW9uIGdldERhdGEoKSA6IGFycmF5DQogIHsNCiAgICByZXR1cm4gJHRoaXMtPl9kYXRhOw0KICB9DQogIA0KICAvKioNCiAgICogQHBhcmFtIGFycmF5ICRkYXRhDQogICAqDQogICAqIEByZXR1cm4gYXBwX3N0b3JhZ2UNCiAgICovDQogIHB1YmxpYyBmdW5jdGlvbiBzZXREYXRhKGFycmF5ICRkYXRhKSA6IGFwcF9zdG9yYWdlDQogIHsNCiAgICAkdGhpcy0+X2RhdGEgPSAkZGF0YTsNCiAgICANCiAgICByZXR1cm4gJHRoaXM7DQogIH0NCn0NCg0KPz4=]]></data>
	</file>
	<file>
	  <filename>/lib/class.Collection.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHANCg0KDQpuYW1lc3BhY2UgTElTRTsNCg0KDQpjbGFzcyBDb2xsZWN0aW9uIGV4dGVuZHMgTW9ycGhhYmxlDQp7DQogIC8qKg0KICAgKiBwYXJhbXMNCiAgICogaW4gYSBrZXkgPT4gdmFsdWUgZm9ybWF0DQogICAqIEB2YXIgYXJyYXkNCiAgICovDQogIHByb3RlY3RlZCBhcnJheSAkX2l0ZW1zID0gW107DQogIA0KICANCiAgIy0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KICAjIFByaXZhdGUgbWV0aG9kcw0KICAjLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQogIA0KICAvKioNCiAgICogQHJldHVybiBhcnJheQ0KICAgKi8NCiAgcHJpdmF0ZSBmdW5jdGlvbiBfdG9fYXJyYXkoKSA6IGFycmF5DQogIHsNCiAgICAkciA9IFtdOw0KICAgIA0KICAgIGZvcmVhY2goJHRoaXMtPl9pdGVtcyBhcyAkb25lKQ0KICAgIHsNCiAgICAgICRrZXkgPSBwcmVnX3JlcGxhY2UoJy9eXy8nLCAnJywgJG9uZSk7DQogICAgICAkclska2V5XSA9ICR0aGlzLT4kb25lOw0KICAgIH0NCiAgICANCiAgICByZXR1cm4gJHI7DQogIH0NCiAgDQogIC8qKg0KICAgKiBAcGFyYW0gJGFycmF5DQogICAqLw0KICBwcml2YXRlIGZ1bmN0aW9uIF9mcm9tX2FycmF5KCRhcnJheSkgOiB2b2lkDQogIHsNCiAgICBmb3JlYWNoKCR0aGlzLT5fZ2V0X3Byb3BzKCkgYXMgJG9uZSkNCiAgICB7DQogICAgICAka2V5ID0gcHJlZ19yZXBsYWNlKCcvXl8vJywgJycsICRvbmUpOw0KICAgICAgJG1ldGhvZCA9ICdzZXQnIC4gJGtleTsNCiAgICAgICR0aGlzLT4kbWV0aG9kKCRhcnJheVska2V5XSk7DQogICAgfQ0KICB9DQogIA0KICAvKioNCiAgICogQHJldHVybiBhcnJheQ0KICAgKi8NCiAgcHJpdmF0ZSBmdW5jdGlvbiBfZ2V0X3Byb3BzKCkgOiBhcnJheQ0KICB7DQogICAgcmV0dXJuIGFycmF5X2tleXMoICR0aGlzLT5faXRlbXMgKTsNCiAgfQ0KICANCiAgIy0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KICAjIE1hZ2ljIG1ldGhvZHMNCiAgIy0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KICANCiAgLyoqDQogICAqIENvbGxlY3Rpb24gY29uc3RydWN0b3IuDQogICAqDQogICAqIEBwYXJhbSBhcnJheXxcRWxlbWVudHNcRGF0YXxOVUxMICRkYXRhDQogICAqLw0KICBwdWJsaWMgZnVuY3Rpb24gX19jb25zdHJ1Y3QoJGFycmF5ID0gW10pDQogIHsNCiAgICBwYXJlbnQ6Ol9fY29uc3RydWN0KCk7DQogICAgDQogICAgaWYoIGlzc2V0KCRhcnJheSkgKQ0KICAgIHsNCiAgICAgICR0aGlzLT5fZnJvbV9hcnJheSgkYXJyYXkpOw0KICAgIH0NCiAgfQ0KICANCiAgLyoqDQogICAqIEBwYXJhbSAkbmFtZQ0KICAgKg0KICAgKiBAcmV0dXJuIG1peGVkDQogICAqLw0KICBwdWJsaWMgZnVuY3Rpb24gX19nZXQoJG5hbWUpDQogIHsNCiAgICByZXR1cm4gJHRoaXMtPl9pdGVtc1skbmFtZV0gPz8gTlVMTDsNCiAgfQ0KICANCiAgLyoqDQogICAqIEBwYXJhbSAkbmFtZQ0KICAgKiBAcGFyYW0gJHZhbHVlDQogICAqDQogICAqIEByZXR1cm4gJHRoaXMNCiAgICovDQogIHB1YmxpYyBmdW5jdGlvbiBfX3NldCgkbmFtZSwgJHZhbHVlKQ0KICB7DQogICAgJHRoaXMtPl9pdGVtc1skbmFtZV0gPSAkdmFsdWU7DQogICAgDQogICAgcmV0dXJuICR0aGlzOw0KICB9DQogIA0KICAvKioNCiAgICogQHJldHVybiBzdHJpbmcNCiAgICovDQogIHB1YmxpYyBmdW5jdGlvbiBfX3RvU3RyaW5nKCkNCiAgew0KICAgIHJldHVybiBpbXBsb2RlKCcsJywgJHRoaXMtPl9pdGVtcyk7DQogIH0NCiAgDQogIA0KICANCiAgcHVibGljIGZ1bmN0aW9uIEZyb21BcnJheSgkYXJyYXkgPSBbXSkNCiAgew0KICAgICR0aGlzLT5fZnJvbV9hcnJheSgkYXJyYXkpOw0KICB9DQogIA0KICAvKioNCiAgICogQHJldHVybiBhcnJheQ0KICAgKi8NCiAgcHVibGljIGZ1bmN0aW9uIEFzQXJyYXkoKQ0KICB7DQogICAgcmV0dXJuICR0aGlzLT5fdG9fYXJyYXkoKTsNCiAgfQ0KICANCiAgLyoqDQogICAqIEByZXR1cm4gb2JqZWN0DQogICAqLw0KICBwdWJsaWMgZnVuY3Rpb24gQXNTdGRDbGFzcygpDQogIHsNCiAgICByZXR1cm4gKG9iamVjdCkkdGhpcy0+X3RvX2FycmF5KCk7DQogIH0NCn0NCg0KPz4=]]></data>
	</file>
	<file>
	  <filename>/lib/class.ConfigManager.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHANCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQojIExJU0UgLSBMaXN0IEl0IFNwZWNpYWwgRWRpdGlvbg0KIyBWZXJzaW9uIDEuMg0KIyBBIGZvcmsgb2YgTGlzdEkyDQojIG1haW50YWluZWQgYnkgRmVybmFuZG8gTW9yZ2FkbyBBS0EgSm8gTW9yZw0KIyBzaW5jZSAyMDE1DQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIw0KIyBPcmlnaW5hbCBBdXRob3I6IEJlbiBNYWxlbiwgPGJlbkBjb25jZXB0ZmFjdG9yeS5jb20uYXU+DQojIENvLU1haW50YWluZXI6IFNpbW9uIFJhZGZvcmQsIDxzaW1vbkBjb25jZXB0ZmFjdG9yeS5jb20uYXU+DQojIFdlYjogd3d3LmNvbmNlcHRmYWN0b3J5LmNvbS5hdQ0KIw0KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCiMNCiMgTWFpbnRhaW5lciBzaW5jZSAyMDExIHVwIHRvIDIwMTQ6IEpvbmF0aGFuIFNjaG1pZCwgPGhpQGpvbmF0aGFuc2NobWlkLmRlPg0KIyBXZWI6IHd3dy5qb25hdGhhbnNjaG1pZC5kZQ0KIw0KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCiMNCiMgU29tZSB3YWNrb3Mgc3RhcnRlZCBkZXN0cm95aW5nIHN0dWZmIHNpbmNlIDIwMTIgYW5kIHN0b3BwZWQgYXQgMjAxNDoNCiMNCiMgVGFwaW8gTMO2eXR0eSwgPHRhcHNhQG9yYW5nZS1tZWRpYS5maT4NCiMgV2ViOiB3d3cub3JhbmdlLW1lZGlhLmZpDQojDQojIEdvcmFuIElsaWMsIDx1bmlxdTNlQGdtYWlsLmNvbT4NCiMgV2ViOiB3d3cuaWNoLW1hY2gtZGFzLmF0DQojDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIw0KIyBMSVNFIGlzIGEgQ01TIE1hZGUgU2ltcGxlIG1vZHVsZSB0aGF0IGVuYWJsZXMgdGhlIHdlYiBkZXZlbG9wZXIgdG8gY3JlYXRlDQojIG11bHRpcGxlIGxpc3RzIHRocm91Z2hvdXQgYSBzaXRlLiBJdCBjYW4gYmUgZHVwbGljYXRlZCBhbmQgZ2l2ZW4gZnJpZW5kbHkNCiMgbmFtZXMgZm9yIGVhc2llciBjbGllbnQgbWFpbnRlbmFuY2UuDQojDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIyBCRUdJTl9MSUNFTlNFDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIyBUaGlzIGZpbGUgaXMgcGFydCBvZiBMSVNFDQojIExJU0UgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5DQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5DQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yDQojIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uDQojDQojIExJU0UgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLA0KIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZg0KIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlDQojIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuDQojIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlDQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlDQojIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcgVVNBDQojIE9yIHJlYWQgaXQgb25saW5lOiBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwNCiMNCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQojIEVORF9MSUNFTlNFDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KbmFtZXNwYWNlIExJU0U7DQpmaW5hbCBjbGFzcyBDb25maWdNYW5hZ2VyDQp7DQogIHByaXZhdGUgc3RhdGljICRfaW5zdGFuY2VzID0gYXJyYXkoKTsgDQogIA0KICBwdWJsaWMgc3RhdGljIGZ1bmN0aW9uIEdldENvbmZpZ0luc3RhbmNlKFxMSVNFICRtb2QpDQogIHsNCiAgICAkbW9kX25hbWUgPSAkbW9kLT5HZXROYW1lKCk7DQogICAgDQogICAgaWYoICFpc3NldChzZWxmOjokX2luc3RhbmNlc1skbW9kX25hbWVdKSApDQogICAgew0KICAgICAgc2VsZjo6JF9pbnN0YW5jZXNbJG1vZF9uYW1lXSA9IG5ldyBcTElTRUNvbmZpZygkbW9kKTsNCiAgICB9DQogICAgDQogICAgcmV0dXJuIHNlbGY6OiRfaW5zdGFuY2VzWyRtb2RfbmFtZV07DQogIH0NCiAgDQogIHB1YmxpYyBzdGF0aWMgZnVuY3Rpb24gR2V0Q29uZmlnRm9ySW5zdGFuY2VOYW1lKCRtb2RfbmFtZSkNCiAgew0KICAgIA0KICAgIGlmKCAhaXNzZXQoc2VsZjo6JF9pbnN0YW5jZXNbJG1vZF9uYW1lXSkgKQ0KICAgIHsNCiAgICAgICRtb2RzID0gaW5zdGFuY2VzX29wZXJhdGlvbnM6OkdldEluc3RhbmNlc05hbWVzTGlzdEFycmF5KCk7DQogICAgICAkbW9kc1tdID0gJ0xJU0UnOw0KICAgICAgDQogICAgICBpZiggIVxpbl9hcnJheSgkbW9kX25hbWUsICRtb2RzLCBGQUxTRSkgKSB7IHJldHVybiBGQUxTRTsgfQ0KICAgICAgDQogICAgICAkbW9kID0gXGNtc191dGlsczo6Z2V0X21vZHVsZSgkbW9kX25hbWUpOw0KICAgICAgc2VsZjo6JF9pbnN0YW5jZXNbJG1vZF9uYW1lXSA9IG5ldyBcTElTRUNvbmZpZygkbW9kKTsNCiAgICB9DQogICAgDQogICAgcmV0dXJuIHNlbGY6OiRfaW5zdGFuY2VzWyRtb2RfbmFtZV07IA0KICB9DQp9DQo/Pg==]]></data>
	</file>
	<file>
	  <filename>/lib/class.CsvImporter.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKbmFtZXNwYWNlIExJU0U7CgoKY2xhc3MgQ3N2SW1wb3J0ZXIKewogIHByaXZhdGUgJHF1ZXJ5OwogIHByaXZhdGUgJHRhYmxlcyA9IGFycmF5KCk7CiAgcHJpdmF0ZSAkZmllbGRzID0gYXJyYXkoKTsKICBwcml2YXRlICRyZXN1bHQ7CiAgCiAgcHVibGljIGZ1bmN0aW9uIF9fY29uc3RydWN0KFxMSVNFICRtb2QsICRmbiwgICRmaWVsZHMsICRleGlzdGluZ19maWVsZHMpCiAgewogICAgJGl0ZW1fZGJfZmllbGRzID0gYXJyYXkoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICd1cmwnLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnY2F0ZWdvcnlfaWQnLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAndGl0bGUnLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnYWxpYXMnLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAncG9zaXRpb24nLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnYWN0aXZlJywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2NyZWF0ZV90aW1lJywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ21vZGlmaWVkX3RpbWUnLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnc3RhcnRfdGltZScsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdlbmRfdGltZScsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdrZXkxJywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2tleTInLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAna2V5MycsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdvd25lcicKICAgICAgICAgICAgICAgICAgICAgICAgICAgICk7CiAgICAKICAgICRoYW5kbGVkX2ZpZWxkcyA9IGFycmF5KCk7CiAgICAkaW5zZXJ0X2ZpZWxkcyA9IGFycmF5KCk7CiAgICBmb3JlYWNoKCRleGlzdGluZ19maWVsZHMgYXMgJGsgPT4gJHYpCiAgICB7CiAgICAgIC8vaWYoJHYgPT0gJ2l0ZW1faWQnKSBjb250aW51ZTsKICAgICAgaWYoJHYpCiAgICAgIHsKICAgICAgICAkaGFuZGxlZF9maWVsZHNbXSA9ICR2OwogICAgICAgICRpbnNlcnRfZmllbGRzW10gPSAgJGs7CiAgICAgIH0KICAgIH0KICAKICAgICRoYW5kbGVkX2ZpZWxkcyA9IGFycmF5X3VuaXF1ZSgkaGFuZGxlZF9maWVsZHMpOwogICAgCiAgICAkZGIgPSBcY21zX3V0aWxzOjpnZXRfZGIoKTsKICAgICRjb25maWcgPSBcTElTRVxDb25maWdNYW5hZ2VyOjpHZXRDb25maWdJbnN0YW5jZSgkbW9kKTsKICAgICR0ZW1wX3RhYmxlX25hbWUgPSBcY21zX2RiX3ByZWZpeCgpIC4gJG1vZC0+X0dldE1vZHVsZUFsaWFzKCkgLiAnX3RtcGNzdl8nOwogICAgJGl0ZW1zX3RhYmxlID0gXGNtc19kYl9wcmVmaXgoKSAuICdtb2R1bGVfJyAuICRtb2QtPl9HZXRNb2R1bGVBbGlhcygpIC4gJ19pdGVtJzsKICAgICRmaWVsZGRlZl90YWJsZSA9IFxjbXNfZGJfcHJlZml4KCkgLiAnbW9kdWxlXycgLiAkbW9kLT5fR2V0TW9kdWxlQWxpYXMoKSAuICdfZmllbGRkZWYnOwogICAgJGZpZWxkdmFsX3RhYmxlID0gXGNtc19kYl9wcmVmaXgoKSAuICdtb2R1bGVfJyAuICRtb2QtPl9HZXRNb2R1bGVBbGlhcygpIC4gJ19maWVsZHZhbCc7CiAgICAKICAgICRleHBlY3RlZF9maWVsZHMgPSBhcnJheSgpOwogICAgCiAgICBmb3JlYWNoKCRmaWVsZHMgYXMgJG9uZSkgJGV4cGVjdGVkX2ZpZWxkc1tdID0gJG9uZS0+YWxpYXM7CiAgICAKICAgICRxdWVyeSA9ICdTRUxFQ1QgZmllbGRkZWZfaWQsbmFtZSxhbGlhcyx0eXBlIEZST00gJyAuICRmaWVsZGRlZl90YWJsZTsKICAKICAgICRmaWVsZHNfbGlzdCA9ICRkYi0+R2V0QWxsKCRxdWVyeSk7CiAgICAKICAgICRuZWVkZWRfZmllbGRzID0gYXJyYXkoKTsKICAgIGZvcmVhY2goJGZpZWxkc19saXN0IGFzICRvbmUpCiAgICB7CiAgICAgIGlmKCAhaW5fYXJyYXkoJG9uZVsnYWxpYXMnXSwgJGV4cGVjdGVkX2ZpZWxkcykgKSBjb250aW51ZTsKICAgICAgJG5lZWRlZF9maWVsZHNbJG9uZVsnYWxpYXMnXV0gPSAkb25lOwogICAgfQogICAgCiAgICAkZm4gPSBcc3RyX3JlcGxhY2UoJ1xcJywgJ1xcXFwnLCAkZm4pOwogICAgCiAgICBmb3JlYWNoKCRoYW5kbGVkX2ZpZWxkcyBhcyAkZmllbGQpCiAgICB7CiAgICAgICR0aGlzLT5maWVsZHNbXSA9ICRmaWVsZCAuICcgVkFSQ0hBUigyMDAwKSc7CiAgICB9CiAgICAKICAgICRjcmVhdGVfZmllbGRzID0gaW1wbG9kZSgnLCcsICR0aGlzLT5maWVsZHMpOwogIAogICAgJHF1ZXJ5ID0gIkNSRUFURSBURU1QT1JBUlkgVEFCTEUgJHRlbXBfdGFibGVfbmFtZSAoJGNyZWF0ZV9maWVsZHMpOyI7CiAgICAKICAgICRkYnIgPSAkZGItPkV4ZWN1dGUoJHF1ZXJ5KTsKICAgIAogICAgJHF1ZXJ5ID0gIgogICAgICAgICAgTE9BRCBEQVRBIExPQ0FMIElORklMRSAneyRmbn0nCiAgICAgICAgICBJTlRPIFRBQkxFICR0ZW1wX3RhYmxlX25hbWUKICAgICAgICAgIEZJRUxEUyBURVJNSU5BVEVEIEJZICcsJwogICAgICAgICAgT1BUSU9OQUxMWSBFTkNMT1NFRCBCWSAnXCInCiAgICAgICAgICBMSU5FUyBURVJNSU5BVEVEIEJZICdcclxuJwogICAgICAgICAgSUdOT1JFIDEgTElORVM7CiAgICAgICAgICAiOwogICAgCiAgICAkZGJyID0gJGRiLT5FeGVjdXRlKCRxdWVyeSk7CiAgICAKICAgICRpdGVtc19maWVsZHMgPSBhcnJheV9pbnRlcnNlY3QoJGluc2VydF9maWVsZHMsICRpdGVtX2RiX2ZpZWxkcyk7CiAgICAkaXRlbXNfZmllbGRzX25hbWVzID0gaW1wbG9kZSggJywnLCAkaXRlbXNfZmllbGRzKTsKICAgICRjdXN0b21fZmllbGRzID0gYXJyYXlfZGlmZigkaGFuZGxlZF9maWVsZHMsICRpdGVtc19maWVsZHMpOwogICAgJHRtcCA9IGFycmF5X3NoaWZ0KCRjdXN0b21fZmllbGRzKTsKICAgIC8vJGN1c3RvbV9maWVsZHMgPSBpbXBsb2RlKCAnLCcsIGFycmF5X2RpZmYoJGhhbmRsZWRfZmllbGRzLCAkaXRlbV9kYl9maWVsZHMpKTsKICAgIC8vJGN1c3RvbV9maWVsZHNfaWRzID0gIGFycmF5X2RpZmYoJG5lZWRlZF9maWVsZHMsICRpdGVtX2RiX2ZpZWxkcyk7CiAgICAkcXVlcnkgPSAiU0VMRUNUICogRlJPTSAkdGVtcF90YWJsZV9uYW1lIjsKICAgICRkYnIgPSAkZGItPkdldEFsbCgkcXVlcnkpOwogICAgCiAgICBlY2hvKCc8YnIvPjo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojxici8+Jyk7CiAgICBkZWJ1Z19kaXNwbGF5KCRjcmVhdGVfZmllbGRzKTsKICAgIGRlYnVnX2Rpc3BsYXkoJGRicik7CiAgICBlY2hvKCc8YnIvPicgLiBfX0ZJTEVfXyAuICcgOiAoJyAuIF9fQ0xBU1NfXyAuICcgOjogJyAuIF9fRlVOQ1RJT05fXyAuICcpIDogJyAuIF9fTElORV9fIC4gJzxici8+Jyk7CiAgICBkaWUoJzxici8+UklQITxici8+Jyk7CiAgICAKICAgICR0bXAgPSBhcnJheV9maWxsKDAsIGNvdW50KCRpdGVtc19maWVsZHMpLCAnPycpOwogICAgJHBsYWNlaG9sZGVycyA9IGltcGxvZGUoJywnLCAkdG1wKTsKICAKICAgICRzdGFydHRpbWUgPSBtaWNyb3RpbWUoKTsKICAKICAgICRvayA9ICRkYi0+QmVnaW5UcmFucygpOwogICAgZm9yZWFjaCgkZGJyIGFzICRvbmUpCiAgICB7CiAgICAgICRwYXJhbXMgPSBhcnJheSgpOwogICAgICAkcmVtb3ZlID0gYXJyYXkoKTsKICAgICAgZm9yZWFjaCgkaXRlbXNfZmllbGRzIGFzICRhZmllbGQpCiAgICAgIHsKICAgICAgICAkcGFyYW1zW10gPSAkb25lWyRleGlzdGluZ19maWVsZHNbJGFmaWVsZF1dOwogICAgICAgICRyZW1vdmVbXSA9ICRleGlzdGluZ19maWVsZHNbJGFmaWVsZF07CiAgICAgIH0KICAgICAgJHJlbW92ZSA9IGFycmF5X3VuaXF1ZSgkcmVtb3ZlKTsKICAgICAgCiAgICAgICRxID0gIklOU0VSVCBJTlRPICRpdGVtc190YWJsZSAoJGl0ZW1zX2ZpZWxkc19uYW1lcykgdmFsdWVzICgkcGxhY2Vob2xkZXJzKSI7CiAgICAgICRkYnIyID0gJGRiLT5FeGVjdXRlKCRxLCAkcGFyYW1zKTsKICAKICAgICAgJGN1c3RvbV9maWVsZHMgPSBhcnJheV9kaWZmKCRjdXN0b21fZmllbGRzLCAkcmVtb3ZlKTsKICAgICAgCiAgICAgICRmaWVsZF9pZCA9ICRkYi0+SW5zZXJ0X0lEKCk7CiAgICAgIAogICAgICBmb3JlYWNoKCRjdXN0b21fZmllbGRzIGFzICRjdXN0b21fZmllbGQpCiAgICAgIHsKICAgICAgICAkY2ZfaWQgPSAkbmVlZGVkX2ZpZWxkc1skY3VzdG9tX2ZpZWxkXVsnZmllbGRkZWZfaWQnXTsKICAgICAgICAkdmFsdWUgPSAkb25lWyRjdXN0b21fZmllbGRdOwogICAgICAgICRxID0gIklOU0VSVCBJTlRPICRmaWVsZHZhbF90YWJsZSAoaXRlbV9pZCxmaWVsZGRlZl9pZCx2YWx1ZSkgdmFsdWVzICgkZmllbGRfaWQsJGNmX2lkLCckdmFsdWUnKSI7CiAgICAgICAgJGRicjIgPSAkZGItPkV4ZWN1dGUoJHEpOwogICAgICB9CiAgICB9CiAgCiAgICAkb2sgPSAkZGItPkNvbW1pdFRyYW5zKCk7CiAgICAvLyRvayA9ICRkYi0+Q29tbWl0VHJhbnMoJG9rKTsKICAKICAgICRlbmR0aW1lID0gbWljcm90aW1lKCk7CiAgICAkdGltZSA9IG1pY3JvdGltZV9kaWZmKCRzdGFydHRpbWUsICRlbmR0aW1lKTsKICAKICAKICAgIC8vJHF1ZXJ5ID0gIlwiRFJPUCBURU1QT1JBUlkgVEFCTEUgJHRlbXBfdGFibGVfbmFtZTsiOwogICAgLy8kZGJyID0gJGRiLT5FeGVjdXRlKCRxdWVyeSk7CiAgICAKICAgIAovLyAgICBlY2hvKCc8YnIvPjo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojxici8+Jyk7Ci8vICAgIGRlYnVnX2Rpc3BsYXkoJHRpbWUpOwovLyAgICBkZWJ1Z19kaXNwbGF5KCRxKTsKLy8gICAgZGVidWdfZGlzcGxheSgkZGItPkVycm9yTXNnKCkpOwovLyAgICBlY2hvKCc8YnIvPicgLiBfX0ZJTEVfXyAuICcgOiAoJyAuIF9fQ0xBU1NfXyAuICcgOjogJyAuIF9fRlVOQ1RJT05fXyAuICcpIDogJyAuIF9fTElORV9fIC4gJzxici8+Jyk7Ci8vICAgIGRpZSgnPGJyLz5SSVAhPGJyLz4nKTsKICAgIC8qCiAgICAkc3ViX3EgPSAnJzsKICAgIAogICAgZm9yZWFjaCgkY3VzdG9tX2ZpZWxkcyBhcyAkb25lKQogICAgewogICAgICAkZmllbGRfYWxpYXMgPSAkbmVlZGVkX2ZpZWxkc1skb25lXTsKICAgICAgCiAgICAgICRzdWJfcSAuPSAiSU5TRVJUIElOVE8gJGZpZWxkdmFsX3RhYmxlIChpdGVtX2lkLCBmaWVsZGRlZl9pZCwgdmFsdWUpCiAgICAgICAgICAgICAgICAgIFNFTEVDVCAkaXRlbXNfdGFibGUuaXRlbV9pZCwgJ3skbmVlZGVkX2ZpZWxkc1skb25lXVsnZmllbGRkZWZfaWQnXX0nLCB7JG5lZWRlZF9maWVsZHNbJG9uZV1bJ2FsaWFzJ119CiAgICAgICAgICAgICAgICAgIEZST00gJHRlbXBfdGFibGVfbmFtZQogICAgICAiOwogICAgfQogICAgCiAgICAKICAgICRxdWVyeSA9ICIKICAgICAgICAgICAgICBJTlNFUlQgSUdOT1JFIElOVE8gJGl0ZW1zX3RhYmxlICgkaXRlbXNfZmllbGRzKQogICAgICAgICAgICAgIFNFTEVDVCAkaXRlbXNfZmllbGRzIEZST00gJHRlbXBfdGFibGVfbmFtZQogICAgICAgICAgIjsKICAKICAgICRxdWVyeSAuPSAkc3ViX3E7CiAgICAKICAgICRkYnIgPSAkZGItPkV4ZWN1dGUoJHF1ZXJ5KTsKICAgIAogICAgZWNobygnPGJyLz46Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo8YnIvPicpOwogICAgZGVidWdfZGlzcGxheSgkcXVlcnkpOwogICAgZGVidWdfZGlzcGxheSgkZGJyKTsKICAgIGRlYnVnX2Rpc3BsYXkoJGRiLT5FcnJvck1zZygpKTsKICAgIGVjaG8oJzxici8+JyAuIF9fRklMRV9fIC4gJyA6ICgnIC4gX19DTEFTU19fIC4gJyA6OiAnIC4gX19GVU5DVElPTl9fIC4gJykgOiAnIC4gX19MSU5FX18gLiAnPGJyLz4nKTsKICAgIGRpZSgnPGJyLz5SSVAhPGJyLz4nKTsqLwogIC8qCiAgICAkc3RhcnR0aW1lID0gbWljcm90aW1lKCk7CiAgICAkZGJyID0gXGNtc191dGlsczo6Z2V0X2RiKCktPkV4ZWN1dGUoJHRtcCk7CiAgCiAgICAkZW5kdGltZSA9IG1pY3JvdGltZSgpOwogICAgJHRpbWUgPSBtaWNyb3RpbWVfZGlmZigkc3RhcnR0aW1lLCAkZW5kdGltZSk7CiAgCiAgICAkdG1wID0gIlNFTEVDVCAqIEZST00gJHRlbXBfdGFibGVfbmFtZSI7CiAgCiAgICAkdGhpcy0+cmVzdWx0ID0gXGNtc191dGlsczo6Z2V0X2RiKCktPkdldEFsbCgkdG1wKTsKICAgIAogICovCi8vICAgIGVjaG8oJzxici8+Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6PGJyLz4nKTsKLy8gICAgZGVidWdfZGlzcGxheSgkZGJyKTsKLy8gICAgZGVidWdfZGlzcGxheSgkdGltZSk7Ci8vICAgIGRlYnVnX2Rpc3BsYXkoIFxjbXNfdXRpbHM6OmdldF9kYigpLT5FcnJvck1zZygpKTsKLy8gICAgZWNobygnPGJyLz4nIC4gX19GSUxFX18gLiAnIDogKCcgLiBfX0NMQVNTX18gLiAnIDo6ICcgLiBfX0ZVTkNUSU9OX18gLiAnKSA6ICcgLiBfX0xJTkVfXyAuICc8YnIvPicpOwovLyAgICBkaWUoJzxici8+UklQITxici8+Jyk7CiAgICAKICB9CiAgCiAgcHVibGljIGZ1bmN0aW9uIEdldFJlc3VsdCgpCiAgewogICAgcmV0dXJuICR0aGlzLT5yZXN1bHQ7CiAgfQogIAp9Cj8+]]></data>
	</file>
	<file>
	  <filename>/lib/class.CsvIterator.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHANCg0KDQpuYW1lc3BhY2UgTElTRTsNCg0KDQpjbGFzcyBDc3ZJdGVyYXRvciBleHRlbmRzIFNwbEZpbGVPYmplY3QNCnsNCiAgDQp9DQoNCj8+]]></data>
	</file>
	<file>
	  <filename>/lib/class.DataException.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHANCg0KDQpuYW1lc3BhY2UgTElTRTsNCg0KDQpjbGFzcyBEYXRhRXhjZXB0aW9uIGV4dGVuZHMgXEV4Y2VwdGlvbiB7fQ0KDQo/Pg==]]></data>
	</file>
	<file>
	  <filename>/lib/class.debug.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHANCi8qKg0KICoNCiAqLw0KDQpuYW1lc3BhY2UgTElTRTsNCg0KLyoqDQogKiBDbGFzcyBkZWJ1Zw0KICoNCiAqIEBwYWNrYWdlIExJU0UNCiAqLw0KDQpmaW5hbCBjbGFzcyBkZWJ1Zw0Kew0KICANCiAgLyoqDQogICAqIHByaXZhdGUgcHJvcGVydGllcw0KICAgKi8NCiAgDQogIHByaXZhdGUgc3RhdGljICRfb2JqZWN0czsNCiAgcHJpdmF0ZSBzdGF0aWMgJF9vdXRwdXQ7DQogIHByaXZhdGUgc3RhdGljICRfZGVwdGg7DQogIHByaXZhdGUgc3RhdGljICRfZmxhZ3MgPSBbXTsNCiAgDQogIC8qKg0KICAgKiBjb25zdGFudHMNCiAgICovDQogIA0KICAjIG1vZGVzDQogIGNvbnN0IE1fRFVNUCAgID0gJ2R1bXAnOw0KICBjb25zdCBNX1hEVU1QICA9ICd4ZHVtcCc7DQogIGNvbnN0IE1fRVhQT1JUID0gJ2V4cG9ydCc7DQogIA0KICAjIGZsYWdzDQogIGNvbnN0IEZfREVGQVVMVCAgICA9ICAwOyAgICNCSU4gMDAwMDAwMDANCiAgY29uc3QgRl9FQ0hPICAgICAgID0gIDE7ICAgI0JJTiAwMDAwMDAwMQ0KICBjb25zdCBGX0hUTUwgICAgICAgPSAgMjsgICAjQklOIDAwMDAwMDEwDQogIGNvbnN0IEZfU1RSSVBfVEFHUyA9ICA0OyAgICNCSU4gMDAwMDAxMDANCiAgY29uc3QgRl9ISUdITElHSFQgID0gIDg7ICAgI0JJTiAwMDAwMTAwMA0KICBjb25zdCBGX0RJRSAgICAgICAgPSAxNjsgICAjQklOIDAwMDEwMDAwDQogIGNvbnN0IEZfVFJBQ0UgICAgICA9IDMyOyAgICNCSU4gMDAxMDAwMDANCiAgDQogIC8qKg0KICAgKiBwcml2YXRlIG1ldGhvZHMNCiAgICovDQogIA0KICBwcml2YXRlIGZ1bmN0aW9uIF9fY29uc3RydWN0KCl7fQ0KICANCiAgcHJpdmF0ZSBzdGF0aWMgZnVuY3Rpb24gX3Byb2Nlc3NfZmxhZ3MoJGZsYWdzID0gc2VsZjo6Rl9ERUZBVUxUKQ0KICB7DQogICAgaWYoJGZsYWdzID09PSBzZWxmOjpGX0RFRkFVTFQpDQogICAgew0KICAgICAgc2VsZjo6JF9mbGFnc1snZWNobyddICAgICAgID0gVFJVRTsNCiAgICAgIHNlbGY6OiRfZmxhZ3NbJ2h0bWwnXSAgICAgICA9IFRSVUU7DQogICAgICBzZWxmOjokX2ZsYWdzWydzdHJpcF90YWdzJ10gPSBGQUxTRTsNCiAgICAgIHNlbGY6OiRfZmxhZ3NbJ2hpZ2hsaWdodCddICA9IFRSVUU7DQogICAgICBzZWxmOjokX2ZsYWdzWydkaWUnXSAgICAgICAgPSBGQUxTRTsNCiAgICAgIHNlbGY6OiRfZmxhZ3NbJ3RyYWNlJ10gICAgICA9IEZBTFNFOw0KICAgICAgDQogICAgICByZXR1cm47DQogICAgfQ0KICANCiAgICBzZWxmOjokX2ZsYWdzWydlY2hvJ10gICAgICAgPSAkZmxhZ3MgJiBzZWxmOjpGX0VDSE87DQogICAgc2VsZjo6JF9mbGFnc1snaHRtbCddICAgICAgID0gJGZsYWdzICYgc2VsZjo6Rl9IVE1MOw0KICAgIHNlbGY6OiRfZmxhZ3NbJ3N0cmlwX3RhZ3MnXSA9ICRmbGFncyAmIHNlbGY6OkZfSFRNTDsNCiAgICBzZWxmOjokX2ZsYWdzWydoaWdobGlnaHQnXSAgPSAkZmxhZ3MgJiBzZWxmOjpGX0hJR0hMSUdIVDsNCiAgICBzZWxmOjokX2ZsYWdzWydkaWUnXSAgICAgICAgPSAkZmxhZ3MgJiBzZWxmOjpGX0RJRTsNCiAgICBzZWxmOjokX2ZsYWdzWyd0cmFjZSddICAgICAgPSAkZmxhZ3MgJiBzZWxmOjpGX1RSQUNFOw0KICB9DQogIA0KICAvKioNCiAgICogQSBmdW5jdGlvbiB0byBnZW5lcmF0ZSBhIGJhY2t0cmFjZSBpbiBhIHJlYWRhYmxlIGZvcm1hdC4NCiAgICovDQogICAgcHJpdmF0ZSBzdGF0aWMgZnVuY3Rpb24gX2J0KCRidCkNCiAgICB7DQogICAgICAkb3V0cHV0ID0gJyc7DQogICAgICAkZmlsZSA9ICRidFswXVsnZmlsZSddOw0KICAgICAgJGxpbmUgPSAkYnRbMF1bJ2xpbmUnXTsNCiAgDQogICAgICAkb3V0cHV0IC49ICJcblxuXG48cD48Yj5CYWNrdHJhY2UgaW4gJGZpbGUgb24gbGluZSAkbGluZTwvYj48L3A+XG4iOw0KICANCiAgICAgICRidCA9IGFycmF5X3JldmVyc2UoJGJ0KTsNCiAgDQogICAgICAkb3V0cHV0IC49ICAiPHByZT48ZGw+XG4iOw0KICANCiAgICAgIGZvcmVhY2goJGJ0IGFzICR0cmFjZSkNCiAgICAgIHsNCiAgICAgICAgJGZpbGUgICAgID0gJHRyYWNlWydmaWxlJ107DQogICAgICAgICRsaW5lICAgICA9ICR0cmFjZVsnbGluZSddOw0KICAgICAgICAkZnVuY3Rpb24gPSAkdHJhY2VbJ2Z1bmN0aW9uJ107DQogICAgICAgIA0KICAgICAgICAkYXJncyA9IFtdOw0KICAgICAgICBmb3JlYWNoKCR0cmFjZVsnYXJncyddIGFzICRhcmcpDQogICAgICAgIHsNCiAgICAgICAgICBzd2l0Y2goIGdldHR5cGUoJGFyZykgKQ0KICAgICAgICAgIHsNCiAgICAgICAgICAgIGNhc2UgJ2Jvb2xlYW4nOg0KICAgICAgICAgICAgICAkYXJncyAuPSAkYXJnID8gJ1RSVUUnIDogJ0ZBTFNFJzsNCiAgICAgICAgICAgIGJyZWFrOw0KICANCiAgICAgICAgICAgIGNhc2UgJ2ludGVnZXInOg0KICAgICAgICAgICAgICAkYXJnc1tdID0gIiRhcmciOw0KICAgICAgICAgICAgYnJlYWs7DQogIA0KICAgICAgICAgICAgY2FzZSAnZG91YmxlJzoNCiAgICAgICAgICAgICAgJGFyZ3NbXSA9ICIkYXJnIjsNCiAgICAgICAgICAgIGJyZWFrOw0KICANCiAgICAgICAgICAgIGNhc2UgJ3N0cmluZyc6DQogICAgICAgICAgICAgICRhcmdzW10gPSAiJyRhcmcnIjsNCiAgICAgICAgICAgIGJyZWFrOw0KICANCiAgICAgICAgICAgIGNhc2UgJ3Jlc291cmNlJzoNCiAgICAgICAgICAgICAgJGFyZ3NbXSA9ICd7cmVzb3VyY2V9JzsNCiAgICAgICAgICAgIGJyZWFrOw0KICANCiAgICAgICAgICAgIGNhc2UgJ05VTEwnOg0KICAgICAgICAgICAgICAkYXJnc1tdID0gIk5VTEwiOw0KICAgICAgICAgICAgYnJlYWs7DQogIA0KICAgICAgICAgICAgY2FzZSAndW5rbm93biB0eXBlJzoNCiAgICAgICAgICAgICAgJGFyZ3NbXSA9ICd7dW5rbm93bn0nOw0KICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICANCiAgICAgICAgICAgIGNhc2UgJ2FycmF5JzoNCiAgICAgICAgICAgICAgLy8kYXJnc1tdID0gIiRhcmciOw0KICAgICAgICAgICAgICAkYXJnc1tdID0gcHJpbnRfcigkYXJnLCBUUlVFKTsNCiAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgDQogICAgICAgICAgICBjYXNlICdvYmplY3QnOg0KICAgICAgICAgICAgICAkYXJnc1tdID0gJ3tvYmplY3R9ICcgLiBnZXRfY2xhc3MoJGFyZyk7DQogICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIA0KICAgICAgICAgIH0NCg0KICAgICAgICB9DQogIA0KICAgICAgICAkYXJncyA9IGltcGxvZGUoJywgJywgJGFyZ3MpOw0KICAgICAgICANCiAgICAgICAgJG91dHB1dCAuPSAiDQogICAgICAgICAgPGR0PjxiPiRmdW5jdGlvbjwvYj4oJGFyZ3MpIDwvZHQ+DQogICAgICAgICAgPGRkPiRmaWxlIG9uIGxpbmUgJGxpbmU8L2RkPg0KICAJCSI7DQogICAgICB9DQogIA0KICAgICAgJG91dHB1dCAuPSAgIjwvZGw+PC9wcmU+XG4iOw0KICAgICAgDQogICAgICByZXR1cm4gJG91dHB1dDsNCiAgICB9DQogIA0KICAvKioNCiAgICogYmFzZWQgb24gUWlhbmcgWHVlJ3MgVFZhckR1bXBlcg0KICAgKg0KICAgKiBAcGFyYW0gJHZhcg0KICAgKiBAcGFyYW0gJGxldmVsDQogICAqLw0KICBwcml2YXRlIHN0YXRpYyBmdW5jdGlvbiBfZHVtcEludGVybmFsKCR2YXIsICRsZXZlbCkNCiAgew0KICAgIHN3aXRjaCggZ2V0dHlwZSgkdmFyKSApDQogICAgew0KICAgICAgY2FzZSAnYm9vbGVhbic6DQogICAgICAgIHNlbGY6OiRfb3V0cHV0IC49ICR2YXIgPyAnVFJVRScgOiAnRkFMU0UnOw0KICAgICAgYnJlYWs7DQogICAgICANCiAgICAgIGNhc2UgJ2ludGVnZXInOg0KICAgICAgICBzZWxmOjokX291dHB1dCAuPSAiJHZhciI7DQogICAgICBicmVhazsNCiAgICAgIA0KICAgICAgY2FzZSAnZG91YmxlJzoNCiAgICAgICAgc2VsZjo6JF9vdXRwdXQgLj0gIiR2YXIiOw0KICAgICAgYnJlYWs7DQogICAgICANCiAgICAgIGNhc2UgJ3N0cmluZyc6DQogICAgICAgIHNlbGY6OiRfb3V0cHV0IC49ICInJHZhciciOw0KICAgICAgYnJlYWs7DQogICAgICANCiAgICAgIGNhc2UgJ3Jlc291cmNlJzoNCiAgICAgICAgc2VsZjo6JF9vdXRwdXQgLj0gJ3tyZXNvdXJjZX0nOw0KICAgICAgYnJlYWs7DQogICAgICANCiAgICAgIGNhc2UgJ05VTEwnOg0KICAgICAgICBzZWxmOjokX291dHB1dCAuPSAiTlVMTCI7DQogICAgICBicmVhazsNCiAgICAgIA0KICAgICAgY2FzZSAndW5rbm93biB0eXBlJzoNCiAgICAgICAgc2VsZjo6JF9vdXRwdXQgLj0gJ3t1bmtub3dufSc7DQogICAgICBicmVhazsNCiAgICAgIA0KICAgICAgY2FzZSAnYXJyYXknOg0KICAgICAgICBpZihzZWxmOjokX2RlcHRoIDw9ICRsZXZlbCkNCiAgICAgICAgew0KICAgICAgICAgIHNlbGY6OiRfb3V0cHV0IC49ICdhcnJheSguLi4pJzsNCiAgICAgICAgfQ0KICAgICAgICBlbHNlIGlmKGVtcHR5KCR2YXIpKQ0KICAgICAgICB7DQogICAgICAgICAgc2VsZjo6JF9vdXRwdXQgLj0gJ2FycmF5KCknOw0KICAgICAgICB9DQogICAgICAgIGVsc2UNCiAgICAgICAgew0KICAgICAgICAgICRrZXlzICAgICAgICAgID0gYXJyYXlfa2V5cygkdmFyKTsNCiAgICAgICAgICAkc3BhY2VzICAgICAgICA9IHN0cl9yZXBlYXQoJyAnLCAkbGV2ZWwgKiA0KTsNCiAgICAgICAgICBzZWxmOjokX291dHB1dCAuPSAiYXJyYXlcbiIgLiAkc3BhY2VzIC4gJygnOw0KICAgICAgICAgIA0KICAgICAgICAgIGZvcmVhY2goJGtleXMgYXMgJGtleSkNCiAgICAgICAgICB7DQogICAgICAgICAgICBzZWxmOjokX291dHB1dCAuPSAiXG4iIC4gJHNwYWNlcyAuICIgICAgWyRrZXldID0+ICI7DQogICAgICAgICAgICBzZWxmOjokX291dHB1dCAuPSBzZWxmOjpfZHVtcEludGVybmFsKCR2YXJbJGtleV0sICRsZXZlbCArIDEpOw0KICAgICAgICAgIH0NCiAgICAgICAgICANCiAgICAgICAgICBzZWxmOjokX291dHB1dCAuPSAiXG4iIC4gJHNwYWNlcyAuICcpJzsNCiAgICAgICAgfQ0KICAgICAgYnJlYWs7DQogICAgICANCiAgICAgIGNhc2UgJ29iamVjdCc6DQogICAgICAgIGlmKCgkaWQgPSBhcnJheV9zZWFyY2goJHZhciwgc2VsZjo6JF9vYmplY3RzLCBUUlVFKSkgIT09IEZBTFNFKQ0KICAgICAgICB7DQogICAgICAgICAgc2VsZjo6JF9vdXRwdXQgLj0gZ2V0X2NsYXNzKCR2YXIpIC4gJyAjJyAuICgkaWQgKyAxKSAuICcoLi4uKSc7DQogICAgICAgIH0NCiAgICAgICAgZWxzZSBpZihzZWxmOjokX2RlcHRoIDw9ICRsZXZlbCkNCiAgICAgICAgew0KICAgICAgICAgIHNlbGY6OiRfb3V0cHV0IC49IGdldF9jbGFzcygkdmFyKSAuICcoLi4uKSc7DQogICAgICAgIH0NCiAgICAgICAgZWxzZQ0KICAgICAgICB7DQogICAgICAgICAgJGlkICAgICAgICAgICAgPSBhcnJheV9wdXNoKHNlbGY6OiRfb2JqZWN0cywgJHZhcik7DQogICAgICAgICAgJGNsYXNzTmFtZSAgICAgPSBnZXRfY2xhc3MoJHZhcik7DQogICAgICAgICAgJG1lbWJlcnMgICAgICAgPSAoYXJyYXkpJHZhcjsNCiAgICAgICAgICAka2V5cyAgICAgICAgICA9IGFycmF5X2tleXMoJG1lbWJlcnMpOw0KICAgICAgICAgICRzcGFjZXMgICAgICAgID0gc3RyX3JlcGVhdCgnICcsICRsZXZlbCAqIDQpOw0KICAgICAgICAgIHNlbGY6OiRfb3V0cHV0IC49ICIkY2xhc3NOYW1lICMkaWRcbiIgLiAkc3BhY2VzIC4gJygnOw0KICAgICAgICAgIA0KICAgICAgICAgIGZvcmVhY2goJGtleXMgYXMgJGtleSkNCiAgICAgICAgICB7DQogICAgICAgICAgICAka2V5RGlzcGxheSAgICA9IHN0cnRyKHRyaW0oJGtleSksIGFycmF5KCJcMCIgPT4gJzonKSk7DQogICAgICAgICAgICBzZWxmOjokX291dHB1dCAuPSAiXG4iIC4gJHNwYWNlcyAuICIgICAgWyRrZXlEaXNwbGF5XSA9PiAiOw0KICAgICAgICAgICAgc2VsZjo6JF9vdXRwdXQgLj0gc2VsZjo6X2R1bXBJbnRlcm5hbCgkbWVtYmVyc1ska2V5XSwgJGxldmVsICsgMSk7DQogICAgICAgICAgfQ0KICAgICAgICAgIA0KICAgICAgICAgIHNlbGY6OiRfb3V0cHV0IC49ICJcbiIgLiAkc3BhY2VzIC4gJyknOw0KICAgICAgICB9DQogICAgICBicmVhazsNCiAgICB9DQogIH0NCiAgDQogIC8qKg0KICAgKiBAcGFyYW0gbWl4ZWQgJHZhcg0KICAgKiBAcGFyYW0gaW50ICAgJG1heERlcHRoDQogICAqDQogICAqIEByZXR1cm4gbWl4ZWQNCiAgICovDQogIHByaXZhdGUgc3RhdGljIGZ1bmN0aW9uIF9leHBvcnQoJHZhciwgJG1heERlcHRoKQ0KICB7DQogICAgJHJldHVybiA9IE5VTEw7DQogICAgDQogICAgJGlzT2JqICA9IGlzX29iamVjdCgkdmFyKTsNCiAgICANCiAgICBpZighJG1heERlcHRoKQ0KICAgIHsNCiAgICAgIHJldHVybiBpc19vYmplY3QoJHZhcikgPyBnZXRfY2xhc3MoJHZhcikNCiAgICAgICAgOiAoaXNfYXJyYXkoJHZhcikgPyAnQXJyYXkoJyAuIGNvdW50KCR2YXIpIC4gJyknIDogJHZhcik7DQogICAgfQ0KICAgIA0KICAgIGlmKGlzX2FycmF5KCR2YXIpKQ0KICAgIHsNCiAgICAgICRyZXR1cm4gPSBbXTsNCiAgICAgIA0KICAgICAgZm9yZWFjaCgkdmFyIGFzICRrID0+ICR2KQ0KICAgICAgew0KICAgICAgICAkcmV0dXJuWyRrXSA9IHNlbGY6Ol9leHBvcnQoJHYsICRtYXhEZXB0aCAtIDEpOw0KICAgICAgfQ0KICAgICAgDQogICAgICByZXR1cm4gJHJldHVybjsNCiAgICB9DQogICAgDQogICAgaWYoISRpc09iaikNCiAgICB7DQogICAgICByZXR1cm4gJHZhcjsNCiAgICB9DQogICAgDQogICAgJHJldHVybiA9IG5ldyBcc3RkQ2xhc3MoKTsNCiAgICANCiAgICBpZigkdmFyIGluc3RhbmNlb2YgXERhdGVUaW1lSW50ZXJmYWNlKQ0KICAgIHsNCiAgICAgICRyZXR1cm4tPl9fQ0xBU1NfXyA9IGdldF9jbGFzcygkdmFyKTsNCiAgICAgICRyZXR1cm4tPmRhdGUgICAgICA9ICR2YXItPmZvcm1hdCgnYycpOw0KICAgICAgJHJldHVybi0+dGltZXpvbmUgID0gJHZhci0+Z2V0VGltZXpvbmUoKS0+Z2V0TmFtZSgpOw0KICAgICAgDQogICAgICByZXR1cm4gJHJldHVybjsNCiAgICB9DQogICAgDQogICAgaWYoJHZhciBpbnN0YW5jZW9mIFxBcnJheU9iamVjdCB8fCAkdmFyIGluc3RhbmNlb2YgXEFycmF5SXRlcmF0b3IpDQogICAgew0KICAgICAgJHJldHVybi0+X19TVE9SQUdFX18gPSBzZWxmOjpfZXhwb3J0KCR2YXItPmdldEFycmF5Q29weSgpLCAkbWF4RGVwdGggLSAxKTsNCiAgICB9DQogICAgDQogICAgcmV0dXJuIHNlbGY6Ol9maWxsV2l0aENsYXNzQXR0cmlidXRlcygkdmFyLCAkcmV0dXJuLCAkbWF4RGVwdGgpOw0KICB9DQogIA0KICAvKioNCiAgICogRmlsbCB0aGUgJHJldHVybiB2YXJpYWJsZSB3aXRoIGNsYXNzIGF0dHJpYnV0ZXMNCiAgICogQmFzZWQgb24gb2JqMmFycmF5IGZ1bmN0aW9uIGZyb20ge0BzZWUgaHR0cHM6Ly9zZWN1cmUucGhwLm5ldC9tYW51YWwvZW4vZnVuY3Rpb24uZ2V0LW9iamVjdC12YXJzLnBocCM0NzA3NX0NCiAgICoNCiAgICogQHBhcmFtIG9iamVjdCAgICR2YXINCiAgICogQHBhcmFtIFxzdGRDbGFzcyAkcmV0dXJuDQogICAqIEBwYXJhbSBpbnQgICAgICAkbWF4RGVwdGgNCiAgICoNCiAgICogQHJldHVybiBtaXhlZA0KICAgKi8NCiAgcHJpdmF0ZSBzdGF0aWMgZnVuY3Rpb24gX2ZpbGxXaXRoQ2xhc3NBdHRyaWJ1dGVzKCR2YXIsIFxzdGRDbGFzcyAkcmV0dXJuLCAkbWF4RGVwdGgpDQogIHsNCiAgICAkY2xvbmUgPSAoYXJyYXkpJHZhcjsNCiAgICANCiAgICBmb3JlYWNoKGFycmF5X2tleXMoJGNsb25lKSBhcyAka2V5KQ0KICAgIHsNCiAgICAgICRhdXggID0gZXhwbG9kZSgiXDAiLCAka2V5KTsNCiAgICAgICRuYW1lID0gZW5kKCRhdXgpOw0KICAgICAgDQogICAgICBpZigkYXV4WzBdID09PSAnJykNCiAgICAgIHsNCiAgICAgICAgJG5hbWUgLj0gJzonIC4gKCRhdXhbMV0gPT09ICcqJyA/ICdwcm90ZWN0ZWQnIDogJGF1eFsxXSAuICc6cHJpdmF0ZScpOw0KICAgICAgfQ0KICAgICAgDQogICAgICAkcmV0dXJuLT4kbmFtZSA9IHNlbGY6Ol9leHBvcnQoJGNsb25lWyRrZXldLCAkbWF4RGVwdGggLSAxKTs7DQogICAgfQ0KICAgIA0KICAgIHJldHVybiAkcmV0dXJuOw0KICB9DQogIA0KICAvKioNCiAgICogcHVibGljIG1ldGhvZHMNCiAgICovDQogIA0KICAvKioNCiAgICogYmFzZWQgb24gUWlhbmcgWHVlJ3MgVFZhckR1bXBlcg0KICAgKg0KICAgKiBlY2hvIGRlYnVnX2Rpc3BsYXk6OmR1bXAoJHZhcik7DQogICAqDQogICAqIENvbnZlcnRzIGEgdmFyaWFibGUgaW50byBhIHN0cmluZyByZXByZXNlbnRhdGlvbi4NCiAgICogVGhpcyBtZXRob2QgYWNoaWV2ZXMgdGhlIHNpbWlsYXIgZnVuY3Rpb25hbGl0eSBhcyB2YXJfZHVtcCBhbmQgcHJpbnRfcg0KICAgKg0KICAgKiBAcGFyYW0gbWl4ZWQgdmFyaWFibGUgdG8gYmUgZHVtcGVkDQogICAqIEBwYXJhbSBpbnRlZ2VyIG1heGltdW0gZGVwdGggdGhhdCB0aGUgZHVtcGVyIHNob3VsZCBnbyBpbnRvIHRoZSB2YXJpYWJsZS4gRGVmYXVsdHMgdG8gMTAuDQogICAqDQogICAqIEByZXR1cm4gc3RyaW5nIHRoZSBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIHZhcmlhYmxlDQogICAqLw0KICBwdWJsaWMgc3RhdGljIGZ1bmN0aW9uIGR1bXAoJHZhciwgJGRlcHRoID0gMTAsICRoaWdobGlnaHQgPSBGQUxTRSkNCiAgew0KICAgIHNlbGY6OiRfb2JqZWN0cyA9IGFycmF5KCk7DQogICAgc2VsZjo6JF9kZXB0aCAgID0gJGRlcHRoOw0KICAgIHNlbGY6Ol9kdW1wSW50ZXJuYWwoJHZhciwgMCk7DQogICAgDQoNCiAgfQ0KICANCiAgLyoqDQogICAqIFByaW50cyBhIGR1bXAgb2YgdGhlIHB1YmxpYywgcHJvdGVjdGVkIGFuZCBwcml2YXRlIHByb3BlcnRpZXMgb2YgJHZhci4NCiAgICoNCiAgICogQGxpbmsgaHR0cHM6Ly94ZGVidWcub3JnLw0KICAgKg0KICAgKiBAcGFyYW0gbWl4ZWQgICAkdmFyICAgICAgIFRoZSB2YXJpYWJsZSB0byBkdW1wLg0KICAgKiBAcGFyYW0gaW50ZWdlciAkbWF4RGVwdGggIFRoZSBtYXhpbXVtIG5lc3RpbmcgbGV2ZWwgZm9yIG9iamVjdCBwcm9wZXJ0aWVzLg0KICAgKiBAcGFyYW0gYm9vbGVhbiAkc3RyaXBUYWdzIFdoZXRoZXIgb3V0cHV0IHNob3VsZCBzdHJpcCBIVE1MIHRhZ3MuDQogICAqIEBwYXJhbSBib29sZWFuICRlY2hvICAgICAgU2VuZCB0aGUgZHVtcGVkIHZhbHVlIHRvIHRoZSBvdXRwdXQgYnVmZmVyDQogICAqDQogICAqIEByZXR1cm4gc3RyaW5nDQogICAqLw0KICBwdWJsaWMgc3RhdGljIGZ1bmN0aW9uIHhkdW1wKCR2YXIsICRtYXhEZXB0aCA9IDIsICRzdHJpcFRhZ3MgPSBUUlVFLCAkZWNobyA9IFRSVUUpDQogIHsNCiAgICAkaHRtbCA9IGluaV9nZXQoJ2h0bWxfZXJyb3JzJyk7DQogICAgDQogICAgaWYoJGh0bWwgIT09IFRSVUUpDQogICAgew0KICAgICAgaW5pX3NldCgnaHRtbF9lcnJvcnMnLCBUUlVFKTsNCiAgICB9DQogICAgDQogICAgaWYoZXh0ZW5zaW9uX2xvYWRlZCgneGRlYnVnJykpDQogICAgew0KICAgICAgaW5pX3NldCgneGRlYnVnLnZhcl9kaXNwbGF5X21heF9kZXB0aCcsICRtYXhEZXB0aCk7DQogICAgfQ0KICAgIA0KICAgICR2YXIgPSBzZWxmOjpfZXhwb3J0KCR2YXIsICRtYXhEZXB0aCk7DQogICAgDQogICAgb2Jfc3RhcnQoKTsNCiAgICB2YXJfZHVtcCgkdmFyKTsNCiAgICAkZHVtcCA9IG9iX2dldF9jb250ZW50cygpOw0KICAgIG9iX2VuZF9jbGVhbigpOw0KICAgIA0KICAgICRkdW1wVGV4dCA9ICgkc3RyaXBUYWdzID8gc3RyaXBfdGFncyhodG1sX2VudGl0eV9kZWNvZGUoJGR1bXApKSA6ICRkdW1wKTsNCiAgICANCiAgICBpbmlfc2V0KCdodG1sX2Vycm9ycycsICRodG1sKTsNCiAgICANCiAgICBpZigkZWNobykNCiAgICB7DQogICAgICBlY2hvICRkdW1wVGV4dDsNCiAgICB9DQogICAgDQogICAgcmV0dXJuICRkdW1wVGV4dDsNCiAgfQ0KICANCiAgDQogIA0KICAvKioNCiAgICogQW5vdGhlciBjb252ZW5pZW5jZSBmdW5jdGlvbiB0byBvdXRwdXQgYSBodW1hbiByZWFkYWJsZSBmdW5jdGlvbiBzdGFjayB0cmFjZS4NCiAgICoNCiAgICogVGhpcyBtZXRob2QgdXNlcyBlY2hvLg0KICAgKi8NCiAgZnVuY3Rpb24gc3RhY2tfdHJhY2UoKQ0KICB7DQogICAgJHN0YWNrID0gZGVidWdfYmFja3RyYWNlKCk7DQogICAgZm9yZWFjaCgkc3RhY2sgYXMgJGVsZW0pDQogICAgew0KICAgICAgaWYoJGVsZW1bJ2Z1bmN0aW9uJ10gPT0gJ3N0YWNrX3RyYWNlJykNCiAgICAgIHsNCiAgICAgICAgY29udGludWU7DQogICAgICB9DQogICAgICANCiAgICAgIGlmKGlzc2V0KCRlbGVtWydmaWxlJ10pKQ0KICAgICAgew0KICAgICAgICBlY2hvICRlbGVtWydmaWxlJ10gLiAnOicgLiAkZWxlbVsnbGluZSddIC4gJyAtICcgLiAkZWxlbVsnZnVuY3Rpb24nXSAuICc8YnIvPic7DQogICAgICB9DQogICAgICBlbHNlDQogICAgICB7DQogICAgICAgIGVjaG8gJyAtICcgLiAkZWxlbVsnZnVuY3Rpb24nXSAuICc8YnIvPic7DQogICAgICB9DQogICAgfQ0KICB9DQogIA0KICBwdWJsaWMgc3RhdGljIGZ1bmN0aW9uIGRpc3BsYXkoDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJHdoYXQsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RyaW5nICRtb2RlID0gc2VsZjo6TV9EVU1QLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCAkZGVwdGggPSAxMCwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgJGZsYWdzID0gc2VsZjo6Rl9ERUZBVUxUDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICkNCiAgew0KICAgICMgZ2F0aGVyIHNvbWUgaW5mbyBmcm9tIHRoZSBiYWNrdHJhY2UNCiAgICAkYnQgPSBkZWJ1Z19iYWNrdHJhY2UoKTsNCiAgICAkZmlsZSA9IGZpbGUoJGJ0WzBdWydmaWxlJ10pOw0KICAgICRzcmMgID0gJGZpbGVbJGJ0WzBdWydsaW5lJ10tMV07DQogICAgJHBhdCA9ICcjKC4qKScgLiBfX0ZVTkNUSU9OX18gLiAnICo/XCggKj8oLiopICo/XCkoLiopI2knOw0KICAgICRwYXJhbXMgID0gcHJlZ19yZXBsYWNlKCRwYXQsICckMicsICRzcmMpOw0KICAgICR2YXJzID0gZXhwbG9kZSgnLCcsICRwYXJhbXMpOw0KICAgICR2YXIgPSB0cmltKCR2YXJzWzBdKTsNCiAgICBzZWxmOjokX291dHB1dCAgPSAnJzsNCiAgICAkZmluYWxfb3V0ID0gJyc7DQogICAgDQogICAgIyBwcm9jZXNzIGZsYWdzDQogICAgc2VsZjo6X3Byb2Nlc3NfZmxhZ3MoJGZsYWdzKTsNCiAgICANCiAgICANCiAgICBzd2l0Y2goJG1vZGUpDQogICAgew0KICAgICAgY2FzZSBzZWxmOjpNX0RVTVA6DQogICAgICAgIHNlbGY6OiRfb3V0cHV0IC49IHNlbGY6OmR1bXAoJHdoYXQsICRkZXB0aCk7DQogICAgICAgICAgYnJlYWs7DQogICAgICBjYXNlIHNlbGY6Ok1fWERVTVA6DQogICAgICAgICMgVE9ETw0KICAgICAgICAgIGJyZWFrOw0KICAgICAgY2FzZSBzZWxmOjpNX0VYUE9SVDoNCiAgICAgICAgIyBUT0RPDQogICAgICAgICAgYnJlYWs7DQogICAgICBkZWZhdWx0Og0KICAgIH0NCiAgDQogICAgaWYoc2VsZjo6JF9mbGFnc1snaGlnaGxpZ2h0J10pDQogICAgew0KICAgICAgJHJlc3VsdCA9IGhpZ2hsaWdodF9zdHJpbmcoIjw/cGhwXG4iIC4gc2VsZjo6JF9vdXRwdXQsIFRSVUUpOw0KICANCiAgICAgICRyZXN1bHQgPSBwcmVnX3JlcGxhY2UoJy8mbHQ7XFw/cGhwPGJyIFxcLz4vJywgJycsICRyZXN1bHQsIDEpOw0KICAgIH0NCiAgICBlbHNlDQogICAgew0KICAgICAgJHJlc3VsdCA9IHNlbGY6OiRfb3V0cHV0Ow0KICAgIH0NCiAgICANCiAgICBpZihzZWxmOjokX2ZsYWdzWydodG1sJ10pDQogICAgew0KICAgICAgJGZpbmFsX291dCAuPSAnPGJyLz46Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo8YnIvPic7DQogICAgICAkZmluYWxfb3V0IC49ICdjYWxsZWQgZnJvbTogJzsNCiAgICAgICRmaW5hbF9vdXQgLj0gJGJ0WzBdWydmaWxlJ10gLiAnIC0gJyAuICRidFswXVsnbGluZSddIC4gJzxici8+JzsNCiAgICAgICRmaW5hbF9vdXQgLj0gJy0gJyAuICRidFswXVsnY2xhc3MnXSAuICRidFswXVsndHlwZSddIC4gJGJ0WzBdWydmdW5jdGlvbiddIC4gJyA6ICcgLiAnPGJyLz4nOw0KICAgICAgJGZpbmFsX291dCAuPSAnLSB2YXJpYWJsZTogJyAuICR2YXI7DQogICAgICAkZmluYWxfb3V0IC49ICc8YnIvPjo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojxici8+JzsNCiAgICB9DQogICAgZWxzZQ0KICAgIHsNCiAgICAgICRmaW5hbF9vdXQgLj0gUEhQX0VPTCAuIFBIUF9FT0w7DQogICAgICAkZmluYWxfb3V0IC49ICdjYWxsZWQgZnJvbTogJzsNCiAgICAgICRmaW5hbF9vdXQgLj0gUEhQX0VPTDsNCiAgICAgICRmaW5hbF9vdXQgLj0gJGJ0WzBdWydmaWxlJ10gLiAnIC0gJyAuICRidFswXVsnbGluZSddOw0KICAgICAgJGZpbmFsX291dCAuPSBQSFBfRU9MOw0KICAgICAgJGZpbmFsX291dCAuPSAnLSAnIC4gJGJ0WzBdWydjbGFzcyddIC4gJGJ0WzBdWyd0eXBlJ10gLiAkYnRbMF1bJ2Z1bmN0aW9uJ107DQogICAgICAkZmluYWxfb3V0IC49IFBIUF9FT0w7DQogICAgICAkZmluYWxfb3V0IC49ICctIHZhcmlhYmxlOiAnIC4gJHZhcjsNCiAgICAgICRmaW5hbF9vdXQgLj0gUEhQX0VPTCAuIFBIUF9FT0w7DQogICAgfQ0KICANCiAgICAkZmluYWxfb3V0IC49ICRyZXN1bHQ7DQogICAgDQogICAgaWYoc2VsZjo6JF9mbGFnc1sndHJhY2UnXSkNCiAgICB7DQogICAgICAkZmluYWxfb3V0IC49IHNlbGY6Ol9idCgkYnQpOw0KICAgIH0NCiAgDQogICAgaWYoc2VsZjo6JF9mbGFnc1snZWNobyddKQ0KICAgIHsNCiAgICAgIGVjaG8gJGZpbmFsX291dDsNCiAgDQogICAgICBpZihzZWxmOjokX2ZsYWdzWydkaWUnXSkNCiAgICAgIHsNCiAgICAgICAgZGllKCc8YnIvPlJJUCE8YnIvPicpOw0KICAgICAgfQ0KICAgIH0NCiAgICANCiAgICByZXR1cm4gJGZpbmFsX291dDsNCiAgfQ0KICANCiAgDQogIC8qKg0KICAgKiBSZXR1cm5zIGEgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIGFuIG9iamVjdC4NCiAgICoNCiAgICogQHBhcmFtIG9iamVjdCAkb2JqDQogICAqDQogICAqIEByZXR1cm4gc3RyaW5nDQogICAqLw0KICBwdWJsaWMgc3RhdGljIGZ1bmN0aW9uIHRvU3RyaW5nKCRvYmopDQogIHsNCiAgICByZXR1cm4gbWV0aG9kX2V4aXN0cygkb2JqLCAnX190b1N0cmluZycpID8gKHN0cmluZykgJG9iaiA6IGdldF9jbGFzcygkb2JqKSAuICdAJyAuIHNwbF9vYmplY3RfaGFzaCgkb2JqKTsNCiAgfQ0KfQ0KPz4=]]></data>
	</file>
	<file>
	  <filename>/lib/class.DNAExporter.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBMSVNFIC0gTGlzdCBJdCBTcGVjaWFsIEVkaXRpb24KIyBWZXJzaW9uIDEuMgojIEEgZm9yayBvZiBMaXN0STIKIyBtYWludGFpbmVkIGJ5IEZlcm5hbmRvIE1vcmdhZG8gQUtBIEpvIE1vcmcKIyBzaW5jZSAyMDE1CiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBPcmlnaW5hbCBBdXRob3I6IEJlbiBNYWxlbiwgPGJlbkBjb25jZXB0ZmFjdG9yeS5jb20uYXU+CiMgQ28tTWFpbnRhaW5lcjogU2ltb24gUmFkZm9yZCwgPHNpbW9uQGNvbmNlcHRmYWN0b3J5LmNvbS5hdT4KIyBXZWI6IHd3dy5jb25jZXB0ZmFjdG9yeS5jb20uYXUKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojCiMgTWFpbnRhaW5lciBzaW5jZSAyMDExIHVwIHRvIDIwMTQ6IEpvbmF0aGFuIFNjaG1pZCwgPGhpQGpvbmF0aGFuc2NobWlkLmRlPgojIFdlYjogd3d3LmpvbmF0aGFuc2NobWlkLmRlCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIwojIFNvbWUgd2Fja29zIHN0YXJ0ZWQgZGVzdHJveWluZyBzdHVmZiBzaW5jZSAyMDEyIGFuZCBzdG9wcGVkIGF0IDIwMTQ6CiMKIyBUYXBpbyBMw7Z5dHR5LCA8dGFwc2FAb3JhbmdlLW1lZGlhLmZpPgojIFdlYjogd3d3Lm9yYW5nZS1tZWRpYS5maQojCiMgR29yYW4gSWxpYywgPHVuaXF1M2VAZ21haWwuY29tPgojIFdlYjogd3d3LmljaC1tYWNoLWRhcy5hdAojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBMSVNFIGlzIGEgQ01TIE1hZGUgU2ltcGxlIG1vZHVsZSB0aGF0IGVuYWJsZXMgdGhlIHdlYiBkZXZlbG9wZXIgdG8gY3JlYXRlCiMgbXVsdGlwbGUgbGlzdHMgdGhyb3VnaG91dCBhIHNpdGUuIEl0IGNhbiBiZSBkdXBsaWNhdGVkIGFuZCBnaXZlbiBmcmllbmRseQojIG5hbWVzIGZvciBlYXNpZXIgY2xpZW50IG1haW50ZW5hbmNlLgojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgQkVHSU5fTElDRU5TRQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIExJU0UKIyBMSVNFIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgTElTRSBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBFTkRfTElDRU5TRQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKbmFtZXNwYWNlIExJU0U7CgovKioKICogQ2xhc3MgRE5BRXhwb3J0ZXIKICoKICogQHBhY2thZ2UgTElTRQogKi8KZmluYWwgY2xhc3MgRE5BRXhwb3J0ZXIKewogICMtLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAjIENvbnN0YW50cwogICMtLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAKICAvKioKICAgKgogICAqLwogIHB1YmxpYyBjb25zdCBNT0RfUFJFRklYID0gJ0xJU0UnOwogICNpbnRlcm5hbCB2ZXJzaW9uCiAgLyoqCiAgICoKICAgKi8KICBwdWJsaWMgY29uc3QgWE1MX1ZFUlNJT04gPSAnMS4xJzsKCiAgIy0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICMgQXR0cmlidXRlcwogICMtLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAKICAvKioKICAgKiBAdmFyIHN0cmluZwogICAqLwogIHByaXZhdGUgJG1vZG5hbWU7CiAgLyoqCiAgICogQHZhcgogICAqLwogIHByaXZhdGUgJF9kYXRhOwogIC8qKgogICAqIEB2YXIKICAgKi8KICBwcml2YXRlICRfcHJlZnM7CiAgLyoqCiAgICogQHZhcgogICAqLwogIHByaXZhdGUgJF90ZW1wbGF0ZV9wcmVmczsKICAvKioKICAgKiBAdmFyCiAgICovCiAgcHJpdmF0ZSAkX3htbDsKICAKICAvKioKICAgKiBAdmFyIHN0cmluZ1tdCiAgICovCiAgcHJpdmF0ZSBzdGF0aWMgJF9pbnZhbGlkID0gWycuJywgJy4uJ107CgoJIy0tLS0tLS0tLS0tLS0tLS0tLS0tLQoJIyBNYWdpYyBtZXRob2RzCgkjLS0tLS0tLS0tLS0tLS0tLS0tLS0tCQkKICAKICAvKioKICAgKiBETkFFeHBvcnRlciBjb25zdHJ1Y3Rvci4KICAgKgogICAqIEBwYXJhbSBudWxsICRtb2RuYW1lCiAgICoKICAgKiBAdGhyb3dzIFxMSVNFXEV4Y2VwdGlvbgogICAqLwogIHB1YmxpYyBmdW5jdGlvbiBfX2NvbnN0cnVjdCgkbW9kbmFtZSA9IE5VTEwpCgl7CiAgICBpZiggZW1wdHkoJG1vZG5hbWUpICkgdGhyb3cgbmV3IEV4Y2VwdGlvbignRXJyb3IgaW4gJyAuIF9fQ0xBU1NfXyAuICcgY29uc3RydWN0b3I6IGludmFsaWQgcGFyYW1ldGVyIScpOwogICAgCiAgICBpZiggIXN0YXJ0c3dpdGgoJG1vZG5hbWUsIHNlbGY6Ok1PRF9QUkVGSVgpICkKICAgIHsKICAgICAgJG1vZG5hbWUgPSBzZWxmOjpNT0RfUFJFRklYIC4gJG1vZG5hbWU7CiAgICB9CiAgICAKICAgICR0aGlzLT5tb2RuYW1lID0gJG1vZG5hbWU7Cgl9CgogICMtLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAjIFJ1bm5lcgogICMtLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAKICAvKioKICAgKiBAdGhyb3dzIFxFeGNlcHRpb24KICAgKi8KICBwdWJsaWMgZnVuY3Rpb24gUnVuKCkgOiB2b2lkCiAgewogICAgJHRoaXMtPkNvcHlGcm9tRGF0YUJhc2UoKTsKICAgICR0aGlzLT5Db3B5RnJvbVByZWZlcmVuY2VzKCk7CiAgICAkdGhpcy0+Q29weUZyb21UZW1wbGF0ZXMoKTsKICAgICR0aGlzLT5fYnVpbGRfeG1sKCk7CiAgICAkdGhpcy0+X3NhdmUoKTsKCX0KICAKICAKICAvKioKICAgKiBUT0RPOiBlcnJvciBjaGVja3MKICAgKgogICAqIEB0aHJvd3MgXEV4Y2VwdGlvbgogICAqLwogIHByaXZhdGUgZnVuY3Rpb24gQ29weUZyb21EYXRhQmFzZSgpIDogdm9pZAogIHsKICAgICRtb2RfcHJlZml4ID0gXGNtc19kYl9wcmVmaXgoKSAuICdtb2R1bGVfJyAuIHN0cnRvbG93ZXIoJHRoaXMtPm1vZG5hbWUpIC4gJ18nOwoKICAgICR0YWJsZV9saXN0ID0gWwogICAgICAgICAgICAgICAgICAgICdjYXRlZ29yeScsCiAgICAgICAgICAgICAgICAgICAgJ2l0ZW1fY2F0ZWdvcmllcycsCiAgICAgICAgICAgICAgICAgICAgJ2ZpZWxkZGVmJywKICAgICAgICAgICAgICAgICAgICAnZmllbGRkZWZfb3B0cycKICAgIF07CiAgICAkZGIgPSBjbXNtcygpLT5HZXREYigpOwogICAgCiAgICAkZGF0YSA9IGFycmF5KCk7CiAgICBmb3JlYWNoKCR0YWJsZV9saXN0IGFzICRvbmUpCiAgICB7CiAgICAgICR0biA9ICRtb2RfcHJlZml4IC4gJG9uZTsKICAgICAgJHEgPSAnU0VMRUNUICogRlJPTSAnIC4gJHRuOwogICAgICAkZGF0YVskb25lXSA9ICRkYi0+R2V0QXJyYXkoJHEpOwogICAgfQogICAgCiAgICAkdG4gPSAgXGNtc19kYl9wcmVmaXgoKSAuICdtb2R1bGVfbGlzZV9pbnN0YW5jZXMnOwogICAgJHEgPSAnU0VMRUNUICogRlJPTSAnIC4gJHRuIC4gJyBXSEVSRSBtb2R1bGVfbmFtZT0/JzsKICAgICRkYXRhWyR0aGlzLT5tb2RuYW1lXSA9ICRkYi0+R2V0Um93KCRxLCBbJHRoaXMtPm1vZG5hbWVdKTsKICAgIAogICAgJHRoaXMtPl9kYXRhWydkYiddID0gJGRhdGE7CiAgfQogIAogIC8qKgogICAqCiAgICovCiAgcHJpdmF0ZSBmdW5jdGlvbiBDb3B5RnJvbVByZWZlcmVuY2VzKCkgOiB2b2lkCiAgewogICAgCiAgICAkcHJlZnMgPSBbCiAgICAgICAgICAgICAgICAnZnJpZW5kbHluYW1lJywKICAgICAgICAgICAgICAgICdhZG1pbnNlY3Rpb24nLAogICAgICAgICAgICAgICAgJ21vZGRlc2NyaXB0aW9uJywKICAgICAgICAgICAgICAgICdpdGVtX3RpdGxlJywKICAgICAgICAgICAgICAgICdzb3J0b3JkZXInLAogICAgICAgICAgICAgICAgJ2l0ZW1fc2luZ3VsYXInLAogICAgICAgICAgICAgICAgJ2l0ZW1fcGx1cmFsJywKICAgICAgICAgICAgICAgICdkaXNwbGF5X2NyZWF0ZV9kYXRlJywKICAgICAgICAgICAgICAgICdpdGVtX2NvbHMnLAogICAgICAgICAgICAgICAgJ2l0ZW1zX3Blcl9wYWdlJywKICAgICAgICAgICAgICAgICd1cmxfcHJlZml4JywKICAgICAgICAgICAgICAgICdkaXNwbGF5X2lubGluZScsCiAgICAgICAgICAgICAgICAnc3ViY2F0ZWdvcnknLAogICAgICAgICAgICAgICAgJ3VybHRlbXBsYXRlJywKICAgICAgICAgICAgICAgICdkZXRhaWxwYWdlJywKICAgICAgICAgICAgICAgICdzdW1tYXJ5cGFnZScsCiAgICAgICAgICAgICAgICAncmVpbmRleF9zZWFyY2gnLAogICAgICAgICAgICAgICAgJ3N1bW1hcnlfdGVtcGxhdGUnLAogICAgICAgICAgICAgICAgJ2RldGFpbF90ZW1wbGF0ZScsCiAgICAgICAgICAgICAgICAnc2VhcmNoX3RlbXBsYXRlJywKICAgICAgICAgICAgICAgICdjYXRlZ29yeV90ZW1wbGF0ZScsCiAgICAgICAgICAgICAgICAnYXJjaGl2ZV90ZW1wbGF0ZScsCiAgICAgICAgICAgICAgICAnZGlzcGxheV9pbmxpbmUnLAogICAgICAgICAgICAgICAgJ2Rpc3BsYXlfY3JlYXRlX2RhdGUnLAogICAgICAgICAgICAgICAgJ3JlaW5kZXhfc2VhcmNoJywKICAgICAgICAgICAgICAgICdhdXRvX3VwZ3JhZGUnLAogICAgICAgICAgICAgICAgJ2hpZGVfYWxpYXMnLAogICAgICAgICAgICAgICAgJ2hpZGVfc2x1ZycsCiAgICAgICAgICAgICAgICAnaGlkZV90aW1lX2NvbnRyb2wnLAogICAgICAgICAgICAgICAgJ3NlcGFyYXRlX3NldHRpbmdzJwogICAgXTsKICAgIAogICAgJG1vZCA9IFxNb2R1bGVPcGVyYXRpb25zOjpnZXRfaW5zdGFuY2UoKS0+Z2V0X21vZHVsZV9pbnN0YW5jZSgkdGhpcy0+bW9kbmFtZSwgTlVMTCwgVFJVRSk7CiAgICAKICAgIGZvcmVhY2goJHByZWZzIGFzICRwcmVmKQogICAgewogICAgICAkdGhpcy0+X2RhdGFbJ3ByZWZzJ11bJHByZWZdID0gJG1vZC0+R2V0UHJlZmVyZW5jZSgkcHJlZiwgJycpOwogICAgfQoKICB9CiAgCiAgLyoqCiAgICoKICAgKi8KICBwcml2YXRlIGZ1bmN0aW9uIENvcHlGcm9tVGVtcGxhdGVzKCkgOiB2b2lkCiAgewogICAgJG1vZCA9IFxNb2R1bGVPcGVyYXRpb25zOjpnZXRfaW5zdGFuY2UoKS0+Z2V0X21vZHVsZV9pbnN0YW5jZSgkdGhpcy0+bW9kbmFtZSwgTlVMTCwgVFJVRSk7CgogICAgJHRlbXBsYXRlcyA9ICRtb2QtPkxpc3RUZW1wbGF0ZXMoKTsKICAgIAogICAgZm9yZWFjaCgkdGVtcGxhdGVzIGFzICRvbmUpCiAgICB7CiAgICAgICR0aGlzLT5fZGF0YVsndGVtcGxhdGVzJ11bJG9uZV0gPSAkbW9kLT5HZXRUZW1wbGF0ZSgkb25lKTsgCiAgICB9CiAgICAgCiAgfQogIAogIC8qKgogICAqCiAgICovCiAgcHJpdmF0ZSBmdW5jdGlvbiBfc2F2ZSgpIDogdm9pZAogIHsKICAgICRtb2QgPSBcTW9kdWxlT3BlcmF0aW9uczo6Z2V0X2luc3RhbmNlKCktPmdldF9tb2R1bGVfaW5zdGFuY2UoJHRoaXMtPm1vZG5hbWUsIE5VTEwsIFRSVUUpOwogICAgJGRuID1cY21zX2pvaW5fcGF0aCgkbW9kLT5HZXRNb2R1bGVQYXRoKCksICdkYXRhJyk7CiAgICAKICAgIGlmKEAhbWtkaXIoJGRuKSAmJiAhaXNfZGlyKCRkbikpCiAgICB7CiAgICAgIHRocm93IG5ldyBcUnVudGltZUV4Y2VwdGlvbihzcHJpbnRmKCdEaXJlY3RvcnkgIiVzIiB3YXMgbm90IGNyZWF0ZWQnLCAkZG4pKTsKICAgIH0KICAgIAogICAgJGZuID0gXGNtc19qb2luX3BhdGgoJGRuLCAnZG5hLnhtbCcpOwogICAgJGZpbGUgPSBmb3BlbigkZm4sICd3Jyk7CiAgICBmd3JpdGUoJGZpbGUsICR0aGlzLT5feG1sKTsKICAgIGZjbG9zZSgkZmlsZSk7CiAgfQogIAogIC8qKgogICogcHJldHR5IHNpbXBsZSB4bWwgYnVpbGRlciwgYnV0IHByb25lIHRvIGVycm9ycyAoSSB0aGluaykKICAqIFdpbGwgYmUgd29ya2VkIG9uIGRlcGVuZGluZyBvbiB1c2FiaWxpdHkuLi4KICAqLwogIHByaXZhdGUgZnVuY3Rpb24gX2J1aWxkX3htbCgpIDogdm9pZAogIHsKICAgICRtb2QgPSBcTW9kdWxlT3BlcmF0aW9uczo6Z2V0X2luc3RhbmNlKCktPmdldF9tb2R1bGVfaW5zdGFuY2UoJHRoaXMtPm1vZG5hbWUsIE5VTEwsIFRSVUUpOwogICAgCiAgICAkdGhpcy0+X3htbCAgPSAnPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4nIC4gIlxuIjsKICAgICR0aGlzLT5feG1sIC49ICc8TElTRUluc3RhbmNlTW9kdWxlPicgLiAiXG4iOwogICAgJHRoaXMtPl94bWwgLj0gJyA8WE1MVkVSU0lPTj4nIC4gc2VsZjo6WE1MX1ZFUlNJT04gLiAnPC9YTUxWRVJTSU9OPicgLiAiXG4iOwogICAgJHRoaXMtPl94bWwgLj0gJyA8TW9kdWxlTmFtZT4nIC4gJHRoaXMtPm1vZG5hbWUgLiAnPC9Nb2R1bGVOYW1lPicgLiAiXG4iOwogICAgJHRoaXMtPl94bWwgLj0gJyA8VmVyc2lvbj4nIC4gJG1vZC0+R2V0VmVyc2lvbigpIC4gJzwvVmVyc2lvbj4nIC4gIlxuIjsKICAgICR0aGlzLT5feG1sIC49ICcgPE1vZHVsZUZyaWVuZGx5TmFtZT48IVtDREFUQVsnIC4gJG1vZC0+R2V0RnJpZW5kbHlOYW1lKCkgIC4gJ11dPjwvTW9kdWxlRnJpZW5kbHlOYW1lPicgLiAiXG4iOwogICAgJHRoaXMtPl94bWwgLj0gJyA8RGF0YT4nIC4gYmFzZTY0X2VuY29kZShzZXJpYWxpemUoJHRoaXMtPl9kYXRhKSkgLiAnPC9EYXRhPicgLiAiXG4iOwogICAgJHRoaXMtPl94bWwgLj0gJzwvTElTRUluc3RhbmNlTW9kdWxlPicgLiAiXG4iOwogIH0KCQp9IC8vIGVuZCBvZiBjbGFzcw==]]></data>
	</file>
	<file>
	  <filename>/lib/class.DNAImporter.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBMSVNFIC0gTGlzdCBJdCBTcGVjaWFsIEVkaXRpb24KIyBWZXJzaW9uIDEuMgojIEEgZm9yayBvZiBMaXN0STIKIyBtYWludGFpbmVkIGJ5IEZlcm5hbmRvIE1vcmdhZG8gQUtBIEpvIE1vcmcKIyBzaW5jZSAyMDE1CiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBPcmlnaW5hbCBBdXRob3I6IEJlbiBNYWxlbiwgPGJlbkBjb25jZXB0ZmFjdG9yeS5jb20uYXU+CiMgQ28tTWFpbnRhaW5lcjogU2ltb24gUmFkZm9yZCwgPHNpbW9uQGNvbmNlcHRmYWN0b3J5LmNvbS5hdT4KIyBXZWI6IHd3dy5jb25jZXB0ZmFjdG9yeS5jb20uYXUKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojCiMgTWFpbnRhaW5lciBzaW5jZSAyMDExIHVwIHRvIDIwMTQ6IEpvbmF0aGFuIFNjaG1pZCwgPGhpQGpvbmF0aGFuc2NobWlkLmRlPgojIFdlYjogd3d3LmpvbmF0aGFuc2NobWlkLmRlCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIwojIFNvbWUgd2Fja29zIHN0YXJ0ZWQgZGVzdHJveWluZyBzdHVmZiBzaW5jZSAyMDEyIGFuZCBzdG9wcGVkIGF0IDIwMTQ6CiMKIyBUYXBpbyBMw7Z5dHR5LCA8dGFwc2FAb3JhbmdlLW1lZGlhLmZpPgojIFdlYjogd3d3Lm9yYW5nZS1tZWRpYS5maQojCiMgR29yYW4gSWxpYywgPHVuaXF1M2VAZ21haWwuY29tPgojIFdlYjogd3d3LmljaC1tYWNoLWRhcy5hdAojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBMSVNFIGlzIGEgQ01TIE1hZGUgU2ltcGxlIG1vZHVsZSB0aGF0IGVuYWJsZXMgdGhlIHdlYiBkZXZlbG9wZXIgdG8gY3JlYXRlCiMgbXVsdGlwbGUgbGlzdHMgdGhyb3VnaG91dCBhIHNpdGUuIEl0IGNhbiBiZSBkdXBsaWNhdGVkIGFuZCBnaXZlbiBmcmllbmRseQojIG5hbWVzIGZvciBlYXNpZXIgY2xpZW50IG1haW50ZW5hbmNlLgojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgQkVHSU5fTElDRU5TRQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIExJU0UKIyBMSVNFIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgTElTRSBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBFTkRfTElDRU5TRQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKbmFtZXNwYWNlIExJU0U7CmNsYXNzIEROQUltcG9ydGVyCnsKICAjLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgIyBDb25zdGFudHMKICAjLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgogIGNvbnN0IE1PRF9QUkVGSVggPSAnTElTRSc7CiAgY29uc3QgUExBQ0VIT0xERVIgPSAnUExBQ0VfSE9MREVSX19fJzsKICAjaW50ZXJuYWwgdmVyc2lvbgogIGNvbnN0IFhNTF9WRVJTSU9OID0gJzEuMSc7CgogICMtLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAjIEF0dHJpYnV0ZXMKICAjLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgogIHByaXZhdGUgJHNyYzsKICBwcml2YXRlICRkc3Q7CiAgcHJpdmF0ZSAkbW9kbmFtZTsKICBwcml2YXRlICRmcmllbmRseW5hbWU7CiAgcHJpdmF0ZSAkX21vZGU7CiAgcHJpdmF0ZSAkX2RhdGE7CiAgcHJpdmF0ZSAkX3htbDsKICAKCXByaXZhdGUgc3RhdGljICRfaW52YWxpZCA9IGFycmF5KCcuJywgJy4uJyk7CgoJIy0tLS0tLS0tLS0tLS0tLS0tLS0tLQoJIyBNYWdpYyBtZXRob2RzCgkjLS0tLS0tLS0tLS0tLS0tLS0tLS0tCQkKCQkKCXB1YmxpYyBmdW5jdGlvbiBfX2NvbnN0cnVjdCgkeG1sID0gJycpCgl7CiAgICBpZiggZW1wdHkoJHhtbCkgKSB0aHJvdyBuZXcgRXhjZXB0aW9uKCdFcnJvciBpbiAnIC4gX19DTEFTU19fIC4gJyBjb25zdHJ1Y3RvcjogaW52YWxpZCBwYXJhbWV0ZXIhJyk7CiAgICAKICAgICR0aGlzLT5feG1sID0gJHhtbDsKICAgICR0aGlzLT5fZXhwYW5kX3htbCgpOwoJfQoKICAjLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgIyBSdW5uZXIKICAjLS0tLS0tLS0tLS0tLS0tLS0tLS0tCglwdWJsaWMgZnVuY3Rpb24gUnVuKCkKCXsKICAgICMgZXhwYW5kIHRoZSByZXN0IG9mIHRoZSBkYXRhCgkJJHRoaXMtPkNvcHlEYXRhQmFzZSgpOwogICAgJHRoaXMtPkNvcHlUZW1wbGF0ZXMoKTsKICAgICR0aGlzLT5Db3B5UHJlZmVyZW5jZXMoKTsKICAgIAogICAgIyBub3cgd2UgaGF2ZSBhIG5ldyBMSVNFIE1vZHVsZQoJCXJldHVybiAkdGhpcy0+bW9kbmFtZTsKCX0KCQkKCSMtLS0tLS0tLS0tLS0tLS0tLS0tLS0KCSMgRmlsZSBoYW5kbGluZyBtZXRob2RzCgkjLS0tLS0tLS0tLS0tLS0tLS0tLS0tCQkKCglwcml2YXRlIGZ1bmN0aW9uIENvcHlSZWN1cnNpdmUoJHNyYywgJGRzdCkKCXsKICAgICRkaXIgPSBvcGVuZGlyKCRzcmMpOwogICAgaWYoISRkaXIpCiAgICB7CiAgICAgIHRocm93IG5ldyBFeGNlcHRpb24oCiAgICAgICAgJ0Vycm9yOiAnIC4gX19DTEFTU19fIC4gJyAtICcgLiBfX01FVEhPRF9fIC4gJyAtPiBmYWlsZWQgdG8gb3BlbiBkaXJlY3Rvcnk6ICcgLiAkc3JjLCBFcnJvcjo6T1BFTl9ESVJfRVJST1IKICAgICAgKTsKICAgIH0KICAgIAoJCWlmKCFta2RpcigkZHN0KSAmJiAhaXNfZGlyKCRkc3QpKQogICAgewogICAgICB0aHJvdyBuZXcgRXhjZXB0aW9uKAogICAgICAgICdFcnJvcjogJyAuIF9fQ0xBU1NfXyAuICcgLSAnIC4gX19NRVRIT0RfXyAuICcgLT4gZmFpbGVkIHRvIGNyZWF0ZSBkaXJlY3Rvcnk6ICcgLiAkZHN0LCBFcnJvcjo6Q1JFQVRFX0RJUl9FUlJPUgogICAgICApOwogICAgfQogICAgCiAgICB0cnkKICAgIHsKICAgICAgd2hpbGUoIEZBTFNFICE9PSAoICRmaWxlID0gcmVhZGRpcigkZGlyKSApICkKICAgICAgewogICAgICAgICMgU2tpcCBzdHVmZiB3ZSBuZXZlciBhbGxvdyB0byBjb3B5CiAgICAgICAgaWYgKGluX2FycmF5KCRmaWxlLCBzZWxmOjokX2ludmFsaWQpKSBjb250aW51ZTsgCgogICAgICAgIGlmICggaXNfZGlyKCRzcmMgLiBESVJFQ1RPUllfU0VQQVJBVE9SIC4gJGZpbGUpICkgCiAgICAgICAgeyAKICAgICAgICAgICR0aGlzLT5Db3B5UmVjdXJzaXZlKCRzcmMgLiBESVJFQ1RPUllfU0VQQVJBVE9SIC4gJGZpbGUsICRkc3QgLiBESVJFQ1RPUllfU0VQQVJBVE9SIC4gJGZpbGUpOyAKICAgICAgICB9IAogICAgICAgIGVsc2UgCiAgICAgICAgeyAgCiAgICAgICAgICBpZiggIUBjb3B5KCRzcmMgLiBESVJFQ1RPUllfU0VQQVJBVE9SIC4gJGZpbGUsICRkc3QgLiBESVJFQ1RPUllfU0VQQVJBVE9SIC4gJGZpbGUpICkKICAgICAgICAgICAgdGhyb3cgbmV3IEV4Y2VwdGlvbignRXJyb3I6ICcgLiBfX0NMQVNTX18gLiAnIC0gJyAuIF9fTUVUSE9EX18gLiAnIC0+IGZhaWxlZCB0byBjb3B5OiAnIC4gJHNyYyAuIERJUkVDVE9SWV9TRVBBUkFUT1IgLiAkZmlsZSAuICcgdG8gJyAuICRkc3QgLiBESVJFQ1RPUllfU0VQQVJBVE9SIC4gJGZpbGUsIEVycm9yOjpDT1BZX0ZJTEVfRVJST1IgKTsKICAgICAgICB9CiAgICAgIH0KICAgIH0KICAgIGNhdGNoKEV4Y2VwdGlvbiAkZSkKICAgIHsKICAgICAgIyBtYWtlIHN1cmUgeW91IGNsb3NlIHRoZSBkaXIgYW5kIHJldGhyb3cgZXhjZXB0aW9uCiAgICAgIGNsb3NlZGlyKCRkaXIpOwogICAgICB0aHJvdyAkZTsKICAgIH0gCgl9CgkKCXByaXZhdGUgZnVuY3Rpb24gUmVuYW1lKCkKCXsKICAgICRvbGQgPSBjbXNfam9pbl9wYXRoKCR0aGlzLT5kc3QsIHNlbGY6OlBMQUNFSE9MREVSIC4gJy5waHAnKTsKICAgICRuZXcgPSBjbXNfam9pbl9wYXRoKCR0aGlzLT5kc3QsICR0aGlzLT5tb2RuYW1lIC4gJy5tb2R1bGUucGhwJykgOwogICAgaWYoICFAcmVuYW1lKCRvbGQsICRuZXcgKSApIHRocm93IG5ldyBFeGNlcHRpb24oJ0Vycm9yOiAnIC4gX19DTEFTU19fIC4gJyAtICcgLiBfX01FVEhPRF9fIC4gJyAtPiBmYWlsZWQgdG8gcmVuYW1lOiAnIC4gJG5ldywgRXJyb3I6OkRJU0NSRVRFICk7Cgl9CgkKCXByaXZhdGUgZnVuY3Rpb24gRml4TW9kdWxlZmlsZSgpCgl7CiAgICAkZmlsZW5hbWUgPSAkdGhpcy0+ZHN0IC4gRElSRUNUT1JZX1NFUEFSQVRPUiAuICR0aGlzLT5tb2RuYW1lIC4nLm1vZHVsZS5waHAnOwogICAgJGxpc2VfdmVyc2lvbiA9IFxjbXNfdXRpbHM6OmdldF9tb2R1bGUoJ0xJU0UnKS0+R2V0VmVyc2lvbigpOwogICAgCiAgICAvLyBSZXBsYWNlbWVudHMKICAgICRfY29udGVudHMgPSBmaWxlX2dldF9jb250ZW50cygkZmlsZW5hbWUpOyAvLyA8LSBUaHJvdyBleGNlcHRpb24gb24gZmFpbHVyZT8KICAgICRfY29udGVudHMgPSBzdHJfcmVwbGFjZShzZWxmOjpQTEFDRUhPTERFUiwgJHRoaXMtPm1vZG5hbWUsICRfY29udGVudHMpOwogICAgJF9jb250ZW50cyA9IHN0cl9yZXBsYWNlKHNlbGY6OlZFUlNJT05fUExBQ0VIT0xERVIsICInIiAuICRsaXNlX3ZlcnNpb24gLiAiJyIsICRfY29udGVudHMpOwogICAgCiAgICAvLyBXcml0ZSBmaWxlCiAgICAkZmggPSBAZm9wZW4oJGZpbGVuYW1lLCAndycpOwogICAgaWYoISRmaCkKICAgIHsKICAgICAgdGhyb3cgbmV3IEV4Y2VwdGlvbigKICAgICAgICAnRXJyb3I6ICcgLiBfX0NMQVNTX18gLiAnIC0gJyAuIF9fTUVUSE9EX18gLiAnIC0+IGZhaWxlZCB0byBvcGVuICcgLiAkZmlsZW5hbWUsIFxMSVNFXEVycm9yOjpESVNDUkVURQogICAgICApOwogICAgfQogICAgCiAgICB0cnkKICAgIHsKICAgICAgaWYoICFmd3JpdGUoJGZoLCAkX2NvbnRlbnRzKSApIHRocm93IG5ldyBFeGNlcHRpb24oJ0Vycm9yOiAnIC4gX19DTEFTU19fIC4gJyAtICcgLiBfX01FVEhPRF9fIC4gJyAtPiBmYWlsZWQgdG8gd3JpdGUgdG8gJyAuICRmaWxlbmFtZSwgXExJU0VcRXJyb3I6OkRJU0NSRVRFICk7CiAgICB9CiAgICBjYXRjaChcRXhjZXB0aW9uICRlKQogICAgewogICAgICAjIG1ha2Ugc3VyZSB5b3UgY2xvc2UgdGhlIGZpbGUgYW5kIHJldGhyb3cgZXhjZXB0aW9uCiAgICAgIGZjbG9zZSgkZmgpOwogICAgICB0aHJvdyAkZTsKICAgIH0KICB9CiAgCiAgcHJpdmF0ZSBmdW5jdGlvbiBDb3B5RGF0YUJhc2UoKQogIHsKICAgICAkbW9kX3ByZWZpeCA9IFxjbXNfZGJfcHJlZml4KCkgLiAnbW9kdWxlXycgLiBzdHJ0b2xvd2VyKCR0aGlzLT5tb2RuYW1lKSAuICdfJzsKICAgICAKCiAgICAgJHRhYmxlX2xpc3QgPSBhcnJheSgKICAgICAgICAgICAgICAgICAgICAgICAgICAnY2F0ZWdvcnknLAogICAgICAgICAgICAgICAgICAgICAgICAgICdpdGVtX2NhdGVnb3JpZXMnLAogICAgICAgICAgICAgICAgICAgICAgICAgICdmaWVsZGRlZicsCiAgICAgICAgICAgICAgICAgICAgICAgICAgJ2ZpZWxkZGVmX29wdHMnLAogICAgICAgICAgICAgICAgICAgICAgICApOwogICAgICAgICAgICAgICAgICAgICAgICAKICAgICAkZGIgPSBcY21zbXMoKS0+R2V0RGIoKTsKICAgICAKICAgICBmb3JlYWNoKCR0YWJsZV9saXN0IGFzICRvbmUpCiAgICAgewogICAgICAgJHRuID0gJG1vZF9wcmVmaXggLiAkb25lOwogICAgICAgCiAgICAgICBmb3JlYWNoKCR0aGlzLT5fZGF0YVsnZGInXVskb25lXSBhcyAkcm93KQogICAgICAgewogICAgICAgICAkZmllbGRzID0gaW1wbG9kZSgnLCcsIGFycmF5X2tleXMoJHJvdykgKTsKICAgICAgICAgJHBocyA9IGltcGxvZGUoJywnLCBhcnJheV9maWxsKDAsIGNvdW50KCRyb3cpLCAnPycpICk7CgogICAgICAgICAkcSA9ICdJTlNFUlQgSU5UTyAnIC4gJHRuLiAnICgnIC4gJGZpZWxkcyAuICcpIFZBTFVFUyAoJyAuICRwaHMgLiAnKSc7CiAgICAgICAgICRyID0gJGRiLT5FeGVjdXRlKCRxLCBhcnJheV92YWx1ZXMoJHJvdykpOwogICAgICAgICAKICAgICAgICAgaWYoISRyKSB0aHJvdyBuZXcgRXhjZXB0aW9uKCRkYi0+RXJyb3JObygpIC4gJyAtICcgLiAkZGItPkVycm9yTXNnKCkgLCBFcnJvcjo6RElTQ1JFVEVfREIgKTsKICAgICAgIH0KICAgICB9CiAgCiAgICAkX1NFU1NJT05bJ19pbnN0YWxsX21vZHVsZV9tb2RlXyddID0gKGludCkkdGhpcy0+X2RhdGFbJ2RiJ11bJHRoaXMtPm1vZG5hbWVdWydtb2R1bGVfbW9kZSddOwogICAgJF9TRVNTSU9OWydfaW5zdGFsbF9tb2R1bGVfbmFtZSddID0gJHRoaXMtPm1vZG5hbWU7CiAgCi8vICAgICR0biA9ICBcY21zX2RiX3ByZWZpeCgpIC4gJ21vZHVsZV9saXNlX2luc3RhbmNlcyc7Ci8vICAgICRxID0gJ1VQREFURSAnIC4gJHRuIC4gJyBTRVQgbW9kdWxlX21vZGU9PwovLyAgICBXSEVSRSBtb2R1bGVfbmFtZSA9ID8nOwovLwovLyAgICAvLyRkYi0+RXhlY3V0ZSgkcSwgWyR0aGlzLT5fZGF0YVsnZGInXVskdGhpcy0+bW9kbmFtZV1bJ21vZHVsZV9tb2RlJ10sICR0aGlzLT5tb2RuYW1lXSk7Ci8vCi8vICAgICRyID0gJGRiLT5FeGVjdXRlKCRxLCBbKGludCkkdGhpcy0+X2RhdGFbJ2RiJ11bJHRoaXMtPm1vZG5hbWVdWydtb2R1bGVfbW9kZSddLCAkdGhpcy0+bW9kbmFtZV0pOwovLwovLyAgICBpZighJHIpCi8vICAgIHsKLy8gICAgICB0aHJvdyBuZXcgRXhjZXB0aW9uKCRkYi0+RXJyb3JObygpIC4gJyAtICcgLiAkZGItPkVycm9yTXNnKCksIEVycm9yOjpESVNDUkVURV9EQik7Ci8vICAgIH0KICAgIAogIH0KICAKICBwcml2YXRlIGZ1bmN0aW9uIENvcHlQcmVmZXJlbmNlcygpCiAgewogICAgCiAgICAkcHJlZnMgPSBhcnJheSgKICAgICAgICAgICAgICAgICAgICAnZnJpZW5kbHluYW1lJywKICAgICAgICAgICAgICAgICAgICAnYWRtaW5zZWN0aW9uJywKICAgICAgICAgICAgICAgICAgICAnbW9kZGVzY3JpcHRpb24nLAogICAgICAgICAgICAgICAgICAgICdpdGVtX3RpdGxlJywKICAgICAgICAgICAgICAgICAgICAnc29ydG9yZGVyJywKICAgICAgICAgICAgICAgICAgICAnaXRlbV9zaW5ndWxhcicsCiAgICAgICAgICAgICAgICAgICAgJ2l0ZW1fcGx1cmFsJywKICAgICAgICAgICAgICAgICAgICAnZGlzcGxheV9jcmVhdGVfZGF0ZScsCiAgICAgICAgICAgICAgICAgICAgJ2l0ZW1fY29scycsCiAgICAgICAgICAgICAgICAgICAgJ2l0ZW1zX3Blcl9wYWdlJywKICAgICAgICAgICAgICAgICAgICAndXJsX3ByZWZpeCcsCiAgICAgICAgICAgICAgICAgICAgJ2Rpc3BsYXlfaW5saW5lJywKICAgICAgICAgICAgICAgICAgICAnc3ViY2F0ZWdvcnknLAogICAgICAgICAgICAgICAgICAgICd1cmx0ZW1wbGF0ZScsCiAgICAgICAgICAgICAgICAgICAgJ2RldGFpbHBhZ2UnLAogICAgICAgICAgICAgICAgICAgICdzdW1tYXJ5cGFnZScsCiAgICAgICAgICAgICAgICAgICAgJ3JlaW5kZXhfc2VhcmNoJywKICAgICAgICAgICAgICAgICAgICAnc3VtbWFyeV90ZW1wbGF0ZScsCiAgICAgICAgICAgICAgICAgICAgJ2RldGFpbF90ZW1wbGF0ZScsCiAgICAgICAgICAgICAgICAgICAgJ3NlYXJjaF90ZW1wbGF0ZScsCiAgICAgICAgICAgICAgICAgICAgJ2NhdGVnb3J5X3RlbXBsYXRlJywKICAgICAgICAgICAgICAgICAgICAnYXJjaGl2ZV90ZW1wbGF0ZScsCiAgICAgICAgICAgICAgICAgICAgJ2Rpc3BsYXlfaW5saW5lJywKICAgICAgICAgICAgICAgICAgICAnZGlzcGxheV9jcmVhdGVfZGF0ZScsCiAgICAgICAgICAgICAgICAgICAgJ3JlaW5kZXhfc2VhcmNoJywKICAgICAgICAgICAgICAgICAgICAnYXV0b191cGdyYWRlJywKICAgICAgICAgICAgICAgICAgICAnaGlkZV9hbGlhcycsCiAgICAgICAgICAgICAgICAgICAgJ2hpZGVfc2x1ZycsCiAgICAgICAgICAgICAgICAgICAgJ2hpZGVfdGltZV9jb250cm9sJywKICAgICAgICAgICAgICAgICAgICAnc2VwYXJhdGVfc2V0dGluZ3MnCiAgICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgICAgICAgIAogICAgJHRlbXBsYXRlX3ByZWZzID0gYXJyYXkoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdkZWZhdWx0X3N1bW1hcnlfdGVtcGxhdGUnLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnZGVmYXVsdF9kZXRhaWxfdGVtcGxhdGUnLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnZGVmYXVsdF9zZWFyY2hfdGVtcGxhdGUnLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnZGVmYXVsdF9jYXRlZ29yeV90ZW1wbGF0ZScsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdkZWZhdWx0X2FyY2hpdmVfdGVtcGxhdGUnCiAgICAgICAgICAgICAgICAgICAgICAgICAgICApOwoKICAgICRtb2QgPSBcTW9kdWxlT3BlcmF0aW9uczo6Z2V0X2luc3RhbmNlKCktPmdldF9tb2R1bGVfaW5zdGFuY2UoJHRoaXMtPm1vZG5hbWUsIE5VTEwsIFRSVUUpOwogICAgCiAgICBmb3JlYWNoKCRwcmVmcyBhcyAkcHJlZikKICAgIHsKICAgICAgJG1vZC0+U2V0UHJlZmVyZW5jZSgkcHJlZiwgJHRoaXMtPl9kYXRhWydwcmVmcyddWyRwcmVmXSk7CiAgICB9CiAgCiAgICAjIGZvciBiYWNrd2FyZCBjb21wYXRpYmlsaXR5CiAgICBmb3JlYWNoKCR0ZW1wbGF0ZV9wcmVmcyBhcyAkcHJlZikKICAgIHsKICAgICAgaWYoIGlzc2V0KCAkdGhpcy0+X2RhdGFbJ3RlbXBsYXRlX3ByZWZzJ11bJHByZWZdKSApCiAgICAgIHsKICAgICAgICAka2V5ID0gc3RyX3JlcGxhY2UoJ2RlZmF1bHRfJywgJycsICRwcmVmKTsKICAgICAgICAkdGhpcy0+X2RhdGFbJ3RlbXBsYXRlX3ByZWZzJ11bJHByZWZdID0gJG1vZC0+U2V0UHJlZmVyZW5jZSgka2V5LCAnJyk7CiAgICAgIH0KICAgIAogICAgfQoKICB9CiAgCiAgcHJpdmF0ZSBmdW5jdGlvbiBDb3B5VGVtcGxhdGVzKCkKICB7CiAgICAKICAgICRtb2QgPSBcTW9kdWxlT3BlcmF0aW9uczo6Z2V0X2luc3RhbmNlKCktPmdldF9tb2R1bGVfaW5zdGFuY2UoJHRoaXMtPm1vZG5hbWUsIE5VTEwsIFRSVUUpOwogICAgJHRlbXBsYXRlcyA9ICRtb2QtPkxpc3RUZW1wbGF0ZXMoKTsKICAgIAogICAgZm9yZWFjaCgkdGVtcGxhdGVzIGFzICRvbmUpICRtb2QtPkRlbGV0ZVRlbXBsYXRlKCRvbmUpOwogICAgCiAgICBmb3JlYWNoKCR0aGlzLT5fZGF0YVsndGVtcGxhdGVzJ10gYXMgJGsgPT4gJHYpCiAgICB7CiAgICAgICRtb2QtPlNldFRlbXBsYXRlKCRrLCAkdik7CiAgICB9CiAgICAgCiAgfQogIAogIHByaXZhdGUgZnVuY3Rpb24gX2V4cGFuZF94bWwoKQogIHsKICAgICR0bXAgPSBzaW1wbGV4bWxfbG9hZF9zdHJpbmcoJHRoaXMtPl94bWwpOwoKICAgIGlmKCR0bXApCiAgICB7CiAgICAgIGlmKCAhaXNzZXQoJHRtcC0+WE1MVkVSU0lPTikgfHwgJHRtcC0+WE1MVkVSU0lPTiA+IHNlbGY6OlhNTF9WRVJTSU9OKSB0aHJvdyBuZXcgRXhjZXB0aW9uKCdFcnJvciBpbiAnIC4gX19DTEFTU19fIC4gJyBpbnZhbGlkIFhNTCEnKTsKICAgICAgaWYoICFpc3NldCgkdG1wLT5Nb2R1bGVOYW1lKSkgdGhyb3cgbmV3IEV4Y2VwdGlvbignRXJyb3IgaW4gJyAuIF9fQ0xBU1NfXyAuICcgaW52YWxpZCBYTUwhJyk7CiAgICAgIGlmKCAhaXNzZXQoJHRtcC0+VmVyc2lvbikpIHRocm93IG5ldyBFeGNlcHRpb24oJ0Vycm9yIGluICcgLiBfX0NMQVNTX18gLiAnIGludmFsaWQgWE1MIScpOwogICAgICBpZiggIWlzc2V0KCR0bXAtPk1vZHVsZUZyaWVuZGx5TmFtZSkpIHRocm93IG5ldyBFeGNlcHRpb24oJ0Vycm9yIGluICcgLiBfX0NMQVNTX18gLiAnIGludmFsaWQgWE1MIScpOwogICAgICBpZiggIWlzc2V0KCR0bXAtPkRhdGEpKSB0aHJvdyBuZXcgRXhjZXB0aW9uKCdFcnJvciBpbiAnIC4gX19DTEFTU19fIC4gJyBpbnZhbGlkIFhNTCEnKTsKICAKICAgICAgJHRoaXMtPm1vZG5hbWUgICAgICA9IChzdHJpbmcpJHRtcC0+TW9kdWxlTmFtZTsKICAgICAgJHRoaXMtPmZyaWVuZGx5bmFtZSA9IChzdHJpbmcpJHRtcC0+TW9kdWxlRnJpZW5kbHlOYW1lOwogICAgICAkdGhpcy0+X2RhdGEgICAgICAgID0gdW5zZXJpYWxpemUoYmFzZTY0X2RlY29kZSgkdG1wLT5EYXRhKSk7CiAgICB9CiAgICBlbHNlCiAgICB7CiAgICAgICB0aHJvdyBuZXcgRXhjZXB0aW9uKCdFcnJvciBpbiAnIC4gX19DTEFTU19fIC4gJ2ludmFsaWQgWE1MIScpOwogICAgfQogIH0KCQp9IC8vIGVuZCBvZiBjbGFzcw==]]></data>
	</file>
	<file>
	  <filename>/lib/class.ephemeral.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHANCi8qKg0KICogZXBoZW1lcmFsIGZ1bmN0aW9ucw0KICogbWV0aG9kcyBvbiB0aGlzIGNsYXNzIGNhbid0IGJlIHJlbGllZCB0byBleGlzdA0KICogZnJvbSBvbmUgcmVsZWFzZSB0byBhbm90aGVyDQogKi8NCg0KbmFtZXNwYWNlIExJU0U7DQoNCg0KZmluYWwgY2xhc3MgZXBoZW1lcmFsDQp7DQogIHN0YXRpYyBmdW5jdGlvbiByZW1vdmVfbWQoKQ0KICB7DQogICAgJGxpc2UgPSBcY21zX3V0aWxzOjpnZXRfbW9kdWxlKCdMSVNFJyk7DQogICAgJHJvb3QgPSAkbGlzZS0+R2V0TW9kdWxlUGF0aCgpOw0KICAgICRmbiA9IFxjbXNfam9pbl9wYXRoKCRyb290ICwgJy5tb2R1bGVkYXRhJyk7DQogICAgDQogICAgaWYoIGlzX2RpcigkZm4pICkgeyBGaWxlU3lzOjpkZWxldGUoJGZuKTsgfQ0KICB9DQp9DQoNCj8+]]></data>
	</file>
	<file>
	  <filename>/lib/class.Error.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHANCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQojIExJU0UgLSBMaXN0IEl0IFNwZWNpYWwgRWRpdGlvbg0KIyBWZXJzaW9uIDEuMg0KIyBBIGZvcmsgb2YgTGlzdEkyDQojIG1haW50YWluZWQgYnkgRmVybmFuZG8gTW9yZ2FkbyBBS0EgSm8gTW9yZw0KIyBzaW5jZSAyMDE1DQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIw0KIyBPcmlnaW5hbCBBdXRob3I6IEJlbiBNYWxlbiwgPGJlbkBjb25jZXB0ZmFjdG9yeS5jb20uYXU+DQojIENvLU1haW50YWluZXI6IFNpbW9uIFJhZGZvcmQsIDxzaW1vbkBjb25jZXB0ZmFjdG9yeS5jb20uYXU+DQojIFdlYjogd3d3LmNvbmNlcHRmYWN0b3J5LmNvbS5hdQ0KIw0KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCiMNCiMgTWFpbnRhaW5lciBzaW5jZSAyMDExIHVwIHRvIDIwMTQ6IEpvbmF0aGFuIFNjaG1pZCwgPGhpQGpvbmF0aGFuc2NobWlkLmRlPg0KIyBXZWI6IHd3dy5qb25hdGhhbnNjaG1pZC5kZQ0KIw0KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCiMNCiMgU29tZSB3YWNrb3Mgc3RhcnRlZCBkZXN0cm95aW5nIHN0dWZmIHNpbmNlIDIwMTIgYW5kIHN0b3BwZWQgYXQgMjAxNDoNCiMNCiMgVGFwaW8gTMO2eXR0eSwgPHRhcHNhQG9yYW5nZS1tZWRpYS5maT4NCiMgV2ViOiB3d3cub3JhbmdlLW1lZGlhLmZpDQojDQojIEdvcmFuIElsaWMsIDx1bmlxdTNlQGdtYWlsLmNvbT4NCiMgV2ViOiB3d3cuaWNoLW1hY2gtZGFzLmF0DQojDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIw0KIyBMSVNFIGlzIGEgQ01TIE1hZGUgU2ltcGxlIG1vZHVsZSB0aGF0IGVuYWJsZXMgdGhlIHdlYiBkZXZlbG9wZXIgdG8gY3JlYXRlDQojIG11bHRpcGxlIGxpc3RzIHRocm91Z2hvdXQgYSBzaXRlLiBJdCBjYW4gYmUgZHVwbGljYXRlZCBhbmQgZ2l2ZW4gZnJpZW5kbHkNCiMgbmFtZXMgZm9yIGVhc2llciBjbGllbnQgbWFpbnRlbmFuY2UuDQojDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIyBCRUdJTl9MSUNFTlNFDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIyBUaGlzIGZpbGUgaXMgcGFydCBvZiBMSVNFDQojIExJU0UgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5DQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5DQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yDQojIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uDQojDQojIExJU0UgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLA0KIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZg0KIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlDQojIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuDQojIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlDQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlDQojIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcgVVNBDQojIE9yIHJlYWQgaXQgb25saW5lOiBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwNCiMNCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQojIEVORF9MSUNFTlNFDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KbmFtZXNwYWNlIExJU0U7DQoNCmNsYXNzIEVycm9yDQp7DQogICMgdGhpcyBpcyBhIGNvbW1vbiBlcnJvciB0byBhbGwgY2xhc3NlcyB1bmxlc3Mgb3ZlcnJpZGVuLi4uDQogIGNvbnN0IFVOS09XTiAgICAgICAgICAgICAgICAgICAgICAgICAgPSAnMDAwMDAnOyAgICAgICMgJ1VOS09XTicNCiAgY29uc3QgRElTQ1JFVEUgICAgICAgICAgICAgICAgICAgICAgICA9ICcwMDAwMSc7ICAgICAgIyAnRElTQ1JFVEUnDQogIGNvbnN0IERJU0NSRVRFX0RCICAgICAgICAgICAgICAgICAgICAgPSAnMDAwMDInOyAgICAgICMgJ0RJU0NSRVRFX0RCJw0KICANCiAgIyBMSVNFIENvbmZpZy4uLg0KICBjb25zdCBSRUFEX09OTFlfQ0ZHICAgICAgICAgICAgICAgICAgID0gJzAwMDEwJzsgICAgICAjICdSRUFEX09OTFlfQ0ZHJw0KICANCiAgIyBmaWxlIHN5c3RlbQ0KICBjb25zdCBDUkVBVEVfRElSX0VSUk9SICAgICAgICAgICAgICAgID0gJzAwMDMwJzsgICAgICAjICdDUkVBVEVfRElSX0VSUk9SJw0KICBjb25zdCBPUEVOX0RJUl9FUlJPUiAgICAgICAgICAgICAgICAgID0gJzAwMDMxJzsgICAgICAjICdPUEVOX0RJUl9FUlJPUicNCiAgY29uc3QgQ09QWV9GSUxFX0VSUk9SICAgICAgICAgICAgICAgICA9ICcwMDA0MCc7ICAgICAgIyAnQ09QWV9GSUxFX0VSUk9SJw0KICANCiAgI3RoZW4ganVzdCBhZGQgdG8gdGhpcyBsaXN0IGhlcmUgYW5kIGluIHRoZSBsYW5nIGZpbGUgb2YgdGhlIG1vZHVsZQ0KICANCiAgc3RhdGljIHB1YmxpYyBmdW5jdGlvbiBHZXRFcnJvcnNMaXN0KCkNCiAgew0KICAgICRyID0gbmV3IFxSZWZsZWN0aW9uQ2xhc3MoIGdldF9jYWxsZWRfY2xhc3MoKSApOw0KICAgIHJldHVybiAkci0+Z2V0Q29uc3RhbnRzKCk7DQogIH0NCiAgDQogIHN0YXRpYyBwdWJsaWMgZnVuY3Rpb24gSGFzQ29kZSgkY29kZSkNCiAgew0KICAgICRjb2RlcyA9IHNlbGY6OkdldEVycm9yc0xpc3QoKTsgICAgDQogICAgcmV0dXJuIGluX2FycmF5KCRjb2RlLCAkY29kZXMpOw0KICB9DQogIA0KfQ0KPz4=]]></data>
	</file>
	<file>
	  <filename>/lib/class.Exception.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHANCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQojIExJU0UgLSBMaXN0IEl0IFNwZWNpYWwgRWRpdGlvbg0KIyBWZXJzaW9uIDEuMg0KIyBBIGZvcmsgb2YgTGlzdEkyDQojIG1haW50YWluZWQgYnkgRmVybmFuZG8gTW9yZ2FkbyBBS0EgSm8gTW9yZw0KIyBzaW5jZSAyMDE1DQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIw0KIyBPcmlnaW5hbCBBdXRob3I6IEJlbiBNYWxlbiwgPGJlbkBjb25jZXB0ZmFjdG9yeS5jb20uYXU+DQojIENvLU1haW50YWluZXI6IFNpbW9uIFJhZGZvcmQsIDxzaW1vbkBjb25jZXB0ZmFjdG9yeS5jb20uYXU+DQojIFdlYjogd3d3LmNvbmNlcHRmYWN0b3J5LmNvbS5hdQ0KIw0KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCiMNCiMgTWFpbnRhaW5lciBzaW5jZSAyMDExIHVwIHRvIDIwMTQ6IEpvbmF0aGFuIFNjaG1pZCwgPGhpQGpvbmF0aGFuc2NobWlkLmRlPg0KIyBXZWI6IHd3dy5qb25hdGhhbnNjaG1pZC5kZQ0KIw0KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCiMNCiMgU29tZSB3YWNrb3Mgc3RhcnRlZCBkZXN0cm95aW5nIHN0dWZmIHNpbmNlIDIwMTIgYW5kIHN0b3BwZWQgYXQgMjAxNDoNCiMNCiMgVGFwaW8gTMO2eXR0eSwgPHRhcHNhQG9yYW5nZS1tZWRpYS5maT4NCiMgV2ViOiB3d3cub3JhbmdlLW1lZGlhLmZpDQojDQojIEdvcmFuIElsaWMsIDx1bmlxdTNlQGdtYWlsLmNvbT4NCiMgV2ViOiB3d3cuaWNoLW1hY2gtZGFzLmF0DQojDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIw0KIyBMSVNFIGlzIGEgQ01TIE1hZGUgU2ltcGxlIG1vZHVsZSB0aGF0IGVuYWJsZXMgdGhlIHdlYiBkZXZlbG9wZXIgdG8gY3JlYXRlDQojIG11bHRpcGxlIGxpc3RzIHRocm91Z2hvdXQgYSBzaXRlLiBJdCBjYW4gYmUgZHVwbGljYXRlZCBhbmQgZ2l2ZW4gZnJpZW5kbHkNCiMgbmFtZXMgZm9yIGVhc2llciBjbGllbnQgbWFpbnRlbmFuY2UuDQojDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIyBCRUdJTl9MSUNFTlNFDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIyBUaGlzIGZpbGUgaXMgcGFydCBvZiBMSVNFDQojIExJU0UgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5DQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5DQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yDQojIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uDQojDQojIExJU0UgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLA0KIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZg0KIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlDQojIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuDQojIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlDQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlDQojIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcgVVNBDQojIE9yIHJlYWQgaXQgb25saW5lOiBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwNCiMNCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQojIEVORF9MSUNFTlNFDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KbmFtZXNwYWNlIExJU0U7DQovKioNCiogQGF1dGhvciBGZXJuYW5kbyBNb3JnYWRvKEpvTW9yZykNCiogQHNpbmNlIDEuMi4yDQoqIEN1c3RvbWl6ZXMgTElTRSBleGNlcHRpb24gaGFuZGxpbmcNCiovDQpjbGFzcyBFeGNlcHRpb24gZXh0ZW5kcyBcRXhjZXB0aW9uDQp7DQogIHByaXZhdGUgJF9tb2QgPSBOVUxMOw0KICANCiAgcHVibGljIGZ1bmN0aW9uIF9fY29uc3RydWN0KCkgDQogIHsNCiAgICAkdGhpcy0+X21vZCA9IFxjbXNfdXRpbHM6OmdldF9tb2R1bGUoJ0xJU0UnKTsNCiAgICAkcGFyYW1zID0gZnVuY19nZXRfYXJncygpOw0KICAgICR0bXBfcGFyYW1zID0gYXJyYXkoKTsNCiAgICAkbmV3cGFyYW1zID0gYXJyYXkoKTsNCiAgICAgICAgDQogICAgaWYoICFpc3NldCgkcGFyYW1zWzBdKSApDQogICAgew0KICAgICAgJGNvZGUgPSBcTElTRVxFcnJvcjo6VU5LT1dOOw0KICAgICAgIyBub3QgYSB0eXBvOyAobm90ZTogd2UgbWF5IGNoYW5nZSB0aGUgbm90YXRpb24gZm9yIFBIUCA1LjQgLT4gJG5ld3BhcmFtcyA9IFskY29kZSwgJGNvZGVdOykNCiAgICAgICMgd2UgbmVlZCBpdCB0d2ljZTogb25jZSBmb3IgdGhlIExhbmcgc3RyaW5nIHRyYW5zbGF0aW9uIGFuZCBvbmUgdG8gZGlzcGxheSB0aGUgZXJyb3IgY29kZSBpdHNlbGYNCiAgICAgICRuZXdwYXJhbXNbXSA9ICRuZXdwYXJhbXNbXSA9ICRjb2RlOw0KICAgIH0NCiAgICBlbHNlDQogICAgew0KICAgICAgIyBhIG51bWVyaWMgY29kZSBoYXMgYmVlbiBwcm92aWRlZCBpbnN0ZWFkIG9mIGEgbWVzc2FnZQ0KICAgICAgaWYoIGlzX251bWVyaWMoJHBhcmFtc1swXSkgKQ0KICAgICAgew0KICAgICAgICAkY29kZSA9ICRwYXJhbXNbMF07DQogICAgICAgICMgc2VwYXJhdGUgYWRkaXRpb25hbCAkcGFyYW1zDQogICAgICAgICR0bXBfcGFyYW1zID0gYXJyYXlfc2xpY2UoJHBhcmFtcywgMSk7DQogICAgICAgICRuZXdwYXJhbXNbXSA9ICRuZXdwYXJhbXNbXSA9ICRjb2RlOw0KICAgICAgfQ0KICAgICAgZWxzZQ0KICAgICAgew0KICAgICAgICBpZihjb3VudCgkcGFyYW1zKSA9PSAxKQ0KICAgICAgICAjIHRoaXMgaXMganVzdCBhIGN1c3RvbSBtZXNzYWdlIGluc3RlYWQgb2YgYSByZWFsIExJU0UgZXJyb3IgY29kZTogRGlzY3JldGUNCiAgICAgICAgew0KICAgICAgICAgICRjb2RlID0gXExJU0VcRXJyb3I6OkRJU0NSRVRFOw0KICAgICAgICAgICRuZXdwYXJhbXNbXSA9ICRuZXdwYXJhbXNbXSA9ICRjb2RlOw0KICAgICAgICAgICRuZXdwYXJhbXNbXSA9ICRwYXJhbXNbMF07IA0KICAgICAgICB9DQogICAgICAgIGVsc2UNCiAgICAgICAgIyB0aGUgY2FsbCBoYXMgYmVlbiBjYWxsZWQgd2l0aCBhbGwgaXRzIHBhcmFtZXRlcnMgZmlsbGVkOg0KICAgICAgICAjIGkuZS46IHRocm93IG5ldyBcTElTRVxFeGNlcHRpb24oJG1zZywgJGNvZGVbLCAkcGFyYW0xXVssICRwYXJhbTJdLi4uWywgJHBhcmFtKG4pXSkNCiAgICAgICAgIyB3aGVyZSB0aGUgZXh0cmEgcGFyYW1zIGFyZSBwYXNzZWQgdG8gdGhlIDxNb2R1bGU+LT5MYW5nKCkgbWV0aG9kIGFzIGFkaXRpb25hbCBwYXJhbXMgICAgICAgIA0KICAgICAgICB7DQogICAgICAgICAgJGNvZGUgPSAkcGFyYW1zWzFdOw0KICAgICAgICAgICMgc2VwYXJhdGUgYWRkaXRpb25hbCAkcGFyYW1zDQogICAgICAgICAgJHRtcF9wYXJhbXMgPSBhcnJheV9zbGljZSgkcGFyYW1zLCAyKTsNCiAgICAgICAgICAkbmV3cGFyYW1zW10gPSAkbmV3cGFyYW1zW10gPSAkY29kZTsgDQogICAgICAgICAgJG5ld3BhcmFtc1tdID0gJHBhcmFtc1swXTsNCiAgICAgICAgfSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIA0KICAgICAgfQ0KICAgICAgDQogICAgICAjIHByZXZlbnQgbm9uIGV4aXN0aW5nIGVycm9ycw0KICAgICAgaWYoICFcTElTRVxFcnJvcjo6SGFzQ29kZSgkY29kZSkgKQ0KICAgICAgew0KICAgICAgICAkY29kZSA9IFxMSVNFXEVycm9yOjpVbmtub3duOw0KICAgICAgICAkbmV3cGFyYW1zW10gPSAkbmV3cGFyYW1zW10gPSAkY29kZTsgDQogICAgICB9ICAgICANCiAgICB9IA0KICAgIA0KICAgICMgd2UgbWVyZ2UgYW55IGFkaXRpb25hbCBwYXJhbXMgYW5kIHBhc3MgdGhlbSB0byBMSVNFLT5MYW5nKCk7ICANCiAgICAkbmV3cGFyYW1zID0gYXJyYXlfbWVyZ2UoJG5ld3BhcmFtcywgICR0bXBfcGFyYW1zKTsgDQogICAgJG1zZyA9IGNhbGxfdXNlcl9mdW5jX2FycmF5KGFycmF5KCR0aGlzLT5fbW9kLCAnTGFuZycpLCAkbmV3cGFyYW1zKSAuICcgQCAnIC4gJHRoaXMtPmZpbGUgLiAnICgnIC4gJHRoaXMtPmxpbmUgLiAnKSc7DQogICAgcGFyZW50OjpfX2NvbnN0cnVjdCgkbXNnLCAoaW50KSRjb2RlKTsNCiAgfQ0KICANCiAgcHVibGljIGZ1bmN0aW9uIF9fdG9TdHJpbmcoKQ0KICB7DQogICAgcmV0dXJuICcjIyAnIC4gJHRoaXMtPm1lc3NhZ2UgLiAnICMjJzsNCiAgfQ0KfQ0KDQo/Pg==]]></data>
	</file>
	<file>
	  <filename>/lib/class.FileSys.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHANCg0KDQpuYW1lc3BhY2UgTElTRTsNCg0KDQpmaW5hbCBjbGFzcyBGaWxlU3lzDQp7DQogIHB1YmxpYyBzdGF0aWMgZnVuY3Rpb24gY3JlYXRlX2RpcigkZGlyLCAkbSA9IDA3NzcsICRyPSBUUlVFKSB7IG1rZGlyKCRkaXIsICRtLCAkcik7IH0NCiAgDQogIHB1YmxpYyBzdGF0aWMgZnVuY3Rpb24gcmVhZF9maWxlKCRmaWxlKQ0KICB7DQogICAgaWYoICgkaCA9IGZvcGVuKCRmaWxlLCAncicpICkgPT0gRkFMU0UgKSB7IHJldHVybiBGQUxTRTsgfQ0KICAgIGlmKCAoICRjb250ZW50cyA9IGZyZWFkKCAkaCwgZmlsZXNpemUoJGZpbGUpICkgKSA9PSBGQUxTRSApIHsgcmV0dXJuIEZBTFNFOyB9DQogICAgZmNsb3NlKCRoKTsNCiAgICANCiAgICByZXR1cm4gJGNvbnRlbnRzOw0KICB9DQogIA0KICBwdWJsaWMgc3RhdGljIGZ1bmN0aW9uIHdyaXRlKCRmaWxlLCAkY29udGVudHMsICRmbGFnID0gJ3crJykNCiAgew0KICAgIGlmKCAoICRoID0gZm9wZW4oJGZpbGUsICRmbGFnKSApID09IEZBTFNFKXsgcmV0dXJuIEZBTFNFOyB9DQogICAgaWYoZndyaXRlKCRoLCAkY29udGVudHMpID09IEZBTFNFKXsgcmV0dXJuIEZBTFNFOyB9DQogICAgDQogICAgcmV0dXJuIFRSVUU7DQogIH0NCiAgDQogIHB1YmxpYyBzdGF0aWMgZnVuY3Rpb24gcmVjdXJzaXZlX3NlYXJjaCgkZGlyLCAkcGF0dCA9IE5VTEwsICRkZXB0aCA9IC0xLCAkZmxhZ3MgPSBcUmVjdXJzaXZlSXRlcmF0b3JJdGVyYXRvcjo6U0VMRl9GSVJTVCkNCiAgew0KICAgICRkaSA9IG5ldyBcUmVjdXJzaXZlRGlyZWN0b3J5SXRlcmF0b3IoJGRpciwgXEZpbGVzeXN0ZW1JdGVyYXRvcjo6U0tJUF9ET1RTKTsNCiAgICAkaSAgPSBuZXcgXFJlY3Vyc2l2ZUl0ZXJhdG9ySXRlcmF0b3IoJGRpLCAkZmxhZ3MpOw0KICAgICRpLT5zZXRNYXhEZXB0aCgkZGVwdGgpOw0KICAgIA0KICAgIGlmKGlzX251bGwoJHBhdHQpKXsgcmV0dXJuICRpOyB9DQogICAgZWxzZXsgcmV0dXJuIG5ldyBcUmVnZXhJdGVyYXRvcigkaSwgJHBhdHQpOyB9DQogIH0NCiAgDQogIHB1YmxpYyBzdGF0aWMgZnVuY3Rpb24gc2VhcmNoKCRkaXIsICRwYXR0ZXJuID0gTlVMTCl7IHJldHVybiBzZWxmOjpyZWN1cnNpdmVfc2VhcmNoKCRkaXIsICRwYXR0ZXJuLCAwKTsgfQ0KICANCiAgcHVibGljIHN0YXRpYyBmdW5jdGlvbiByZWN1cnNpdmVfZGVsZXRlKCRkaXIsICRwYXR0ZXJuID0gTlVMTCwgJGRlcHRoID0gLTEpDQogIHsNCiAgICBmb3JlYWNoKHNlbGY6OnJlY3Vyc2l2ZV9zZWFyY2goJGRpciwgJHBhdHRlcm4sICRkZXB0aCwgXFJlY3Vyc2l2ZUl0ZXJhdG9ySXRlcmF0b3I6OkNISUxEX0ZJUlNUKSBhcyAkZmlsZSkNCiAgICB7DQogICAgICBpZiggJGZpbGUtPmlzRmlsZSgpICkgeyB1bmxpbmsoJGZpbGUpOyB9DQogICAgICBlbHNlIGlmKCAkZmlsZS0+aXNEaXIoKSApIHsgQHJtZGlyKCRmaWxlKTsgfQ0KICAgIH0NCiAgICANCiAgICBpZiggaXNfZGlyKCRkaXIpICkgeyBAcm1kaXIoJGRpcik7IH0NCiAgfQ0KICANCiAgcHVibGljIHN0YXRpYyBmdW5jdGlvbiBkZWxldGUoJGl0ZW0sICRwYXR0ZXJuID0gTlVMTCkNCiAgew0KICAgIGlmKCBpc19maWxlKCRpdGVtKSApIHsgdW5saW5rKCRpdGVtKTsgfQ0KICAgIGVsc2UgeyBzZWxmOjpyZWN1cnNpdmVfZGVsZXRlKCRpdGVtLCAkcGF0dGVybiwgMCk7IH0NCiAgfQ0KfQ0KDQo/Pg==]]></data>
	</file>
	<file>
	  <filename>/lib/class.instances_operations.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHANCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQojIExJU0UgLSBMaXN0IEl0IFNwZWNpYWwgRWRpdGlvbg0KIyBWZXJzaW9uIDEuMg0KIyBBIGZvcmsgb2YgTGlzdEkyDQojIG1haW50YWluZWQgYnkgRmVybmFuZG8gTW9yZ2FkbyBBS0EgSm8gTW9yZw0KIyBzaW5jZSAyMDE1DQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIw0KIyBPcmlnaW5hbCBBdXRob3I6IEJlbiBNYWxlbiwgPGJlbkBjb25jZXB0ZmFjdG9yeS5jb20uYXU+DQojIENvLU1haW50YWluZXI6IFNpbW9uIFJhZGZvcmQsIDxzaW1vbkBjb25jZXB0ZmFjdG9yeS5jb20uYXU+DQojIFdlYjogd3d3LmNvbmNlcHRmYWN0b3J5LmNvbS5hdQ0KIw0KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCiMNCiMgTWFpbnRhaW5lciBzaW5jZSAyMDExIHVwIHRvIDIwMTQ6IEpvbmF0aGFuIFNjaG1pZCwgPGhpQGpvbmF0aGFuc2NobWlkLmRlPg0KIyBXZWI6IHd3dy5qb25hdGhhbnNjaG1pZC5kZQ0KIw0KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCiMNCiMgU29tZSB3YWNrb3Mgc3RhcnRlZCBkZXN0cm95aW5nIHN0dWZmIHNpbmNlIDIwMTIgYW5kIHN0b3BwZWQgYXQgMjAxNDoNCiMNCiMgVGFwaW8gTMO2eXR0eSwgPHRhcHNhQG9yYW5nZS1tZWRpYS5maT4NCiMgV2ViOiB3d3cub3JhbmdlLW1lZGlhLmZpDQojDQojIEdvcmFuIElsaWMsIDx1bmlxdTNlQGdtYWlsLmNvbT4NCiMgV2ViOiB3d3cuaWNoLW1hY2gtZGFzLmF0DQojDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIw0KIyBMSVNFIGlzIGEgQ01TIE1hZGUgU2ltcGxlIG1vZHVsZSB0aGF0IGVuYWJsZXMgdGhlIHdlYiBkZXZlbG9wZXIgdG8gY3JlYXRlDQojIG11bHRpcGxlIGxpc3RzIHRocm91Z2hvdXQgYSBzaXRlLiBJdCBjYW4gYmUgZHVwbGljYXRlZCBhbmQgZ2l2ZW4gZnJpZW5kbHkNCiMgbmFtZXMgZm9yIGVhc2llciBjbGllbnQgbWFpbnRlbmFuY2UuDQojDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIyBCRUdJTl9MSUNFTlNFDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIyBUaGlzIGZpbGUgaXMgcGFydCBvZiBMSVNFDQojIExJU0UgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5DQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5DQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yDQojIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uDQojDQojIExJU0UgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLA0KIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZg0KIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlDQojIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuDQojIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlDQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlDQojIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcgVVNBDQojIE9yIHJlYWQgaXQgb25saW5lOiBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwNCiMNCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQojIEVORF9MSUNFTlNFDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KbmFtZXNwYWNlIExJU0U7DQpmaW5hbCBjbGFzcyBpbnN0YW5jZXNfb3BlcmF0aW9ucw0Kew0KICBwcml2YXRlIHN0YXRpYyBhcnJheSAkX2luc3RhbmNlcyAgICAgICA9IFtdOw0KICBwcml2YXRlIHN0YXRpYyBhcnJheSAkX2luc3RhbmNlc19uYW1lcyA9IFtdOw0KICANCiAgLyoqDQogICAqIEB0aHJvd3MgXEV4Y2VwdGlvbg0KICAgKi8NCiAgcHJpdmF0ZSBzdGF0aWMgZnVuY3Rpb24gX2xvYWRfaW5zdGFuY2VzKCkgOiB2b2lkDQogIHsNCiAgICBpZiggZW1wdHkoc2VsZjo6JF9pbnN0YW5jZXMpICkNCiAgICB7DQogICAgICAkZGIgPSBcY21zbXMoKS0+R2V0RGIoKTsNCiAgICAgICRxdWVyeSA9ICdTRUxFQ1QgKiBGUk9NICcgLiBjbXNfZGJfcHJlZml4KCkgLiAnbW9kdWxlX2xpc2VfaW5zdGFuY2VzIE9SREVSIEJZIG1vZHVsZV9pZCc7DQogICAgICAkZGJyID0gJGRiLT5HZXRBbGwoJHF1ZXJ5KTsNCiAgICAgIA0KICAgICAgZm9yZWFjaCgkZGJyIGFzICRvbmUpDQogICAgICB7DQogICAgICAgIHNlbGY6OiRfaW5zdGFuY2VzX25hbWVzWyAkb25lWydtb2R1bGVfaWQnXSBdID0gJG9uZVsnbW9kdWxlX25hbWUnXTsNCiAgICAgICAgc2VsZjo6JF9pbnN0YW5jZXNbICRvbmVbJ21vZHVsZV9pZCddIF0gPSAgbmV3IFxzdGRDbGFzcygpOw0KICAgICAgICBzZWxmOjokX2luc3RhbmNlc1sgJG9uZVsnbW9kdWxlX2lkJ10gXS0+bW9kdWxlX2lkID0gJG9uZVsnbW9kdWxlX2lkJ107DQogICAgICAgIHNlbGY6OiRfaW5zdGFuY2VzWyAkb25lWydtb2R1bGVfaWQnXSBdLT5tb2R1bGVfbmFtZSA9ICRvbmVbJ21vZHVsZV9uYW1lJ107DQogICAgICAgIHNlbGY6OiRfaW5zdGFuY2VzWyAkb25lWydtb2R1bGVfaWQnXSBdLT5tb2R1bGVfbW9kZSA9IGlzc2V0KCRvbmVbJ21vZHVsZV9tb2RlJ10pID8gJG9uZVsnbW9kdWxlX21vZGUnXSA6IFxMSVNFOjpNT0RFX0xJU1Q7DQogICAgICB9DQogICAgfQ0KICB9DQogIA0KICAvKioNCiAgICogQHJldHVybiBhcnJheQ0KICAgKiBAdGhyb3dzIFxFeGNlcHRpb24NCiAgICovDQogIHB1YmxpYyBzdGF0aWMgZnVuY3Rpb24gR2V0SW5zdGFuY2VzTmFtZXNMaXN0QXJyYXkoKSA6IGFycmF5DQogIHsNCiAgICBzZWxmOjpfbG9hZF9pbnN0YW5jZXMoKTsNCiAgICByZXR1cm4gc2VsZjo6JF9pbnN0YW5jZXNfbmFtZXM7DQogIH0NCiAgDQogIC8qKg0KICAgKiBAcGFyYW0gbnVsbCAkbW9kZQ0KICAgKg0KICAgKiBAcmV0dXJuIGFycmF5DQogICAqIEB0aHJvd3MgXEV4Y2VwdGlvbg0KICAgKi8NCiAgcHVibGljIHN0YXRpYyBmdW5jdGlvbiBMaXN0TW9kdWxlcygkbW9kZSA9IE5VTEwpIDogYXJyYXkNCiAgew0KICAgICMgTlVMTCBpcyBhbGwgaW5zdGFuY2VzIG90aGVyd2lzZSAkbW9kZSBtdXN0IGJlIHZhbGlkDQogICAgaWYoTlVMTCAhPSAkbW9kZSAmJiAhXGluX2FycmF5KCRtb2RlLCBcTElTRTo6JG1vZGVzLCBGQUxTRSkgKQ0KICAgIHsNCiAgICAgIHRocm93IG5ldyBcUnVudGltZUV4Y2VwdGlvbignSW52YWxpZCBMSVNFIG9wZXJhdGlvbiBtb2RlJyk7DQogICAgfQ0KICAgIA0KICAgIHNlbGY6Ol9sb2FkX2luc3RhbmNlcygpOw0KICAgIA0KICAgIGlmKE5VTEwgIT0gJG1vZGUpDQogICAgew0KICAgICAgJHIgPSBbXTsNCiAgICAgIGZvcmVhY2goc2VsZjo6JF9pbnN0YW5jZXMgYXMgJG9uZSkNCiAgICAgIHsNCiAgICAgICAgaWYoJG9uZS0+bW9kdWxlX21vZGUgPT0gJG1vZGUpDQogICAgICAgIHsNCiAgICAgICAgICAkclskb25lLT5tb2R1bGVfaWRdID0gJG9uZTsNCiAgICAgICAgfQ0KICAgICAgICANCiAgICAgICAgaWYoICRtb2RlID09IFxMSVNFOjpNT0RFX0xJU1QgJiYgTlVMTCA9PSAkb25lLT5tb2R1bGVfbW9kZSkNCiAgICAgICAgew0KICAgICAgICAgICRyWyRvbmUtPm1vZHVsZV9pZF0gPSAkb25lOw0KICAgICAgICB9DQogICAgICB9DQogICAgICANCiAgICAgIHJldHVybiAkcjsNCiAgICB9DQogICAgDQogICAgcmV0dXJuIHNlbGY6OiRfaW5zdGFuY2VzOw0KICB9DQogIA0KfQ0KPz4NCg==]]></data>
	</file>
	<file>
	  <filename>/lib/class.LISEArchiveQuery.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAgDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIw0KIyBBdXRob3I6IEJlbiBNYWxlbiwgPGJlbkBjb25jZXB0ZmFjdG9yeS5jb20uYXU+DQojIENvLU1haW50YWluZXI6IFNpbW9uIFJhZGZvcmQsIDxzaW1vbkBjb25jZXB0ZmFjdG9yeS5jb20uYXU+DQojIFdlYjogd3d3LmNvbmNlcHRmYWN0b3J5LmNvbS5hdQ0KIw0KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCiMNCiMgTWFpbnRhaW5lciBzaW5jZSAyMDExOiBKb25hdGhhbiBTY2htaWQsIDxoaUBqb25hdGhhbnNjaG1pZC5kZT4NCiMgV2ViOiB3d3cuam9uYXRoYW5zY2htaWQuZGUNCiMNCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQojDQojIFNvbWUgd2Fja29zIHN0YXJ0ZWQgZGVzdHJveWluZyBzdHVmZiBzaW5jZSAyMDEyOiANCiMNCiMgVGFwaW8gTCwgPHRhcHNhQG9yYW5nZS1tZWRpYS5maT4NCiMgV2ViOiB3d3cub3JhbmdlLW1lZGlhLmZpDQojDQojIEdvcmFuIElsaWMsIDx1bmlxdTNlQGdtYWlsLmNvbT4NCiMgV2ViOiB3d3cuaWNoLW1hY2gtZGFzLmF0DQojDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIw0KIyBMSVNFIGlzIGEgQ01TIE1hZGUgU2ltcGxlIG1vZHVsZSB0aGF0IGVuYWJsZXMgdGhlIHdlYiBkZXZlbG9wZXIgdG8gY3JlYXRlDQojIG11bHRpcGxlIGxpc3RzIHRocm91Z2hvdXQgYSBzaXRlLiBJdCBjYW4gYmUgZHVwbGljYXRlZCBhbmQgZ2l2ZW4gZnJpZW5kbHkNCiMgbmFtZXMgZm9yIGVhc2llciBjbGllbnQgbWFpbnRlbmFuY2UuDQojDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KDQpjbGFzcyBMSVNFQXJjaGl2ZVF1ZXJ5IGV4dGVuZHMgTElTRVF1ZXJ5DQp7DQoJIy0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KCSMgQXR0cmlidXRlcw0KCSMtLS0tLS0tLS0tLS0tLS0tLS0tLS0NCg0KCXByaXZhdGUgc3RhdGljICRvcmRlcmJ5X21hcCA9IGFycmF5KA0KCQkvLyBpdGVtcw0KCQkneWVhcicgPT4gJ1lFQVIoQS5jcmVhdGVfdGltZSknLCAnbW9udGgnID0+ICdNT05USChBLmNyZWF0ZV90aW1lKScsDQoJCS8vIGNhdGVnb3J5DQoJCSdjYXRlZ29yeV9pZCcgPT4gJ0IuY2F0ZWdvcnlfaWQnLCAnY2F0ZWdvcnlfbmFtZScgPT4gJ0IuY2F0ZWdvcnlfbmFtZScsDQoJCS8vIGZ1bmN0aW9ucw0KCQkncmFuZCc9PidSQU5EKCknDQoJKTsJDQoJDQoJIy0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KCSMgTWFnaWMgbWV0aG9kcw0KCSMtLS0tLS0tLS0tLS0tLS0tLS0tLS0JCQ0KCQ0KCXB1YmxpYyBmdW5jdGlvbiBfX2NvbnN0cnVjdChMSVNFICYkbW9kLCAmJHBhcmFtcykNCgl7DQoJCXBhcmVudDo6X19jb25zdHJ1Y3QoJG1vZCwgJHBhcmFtcyk7DQoJfQ0KCQkNCgkjLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQoJIyBRdWVyeSBtZXRob2RzDQoJIy0tLS0tLS0tLS0tLS0tLS0tLS0tLQkNCg0KCXByaXZhdGUgZnVuY3Rpb24gX2FwcGVuZF9pbnRlcm5hbCgpDQoJew0KCQlpZihpc3NldCgkdGhpcy0+cXVlcnkpKQ0KCQkJcmV0dXJuOw0KCQkJDQoJCSRkYiA9ICR0aGlzLT5HZXREYigpOw0KCQkkbW9kID0gJHRoaXMtPkdldE1vZHVsZUluc3RhbmNlKCk7DQoJCSRwYXJhbXMgPSAkdGhpcy0+R2V0UGFyYW1zKCk7CQ0KDQoJCS8qDQoJCSAqIE9SREVSIEJZDQoJCSAqLw0KCQlpZihpc3NldCgkcGFyYW1zWydvcmRlcmJ5J10pKSB7DQoNCgkJCWxpc3QoJG9yZGVyX2NvbHMsICRjdXN0b21fY29scykgPSBzZWxmOjpleHBsb2RlX29yZGVyYnkoJHBhcmFtc1snb3JkZXJieSddLCBzZWxmOjokb3JkZXJieV9tYXApOyAvLyA8LSBCaXQgYnJva2VuLCB3YXNuJ3QgbWVudCBmb3IgY2F0ZWdvcnkgYWN0aW9uLCBzZWNvbmQgYXJyYXkgdG90YWxseSB1bm5lY2NlcnkuDQoJCQkNCgkJCWlmKGNvdW50KCRvcmRlcl9jb2xzKSkgew0KCQkJDQoJCQkJZm9yZWFjaCgkb3JkZXJfY29scyBhcyAkb25lKSB7DQoJCQkJDQoJCQkJCSR0aGlzLT5BcHBlbmRUbyhwYXJlbnQ6OlZBUlRZUEVfT1JERVJCWSwgJG9uZSk7DQoJCQkJfQ0KCQkJfQ0KCQl9DQoJCQ0KCQkvKioNCgkJICogRklMVEVSOiBZRUFSDQoJCSAqLwkJDQoJCQ0KCQlpZighZW1wdHkoJHBhcmFtc1snZmlsdGVyX3llYXInXSkpIHsNCgkJCQ0KCQkJJHRoaXMtPkFwcGVuZFRvKHBhcmVudDo6VkFSVFlQRV9XSEVSRSwgJ1lFQVIoQS5jcmVhdGVfdGltZSkgPSA/Jyk7DQoJCQkkdGhpcy0+QXBwZW5kVG8ocGFyZW50OjpWQVJUWVBFX1FQQVJBTVMsIChpbnQpJHBhcmFtc1snZmlsdGVyX3llYXInXSk7DQoJCX0NCgl9DQoJCQ0KCXByb3RlY3RlZCBmdW5jdGlvbiBfcXVlcnkoKQ0KCXsNCgkJJGRiID0gJHRoaXMtPkdldERiKCk7DQoJCSRtb2QgPSAkdGhpcy0+R2V0TW9kdWxlSW5zdGFuY2UoKTsNCgkJJHBhcmFtcyA9ICR0aGlzLT5HZXRQYXJhbXMoKTsNCgkJDQoJCSRvcmRlcl9jb2xzID0gYXJyYXkoKTsNCgkJJGN1c3RvbV9jb2xzID0gYXJyYXkoKTsNCgkJJHRoaXMtPl9hcHBlbmRfaW50ZXJuYWwoKTsNCg0KCQkvLyBJbml0IHF1ZXJ5DQoJCSR0aGlzLT5xdWVyeSA9ICdTRUxFQ1QgRElTVElOQ1QgTU9OVEgoQS5jcmVhdGVfdGltZSkgQVMgbW9udGgsIFlFQVIoQS5jcmVhdGVfdGltZSkgQVMgeWVhciwgY291bnQoQS5pdGVtX2lkKSBBUyBjb3VudCBGUk9NICcgLiBjbXNfZGJfcHJlZml4KCkgLiAnbW9kdWxlXycgLiAkbW9kLT5fR2V0TW9kdWxlQWxpYXMoKSAuICdfaXRlbSBBIA0KCQkJCQkJTEVGVCBKT0lOICcgLiBjbXNfZGJfcHJlZml4KCkgLiAnbW9kdWxlXycgLiAkbW9kLT5fR2V0TW9kdWxlQWxpYXMoKSAuICdfaXRlbV9jYXRlZ29yaWVzIElCIA0KCQkJCQkJT04gQS5pdGVtX2lkID0gSUIuaXRlbV9pZCANCgkJCQkJCUxFRlQgSk9JTiAnIC4gY21zX2RiX3ByZWZpeCgpIC4gJ21vZHVsZV8nIC4gJG1vZC0+X0dldE1vZHVsZUFsaWFzKCkgLiAnX2NhdGVnb3J5IEIgDQoJCQkJCQlPTiBJQi5jYXRlZ29yeV9pZCA9IEIuY2F0ZWdvcnlfaWQgJzsJCQ0KCQkNCgkJLy8gTWVyZ2UgZXZlcnl0aGluZyB0byBvbmUgcXVlcnkNCgkJaWYoY291bnQoJHRoaXMtPmpvaW5zKSkNCgkJCSR0aGlzLT5xdWVyeSAuPSBpbXBsb2RlKCcgJywgJHRoaXMtPmpvaW5zKTsNCgkJDQoJCWlmKGNvdW50KCR0aGlzLT53aGVyZSkpDQoJCQkkdGhpcy0+cXVlcnkgLj0gJyBXSEVSRSAnIC4gaW1wbG9kZSgnIEFORCAnLCAkdGhpcy0+d2hlcmUpOw0KCQkJDQoJCSR0aGlzLT5xdWVyeSAuPSAnIEdST1VQIEJZIFlFQVIoQS5jcmVhdGVfdGltZSksIE1PTlRIKEEuY3JlYXRlX3RpbWUpICc7CQkJDQoNCgkJaWYoY291bnQoJHRoaXMtPm9yZGVyYnkpKSB7DQoJCQ0KCQkJJHRoaXMtPnF1ZXJ5IC49ICcgT1JERVIgQlkgJyAuIGltcGxvZGUoJywgJywgJHRoaXMtPm9yZGVyYnkpOw0KCQl9IGVsc2Ugew0KCQkNCgkJCSR0aGlzLT5xdWVyeSAuPSAnIE9SREVSIEJZIEEuY3JlYXRlX3RpbWUgREVTQyc7DQoJCX0JCQkNCgkJCQ0KCQkkdGhpcy0+cmVzdWx0c2V0ID0gJGRiLT5FeGVjdXRlKCR0aGlzLT5xdWVyeSwgJHRoaXMtPnFwYXJhbXMpOw0KCX0JDQoJDQoJIy0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KCSMgQ2xhc3MgbWV0aG9kcw0KCSMtLS0tLS0tLS0tLS0tLS0tLS0tLS0JCQ0KCQ0KCXN0YXRpYyBwcml2YXRlIGZ1bmN0aW9uIGV4cGxvZGVfb3JkZXJieSgkcGFyYW0sICR2YWxpZF9jb2xzKXsNCgkNCgkJJG9yZGVyX2NvbHMgPSBhcnJheSgpOw0KCQkkY3VzdG9tX2NvbHMgPSBhcnJheSgpOw0KCQkkaW5kZXggPSAwOw0KCQkNCgkJZm9yZWFjaChleHBsb2RlKCcsJywgJHBhcmFtKSBhcyAkY29sKSB7DQoJCQ0KCQkJJGNvbCA9IHRyaW0oJGNvbCk7DQoJCQkkY29sX3BhcnRzID0gZXhwbG9kZSgnfCcsICRjb2wpOw0KCQ0KCQkJLy8gY29sdW1uIG5hbWUNCgkJCSRjb2xfbmFtZSA9ICRjb2xfcGFydHNbMF07DQoJCQkkY29sX29yZGVyID0gJ0FTQyc7DQoJDQoJCQkvLyBvcmRlciBjb2x1bW4gYXNjZW5kaW5nIG9yIGRlc2NlbmRpbmcNCgkJCWlmKGlzc2V0KCRjb2xfcGFydHNbMV0pKSB7DQoJCQkJDQoJCQkJJGNvbF9vcmRlciA9IChpbl9hcnJheSgkY29sX3BhcnRzWzFdLCBhcnJheSgnQVNDJywgJ0RFU0MnKSkgPyAkY29sX3BhcnRzWzFdIDogJ0FTQycpOw0KCQkJfQ0KCQ0KCQkJJGNvbF9vcmRlciA9IChpbl9hcnJheSgkY29sX29yZGVyLCBhcnJheSgnQVNDJywgJ0RFU0MnKSkgPyAkY29sX29yZGVyIDogJ0FTQycpOw0KCQ0KCQkJaWYoaXNzZXQoJHZhbGlkX2NvbHNbJGNvbF9uYW1lXSkpIHsNCgkJCQ0KCQkJCSRvcmRlcl9jb2xzWyRpbmRleF0gPSAkdmFsaWRfY29sc1skY29sX25hbWVdIC4gJyAnIC4gJGNvbF9vcmRlcjsNCgkJCX0gDQoJCQllbHNlaWYgKHN0YXJ0c3dpdGgoJGNvbF9uYW1lLCAnY3VzdG9tXycpKSB7DQoJCQkJDQoJCQkJJGN1c3RvbV9uYW1lID0gc3Vic3RyKCRjb2xfbmFtZSwgNyk7DQoJCQkJJG9iaiA9IG5ldyBzdGRDbGFzczsNCgkJCQkkb2JqLT5uYW1lID0gJGN1c3RvbV9uYW1lOw0KCQkJCSRvYmotPm9yZGVyID0gJGNvbF9vcmRlcjsNCgkJCQkNCgkJCQkkY3VzdG9tX2NvbHNbJGluZGV4XSA9ICRvYmo7DQoJCQl9DQoJCQkNCgkJCSRpbmRleCsrOw0KCQl9DQoJCQkNCgkJcmV0dXJuIGFycmF5KCRvcmRlcl9jb2xzLCAkY3VzdG9tX2NvbHMpOw0KCX0JCQ0KCQ0KfSAvLyBlbmQgb2YgY2xhc3MNCg0KPz4=]]></data>
	</file>
	<file>
	  <filename>/lib/class.LISECache.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBMSVNFIC0gTGlzdCBJdCBTcGVjaWFsIEVkaXRpb24KIyBWZXJzaW9uIDEuMgojIEEgZm9yayBvZiBMaXN0STIKIyBtYWludGFpbmVkIGJ5IEZlcm5hbmRvIE1vcmdhZG8gQUtBIEpvIE1vcmcKIyBzaW5jZSAyMDE1CiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBPcmlnaW5hbCBBdXRob3I6IEJlbiBNYWxlbiwgPGJlbkBjb25jZXB0ZmFjdG9yeS5jb20uYXU+CiMgQ28tTWFpbnRhaW5lcjogU2ltb24gUmFkZm9yZCwgPHNpbW9uQGNvbmNlcHRmYWN0b3J5LmNvbS5hdT4KIyBXZWI6IHd3dy5jb25jZXB0ZmFjdG9yeS5jb20uYXUKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojCiMgTWFpbnRhaW5lciBzaW5jZSAyMDExIHVwIHRvIDIwMTQ6IEpvbmF0aGFuIFNjaG1pZCwgPGhpQGpvbmF0aGFuc2NobWlkLmRlPgojIFdlYjogd3d3LmpvbmF0aGFuc2NobWlkLmRlCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIwojIFNvbWUgd2Fja29zIHN0YXJ0ZWQgZGVzdHJveWluZyBzdHVmZiBzaW5jZSAyMDEyIGFuZCBzdG9wcGVkIGF0IDIwMTQ6CiMKIyBUYXBpbyBMw7Z5dHR5LCA8dGFwc2FAb3JhbmdlLW1lZGlhLmZpPgojIFdlYjogd3d3Lm9yYW5nZS1tZWRpYS5maQojCiMgR29yYW4gSWxpYywgPHVuaXF1M2VAZ21haWwuY29tPgojIFdlYjogd3d3LmljaC1tYWNoLWRhcy5hdAojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBMSVNFIGlzIGEgQ01TIE1hZGUgU2ltcGxlIG1vZHVsZSB0aGF0IGVuYWJsZXMgdGhlIHdlYiBkZXZlbG9wZXIgdG8gY3JlYXRlCiMgbXVsdGlwbGUgbGlzdHMgdGhyb3VnaG91dCBhIHNpdGUuIEl0IGNhbiBiZSBkdXBsaWNhdGVkIGFuZCBnaXZlbiBmcmllbmRseQojIG5hbWVzIGZvciBlYXNpZXIgY2xpZW50IG1haW50ZW5hbmNlLgojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgQkVHSU5fTElDRU5TRQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIExJU0UKIyBMSVNFIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgTElTRSBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBFTkRfTElDRU5TRQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpjbGFzcyBMSVNFQ2FjaGUgZXh0ZW5kcyBBcnJheU9iamVjdAp7CiAgIy0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICMgVmFyaWFibGVzCiAgIy0tLS0tLS0tLS0tLS0tLS0tLS0tLQogIAogIHByaXZhdGUgJF9pZGVudGlmaWVyczsKICAKICAjLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgIyBNYWdpYyBtZXRob2RzCiAgIy0tLS0tLS0tLS0tLS0tLS0tLS0tLQogIAogIHB1YmxpYyBmdW5jdGlvbiBfX2NvbnN0cnVjdCgkaWRlbnRpZmllcnMpCiAgewogICAgJHRoaXMtPl9pZGVudGlmaWVycyA9ICRpZGVudGlmaWVyczsKICB9CiAgCiAgcHVibGljIGZ1bmN0aW9uIF9fdG9TdHJpbmcoKQogIHsKICAgIHJldHVybiAiQXJyYXkiOwogIH0KICAKICAjLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgIyBBcnJheSBPYmplY3QgbWV0aG9kcwogICMtLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAKICBwdWJsaWMgZnVuY3Rpb24gb2Zmc2V0U2V0KCRrZXksICR2YWx1ZSkgOiB2b2lkCiAgewogICAgaWYoIWlzX29iamVjdCgkdmFsdWUpKQogICAgewogICAgICB0aHJvdyBuZXcgXExJU0VcRXhjZXB0aW9uKF9fTUVUSE9EX18gLiAiOiBWYWx1ZSB0eXBlIG11c3QgYmUgb2JqZWN0ISIpOwogICAgfQogICAgCiAgICAka2V5ID0gcmVzZXQoJHRoaXMtPl9pZGVudGlmaWVycyk7CiAgICAKICAgIHBhcmVudDo6b2Zmc2V0U2V0KCR2YWx1ZS0+JGtleSwgJHZhbHVlKTsKICB9CiAgCiAgcHVibGljIGZ1bmN0aW9uIG9mZnNldEV4aXN0cygkb2Zmc2V0KSA6IGJvb2wKICB7CiAgICBpZihwYXJlbnQ6Om9mZnNldEV4aXN0cygkb2Zmc2V0KSkKICAgIHsKICAgICAgcmV0dXJuIFRSVUU7CiAgICB9CiAgICAKICAgIHJldHVybiBGQUxTRTsKICB9CiAgCiAgI1tcUmV0dXJuVHlwZVdpbGxDaGFuZ2VdCiAgcHVibGljIGZ1bmN0aW9uIG9mZnNldEdldCgkb2Zmc2V0KQogIHsKICAgIGlmKHBhcmVudDo6b2Zmc2V0RXhpc3RzKCRvZmZzZXQpKQogICAgewogICAgICByZXR1cm4gcGFyZW50OjpvZmZzZXRHZXQoJG9mZnNldCk7CiAgICB9CiAgICAKICAgIHJldHVybiBOVUxMOwogIH0KICAKICAjLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgIyBDbGFzcyBtZXRob2RzCiAgIy0tLS0tLS0tLS0tLS0tLS0tLS0tLQogIAogIHB1YmxpYyBmdW5jdGlvbiBHZXRDYWNoZWRCeUlkZW50aWZpZXIoJGlkZW50aWZpZXIsICR2YWx1ZSkKICB7CiAgICBpZighaW5fYXJyYXkoJGlkZW50aWZpZXIsICR0aGlzLT5faWRlbnRpZmllcnMsIEZBTFNFKSkKICAgIHsKICAgICAgdGhyb3cgbmV3IFxMSVNFXEV4Y2VwdGlvbihfX01FVEhPRF9fIC4gIjogSWxsZWdhbCBpZGVudGlmaWVyOiAkaWRlbnRpZmllciEiKTsKICAgIH0KICAgIAogICAgZm9yZWFjaCgkdGhpcyBhcyAkY2FjaGVkKQogICAgewogICAgICAKICAgICAgaWYoJGNhY2hlZC0+JGlkZW50aWZpZXIgPT0gJHZhbHVlKQogICAgICB7CiAgICAgICAgCiAgICAgICAgcmV0dXJuICRjYWNoZWQ7CiAgICAgIH0KICAgIH0KICAgIAogICAgcmV0dXJuIE5VTEw7CiAgfQogIAp9IC8vIGVuZCBvZiBjbGFzcwoKPz4=]]></data>
	</file>
	<file>
	  <filename>/lib/class.LISECategory.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBMSVNFIC0gTGlzdCBJdCBTcGVjaWFsIEVkaXRpb24KIyBWZXJzaW9uIDEuMgojIEEgZm9yayBvZiBMaXN0STIKIyBtYWludGFpbmVkIGJ5IEZlcm5hbmRvIE1vcmdhZG8gQUtBIEpvIE1vcmcKIyBzaW5jZSAyMDE1CiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBPcmlnaW5hbCBBdXRob3I6IEJlbiBNYWxlbiwgPGJlbkBjb25jZXB0ZmFjdG9yeS5jb20uYXU+CiMgQ28tTWFpbnRhaW5lcjogU2ltb24gUmFkZm9yZCwgPHNpbW9uQGNvbmNlcHRmYWN0b3J5LmNvbS5hdT4KIyBXZWI6IHd3dy5jb25jZXB0ZmFjdG9yeS5jb20uYXUKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojCiMgTWFpbnRhaW5lciBzaW5jZSAyMDExIHVwIHRvIDIwMTQ6IEpvbmF0aGFuIFNjaG1pZCwgPGhpQGpvbmF0aGFuc2NobWlkLmRlPgojIFdlYjogd3d3LmpvbmF0aGFuc2NobWlkLmRlCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIwojIFNvbWUgd2Fja29zIHN0YXJ0ZWQgZGVzdHJveWluZyBzdHVmZiBzaW5jZSAyMDEyIGFuZCBzdG9wcGVkIGF0IDIwMTQ6CiMKIyBUYXBpbyBMw7Z5dHR5LCA8dGFwc2FAb3JhbmdlLW1lZGlhLmZpPgojIFdlYjogd3d3Lm9yYW5nZS1tZWRpYS5maQojCiMgR29yYW4gSWxpYywgPHVuaXF1M2VAZ21haWwuY29tPgojIFdlYjogd3d3LmljaC1tYWNoLWRhcy5hdAojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBMSVNFIGlzIGEgQ01TIE1hZGUgU2ltcGxlIG1vZHVsZSB0aGF0IGVuYWJsZXMgdGhlIHdlYiBkZXZlbG9wZXIgdG8gY3JlYXRlCiMgbXVsdGlwbGUgbGlzdHMgdGhyb3VnaG91dCBhIHNpdGUuIEl0IGNhbiBiZSBkdXBsaWNhdGVkIGFuZCBnaXZlbiBmcmllbmRseQojIG5hbWVzIGZvciBlYXNpZXIgY2xpZW50IG1haW50ZW5hbmNlLgojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgQkVHSU5fTElDRU5TRQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIExJU0UKIyBMSVNFIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgTElTRSBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBFTkRfTElDRU5TRQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpjbGFzcyBMSVNFQ2F0ZWdvcnkKewoJIy0tLS0tLS0tLS0tLS0tLS0tLS0tLQoJIyBBdHRyaWJ1dGVzCgkjLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoJcHVibGljICRjYXRlZ29yeV9pZCA9IG51bGw7CglwdWJsaWMgJGFsaWFzID0gbnVsbDsJCglwdWJsaWMgJG5hbWUgPSAnJzsKCXB1YmxpYyAkZGVzY3JpcHRpb24gPSAnJzsKCXB1YmxpYyAkYWN0aXZlID0gMTsKCXB1YmxpYyAkcG9zaXRpb24gPSAxOwoJcHVibGljICRwYXJlbnRfaWQgPSAtMTsKCXB1YmxpYyAkaGllcmFyY2h5ID0gJyc7CglwdWJsaWMgJGlkX2hpZXJhcmNoeSA9ICcnOwoJcHVibGljICRoaWVyYXJjaHlfcGF0aCA9ICcnOwoJcHVibGljICRjcmVhdGVfZGF0ZSA9ICcnOwoJcHVibGljICRtb2RpZmllZF9kYXRlID0gJyc7CgkKCXB1YmxpYyAka2V5MSA9IG51bGw7CglwdWJsaWMgJGtleTIgPSBudWxsOwoJcHVibGljICRrZXkzID0gbnVsbDsKCQoJcHVibGljICRpdGVtczsKCXB1YmxpYyAkY2hpbGRyZW47CglzdGF0aWMgcHVibGljICRtYW5kYXRvcnkgPSBhcnJheSgnbmFtZScpOwoJCgkjLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgkjIE1hZ2ljIG1ldGhvZHMKCSMtLS0tLS0tLS0tLS0tLS0tLS0tLS0JCQoJCglwdWJsaWMgZnVuY3Rpb24gX19jb25zdHJ1Y3QoKSAKCXsKCQkkdGhpcy0+aXRlbXMgPSBhcnJheSgpOwoJCSR0aGlzLT5jaGlsZHJlbiA9IGFycmF5KCk7Cgl9CgkKCXB1YmxpYyBmdW5jdGlvbiBfX3RvU3RyaW5nKCkKCXsKCQlyZXR1cm4gKHN0cmluZykkdGhpcy0+bmFtZTsKCX0KCQp9IC8vIGVuZCBvZiBjbGFzcwo/Pg==]]></data>
	</file>
	<file>
	  <filename>/lib/class.LISECategoryOperations.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHANCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQojIExJU0UgLSBMaXN0IEl0IFNwZWNpYWwgRWRpdGlvbg0KIyBWZXJzaW9uIDEuMg0KIyBBIGZvcmsgb2YgTGlzdEkyDQojIG1haW50YWluZWQgYnkgRmVybmFuZG8gTW9yZ2FkbyBBS0EgSm8gTW9yZw0KIyBzaW5jZSAyMDE1DQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIw0KIyBPcmlnaW5hbCBBdXRob3I6IEJlbiBNYWxlbiwgPGJlbkBjb25jZXB0ZmFjdG9yeS5jb20uYXU+DQojIENvLU1haW50YWluZXI6IFNpbW9uIFJhZGZvcmQsIDxzaW1vbkBjb25jZXB0ZmFjdG9yeS5jb20uYXU+DQojIFdlYjogd3d3LmNvbmNlcHRmYWN0b3J5LmNvbS5hdQ0KIw0KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCiMNCiMgTWFpbnRhaW5lciBzaW5jZSAyMDExIHVwIHRvIDIwMTQ6IEpvbmF0aGFuIFNjaG1pZCwgPGhpQGpvbmF0aGFuc2NobWlkLmRlPg0KIyBXZWI6IHd3dy5qb25hdGhhbnNjaG1pZC5kZQ0KIw0KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCiMNCiMgU29tZSB3YWNrb3Mgc3RhcnRlZCBkZXN0cm95aW5nIHN0dWZmIHNpbmNlIDIwMTIgYW5kIHN0b3BwZWQgYXQgMjAxNDoNCiMNCiMgVGFwaW8gTMO2eXR0eSwgPHRhcHNhQG9yYW5nZS1tZWRpYS5maT4NCiMgV2ViOiB3d3cub3JhbmdlLW1lZGlhLmZpDQojDQojIEdvcmFuIElsaWMsIDx1bmlxdTNlQGdtYWlsLmNvbT4NCiMgV2ViOiB3d3cuaWNoLW1hY2gtZGFzLmF0DQojDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIw0KIyBMSVNFIGlzIGEgQ01TIE1hZGUgU2ltcGxlIG1vZHVsZSB0aGF0IGVuYWJsZXMgdGhlIHdlYiBkZXZlbG9wZXIgdG8gY3JlYXRlDQojIG11bHRpcGxlIGxpc3RzIHRocm91Z2hvdXQgYSBzaXRlLiBJdCBjYW4gYmUgZHVwbGljYXRlZCBhbmQgZ2l2ZW4gZnJpZW5kbHkNCiMgbmFtZXMgZm9yIGVhc2llciBjbGllbnQgbWFpbnRlbmFuY2UuDQojDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIyBCRUdJTl9MSUNFTlNFDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIyBUaGlzIGZpbGUgaXMgcGFydCBvZiBMSVNFDQojIExJU0UgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5DQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5DQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yDQojIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uDQojDQojIExJU0UgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLA0KIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZg0KIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlDQojIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuDQojIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlDQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlDQojIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcgVVNBDQojIE9yIHJlYWQgaXQgb25saW5lOiBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwNCiMNCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQojIEVORF9MSUNFTlNFDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KY2xhc3MgTElTRUNhdGVnb3J5T3BlcmF0aW9ucw0Kew0KCSMtLS0tLS0tLS0tLS0tLS0tLS0tLS0NCgkjIFZhcmlhYmxlcw0KCSMtLS0tLS0tLS0tLS0tLS0tLS0tLS0NCiAgDQogIHByaXZhdGUgc3RhdGljICRfcHJlcF9xID0gW107DQoNCglwdWJsaWMgc3RhdGljICRpZGVudGlmaWVycyA9IGFycmF5KA0KCQknY2F0ZWdvcnlfaWQnIAkJPT4gJ2NhdGVnb3J5X2lkJywgDQoJCSdjYXRlZ29yeV9hbGlhcycgCT0+ICdhbGlhcycsIA0KCQknaGllcmFyY2h5JyAJCT0+ICdoaWVyYXJjaHknLCANCgkJJ2lkX2hpZXJhcmNoeScgCQk9PiAnaWRfaGllcmFyY2h5JywgDQoJCSdoaWVyYXJjaHlfcGF0aCcgCT0+ICdoaWVyYXJjaHlfcGF0aCcsIA0KCQkna2V5MScgCQkJCT0+ICdrZXkxJywgDQoJCSdrZXkyJyAJCQkJPT4gJ2tleTInLCANCgkJJ2tleTMnIAkJCQk9PiAna2V5MycNCgkpOw0KICANCiAgDQogIC8qKg0KICAgKiBQcml2YXRlIG1ldGhvZHMNCiAgICovDQoNCiAgcHJpdmF0ZSBzdGF0aWMgZnVuY3Rpb24gX3ByZXBhcmVfc3QoJHNpZCwgJHF1ZXJ5KQ0KICB7DQogICAgaWYoICFpc3NldChzZWxmOjokX3ByZXBfcVskc2lkXSkgKQ0KICAgIHsNCiAgICAgIHNlbGY6OiRfcHJlcF9xWyRzaWRdID0gY21zbXMoKS0+R2V0RGIoKS0+UHJlcGFyZSgkcXVlcnkpOw0KICAgIH0NCiAgDQogICAgcmV0dXJuIHNlbGY6OiRfcHJlcF9xWyRzaWRdOw0KICB9DQogIA0KCSMtLS0tLS0tLS0tLS0tLS0tLS0tLS0NCgkjIE1hZ2ljIG1ldGhvZHMNCgkjLS0tLS0tLS0tLS0tLS0tLS0tLS0tCQkNCgkNCglwcml2YXRlIGZ1bmN0aW9uIF9fY29uc3RydWN0KCkge30NCgkNCgkjLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQoJIyBEYXRhYmFzZSBtZXRob2RzDQoJIy0tLS0tLS0tLS0tLS0tLS0tLS0tLQkNCgkNCglzdGF0aWMgZmluYWwgcHVibGljIGZ1bmN0aW9uIFNhdmUoTElTRSAmJG1vZCwgTElTRUNhdGVnb3J5ICYkb2JqKQ0KCXsNCgkJLy8gQ2hlY2sgYWdhaW5zdCBtYW5kYXRvcnkgbGlzdA0KCQlmb3JlYWNoKExJU0VDYXRlZ29yeTo6JG1hbmRhdG9yeSBhcyAkcnVsZSkNCgkJew0KCQkgIGlmKCRvYmotPiRydWxlID09ICcnKSB7IHJldHVybjsgfQ0KCQl9DQoJCQ0KCQkvLyBFbnN1cmUgdGhhdCB3ZSBoYXZlIGFsaWFzDQoJCWlmKCRvYmotPmFsaWFzID09ICcnKQ0KCQl7DQoJCQkkb2JqLT5hbGlhcyA9IG11bmdlX3N0cmluZ190b191cmwoJG9iai0+bmFtZSwgdHJ1ZSk7DQoJCX0NCgkNCgkJJGRiID0gY21zbXMoKS0+R2V0RGIoKTsNCgkJDQogICAgLy8gR2V0IG5ldyBwb3NpdGlvbg0KICAgICRzaWQgICAgICA9ICdzYXZlX2dldF9tYXhfcG9zaXRpb24nOw0KICAgICRxdWVyeSAgICA9ICdTRUxFQ1QgbWF4KHBvc2l0aW9uKSArIDENCiAgICAgICAgICAgICAgICAgRlJPTSAnIC4gY21zX2RiX3ByZWZpeCgpIC4gJ21vZHVsZV8nIC4gJG1vZC0+X0dldE1vZHVsZUFsaWFzKCkgLiAnX2NhdGVnb3J5DQogICAgICAgICAgICAgICAgIFdIRVJFIHBhcmVudF9pZCA9ID8nOw0KICAgIC8vJHF1ZXJ5ICAgID0gc2VsZjo6X3ByZXBhcmVfc3QoJHNpZCwgJHF1ZXJ5KTsNCiAgICAkcG9zaXRpb24gPSAkZGItPkdldE9uZSgkcXVlcnksIFskb2JqLT5wYXJlbnRfaWRdKTsNCiAgICANCiAgICBpZigkcG9zaXRpb24gPT0gbnVsbCkgeyAkcG9zaXRpb24gPSAxOyB9DQoJDQoJCS8vIFVwZGFkdGUgRXhpc3RpbmcNCgkJaWYoJG9iai0+Y2F0ZWdvcnlfaWQgPiAwKQ0KCQl7DQoJCSAgLy8gR2V0IG9sZCBkYXRhDQogICAgICAkc2lkICAgICAgPSAnc2F2ZV9nZXRfb2xkX2RhdGEnOw0KCQkJJHF1ZXJ5ICAgID0gJ1NFTEVDVA0KICAgICAgICAgICAgICAgICAgICBwYXJlbnRfaWQsDQogICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uDQogICAgICAgICAgICAgICAgICBGUk9NICcgLiBjbXNfZGJfcHJlZml4KCkgLiAnbW9kdWxlXycgLiAkbW9kLT5fR2V0TW9kdWxlQWxpYXMoKSAuICdfY2F0ZWdvcnkNCiAgICAgICAgICAgICAgICAgIFdIRVJFIGNhdGVnb3J5X2lkID0gPyc7DQoJCQkNCiAgICAgIC8vJHF1ZXJ5ICAgID0gc2VsZjo6X3ByZXBhcmVfc3QoJHNpZCwgJHF1ZXJ5KTsNCgkJCSRvbGRfZGF0YSA9ICRkYi0+R2V0Um93KCRxdWVyeSwgYXJyYXkoJG9iai0+Y2F0ZWdvcnlfaWQpKTsJCQ0KCQkNCgkJCWlmKCRvYmotPnBhcmVudF9pZCAhPSAkb2xkX2RhdGFbJ3BhcmVudF9pZCddKQ0KCQkJew0KCQkgICAgLy8gaGF2ZSB0byB1cGRhdGUgcG9zaXRpb24gaW5kZXhlcyBvZiBvbGQgc2libGluZ3MgaWYgY2hhbmdpbmcgcGFyZW50cy4NCiAgICAgICAgJHNpZCAgICAgID0gJ3NhdmVfdXBkYXRlX3Bvc2l0aW9uX2lkeCc7DQogICAgICAgICRxdWVyeSAgICA9ICdVUERBVEUgJyAuIGNtc19kYl9wcmVmaXgoKSAuICdtb2R1bGVfJyAuICRtb2QtPl9HZXRNb2R1bGVBbGlhcygpIC4gJ19jYXRlZ29yeQ0KCQkJCQkgICAgICAgICAgIFNFVCBwb3NpdGlvbiA9IHBvc2l0aW9uIC0gMQ0KICAgICAgICAgICAgICAgICAgICAgV0hFUkUgcGFyZW50X2lkID0gPyBBTkQgcG9zaXRpb24gPiA/JzsNCiAgICAgICAgLy8kcXVlcnkgICAgPSBzZWxmOjpfcHJlcGFyZV9zdCgkc2lkLCAkcXVlcnkpOw0KCQkJCQkNCiAgICAgICAgJGRiLT5FeGVjdXRlKCRxdWVyeSwgYXJyYXkoJG9sZF9kYXRhWydwYXJlbnRfaWQnXSwgJG9sZF9kYXRhWydwb3NpdGlvbiddKSk7DQoJCQkgIA0KCQkJfQ0KCQkJZWxzZQ0KICAgICAgew0KCQkJCSRwb3NpdGlvbiA9ICRvbGRfZGF0YVsncG9zaXRpb24nXTsNCgkJCX0NCiAgICAgIA0KICAgICAgJHNpZCAgICAgID0gJ3NhdmVfdXBkYXRlX2NhdGVnb3J5JzsNCgkJCSRxdWVyeSAgICA9ICdVUERBVEUgJyAuIGNtc19kYl9wcmVmaXgoKSAuICdtb2R1bGVfJyAuICRtb2QtPl9HZXRNb2R1bGVBbGlhcygpIC4gJ19jYXRlZ29yeQ0KCQkJCQkgICAgICAgICBTRVQNCgkJCQkJICAgICAgICAgICAgY2F0ZWdvcnlfbmFtZSA9ID8sDQoJCQkJCSAgICAgICAgICAgIGNhdGVnb3J5X2Rlc2NyaXB0aW9uID0gPywNCgkJCQkJICAgICAgICAgICAgY2F0ZWdvcnlfYWxpYXMgPSA/LA0KCQkJCQkgICAgICAgICAgICBwb3NpdGlvbiA9ID8sDQoJCQkJCSAgICAgICAgICAgIHBhcmVudF9pZCA9ID8sDQoJCQkJCSAgICAgICAgICAgIGFjdGl2ZSA9ID8sDQoJCQkJCSAgICAgICAgICAgIG1vZGlmaWVkX2RhdGUgPSBOT1coKSwNCgkJCQkJICAgICAgICAgICAga2V5MSA9ID8sDQoJCQkJCSAgICAgICAgICAgIGtleTIgPSA/LA0KCQkJCQkgICAgICAgICAgICBrZXkzID0gPw0KICAgICAgICAgICAgICAgICAgIFdIRVJFIGNhdGVnb3J5X2lkID0gPyc7DQoJCQkNCiAgICAgIC8vJHF1ZXJ5ICAgID0gc2VsZjo6X3ByZXBhcmVfc3QoJHNpZCwgJHF1ZXJ5KTsNCgkJCSRyZXN1bHQgICA9ICRkYi0+RXhlY3V0ZSgkcXVlcnksIGFycmF5KA0KCQkJCSRvYmotPm5hbWUsIA0KCQkJCSRvYmotPmRlc2NyaXB0aW9uLCANCgkJCQkkb2JqLT5hbGlhcywgIA0KCQkJCSRwb3NpdGlvbiwgDQoJCQkJJG9iai0+cGFyZW50X2lkLA0KCQkJCSRvYmotPmFjdGl2ZSwNCgkJCQkkb2JqLT5rZXkxLA0KCQkJCSRvYmotPmtleTIsDQoJCQkJJG9iai0+a2V5MywJCQkJDQoJCQkJJG9iai0+Y2F0ZWdvcnlfaWQNCgkJCSkpOw0KCQkJDQoJCQlpZighJHJlc3VsdCkNCiAgICAgIHsNCiAgICAgICAgdGhyb3cgbmV3IFxMSVNFXEV4Y2VwdGlvbigkZGItPkVycm9yTm8oKSAuICcgLSAnIC4gJGRiLT5FcnJvck1zZygpIC4gJyAtIFF1ZXJ5OiAnIC4gJGRiLT5zcWwsIFxMSVNFXEVycm9yOjpESVNDUkVURV9EQiApOw0KICAgICAgfQ0KCQl9DQoJCWVsc2UgLy8gQ3JlYXRlIE5ldw0KICAgIHsNCgkJCS8vIGNoZWNrIGFsaWFzIGlzIHVuaXF1ZQ0KICAgICAgJHNpZCAgICAgID0gJ3NhdmVfdW5pcXVlX2FsaWFzJzsNCiAgICAgICRxdWVyeSAgICA9ICdTRUxFQ1QgQ09VTlQoYWxpYXMpIEFTIGFsaWFzDQogICAgICAgICAgICAgICAgICAgRlJPTSAnIC4gY21zX2RiX3ByZWZpeCgpIC4gJ21vZHVsZV8nIC4gJG1vZC0+X0dldE1vZHVsZUFsaWFzKCkgLiAnX2NhdGVnb3J5DQogICAgICAgICAgICAgICAgICAgV0hFUkUgY2F0ZWdvcnlfYWxpYXMgTElLRSAiJyAuICRvYmotPmFsaWFzIC4gJyUiJzsNCiAgICAgIA0KICAgICAgLy8kcXVlcnkgICAgPSBzZWxmOjpfcHJlcGFyZV9zdCgkc2lkLCAkcXVlcnkpOw0KICAgICAgJGRicmVzdWx0ID0gJGRiLT5HZXRPbmUoJHF1ZXJ5KTsNCgkJCQ0KCQkJaWYoJGRicmVzdWx0ID4gMCkgeyAkb2JqLT5hbGlhcyAuPSAnXycuKCRkYnJlc3VsdCsxKTsJfQ0KCQkJDQogICAgICAkc2lkICAgICAgPSAnc2F2ZV9pbnNlcnRfbmV3JzsNCgkJCSRxdWVyeSAgICA9ICdJTlNFUlQgSU5UTyAnIC4gY21zX2RiX3ByZWZpeCgpIC4gJ21vZHVsZV8nIC4gJG1vZC0+X0dldE1vZHVsZUFsaWFzKCkgLiAnX2NhdGVnb3J5DQoJCQkJCSAgICAgICgNCiAgICAgICAgICAgICAgICAgIGNhdGVnb3J5X25hbWUsDQogICAgICAgICAgICAgICAgICBjYXRlZ29yeV9kZXNjcmlwdGlvbiwNCiAgICAgICAgICAgICAgICAgIGNhdGVnb3J5X2FsaWFzLA0KICAgICAgICAgICAgICAgICAgcG9zaXRpb24sDQogICAgICAgICAgICAgICAgICBwYXJlbnRfaWQsDQogICAgICAgICAgICAgICAgICBhY3RpdmUsDQogICAgICAgICAgICAgICAgICBjcmVhdGVfZGF0ZSwNCiAgICAgICAgICAgICAgICAgIG1vZGlmaWVkX2RhdGUsDQogICAgICAgICAgICAgICAgICBrZXkxLA0KICAgICAgICAgICAgICAgICAga2V5MiwNCiAgICAgICAgICAgICAgICAgIGtleTMNCgkJCQkJICAgICAgKQ0KCQkJCQkgICAgICBWQUxVRVMgKD8sID8sID8sID8sID8sID8sIE5PVygpLCBOT1coKSwgPywgPywgPyknOw0KICAgICAgLy8kcXVlcnkgICAgPSBzZWxmOjpfcHJlcGFyZV9zdCgkc2lkLCAkcXVlcnkpOw0KICAgICAgDQoJCQkkcmVzdWx0ICAgPSAkZGItPkV4ZWN1dGUoJHF1ZXJ5LCBhcnJheSgNCiAgICAgICAgICAgICAgICAgICRvYmotPm5hbWUsDQogICAgICAgICAgICAgICAgICAkb2JqLT5kZXNjcmlwdGlvbiwNCiAgICAgICAgICAgICAgICAgICRvYmotPmFsaWFzLA0KICAgICAgICAgICAgICAgICAgJHBvc2l0aW9uLA0KICAgICAgICAgICAgICAgICAgJG9iai0+cGFyZW50X2lkLA0KICAgICAgICAgICAgICAgICAgJG9iai0+YWN0aXZlLA0KICAgICAgICAgICAgICAgICAgJG9iai0+a2V5MSwNCiAgICAgICAgICAgICAgICAgICRvYmotPmtleTIsDQogICAgICAgICAgICAgICAgICAkb2JqLT5rZXkzDQogICAgICAgICAgICAgICAgKSk7DQoJCQkNCgkJCWlmICghJHJlc3VsdCkNCiAgICAgIHsNCiAgICAgICAgdGhyb3cgbmV3IFxMSVNFXEV4Y2VwdGlvbigkZGItPkVycm9yTm8oKSAuICcgLSAnIC4gJGRiLT5FcnJvck1zZygpIC4gJyAtIFF1ZXJ5OiAnIC4gJGRiLT5zcWwsIFxMSVNFXEVycm9yOjpESVNDUkVURV9EQiApOw0KICAgICAgfQ0KDQoJCQkvLyBwb3B1bGF0ZSAkY2F0ZWdvcnlfaWQgZm9yIG5ld2x5IGluc2VydGVkIGNhdGVnb3J5DQoJCQkkb2JqLT5jYXRlZ29yeV9pZCA9ICRkYi0+SW5zZXJ0X0lEKCk7DQoJCX0NCg0KCQkvLyB1cGRhdGUgaGllcmFyY2h5DQoJCXNlbGY6OlVwZGF0ZUhpZXJhcmNoeVBvc2l0aW9ucygkbW9kKTsJCQkJDQoJfQ0KDQoJc3RhdGljIGZpbmFsIHB1YmxpYyBmdW5jdGlvbiBEZWxldGUoTElTRSAmJG1vZCwgTElTRUNhdGVnb3J5ICYkb2JqKQ0KCXsNCgkJJGRiID0gY21zbXMoKS0+R2V0RGIoKTsNCgkJDQoJCWlmICgkb2JqLT5jYXRlZ29yeV9pZCA+IDApDQoJCXsNCgkJCS8vIEdldCBkZXRhaWxzDQogICAgICAkc2lkICAgICAgPSAnZGVsX2dldF9kZXRhaWxzJzsNCgkJCSRxdWVyeSAgICA9ICcNCiAgICAgICAgICAgICAgICAgIFNFTEVDVA0KICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbiwNCiAgICAgICAgICAgICAgICAgICAgcGFyZW50X2lkDQogICAgICAgICAgICAgICAgICBGUk9NICcgLiBjbXNfZGJfcHJlZml4KCkgLiAnbW9kdWxlXycgLiAkbW9kLT5fR2V0TW9kdWxlQWxpYXMoKSAuICdfY2F0ZWdvcnkNCiAgICAgICAgICAgICAgICAgIFdIRVJFIGNhdGVnb3J5X2lkID0gPyc7DQogICAgICAvLyRxdWVyeSAgICA9IHNlbGY6Ol9wcmVwYXJlX3N0KCRzaWQsICRxdWVyeSk7DQoJCQkkcm93ICAgICAgPSAkZGItPkdldFJvdygkcXVlcnksIGFycmF5KCRvYmotPmNhdGVnb3J5X2lkKSk7DQoJCQkNCgkJCS8vIERlbGV0ZSBjYXRlZ29yeQ0KICAgICAgJHNpZCAgICAgID0gJ2RlbF9kb19kZWxfY2F0JzsNCgkJCSRxdWVyeSAgICA9ICdERUxFVEUgRlJPTSAnIC4gY21zX2RiX3ByZWZpeCgpIC4gJ21vZHVsZV8nIC4gJG1vZC0+X0dldE1vZHVsZUFsaWFzKCkgLiAnX2NhdGVnb3J5DQoJCQkgICAgICAgICAgICAgV0hFUkUgY2F0ZWdvcnlfaWQgPSA/JzsNCiAgICAgIC8vJHF1ZXJ5ICAgID0gc2VsZjo6X3ByZXBhcmVfc3QoJHNpZCwgJHF1ZXJ5KTsNCgkJCSRkYi0+RXhlY3V0ZSgkcXVlcnksIGFycmF5KCRvYmotPmNhdGVnb3J5X2lkKSk7DQoJCQkNCgkJCS8vIERlbGV0ZSBmcm9tIGl0ZW1zDQogICAgICAkc2lkICAgICAgPSAnZGVsX2RvX2RlbGZyb21faXRlbXMnOw0KCQkJJHF1ZXJ5ICAgID0gJ0RFTEVURSBGUk9NICcgLiBjbXNfZGJfcHJlZml4KCkgLiAnbW9kdWxlXycgLiAkbW9kLT5fR2V0TW9kdWxlQWxpYXMoKSAuICdfaXRlbV9jYXRlZ29yaWVzDQoJCQkgICAgICAgICAgICAgV0hFUkUgY2F0ZWdvcnlfaWQgPSA/JzsNCiAgICAgIC8vJHF1ZXJ5ICAgID0gc2VsZjo6X3ByZXBhcmVfc3QoJHNpZCwgJHF1ZXJ5KTsNCgkJCSRkYi0+RXhlY3V0ZSgkcXVlcnksIGFycmF5KCRvYmotPmNhdGVnb3J5X2lkKSk7CQkJDQoJCQkJCQkJCQkNCgkJCS8vIFVwZGF0ZSBwb3NpdGlvbiBmb3Igc2libGluZ3MNCgkJCWlmKCRyb3dbJ3BhcmVudF9pZCddID4gMCkNCgkJCXsNCiAgICAgICAgJHNpZCAgICAgID0gJ2RlbF91cGRhdGVfc2liX3Bvcyc7DQoJCQkJJHF1ZXJ5ICAgID0gJ1VQREFURSAnIC4gY21zX2RiX3ByZWZpeCgpIC4gJ21vZHVsZV8nIC4gJG1vZC0+X0dldE1vZHVsZUFsaWFzKCkgLiAnX2NhdGVnb3J5DQogICAgICAgICAgICAgICAgICAgICBTRVQgcG9zaXRpb24gPSBwb3NpdGlvbiAtIDENCiAgICAgICAgICAgICAgICAgICAgIFdIRVJFIHBhcmVudF9pZCA9ID8gQU5EIHBvc2l0aW9uID4gPyc7DQogICAgICAgIC8vJHF1ZXJ5ICAgID0gc2VsZjo6X3ByZXBhcmVfc3QoJHNpZCwgJHF1ZXJ5KTsNCgkJCQkkZGItPkV4ZWN1dGUoJHF1ZXJ5LCBhcnJheSgkcm93WydwYXJlbnRfaWQnXSwgJHJvd1sncG9zaXRpb24nXSkpOwkJCQkNCgkJCX0NCgkJCWVsc2UNCiAgICAgIHsNCiAgICAgICAgJHNpZCAgICAgID0gJ2RlbF91cGRhdGVfY2F0X3Bvcyc7DQoJCQkJJHF1ZXJ5ICAgID0gJ1VQREFURSAnIC4gY21zX2RiX3ByZWZpeCgpIC4gJ21vZHVsZV8nIC4gJG1vZC0+X0dldE1vZHVsZUFsaWFzKCkgLiAnX2NhdGVnb3J5DQoJCQkJICAgICAgICAgICAgIFNFVCBwb3NpdGlvbiA9IHBvc2l0aW9uICsgMQ0KCQkJCSAgICAgICAgICAgICBXSEVSRSBwYXJlbnRfaWQgPSA/JzsNCiAgICAgICAgLy8kcXVlcnkgICAgPSBzZWxmOjpfcHJlcGFyZV9zdCgkc2lkLCAkcXVlcnkpOw0KCQkJCSRkYi0+RXhlY3V0ZSgkcXVlcnksIGFycmF5KCRvYmotPmNhdGVnb3J5X2lkKSk7CQkJDQoJCQl9DQoJCQkNCgkJCS8vIFVwZGF0ZSBwYXJlbnQgZm9yIGNoaWxkcmVuDQogICAgICAkc2lkICAgICAgPSAnZGVsX3VwZGF0ZV9jaGxkX3Bvcyc7DQoJCQkkcXVlcnkgICAgPSAnVVBEQVRFICcgLiBjbXNfZGJfcHJlZml4KCkgLiAnbW9kdWxlXycgLiAkbW9kLT5fR2V0TW9kdWxlQWxpYXMoKSAuICdfY2F0ZWdvcnkNCgkJCSAgICAgICAgICAgICBTRVQgcGFyZW50X2lkID0gPw0KCQkJICAgICAgICAgICAgIFdIRVJFIHBhcmVudF9pZCA9ID8nOw0KICAgICAgLy8kcXVlcnkgICAgPSBzZWxmOjpfcHJlcGFyZV9zdCgkc2lkLCAkcXVlcnkpOw0KCQkJJGRiLT5FeGVjdXRlKCRxdWVyeSwgYXJyYXkoJHJvd1sncGFyZW50X2lkJ10sICRvYmotPmNhdGVnb3J5X2lkKSk7CQkJDQoJCQkNCgkJCXNlbGY6OlVwZGF0ZUhpZXJhcmNoeVBvc2l0aW9ucygkbW9kKTsNCgkJCQ0KCQkJcmV0dXJuIHRydWU7DQoJCX0NCg0KCQlyZXR1cm4gRkFMU0U7DQoJfQ0KDQoJc3RhdGljIGZpbmFsIHB1YmxpYyBmdW5jdGlvbiBMb2FkKExJU0UgJiRtb2QsIExJU0VDYXRlZ29yeSAmJG9iaiwgJHJvdyA9IGZhbHNlKQ0KCXsJDQoJCSRkYiA9IGNtc21zKCktPkdldERiKCk7DQoJDQoJCS8vIElmIHdlIGRvbid0IGhhdmUgcm93IHRoZW4gYXR0ZW1wdCB0byBsb2FkIGl0DQoJCWlmKCEkcm93KQ0KCQl7DQoJCQlmb3JlYWNoKHNlbGY6OiRpZGVudGlmaWVycyBhcyAkZGJfY29sdW1uID0+ICRpZGVudGlmaWVyKQ0KCQkJew0KCQkJCWlmKCAhaXNfbnVsbCgkb2JqLT4kaWRlbnRpZmllcikgKQ0KCQkJCXsNCiAgICAgICAgICAvLyRzaWQgICAgICA9ICdsb2FkX3NlbGVjdF9jYXQnOw0KCQkJCQkkcXVlcnkgICAgPSAiU0VMRUNUICogRlJPTSAiIC4gY21zX2RiX3ByZWZpeCgpIC4gIm1vZHVsZV8iIC4gJG1vZC0+X0dldE1vZHVsZUFsaWFzKCkgLiAiX2NhdGVnb3J5DQoJCQkJCQkJCQkJICAgV0hFUkUgJGRiX2NvbHVtbiA9ID8NCgkJCQkJCQkJCQkgICBMSU1JVCAxIjsNCiAgICAgICAgICAvLyRxdWVyeSAgICA9IHNlbGY6Ol9wcmVwYXJlX3N0KCRzaWQsICRxdWVyeSk7DQoJCQkJCSRyb3cgICAgICA9ICRkYi0+R2V0Um93KCRxdWVyeSwgYXJyYXkoJG9iai0+JGlkZW50aWZpZXIpKTsNCgkJCQkJDQoJCQkJCWlmKCRyb3cpIHsgYnJlYWs7IH0NCgkJCQl9DQoJCQl9DQoJCX0NCgkJDQoJCWlmKCRyb3cpDQoJCXsNCiAgICAgICRvYmotPmNhdGVnb3J5X2lkICAgID0gJHJvd1snY2F0ZWdvcnlfaWQnXTsNCiAgICAgICRvYmotPmFsaWFzICAgICAgICAgID0gJHJvd1snY2F0ZWdvcnlfYWxpYXMnXTsNCiAgICAgICRvYmotPm5hbWUgICAgICAgICAgID0gJHJvd1snY2F0ZWdvcnlfbmFtZSddOw0KICAgICAgJG9iai0+ZGVzY3JpcHRpb24gICAgPSAkcm93WydjYXRlZ29yeV9kZXNjcmlwdGlvbiddOw0KICAgICAgJG9iai0+YWN0aXZlICAgICAgICAgPSAkcm93WydhY3RpdmUnXTsNCiAgICAgICRvYmotPnBvc2l0aW9uICAgICAgID0gJHJvd1sncG9zaXRpb24nXTsNCiAgICAgICRvYmotPnBhcmVudF9pZCAgICAgID0gJHJvd1sncGFyZW50X2lkJ107DQogICAgICAkb2JqLT5oaWVyYXJjaHkgICAgICA9ICRyb3dbJ2hpZXJhcmNoeSddOw0KICAgICAgJG9iai0+aWRfaGllcmFyY2h5ICAgPSAkcm93WydpZF9oaWVyYXJjaHknXTsNCiAgICAgICRvYmotPmhpZXJhcmNoeV9wYXRoID0gJHJvd1snaGllcmFyY2h5X3BhdGgnXTsNCiAgICAgICRvYmotPmNyZWF0ZV9kYXRlICAgID0gJHJvd1snY3JlYXRlX2RhdGUnXTsNCiAgICAgICRvYmotPm1vZGlmaWVkX2RhdGUgID0gJHJvd1snbW9kaWZpZWRfZGF0ZSddOw0KICAgICAgJG9iai0+ZGVwdGggICAgICAgICAgPSBjb3VudChleHBsb2RlKCcuJywgJG9iai0+aGllcmFyY2h5KSk7DQogICAgICAkb2JqLT5rZXkxICAgICAgICAgICA9ICRyb3dbJ2tleTEnXTsNCiAgICAgICRvYmotPmtleTIgICAgICAgICAgID0gJHJvd1sna2V5MiddOw0KICAgICAgJG9iai0+a2V5MyAgICAgICAgICAgPSAkcm93WydrZXkzJ107DQoJCQkNCgkJCS8vIEl0ZW1zDQoJCQkkcXVlcnkgPSAnDQoJCQlTRUxFQ1QNCgkJCSAgQS5pdGVtX2lkDQoJCQlGUk9NICcgLiBjbXNfZGJfcHJlZml4KCkgLiAnbW9kdWxlXycgLiAkbW9kLT5fR2V0TW9kdWxlQWxpYXMoKSAuICdfaXRlbSBBDQogICAgICBMRUZUIEpPSU4gJyAuIGNtc19kYl9wcmVmaXgoKSAuICdtb2R1bGVfJyAuICRtb2QtPl9HZXRNb2R1bGVBbGlhcygpIC4gJ19pdGVtX2NhdGVnb3JpZXMgSUINCiAgICAgIE9OIEEuaXRlbV9pZCA9IElCLml0ZW1faWQNCiAgICAgIFdIRVJFIChJQi5jYXRlZ29yeV9pZCA9ID8NCiAgICAgIEFORCBBLmFjdGl2ZSA9IDEpIE9SREVSIEJZIHBvc2l0aW9uLCBpdGVtX2lkJzsNCg0KCQkJJG9iai0+aXRlbXMgPSAkZGItPkdldENvbCgkcXVlcnksIGFycmF5KCRvYmotPmNhdGVnb3J5X2lkKSk7DQoNCgkJCS8vIENoaWxkcmVuDQoJCQkkcXVlcnkgPSAnDQoJCQlTRUxFQ1QgY2F0ZWdvcnlfaWQgRlJPTSAnIC4gY21zX2RiX3ByZWZpeCgpIC4gJ21vZHVsZV8nIC4gJG1vZC0+X0dldE1vZHVsZUFsaWFzKCkgLiAnX2NhdGVnb3J5DQoJCQlXSEVSRSBwYXJlbnRfaWQgPSA/IEFORCBhY3RpdmUgPSAxJzsNCgkJCSRvYmotPmNoaWxkcmVuID0gJGRiLT5HZXRDb2woJHF1ZXJ5LCBhcnJheSgkb2JqLT5jYXRlZ29yeV9pZCkpOwkJCQ0KCQkNCgkJCXJldHVybiBUUlVFOw0KCQl9DQoNCgkJcmV0dXJuIEZBTFNFOw0KCX0JDQoJDQoJIy0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KCSMgVXRpbGl0eSBtZXRob2RzDQoJIy0tLS0tLS0tLS0tLS0tLS0tLS0tLQkNCg0KCXN0YXRpYyBmaW5hbCBwdWJsaWMgZnVuY3Rpb24gR2V0SGllcmFyY2h5TGlzdChMSVNFICYkbW9kLCAkbnVsbCA9IHRydWUsICRleGNsdWRlcyA9IG51bGwpDQoJew0KCQlpZighaXNfbnVsbCgkZXhjbHVkZXMpICYmICFpc19hcnJheSgkZXhjbHVkZXMpKSB7DQoJCQ0KCQkJJGV4Y2x1ZGVzID0gYXJyYXkoJGV4Y2x1ZGVzKTsNCgkJfQ0KCQkNCgkJaWYoaXNfbnVsbCgkZXhjbHVkZXMpKSAkZXhjbHVkZXMgPSBhcnJheSgpOw0KDQoJCSRkYiA9IGNtc21zKCktPkdldERiKCk7DQoJCSRjb250ZW50b3BzID0gY21zbXMoKS0+R2V0Q29udGVudE9wZXJhdGlvbnMoKTsNCgkJDQoJCSRxdWVyeSA9ICdTRUxFQ1QgaGllcmFyY2h5LCBjYXRlZ29yeV9pZCwgY2F0ZWdvcnlfbmFtZSBGUk9NICcgLiBjbXNfZGJfcHJlZml4KCkgLiAnbW9kdWxlXycgLiAkbW9kLT5fR2V0TW9kdWxlQWxpYXMoKSAuICdfY2F0ZWdvcnkgT1JERVIgQlkgaGllcmFyY2h5IEFTQyc7DQoJCSRkYnJlc3VsdCA9ICRkYi0+RXhlY3V0ZSgkcXVlcnkpOw0KCQkNCgkJJG9wdGlvbnMgPSAkbnVsbCA/IGFycmF5KCctLS0gJy5sYW5nKCdub25lJykuJyAtLS0nID0+ICctMScpIDogYXJyYXkoKTsNCg0KCQl3aGlsZSgkZGJyZXN1bHQgJiYgJHJvdyA9ICRkYnJlc3VsdC0+RmV0Y2hSb3coKSl7DQoJCQ0KCQkJaWYoaW5fYXJyYXkoJHJvd1snY2F0ZWdvcnlfaWQnXSwgJGV4Y2x1ZGVzKSkgDQoJCQkJY29udGludWU7DQoJCQkJDQoJCQkkcG9zaXRpb24gPSAkY29udGVudG9wcy0+Q3JlYXRlRnJpZW5kbHlIaWVyYXJjaHlQb3NpdGlvbigkcm93WydoaWVyYXJjaHknXSk7DQoJCQkkb3B0aW9uc1skcG9zaXRpb24gLiAnLiAtICcgLiAkcm93WydjYXRlZ29yeV9uYW1lJ11dID0gJHJvd1snY2F0ZWdvcnlfaWQnXTsNCgkJfQ0KCQkNCgkJcmV0dXJuICRvcHRpb25zOw0KCX0NCgkNCgkvLyBObyBpbiB1c2UNCglzdGF0aWMgZmluYWwgcHVibGljIGZ1bmN0aW9uIEdldENoaWxkcmVuc0ZvckNhdGVnb3J5KExJU0UgJiRtb2QsICRpZCkNCgl7DQoJCSRkYiA9IGNtc21zKCktPkdldERiKCk7DQoJDQoJCSRxdWVyeSA9ICdTRUxFQ1QgY2F0ZWdvcnlfaWQgRlJPTSAnIC4gY21zX2RiX3ByZWZpeCgpIC4gJ21vZHVsZV8nIC4gJG1vZC0+X0dldE1vZHVsZUFsaWFzKCkgLiAnX2NhdGVnb3J5IFdIRVJFIHBhcmVudF9pZCA9ID8nOw0KCQkkY2F0ZWdvcmllcyA9ICRkYi0+R2V0Q29sKCRxdWVyeSwgYXJyYXkoJGlkKSk7DQoNCgkJJHJlc3VsdCA9IGFycmF5KCk7DQoJCWZvcmVhY2goJGNhdGVnb3JpZXMgYXMgJG9uZV9pZCkgew0KCQkNCgkJCSRyZXN1bHRbXSA9ICRtb2QtPkxvYWRDYXRlZ29yeUJ5SWRlbnRpZmllcignY2F0ZWdvcnlfaWQnLCAkb25lX2lkKTsNCgkJfQ0KCQ0KCQlyZXR1cm4gJHJlc3VsdDsNCgl9DQoJDQoJc3RhdGljIGZpbmFsIHB1YmxpYyBmdW5jdGlvbiBHZXRDYXRlZ29yeU5hbWVGcm9tSWQoTElTRSAmJG1vZCwgJGlkX2FycmF5KQ0KCXsNCgkJJGRiID0gY21zbXMoKS0+R2V0RGIoKTsNCgkNCgkJJHF1ZXJ5ID0gJ1NFTEVDVCBjYXRlZ29yeV9uYW1lIEZST00gJyAuIGNtc19kYl9wcmVmaXgoKSAuICdtb2R1bGVfJyAuICRtb2QtPl9HZXRNb2R1bGVBbGlhcygpIC4gJ19jYXRlZ29yeSc7DQoJCSRxcGFybXMgPSBhcnJheSgpOw0KCQkkY2xhdXNlID0gYXJyYXkoKTsNCgkJJHJlc3VsdCA9IGFycmF5KCk7DQoJCQ0KCQlmb3JlYWNoKChhcnJheSkkaWRfYXJyYXkgYXMgJG9uZV9pZCkgew0KCQkJJGNsYXVzZVtdID0gJ2NhdGVnb3J5X2lkID0gPyc7DQoJCQkkcXBhcm1zW10gPSAkb25lX2lkOw0KCQl9DQoJCQ0KCQkkcXVlcnkgLj0gJyBXSEVSRSAnIC4gaW1wbG9kZSgnIE9SICcsICRjbGF1c2UpOw0KCQkkZGJyID0gJGRiLT5FeGVjdXRlKCRxdWVyeSwgJHFwYXJtcyk7DQoJCQ0KCQl3aGlsZSgkZGJyICYmICEkZGJyLT5FT0YpIHsNCgkJCQ0KCQkJJHJlc3VsdFtdID0gJGRici0+ZmllbGRzWydjYXRlZ29yeV9uYW1lJ107DQoJCQkkZGJyLT5Nb3ZlTmV4dCgpOw0KCQl9DQoJCQ0KCQlpZigkZGJyKSANCgkJCSRkYnItPkNsb3NlKCk7CQ0KCQkNCgkJcmV0dXJuICRyZXN1bHQ7DQoJfQ0KCQ0KCXN0YXRpYyBmaW5hbCBwdWJsaWMgZnVuY3Rpb24gVXBkYXRlSGllcmFyY2h5UG9zaXRpb24oTElTRSAmJG1vZCwgJGlkKQ0KCXsNCgkJJGRiID0gY21zbXMoKS0+R2V0RGIoKTsNCg0KCQkkY3VycmVudF9oaWVyYXJjaHlfcG9zaXRpb24gPSAnJzsNCgkJJGN1cnJlbnRfaWRfaGllcmFyY2h5X3Bvc2l0aW9uID0gJyc7DQoJCSRjdXJyZW50X2hpZXJhcmNoeV9wYXRoID0gJyc7DQoJCSRjdXJyZW50X3BhcmVudF9pZCA9ICRpZDsNCg0KCQl3aGlsZSAoJGN1cnJlbnRfcGFyZW50X2lkID4gLTEpDQoJCXsNCgkJCSRxdWVyeSA9ICdTRUxFQ1QgcG9zaXRpb24sIHBhcmVudF9pZCwgY2F0ZWdvcnlfYWxpYXMgRlJPTSAnIC4gY21zX2RiX3ByZWZpeCgpIC4gJ21vZHVsZV8nIC4gJG1vZC0+X0dldE1vZHVsZUFsaWFzKCkgLiAnX2NhdGVnb3J5IFdIRVJFIGNhdGVnb3J5X2lkID0gPyc7DQoJCQkkcm93ID0gJGRiLT5HZXRSb3coJHF1ZXJ5LCBhcnJheSgkY3VycmVudF9wYXJlbnRfaWQpKTsNCgkJCWlmICgkcm93KSB7DQoJCQkNCgkJCQkkY3VycmVudF9oaWVyYXJjaHlfcG9zaXRpb24gPSBzdHJfcGFkKCRyb3dbJ3Bvc2l0aW9uJ10sIDUsICcwJywgU1RSX1BBRF9MRUZUKSAuICcuJyAuICRjdXJyZW50X2hpZXJhcmNoeV9wb3NpdGlvbjsNCgkJCQkkY3VycmVudF9pZF9oaWVyYXJjaHlfcG9zaXRpb24gPSAkY3VycmVudF9wYXJlbnRfaWQgLiAnLicgLiAkY3VycmVudF9pZF9oaWVyYXJjaHlfcG9zaXRpb247DQoJCQkJJGN1cnJlbnRfaGllcmFyY2h5X3BhdGggPSAkcm93WydjYXRlZ29yeV9hbGlhcyddIC4gJy8nIC4gJGN1cnJlbnRfaGllcmFyY2h5X3BhdGg7DQoJCQkJJGN1cnJlbnRfcGFyZW50X2lkID0gJHJvd1sncGFyZW50X2lkJ107DQoJCQl9DQoJCQllbHNlIHsNCgkJCQ0KCQkJCSRjdXJyZW50X3BhcmVudF9pZCA9IC0xOw0KCQkJfQ0KCQl9DQoNCgkJaWYgKHN0cmxlbigkY3VycmVudF9oaWVyYXJjaHlfcG9zaXRpb24pID4gMCkgew0KCQkNCgkJCSRjdXJyZW50X2hpZXJhcmNoeV9wb3NpdGlvbiA9IHN1YnN0cigkY3VycmVudF9oaWVyYXJjaHlfcG9zaXRpb24sIDAsIHN0cmxlbigkY3VycmVudF9oaWVyYXJjaHlfcG9zaXRpb24pIC0gMSk7DQoJCX0NCgkJDQoJCWlmIChzdHJsZW4oJGN1cnJlbnRfaWRfaGllcmFyY2h5X3Bvc2l0aW9uKSA+IDApIHsNCgkJDQoJCQkkY3VycmVudF9pZF9oaWVyYXJjaHlfcG9zaXRpb24gPSBzdWJzdHIoJGN1cnJlbnRfaWRfaGllcmFyY2h5X3Bvc2l0aW9uLCAwLCBzdHJsZW4oJGN1cnJlbnRfaWRfaGllcmFyY2h5X3Bvc2l0aW9uKSAtIDEpOw0KCQl9DQoJCQ0KCQlpZiAoc3RybGVuKCRjdXJyZW50X2hpZXJhcmNoeV9wYXRoKSA+IDApIHsNCgkJDQoJCQkkY3VycmVudF9oaWVyYXJjaHlfcGF0aCA9IHN1YnN0cigkY3VycmVudF9oaWVyYXJjaHlfcGF0aCwgMCwgc3RybGVuKCRjdXJyZW50X2hpZXJhcmNoeV9wYXRoKSAtIDEpOw0KCQl9DQoNCgkJJHF1ZXJ5ID0gJ1VQREFURSAnIC4gY21zX2RiX3ByZWZpeCgpIC4gJ21vZHVsZV8nIC4gJG1vZC0+X0dldE1vZHVsZUFsaWFzKCkgLiAnX2NhdGVnb3J5IFNFVCBoaWVyYXJjaHkgPSA/LCBpZF9oaWVyYXJjaHkgPSA/LCBoaWVyYXJjaHlfcGF0aCA9ID8gV0hFUkUgY2F0ZWdvcnlfaWQgPSA/JzsNCgkJJGRiLT5FeGVjdXRlKCRxdWVyeSwgYXJyYXkoJGN1cnJlbnRfaGllcmFyY2h5X3Bvc2l0aW9uLCAkY3VycmVudF9pZF9oaWVyYXJjaHlfcG9zaXRpb24sICRjdXJyZW50X2hpZXJhcmNoeV9wYXRoLCAkaWQpKTsNCgl9DQoNCglzdGF0aWMgZmluYWwgcHVibGljIGZ1bmN0aW9uIFVwZGF0ZUhpZXJhcmNoeVBvc2l0aW9ucyhMSVNFICYkbW9kKQ0KCXsNCgkJJGRiID0gY21zbXMoKS0+R2V0RGIoKTsNCg0KCQkkcXVlcnkgPSAnU0VMRUNUIGNhdGVnb3J5X2lkIEZST00gJyAuIGNtc19kYl9wcmVmaXgoKSAuICdtb2R1bGVfJyAuICRtb2QtPl9HZXRNb2R1bGVBbGlhcygpIC4gJ19jYXRlZ29yeSc7DQoJCSRkYnIgPSAkZGItPkV4ZWN1dGUoJHF1ZXJ5KTsNCg0KCQl3aGlsZSAoJGRiciAmJiAhJGRici0+RU9GKSB7DQoJCQ0KCQkJc2VsZjo6VXBkYXRlSGllcmFyY2h5UG9zaXRpb24oJG1vZCwgJGRici0+ZmllbGRzWydjYXRlZ29yeV9pZCddKTsNCgkJCSRkYnItPk1vdmVOZXh0KCk7DQoJCX0NCgkJDQoJCWlmKCRkYnIpIA0KCQkJJGRici0+Q2xvc2UoKTsNCgl9CQ0KCQ0KfSAvLyBlbmQgb2YgY2xhc3MNCg0KPz4=]]></data>
	</file>
	<file>
	  <filename>/lib/class.LISECategoryQuery.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHANCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQojIExJU0UgLSBMaXN0IEl0IFNwZWNpYWwgRWRpdGlvbg0KIyBWZXJzaW9uIDEuMg0KIyBBIGZvcmsgb2YgTGlzdEkyDQojIG1haW50YWluZWQgYnkgRmVybmFuZG8gTW9yZ2FkbyBBS0EgSm8gTW9yZw0KIyBzaW5jZSAyMDE1DQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIw0KIyBPcmlnaW5hbCBBdXRob3I6IEJlbiBNYWxlbiwgPGJlbkBjb25jZXB0ZmFjdG9yeS5jb20uYXU+DQojIENvLU1haW50YWluZXI6IFNpbW9uIFJhZGZvcmQsIDxzaW1vbkBjb25jZXB0ZmFjdG9yeS5jb20uYXU+DQojIFdlYjogd3d3LmNvbmNlcHRmYWN0b3J5LmNvbS5hdQ0KIw0KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCiMNCiMgTWFpbnRhaW5lciBzaW5jZSAyMDExIHVwIHRvIDIwMTQ6IEpvbmF0aGFuIFNjaG1pZCwgPGhpQGpvbmF0aGFuc2NobWlkLmRlPg0KIyBXZWI6IHd3dy5qb25hdGhhbnNjaG1pZC5kZQ0KIw0KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCiMNCiMgU29tZSB3YWNrb3Mgc3RhcnRlZCBkZXN0cm95aW5nIHN0dWZmIHNpbmNlIDIwMTIgYW5kIHN0b3BwZWQgYXQgMjAxNDoNCiMNCiMgVGFwaW8gTMO2eXR0eSwgPHRhcHNhQG9yYW5nZS1tZWRpYS5maT4NCiMgV2ViOiB3d3cub3JhbmdlLW1lZGlhLmZpDQojDQojIEdvcmFuIElsaWMsIDx1bmlxdTNlQGdtYWlsLmNvbT4NCiMgV2ViOiB3d3cuaWNoLW1hY2gtZGFzLmF0DQojDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIw0KIyBMSVNFIGlzIGEgQ01TIE1hZGUgU2ltcGxlIG1vZHVsZSB0aGF0IGVuYWJsZXMgdGhlIHdlYiBkZXZlbG9wZXIgdG8gY3JlYXRlDQojIG11bHRpcGxlIGxpc3RzIHRocm91Z2hvdXQgYSBzaXRlLiBJdCBjYW4gYmUgZHVwbGljYXRlZCBhbmQgZ2l2ZW4gZnJpZW5kbHkNCiMgbmFtZXMgZm9yIGVhc2llciBjbGllbnQgbWFpbnRlbmFuY2UuDQojDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIyBCRUdJTl9MSUNFTlNFDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIyBUaGlzIGZpbGUgaXMgcGFydCBvZiBMSVNFDQojIExJU0UgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5DQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5DQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yDQojIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uDQojDQojIExJU0UgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLA0KIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZg0KIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlDQojIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuDQojIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlDQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlDQojIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcgVVNBDQojIE9yIHJlYWQgaXQgb25saW5lOiBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwNCiMNCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQojIEVORF9MSUNFTlNFDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KY2xhc3MgTElTRUNhdGVnb3J5UXVlcnkgZXh0ZW5kcyBMSVNFUXVlcnkNCnsNCiAgIy0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KICAjIEF0dHJpYnV0ZXMNCiAgIy0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KICANCiAgcHJpdmF0ZSBzdGF0aWMgJG9yZGVyYnlfbWFwID0gWw0KICAgIC8vIGNhdGVnb3J5DQogICAgJ2NhdGVnb3J5X2lkJyAgICA9PiAnY2F0ZWdvcnlfaWQnLA0KICAgICduYW1lJyAgICAgICAgICAgPT4gJ2NhdGVnb3J5X25hbWUnLA0KICAgICdhbGlhcycgICAgICAgICAgPT4gJ2NhdGVnb3J5X25hbWUnLA0KICAgICdoaWVyYXJjaHknICAgICAgPT4gJ2hpZXJhcmNoeScsDQogICAgJ3Bvc2l0aW9uJyAgICAgICA9PiAncG9zaXRpb24nLA0KICAgICdjcmVhdGVfZGF0ZScgICAgPT4gJ2NyZWF0ZV9kYXRlJywNCiAgICAnbW9kaWZpZWRfZGF0ZScgID0+ICdtb2RpZmllZF9kYXRlJywNCiAgICAnaGllcmFyY2h5X3BhdGgnID0+ICdoaWVyYXJjaHlfcGF0aCcsDQogICAgJ2lkX2hpZXJhcmNoeScgICA9PiAnaWRfaGllcmFyY2h5JywNCiAgICAvLyBmdW5jdGlvbnMNCiAgICAncmFuZCcgICAgICAgICAgID0+ICdSQU5EKCknDQogIF07DQogIA0KICAvL3ByaXZhdGUgc3RhdGljICRfYWxsb3dlZF9wYXJhbXMgPSBbXTsgLy8gVE9ETw0KICANCiAgIy0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KICAjIE1hZ2ljIG1ldGhvZHMNCiAgIy0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KICANCiAgcHVibGljIGZ1bmN0aW9uIF9fY29uc3RydWN0KExJU0UgJG1vZCwgJiRwYXJhbXMpDQogIHsNCiAgICBwYXJlbnQ6Ol9fY29uc3RydWN0KCRtb2QsICRwYXJhbXMpOw0KICB9DQogIA0KICAjLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQogICMgUXVlcnkgbWV0aG9kcw0KICAjLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQogIA0KICBwcml2YXRlIGZ1bmN0aW9uIF9hcHBlbmRfaW50ZXJuYWwoKQ0KICB7DQogICAgaWYoIGlzc2V0KCR0aGlzLT5xdWVyeSkgKSB7IHJldHVybjsgfQ0KICAgIA0KICAgICRwYXJhbXMgPSAkdGhpcy0+R2V0UGFyYW1zKCk7DQogICAgDQogICAgLyoqDQogICAgICogT1JERVIgQlkNCiAgICAgKi8NCiAgICBpZiggaXNzZXQoJHBhcmFtc1snb3JkZXJieSddKSApDQogICAgew0KICAgICAgLy8gYSBiaXQgYnJva2VuLCB3YXNuJ3QgbWVhbnQgZm9yIGNhdGVnb3J5IGFjdGlvbiwgc2Vjb25kIGFycmF5IHRvdGFsbHkgdW5uZWNlc3NhcnkuDQogICAgICBbJG9yZGVyX2NvbHMsICRjdXN0b21fY29sc10gPSBzZWxmOjpleHBsb2RlX29yZGVyYnkoDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkcGFyYW1zWydvcmRlcmJ5J10sDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmOjokb3JkZXJieV9tYXANCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApOw0KICAgICAgDQogICAgICBpZiggY291bnQoJG9yZGVyX2NvbHMpICkNCiAgICAgIHsNCiAgICAgICAgZm9yZWFjaCgkb3JkZXJfY29scyBhcyAkb25lKQ0KICAgICAgICB7DQogICAgICAgICAgJHRoaXMtPkFwcGVuZFRvKHBhcmVudDo6VkFSVFlQRV9PUkRFUkJZLCAkb25lKTsNCiAgICAgICAgfQ0KICAgICAgfQ0KICAgIH0NCiAgICANCiAgICAvKg0KICAgICAqIEZJTFRFUjogSU4gQ0FURUdPUlkNCiAgICAgKi8NCiAgICBpZighZW1wdHkoJHBhcmFtc1snY2F0ZWdvcnknXSkpDQogICAgew0KICAgICAgDQogICAgICAkYXJyYXkgPSBleHBsb2RlKCcsJywgJHBhcmFtc1snY2F0ZWdvcnknXSk7DQogICAgICAkc3RyICAgPSAiKCI7DQogICAgICANCiAgICAgICRjb3VudCA9IDA7DQogICAgICBmb3JlYWNoKCRhcnJheSBhcyAkY2F0KQ0KICAgICAgew0KICAgICAgICANCiAgICAgICAgaWYoJGNvdW50ID4gMCkNCiAgICAgICAgew0KICAgICAgICAgICRzdHIgLj0gJyBPUiAnOw0KICAgICAgICB9DQogICAgICAgIA0KICAgICAgICAkc3RyIC49ICIgQi5jYXRlZ29yeV9hbGlhcyA9ICciIC4gJGNhdCAuICInIjsNCiAgICAgICAgDQogICAgICAgICRjb3VudCsrOw0KICAgICAgfQ0KICAgICAgJHN0ciAuPSAnKSc7DQogICAgICANCiAgICAgICR0aGlzLT5BcHBlbmRUbyhwYXJlbnQ6OlZBUlRZUEVfV0hFUkUsICRzdHIpOw0KICAgICAgDQogICAgfSAvLyBlbmQgb2YgaW5jYXRlZ29yeTsgICAgDQogICAgDQogICAgDQogIH0NCiAgDQogIHByb3RlY3RlZCBmdW5jdGlvbiBfcXVlcnkoKSA6IHZvaWQNCiAgew0KICAgICRkYiAgICAgPSAkdGhpcy0+R2V0RGIoKTsNCiAgICAkbW9kICAgID0gJHRoaXMtPkdldE1vZHVsZUluc3RhbmNlKCk7DQogICAgDQogICAgJHRoaXMtPl9hcHBlbmRfaW50ZXJuYWwoKTsNCiAgICANCiAgICAvLyBJbml0IHF1ZXJ5DQogICAgJHRoaXMtPnF1ZXJ5ID0gJ1NFTEVDVCAqIEZST00gJyAuIGNtc19kYl9wcmVmaXgoKSAuICdtb2R1bGVfJyAuICRtb2QtPl9HZXRNb2R1bGVBbGlhcygpIC4gJ19jYXRlZ29yeSBCICc7DQogICAgDQogICAgLy8gTWVyZ2UgZXZlcnl0aGluZyB0byBvbmUgcXVlcnkNCiAgICBpZihjb3VudCgkdGhpcy0+am9pbnMpKQ0KICAgIHsNCiAgICAgICR0aGlzLT5xdWVyeSAuPSBpbXBsb2RlKCcgJywgJHRoaXMtPmpvaW5zKTsNCiAgICB9DQogICAgDQogICAgaWYoY291bnQoJHRoaXMtPndoZXJlKSkNCiAgICB7DQogICAgICAkdGhpcy0+cXVlcnkgLj0gJyBXSEVSRSAnIC4gaW1wbG9kZSgnIEFORCAnLCAkdGhpcy0+d2hlcmUpOw0KICAgIH0NCiAgICANCiAgICAkdGhpcy0+cXVlcnkgLj0gJyBHUk9VUCBCWSBCLmNhdGVnb3J5X2lkICc7DQogICAgDQogICAgaWYoY291bnQoJHRoaXMtPm9yZGVyYnkpKQ0KICAgIHsNCiAgICAgIA0KICAgICAgJHRoaXMtPnF1ZXJ5IC49ICcgT1JERVIgQlkgJyAuIGltcGxvZGUoJywgJywgJHRoaXMtPm9yZGVyYnkpOw0KICAgIH0NCiAgICBlbHNlDQogICAgew0KICAgICAgJHRoaXMtPnF1ZXJ5IC49ICcgT1JERVIgQlkgaGllcmFyY2h5ICcgLiAkbW9kLT5HZXRQcmVmZXJlbmNlKCdzb3J0b3JkZXInKTsNCiAgICB9DQogICAgDQogICAgJHRoaXMtPnJlc3VsdHNldCA9ICRkYi0+RXhlY3V0ZSgkdGhpcy0+cXVlcnksICR0aGlzLT5xcGFyYW1zKTsNCiAgfQ0KICANCiAgIy0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KICAjIENsYXNzIG1ldGhvZHMNCiAgIy0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KICANCiAgc3RhdGljIHByaXZhdGUgZnVuY3Rpb24gZXhwbG9kZV9vcmRlcmJ5KCRwYXJhbSwgJHZhbGlkX2NvbHMpDQogIHsNCiAgICANCiAgICAkb3JkZXJfY29scyAgPSBbXTsNCiAgICAkY3VzdG9tX2NvbHMgPSBbXTsNCiAgICAkaW5kZXggICAgICAgPSAwOw0KICAgIA0KICAgIGZvcmVhY2goZXhwbG9kZSgnLCcsICRwYXJhbSkgYXMgJGNvbCkNCiAgICB7DQogICAgICAkY29sICAgICAgID0gdHJpbSgkY29sKTsNCiAgICAgICRjb2xfcGFydHMgPSBleHBsb2RlKCd8JywgJGNvbCk7DQogICAgICANCiAgICAgIC8vIGNvbHVtbiBuYW1lDQogICAgICAkY29sX25hbWUgID0gJGNvbF9wYXJ0c1swXTsNCiAgICAgICRjb2xfb3JkZXIgPSAnQVNDJzsNCiAgICAgIA0KICAgICAgLy8gb3JkZXIgY29sdW1uIGFzY2VuZGluZyBvciBkZXNjZW5kaW5nDQogICAgICBpZihpc3NldCgkY29sX3BhcnRzWzFdKSkNCiAgICAgIHsNCiAgICAgICAgJGNvbF9vcmRlciA9IChpbl9hcnJheSgkY29sX3BhcnRzWzFdLCBbJ0FTQycsICdERVNDJ10pID8gJGNvbF9wYXJ0c1sxXSA6ICdBU0MnKTsNCiAgICAgIH0NCiAgICAgIA0KICAgICAgJGNvbF9vcmRlciA9IChpbl9hcnJheSgkY29sX29yZGVyLCBbJ0FTQycsICdERVNDJ10pID8gJGNvbF9vcmRlciA6ICdBU0MnKTsNCiAgICAgIA0KICAgICAgaWYoaXNzZXQoJHZhbGlkX2NvbHNbJGNvbF9uYW1lXSkpDQogICAgICB7DQogICAgICAgICRvcmRlcl9jb2xzWyRpbmRleF0gPSAkdmFsaWRfY29sc1skY29sX25hbWVdIC4gJyAnIC4gJGNvbF9vcmRlcjsNCiAgICAgIH0NCiAgICAgIGVsc2UgaWYoc3RhcnRzd2l0aCgkY29sX25hbWUsICdjdXN0b21fJykpDQogICAgICB7DQogICAgICAgICRjdXN0b21fbmFtZSAgICAgICAgID0gc3Vic3RyKCRjb2xfbmFtZSwgNyk7DQogICAgICAgICRvYmogICAgICAgICAgICAgICAgID0gbmV3IHN0ZENsYXNzOw0KICAgICAgICAkb2JqLT5uYW1lICAgICAgICAgICA9ICRjdXN0b21fbmFtZTsNCiAgICAgICAgJG9iai0+b3JkZXIgICAgICAgICAgPSAkY29sX29yZGVyOw0KICAgICAgICAkY3VzdG9tX2NvbHNbJGluZGV4XSA9ICRvYmo7DQogICAgICB9DQogICAgICANCiAgICAgICRpbmRleCsrOw0KICAgIH0NCiAgICANCiAgICByZXR1cm4gWyRvcmRlcl9jb2xzLCAkY3VzdG9tX2NvbHNdOw0KICB9DQogIA0KfSAvLyBlbmQgb2YgY2xhc3MNCg0KPz4=]]></data>
	</file>
	<file>
	  <filename>/lib/class.LISECloner.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBMSVNFIC0gTGlzdCBJdCBTcGVjaWFsIEVkaXRpb24KIyBWZXJzaW9uIDEuMgojIEEgZm9yayBvZiBMaXN0STIKIyBtYWludGFpbmVkIGJ5IEZlcm5hbmRvIE1vcmdhZG8gQUtBIEpvIE1vcmcKIyBzaW5jZSAyMDE1CiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBPcmlnaW5hbCBBdXRob3I6IEJlbiBNYWxlbiwgPGJlbkBjb25jZXB0ZmFjdG9yeS5jb20uYXU+CiMgQ28tTWFpbnRhaW5lcjogU2ltb24gUmFkZm9yZCwgPHNpbW9uQGNvbmNlcHRmYWN0b3J5LmNvbS5hdT4KIyBXZWI6IHd3dy5jb25jZXB0ZmFjdG9yeS5jb20uYXUKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojCiMgTWFpbnRhaW5lciBzaW5jZSAyMDExIHVwIHRvIDIwMTQ6IEpvbmF0aGFuIFNjaG1pZCwgPGhpQGpvbmF0aGFuc2NobWlkLmRlPgojIFdlYjogd3d3LmpvbmF0aGFuc2NobWlkLmRlCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIwojIFNvbWUgd2Fja29zIHN0YXJ0ZWQgZGVzdHJveWluZyBzdHVmZiBzaW5jZSAyMDEyIGFuZCBzdG9wcGVkIGF0IDIwMTQ6CiMKIyBUYXBpbyBMw7Z5dHR5LCA8dGFwc2FAb3JhbmdlLW1lZGlhLmZpPgojIFdlYjogd3d3Lm9yYW5nZS1tZWRpYS5maQojCiMgR29yYW4gSWxpYywgPHVuaXF1M2VAZ21haWwuY29tPgojIFdlYjogd3d3LmljaC1tYWNoLWRhcy5hdAojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBMSVNFIGlzIGEgQ01TIE1hZGUgU2ltcGxlIG1vZHVsZSB0aGF0IGVuYWJsZXMgdGhlIHdlYiBkZXZlbG9wZXIgdG8gY3JlYXRlCiMgbXVsdGlwbGUgbGlzdHMgdGhyb3VnaG91dCBhIHNpdGUuIEl0IGNhbiBiZSBkdXBsaWNhdGVkIGFuZCBnaXZlbiBmcmllbmRseQojIG5hbWVzIGZvciBlYXNpZXIgY2xpZW50IG1haW50ZW5hbmNlLgojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgQkVHSU5fTElDRU5TRQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIExJU0UKIyBMSVNFIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgTElTRSBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBFTkRfTElDRU5TRQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCmNsYXNzIExJU0VDbG9uZXIgCnsKICAjLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgIyBDb25zdGFudHMKICAjLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgCiAgY29uc3QgTU9EX1BSRUZJWCAgICAgICAgICA9ICdMSVNFJzsKICBjb25zdCBQTEFDRUhPTERFUiAgICAgICAgID0gJ1BMQUNFX0hPTERFUl9fXyc7CiAgY29uc3QgVkVSU0lPTl9QTEFDRUhPTERFUiA9ICdWRVJTSU9OX19fJzsKCiAgIy0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICMgQXR0cmlidXRlcwogICMtLS0tLS0tLS0tLS0tLS0tLS0tLS0KCiAgcHJpdmF0ZSAkc3JjOwogIHByaXZhdGUgJGRzdDsKICBwcml2YXRlICRtb2RuYW1lOwogIHByaXZhdGUgJG9sZG1vZG5hbWU7CiAgCglwcml2YXRlIHN0YXRpYyAkX2ludmFsaWQgPSBhcnJheSgnLicsICcuLicpOwoKCSMtLS0tLS0tLS0tLS0tLS0tLS0tLS0KCSMgTWFnaWMgbWV0aG9kcwoJIy0tLS0tLS0tLS0tLS0tLS0tLS0tLQkJCgkJCglwdWJsaWMgZnVuY3Rpb24gX19jb25zdHJ1Y3QoJG9sZG1vZG5hbWUgPSBOVUxMLCAkbmV3bW9kZW5hbWUgPSBOVUxMKSAKCXsKICAgIGlmKCBlbXB0eSgkb2xkbW9kbmFtZSkgKSB0aHJvdyBuZXcgXExJU0VcRXhjZXB0aW9uKCdFcnJvciBpbiAnIC4gX19DTEFTU19fIC4gJyBjb25zdHJ1Y3RvcjogaW52YWxpZCBwYXJhbWV0ZXIhJyk7CiAgICBpZiggZW1wdHkoJG5ld21vZGVuYW1lKSApIHRocm93IG5ldyBcTElTRVxFeGNlcHRpb24oJ0Vycm9yIGluICcgLiBfX0NMQVNTX18gLiAnIGNvbnN0cnVjdG9yOiBpbnZhbGlkIHBhcmFtZXRlciEnKTsKICAgIAogICAgaWYoICFzdGFydHN3aXRoKCRvbGRtb2RuYW1lLCBzZWxmOjpNT0RfUFJFRklYKSApCiAgICB7CiAgICAgICRvbGRtb2RuYW1lID0gc2VsZjo6TU9EX1BSRUZJWCAuICRvbGRtb2RuYW1lOwogICAgfQogICAgCiAgICBpZiggIXN0YXJ0c3dpdGgoJG5ld21vZGVuYW1lLCBzZWxmOjpNT0RfUFJFRklYKSApCiAgICB7CiAgICAgICRuZXdtb2RlbmFtZSA9IHNlbGY6Ok1PRF9QUkVGSVggLiAkbmV3bW9kZW5hbWU7CiAgICB9CgogICAgJG5ld21vZGVuYW1lID0gc2VsZjo6X21ha2VfdmFsaWRfbW9kbmFtZSgkbmV3bW9kZW5hbWUpOyAKICAgICR0aGlzLT5vbGRtb2RuYW1lID0gJG9sZG1vZG5hbWU7CiAgICAkdGhpcy0+bW9kbmFtZSA9ICRuZXdtb2RlbmFtZTsKICAgICR0aGlzLT5zcmMgPSBkaXJuYW1lKGRpcm5hbWUoZGlybmFtZShfX0ZJTEVfXykpKSAuIERJUkVDVE9SWV9TRVBBUkFUT1IgLiAkdGhpcy0+b2xkbW9kbmFtZTs7CiAgICAkdGhpcy0+ZHN0ID0gZGlybmFtZShkaXJuYW1lKGRpcm5hbWUoX19GSUxFX18pKSkgLiBESVJFQ1RPUllfU0VQQVJBVE9SIC4gJHRoaXMtPm1vZG5hbWU7Cgl9CgogICMtLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAjIFNldC9HZXQKICAjLS0tLS0tLS0tLS0tLS0tLS0tLS0tCQkKCiAgcHVibGljIGZ1bmN0aW9uIFNldE1vZHVsZSgkbmFtZSkKICB7CgkgICR0aGlzLT5tb2RuYW1lID0gJG5hbWU7CiAgfQoKICBwdWJsaWMgZnVuY3Rpb24gU2V0RHVwbGljYXRlKCRuYW1lKQogIHsKICAgICR0aGlzLT5kdXAgPSAkbmFtZTsKICB9CiAgICAKICBwdWJsaWMgZnVuY3Rpb24gU2V0U291cmNlKCRuYW1lKQogIHsKCSAgJHRoaXMtPnNyYyA9ICRuYW1lOwogIH0KCiAgcHVibGljIGZ1bmN0aW9uIFNldERlc3RpbmF0aW9uKCRuYW1lKQogIHsKCSAgJHRoaXMtPmRzdCA9ICRuYW1lOwogIH0JCgogICMtLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAjIFJ1bm5lcgogICMtLS0tLS0tLS0tLS0tLS0tLS0tLS0KCQoJcHVibGljIGZ1bmN0aW9uIFJ1bigpCgl7CiAgICAjIDFzdCBjb3B5IHRoZSBvcmlnaW5hbAogICAgJHRoaXMtPkNvcHlSZWN1cnNpdmUoJHRoaXMtPnNyYywgJHRoaXMtPmRzdCk7CgkJJHRoaXMtPlJlbmFtZSgpOwogICAgJHRoaXMtPkZpeE1vZHVsZWZpbGUoKTsKICAgICMgbm93IHdlIGluc3RhbGwgbmV3CiAgICAkbW9kb3BzID0gY21zbXMoKS0+R2V0TW9kdWxlT3BlcmF0aW9ucygpOwogICAgJG1vZG9wcy0+SW5zdGFsbE1vZHVsZSgkdGhpcy0+bW9kbmFtZSk7CiAgICAjIGNsb25lIHRoZSByZXN0IG9mIHRoZSBkYXRhCgkJJHRoaXMtPkNvcHlEYXRhQmFzZSgpOwogICAgJHRoaXMtPkNvcHlUZW1wbGF0ZXMoKTsKICAgICR0aGlzLT5Db3B5UHJlZmVyZW5jZXMoKTsKICAgICMgbm93IHdlIGhhdmUgYSBuZXcgTElTRSBNb2R1bGUKCQlyZXR1cm4gJHRoaXMtPm1vZG5hbWU7Cgl9CgkJCgkjLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgkjIEZpbGUgaGFuZGxpbmcgbWV0aG9kcwoJIy0tLS0tLS0tLS0tLS0tLS0tLS0tLQkJCgoJcHJpdmF0ZSBmdW5jdGlvbiBDb3B5UmVjdXJzaXZlKCRzcmMsICRkc3QpCgl7CgkJJGRpciA9IG9wZW5kaXIoJHNyYyk7IC8vIDwtIFRocm93IGV4Y2VwdGlvbiBvbiBmYWlsdXJlPwoJCUBta2RpcigkZHN0KTsgLy8gPC0gVGhyb3cgZXhjZXB0aW9uIG9uIGZhaWx1cmU/CgkJCgkJd2hpbGUoZmFsc2UgIT09ICggJGZpbGUgPSByZWFkZGlyKCRkaXIpKSApIAogICAgewoJCQoJCQlpZiAoaW5fYXJyYXkoJGZpbGUsIHNlbGY6OiRfaW52YWxpZCkpIGNvbnRpbnVlOyAvLyA8LSBTa2lwIHN0dWZmIHdlIG5ldmVyIGFsbG93IHRvIGNvcHkKCgkJCWlmICggaXNfZGlyKCRzcmMgLiBESVJFQ1RPUllfU0VQQVJBVE9SIC4gJGZpbGUpICkgCiAgICAgIHsgCgkJCQkkdGhpcy0+Q29weVJlY3Vyc2l2ZSgkc3JjIC4gRElSRUNUT1JZX1NFUEFSQVRPUiAuICRmaWxlLCAkZHN0IC4gRElSRUNUT1JZX1NFUEFSQVRPUiAuICRmaWxlKTsgCgkJCX0gCgkJCWVsc2UgCiAgICAgIHsgCgkJCQlAY29weSgkc3JjIC4gRElSRUNUT1JZX1NFUEFSQVRPUiAuICRmaWxlLCAkZHN0IC4gRElSRUNUT1JZX1NFUEFSQVRPUiAuICRmaWxlKTsgLy8gPC0gVGhyb3cgZXhjZXB0aW9uIG9uIGZhaWx1cmU/CgkJCX0gCgkJfSAKCQkKCQljbG9zZWRpcigkZGlyKTsgCgl9CgkKCXByaXZhdGUgZnVuY3Rpb24gUmVuYW1lKCkKCXsKICAgICRvbGQgPSBjbXNfam9pbl9wYXRoKCR0aGlzLT5kc3QsICR0aGlzLT5vbGRtb2RuYW1lIC4gJy5tb2R1bGUucGhwJyk7CiAgICAkbmV3ID0gY21zX2pvaW5fcGF0aCgkdGhpcy0+ZHN0LCAkdGhpcy0+bW9kbmFtZSAuICcubW9kdWxlLnBocCcpIDsKICAgIAoJCUByZW5hbWUoJG9sZCwgJG5ldyk7IC8vIDwtIFRocm93IGV4Y2VwdGlvbiBvbiBmYWlsdXJlPwoJfQoJCglwcml2YXRlIGZ1bmN0aW9uIEZpeE1vZHVsZWZpbGUoKQoJewogICAgJGZpbGVuYW1lID0gJHRoaXMtPmRzdCAuIERJUkVDVE9SWV9TRVBBUkFUT1IgLiAkdGhpcy0+bW9kbmFtZSAuJy5tb2R1bGUucGhwJzsKICAgIAogICAgLy8gUmVwbGFjZW1lbnRzCiAgICAkX2NvbnRlbnRzID0gZmlsZV9nZXRfY29udGVudHMoJGZpbGVuYW1lKTsgLy8gPC0gVGhyb3cgZXhjZXB0aW9uIG9uIGZhaWx1cmU/CiAgICAkX2NvbnRlbnRzID0gc3RyX3JlcGxhY2UoJHRoaXMtPm9sZG1vZG5hbWUsICR0aGlzLT5tb2RuYW1lLCAkX2NvbnRlbnRzKTsKICAgIAogICAgLy8gV3JpdGUgZmlsZQogICAgJGZoID0gQGZvcGVuKCRmaWxlbmFtZSwgJ3cnKTsKICAgIGlmKCEkZmgpIHRocm93IG5ldyBcTElTRVxFeGNlcHRpb24oJ0Vycm9yOiAnIC4gX19DTEFTU19fIC4gJyAtICcgLiBfX01FVEhPRF9fIC4gJyAtPiBmYWlsZWQgdG8gb3BlbiAnIC4gJGZpbGVuYW1lLCBcTElTRVxFcnJvcjo6RElTQ1JFVEUgKTsKICAgIAogICAgdHJ5CiAgICB7CiAgICAgIGlmKCAhZndyaXRlKCRmaCwgJF9jb250ZW50cykgKSB0aHJvdyBuZXcgXExJU0VcRXhjZXB0aW9uKCdFcnJvcjogJyAuIF9fQ0xBU1NfXyAuICcgLSAnIC4gX19NRVRIT0RfXyAuICcgLT4gZmFpbGVkIHRvIHdyaXRlIHRvICcgLiAkZmlsZW5hbWUsIFxMSVNFXEVycm9yOjpESVNDUkVURSApOwogICAgfQogICAgY2F0Y2goRXhjZXB0aW9uICRlKQogICAgewogICAgICAjIG1ha2Ugc3VyZSB5b3UgY2xvc2UgdGhlIGZpbGUgYW5kIHJldGhyb3cgZXhjZXB0aW9uCiAgICAgIGZjbG9zZSgkZmgpOwogICAgICB0aHJvdyAkZTsKICAgIH0KICB9CiAgCiAgcHJpdmF0ZSBmdW5jdGlvbiBDb3B5RGF0YUJhc2UoKQogIHsKICAgICAkbW9kX3ByZWZpeCA9IGNtc19kYl9wcmVmaXgoKSAuICdtb2R1bGVfJyAuIHN0cnRvbG93ZXIoJHRoaXMtPm1vZG5hbWUpIC4gJ18nOwogICAgICRvbGRfbW9kX3ByZWZpeCA9IGNtc19kYl9wcmVmaXgoKSAuICdtb2R1bGVfJyAuIHN0cnRvbG93ZXIoJHRoaXMtPm9sZG1vZG5hbWUpIC4gJ18nOwogICAgICR0YWJsZV9saXN0ID0gYXJyYXkoCiAgICAgICAgICAgICAgICAgICAgICAgICAgJ2l0ZW0nLAogICAgICAgICAgICAgICAgICAgICAgICAgICdjYXRlZ29yeScsCiAgICAgICAgICAgICAgICAgICAgICAgICAgJ2l0ZW1fY2F0ZWdvcmllcycsCiAgICAgICAgICAgICAgICAgICAgICAgICAgJ2ZpZWxkZGVmJywKICAgICAgICAgICAgICAgICAgICAgICAgICAnZmllbGRkZWZfb3B0cycsCiAgICAgICAgICAgICAgICAgICAgICAgICAgJ2ZpZWxkdmFsJyAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICRkYiA9IGNtc21zKCktPkdldERiKCk7CiAgICAgCiAgICAgZm9yZWFjaCgkdGFibGVfbGlzdCBhcyAkb25lKQogICAgIHsKICAgICAgICRudCA9ICRtb2RfcHJlZml4IC4gJG9uZTsgCiAgICAgICAkb3Q9ICRvbGRfbW9kX3ByZWZpeCAuICRvbmU7CiAgICAgICAKICAgICAgICRxID0gJ0RST1AgVEFCTEUgSUYgRVhJU1RTICcgLiAkbnQ7CiAgICAgICAkciA9ICRkYi0+RXhlY3V0ZSgkcSk7CiAgICAgICAKICAgICAgIGlmKCEkcikgdGhyb3cgbmV3IFxMSVNFXEV4Y2VwdGlvbigkZGItPkVycm9yTm8oKSAuICcgLSAnIC4gJGRiLT5FcnJvck1zZygpICwgXExJU0VcRXJyb3I6OkRJU0NSRVRFX0RCICk7CiAgIAogICAgICAgJHEgPSAnQ1JFQVRFIFRBQkxFIElGIE5PVCBFWElTVFMgJyAuICRudCAuICcgTElLRSAnIC4gJG90OyAKICAgICAgICRyID0gJGRiLT5FeGVjdXRlKCRxKTsKICAgICAgIAogICAgICAgaWYoISRyKSB0aHJvdyBuZXcgXExJU0VcRXhjZXB0aW9uKCRkYi0+RXJyb3JObygpIC4gJyAtICcgLiAkZGItPkVycm9yTXNnKCkgLCBcTElTRVxFcnJvcjo6RElTQ1JFVEVfREIgKTsKICAgICAgIC8vaWYoISRyKSB0aHJvdyBuZXcgRXhjZXB0aW9uKCAkZGItPkVycm9yTXNnKCkgKTsKICAgICAgICAgIAogICAgICAgJHEgPSAnSU5TRVJUICcgLiAkbnQgLiAnIFNFTEVDVCAqIEZST00gJyAuICRvdDsgCiAgICAgICAkciA9ICRkYi0+RXhlY3V0ZSgkcSk7CiAgICAgICAKICAgICAgIGlmKCEkcikgdGhyb3cgbmV3IFxMSVNFXEV4Y2VwdGlvbigkZGItPkVycm9yTm8oKSAuICcgLSAnIC4gJGRiLT5FcnJvck1zZygpICwgXExJU0VcRXJyb3I6OkRJU0NSRVRFX0RCICk7CiAgICAgfQogIH0KICAKICBwcml2YXRlIGZ1bmN0aW9uIENvcHlQcmVmZXJlbmNlcygpCiAgewogICAgCiAgICAkcHJlZnMgPSBhcnJheSgKICAgICAgICAgICAgICAgICAgICAnZnJpZW5kbHluYW1lJywKICAgICAgICAgICAgICAgICAgICAnYWRtaW5zZWN0aW9uJywKICAgICAgICAgICAgICAgICAgICAnbW9kZGVzY3JpcHRpb24nLAogICAgICAgICAgICAgICAgICAgICdpdGVtX3RpdGxlJywKICAgICAgICAgICAgICAgICAgICAnc29ydG9yZGVyJywKICAgICAgICAgICAgICAgICAgICAnaXRlbV9zaW5ndWxhcicsCiAgICAgICAgICAgICAgICAgICAgJ2l0ZW1fcGx1cmFsJywKICAgICAgICAgICAgICAgICAgICAnZGlzcGxheV9jcmVhdGVfZGF0ZScsCiAgICAgICAgICAgICAgICAgICAgJ2l0ZW1fY29scycsCiAgICAgICAgICAgICAgICAgICAgJ2l0ZW1zX3Blcl9wYWdlJywKICAgICAgICAgICAgICAgICAgICAndXJsX3ByZWZpeCcsCiAgICAgICAgICAgICAgICAgICAgJ2Rpc3BsYXlfaW5saW5lJywKICAgICAgICAgICAgICAgICAgICAnc3ViY2F0ZWdvcnknLAogICAgICAgICAgICAgICAgICAgICd1cmx0ZW1wbGF0ZScsCiAgICAgICAgICAgICAgICAgICAgJ2RldGFpbHBhZ2UnLAogICAgICAgICAgICAgICAgICAgICdzdW1tYXJ5cGFnZScsCiAgICAgICAgICAgICAgICAgICAgJ3JlaW5kZXhfc2VhcmNoJwogICAgICAgICAgICAgICAgICApOwogICAgICAgICAgICAgICAgICAKICAgICR0ZW1wbGF0ZV9wcmVmcyA9IGFycmF5KAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnX2RlZmF1bHRfc3VtbWFyeV90ZW1wbGF0ZScsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdfZGVmYXVsdF9kZXRhaWxfdGVtcGxhdGUnLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnX2RlZmF1bHRfc2VhcmNoX3RlbXBsYXRlJywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ19kZWZhdWx0X2NhdGVnb3J5X3RlbXBsYXRlJywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ19kZWZhdWx0X2FyY2hpdmVfdGVtcGxhdGUnCiAgICAgICAgICAgICAgICAgICAgICAgICAgICApOwogICAgCiAgICAkbmV3bW9kID0gTW9kdWxlT3BlcmF0aW9uczo6Z2V0X2luc3RhbmNlKCktPmdldF9tb2R1bGVfaW5zdGFuY2UoJHRoaXMtPm1vZG5hbWUsIE5VTEwsIFRSVUUpOwogICAgJG9sZG1vZCA9IE1vZHVsZU9wZXJhdGlvbnM6OmdldF9pbnN0YW5jZSgpLT5nZXRfbW9kdWxlX2luc3RhbmNlKCR0aGlzLT5vbGRtb2RuYW1lLCBOVUxMLCBUUlVFKTsKICAgIAogICAgZm9yZWFjaCgkcHJlZnMgYXMgJHByZWYpCiAgICB7CiAgICAgIGlmKCRwcmVmID09ICdmcmllbmRseW5hbWUnKQogICAgICB7CiAgICAgICAgJG5ld21vZC0+U2V0UHJlZmVyZW5jZSgkcHJlZiwgJG9sZG1vZC0+R2V0UHJlZmVyZW5jZSgkcHJlZiwgJycpIC4gJyonICk7CiAgICAgICAgY29udGludWU7CiAgICAgIH0KICAgICAgCiAgICAgICRuZXdtb2QtPlNldFByZWZlcmVuY2UoJHByZWYsICRvbGRtb2QtPkdldFByZWZlcmVuY2UoJHByZWYsICcnKSApOwogICAgfQogICAgICAgIAogICAgZm9yZWFjaCgkdGVtcGxhdGVfcHJlZnMgYXMgJHByZWYpCiAgICB7ICAgICAKICAgICAgJG5ld21vZC0+U2V0UHJlZmVyZW5jZSgkdGhpcy0+bW9kbmFtZSAuICRwcmVmLCAkb2xkbW9kLT5HZXRQcmVmZXJlbmNlKCR0aGlzLT5tb2RuYW1lIC4gJHByZWYsICcnKSApOwogICAgfQoKICB9CiAgCiAgcHJpdmF0ZSBmdW5jdGlvbiBDb3B5VGVtcGxhdGVzKCkKICB7CiAgICAKICAgICRuZXdtb2QgPSBNb2R1bGVPcGVyYXRpb25zOjpnZXRfaW5zdGFuY2UoKS0+Z2V0X21vZHVsZV9pbnN0YW5jZSgkdGhpcy0+bW9kbmFtZSwgTlVMTCwgVFJVRSk7CiAgICAkb2xkbW9kID0gTW9kdWxlT3BlcmF0aW9uczo6Z2V0X2luc3RhbmNlKCktPmdldF9tb2R1bGVfaW5zdGFuY2UoJHRoaXMtPm9sZG1vZG5hbWUsIE5VTEwsIFRSVUUpOwoKICAgIAogICAgJHRlbXBsYXRlcyA9ICRuZXdtb2QtPkxpc3RUZW1wbGF0ZXMoKTsKICAgIAogICAgZm9yZWFjaCgkdGVtcGxhdGVzIGFzICRvbmUpICRuZXdtb2QtPkRlbGV0ZVRlbXBsYXRlKCRvbmUpOwogICAgCiAgICAkdGVtcGxhdGVzID0gJG9sZG1vZC0+TGlzdFRlbXBsYXRlcygpOwogICAgCiAgICBmb3JlYWNoKCR0ZW1wbGF0ZXMgYXMgJG9uZSkKICAgIHsKICAgICAgJG5ld21vZC0+U2V0VGVtcGxhdGUoICRvbmUsICRvbGRtb2QtPkdldFRlbXBsYXRlKCRvbmUpICk7CiAgICB9CiAgICAgCiAgfQogIAogIHByaXZhdGUgZnVuY3Rpb24gVXBncmFkZUZyb21CYXNlKCkKICB7CiAgICAkZGIgPSBjbXNtcygpLT5HZXREYigpOwogICAgJGRpY3QgPSBOZXdEYXRhRGljdGlvbmFyeSgkZGIpOwogICAgJHNxbGFycmF5ID0gJGRpY3QtPkFkZENvbHVtblNRTChjbXNfZGJfcHJlZml4KCkgLiAnbW9kdWxlXycgLiAkdGhpcy0+bW9kbmFtZSAuICdfZmllbGRkZWYnLCAndGVtcGxhdGUgQygyNTUpJyk7CiAgICAkZGljdC0+RXhlY3V0ZVNRTEFycmF5KCRzcWxhcnJheSk7CiAgfQogIAogIC8qKgogICAqIGNhcmVmdWxsOiBubyBlcnJvciBjaGVja2luZwogICAqCiAgICogQHBhcmFtIG1peGVkICRmbgogICAqCiAgICogQHJldHVybiBib29sCiAgICovCiAgcHJpdmF0ZSBmdW5jdGlvbiBfaXNfdmFsaWRfZmlsZW5hbWUoJGZuKQogIHsKICAgICR0ZXN0ID0gY21zX2pvaW5fcGF0aCgKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpcm5hbWUoIGRpcm5hbWUoIGRpcm5hbWUoX19GSUxFX18pICkgKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICRmbgogICAgICAgICAgICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgcmV0dXJuICFpc19kaXIoJHRlc3QpOwogIH0KICAKICBwcml2YXRlIGZ1bmN0aW9uIF9tYWtlX3ZhbGlkX21vZG5hbWUoJG5hbWUpCiAgewogICAgJGNudCA9IDA7CiAgICAkdGVzdCA9ICRuYW1lOwogICAgd2hpbGUoIXNlbGY6Ol9pc192YWxpZF9maWxlbmFtZSgkdGVzdCkpCiAgICB7CiAgICAgICR0ZXN0ID0gJG5hbWUgLiArKyRjbnQ7CiAgICB9CiAgICAKICAgIHJldHVybiAkdGVzdDsKICAgIAogIH0KCQp9IC8vIGVuZCBvZiBjbGFzcw==]]></data>
	</file>
	<file>
	  <filename>/lib/class.LISEConfig.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHANCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQojIExJU0UgLSBMaXN0IEl0IFNwZWNpYWwgRWRpdGlvbg0KIyBWZXJzaW9uIDEuMg0KIyBBIGZvcmsgb2YgTGlzdEkyDQojIG1haW50YWluZWQgYnkgRmVybmFuZG8gTW9yZ2FkbyBBS0EgSm8gTW9yZw0KIyBzaW5jZSAyMDE1DQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIw0KIyBPcmlnaW5hbCBBdXRob3I6IEJlbiBNYWxlbiwgPGJlbkBjb25jZXB0ZmFjdG9yeS5jb20uYXU+DQojIENvLU1haW50YWluZXI6IFNpbW9uIFJhZGZvcmQsIDxzaW1vbkBjb25jZXB0ZmFjdG9yeS5jb20uYXU+DQojIFdlYjogd3d3LmNvbmNlcHRmYWN0b3J5LmNvbS5hdQ0KIw0KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCiMNCiMgTWFpbnRhaW5lciBzaW5jZSAyMDExIHVwIHRvIDIwMTQ6IEpvbmF0aGFuIFNjaG1pZCwgPGhpQGpvbmF0aGFuc2NobWlkLmRlPg0KIyBXZWI6IHd3dy5qb25hdGhhbnNjaG1pZC5kZQ0KIw0KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCiMNCiMgU29tZSB3YWNrb3Mgc3RhcnRlZCBkZXN0cm95aW5nIHN0dWZmIHNpbmNlIDIwMTIgYW5kIHN0b3BwZWQgYXQgMjAxNDoNCiMNCiMgVGFwaW8gTMO2eXR0eSwgPHRhcHNhQG9yYW5nZS1tZWRpYS5maT4NCiMgV2ViOiB3d3cub3JhbmdlLW1lZGlhLmZpDQojDQojIEdvcmFuIElsaWMsIDx1bmlxdTNlQGdtYWlsLmNvbT4NCiMgV2ViOiB3d3cuaWNoLW1hY2gtZGFzLmF0DQojDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIw0KIyBMSVNFIGlzIGEgQ01TIE1hZGUgU2ltcGxlIG1vZHVsZSB0aGF0IGVuYWJsZXMgdGhlIHdlYiBkZXZlbG9wZXIgdG8gY3JlYXRlDQojIG11bHRpcGxlIGxpc3RzIHRocm91Z2hvdXQgYSBzaXRlLiBJdCBjYW4gYmUgZHVwbGljYXRlZCBhbmQgZ2l2ZW4gZnJpZW5kbHkNCiMgbmFtZXMgZm9yIGVhc2llciBjbGllbnQgbWFpbnRlbmFuY2UuDQojDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIyBCRUdJTl9MSUNFTlNFDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIyBUaGlzIGZpbGUgaXMgcGFydCBvZiBMSVNFDQojIExJU0UgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5DQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5DQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yDQojIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uDQojDQojIExJU0UgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLA0KIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZg0KIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlDQojIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuDQojIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlDQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlDQojIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcgVVNBDQojIE9yIHJlYWQgaXQgb25saW5lOiBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwNCiMNCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQojIEVORF9MSUNFTlNFDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KY2xhc3MgTElTRUNvbmZpZyBpbXBsZW1lbnRzIEFycmF5QWNjZXNzDQp7DQoJIy0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KCSMgQXR0cmlidXRlcw0KCSMtLS0tLS0tLS0tLS0tLS0tLS0tLS0JDQogDQoJcHJpdmF0ZSAkX2RhdGEgPSBhcnJheSgpOw0KCXByaXZhdGUgJF9DTVNNU19DRkc7DQoNCgkjLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQoJIyBNYWdpYyBtZXRob2RzDQoJIy0tLS0tLS0tLS0tLS0tLS0tLS0tLSAJDQoJDQoJcHVibGljIGZ1bmN0aW9uIF9fY29uc3RydWN0KExJU0UgJG1vZCkgDQoJew0KICAgICR0aGlzLT5fQ01TTVNfQ0ZHID0gXGNtc21zKCktPkdldENvbmZpZygpOw0KICAgICR0aGlzLT5fZGF0YVsnbW9kdWxlX3BhdGgnXSA9ICRtb2QtPkdldE1vZHVsZVBhdGgoKTsNCiAgICAkdGhpcy0+X2RhdGFbJ0xJU0VfaW5zdGFuY2VfbmFtZSddID0gJG1vZC0+R2V0TmFtZSgpOw0KICAgIA0KICAgICMgZm9yIGJhY2t3YXJkIGNvbXBhdGliaWxpdHkNCiAgICAkdGhpcy0+X2RhdGFbJ21vZHVsZV9hbGlhcyddID0gc3RydG9sb3dlciggJHRoaXMtPl9kYXRhWydMSVNFX2luc3RhbmNlX25hbWUnXSApOw0KICAgICR0aGlzLT5fZGF0YVsnaXRlbV9xdWVyeV9jbGFzcyddID0gJ0xJU0VJdGVtUXVlcnknOw0KICAgICR0aGlzLT5fZGF0YVsnY2F0ZWdvcnlfcXVlcnlfY2xhc3MnXSA9ICdMSVNFQ2F0ZWdvcnlRdWVyeSc7DQogICAgJHRoaXMtPl9kYXRhWydhcmNoaXZlX3F1ZXJ5X2NsYXNzJ10gPSAnTElTRUFyY2hpdmVRdWVyeSc7ICAgICAgIA0KICAgIA0KICAgICRmbiA9IGNtc19qb2luX3BhdGgoJHRoaXMtPl9kYXRhWydtb2R1bGVfcGF0aCddLCAnZGF0YScsICdjZmcuaW5jJyk7DQogICAgJGNmZyA9IGFycmF5KCk7DQogICAgDQogICAgaWYoIGlzX3JlYWRhYmxlKCRmbikgKQ0KICAgIHsNCiAgICAgIGluY2x1ZGUoJGZuKTsNCiAgICAgIA0KICAgICAgaWYoIGlzc2V0KCRjZmcpICkNCiAgICAgIHsNCiAgICAgICAgZm9yZWFjaCgkY2ZnIGFzICRrZXkgPT4gJHZhbHVlKSANCiAgICAgICAgew0KICAgICAgICAgICR0aGlzLT5fZGF0YVska2V5XSA9ICR2YWx1ZTsNCiAgICAgICAgfQ0KICAgICAgfQ0KICAgIH0gICAgDQogICAgDQogICAgIyB0aGUgZm9sbG93aW5nIGlzIGRlcHJlY2F0ZWQNCiAgICAjIGtlcHQgZm9yIGNvbXBhdGliaWxpdHkgcHVycG9zZXMgd2l0aCB2ZXJ5IG9sZCBMSTIgLT4gTElTRSBjb252ZXJzaW9ucw0KICAgICMgc2NoZWR1bGVkIGZvciByZW1vdmFsDQogIA0KCQkkbGlzZV9jb25maWcgPSBhcnJheSgpOw0KCQkkZm4gPSBjbXNfam9pbl9wYXRoKCR0aGlzLT5fZGF0YVsnbW9kdWxlX3BhdGgnXSwgTElTRV9DT05GSUdfRklMRSk7DQoJCQ0KICAgIGlmKGlzX3JlYWRhYmxlKCRmbikpDQogICAgew0KCQkJaW5jbHVkZSgkZm4pOw0KICAgICAgDQoJCQlpZiggaXNzZXQoJGxpc2VfY29uZmlnKSApDQogICAgICB7DQoJCQkJZm9yZWFjaCgkbGlzZV9jb25maWcgYXMgJGtleSA9PiAkdmFsdWUpIA0KICAgICAgICB7DQoJCQkJCSR0aGlzLT5fZGF0YVska2V5XSA9ICR2YWx1ZTsNCgkJCQl9DQoJCQl9DQoJCX0gICAgDQoJfQ0KICANCiAgLyoqDQogICAqIEdldCBhIGRhdGEgYnkga2V5DQogICAqDQogICAqIEBwYXJhbSBzdHJpbmcgVGhlIGtleSBkYXRhIHRvIHJldHJpZXZlDQogICAqDQogICAqIEBhY2Nlc3MgcHVibGljDQogICAqIEByZXR1cm4gbWl4ZWR8bnVsbA0KICAgKi8NCiAgcHVibGljIGZ1bmN0aW9uIF9fZ2V0ICgka2V5KSANCiAgew0KICAgIGlmKCR0aGlzLT5fQ01TTVNfQ0ZHLT5vZmZzZXRFeGlzdHMoJGtleSkpIHJldHVybiAkdGhpcy0+X0NNU01TX0NGR1ska2V5XTsNCiAgICByZXR1cm4gJHRoaXMtPl9kYXRhWyRrZXldOw0KICB9DQoNCiAgcHVibGljIGZ1bmN0aW9uIF9fc2V0KCRrZXksICR2YWx1ZSkgDQogIHsNCiAgICB0aHJvdyBuZXcgXExJU0VcRXhjZXB0aW9uKCdSZWFkIE9ubHknKTsNCiAgfQ0KDQogIHB1YmxpYyBmdW5jdGlvbiBvZmZzZXRFeGlzdHMoJGtleSkgOiBib29sDQogIHsNCiAgICByZXR1cm4gKCBpc3NldCgkdGhpcy0+X2RhdGFbJGtleV0pIHx8ICR0aGlzLT5fQ01TTVNfQ0ZHLT5vZmZzZXRFeGlzdHMoJGtleSkgKTsNCiAgfQ0KICANCiAgI1tcUmV0dXJuVHlwZVdpbGxDaGFuZ2VdDQogICBwdWJsaWMgZnVuY3Rpb24gb2Zmc2V0R2V0KCRrZXkpIA0KICAgew0KICAgICBpZigkdGhpcy0+X0NNU01TX0NGRy0+b2Zmc2V0RXhpc3RzKCRrZXkpKSByZXR1cm4gJHRoaXMtPl9DTVNNU19DRkdbJGtleV07DQogICAgIA0KICAgICAgaWYoaXNzZXQoJHRoaXMtPl9kYXRhWyRrZXldKSkgDQogICAgICB7DQogICAgICAgICRyZXQgPSAkdGhpcy0+X2RhdGFbJGtleV07DQogICAgICB9DQogICAgICBlbHNlDQogICAgICB7DQogICAgICAgICRyZXQgPSBOVUxMOw0KICAgICAgfQ0KICAgIA0KICAgIHJldHVybiAkcmV0Ow0KICAgfQ0KDQogICBwdWJsaWMgZnVuY3Rpb24gb2Zmc2V0U2V0KCRrZXksICR2YWx1ZSkgOiB2b2lkDQogICB7DQogICAgIHRocm93IG5ldyBcTElTRVxFeGNlcHRpb24oXExJU0VcRXJyb3I6OlJFQURfT05MWV9DRkcpOw0KICAgfQ0KDQogICBwdWJsaWMgZnVuY3Rpb24gb2Zmc2V0VW5zZXQoJGtleSkgOiB2b2lkDQogICB7DQogICAgIHRocm93IG5ldyBcTElTRVxFeGNlcHRpb24oXExJU0VcRXJyb3I6OlJFQURfT05MWV9DRkcpOw0KICAgfQ0KICAgDQogICBwdWJsaWMgZnVuY3Rpb24gZ2V0KCRrZXkpDQogIHsNCiAgICBpZigkdGhpcy0+X0NNU01TX0NGRy0+b2Zmc2V0RXhpc3RzKCRrZXkpKSByZXR1cm4gJHRoaXMtPl9DTVNNU19DRkdbJGtleV07DQogICAgDQogICAgaWYoICR0aGlzLT5leGlzdHMoJGtleSkgKQ0KICAgIHsNCiAgICAgIHJldHVybiAkdGhpcy0+X2RhdGFbJGtleV07DQogICAgfQ0KICB9DQoNCiAgcHVibGljIGZ1bmN0aW9uIHNldCgka2V5LCAkdmFsdWUpIDogdm9pZA0KICB7DQogICAgdGhyb3cgbmV3IFxMSVNFXEV4Y2VwdGlvbihcTElTRVxFcnJvcjo6UkVBRF9PTkxZX0NGRyk7DQogIH0NCg0KICBwdWJsaWMgZnVuY3Rpb24gZXJhc2UoJGtleSkNCiAgew0KICAgIHRocm93IG5ldyBcTElTRVxFeGNlcHRpb24oXExJU0VcRXJyb3I6OlJFQURfT05MWV9DRkcpOw0KICB9DQp9IC8vIGVuZCBvZiBjbGFzcw0KPz4=]]></data>
	</file>
	<file>
	  <filename>/lib/class.LISECsvIterator.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBMSVNFIC0gTGlzdCBJdCBTcGVjaWFsIEVkaXRpb24KIyBWZXJzaW9uIDEuMgojIEEgZm9yayBvZiBMaXN0STIKIyBtYWludGFpbmVkIGJ5IEZlcm5hbmRvIE1vcmdhZG8gQUtBIEpvIE1vcmcKIyBzaW5jZSAyMDE1CiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBPcmlnaW5hbCBBdXRob3I6IEJlbiBNYWxlbiwgPGJlbkBjb25jZXB0ZmFjdG9yeS5jb20uYXU+CiMgQ28tTWFpbnRhaW5lcjogU2ltb24gUmFkZm9yZCwgPHNpbW9uQGNvbmNlcHRmYWN0b3J5LmNvbS5hdT4KIyBXZWI6IHd3dy5jb25jZXB0ZmFjdG9yeS5jb20uYXUKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojCiMgTWFpbnRhaW5lciBzaW5jZSAyMDExIHVwIHRvIDIwMTQ6IEpvbmF0aGFuIFNjaG1pZCwgPGhpQGpvbmF0aGFuc2NobWlkLmRlPgojIFdlYjogd3d3LmpvbmF0aGFuc2NobWlkLmRlCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIwojIFNvbWUgd2Fja29zIHN0YXJ0ZWQgZGVzdHJveWluZyBzdHVmZiBzaW5jZSAyMDEyIGFuZCBzdG9wcGVkIGF0IDIwMTQ6CiMKIyBUYXBpbyBMw7Z5dHR5LCA8dGFwc2FAb3JhbmdlLW1lZGlhLmZpPgojIFdlYjogd3d3Lm9yYW5nZS1tZWRpYS5maQojCiMgR29yYW4gSWxpYywgPHVuaXF1M2VAZ21haWwuY29tPgojIFdlYjogd3d3LmljaC1tYWNoLWRhcy5hdAojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBMSVNFIGlzIGEgQ01TIE1hZGUgU2ltcGxlIG1vZHVsZSB0aGF0IGVuYWJsZXMgdGhlIHdlYiBkZXZlbG9wZXIgdG8gY3JlYXRlCiMgbXVsdGlwbGUgbGlzdHMgdGhyb3VnaG91dCBhIHNpdGUuIEl0IGNhbiBiZSBkdXBsaWNhdGVkIGFuZCBnaXZlbiBmcmllbmRseQojIG5hbWVzIGZvciBlYXNpZXIgY2xpZW50IG1haW50ZW5hbmNlLgojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgQkVHSU5fTElDRU5TRQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIExJU0UKIyBMSVNFIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgTElTRSBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBFTkRfTElDRU5TRQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKLyoqCiAqIHNvdXJjZTogaHR0cDovL3d3dy5waHAubmV0L21hbnVhbC9lbi9mdW5jdGlvbi5mZ2V0Y3N2LnBocCM1NzgwMgogKiAKICogPT4gY2FuIGltcG9ydCBhIGNzdiBmaWxlIGFuZCBpdGVyYXRlIG92ZXIgdGhlIGl0ZW1zCiAqID0+IGFsbG93cyB0byBzcGVjaWZ5IHRoZSBzZXBhcmF0b3IgYW5kIHRoZSBlbmNsb3N1cmUKICogCiAqIFJlcXVpcmVzIGF0IGxlYXN0IFBIUCA0LjMKICogCiAqIEhvd1RvIHVzZSBleGFtcGxlOgoJJGNzdkl0ZXJhdG9yID0gbmV3IENzdkl0ZXJhdG9yKCcvcGF0aC90by9maWxlJywgdHJ1ZSwgJ3wnLCAnIicpOwoJd2hpbGUgKCRjc3ZJdGVyYXRvci0+bmV4dCgpKSB7CgkJcHJpbnRfcigkY3N2SXRlcmF0b3ItPmN1cnJlbnQoKSk7Cgl9CiAqIAogKiBAYXV0aG9yIE1PIG1vcnRhbm9uIGF0IGdtYWlsIGRvdCBjb20sIDE0LU9jdC0yMDA1IDA4OjA1CiAqIEBhdXRob3IgVEsgVG9iaWFzIEtsdWdlLCBodHRwOi8vZW5hcmlvbi5uZXQKICogCiAqIEB2ZXJzaW9uIDEuMSAtIDIwMDYtMDQtMjIgYnkgVEsKICogCQktIGJhY2twb3J0IHRvIFBIUCA0CiAqIAkJLSBhZGRlZCB1c2FnZSBvZiBlbmNsb3N1cmUKICogCQktIGFkZGVkIHN1cHBvcnQgb2YgaGVhZGVycyAKICogQHZlcnNpb24gMS4wIC0gMjAwNS0xMC0xNCBieSBNTwogKiAKICovCgpjbGFzcyBMSVNFQ3N2SXRlcmF0b3IKewogICB2YXIgJFJPV19TSVpFID0gNDA5NjsKICAgLyoqCiAgICAgKiBUaGUgcG9pbnRlciB0byB0aGUgY3ZzIGZpbGUuCiAgICAgKiBAdmFyIHJlc291cmNlCiAgICAgKiBAYWNjZXNzIHByaXZhdGUKICAgICAqLwogICB2YXIgJGZpbGVQb2ludGVyID0gbnVsbDsKICAgLyoqCiAgICAgKiBUaGUgY3VycmVudCBlbGVtZW50LCB3aGljaCB3aWxsCiAgICAgKiBiZSByZXR1cm5lZCBvbiBlYWNoIGl0ZXJhdGlvbi4KICAgICAqIEB2YXIgYXJyYXkKICAgICAqIEBhY2Nlc3MgcHJpdmF0ZQogICAgICovCiAgIHZhciAkY3VycmVudEVsZW1lbnQgPSBudWxsOwogICAvKioKICAgICAqIFRoZSByb3cgY291bnRlci4KICAgICAqIEB2YXIgaW50CiAgICAgKiBAYWNjZXNzIHByaXZhdGUKICAgICAqLwogICB2YXIgJHJvd0NvdW50ZXIgPSBudWxsOwogICAvKioKICAgICAqIFRoZSBkZWxpbWl0ZXIgZm9yIHRoZSBjc3YgZmlsZS4KICAgICAqIEB2YXIgc3RyCiAgICAgKiBAYWNjZXNzIHByaXZhdGUKICAgICAqLwogICB2YXIgJGRlbGltaXRlciA9IG51bGw7CiAgIC8qKgogICAgICogVGhlIGVuY2xvc3VyZSBmb3IgdGhlIGNzdiBmaWxlLgogICAgICogQHZhciBzdHIKICAgICAqIEBhY2Nlc3MgcHJpdmF0ZQogICAgICovCiAgIHZhciAkZW5jbG9zdXJlID0gJyInOwogICAvKioKICAgICAqIFNwZWNpZmllcyBpZiBoZWFkZXJzIHNob3VsZCBiZSByZWFkIGFuZCB1c2VkLgogICAgICogQHZhciBib29sCiAgICAgKiBAYWNjZXNzIHByaXZhdGUKICAgICAqLwogICB2YXIgJHdpdGhIZWFkZXJzID0gZmFsc2U7CiAgIC8qKgogICAgKiBDb250YWlucyB0aGUgaGVhZGVycyBpZiBoZWFkZXJzIGFyZSB1c2VkLgogICAgKiBAdmFyIGFycmF5CiAgICAqIEBhY2Nlc3MgcHJpdmF0ZQogICAgKi8KICAgdmFyICRoZWFkZXIgPSBhcnJheSgpOwoKCiAgIC8qKgogICAqIFRoaXMgaXMgdGhlIGNvbnN0cnVjdG9yLiBJdCB0cmllcyB0byBvcGVuIHRoZSBjc3YgZmlsZS4gCiAgICogVGhlIG1ldGhvZCB0aHJvd3MgYW4gZXhjZXB0aW9uIG9uIGZhaWx1cmUuCiAgICoKICAgKiBAYWNjZXNzIHB1YmxpYwogICAqIEBwYXJhbSBzdHIgJGZpbGUgVGhlIGNzdiBmaWxlLgogICAqIEBwYXJhbSBib29sICR3aXRoSGVhZGVycyBTcGVjaWZ5IGlmIGZpbGUgY29udGFpbnMgaGVhZGVyIGFuZCBzaG91bGQgYmUgdXNlZC4KICAgKiBAcGFyYW0gc3RyICRkZWxpbWl0ZXIgVGhlIGRlbGltaXRlci4KICAgKiBAcGFyYW0gc3RyICRlbmNsb3N1cmUgVGhlIGVuY2xvc3VyZS4KICAgKgogICAqIEB0aHJvd3MgRXhjZXB0aW9uCiAgICovCiAgIGZ1bmN0aW9uIF9fY29uc3RydWN0KCRmaWxlLCAkd2l0aEhlYWRlcnMgPSB0cnVlLCAkZGVsaW1pdGVyPScsJywgJGVuY2xvc3VyZT0nIicpCiAgIHsKICAgICAgICR0aGlzLT5maWxlUG9pbnRlciA9IEBmb3BlbigkZmlsZSwgJ3InKTsKICAgICAgIGlmICgkdGhpcy0+ZmlsZVBvaW50ZXIgPT09IGZhbHNlKSAKICAgICAgIHsKICAgICAgICAgICB0aHJvdyBuZXcgXExJU0VcRXhjZXB0aW9uKCdUaGUgZmlsZSAiJyAuICRmaWxlIC4gJyIgY2Fubm90IGJlIHJlYWQuJyk7CiAgICAgICAJCS8vZGllKCdUaGUgZmlsZSAiJyAuICRmaWxlIC4gJyIgY2Fubm90IGJlIHJlYWQuJyk7CiAgICAgICB9CiAgICAgICAkdGhpcy0+ZGVsaW1pdGVyID0gJGRlbGltaXRlcjsKICAgICAgICR0aGlzLT5lbmNsb3N1cmUgPSAkZW5jbG9zdXJlOwogICAgICAgJHRoaXMtPndpdGhIZWFkZXJzID0gJHdpdGhIZWFkZXJzOwogICB9CgogICAvKioKICAgKiBUaGlzIG1ldGhvZCByZXNldHMgdGhlIGZpbGUgcG9pbnRlci4KICAgKgogICAqIEBhY2Nlc3MgcHVibGljCiAgICovCiAgIGZ1bmN0aW9uIHJld2luZCgpIHsKICAgICAgICR0aGlzLT5yb3dDb3VudGVyID0gMDsKICAgICAgIHJld2luZCgkdGhpcy0+ZmlsZVBvaW50ZXIpOwogICB9CgogICAvKioKICAgKiBUaGlzIG1ldGhvZCByZXR1cm5zIHRoZSBjdXJyZW50IGNzdiByb3cgYXMgYSAyIGRpbWVuc2lvbmFsIGFycmF5CiAgICoKICAgKiBAYWNjZXNzIHB1YmxpYwogICAqIEByZXR1cm4gYXJyYXkgVGhlIGN1cnJlbnQgY3N2IHJvdyBhcyBhIDIgZGltZW5zaW9uYWwgYXJyYXkKICAgKi8KICAgZnVuY3Rpb24gY3VycmVudCgpIHsKCSAgIGlmICgkdGhpcy0+d2l0aEhlYWRlcnMgJiYgJHRoaXMtPnJvd0NvdW50ZXIgPT0gMCkgeyAgIAkKICAgICAgIAkJJHRoaXMtPmhlYWRlciA9ICR0aGlzLT5jdXJyZW50RWxlbWVudDsKICAgICAgIAkJJHRoaXMtPm5leHQoKTsKCSAgIH0JICAgCgogICAgICAgLy8gY2hlY2sgZm9yIGludmFsaWQgY3VycmVudEVsZW1lbnQKICAgICAgIGlmICghaXNfYXJyYXkoJHRoaXMtPmN1cnJlbnRFbGVtZW50KSkgewogICAgICAgCQl2YXJfZHVtcCgkdGhpcy0+Y3VycmVudEVsZW1lbnQpOwogICAgICAgCQlyZXR1cm4gJHRoaXMtPmN1cnJlbnRFbGVtZW50OwogICAgICAgfQoKCSAgIC8vIGhhbmRsZSBoZWFkZXJzICAgICAgIAogICAgICAgaWYgKCR0aGlzLT53aXRoSGVhZGVycykgewogICAgICAgCQkvLyBhcHBseSBoZWFkZXJzIHRvIGN1cnJlbnRFbGVtZW50CgkJCSR0bXAgPSBhcnJheSgpOyAgICAgICAJCQogICAgICAgCQkKICAgICAgIAkJZm9yZWFjaCAoJHRoaXMtPmN1cnJlbnRFbGVtZW50IGFzICRpID0+ICR2YWx1ZSkgewogICAgICAgCQkJLy8gJHRtcFskaV0gPSAkdmFsdWU7IC8vIHVuY29tbWVudCB0aGlzIGxpbmUgdG8gdXNlIGluZGljZXMgYXMgYXJyYXkga2V5cwoJCQkJaWYoaXNzZXQoJHRoaXMtPmhlYWRlclskaV0pKQoJCQkJCSR0bXBbJHRoaXMtPmhlYWRlclskaV1dID0gJHZhbHVlOwogICAgICAgCQl9CiAgICAgICAJCSR0aGlzLT5jdXJyZW50RWxlbWVudCA9ICR0bXA7CiAgICAgICB9CiAgICAgICAkdGhpcy0+cm93Q291bnRlcisrOwogICAgICAgcmV0dXJuICR0aGlzLT5jdXJyZW50RWxlbWVudDsKICAgfSAgCiAgIAogICAvKioKICAgKiBUaGlzIG1ldGhvZCByZXR1cm5zIHRoZSBjdXJyZW50IHJvdyBudW1iZXIuCiAgICoKICAgKiBAYWNjZXNzIHB1YmxpYwogICAqIEByZXR1cm4gaW50IFRoZSBjdXJyZW50IHJvdyBudW1iZXIKICAgKi8KICAgZnVuY3Rpb24ga2V5KCkgewogICAgICAgcmV0dXJuICR0aGlzLT5yb3dDb3VudGVyOwogICB9CgogIC8qKgogICAqIFRoaXMgbWV0aG9kIGNoZWNrcyBpZiB0aGUgZW5kIG9mIGZpbGUgaXMgcmVhY2hlZC4KICAgKgogICAqIEBhY2Nlc3MgcHVibGljCiAgICogQHJldHVybiBib29sZWFuIFJldHVybnMgdHJ1ZSBvbiBFT0YgcmVhY2hlZCwgZmFsc2Ugb3RoZXJ3aXNlLgogICAqLwogICBmdW5jdGlvbiBuZXh0KCkgewogICAgICAgJHRoaXMtPmN1cnJlbnRFbGVtZW50ID0gQGZnZXRjc3YoJHRoaXMtPmZpbGVQb2ludGVyLCAkdGhpcy0+Uk9XX1NJWkUsICR0aGlzLT5kZWxpbWl0ZXIsICR0aGlzLT5lbmNsb3N1cmUpOwogICAgICAgLy8gZW9mIGlzIHJlYWNoZWQgPD0+IHJlc3VsdCBvZiBmZ2V0Y3N2IGlzIGZhbHNlIAogICAgICAgcmV0dXJuICR0aGlzLT5jdXJyZW50RWxlbWVudCAhPT0gRkFMU0U7CiAgIH0KCiAgIC8qKgogICAgICogVGhpcyBtZXRob2QgY2hlY2tzIGlmIHRoZSBuZXh0IHJvdyBpcyBhIHZhbGlkIHJvdy4KICAgICAqCiAgICAgKiBAYWNjZXNzIHB1YmxpYwogICAgICogQHJldHVybiBib29sZWFuIElmIHRoZSBuZXh0IHJvdyBpcyBhIHZhbGlkIHJvdy4KICAgICAqLwogICBmdW5jdGlvbiB2YWxpZCgpIHsKICAgICAgIGlmICghJHRoaXMtPm5leHQoKSkgewogICAgICAgICAgICR0aGlzLT50ZWFyRHJvcCgpOwogICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgIH0KICAgICAgIHJldHVybiB0cnVlOwogICB9CiAgIAogICAvKioKICAgICogVGhpcyBtZXRob2QgY2xvc2VzIGFsbCBvcGVuIGZpbGVzIGFuZCBzaHV0cyB0aGlzIG9iamVjdCBkb3duLgogICAgKiAKICAgICogQGFjY2VzcyBwdWJsaWMKICAgICogQHJldHVybiB2b2lkIG5vIHJlc3VsdAogICAgKi8KICAgZnVuY3Rpb24gdGVhckRvd24oKSB7CiAgIAkgICBmY2xvc2UoJHRoaXMtPmZpbGVQb2ludGVyKTsKICAgfQp9Cj8+]]></data>
	</file>
	<file>
	  <filename>/lib/class.LISEDuplicator.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBMSVNFIC0gTGlzdCBJdCBTcGVjaWFsIEVkaXRpb24KIyBWZXJzaW9uIDEuMgojIEEgZm9yayBvZiBMaXN0STIKIyBtYWludGFpbmVkIGJ5IEZlcm5hbmRvIE1vcmdhZG8gQUtBIEpvIE1vcmcKIyBzaW5jZSAyMDE1CiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBPcmlnaW5hbCBBdXRob3I6IEJlbiBNYWxlbiwgPGJlbkBjb25jZXB0ZmFjdG9yeS5jb20uYXU+CiMgQ28tTWFpbnRhaW5lcjogU2ltb24gUmFkZm9yZCwgPHNpbW9uQGNvbmNlcHRmYWN0b3J5LmNvbS5hdT4KIyBXZWI6IHd3dy5jb25jZXB0ZmFjdG9yeS5jb20uYXUKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojCiMgTWFpbnRhaW5lciBzaW5jZSAyMDExIHVwIHRvIDIwMTQ6IEpvbmF0aGFuIFNjaG1pZCwgPGhpQGpvbmF0aGFuc2NobWlkLmRlPgojIFdlYjogd3d3LmpvbmF0aGFuc2NobWlkLmRlCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIwojIFNvbWUgd2Fja29zIHN0YXJ0ZWQgZGVzdHJveWluZyBzdHVmZiBzaW5jZSAyMDEyIGFuZCBzdG9wcGVkIGF0IDIwMTQ6CiMKIyBUYXBpbyBMw7Z5dHR5LCA8dGFwc2FAb3JhbmdlLW1lZGlhLmZpPgojIFdlYjogd3d3Lm9yYW5nZS1tZWRpYS5maQojCiMgR29yYW4gSWxpYywgPHVuaXF1M2VAZ21haWwuY29tPgojIFdlYjogd3d3LmljaC1tYWNoLWRhcy5hdAojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBMSVNFIGlzIGEgQ01TIE1hZGUgU2ltcGxlIG1vZHVsZSB0aGF0IGVuYWJsZXMgdGhlIHdlYiBkZXZlbG9wZXIgdG8gY3JlYXRlCiMgbXVsdGlwbGUgbGlzdHMgdGhyb3VnaG91dCBhIHNpdGUuIEl0IGNhbiBiZSBkdXBsaWNhdGVkIGFuZCBnaXZlbiBmcmllbmRseQojIG5hbWVzIGZvciBlYXNpZXIgY2xpZW50IG1haW50ZW5hbmNlLgojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgQkVHSU5fTElDRU5TRQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIExJU0UKIyBMSVNFIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgTElTRSBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBFTkRfTElDRU5TRQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKZmluYWwgY2xhc3MgTElTRUR1cGxpY2F0b3IKewoKCSMtLS0tLS0tLS0tLS0tLS0tLS0tLS0KCSMgQ29uc3RhbnRzCgkjLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgCiAgY29uc3QgTU9EX1BSRUZJWCAgICAgICAgICA9ICdMSVNFJzsKICBjb25zdCBQTEFDRUhPTERFUiAgICAgICAgID0gJ1BMQUNFX0hPTERFUl9fXyc7CiAgY29uc3QgVkVSU0lPTl9QTEFDRUhPTERFUiA9ICdWRVJTSU9OX19fJzsKCgkjLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgkjIEF0dHJpYnV0ZXMKCSMtLS0tLS0tLS0tLS0tLS0tLS0tLS0KCglwcml2YXRlICRzcmM7Cglwcml2YXRlICRkc3Q7Cglwcml2YXRlICRtb2RuYW1lOwoJcHJpdmF0ZSBzdGF0aWMgJF9pbnZhbGlkID0gYXJyYXkoJy4nLCAnLi4nKTsKCgkjLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgkjIE1hZ2ljIG1ldGhvZHMKCSMtLS0tLS0tLS0tLS0tLS0tLS0tLS0JCQoJCQoJcHVibGljIGZ1bmN0aW9uIF9fY29uc3RydWN0KCRtb2RuYW1lID0gc2VsZjo6UExBQ0VIT0xERVIpIAoJewoJCSR0aGlzLT5tb2RuYW1lID0gc2VsZjo6TU9EX1BSRUZJWCAuICRtb2RuYW1lOwoJCSR0aGlzLT5zcmMgPSBkaXJuYW1lKGRpcm5hbWUoX19GSUxFX18pKSAuIERJUkVDVE9SWV9TRVBBUkFUT1IgLiAnZHVwbGljYXRlJzsKCQkkdGhpcy0+ZHN0ID0gZGlybmFtZShkaXJuYW1lKGRpcm5hbWUoX19GSUxFX18pKSkgLiBESVJFQ1RPUllfU0VQQVJBVE9SIC4gJHRoaXMtPm1vZG5hbWU7Cgl9CgoJIy0tLS0tLS0tLS0tLS0tLS0tLS0tLQoJIyBTZXQvR2V0CgkjLS0tLS0tLS0tLS0tLS0tLS0tLS0tCQkKCQoJcHVibGljIGZ1bmN0aW9uIFNldE1vZHVsZSgkbmFtZSkKCXsKCQkkdGhpcy0+bW9kbmFtZSA9ICRuYW1lOwoJfQoJCglwdWJsaWMgZnVuY3Rpb24gU2V0U291cmNlKCRuYW1lKQoJewoJCSR0aGlzLT5zcmMgPSAkbmFtZTsKCX0KCglwdWJsaWMgZnVuY3Rpb24gU2V0RGVzdGluYXRpb24oJG5hbWUpCgl7CgkJJHRoaXMtPmRzdCA9ICRuYW1lOwoJfQkKCQoJIy0tLS0tLS0tLS0tLS0tLS0tLS0tLQoJIyBSdW5uZXIKCSMtLS0tLS0tLS0tLS0tLS0tLS0tLS0KCQoJcHVibGljIGZ1bmN0aW9uIFJ1bigpCgl7CgkJJHRoaXMtPkNvcHlSZWN1cnNpdmUoJHRoaXMtPnNyYywgJHRoaXMtPmRzdCk7CgkJJHRoaXMtPlJlbmFtZSgpOwoJCSR0aGlzLT5GaXhNb2R1bGVmaWxlKCk7CgkJcmV0dXJuICR0aGlzLT5tb2RuYW1lOwoJfQoJCQoJIy0tLS0tLS0tLS0tLS0tLS0tLS0tLQoJIyBGaWxlIGhhbmRsaW5nIG1ldGhvZHMKCSMtLS0tLS0tLS0tLS0tLS0tLS0tLS0JCQoKCXByaXZhdGUgZnVuY3Rpb24gQ29weVJlY3Vyc2l2ZSgkc3JjLCAkZHN0KQoJewoJCSRkaXIgPSBvcGVuZGlyKCRzcmMpOyAvLyA8LSBUaHJvdyBleGNlcHRpb24gb24gZmFpbHVyZT8KCQlAbWtkaXIoJGRzdCk7IC8vIDwtIFRocm93IGV4Y2VwdGlvbiBvbiBmYWlsdXJlPwoJCQoJCXdoaWxlKGZhbHNlICE9PSAoICRmaWxlID0gcmVhZGRpcigkZGlyKSkgKSB7CgkJCgkJCWlmIChpbl9hcnJheSgkZmlsZSwgc2VsZjo6JF9pbnZhbGlkKSkgY29udGludWU7IC8vIDwtIFNraXAgc3R1ZmYgd2UgbmV2ZXIgYWxsb3cgdG8gY29weQoKCQkJaWYgKCBpc19kaXIoJHNyYyAuIERJUkVDVE9SWV9TRVBBUkFUT1IgLiAkZmlsZSkgKSB7IAoJCQkJJHRoaXMtPkNvcHlSZWN1cnNpdmUoJHNyYyAuIERJUkVDVE9SWV9TRVBBUkFUT1IgLiAkZmlsZSwgJGRzdCAuIERJUkVDVE9SWV9TRVBBUkFUT1IgLiAkZmlsZSk7IAoJCQl9IAoJCQllbHNlIHsgCgkJCQlAY29weSgkc3JjIC4gRElSRUNUT1JZX1NFUEFSQVRPUiAuICRmaWxlLCAkZHN0IC4gRElSRUNUT1JZX1NFUEFSQVRPUiAuICRmaWxlKTsgLy8gPC0gVGhyb3cgZXhjZXB0aW9uIG9uIGZhaWx1cmU/CgkJCX0gCgkJfSAKCQkKCQljbG9zZWRpcigkZGlyKTsgCgl9CgkKCXByaXZhdGUgZnVuY3Rpb24gUmVuYW1lKCkKCXsKCQlAcmVuYW1lKCR0aGlzLT5kc3QgLiBESVJFQ1RPUllfU0VQQVJBVE9SIC4gc2VsZjo6UExBQ0VIT0xERVIgLiAnLnBocCcsIAoJCQkkdGhpcy0+ZHN0IC4gRElSRUNUT1JZX1NFUEFSQVRPUiAuICR0aGlzLT5tb2RuYW1lIC4nLm1vZHVsZS5waHAnKTsgLy8gPC0gVGhyb3cgZXhjZXB0aW9uIG9uIGZhaWx1cmU/Cgl9CgkKCXByaXZhdGUgZnVuY3Rpb24gRml4TW9kdWxlZmlsZSgpCgl7CiAgICAkZmlsZW5hbWUgPSAkdGhpcy0+ZHN0IC4gRElSRUNUT1JZX1NFUEFSQVRPUiAuICR0aGlzLT5tb2RuYW1lIC4nLm1vZHVsZS5waHAnOwogICAgJGxpc2VfdmVyc2lvbiA9IFxjbXNfdXRpbHM6OmdldF9tb2R1bGUoJ0xJU0UnKS0+R2V0VmVyc2lvbigpOwogICAgCiAgICAvLyBSZXBsYWNlbWVudHMKICAgICRfY29udGVudHMgPSBmaWxlX2dldF9jb250ZW50cygkZmlsZW5hbWUpOyAvLyA8LSBUaHJvdyBleGNlcHRpb24gb24gZmFpbHVyZT8KICAgICRfY29udGVudHMgPSBzdHJfcmVwbGFjZShzZWxmOjpQTEFDRUhPTERFUiwgJHRoaXMtPm1vZG5hbWUsICRfY29udGVudHMpOwogICAgJF9jb250ZW50cyA9IHN0cl9yZXBsYWNlKHNlbGY6OlZFUlNJT05fUExBQ0VIT0xERVIsICInIiAuICRsaXNlX3ZlcnNpb24gLiAiJyIsICRfY29udGVudHMpOwogICAgCiAgICAvLyBXcml0ZSBmaWxlCiAgICAkZmggPSBAZm9wZW4oJGZpbGVuYW1lLCAndycpOwogICAgaWYoISRmaCkgdGhyb3cgbmV3IFxMSVNFXEV4Y2VwdGlvbignRXJyb3I6ICcgLiBfX0NMQVNTX18gLiAnIC0gJyAuIF9fTUVUSE9EX18gLiAnIC0+IGZhaWxlZCB0byBvcGVuICcgLiAkZmlsZW5hbWUsIFxMSVNFXEVycm9yOjpESVNDUkVURSApOwogICAgCiAgICB0cnkKICAgIHsKICAgICAgaWYoICFmd3JpdGUoJGZoLCAkX2NvbnRlbnRzKSApIHRocm93IG5ldyBcTElTRVxFeGNlcHRpb24oJ0Vycm9yOiAnIC4gX19DTEFTU19fIC4gJyAtICcgLiBfX01FVEhPRF9fIC4gJyAtPiBmYWlsZWQgdG8gd3JpdGUgdG8gJyAuICRmaWxlbmFtZSwgXExJU0VcRXJyb3I6OkRJU0NSRVRFICk7CiAgICB9CiAgICBjYXRjaChFeGNlcHRpb24gJGUpCiAgICB7CiAgICAgICMgbWFrZSBzdXJlIHlvdSBjbG9zZSB0aGUgZmlsZSBhbmQgcmV0aHJvdyBleGNlcHRpb24KICAgICAgZmNsb3NlKCRmaCk7CiAgICAgIHRocm93ICRlOwogICAgfQogIH0KCQp9IC8vIGVuZCBvZiBjbGFzcw==]]></data>
	</file>
	<file>
	  <filename>/lib/class.LISEEventHandlerBase.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHANCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQojIExJU0UgLSBMaXN0IEl0IFNwZWNpYWwgRWRpdGlvbg0KIyBWZXJzaW9uIDEuMg0KIyBBIGZvcmsgb2YgTGlzdEkyDQojIG1haW50YWluZWQgYnkgRmVybmFuZG8gTW9yZ2FkbyBBS0EgSm8gTW9yZw0KIyBzaW5jZSAyMDE1DQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIw0KIyBPcmlnaW5hbCBBdXRob3I6IEJlbiBNYWxlbiwgPGJlbkBjb25jZXB0ZmFjdG9yeS5jb20uYXU+DQojIENvLU1haW50YWluZXI6IFNpbW9uIFJhZGZvcmQsIDxzaW1vbkBjb25jZXB0ZmFjdG9yeS5jb20uYXU+DQojIFdlYjogd3d3LmNvbmNlcHRmYWN0b3J5LmNvbS5hdQ0KIw0KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCiMNCiMgTWFpbnRhaW5lciBzaW5jZSAyMDExIHVwIHRvIDIwMTQ6IEpvbmF0aGFuIFNjaG1pZCwgPGhpQGpvbmF0aGFuc2NobWlkLmRlPg0KIyBXZWI6IHd3dy5qb25hdGhhbnNjaG1pZC5kZQ0KIw0KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCiMNCiMgU29tZSB3YWNrb3Mgc3RhcnRlZCBkZXN0cm95aW5nIHN0dWZmIHNpbmNlIDIwMTIgYW5kIHN0b3BwZWQgYXQgMjAxNDoNCiMNCiMgVGFwaW8gTMO2eXR0eSwgPHRhcHNhQG9yYW5nZS1tZWRpYS5maT4NCiMgV2ViOiB3d3cub3JhbmdlLW1lZGlhLmZpDQojDQojIEdvcmFuIElsaWMsIDx1bmlxdTNlQGdtYWlsLmNvbT4NCiMgV2ViOiB3d3cuaWNoLW1hY2gtZGFzLmF0DQojDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIw0KIyBMSVNFIGlzIGEgQ01TIE1hZGUgU2ltcGxlIG1vZHVsZSB0aGF0IGVuYWJsZXMgdGhlIHdlYiBkZXZlbG9wZXIgdG8gY3JlYXRlDQojIG11bHRpcGxlIGxpc3RzIHRocm91Z2hvdXQgYSBzaXRlLiBJdCBjYW4gYmUgZHVwbGljYXRlZCBhbmQgZ2l2ZW4gZnJpZW5kbHkNCiMgbmFtZXMgZm9yIGVhc2llciBjbGllbnQgbWFpbnRlbmFuY2UuDQojDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIyBCRUdJTl9MSUNFTlNFDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIyBUaGlzIGZpbGUgaXMgcGFydCBvZiBMSVNFDQojIExJU0UgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5DQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5DQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yDQojIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uDQojDQojIExJU0UgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLA0KIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZg0KIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlDQojIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuDQojIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlDQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlDQojIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcgVVNBDQojIE9yIHJlYWQgaXQgb25saW5lOiBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwNCiMNCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQojIEVORF9MSUNFTlNFDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCiMgQ3VycmVudCBhdmFpbGFibGUgZXZlbnRzIGluIHN5c3RlbToNCiMJLSBPbkl0ZW1Mb2FkKExJU0UgJiRtb2QpDQojCS0gT25JdGVtU2F2ZShMSVNFICYkbW9kKQ0KIwktIE9uSXRlbURlbGV0ZShMSVNFICYkbW9kKQ0KIwktIEl0ZW1TYXZlUHJlUHJvY2VzcyhBcnJheSAmJGVycm9ycywgQXJyYXkgJiRwYXJhbXMpIA0KIwktIEl0ZW1TYXZlUG9zdFByb2Nlc3MoQXJyYXkgJiRlcnJvcnMsIEFycmF5ICYkcGFyYW1zKQ0KIw0KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCmNsYXNzIExJU0VFdmVudEhhbmRsZXJCYXNlDQp7DQoJIy0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KCSMgQXR0cmlidXRlcw0KCSMtLS0tLS0tLS0tLS0tLS0tLS0tLS0NCg0KCXByaXZhdGUgJF9maWVsZDsNCgkNCgkjLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQoJIyBNYWdpYyBtZXRob2RzDQoJIy0tLS0tLS0tLS0tLS0tLS0tLS0tLQkJDQoJDQoJcHVibGljIGZ1bmN0aW9uIF9fY29uc3RydWN0KExJU0VGaWVsZGRlZkJhc2UgJiRmaWVsZCkNCgl7DQoJCSR0aGlzLT5fZmllbGQJIAk9ICRmaWVsZDsNCgl9DQoJDQoJcHVibGljIGZ1bmN0aW9uIF9fY2FsbCgkbmFtZSwgJGFyZ3MpDQoJew0KCQlpZihtZXRob2RfZXhpc3RzKCR0aGlzLT5fZmllbGQsICRuYW1lKSkNCgkJCXJldHVybiBjYWxsX3VzZXJfZnVuY19hcnJheShhcnJheSgkdGhpcy0+X2ZpZWxkLCAkbmFtZSksICRhcmdzKTsNCgkNCgkJcmV0dXJuIEZBTFNFOw0KCX0NCg0KCSMtLS0tLS0tLS0tLS0tLS0tLS0tLS0NCgkjIE92ZXJ3cml0YWJsZSBldmVudHMNCgkjLS0tLS0tLS0tLS0tLS0tLS0tLS0tCQkNCg0KCS8qKg0KCSAqIExJU0UgRmllbGQgRGF0YWJhc2UgU2F2ZSBtZXRob2QNCgkgKg0KCSAqIEByZXR1cm4gdm9pZA0KCSAqLwkNCglwdWJsaWMgZnVuY3Rpb24gT25JdGVtU2F2ZShMSVNFICRtb2QpDQoJew0KCQkkZGIgPSBjbXNtcygpLT5HZXREYigpOw0KCQ0KCQkkcXVlcnkgID0gJ0RFTEVURSBGUk9NICcgLiBjbXNfZGJfcHJlZml4KCkgLiAnbW9kdWxlXycgLiAkbW9kLT5fR2V0TW9kdWxlQWxpYXMoKSAuICdfZmllbGR2YWwgV0hFUkUgaXRlbV9pZCA9ID8gQU5EIGZpZWxkZGVmX2lkID0gPyc7DQoJCSRyZXN1bHQgPSAkZGItPkV4ZWN1dGUoJHF1ZXJ5LCBhcnJheSgkdGhpcy0+R2V0UGFyZW50SXRlbSgpLT5pdGVtX2lkLCAkdGhpcy0+R2V0SWQoKSkpOw0KCQkJDQoJCWlmICghJHJlc3VsdCkNCiAgICAgIHRocm93IG5ldyBcTElTRVxFeGNlcHRpb24oJGRiLT5FcnJvck5vKCkgLiAnIC0gJyAuICRkYi0+RXJyb3JNc2coKSAuICcgLSBRdWVyeTogJyAuICRkYi0+c3FsLCBcTElTRVxFcnJvcjo6RElTQ1JFVEVfREIgKTsgDQoJDQoJCSRxdWVyeSAgPSAnSU5TRVJUIElOVE8gJyAuIGNtc19kYl9wcmVmaXgoKSAuICdtb2R1bGVfJyAuICRtb2QtPl9HZXRNb2R1bGVBbGlhcygpIC4gJ19maWVsZHZhbCAoaXRlbV9pZCwgZmllbGRkZWZfaWQsIHZhbHVlX2luZGV4LCB2YWx1ZSkgVkFMVUVTICg/LD8sPyw/KSc7DQoJCSRpbmRleCA9IDA7DQoJCQ0KCQlmb3JlYWNoKCR0aGlzLT5HZXRWYWx1ZSgpIGFzICRvbmVfdmFsKSB7DQoJCQ0KCQkJaWYoISRvbmVfdmFsKQ0KCQkJCWNvbnRpbnVlOw0KCQkNCgkJCSRyZXN1bHQgPSAkZGItPkV4ZWN1dGUoJHF1ZXJ5LCBhcnJheSgkdGhpcy0+R2V0UGFyZW50SXRlbSgpLT5pdGVtX2lkLCAkdGhpcy0+R2V0SWQoKSwgJGluZGV4LCAkb25lX3ZhbCkpOw0KDQoJCQlpZiAoISRyZXN1bHQpDQogICAgICAgIHRocm93IG5ldyBcTElTRVxFeGNlcHRpb24oJGRiLT5FcnJvck5vKCkgLiAnIC0gJyAuICRkYi0+RXJyb3JNc2coKSAuICcgLSBRdWVyeTogJyAuICRkYi0+c3FsLCBcTElTRVxFcnJvcjo6RElTQ1JFVEVfREIgKTsgDQoNCgkJCSRpbmRleCsrOwkJCQkJCQ0KCQl9DQoJfQ0KDQoJLyoqDQoJICogTElTRSBGaWVsZCBEYXRhYmFzZSBMb2FkIG1ldGhvZA0KCSAqDQoJICogQHJldHVybiB2b2lkDQoJICovCQkNCglwdWJsaWMgZnVuY3Rpb24gT25JdGVtTG9hZChMSVNFICYkbW9kKQ0KCXsNCgkJJGRiID0gY21zbXMoKS0+R2V0RGIoKTsNCgkNCgkJJHF1ZXJ5ID0gIlNFTEVDVCB2YWx1ZV9pbmRleCwgdmFsdWUsIGRhdGEgRlJPTSAiIC4gY21zX2RiX3ByZWZpeCgpIC4gIm1vZHVsZV8iIC4gJG1vZC0+X0dldE1vZHVsZUFsaWFzKCkgLiAiX2ZpZWxkdmFsIFdIRVJFIGZpZWxkZGVmX2lkID0gPyBBTkQgaXRlbV9pZCA9ID8iOw0KCQkkZGJyID0gJGRiLT5FeGVjdXRlKCRxdWVyeSwgYXJyYXkoJHRoaXMtPkdldElkKCksICR0aGlzLT5HZXRQYXJlbnRJdGVtKCktPml0ZW1faWQpKTsNCgkNCgkJJGlucHV0X2FyciA9IGFycmF5KCk7DQoJCXdoaWxlKCRkYnIgJiYgISRkYnItPkVPRikgew0KCQkNCgkJCWlmKCFpc19udWxsKCRkYnItPmZpZWxkc1snZGF0YSddKSkgew0KCQkJDQoJCQkJJHRoaXMtPlNldFZhbHVlKHVuc2VyaWFsaXplKCRkYnItPmZpZWxkc1snZGF0YSddKSk7DQoJCQkJcmV0dXJuOw0KCQkJfQ0KCQkNCgkJCSRpbnB1dF9hcnJbJGRici0+ZmllbGRzWyd2YWx1ZV9pbmRleCddXSA9ICRkYnItPmZpZWxkc1sndmFsdWUnXTsNCgkJCSRkYnItPk1vdmVOZXh0KCk7DQoJCX0NCgkJDQoJCWlmKCRkYnIpIA0KCQkJJGRici0+Q2xvc2UoKTsJCQkNCgkJCQ0KCQkkdGhpcy0+U2V0VmFsdWUoJGlucHV0X2Fycik7IC8vIDwtIEFsd2F5cyBzZXQgYXJyYXksIHJlZ2FyZGxlc3Mgb2YgY29udGVudHMsIGNoZWNrIGlmIHRoaXMgY2FuIGZhaWwuCQ0KCX0JDQoNCgkvKioNCgkgKiBFeGVjdXRlZCBpbiBlZGl0X2l0ZW0gYWN0aW9uLiBKdXN0IGJlZm9yZSBkYXRhYmFzZSBzYXZlIHByb2Nlc3MgaXMgYWJvdXQgdG8gdGFrZSBwbGFjZS4NCgkgKg0KCSAqIEByZXR1cm4gdm9pZA0KCSAqLwkNCglwdWJsaWMgZnVuY3Rpb24gSXRlbVNhdmVQcmVQcm9jZXNzKCYkZXJyb3JzLCAmJHBhcmFtcykgDQoJew0KCQkkdGhpcy0+X2ZpZWxkLT5WYWxpZGF0ZSgkZXJyb3JzKTsNCgl9CQ0KDQoJIy0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KCSMgVXRpbGl0eSBtZXRob2RzDQoJIy0tLS0tLS0tLS0tLS0tLS0tLS0tLQkNCg0KCXByb3RlY3RlZCBmdW5jdGlvbiBHZXRGaWVsZCgpDQoJew0KCQlyZXR1cm4gJHRoaXMtPl9maWVsZDsNCgl9DQoNCn0gLy8gZW5kIG9mIGNsYXNzDQoNCj8+]]></data>
	</file>
	<file>
	  <filename>/lib/class.LISEException.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBMSVNFIC0gTGlzdCBJdCBTcGVjaWFsIEVkaXRpb24KIyBWZXJzaW9uIDEuMgojIEEgZm9yayBvZiBMaXN0STIKIyBtYWludGFpbmVkIGJ5IEZlcm5hbmRvIE1vcmdhZG8gQUtBIEpvIE1vcmcKIyBzaW5jZSAyMDE1CiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBPcmlnaW5hbCBBdXRob3I6IEJlbiBNYWxlbiwgPGJlbkBjb25jZXB0ZmFjdG9yeS5jb20uYXU+CiMgQ28tTWFpbnRhaW5lcjogU2ltb24gUmFkZm9yZCwgPHNpbW9uQGNvbmNlcHRmYWN0b3J5LmNvbS5hdT4KIyBXZWI6IHd3dy5jb25jZXB0ZmFjdG9yeS5jb20uYXUKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojCiMgTWFpbnRhaW5lciBzaW5jZSAyMDExIHVwIHRvIDIwMTQ6IEpvbmF0aGFuIFNjaG1pZCwgPGhpQGpvbmF0aGFuc2NobWlkLmRlPgojIFdlYjogd3d3LmpvbmF0aGFuc2NobWlkLmRlCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIwojIFNvbWUgd2Fja29zIHN0YXJ0ZWQgZGVzdHJveWluZyBzdHVmZiBzaW5jZSAyMDEyIGFuZCBzdG9wcGVkIGF0IDIwMTQ6CiMKIyBUYXBpbyBMw7Z5dHR5LCA8dGFwc2FAb3JhbmdlLW1lZGlhLmZpPgojIFdlYjogd3d3Lm9yYW5nZS1tZWRpYS5maQojCiMgR29yYW4gSWxpYywgPHVuaXF1M2VAZ21haWwuY29tPgojIFdlYjogd3d3LmljaC1tYWNoLWRhcy5hdAojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBMSVNFIGlzIGEgQ01TIE1hZGUgU2ltcGxlIG1vZHVsZSB0aGF0IGVuYWJsZXMgdGhlIHdlYiBkZXZlbG9wZXIgdG8gY3JlYXRlCiMgbXVsdGlwbGUgbGlzdHMgdGhyb3VnaG91dCBhIHNpdGUuIEl0IGNhbiBiZSBkdXBsaWNhdGVkIGFuZCBnaXZlbiBmcmllbmRseQojIG5hbWVzIGZvciBlYXNpZXIgY2xpZW50IG1haW50ZW5hbmNlLgojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgQkVHSU5fTElDRU5TRQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIExJU0UKIyBMSVNFIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgTElTRSBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBFTkRfTElDRU5TRQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIGRlcHJlY2F0ZWQKY2xhc3MgTElTRUV4Y2VwdGlvbiBleHRlbmRzIFNtYXJ0eUV4Y2VwdGlvbiB7fSAgCj8+]]></data>
	</file>
	<file>
	  <filename>/lib/class.LISEFielddefArray.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBMSVNFIC0gTGlzdCBJdCBTcGVjaWFsIEVkaXRpb24KIyBWZXJzaW9uIDEuMgojIEEgZm9yayBvZiBMaXN0STIKIyBtYWludGFpbmVkIGJ5IEZlcm5hbmRvIE1vcmdhZG8gQUtBIEpvIE1vcmcKIyBzaW5jZSAyMDE1CiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBPcmlnaW5hbCBBdXRob3I6IEJlbiBNYWxlbiwgPGJlbkBjb25jZXB0ZmFjdG9yeS5jb20uYXU+CiMgQ28tTWFpbnRhaW5lcjogU2ltb24gUmFkZm9yZCwgPHNpbW9uQGNvbmNlcHRmYWN0b3J5LmNvbS5hdT4KIyBXZWI6IHd3dy5jb25jZXB0ZmFjdG9yeS5jb20uYXUKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojCiMgTWFpbnRhaW5lciBzaW5jZSAyMDExIHVwIHRvIDIwMTQ6IEpvbmF0aGFuIFNjaG1pZCwgPGhpQGpvbmF0aGFuc2NobWlkLmRlPgojIFdlYjogd3d3LmpvbmF0aGFuc2NobWlkLmRlCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIwojIFNvbWUgd2Fja29zIHN0YXJ0ZWQgZGVzdHJveWluZyBzdHVmZiBzaW5jZSAyMDEyIGFuZCBzdG9wcGVkIGF0IDIwMTQ6CiMKIyBUYXBpbyBMw7Z5dHR5LCA8dGFwc2FAb3JhbmdlLW1lZGlhLmZpPgojIFdlYjogd3d3Lm9yYW5nZS1tZWRpYS5maQojCiMgR29yYW4gSWxpYywgPHVuaXF1M2VAZ21haWwuY29tPgojIFdlYjogd3d3LmljaC1tYWNoLWRhcy5hdAojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBMSVNFIGlzIGEgQ01TIE1hZGUgU2ltcGxlIG1vZHVsZSB0aGF0IGVuYWJsZXMgdGhlIHdlYiBkZXZlbG9wZXIgdG8gY3JlYXRlCiMgbXVsdGlwbGUgbGlzdHMgdGhyb3VnaG91dCBhIHNpdGUuIEl0IGNhbiBiZSBkdXBsaWNhdGVkIGFuZCBnaXZlbiBmcmllbmRseQojIG5hbWVzIGZvciBlYXNpZXIgY2xpZW50IG1haW50ZW5hbmNlLgojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgQkVHSU5fTElDRU5TRQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIExJU0UKIyBMSVNFIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgTElTRSBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBFTkRfTElDRU5TRQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKY2xhc3MgTElTRUZpZWxkZGVmQXJyYXkgZXh0ZW5kcyBBcnJheU9iamVjdAp7IAoJIy0tLS0tLS0tLS0tLS0tLS0tLS0tLQoJIyBWYXJpYWJsZXMKCSMtLS0tLS0tLS0tLS0tLS0tLS0tLS0JCgkKCXByaXZhdGUgJF9wYXJlbnRfaXRlbTsKCgkjLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgkjIE1hZ2ljIG1ldGhvZHMKCSMtLS0tLS0tLS0tLS0tLS0tLS0tLS0JCiAgCiAgcHVibGljIGZ1bmN0aW9uIF9fY29uc3RydWN0KCRhcnJheSkKICB7CiAgICBmb3JlYWNoKCRhcnJheSBhcyAka2V5ID0+ICR2YWx1ZSkKICAgIHsKICAgICAgJHZhbHVlLT5TZXRQYXJlbnRBcnJheSgkdGhpcyk7CiAgICAgICR0aGlzLT5vZmZzZXRTZXQoJGtleSwgJHZhbHVlKTsKICAgIH0KICB9CiAgCgoJCglwdWJsaWMgZnVuY3Rpb24gX190b1N0cmluZygpCgl7CgkJcmV0dXJuICdBcnJheSc7Cgl9CQoJCgkjLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgkjIEFycmF5IE9iamVjdCBtZXRob2RzCgkjLS0tLS0tLS0tLS0tLS0tLS0tLS0tCQkKCQoJcHVibGljIGZ1bmN0aW9uIG9mZnNldFNldCgka2V5LCAkdmFsdWUpIDogdm9pZAoJewoJCWlmKCEkdmFsdWUgaW5zdGFuY2VvZiBMSVNFRmllbGRkZWZCYXNlKQoJCQlkaWUoJ05vdCBhIExJU0UgRmllbGRkZWYgT2JqZWN0Jyk7IC8vIDwtIFB1dCBtZW50aW9uIHRvIGFkbWluIGxvZyBpbnN0ZWFkIG9mIGtpbGxpbmcgc2NyaXB0IGFuZCBpZ25vcmUgdmFsdWUuCgkJCQoJCXBhcmVudDo6b2Zmc2V0U2V0KCRrZXksICR2YWx1ZSk7Cgl9CgogICAgcHVibGljIGZ1bmN0aW9uIG9mZnNldEV4aXN0cygkb2Zmc2V0KSA6IGJvb2wKCXsKCQlpZihwYXJlbnQ6Om9mZnNldEV4aXN0cygkb2Zmc2V0KSkKCQkJcmV0dXJuIHRydWU7CgkJCQoJCWZvcmVhY2goJHRoaXMgYXMgJGZpZWxkKSB7CgkJCgkJCWlmKGlzX29iamVjdCgkZmllbGQpKQoJCQkJaWYoJGZpZWxkLT5HZXRBbGlhcygpID09ICRvZmZzZXQpCgkJCQkJcmV0dXJuIHRydWU7CgkJfQoJCQoJCXJldHVybiBGQUxTRTsKICAgIH0KICAKICAjW1xSZXR1cm5UeXBlV2lsbENoYW5nZV0KICAgIHB1YmxpYyBmdW5jdGlvbiBvZmZzZXRHZXQoJG9mZnNldCkgCgl7CgkJaWYocGFyZW50OjpvZmZzZXRFeGlzdHMoJG9mZnNldCkpIHsKCQkJCgkJCSRvYmogPSBwYXJlbnQ6Om9mZnNldEdldCgkb2Zmc2V0KTsKCQkJCgkJCWlmKCFjbXNtcygpLT5pc19mcm9udGVuZF9yZXF1ZXN0KCkpIHsKCQkJCgkJCQkkc21hcnR5ID0gY21zbXMoKS0+R2V0U21hcnR5KCk7CgkJCQkkc21hcnR5LT5hc3NpZ24oJ2ZpZWxkZGVmJywgJG9iaik7CgkJCX0KCQkJCQkJCgkJCXJldHVybiAkb2JqOwoJCX0KCQkJCgkJZm9yZWFjaCgkdGhpcyBhcyAkZmllbGQpIHsKCQkKCQkJaWYoaXNfb2JqZWN0KCRmaWVsZCkpCgkJCQlpZigkZmllbGQtPkdldEFsaWFzKCkgPT0gJG9mZnNldCkgewoJCQkJCQoJCQkJCWlmKCFjbXNtcygpLT5pc19mcm9udGVuZF9yZXF1ZXN0KCkpIHsKCQkJCQkKCQkJCQkJJHNtYXJ0eSA9IGNtc21zKCktPkdldFNtYXJ0eSgpOwkKCQkJCQkJJHNtYXJ0eS0+YXNzaWduKCdmaWVsZGRlZicsICRmaWVsZCk7CgkJCQkJfQoJCQkJCQoJCQkJCXJldHVybiBwYXJlbnQ6Om9mZnNldEdldCgkZmllbGQtPkdldElkKCkpOwkKCQkJCX0KCQl9CgkJCgkJcmV0dXJuIG51bGw7CiAgICB9CgoJIy0tLS0tLS0tLS0tLS0tLS0tLS0tLQoJIyBDbGFzcyBtZXRob2RzCgkjLS0tLS0tLS0tLS0tLS0tLS0tLS0tCQkKCglmaW5hbCBwdWJsaWMgZnVuY3Rpb24gR2V0UGFyZW50SXRlbSgpCiAgewoJCgkJaWYoaXNzZXQoJHRoaXMtPl9wYXJlbnRfaXRlbSkpCgkJCXJldHVybiAkdGhpcy0+X3BhcmVudF9pdGVtOwoJCQoJCXJldHVybiBGQUxTRTsKCX0KCglmaW5hbCBwdWJsaWMgZnVuY3Rpb24gU2V0UGFyZW50SXRlbSgkb2JqKSA6IHZvaWQKICB7CgkKCQkkdGhpcy0+X3BhcmVudF9pdGVtID0gJG9iajsKCX0JCQoJCn0gLy8gZW5kIG9mIGNsYXNzCgo/Pg==]]></data>
	</file>
	<file>
	  <filename>/lib/class.LISEFielddefBase.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHANCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQojIExJU0UgLSBMaXN0IEl0IFNwZWNpYWwgRWRpdGlvbg0KIyBWZXJzaW9uIDEuMi4yDQojIEEgZm9yayBvZiBMaXN0STINCiMgbWFpbnRhaW5lZCBieSBGZXJuYW5kbyBNb3JnYWRvIEFLQSBKbyBNb3JnDQojIHNpbmNlIDIwMTUNCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQojDQojIE9yaWdpbmFsIEF1dGhvcjogQmVuIE1hbGVuLCA8YmVuQGNvbmNlcHRmYWN0b3J5LmNvbS5hdT4NCiMgQ28tTWFpbnRhaW5lcjogU2ltb24gUmFkZm9yZCwgPHNpbW9uQGNvbmNlcHRmYWN0b3J5LmNvbS5hdT4NCiMgV2ViOiB3d3cuY29uY2VwdGZhY3RvcnkuY29tLmF1DQojDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIw0KIyBNYWludGFpbmVyIHNpbmNlIDIwMTEgdXAgdG8gMjAxNDogSm9uYXRoYW4gU2NobWlkLCA8aGlAam9uYXRoYW5zY2htaWQuZGU+DQojIFdlYjogd3d3LmpvbmF0aGFuc2NobWlkLmRlDQojDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIw0KIyBTb21lIHdhY2tvcyBzdGFydGVkIGRlc3Ryb3lpbmcgc3R1ZmYgc2luY2UgMjAxMiBhbmQgc3RvcHBlZCBhdCAyMDE0Og0KIw0KIyBUYXBpbyBMw7Z5dHR5LCA8dGFwc2FAb3JhbmdlLW1lZGlhLmZpPg0KIyBXZWI6IHd3dy5vcmFuZ2UtbWVkaWEuZmkNCiMNCiMgR29yYW4gSWxpYywgPHVuaXF1M2VAZ21haWwuY29tPg0KIyBXZWI6IHd3dy5pY2gtbWFjaC1kYXMuYXQNCiMNCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQojDQojIExJU0UgaXMgYSBDTVMgTWFkZSBTaW1wbGUgbW9kdWxlIHRoYXQgZW5hYmxlcyB0aGUgd2ViIGRldmVsb3BlciB0byBjcmVhdGUNCiMgbXVsdGlwbGUgbGlzdHMgdGhyb3VnaG91dCBhIHNpdGUuIEl0IGNhbiBiZSBkdXBsaWNhdGVkIGFuZCBnaXZlbiBmcmllbmRseQ0KIyBuYW1lcyBmb3IgZWFzaWVyIGNsaWVudCBtYWludGVuYW5jZS4NCiMNCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQojIEJFR0lOX0xJQ0VOU0UNCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQojIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIExJU0UNCiMgTElTRSBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkNCiMgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkNCiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3INCiMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4NCiMNCiMgTElTRSBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsDQojIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mDQojIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUNCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4NCiMgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UNCiMgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUNCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0ENCiMgT3IgcmVhZCBpdCBvbmxpbmU6IGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9saWNlbnNlcy5odG1sI0dQTA0KIw0KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCiMgRU5EX0xJQ0VOU0UNCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQoNCi8qKg0KICogTElTRSBGaWVsZGRlZiBCYXNlDQogKg0KICogQHBhY2thZ2UgTElTRQ0KICogQGF1dGhvciAgVGFwaW8gTMO2eXR0eQ0KICogQHNpbmNlICAgMS4wDQogKi8NCmFic3RyYWN0IGNsYXNzIExJU0VGaWVsZGRlZkJhc2UgaW1wbGVtZW50cyBBcnJheUFjY2Vzcw0Kew0KICAjLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQogICMgQ29uc3RhbnRzDQogICMtLS0tLS0tLS0tLS0tLS0tLS0tLS0NCiAgDQogIGNvbnN0IFRZUEVfU1RSSU5HICAgID0gJ3N0cmluZyc7DQogIGNvbnN0IFRZUEVfQVJSQVkgICAgID0gJ2FycmF5JzsNCiAgY29uc3QgVFlQRV9PQkpFQ1QgICAgPSAnb2JqZWN0JzsNCiAgY29uc3QgVFlQRV9USU1FU1RBTVAgPSAndGltZXN0YW1wJzsNCiAgDQogICMtLS0tLS0tLS0tLS0tLS0tLS0tLS0NCiAgIyBWYXJpYWJsZXMNCiAgIy0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KICANCiAgcHJvdGVjdGVkICRpZDsNCiAgcHJvdGVjdGVkICRuYW1lOw0KICBwcm90ZWN0ZWQgJGFsaWFzOw0KICBwcm90ZWN0ZWQgJGRlc2NyaXB0aW9uOw0KICBwcm90ZWN0ZWQgJHR5cGU7DQogIHByb3RlY3RlZCAkZnJpZW5kbHl0eXBlOw0KICBwcm90ZWN0ZWQgJHZhbHVlOw0KICBwcm90ZWN0ZWQgJG9yaWdpbmF0b3I7DQogIHByb3RlY3RlZCAkYWN0aXZlOw0KICBwcm90ZWN0ZWQgJGRpc2FibGVkOw0KICBwcm90ZWN0ZWQgJHBhdGg7DQogIHByb3RlY3RlZCAkcG9zaXRpb247DQogIHByb3RlY3RlZCAkcmVxdWlyZWQ7DQogIHByb3RlY3RlZCAkb3B0aW9uczsNCiAgcHJvdGVjdGVkICRjYWxsZXI7DQogIHByb3RlY3RlZCAkaXRlbV9pZDsgLy8gZGVwcmVjYXRlZA0KICBwcm90ZWN0ZWQgJHBhcmVudF9hcnJheTsNCiAgcHJvdGVjdGVkICR0ZW1wbGF0ZTsNCiAgcHJvdGVjdGVkICR2aWV3Ow0KICBwcm90ZWN0ZWQgJGhhc3RlbXBsYXRlOw0KICBwcm90ZWN0ZWQgJGV2ZW50X2hhbmRsZXI7DQogIA0KICAjLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQogICMgTWFnaWMgbWV0aG9kcw0KICAjLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQogIA0KICBwdWJsaWMgZnVuY3Rpb24gX19jb25zdHJ1Y3QoJiRkYl9pbmZvLCAkY2FsbGVyX29iamVjdCA9IE5VTEwpDQogIHsNCiAgICAkdGhpcy0+aWQgICAgICAgICAgID0gLTE7DQogICAgJHRoaXMtPm5hbWUgICAgICAgICA9ICcnOw0KICAgICR0aGlzLT5hbGlhcyAgICAgICAgPSAnJzsNCiAgICAkdGhpcy0+ZGVzY3JpcHRpb24gID0gJyc7DQogICAgJHRoaXMtPnR5cGUgICAgICAgICA9ICRkYl9pbmZvLT50eXBlOw0KICAgICR0aGlzLT5vcmlnaW5hdG9yICAgPSAkZGJfaW5mby0+b3JpZ2luYXRvcjsNCiAgICAkdGhpcy0+YWN0aXZlICAgICAgID0gJGRiX2luZm8tPmFjdGl2ZTsNCiAgICAkdGhpcy0+ZGlzYWJsZWQgICAgID0gJGRiX2luZm8tPmRpc2FibGVkOw0KICAgICR0aGlzLT5wYXRoICAgICAgICAgPSAkZGJfaW5mby0+cGF0aDsNCiAgICAkdGhpcy0+ZnJpZW5kbHl0eXBlID0gJGRiX2luZm8tPnR5cGU7DQogICAgJHRoaXMtPnZhbHVlICAgICAgICA9IG5ldyBMSVNFRmllbGRkZWZWYWx1ZTsNCiAgICAkdGhpcy0+cG9zaXRpb24gICAgID0gLTE7DQogICAgJHRoaXMtPnJlcXVpcmVkICAgICA9IDA7DQogICAgJHRoaXMtPm9wdGlvbnMgICAgICA9IGFycmF5KCk7DQogICAgJHRoaXMtPmNhbGxlciAgICAgICA9IE5VTEw7DQogICAgJHRoaXMtPml0ZW1faWQgICAgICA9IC0xOw0KICAgICR0aGlzLT5oYXN0ZW1wbGF0ZSAgPSBGQUxTRTsNCiAgICAkdGhpcy0+dGVtcGxhdGUgICAgID0gTlVMTDsNCiAgICAkdGhpcy0+X2dldF9kZWZhdWx0X3RlbXBsYXRlKCk7DQogICAgDQogICAgaWYoJGNhbGxlcl9vYmplY3QgaW5zdGFuY2VvZiBDTVNNb2R1bGUpDQogICAgew0KICAgICAgJHRoaXMtPmNhbGxlciA9ICRjYWxsZXJfb2JqZWN0LT5HZXROYW1lKCk7DQogICAgfQ0KICB9DQogIA0KICBwdWJsaWMgZnVuY3Rpb24gX19nZXQoJGtleSkNCiAgew0KICAgIHJldHVybiAkdGhpcy0+X292ZXJ3cml0ZV9jb25zdGFudHMoJGtleSk7DQogIH0NCiAgDQogIHB1YmxpYyBmdW5jdGlvbiBfX3RvU3RyaW5nKCkNCiAgew0KICAgIHJldHVybiAoc3RyaW5nKSR0aGlzLT52YWx1ZTsNCiAgfQ0KICANCiAgcHVibGljIGZ1bmN0aW9uIF9fY2FsbCgkbmFtZSwgJGFyZ3MpDQogIHsNCiAgICByZXR1cm4gRkFMU0U7DQogIH0NCiAgDQogICMtLS0tLS0tLS0tLS0tLS0tLS0tLS0NCiAgIyBBcnJheSBtZXRob2RzDQogICMtLS0tLS0tLS0tLS0tLS0tLS0tLS0NCiAgI1tcUmV0dXJuVHlwZVdpbGxDaGFuZ2VdDQogIHB1YmxpYyBmdW5jdGlvbiBvZmZzZXRHZXQoJG9mZnNldCkNCiAgew0KICAgIHJldHVybiAkdGhpcy0+X292ZXJ3cml0ZV9jb25zdGFudHMoJG9mZnNldCk7DQogIH0NCiAgI1tcUmV0dXJuVHlwZVdpbGxDaGFuZ2VdDQogIHB1YmxpYyBmdW5jdGlvbiBvZmZzZXRTZXQoJG9mZnNldCwgJHZhbHVlKSA6IHZvaWQgeyB9DQogICNbXFJldHVyblR5cGVXaWxsQ2hhbmdlXQ0KICBwdWJsaWMgZnVuY3Rpb24gb2Zmc2V0RXhpc3RzKCRvZmZzZXQpIDogYm9vbCB7IH0NCiAgI1tcUmV0dXJuVHlwZVdpbGxDaGFuZ2VdDQogIHB1YmxpYyBmdW5jdGlvbiBvZmZzZXRVbnNldCgkb2Zmc2V0KSA6IHZvaWQgeyB9DQogIA0KICAjLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQogICMgUHJpdmF0ZSBtZXRob2RzDQogICMtLS0tLS0tLS0tLS0tLS0tLS0tLS0NCiAgDQogIC8qKg0KICAgKiBsaW1pdHMgdGhlIHByb3BlcnR5IGFjY2VzcyB0bzoNCiAgICogbmFtZSwgdmFsdWUsIHR5cGUsIGFsaWFzLCB0ZW1wbGF0ZSBhbmQgdmlldw0KICAgKiBtb3N0bHkgd2hlbiBjYWxsZWQgZnJvbSBhIHRlbXBsYXRlDQogICAqDQogICAqIEBwYXJhbSBtaXhlZCAka2V5DQogICAqDQogICAqIEByZXR1cm4gbWl4ZWR8bnVsbHxzdHJpbmcNCiAgICovDQogIHByaXZhdGUgZnVuY3Rpb24gX292ZXJ3cml0ZV9jb25zdGFudHMoJGtleSkNCiAgew0KICAgIHN3aXRjaCgka2V5KQ0KICAgIHsNCiAgICAgIGNhc2UgJ25hbWUnOg0KICAgICAgICByZXR1cm4gJHRoaXMtPkdldE5hbWUoKTsNCiAgICAgIA0KICAgICAgY2FzZSAndmFsdWUnOg0KICAgICAgICByZXR1cm4gJHRoaXMtPkdldFZhbHVlKHNlbGY6OlRZUEVfU1RSSU5HKTsNCiAgICAgIA0KICAgICAgY2FzZSAndHlwZSc6DQogICAgICAgIHJldHVybiAkdGhpcy0+R2V0VHlwZSgpOw0KICAgICAgDQogICAgICBjYXNlICdhbGlhcyc6DQogICAgICAgIHJldHVybiAkdGhpcy0+R2V0QWxpYXMoKTsNCiAgICAgIA0KICAgICAgY2FzZSAndGVtcGxhdGUnOg0KICAgICAgICByZXR1cm4gJHRoaXMtPkdldFRlbXBsYXRlKCk7DQogICAgICANCiAgICAgIGNhc2UgJ3ZpZXcnOg0KICAgICAgICByZXR1cm4gJHRoaXMtPkZyb250RW5kUmVuZGVyKCk7DQogICAgICANCiAgICAgIGRlZmF1bHQ6DQogICAgICAgIHJldHVybiBOVUxMOw0KICAgIH0NCiAgfQ0KICANCiAgcHJpdmF0ZSBmdW5jdGlvbiBfZ2V0X2RlZmF1bHRfdGVtcGxhdGUoKSA6IGJvb2wNCiAgew0KICAgICRmbiA9ICR0aGlzLT5HZXRQYXRoKCkgLiBESVJFQ1RPUllfU0VQQVJBVE9SIC4gJ291dHB1dC4nIC4gJHRoaXMtPkdldFR5cGUoKSAuICcudHBsJzsNCiAgICANCiAgICBpZihpc19yZWFkYWJsZSgkZm4pKQ0KICAgIHsNCiAgICAgICR0aGlzLT50ZW1wbGF0ZSAgICA9IEBmaWxlX2dldF9jb250ZW50cygkZm4pOw0KICAgICAgJHRoaXMtPmhhc3RlbXBsYXRlID0gVFJVRTsNCiAgICB9DQogICAgDQogICAgcmV0dXJuICR0aGlzLT5oYXN0ZW1wbGF0ZTsNCiAgfQ0KICANCiAgIy0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KICAjIGdldC9zZXQgbWV0aG9kcw0KICAjLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQogIA0KICBwdWJsaWMgZmluYWwgZnVuY3Rpb24gR2V0SWQoKSA6IGludA0KICB7DQogICAgcmV0dXJuICR0aGlzLT5pZDsNCiAgfQ0KICANCiAgcHVibGljIGZpbmFsIGZ1bmN0aW9uIFNldElkKCR2YWx1ZSkgOiB2b2lkDQogIHsNCiAgICAkdGhpcy0+aWQgPSAkdmFsdWU7DQogIH0NCiAgDQogIHB1YmxpYyBmaW5hbCBmdW5jdGlvbiBHZXROYW1lKCkgOiBzdHJpbmcNCiAgew0KICAgIHJldHVybiAkdGhpcy0+bmFtZTsNCiAgfQ0KICANCiAgcHVibGljIGZpbmFsIGZ1bmN0aW9uIFNldE5hbWUoJHZhbHVlKSA6IHZvaWQNCiAgew0KICAgICR0aGlzLT5uYW1lID0gJHZhbHVlOw0KICB9DQogIA0KICBwdWJsaWMgZmluYWwgZnVuY3Rpb24gR2V0QWxpYXMoKSA6IHN0cmluZw0KICB7DQogICAgcmV0dXJuICR0aGlzLT5hbGlhczsNCiAgfQ0KICANCiAgcHVibGljIGZpbmFsIGZ1bmN0aW9uIFNldEFsaWFzKCR2YWx1ZSkgOiB2b2lkDQogIHsNCiAgICAkdGhpcy0+YWxpYXMgPSAkdmFsdWU7DQogIH0NCiAgDQogIHB1YmxpYyBmaW5hbCBmdW5jdGlvbiBHZXREZXNjKCkgOiBzdHJpbmcNCiAgew0KICAgIHJldHVybiAkdGhpcy0+ZGVzY3JpcHRpb247DQogIH0NCiAgDQogIHB1YmxpYyBmaW5hbCBmdW5jdGlvbiBTZXREZXNjKCR2YWx1ZSkgOiB2b2lkDQogIHsNCiAgICAkdGhpcy0+ZGVzY3JpcHRpb24gPSAkdmFsdWU7DQogIH0NCiAgDQogIHB1YmxpYyBmaW5hbCBmdW5jdGlvbiBHZXRUeXBlKCkNCiAgew0KICAgIHJldHVybiAkdGhpcy0+dHlwZTsNCiAgfQ0KICANCiAgcHVibGljIGZpbmFsIGZ1bmN0aW9uIEdldEZyaWVuZGx5VHlwZSgpDQogIHsNCiAgICByZXR1cm4gJHRoaXMtPmZyaWVuZGx5dHlwZTsNCiAgfQ0KICANCiAgcHVibGljIGZpbmFsIGZ1bmN0aW9uIFNldEZyaWVuZGx5VHlwZSgkdmFsdWUpIDogdm9pZA0KICB7DQogICAgJHRoaXMtPmZyaWVuZGx5dHlwZSA9ICR2YWx1ZTsNCiAgfQ0KICANCiAgcHVibGljIGZpbmFsIGZ1bmN0aW9uIEhhc1ZhbHVlKCkgOiBib29sDQogIHsNCiAgICBpZigkdGhpcy0+R2V0VmFsdWUoc2VsZjo6VFlQRV9TVFJJTkcpICE9PSAnJykNCiAgICB7DQogICAgICByZXR1cm4gVFJVRTsNCiAgICB9DQogICAgDQogICAgcmV0dXJuIEZBTFNFOw0KICB9DQogIA0KICBwdWJsaWMgZmluYWwgZnVuY3Rpb24gR2V0VmFsdWUoJHR5cGUgPSBzZWxmOjpUWVBFX09CSkVDVCkNCiAgew0KICAgICR0eXBlID0gc3RydG9sb3dlcigkdHlwZSk7DQogICAgDQogICAgc3dpdGNoKCR0eXBlKQ0KICAgIHsNCiAgICAgIGNhc2Ugc2VsZjo6VFlQRV9TVFJJTkc6DQogICAgICAgIHJldHVybiAoc3RyaW5nKSR0aGlzLT52YWx1ZTsNCiAgICAgIA0KICAgICAgY2FzZSBzZWxmOjpUWVBFX0FSUkFZOg0KICAgICAgICByZXR1cm4gKGFycmF5KSR0aGlzLT52YWx1ZTsNCiAgICAgIA0KICAgICAgY2FzZSBzZWxmOjpUWVBFX1RJTUVTVEFNUDoNCiAgICAgICAgcmV0dXJuIHN0cnRvdGltZSgoc3RyaW5nKSR0aGlzLT52YWx1ZSk7DQogICAgICANCiAgICAgIGRlZmF1bHQ6DQogICAgICAgIHJldHVybiAkdGhpcy0+dmFsdWU7DQogICAgfQ0KICB9DQogIA0KICBwdWJsaWMgZmluYWwgZnVuY3Rpb24gU2V0VmFsdWUoJHZhbHVlID0gW10pICA6IHZvaWQNCiAgew0KICAgICR0aGlzLT52YWx1ZSA9IG5ldyBMSVNFRmllbGRkZWZWYWx1ZSgkdmFsdWUpOw0KICB9DQogIA0KICBwdWJsaWMgZmluYWwgZnVuY3Rpb24gR2V0T3JpZ2luYXRvcigpDQogIHsNCiAgICByZXR1cm4gJHRoaXMtPm9yaWdpbmF0b3I7DQogIH0NCiAgDQogIHB1YmxpYyBmaW5hbCBmdW5jdGlvbiBJc0FjdGl2ZSgpIDogYm9vbA0KICB7DQogICAgcmV0dXJuICR0aGlzLT5hY3RpdmUgPyBUUlVFIDogRkFMU0U7DQogIH0NCiAgDQogIHB1YmxpYyBmaW5hbCBmdW5jdGlvbiBJc0Rpc2FibGVkKCkgOiBib29sDQogIHsNCiAgICByZXR1cm4gJHRoaXMtPmRpc2FibGVkID8gVFJVRSA6IEZBTFNFOw0KICB9DQogIA0KICAvLyBkZXByZWNhdGVkDQogIHB1YmxpYyBmaW5hbCBmdW5jdGlvbiBHZXRBY3RpdmUoKQ0KICB7DQogICAgcmV0dXJuICR0aGlzLT5hY3RpdmU7DQogIH0NCiAgDQogIHB1YmxpYyBmaW5hbCBmdW5jdGlvbiBHZXRQb3NpdGlvbigpDQogIHsNCiAgICByZXR1cm4gJHRoaXMtPnBvc2l0aW9uOw0KICB9DQogIA0KICBwdWJsaWMgZmluYWwgZnVuY3Rpb24gU2V0UG9zaXRpb24oJHZhbHVlKQ0KICB7DQogICAgJHRoaXMtPnBvc2l0aW9uID0gJHZhbHVlOw0KICB9DQogIA0KICBwdWJsaWMgZmluYWwgZnVuY3Rpb24gR2V0UGF0aCgpDQogIHsNCiAgICByZXR1cm4gJHRoaXMtPnBhdGg7DQogIH0NCiAgDQogIHB1YmxpYyBmaW5hbCBmdW5jdGlvbiBHZXRVUkxQYXRoKCkgOiBzdHJpbmcNCiAgew0KICAgICRjb25maWcgPSBjbXNtcygpLT5HZXRDb25maWcoKTsNCiAgICANCiAgICAkdXJsID0gc3Vic3RyKCR0aGlzLT5HZXRQYXRoKCksIHN0cmxlbigkY29uZmlnWydyb290X3BhdGgnXSkpOw0KICAgICR1cmwgPSBzdHJfcmVwbGFjZShESVJFQ1RPUllfU0VQQVJBVE9SLCAnLycsICR1cmwpOw0KICAgICR1cmwgPSAkY29uZmlnLT5zbWFydF9yb290X3VybCgpIC4gJHVybDsNCiAgICANCiAgICByZXR1cm4gJHVybDsNCiAgfQ0KICANCiAgcHVibGljIGZpbmFsIGZ1bmN0aW9uIElzUmVxdWlyZWQoKSA6IGJvb2wNCiAgew0KICAgIHJldHVybiAkdGhpcy0+cmVxdWlyZWQgPyBUUlVFIDogRkFMU0U7DQogIH0NCiAgDQogIHB1YmxpYyBmaW5hbCBmdW5jdGlvbiBHZXRSZXF1aXJlZCgpIDogc3RyaW5nDQogIHsNCiAgICByZXR1cm4gKHN0cmluZykkdGhpcy0+cmVxdWlyZWQ7DQogIH0NCiAgDQogIHB1YmxpYyBmaW5hbCBmdW5jdGlvbiBTZXRSZXF1aXJlZCgkdmFsdWUpIDogdm9pZA0KICB7DQogICAgJHRoaXMtPnJlcXVpcmVkID0gJHZhbHVlOw0KICB9DQogIA0KICBwdWJsaWMgZmluYWwgZnVuY3Rpb24gR2V0SXRlbUlkKCkNCiAgew0KICAgIHJldHVybiAkdGhpcy0+R2V0UGFyZW50SXRlbSgpLT5pdGVtX2lkOw0KICB9DQogIA0KICBwdWJsaWMgZmluYWwgZnVuY3Rpb24gR2V0SXRlbUFsaWFzKCkNCiAgew0KICAgIHJldHVybiAkdGhpcy0+R2V0UGFyZW50SXRlbSgpLT5hbGlhczsNCiAgfQ0KICANCiAgLy8gZGVwcmVjYXRlZA0KICBwdWJsaWMgZmluYWwgZnVuY3Rpb24gU2V0SXRlbUlkKCR2YWx1ZSkNCiAgew0KICAgICR0aGlzLT5pdGVtX2lkID0gJHZhbHVlOw0KICB9DQogIA0KICBwdWJsaWMgZmluYWwgZnVuY3Rpb24gR2V0UGFyZW50QXJyYXkoKQ0KICB7DQogICAgaWYoaXNzZXQoJHRoaXMtPnBhcmVudF9hcnJheSkpDQogICAgew0KICAgICAgcmV0dXJuICR0aGlzLT5wYXJlbnRfYXJyYXk7DQogICAgfQ0KICAgIA0KICAgIHJldHVybiBGQUxTRTsNCiAgfQ0KICANCiAgcHVibGljIGZpbmFsIGZ1bmN0aW9uIFNldFBhcmVudEFycmF5KExJU0VGaWVsZGRlZkFycmF5ICYkb2JqKSA6IHZvaWQNCiAgew0KICAgICR0aGlzLT5wYXJlbnRfYXJyYXkgPSAkb2JqOw0KICB9DQogIA0KICBwdWJsaWMgZmluYWwgZnVuY3Rpb24gR2V0UGFyZW50SXRlbSgpDQogIHsNCiAgICBpZigkdGhpcy0+R2V0UGFyZW50QXJyYXkoKSkNCiAgICB7DQogICAgICBpZigkdGhpcy0+R2V0UGFyZW50QXJyYXkoKS0+R2V0UGFyZW50SXRlbSgpKQ0KICAgICAgew0KICAgICAgICByZXR1cm4gJHRoaXMtPkdldFBhcmVudEFycmF5KCktPkdldFBhcmVudEl0ZW0oKTsNCiAgICAgIH0NCiAgICB9DQogICAgDQogICAgcmV0dXJuIEZBTFNFOw0KICB9DQogIA0KICBwdWJsaWMgZmluYWwgZnVuY3Rpb24gU2V0VGVtcGxhdGUoJGNvbnRlbnQpIDogdm9pZA0KICB7DQogICAgJHRoaXMtPnRlbXBsYXRlID0gJGNvbnRlbnQ7DQogIH0NCiAgDQogIHB1YmxpYyBmaW5hbCBmdW5jdGlvbiBHZXRUZW1wbGF0ZSgpDQogIHsNCiAgICByZXR1cm4gJHRoaXMtPnRlbXBsYXRlOw0KICB9DQogIA0KICBwdWJsaWMgZmluYWwgZnVuY3Rpb24gSGFzVGVtcGxhdGUoKSA6IGJvb2wNCiAgew0KICAgIHJldHVybiAkdGhpcy0+aGFzdGVtcGxhdGU7DQogIH0NCiAgDQogICMtLS0tLS0tLS0tLS0tLS0tLS0tLS0NCiAgIyBPcHRpb24gbWV0aG9kcw0KICAjLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQogIA0KICBwdWJsaWMgZmluYWwgZnVuY3Rpb24gR2V0T3B0aW9uVmFsdWVzKCkgOiBhcnJheQ0KICB7DQogICAgcmV0dXJuICR0aGlzLT5vcHRpb25zOw0KICB9DQogIA0KICBwdWJsaWMgZmluYWwgZnVuY3Rpb24gR2V0T3B0aW9uVmFsdWUoJGtleSwgJGRlZmF1bHQgPSAnJykNCiAgew0KICAgIHJldHVybiBpc3NldCgkdGhpcy0+b3B0aW9uc1ska2V5XSkgPyAkdGhpcy0+b3B0aW9uc1ska2V5XSA6ICRkZWZhdWx0Ow0KICB9DQogIA0KICBwdWJsaWMgZmluYWwgZnVuY3Rpb24gU2V0T3B0aW9uVmFsdWUoJGtleSwgJHZhbHVlKSA6IHZvaWQNCiAgew0KICAgICR0aGlzLT5vcHRpb25zWyRrZXldID0gJHZhbHVlOw0KICB9DQogIA0KICAjLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQogICMgT3ZlcndyaXRlIG1ldGhvZHMNCiAgIy0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KICANCiAgc3RhdGljIHB1YmxpYyBmdW5jdGlvbiBHZXRNb2R1bGVEZXBzKCkNCiAgew0KICAgIHJldHVybiBOVUxMOw0KICB9DQogIA0KICBwdWJsaWMgZnVuY3Rpb24gR2V0SGVhZGVySFRNTCgpDQogIHsNCiAgICAkcmV0ID0gTlVMTDsNCiAgICANCiAgICAkZm4gPSAkdGhpcy0+R2V0UGF0aCgpIC4gRElSRUNUT1JZX1NFUEFSQVRPUiAuICdoZWFkZXIuJyAuICR0aGlzLT5HZXRUeXBlKCkgLiAnLnRwbCc7DQogICAgDQogICAgaWYoaXNfcmVhZGFibGUoJGZuKSkNCiAgICB7DQogICAgICAkcmV0ICAgID0gQGZpbGVfZ2V0X2NvbnRlbnRzKCRmbik7DQogICAgICAkc21hcnR5ID0gY21zbXMoKS0+R2V0U21hcnR5KCk7DQogICAgICAkc21hcnR5LT5hc3NpZ24oJ2ZpZWxkZGVmZGlyJywgJHRoaXMtPkdldFVSTFBhdGgoKSk7DQogICAgICAkcmV0ID0gJHNtYXJ0eS0+ZmV0Y2goJ2V2YWw6JyAuICRyZXQpOw0KICAgIH0NCiAgICANCiAgICByZXR1cm4gJHJldDsNCiAgfQ0KICANCiAgcHVibGljIGZ1bmN0aW9uIElzVW5pcXVlKCkNCiAgew0KICAgIHJldHVybiBGQUxTRTsNCiAgfQ0KICANCiAgcHVibGljIGZ1bmN0aW9uIElzTGFzdCgpDQogIHsNCiAgICByZXR1cm4gRkFMU0U7DQogIH0NCiAgDQogIHB1YmxpYyBmdW5jdGlvbiBSZW5kZXJGb3JBZG1pbkxpc3RpbmcoJGlkLCAkcmV0dXJuaWQpDQogIHsNCiAgICAkcm4gPSAnbGlzdC4nIC4gJHRoaXMtPkdldFR5cGUoKSAuICcudHBsJzsNCiAgICAkZm4gPSAkdGhpcy0+R2V0UGF0aCgpIC4gRElSRUNUT1JZX1NFUEFSQVRPUiAuICRybjsNCg0KICAgIA0KICAgIGlmKCBpc19yZWFkYWJsZSgkZm4pICkNCiAgICB7DQogICAgICAkc21hcnR5ID0gY21zbXMoKS0+R2V0U21hcnR5KCk7DQogICAgICAkc21hcnR5LT5hc3NpZ24oJ2FjdGlvbmlkJywgJGlkKTsNCiAgICAgICRzbWFydHktPmFzc2lnbigncmV0dXJuaWQnLCAkcmV0dXJuaWQpOw0KICAgICAgJHNtYXJ0eS0+YXNzaWduKCd2YWx1ZScsICR0aGlzLT5HZXRWYWx1ZSgpICk7DQogICAgICAkc21hcnR5LT5hc3NpZ24oJ2ZpZWxkZGVmJywgJHRoaXMpOw0KICANCiAgICAgIHJldHVybiAkc21hcnR5LT5mZXRjaCgnbGlzZXRlbXBsYXRlOmZpZWxkZGVmczsnIC4gJHRoaXMtPkdldE9yaWdpbmF0b3IoKSAuICc7JyAgLiAkcm4pOw0KICAgIH0NCiAgICANCiAgICByZXR1cm4gJHRoaXMtPkdldFZhbHVlKHNlbGY6OlRZUEVfU1RSSU5HKTsNCiAgfQ0KICANCiAgcHVibGljIGZ1bmN0aW9uIFJlbmRlckZvckVkaXQoJGlkLCAkcmV0dXJuaWQpDQogIHsNCiAgICAkcm4gPSAnYWRtaW4uJyAuICR0aGlzLT5HZXRUeXBlKCkgLiAnLnRwbCc7DQogICAgJGZuID0gJHRoaXMtPkdldFBhdGgoKSAuIERJUkVDVE9SWV9TRVBBUkFUT1IgLiAkcm47DQogICAgDQogICAgaWYoIGlzX3JlYWRhYmxlKCRmbikgKQ0KICAgIHsNCiAgICAgICRzbWFydHkgPSBjbXNtcygpLT5HZXRTbWFydHkoKTsNCiAgICAgICRzbWFydHktPmFzc2lnbignYWN0aW9uaWQnLCAkaWQpOw0KICAgICAgJHNtYXJ0eS0+YXNzaWduKCdyZXR1cm5pZCcsICRyZXR1cm5pZCk7DQogICAgICByZXR1cm4gJHNtYXJ0eS0+ZmV0Y2goJ2xpc2V0ZW1wbGF0ZTpmaWVsZGRlZnM7JyAuICR0aGlzLT5HZXRPcmlnaW5hdG9yKCkgLiAnOycgIC4gJHJuKTt9DQogICAgDQogICAgcmV0dXJuICcnOw0KICB9DQogIA0KICBwdWJsaWMgZnVuY3Rpb24gUmVuZGVySW5wdXQoJGlkLCAkcmV0dXJuaWQpDQogIHsNCiAgICAkcm4gPSAnaW5wdXQuJyAuICR0aGlzLT5HZXRUeXBlKCkgLiAnLnRwbCc7DQogICAgJGZuID0gJHRoaXMtPkdldFBhdGgoKSAuIERJUkVDVE9SWV9TRVBBUkFUT1IgLiAkcm47DQogICAgDQogICAgaWYoIGlzX3JlYWRhYmxlKCRmbikgKQ0KICAgIHsNCiAgICAgICRzbWFydHkgPSBjbXNtcygpLT5HZXRTbWFydHkoKTsNCiAgICAgICRzbWFydHktPmFzc2lnbignYWN0aW9uaWQnLCAkaWQpOw0KICAgICAgJHNtYXJ0eS0+YXNzaWduKCdyZXR1cm5pZCcsICRyZXR1cm5pZCk7DQogICAgICByZXR1cm4gJHNtYXJ0eS0+ZmV0Y2goJ2xpc2V0ZW1wbGF0ZTpmaWVsZGRlZnM7JyAuICR0aGlzLT5HZXRPcmlnaW5hdG9yKCkgLiAnOycgIC4gJHJuKTsNCiAgICB9DQogICAgDQogICAgcmV0dXJuICcnOw0KICB9DQogIA0KICBwdWJsaWMgZnVuY3Rpb24gRnJvbnRFbmRSZW5kZXIoJHBhcmFtcyA9IGFycmF5KCkpDQogIHsNCiAgICBpZihlbXB0eSgkdGhpcy0+dmlldykgJiYgJHRoaXMtPmhhc3RlbXBsYXRlKQ0KICAgIHsNCiAgICAgICRzbWFydHkgPSBjbXNtcygpLT5HZXRTbWFydHkoKTsNCiAgICAgICRzbWFydHktPmFzc2lnbignbmFtZScsICR0aGlzLT5uYW1lKTsNCiAgICAgICRzbWFydHktPmFzc2lnbigndmFsdWUnLCAkdGhpcy0+dmFsdWUpOw0KICAgICAgJHNtYXJ0eS0+YXNzaWduKCd0eXBlJywgJHRoaXMtPnR5cGUpOw0KICAgICAgJHNtYXJ0eS0+YXNzaWduKCdhbGlhcycsICR0aGlzLT5hbGlhcyk7DQogICAgICAkc21hcnR5LT5hc3NpZ24oJ3BhcmFtcycsICRwYXJhbXMpOw0KICAgICAgJHRoaXMtPnZpZXcgPSAkc21hcnR5LT5mZXRjaCgnc3RyaW5nOicgLiAkdGhpcy0+R2V0VGVtcGxhdGUoKSk7DQogICAgfQ0KICAgIGVsc2UNCiAgICB7DQogICAgICAkdGhpcy0+dmlldyA9ICcnOw0KICAgIH0NCiAgICANCiAgICByZXR1cm4gJHRoaXMtPnZpZXc7DQogIH0NCiAgDQogIC8qKg0KICAgKiBhIHNob3J0ZXIgYWxpYXMgdG8gRnJvbnRFbmRSZW5kZXIoKSBtZXRob2QNCiAgICovDQogIHB1YmxpYyBmdW5jdGlvbiBWaWV3KCRwYXJhbXMgPSBhcnJheSgpKQ0KICB7DQogICAgcmV0dXJuICR0aGlzLT5Gcm9udEVuZFJlbmRlcigkcGFyYW1zKTsNCiAgfQ0KICANCiAgcHVibGljIGZ1bmN0aW9uIFZhbGlkYXRlKCYkZXJyb3JzKSA6IHZvaWQNCiAgew0KICAgIGlmKCR0aGlzLT5HZXRWYWx1ZShzZWxmOjpUWVBFX1NUUklORykgPT0gJycgJiYgJHRoaXMtPklzUmVxdWlyZWQoKSkNCiAgICB7DQogICAgICAkZXJyb3JzW10gPSAkdGhpcy0+TW9kTGFuZygncmVxdWlyZWRfZmllbGRfZW1wdHknKSAuICcgKCcgLiAkdGhpcy0+R2V0TmFtZSgpIC4gJyknOw0KICAgIH0NCiAgfQ0KICANCiAgIy0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KICAjIEV2ZW50IGhhbmRsZXINCiAgIy0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KICANCiAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKg0KICAgKiBOT1RJQ0U6IEhpZ2hseSBleHBlcmltZW50YWwNCiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8NCiAgDQogIC8vIFNob3VsZCBpIG1ha2UgdGhpcyBmaW5hbCBvciBub3QsIGxldHMgbGVhdmUgaXQgbGlrZSB0aGlzIGZvciBub3cuDQogIHB1YmxpYyBmdW5jdGlvbiBFdmVudEhhbmRsZXIoKQ0KICB7DQogICAgLy8gQ2hlY2sgaWYgZmllbGQgaGFzIG93biBldmVudCBoYW5kbGVyDQogICAgaWYoIWlzc2V0KCR0aGlzLT5ldmVudF9oYW5kbGVyKSkNCiAgICB7DQogICAgICANCiAgICAgICRmbiA9ICR0aGlzLT5HZXRQYXRoKCkgLiBESVJFQ1RPUllfU0VQQVJBVE9SIC4gJ2xpc2VlaC4nIC4gJHRoaXMtPkdldFR5cGUoKSAuICcucGhwJzsNCiAgICAgIGlmKGlzX3JlYWRhYmxlKCRmbikpDQogICAgICB7DQogICAgICAgIA0KICAgICAgICByZXF1aXJlX29uY2UoJGZuKTsNCiAgICAgICAgDQogICAgICAgICRjbGFzcyA9ICdsaXNlZWhfJyAuICR0aGlzLT5HZXRUeXBlKCk7DQogICAgICAgIGlmKGNsYXNzX2V4aXN0cygkY2xhc3MpKQ0KICAgICAgICB7DQogICAgICAgICAgJHRoaXMtPmV2ZW50X2hhbmRsZXIgPSBuZXcgJGNsYXNzKCR0aGlzKTsNCiAgICAgICAgfQ0KICAgICAgfQ0KICAgIH0NCiAgICANCiAgICAvLyBFbnN1cmUgdGhhdCB3ZSBoYXZlIGRlZmF1bHQgZXZlbnQgaGFuZGxlcg0KICAgIGlmKCFpc3NldCgkdGhpcy0+ZXZlbnRfaGFuZGxlcikpDQogICAgew0KICAgICAgJHRoaXMtPmV2ZW50X2hhbmRsZXIgPSBuZXcgTElTRUV2ZW50SGFuZGxlckJhc2UoJHRoaXMpOw0KICAgIH0NCiAgICANCiAgICByZXR1cm4gJHRoaXMtPmV2ZW50X2hhbmRsZXI7DQogIH0NCiAgDQogICMtLS0tLS0tLS0tLS0tLS0tLS0tLS0NCiAgIyBNb2R1bGUgbWV0aG9kcw0KICAjLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQogIA0KICBwdWJsaWMgZmluYWwgZnVuY3Rpb24gR2V0TW9kdWxlSW5zdGFuY2UoJGNhbGxlciA9IEZBTFNFKQ0KICB7DQogICAgaWYoJGNhbGxlciAmJiAhaXNfbnVsbCgkdGhpcy0+Y2FsbGVyKSkNCiAgICB7DQogICAgICByZXR1cm4gY21zbXMoKS0+R2V0TW9kdWxlSW5zdGFuY2UoJHRoaXMtPmNhbGxlcik7DQogICAgfQ0KICAgIA0KICAgIHJldHVybiBjbXNtcygpLT5HZXRNb2R1bGVJbnN0YW5jZSgkdGhpcy0+b3JpZ2luYXRvcik7DQogIH0NCiAgDQogICMtLS0tLS0tLS0tLS0tLS0tLS0tLS0NCiAgIyBMYW5nIG1ldGhvZHMNCiAgIy0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KICANCiAgcHVibGljIGZpbmFsIGZ1bmN0aW9uIE1vZExhbmcoKQ0KICB7DQogICAgJG1vZCA9ICR0aGlzLT5HZXRNb2R1bGVJbnN0YW5jZSgpOw0KICAgIGlmKCFpc19vYmplY3QoJG1vZCkpDQogICAgew0KICAgICAgdGhyb3cgbmV3IFxMSVNFXEV4Y2VwdGlvbignQ291bGQgbm90IHJldHJpdmUgbW9kdWxlIGluc3RhbmNlIGZyb20gb3JpZ2luYXRvciEnKTsNCiAgICB9DQogICAgLy90aHJvdyBuZXcgTElTRUV4Y2VwdGlvbignQ291bGQgbm90IHJldHJpdmUgbW9kdWxlIGluc3RhbmNlIGZyb20gb3JpZ2luYXRvciEnKTsgLy8gPC0gU2VuZCBvd24gbWlzc2luZyBsYW5nIHN0cmluZyBpbnN0ZWFkIG9mIGZhaWx1cmU/DQogICAgJGFyZ3MgPSBmdW5jX2dldF9hcmdzKCk7DQogICAgDQogICAgcmV0dXJuIGNhbGxfdXNlcl9mdW5jX2FycmF5KGFycmF5KCRtb2QsICdsYW5nJyksICRhcmdzKTsNCiAgfQ0KICANCn0gLy8gZW5kIG9mIGNsYXNzDQoNCi8qKg0KICogTElTRSBGaWVsZGRlZiB2YWx1ZQ0KICoNCiAqIEBwYWNrYWdlIExJU0UNCiAqIEBhdXRob3IgIFRhcGlvIEwNCiAqIEBzaW5jZSAgIDEuMy4xDQogKi8NCmNsYXNzIExJU0VGaWVsZGRlZlZhbHVlIGV4dGVuZHMgQXJyYXlPYmplY3QNCnsNCiAgIy0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KICAjIE1hZ2ljIG1ldGhvZHMNCiAgIy0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KICANCiAgcHVibGljIGZ1bmN0aW9uIF9fY29uc3RydWN0KCRhcnJheSA9IGFycmF5KCkpDQogIHsNCiAgICBmb3JlYWNoKChhcnJheSkkYXJyYXkgYXMgJGtleSA9PiAkdmFsdWUpDQogICAgew0KICAgICAgDQogICAgICAkdGhpcy0+b2Zmc2V0U2V0KCRrZXksICR2YWx1ZSk7DQogICAgfQ0KICB9DQogIA0KICBwdWJsaWMgZnVuY3Rpb24gX190b1N0cmluZygpDQogIHsNCiAgICByZXR1cm4gKHN0cmluZylpbXBsb2RlKExJU0VfVkFMVUVfU0VQQVJBVE9SLCAoYXJyYXkpJHRoaXMpOw0KICB9DQogIA0KfSAvLyBlbmQgb2YgY2xhc3MNCj8+]]></data>
	</file>
	<file>
	  <filename>/lib/class.LISEFielddefOperations.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHANCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQojIExJU0UgLSBMaXN0IEl0IFNwZWNpYWwgRWRpdGlvbg0KIyBWZXJzaW9uIDEuMg0KIyBBIGZvcmsgb2YgTGlzdEkyDQojIG1haW50YWluZWQgYnkgRmVybmFuZG8gTW9yZ2FkbyBBS0EgSm8gTW9yZw0KIyBzaW5jZSAyMDE1DQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIw0KIyBPcmlnaW5hbCBBdXRob3I6IEJlbiBNYWxlbiwgPGJlbkBjb25jZXB0ZmFjdG9yeS5jb20uYXU+DQojIENvLU1haW50YWluZXI6IFNpbW9uIFJhZGZvcmQsIDxzaW1vbkBjb25jZXB0ZmFjdG9yeS5jb20uYXU+DQojIFdlYjogd3d3LmNvbmNlcHRmYWN0b3J5LmNvbS5hdQ0KIw0KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCiMNCiMgTWFpbnRhaW5lciBzaW5jZSAyMDExIHVwIHRvIDIwMTQ6IEpvbmF0aGFuIFNjaG1pZCwgPGhpQGpvbmF0aGFuc2NobWlkLmRlPg0KIyBXZWI6IHd3dy5qb25hdGhhbnNjaG1pZC5kZQ0KIw0KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCiMNCiMgU29tZSB3YWNrb3Mgc3RhcnRlZCBkZXN0cm95aW5nIHN0dWZmIHNpbmNlIDIwMTIgYW5kIHN0b3BwZWQgYXQgMjAxNDoNCiMNCiMgVGFwaW8gTMO2eXR0eSwgPHRhcHNhQG9yYW5nZS1tZWRpYS5maT4NCiMgV2ViOiB3d3cub3JhbmdlLW1lZGlhLmZpDQojDQojIEdvcmFuIElsaWMsIDx1bmlxdTNlQGdtYWlsLmNvbT4NCiMgV2ViOiB3d3cuaWNoLW1hY2gtZGFzLmF0DQojDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIw0KIyBMSVNFIGlzIGEgQ01TIE1hZGUgU2ltcGxlIG1vZHVsZSB0aGF0IGVuYWJsZXMgdGhlIHdlYiBkZXZlbG9wZXIgdG8gY3JlYXRlDQojIG11bHRpcGxlIGxpc3RzIHRocm91Z2hvdXQgYSBzaXRlLiBJdCBjYW4gYmUgZHVwbGljYXRlZCBhbmQgZ2l2ZW4gZnJpZW5kbHkNCiMgbmFtZXMgZm9yIGVhc2llciBjbGllbnQgbWFpbnRlbmFuY2UuDQojDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIyBCRUdJTl9MSUNFTlNFDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIyBUaGlzIGZpbGUgaXMgcGFydCBvZiBMSVNFDQojIExJU0UgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5DQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5DQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yDQojIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uDQojDQojIExJU0UgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLA0KIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZg0KIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlDQojIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuDQojIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlDQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlDQojIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcgVVNBDQojIE9yIHJlYWQgaXQgb25saW5lOiBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwNCiMNCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQojIEVORF9MSUNFTlNFDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KZmluYWwgY2xhc3MgTElTRUZpZWxkZGVmT3BlcmF0aW9ucw0Kew0KICAjLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQogICMgQ29uc3RhbnRzDQogICMtLS0tLS0tLS0tLS0tLS0tLS0tLS0NCiAgDQogIHB1YmxpYyBjb25zdCBGSUVMRERFRl9QUkVGSVggPSAnbGlzZWZkJzsNCg0KICAjLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQogICMgQXR0cmlidXRlcw0KICAjLS0tLS0tLS0tLS0tLS0tLS0tLS0tICANCiAgDQogIHB1YmxpYyBzdGF0aWMgJGlkZW50aWZpZXJzID0gWw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdmaWVsZGRlZl9pZCcgICA9PiAnZmllbGRkZWZfaWQnLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdhbGlhcycgICAgICAgICA9PiAnYWxpYXMnDQogIF07DQogIA0KICBwcml2YXRlIHN0YXRpYyAkX2FsbG93ZWRfbG9jYWwgID0gWw0KICAgICdCYWNrZW5kVGV4dCcsDQogICAgJ0NoZWNrYm94JywNCiAgICAnQ2hlY2tib3hHcm91cCcsDQogICAgJ0NvbG9yUGlja2VyJywNCiAgICAnQ29udGVudFBhZ2VzJywNCiAgICAnQ3VzdG9tRmllbGRGcm9tVURUJywNCiAgICAnRHJvcGRvd24nLA0KICAgICdGaWxlUGlja2VyJywNCiAgICAnRmlsZVVwbG9hZCcsDQogICAgJ0pRdWVyeU11bHRpU2VsZWN0JywNCiAgICAnTElTRUluc3RhbmNlJywNCiAgICAnTElTRUluc3RhbmNlIEl0ZW0nLA0KICAgICdNdWx0aVNlbGVjdCcsDQogICAgJ1JhZGlvR3JvdXAnLA0KICAgICdTZWxlY3REYXRlVGltZScsDQogICAgJ1NlbGVjdEZpbGUnLA0KICAgICdTbGlkZXInLA0KICAgICdUYWdzJywNCiAgICAnVGV4dEFyZWEnLA0KICAgICdUZXh0SW5wdXQnDQogIF07DQogIA0KICBwcml2YXRlIHN0YXRpYyAkX2FsbG93ZWRfZ2xvYmFsID0gWw0KICAgICdCYWNrZW5kVGV4dCcsDQogICAgJ0NoZWNrYm94JywNCiAgICAnQ2hlY2tib3hHcm91cCcsDQogICAgJ0NvbG9yUGlja2VyJywNCiAgICAnQ29udGVudFBhZ2VzJywNCiAgICAnQ3VzdG9tRmllbGRGcm9tVURUJywNCiAgICAnRHJvcGRvd24nLA0KICAgICdGaWxlUGlja2VyJywNCiAgICAnRmlsZVVwbG9hZCcsDQogICAgJ0pRdWVyeU11bHRpU2VsZWN0JywNCiAgICAnTElTRUluc3RhbmNlJywNCiAgICAnTElTRUluc3RhbmNlIEl0ZW0nLA0KICAgICdNdWx0aVNlbGVjdCcsDQogICAgJ1JhZGlvR3JvdXAnLA0KICAgICdTZWxlY3REYXRlVGltZScsDQogICAgJ1NlbGVjdEZpbGUnLA0KICAgICdTbGlkZXInLA0KICAgICdUYWJzJywNCiAgICAnVGFncycsDQogICAgJ1RleHRBcmVhJywNCiAgICAnVGV4dElucHV0Jw0KICBdOw0KDQogIHByaXZhdGUgc3RhdGljICRfZmllbGRkZWZzOw0KICANCiAgDQogIA0KICANCiAgIy0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KICAjIHByaXZhdGUgbWV0aG9kcw0KICAjLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQogIA0KICAvL3ByaXZhdGUgc3RhdGljDQogIA0KICANCiAgLy8gR2V0IEZpZWxkIERlZmluaXRpb25zDQogIHB1YmxpYyBzdGF0aWMgZnVuY3Rpb24gR2V0RmllbGREZWZzKCRpbnN0YW5jZV9uYW1lLCAkaW5jbHVkZV9saXN0ID0gYXJyYXkoKSkNCiAgew0KICAgICRpbnN0YW5jZSA9IFxjbXNfdXRpbHM6OmdldF9tb2R1bGUoJGluc3RhbmNlX25hbWUpOw0KICAgIA0KICAgIC8vIExvYWQgZnJvbSBkYXRhYmFzZQ0KICAgICRkYiA9IGNtc21zKCktPkdldERiKCk7DQogICAgDQogICAgJHF1ZXJ5ID0gJ1NFTEVDVCAqDQogICAgICAgICAgICAgIEZST00gJyAuIGNtc19kYl9wcmVmaXgoKSAuICdtb2R1bGVfJyAuICRpbnN0YW5jZS0+X0dldE1vZHVsZUFsaWFzKCkgLiAnX2ZpZWxkZGVmDQogICAgICAgICAgICAgIEdST1VQIEJZIGZpZWxkZGVmX2lkDQogICAgICAgICAgICAgIE9SREVSIEJZIHBvc2l0aW9uJzsNCiAgICANCiAgICByZXR1cm4gJGRiLT5HZXRBbGwoJHF1ZXJ5KTsNCiAgfQ0KICANCiAgDQogICMtLS0tLS0tLS0tLS0tLS0tLS0tLS0NCiAgIyBNYWdpYyBtZXRob2RzDQogICMtLS0tLS0tLS0tLS0tLS0tLS0tLS0NCg0KICBwcml2YXRlIGZ1bmN0aW9uIF9fY29uc3RydWN0KCkge30NCiAgDQogICMtLS0tLS0tLS0tLS0tLS0tLS0tLS0NCiAgIyBTY2FubmluZyBtZXRob2RzDQogICMtLS0tLS0tLS0tLS0tLS0tLS0tLS0gDQoNCiAgcHVibGljIHN0YXRpYyBmdW5jdGlvbiBTY2FuTW9kdWxlcygpIDogdm9pZA0KICB7DQogICAgJGNvbmZpZyA9IGNtc21zKCktPkdldENvbmZpZygpOw0KICAgIA0KICAgICRmaWVsZGRlZnMgPSBzZWxmOjpMb2FkRGF0YWJhc2VJbmZvKHRydWUsIHRydWUpOw0KICAgICRpbnN0YWxsZWRfbW9kdWxlcyA9IE1vZHVsZU9wZXJhdGlvbnM6OmdldF9pbnN0YW5jZSgpLT5HZXRJbnN0YWxsZWRNb2R1bGVzKCk7DQogICAgDQogICAgLy8gTWFrZSBzdXJlIExJU0UgaXMgc2Nhbm5lZCBmaXJzdA0KICAgIGFycmF5X3Vuc2hpZnQoJGluc3RhbGxlZF9tb2R1bGVzLCBMSVNFKTsNCiAgICAkaW5zdGFsbGVkX21vZHVsZXMgPSBhcnJheV91bmlxdWUoJGluc3RhbGxlZF9tb2R1bGVzKTsNCiAgICAgIA0KICAgIC8vIFNjYW4gbW9kdWxlcyBmb3IgZmllbGRkZWZzDQogICAgJHNjYW5uZWRfZmllbGRkZWZzID0gYXJyYXkoKTsgICAgDQogICAgZm9yZWFjaCgkaW5zdGFsbGVkX21vZHVsZXMgYXMgJG1vZF9uYW1lKSANCiAgICB7DQogICAgICAkcmVzID0gYXJyYXkoKTsNCiAgICAgICRtb2RfZGlyID0gY21zX2pvaW5fcGF0aCgkY29uZmlnWydyb290X3BhdGgnXSwgJ21vZHVsZXMnLCAkbW9kX25hbWUpOyAgICANCiAgICAgIHNlbGY6OlNjYW5EaXJGb3JGaWVsZGRlZnMoJG1vZF9kaXIsICRyZXMpOw0KICAgICAgJHNjYW5uZWRfZmllbGRkZWZzWyRtb2RfbmFtZV0gPSAkcmVzOw0KICAgIH0gICAgDQogICAgDQogICAgLy8gUmVnaXN0ZXIgZmllbGRkZWZzDQogICAgZm9yZWFjaCgkc2Nhbm5lZF9maWVsZGRlZnMgYXMgJG1vZF9uYW1lID0+ICRtb2RfZGVmcykgDQogICAgew0KICAgIA0KICAgICAgZm9yZWFjaCgkbW9kX2RlZnMgYXMgJHR5cGUgPT4gJHBhdGgpIA0KICAgICAgew0KICAgICAgICAkZGlzYWJsZWQgPSBmYWxzZTsNCiAgICAgIA0KICAgICAgICAvLyBDaGVjayBpZiBGaWVsZGRlZiBpcyBtb3ZlZCwgdW5yZWdpc3RlciBpbiB0aGF0IGNhc2UuDQogICAgICAgIGlmKGlzc2V0KCRmaWVsZGRlZnNbJHR5cGVdKSAmJiAkcGF0aCAhPSAkZmllbGRkZWZzWyR0eXBlXS0+cGF0aCkgDQogICAgICAgIHsgIA0KICAgICAgICAgIHNlbGY6OlVucmVnaXN0ZXIoJHR5cGUpOw0KICAgICAgICAgIHVuc2V0KCRmaWVsZGRlZnNbJHR5cGVdKTsgICAgICAgICAgDQogICAgICAgIH0gICAgDQogICAgICANCiAgICAgICAgLy8gQ2hlY2sgaWYgZmllbGRkZWYgc2hvdWxkIGJlIHRvdGFsbHkgZGlzYWJsZWQsIHNraXAgd2hvbGUgY2hlY2sgaWYgUEhQIHZlcnNpb24gZG9lc24ndCBtZWV0IHJlcXVpcmVtZW50cy4NCiAgICAgICAgaWYgKHZlcnNpb25fY29tcGFyZShQSFBfVkVSU0lPTiwgJzUuMy4wJykgPj0gMCkgDQogICAgICAgIHsNCiAgICAgICAgICByZXF1aXJlX29uY2UoJHBhdGggLiBESVJFQ1RPUllfU0VQQVJBVE9SIC4gc2VsZjo6RmlsZW5hbWVGcm9tVHlwZSgkdHlwZSkpOw0KICAgICAgICAgICRjbGFzcyA9IHNlbGY6OkNsYXNzbmFtZUZyb21UeXBlKCR0eXBlKTsNCiAgICAgICAgICAkbW9kdWxlX2RlcHMgPSBAZXZhbCgicmV0dXJuICRjbGFzczo6R2V0TW9kdWxlRGVwcygpOyIpOyAvLyA8LSBFdmFsIHJlcXVpcmVkIGZvciBub3QgdG8gY3Jhc2ggc3lzdGVtIHdpdGggUEhQIDUuMi54DQogICAgICAgICAgDQogICAgICAgICAgaWYoaXNfYXJyYXkoJG1vZHVsZV9kZXBzKSkgDQogICAgICAgICAgew0KICAgICAgICAgIA0KICAgICAgICAgICAgZm9yZWFjaCgoYXJyYXkpJG1vZHVsZV9kZXBzIGFzICRtb2R1bGU9PiR2ZXJzaW9uKSANCiAgICAgICAgICAgIHsgICAgICAgICAgDQogICAgICAgICAgICAgICRvYmogPSBjbXNtcygpLT5HZXRNb2R1bGVJbnN0YW5jZSgkbW9kdWxlLCAkdmVyc2lvbik7IC8vIDwtIFdoeSBhbSBJIGdldHRpbmcgbm90IGluc3RhbGxlZCBtb2R1bGVzIGF0IHRoaXMgcG9pbnQ/IENvcmUgYnVnPw0KICAgICAgICAgICAgICANCiAgICAgICAgICAgICAgaWYoIWlzX29iamVjdCgkb2JqKSB8fCAhaW5fYXJyYXkoJG1vZHVsZSwgJGluc3RhbGxlZF9tb2R1bGVzKSkgDQogICAgICAgICAgICAgIHsgICAgICAgICAgICAgIA0KICAgICAgICAgICAgICAgIHNlbGY6OlNldERpc2FibGVkU3RhdHVzKCR0eXBlLCB0cnVlKTsNCiAgICAgICAgICAgICAgICAkZGlzYWJsZWQgPSB0cnVlOw0KICAgICAgICAgICAgICAgIGJyZWFrOyAvLyA8LSBJZiBvbmUgZGVwZW5kZW5jeSBmYWlscywgYWxsIG9mIGVtIGZhaWwuDQogICAgICAgICAgICAgICAgDQogICAgICAgICAgICAgIH0gDQogICAgICAgICAgICAgIGVsc2VpZihpc3NldCgkZmllbGRkZWZzWyR0eXBlXSkgJiYgJGZpZWxkZGVmc1skdHlwZV0tPmRpc2FibGVkKSANCiAgICAgICAgICAgICAgeyAgICAgICAgICAgIA0KICAgICAgICAgICAgICAgIHNlbGY6OlNldERpc2FibGVkU3RhdHVzKCR0eXBlLCBmYWxzZSk7DQogICAgICAgICAgICAgIH0NCiAgICAgICAgICAgIH0NCiAgICAgICAgICB9DQogICAgICAgIH0NCiAgICAgICAgDQogICAgICAgIC8vIEZpZWxkZGVmIG5vdCBpbiBkYXRhYmFzZSwgcmVnaXN0ZXIgaXQuDQogICAgICAgIGlmKCFpc3NldCgkZmllbGRkZWZzWyR0eXBlXSkpDQogICAgICAgIHsgICAgICAgICAgICAgICAgICANCiAgICAgICAgICBzZWxmOjpSZWdpc3RlcigkbW9kX25hbWUsICR0eXBlLCAkcGF0aCwgJGRpc2FibGVkKTsNCiAgICAgICAgfQ0KICAgICAgICBlbHNlIA0KICAgICAgICB7ICAgICAgICANCiAgICAgICAgICB1bnNldCgkZmllbGRkZWZzWyR0eXBlXSk7DQogICAgICAgIH0gICAgICAgIA0KICAgICAgfQ0KICAgIH0NCiAgICAgIA0KICAgIC8vIFVucmVnaXN0ZXIgZmllbGRkZWZzDQogICAgZm9yZWFjaCgkZmllbGRkZWZzIGFzICRvbmVkZWYpDQogICAgeyAgDQogICAgICBpZigNCiAgICAgICAgICAhaXNfcmVhZGFibGUoJG9uZWRlZi0+cGF0aCAuIERJUkVDVE9SWV9TRVBBUkFUT1IgLiBzZWxmOjpGaWxlbmFtZUZyb21UeXBlKCRvbmVkZWYtPnR5cGUpKSB8fCANCiAgICAgICAgICAhaW5fYXJyYXkoJG9uZWRlZi0+b3JpZ2luYXRvciwgJGluc3RhbGxlZF9tb2R1bGVzKQ0KICAgICAgICApIA0KICAgICAgeyAgICAgIA0KICAgICAgICBzZWxmOjpVbnJlZ2lzdGVyKCRvbmVkZWYtPnR5cGUpOw0KICAgICAgfQ0KICAgIH0gICAgDQogIH0NCiAgDQogIHN0YXRpYyBwcml2YXRlIGZ1bmN0aW9uIFNjYW5EaXJGb3JGaWVsZGRlZnMoJHNyYywgJiRyZXMpDQogIHsNCiAgICAkaW52YWxpZCA9ICBhcnJheSgnLicsICcuLicpOw0KICAgICRkaXIgPSBvcGVuZGlyKCRzcmMpOyAvLyA8LSBUaHJvdyBleGNlcHRpb24gb24gZmFpbHVyZT8NCg0KICAgIHdoaWxlKGZhbHNlICE9PSAoJGZpbGUgPSByZWFkZGlyKCRkaXIpKSkgDQogICAgeyAgDQogICAgICBpZiAoaW5fYXJyYXkoJGZpbGUsICRpbnZhbGlkKSkgY29udGludWU7IC8vIDwtIFNraXAgc3R1ZmYgd2UgbmV2ZXIgYWxsb3cgdG8gY29weQ0KDQogICAgICBpZiAoaXNfZGlyKCRzcmMgLiBESVJFQ1RPUllfU0VQQVJBVE9SIC4gJGZpbGUpKSANCiAgICAgIHsgDQogICAgICAgIHNlbGY6OlNjYW5EaXJGb3JGaWVsZGRlZnMoJHNyYyAuIERJUkVDVE9SWV9TRVBBUkFUT1IgLiAkZmlsZSwgJHJlcyk7IA0KICAgICAgfSANCiAgICAgIGVsc2UgDQogICAgICB7IA0KICAgICAgICANCiAgICAgICAgaWYoc3RhcnRzd2l0aCgkZmlsZSwgc2VsZjo6RklFTERERUZfUFJFRklYIC4gJy4nKSAmJiBlbmRzd2l0aCgkZmlsZSwgJy5waHAnKSkgDQogICAgICAgIHsgICAgICANCiAgICAgICAgICAkZm4gPSAkc3JjIC4gRElSRUNUT1JZX1NFUEFSQVRPUiAuICRmaWxlOw0KICAgICAgICAgIA0KICAgICAgICAgIGlmKGlzX3JlYWRhYmxlKCRmbikpIA0KICAgICAgICAgIHsNCiAgICAgICAgICAgICRmaWxlID0gZXhwbG9kZSgnLicsICRmaWxlKTsNCiAgICAgICAgICAgICRyZXNbJGZpbGVbMV1dID0gJHNyYzsNCiAgICAgICAgICB9ICAgICAgICAgIA0KICAgICAgICB9DQogICAgICB9IA0KICAgIH0gDQogICAgDQogICAgY2xvc2VkaXIoJGRpcik7ICAgICANCiAgfQ0KICANCiAgc3RhdGljIHByaXZhdGUgZnVuY3Rpb24gRmlsZW5hbWVGcm9tVHlwZSgkdHlwZSkNCiAgew0KICAgIHJldHVybiBzZWxmOjpGSUVMRERFRl9QUkVGSVggLiAnLicgLiAkdHlwZSAuICcucGhwJzsNCiAgfQ0KICANCiAgc3RhdGljIHByaXZhdGUgZnVuY3Rpb24gQ2xhc3NuYW1lRnJvbVR5cGUoJHR5cGUpDQogIHsNCiAgICByZXR1cm4gc2VsZjo6RklFTERERUZfUFJFRklYIC4gJ18nIC4gJHR5cGU7DQogIH0gIA0KICANCiAgIy0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KICAjIExvYWQgbWV0aG9kcw0KICAjLS0tLS0tLS0tLS0tLS0tLS0tLS0tICAgICANCiAgDQogIHN0YXRpYyBwcml2YXRlIGZ1bmN0aW9uIExvYWREYXRhYmFzZUluZm8oJGZvcmNlX2RiID0gZmFsc2UsICRsb2FkX2FsbCA9IGZhbHNlKQ0KICB7DQogICAgaWYoaXNfYXJyYXkoc2VsZjo6JF9maWVsZGRlZnMpICYmICEkZm9yY2VfZGIpDQogICAgeyAgICAgDQogICAgICByZXR1cm4gc2VsZjo6JF9maWVsZGRlZnM7DQogICAgfQ0KICAgIA0KICAgICRkYiA9IGNtc21zKCktPkdldERiKCk7DQogICAgc2VsZjo6JF9maWVsZGRlZnMgPSBhcnJheSgpOw0KICANCiAgICAkcXVlcnkgPSAiU0VMRUNUICogRlJPTSAiIC4gY21zX2RiX3ByZWZpeCgpIC4gIm1vZHVsZV9saXNlX2ZpZWxkZGVmcyI7DQogICAgICANCiAgICBpZighJGxvYWRfYWxsKQ0KICAgIHsNCiAgICAgICRxdWVyeSAuPSAiIFdIRVJFIGFjdGl2ZSA9IDEgQU5EIGRpc2FibGVkID0gMCI7DQogICAgfQ0KICAgICAgDQogICAgJHF1ZXJ5IC49ICIgT1JERVIgQlkgdHlwZSI7DQogICAgDQogICAgJGRiciA9ICRkYi0+RXhlY3V0ZSgkcXVlcnkpOw0KDQogICAgd2hpbGUgKCRkYnIgJiYgJHJvdyA9ICRkYnItPkZldGNoUm93KCkpIA0KICAgIHsNCiAgICAgICRvYmogPSBuZXcgc3RkQ2xhc3MoKTsNCiAgICANCiAgICAgICRvYmotPnR5cGUgPSAkcm93Wyd0eXBlJ107DQogICAgICAkb2JqLT5vcmlnaW5hdG9yID0gJHJvd1snb3JpZ2luYXRvciddOw0KICAgICAgJG9iai0+YWN0aXZlID0gJHJvd1snYWN0aXZlJ10gPyB0cnVlIDogZmFsc2U7DQogICAgICAkb2JqLT5kaXNhYmxlZCA9ICRyb3dbJ2Rpc2FibGVkJ10gPyB0cnVlIDogZmFsc2U7DQogICAgICAkb2JqLT5wYXRoID0gJHJvd1sncGF0aCddOw0KICAgIA0KICAgICAgc2VsZjo6JF9maWVsZGRlZnNbJHJvd1sndHlwZSddXSA9ICRvYmo7DQogICAgfQ0KICANCiAgICByZXR1cm4gc2VsZjo6JF9maWVsZGRlZnM7ICANCiAgfQ0KDQogIHB1YmxpYyBzdGF0aWMgZnVuY3Rpb24gTG9hZEZpZWxkZGVmQnlUeXBlKCR0eXBlLCAkbW9kID0gbnVsbCkNCiAgew0KICAgICRmaWVsZGRlZnMgPSBzZWxmOjpMb2FkRGF0YWJhc2VJbmZvKCk7DQogICAgDQogICAgaWYoaXNzZXQoJGZpZWxkZGVmc1skdHlwZV0pKSANCiAgICB7DQogICAgDQogICAgICBpZighY21zX3V0aWxzOjptb2R1bGVfYXZhaWxhYmxlKCRmaWVsZGRlZnNbJHR5cGVdLT5vcmlnaW5hdG9yKSkNCiAgICAgICAgcmV0dXJuIGZhbHNlOyAgICANCiAgICANCiAgICAgICRmbiA9ICRmaWVsZGRlZnNbJHR5cGVdLT5wYXRoIC4gRElSRUNUT1JZX1NFUEFSQVRPUiAuIHNlbGY6OkZpbGVuYW1lRnJvbVR5cGUoJHR5cGUpOw0KICAgICAgDQogICAgICBpZihpc19yZWFkYWJsZSgkZm4pKSANCiAgICAgIHsNCiAgICAgICAgcmVxdWlyZV9vbmNlKCRmbik7DQogICAgICAgICRjbGFzcyA9IHNlbGY6OkNsYXNzbmFtZUZyb21UeXBlKCR0eXBlKTsNCiAgICAgICAgJG9iaiA9IG5ldyAkY2xhc3MoJGZpZWxkZGVmc1skdHlwZV0sICRtb2QpOw0KICAgICAgICANCiAgICAgICAgcmV0dXJuICRvYmo7DQogICAgICB9DQogICAgfQ0KICAgIA0KICAgIHJldHVybiBmYWxzZTsNCiAgfQ0KDQogIHB1YmxpYyBzdGF0aWMgZnVuY3Rpb24gR2V0RmllbGRkZWZUeXBlcygkbW9kZSA9IExJU0U6Ok1PREVfTElTVCkgOiBhcnJheQ0KICB7DQogICAgJGZpZWxkZGVmcyA9IHNlbGY6OkxvYWREYXRhYmFzZUluZm8oKTsNCiAgICANCiAgICAkcmVzdWx0ID0gW107DQogICAgZm9yZWFjaCgkZmllbGRkZWZzIGFzICRvbmVkZWYpDQogICAgew0KICAgICAgaWYoJG1vZGUgPT0gTElTRTo6TU9ERV9MT0NBTCAmJiAhaW5fYXJyYXkoJG9uZWRlZi0+dHlwZSwgc2VsZjo6JF9hbGxvd2VkX2xvY2FsKSApIGNvbnRpbnVlOw0KICAgICAgaWYoJG1vZGUgPT0gTElTRTo6TU9ERV9HTE9CQUwgJiYgIWluX2FycmF5KCRvbmVkZWYtPnR5cGUsIHNlbGY6OiRfYWxsb3dlZF9nbG9iYWwpICkgY29udGludWU7DQogICAgICANCiAgICAgICRvYmogPSBzZWxmOjpMb2FkRmllbGRkZWZCeVR5cGUoJG9uZWRlZi0+dHlwZSk7DQogICAgICBpZiggaXNfb2JqZWN0KCRvYmopICkgJHJlc3VsdFskb2JqLT5HZXRGcmllbmRseXR5cGUoKV0gPSAkb2JqLT5HZXRUeXBlKCk7DQogICAgfQ0KICAgIA0KICAgIGtzb3J0KCRyZXN1bHQpOw0KICAgIA0KICAgIHJldHVybiAkcmVzdWx0Ow0KICB9DQogIA0KICBzdGF0aWMgZnVuY3Rpb24gR2V0UmVnaXN0ZXJlZEZpZWxkZGVmcygkZm9yY2VfZGIgPSBmYWxzZSwgJGxvYWRfYWxsID0gZmFsc2UpDQogIHsNCiAgICAkZmllbGRkZWZzID0gc2VsZjo6TG9hZERhdGFiYXNlSW5mbygkZm9yY2VfZGIsICRsb2FkX2FsbCk7DQogICAgDQogICAgJHJlc3VsdCA9IGFycmF5KCk7DQogICAgZm9yZWFjaCgkZmllbGRkZWZzIGFzICRvbmVkZWYpIA0KICAgIHsNCiAgICAgICRvYmogPSBzZWxmOjpMb2FkRmllbGRkZWZCeVR5cGUoJG9uZWRlZi0+dHlwZSk7DQogICAgICBpZihpc19vYmplY3QoJG9iaikpDQogICAgICB7ICANCiAgICAgICAgJHJlc3VsdFskb2JqLT5HZXRGcmllbmRseXR5cGUoKV0gPSAkb2JqOw0KICAgICAgfQ0KICAgIH0NCiAgICAgIA0KICAgIHJldHVybiAkcmVzdWx0OyAgDQogIH0NCg0KICAjLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQogICMgTW9kdWxlIGhlbHAgbWV0aG9kcw0KICAjLS0tLS0tLS0tLS0tLS0tLS0tLS0tICAgDQogIA0KICBzdGF0aWMgZnVuY3Rpb24gR2V0SGVhZGVySFRNTCgpDQogIHsNCiAgICAkZmllbGRkZWZzID0gc2VsZjo6TG9hZERhdGFiYXNlSW5mbygpOw0KICAgIA0KICAgICRzdHJpbmcgPSAnJzsNCiAgICBmb3JlYWNoKCRmaWVsZGRlZnMgYXMgJG9uZWRlZikNCiAgICB7DQogICAgICAkb2JqID0gc2VsZjo6TG9hZEZpZWxkZGVmQnlUeXBlKCRvbmVkZWYtPnR5cGUpOw0KICAgICAgDQogICAgICBpZihpc19vYmplY3QoJG9iaikpIA0KICAgICAgeyAgICANCiAgICAgICAgJGZpZWxkX2hlYWRlcl9odG1sID0gJG9iai0+R2V0SGVhZGVySFRNTCgpOw0KICAgICAgICANCiAgICAgICAgaWYoIWlzX251bGwoJGZpZWxkX2hlYWRlcl9odG1sKSkNCiAgICAgICAgICAkc3RyaW5nIC49ICRmaWVsZF9oZWFkZXJfaHRtbDsNCiAgICAgICAgICANCiAgICAgICAgdW5zZXQoJG9iaik7DQogICAgICB9DQogICAgfQ0KICAgICAgDQogICAgcmV0dXJuICRzdHJpbmc7ICANCiAgfQ0KICANCiAgIy0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KICAjIFRvZ2dsZSBtZXRob2RzDQogICMtLS0tLS0tLS0tLS0tLS0tLS0tLS0gICANCiAgDQogIHB1YmxpYyBzdGF0aWMgZnVuY3Rpb24gVG9nZ2xlQWN0aXZlKCR0eXBlKQ0KICB7DQogICAgJGRiID0gY21zbXMoKS0+R2V0RGIoKTsNCiAgDQogICAgJHF1ZXJ5ICA9ICdTRUxFQ1QgYWN0aXZlIEZST00gJyAuIGNtc19kYl9wcmVmaXgoKSAuICdtb2R1bGVfbGlzZV9maWVsZGRlZnMgV0hFUkUgdHlwZT0/JzsNCiAgICAkYWN0aXZlID0gJGRiLT5HZXRPbmUoJHF1ZXJ5LCBhcnJheSgkdHlwZSkpOw0KICAgICAgDQogICAgJGFjdGl2ZSA9ICRhY3RpdmUgPyBmYWxzZSA6IHRydWU7DQogIA0KICAgIHNlbGY6OlNldEFjdGl2ZVN0YXR1cygkdHlwZSwgJGFjdGl2ZSk7DQogICAgDQogICAgcmV0dXJuICRhY3RpdmU7DQogICAgDQogIH0NCiAgDQogIHB1YmxpYyBzdGF0aWMgZnVuY3Rpb24gU2V0QWN0aXZlU3RhdHVzKCR0eXBlLCAkc3RhdHVzKSA6IHZvaWQNCiAgew0KICAgICRkYiA9IGNtc21zKCktPkdldERiKCk7DQogICAgDQogICAgJHF1ZXJ5ICA9ICdVUERBVEUgJyAuIGNtc19kYl9wcmVmaXgoKSAuICdtb2R1bGVfbGlzZV9maWVsZGRlZnMgU0VUIGFjdGl2ZT0/IFdIRVJFIHR5cGU9Pyc7DQogICAgJHJlc3VsdCA9ICRkYi0+RXhlY3V0ZSgkcXVlcnksIGFycmF5KCRzdGF0dXMsICR0eXBlKSk7DQoNCiAgICBpZighJHJlc3VsdCkNCiAgICAgIHRocm93IG5ldyBcTElTRVxFeGNlcHRpb24oJGRiLT5FcnJvck5vKCkgLiAnIC0gJyAuICRkYi0+RXJyb3JNc2coKSAuICcgLSBRdWVyeTogJyAuICRkYi0+c3FsLCBcTElTRVxFcnJvcjo6RElTQ1JFVEVfREIgKTsgDQogICAgDQogIH0NCg0KICAvLyBOb3QgdXNlZCBjdXJyZW50bHkgYW55d2hlcmUNCiAgcHVibGljIHN0YXRpYyBmdW5jdGlvbiBUb2dnbGVEaXNhYmxlZCgkdHlwZSkNCiAgew0KICAgICRkYiA9IGNtc21zKCktPkdldERiKCk7DQogIA0KICAgICRxdWVyeSAgPSAnU0VMRUNUIGRpc2FibGVkIEZST00gJyAuIGNtc19kYl9wcmVmaXgoKSAuICdtb2R1bGVfbGlzZV9maWVsZGRlZnMgV0hFUkUgdHlwZT0/JzsNCiAgICAkYWN0aXZlID0gJGRiLT5HZXRPbmUoJHF1ZXJ5LCBhcnJheSgkdHlwZSkpOw0KICAgICAgDQogICAgJGFjdGl2ZSA9ICRhY3RpdmUgPyBmYWxzZSA6IHRydWU7DQogIA0KICAgIHNlbGY6OlNldERpc2FibGVkU3RhdHVzKCR0eXBlLCAkYWN0aXZlKTsNCiAgICANCiAgICByZXR1cm4gJGFjdGl2ZTsNCiAgICANCiAgfQ0KICANCiAgcHVibGljIHN0YXRpYyBmdW5jdGlvbiBTZXREaXNhYmxlZFN0YXR1cygkdHlwZSwgJHN0YXR1cykgOiB2b2lkDQogIHsNCiAgICAkZGIgPSBjbXNtcygpLT5HZXREYigpOw0KICAgIA0KICAgICRxdWVyeSAgPSAnVVBEQVRFICcgLiBjbXNfZGJfcHJlZml4KCkgLiAnbW9kdWxlX2xpc2VfZmllbGRkZWZzIFNFVCBkaXNhYmxlZD0/IFdIRVJFIHR5cGU9Pyc7DQogICAgJHJlc3VsdCA9ICRkYi0+RXhlY3V0ZSgkcXVlcnksIGFycmF5KCRzdGF0dXMsICR0eXBlKSk7DQogICAgDQogICAgaWYgKCEkcmVzdWx0KSANCiAgICAgIHRocm93IG5ldyBcTElTRVxFeGNlcHRpb24oJGRiLT5FcnJvck5vKCkgLiAnIC0gJyAuICRkYi0+RXJyb3JNc2coKSAuICcgLSBRdWVyeTogJyAuICRkYi0+c3FsLCBcTElTRVxFcnJvcjo6RElTQ1JFVEVfREIgKTsgDQogICAgDQogIH0gICAgDQogIA0KICAjLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQogICMgUmVnaXN0ZXIgbWV0aG9kcw0KICAjLS0tLS0tLS0tLS0tLS0tLS0tLS0tICAgICANCg0KICBzdGF0aWMgcHVibGljIGZ1bmN0aW9uIFJlZ2lzdGVyKCRvcmlnaW5hdG9yLCAkdHlwZSwgJHBhdGgsICRkaXNhYmxlZCA9IDAsICRhY3RpdmUgPSAxKSA6IGJvb2wNCiAgew0KICAgICRkYiA9IGNtc21zKCktPkdldERiKCk7DQogICAgDQogICAgJHF1ZXJ5ICA9ICdTRUxFQ1Qgb3JpZ2luYXRvciBGUk9NICcgLiBjbXNfZGJfcHJlZml4KCkgLiAnbW9kdWxlX2xpc2VfZmllbGRkZWZzIFdIRVJFIHR5cGU9Pyc7DQogICAgJGV4aXN0cyA9ICRkYi0+R2V0T25lKCRxdWVyeSwgYXJyYXkoJHR5cGUpKTsNCiAgICANCiAgICBpZigkZXhpc3RzKSByZXR1cm4gZmFsc2U7DQogICAgICAgIA0KICAgICRxdWVyeSAgPSAnSU5TRVJUIElOVE8gJyAuIGNtc19kYl9wcmVmaXgoKSAuICdtb2R1bGVfbGlzZV9maWVsZGRlZnMgKHR5cGUsIG9yaWdpbmF0b3IsIHBhdGgsIGFjdGl2ZSwgZGlzYWJsZWQpIFZBTFVFUyAoPyw/LD8sPyw/KSc7DQogICAgJHJlc3VsdCA9ICRkYi0+RXhlY3V0ZSgkcXVlcnksIGFycmF5KCR0eXBlLCAkb3JpZ2luYXRvciwgJHBhdGgsICRhY3RpdmUsICRkaXNhYmxlZCkpOw0KDQogICAgaWYoISRyZXN1bHQpIA0KICAgICAgdGhyb3cgbmV3IFxMSVNFXEV4Y2VwdGlvbigkZGItPkVycm9yTm8oKSAuICcgLSAnIC4gJGRiLT5FcnJvck1zZygpIC4gJyAtIFF1ZXJ5OiAnIC4gJGRiLT5zcWwsIFxMSVNFXEVycm9yOjpESVNDUkVURV9EQiApOyANCiAgICANCiAgICByZXR1cm4gdHJ1ZTsNCiAgfQ0KICANCiAgLy8gTWFrZSBicnV0ZSBmb3JjZSBhdHRlbXB0IHRvIHdpcGUgaXQgZnJvbSBtb2R1bGVzDQogIHB1YmxpYyBzdGF0aWMgZnVuY3Rpb24gVW5yZWdpc3RlcigkdHlwZSkgOiBib29sDQogIHsNCiAgICAkZGIgPSBjbXNtcygpLT5HZXREYigpOw0KDQogICAgJHF1ZXJ5ID0gJ0RFTEVURSBGUk9NICcgLiBjbXNfZGJfcHJlZml4KCkgLiAnbW9kdWxlX2xpc2VfZmllbGRkZWZzIFdIRVJFIHR5cGUgPSA/JzsNCiAgICAkcmVzdWx0ID0gJGRiLT5FeGVjdXRlKCRxdWVyeSwgYXJyYXkoJHR5cGUpKTsNCiAgICANCiAgICBpZighJHJlc3VsdCkgDQogICAgICB0aHJvdyBuZXcgXExJU0VcRXhjZXB0aW9uKCRkYi0+RXJyb3JObygpIC4gJyAtICcgLiAkZGItPkVycm9yTXNnKCkgLiAnIC0gUXVlcnk6ICcgLiAkZGItPnNxbCwgXExJU0VcRXJyb3I6OkRJU0NSRVRFX0RCICk7IA0KICAgIA0KICAgIHJldHVybiB0cnVlOyAgICANCiAgfQ0KICANCiAgIy0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KICAjIEZyYW1ld29yayBtZXRob2RzDQogICMtLS0tLS0tLS0tLS0tLS0tLS0tLS0gICANCg0KICBwdWJsaWMgc3RhdGljIGZ1bmN0aW9uIFNhdmUoTElTRSAmJG1vZCwgTElTRUZpZWxkZGVmQmFzZSAmJG9iaikgOiB2b2lkDQogIHsNCiAgICAkZGIgPSBjbXNtcygpLT5HZXREYigpOyAgDQogIA0KICAgIC8vIGdlbmVyYXRlIGFsaWFzIGlmIG5vdCBzdXBwbGllZA0KICAgIGlmICgkb2JqLT5HZXRBbGlhcygpID09ICcnKSANCiAgICB7DQogICAgICAkYWxpYXMgPSBsaXNlX3V0aWxzOjpnZW5lcmF0ZV9hbGlhcygkb2JqLT5HZXROYW1lKCksICRvYmotPkdldEZyaWVuZGx5VHlwZSgpKTsNCiAgICAgIHdoaWxlKHNlbGY6OkxvYWQoJG1vZCwgJ2FsaWFzJywgJGFsaWFzKSAhPSBmYWxzZSkgeyRhbGlhcyAuPSAnXyc7fQ0KICAgICAgJG9iai0+U2V0QWxpYXMoJGFsaWFzKTsNCiAgICB9ICANCiAgDQogICAgLy8gdXBkYXRlDQogICAgaWYgKCRvYmotPkdldElkKCkgPiAwKSANCiAgICB7DQogICAgDQogICAgICAkcXVlcnkgPSAgJ1VQREFURSAnIA0KICAgICAgICAgICAgICAgIC4gY21zX2RiX3ByZWZpeCgpIA0KICAgICAgICAgICAgICAgIC4gJ21vZHVsZV8nIA0KICAgICAgICAgICAgICAgIC4gJG1vZC0+X0dldE1vZHVsZUFsaWFzKCkgDQogICAgICAgICAgICAgICAgLiAnX2ZpZWxkZGVmIFNFVCBuYW1lID0gPywgYWxpYXMgPSA/LCBoZWxwID0gPywgdHlwZSA9ID8sIHJlcXVpcmVkID0gPywgdGVtcGxhdGU9PyBXSEVSRSBmaWVsZGRlZl9pZCA9ID8nOw0KICAgICAgDQogICAgICAkcmVzdWx0ID0gJGRiLT5FeGVjdXRlKA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJHF1ZXJ5LCANCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFycmF5KA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkb2JqLT5HZXROYW1lKCksIA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkb2JqLT5HZXRBbGlhcygpLCANCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJG9iai0+R2V0RGVzYygpLCANCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJG9iai0+R2V0VHlwZSgpLCANCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJG9iai0+R2V0UmVxdWlyZWQoKSwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJG9iai0+R2V0VGVtcGxhdGUoKSwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJG9iai0+R2V0SWQoKQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICk7DQogICAgICBpZighJHJlc3VsdCkgDQogICAgICAgIHRocm93IG5ldyBcTElTRVxFeGNlcHRpb24oJGRiLT5FcnJvck5vKCkgLiAnIC0gJyAuICRkYi0+RXJyb3JNc2coKSAuICcgLSBRdWVyeTogJyAuICRkYi0+c3FsLCBcTElTRVxFcnJvcjo6RElTQ1JFVEVfREIgKTsgDQoNCiAgICAvLyBpbnNlcnQNCiAgICB9IA0KICAgIGVsc2UgDQogICAgew0KICAgIA0KICAgICAgJHF1ZXJ5ID0gJ1NFTEVDVCBtYXgocG9zaXRpb24pICsgMSBGUk9NICcgLiBjbXNfZGJfcHJlZml4KCkgLiAnbW9kdWxlXycgLiAkbW9kLT5fR2V0TW9kdWxlQWxpYXMoKSAuICdfZmllbGRkZWYnOw0KICAgICAgDQogICAgICAkcG9zaXRpb24gPSAkZGItPkdldE9uZSgkcXVlcnkpOw0KICAgICAgDQogICAgICBpZiAoJHBvc2l0aW9uID09IG51bGwpICRwb3NpdGlvbiA9IDE7DQogICAgICANCiAgICAgICRxdWVyeSA9ICdJTlNFUlQgSU5UTyAnIC4gY21zX2RiX3ByZWZpeCgpIC4gJ21vZHVsZV8nIC4gJG1vZC0+X0dldE1vZHVsZUFsaWFzKCkgLiAnX2ZpZWxkZGVmIChuYW1lLCBhbGlhcywgaGVscCwgdHlwZSwgcG9zaXRpb24sIHJlcXVpcmVkLCB0ZW1wbGF0ZSkgVkFMVUVTICg/LCA/LCA/LCA/LCA/LCA/LCA/KSc7DQogICAgICANCiAgICAgICRyZXN1bHQgPSAkZGItPkV4ZWN1dGUoDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkcXVlcnksDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRvYmotPkdldE5hbWUoKSwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJG9iai0+R2V0QWxpYXMoKSwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJG9iai0+R2V0RGVzYygpLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkb2JqLT5HZXRUeXBlKCksDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRwb3NpdGlvbiwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJG9iai0+R2V0UmVxdWlyZWQoKSwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJG9iai0+R2V0VGVtcGxhdGUoKQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICk7DQoNCiAgICAgIGlmKCEkcmVzdWx0KSANCiAgICAgICAgdGhyb3cgbmV3IFxMSVNFXEV4Y2VwdGlvbigkZGItPkVycm9yTm8oKSAuICcgLSAnIC4gJGRiLT5FcnJvck1zZygpIC4gJyAtIFF1ZXJ5OiAnIC4gJGRiLT5zcWwsIFxMSVNFXEVycm9yOjpESVNDUkVURV9EQiApOyAgICAgIA0KDQogICAgICAkb2JqLT5TZXRJZCgkZGItPkluc2VydF9JRCgpKTsgIA0KICAgIH0NCiAgICANCiAgICAvLyBEcm9wIGFsbCBvcHRpb25zDQogICAgJHF1ZXJ5ID0gJ0RFTEVURSBGUk9NICcgLiBjbXNfZGJfcHJlZml4KCkgLiAnbW9kdWxlXycgLiAkbW9kLT5fR2V0TW9kdWxlQWxpYXMoKSAuICdfZmllbGRkZWZfb3B0cyBXSEVSRSBmaWVsZGRlZl9pZCA9ID8nOw0KICAgICRyZXN1bHQgPSAkZGItPkV4ZWN1dGUoJHF1ZXJ5LCBhcnJheSgkb2JqLT5HZXRJZCgpKSk7ICAgIA0KICAgIA0KICAgIGlmKCEkcmVzdWx0KSANCiAgICAgIHRocm93IG5ldyBcTElTRVxFeGNlcHRpb24oJGRiLT5FcnJvck5vKCkgLiAnIC0gJyAuICRkYi0+RXJyb3JNc2coKSAuICcgLSBRdWVyeTogJyAuICRkYi0+c3FsLCBcTElTRVxFcnJvcjo6RElTQ1JFVEVfREIgKTsgICAgDQogICAgDQogICAgJHF1ZXJ5ID0gJ0lOU0VSVCBJTlRPICcgLiBjbXNfZGJfcHJlZml4KCkgLiAnbW9kdWxlXycgLiAkbW9kLT5fR2V0TW9kdWxlQWxpYXMoKSAuICdfZmllbGRkZWZfb3B0cyAoZmllbGRkZWZfaWQsIG5hbWUsIHZhbHVlKSBWQUxVRVMgKD8sID8sID8pJzsNCiAgICANCiAgICAvLyBJbnNlcnQgYWxsIG9wdGlvbnMNCiAgICBmb3JlYWNoKCRvYmotPkdldE9wdGlvblZhbHVlcygpIGFzICRrZXk9PiR2YWx1ZSkNCiAgICB7DQogICAgICAkcmVzdWx0ID0gJGRiLT5FeGVjdXRlKCRxdWVyeSwgYXJyYXkoJG9iai0+R2V0SWQoKSwgJGtleSwgJHZhbHVlKSk7ICAgICAgDQogICAgICANCiAgICAgIGlmKCEkcmVzdWx0KSANCiAgICAgICAgdGhyb3cgbmV3IFxMSVNFXEV4Y2VwdGlvbigkZGItPkVycm9yTm8oKSAuICcgLSAnIC4gJGRiLT5FcnJvck1zZygpIC4gJyAtIFF1ZXJ5OiAnIC4gJGRiLT5zcWwsIFxMSVNFXEVycm9yOjpESVNDUkVURV9EQiApOyAgICAgIA0KICAgIH0NCiAgfQ0KICANCiAgcHVibGljIHN0YXRpYyBmdW5jdGlvbiBEZWxldGUoTElTRSAkbW9kLCAkZmllbGRkZWZfaWQpIDogdm9pZA0KICB7DQogICAgJGRiID0gY21zbXMoKS0+R2V0RGIoKTsNCi8qICAgIA0KICAgIC8vIEhhbmRsZSBleHRlcm5hbCBkYXRhYmFzZXMgKHRoaXMgbWlnaHQgbm90IGJlbG9uZyBoZXJlLCBkb3VibGUgY2hlY2spDQogICAgJGZpZWxkZGVmID0gc2VsZjo6TG9hZCgkbW9kLCAnZmllbGRkZWZfaWQnLCAkZmllbGRkZWZfaWQpOw0KICAgICRmaWVsZGRlZi0+RXZlbnRIYW5kbGVyKCktPkRlbGV0ZSgkbW9kKTsNCiovICAgIA0KICAgIC8vIGdldCBkZXRhaWxzDQogICAgJHF1ZXJ5ID0gJ1NFTEVDVCAqIEZST00gJyAuIGNtc19kYl9wcmVmaXgoKSAuICdtb2R1bGVfJyAuICRtb2QtPl9HZXRNb2R1bGVBbGlhcygpIC4gJ19maWVsZGRlZiBXSEVSRSBmaWVsZGRlZl9pZCA9ID8nOw0KICAgICRyb3cgPSAkZGItPkdldFJvdygkcXVlcnksIGFycmF5KCRmaWVsZGRlZl9pZCkpOw0KICAgICAgDQogICAgLy8gZGVsZXRlIGZpZWxkIGRlZmluaXRpb25zDQogICAgJHF1ZXJ5ID0gJ0RFTEVURSBGUk9NICcgLiBjbXNfZGJfcHJlZml4KCkgLiAnbW9kdWxlXycgLiAkbW9kLT5fR2V0TW9kdWxlQWxpYXMoKSAuICdfZmllbGRkZWYgV0hFUkUgZmllbGRkZWZfaWQgPSA/JzsNCiAgICAkZGItPkV4ZWN1dGUoJHF1ZXJ5LCBhcnJheSgkZmllbGRkZWZfaWQpKTsNCiAgICANCiAgICAvLyBkZWxldGUgZmllbGQgZGVmaW5pdGlvbnMgb3B0aW9ucw0KICAgICRxdWVyeSA9ICdERUxFVEUgRlJPTSAnIC4gY21zX2RiX3ByZWZpeCgpIC4gJ21vZHVsZV8nIC4gJG1vZC0+X0dldE1vZHVsZUFsaWFzKCkgLiAnX2ZpZWxkZGVmX29wdHMgV0hFUkUgZmllbGRkZWZfaWQgPSA/JzsNCiAgICAkZGItPkV4ZWN1dGUoJHF1ZXJ5LCBhcnJheSgkZmllbGRkZWZfaWQpKTsgIA0KICAgIA0KICAgIC8vIGRlbGV0ZSBmaWVsZCB2YWx1ZXMNCiAgICAkcXVlcnkgPSAnREVMRVRFIEZST00gJyAuIGNtc19kYl9wcmVmaXgoKSAuICdtb2R1bGVfJyAuICRtb2QtPl9HZXRNb2R1bGVBbGlhcygpIC4gJ19maWVsZHZhbCBXSEVSRSBmaWVsZGRlZl9pZCA9ID8nOw0KICAgICRkYi0+RXhlY3V0ZSgkcXVlcnksIGFycmF5KCRmaWVsZGRlZl9pZCkpOw0KICAgIA0KICAgIC8vIGNsZWFuIHVwIHNvcnQgb3JkZXINCiAgICAkcXVlcnkgPSAnVVBEQVRFICcgLiBjbXNfZGJfcHJlZml4KCkgLiAnbW9kdWxlXycgLiAkbW9kLT5fR2V0TW9kdWxlQWxpYXMoKSAuICdfZmllbGRkZWYgU0VUIHBvc2l0aW9uID0gKHBvc2l0aW9uIC0gMSkgV0hFUkUgcG9zaXRpb24gPiA/JzsNCiAgICAkZGItPkV4ZWN1dGUoJHF1ZXJ5LCBhcnJheSgkcm93Wydwb3NpdGlvbiddKSk7DQogICAgDQogIH0NCiAgDQogIC8qKg0KICAgKiBMb2FkcyBmaWVsZGRlZiBvYmplY3QNCiAgICoNCiAgICogQExJU0UgJiRtb2QsIEFycmF5ICRyb3cNCiAgICogQExJU0UgJiRtb2QsIFN0cmluZyAka2V5LCBTdHJpbmcgJHZhbHVlDQogICAqIEByZXR1cm4gYm9vbHxcTElTRUZpZWxkZGVmQmFzZQ0KICAgKiBAdGhyb3dzIFxFeGNlcHRpb24NCiAgICovDQogIHB1YmxpYyBzdGF0aWMgZnVuY3Rpb24gTG9hZCgpDQogIHsNCiAgICAkYXJncyA9IGZ1bmNfZ2V0X2FyZ3MoKTsNCiAgICAkbW9kID0gJGFyZ3NbMF07DQogIA0KICAgICRyb3cgPSBjb3VudCgkYXJncykgPT0gMiA/ICRhcmdzWzFdIDogZmFsc2U7DQogICAgJGRiID0gY21zbXMoKS0+R2V0RGIoKTsgIA0KICAgIA0KICAgIGlmKCEkcm93KSANCiAgICB7DQogIA0KICAgICAgZm9yZWFjaChzZWxmOjokaWRlbnRpZmllcnMgYXMgJGRiX2NvbHVtbiA9PiAkaWRlbnRpZmllcikNCiAgICAgIHsNCiAgICAgICAgaWYoJGlkZW50aWZpZXIgPT0gJGFyZ3NbMV0pIA0KICAgICAgICB7DQogICAgICAgICAgJHF1ZXJ5ID0gIlNFTEVDVCAqIEZST00gIiAuIGNtc19kYl9wcmVmaXgoKSAuICJtb2R1bGVfIiAuICRtb2QtPl9HZXRNb2R1bGVBbGlhcygpIC4gIl9maWVsZGRlZg0KICAgICAgICAgICAgICAgICAgICBXSEVSRSAkZGJfY29sdW1uID0gPyANCiAgICAgICAgICAgICAgICAgICAgTElNSVQgMSI7ICAgICAgICAgICAgICAgICAgDQogICAgICAgICAgICAgICAgICAgIA0KICAgICAgICAgICRyb3cgPSAkZGItPkdldFJvdygkcXVlcnksIGFycmF5KCRhcmdzWzJdKSk7DQogICAgICAgICAgDQogICAgICAgICAgaWYoJHJvdykgYnJlYWs7DQogICAgICAgIH0NCiAgICAgIH0NCiAgICB9DQoNCiAgICBpZigkcm93KSANCiAgICAgIHsNCiAgICANCiAgICAgICRvYmogPSBzZWxmOjpMb2FkRmllbGRkZWZCeVR5cGUoJHJvd1sndHlwZSddLCAkbW9kKTsNCiAgICAgIA0KICAgICAgaWYoaXNfb2JqZWN0KCRvYmopKSANCiAgICAgIHsNCiAgICAgICAgLy8gRmlsbCBvYmplY3QNCiAgICAgICAgJG9iai0+U2V0SWQoJHJvd1snZmllbGRkZWZfaWQnXSk7DQogICAgICAgICRvYmotPlNldE5hbWUoJHJvd1snbmFtZSddKTsNCiAgICAgICAgJG9iai0+U2V0QWxpYXMoJHJvd1snYWxpYXMnXSk7DQogICAgICAgICRvYmotPlNldERlc2MoJHJvd1snaGVscCddKTsNCiAgICAgICAgJG9iai0+U2V0UG9zaXRpb24oJHJvd1sncG9zaXRpb24nXSk7DQogICAgICAgICRvYmotPlNldFJlcXVpcmVkKCRyb3dbJ3JlcXVpcmVkJ10pOw0KICAgICAgICAkb2JqLT5TZXRUZW1wbGF0ZSgkcm93Wyd0ZW1wbGF0ZSddKTsNCiAgICAgICAgDQogICAgICAgIC8vIFNldCBvcHRpb25zDQogICAgICAgICRxdWVyeSA9ICdTRUxFQ1QgbmFtZSwgdmFsdWUgRlJPTSAnIC4gY21zX2RiX3ByZWZpeCgpIC4gJ21vZHVsZV8nIC4gJG1vZC0+X0dldE1vZHVsZUFsaWFzKCkgLiAnX2ZpZWxkZGVmX29wdHMgV0hFUkUgZmllbGRkZWZfaWQgPSA/JzsNCiAgICAgICAgJGRiciA9ICRkYi0+RXhlY3V0ZSgkcXVlcnksIGFycmF5KCRvYmotPkdldElkKCkpKTsNCiAgICAgICAgDQogICAgICAgIHdoaWxlKCRkYnIgJiYgISRkYnItPkVPRikNCiAgICAgICAgew0KICAgICAgICAgICRvYmotPlNldE9wdGlvblZhbHVlKCRkYnItPmZpZWxkc1snbmFtZSddLCAkZGJyLT5maWVsZHNbJ3ZhbHVlJ10pOw0KICAgICAgICAgICRkYnItPk1vdmVOZXh0KCk7DQogICAgICAgIH0gICAgDQoNCiAgICAgICAgaWYoJGRicikgJGRici0+Q2xvc2UoKTsNCiAgICAgIA0KICAgICAgICByZXR1cm4gJG9iajsNCiAgICAgIH0NCiAgICB9DQogICAgICANCiAgICByZXR1cm4gRkFMU0U7ICANCiAgfQ0KICANCiAgIy0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KICAjIFV0aWxpdHkgbWV0aG9kcw0KICAjLS0tLS0tLS0tLS0tLS0tLS0tLS0tICAgICANCiAgDQogIHB1YmxpYyBzdGF0aWMgZnVuY3Rpb24gTG9hZFZhbHVlc0ZvckZpZWxkRGVmKExJU0UgJG1vZCwgTElTRUZpZWxkZGVmQmFzZSAkb2JqLCAkc29ydGJ5ID0gJ3ZhbHVlfEFTQycpDQogIHsNCg0KICAgICRvcmRlcmJ5X21hcCA9IFsNCiAgICAgICAgICAgICAgICAgICAgICAndmFsdWUnICAgICAgICAgPT4gJ2Z2LnZhbHVlJywNCiAgICAgICAgICAgICAgICAgICAgICAnaXRlbV9pZCcgICAgICAgPT4gJ2Z2Lml0ZW1faWQnLA0KICAgICAgICAgICAgICAgICAgICAgICdhbGlhcycgICAgICAgICA9PiAnaS5hbGlhcycsDQogICAgICAgICAgICAgICAgICAgICAgJ3RpdGxlJyAgICAgICAgID0+ICdpLnRpdGxlJywNCiAgICAgICAgICAgICAgICAgICAgICAncG9zaXRpb24nICAgICAgPT4gJ2kucG9zaXRpb24nLA0KICAgICAgICAgICAgICAgICAgICAgICdjcmVhdGVfdGltZScgICA9PiAnaS5jcmVhdGVfdGltZScsDQogICAgICAgICAgICAgICAgICAgICAgJ21vZGlmaWVkX3RpbWUnID0+ICdpLm1vZGlmaWVkX3RpbWUnDQogICAgXTsNCiAgICAgICAgICAgICAgICAgICAgICAgIA0KDQogICAgICAgICAgICAgICAgICAgICAgICANCiAgICAkY29sX3BhcnRzID0gZXhwbG9kZSgnfCcsICRzb3J0YnkpOw0KICAgIA0KICAgIC8vIGNvbHVtbiBuYW1lDQogICAgJGNvbF9uYW1lID0gJGNvbF9wYXJ0c1swXTsNCiAgICAkY29sX29yZGVyID0gJ0FTQyc7DQogICAgDQogICAgLy8gb3JkZXIgY29sdW1uIGFzY2VuZGluZyBvciBkZXNjZW5kaW5nDQogICAgaWYoIGlzc2V0KCRjb2xfcGFydHNbMV0pICkgDQogICAgew0KICAgICAgI3RoaXMgbmVlZHMgcmV2aXNpdGluZyAoSk0pDQogICAgICAkY29sX29yZGVyID0gKCBpbl9hcnJheShzdHJ0b3VwcGVyKCRjb2xfcGFydHNbMV0pLCBhcnJheSgnQVNDJywgJ0RFU0MnKSApID8gJGNvbF9wYXJ0c1sxXSA6ICdBU0MnKTsNCiAgICB9DQogICAgDQogICAgJGNvbF9vcmRlciA9ICggaW5fYXJyYXkoJGNvbF9vcmRlciwgYXJyYXkoJ0FTQycsICdERVNDJykgKSA/ICRjb2xfb3JkZXIgOiAnQVNDJyk7DQogICAgDQogICAgaWYoaXNzZXQoJG9yZGVyYnlfbWFwWyRjb2xfbmFtZV0pKSANCiAgICB7DQogICAgICAkb3JkZXJfYnkgPSAnIE9SREVSIEJZICcgLiAkb3JkZXJieV9tYXBbJGNvbF9uYW1lXSAuICcgJyAuICRjb2xfb3JkZXI7DQogICAgfQ0KICAgIGVsc2UNCiAgICB7DQogICAgICAkb3JkZXJfYnkgPSAnICcgLiAkY29sX29yZGVyOw0KICAgIH0gICAgDQogICAgDQogICAgJGRiID0gY21zbXMoKS0+R2V0RGIoKTsNCiAgICAkb2JqLT52YWx1ZXMgPSBbXTsgIyBkZWNsYXJlZCBkeW5hbWljYWxseSBUT0RPOiBjaGVjayBpZiBpcyBhIHZhbGlkIHVzZSAtIChKTSkNCiAgICAgIA0KICAgICRxdWVyeSA9ICdTRUxFQ1QgZnYudmFsdWUsIGZ2Lml0ZW1faWQsIGkuaXRlbV9pZCwgaS5wb3NpdGlvbiBGUk9NICcNCiAgICAgICAgICAgICAgLiBjbXNfZGJfcHJlZml4KCkgDQogICAgICAgICAgICAgIC4gJ21vZHVsZV8nIA0KICAgICAgICAgICAgICAuICRtb2QtPl9HZXRNb2R1bGVBbGlhcygpIC4gJ19maWVsZHZhbCBBUyBmdiwgJw0KICAgICAgICAgICAgICAuIGNtc19kYl9wcmVmaXgoKSANCiAgICAgICAgICAgICAgLiAnbW9kdWxlXycgDQogICAgICAgICAgICAgIC4gJG1vZC0+X0dldE1vZHVsZUFsaWFzKCkgLiAnX2l0ZW0gQVMgaSAnICAgICAgICAgICAgICAgDQogICAgICAgICAgICAgIC4gJyBXSEVSRSBmdi5pdGVtX2lkID0gaS5pdGVtX2lkIEFORCAnDQogICAgICAgICAgICAgIC4gJ2ZpZWxkZGVmX2lkID0gPyBHUk9VUCBCWSBmdi52YWx1ZScgLiAkb3JkZXJfYnk7DQogICAgDQogICAgJGRiciA9ICRkYi0+RXhlY3V0ZSggJHF1ZXJ5LCBhcnJheSggJG9iai0+R2V0SWQoKSApICk7DQogICAgDQogICAgJHZhbHVlcyA9IFtdOw0KDQogICAgd2hpbGUoJGRiciAmJiAkcm93ID0gJGRici0+RmV0Y2hSb3coKSkNCiAgICB7DQogICAgICAkdmFsdWVzW10gPSAkcm93Wyd2YWx1ZSddOyANCiAgICB9ICAgICANCiAgICANCiAgICBpZigkb2JqLT50eXBlID09PSAnTElTRUluc3RhbmNlSXRlbScpDQogICAgew0KICAgICAgDQogICAgICBpZiggJGNvbF9uYW1lICE9ICd2YWx1ZScgJiYgaXNzZXQoJG9yZGVyYnlfbWFwWyRjb2xfbmFtZV0pKSANCiAgICAgIHsNCiAgICAgICAgJG9yZGVyX2J5ID0gJyBPUkRFUiBCWSAnIC4gJGNvbF9uYW1lIC4gJyAnIC4gJGNvbF9vcmRlcjsNCiAgICAgIH0NCiAgICAgIGVsc2UNCiAgICAgIHsNCiAgICAgICAgJG9yZGVyX2J5ID0gJyBPUkRFUiBCWSBpdGVtX2lkICcgLiAkY29sX29yZGVyOw0KICAgICAgfQ0KICANCiAgICAgICRpZGVudGlmaWVyICAgID0gJG9iai0+R2V0T3B0aW9uVmFsdWUoJ2lkZW50aWZpZXInKTsNCiAgICAgICRpbnN0YW5jZV9uYW1lID0gJG9iai0+R2V0T3B0aW9uVmFsdWUoJ2luc3RhbmNlJyk7DQogICAgIA0KICAgICAgJHF1ZXJ5ID0gJ1NFTEVDVCAqIEZST00gJw0KICAgICAgLiBjbXNfZGJfcHJlZml4KCkgDQogICAgICAuICdtb2R1bGVfJyANCiAgICAgIC4gc3RydG9sb3dlcigkaW5zdGFuY2VfbmFtZSkgLiAnX2l0ZW0gICcNCiAgICAgIC4gJ1dIRVJFICcgLiAkaWRlbnRpZmllciANCiAgICAgIC4gJyBJTiAoJw0KICAgICAgLiBpbXBsb2RlKCcsJywgYXJyYXlfZmlsbCgwLCBjb3VudCgkdmFsdWVzKSwgJz8nKSApDQogICAgICAuICcpJw0KICAgICAgLiAkb3JkZXJfYnk7DQogICAgIA0KICAgICAgJGRiciA9ICRkYi0+RXhlY3V0ZSgkcXVlcnksICR2YWx1ZXMpOw0KICAgICAgDQogICAgICAkdmFsdWVzID0gYXJyYXkoKTsNCg0KICAgICAgd2hpbGUoJGRiciAmJiAkcm93ID0gJGRici0+RmV0Y2hSb3coKSkNCiAgICAgIHsNCiAgICAgICAgJHZhbHVlc1tdID0gJHJvd1skaWRlbnRpZmllcl07DQogICAgICB9ICAgICAgICANCiAgICB9ICAgICANCiAgICANCiAgICAkb2JqLT52YWx1ZXMgPSAkdmFsdWVzOw0KDQogICAgcmV0dXJuICRvYmotPnZhbHVlczsNCiAgfQ0KICANCiAgDQogIC8qKg0KICAgKiBAcGFyYW0gTElTRSAgJG1vZA0KICAgKiBAcGFyYW0gbWl4ZWQgJHR5cGUNCiAgICoNCiAgICogQHJldHVybiBib29sDQogICAqIEB0aHJvd3MgXEV4Y2VwdGlvbg0KICAgKi8NCiAgcHVibGljIHN0YXRpYyBmdW5jdGlvbiBUZXN0RXhpc3RlbmNlQnlUeXBlKExJU0UgJiRtb2QsICR0eXBlKSA6IGJvb2wNCiAgeyAgICAgIA0KICAgICRkYiA9IGNtc21zKCktPkdldERiKCk7DQogIA0KICAgICRxdWVyeSA9ICdTRUxFQ1QgZmllbGRkZWZfaWQgRlJPTSAnIC4gY21zX2RiX3ByZWZpeCgpIC4gJ21vZHVsZV8nIC4gJG1vZC0+X0dldE1vZHVsZUFsaWFzKCkgLiAnX2ZpZWxkZGVmIFdIRVJFIHR5cGUgPSA/JzsNCiAgICAkZXhpc3RzID0gJGRiLT5HZXRPbmUoJHF1ZXJ5LCBhcnJheSgkdHlwZSkpOw0KICAgIA0KICAgIGlmKCRleGlzdHMpDQogICAgICByZXR1cm4gJGV4aXN0czsNCiAgICAgIA0KICAgIHJldHVybiBGQUxTRTsNCiAgfQ0KICANCiAgDQogIA0KICBwdWJsaWMgc3RhdGljIGZ1bmN0aW9uIEdldERiVmFsdWVzUmVxdWlyZW1lbnRzKExJU0VJbnN0YW5jZSAkaW5zdGFuY2UsICRtaW5pbWFsID0gVFJVRSkNCiAgew0KICAgICRkYXRhYmFzZV92YWx1ZXMgPSBbXTsNCiAgICAkX2ludmFsaWRfdmFsdWVzID0gWydjcmVhdGVfdGltZScsICdtb2RpZmllZF90aW1lJ107DQogICAgJGl0ZW0gICAgICAgICAgICA9ICRpbnN0YW5jZS0+SW5pdGlhdGVJdGVtKCk7DQogICAgJGFkbWludGhlbWUgICAgPSBcY21zX3V0aWxzOjpnZXRfdGhlbWVfb2JqZWN0KCk7DQogIA0KICAgIGZvcmVhY2goICRpdGVtIGFzICRrID0+ICR2ICkNCiAgICB7DQogICAgDQogICAgICBpZiggJHYgaW5zdGFuY2VvZiBMSVNFRmllbGRkZWZBcnJheSApDQogICAgICB7DQogICAgICANCiAgICAgICAgZm9yZWFjaCggJHYgYXMgJGYgKQ0KICAgICAgICB7DQogICAgICAgICAgJG9iaiA9IG5ldyBzdGRDbGFzczsNCiAgICAgICAgDQogICAgICAgICAgaWYoIGluX2FycmF5KCAkZi0+R2V0QWxpYXMoKSwgJF9pbnZhbGlkX3ZhbHVlcyApICkgeyBjb250aW51ZTsgfQ0KICAgICAgICANCiAgICAgICAgICAkb2JqLT5hbGlhcyAgICAgICAgICA9ICRmLT5HZXRBbGlhcygpOw0KICAgICAgICAgICRvYmotPnJlcXVpcmVkICAgICAgID0gJGYtPklzUmVxdWlyZWQoKSA/IDEgOiAwOw0KICAgICAgICAgIA0KICAgICAgICAgIGlmKCEkbWluaW1hbCkNCiAgICAgICAgICB7DQogICAgICAgICAgICAkb2JqLT5yZXF1aXJlZF9pbWFnZSA9ICRmLT5Jc1JlcXVpcmVkKCkgPyAkYWRtaW50aGVtZS0+RGlzcGxheUltYWdlKA0KICAgICAgICAgICAgICAnaWNvbnMvc3lzdGVtL3RydWUuZ2lmJywgJycsICcnLCAnJywgJ3N5c3RlbWljb24nDQogICAgICAgICAgICApIDogJGFkbWludGhlbWUtPkRpc3BsYXlJbWFnZSgnaWNvbnMvc3lzdGVtL2ZhbHNlLmdpZicsICcnLCAnJywgJycsICdzeXN0ZW1pY29uJyk7DQogICAgICAgICAgICAkb2JqLT5oZWxwICAgICAgICAgICA9ICRmLT5HZXREZXNjKCk7DQogICAgICAgICAgfQ0KDQogICAgICAgICAgJGRhdGFiYXNlX3ZhbHVlc1tdICAgPSAkb2JqOw0KICAgICAgICB9DQogICAgICB9DQogICAgICBlbHNlDQogICAgICB7DQogICAgICAgICRvYmogPSBuZXcgc3RkQ2xhc3M7DQogICAgICANCiAgICAgICAgaWYoIGluX2FycmF5KCAkaywgJF9pbnZhbGlkX3ZhbHVlcyApICkgeyBjb250aW51ZTsgfQ0KICAgICAgDQogICAgICAgICRvYmotPmFsaWFzICAgICAgICAgID0gJGs7DQogICAgICAgICRvYmotPnJlcXVpcmVkICAgICAgID0gaW5fYXJyYXkoJGssIExJU0VJdGVtOjokbWFuZGF0b3J5KSA/IDEgOiAwOw0KICAgICAgICBpZighJG1pbmltYWwpDQogICAgICAgIHsNCiAgICAgICAgICAkb2JqLT5yZXF1aXJlZF9pbWFnZSA9IGluX2FycmF5KCRrLCBMSVNFSXRlbTo6JG1hbmRhdG9yeSkNCiAgICAgICAgICAgID8gJGFkbWludGhlbWUtPkRpc3BsYXlJbWFnZSgnaWNvbnMvc3lzdGVtL3RydWUuZ2lmJywgJycsICcnLCAnJywgJ3N5c3RlbWljb24nKQ0KICAgICAgICAgICAgOiAkYWRtaW50aGVtZS0+RGlzcGxheUltYWdlKA0KICAgICAgICAgICAgICAnaWNvbnMvc3lzdGVtL2ZhbHNlLmdpZicsICcnLA0KICAgICAgICAgICAgICAnJywgJycsICdzeXN0ZW1pY29uJw0KICAgICAgICAgICAgKTsNCiAgICAgICAgICAkb2JqLT5oZWxwICAgICAgICAgICA9ICRpbnN0YW5jZS0+TW9kTGFuZygnaXRlbV92YXJfaGVscF8nIC4gJGspOw0KICAgICAgICB9DQoNCiAgICAgICAgJGRhdGFiYXNlX3ZhbHVlc1tdICAgPSAkb2JqOw0KICAgICAgfQ0KICAgIA0KICAgIH0NCiAgDQogICAgdW5zZXQoJGl0ZW0pOw0KICANCiAgICByZXR1cm4gJGRhdGFiYXNlX3ZhbHVlczsNCiAgfQ0KICANCiAgLyoqDQogICAqIEVuZm9yY2UgdGhlIFVuaXF1ZSBhbmQgTGFzdA0KICAgKiBwcm9wZXJ0aWVzIGZvciB0aGUgZmllbGRzDQogICAqDQogICAqIG5vdGU6IHN0aWxsIGEgYml0IHJhdy4uLg0KICAgKg0KICAgKiBAcGFyYW0gJGFycmF5DQogICAqDQogICAqIEByZXR1cm4gYXJyYXl8dm9pZA0KICAgKi8NCiAgcHVibGljIHN0YXRpYyBmdW5jdGlvbiBQcm9jZXNzRmllbGRzTGlzdCgmJGFycmF5KQ0KICB7DQogICAgJGFycmF5ID0gJGFycmF5ID8/IFtdOw0KICAgIGlmKCBlbXB0eSgkYXJyYXkpICkgeyByZXR1cm4gJGFycmF5OyB9DQogIA0KICAgICRjICAgICAgPSBcY291bnQoJGFycmF5KTsNCiAgICAkbGFzdCAgID0gW107DQogICAgJHVuaXF1ZSA9IFtdOw0KICAgICRzdGFjayAgPSBbXTsNCiAgICANCiAgICBmb3JlYWNoKCRhcnJheSBhcyAkayA9PiAkZmllbGQpDQogICAgew0KICAgICAgJGYgPSAwOw0KICAgICAgDQogICAgICBpZiggJGMgPiAxICYmICRmaWVsZC0+SXNMYXN0KCkgKQ0KICAgICAgew0KICAgICAgICAkbGFzdFtdID0gJGZpZWxkOw0KICAgICAgICAkZiA9IDE7DQogICAgICB9DQogICAgICANCiAgICAgIGlmKCAkZmllbGQtPklzVW5pcXVlKCkgKQ0KICAgICAgew0KICAgICAgICAkdW5pcXVlW10gPSAkZmllbGQ7DQogICAgICAgIGlmKFxjb3VudCgkdW5pcXVlKSA8IDEgKQ0KICAgICAgICB7DQogICAgICAgICAgJHN0YWNrW10gPSAkZmllbGQ7DQogICAgICAgIH0NCiAgICAgIH0NCiAgICAgIGVsc2VpZighJGYpICMgaXMgbm90IGZsYWdnZWQgYXMgbGFzdCBhZGQgaXQNCiAgICAgIHsNCiAgICAgICAgJHN0YWNrW10gPSAkZmllbGQ7DQogICAgICB9DQogICAgICANCiAgICAgICMgbm90aGluZyB0byBkbyBoZXJlOiB3ZSdyZSBhbHJlYWR5IHBhc3QgdGhlIGNvbmRpdGlvbnMgdG8gYWRkIHRoZSBmaWVsZA0KICAgIH0NCiAgDQogICAgaWYoY291bnQoJHVuaXF1ZSkgPiAxKQ0KICAgIHsNCiAgICAgIFxhdWRpdCgwLCAnUHJvY2Vzc0ZpZWxkc0xpc3QnLCAnbm90ZTogdG9vIG1hbnkgdW5pcXVlIGZpZWxkcyEnKTsNCiAgICB9DQogIA0KICAgIGlmKGNvdW50KCRsYXN0KSA+IDEpDQogICAgew0KICAgICAgXGF1ZGl0KDAsICdQcm9jZXNzRmllbGRzTGlzdCcsICdub3RlOiB0b28gbWFueSBsYXN0IGZpZWxkcyEnKTsNCiAgICB9DQogIA0KICAgICMgdGhlcmUgY2FuIGJlIG9ubHkgb25lISEhIQ0KICAgICRzdGFja1tdID0gYXJyYXlfc2hpZnQoJGxhc3QpOw0KICAgIA0KICAgICMgYW5vdGhlciBwYXNzIHRvIHNldCB0aGUgcG9zaXRpb25zIHJpZ2h0DQogICAgZm9yZWFjaCgkYXJyYXkgYXMgJGsgPT4gJGZpZWxkKQ0KICAgIHsNCiAgICAgICRmaWVsZC0+U2V0UG9zaXRpb24oJGspOw0KICAgIH0NCiAgICANCiAgICAkYXJyYXkgPSAkc3RhY2s7DQogIH0NCiAgDQp9IC8vIGVuZCBvZiBjbGFzcw0KDQo/Pg==]]></data>
	</file>
	<file>
	  <filename>/lib/class.LISEHierarchyManager.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBMSVNFIC0gTGlzdCBJdCBTcGVjaWFsIEVkaXRpb24KIyBWZXJzaW9uIDEuMgojIEEgZm9yayBvZiBMaXN0STIKIyBtYWludGFpbmVkIGJ5IEZlcm5hbmRvIE1vcmdhZG8gQUtBIEpvIE1vcmcKIyBzaW5jZSAyMDE1CiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBPcmlnaW5hbCBBdXRob3I6IEJlbiBNYWxlbiwgPGJlbkBjb25jZXB0ZmFjdG9yeS5jb20uYXU+CiMgQ28tTWFpbnRhaW5lcjogU2ltb24gUmFkZm9yZCwgPHNpbW9uQGNvbmNlcHRmYWN0b3J5LmNvbS5hdT4KIyBXZWI6IHd3dy5jb25jZXB0ZmFjdG9yeS5jb20uYXUKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojCiMgTWFpbnRhaW5lciBzaW5jZSAyMDExIHVwIHRvIDIwMTQ6IEpvbmF0aGFuIFNjaG1pZCwgPGhpQGpvbmF0aGFuc2NobWlkLmRlPgojIFdlYjogd3d3LmpvbmF0aGFuc2NobWlkLmRlCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIwojIFNvbWUgd2Fja29zIHN0YXJ0ZWQgZGVzdHJveWluZyBzdHVmZiBzaW5jZSAyMDEyIGFuZCBzdG9wcGVkIGF0IDIwMTQ6CiMKIyBUYXBpbyBMw7Z5dHR5LCA8dGFwc2FAb3JhbmdlLW1lZGlhLmZpPgojIFdlYjogd3d3Lm9yYW5nZS1tZWRpYS5maQojCiMgR29yYW4gSWxpYywgPHVuaXF1M2VAZ21haWwuY29tPgojIFdlYjogd3d3LmljaC1tYWNoLWRhcy5hdAojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBMSVNFIGlzIGEgQ01TIE1hZGUgU2ltcGxlIG1vZHVsZSB0aGF0IGVuYWJsZXMgdGhlIHdlYiBkZXZlbG9wZXIgdG8gY3JlYXRlCiMgbXVsdGlwbGUgbGlzdHMgdGhyb3VnaG91dCBhIHNpdGUuIEl0IGNhbiBiZSBkdXBsaWNhdGVkIGFuZCBnaXZlbiBmcmllbmRseQojIG5hbWVzIGZvciBlYXNpZXIgY2xpZW50IG1haW50ZW5hbmNlLgojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgQkVHSU5fTElDRU5TRQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIExJU0UKIyBMSVNFIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgTElTRSBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBFTkRfTElDRU5TRQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpmaW5hbCBjbGFzcyBMSVNFSGllcmFyY2h5TWFuYWdlcgp7CgoJIy0tLS0tLS0tLS0tLS0tLS0tLS0tLQoJIyBNYWdpYyBtZXRob2RzCgkjLS0tLS0tLS0tLS0tLS0tLS0tLS0tIAoKCXByaXZhdGUgZnVuY3Rpb24gX19jb25zdHJ1Y3QoKSB7fQoJCgkjLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgkjIEhpZXJhcmNoeSBtZXRob2RzCgkjLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgLyoqCiAgICogQHBhcmFtIFxMSVNFICRtb2QKICAgKiBAcGFyYW0gICAgICAgJGlkCiAgICogQHBhcmFtICAgICAgICRyZXR1cm5pZAogICAqIEBwYXJhbSAgICAgICAkbm9kZQogICAqIEBwYXJhbSAgICAgICAkbm9kZWxpc3QKICAgKiBAcGFyYW0gICAgICAgJGNvdW50CiAgICogQHBhcmFtICAgICAgICRwcmV2ZGVwdGgKICAgKiBAcGFyYW0gICAgICAgJG9yaWdkZXB0aAogICAqIEBwYXJhbSAgICAgICAkcGFyYW1zCiAgICoKICAgKiBAcmV0dXJuIG1peGVkCiAgICovCiAgcHVibGljIHN0YXRpYyBmdW5jdGlvbiAmRmlsbE5vZGVXaXRoQ2hpbGQoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMSVNFICYkbW9kLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJGlkLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJHJldHVybmlkLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJiRub2RlLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJiRub2RlbGlzdCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICYkY291bnQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmJHByZXZkZXB0aCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRvcmlnZGVwdGgsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmJHBhcmFtcwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICkKCXsJCgkJLy8gR3JhYiBjdXJyZW50IGlkX2hpZXJhcmNoeQogICAgJGN1cnJlbnRfcGF0aCAgICAgICA9IGNtc191dGlsczo6Z2V0X2FwcF9kYXRhKCdsaXNlX2lkX2hpZXJhcmNoeScpOwogICAgJGN1cnJlbnRfcGF0aF9hcnJheSA9IFtdOwogICAgCiAgICBpZigkY3VycmVudF9wYXRoKQogICAgewogICAgICAkY3VycmVudF9wYXRoX2FycmF5ID0gZXhwbG9kZSgnLicsICRjdXJyZW50X3BhdGgpOwogICAgfQogICAgCgkJJG5vZGUtPmRlcHRoICAgICAgICA9IGNvdW50KGV4cGxvZGUoJy4nLCAkbm9kZS0+aGllcmFyY2h5KSk7IC8vIHRoaXMgbGluZSB3YXMgY29tbWVudGVkIG91dCBub3Qgc3VyZSB3aHkuLi4gS2VlcCBhbiBleWUgb3V0CgkJJG5vZGUtPnByZXZkZXB0aCAgICA9ICRwcmV2ZGVwdGggLSAoJG9yaWdkZXB0aCAtIDEpOwoJCQoJCWlmICgkbm9kZS0+cHJldmRlcHRoID09PSAwKSB7ICRub2RlLT5wcmV2ZGVwdGggPSAxOyB9CiAgICAKICAgICRwcmV2ZGVwdGggICAgICAgICAgICAgICAgICA9ICRub2RlLT5kZXB0aCArICgkb3JpZ2RlcHRoIC0gMSk7CiAgICAkbGlua3BhcmFtcyAgICAgICAgICAgICAgICAgPSBbXTsKICAgICRsaW5rcGFyYW1zWydjYXRlZ29yeSddICAgICA9ICRub2RlLT5hbGlhczsKICAgICRsaW5rcGFyYW1zWydpZF9oaWVyYXJjaHknXSA9ICRub2RlLT5pZF9oaWVyYXJjaHk7CiAgICAkcmV0dXJuaWQgICAgICAgICAgICAgICAgICAgPSAkbW9kLT5HZXRQcmVmZXJlbmNlKCdzdW1tYXJ5cGFnZScsICRyZXR1cm5pZCk7CiAgICAKICAgIGlmKGlzc2V0KCRwYXJhbXNbJ3N1bW1hcnlwYWdlJ10pKQogICAgewogICAgICAKICAgICAgaWYoaXNfbnVtZXJpYygkcGFyYW1zWydzdW1tYXJ5cGFnZSddKSkKICAgICAgewogICAgICAgICRyZXR1cm5pZCA9ICRwYXJhbXNbJ3N1bW1hcnlwYWdlJ107CiAgICAgIH0KICAgICAgZWxzZQogICAgICB7CiAgICAgICAgJGhtICAgICAgID0gY21zbXMoKS0+R2V0SGllcmFyY2h5TWFuYWdlcigpOwogICAgICAgICRyZXR1cm5pZCA9ICRobS0+c3VyZUdldE5vZGVCeUFsaWFzKCRwYXJhbXNbJ3N1bW1hcnlwYWdlJ10pLT5HZXRJZCgpOwogICAgICB9CiAgICB9CiAgICAKICAgICRsaW5rcGFyYW1zICAgICA9IGFycmF5X21lcmdlKCRsaW5rcGFyYW1zLCAkcGFyYW1zKTsKICAgICRub2RlLT51cmwgICAgICA9ICRtb2QtPkNyZWF0ZVByZXR0eUxpbmsoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkaWQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnZGVmYXVsdCcsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkcmV0dXJuaWQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnJywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRsaW5rcGFyYW1zLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJycsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUUlVFLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRkFMU0UKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApOwogICAgJG5vZGUtPmluZGV4ICAgID0gJGNvdW50OwogICAgJG5vZGUtPm1lbnV0ZXh0ID0gJG5vZGUtPm5hbWU7IC8vIEFsaWFzIGZvciBuYW1lLCBtYWtlIGNvbXBhdGliaWxpdHkgd2l0aCBNZW51TWFuYWdlciBwb3NzaWJsZQogICAgJG5vZGUtPnBhcmVudCAgID0gRkFMU0U7CgkJJGNvdW50Kys7CiAgICAKICAgIGlmKCRub2RlLT5pZF9oaWVyYXJjaHkgPT09ICRjdXJyZW50X3BhdGgpCiAgICB7CiAgICAgICRub2RlLT5jdXJyZW50ID0gVFJVRTsKICAgIH0KICAgIGVsc2UKICAgIHsKICAgICAgJG5vZGUtPmN1cnJlbnQgPSBGQUxTRTsKICAgICAgCiAgICAgIGlmKCBpbl9hcnJheSgkbm9kZS0+Y2F0ZWdvcnlfaWQsICRjdXJyZW50X3BhdGhfYXJyYXksIEZBTFNFKSApIHsgJG5vZGUtPnBhcmVudCA9IFRSVUU7IH0KICAgIH0KCQkKCQkkbm9kZWxpc3RbXSA9ICRub2RlOwoKCQlyZXR1cm4gJG5vZGU7Cgl9CiAgCiAgLyoqCiAgICogQHBhcmFtIFxMSVNFICRtb2QKICAgKiBAcGFyYW0gICAgICAgJGlkCiAgICogQHBhcmFtICAgICAgICRyZXR1cm5pZAogICAqIEBwYXJhbSAgICAgICAkbm9kZQogICAqIEBwYXJhbSAgICAgICAkaXRlbQogICAqIEBwYXJhbSAgICAgICAkbm9kZWxpc3QKICAgKiBAcGFyYW0gICAgICAgJGNvdW50CiAgICogQHBhcmFtICAgICAgICRwcmV2ZGVwdGgKICAgKiBAcGFyYW0gICAgICAgJG9yaWdkZXB0aAogICAqIEBwYXJhbSAgICAgICAkcGFyYW1zCiAgICoKICAgKiBAcmV0dXJuIG1peGVkCiAgICovCiAgcHVibGljIHN0YXRpYyBmdW5jdGlvbiAmRmlsbE5vZGVXaXRoSXRlbSgKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMSVNFICRtb2QsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJGlkLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRyZXR1cm5pZCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmJG5vZGUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJiRpdGVtLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICYkbm9kZWxpc3QsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJiRjb3VudCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmJHByZXZkZXB0aCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkb3JpZ2RlcHRoLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICYkcGFyYW1zCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICkKCXsJCQoJCS8vIEdyYWIgY3VycmVudCBpdGVtCiAgICAkY3VycmVudF9pdGVtICAgID0gY21zX3V0aWxzOjpnZXRfYXBwX2RhdGEoJ2xpc2VfaXRlbScpOwogICAgJGl0ZW0tPmRlcHRoICAgICA9ICRub2RlLT5kZXB0aCArIDE7CiAgICAkaXRlbS0+cHJldmRlcHRoID0gJHByZXZkZXB0aCAtICgkb3JpZ2RlcHRoIC0gMSk7CgkJCgkJaWYgKCRpdGVtLT5wcmV2ZGVwdGggPT09IDApIHsgJGl0ZW0tPnByZXZkZXB0aCA9IDE7IH0KICAgIAogICAgJHByZXZkZXB0aCAgICAgICAgICAgICAgICAgID0gJGl0ZW0tPmRlcHRoICsgKCRvcmlnZGVwdGggLSAxKTsKICAgICRsaW5rcGFyYW1zICAgICAgICAgICAgICAgICA9IFtdOwogICAgJGxpbmtwYXJhbXNbJ2l0ZW0nXSAgICAgICAgID0gJGl0ZW0tPmFsaWFzOwogICAgJGxpbmtwYXJhbXNbJ2NhdGVnb3J5J10gICAgID0gJG5vZGUtPmFsaWFzOwogICAgJGxpbmtwYXJhbXNbJ2lkX2hpZXJhcmNoeSddID0gJG5vZGUtPmlkX2hpZXJhcmNoeTsKICAgICRyZXR1cm5pZCAgICAgICAgICAgICAgICAgICA9ICRtb2QtPkdldFByZWZlcmVuY2UoJ2RldGFpbHBhZ2UnLCAkcmV0dXJuaWQpOwogICAgCgkJaWYoaXNzZXQoJHBhcmFtc1snZGV0YWlscGFnZSddKSkgewoKCQkJaWYoaXNfbnVtZXJpYygkcGFyYW1zWydkZXRhaWxwYWdlJ10pKSB7CgkJCQkkcmV0dXJuaWQgPSAkcGFyYW1zWydkZXRhaWxwYWdlJ107CgkJCX0KCQkJZWxzZSB7CQkJCgkJCQkkaG0gPSBjbXNtcygpLT5HZXRIaWVyYXJjaHlNYW5hZ2VyKCk7CQkJCQoJCQkJJHJldHVybmlkID0gJGhtLT5zdXJlR2V0Tm9kZUJ5QWxpYXMoJHBhcmFtc1snZGV0YWlscGFnZSddKS0+R2V0SWQoKTsKCQkJfQoJCX0KICAgIAogICAgJGxpbmtwYXJhbXMgICAgID0gYXJyYXlfbWVyZ2UoJGxpbmtwYXJhbXMsICRwYXJhbXMpOwogICAgJGl0ZW0tPnVybCAgICAgID0gJG1vZC0+Q3JlYXRlUHJldHR5TGluaygKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRpZCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdkZXRhaWwnLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJHJldHVybmlkLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJycsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkbGlua3BhcmFtcywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICcnLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVFJVRSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEZBTFNFCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKTsKICAgICRpdGVtLT5pbmRleCAgICA9ICRjb3VudDsKICAgICRpdGVtLT5tZW51dGV4dCA9ICRpdGVtLT50aXRsZTsgLy8gQWxpYXMgZm9yIG5hbWUsIG1ha2UgY29tcGF0aWJpbGl0eSB3aXRoIE1lbnVNYW5hZ2VyIHBvc3NpYmxlCiAgICAkaXRlbS0+cGFyZW50ICAgPSBGQUxTRTsKCQkkY291bnQrKzsKCQkkaXRlbS0+Y3VycmVudCAgPSAkaXRlbS0+YWxpYXMgPT09ICRjdXJyZW50X2l0ZW07CgkJJG5vZGVsaXN0W10gICAgID0gJGl0ZW07CgkJCgkJcmV0dXJuICRpdGVtOwoJfQogIAogIC8qKgogICAqIEBwYXJhbSBcTElTRSAkbW9kCiAgICogQHBhcmFtICAgICAgICRpZAogICAqIEBwYXJhbSAgICAgICAkcmV0dXJuaWQKICAgKiBAcGFyYW0gICAgICAgJGlkX2xpc3QKICAgKiBAcGFyYW0gICAgICAgJG5vZGVsaXN0CiAgICogQHBhcmFtICAgICAgICRjb3VudAogICAqIEBwYXJhbSAgICAgICAkcHJldmRlcHRoCiAgICogQHBhcmFtICAgICAgICRvcmlnZGVwdGgKICAgKiBAcGFyYW0gICAgICAgJHBhcmFtcwogICAqIEBwYXJhbSAgICAgICAkc2hvd3BhcmVudHMKICAgKgogICAqIEB0aHJvd3MgXExJU0VcRXhjZXB0aW9uCiAgICovCglwdWJsaWMgc3RhdGljIGZ1bmN0aW9uIEdldENoaWxkTm9kZXMoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMSVNFICRtb2QsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkaWQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkcmV0dXJuaWQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmJGlkX2xpc3QsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmJG5vZGVsaXN0LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJiRjb3VudCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICYkcHJldmRlcHRoLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJG9yaWdkZXB0aCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICYkcGFyYW1zLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJiRzaG93cGFyZW50cwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICkgOiB2b2lkCiAgewogICAgaWYoIWVtcHR5KCRpZF9saXN0KSkKICAgIHsKICAgICAgZm9yZWFjaCgkaWRfbGlzdCBhcyAkb25lX2lkKQogICAgICB7CiAgICAgICAgJG9uZWNoaWxkID0gJG1vZC0+TG9hZENhdGVnb3J5QnlJZGVudGlmaWVyKCdjYXRlZ29yeV9pZCcsICRvbmVfaWQpOwogICAgICAgIAogICAgICAgIGlmKCFpc19vYmplY3QoJG9uZWNoaWxkKSkgeyBjb250aW51ZTsgfQogICAgICAgIAogICAgICAgIC8vIEZpbGwgY2F0ZWdvcmllcwogICAgICAgICRuZXdub2RlID0gc2VsZjo6RmlsbE5vZGVXaXRoQ2hpbGQoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJG1vZCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkaWQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJHJldHVybmlkLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRvbmVjaGlsZCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkbm9kZWxpc3QsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJGNvdW50LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRwcmV2ZGVwdGgsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJG9yaWdkZXB0aCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkcGFyYW1zCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICk7CgogICAgICAgIGlmKAogICAgICAgICAgIShpc3NldCgkcGFyYW1zWydudW1iZXJfb2ZfbGV2ZWxzJ10pICYmICRuZXdub2RlLT5kZXB0aCA+ICgkcGFyYW1zWydudW1iZXJfb2ZfbGV2ZWxzJ10pIC0gKCRvcmlnZGVwdGgpKSAmJgogICAgICAgICAgKCFpc3NldCgkcGFyYW1zWydjb2xsYXBzZSddKSB8fCAoY291bnQoJHNob3dwYXJlbnRzKSA+IDAgJiYgaW5fYXJyYXkoJG5ld25vZGUtPmNhdGVnb3J5X2lkLCAkc2hvd3BhcmVudHMpKSkKICAgICAgICApCiAgICAgICAgewoKICAgICAgICAgIHNlbGY6OkdldENoaWxkTm9kZXMoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJG1vZCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkaWQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJHJldHVybmlkLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRuZXdub2RlLT5jaGlsZHJlbiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkbm9kZWxpc3QsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJGNvdW50LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRwcmV2ZGVwdGgsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJG9yaWdkZXB0aCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkcGFyYW1zLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRzaG93cGFyZW50cwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICApOwogICAgICAgICAgCiAgICAgICAgICBpZighZW1wdHkoJG5ld25vZGUtPml0ZW1zKSAmJiBpc3NldCgkcGFyYW1zWydzaG93X2l0ZW1zJ10pKQogICAgICAgICAgewogICAgICAgICAgICAkbm9mZHMgPSBpc3NldCgkcGFyYW1zWydub3Byb3BzJ10pOwogICAgICAgICAgICAkbm9mZHMgPSAkbm9mZHMgfHwgaXNzZXQoJHBhcmFtc1snbm9mZHMnXSk7CgogICAgICAgICAgICBmb3JlYWNoKCRuZXdub2RlLT5pdGVtcyBhcyAkaXRlbV9pZCkKICAgICAgICAgICAgewogICAgICAgICAgICAgICRpdGVtID0gJG1vZC0+TG9hZEl0ZW1CeUlkZW50aWZpZXIoJ2l0ZW1faWQnLCAkaXRlbV9pZCwgJG5vZmRzKTsKCiAgICAgICAgICAgICAgc2VsZjo6RmlsbE5vZGVXaXRoSXRlbSgKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkbW9kLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRpZCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkcmV0dXJuaWQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJG5ld25vZGUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJGl0ZW0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJG5vZGVsaXN0LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRjb3VudCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkcHJldmRlcHRoLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRvcmlnZGVwdGgsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJHBhcmFtcwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApOwogICAgICAgICAgICB9CiAgICAgICAgICB9CiAgICAgICAgfQogICAgICB9CiAgICB9CiAgfQoJCn0gLy8gZW5kIG9mIGNsYXNz]]></data>
	</file>
	<file>
	  <filename>/lib/class.LISEInstance.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHANCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQojIExJU0UgLSBMaXN0IEl0IFNwZWNpYWwgRWRpdGlvbg0KIyBWZXJzaW9uIDEuMg0KIyBBIGZvcmsgb2YgTGlzdEkyDQojIG1haW50YWluZWQgYnkgRmVybmFuZG8gTW9yZ2FkbyBBS0EgSm8gTW9yZw0KIyBzaW5jZSAyMDE1DQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIw0KIyBPcmlnaW5hbCBBdXRob3I6IEJlbiBNYWxlbiwgPGJlbkBjb25jZXB0ZmFjdG9yeS5jb20uYXU+DQojIENvLU1haW50YWluZXI6IFNpbW9uIFJhZGZvcmQsIDxzaW1vbkBjb25jZXB0ZmFjdG9yeS5jb20uYXU+DQojIFdlYjogd3d3LmNvbmNlcHRmYWN0b3J5LmNvbS5hdQ0KIw0KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCiMNCiMgTWFpbnRhaW5lciBzaW5jZSAyMDExIHVwIHRvIDIwMTQ6IEpvbmF0aGFuIFNjaG1pZCwgPGhpQGpvbmF0aGFuc2NobWlkLmRlPg0KIyBXZWI6IHd3dy5qb25hdGhhbnNjaG1pZC5kZQ0KIw0KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCiMNCiMgU29tZSB3YWNrb3Mgc3RhcnRlZCBkZXN0cm95aW5nIHN0dWZmIHNpbmNlIDIwMTIgYW5kIHN0b3BwZWQgYXQgMjAxNDoNCiMNCiMgVGFwaW8gTMO2eXR0eSwgPHRhcHNhQG9yYW5nZS1tZWRpYS5maT4NCiMgV2ViOiB3d3cub3JhbmdlLW1lZGlhLmZpDQojDQojIEdvcmFuIElsaWMsIDx1bmlxdTNlQGdtYWlsLmNvbT4NCiMgV2ViOiB3d3cuaWNoLW1hY2gtZGFzLmF0DQojDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIw0KIyBMSVNFIGlzIGEgQ01TIE1hZGUgU2ltcGxlIG1vZHVsZSB0aGF0IGVuYWJsZXMgdGhlIHdlYiBkZXZlbG9wZXIgdG8gY3JlYXRlDQojIG11bHRpcGxlIGxpc3RzIHRocm91Z2hvdXQgYSBzaXRlLiBJdCBjYW4gYmUgZHVwbGljYXRlZCBhbmQgZ2l2ZW4gZnJpZW5kbHkNCiMgbmFtZXMgZm9yIGVhc2llciBjbGllbnQgbWFpbnRlbmFuY2UuDQojDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIyBCRUdJTl9MSUNFTlNFDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIyBUaGlzIGZpbGUgaXMgcGFydCBvZiBMSVNFDQojIExJU0UgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5DQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5DQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yDQojIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uDQojDQojIExJU0UgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLA0KIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZg0KIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlDQojIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuDQojIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlDQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlDQojIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcgVVNBDQojIE9yIHJlYWQgaXQgb25saW5lOiBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwNCiMNCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQojIEVORF9MSUNFTlNFDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KY2xhc3MgTElTRUluc3RhbmNlIGV4dGVuZHMgTElTRQ0Kew0KICANCiAgcHJpdmF0ZSAkX21vZGU7DQogIA0KICANCiAgIy0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KICAjIFByaXZhdGUgbWV0aG9kcw0KICAjLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQogIA0KICBwcml2YXRlIGZ1bmN0aW9uIF9nZXRfbW9kZSgpDQogIHsNCiAgICBpZihpc19udWxsKCR0aGlzLT5fbW9kZSkpDQogICAgew0KICAgICAgJHF1ZXJ5ICAgICAgID0gJ1NFTEVDVCBtb2R1bGVfbW9kZSBGUk9NICcgLiBjbXNfZGJfcHJlZml4KCkgLiAnbW9kdWxlX2xpc2VfaW5zdGFuY2VzIFdIRVJFIG1vZHVsZV9uYW1lID0gPyc7DQogICAgICAkdGhpcy0+X21vZGUgPSAoaW50KWNtc191dGlsczo6Z2V0X2RiKCktPkdldE9uZSgkcXVlcnksIGFycmF5KCR0aGlzLT5HZXROYW1lKCkpKTsNCiAgICB9DQogICAgDQogICAgcmV0dXJuICR0aGlzLT5fbW9kZTsNCiAgfQ0KICANCiAgcHJpdmF0ZSBmdW5jdGlvbiBfZ2V0X3NtYXJ0eSgpDQogIHsNCiAgICAkc21hcnR5ID0gJHRoaXMtPkdldEFjdGlvblRlbXBsYXRlT2JqZWN0KCk7DQogICAgDQogICAgaWYoICFpc19vYmplY3QoJHNtYXJ0eSkgKQ0KICAgIHsNCiAgICAgICRzbWFydHkgPSBjbXNtcygpLT5HZXRTbWFydHkoKTsNCiAgICB9DQogIA0KICAgIHJldHVybiAkc21hcnR5Ow0KICB9DQogIA0KICBwcml2YXRlIGZ1bmN0aW9uIF9zYXZlX21vZGUoKQ0KICB7DQogICAgJHF1ZXJ5ID0gJ1VQREFURSAnIC4gY21zX2RiX3ByZWZpeCgpIC4gJ21vZHVsZV9saXNlX2luc3RhbmNlcw0KICAgIFNFVCBtb2R1bGVfbW9kZT0/DQogICAgV0hFUkUgbW9kdWxlX25hbWUgPSA/JzsNCiAgICBjbXNfdXRpbHM6OmdldF9kYigpLT5FeGVjdXRlKCRxdWVyeSwgYXJyYXkoJHRoaXMtPl9tb2RlLCAkdGhpcy0+R2V0TmFtZSgpKSk7DQogIH0NCiAgDQogICMtLS0tLS0tLS0tLS0tLS0tLS0tLS0NCiAgIyBNYWdpYyBtZXRob2RzDQogICMtLS0tLS0tLS0tLS0tLS0tLS0tLS0NCiAgDQogIHB1YmxpYyBmdW5jdGlvbiBfX2NvbnN0cnVjdCgpDQogIHsNCiAgICBwYXJlbnQ6Ol9fY29uc3RydWN0KCk7DQogICAgIyBkZWFsIHdpdGggcmVnaXN0ZXJpbmcgcm91dGVzIGZvciBjdXN0b20gdXJscw0KICAgICRkYiA9IGNtc21zKCktPkdldERiKCk7DQogICAgDQogICAgJHF1ZXJ5ID0gJ1NFTEVDVCBpdGVtX2lkLHVybCBGUk9NICcNCiAgICAgICAgICAgICAuIGNtc19kYl9wcmVmaXgoKQ0KICAgICAgICAgICAgIC4gJ21vZHVsZV8nDQogICAgICAgICAgICAgLiAkdGhpcy0+X0dldE1vZHVsZUFsaWFzKCkNCiAgICAgICAgICAgICAuICdfaXRlbSBXSEVSRSB1cmwgIT0gPyc7DQogICAgDQogICAgJHRtcCA9ICRkYi0+R2V0QXJyYXkoJHF1ZXJ5LCBhcnJheSgnJykpOw0KICAgIA0KICAgIGlmKGlzX2FycmF5KCR0bXApKQ0KICAgIHsNCiAgICAgICRkZXRhaWxwYWdlID0gJHRoaXMtPkdldFByZWZlcmVuY2UoJ2RldGFpbHBhZ2UnLCAtMSk7DQogICAgICANCiAgICAgIGlmKCRkZXRhaWxwYWdlID09IC0xKQ0KICAgICAgew0KICAgICAgICAkY29udGVudG9wcyA9IGNtc21zKCktPkdldENvbnRlbnRPcGVyYXRpb25zKCk7DQogICAgICAgICRkZXRhaWxwYWdlID0gJGNvbnRlbnRvcHMtPkdldERlZmF1bHRDb250ZW50KCk7DQogICAgICB9DQogICAgICANCiAgICAgIGZvcmVhY2goJHRtcCBhcyAkb25lKQ0KICAgICAgew0KICAgICAgICAkcGFybXMgPSBhcnJheSgNCiAgICAgICAgICAnYWN0aW9uJyAgID0+ICdkZXRhaWwnLA0KICAgICAgICAgICdyZXR1cm5pZCcgPT4gJGRldGFpbHBhZ2UsDQogICAgICAgICAgJ2l0ZW0nICAgICA9PiAkb25lWydpdGVtX2lkJ10NCiAgICAgICAgKTsNCiAgICAgICAgDQogICAgICAgICRyb3V0ZSA9IG5ldyBDbXNSb3V0ZSgkb25lWyd1cmwnXSwgJHRoaXMtPkdldE5hbWUoKSwgJHBhcm1zLCBUUlVFKTsNCiAgICAgICAgY21zX3JvdXRlX21hbmFnZXI6OnJlZ2lzdGVyKCRyb3V0ZSk7DQogICAgICB9DQogICAgfQ0KICAgIA0KICAgICRtb2RlID0gJHRoaXMtPl9nZXRfbW9kZSgpOw0KICAgICRzbWFydHkgPSBcY21zX3V0aWxzOjpnZXRfc21hcnR5KCk7DQogICAgDQogICAgc3dpdGNoICgkbW9kZSkNCiAgICB7DQogICAgICBjYXNlIExJU0U6Ok1PREVfTE9DQUw6DQogICAgICAgICAgICAkc21hcnR5LT5yZWdpc3RlckNsYXNzKCR0aGlzLT5HZXROYW1lKCksICdcTElTRVxzbWFydHlfbG9jYWwnKTsNCiAgICAgICAgICAgICRvYmogPSBuZXcgXExJU0Vcc21hcnR5X2xvY2FsX29iaigpOw0KICAgICAgICAgICAgJHNtYXJ0eS0+YXNzaWduR2xvYmFsKCR0aGlzLT5HZXROYW1lKCksICRvYmopOw0KICAgICAgICAgIGJyZWFrOw0KICAgICAgY2FzZSBMSVNFOjpNT0RFX0dMT0JBTDoNCiAgICAgICAgICAgICRzbWFydHktPnJlZ2lzdGVyQ2xhc3MoJHRoaXMtPkdldE5hbWUoKSwgJ1xMSVNFXHNtYXJ0eV9nbG9iYWwnKTsNCiAgICAgICAgICAgICRvYmogPSBuZXcgXExJU0Vcc21hcnR5X2dsb2JhbF9vYmooKTsNCiAgICAgICAgICAgICRzbWFydHktPmFzc2lnbkdsb2JhbCgkdGhpcy0+R2V0TmFtZSgpLCAkb2JqKTsNCiAgICAgICAgICBicmVhazsNCiAgICB9DQogICAgDQogIH0NCiAgDQogICMtLS0tLS0tLS0tLS0tLS0tLS0tLS0NCiAgIyBNb2R1bGUgYXBpIG1ldGhvZHMNCiAgIy0tLS0tLS0tLS0tLS0tLS0tLS0tLSAgICANCiAgDQogIHB1YmxpYyBmdW5jdGlvbiBHZXROYW1lKCkNCiAgew0KICAgIHJldHVybiBnZXRfY2xhc3MoJHRoaXMpOw0KICB9DQogIA0KICBwdWJsaWMgZnVuY3Rpb24gR2V0RnJpZW5kbHlOYW1lKCkNCiAgew0KICAgIHJldHVybiAkdGhpcy0+R2V0UHJlZmVyZW5jZSgnZnJpZW5kbHluYW1lJywgJHRoaXMtPkdldE5hbWUoKSApOw0KICB9DQogIA0KICBwdWJsaWMgZnVuY3Rpb24gR2V0QWRtaW5EZXNjcmlwdGlvbigpDQogIHsNCiAgICByZXR1cm4gJHRoaXMtPkdldFByZWZlcmVuY2UoJ21vZGRlc2NyaXB0aW9uJywgJHRoaXMtPk1vZExhbmcoJ21vZGRlc2NyaXB0aW9uJykpOw0KICB9DQogIA0KICBwdWJsaWMgZnVuY3Rpb24gR2V0QWRtaW5TZWN0aW9uKCkNCiAgew0KICAgIHJldHVybiAkdGhpcy0+R2V0UHJlZmVyZW5jZSgnYWRtaW5zZWN0aW9uJyk7DQogIH0NCiAgDQogIHB1YmxpYyBmdW5jdGlvbiBHZXRBZG1pbk1lbnVJdGVtcygpDQogIHsNCiAgICAvLyBHZXQgTW9kZQ0KICAgICRpc19saXN0ICAgPSAkdGhpcy0+X21vZGUgPT0gTElTRTo6TU9ERV9MSVNUOw0KICAgICRpc19sb2NhbCAgPSAkdGhpcy0+X21vZGUgPT0gTElTRTo6TU9ERV9MT0NBTDsNCiAgICAkaXNfZ2xvYmFsID0gJHRoaXMtPl9tb2RlID09IExJU0U6Ok1PREVfR0xPQkFMOw0KICAgIA0KICAgIC8vIGdldCBwcmVmDQogICAgJHNlcGFyYXRlX3NldHRpbmdzID0gJHRoaXMtPkdldFByZWZlcmVuY2UoJ3NlcGFyYXRlX3NldHRpbmdzJywgRkFMU0UpOw0KICAgIA0KICAgICRvdXQgPSBbXTsNCiAgICBpZigkdGhpcy0+VmlzaWJsZVRvQWRtaW5Vc2VyKCkgJiYgISRpc19sb2NhbCkNCiAgICB7DQogICAgICAkb3V0W10gPSBDbXNBZG1pbk1lbnVJdGVtOjpmcm9tX21vZHVsZSgkdGhpcyk7DQogICAgfQ0KICAgIA0KICAgIGlmKCgkc2VwYXJhdGVfc2V0dGluZ3MgJiYgJGlzX2xpc3QpIHx8ICRpc19sb2NhbCB8fCAkaXNfZ2xvYmFsKQ0KICAgIHsNCiAgICAgIGlmKCR0aGlzLT5DaGVja1Blcm1pc3Npb24oJ01vZGlmeSBTaXRlIFByZWZlcmVuY2VzJykpDQogICAgICB7DQogICAgICAgICRvYmogICAgICAgICAgICAgID0gbmV3IENtc0FkbWluTWVudUl0ZW0oKTsNCiAgICAgICAgJG9iai0+bW9kdWxlICAgICAgPSAkdGhpcy0+R2V0TmFtZSgpOw0KICAgICAgICAkb2JqLT5zZWN0aW9uICAgICA9ICdzaXRlYWRtaW4nOw0KICAgICAgICAkb2JqLT50aXRsZSAgICAgICA9IGxhbmcoJ3NldHRpbmdzJykgLiAnIC0gJyAuICR0aGlzLT5HZXRGcmllbmRseU5hbWUoKTsNCiAgICAgICAgJG9iai0+ZGVzY3JpcHRpb24gPSBsYW5nKCdzZXR0aW5ncycpIC4gJyAtICcgLiAkdGhpcy0+R2V0RnJpZW5kbHlOYW1lKCk7DQogICAgICAgICRvYmotPmFjdGlvbiAgICAgID0gJ2FkbWluX3NldHRpbmdzJzsNCiAgICAgICAgJG91dFtdICAgICAgICAgICAgPSAkb2JqOw0KICAgICAgfQ0KICAgIH0NCiAgICANCiAgICByZXR1cm4gJG91dDsNCiAgfQ0KICANCiAgZnVuY3Rpb24gQWxsb3dBdXRvSW5zdGFsbCgpDQogIHsNCiAgICByZXR1cm4gJHRoaXMtPkdldFByZWZlcmVuY2UoJ2F1dG9faW5zdGFsbCcsIEZBTFNFKTsNCiAgfQ0KICANCiAgcHVibGljIGZ1bmN0aW9uIEFsbG93QXV0b1VwZ3JhZGUoKQ0KICB7DQogICAgcmV0dXJuICgkdGhpcy0+R2V0UHJlZmVyZW5jZSgnYXV0b191cGdyYWRlJywgRkFMU0UpKTsNCiAgfQ0KICANCiAgcHVibGljIGZ1bmN0aW9uIEdldERlcGVuZGVuY2llcygpDQogIHsNCiAgICByZXR1cm4gYXJyYXkoJ0xJU0UnID0+ICcxLjIuMicpOw0KICB9DQogIA0KICBwdWJsaWMgZnVuY3Rpb24gVmlzaWJsZVRvQWRtaW5Vc2VyKCkNCiAgew0KICAgIHJldHVybiAkdGhpcy0+Q2hlY2tQZXJtaXNzaW9uKCR0aGlzLT5fR2V0TW9kdWxlQWxpYXMoKSAuICdfbW9kaWZ5X2l0ZW0nKTsNCiAgfQ0KICANCiAgcHVibGljIGZ1bmN0aW9uIElzUGx1Z2luTW9kdWxlKCkNCiAgew0KICAgIHJldHVybiBUUlVFOw0KICB9DQogIA0KICBwdWJsaWMgZnVuY3Rpb24gTGF6eUxvYWRGcm9udGVuZCgpDQogIHsNCiAgICByZXR1cm4gRkFMU0U7DQogIH0NCiAgDQogIHB1YmxpYyBmdW5jdGlvbiBTdWJQYWNrYWdlKCkNCiAgew0KICAgIHJldHVybiBGQUxTRTsNCiAgfQ0KICANCiAgDQogIHB1YmxpYyBmdW5jdGlvbiBHZXRIZWxwKCkNCiAgew0KICAgICRzbWFydHkgPSBjbXNtcygpLT5HZXRTbWFydHkoKTsNCiAgICAvLyRjb25maWcgPSBjbXNtcygpLT5HZXRDb25maWcoKTsNCiAgICAkY29uZmlnICAgICA9IFxMSVNFXENvbmZpZ01hbmFnZXI6OkdldENvbmZpZ0luc3RhbmNlKGNtc21zKCktPkdldE1vZHVsZUluc3RhbmNlKCdMSVNFJykpOw0KICAgICRwYWdlX2xpbWl0ID0gaXNzZXQoJGNvbmZpZ1snZ2xvYmFsX0xJU0VRdWVyeV9wYWdlX2xpbWl0J10pID8gJGNvbmZpZ1snZ2xvYmFsX0xJU0VRdWVyeV9wYWdlX2xpbWl0J10gOiAxMDAwMDA7DQogICAgJGNvbmZpZyAgICAgPSBcTElTRVxDb25maWdNYW5hZ2VyOjpHZXRDb25maWdJbnN0YW5jZSgkdGhpcyk7DQogICAgJHBhZ2VfbGltaXQgPSBpc3NldCgkY29uZmlnWydMSVNFUXVlcnlfcGFnZV9saW1pdCddKSA/ICRjb25maWdbJ0xJU0VRdWVyeV9wYWdlX2xpbWl0J10gOiAkcGFnZV9saW1pdDsNCiAgICANCiAgICAkc21hcnR5LT5hc3NpZ24oJ3BhcmVudF9uYW1lJywgcGFyZW50OjpHZXROYW1lKCkpOw0KICAgICRzbWFydHktPmFzc2lnbigncm9vdF91cmwnLCAkY29uZmlnWydyb290X3VybCddKTsNCiAgICAkc21hcnR5LT5hc3NpZ24oJ21vZCcsICR0aGlzKTsNCiAgICAkc21hcnR5LT5hc3NpZ24oJ3BhZ2VfbGltaXQnLCAkcGFnZV9saW1pdCk7DQogICAgJHNtYXJ0eS0+YXNzaWduKCd1c2FnZV90ZXh0Jywgc3RyX3JlcGxhY2UoJ3skbW9kdWxlX25hbWV9JywgJHRoaXMtPkdldE5hbWUoKSwgJHRoaXMtPk1vZExhbmcoJ2hlbHBfdXNhZ2UnKSkpOw0KICAgICRzbWFydHktPmFzc2lnbigNCiAgICAgICdwZXJtaXNzaW9uc190ZXh0Jywgc3RyX3JlcGxhY2UoJ3skbW9kdWxlX25hbWV9JywgJHRoaXMtPkdldE5hbWUoKSwgJHRoaXMtPk1vZExhbmcoJ2hlbHBfcGVybWlzc2lvbnMnKSkNCiAgICApOw0KICAgICRzbWFydHktPmFzc2lnbigNCiAgICAgICdjYXRlZ29yaWVzX3RleHQnLCBzdHJfcmVwbGFjZSgneyRtb2R1bGVfbmFtZX0nLCAkdGhpcy0+R2V0TmFtZSgpLCAkdGhpcy0+TW9kTGFuZygnaGVscF9jYXRlZ29yaWVzJykpDQogICAgKTsNCiAgICAkc21hcnR5LT5hc3NpZ24oDQogICAgICAndGVtcGxhdGVzX3RleHQnLCBzdHJfcmVwbGFjZSgneyRtb2R1bGVfbmFtZX0nLCAkdGhpcy0+R2V0TmFtZSgpLCAkdGhpcy0+TW9kTGFuZygnaGVscF90ZW1wbGF0ZXMnKSkNCiAgICApOw0KICAgICRzbWFydHktPmFzc2lnbigNCiAgICAgICdkdXBsaWNhdGluZ190ZXh0Jywgc3RyX3JlcGxhY2UoJ3skbW9kdWxlX25hbWV9JywgJHRoaXMtPkdldE5hbWUoKSwgJHRoaXMtPk1vZExhbmcoJ2hlbHBfZHVwbGljYXRpbmcnKSkNCiAgICApOw0KICAgIA0KICAgIHJldHVybiAkdGhpcy0+TW9kUHJvY2Vzc1RlbXBsYXRlKCdoZWxwLnRwbCcpOw0KICB9DQogIA0KICBwdWJsaWMgZnVuY3Rpb24gSW5pdGlhbGl6ZUZyb250ZW5kKCkNCiAgew0KICAgICRtb2RlID0gJHRoaXMtPl9nZXRfbW9kZSgpOw0KICAgIA0KICAgIGlmKCRtb2RlID09IExJU0U6Ok1PREVfTElTVCkNCiAgICB7DQogICAgICAkdGhpcy0+UmVnaXN0ZXJNb2R1bGVQbHVnaW4oKTsNCiAgICAgICR0aGlzLT5SZXN0cmljdFVua25vd25QYXJhbXMoKTsNCiAgDQogICAgICAvLyBTZXQgYWxsb3dlZCBwYXJhbWV0ZXJzDQogICAgICAkdGhpcy0+U2V0UGFyYW1ldGVyVHlwZSgnYWN0aW9uJywgQ0xFQU5fU1RSSU5HKTsNCiAgICAgICR0aGlzLT5TZXRQYXJhbWV0ZXJUeXBlKCdzaG93YWxsJywgQ0xFQU5fSU5UKTsNCiAgICAgICR0aGlzLT5TZXRQYXJhbWV0ZXJUeXBlKCdjYXRlZ29yeScsIENMRUFOX1NUUklORyk7DQogICAgICAkdGhpcy0+U2V0UGFyYW1ldGVyVHlwZSgnZXhjbHVkZV9jYXRlZ29yeScsIENMRUFOX1NUUklORyk7DQogICAgICAkdGhpcy0+U2V0UGFyYW1ldGVyVHlwZSgnc3ViY2F0ZWdvcnknLCBDTEVBTl9JTlQpOw0KICAgICAgJHRoaXMtPlNldFBhcmFtZXRlclR5cGUoJ29yZGVyYnknLCBDTEVBTl9TVFJJTkcpOw0KICAgICAgJHRoaXMtPlNldFBhcmFtZXRlclR5cGUoJ2RldGFpbHRlbXBsYXRlJywgQ0xFQU5fU1RSSU5HKTsNCiAgICAgICR0aGlzLT5TZXRQYXJhbWV0ZXJUeXBlKCdzdW1tYXJ5dGVtcGxhdGUnLCBDTEVBTl9TVFJJTkcpOw0KICAgICAgJHRoaXMtPlNldFBhcmFtZXRlclR5cGUoJ3NlYXJjaHRlbXBsYXRlJywgQ0xFQU5fU1RSSU5HKTsNCiAgICAgICR0aGlzLT5TZXRQYXJhbWV0ZXJUeXBlKCdjYXRlZ29yeXRlbXBsYXRlJywgQ0xFQU5fU1RSSU5HKTsNCiAgICAgICR0aGlzLT5TZXRQYXJhbWV0ZXJUeXBlKCdhcmNoaXZldGVtcGxhdGUnLCBDTEVBTl9TVFJJTkcpOw0KICAgICAgJHRoaXMtPlNldFBhcmFtZXRlclR5cGUoQ0xFQU5fUkVHRVhQIC4gJy90ZW1wbGF0ZV8uKi8nLCBDTEVBTl9TVFJJTkcpOw0KICAgICAgJHRoaXMtPlNldFBhcmFtZXRlclR5cGUoJ2RldGFpbHBhZ2UnLCBDTEVBTl9TVFJJTkcpOw0KICAgICAgJHRoaXMtPlNldFBhcmFtZXRlclR5cGUoJ3N1bW1hcnlwYWdlJywgQ0xFQU5fU1RSSU5HKTsNCiAgICAgICR0aGlzLT5TZXRQYXJhbWV0ZXJUeXBlKCdpdGVtJywgQ0xFQU5fU1RSSU5HKTsNCiAgICAgICR0aGlzLT5TZXRQYXJhbWV0ZXJUeXBlKCdpZF9oaWVyYXJjaHknLCBDTEVBTl9TVFJJTkcpOw0KICAgICAgJHRoaXMtPlNldFBhcmFtZXRlclR5cGUoJ3BhZ2VsaW1pdCcsIENMRUFOX0lOVCk7DQogICAgICAkdGhpcy0+U2V0UGFyYW1ldGVyVHlwZSgnc3RhcnQnLCBDTEVBTl9JTlQpOw0KICAgICAgJHRoaXMtPlNldFBhcmFtZXRlclR5cGUoJ3BhZ2VudW1iZXInLCBDTEVBTl9JTlQpOw0KICAgICAgJHRoaXMtPlNldFBhcmFtZXRlclR5cGUoJ3NlYXJjaCcsIENMRUFOX1NUUklORyk7DQogICAgICAkdGhpcy0+U2V0UGFyYW1ldGVyVHlwZShDTEVBTl9SRUdFWFAgLiAnL3NlYXJjaF8uKi8nLCBDTEVBTl9TVFJJTkcpOw0KICAgICAgJHRoaXMtPlNldFBhcmFtZXRlclR5cGUoJ2ZpbHRlcicsIENMRUFOX1NUUklORyk7DQogICAgICAkdGhpcy0+U2V0UGFyYW1ldGVyVHlwZShDTEVBTl9SRUdFWFAgLiAnL2ZpbHRlcl8uKi8nLCBDTEVBTl9TVFJJTkcpOw0KICAgICAgJHRoaXMtPlNldFBhcmFtZXRlclR5cGUoJ2ZpbHRlcm9yZGVyYnknLCBDTEVBTl9TVFJJTkcpOyAjIEBzaW5jZSAxLjMNCiAgICAgICR0aGlzLT5TZXRQYXJhbWV0ZXJUeXBlKCdkZWJ1ZycsIENMRUFOX0lOVCk7DQogICAgICAkdGhpcy0+U2V0UGFyYW1ldGVyVHlwZSgnY29sbGFwc2UnLCBDTEVBTl9JTlQpOw0KICAgICAgJHRoaXMtPlNldFBhcmFtZXRlclR5cGUoJ3Nob3dfaXRlbXMnLCBDTEVBTl9JTlQpOw0KICAgICAgJHRoaXMtPlNldFBhcmFtZXRlclR5cGUoJ251bWJlcl9vZl9sZXZlbHMnLCBDTEVBTl9JTlQpOw0KICAgICAgJHRoaXMtPlNldFBhcmFtZXRlclR5cGUoJ2luY2x1ZGVfaXRlbXMnLCBDTEVBTl9TVFJJTkcpOw0KICAgICAgJHRoaXMtPlNldFBhcmFtZXRlclR5cGUoJ2V4Y2x1ZGVfaXRlbXMnLCBDTEVBTl9TVFJJTkcpOw0KICAgICAgJHRoaXMtPlNldFBhcmFtZXRlclR5cGUoJ3RhZycsIENMRUFOX1NUUklORyk7DQogIA0KICAgICAgLy8gR2V0IHN1bW1hcnlwYWdlDQogICAgICAkc3VtbWFyeXBhZ2UgPSAkdGhpcy0+R2V0UHJlZmVyZW5jZSgnc3VtbWFyeXBhZ2UnLCBOVUxMKTsNCiAgICAgIGlmKGlzX251bGwoJHN1bW1hcnlwYWdlKSkNCiAgICAgIHsNCiAgICANCiAgICAgICAgaWYoIWlzc2V0KCRjb250ZW50b3BzKSkNCiAgICAgICAgew0KICAgICAgICAgICRjb250ZW50b3BzID0gY21zbXMoKS0+R2V0Q29udGVudE9wZXJhdGlvbnMoKTsNCiAgICAgICAgfQ0KICAgIA0KICAgICAgICAkc3VtbWFyeXBhZ2UgPSAkY29udGVudG9wcy0+R2V0RGVmYXVsdFBhZ2VJRCgpOw0KICAgICAgfQ0KICANCiAgICAgIC8vIEdldCBkZXRhaWxwYWdlDQogICAgICAkZGV0YWlscGFnZSA9ICR0aGlzLT5HZXRQcmVmZXJlbmNlKCdkZXRhaWxwYWdlJywgTlVMTCk7DQogICAgICBpZihpc19udWxsKCRkZXRhaWxwYWdlKSkNCiAgICAgIHsNCiAgICANCiAgICAgICAgaWYoIWlzc2V0KCRjb250ZW50b3BzKSkNCiAgICAgICAgew0KICAgICAgICAgICRjb250ZW50b3BzID0gY21zbXMoKS0+R2V0Q29udGVudE9wZXJhdGlvbnMoKTsNCiAgICAgICAgfQ0KICAgIA0KICAgICAgICAkZGV0YWlscGFnZSA9ICRjb250ZW50b3BzLT5HZXREZWZhdWx0UGFnZUlEKCk7DQogICAgICB9DQogIA0KICAgICAgLy8gR2V0IHN1YmNhdGVnb3J5DQogICAgICAkc3ViY2F0ZWdvcnkgPSAkdGhpcy0+R2V0UHJlZmVyZW5jZSgnc3ViY2F0ZWdvcnknKTsNCiAgDQogICAgICAvLyBmaXggcHJlZml4ZXMNCiAgDQogICAgICAkcHJlZml4ID0gc3RyX3JlcGxhY2UoJy8nLCAnXC8nLCAkdGhpcy0+cHJlZml4KTsNCiAgDQogICAgICAvLyBBcmNoaXZlDQogICAgICAkdGhpcy0+UmVnaXN0ZXJSb3V0ZSgNCiAgICAgICAgJy8nDQogICAgICAgIC4gJHByZWZpeA0KICAgICAgICAuICdcL2FyY2hpdmVcLyg/UDxmaWx0ZXJfeWVhcj5bMC05XSs/KVwvKD9QPGZpbHRlcl9tb250aD5bMC05XSs/KVwvKD9QPHJldHVybmlkPlswLTldKykkLycsDQogICAgICAgIGFycmF5KCdhY3Rpb24nID0+ICdkZWZhdWx0JykNCiAgICAgICk7DQogIA0KICAgICAgJHRoaXMtPlJlZ2lzdGVyUm91dGUoDQogICAgICAgICcvJw0KICAgICAgICAuICRwcmVmaXgNCiAgICAgICAgLiAnXC9hcmNoaXZlXC8oP1A8ZmlsdGVyX3llYXI+WzAtOV0rPylcLyg/UDxyZXR1cm5pZD5bMC05XSspJC8nLA0KICAgICAgICBhcnJheSgnYWN0aW9uJyA9PiAnZGVmYXVsdCcpDQogICAgICApOw0KICANCiAgICAgIC8vIFBhZ2luYXRpb24NCiAgICAgICR0aGlzLT5SZWdpc3RlclJvdXRlKA0KICAgICAgICAnLycNCiAgICAgICAgLiAkcHJlZml4DQogICAgICAgIC4gJ1wvKD9QPGNhdGVnb3J5Pi4rPylcL3BhZ2VcLyg/UDxwYWdlbnVtYmVyPlswLTldKz8pXC8oP1A8cGFnZWxpbWl0PlswLTldKylcLyg/UDxyZXR1cm5pZD5bMC05XSspJC8nLA0KICAgICAgICBhcnJheSgnYWN0aW9uJyA9PiAnZGVmYXVsdCcpDQogICAgICApOw0KICANCiAgICAgICR0aGlzLT5SZWdpc3RlclJvdXRlKA0KICAgICAgICAnLycNCiAgICAgICAgLiAkcHJlZml4DQogICAgICAgIC4gJ1wvcGFnZVwvKD9QPHBhZ2VudW1iZXI+WzAtOV0rPylcLyg/UDxwYWdlbGltaXQ+WzAtOV0rKVwvKD9QPHJldHVybmlkPlswLTldKykkLycsDQogICAgICAgIGFycmF5KCdhY3Rpb24nID0+ICdkZWZhdWx0JykNCiAgICAgICk7DQogIA0KICAgICAgJHRoaXMtPlJlZ2lzdGVyUm91dGUoDQogICAgICAgICcvJw0KICAgICAgICAuICRwcmVmaXgNCiAgICAgICAgLiAnXC9wYWdlXC8oP1A8cGFnZW51bWJlcj5bMC05XSs/KVwvKD9QPHJldHVybmlkPlswLTldKykkLycsDQogICAgICAgIGFycmF5KCdhY3Rpb24nID0+ICdkZWZhdWx0JykNCiAgICAgICk7DQogIA0KICAgICAgLy8gSGllcmFyY2h5IHZpZXcNCiAgICAgICR0aGlzLT5SZWdpc3RlclJvdXRlKA0KICAgICAgICAnLycNCiAgICAgICAgLiAkcHJlZml4DQogICAgICAgIC4gJ1wvKD9QPGNhdGVnb3J5Pi4rPylcLyg/UDxpZF9oaWVyYXJjaHk+WzAtOS5dKylcLyg/UDxpdGVtPi4rPylcLyg/UDxyZXR1cm5pZD5bMC05XSspJC8nLA0KICAgICAgICBhcnJheSgnYWN0aW9uJyA9PiAnZGV0YWlsJykNCiAgICAgICk7DQogIA0KICAgICAgJHRoaXMtPlJlZ2lzdGVyUm91dGUoDQogICAgICAgICcvJw0KICAgICAgICAuICRwcmVmaXgNCiAgICAgICAgLiAnXC8oP1A8Y2F0ZWdvcnk+Lis/KVwvKD9QPGlkX2hpZXJhcmNoeT5bMC05Ll0rKVwvKD9QPHJldHVybmlkPlswLTldKykkLycsDQogICAgICAgIGFycmF5KCdhY3Rpb24nID0+ICdkZWZhdWx0JywgJ3N1YmNhdGVnb3J5JyA9PiAkc3ViY2F0ZWdvcnkpDQogICAgICApOw0KICANCiAgICAgIC8vIFNpbmd1bGFyDQogICAgICAkdGhpcy0+UmVnaXN0ZXJSb3V0ZSgNCiAgICAgICAgJy8nDQogICAgICAgIC4gJHByZWZpeA0KICAgICAgICAuICdcLyg/UDxpdGVtPi4rPylcLyg/UDxyZXR1cm5pZD5bMC05XSspXC8oP1A8ZGV0YWlsdGVtcGxhdGU+Lis/KSQvJywNCiAgICAgICAgYXJyYXkoJ2FjdGlvbicgPT4gJ2RldGFpbCcpDQogICAgICApOw0KICANCiAgDQogICAgICAkdGhpcy0+UmVnaXN0ZXJSb3V0ZSgNCiAgICAgICAgJy8nDQogICAgICAgIC4gJHByZWZpeA0KICAgICAgICAuICdcLyg/UDxpdGVtPi4rPylcLyg/UDxyZXR1cm5pZD5bMC05XSspJC8nLA0KICAgICAgICBhcnJheSgnYWN0aW9uJyA9PiAnZGV0YWlsJykNCiAgICAgICk7DQogICAgfQ0KICB9DQogIA0KLy8gIHB1YmxpYyBmdW5jdGlvbiBJbml0aWFsaXplQWRtaW4oKQ0KLy8gIHsNCi8vDQovLyAgfQ0KICANCiAgcHVibGljIGZ1bmN0aW9uIEdldEhlYWRlckhUTUwoKQ0KICB7DQogICAgLy8gU1NMIGNoZWNrIChIb3BlZnVsbHkgY29yZSB3b3VsZCBkbyB0aGlzIHNvb24uLi4pDQogICAgJHVzZV9zc2wgPSBGQUxTRTsNCiAgICBpZihpc3NldCgkX1NFUlZFUlsnSFRUUFMnXSkgJiYgJF9TRVJWRVJbJ0hUVFBTJ10gPT0gJ29uJykNCiAgICB7DQogICAgICAkdXNlX3NzbCA9IFRSVUU7DQogICAgfQ0KICAgIA0KICAgICRjb25maWcgICAgICA9IGNtc21zKCktPkdldENvbmZpZygpOw0KICAgICRzbWFydHkgICAgICA9IGNtc21zKCktPkdldFNtYXJ0eSgpOw0KICAgICRtb2R1bGVuYW1lICA9ICR0aGlzLT5HZXROYW1lKCk7DQogICAgJG1vZHVsZWRpciAgID0gJHRoaXMtPkdldFBhcmVudFVSTFBhdGgoJHVzZV9zc2wpOw0KICAgICRnbG9iYWxzX2pzICA9ICgkdXNlX3NzbCA/ICRjb25maWdbJ3NzbF91cmwnXSA6ICRjb25maWdbJ3Jvb3RfdXJsJ10pIC4gJy9tb2R1bGVzLycgLiBMSVNFIC4gJy9saWIvanMvJzsNCiAgICAkZ2xvYmFsc19jc3MgPSAoJHVzZV9zc2wgPyAkY29uZmlnWydzc2xfdXJsJ10gOiAkY29uZmlnWydyb290X3VybCddKSAuICcvbW9kdWxlcy8nIC4gTElTRSAuICcvbGliL2Nzcy8nOw0KICAgICRhZG1pbmRpciAgICA9ICRjb25maWdbJ2FkbWluX3VybCddOw0KICAgICR1c2Vya2V5ICAgICA9IGdldF9zZWN1cmVfcGFyYW0oKTsNCiAgICAkanF1ZXJ5dWkgICAgPSAnJzsNCiAgICANCiAgICBpZih2ZXJzaW9uX2NvbXBhcmUoQ01TX1ZFUlNJT04sICcxLjExLWFscGhhMCcpIDwgMCkNCiAgICB7DQogICAgICAkanF1ZXJ5dWkgPSAnPGxpbmsgdHlwZT0idGV4dC9jc3MiIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iJyAuICRtb2R1bGVkaXIgLg0KICAgICAgICAgICAgICAgICAgJy9jc3MvanF1ZXJ5LXVpLTEuOC4yLmN1c3RvbS5jc3MiPjwvbGluaz4nOw0KICAgIH0NCiAgICANCiAgICAkc21hcnR5LT5hc3NpZ24oJ21vZHVsZWRpcicsICRtb2R1bGVkaXIpOw0KICAgICRzbWFydHktPmFzc2lnbignZ2xvYmFsc19jc3MnLCAkZ2xvYmFsc19jc3MpOw0KICAgICRzbWFydHktPmFzc2lnbignZ2xvYmFsc19qcycsICRnbG9iYWxzX2pzKTsNCiAgICAkc21hcnR5LT5hc3NpZ24oJ2pxdWVyeXVpJywgJGpxdWVyeXVpKTsNCiAgICAkc21hcnR5LT5hc3NpZ24oJ2FkbWluZGlyJywgJGFkbWluZGlyKTsNCiAgICAkc21hcnR5LT5hc3NpZ24oJ3VzZXJrZXknLCAkdXNlcmtleSk7DQogICAgJHNtYXJ0eS0+YXNzaWduKCdtb2R1bGVuYW1lJywgJG1vZHVsZW5hbWUpOw0KICAgIA0KICAgICR0bXBsID0gJHRoaXMtPk1vZFByb2Nlc3NUZW1wbGF0ZSgnSFRNTF9IZWFkZXIudHBsJyk7DQogICAgDQogICAgJHRtcGwgLj0gTElTRUZpZWxkZGVmT3BlcmF0aW9uczo6R2V0SGVhZGVySFRNTCgpOw0KICAgIA0KICAgIHJldHVybiAkdG1wbDsNCiAgfQ0KICANCiAgcHVibGljIGZ1bmN0aW9uIERvQWN0aW9uKCRuYW1lLCAkaWQsICRwYXJhbXMsICRyZXR1cm5pZCA9ICcnKQ0KICB7DQogICAgJGNtc19zdGF0ZXMgICAgID0gQ21zQXBwOjpnZXRfaW5zdGFuY2UoKS0+Z2V0X3N0YXRlcygpOw0KICAgICRDTVNfQURNSU5fUEFHRSA9IGluX2FycmF5KENtc0FwcDo6U1RBVEVfQURNSU5fUEFHRSwgJGNtc19zdGF0ZXMpOw0KICAgICRleGNlcHRpb25zICAgICA9IFsnYWpheF9nZXR1cmwnLCAnYWpheF9nZXRfYWxpYXMnXTsNCiAgICAkc21hcnR5ICAgICAgICAgPSAkdGhpcy0+X2dldF9zbWFydHkoKTsNCiAgICAkZGIgICAgICAgICAgICAgPSBjbXNtcygpLT5HZXREYigpOyAjIG5lZWRlZCBmb3IgaW5jbHVkZXMNCiAgICANCiAgICAkc21hcnR5LT5hc3NpZ24oJ21vZCcsICR0aGlzKTsNCiAgICAkc21hcnR5LT5hc3NpZ24oJ2FjdGlvbmlkJywgJGlkKTsNCiAgICAkc21hcnR5LT5hc3NpZ24oJ3JldHVybmlkJywgJHJldHVybmlkKTsNCiAgICANCiAgICBjbXNfdXRpbHM6OnNldF9hcHBfZGF0YSgnbGlzZV9pbnN0YW5jZScsICR0aGlzLT5HZXROYW1lKCkpOw0KICAgIA0KICAgIGlmKCBjbXNtcygpLT5pc19mcm9udGVuZF9yZXF1ZXN0KCkgKQ0KICAgIHsNCiAgICAgIGlmKCBpc3NldCgkcGFyYW1zWydpZF9oaWVyYXJjaHknXSkgKQ0KICAgICAgew0KICAgICAgICBjbXNfdXRpbHM6OnNldF9hcHBfZGF0YSgnbGlzZV9pZF9oaWVyYXJjaHknLCAkcGFyYW1zWydpZF9oaWVyYXJjaHknXSk7DQogICAgICAgICRjYXRlZ29yeSA9ICR0aGlzLT5Mb2FkQ2F0ZWdvcnlCeUlkZW50aWZpZXIoJ2lkX2hpZXJhcmNoeScsICRwYXJhbXNbJ2lkX2hpZXJhcmNoeSddKTsNCiAgICAgICAgJHNtYXJ0eS0+YXNzaWduKCdjYXRlZ29yeScsICRjYXRlZ29yeSk7DQogICAgICAgICRzbWFydHktPmFzc2lnbigkdGhpcy0+R2V0TmFtZSgpIC4gJ19jYXRlZ29yeScsICRjYXRlZ29yeSk7IC8vIDwtIEFsaWFzIGZvciAkY2F0ZWdvcnkgICAgICAgIA0KICAgICAgfQ0KICAgIH0NCiAgICANCiAgICBpZigkQ01TX0FETUlOX1BBR0UpDQogICAgew0KICAgICAgJHRoZW1lT2JqZWN0ID0gY21zX3V0aWxzOjpnZXRfdGhlbWVfb2JqZWN0KCk7DQogICAgICAkc21hcnR5LT5hc3NpZ24oJ3RoZW1lT2JqZWN0JywgJHRoZW1lT2JqZWN0KTsNCiAgICB9DQogICAgDQogICAgaWYoJG5hbWUgIT0gJycpDQogICAgew0KICAgICAgJGdvdF9jb250ZW50cyA9IEZBTFNFOw0KICAgICAgJGNvbnRlbnRzICAgICA9ICcnOw0KICAgICAgJG5hbWUgICAgICAgICA9IHByZWdfcmVwbGFjZSgnL1teQS1aYS16MC05XC1fK10vJywgJycsICRuYW1lKTsNCiAgICAgIA0KICAgICAgLy8gQ2hlY2sgaWYgd2UgaGF2ZSBhbiBhY3Rpb24gZmlsZQ0KICAgICAgJGZpbGVuYW1lID0gY21zX2pvaW5fcGF0aCgNCiAgICAgICAgJHRoaXMtPkdldE1vZHVsZVBhdGgoKSwNCiAgICAgICAgJ2FjdGlvbi4nIC4gJG5hbWUgLiAnLnBocCcNCiAgICAgICk7DQogICAgICANCiAgICAgIGlmKEBpc19maWxlKCRmaWxlbmFtZSkgJiYgISRnb3RfY29udGVudHMpDQogICAgICB7DQogICAgICAgIG9iX3N0YXJ0KCk7DQogICAgICAgIGluY2x1ZGUoJGZpbGVuYW1lKTsNCiAgICAgICAgJGNvbnRlbnRzIC49IG9iX2dldF9jb250ZW50cygpOw0KICAgICAgICBvYl9lbmRfY2xlYW4oKTsNCiAgICAgICAgJGdvdF9jb250ZW50cyA9IFRSVUU7DQogICAgICB9DQogICAgICANCiAgICAgIC8vIENoZWNrIHBhcmVudCBpZiB3ZSBkb24ndA0KICAgICAgDQogICAgICAkZmlsZW5hbWUgPSBjbXNfam9pbl9wYXRoKA0KICAgICAgICAkdGhpcy0+R2V0UGFyZW50UGF0aCgpLA0KICAgICAgICAnYWN0aW9uLicgLiAkbmFtZSAuICcucGhwJw0KICAgICAgKTsNCiAgICAgIA0KICAgICAgaWYoQGlzX2ZpbGUoJGZpbGVuYW1lKSAmJiAhJGdvdF9jb250ZW50cykNCiAgICAgIHsNCiAgICAgICAgb2Jfc3RhcnQoKTsNCiAgICAgICAgaW5jbHVkZSgkZmlsZW5hbWUpOw0KICAgICAgICAkY29udGVudHMgLj0gb2JfZ2V0X2NvbnRlbnRzKCk7DQogICAgICAgIG9iX2VuZF9jbGVhbigpOw0KICAgICAgICAkZ290X2NvbnRlbnRzID0gVFJVRTsNCiAgICAgIH0NCiAgICAgIA0KICAgICAgaWYoICRnb3RfY29udGVudHMgJiYgJENNU19BRE1JTl9QQUdFICYmICFpbl9hcnJheSgkbmFtZSwgJGV4Y2VwdGlvbnMpICkNCiAgICAgIHsNCiAgICAgICAgJGNvbnRlbnRzID0gJzxkaXYgY2xhc3M9Imxpc2UtYWRtaW4td3JhcHBlciI+JyAuICRjb250ZW50cyAuICAnPC9kaXY+JzsNCiAgICAgIH0gLy8gVE9ETyB3ZSBuZWVkIHRvIHJldmlzaXQgdGhpcyB0b28gKEpNKQ0KICAgICAgDQogICAgICBlY2hvICRjb250ZW50czsNCiAgICB9DQogIH0NCiAgDQogIGZ1bmN0aW9uIFNlYXJjaFJlaW5kZXgoJG1vZHVsZSkNCiAgew0KICAgIExJU0VJdGVtT3BlcmF0aW9uczo6cmVpbmRleF9zZWFyY2goJG1vZHVsZSwgJHRoaXMpOw0KICB9DQogIA0KICANCiAgZnVuY3Rpb24gVXBncmFkZSgkb2xkdmVyc2lvbiwgJG5ld3ZlcnNpb24pDQogIHsNCiAgICAjIG5lZWRlZCBmb3IgdGhlIGluY2x1ZGUNCiAgICAkY29uZmlnID0gY21zbXMoKS0+R2V0Q29uZmlnKCk7DQogICAgJHNtYXJ0eSA9IGNtc21zKCktPkdldFNtYXJ0eSgpOw0KICAgICRkYiAgICAgPSBjbXNtcygpLT5HZXREYigpOw0KICAgIA0KICAgICRyZXNwb25zZSA9IEZBTFNFOw0KICAgIA0KICAgICRmaWxlbmFtZSA9IGNtc19qb2luX3BhdGgoDQogICAgICAkdGhpcy0+R2V0UGFyZW50UGF0aCgpLA0KICAgICAgJ21ldGhvZC51cGdyYWRlR2xvYmFscy5waHAnDQogICAgKTsNCiAgICANCiAgICBpZihAaXNfZmlsZSgkZmlsZW5hbWUpKQ0KICAgIHsNCiAgICAgIA0KICAgICAgJHJlcyA9IGluY2x1ZGUoJGZpbGVuYW1lKTsNCiAgICAgIA0KICAgICAgaWYobGlzZV91dGlsczo6aXNDTVMyKCkpDQogICAgICB7DQogICAgICAgIGlmKCRyZXMgPT0gMSB8fCAkcmVzID09ICcnKQ0KICAgICAgICB7DQogICAgICAgICAgJHJlc3BvbnNlID0gRkFMU0U7DQogICAgICAgIH0NCiAgICAgICAgZWxzZQ0KICAgICAgICB7DQogICAgICAgICAgJHJlc3BvbnNlID0gJHJlczsNCiAgICAgICAgfQ0KICAgICAgfQ0KICAgICAgZWxzZQ0KICAgICAgew0KICAgICAgICBpZigkcmVzID09IDEgfHwgJHJlcyA9PSAnJykNCiAgICAgICAgew0KICAgICAgICAgICRyZXNwb25zZSA9IFRSVUU7DQogICAgICAgIH0NCiAgICAgIH0NCiAgICB9DQogICAgDQogICAgJGZpbGVuYW1lID0gY21zX2pvaW5fcGF0aCgNCiAgICAgICR0aGlzLT5HZXRNb2R1bGVQYXRoKCksDQogICAgICAnbWV0aG9kLnVwZ3JhZGUucGhwJw0KICAgICk7DQogICAgDQogICAgaWYoQGlzX2ZpbGUoJGZpbGVuYW1lKSkNCiAgICB7DQogICAgICAkcmVzID0gaW5jbHVkZSgkZmlsZW5hbWUpOw0KICAgICAgDQogICAgICBpZihsaXNlX3V0aWxzOjppc0NNUzIoKSkNCiAgICAgIHsNCiAgICAgICAgaWYoJHJlcyA9PSAxIHx8ICRyZXMgPT0gJycpDQogICAgICAgIHsNCiAgICAgICAgICAkcmVzcG9uc2UgPSBGQUxTRTsNCiAgICAgICAgfQ0KICAgICAgICBlbHNlDQogICAgICAgIHsNCiAgICAgICAgICAkcmVzcG9uc2UgPSAkcmVzOw0KICAgICAgICB9DQogICAgICB9DQogICAgICBlbHNlDQogICAgICB7DQogICAgICAgIGlmKCRyZXMgPT0gMSB8fCAkcmVzID09ICcnKQ0KICAgICAgICB7DQogICAgICAgICAgJHJlc3BvbnNlID0gVFJVRTsNCiAgICAgICAgfQ0KICAgICAgfQ0KICAgIH0NCiAgICANCiAgICAvLyBDaGVjayBpZiBtb2R1bGUgaW4gb3VyIG93biBjb250cm9sIHRhYmxlcyB5ZXQNCiAgICAkcXVlcnkgICAgID0gJ1NFTEVDVCBtb2R1bGVfaWQgRlJPTSAnIC4gY21zX2RiX3ByZWZpeCgpIC4gJ21vZHVsZV9saXNlX2luc3RhbmNlcyBXSEVSRSBtb2R1bGVfbmFtZSA9ID8nOw0KICAgICRtb2RzdGF0dXMgPSAkZGItPkdldE9uZSgkcXVlcnksIGFycmF5KCR0aGlzLT5HZXROYW1lKCkpKTsNCiAgICANCiAgICBpZighJG1vZHN0YXR1cykNCiAgICB7DQogICAgICAkdGhpcy0+UmVnaXN0ZXJNb2R1bGUoKTsNCiAgICB9DQogICAgDQogICAgcmV0dXJuICRyZXNwb25zZTsNCiAgfQ0KICANCiAgZnVuY3Rpb24gSW5zdGFsbCgpDQogIHsNCiAgICAjIG5lZWRlZCBmb3IgdGhlIGluY2x1ZGUNCiAgICAkY29uZmlnID0gY21zbXMoKS0+R2V0Q29uZmlnKCk7DQogICAgJHNtYXJ0eSA9IGNtc21zKCktPkdldFNtYXJ0eSgpOw0KICAgICRkYiAgICAgPSBjbXNtcygpLT5HZXREYigpOw0KICAgIA0KICAgICRyZXNwb25zZSA9IEZBTFNFOw0KICAgIA0KICAgICRmaWxlbmFtZSA9IGNtc19qb2luX3BhdGgoDQogICAgICAkdGhpcy0+R2V0UGFyZW50UGF0aCgpLA0KICAgICAgJ21ldGhvZC5pbnN0YWxsR2xvYmFscy5waHAnDQogICAgKTsNCiAgICANCiAgICBpZihAaXNfZmlsZSgkZmlsZW5hbWUpKQ0KICAgIHsNCiAgICAgICRyZXMgPSBpbmNsdWRlKCRmaWxlbmFtZSk7DQogICAgICANCiAgICAgIGlmKCRyZXMgPT0gMSB8fCAkcmVzID09ICcnKQ0KICAgICAgew0KICAgICAgICAkcmVzcG9uc2UgPSBGQUxTRTsNCiAgICAgIH0NCiAgICAgIGVsc2UNCiAgICAgIHsNCiAgICAgICAgJHJlc3BvbnNlID0gJHJlczsNCiAgICAgIH0NCiAgICB9DQogICAgDQogICAgJGZpbGVuYW1lID0gY21zX2pvaW5fcGF0aCgNCiAgICAgICR0aGlzLT5HZXRNb2R1bGVQYXRoKCksDQogICAgICAnbWV0aG9kLmluc3RhbGwucGhwJw0KICAgICk7DQogICAgDQogICAgaWYoQGlzX2ZpbGUoJGZpbGVuYW1lKSkNCiAgICB7DQogICAgICAkcmVzID0gaW5jbHVkZSgkZmlsZW5hbWUpOw0KICAgICAgDQogICAgICBpZigkcmVzID09IDEgfHwgJHJlcyA9PSAnJykNCiAgICAgIHsNCiAgICAgICAgJHJlc3BvbnNlID0gRkFMU0U7DQogICAgICB9DQogICAgICBlbHNlDQogICAgICB7DQogICAgICAgICRyZXNwb25zZSA9ICRyZXM7DQogICAgICB9DQogICAgfQ0KICAgIA0KICAgIGlmKCEkcmVzcG9uc2UpDQogICAgew0KICAgICAgJHRoaXMtPlJlZ2lzdGVyTW9kdWxlKCk7DQogICAgfQ0KICAgIA0KICAgIHJldHVybiAkcmVzcG9uc2U7DQogIH0NCiAgDQogIGZ1bmN0aW9uIFVuaW5zdGFsbCgpDQogIHsNCiAgICAkY29uZmlnID0gY21zbXMoKS0+R2V0Q29uZmlnKCk7DQogICAgJHNtYXJ0eSA9IGNtc21zKCktPkdldFNtYXJ0eSgpOw0KICAgICRkYiAgICAgPSBjbXNtcygpLT5HZXREYigpOw0KICAgIA0KICAgICRyZXNwb25zZSA9IEZBTFNFOw0KICAgIA0KICAgICRmaWxlbmFtZSA9IGNtc19qb2luX3BhdGgoDQogICAgICAkdGhpcy0+R2V0UGFyZW50UGF0aCgpLA0KICAgICAgJ21ldGhvZC51bmluc3RhbGxHbG9iYWxzLnBocCcNCiAgICApOw0KICAgIA0KICAgIGlmKEBpc19maWxlKCRmaWxlbmFtZSkpDQogICAgew0KICAgICAgJHJlcyA9IGluY2x1ZGUoJGZpbGVuYW1lKTsNCiAgICAgIA0KICAgICAgaWYoJHJlcyA9PSAxIHx8ICRyZXMgPT0gJycpDQogICAgICB7DQogICAgICAgICRyZXNwb25zZSA9IEZBTFNFOw0KICAgICAgfQ0KICAgICAgZWxzZQ0KICAgICAgew0KICAgICAgICAkcmVzcG9uc2UgPSAkcmVzOw0KICAgICAgfQ0KICAgIH0NCiAgICANCiAgICAkZmlsZW5hbWUgPSBjbXNfam9pbl9wYXRoKA0KICAgICAgJHRoaXMtPkdldE1vZHVsZVBhdGgoKSwNCiAgICAgICdtZXRob2QudW5pbnN0YWxsLnBocCcNCiAgICApOw0KICAgIA0KICAgIGlmKEBpc19maWxlKCRmaWxlbmFtZSkpDQogICAgew0KICAgICAgJHJlcyA9IGluY2x1ZGUoJGZpbGVuYW1lKTsNCiAgICAgIA0KICAgICAgaWYoJHJlcyA9PSAxIHx8ICRyZXMgPT0gJycpDQogICAgICB7DQogICAgICAgICRyZXNwb25zZSA9IEZBTFNFOw0KICAgICAgfQ0KICAgICAgZWxzZQ0KICAgICAgew0KICAgICAgICAkcmVzcG9uc2UgPSAkcmVzOw0KICAgICAgfQ0KICAgIH0NCiAgICANCiAgICBpZighJHJlc3BvbnNlKQ0KICAgIHsNCiAgICAgIA0KICAgICAgJHRoaXMtPlVucmVnaXN0ZXJNb2R1bGUoKTsNCiAgICB9DQogICAgDQogICAgcmV0dXJuICRyZXNwb25zZTsNCiAgfQ0KICANCiAgIy0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KICAjIE1hbmlwdWxhdGlvbiBtZXRob2RzDQogICMtLS0tLS0tLS0tLS0tLS0tLS0tLS0gICANCiAgDQogIHB1YmxpYyBmdW5jdGlvbiBNb2RMYW5nKCkNCiAgew0KICAgICRtb2QgPSBjbXNtcygpLT5HZXRNb2R1bGVJbnN0YW5jZShMSVNFKTsNCiAgICBpZighaXNfb2JqZWN0KCRtb2QpKQ0KICAgIHsNCiAgICAgIHJldHVybiAnJzsNCiAgICB9DQogICAgI3Rocm93IG5ldyBcTElTRVxFeGNlcHRpb24oJ0Nhbm5vdCByZXRyaXZlIExJU0UgT2JqZWN0LicpOw0KICAgICN0aHJvdyBuZXcgTElTRUV4Y2VwdGlvbignQ2Fubm90IHJldHJpdmUgTElTRSBPYmplY3QuJyk7DQogICAgDQogICAgJG1vZC0+TG9hZExhbmdNZXRob2RzKCk7DQogICAgDQogICAgJGFyZ3MgPSBmdW5jX2dldF9hcmdzKCk7DQogICAgYXJyYXlfdW5zaGlmdCgkYXJncywgJycpOw0KICAgIA0KICAgIGlmKGxpc2VfdXRpbHM6OmlzQ01TMigpKQ0KICAgIHsNCiAgICAgICRhcmdzWzBdID0gJG1vZC0+R2V0TmFtZSgpOw0KICAgICAgDQogICAgICByZXR1cm4gQ21zTGFuZ09wZXJhdGlvbnM6OmxhbmdfZnJvbV9yZWFsbSgkYXJncyk7DQogICAgfQ0KICAgIGVsc2UNCiAgICB7DQogICAgICAkYXJnc1swXSA9ICYkbW9kOw0KICAgICAgDQogICAgICByZXR1cm4gY2FsbF91c2VyX2Z1bmNfYXJyYXkoJ2Ntc19tb2R1bGVfTGFuZycsICRhcmdzKTsNCiAgICB9DQogIH0NCiAgDQogIHB1YmxpYyBmdW5jdGlvbiBHZXRQYXJlbnRQYXRoKCkNCiAgew0KICAgICRjb25maWcgPSBjbXNtcygpLT5HZXRDb25maWcoKTsNCiAgICANCiAgICByZXR1cm4gY21zX2pvaW5fcGF0aCgkY29uZmlnWydyb290X3BhdGgnXSwgJ21vZHVsZXMnLCBMSVNFLCAnZnJhbWV3b3JrJyk7DQogIH0NCiAgDQogIHB1YmxpYyBmdW5jdGlvbiBHZXRQYXJlbnRVUkxQYXRoKCR1c2Vfc3NsID0gRkFMU0UpDQogIHsNCiAgICAkY29uZmlnID0gY21zbXMoKS0+R2V0Q29uZmlnKCk7DQogICAgDQogICAgcmV0dXJuICgkdXNlX3NzbCA/ICRjb25maWdbJ3NzbF91cmwnXSA6ICRjb25maWdbJ3Jvb3RfdXJsJ10pIC4gJy9tb2R1bGVzLycgLiBMSVNFIC4gJy9mcmFtZXdvcmsnOw0KICB9DQogIA0KICAjLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQogICMgSW5zdGFuY2UgbWV0aG9kcw0KICAjLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQogIA0KICBwdWJsaWMgZnVuY3Rpb24gR2V0TW9kZSgpDQogIHsNCiAgICByZXR1cm4gJHRoaXMtPl9nZXRfbW9kZSgpOw0KICB9DQogIA0KICBwdWJsaWMgZnVuY3Rpb24gU2V0TW9kZSgkbW9kZSA9IExJU0U6Ok1PREVfTElTVCkNCiAgew0KICAgICR0aGlzLT5fbW9kZSA9ICRtb2RlOw0KICAgICR0aGlzLT5fc2F2ZV9tb2RlKCk7DQogIH0NCiAgDQogIHByaXZhdGUgZnVuY3Rpb24gUmVnaXN0ZXJNb2R1bGUoKQ0KICB7DQogICAgJGRiICAgPSBjbXNtcygpLT5HZXREYigpOw0KICAgICRtb2RlID0gaXNfbnVsbCgkdGhpcy0+X21vZGUpID8gMSA6ICR0aGlzLT5fbW9kZTsNCiAgICANCiAgICAkcXVlcnkgID0gJ0lOU0VSVCBJTlRPICcgLiBjbXNfZGJfcHJlZml4KCkgLiAnbW9kdWxlX2xpc2VfaW5zdGFuY2VzIChtb2R1bGVfbmFtZSwgbW9kdWxlX21vZGUpIFZBTFVFUyAoPyw/KSc7DQogICAgJHJlc3VsdCA9ICRkYi0+RXhlY3V0ZSgkcXVlcnksIGFycmF5KCR0aGlzLT5HZXROYW1lKCksICRtb2RlKSk7DQogICAgDQogICAgaWYoISRyZXN1bHQpDQogICAgew0KICAgICAgdGhyb3cgbmV3IFxMSVNFXEV4Y2VwdGlvbigNCiAgICAgICAgJGRiLT5FcnJvck5vKCkgLiAnIC0gJyAuICRkYi0+RXJyb3JNc2coKSAuICcgLSBRdWVyeTogJyAuICRkYi0+c3FsLCBcTElTRVxFcnJvcjo6RElTQ1JFVEVfREINCiAgICAgICk7DQogICAgfQ0KICAgIA0KICAgIHJldHVybiBUUlVFOw0KICB9DQogIA0KICBwcml2YXRlIGZ1bmN0aW9uIFVucmVnaXN0ZXJNb2R1bGUoKQ0KICB7DQogICAgJGRiID0gY21zbXMoKS0+R2V0RGIoKTsNCiAgICANCiAgICAkcXVlcnkgID0gJ0RFTEVURSBGUk9NICcgLiBjbXNfZGJfcHJlZml4KCkgLiAnbW9kdWxlX2xpc2VfaW5zdGFuY2VzIFdIRVJFIG1vZHVsZV9uYW1lID0gPyc7DQogICAgJHJlc3VsdCA9ICRkYi0+RXhlY3V0ZSgkcXVlcnksIGFycmF5KCR0aGlzLT5HZXROYW1lKCkpKTsNCiAgICANCiAgICBpZighJHJlc3VsdCkNCiAgICB7DQogICAgICB0aHJvdyBuZXcgXExJU0VcRXhjZXB0aW9uKA0KICAgICAgICAkZGItPkVycm9yTm8oKSAuICcgLSAnIC4gJGRiLT5FcnJvck1zZygpIC4gJyAtIFF1ZXJ5OiAnIC4gJGRiLT5zcWwsIFxMSVNFXEVycm9yOjpESVNDUkVURV9EQg0KICAgICAgKTsNCiAgICB9DQogICAgDQogICAgcmV0dXJuIFRSVUU7DQogIH0NCiAgDQogIC8qKg0KICAgKiBCYWNrZW5kIEl0ZW1zIGxpc3QgZm9yIEFKQVggc2VhcmNoDQogICAqDQogICAqIEBwYXJhbSBhcnJheSAkcGFyYW1zDQogICAqDQogICAqIEByZXR1cm4gbWl4ZWR8c3RyaW5nDQogICAqIEB0aHJvd3MgXExJU0VcRXhjZXB0aW9uDQogICAqLw0KICBmaW5hbCBmdW5jdGlvbiBiZUl0ZW1zTGlzdCgkcGFyYW1zID0gYXJyYXkoKSkNCiAgew0KICAgICRwYXJhbXMgICAgID0gbGlzZV91dGlsczo6cmVjb3Zlcl9wYXJhbXMoJHBhcmFtcyk7DQogICAgJGlkICAgICAgICAgPSBpc3NldCgkcGFyYW1zWydpZCddKSA/ICRwYXJhbXNbJ2lkJ10gOiAtMTsNCiAgICAkcmV0dXJuaWQgICA9IGlzc2V0KCRwYXJhbXNbJ3JldHVybmlkJ10pID8gJHBhcmFtc1sncmV0dXJuaWQnXSA6ICcnOw0KICAgICRhZG1pbnRoZW1lID0gY21zX3V0aWxzOjpnZXRfdGhlbWVfb2JqZWN0KCk7DQogICAgJHNtYXJ0eSAgICAgPSAkdGhpcy0+R2V0QWN0aW9uVGVtcGxhdGVPYmplY3QoKTsNCiAgICANCiAgICAkc2luZ3VsYXIgICA9ICR0aGlzLT5HZXRQcmVmZXJlbmNlKCdpdGVtX3Npbmd1bGFyJywgJycpOw0KICAgICRwbHVyYWwgICAgID0gJHRoaXMtPkdldFByZWZlcmVuY2UoJ2l0ZW1fcGx1cmFsJywgJycpOw0KICAgICRmaWVsZHMgICAgID0gZXhwbG9kZSgnLCcsICR0aGlzLT5HZXRQcmVmZXJlbmNlKCdpdGVtX2NvbHMnLCAnJykpOw0KICAgICRsaW1pdCAgICAgID0gJHRoaXMtPkdldFByZWZlcmVuY2UoJ2l0ZW1zX3Blcl9wYWdlJywgMjApOw0KICAgICRkYXRlZm9ybWF0ID0gdHJpbShnZXRfcHJlZmVyZW5jZShnZXRfdXNlcmlkKCksICdkYXRlX2Zvcm1hdF9zdHJpbmcnLCAnJVktJW0tJWQnKSk7DQogICAgDQogICAgaWYoZW1wdHkoJGRhdGVmb3JtYXQpKQ0KICAgIHsNCiAgICAgICRkYXRlZm9ybWF0ID0gJyVZLSVtLSVkJzsNCiAgICB9DQogICAgDQogICAgIy0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KICAgICMgSW5pdCBpdGVtcw0KICAgICMtLS0tLS0tLS0tLS0tLS0tLS0tLS0NCiAgICAkcGFyYW1zWydwYWdlbGltaXQnXSA9ICRsaW1pdDsNCiAgICAkcGFyYW1zWydzaG93YWxsJ10gICA9IFRSVUU7ICAvLyA8LSBUbyBkaXNhYmxlIHRpbWUgY29udHJvbCBxdWVyaWVzDQogICAgDQogICAgJGl0ZW1fcXVlcnkgPSBuZXcgTElTRUl0ZW1RdWVyeSgkdGhpcywgJHBhcmFtcyk7DQogICAgDQogICAgaWYoISR0aGlzLT5DaGVja1Blcm1pc3Npb24oJHRoaXMtPl9HZXRNb2R1bGVBbGlhcygpIC4gJ19tb2RpZnlfYWxsX2l0ZW0nKSkNCiAgICB7DQogICAgICAkaXRlbV9xdWVyeS0+QXBwZW5kVG8oTElTRVF1ZXJ5OjpWQVJUWVBFX1dIRVJFLCAnQS5vd25lciA9ID8nKTsNCiAgICAgICRpdGVtX3F1ZXJ5LT5BcHBlbmRUbyhMSVNFUXVlcnk6OlZBUlRZUEVfUVBBUkFNUywgZ2V0X3VzZXJpZChGQUxTRSkpOw0KICAgIH0NCiAgICANCiAgICAkcmVzdWx0ID0gJGl0ZW1fcXVlcnktPkV4ZWN1dGUoVFJVRSk7DQogICAgDQogICAgLy8kcGFnZSA9ICRpdGVtX3F1ZXJ5LT5HZXRQYWdlTnVtYmVyKCk7DQogICAgJHRvdGFsY291bnQgPSAkaXRlbV9xdWVyeS0+VG90YWxDb3VudCgpOw0KICAgIA0KICAgICRpdGVtcyA9IGFycmF5KCk7DQogICAgd2hpbGUoJHJlc3VsdCAmJiAkcm93ID0gJHJlc3VsdC0+RmV0Y2hSb3coKSkNCiAgICB7DQogICAgICAkb2JqID0gJHRoaXMtPkluaXRpYXRlSXRlbSgkZmllbGRzKTsNCiAgICAgIExJU0VJdGVtT3BlcmF0aW9uczo6TG9hZCgkdGhpcywgJG9iaiwgJHJvdyk7DQogICAgICANCiAgICAgIC8vIENoZWNrIGlmIHdlIG5lZWQgdG8gc2hvdyBhbnkgZmllbGRzDQogICAgICBpZihjb3VudCgkZmllbGRzKSA+IDApDQogICAgICB7DQogICAgICAgIC8vIENoZWNrIHN0YXRpYw0KICAgICAgICBpZighaW5fYXJyYXkoJ2FsaWFzJywgJGZpZWxkcykpDQogICAgICAgIHsNCiAgICAgICAgICB1bnNldCgkb2JqLT5hbGlhcyk7DQogICAgICAgIH0NCiAgICAgICAgDQogICAgICAgIGlmKCFpbl9hcnJheSgnY3JlYXRlX3RpbWUnLCAkZmllbGRzKSkNCiAgICAgICAgew0KICAgICAgICAgIHVuc2V0KCRvYmotPmNyZWF0ZV90aW1lKTsNCiAgICAgICAgfQ0KICAgICAgICBlbHNlDQogICAgICAgIHsNCiAgICAgICAgICAkb2JqLT5jcmVhdGVfdGltZSA9IGxpc2VfdXRpbHM6OnN0cmZ0aW1lKCRkYXRlZm9ybWF0LCBzdHJ0b3RpbWUoJG9iai0+Y3JlYXRlX3RpbWUpKTsNCiAgICAgICAgfQ0KICAgICAgICANCiAgICAgICAgaWYoIWluX2FycmF5KCdtb2RpZmllZF90aW1lJywgJGZpZWxkcykpDQogICAgICAgIHsNCiAgICAgICAgICB1bnNldCgkb2JqLT5tb2RpZmllZF90aW1lKTsNCiAgICAgICAgfQ0KICAgICAgICBlbHNlDQogICAgICAgIHsNCiAgICAgICAgICAkb2JqLT5tb2RpZmllZF90aW1lID0gbGlzZV91dGlsczo6c3RyZnRpbWUoJGRhdGVmb3JtYXQsIHN0cnRvdGltZSgkb2JqLT5tb2RpZmllZF90aW1lKSk7DQogICAgICAgIH0NCiAgICAgICAgDQogICAgICAgIGlmKGluX2FycmF5KCdzdGFydF90aW1lJywgJGZpZWxkcykpDQogICAgICAgIHsNCiAgICAgICAgICAkb2JqLT5zdGFydF90aW1lID0gIWVtcHR5KCRvYmotPnN0YXJ0X3RpbWUpID8gbGlzZV91dGlsczo6c3RyZnRpbWUoJGRhdGVmb3JtYXQsIHN0cnRvdGltZSgkb2JqLT5zdGFydF90aW1lKSkgOiAnJzsNCiAgICAgICAgfQ0KICAgICAgICANCiAgICAgICAgaWYoaW5fYXJyYXkoJ2VuZF90aW1lJywgJGZpZWxkcykpDQogICAgICAgIHsNCiAgICAgICAgICAkb2JqLT5lbmRfdGltZSA9ICFlbXB0eSgkb2JqLT5lbmRfdGltZSkgPyBsaXNlX3V0aWxzOjpzdHJmdGltZSgkZGF0ZWZvcm1hdCwgc3RydG90aW1lKCRvYmotPmVuZF90aW1lKSkgOiAnJzsNCiAgICAgICAgfQ0KICAgICAgfQ0KICAgICAgDQogICAgICAvLyBhcHByb3ZlDQogICAgICBpZigkdGhpcy0+Q2hlY2tQZXJtaXNzaW9uKCR0aGlzLT5fR2V0TW9kdWxlQWxpYXMoKSAuICdfYXBwcm92ZV9pdGVtJykpDQogICAgICB7DQogICAgICAgIGlmKCRvYmotPmFjdGl2ZSkNCiAgICAgICAgew0KICAgICAgICAgICRvYmotPmFwcHJvdmUgPSAkdGhpcy0+Q3JlYXRlTGluaygNCiAgICAgICAgICAgICRpZCwgJ2FkbWluX2FwcHJvdmVpdGVtJywgJHJldHVybmlkLA0KICAgICAgICAgICAgJGFkbWludGhlbWUtPkRpc3BsYXlJbWFnZSgnaWNvbnMvc3lzdGVtL3RydWUuZ2lmJywgJHRoaXMtPk1vZExhbmcoJ3JldmVydCcpLCAnJywgJycsICdzeXN0ZW1pY29uJyksIGFycmF5KA0KICAgICAgICAgICAgICAnYXBwcm92ZScgPT4gMCwNCiAgICAgICAgICAgICAgJ2l0ZW1faWQnID0+ICRyb3dbJ2l0ZW1faWQnXQ0KICAgICAgICAgICAgKQ0KICAgICAgICAgICk7DQogICAgICAgIH0NCiAgICAgICAgZWxzZQ0KICAgICAgICB7DQogICAgICAgICAgJG9iai0+YXBwcm92ZSA9ICR0aGlzLT5DcmVhdGVMaW5rKA0KICAgICAgICAgICAgJGlkLCAnYWRtaW5fYXBwcm92ZWl0ZW0nLCAkcmV0dXJuaWQsDQogICAgICAgICAgICAkYWRtaW50aGVtZS0+RGlzcGxheUltYWdlKCdpY29ucy9zeXN0ZW0vZmFsc2UuZ2lmJywgJHRoaXMtPk1vZExhbmcoJ2FwcHJvdmUnKSwgJycsICcnLCAnc3lzdGVtaWNvbicpLCBhcnJheSgNCiAgICAgICAgICAgICAgJ2FwcHJvdmUnID0+IDEsDQogICAgICAgICAgICAgICdpdGVtX2lkJyA9PiAkcm93WydpdGVtX2lkJ10NCiAgICAgICAgICAgICkNCiAgICAgICAgICApOw0KICAgICAgICB9DQogICAgICB9DQogICAgICANCiAgICAgICRsaW5rcGFyYW1zICAgICAgICAgICAgPSBhcnJheSgpOw0KICAgICAgJGxpbmtwYXJhbXNbJ2l0ZW1faWQnXSA9ICRyb3dbJ2l0ZW1faWQnXTsNCiAgICAgIA0KICAgICAgbGlzZV91dGlsczo6Y2xlYW5fcGFyYW1zKCRwYXJhbXMsIGFycmF5KCdwYWdlJyksIFRSVUUpOw0KICAgICAgJGxpbmtwYXJhbXMgPSBhcnJheV9tZXJnZSgkbGlua3BhcmFtcywgJHBhcmFtcyk7DQogICAgICANCiAgICAgIC8vIGVkaXQNCiAgICAgICRvYmotPmVkaXRsaW5rID0gJHRoaXMtPkNyZWF0ZUxpbmsoDQogICAgICAgICRpZCwgJ2FkbWluX2VkaXRpdGVtJywgJHJldHVybmlkLCAkYWRtaW50aGVtZS0+RGlzcGxheUltYWdlKA0KICAgICAgICAnaWNvbnMvc3lzdGVtL2VkaXQuZ2lmJywgJHRoaXMtPk1vZExhbmcoJ2VkaXQnKSwgJycsICcnLCAnc3lzdGVtaWNvbicNCiAgICAgICksICRsaW5rcGFyYW1zDQogICAgICApOw0KICAgICAgJG9iai0+dGl0bGUgICAgPSAkdGhpcy0+Q3JlYXRlTGluaygkaWQsICdhZG1pbl9lZGl0aXRlbScsICRyZXR1cm5pZCwgJG9iai0+dGl0bGUsICRsaW5rcGFyYW1zKTsNCiAgICAgIA0KICAgICAgJGxpbmtwYXJhbXNbJ21vZGUnXSA9ICdjb3B5JzsNCiAgICAgIA0KICAgICAgLy8gY29weQ0KICAgICAgJG9iai0+Y29weWxpbmsgPSAkdGhpcy0+Q3JlYXRlTGluaygNCiAgICAgICAgJGlkLCAnYWRtaW5fZWRpdGl0ZW0nLCAkcmV0dXJuaWQsICRhZG1pbnRoZW1lLT5EaXNwbGF5SW1hZ2UoDQogICAgICAgICdpY29ucy9zeXN0ZW0vY29weS5naWYnLCAkdGhpcy0+TW9kTGFuZygnY29weScpLCAnJywgJycsICdzeXN0ZW1pY29uJw0KICAgICAgKSwgJGxpbmtwYXJhbXMNCiAgICAgICk7DQogICAgICANCiAgICAgIC8vIGRlbGV0ZQ0KICAgICAgaWYoJHRoaXMtPkNoZWNrUGVybWlzc2lvbigkdGhpcy0+X0dldE1vZHVsZUFsaWFzKCkgLiAnX3JlbW92ZV9pdGVtJykpDQogICAgICB7DQogICAgICAgICRvYmotPmRlbGV0ZSA9ICR0aGlzLT5DcmVhdGVMaW5rKA0KICAgICAgICAgICRpZCwgJ2FkbWluX2RlbGV0ZWl0ZW0nLCAkcmV0dXJuaWQsDQogICAgICAgICAgJGFkbWludGhlbWUtPkRpc3BsYXlJbWFnZSgnaWNvbnMvc3lzdGVtL2RlbGV0ZS5naWYnLCAkdGhpcy0+TW9kTGFuZygnZGVsZXRlJyksICcnLCAnJywgJ3N5c3RlbWljb24nKSwgYXJyYXkoDQogICAgICAgICAgICAnaXRlbV9pZCcgPT4gJHJvd1snaXRlbV9pZCddDQogICAgICAgICAgKQ0KICAgICAgICApOw0KICAgICAgfQ0KICAgICAgDQogICAgICAvLyBzZWxlY3QgYm94DQogICAgICAkb2JqLT5zZWxlY3QgPSAkdGhpcy0+Q3JlYXRlSW5wdXRDaGVja2JveCgkaWQsICdpdGVtc1tdJywgJHJvd1snaXRlbV9pZCddKTsNCiAgICAgIA0KICAgICAgJGl0ZW1zW10gPSAkb2JqOw0KICAgIH0NCiAgICANCiAgICAjLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQogICAgIyBTbWFydHkgcHJvY2Vzc2luZw0KICAgICMtLS0tLS0tLS0tLS0tLS0tLS0tLS0NCiAgICANCiAgICAkcGFnZW51bWJlciA9ICRpdGVtX3F1ZXJ5LT5HZXRQYWdlTnVtYmVyKCk7DQogICAgJHBhZ2Vjb3VudCAgPSAkaXRlbV9xdWVyeS0+R2V0UGFnZUNvdW50KCk7DQogICAgJHNtYXJ0eS0+YXNzaWduKCd0b3RhbGNvdW50JywgJHRvdGFsY291bnQpOw0KICAgIA0KICAgICMjIG5ldyBmb3IgcXVpY2sgc2VhcmNoIGZvcm0NCiAgICAkc21hcnR5LT5hc3NpZ24oJ3ByZXZpb3VzX3BhZ2VfbnVtYmVyJywgJHBhZ2VudW1iZXIgLSAxKTsNCiAgICAkc21hcnR5LT5hc3NpZ24oJ25leHRfcGFnZV9udW1iZXInLCAkcGFnZW51bWJlciArIDEpOw0KICAgICRzbWFydHktPmFzc2lnbignZmlyc3RfcGFnZV9udW1iZXInLCAxKTsNCiAgICAkc21hcnR5LT5hc3NpZ24oJ2xhc3RfcGFnZV9udW1iZXInLCAkcGFnZWNvdW50KTsNCiAgICANCiAgICAvLyBzb21lIHBhZ2luYXRpb24gdmFyaWFibGVzIHRvIHNtYXJ0eS4NCiAgICBpZigkcGFnZW51bWJlciA9PSAxKQ0KICAgIHsNCiAgICAgICRzbWFydHktPmFzc2lnbigncHJldnBhZ2UnLCAnPCcpOw0KICAgICAgJHNtYXJ0eS0+YXNzaWduKCdmaXJzdHBhZ2UnLCAnPDwnKTsNCiAgICB9DQogICAgZWxzZQ0KICAgIHsNCiAgICAgICRzbWFydHktPmFzc2lnbigNCiAgICAgICAgJ3ByZXZwYWdlJywNCiAgICAgICAgJHRoaXMtPkNyZWF0ZUxpbmsoDQogICAgICAgICAgJGlkLCAnZGVmYXVsdGFkbWluJywNCiAgICAgICAgICAkcmV0dXJuaWQsICc8JywNCiAgICAgICAgICBhcnJheSgNCiAgICAgICAgICAgICdwYWdlbnVtYmVyJyA9PiAkcGFnZW51bWJlciAtIDEsDQogICAgICAgICAgICAnYWN0aXZlX3RhYicgPT4gJ2l0ZW10YWInDQogICAgICAgICAgKQ0KICAgICAgICApDQogICAgICApOw0KICAgICAgJHNtYXJ0eS0+YXNzaWduKA0KICAgICAgICAnZmlyc3RwYWdlJywNCiAgICAgICAgJHRoaXMtPkNyZWF0ZUxpbmsoDQogICAgICAgICAgJGlkLCAnZGVmYXVsdGFkbWluJywNCiAgICAgICAgICAkcmV0dXJuaWQsICc8PCcsDQogICAgICAgICAgYXJyYXkoDQogICAgICAgICAgICAncGFnZW51bWJlcicgPT4gMSwNCiAgICAgICAgICAgICdhY3RpdmVfdGFiJyA9PiAnaXRlbXRhYicNCiAgICAgICAgICApDQogICAgICAgICkNCiAgICAgICk7DQogICAgfQ0KICAgIGlmKCRwYWdlbnVtYmVyID49ICRwYWdlY291bnQpDQogICAgew0KICAgICAgJHNtYXJ0eS0+YXNzaWduKCduZXh0cGFnZScsICc+Jyk7DQogICAgICAkc21hcnR5LT5hc3NpZ24oJ2xhc3RwYWdlJywgJz4+Jyk7DQogICAgfQ0KICAgIGVsc2UNCiAgICB7DQogICAgICAkc21hcnR5LT5hc3NpZ24oDQogICAgICAgICduZXh0cGFnZScsDQogICAgICAgICR0aGlzLT5DcmVhdGVMaW5rKA0KICAgICAgICAgICRpZCwgJ2RlZmF1bHRhZG1pbicsDQogICAgICAgICAgJHJldHVybmlkLCAnPicsDQogICAgICAgICAgYXJyYXkoDQogICAgICAgICAgICAncGFnZW51bWJlcicgPT4gJHBhZ2VudW1iZXIgKyAxLA0KICAgICAgICAgICAgJ2FjdGl2ZV90YWInID0+ICdpdGVtdGFiJw0KICAgICAgICAgICkNCiAgICAgICAgKQ0KICAgICAgKTsNCiAgICAgICRzbWFydHktPmFzc2lnbigNCiAgICAgICAgJ2xhc3RwYWdlJywNCiAgICAgICAgJHRoaXMtPkNyZWF0ZUxpbmsoDQogICAgICAgICAgJGlkLCAnZGVmYXVsdGFkbWluJywNCiAgICAgICAgICAkcmV0dXJuaWQsICc+PicsDQogICAgICAgICAgYXJyYXkoDQogICAgICAgICAgICAncGFnZW51bWJlcicgPT4gJHBhZ2Vjb3VudCwNCiAgICAgICAgICAgICdhY3RpdmVfdGFiJyA9PiAnaXRlbXRhYicNCiAgICAgICAgICApDQogICAgICAgICkNCiAgICAgICk7DQogICAgfQ0KICAgIA0KICAgICRhamF4X3VybCA9ICR0aGlzLT5jcmVhdGVfdXJsKCRpZCwgJ2FqYXgnLCAkcmV0dXJuaWQpOw0KICAgICRzbWFydHktPmFzc2lnbignYWpheF91cmwnLCAkYWpheF91cmwpOw0KICAgIA0KICAgICRzbWFydHktPmFzc2lnbigncGFnZW51bWJlcicsICRwYWdlbnVtYmVyKTsNCiAgICAkc21hcnR5LT5hc3NpZ24oJ3BhZ2Vjb3VudCcsICRwYWdlY291bnQpOw0KICAgICRzbWFydHktPmFzc2lnbignb2Z0ZXh0JywgJHRoaXMtPk1vZExhbmcoJ3Byb21wdF9vZicpKTsNCiAgICANCiAgICAkc21hcnR5LT5hc3NpZ24oJ2l0ZW1zJywgJGl0ZW1zKTsNCiAgICAkc21hcnR5LT5hc3NpZ24oJ3RpdGxlJywgJHRoaXMtPkdldFByZWZlcmVuY2UoJ2l0ZW1fc2luZ3VsYXInLCAnJykpOw0KICAgICRzbWFydHktPmFzc2lnbigndGl0bGVfcGx1cmFsJywgJHRoaXMtPkdldFByZWZlcmVuY2UoJ2l0ZW1fcGx1cmFsJywgJycpKTsNCiAgICANCiAgICAkc21hcnR5LT5hc3NpZ24oJ3N1Ym1pdG9yZGVyJywgJHRoaXMtPkNyZWF0ZUlucHV0U3VibWl0KCRpZCwgJ3N1Ym1pdF9pdGVtb3JkZXInLCAkdGhpcy0+TW9kTGFuZygnc3VibWl0X29yZGVyJykpKTsNCiAgICAkc21hcnR5LT5hc3NpZ24oDQogICAgICAnYWRkbGluaycsICR0aGlzLT5DcmVhdGVMaW5rKA0KICAgICAgJGlkLCAnYWRtaW5fZWRpdGl0ZW0nLCAkcmV0dXJuaWQsDQogICAgICAkYWRtaW50aGVtZS0+RGlzcGxheUltYWdlKCdpY29ucy9zeXN0ZW0vbmV3b2JqZWN0LmdpZicsICR0aGlzLT5Nb2RMYW5nKCdhZGQnLCAkc2luZ3VsYXIpLCAnJywgJycsICdzeXN0ZW1pY29uJykgLg0KICAgICAgJHRoaXMtPk1vZExhbmcoJ2FkZCcsICRzaW5ndWxhcikNCiAgICApDQogICAgKTsNCiAgICANCiAgICBpZigkdGhpcy0+Q2hlY2tQZXJtaXNzaW9uKCR0aGlzLT5fR2V0TW9kdWxlQWxpYXMoKSAuICdfbW9kaWZ5X2FsbF9pdGVtJykpDQogICAgew0KICAgICAgJHNtYXJ0eS0+YXNzaWduKA0KICAgICAgICAnZXhwb3J0bGluaycsICR0aGlzLT5DcmVhdGVMaW5rKA0KICAgICAgICAkaWQsICdhZG1pbl9leHBvcnRpdGVtcycsICRyZXR1cm5pZCwgJGFkbWludGhlbWUtPkRpc3BsYXlJbWFnZSgNCiAgICAgICAgICAgICAnaWNvbnMvc3lzdGVtL2V4cG9ydC5naWYnLCAkdGhpcy0+TW9kTGFuZygnZXhwb3J0JywgJHNpbmd1bGFyKSwgJycsICcnLCAnc3lzdGVtaWNvbicNCiAgICAgICAgICAgKSAuDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkdGhpcy0+TW9kTGFuZygnZXhwb3J0JywgJHBsdXJhbCkNCiAgICAgICkNCiAgICAgICk7DQogICAgICAkc21hcnR5LT5hc3NpZ24oDQogICAgICAgICdpbXBvcnRsaW5rJywgJHRoaXMtPkNyZWF0ZUxpbmsoDQogICAgICAgICRpZCwgJ2FkbWluX2ltcG9ydGl0ZW1zJywgJHJldHVybmlkLCAkYWRtaW50aGVtZS0+RGlzcGxheUltYWdlKA0KICAgICAgICAgICAgICdpY29ucy9zeXN0ZW0vaW1wb3J0LmdpZicsICR0aGlzLT5Nb2RMYW5nKCdpbXBvcnQnLCAkc2luZ3VsYXIpLCAnJywgJycsICdzeXN0ZW1pY29uJw0KICAgICAgICAgICApIC4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICR0aGlzLT5Nb2RMYW5nKCdpbXBvcnQnLCAkcGx1cmFsKQ0KICAgICAgKQ0KICAgICAgKTsNCiAgICB9DQogICAgDQogICAgcmV0dXJuICR0aGlzLT5Nb2RQcm9jZXNzVGVtcGxhdGUoJ2FqYXhfcXVpY2tfc2VhcmNoLnRwbCcpOw0KICB9DQogIA0KICBmdW5jdGlvbiB0ZXN0KCkNCiAgew0KICAgIGV4aXQ7DQogICAgcmV0dXJuICdoZXJlISc7DQogIH0NCiAgDQp9IC8vIGVuZCBvZiBjbGFzcw0KDQo/Pg0K]]></data>
	</file>
	<file>
	  <filename>/lib/class.LISEInstanceExporter.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBMSVNFIC0gTGlzdCBJdCBTcGVjaWFsIEVkaXRpb24KIyBWZXJzaW9uIDEuMgojIEEgZm9yayBvZiBMaXN0STIKIyBtYWludGFpbmVkIGJ5IEZlcm5hbmRvIE1vcmdhZG8gQUtBIEpvIE1vcmcKIyBzaW5jZSAyMDE1CiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBPcmlnaW5hbCBBdXRob3I6IEJlbiBNYWxlbiwgPGJlbkBjb25jZXB0ZmFjdG9yeS5jb20uYXU+CiMgQ28tTWFpbnRhaW5lcjogU2ltb24gUmFkZm9yZCwgPHNpbW9uQGNvbmNlcHRmYWN0b3J5LmNvbS5hdT4KIyBXZWI6IHd3dy5jb25jZXB0ZmFjdG9yeS5jb20uYXUKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojCiMgTWFpbnRhaW5lciBzaW5jZSAyMDExIHVwIHRvIDIwMTQ6IEpvbmF0aGFuIFNjaG1pZCwgPGhpQGpvbmF0aGFuc2NobWlkLmRlPgojIFdlYjogd3d3LmpvbmF0aGFuc2NobWlkLmRlCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIwojIFNvbWUgd2Fja29zIHN0YXJ0ZWQgZGVzdHJveWluZyBzdHVmZiBzaW5jZSAyMDEyIGFuZCBzdG9wcGVkIGF0IDIwMTQ6CiMKIyBUYXBpbyBMw7Z5dHR5LCA8dGFwc2FAb3JhbmdlLW1lZGlhLmZpPgojIFdlYjogd3d3Lm9yYW5nZS1tZWRpYS5maQojCiMgR29yYW4gSWxpYywgPHVuaXF1M2VAZ21haWwuY29tPgojIFdlYjogd3d3LmljaC1tYWNoLWRhcy5hdAojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBMSVNFIGlzIGEgQ01TIE1hZGUgU2ltcGxlIG1vZHVsZSB0aGF0IGVuYWJsZXMgdGhlIHdlYiBkZXZlbG9wZXIgdG8gY3JlYXRlCiMgbXVsdGlwbGUgbGlzdHMgdGhyb3VnaG91dCBhIHNpdGUuIEl0IGNhbiBiZSBkdXBsaWNhdGVkIGFuZCBnaXZlbiBmcmllbmRseQojIG5hbWVzIGZvciBlYXNpZXIgY2xpZW50IG1haW50ZW5hbmNlLgojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgQkVHSU5fTElDRU5TRQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIExJU0UKIyBMSVNFIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgTElTRSBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBFTkRfTElDRU5TRQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpjbGFzcyBMSVNFSW5zdGFuY2VFeHBvcnRlciAKewogICMtLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAjIENvbnN0YW50cwogICMtLS0tLS0tLS0tLS0tLS0tLS0tLS0KCiAgY29uc3QgTU9EX1BSRUZJWCA9ICdMSVNFJzsKICAjaW50ZXJuYWwgdmVyc2lvbgogIGNvbnN0IFhNTF9WRVJTSU9OID0gJzEuMCc7CgogICMtLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAjIEF0dHJpYnV0ZXMKICAjLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgogIHByaXZhdGUgJG1vZG5hbWU7CiAgcHJpdmF0ZSAkX2RhdGE7CiAgcHJpdmF0ZSAkX3ByZWZzOwogIHByaXZhdGUgJF90ZW1wbGF0ZV9wcmVmczsKICBwcml2YXRlICRfeG1sOwogIAoJcHJpdmF0ZSBzdGF0aWMgJF9pbnZhbGlkID0gYXJyYXkoJy4nLCAnLi4nKTsKCgkjLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgkjIE1hZ2ljIG1ldGhvZHMKCSMtLS0tLS0tLS0tLS0tLS0tLS0tLS0JCQoJCQoJcHVibGljIGZ1bmN0aW9uIF9fY29uc3RydWN0KCRtb2RuYW1lID0gTlVMTCkgCgl7CiAgICBpZiggZW1wdHkoJG1vZG5hbWUpICkgdGhyb3cgbmV3IFxMSVNFXEV4Y2VwdGlvbignRXJyb3IgaW4gJyAuIF9fQ0xBU1NfXyAuICcgY29uc3RydWN0b3I6IGludmFsaWQgcGFyYW1ldGVyIScpOwogICAgCiAgICBpZiggIXN0YXJ0c3dpdGgoJG1vZG5hbWUsIHNlbGY6Ok1PRF9QUkVGSVgpICkKICAgIHsKICAgICAgJG1vZG5hbWUgPSBzZWxmOjpNT0RfUFJFRklYIC4gJG1vZG5hbWU7CiAgICB9CiAgICAKICAgICR0aGlzLT5tb2RuYW1lID0gJG1vZG5hbWU7Cgl9CgogICMtLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAjIFJ1bm5lcgogICMtLS0tLS0tLS0tLS0tLS0tLS0tLS0KCQoJcHVibGljIGZ1bmN0aW9uIFJ1bigpCgl7CiAgICAkdGhpcy0+Q29weUZyb21EYXRhQmFzZSgpOwogICAgJHRoaXMtPkNvcHlGcm9tUHJlZmVyZW5jZXMoKTsKICAgICR0aGlzLT5Db3B5RnJvbVRlbXBsYXRlcygpOwogICAgJHRoaXMtPl9idWlsZF94bWwoKTsKICAgIAogICAgLy8gYW5kIHNlbmQgdGhlIGZpbGUKICAgIG9iX2VuZF9jbGVhbigpOwogICAgaGVhZGVyKCdDb250ZW50LURlc2NyaXB0aW9uOiBGaWxlIFRyYW5zZmVyJyk7CiAgICBoZWFkZXIoJ0NvbnRlbnQtVHlwZTogYXBwbGljYXRpb24vZm9yY2UtZG93bmxvYWQnKTsKICAgIGhlYWRlcignQ29udGVudC1EaXNwb3NpdGlvbjogYXR0YWNobWVudDsgZmlsZW5hbWU9JyAuICR0aGlzLT5tb2RuYW1lIC4gJy5MSVNFLnhtbCcpOwogICAgZWNobyAkdGhpcy0+X3htbDsKICAgIGV4aXQoKTsKCX0KCQkKCiAgLyoqCiAgKiBUT0RPOiBlcnJvciBjaGVja3MKICAqLwogIHByaXZhdGUgZnVuY3Rpb24gQ29weUZyb21EYXRhQmFzZSgpCiAgewogICAgICRtb2RfcHJlZml4ID0gY21zX2RiX3ByZWZpeCgpIC4gJ21vZHVsZV8nIC4gc3RydG9sb3dlcigkdGhpcy0+bW9kbmFtZSkgLiAnXyc7CgogICAgICR0YWJsZV9saXN0ID0gYXJyYXkoCiAgICAgICAgICAgICAgICAgICAgICAgICAgJ2l0ZW0nLAogICAgICAgICAgICAgICAgICAgICAgICAgICdjYXRlZ29yeScsCiAgICAgICAgICAgICAgICAgICAgICAgICAgJ2l0ZW1fY2F0ZWdvcmllcycsCiAgICAgICAgICAgICAgICAgICAgICAgICAgJ2ZpZWxkZGVmJywKICAgICAgICAgICAgICAgICAgICAgICAgICAnZmllbGRkZWZfb3B0cycsCiAgICAgICAgICAgICAgICAgICAgICAgICAgJ2ZpZWxkdmFsJyAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICk7CiAgICAgJGRiID0gY21zbXMoKS0+R2V0RGIoKTsKICAgICAKICAgICAkZGF0YSA9IGFycmF5KCk7CiAgICAgZm9yZWFjaCgkdGFibGVfbGlzdCBhcyAkb25lKQogICAgIHsKICAgICAgICRudCA9ICRtb2RfcHJlZml4IC4gJG9uZTsKICAgICAgICRxID0gJ1NFTEVDVCAqIEZST00gJyAuICRudDsKICAgICAgICRkYXRhWyRvbmVdID0gJGRiLT5HZXRBcnJheSgkcSk7CiAgICAgfQogICAgIAogICAgICR0aGlzLT5fZGF0YVsnZGInXSA9ICRkYXRhOwogIH0KICAKICBwcml2YXRlIGZ1bmN0aW9uIENvcHlGcm9tUHJlZmVyZW5jZXMoKQogIHsKICAgIAogICAgJHByZWZzID0gYXJyYXkoCiAgICAgICAgICAgICAgICAgICAgJ2ZyaWVuZGx5bmFtZScsCiAgICAgICAgICAgICAgICAgICAgJ2FkbWluc2VjdGlvbicsCiAgICAgICAgICAgICAgICAgICAgJ21vZGRlc2NyaXB0aW9uJywKICAgICAgICAgICAgICAgICAgICAnaXRlbV90aXRsZScsCiAgICAgICAgICAgICAgICAgICAgJ3NvcnRvcmRlcicsCiAgICAgICAgICAgICAgICAgICAgJ2l0ZW1fc2luZ3VsYXInLAogICAgICAgICAgICAgICAgICAgICdpdGVtX3BsdXJhbCcsCiAgICAgICAgICAgICAgICAgICAgJ2Rpc3BsYXlfY3JlYXRlX2RhdGUnLAogICAgICAgICAgICAgICAgICAgICdpdGVtX2NvbHMnLAogICAgICAgICAgICAgICAgICAgICdpdGVtc19wZXJfcGFnZScsCiAgICAgICAgICAgICAgICAgICAgJ3VybF9wcmVmaXgnLAogICAgICAgICAgICAgICAgICAgICdkaXNwbGF5X2lubGluZScsCiAgICAgICAgICAgICAgICAgICAgJ3N1YmNhdGVnb3J5JywKICAgICAgICAgICAgICAgICAgICAndXJsdGVtcGxhdGUnLAogICAgICAgICAgICAgICAgICAgICdkZXRhaWxwYWdlJywKICAgICAgICAgICAgICAgICAgICAnc3VtbWFyeXBhZ2UnLAogICAgICAgICAgICAgICAgICAgICdyZWluZGV4X3NlYXJjaCcsCiAgICAgICAgICAgICAgICAgICAgJ3N1bW1hcnlfdGVtcGxhdGUnLAogICAgICAgICAgICAgICAgICAgICdkZXRhaWxfdGVtcGxhdGUnLAogICAgICAgICAgICAgICAgICAgICdzZWFyY2hfdGVtcGxhdGUnLAogICAgICAgICAgICAgICAgICAgICdjYXRlZ29yeV90ZW1wbGF0ZScsCiAgICAgICAgICAgICAgICAgICAgJ2FyY2hpdmVfdGVtcGxhdGUnLAogICAgICAgICAgICAgICAgICAgICdkaXNwbGF5X2lubGluZScsCiAgICAgICAgICAgICAgICAgICAgJ2Rpc3BsYXlfY3JlYXRlX2RhdGUnLAogICAgICAgICAgICAgICAgICAgICdyZWluZGV4X3NlYXJjaCcsCiAgICAgICAgICAgICAgICAgICAgJ2F1dG9fdXBncmFkZScsCiAgICAgICAgICAgICAgICAgICAgJ2hpZGVfYWxpYXMnLAogICAgICAgICAgICAgICAgICAgICdoaWRlX3NsdWcnLAogICAgICAgICAgICAgICAgICAgICdoaWRlX3RpbWVfY29udHJvbCcsCiAgICAgICAgICAgICAgICAgICAgJ3NlcGFyYXRlX3NldHRpbmdzJwogICAgICAgICAgICAgICAgICApOwogICAgCiAgICAkbW9kID0gTW9kdWxlT3BlcmF0aW9uczo6Z2V0X2luc3RhbmNlKCktPmdldF9tb2R1bGVfaW5zdGFuY2UoJHRoaXMtPm1vZG5hbWUsIE5VTEwsIFRSVUUpOwogICAgCiAgICBmb3JlYWNoKCRwcmVmcyBhcyAkcHJlZikKICAgIHsKICAgICAgJHRoaXMtPl9kYXRhWydwcmVmcyddWyRwcmVmXSA9ICRtb2QtPkdldFByZWZlcmVuY2UoJHByZWYsICcnKTsKICAgIH0KCiAgfQogIAogIHByaXZhdGUgZnVuY3Rpb24gQ29weUZyb21UZW1wbGF0ZXMoKQogIHsKICAgICRtb2QgPSBNb2R1bGVPcGVyYXRpb25zOjpnZXRfaW5zdGFuY2UoKS0+Z2V0X21vZHVsZV9pbnN0YW5jZSgkdGhpcy0+bW9kbmFtZSwgTlVMTCwgVFJVRSk7CgogICAgJHRlbXBsYXRlcyA9ICRtb2QtPkxpc3RUZW1wbGF0ZXMoKTsKICAgIAogICAgZm9yZWFjaCgkdGVtcGxhdGVzIGFzICRvbmUpCiAgICB7CiAgICAgICR0aGlzLT5fZGF0YVsndGVtcGxhdGVzJ11bJG9uZV0gPSAkbW9kLT5HZXRUZW1wbGF0ZSgkb25lKTsgCiAgICB9CiAgICAgCiAgfQogIAogIC8qKgogICogcHJldHR5IHNpbXBsZSB4bWwgYnVpbGRlciwgYnV0IHByb25lIHRvIGVycm9ycyAoSSB0aGluaykKICAqIFdpbGwgYmUgd29ya2VkIG9uIGRlcGVuZGluZyBvbiB1c2FiaWxpdHkuLi4KICAqLwogIHByaXZhdGUgZnVuY3Rpb24gX2J1aWxkX3htbCgpCiAgewogICAgJG1vZCA9IE1vZHVsZU9wZXJhdGlvbnM6OmdldF9pbnN0YW5jZSgpLT5nZXRfbW9kdWxlX2luc3RhbmNlKCR0aGlzLT5tb2RuYW1lLCBOVUxMLCBUUlVFKTsKICAgIAogICAgJHRoaXMtPl94bWwgID0gJzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04Ij8+JyAuICJcbiI7CiAgICAkdGhpcy0+X3htbCAuPSAnPExJU0VJbnN0YW5jZU1vZHVsZT4nIC4gIlxuIjsKICAgICR0aGlzLT5feG1sIC49ICcgPFhNTFZFUlNJT04+JyAuIHNlbGY6OlhNTF9WRVJTSU9OIC4gJzwvWE1MVkVSU0lPTj4nIC4gIlxuIjsKICAgICR0aGlzLT5feG1sIC49ICcgPE1vZHVsZU5hbWU+JyAuICR0aGlzLT5tb2RuYW1lIC4gJzwvTW9kdWxlTmFtZT4nIC4gIlxuIjsKICAgICR0aGlzLT5feG1sIC49ICcgPFZlcnNpb24+JyAuICRtb2QtPkdldFZlcnNpb24oKSAuICc8L1ZlcnNpb24+JyAuICJcbiI7CiAgICAkdGhpcy0+X3htbCAuPSAnIDxNb2R1bGVGcmllbmRseU5hbWU+PCFbQ0RBVEFbJyAuICRtb2QtPkdldEZyaWVuZGx5TmFtZSgpIC4gJ11dPjwvTW9kdWxlRnJpZW5kbHlOYW1lPicgLiAiXG4iOwogICAgJHRoaXMtPl94bWwgLj0gJyA8RGF0YT4nIC4gYmFzZTY0X2VuY29kZShzZXJpYWxpemUoJHRoaXMtPl9kYXRhKSkgLiAnPC9EYXRhPicgLiAiXG4iOwogICAgJHRoaXMtPl94bWwgLj0gJzwvTElTRUluc3RhbmNlTW9kdWxlPicgLiAiXG4iOwogIH0KCQp9IC8vIGVuZCBvZiBjbGFzcw==]]></data>
	</file>
	<file>
	  <filename>/lib/class.LISEInstanceImporter.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBMSVNFIC0gTGlzdCBJdCBTcGVjaWFsIEVkaXRpb24KIyBWZXJzaW9uIDEuMgojIEEgZm9yayBvZiBMaXN0STIKIyBtYWludGFpbmVkIGJ5IEZlcm5hbmRvIE1vcmdhZG8gQUtBIEpvIE1vcmcKIyBzaW5jZSAyMDE1CiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBPcmlnaW5hbCBBdXRob3I6IEJlbiBNYWxlbiwgPGJlbkBjb25jZXB0ZmFjdG9yeS5jb20uYXU+CiMgQ28tTWFpbnRhaW5lcjogU2ltb24gUmFkZm9yZCwgPHNpbW9uQGNvbmNlcHRmYWN0b3J5LmNvbS5hdT4KIyBXZWI6IHd3dy5jb25jZXB0ZmFjdG9yeS5jb20uYXUKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojCiMgTWFpbnRhaW5lciBzaW5jZSAyMDExIHVwIHRvIDIwMTQ6IEpvbmF0aGFuIFNjaG1pZCwgPGhpQGpvbmF0aGFuc2NobWlkLmRlPgojIFdlYjogd3d3LmpvbmF0aGFuc2NobWlkLmRlCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIwojIFNvbWUgd2Fja29zIHN0YXJ0ZWQgZGVzdHJveWluZyBzdHVmZiBzaW5jZSAyMDEyIGFuZCBzdG9wcGVkIGF0IDIwMTQ6CiMKIyBUYXBpbyBMw7Z5dHR5LCA8dGFwc2FAb3JhbmdlLW1lZGlhLmZpPgojIFdlYjogd3d3Lm9yYW5nZS1tZWRpYS5maQojCiMgR29yYW4gSWxpYywgPHVuaXF1M2VAZ21haWwuY29tPgojIFdlYjogd3d3LmljaC1tYWNoLWRhcy5hdAojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBMSVNFIGlzIGEgQ01TIE1hZGUgU2ltcGxlIG1vZHVsZSB0aGF0IGVuYWJsZXMgdGhlIHdlYiBkZXZlbG9wZXIgdG8gY3JlYXRlCiMgbXVsdGlwbGUgbGlzdHMgdGhyb3VnaG91dCBhIHNpdGUuIEl0IGNhbiBiZSBkdXBsaWNhdGVkIGFuZCBnaXZlbiBmcmllbmRseQojIG5hbWVzIGZvciBlYXNpZXIgY2xpZW50IG1haW50ZW5hbmNlLgojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgQkVHSU5fTElDRU5TRQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIExJU0UKIyBMSVNFIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgTElTRSBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBFTkRfTElDRU5TRQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpjbGFzcyBMSVNFSW5zdGFuY2VJbXBvcnRlciAKewogICMtLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAjIENvbnN0YW50cwogICMtLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAKICBjb25zdCBNT0RfUFJFRklYICAgICAgICAgID0gJ0xJU0UnOwogIGNvbnN0IFBMQUNFSE9MREVSICAgICAgICAgPSAnUExBQ0VfSE9MREVSX19fJzsKICBjb25zdCBWRVJTSU9OX1BMQUNFSE9MREVSID0gJ1ZFUlNJT05fX18nOwoKICAjLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgIyBBdHRyaWJ1dGVzCiAgIy0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKICBwcml2YXRlICRzcmM7CiAgcHJpdmF0ZSAkZHN0OwogIHByaXZhdGUgJG1vZG5hbWU7CiAgcHJpdmF0ZSAkZnJpZW5kbHluYW1lOwogIHByaXZhdGUgJF9kYXRhOwogIHByaXZhdGUgJF94bWw7CiAgCglwcml2YXRlIHN0YXRpYyAkX2ludmFsaWQgPSBhcnJheSgnLicsICcuLicpOwoKCSMtLS0tLS0tLS0tLS0tLS0tLS0tLS0KCSMgTWFnaWMgbWV0aG9kcwoJIy0tLS0tLS0tLS0tLS0tLS0tLS0tLQkJCgkJCglwdWJsaWMgZnVuY3Rpb24gX19jb25zdHJ1Y3QoJHhtbCA9ICcnLCAkZmlsZW5hbWUgPSBOVUxMKQoJewogICAgaWYoIGVtcHR5KCR4bWwpICkgdGhyb3cgbmV3IFxMSVNFXEV4Y2VwdGlvbignRXJyb3IgaW4gJyAuIF9fQ0xBU1NfXyAuICcgY29uc3RydWN0b3I6IGludmFsaWQgcGFyYW1ldGVyIScpOwogICAgJHRoaXMtPl94bWwgPSAkeG1sOwogICAgJHRoaXMtPl9leHBhbmRfeG1sKCk7CiAgICAKICAgIGlmKCAhZW1wdHkoJGZpbGVuYW1lKSApICR0aGlzLT5tb2RuYW1lID0gJGZpbGVuYW1lOwogICAgCiAgICAkdGhpcy0+c3JjID0gZGlybmFtZSggZGlybmFtZShfX0ZJTEVfXykgKSAuIERJUkVDVE9SWV9TRVBBUkFUT1IgLiAnZHVwbGljYXRlJzsKICAgICR0aGlzLT5kc3QgPSBkaXJuYW1lKCBkaXJuYW1lKCBkaXJuYW1lKF9fRklMRV9fKSApICkgLiBESVJFQ1RPUllfU0VQQVJBVE9SIC4gJHRoaXMtPm1vZG5hbWU7Cgl9CgogICMtLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAjIFJ1bm5lcgogICMtLS0tLS0tLS0tLS0tLS0tLS0tLS0KCXB1YmxpYyBmdW5jdGlvbiBSdW4oKQoJewogICAgIyAxc3QgY29weSB0aGUgb3JpZ2luYWwKICAgICR0aGlzLT5Db3B5UmVjdXJzaXZlKCR0aGlzLT5zcmMsICR0aGlzLT5kc3QpOwoJCSR0aGlzLT5SZW5hbWUoKTsKICAgICR0aGlzLT5GaXhNb2R1bGVmaWxlKCk7CiAgICAKICAgICMgZmxhZyBtb2R1bGUgbW9kZQogICAgJF9TRVNTSU9OWydfaW5zdGFsbF9tb2R1bGVfbW9kZV8nXSA9IChpbnQpJHRoaXMtPl9kYXRhWydkYiddWyR0aGlzLT5tb2RuYW1lXVsnbW9kdWxlX21vZGUnXTsKICAgICRfU0VTU0lPTlsnX2luc3RhbGxfbW9kdWxlX25hbWUnXSA9ICR0aGlzLT5tb2RuYW1lOwogICAgCiAgICAjIG5vdyB3ZSBpbnN0YWxsIG5ldwogICAgJG1vZG9wcyA9IGNtc21zKCktPkdldE1vZHVsZU9wZXJhdGlvbnMoKTsKICAgICRtb2RvcHMtPkluc3RhbGxNb2R1bGUoJHRoaXMtPm1vZG5hbWUpOwogICAgCiAgICAjIGV4cGFuZCB0aGUgcmVzdCBvZiB0aGUgZGF0YQoJCSR0aGlzLT5Db3B5RGF0YUJhc2UoKTsKICAgICR0aGlzLT5Db3B5VGVtcGxhdGVzKCk7CiAgICAkdGhpcy0+Q29weVByZWZlcmVuY2VzKCk7CiAgICAKICAgICMgbm93IHdlIGhhdmUgYSBuZXcgTElTRSBNb2R1bGUKCQlyZXR1cm4gJHRoaXMtPm1vZG5hbWU7Cgl9CgkJCgkjLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgkjIEZpbGUgaGFuZGxpbmcgbWV0aG9kcwoJIy0tLS0tLS0tLS0tLS0tLS0tLS0tLQkJCgoJcHJpdmF0ZSBmdW5jdGlvbiBDb3B5UmVjdXJzaXZlKCRzcmMsICRkc3QpCgl7CiAgICAkZGlyID0gb3BlbmRpcigkc3JjKTsKICAgIGlmKCEkZGlyKSB0aHJvdyBuZXcgXExJU0VcRXhjZXB0aW9uKCdFcnJvcjogJyAuIF9fQ0xBU1NfXyAuICcgLSAnIC4gX19NRVRIT0RfXyAuICcgLT4gZmFpbGVkIHRvIG9wZW4gZGlyZWN0b3J5OiAnIC4gJHNyYywgXExJU0VcRXJyb3I6Ok9QRU5fRElSX0VSUk9SICk7CiAgICAKCQlpZiggIUBta2RpcigkZHN0KSApIHRocm93IG5ldyBcTElTRVxFeGNlcHRpb24oJ0Vycm9yOiAnIC4gX19DTEFTU19fIC4gJyAtICcgLiBfX01FVEhPRF9fIC4gJyAtPiBmYWlsZWQgdG8gY3JlYXRlIGRpcmVjdG9yeTogJyAuICRkc3QsIFxMSVNFXEVycm9yOjpDUkVBVEVfRElSX0VSUk9SICk7CiAgICAKICAgIHRyeQogICAgewogICAgICB3aGlsZSggRkFMU0UgIT09ICggJGZpbGUgPSByZWFkZGlyKCRkaXIpICkgKQogICAgICB7CiAgICAgICAgIyBTa2lwIHN0dWZmIHdlIG5ldmVyIGFsbG93IHRvIGNvcHkKICAgICAgICBpZiAoaW5fYXJyYXkoJGZpbGUsIHNlbGY6OiRfaW52YWxpZCkpIGNvbnRpbnVlOyAKCiAgICAgICAgaWYgKCBpc19kaXIoJHNyYyAuIERJUkVDVE9SWV9TRVBBUkFUT1IgLiAkZmlsZSkgKSAKICAgICAgICB7IAogICAgICAgICAgJHRoaXMtPkNvcHlSZWN1cnNpdmUoJHNyYyAuIERJUkVDVE9SWV9TRVBBUkFUT1IgLiAkZmlsZSwgJGRzdCAuIERJUkVDVE9SWV9TRVBBUkFUT1IgLiAkZmlsZSk7IAogICAgICAgIH0gCiAgICAgICAgZWxzZSAKICAgICAgICB7ICAKICAgICAgICAgIGlmKCAhQGNvcHkoJHNyYyAuIERJUkVDVE9SWV9TRVBBUkFUT1IgLiAkZmlsZSwgJGRzdCAuIERJUkVDVE9SWV9TRVBBUkFUT1IgLiAkZmlsZSkgKQogICAgICAgICAgICB0aHJvdyBuZXcgXExJU0VcRXhjZXB0aW9uKCdFcnJvcjogJyAuIF9fQ0xBU1NfXyAuICcgLSAnIC4gX19NRVRIT0RfXyAuICcgLT4gZmFpbGVkIHRvIGNvcHk6ICcgLiAkc3JjIC4gRElSRUNUT1JZX1NFUEFSQVRPUiAuICRmaWxlIC4gJyB0byAnIC4gJGRzdCAuIERJUkVDVE9SWV9TRVBBUkFUT1IgLiAkZmlsZSwgXExJU0VcRXJyb3I6OkNPUFlfRklMRV9FUlJPUiApOwogICAgICAgIH0gCiAgICAgIH0KICAgIH0KICAgIGNhdGNoKEV4Y2VwdGlvbiAkZSkKICAgIHsKICAgICAgIyBtYWtlIHN1cmUgeW91IGNsb3NlIHRoZSBkaXIgYW5kIHJldGhyb3cgZXhjZXB0aW9uCiAgICAgIGNsb3NlZGlyKCRkaXIpOwogICAgICB0aHJvdyAkZTsKICAgIH0gCgl9CgkKCXByaXZhdGUgZnVuY3Rpb24gUmVuYW1lKCkKCXsKICAgICRvbGQgPSBjbXNfam9pbl9wYXRoKCR0aGlzLT5kc3QsIHNlbGY6OlBMQUNFSE9MREVSIC4gJy5waHAnKTsKICAgICRuZXcgPSBjbXNfam9pbl9wYXRoKCR0aGlzLT5kc3QsICR0aGlzLT5tb2RuYW1lIC4gJy5tb2R1bGUucGhwJykgOwogICAgaWYoICFAcmVuYW1lKCRvbGQsICRuZXcgKSApIHRocm93IG5ldyBcTElTRVxFeGNlcHRpb24oJ0Vycm9yOiAnIC4gX19DTEFTU19fIC4gJyAtICcgLiBfX01FVEhPRF9fIC4gJyAtPiBmYWlsZWQgdG8gcmVuYW1lOiAnIC4gJG5ldywgXExJU0VcRXJyb3I6OkRJU0NSRVRFICk7Cgl9CgkKCXByaXZhdGUgZnVuY3Rpb24gRml4TW9kdWxlZmlsZSgpCgl7CiAgICAkZmlsZW5hbWUgPSAkdGhpcy0+ZHN0IC4gRElSRUNUT1JZX1NFUEFSQVRPUiAuICR0aGlzLT5tb2RuYW1lIC4nLm1vZHVsZS5waHAnOwogICAgJGxpc2VfdmVyc2lvbiA9IFxjbXNfdXRpbHM6OmdldF9tb2R1bGUoJ0xJU0UnKS0+R2V0VmVyc2lvbigpOwogICAgCiAgICAvLyBSZXBsYWNlbWVudHMKICAgICRfY29udGVudHMgPSBmaWxlX2dldF9jb250ZW50cygkZmlsZW5hbWUpOyAvLyA8LSBUaHJvdyBleGNlcHRpb24gb24gZmFpbHVyZT8KICAgICRfY29udGVudHMgPSBzdHJfcmVwbGFjZShzZWxmOjpQTEFDRUhPTERFUiwgJHRoaXMtPm1vZG5hbWUsICRfY29udGVudHMpOwogICAgJF9jb250ZW50cyA9IHN0cl9yZXBsYWNlKHNlbGY6OlZFUlNJT05fUExBQ0VIT0xERVIsICInIiAuICRsaXNlX3ZlcnNpb24gLiAiJyIsICRfY29udGVudHMpOwogICAgCiAgICAvLyBXcml0ZSBmaWxlCiAgICAkZmggPSBAZm9wZW4oJGZpbGVuYW1lLCAndycpOwogICAgaWYoISRmaCkgdGhyb3cgbmV3IFxMSVNFXEV4Y2VwdGlvbignRXJyb3I6ICcgLiBfX0NMQVNTX18gLiAnIC0gJyAuIF9fTUVUSE9EX18gLiAnIC0+IGZhaWxlZCB0byBvcGVuICcgLiAkZmlsZW5hbWUsIFxMSVNFXEVycm9yOjpESVNDUkVURSApOwogICAgCiAgICB0cnkKICAgIHsKICAgICAgaWYoICFmd3JpdGUoJGZoLCAkX2NvbnRlbnRzKSApIHRocm93IG5ldyBcTElTRVxFeGNlcHRpb24oJ0Vycm9yOiAnIC4gX19DTEFTU19fIC4gJyAtICcgLiBfX01FVEhPRF9fIC4gJyAtPiBmYWlsZWQgdG8gd3JpdGUgdG8gJyAuICRmaWxlbmFtZSwgXExJU0VcRXJyb3I6OkRJU0NSRVRFICk7CiAgICB9CiAgICBjYXRjaChFeGNlcHRpb24gJGUpCiAgICB7CiAgICAgICMgbWFrZSBzdXJlIHlvdSBjbG9zZSB0aGUgZmlsZSBhbmQgcmV0aHJvdyBleGNlcHRpb24KICAgICAgZmNsb3NlKCRmaCk7CiAgICAgIHRocm93ICRlOwogICAgfQoJfQogIAogIHByaXZhdGUgZnVuY3Rpb24gQ29weURhdGFCYXNlKCkKICB7CiAgICAgJG1vZF9wcmVmaXggPSBjbXNfZGJfcHJlZml4KCkgLiAnbW9kdWxlXycgLiBzdHJ0b2xvd2VyKCR0aGlzLT5tb2RuYW1lKSAuICdfJzsKCiAgICAgJHRhYmxlX2xpc3QgPSBhcnJheSgKICAgICAgICAgICAgICAgICAgICAgICAgICAnaXRlbScsCiAgICAgICAgICAgICAgICAgICAgICAgICAgJ2NhdGVnb3J5JywKICAgICAgICAgICAgICAgICAgICAgICAgICAnaXRlbV9jYXRlZ29yaWVzJywKICAgICAgICAgICAgICAgICAgICAgICAgICAnZmllbGRkZWYnLAogICAgICAgICAgICAgICAgICAgICAgICAgICdmaWVsZGRlZl9vcHRzJywKICAgICAgICAgICAgICAgICAgICAgICAgICAnZmllbGR2YWwnICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgJGRiID0gY21zbXMoKS0+R2V0RGIoKTsKICAgICAKICAgICBmb3JlYWNoKCR0YWJsZV9saXN0IGFzICRvbmUpCiAgICAgewogICAgICAgJG50ID0gJG1vZF9wcmVmaXggLiAkb25lOwogICAgICAgCiAgICAgICAvLyRyb3dzID0gYXJyYXkoKTsKICAgICAgIAogICAgICAgZm9yZWFjaCgkdGhpcy0+X2RhdGFbJ2RiJ11bJG9uZV0gYXMgJHJvdykKICAgICAgIHsKICAgICAgICAgJGZpZWxkcyA9IGltcGxvZGUoJywnLCBhcnJheV9rZXlzKCRyb3cpICk7CiAgICAgICAgICRwaHMgPSBpbXBsb2RlKCcsJywgYXJyYXlfZmlsbCgwLCBjb3VudCgkcm93KSwgJz8nKSApOwoKICAgICAgICAgJHEgPSAnSU5TRVJUIElOVE8gJyAuICRudC4gJyAoJyAuICRmaWVsZHMgLiAnKSBWQUxVRVMgKCcgLiAkcGhzIC4gJyknOwogICAgICAgICAkciA9ICRkYi0+RXhlY3V0ZSgkcSwgYXJyYXlfdmFsdWVzKCRyb3cpKTsKICAgICAgICAgCiAgICAgICAgIGlmKCEkcikgdGhyb3cgbmV3IFxMSVNFXEV4Y2VwdGlvbigkZGItPkVycm9yTm8oKSAuICcgLSAnIC4gJGRiLT5FcnJvck1zZygpICwgXExJU0VcRXJyb3I6OkRJU0NSRVRFX0RCICk7CiAgICAgICB9CiAgICAgfQogIH0KICAKICBwcml2YXRlIGZ1bmN0aW9uIENvcHlQcmVmZXJlbmNlcygpCiAgewogICAgCiAgICAkcHJlZnMgPSBhcnJheSgKICAgICAgICAgICAgICAgICAgICAnZnJpZW5kbHluYW1lJywKICAgICAgICAgICAgICAgICAgICAnYWRtaW5zZWN0aW9uJywKICAgICAgICAgICAgICAgICAgICAnbW9kZGVzY3JpcHRpb24nLAogICAgICAgICAgICAgICAgICAgICdpdGVtX3RpdGxlJywKICAgICAgICAgICAgICAgICAgICAnc29ydG9yZGVyJywKICAgICAgICAgICAgICAgICAgICAnaXRlbV9zaW5ndWxhcicsCiAgICAgICAgICAgICAgICAgICAgJ2l0ZW1fcGx1cmFsJywKICAgICAgICAgICAgICAgICAgICAnZGlzcGxheV9jcmVhdGVfZGF0ZScsCiAgICAgICAgICAgICAgICAgICAgJ2l0ZW1fY29scycsCiAgICAgICAgICAgICAgICAgICAgJ2l0ZW1zX3Blcl9wYWdlJywKICAgICAgICAgICAgICAgICAgICAndXJsX3ByZWZpeCcsCiAgICAgICAgICAgICAgICAgICAgJ2Rpc3BsYXlfaW5saW5lJywKICAgICAgICAgICAgICAgICAgICAnc3ViY2F0ZWdvcnknLAogICAgICAgICAgICAgICAgICAgICd1cmx0ZW1wbGF0ZScsCiAgICAgICAgICAgICAgICAgICAgJ2RldGFpbHBhZ2UnLAogICAgICAgICAgICAgICAgICAgICdzdW1tYXJ5cGFnZScsCiAgICAgICAgICAgICAgICAgICAgJ3JlaW5kZXhfc2VhcmNoJywKICAgICAgICAgICAgICAgICAgICAnc3VtbWFyeV90ZW1wbGF0ZScsCiAgICAgICAgICAgICAgICAgICAgJ2RldGFpbF90ZW1wbGF0ZScsCiAgICAgICAgICAgICAgICAgICAgJ3NlYXJjaF90ZW1wbGF0ZScsCiAgICAgICAgICAgICAgICAgICAgJ2NhdGVnb3J5X3RlbXBsYXRlJywKICAgICAgICAgICAgICAgICAgICAnYXJjaGl2ZV90ZW1wbGF0ZScsCiAgICAgICAgICAgICAgICAgICAgJ2Rpc3BsYXlfaW5saW5lJywKICAgICAgICAgICAgICAgICAgICAnZGlzcGxheV9jcmVhdGVfZGF0ZScsCiAgICAgICAgICAgICAgICAgICAgJ3JlaW5kZXhfc2VhcmNoJywKICAgICAgICAgICAgICAgICAgICAnYXV0b191cGdyYWRlJywKICAgICAgICAgICAgICAgICAgICAnaGlkZV9hbGlhcycsCiAgICAgICAgICAgICAgICAgICAgJ2hpZGVfc2x1ZycsCiAgICAgICAgICAgICAgICAgICAgJ2hpZGVfdGltZV9jb250cm9sJywKICAgICAgICAgICAgICAgICAgICAnc2VwYXJhdGVfc2V0dGluZ3MnCiAgICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgICAgICAgIAogICAgJHRlbXBsYXRlX3ByZWZzID0gYXJyYXkoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdkZWZhdWx0X3N1bW1hcnlfdGVtcGxhdGUnLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnZGVmYXVsdF9kZXRhaWxfdGVtcGxhdGUnLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnZGVmYXVsdF9zZWFyY2hfdGVtcGxhdGUnLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnZGVmYXVsdF9jYXRlZ29yeV90ZW1wbGF0ZScsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdkZWZhdWx0X2FyY2hpdmVfdGVtcGxhdGUnCiAgICAgICAgICAgICAgICAgICAgICAgICAgICApOwoKICAgICRtb2QgPSBNb2R1bGVPcGVyYXRpb25zOjpnZXRfaW5zdGFuY2UoKS0+Z2V0X21vZHVsZV9pbnN0YW5jZSgkdGhpcy0+bW9kbmFtZSwgTlVMTCwgVFJVRSk7CiAgICAKICAgIGZvcmVhY2goJHByZWZzIGFzICRwcmVmKQogICAgewogICAgICAkbW9kLT5TZXRQcmVmZXJlbmNlKCRwcmVmLCAkdGhpcy0+X2RhdGFbJ3ByZWZzJ11bJHByZWZdKTsKICAgIH0KICAKICAgICMgZm9yIGJhY2t3YXJkIGNvbXBhdGliaWxpdHkKICAgIGZvcmVhY2goJHRlbXBsYXRlX3ByZWZzIGFzICRwcmVmKQogICAgewogICAgICBpZiggaXNzZXQoICR0aGlzLT5fZGF0YVsndGVtcGxhdGVfcHJlZnMnXVskcHJlZl0pICkKICAgICAgewogICAgICAgICRrZXkgPSBzdHJfcmVwbGFjZSgnZGVmYXVsdF8nLCAnJywgJHByZWYpOwogICAgICAgICR0aGlzLT5fZGF0YVsndGVtcGxhdGVfcHJlZnMnXVskcHJlZl0gPSAkbW9kLT5TZXRQcmVmZXJlbmNlKCRrZXksICcnKTsKICAgICAgfQogICAgCiAgICB9CgogIH0KICAKICBwcml2YXRlIGZ1bmN0aW9uIENvcHlUZW1wbGF0ZXMoKQogIHsKICAgIAogICAgJG1vZCA9IE1vZHVsZU9wZXJhdGlvbnM6OmdldF9pbnN0YW5jZSgpLT5nZXRfbW9kdWxlX2luc3RhbmNlKCR0aGlzLT5tb2RuYW1lLCBOVUxMLCBUUlVFKTsKICAgICR0ZW1wbGF0ZXMgPSAkbW9kLT5MaXN0VGVtcGxhdGVzKCk7CiAgICAKICAgIGZvcmVhY2goJHRlbXBsYXRlcyBhcyAkb25lKSAkbW9kLT5EZWxldGVUZW1wbGF0ZSgkb25lKTsKICAgIAogICAgZm9yZWFjaCgkdGhpcy0+X2RhdGFbJ3RlbXBsYXRlcyddIGFzICRrID0+ICR2KQogICAgewogICAgICAkbW9kLT5TZXRUZW1wbGF0ZSgkaywgJHYpOwogICAgfQogICAgIAogIH0KICAKICBwcml2YXRlIGZ1bmN0aW9uIF9leHBhbmRfeG1sKCkKICB7CiAgICAkdG1wID0gc2ltcGxleG1sX2xvYWRfc3RyaW5nKCR0aGlzLT5feG1sKTsKCiAgICBpZigkdG1wKQogICAgewogICAgICBpZiggIWlzc2V0KCR0bXAtPlhNTFZFUlNJT04pIHx8ICR0bXAtPlhNTFZFUlNJT04gPiBMSVNFSW5zdGFuY2VFeHBvcnRlcjo6WE1MX1ZFUlNJT04pIHRocm93IG5ldyBcTElTRVxFeGNlcHRpb24oJ0Vycm9yIGluICcgLiBfX0NMQVNTX18gLiAnIGludmFsaWQgWE1MIScpOwogICAgICBpZiggIWlzc2V0KCR0bXAtPk1vZHVsZU5hbWUpKSB0aHJvdyBuZXcgXExJU0VcRXhjZXB0aW9uKCdFcnJvciBpbiAnIC4gX19DTEFTU19fIC4gJyBpbnZhbGlkIFhNTCEnKTsKICAgICAgaWYoICFpc3NldCgkdG1wLT5WZXJzaW9uKSkgdGhyb3cgbmV3IFxMSVNFXEV4Y2VwdGlvbignRXJyb3IgaW4gJyAuIF9fQ0xBU1NfXyAuICcgaW52YWxpZCBYTUwhJyk7CiAgICAgIGlmKCAhaXNzZXQoJHRtcC0+TW9kdWxlRnJpZW5kbHlOYW1lKSkgdGhyb3cgbmV3IFxMSVNFXEV4Y2VwdGlvbignRXJyb3IgaW4gJyAuIF9fQ0xBU1NfXyAuICcgaW52YWxpZCBYTUwhJyk7CiAgICAgIGlmKCAhaXNzZXQoJHRtcC0+RGF0YSkpIHRocm93IG5ldyBcTElTRVxFeGNlcHRpb24oJ0Vycm9yIGluICcgLiBfX0NMQVNTX18gLiAnIGludmFsaWQgWE1MIScpOwogICAgICAKICAgICAgJHRoaXMtPm1vZG5hbWUgPSAoc3RyaW5nKSR0bXAtPk1vZHVsZU5hbWU7CiAgICAgICR0aGlzLT5mcmllbmRseW5hbWUgPSAoc3RyaW5nKSR0bXAtPk1vZHVsZUZyaWVuZGx5TmFtZTsKICAgICAgJHRoaXMtPl9kYXRhID0gdW5zZXJpYWxpemUoIGJhc2U2NF9kZWNvZGUoJHRtcC0+RGF0YSkgKTsKICAgIH0KICAgIGVsc2UKICAgIHsKICAgICAgIHRocm93IG5ldyBcTElTRVxFeGNlcHRpb24oJ0Vycm9yIGluICcgLiBfX0NMQVNTX18gLiAnaW52YWxpZCBYTUwhJyk7CiAgICB9CiAgfQoJCn0gLy8gZW5kIG9mIGNsYXNz]]></data>
	</file>
	<file>
	  <filename>/lib/class.LISEItem.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBMSVNFIC0gTGlzdCBJdCBTcGVjaWFsIEVkaXRpb24KIyBWZXJzaW9uIDEuMgojIEEgZm9yayBvZiBMaXN0STIKIyBtYWludGFpbmVkIGJ5IEZlcm5hbmRvIE1vcmdhZG8gQUtBIEpvIE1vcmcKIyBzaW5jZSAyMDE1CiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBPcmlnaW5hbCBBdXRob3I6IEJlbiBNYWxlbiwgPGJlbkBjb25jZXB0ZmFjdG9yeS5jb20uYXU+CiMgQ28tTWFpbnRhaW5lcjogU2ltb24gUmFkZm9yZCwgPHNpbW9uQGNvbmNlcHRmYWN0b3J5LmNvbS5hdT4KIyBXZWI6IHd3dy5jb25jZXB0ZmFjdG9yeS5jb20uYXUKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojCiMgTWFpbnRhaW5lciBzaW5jZSAyMDExIHVwIHRvIDIwMTQ6IEpvbmF0aGFuIFNjaG1pZCwgPGhpQGpvbmF0aGFuc2NobWlkLmRlPgojIFdlYjogd3d3LmpvbmF0aGFuc2NobWlkLmRlCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIwojIFNvbWUgd2Fja29zIHN0YXJ0ZWQgZGVzdHJveWluZyBzdHVmZiBzaW5jZSAyMDEyIGFuZCBzdG9wcGVkIGF0IDIwMTQ6CiMKIyBUYXBpbyBMw7Z5dHR5LCA8dGFwc2FAb3JhbmdlLW1lZGlhLmZpPgojIFdlYjogd3d3Lm9yYW5nZS1tZWRpYS5maQojCiMgR29yYW4gSWxpYywgPHVuaXF1M2VAZ21haWwuY29tPgojIFdlYjogd3d3LmljaC1tYWNoLWRhcy5hdAojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBMSVNFIGlzIGEgQ01TIE1hZGUgU2ltcGxlIG1vZHVsZSB0aGF0IGVuYWJsZXMgdGhlIHdlYiBkZXZlbG9wZXIgdG8gY3JlYXRlCiMgbXVsdGlwbGUgbGlzdHMgdGhyb3VnaG91dCBhIHNpdGUuIEl0IGNhbiBiZSBkdXBsaWNhdGVkIGFuZCBnaXZlbiBmcmllbmRseQojIG5hbWVzIGZvciBlYXNpZXIgY2xpZW50IG1haW50ZW5hbmNlLgojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgQkVHSU5fTElDRU5TRQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIExJU0UKIyBMSVNFIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgTElTRSBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBFTkRfTElDRU5TRQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpjbGFzcyBMSVNFSXRlbQp7CgkjLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgkjIEF0dHJpYnV0ZXMKCSMtLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgkvL3B1YmxpYyAkaWQ7CglwdWJsaWMgJGl0ZW1faWQ7IC8vIGRlcHJlY2F0ZWQKCXB1YmxpYyAkYWxpYXM7CiAgcHVibGljICR0aXRsZTsKCXB1YmxpYyAkdXJsOwoJcHVibGljICRwb3NpdGlvbjsKCXB1YmxpYyAkYWN0aXZlOwoJcHVibGljICRjcmVhdGVfdGltZTsKCXB1YmxpYyAkbW9kaWZpZWRfdGltZTsKCXB1YmxpYyAkc3RhcnRfdGltZTsKCXB1YmxpYyAkZW5kX3RpbWU7CglwdWJsaWMgJG93bmVyOwkKCQoJcHVibGljICRrZXkxOwoJcHVibGljICRrZXkyOwoJcHVibGljICRrZXkzOwoKCXB1YmxpYyAkZmllbGRkZWZzOwoJCglzdGF0aWMgcHVibGljICRtYW5kYXRvcnkgPSBbJ3RpdGxlJ107CgkJCgkjLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgkjIE1hZ2ljIG1ldGhvZHMKCSMtLS0tLS0tLS0tLS0tLS0tLS0tLS0JCQoJCglwdWJsaWMgZnVuY3Rpb24gX19jb25zdHJ1Y3QoKSAKCXsKCQkkdGhpcy0+aXRlbV9pZCA9IG51bGw7CgkJJHRoaXMtPmFsaWFzID0gbnVsbDsKCQkkdGhpcy0+dGl0bGUgPSAnJzsKCQkkdGhpcy0+cG9zaXRpb24gPSAtMTsKCQkkdGhpcy0+YWN0aXZlID0gMTsKCQkkdGhpcy0+Y3JlYXRlX3RpbWUgPSAnJzsKCQkkdGhpcy0+bW9kaWZpZWRfdGltZSA9ICcnOwoJCSR0aGlzLT5zdGFydF90aW1lID0gJyc7CgkJJHRoaXMtPmVuZF90aW1lID0gJyc7CiAgICAkdGhpcy0+b3duZXIgPSBudWxsOwoJCSR0aGlzLT51cmwgPSBudWxsOwoJCQoJCSR0aGlzLT5rZXkxID0gbnVsbDsKCQkkdGhpcy0+a2V5MiA9IG51bGw7CgkJJHRoaXMtPmtleTMgPSBudWxsOwogICAgCgkJCgkJJHRoaXMtPmZpZWxkZGVmcyA9IG5ldyBMSVNFRmllbGRkZWZBcnJheShbXSk7Cgl9CgkKCXB1YmxpYyBmdW5jdGlvbiBfX2Nsb25lKCkKCXsKCQkkdGhpcy0+ZmllbGRkZWZzLT5TZXRQYXJlbnRJdGVtKCR0aGlzKTsJCQoJfQoJCglwdWJsaWMgZnVuY3Rpb24gX19nZXQoJGtleSkKCXsKCQlpZihpc3NldCgkdGhpcy0+ZmllbGRkZWZzWyRrZXldKSkKICAgIHsKICAgICAgJHZhbHVlID0gJHRoaXMtPmZpZWxkZGVmc1ska2V5XS0+R2V0VmFsdWUoKTsKICAgICAgICAgICAKCQkJcmV0dXJuICR2YWx1ZTsKICAgIH0KCX0KCQoJcHVibGljIGZ1bmN0aW9uIF9fc2V0KCRrZXksICR2YWx1ZSkKCXsKCQlpZihpc3NldCgkdGhpcy0+ZmllbGRkZWZzWyRrZXldKSkgewoJCQoJCQkkdGhpcy0+ZmllbGRkZWZzWyRrZXldLT5TZXRWYWx1ZSgkdmFsdWUpOwoJCX0KCQllbHNlIHsKCQkKCQkJJHRoaXMtPiRrZXkgPSAkdmFsdWU7CgkJfQoJfQkKCglwdWJsaWMgZnVuY3Rpb24gX19pc3NldCgka2V5KQoJewoJCWlmKGlzc2V0KCR0aGlzLT5maWVsZGRlZnNbJGtleV0pICYmICR0aGlzLT5maWVsZGRlZnNbJGtleV0tPkhhc1ZhbHVlKCkpCgkJCXJldHVybiB0cnVlOwoJCQkKCQlyZXR1cm4gRkFMU0U7Cgl9CQoJCglwdWJsaWMgZnVuY3Rpb24gX190b1N0cmluZygpCgl7CgkJcmV0dXJuIChzdHJpbmcpJHRoaXMtPnRpdGxlOwoJfQkKCQoJIy0tLS0tLS0tLS0tLS0tLS0tLS0tLQoJIyBVdGlsaXR5IG1ldGhvZHMKCSMtLS0tLS0tLS0tLS0tLS0tLS0tLS0JCgkKCS8vIERlbGV0ZSB0aGlzIGF3ZnVsIG1ldGhvZC4gVXNlZCBvbmx5IGJ5IGltcG9ydGVyLgoJcHVibGljIGZ1bmN0aW9uIFNldFByb3BlcnR5VmFsdWUoJHByb3BlcnR5LCAkdmFsdWUpCgl7CgkJaWYocHJvcGVydHlfZXhpc3RzKCR0aGlzLCAkcHJvcGVydHkpKSB7ICAvLyA8LSBGb3IgaW50ZXJuYWwgcHJvcGVydGllcwoJCQoJCQlpZihpc19hcnJheSgkdmFsdWUpKSB7CgkJCQkkdGhpcy0+JHByb3BlcnR5ID0gJHZhbHVlWzBdOwoJCQl9CgkJCWVsc2UgewoJCQkJJHRoaXMtPiRwcm9wZXJ0eSA9ICR2YWx1ZTsgCgkJCX0KCQl9IAoJCWVsc2VpZihpc3NldCgkdGhpcy0+ZmllbGRkZWZzWyRwcm9wZXJ0eV0pKSB7IC8vIDwtIEZvciBmaWVsZCBkZWZpbml0aW9ucwoJCQoJCQkkdGhpcy0+JHByb3BlcnR5ID0gKGFycmF5KSR2YWx1ZTsKCQl9CgkJZWxzZSB7IC8vIEFueXRoaW5nIGVsc2UuCgkJCgkJCSR0aGlzLT4kcHJvcGVydHkgPSAkdmFsdWU7IAoJCX0KCX0KCQp9IC8vIGVuZCBvZiBjbGFzcwoKPz4=]]></data>
	</file>
	<file>
	  <filename>/lib/class.LISEItemOperations.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHANCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQojIExJU0UgLSBMaXN0IEl0IFNwZWNpYWwgRWRpdGlvbg0KIyBWZXJzaW9uIDEuMg0KIyBBIGZvcmsgb2YgTGlzdEkyDQojIG1haW50YWluZWQgYnkgRmVybmFuZG8gTW9yZ2FkbyBBS0EgSm8gTW9yZw0KIyBzaW5jZSAyMDE1DQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIw0KIyBPcmlnaW5hbCBBdXRob3I6IEJlbiBNYWxlbiwgPGJlbkBjb25jZXB0ZmFjdG9yeS5jb20uYXU+DQojIENvLU1haW50YWluZXI6IFNpbW9uIFJhZGZvcmQsIDxzaW1vbkBjb25jZXB0ZmFjdG9yeS5jb20uYXU+DQojIFdlYjogd3d3LmNvbmNlcHRmYWN0b3J5LmNvbS5hdQ0KIw0KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCiMNCiMgTWFpbnRhaW5lciBzaW5jZSAyMDExIHVwIHRvIDIwMTQ6IEpvbmF0aGFuIFNjaG1pZCwgPGhpQGpvbmF0aGFuc2NobWlkLmRlPg0KIyBXZWI6IHd3dy5qb25hdGhhbnNjaG1pZC5kZQ0KIw0KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCiMNCiMgU29tZSB3YWNrb3Mgc3RhcnRlZCBkZXN0cm95aW5nIHN0dWZmIHNpbmNlIDIwMTIgYW5kIHN0b3BwZWQgYXQgMjAxNDoNCiMNCiMgVGFwaW8gTMO2eXR0eSwgPHRhcHNhQG9yYW5nZS1tZWRpYS5maT4NCiMgV2ViOiB3d3cub3JhbmdlLW1lZGlhLmZpDQojDQojIEdvcmFuIElsaWMsIDx1bmlxdTNlQGdtYWlsLmNvbT4NCiMgV2ViOiB3d3cuaWNoLW1hY2gtZGFzLmF0DQojDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIw0KIyBMSVNFIGlzIGEgQ01TIE1hZGUgU2ltcGxlIG1vZHVsZSB0aGF0IGVuYWJsZXMgdGhlIHdlYiBkZXZlbG9wZXIgdG8gY3JlYXRlDQojIG11bHRpcGxlIGxpc3RzIHRocm91Z2hvdXQgYSBzaXRlLiBJdCBjYW4gYmUgZHVwbGljYXRlZCBhbmQgZ2l2ZW4gZnJpZW5kbHkNCiMgbmFtZXMgZm9yIGVhc2llciBjbGllbnQgbWFpbnRlbmFuY2UuDQojDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIyBCRUdJTl9MSUNFTlNFDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIyBUaGlzIGZpbGUgaXMgcGFydCBvZiBMSVNFDQojIExJU0UgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5DQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5DQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yDQojIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uDQojDQojIExJU0UgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLA0KIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZg0KIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlDQojIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuDQojIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlDQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlDQojIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcgVVNBDQojIE9yIHJlYWQgaXQgb25saW5lOiBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwNCiMNCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQojIEVORF9MSUNFTlNFDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KdXNlIFxMSVNFXGFwaTsNCg0KZmluYWwgY2xhc3MgTElTRUl0ZW1PcGVyYXRpb25zDQp7DQoJIy0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KCSMgVmFyaWFibGVzDQoJIy0tLS0tLS0tLS0tLS0tLS0tLS0tLQkNCiAgLyoqDQogICAqIGFuIGFycmF5IG9mIHZhbGlkIGlkZW50aWZpZXJzDQogICAqIEB2YXIgYXJyYXl8c3RyaW5nW10NCiAgICovDQogIHB1YmxpYyBzdGF0aWMgYXJyYXkgJGlkZW50aWZpZXJzID0gWw0KICAgICdpdGVtX2lkJyA9PiAnaXRlbV9pZCcsDQogICAgJ2FsaWFzJyAgID0+ICdhbGlhcycsDQogICAgJ2tleTEnICAgID0+ICdrZXkxJywNCiAgICAna2V5MicgICAgPT4gJ2tleTInLA0KICAgICdrZXkzJyAgICA9PiAna2V5MycsDQogICAgJ3VybCcgICAgID0+ICd1cmwnDQogIF07DQogIC8qDQogICAqIGZsYWdzDQogICAqLw0KICANCiAgIyBnZXQgSWRlbnRpZmllciBmbGFncw0KICBwdWJsaWMgY29uc3QgSURFTlRfSU5DX0RFRkFVTFQgID0gMDsgIyAwMDAwIC0gREVGQVVMVCBpcyBhIGZhbGxiYWNrIHRvIHByZXZpb3VzIHZlcnNpb25zID0gQUNUSVZFDQogIHB1YmxpYyBjb25zdCBJREVOVF9JTkNfQUNUSVZFICAgPSAxOyAjIDAwMDEgLSBBQ1RJVkUgYWN0aXZlIG9ubHkNCiAgcHVibGljIGNvbnN0IElERU5UX0lOQ19JTkFDVElWRSA9IDI7ICMgMDAxMCAtIElOQUNUSVZFIGluYWN0aXZlIG9ubHkNCg0KCSMtLS0tLS0tLS0tLS0tLS0tLS0tLS0NCgkjIE1hZ2ljIG1ldGhvZHMNCgkjLS0tLS0tLS0tLS0tLS0tLS0tLS0tCQkNCgkNCglwcml2YXRlIGZ1bmN0aW9uIF9fY29uc3RydWN0KCkge30NCgkNCgkjLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQoJIyBEYXRhYmFzZSBtZXRob2RzDQoJIy0tLS0tLS0tLS0tLS0tLS0tLS0tLQkNCiAgDQogIC8qKg0KICAgKiBAcGFyYW0gXExJU0UgICAgICRtb2QNCiAgICogQHBhcmFtIFxMSVNFSXRlbSAkb2JqDQogICAqDQogICAqIEB0aHJvd3MgXExJU0VcRXhjZXB0aW9uDQogICAqLw0KCXB1YmxpYyBzdGF0aWMgZnVuY3Rpb24gU2F2ZShMSVNFICRtb2QsIExJU0VJdGVtICRvYmopIDogdm9pZA0KICB7DQoJCUV2ZW50czo6U2VuZEV2ZW50KCAkbW9kLT5HZXROYW1lKCksICdQcmVJdGVtU2F2ZScsIGFycmF5KCdpdGVtX29iamVjdCcgPT4gJG9iaikgKTsNCg0KCQkvLyBDaGVjayBhZ2FpbnN0IG1hbmRhdG9yeSBsaXN0DQoJCWZvcmVhY2goTElTRUl0ZW06OiRtYW5kYXRvcnkgYXMgJHJ1bGUpDQogICAgew0KCQkJaWYoJG9iai0+JHJ1bGUgPT09ICcnKSB7IHJldHVybjsgfQ0KCQl9DQoJCQ0KCQkkZGIgPSBjbXNtcygpLT5HZXREYigpOw0KCQ0KCQkvLyR0aW1lID0gJGRiLT5EQlRpbWVTdGFtcCggdGltZSgpICk7DQoNCgkJJHNxbF9zdGFydF90aW1lID0gJG9iai0+c3RhcnRfdGltZSA/IGRhdGUoICdZLW0tZCcsIHN0cnRvdGltZSgkb2JqLT5zdGFydF90aW1lKSApIDogTlVMTDsNCgkJJHNxbF9lbmRfdGltZSAgID0gJG9iai0+ZW5kX3RpbWUgPyBkYXRlKCAnWS1tLWQnLCBzdHJ0b3RpbWUoJG9iai0+ZW5kX3RpbWUpICkgOiBOVUxMOw0KCQkNCgkJLy8gRW5zdXJlIHRoYXQgd2UgaGF2ZSBhbGlhcw0KICAgIGlmKCRvYmotPmFsaWFzID09PSAnJykNCiAgICB7DQogICAgICAkb2JqLT5hbGlhcyA9IG11bmdlX3N0cmluZ190b191cmwoJG9iai0+dGl0bGUsIFRSVUUpOw0KICAgIH0NCiAgDQogICAgLy8gVHJ5IGdyYWJiaW5nIG93bmVyIGlmIG5vdCBzZXQNCiAgICBpZihpc19udWxsKCRvYmotPm93bmVyKSkNCiAgICB7DQogICAgICAkbG9nZ2VkaW4gPSBnZXRfdXNlcmlkKEZBTFNFKTsNCiAgICAgIGlmKCRsb2dnZWRpbikgeyAkb2JqLT5vd25lciA9ICRsb2dnZWRpbjsgfQ0KICAgIH0NCgkJCQ0KCQkvLyBFeGlzdGluZyBpdGVtCQ0KCQlpZiAoJG9iai0+aXRlbV9pZCA+IDApIA0KICAgIHsJDQoJCQkvLyB1cGRhdGUgaXRlbQ0KCQkJJHF1ZXJ5ICA9ICdVUERBVEUgJyAuIGNtc19kYl9wcmVmaXgoKSAuICdtb2R1bGVfJyAuICRtb2QtPl9HZXRNb2R1bGVBbGlhcygpIC4gJ19pdGVtIA0KCQkJCQlTRVQgdGl0bGUgPSA/LCBhbGlhcyA9ID8sIGFjdGl2ZSA9ID8sIHN0YXJ0X3RpbWUgPSA/LCBlbmRfdGltZSA9ID8sIG1vZGlmaWVkX3RpbWUgPSBOT1coKSwga2V5MSA9ID8sIGtleTIgPSA/LCBrZXkzID0gPywgb3duZXIgPSA/LCB1cmwgPSA/IA0KCQkJCQlXSEVSRSBpdGVtX2lkID0gPyc7DQogICAgICANCiAgICAgICR0ZXJtcyA9IFsNCiAgICAgICAgICAgICAgICAgICRvYmotPnRpdGxlLA0KICAgICAgICAgICAgICAgICAgJG9iai0+YWxpYXMsDQogICAgICAgICAgICAgICAgICAvLyRvYmotPmNhdGVnb3J5X2lkLA0KICAgICAgICAgICAgICAgICAgJG9iai0+YWN0aXZlLA0KICAgICAgICAgICAgICAgICAgJHNxbF9zdGFydF90aW1lLA0KICAgICAgICAgICAgICAgICAgJHNxbF9lbmRfdGltZSwNCiAgICAgICAgICAgICAgICAgICRvYmotPmtleTEsDQogICAgICAgICAgICAgICAgICAkb2JqLT5rZXkyLA0KICAgICAgICAgICAgICAgICAgJG9iai0+a2V5MywNCiAgICAgICAgICAgICAgICAgICRvYmotPm93bmVyLA0KICAgICAgICAgICAgICAgICAgJG9iai0+dXJsLA0KICAgICAgICAgICAgICAgICAgJG9iai0+aXRlbV9pZA0KICAgICAgICAgICAgICAgIF07DQoJCQkJCQkNCgkJCSRyZXN1bHQgPSAkZGItPkV4ZWN1dGUoJHF1ZXJ5LCAkdGVybXMpOw0KDQogICAgICBpZighJHJlc3VsdCkNCiAgICAgIHsNCiAgICAgICAgdGhyb3cgbmV3IFxMSVNFXEV4Y2VwdGlvbigNCiAgICAgICAgICAkZGItPkVycm9yTm8oKSAuICcgLSAnIC4gJGRiLT5FcnJvck1zZygpIC4gJyAtIFF1ZXJ5OiAnIC4gJGRiLT5zcWwsIFxMSVNFXEVycm9yOjpESVNDUkVURV9EQg0KICAgICAgICApOw0KICAgICAgfQ0KCQkNCgkJDQoJCX0gDQogICAgZWxzZSAvLyBOZXcgaXRlbQ0KICAgIHsNCgkJCS8vIGZpbmQgcG9zaXRpb24gYmVmb3JlIGluc2VydGluZyBuZXcgaXRlbQ0KCQkJJHF1ZXJ5ID0gJ1NFTEVDVCBNQVgocG9zaXRpb24pICsgMSBGUk9NICcgLiBjbXNfZGJfcHJlZml4KCkgLiAnbW9kdWxlXycgLiAkbW9kLT5fR2V0TW9kdWxlQWxpYXMoKSAuICdfaXRlbSc7DQoJCQkkcG9zaXRpb24gPSAkZGItPkdldE9uZSgkcXVlcnkpOw0KDQoJCQlpZiAoJHBvc2l0aW9uID09PSBudWxsKSB7ICRwb3NpdGlvbiA9IDE7IH0NCgkJCQ0KCQkJLy8gY2hlY2sgYWxpYXMgaXMgdW5pcXVlDQoJCQkkcXVlcnkgPSAnU0VMRUNUIENPVU5UKGFsaWFzKSBhcyBhbGlhcyBGUk9NICcgLiBjbXNfZGJfcHJlZml4KCkgLiAnbW9kdWxlXycgLiAkbW9kLT5fR2V0TW9kdWxlQWxpYXMoKSAuICdfaXRlbSBXSEVSRSBhbGlhcyBMSUtFICInLiRvYmotPmFsaWFzLiclIic7DQoJCQkkZGJyZXN1bHQgPSAkZGItPkdldE9uZSgkcXVlcnkpOw0KCQkJDQoJCQlpZigkZGJyZXN1bHQgPiAwKQ0KCQkJCSRvYmotPmFsaWFzIC49ICdfJy4oJGRicmVzdWx0KzEpOwkNCgkJCQ0KCQkJLy8gaW5zZXJ0IGl0ZW0NCgkJCSRxdWVyeSAgPSAnSU5TRVJUIElOVE8gJyAuIGNtc19kYl9wcmVmaXgoKSAuICdtb2R1bGVfJyAuICRtb2QtPl9HZXRNb2R1bGVBbGlhcygpIC4gJ19pdGVtIA0KCQkJCQkodGl0bGUsIGFsaWFzLCBwb3NpdGlvbiwgYWN0aXZlLCBjcmVhdGVfdGltZSwgbW9kaWZpZWRfdGltZSwgc3RhcnRfdGltZSwgZW5kX3RpbWUsIGtleTEsIGtleTIsIGtleTMsIG93bmVyLCB1cmwpIA0KCQkJCQlWQUxVRVMgKD8sID8sID8sID8sIE5PVygpLCBOT1coKSwgPywgPywgPywgPywgPywgPywgPyknOw0KICAgICAgICAgIA0KICAgICAgJHRlcm1zID0gWw0KICAgICAgICAgICAgICAgICAgJG9iai0+dGl0bGUsDQogICAgICAgICAgICAgICAgICAkb2JqLT5hbGlhcywNCiAgICAgICAgICAgICAgICAgIC8vJG9iai0+Y2F0ZWdvcnlfaWQsDQogICAgICAgICAgICAgICAgICAkcG9zaXRpb24sDQogICAgICAgICAgICAgICAgICAkb2JqLT5hY3RpdmUsDQogICAgICAgICAgICAgICAgICAkc3FsX3N0YXJ0X3RpbWUsDQogICAgICAgICAgICAgICAgICAkc3FsX2VuZF90aW1lLA0KICAgICAgICAgICAgICAgICAgJG9iai0+a2V5MSwNCiAgICAgICAgICAgICAgICAgICRvYmotPmtleTIsDQogICAgICAgICAgICAgICAgICAkb2JqLT5rZXkzLA0KICAgICAgICAgICAgICAgICAgJG9iai0+b3duZXIsDQogICAgICAgICAgICAgICAgICAkb2JqLT51cmwNCiAgICAgICAgICAgICAgICBdOw0KCQkJCQkNCgkJCSRyZXN1bHQgPSAkZGItPkV4ZWN1dGUoJHF1ZXJ5LCAkdGVybXMpOw0KCQkJDQogICAgICBpZighJHJlc3VsdCkNCiAgICAgIHsNCiAgICAgICAgdGhyb3cgbmV3IFxMSVNFXEV4Y2VwdGlvbigNCiAgICAgICAgICAkZGItPkVycm9yTm8oKSAuICcgLSAnIC4gJGRiLT5FcnJvck1zZygpIC4gJyAtIFF1ZXJ5OiAnIC4gJGRiLT5zcWwsIFxMSVNFXEVycm9yOjpESVNDUkVURV9EQg0KICAgICAgICApOw0KICAgICAgfQ0KDQoJCQkvLyBwb3B1bGF0ZSAkaXRlbV9pZCBmb3IgbmV3bHkgaW5zZXJ0ZWQgaXRlbQ0KCQkJJG9iai0+aXRlbV9pZCA9ICRkYi0+SW5zZXJ0X0lEKCk7CQkNCgkJfQ0KCQ0KDQoJCWlmICgkb2JqLT5hY3RpdmUgJiYgJycgIT0gJG9iai0+dXJsKQ0KCQl7DQoJCQljbXNfcm91dGVfbWFuYWdlcjo6ZGVsX3N0YXRpYygnJywkbW9kLT5fR2V0TW9kdWxlQWxpYXMoKSwkb2JqLT5pdGVtX2lkKTsNCg0KICAgICAgJGRldGFpbHBhZ2UgPSAkbW9kLT5HZXRQcmVmZXJlbmNlKCdkZXRhaWxwYWdlJywgLTEpOw0KICAgICAgDQogICAgICBpZigtMSA9PSAkZGV0YWlscGFnZSkNCiAgICAgIHsNCiAgICAgICAgJGNvbnRlbnRvcHMgPSBjbXNtcygpLT5HZXRDb250ZW50T3BlcmF0aW9ucygpOw0KICAgICAgICAkZGV0YWlscGFnZSA9ICRjb250ZW50b3BzLT5HZXREZWZhdWx0Q29udGVudCgpOw0KICAgICAgfQ0KICAgICAgDQoJICAJJHBhcm1zID0gWydhY3Rpb24nID0+J2RldGFpbCcsDQogICAgICAgICAgICAgICAgJ3JldHVybmlkJyA9PiRkZXRhaWxwYWdlLA0KICAgICAgICAgICAgICAgICdpdGVtJyA9PiRvYmotPml0ZW1faWRdOw0KICAgICAgDQoJICAJJHJvdXRlID0gQ21zUm91dGU6Om5ld19idWlsZGVyKCRvYmotPnVybCwkbW9kLT5HZXROYW1lKCksJG9iai0+aXRlbV9pZCwkcGFybXMsVFJVRSk7DQogICAgCWNtc19yb3V0ZV9tYW5hZ2VyOjphZGRfc3RhdGljKCRyb3V0ZSk7DQoJICB9DQoNCiAgICAkYWRkX3RvX3NlYXJjaCA9ICRtb2QtPkdldFByZWZlcmVuY2UoJ3JlaW5kZXhfc2VhcmNoJyk7DQogICAgJHNlYXJjaCAgICAgICAgPSBOVUxMOw0KICAgIA0KICAgIGlmKCRhZGRfdG9fc2VhcmNoKQ0KICAgIHsNCiAgICAgIC8vIEluaXQgc2VhcmNoDQogICAgICAkYWxsb3dlZF90eXBlcyA9IFsnVGV4dElucHV0JywgJ1RleHRBcmVhJ107DQogICAgICAkc2VhcmNoICAgICAgICA9IGNtc191dGlsczo6Z2V0X3NlYXJjaF9tb2R1bGUoKTsNCiAgICAgICR3b3JkcyAgICAgICAgID0gJG9iai0+dGl0bGU7DQogICAgICANCiAgICAgIGlmIChpc19vYmplY3QoJHNlYXJjaCkpDQogICAgICB7DQogICAgICAgICRzZWFyY2gtPkFkZFdvcmRzKCRtb2QtPkdldE5hbWUoKSwgJG9iai0+aXRlbV9pZCwgJ3RpdGxlJywgICRvYmotPnRpdGxlKTsNCiAgICAgIH0NCiAgICB9DQogICAgDQogICAgLy8gaGFuZGxlIGluc2VydGluZyBjdXN0b20gZmllbGRzIGludG8gZGF0YWJhc2UNCiAgICBpZihjb3VudCgkb2JqLT5maWVsZGRlZnMpKSANCiAgICB7DQogICAgICAvL0xJU0VGaWVsZGRlZk9wZXJhdGlvbnM6OlByb2Nlc3NGaWVsZHNMaXN0KCRvYmotPmZpZWxkZGVmcyk7ICMgbm90IGhlcmUuLi4uIG5lZWRzIHRvIGJlIGNoZWNrZWQgZWxzZXdoZXJlDQogICAgICBmb3JlYWNoICgkb2JqLT5maWVsZGRlZnMgYXMgJGZpZWxkKSANCiAgICAgIHsgICAgDQogICAgICAgICRmaWVsZC0+U2V0SXRlbUlkKCRvYmotPml0ZW1faWQpOyAvLyA8LSBSZW1vdmUgaW4gMS41ICg/Pz8pDQogICAgICAgICRmaWVsZC0+RXZlbnRIYW5kbGVyKCktPk9uSXRlbVNhdmUoJG1vZCk7DQogICAgICAgIGlmKCRhZGRfdG9fc2VhcmNoKQ0KICAgICAgICB7DQogICAgICAgICAgLy8gUGFydCBvZiBzZWFyY2ggcmVpbmRleGluZw0KICAgICAgICAgIGlmKCAhaW5fYXJyYXkoJGZpZWxkLT5HZXRUeXBlKCksICRhbGxvd2VkX3R5cGVzKSApIGNvbnRpbnVlOw0KICAgICAgICAgIGlmKCAhJGZpZWxkLT5HZXRPcHRpb25WYWx1ZSgnc2VhcmNoX2luZGV4JykgKSBjb250aW51ZTsNCiAgICAgICAgICAkd29yZHMgLj0gJyAnIC4gJGZpZWxkLT5HZXRWYWx1ZSgnc3RyaW5nJyk7DQogICAgICAgIH0NCiAgICAgIH0NCiAgICB9DQogICAgDQogICAgaWYoJGFkZF90b19zZWFyY2ggJiYgaXNfb2JqZWN0KCRzZWFyY2gpKQ0KICAgIHsNCiAgICAgICRzZWFyY2gtPkFkZFdvcmRzKCRtb2QtPkdldE5hbWUoKSwgJG9iai0+aXRlbV9pZCwgJG1vZC0+R2V0UHJlZmVyZW5jZSgnaXRlbV9zaW5ndWxhcicsICdpdGVtJyksICR3b3Jkcyk7DQogICAgfQ0KDQoJCUV2ZW50czo6U2VuZEV2ZW50KCRtb2QtPkdldE5hbWUoKSwgJ1Bvc3RJdGVtU2F2ZScsIGFycmF5KCdpdGVtX29iamVjdCcgPT4gJiRvYmopKTsNCgkJDQoJfQ0KICANCiAgLyoqDQogICAqIEBwYXJhbSBcTElTRSAgICAgJG1vZA0KICAgKiBAcGFyYW0gXExJU0VJdGVtICRvYmoNCiAgICoNCiAgICogQHJldHVybiBib29sDQogICAqIEB0aHJvd3MgXEV4Y2VwdGlvbg0KICAgKi8NCglwdWJsaWMgc3RhdGljIGZ1bmN0aW9uIERlbGV0ZShMSVNFICRtb2QsIExJU0VJdGVtICRvYmopIDogYm9vbA0KICB7DQoJCUV2ZW50czo6U2VuZEV2ZW50KCRtb2QtPkdldE5hbWUoKSwgJ1ByZUl0ZW1EZWxldGUnLCBhcnJheSgnaXRlbV9vYmplY3QnID0+ICYkb2JqKSk7CQ0KCQ0KCQkkZGIgPSBjbXNtcygpLT5HZXREYigpOw0KCQkNCgkJaWYgKCRvYmotPml0ZW1faWQgPiAwKSANCiAgICB7DQoJCQkvLyBnZXQgZGV0YWlscw0KCQkJJHF1ZXJ5ID0gJ1NFTEVDVCAqIEZST00gJyAuIGNtc19kYl9wcmVmaXgoKSAuICdtb2R1bGVfJyAuICRtb2QtPl9HZXRNb2R1bGVBbGlhcygpIC4gJ19pdGVtIFdIRVJFIGl0ZW1faWQgPSA/JzsNCgkJCSRyb3cgPSAkZGItPkdldFJvdygkcXVlcnksIGFycmF5KCRvYmotPml0ZW1faWQpKTsNCgkJCQ0KCQkJLy8gZGVsZXRlIGl0ZW0NCgkJCSRxdWVyeSA9ICdERUxFVEUgRlJPTSAnIC4gY21zX2RiX3ByZWZpeCgpIC4gJ21vZHVsZV8nIC4gJG1vZC0+X0dldE1vZHVsZUFsaWFzKCkgLiAnX2l0ZW0gV0hFUkUgaXRlbV9pZCA9ID8nOw0KCQkJJGRiLT5FeGVjdXRlKCRxdWVyeSwgYXJyYXkoJG9iai0+aXRlbV9pZCkpOw0KCQkJDQoJCQkvLyBEZWxldGUgZnJvbSBpdGVtcw0KCQkJJHF1ZXJ5ID0gJ0RFTEVURSBGUk9NICcgLiBjbXNfZGJfcHJlZml4KCkgLiAnbW9kdWxlXycgLiAkbW9kLT5fR2V0TW9kdWxlQWxpYXMoKSAuICdfaXRlbV9jYXRlZ29yaWVzIFdIRVJFIGl0ZW1faWQgPSA/JzsNCgkJCSRkYi0+RXhlY3V0ZSgkcXVlcnksIGFycmF5KCRvYmotPml0ZW1faWQpKTsJCQkJDQoJCQkNCgkJCS8vIENsZWFuIHVwIHNvcnQgb3JkZXINCgkJCSRxdWVyeSA9ICdVUERBVEUgJyAuIGNtc19kYl9wcmVmaXgoKSAuICdtb2R1bGVfJyAuICRtb2QtPl9HZXRNb2R1bGVBbGlhcygpIC4gJ19pdGVtIFNFVCBwb3NpdGlvbiA9IChwb3NpdGlvbiAtIDEpIFdIRVJFIHBvc2l0aW9uID4gPyc7DQoJCQkkZGItPkV4ZWN1dGUoJHF1ZXJ5LCBhcnJheSgkcm93Wydwb3NpdGlvbiddKSk7CQkJDQoJCQkNCgkJCS8vIERlbGV0ZSBmaWVsZCB2YWx1ZXMgZnJvbSByZWd1bGFyIHRhYmxlcw0KCQkJJHF1ZXJ5ID0gJ0RFTEVURSBGUk9NICcgLiBjbXNfZGJfcHJlZml4KCkgLiAnbW9kdWxlXycgLiAkbW9kLT5fR2V0TW9kdWxlQWxpYXMoKSAuICdfZmllbGR2YWwgV0hFUkUgaXRlbV9pZCA9ID8nOw0KCQkJJGRiLT5FeGVjdXRlKCRxdWVyeSwgYXJyYXkoJG9iai0+aXRlbV9pZCkpOwkJCQ0KCQkJDQoJCQkvLyBEZWxldGUgZmllbGQgdmFsdWVzIGZyb20gYW55IGV4dGVybmFsIHRhYmxlcyAodGhpcyBtaWdodCBub3QgYmVsb25nIGhlcmUsIGRvdWJsZSBjaGVjaykNCgkJCWlmKGNvdW50KCRvYmotPmZpZWxkZGVmcykpIA0KICAgICAgew0KCQkJCWZvcmVhY2ggKChhcnJheSkkb2JqLT5maWVsZGRlZnMgYXMgJGZpZWxkKSANCiAgICAgICAgew0KCQkJCQkkZmllbGQtPkV2ZW50SGFuZGxlcigpLT5Pbkl0ZW1EZWxldGUoJG1vZCk7DQoJCQkJfSAvLyBlbmQgb2YgZm9yZWFjaA0KCQkJfSAvLyBlbmQgb2YgY291bnQNCgkJCQ0KCQkJRXZlbnRzOjpTZW5kRXZlbnQoJG1vZC0+R2V0TmFtZSgpLCAnUG9zdEl0ZW1EZWxldGUnLCBhcnJheSgnaXRlbV9vYmplY3QnID0+ICYkb2JqKSk7DQoJCQkNCgkJCXJldHVybiB0cnVlOw0KCQl9DQoNCgkJcmV0dXJuIEZBTFNFOw0KCX0NCiAgDQogIC8qKg0KICAgKiBAcGFyYW0gXExJU0UgICAgICRtb2QNCiAgICogQHBhcmFtIFxMSVNFSXRlbSAkb2JqDQogICAqIEBwYXJhbSBib29sICAgICAgJHJvdw0KICAgKiBAcGFyYW0gYm9vbCAgICAgICRub2Zkcw0KICAgKg0KICAgKiBAcmV0dXJuIGJvb2wNCiAgICogQHRocm93cyBcRXhjZXB0aW9uDQogICAqLw0KCXB1YmxpYyBzdGF0aWMgZnVuY3Rpb24gTG9hZChMSVNFICRtb2QsIExJU0VJdGVtICRvYmosICRyb3cgPSBGQUxTRSwgJG5vZmRzID0gRkFMU0UpIDogYm9vbA0KICB7DQoJCUV2ZW50czo6U2VuZEV2ZW50KCRtb2QtPkdldE5hbWUoKSwgJ1ByZUl0ZW1Mb2FkJywgYXJyYXkoJ2l0ZW1fb2JqZWN0JyA9PiAmJG9iaikpOwkNCgkNCgkJLy8gSWYgd2UgZG9uJ3QgaGF2ZSByb3cgdGhlbiBhdHRlbXB0IHRvIGxvYWQgaXQNCgkJaWYoISRyb3cpDQogICAgew0KCQkJZm9yZWFjaChzZWxmOjokaWRlbnRpZmllcnMgYXMgJGRiX2NvbHVtbiA9PiAkaWRlbnRpZmllcikNCiAgICAgIHsNCgkJCQlpZighaXNfbnVsbCgkb2JqLT4kaWRlbnRpZmllcikpDQogICAgICAgIHsNCgkJCQkJJGRiID0gY21zbXMoKS0+R2V0RGIoKTsNCg0KCQkJCQkkcXVlcnkgPSAiU0VMRUNUICogRlJPTSAiIC4gY21zX2RiX3ByZWZpeCgpIC4gIm1vZHVsZV8iIC4gJG1vZC0+X0dldE1vZHVsZUFsaWFzKCkgLiAiX2l0ZW0NCgkJCQkJCQkJCQlXSEVSRSAkZGJfY29sdW1uID0gPw0KCQkJCQkJCQkJCUxJTUlUIDEiOw0KDQoJCQkJCSRyb3cgPSAkZGItPkdldFJvdygkcXVlcnksIGFycmF5KCRvYmotPiRpZGVudGlmaWVyKSk7DQoNCgkJCQkJaWYoJHJvdykgYnJlYWs7DQoJCQkJfQ0KCQkJfQ0KCQl9DQoNCgkJaWYoJHJvdykNCiAgICB7DQoJCQkvLyBJdGVtIHRhYmxlDQoJCQkvLyRvYmotPmlkICAgICAgICAJCQk9ICRyb3dbJ2l0ZW1faWQnXTsNCgkJCSRvYmotPml0ZW1faWQgICAgICAgIAkJPSAkcm93WydpdGVtX2lkJ107IC8vIGRlcHJlY2F0ZWQNCgkJCSRvYmotPnRpdGxlICAgICAgICAJCQk9ICRyb3dbJ3RpdGxlJ107DQoJCQkkb2JqLT5hbGlhcwkJIAkJCSAgICA9ICRyb3dbJ2FsaWFzJ107DQoJCQkkb2JqLT5wb3NpdGlvbiAgICAgICAJCT0gJHJvd1sncG9zaXRpb24nXTsNCgkJCSRvYmotPmFjdGl2ZSAgICAgICAJCQk9ICRyb3dbJ2FjdGl2ZSddOw0KCQkJJG9iai0+Y3JlYXRlX3RpbWUgIAkJCT0gJHJvd1snY3JlYXRlX3RpbWUnXTsNCgkJCSRvYmotPm1vZGlmaWVkX3RpbWUgIAkJPSAkcm93Wydtb2RpZmllZF90aW1lJ107DQoJCQkkb2JqLT5zdGFydF90aW1lICAgCQkJPSAkcm93WydzdGFydF90aW1lJ107DQoJCQkkb2JqLT5lbmRfdGltZSAgICAgCQkJPSAkcm93WydlbmRfdGltZSddOw0KCQkJJG9iai0+b3duZXIgICAgIAkJCSAgPSAkcm93Wydvd25lciddOw0KDQoJCQkkb2JqLT5rZXkxCQkgCQkJICAgID0gJHJvd1sna2V5MSddOw0KCQkJJG9iai0+a2V5MgkJIAkJCSAgICA9ICRyb3dbJ2tleTInXTsNCiAgICAgICRvYmotPmtleTMgICAgICAgICAgICAgID0gJHJvd1sna2V5MyddOw0KCQkJJG9iai0+dXJsCQkgCQkJICAgICAgPSAkcm93Wyd1cmwnXTsNCgkJCS8vJG9iai0+Y2F0ZWdvcnlfaWQgCQkJPSAkcm93WydjYXRlZ29yeV9pZCddOw0KDQogICAgICAvKioNCiAgICAgICAqIHdlIG5vdyBoYXZlIGEgbGlnaHQgbW9kZSB3aGVyZSB3ZSBkb24ndCBsb2FkIGV4dHJhIGZpZWxkcyBAc2luY2UgMS41DQogICAgICAgKi8NCiAgICAgIA0KCQkJLy8gRmllbGRzDQoJCQlpZighJG5vZmRzICYmIGNvdW50KCRvYmotPmZpZWxkZGVmcykgJiYgY291bnQoJG9iai0+ZmllbGRkZWZzKSkNCiAgICAgIHsNCiAgICAgICAgZm9yZWFjaCgoYXJyYXkpJG9iai0+ZmllbGRkZWZzIGFzICRmaWVsZCkNCiAgICAgICAgew0KICAgICAgICAgICRmaWVsZC0+U2V0SXRlbUlkKCRvYmotPml0ZW1faWQpOyAvLyA8LSBSZW1vdmUgaW4gMS41DQogICAgICAgICAgJGZpZWxkLT5FdmVudEhhbmRsZXIoKS0+T25JdGVtTG9hZCgkbW9kKTsNCiAgICAgICAgfSAvLyBlbmQgb2YgZm9yZWFjaA0KICAgICAgfSAvLyBlbmQgb2YgY291bnQNCg0KCQkJRXZlbnRzOjpTZW5kRXZlbnQoJG1vZC0+R2V0TmFtZSgpLCAnUG9zdEl0ZW1Mb2FkJywgYXJyYXkoJ2l0ZW1fb2JqZWN0JyA9PiAmJG9iaikpOw0KDQoJCQlyZXR1cm4gVFJVRTsNCgkJfQ0KDQoJCXJldHVybiBGQUxTRTsNCgl9DQogIA0KICAvKioNCiAgICogQHBhcmFtIFxMSVNFSXRlbSAkb2JqDQogICAqDQogICAqIEByZXR1cm4gXExJU0VJdGVtDQogICAqLw0KCXB1YmxpYyBzdGF0aWMgZnVuY3Rpb24gQ29weShMSVNFSXRlbSAkb2JqKSA6IFxMSVNFSXRlbQ0KICB7DQogICAgJG9iaiAgICAgICAgICAgICAgICA9IGNsb25lICRvYmo7DQogICAgJG9iai0+aXRlbV9pZCAgICAgICA9IE5VTEw7DQogICAgJG9iai0+YWxpYXMgICAgICAgICA9IE5VTEw7DQogICAgJG9iai0+cG9zaXRpb24gICAgICA9IC0xOw0KICAgICRvYmotPmNyZWF0ZV90aW1lICAgPSAnJzsNCiAgICAkb2JqLT5tb2RpZmllZF90aW1lID0gJyc7DQogICAgJG9iai0+a2V5MSAgICAgICAgICA9IE5VTEw7DQogICAgJG9iai0+a2V5MiAgICAgICAgICA9IE5VTEw7DQogICAgJG9iai0+a2V5MyAgICAgICAgICA9IE5VTEw7DQogICAgJG9iai0+dXJsICAgICAgICAgICA9IE5VTEw7DQogICAgJG9iai0+b3duZXIgICAgICAgICA9IE5VTEw7DQoJDQoJCXJldHVybiAkb2JqOw0KCX0NCiAgDQogIC8qKg0KICAgKiBAcGFyYW0gXExJU0UgICRtb2QNCiAgICogQHBhcmFtIHN0cmluZyAkaWRlbnRpZmllcg0KICAgKiBAcGFyYW0gaW50ICAgICRmbGFncw0KICAgKg0KICAgKiBAcmV0dXJuIGFycmF5DQogICAqIEB0aHJvd3MgXEV4Y2VwdGlvbg0KICAgKi8NCiAgcHVibGljIHN0YXRpYyBmdW5jdGlvbiBHZXRJZGVudGlmaWVyKExJU0UgJG1vZCwgJGlkZW50aWZpZXIgPSAnaXRlbV9pZCcsICRmbGFncyA9IHNlbGY6OklERU5UX0lOQ19ERUZBVUxUKQ0KICB7DQogIA0KICAgICRxdWVyeSA9ICdTRUxFQ1QgdGl0bGUsICcNCiAgICAgICAgICAgICAuICRpZGVudGlmaWVyDQogICAgICAgICAgICAgLiAnIEZST00gJw0KICAgICAgICAgICAgIC4gY21zX2RiX3ByZWZpeCgpIC4gJ21vZHVsZV8nIC4gJG1vZC0+X0dldE1vZHVsZUFsaWFzKCkgLiAnX2l0ZW0gJzsNCiAgICANCiAgICBzd2l0Y2ggKCRmbGFncykNCiAgICB7DQogICAgICBjYXNlIHNlbGY6OklERU5UX0lOQ19ERUZBVUxUOg0KICAgICAgY2FzZSBzZWxmOjpJREVOVF9JTkNfQUNUSVZFOg0KICAgICAgICAgICAgJHF1ZXJ5IC49ICcgV0hFUkUgYWN0aXZlID0gMSc7DQogICAgICAgICAgYnJlYWs7DQogICAgICAgICAgDQogICAgICBjYXNlIHNlbGY6OklERU5UX0lOQ19JTkFDVElWRToNCiAgICAgICAgICAgICRxdWVyeSAuPSAnIFdIRVJFIGFjdGl2ZSA9IDAnOw0KICAgICAgICAgIGJyZWFrOw0KICAgICAgDQogICAgICAjIGFsbA0KICAgICAgY2FzZSAoc2VsZjo6SURFTlRfSU5DX0lOQUNUSVZFIHx8IHNlbGY6OklERU5UX0lOQ19BQ1RJVkUpOg0KICAgICAgICAgIGJyZWFrOw0KICAgIH0NCiAgDQogICAgJHF1ZXJ5IC49ICcgT1JERVIgQlkgcG9zaXRpb24nOw0KICAgIA0KICAgIA0KICAgIA0KICAgIC8vJHF1ZXJ5ID0gIlNFTEVDVCB0aXRsZSwgJGlkZW50aWZpZXIgRlJPTSAiIC4gY21zX2RiX3ByZWZpeCgpIC4gIm1vZHVsZV8iIC4gJG1vZC0+X0dldE1vZHVsZUFsaWFzKCkgLiAiX2l0ZW0gV0hFUkUgYWN0aXZlID0gMSBPUkRFUiBCWSBwb3NpdGlvbiI7DQogICAgJGRiciA9IGNtc21zKCktPkdldERiKCktPkV4ZWN1dGUoJHF1ZXJ5KTsNCiAgICANCg0KICAgIA0KICAgICRyZXQgPSBhcnJheSgpOw0KICAgIHdoaWxlKCRkYnIgJiYgISRkYnItPkVPRikgew0KICAgIA0KICAgICAgJHJldFskZGJyLT5maWVsZHNbJGlkZW50aWZpZXJdXSA9ICRkYnItPmZpZWxkc1sndGl0bGUnXTsgIA0KICAgICAgJGRici0+TW92ZU5leHQoKTsNCiAgICB9DQogICAgDQogICAgaWYoJGRicikgJGRici0+Q2xvc2UoKTsNCiAgICANCiAgICByZXR1cm4gJHJldDsNCiAgfQ0KICANCiAgLyoqDQogICAqIEBwYXJhbSAgICAgICAkU2VhcmNoDQogICAqIEBwYXJhbSBcTElTRSAkbW9kDQogICAqDQogICAqIEB0aHJvd3MgXEV4Y2VwdGlvbg0KICAgKi8NCiAgcHVibGljIHN0YXRpYyBmdW5jdGlvbiByZWluZGV4X3NlYXJjaCgkU2VhcmNoLCBMSVNFICRtb2QpIDogdm9pZA0KICB7DQogICAgaWYoICEkbW9kLT5HZXRQcmVmZXJlbmNlKCdyZWluZGV4X3NlYXJjaCcsIDApICkgcmV0dXJuOw0KICAgICAgICANCiAgICBpZighaXNfb2JqZWN0KCRTZWFyY2gpKSByZXR1cm47DQogIA0KICAgICRwYXJhbXMgICAgICAgID0gW107DQogICAgJGl0ZW1fcXVlcnkgICAgPSAkbW9kLT5HZXRJdGVtUXVlcnkoJHBhcmFtcyk7DQogICAgJGl0ZW1fcXVlcnktPkFwcGVuZFRvKExJU0VRdWVyeTo6VkFSVFlQRV9XSEVSRSwgJ0EuYWN0aXZlID0gMScpOw0KICAgICRyZXN1bHQgICAgICAgID0gJGl0ZW1fcXVlcnktPkV4ZWN1dGUoVFJVRSk7DQogICAgJGl0ZW1zICAgICAgICAgPSBbXTsNCiAgICAkYWxsb3dlZF90eXBlcyA9IFsnVGV4dElucHV0JywgJ1RleHRBcmVhJ107DQogIA0KICAgIHdoaWxlKCRyZXN1bHQgJiYgJHJvdyA9ICRyZXN1bHQtPkZldGNoUm93KCkpIA0KICAgIHsNCiAgICAgICR3b3JkcyA9ICRyb3dbJ3RpdGxlJ107DQogICAgICAkaXRlbSAgPSAkbW9kLT5Jbml0aWF0ZUl0ZW0oKTsNCiAgICAgIHNlbGY6OkxvYWQoJG1vZCwgJGl0ZW0sICRyb3cpOyAgDQogICAgICAkb2JqICAgPSBjbG9uZSAkaXRlbTsNCiAgICAgIA0KICAgICAgZm9yZWFjaCgkb2JqLT5maWVsZGRlZnMgYXMgJG9uZSkNCiAgICAgIHsNCiAgICAgICAgaWYoICFpbl9hcnJheSgkb25lLT5HZXRUeXBlKCksICRhbGxvd2VkX3R5cGVzKSApIGNvbnRpbnVlOw0KICAgICAgICBpZiggISRvbmUtPkdldE9wdGlvblZhbHVlKCdzZWFyY2hfaW5kZXgnKSApIGNvbnRpbnVlOw0KICAgICAgICAkd29yZHMgLj0gJyAnIC4gJG9uZS0+R2V0VmFsdWUoJ3N0cmluZycpOyANCiAgICAgIH0NCiAgICAgIA0KICAgICAgJFNlYXJjaC0+QWRkV29yZHMoICRtb2QtPkdldE5hbWUoKSwgJHJvd1snaXRlbV9pZCddLCAkbW9kLT5HZXRQcmVmZXJlbmNlKCdpdGVtX3Npbmd1bGFyJywgJ2l0ZW0nKSwgJHdvcmRzICk7DQogICAgfSAgICAgICAgICAgICANCiAgfQ0KICANCiAgLyoqDQogICAqIEBwYXJhbSAgICAgICAkU2VhcmNoDQogICAqIEBwYXJhbSBcTElTRSAkbW9kDQogICAqLw0KICBwdWJsaWMgc3RhdGljIGZ1bmN0aW9uIHJlbW92ZV9pbmRleF9zZWFyY2goJFNlYXJjaCwgTElTRSAkbW9kKSA6IHZvaWQNCiAgew0KICAgIGlmKCFpc19vYmplY3QoJFNlYXJjaCkpIHJldHVybjsNCiAgDQogICAgJHBhcmFtcyAgICAgPSBbXTsNCiAgICAkaXRlbV9xdWVyeSA9ICRtb2QtPkdldEl0ZW1RdWVyeSgkcGFyYW1zKTsNCiAgICAkaXRlbV9xdWVyeS0+QXBwZW5kVG8oTElTRVF1ZXJ5OjpWQVJUWVBFX1dIRVJFLCAnQS5hY3RpdmUgPSAxJyk7DQogICAgJHJlc3VsdCAgICAgPSAkaXRlbV9xdWVyeS0+RXhlY3V0ZSh0cnVlKTsNCg0KICAgIHdoaWxlKCRyZXN1bHQgJiYgJHJvdyA9ICRyZXN1bHQtPkZldGNoUm93KCkpIA0KICAgIHsNCiAgICAgICRTZWFyY2gtPkRlbGV0ZVdvcmRzKCRtb2QtPkdldE5hbWUoKSwgJHJvd1snaXRlbV9pZCddLCAkbW9kLT5HZXRQcmVmZXJlbmNlKCdpdGVtX3Npbmd1bGFyJywgJ2l0ZW0nKSk7DQogICAgfSAgICANCiAgfQ0KICANCiAgLyoqDQogICAqIEBwYXJhbSAgICAgICAkY3VycmVudF9pZA0KICAgKiBAcGFyYW0gXExJU0UgJG1vZA0KICAgKg0KICAgKiBAcmV0dXJuIGJvb2x8bWl4ZWQNCiAgICogQHRocm93cyBcRXhjZXB0aW9uDQogICAqLw0KICBwdWJsaWMgc3RhdGljIGZ1bmN0aW9uIGN1cnJlbnRfcG9zaXRpb24oJGN1cnJlbnRfaWQsIFxMSVNFICRtb2QpDQogIHsNCiAgICAkdGFibGVfbmFtZSA9IGNtc19kYl9wcmVmaXgoKSAuICdtb2R1bGVfJyAuICRtb2QtPl9HZXRNb2R1bGVBbGlhcygpIC4gJ19pdGVtJzsNCiAgICANCiAgICAkcXVlcnkgPSAnU0VMRUNUIHBvc2l0aW9uIEZST00gJw0KICAgICAgICAgICAgIC4gJHRhYmxlX25hbWUNCiAgICAgICAgICAgICAuICcgV0hFUkUgaXRlbV9pZD0/JzsNCiAgICANCiAgICByZXR1cm4gY21zbXMoKS0+R2V0RGIoKS0+R2V0T25lKCRxdWVyeSwgWyRjdXJyZW50X2lkXSk7DQogIH0NCiAgDQogIC8qKg0KICAgKiBAcGFyYW0gICAgICAgJGN1cnJlbnRfaWQNCiAgICogQHBhcmFtIFxMSVNFICRtb2QNCiAgICogQHBhcmFtIGJvb2wgICRieV9wb3NpdGlvbg0KICAgKg0KICAgKiBAcmV0dXJuIGJvb2x8bWl4ZWQNCiAgICogQHRocm93cyBcRXhjZXB0aW9uDQogICAqLw0KICBwdWJsaWMgc3RhdGljIGZ1bmN0aW9uIG5leHRfZnJvbV9jdXJyZW50KCRjdXJyZW50X2lkLCBcTElTRSAkbW9kLCAkYnlfcG9zaXRpb24gPSBUUlVFKQ0KICB7DQogICAgJHRhYmxlX25hbWUgICA9IGNtc19kYl9wcmVmaXgoKSAuICdtb2R1bGVfJyAuICRtb2QtPl9HZXRNb2R1bGVBbGlhcygpIC4gJ19pdGVtJzsNCiAgICAkc3ViX3FfYnlfaWQgID0gJyhTRUxFQ1QgbWluKGl0ZW1faWQpIEZST00gJyAuICR0YWJsZV9uYW1lIC4gJyBXSEVSRSBpdGVtX2lkID4gPyknOw0KICAgICRzdWJfcV9ieV9wb3MgPSAnKFNFTEVDVCBtaW4oaXRlbV9pZCkgRlJPTSAnIC4gJHRhYmxlX25hbWUgLiAnIFdIRVJFIHBvc2l0aW9uID4gPyknOw0KICAgIA0KICAgICRxdWVyeSA9ICdTRUxFQ1QgaXRlbV9pZCBGUk9NICcNCiAgICAgICAgICAgICAuICR0YWJsZV9uYW1lDQogICAgICAgICAgICAgLiAnIFdIRVJFIGl0ZW1faWQgPSAnOw0KICAgIA0KICAgIGlmKCRieV9wb3NpdGlvbikNCiAgICB7DQogICAgICAkcXVlcnkgLj0gJHN1Yl9xX2J5X3BvczsNCiAgICAgICRwb3MgPSAgc2VsZjo6Y3VycmVudF9wb3NpdGlvbigkY3VycmVudF9pZCwgJG1vZCk7DQogICAgICANCi8vICAgICAgJHIgPSBjbXNtcygpLT5HZXREYigpLT5HZXRPbmUoJHF1ZXJ5LCBbJHBvc10pOw0KLy8gICAgICAkZXJyb3IgPSAgY21zbXMoKS0+R2V0RGIoKS0+RXJyb3JNc2coKTsNCiAgICAgIA0KICAgICAgcmV0dXJuIGNtc21zKCktPkdldERiKCktPkdldE9uZSgkcXVlcnksIFskcG9zXSk7DQogICAgfQ0KICANCiAgICAkcXVlcnkgLj0gJHN1Yl9xX2J5X2lkOw0KICAgIA0KICAgIHJldHVybiBjbXNtcygpLT5HZXREYigpLT5HZXRPbmUoJHF1ZXJ5LCBbJGN1cnJlbnRfaWRdKTsNCiAgICANCiAgfQ0KICANCiAgLyoqDQogICAqIEBwYXJhbSAgICAgICAkY3VycmVudF9pZA0KICAgKiBAcGFyYW0gXExJU0UgJG1vZA0KICAgKiBAcGFyYW0gYm9vbCAgJGJ5X3Bvc2l0aW9uDQogICAqDQogICAqIEByZXR1cm4gYm9vbHxtaXhlZA0KICAgKiBAdGhyb3dzIFxFeGNlcHRpb24NCiAgICovDQogIHB1YmxpYyBzdGF0aWMgZnVuY3Rpb24gcHJldmlvdXNfZnJvbV9jdXJyZW50KCRjdXJyZW50X2lkLCBcTElTRSAkbW9kLCAkYnlfcG9zaXRpb24gPSBUUlVFLCAkcGFyYW1zID0gW10pDQogIHsNCiAgICAkdGFibGVfbmFtZSAgID0gY21zX2RiX3ByZWZpeCgpIC4gJ21vZHVsZV8nIC4gJG1vZC0+X0dldE1vZHVsZUFsaWFzKCkgLiAnX2l0ZW0nOw0KICAgICRxID0gbmV3IFxMSVNFXFF1ZXJ5KCAnaXRlbScsICRtb2QtPl9HZXRNb2R1bGVBbGlhcygpLCBjbXNfZGJfcHJlZml4KCkgKTsNCiAgICANCiAgICAkc3ViX3FfYnlfaWQgID0gJyhTRUxFQ1QgbWF4KGl0ZW1faWQpIEZST00gJyAuICR0YWJsZV9uYW1lIC4gJyBXSEVSRSBpdGVtX2lkIDwgPyknOw0KICAgICRzdWJfcV9ieV9wb3MgPSAnKFNFTEVDVCBtYXgoaXRlbV9pZCkgRlJPTSAnIC4gJHRhYmxlX25hbWUgLiAnIFdIRVJFIHBvc2l0aW9uIDwgPyknOw0KICAgIA0KICAgICRxdWVyeSA9ICdTRUxFQ1QgaXRlbV9pZCBGUk9NICcNCiAgICAgICAgICAgICAuICR0YWJsZV9uYW1lDQogICAgICAgICAgICAgLiAnIFdIRVJFIGl0ZW1faWQgPSAnOw0KICAgIA0KICAgIGlmKCRieV9wb3NpdGlvbikNCiAgICB7DQogICAgICAkcXVlcnkgLj0gJHN1Yl9xX2J5X3BvczsNCiAgICAgICRwb3MgICA9IHNlbGY6OmN1cnJlbnRfcG9zaXRpb24oJGN1cnJlbnRfaWQsICRtb2QpOw0KICAgICAgDQogICAgICByZXR1cm4gY21zbXMoKS0+R2V0RGIoKS0+R2V0T25lKCRxdWVyeSwgWyRwb3NdKTsNCiAgICB9DQogIA0KICAgICRxdWVyeSAuPSAkc3ViX3FfYnlfaWQ7DQogIA0KICAgIHJldHVybiBjbXNtcygpLT5HZXREYigpLT5HZXRPbmUoJHF1ZXJ5LCBbJGN1cnJlbnRfaWRdKTsNCiAgICANCiAgfQ0KICANCiAgLyoqDQogICAqIEBwYXJhbSBudWxsICAgJG1vZA0KICAgKiBAcGFyYW0gaW50ICAgICRpZA0KICAgKiBAcGFyYW0gc3RyaW5nICRhbGlhcw0KICAgKg0KICAgKiBAcmV0dXJuIGJvb2wNCiAgICogQHRocm93cyBcRXhjZXB0aW9uDQogICAqLw0KICBwdWJsaWMgc3RhdGljIGZ1bmN0aW9uIGlzX2R1cGxpY2F0ZSgkbW9kID0gTlVMTCwgJGlkID0gLTEsICRhbGlhcyA9ICcnKSA6IGJvb2wNCiAgew0KICAgIGlmKGVtcHR5KCRtb2QpIHx8ICRpZCA8IDEpIHJldHVybiBGQUxTRTsgIyBUT0RPIHNob3VsZCB0aHJvdyBleGNlcHRpb24NCiAgICBpZiggIWlzX2EoJG1vZCwgXExJU0VJbnN0YW5jZTo6Y2xhc3MpICkgcmV0dXJuIEZBTFNFOyAjIFRPRE8gc2hvdWxkIHRocm93IGV4Y2VwdGlvbg0KICAgIA0KICAgICR0biA9IFxjbXNfZGJfcHJlZml4KCkgLiAnbW9kdWxlXycgLiAkbW9kLT5fR2V0TW9kdWxlQWxpYXMoKSAuICdfaXRlbSc7DQogICAgJHAgPSBbXTsNCiAgDQogICAgJHEgPSAnU0VMRUNUIGl0ZW1faWQgRlJPTSAnDQogICAgICAgICAuICR0bg0KICAgICAgICAgLiAnIFdIRVJFIGFsaWFzID0gPyc7DQogIA0KICAgICRwW10gPSAkYWxpYXM7DQogICAgDQogICAgaWYgKCRpZCA+IDApDQogICAgew0KICAgICAgJHEgLj0gJyBBTkQgaXRlbV9pZCAhPSA/JzsNCiAgDQogICAgICAkcFtdID0gJGlkOw0KICAgICAgDQogICAgICAkciA9IGFwaTo6REIoKS0+R2V0T25lKCRxLCAkcCk7DQogICAgfQ0KICAgIGVsc2UNCiAgICB7DQogICAgICAkciA9IGFwaTo6REIoKS0+R2V0T25lKCRxLCAkcCk7DQogICAgfQ0KICAgIA0KICAgIHJldHVybiAoYm9vbCkkcjsNCiAgfQ0KICANCiAgLyoqDQogICAqIEBwYXJhbSBudWxsICRtb2QNCiAgICogQHBhcmFtIGludCAgJGlkDQogICAqDQogICAqIEByZXR1cm4gYm9vbA0KICAgKiBAdGhyb3dzIFxFeGNlcHRpb24NCiAgICovDQogIHB1YmxpYyBzdGF0aWMgZnVuY3Rpb24gaXNfZHVwbGljYXRlX2lkKCRtb2QgPSBOVUxMLCAkaWQgPSAtMSkNCiAgew0KICAgIGlmKGVtcHR5KCRtb2QpIHx8ICRpZCA8IDEpIHJldHVybiBGQUxTRTsgIyBUT0RPIHNob3VsZCB0aHJvdyBleGNlcHRpb24NCiAgICBpZiggIWlzX2EoJG1vZCwgXExJU0VJbnN0YW5jZTo6Y2xhc3MpICkgcmV0dXJuIEZBTFNFOyAjIFRPRE8gc2hvdWxkIHRocm93IGV4Y2VwdGlvbg0KICANCiAgICAkdG4gPSBcY21zX2RiX3ByZWZpeCgpIC4gJ21vZHVsZV8nIC4gJG1vZC0+X0dldE1vZHVsZUFsaWFzKCkgLiAnX2l0ZW0nOw0KICAgICRwID0gWyRpZF07DQogIA0KICAgICRxID0gJ1NFTEVDVCBpdGVtX2lkIEZST00gJw0KICAgICAgICAgLiAkdG4NCiAgICAgICAgIC4gJyBXSEVSRSBpdGVtX2lkID0gPyc7DQogICAgDQogICAgcmV0dXJuIChib29sKWFwaTo6REIoKS0+R2V0T25lKCRxLCAkcCk7DQogIH0NCiAgDQogIC8qKg0KICAgKiBAcGFyYW0gbnVsbCAgICRtb2QNCiAgICogQHBhcmFtIHN0cmluZyAkYWxpYXMNCiAgICoNCiAgICogQHJldHVybiBib29sDQogICAqIEB0aHJvd3MgXEV4Y2VwdGlvbg0KICAgKi8NCiAgcHVibGljIHN0YXRpYyBmdW5jdGlvbiBpc19kdXBsaWNhdGVfYWxpYXMoJG1vZCA9IE5VTEwsICRhbGlhcyA9ICcnKSA6IGJvb2wNCiAgew0KICAgIGlmKCBlbXB0eSgkbW9kKSB8fCBlbXB0eSgkYWxpYXMpICkgcmV0dXJuIEZBTFNFOyAjIFRPRE8gc2hvdWxkIHRocm93IGV4Y2VwdGlvbg0KICAgIGlmKCAhaXNfYSgkbW9kLCBcTElTRUluc3RhbmNlOjpjbGFzcykgKSByZXR1cm4gRkFMU0U7ICMgVE9ETyBzaG91bGQgdGhyb3cgZXhjZXB0aW9uDQogICAgDQogICAgDQogICAgJHRuID0gXGNtc19kYl9wcmVmaXgoKSAuICdtb2R1bGVfJyAuICRtb2QtPl9HZXRNb2R1bGVBbGlhcygpIC4gJ19pdGVtJzsNCiAgICAkcCA9IFskYWxpYXNdOw0KICAgIA0KICAgICRxID0gJ1NFTEVDVCBpdGVtX2lkIEZST00gJw0KICAgICAgICAgLiAkdG4NCiAgICAgICAgIC4gJyBXSEVSRSBhbGlhcyA9ID8nOw0KICANCiAgICByZXR1cm4gKGJvb2wpYXBpOjpEQigpLT5HZXRPbmUoJHEsICRwKTsNCiAgfQ0KCQ0KfSAvLyBlbmQgb2YgY2xhc3MNCj8+]]></data>
	</file>
	<file>
	  <filename>/lib/class.LISEItemQuery.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBMSVNFIC0gTGlzdCBJdCBTcGVjaWFsIEVkaXRpb24KIyBWZXJzaW9uIDEuMgojIEEgZm9yayBvZiBMaXN0STIKIyBtYWludGFpbmVkIGJ5IEZlcm5hbmRvIE1vcmdhZG8gQUtBIEpvIE1vcmcKIyBzaW5jZSAyMDE1CiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBPcmlnaW5hbCBBdXRob3I6IEJlbiBNYWxlbiwgPGJlbkBjb25jZXB0ZmFjdG9yeS5jb20uYXU+CiMgQ28tTWFpbnRhaW5lcjogU2ltb24gUmFkZm9yZCwgPHNpbW9uQGNvbmNlcHRmYWN0b3J5LmNvbS5hdT4KIyBXZWI6IHd3dy5jb25jZXB0ZmFjdG9yeS5jb20uYXUKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojCiMgTWFpbnRhaW5lciBzaW5jZSAyMDExIHVwIHRvIDIwMTQ6IEpvbmF0aGFuIFNjaG1pZCwgPGhpQGpvbmF0aGFuc2NobWlkLmRlPgojIFdlYjogd3d3LmpvbmF0aGFuc2NobWlkLmRlCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIwojIFNvbWUgd2Fja29zIHN0YXJ0ZWQgZGVzdHJveWluZyBzdHVmZiBzaW5jZSAyMDEyIGFuZCBzdG9wcGVkIGF0IDIwMTQ6CiMKIyBUYXBpbyBMw7Z5dHR5LCA8dGFwc2FAb3JhbmdlLW1lZGlhLmZpPgojIFdlYjogd3d3Lm9yYW5nZS1tZWRpYS5maQojCiMgR29yYW4gSWxpYywgPHVuaXF1M2VAZ21haWwuY29tPgojIFdlYjogd3d3LmljaC1tYWNoLWRhcy5hdAojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBMSVNFIGlzIGEgQ01TIE1hZGUgU2ltcGxlIG1vZHVsZSB0aGF0IGVuYWJsZXMgdGhlIHdlYiBkZXZlbG9wZXIgdG8gY3JlYXRlCiMgbXVsdGlwbGUgbGlzdHMgdGhyb3VnaG91dCBhIHNpdGUuIEl0IGNhbiBiZSBkdXBsaWNhdGVkIGFuZCBnaXZlbiBmcmllbmRseQojIG5hbWVzIGZvciBlYXNpZXIgY2xpZW50IG1haW50ZW5hbmNlLgojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgQkVHSU5fTElDRU5TRQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIExJU0UKIyBMSVNFIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgTElTRSBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBFTkRfTElDRU5TRQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQp1c2UgTElTRVxRdWVyeTsKCi8qKgogKiBDbGFzcyBMSVNFSXRlbVF1ZXJ5CiAqLwpjbGFzcyBMSVNFSXRlbVF1ZXJ5IGV4dGVuZHMgTElTRVF1ZXJ5CnsKICAjLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgIyBBdHRyaWJ1dGVzCiAgIy0tLS0tLS0tLS0tLS0tLS0tLS0tLQogIAogIC8qKgogICAqIEB2YXIgc3RyaW5nW10KICAgKi8KICBwcml2YXRlIHN0YXRpYyBhcnJheSAkb3JkZXJieV9tYXAgPSBbCiAgICAvLyBpdGVtcwogICAgJ2l0ZW1faWQnICAgICAgICAgICAgPT4gJ0EuaXRlbV9pZCcsCiAgICAnaXRlbV90aXRsZScgICAgICAgICA9PiAnQS50aXRsZScsCiAgICAnaXRlbV9wb3NpdGlvbicgICAgICA9PiAnQS5wb3NpdGlvbicsCiAgICAnaXRlbV9jcmVhdGVkJyAgICAgICA9PiAnQS5jcmVhdGVfdGltZScsCiAgICAnaXRlbV9tb2RpZmllZCcgICAgICA9PiAnQS5tb2RpZmllZF90aW1lJywKICAgICdpdGVtX3N0YXJ0JyAgICAgICAgID0+ICdBLnN0YXJ0X3RpbWUnLAogICAgJ2l0ZW1fZW5kJyAgICAgICAgICAgPT4gJ0EuZW5kX3RpbWUnLAogICAgCiAgICAvLyBjYXRlZ29yeQogICAgJ2NhdGVnb3J5X2lkJyAgICAgICAgPT4gJ0IuY2F0ZWdvcnlfaWQnLAogICAgJ2NhdGVnb3J5X25hbWUnICAgICAgPT4gJ0IuY2F0ZWdvcnlfbmFtZScsCiAgICAnY2F0ZWdvcnlfaGllcmFyY2h5JyA9PiAnQi5oaWVyYXJjaHknLAogICAgJ2NhdGVnb3J5X3Bvc2l0aW9uJyAgPT4gJ0IucG9zaXRpb24nLAogICAgLy8gPC0gTm90IG5lY2Vzc2FyaWx5IHZhbGlkLCBpZiBKT0lOIHRvIGNhdGVnb3J5IHRhYmxlIGlzIG5vdCBtYWRlLCBjaGVjayB0aGlzLgogICAgCiAgICAvLyBmdW5jdGlvbnMKICAgICdyYW5kJyAgICAgICAgICAgICAgID0+ICdSQU5EKCknCiAgXTsKICAKICAjLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgIyBRdWVyeSBtZXRob2RzCiAgIy0tLS0tLS0tLS0tLS0tLS0tLS0tLQogIAogIC8qKgogICAqIEB0aHJvd3MgXExJU0VcRXhjZXB0aW9uCiAgICovCiAgcHJpdmF0ZSBmdW5jdGlvbiBfYXBwZW5kX2ludGVybmFsKCkgOiB2b2lkCiAgewogICAgaWYoIGlzc2V0KCR0aGlzLT5xdWVyeSkgKSB7IHJldHVybjsgfQogIAogICAgJGRiICAgICAgICA9ICR0aGlzLT5HZXREYigpOwogICAgJG1vZCAgICAgICA9ICR0aGlzLT5HZXRNb2R1bGVJbnN0YW5jZSgpOwogICAgJHBhcmFtcyAgICA9ICR0aGlzLT5HZXRQYXJhbXMoKTsKICAgICRvcGVyYXRvcnMgPSBbJz0nLCAnTElLRSddOwogICAgJGFycmF5ICAgICA9IFtdOwogICAgJHN0ciAgICAgICA9ICcnOwogIAogICAgLyoKICAgICAqIE9SREVSIEJZCiAgICAgKi8KICAgIGlmKCBpc3NldCgkcGFyYW1zWydvcmRlcmJ5J10pICkKICAgIHsKICAgICAgLy8gQWx3YXlzIHJldHVybmluZyB0d28gYXJyYXlzCiAgICAgIFskb3JkZXJfY29scywgJGN1c3RvbV9jb2xzXSA9IHNlbGY6OmV4cGxvZGVfb3JkZXJieSgkcGFyYW1zWydvcmRlcmJ5J10sIHNlbGY6OiRvcmRlcmJ5X21hcCk7CiAgICAgIAogICAgICAvLyBIYW5kbGUgY3VzdG9tXyogb3JkZXJieSBzdHVmZgogICAgICBpZighZW1wdHkoJGN1c3RvbV9jb2xzKSkKICAgICAgewogICAgICAgIGZvcmVhY2goJGN1c3RvbV9jb2xzIGFzICRpbmRleCA9PiAkb2JqKQogICAgICAgIHsKICAgICAgICAgICRvbmVkZWYgPSBMSVNFRmllbGRkZWZPcGVyYXRpb25zOjpMb2FkKCRtb2QsICdhbGlhcycsICRvYmotPm5hbWUpOwogICAgICAgICAgCiAgICAgICAgICBpZigkb25lZGVmKQogICAgICAgICAgewogICAgICAgICAgICAkYXMgPSAnVkFMJyAuICRvbmVkZWYtPkdldElkKCk7CiAgICAgICAgICAgIAogICAgICAgICAgICAkdGhpcy0+QXBwZW5kVG8oCiAgICAgICAgICAgICAgcGFyZW50OjpWQVJUWVBFX0pPSU5TLAogICAgICAgICAgICAgICdMRUZUIEpPSU4gJwogICAgICAgICAgICAgIC4gJHRoaXMtPl9tb2RfYWxpYXMoKQogICAgICAgICAgICAgIC4gJ19maWVsZHZhbCAnCiAgICAgICAgICAgICAgLiAkYXMKICAgICAgICAgICAgICAuICcgT04gQS5pdGVtX2lkID0gJwogICAgICAgICAgICAgIC4gJGFzCiAgICAgICAgICAgICAgLiAnLml0ZW1faWQnCiAgICAgICAgICAgICk7CiAgICAgICAgICAgIAogICAgICAgICAgICAkdGhpcy0+QXBwZW5kVG8oCiAgICAgICAgICAgICAgcGFyZW50OjpWQVJUWVBFX1dIRVJFLAogICAgICAgICAgICAgICRhcwogICAgICAgICAgICAgIC4gJy5maWVsZGRlZl9pZCA9ICcKICAgICAgICAgICAgICAuICRkYi0+cXN0ciggJG9uZWRlZi0+R2V0SWQoKSApCiAgICAgICAgICAgICk7CiAgICAgICAgICAgIAogICAgICAgICAgICAkb3JkZXJfY29sc1skaW5kZXhdID0gJGFzIC4gJy52YWx1ZSAnIC4gJG9iai0+b3JkZXI7CiAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIAogICAgICAgIGtzb3J0KCRvcmRlcl9jb2xzKTsKICAgICAgfQogICAgICAKICAgICAgaWYoY291bnQoJG9yZGVyX2NvbHMpKQogICAgICB7CiAgICAgICAgZm9yZWFjaCgkb3JkZXJfY29scyBhcyAkb25lKQogICAgICAgIHsKICAgICAgICAgICR0aGlzLT5BcHBlbmRUbyhwYXJlbnQ6OlZBUlRZUEVfT1JERVJCWSwgJG9uZSk7CiAgICAgICAgfQogICAgICB9CiAgICAgIAogICAgfSAvLyBlbmQgb2Ygb3JkZXJieTsKICAgIAogICAgLyoKICAgICAqIElOQ0xVREUvRVhDTFVERSBJVEVNUwogICAgICovCiAgICBpZiggIWVtcHR5KCRwYXJhbXNbJ2luY2x1ZGVfaXRlbXMnXSkgfHwgIWVtcHR5KCRwYXJhbXNbJ2V4Y2x1ZGVfaXRlbXMnXSkgKQogICAgewogICAgICBpZiggIWVtcHR5KCRwYXJhbXNbJ2luY2x1ZGVfaXRlbXMnXSkgKQogICAgICB7CiAgICAgICAgJGFycmF5ID0gZXhwbG9kZSgnLCcsICRwYXJhbXNbJ2luY2x1ZGVfaXRlbXMnXSk7CiAgICAgICAgJHN0ciA9ICcoJzsKICAgICAgfQogICAgICAKICAgICAgaWYoICFlbXB0eSgkcGFyYW1zWydleGNsdWRlX2l0ZW1zJ10pICkKICAgICAgewogICAgICAgICRhcnJheSA9IGV4cGxvZGUoJywnLCAkcGFyYW1zWydleGNsdWRlX2l0ZW1zJ10pOwogICAgICAgICRzdHIgPSAnTk9UICgnOwogICAgICB9CiAgICAgIAogICAgICAkY291bnQgPSAwOwogICAgICAKICAgICAgZm9yZWFjaCAoJGFycmF5IGFzICRhbGlhcykKICAgICAgewogICAgICAgIGlmKCRjb3VudCA+IDApIHsgJHN0ciAuPSAnIE9SICc7IH0KICAgICAgICAKICAgICAgICAvLyB0aGlzIGlzIHRyaWNreTogZGVwZW5kcyBvbiBhbGlhcyBuZXZlciBiZWluZyBudW1lcmljLi4uIG1heSBuZWVkIGFuIGFsdGVybmF0aXZlCiAgICAgICAgJHN0ciAuPSAgaXNfbnVtZXJpYygkYWxpYXMpID8gJyBBLml0ZW1faWQgPSBcJycgLiAkYWxpYXMgLiAnXCcnIDogJyBBLmFsaWFzID0gXCcnIC4gJGFsaWFzIC4gJ1wnJzsKICAgICAgICAkY291bnQrKzsKICAgICAgfQogICAgICAKICAgICAgJHN0ciAuPSAnKSc7CiAgICAgIAogICAgICAkdGhpcy0+QXBwZW5kVG8ocGFyZW50OjpWQVJUWVBFX1dIRVJFLCAkc3RyKTsKICAgICAgCiAgICB9IC8vIGVuZCBvZiBpbmNsdWRlIGl0ZW1zOwogICAgCiAgICAvKgogICAgICogSU5DTFVERS9FWENMVURFIENBVEVHT1JZCiAgICAgKi8KICAgIGlmKCFlbXB0eSgkcGFyYW1zWydjYXRlZ29yeSddKSB8fCAhZW1wdHkoJHBhcmFtc1snZXhjbHVkZV9jYXRlZ29yeSddKSkKICAgIHsKICAgICAgaWYoIWVtcHR5KCRwYXJhbXNbJ2NhdGVnb3J5J10pKQogICAgICB7CiAgICAgICAgJGFycmF5ID0gZXhwbG9kZSgnLCcsICRwYXJhbXNbJ2NhdGVnb3J5J10pOwogICAgICAgICRzdHIgPSAnKCc7CiAgICAgIH0KICAgICAgCiAgICAgIGlmKCFlbXB0eSgkcGFyYW1zWydleGNsdWRlX2NhdGVnb3J5J10pKQogICAgICB7CiAgICAgICAgJGFycmF5ID0gZXhwbG9kZSgnLCcsICRwYXJhbXNbJ2V4Y2x1ZGVfY2F0ZWdvcnknXSk7CiAgICAgICAgJHN0ciA9ICcoQi5jYXRlZ29yeV9hbGlhcyBJUyBOVUxMIE9SIE5PVCAoJyA7CiAgICAgIH0KICAgICAgCiAgICAgICRjb3VudCA9IDA7CiAgICAgIGZvcmVhY2ggKCRhcnJheSBhcyAkY2F0KQogICAgICB7CiAgICAgICAgaWYgKCRjb3VudCA+IDApIHsgJHN0ciAuPSAnIE9SICc7IH0KICAgICAgICAKICAgICAgICAkc3RyIC49ICIgQi5jYXRlZ29yeV9hbGlhcyA9ICciIC4gJGNhdCAuICInIjsKICAgICAgICAKICAgICAgICBpZiAoKGlzc2V0KCRwYXJhbXNbJ3N1YmNhdGVnb3J5J10pICYmICRwYXJhbXNbJ3N1YmNhdGVnb3J5J10pIHx8ICRtb2QtPkdldFByZWZlcmVuY2UoJ3N1YmNhdGVnb3J5JykpCiAgICAgICAgewogICAgICAgICAgJHRoaXMtPl9nZXRfc3ViY2F0ZWdvcmllcygkc3RyLCAkY2F0KTsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgJGNvdW50Kys7CiAgICAgIH0KICAgICAgCiAgICAgICRzdHIgLj0gJyknOwogICAgICAKICAgICAgaWYoIWVtcHR5KCRwYXJhbXNbJ2V4Y2x1ZGVfY2F0ZWdvcnknXSkpCiAgICAgIHsKICAgICAgICAkc3RyIC49ICcpJzsKICAgICAgfQogICAgICAKICAgICAgJHRoaXMtPkFwcGVuZFRvKHBhcmVudDo6VkFSVFlQRV9XSEVSRSwgJHN0cik7CiAgICAgIAogICAgfSAvLyBlbmQgb2YgY2F0ZWdvcnk7CiAgICAKICAgIC8qCiAgICAgKiBTRUFSQ0gKICAgICAqLwogICAgaWYoIWVtcHR5KCRwYXJhbXNbJ3NlYXJjaCddKSkKICAgIHsKICAgICAgJHN0ciAgICAgID0gJHBhcmFtc1snc2VhcmNoJ107CiAgICAgICRvcGVyYXRvciA9ICRwYXJhbXNbJ3NyY2hvcCddID8/ICdMSUtFJzsKICAgICAgJG9wZXJhdG9yID0gc3RydG91cHBlciggdHJpbSgkb3BlcmF0b3IpICk7CiAgICAgICRvcGVyYXRvciA9IGluX2FycmF5KCRvcGVyYXRvciwgJG9wZXJhdG9ycykgPyAkb3BlcmF0b3IgOiAnPSc7CiAgICAgIAogICAgICAkdGhpcy0+QXBwZW5kVG8oCiAgICAgICAgcGFyZW50OjpWQVJUWVBFX1dIRVJFLAogICAgICAgICcoQS50aXRsZSAnIC4gJG9wZXJhdG9yIC4gJyA/IE9SIEEuaXRlbV9pZCBJTiAoU0VMRUNUIEMuaXRlbV9pZCBGUk9NICcKICAgICAgICAuICR0aGlzLT5fbW9kX2FsaWFzKCkgLiAnX2ZpZWxkdmFsIEMgV0hFUkUgQy52YWx1ZSAnIC4gJG9wZXJhdG9yIC4gJyA/KSknCiAgICAgICk7CiAgICAgIAogICAgICBpZigkb3BlcmF0b3IgPT09ICdMSUtFJykKICAgICAgewogICAgICAgICR0aGlzLT5BcHBlbmRUbyhwYXJlbnQ6OlZBUlRZUEVfUVBBUkFNUywgJyUnLnRyaW0oJHN0cikuJyUnKTsKICAgICAgICAkdGhpcy0+QXBwZW5kVG8ocGFyZW50OjpWQVJUWVBFX1FQQVJBTVMsICclJy50cmltKCRzdHIpLiclJyk7CiAgICAgIH0KICAgICAgZWxzZQogICAgICB7CiAgICAgICAgJHRoaXMtPkFwcGVuZFRvKHBhcmVudDo6VkFSVFlQRV9RUEFSQU1TLCB0cmltKCRzdHIpKTsKICAgICAgICAkdGhpcy0+QXBwZW5kVG8ocGFyZW50OjpWQVJUWVBFX1FQQVJBTVMsIHRyaW0oJHN0cikpOwogICAgICB9CiAgICAgIAogICAgfSAvLyBlbmQgb2Ygc2VhcmNoCiAgICAKICAgIC8qCiAgICAgKiBGSUxURVI6IE1PTlRIICYgWUVBUgogICAgICovCiAgICAKICAgICMgb2xkIG1ldGhvZCBkZXByZWNhdGVkCiAgICAkb2xkZmlsdGVydXNlZCA9IEZBTFNFOwogICAgCiAgICBpZigKICAgICAgIWVtcHR5KCRwYXJhbXNbJ2ZpbHRlcl9tb250aCddKQogICAgICB8fCAhZW1wdHkoJHBhcmFtc1snZmlsdGVyX3llYXInXSkKICAgICkKICAgIHsKICAgICAgJG9sZGZpbHRlcnVzZWQgPSBUUlVFOwogICAgICAkeWVhciA9ICFlbXB0eSgkcGFyYW1zWydmaWx0ZXJfeWVhciddKSA/IChpbnQpJHBhcmFtc1snZmlsdGVyX3llYXInXSA6IGRhdGUoJ1knKTsKICAgICAgCiAgICAgICRzdGFydF9tb250aCA9ICFlbXB0eSgkcGFyYW1zWydmaWx0ZXJfbW9udGgnXSkgPyAoaW50KSRwYXJhbXNbJ2ZpbHRlcl9tb250aCddIDogMTsKICAgICAgJGVuZF9tb250aCA9ICFlbXB0eSgkcGFyYW1zWydmaWx0ZXJfbW9udGgnXSkgPyAoaW50KSRwYXJhbXNbJ2ZpbHRlcl9tb250aCddIDogMTI7CiAgICAgIAogICAgICAkc3RhcnRfZGF5ID0gMTsKICAgICAgJGVuZF9kYXkgPSAhZW1wdHkoJHBhcmFtc1snZmlsdGVyX21vbnRoJ10pID8gZGF0ZSggJ3QnLCBta3RpbWUoMCwgMCwgMCwgJHN0YXJ0X21vbnRoLCAkc3RhcnRfZGF5LCAkeWVhcikgKSA6IDMxOwogICAgICAKICAgICAgJHRpbWVzdGFtcDEgPSBta3RpbWUoMCwgMCwgMCwgJHN0YXJ0X21vbnRoLCAkc3RhcnRfZGF5LCAkeWVhcik7CiAgICAgICR0aW1lc3RhbXAxID0gJGRiLT5EYlRpbWVTdGFtcCgkdGltZXN0YW1wMSk7CiAgICAgIAogICAgICAkdGltZXN0YW1wMiA9IG1rdGltZSgyMywgNTksIDAsICRlbmRfbW9udGgsICRlbmRfZGF5LCAkeWVhcik7CiAgICAgICR0aW1lc3RhbXAyID0gJGRiLT5EYlRpbWVTdGFtcCgkdGltZXN0YW1wMik7CiAgICAgIAogICAgICAkdGhpcy0+QXBwZW5kVG8ocGFyZW50OjpWQVJUWVBFX1dIRVJFLCAiKEEuY3JlYXRlX3RpbWUgQkVUV0VFTiAkdGltZXN0YW1wMSBBTkQgJHRpbWVzdGFtcDIpIik7CiAgICAgIAogICAgfSAvLyBlbmQgb2YgZmlsdGVyX3llYXIKICAgIAogICAgLyoKICAgICAqIEZJTFRFUjogTU9OVEggJiBZRUFSIC0+IE5FVyBNRVRIT0QKICAgICAqLwogICAgCiAgICBpZighJG9sZGZpbHRlcnVzZWQpICMgdGhpcyBjaGVjayB3aWxsIGJlIHJlbW92ZWQgd2l0aCB0aGUgZGVwcmVjYXRlZCBjb2RlIGFib3ZlIHJlbW92YWwKICAgIHsKICAgICAgaWYoCiAgICAgICAgIWVtcHR5KCRwYXJhbXNbJ3hmX3N0YXJ0ZGF5J10pCiAgICAgICAgfHwgIWVtcHR5KCRwYXJhbXNbJ3hmX3N0YXJ0bW9udGgnXSkKICAgICAgICB8fCAhZW1wdHkoJHBhcmFtc1sneGZfc3RhcnR5ZWFyJ10pCiAgICAgICAgfHwgIWVtcHR5KCRwYXJhbXNbJ3hmX2VuZGRheSddKQogICAgICAgIHx8ICFlbXB0eSgkcGFyYW1zWyd4Zl9lbmRtb250aCddKQogICAgICAgIHx8ICFlbXB0eSgkcGFyYW1zWyd4Zl9lbmR5ZWFyJ10pCiAgICAgICkKICAgICAgewogICAgICAgICRzdGFydF95ZWFyID0gIWVtcHR5KCRwYXJhbXNbJ3hmX3N0YXJ0eWVhciddKSA/IChpbnQpJHBhcmFtc1sneGZfc3RhcnR5ZWFyJ10gOiBkYXRlKCdZJyk7CiAgICAgICAgJGVuZF95ZWFyID0gIWVtcHR5KCRwYXJhbXNbJ3hmX2VuZHllYXInXSkgPyAoaW50KSRwYXJhbXNbJ3hmX2VuZHllYXInXSA6IGRhdGUoJ1knKTsKICAgICAgICAKICAgICAgICAkc3RhcnRfbW9udGggPSAhZW1wdHkoJHBhcmFtc1sneGZfc3RhcnRtb250aCddKSA/IChpbnQpJHBhcmFtc1sneGZfc3RhcnRtb250aCddIDogIGRhdGUoJ20nKTsKICAgICAgICAkZW5kX21vbnRoID0gIWVtcHR5KCRwYXJhbXNbJ3hmX2VuZG1vbnRoJ10pID8gKGludCkkcGFyYW1zWyd4Zl9lbmRtb250aCddIDogZGF0ZSgnbScpOwogICAgICAgIAogICAgICAgICRzdGFydF9kYXkgPSAhZW1wdHkoJHBhcmFtc1sneGZfc3RhcnRkYXknXSkgPyAoaW50KSRwYXJhbXNbJ3hmX3N0YXJ0ZGF5J10gOiAgZGF0ZSgnZCcpOwogICAgICAgICRlbmRfZGF5ID0gIWVtcHR5KCRwYXJhbXNbJ3hmX2VuZGRheSddKSA/IChpbnQpJHBhcmFtc1sneGZfZW5kZGF5J10gOiBkYXRlKCdkJyk7CiAgICAgICAgCiAgICAgICAgJHN0YXJ0dGltZSA9IG1rdGltZSgwLCAwLCAwLCAkc3RhcnRfbW9udGgsICRzdGFydF9kYXksICRzdGFydF95ZWFyKTsKICAgICAgICAkdGltZXN0YW1wMSA9ICRkYi0+RGJUaW1lU3RhbXAoJHN0YXJ0dGltZSk7CiAgICAgICAgCiAgICAgICAgJGVuZHRpbWUgPSBta3RpbWUoMjMsIDU5LCA1OSwgJGVuZF9tb250aCwgJGVuZF9kYXksICRlbmRfeWVhcik7CiAgICAgICAgJHRpbWVzdGFtcDIgPSAkZGItPkRiVGltZVN0YW1wKCRlbmR0aW1lKTsKICAgICAgICAKICAgICAgICAkdGhpcy0+QXBwZW5kVG8ocGFyZW50OjpWQVJUWVBFX1dIRVJFLCAiKEEuY3JlYXRlX3RpbWUgQkVUV0VFTiAkdGltZXN0YW1wMSBBTkQgJHRpbWVzdGFtcDIpIik7CiAgICAgIH0KICAgIH0KICAgIAogICAgLyoKICAgICAqIFRJTUUgQ09OVFJPTAogICAgICovCiAgICBpZighaXNzZXQoJHBhcmFtc1snc2hvd2FsbCddKSkKICAgIHsKICAgICAgJHRoaXMtPkFwcGVuZFRvKAogICAgICAgIHBhcmVudDo6VkFSVFlQRV9XSEVSRSwKICAgICAgICAnKHN0YXJ0X3RpbWUgSVMgTlVMTCBPUiBUSU1FU1RBTVBESUZGKERBWSwgQ1VSREFURSgpLCBzdGFydF90aW1lKSA8PSAwKQogICAgICAgICAgICAgICAgICAgICAgQU5EIChlbmRfdGltZSBJUyBOVUxMIE9SIFRJTUVTVEFNUERJRkYoREFZLCBlbmRfdGltZSwgQ1VSREFURSgpKSA8PSAwKScKICAgICAgKTsKICAgIH0KICAgIAogICAgLyoKICAgICAqIFNFQVJDSF8qCiAgICAgKiBPbGQgbWV0aG9kOiBkZXByZWNhdGVkCiAgICAgKi8KICAgICRvbGRzZWFyY2h1c2VkID0gRkFMU0U7CiAgICAkc2VhcmNoX2NsYXVzZSA9ICJBLml0ZW1faWQgSU4KCQkJCQkJCSAgICAgICAoU0VMRUNUIEMuaXRlbV9pZCBGUk9NICIKICAgICAgICAgICAgICAgICAgICAgLiAkdGhpcy0+X21vZF9hbGlhcygpIC4gIl9maWVsZHZhbCBDLCAiCiAgICAgICAgICAgICAgICAgICAgIC4gJHRoaXMtPl9tb2RfYWxpYXMoKSAuICJfZmllbGRkZWYgRAogICAgICAgICAgICAgICAgICAgICAgV0hFUkUgQy5maWVsZGRlZl9pZCA9IEQuZmllbGRkZWZfaWQKICAgICAgICAgICAgICAgICAgICAgIEFORCBELmFsaWFzID0gPyI7CiAgICAKICAgICRmaWVsZGRlZnMgICAgID0gJG1vZC0+R2V0RmllbGREZWZzKCk7CiAgICAKICAgIGZvcmVhY2goJGZpZWxkZGVmcyBhcyAkZmllbGRkZWYpCiAgICB7CiAgICAgIGlmKCAhZW1wdHkoJHBhcmFtc1snc2VhcmNoXycgLiAkZmllbGRkZWYtPkdldEFsaWFzKCldKSApCiAgICAgIHsKICAgICAgICAkb2xkc2VhcmNodXNlZCA9IFRSVUU7CiAgICAgICAgJHRoaXNwYXJhbSA9ICRwYXJhbXNbJ3NlYXJjaF8nIC4gJGZpZWxkZGVmLT5HZXRBbGlhcygpXTsKICAgICAgICAkdGhpcy0+QXBwZW5kVG8ocGFyZW50OjpWQVJUWVBFX1FQQVJBTVMsICRmaWVsZGRlZi0+R2V0QWxpYXMoKSk7CiAgICAgICAgCiAgICAgICAgJHRoaXNvciA9IGFycmF5KCk7CiAgICAgICAgCiAgICAgICAgZm9yZWFjaCgoYXJyYXkpJHRoaXNwYXJhbSBhcyAkdGhpc3ZhbHVlKQogICAgICAgIHsKICAgICAgICAgICR0aGlzb3JbXSA9ICdDLnZhbHVlID0gPyc7CiAgICAgICAgICAkdGhpcy0+QXBwZW5kVG8ocGFyZW50OjpWQVJUWVBFX1FQQVJBTVMsICR0aGlzdmFsdWUpOwogICAgICAgIH0KICAgICAgICAKICAgICAgICAkdGhpcy0+QXBwZW5kVG8oCiAgICAgICAgICBwYXJlbnQ6OlZBUlRZUEVfV0hFUkUsCiAgICAgICAgICAkc2VhcmNoX2NsYXVzZQogICAgICAgICAgLiAnIEFORCAnCiAgICAgICAgICAuIGltcGxvZGUoJyBPUiAnLCAkdGhpc29yKSAuICcpJwogICAgICAgICk7CiAgICAgIH0KICAgIH0KICAgIAogICAgLyoKICAgICAqIHhzXyogcmVwbGFjZXMgU0VBUkNIXyoqCiAgICAgKgogICAgICogZXh0cmEgcGFyYW1zIHRvIGRvIHdpdGggcmFuZ2VzCiAgICAgKiB4c3JzdGFydF8KICAgICAqIHhzcmVuZF8KICAgICAqIHhzcm1vZGVfCiAgICAgKi8KICAgIGlmKCEkb2xkc2VhcmNodXNlZCkgIyB0aGlzIGNoZWNrIHdpbGwgYmUgcmVtb3ZlZCB3aXRoIHRoZSBkZXByZWNhdGVkIGNvZGUgYWJvdmUgcmVtb3ZhbAogICAgewogICAgICAkbW9kZXMgPSBhcnJheSgnaW5jJywgJ2V4YycpOwogICAgICAKICAgICAgLy8gaGFuZGxlIGFsaWFzIGFuZCBvciB0aXRsZQogIAogICAgICAkc2VhcmNoX2NvbHMgPSBbJ3RpdGxlJywgJ2FsaWFzJ107CiAgCiAgICAgIGZvcmVhY2goJHNlYXJjaF9jb2xzIGFzICRvbmVfY29sKQogICAgICB7CiAgICAgICAgJHNlYXJjaF9jbGF1c2UgPSAnQS5pdGVtX2lkIElOCiAgICAgICAgICAgIChTRUxFQ1QgaXRlbV9pZCBGUk9NICcgLiBjbXNfZGJfcHJlZml4KCkgLiAnbW9kdWxlXycgLiAkbW9kLT5fR2V0TW9kdWxlQWxpYXMoKSAuICdfaXRlbQogICAgICAgICAgICAgICAgV0hFUkUgJzsKICAgICAgICAKICAgICAgICBpZiggIWVtcHR5KCRwYXJhbXNbJ3hzcnN0YXJ0XycgLiAkb25lX2NvbF0pIHx8ICFlbXB0eSgkcGFyYW1zWyd4c3JlbmRfJyAuICRvbmVfY29sXSkgKQogICAgICAgIHsKICAgICAgICAgICRyYW5nZV9zdGFydCA9ICRwYXJhbXNbJ3hzcnN0YXJ0XycgLiAkb25lX2NvbF0gPz8gTlVMTDsKICAgICAgICAgICRyYW5nZV9lbmQgICA9ICRwYXJhbXNbJ3hzcmVuZF8nIC4gJG9uZV9jb2xdID8/IE5VTEw7CiAgICAgICAgICAkdGhpc21vZGUgICAgPSAkcGFyYW1zWyd4c3Jtb2RlXycgLiAkb25lX2NvbF0gPz8gJ2luYyc7CiAgICAgICAgICAkdGhpc21vZGUgICAgPSBpbl9hcnJheSgkdGhpc21vZGUsICRvcGVyYXRvcnMsIFRSVUUpID8gJG1vZGVzIDogJ2luYyc7CiAgICAgICAgICAkX2kgICAgICAgICAgPSAneHNpb18nIC4gJG9uZV9jb2w7CiAgICAgICAgICAkdGhpc2lvICAgICAgPSBpc3NldCgkcGFyYW1zWyRfaV0pID8gc3RydG9sb3dlcigkcGFyYW1zWyRfaV0pIDogJ2knOwogICAgICAgICAgCiAgICAgICAgICBpZigkdGhpc21vZGUgPT09ICdpbmMnKQogICAgICAgICAgewogICAgICAgICAgICBpZiggIWlzX251bGwoJHJhbmdlX3N0YXJ0KSAmJiAgIWlzX251bGwoJHJhbmdlX2VuZCkgKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgJG5vdCA9ICgkdGhpc2lvID09PSAnbycpID8gOiAnJzsKICAgICAgICAgICAgICAkd2hlcmVfc3RyID0gJG9uZV9jb2wgLiAnICcgLiAgJG5vdCAuICcgQkVUV0VFTiA/IEFORCA/JzsKICAgICAgICAgICAgICAkdGhpcy0+QXBwZW5kVG8ocGFyZW50OjpWQVJUWVBFX1FQQVJBTVMsICRyYW5nZV9zdGFydCk7CiAgICAgICAgICAgICAgJHRoaXMtPkFwcGVuZFRvKHBhcmVudDo6VkFSVFlQRV9RUEFSQU1TLCAkcmFuZ2VfZW5kKTsKICAgICAgICAgICAgfQogICAgICAgICAgICBlbHNlIGlmKCFpc19udWxsKCRyYW5nZV9zdGFydCkpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAkb3AgPSAoJHRoaXNpbyA9PT0gJ2knKSA/ICc+PScgOiAnPCc7CiAgICAgICAgICAgICAgJHdoZXJlX3N0ciA9ICRvbmVfY29sIC4gJyAnIC4gJG9wIC4gJyA/JzsKICAgICAgICAgICAgICAkdGhpcy0+QXBwZW5kVG8ocGFyZW50OjpWQVJUWVBFX1FQQVJBTVMsICRyYW5nZV9zdGFydCk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgZWxzZSBpZighaXNfbnVsbCgkcmFuZ2VfZW5kKSkKICAgICAgICAgICAgewogICAgICAgICAgICAgICRvcCA9ICgkdGhpc2lvID09PSAnaScpID8gJzw9JyA6ICc+JzsKICAgICAgICAgICAgICAkd2hlcmVfc3RyID0gJG9uZV9jb2wgLiAnICcgLiAkb3AgLiAnID8nOwogICAgICAgICAgICAgICR0aGlzLT5BcHBlbmRUbyhwYXJlbnQ6OlZBUlRZUEVfUVBBUkFNUywgJHJhbmdlX2VuZCk7CiAgICAgICAgICAgIH0KICAgICAgICAgIH0KICAgICAgICAgIGVsc2UgaWYoJHRoaXNtb2RlID09PSAnZXhjJykKICAgICAgICAgIHsKICAgICAgICAgICAgaWYoICFpc19udWxsKCRyYW5nZV9zdGFydCkgJiYgICFpc19udWxsKCRyYW5nZV9lbmQpICkKICAgICAgICAgICAgewogICAgICAgICAgICAgICRub3QgPSAoJHRoaXNpbyA9PT0gJ28nKSA/IDogJyc7CiAgICAgIAogICAgICAgICAgICAgIGlmKCRub3QpCiAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgJHdoZXJlX3N0ciA9ICdOT1QgKCAnIC4gJG9uZV9jb2wgLiAnID4gPyBBTkQgICcgLiAkb25lX2NvbCAuICcgPCA/KSc7CiAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIGVsc2UKICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAkd2hlcmVfc3RyID0gJG9uZV9jb2wgLiAnID4gPyBBTkQgJyAuICRvbmVfY29sIC4gJyA8ID8nOwogICAgICAgICAgICAgIH0KICAgICAgCiAgICAgICAgICAgICAgJHRoaXMtPkFwcGVuZFRvKHBhcmVudDo6VkFSVFlQRV9RUEFSQU1TLCAkcmFuZ2Vfc3RhcnQpOwogICAgICAgICAgICAgICR0aGlzLT5BcHBlbmRUbyhwYXJlbnQ6OlZBUlRZUEVfUVBBUkFNUywgJHJhbmdlX2VuZCk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgZWxzZSBpZighaXNfbnVsbCgkcmFuZ2Vfc3RhcnQpKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgJG9wID0gKCR0aGlzaW8gPT09ICdpJykgPyAnPicgOiAnPD0nOwogICAgICAgICAgICAgICR3aGVyZV9zdHIgPSAkb25lX2NvbCAuICcgJyAuICRvcCAuICcgPyc7CiAgICAgICAgICAgICAgJHRoaXMtPkFwcGVuZFRvKHBhcmVudDo6VkFSVFlQRV9RUEFSQU1TLCAkcmFuZ2Vfc3RhcnQpOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGVsc2UgaWYoIWlzX251bGwoJHJhbmdlX2VuZCkpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAkb3AgPSAoJHRoaXNpbyA9PT0gJ2knKSA/ICc8JyA6ICc+PSc7CiAgICAgICAgICAgICAgJHdoZXJlX3N0ciA9ICRvbmVfY29sIC4gJyAnIC4gJG9wIC4gJyA/JzsKICAgICAgICAgICAgICAkdGhpcy0+QXBwZW5kVG8ocGFyZW50OjpWQVJUWVBFX1FQQVJBTVMsICRyYW5nZV9lbmQpOwogICAgICAgICAgICB9CiAgICAgICAgICB9CiAgCiAgICAgICAgICAkdGhpcy0+QXBwZW5kVG8ocGFyZW50OjpWQVJUWVBFX1dIRVJFLCAkc2VhcmNoX2NsYXVzZSAuICR3aGVyZV9zdHIgLiAgJyknKTsKICAgICAgICB9CiAgICAgICAgZWxzZSAvLyBubyByYW5nZXMKICAgICAgICB7CiAgICAgICAgICAkdGhpc29wZXJhdG9yID0gJHBhcmFtc1sneHNvXycgLiAkb25lX2NvbF0gPz8gJ0xJS0UnOwogICAgICAgICAgJHRoaXNvcGVyYXRvciA9IHN0cnRvdXBwZXIodHJpbSgkdGhpc29wZXJhdG9yKSk7CiAgICAgICAgICAkdGhpc29wZXJhdG9yID0gaW5fYXJyYXkoJHRoaXNvcGVyYXRvciwgJG9wZXJhdG9ycykgPyAkdGhpc29wZXJhdG9yIDogJz0nOwogICAgICAgICAgCiAgICAgICAgICBpZighZW1wdHkoJHBhcmFtc1sneHNfJyAuICRvbmVfY29sXSkpCiAgICAgICAgICB7CiAgICAgICAgICAgICR0aGlzcGFyYW0gPSAkcGFyYW1zWyd4c18nIC4gJG9uZV9jb2xdOwogICAgICAgICAgICAkd2hlcmVfc3RyID0gJG9uZV9jb2wgLiAnICcgLiAkdGhpc29wZXJhdG9yIC4gJyA/JzsKICAKICAgICAgICAgICAgaWYoJHRoaXNvcGVyYXRvciA9PT0gJ0xJS0UnKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgJHRoaXMtPkFwcGVuZFRvKHBhcmVudDo6VkFSVFlQRV9RUEFSQU1TLCAnJScgLiB0cmltKCR0aGlzcGFyYW0pIC4gJyUnKTsKICAgICAgICAgICAgfQogICAgICAgICAgICBlbHNlCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAkdGhpcy0+QXBwZW5kVG8ocGFyZW50OjpWQVJUWVBFX1FQQVJBTVMsIHRyaW0oJHRoaXNwYXJhbSkpOwogICAgICAgICAgICB9CiAgCiAgICAgICAgICAgICR0aGlzLT5BcHBlbmRUbyhwYXJlbnQ6OlZBUlRZUEVfV0hFUkUsICRzZWFyY2hfY2xhdXNlIC4gJHdoZXJlX3N0ciAuICAnKScpOwogICAgICAgICAgfQogICAgICAgIH0KICAgICAgfQogIAogICAgICAvLyBoYW5kbGUgZmllbGRkZWZzCiAgICAgICRzZWFyY2hfY2xhdXNlID0gIkEuaXRlbV9pZCBJTgoJCQkJCQkJICAgICAgIChTRUxFQ1QgQy5pdGVtX2lkIEZST00gIgogICAgICAgICAgICAgICAgICAgICAgIC4gJHRoaXMtPl9tb2RfYWxpYXMoKSAuICJfZmllbGR2YWwgQywgIgogICAgICAgICAgICAgICAgICAgICAgIC4gJHRoaXMtPl9tb2RfYWxpYXMoKSAuICJfZmllbGRkZWYgRAogICAgICAgICAgICAgICAgICAgICAgV0hFUkUgQy5maWVsZGRlZl9pZCA9IEQuZmllbGRkZWZfaWQKICAgICAgICAgICAgICAgICAgICAgIEFORCBELmFsaWFzID0gPyI7CiAgICAgIAogICAgICAkZmllbGRkZWZzID0gJG1vZC0+R2V0RmllbGREZWZzKCk7CiAgICAgIAogICAgICBmb3JlYWNoKCRmaWVsZGRlZnMgYXMgJGZpZWxkZGVmKQogICAgICB7CiAgICAgICAgJHMgICA9ICd4c3JzdGFydF8nIC4gJGZpZWxkZGVmLT5HZXRBbGlhcygpOwogICAgICAgICRlICAgPSAneHNyZW5kXycgLiAkZmllbGRkZWYtPkdldEFsaWFzKCk7CiAgICAgICAgJG0gICA9ICd4c3Jtb2RlXycgLiAkZmllbGRkZWYtPkdldEFsaWFzKCk7CiAgICAgICAgJGlvICA9ICd4c2lvXycgLiAkZmllbGRkZWYtPkdldEFsaWFzKCk7CiAgICAgICAgCiAgICAgICAgaWYoICFlbXB0eSgkcGFyYW1zWyRzXSkgfHwgIWVtcHR5KCRwYXJhbXNbJGVdKSApCiAgICAgICAgewogICAgICAgICAgJHRoaXMtPkFwcGVuZFRvKCBwYXJlbnQ6OlZBUlRZUEVfUVBBUkFNUywgJGZpZWxkZGVmLT5HZXRBbGlhcygpICk7CiAgICAgICAgICAkdGhpc29yICAgICAgPSBbXTsKICAgICAgICAgICRyYW5nZV9zdGFydCA9ICRwYXJhbXNbJHNdID8/IE5VTEw7CiAgICAgICAgICAkcmFuZ2VfZW5kICAgPSAkcGFyYW1zWyRlXSA/PyBOVUxMOwogICAgICAgICAgJHRoaXNtb2RlICAgID0gJHBhcmFtc1skbV0gPz8gJ2luYyc7CiAgICAgICAgICAkdGhpc21vZGUgICAgPSBpbl9hcnJheSgkdGhpc21vZGUsICRvcGVyYXRvcnMsIEZBTFNFKSA/ICRtb2RlcyA6ICdpbmMnOwogICAgICAgICAgJHRoaXNpbyAgICAgID0gaXNzZXQoJHBhcmFtc1skaW9dKSA/IHN0cnRvbG93ZXIoJHBhcmFtc1skaW9dKSA6ICdpJzsKICAgICAgICAgIAogICAgICAgICAgaWYoJHRoaXNtb2RlID09PSAnaW5jJykKICAgICAgICAgIHsKICAgICAgICAgICAgaWYoICFpc19udWxsKCRyYW5nZV9zdGFydCkgJiYgICFpc19udWxsKCRyYW5nZV9lbmQpICkKICAgICAgICAgICAgewogICAgICAgICAgICAgICRub3QgPSAoJHRoaXNpbyA9PT0gJ28nKSA/IDogJyc7CiAgICAgICAgICAgICAgJHRoaXNvcltdID0gJ0MudmFsdWUgJyAuICRub3QgLiAnIEJFVFdFRU4gPyBBTkQgPyc7CiAgICAgICAgICAgICAgJHRoaXMtPkFwcGVuZFRvKHBhcmVudDo6VkFSVFlQRV9RUEFSQU1TLCAkcmFuZ2Vfc3RhcnQpOwogICAgICAgICAgICAgICR0aGlzLT5BcHBlbmRUbyhwYXJlbnQ6OlZBUlRZUEVfUVBBUkFNUywgJHJhbmdlX2VuZCk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgZWxzZSBpZighaXNfbnVsbCgkcmFuZ2Vfc3RhcnQpKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgJG9wID0gKCR0aGlzaW8gPT09ICdpJykgPyAnPj0nIDogJzwnOwogICAgICAgICAgICAgICR0aGlzb3JbXSA9ICdDLnZhbHVlICcgLiAkb3AgLiAnID8nOwogICAgICAgICAgICAgICR0aGlzLT5BcHBlbmRUbyhwYXJlbnQ6OlZBUlRZUEVfUVBBUkFNUywgJHJhbmdlX3N0YXJ0KTsKICAgICAgICAgICAgfQogICAgICAgICAgICBlbHNlIGlmKCFpc19udWxsKCRyYW5nZV9lbmQpKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgJG9wID0gKCR0aGlzaW8gPT09ICdpJykgPyAnPD0nIDogJz4nOwogICAgICAgICAgICAgICR0aGlzb3JbXSA9ICdDLnZhbHVlICcgLiAkb3AgLiAnID8nOwogICAgICAgICAgICAgICR0aGlzLT5BcHBlbmRUbyhwYXJlbnQ6OlZBUlRZUEVfUVBBUkFNUywgJHJhbmdlX2VuZCk7CiAgICAgICAgICAgIH0KICAgICAgICAgIH0KICAgICAgICAgIGVsc2UgaWYoJHRoaXNtb2RlID09PSAnZXhjJykKICAgICAgICAgIHsKICAgICAgICAgICAgaWYoICFpc19udWxsKCRyYW5nZV9zdGFydCkgJiYgICFpc19udWxsKCRyYW5nZV9lbmQpICkKICAgICAgICAgICAgewogICAgICAgICAgICAgICRub3QgPSAoJHRoaXNpbyA9PT0gJ28nKSA/IDogJyc7CiAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgaWYoJG5vdCkKICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAkdGhpc29yW10gPSAnTk9UIChDLnZhbHVlID4gPyBBTkQgQy52YWx1ZSA8ID8pJzsKICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgZWxzZQogICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICR0aGlzb3JbXSA9ICdDLnZhbHVlID4gPyBBTkQgQy52YWx1ZSA8ID8nOwogICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAKICAgICAgICAgICAgICAkdGhpcy0+QXBwZW5kVG8ocGFyZW50OjpWQVJUWVBFX1FQQVJBTVMsICRyYW5nZV9zdGFydCk7CiAgICAgICAgICAgICAgJHRoaXMtPkFwcGVuZFRvKHBhcmVudDo6VkFSVFlQRV9RUEFSQU1TLCAkcmFuZ2VfZW5kKTsKICAgICAgICAgICAgfQogICAgICAgICAgICBlbHNlIGlmKCFpc19udWxsKCRyYW5nZV9zdGFydCkpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAkb3AgPSAoJHRoaXNpbyA9PT0gJ2knKSA/ICc+JyA6ICc8PSc7CiAgICAgICAgICAgICAgJHRoaXNvcltdID0gJ0MudmFsdWUgJyAuICRvcCAuICcgPyc7CiAgICAgICAgICAgICAgJHRoaXMtPkFwcGVuZFRvKHBhcmVudDo6VkFSVFlQRV9RUEFSQU1TLCAkcmFuZ2Vfc3RhcnQpOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGVsc2UgaWYoIWlzX251bGwoJHJhbmdlX2VuZCkpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAkb3AgPSAoJHRoaXNpbyA9PT0gJ2knKSA/ICc8JyA6ICc+PSc7CiAgICAgICAgICAgICAgJHRoaXNvcltdID0gJ0MudmFsdWUgJyAuICRvcCAuICcgPyc7CiAgICAgICAgICAgICAgJHRoaXMtPkFwcGVuZFRvKHBhcmVudDo6VkFSVFlQRV9RUEFSQU1TLCAkcmFuZ2VfZW5kKTsKICAgICAgICAgICAgfQogICAgICAgICAgfQogICAgICAgICAgCiAgICAgICAgICAkdGhpcy0+QXBwZW5kVG8oCiAgICAgICAgICAgIHBhcmVudDo6VkFSVFlQRV9XSEVSRSwKICAgICAgICAgICAgJHNlYXJjaF9jbGF1c2UKICAgICAgICAgICAgLiAnIEFORCAnCiAgICAgICAgICAgIC4gaW1wbG9kZSgnIE9SICcsICR0aGlzb3IpIC4gJyknCiAgICAgICAgICApOwogICAgICAgICAgCiAgICAgICAgfQogICAgICAgIGVsc2UKICAgICAgICB7CiAgICAgICAgICAKICAgICAgICAgIGlmKCAhZW1wdHkoJHBhcmFtc1sneHNfJyAuICRmaWVsZGRlZi0+R2V0QWxpYXMoKV0pICkKICAgICAgICAgIHsKICAgICAgICAgICAgJHRoaXMtPkFwcGVuZFRvKCBwYXJlbnQ6OlZBUlRZUEVfUVBBUkFNUywgJGZpZWxkZGVmLT5HZXRBbGlhcygpICk7CiAgICAgICAgICAgICR0aGlzb3IgICAgICAgPSBbXTsKICAgICAgICAgICAgJHRoaXNwYXJhbSAgICA9ICRwYXJhbXNbJ3hzXycgLiAkZmllbGRkZWYtPkdldEFsaWFzKCldOwogICAgICAgICAgICAkdGhpc29wZXJhdG9yID0gJHBhcmFtc1sneHNvXycgLiAkZmllbGRkZWYtPkdldEFsaWFzKCldID8/ICc9JzsKICAgICAgICAgICAgJHRoaXNvcGVyYXRvciA9IHN0cnRvdXBwZXIodHJpbSgkdGhpc29wZXJhdG9yKSk7CiAgICAgICAgICAgICR0aGlzb3BlcmF0b3IgPSBpbl9hcnJheSgkdGhpc29wZXJhdG9yLCAkb3BlcmF0b3JzKSA/ICR0aGlzb3BlcmF0b3IgOiAnPSc7CiAgCiAgICAgICAgICAgIGZvcmVhY2goIChhcnJheSkkdGhpc3BhcmFtIGFzICR0aGlzdmFsdWUgKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgJHRoaXNvcltdID0gJ0MudmFsdWUgJyAuICR0aGlzb3BlcmF0b3IgLiAnID8nOwogICAgICAgICAgICAgICR0aGlzLT5BcHBlbmRUbyhwYXJlbnQ6OlZBUlRZUEVfUVBBUkFNUywgJHRoaXN2YWx1ZSk7CiAgICAgICAgICAgIH0KICAgIAogICAgICAgICAgICAkdGhpcy0+QXBwZW5kVG8ocGFyZW50OjpWQVJUWVBFX1dIRVJFLCAkc2VhcmNoX2NsYXVzZSAuICcgQU5EICcgLiBpbXBsb2RlKCcgT1IgJywgJHRoaXNvcikgLiAnKScpOwogICAgICAgICAgfQogICAgICAgIH0KICAgICAgfQogICAgfQogIH0KICAKICAvKioKICAgKiBAdGhyb3dzIFxMSVNFXEV4Y2VwdGlvbgogICAqIEB0aHJvd3MgXEV4Y2VwdGlvbgogICAqLwogIHByb3RlY3RlZCBmdW5jdGlvbiBfcXVlcnkoKSA6IHZvaWQKICB7CiAgICAkZGIgICAgICAgICAgPSAkdGhpcy0+R2V0RGIoKTsKICAgICRtb2QgICAgICAgICA9ICR0aGlzLT5HZXRNb2R1bGVJbnN0YW5jZSgpOwogICAgJHBhcmFtcyAgICAgID0gJHRoaXMtPkdldFBhcmFtcygpOwogICAgLy8kb3JkZXJfY29scyAgPSBbXTsgIyBub3QgdXNlZCBoZXJlPwogICAgLy8kY3VzdG9tX2NvbHMgPSBbXTsgIyBub3QgdXNlZCBoZXJlPwogIAogICAgJHRoaXMtPl9hcHBlbmRfaW50ZXJuYWwoKTsKICAgIAogICAgLy8gSW5pdCBxdWVyeQogICAgJHRoaXMtPnF1ZXJ5ID0gJ1NFTEVDVCBBLiogRlJPTSAnCiAgICAgICAgICAgICAgICAgICAuICR0aGlzLT5fbW9kX2FsaWFzKCkKICAgICAgICAgICAgICAgICAgIC4gJ19pdGVtIEEgTEVGVCBKT0lOICcKICAgICAgICAgICAgICAgICAgIC4gJHRoaXMtPl9tb2RfYWxpYXMoKQogICAgICAgICAgICAgICAgICAgLiAnX2l0ZW1fY2F0ZWdvcmllcyBJQiBPTiBBLml0ZW1faWQgPSBJQi5pdGVtX2lkIExFRlQgSk9JTiAnCiAgICAgICAgICAgICAgICAgICAuICR0aGlzLT5fbW9kX2FsaWFzKCkKICAgICAgICAgICAgICAgICAgIC4gJ19jYXRlZ29yeSBCCU9OIElCLmNhdGVnb3J5X2lkID0gQi5jYXRlZ29yeV9pZCAnOwogICAgCiAgICAvLyBNZXJnZSBldmVyeXRoaW5nIHRvIG9uZSBxdWVyeQogICAgaWYoIGNvdW50KCR0aGlzLT5qb2lucykgKQogICAgewogICAgICAkdGhpcy0+cXVlcnkgLj0gaW1wbG9kZSgnICcsICR0aGlzLT5qb2lucyk7CiAgICB9CiAgICAKICAgIGlmKGNvdW50KCR0aGlzLT53aGVyZSkpCiAgICB7CiAgICAgICR0aGlzLT5xdWVyeSAuPSAnIFdIRVJFICcgLiBpbXBsb2RlKCcgQU5EICcsICR0aGlzLT53aGVyZSk7CiAgICB9CiAgICAKICAgICR0aGlzLT5xdWVyeSAuPSAnIEdST1VQIEJZIEEuaXRlbV9pZCAnOwogICAgCiAgICBpZihjb3VudCgkdGhpcy0+b3JkZXJieSkpCiAgICB7CiAgICAgICR0aGlzLT5xdWVyeSAuPSAnIE9SREVSIEJZICcgLiBpbXBsb2RlKCcsICcsICR0aGlzLT5vcmRlcmJ5KTsKICAgIH0KICAgIGVsc2UKICAgIHsKICAgICAgJHRoaXMtPnF1ZXJ5IC49ICcgT1JERVIgQlkgQS5wb3NpdGlvbiAnIC4gJG1vZC0+R2V0UHJlZmVyZW5jZSgnc29ydG9yZGVyJyk7CiAgICB9CiAgICAKICAgIC8vIEluaXQgcGFyYW1zIG5lY2Vzc2FyeSB0byBleGVjdXRpb24KICAgICRwYWdlbnVtYmVyID0gJHRoaXMtPkdldFBhZ2VOdW1iZXIoKTsKICAgICRwYWdlbGltaXQgID0gJHRoaXMtPkdldFBhZ2VMaW1pdCgpOwogICAgCiAgICAjIGZpbmFsIGZpbHRlciAoVE9ETzogcmV2aXNpdC4uLiBpdCBzaG91bGQgbmV2ZXIgYmUgMCBvciBudWxsIGdldHRpbmcgaGVyZSkKICAgICRwYWdlbGltaXQgPSAkcGFnZWxpbWl0IDwgMSA/IDEwMDAwMCA6ICRwYWdlbGltaXQ7CiAgICAKICAgICRzdGFydGVsZW1lbnQgPSAoJHBhZ2VudW1iZXIgLSAxKSAqICRwYWdlbGltaXQ7CiAgICAKICAgICRyZXMgPSAkZGItPkdldEFycmF5KCR0aGlzLT5xdWVyeSwgJHRoaXMtPnFwYXJhbXMpOwogICAgCiAgICBpZiggJHJlcyAhPT0gRkFMU0UgJiYgaXNfYXJyYXkoJHJlcykgKQogICAgewogICAgICAkdGhpcy0+dG90YWxjb3VudCA9IGNvdW50KCRyZXMpOwogICAgfQogICAgZWxzZQogICAgewogICAgICAkdGhpcy0+dG90YWxjb3VudCA9IDA7CiAgICB9CiAgICAKICAgIGlmKGlzc2V0KCRwYXJhbXNbJ3N0YXJ0J10pKQogICAgewogICAgICAkdGhpcy0+dG90YWxjb3VudCAtPSAoaW50KSRwYXJhbXNbJ3N0YXJ0J107CiAgICAgICRzdGFydGVsZW1lbnQgICAgICs9IChpbnQpJHBhcmFtc1snc3RhcnQnXTsKICAgIH0KICAgIAogICAgJHRoaXMtPnBhZ2Vjb3VudCA9IChpbnQpKCR0aGlzLT50b3RhbGNvdW50IC8gJHBhZ2VsaW1pdCk7CiAgICAKICAgIGlmKCAwICE9PSAoJHRoaXMtPnRvdGFsY291bnQgJSAkcGFnZWxpbWl0KSApIHsgJHRoaXMtPnBhZ2Vjb3VudCsrOyB9CiAgICAKICAgICR0aGlzLT5yZXN1bHRzZXQgPSAkZGItPlNlbGVjdExpbWl0KCR0aGlzLT5xdWVyeSwgJHBhZ2VsaW1pdCwgJHN0YXJ0ZWxlbWVudCwgJHRoaXMtPnFwYXJhbXMpOwogICAgCiAgICAjIHN0aWxsIGluIHRlc3RzIC0gbm90IHdvcmtpbmcgYXMgZXhwZWN0ZWQgeWV0IQovLyAgICAkcSA9IG5ldyBRdWVyeSgpOwovLyAgICAkdGhpcy0+cmVzdWx0c2V0ID0gJHEtPlNRTCgkdGhpcy0+cXVlcnkpCi8vICAgICAgICAgICAgICAgICAgICAgICAgICAtPlNldCgkdGhpcy0+cXBhcmFtcykKLy8gICAgICAgICAgICAgICAgICAgICAgICAgIC0+UnVuKCRwYWdlbGltaXQsICRzdGFydGVsZW1lbnQpOwogIH0KICAKICAjLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgIyBDbGFzcyBtZXRob2RzCiAgIy0tLS0tLS0tLS0tLS0tLS0tLS0tLQogIAogIC8qKgogICAqIEBwYXJhbSAkcGFyYW0KICAgKiBAcGFyYW0gJHZhbGlkX2NvbHMKICAgKgogICAqIEByZXR1cm4gYXJyYXl8YXJyYXlbXQogICAqLwogIHByaXZhdGUgc3RhdGljIGZ1bmN0aW9uIGV4cGxvZGVfb3JkZXJieSgkcGFyYW0sICR2YWxpZF9jb2xzKSA6IGFycmF5CiAgewogICAgJG9yZGVyX2NvbHMgID0gW107CiAgICAkY3VzdG9tX2NvbHMgPSBbXTsKICAgICRpbmRleCAgICAgICA9IDA7CiAgICAKICAgIGZvcmVhY2goZXhwbG9kZSgnLCcsICRwYXJhbSkgYXMgJGNvbCkKICAgIHsKICAgICAgJGNvbCAgICAgICA9IHRyaW0oJGNvbCk7CiAgICAgICRjb2xfcGFydHMgPSBleHBsb2RlKCd8JywgJGNvbCk7CiAgCiAgICAgIC8vIGNvbHVtbiBuYW1lCiAgICAgICRjb2xfbmFtZSAgPSAkY29sX3BhcnRzWzBdOwogICAgICAkY29sX29yZGVyID0gJ0FTQyc7CiAgCiAgICAgIC8vIG9yZGVyIGNvbHVtbiBhc2NlbmRpbmcgb3IgZGVzY2VuZGluZwogICAgICBpZihpc3NldCgkY29sX3BhcnRzWzFdKSkKICAgICAgewogICAgICAgICRjb2xfb3JkZXIgPSAoaW5fYXJyYXkoJGNvbF9wYXJ0c1sxXSwgWydBU0MnLCAnREVTQyddKSA/ICRjb2xfcGFydHNbMV0gOiAnQVNDJyk7CiAgICAgIH0KICAKICAgICAgJGNvbF9vcmRlciA9IChpbl9hcnJheSgkY29sX29yZGVyLCBbJ0FTQycsICdERVNDJ10pID8gJGNvbF9vcmRlciA6ICdBU0MnKTsKICAKICAgICAgaWYoaXNzZXQoJHZhbGlkX2NvbHNbJGNvbF9uYW1lXSkpCiAgICAgIHsKICAgICAgICAkb3JkZXJfY29sc1skaW5kZXhdID0gJHZhbGlkX2NvbHNbJGNvbF9uYW1lXSAuICcgJyAuICRjb2xfb3JkZXI7CiAgICAgIH0KICAgICAgZWxzZSBpZihzdGFydHN3aXRoKCRjb2xfbmFtZSwgJ2N1c3RvbV8nKSkKICAgICAgewogICAgICAgICRjdXN0b21fbmFtZSA9IHN1YnN0cigkY29sX25hbWUsIDcpOwogICAgICAgICRvYmogICAgICAgICA9IG5ldyBzdGRDbGFzczsKICAgICAgICAkb2JqLT5uYW1lICAgPSAkY3VzdG9tX25hbWU7CiAgICAgICAgJG9iai0+b3JkZXIgID0gJGNvbF9vcmRlcjsKICAgIAogICAgICAgICRjdXN0b21fY29sc1skaW5kZXhdID0gJG9iajsKICAgICAgfQogIAogICAgICAkaW5kZXgrKzsKICAgIH0KICAKICAgIHJldHVybiBbJG9yZGVyX2NvbHMsICRjdXN0b21fY29sc107CiAgfQogIAogIC8qKgogICAqIEBwYXJhbSAkc3RyCiAgICogQHBhcmFtICRhbGlhcwogICAqCiAgICogQHJldHVybiBib29sCiAgICogQHRocm93cyBcRXhjZXB0aW9uCiAgICovCiAgcHJpdmF0ZSBmdW5jdGlvbiBfZ2V0X3N1YmNhdGVnb3JpZXMoJiRzdHIsICRhbGlhcykgOiBib29sCiAgewogICAgJGRiID0gJHRoaXMtPkdldERiKCk7CiAgICAKICAgICRxdWVyeSA9ICJTRUxFQ1QgY2F0ZWdvcnlfaWQgRlJPTSAiCiAgICAgICAgICAgICAuICR0aGlzLT5fbW9kX2FsaWFzKCkgLiAiX2NhdGVnb3J5IFdIRVJFIGNhdGVnb3J5X2FsaWFzID0gPyI7CiAgICAkc3ViY2F0ID0gJGRiLT5HZXRPbmUoJHF1ZXJ5LCBhcnJheSgkYWxpYXMpKTsKICAgIAogICAgaWYoISRzdWJjYXQpIHsgcmV0dXJuIEZBTFNFOyB9CiAgICAKICAgICRzdHIgLj0gIiBPUiBCLnBhcmVudF9pZCA9ICciIC4gJHN1YmNhdCAuICInIjsKICAgIAogICAgJHF1ZXJ5ID0gIlNFTEVDVCBjYXRlZ29yeV9hbGlhcyBGUk9NICIKICAgICAgICAgICAgIC4gJHRoaXMtPl9tb2RfYWxpYXMoKSAuICJfY2F0ZWdvcnkgV0hFUkUgcGFyZW50X2lkID0gPyI7CiAgICAkZGJyID0gJGRiLT5FeGVjdXRlKCRxdWVyeSwgYXJyYXkoJHN1YmNhdCkpOwogICAgCiAgICB3aGlsZSgkZGJyICYmICEkZGJyLT5FT0YpCiAgICB7CiAgICAgICR0aGlzLT5fZ2V0X3N1YmNhdGVnb3JpZXMoJHN0ciwgJGRici0+ZmllbGRzWydjYXRlZ29yeV9hbGlhcyddKTsKICAgICAgJGRici0+TW92ZU5leHQoKTsKICAgIH0KICAgIAogICAgaWYoJGRicikgeyAkZGJyLT5DbG9zZSgpOyB9CiAgICAKICAgIHJldHVybiBUUlVFOwogIH0KICAKfSAvLyBlbmQgb2YgY2xhc3MKCj8+]]></data>
	</file>
	<file>
	  <filename>/lib/class.LISELoader.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHANCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQojIExJU0UgLSBMaXN0IEl0IFNwZWNpYWwgRWRpdGlvbg0KIyBWZXJzaW9uIDEuMg0KIyBBIGZvcmsgb2YgTGlzdEkyDQojIG1haW50YWluZWQgYnkgRmVybmFuZG8gTW9yZ2FkbyBBS0EgSm8gTW9yZw0KIyBzaW5jZSAyMDE1DQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIw0KIyBPcmlnaW5hbCBBdXRob3I6IEJlbiBNYWxlbiwgPGJlbkBjb25jZXB0ZmFjdG9yeS5jb20uYXU+DQojIENvLU1haW50YWluZXI6IFNpbW9uIFJhZGZvcmQsIDxzaW1vbkBjb25jZXB0ZmFjdG9yeS5jb20uYXU+DQojIFdlYjogd3d3LmNvbmNlcHRmYWN0b3J5LmNvbS5hdQ0KIw0KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCiMNCiMgTWFpbnRhaW5lciBzaW5jZSAyMDExIHVwIHRvIDIwMTQ6IEpvbmF0aGFuIFNjaG1pZCwgPGhpQGpvbmF0aGFuc2NobWlkLmRlPg0KIyBXZWI6IHd3dy5qb25hdGhhbnNjaG1pZC5kZQ0KIw0KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCiMNCiMgU29tZSB3YWNrb3Mgc3RhcnRlZCBkZXN0cm95aW5nIHN0dWZmIHNpbmNlIDIwMTIgYW5kIHN0b3BwZWQgYXQgMjAxNDoNCiMNCiMgVGFwaW8gTMO2eXR0eSwgPHRhcHNhQG9yYW5nZS1tZWRpYS5maT4NCiMgV2ViOiB3d3cub3JhbmdlLW1lZGlhLmZpDQojDQojIEdvcmFuIElsaWMsIDx1bmlxdTNlQGdtYWlsLmNvbT4NCiMgV2ViOiB3d3cuaWNoLW1hY2gtZGFzLmF0DQojDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIw0KIyBMSVNFIGlzIGEgQ01TIE1hZGUgU2ltcGxlIG1vZHVsZSB0aGF0IGVuYWJsZXMgdGhlIHdlYiBkZXZlbG9wZXIgdG8gY3JlYXRlDQojIG11bHRpcGxlIGxpc3RzIHRocm91Z2hvdXQgYSBzaXRlLiBJdCBjYW4gYmUgZHVwbGljYXRlZCBhbmQgZ2l2ZW4gZnJpZW5kbHkNCiMgbmFtZXMgZm9yIGVhc2llciBjbGllbnQgbWFpbnRlbmFuY2UuDQojDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIyBCRUdJTl9MSUNFTlNFDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIyBUaGlzIGZpbGUgaXMgcGFydCBvZiBMSVNFDQojIExJU0UgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5DQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5DQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yDQojIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uDQojDQojIExJU0UgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLA0KIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZg0KIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlDQojIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuDQojIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlDQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlDQojIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcgVVNBDQojIE9yIHJlYWQgaXQgb25saW5lOiBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwNCiMNCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQojIEVORF9MSUNFTlNFDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KDQpjbGFzcyBMSVNFTG9hZGVyDQp7DQogc3RhdGljIGZpbmFsIHB1YmxpYyBmdW5jdGlvbiBsb2FkZXIoJHBhcmFtcywgJHNtYXJ0eSkNCiAgew0KICAgICRpdGVtID0gaXNzZXQoJHBhcmFtc1snaXRlbSddKSA/ICRwYXJhbXNbJ2l0ZW0nXSA6ICdpdGVtJzsNCiAgICAkaW5zdGFuY2UgPSBpc3NldCgkcGFyYW1zWydpbnN0YW5jZSddKSA/ICRwYXJhbXNbJ2luc3RhbmNlJ10gOiBjbXNfdXRpbHM6OmdldF9hcHBfZGF0YSgnbGlzZV9pbnN0YW5jZScpOyAvLyBNYW5kYXRvcnkNCiAgICAkaWRlbnRpZmllciA9IGlzc2V0KCRwYXJhbXNbJ2lkZW50aWZpZXInXSkgPyAkcGFyYW1zWydpZGVudGlmaWVyJ10gOiBudWxsOw0KICAgICR2YWx1ZSA9IGlzc2V0KCRwYXJhbXNbJ3ZhbHVlJ10pID8gJHBhcmFtc1sndmFsdWUnXSA6IG51bGw7IC8vIE1hbmRhdG9yeQ0KICAgICRmb3JjZV9hcnJheSA9IGlzc2V0KCRwYXJhbXNbJ2ZvcmNlX2FycmF5J10pID8gdHJ1ZSA6IGZhbHNlOw0KICAgICRyZXN1bHQgPSBhcnJheSgpOw0KDQogICAgaWYoaXNfbnVsbCgkaW5zdGFuY2UpKQ0KICAgICAgdGhyb3cgbmV3IFxMSVNFXEV4Y2VwdGlvbigkc21hcnR5LT5sZWZ0X2RlbGltaXRlciAuICJMSVNFTG9hZGVyIiAuICRzbWFydHktPnJpZ2h0X2RlbGltaXRlciAuICI6IFBhcmFtZXRlciBpbnN0YW5jZSBpcyBub3QgZ2l2ZW4uIik7DQogIA0KICAgIGlmKGlzX251bGwoJHZhbHVlKSkNCiAgICAgIHRocm93IG5ldyBcTElTRVxFeGNlcHRpb24oJHNtYXJ0eS0+bGVmdF9kZWxpbWl0ZXIgLiAiTElTRUxvYWRlciIgLiAkc21hcnR5LT5yaWdodF9kZWxpbWl0ZXIgLiAiOiBQYXJhbWV0ZXIgdmFsdWUgaXMgbm90IGdpdmVuLiIpOw0KICAgICAgDQogICAgLy8gTG9hZCB3YW50ZWQgaW5zdGFuY2UNCiAgICAkaW5zdGFuY2UgPSBjbXNtcygpLT5HZXRNb2R1bGVJbnN0YW5jZSgkaW5zdGFuY2UpOw0KICAgIGlmKCEkaW5zdGFuY2UgaW5zdGFuY2VvZiBMSVNFKQ0KICAgICAgdGhyb3cgbmV3IFxMSVNFXEV4Y2VwdGlvbigkc21hcnR5LT5sZWZ0X2RlbGltaXRlciAuICJMSVNFTG9hZGVyIiAuICRzbWFydHktPnJpZ2h0X2RlbGltaXRlciAuICI6IExvYWRlZCBpbnN0YW5jZSBpcyBub3QgTElTRSBpbnN0YW5jZS4iKTsNCiAgICANCiAgICAvLyBHZXQgbG9hZGVyIGluZm8NCiAgICBzd2l0Y2goJGl0ZW0pDQogICAgew0KICAgICAgY2FzZSAnaXRlbSc6ICAgIA0KICAgICAgICAkbG9hZGVyID0gJ0xvYWRJdGVtQnlJZGVudGlmaWVyJzsNCiAgICAgICAgaWYoaXNfbnVsbCgkaWRlbnRpZmllcikpDQogICAgICAgICAgJGlkZW50aWZpZXIgPSAnaXRlbV9pZCc7DQogICAgICAgIGJyZWFrOw0KICAgICAgICANCiAgICAgIGNhc2UgJ2NhdGVnb3J5JzoNCiAgICAgICAgJGxvYWRlciA9ICdMb2FkQ2F0ZWdvcnlCeUlkZW50aWZpZXInOw0KICAgICAgICBpZihpc19udWxsKCRpZGVudGlmaWVyKSkNCiAgICAgICAgICAkaWRlbnRpZmllciA9ICdjYXRlZ29yeV9pZCc7ICAgICAgICANCiAgICAgICAgYnJlYWs7DQogICAgICAgIA0KICAgICAgZGVmYXVsdDoNCiAgICAgICAgdGhyb3cgbmV3IFxMSVNFXEV4Y2VwdGlvbigkc21hcnR5LT5sZWZ0X2RlbGltaXRlciAuICJMSVNFTG9hZGVyIiAuICRzbWFydHktPnJpZ2h0X2RlbGltaXRlciAuICI6IFVua25vd24gaXRlbSB0eXBlIik7DQoNCiAgICB9IC8vIGVuZCBzd2l0Y2gNCiAgICANCiAgICAvL0xvYWQNCiAgICAkdmFsdWUgPSBleHBsb2RlKCcsJywgJHZhbHVlKTsNCiAgICANCiAgICBmb3JlYWNoKChhcnJheSkkdmFsdWUgYXMgJG9uZSkNCiAgICB7DQogICAgICAkcmVzdWx0WyRvbmVdID0gJGluc3RhbmNlLT4kbG9hZGVyKCRpZGVudGlmaWVyLCAkb25lKTsNCiAgICB9DQogICAgICANCiAgICAvLyBSZXR1cm4gc2luZ3VsYXIsIGlmIHNpbmd1bGFyICYgZm9yY2UgYXJyYXkgaXMgT2ZmDQogICAgaWYoY291bnQoJHJlc3VsdCkgPT0gMSAmJiAhJGZvcmNlX2FycmF5KSAgICAgDQogICAgICAkcmVzdWx0ID0gJHJlc3VsdFtrZXkoJHJlc3VsdCldOw0KICAgICAgICANCiAgICAvLyBBc3NpZ24NCiAgICBpZihpc3NldCgkcGFyYW1zWydhc3NpZ24nXSkpDQogICAgew0KICAgICAgJHNtYXJ0eS0+YXNzaWduKCRwYXJhbXNbJ2Fzc2lnbiddLCAkcmVzdWx0KTsgICAgICANCiAgICAgIHJldHVybjsNCiAgICB9DQogIA0KICAgIHJldHVybiAkcmVzdWx0Ow0KICB9DQp9DQo/Pg0K]]></data>
	</file>
	<file>
	  <filename>/lib/class.LISEQuery.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBMSVNFIC0gTGlzdCBJdCBTcGVjaWFsIEVkaXRpb24KIyBWZXJzaW9uIDEuMgojIEEgZm9yayBvZiBMaXN0STIKIyBtYWludGFpbmVkIGJ5IEZlcm5hbmRvIE1vcmdhZG8gQUtBIEpvIE1vcmcKIyBzaW5jZSAyMDE1CiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBPcmlnaW5hbCBBdXRob3I6IEJlbiBNYWxlbiwgPGJlbkBjb25jZXB0ZmFjdG9yeS5jb20uYXU+CiMgQ28tTWFpbnRhaW5lcjogU2ltb24gUmFkZm9yZCwgPHNpbW9uQGNvbmNlcHRmYWN0b3J5LmNvbS5hdT4KIyBXZWI6IHd3dy5jb25jZXB0ZmFjdG9yeS5jb20uYXUKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojCiMgTWFpbnRhaW5lciBzaW5jZSAyMDExIHVwIHRvIDIwMTQ6IEpvbmF0aGFuIFNjaG1pZCwgPGhpQGpvbmF0aGFuc2NobWlkLmRlPgojIFdlYjogd3d3LmpvbmF0aGFuc2NobWlkLmRlCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIwojIFNvbWUgd2Fja29zIHN0YXJ0ZWQgZGVzdHJveWluZyBzdHVmZiBzaW5jZSAyMDEyIGFuZCBzdG9wcGVkIGF0IDIwMTQ6CiMKIyBUYXBpbyBMw7Z5dHR5LCA8dGFwc2FAb3JhbmdlLW1lZGlhLmZpPgojIFdlYjogd3d3Lm9yYW5nZS1tZWRpYS5maQojCiMgR29yYW4gSWxpYywgPHVuaXF1M2VAZ21haWwuY29tPgojIFdlYjogd3d3LmljaC1tYWNoLWRhcy5hdAojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBMSVNFIGlzIGEgQ01TIE1hZGUgU2ltcGxlIG1vZHVsZSB0aGF0IGVuYWJsZXMgdGhlIHdlYiBkZXZlbG9wZXIgdG8gY3JlYXRlCiMgbXVsdGlwbGUgbGlzdHMgdGhyb3VnaG91dCBhIHNpdGUuIEl0IGNhbiBiZSBkdXBsaWNhdGVkIGFuZCBnaXZlbiBmcmllbmRseQojIG5hbWVzIGZvciBlYXNpZXIgY2xpZW50IG1haW50ZW5hbmNlLgojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgQkVHSU5fTElDRU5TRQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIExJU0UKIyBMSVNFIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgTElTRSBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBFTkRfTElDRU5TRQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQp1c2UgXExJU0VcQ29uZmlnTWFuYWdlciBhcyBDb25maWdNYW5hZ2VyOwoKLyoqCiAqIENsYXNzIExJU0VRdWVyeQogKiBAZGVwcmVjYXRlZAogKi8KYWJzdHJhY3QgY2xhc3MgTElTRVF1ZXJ5CnsKICAjLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgIyBDb25zdGFudHMKICAjLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgCiAgLyoqCiAgICoKICAgKi8KICBwdWJsaWMgY29uc3QgVkFSVFlQRV9KT0lOUyA9ICdqb2lucyc7CiAgLyoqCiAgICoKICAgKi8KICBwdWJsaWMgY29uc3QgVkFSVFlQRV9XSEVSRSA9ICd3aGVyZSc7CiAgLyoqCiAgICoKICAgKi8KICBwdWJsaWMgY29uc3QgVkFSVFlQRV9PUkRFUkJZID0gJ29yZGVyYnknOwogIC8qKgogICAqCiAgICovCiAgcHVibGljIGNvbnN0IFZBUlRZUEVfUVBBUkFNUyA9ICdxcGFyYW1zJzsKICAKICAjLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgIyBBdHRyaWJ1dGVzCiAgIy0tLS0tLS0tLS0tLS0tLS0tLS0tLQogIAogIC8qKgogICAqIEB2YXIgYXJyYXkKICAgKi8KICBwcml2YXRlICRfcGFyYW1zOwogIC8qKgogICAqIEB2YXIgc3RyaW5nCiAgICovCiAgcHJpdmF0ZSAkX2luc3RhbmNlX25hbWU7CiAgCiAgLyoqCiAgICogQHZhciBhcnJheQogICAqLwogIHByb3RlY3RlZCAkam9pbnM7CiAgLyoqCiAgICogQHZhciBhcnJheQogICAqLwogIHByb3RlY3RlZCAkd2hlcmU7CiAgLyoqCiAgICogQHZhciBhcnJheQogICAqLwogIHByb3RlY3RlZCAkb3JkZXJieTsKICAvKioKICAgKiBAdmFyIGFycmF5CiAgICovCiAgcHJvdGVjdGVkICRxcGFyYW1zOwogIAogIC8qKgogICAqIEB2YXIKICAgKi8KICBwcm90ZWN0ZWQgJHF1ZXJ5OyAgICAgICAgIC8vIE5vdCBzZXQKICAvKioKICAgKiBAdmFyCiAgICovCiAgcHJvdGVjdGVkICRyZXN1bHRzZXQ7ICAgICAvLyBOb3Qgc2V0CiAgLyoqCiAgICogQHZhcgogICAqLwogIHByb3RlY3RlZCAkdG90YWxjb3VudDsgICAgLy8gTm90IHNldAogIC8qKgogICAqIEB2YXIKICAgKi8KICBwcm90ZWN0ZWQgJHBhZ2Vjb3VudDsgICAgIC8vIE5vdCBzZXQKICAKICAjLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgIyBNYWdpYyBtZXRob2RzCiAgIy0tLS0tLS0tLS0tLS0tLS0tLS0tLQogIAogIC8qKgogICAqIExJU0VRdWVyeSBjb25zdHJ1Y3Rvci4KICAgKgogICAqIEBwYXJhbSBcTElTRSAkbW9kCiAgICogQHBhcmFtICAgICAgICRwYXJhbXMKICAgKi8KICBwdWJsaWMgZnVuY3Rpb24gX19jb25zdHJ1Y3QoTElTRSAkbW9kLCAmJHBhcmFtcykKICB7CiAgICAkdGhpcy0+X2luc3RhbmNlX25hbWUgPSAkbW9kLT5HZXROYW1lKCk7CiAgICAkdGhpcy0+X3BhcmFtcyAgICAgICAgPSAkcGFyYW1zOwogICAgJHRoaXMtPmpvaW5zICAgICAgICAgID0gW107CiAgICAkdGhpcy0+d2hlcmUgICAgICAgICAgPSBbXTsKICAgICR0aGlzLT5vcmRlcmJ5ICAgICAgICA9IFtdOwogICAgJHRoaXMtPnFwYXJhbXMgICAgICAgID0gW107CiAgfQogIAogICMtLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAjIEFic3RyYWN0IG1ldGhvZHMKICAjLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgCiAgLyoqCiAgICogQHJldHVybiB2b2lkCiAgICovCiAgYWJzdHJhY3QgcHJvdGVjdGVkIGZ1bmN0aW9uIF9xdWVyeSgpIDogdm9pZCA7CiAgCiAgIy0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICMgVXRpbGl0eSBtZXRob2RzCiAgIy0tLS0tLS0tLS0tLS0tLS0tLS0tLQogIAogIC8qKgogICAqIEByZXR1cm4gc3RyaW5nCiAgICovCiAgcHJvdGVjdGVkIGZ1bmN0aW9uIF9tb2RfYWxpYXMoKQogIHsKICAgIHJldHVybiBjbXNfZGJfcHJlZml4KCkgLiAnbW9kdWxlXycgLiAkdGhpcy0+R2V0TW9kdWxlSW5zdGFuY2UoKS0+X0dldE1vZHVsZUFsaWFzKCk7CiAgfQogIAogIC8qKgogICAqIEByZXR1cm4gXENNU01TXERhdGFiYXNlXENvbm5lY3Rpb24KICAgKiBAdGhyb3dzIFxFeGNlcHRpb24KICAgKi8KICBwcm90ZWN0ZWQgZnVuY3Rpb24gR2V0RGIoKSA6IFxDTVNNU1xEYXRhYmFzZVxDb25uZWN0aW9uCiAgewogICAgcmV0dXJuIFxjbXNfdXRpbHM6OmdldF9kYigpOwogIH0KICAKICAvKioKICAgKiBAcmV0dXJuIHN0cmluZwogICAqLwogIHB1YmxpYyBmdW5jdGlvbiBHZXRNb2R1bGVJbnN0YW5jZU5hbWUoKSA6IHN0cmluZwogIHsKICAgIHJldHVybiAkdGhpcy0+X2luc3RhbmNlX25hbWU7CiAgfQogIAogIC8qKgogICAqIEByZXR1cm4gXENtc01vZHVsZQogICAqLwogIHB1YmxpYyBmdW5jdGlvbiBHZXRNb2R1bGVJbnN0YW5jZSgpIDogXENtc01vZHVsZQogIHsKICAgIHJldHVybiBcY21zX3V0aWxzOjpnZXRfbW9kdWxlKCR0aGlzLT5faW5zdGFuY2VfbmFtZSk7CiAgfQogIAogIC8qKgogICAqIEByZXR1cm4gYXJyYXkKICAgKi8KICBwdWJsaWMgZnVuY3Rpb24gR2V0UGFyYW1zKCkgOiBhcnJheQogIHsKICAgIHJldHVybiAkdGhpcy0+X3BhcmFtczsKICB9CiAgCiAgLyoqCiAgICogQHBhcmFtICRrZXkKICAgKiBAcGFyYW0gJHZhbHVlCiAgICovCiAgcHVibGljIGZ1bmN0aW9uIFNldFBhcmFtKCRrZXksICR2YWx1ZSkgOiB2b2lkCiAgewogICAgJHRoaXMtPl9wYXJhbXNbJGtleV0gPSAkdmFsdWU7CiAgfQogIAogIC8qKgogICAqIEBwYXJhbSAka2V5CiAgICoKICAgKiBAcmV0dXJuIG1peGVkfG51bGwKICAgKi8KICBwdWJsaWMgZnVuY3Rpb24gR2V0UGFyYW0oJGtleSkKICB7CiAgICByZXR1cm4gJHRoaXMtPl9wYXJhbXNbJGtleV0gPz8gTlVMTDsKICB9CiAgCiAgIy0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICMgRGF0YWJhc2UgbWV0aG9kcwogICMtLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAKICAvKioKICAgKiBAcGFyYW0gJHZhcgogICAqIEBwYXJhbSAkdmFsdWUKICAgKgogICAqIEByZXR1cm4gYm9vbAogICAqIEB0aHJvd3MgXExJU0VcRXhjZXB0aW9uCiAgICovCiAgcHVibGljIGZ1bmN0aW9uIEFwcGVuZFRvKCR2YXIsICR2YWx1ZSkgOiBib29sCiAgewogICAgJHZhciA9IHN0cnRvbG93ZXIoJHZhcik7CiAgICAkdmFsdWUgPSAoc3RyaW5nKSR2YWx1ZTsKICAgIAogICAgc3dpdGNoKCR2YXIpIHsKICAgICAgCiAgICAgIGNhc2Ugc2VsZjo6VkFSVFlQRV9KT0lOUzoKICAgICAgICAkdGhpcy0+am9pbnNbXSA9ICR2YWx1ZTsKICAgICAgYnJlYWs7CiAgICAgIAogICAgICBjYXNlIHNlbGY6OlZBUlRZUEVfV0hFUkU6CiAgICAgICAgJHRoaXMtPndoZXJlW10gPSAkdmFsdWU7CiAgICAgIGJyZWFrOwogICAgICAKICAgICAgY2FzZSBzZWxmOjpWQVJUWVBFX09SREVSQlk6CiAgICAgICAgJHRoaXMtPm9yZGVyYnlbXSA9ICR2YWx1ZTsKICAgICAgYnJlYWs7CiAgICAgIAogICAgICBjYXNlIHNlbGY6OlZBUlRZUEVfUVBBUkFNUzoKICAgICAgICAkdGhpcy0+cXBhcmFtc1tdID0gJHZhbHVlOwogICAgICBicmVhazsKICAgICAgCiAgICAgIGRlZmF1bHQ6CiAgICAgICAgdGhyb3cgbmV3IFxMSVNFXEV4Y2VwdGlvbignQXR0ZW1wdCB0byBzZXQgdW5pZGVudGlmaWVkIFZBUlRZUEUnKTsKICAgIH0KICAgIAogICAgcmV0dXJuIHRydWU7CiAgfQogIAogIC8qKgogICAqIEBwYXJhbSBib29sICRmb3JjZV9leGVjdXRlCiAgICoKICAgKiBAcmV0dXJuIG1peGVkCiAgICovCiAgcHVibGljIGZ1bmN0aW9uIEV4ZWN1dGUoJGZvcmNlX2V4ZWN1dGUgPSBmYWxzZSkKICB7CiAgICBpZighaXNzZXQoJHRoaXMtPnJlc3VsdHNldCkgfHwgJGZvcmNlX2V4ZWN1dGUpIHsgJHRoaXMtPl9xdWVyeSgpOyB9CiAgICAKICAgIHJldHVybiAkdGhpcy0+cmVzdWx0c2V0OwogIH0KICAKICAvKioKICAgKiBAcmV0dXJuIG51bGwKICAgKi8KICBwdWJsaWMgZnVuY3Rpb24gVG90YWxDb3VudCgpCiAgewogICAgcmV0dXJuICR0aGlzLT50b3RhbGNvdW50ID8/IE5VTEw7CiAgfQogIAogIC8qKgogICAqIEByZXR1cm4gbnVsbAogICAqLwogIHB1YmxpYyBmdW5jdGlvbiBHZXRQYWdlQ291bnQoKQogIHsKICAgIHJldHVybiAkdGhpcy0+cGFnZWNvdW50ID8/IE5VTEw7CiAgfQogIAogIC8qKgogICAqIEByZXR1cm4gaW50fG1peGVkCiAgICovCiAgcHVibGljIGZ1bmN0aW9uIEdldFBhZ2VMaW1pdCgpCiAgewogICAgaWYoIGlzc2V0KCR0aGlzLT5fcGFyYW1zWydwYWdlbGltaXQnXSkgKQogICAgewogICAgICByZXR1cm4gKGludCkkdGhpcy0+X3BhcmFtc1sncGFnZWxpbWl0J107CiAgICB9CiAgCiAgICAkY29uZmlnICAgICA9IENvbmZpZ01hbmFnZXI6OkdldENvbmZpZ0luc3RhbmNlKFxjbXNfdXRpbHM6OmdldF9tb2R1bGUoJ0xJU0UnKSk7CiAgICAkcGFnZV9saW1pdCA9ICRjb25maWdbJ2dsb2JhbF9MSVNFUXVlcnlfcGFnZV9saW1pdCddID8/IDEwMDAwMDsKICAgICRjb25maWcgICAgID0gQ29uZmlnTWFuYWdlcjo6R2V0Q29uZmlnSW5zdGFuY2UoJHRoaXMtPkdldE1vZHVsZUluc3RhbmNlKCkpOwogICAgJHBhZ2VfbGltaXQgPSAkY29uZmlnWydMSVNFUXVlcnlfcGFnZV9saW1pdCddID8/ICRwYWdlX2xpbWl0OwogICAgCiAgICByZXR1cm4gJHBhZ2VfbGltaXQ7CiAgfQogIAogIC8qKgogICAqIEByZXR1cm4gaW50CiAgICovCiAgcHVibGljIGZ1bmN0aW9uIEdldFBhZ2VOdW1iZXIoKSA6IGludAogIHsKICAgIGlmKCBpc3NldCgkdGhpcy0+X3BhcmFtc1sncGFnZW51bWJlciddKSApCiAgICB7CiAgICAgIHJldHVybiAoaW50KSR0aGlzLT5fcGFyYW1zWydwYWdlbnVtYmVyJ107CiAgICB9CiAgICAKICAgIGlmKCBpc3NldCgkdGhpcy0+X3BhcmFtc1sncGFnZSddKSApCiAgICB7CiAgICAgIHJldHVybiAoaW50KSR0aGlzLT5fcGFyYW1zWydwYWdlJ107CiAgICB9CiAgICAKICAgIHJldHVybiAxOwogIH0KICAKfSAvLyBlbmQgb2YgY2xhc3MKCj8+]]></data>
	</file>
	<file>
	  <filename>/lib/class.LISESmarty.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBMSVNFIC0gTGlzdCBJdCBTcGVjaWFsIEVkaXRpb24KIyBWZXJzaW9uIDEuMgojIEEgZm9yayBvZiBMaXN0STIKIyBtYWludGFpbmVkIGJ5IEZlcm5hbmRvIE1vcmdhZG8gQUtBIEpvIE1vcmcKIyBzaW5jZSAyMDE1CiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBPcmlnaW5hbCBBdXRob3I6IEJlbiBNYWxlbiwgPGJlbkBjb25jZXB0ZmFjdG9yeS5jb20uYXU+CiMgQ28tTWFpbnRhaW5lcjogU2ltb24gUmFkZm9yZCwgPHNpbW9uQGNvbmNlcHRmYWN0b3J5LmNvbS5hdT4KIyBXZWI6IHd3dy5jb25jZXB0ZmFjdG9yeS5jb20uYXUKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojCiMgTWFpbnRhaW5lciBzaW5jZSAyMDExIHVwIHRvIDIwMTQ6IEpvbmF0aGFuIFNjaG1pZCwgPGhpQGpvbmF0aGFuc2NobWlkLmRlPgojIFdlYjogd3d3LmpvbmF0aGFuc2NobWlkLmRlCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIwojIFNvbWUgd2Fja29zIHN0YXJ0ZWQgZGVzdHJveWluZyBzdHVmZiBzaW5jZSAyMDEyIGFuZCBzdG9wcGVkIGF0IDIwMTQ6CiMKIyBUYXBpbyBMw7Z5dHR5LCA8dGFwc2FAb3JhbmdlLW1lZGlhLmZpPgojIFdlYjogd3d3Lm9yYW5nZS1tZWRpYS5maQojCiMgR29yYW4gSWxpYywgPHVuaXF1M2VAZ21haWwuY29tPgojIFdlYjogd3d3LmljaC1tYWNoLWRhcy5hdAojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBMSVNFIGlzIGEgQ01TIE1hZGUgU2ltcGxlIG1vZHVsZSB0aGF0IGVuYWJsZXMgdGhlIHdlYiBkZXZlbG9wZXIgdG8gY3JlYXRlCiMgbXVsdGlwbGUgbGlzdHMgdGhyb3VnaG91dCBhIHNpdGUuIEl0IGNhbiBiZSBkdXBsaWNhdGVkIGFuZCBnaXZlbiBmcmllbmRseQojIG5hbWVzIGZvciBlYXNpZXIgY2xpZW50IG1haW50ZW5hbmNlLgojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgQkVHSU5fTElDRU5TRQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIExJU0UKIyBMSVNFIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgTElTRSBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBFTkRfTElDRU5TRQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQp1c2UgXExJU0VcYXBpOwoKY2xhc3MgTElTRVNtYXJ0eSAKewogIHN0YXRpYyBwcml2YXRlICRfcmVhZHkgPSBGQUxTRTsKICBzdGF0aWMgcHJpdmF0ZSAkX0xJMl9wcmVzZW50ID0gRkFMU0U7CiAgc3RhdGljIHByaXZhdGUgJF9DTVNNUzIgPSBGQUxTRTsKICAKICBwcml2YXRlIHN0YXRpYyBmdW5jdGlvbiBfaW5pdCgpCiAgewogICAgaWYoIXNlbGY6OiRfcmVhZHkpCiAgICB7CiAgICAgIHNlbGY6OiRfTEkyX3ByZXNlbnQgPSBpc19vYmplY3QoIFxjbXNfdXRpbHM6OmdldF9tb2R1bGUoJ0xpc3RJdDInKSApOwogICAgICBzZWxmOjokX0NNU01TMiA9IGxpc2VfdXRpbHM6OmlzQ01TMigpOwogICAgICBzZWxmOjokX3JlYWR5ID0gVFJVRTsKICAgIH0KICB9CiAgCiAgcHVibGljIHN0YXRpYyBmdW5jdGlvbiBMSTJfcHJlc2VudCgpCiAgewogICAgc2VsZjo6X2luaXQoKTsKICAgIHJldHVybiBzZWxmOjokX0xJMl9wcmVzZW50OwogIH0KICAgIAogIHB1YmxpYyBzdGF0aWMgZnVuY3Rpb24gSXNDTVNNUzIoKQogIHsKICAgIHNlbGY6Ol9pbml0KCk7CiAgICByZXR1cm4gc2VsZjo6JF9DTVNNUzI7CiAgfQogIAogIHB1YmxpYyBzdGF0aWMgZnVuY3Rpb24gSW5zdGFuY2VOYW1lKCkKICB7CiAgICAkaW5zdGFuY2VfbmFtZSA9IGFwaTo6Z2V0SW5zdGFuY2UoKS0+SW5zdGFuY2VOYW1lKCk7CiAgICBpZiggZW1wdHkoJGluc3RhbmNlX25hbWUpICkgJGluc3RhbmNlX25hbWUgPSAnOjpOQTo6JzsKICAgIHJldHVybiAkaW5zdGFuY2VfbmFtZTsKICB9CiAgCiAgcHVibGljIHN0YXRpYyBmdW5jdGlvbiBHZW5lcmF0ZVRpdGxlKCRpbnN0YW5jZV9uYW1lID0gJycpCiAgewogICAgcmV0dXJuIGFwaTo6Z2V0SW5zdGFuY2UoKS0+R2VuZXJhdGVUaXRsZSgkaW5zdGFuY2VfbmFtZSk7CiAgfQogIAogIHB1YmxpYyBzdGF0aWMgZnVuY3Rpb24gTG9nKCRtZXNzYWdlID0gJycpCiAgewogICAgXGxpc2VfdXRpbHM6OmxvZygkbWVzc2FnZSk7CiAgfQoJCn0gLy8gZW5kIG9mIGNsYXNzCj8+]]></data>
	</file>
	<file>
	  <filename>/lib/class.LISETemplateResource.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBMSVNFIC0gTGlzdCBJdCBTcGVjaWFsIEVkaXRpb24KIyBWZXJzaW9uIDEuMi4yCiMgQSBmb3JrIG9mIExpc3RJMgojIG1haW50YWluZWQgYnkgRmVybmFuZG8gTW9yZ2FkbyBBS0EgSm8gTW9yZwojIHNpbmNlIDIwMTUKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIwojIE9yaWdpbmFsIEF1dGhvcjogQmVuIE1hbGVuLCA8YmVuQGNvbmNlcHRmYWN0b3J5LmNvbS5hdT4KIyBDby1NYWludGFpbmVyOiBTaW1vbiBSYWRmb3JkLCA8c2ltb25AY29uY2VwdGZhY3RvcnkuY29tLmF1PgojIFdlYjogd3d3LmNvbmNlcHRmYWN0b3J5LmNvbS5hdQojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBNYWludGFpbmVyIHNpbmNlIDIwMTEgdXAgdG8gMjAxNDogSm9uYXRoYW4gU2NobWlkLCA8aGlAam9uYXRoYW5zY2htaWQuZGU+CiMgV2ViOiB3d3cuam9uYXRoYW5zY2htaWQuZGUKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojCiMgU29tZSB3YWNrb3Mgc3RhcnRlZCBkZXN0cm95aW5nIHN0dWZmIHNpbmNlIDIwMTIgYW5kIHN0b3BwZWQgYXQgMjAxNDoKIwojIFRhcGlvIEzDtnl0dHksIDx0YXBzYUBvcmFuZ2UtbWVkaWEuZmk+CiMgV2ViOiB3d3cub3JhbmdlLW1lZGlhLmZpCiMKIyBHb3JhbiBJbGljLCA8dW5pcXUzZUBnbWFpbC5jb20+CiMgV2ViOiB3d3cuaWNoLW1hY2gtZGFzLmF0CiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIwojIExJU0UgaXMgYSBDTVMgTWFkZSBTaW1wbGUgbW9kdWxlIHRoYXQgZW5hYmxlcyB0aGUgd2ViIGRldmVsb3BlciB0byBjcmVhdGUKIyBtdWx0aXBsZSBsaXN0cyB0aHJvdWdob3V0IGEgc2l0ZS4gSXQgY2FuIGJlIGR1cGxpY2F0ZWQgYW5kIGdpdmVuIGZyaWVuZGx5CiMgbmFtZXMgZm9yIGVhc2llciBjbGllbnQgbWFpbnRlbmFuY2UuCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBCRUdJTl9MSUNFTlNFCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgVGhpcyBmaWxlIGlzIHBhcnQgb2YgTElTRQojIExJU0UgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CiMgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKIyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvcgojIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMKIyBMSVNFIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgojIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgojIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCiMgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKIyBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3IFVTQQojIE9yIHJlYWQgaXQgb25saW5lOiBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIEVORF9MSUNFTlNFCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgovKioKICogVGhpcyBjbGFzcyBkZWZpbmVzIGEgbmV3IHRlbXBsYXRlIHJlc291cmNlCiAqIGFuZCBpcyBiYXNpY2FsbHkgYmFzZWQgb24gdGhlIGNvcmUgb3duCiAqIENNU01vZHVsZUZpbGVUZW1wbGF0ZVJlc291cmNlIGFuZCBDTVNfRml4ZWRfUmVzb3VyY2VfQ3VzdG9tCiAqIENNU19GaXhlZF9SZXNvdXJjZV9DdXN0b20gZml4ZXMgc29tZSB3ZWlyZCBzdHVmZiBpbiBzbWFydHkKICogYnV0IGFzIHRoZXNlIGFyZSBpbnRlcm5hbCBjb3JlIGNsYXNzZXMsIHdlIGp1c3QgY29weSB0aGUgY29kZQogKiBhbmQgYWRhcHQgaXQgdG8gb3VyIG5lZWRzCiAqCiAqIEpvIE1vcmcKICovCmNsYXNzIExJU0VUZW1wbGF0ZVJlc291cmNlIGV4dGVuZHMgU21hcnR5X1Jlc291cmNlX0N1c3RvbQp7CiAgLyoqCiAgICogYSBmaXggdG8gcmVzb2x2ZSBhbiBpc3N1ZSB3aXRoIHNtYXJ0eSAoVE9ETyByZXZpc2l0IGFzIGl0IG1heSBub3QgYmUgbmVlZGVkIGFueW1vcmUgLSBKTSkKICAgKgogICAqIEBwYXJhbSBcU21hcnR5X1RlbXBsYXRlX1NvdXJjZSAgICAgICAgJHNvdXJjZQogICAqIEBwYXJhbSBcU21hcnR5X0ludGVybmFsX1RlbXBsYXRlfE5VTEwgJF90ZW1wbGF0ZQogICAqCiAgICogQHRocm93cyBcTElTRVxFeGNlcHRpb24KICAgKi8KICBwdWJsaWMgZnVuY3Rpb24gcG9wdWxhdGUoU21hcnR5X1RlbXBsYXRlX1NvdXJjZSAkc291cmNlLCBTbWFydHlfSW50ZXJuYWxfVGVtcGxhdGUgJF90ZW1wbGF0ZSA9IG51bGwpCiAgewogICAgJHNvdXJjZS0+ZmlsZXBhdGggPSAkc291cmNlLT50eXBlIC4gJzonIC4gJHNvdXJjZS0+bmFtZTsKICAgICRzb3VyY2UtPnVpZCA9IHNoYTEoJHNvdXJjZS0+dHlwZSAuICc6JyAuICRzb3VyY2UtPm5hbWUpOwogICAgCiAgICAkbXRpbWUgPSAkdGhpcy0+ZmV0Y2hUaW1lc3RhbXAoJHNvdXJjZS0+bmFtZSk7CiAgICAKICAgIGlmICgkbXRpbWUgIT09IG51bGwpCiAgICB7CiAgICAgICRzb3VyY2UtPnRpbWVzdGFtcCA9ICRtdGltZTsKICAgIH0KICAgIGVsc2UKICAgIHsKICAgICAgJHRoaXMtPmZldGNoKCRzb3VyY2UtPm5hbWUsICRjb250ZW50LCAkdGltZXN0YW1wKTsKICAgICAgJHNvdXJjZS0+dGltZXN0YW1wID0gaXNzZXQoJHRpbWVzdGFtcCkgPyAkdGltZXN0YW1wIDogZmFsc2U7CiAgICAgIGlmKCBpc3NldCgkY29udGVudCkgKSAkc291cmNlLT5jb250ZW50ID0gJGNvbnRlbnQ7CiAgICB9CiAgICAKICAgICRzb3VyY2UtPmV4aXN0cyA9ICEhJHNvdXJjZS0+dGltZXN0YW1wOwogIH0KICAKICAvKioKICAgKiBPdXIgbWVjaGFuaXNtIHRvIGRlYWwgd2l0aCB0aGUgdGVtcGxhdGVzCiAgICogZm9yIHRoZSBpbnN0YW5jZXMKICAgKgogICAqIEBwYXJhbSBzdHJpbmcgJG5hbWUKICAgKiBAcGFyYW0gc3RyaW5nICRzb3VyY2UKICAgKiBAcGFyYW0gaW50ICAgICRtdGltZQogICAqCiAgICogQHRocm93cyBcTElTRVxFeGNlcHRpb24KICAgKi8KICBwdWJsaWMgZnVuY3Rpb24gZmV0Y2goJG5hbWUsICYkc291cmNlLCAmJG10aW1lKQogIHsKICAgICRzb3VyY2UgPSBudWxsOwogICAgJG10aW1lID0gbnVsbDsKICAgICRwYXJhbXMgPSBwcmVnX3NwbGl0KCcvOy8nLCAkbmFtZSk7CiAgICAkY29uZmlnID0gY21zbXMoKS0+R2V0Q29uZmlnKCk7CiAgICAkZmlsZXMgPSBhcnJheSgpOwogICAgCiAgICBzd2l0Y2ggKCRwYXJhbXNbMF0pCiAgICB7CiAgICAgIGNhc2UgJ2luc3RhbmNlJzoKICAgICAgICBpZiggY291bnQoJHBhcmFtcykgIT0gMyApIHRocm93IG5ldyBcTElTRVxFeGNlcHRpb24oJ2ludmFsaWQgTElTRSB0ZW1wbGF0ZSByZXNvdXJjZTogJyAuICRwYXJhbXNbMF0pOwogICAgICAgICRmaWxlc1tdID0gY21zX2pvaW5fcGF0aCgkY29uZmlnWydyb290X3BhdGgnXSwgJ21vZHVsZV9jdXN0b20nLCAkcGFyYW1zWzFdLCAndGVtcGxhdGVzJywgJHBhcmFtc1syXSk7CiAgICAgICAgJGZpbGVzW10gPSBjbXNfam9pbl9wYXRoKCRjb25maWdbJ2Fzc2V0c19wYXRoJ10sICdtb2R1bGVfY3VzdG9tJywgJHBhcmFtc1sxXSwgJ3RlbXBsYXRlcycsICRwYXJhbXNbMl0pOwogICAgICAgICRmaWxlc1tdID0gY21zX2pvaW5fcGF0aCgkY29uZmlnWydyb290X3BhdGgnXSwgJ21vZHVsZXMnLCRwYXJhbXNbMV0sICd0ZW1wbGF0ZXMnLCAkcGFyYW1zWzJdKTsKICAgICAgICAkZmlsZXNbXSA9IGNtc19qb2luX3BhdGgoTElTRV9URU1QTEFURV9QQVRILCAkcGFyYW1zWzJdKTsKICAgICAgICBicmVhazsKICAgICAgCiAgICAgIGNhc2UgJ2ZpZWxkZGVmcyc6CiAgICAgICAgaWYoIGNvdW50KCRwYXJhbXMpICE9IDMgKSB0aHJvdyBuZXcgXExJU0VcRXhjZXB0aW9uKCdpbnZhbGlkIExJU0UgdGVtcGxhdGUgcmVzb3VyY2U6ICcgLiAkcGFyYW1zWzBdKTsKICAgICAgICAkdG1wID0gZXhwbG9kZSgnLicsICRwYXJhbXNbMl0pOwogICAgICAgICRpbnN0YW5jZSA9IGNtc191dGlsczo6Z2V0X21vZHVsZSgkcGFyYW1zWzFdKTsKICAgICAgICAkZmlsZXNbXSA9ICBjbXNfam9pbl9wYXRoKCRpbnN0YW5jZS0+R2V0TW9kdWxlUGF0aCgpLCAnbGliJywgJ2ZpZWxkZGVmcycsICR0bXBbMV0sICRwYXJhbXNbMl0pOwogICAgICAgICRmaWxlc1tdID0gIGNtc19qb2luX3BhdGgoJGluc3RhbmNlLT5HZXRNb2R1bGVQYXRoKCksICdsaXNlX2ZpZWxkZGVmcycsICR0bXBbMV0sICRwYXJhbXNbMl0pOwogICAgICAgICRmaWxlc1tdID0gIGNtc19qb2luX3BhdGgoJGluc3RhbmNlLT5HZXRNb2R1bGVQYXRoKCksICdsaWInLCAnbGlzZV9maWVsZGRlZnMnLCAkdG1wWzFdLCAkcGFyYW1zWzJdKTsKICAgICAgICAkZmlsZXNbXSA9ICBjbXNfam9pbl9wYXRoKCRjb25maWdbJ3Jvb3RfcGF0aCddLCAnbW9kdWxlX2N1c3RvbScsICRpbnN0YW5jZS0+R2V0TmFtZSgpLCAnZmllbGRkZWZzJywgJHRtcFsxXSwgJHBhcmFtc1syXSk7CiAgICAgICAgJGZpbGVzW10gPSAgY21zX2pvaW5fcGF0aCgkY29uZmlnWydhc3NldHNfcGF0aCddLCAnbW9kdWxlX2N1c3RvbScsICRpbnN0YW5jZS0+R2V0TmFtZSgpLCAnZmllbGRkZWZzJywgJHRtcFsxXSwgJHBhcmFtc1syXSk7CiAgICAgICAgYnJlYWs7CiAgICAgIAogICAgICBkZWZhdWx0OgogICAgICAgIHRocm93IG5ldyBcTElTRVxFeGNlcHRpb24oJ2ludmFsaWQgTElTRSB0ZW1wbGF0ZSByZXNvdXJjZTogJyAuICRwYXJhbXNbMF0pOwogICAgfQogICAgCiAgICBmb3JlYWNoKCAkZmlsZXMgYXMgJG9uZSApCiAgICB7CiAgICAgIGlmKCBmaWxlX2V4aXN0cygkb25lKSApCiAgICAgIHsKICAgICAgICAkc291cmNlID0gQGZpbGVfZ2V0X2NvbnRlbnRzKCRvbmUpOwogICAgICAgICRtdGltZSA9IEBmaWxlbXRpbWUoJG9uZSk7CiAgICAgICAgcmV0dXJuOwogICAgICB9CiAgICB9CiAgfQp9IC8vIGVuZCBvZiBjbGFzcwo/Pg==]]></data>
	</file>
	<file>
	  <filename>/lib/class.LISEURLOperations.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHANCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQojIExJU0UgLSBMaXN0IEl0IFNwZWNpYWwgRWRpdGlvbg0KIyBWZXJzaW9uIDEuMg0KIyBBIGZvcmsgb2YgTGlzdEkyDQojIG1haW50YWluZWQgYnkgRmVybmFuZG8gTW9yZ2FkbyBBS0EgSm8gTW9yZw0KIyBzaW5jZSAyMDE1DQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIw0KIyBPcmlnaW5hbCBBdXRob3I6IEJlbiBNYWxlbiwgPGJlbkBjb25jZXB0ZmFjdG9yeS5jb20uYXU+DQojIENvLU1haW50YWluZXI6IFNpbW9uIFJhZGZvcmQsIDxzaW1vbkBjb25jZXB0ZmFjdG9yeS5jb20uYXU+DQojIFdlYjogd3d3LmNvbmNlcHRmYWN0b3J5LmNvbS5hdQ0KIw0KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCiMNCiMgTWFpbnRhaW5lciBzaW5jZSAyMDExIHVwIHRvIDIwMTQ6IEpvbmF0aGFuIFNjaG1pZCwgPGhpQGpvbmF0aGFuc2NobWlkLmRlPg0KIyBXZWI6IHd3dy5qb25hdGhhbnNjaG1pZC5kZQ0KIw0KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCiMNCiMgU29tZSB3YWNrb3Mgc3RhcnRlZCBkZXN0cm95aW5nIHN0dWZmIHNpbmNlIDIwMTIgYW5kIHN0b3BwZWQgYXQgMjAxNDoNCiMNCiMgVGFwaW8gTMO2eXR0eSwgPHRhcHNhQG9yYW5nZS1tZWRpYS5maT4NCiMgV2ViOiB3d3cub3JhbmdlLW1lZGlhLmZpDQojDQojIEdvcmFuIElsaWMsIDx1bmlxdTNlQGdtYWlsLmNvbT4NCiMgV2ViOiB3d3cuaWNoLW1hY2gtZGFzLmF0DQojDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIw0KIyBMSVNFIGlzIGEgQ01TIE1hZGUgU2ltcGxlIG1vZHVsZSB0aGF0IGVuYWJsZXMgdGhlIHdlYiBkZXZlbG9wZXIgdG8gY3JlYXRlDQojIG11bHRpcGxlIGxpc3RzIHRocm91Z2hvdXQgYSBzaXRlLiBJdCBjYW4gYmUgZHVwbGljYXRlZCBhbmQgZ2l2ZW4gZnJpZW5kbHkNCiMgbmFtZXMgZm9yIGVhc2llciBjbGllbnQgbWFpbnRlbmFuY2UuDQojDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIyBCRUdJTl9MSUNFTlNFDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIyBUaGlzIGZpbGUgaXMgcGFydCBvZiBMSVNFDQojIExJU0UgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5DQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5DQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yDQojIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uDQojDQojIExJU0UgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLA0KIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZg0KIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlDQojIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuDQojIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlDQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlDQojIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcgVVNBDQojIE9yIHJlYWQgaXQgb25saW5lOiBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwNCiMNCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQojIEVORF9MSUNFTlNFDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KDQpjbGFzcyBMSVNFVVJMT3BlcmF0aW9ucw0Kew0KICBwdWJsaWMgc3RhdGljIGZpbmFsIGZ1bmN0aW9uIGNyZWF0ZV9zdGF0aWNfcm91dGVzKCRtb2QpDQogIHsNCiAgICBjbXNfcm91dGVfbWFuYWdlcjo6ZGVsX3N0YXRpYygnJywgJG1vZC0+R2V0TmFtZSgpICk7DQoNCiAgICAvLyBHZXQgc3VtbWFyeXBhZ2UNCiAgICAkc3VtbWFyeXBhZ2UgPSAkbW9kLT5HZXRQcmVmZXJlbmNlKCdzdW1tYXJ5cGFnZScsIG51bGwpOw0KICAgIA0KICAgIGlmKGlzX251bGwoJHN1bW1hcnlwYWdlKSkgDQogICAgew0KICAgIA0KICAgICAgaWYoIWlzc2V0KCRjb250ZW50b3BzKSkNCiAgICAgICAgJGNvbnRlbnRvcHMgPSBjbXNtcygpLT5HZXRDb250ZW50T3BlcmF0aW9ucygpOw0KICAgICAgICANCiAgICAgICRzdW1tYXJ5cGFnZSA9ICRjb250ZW50b3BzLT5HZXREZWZhdWx0UGFnZUlEKCk7DQogICAgfQ0KICAgICAgDQogICAgICAvLyBHZXQgZGV0YWlscGFnZQ0KICAgICAgJGRldGFpbHBhZ2UgPSAkbW9kLT5HZXRQcmVmZXJlbmNlKCdkZXRhaWxwYWdlJywgbnVsbCk7DQogICAgICBpZihpc19udWxsKCRkZXRhaWxwYWdlKSkgDQogICAgICB7DQogICAgICANCiAgICAgICAgaWYoIWlzc2V0KCRjb250ZW50b3BzKSkNCiAgICAgICAgICAkY29udGVudG9wcyA9IGNtc21zKCktPkdldENvbnRlbnRPcGVyYXRpb25zKCk7DQogICAgICAgIA0KICAgICAgICAkZGV0YWlscGFnZSA9ICRjb250ZW50b3BzLT5HZXREZWZhdWx0UGFnZUlEKCk7DQogICAgICB9DQogICAgICANCiAgICAgIC8vIEdldCBzdWJjYXRlZ29yeQ0KICAgICAgJHN1YmNhdGVnb3J5ID0gJG1vZC0+R2V0UHJlZmVyZW5jZSgnc3ViY2F0ZWdvcnknKTsNCiAgICAgIA0KICAgICAgLy8gdGFncyAgICANCiAgICAgICRtb2QtPlJlZ2lzdGVyUm91dGUoDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgJy8nDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgLiAkbW9kLT5wcmVmaXgNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAuICdcL3RhZ1wvKD9QPHRhZz4uKz8pXC8oP1A8cmV0dXJuaWQ+WzAtOV0rKVwkLycsIA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFycmF5KCdhY3Rpb24nID0+ICdkZWZhdWx0JykNCiAgICAgICAgICAgICAgICAgICAgICAgICAgKTsNCiAgICAgIA0KICAgICAgLy8gQXJjaGl2ZQ0KICAgICAgJG1vZC0+UmVnaXN0ZXJSb3V0ZSgNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAnLycgDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgLiAkbW9kLT5wcmVmaXggDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgLiAnXC9hcmNoaXZlXC8oP1A8ZmlsdGVyX3llYXI+WzAtOV0rPylcLyg/UDxmaWx0ZXJfbW9udGg+WzAtOV0rPylcLyg/UDxyZXR1cm5pZD5bMC05XSspJC8nLCANCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcnJheSgnYWN0aW9uJyA9PiAnZGVmYXVsdCcpDQogICAgICAgICAgICAgICAgICAgICAgICAgICk7DQogICAgICAgICAgICAgICAgICAgICAgICAgIA0KICAgICAgLy8kbW9kLT5SZWdpc3RlclJvdXRlKCcvJy4kbW9kLT5wcmVmaXguJ1wvYXJjaGl2ZVwvKD9QPGZpbHRlcl95ZWFyPlswLTldKz8pXC8oP1A8ZmlsdGVyX21vbnRoPlswLTldKz8pJC8nLCBhcnJheSgnYWN0aW9uJyA9PiAnZGVmYXVsdCcsICdyZXR1cm5pZCcgPT4gJHN1bW1hcnlwYWdlKSk7DQogICAgICAkbW9kLT5SZWdpc3RlclJvdXRlKA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICcvJw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIC4gJG1vZC0+cHJlZml4DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgLiAnXC9hcmNoaXZlXC8oP1A8ZmlsdGVyX3llYXI+WzAtOV0rPylcLyg/UDxyZXR1cm5pZD5bMC05XSspJC8nLCANCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcnJheSgnYWN0aW9uJyA9PiAnZGVmYXVsdCcpDQogICAgICAgICAgICAgICAgICAgICAgICAgICk7DQogICAgICAvLyRtb2QtPlJlZ2lzdGVyUm91dGUoJy8nLiRtb2QtPnByZWZpeC4nXC9hcmNoaXZlXC8oP1A8ZmlsdGVyX3llYXI+WzAtOV0rPykkLycsIGFycmF5KCdhY3Rpb24nID0+ICdkZWZhdWx0JywgJ3JldHVybmlkJyA9PiAkc3VtbWFyeXBhZ2UpKTsNCiAgICAgIA0KICAgICAgLy8gUGFnaW5hdGlvbg0KICAgICAgJG1vZC0+UmVnaXN0ZXJSb3V0ZSgNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAnLycNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAuICRtb2QtPnByZWZpeA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIC4gJ1wvcGFnZVwvKD9QPHBhZ2VudW1iZXI+WzAtOV0rPylcLyg/UDxwYWdlbGltaXQ+WzAtOV0rKVwvKD9QPHJldHVybmlkPlswLTldKykkLycsIA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFycmF5KCdhY3Rpb24nID0+ICdkZWZhdWx0JykNCiAgICAgICAgICAgICAgICAgICAgICAgICAgKTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgDQogICAgICAkbW9kLT5SZWdpc3RlclJvdXRlKA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICcvJw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIC4gJG1vZC0+cHJlZml4DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgLiAnXC9wYWdlXC8oP1A8cGFnZW51bWJlcj5bMC05XSs/KVwvKD9QPHJldHVybmlkPlswLTldKykkLycsIA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFycmF5KCdhY3Rpb24nID0+ICdkZWZhdWx0JykNCiAgICAgICAgICAgICAgICAgICAgICAgICAgKTsNCiAgICAgIA0KICAgICAgLy8gSGllcmFyY2h5IHZpZXcgICAgDQogICAgICAkbW9kLT5SZWdpc3RlclJvdXRlKA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICcvJw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIC4gJG1vZC0+cHJlZml4DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgLiAnXC8oP1A8Y2F0ZWdvcnk+Lis/KVwvKD9QPGlkX2hpZXJhcmNoeT5bMC05Ll0rKVwvKD9QPGl0ZW0+Lis/KVwvKD9QPHJldHVybmlkPlswLTldKykkLycsIA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFycmF5KCdhY3Rpb24nID0+ICdkZXRhaWwnKQ0KICAgICAgICAgICAgICAgICAgICAgICAgICApOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIA0KICAgICAgJG1vZC0+UmVnaXN0ZXJSb3V0ZSgNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAnLycgDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgLiAkbW9kLT5wcmVmaXgNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAuICdcLyg/UDxjYXRlZ29yeT4uKz8pXC8oP1A8aWRfaGllcmFyY2h5PlswLTkuXSspXC8oP1A8cmV0dXJuaWQ+WzAtOV0rKSQvJywNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcnJheSgnYWN0aW9uJyA9PiAnZGVmYXVsdCcsICdzdWJjYXRlZ29yeScgPT4gJHN1YmNhdGVnb3J5KQ0KICAgICAgICAgICAgICAgICAgICAgICAgICApOyAgDQogICANCiAgICAgIC8vIFNpbmd1bGFyICAgIA0KICAgICAgJG1vZC0+UmVnaXN0ZXJSb3V0ZSgNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAnLycNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAuICRtb2QtPnByZWZpeA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIC4gJ1wvKD9QPGl0ZW0+Lis/KVwvKD9QPHJldHVybmlkPlswLTldKylcLyg/UDxkZXRhaWx0ZW1wbGF0ZT4uKz8pJC8nLCANCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcnJheSgnYWN0aW9uJyA9PiAnZGV0YWlsJykNCiAgICAgICAgICAgICAgICAgICAgICAgICAgKTsNCiAgICAgICAgICAgICAgICAgIA0KICAgICAgLy8kbW9kLT5SZWdpc3RlclJvdXRlKCcvJy4kbW9kLT5wcmVmaXguJ1wvKD9QPGl0ZW0+Lis/KVwvKD9QPGRldGFpbHRlbXBsYXRlPlthLXpBLVpfLV0rPykkLycsIGFycmF5KCdhY3Rpb24nID0+ICdkZXRhaWwnLCAncmV0dXJuaWQnID0+ICRkZXRhaWxwYWdlKSk7DQogICAgICANCiAgICAgICRtb2QtPlJlZ2lzdGVyUm91dGUoDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgJy8nDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgLiAkbW9kLT5wcmVmaXgNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAuICdcLyg/UDxpdGVtPi4rPylcLyg/UDxyZXR1cm5pZD5bMC05XSspJC8nLCANCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcnJheSgnYWN0aW9uJyA9PiAnZGV0YWlsJykNCiAgICAgICAgICAgICAgICAgICAgICAgICAgKTsNCiAgICAgICAgDQogICAgICAvLyRtb2QtPlJlZ2lzdGVyUm91dGUoJy8nLiRtb2QtPnByZWZpeC4nXC8oP1A8aXRlbT4uKz8pJC8nLCBhcnJheSgnYWN0aW9uJyA9PiAnZGV0YWlsJywgJ3JldHVybmlkJyA9PiAkZGV0YWlscGFnZSkpOyAgDQoNCiAgfQ0KICANCiAgcHVibGljIHN0YXRpYyBmaW5hbCBmdW5jdGlvbiBjcmVhdGVfbGluaygNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJG1vZCA9IE5VTEwsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRpZCA9IE5VTEwsIA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkYWN0aW9uICA9ICcnLCANCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJHJldHVybmlkID0gJycsIA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkY29udGVudHMgPSAnJywgDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRwYXJhbXMgPSBhcnJheSgpLCANCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJHdhcm5fbWVzc2FnZSA9ICcnLCANCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJG9ubHlocmVmID0gZmFsc2UsIA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkaW5saW5lID0gZmFsc2UsIA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkYWRkdGV4dCA9ICcnLCANCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJHRhcmdldGNvbnRlbnRvbmx5ID0gZmFsc2UsIA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkcHJldHR5dXJsID0gJycNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICkNCiAgew0KICAgIA0KICAgIA0KICAgIC8vIEdldCBzdW1tYXJ5cGFnZQ0KICAgICRzdW1tYXJ5cGFnZSA9ICRtb2QtPkdldFByZWZlcmVuY2UoJ3N1bW1hcnlwYWdlJywgbnVsbCk7DQogICAgDQogICAgLy8gR2V0IGRldGFpbHBhZ2UNCiAgICAkZGV0YWlscGFnZSA9ICRtb2QtPkdldFByZWZlcmVuY2UoJ2RldGFpbHBhZ2UnLCBudWxsKTsNCiAgICAgICAgDQogICAgc3dpdGNoKCRhY3Rpb24pIA0KICAgIHsNCg0KICAgICAgY2FzZSAnZGV0YWlsJzoNCiAgICAgICAgICAgIA0KICAgICAgICBpZiggIWVtcHR5KCRwcmV0dHl1cmwpICkNCiAgICAgICAgew0KICAgICAgICAgIHJldHVybiAkbW9kLT5DcmVhdGVMaW5rKA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJGlkLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJGFjdGlvbiwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRkZXRhaWxwYWdlLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJGNvbnRlbnRzLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJHBhcmFtcywNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICR3YXJuX21lc3NhZ2UsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkb25seWhyZWYsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkaW5saW5lLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJGFkZHRleHQsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkdGFyZ2V0Y29udGVudG9ubHksDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkcHJldHR5dXJsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKTsNCiAgICAgICAgfQ0KICAgICAgDQogICAgICAgICRzdHJpbmdfYXJyYXkgPSBhcnJheSgpOw0KICAgICAgICAkc3RyaW5nX2FycmF5W10gPSAkbW9kLT5wcmVmaXg7DQogICAgICAgIA0KICAgICAgICAvLyBDYXRlZ29yeSAvIGhpZXJhcmNoaWFsIHN0dWZmDQogICAgICAgIGlmKGlzc2V0KCRwYXJhbXNbJ2NhdGVnb3J5J10pICYmIGlzc2V0KCRwYXJhbXNbJ2lkX2hpZXJhcmNoeSddKSkgDQogICAgICAgIHsNCiAgICAgICAgDQogICAgICAgICAgaWYoIWlzc2V0KCRtb2QtPnVzZV9oaW50c1snY2F0ZWdvcnknXSkpIA0KICAgICAgICAgIHsNCiAgICAgICAgICAgICRzdHJpbmdfYXJyYXlbXSA9ICRwYXJhbXNbJ2NhdGVnb3J5J107DQogICAgICAgICAgfQ0KICAgICAgICAgIA0KICAgICAgICAgIGlmKCFpc3NldCgkbW9kLT51c2VfaGludHNbJ2lkX2hpZXJhcmNoeSddKSkNCiAgICAgICAgICB7DQogICAgICAgICAgICAkc3RyaW5nX2FycmF5W10gPSAkcGFyYW1zWydpZF9oaWVyYXJjaHknXTsNCiAgICAgICAgICB9DQogICAgICAgIH0gICAgDQogICAgICAgICAgICANCiAgICAgICAgJHN0cmluZ19hcnJheVtdID0gJHBhcmFtc1snaXRlbSddOw0KICAgICAgICANCiAgICAgICAgLy9pZiggIWlzc2V0KCRtb2QtPnVzZV9oaW50c1sncmV0dXJuaWQnXSkgfHwgaXNfbnVsbCgkZGV0YWlscGFnZSkgKQ0KICAgICAgICBpZiggIWlzc2V0KCRtb2QtPnVzZV9oaW50c1sncmV0dXJuaWQnXSkgKQ0KICAgICAgICB7DQogICAgICAgICAgJHN0cmluZ19hcnJheVtdID0gJHJldHVybmlkOw0KICAgICAgICB9DQoNCiAgICAgICAgaWYoIWlzc2V0KCRtb2QtPnVzZV9oaW50c1snZGV0YWlsdGVtcGxhdGUnXSkgJiYgaXNzZXQoJHBhcmFtc1snZGV0YWlsdGVtcGxhdGUnXSkpIA0KICAgICAgICAgICRzdHJpbmdfYXJyYXlbXSA9ICRwYXJhbXNbJ2RldGFpbHRlbXBsYXRlJ107DQogICAgICAgIA0KICAgICAgICAkcHJldHR5dXJsID0gaW1wbG9kZSgnLycsICRzdHJpbmdfYXJyYXkpOyAgICAgIA0KICAgICAgYnJlYWs7DQoNCiAgICAgIGNhc2UgJ2RlZmF1bHQnOg0KICAgICAgICANCiAgICAgICAgJHN0cmluZ19hcnJheSA9IGFycmF5KCk7DQogICAgICAgICRzdHJpbmdfYXJyYXlbXSA9ICRtb2QtPnByZWZpeDsgIA0KICAgICAgICANCiAgICAgICAgaWYoIGlzc2V0KCRwYXJhbXNbJ3RhZyddKSApDQogICAgICAgIHsNCiAgICAgICAgICAkc3RyaW5nX2FycmF5W10gPSAndGFnJzsNCiAgICAgICAgICAkc3RyaW5nX2FycmF5W10gPSAkcGFyYW1zWyd0YWcnXTsNCi8vICAgICAgICAgIA0KLy8gICAgICAgICAgaWYoIWlzc2V0KCRtb2QtPnVzZV9oaW50c1snc2VhcmNodGVtcGxhdGUnXSkgJiYgaXNzZXQoJHBhcmFtc1snc2VhcmNodGVtcGxhdGUnXSkpIA0KLy8gICAgICAgICAgew0KLy8gICAgICAgICAgICAkc3RyaW5nX2FycmF5W10gPSAkcGFyYW1zWydzZWFyY2h0ZW1wbGF0ZSddOw0KLy8gICAgICAgICAgfQ0KICAgICAgICAgIA0KICAgICAgICB9ICAgICAgICANCiAgICAgICAgDQogICAgICAgIC8vIENhdGVnb3J5IC8gaGllcmFyY2hpYWwgc3R1ZmYNCiAgICAgICAgaWYoIWlzc2V0KCRtb2QtPnVzZV9oaW50c1snY2F0ZWdvcnknXSkgJiYgaXNzZXQoJHBhcmFtc1snY2F0ZWdvcnknXSkpIA0KICAgICAgICB7DQogICAgICAgICAgJHN0cmluZ19hcnJheVtdID0gJHBhcmFtc1snY2F0ZWdvcnknXTsNCiAgICAgICAgfSAgICAgICAgICANCiAgICAgICAgDQogICAgICAgIGlmKCFpc3NldCgkbW9kLT51c2VfaGludHNbJ2lkX2hpZXJhcmNoeSddKSAmJiBpc3NldCgkcGFyYW1zWydpZF9oaWVyYXJjaHknXSkpDQogICAgICAgIHsNCiAgICAgICAgICAkc3RyaW5nX2FycmF5W10gPSAkcGFyYW1zWydpZF9oaWVyYXJjaHknXTsNCiAgICAgICAgfSAgICAgICANCg0KICAgICAgICAvLyBQYWdlbGltaXQgc3R1ZmYsIHdvbid0IHdvcmsgdG9nZXRoZXIgd2l0aCBoaWVyYXJjaHkgc3R1ZmYuDQogICAgICAgIGlmKGlzc2V0KCRwYXJhbXNbJ3BhZ2VsaW1pdCddKSkNCiAgICAgICAgew0KICAgICAgICAgICRzdHJpbmdfYXJyYXlbXSA9ICdwYWdlJzsNCiAgICAgICAgICAkc3RyaW5nX2FycmF5W10gPSAkcGFyYW1zWydwYWdlbnVtYmVyJ107DQogICAgICAgIA0KICAgICAgICAgIGlmKCFpc3NldCgkbW9kLT51c2VfaGludHNbJ3BhZ2VsaW1pdCddKSkgDQogICAgICAgICAgew0KICAgICAgICAgICAgJHN0cmluZ19hcnJheVtdID0gJHBhcmFtc1sncGFnZWxpbWl0J107DQogICAgICAgICAgfSAgDQogICAgICAgIH0NCiAgICAgICAgDQogICAgICAgIC8vIEFyY2hpdmUgc3R1ZmYuDQogICAgICAgIGlmKGlzc2V0KCRwYXJhbXNbJ2ZpbHRlcl95ZWFyJ10pIHx8IGlzc2V0KCRwYXJhbXNbJ2ZpbHRlcl9tb250aCddKSkgDQogICAgICAgIHsNCiAgICAgICAgICAkc3RyaW5nX2FycmF5W10gPSAnYXJjaGl2ZSc7DQogICAgICAgICAgDQogICAgICAgICAgaWYoIWlzc2V0KCRtb2QtPnVzZV9oaW50c1snZmlsdGVyX3llYXInXSkgJiYgaXNzZXQoJHBhcmFtc1snZmlsdGVyX3llYXInXSkpIA0KICAgICAgICAgICAgJHN0cmluZ19hcnJheVtdID0gJHBhcmFtc1snZmlsdGVyX3llYXInXTsgIA0KICAgICAgICANCiAgICAgICAgICBpZighaXNzZXQoJG1vZC0+dXNlX2hpbnRzWydmaWx0ZXJfbW9udGgnXSkgJiYgaXNzZXQoJHBhcmFtc1snZmlsdGVyX21vbnRoJ10pKSANCiAgICAgICAgICAgICRzdHJpbmdfYXJyYXlbXSA9ICRwYXJhbXNbJ2ZpbHRlcl9tb250aCddOyAgDQogICAgICAgIH0gICAgICAgIA0KICAgICAgICANCiAgICAgICAgLy9pZighaXNzZXQoJG1vZC0+dXNlX2hpbnRzWydyZXR1cm5pZCddKSkgICAgICAgIA0KICAgICAgICBpZiggIWlzc2V0KCRtb2QtPnVzZV9oaW50c1sncmV0dXJuaWQnXSkgJiYgaXNfbnVsbCgkZGV0YWlscGFnZSkgKQ0KICAgICAgICB7DQogICAgICAgICAgJHN0cmluZ19hcnJheVtdID0gJHJldHVybmlkOw0KICAgICAgICAgICRwYXJhbXNbJ3JldHVybmlkJ10gPSAkcmV0dXJuaWQ7DQogICAgICAgIH0NCg0KICAgICAgICBpZighaXNzZXQoJG1vZC0+dXNlX2hpbnRzWydkZXRhaWx0ZW1wbGF0ZSddKSAmJiBpc3NldCgkcGFyYW1zWydkZXRhaWx0ZW1wbGF0ZSddKSkgDQogICAgICAgIHsNCiAgICAgICAgICAkc3RyaW5nX2FycmF5W10gPSAkcGFyYW1zWydkZXRhaWx0ZW1wbGF0ZSddOw0KICAgICAgICB9ICANCg0KICAgICAgICAkcHJldHR5dXJsID0gaW1wbG9kZSgnLycsICRzdHJpbmdfYXJyYXkpOyAgICAgIA0KICAgICAgYnJlYWs7ICAgICAgDQogICAgfQ0KICAgIA0KICAgICRyZXQgPSAkbW9kLT5DcmVhdGVMaW5rKA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJGlkLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJGFjdGlvbiwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRyZXR1cm5pZCwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRjb250ZW50cywNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRwYXJhbXMsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkd2Fybl9tZXNzYWdlLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJG9ubHlocmVmLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJGlubGluZSwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRhZGR0ZXh0LA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJHRhcmdldGNvbnRlbnRvbmx5LA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJHByZXR0eXVybA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICk7DQogICAgICAgIA0KICAgIHJldHVybiAkcmV0Ow0KICB9DQogIA0KfQ0KPz4NCg==]]></data>
	</file>
	<file>
	  <filename>/lib/class.lise_datetime_utils.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHANCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQojIExJU0UgLSBMaXN0IEl0IFNwZWNpYWwgRWRpdGlvbg0KIyBWZXJzaW9uIDEuMg0KIyBBIGZvcmsgb2YgTGlzdEkyDQojIG1haW50YWluZWQgYnkgRmVybmFuZG8gTW9yZ2FkbyBBS0EgSm8gTW9yZw0KIyBzaW5jZSAyMDE1DQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIw0KIyBPcmlnaW5hbCBBdXRob3I6IEJlbiBNYWxlbiwgPGJlbkBjb25jZXB0ZmFjdG9yeS5jb20uYXU+DQojIENvLU1haW50YWluZXI6IFNpbW9uIFJhZGZvcmQsIDxzaW1vbkBjb25jZXB0ZmFjdG9yeS5jb20uYXU+DQojIFdlYjogd3d3LmNvbmNlcHRmYWN0b3J5LmNvbS5hdQ0KIw0KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCiMNCiMgTWFpbnRhaW5lciBzaW5jZSAyMDExIHVwIHRvIDIwMTQ6IEpvbmF0aGFuIFNjaG1pZCwgPGhpQGpvbmF0aGFuc2NobWlkLmRlPg0KIyBXZWI6IHd3dy5qb25hdGhhbnNjaG1pZC5kZQ0KIw0KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCiMNCiMgU29tZSB3YWNrb3Mgc3RhcnRlZCBkZXN0cm95aW5nIHN0dWZmIHNpbmNlIDIwMTIgYW5kIHN0b3BwZWQgYXQgMjAxNDoNCiMNCiMgVGFwaW8gTMO2eXR0eSwgPHRhcHNhQG9yYW5nZS1tZWRpYS5maT4NCiMgV2ViOiB3d3cub3JhbmdlLW1lZGlhLmZpDQojDQojIEdvcmFuIElsaWMsIDx1bmlxdTNlQGdtYWlsLmNvbT4NCiMgV2ViOiB3d3cuaWNoLW1hY2gtZGFzLmF0DQojDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIw0KIyBMSVNFIGlzIGEgQ01TIE1hZGUgU2ltcGxlIG1vZHVsZSB0aGF0IGVuYWJsZXMgdGhlIHdlYiBkZXZlbG9wZXIgdG8gY3JlYXRlDQojIG11bHRpcGxlIGxpc3RzIHRocm91Z2hvdXQgYSBzaXRlLiBJdCBjYW4gYmUgZHVwbGljYXRlZCBhbmQgZ2l2ZW4gZnJpZW5kbHkNCiMgbmFtZXMgZm9yIGVhc2llciBjbGllbnQgbWFpbnRlbmFuY2UuDQojDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIyBCRUdJTl9MSUNFTlNFDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIyBUaGlzIGZpbGUgaXMgcGFydCBvZiBMSVNFDQojIExJU0UgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5DQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5DQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yDQojIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uDQojDQojIExJU0UgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLA0KIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZg0KIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlDQojIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuDQojIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlDQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlDQojIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcgVVNBDQojIE9yIHJlYWQgaXQgb25saW5lOiBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwNCiMNCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQojIEVORF9MSUNFTlNFDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KY2xhc3MgbGlzZV9kYXRldGltZV91dGlscw0Kew0KICBwcml2YXRlIHN0YXRpYyAkX3RpbWVwaWNrZXIycGhwID0gYXJyYXkoDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdoaCcgID0+ICdoJywNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ0hIJyAgPT4gJ0gnLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnbW0nICA9PiAnaScsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdzcycgID0+ICdzJywNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3AnICAgPT4gJ0EnLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnSCcgICA9PiAnRycsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdoJyAgID0+ICdnJywNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICk7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIA0KICBwcml2YXRlIHN0YXRpYyAkX2RhdGVwaWNrZXIycGhwID0gYXJyYXkoDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdBVE9NJyAgICAgID0+ICdZLW0tZCcsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdDT09LSUUnICAgID0+ICdELCBkIE0gWScsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdJU09fODYwMScgID0+ICdZLW0tZCcsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdSRkNfODIyJyAgID0+ICdELCBqIE0geScsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdSRkNfODUwJyAgID0+ICdsLCBkLU0teScsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdSRkNfMTAzNicgID0+ICdELCBqIE0geScsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdSRkNfMTEyMycgID0+ICdELCBqIE0gWScsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdSRkNfMjgyMicgID0+ICdELCBqIE0gWScsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdSU1MnICAgICAgID0+ICdELCBqIE0geScsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdUSUNLUycgICAgID0+ICc8IT4nLCAvLyByZXBsYWNlIHdpdGggV2luZG93cyB0aWNrcw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnVElNRVNUQU1QJyA9PiAnVScsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdXM0MnICAgICAgID0+ICdZLW0tZCcsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdkZCcgICAgICAgID0+ICdkJywNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ29vJyAgICAgICAgPT4gJzx6PicsIC8vIHBhZCB0byB0aHJlZSBkaWdpdHMNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ0REJyAgICAgICAgPT4gJ2wnLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnbW0nICAgICAgICA9PiAnbScsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdNTScgICAgICAgID0+ICdGJywNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3l5JyAgICAgICAgPT4gJ1knLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnQCcgICAgICAgICA9PiAnVScsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICchJyAgICAgICAgID0+ICc8IT4nLCAvLyByZXBsYWNlIHdpdGggV2luZG93cyB0aWNrcw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnZCcgICAgICAgICA9PiAnaicsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdvJyAgICAgICAgID0+ICd6JywNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ0QnICAgICAgICAgPT4gJ0QnLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnbScgICAgICAgICA9PiAnbicsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdNJyAgICAgICAgID0+ICdNJywNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3knICAgICAgICAgPT4gJ3knLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIA0KICBwcml2YXRlIHN0YXRpYyBmdW5jdGlvbiBfZm9ybWF0X3JlcGxhY2UoJGZvcm1hdCwgJHRyYW5zbGF0aW9ucykNCiAgew0KICAgICRwYXR0ZXJuID0gam9pbiggJ3wnLCBhcnJheV9tYXAoICdwcmVnX3F1b3RlJywgYXJyYXlfa2V5cygkdHJhbnNsYXRpb25zKSApICk7DQoNCiAgICBwcmVnX21hdGNoX2FsbCgiLyRwYXR0ZXJuL3MiLCAkZm9ybWF0LCAkbWF0Y2hlcyk7DQogICAgDQogICAgJHByb2Nlc3NlZCA9IGFycmF5KCk7DQogICAgDQogICAgZm9yZWFjaCAoJG1hdGNoZXNbMF0gYXMgJG1hdGNoKQ0KICAgIHsNCiAgICAgIGlmICggIWlzc2V0KCRwcm9jZXNzZWRbJG1hdGNoXSkgKSANCiAgICAgIHsNCiAgICAgICAgJGZvcm1hdCA9IHN0cl9yZXBsYWNlKCRtYXRjaCwgJHRyYW5zbGF0aW9uc1skbWF0Y2hdLCAkZm9ybWF0KTsNCiAgICAgICAgJHByb2Nlc3NlZFskbWF0Y2hdID0gdHJ1ZTsNCiAgICAgIH0NCiAgICB9DQogICAgDQogICAgcmV0dXJuICRmb3JtYXQ7DQogIH0gDQogIA0KICBwdWJsaWMgc3RhdGljIGZpbmFsIGZ1bmN0aW9uIGRhdGVfdG9fdW5peF90cygkdmFsdWUpDQogIHsNCiAgICAjIGZpeCB0byB0YWtlIGludG8gYWNjb3VudCB0aW1lem9uZSBvZmZzZXRzIGFzIHN1Z2dlc3RlZCBieQ0KICAgICMgRGFycmVuIEtpZXJtYW4gKGtpZXJ3ZWIpDQogICAgJG9mZnNldCA9IGRhdGVfZm9ybWF0KGRhdGVfY3JlYXRlKCR2YWx1ZSksICdaJyk7DQogICAgcmV0dXJuIGRhdGVfZm9ybWF0KGRhdGVfY3JlYXRlKCR2YWx1ZSksICdVJykgKyAkb2Zmc2V0Ow0KICB9DQogIA0KICBwdWJsaWMgc3RhdGljIGZpbmFsIGZ1bmN0aW9uIHVuaXhfdHNfdG9fZGF0ZSgkdmFsdWUsICRmb3JtYXQpDQogIHsNCiAgICAkZGF0ZXRpbWUgPSBuZXcgRGF0ZVRpbWUoIkAkdmFsdWUiKTsNCiAgICByZXR1cm4gJGRhdGV0aW1lLT5mb3JtYXQoJGZvcm1hdCk7DQogIH0NCg0KICBwdWJsaWMgc3RhdGljIGZ1bmN0aW9uIGZvcm1hdF90b19kYXRlcGlja2VyKCRmb3JtYXQpIA0KICB7DQogICAgcmV0dXJuIHNlbGY6Ol9mb3JtYXRfcmVwbGFjZSgkZm9ybWF0LCBzZWxmOjokX2RhdGVwaWNrZXIycGhwKTsNCiAgfQ0KDQogIHB1YmxpYyBzdGF0aWMgZnVuY3Rpb24gZm9ybWF0X3RvX3RpbWVwaWNrZXIoJGZvcm1hdCkNCiAgew0KICAgIHJldHVybiBzZWxmOjpfZm9ybWF0X3JlcGxhY2UoJGZvcm1hdCwgc2VsZjo6JF90aW1lcGlja2VyMnBocCk7DQogIH0NCn0NCj8+]]></data>
	</file>
	<file>
	  <filename>/lib/class.LISE_LI2converter.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBMSVNFIC0gTGlzdCBJdCBTcGVjaWFsIEVkaXRpb24KIyBWZXJzaW9uIDEuMgojIEEgZm9yayBvZiBMaXN0STIKIyBtYWludGFpbmVkIGJ5IEZlcm5hbmRvIE1vcmdhZG8gQUtBIEpvIE1vcmcKIyBzaW5jZSAyMDE1CiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBPcmlnaW5hbCBBdXRob3I6IEJlbiBNYWxlbiwgPGJlbkBjb25jZXB0ZmFjdG9yeS5jb20uYXU+CiMgQ28tTWFpbnRhaW5lcjogU2ltb24gUmFkZm9yZCwgPHNpbW9uQGNvbmNlcHRmYWN0b3J5LmNvbS5hdT4KIyBXZWI6IHd3dy5jb25jZXB0ZmFjdG9yeS5jb20uYXUKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojCiMgTWFpbnRhaW5lciBzaW5jZSAyMDExIHVwIHRvIDIwMTQ6IEpvbmF0aGFuIFNjaG1pZCwgPGhpQGpvbmF0aGFuc2NobWlkLmRlPgojIFdlYjogd3d3LmpvbmF0aGFuc2NobWlkLmRlCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIwojIFNvbWUgd2Fja29zIHN0YXJ0ZWQgZGVzdHJveWluZyBzdHVmZiBzaW5jZSAyMDEyIGFuZCBzdG9wcGVkIGF0IDIwMTQ6CiMKIyBUYXBpbyBMw7Z5dHR5LCA8dGFwc2FAb3JhbmdlLW1lZGlhLmZpPgojIFdlYjogd3d3Lm9yYW5nZS1tZWRpYS5maQojCiMgR29yYW4gSWxpYywgPHVuaXF1M2VAZ21haWwuY29tPgojIFdlYjogd3d3LmljaC1tYWNoLWRhcy5hdAojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBMSVNFIGlzIGEgQ01TIE1hZGUgU2ltcGxlIG1vZHVsZSB0aGF0IGVuYWJsZXMgdGhlIHdlYiBkZXZlbG9wZXIgdG8gY3JlYXRlCiMgbXVsdGlwbGUgbGlzdHMgdGhyb3VnaG91dCBhIHNpdGUuIEl0IGNhbiBiZSBkdXBsaWNhdGVkIGFuZCBnaXZlbiBmcmllbmRseQojIG5hbWVzIGZvciBlYXNpZXIgY2xpZW50IG1haW50ZW5hbmNlLgojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgQkVHSU5fTElDRU5TRQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIExJU0UKIyBMSVNFIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgTElTRSBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBFTkRfTElDRU5TRQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCmNsYXNzIExJU0VfTEkyY29udmVydGVyIAp7CgogICMtLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAjIENvbnN0YW50cwogICMtLS0tLS0tLS0tLS0tLS0tLS0tLS0KCiAgY29uc3QgTU9EX1BSRUZJWCA9ICdMSVNFJzsKICBjb25zdCBMSTJfUFJFRklYID0gJ0xpc3RJdDInOwogIGNvbnN0IExJMlBMQUNFSE9MREVSID0gJzAyNGZjNzBkNTEwNzRjOWY0MmVlN2Y5MTdjMzdiNGVkJzsKICBjb25zdCBQTEFDRUhPTERFUiA9ICdQTEFDRV9IT0xERVJfX18nOwoKICAjLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgIyBBdHRyaWJ1dGVzCiAgIy0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKICBwcml2YXRlICRzcmM7CiAgcHJpdmF0ZSAkZHVwOwogIHByaXZhdGUgJGRzdDsKICBwcml2YXRlICRtb2RuYW1lOwogIHByaXZhdGUgJG9sZG1vZG5hbWU7CiAgCglwcml2YXRlIHN0YXRpYyAkX2ludmFsaWQgPSBhcnJheSgnLicsICcuLicpOwoKCSMtLS0tLS0tLS0tLS0tLS0tLS0tLS0KCSMgTWFnaWMgbWV0aG9kcwoJIy0tLS0tLS0tLS0tLS0tLS0tLS0tLQkJCgkJCiAgcHVibGljIGZ1bmN0aW9uIF9fY29uc3RydWN0KCRvbGRtb2RuYW1lID0gTlVMTCkgCiAgewogICAgaWYoIGVtcHR5KCRvbGRtb2RuYW1lKSApIHRocm93IG5ldyBcTElTRVxFeGNlcHRpb24oJ0Vycm9yIGluICcgLiBfX0NMQVNTX18gLiAnIGNvbnN0cnVjdG9yOiBpbnZhbGlkIHBhcmFtZXRlciEnKTsKICAgIGlmKCAhc3RhcnRzd2l0aCgkb2xkbW9kbmFtZSwgc2VsZjo6TEkyX1BSRUZJWCkgKSB0aHJvdyBuZXcgXExJU0VcRXhjZXB0aW9uKCdFcnJvciBpbiAnIC4gX19DTEFTU19fIC4gJyBjb25zdHJ1Y3RvcjogaW52YWxpZCBwYXJhbWV0ZXIhJyk7CgogICAgJHRoaXMtPm9sZG1vZG5hbWUgPSAkb2xkbW9kbmFtZTsKICAgICRtb2RuYW1lID0gc3Vic3RyKCAkb2xkbW9kbmFtZSwgIHN0cmxlbihzZWxmOjpMSTJfUFJFRklYKSApOwogICAgJHRoaXMtPm1vZG5hbWUgPSBzZWxmOjpNT0RfUFJFRklYIC4gJG1vZG5hbWU7CiAgICAkdGhpcy0+ZHVwID0gZGlybmFtZShkaXJuYW1lKF9fRklMRV9fKSkgLiBESVJFQ1RPUllfU0VQQVJBVE9SIC4gJ2R1cGxpY2F0ZSc7CiAgICAkdGhpcy0+c3JjID0gZGlybmFtZShkaXJuYW1lKGRpcm5hbWUoX19GSUxFX18pKSkgLiBESVJFQ1RPUllfU0VQQVJBVE9SIC4gJHRoaXMtPm9sZG1vZG5hbWU7CiAgICAkdGhpcy0+ZHN0ID0gZGlybmFtZShkaXJuYW1lKGRpcm5hbWUoX19GSUxFX18pKSkgLiBESVJFQ1RPUllfU0VQQVJBVE9SIC4gJHRoaXMtPm1vZG5hbWU7Cgl9CgogICMtLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAjIFNldC9HZXQKICAjLS0tLS0tLS0tLS0tLS0tLS0tLS0tCQkKCiAgcHVibGljIGZ1bmN0aW9uIFNldE1vZHVsZSgkbmFtZSkKICB7CgkgICR0aGlzLT5tb2RuYW1lID0gJG5hbWU7CiAgfQoKICBwdWJsaWMgZnVuY3Rpb24gU2V0RHVwbGljYXRlKCRuYW1lKQogIHsKICAgICR0aGlzLT5kdXAgPSAkbmFtZTsKICB9CiAgICAKICBwdWJsaWMgZnVuY3Rpb24gU2V0U291cmNlKCRuYW1lKQogIHsKCSAgJHRoaXMtPnNyYyA9ICRuYW1lOwogIH0KCiAgcHVibGljIGZ1bmN0aW9uIFNldERlc3RpbmF0aW9uKCRuYW1lKQogIHsKCSAgJHRoaXMtPmRzdCA9ICRuYW1lOwogIH0JCgogICMtLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAjIFJ1bm5lcgogICMtLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAKICBwdWJsaWMgZnVuY3Rpb24gUnVuKCkKCXsKICAgICMgMXN0IGNvcHkgdGhlIG9yaWdpbmFsCiAgICAkdGhpcy0+Q29weVJlY3Vyc2l2ZSgkdGhpcy0+c3JjLCAkdGhpcy0+ZHN0KTsKICAgICMgdGhlbiBvdmVyd3JpdGUgdGhlIHdpdGggb3VyIG93biBleGNlcHQgZm9yIHRoZSBpY29uLnBuZyBhbmQgaWNvbi5naWYKICAgIHNlbGY6OiRfaW52YWxpZFtdID0gJ2ljb24ucG5nJzsKICAgIHNlbGY6OiRfaW52YWxpZFtdID0gJ2ljb24uZ2lmJzsKCQkkdGhpcy0+Q29weVJlY3Vyc2l2ZSgkdGhpcy0+ZHVwLCAkdGhpcy0+ZHN0KTsKCQkkdGhpcy0+UmVuYW1lKCk7CgkJJHRoaXMtPkZpeE1vZHVsZWZpbGUoKTsKICAgICMgbm93IHdlIGRlYWN0aXZhdGUgb2xkIGFuZCBpbnN0YWxsIG5ldwogICAgJG1vZG9wcyA9IGNtc21zKCktPkdldE1vZHVsZU9wZXJhdGlvbnMoKTsKICAgICRtb2RvcHMtPkFjdGl2YXRlTW9kdWxlKCR0aGlzLT5vbGRtb2RuYW1lLCBGQUxTRSk7CiAgICAkbW9kb3BzLT5JbnN0YWxsTW9kdWxlKCR0aGlzLT5tb2RuYW1lKTsKICAgICMgY2xvbmUgdGhlIHJlc3Qgb2YgdGhlIGRhdGEKCQkkdGhpcy0+Q29weURhdGFCYXNlKCk7CiAgICAkdGhpcy0+Q29weVRlbXBsYXRlcygpOwogICAgJHRoaXMtPkNvcHlQcmVmZXJlbmNlcygpOwogICAgIyBub3cgd2UgaGF2ZSBhIGJhc2UgTElTRSB2ZXJzaW9uIG9mIG9sZCBMSTIgaW5zdGFuY2UKICAgICMgdXBncmFkZSB0byBsYXRlc3QgTElTRQogICAgJHRoaXMtPlVwZ3JhZGVGcm9tQmFzZSgpOwoJCXJldHVybiAkdGhpcy0+bW9kbmFtZTsKCX0KCQkKCSMtLS0tLS0tLS0tLS0tLS0tLS0tLS0KCSMgRmlsZSBoYW5kbGluZyBtZXRob2RzCgkjLS0tLS0tLS0tLS0tLS0tLS0tLS0tCQkKCglwcml2YXRlIGZ1bmN0aW9uIENvcHlSZWN1cnNpdmUoJHNyYywgJGRzdCkKCXsKCQkkZGlyID0gb3BlbmRpcigkc3JjKTsgLy8gPC0gVGhyb3cgZXhjZXB0aW9uIG9uIGZhaWx1cmU/CgkJQG1rZGlyKCRkc3QpOyAvLyA8LSBUaHJvdyBleGNlcHRpb24gb24gZmFpbHVyZT8KCQkKCQl3aGlsZShmYWxzZSAhPT0gKCAkZmlsZSA9IHJlYWRkaXIoJGRpcikpICkgCiAgICB7CgkJCgkJCWlmIChpbl9hcnJheSgkZmlsZSwgc2VsZjo6JF9pbnZhbGlkKSkgY29udGludWU7IC8vIDwtIFNraXAgc3R1ZmYgd2UgbmV2ZXIgYWxsb3cgdG8gY29weQoKCQkJaWYgKCBpc19kaXIoJHNyYyAuIERJUkVDVE9SWV9TRVBBUkFUT1IgLiAkZmlsZSkgKSAKICAgICAgeyAKCQkJCSR0aGlzLT5Db3B5UmVjdXJzaXZlKCRzcmMgLiBESVJFQ1RPUllfU0VQQVJBVE9SIC4gJGZpbGUsICRkc3QgLiBESVJFQ1RPUllfU0VQQVJBVE9SIC4gJGZpbGUpOyAKCQkJfSAKCQkJZWxzZSAKICAgICAgeyAKCQkJCUBjb3B5KCRzcmMgLiBESVJFQ1RPUllfU0VQQVJBVE9SIC4gJGZpbGUsICRkc3QgLiBESVJFQ1RPUllfU0VQQVJBVE9SIC4gJGZpbGUpOyAvLyA8LSBUaHJvdyBleGNlcHRpb24gb24gZmFpbHVyZT8KCQkJfSAKCQl9IAoJCQoJCWNsb3NlZGlyKCRkaXIpOyAKCX0KCQogIHByaXZhdGUgZnVuY3Rpb24gUmVuYW1lKCkKCXsKCQlAcmVuYW1lKCR0aGlzLT5kc3QgLiBESVJFQ1RPUllfU0VQQVJBVE9SIC4gc2VsZjo6UExBQ0VIT0xERVIgLiAnLnBocCcsIAoJCQkkdGhpcy0+ZHN0IC4gRElSRUNUT1JZX1NFUEFSQVRPUiAuICR0aGlzLT5tb2RuYW1lIC4nLm1vZHVsZS5waHAnKTsgLy8gPC0gVGhyb3cgZXhjZXB0aW9uIG9uIGZhaWx1cmU/Cgl9CgkKCXByaXZhdGUgZnVuY3Rpb24gRml4TW9kdWxlZmlsZSgpCgl7CiAgICAkZmlsZW5hbWUgPSAkdGhpcy0+ZHN0IC4gRElSRUNUT1JZX1NFUEFSQVRPUiAuICR0aGlzLT5tb2RuYW1lIC4nLm1vZHVsZS5waHAnOwogICAgJGxpc2VfdmVyc2lvbiA9IFxjbXNfdXRpbHM6OmdldF9tb2R1bGUoJ0xJU0UnKS0+R2V0VmVyc2lvbigpOwogICAgCiAgICAvLyBSZXBsYWNlbWVudHMKICAgICRfY29udGVudHMgPSBmaWxlX2dldF9jb250ZW50cygkZmlsZW5hbWUpOyAvLyA8LSBUaHJvdyBleGNlcHRpb24gb24gZmFpbHVyZT8KICAgICRfY29udGVudHMgPSBzdHJfcmVwbGFjZShzZWxmOjpQTEFDRUhPTERFUiwgJHRoaXMtPm1vZG5hbWUsICRfY29udGVudHMpOwogICAgJF9jb250ZW50cyA9IHN0cl9yZXBsYWNlKHNlbGY6OlZFUlNJT05fUExBQ0VIT0xERVIsICciJyAuICRsaXNlX3ZlcnNpb24gLiAnIicsICRfY29udGVudHMpOwogICAgCiAgICAvLyBXcml0ZSBmaWxlCiAgICAkZmggPSBAZm9wZW4oJGZpbGVuYW1lLCAndycpOwogICAgaWYoISRmaCkgdGhyb3cgbmV3IFxMSVNFXEV4Y2VwdGlvbignRXJyb3I6ICcgLiBfX0NMQVNTX18gLiAnIC0gJyAuIF9fTUVUSE9EX18gLiAnIC0+IGZhaWxlZCB0byBvcGVuICcgLiAkZmlsZW5hbWUsIFxMSVNFXEVycm9yOjpESVNDUkVURSApOwogICAgCiAgICB0cnkKICAgIHsKICAgICAgaWYoICFmd3JpdGUoJGZoLCAkX2NvbnRlbnRzKSApIHRocm93IG5ldyBcTElTRVxFeGNlcHRpb24oJ0Vycm9yOiAnIC4gX19DTEFTU19fIC4gJyAtICcgLiBfX01FVEhPRF9fIC4gJyAtPiBmYWlsZWQgdG8gd3JpdGUgdG8gJyAuICRmaWxlbmFtZSwgXExJU0VcRXJyb3I6OkRJU0NSRVRFICk7CiAgICB9CiAgICBjYXRjaChFeGNlcHRpb24gJGUpCiAgICB7CiAgICAgICMgbWFrZSBzdXJlIHlvdSBjbG9zZSB0aGUgZmlsZSBhbmQgcmV0aHJvdyBleGNlcHRpb24KICAgICAgZmNsb3NlKCRmaCk7CiAgICAgIHRocm93ICRlOwogICAgfQoJfQogIAogIHByaXZhdGUgZnVuY3Rpb24gQ29weURhdGFCYXNlKCkKICB7CiAgICAkbW9kX3ByZWZpeCA9IGNtc19kYl9wcmVmaXgoKSAuICdtb2R1bGVfJyAuIHN0cnRvbG93ZXIoJHRoaXMtPm1vZG5hbWUpIC4gJ18nOwogICAgJG9sZF9tb2RfcHJlZml4ID0gY21zX2RiX3ByZWZpeCgpIC4gJ21vZHVsZV8nIC4gc3RydG9sb3dlcigkdGhpcy0+b2xkbW9kbmFtZSkgLiAnXyc7CgogICAgJHRhYmxlX2xpc3QgPSBhcnJheSgKICAgICAgICAgICAgICAgICAgICAgICAgJ2l0ZW0nLAogICAgICAgICAgICAgICAgICAgICAgICAnY2F0ZWdvcnknLAogICAgICAgICAgICAgICAgICAgICAgICAnaXRlbV9jYXRlZ29yaWVzJywKICAgICAgICAgICAgICAgICAgICAgICAgJ2ZpZWxkZGVmJywKICAgICAgICAgICAgICAgICAgICAgICAgJ2ZpZWxkZGVmX29wdHMnLAogICAgICAgICAgICAgICAgICAgICAgICAnZmllbGR2YWwnICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICk7CiAgICAkZGIgPSBjbXNtcygpLT5HZXREYigpOwoKICAgIGZvcmVhY2goJHRhYmxlX2xpc3QgYXMgJG9uZSkKICAgIHsKICAgICAgJG50ID0gJG1vZF9wcmVmaXggLiAkb25lOyAKICAgICAgJG90PSAkb2xkX21vZF9wcmVmaXggLiAkb25lOwoKICAgICAgJHEgPSAnRFJPUCBUQUJMRSBJRiBFWElTVFMgJyAuICRudDsKICAgICAgJHIgPSAkZGItPkV4ZWN1dGUoJHEpOwoKICAgICAgaWYoISRyKSB0aHJvdyBuZXcgXExJU0VcRXhjZXB0aW9uKCRkYi0+RXJyb3JObygpIC4gJyAtICcgLiAkZGItPkVycm9yTXNnKCkgLCBcTElTRVxFcnJvcjo6RElTQ1JFVEVfREIgKTsgCgogICAgICAkcSA9ICdDUkVBVEUgVEFCTEUgSUYgTk9UIEVYSVNUUyAnIC4gJG50IC4gJyBMSUtFICcgLiAkb3Q7IAogICAgICAkciA9ICRkYi0+RXhlY3V0ZSgkcSk7CgogICAgICBpZighJHIpIHRocm93IG5ldyBcTElTRVxFeGNlcHRpb24oJGRiLT5FcnJvck5vKCkgLiAnIC0gJyAuICRkYi0+RXJyb3JNc2coKSAsIFxMSVNFXEVycm9yOjpESVNDUkVURV9EQiApOwogICAgICAgIAogICAgICAkcSA9ICdJTlNFUlQgJyAuICRudCAuICcgU0VMRUNUICogRlJPTSAnIC4gJG90OyAKICAgICAgJHIgPSAkZGItPkV4ZWN1dGUoJHEpOwoKICAgICAgaWYoISRyKSB0aHJvdyBuZXcgXExJU0VcRXhjZXB0aW9uKCRkYi0+RXJyb3JObygpIC4gJyAtICcgLiAkZGItPkVycm9yTXNnKCkgLCBcTElTRVxFcnJvcjo6RElTQ1JFVEVfREIgKTs7CgogICAgICAvLyBub3cgd2UgYWRkIHRoZSBtaXNzaW5nIGNvbHVtbiAodXJsKQogICAgICBpZiAoJG9uZSA9PSAnaXRlbScpIAogICAgICB7CiAgICAgICAkcSA9ICdBTFRFUiBUQUJMRSAnIC4gJG50IC4gJyBBREQgdXJsIFZBUkNIQVIoMjUwKSc7CiAgICAgICAkciA9ICRkYi0+RXhlY3V0ZSgkcSk7CiAgICAgICAKICAgICAgIGlmKCEkcikgdGhyb3cgbmV3IFxMSVNFXEV4Y2VwdGlvbigkZGItPkVycm9yTm8oKSAuICcgLSAnIC4gJGRiLT5FcnJvck1zZygpICwgXExJU0VcRXJyb3I6OkRJU0NSRVRFX0RCICk7IAogICAgICB9CiAgICAgICAKICAgICAgLy8gbm93IHdlIGFkZCB0aGUgbWlzc2luZyBjb2x1bW4gKHRlbXBsYXRlKQogICAgICBpZiAoJG9uZSA9PSAnZmllbGRkZWYnKQogICAgICB7CiAgICAgICRxID0gJ0FMVEVSIFRBQkxFICcgLiAkbnQgLiAnIEFERCB0ZW1wbGF0ZSBWQVJDSEFSKDI1MCknOwogICAgICAkciA9ICRkYi0+RXhlY3V0ZSgkcSk7CgogICAgICBpZighJHIpIHRocm93IG5ldyBcTElTRVxFeGNlcHRpb24oJGRiLT5FcnJvck5vKCkgLiAnIC0gJyAuICRkYi0+RXJyb3JNc2coKSAsIFxMSVNFXEVycm9yOjpESVNDUkVURV9EQiApOwogICAgICB9CiAgICB9CiAgfQogIAogIHByaXZhdGUgZnVuY3Rpb24gQ29weVByZWZlcmVuY2VzKCkKICB7CiAgICAKICAgICRwcmVmcyA9IGFycmF5KAogICAgICAgICAgICAgICAgICAgICdmcmllbmRseW5hbWUnLAogICAgICAgICAgICAgICAgICAgICdhZG1pbnNlY3Rpb24nLAogICAgICAgICAgICAgICAgICAgICdtb2RkZXNjcmlwdGlvbicsCiAgICAgICAgICAgICAgICAgICAgJ2l0ZW1fdGl0bGUnLAogICAgICAgICAgICAgICAgICAgICdzb3J0b3JkZXInLAogICAgICAgICAgICAgICAgICAgICdpdGVtX3Npbmd1bGFyJywKICAgICAgICAgICAgICAgICAgICAnaXRlbV9wbHVyYWwnLAogICAgICAgICAgICAgICAgICAgICdkaXNwbGF5X2NyZWF0ZV9kYXRlJywKICAgICAgICAgICAgICAgICAgICAnaXRlbV9jb2xzJywKICAgICAgICAgICAgICAgICAgICAnaXRlbXNfcGVyX3BhZ2UnLAogICAgICAgICAgICAgICAgICAgICd1cmxfcHJlZml4JywKICAgICAgICAgICAgICAgICAgICAnZGlzcGxheV9pbmxpbmUnLAogICAgICAgICAgICAgICAgICAgICdzdWJjYXRlZ29yeScsCiAgICAgICAgICAgICAgICAgICAgJ3VybHRlbXBsYXRlJywKICAgICAgICAgICAgICAgICAgICAnZGV0YWlscGFnZScsCiAgICAgICAgICAgICAgICAgICAgJ3N1bW1hcnlwYWdlJywKICAgICAgICAgICAgICAgICAgICAncmVpbmRleF9zZWFyY2gnCiAgICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgICAgICAgIAogICAgJHRlbXBsYXRlX3ByZWZzID0gYXJyYXkoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdfZGVmYXVsdF9zdW1tYXJ5X3RlbXBsYXRlJywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ19kZWZhdWx0X2RldGFpbF90ZW1wbGF0ZScsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdfZGVmYXVsdF9zZWFyY2hfdGVtcGxhdGUnLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnX2RlZmF1bHRfY2F0ZWdvcnlfdGVtcGxhdGUnLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnX2RlZmF1bHRfYXJjaGl2ZV90ZW1wbGF0ZScKICAgICAgICAgICAgICAgICAgICAgICAgICAgICk7CiAgICAKICAgICRuZXdtb2QgPSBNb2R1bGVPcGVyYXRpb25zOjpnZXRfaW5zdGFuY2UoKS0+Z2V0X21vZHVsZV9pbnN0YW5jZSgkdGhpcy0+bW9kbmFtZSwgTlVMTCwgVFJVRSk7CiAgICAkb2xkbW9kID0gTW9kdWxlT3BlcmF0aW9uczo6Z2V0X2luc3RhbmNlKCktPmdldF9tb2R1bGVfaW5zdGFuY2UoJHRoaXMtPm9sZG1vZG5hbWUsIE5VTEwsIFRSVUUpOwogICAgCiAgICBmb3JlYWNoKCRwcmVmcyBhcyAkcHJlZikKICAgIHsKICAgICAgaWYoJHByZWYgPT0gJ2ZyaWVuZGx5bmFtZScpCiAgICAgIHsKICAgICAgICAkbmV3bW9kLT5TZXRQcmVmZXJlbmNlKCRwcmVmLCAkb2xkbW9kLT5HZXRQcmVmZXJlbmNlKCRwcmVmLCAnJykgLiAnKicgKTsKICAgICAgICBjb250aW51ZTsKICAgICAgfQogICAgICAKICAgICAgJG5ld21vZC0+U2V0UHJlZmVyZW5jZSgkcHJlZiwgJG9sZG1vZC0+R2V0UHJlZmVyZW5jZSgkcHJlZiwgJycpICk7CiAgICB9CiAgICAgICAgCiAgICBmb3JlYWNoKCR0ZW1wbGF0ZV9wcmVmcyBhcyAkcHJlZikKICAgIHsgICAgIAogICAgICAkbmV3bW9kLT5TZXRQcmVmZXJlbmNlKCR0aGlzLT5tb2RuYW1lIC4gJHByZWYsICRvbGRtb2QtPkdldFByZWZlcmVuY2UoJHRoaXMtPm1vZG5hbWUgLiAkcHJlZiwgJycpICk7CiAgICB9CgogIH0KICAKICBwcml2YXRlIGZ1bmN0aW9uIENvcHlUZW1wbGF0ZXMoKQogIHsKICAgIAogICAgJG5ld21vZCA9IE1vZHVsZU9wZXJhdGlvbnM6OmdldF9pbnN0YW5jZSgpLT5nZXRfbW9kdWxlX2luc3RhbmNlKCR0aGlzLT5tb2RuYW1lLCBOVUxMLCBUUlVFKTsKICAgICRvbGRtb2QgPSBNb2R1bGVPcGVyYXRpb25zOjpnZXRfaW5zdGFuY2UoKS0+Z2V0X21vZHVsZV9pbnN0YW5jZSgkdGhpcy0+b2xkbW9kbmFtZSwgTlVMTCwgVFJVRSk7CgogICAgCiAgICAkdGVtcGxhdGVzID0gJG5ld21vZC0+TGlzdFRlbXBsYXRlcygpOwogICAgCiAgICBmb3JlYWNoKCR0ZW1wbGF0ZXMgYXMgJG9uZSkgJG5ld21vZC0+RGVsZXRlVGVtcGxhdGUoJG9uZSk7CiAgICAKICAgICR0ZW1wbGF0ZXMgPSAkb2xkbW9kLT5MaXN0VGVtcGxhdGVzKCk7CiAgICAKICAgIGZvcmVhY2goJHRlbXBsYXRlcyBhcyAkb25lKQogICAgewogICAgICAkbmV3bW9kLT5TZXRUZW1wbGF0ZSggJG9uZSwgJG9sZG1vZC0+R2V0VGVtcGxhdGUoJG9uZSkgKTsKICAgIH0KICAgICAKICB9CiAgCiAgcHJpdmF0ZSBmdW5jdGlvbiBVcGdyYWRlRnJvbUJhc2UoKQogIHsKICAgICRkYiA9IGNtc21zKCktPkdldERiKCk7CiAgICAkZGljdCA9IE5ld0RhdGFEaWN0aW9uYXJ5KCRkYik7ICAgIAogICAgJHNxbGFycmF5ID0gJGRpY3QtPkFkZENvbHVtblNRTChjbXNfZGJfcHJlZml4KCkgLiAnbW9kdWxlXycgLiAkdGhpcy0+bW9kbmFtZSAuICdfZmllbGRkZWYnLCAndGVtcGxhdGUgQygyNTUpJyk7CiAgICAkZGljdC0+RXhlY3V0ZVNRTEFycmF5KCRzcWxhcnJheSk7CiAgfQoJCn0gLy8gZW5kIG9mIGNsYXNz]]></data>
	</file>
	<file>
	  <filename>/lib/class.lise_utils.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHANCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQojIExJU0UgLSBMaXN0IEl0IFNwZWNpYWwgRWRpdGlvbg0KIyBWZXJzaW9uIDEuMg0KIyBBIGZvcmsgb2YgTGlzdEkyDQojIG1haW50YWluZWQgYnkgRmVybmFuZG8gTW9yZ2FkbyBBS0EgSm8gTW9yZw0KIyBzaW5jZSAyMDE1DQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIw0KIyBPcmlnaW5hbCBBdXRob3I6IEJlbiBNYWxlbiwgPGJlbkBjb25jZXB0ZmFjdG9yeS5jb20uYXU+DQojIENvLU1haW50YWluZXI6IFNpbW9uIFJhZGZvcmQsIDxzaW1vbkBjb25jZXB0ZmFjdG9yeS5jb20uYXU+DQojIFdlYjogd3d3LmNvbmNlcHRmYWN0b3J5LmNvbS5hdQ0KIw0KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCiMNCiMgTWFpbnRhaW5lciBzaW5jZSAyMDExIHVwIHRvIDIwMTQ6IEpvbmF0aGFuIFNjaG1pZCwgPGhpQGpvbmF0aGFuc2NobWlkLmRlPg0KIyBXZWI6IHd3dy5qb25hdGhhbnNjaG1pZC5kZQ0KIw0KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCiMNCiMgU29tZSB3YWNrb3Mgc3RhcnRlZCBkZXN0cm95aW5nIHN0dWZmIHNpbmNlIDIwMTIgYW5kIHN0b3BwZWQgYXQgMjAxNDoNCiMNCiMgVGFwaW8gTMO2eXR0eSwgPHRhcHNhQG9yYW5nZS1tZWRpYS5maT4NCiMgV2ViOiB3d3cub3JhbmdlLW1lZGlhLmZpDQojDQojIEdvcmFuIElsaWMsIDx1bmlxdTNlQGdtYWlsLmNvbT4NCiMgV2ViOiB3d3cuaWNoLW1hY2gtZGFzLmF0DQojDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIw0KIyBMSVNFIGlzIGEgQ01TIE1hZGUgU2ltcGxlIG1vZHVsZSB0aGF0IGVuYWJsZXMgdGhlIHdlYiBkZXZlbG9wZXIgdG8gY3JlYXRlDQojIG11bHRpcGxlIGxpc3RzIHRocm91Z2hvdXQgYSBzaXRlLiBJdCBjYW4gYmUgZHVwbGljYXRlZCBhbmQgZ2l2ZW4gZnJpZW5kbHkNCiMgbmFtZXMgZm9yIGVhc2llciBjbGllbnQgbWFpbnRlbmFuY2UuDQojDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIyBCRUdJTl9MSUNFTlNFDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIyBUaGlzIGZpbGUgaXMgcGFydCBvZiBMSVNFDQojIExJU0UgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5DQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5DQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yDQojIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uDQojDQojIExJU0UgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLA0KIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZg0KIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlDQojIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuDQojIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlDQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlDQojIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcgVVNBDQojIE9yIHJlYWQgaXQgb25saW5lOiBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwNCiMNCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQojIEVORF9MSUNFTlNFDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KDQpmaW5hbCBjbGFzcyBsaXNlX3V0aWxzDQp7DQogIHByaXZhdGUgc3RhdGljICRfaW5pdCA9IEZBTFNFOw0KICBwcml2YXRlIHN0YXRpYyAkX21vZDsNCiAgcHJpdmF0ZSBzdGF0aWMgJF9kYjsNCiAgcHJpdmF0ZSBzdGF0aWMgJF9jb25maWc7DQogIA0KICBwcml2YXRlIHN0YXRpYyBmdW5jdGlvbiBfaW5pdGlhbGl6ZSgpIDogdm9pZA0KICB7DQogICAgaWYoIXNlbGY6OiRfaW5pdCkNCiAgICB7DQogICAgICBzZWxmOjokX21vZCA9IGNtc21zKCktPkdldE1vZHVsZUluc3RhbmNlKCdMSVNFJyk7DQogICAgICBzZWxmOjokX2RiID0gY21zbXMoKS0+R2V0RGIoKTsNCiAgICAgIHNlbGY6OiRfY29uZmlnID0gXExJU0VcQ29uZmlnTWFuYWdlcjo6R2V0Q29uZmlnSW5zdGFuY2Uoc2VsZjo6JF9tb2QpOw0KICAgICAgc2VsZjo6JF9pbml0ID0gVFJVRTsNCiAgICB9IA0KICB9DQogIA0KICAvKioNCiAgKiBmaXJzdCBwYXNzIHRvIGNvbmZvcm0gdG8gYSB2YWxpZCBhbGlhcw0KICAqLw0KICBwcml2YXRlIHN0YXRpYyBmdW5jdGlvbiBfdG9fYWxpYXNfZm9ybWF0KCRzdHIpIDogc3RyaW5nDQogIHsNCiAgICAvLyBsZWZ0IHRyaW0gdXAgdG8gdGhlIGZpcnN0IGxldHRlcg0KICAgICRzdHIgPSBwcmVnX3JlcGxhY2UoJy9eW15hLXpBLVowLTlfXHg3Zi1ceGZmXSovJywgJycsICRzdHIpOw0KICANCiAgICAvLyByZXBsYWNlIGFueSBpbnZhbGlkIGNoYXJhY3RlcnMgd2l0aCBhbiB1bmRlcnNjb3JlDQogICAgJHN0ciA9IHByZWdfcmVwbGFjZSgnL1teYS16QS1aMC05X1wtXHg3Zi1ceGZmXS8nLCAnXycsICRzdHIpOw0KICANCiAgICAvLyByZXBsYWNlIG11bHRpcGxlIHVuZGVyc2NvcmVzIHdpdGggc2luZ2xlIHVuZGVyc2NvcmUNCiAgICAkc3RyID0gcHJlZ19yZXBsYWNlKCcvXysvJywgJ18nLCAkc3RyKTsNCiAgDQogICAgLy8gY29udmVydCB0byBsb3dlcmNhc2UNCiAgICAkc3RyID0gc3RydG9sb3dlcigkc3RyKTsNCiAgDQogICAgLy8gcmVtb3ZlIHVuZGVyc2NvcmUgZnJvbSBzdGFydCBhbmQgZW5kDQogICAgJHN0ciA9IHRyaW0oJHN0ciwgJ18nKTsNCiAgICANCiAgICByZXR1cm4gJHN0cjsNCiAgfQ0KDQoJcHVibGljIHN0YXRpYyBmdW5jdGlvbiAmYXJyYXlfdG9fb2JqZWN0KCRhcnJheSkNCiAgew0KCQkkb2JqID0gbmV3IFN0ZENsYXNzOw0KCQlmb3JlYWNoKCRhcnJheSBhcyAka2V5PT4kdmFsdWUpIHsNCgkJDQoJCQkkb2JqLT4ka2V5ID0gJHZhbHVlOw0KCQl9DQoJCQ0KCQlyZXR1cm4gJG9iajsNCgl9DQoJICANCglwdWJsaWMgc3RhdGljIGZ1bmN0aW9uIGNsZWFuX3BhcmFtcygmJHBhcmFtcywgJGxpc3QsICRhY2Nlc3NsaXN0ID0gZmFsc2UpIDogdm9pZA0KICB7DQoJDQoJCWZvcmVhY2goJHBhcmFtcyBhcyAka2V5ID0+ICR2YWx1ZSkgew0KCQkNCgkJCWlmKCRhY2Nlc3NsaXN0KSB7DQoNCgkJCQlpZighaW5fYXJyYXkoJGtleSwgKGFycmF5KSRsaXN0KSkgew0KCQkJCQ0KCQkJCQl1bnNldCgkcGFyYW1zWyRrZXldKTsJDQoJCQkJfQkJCQ0KCQkJDQoJCQl9IGVsc2Ugew0KCQkNCgkJCQlpZihpbl9hcnJheSgka2V5LCAoYXJyYXkpJGxpc3QpKSB7DQoJCQkJDQoJCQkJCXVuc2V0KCRwYXJhbXNbJGtleV0pOwkNCgkJCQl9DQoJCQkNCgkJCX0NCgkJfQkNCgl9DQoJDQoJcHVibGljIHN0YXRpYyBmdW5jdGlvbiBpbml0X3Zhcigkc3RyaW5nLCAkcGFyYW1zLCAkZGVmYXVsdCA9ICcnKQ0KCXsNCgkJJHZhciA9ICRkZWZhdWx0Ow0KDQoJCWlmKGlzc2V0KCRwYXJhbXNbJHN0cmluZ10pKQ0KCQkJJHZhciA9ICRwYXJhbXNbJHN0cmluZ107DQoJCQkJCQkNCgkJcmV0dXJuICR2YXI7DQoJfQkNCgkNCgkvKioNCgkgKiBHZW5lcmF0ZSBhbGlhcw0KCSAqIEBwYXJhbSBzdHJpbmcgJG5hbWUgVGhlIHN0cmluZyB0aGF0IHRoZSBhbGlhcyB3aWxsIGJlIGdlbmVyYXRlZCBmcm9tDQoJICogQHJldHVybiBzdHJpbmcgUmV0dXJucyB0aGUgYWxpYXMNCgkgKi8NCglwdWJsaWMgc3RhdGljIGZ1bmN0aW9uIGdlbmVyYXRlX2FsaWFzKCRuYW1lLCAkcHJlZml4ID0gJ2l0ZW0nKSA6IHN0cmluZw0KICB7DQoJCWlmKCFpc19zdHJpbmcoJG5hbWUpKQ0KCQkJcmV0dXJuICcnOw0KICAgICAgDQogICAgJGFsaWFzID0gc2VsZjo6X3RvX2FsaWFzX2Zvcm1hdCgkbmFtZSk7DQoJCSRwcmVmaXggPSBzZWxmOjpfdG9fYWxpYXNfZm9ybWF0KCRwcmVmaXgpOw0KICANCiAgICAjIGFsaWFzZXMgY2Fubm90IHN0YXJ0IHdpdGggbnVtYmVycw0KICAgIGlmKHNlbGY6OlN0YXJ0c1dpdGhOdW1iZXIoJGFsaWFzKSApDQogICAgew0KICAgICAgaWYoIWlzX3N0cmluZygkcHJlZml4KSkgJHByZWZpeCA9ICdpdGVtJzsNCiAgICAgIGlmKHNlbGY6OlN0YXJ0c1dpdGhOdW1iZXIoJHByZWZpeCkgKSAkcHJlZml4ID0gJ2l0ZW0nOw0KICAgICAgDQogICAgICAkYWxpYXMgPSAgJHByZWZpeCAuICctJyAuICRhbGlhczsNCiAgICB9DQoNCgkJcmV0dXJuICRhbGlhczsNCgl9DQogIA0KICAvKioNCiAgKiBHZW5lcmF0ZSBhbiB1bmlxdWUgYWxpYXMgZ2l2ZW4gYSBtb2R1bGUgaW5zdGFuY2UNCiAgKiBAcGFyYW0gc3RyaW5nICRuYW1lIFRoZSBzdHJpbmcgdGhhdCB0aGUgYWxpYXMgd2lsbCBiZSBnZW5lcmF0ZWQgZnJvbQ0KICAqIEByZXR1cm4gc3RyaW5nIFJldHVybnMgdGhlIGFsaWFzDQogICovDQogIHB1YmxpYyBzdGF0aWMgZnVuY3Rpb24gZ2VuZXJhdGVfdW5pcXVlX2FsaWFzKExJU0UgJG1vZCwgJG5hbWUpIDogc3RyaW5nDQogIHsNCiAgICAkcHJlZml4ID0gJG1vZC0+R2V0UHJlZmVyZW5jZSgnaXRlbV9zaW5ndWxhcicsICdpdGVtJyk7DQogICAgJGFsaWFzID0gJHRtcCA9IHNlbGY6OmdlbmVyYXRlX2FsaWFzKCRuYW1lLCAkcHJlZml4KTsNCiAgICAkYyA9IDA7DQogICAgDQogICAgd2hpbGUoICFzZWxmOjppc191bmlxdWVfYWxpYXMoJG1vZCwgJGFsaWFzKSApDQogICAgew0KICAgICAgJGFsaWFzID0gJHRtcCAuJy0nIC4gKHN0cmluZykgJGMrKzsNCiAgICB9DQogICAgDQogICAgcmV0dXJuICRhbGlhczsNCiAgfQ0KICANCgkvKioNCgkgKiBJcyB2YWxpZCBhbGlhcw0KCSAqIEBwYXJhbSBzdHJpbmcgJGFsaWFzDQoJICogQHJldHVybiBib29sIFJldHVybnMgdHJ1ZSBpZiBzdHJpbmcgaW4gcXVlc3Rpb24gaXMgYSB2YWxpZCBhbGlhcywgb3INCgkgKiBmYWxzZSBvdGhlcndpc2UNCgkgKi8NCglwdWJsaWMgc3RhdGljIGZ1bmN0aW9uIGlzX3ZhbGlkX2FsaWFzKCRhbGlhcykgOiBib29sDQogIHsNCgkJaWYoICFpc19zdHJpbmcoJGFsaWFzKSApIHJldHVybiBGQUxTRTsNCiAgICAgIA0KICAgIGlmKHNlbGY6OlN0YXJ0c1dpdGhOdW1iZXIoJGFsaWFzKSApIHJldHVybiBGQUxTRTsNCgkNCgkJLy8gY2hlY2sgYWxpYXMNCgkJLy8gaHR0cDovL3d3dy5waHAubmV0L21hbnVhbC9lbi9sYW5ndWFnZS52YXJpYWJsZXMuYmFzaWNzLnBocA0KCQlpZiAocHJlZ19tYXRjaCgnL15bYS16QS1aX1x4N2YtXHhmZl1bYS16QS1aMC05X1wtXHg3Zi1ceGZmXSokLycsICRhbGlhcykpIA0KICAgIHsNCgkJCXJldHVybiB0cnVlOw0KCQl9IA0KICAgIGVsc2UgDQogICAgew0KCQkJcmV0dXJuIGZhbHNlOw0KCQl9DQoJfQ0KICANCiAgcHVibGljIHN0YXRpYyBmdW5jdGlvbiBTdGFydHNXaXRoTnVtYmVyKCRzdHIpIDogYm9vbA0KICB7DQogICAgcmV0dXJuIHByZWdfbWF0Y2goJy9eXGQvJywgJHN0cikgPT09IDE7DQogIH0NCiAgDQogIC8qKg0KICAgKiBIYXMgUHJlZml4DQogICAqDQogICAqIEBwYXJhbSBzdHJpbmcgJHN0cmluZyBUaGUgc3RyaW5nIGluIHF1ZXN0aW9uDQogICAqIEBwYXJhbSBhcnJheSAgJHByZWZpeGVzIGFuIGFycmF5IG9mIHByZWZpeGVzIHRvIGNoZWNrIGFnYWluc3QNCiAgICoNCiAgICogQHJldHVybiBib29sIFJldHVybnMgdHJ1ZSBpZiBwcmVmaXggaXMgZm91bmQsIG9yIGZhbHNlIG90aGVyd2lzZQ0KICAgKi8NCglwdWJsaWMgc3RhdGljIGZ1bmN0aW9uIGhhc19wcmVmaXgoJHN0cmluZywgJHByZWZpeGVzKQ0KCXsNCgkJaWYgKCFpc19zdHJpbmcoJHN0cmluZykpDQoJCQlyZXR1cm4gRkFMU0U7DQoJCWlmICghaXNfYXJyYXkoJHByZWZpeGVzKSkNCgkJCXJldHVybiBGQUxTRTsNCgkNCgkJZm9yZWFjaCAoJHByZWZpeGVzIGFzICRwcmVmaXgpDQoJCXsNCgkJCWlmIChzdHJwb3MoJHN0cmluZywgJHByZWZpeCkgPT09IDApDQoJCQl7DQoJCQkJcmV0dXJuIHRydWU7DQoJCQl9DQoJCX0NCgkNCgkJcmV0dXJuIGZhbHNlOw0KCX0NCgkNCglwdWJsaWMgc3RhdGljIGZ1bmN0aW9uIGV4cGxvZGVfb3JkZXJieSgkcGFyYW0sICR2YWxpZF9jb2xzKSA6IGFycmF5DQogIHsNCgkNCgkJJG9yZGVyX2NvbHMgPSBhcnJheSgpOw0KCQkkY3VzdG9tX2NvbHMgPSBhcnJheSgpOw0KCQkkaW5kZXggPSAwOw0KCQkNCgkJZm9yZWFjaChleHBsb2RlKCcsJywgJHBhcmFtKSBhcyAkY29sKSANCiAgICB7DQoJCQkkY29sID0gdHJpbSgkY29sKTsNCgkJCSRjb2xfcGFydHMgPSBleHBsb2RlKCd8JywgJGNvbCk7DQoJDQoJCQkvLyBjb2x1bW4gbmFtZQ0KCQkJJGNvbF9uYW1lID0gJGNvbF9wYXJ0c1swXTsNCgkJCSRjb2xfb3JkZXIgPSAnQVNDJzsNCgkNCgkJCS8vIG9yZGVyIGNvbHVtbiBhc2NlbmRpbmcgb3IgZGVzY2VuZGluZw0KCQkJaWYoaXNzZXQoJGNvbF9wYXJ0c1sxXSkpIA0KICAgICAgewkNCgkJCQkkY29sX29yZGVyID0gKGluX2FycmF5KCRjb2xfcGFydHNbMV0sIGFycmF5KCdBU0MnLCAnREVTQycpKSA/ICRjb2xfcGFydHNbMV0gOiAnQVNDJyk7DQoJCQl9DQoJDQoJCQkkY29sX29yZGVyID0gKGluX2FycmF5KCRjb2xfb3JkZXIsIGFycmF5KCdBU0MnLCAnREVTQycpKSA/ICRjb2xfb3JkZXIgOiAnQVNDJyk7DQoJDQoJCQlpZihpc3NldCgkdmFsaWRfY29sc1skY29sX25hbWVdKSkgDQogICAgICB7DQoJCQkJJG9yZGVyX2NvbHNbJGluZGV4XSA9ICR2YWxpZF9jb2xzWyRjb2xfbmFtZV0gLiAnICcgLiAkY29sX29yZGVyOw0KCQkJfSANCgkJCWVsc2VpZiAoc3RhcnRzd2l0aCgkY29sX25hbWUsICdjdXN0b21fJykpIHsNCgkJCQkNCgkJCQkkY3VzdG9tX25hbWUgPSBzdWJzdHIoJGNvbF9uYW1lLCA3KTsNCgkJCQkkb2JqID0gbmV3IHN0ZENsYXNzOw0KCQkJCSRvYmotPm5hbWUgPSAkY3VzdG9tX25hbWU7DQoJCQkJJG9iai0+b3JkZXIgPSAkY29sX29yZGVyOw0KCQkJCQ0KCQkJCSRjdXN0b21fY29sc1skaW5kZXhdID0gJG9iajsNCgkJCX0NCgkJCQ0KCQkJJGluZGV4Kys7DQoJCX0NCgkJCQ0KCQlyZXR1cm4gYXJyYXkoJG9yZGVyX2NvbHMsICRjdXN0b21fY29scyk7DQoJfQ0KICANCiAgcHVibGljIHN0YXRpYyBmdW5jdGlvbiBpc0NNUzIoKSA6IGJvb2wNCiAgew0KICAgIHJldHVybiAoYm9vbCkodmVyc2lvbl9jb21wYXJlKENNU19WRVJTSU9OLCAnMi4wJykgPiAtMSk7DQogIH0NCiAgICANCiAgcHVibGljIHN0YXRpYyBmaW5hbCBmdW5jdGlvbiBpc0NNUzIwMSgpDQogIHsNCiAgICByZXR1cm4gKGJvb2wpKHZlcnNpb25fY29tcGFyZShDTVNfVkVSU0lPTiwgJzIuMC4xJykgPiAtMSk7DQogIH0NCiAgDQogICAgDQogIHB1YmxpYyBzdGF0aWMgZnVuY3Rpb24gVUlnaWYoJG5hbWUgPSAnJykgOiBzdHJpbmcNCiAgew0KICAgIHNlbGY6Ol9pbml0aWFsaXplKCk7DQogICAgJHVybCA9IHNlbGY6OiRfbW9kLT5HZXRNb2R1bGVVUkxQYXRoKCkgLiAnL2ltYWdlcy9tb2R1bGV1aS8nIC4gJG5hbWUgLiAnLmdpZic7IA0KICAgIHJldHVybiAkdXJsOw0KICB9DQogICAgICANCiAgcHVibGljIHN0YXRpYyBmdW5jdGlvbiBVSXBuZygkbmFtZSA9ICcnKSA6IHN0cmluZw0KICB7DQogICAgc2VsZjo6X2luaXRpYWxpemUoKTsNCiAgICAkdXJsID0gc2VsZjo6JF9tb2QtPkdldE1vZHVsZVVSTFBhdGgoKSAuICcvaW1hZ2VzL21vZHVsZXVpLycgLiAkbmFtZSAuICcucG5nJzsgDQogICAgcmV0dXJuICR1cmw7DQogIH0NCiAgDQogIHB1YmxpYyBzdGF0aWMgZnVuY3Rpb24gRGlzcGxheUltYWdlKCRpbWFnZWZuID0gJycsICRhbHQ9JycsICR3aWR0aD0nJywgJGhlaWdodD0nJywgJGNsYXNzPScnKSA6IHN0cmluZw0KICB7DQogIA0KICAgICRyZXRTdHIgPSAnPGltZyBzcmM9IicgLiAkaW1hZ2VmbiAuICciJzsNCiAgICANCiAgICBpZiAoJGNsYXNzICE9ICcnKQ0KICAgIHsNCiAgICAgICRyZXRTdHIgLj0gJyBjbGFzcz0iJy4kY2xhc3MuJyInOw0KICAgIH0NCiAgICANCiAgICBpZiAoJHdpZHRoICE9ICcnKQ0KICAgIHsNCiAgICAgICRyZXRTdHIgLj0gJyB3aWR0aD0iJy4kd2lkdGguJyInOw0KICAgIH0NCiAgICANCiAgICBpZiAoJGhlaWdodCAhPSAnJykNCiAgICB7DQogICAgICAkcmV0U3RyIC49ICcgaGVpZ2h0PSInLiRoZWlnaHQuJyInOw0KICAgIH0NCiAgICANCiAgICBpZiAoJGFsdCAhPSAnJykNCiAgICB7DQogICAgICAkcmV0U3RyIC49ICcgYWx0PSInLiRhbHQuJyIgdGl0bGU9IicuJGFsdC4nIic7DQogICAgfQ0KICAgIA0KICAgICRyZXRTdHIgLj0gJyAvPic7DQogICAgDQogICAgcmV0dXJuICRyZXRTdHI7DQogIH0NCiAgDQogIHB1YmxpYyBzdGF0aWMgZnVuY3Rpb24gZGJfY29sdW1uX2V4aXN0cygkdGFibGUsICRjb2x1bW4pIDogYm9vbA0KICB7DQogICAgc2VsZjo6X2luaXRpYWxpemUoKTsNCiAgICAkcSA9ICdTRUxFQ1QgKiBGUk9NICcgLiAkdGFibGUgLiAnIExJTUlUIDEnOw0KICAgIA0KICAgIHRyeQ0KICAgIHsNCiAgICAgICRyID0gc2VsZjo6JF9kYi0+R2V0Um93KCRxKTsgICAgIA0KICAgIH0NCiAgICBjYXRjaChFeGNlcHRpb24gJGUpDQogICAgew0KICAgICAgLy8gbnZtIGVycm9ycy4uLi4gd2UgZ2l2ZSdtIGZhbHNlDQogICAgfQ0KICAgIA0KICAgIHJldHVybiBpc3NldCgkclskY29sdW1uXSk7DQogIH0NCiAgDQogIHB1YmxpYyBzdGF0aWMgZnVuY3Rpb24gbG9nKCRtZXNzYWdlID0gJycpIDogdm9pZA0KICB7DQogICAgJG1lc3NhZ2UgPSBlbXB0eSgkbWVzc2FnZSkgPyAnW2VtcHR5IG1lc3NhZ2VdJyA6ICRtZXNzYWdlOw0KICAgICRkYnQgPSBkZWJ1Z19iYWNrdHJhY2UodHJ1ZSwgNSk7DQogICAgJGNhbGxlcl9tb2QgPSBOVUxMOw0KICAgIA0KICAgIA0KICAgICMgbm93ICBmaW5kIHRoZSBsYXRlc3QgTElTRSBPYmplY3QuLi4gYSBiaXQgdG9vIGV4cGVuc2l2ZSBidXQgaXQgd29ya3MgZm9yIGRlYnVnZ2luZw0KICAgIGZvcmVhY2goJGRidCBhcyAkb25lKQ0KICAgIHsNCiAgICAgIGlmKCAhaXNzZXQoJG9uZVsnb2JqZWN0J10pICkgY29udGludWU7DQogICAgICANCiAgICAgIGlmKCAhJG9uZVsnb2JqZWN0J10gaW5zdGFuY2VvZiBcTElTRSkgY29udGludWU7DQogICAgICANCiAgICAgICRjYWxsZXJfbW9kID0gJG9uZVsnb2JqZWN0J107DQogICAgICBicmVhazsNCiAgICB9DQogICAgDQogICAgaWYoICFpc19vYmplY3QoJGNhbGxlcl9tb2QpICkNCiAgICB7DQogICAgICBcYXVkaXQoMCwnbGlzZV91dGlsczo6bG9nJywgJ2ZhaWxlZCB0byBkZXRlcm1pbmUgYSBMSVNFIGluc3RhbmNlOiBtb3Zpbmcgb24uLi4nKTsNCiAgICAgIHJldHVybjsNCiAgICB9DQogICAgDQogICAgJGNvbmZpZyA9IFxMSVNFXENvbmZpZ01hbmFnZXI6OkdldENvbmZpZ0luc3RhbmNlKCRjYWxsZXJfbW9kKTsNCiAgICANCiAgICBpZiggZW1wdHkoJGNvbmZpZ1snbG9nJ10pICkgcmV0dXJuOw0KICAgIA0KICAgICRyb290ID0gZGlybmFtZShfX0ZJTEVfXywgNCk7DQogICAgDQogICAgJHBhdGggPSBpc3NldCgkY29uZmlnWydsb2dfcGF0aCddKSA/IGNtc19qb2luX3BhdGgoJGNvbmZpZ1snbW9kdWxlX3BhdGgnXSwgJGNvbmZpZ1snbG9nX3BhdGgnXSk6ICRyb290Ow0KDQogICAgJGZpbGVfbmFtZSA9ICRjb25maWdbJ2xvZ19maWxlbmFtZSddID8/ICdMSVNFLmxvZyc7DQogICAgJGZuID0gY21zX2pvaW5fcGF0aCgkcGF0aCwgJGZpbGVfbmFtZSk7DQogICAgDQogICAgJGRhdGV0aW1lID0gZGF0ZSgnWS1tLWQgSDppOnMnKTsNCiAgICAkdGV4dCAgPSAkZGF0ZXRpbWUgLiAnIDo6ICc7DQogICAgJHRleHQgLj0gJG1lc3NhZ2UgLiBQSFBfRU9MOw0KICAgICR0bXBfbWF4ID0gaW5pX3NldCgnbG9nX2Vycm9yc19tYXhfbGVuJywgMCk7DQogICAgZXJyb3JfbG9nKCR0ZXh0LCAzLCAkZm4pOw0KICAgIC8vIHJlc2V0IHRvIHRoZSBvbGQgdmFsdWU7DQogICAgaW5pX3NldCgnbG9nX2Vycm9yc19tYXhfbGVuJywgJHRtcF9tYXgpOw0KICB9DQogIA0KICBwdWJsaWMgc3RhdGljIGZ1bmN0aW9uIGlzX3VuaXF1ZV9hbGlhcyhMSVNFICRtb2QsICRhbGlhcykgOiBib29sDQogIHsNCiAgICBzZWxmOjpfaW5pdGlhbGl6ZSgpOw0KICAgICRxdWVyeSA9ICdTRUxFQ1QgY291bnQoKikgYXMgYyBGUk9NICcgLiBjbXNfZGJfcHJlZml4KCkgLiAnbW9kdWxlXycgLiAkbW9kLT5fR2V0TW9kdWxlQWxpYXMoKSAuICdfaXRlbSBXSEVSRSBhbGlhcyA9ID8nOw0KICAgIHJldHVybiAhKGJvb2wpc2VsZjo6JF9kYi0+R2V0T25lKCRxdWVyeSwgYXJyYXkoJGFsaWFzKSApOyAgDQogIH0NCiAgDQogIC8qKg0KICAgKiBAcGFyYW0gJG1vZHVsZV9uYW1lDQogICAqIHRvIGF2b2lkIHVzaW5nIHRoZSBpbnRlcm5hbCBDTVNNUyBmdW5jdGlvbg0KICAgKiB3ZSBiYXNpY2FseSByZXByb2R1Y2UgaXQgaGVyZQ0KICAgKi8NCiAgcHVibGljIHN0YXRpYyBmdW5jdGlvbiBxdWV1ZV9mb3JfdXBncmFkZSgkbW9kdWxlX25hbWUpIDogdm9pZA0KICB7DQogICAgJG1vZHVsZV9uYW1lID0gdHJpbSgoc3RyaW5nKSRtb2R1bGVfbmFtZSk7DQogICAgaWYoICEkbW9kdWxlX25hbWUgKSByZXR1cm47DQogICAgaWYoICFpc3NldCgkX1NFU1NJT05bJ21vZHVsZW9wZXJhdGlvbnMnXSkgKSAkX1NFU1NJT05bJ21vZHVsZW9wZXJhdGlvbnMnXSA9IGFycmF5KCk7DQogICAgaWYoICFpc3NldCgkX1NFU1NJT05bJ21vZHVsZW9wZXJhdGlvbnMnXVskbW9kdWxlX25hbWVdKSApICRfU0VTU0lPTlsnbW9kdWxlb3BlcmF0aW9ucyddWyRtb2R1bGVfbmFtZV0gPSAxOw0KICB9DQogIA0KICBwdWJsaWMgc3RhdGljIGZ1bmN0aW9uIHJlY292ZXJfcGFyYW1zKCRwYXJhbXMpIDogYXJyYXkNCiAgew0KICAgICRyZXQgPSBbXTsNCiAgICBmb3JlYWNoKCRwYXJhbXMgYXMgJG9uZSkNCiAgICB7DQogICAgICAkcmV0WyRvbmVbJ25hbWUnXV0gPSAkb25lWyd2YWx1ZSddOw0KICAgIH0NCiAgICByZXR1cm4gJHJldDsNCiAgfQ0KICANCiAgLyoqDQogICAqIEBwYXJhbSAgICAgICRmb3JtYXQNCiAgICogQHBhcmFtIG51bGwgJHRpbWVzdGFtcA0KICAgKg0KICAgKiBAcmV0dXJuIHN0cmluZw0KICAgKi8NCiAgcHVibGljIHN0YXRpYyBmdW5jdGlvbiBzdHJmdGltZSAoJGZvcm1hdCwgJHRpbWVzdGFtcCA9IG51bGwpIDogc3RyaW5nDQogIHsNCiAgICBpZiggKFx2ZXJzaW9uX2NvbXBhcmUoUEhQX1ZFUlNJT04sICc4LjEnKSAgPj0gMCkgJiYgKFx2ZXJzaW9uX2NvbXBhcmUoQ01TX1ZFUlNJT04sICcyLjQnKSA+PSAwKSApDQogICAgew0KICAgICAgcmV0dXJuIFxDTVNNU1xzdHJmdGltZSgkZm9ybWF0LCAkdGltZXN0YW1wKTsNCiAgICB9DQogIA0KICAgIHJldHVybiBzdHJmdGltZSgkZm9ybWF0LCAkdGltZXN0YW1wKTsNCiAgfQ0KICANCn0gLy8gZW5kIG9mIGNsYXNz]]></data>
	</file>
	<file>
	  <filename>/lib/class.lsa.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHANCi8qKg0KICogTGlzZVNtYXJ0eUFzc2lzdGFudA0KICogbWF5IG9yIG1heSBub3QgYmUga2VwdA0KICovDQoNCm5hbWVzcGFjZSBMSVNFOw0KDQp1c2UgY21zX3V0aWxzOw0KdXNlIFNtYXJ0eV9DTVM7DQoNCmNsYXNzIGxzYQ0Kew0KICAvKioNCiAgICogcHJpdmF0ZSBwcm9wcw0KICAgKi8NCiAgDQogIHByaXZhdGUgc3RhdGljID9sc2EgJF9pbnN0YW5jZTsNCiAgcHJpdmF0ZSA/U21hcnR5X0NNUyAkX3NtYXJ0eTsNCiAgDQogIA0KICAvKioNCiAgICogcHVibGljIHByb3BzDQogICAqLw0KICANCiAgLyoqDQogICAqIHByaXZhdGUgbWV0aG9kcw0KICAgKi8NCiAgcHJpdmF0ZSBmdW5jdGlvbiBfX2NvbnN0cnVjdCgpDQogIHsNCiAgICAkdGhpcy0+X3NtYXJ0eSA9IGNtc191dGlsczo6Z2V0X3NtYXJ0eSgpOw0KICB9DQogIA0KICAvKioNCiAgICogcHVibGljIG1ldGhvZHMNCiAgICovDQogIA0KICBwdWJsaWMgc3RhdGljIGZ1bmN0aW9uIGdldEluc3RhbmNlKCkgOiA/bHNhDQogIHsNCiAgICBpZiAoc2VsZjo6JF9pbnN0YW5jZSA9PT0gbnVsbCl7IHNlbGY6OiRfaW5zdGFuY2UgPSBuZXcgbHNhKCk7fQ0KICAgIA0KICAgIHJldHVybiBzZWxmOjokX2luc3RhbmNlOw0KICB9DQogIA0KICAvKioNCiAgICogYXNzaWducyBhIFNtYXJ0eSB2YXJpYWJsZQ0KICAgKg0KICAgKiBAcGFyYW0gIGFycmF5fHN0cmluZyAkdHBsX3ZhciB0aGUgdGVtcGxhdGUgdmFyaWFibGUgbmFtZShzKQ0KICAgKiBAcGFyYW0gIG1peGVkICAgICAgICAkdmFsdWUgICB0aGUgdmFsdWUgdG8gYXNzaWduDQogICAqIEBwYXJhbSAgYm9vbGVhbiAgICAgICRub2NhY2hlIGlmIHRydWUgYW55IG91dHB1dCBvZiB0aGlzIHZhcmlhYmxlIHdpbGwgYmUgbm90IGNhY2hlZA0KICAgKg0KICAgKiBAcmV0dXJuIFxMSVNFXGxzYQ0KICAgKi8NCiAgcHVibGljIGZ1bmN0aW9uIGFzc2lnbigkdHBsX3ZhciwgJHZhbHVlID0gbnVsbCwgJG5vY2FjaGUgPSBmYWxzZSkgOiBsc2ENCiAgew0KICAgICR0aGlzLT5fc21hcnR5LT5hc3NpZ24oJHRwbF92YXIsICR2YWx1ZSwgJG5vY2FjaGUpOw0KICAgIHJldHVybiBzZWxmOjpnZXRJbnN0YW5jZSgpOw0KICB9DQp9DQoNCj8+]]></data>
	</file>
	<file>
	  <filename>/lib/class.mini_smarty_parser.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHANCg0KDQpuYW1lc3BhY2UgTElTRTsNCg0KDQpjbGFzcyBtaW5pX3NtYXJ0eV9wYXJzZXINCnsNCiAgIyBzZXR0aW5ncyBmbGFncw0KICBjb25zdCBTRVRfSUdOT1JFX1VOS05PV05fVEFHUyA9IDE7ICMgMDAwMDAwMDENCiAgDQogIC8qKg0KICAgKiBwcml2YXRlIHByb3BzDQogICAqLw0KICBwcml2YXRlICRfc21hcnR5ID0gTlVMTDsNCiAgcHJpdmF0ZSAkX3NldHRpbmdzX2ZsYWdzID0gc2VsZjo6U0VUX0lHTk9SRV9VTktOT1dOX1RBR1M7DQogIHByaXZhdGUgJF9idWZmZXIgICAgICAgICA9ICcnOw0KICBwcml2YXRlICRfc291cmNlICAgICAgICAgPSAnJzsNCiAgcHJpdmF0ZSAkX291dCAgICAgICAgICAgID0gJyc7DQogIHByaXZhdGUgJF9sZWZ0X2RlbCAgICAgICA9ICd7JzsNCiAgcHJpdmF0ZSAkX3JpZ2h0X2RlbCAgICAgID0gJ30nOw0KICANCiAgDQogIC8qKg0KICAgKiBwdWJsaWMgcHJvcHMNCiAgICovDQogIA0KICAvKioNCiAgICogcHJpdmF0ZSBtZXRob2RzDQogICAqLw0KICANCiAgcHJpdmF0ZSBmdW5jdGlvbiBfY2xlYXJfYnVmZmVyKCkNCiAgew0KICAgICR0aGlzLT5fYnVmZmVyID0gJyc7DQogIH0NCiAgDQogIHByaXZhdGUgZnVuY3Rpb24gX2NsZWFyX3Rva2VucygpDQogIHsNCiAgICAkdGhpcy0+X3Rva2VucyA9IFtdOw0KICB9DQogIA0KICBwcml2YXRlIGZ1bmN0aW9uIF9jbGVhcl9vdXQoKQ0KICB7DQogICAgJHRoaXMtPl9vdXQgPSAnJzsNCiAgfQ0KICANCiAgcHJpdmF0ZSBmdW5jdGlvbiBfcmVzZXQoKQ0KICB7DQogICAgJHRoaXMtPl9jbGVhcl90b2tlbnMoKTsNCiAgICAkdGhpcy0+X2NsZWFyX291dCgpOw0KICB9DQoNCiAgDQogIHByaXZhdGUgZnVuY3Rpb24gX3BhcnNlKCkNCiAgew0KICAgICR0aGlzLT5fcmVzZXQoKTsNCiAgICAvLyR0aGlzLT5fc291cmNlID0gJHRoaXMtPl9idWZmZXI7DQogICAgJHRoaXMtPl9vdXQgPSAkdGhpcy0+X3NtYXJ0eS0+ZmV0Y2goJ2V2YWw6JyAuICR0aGlzLT5fYnVmZmVyKTsNCiAgfQ0KICANCiAgLyoqDQogICAqIHB1YmxpYyBtZXRob2RzDQogICAqLw0KICANCiAgcHVibGljIGZ1bmN0aW9uIF9fY29uc3RydWN0KCkNCiAgew0KICAgICR0aGlzLT5fc21hcnR5ID0gbmV3IFxTbWFydHkoKTsNCiAgICAkdGhpcy0+X3NtYXJ0eS0+c2V0Q29tcGlsZURpcihUTVBfVEVNUExBVEVTX0NfTE9DQVRJT04pOw0KICAgICR0aGlzLT5fc21hcnR5LT5zZXRDYWNoZURpcihUTVBfQ0FDSEVfTE9DQVRJT04pOw0KICAgIA0KICAgIC8vIGFsbG93IHRvIHVzZSBDTVNNUyBjb3JlIHBsdWdpbnMNCiAgICAkdGhpcy0+X3NtYXJ0eS0+YWRkUGx1Z2luc0RpciggXGNtc19qb2luX3BhdGgoQ01TX1JPT1RfUEFUSCwgJ2xpYicsJ3BsdWdpbnMnKSApOw0KICAgIA0KICAgIC8vIHJlZ2lzdGVyIGRlZmF1bHQgcGx1Z2luIGhhbmRsZXINCiAgICAkdGhpcy0+X3NtYXJ0eS0+cmVnaXN0ZXJEZWZhdWx0UGx1Z2luSGFuZGxlcihhcnJheSggJHRoaXMsICdEZWZhdWx0UGx1Z2luSGFuZGxlcicpICk7DQogIA0KICAgICRzZWN1cml0eV9wb2xpY3kgPSBuZXcgXFNtYXJ0eV9TZWN1cml0eSgkdGhpcy0+X3NtYXJ0eSk7DQogICAgDQogICAgJGNvbmZpZyA9IGFwaTo6R2V0Q29uZmlnRm9ySW5zdGFuY2VOYW1lKCk7DQogICAgDQogICAgJGRhdF9mbiA9IFxjbXNfam9pbl9wYXRoKCRjb25maWdbJ21vZHVsZV9wYXRoJ10sICdkYXRhJywgJ3NtYXJ0eXNhZmVsaXN0LmRhdCcpOw0KICAgICRmdW5jdGlvbnMgPSBmaWxlKCRkYXRfZm4sIEZJTEVfSUdOT1JFX05FV19MSU5FUyB8IEZJTEVfU0tJUF9FTVBUWV9MSU5FUyk7DQogICAgDQogICAgLy8gYWxsb3cgUEhQIGZ1bmN0aW9ucw0KICAgICRzZWN1cml0eV9wb2xpY3ktPnBocF9mdW5jdGlvbnMgPSAkZnVuY3Rpb25zOw0KICAgIGlmKHZlcnNpb25fY29tcGFyZShcU21hcnR5OjpTTUFSVFlfVkVSU0lPTiwgJzQuMC4wJykgPCAxKQ0KICAgIHsNCiAgICAgIC8vIHJlbW92ZSBQSFAgdGFncw0KICAgICAgJHNlY3VyaXR5X3BvbGljeS0+cGhwX2hhbmRsaW5nID0gXFNtYXJ0eTo6UEhQX1JFTU9WRTsNCiAgICB9DQogICAgLy8gYWxsb3cgUEhQIGZ1bmN0aW9ucyBhcyBtb2RpZmllcg0KICAgICRzZWN1cml0eV9wb2xpY3ktPnBocF9tb2RpZmllcnMgID0gJGZ1bmN0aW9uczsNCiAgICANCiAgICAvLyBlbmFibGUgc2VjdXJpdHkNCiAgICAkdGhpcy0+X3NtYXJ0eS0+ZW5hYmxlU2VjdXJpdHkoJHNlY3VyaXR5X3BvbGljeSk7DQogICAgDQogIH0NCiAgDQogIHB1YmxpYyBzdGF0aWMgZnVuY3Rpb24gX2RmbHRfcGx1Z2luKCRwYXJhbXMsICRzbWFydHkpeyByZXR1cm4gJyc7IH0NCiAgcHVibGljIHN0YXRpYyBmdW5jdGlvbiBfZGZsdF9ibG9ja19wbHVnaW4oJHBhcmFtcywgJGNvbnRlbnQsICRzbWFydHksICYkcmVwZWF0LCAkdGVtcGxhdGUpIHsgcmV0dXJuICcnOyB9DQogIHB1YmxpYyBzdGF0aWMgZnVuY3Rpb24gX2RmbHRfbW9kKCkgeyByZXR1cm4gJyc7IH0NCiAgDQogIA0KICAvKioNCiAgICogRGVmYXVsdCBQbHVnaW4gSGFuZGxlcg0KICAgKg0KICAgKiBjYWxsZWQgd2hlbiBTbWFydHkgZW5jb3VudGVycyBhbiB1bmRlZmluZWQgdGFnIGR1cmluZyBjb21waWxhdGlvbg0KICAgKg0KICAgKiBAcGFyYW0gc3RyaW5nICAgICAgICAgICAgICAgICAgICAgICRuYW1lICAgICAgbmFtZSBvZiB0aGUgdW5kZWZpbmVkIHRhZw0KICAgKiBAcGFyYW0gc3RyaW5nICAgICAgICAgICAgICAgICAgICAgICR0eXBlICAgICAgdGFnIHR5cGUgKGUuZy4gU21hcnR5OjpQTFVHSU5fRlVOQ1RJT04sIFNtYXJ0eTo6UExVR0lOX0JMT0NLLA0KICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU21hcnR5OjpQTFVHSU5fQ09NUElMRVIsIFNtYXJ0eTo6UExVR0lOX01PRElGSUVSLA0KICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU21hcnR5OjpQTFVHSU5fTU9ESUZJRVJDT01QSUxFUikNCiAgICogQHBhcmFtIFNtYXJ0eV9JbnRlcm5hbF9UZW1wbGF0ZSAgICAkdGVtcGxhdGUgIHRlbXBsYXRlIG9iamVjdA0KICAgKiBAcGFyYW0gc3RyaW5nICAgICAgICAgICAgICAgICAgICAgJiRjYWxsYmFjayAgcmV0dXJuZWQgZnVuY3Rpb24gbmFtZQ0KICAgKiBAcGFyYW0gc3RyaW5nICAgICAgICAgICAgICAgICAgICAgJiRzY3JpcHQgICAgb3B0aW9uYWwgcmV0dXJuZWQgc2NyaXB0IGZpbGVwYXRoIGlmIGZ1bmN0aW9uIGlzIGV4dGVybmFsDQogICAqIEBwYXJhbSBib29sICAgICAgICAgICAgICAgICAgICAgICAmJGNhY2hlYWJsZSB0cnVlIGJ5IGRlZmF1bHQsIHNldCB0byBGQUxTRSBpZiBwbHVnaW4gaXMgbm90IGNhY2hlYWJsZQ0KICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKFNtYXJ0eSA+PSAzLjEuOCkNCiAgICoNCiAgICogQHJldHVybiBib29sICAgICAgICAgICAgICAgICAgICAgIHRydWUgaWYgc3VjY2Vzc2Z1bA0KICAgKi8NCiAgZnVuY3Rpb24gRGVmYXVsdFBsdWdpbkhhbmRsZXIgKCRuYW1lLCAkdHlwZSwgJHRlbXBsYXRlLCAmJGNhbGxiYWNrLCAmJHNjcmlwdCwgJiRjYWNoZWFibGUpDQogIHsNCiAgICBzd2l0Y2goJHR5cGUpDQogICAgew0KICAgICAgY2FzZSBcU21hcnR5OjpQTFVHSU5fQ09NUElMRVI6DQogICAgICBjYXNlIFxTbWFydHk6OlBMVUdJTl9GVU5DVElPTjoNCiAgICAgICAgJGNhbGxiYWNrID0gYXJyYXkoX19DTEFTU19fLCAnX2RmbHRfcGx1Z2luJyk7DQogICAgICAgICRjYWNoYWJsZSA9IEZBTFNFOw0KICAgICAgDQogICAgICAgIHJldHVybiBUUlVFOw0KICANCiAgICAgIGNhc2UgXFNtYXJ0eTo6UExVR0lOX0JMT0NLOg0KICAgICAgICAkY2FsbGJhY2sgPSBhcnJheShfX0NMQVNTX18sICdfZGZsdF9ibG9ja19wbHVnaW4nKTsNCiAgICAgICAgJGNhY2hhYmxlID0gRkFMU0U7DQogICAgICANCiAgICAgICAgcmV0dXJuIFRSVUU7DQogICAgDQogICAgICBjYXNlIFxTbWFydHk6OlBMVUdJTl9NT0RJRklFUjoNCiAgICAgICAgJGNhbGxiYWNrID0gYXJyYXkoX19DTEFTU19fLCAnX2RmbHRfbW9kJyk7DQogICAgICAgICRjYWNoYWJsZSA9IEZBTFNFOw0KICAgICAgDQogICAgICAgIHJldHVybiBUUlVFOw0KICAgIA0KICAgICAgZGVmYXVsdDoNCiAgICAgICAgcmV0dXJuIEZBTFNFOw0KICAgIH0NCiAgfQ0KICANCiAgcHVibGljIGZ1bmN0aW9uIEdldEN1c3RvbVNtYXJ0eU9iamVjdCgpIDogXFNtYXJ0eQ0KICB7DQogICAgcmV0dXJuICR0aGlzLT5fc21hcnR5Ow0KICB9DQogIA0KICBwdWJsaWMgZnVuY3Rpb24gUmVnaXN0ZXJUYWcoJHR5cGUsICRuYW1lLCAkY2FsbGFibGUpDQogIHsNCiAgICAkdGhpcy0+X3NtYXJ0eS0+cmVnaXN0ZXJQbHVnaW4oJHR5cGUsICRuYW1lLCAkY2FsbGFibGUpOw0KICAgIHJldHVybiAkdGhpczsNCiAgfQ0KICANCiAgcHVibGljIGZ1bmN0aW9uIFJlZ2lzdGVyVGFncygkdGFncykNCiAgew0KICAgIGZvcmVhY2goJHRhZ3MgYXMgJG5hbWUgPT4gJGRlZikNCiAgICB7DQogICAgICBsaXN0KCR0eXBlLCAkY2FsbGFibGUpID0gJGRlZjsNCiAgICAgICR0aGlzLT5SZWdpc3RlclRhZygkdHlwZSwgJG5hbWUsICRjYWxsYWJsZSk7DQogICAgfQ0KICAgIA0KICAgIHJldHVybiAkdGhpczsNCiAgfQ0KICANCiAgcHVibGljIGZ1bmN0aW9uIExvYWQoJGxpbmVzID0gJycpDQogIHsNCiAgICAkdGhpcy0+X2J1ZmZlciA9ICRsaW5lczsNCiAgICByZXR1cm4gJHRoaXM7DQogIH0NCiAgDQogIHB1YmxpYyBmdW5jdGlvbiBQYXJzZSgpDQogIHsNCiAgICAkdGhpcy0+X3BhcnNlKCk7DQogICAgcmV0dXJuICR0aGlzLT5fb3V0Ow0KICB9DQogIA0KICBwdWJsaWMgZnVuY3Rpb24gU2V0TGVmdERlbCgkZGVsaW0pDQogIHsNCiAgICAkdGhpcy0+X2xlZnRfZGVsID0gJGRlbGltOw0KICAgIHJldHVybiAkdGhpczsNCiAgfQ0KICANCiAgcHVibGljIGZ1bmN0aW9uIFNldFJpZ2h0RGVsKCRkZWxpbSkNCiAgew0KICAgICR0aGlzLT5fcmlnaHRfZGVsID0gJGRlbGltOw0KICAgIHJldHVybiAkdGhpczsNCiAgfQ0KfQ0KDQo/Pg==]]></data>
	</file>
	<file>
	  <filename>/lib/class.modules_ops.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHANCg0KDQpuYW1lc3BhY2UgTElTRTsNCg0KDQpmaW5hbCBjbGFzcyBtb2R1bGVzX29wcw0Kew0KICBwcml2YXRlIHN0YXRpYyAkX2luc3RhbmNlID0gbnVsbDsNCiAgcHJvdGVjdGVkIHN0YXRpYyAkX21vZHMgPSBbXTsNCiAgDQogIC8qKg0KICAgKiBwcml2YXRlIG1ldGhvZHMNCiAgICovDQogIA0KICBwcml2YXRlIGZ1bmN0aW9uIF9fY29uc3RydWN0KCl7fQ0KICANCiAgLyoqDQogICAqIGNvcGllcyBtb2R1bGVzIG5hbWVzIGNvcmUga25vd3MgYWJvdXQNCiAgICogQHJldHVybiBhcnJheQ0KICAgKi8NCiAgcHJpdmF0ZSBzdGF0aWMgZnVuY3Rpb24gbG9hZF9tb2R1bGVzKCkNCiAgew0KICAgIGlmKCBlbXB0eShzZWxmOjokX21vZHMpICkNCiAgICB7DQogICAgICBzZWxmOjokX21vZHMgPSBcY21zbXMoKS0+R2V0TW9kdWxlT3BlcmF0aW9ucygpLT5HZXRBbGxNb2R1bGVOYW1lcygpOw0KICAgIH0NCiAgICANCiAgICByZXR1cm4gc2VsZjo6JF9tb2RzOw0KICB9DQogIA0KICAvKioNCiAgICogcHVibGljIG1ldGhvZHMNCiAgICovDQogIA0KICBwdWJsaWMgc3RhdGljIGZ1bmN0aW9uIGdldEluc3RhbmNlKCkNCiAgew0KICAgIGlmIChzZWxmOjokX2luc3RhbmNlID09IG51bGwpDQogICAgew0KICAgICAgc2VsZjo6JF9pbnN0YW5jZSA9IG5ldyBtb2R1bGVzX29wcygpOw0KICAgIH0NCiAgICANCiAgICByZXR1cm4gc2VsZjo6JF9pbnN0YW5jZTsNCiAgfQ0KICANCiAgcHVibGljIHN0YXRpYyBmdW5jdGlvbiBleGlzdHMoJG1vZHVsZV9uYW1lID0gJycpDQogIHsNCiAgICBzZWxmOjpsb2FkX21vZHVsZXMoKTsNCiAgICANCiAgICByZXR1cm4gaW5fYXJyYXkoJG1vZHVsZV9uYW1lLCBzZWxmOjokX21vZHMpOw0KICB9DQogIA0KICBwdWJsaWMgc3RhdGljIGZ1bmN0aW9uIGlzX2FjdGl2ZSgkbW9kdWxlX25hbWUgPSAnJykNCiAgew0KICAgIGlmKCBzZWxmOjpleGlzdHMoJG1vZHVsZV9uYW1lKSApDQogICAgew0KICAgICAgcmV0dXJuIFxjbXNtcygpLT5HZXRNb2R1bGVPcGVyYXRpb25zKCktPklzTW9kdWxlQWN0aXZlKCRtb2R1bGVfbmFtZSk7DQogICAgfQ0KICB9DQp9DQoNCj8+]]></data>
	</file>
	<file>
	  <filename>/lib/class.Morphable.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHANCg0KDQpuYW1lc3BhY2UgTElTRTsNCg0KDQpjbGFzcyBNb3JwaGFibGUgZXh0ZW5kcyBcQXJyYXlPYmplY3QNCnsNCiAgcHVibGljIGZ1bmN0aW9uIF9fY29uc3RydWN0KCRpbnB1dCA9IGFycmF5KCksICRmbGFncyA9IDAsICRpdGVyYXRvcl9jbGFzcyA9ICdBcnJheUl0ZXJhdG9yJykNCiAgew0KICAgIHBhcmVudDo6X19jb25zdHJ1Y3QoJGlucHV0LCAkZmxhZ3MsICRpdGVyYXRvcl9jbGFzcyk7DQogIH0NCiAgDQogIHB1YmxpYyBmdW5jdGlvbiBfX2NhbGwoJGZ1bmMsICRhcmd2KQ0KICB7DQogICAgaWYgKCFpc19jYWxsYWJsZSgkZnVuYykgfHwgc3Vic3RyKCRmdW5jLCAwLCA2KSAhPT0gJ2FycmF5XycpDQogICAgew0KICAgICAgdGhyb3cgbmV3IFxCYWRNZXRob2RDYWxsRXhjZXB0aW9uKF9fQ0xBU1NfXyAuICctPicgLiAkZnVuYyk7DQogICAgfQ0KICANCiAgICByZXR1cm4gY2FsbF91c2VyX2Z1bmNfYXJyYXkoICRmdW5jLCBhcnJheV9tZXJnZSggYXJyYXkoICR0aGlzLT5nZXRBcnJheUNvcHkoKSApLCAkYXJndiApICk7DQogIH0NCiAgDQp9DQoNCj8+]]></data>
	</file>
	<file>
	  <filename>/lib/class.parameters.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHANCg0KDQpuYW1lc3BhY2UgTElTRTsNCg0KDQoNCmZpbmFsIGNsYXNzIHBhcmFtZXRlcnMNCnsNCiAgY29uc3QgVFlQRV9VTkRFRklORUQgID0gMDAwMDA7DQogIGNvbnN0IFRZUEVfQk9PTCAgICAgICA9IDAwMDAxOw0KICBjb25zdCBUWVBFX0lOVCAgICAgICAgPSAwMDAxMDsNCiAgY29uc3QgVFlQRV9GTE9BVCAgICAgID0gMDAxMDA7DQogIGNvbnN0IFRZUEVfU1RSSU5HICAgICA9IDAxMDAwOw0KICBjb25zdCBUWVBFX0FSUkFZICAgICAgPSAxMDAwMDsNCiAgDQogIHByaXZhdGUgc3RhdGljICRfYXNfZm5jcyA9IFsNCiAgICAnYm9vbCcsDQogICAgJ2ludCcsDQogICAgJ2Zsb2F0JywNCiAgICAnc3RyaW5nJywNCiAgICAnYXJyYXknLA0KICBdOw0KICANCiAgcHJpdmF0ZSBzdGF0aWMgYXJyYXkgJF9jb2xsZWN0aW9ucyA9IFtdOw0KICANCiAgDQogIHByaXZhdGUgc3RhdGljIGZ1bmN0aW9uIF9kZWZhdWx0KCR2YWx1ZSA9IE5VTEwsICRkZWZhdWx0ID0gTlVMTCkNCiAgew0KICAgIHJldHVybiAkdmFsdWUgPz8gJGRlZmF1bHQ7DQogIH0NCiAgDQogIHB1YmxpYyBzdGF0aWMgZnVuY3Rpb24gU2V0KCRpZCwgJGtleSA9IE5VTEwsICR2YWx1ZSA9IE5VTEwsICRkZWZhdWx0ID0gTlVMTCwgJHR5cGUgPSBzZWxmOjpUWVBFX1VOREVGSU5FRCkgOiB2b2lkDQogIHsNCiAgICBpZiggZW1wdHkoJGlkKSApIHJldHVybjsNCiAgICBpZiggZW1wdHkoJGtleSkgKSByZXR1cm47DQogICAgaWYoIGVtcHR5KCR2YWx1ZSkgKSByZXR1cm47DQogICAgDQogICAgaWYoICFpc3NldChzZWxmOjokX2NvbGxlY3Rpb25zWyRpZF0pICkNCiAgICBzZWxmOjokX2NvbGxlY3Rpb25zWyRpZF0gPSBuZXcgQ29sbGVjdGlvbigpOw0KICAgIA0KICB9DQogIA0KICBwdWJsaWMgc3RhdGljIGZ1bmN0aW9uIGFzX2Jvb2woJHBhcmFtcyA9IFtdLCAka2V5ID0gTlVMTCwgJGRlZmF1bHQgPSBOVUxMKQ0KICB7DQogICAgcmV0dXJuIChib29sZWFuKSAoaXNzZXQoJHBhcmFtc1ska2V5XSkgPyBzZWxmOjpfZGVmYXVsdCgkcGFyYW1zWyRrZXldLCAkZGVmYXVsdCkgOiAkZGVmYXVsdCk7DQogIH0NCiAgDQogIHB1YmxpYyBzdGF0aWMgZnVuY3Rpb24gYXNfaW50KCRwYXJhbXMgPSBbXSwgJGtleSA9IE5VTEwsICRkZWZhdWx0ID0gTlVMTCkNCiAgew0KICAgIHJldHVybiAoaW50KSAoaXNzZXQoJHBhcmFtc1ska2V5XSkgPyBzZWxmOjpfZGVmYXVsdCgkcGFyYW1zWyRrZXldLCAkZGVmYXVsdCkgOiAkZGVmYXVsdCk7DQogIH0NCiAgDQogIHB1YmxpYyBzdGF0aWMgZnVuY3Rpb24gYXNfZmxvYXQoJHBhcmFtcyA9IFtdLCAka2V5ID0gTlVMTCwgJGRlZmF1bHQgPSBOVUxMKQ0KICB7DQogICAgcmV0dXJuIChmbG9hdCkgKGlzc2V0KCRwYXJhbXNbJGtleV0pID8gc2VsZjo6X2RlZmF1bHQoJHBhcmFtc1ska2V5XSwgJGRlZmF1bHQpIDogJGRlZmF1bHQpOw0KICB9DQogIA0KICBwdWJsaWMgc3RhdGljIGZ1bmN0aW9uIGFzX3N0cmluZygkcGFyYW1zID0gW10sICRrZXkgPSBOVUxMLCAkZGVmYXVsdCA9IE5VTEwpDQogIHsNCiAgICByZXR1cm4gKHN0cmluZykgKGlzc2V0KCRwYXJhbXNbJGtleV0pID8gc2VsZjo6X2RlZmF1bHQoJHBhcmFtc1ska2V5XSwgJGRlZmF1bHQpIDogJGRlZmF1bHQpOw0KICB9DQogIA0KICBwdWJsaWMgc3RhdGljIGZ1bmN0aW9uIGFzX2FycmF5KCRwYXJhbXMgPSBbXSwgJGtleSA9IE5VTEwsICRkZWZhdWx0ID0gTlVMTCkNCiAgew0KICAgICRyZXQgPSAoaXNzZXQoJHBhcmFtc1ska2V5XSkgPyBzZWxmOjpfZGVmYXVsdCgkcGFyYW1zWyRrZXldLCAkZGVmYXVsdCkgOiAkZGVmYXVsdCk7DQogICAgaWYoICFpc19hcnJheSgkcmV0KSApIHsgJHJldCA9IFskcmV0XTsgfQ0KICAgIA0KICAgIHJldHVybiAkcmV0Ow0KICB9DQogIA0KICANCiAgcHVibGljIHN0YXRpYyBmdW5jdGlvbiBmcm9tX2JsdWVwcmludCgkcGFyYW1zID0gW10sICRibHVlcHJpbnQgPSBbXSkgOiBhcnJheQ0KICB7DQogICAgaWYoIGVtcHR5KCRwYXJhbXMpICkgeyByZXR1cm4gW107IH0NCiAgICBpZiggZW1wdHkoJGJsdWVwcmludCkgKSB7IHJldHVybiAkcGFyYW1zOyB9DQogICAgDQogICAgJHJldCA9IFtdOw0KICAgIA0KICAgIGZvcmVhY2goICRibHVlcHJpbnQgYXMgJG5hbWUgPT4gJHByb3BzKQ0KICAgIHsNCiAgICAgIGlmKGluX2FycmF5KCRwcm9wc1sndHlwZSddLCBzZWxmOjokX2FzX2ZuY3MsIFRSVUUpKQ0KICAgICAgew0KICAgICAgICAkZm5jX25hbWUgPSAnXFxMSVNFXFxwYXJhbWV0ZXJzOjphc18nIC4gJHByb3BzWyd0eXBlJ107DQogICAgICAgICRyZXRbJG5hbWVdID0gJGZuY19uYW1lKCRwYXJhbXMsICRuYW1lLCAkcHJvcHNbJ2RlZmF1bHQnXSk7DQogICAgICB9DQogICAgfQ0KICAgIA0KICAgIHJldHVybiAkcmV0Ow0KICB9DQp9DQo/Pg0K]]></data>
	</file>
	<file>
	  <filename>/lib/class.Query.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHANCi8qKg0KICoNCiAqLw0KDQpuYW1lc3BhY2UgTElTRTsNCg0KdXNlIENsb3N1cmU7DQp1c2UgUnVudGltZUV4Y2VwdGlvbjsNCg0KLyoqDQogKiBDbGFzcyBxdWVyeQ0KICoNCiAqIEBwYWNrYWdlIExJU0UNCiAqLw0KY2xhc3MgUXVlcnkNCnsNCiAgIyBBY3Rpb24gdHlwZXMNCiAgLyoqDQogICAqDQogICAqLw0KICBwcm90ZWN0ZWQgY29uc3QgVFlQRV9TRUxFQ1QgID0gJ1NFTEVDVCc7DQogIHByb3RlY3RlZCBjb25zdCBUWVBFX0lOU0VSVCAgPSAnSU5TRVJUJzsNCiAgcHJvdGVjdGVkIGNvbnN0IFRZUEVfVVBEQVRFICA9ICdVUERBVEUnOw0KICBwcm90ZWN0ZWQgY29uc3QgVFlQRV9ERUxFVEUgID0gJ0RFTEVURSc7DQogIHByb3RlY3RlZCBjb25zdCBUWVBFX1JFUExBQ0UgPSAnUkVQTEFDRSc7DQogIA0KICAjDQogIHByb3RlY3RlZCBjb25zdCBOTCA9ICJcclxuIjsNCiAgcHJvdGVjdGVkIGNvbnN0IFRBQiA9ICcgICc7DQogIA0KICBwcml2YXRlIHN0YXRpYyBhcnJheSAkX21vZHVsZV9tYXAgPSBbXTsNCiAgDQogIA0KICAvKioNCiAgICogIHByb3RlY3RlZCBwcm9wcw0KICAgKi8NCiAgDQogIHByb3RlY3RlZCBzdHJpbmcgJF9tb2R1bGVfbmFtZTsNCiAgcHJvdGVjdGVkIHN0cmluZyAkX3RhYmxlX3ByZWZpeDsNCiAgDQogIC8qKg0KICAgKiBPUkRFUiBCWSByYW5kb20ga2V5d29yZA0KICAgKg0KICAgKiBAdmFyIGFycmF5DQogICAqLw0KICBwcm90ZWN0ZWQgYXJyYXkgJHJhbmRvbV9rZXl3b3JkID0gWw0KICAgICdSQU5EKCknLA0KICAgICdSQU5EKCVkKScsDQogIF07DQogIA0KICAvKioNCiAgICogVGFibGVzIHJlbGF0aW9uIHR5cGVzDQogICAqDQogICAqIEB2YXIgYXJyYXkNCiAgICovDQogIHByb3RlY3RlZCBhcnJheSAkam9pbl90eXBlcyA9IFsNCiAgICAnTEVGVCcsDQogICAgJ1JJR0hUJywNCiAgICAnT1VURVInLA0KICAgICdJTk5FUicsDQogICAgJ0NST1NTJywNCiAgICAnTEVGVCBPVVRFUicsDQogICAgJ1JJR0hUIE9VVEVSJywNCiAgXTsNCiAgDQogIC8qKg0KICAgKiAgcHJpdmF0ZSBwcm9wcw0KICAgKi8NCiAgcHJpdmF0ZSBzdHJpbmcgICAgICAgICAgICAgICAgICAgICAgICAgICAgJF90YWJsZSAgICAgICAgICAgICAgICA9ICcnOw0KICBwcml2YXRlIHN0cmluZyAgICAgICAgICAgICAgICAgICAgICAgICAgICAkX3F1ZXJ5ICAgICAgICAgICAgICAgID0gJyc7DQogIHByaXZhdGUgYXJyYXkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRfY29scyAgICAgICAgICAgICAgICAgPSBbXTsNCiAgcHJpdmF0ZSBhcnJheSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJF92YWx1ZXMgICAgICAgICAgICAgICA9IFtdOw0KICBwcml2YXRlIHN0cmluZyAgICAgICAgICAgICAgICAgICAgICAgICAgICAkX2Zyb20gICAgICAgICAgICAgICAgID0gJyc7DQogIHByaXZhdGUgaW50ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRfbGltaXQgICAgICAgICAgICAgICAgPSAwOw0KICBwcml2YXRlIGludCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkX29mZnNldCAgICAgICAgICAgICAgID0gMDsNCiAgcHJpdmF0ZSBzdHJpbmcgICAgICAgICAgICAgICAgICAgICAgICAgICAgJF9kaXN0aW5jdCAgICAgICAgICAgICA9ICcnOw0KICBwcml2YXRlIGFycmF5ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkX3NldCAgICAgICAgICAgICAgICAgID0gW107DQogIHByaXZhdGUgYXJyYXkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRfd2hlcmVfc3RhY2sgICAgICAgICAgPSBbXTsNCiAgcHJpdmF0ZSBhcnJheSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJF93aGVyZV9iaW5kaW5nc19zdGFjayA9IFtdOw0KICBwcml2YXRlIGFycmF5ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkX29yZGVyX2J5X3N0YWNrICAgICAgID0gW107DQogIHByaXZhdGUgYXJyYXkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRfam9pbnNfc3RhY2sgICAgICAgICAgPSBbXTsNCiAgcHJpdmF0ZSBhcnJheSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJF90YWJsZV9hbGlhc2VzX21hcCAgICA9IFtdOw0KICBwcml2YXRlIFxDTVNNU1xEYXRhYmFzZVxDb25uZWN0aW9uICAgICAgICAkX2RiOw0KICBwcml2YXRlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkX3JzOw0KICBwcml2YXRlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkX3R5cGU7DQogIHByaXZhdGUgUXVlcnkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRfc3ViX3F1ZXJ5Ow0KICANCiAgLyoqDQogICAqICBwcml2YXRlIG1ldGhvZHMNCiAgICovDQogIA0KICAvKioNCiAgICoNCiAgICovDQogIHByaXZhdGUgZnVuY3Rpb24gX3Jlc2V0X3RhYmxlKCkgOiB2b2lkDQogIHsNCiAgICAkdGhpcy0+X3RhYmxlID0gJyc7DQogIH0NCiAgDQogIC8qKg0KICAgKg0KICAgKi8NCiAgcHJpdmF0ZSBmdW5jdGlvbiBfcmVzZXRfdGFibGVfYWxpYXNlc19tYXAoKSA6IHZvaWQNCiAgew0KICAgICR0aGlzLT5fdGFibGVfYWxpYXNlc19tYXAgPSBbXTsNCiAgfQ0KICANCiAgLyoqDQogICAqDQogICAqLw0KICBwcml2YXRlIGZ1bmN0aW9uIF9yZXNldF9mcm9tKCkgOiB2b2lkDQogIHsNCiAgICAkdGhpcy0+X2Zyb20gPSAnJzsNCiAgfQ0KICANCiAgLyoqDQogICAqDQogICAqLw0KICBwcml2YXRlIGZ1bmN0aW9uIF9yZXNldF9xdWVyeSgpIDogdm9pZA0KICB7DQogICAgJHRoaXMtPl9xdWVyeSA9ICcnOw0KICB9DQogIA0KICAvKioNCiAgICoNCiAgICovDQogIHByaXZhdGUgZnVuY3Rpb24gX3Jlc2V0X2NvbHMoKSA6IHZvaWQNCiAgew0KICAgICR0aGlzLT5fY29scyA9IFtdOw0KICB9DQogIA0KICAvKioNCiAgICoNCiAgICovDQogIHByaXZhdGUgZnVuY3Rpb24gX3Jlc2V0X3ZhbHVlcygpIDogdm9pZA0KICB7DQogICAgJHRoaXMtPl92YWx1ZXMgPSBbXTsNCiAgfQ0KICANCiAgcHJpdmF0ZSBmdW5jdGlvbiBfcmVzZXRfcmVzdWx0X3NldCgpIDogdm9pZA0KICB7DQogICAgJHRoaXMtPl9ycyA9IFtdOw0KICB9DQogIA0KICAvKioNCiAgICogcmVzZXRzIGFsbCBpbnRlcm5hbCBkYXRhDQogICAqLw0KICBwcml2YXRlIGZ1bmN0aW9uIF9yZXNldF9hbGwoKSA6IHZvaWQNCiAgew0KICAgICR0aGlzLT5fcmVzZXRfdGFibGUoKTsNCiAgICAkdGhpcy0+X3Jlc2V0X3RhYmxlX2FsaWFzZXNfbWFwKCk7DQogICAgJHRoaXMtPl9yZXNldF9mcm9tKCk7DQogICAgJHRoaXMtPl9yZXNldF9xdWVyeSgpOw0KICAgICR0aGlzLT5fcmVzZXRfcmVzdWx0X3NldCgpOw0KICAgICR0aGlzLT5fcmVzZXRfY29scygpOw0KICAgICR0aGlzLT5fcmVzZXRfdmFsdWVzKCk7DQogICAgJHRoaXMtPl9zdGFja19jbGVhcignd2hlcmUnKTsNCiAgICAkdGhpcy0+X3N0YWNrX2NsZWFyKCd3aGVyZV9iaW5kaW5ncycpOw0KICAgICR0aGlzLT5fc3RhY2tfY2xlYXIoJ29yZGVyX2J5Jyk7DQogIH0NCiAgDQogIC8qKg0KICAgKiByZXNldHMgYWxsIHdyaXRlIGRhdGENCiAgICovDQogIHByaXZhdGUgZnVuY3Rpb24gX3Jlc2V0X3dyaXRlX2RhdGEoKSA6IHZvaWQNCiAgew0KICAgICR0aGlzLT5fcmVzZXRfcXVlcnkoKTsNCiAgICAkdGhpcy0+X3Jlc2V0X2NvbHMoKTsNCiAgICAkdGhpcy0+X3Jlc2V0X3ZhbHVlcygpOw0KICAgICR0aGlzLT5fc3RhY2tfY2xlYXIoJ3doZXJlJyk7DQogICAgJHRoaXMtPl9zdGFja19jbGVhcignd2hlcmVfYmluZGluZ3MnKTsNCiAgICAkdGhpcy0+X3N0YWNrX2NsZWFyKCdvcmRlcl9ieScpOw0KICB9DQogIA0KICAvKioNCiAgICoNCiAgICovDQogIHByaXZhdGUgZnVuY3Rpb24gX2xvYWRfbW9kdWxlX25hbWVzKCkgOiB2b2lkDQogIHsNCiAgICBpZiggZW1wdHkoc2VsZjo6JF9tb2R1bGVfbWFwICkgKQ0KICAgIHsNCiAgICAgIHNlbGY6OiRfbW9kdWxlX21hcCA9IFxNb2R1bGVPcGVyYXRpb25zOjpnZXRfaW5zdGFuY2UoKS0+R2V0QWxsTW9kdWxlTmFtZXMoKTsNCiAgICB9DQogIH0NCiAgDQogIC8qKg0KICAgKiBAcGFyYW0gJG1vZHVsZV9uYW1lDQogICAqDQogICAqIEByZXR1cm4gYm9vbA0KICAgKi8NCiAgcHJpdmF0ZSBmdW5jdGlvbiBfbW9kdWxlX2V4aXN0cygkbW9kdWxlX25hbWUpIDogYm9vbA0KICB7DQogICAgJHRoaXMtPl9sb2FkX21vZHVsZV9uYW1lcygpOw0KICAgIA0KICAgIHN0YXRpYyAkbG93ZXJfY2FzZV9saXN0Ow0KICAgIA0KICAgIGlmKCBlbXB0eSgkbG93ZXJfY2FzZV9saXN0KSApDQogICAgew0KICAgICAgJGxvd2VyX2Nhc2VfbGlzdCA9IHNlbGY6OiRfbW9kdWxlX21hcDsNCiAgICAgIA0KICAgICAgJHRvX2xvd2VyID0gc3RhdGljIGZ1bmN0aW9uKCYkaXRlbSwgJGtleSkNCiAgICAgIHsNCiAgICAgICAgJGl0ZW0gPSBzdHJ0b2xvd2VyKCRpdGVtKTsNCiAgICAgICAgJGl0ZW0gPSAoc3RyaW5nKSRpdGVtOw0KICAgICAgfTsNCiAgICAgIA0KICAgICAgYXJyYXlfd2Fsa19yZWN1cnNpdmUoJHJlcF9tYXAsICR0b19sb3dlcik7DQogICAgfQ0KICAgIA0KICAgIHJldHVybiAoaW5fYXJyYXkoJG1vZHVsZV9uYW1lLCBzZWxmOjokX21vZHVsZV9tYXAsIFRSVUUpIHx8IGluX2FycmF5KCRtb2R1bGVfbmFtZSwgJGxvd2VyX2Nhc2VfbGlzdCwgVFJVRSkpOw0KICB9DQogIA0KICAvKioNCiAgICogQHBhcmFtICR0YWJsZV9uYW1lDQogICAqDQogICAqIEByZXR1cm4gc3RyaW5nDQogICAqIEB0aHJvd3MgXFJ1bnRpbWVFeGNlcHRpb24NCiAgICovDQogIHByaXZhdGUgZnVuY3Rpb24gX2V4dHJhY3RfbW9kdWxlX25hbWVfZnJvbV90YWJsZSgkdGFibGVfbmFtZSkgOiBzdHJpbmcNCiAgew0KICAgICRmb3VuZCA9IEZBTFNFOw0KICAgICMgcmVtb3ZlIHRoZSB1c3VhbCBjbXMgcHJlZml4IGlmIHRoZXJlDQogICAgJHRtcCA9IHN0cl9yZXBsYWNlKFxjbXNfZGJfcHJlZml4KCksICcnLCAkdGFibGVfbmFtZSk7DQogICAgDQogICAgJHBhcnRzID0gZXhwbG9kZSgnXycsICR0bXApOw0KICAgIA0KICAgICRtb2R1bGVfbmFtZSA9ICcnOw0KICAgIA0KICAgIGlmKCRwYXJ0c1swXSA9PT0gJ21vZHVsZScpDQogICAgew0KICAgICAgLy8kZG9uZSA9IEZBTFNFOw0KICAgICAgDQogICAgICBkbw0KICAgICAgew0KICAgICAgICBhcnJheV9zaGlmdCgkcGFydHMpOw0KICAgICAgICAkbW9kdWxlX25hbWUgLj0gJHBhcnRzWzBdOw0KICAgICAgICAkZm91bmQgPSAgJHRoaXMtPl9tb2R1bGVfZXhpc3RzKCRtb2R1bGVfbmFtZSk7DQogICAgICAgICRkb25lID0gJGZvdW5kIHx8ICFjb3VudCgkcGFydHMpOw0KICAgICAgICANCiAgICAgICAgaWYoISRkb25lKSB7ICRtb2R1bGVfbmFtZSAuPSAnXyc7IH0NCiAgICAgIH0NCiAgICAgIHdoaWxlKCEkZG9uZSk7DQogICAgfQ0KICAgIA0KICAgIGlmKCAhY291bnQoJHBhcnRzKSApDQogICAgew0KICAgICAgdGhyb3cgbmV3IFJ1bnRpbWVFeGNlcHRpb24oJ0NvdWxkIG5vdCBleHRyYWN0IGEgdmFsaWQgdGFibGUgbmFtZSEnKTsNCiAgICB9DQogICAgDQogICAgaWYoJGZvdW5kKSB7IHJldHVybiAkbW9kdWxlX25hbWU7IH0NCiAgICANCiAgICByZXR1cm4gJyc7DQogIH0NCiAgDQogIC8qKg0KICAgKiBAcGFyYW0gJGZyb20NCiAgICogQHBhcmFtICRhbGlhcw0KICAgKi8NCiAgcHJpdmF0ZSBmdW5jdGlvbiBfbWFwX2FsaWFzKCRmcm9tLCAkYWxpYXMpIDogdm9pZA0KICB7DQogICAgaWYoICFpc3NldCgkdGhpcy0+X3RhYmxlX2FsaWFzZXNfbWFwWyRmcm9tXSkgKQ0KICAgIHsNCiAgICAgICR0aGlzLT5fdGFibGVfYWxpYXNlc19tYXBbJGZyb21dID0gJGFsaWFzOw0KICAgIH0NCiAgfQ0KICANCiAgLyoqDQogICAqIEBwYXJhbSAkdGFibGVfc3RyaW5nDQogICAqLw0KICBwcml2YXRlIGZ1bmN0aW9uIF9wcm9jZXNzX2FsaWFzKCR0YWJsZV9zdHJpbmcpIDogdm9pZA0KICB7DQogICAgaWYoIGNvdW50KCAkdG1wID0gZXhwbG9kZSgnICcsIHRyaW0oJHRhYmxlX3N0cmluZykgKSApID09PSAyKQ0KICAgIHsNCiAgICAgIFskdGFibGUsICRhbGlhc10gPSAkdG1wOw0KICAgICAgJHRhYmxlID0gJHRoaXMtPl90YWJsZSA9ICR0aGlzLT5fZ2V0X3RhYmxlKCAkdGhpcy0+X2NsZWFuX3RhYmxlX25hbWUoJHRhYmxlKSApOw0KICAgICAgJHRoaXMtPl9tYXBfYWxpYXMoJHRhYmxlLCAkYWxpYXMpOw0KICAgIH0NCiAgfQ0KICANCiAgLyoqDQogICAqIHNldCB0aGUgbWFpbiB0YWJsZSBmb3IgYmFzaWMgcXVlcnkgRE1MIG9wZXJhdGlvbnMNCiAgICogU0VMRUNUIC8gVVBEQVRFIC8gSU5TRVJUIC8gREVMRVRFDQogICAqICR0YWJsZSBjYW4gaW5jbHVkZSBpdHMgYWxpYXMgaWYgc2VwYXJhdGVkIGJ5IGEgc3BhY2UNCiAgICogQHBhcmFtICR0YWJsZQ0KICAgKi8NCiAgcHJpdmF0ZSBmdW5jdGlvbiBfc2V0X3RhYmxlKCR0YWJsZSkgOiB2b2lkDQogIHsNCiAgICBpZiggY291bnQoICR0bXAgPSBleHBsb2RlKCcgJywgdHJpbSgkdGFibGUpICkgKSA9PT0gMikNCiAgICB7DQogICAgICBbJHRhYmxlLCAkYWxpYXNdID0gJHRtcDsNCiAgICB9DQogIA0KICAgICR0aGlzLT5fdGFibGUgPSAkdGhpcy0+X2NsZWFuX3RhYmxlX25hbWUoJHRhYmxlKTsNCiAgICAkdGhpcy0+X2Zyb20gID0gJHRoaXMtPl9nZXRfdGFibGUoKTsNCiAgICANCiAgICBpZiggaXNzZXQoJGFsaWFzKSApDQogICAgew0KICAgICAgJHRoaXMtPl9tYXBfYWxpYXMoJHRoaXMtPl9mcm9tLCAkYWxpYXMpOw0KICAgIH0NCiAgfQ0KICANCiAgLyoqDQogICAqIHJlbW92ZSBhbGwgcHJlZml4IGFuZCBtb2R1bGUgbmFtZSBmcm9tIHRoZSB0YWJsZSBuYW1lDQogICAqIHdlIGNhbiBzYWZlbHkgcmVidWlsZCBpdCBsYXRlcg0KICAgKg0KICAgKiBAcGFyYW0gJHRhYmxlX25hbWUNCiAgICoNCiAgICogQHJldHVybiBzdHJpbmd8c3RyaW5nW10NCiAgICovDQogIHByaXZhdGUgZnVuY3Rpb24gX2NsZWFuX3RhYmxlX25hbWUoJHRhYmxlX25hbWUpDQogIHsNCiAgICANCiAgICBpZiggZW1wdHkoJHRoaXMtPl9tb2R1bGVfbmFtZSkgKQ0KICAgIHsNCiAgICAgICRtbiAgICAgICAgICAgICAgICAgPSAkdGhpcy0+X2V4dHJhY3RfbW9kdWxlX25hbWVfZnJvbV90YWJsZSgkdGFibGVfbmFtZSk7DQogICAgICAkdGhpcy0+X21vZHVsZV9uYW1lID0gZW1wdHkoJG1uKSA/IHN0cnRvbG93ZXIoX19OQU1FU1BBQ0VfXykgOiAkbW47DQogICAgfQ0KICAgIA0KICAgICMgcmVtb3ZlIHRoZSB1c3VhbCBjbXMgcHJlZml4DQogICAgIyByZW1vdmUgdGhlIG1vZHVsZSBuYW1lDQogIA0KICAgIHJldHVybiBzdHJfcmVwbGFjZSgNCiAgICAgIFsNCiAgICAgICAgJHRoaXMtPl90YWJsZV9wcmVmaXgsDQogICAgICAgJ21vZHVsZV8nIC4gJHRoaXMtPl9tb2R1bGVfbmFtZSAuICdfJw0KICAgICAgXSwNCiAgICAgICcnLCAkdGFibGVfbmFtZQ0KICAgICk7DQogICAgDQogIH0NCiAgDQogIC8qKg0KICAgKiByZXR1cm4gYSB2YWxpZCB0YWJsZSBuYW1lOg0KICAgKiBTRUxFQ1QgLyBVUERBVEUgLyBJTlNFUlQgLyBERUxFVEUNCiAgICoNCiAgICogQHBhcmFtIHN0cmluZyAkdGFibGVfbmFtZQ0KICAgKg0KICAgKiBAcmV0dXJuIHN0cmluZw0KICAgKi8NCiAgcHJpdmF0ZSBmdW5jdGlvbiBfZ2V0X3RhYmxlKCR0YWJsZV9uYW1lID0gJycpIDogc3RyaW5nDQogIHsNCiAgICBpZiggZW1wdHkoJHRhYmxlX25hbWUpICkNCiAgICB7DQogICAgICAkdGFibGVfbmFtZSA9ICR0aGlzLT5fdGFibGU7DQogICAgfQ0KICAgIA0KICAgIHJldHVybiAkdGhpcy0+X3RhYmxlX3ByZWZpeCAuICdtb2R1bGVfJyAuICR0aGlzLT5fbW9kdWxlX25hbWUgLiAnXycgLiAkdGFibGVfbmFtZTsNCiAgfQ0KICANCiAgLyoqDQogICAqIHN0YWNrIHJlbGF0ZWQgbWV0aG9kcw0KICAgKi8NCiAgDQogIC8qKg0KICAgKiBUaGlzIGlzIG9ubHkgdGVtcG9yYXJ5IChKTSkNCiAgICogbG93IGxldmVsDQogICAqIEBpZ25vcmUNCiAgICovDQogIA0KICAvKioNCiAgICogQHBhcmFtICRzdGFjaw0KICAgKg0KICAgKiBAcmV0dXJuIGludA0KICAgKi8NCiAgcHJpdmF0ZSBmdW5jdGlvbiBfbGxfc3RhY2tfY291bnQoJHN0YWNrKSA6IGludA0KICB7DQogICAgcmV0dXJuIGNvdW50KCRzdGFjayk7DQogIH0NCiAgDQogIC8qKg0KICAgKiBAcGFyYW0gJHN0YWNrDQogICAqDQogICAqIEByZXR1cm4gbWl4ZWQNCiAgICovDQogIHByaXZhdGUgZnVuY3Rpb24gX2xsX3N0YWNrX3BlZWsoJHN0YWNrKQ0KICB7DQogICAgcmV0dXJuIGVuZCgkc3RhY2spOw0KICB9DQogIA0KICAvKioNCiAgICogQHBhcmFtICRzdGFjaw0KICAgKiBAcGFyYW0gJHRva2VuDQogICAqLw0KICBwcml2YXRlIGZ1bmN0aW9uIF9sbF9zdGFja19wdXNoKCYkc3RhY2ssICR0b2tlbikgOiB2b2lkDQogIHsNCiAgICAkc3RhY2tbXSA9ICR0b2tlbjsNCiAgfQ0KICANCiAgLyoqDQogICAqIEBwYXJhbSAkc3RhY2sNCiAgICovDQogIHByaXZhdGUgZnVuY3Rpb24gX2xsX3N0YWNrX2NsZWFyKCYkc3RhY2spIDogdm9pZA0KICB7DQogICAgJHN0YWNrID0gW107DQogIH0NCiAgDQogIC8qKg0KICAgKiBAcGFyYW0gJHN0YWNrDQogICAqDQogICAqIEByZXR1cm4gbWl4ZWQNCiAgICovDQogIHByaXZhdGUgZnVuY3Rpb24gX2xsX3N0YWNrX3BvcCgmJHN0YWNrKQ0KICB7DQogICAgcmV0dXJuICBhcnJheV9wb3AoJHN0YWNrKTsNCiAgfQ0KICANCiAgDQogIC8qKg0KICAgKiBAaW50ZXJuYWwNCiAgICovDQogIA0KICAvKioNCiAgICogQHBhcmFtICRzdGFjaw0KICAgKg0KICAgKiBAcmV0dXJuIGludA0KICAgKi8NCiAgcHJpdmF0ZSBmdW5jdGlvbiBfc3RhY2tfY291bnQoJHN0YWNrKSA6IGludA0KICB7DQogICAgJHN0YWNrX25hbWUgPSAiX3skc3RhY2t9X3N0YWNrIjsNCiAgICANCiAgICByZXR1cm4gJHRoaXMtPl9sbF9zdGFja19jb3VudCgkdGhpcy0+JHN0YWNrX25hbWUpOw0KICB9DQogIA0KICAvKioNCiAgICogQHBhcmFtICRzdGFjaw0KICAgKg0KICAgKiBAcmV0dXJuIG1peGVkDQogICAqLw0KICBwcml2YXRlIGZ1bmN0aW9uIF9zdGFja19wZWVrKCRzdGFjaykNCiAgew0KICAgICRzdGFja19uYW1lID0gIl97JHN0YWNrfV9zdGFjayI7DQogICAgDQogICAgcmV0dXJuICR0aGlzLT5fbGxfc3RhY2tfcGVlaygkdGhpcy0+JHN0YWNrX25hbWUpOw0KICB9DQogIA0KICAvKioNCiAgICogQHBhcmFtICRzdGFjaw0KICAgKiBAcGFyYW0gJHRva2VuDQogICAqLw0KICBwcml2YXRlIGZ1bmN0aW9uIF9zdGFja19wdXNoKCRzdGFjaywgJHRva2VuKSA6IHZvaWQNCiAgew0KICAgICRzdGFja19uYW1lICAgICAgICAgID0gIl97JHN0YWNrfV9zdGFjayI7DQogICAgJHRoaXMtPl9sbF9zdGFja19wdXNoKCR0aGlzLT4kc3RhY2tfbmFtZSwgJHRva2VuKTsNCiAgfQ0KICANCiAgLyoqDQogICAqIEBwYXJhbSAkc3RhY2sNCiAgICovDQogIHByaXZhdGUgZnVuY3Rpb24gX3N0YWNrX2NsZWFyKCRzdGFjaykgOiB2b2lkDQogIHsNCiAgICAkc3RhY2tfbmFtZSA9ICJfeyRzdGFja31fc3RhY2siOw0KICAgICR0aGlzLT5fbGxfc3RhY2tfY2xlYXIoJHRoaXMtPiRzdGFja19uYW1lKTsNCiAgfQ0KICANCiAgLyoqDQogICAqIEBwYXJhbSAkc3RhY2sNCiAgICoNCiAgICogQHJldHVybiBtaXhlZA0KICAgKi8NCiAgcHJpdmF0ZSBmdW5jdGlvbiBfc3RhY2tfcG9wKCRzdGFjaykNCiAgew0KICAgICRzdGFja19uYW1lID0gIl97JHN0YWNrfV9zdGFjayI7DQogICAgcmV0dXJuICR0aGlzLT5fbGxfc3RhY2tfcG9wKCR0aGlzLT4kc3RhY2tfbmFtZSk7DQogIH0NCiAgDQogIC8qKg0KICAgKiBjb21waWxlIG1ldGhvZHMNCiAgICovDQogIA0KICAvKioNCiAgICogVE9ETyBtYXliZSAkbGltaXQgYW5kICRvZmZzZXQ/DQogICAqLw0KICBwcml2YXRlIGZ1bmN0aW9uIF9jb21waWxlX3F1ZXJ5KCkgOiB2b2lkDQogIHsNCiAgICBzd2l0Y2ggKCR0aGlzLT5fdHlwZSkNCiAgICB7DQogICAgICBjYXNlIHNlbGY6OlRZUEVfU0VMRUNUOg0KICAgICAgICAkdGhpcy0+X2NvbXBpbGVfc2VsZWN0KCk7DQogICAgICBicmVhazsNCiAgICAgIGNhc2Ugc2VsZjo6VFlQRV9JTlNFUlQ6DQogICAgICAgICR0aGlzLT5fY29tcGlsZV9pbnNlcnQoKTsNCiAgICAgIGJyZWFrOw0KICAgICAgY2FzZSBzZWxmOjpUWVBFX1VQREFURToNCiAgICAgICAgJHRoaXMtPl9jb21waWxlX3VwZGF0ZSgpOw0KICAgICAgYnJlYWs7DQogICAgICBjYXNlIHNlbGY6OlRZUEVfREVMRVRFOg0KICAgICAgICAkdGhpcy0+X2NvbXBpbGVfZGVsZXRlKCk7DQogICAgICBicmVhazsNCiAgICAgIGNhc2Ugc2VsZjo6VFlQRV9SRVBMQUNFOg0KICAgICAgICAkdGhpcy0+X2NvbXBpbGVfcmVwbGFjZSgpOw0KICAgICAgYnJlYWs7DQogICAgICANCiAgICAgIGRlZmF1bHQ6DQogICAgfQ0KICB9DQogIA0KICAvKioNCiAgICogQHJldHVybiBzdHJpbmcNCiAgICovDQogIHByaXZhdGUgZnVuY3Rpb24gX2NvbXBpbGVfd2hlcmUoKSA6IHN0cmluZw0KICB7DQogICAgaWYoICEkdGhpcy0+X3N0YWNrX2NvdW50KCd3aGVyZScpICkNCiAgICB7DQogICAgICByZXR1cm4gJyc7DQogICAgfQ0KICAgIA0KICAgICR3aGVyZSA9ICdXSEVSRSAnIC4gc2VsZjo6Tkw7DQogICAgJHdoZXJlIC49IGltcGxvZGUoJyAnLCAkdGhpcy0+X3doZXJlX3N0YWNrKTsNCiAgICANCiAgICAkdGhpcy0+X3ZhbHVlcyA9IGFycmF5X21lcmdlKCR0aGlzLT5fdmFsdWVzLCAkdGhpcy0+X3doZXJlX2JpbmRpbmdzX3N0YWNrKTsNCiAgICANCiAgICByZXR1cm4gJHdoZXJlIC4gc2VsZjo6Tkw7DQogIH0NCiAgDQogIC8qKg0KICAgKiBAcmV0dXJuIHN0cmluZw0KICAgKi8NCiAgcHJpdmF0ZSBmdW5jdGlvbiBfY29tcGlsZV9qb2lucygpIDogc3RyaW5nDQogIHsNCiAgICBpZiggISR0aGlzLT5fc3RhY2tfY291bnQoJ2pvaW5zJykgKQ0KICAgIHsNCiAgICAgIHJldHVybiAnJzsNCiAgICB9DQogICAgDQogICAgJGpvaW5zID0gJyc7DQogICAgDQogICAgZm9yZWFjaCggJHRoaXMtPl9qb2luc19zdGFjayBhcyAkam9pbikNCiAgICB7DQogICAgICAkam9pbnMgLj0gJGpvaW4gLiBzZWxmOjpOTDsNCiAgICB9DQogICAgDQogICAgcmV0dXJuICRqb2luczsNCiAgfQ0KICANCiAgLyoqDQogICAqIEByZXR1cm4gc3RyaW5nDQogICAqLw0KICBwcml2YXRlIGZ1bmN0aW9uIF9jb21waWxlX29yZGVyX2J5KCkgOiBzdHJpbmcNCiAgew0KICAgIGlmKCAhJHRoaXMtPl9zdGFja19jb3VudCgnb3JkZXJfYnknKSApDQogICAgew0KICAgICAgcmV0dXJuICcnOw0KICAgIH0NCiAgICANCiAgICAkb3JkZXJfYnkgPSAnT1JERVIgQlkgJyAuIHNlbGY6Ok5MOw0KICAgICRvcmRlcl9ieSAuPSBpbXBsb2RlKCcsJyAuIHNlbGY6Ok5MIC4gc2VsZjo6VEFCLCAkdGhpcy0+X29yZGVyX2J5X3N0YWNrKTsNCiAgICANCiAgICByZXR1cm4gJG9yZGVyX2J5IC4gc2VsZjo6Tkw7DQogIH0NCiAgDQogIC8qKg0KICAgKg0KICAgKi8NCiAgcHJpdmF0ZSBmdW5jdGlvbiBfY29tcGlsZV9zZWxlY3QoKSA6IHZvaWQNCiAgew0KICAgICR0aGlzLT5fcmVzZXRfcXVlcnkoKTsNCiAgICAkdGhpcy0+X3F1ZXJ5ID0gJ1NFTEVDVCAnOw0KICAgIA0KICAgIGlmKCAhZW1wdHkoJHRoaXMtPl9kaXN0aW5jdCkgKQ0KICAgIHsNCiAgICAgICR0aGlzLT5fcXVlcnkgLj0gJHRoaXMtPl9kaXN0aW5jdCAuICcgJzsNCiAgICB9DQogICAgDQogICAgJHRoaXMtPl9xdWVyeSAuPSBzZWxmOjpOTCAuIHNlbGY6OlRBQjsNCiAgICANCiAgICBpZiggZW1wdHkoJHRoaXMtPl9jb2xzKSApIHsgJHRoaXMtPl9jb2xzW10gPSAnKic7IH0NCiAgICANCiAgICAkdGhpcy0+X3F1ZXJ5IC49IGltcGxvZGUoJywnLCAkdGhpcy0+X2NvbHMpIC4gc2VsZjo6Tkw7DQogICAgJHRoaXMtPl9xdWVyeSAuPSAnRlJPTSAnIC4gc2VsZjo6TkwgLiBzZWxmOjpUQUI7DQogICAgJHRoaXMtPl9xdWVyeSAuPSAkdGhpcy0+X2Zyb20gLiBzZWxmOjpOTDsNCiAgICAkdGhpcy0+X3F1ZXJ5IC49ICR0aGlzLT5fY29tcGlsZV9qb2lucygpOw0KICAgICR0aGlzLT5fcXVlcnkgLj0gJHRoaXMtPl9jb21waWxlX3doZXJlKCk7DQogICAgJHRoaXMtPl9xdWVyeSAuPSAkdGhpcy0+X2NvbXBpbGVfb3JkZXJfYnkoKTsNCiAgICANCiAgICBpZigkdGhpcy0+X2xpbWl0ID4gMCkNCiAgICB7DQogICAgICAkdGhpcy0+X3F1ZXJ5IC49ICcgTElNSVQgJyAuICR0aGlzLT5fbGltaXQ7DQogICAgICANCiAgICAgIGlmKCR0aGlzLT5fb2Zmc2V0ID4gMCkNCiAgICAgIHsNCiAgICAgICAgJHRoaXMtPl9xdWVyeSAuPSAnIE9GRlNFVCAnIC4gJHRoaXMtPl9vZmZzZXQ7DQogICAgICB9DQogICAgfQ0KICB9DQogIA0KICAvKioNCiAgICoNCiAgICovDQogIHByaXZhdGUgZnVuY3Rpb24gX2NvbXBpbGVfaW5zZXJ0KCkgOiB2b2lkDQogIHsNCiAgICAkdGhpcy0+X3Jlc2V0X3F1ZXJ5KCk7DQogICAgJGtleXMgPSBhcnJheV9rZXlzKCR0aGlzLT5fc2V0KTsNCiAgICAkdGhpcy0+X3ZhbHVlcyA9IGFycmF5X3ZhbHVlcygkdGhpcy0+X3NldCk7DQogICAgJHBsYWNlX2hvbGRlcnMgPSAgYXJyYXlfZmlsbCgwLCBjb3VudCgka2V5cyksICc/Jyk7DQogICAgDQogICAgJHRoaXMtPl9xdWVyeSA9ICdJTlNFUlQgSU5UTyAnIC4gc2VsZjo6Tkw7DQogICAgJHRoaXMtPl9xdWVyeSAuPSBzZWxmOjpUQUIgLiAkdGhpcy0+X2Zyb20gLiBzZWxmOjpOTDsNCiAgICAkdGhpcy0+X3F1ZXJ5IC49IHNlbGY6OlRBQiAuICcoJzsNCiAgICAkdGhpcy0+X3F1ZXJ5IC49IGltcGxvZGUoJywnLCAka2V5cyk7DQogICAgJHRoaXMtPl9xdWVyeSAuPSAnKScgLiBzZWxmOjpOTCAuICdWQUxVRVMnIC4gc2VsZjo6TkwgLiBzZWxmOjpUQUIgLiAgJygnOw0KICAgICR0aGlzLT5fcXVlcnkgLj0gaW1wbG9kZSgnLCcsICRwbGFjZV9ob2xkZXJzKTsNCiAgICAkdGhpcy0+X3F1ZXJ5IC49ICcpJzsNCiAgfQ0KICANCiAgLyoqDQogICAqDQogICAqLw0KICBwcml2YXRlIGZ1bmN0aW9uIF9jb21waWxlX3VwZGF0ZSgpIDogdm9pZA0KICB7DQogICAgJGtleXMgPSBhcnJheV9rZXlzKCR0aGlzLT5fc2V0KTsNCiAgICAkdGhpcy0+X3ZhbHVlcyA9IGFycmF5X3ZhbHVlcygkdGhpcy0+X3NldCk7DQogICAgLy8kcGxhY2VfaG9sZGVycyA9ICBhcnJheV9maWxsKDAsIGNvdW50KCRrZXlzKSwgJz8nKTsNCiAgICANCiAgICAkdGhpcy0+X3Jlc2V0X3F1ZXJ5KCk7DQogICAgJHRoaXMtPl9xdWVyeSA9ICdVUERBVEUgJyAuIHNlbGY6Ok5MOw0KICAgICR0aGlzLT5fcXVlcnkgLj0gc2VsZjo6VEFCIC4gJHRoaXMtPl9mcm9tIC4gc2VsZjo6Tkw7DQogICAgJHRoaXMtPl9xdWVyeSAuPSAnU0VUJyAuIHNlbGY6Ok5MOw0KICAgIA0KICAgICR0ZW1wID0gW107DQogICAgDQogICAgZm9yZWFjaCgka2V5cyBhcyAkb25lKQ0KICAgIHsNCiAgICAgICR0ZW1wW109IHNlbGY6OlRBQiAuICAkb25lIC4gJyA9ID8nOw0KICAgIH0NCiAgICANCiAgICAkdGhpcy0+X3F1ZXJ5IC49IGltcGxvZGUoJywnIC4gc2VsZjo6TkwsICR0ZW1wKSAuIHNlbGY6Ok5MOw0KICAgIA0KICAgICR0aGlzLT5fcXVlcnkgLj0gJHRoaXMtPl9jb21waWxlX3doZXJlKCkgLiBzZWxmOjpOTDsNCiAgICAkdGhpcy0+X3F1ZXJ5IC49ICR0aGlzLT5fY29tcGlsZV9vcmRlcl9ieSgpIC4gc2VsZjo6Tkw7DQogICAgDQogICAgaWYoJHRoaXMtPl9saW1pdCA+IDApDQogICAgew0KICAgICAgJHRoaXMtPl9xdWVyeSAuPSAnIExJTUlUICcgLiAkdGhpcy0+X2xpbWl0Ow0KICAgICAgDQogICAgICBpZigkdGhpcy0+X29mZnNldCA+IDApDQogICAgICB7DQogICAgICAgICR0aGlzLT5fcXVlcnkgLj0gJyBPRkZTRVQgJyAuICR0aGlzLT5fb2Zmc2V0Ow0KICAgICAgfQ0KICAgIH0NCiAgfQ0KICANCiAgLyoqDQogICAqDQogICAqLw0KICBwcml2YXRlIGZ1bmN0aW9uIF9jb21waWxlX2RlbGV0ZSgpIDogdm9pZA0KICB7DQogICAgJHRoaXMtPl9yZXNldF9xdWVyeSgpOw0KICAgICR0aGlzLT5fcXVlcnkgPSAnREVMRVRFIEZST00gJyAuIHNlbGY6Ok5MOw0KICAgICR0aGlzLT5fcXVlcnkgLj0gc2VsZjo6VEFCIC4gJHRoaXMtPl9mcm9tIC4gc2VsZjo6Tkw7DQogICAgJHRoaXMtPl9xdWVyeSAuPSAkdGhpcy0+X2NvbXBpbGVfd2hlcmUoKSAuIHNlbGY6Ok5MOw0KICAgICR0aGlzLT5fcXVlcnkgLj0gJHRoaXMtPl9jb21waWxlX29yZGVyX2J5KCkgLiBzZWxmOjpOTDsNCiAgICANCiAgICBpZigkdGhpcy0+X2xpbWl0ID4gMCkNCiAgICB7DQogICAgICAkdGhpcy0+X3F1ZXJ5IC49ICcgTElNSVQgJyAuICR0aGlzLT5fbGltaXQ7DQogICAgICANCiAgICAgIGlmKCR0aGlzLT5fb2Zmc2V0ID4gMCkNCiAgICAgIHsNCiAgICAgICAgJHRoaXMtPl9xdWVyeSAuPSAnIE9GRlNFVCAnIC4gJHRoaXMtPl9vZmZzZXQ7DQogICAgICB9DQogICAgfQ0KICB9DQogIA0KICBwcml2YXRlIGZ1bmN0aW9uIF9jb21waWxlX3JlcGxhY2UoKSA6IHZvaWQNCiAgew0KICAgICR0aGlzLT5fcmVzZXRfcXVlcnkoKTsNCiAgICAka2V5cyA9IGFycmF5X2tleXMoJHRoaXMtPl9zZXQpOw0KICAgICR0aGlzLT5fdmFsdWVzID0gYXJyYXlfdmFsdWVzKCR0aGlzLT5fc2V0KTsNCiAgICAkcGxhY2VfaG9sZGVycyA9ICBhcnJheV9maWxsKDAsIGNvdW50KCRrZXlzKSwgJz8nKTsNCiAgICANCiAgICAkdGhpcy0+X3F1ZXJ5ID0gJ1JFUExBQ0UgSU5UTyAnIC4gc2VsZjo6Tkw7DQogICAgJHRoaXMtPl9xdWVyeSAuPSBzZWxmOjpUQUIgLiAkdGhpcy0+X2Zyb20gLiAnICc7DQogICAgJHRoaXMtPl9xdWVyeSAuPSAnKCc7DQogICAgJHRoaXMtPl9xdWVyeSAuPSBpbXBsb2RlKCcsJywgJGtleXMpOw0KICAgICR0aGlzLT5fcXVlcnkgLj0gJyknIC4gc2VsZjo6TkwgLiAnVkFMVUVTJyAuIHNlbGY6Ok5MIC4gc2VsZjo6VEFCIC4gICcoJzsNCiAgICAkdGhpcy0+X3F1ZXJ5IC49IGltcGxvZGUoJywnLCAkcGxhY2VfaG9sZGVycyk7DQogICAgJHRoaXMtPl9xdWVyeSAuPSAnKSc7DQogIH0NCiAgDQogIC8qKg0KICAgKg0KICAgKi8NCiAgcHJpdmF0ZSBmdW5jdGlvbiBfZXhlY3V0ZSgpIDogdm9pZA0KICB7DQogICAgJGJpbmRpbmdzID0gIWVtcHR5KCR0aGlzLT5fdmFsdWVzKSA/ICR0aGlzLT5fdmFsdWVzIDogRkFMU0U7DQogICAgJHRoaXMtPl9ycyA9ICR0aGlzLT5fZGItPkV4ZWN1dGUoJHRoaXMtPl9xdWVyeSwgJGJpbmRpbmdzKTsNCiAgfQ0KICANCiAgLyoqDQogICAqIHJ1bnMgbWV0aG9kcyBmcm9tIHRoZSBjb25uZWN0aW9uIG9iamVjdA0KICAgKiAoREIgPSAkdGhpcy0+X2RiID0gXENNU01TXERhdGFiYXNlXENvbm5lY3Rpb24pDQogICAqIGlmIG5vIGFyZ3VtZW50cyBwcm92aWRlZCB3ZSB1c2UgaW50ZXJuYWwgc3FsIGFuZCBiaW5kaW5ncw0KICAgKiBvdGhlcndpc2UgdXNlIHdoYXQgaXMgcHJvdmlkZWQsIGluIG9yZGVyOg0KICAgKiAkc3FsIC0+IHF1ZXJ5IHRvIGJlIHVzZWQNCiAgICogJGJpbmRpbmdzIC0+IGFycmF5IG9mIHZhbHVlcyB0byBiZSBsaW5rZWQgdG8gdGhlIHBsYWNlaG9sZGVycw0KICAgKg0KICAgKiBhbGwgb3RoZXIgYXJndW1lbnRzIHdpbGwgYmUgcGFzc2VkIHRvIHRoZSBjYWxsZWQgZnVuY3Rpb24gYXMgYXJlDQogICAqDQogICAqICR0aGlzLT5fcnMgd2lsbCBob2xkIHRoZSByZXN1bHRzIG9mIHRoZSBtZXRob2QgY2FsbA0KICAgKiBpbiB0aGUgZm9ybSBvZiBhbiBhcnJheQ0KICAgKi8NCiAgcHJpdmF0ZSBmdW5jdGlvbiBfcnVuX2Nvbm5lY3Rpb24oKSA6IHZvaWQNCiAgew0KICAgICRhcmdzICAgPSBmdW5jX2dldF9hcmdzKCk7DQogICAgJG1ldGhvZCA9IGFycmF5X3NoaWZ0KCRhcmdzKTsNCiAgICAkdGhpcy0+X2NvbXBpbGVfcXVlcnkoKTsNCiAgICAkYmluZGluZ3MgPSAhZW1wdHkoJHRoaXMtPl92YWx1ZXMpID8gJHRoaXMtPl92YWx1ZXMgOiBGQUxTRTsNCiAgICAkYyAgICAgICAgPSBjb3VudCgkYXJncyk7DQogICAgDQogICAgIyBpbiBjYXNlIHdlIGhhdmUgYXJndW1lbnRzIHdlIHVzZSB0aGVtDQogICAgIyBvdGhlcndpc2Ugd2UgdXNlIGludGVybmFsDQogICAgaWYoJGMgPT09IDApDQogICAgew0KICAgICAgIyBub25lIHByb3ZpZGVkDQogICAgICAkYXJnc1swXSA9ICR0aGlzLT5fcXVlcnk7DQogICAgICAkYXJnc1sxXSA9ICRiaW5kaW5nczsNCiAgICB9DQogICAgZWxzZWlmKCRjID09PSAxKQ0KICAgIHsNCiAgICAgICMgd2UgaGF2ZSBhbiBzcWwgc3RhdGVtZW50LCB1c2UgaXQNCiAgICAgICR0aGlzLT5fcXVlcnkgPSAkYXJnc1swXTsNCiAgICAgIA0KICAgICAgIyB1c2UgYmluZGluZ3MgaWYgYW55DQogICAgICAkYXJnc1sxXSAgICAgID0gJGJpbmRpbmdzOw0KICAgIH0NCiAgICBlbHNlDQogICAgew0KICAgICAgIyBldmVyeXRoaW5nIHByb3ZpZGVkDQogICAgICAkdGhpcy0+X3F1ZXJ5ID0gJGFyZ3NbMF07DQogICAgICAkdGhpcy0+X3ZhbHVlcyAgPSAkYXJnc1sxXTsNCiAgICB9DQogICAgDQogICAgJHRoaXMtPl9ycyA9IGNhbGxfdXNlcl9mdW5jX2FycmF5KFskdGhpcy0+X2RiLCAkbWV0aG9kXSwgJGFyZ3MpOw0KICB9DQogIA0KICAvKioNCiAgICogQHBhcmFtIHN0cmluZyAkc2VsZWN0DQogICAqIEBwYXJhbSBzdHJpbmcgJGFsaWFzDQogICAqIEBwYXJhbSBzdHJpbmcgJHR5cGUNCiAgICoNCiAgICogQHJldHVybiBtaXhlZA0KICAgKiBAdGhyb3dzIFxMSVNFXERhdGFFeGNlcHRpb24NCiAgICovDQogIHByaXZhdGUgZnVuY3Rpb24gbWF4TWluQXZnU3VtKHN0cmluZyAkc2VsZWN0ID0gJycsIHN0cmluZyAkYWxpYXMgPSAnJywgc3RyaW5nICR0eXBlID0gJ01BWCcpDQogIHsNCiAgICBpZiAoJHNlbGVjdCA9PT0gJycpDQogICAgew0KICAgICAgdGhyb3cgbmV3IERhdGFFeGNlcHRpb24oJ0VtcHR5IHNlbGVjdCBwYXJhbWV0ZXIgaW4gbWF4TWluQXZnU3VtJyk7DQogICAgfQ0KICAgIA0KICAgIGlmIChzdHJwb3MoJHNlbGVjdCwgJywnKSAhPT0gZmFsc2UpDQogICAgew0KICAgICAgdGhyb3cgbmV3IERhdGFFeGNlcHRpb24oJ0ludmFsaWQgYXJndW1lbnQgaW4gbWF4TWluQXZnU3VtOiBjb2x1bW4gbmFtZSBub3Qgc2VwYXJhdGVkIGJ5IGNvbW1hJyk7DQogICAgfQ0KICAgIA0KICAgICR0eXBlID0gc3RydG91cHBlcigkdHlwZSk7DQogICAgDQogICAgaWYgKCEgaW5fYXJyYXkoJHR5cGUsIFsnTUFYJywgJ01JTicsICdBVkcnLCAnU1VNJywgJ0NPVU5UJ10sIHRydWUpKQ0KICAgIHsNCiAgICAgIHRocm93IG5ldyBEYXRhRXhjZXB0aW9uKCdJbnZhbGlkIGZ1bmN0aW9uIHR5cGU6ICcgLiAkdHlwZSk7DQogICAgfQ0KICAgIA0KICAgIGlmICgkYWxpYXMgPT09ICcnKQ0KICAgIHsNCiAgICAgICRhbGlhcyA9ICR0aGlzLT5DcmVhdGVBbGlhc0Zyb21UYWJsZSggdHJpbSgkc2VsZWN0KSApOw0KICAgIH0NCiAgICANCiAgICAkdGhpcy0+X3F1ZXJ5ID0gJHR5cGUgLiAnKCcgLiB0cmltKCRzZWxlY3QpIC4gJykgQVMgJyAuIHRyaW0oJGFsaWFzKSAuICAgICAkdGhpcy0+X3F1ZXJ5IC49ICdGUk9NICcgLiAkdGhpcy0+X2Zyb207DQogICAgDQogICAgcmV0dXJuICR0aGlzLT5HZXRPbmUoJHRoaXMtPl9xdWVyeSk7DQogIH0NCiAgDQogIC8qKg0KICAgKiAgcHJvdGVjdGVkIG1ldGhvZHMNCiAgICovDQogIA0KICBwcm90ZWN0ZWQgZnVuY3Rpb24gX3NsaW1fY2xvbmUoKSA6IFF1ZXJ5DQogIHsNCiAgICByZXR1cm4gKGNsb25lICR0aGlzKS0+RnVsbFJlc2V0KCk7DQogIH0NCiAgDQogIHByb3RlY3RlZCBmdW5jdGlvbiBvYmplY3RfdG9fYXJyYXkoJG9iamVjdCkgOiBhcnJheQ0KICB7DQogICAgaWYoICFpc19vYmplY3QoJG9iamVjdCkgKSB7IHJldHVybiAkb2JqZWN0OyB9DQogICAgDQogICAgJGFycmF5ID0gW107DQogICAgZm9yZWFjaCAoZ2V0X29iamVjdF92YXJzKCRvYmplY3QpIGFzICRrZXkgPT4gJHZhbCkNCiAgICB7DQogICAgICAvLyBUaGVyZSBhcmUgc29tZSBidWlsdCBpbiBrZXlzIHdlIG5lZWQgdG8gaWdub3JlIGZvciB0aGlzIGNvbnZlcnNpb24NCiAgICAgIGlmKCAhaXNfb2JqZWN0KCR2YWwpICYmICFpc19hcnJheSgkdmFsKSAmJiAka2V5ICE9PSAnX3BhcmVudF9uYW1lJykNCiAgICAgIHsNCiAgICAgICAgJGFycmF5WyRrZXldID0gJHZhbDsNCiAgICAgIH0NCiAgICB9DQogICAgDQogICAgcmV0dXJuICRhcnJheTsNCiAgfQ0KICANCiAgcHJpdmF0ZSBmdW5jdGlvbiBfc2V0X21vZHVsZV9uYW1lKCRtb2R1bGVfbmFtZSA9ICcnKSA6IHZvaWQNCiAgew0KICAgIGlmKCBlbXB0eSgkbW9kdWxlX25hbWUpICkNCiAgICB7DQogICAgICAkdGhpcy0+X21vZHVsZV9uYW1lID0gc3RydG9sb3dlcihfX05BTUVTUEFDRV9fKTsNCiAgICB9DQogICAgZWxzZQ0KICAgIHsNCiAgICAgICR0aGlzLT5fbW9kdWxlX25hbWUgPSAkbW9kdWxlX25hbWU7DQogICAgfQ0KICB9DQogIA0KICBwcml2YXRlIGZ1bmN0aW9uIF9zZXRfdGFibGVfcHJlZml4KCR0YWJsZV9wcmVmaXgpIDogdm9pZA0KICB7DQogICAgaWYoIGVtcHR5KCR0YWJsZV9wcmVmaXgpICkNCiAgICB7DQogICAgICAkdGhpcy0+X3RhYmxlX3ByZWZpeCA9IFxjbXNfZGJfcHJlZml4KCk7DQogICAgfQ0KICAgIGVsc2UNCiAgICB7DQogICAgICAkdGhpcy0+X3RhYmxlX3ByZWZpeCA9ICR0YWJsZV9wcmVmaXg7DQogICAgfQ0KICB9DQogIA0KICAvKioNCiAgICogcHVibGljIG1ldGhvZHMNCiAgICovDQogIA0KICANCiAgLyoqDQogICAqIHF1ZXJ5IGNvbnN0cnVjdG9yLg0KICAgKg0KICAgKiBAcGFyYW0gc3RyaW5nICR0YWJsZV9uYW1lDQogICAqIEBwYXJhbSBzdHJpbmcgJG1vZHVsZV9uYW1lDQogICAqIEBwYXJhbSBzdHJpbmcgJHRhYmxlX3ByZWZpeA0KICAgKg0KICAgKiBAdGhyb3dzIFxFeGNlcHRpb24NCiAgICovDQogIHB1YmxpYyBmdW5jdGlvbiBfX2NvbnN0cnVjdCgkdGFibGVfbmFtZSA9ICcnLCAkbW9kdWxlX25hbWUgPSAnJywgJHRhYmxlX3ByZWZpeCA9ICcnKQ0KICB7DQogICAgJHRoaXMtPl9kYiA9IFxjbXNfdXRpbHM6OmdldF9kYigpOw0KICAgICR0aGlzLT5fc2V0X3RhYmxlX3ByZWZpeCgkdGFibGVfcHJlZml4KTsNCiAgICAkdGhpcy0+X3NldF9tb2R1bGVfbmFtZSgkbW9kdWxlX25hbWUpOw0KICAgICR0aGlzLT5fc2V0X3RhYmxlKCR0YWJsZV9uYW1lKTsNCiAgfQ0KICANCiAgLyoqDQogICAqIEBwYXJhbSBzdHJpbmcgJHNlbGVjdA0KICAgKg0KICAgKiBAcmV0dXJuICR0aGlzDQogICAqIEB0aHJvd3MgXExJU0VcRGF0YUV4Y2VwdGlvbg0KICAgKi8NCiAgcHVibGljIGZ1bmN0aW9uIFNlbGVjdERpc3RpbmN0KCRzZWxlY3QgPSAnKicpIDogUXVlcnkNCiAgew0KICAgICR0aGlzLT5fZGlzdGluY3QgPSAnRElTVElOQ1QnOw0KICAgICR0aGlzLT5TZWxlY3QoJHNlbGVjdCk7DQogICAgDQogICAgcmV0dXJuICR0aGlzOw0KICB9DQogIA0KICAvKioNCiAgICogQHBhcmFtIHN0cmluZ3xhcnJheSAkc2VsZWN0DQogICAqDQogICAqIEByZXR1cm4gJHRoaXMNCiAgICogQHRocm93cyBcTElTRVxEYXRhRXhjZXB0aW9uDQogICAqLw0KICBwdWJsaWMgZnVuY3Rpb24gU2VsZWN0KCRzZWxlY3QgPSAnKicpIDogUXVlcnkNCiAgew0KICAgIGlmKCBlbXB0eSgkdGhpcy0+X2Zyb20pICkNCiAgICB7DQogICAgICB0aHJvdyBuZXcgRGF0YUV4Y2VwdGlvbignQSB0YWJsZSByZWZlcmVuY2UgaXMgbmVlZGVkIGZvciBGcm9tIScpOw0KICAgIH0NCiAgICANCiAgICBpZiggaXNfc3RyaW5nKCRzZWxlY3QpICkNCiAgICB7DQogICAgICAkc2VsZWN0ID0gZXhwbG9kZSgnLCcsICRzZWxlY3QpOw0KICAgIH0NCiAgICANCiAgICBmb3JlYWNoKCRzZWxlY3QgYXMgJHZhbCkNCiAgICB7DQogICAgICBpZiAoJHZhbCAhPT0gJycpDQogICAgICB7DQogICAgICAgICR0aGlzLT5fY29sc1tdID0gJHZhbDsNCiAgICAgIH0NCiAgICB9DQogICAgDQogICAgJHRoaXMtPl90eXBlID0gc2VsZjo6VFlQRV9TRUxFQ1Q7DQogICAgDQogICAgcmV0dXJuICR0aGlzOw0KICB9DQogIA0KICAvKioNCiAgICogQHBhcmFtIGFycmF5fG51bGwgJHNldA0KICAgKg0KICAgKiBAcmV0dXJuICR0aGlzDQogICAqLw0KICBwdWJsaWMgZnVuY3Rpb24gSW5zZXJ0KGFycmF5ICRzZXQgPSBudWxsKSA6IFF1ZXJ5DQogIHsNCiAgICBpZigkc2V0ICE9PSBudWxsKSB7ICR0aGlzLT5zZXQoJHNldCwgJycpOyB9DQogICAgDQogICAgJHRoaXMtPl90eXBlID0gc2VsZjo6VFlQRV9JTlNFUlQ7DQogICAgDQogICAgcmV0dXJuICR0aGlzOw0KICB9DQogIA0KICAvKioNCiAgICogQHBhcmFtIGFycmF5fG51bGwgJHNldA0KICAgKg0KICAgKiBAcmV0dXJuICR0aGlzDQogICAqIEB0aHJvd3MgXExJU0VcRGF0YUV4Y2VwdGlvbg0KICAgKi8NCiAgcHVibGljIGZ1bmN0aW9uIFJlcGxhY2UoYXJyYXkgJHNldCA9IG51bGwpIDogUXVlcnkNCiAgew0KICAgIGlmKCRzZXQgIT09IG51bGwpDQogICAgew0KICAgICAgJHRoaXMtPlNldCgkc2V0KTsNCiAgICB9DQogICAgDQogICAgaWYoIGVtcHR5KCR0aGlzLT5fc2V0KSApDQogICAgew0KICAgICAgdGhyb3cgbmV3IERhdGFFeGNlcHRpb24oJ0RhdGEgc2V0IGNhbm5vdCBiZSBlbXB0eScpOw0KICAgIH0NCiAgICANCiAgICAkdGhpcy0+X3R5cGUgPSBzZWxmOjpUWVBFX1JFUExBQ0U7DQogICAgDQogICAgcmV0dXJuICR0aGlzOw0KICB9DQogIA0KICANCiAgLyoqDQogICAqIEBwYXJhbSBhcnJheXxudWxsICRzZXQNCiAgICoNCiAgICogQHJldHVybiAkdGhpcw0KICAgKi8NCiAgcHVibGljIGZ1bmN0aW9uIFVwZGF0ZShhcnJheSAkc2V0ID0gbnVsbCkgOiBRdWVyeQ0KICB7DQogICAgaWYoJHNldCAhPT0gbnVsbCkgeyAkdGhpcy0+c2V0KCRzZXQsICcnKTsgfQ0KICAgIA0KICAgICR0aGlzLT5fdHlwZSA9IHNlbGY6OlRZUEVfVVBEQVRFOw0KICAgIA0KICAgIHJldHVybiAkdGhpczsNCiAgfQ0KICANCiAgLyoqDQogICAqIEBwYXJhbSBzdHJpbmcgJHdoZXJlDQogICAqIEBwYXJhbSBib29sICAgJHJlc2V0X2RhdGENCiAgICoNCiAgICogQHJldHVybiAkdGhpcw0KICAgKi8NCiAgcHVibGljIGZ1bmN0aW9uIERlbGV0ZSgkd2hlcmUgPSAnJywgYm9vbCAkcmVzZXRfZGF0YSA9IHRydWUpIDogUXVlcnkNCiAgew0KICAgIGlmKCRyZXNldF9kYXRhKQ0KICAgIHsNCiAgICAgICR0aGlzLT5fcmVzZXRfd3JpdGVfZGF0YSgpOw0KICAgIH0NCiAgICANCiAgICBpZigkd2hlcmUgIT09ICcnKQ0KICAgIHsNCiAgICAgICR0aGlzLT5XaGVyZSgkd2hlcmUpOw0KICAgIH0NCiAgICANCiAgICAkdGhpcy0+X3R5cGUgPSBzZWxmOjpUWVBFX0RFTEVURTsNCiAgICANCiAgICByZXR1cm4gJHRoaXM7DQogIH0NCiAgDQogIC8qKg0KICAgKiBBbGxvd3Mga2V5L3ZhbHVlIHBhaXJzIHRvIGJlIHNldCBmb3IgaW5zZXJ0KCksIHVwZGF0ZSgpIG9yIHJlcGxhY2UoKS4NCiAgICoNCiAgICogQHBhcmFtIHN0cmluZ3xhcnJheXxvYmplY3QgJGtleSAgICBGaWVsZCBuYW1lLCBvciBhbiBhcnJheSBvZiBmaWVsZC92YWx1ZSBwYWlycw0KICAgKiBAcGFyYW0gc3RyaW5nICAgICAgICAgICAgICAkdmFsdWUgIEZpZWxkIHZhbHVlLCBpZiAka2V5IGlzIGEgc2luZ2xlIGZpZWxkDQogICAqDQogICAqIEByZXR1cm4gJHRoaXMNCiAgICovDQogIHB1YmxpYyBmdW5jdGlvbiBTZXQoJGtleSwgP3N0cmluZyAkdmFsdWUgPSAnJykgOiBRdWVyeQ0KICB7DQogICAgJGtleSA9ICR0aGlzLT5vYmplY3RfdG9fYXJyYXkoJGtleSk7DQogICAgDQogICAgaWYoICFpc19hcnJheSgka2V5KSApIHsgJGtleSA9IFska2V5ID0+ICR2YWx1ZV07IH0NCiAgICANCiAgICBmb3JlYWNoKCRrZXkgYXMgJGsgPT4gJHYpIHsgJHRoaXMtPl9zZXRbJGtdID0gJHY7IH0NCiAgICANCiAgICByZXR1cm4gJHRoaXM7DQogIH0NCiAgDQogIHB1YmxpYyBmdW5jdGlvbiBGcm9tKCR0YWJsZV9uYW1lID0gJycpIDogUXVlcnkNCiAgew0KICAgICR0aGlzLT5fc2V0X3RhYmxlKCR0YWJsZV9uYW1lKTsNCiAgICANCiAgICByZXR1cm4gJHRoaXM7DQogIH0NCiAgDQogIHB1YmxpYyBmdW5jdGlvbiBTZXRUYWJsZSgkdGFibGVfbmFtZSA9ICcnKSA6IFF1ZXJ5DQogIHsNCiAgICAkdGhpcy0+X3NldF90YWJsZSgkdGFibGVfbmFtZSk7DQogICAgDQogICAgcmV0dXJuICR0aGlzOw0KICB9DQogIA0KICAvKioNCiAgICogQHJldHVybiAkdGhpcw0KICAgKi8NCiAgcHVibGljIGZ1bmN0aW9uIEdyb3VwU3RhcnQoKSA6IFF1ZXJ5DQogIHsNCiAgICAkdGhpcy0+X3N0YWNrX3B1c2goJ3doZXJlJywnKCcpOw0KICAgIA0KICAgIHJldHVybiAkdGhpczsNCiAgfQ0KICANCiAgLyoqDQogICAqIEByZXR1cm4gJHRoaXMNCiAgICovDQogIHB1YmxpYyBmdW5jdGlvbiBHcm91cEVuZCgpIDogUXVlcnkNCiAgew0KICAgICR0aGlzLT5fc3RhY2tfcHVzaCgnd2hlcmUnLCcpJyk7DQogICAgDQogICAgcmV0dXJuICR0aGlzOw0KICB9DQogIA0KICAvKioNCiAgICogQWxpYXMgZm9yIEFuZFdoZXJlDQogICAqIEBwYXJhbSAgICAgICAgJGtleQ0KICAgKiBAcGFyYW0gbnVsbCAgICR2YWx1ZQ0KICAgKiBAcGFyYW0gc3RyaW5nICRvcA0KICAgKg0KICAgKiBAcmV0dXJuICR0aGlzDQogICAqLw0KICBwdWJsaWMgZnVuY3Rpb24gV2hlcmUoJGtleSwgJHZhbHVlID0gTlVMTCwgJG9wID0gJz0nKSA6IFF1ZXJ5DQogIHsNCiAgICByZXR1cm4gJHRoaXMtPkFuZFdoZXJlKCRrZXksICR2YWx1ZSwgJG9wKTsNCiAgfQ0KICANCiAgLyoqDQogICAqIEBwYXJhbSAgICAgICAgJGtleQ0KICAgKiBAcGFyYW0gbnVsbCAgICR2YWx1ZQ0KICAgKiBAcGFyYW0gc3RyaW5nICRvcA0KICAgKg0KICAgKiBAcmV0dXJuICR0aGlzDQogICAqLw0KICBwdWJsaWMgZnVuY3Rpb24gQW5kV2hlcmUoJGtleSwgJHZhbHVlID0gTlVMTCwgJG9wID0gJz0nKSA6IFF1ZXJ5DQogIHsNCiAgICANCiAgICBpZiggJHRoaXMtPl9zdGFja19jb3VudCgnd2hlcmUnKSAmJiAhKCR0aGlzLT5fc3RhY2tfcGVlaygnd2hlcmUnKSA9PT0gJygnKSApDQogICAgew0KICAgICAgJHRoaXMtPl9zdGFja19wdXNoKCd3aGVyZScsJ0FORCcpOw0KICAgIH0NCiAgICANCiAgICBpZiggIWlzX2FycmF5KCRrZXkpICkNCiAgICB7DQogICAgICBpZigkdmFsdWUgPT09IE5VTEwpDQogICAgICB7DQogICAgICAgICMgbGV0cyBhc3N1bWUgJGtleSBpcyBhIGZ1bGwgV0hFUkUgc3RyaW5nIGV4cHJlc3Npb24NCiAgICAgICAgDQogICAgICAgICR0aGlzLT5fc3RhY2tfcHVzaCgnd2hlcmUnLCAka2V5KTsNCiAgICAgIH0NCiAgICAgIGVsc2UgaWYoJHZhbHVlIGluc3RhbmNlb2YgQ2xvc3VyZSkNCiAgICAgIHsNCiAgICAgICAgJHF1ZXJ5X29iaiA9ICR0aGlzLT5fc2xpbV9jbG9uZSgpOw0KICAgICAgICAkdmFsdWUgICAgICAgPSAnKCcgLiAgJHZhbHVlKCRxdWVyeV9vYmopLT5HZXRRdWVyeShUUlVFKSAuICcpJzsNCiAgICAgICAgJHRoaXMtPl9zdGFja19wdXNoKCd3aGVyZScsJGtleSAuICcgJyAuICRvcCAuICcgJyAuICR2YWx1ZSk7DQogICAgICB9DQogICAgICBlbHNlDQogICAgICB7DQogICAgICAgICR0aGlzLT5fc3RhY2tfcHVzaCgnd2hlcmUnLCRrZXkgLiAnICcgLiAkb3AgLiAnID8nKTsNCiAgICAgICAgJHRoaXMtPl9zdGFja19wdXNoKCd3aGVyZV9iaW5kaW5ncycsICR2YWx1ZSk7DQogICAgICB9DQogICAgfQ0KICAgIGVsc2UNCiAgICB7DQogICAgICAkYyA9IGNvdW50KCRrZXkpOw0KICAgICAgJGkgPSAwOw0KICAgICAgDQogICAgICBmb3JlYWNoKCRrZXkgYXMgJGsgPT4gJHYpDQogICAgICB7DQogICAgICAgIGlmICgkdiAhPT0gbnVsbCkNCiAgICAgICAgew0KICAgICAgICAgICR0aGlzLT5fc3RhY2tfcHVzaCgnd2hlcmUnLCRrIC4gJyAnIC4gJG9wIC4gJyA/Jyk7DQogICAgICAgICAgJHRoaXMtPl9zdGFja19wdXNoKCd3aGVyZV9iaW5kaW5ncycsICR2KTsNCiAgICAgICAgfQ0KICAgICAgICANCiAgICAgICAgaWYoKyskaSA8ICRjKQ0KICAgICAgICB7DQogICAgICAgICAgJHRoaXMtPl9zdGFja19wdXNoKCd3aGVyZScsJ0FORCcpOw0KICAgICAgICB9DQogICAgICB9DQogICAgfQ0KICAgIA0KICAgIHJldHVybiAkdGhpczsNCiAgfQ0KICANCiAgDQogIC8qKg0KICAgKiBAcGFyYW0gICAgICAgICRrZXkNCiAgICogQHBhcmFtIG51bGwgICAkdmFsdWUNCiAgICogQHBhcmFtIHN0cmluZyAkb3ANCiAgICoNCiAgICogQHJldHVybiAkdGhpcw0KICAgKi8NCiAgcHVibGljIGZ1bmN0aW9uIE9yV2hlcmUoJGtleSwgJHZhbHVlID0gTlVMTCwgJG9wID0gJz0nKSA6IFF1ZXJ5DQogIHsNCiAgICBpZiggJHRoaXMtPl9zdGFja19jb3VudCgnd2hlcmUnKSApDQogICAgew0KICAgICAgJHRoaXMtPl9zdGFja19wdXNoKCd3aGVyZScsJ09SJyk7DQogICAgfQ0KICAgIA0KICAgIGlmKCAhaXNfYXJyYXkoJGtleSkgKQ0KICAgIHsNCiAgICAgIGlmKCR2YWx1ZSA9PT0gTlVMTCkNCiAgICAgIHsNCiAgICAgICAgIyBsZXRzIGFzc3VtZSAka2V5IGlzIGEgZnVsbCBXSEVSRSBzdHJpbmcgZXhwcmVzc2lvbg0KICAgICAgICANCiAgICAgICAgJHRoaXMtPl9zdGFja19wdXNoKCd3aGVyZScsICRrZXkpOw0KICAgICAgfQ0KICAgICAgZWxzZQ0KICAgICAgew0KICAgICAgICAkdGhpcy0+X3N0YWNrX3B1c2goJ3doZXJlJywka2V5IC4gJyAnIC4gJG9wIC4gJyA/Jyk7DQogICAgICAgICR0aGlzLT5fc3RhY2tfcHVzaCgnd2hlcmVfYmluZGluZ3MnLCAkdmFsdWUpOw0KICAgICAgfQ0KICAgIH0NCiAgICBlbHNlDQogICAgew0KICAgICAgJGMgPSBjb3VudCgka2V5KTsNCiAgICAgICRpID0gMDsNCiAgICAgIGZvcmVhY2goJGtleSBhcyAkayA9PiAkdikNCiAgICAgIHsNCiAgICAgICAgJHRoaXMtPl9zdGFja19wdXNoKCd3aGVyZScsJGsgLiAnICcgLiAkb3AgLiAnID8nKTsNCiAgICAgICAgJHRoaXMtPl9zdGFja19wdXNoKCd3aGVyZV9iaW5kaW5ncycsICR2KTsNCiAgICAgICAgDQogICAgICAgIGlmKCsrJGkgPCAkYykNCiAgICAgICAgew0KICAgICAgICAgICR0aGlzLT5fc3RhY2tfcHVzaCgnd2hlcmUnLCdPUicpOw0KICAgICAgICB9DQogICAgICB9DQogICAgfQ0KICAgIA0KICAgIHJldHVybiAkdGhpczsNCiAgfQ0KICANCiAgLyoqDQogICAqIEBwYXJhbSBpbnQgJGxpbWl0DQogICAqIEBwYXJhbSBpbnQgJG9mZnNldA0KICAgKg0KICAgKiBAcmV0dXJuICR0aGlzDQogICAqIEB0aHJvd3MgXExJU0VcRGF0YUV4Y2VwdGlvbg0KICAgKi8NCiAgcHVibGljIGZ1bmN0aW9uIExpbWl0KCRsaW1pdCA9IDAsICRvZmZzZXQgPSAwKSA6IFF1ZXJ5DQogIHsNCiAgICBpZiggIWlzX251bWVyaWMoJGxpbWl0KSApDQogICAgew0KICAgICAgdGhyb3cgbmV3IERhdGFFeGNlcHRpb24oJ0xpbWl0IHNob3VsZCBiZSBzcGVjaWZpZWQgdXNpbmcgbnVtZXJhbHMnKTsNCiAgICB9DQogICAgDQogICAgaWYoICFpc19udW1lcmljKCRvZmZzZXQpICkNCiAgICB7DQogICAgICB0aHJvdyBuZXcgRGF0YUV4Y2VwdGlvbignT2Zmc2V0IHNob3VsZCBiZSBzcGVjaWZpZWQgdXNpbmcgbnVtZXJhbHMnKTsNCiAgICB9DQogICAgDQogICAgJHRoaXMtPl9saW1pdCAgPSAkbGltaXQgPT09IDAgPyAkdGhpcy0+X2xpbWl0IDogJGxpbWl0Ow0KICAgICR0aGlzLT5fb2Zmc2V0ID0gJGxpbWl0ID09PSAwID8gJHRoaXMtPl9vZmZzZXQgOiAkb2Zmc2V0Ow0KICAgIA0KICAgIHJldHVybiAkdGhpczsNCiAgfQ0KICANCiAgLyoqDQogICAqIEBwYXJhbSBzdHJpbmcgJG9yZGVyQnkNCiAgICogQHBhcmFtIHN0cmluZyAkZGlyZWN0aW9uDQogICAqDQogICAqIEByZXR1cm4gJHRoaXMNCiAgICovDQogIHB1YmxpYyBmdW5jdGlvbiBPcmRlckJ5KHN0cmluZyAkb3JkZXJCeSwgc3RyaW5nICRkaXJlY3Rpb24gPSAnJykNCiAgew0KICAgICRkaXJlY3Rpb24gPSBzdHJ0b3VwcGVyKCB0cmltKCRkaXJlY3Rpb24pICk7DQogICAgDQogICAgaWYoJGRpcmVjdGlvbiA9PT0gJ1JBTkRPTScpDQogICAgew0KICAgICAgJGRpcmVjdGlvbiA9ICcnOw0KICAgICAgDQogICAgICAvLyBEbyB3ZSBoYXZlIGEgc2VlZCB2YWx1ZT8NCiAgICAgICRvcmRlckJ5ID0gY3R5cGVfZGlnaXQoJG9yZGVyQnkpID8gc3ByaW50ZigkdGhpcy0+cmFuZG9tX2tleXdvcmRbMV0sICRvcmRlckJ5KSA6ICR0aGlzLT5yYW5kb21fa2V5d29yZFswXTsNCiAgICB9DQogICAgZWxzZWlmKCBlbXB0eSgkb3JkZXJCeSkgKQ0KICAgIHsNCiAgICAgIHJldHVybiAkdGhpczsNCiAgICB9DQogICAgZWxzZWlmKCAkZGlyZWN0aW9uICE9PSAnJyApDQogICAgew0KICAgICAgJGRpcmVjdGlvbiA9IGluX2FycmF5KCRkaXJlY3Rpb24sIFsnQVNDJywgJ0RFU0MnXSwgdHJ1ZSkgPyAnICcgLiAkZGlyZWN0aW9uIDogJyc7DQogICAgfQ0KICAgIA0KICAgICRvYl9hcnIgPSBleHBsb2RlKCcsJywgJG9yZGVyQnkpOw0KICAgIA0KICAgIGZvcmVhY2goJG9iX2FyciBhcyAkb25lKQ0KICAgIHsNCiAgICAgIGlmKA0KICAgICAgICAkZGlyZWN0aW9uID09PSAnJw0KICAgICAgICAmJiBwcmVnX21hdGNoKCcvXHMrKEFTQ3xERVNDKSQvaScsIHJ0cmltKCRvbmUpLCAkbWF0Y2gsIFBSRUdfT0ZGU0VUX0NBUFRVUkUpDQogICAgICApDQogICAgICB7DQogICAgICAgICRjb2wgPSBsdHJpbSggc3Vic3RyKCRvbmUsIDAsICRtYXRjaFswXVsxXSkgKTsNCiAgICAgICAgJGRpcmVjdGlvbiA9ICAkbWF0Y2hbMV1bMF07DQogICAgICB9DQogICAgICBlbHNlDQogICAgICB7DQogICAgICAgICRjb2wgPSB0cmltKCRvbmUpOw0KICAgICAgfQ0KICAgICAgDQogICAgICAkdGhpcy0+X3N0YWNrX3B1c2goJ29yZGVyX2J5JywgJGNvbCAuICcgJyAuICRkaXJlY3Rpb24pOw0KICAgIH0NCiAgICANCiAgICByZXR1cm4gJHRoaXM7DQogIH0NCiAgDQogIC8qKg0KICAgKiBUZXN0cyB3aGV0aGVyIHRoZSBzdHJpbmcgaGFzIGFuIFNRTCBvcGVyYXRvcg0KICAgKg0KICAgKiBAcGFyYW0gc3RyaW5nICRzdHINCiAgICoNCiAgICogQHJldHVybiBib29sZWFuDQogICAqLw0KICBwcm90ZWN0ZWQgZnVuY3Rpb24gX2hhc19vcGVyYXRvcihzdHJpbmcgJHN0cikgOiBib29sDQogIHsNCiAgICByZXR1cm4gKGJvb2wpIHByZWdfbWF0Y2goICcvKDx8PnwhfD18XHNJUyBOVUxMfFxzSVMgTk9UIE5VTEx8XHNFWElTVFN8XHNCRVRXRUVOfFxzTElLRXxcc0lOXHMqXCh8XHMpL2knLCB0cmltKCRzdHIpICk7DQogIH0NCiAgDQogIC8qKg0KICAgKiBAcGFyYW0gc3RyaW5nICR0YWJsZQ0KICAgKiBAcGFyYW0gc3RyaW5nICRjb25kDQogICAqIEBwYXJhbSBzdHJpbmcgJHR5cGUNCiAgICoNCiAgICogQHJldHVybiBcTElTRVxRdWVyeQ0KICAgKi8NCiAgcHVibGljIGZ1bmN0aW9uIEpvaW4oc3RyaW5nICR0YWJsZSwgc3RyaW5nICRjb25kLCBzdHJpbmcgJHR5cGUgPSAnJykNCiAgew0KICAgIGlmICgkdHlwZSAhPT0gJycpDQogICAgew0KICAgICAgJHR5cGUgPSBzdHJ0b3VwcGVyKCB0cmltKCR0eXBlKSApOw0KICAgICAgDQogICAgICBpZiggIWluX2FycmF5KCR0eXBlLCAkdGhpcy0+am9pbl90eXBlcywgdHJ1ZSkgKQ0KICAgICAgew0KICAgICAgICAkdHlwZSA9ICcnOw0KICAgICAgfQ0KICAgICAgZWxzZQ0KICAgICAgew0KICAgICAgICAkdHlwZSAuPSAnICc7DQogICAgICB9DQogICAgfQ0KICAgIA0KICAgICR0aGlzLT5fcHJvY2Vzc19hbGlhcygkdGFibGUpOw0KICAgIA0KICAgICR0YWJsZSA9ICR0aGlzLT5fZ2V0X3RhYmxlKCR0YWJsZSk7DQogICAgDQogICAgaWYoICEkdGhpcy0+X2hhc19vcGVyYXRvcigkY29uZCkgKQ0KICAgIHsNCiAgICAgICRjb25kID0gJyBVU0lORyAoJyAuICRjb25kIC4gJyknOw0KICAgIH0NCiAgICBlbHNlDQogICAgew0KICAgICAgJGNvbmQgPSAnIE9OICcgLiAkY29uZDsNCiAgICB9DQogICAgDQogICAgLy8gQXNzZW1ibGUgdGhlIEpPSU4gc3RhdGVtZW50DQogICAgJGpvaW4gPSAkdHlwZSAuICdKT0lOICcgLiAkdGFibGUgLiAkY29uZDsNCiAgICAkdGhpcy0+X3N0YWNrX3B1c2goJ2pvaW5zJywgJGpvaW4pOw0KICAgIA0KICAgIHJldHVybiAkdGhpczsNCiAgfQ0KICANCiAgLyoqDQogICAqIEBwYXJhbSBpbnQgJGxpbWl0DQogICAqIEBwYXJhbSBpbnQgJG9mZnNldA0KICAgKg0KICAgKiBAcmV0dXJuIG1peGVkDQogICAqIEB0aHJvd3MgXExJU0VcRGF0YUV4Y2VwdGlvbg0KICAgKi8NCiAgcHVibGljIGZ1bmN0aW9uIEV4ZWN1dGUoJGxpbWl0ID0gMCwgJG9mZnNldCA9IDApDQogIHsNCiAgICAkdGhpcy0+TGltaXQoJGxpbWl0LCAkb2Zmc2V0KTsNCiAgICAkdGhpcy0+X2NvbXBpbGVfcXVlcnkoKTsNCiAgICAkdGhpcy0+X2V4ZWN1dGUoKTsNCiAgICANCiAgICByZXR1cm4gJHRoaXMtPl9yczsNCiAgfQ0KICANCiAgLyoqDQogICAqIEBwYXJhbSBpbnQgJG51bWJlcl9vZl9yb3dzDQogICAqDQogICAqIEByZXR1cm4gbWl4ZWQNCiAgICogQHRocm93cyBcTElTRVxEYXRhRXhjZXB0aW9uDQogICAqLw0KICBwdWJsaWMgZnVuY3Rpb24gUlNHZXRBcnJheSgkbnVtYmVyX29mX3Jvd3MgPSAwKQ0KICB7DQogICAgJHRoaXMtPkxpbWl0KCRudW1iZXJfb2Zfcm93cyk7DQogICAgJHRoaXMtPl9jb21waWxlX3F1ZXJ5KCk7DQogICAgJHRoaXMtPl9leGVjdXRlKCk7DQogICAgDQogICAgcmV0dXJuICR0aGlzLT5fcnMtPkdldEFycmF5KCk7DQogIH0NCiAgDQogIC8qKg0KICAgKiBAcGFyYW0gaW50ICRudW1iZXJfb2Zfcm93cw0KICAgKg0KICAgKiBAcmV0dXJuIG1peGVkDQogICAqIEB0aHJvd3MgXExJU0VcRGF0YUV4Y2VwdGlvbg0KICAgKi8NCiAgcHVibGljIGZ1bmN0aW9uIFJTR2V0Um93cygkbnVtYmVyX29mX3Jvd3MgPSAwKQ0KICB7DQogICAgJHRoaXMtPkxpbWl0KCRudW1iZXJfb2Zfcm93cyk7DQogICAgJHRoaXMtPl9jb21waWxlX3F1ZXJ5KCk7DQogICAgJHRoaXMtPl9leGVjdXRlKCk7DQogICAgDQogICAgcmV0dXJuICR0aGlzLT5fcnMtPkdldFJvd3MoKTsNCiAgfQ0KICANCiAgLyoqDQogICAqIEBwYXJhbSBib29sICRmb3JjZV9hcnJheQ0KICAgKg0KICAgKiBAcmV0dXJuIG1peGVkDQogICAqLw0KICBwdWJsaWMgZnVuY3Rpb24gUlNHZXRBc3NvYygkZm9yY2VfYXJyYXkgPSBGQUxTRSkNCiAgew0KICAgICR0aGlzLT5fY29tcGlsZV9xdWVyeSgpOw0KICAgICR0aGlzLT5fZXhlY3V0ZSgpOw0KICAgIA0KICAgIHJldHVybiAkdGhpcy0+X3JzLT5HZXRBc3NvYygkZm9yY2VfYXJyYXkpOw0KICB9DQogIA0KICAvKioNCiAgICogQWxpYXMgZm9yIEdldEFycmF5DQogICAqIEBwYXJhbSAgICAgICRzcWwNCiAgICogQHBhcmFtIGJvb2wgJGlucHV0YXJyDQogICAqDQogICAqIEByZXR1cm4gbWl4ZWQNCiAgICovDQogIHB1YmxpYyBmdW5jdGlvbiBHZXQoJHNxbCwgJGlucHV0YXJyID0gRkFMU0UpDQogIHsNCiAgICByZXR1cm4gJHRoaXMtPkdldEFycmF5KCRzcWwsICRpbnB1dGFycik7DQogIH0NCiAgDQogIA0KICBwdWJsaWMgZnVuY3Rpb24gR2V0T25lKCkgOiBcQ01TTVNcRGF0YWJhc2VcUmVzdWx0U2V0DQogIHsNCiAgICAkYXJncyA9IGZ1bmNfZ2V0X2FyZ3MoKTsNCiAgICBhcnJheV91bnNoaWZ0KCRhcmdzLF9fRlVOQ1RJT05fXyk7DQogICAgY2FsbF91c2VyX2Z1bmNfYXJyYXkoWyR0aGlzLCAnX3J1bl9jb25uZWN0aW9uJ10sICRhcmdzKTsNCiAgICANCiAgICByZXR1cm4gJHRoaXMtPl9yczsNCiAgfQ0KICANCiAgDQogIHB1YmxpYyBmdW5jdGlvbiBHZXRSb3coKSA6IGFycmF5DQogIHsNCiAgICAkYXJncyA9IGZ1bmNfZ2V0X2FyZ3MoKTsNCiAgICBhcnJheV91bnNoaWZ0KCRhcmdzLF9fRlVOQ1RJT05fXyk7DQogICAgY2FsbF91c2VyX2Z1bmNfYXJyYXkoWyR0aGlzLCAnX3J1bl9jb25uZWN0aW9uJ10sICRhcmdzKTsNCiAgICANCiAgICByZXR1cm4gJHRoaXMtPl9yczsNCiAgfQ0KICANCiAgDQogIHB1YmxpYyBmdW5jdGlvbiBHZXRDb2woKSA6IGFycmF5DQogIHsNCiAgICAkYXJncyA9IGZ1bmNfZ2V0X2FyZ3MoKTsNCiAgICBhcnJheV91bnNoaWZ0KCRhcmdzLF9fRlVOQ1RJT05fXyk7DQogICAgY2FsbF91c2VyX2Z1bmNfYXJyYXkoWyR0aGlzLCAnX3J1bl9jb25uZWN0aW9uJ10sICRhcmdzKTsNCiAgICANCiAgICByZXR1cm4gJHRoaXMtPl9yczsNCiAgfQ0KICANCiAgcHVibGljIGZ1bmN0aW9uIEdldEFsbCgpIDogYXJyYXkNCiAgew0KICAgICRhcmdzID0gZnVuY19nZXRfYXJncygpOw0KICAgIGFycmF5X3Vuc2hpZnQoJGFyZ3MsX19GVU5DVElPTl9fKTsNCiAgICBjYWxsX3VzZXJfZnVuY19hcnJheShbJHRoaXMsICdfcnVuX2Nvbm5lY3Rpb24nXSwgJGFyZ3MpOw0KICAgIA0KICAgIHJldHVybiAkdGhpcy0+X3JzOw0KICB9DQogIA0KICBwdWJsaWMgZnVuY3Rpb24gR2V0QXJyYXkoKSA6IFxDTVNNU1xEYXRhYmFzZVxSZXN1bHRTZXQNCiAgew0KICAgICRhcmdzID0gZnVuY19nZXRfYXJncygpOw0KICAgIGFycmF5X3Vuc2hpZnQoJGFyZ3MsX19GVU5DVElPTl9fKTsNCiAgICBjYWxsX3VzZXJfZnVuY19hcnJheShbJHRoaXMsICdfcnVuX2Nvbm5lY3Rpb24nXSwgJGFyZ3MpOw0KICAgIA0KICAgIHJldHVybiAkdGhpcy0+X3JzOw0KICB9DQogIA0KICAvKioNCiAgICogVHJ5IHRvIHVwZGF0ZSBhIHJlY29yZCwgYW5kIGlmIHRoZSByZWNvcmQgaXMgbm90IGZvdW5kLA0KICAgKiBhbiBpbnNlcnQgc3RhdGVtZW50IGlzIGdlbmVyYXRlZCBhbmQgZXhlY3V0ZWQuDQogICAqIFRoaXMgZGlmZmVycyBmcm9tIE15U1FMJ3MgcmVwbGFjZSB3aGljaCBkZWxldGVzIHRoZSByZWNvcmQgYW5kIGluc2VydHMgYSBuZXcgcmVjb3JkLg0KICAgKiBUaGlzIGFsc28gbWVhbnMgeW91IGNhbm5vdCB1cGRhdGUgdGhlIHByaW1hcnkga2V5Lg0KICAgKg0KICAgKg0KICAgKiBAcGFyYW0gICAgICAkdGFibGUgICAgICAgPSB0aGUgdGFibGUgbmFtZQ0KICAgKiBAcGFyYW0gICAgICAkYXJyRmllbGRzICAgPSBhbiBhc3NvY2lhdGl2ZSBhcnJheSB3aGVyZSB0aGUga2V5cyBhcmUgdGhlIGZpZWxkIG5hbWVzDQogICAqIEBwYXJhbSAgICAgICRrZXlDb2xzICAgICA9IHRoZSBuYW1lIG9mIHRoZSBwcmltYXJ5IGtleSwgb3IgYW4gYXJyYXkgb2YgZmllbGQgbmFtZXMgaWYgaXQgaXMgYSBjb21wb3VuZCBrZXkNCiAgICogQHBhcmFtIGJvb2wgJGF1dG9RdW90ZSA9IGlmIHRydWUgUmVwbGFjZSgpIHdpbGwgcXVvdGUgYWxsIHZhbHVlcyB0aGF0IGFyZSBub24tbnVtZXJpYzsNCiAgICoNCiAgICogYXV0by1xdW90aW5nIHdpbGwgbm90IHF1b3RlIG51bGxzLiBOb3RlIHRoYXQgYXV0by1xdW90aW5nIHdpbGwgbm90IHdvcmsgaWYgeW91IHVzZSBTUUwgZnVuY3Rpb25zIG9yIG9wZXJhdG9ycy4NCiAgICoNCiAgICogQHJldHVybiBpbnQgUmV0dXJucyAwIG9uIGZhaWx1cmUsDQogICAqICAgICAgICAgICAgICAgICAgICAgMSBpZiB1cGRhdGUgc3RhdGVtZW50IHdvcmtlZCwNCiAgICogICAgICAgICAgICAgICAgICAgICAyIGlmIG5vIHJlY29yZCB3YXMgZm91bmQgYW5kIHRoZSBpbnNlcnQgd2FzIGV4ZWN1dGVkIHN1Y2Nlc3NmdWxseS4NCiAgICovDQogIHB1YmxpYyBmdW5jdGlvbiBBZG9kYkx0ZVJlcGxhY2UoJHRhYmxlLCAkYXJyRmllbGRzLCAka2V5Q29scywgJGF1dG9RdW90ZSA9IGZhbHNlKSA6IGludA0KICB7DQogICAgJGFyZ3MgPSBmdW5jX2dldF9hcmdzKCk7DQogICAgYXJyYXlfdW5zaGlmdCgkYXJncywnUmVwbGFjZScpOw0KICAgIGNhbGxfdXNlcl9mdW5jX2FycmF5KFskdGhpcywgJ19ydW5fY29ubmVjdGlvbiddLCAkYXJncyk7DQogICAgDQogICAgcmV0dXJuICR0aGlzLT5fcnM7DQogIH0NCiAgDQogIC8qKg0KICAgKiBJbmplY3RzIGEgZGlyZWN0IFNRTCBzdGF0ZW1lbnQNCiAgICoNCiAgICogQHBhcmFtIHN0cmluZyAkc3FsDQogICAqDQogICAqIEByZXR1cm4gJHRoaXMNCiAgICovDQogIHB1YmxpYyBmdW5jdGlvbiBTUUwoJHNxbCA9ICcnKSA6IFF1ZXJ5DQogIHsNCiAgICAkdGhpcy0+X3Jlc2V0X3F1ZXJ5KCk7DQogICAgJHRoaXMtPl9xdWVyeSA9ICRzcWw7DQogICAgDQogICAgcmV0dXJuICR0aGlzOw0KICB9DQogIA0KICAvKioNCiAgICogIFRydW5jYXRlcyB0aGUgdGFibGUNCiAgICovDQogIHB1YmxpYyBmdW5jdGlvbiBUcnVuY2F0ZSgpIDogdm9pZA0KICB7DQogICAgJHNxbCA9ICdUUlVOQ0FURSBUQUJMRSAnIC4gJHRoaXMtPl9mcm9tOw0KICAgICR0aGlzLT5TUUwoJHNxbCktPkV4ZWN1dGUoKTsNCiAgfQ0KICANCiAgDQogIC8qKg0KICAgKiBBbGlhcyBmb3IgRXhlY3V0ZQ0KICAgKg0KICAgKiBAcGFyYW0gaW50ICRsaW1pdA0KICAgKiBAcGFyYW0gaW50ICRvZmZzZXQNCiAgICoNCiAgICogQHJldHVybiBcQ01TTVNcRGF0YWJhc2VcUmVzdWx0U2V0DQogICAqIEB0aHJvd3MgXExJU0VcRGF0YUV4Y2VwdGlvbg0KICAgKi8NCiAgcHVibGljIGZ1bmN0aW9uIFJ1bigkbGltaXQgPSAwLCAkb2Zmc2V0ID0gMCkNCiAgew0KICAgIHJldHVybiAkdGhpcy0+RXhlY3V0ZSgkbGltaXQsICRvZmZzZXQpOw0KICB9DQogIA0KICBwdWJsaWMgZnVuY3Rpb24gQ291bnQoKQ0KICB7DQogICAgJHRoaXMtPl90eXBlID0gc2VsZjo6VFlQRV9TRUxFQ1Q7DQogICAgIyBSZWNvcmRDb3VudCBtZXRob2QgaXMgZnJvbSB0aGUgUmVjb3JkU2V0IG9iamVjdA0KICAgIHJldHVybiAkdGhpcy0+RXhlY3V0ZSgpLT5SZWNvcmRDb3VudCgpOw0KICB9DQogIA0KICAvKioNCiAgICogQHBhcmFtIHN0cmluZyAkc2VsZWN0DQogICAqIEBwYXJhbSBzdHJpbmcgJGFsaWFzDQogICAqDQogICAqIEByZXR1cm4gbWl4ZWQNCiAgICogQHRocm93cyBcTElTRVxEYXRhRXhjZXB0aW9uDQogICAqLw0KICBwdWJsaWMgZnVuY3Rpb24gU2VsZWN0TWF4KHN0cmluZyAkc2VsZWN0ID0gJycsIHN0cmluZyAkYWxpYXMgPSAnJykNCiAgew0KICAgIHJldHVybiAkdGhpcy0+bWF4TWluQXZnU3VtKCRzZWxlY3QsICRhbGlhcyk7DQogIH0NCiAgDQogIC8qKg0KICAgKiBAcGFyYW0gc3RyaW5nICRzZWxlY3QNCiAgICogQHBhcmFtIHN0cmluZyAkYWxpYXMNCiAgICoNCiAgICogQHJldHVybiBtaXhlZA0KICAgKiBAdGhyb3dzIFxMSVNFXERhdGFFeGNlcHRpb24NCiAgICovDQogIHB1YmxpYyBmdW5jdGlvbiBTZWxlY3RNaW4oc3RyaW5nICRzZWxlY3QgPSAnJywgc3RyaW5nICRhbGlhcyA9ICcnKQ0KICB7DQogICAgcmV0dXJuICR0aGlzLT5tYXhNaW5BdmdTdW0oJHNlbGVjdCwgJGFsaWFzLCAnTUlOJyk7DQogIH0NCiAgDQogIC8qKg0KICAgKiBAcGFyYW0gc3RyaW5nICRzZWxlY3QNCiAgICogQHBhcmFtIHN0cmluZyAkYWxpYXMNCiAgICoNCiAgICogQHJldHVybiBhcnJheXxtaXhlZA0KICAgKiBAdGhyb3dzIFxMSVNFXERhdGFFeGNlcHRpb24NCiAgICovDQogIHB1YmxpYyBmdW5jdGlvbiBTZWxlY3RBdmcoc3RyaW5nICRzZWxlY3QgPSAnJywgc3RyaW5nICRhbGlhcyA9ICcnKQ0KICB7DQogICAgcmV0dXJuICR0aGlzLT5tYXhNaW5BdmdTdW0oJHNlbGVjdCwgJGFsaWFzLCAnQVZHJyk7DQogIH0NCiAgDQogIC8qKg0KICAgKiBAcGFyYW0gc3RyaW5nICRzZWxlY3QNCiAgICogQHBhcmFtIHN0cmluZyAkYWxpYXMNCiAgICoNCiAgICogQHJldHVybiBhcnJheXxtaXhlZA0KICAgKiBAdGhyb3dzIFxMSVNFXERhdGFFeGNlcHRpb24NCiAgICovDQogIHB1YmxpYyBmdW5jdGlvbiBTZWxlY3RTdW0oc3RyaW5nICRzZWxlY3QgPSAnJywgc3RyaW5nICRhbGlhcyA9ICcnKQ0KICB7DQogICAgcmV0dXJuICR0aGlzLT5tYXhNaW5BdmdTdW0oJHNlbGVjdCwgJGFsaWFzLCAnU1VNJyk7DQogIH0NCiAgDQogIC8qKg0KICAgKiBAcGFyYW0gc3RyaW5nICRzZWxlY3QNCiAgICogQHBhcmFtIHN0cmluZyAkYWxpYXMNCiAgICoNCiAgICogQHJldHVybiBhcnJheXxtaXhlZA0KICAgKiBAdGhyb3dzIFxMSVNFXERhdGFFeGNlcHRpb24NCiAgICovDQogIHB1YmxpYyBmdW5jdGlvbiBTZWxlY3RDb3VudChzdHJpbmcgJHNlbGVjdCA9ICcnLCBzdHJpbmcgJGFsaWFzID0gJycpDQogIHsNCiAgICByZXR1cm4gJHRoaXMtPm1heE1pbkF2Z1N1bSgkc2VsZWN0LCAkYWxpYXMsICdDT1VOVCcpOw0KICB9DQogIA0KICAvKioNCiAgICogUmV0dXJucyB0aGUgcXVlcnkgYWZ0ZXIgY29tcGlsZWQNCiAgICogRG9lc24ndCBleGVjdXRlIGl0DQogICAqIEBwYXJhbSBib29sICRzdHJpcHBlZA0KICAgKg0KICAgKiBAcmV0dXJuIHN0cmluZ3xzdHJpbmdbXXxudWxsDQogICAqLw0KICBwdWJsaWMgZnVuY3Rpb24gR2V0UXVlcnkoJHN0cmlwcGVkID0gRkFMU0UpDQogIHsNCiAgICAkdGhpcy0+X2NvbXBpbGVfcXVlcnkoKTsNCiAgICANCiAgICAkcmV0ID0gJHRoaXMtPl9xdWVyeTsNCiAgICANCiAgICBpZigkc3RyaXBwZWQpDQogICAgew0KICAgICAgJHJldCA9IHByZWdfcmVwbGFjZSgnL1xzKy8nLCAnICcsICRyZXQpOw0KICAgIH0NCiAgICANCiAgICByZXR1cm4gJHJldDsNCiAgfQ0KICANCiAgLyoqDQogICAqIEByZXR1cm4gJHRoaXMNCiAgICovDQogIHB1YmxpYyBmdW5jdGlvbiBSZXNldFF1ZXJ5KCkgOiBRdWVyeQ0KICB7DQogICAgJHRoaXMtPl9yZXNldF9xdWVyeSgpOw0KICAgIA0KICAgIHJldHVybiAkdGhpczsNCiAgfQ0KICANCiAgLyoqDQogICAqIEByZXR1cm4gJHRoaXMNCiAgICovDQogIHB1YmxpYyBmdW5jdGlvbiBGdWxsUmVzZXQoKSA6IFF1ZXJ5DQogIHsNCiAgICAkdGhpcy0+X3Jlc2V0X2FsbCgpOw0KICAgIA0KICAgIHJldHVybiAkdGhpczsNCiAgfQ0KICANCiAgLyoqDQogICAqIEBwYXJhbSAkbW9kdWxlX25hbWUNCiAgICoNCiAgICogQHJldHVybiAkdGhpcw0KICAgKi8NCiAgcHVibGljIGZ1bmN0aW9uIFNldE1vZHVsZU5hbWUoJG1vZHVsZV9uYW1lKSA6IFF1ZXJ5DQogIHsNCiAgICAkdGhpcy0+X3NldF9tb2R1bGVfbmFtZSgkbW9kdWxlX25hbWUpOw0KICAgIA0KICAgIHJldHVybiAkdGhpczsNCiAgfQ0KICANCiAgLyoqDQogICAqIEBwYXJhbSAkdGFibGVfcHJlZml4DQogICAqDQogICAqIEByZXR1cm4gJHRoaXMNCiAgICovDQogIHB1YmxpYyBmdW5jdGlvbiBTZXRUYWJsZVByZWZpeCgkdGFibGVfcHJlZml4KQ0KICB7DQogICAgJHRoaXMtPl9zZXRfdGFibGVfcHJlZml4KCR0YWJsZV9wcmVmaXgpOw0KICAgIA0KICAgIHJldHVybiAkdGhpczsNCiAgfQ0KICANCiAgLyoqDQogICAqICJDb3VudCBBbGwiIHF1ZXJ5DQogICAqLw0KICBwdWJsaWMgZnVuY3Rpb24gQ291bnRBbGwoKQ0KICB7DQogICAgJHRoaXMtPl9xdWVyeSA9ICdTRUxFQ1QgQ09VTlQoKikgQVMgYyBGUk9NICcgLiAkdGhpcy0+X2Zyb207DQogICAgJHJlc3VsdCA9ICR0aGlzLT5HZXRBcnJheSgxKTsNCiAgICByZXR1cm4gJHJlc3VsdFswXVsnYyddOw0KICB9DQogIA0KICAvKioNCiAgICogQHJldHVybiBzdHJpbmcNCiAgICovDQogIHB1YmxpYyBmdW5jdGlvbiBHZXREZWJ1Z0RhdGEoKSA6IHN0cmluZw0KICB7DQogICAgJGRhdGEgPSAkdGhpcy0+R2V0UXVlcnkoKTsNCiAgICAkZGF0YSAuPSBzZWxmOjpOTDsNCiAgICAkZGF0YSAuPSAnYmluZGluZ3MgYXJyYXkoIicgLiBpbXBsb2RlKCciLCInLCAkdGhpcy0+X3ZhbHVlcykgLiAnIiknOw0KICAgIHJldHVybiAkZGF0YTsNCiAgICANCiAgfQ0KICANCiAgLyoqDQogICAqIEByZXR1cm4gaW50DQogICAqLw0KICBwdWJsaWMgZnVuY3Rpb24gSW5zZXJ0SWQoKSA6IGludA0KICB7DQogICAgcmV0dXJuICR0aGlzLT5fZGItPkluc2VydF9JRCgpOw0KICB9DQogIA0KICAvKioNCiAgICogQHJldHVybiBpbnQNCiAgICovDQogIHB1YmxpYyBmdW5jdGlvbiBJbnNlcnRfSWQoKSA6IGludA0KICB7DQogICAgcmV0dXJuICR0aGlzLT5JbnNlcnRJZDsNCiAgfQ0KICANCiAgLyoqDQogICAqIEByZXR1cm4gaW50DQogICAqLw0KICBwdWJsaWMgZnVuY3Rpb24gR2V0RXJyb3JOdW1iZXIoKSA6IGludA0KICB7DQogICAgcmV0dXJuICR0aGlzLT5fZGItPkVycm9yTm8oKTsNCiAgfQ0KICANCiAgLyoqDQogICAqIEByZXR1cm4gc3RyaW5nDQogICAqLw0KICBwdWJsaWMgZnVuY3Rpb24gR2V0RXJyb3JNZXNzYWdlKCkgOiBzdHJpbmcNCiAgew0KICAgIHJldHVybiAkdGhpcy0+X2RiLT5FcnJvck1zZygpOw0KICB9DQogIA0KICAvKioNCiAgICogVHJ5IHRvIGdlbmVyYXRlIGFuIGFsaWFzIGZvciBhIHRhYmxlDQogICAqIEB0b2RvIGltcHJvdmUgdGhlIGFsZ29yaXRobXMNCiAgICoNCiAgICogQHBhcmFtIHN0cmluZyAkdGFibGUNCiAgICoNCiAgICogQHJldHVybiBzdHJpbmcNCiAgICovDQogIHB1YmxpYyBmdW5jdGlvbiBDcmVhdGVBbGlhc0Zyb21UYWJsZShzdHJpbmcgJHRhYmxlID0gJycpIDogc3RyaW5nDQogIHsNCiAgICByZXR1cm4gJHRoaXMtPl9nZW5lcmF0ZV9taW5pbWFsX3Jhd19hbGlhcygkdGhpcy0+X2NsZWFuX3RhYmxlX25hbWUoJHRhYmxlKSApOw0KICB9DQogIA0KICAvKioNCiAgICogQHBhcmFtIHN0cmluZyAkbmFtZQ0KICAgKg0KICAgKiBAcmV0dXJuIHN0cmluZyB0aGUgZ2VuZXJhdGVkIGFsaWFzIG9yIGVtcHR5IGlmIG5vbmUgY291bGQgYmUgZ2VuZXJhdGVkDQogICAqLw0KICBwcml2YXRlIGZ1bmN0aW9uIF9nZW5lcmF0ZV9taW5pbWFsX3Jhd19hbGlhcyhzdHJpbmcgJG5hbWUgPSAnJykgOiBzdHJpbmcNCiAgew0KICAgICRyZXQgPSAnJzsNCiAgICAjIHJlbW92ZSBhbnkgdm93ZWxzIGV4Y2VwdCBpZiB0aGUgMXN0IGNociBvZiB0aGUgc3RyIHRvIGdldCBzb21ldGhpbmcgdGhhdCBtaWdodCByZXNlbWJsZSBhIG1uZW1vbmljDQogICAgIyBhbmQgY29udmVydCBpdCB0byBhbiBhcnJheTsNCiAgICAkdDEgPSAkbmFtZVswXTsNCiAgICAkdDIgPSBzdWJzdHIoJG5hbWUsIDEpOw0KICAgICR0bXAgPSBhcnJheV9yZXZlcnNlKCBzdHJfc3BsaXQoICR0MS4gcHJlZ19yZXBsYWNlKCcjW2FlaW91XSsjaScsICcnLCAkdDIpICkgKTsNCiAgICANCiAgICAjIHByZXZlbnQgaW5maW5pdGUgbG9vcHMNCiAgICAkaSA9IDA7ICRsYXN0ID0gJyc7DQogICAgDQogICAgIyBidWlsZCBhbiBhbGlhcyBmcm9tIDEgdG8gMjAgY2hhcmFjdGVycyBmcm9tIHRoZSBtbmVtb25pYyB3aGlsZSBjaGVja2luZyBpZiBhbHJlYWR5IGV4aXN0cw0KICAgIGRvDQogICAgew0KICAgICAgJGxhc3QgPSAkcmV0Ow0KICAgICAgJHJldCAuPSAkdGhpcy0+X2xsX3N0YWNrX3BvcCgkdG1wKTsNCiAgICB9DQogICAgd2hpbGUoJGxhc3QgIT09ICRyZXQgJiYgaXNzZXQoIGFycmF5X2ZsaXAoJHRoaXMtPl90YWJsZV9hbGlhc2VzX21hcClbJHJldF0gKSAmJiArKyRpIDw9IDIwKTsNCg0KICAgICMgaWYgJGkgPiAyMCB0aGVuIGEgc3VpdGFibGUgYWxpYXMgY291bGRuJ3QgYmUgZm91bmQNCiAgICBpZigkaSA+IDIwKSB7ICRyZXQgPSAnJzsgfQ0KICAgIA0KICAgIHJldHVybiAkcmV0Ow0KICB9DQogIA0KICAvKioNCiAgICogc3ViIHF1ZXJpZXMgc3R1ZmYNCiAgICoNCiAgICogQHBhcmFtIFxMSVNFXFF1ZXJ5ICRmcm9tDQogICAqIEBwYXJhbSBzdHJpbmcgICAgICAkYWxpYXMNCiAgICoNCiAgICogQHJldHVybiBcTElTRVxRdWVyeQ0KICAgKi8NCiAgcHVibGljIGZ1bmN0aW9uIEZyb21TdWJxdWVyeShRdWVyeSAkZnJvbSwgc3RyaW5nICRhbGlhcyk6IHNlbGYNCiAgew0KICAgICR0aGlzLT5fZnJvbSA9ICR0aGlzLT5fYnVpbGRfc3VicXVlcnkoJGZyb20sIHRydWUsICRhbGlhcyk7DQoNCiAgICByZXR1cm4gJHRoaXM7DQogIH0NCiAgDQogIHB1YmxpYyBmdW5jdGlvbiBTZWxlY3RTdWJxdWVyeShRdWVyeSAkc3VicXVlcnksIHN0cmluZyAkYXMpOiBzZWxmDQogIHsNCiAgICAkdGhpcy0+X2Zyb20gPSAkdGhpcy0+X2J1aWxkX3N1YnF1ZXJ5KCRzdWJxdWVyeSwgdHJ1ZSwgJGFzKTsNCiAgICANCiAgICByZXR1cm4gJHRoaXM7DQogIH0NCiAgDQogIC8qKg0KICAgKiBAcGFyYW0gXExJU0VcUXVlcnkgJGZyb20NCiAgICogQHBhcmFtIGJvb2wgICAgICAgICR3cmFwIFdyYXAgdGhlIHN1YnF1ZXJ5IGluIGJyYWNrZXRzDQogICAqIEBwYXJhbSBzdHJpbmcgICAgICAkYWxpYXMgU3VicXVlcnkgYWxpYXMNCiAgICoNCiAgICogQHJldHVybiBzdHJpbmcNCiAgICovDQogIHByaXZhdGUgZnVuY3Rpb24gX2J1aWxkX3N1YnF1ZXJ5KFF1ZXJ5ICRmcm9tLCBib29sICR3cmFwLCBzdHJpbmcgJGFsaWFzKSA6IHN0cmluZw0KICB7DQogICAgJHJldCA9ICRmcm9tLT5HZXRRdWVyeSgpOw0KICAgIA0KICAgIGlmKCR3cmFwKQ0KICAgIHsNCiAgICAgICRyZXQgPSAnKCcuICRyZXQgLiAnKSc7DQogICAgfQ0KICAgIA0KICAgICR0aGlzLT5fbWFwX2FsaWFzKCRyZXQsICRhbGlhcyk7DQogICAgDQogICAgcmV0dXJuICRyZXQ7DQogIH0NCiAgDQogIA0KICANCiAgDQp9DQoNCj8+]]></data>
	</file>
	<file>
	  <filename>/lib/class.RandomString.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHANCg0KDQpuYW1lc3BhY2UgTElTRTsNCg0KDQpjbGFzcyBSYW5kb21TdHJpbmcNCnsNCiAgIyBmbGFncw0KICBjb25zdCBNSVhFRCAgPSAwOyAjIDAwMDANCiAgY29uc3QgTE9XRVIgID0gMTsgIyAwMDAxDQogIGNvbnN0IFVQUEVSICA9IDI7ICMgMDAxMA0KICBjb25zdCBESUdJVFMgPSA0OyAjIDAxMDANCiAgIyBubyBzdXBwb3J0IGZvciBmb3JlaWduIGxhbmd1YWdlIGNoYXJhY3RlcnMgbm9yIHNwZWNpYWwgY2hhcnMgeWV0DQogIA0KICBwcml2YXRlIHN0YXRpYyAkX2xvd2VyID0gJ2FiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6JzsNCiAgcHJpdmF0ZSBzdGF0aWMgJF91cHBlciA9ICdBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWic7DQogIHByaXZhdGUgc3RhdGljICRfZGlnaXRzID0gJzAxMjM0NTY3ODknOw0KICANCiAgc3RhdGljIGZ1bmN0aW9uIGdldCgkbGVuZ3RoID0gMTAsICRmbGFncyA9IFJhbmRvbVN0cmluZzo6TUlYRUQpDQogIHsNCiAgICAkc3RyaW5nID0gJyc7DQogICAgDQogICAgaWYoJGZsYWdzICYgc2VsZjo6RElHSVRTKQ0KICAgIHsNCiAgICAgICRzdHJpbmcgLj0gc2VsZjo6JF9kaWdpdHM7DQogICAgfQ0KICAgIA0KICAgIGlmKCRmbGFncyAmIHNlbGY6OkxPV0VSKQ0KICAgIHsNCiAgICAgICRzdHJpbmcgLj0gc2VsZjo6JF9sb3dlcjsNCiAgICB9DQogICAgDQogICAgaWYoJGZsYWdzICYgc2VsZjo6VVBQRVIpDQogICAgew0KICAgICAgJHN0cmluZyAuPSBzZWxmOjokX3VwcGVyOw0KICAgIH0NCiAgDQogICAgaWYoJGZsYWdzID09PSBzZWxmOjpNSVhFRCkNCiAgICB7DQogICAgICAkc3RyaW5nID0gU0VMRjo6JF9kaWdpdHMgLiBTRUxGOjokX2xvd2VyIC4gU0VMRjo6JF91cHBlcjsNCiAgICB9DQogICAgDQogICAgJG91dCA9ICcnOw0KICANCiAgICBmb3IgKCRpID0gMDsgJGkgPCAkbGVuZ3RoOyAkaSsrKQ0KICAgIHsNCiAgICAgICRpbmRleCA9IHJhbmQoMCwgc3RybGVuKCRzdHJpbmcpIC0gMSk7DQogICAgICAkb3V0IC49ICRzdHJpbmdbJGluZGV4XTsNCiAgICB9DQogICAgDQogICAgcmV0dXJuICRvdXQ7DQogIH0NCiAgDQp9DQoNCj8+]]></data>
	</file>
	<file>
	  <filename>/lib/class.Session.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHANCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQojIExJU0UgLSBMaXN0IEl0IFNwZWNpYWwgRWRpdGlvbg0KIyBWZXJzaW9uIDEuMg0KIyBBIGZvcmsgb2YgTGlzdEkyDQojIG1haW50YWluZWQgYnkgRmVybmFuZG8gTW9yZ2FkbyBBS0EgSm8gTW9yZw0KIyBzaW5jZSAyMDE1DQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIw0KIyBPcmlnaW5hbCBBdXRob3I6IEJlbiBNYWxlbiwgPGJlbkBjb25jZXB0ZmFjdG9yeS5jb20uYXU+DQojIENvLU1haW50YWluZXI6IFNpbW9uIFJhZGZvcmQsIDxzaW1vbkBjb25jZXB0ZmFjdG9yeS5jb20uYXU+DQojIFdlYjogd3d3LmNvbmNlcHRmYWN0b3J5LmNvbS5hdQ0KIw0KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCiMNCiMgTWFpbnRhaW5lciBzaW5jZSAyMDExIHVwIHRvIDIwMTQ6IEpvbmF0aGFuIFNjaG1pZCwgPGhpQGpvbmF0aGFuc2NobWlkLmRlPg0KIyBXZWI6IHd3dy5qb25hdGhhbnNjaG1pZC5kZQ0KIw0KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCiMNCiMgU29tZSB3YWNrb3Mgc3RhcnRlZCBkZXN0cm95aW5nIHN0dWZmIHNpbmNlIDIwMTIgYW5kIHN0b3BwZWQgYXQgMjAxNDoNCiMNCiMgVGFwaW8gTMO2eXR0eSwgPHRhcHNhQG9yYW5nZS1tZWRpYS5maT4NCiMgV2ViOiB3d3cub3JhbmdlLW1lZGlhLmZpDQojDQojIEdvcmFuIElsaWMsIDx1bmlxdTNlQGdtYWlsLmNvbT4NCiMgV2ViOiB3d3cuaWNoLW1hY2gtZGFzLmF0DQojDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIw0KIyBMSVNFIGlzIGEgQ01TIE1hZGUgU2ltcGxlIG1vZHVsZSB0aGF0IGVuYWJsZXMgdGhlIHdlYiBkZXZlbG9wZXIgdG8gY3JlYXRlDQojIG11bHRpcGxlIGxpc3RzIHRocm91Z2hvdXQgYSBzaXRlLiBJdCBjYW4gYmUgZHVwbGljYXRlZCBhbmQgZ2l2ZW4gZnJpZW5kbHkNCiMgbmFtZXMgZm9yIGVhc2llciBjbGllbnQgbWFpbnRlbmFuY2UuDQojDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIyBCRUdJTl9MSUNFTlNFDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIyBUaGlzIGZpbGUgaXMgcGFydCBvZiBMSVNFDQojIExJU0UgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5DQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5DQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yDQojIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uDQojDQojIExJU0UgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLA0KIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZg0KIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlDQojIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuDQojIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlDQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlDQojIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcgVVNBDQojIE9yIHJlYWQgaXQgb25saW5lOiBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwNCiMNCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQojIEVORF9MSUNFTlNFDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KbmFtZXNwYWNlIExJU0U7DQpjbGFzcyBTZXNzaW9uDQp7DQogIHByaXZhdGUgc3RhdGljIGZ1bmN0aW9uIF91bnNldCgka2V5KQ0KICB7DQogICAgIHVuc2V0KCRfU0VTU0lPTlska2V5XSk7DQogICAgIHJldHVybiBpc3NldCgkX1NFU1NJT05bJGtleV0pOw0KICB9DQogIA0KICBmaW5hbCBwdWJsaWMgc3RhdGljIGZ1bmN0aW9uIFN0b3JlKFxMSVNFICRtb2QsICRrZXksICR2YWwpDQogIHsNCiAgICAkbW9kX25hbWUgPSAkbW9kLT5HZXROYW1lKCk7DQogICAgaWYoIGVtcHR5KCRrZXkpICkgcmV0dXJuIEZBTFNFOw0KICAgIGlmKCAhaXNzZXQoJHZhbCkgKSByZXR1cm4gRkFMU0U7ICAgDQogICAgJF9TRVNTSU9OWyAkbW9kX25hbWUgLiAnXycgLiAka2V5XSA9ICR2YWw7DQogICAgcmV0dXJuIFRSVUU7DQogIH0NCiAgDQogIGZpbmFsIHB1YmxpYyBzdGF0aWMgZnVuY3Rpb24gUmVhZChcTElTRSAkbW9kLCAka2V5KQ0KICB7DQogICAgJG1vZF9uYW1lID0gJG1vZC0+R2V0TmFtZSgpOw0KICAgIGlmKCBlbXB0eSgka2V5KSApIHJldHVybiBOVUxMOw0KICANCiAgICByZXR1cm4gJF9TRVNTSU9OWyRtb2RfbmFtZSAuICdfJyAuICRrZXldID8/IEZBTFNFOw0KICB9DQogICAgDQogIGZpbmFsIHB1YmxpYyBzdGF0aWMgZnVuY3Rpb24gQ2xlYXIoXExJU0UgJG1vZCwgJGtleSkNCiAgew0KICAgICRtb2RfbmFtZSA9ICRtb2QtPkdldE5hbWUoKTsNCiAgICBpZiggZW1wdHkoJGtleSkgKSByZXR1cm4gTlVMTDsNCiAgICANCiAgICBpZiggaXNzZXQoJF9TRVNTSU9OWyAkbW9kX25hbWUgLiAnXycgLiAka2V5XSkgKQ0KICAgIHsNCiAgICAgIHJldHVybiBzZWxmOjpfdW5zZXQoJF9TRVNTSU9OWyAkbW9kX25hbWUgLiAnXycgLiAka2V5XSk7DQogICAgfQ0KICAgICAgDQogICAgcmV0dXJuIEZBTFNFOw0KICB9DQogIA0KICBmaW5hbCBwdWJsaWMgc3RhdGljIGZ1bmN0aW9uIENsZWFyQWxsU3RhcnRpbmdXaXRoKFxMSVNFICRtb2QsICRwcmVmaXggPSAnJykNCiAgew0KICAgICRwcmVmaXggPSAkbW9kLT5HZXROYW1lKCkgLiAnXycgLiAkcHJlZml4Ow0KDQogICAgZm9yZWFjaCggYXJyYXlfa2V5cygkX1NFU1NJT04pIGFzICRrKQ0KICAgIHsgICAgDQogICAgICBpZiggc3RhcnRzd2l0aCgkaywgJHByZWZpeCkgKSANCiAgICAgIHsgDQogICAgICAgIHNlbGY6Ol91bnNldCgkayk7DQogICAgICB9DQogICAgfQ0KICB9ICANCiAgDQogIGZpbmFsIHB1YmxpYyBzdGF0aWMgZnVuY3Rpb24gQ2xlYXJBbGwoXExJU0UgJG1vZCkNCiAgew0KICAgIHNlbGY6OkNsZWFyQWxsU3RhcnRpbmdXaXRoKCRtb2QsICcnKTsgIA0KICB9DQogIA0KfQ0KPz4NCg==]]></data>
	</file>
	<file>
	  <filename>/lib/class.slug_generator.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHANCg0KDQpuYW1lc3BhY2UgTElTRTsNCg0KDQpmaW5hbCBjbGFzcyBzbHVnX2dlbmVyYXRvcg0Kew0KICAvKioNCiAgICogcHJpdmF0ZSBwcm9wcw0KICAgKi8NCiAgcHJpdmF0ZSBzdGF0aWMgJF9pbnN0YW5jZSA9IE5VTEw7DQogIHByaXZhdGUgICAgICAgICRfcGFyc2VyICAgPSBOVUxMOw0KICBwcml2YXRlICAgICAgICAkX2luc3RhbmNlX25hbWU7DQogIHByaXZhdGUgICAgICAgICRfaXRlbV9jYXRlZ29yaWVzOw0KICBwcml2YXRlICAgICAgICAkX2l0ZW1fcHJlZml4Ow0KICBwcml2YXRlICAgICAgICAkX2l0ZW1fdGl0bGU7DQogIA0KICANCiAgLyoqDQogICAqIHB1YmxpYyBwcm9wcw0KICAgKi8NCiAgDQogIC8qKg0KICAgKiBwcml2YXRlIG1ldGhvZHMNCiAgICovDQogIHByaXZhdGUgZnVuY3Rpb24gX19jb25zdHJ1Y3QoKQ0KICB7DQogICAgIyB0YWcgbmFtZSA9PiBbdHlwZSwgY2FsbGFibGVdDQogICAgJHRhZ3MgPSBbDQogICAgICAgICAgICAgICdSYW5kb21TdHJpbmcnID0+IFsgJ2Z1bmN0aW9uJywgWyR0aGlzLCAnX3JhbmRvbV9zdHJpbmcnXSBdLA0KICAgICAgICAgICAgICAnSXRlbUNvdW50ZXInICA9PiBbICdmdW5jdGlvbicsIFskdGhpcywgJ19pdGVtX2NvdW50ZXInXSBdLA0KICAgICAgICAgICAgICAnSXRlbU5leHRJRCcgICA9PiBbICdmdW5jdGlvbicsIFskdGhpcywgJ19pdGVtX25leHRfaWQnXSBdLA0KICAgICAgICAgICAgICAnSXRlbVNpbmd1bGFyJyA9PiBbICdmdW5jdGlvbicsIFskdGhpcywgJ19pdGVtX3Npbmd1bGFyJ10gXSwNCiAgICAgICAgICAgICAgJ0l0ZW1QbHVyYWwnICAgPT4gWyAnZnVuY3Rpb24nLCBbJHRoaXMsICdfaXRlbV9wbHVyYWwnXSBdLA0KICAgICAgICAgICAgICAnSXRlbUNhdGVnb3J5JyA9PiBbICdmdW5jdGlvbicsIFskdGhpcywgJ19pdGVtX2NhdGVnb3J5J10gXSwNCiAgICAgICAgICAgICAgJ0l0ZW1UaXRsZScgICAgPT4gWyAnZnVuY3Rpb24nLCBbJHRoaXMsICdfaXRlbV90aXRsZSddIF0sDQogICAgICAgICAgICAgICdJdGVtQWxpYXMnICAgID0+IFsgJ2Z1bmN0aW9uJywgWyR0aGlzLCAnX2l0ZW1fYWxpYXMnXSBdLA0KICAgICAgICAgICAgICAnUHJlZml4JyAgICAgICA9PiBbICdmdW5jdGlvbicsIFskdGhpcywgJ19pdGVtX3ByZWZpeCddIF0NCiAgICBdOw0KICANCiAgICAkdGhpcy0+X3BhcnNlciA9IG5ldyBtaW5pX3NtYXJ0eV9wYXJzZXIoKTsNCiAgICAkdGhpcy0+X3BhcnNlciAtPlJlZ2lzdGVyVGFncygkdGFncyk7DQogIH0NCiAgDQogIHByaXZhdGUgZnVuY3Rpb24gX2NvdW50KCkNCiAgew0KICAgICRpbnN0YW5jZSA9IFxjbXNfdXRpbHM6OmdldF9tb2R1bGUoICR0aGlzLT5faW5zdGFuY2VfbmFtZSk7DQogICAgJGRiID0gXGNtc191dGlsczo6Z2V0X2RiKCk7DQogIA0KICAgICRxdWVyeSA9ICdTRUxFQ1QgY291bnQoKikgYXMgYyBGUk9NICcNCiAgICAgICAgICAgICAuIFxjbXNfZGJfcHJlZml4KCkNCiAgICAgICAgICAgICAuICdtb2R1bGVfJyAuICRpbnN0YW5jZS0+X0dldE1vZHVsZUFsaWFzKCkgLiAnX2l0ZW0nOw0KICANCiAgICByZXR1cm4gJGRiLT5HZXRPbmUoJHF1ZXJ5ICk7DQogICAgDQogIH0NCiAgDQogIHByaXZhdGUgZnVuY3Rpb24gX2xhc3RfaWQoKQ0KICB7DQogICAgJGluc3RhbmNlID0gXGNtc191dGlsczo6Z2V0X21vZHVsZSggJHRoaXMtPl9pbnN0YW5jZV9uYW1lKTsNCiAgICAkZGIgPSBcY21zX3V0aWxzOjpnZXRfZGIoKTsNCiAgICANCiAgICAkcXVlcnkgPSAnU0VMRUNUIE1BWChpdGVtX2lkKSBGUk9NICcNCiAgICAgICAgICAgICAuIFxjbXNfZGJfcHJlZml4KCkNCiAgICAgICAgICAgICAuICdtb2R1bGVfJyAuICRpbnN0YW5jZS0+X0dldE1vZHVsZUFsaWFzKCkgLiAnX2l0ZW0nOw0KICAgIA0KICAgIHJldHVybiAoaW50KSRkYi0+R2V0T25lKCRxdWVyeSk7DQogIH0NCiAgDQogIHByaXZhdGUgZnVuY3Rpb24gX2ZpbmRfdGFnKCRoYXlzdGFjaywgJG5lZWRsZSkNCiAgew0KICAgIHJldHVybiAoYm9vbCkgc3Ryc3RyKCRoYXlzdGFjaywgJG5lZWRsZSk7DQogIH0NCiAgDQogIC8qKg0KICAgKiB3ZSByZW1vdmUgYWxsIHdlaXJkIGNoYXJzIHRoYSBtYXkgaGF2ZSBiZWVuIGdlbmVyYXRlZCBpbiB0aGUgdGVtcGxhdGUNCiAgICogYW5kIGtlZXAgdGhlIHVybCB1bmRlciAyayBjaGFyYWN0ZXJzIGluIGxlbmd0aA0KICAgKiB0aGlzIHNob3VsZCBrZWVwIGl0IHdvcmtpbmcgb24gYWxsIGNsaWVudHMNCiAgICoNCiAgICogQHBhcmFtICR1cmwNCiAgICoNCiAgICogQHJldHVybiBib29sfHN0cmluZw0KICAgKi8NCiAgcHJpdmF0ZSBmdW5jdGlvbiBfdHJpbSgkdXJsKQ0KICB7DQogICAgcmV0dXJuIHN1YnN0cih0cmltKCR1cmwsIiAvXHRcclxuXDBceDA4IiksMCwyMDAwKTsNCiAgfQ0KICANCiAgcHJpdmF0ZSBmdW5jdGlvbiBfaW52YWxpZF9yb3V0ZSgkb3V0LCAkaXRlbV9pZCkNCiAgew0KICAgICRyb3V0ZSA9IFxjbXNfcm91dGVfbWFuYWdlcjo6ZmluZF9tYXRjaCgkb3V0KTsNCiAgICANCiAgICBpZighJHJvdXRlKSByZXR1cm4gRkFMU0U7DQogICAgDQogICAgJGluc3RhbmNlID0gXGNtc191dGlsczo6Z2V0X21vZHVsZSgkdGhpcy0+X2luc3RhbmNlX25hbWUpOw0KICAgICRkZmx0cyAgICA9ICRyb3V0ZS0+Z2V0X2RlZmF1bHRzKCk7DQogICAgDQogICAgJHIgICAgICAgID0gJHJvdXRlLT5pc19jb250ZW50KCk7DQogICAgJHIgICAgICAgID0gJHIgfHwgJHJvdXRlLT5nZXRfZGVzdCgpICE9ICRpbnN0YW5jZS0+R2V0TmFtZSgpOw0KICAgICRyICAgICAgICA9ICRyIHx8ICFpc3NldCgkZGZsdHNbJ2l0ZW0nXSk7DQogICAgJHIgICAgICAgID0gJHIgfHwgJGRmbHRzWydpdGVtJ10gIT0gJGl0ZW1faWQ7DQogICAgDQogICAgcmV0dXJuICRyOw0KICB9DQogIA0KICAvKioNCiAgICogcHVibGljIG1ldGhvZHMNCiAgICovDQogIA0KICBwdWJsaWMgc3RhdGljIGZ1bmN0aW9uIGdldEluc3RhbmNlKCkNCiAgew0KICAgIGlmIChzZWxmOjokX2luc3RhbmNlID09IG51bGwpeyBzZWxmOjokX2luc3RhbmNlID0gbmV3IHNsdWdfZ2VuZXJhdG9yKCk7fQ0KICAgIA0KICAgIHJldHVybiBzZWxmOjokX2luc3RhbmNlOw0KICB9DQoNCiAgcHVibGljIGZ1bmN0aW9uIF9yYW5kb21fc3RyaW5nKCRwYXJhbXMsICRzbWFydHkpDQogIHsNCiAgICAkbGVuZ3RoID0gaXNzZXQoJHBhcmFtc1snbCddKSA/IChpbnQpJHBhcmFtc1snbCddIDogMTA7DQogICAgJGZsYWdzID0gaXNzZXQoJHBhcmFtc1snZiddKSA/IChzdHJpbmcpJHBhcmFtc1snZiddIDogJ20nOw0KICAgIA0KICAgICRmID0gUmFuZG9tU3RyaW5nOjpNSVhFRDsNCiAgICAkZmxhZ3MgPSBzdHJfc3BsaXQoIHN0cnRvbG93ZXIoJGZsYWdzKSApOw0KICAgIA0KICAgIGZvcmVhY2goJGZsYWdzIGFzICRmbGFnKQ0KICAgIHsNCiAgICAgIHN3aXRjaCAoJGZsYWcpDQogICAgICB7DQogICAgICAgIGNhc2UgJ2wnOg0KICAgICAgICAgICRmID0gJGYgfCBSYW5kb21TdHJpbmc6OkxPV0VSOw0KICAgICAgICBicmVhazsNCiAgICAgICAgY2FzZSAndSc6DQogICAgICAgICAgJGYgPSAkZiB8IFJhbmRvbVN0cmluZzo6VVBQRVI7DQogICAgICAgIGJyZWFrOw0KICAgICAgICBjYXNlICdkJzoNCiAgICAgICAgICAkZiA9ICRmIHwgUmFuZG9tU3RyaW5nOjpESUdJVFM7DQogICAgICAgIGJyZWFrOw0KICAgICAgfQ0KICAgIH0NCiAgICANCiAgICByZXR1cm4gUmFuZG9tU3RyaW5nOjpnZXQoJGxlbmd0aCwgJGYpOw0KICB9DQogIA0KICBwdWJsaWMgZnVuY3Rpb24gX2l0ZW1fc2luZ3VsYXIoJHBhcmFtcywgJHNtYXJ0eSkNCiAgew0KICAgICRpbnN0YW5jZSA9IFxjbXNfdXRpbHM6OmdldF9tb2R1bGUoICR0aGlzLT5faW5zdGFuY2VfbmFtZSk7DQogICAgDQogICAgaWYoICFpc19vYmplY3QoJGluc3RhbmNlKSApIHRocm93IG5ldyBcTElTRUV4Y2VwdGlvbignQ291bGQgbm90IGxvYWQgaW5zdGFuY2UgJyAuICR0aGlzLT5faW5zdGFuY2VfbmFtZSk7DQogICAgcmV0dXJuICRpbnN0YW5jZS0+R2V0UHJlZmVyZW5jZSgnaXRlbV9zaW5ndWxhcicpOw0KICB9DQogIA0KICANCiAgcHVibGljIGZ1bmN0aW9uIF9pdGVtX3BsdXJhbCgkcGFyYW1zLCAkc21hcnR5KQ0KICB7DQogICAgJGluc3RhbmNlID0gXGNtc191dGlsczo6Z2V0X21vZHVsZSggJHRoaXMtPl9pbnN0YW5jZV9uYW1lKTsNCiAgICANCiAgICBpZiggIWlzX29iamVjdCgkaW5zdGFuY2UpICkgdGhyb3cgbmV3IFxMSVNFRXhjZXB0aW9uKCdDb3VsZCBub3QgbG9hZCBpbnN0YW5jZSAnIC4gJHRoaXMtPl9pbnN0YW5jZV9uYW1lKTsNCiAgICByZXR1cm4gJGluc3RhbmNlLT5HZXRQcmVmZXJlbmNlKCdpdGVtX3BsdXJhbCcpOw0KICB9DQogIA0KICBwdWJsaWMgZnVuY3Rpb24gX2l0ZW1fdGl0bGUoJHBhcmFtcywgJHNtYXJ0eSkNCiAgew0KICAgIHJldHVybiAkdGhpcy0+X2l0ZW1fdGl0bGU7DQogIH0NCiAgDQogIA0KICBwdWJsaWMgZnVuY3Rpb24gX2l0ZW1fY2F0ZWdvcnkoJHBhcmFtcywgJHNtYXJ0eSkNCiAgew0KICAgIGlmKGNvdW50KCR0aGlzLT5faXRlbV9jYXRlZ29yaWVzKSkNCiAgICB7DQogICAgICAkY2F0ZWdvcnlfbmFtZSA9IFxtdW5nZV9zdHJpbmdfdG9fdXJsKCB0cmltKCR0aGlzLT5faXRlbV9jYXRlZ29yaWVzWzBdKSApOw0KICAgIH0NCiAgICBlbHNlDQogICAgew0KICAgICAgJGNhdGVnb3J5X25hbWUgPSAnbm8tY2F0ZWdvcnknOw0KICAgIH0NCiAgICByZXR1cm4gJGNhdGVnb3J5X25hbWU7DQogIH0NCiAgDQogIHB1YmxpYyBmdW5jdGlvbiBfaXRlbV9hbGlhcygkcGFyYW1zLCAkc21hcnR5KQ0KICB7DQogICAgcmV0dXJuIGFwaTo6R2VuZXJhdGVBbGlhcygkdGhpcy0+X2luc3RhbmNlX25hbWUsICR0aGlzLT5faXRlbV90aXRsZSk7DQogIH0NCiAgDQogIHB1YmxpYyBmdW5jdGlvbiBfaXRlbV9wcmVmaXgoJHBhcmFtcywgJHNtYXJ0eSkNCiAgew0KICAgIHJldHVybiAkdGhpcy0+X2l0ZW1fcHJlZml4Ow0KICB9DQogIA0KICBwdWJsaWMgZnVuY3Rpb24gX2l0ZW1fY291bnRlcigkcGFyYW1zLCAkc21hcnR5KQ0KICB7DQogICAgcmV0dXJuIDEgKyAkdGhpcy0+X2NvdW50KCk7DQogIH0NCiAgDQogIGZ1bmN0aW9uIF9pdGVtX25leHRfaWQoJHBhcmFtcywgJHNtYXJ0eSkNCiAgew0KICAgIHJldHVybiAxICsgJHRoaXMtPl9sYXN0X2lkKCk7DQogIH0NCiAgDQogIC8qKiogKioqICoqKi8NCiAgDQogIC8qKg0KICAgKiBAcGFyYW0gJGluc3RhbmNlX25hbWUNCiAgICogQHBhcmFtICR0aXRsZQ0KICAgKiBAcGFyYW0gJGlpZA0KICAgKiBAcGFyYW0gJGNpZA0KICAgKg0KICAgKiBAcmV0dXJuIHN0cmluZw0KICAgKiBAdGhyb3dzIFxMSVNFRXhjZXB0aW9uDQogICAqLw0KICBwdWJsaWMgZnVuY3Rpb24gZ2VuZXJhdGVfbmV3KCRpbnN0YW5jZV9uYW1lLCAkdGl0bGUsICRpaWQsICRjaWQpDQogIHsNCiAgICAkdGhpcy0+X2luc3RhbmNlX25hbWUgPSAkaW5zdGFuY2VfbmFtZTsNCiAgICAkdGhpcy0+X2l0ZW1fdGl0bGUgICAgPSAkdGl0bGU7DQogICAgJGluc3RhbmNlICAgICAgICAgICAgID0gXGNtc191dGlsczo6Z2V0X21vZHVsZSgkaW5zdGFuY2VfbmFtZSk7DQogICAgDQogICAgaWYoICFpc19vYmplY3QoJGluc3RhbmNlKSApIHRocm93IG5ldyBcTElTRUV4Y2VwdGlvbignQ291bGQgbm90IGxvYWQgaW5zdGFuY2UgJyAuICRpbnN0YW5jZV9uYW1lKTsNCiAgICANCiAgICAkdGhpcy0+X2l0ZW1fcHJlZml4ID0gJGluc3RhbmNlLT5HZXRQcmVmZXJlbmNlKCAndXJsX3ByZWZpeCcsIFxtdW5nZV9zdHJpbmdfdG9fdXJsKCRpbnN0YW5jZS0+R2V0TmFtZSgpLCB0cnVlKSApOw0KICAgICR0ZW1wbGF0ZSA9ICRpbnN0YW5jZS0+R2V0UHJlZmVyZW5jZSgndXJsdGVtcGxhdGUnLCAneyRwcmVmaXh9L3skaXRlbV90aXRsZX0nKTsNCiAgICANCiAgICBpZiggJHRoaXMtPl9maW5kX3RhZygkdGVtcGxhdGUsICd7JGl0ZW1fY2F0ZWdvcnknKSB8fCAgJHRoaXMtPl9maW5kX3RhZygkdGVtcGxhdGUsICdJdGVtQ2F0ZWdvcnknKSkNCiAgICB7DQogICAgICAkaWRzID0gYXJyYXkoJGNpZCk7DQogICAgICAkdGhpcy0+X2l0ZW1fY2F0ZWdvcmllcyA9IFxMSVNFQ2F0ZWdvcnlPcGVyYXRpb25zOjpHZXRDYXRlZ29yeU5hbWVGcm9tSWQoJGluc3RhbmNlLCAkaWRzKTsNCiAgICAgIA0KICAgICAgaWYoY291bnQoJHRoaXMtPl9pdGVtX2NhdGVnb3JpZXMpKQ0KICAgICAgew0KICAgICAgICAkY2F0ZWdvcnlfbmFtZSA9IFxtdW5nZV9zdHJpbmdfdG9fdXJsKCB0cmltKCR0aGlzLT5faXRlbV9jYXRlZ29yaWVzWzBdKSApOw0KICAgICAgfQ0KICAgIH0NCiAgICBlbHNlDQogICAgew0KICAgICAgJGNhdGVnb3J5X25hbWUgPSAnbm8tY2F0ZWdvcnknOw0KICAgIH0NCiAgICANCiAgICAkc21hcnR5ID0gJHRoaXMtPl9wYXJzZXItPkdldEN1c3RvbVNtYXJ0eU9iamVjdCgpOw0KICAgICRzbWFydHktPmFzc2lnbignaXRlbV90aXRsZScsICB0cmltKCR0aXRsZSkgKQ0KICAgIC0+YXNzaWduKCdpdGVtX2NhdGVnb3J5JywgICRjYXRlZ29yeV9uYW1lKQ0KICAgIC0+YXNzaWduKCdwcmVmaXgnLCAkdGhpcy0+X2l0ZW1fcHJlZml4KTsNCiAgICAkY29tcGFyZSA9ICcnOw0KICAgICRjID0gMDsNCg0KICAgIFxjbXNfcm91dGVfbWFuYWdlcjo6bG9hZF9yb3V0ZXMoKTsNCiAgDQogICAgZG8NCiAgICB7DQogICAgICAkdG1wID0gJGNvbXBhcmU7DQogICAgICAkb3V0ID0gJHRoaXMtPl9wYXJzZXItPkxvYWQoJ3tzdHJpcH0nIC4kdGVtcGxhdGUuICd7L3N0cmlwfScpLT5QYXJzZSgpOw0KICAgICAgJGNvbXBhcmUgPSAkb3V0ID0gXG11bmdlX3N0cmluZ190b191cmwgKCR0aGlzLT5fdHJpbSgkb3V0KSwgRkFMU0UsIFRSVUUgKTsNCiAgICAgIA0KICAgICAgIyB0aGUgdGVtcGxhdGUgd29uJ3Qgc29sdmUgdW5pcXVlbmVzcz8NCiAgICAgIGlmKCR0bXAgPT09ICRjb21wYXJlKQ0KICAgICAgew0KICAgICAgICAjIHdlJ2xsIGFkZCBhbiBpbmNyZW1lbnRhbCBudW1lcmljIHN1ZmZpeCBpbmYgdGhlIGZvcm0gb2YgJy1uJw0KICAgICAgICAkdGVzdCA9ICRvdXQ7DQogIA0KICAgICAgICBkbw0KICAgICAgICB7DQogICAgICAgICAgJHN1ZmZpeCA9ICctJyAuICRjKys7DQogICAgICAgICAgJG91dCA9ICR0ZXN0IC4gJHN1ZmZpeDsNCiAgICAgICAgICANCiAgICAgICAgICAjIGJyZWFrIGluZmluaXRlIGxvb3ANCiAgICAgICAgICBpZigkYyA+IDEwMCkgdGhyb3cgbmV3IFxFeGNlcHRpb24oJ3RvbyBtYW55IGl0ZXJhdGlvbnMnKTsNCiAgICAgICAgICANCiAgICAgICAgfQ0KICAgICAgICB3aGlsZSggJHRoaXMtPl9pbnZhbGlkX3JvdXRlKCRvdXQsICRpaWQpICk7DQogICAgICB9DQogICAgfQ0KICAgIHdoaWxlKCAkdGhpcy0+X2ludmFsaWRfcm91dGUoJG91dCwgJGlpZCkgKTsNCiAgICANCiAgICByZXR1cm4gJG91dDsNCiAgfQ0KfQ0KDQo/Pg==]]></data>
	</file>
	<file>
	  <filename>/lib/class.smarty_global.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHANCg0KDQpuYW1lc3BhY2UgTElTRTsNCnVzZSBcTElTRVxpbnN0YW5jZXNfb3BlcmF0aW9ucyBhcyBpbzsNCg0KY2xhc3Mgc21hcnR5X2dsb2JhbA0Kew0KICBwcml2YXRlIHN0YXRpYyAkX2dsb2JhbF9pbnN0YW5jZXMgPSBbXTsNCiAgcHJpdmF0ZSBzdGF0aWMgJF9wcm9wczsNCiAgcHJpdmF0ZSBzdGF0aWMgJF9pbml0aWFsaXplZCA9IEZBTFNFOw0KICANCiAgcHJpdmF0ZSBzdGF0aWMgZnVuY3Rpb24gX2luaXRpYWxpemUoKQ0KICB7DQogICAgaWYoIXNlbGY6OiRfaW5pdGlhbGl6ZWQpDQogICAgew0KICAgICAgIyBpbnN0YW5jZXMgYW5kIHByb3BlcnRpZXMNCiAgICAgIGZvcmVhY2goaW86Okxpc3RNb2R1bGVzKFxMSVNFOjpNT0RFX0dMT0JBTCkgYXMgJG9uZSkNCiAgICAgIHsNCiAgICAgICAgc2VsZjo6JF9nbG9iYWxfaW5zdGFuY2VzW10gPSAkb25lLT5tb2R1bGVfbmFtZTsNCiAgICAgICAgJG1vZCA9IFxjbXNfdXRpbHM6OmdldF9tb2R1bGUoJG9uZS0+bW9kdWxlX25hbWUpOw0KICAgICAgICANCiAgICAgICAgJGl0ZW0gPSAkbW9kLT5Mb2FkSXRlbUJ5SWRlbnRpZmllcignYWxpYXMnLCAkb25lLT5tb2R1bGVfbmFtZSk7DQogICAgICAgICRmZHMgPSAkaXRlbS0+ZmllbGRkZWZzOw0KICANCiAgICAgICAgZm9yZWFjaCgkZmRzIGFzICRvbmUpDQogICAgICAgIHsNCiAgICAgICAgICBzZWxmOjokX3Byb3BzWyRvbmVbJ2FsaWFzJ11dID0gJG9uZVsndmFsdWUnXTsNCiAgICAgICAgfQ0KICAgICAgfQ0KICAgICAgDQogICAgICBzZWxmOjokX2luaXRpYWxpemVkID0gVFJVRTsNCiAgICB9DQogIH0NCiAgDQogIHN0YXRpYyBmdW5jdGlvbiBnZXQoJHByb3BlcnR5ID0gJycpDQogIHsNCiAgICBpZiggIWVtcHR5KCRwcm9wZXJ0eSkgKQ0KICAgIHsNCiAgICAgIHNlbGY6Ol9pbml0aWFsaXplKCk7DQogICAgICANCiAgICAgIGlmKGlzc2V0KCBzZWxmOjokX3Byb3BzWyRwcm9wZXJ0eV0pICkgcmV0dXJuIHNlbGY6OiRfcHJvcHNbJHByb3BlcnR5XTsNCiAgICB9DQogICAgDQogICAgcmV0dXJuICc8IS0tIGludmFsaWQgLS0+JzsNCiAgfQ0KfQ0KDQo/Pg==]]></data>
	</file>
	<file>
	  <filename>/lib/class.smarty_global_obj.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHANCg0KDQpuYW1lc3BhY2UgTElTRTsNCg0KdXNlIFxMSVNFXGluc3RhbmNlc19vcGVyYXRpb25zIGFzIGlvOw0KDQpjbGFzcyBzbWFydHlfZ2xvYmFsX29iaiBpbXBsZW1lbnRzIFxBcnJheUFjY2Vzcw0Kew0KICBwcml2YXRlICRfcHJvcHM7DQogIHByaXZhdGUgJF9nbG9iYWxfaW5zdGFuY2VzOw0KICBwcml2YXRlICRfaW5pdGlhbGl6ZWQgPSBGQUxTRTsNCiAgDQogIHByaXZhdGUgZnVuY3Rpb24gX2luaXRpYWxpemUoKQ0KICB7DQogICAgaWYoISR0aGlzLT5faW5pdGlhbGl6ZWQpDQogICAgew0KICAgICAgIyBpbnN0YW5jZXMgYW5kIHByb3BlcnRpZXMNCiAgICAgIGZvcmVhY2goaW86Okxpc3RNb2R1bGVzKFxMSVNFOjpNT0RFX0dMT0JBTCkgYXMgJG9uZSkNCiAgICAgIHsNCiAgICAgICAgJHRoaXMtPl9nbG9iYWxfaW5zdGFuY2VzW10gPSAkb25lLT5tb2R1bGVfbmFtZTsNCiAgICAgICAgJG1vZCA9IFxjbXNfdXRpbHM6OmdldF9tb2R1bGUoJG9uZS0+bW9kdWxlX25hbWUpOw0KDQogICAgICAgICRpdGVtID0gJG1vZC0+TG9hZEl0ZW1CeUlkZW50aWZpZXIoJ2FsaWFzJywgJG9uZS0+bW9kdWxlX25hbWUpOw0KICAgICAgICAkZmRzID0gJGl0ZW0tPmZpZWxkZGVmczsNCg0KICAgICAgICBmb3JlYWNoKCRmZHMgYXMgJGZsZCkNCiAgICAgICAgew0KICAgICAgICAgICR0aGlzLT5fcHJvcHNbJGZsZFsnYWxpYXMnXV0gPSAkZmxkWyd2YWx1ZSddOw0KICAgICAgICB9DQogICAgICB9DQoNCiAgICAgICR0aGlzLT5faW5pdGlhbGl6ZWQgPSBUUlVFOw0KICAgIH0NCiAgfQ0KDQogIC8vcHVibGljIGZ1bmN0aW9uIF9fY29uc3RydWN0KCl7fQ0KICANCi8vICBwdWJsaWMgZnVuY3Rpb24gX190b1N0cmluZygpDQovLyAgew0KLy8gICAgJHRoaXMtPl9pbml0aWFsaXplKCk7DQovLyAgICByZXR1cm4gKHN0cmluZylcanNvbl9lbmNvZGUoJHRoaXMtPl9wcm9wcywgXEpTT05fUFJFVFRZX1BSSU5UKTsNCi8vICB9DQogIA0KICBwdWJsaWMgZnVuY3Rpb24gX190b1N0cmluZygpDQogIHsNCiAgICAkdGhpcy0+X2luaXRpYWxpemUoKTsNCiAgICAkcmV0ID0gXGpzb25fZW5jb2RlKCR0aGlzLT5fcHJvcHMsIFxKU09OX1BSRVRUWV9QUklOVCk7DQogICAgJHJldCA9ICRyZXQgPyAoc3RyaW5nKSRyZXQgOiAnJzsNCiAgICByZXR1cm4gJHJldDsNCiAgfQ0KICANCiAgcHVibGljIGZ1bmN0aW9uIF9fc2V0KCRuYW1lLCAkdmFsdWUpDQogIHsNCiAgICByZXR1cm4gJzwhLS0gcmVhZCBvbmx5IC0tPic7DQogIH0NCiAgDQogIHB1YmxpYyBmdW5jdGlvbiBfX2dldCgkbmFtZSkNCiAgew0KICAgICR0aGlzLT5faW5pdGlhbGl6ZSgpOw0KICAgIA0KICAgIGlmKGlzc2V0KCAkdGhpcy0+X3Byb3BzWyRuYW1lXSkgKSByZXR1cm4gJHRoaXMtPl9wcm9wc1skbmFtZV07DQogIA0KICAgIHJldHVybiAnPCEtLSBpbnZhbGlkIC0tPic7DQogIH0NCiAgDQogIHB1YmxpYyBmdW5jdGlvbiBfX2NhbGwoJG5hbWUsICRhcmd1bWVudHMpDQogIHsNCiAgICAkdGhpcy0+X2luaXRpYWxpemUoKTsNCiAgDQogICAgaWYoaXNzZXQoICR0aGlzLT5fcHJvcHNbJG5hbWVdKSApIHJldHVybiAkdGhpcy0+X3Byb3BzWyRuYW1lXTsNCiAgDQogICAgcmV0dXJuICc8IS0tIGludmFsaWQgLS0+JzsNCiAgfQ0KICANCiAgcHVibGljIGZ1bmN0aW9uIGdldCgkcHJvcGVydHkgPSAnJykNCiAgew0KICAgIGlmKCAhZW1wdHkoJHByb3BlcnR5KSApDQogICAgew0KICAgICAgJHRoaXMtPl9pbml0aWFsaXplKCk7DQoNCiAgICAgIGlmKGlzc2V0KCAkdGhpcy0+X3Byb3BzWyRwcm9wZXJ0eV0pICkgcmV0dXJuICR0aGlzLT5fcHJvcHNbJHByb3BlcnR5XTsNCiAgICB9DQoNCiAgICByZXR1cm4gJzwhLS0gaW52YWxpZCAtLT4nOw0KICB9DQogIA0KICAjW1xSZXR1cm5UeXBlV2lsbENoYW5nZV0NCiAgcHVibGljIGZ1bmN0aW9uIG9mZnNldFNldCgkb2Zmc2V0LCAkdmFsdWUpDQogIHsNCiAgICByZXR1cm4gJzwhLS0gaW52YWxpZCAtLT4nOw0KICB9DQogIA0KICAjW1xSZXR1cm5UeXBlV2lsbENoYW5nZV0NCiAgcHVibGljIGZ1bmN0aW9uIG9mZnNldEdldCgkb2Zmc2V0KQ0KICB7DQogICAgJHRoaXMtPl9pbml0aWFsaXplKCk7DQogICAgcmV0dXJuICR0aGlzLT5fcHJvcHNbJG9mZnNldF07DQogIH0NCiAgDQogICNbXFJldHVyblR5cGVXaWxsQ2hhbmdlXQ0KICBwdWJsaWMgZnVuY3Rpb24gb2Zmc2V0RXhpc3RzKCRvZmZzZXQpDQogIHsNCiAgICAkdGhpcy0+X2luaXRpYWxpemUoKTsNCiAgICByZXR1cm4gYXJyYXlfa2V5X2V4aXN0cygkb2Zmc2V0LCAkdGhpcy0+X3Byb3BzKTsNCiAgfQ0KICANCiAgI1tcUmV0dXJuVHlwZVdpbGxDaGFuZ2VdDQogIHB1YmxpYyBmdW5jdGlvbiBvZmZzZXRVbnNldCgkb2Zmc2V0KQ0KICB7DQogICAgcmV0dXJuICc8IS0tIGludmFsaWQgLS0+JzsNCiAgfQ0KfQ0KDQo/Pg==]]></data>
	</file>
	<file>
	  <filename>/lib/class.smarty_local.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHANCg0KDQpuYW1lc3BhY2UgTElTRTsNCg0KY2xhc3Mgc21hcnR5X2xvY2FsDQp7DQogIHByaXZhdGUgc3RhdGljICRfaW5zdGFuY2VzID0gW107DQogIHByaXZhdGUgc3RhdGljICRfbG9jYWxfaW5zdGFuY2VzID0gW107DQogIHByaXZhdGUgc3RhdGljICRfcHJvcHMgPSBbXTsNCiAgDQogIHByaXZhdGUgc3RhdGljIGZ1bmN0aW9uIF9nZXRfaW5zdGFuY2UoKQ0KICB7DQogICAgJGluc3RhbmNlX25hbWUgPSBcY21zX3V0aWxzOjpnZXRfYXBwX2RhdGEoJ2xpc2VfaW5zdGFuY2UnKTsNCiAgICANCiAgICBpZiggZW1wdHkoJGluc3RhbmNlX25hbWUpICkgcmV0dXJuOw0KICAgIA0KICAgIGlmKCAhaXNzZXQoc2VsZjo6JF9pbnN0YW5jZXNbJGluc3RhbmNlX25hbWVdKSApDQogICAgew0KICAgICAgc2VsZjo6JF9pbnN0YW5jZXNbJGluc3RhbmNlX25hbWVdID0gXGNtc191dGlsczo6Z2V0X21vZHVsZSgkaW5zdGFuY2VfbmFtZSk7DQogICAgfQ0KICAgIA0KICAgIHJldHVybiBzZWxmOjokX2luc3RhbmNlc1skaW5zdGFuY2VfbmFtZV07DQogIH0NCiAgDQogIHByaXZhdGUgc3RhdGljIGZ1bmN0aW9uIF9nZXRfbG9jYWxfaW5zdGFuY2VfbmFtZSgpDQogIHsNCiAgICAkaW5zdGFuY2UgPSBzZWxmOjpfZ2V0X2luc3RhbmNlKCk7DQogICAgDQogICAgaWYoICFpc19vYmplY3QoJGluc3RhbmNlKSApIHJldHVybjsNCiAgICANCiAgICByZXR1cm4gJGluc3RhbmNlLT5HZXRQcmVmZXJlbmNlKCdsb2NhbF9tb2RlX2luc3RhbmNlJyk7DQogIH0NCiAgDQogIHByaXZhdGUgc3RhdGljIGZ1bmN0aW9uIF9nZXRfbG9jYWxfaW5zdGFuY2UoKQ0KICB7DQogICAgJGluc3RhbmNlX25hbWUgPSBzZWxmOjpfZ2V0X2luc3RhbmNlKCk7DQogICAgDQogICAgaWYoIGVtcHR5KCRpbnN0YW5jZV9uYW1lKSApIHJldHVybjsNCiAgICANCiAgICAkbG9jYWxfbmFtZSA9IHNlbGY6Ol9nZXRfbG9jYWxfaW5zdGFuY2VfbmFtZSgpOw0KICAgIA0KICAgIGlmKCAhaXNzZXQoc2VsZjo6JF9sb2NhbF9pbnN0YW5jZXNbJGxvY2FsX25hbWVdKSApDQogICAgew0KICAgICAgc2VsZjo6JF9sb2NhbF9pbnN0YW5jZXNbJGxvY2FsX25hbWVdID0gXGNtc191dGlsczo6Z2V0X21vZHVsZSgkbG9jYWxfbmFtZSk7DQogICAgfQ0KICAgIA0KICAgIHJldHVybiBzZWxmOjokX2xvY2FsX2luc3RhbmNlc1skbG9jYWxfbmFtZV07DQogIH0NCiAgDQogIHByaXZhdGUgc3RhdGljIGZ1bmN0aW9uIF9nZXRfcHJvcCgkcHJvcGVydHkgPSAnJykNCiAgew0KICAgIGlmKCBlbXB0eSgkcHJvcGVydHkpICkgcmV0dXJuICc8IS0tIGludmFsaWQgLS0+JzsNCiAgDQogICAgJGluc3RhbmNlX25hbWUgPSBcY21zX3V0aWxzOjpnZXRfYXBwX2RhdGEoJ2xpc2VfaW5zdGFuY2UnKTsNCiAgICANCiAgICBpZiggZW1wdHkoJGluc3RhbmNlX25hbWUpICkgcmV0dXJuICc8IS0tIGludmFsaWQ6IGNhbGxlZCBvdXRzaWRlIGluc3RhbmNlIHNjb3BlIC0tPic7DQogICAgDQogICAgaWYoICFpc3NldChzZWxmOjokX3Byb3BzWyRpbnN0YW5jZV9uYW1lXVskcHJvcGVydHldICkgKQ0KICAgIHsNCiAgICAgICRtb2QgPSBzZWxmOjpfZ2V0X2xvY2FsX2luc3RhbmNlKCk7DQogICAgICAkaXRlbSA9ICRtb2QtPkxvYWRJdGVtQnlJZGVudGlmaWVyKCdhbGlhcycsICRpbnN0YW5jZV9uYW1lKTsNCiAgDQogICAgICBmb3JlYWNoKCRpdGVtLT5maWVsZGRlZnMgYXMgJG9uZSkNCiAgICAgIHsNCiAgICAgICAgc2VsZjo6JF9wcm9wc1skaW5zdGFuY2VfbmFtZV1bJG9uZVsnYWxpYXMnXV0gPSAkb25lWyd2YWx1ZSddOw0KICAgICAgfQ0KICAgICAgDQogICAgICAjIHN0aWxsIGRvZXNuJ3QgZXhpc3Q/DQogICAgICBpZiggIWlzc2V0KHNlbGY6OiRfcHJvcHNbJGluc3RhbmNlX25hbWVdWyRwcm9wZXJ0eV0gKSApIHJldHVybiAnPCEtLSBpbnZhbGlkIC0tPic7DQogICAgfQ0KICAgIA0KICAgIHJldHVybiBzZWxmOjokX3Byb3BzWyRpbnN0YW5jZV9uYW1lXVskcHJvcGVydHldOw0KICB9DQogIA0KICBzdGF0aWMgZnVuY3Rpb24gZ2V0KCRwcm9wZXJ0eSA9ICcnKQ0KICB7DQogICAgcmV0dXJuIHNlbGY6Ol9nZXRfcHJvcCgkcHJvcGVydHkpOw0KICB9DQogIA0KfQ0KDQo/Pg==]]></data>
	</file>
	<file>
	  <filename>/lib/class.smarty_local_obj.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHANCg0KDQpuYW1lc3BhY2UgTElTRTsNCg0KY2xhc3Mgc21hcnR5X2xvY2FsX29iaiBpbXBsZW1lbnRzIFxBcnJheUFjY2Vzcw0Kew0KICBwcml2YXRlIGFycmF5ICRfaW5zdGFuY2VzID0gW107DQogIHByaXZhdGUgYXJyYXkgJF9sb2NhbF9pbnN0YW5jZXMgPSBbXTsNCiAgcHJpdmF0ZSBhcnJheSAkX3Byb3BzID0gW107DQogIA0KICBwcml2YXRlIGZ1bmN0aW9uIF9nZXRfaW5zdGFuY2UoKQ0KICB7DQogICAgJGluc3RhbmNlX25hbWUgPSBcY21zX3V0aWxzOjpnZXRfYXBwX2RhdGEoJ2xpc2VfaW5zdGFuY2UnKTsNCiAgICANCiAgICBpZiggZW1wdHkoJGluc3RhbmNlX25hbWUpICkgcmV0dXJuOw0KICAgIA0KICAgIGlmKCAhaXNzZXQoJHRoaXMtPl9pbnN0YW5jZXNbJGluc3RhbmNlX25hbWVdKSApDQogICAgew0KICAgICAgJHRoaXMtPl9pbnN0YW5jZXNbJGluc3RhbmNlX25hbWVdID0gXGNtc191dGlsczo6Z2V0X21vZHVsZSgkaW5zdGFuY2VfbmFtZSk7DQogICAgfQ0KICAgIA0KICAgIHJldHVybiAkdGhpcy0+X2luc3RhbmNlc1skaW5zdGFuY2VfbmFtZV07DQogIH0NCiAgDQogIHByaXZhdGUgZnVuY3Rpb24gX2dldF9sb2NhbF9pbnN0YW5jZV9uYW1lKCkNCiAgew0KICAgICRpbnN0YW5jZSA9ICR0aGlzLT5fZ2V0X2luc3RhbmNlKCk7DQogICAgDQogICAgaWYoICFcaXNfb2JqZWN0KCRpbnN0YW5jZSkgKSByZXR1cm4gJyc7DQogICAgDQogICAgcmV0dXJuICRpbnN0YW5jZS0+R2V0UHJlZmVyZW5jZSgnbG9jYWxfbW9kZV9pbnN0YW5jZScpOw0KICB9DQogIA0KICBwcml2YXRlIGZ1bmN0aW9uIF9nZXRfbG9jYWxfaW5zdGFuY2UoKQ0KICB7DQogICAgJGluc3RhbmNlX25hbWUgPSAkdGhpcy0+X2dldF9pbnN0YW5jZSgpOw0KICAgIA0KICAgIGlmKCBlbXB0eSgkaW5zdGFuY2VfbmFtZSkgKSByZXR1cm47DQogICAgDQogICAgJGxvY2FsX25hbWUgPSAkdGhpcy0+X2dldF9sb2NhbF9pbnN0YW5jZV9uYW1lKCk7DQogICAgDQogICAgaWYoICFpc3NldCgkdGhpcy0+X2xvY2FsX2luc3RhbmNlc1skbG9jYWxfbmFtZV0pICkNCiAgICB7DQogICAgICAkdGhpcy0+X2xvY2FsX2luc3RhbmNlc1skbG9jYWxfbmFtZV0gPSBcY21zX3V0aWxzOjpnZXRfbW9kdWxlKCRsb2NhbF9uYW1lKTsNCiAgICB9DQogICAgDQogICAgcmV0dXJuICR0aGlzLT5fbG9jYWxfaW5zdGFuY2VzWyRsb2NhbF9uYW1lXTsNCiAgfQ0KICANCiAgcHJpdmF0ZSBmdW5jdGlvbiBfZ2V0X3Byb3AoJHByb3BlcnR5ID0gJycpDQogIHsNCiAgICBpZiggZW1wdHkoJHByb3BlcnR5KSApIHJldHVybiAnPCEtLSBpbnZhbGlkIC0tPic7DQogIA0KICAgICRpbnN0YW5jZV9uYW1lID0gXGNtc191dGlsczo6Z2V0X2FwcF9kYXRhKCdsaXNlX2luc3RhbmNlJyk7DQogICAgDQogICAgaWYoIGVtcHR5KCRpbnN0YW5jZV9uYW1lKSApIHJldHVybiAnPCEtLSBpbnZhbGlkOiBjYWxsZWQgb3V0c2lkZSBpbnN0YW5jZSBzY29wZSAtLT4nOw0KICAgIA0KICAgIGlmKCAhaXNzZXQoJHRoaXMtPl9wcm9wc1skaW5zdGFuY2VfbmFtZV1bJHByb3BlcnR5XSApICkNCiAgICB7DQogICAgICAkbW9kID0gJHRoaXMtPl9nZXRfbG9jYWxfaW5zdGFuY2UoKTsNCiAgICAgICRpdGVtID0gJG1vZC0+TG9hZEl0ZW1CeUlkZW50aWZpZXIoJ2FsaWFzJywgJGluc3RhbmNlX25hbWUpOw0KICANCiAgICAgIGZvcmVhY2goJGl0ZW0tPmZpZWxkZGVmcyBhcyAkb25lKQ0KICAgICAgew0KICAgICAgICAkdGhpcy0+X3Byb3BzWyRpbnN0YW5jZV9uYW1lXVskb25lWydhbGlhcyddXSA9ICRvbmVbJ3ZhbHVlJ107DQogICAgICB9DQogICAgICANCiAgICAgICMgc3RpbGwgZG9lc24ndCBleGlzdD8NCiAgICAgIGlmKCAhaXNzZXQoJHRoaXMtPl9wcm9wc1skaW5zdGFuY2VfbmFtZV1bJHByb3BlcnR5XSApICkgcmV0dXJuICc8IS0tIGludmFsaWQgLS0+JzsNCiAgICB9DQogICAgDQogICAgcmV0dXJuICR0aGlzLT5fcHJvcHNbJGluc3RhbmNlX25hbWVdWyRwcm9wZXJ0eV07DQogIH0NCiAgDQogIHB1YmxpYyBmdW5jdGlvbiBfX3RvU3RyaW5nKCkNCiAgew0KICAgIC8vJHRoaXMtPl9pbml0aWFsaXplKCk7DQogICAgJHJldCA9IGpzb25fZW5jb2RlKCR0aGlzLT5fcHJvcHMsIEpTT05fUFJFVFRZX1BSSU5UKTsNCiAgICAkcmV0ID0gJHJldCA/IChzdHJpbmcpJHJldCA6ICcnOw0KICAgIHJldHVybiAkcmV0Ow0KICB9DQogIA0KICBwdWJsaWMgZnVuY3Rpb24gX19zZXQoJG5hbWUsICR2YWx1ZSkNCiAgew0KICAgIHJldHVybiAnPCEtLSByZWFkIG9ubHkgLS0+JzsNCiAgfQ0KICANCiAgcHVibGljIGZ1bmN0aW9uIF9fZ2V0KCRuYW1lKQ0KICB7DQogICAgcmV0dXJuICR0aGlzLT5fZ2V0X3Byb3AoJG5hbWUpOw0KICB9DQogIA0KICBwdWJsaWMgZnVuY3Rpb24gX19jYWxsKCRuYW1lLCAkYXJndW1lbnRzKQ0KICB7DQogICAgcmV0dXJuICR0aGlzLT5fZ2V0X3Byb3AoJG5hbWUpOw0KICB9DQogIA0KICANCiAgZnVuY3Rpb24gZ2V0KCRuYW1lID0gJycpDQogIHsNCiAgICByZXR1cm4gJHRoaXMtPl9nZXRfcHJvcCgkbmFtZSk7DQogIH0NCiAgDQogICNbXFJldHVyblR5cGVXaWxsQ2hhbmdlXQ0KICBwdWJsaWMgZnVuY3Rpb24gb2Zmc2V0U2V0KCRvZmZzZXQsICR2YWx1ZSkNCiAgew0KICAgIHJldHVybiAnPCEtLSBpbnZhbGlkIC0tPic7DQogIH0NCiAgDQogICNbXFJldHVyblR5cGVXaWxsQ2hhbmdlXQ0KICBwdWJsaWMgZnVuY3Rpb24gb2Zmc2V0R2V0KCRvZmZzZXQpDQogIHsNCiAgICByZXR1cm4gJHRoaXMtPl9nZXRfcHJvcCgkb2Zmc2V0KTsNCiAgfQ0KICANCiAgI1tcUmV0dXJuVHlwZVdpbGxDaGFuZ2VdDQogIHB1YmxpYyBmdW5jdGlvbiBvZmZzZXRFeGlzdHMoJG9mZnNldCk6Ym9vbA0KICB7DQogICAgIyBpbml0aWFsaXplDQogICAgJHRoaXMtPl9nZXRfcHJvcCgkb2Zmc2V0KTsNCiAgICANCiAgICByZXR1cm4gYXJyYXlfa2V5X2V4aXN0cygkb2Zmc2V0LCAkdGhpcy0+X3Byb3BzKTsNCiAgfQ0KICANCiAgI1tcUmV0dXJuVHlwZVdpbGxDaGFuZ2VdDQogIHB1YmxpYyBmdW5jdGlvbiBvZmZzZXRVbnNldCgkb2Zmc2V0KQ0KICB7DQogICAgcmV0dXJuICc8IS0tIGludmFsaWQgLS0+JzsNCiAgfQ0KICANCn0NCg0KPz4=]]></data>
	</file>
	<file>
	  <filename>/lib/class.string_utils.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHANCg0KDQpuYW1lc3BhY2UgTElTRTsNCg0KDQpjbGFzcyBzdHJpbmdfdXRpbHMNCnsNCg0KfQ0KDQo/Pg==]]></data>
	</file>
	<file>
	  <filename>/lib/class.title_generator.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHANCg0KDQpuYW1lc3BhY2UgTElTRTsNCg0KDQpmaW5hbCBjbGFzcyB0aXRsZV9nZW5lcmF0b3INCnsNCiAgLyoqDQogICAqIHByaXZhdGUgcHJvcHMNCiAgICovDQogIHByaXZhdGUgc3RhdGljICRfaW5zdGFuY2UgPSBOVUxMOw0KICBwcml2YXRlICAgICAgICAkX3BhcnNlciAgID0gTlVMTDsNCiAgcHJpdmF0ZSAgICAgICAgJF9pbnN0YW5jZV9uYW1lOw0KICANCiAgLyoqDQogICAqIHB1YmxpYyBwcm9wcw0KICAgKi8NCiAgDQogIC8qKg0KICAgKiBwcml2YXRlIG1ldGhvZHMNCiAgICovDQogIHByaXZhdGUgZnVuY3Rpb24gX19jb25zdHJ1Y3QoKQ0KICB7DQogICAgIyB0YWcgbmFtZSA9PiBbdHlwZSwgY2FsbGFibGVdDQogICAgJHRhZ3MgPSBbDQogICAgICAgICAgICAgICdSYW5kb21TdHJpbmcnID0+IFsgJ2Z1bmN0aW9uJywgWyR0aGlzLCAnX3JhbmRvbV9zdHJpbmcnXSBdLA0KICAgICAgICAgICAgICAnSXRlbUNvdW50ZXInICA9PiBbICdmdW5jdGlvbicsIFskdGhpcywgJ19pdGVtX2NvdW50ZXInXSBdLA0KICAgICAgICAgICAgICAnSXRlbU5leHRJRCcgICA9PiBbICdmdW5jdGlvbicsIFskdGhpcywgJ19pdGVtX25leHRfaWQnXSBdLA0KICAgICAgICAgICAgICAnSXRlbVNpbmd1bGFyJyA9PiBbICdmdW5jdGlvbicsIFskdGhpcywgJ19pdGVtX3Npbmd1bGFyJ10gXSwNCiAgICAgICAgICAgICAgJ0l0ZW1QbHVyYWwnICAgPT4gWyAnZnVuY3Rpb24nLCBbJHRoaXMsICdfaXRlbV9wbHVyYWwnXSBdDQogICAgXTsNCiAgDQogICAgJHRoaXMtPl9wYXJzZXIgPSBuZXcgbWluaV9zbWFydHlfcGFyc2VyKCk7DQogICAgJHRoaXMtPl9wYXJzZXIgLT5SZWdpc3RlclRhZ3MoJHRhZ3MpOw0KICB9DQogIA0KICBwcml2YXRlIGZ1bmN0aW9uIF9jb3VudCgpDQogIHsNCiAgICAkaW5zdGFuY2UgPSBcY21zX3V0aWxzOjpnZXRfbW9kdWxlKCAkdGhpcy0+X2luc3RhbmNlX25hbWUpOw0KICAgICRkYiA9IFxjbXNfdXRpbHM6OmdldF9kYigpOw0KICAgIA0KICAgICRxdWVyeSA9ICdTRUxFQ1QgY291bnQoKikgRlJPTSAnDQogICAgICAgICAgICAgLiBcY21zX2RiX3ByZWZpeCgpDQogICAgICAgICAgICAgLiAnbW9kdWxlXycgLiAkaW5zdGFuY2UtPl9HZXRNb2R1bGVBbGlhcygpIC4gJ19pdGVtJzsNCiAgICANCiAgICByZXR1cm4gKGludCkkZGItPkdldE9uZSgkcXVlcnkpOw0KICAgIA0KICB9DQogIA0KICBwcml2YXRlIGZ1bmN0aW9uIF9sYXN0X2lkKCkNCiAgew0KICAgICRpbnN0YW5jZSA9IFxjbXNfdXRpbHM6OmdldF9tb2R1bGUoICR0aGlzLT5faW5zdGFuY2VfbmFtZSk7DQogICAgJGRiID0gXGNtc191dGlsczo6Z2V0X2RiKCk7DQogIA0KICAgICRxdWVyeSA9ICdTRUxFQ1QgTUFYKGl0ZW1faWQpIEZST00gJw0KICAgICAgICAgICAgIC4gXGNtc19kYl9wcmVmaXgoKQ0KICAgICAgICAgICAgIC4gJ21vZHVsZV8nIC4gJGluc3RhbmNlLT5fR2V0TW9kdWxlQWxpYXMoKSAuICdfaXRlbSc7DQogICAgDQogICAgcmV0dXJuIChpbnQpJGRiLT5HZXRPbmUoJHF1ZXJ5KTsNCiAgfQ0KICANCiAgLyoqDQogICAqIHB1YmxpYyBtZXRob2RzDQogICAqLw0KICANCiAgcHVibGljIHN0YXRpYyBmdW5jdGlvbiBnZXRJbnN0YW5jZSgpDQogIHsNCiAgICBpZiAoc2VsZjo6JF9pbnN0YW5jZSA9PSBudWxsKXsgc2VsZjo6JF9pbnN0YW5jZSA9IG5ldyB0aXRsZV9nZW5lcmF0b3IoKTt9DQogICAgDQogICAgcmV0dXJuIHNlbGY6OiRfaW5zdGFuY2U7DQogIH0NCiAgDQogIGZ1bmN0aW9uIF9yYW5kb21fc3RyaW5nKCRwYXJhbXMsICRzbWFydHkpDQogIHsNCiAgICAkbGVuZ3RoID0gaXNzZXQoJHBhcmFtc1snbCddKSA/IChpbnQpJHBhcmFtc1snbCddIDogMTA7DQogICAgJGZsYWdzID0gaXNzZXQoJHBhcmFtc1snZiddKSA/IChzdHJpbmcpJHBhcmFtc1snZiddIDogJ20nOw0KICAgIA0KICAgICRmID0gUmFuZG9tU3RyaW5nOjpNSVhFRDsNCiAgICAkZmxhZ3MgPSBzdHJfc3BsaXQoIHN0cnRvbG93ZXIoJGZsYWdzKSApOw0KICAgIA0KICAgIGZvcmVhY2goJGZsYWdzIGFzICRmbGFnKQ0KICAgIHsNCiAgICAgIHN3aXRjaCAoJGZsYWcpDQogICAgICB7DQogICAgICAgIGNhc2UgJ2wnOg0KICAgICAgICAgICRmID0gJGYgfCBSYW5kb21TdHJpbmc6OkxPV0VSOw0KICAgICAgICBicmVhazsNCiAgICAgICAgY2FzZSAndSc6DQogICAgICAgICAgJGYgPSAkZiB8IFJhbmRvbVN0cmluZzo6VVBQRVI7DQogICAgICAgIGJyZWFrOw0KICAgICAgICBjYXNlICdkJzoNCiAgICAgICAgICAkZiA9ICRmIHwgUmFuZG9tU3RyaW5nOjpESUdJVFM7DQogICAgICAgIGJyZWFrOw0KICAgICAgfQ0KICAgIH0NCiAgICANCiAgICByZXR1cm4gUmFuZG9tU3RyaW5nOjpnZXQoJGxlbmd0aCwgJGYpOw0KICB9DQogIA0KICANCiAgZnVuY3Rpb24gX2l0ZW1fc2luZ3VsYXIoJHBhcmFtcywgJHNtYXJ0eSkNCiAgew0KICAgICRpbnN0YW5jZSA9IFxjbXNfdXRpbHM6OmdldF9tb2R1bGUoICR0aGlzLT5faW5zdGFuY2VfbmFtZSk7DQogICAgDQogICAgaWYoICFpc19vYmplY3QoJGluc3RhbmNlKSApIHRocm93IG5ldyBcTElTRUV4Y2VwdGlvbignQ291bGQgbm90IGxvYWQgaW5zdGFuY2UgJyAuICR0aGlzLT5faW5zdGFuY2VfbmFtZSk7DQogICAgDQogICAgcmV0dXJuICRpbnN0YW5jZS0+R2V0UHJlZmVyZW5jZSgnaXRlbV9zaW5ndWxhcicpOw0KICB9DQogIA0KICANCiAgZnVuY3Rpb24gX2l0ZW1fcGx1cmFsKCRwYXJhbXMsICRzbWFydHkpDQogIHsNCiAgICAkaW5zdGFuY2UgPSBcY21zX3V0aWxzOjpnZXRfbW9kdWxlKCAkdGhpcy0+X2luc3RhbmNlX25hbWUpOw0KICAgIA0KICAgIGlmKCAhaXNfb2JqZWN0KCRpbnN0YW5jZSkgKSB0aHJvdyBuZXcgXExJU0VFeGNlcHRpb24oJ0NvdWxkIG5vdCBsb2FkIGluc3RhbmNlICcgLiAkdGhpcy0+X2luc3RhbmNlX25hbWUpOw0KICAgIA0KICAgIHJldHVybiAkaW5zdGFuY2UtPkdldFByZWZlcmVuY2UoJ2l0ZW1fcGx1cmFsJyk7DQogIH0NCiAgDQogIA0KICBmdW5jdGlvbiBfaXRlbV9jb3VudGVyKCRwYXJhbXMsICRzbWFydHkpDQogIHsNCiAgICByZXR1cm4gMSArICR0aGlzLT5fY291bnQoKTsNCiAgfQ0KICANCiAgZnVuY3Rpb24gX2l0ZW1fbmV4dF9pZCgkcGFyYW1zLCAkc21hcnR5KQ0KICB7DQogICAgcmV0dXJuIDEgKyAkdGhpcy0+X2xhc3RfaWQoKTsNCiAgfQ0KICANCiAgLyoqKiAqKiogKioqLw0KICANCiAgLyoqDQogICAqIEBwYXJhbSBzdHJpbmcgJGluc3RhbmNlX25hbWUNCiAgICoNCiAgICogQHJldHVybiBzdHJpbmcNCiAgICogQHRocm93cyBcTElTRUV4Y2VwdGlvbg0KICAgKi8NCiAgZnVuY3Rpb24gZ2VuZXJhdGVfbmV3KCRpbnN0YW5jZV9uYW1lID0gJycpDQogIHsNCiAgICAkdGhpcy0+X2luc3RhbmNlX25hbWUgPSAkaW5zdGFuY2VfbmFtZTsNCiAgICAkaW5zdGFuY2UgICAgICAgICAgICAgPSBcY21zX3V0aWxzOjpnZXRfbW9kdWxlKCRpbnN0YW5jZV9uYW1lKTsNCiAgICANCiAgICBpZiggIWlzX29iamVjdCgkaW5zdGFuY2UpICkgdGhyb3cgbmV3IFxMSVNFRXhjZXB0aW9uKCdDb3VsZCBub3QgbG9hZCBpbnN0YW5jZSAnIC4gJGluc3RhbmNlX25hbWUpOw0KICANCiAgICAkdGVtcGxhdGUgPSAkaW5zdGFuY2UtPkdldFByZWZlcmVuY2UoJ3RpdGxlX3RlbXBsYXRlJywgJ3tJdGVtU2luZ3VsYXJ8Y2FwaXRhbGl6ZX0gLSB7SXRlbU5leHRJRHxzdHJpbmdfZm9ybWF0OiIlMDZ1In0nKTsNCiAgICANCiAgICB0cnkNCiAgICB7DQogICAgICAkb3V0ID0gJHRoaXMtPl9wYXJzZXItPkxvYWQoJHRlbXBsYXRlKS0+UGFyc2UoKTsNCiAgICB9DQogICAgY2F0Y2goXEV4Y2VwdGlvbiAkZSkNCiAgICB7DQogICAgICBcYXVkaXQoIDAsIF9fTUVUSE9EX18gLCAkZS0+Z2V0TWVzc2FnZSgpICk7DQogICAgICB0aHJvdyAkZTsNCiAgICB9DQogICAgDQogICAgcmV0dXJuICRvdXQ7DQogIH0NCn0NCg0KPz4=]]></data>
	</file>
	<file>
	  <filename>/lib/css</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/lib/css/index.html</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[]]></data>
	</file>
	<file>
	  <filename>/lib/css/lise-globals.css</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[LyogQmFja2VuZCAqLwpkaXYubGlzZS1hZG1pbi13cmFwcGVyIGF7CgoJb3V0bGluZTogbm9uZTsKfQoKLyogYWpheCBsb2FkZXJzICovCi5hamF4LWxvYWRlci10eXBlLTE2IHsKCgl3aWR0aDogMTZweDsKCWhlaWdodDogMTZweDsKCWJhY2tncm91bmQ6IHVybCguLi8uLi9pbWFnZXMvanF1ZXJ5dWkvdWktYW5pbV9iYXNpY18xNngxNi5naWYpIG5vLXJlcGVhdDsKfQoKLmFqYXgtbG9hZGVyLXR5cGUtd2lkZSB7CgoJbWFyZ2luLXRvcDogMTVweDsKCXdpZHRoOiAxMjhweDsKCWhlaWdodDogMTVweDsKCWJhY2tncm91bmQ6IHVybCguLi8uLi9pbWFnZXMvbW9kdWxldWkvYWpheC1sb2FkZXItd2lkZS5naWYpIG5vLXJlcGVhdDsKfQ==]]></data>
	</file>
	<file>
	  <filename>/lib/css/liseHelp.css</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[aW1nLmltZy1yaWdodCB7CiAgZmxvYXQ6cmlnaHQ7CiAgbWFyZ2luOjAgMTVweCAxNXB4IDE1cHg7Cn0KCiNvZV9tYWluYXJlYSAudmlkZW9zLWNvbnRhaW5lciB1bCwKLnZpZGVvcy1jb250YWluZXIgdWwgewogIGxpc3Qtc3R5bGU6IG5vbmU7CiAgbWFyZ2luOiAwOwogIHBhZGRpbmc6IDA7Cn0KCiNvZV9tYWluYXJlYSAudmlkZW9zLWNvbnRhaW5lciB1bCBsaSwKLnZpZGVvcy1jb250YWluZXIgdWwgbGkgewogIGRpc3BsYXk6IGlubGluZS1ibG9jazsKICB0ZXh0LWFsaWduOiBjZW50ZXI7Cn0KCiNvZV9tYWluYXJlYSAudmlkZW9zLWNvbnRhaW5lciB1bCBsaSBhLAoudmlkZW9zLWNvbnRhaW5lciB1bCBsaSBhIHsKICB0ZXh0LWRlY29yYXRpb246IG5vbmU7CiAgZGlzcGxheTogYmxvY2s7CiAgbWFyZ2luOiAxNXB4OwogIG91dGxpbmU6IDA7Cn0KCmEuY29udGFjdC1idXR0b24gewogIGZvbnQtc2l6ZTogMTRweDsKICBwYWRkaW5nOiA0cHggMjBweDsKICB0ZXh0LWRlY29yYXRpb246IG5vbmU7CiAgY29sb3I6ICMwMDA7CiAgZGlzcGxheTogaW5saW5lLWJsb2NrOwp9CgphLmNvbnRhY3QtYnV0dG9uIC51aS1pY29uIHsKICBtYXJnaW4tYm90dG9tOiAtMnB4OwogIG1hcmdpbi1yaWdodDogNXB4Owp9CgoKLyogQ0xFQVIgSlVTVCBJTiBDQVNFICovCgouY2Y6YmVmb3JlLCAuY2Y6YWZ0ZXIgewogIGNvbnRlbnQ6ICcnOwogIGRpc3BsYXk6IHRhYmxlOwp9CgouY2Y6YWZ0ZXIsIC5jbGVhciB7CiAgY2xlYXI6IGJvdGg7Cn0KCi5jbGVhciB7CiAgY2xlYXI6IGJvdGg7Cn0K]]></data>
	</file>
	<file>
	  <filename>/lib/fielddefs</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/lib/fielddefs/BackendText</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/lib/fielddefs/BackendText/admin.BackendText.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[eyRvcHRzID0gJGZpZWxkZGVmLT5HZXRPcHRpb25zKCl9CjxmaWVsZHNldD4KICA8bGVnZW5kPnskZmllbGRkZWYtPk1vZExhbmcoJ29wdGlvbnMnKX08L2xlZ2VuZD4KICA8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgogICAgPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JGZpZWxkZGVmLT5Nb2RMYW5nKCdmaWVsZGRlZl9CVF9jb250YWluZXJfZGl2Jyl9OjwvcD4KICAgIDxwIGNsYXNzPSJwYWdlaW5wdXQiPgogICAgICB7aHRtbF9vcHRpb25zIG5hbWU9ImAkYWN0aW9uaWRgY3VzdG9tX2lucHV0W2NvbnRhaW5lcl9kaXZfc2VsXSIgb3B0aW9ucz0kb3B0cy5jb250YWluZXJfZGl2IHNlbGVjdGVkPSRmaWVsZGRlZi0+R2V0T3B0aW9uVmFsdWUoJ2NvbnRhaW5lcl9kaXZfc2VsJywgJ25vbmUnKX0KICAgIDwvcD4KICAgIDxwIGNsYXNzPSJwYWdldGV4dCI+PGRpdiBjbGFzcz0iaW5mb3JtYXRpb24iPnskZmllbGRkZWYtPk1vZExhbmcoJ2ZpZWxkZGVmX0JUX2NvbnRhaW5lcl9kaXZfaGVscCcpfTwvZGl2PjwvcD4KICA8L2Rpdj4KICA8aHI+ICAgCiAgPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KICAgIDxwIGNsYXNzPSJwYWdldGV4dCI+eyRmaWVsZGRlZi0+TW9kTGFuZygnZmllbGRkZWZfQlRfY29udGFpbmVyX3RleHQnKX06PC9wPgogICAgPHAgY2xhc3M9InBhZ2VpbnB1dCI+CiAgICAgICA8dGV4dGFyZWEgbmFtZT0ieyRhY3Rpb25pZH1jdXN0b21faW5wdXRbdHh0XSI+eyRvcHRzLnR4dH08L3RleHRhcmVhPiAKICAgIDwvcD4KICAgIDxwIGNsYXNzPSJwYWdldGV4dCI+PGRpdiBjbGFzcz0iaW5mb3JtYXRpb24iPnskZmllbGRkZWYtPk1vZExhbmcoJ2ZpZWxkZGVmX0JUX2NvbnRhaW5lcl90ZXh0X2hlbHAnKX08L2Rpdj48L3A+CiAgPC9kaXY+IAo8L2ZpZWxkc2V0Pg==]]></data>
	</file>
	<file>
	  <filename>/lib/fielddefs/BackendText/help.BackendText.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PGJ1dHRvbiBjbGFzcz0iYWNjb3JkaW9uIj48c3Ryb25nPnskZmllbGRkZWYtPkdldEZyaWVuZGx5VHlwZSgpfTwvc3Ryb25nPjwvYnV0dG9uPgoKPGRpdiBjbGFzcz0iYWNjcGFuZWwiPgoKICA8aDQ+V2hhdCBkb2VzIGl0IGRvPzwvaDQ+CgogIDxwPlRoaXMgZmllbGQgZGVmaW5pdGlvbiBjYW4gYmUgdXNlZCB0byBhZGQgPHN0cm9uZz5yZWFkIG9ubHkgdGV4dCBibG9ja3M8L3N0cm9uZz4gdG8gYW4gaXRlbS4gVGhlIGJsb2NrIHdpbGwgYmUgcmVuZGVyZWQKICAgIGluc2lkZSBhbiA8c3Ryb25nPkhUTUwgZGl2IHRhZzwvc3Ryb25nPiB3aGljaCBtYXkgaGF2ZSBhIGNsYXNzIHNlbGVjdGVkIGZyb20gdGhlIDxzdHJvbmc+Q29udGFpbmVyIERJViBUeXBlPC9zdHJvbmc+CiAgICBvcHRpb24uIFRoZSBjbGFzc2VzIGxpc3RlZCB0aGVyZSBtYXkgZGlmZmVyIHdpdGggTElTRSBhbmQgQ01TTVMgY29yZSB2ZXJzaW9ucyBvciB3aXRoIHRoZSA8c3Ryb25nPkFkbWluaXN0cmF0aW9uIFRoZW1lPC9zdHJvbmc+IHVzZWQuPC9wPgoKICA8cD5UaGUgYmxvY2sgb2YgdGV4dCB3aWxsIGJlIHBvc2l0aW9uZWQgYXMgYW55IG90aGVyIGZpZWxkIHR5cGUgYW5kIGNhbiBiZSBvcmRlcmVkIGluIHRoZSA8c3Ryb25nPkZpZWxkIERlZmluaXRpb25zPC9zdHJvbmc+IHRhYi48L3A+CgoKICA8aDQ+SG93IGRvIEkgdXNlIGl0PzwvaDQ+CgogIDxwPlRoZSBzZXR0aW5ncyBmb3IgdGhpcyBmaWVsZCBhcmU6PC9wPgoKICA8dWw+CiAgICA8bGk+PHN0cm9uZz5Db250YWluZXIgRElWIFR5cGU6PC9zdHJvbmc+CiAgICAgIDx1bD4KICAgICAgICA8bGk+Tm9uZSAtIHRoZSB0ZXh0IGJsb2NrIHdpbGwgYmUgcmVuZGVyZWQgd2l0aG91dCBhbnkgc3BlY2lhbCBjbGFzczs8L2xpPgogICAgICAgIDxsaT5HcmVlbiAtIDxzcGFuIGNsYXNzPSJncmVlbiI+dGhlIHRleHQgYmxvY2sgd2lsbCBiZSByZW5kZXJlZCB3aXRoIHRoZSBjbGFzcyA8c3Ryb25nPmdyZWVuPC9zdHJvbmc+PC9zcGFuPjwvbGk+CiAgICAgICAgPGxpPlllbGxvdyAtIDxzcGFuIGNsYXNzPSJ5ZWxsb3ciPnRoZSB0ZXh0IGJsb2NrIHdpbGwgYmUgcmVuZGVyZWQgd2l0aCB0aGUgY2xhc3MgPHN0cm9uZz55ZWxsb3c8L3N0cm9uZz48L3NwYW4+PC9saT4KICAgICAgICA8bGk+UmVkIC0gPHNwYW4gY2xhc3M9InJlZCI+dGhlIHRleHQgYmxvY2sgd2lsbCBiZSByZW5kZXJlZCB3aXRoIHRoZSBjbGFzcyA8c3Ryb25nPnJlZDwvc3Ryb25nPjwvc3Bhbj48L2xpPgogICAgICAgIDxsaT5JbmZvcm1hdGlvbiAtIDxzcGFuIGNsYXNzPSJpbmZvcm1hdGlvbiI+dGhlIHRleHQgYmxvY2sgd2lsbCBiZSByZW5kZXJlZCB3aXRoIHRoZSBjbGFzcyA8c3Ryb25nPmluZm9ybWF0aW9uPC9zdHJvbmc+PC9zcGFuPjwvbGk+CiAgICAgICAgPGxpPldhcm5pbmcgLSA8c3BhbiBjbGFzcz0id2FybmluZyI+dGhlIHRleHQgYmxvY2sgd2lsbCBiZSByZW5kZXJlZCB3aXRoIHRoZSBjbGFzcyA8c3Ryb25nPndhcm5pbmc8L3N0cm9uZz48L3NwYW4+PC9saT4KICAgICAgPC91bD4KICAgIDwvbGk+CiAgICA8bGk+PHN0cm9uZz5UZXh0PC9zdHJvbmc+OiB0aGUgdGV4dCB0byBpbnNlcnQgaW4gdGhlIGJsb2NrLiBCZSBjYXJlZnVsbCB3aXRoIHRoZSBIVE1MIHRhZ3MgdXNlZCBhcyBpdCBtYXkgYnJlYWsgdGhlIGl0ZW1zIGZvcm0gcGFnZTs8L2xpPgogIDwvdWw+CgogIDxkaXYgY2xhc3M9Indhcm5pbmciPjxzdHJvbmc+Tm90ZTo8L3N0cm9uZz4gdGhlc2Ugb3B0aW9ucyBtYXkgdmFyeSB3aXRoIExJU0UgdmVyc2lvbiwgQ01TTVMgY29yZSB2ZXJzaW9uIGFzIHdlbGwgYXMgdGhlIDxzdHJvbmc+QWRtaW5pc3RyYXRpb24gVGhlbWU8L3N0cm9uZz4gc2VsZWN0ZWQuIFRoZSBjdXJyZW50IHNldHRpbmdzIGhhdmUgYmVlbiB0ZXN0ZWQgd2l0aCA8c3Ryb25nPk9uZUVsZXZlbjwvc3Ryb25nPiAoMi4yLngpIGFuZCA8c3Ryb25nPk1hcmlnb2xkPC9zdHJvbmc+ICgyLjMueCkuPC9kaXY+Cgo8L2Rpdj4=]]></data>
	</file>
	<file>
	  <filename>/lib/fielddefs/BackendText/index.html</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PCEtLSBEVU1NWSBIVE1MIEZJTEUgLS0+]]></data>
	</file>
	<file>
	  <filename>/lib/fielddefs/BackendText/lisefd.BackendText.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKY2xhc3MgbGlzZWZkX0JhY2tlbmRUZXh0IGV4dGVuZHMgTElTRUZpZWxkZGVmQmFzZQp7CiAgcHJpdmF0ZSAkX29wdHMgPSBhcnJheSgpOwogIAoJcHVibGljIGZ1bmN0aW9uIF9fY29uc3RydWN0KCYkZGJfaW5mbywgJGNhbGxlcl9vYmplY3QpIAoJewkKCQlwYXJlbnQ6Ol9fY29uc3RydWN0KCRkYl9pbmZvLCAkY2FsbGVyX29iamVjdCk7CiAgICAJCQoJCSR0aGlzLT5TZXRGcmllbmRseVR5cGUoJHRoaXMtPk1vZExhbmcoJ2ZpZWxkZGVmX0JhY2tlbmRUZXh0JykpOwoJfQogIAogIHB1YmxpYyBmdW5jdGlvbiBHZXRPcHRpb25zKCkKICB7CiAgICAkdGhpcy0+X29wdHNbJ3R4dCddID0gJHRoaXMtPkdldE9wdGlvblZhbHVlKCd0eHQnLCAnJyk7CiAgICAKICAgICR0aGlzLT5fb3B0c1snY29udGFpbmVyX2RpdiddID0gYXJyYXkoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ25vbmUnICAgICAgICA9PiBsYW5nKCdub25lJyksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2dyZWVuJyAgICAgICA9PiAkdGhpcy0+TW9kTGFuZygnZ3JlZW4nKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAneWVsbG93JyAgICAgID0+ICR0aGlzLT5Nb2RMYW5nKCd5ZWxsb3cnKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAncmVkJyAgICAgICAgID0+ICR0aGlzLT5Nb2RMYW5nKCdyZWQnKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnaW5mb3JtYXRpb24nID0+ICR0aGlzLT5Nb2RMYW5nKCdmaWVsZGRlZl9CVF9pbmZvcm1hdGlvbicpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICd3YXJuaW5nJyAgICAgPT4gJHRoaXMtPk1vZExhbmcoJ2ZpZWxkZGVmX0JUX3dhcm5pbmcnKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICR0aGlzLT5fb3B0c1snY29udGFpbmVyX2Rpdl9zZWwnXSA9ICR0aGlzLT5HZXRPcHRpb25WYWx1ZSgnY29udGFpbmVyX2Rpdl9zZWwnLCAnbm9uZScpOwogICAgCiAgICByZXR1cm4gJHRoaXMtPl9vcHRzOwogIH0KCglwdWJsaWMgZnVuY3Rpb24gUmVuZGVySW5wdXQoJGlkLCAkcmV0dXJuaWQpCgl7CiAgICAkY29udF9kaXZfb3B0ID0gJHRoaXMtPkdldE9wdGlvblZhbHVlKCdjb250YWluZXJfZGl2X3NlbCcsICdub25lJyk7CiAgICAkdmFsdWUgPSAkdGhpcy0+R2V0T3B0aW9uVmFsdWUoJ3R4dCcsICcnKTsKICAgIAogICAgc3dpdGNoICgkY29udF9kaXZfb3B0KSAKICAgIHsKICAgICAgY2FzZSAnZ3JlZW4nOgogICAgICBjYXNlICd5ZWxsb3cnOgogICAgICBjYXNlICdyZWQnOgogICAgICBjYXNlICdpbmZvcm1hdGlvbic6CiAgICAgIGNhc2UgJ3dhcm5pbmcnOgogICAgICAgICR0eHQgPSAnPHAgY2xhc3M9InBhZ2V0ZXh0Ij48ZGl2IGNsYXNzPSInIC4gJGNvbnRfZGl2X29wdCAuICciIGlkPSInIC4gJHRoaXMtPkdldEFsaWFzKCkgLiAnIj4nIC4gJHZhbHVlIC4gJzwvZGl2PjwvcD4nOyAgICAgICAgIAogICAgICBicmVhazsKICAgICAgCiAgICAgIGRlZmF1bHQ6CiAgICAgICAgJHR4dCA9ICc8cCBjbGFzcz0icGFnZXRleHQiPicgLiAkdmFsdWUgLiAnPC9wPic7ICAgCiAgICB9CgoJCXJldHVybiAkdHh0OwoJfQp9]]></data>
	</file>
	<file>
	  <filename>/lib/fielddefs/Categories</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/lib/fielddefs/Categories/admin.Categories.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PGZpZWxkc2V0PgogIDxsZWdlbmQ+eyRmaWVsZGRlZi0+TW9kTGFuZygnb3B0aW9ucycpfTwvbGVnZW5kPgogIDxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CiAgICA8cCBjbGFzcz0icGFnZXRleHQiPnskZmllbGRkZWYtPk1vZExhbmcoJ3N1YnR5cGUnKX06PC9wPgogICAgPHAgY2xhc3M9InBhZ2VpbnB1dCI+CgkJICB7aHRtbF9vcHRpb25zIG5hbWU9ImAkYWN0aW9uaWRgY3VzdG9tX2lucHV0W3N1YnR5cGVdIiBvcHRpb25zPSRmaWVsZGRlZi0+U3ViVHlwZXMoKSBzZWxlY3RlZD0kZmllbGRkZWYtPkdldE9wdGlvblZhbHVlKCdzdWJ0eXBlJywgJ0Ryb3Bkb3duJyl9CiAgICAgIDxwIGNsYXNzPSJwYWdldGV4dCI+PGRpdiBjbGFzcz0iaW5mb3JtYXRpb24iPnskZmllbGRkZWYtPk1vZExhbmcoJ2ZpZWxkZGVmX3N1YnR5cGVfaGVscCcpfTwvZGl2PjwvcD4KICAgIDwvcD4KICA8L2Rpdj4KICA8aHI+IAogIDxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CQoJICA8cCBjbGFzcz0icGFnZXRleHQiPnskZmllbGRkZWYtPk1vZExhbmcoJ3NlcGFyYXRvcicpfTo8L3A+CgkgIDxwIGNsYXNzPSJwYWdlaW5wdXQiPgoJCSAgPGlucHV0IHR5cGU9InRleHQiIG5hbWU9InskYWN0aW9uaWR9Y3VzdG9tX2lucHV0W3NlcGFyYXRvcl0iIHZhbHVlPSJ7JGZpZWxkZGVmLT5HZXRPcHRpb25WYWx1ZSgnc2VwYXJhdG9yJyl9IiAvPgogICAgICA8cCBjbGFzcz0icGFnZXRleHQiPjxkaXYgY2xhc3M9ImluZm9ybWF0aW9uIj57JGZpZWxkZGVmLT5Nb2RMYW5nKCdmaWVsZGRlZl9zZXBhcmF0b3JfaGVscCcpfTwvZGl2PjwvcD4KCSAgPC9wPgkKICA8L2Rpdj4KICA8aHI+IAogIDxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CQogICAgPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JGZpZWxkZGVmLT5Nb2RMYW5nKCdjb2x1bW5zJyl9OjwvcD4KICAgIDxwIGNsYXNzPSJwYWdlaW5wdXQiPgoJICAgIDxpbnB1dCB0eXBlPSJ0ZXh0IiBuYW1lPSJ7JGFjdGlvbmlkfWN1c3RvbV9pbnB1dFtjb2x1bW5zXSIgdmFsdWU9InskZmllbGRkZWYtPkdldE9wdGlvblZhbHVlKCdjb2x1bW5zJywgMSl9IiAvPgogICAgICA8cCBjbGFzcz0icGFnZXRleHQiPjxkaXYgY2xhc3M9ImluZm9ybWF0aW9uIj57JGZpZWxkZGVmLT5Nb2RMYW5nKCdmaWVsZGRlZl9jb2x1bW5zX2hlbHAnKX08L2Rpdj48L3A+CiAgICA8L3A+CQogIDwvZGl2PgogIDxocj4gCiAgPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KICAgIDxwIGNsYXNzPSJwYWdldGV4dCI+eyRmaWVsZGRlZi0+TW9kTGFuZygnc2l6ZScpfTo8L3A+CiAgICA8cCBjbGFzcz0icGFnZWlucHV0Ij4KICAgICAgPGlucHV0IHR5cGU9InRleHQiIG5hbWU9InskYWN0aW9uaWR9Y3VzdG9tX2lucHV0W3NpemVdIiB2YWx1ZT0ieyRmaWVsZGRlZi0+R2V0T3B0aW9uVmFsdWUoJ3NpemUnLCA1KX0iIC8+CiAgICAgIDxwIGNsYXNzPSJwYWdldGV4dCI+PGRpdiBjbGFzcz0iaW5mb3JtYXRpb24iPnskZmllbGRkZWYtPk1vZExhbmcoJ2ZpZWxkZGVmX3NpemVfaGVscCcpfTwvZGl2PjwvcD4KICAgIDwvcD4KICA8L2Rpdj4KPC9maWVsZHNldD4=]]></data>
	</file>
	<file>
	  <filename>/lib/fielddefs/Categories/help.Categories.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PGJ1dHRvbiBjbGFzcz0iYWNjb3JkaW9uIj48c3Ryb25nPnskZmllbGRkZWYtPkdldEZyaWVuZGx5VHlwZSgpfTwvc3Ryb25nPjwvYnV0dG9uPgoKPGRpdiBjbGFzcz0iYWNjcGFuZWwiPgoJCgk8aDQ+V2hhdCBkb2VzIGl0IGRvPzwvaDQ+CgoJPHA+VGhpcyBmaWVsZCBkZWZpbml0aW9uIGNhbiBiZSB1c2VkIHRvIGFkZCA8c3Ryb25nPkNhdGVnb3JpZXM8L3N0cm9uZz4gdG8gYSBMSVNFIGluc3RhbmNlLiBZb3UgY2FuIHVzZSA8c3Ryb25nPkNhdGVnb3JpZXM8L3N0cm9uZz4gdG8gZmlsdGVyIHlvdXIgaXRlbXMgZm9yIGZyb250ZW5kIHZpZXdzLjwvcD4KCgk8cD48c3Ryb25nPkNhdGVnb3JpZXM8L3N0cm9uZz4gaGF2ZSBzb21lIHJlc3RyaWN0aW9ucy4gWW91IGNhbiBoYXZlIG9ubHkgb25lIG9mIHRoZXNlIHBlciBMSVNFIGluc3RhbmNlLiBPdGhlcnMgd2lsbCBiZSBpZ25vcmVkLjwvcD4KCgoJPGg0PkhvdyBkbyBJIHVzZSBpdD88L2g0PgoKCTxwPkFmdGVyIHlvdSBjcmVhdGUgdGhlIDxzdHJvbmc+Q2F0ZWdvcmllczwvc3Ryb25nPiBmaWVsZCBkZWZpbml0aW9uLCBhIG5ldyB0YWIgd2lsbCBhcHBlYXIgd2hlcmUgeW91IGNhbiBjcmVhdGUgeW91ciBkZXNpcmVkIDxzdHJvbmc+Q2F0ZWdvcmllczwvc3Ryb25nPi4gSWYgeW91IHdhbnQgeW91IGNhbiByZW9yZGVyIHRoZW0gYWZ0ZXJ3YXJkcy48L3A+CgoJPHA+VGhlIHNldHRpbmdzIGZvciB0aGlzIGZpZWxkIGFyZTo8L3A+CgoJPHVsPgoJCTxsaT48Yj5TdWIgVHlwZTo8L2I+CgkJCTx1bD4KCQkJCTxsaT5Ecm9wZG93bjwvbGk+CgkJCQk8bGk+TXVsdGkgU2VsZWN0PC9saT4KCQkJCTxsaT5SYWRpbyBHcm91cDwvbGk+CgkJCQk8bGk+Q2hlY2tib3ggR3JvdXA8L2xpPgoJCQkJPGxpPmpRdWVyeSBNdWx0aVNlbGVjdDwvbGk+CgkJCTwvdWw+CgkJPC9saT4KICAJCTxsaT48Yj5TZXBhcmF0b3I8L2I+PC9saT4KICAJCTxsaT48Yj5Db2x1bW5zPC9iPjwvbGk+CiAgCQk8bGk+PGI+U2l6ZTwvYj48L2xpPgoJPC91bD4KCjwvZGl2Pg==]]></data>
	</file>
	<file>
	  <filename>/lib/fielddefs/Categories/index.html</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PCEtLSBEVU1NWSBIVE1MIEZJTEUgLS0+]]></data>
	</file>
	<file>
	  <filename>/lib/fielddefs/Categories/liseeh.Categories.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHANCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQojIExJU0UgLSBMaXN0IEl0IFNwZWNpYWwgRWRpdGlvbg0KIyBWZXJzaW9uIDEuMg0KIyBBIGZvcmsgb2YgTGlzdEkyDQojIG1haW50YWluZWQgYnkgRmVybmFuZG8gTW9yZ2FkbyBBS0EgSm8gTW9yZw0KIyBzaW5jZSAyMDE1DQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIw0KIyBPcmlnaW5hbCBBdXRob3I6IEJlbiBNYWxlbiwgPGJlbkBjb25jZXB0ZmFjdG9yeS5jb20uYXU+DQojIENvLU1haW50YWluZXI6IFNpbW9uIFJhZGZvcmQsIDxzaW1vbkBjb25jZXB0ZmFjdG9yeS5jb20uYXU+DQojIFdlYjogd3d3LmNvbmNlcHRmYWN0b3J5LmNvbS5hdQ0KIw0KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCiMNCiMgTWFpbnRhaW5lciBzaW5jZSAyMDExIHVwIHRvIDIwMTQ6IEpvbmF0aGFuIFNjaG1pZCwgPGhpQGpvbmF0aGFuc2NobWlkLmRlPg0KIyBXZWI6IHd3dy5qb25hdGhhbnNjaG1pZC5kZQ0KIw0KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCiMNCiMgU29tZSB3YWNrb3Mgc3RhcnRlZCBkZXN0cm95aW5nIHN0dWZmIHNpbmNlIDIwMTIgYW5kIHN0b3BwZWQgYXQgMjAxNDoNCiMNCiMgVGFwaW8gTMO2eXR0eSwgPHRhcHNhQG9yYW5nZS1tZWRpYS5maT4NCiMgV2ViOiB3d3cub3JhbmdlLW1lZGlhLmZpDQojDQojIEdvcmFuIElsaWMsIDx1bmlxdTNlQGdtYWlsLmNvbT4NCiMgV2ViOiB3d3cuaWNoLW1hY2gtZGFzLmF0DQojDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIw0KIyBMSVNFIGlzIGEgQ01TIE1hZGUgU2ltcGxlIG1vZHVsZSB0aGF0IGVuYWJsZXMgdGhlIHdlYiBkZXZlbG9wZXIgdG8gY3JlYXRlDQojIG11bHRpcGxlIGxpc3RzIHRocm91Z2hvdXQgYSBzaXRlLiBJdCBjYW4gYmUgZHVwbGljYXRlZCBhbmQgZ2l2ZW4gZnJpZW5kbHkNCiMgbmFtZXMgZm9yIGVhc2llciBjbGllbnQgbWFpbnRlbmFuY2UuDQojDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIyBCRUdJTl9MSUNFTlNFDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIyBUaGlzIGZpbGUgaXMgcGFydCBvZiBMSVNFDQojIExJU0UgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5DQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5DQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yDQojIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uDQojDQojIExJU0UgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLA0KIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZg0KIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlDQojIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuDQojIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlDQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlDQojIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcgVVNBDQojIE9yIHJlYWQgaXQgb25saW5lOiBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwNCiMNCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQojIEVORF9MSUNFTlNFDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KY2xhc3MgbGlzZWVoX0NhdGVnb3JpZXMgZXh0ZW5kcyBMSVNFRXZlbnRIYW5kbGVyQmFzZQ0Kew0KCSMtLS0tLS0tLS0tLS0tLS0tLS0tLS0NCgkjIE1hZ2ljIG1ldGhvZHMNCgkjLS0tLS0tLS0tLS0tLS0tLS0tLS0tCQkNCgkNCglwdWJsaWMgZnVuY3Rpb24gX19jb25zdHJ1Y3QoTElTRUZpZWxkZGVmQmFzZSAmJGZpZWxkKQ0KCXsNCgkJcGFyZW50OjpfX2NvbnN0cnVjdCgkZmllbGQpOw0KCX0NCgkNCgkjLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQoJIyBEYXRhYmFzZSBtZXRob2RzDQoJIy0tLS0tLS0tLS0tLS0tLS0tLS0tLQkNCiAgDQogIC8qKg0KICAgKiBMSVNFIEZpZWxkIERhdGFiYXNlIFNhdmUgbWV0aG9kDQogICAqDQogICAqIEByZXR1cm4gdm9pZA0KICAgKiBAdGhyb3dzIFxMSVNFXEV4Y2VwdGlvbg0KICAgKiBAcGFja2FnZSAgIExJU0UNCiAgICogQHNpbmNlICAgICAxLjANCiAgICovDQoJcHVibGljIGZ1bmN0aW9uIE9uSXRlbVNhdmUoTElTRSAkbW9kKQ0KCXsNCgkJJGRiID0gY21zbXMoKS0+R2V0RGIoKTsNCgkJDQoJCSRtdWx0aV90eXBlcyA9IFsNCgkJICAnQ2hlY2tib3hHcm91cCcsDQoJCSAgJ011bHRpU2VsZWN0JywNCgkJICAnSlF1ZXJ5TXVsdGlTZWxlY3QnDQogICAgXTsNCgkJDQogICAgJHR5cGUgPSAkdGhpcy0+R2V0T3B0aW9uVmFsdWUoJ3N1YnR5cGUnLCAnRHJvcGRvd24nKTsNCg0KICAgICRtdWx0aSA9IGluX2FycmF5KCR0eXBlLCAkbXVsdGlfdHlwZXMpOw0KICAgIA0KICAgICRxdWVyeSAgPSAnREVMRVRFIEZST00gJyAuIGNtc19kYl9wcmVmaXgoKSAuICdtb2R1bGVfJyAuICRtb2QtPl9HZXRNb2R1bGVBbGlhcygpIC4gJ19pdGVtX2NhdGVnb3JpZXMgV0hFUkUgaXRlbV9pZCA9ID8nOw0KICAgICRyZXN1bHQgPSAkZGItPkV4ZWN1dGUoJHF1ZXJ5LCBhcnJheSgkdGhpcy0+R2V0UGFyZW50SXRlbSgpLT5pdGVtX2lkKSk7DQoNCiAgICBpZigkbXVsdGkpDQogICAgew0KICAgICAgJHZhbHVlcyA9IGFycmF5X3VuaXF1ZSggZXhwbG9kZSgnLCcsICR0aGlzLT5HZXRWYWx1ZSgpICkgKTsNCiAgICB9DQogICAgZWxzZQ0KICAgIHsNCiAgICAgICR2YWx1ZXMgPSBbJHRoaXMtPkdldFZhbHVlKCldOw0KICAgIH0NCiAgICANCiAgICANCgkJJHF1ZXJ5ICA9ICdJTlNFUlQgSU5UTyAnIC4gY21zX2RiX3ByZWZpeCgpIC4gJ21vZHVsZV8nIC4gJG1vZC0+X0dldE1vZHVsZUFsaWFzKCkgLiAnX2l0ZW1fY2F0ZWdvcmllcyAoaXRlbV9pZCwgY2F0ZWdvcnlfaWQpIFZBTFVFUyAoPyw/KSc7DQoJCQ0KCQlpZiggY291bnQoJHZhbHVlcykgKQ0KCQl7DQoJCQlmb3JlYWNoKCR2YWx1ZXMgYXMgJGNhdGVnb3J5X2lkKQ0KICAgICAgew0KICAgICAgICAkY2F0ZWdvcnlfaWQgPSBlbXB0eSgkY2F0ZWdvcnlfaWQpID8gLTEgOiAkY2F0ZWdvcnlfaWQ7DQoJCQkJJHJlc3VsdCA9ICRkYi0+RXhlY3V0ZSgkcXVlcnksIGFycmF5KCR0aGlzLT5HZXRQYXJlbnRJdGVtKCktPml0ZW1faWQsICRjYXRlZ29yeV9pZCkpOw0KDQogICAgICAgIGlmKCEkcmVzdWx0KQ0KICAgICAgICB7DQogICAgICAgICAgdGhyb3cgbmV3IFxMSVNFXEV4Y2VwdGlvbigNCiAgICAgICAgICAgICRkYi0+RXJyb3JObygpIC4gJyAtICcgLiAkZGItPkVycm9yTXNnKCkgLiAnIC0gUXVlcnk6ICcgLiAkZGItPnNxbCwgXExJU0VcRXJyb3I6OkRJU0NSRVRFX0RCDQogICAgICAgICAgKTsNCiAgICAgICAgfQ0KCQkJfQ0KCQl9DQoJfQ0KCQ0KCS8qKg0KCSAqIExJU0UgRmllbGQgRGF0YWJhc2UgTG9hZCBtZXRob2QNCgkgKg0KCSAqIEBwYWNrYWdlIExJU0UNCgkgKiBAc2luY2UgMS4wDQoJICogQHJldHVybiB2b2lkDQoJICovCQkNCglwdWJsaWMgZnVuY3Rpb24gT25JdGVtTG9hZChMSVNFICYkbW9kKQ0KCXsNCgkJJGRiID0gY21zbXMoKS0+R2V0RGIoKTsNCgkNCgkJJHF1ZXJ5ID0gJ1NFTEVDVCBCLmNhdGVnb3J5X2lkIEZST00gJyAuIGNtc19kYl9wcmVmaXgoKSAuICdtb2R1bGVfJyAuICRtb2QtPl9HZXRNb2R1bGVBbGlhcygpIC4gJ19jYXRlZ29yeSBCIA0KCQkJCQlMRUZUIEpPSU4gJyAuIGNtc19kYl9wcmVmaXgoKSAuICdtb2R1bGVfJyAuICRtb2QtPl9HZXRNb2R1bGVBbGlhcygpIC4gJ19pdGVtX2NhdGVnb3JpZXMgSUIgDQoJCQkJCU9OIEIuY2F0ZWdvcnlfaWQgPSBJQi5jYXRlZ29yeV9pZCANCgkJCQkJV0hFUkUgSUIuaXRlbV9pZCA9ID8gDQoJCQkJCUFORCBCLmFjdGl2ZSA9IDEnOwkJCQ0KCQkNCgkJJHRoaXMtPlNldFZhbHVlKCRkYi0+R2V0Q29sKCRxdWVyeSwgYXJyYXkoJHRoaXMtPkdldFBhcmVudEl0ZW0oKS0+aXRlbV9pZCkpKTsNCgl9CQ0KCQ0KfSAvLyBlbmQgb2YgY2xhc3MNCg0KPz4=]]></data>
	</file>
	<file>
	  <filename>/lib/fielddefs/Categories/lisefd.Categories.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHANCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQojIExJU0UgLSBMaXN0IEl0IFNwZWNpYWwgRWRpdGlvbg0KIyBWZXJzaW9uIDEuMg0KIyBBIGZvcmsgb2YgTGlzdEkyDQojIG1haW50YWluZWQgYnkgRmVybmFuZG8gTW9yZ2FkbyBBS0EgSm8gTW9yZw0KIyBzaW5jZSAyMDE1DQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIw0KIyBPcmlnaW5hbCBBdXRob3I6IEJlbiBNYWxlbiwgPGJlbkBjb25jZXB0ZmFjdG9yeS5jb20uYXU+DQojIENvLU1haW50YWluZXI6IFNpbW9uIFJhZGZvcmQsIDxzaW1vbkBjb25jZXB0ZmFjdG9yeS5jb20uYXU+DQojIFdlYjogd3d3LmNvbmNlcHRmYWN0b3J5LmNvbS5hdQ0KIw0KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCiMNCiMgTWFpbnRhaW5lciBzaW5jZSAyMDExIHVwIHRvIDIwMTQ6IEpvbmF0aGFuIFNjaG1pZCwgPGhpQGpvbmF0aGFuc2NobWlkLmRlPg0KIyBXZWI6IHd3dy5qb25hdGhhbnNjaG1pZC5kZQ0KIw0KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCiMNCiMgU29tZSB3YWNrb3Mgc3RhcnRlZCBkZXN0cm95aW5nIHN0dWZmIHNpbmNlIDIwMTIgYW5kIHN0b3BwZWQgYXQgMjAxNDoNCiMNCiMgVGFwaW8gTMO2eXR0eSwgPHRhcHNhQG9yYW5nZS1tZWRpYS5maT4NCiMgV2ViOiB3d3cub3JhbmdlLW1lZGlhLmZpDQojDQojIEdvcmFuIElsaWMsIDx1bmlxdTNlQGdtYWlsLmNvbT4NCiMgV2ViOiB3d3cuaWNoLW1hY2gtZGFzLmF0DQojDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIw0KIyBMSVNFIGlzIGEgQ01TIE1hZGUgU2ltcGxlIG1vZHVsZSB0aGF0IGVuYWJsZXMgdGhlIHdlYiBkZXZlbG9wZXIgdG8gY3JlYXRlDQojIG11bHRpcGxlIGxpc3RzIHRocm91Z2hvdXQgYSBzaXRlLiBJdCBjYW4gYmUgZHVwbGljYXRlZCBhbmQgZ2l2ZW4gZnJpZW5kbHkNCiMgbmFtZXMgZm9yIGVhc2llciBjbGllbnQgbWFpbnRlbmFuY2UuDQojDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIyBCRUdJTl9MSUNFTlNFDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIyBUaGlzIGZpbGUgaXMgcGFydCBvZiBMSVNFDQojIExJU0UgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5DQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5DQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yDQojIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uDQojDQojIExJU0UgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLA0KIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZg0KIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlDQojIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuDQojIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlDQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlDQojIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcgVVNBDQojIE9yIHJlYWQgaXQgb25saW5lOiBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwNCiMNCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQojIEVORF9MSUNFTlNFDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KY2xhc3MgbGlzZWZkX0NhdGVnb3JpZXMgZXh0ZW5kcyBMSVNFRmllbGRkZWZCYXNlDQp7DQoJcHVibGljIGZ1bmN0aW9uIF9fY29uc3RydWN0KCYkZGJfaW5mbywgJGNhbGxlcl9vYmplY3QpIA0KCXsJDQoJCXBhcmVudDo6X19jb25zdHJ1Y3QoJGRiX2luZm8sICRjYWxsZXJfb2JqZWN0KTsNCgkJDQoJCSR0aGlzLT5TZXRGcmllbmRseVR5cGUoJHRoaXMtPk1vZExhbmcoJ2NhdGVnb3JpZXMnKSk7DQoJfQ0KCQ0KCXB1YmxpYyBmdW5jdGlvbiBJc1VuaXF1ZSgpDQoJew0KCQlyZXR1cm4gdHJ1ZTsNCgl9DQoJDQoJcHVibGljIGZ1bmN0aW9uIFJlbmRlcklucHV0KCRpZCwgJHJldHVybmlkKQ0KCXsNCgkJJHR5cGUgPSAkdGhpcy0+R2V0T3B0aW9uVmFsdWUoJ3N1YnR5cGUnLCAnRHJvcGRvd24nKTsNCgkJJG9iaiA9IExJU0VGaWVsZGRlZk9wZXJhdGlvbnM6OkxvYWRGaWVsZGRlZkJ5VHlwZSgkdHlwZSk7DQoJCQ0KCQlpZihpc19vYmplY3QoJG9iaikpDQoJCQlyZXR1cm4gJG9iai0+UmVuZGVySW5wdXQoJGlkLCAkcmV0dXJuaWQpOw0KCQkJDQoJCXJldHVybiBmYWxzZTsNCgl9DQoJDQoJcHVibGljIGZ1bmN0aW9uIFJlbmRlckZvckFkbWluTGlzdGluZygkaWQsICRyZXR1cm5pZCkNCgl7DQoJCSRtb2QgPSAkdGhpcy0+R2V0TW9kdWxlSW5zdGFuY2UodHJ1ZSk7DQoJCSRpZF9saXN0ID0gJHRoaXMtPkdldFZhbHVlKHBhcmVudDo6VFlQRV9BUlJBWSk7DQoJCQ0KCQkkb3V0cHV0ID0gTElTRUNhdGVnb3J5T3BlcmF0aW9uczo6R2V0Q2F0ZWdvcnlOYW1lRnJvbUlkKCRtb2QsICRpZF9saXN0KTsNCgkJDQoJCXJldHVybiBpbXBsb2RlKCcsICcsICRvdXRwdXQpOw0KCX0JDQoJDQoJcHVibGljIGZ1bmN0aW9uIEdldE9wdGlvbnMoKQ0KCXsJCQkNCgkJJG1vZCA9ICR0aGlzLT5HZXRNb2R1bGVJbnN0YW5jZSh0cnVlKTsNCgkJJHR5cGUgPSAkdGhpcy0+R2V0T3B0aW9uVmFsdWUoJ3N1YnR5cGUnLCAnRHJvcGRvd24nKTsNCgkJJGNhdGVnb3JpZXMgPSBMSVNFQ2F0ZWdvcnlPcGVyYXRpb25zOjpHZXRIaWVyYXJjaHlMaXN0KCRtb2QpOw0KDQoJCWlmKCR0eXBlID09ICdNdWx0aVNlbGVjdCcgfHwgJHR5cGUgPT0gJ0NoZWNrYm94R3JvdXAnfHwgJHR5cGUgPT0gJ0pRdWVyeU11bHRpU2VsZWN0JyB8fCAkdGhpcy0+SXNSZXF1aXJlZCgpKQ0KCQkJYXJyYXlfc2hpZnQoJGNhdGVnb3JpZXMpOw0KDQoJCXJldHVybiBhcnJheV9mbGlwKCRjYXRlZ29yaWVzKTsNCgl9DQoNCglwdWJsaWMgZnVuY3Rpb24gU3ViVHlwZXMoKQ0KCXsNCiAgICAgICAgcmV0dXJuIGFycmF5KA0KICAgICAgICAgICAgICAgICAgICAgICdEcm9wZG93bicgPT4gJHRoaXMtPk1vZExhbmcoJ2ZpZWxkZGVmX0Ryb3Bkb3duJyksDQogICAgICAgICAgICAgICAgICAgICAgJ011bHRpU2VsZWN0JyA9PiAkdGhpcy0+TW9kTGFuZygnZmllbGRkZWZfTXVsdGlTZWxlY3QnKSwNCiAgICAgICAgICAgICAgICAgICAgICAnUmFkaW9Hcm91cCcgPT4gJHRoaXMtPk1vZExhbmcoJ2ZpZWxkZGVmX1JhZGlvR3JvdXAnKSwNCiAgICAgICAgICAgICAgICAgICAgICAnQ2hlY2tib3hHcm91cCcgPT4gJHRoaXMtPk1vZExhbmcoJ2ZpZWxkZGVmX0NoZWNrYm94R3JvdXAnKSwNCiAgICAgICAgICAgICAgICAgICAgICAnSlF1ZXJ5TXVsdGlTZWxlY3QnID0+ICR0aGlzLT5Nb2RMYW5nKCdmaWVsZGRlZl9KUXVlcnlNdWx0aVNlbGVjdCcpDQogICAgICAgICAgICAgICAgICAgICk7DQoJfQ0KCQ0KCXB1YmxpYyBmdW5jdGlvbiBTZXBhcmF0b3IoKQ0KCXsNCgkJcmV0dXJuICR0aGlzLT5HZXRPcHRpb25WYWx1ZSgnc2VwYXJhdG9yJyk7CQ0KCX0JDQoNCn0gLy8gZW5kIG9mIGNsYXNzDQo/Pg==]]></data>
	</file>
	<file>
	  <filename>/lib/fielddefs/Categories/list.Categories.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[e2ltcGxvZGUoJywgJywgJHZhbHVlKX0=]]></data>
	</file>
	<file>
	  <filename>/lib/fielddefs/Categories/output.Categories.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[e0xJU0VMb2FkZXIgaXRlbT0nY2F0ZWdvcnknIGZvcmNlX2FycmF5PTEgdmFsdWU9JGZpZWxkZGVmLnZhbHVlIGFzc2lnbj0nY2F0cyd9CnskZmllbGRkZWYubmFtZX06IHtpbXBsb2RlKCcsJywgJGNhdHMpfQ==]]></data>
	</file>
	<file>
	  <filename>/lib/fielddefs/Checkbox</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/lib/fielddefs/Checkbox/help.Checkbox.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PGJ1dHRvbiBjbGFzcz0iYWNjb3JkaW9uIj48c3Ryb25nPnskZmllbGRkZWYtPkdldEZyaWVuZGx5VHlwZSgpfTwvc3Ryb25nPjwvYnV0dG9uPgoKPGRpdiBjbGFzcz0iYWNjcGFuZWwiPgoKCTxoND5XaGF0IGRvZXMgaXQgZG8/PC9oND4KCgk8cD5UaGlzIGZpZWxkIGRlZmluaXRpb24gY2FuIGJlIHVzZWQgdG8gYWRkIGEgPHN0cm9uZz5DaGVja2JveDwvc3Ryb25nPiB0byBhIExJU0UgaXRlbS4gWW91IGNhbiB1c2UgdGhlIDxzdHJvbmc+Q2hlY2tib3g8L3N0cm9uZz4gaW4gZXhhbXBsZSB0byBmaWx0ZXIgZnJvbnRlbmQgdmlld3Mgb3IgY2hhbmdlIHN0eWxpbmcuPC9wPgoKPC9kaXY+]]></data>
	</file>
	<file>
	  <filename>/lib/fielddefs/Checkbox/index.html</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PCEtLSBEVU1NWSBIVE1MIEZJTEUgLS0+]]></data>
	</file>
	<file>
	  <filename>/lib/fielddefs/Checkbox/input.Checkbox.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KCTxwIGNsYXNzPSJwYWdldGV4dCI+eyRmaWVsZGRlZi0+R2V0TmFtZSgpfXtpZiAkZmllbGRkZWYtPklzUmVxdWlyZWQoKX0qey9pZn06PC9wPgoJPHAgY2xhc3M9InBhZ2VpbnB1dCI+CgkJe2lmICRmaWVsZGRlZi0+R2V0RGVzYygpfSh7JGZpZWxkZGVmLT5HZXREZXNjKCl9KTxiciAvPnsvaWZ9CgkJPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0ieyRhY3Rpb25pZH1jdXN0b21maWVsZFt7JGZpZWxkZGVmLT5HZXRJZCgpfV0iIHZhbHVlPSIwIiAvPgoJCTxpbnB1dCB0eXBlPSJjaGVja2JveCIgbmFtZT0ieyRhY3Rpb25pZH1jdXN0b21maWVsZFt7JGZpZWxkZGVmLT5HZXRJZCgpfV0iIHZhbHVlPSIxIntpZiAkZmllbGRkZWYtPkdldFZhbHVlKCJzdHJpbmciKX0gY2hlY2tlZD0iY2hlY2tlZCJ7L2lmfSAvPgkJCgk8L3A+CjwvZGl2Pg==]]></data>
	</file>
	<file>
	  <filename>/lib/fielddefs/Checkbox/lisefd.Checkbox.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHANCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQojIExJU0UgLSBMaXN0IEl0IFNwZWNpYWwgRWRpdGlvbg0KIyBWZXJzaW9uIDEuMg0KIyBBIGZvcmsgb2YgTGlzdEkyDQojIG1haW50YWluZWQgYnkgRmVybmFuZG8gTW9yZ2FkbyBBS0EgSm8gTW9yZw0KIyBzaW5jZSAyMDE1DQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIw0KIyBPcmlnaW5hbCBBdXRob3I6IEJlbiBNYWxlbiwgPGJlbkBjb25jZXB0ZmFjdG9yeS5jb20uYXU+DQojIENvLU1haW50YWluZXI6IFNpbW9uIFJhZGZvcmQsIDxzaW1vbkBjb25jZXB0ZmFjdG9yeS5jb20uYXU+DQojIFdlYjogd3d3LmNvbmNlcHRmYWN0b3J5LmNvbS5hdQ0KIw0KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCiMNCiMgTWFpbnRhaW5lciBzaW5jZSAyMDExIHVwIHRvIDIwMTQ6IEpvbmF0aGFuIFNjaG1pZCwgPGhpQGpvbmF0aGFuc2NobWlkLmRlPg0KIyBXZWI6IHd3dy5qb25hdGhhbnNjaG1pZC5kZQ0KIw0KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCiMNCiMgU29tZSB3YWNrb3Mgc3RhcnRlZCBkZXN0cm95aW5nIHN0dWZmIHNpbmNlIDIwMTIgYW5kIHN0b3BwZWQgYXQgMjAxNDoNCiMNCiMgVGFwaW8gTMO2eXR0eSwgPHRhcHNhQG9yYW5nZS1tZWRpYS5maT4NCiMgV2ViOiB3d3cub3JhbmdlLW1lZGlhLmZpDQojDQojIEdvcmFuIElsaWMsIDx1bmlxdTNlQGdtYWlsLmNvbT4NCiMgV2ViOiB3d3cuaWNoLW1hY2gtZGFzLmF0DQojDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIw0KIyBMSVNFIGlzIGEgQ01TIE1hZGUgU2ltcGxlIG1vZHVsZSB0aGF0IGVuYWJsZXMgdGhlIHdlYiBkZXZlbG9wZXIgdG8gY3JlYXRlDQojIG11bHRpcGxlIGxpc3RzIHRocm91Z2hvdXQgYSBzaXRlLiBJdCBjYW4gYmUgZHVwbGljYXRlZCBhbmQgZ2l2ZW4gZnJpZW5kbHkNCiMgbmFtZXMgZm9yIGVhc2llciBjbGllbnQgbWFpbnRlbmFuY2UuDQojDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIyBCRUdJTl9MSUNFTlNFDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIyBUaGlzIGZpbGUgaXMgcGFydCBvZiBMSVNFDQojIExJU0UgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5DQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5DQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yDQojIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uDQojDQojIExJU0UgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLA0KIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZg0KIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlDQojIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuDQojIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlDQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlDQojIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcgVVNBDQojIE9yIHJlYWQgaXQgb25saW5lOiBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwNCiMNCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQojIEVORF9MSUNFTlNFDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KY2xhc3MgbGlzZWZkX0NoZWNrYm94IGV4dGVuZHMgTElTRUZpZWxkZGVmQmFzZQ0Kew0KCXB1YmxpYyBmdW5jdGlvbiBfX2NvbnN0cnVjdCgmJGRiX2luZm8sICRjYWxsZXJfb2JqZWN0KSANCgl7CQ0KCQlwYXJlbnQ6Ol9fY29uc3RydWN0KCRkYl9pbmZvLCAkY2FsbGVyX29iamVjdCk7DQoJCQ0KCQkkdGhpcy0+U2V0RnJpZW5kbHlUeXBlKCR0aGlzLT5Nb2RMYW5nKCdmaWVsZGRlZl8nLiR0aGlzLT5HZXRUeXBlKCkpKTsNCgl9DQoJDQoJcHVibGljIGZ1bmN0aW9uIFZhbGlkYXRlKCYkZXJyb3JzKTogdm9pZA0KCXsNCgkJaWYoJHRoaXMtPkdldFZhbHVlKCJzdHJpbmciKSA9PSAwICYmICR0aGlzLT5Jc1JlcXVpcmVkKCkpIHsNCgkNCgkJCSRlcnJvcnNbXSA9ICR0aGlzLT5Nb2RMYW5nKCdyZXF1aXJlZF9maWVsZF9lbXB0eScpIC4gJyAoJyAuICR0aGlzLT5HZXROYW1lKCkgLiAnKSc7DQoJCX0NCgl9DQoNCglwdWJsaWMgZnVuY3Rpb24gUmVuZGVyRm9yQWRtaW5MaXN0aW5nKCRpZCwgJHJldHVybmlkKQ0KCXsNCgkNCgkJJG91dHB1dCA9ICc8ZGl2IGNsYXNzPSJpbml0LWFqYXgtdG9nZ2xlIj4nOw0KCQ0KCQkkYWRtaW50aGVtZSA9IGNtc191dGlsczo6Z2V0X3RoZW1lX29iamVjdCgpOwkNCgkJJG1vZCA9ICR0aGlzLT5HZXRNb2R1bGVJbnN0YW5jZSh0cnVlKTsNCgkNCgkJaWYgKCR0aGlzLT5HZXRWYWx1ZSgic3RyaW5nIikpIHsNCg0KCQkJJG91dHB1dCAuPSAkbW9kLT5DcmVhdGVMaW5rKCRpZCwgJ2FkbWluX3RvZ2dsZWZpZWxkZGVmdmFsdWUnLCAkcmV0dXJuaWQsICRhZG1pbnRoZW1lLT5EaXNwbGF5SW1hZ2UoJ2ljb25zL3N5c3RlbS90cnVlLmdpZicsICcnLCAnJywgJycsICdzeXN0ZW1pY29uJyksIGFycmF5KA0KCQkJCSdmaWVsZGRlZl9pZCcgPT4gJHRoaXMtPkdldElkKCksDQoJCQkJJ2l0ZW1faWQnID0+ICR0aGlzLT5HZXRJdGVtSWQoKSwNCgkJCQkndmFsdWUnID0+IDANCgkJCSkpOwkJDQoJCX0gDQoJCWVsc2Ugew0KCQkNCgkJCSRvdXRwdXQgLj0gJG1vZC0+Q3JlYXRlTGluaygkaWQsICdhZG1pbl90b2dnbGVmaWVsZGRlZnZhbHVlJywgJHJldHVybmlkLCAkYWRtaW50aGVtZS0+RGlzcGxheUltYWdlKCdpY29ucy9zeXN0ZW0vZmFsc2UuZ2lmJywgJycsICcnLCAnJywgJ3N5c3RlbWljb24nKSwgYXJyYXkoDQoJCQkJJ2ZpZWxkZGVmX2lkJyA9PiAkdGhpcy0+R2V0SWQoKSwNCgkJCQknaXRlbV9pZCcgPT4gJHRoaXMtPkdldEl0ZW1JZCgpLA0KCQkJCSd2YWx1ZScgPT4gMQ0KCQkJKSk7CQ0KCQl9CQ0KCQkNCgkJJG91dHB1dCAuPSAnPC9kaXY+JzsNCgkJDQoJCXJldHVybiAkb3V0cHV0Ow0KCX0JDQoJDQp9IC8vIGVuZCBvZiBjbGFzcw0KPz4=]]></data>
	</file>
	<file>
	  <filename>/lib/fielddefs/Checkbox/list.Checkbox.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[eyoga2VlcCB0aGUgZGl2IGFsb25nIHdpdGggaXQncyBjbGFzcyB0byBrZWVwIEFKQVggY2xpY2sqfQ0KPGRpdiBjbGFzcz0iaW5pdC1hamF4LXRvZ2dsZSI+DQogIHskdmFsdWV9DQo8L2Rpdj4=]]></data>
	</file>
	<file>
	  <filename>/lib/fielddefs/Checkbox/output.Checkbox.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[eyRmaWVsZGRlZi5uYW1lfTogeyRmaWVsZGRlZi52YWx1ZX0=]]></data>
	</file>
	<file>
	  <filename>/lib/fielddefs/CheckboxGroup</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/lib/fielddefs/CheckboxGroup/admin.CheckboxGroup.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PGZpZWxkc2V0PgogIDxsZWdlbmQ+eyRmaWVsZGRlZi0+TW9kTGFuZygnb3B0aW9ucycpfTwvbGVnZW5kPgogIDxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CiAgICA8cCBjbGFzcz0icGFnZXRleHQiPnskZmllbGRkZWYtPk1vZExhbmcoJ29wdGlvbnMnKX06PC9wPgogICAgPHAgY2xhc3M9InBhZ2VpbnB1dCI+CiAgICAgIDx0ZXh0YXJlYSBuYW1lPSJ7JGFjdGlvbmlkfWN1c3RvbV9pbnB1dFtvcHRpb25zXSI+eyRmaWVsZGRlZi0+R2V0T3B0aW9uVmFsdWUoJ29wdGlvbnMnKX08L3RleHRhcmVhPgogICAgPC9wPgogICAgPHAgY2xhc3M9InBhZ2V0ZXh0Ij48ZGl2IGNsYXNzPSJpbmZvcm1hdGlvbiI+eyRmaWVsZGRlZi0+TW9kTGFuZygnZmllbGRkZWZfbXVsdGlvcHRpb25zX2hlbHAnKX08L2Rpdj48L3A+CiAgPC9kaXY+CiAgPGhyPgogIDxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CQogICAgPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JGZpZWxkZGVmLT5Nb2RMYW5nKCdzZXBhcmF0b3InKX06PC9wPgogICAgPHAgY2xhc3M9InBhZ2VpbnB1dCI+CiAgICAgIDxpbnB1dCB0eXBlPSJ0ZXh0IiBuYW1lPSJ7JGFjdGlvbmlkfWN1c3RvbV9pbnB1dFtzZXBhcmF0b3JdIiB2YWx1ZT0ieyRmaWVsZGRlZi0+R2V0T3B0aW9uVmFsdWUoJ3NlcGFyYXRvcicpfSIgLz4KICAgIDwvcD4KICAgIDxwIGNsYXNzPSJwYWdldGV4dCI+PGRpdiBjbGFzcz0iaW5mb3JtYXRpb24iPnskZmllbGRkZWYtPk1vZExhbmcoJ2ZpZWxkZGVmX3NlcGFyYXRvcl9oZWxwJyl9PC9kaXY+PC9wPgkKICA8L2Rpdj4KICA8aHI+CiAgPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4JCiAgICA8cCBjbGFzcz0icGFnZXRleHQiPnskZmllbGRkZWYtPk1vZExhbmcoJ2NvbHVtbnMnKX06PC9wPgogICAgPHAgY2xhc3M9InBhZ2VpbnB1dCI+CiAgICAgIDxpbnB1dCB0eXBlPSJ0ZXh0IiBuYW1lPSJ7JGFjdGlvbmlkfWN1c3RvbV9pbnB1dFtjb2x1bW5zXSIgdmFsdWU9InskZmllbGRkZWYtPkdldE9wdGlvblZhbHVlKCdjb2x1bW5zJywgMSl9IiAvPgogICAgPC9wPgkKICAgIDxwIGNsYXNzPSJwYWdldGV4dCI+PGRpdiBjbGFzcz0iaW5mb3JtYXRpb24iPnskZmllbGRkZWYtPk1vZExhbmcoJ2ZpZWxkZGVmX2NvbHVtbnNfaGVscCcpfTwvZGl2PjwvcD4KICA8L2Rpdj4KICA8aHI+CiAgPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4JCiAgICA8cCBjbGFzcz0icGFnZXRleHQiPnskZmllbGRkZWYtPk1vZExhbmcoJ2VuYWJsZV9qcXVpJyl9OjwvcD4KICAgIDxwIGNsYXNzPSJwYWdlaW5wdXQiPgogICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJ7JGFjdGlvbmlkfWN1c3RvbV9pbnB1dFtqcXVpX2J1dHRvbnNdIiB2YWx1ZT0iMCIgLz4KICAgICAgPGlucHV0IHR5cGU9ImNoZWNrYm94IiBuYW1lPSJ7JGFjdGlvbmlkfWN1c3RvbV9pbnB1dFtqcXVpX2J1dHRvbnNdIiB2YWx1ZT0iMSJ7aWYgJGZpZWxkZGVmLT5HZXRPcHRpb25WYWx1ZSgnanF1aV9idXR0b25zJykgPT0gMX0gY2hlY2tlZD0iY2hlY2tlZCJ7L2lmfSAvPgogICAgPC9wPgogICAgPHAgY2xhc3M9InBhZ2V0ZXh0Ij48ZGl2IGNsYXNzPSJpbmZvcm1hdGlvbiI+eyRmaWVsZGRlZi0+TW9kTGFuZygnZmllbGRkZWZfZW5hYmxlX2pxdWlfaGVscCcpfTwvZGl2PjwvcD4JCiAgPC9kaXY+CjwvZmllbGRzZXQ+]]></data>
	</file>
	<file>
	  <filename>/lib/fielddefs/CheckboxGroup/help.CheckboxGroup.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PGJ1dHRvbiBjbGFzcz0iYWNjb3JkaW9uIj48c3Ryb25nPnskZmllbGRkZWYtPkdldEZyaWVuZGx5VHlwZSgpfTwvc3Ryb25nPjwvYnV0dG9uPgoKPGRpdiBjbGFzcz0iYWNjcGFuZWwiPgoKCTxoND5XaGF0IGRvZXMgaXQgZG8/PC9oND4KCQoJPHA+VGhpcyBmaWVsZCBkZWZpbml0aW9uIGNhbiBiZSB1c2VkIHRvIGFkZCBhIDxzdHJvbmc+Q2hlY2tib3ggR3JvdXA8L3N0cm9uZz4gdG8gYSBMSVNFIGl0ZW0uPC9wPgoKCTxwPlRPRE88L3A+CgoKCTxoND5Ib3cgZG8gSSB1c2UgaXQ/PC9oND4KCgk8cD5UT0RPPC9wPgoKCTxwPlRoZSBzZXR0aW5ncyBmb3IgdGhpcyBmaWVsZCBhcmU6PC9wPgoKCTx1bD4KCQk8bGk+PGI+T3B0aW9uczwvYj48L2xpPgoJCTxsaT48Yj5TZXBhcmF0b3I8L2I+PC9saT4KCQk8bGk+PGI+Q29sdW1uczwvYj48L2xpPgoJCTxsaT48Yj5Vc2UgalF1ZXJ5VUkgQnV0dG9uczwvYj48L2xpPgoJPC91bD4KCjwvZGl2Pg==]]></data>
	</file>
	<file>
	  <filename>/lib/fielddefs/CheckboxGroup/index.html</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PCEtLSBEVU1NWSBIVE1MIEZJTEUgLS0+]]></data>
	</file>
	<file>
	  <filename>/lib/fielddefs/CheckboxGroup/input.CheckboxGroup.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4NCgk8cCBjbGFzcz0icGFnZXRleHQiPnskZmllbGRkZWYtPkdldE5hbWUoKX17aWYgJGZpZWxkZGVmLT5Jc1JlcXVpcmVkKCl9KnsvaWZ9OjwvcD4NCgk8ZGl2IGNsYXNzPSJwYWdlaW5wdXQiPg0KCQl7aWYgJGZpZWxkZGVmLT5HZXREZXNjKCl9KHskZmllbGRkZWYtPkdldERlc2MoKX0pPGJyIC8+ey9pZn0NCgkJPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0ieyRhY3Rpb25pZH1jdXN0b21maWVsZFt7JGZpZWxkZGVmLT5HZXRJZCgpfV0iIHZhbHVlPSIiIC8+DQoJCQ0KCQl7aWYgJGZpZWxkZGVmLT5HZXRPcHRpb25WYWx1ZSgnanF1aV9idXR0b25zJykgPT0gJzEnfQ0KCQk8ZGl2IGNsYXNzPSJsaXNlLWNoZWNrYm94LWJ1dHRvbnMiIGlkPSJ7JGFjdGlvbmlkfWN1c3RvbWZpZWxkeyRmaWVsZGRlZi0+R2V0SWQoKX0tY2hlY2tib3hlcyI+DQoJCXtmb3JlYWNoICRmaWVsZGRlZi0+R2V0T3B0aW9ucygpIGFzICR2YWx1ZSA9PiAkb3B0aW9ufQ0KCQkJPGlucHV0IHR5cGU9ImNoZWNrYm94IiBuYW1lPSJ7JGFjdGlvbmlkfWN1c3RvbWZpZWxkW3skZmllbGRkZWYtPkdldElkKCl9XVtdIiBpZD0ieyRhY3Rpb25pZH1jdXN0b21maWVsZFt7JGZpZWxkZGVmLT5HZXRJZCgpfV17JG9wdGlvbkBpdGVyYXRpb259IiB2YWx1ZT0ieyR2YWx1ZX0ie2lmIGluX2FycmF5KCR2YWx1ZSwgJGZpZWxkZGVmLT5HZXRWYWx1ZSgiYXJyYXkiKSl9IGNoZWNrZWQ9ImNoZWNrZWQiey9pZn0gLz4NCgkJCTxsYWJlbCBmb3I9InskYWN0aW9uaWR9Y3VzdG9tZmllbGRbeyRmaWVsZGRlZi0+R2V0SWQoKX1deyRvcHRpb25AaXRlcmF0aW9ufSI+eyRvcHRpb259PC9sYWJlbD4NCgkJey9mb3JlYWNofQ0KCQk8L2Rpdj4NCgkJDQoJCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4NCgkJalF1ZXJ5KGRvY3VtZW50KS5yZWFkeShmdW5jdGlvbigkKSB7DQoJCQkkKCIjeyRhY3Rpb25pZH1jdXN0b21maWVsZHskZmllbGRkZWYtPkdldElkKCl9LWNoZWNrYm94ZXMiKS5idXR0b25zZXQoKTsJDQoJCX0pOw0KCQk8L3NjcmlwdD4NCgkJDQoJCXtlbHNlfQ0KCQkNCgkJe2h0bWxfY2hlY2tib3hlcyBuYW1lPSJgJGFjdGlvbmlkYGN1c3RvbWZpZWxkW2AkZmllbGRkZWYtPkdldElkKClgXSIgb3B0aW9ucz0kZmllbGRkZWYtPkdldE9wdGlvbnMoKSBzZWxlY3RlZD0kZmllbGRkZWYtPkdldFZhbHVlKCJhcnJheSIpIHNlcGFyYXRvcj0kZmllbGRkZWYtPlNlcGFyYXRvcigpIGFzc2lnbj0nbGlzZWJveGVzJ30NCgkJe21hdGggZXF1YXRpb249J3gveScgeD0kbGlzZWJveGVzfGNvdW50IHk9JGZpZWxkZGVmLT5HZXRPcHRpb25WYWx1ZSgnY29sdW1ucycsIDEpIGFzc2lnbj0nY291bnRlcid9DQoNCgkJPHVsIGNsYXNzPSJsaXNlLWNvbHVtbi1saXN0Ij4NCgkJe2ZvcmVhY2ggZnJvbT0kbGlzZWJveGVzIGl0ZW09J2JveCd9DQoJCQl7aWYgJGJveEBmaXJzdH08bGk+e2Vsc2VpZiAkYm94QGluZGV4ICUgJGNvdW50ZXJ8Y2VpbCA9PSAwfTwvbGk+PGxpPnsvaWZ9DQoJCQl7JGJveH0NCgkJCXtpZiAkYm94QGxhc3R9PC9saT57L2lmfQ0KCQl7L2ZvcmVhY2h9DQoJCTwvdWw+DQoJCQ0KCQl7L2lmfQ0KCTwvZGl2Pg0KPC9kaXY+]]></data>
	</file>
	<file>
	  <filename>/lib/fielddefs/CheckboxGroup/lisefd.CheckboxGroup.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHANCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQojIExJU0UgLSBMaXN0IEl0IFNwZWNpYWwgRWRpdGlvbg0KIyBWZXJzaW9uIDEuMg0KIyBBIGZvcmsgb2YgTGlzdEkyDQojIG1haW50YWluZWQgYnkgRmVybmFuZG8gTW9yZ2FkbyBBS0EgSm8gTW9yZw0KIyBzaW5jZSAyMDE1DQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIw0KIyBPcmlnaW5hbCBBdXRob3I6IEJlbiBNYWxlbiwgPGJlbkBjb25jZXB0ZmFjdG9yeS5jb20uYXU+DQojIENvLU1haW50YWluZXI6IFNpbW9uIFJhZGZvcmQsIDxzaW1vbkBjb25jZXB0ZmFjdG9yeS5jb20uYXU+DQojIFdlYjogd3d3LmNvbmNlcHRmYWN0b3J5LmNvbS5hdQ0KIw0KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCiMNCiMgTWFpbnRhaW5lciBzaW5jZSAyMDExIHVwIHRvIDIwMTQ6IEpvbmF0aGFuIFNjaG1pZCwgPGhpQGpvbmF0aGFuc2NobWlkLmRlPg0KIyBXZWI6IHd3dy5qb25hdGhhbnNjaG1pZC5kZQ0KIw0KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCiMNCiMgU29tZSB3YWNrb3Mgc3RhcnRlZCBkZXN0cm95aW5nIHN0dWZmIHNpbmNlIDIwMTIgYW5kIHN0b3BwZWQgYXQgMjAxNDoNCiMNCiMgVGFwaW8gTMO2eXR0eSwgPHRhcHNhQG9yYW5nZS1tZWRpYS5maT4NCiMgV2ViOiB3d3cub3JhbmdlLW1lZGlhLmZpDQojDQojIEdvcmFuIElsaWMsIDx1bmlxdTNlQGdtYWlsLmNvbT4NCiMgV2ViOiB3d3cuaWNoLW1hY2gtZGFzLmF0DQojDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIw0KIyBMSVNFIGlzIGEgQ01TIE1hZGUgU2ltcGxlIG1vZHVsZSB0aGF0IGVuYWJsZXMgdGhlIHdlYiBkZXZlbG9wZXIgdG8gY3JlYXRlDQojIG11bHRpcGxlIGxpc3RzIHRocm91Z2hvdXQgYSBzaXRlLiBJdCBjYW4gYmUgZHVwbGljYXRlZCBhbmQgZ2l2ZW4gZnJpZW5kbHkNCiMgbmFtZXMgZm9yIGVhc2llciBjbGllbnQgbWFpbnRlbmFuY2UuDQojDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIyBCRUdJTl9MSUNFTlNFDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIyBUaGlzIGZpbGUgaXMgcGFydCBvZiBMSVNFDQojIExJU0UgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5DQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5DQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yDQojIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uDQojDQojIExJU0UgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLA0KIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZg0KIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlDQojIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuDQojIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlDQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlDQojIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcgVVNBDQojIE9yIHJlYWQgaXQgb25saW5lOiBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwNCiMNCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQojIEVORF9MSUNFTlNFDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KY2xhc3MgbGlzZWZkX0NoZWNrYm94R3JvdXAgZXh0ZW5kcyBMSVNFRmllbGRkZWZCYXNlDQp7DQoJcHVibGljIGZ1bmN0aW9uIF9fY29uc3RydWN0KCYkZGJfaW5mbykgDQoJewkNCgkJcGFyZW50OjpfX2NvbnN0cnVjdCgkZGJfaW5mbyk7DQoJCQ0KCQkkdGhpcy0+U2V0RnJpZW5kbHlUeXBlKCR0aGlzLT5Nb2RMYW5nKCdmaWVsZGRlZl8nLiR0aGlzLT5HZXRUeXBlKCkpKTsNCgl9DQoJDQoJcHVibGljIGZ1bmN0aW9uIEdldE9wdGlvbnMoKQ0KCXsNCgkJJG9wdGlvbnMgPSAkdGhpcy0+R2V0T3B0aW9uVmFsdWUoJ29wdGlvbnMnKTsNCgkJJGxpc3QgPSBleHBsb2RlKCJcbiIsICRvcHRpb25zKTsNCgkJDQoJCSRvcHRpb25zID0gYXJyYXkoKTsNCgkJZm9yZWFjaCgkbGlzdCBhcyAkb3B0aW9uKSB7DQoJCQ0KCQkJJG9wdGlvbiA9IGV4cGxvZGUoIj0iLCAkb3B0aW9uLCAyKTsNCgkJCWlmKGNvdW50KCRvcHRpb24pID4gMSkgew0KCQkJCSRvcHRpb25zW3RyaW0oJG9wdGlvblsxXSldID0gdHJpbSgkb3B0aW9uWzBdKTsNCgkJCX0gZWxzZSB7DQoJCQkJJG9wdGlvbnNbdHJpbSgkb3B0aW9uWzBdKV0gPSB0cmltKCRvcHRpb25bMF0pOw0KCQkJfQ0KCQl9DQoNCgkJcmV0dXJuICRvcHRpb25zOw0KCX0NCgkNCglwdWJsaWMgZnVuY3Rpb24gU2VwYXJhdG9yKCkNCgl7DQoJCXJldHVybiAkdGhpcy0+R2V0T3B0aW9uVmFsdWUoJ3NlcGFyYXRvcicpOwkNCgl9CQ0KCQkNCn0gLy8gZW5kIG9mIGNsYXNzDQo/Pg==]]></data>
	</file>
	<file>
	  <filename>/lib/fielddefs/CheckboxGroup/list.CheckboxGroup.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[eyR2YWx1ZSA9ICRmaWVsZGRlZi0+R2V0VmFsdWUoJ2FycmF5Jyl9IHtpbXBsb2RlKCcsICcsICR2YWx1ZSl9]]></data>
	</file>
	<file>
	  <filename>/lib/fielddefs/CheckboxGroup/output.CheckboxGroup.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[eyRmaWVsZGRlZi5uYW1lfToge2ltcGxvZGUoJywnLCAkZmllbGRkZWYudmFsdWUpfQ==]]></data>
	</file>
	<file>
	  <filename>/lib/fielddefs/ColorPicker</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/lib/fielddefs/ColorPicker/admin.ColorPicker.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PGZpZWxkc2V0PgogIDxsZWdlbmQ+eyRmaWVsZGRlZi0+TW9kTGFuZygnb3B0aW9ucycpfTwvbGVnZW5kPgogIDxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CiAgICA8cCBjbGFzcz0icGFnZXRleHQiPnskZmllbGRkZWYtPk1vZExhbmcoJ3NpemUnKX06PC9wPgogICAgPHAgY2xhc3M9InBhZ2VpbnB1dCI+CiAgICAgIDxpbnB1dCB0eXBlPSJ0ZXh0IiBuYW1lPSJ7JGFjdGlvbmlkfWN1c3RvbV9pbnB1dFtzaXplXSIgdmFsdWU9InskZmllbGRkZWYtPkdldE9wdGlvblZhbHVlKCdzaXplJywgMjApfSIgLz4KICAgIDwvcD4KICAgIDxwIGNsYXNzPSJwYWdldGV4dCI+PGRpdiBjbGFzcz0iaW5mb3JtYXRpb24iPnskZmllbGRkZWYtPk1vZExhbmcoJ2ZpZWxkZGVmX3NpemVfaGVscCcpfTwvZGl2PjwvcD4KICA8L2Rpdj4KICA8aHI+CiAgPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KICAgIDxwIGNsYXNzPSJwYWdldGV4dCI+eyRmaWVsZGRlZi0+TW9kTGFuZygnbWF4X2xlbmd0aCcpfTo8L3A+CiAgICA8cCBjbGFzcz0icGFnZWlucHV0Ij4KICAgICAgPGlucHV0IHR5cGU9InRleHQiIG5hbWU9InskYWN0aW9uaWR9Y3VzdG9tX2lucHV0W21heF9sZW5ndGhdIiB2YWx1ZT0ieyRmaWVsZGRlZi0+R2V0T3B0aW9uVmFsdWUoJ21heF9sZW5ndGgnLCAyNTUpfSIgLz4KICAgIDwvcD4KICAgIDxwIGNsYXNzPSJwYWdldGV4dCI+PGRpdiBjbGFzcz0iaW5mb3JtYXRpb24iPnskZmllbGRkZWYtPk1vZExhbmcoJ2ZpZWxkZGVmX21heF9sZW5ndGhfaGVscCcpfTwvZGl2PjwvcD4KICA8L2Rpdj4KPC9maWVsZHNldD4=]]></data>
	</file>
	<file>
	  <filename>/lib/fielddefs/ColorPicker/help.ColorPicker.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PGJ1dHRvbiBjbGFzcz0iYWNjb3JkaW9uIj48c3Ryb25nPnskZmllbGRkZWYtPkdldEZyaWVuZGx5VHlwZSgpfTwvc3Ryb25nPjwvYnV0dG9uPgoKPGRpdiBjbGFzcz0iYWNjcGFuZWwiPgoKCTxoND5XaGF0IGRvZXMgaXQgZG8/PC9oND4KCgk8cD5UaGlzIGZpZWxkIGRlZmluaXRpb24gY2FuIGJlIHVzZWQgdG8gYWRkIGEgPHN0cm9uZz5Db2xvciBQaWNrZXI8L3N0cm9uZz4gdG8gYSBMSVNFIGl0ZW0uPC9wPgoKCTxwPlRPRE88L3A+CgoKCTxoND5Ib3cgZG8gSSB1c2UgaXQ/PC9oND4KCgk8cD5UT0RPPC9wPgoKCTxwPlRoZSBzZXR0aW5ncyBmb3IgdGhpcyBmaWVsZCBhcmU6PC9wPgoKCTx1bD4KCQk8bGk+PGI+U2l6ZTwvYj48L2xpPgoJCTxsaT48Yj5NYXggTGVuZ3RoPC9iPjwvbGk+Cgk8L3VsPgoKPC9kaXY+]]></data>
	</file>
	<file>
	  <filename>/lib/fielddefs/ColorPicker/images</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/lib/fielddefs/ColorPicker/images/blank.gif</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[R0lGODlhAQABAJH/AP///wAAAMDAwAAAACH5BAEAAAIALAAAAAABAAEAAAICVAEAOw==]]></data>
	</file>
	<file>
	  <filename>/lib/fielddefs/ColorPicker/images/colorpicker_background.png</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[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]]></data>
	</file>
	<file>
	  <filename>/lib/fielddefs/ColorPicker/images/colorpicker_hex.png</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[iVBORw0KGgoAAAANSUhEUgAAAEgAAAAsCAIAAABJ6mlcAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAIGNIUk0AAHotAACAlQAA+NcAAIhSAABxRQAA6mYAADkHAAAh+QMnhVYAAAGaSURBVHja7Jixa8JAFMa/JAdmyGJB4iIdAhqySSfplH9Gi3+P0PjX3FSciuBQ3Iq4GFwP7GLpcCDXi1LRQF8e900fyQXej/eS3H1ekiRRFIGXlFIiiqL9fs8MrNPpCAC+74OdBIAgCHiCCSFueJLgm6mUqgEMwHa7pUPV6/VMkLvAyI2fAeLrd+ysZrOZZUwRBDNr8/VX8awArFYr01h3qcmsTQD4OhysFa9FoY2U8nTRWtYKQ2pgpwpbYegD+K5oMh4DyPM8z3NtqssIdsysTQCA511a2u/3LUNaBogAUMUq5nNzDqWUL5NJA7isH7R3rmN6/KSU2gBIBwPyDfvdsUujmKapZZo2ihWw6XSqr59MQ7i8v0cxyzLLMAG7cnvGEOx4PLLtGPXzGE8wpRTPMOeh3e7GMTOwXVmKbhy/L5fMwJ6GQ5dSNRHstswjo7eB/Fiv6wlz3hYLOlTPo5FLqVxKRUT1pFQEZVboUiqXUv0n1zXHFpdSUR5Fl1JxALtye8YQ7HOzYdsx6ucxnmC7snwkFujWEub8DAA5n9W+w+9WGgAAAABJRU5ErkJggg==]]></data>
	</file>
	<file>
	  <filename>/lib/fielddefs/ColorPicker/images/colorpicker_hsb_b.png</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[iVBORw0KGgoAAAANSUhEUgAAAD4AAABCCAIAAACAQ/KpAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAIGNIUk0AAHotAACAlQAA+NcAAIhSAABxRQAA6mYAADkHAAAh+QMnhVYAAANQSURBVHja7JpBSxtBGIa/3Wyt4pqwosaDUWrWmPS2eDF48FAM3urdg4IFIagFf4UgSKi56A+wf8CbBBQpHtKSg7CJ5hAXL0aPbrLFZLM9jG432ZgN1kln2v3wMG5mmIfhnc3MQ5hgMMjzPNBWqqpyPM/f3d1Rhz44OMgBAMuyQGFxAODxeGhF5zjuBSNx7xBVVXGhA8D19TUm7kAg4Ej1R+h489AOuj3r6+vrZvv8/Pz4+Ljz6I47sPkbRhTFVCp1e3vb29sbi8UMwzg9PW3oYxgGVnQrVSaTkSSpYXYOAH5qmn3k4eFhoVB4w3F9fX3BYPDrwcHAwIC1w9vubqzoJlU2l0P0kXDYOjsHALVazT5yfn6+XC57vd7p6elEIlEql/ubdcNXJtVkKHSZz6N2aGKiLjDAMPaRoihqmsaybE9Pj8/nEwShaTeMZZkuFAo1z3pTomQymc1mPSz7cWEhHo9/T6c7C/6bKndxgRrhycm6zQAAjK3QZ/6hodHRUUEQAKBwdVUzDHsfnIv+WCjiDMNcXF5aZ382MGtra5VKhef5kZGRk5OTv3BesFBFIhEACFu26VNgbOiJREJRlK6uLoZh7u/vZVn2+XxMZ7PeMB2id0bP5/OlUsn8d3x8vBvzq9AR/Zlt2qxTO6erQCBAIrpj6bpO6KrTcV6nFV1VVVqv1f2CMOz3U4d+Uyxyw37/j0yGOvQpSXKNAF1G4H39ieLVS87lMF6rv52dYeKeiUZdI/CPGQHc1doIPKK/zAjgrtZG4BHdNQKuEXCNgGsEXCPwmkZgJhql8lpdUBTXCPyHRuCmWBzDKbHwXaupvJUCgNfrJdQITEnSh7m5Fh1SR0fkGgFHp0muEWgLnUwjUKlUaDUCDw8PtBqBtladTCPgmHUWvWEaShRFRVHS6bQsy7FYbHZ21t6nA+hmbW1t6fVFtBEwV31nZwcAtre3Nzc36TACerWKGp83Nr7s7qL2hiXJ5BqBqiXr8Xjc/pBcI1B9WvW9vT3UWF1dpcMI6NUq+vu0soIg9/f3zYdEGwFrNpaXlwFgaWnJFhgijYAZGFSLi4sNT8g1Ano9KE1GoK2TI4FG4N3YGEZ07IFx+gYkF73muOrkGoGWPwEta9qvAQBPtPTdMmi31AAAAABJRU5ErkJggg==]]></data>
	</file>
	<file>
	  <filename>/lib/fielddefs/ColorPicker/images/colorpicker_hsb_h.png</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[iVBORw0KGgoAAAANSUhEUgAAAD4AAABCCAIAAACAQ/KpAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAIGNIUk0AAHotAACAlQAA+NcAAIhSAABxRQAA6mYAADkHAAAh+QMnhVYAAAN6SURBVHja7JnPSuNAGMC/aVJta1FqqO3BRhZrbfcixVP1uAi+gCcPCi4Igq6PUelFdr3oK/gIssfFi6V42cZNYREVLF6KxEbbJtnD1BCTtBHd2c6w+QhlJvnC/Jh++TO/oOnp6Wg0CqyFoih8NBq9u7tjDj0ej/MAEAgEgMHgAYDjOFbReZ5/w5mkrxBFUUihA8DV1RUh7lQq5Un1LnSy9eBFFcC1bovd3V1RFM3uysrKwsKCLYc0Otc3uugBR6TT6Uaj8fT0hLuTk5PBYLDRaFhzSKNbxzo/P7cRdgvmUVWdZ6qqqjabCAAAdE1rt9vNh4dIOGwmDIdCRNFNqqokAUClUslls9bReQDQdd155vLycrPZDPI8AIwLgmEYhmG4ZhIKc6zZTOaXLON2ZmbmxWUKCDnPTKfTqqrivyYcDuu6Dgi5ZpIKy1iZTMb9DuOKc3BwUK1WuUAAAIp7e4Zh9MokRf7ckC4ucCM7O+tA7zGXiYmJSCQCAKHhYZ7nUe9MMpPeHSuXzVYlCXet9D0LprsfHzJ/B1QwuVwOALKWyxQAuGQyqes6ehmyLJfL5UgkMjQ0hBC6vr4+OztrtVojIyNmDsdx9/f3hLDHxsZsVPF43NrlOM69YGRZFgQhFArhQzc3NwihWCw2kILpmTA3N9fpdEg8qN8Z/al4PPzb5lLTtMHO+tvRqXhfZxVdURRWl9XjsVgykWAO/bZe55OJRLlSYQ59Pp/3jQBbRuDjyzeKvx4/JYngsvrH6Skh7sVCwTcCvhGgxQiQjv5GoIvuGwHfCPhGgGoj4D7r+/v7tVpNEAR86Pj4uFarwYBm3Urvjc6EEehZ67alU9jtjr5YKDC5rP59eekbgf/QCNzW61OpFIvLaiZXpQAwOjpKqRGYz+c/LS31Sfh+ckKvEfB0mvQagVeh02kE2u02q0ag1WqxagQ8Z51eI6D1DaqNgBW0WCy6oz+qqm0zjQDumkbAlvNv0EulEgCUSiUbOr1GQHv+DPZlZ+frt2+4vbO9zYAR6Fju61tbW86d9BoB8+Pj4eEhbmxubtrvMMgRphEQRVEURasRsOUQLRi8fd7YwJBHR0fmTqqNgLU21tfXAWBtbc1RMFQaAdvX6tXVVdseeo2A5vX5n14j8Ko3RwqNwIepKYLoxAvG6/FHL7ruOev0GgHD6HOwqap/BgCyOj0SRJlwPQAAAABJRU5ErkJggg==]]></data>
	</file>
	<file>
	  <filename>/lib/fielddefs/ColorPicker/images/colorpicker_hsb_s.png</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[iVBORw0KGgoAAAANSUhEUgAAAD4AAABCCAIAAACAQ/KpAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAIGNIUk0AAHotAACAlQAA+NcAAIhSAABxRQAA6mYAADkHAAAh+QMnhVYAAAQZSURBVHja7JpBSNtgFMdfanRVgm0zpNUtk7VrV3fpiiDI8LTtpBXBowcLHQiCDoTZq8eCKOi8KHj0KB42bEB21NaC9DDZ2lqUaQ9TD2rJ7GqTdodolyYl6dy+Ltn6J4eQvo/3J335vrzfF8xmsxEEAVoTwzA4QRCnp6eas97S0oIDgE6nAw0KB4C6ujqtWsdx/BYjUT8hDMOgsg4AR0dHiHxTFKXo6reso62HSqxLa72xsXFoaIgkyUwmk0wmg8Fg9a0rPoHlZxi/3395eUnTtF6vHxgYaGpqWltbE8UUCgWk1oWuotGo2+0WZccB4HsmIxpmMpnm5ubC4bDBYMjlcm1tbQcHB60WizDmjl6P1HrR1edYjHff4XQKs+MAkM/nRcMSicTU1NTOzs7ux4/xeHx9fb1QKEjDkKqY7rHDkdjb488ddvvPirJYLCzLAoYJj1AolEwmzWazp7//+YsX6XT64uJCFFNfX59OpxH5NhgMQld3byTMrgMArPR4QFEejyceiy0sLHg8ntXVVZ/Px7KsKAy1ioniNxJl1wEAVirAsL6+PpvNZjQY7t+7941hAODk5CRfKJSEobZ+I77EMQyLJxLC7DgfJRyTSqU2NzffTE4eHh5ms1m73U7T9PXahmHVK3ZBro6ODgBwCh5TAMBcLtfV1ZV0IEmSra2tRqMxHA7v7u6SJGk2m4UBDQ0NSFfTsq6E2XH+v5D+dnZ2lkqlstksx3FWq1WPeCosWzAKAS6Xi2VZFAv1b0reFc6nv90zx3Hc373rt7euivd1rVpnGEarbTVpMllKZz1N6OvxMW4xm3eiUc1Z73S7a0RAW0TgSekbxR/Xp1gMYVu9GQoh8v2su7tGBP4xIoBa8kTg2vrtiABqyROBa+saJQJ42bZtZmbG6XR2dXUNe70AsLy8HIlEql3sAlcOh6NMRdWIQI0I/AoRKN9qrKysBINBngjMz8/zRKDKK5fIFe++oi5J/URArsEjCEK+gXrW3a3Jtvrgy5caEfgPicDX4+N2itJiW63JrhQAmpubVUoEOt3u5y9fygR82NhQLxFQZJrqJQIVWVcnEcjlclolAvK7GqomAhXddXUSAcVa1/EzjEh+v58kSZqmt7e3e3p6BgcHpTFVsF5UIBDgSqVqIlC867OzswAwPT09MTGhDSLA3WyDvR4fn3/7lj8fHxvTABFgBbU+OjoqvYiDpL2nKMr19On7d+8ikUggEPB6vT6fb2trq766E1Fx83FxcZE/GRkZkcAMVRIBjmX545XPx5tcWloqXlQ1ERDWhtfrBYDh4WHhRczT25vc35eOVPxG4JHVinQ1bTYaZQLS5+fqJQKc0va/eolARW+OKiQCD9vbEVpHXjBKK6B6recV77p6iYDsJ6CXmcyPAQBGu49cr2kIwAAAAABJRU5ErkJggg==]]></data>
	</file>
	<file>
	  <filename>/lib/fielddefs/ColorPicker/images/colorpicker_indic.gif</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[R0lGODlhIwAJAJEAADk5OVtbW////wAAACH5BAEAAAIALAAAAAAjAAkAAAInTISpy50WwHG0imiAtFxF+W2dFWaaODYheE6pU37uC2vZTNdQ3hkFADs=]]></data>
	</file>
	<file>
	  <filename>/lib/fielddefs/ColorPicker/images/colorpicker_overlay.png</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[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]]></data>
	</file>
	<file>
	  <filename>/lib/fielddefs/ColorPicker/images/colorpicker_rgb_b.png</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[iVBORw0KGgoAAAANSUhEUgAAAD4AAABCCAIAAACAQ/KpAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAIGNIUk0AAHotAACAlQAA+NcAAIhSAABxRQAA6mYAADkHAAAh+QMnhVYAAANQSURBVHja7JpBSxtBGIa/3Wyt4pqwosaDUWrWmPS2eDF48FAM3urdg4IFIagFf4UgSKi56A+wf8CbBBQpHtKSg7CJ5hAXL0aPbrLFZLM9jG432ZgN1kln2v3wMG5mmIfhnc3MQ5hgMMjzPNBWqqpyPM/f3d1Rhz44OMgBAMuyQGFxAODxeGhF5zjuBSNx7xBVVXGhA8D19TUm7kAg4Ej1R+h489AOuj3r6+vrZvv8/Pz4+Ljz6I47sPkbRhTFVCp1e3vb29sbi8UMwzg9PW3oYxgGVnQrVSaTkSSpYXYOAH5qmn3k4eFhoVB4w3F9fX3BYPDrwcHAwIC1w9vubqzoJlU2l0P0kXDYOjsHALVazT5yfn6+XC57vd7p6elEIlEql/ubdcNXJtVkKHSZz6N2aGKiLjDAMPaRoihqmsaybE9Pj8/nEwShaTeMZZkuFAo1z3pTomQymc1mPSz7cWEhHo9/T6c7C/6bKndxgRrhycm6zQAAjK3QZ/6hodHRUUEQAKBwdVUzDHsfnIv+WCjiDMNcXF5aZ382MGtra5VKhef5kZGRk5OTv3BesFBFIhEACFu26VNgbOiJREJRlK6uLoZh7u/vZVn2+XxMZ7PeMB2id0bP5/OlUsn8d3x8vBvzq9AR/Zlt2qxTO6erQCBAIrpj6bpO6KrTcV6nFV1VVVqv1f2CMOz3U4d+Uyxyw37/j0yGOvQpSXKNAF1G4H39ieLVS87lMF6rv52dYeKeiUZdI/CPGQHc1doIPKK/zAjgrtZG4BHdNQKuEXCNgGsEXCPwmkZgJhql8lpdUBTXCPyHRuCmWBzDKbHwXaupvJUCgNfrJdQITEnSh7m5Fh1SR0fkGgFHp0muEWgLnUwjUKlUaDUCDw8PtBqBtladTCPgmHUWvWEaShRFRVHS6bQsy7FYbHZ21t6nA+hmbW1t6fVFtBEwV31nZwcAtre3Nzc36TACerWKGp83Nr7s7qL2hiXJ5BqBqiXr8Xjc/pBcI1B9WvW9vT3UWF1dpcMI6NUq+vu0soIg9/f3zYdEGwFrNpaXlwFgaWnJFhgijYAZGFSLi4sNT8g1Ano9KE1GoK2TI4FG4N3YGEZ07IFx+gYkF73muOrkGoGWPwEta9qvAQBPtPTdMmi31AAAAABJRU5ErkJggg==]]></data>
	</file>
	<file>
	  <filename>/lib/fielddefs/ColorPicker/images/colorpicker_rgb_g.png</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[iVBORw0KGgoAAAANSUhEUgAAAD4AAABCCAIAAACAQ/KpAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAIGNIUk0AAHotAACAlQAA+NcAAIhSAABxRQAA6mYAADkHAAAh+QMnhVYAAAOzSURBVHja7JnPT+JAFMdfobBst1GoCh5Es0pQNtGGeCLG08a7d2MkkURjoht//A0uiVEOXhT/B68edI+rB7MhXNjSkKgRVJbIqbEqre6h0i2UUKI77DTLSw9kmMn78vhOp+9TYmBggKZpMFsIgkDSNF0oFEwnvauriwQAi8UCJgwSAKxWq1mlkyT5ipWod4ggCKikA8Dl5SUi3V6v11DVm6Sj9UMj0mt6fXh4eGRkxOfzFYvFTCZzcHDQZOmGO9Ci3GGqgmXZSCRSKpX29vaOjo7Gx8enp6er5qCWrs2VTCb12UkAuBfFqmWTk5P7+/vb29vt7e00Tefz+fn5+evra5fTqc5553Agla6q+slxAJBIJAJDQ9rsFgB4qgyXy8UwzMnxcQfDeNzuDxR1lcutra0Vb28lSVKnoa66mmjQ7ycIgiAILp3WZicBAAhCu6ajsxMAsrnce4ryDw6urq4q45ubmzzPN8/sGlV+v7+214nKK5fNAoDP57PbbLls9uv6+vLyMgBks1nx7k6dhlx5+UqXQyuyLL0yRFHkeT4cDltJUhTFs/Nzt9tdLsSfQF/0l1AsThBEmue12WsYBgB2dnYWFxfj8TjP8xRF9fT0cByXyWQYhgGCaL5hAoEAAAxptikAECzLPj4+6hfKsux0Ont7e202WzKZTKVSym9Qb7d2ux3paVpTlRp2u51U/ouah5kgCKenpw8PDwDQ39/vQHw31BvGYALLspIkoTio3xj1VZFK+tftOVmW/23VXy8di+d1s0oXBMGsbTXjcnV7PKaTfpPPk90ez49EwnTSR4PBFhEwFxH4VPlE8dcjxXEI2+rvJyeIdI+FQi0i0CICuBAB1FGfCLxUvUUEWkSgRQSwJgK1W437+/toNKonAg6Ho2l9SVUiRX1DXRL+RMCgwaNpuk4PNRYKmbKtPru4aBGB/5AI3OTzfV6vGdtqU3alANDW1oYpERgNBj9PTNSZ8O3wEF8iYMg08SUCDUnHkwiUSiWzEoH6bzWwJgINVR1PImDodXyJgKyJaDQqVwbWRECt+tbWFgBsbGysrKyYgwjIkqRcX5aWlKYuFoupg1gTAUnj9YWFBf0gCbr2XiUCV7mcQgR+FQqxWEwhAhRFNUl6+eXj7u6u8mFubk4HM7AkAqo3IrOzSup4PG5gGEyIgNYb4XAYAGZmZnSGwZIIVL2tnpqaqhrBlwjIRq//8SUCDT05YkgEPvb1IZSO3DBGpx6+0p8Mq44vEXh+rvPlnSj+HgA0S90s9ElKvAAAAABJRU5ErkJggg==]]></data>
	</file>
	<file>
	  <filename>/lib/fielddefs/ColorPicker/images/colorpicker_rgb_r.png</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[iVBORw0KGgoAAAANSUhEUgAAAD4AAABCCAIAAACAQ/KpAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAIGNIUk0AAHotAACAlQAA+NcAAIhSAABxRQAA6mYAADkHAAAh+QMnhVYAAAOwSURBVHja7JlBSxtBFMffxmUTYwi2a1ghpqEY19hLDJ6kxyL4ESoeFAwIihZB8OZZyMG0nrTipxAsDQEvVVKoUTRtTBQbtGKIFoTdbHSzsYeNy7qbJkGZdJbmMYdh5g3zZ+bN7rzfEJ2dnTabDYxmHMeRNpstm80aTrrD4SABwGQygQGNBICmpiajSidJ8hEjUZ8QjuNQSQeA09NTRLpdLldVVU+SjjYeapGuj/WpqSmlLghCNBrd39+vs/SqJ9Akf2E05vF4Njc319bW1tfXc7lcIBBwOp0aH9TS1XPt7e3pZycBIC8I+pHxePz8/PzX2dnXaPTj6irDMPGDA6vVqjiYLRak0hVVPxIJAIjFYj1er3p2EgCKxaJ+pMfjcTgcZrO5t7e3paVla2uL53kLYrlqU1R1s2wylZLrbFfXg1gHgtCPnJyclCuXl5fz8/PJZNLtdpf1RGWquViWLX9My8qZmZnZ3d0dHBycm5uz2+2ujg6L2VzPY6qoShweyhVvd7f2mBI6k/teuFw/T04+bWzMzs46nc6yPigXvWRyiBMEcZhMqmc3lbZGU5QtI4jP4XA2m307NJS/uSnjgzRg7ktPTw8AeL1e9eyEz+e7vb3VjGJZNhKJ0DQtf1JaW1tFUUyn021tbYoPRVFI/6Z6VWqjKIqU90LTkUqlaJq2WCxy1/X1tSiKVqu1WCzW7a5WNSYJn89XKBRQ/KifaJVVkfL0jztzkiT921V/vHQs7utGlc5xnFHT6ufPnrUzjOGkX2QyZDvDfIvFDCe9z+9vEAFjEYFXqos/CvueSCBMq79sbyPS/bq/v0EEGkQAFyKA2ioTgZL0BhFoEIEGEcCaCJRPNUKh0NHREU3TBEHk8/nFxUVRFHmeb25urmOoP1Alq6+eJRmCCPw1wdOkThRFURSlv2kYMq0+SacbROA/JAIXmYzb5TJiWm3IrBQA7HY7pkSgz+9/MzBQwSESDuNLBKoyTXyJQE3S8SQCoigalQhUftXAmgjUtOp4EoGqsY4vEZBUtrCwID20kvS8IGiKTASOj49jOzvvQyGe5xmG+X11pfGpj/RgMAgAwWBQIx1fIiDdP4O9m57+sLQk16dVkYwvESioYn1iYkLfiC8RUB4fl5eX5cr4+LgxiIBUKMglMDYmi1xZWVEasSYCBUlSyujoKACMjIwoLVgTAc1r9fDwsKYFXyIgVXv+x5cI1HRzxJAIvHS7EUpHHjDlfpTGkF6suur4EoG7uwqdOUH4MwCllHKmGpTirAAAAABJRU5ErkJggg==]]></data>
	</file>
	<file>
	  <filename>/lib/fielddefs/ColorPicker/images/colorpicker_select.gif</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[R0lGODlhCwALAJECAAAAAP///////wAAACH5BAEAAAIALAAAAAALAAsAAAIflINoG+AeGFgGxEaXxVns2X2dh4CZJXBadDxQlihGAQA7]]></data>
	</file>
	<file>
	  <filename>/lib/fielddefs/ColorPicker/images/colorpicker_submit.png</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[iVBORw0KGgoAAAANSUhEUgAAABYAAAAsCAIAAADuN9+nAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAIGNIUk0AAHotAACAlQAA+NcAAIhSAABxRQAA6mYAADkHAAAh+QMnhVYAAANeSURBVHja7JTfb9tUFMe/1/c6tuMfsdNkdbem6xZtbILS/ShIFG3ihYdJSNszSCDxvyHeYOrbNFaQ0OCh6yooo1PLoIvpaJvGsWM7cdzY4cFpSIMqQfIAk3bkB58rnY/uOffeDymXy4qiYNTwfZ8pilKtVkdGFItFBoDjOIwRDACldFwEY2xo1ch03hGDucOoUOvCFw+4wk+88L3ctln0jxBvzfh3zkeXZt+d1i8pzSw80felxY36zRXrLr+9olhDCGqaZjqONBZeDz56n7x36+OSykQ34GoRV+uKTfVU7sL0lbeNp2o9bu9JNjcQx2ahqIcf3G4t3vhEi6qgOjgdYhaainAK7oRWNxZv3W58OfGrvN/g3WON9E/kwjXv9NwVacZBkINkQi5CVKBpCCaR1UGMbE2eKnuv7VxfLXyTlnS7XQYgbLXSXCw3xNLsC5LkFF0RC0wxkc1D0+FOJEQLQt5pgJ8qZTZmQ7lXIogiA5AkSZq72mGgCW3EHkSdybpuZKUzRM6HVHI8OBKcDDxJcw+1fkmvERCSJjsJLLQJmAG4gAvkBYFKkg04R58bYQdJv6SH6Ge/77N1p6oUJjSEBsJJIADhABfYa8NuwY1gHTgW2+eH7gU5QjZ/lpY3f3mjoBroRGAJqAcQgoCixrCbYC/ASmWzKW3pQ7vo70p9om09tvSLl+OCQMBCkCwIgJDApajyeBYcWLXHk6fW/9bIUc6HvPaV9kj4bu7O+ahIGyAiACACPA5Wo7q+elfPPeD5YKB7UNM0kyQhRyHYAp51ntu/1ZokzE62RNNpZSqbuxv3H27fW8q1l1SlQgaCUkrm5+c7nU7/nsRxHMdxh0+C6Uz73ExHPYumxrY94fm2HFqURIwxSml/4yx9YP08/SGEsC5EC7AqQOWv0WcA8Om7wEknkr6Xf6uPYcQoyvF9f1z9TpmmoesjI+qOwwxdX11bGxlx/erVVwY/GXHtsvfhDW5x4VPNdmDV4Aaw1Vwk5abnSuWb8hdrXOvhqvr0xFn8NwbvIcYxeA/xyuD/J4MPW0vdUvGZ/8PuUmXBP/2moBfPkChy/qi++PpHe/lRDsuquj9YP4xIDS7sZPKft4NvHzw5tzVo8HxoURbF8TGDDyNeaoPXHedsqTSOfv8cAI6z+2gFO4OaAAAAAElFTkSuQmCC]]></data>
	</file>
	<file>
	  <filename>/lib/fielddefs/ColorPicker/images/custom_background.png</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[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]]></data>
	</file>
	<file>
	  <filename>/lib/fielddefs/ColorPicker/images/custom_hex.png</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[iVBORw0KGgoAAAANSUhEUgAAAEgAAAAsCAIAAABJ6mlcAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAIGNIUk0AAHotAACAlQAA+NcAAIhSAABxRQAA6mYAADkHAAAh+QMnhVYAAAG4SURBVHja7JjPSwJBFMe/rgsVopeETCIQPAQFRdRhIRA6+n/0i4T+mIqw+js8BkLgIQiipKJQ7GBGCqEIK21jh4FtHLeQxcPbaR7v8Hb2sbwP82b37Tf08FRrd7pQy2LRiNnudBMz04qBNd5aJgDGGJQzE4DjfGmwHyN4MmPRyADYp+P4e1BqfpYOVfXlVQRRqhVFEINfe/re/oEUiE4TzK3NAMD6fU8HsLayIAbSXWom1mYCmJqckDK2d3M8sDJZd1FKs+0eNTC3QtvuGQAMIyT5+ekxgFKxUCoWeDCcRnDHxNqMv1PLj1UpCNJ3rD90YLZ2cmIfWpnsWf6IPowIwsE8knj7WZksDwDc3lfIgw3u2G/mktBHGrUV8yeHfN0NAgEz3Ioedd+Un6VAEbARxzPSYIz5AQuHw+QmDzamHQvey0MFsFg0oqaY8976qDeaioElE3Gz3mha60uKgZWu7rRK9X/ACE4ky4vpATDfKtXmxiodqovLa61SaZWKyqw4FpWKoIkVapVKq1Sk/qC9xi2tUgWpFbVKFUCwEccz0mD+VKp0ao7c5KFVqiCDJRPxSq2unpjzPQB3outYJCzdqwAAAABJRU5ErkJggg==]]></data>
	</file>
	<file>
	  <filename>/lib/fielddefs/ColorPicker/images/custom_hsb_b.png</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[iVBORw0KGgoAAAANSUhEUgAAAD4AAABCCAIAAACAQ/KpAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAIGNIUk0AAHotAACAlQAA+NcAAIhSAABxRQAA6mYAADkHAAAh+QMnhVYAAAPPSURBVHja7Jp7SBRBHMd/tzt3ep5efyj4LHyWnqYkPuhFIhRJBP1X/RFBIESBqD0gKKLHH1JZoEWYFRVUEOQfgRQYihFICkb5OC33rrPUExXPe/jc2+2PtW29u25vz0Z34Yb5Y3buNzPfm/vO7OxnTzXw3WJ3uABD0hCLUpssMpoAI/VROmR3uOJio3FIJ4GW2sQNKMBI6/gUAgCGYXBIV4HkbhkpTRAA0LQbsGiX3C3NqtZCuugKWaXX9VE6celLNB3ctKZsivfzKaGSbhiW4Arm4TFRVTgNs7okqsq39Ft1jXw5Oye3rLRYhtIJAGBY1iNbKGPixtSCgsLMrJy2luZ3bZ3eMbilC8cq3JblPToCAG14mHfLw4dKM1KSlmh6xu6kKCr52MHxiWlhwPz8AlbpvKpcQxoAFOcbvvZTwtERABCEjy2pqfmDLiLcNuP83NleVVUZqdNOTNnW0jC8qt4BU/aWFK7cN2he4XWfyUwNhmsjGIZZmJ+dtjmmpu3ruGSFildIZ30Z90xFeZ4hjXa7XzS9b7hfv7PoAYvf38LED7c1K40r9Bgpz2XKsp6ZSyPWSZNljJvvjNQkgiC8Y3BKX86cxVmWzclMFY7+T8PU1jUipJ51OawjP4p27wcAt5tZL8Nw6nuMJnHDVFRWpyUnLiwssixs0OvystOnbY71MoxQvbh0w+bkSJ2Wv/xG/ZzDvBWKSpewTB3OWdHezcNj+I5fAUlnmGCcQJKkSABBSu5T9beJqCoUyPfD9IuvsomSpeujdJgeq7FK10fp0MSUbdQ6ieX8hOakNpmjtQFGJsTFoFHr5PbCHMURgY6u3hARUBYR+NI3hNXrednpGIlA6a58TESg9WN3iAjIkggg7tnbo9ZCGXeUHIiPjXa65tpamlUq1b6SwjWWLlRVnG/41N3vQ3pwRAB38k8ElqWHiECICISIQIgIhIjA/yQCrR+78R2/MBKB9JQk/wGrhBkhIiBP6QlxMSbLqBIfqwlQZrLZnTIlAh1dvW9b2v1Elu3dI18iQJJIqUSAEMOx8iUCarVGqURArQlTKhHQqIPyuhyIAEmKbNzy/Y8AIkk+11w8KbxEJClrIsC/8Lly/gQAXL9QfvnGY2UQAd4wV2ufXKo+zpWv3X6qACKgFizTmvrn3pXyJQLoj2HOnT7KFW7ee6kMIoAQyeU7Da+4+T176ghfKWsigAQHgfqHrwHg7qMmYaV8iYB65S2p4dkbjxr5EgHRW5J8iQAK5OQoQyIwZP4V/Kyv+2M1t40oUjpBiM26bImA/zeoERHhvwcA1EixiuNS9+4AAAAASUVORK5CYII=]]></data>
	</file>
	<file>
	  <filename>/lib/fielddefs/ColorPicker/images/custom_hsb_h.png</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[iVBORw0KGgoAAAANSUhEUgAAAD4AAABCCAIAAACAQ/KpAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAIGNIUk0AAHotAACAlQAA+NcAAIhSAABxRQAA6mYAADkHAAAh+QMnhVYAAANQSURBVHja7JhdSBRBHMD/uzN77u3lgSloIpmcFneWkiARBEHQQ4+9RD71JISBhNmDUC8lIUT2YEFC0QdEEeRDED4EQiH4IAjp+UXe6UWel54feXof3t5uD3Nte3vXXR2tt4P7Zx5m5mZvfgz/2Zn9MTNffJuhbaAt7MU2vBnarigvpQ498H0VA4AkSUBhYAAQxcTeQtd7h9iLbbnR46KY37/XHDygE/f816WcVMZNmJxULBmkKT29jzwLfqX59PXg0PCYZswuoGcpSXRJljXF55kuLbHzvIU0A4sLO3Fxf4ldPUZvdPVczcedGsJkwlj5ovQnBYEXrDwhZFnWwuF9Nut2OKoMiEZjuqIrVA0uBwCcaHKNT3nUs2MAYFkm/cmB959sAh+PiwCwsbbCMAzDMBlH6hTKXO4Zb/2RGlKfnJ1P2aaZ97hnlrcK5LSKRsIsyxZwy6qJU9DlTIl7rb210eUQEwkAaOu8Q1ZA1j/FlVDmOuZ0kMrEtCcdPfPDi4EgSe6dWERMJGR5N8l/U41PeRpcDjL3xLQ35eVo/CAbVM39x4Rpv9rhrKteDq6Tn1ounHfWVRcqYdT0udFdhw8tB9cj0Rj5qbqqXJbl4NqPAqL/wzYNbYXVzXAkmvGmUWB0ScpnLRFC+p6mUr6rTsd9nVZ0e7GN1s/qldUNfyBIHXplRRn2B4Inm49Shz4y6jaNAF3onyfndCVrrK/V0QicOdWkE/fQ8JhpBEwjYBQjoHdkNwJJdNMImEbANAKmETCNwP80AkPDY1QagdqaKtMI7EEjUFlR5vX5afysZoHO2NjcMqgRGBl1D374mGXAubOnjWsEEMK0fuCxuXSscY0Ax1loNQKcpYjWhLFwmFYjgBCbpRjaCGCElNJz47K6iRFKolv5Ik1RjABpKkZAM0bnVU9Gd1crAHR3tSJVGNoIkKwAgFv3nt3suETqt3ufU2AEONU27el7md5pXCOAfx1J16+0kMrdh6+0bxhZ1hbFCHh9S17fktoIaMboiI4RKff735BV62y7qHRmS5jCX8dVF4G+x28B4MGTAXWncY0Al3ok9b94p+kxrhFQ3jD0GQH8NzdHAxqBuflv+a964bcpRrSi5zwEjWsEsl85BIH/OQCtdN0dq9fmGQAAAABJRU5ErkJggg==]]></data>
	</file>
	<file>
	  <filename>/lib/fielddefs/ColorPicker/images/custom_hsb_s.png</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[iVBORw0KGgoAAAANSUhEUgAAAD4AAABCCAIAAACAQ/KpAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAIGNIUk0AAHotAACAlQAA+NcAAIhSAABxRQAA6mYAADkHAAAh+QMnhVYAAAQWSURBVHja7JltSFNRGMef3Xs23ZqClFgxjJkte7NU8gUNIyiUsqAICj8EQS+UIGT2AkX28iGN6oP1YZCShQVSfUijKBQiITKQVVYWW1Y3nKu8s7o593ZvH46N6+a9inL13NrD+XB27jOe/86ePec5v2nsdjvHcSBhPl4HRFp83AzEcVxiYqKURxAQmdL7XP0IAHiel/LggQdSDQFAMBiUehwQNERLDwQCE5D+89dvpbN5UtL9srtuTp6jkO6ez06/tKpx7jo1XfkQCAQnkusej6exsZFl2YAuyTzfsmV9IYHSKVxhwqy6uppl2aKiopycnGftrdeaHvCCEDaUli6OtTJjUWR0BACxen3Y29xud3l5eW5uLjvAaRFier8uMJu+OL+JfYaGvIpK18fG4En64vkAkJO5+OUbhzg6AgCKCk9oi8VSVVWVlZU1Ly1v2aKUrRtXU5SGoqa0UIbCdXV/WLLQjOev3/WEHDQ2m00fsesA0N3d3dHR0fqkEwB27NyzKjc9zGFwcEjRCmMwxMo4DA4OUQAgjByfGaa5uXlhWlpZWdnDe7dKNm9vqLdqERJGmtK7Hgq0NC0Fj7DolNhpeFUQWlpaHA7HwI8fH5k+o0EPAHOSZlIUJQgQGspLHx44xfFnEEdHw14iM5lM+fn552pqkpOTfSjxo/3N6nWb4oyGaTzzsfpXbz+IFzU2m02nG6WzZVnW6XQy/Xxh3orMdMv3/oFeV7/Ywev1KZrrMTFy/bbX60P4u4h8lpCQYDKZ8nQGhOj3DsajcCkcNdfHPk2lnDiO8ws++b0hVDoA8LzkI5qmlT1N+clJn4IiOKl+Xa3SjUajzLWaWOnxcTMQ63b3uVxSHp6Ankzpc2fPQn0uV1ZGhuqIwNPnXVEioC4i8OK1XVFly5ekKkgE1hRkKqS7rb0zSgSiRIAUIqC0yROBYekqJQKjXPAAoKKiAhOBG9frpIjAVJpY8YhcjxKBKBEYNxEY/apRWlpaXFyMiUBl+W5MBMYstIreTcPKi9wt6R8nAm3tnaokAqlmU5QI/IdEYHZS0ieGUeO1mgJ12sBPjlAi8PR51/1Hj2UcitcWkksEaBqplQhQY+FYcomAVqtTKxHQ6mLUSgR02gnlOglEgKYptRIBRNOhcfbYXvFLRNNEE4HQHz4nD+0EgDNHd52oqVcHEQglzKnzV48f2IHnpy80qIAIaEU/07O1jZGLCBMBsTEM88Jm21BSkp2dffhIfG3d7YZ665oCq8/vn9LG8G/CVO7fjifnLt+MgBlEEgGEaDwuWpuwyIP7toUWiSYCSNQI1F65DQCX6u6IF8klAtqRR5L12t2wFXKJwJhHErlEAI2ncySQCNh7vkxq16f3Wo3LiCqlR57xqiEC8l2HwRD7ZwA5jycNuKJrggAAAABJRU5ErkJggg==]]></data>
	</file>
	<file>
	  <filename>/lib/fielddefs/ColorPicker/images/custom_indic.gif</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[R0lGODlhIwAJAJEAAL/Ezpihsf///wAAACH5BAEAAAIALAAAAAAjAAkAAAInTISpy50WwHG0imiAtFxF+W2dFWaaODYheE6pU37uC2vZTNdQ3hkFADs=]]></data>
	</file>
	<file>
	  <filename>/lib/fielddefs/ColorPicker/images/custom_rgb_b.png</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[iVBORw0KGgoAAAANSUhEUgAAAD4AAABCCAIAAACAQ/KpAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAIGNIUk0AAHotAACAlQAA+NcAAIhSAABxRQAA6mYAADkHAAAh+QMnhVYAAAN2SURBVHja7JprSBRBHMDndmf1Hnp9UPBZeJ6W3l1K4im9SIQiiaBv1YcIAiEKRO0BQRE9PkhlgRZhVlRQQZAfAikwFEOQFIzycVru2VXqiR533kO9vNvtw9qy3l2uHa03QzvMh9m52Zsfw/+/O/O7Uwx/sbk9PoBb0SZqoNvjS01Jwg7dPuWAAACGYQCGBQIAAoHg/4UudYZoEzXi6IuBQHTfrtuQJhH32LdJUSp0A0aUKjL6jYZmvm00FVSUlyKITgAAGJYNqTbakrE+u7jYnJdv6mhrfdPREz5GanThXOYt+eGzQwCAShkffufBA+W5uszFQGDW7aVpOuvI/qlpp3DAwoJfUnSeqsCgBwCUFhk+DdHC2SEAgCAU4Xe2tL7TqJWuWe+Hns6amuoEjWra4VrLgOGpBoatxk06rj04MrYs1iPnOD2iVKkZhvEvzDldHofTHcOUFRIvQ2cjBe6pqspCgz4QDD5redt0t3F7yT1W+vgWFn66zfl6rtFvoUPTlGVDK1fG7TNW2yS33rnZmQRBhI+REn2pciHOsqwpL1s4+x8Dpr6hGUJqzuexj38t2bkXABAMxmyrw9H3W6ziAVNVXavPyvD7f7IsWKfVFBpznC5PrAJGSC+ObtiYlaBR8Zef6e/zEj8KRdH/Ik093rnV7DRijM4w0UQCSZLSvk2ZaFcdj/06rujaRA2ux+pph2vCPoMdenpqMpywz2w1m7BD7+4dkI0AXugfB0clJSs05khoBMp3FEnE3d7VJxsBJI0A5M7eIb022rKtbF9aSpLXN9/R1qpQKPaUmdcYXUhVWmR43zcUAT06IyB1WdkILKHLRkA2ArIRkI2AbAT+pRFo7+rD0gjk6DJlI/AfGoH01GSrbQLHYzUB8CwutxdRI9DdO/C6rXOFARW7d6FrBEgS4nrAI8R0LLpGgKLicDUCVFw8rgETR0UV6ygYAZIUeXCj+x8BSJJ8rTt/XHgJSRJpI8D/4HPp7DEAwNVzlRevPcTDCPABc7n+0YXao1z7ys3HGBgBSpCmdY1PwzvRNQLwd8CcOXmYa1y/8xwPIwAhydVbTS+49T194hDfibQRgIKNQOP9lwCA2w9ahJ3oGgFq+Sup6cmrkB50jYDoKwldIwBXs3NE0AiMjv2IftVjf2qGJK7oBCG26sgaAcWKn6rVyl8DAGeXQsbU7haWAAAAAElFTkSuQmCC]]></data>
	</file>
	<file>
	  <filename>/lib/fielddefs/ColorPicker/images/custom_rgb_g.png</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[iVBORw0KGgoAAAANSUhEUgAAAD4AAABCCAIAAACAQ/KpAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAIGNIUk0AAHotAACAlQAA+NcAAIhSAABxRQAA6mYAADkHAAAh+QMnhVYAAAOzSURBVHja7JldSFNhGMcfz8ecG4qk5ub3xxR1miiYRIIkFYQ3QTd2E1hZoRdpaWQJWXghpWmolJllQQWBUt10EQmBICFJmqb52frwIzc3972cO10cOxw320I77rx4Xp6L7eF59/z37nnP+7y/+YyOq/QGE6A2AvylhN5gkoUGISd9bl5DAIDD4QAEBwEAdvvK9pLO9Q4J8Jd6lr5st2/s02Oj5Bzpnv4661EVfwvGo6q/Sn8/ONY/MKyaHAncERIbn3gkP5dv0jEAcFCUk/V9GO1ov0OSotOnTh7cn/eu583dh51OMVxLZ+fKykh2zU4AgJ/Y12nai+dd+YcLqsqOaXUGg8kcJgtuud0WIQ/RaPVMjNVq41Q6o2pXSjwAZGemDH6aZGfHAADDfNimWVxa0qr37c1Y0Ohm5tUGozkyfGdzQ01IUCBJ4EwY16vOJBoanaIoiqKotOQ4dnbCdc5PtRYAYiJlZot1eHS64WYd7S87V65MivXKlh3+PL1+rVNrR3SkDABGxlU223J0pOxi5aVbjfUAEBMll0rETBjXcplEqUlxtLFFMtLXmMRPHKNQtj14Yl9ZkfiJE+IiZuc1q1vHQTFh3EtfNbrE6e/Azk6sO620pLCusfVEUXGMQmm1mOZ+fIlLTEtOiF7Q6LxSMLT6jyNTzs9111/fT+xbfbl0UaufUs3+Wl7enZGcrlSYzBaL1bYFpcIUjKt6z9LpEyHAX5qTnSb2FQHA2OQ3C8dPQ/fS1z9N3QQZjGaD0eym0/CydIdjIzWA4zi3p6ljc6vO934dVekB/lJUr9ULGt3MnBo56WGyYGJmTr0nKxU56b19QwIRQEv6wPAEp8rSlQoOiUBeTiZHurt7+gUiIBABvhABrod7IrC66gIREIiAQAQEIiAQgf9JBLp7+pEkAorYCIEIbEMiECYLnlLNoHitxgDNodMbeUoEevuGXr1+6ybg0IFc/hIBHCdQveBhnnAsf4kASYpQJQKkyBfVghGRG611rxMBHMdQJQIEjjNWW3WG/ZbAcV4TAeYPn6sXjgNATWXRlev30SACOI7Rdq2+g76PVlcUMk5eEwGStU1rmx67OtfpHBkiEBUeShMBeWjQ2dLzNBEwmixb1Bj+KZiKkqP0ixstT11hBh+JAEHgtDW0PqPXt7y4gHHymggQrEag6V4nADS3d7Gd/CUC5NojqfXRSycPf4mAxyOJv0SA+JfOkYdEYGL6+2ZX3Zu3ZgJHVTqGeVp13hIB952GRCL+PQCkvQ/XwSnlVAAAAABJRU5ErkJggg==]]></data>
	</file>
	<file>
	  <filename>/lib/fielddefs/ColorPicker/images/custom_rgb_r.png</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[iVBORw0KGgoAAAANSUhEUgAAAD4AAABCCAIAAACAQ/KpAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAIGNIUk0AAHotAACAlQAA+NcAAIhSAABxRQAA6mYAADkHAAAh+QMnhVYAAAOASURBVHja7JhdSBRBHMDndmfv07PUIy8x6/LUPD/iLsyKRBMKfAh7LIiCRJCiiCMfBHvIfLBMK61QSrCggqCEHuohCApBQjgotbPyTi/tPO1M0/v2vO1hz2PvA7eO1tvB/TMPs7uzOz+G/+zM/ASj3yyLS06AWiTLZXBxyalMT0MO3TYzBwEAgUAAIBgQAOD3r2wsdLZnSLJcxoy+7PfH93VV1laWuMe/TzNScTdhGKlio9/ouB+qi8TSA/tK9hTncg0dAwAESDKiWEzGQxXldTUnq49WSaSy3p4uy9RMRBu20el9lWjzo3uHAACJWBT9prYoZ1vGlqzM9LLS4lM1BqvNri3Kcbo8oQYej5dV9BBVsSYbAFCq03z6bKL3DgEAGCaIftP41WKb/eXxeD8YjG6Xo7JMJ0+SulnGDcuHVarhUXNBnoqqj3wZD8v1mNF1r4OqpKSlNzVdKchTmSZ+JGrK0onD0MlYiXv7VttebX7fq/fXr7Us/HZMTE6v55DTqYrys6nKkNEUOU1JMrJQYbZY1arMiiPV7W2tlsmZmG3YRA8WKsVJkizctZPeO8b4iWNVZakKZe+TPolYmKiEoeiHjGbmhLlwUZ+fs33WPk+SpEQsqtefJwgoT5K63N71Txg6PTO6JnfHrH3e7fFSj1I2ywkCOpxuDBOsrAQSgv4P03TJ4aJf+nzLPt9y9E4jweiBQDyTDsdxdlfTQLyjjsZ+HVX0ZLkM1WP1z7kFq82OHHqGUgGtNvv+kkLk0AcGh3kjgBb6x5ExVsl2F6hZNAKVB3Uscb/tN/BGgDcCXDECbMfaRiCIzhsB3gjwRoA3ArwR+J9G4G2/AUkjoFZl8kZgAxqBDKXCbLGieKzGAJqxsOjgqBEYGBx+/ebdGg2qDpdz1wjgOET1gIcx6VjuGgGCEKJqBAihCNWEERJx5ToXjACOY6gaAYjjodLSWEe/hDgeRJeIRRGFMgJ56qxSnaZRf0YiTbLa7IrUTRFtWB71YDQ31AIAmhtqcVpw2giEEqaprfey/jRVv9r+EAEjQNCmaUvn4+ib3DUCcHVJqj93gqq03n2KhhGAEKfKze5n1PheOns8dJPTRoD+P+l88BwAcKfnBf0Pw10jQIQvSd2PXkbc4a4RYFySuGsE4N/sHDloBMbGp+If9cSfmiGOKjqGMY06Z42AYM2nUqn4zwCEU3rVAog+6AAAAABJRU5ErkJggg==]]></data>
	</file>
	<file>
	  <filename>/lib/fielddefs/ColorPicker/images/custom_submit.png</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[iVBORw0KGgoAAAANSUhEUgAAABYAAAAsCAIAAADuN9+nAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAIGNIUk0AAHotAACAlQAA+NcAAIhSAABxRQAA6mYAADkHAAAh+QMnhVYAAANrSURBVHja7JTdb9tkFMaf16+9xInj2MlGmi1FYUu7srEV+kEF4kvTusLKBmwXCAE3XMF/ww3X3DKQJjY6FWlSQRqorC0V2UpXNd2Uj36laRM7qRMnsR0u4pouGUhrkRATR+/Nsd7n0Tnn9fmRhUSqWNKw1xB9XrZY0jpCwT1brGe3WACWZWEfwQIwDPOft4jPJ2ZnZjxLU9E7cVQOJE8NlE+f7Bvs7322u92CTM3O87xr96er12/KK9+cCQsRqUcoe1Byb2/zy/cKE+V8YbT70uibuy9XKtXWKq7fmDjJfTH8/nkxryCzBVVD3uev8f7IqU6XfPPLmasYvzhy7i8bWUgk/a6vh98bEWs5UAmMBLcHog96GGpQLMjDL19a/m5sLproOXb0IQur0Wgmc3fjb1+m/NMKND/4DngPwS1AFKGF4JFAZM+Wt09//Ub8++6jz9iDaFrwbnsWZWbK3RldJZZfkAT3QVbogCcAUYIatIio6ZxSBBfuLP9W5z+wJbpeZQEwDGnmylO/auKFKswS3BLrlSTZwx8h3oBOeaUEhYdyACVeVH8OOhK7ESeyFjKoErAyoAIqEHC5KM/nAWXnqDVswGodZ2NnFsJ6310lJxwMitBl6CFAA2EAFchWka9ArSGzqXh6c44EAAOg0bBPFzM0sbj0ALUUjCzYNdA0kCJYociyyFhIaLiVXux6nncktoUTA/0D3I/y8qa+Cdc62AxICiQJZAjWKDY43Nc2xfCt/v4XdquaVdjR3RW9wH6U+GoumSutgKZBkkASSAPLDJaKufTilYuXfce7jjmS1lkAOD96hozj28+v/fLK9uHTLunQEVKrKWu51R/uhBKTn31y+K1zZ3fft3eE4+x3IYRQyrCU3lu4f3t6Oq4szXMUFeGEbvVGQkMvDp7oidUNwzQtx6VeN8jU7Dyl1LGklGEY5m9W27Is0/zzUU3TbG3EMEzAfGxetPT22MgRfd794jezupEvFPdsEZBFNl8ovjT43J4tJqfnnhiCswDqhtFO8I/DQuS1HmGg1yb4bGHip7ErbQR/RBX/TYJj/wS3Lf4n+BNG8IcsmgR/952R4wux25PT8fFrv3NjTYK/GgkNffpGO8F3/k7LyRvN6cZi0Vgs+mHbUtbqRgvBH9HIv0TwgCw+SK3uB79/DADGdpQV5qQikQAAAABJRU5ErkJggg==]]></data>
	</file>
	<file>
	  <filename>/lib/fielddefs/ColorPicker/images/index.html</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PCEtLSBEVU1NWSBIVE1MIEZJTEUgLS0+]]></data>
	</file>
	<file>
	  <filename>/lib/fielddefs/ColorPicker/images/select.png</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[iVBORw0KGgoAAAANSUhEUgAAACQAAAAkCAYAAADhAJiYAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAGMSURBVHja7JjBSsNAEIZ3N6l6SVIiordcBLEgXrzniTx48hk89eAT5e7JgyL4AIoYmuSiNjH+E2ZhKdgWcZMWduBv00lgvu4OS+aXbdsKHVLKfXwdQWNoV9iNT2gGvUDvlCAW2X1IGeD3CRSKYaKEnsBSKU4MCSO4NjEIn7dJw+xBN9AEUpYhvqEH6Br6IAZikbg4gw74odsgCCZhGArf963S1HUtyrIUVVUR1CWn3xQ3sI7TKIqsw3RbgxpUi2oa6TFVHhkJ6Xled5HnOdFbgcEuiDiOBdeSxq3Rr33CMNKGlv1RJTYsHJADckAOyAE5oG0HsvXi0656/egbSCRJ4npou4GyLNscIA2zDpTqe2VWQVmfd9I0/Z8e4rOi/YuWnTPrHIxzYzZrm6bpZjOam0g2A7UWD9G5YktEx2NRFPpB6zBUi1wPIz2jwY3MhnPDbJhCxz2ZDc/QFZsNFPfaH7oY2I6hKMFyp1eBlq0cEkZvnVyw9MiWOWRHZMcyxBf37yvZMF13g+VHgAEAdy2A5iqs9mkAAAAASUVORK5CYII=]]></data>
	</file>
	<file>
	  <filename>/lib/fielddefs/ColorPicker/images/select2.png</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[iVBORw0KGgoAAAANSUhEUgAAACQAAAAkCAYAAADhAJiYAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAIGNIUk0AAHotAACAlQAA+NcAAIhSAABxRQAA6mYAADkHAAAh+QMnhVYAAAGMSURBVHja7JjBSsNAFEXPS6cq1KQtpegHCKUFceO+X+TCld/gyoVf1L0rF5WCghtBCaFpYkFN6rjoBKJgW8RpWsiF2TyGzJmZy0tyhZy01i3gEGgAu9jVOxACz0AAICKIAXGBDuBRjCJgJCKxYwpFwmDW7gAoc00ZzB5wCfQAxzLEJzAELoA3wNNat0RrfQy0zaTrKJ72wuiVJEmt0lSrioa3j+fWhsCZKfuOMXCm7ngSW4cBSJKU8SQG6ObKDQVUcwVJ0xkA7VYDz63ZcXA8xQ9CzFqSP7hffWJgxMZYtFGHDVMJVAKVQCVQCVQCbTuQsvRcvezzY91APDw+lR7abqB+v785QBnMKlDOuk9mGZSyDTQYDP7HQ6ZX6L+MRX1mlcaY5P7NtFIVSdMZfhDiB6HdrqwqP5to4phIJNNds+5mE63DNOsuwChXDsWEDSe5sOEKOFpT2HAPnJuwAeA2y4dOC45jACIRuclOYcQ8NCoMJrs6+faK1roNHJhEZMcyxIfx7wvgwzzS+xoAL3mHxLdQZBMAAAAASUVORK5CYII=]]></data>
	</file>
	<file>
	  <filename>/lib/fielddefs/ColorPicker/images/slider.png</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[iVBORw0KGgoAAAANSUhEUgAAABcAAAEECAIAAABMfTh2AAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAADNSURBVHja7Nw7DoMwDADQUFCrjh04FhyhA/di4JqVEKUftYwo7hCpz0OiDH5KRluRq3GcUiyG4dqsW9tesomu69a1eR/6PpNZlq+S0jHyKAqFQqFQKBQK5S+U0w+UOR3y8uutcsu9xbkgJVEoFAqFQqFQKOUrsWKCQqFQKBQKhUKh7FbqOVeoN0qs812KkigUCoVCoVAolNKVWBlAoVAoFAqFQqFQ9iqx5vmnDoh9Gy9ESRQKhUKhUCgUStnKYxLMc4xLdlRLLP8VdwEGACtbkjIi2/AfAAAAAElFTkSuQmCC]]></data>
	</file>
	<file>
	  <filename>/lib/fielddefs/ColorPicker/images/Thumbs.db</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[Pz8R4KGxGj8AAAAAAAAAAAAAAAAAAAAAPgADAD8/CQAGAAAAAAAAAAAAAAABAAAAAQAAAAAAAAAAEAAAAgAAAAIAAAA/Pz8/AAAAAAAAAAA/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/DQoAAAARAAAABAAAAAUAAAAGAAAABwAAAAgAAAAJAAAACwAAABwAAAAMAAAADQoAAAAOAAAADwAAABAAAAASAAAAPz8/PxMAAAAUAAAAFQAAABYAAAAXAAAAGAAAABkAAAAaAAAAGwAAAB0AAAA/Pz8/HgAAAB8AAAAgAAAAIQAAACIAAAAjAAAAJAAAACUAAAA/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/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]]></data>
	</file>
	<file>
	  <filename>/lib/fielddefs/ColorPicker/index.html</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PCEtLSBEVU1NWSBIVE1MIEZJTEUgLS0+]]></data>
	</file>
	<file>
	  <filename>/lib/fielddefs/ColorPicker/input.ColorPicker.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KCTxwIGNsYXNzPSJwYWdldGV4dCI+eyRmaWVsZGRlZi0+R2V0TmFtZSgpfXtpZiAkZmllbGRkZWYtPklzUmVxdWlyZWQoKX0qey9pZn06PC9wPgoJPHAgY2xhc3M9InBhZ2VpbnB1dCI+CgkJe2lmICRmaWVsZGRlZi0+R2V0RGVzYygpfSh7JGZpZWxkZGVmLT5HZXREZXNjKCl9KTxiciAvPnsvaWZ9CgkJPGlucHV0IHR5cGU9InRleHQiIG5hbWU9InskYWN0aW9uaWR9Y3VzdG9tZmllbGRbeyRmaWVsZGRlZi0+R2V0SWQoKX1dIiBpZD0ieyRhY3Rpb25pZH1jdXN0b21maWVsZFt7JGZpZWxkZGVmLT5HZXRJZCgpfV0iIHZhbHVlPSJ7JGZpZWxkZGVmLT5HZXRWYWx1ZSgpfSIgc2l6ZT0ieyRmaWVsZGRlZi0+R2V0T3B0aW9uVmFsdWUoJ3NpemUnKX0iIC8+Cgk8L3A+CgkKCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KCWpRdWVyeShkb2N1bWVudCkucmVhZHkoZnVuY3Rpb24oJCkgewoJCSQoIiN7JGFjdGlvbmlkfWN1c3RvbWZpZWxkXFxcW3skZmllbGRkZWYtPkdldElkKCl9XFxcXSIpCgkJLkNvbG9yUGlja2VyKHsKCQkJb25TaG93OiBmdW5jdGlvbiAoY29scGtyKSB7CgkJCQkkKGNvbHBrcikuZmFkZUluKDMwMCk7CgkJCQlyZXR1cm4gZmFsc2U7CgkJCX0sCgkJCW9uSGlkZTogZnVuY3Rpb24gKGNvbHBrcikgewoJCQkJJChjb2xwa3IpLmZhZGVPdXQoMzAwKTsKCQkJCXJldHVybiBmYWxzZTsKCQkJfSwKCQkJb25CZWZvcmVTaG93OiBmdW5jdGlvbiAoKSB7CgkJCQkkKHRoaXMpLkNvbG9yUGlja2VyU2V0Q29sb3IodGhpcy52YWx1ZSk7CgkJCX0sCgkJCW9uQ2hhbmdlOiBmdW5jdGlvbiAoaHNiLCBoZXgsIHJnYikgewoJCQkJJCgiI3skYWN0aW9uaWR9Y3VzdG9tZmllbGRcXFxbeyRmaWVsZGRlZi0+R2V0SWQoKX1cXFxdIikudmFsKGhleCk7CgkJCX0KCQl9KQoKCX0pOwoJPC9zY3JpcHQ+CgkKPC9kaXY+]]></data>
	</file>
	<file>
	  <filename>/lib/fielddefs/ColorPicker/lisefd-colorpicker.css</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[Lmxpc3RpdDItY29sb3JwaWNrZXItYWRtaW5saXN0aW5nLXZhbHVlIHsNCglkaXNwbGF5OiBibG9jazsNCgl3aWR0aDogMTRweDsNCgloZWlnaHQ6IDE0cHg7DQoJbWFyZ2luOiAwOw0KCXBhZGRpbmc6IDA7DQoJYm9yZGVyOiAxcHggc29saWQgIzk5OTsNCglib3JkZXItcmFkaXVzOiAycHg7DQp9DQouY29sb3JwaWNrZXIgew0KCXotaW5kZXg6IDk5OTk5OTsNCgl3aWR0aDogMzU2cHg7DQoJaGVpZ2h0OiAxNzZweDsNCglvdmVyZmxvdzogaGlkZGVuOw0KCXBvc2l0aW9uOiBhYnNvbHV0ZTsNCgliYWNrZ3JvdW5kOiB1cmwoaW1hZ2VzL2NvbG9ycGlja2VyX2JhY2tncm91bmQucG5nKTsNCglmb250LWZhbWlseTogQXJpYWwsIEhlbHZldGljYSwgc2Fucy1zZXJpZjsNCglkaXNwbGF5OiBub25lOw0KfQ0KLmNvbG9ycGlja2VyX2NvbG9yIHsNCgl3aWR0aDogMTUwcHg7DQoJaGVpZ2h0OiAxNTBweDsNCglsZWZ0OiAxNHB4Ow0KCXRvcDogMTNweDsNCglwb3NpdGlvbjogYWJzb2x1dGU7DQoJYmFja2dyb3VuZDogI2YwMDsNCglvdmVyZmxvdzogaGlkZGVuOw0KCWN1cnNvcjogY3Jvc3NoYWlyOw0KfQ0KLmNvbG9ycGlja2VyX2NvbG9yIGRpdiB7DQoJcG9zaXRpb246IGFic29sdXRlOw0KCXRvcDogMDsNCglsZWZ0OiAwOw0KCXdpZHRoOiAxNTBweDsNCgloZWlnaHQ6IDE1MHB4Ow0KCWJhY2tncm91bmQ6IHVybChpbWFnZXMvY29sb3JwaWNrZXJfb3ZlcmxheS5wbmcpOw0KfQ0KLmNvbG9ycGlja2VyX2NvbG9yIGRpdiBkaXYgew0KCXBvc2l0aW9uOiBhYnNvbHV0ZTsNCgl0b3A6IDA7DQoJbGVmdDogMDsNCgl3aWR0aDogMTFweDsNCgloZWlnaHQ6IDExcHg7DQoJb3ZlcmZsb3c6IGhpZGRlbjsNCgliYWNrZ3JvdW5kOiB1cmwoaW1hZ2VzL2NvbG9ycGlja2VyX3NlbGVjdC5naWYpOw0KCW1hcmdpbjogLTVweCAwIDAgLTVweDsNCn0NCi5jb2xvcnBpY2tlcl9odWUgew0KCXBvc2l0aW9uOiBhYnNvbHV0ZTsNCgl0b3A6IDEzcHg7DQoJbGVmdDogMTcxcHg7DQoJd2lkdGg6IDM1cHg7DQoJaGVpZ2h0OiAxNTBweDsNCgljdXJzb3I6IG4tcmVzaXplOw0KfQ0KLmNvbG9ycGlja2VyX2h1ZSBkaXYgew0KCXBvc2l0aW9uOiBhYnNvbHV0ZTsNCgl3aWR0aDogMzVweDsNCgloZWlnaHQ6IDlweDsNCglvdmVyZmxvdzogaGlkZGVuOw0KCWJhY2tncm91bmQ6IHVybChpbWFnZXMvY29sb3JwaWNrZXJfaW5kaWMuZ2lmKSBsZWZ0IHRvcDsNCgltYXJnaW46IC00cHggMCAwIDA7DQoJbGVmdDogMHB4Ow0KfQ0KLmNvbG9ycGlja2VyX25ld19jb2xvciB7DQoJcG9zaXRpb246IGFic29sdXRlOw0KCXdpZHRoOiA2MHB4Ow0KCWhlaWdodDogMzBweDsNCglsZWZ0OiAyMTNweDsNCgl0b3A6IDEzcHg7DQoJYmFja2dyb3VuZDogI2YwMDsNCn0NCi5jb2xvcnBpY2tlcl9jdXJyZW50X2NvbG9yIHsNCglwb3NpdGlvbjogYWJzb2x1dGU7DQoJd2lkdGg6IDYwcHg7DQoJaGVpZ2h0OiAzMHB4Ow0KCWxlZnQ6IDI4M3B4Ow0KCXRvcDogMTNweDsNCgliYWNrZ3JvdW5kOiAjZjAwOw0KfQ0KLmNvbG9ycGlja2VyIGlucHV0IHsNCgliYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDsNCglib3JkZXI6IDFweCBzb2xpZCB0cmFuc3BhcmVudDsNCglwb3NpdGlvbjogYWJzb2x1dGU7DQoJZm9udC1zaXplOiAxMHB4Ow0KCWZvbnQtZmFtaWx5OiBBcmlhbCwgSGVsdmV0aWNhLCBzYW5zLXNlcmlmOw0KCWNvbG9yOiAjODk4OTg5Ow0KCXRvcDogNHB4Ow0KCXJpZ2h0OiAxMXB4Ow0KCXRleHQtYWxpZ246IHJpZ2h0Ow0KCW1hcmdpbjogMDsNCglwYWRkaW5nOiAwOw0KCWhlaWdodDogMTFweDsNCn0NCi5jb2xvcnBpY2tlcl9oZXggew0KCXBvc2l0aW9uOiBhYnNvbHV0ZTsNCgl3aWR0aDogNzJweDsNCgloZWlnaHQ6IDIycHg7DQoJYmFja2dyb3VuZDogdXJsKGltYWdlcy9jb2xvcnBpY2tlcl9oZXgucG5nKSB0b3A7DQoJbGVmdDogMjEycHg7DQoJdG9wOiAxNDJweDsNCn0NCi5jb2xvcnBpY2tlcl9oZXggaW5wdXQgew0KCXJpZ2h0OiA2cHg7DQp9DQouY29sb3JwaWNrZXJfZmllbGQgew0KCWhlaWdodDogMjJweDsNCgl3aWR0aDogNjJweDsNCgliYWNrZ3JvdW5kLXBvc2l0aW9uOiB0b3A7DQoJcG9zaXRpb246IGFic29sdXRlOw0KfQ0KLmNvbG9ycGlja2VyX2ZpZWxkIHNwYW4gew0KCXBvc2l0aW9uOiBhYnNvbHV0ZTsNCgl3aWR0aDogMTJweDsNCgloZWlnaHQ6IDIycHg7DQoJb3ZlcmZsb3c6IGhpZGRlbjsNCgl0b3A6IDA7DQoJcmlnaHQ6IDA7DQoJY3Vyc29yOiBuLXJlc2l6ZTsNCn0NCi5jb2xvcnBpY2tlcl9yZ2JfciB7DQoJYmFja2dyb3VuZC1pbWFnZTogdXJsKGltYWdlcy9jb2xvcnBpY2tlcl9yZ2Jfci5wbmcpOw0KCXRvcDogNTJweDsNCglsZWZ0OiAyMTJweDsNCn0NCi5jb2xvcnBpY2tlcl9yZ2JfZyB7DQoJYmFja2dyb3VuZC1pbWFnZTogdXJsKGltYWdlcy9jb2xvcnBpY2tlcl9yZ2JfZy5wbmcpOw0KCXRvcDogODJweDsNCglsZWZ0OiAyMTJweDsNCn0NCi5jb2xvcnBpY2tlcl9yZ2JfYiB7DQoJYmFja2dyb3VuZC1pbWFnZTogdXJsKGltYWdlcy9jb2xvcnBpY2tlcl9yZ2JfYi5wbmcpOw0KCXRvcDogMTEycHg7DQoJbGVmdDogMjEycHg7DQp9DQouY29sb3JwaWNrZXJfaHNiX2ggew0KCWJhY2tncm91bmQtaW1hZ2U6IHVybChpbWFnZXMvY29sb3JwaWNrZXJfaHNiX2gucG5nKTsNCgl0b3A6IDUycHg7DQoJbGVmdDogMjgycHg7DQp9DQouY29sb3JwaWNrZXJfaHNiX3Mgew0KCWJhY2tncm91bmQtaW1hZ2U6IHVybChpbWFnZXMvY29sb3JwaWNrZXJfaHNiX3MucG5nKTsNCgl0b3A6IDgycHg7DQoJbGVmdDogMjgycHg7DQp9DQouY29sb3JwaWNrZXJfaHNiX2Igew0KCWJhY2tncm91bmQtaW1hZ2U6IHVybChpbWFnZXMvY29sb3JwaWNrZXJfaHNiX2IucG5nKTsNCgl0b3A6IDExMnB4Ow0KCWxlZnQ6IDI4MnB4Ow0KfQ0KLmNvbG9ycGlja2VyX3N1Ym1pdCB7DQoJcG9zaXRpb246IGFic29sdXRlOw0KCXdpZHRoOiAyMnB4Ow0KCWhlaWdodDogMjJweDsNCgliYWNrZ3JvdW5kOiB1cmwoaW1hZ2VzL2NvbG9ycGlja2VyX3N1Ym1pdC5wbmcpIHRvcDsNCglsZWZ0OiAzMjJweDsNCgl0b3A6IDE0MnB4Ow0KCW92ZXJmbG93OiBoaWRkZW47DQp9DQouY29sb3JwaWNrZXJfZm9jdXMgew0KCWJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlcjsNCn0NCi5jb2xvcnBpY2tlcl9oZXguY29sb3JwaWNrZXJfZm9jdXMgew0KCWJhY2tncm91bmQtcG9zaXRpb246IGJvdHRvbTsNCn0NCi5jb2xvcnBpY2tlcl9zdWJtaXQuY29sb3JwaWNrZXJfZm9jdXMgew0KCWJhY2tncm91bmQtcG9zaXRpb246IGJvdHRvbTsNCn0NCi5jb2xvcnBpY2tlcl9zbGlkZXIgew0KCWJhY2tncm91bmQtcG9zaXRpb246IGJvdHRvbTsNCn0NCg==]]></data>
	</file>
	<file>
	  <filename>/lib/fielddefs/ColorPicker/lisefd-colorpicker.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[LyoqDQogKg0KICogQ29sb3IgcGlja2VyDQogKiBBdXRob3I6IFN0ZWZhbiBQZXRyZSB3d3cuZXllY29uLnJvDQogKiANCiAqIER1YWwgbGljZW5zZWQgdW5kZXIgdGhlIE1JVCBhbmQgR1BMIGxpY2Vuc2VzDQogKiANCiAqLw0KKGZ1bmN0aW9uICgkKSB7DQoJdmFyIENvbG9yUGlja2VyID0gZnVuY3Rpb24gKCkgew0KCQl2YXINCgkJCWlkcyA9IHt9LA0KCQkJaW5BY3Rpb24sDQoJCQljaGFyTWluID0gNjUsDQoJCQl2aXNpYmxlLA0KCQkJdHBsID0gJzxkaXYgY2xhc3M9ImNvbG9ycGlja2VyIj48ZGl2IGNsYXNzPSJjb2xvcnBpY2tlcl9jb2xvciI+PGRpdj48ZGl2PjwvZGl2PjwvZGl2PjwvZGl2PjxkaXYgY2xhc3M9ImNvbG9ycGlja2VyX2h1ZSI+PGRpdj48L2Rpdj48L2Rpdj48ZGl2IGNsYXNzPSJjb2xvcnBpY2tlcl9uZXdfY29sb3IiPjwvZGl2PjxkaXYgY2xhc3M9ImNvbG9ycGlja2VyX2N1cnJlbnRfY29sb3IiPjwvZGl2PjxkaXYgY2xhc3M9ImNvbG9ycGlja2VyX2hleCI+PGlucHV0IHR5cGU9InRleHQiIG1heGxlbmd0aD0iNiIgc2l6ZT0iNiIgLz48L2Rpdj48ZGl2IGNsYXNzPSJjb2xvcnBpY2tlcl9yZ2JfciBjb2xvcnBpY2tlcl9maWVsZCI+PGlucHV0IHR5cGU9InRleHQiIG1heGxlbmd0aD0iMyIgc2l6ZT0iMyIgLz48c3Bhbj48L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz0iY29sb3JwaWNrZXJfcmdiX2cgY29sb3JwaWNrZXJfZmllbGQiPjxpbnB1dCB0eXBlPSJ0ZXh0IiBtYXhsZW5ndGg9IjMiIHNpemU9IjMiIC8+PHNwYW4+PC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9ImNvbG9ycGlja2VyX3JnYl9iIGNvbG9ycGlja2VyX2ZpZWxkIj48aW5wdXQgdHlwZT0idGV4dCIgbWF4bGVuZ3RoPSIzIiBzaXplPSIzIiAvPjxzcGFuPjwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPSJjb2xvcnBpY2tlcl9oc2JfaCBjb2xvcnBpY2tlcl9maWVsZCI+PGlucHV0IHR5cGU9InRleHQiIG1heGxlbmd0aD0iMyIgc2l6ZT0iMyIgLz48c3Bhbj48L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz0iY29sb3JwaWNrZXJfaHNiX3MgY29sb3JwaWNrZXJfZmllbGQiPjxpbnB1dCB0eXBlPSJ0ZXh0IiBtYXhsZW5ndGg9IjMiIHNpemU9IjMiIC8+PHNwYW4+PC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9ImNvbG9ycGlja2VyX2hzYl9iIGNvbG9ycGlja2VyX2ZpZWxkIj48aW5wdXQgdHlwZT0idGV4dCIgbWF4bGVuZ3RoPSIzIiBzaXplPSIzIiAvPjxzcGFuPjwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPSJjb2xvcnBpY2tlcl9zdWJtaXQiPjwvZGl2PjwvZGl2PicsDQoJCQlkZWZhdWx0cyA9IHsNCgkJCQlldmVudE5hbWU6ICdjbGljaycsDQoJCQkJb25TaG93OiBmdW5jdGlvbiAoKSB7fSwNCgkJCQlvbkJlZm9yZVNob3c6IGZ1bmN0aW9uKCl7fSwNCgkJCQlvbkhpZGU6IGZ1bmN0aW9uICgpIHt9LA0KCQkJCW9uQ2hhbmdlOiBmdW5jdGlvbiAoKSB7fSwNCgkJCQlvblN1Ym1pdDogZnVuY3Rpb24gKCkge30sDQoJCQkJY29sb3I6ICdmZjAwMDAnLA0KCQkJCWxpdmVQcmV2aWV3OiB0cnVlLA0KCQkJCWZsYXQ6IGZhbHNlDQoJCQl9LA0KCQkJZmlsbFJHQkZpZWxkcyA9IGZ1bmN0aW9uICAoaHNiLCBjYWwpIHsNCgkJCQl2YXIgcmdiID0gSFNCVG9SR0IoaHNiKTsNCgkJCQkkKGNhbCkuZGF0YSgnY29sb3JwaWNrZXInKS5maWVsZHMNCgkJCQkJLmVxKDEpLnZhbChyZ2IucikuZW5kKCkNCgkJCQkJLmVxKDIpLnZhbChyZ2IuZykuZW5kKCkNCgkJCQkJLmVxKDMpLnZhbChyZ2IuYikuZW5kKCk7DQoJCQl9LA0KCQkJZmlsbEhTQkZpZWxkcyA9IGZ1bmN0aW9uICAoaHNiLCBjYWwpIHsNCgkJCQkkKGNhbCkuZGF0YSgnY29sb3JwaWNrZXInKS5maWVsZHMNCgkJCQkJLmVxKDQpLnZhbChoc2IuaCkuZW5kKCkNCgkJCQkJLmVxKDUpLnZhbChoc2IucykuZW5kKCkNCgkJCQkJLmVxKDYpLnZhbChoc2IuYikuZW5kKCk7DQoJCQl9LA0KCQkJZmlsbEhleEZpZWxkcyA9IGZ1bmN0aW9uIChoc2IsIGNhbCkgew0KCQkJCSQoY2FsKS5kYXRhKCdjb2xvcnBpY2tlcicpLmZpZWxkcw0KCQkJCQkuZXEoMCkudmFsKEhTQlRvSGV4KGhzYikpLmVuZCgpOw0KCQkJfSwNCgkJCXNldFNlbGVjdG9yID0gZnVuY3Rpb24gKGhzYiwgY2FsKSB7DQoJCQkJJChjYWwpLmRhdGEoJ2NvbG9ycGlja2VyJykuc2VsZWN0b3IuY3NzKCdiYWNrZ3JvdW5kQ29sb3InLCAnIycgKyBIU0JUb0hleCh7aDogaHNiLmgsIHM6IDEwMCwgYjogMTAwfSkpOw0KCQkJCSQoY2FsKS5kYXRhKCdjb2xvcnBpY2tlcicpLnNlbGVjdG9ySW5kaWMuY3NzKHsNCgkJCQkJbGVmdDogcGFyc2VJbnQoMTUwICogaHNiLnMvMTAwLCAxMCksDQoJCQkJCXRvcDogcGFyc2VJbnQoMTUwICogKDEwMC1oc2IuYikvMTAwLCAxMCkNCgkJCQl9KTsNCgkJCX0sDQoJCQlzZXRIdWUgPSBmdW5jdGlvbiAoaHNiLCBjYWwpIHsNCgkJCQkkKGNhbCkuZGF0YSgnY29sb3JwaWNrZXInKS5odWUuY3NzKCd0b3AnLCBwYXJzZUludCgxNTAgLSAxNTAgKiBoc2IuaC8zNjAsIDEwKSk7DQoJCQl9LA0KCQkJc2V0Q3VycmVudENvbG9yID0gZnVuY3Rpb24gKGhzYiwgY2FsKSB7DQoJCQkJJChjYWwpLmRhdGEoJ2NvbG9ycGlja2VyJykuY3VycmVudENvbG9yLmNzcygnYmFja2dyb3VuZENvbG9yJywgJyMnICsgSFNCVG9IZXgoaHNiKSk7DQoJCQl9LA0KCQkJc2V0TmV3Q29sb3IgPSBmdW5jdGlvbiAoaHNiLCBjYWwpIHsNCgkJCQkkKGNhbCkuZGF0YSgnY29sb3JwaWNrZXInKS5uZXdDb2xvci5jc3MoJ2JhY2tncm91bmRDb2xvcicsICcjJyArIEhTQlRvSGV4KGhzYikpOw0KCQkJfSwNCgkJCWtleURvd24gPSBmdW5jdGlvbiAoZXYpIHsNCgkJCQl2YXIgcHJlc3NlZEtleSA9IGV2LmNoYXJDb2RlIHx8IGV2LmtleUNvZGUgfHwgLTE7DQoJCQkJaWYgKChwcmVzc2VkS2V5ID4gY2hhck1pbiAmJiBwcmVzc2VkS2V5IDw9IDkwKSB8fCBwcmVzc2VkS2V5ID09IDMyKSB7DQoJCQkJCXJldHVybiBmYWxzZTsNCgkJCQl9DQoJCQkJdmFyIGNhbCA9ICQodGhpcykucGFyZW50KCkucGFyZW50KCk7DQoJCQkJaWYgKGNhbC5kYXRhKCdjb2xvcnBpY2tlcicpLmxpdmVQcmV2aWV3ID09PSB0cnVlKSB7DQoJCQkJCWNoYW5nZS5hcHBseSh0aGlzKTsNCgkJCQl9DQoJCQl9LA0KCQkJY2hhbmdlID0gZnVuY3Rpb24gKGV2KSB7DQoJCQkJdmFyIGNhbCA9ICQodGhpcykucGFyZW50KCkucGFyZW50KCksIGNvbDsNCgkJCQlpZiAodGhpcy5wYXJlbnROb2RlLmNsYXNzTmFtZS5pbmRleE9mKCdfaGV4JykgPiAwKSB7DQoJCQkJCWNhbC5kYXRhKCdjb2xvcnBpY2tlcicpLmNvbG9yID0gY29sID0gSGV4VG9IU0IoZml4SGV4KHRoaXMudmFsdWUpKTsNCgkJCQl9IGVsc2UgaWYgKHRoaXMucGFyZW50Tm9kZS5jbGFzc05hbWUuaW5kZXhPZignX2hzYicpID4gMCkgew0KCQkJCQljYWwuZGF0YSgnY29sb3JwaWNrZXInKS5jb2xvciA9IGNvbCA9IGZpeEhTQih7DQoJCQkJCQloOiBwYXJzZUludChjYWwuZGF0YSgnY29sb3JwaWNrZXInKS5maWVsZHMuZXEoNCkudmFsKCksIDEwKSwNCgkJCQkJCXM6IHBhcnNlSW50KGNhbC5kYXRhKCdjb2xvcnBpY2tlcicpLmZpZWxkcy5lcSg1KS52YWwoKSwgMTApLA0KCQkJCQkJYjogcGFyc2VJbnQoY2FsLmRhdGEoJ2NvbG9ycGlja2VyJykuZmllbGRzLmVxKDYpLnZhbCgpLCAxMCkNCgkJCQkJfSk7DQoJCQkJfSBlbHNlIHsNCgkJCQkJY2FsLmRhdGEoJ2NvbG9ycGlja2VyJykuY29sb3IgPSBjb2wgPSBSR0JUb0hTQihmaXhSR0Ioew0KCQkJCQkJcjogcGFyc2VJbnQoY2FsLmRhdGEoJ2NvbG9ycGlja2VyJykuZmllbGRzLmVxKDEpLnZhbCgpLCAxMCksDQoJCQkJCQlnOiBwYXJzZUludChjYWwuZGF0YSgnY29sb3JwaWNrZXInKS5maWVsZHMuZXEoMikudmFsKCksIDEwKSwNCgkJCQkJCWI6IHBhcnNlSW50KGNhbC5kYXRhKCdjb2xvcnBpY2tlcicpLmZpZWxkcy5lcSgzKS52YWwoKSwgMTApDQoJCQkJCX0pKTsNCgkJCQl9DQoJCQkJaWYgKGV2KSB7DQoJCQkJCWZpbGxSR0JGaWVsZHMoY29sLCBjYWwuZ2V0KDApKTsNCgkJCQkJZmlsbEhleEZpZWxkcyhjb2wsIGNhbC5nZXQoMCkpOw0KCQkJCQlmaWxsSFNCRmllbGRzKGNvbCwgY2FsLmdldCgwKSk7DQoJCQkJfQ0KCQkJCXNldFNlbGVjdG9yKGNvbCwgY2FsLmdldCgwKSk7DQoJCQkJc2V0SHVlKGNvbCwgY2FsLmdldCgwKSk7DQoJCQkJc2V0TmV3Q29sb3IoY29sLCBjYWwuZ2V0KDApKTsNCgkJCQljYWwuZGF0YSgnY29sb3JwaWNrZXInKS5vbkNoYW5nZS5hcHBseShjYWwsIFtjb2wsIEhTQlRvSGV4KGNvbCksIEhTQlRvUkdCKGNvbCldKTsNCgkJCX0sDQoJCQlibHVyID0gZnVuY3Rpb24gKGV2KSB7DQoJCQkJdmFyIGNhbCA9ICQodGhpcykucGFyZW50KCkucGFyZW50KCk7DQoJCQkJY2FsLmRhdGEoJ2NvbG9ycGlja2VyJykuZmllbGRzLnBhcmVudCgpLnJlbW92ZUNsYXNzKCdjb2xvcnBpY2tlcl9mb2N1cycpOw0KCQkJfSwNCgkJCWZvY3VzID0gZnVuY3Rpb24gKCkgew0KCQkJCWNoYXJNaW4gPSB0aGlzLnBhcmVudE5vZGUuY2xhc3NOYW1lLmluZGV4T2YoJ19oZXgnKSA+IDAgPyA3MCA6IDY1Ow0KCQkJCSQodGhpcykucGFyZW50KCkucGFyZW50KCkuZGF0YSgnY29sb3JwaWNrZXInKS5maWVsZHMucGFyZW50KCkucmVtb3ZlQ2xhc3MoJ2NvbG9ycGlja2VyX2ZvY3VzJyk7DQoJCQkJJCh0aGlzKS5wYXJlbnQoKS5hZGRDbGFzcygnY29sb3JwaWNrZXJfZm9jdXMnKTsNCgkJCX0sDQoJCQlkb3duSW5jcmVtZW50ID0gZnVuY3Rpb24gKGV2KSB7DQoJCQkJdmFyIGZpZWxkID0gJCh0aGlzKS5wYXJlbnQoKS5maW5kKCdpbnB1dCcpLmZvY3VzKCk7DQoJCQkJdmFyIGN1cnJlbnQgPSB7DQoJCQkJCWVsOiAkKHRoaXMpLnBhcmVudCgpLmFkZENsYXNzKCdjb2xvcnBpY2tlcl9zbGlkZXInKSwNCgkJCQkJbWF4OiB0aGlzLnBhcmVudE5vZGUuY2xhc3NOYW1lLmluZGV4T2YoJ19oc2JfaCcpID4gMCA/IDM2MCA6ICh0aGlzLnBhcmVudE5vZGUuY2xhc3NOYW1lLmluZGV4T2YoJ19oc2InKSA+IDAgPyAxMDAgOiAyNTUpLA0KCQkJCQl5OiBldi5wYWdlWSwNCgkJCQkJZmllbGQ6IGZpZWxkLA0KCQkJCQl2YWw6IHBhcnNlSW50KGZpZWxkLnZhbCgpLCAxMCksDQoJCQkJCXByZXZpZXc6ICQodGhpcykucGFyZW50KCkucGFyZW50KCkuZGF0YSgnY29sb3JwaWNrZXInKS5saXZlUHJldmlldwkJCQkJDQoJCQkJfTsNCgkJCQkkKGRvY3VtZW50KS5iaW5kKCdtb3VzZXVwJywgY3VycmVudCwgdXBJbmNyZW1lbnQpOw0KCQkJCSQoZG9jdW1lbnQpLmJpbmQoJ21vdXNlbW92ZScsIGN1cnJlbnQsIG1vdmVJbmNyZW1lbnQpOw0KCQkJfSwNCgkJCW1vdmVJbmNyZW1lbnQgPSBmdW5jdGlvbiAoZXYpIHsNCgkJCQlldi5kYXRhLmZpZWxkLnZhbChNYXRoLm1heCgwLCBNYXRoLm1pbihldi5kYXRhLm1heCwgcGFyc2VJbnQoZXYuZGF0YS52YWwgKyBldi5wYWdlWSAtIGV2LmRhdGEueSwgMTApKSkpOw0KCQkJCWlmIChldi5kYXRhLnByZXZpZXcpIHsNCgkJCQkJY2hhbmdlLmFwcGx5KGV2LmRhdGEuZmllbGQuZ2V0KDApLCBbdHJ1ZV0pOw0KCQkJCX0NCgkJCQlyZXR1cm4gZmFsc2U7DQoJCQl9LA0KCQkJdXBJbmNyZW1lbnQgPSBmdW5jdGlvbiAoZXYpIHsNCgkJCQljaGFuZ2UuYXBwbHkoZXYuZGF0YS5maWVsZC5nZXQoMCksIFt0cnVlXSk7DQoJCQkJZXYuZGF0YS5lbC5yZW1vdmVDbGFzcygnY29sb3JwaWNrZXJfc2xpZGVyJykuZmluZCgnaW5wdXQnKS5mb2N1cygpOw0KCQkJCSQoZG9jdW1lbnQpLnVuYmluZCgnbW91c2V1cCcsIHVwSW5jcmVtZW50KTsNCgkJCQkkKGRvY3VtZW50KS51bmJpbmQoJ21vdXNlbW92ZScsIG1vdmVJbmNyZW1lbnQpOw0KCQkJCXJldHVybiBmYWxzZTsNCgkJCX0sDQoJCQlkb3duSHVlID0gZnVuY3Rpb24gKGV2KSB7DQoJCQkJdmFyIGN1cnJlbnQgPSB7DQoJCQkJCWNhbDogJCh0aGlzKS5wYXJlbnQoKSwNCgkJCQkJeTogJCh0aGlzKS5vZmZzZXQoKS50b3ANCgkJCQl9Ow0KCQkJCWN1cnJlbnQucHJldmlldyA9IGN1cnJlbnQuY2FsLmRhdGEoJ2NvbG9ycGlja2VyJykubGl2ZVByZXZpZXc7DQoJCQkJJChkb2N1bWVudCkuYmluZCgnbW91c2V1cCcsIGN1cnJlbnQsIHVwSHVlKTsNCgkJCQkkKGRvY3VtZW50KS5iaW5kKCdtb3VzZW1vdmUnLCBjdXJyZW50LCBtb3ZlSHVlKTsNCgkJCX0sDQoJCQltb3ZlSHVlID0gZnVuY3Rpb24gKGV2KSB7DQoJCQkJY2hhbmdlLmFwcGx5KA0KCQkJCQlldi5kYXRhLmNhbC5kYXRhKCdjb2xvcnBpY2tlcicpDQoJCQkJCQkuZmllbGRzDQoJCQkJCQkuZXEoNCkNCgkJCQkJCS52YWwocGFyc2VJbnQoMzYwKigxNTAgLSBNYXRoLm1heCgwLE1hdGgubWluKDE1MCwoZXYucGFnZVkgLSBldi5kYXRhLnkpKSkpLzE1MCwgMTApKQ0KCQkJCQkJLmdldCgwKSwNCgkJCQkJW2V2LmRhdGEucHJldmlld10NCgkJCQkpOw0KCQkJCXJldHVybiBmYWxzZTsNCgkJCX0sDQoJCQl1cEh1ZSA9IGZ1bmN0aW9uIChldikgew0KCQkJCWZpbGxSR0JGaWVsZHMoZXYuZGF0YS5jYWwuZGF0YSgnY29sb3JwaWNrZXInKS5jb2xvciwgZXYuZGF0YS5jYWwuZ2V0KDApKTsNCgkJCQlmaWxsSGV4RmllbGRzKGV2LmRhdGEuY2FsLmRhdGEoJ2NvbG9ycGlja2VyJykuY29sb3IsIGV2LmRhdGEuY2FsLmdldCgwKSk7DQoJCQkJJChkb2N1bWVudCkudW5iaW5kKCdtb3VzZXVwJywgdXBIdWUpOw0KCQkJCSQoZG9jdW1lbnQpLnVuYmluZCgnbW91c2Vtb3ZlJywgbW92ZUh1ZSk7DQoJCQkJcmV0dXJuIGZhbHNlOw0KCQkJfSwNCgkJCWRvd25TZWxlY3RvciA9IGZ1bmN0aW9uIChldikgew0KCQkJCXZhciBjdXJyZW50ID0gew0KCQkJCQljYWw6ICQodGhpcykucGFyZW50KCksDQoJCQkJCXBvczogJCh0aGlzKS5vZmZzZXQoKQ0KCQkJCX07DQoJCQkJY3VycmVudC5wcmV2aWV3ID0gY3VycmVudC5jYWwuZGF0YSgnY29sb3JwaWNrZXInKS5saXZlUHJldmlldzsNCgkJCQkkKGRvY3VtZW50KS5iaW5kKCdtb3VzZXVwJywgY3VycmVudCwgdXBTZWxlY3Rvcik7DQoJCQkJJChkb2N1bWVudCkuYmluZCgnbW91c2Vtb3ZlJywgY3VycmVudCwgbW92ZVNlbGVjdG9yKTsNCgkJCX0sDQoJCQltb3ZlU2VsZWN0b3IgPSBmdW5jdGlvbiAoZXYpIHsNCgkJCQljaGFuZ2UuYXBwbHkoDQoJCQkJCWV2LmRhdGEuY2FsLmRhdGEoJ2NvbG9ycGlja2VyJykNCgkJCQkJCS5maWVsZHMNCgkJCQkJCS5lcSg2KQ0KCQkJCQkJLnZhbChwYXJzZUludCgxMDAqKDE1MCAtIE1hdGgubWF4KDAsTWF0aC5taW4oMTUwLChldi5wYWdlWSAtIGV2LmRhdGEucG9zLnRvcCkpKSkvMTUwLCAxMCkpDQoJCQkJCQkuZW5kKCkNCgkJCQkJCS5lcSg1KQ0KCQkJCQkJLnZhbChwYXJzZUludCgxMDAqKE1hdGgubWF4KDAsTWF0aC5taW4oMTUwLChldi5wYWdlWCAtIGV2LmRhdGEucG9zLmxlZnQpKSkpLzE1MCwgMTApKQ0KCQkJCQkJLmdldCgwKSwNCgkJCQkJW2V2LmRhdGEucHJldmlld10NCgkJCQkpOw0KCQkJCXJldHVybiBmYWxzZTsNCgkJCX0sDQoJCQl1cFNlbGVjdG9yID0gZnVuY3Rpb24gKGV2KSB7DQoJCQkJZmlsbFJHQkZpZWxkcyhldi5kYXRhLmNhbC5kYXRhKCdjb2xvcnBpY2tlcicpLmNvbG9yLCBldi5kYXRhLmNhbC5nZXQoMCkpOw0KCQkJCWZpbGxIZXhGaWVsZHMoZXYuZGF0YS5jYWwuZGF0YSgnY29sb3JwaWNrZXInKS5jb2xvciwgZXYuZGF0YS5jYWwuZ2V0KDApKTsNCgkJCQkkKGRvY3VtZW50KS51bmJpbmQoJ21vdXNldXAnLCB1cFNlbGVjdG9yKTsNCgkJCQkkKGRvY3VtZW50KS51bmJpbmQoJ21vdXNlbW92ZScsIG1vdmVTZWxlY3Rvcik7DQoJCQkJcmV0dXJuIGZhbHNlOw0KCQkJfSwNCgkJCWVudGVyU3VibWl0ID0gZnVuY3Rpb24gKGV2KSB7DQoJCQkJJCh0aGlzKS5hZGRDbGFzcygnY29sb3JwaWNrZXJfZm9jdXMnKTsNCgkJCX0sDQoJCQlsZWF2ZVN1Ym1pdCA9IGZ1bmN0aW9uIChldikgew0KCQkJCSQodGhpcykucmVtb3ZlQ2xhc3MoJ2NvbG9ycGlja2VyX2ZvY3VzJyk7DQoJCQl9LA0KCQkJY2xpY2tTdWJtaXQgPSBmdW5jdGlvbiAoZXYpIHsNCgkJCQl2YXIgY2FsID0gJCh0aGlzKS5wYXJlbnQoKTsNCgkJCQl2YXIgY29sID0gY2FsLmRhdGEoJ2NvbG9ycGlja2VyJykuY29sb3I7DQoJCQkJY2FsLmRhdGEoJ2NvbG9ycGlja2VyJykub3JpZ0NvbG9yID0gY29sOw0KCQkJCXNldEN1cnJlbnRDb2xvcihjb2wsIGNhbC5nZXQoMCkpOw0KCQkJCWNhbC5kYXRhKCdjb2xvcnBpY2tlcicpLm9uU3VibWl0KGNvbCwgSFNCVG9IZXgoY29sKSwgSFNCVG9SR0IoY29sKSwgY2FsLmRhdGEoJ2NvbG9ycGlja2VyJykuZWwpOw0KCQkJfSwNCgkJCXNob3cgPSBmdW5jdGlvbiAoZXYpIHsNCgkJCQl2YXIgY2FsID0gJCgnIycgKyAkKHRoaXMpLmRhdGEoJ2NvbG9ycGlja2VySWQnKSk7DQoJCQkJY2FsLmRhdGEoJ2NvbG9ycGlja2VyJykub25CZWZvcmVTaG93LmFwcGx5KHRoaXMsIFtjYWwuZ2V0KDApXSk7DQoJCQkJdmFyIHBvcyA9ICQodGhpcykub2Zmc2V0KCk7DQoJCQkJdmFyIHZpZXdQb3J0ID0gZ2V0Vmlld3BvcnQoKTsNCgkJCQl2YXIgdG9wID0gcG9zLnRvcCArIHRoaXMub2Zmc2V0SGVpZ2h0Ow0KCQkJCXZhciBsZWZ0ID0gcG9zLmxlZnQ7DQoJCQkJaWYgKHRvcCArIDE3NiA+IHZpZXdQb3J0LnQgKyB2aWV3UG9ydC5oKSB7DQoJCQkJCXRvcCAtPSB0aGlzLm9mZnNldEhlaWdodCArIDE3NjsNCgkJCQl9DQoJCQkJaWYgKGxlZnQgKyAzNTYgPiB2aWV3UG9ydC5sICsgdmlld1BvcnQudykgew0KCQkJCQlsZWZ0IC09IDM1NjsNCgkJCQl9DQoJCQkJY2FsLmNzcyh7bGVmdDogbGVmdCArICdweCcsIHRvcDogdG9wICsgJ3B4J30pOw0KCQkJCWlmIChjYWwuZGF0YSgnY29sb3JwaWNrZXInKS5vblNob3cuYXBwbHkodGhpcywgW2NhbC5nZXQoMCldKSAhPSBmYWxzZSkgew0KCQkJCQljYWwuc2hvdygpOw0KCQkJCX0NCgkJCQkkKGRvY3VtZW50KS5iaW5kKCdtb3VzZWRvd24nLCB7Y2FsOiBjYWx9LCBoaWRlKTsNCgkJCQlyZXR1cm4gZmFsc2U7DQoJCQl9LA0KCQkJaGlkZSA9IGZ1bmN0aW9uIChldikgew0KCQkJCWlmICghaXNDaGlsZE9mKGV2LmRhdGEuY2FsLmdldCgwKSwgZXYudGFyZ2V0LCBldi5kYXRhLmNhbC5nZXQoMCkpKSB7DQoJCQkJCWlmIChldi5kYXRhLmNhbC5kYXRhKCdjb2xvcnBpY2tlcicpLm9uSGlkZS5hcHBseSh0aGlzLCBbZXYuZGF0YS5jYWwuZ2V0KDApXSkgIT0gZmFsc2UpIHsNCgkJCQkJCWV2LmRhdGEuY2FsLmhpZGUoKTsNCgkJCQkJfQ0KCQkJCQkkKGRvY3VtZW50KS51bmJpbmQoJ21vdXNlZG93bicsIGhpZGUpOw0KCQkJCX0NCgkJCX0sDQoJCQlpc0NoaWxkT2YgPSBmdW5jdGlvbihwYXJlbnRFbCwgZWwsIGNvbnRhaW5lcikgew0KCQkJCWlmIChwYXJlbnRFbCA9PSBlbCkgew0KCQkJCQlyZXR1cm4gdHJ1ZTsNCgkJCQl9DQoJCQkJaWYgKHBhcmVudEVsLmNvbnRhaW5zKSB7DQoJCQkJCXJldHVybiBwYXJlbnRFbC5jb250YWlucyhlbCk7DQoJCQkJfQ0KCQkJCWlmICggcGFyZW50RWwuY29tcGFyZURvY3VtZW50UG9zaXRpb24gKSB7DQoJCQkJCXJldHVybiAhIShwYXJlbnRFbC5jb21wYXJlRG9jdW1lbnRQb3NpdGlvbihlbCkgJiAxNik7DQoJCQkJfQ0KCQkJCXZhciBwckVsID0gZWwucGFyZW50Tm9kZTsNCgkJCQl3aGlsZShwckVsICYmIHByRWwgIT0gY29udGFpbmVyKSB7DQoJCQkJCWlmIChwckVsID09IHBhcmVudEVsKQ0KCQkJCQkJcmV0dXJuIHRydWU7DQoJCQkJCXByRWwgPSBwckVsLnBhcmVudE5vZGU7DQoJCQkJfQ0KCQkJCXJldHVybiBmYWxzZTsNCgkJCX0sDQoJCQlnZXRWaWV3cG9ydCA9IGZ1bmN0aW9uICgpIHsNCgkJCQl2YXIgbSA9IGRvY3VtZW50LmNvbXBhdE1vZGUgPT0gJ0NTUzFDb21wYXQnOw0KCQkJCXJldHVybiB7DQoJCQkJCWwgOiB3aW5kb3cucGFnZVhPZmZzZXQgfHwgKG0gPyBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuc2Nyb2xsTGVmdCA6IGRvY3VtZW50LmJvZHkuc2Nyb2xsTGVmdCksDQoJCQkJCXQgOiB3aW5kb3cucGFnZVlPZmZzZXQgfHwgKG0gPyBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuc2Nyb2xsVG9wIDogZG9jdW1lbnQuYm9keS5zY3JvbGxUb3ApLA0KCQkJCQl3IDogd2luZG93LmlubmVyV2lkdGggfHwgKG0gPyBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuY2xpZW50V2lkdGggOiBkb2N1bWVudC5ib2R5LmNsaWVudFdpZHRoKSwNCgkJCQkJaCA6IHdpbmRvdy5pbm5lckhlaWdodCB8fCAobSA/IGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5jbGllbnRIZWlnaHQgOiBkb2N1bWVudC5ib2R5LmNsaWVudEhlaWdodCkNCgkJCQl9Ow0KCQkJfSwNCgkJCWZpeEhTQiA9IGZ1bmN0aW9uIChoc2IpIHsNCgkJCQlyZXR1cm4gew0KCQkJCQloOiBNYXRoLm1pbigzNjAsIE1hdGgubWF4KDAsIGhzYi5oKSksDQoJCQkJCXM6IE1hdGgubWluKDEwMCwgTWF0aC5tYXgoMCwgaHNiLnMpKSwNCgkJCQkJYjogTWF0aC5taW4oMTAwLCBNYXRoLm1heCgwLCBoc2IuYikpDQoJCQkJfTsNCgkJCX0sIA0KCQkJZml4UkdCID0gZnVuY3Rpb24gKHJnYikgew0KCQkJCXJldHVybiB7DQoJCQkJCXI6IE1hdGgubWluKDI1NSwgTWF0aC5tYXgoMCwgcmdiLnIpKSwNCgkJCQkJZzogTWF0aC5taW4oMjU1LCBNYXRoLm1heCgwLCByZ2IuZykpLA0KCQkJCQliOiBNYXRoLm1pbigyNTUsIE1hdGgubWF4KDAsIHJnYi5iKSkNCgkJCQl9Ow0KCQkJfSwNCgkJCWZpeEhleCA9IGZ1bmN0aW9uIChoZXgpIHsNCgkJCQl2YXIgbGVuID0gNiAtIGhleC5sZW5ndGg7DQoJCQkJaWYgKGxlbiA+IDApIHsNCgkJCQkJdmFyIG8gPSBbXTsNCgkJCQkJZm9yICh2YXIgaT0wOyBpPGxlbjsgaSsrKSB7DQoJCQkJCQlvLnB1c2goJzAnKTsNCgkJCQkJfQ0KCQkJCQlvLnB1c2goaGV4KTsNCgkJCQkJaGV4ID0gby5qb2luKCcnKTsNCgkJCQl9DQoJCQkJcmV0dXJuIGhleDsNCgkJCX0sIA0KCQkJSGV4VG9SR0IgPSBmdW5jdGlvbiAoaGV4KSB7DQoJCQkJdmFyIGhleCA9IHBhcnNlSW50KCgoaGV4LmluZGV4T2YoJyMnKSA+IC0xKSA/IGhleC5zdWJzdHJpbmcoMSkgOiBoZXgpLCAxNik7DQoJCQkJcmV0dXJuIHtyOiBoZXggPj4gMTYsIGc6IChoZXggJiAweDAwRkYwMCkgPj4gOCwgYjogKGhleCAmIDB4MDAwMEZGKX07DQoJCQl9LA0KCQkJSGV4VG9IU0IgPSBmdW5jdGlvbiAoaGV4KSB7DQoJCQkJcmV0dXJuIFJHQlRvSFNCKEhleFRvUkdCKGhleCkpOw0KCQkJfSwNCgkJCVJHQlRvSFNCID0gZnVuY3Rpb24gKHJnYikgew0KCQkJCXZhciBoc2IgPSB7DQoJCQkJCWg6IDAsDQoJCQkJCXM6IDAsDQoJCQkJCWI6IDANCgkJCQl9Ow0KCQkJCXZhciBtaW4gPSBNYXRoLm1pbihyZ2IuciwgcmdiLmcsIHJnYi5iKTsNCgkJCQl2YXIgbWF4ID0gTWF0aC5tYXgocmdiLnIsIHJnYi5nLCByZ2IuYik7DQoJCQkJdmFyIGRlbHRhID0gbWF4IC0gbWluOw0KCQkJCWhzYi5iID0gbWF4Ow0KCQkJCWlmIChtYXggIT0gMCkgew0KCQkJCQkNCgkJCQl9DQoJCQkJaHNiLnMgPSBtYXggIT0gMCA/IDI1NSAqIGRlbHRhIC8gbWF4IDogMDsNCgkJCQlpZiAoaHNiLnMgIT0gMCkgew0KCQkJCQlpZiAocmdiLnIgPT0gbWF4KSB7DQoJCQkJCQloc2IuaCA9IChyZ2IuZyAtIHJnYi5iKSAvIGRlbHRhOw0KCQkJCQl9IGVsc2UgaWYgKHJnYi5nID09IG1heCkgew0KCQkJCQkJaHNiLmggPSAyICsgKHJnYi5iIC0gcmdiLnIpIC8gZGVsdGE7DQoJCQkJCX0gZWxzZSB7DQoJCQkJCQloc2IuaCA9IDQgKyAocmdiLnIgLSByZ2IuZykgLyBkZWx0YTsNCgkJCQkJfQ0KCQkJCX0gZWxzZSB7DQoJCQkJCWhzYi5oID0gLTE7DQoJCQkJfQ0KCQkJCWhzYi5oICo9IDYwOw0KCQkJCWlmIChoc2IuaCA8IDApIHsNCgkJCQkJaHNiLmggKz0gMzYwOw0KCQkJCX0NCgkJCQloc2IucyAqPSAxMDAvMjU1Ow0KCQkJCWhzYi5iICo9IDEwMC8yNTU7DQoJCQkJcmV0dXJuIGhzYjsNCgkJCX0sDQoJCQlIU0JUb1JHQiA9IGZ1bmN0aW9uIChoc2IpIHsNCgkJCQl2YXIgcmdiID0ge307DQoJCQkJdmFyIGggPSBNYXRoLnJvdW5kKGhzYi5oKTsNCgkJCQl2YXIgcyA9IE1hdGgucm91bmQoaHNiLnMqMjU1LzEwMCk7DQoJCQkJdmFyIHYgPSBNYXRoLnJvdW5kKGhzYi5iKjI1NS8xMDApOw0KCQkJCWlmKHMgPT0gMCkgew0KCQkJCQlyZ2IuciA9IHJnYi5nID0gcmdiLmIgPSB2Ow0KCQkJCX0gZWxzZSB7DQoJCQkJCXZhciB0MSA9IHY7DQoJCQkJCXZhciB0MiA9ICgyNTUtcykqdi8yNTU7DQoJCQkJCXZhciB0MyA9ICh0MS10MikqKGglNjApLzYwOw0KCQkJCQlpZihoPT0zNjApIGggPSAwOw0KCQkJCQlpZihoPDYwKSB7cmdiLnI9dDE7CXJnYi5iPXQyOyByZ2IuZz10Mit0M30NCgkJCQkJZWxzZSBpZihoPDEyMCkge3JnYi5nPXQxOyByZ2IuYj10MjsJcmdiLnI9dDEtdDN9DQoJCQkJCWVsc2UgaWYoaDwxODApIHtyZ2IuZz10MTsgcmdiLnI9dDI7CXJnYi5iPXQyK3QzfQ0KCQkJCQllbHNlIGlmKGg8MjQwKSB7cmdiLmI9dDE7IHJnYi5yPXQyOwlyZ2IuZz10MS10M30NCgkJCQkJZWxzZSBpZihoPDMwMCkge3JnYi5iPXQxOyByZ2IuZz10MjsJcmdiLnI9dDIrdDN9DQoJCQkJCWVsc2UgaWYoaDwzNjApIHtyZ2Iucj10MTsgcmdiLmc9dDI7CXJnYi5iPXQxLXQzfQ0KCQkJCQllbHNlIHtyZ2Iucj0wOyByZ2IuZz0wOwlyZ2IuYj0wfQ0KCQkJCX0NCgkJCQlyZXR1cm4ge3I6TWF0aC5yb3VuZChyZ2IuciksIGc6TWF0aC5yb3VuZChyZ2IuZyksIGI6TWF0aC5yb3VuZChyZ2IuYil9Ow0KCQkJfSwNCgkJCVJHQlRvSGV4ID0gZnVuY3Rpb24gKHJnYikgew0KCQkJCXZhciBoZXggPSBbDQoJCQkJCXJnYi5yLnRvU3RyaW5nKDE2KSwNCgkJCQkJcmdiLmcudG9TdHJpbmcoMTYpLA0KCQkJCQlyZ2IuYi50b1N0cmluZygxNikNCgkJCQldOw0KCQkJCSQuZWFjaChoZXgsIGZ1bmN0aW9uIChuciwgdmFsKSB7DQoJCQkJCWlmICh2YWwubGVuZ3RoID09IDEpIHsNCgkJCQkJCWhleFtucl0gPSAnMCcgKyB2YWw7DQoJCQkJCX0NCgkJCQl9KTsNCgkJCQlyZXR1cm4gaGV4LmpvaW4oJycpOw0KCQkJfSwNCgkJCUhTQlRvSGV4ID0gZnVuY3Rpb24gKGhzYikgew0KCQkJCXJldHVybiBSR0JUb0hleChIU0JUb1JHQihoc2IpKTsNCgkJCX0sDQoJCQlyZXN0b3JlT3JpZ2luYWwgPSBmdW5jdGlvbiAoKSB7DQoJCQkJdmFyIGNhbCA9ICQodGhpcykucGFyZW50KCk7DQoJCQkJdmFyIGNvbCA9IGNhbC5kYXRhKCdjb2xvcnBpY2tlcicpLm9yaWdDb2xvcjsNCgkJCQljYWwuZGF0YSgnY29sb3JwaWNrZXInKS5jb2xvciA9IGNvbDsNCgkJCQlmaWxsUkdCRmllbGRzKGNvbCwgY2FsLmdldCgwKSk7DQoJCQkJZmlsbEhleEZpZWxkcyhjb2wsIGNhbC5nZXQoMCkpOw0KCQkJCWZpbGxIU0JGaWVsZHMoY29sLCBjYWwuZ2V0KDApKTsNCgkJCQlzZXRTZWxlY3Rvcihjb2wsIGNhbC5nZXQoMCkpOw0KCQkJCXNldEh1ZShjb2wsIGNhbC5nZXQoMCkpOw0KCQkJCXNldE5ld0NvbG9yKGNvbCwgY2FsLmdldCgwKSk7DQoJCQl9Ow0KCQlyZXR1cm4gew0KCQkJaW5pdDogZnVuY3Rpb24gKG9wdCkgew0KCQkJCW9wdCA9ICQuZXh0ZW5kKHt9LCBkZWZhdWx0cywgb3B0fHx7fSk7DQoJCQkJaWYgKHR5cGVvZiBvcHQuY29sb3IgPT0gJ3N0cmluZycpIHsNCgkJCQkJb3B0LmNvbG9yID0gSGV4VG9IU0Iob3B0LmNvbG9yKTsNCgkJCQl9IGVsc2UgaWYgKG9wdC5jb2xvci5yICE9IHVuZGVmaW5lZCAmJiBvcHQuY29sb3IuZyAhPSB1bmRlZmluZWQgJiYgb3B0LmNvbG9yLmIgIT0gdW5kZWZpbmVkKSB7DQoJCQkJCW9wdC5jb2xvciA9IFJHQlRvSFNCKG9wdC5jb2xvcik7DQoJCQkJfSBlbHNlIGlmIChvcHQuY29sb3IuaCAhPSB1bmRlZmluZWQgJiYgb3B0LmNvbG9yLnMgIT0gdW5kZWZpbmVkICYmIG9wdC5jb2xvci5iICE9IHVuZGVmaW5lZCkgew0KCQkJCQlvcHQuY29sb3IgPSBmaXhIU0Iob3B0LmNvbG9yKTsNCgkJCQl9IGVsc2Ugew0KCQkJCQlyZXR1cm4gdGhpczsNCgkJCQl9DQoJCQkJcmV0dXJuIHRoaXMuZWFjaChmdW5jdGlvbiAoKSB7DQoJCQkJCWlmICghJCh0aGlzKS5kYXRhKCdjb2xvcnBpY2tlcklkJykpIHsNCgkJCQkJCXZhciBvcHRpb25zID0gJC5leHRlbmQoe30sIG9wdCk7DQoJCQkJCQlvcHRpb25zLm9yaWdDb2xvciA9IG9wdC5jb2xvcjsNCgkJCQkJCXZhciBpZCA9ICdjb2xsb3JwaWNrZXJfJyArIHBhcnNlSW50KE1hdGgucmFuZG9tKCkgKiAxMDAwKTsNCgkJCQkJCSQodGhpcykuZGF0YSgnY29sb3JwaWNrZXJJZCcsIGlkKTsNCgkJCQkJCXZhciBjYWwgPSAkKHRwbCkuYXR0cignaWQnLCBpZCk7DQoJCQkJCQlpZiAob3B0aW9ucy5mbGF0KSB7DQoJCQkJCQkJY2FsLmFwcGVuZFRvKHRoaXMpLnNob3coKTsNCgkJCQkJCX0gZWxzZSB7DQoJCQkJCQkJY2FsLmFwcGVuZFRvKGRvY3VtZW50LmJvZHkpOw0KCQkJCQkJfQ0KCQkJCQkJb3B0aW9ucy5maWVsZHMgPSBjYWwNCgkJCQkJCQkJCQkJLmZpbmQoJ2lucHV0JykNCgkJCQkJCQkJCQkJCS5iaW5kKCdrZXl1cCcsIGtleURvd24pDQoJCQkJCQkJCQkJCQkuYmluZCgnY2hhbmdlJywgY2hhbmdlKQ0KCQkJCQkJCQkJCQkJLmJpbmQoJ2JsdXInLCBibHVyKQ0KCQkJCQkJCQkJCQkJLmJpbmQoJ2ZvY3VzJywgZm9jdXMpOw0KCQkJCQkJY2FsDQoJCQkJCQkJLmZpbmQoJ3NwYW4nKS5iaW5kKCdtb3VzZWRvd24nLCBkb3duSW5jcmVtZW50KS5lbmQoKQ0KCQkJCQkJCS5maW5kKCc+ZGl2LmNvbG9ycGlja2VyX2N1cnJlbnRfY29sb3InKS5iaW5kKCdjbGljaycsIHJlc3RvcmVPcmlnaW5hbCk7DQoJCQkJCQlvcHRpb25zLnNlbGVjdG9yID0gY2FsLmZpbmQoJ2Rpdi5jb2xvcnBpY2tlcl9jb2xvcicpLmJpbmQoJ21vdXNlZG93bicsIGRvd25TZWxlY3Rvcik7DQoJCQkJCQlvcHRpb25zLnNlbGVjdG9ySW5kaWMgPSBvcHRpb25zLnNlbGVjdG9yLmZpbmQoJ2RpdiBkaXYnKTsNCgkJCQkJCW9wdGlvbnMuZWwgPSB0aGlzOw0KCQkJCQkJb3B0aW9ucy5odWUgPSBjYWwuZmluZCgnZGl2LmNvbG9ycGlja2VyX2h1ZSBkaXYnKTsNCgkJCQkJCWNhbC5maW5kKCdkaXYuY29sb3JwaWNrZXJfaHVlJykuYmluZCgnbW91c2Vkb3duJywgZG93bkh1ZSk7DQoJCQkJCQlvcHRpb25zLm5ld0NvbG9yID0gY2FsLmZpbmQoJ2Rpdi5jb2xvcnBpY2tlcl9uZXdfY29sb3InKTsNCgkJCQkJCW9wdGlvbnMuY3VycmVudENvbG9yID0gY2FsLmZpbmQoJ2Rpdi5jb2xvcnBpY2tlcl9jdXJyZW50X2NvbG9yJyk7DQoJCQkJCQljYWwuZGF0YSgnY29sb3JwaWNrZXInLCBvcHRpb25zKTsNCgkJCQkJCWNhbC5maW5kKCdkaXYuY29sb3JwaWNrZXJfc3VibWl0JykNCgkJCQkJCQkuYmluZCgnbW91c2VlbnRlcicsIGVudGVyU3VibWl0KQ0KCQkJCQkJCS5iaW5kKCdtb3VzZWxlYXZlJywgbGVhdmVTdWJtaXQpDQoJCQkJCQkJLmJpbmQoJ2NsaWNrJywgY2xpY2tTdWJtaXQpOw0KCQkJCQkJZmlsbFJHQkZpZWxkcyhvcHRpb25zLmNvbG9yLCBjYWwuZ2V0KDApKTsNCgkJCQkJCWZpbGxIU0JGaWVsZHMob3B0aW9ucy5jb2xvciwgY2FsLmdldCgwKSk7DQoJCQkJCQlmaWxsSGV4RmllbGRzKG9wdGlvbnMuY29sb3IsIGNhbC5nZXQoMCkpOw0KCQkJCQkJc2V0SHVlKG9wdGlvbnMuY29sb3IsIGNhbC5nZXQoMCkpOw0KCQkJCQkJc2V0U2VsZWN0b3Iob3B0aW9ucy5jb2xvciwgY2FsLmdldCgwKSk7DQoJCQkJCQlzZXRDdXJyZW50Q29sb3Iob3B0aW9ucy5jb2xvciwgY2FsLmdldCgwKSk7DQoJCQkJCQlzZXROZXdDb2xvcihvcHRpb25zLmNvbG9yLCBjYWwuZ2V0KDApKTsNCgkJCQkJCWlmIChvcHRpb25zLmZsYXQpIHsNCgkJCQkJCQljYWwuY3NzKHsNCgkJCQkJCQkJcG9zaXRpb246ICdyZWxhdGl2ZScsDQoJCQkJCQkJCWRpc3BsYXk6ICdibG9jaycNCgkJCQkJCQl9KTsNCgkJCQkJCX0gZWxzZSB7DQoJCQkJCQkJJCh0aGlzKS5iaW5kKG9wdGlvbnMuZXZlbnROYW1lLCBzaG93KTsNCgkJCQkJCX0NCgkJCQkJfQ0KCQkJCX0pOw0KCQkJfSwNCgkJCXNob3dQaWNrZXI6IGZ1bmN0aW9uKCkgew0KCQkJCXJldHVybiB0aGlzLmVhY2goIGZ1bmN0aW9uICgpIHsNCgkJCQkJaWYgKCQodGhpcykuZGF0YSgnY29sb3JwaWNrZXJJZCcpKSB7DQoJCQkJCQlzaG93LmFwcGx5KHRoaXMpOw0KCQkJCQl9DQoJCQkJfSk7DQoJCQl9LA0KCQkJaGlkZVBpY2tlcjogZnVuY3Rpb24oKSB7DQoJCQkJcmV0dXJuIHRoaXMuZWFjaCggZnVuY3Rpb24gKCkgew0KCQkJCQlpZiAoJCh0aGlzKS5kYXRhKCdjb2xvcnBpY2tlcklkJykpIHsNCgkJCQkJCSQoJyMnICsgJCh0aGlzKS5kYXRhKCdjb2xvcnBpY2tlcklkJykpLmhpZGUoKTsNCgkJCQkJfQ0KCQkJCX0pOw0KCQkJfSwNCgkJCXNldENvbG9yOiBmdW5jdGlvbihjb2wpIHsNCgkJCQlpZiAodHlwZW9mIGNvbCA9PSAnc3RyaW5nJykgew0KCQkJCQljb2wgPSBIZXhUb0hTQihjb2wpOw0KCQkJCX0gZWxzZSBpZiAoY29sLnIgIT0gdW5kZWZpbmVkICYmIGNvbC5nICE9IHVuZGVmaW5lZCAmJiBjb2wuYiAhPSB1bmRlZmluZWQpIHsNCgkJCQkJY29sID0gUkdCVG9IU0IoY29sKTsNCgkJCQl9IGVsc2UgaWYgKGNvbC5oICE9IHVuZGVmaW5lZCAmJiBjb2wucyAhPSB1bmRlZmluZWQgJiYgY29sLmIgIT0gdW5kZWZpbmVkKSB7DQoJCQkJCWNvbCA9IGZpeEhTQihjb2wpOw0KCQkJCX0gZWxzZSB7DQoJCQkJCXJldHVybiB0aGlzOw0KCQkJCX0NCgkJCQlyZXR1cm4gdGhpcy5lYWNoKGZ1bmN0aW9uKCl7DQoJCQkJCWlmICgkKHRoaXMpLmRhdGEoJ2NvbG9ycGlja2VySWQnKSkgew0KCQkJCQkJdmFyIGNhbCA9ICQoJyMnICsgJCh0aGlzKS5kYXRhKCdjb2xvcnBpY2tlcklkJykpOw0KCQkJCQkJY2FsLmRhdGEoJ2NvbG9ycGlja2VyJykuY29sb3IgPSBjb2w7DQoJCQkJCQljYWwuZGF0YSgnY29sb3JwaWNrZXInKS5vcmlnQ29sb3IgPSBjb2w7DQoJCQkJCQlmaWxsUkdCRmllbGRzKGNvbCwgY2FsLmdldCgwKSk7DQoJCQkJCQlmaWxsSFNCRmllbGRzKGNvbCwgY2FsLmdldCgwKSk7DQoJCQkJCQlmaWxsSGV4RmllbGRzKGNvbCwgY2FsLmdldCgwKSk7DQoJCQkJCQlzZXRIdWUoY29sLCBjYWwuZ2V0KDApKTsNCgkJCQkJCXNldFNlbGVjdG9yKGNvbCwgY2FsLmdldCgwKSk7DQoJCQkJCQlzZXRDdXJyZW50Q29sb3IoY29sLCBjYWwuZ2V0KDApKTsNCgkJCQkJCXNldE5ld0NvbG9yKGNvbCwgY2FsLmdldCgwKSk7DQoJCQkJCX0NCgkJCQl9KTsNCgkJCX0NCgkJfTsNCgl9KCk7DQoJJC5mbi5leHRlbmQoew0KCQlDb2xvclBpY2tlcjogQ29sb3JQaWNrZXIuaW5pdCwNCgkJQ29sb3JQaWNrZXJIaWRlOiBDb2xvclBpY2tlci5oaWRlUGlja2VyLA0KCQlDb2xvclBpY2tlclNob3c6IENvbG9yUGlja2VyLnNob3dQaWNrZXIsDQoJCUNvbG9yUGlja2VyU2V0Q29sb3I6IENvbG9yUGlja2VyLnNldENvbG9yDQoJfSk7DQp9KShqUXVlcnkp]]></data>
	</file>
	<file>
	  <filename>/lib/fielddefs/ColorPicker/lisefd.ColorPicker.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHANCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQojIExJU0UgLSBMaXN0IEl0IFNwZWNpYWwgRWRpdGlvbg0KIyBWZXJzaW9uIDEuMg0KIyBBIGZvcmsgb2YgTGlzdEkyDQojIG1haW50YWluZWQgYnkgRmVybmFuZG8gTW9yZ2FkbyBBS0EgSm8gTW9yZw0KIyBzaW5jZSAyMDE1DQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIw0KIyBPcmlnaW5hbCBBdXRob3I6IEJlbiBNYWxlbiwgPGJlbkBjb25jZXB0ZmFjdG9yeS5jb20uYXU+DQojIENvLU1haW50YWluZXI6IFNpbW9uIFJhZGZvcmQsIDxzaW1vbkBjb25jZXB0ZmFjdG9yeS5jb20uYXU+DQojIFdlYjogd3d3LmNvbmNlcHRmYWN0b3J5LmNvbS5hdQ0KIw0KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCiMNCiMgTWFpbnRhaW5lciBzaW5jZSAyMDExIHVwIHRvIDIwMTQ6IEpvbmF0aGFuIFNjaG1pZCwgPGhpQGpvbmF0aGFuc2NobWlkLmRlPg0KIyBXZWI6IHd3dy5qb25hdGhhbnNjaG1pZC5kZQ0KIw0KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCiMNCiMgU29tZSB3YWNrb3Mgc3RhcnRlZCBkZXN0cm95aW5nIHN0dWZmIHNpbmNlIDIwMTIgYW5kIHN0b3BwZWQgYXQgMjAxNDoNCiMNCiMgVGFwaW8gTMO2eXR0eSwgPHRhcHNhQG9yYW5nZS1tZWRpYS5maT4NCiMgV2ViOiB3d3cub3JhbmdlLW1lZGlhLmZpDQojDQojIEdvcmFuIElsaWMsIDx1bmlxdTNlQGdtYWlsLmNvbT4NCiMgV2ViOiB3d3cuaWNoLW1hY2gtZGFzLmF0DQojDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIw0KIyBMSVNFIGlzIGEgQ01TIE1hZGUgU2ltcGxlIG1vZHVsZSB0aGF0IGVuYWJsZXMgdGhlIHdlYiBkZXZlbG9wZXIgdG8gY3JlYXRlDQojIG11bHRpcGxlIGxpc3RzIHRocm91Z2hvdXQgYSBzaXRlLiBJdCBjYW4gYmUgZHVwbGljYXRlZCBhbmQgZ2l2ZW4gZnJpZW5kbHkNCiMgbmFtZXMgZm9yIGVhc2llciBjbGllbnQgbWFpbnRlbmFuY2UuDQojDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIyBCRUdJTl9MSUNFTlNFDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIyBUaGlzIGZpbGUgaXMgcGFydCBvZiBMSVNFDQojIExJU0UgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5DQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5DQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yDQojIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uDQojDQojIExJU0UgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLA0KIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZg0KIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlDQojIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuDQojIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlDQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlDQojIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcgVVNBDQojIE9yIHJlYWQgaXQgb25saW5lOiBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwNCiMNCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQojIEVORF9MSUNFTlNFDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KDQpjbGFzcyBMSVNFZmRfQ29sb3JQaWNrZXIgZXh0ZW5kcyBMSVNFRmllbGRkZWZCYXNlDQp7DQoJcHVibGljIGZ1bmN0aW9uIF9fY29uc3RydWN0KCYkZGJfaW5mbykgDQoJewkNCgkJcGFyZW50OjpfX2NvbnN0cnVjdCgkZGJfaW5mbyk7DQoJCQ0KCQkkdGhpcy0+U2V0RnJpZW5kbHlUeXBlKCR0aGlzLT5Nb2RMYW5nKCdmaWVsZGRlZl8nLiR0aGlzLT5HZXRUeXBlKCkpKTsNCgl9DQoJDQoJcHVibGljIGZ1bmN0aW9uIEdldEhlYWRlckhUTUwoKQ0KCXsNCiAgICAgICAgJHRtcGwgPSA8PDxFT1QNCjxsaW5rIHR5cGU9InRleHQvY3NzIiByZWw9InN0eWxlc2hlZXQiIGhyZWY9InskdGhpcy0+R2V0VVJMUGF0aCgpfS9saXNlZmQtY29sb3JwaWNrZXIuY3NzIiAvPg0KPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0ieyR0aGlzLT5HZXRVUkxQYXRoKCl9L2xpc2VmZC1jb2xvcnBpY2tlci5qcyI+PC9zY3JpcHQ+DQpFT1Q7DQoJCXJldHVybiAkdG1wbDsNCgl9DQoJDQp9IC8vIGVuZCBvZiBjbGFzcw0KPz4=]]></data>
	</file>
	<file>
	  <filename>/lib/fielddefs/ColorPicker/list.ColorPicker.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[e2lmICRmaWVsZGRlZi0+SGFzVmFsdWUoKX0NCiAgPGRpdiBjbGFzcz0ibGlzZS1jb2xvcnBpY2tlci1hZG1pbmxpc3RpbmctdmFsdWUiIHN0eWxlPSJiYWNrZ3JvdW5kLWNvbG9yOiAjeyRmaWVsZGRlZi0+R2V0VmFsdWUoKX0iPiZuYnNwOzwvZGl2Pg0Key9pZn0=]]></data>
	</file>
	<file>
	  <filename>/lib/fielddefs/ColorPicker/output.ColorPicker.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[eyRmaWVsZGRlZi5uYW1lfTogeyRmaWVsZGRlZi52YWx1ZX0=]]></data>
	</file>
	<file>
	  <filename>/lib/fielddefs/ContentPages</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/lib/fielddefs/ContentPages/admin.ContentPages.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PGZpZWxkc2V0PgogIDxsZWdlbmQ+eyRmaWVsZGRlZi0+TW9kTGFuZygnb3B0aW9ucycpfTwvbGVnZW5kPgogIDxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CiAgICA8cCBjbGFzcz0icGFnZXRleHQiPnskZmllbGRkZWYtPk1vZExhbmcoJ3N1YnR5cGUnKX06PC9wPgogICAgPHAgY2xhc3M9InBhZ2VpbnB1dCI+CgkgICAge2h0bWxfb3B0aW9ucyBuYW1lPSJgJGFjdGlvbmlkYGN1c3RvbV9pbnB1dFtzdWJ0eXBlXSIgb3B0aW9ucz0kZmllbGRkZWYtPlN1YlR5cGVzKCkgc2VsZWN0ZWQ9JGZpZWxkZGVmLT5HZXRPcHRpb25WYWx1ZSgnc3VidHlwZScsICdEcm9wZG93bicpfQogICAgPC9wPgogICAgPHAgY2xhc3M9InBhZ2V0ZXh0Ij48ZGl2IGNsYXNzPSJpbmZvcm1hdGlvbiI+eyRmaWVsZGRlZi0+TW9kTGFuZygnZmllbGRkZWZfc3VidHlwZV9oZWxwJyl9PC9kaXY+PC9wPgogIDwvZGl2PgogIDxocj4KICA8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgkKICAgIDxwIGNsYXNzPSJwYWdldGV4dCI+eyRmaWVsZGRlZi0+TW9kTGFuZygnc2VwYXJhdG9yJyl9OjwvcD4KICAgIDxwIGNsYXNzPSJwYWdlaW5wdXQiPgoJICAgIDxpbnB1dCB0eXBlPSJ0ZXh0IiBuYW1lPSJ7JGFjdGlvbmlkfWN1c3RvbV9pbnB1dFtzZXBhcmF0b3JdIiB2YWx1ZT0ieyRmaWVsZGRlZi0+R2V0T3B0aW9uVmFsdWUoJ3NlcGFyYXRvcicpfSIgLz4KICAgIDwvcD4JCiAgICA8cCBjbGFzcz0icGFnZXRleHQiPjxkaXYgY2xhc3M9ImluZm9ybWF0aW9uIj57JGZpZWxkZGVmLT5Nb2RMYW5nKCdmaWVsZGRlZl9zZXBhcmF0b3JfaGVscCcpfTwvZGl2PjwvcD4KICA8L2Rpdj4KICA8aHI+CiAgPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4JCiAgICA8cCBjbGFzcz0icGFnZXRleHQiPnskZmllbGRkZWYtPk1vZExhbmcoJ2NvbHVtbnMnKX06PC9wPgogICAgPHAgY2xhc3M9InBhZ2VpbnB1dCI+CgkgICAgPGlucHV0IHR5cGU9InRleHQiIG5hbWU9InskYWN0aW9uaWR9Y3VzdG9tX2lucHV0W2NvbHVtbnNdIiB2YWx1ZT0ieyRmaWVsZGRlZi0+R2V0T3B0aW9uVmFsdWUoJ2NvbHVtbnMnLCAxKX0iIC8+CiAgICA8L3A+CiAgICA8cCBjbGFzcz0icGFnZXRleHQiPjxkaXYgY2xhc3M9ImluZm9ybWF0aW9uIj57JGZpZWxkZGVmLT5Nb2RMYW5nKCdmaWVsZGRlZl9jb2x1bW5zX2hlbHAnKX08L2Rpdj48L3A+CQogIDwvZGl2PgogIDxocj4KICA8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgogICAgPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JGZpZWxkZGVmLT5Nb2RMYW5nKCdzaG93YWxsJyl9OjwvcD4KICAgIDxwIGNsYXNzPSJwYWdlaW5wdXQiPgoJICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9InskYWN0aW9uaWR9Y3VzdG9tX2lucHV0W3Nob3dhbGxdIiB2YWx1ZT0iMCIgLz4KCSAgICA8aW5wdXQgdHlwZT0iY2hlY2tib3giIG5hbWU9InskYWN0aW9uaWR9Y3VzdG9tX2lucHV0W3Nob3dhbGxdIiB2YWx1ZT0iMSJ7aWYgJGZpZWxkZGVmLT5HZXRPcHRpb25WYWx1ZSgnc2hvd2FsbCcpfWNoZWNrZWQ9ImNoZWNrZWQiey9pZn0gLz4KICAgIDwvcD4KICAgIDxwIGNsYXNzPSJwYWdldGV4dCI+PGRpdiBjbGFzcz0iaW5mb3JtYXRpb24iPnskZmllbGRkZWYtPk1vZExhbmcoJ2ZpZWxkZGVmX3Nob3dhbGxfaGVscCcpfTwvZGl2PjwvcD4KICA8L2Rpdj4KPC9maWVsZHNldD4=]]></data>
	</file>
	<file>
	  <filename>/lib/fielddefs/ContentPages/help.ContentPages.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PGJ1dHRvbiBjbGFzcz0iYWNjb3JkaW9uIj48c3Ryb25nPnskZmllbGRkZWYtPkdldEZyaWVuZGx5VHlwZSgpfTwvc3Ryb25nPjwvYnV0dG9uPgoKPGRpdiBjbGFzcz0iYWNjcGFuZWwiPgoKCTxoND5XaGF0IGRvZXMgaXQgZG8/PC9oND4KCgk8cD5UaGlzIGZpZWxkIGRlZmluaXRpb24gY2FuIGJlIHVzZWQgdG8gYWRkIGEgPHN0cm9uZz5Db250ZW50IFBhZ2UgU2VsZWN0b3I8L3N0cm9uZz4gdG8gYSBMSVNFIGl0ZW0uPC9wPgoKCTxwPlRPRE88L3A+CgoKCTxoND5Ib3cgZG8gSSB1c2UgaXQ/PC9oND4KCgk8cD5UT0RPPC9wPgoKCTxwPlRoZSBzZXR0aW5ncyBmb3IgdGhpcyBmaWVsZCBhcmU6PC9wPgoKCTx1bD4KCQk8bGk+PGI+U3ViIFR5cGU6PC9iPgogCQkJPHVsPgogCQkJCTxsaT5Ecm9wZG93bjwvbGk+CiAJCQkJPGxpPk11bHRpIFNlbGVjdDwvbGk+CiAJCQkJPGxpPlJhZGlvIEdyb3VwPC9saT4KIAkJCQk8bGk+Q2hlY2tib3ggR3JvdXA8L2xpPgoJCQk8L3VsPgoJCTwvbGk+CgkJPGxpPjxiPlNlcGFyYXRvcjwvYj48L2xpPgoJCTxsaT48Yj5Db2x1bW5zPC9iPjwvbGk+CgkJPGxpPjxiPlNob3cgQWxsPC9iPjwvbGk+Cgk8L3VsPgoKPC9kaXY+]]></data>
	</file>
	<file>
	  <filename>/lib/fielddefs/ContentPages/index.html</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PCEtLSBEVU1NWSBIVE1MIEZJTEUgLS0+]]></data>
	</file>
	<file>
	  <filename>/lib/fielddefs/ContentPages/lisefd.ContentPages.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHANCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQojIExJU0UgLSBMaXN0IEl0IFNwZWNpYWwgRWRpdGlvbg0KIyBWZXJzaW9uIDEuMg0KIyBBIGZvcmsgb2YgTGlzdEkyDQojIG1haW50YWluZWQgYnkgRmVybmFuZG8gTW9yZ2FkbyBBS0EgSm8gTW9yZw0KIyBzaW5jZSAyMDE1DQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIw0KIyBPcmlnaW5hbCBBdXRob3I6IEJlbiBNYWxlbiwgPGJlbkBjb25jZXB0ZmFjdG9yeS5jb20uYXU+DQojIENvLU1haW50YWluZXI6IFNpbW9uIFJhZGZvcmQsIDxzaW1vbkBjb25jZXB0ZmFjdG9yeS5jb20uYXU+DQojIFdlYjogd3d3LmNvbmNlcHRmYWN0b3J5LmNvbS5hdQ0KIw0KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCiMNCiMgTWFpbnRhaW5lciBzaW5jZSAyMDExIHVwIHRvIDIwMTQ6IEpvbmF0aGFuIFNjaG1pZCwgPGhpQGpvbmF0aGFuc2NobWlkLmRlPg0KIyBXZWI6IHd3dy5qb25hdGhhbnNjaG1pZC5kZQ0KIw0KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCiMNCiMgU29tZSB3YWNrb3Mgc3RhcnRlZCBkZXN0cm95aW5nIHN0dWZmIHNpbmNlIDIwMTIgYW5kIHN0b3BwZWQgYXQgMjAxNDoNCiMNCiMgVGFwaW8gTMO2eXR0eSwgPHRhcHNhQG9yYW5nZS1tZWRpYS5maT4NCiMgV2ViOiB3d3cub3JhbmdlLW1lZGlhLmZpDQojDQojIEdvcmFuIElsaWMsIDx1bmlxdTNlQGdtYWlsLmNvbT4NCiMgV2ViOiB3d3cuaWNoLW1hY2gtZGFzLmF0DQojDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIw0KIyBMSVNFIGlzIGEgQ01TIE1hZGUgU2ltcGxlIG1vZHVsZSB0aGF0IGVuYWJsZXMgdGhlIHdlYiBkZXZlbG9wZXIgdG8gY3JlYXRlDQojIG11bHRpcGxlIGxpc3RzIHRocm91Z2hvdXQgYSBzaXRlLiBJdCBjYW4gYmUgZHVwbGljYXRlZCBhbmQgZ2l2ZW4gZnJpZW5kbHkNCiMgbmFtZXMgZm9yIGVhc2llciBjbGllbnQgbWFpbnRlbmFuY2UuDQojDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIyBCRUdJTl9MSUNFTlNFDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIyBUaGlzIGZpbGUgaXMgcGFydCBvZiBMSVNFDQojIExJU0UgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5DQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5DQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yDQojIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uDQojDQojIExJU0UgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLA0KIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZg0KIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlDQojIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuDQojIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlDQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlDQojIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcgVVNBDQojIE9yIHJlYWQgaXQgb25saW5lOiBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwNCiMNCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQojIEVORF9MSUNFTlNFDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KY2xhc3MgbGlzZWZkX0NvbnRlbnRQYWdlcyBleHRlbmRzIExJU0VGaWVsZGRlZkJhc2UNCnsNCglwcml2YXRlICRfbGlzZTsNCg0KCXB1YmxpYyBmdW5jdGlvbiBfX2NvbnN0cnVjdCgmJGRiX2luZm8pIA0KCXsJDQoJCXBhcmVudDo6X19jb25zdHJ1Y3QoJGRiX2luZm8pOw0KCQkNCgkJJHRoaXMtPlNldEZyaWVuZGx5VHlwZSgkdGhpcy0+TW9kTGFuZygnZmllbGRkZWZfJy4kdGhpcy0+R2V0VHlwZSgpKSk7DQoJCQ0KCQkkdGhpcy0+X2xpc2UgPSBjbXNtcygpLT5HZXRNb2R1bGVJbnN0YW5jZShMSVNFKTsNCgl9DQoJDQoJcHVibGljIGZ1bmN0aW9uIFJlbmRlcklucHV0KCRpZCwgJHJldHVybmlkKQ0KCXsNCgkJJHR5cGUgPSAkdGhpcy0+R2V0T3B0aW9uVmFsdWUoJ3N1YnR5cGUnLCAnRHJvcGRvd24nKTsNCgkJJG9iaiA9IExJU0VGaWVsZGRlZk9wZXJhdGlvbnM6OkxvYWRGaWVsZGRlZkJ5VHlwZSgkdHlwZSk7DQoJCQ0KCQlpZihpc19vYmplY3QoJG9iaikpDQoJCQlyZXR1cm4gJG9iai0+UmVuZGVySW5wdXQoJGlkLCAkcmV0dXJuaWQpOw0KCQkJDQoJCXJldHVybiBmYWxzZTsNCgl9DQoJDQoJcHVibGljIGZ1bmN0aW9uIFJlbmRlckZvckFkbWluTGlzdGluZygkaWQsICRyZXR1cm5pZCkNCgl7DQoJCSRtYW5hZ2VyID0gY21zbXMoKS0+R2V0SGllcmFyY2h5TWFuYWdlcigpOw0KCQkkaWRfbGlzdCA9ICR0aGlzLT5HZXRWYWx1ZShwYXJlbnQ6OlRZUEVfQVJSQVkpOw0KCQkkdXNlX25hbWUgPSBnZXRfc2l0ZV9wcmVmZXJlbmNlKCdsaXN0Y29udGVudF9zaG93dGl0bGUnLHRydWUpOw0KCQkNCgkJJG91dHB1dCA9IGFycmF5KCk7DQoJCWZvcmVhY2goJGlkX2xpc3QgYXMgJG9uZWlkKSB7DQoJCQ0KCQkJJG5vZGUgPSAkbWFuYWdlci0+ZmluZF9ieV90YWcoJ2lkJywgJG9uZWlkKTsNCgkJCQ0KCQkJaWYoJG5vZGUpIHsNCgkJCQkkY29udGVudCA9ICRub2RlLT5nZXRDb250ZW50KEZBTFNFLCBGQUxTRSwgRkFMU0UpOw0KCQkJDQoJCQkJaWYoJGNvbnRlbnQpIHsNCgkJCQkJDQoJCQkJCSR0eHQgPSAkdXNlX25hbWUgPyAkY29udGVudC0+TmFtZSgpIDogJGNvbnRlbnQtPk1lbnVUZXh0KCk7DQoJCQkJCSRvdXRwdXRbXSA9ICR0eHQ7DQoJCQkJfQ0KCQkJfQ0KCQl9DQoJCQ0KCQlyZXR1cm4gaW1wbG9kZSgnLCAnLCAkb3V0cHV0KTsNCgl9CQ0KCQ0KCXB1YmxpYyBmdW5jdGlvbiBHZXRPcHRpb25zKCkNCgl7DQoJCSRjb250ZW50b3BzID0gY21zbXMoKS0+R2V0Q29udGVudE9wZXJhdGlvbnMoKTsNCgkJCQkNCgkJJHJlc3VsdCA9IGFycmF5KCk7DQoJCSR1c2VyaWQgPSBnZXRfdXNlcmlkKCk7DQoJCSR0eXBlID0gJHRoaXMtPkdldE9wdGlvblZhbHVlKCdzdWJ0eXBlJywgJ0Ryb3Bkb3duJyk7DQoJCSRzaG93X2FsbCA9ICR0aGlzLT5HZXRPcHRpb25WYWx1ZSgnc2hvd2FsbCcpID8gdHJ1ZSA6IGZhbHNlOwkJDQoJCSR1c2VfbmFtZSA9IGdldF9zaXRlX3ByZWZlcmVuY2UoJ2xpc3Rjb250ZW50X3Nob3d0aXRsZScsdHJ1ZSk7DQoJCSRhbGxjb250ZW50ID0gJGNvbnRlbnRvcHMtPkdldEFsbENvbnRlbnQoZmFsc2UpOw0KCQkNCgkJaWYgKCRhbGxjb250ZW50ICE9PSBGQUxTRSAmJiBjb3VudCgkYWxsY29udGVudCkgPiAwKSB7DQoJCSAgDQoJCQlpZigkdHlwZSA9PSAnRHJvcGRvd24nIHx8ICR0eXBlID09ICdSYWRpb0dyb3VwJykNCgkJCQkkcmVzdWx0Wy0xXSA9IGxhbmcoJ25vbmUnKTsNCgkJCSAgDQoJCQlmb3JlYWNoICgkYWxsY29udGVudCBhcyAkb25lKSB7DQoJCQkNCgkJCQkvLyBDaGVjayBpZiBvYmplY3QgaXMgdmFsaWQNCgkJCQlpZighaXNfb2JqZWN0KCRvbmUpKSANCgkJCQkJY29udGludWU7DQoJCQkJCQ0KCQkJCS8vIElmIGl0IGRvZXNuJ3QgaGF2ZSBhIHZhbGlkIGxpbmsuLi4NCgkJCQkvLyBkb24ndCBpbmNsdWRlIGl0Lg0KCQkJCWlmKCEkb25lLT5IYXNVc2FibGVMaW5rKCkpDQoJCQkJCWNvbnRpbnVlOw0KCQkJCQkNCgkJCQkvLyBJZiB3ZSBoYXZlIGEgdmFsaWQgdXNlcmlkLi4uIG9ubHkgaW5jbHVkZSBwYWdlcyB3aGVyZSB0aGlzIHVzZXINCgkJCQkvLyBoYXMgd3JpdGUgYWNjZXNzLi4uIG9yIGlzIGFuIGFkbWluIHVzZXIuLi4gb3IgaGFzIGFwcHJvcHJpYXRlIHBlcm1pc3Npb24uDQoJCQkJaWYoISRzaG93X2FsbCAmJiAhY2hlY2tfcGVybWlzc2lvbigkdXNlcmlkLCdNYW5hZ2UgQWxsIENvbnRlbnQnKSAmJiAhY2hlY2tfYXV0aG9yc2hpcCgkdXNlcmlkLCAkb25lLT5JZCgpKSkNCgkJCQkJY29udGludWU7DQoJCQkJCQkJCQ0KCQkJCS8vIERvbid0IGluY2x1ZGUgY29udGVudCB0eXBlcyB0aGF0IGRvIG5vdCB3YW50IGNoaWxkcmVuIGVpdGhlci4uLg0KCQkJCWlmICghJG9uZS0+V2FudHNDaGlsZHJlbigpKSANCgkJCQkJY29udGludWU7DQoJCQkJDQoJCQkJLy8gRWxzZSBhcHBlbmQgdG8gYXJyYXkuDQoJCQkJJHR4dCA9ICR1c2VfbmFtZSA/ICRvbmUtPk5hbWUoKSA6ICRvbmUtPk1lbnVUZXh0KCk7DQoJCQkJJHJlc3VsdFskb25lLT5JZCgpXSA9ICRvbmUtPkhpZXJhcmNoeSgpIC4gJy4gLSAnIC4gJHR4dDsNCgkJCX0NCgkJfQ0KDQoJCXJldHVybiAkcmVzdWx0Ow0KCX0NCg0KCXB1YmxpYyBmdW5jdGlvbiBTdWJUeXBlcygpDQoJew0KICAgICAgICByZXR1cm4gYXJyYXkoDQogICAgICAgICAgICAnRHJvcGRvd24nID0+ICR0aGlzLT5Nb2RMYW5nKCdmaWVsZGRlZl9Ecm9wZG93bicpLA0KICAgICAgICAgICAgJ011bHRpU2VsZWN0JyA9PiAkdGhpcy0+TW9kTGFuZygnZmllbGRkZWZfTXVsdGlTZWxlY3QnKSwNCiAgICAgICAgICAgICdSYWRpb0dyb3VwJyA9PiAkdGhpcy0+TW9kTGFuZygnZmllbGRkZWZfUmFkaW9Hcm91cCcpLA0KICAgICAgICAgICAgJ0NoZWNrYm94R3JvdXAnID0+ICR0aGlzLT5Nb2RMYW5nKCdmaWVsZGRlZl9DaGVja2JveEdyb3VwJyksDQogICAgICAgICAgICAnSlF1ZXJ5TXVsdGlTZWxlY3QnID0+ICR0aGlzLT5Nb2RMYW5nKCdmaWVsZGRlZl9KUXVlcnlNdWx0aVNlbGVjdCcpDQogICAgICAgICk7DQoJfQ0KCQ0KCXB1YmxpYyBmdW5jdGlvbiBTZXBhcmF0b3IoKQ0KCXsNCgkJcmV0dXJuICR0aGlzLT5HZXRPcHRpb25WYWx1ZSgnc2VwYXJhdG9yJyk7CQ0KCX0JDQoNCn0gLy8gZW5kIG9mIGNsYXNzDQo/Pg==]]></data>
	</file>
	<file>
	  <filename>/lib/fielddefs/ContentPages/list.ContentPages.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[e2ltcGxvZGUoJywgJywgJHZhbHVlKX0=]]></data>
	</file>
	<file>
	  <filename>/lib/fielddefs/ContentPages/output.ContentPages.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[eyRmaWVsZGRlZi5uYW1lfTogeyRmaWVsZGRlZi52YWx1ZX0=]]></data>
	</file>
	<file>
	  <filename>/lib/fielddefs/CoreFilePicker</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/lib/fielddefs/CoreFilePicker/admin.CoreFilePicker.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PGZpZWxkc2V0PgogIDxsZWdlbmQ+eyRmaWVsZGRlZi0+TW9kTGFuZygnb3B0aW9ucycpfTwvbGVnZW5kPgogIDxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CiAgICA8cCBjbGFzcz0icGFnZXRleHQiPnskZmllbGRkZWYtPk1vZExhbmcoJ2ZpZWxkZGVmX2NvcmVfZnBfcHJvZmlsZXMnKX06PC9wPgogICAgPHAgY2xhc3M9InBhZ2VpbnB1dCI+CiAgICAgIHtodG1sX29wdGlvbnMgbmFtZT0iYCRhY3Rpb25pZGBjdXN0b21faW5wdXRbcHJvZmlsZXNdIiBvcHRpb25zPSRmaWVsZGRlZi0+R2V0UHJvZmlsZXNMaXN0KCkgc2VsZWN0ZWQ9JGZpZWxkZGVmLT5HZXRPcHRpb25WYWx1ZSgncHJvZmlsZXMnLCAnJyl9CiAgICA8cCBjbGFzcz0icGFnZXRleHQiPjxkaXYgY2xhc3M9ImluZm9ybWF0aW9uIj57JGZpZWxkZGVmLT5Nb2RMYW5nKCdmaWVsZGRlZl9jb3JlX2ZwX3Byb2ZpbGVzX2hlbHAnKX08L2Rpdj48L3A+CiAgICA8L3A+CiAgPC9kaXY+CjwvZmllbGRzZXQ+]]></data>
	</file>
	<file>
	  <filename>/lib/fielddefs/CoreFilePicker/help.CoreFilePicker.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PGJ1dHRvbiBjbGFzcz0iYWNjb3JkaW9uIj48c3Ryb25nPnskZmllbGRkZWYtPkdldEZyaWVuZGx5VHlwZSgpfTwvc3Ryb25nPjwvYnV0dG9uPgoKPGRpdiBjbGFzcz0iYWNjcGFuZWwiPgoKCTxwIGNsYXNzPSJ3YXJuaW5nIj48Yj5Ob3RlOjwvYj4gVGhlIHVzZSBvZiB0aGlzIGZpZWxkIGRlZmluaXRpb24gZGVwZW5kcyBvbiB0aGUgcHJlc2VuY2Ugb2YgdGhlIENNU01TIEZpbGVwaWNrZXIgbW9kdWxlLjwvcD4KCgk8aDQ+V2hhdCBkb2VzIGl0IGRvPzwvaDQ+CgoJPHA+VGhpcyBmaWVsZCBkZWZpbml0aW9uIGNhbiBiZSB1c2VkIHRvIGFkZCBhIDxzdHJvbmc+Q01TTVMgRmlsZXBpY2tlcjwvc3Ryb25nPiB0byBhIExJU0UgaXRlbS48L3A+CgoJPHA+VE9ETzwvcD4KCgoJPGg0PkhvdyBkbyBJIHVzZSBpdD88L2g0PgoKCTxwPlRPRE88L3A+CgoJPHA+VGhlIHNldHRpbmdzIGZvciB0aGlzIGZpZWxkIGFyZTo8L3A+CgoJPHVsPgoJCTxsaT48Yj5Qcm9maWxlPC9iPjwvbGk+Cgk8L3VsPgoKPC9kaXY+]]></data>
	</file>
	<file>
	  <filename>/lib/fielddefs/CoreFilePicker/index.html</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PCEtLSBEVU1NWSBIVE1MIEZJTEUgLS0+]]></data>
	</file>
	<file>
	  <filename>/lib/fielddefs/CoreFilePicker/input.CoreFilePicker.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KCTxwIGNsYXNzPSJwYWdldGV4dCI+eyRmaWVsZGRlZi0+R2V0TmFtZSgpfXtpZiAkZmllbGRkZWYtPklzUmVxdWlyZWQoKX0qey9pZn06PC9wPgoJPHAgY2xhc3M9InBhZ2VpbnB1dCI+CgkJe2lmICRmaWVsZGRlZi0+R2V0RGVzYygpfSh7JGZpZWxkZGVmLT5HZXREZXNjKCl9KTxiciAvPnsvaWZ9CiAgICB7Y21zX2ZpbGVwaWNrZXIgbmFtZT0ieyRhY3Rpb25pZH1jdXN0b21maWVsZFt7JGZpZWxkZGVmLT5HZXRJZCgpfV0iIHByb2ZpbGU9JGZpZWxkZGVmLT5HZXRPcHRpb25WYWx1ZSgncHJvZmlsZXMnKSB2YWx1ZT0kZmllbGRkZWYtPkdldFZhbHVlKCkgcmVxdWlyZWQ9JGZpZWxkZGVmLT5Jc1JlcXVpcmVkKCl9Cgk8L3A+CjwvZGl2Pg==]]></data>
	</file>
	<file>
	  <filename>/lib/fielddefs/CoreFilePicker/lisefd.CoreFilePicker.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHANCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQojIExJU0UgLSBMaXN0IEl0IFNwZWNpYWwgRWRpdGlvbg0KIyBWZXJzaW9uIDEuMg0KIyBBIGZvcmsgb2YgTGlzdEkyDQojIG1haW50YWluZWQgYnkgRmVybmFuZG8gTW9yZ2FkbyBBS0EgSm8gTW9yZw0KIyBzaW5jZSAyMDE1DQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIw0KIyBPcmlnaW5hbCBBdXRob3I6IEJlbiBNYWxlbiwgPGJlbkBjb25jZXB0ZmFjdG9yeS5jb20uYXU+DQojIENvLU1haW50YWluZXI6IFNpbW9uIFJhZGZvcmQsIDxzaW1vbkBjb25jZXB0ZmFjdG9yeS5jb20uYXU+DQojIFdlYjogd3d3LmNvbmNlcHRmYWN0b3J5LmNvbS5hdQ0KIw0KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCiMNCiMgTWFpbnRhaW5lciBzaW5jZSAyMDExIHVwIHRvIDIwMTQ6IEpvbmF0aGFuIFNjaG1pZCwgPGhpQGpvbmF0aGFuc2NobWlkLmRlPg0KIyBXZWI6IHd3dy5qb25hdGhhbnNjaG1pZC5kZQ0KIw0KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCiMNCiMgU29tZSB3YWNrb3Mgc3RhcnRlZCBkZXN0cm95aW5nIHN0dWZmIHNpbmNlIDIwMTIgYW5kIHN0b3BwZWQgYXQgMjAxNDoNCiMNCiMgVGFwaW8gTMO2eXR0eSwgPHRhcHNhQG9yYW5nZS1tZWRpYS5maT4NCiMgV2ViOiB3d3cub3JhbmdlLW1lZGlhLmZpDQojDQojIEdvcmFuIElsaWMsIDx1bmlxdTNlQGdtYWlsLmNvbT4NCiMgV2ViOiB3d3cuaWNoLW1hY2gtZGFzLmF0DQojDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIw0KIyBMSVNFIGlzIGEgQ01TIE1hZGUgU2ltcGxlIG1vZHVsZSB0aGF0IGVuYWJsZXMgdGhlIHdlYiBkZXZlbG9wZXIgdG8gY3JlYXRlDQojIG11bHRpcGxlIGxpc3RzIHRocm91Z2hvdXQgYSBzaXRlLiBJdCBjYW4gYmUgZHVwbGljYXRlZCBhbmQgZ2l2ZW4gZnJpZW5kbHkNCiMgbmFtZXMgZm9yIGVhc2llciBjbGllbnQgbWFpbnRlbmFuY2UuDQojDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIyBCRUdJTl9MSUNFTlNFDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIyBUaGlzIGZpbGUgaXMgcGFydCBvZiBMSVNFDQojIExJU0UgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5DQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5DQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yDQojIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uDQojDQojIExJU0UgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLA0KIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZg0KIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlDQojIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuDQojIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlDQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlDQojIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcgVVNBDQojIE9yIHJlYWQgaXQgb25saW5lOiBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwNCiMNCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQojIEVORF9MSUNFTlNFDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KDQpjbGFzcyBsaXNlZmRfQ29yZUZpbGVQaWNrZXIgZXh0ZW5kcyBMSVNFRmllbGRkZWZCYXNlDQp7DQogIHN0YXRpYyBwcml2YXRlICRfZnA7DQogIHN0YXRpYyBwcml2YXRlICRfZGFvOw0KICANCglwdWJsaWMgZnVuY3Rpb24gX19jb25zdHJ1Y3QoJiRkYl9pbmZvKSANCgl7CQ0KCQlwYXJlbnQ6Ol9fY29uc3RydWN0KCRkYl9pbmZvKTsNCgkJDQoJCSR0aGlzLT5TZXRGcmllbmRseVR5cGUoJHRoaXMtPk1vZExhbmcoJ2ZpZWxkZGVmXycgLiAkdGhpcy0+R2V0VHlwZSgpKSk7DQoJfQ0KCQ0KCXN0YXRpYyBwdWJsaWMgZnVuY3Rpb24gR2V0TW9kdWxlRGVwcygpDQoJew0KCQlyZXR1cm4gYXJyYXkoJ0ZpbGVQaWNrZXInPT4nMS4wJyk7DQoJfQ0KCQ0KCXN0YXRpYyBwdWJsaWMgZnVuY3Rpb24gR2V0UHJvZmlsZXNMaXN0KCkNCiAgew0KICAgIGlmKCFpc19vYmplY3Qoc2VsZjo6JF9mcCkpDQogICAgew0KICAgICAgc2VsZjo6JF9mcCA9IFxjbXNfdXRpbHM6OmdldF9tb2R1bGUoJ0ZpbGVQaWNrZXInKTsNCiAgICAgIHNlbGY6OiRfZGFvID0gbmV3IFxGaWxlUGlja2VyXFByb2ZpbGVEQU8oc2VsZjo6JF9mcCk7DQogICAgfQ0KICAgIA0KICAgICRwcm9maWxlcyA9IHNlbGY6OiRfZGFvLT5sb2FkQUxMKCk7DQogICAgJHByb2ZpbGVzX2xpc3QgPSBhcnJheSgpOw0KICAgICRwcm9maWxlc19saXN0WycnXSA9IGxhbmcoJ25vbmUnKTsNCiAgICBpZiAoaXNfYXJyYXkoJHByb2ZpbGVzKSkgew0KICAgICAgZm9yZWFjaCgkcHJvZmlsZXMgYXMgJG9uZSkNCiAgICAgIHsNCiAgICAgICAgJHByb2ZpbGVzX2xpc3RbJG9uZS0+bmFtZV0gPSAkb25lLT5uYW1lOw0KICAgICAgfQ0KICAgIH0NCg0KICAgIHJldHVybiAkcHJvZmlsZXNfbGlzdDsNCiAgfQ0KfSAvLyBlbmQgb2YgY2xhc3MNCj8+]]></data>
	</file>
	<file>
	  <filename>/lib/fielddefs/CoreFilePicker/list.CoreFilePicker.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[eyRmaWVsZGRlZi0+R2V0VmFsdWUoKX0=]]></data>
	</file>
	<file>
	  <filename>/lib/fielddefs/CoreFilePicker/output.CoreFilePicker.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[eyRmaWVsZGRlZi5uYW1lfTogPGEgaHJlZj0ieyRmaWVsZGRlZi0+R2V0SW1hZ2VQYXRoKHRydWUpfS97JGZpZWxkZGVmLnZhbHVlfSI+eyRmaWVsZGRlZi52YWx1ZX08L2E+]]></data>
	</file>
	<file>
	  <filename>/lib/fielddefs/CustomFromSmarty</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/lib/fielddefs/CustomFromSmarty/admin.CustomFromSmarty.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[eyRvcHRzID0gJGZpZWxkZGVmLT5HZXRPcHRpb25zKCl9CjxmaWVsZHNldD4KICA8bGVnZW5kPnskZmllbGRkZWYtPk1vZExhbmcoJ29wdGlvbnMnKX08L2xlZ2VuZD4KICA8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgogICAgICA8cCBjbGFzcz0icGFnZXRleHQiPnskZmllbGRkZWYtPk1vZExhbmcoJ2ZpZWxkZGVmX3R5cGUnKX06PC9wPgogICAgICA8cCBjbGFzcz0icGFnZWlucHV0Ij4KICAgICAgICB7aHRtbF9vcHRpb25zIG5hbWU9ImAkYWN0aW9uaWRgY3VzdG9tX2lucHV0W3R5cGVdIiBvcHRpb25zPSRvcHRzLnR5cGVzIHNlbGVjdGVkPSRmaWVsZGRlZi0+R2V0T3B0aW9uVmFsdWUoJ3R5cGUnLCAnRHJvcGRvd24nKX0KICAgICAgPC9wPgogICAgICA8cCBjbGFzcz0icGFnZXRleHQiPjxkaXYgY2xhc3M9ImluZm9ybWF0aW9uIj57JGZpZWxkZGVmLT5Nb2RMYW5nKCdmaWVsZGRlZl90eXBlX2hlbHAnKX08L2Rpdj48L3A+CiAgPC9kaXY+CiAgPGhyPgogIDxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CiAgICAgIDxwIGNsYXNzPSJwYWdldGV4dCI+eyRmaWVsZGRlZi0+TW9kTGFuZygnZmllbGRkZWZfc291cmNlX3RlbXBsYXRlJyl9OjwvcD4KICAgICAgPHAgY2xhc3M9InBhZ2VpbnB1dCI+CiAgICAgICAgPHRleHRhcmVhCiAgICAgICAgICAgICAgICByb3dzPSIzIgogICAgICAgICAgICAgICAgbmFtZT0ieyRhY3Rpb25pZH1jdXN0b21faW5wdXRbc291cmNlX3RlbXBsYXRlXSI+eyRmaWVsZGRlZi0+R2V0T3B0aW9uVmFsdWUoJ3NvdXJjZV90ZW1wbGF0ZScsICcnKX08L3RleHRhcmVhPgogICAgICA8L3A+CiAgICAgIDxwIGNsYXNzPSJwYWdldGV4dCI+PGRpdiBjbGFzcz0iaW5mb3JtYXRpb24iPnskZmllbGRkZWYtPk1vZExhbmcoJ2ZpZWxkZGVmX3NvdXJjZV90ZW1wbGF0ZV9oZWxwJyl9PC9kaXY+PC9wPgogIDwvZGl2PgogIDxocj4gICAKICA8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgogICAgICA8cCBjbGFzcz0icGFnZXRleHQiPnskZmllbGRkZWYtPk1vZExhbmcoJ2ZpZWxkZGVmX3ZhbGlkYXRpb25fdWR0Jyl9OjwvcD4KICAgICAgPHAgY2xhc3M9InBhZ2VpbnB1dCI+CgkJICAgIHtodG1sX29wdGlvbnMgbmFtZT0iYCRhY3Rpb25pZGBjdXN0b21faW5wdXRbdmFsaWRhdGlvbl91ZHRdIiBvcHRpb25zPSRvcHRzLnVkdHMgc2VsZWN0ZWQ9JGZpZWxkZGVmLT5HZXRPcHRpb25WYWx1ZSgndmFsaWRhdGlvbl91ZHQnLCAtMSl9CiAgICAgIDwvcD4KICAgICAgPHAgY2xhc3M9InBhZ2V0ZXh0Ij48ZGl2IGNsYXNzPSJpbmZvcm1hdGlvbiI+eyRmaWVsZGRlZi0+TW9kTGFuZygnZmllbGRkZWZfdmFsaWRhdGlvbl9VRFRfaGVscCcpfTwvZGl2PjwvcD4KICA8L2Rpdj4gICAgCjwvZmllbGRzZXQ+]]></data>
	</file>
	<file>
	  <filename>/lib/fielddefs/CustomFromSmarty/help.CustomFromSmarty.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PGJ1dHRvbiBjbGFzcz0iYWNjb3JkaW9uIj48c3Ryb25nPnskZmllbGRkZWYtPkdldEZyaWVuZGx5VHlwZSgpfTwvc3Ryb25nPjwvYnV0dG9uPgoKPGRpdiBjbGFzcz0iYWNjcGFuZWwiPgoKCTxoND5XaGF0IGRvZXMgaXQgZG8/PC9oND4KCgk8cD5UaGlzIGZpZWxkIGRlZmluaXRpb24gY2FuIGJlIHVzZWQgdG8gYWRkIGEgPHN0cm9uZz5TbWFydHkgcGFyc2VkIHRlbXBsYXRlIG11bHRpcGxlIGlucHV0PC9zdHJvbmc+IHRvIGEgTElTRSBpdGVtLjwvcD4KCgk8cD5UT0RPPC9wPgoKCgk8aDQ+SG93IGRvIEkgdXNlIGl0PzwvaDQ+Cgk8cD5GaWxsICRvcHRzIGFycmF5IHdpdGgga2V5IHZhbHVlIHBhaXJzIGFuZCBwYXNzIGl0IHRvIGFueSBvZiB0aGUgZm9sbG93aW5nIHRhZ3MuICRuYW1lIGFuZCAkc2VsIGFyZSBhbHJlYWR5IHByb3ZpZGVkIGJ5IHRoZSBtb2R1bGUuPC9wPgoJPHA+Rm9yIERyb3Bkb3duIGFuZCBNdWx0aVNlbGVjdCB0eXBlcyB1c2U6IHtsaXRlcmFsfXtodG1sX29wdGlvbnMgb3B0aW9ucz0kb3B0cyBzZWxlY3RlZD0kc2VsfXsvbGl0ZXJhbH08L3A+Cgk8cD5Gb3IgUmFkaW9Hcm91cCB0eXBlIHVzZToge2xpdGVyYWx9aHRtbF9yYWRpb3MgbmFtZT0kbmFtZSBvcHRpb25zPSRvcHRzIHNlbGVjdGVkPSRzZWwgc2VwYXJhdG9yPSc8YnIgLz4nfTwvcD4KCTxwPkZvciBDaGVja2JveEdyb3VwIHR5cGUgdXNlOiB7aHRtbF9jaGVja2JveGVzICBuYW1lPSRuYW1lIG9wdGlvbnM9JG9wdHMgc2VsZWN0ZWQ9JHNlbCBzZXBhcmF0b3I9JzxiciAvPid9PC9wPgoKCTxwPlRoZSBzZXR0aW5ncyBmb3IgdGhpcyBmaWVsZCBhcmU6PC9wPgoKCTx1bD4KCQk8bGk+PGI+VE9ETzo8L2I+CiAJCQk8dWw+CiAJCQkJPGxpPiA8L2xpPgoJCQk8L3VsPgoJCTwvbGk+CgkJPGxpPjxiPiA8L2I+PC9saT4KCQk8bGk+PGI+IDwvYj48L2xpPgoJCTxsaT48Yj4gPC9iPjwvbGk+Cgk8L3VsPgoKPC9kaXY+]]></data>
	</file>
	<file>
	  <filename>/lib/fielddefs/CustomFromSmarty/index.html</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PCEtLSBEVU1NWSBIVE1MIEZJTEUgLS0+]]></data>
	</file>
	<file>
	  <filename>/lib/fielddefs/CustomFromSmarty/input.CustomFromSmarty.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[eyRzb3VyY2UgPSAkZmllbGRkZWYtPkdldE9wdGlvblZhbHVlKCdzb3VyY2VfdGVtcGxhdGUnKX0KeyR0eXBlID0gJGZpZWxkZGVmLT5HZXRPcHRpb25WYWx1ZSgndHlwZScpfQp7JHNlbCA9ICRmaWVsZGRlZi0+R2V0VmFsdWUoKX0Ke2luY2x1ZGUKCWZpbGU9InN0cmluZzokc291cmNlIgoJYWN0aW9uaWQ9JGFjdGlvbmlkCglzZWwgPSAkc2VsCgluYW1lID0gInskYWN0aW9uaWR9Y3VzdG9tZmllbGRbeyRmaWVsZGRlZi0+R2V0SWQoKX1dIgoJYXNzaWduID0gcmVuZGVyZWR9CjxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+Cgk8cCBjbGFzcz0icGFnZXRleHQiPnskZmllbGRkZWYtPkdldE5hbWUoKX17aWYgJGZpZWxkZGVmLT5Jc1JlcXVpcmVkKCl9KnsvaWZ9OjwvcD4KCTxwIGNsYXNzPSJwYWdlaW5wdXQiPgoJCXtpZiAkZmllbGRkZWYtPkdldERlc2MoKX0oeyRmaWVsZGRlZi0+R2V0RGVzYygpfSk8YnIgLz57L2lmfQogICAgCiAgICB7aWYgIWVtcHR5KCRzb3VyY2UpfQogICAgICB7aWYgJHR5cGUgPT0gJ0Ryb3Bkb3duJ30KCQkgICAgPHNlbGVjdCBuYW1lPSJ7JGFjdGlvbmlkfWN1c3RvbWZpZWxkW3skZmllbGRkZWYtPkdldElkKCl9XSI+CgkJCQkJeyRyZW5kZXJlZH0KCQkgICAgPC9zZWxlY3Q+CiAgICAgIHtlbHNlaWYgJHR5cGUgPT0gJ011bHRpU2VsZWN0J30KICAgICAgICA8c2VsZWN0IG5hbWU9InskYWN0aW9uaWR9Y3VzdG9tZmllbGRbeyRmaWVsZGRlZi0+R2V0SWQoKX1dW119IiBzaXplPSJ7JG9wdHN8Y291bnR9IiBtdWx0aXBsZT4KCQkJCQl7JHJlbmRlcmVkfQogICAgICAgIDwvc2VsZWN0PiAgICAgIAogICAgICB7ZWxzZWlmICR0eXBlID09ICdSYWRpb0dyb3VwJ30KCQkJCXskcmVuZGVyZWR9CiAgICAgIHtlbHNlaWYgJHR5cGUgPT0gJ0NoZWNrYm94R3JvdXAnfQoJCQkJeyRyZW5kZXJlZH0KICAgICAgey9pZn0KICAgIHsvaWZ9Cgk8L3A+CjwvZGl2Pg==]]></data>
	</file>
	<file>
	  <filename>/lib/fielddefs/CustomFromSmarty/lisefd.CustomFromSmarty.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBMSVNFIC0gTGlzdCBJdCBTcGVjaWFsIEVkaXRpb24KIyBWZXJzaW9uIDEuMgojIEEgZm9yayBvZiBMaXN0STIKIyBtYWludGFpbmVkIGJ5IEZlcm5hbmRvIE1vcmdhZG8gQUtBIEpvIE1vcmcKIyBzaW5jZSAyMDE1CiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBPcmlnaW5hbCBBdXRob3I6IEJlbiBNYWxlbiwgPGJlbkBjb25jZXB0ZmFjdG9yeS5jb20uYXU+CiMgQ28tTWFpbnRhaW5lcjogU2ltb24gUmFkZm9yZCwgPHNpbW9uQGNvbmNlcHRmYWN0b3J5LmNvbS5hdT4KIyBXZWI6IHd3dy5jb25jZXB0ZmFjdG9yeS5jb20uYXUKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojCiMgTWFpbnRhaW5lciBzaW5jZSAyMDExIHVwIHRvIDIwMTQ6IEpvbmF0aGFuIFNjaG1pZCwgPGhpQGpvbmF0aGFuc2NobWlkLmRlPgojIFdlYjogd3d3LmpvbmF0aGFuc2NobWlkLmRlCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIwojIFNvbWUgd2Fja29zIHN0YXJ0ZWQgZGVzdHJveWluZyBzdHVmZiBzaW5jZSAyMDEyIGFuZCBzdG9wcGVkIGF0IDIwMTQ6CiMKIyBUYXBpbyBMw7Z5dHR5LCA8dGFwc2FAb3JhbmdlLW1lZGlhLmZpPgojIFdlYjogd3d3Lm9yYW5nZS1tZWRpYS5maQojCiMgR29yYW4gSWxpYywgPHVuaXF1M2VAZ21haWwuY29tPgojIFdlYjogd3d3LmljaC1tYWNoLWRhcy5hdAojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBMSVNFIGlzIGEgQ01TIE1hZGUgU2ltcGxlIG1vZHVsZSB0aGF0IGVuYWJsZXMgdGhlIHdlYiBkZXZlbG9wZXIgdG8gY3JlYXRlCiMgbXVsdGlwbGUgbGlzdHMgdGhyb3VnaG91dCBhIHNpdGUuIEl0IGNhbiBiZSBkdXBsaWNhdGVkIGFuZCBnaXZlbiBmcmllbmRseQojIG5hbWVzIGZvciBlYXNpZXIgY2xpZW50IG1haW50ZW5hbmNlLgojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgQkVHSU5fTElDRU5TRQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIExJU0UKIyBMSVNFIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgTElTRSBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBFTkRfTElDRU5TRQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpjbGFzcyBsaXNlZmRfQ3VzdG9tRnJvbVNtYXJ0eSBleHRlbmRzIExJU0VGaWVsZGRlZkJhc2UKewogIHByaXZhdGUgJF9vcHRzID0gYXJyYXkoKTsKICAKCXB1YmxpYyBmdW5jdGlvbiBfX2NvbnN0cnVjdCgkZGJfaW5mbykKCXsJCgkJcGFyZW50OjpfX2NvbnN0cnVjdCgkZGJfaW5mbyk7CgkJJHRoaXMtPlNldEZyaWVuZGx5VHlwZSggJHRoaXMtPk1vZExhbmcoJ2ZpZWxkZGVmXycgLiAkdGhpcy0+R2V0VHlwZSgpICkgKTsKCX0KICAKICBwdWJsaWMgZnVuY3Rpb24gR2V0T3B0aW9ucygpCiAgewogICAgJHVkdHMgPSBjbXNtcygpLT5HZXRVc2VyVGFnT3BlcmF0aW9ucygpLT5MaXN0VXNlclRhZ3MoKTsKICAgICR1ZHRzX29wdHMgPSBhcnJheV9jb21iaW5lKCAkdWR0cywgJHVkdHMpOwogICAgJHRoaXMtPl9vcHRzWyd1ZHRzJ10gPSBhcnJheSggLTEgPT4gbGFuZygnbm9uZScpICkgICsgICR1ZHRzX29wdHM7CiAgICAKICAgICR0aGlzLT5fb3B0c1snc291cmNlX3RlbXBsYXRlJ10gPSAkdGhpcy0+R2V0T3B0aW9uVmFsdWUoJ3NvdXJjZV90ZW1wbGF0ZScsICcnKTsKICAgICR0aGlzLT5fb3B0c1sndmFsaWRhdGlvbl91ZHQnXSA9ICR0aGlzLT5HZXRPcHRpb25WYWx1ZSgndmFsaWRhdGlvbl91ZHQnLCAtMSk7CiAgICAkdGhpcy0+X29wdHNbJ3R5cGUnXSA9ICR0aGlzLT5HZXRPcHRpb25WYWx1ZSgndHlwZScsICdEcm9wZG93bicpOwogICAgJHRoaXMtPl9vcHRzWyd0eXBlcyddID0gYXJyYXkoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdEcm9wZG93bicgICAgICA9PiAkdGhpcy0+TW9kTGFuZygnZmllbGRkZWZfRHJvcGRvd24nKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ011bHRpU2VsZWN0JyAgID0+ICR0aGlzLT5Nb2RMYW5nKCdmaWVsZGRlZl9NdWx0aVNlbGVjdCcpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnUmFkaW9Hcm91cCcgICAgPT4gJHRoaXMtPk1vZExhbmcoJ2ZpZWxkZGVmX1JhZGlvR3JvdXAnKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ0NoZWNrYm94R3JvdXAnID0+ICR0aGlzLT5Nb2RMYW5nKCdmaWVsZGRlZl9DaGVja2JveEdyb3VwJykKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICk7CiAgICByZXR1cm4gJHRoaXMtPl9vcHRzOwogIH0KICAKCXB1YmxpYyBmdW5jdGlvbiBDYWxsVURUKCR1ZHQpCgl7CiAgICBpZiggLTEgPT0gJHVkdCkgcmV0dXJuIGFycmF5KCk7CgogICAgJHV0b3BzID0gY21zbXMoKS0+R2V0VXNlclRhZ09wZXJhdGlvbnMoKTsKICAgIAogICAgaWYoICR1dG9wcy0+VXNlclRhZ0V4aXN0cygkdWR0KSApCiAgICB7CiAgICAgICRwYXJhbXMgPSBhcnJheSgpOyAgICAgICAgICAgCiAgICAgIHJldHVybiAkdXRvcHMtPkNhbGxVc2VyVGFnKCR1ZHQsICRwYXJhbXMpOwogICAgfQogICAgCiAgICByZXR1cm4gYXJyYXkoKTsKCX0KCQogIHB1YmxpYyBmdW5jdGlvbiBWYWxpZGF0ZSgmJGVycm9ycyk6IHZvaWQKICB7CiAgICBwYXJlbnQ6OlZhbGlkYXRlKCRlcnJvcnMpOwogICAgCiAgICAkdWR0ID0gJHRoaXMtPkdldE9wdGlvblZhbHVlKCd2YWxpZGF0aW9uX3VkdCcsIC0xKTsKICAgIAogICAgaWYoIC0xICE9ICR1ZHQpCiAgICB7CiAgICAgICR1dG9wcyA9IGNtc21zKCktPkdldFVzZXJUYWdPcGVyYXRpb25zKCk7CiAgICAgIAogICAgICBpZiggJHV0b3BzLT5Vc2VyVGFnRXhpc3RzKCR1ZHQpICkKICAgICAgewogICAgICAgICR2YWx1ZSA9ICR0aGlzLT5HZXRWYWx1ZSgpOwogICAgICAgIAogICAgICAgICRwYXJhbXMgPSBhcnJheSgKICAgICAgICAgICAgICAgICAgICAgICAgICAndmFsdWUnID0+ICR2YWx1ZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAnZXJyb3JzJyA9PiAkZXJyb3JzCiAgICAgICAgICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICRlcnJvcnMgPSAkdXRvcHMtPkNhbGxVc2VyVGFnKCR1ZHQsICRwYXJhbXMpOwogICAgICB9CiAgICB9CiAgICAgICAKICB9ICAKfQo/Pg==]]></data>
	</file>
	<file>
	  <filename>/lib/fielddefs/CustomFromSmarty/list.CustomFromSmarty.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[eyoNCmlmIHVzaW5nIGEgVURUICB0byBoYW5kbGUgdGhlIFJlbmRlckZvckFkbWluTGlzdGluZyBvdXRwdXQgdGhlIHJldHVybmVkIHZhbHVlIHdpbGwgYmUgaW4geyR2YWx1ZX0NCm90aGVyd2lzZSB0aGUgdXN1YWwgeyRmaWVsZGRlZi0+R2V0VmFsdWUoKX0gaG9sZHMgdGhlIHJldHVybiB2YWx1ZQ0KKn0NCnskdHlwZSA9ICRmaWVsZGRlZi0+R2V0T3B0aW9uVmFsdWUoJ3R5cGUnLCAnRHJvcGRvd24nKX0NCntpZiAkdHlwZSA9PSAnRHJvcGRvd24nfQ0KICB7JHZhbHVlfGRlZmF1bHQ6JGZpZWxkZGVmLT5HZXRWYWx1ZSgpfQ0Ke2Vsc2V9DQogIHskdmFsdWUgPSAkdmFsdWV8ZGVmYXVsdDokZmllbGRkZWYtPkdldFZhbHVlKCdhcnJheScpfQ0KICB7aW1wbG9kZSgnLCAnLCAkdmFsdWUpfQ0Key9pZn0NCg==]]></data>
	</file>
	<file>
	  <filename>/lib/fielddefs/CustomFromSmarty/output.CustomFromSmarty.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[eyRmaWVsZGRlZi5uYW1lfToge2ltcGxvZGUoJywnLCAkZmllbGRkZWYudmFsdWUpfQ==]]></data>
	</file>
	<file>
	  <filename>/lib/fielddefs/CustomFromUDT</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/lib/fielddefs/CustomFromUDT/admin.CustomFromUDT.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[eyRvcHRzID0gJGZpZWxkZGVmLT5HZXRPcHRpb25zKCl9Cgo8ZmllbGRzZXQ+CiAgPGxlZ2VuZD57JGZpZWxkZGVmLT5Nb2RMYW5nKCdvcHRpb25zJyl9PC9sZWdlbmQ+CgogIDxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CiAgICAgIDxwIGNsYXNzPSJwYWdldGV4dCI+eyRmaWVsZGRlZi0+TW9kTGFuZygnZmllbGRkZWZfdHlwZScpfTo8L3A+CiAgICAgIDxwIGNsYXNzPSJwYWdlaW5wdXQiPgogICAgICAgIHtodG1sX29wdGlvbnMgbmFtZT0iYCRhY3Rpb25pZGBjdXN0b21faW5wdXRbdHlwZV0iIG9wdGlvbnM9JG9wdHMudHlwZXMgc2VsZWN0ZWQ9JGZpZWxkZGVmLT5HZXRPcHRpb25WYWx1ZSgndHlwZScsICdEcm9wZG93bicpfQogICAgICA8L3A+CiAgICAgIDxwIGNsYXNzPSJwYWdldGV4dCI+PGRpdiBjbGFzcz0iaW5mb3JtYXRpb24iPnskZmllbGRkZWYtPk1vZExhbmcoJ2ZpZWxkZGVmX3R5cGVfaGVscCcpfTwvZGl2PjwvcD4KICA8L2Rpdj4gCiAgPGhyPgogIDxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CiAgICAgIDxwIGNsYXNzPSJwYWdldGV4dCI+eyRmaWVsZGRlZi0+TW9kTGFuZygnZmllbGRkZWZfc291cmNlX3VkdCcpfTo8L3A+CiAgICAgIDxwIGNsYXNzPSJwYWdlaW5wdXQiPgogICAgICAgIHtodG1sX29wdGlvbnMgbmFtZT0iYCRhY3Rpb25pZGBjdXN0b21faW5wdXRbc291cmNlX3VkdF0iIG9wdGlvbnM9JG9wdHMudWR0cyBzZWxlY3RlZD0kZmllbGRkZWYtPkdldE9wdGlvblZhbHVlKCdzb3VyY2VfdWR0JywgLTEpfQogICAgICA8L3A+CiAgICAgIDxwIGNsYXNzPSJwYWdldGV4dCI+PGRpdiBjbGFzcz0iaW5mb3JtYXRpb24iPnskZmllbGRkZWYtPk1vZExhbmcoJ2ZpZWxkZGVmX3NvdXJjZV9VRFRfaGVscCcpfTwvZGl2PjwvcD4KICA8L2Rpdj4KICA8aHI+ICAgCiAgPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KICAgICAgPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JGZpZWxkZGVmLT5Nb2RMYW5nKCdmaWVsZGRlZl9yZW5kZXJfZm9yX2FkbWluX2xpc3RpbmdfdWR0Jyl9OjwvcD4KICAgICAgPHAgY2xhc3M9InBhZ2VpbnB1dCI+CiAgICAgICAge2h0bWxfb3B0aW9ucyBuYW1lPSJgJGFjdGlvbmlkYGN1c3RvbV9pbnB1dFtyZW5kZXJfZm9yX2FkbWluX2xpc3RpbmdfdWR0XSIgb3B0aW9ucz0kb3B0cy51ZHRzIHNlbGVjdGVkPSRmaWVsZGRlZi0+R2V0T3B0aW9uVmFsdWUoJ3JlbmRlcl9mb3JfYWRtaW5fbGlzdGluZ191ZHQnLCAtMSl9CiAgICAgIDwvcD4KICAgICAgPHAgY2xhc3M9InBhZ2V0ZXh0Ij48ZGl2IGNsYXNzPSJpbmZvcm1hdGlvbiI+eyRmaWVsZGRlZi0+TW9kTGFuZygnZmllbGRkZWZfcmVuZGVyX2Zvcl9hZG1pbl9saXN0aW5nX1VEVF9oZWxwJyl9PC9kaXY+PC9wPgogIDwvZGl2PgogIDxocj4gICAKICA8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgogICAgICA8cCBjbGFzcz0icGFnZXRleHQiPnskZmllbGRkZWYtPk1vZExhbmcoJ2ZpZWxkZGVmX3ZhbGlkYXRpb25fdWR0Jyl9OjwvcD4KICAgICAgPHAgY2xhc3M9InBhZ2VpbnB1dCI+CgkJICAgIHtodG1sX29wdGlvbnMgbmFtZT0iYCRhY3Rpb25pZGBjdXN0b21faW5wdXRbdmFsaWRhdGlvbl91ZHRdIiBvcHRpb25zPSRvcHRzLnVkdHMgc2VsZWN0ZWQ9JGZpZWxkZGVmLT5HZXRPcHRpb25WYWx1ZSgndmFsaWRhdGlvbl91ZHQnLCAtMSl9CiAgICAgIDwvcD4KICAgICAgPHAgY2xhc3M9InBhZ2V0ZXh0Ij48ZGl2IGNsYXNzPSJpbmZvcm1hdGlvbiI+eyRmaWVsZGRlZi0+TW9kTGFuZygnZmllbGRkZWZfdmFsaWRhdGlvbl9VRFRfaGVscCcpfTwvZGl2PjwvcD4KICA8L2Rpdj4gICAgCjwvZmllbGRzZXQ+]]></data>
	</file>
	<file>
	  <filename>/lib/fielddefs/CustomFromUDT/help.CustomFromUDT.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PGJ1dHRvbiBjbGFzcz0iYWNjb3JkaW9uIj48c3Ryb25nPnskZmllbGRkZWYtPkdldEZyaWVuZGx5VHlwZSgpfTwvc3Ryb25nPjwvYnV0dG9uPgoKPGRpdiBjbGFzcz0iYWNjcGFuZWwiPgoKCTxwIGNsYXNzPSJ3YXJuaW5nIj48Yj5Ob3RlOjwvYj4gVGhlIHVzZSBvZiB0aGlzIGZpZWxkIGRlZmluaXRpb24gaW4gQ01TTVMgMi4zKyBkZXBlbmRzIG9uIHRoZSBwcmVzZW5jZSBvZiBhIFVEVCBoYW5kbGVyIG1vZHVsZSBsaWtlIFNuaXBwZXRNZ3IuPC9wPgoKCTxoND5XaGF0IGRvZXMgaXQgZG8/PC9oND4KCgk8cD5UaGlzIGZpZWxkIGRlZmluaXRpb24gY2FuIGJlIHVzZWQgdG8gYWRkIGEgPHN0cm9uZz5Vc2VyIERlZmluZWQgVGFnIFNlbGVjdG9yPC9zdHJvbmc+IHRvIGEgTElTRSBpdGVtLjwvcD4KCgk8cD5UT0RPPC9wPgoKCgk8aDQ+SG93IGRvIEkgdXNlIGl0PzwvaDQ+CgoJPHA+VE9ETzwvcD4KCgk8cD5UaGUgc2V0dGluZ3MgZm9yIHRoaXMgZmllbGQgYXJlOjwvcD4KCgk8dWw+CgkJPGxpPjxiPlRPRE86PC9iPgogCQkJPHVsPgogCQkJCTxsaT4gPC9saT4KCQkJPC91bD4KCQk8L2xpPgoJCTxsaT48Yj4gPC9iPjwvbGk+CgkJPGxpPjxiPiA8L2I+PC9saT4KCQk8bGk+PGI+IDwvYj48L2xpPgoJPC91bD4KCjwvZGl2Pg==]]></data>
	</file>
	<file>
	  <filename>/lib/fielddefs/CustomFromUDT/index.html</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PCEtLSBEVU1NWSBIVE1MIEZJTEUgLS0+]]></data>
	</file>
	<file>
	  <filename>/lib/fielddefs/CustomFromUDT/input.CustomFromUDT.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[eyRzb3VyY2UgPSAkZmllbGRkZWYtPkdldE9wdGlvblZhbHVlKCdzb3VyY2VfdWR0Jyl9CnskdHlwZSA9ICRmaWVsZGRlZi0+R2V0T3B0aW9uVmFsdWUoJ3R5cGUnKX0KeyRvcHRzID0gJGZpZWxkZGVmLT5DYWxsVURUKCRmaWVsZGRlZi0+R2V0T3B0aW9uVmFsdWUoJ3NvdXJjZV91ZHQnKSl9Cnskc2VsID0gJGZpZWxkZGVmLT5HZXRWYWx1ZSgpfQoKPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KCTxwIGNsYXNzPSJwYWdldGV4dCI+eyRmaWVsZGRlZi0+R2V0TmFtZSgpfXtpZiAkZmllbGRkZWYtPklzUmVxdWlyZWQoKX0qey9pZn06PC9wPgoJPHAgY2xhc3M9InBhZ2VpbnB1dCI+CgkJe2lmICRmaWVsZGRlZi0+R2V0RGVzYygpfSh7JGZpZWxkZGVmLT5HZXREZXNjKCl9KTxiciAvPnsvaWZ9CiAgICAKICAgIHtpZiAtMSAhPSAkc291cmNlfQogICAgICB7aWYgJHR5cGUgPT0gJ0Ryb3Bkb3duJ30KCQkgICAgPHNlbGVjdCBuYW1lPSJ7JGFjdGlvbmlkfWN1c3RvbWZpZWxkW3skZmllbGRkZWYtPkdldElkKCl9XSI+CgkJICAgICAge2h0bWxfb3B0aW9ucyBvcHRpb25zPSRvcHRzIHNlbGVjdGVkPSRzZWx9CgkJICAgIDwvc2VsZWN0PgogICAgICB7ZWxzZWlmICR0eXBlID09ICdNdWx0aVNlbGVjdCd9CiAgICAgICAgPHNlbGVjdCBuYW1lPSJ7JGFjdGlvbmlkfWN1c3RvbWZpZWxkW3skZmllbGRkZWYtPkdldElkKCl9XVtdfSIgc2l6ZT0ieyRvcHRzfGNvdW50fSIgbXVsdGlwbGU+CiAgICAgICAgICB7aHRtbF9vcHRpb25zIG9wdGlvbnM9JG9wdHMgc2VsZWN0ZWQ9JHNlbH0KICAgICAgICA8L3NlbGVjdD4gICAgICAKICAgICAge2Vsc2VpZiAkdHlwZSA9PSAnUmFkaW9Hcm91cCd9CiAgICAgICAge2h0bWxfcmFkaW9zIG5hbWU9InskYWN0aW9uaWR9Y3VzdG9tZmllbGRbeyRmaWVsZGRlZi0+R2V0SWQoKX1dIiBvcHRpb25zPSRvcHRzIHNlbGVjdGVkPSRzZWwgc2VwYXJhdG9yPSc8YnIgLz4nfQogICAgICB7ZWxzZWlmICR0eXBlID09ICdDaGVja2JveEdyb3VwJ30KICAgICAgICB7aHRtbF9jaGVja2JveGVzIG5hbWU9InskYWN0aW9uaWR9Y3VzdG9tZmllbGRbeyRmaWVsZGRlZi0+R2V0SWQoKX1dIiBvcHRpb25zPSRvcHRzIHNlbGVjdGVkPSRzZWwgc2VwYXJhdG9yPSc8YnIgLz4nfQogICAgICB7L2lmfQogICAgey9pZn0KCTwvcD4KPC9kaXY+]]></data>
	</file>
	<file>
	  <filename>/lib/fielddefs/CustomFromUDT/lisefd.CustomFromUDT.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBMSVNFIC0gTGlzdCBJdCBTcGVjaWFsIEVkaXRpb24KIyBWZXJzaW9uIDEuMgojIEEgZm9yayBvZiBMaXN0STIKIyBtYWludGFpbmVkIGJ5IEZlcm5hbmRvIE1vcmdhZG8gQUtBIEpvIE1vcmcKIyBzaW5jZSAyMDE1CiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBPcmlnaW5hbCBBdXRob3I6IEJlbiBNYWxlbiwgPGJlbkBjb25jZXB0ZmFjdG9yeS5jb20uYXU+CiMgQ28tTWFpbnRhaW5lcjogU2ltb24gUmFkZm9yZCwgPHNpbW9uQGNvbmNlcHRmYWN0b3J5LmNvbS5hdT4KIyBXZWI6IHd3dy5jb25jZXB0ZmFjdG9yeS5jb20uYXUKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojCiMgTWFpbnRhaW5lciBzaW5jZSAyMDExIHVwIHRvIDIwMTQ6IEpvbmF0aGFuIFNjaG1pZCwgPGhpQGpvbmF0aGFuc2NobWlkLmRlPgojIFdlYjogd3d3LmpvbmF0aGFuc2NobWlkLmRlCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIwojIFNvbWUgd2Fja29zIHN0YXJ0ZWQgZGVzdHJveWluZyBzdHVmZiBzaW5jZSAyMDEyIGFuZCBzdG9wcGVkIGF0IDIwMTQ6CiMKIyBUYXBpbyBMw7Z5dHR5LCA8dGFwc2FAb3JhbmdlLW1lZGlhLmZpPgojIFdlYjogd3d3Lm9yYW5nZS1tZWRpYS5maQojCiMgR29yYW4gSWxpYywgPHVuaXF1M2VAZ21haWwuY29tPgojIFdlYjogd3d3LmljaC1tYWNoLWRhcy5hdAojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBMSVNFIGlzIGEgQ01TIE1hZGUgU2ltcGxlIG1vZHVsZSB0aGF0IGVuYWJsZXMgdGhlIHdlYiBkZXZlbG9wZXIgdG8gY3JlYXRlCiMgbXVsdGlwbGUgbGlzdHMgdGhyb3VnaG91dCBhIHNpdGUuIEl0IGNhbiBiZSBkdXBsaWNhdGVkIGFuZCBnaXZlbiBmcmllbmRseQojIG5hbWVzIGZvciBlYXNpZXIgY2xpZW50IG1haW50ZW5hbmNlLgojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgQkVHSU5fTElDRU5TRQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIExJU0UKIyBMSVNFIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgTElTRSBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBFTkRfTElDRU5TRQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpjbGFzcyBsaXNlZmRfQ3VzdG9tRnJvbVVEVCBleHRlbmRzIExJU0VGaWVsZGRlZkJhc2UKewogIHByaXZhdGUgJF9vcHRzID0gYXJyYXkoKTsKICAKCXB1YmxpYyBmdW5jdGlvbiBfX2NvbnN0cnVjdCgkZGJfaW5mbykKCXsJCgkJcGFyZW50OjpfX2NvbnN0cnVjdCgkZGJfaW5mbyk7CgkJJHRoaXMtPlNldEZyaWVuZGx5VHlwZSggJHRoaXMtPk1vZExhbmcoJ2ZpZWxkZGVmXycgLiAkdGhpcy0+R2V0VHlwZSgpICkgKTsKCX0KICAKICBwdWJsaWMgZnVuY3Rpb24gR2V0T3B0aW9ucygpCiAgewogICAgJHVkdHMgPSBjbXNtcygpLT5HZXRVc2VyVGFnT3BlcmF0aW9ucygpLT5MaXN0VXNlclRhZ3MoKTsKICAgICR1ZHRzX29wdHMgPSBhcnJheV9jb21iaW5lKCAkdWR0cywgJHVkdHMpOwoKICAgICR0aGlzLT5fb3B0c1sndWR0cyddID0gYXJyYXkoIC0xID0+IGxhbmcoJ25vbmUnKSApICArICAkdWR0c19vcHRzOyAKICAgICR0aGlzLT5fb3B0c1snc291cmNlX3VkdCddID0gJHRoaXMtPkdldE9wdGlvblZhbHVlKCdzb3VyY2VfdWR0JywgLTEpOwogICAgJHRoaXMtPl9vcHRzWyd2YWxpZGF0aW9uX3VkdCddID0gJHRoaXMtPkdldE9wdGlvblZhbHVlKCdyZW5kZXJfZm9yX2FkbWluX2xpc3RpbmdfdWR0JywgLTEpOwogICAgJHRoaXMtPl9vcHRzWyd2YWxpZGF0aW9uX3VkdCddID0gJHRoaXMtPkdldE9wdGlvblZhbHVlKCd2YWxpZGF0aW9uX3VkdCcsIC0xKTsKICAgICR0aGlzLT5fb3B0c1sndHlwZSddID0gJHRoaXMtPkdldE9wdGlvblZhbHVlKCd0eXBlJywgJ0Ryb3Bkb3duJyk7CiAgICAkdGhpcy0+X29wdHNbJ3R5cGVzJ10gPSBhcnJheSgKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ0Ryb3Bkb3duJyAgICAgID0+ICR0aGlzLT5Nb2RMYW5nKCdmaWVsZGRlZl9Ecm9wZG93bicpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnTXVsdGlTZWxlY3QnICAgPT4gJHRoaXMtPk1vZExhbmcoJ2ZpZWxkZGVmX011bHRpU2VsZWN0JyksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdSYWRpb0dyb3VwJyAgICA9PiAkdGhpcy0+TW9kTGFuZygnZmllbGRkZWZfUmFkaW9Hcm91cCcpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnQ2hlY2tib3hHcm91cCcgPT4gJHRoaXMtPk1vZExhbmcoJ2ZpZWxkZGVmX0NoZWNrYm94R3JvdXAnKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKTsKICAgIHJldHVybiAkdGhpcy0+X29wdHM7CiAgfQogIAogIHB1YmxpYyBmdW5jdGlvbiBSZW5kZXJGb3JBZG1pbkxpc3RpbmcoJGlkLCAkcmV0dXJuaWQpCiAgewogICAgJHZhbHVlID0gcGFyZW50OjpSZW5kZXJGb3JBZG1pbkxpc3RpbmcoJGlkLCAkcmV0dXJuaWQpOwogICAgJHVkdCA9ICR0aGlzLT5HZXRPcHRpb25WYWx1ZSgncmVuZGVyX2Zvcl9hZG1pbl9saXN0aW5nX3VkdCcsIC0xKTsKICAgIAogICAgaWYoIC0xICE9ICR1ZHQpIAogICAgewogICAgICAkdXRvcHMgPSBjbXNtcygpLT5HZXRVc2VyVGFnT3BlcmF0aW9ucygpOwogICAgICAKICAgICAgaWYoICR1dG9wcy0+VXNlclRhZ0V4aXN0cygkdWR0KSApCiAgICAgIHsKICAgICAgICAkcGFyYW1zID0gYXJyYXkoCiAgICAgICAgICAgICAgICAgICAgICAgICAgJ3JldHVybmlkJyA9PiAkcmV0dXJuaWQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgJ2lkJyA9PiAkaWQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgJ3ZhbHVlJyA9PiAkdmFsdWUsCiAgICAgICAgICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgcmV0dXJuICR1dG9wcy0+Q2FsbFVzZXJUYWcoJHVkdCwgJHBhcmFtcyk7CiAgICAgIH0KICAgIH0KICAgIAogICAgcmV0dXJuICR2YWx1ZTsKICB9CiAgCglwdWJsaWMgZnVuY3Rpb24gQ2FsbFVEVCgkdWR0KQoJewogICAgaWYoIC0xID09ICR1ZHQpIHJldHVybiBhcnJheSgpOwoKICAgICR1dG9wcyA9IGNtc21zKCktPkdldFVzZXJUYWdPcGVyYXRpb25zKCk7CiAgICAKICAgIGlmKCAkdXRvcHMtPlVzZXJUYWdFeGlzdHMoJHVkdCkgKQogICAgewogICAgICAkcGFyYW1zID0gYXJyYXkoKTsgICAgICAgICAgIAogICAgICByZXR1cm4gJHV0b3BzLT5DYWxsVXNlclRhZygkdWR0LCAkcGFyYW1zKTsKICAgIH0KICAgIAogICAgcmV0dXJuIGFycmF5KCk7Cgl9CiAgCiAgcHVibGljIGZ1bmN0aW9uIFZhbGlkYXRlKCYkZXJyb3JzKTogdm9pZAogIHsKICAgIHBhcmVudDo6VmFsaWRhdGUoJGVycm9ycyk7CiAgICAgICAKICAgICR1ZHQgPSAkdGhpcy0+R2V0T3B0aW9uVmFsdWUoJ3ZhbGlkYXRpb25fdWR0JywgLTEpOwogICAgCiAgICBpZiggLTEgIT0gJHVkdCkKICAgIHsKICAgICAgJHV0b3BzID0gY21zbXMoKS0+R2V0VXNlclRhZ09wZXJhdGlvbnMoKTsKICAgICAgCiAgICAgIGlmKCAkdXRvcHMtPlVzZXJUYWdFeGlzdHMoJHVkdCkgKQogICAgICB7CiAgICAgICAgJHZhbHVlID0gJHRoaXMtPkdldFZhbHVlKCk7CiAgICAgICAgCiAgICAgICAgJHBhcmFtcyA9IGFycmF5KAogICAgICAgICAgICAgICAgICAgICAgICAgICd2YWx1ZScgPT4gJHZhbHVlLAogICAgICAgICAgICAgICAgICAgICAgICAgICdlcnJvcnMnID0+ICRlcnJvcnMKICAgICAgICAgICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgJGVycm9ycyA9ICR1dG9wcy0+Q2FsbFVzZXJUYWcoJHVkdCwgJHBhcmFtcyk7CiAgICAgIH0KICAgIH0KICAgICAgIAogIH0gIAp9Cj8+]]></data>
	</file>
	<file>
	  <filename>/lib/fielddefs/CustomFromUDT/list.CustomFromUDT.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[eyoNCmlmIHVzaW5nIGEgVURUICB0byBoYW5kbGUgdGhlIFJlbmRlckZvckFkbWluTGlzdGluZyBvdXRwdXQgdGhlIHJldHVybmVkIHZhbHVlIHdpbGwgYmUgaW4geyR2YWx1ZX0NCm90aGVyd2lzZSB0aGUgdXN1YWwgeyRmaWVsZGRlZi0+R2V0VmFsdWUoKX0gaG9sZHMgdGhlIHJldHVybiB2YWx1ZQ0KKn0NCnskdHlwZSA9ICRmaWVsZGRlZi0+R2V0T3B0aW9uVmFsdWUoJ3R5cGUnLCAnRHJvcGRvd24nKX0NCntpZiAkdHlwZSA9PSAnRHJvcGRvd24nfQ0KICB7JHZhbHVlfGRlZmF1bHQ6JGZpZWxkZGVmLT5HZXRWYWx1ZSgpfQ0Ke2Vsc2V9DQogIHskdmFsdWUgPSAkdmFsdWV8ZGVmYXVsdDokZmllbGRkZWYtPkdldFZhbHVlKCdhcnJheScpfQ0KICB7aW1wbG9kZSgnLCAnLCAkdmFsdWUpfQ0Key9pZn0NCg==]]></data>
	</file>
	<file>
	  <filename>/lib/fielddefs/CustomFromUDT/output.CustomFromUDT.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[eyRmaWVsZGRlZi5uYW1lfToge2ltcGxvZGUoJywnLCAkZmllbGRkZWYudmFsdWUpfQ==]]></data>
	</file>
	<file>
	  <filename>/lib/fielddefs/Dropdown</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/lib/fielddefs/Dropdown/admin.Dropdown.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PGZpZWxkc2V0PgogIDxsZWdlbmQ+eyRmaWVsZGRlZi0+TW9kTGFuZygnb3B0aW9ucycpfTwvbGVnZW5kPgogIDxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CiAgICA8cCBjbGFzcz0icGFnZXRleHQiPnskZmllbGRkZWYtPk1vZExhbmcoJ29wdGlvbnMnKX06PC9wPgogICAgPHAgY2xhc3M9InBhZ2VpbnB1dCI+CiAgICAgIDx0ZXh0YXJlYSBuYW1lPSJ7JGFjdGlvbmlkfWN1c3RvbV9pbnB1dFtvcHRpb25zXSI+eyRmaWVsZGRlZi0+R2V0T3B0aW9uVmFsdWUoJ29wdGlvbnMnKX08L3RleHRhcmVhPgogICAgPC9wPgogICAgPHAgY2xhc3M9InBhZ2V0ZXh0Ij48ZGl2IGNsYXNzPSJpbmZvcm1hdGlvbiI+eyRmaWVsZGRlZi0+TW9kTGFuZygnZmllbGRkZWZfbXVsdGlvcHRpb25zX2hlbHAnKX08L2Rpdj48L3A+CiAgPC9kaXY+CjwvZmllbGRzZXQ+Cgo=]]></data>
	</file>
	<file>
	  <filename>/lib/fielddefs/Dropdown/help.Dropdown.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PGJ1dHRvbiBjbGFzcz0iYWNjb3JkaW9uIj48c3Ryb25nPnskZmllbGRkZWYtPkdldEZyaWVuZGx5VHlwZSgpfTwvc3Ryb25nPjwvYnV0dG9uPgoKPGRpdiBjbGFzcz0iYWNjcGFuZWwiPgoKCTxoND5XaGF0IGRvZXMgaXQgZG8/PC9oND4KCgk8cD5UaGlzIGZpZWxkIGRlZmluaXRpb24gY2FuIGJlIHVzZWQgdG8gYWRkIGEgY3VzdG9tIDxzdHJvbmc+RHJvcGRvd248L3N0cm9uZz4gZmllbGQgdG8gYSBMSVNFIGl0ZW0uPC9wPgoKCTxwPlRPRE88L3A+CgoKCTxoND5Ib3cgZG8gSSB1c2UgaXQ/PC9oND4KCgk8cD5UT0RPPC9wPgoKCTxwPlRoZSBzZXR0aW5ncyBmb3IgdGhpcyBmaWVsZCBhcmU6PC9wPgoKCTx1bD4KCQk8bGk+PGI+T3B0aW9uczwvYj48L2xpPgoJPC91bD4KCjwvZGl2Pg==]]></data>
	</file>
	<file>
	  <filename>/lib/fielddefs/Dropdown/index.html</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PCEtLSBEVU1NWSBIVE1MIEZJTEUgLS0+]]></data>
	</file>
	<file>
	  <filename>/lib/fielddefs/Dropdown/input.Dropdown.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KCTxwIGNsYXNzPSJwYWdldGV4dCI+eyRmaWVsZGRlZi0+R2V0TmFtZSgpfXtpZiAkZmllbGRkZWYtPklzUmVxdWlyZWQoKX0qey9pZn06PC9wPgoJPHAgY2xhc3M9InBhZ2VpbnB1dCI+CgkJe2lmICRmaWVsZGRlZi0+R2V0RGVzYygpfSh7JGZpZWxkZGVmLT5HZXREZXNjKCl9KTxiciAvPnsvaWZ9CgkJe2h0bWxfb3B0aW9ucyBuYW1lPSJgJGFjdGlvbmlkYGN1c3RvbWZpZWxkW2AkZmllbGRkZWYtPkdldElkKClgXSIgb3B0aW9ucz0kZmllbGRkZWYtPkdldE9wdGlvbnMoKSBzZWxlY3RlZD0kZmllbGRkZWYtPkdldFZhbHVlKCl9Cgk8L3A+CjwvZGl2Pg==]]></data>
	</file>
	<file>
	  <filename>/lib/fielddefs/Dropdown/lisefd.Dropdown.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHANCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQojIExJU0UgLSBMaXN0IEl0IFNwZWNpYWwgRWRpdGlvbg0KIyBWZXJzaW9uIDEuMg0KIyBBIGZvcmsgb2YgTGlzdEkyDQojIG1haW50YWluZWQgYnkgRmVybmFuZG8gTW9yZ2FkbyBBS0EgSm8gTW9yZw0KIyBzaW5jZSAyMDE1DQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIw0KIyBPcmlnaW5hbCBBdXRob3I6IEJlbiBNYWxlbiwgPGJlbkBjb25jZXB0ZmFjdG9yeS5jb20uYXU+DQojIENvLU1haW50YWluZXI6IFNpbW9uIFJhZGZvcmQsIDxzaW1vbkBjb25jZXB0ZmFjdG9yeS5jb20uYXU+DQojIFdlYjogd3d3LmNvbmNlcHRmYWN0b3J5LmNvbS5hdQ0KIw0KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCiMNCiMgTWFpbnRhaW5lciBzaW5jZSAyMDExIHVwIHRvIDIwMTQ6IEpvbmF0aGFuIFNjaG1pZCwgPGhpQGpvbmF0aGFuc2NobWlkLmRlPg0KIyBXZWI6IHd3dy5qb25hdGhhbnNjaG1pZC5kZQ0KIw0KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCiMNCiMgU29tZSB3YWNrb3Mgc3RhcnRlZCBkZXN0cm95aW5nIHN0dWZmIHNpbmNlIDIwMTIgYW5kIHN0b3BwZWQgYXQgMjAxNDoNCiMNCiMgVGFwaW8gTMO2eXR0eSwgPHRhcHNhQG9yYW5nZS1tZWRpYS5maT4NCiMgV2ViOiB3d3cub3JhbmdlLW1lZGlhLmZpDQojDQojIEdvcmFuIElsaWMsIDx1bmlxdTNlQGdtYWlsLmNvbT4NCiMgV2ViOiB3d3cuaWNoLW1hY2gtZGFzLmF0DQojDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIw0KIyBMSVNFIGlzIGEgQ01TIE1hZGUgU2ltcGxlIG1vZHVsZSB0aGF0IGVuYWJsZXMgdGhlIHdlYiBkZXZlbG9wZXIgdG8gY3JlYXRlDQojIG11bHRpcGxlIGxpc3RzIHRocm91Z2hvdXQgYSBzaXRlLiBJdCBjYW4gYmUgZHVwbGljYXRlZCBhbmQgZ2l2ZW4gZnJpZW5kbHkNCiMgbmFtZXMgZm9yIGVhc2llciBjbGllbnQgbWFpbnRlbmFuY2UuDQojDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIyBCRUdJTl9MSUNFTlNFDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIyBUaGlzIGZpbGUgaXMgcGFydCBvZiBMSVNFDQojIExJU0UgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5DQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5DQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yDQojIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uDQojDQojIExJU0UgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLA0KIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZg0KIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlDQojIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuDQojIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlDQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlDQojIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcgVVNBDQojIE9yIHJlYWQgaXQgb25saW5lOiBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwNCiMNCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQojIEVORF9MSUNFTlNFDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KY2xhc3MgbGlzZWZkX0Ryb3Bkb3duIGV4dGVuZHMgTElTRUZpZWxkZGVmQmFzZQ0Kew0KCXB1YmxpYyBmdW5jdGlvbiBfX2NvbnN0cnVjdCgmJGRiX2luZm8pDQoJew0KCQlwYXJlbnQ6Ol9fY29uc3RydWN0KCRkYl9pbmZvKTsNCgkJDQoJCSR0aGlzLT5TZXRGcmllbmRseVR5cGUoICR0aGlzLT5Nb2RMYW5nKCdmaWVsZGRlZl8nIC4gJHRoaXMtPkdldFR5cGUoKSApICk7DQoJfQ0KCQ0KCXB1YmxpYyBmdW5jdGlvbiBHZXRPcHRpb25zKCkNCgl7DQoJCSRvcHRpb25zID0gJHRoaXMtPkdldE9wdGlvblZhbHVlKCdvcHRpb25zJyk7DQoJCSRsaXN0ID0gZXhwbG9kZSgiXG4iLCAkb3B0aW9ucyk7DQoJCQ0KCQkkb3B0aW9ucyA9IGFycmF5KCk7DQoJCWZvcmVhY2goJGxpc3QgYXMgJG9wdGlvbikgew0KCQkNCgkJCSRvcHRpb24gPSBleHBsb2RlKCI9IiwgJG9wdGlvbiwgMik7DQoJCQlpZihjb3VudCgkb3B0aW9uKSA+IDEpIHsNCgkJCQkkb3B0aW9uc1t0cmltKCRvcHRpb25bMV0pXSA9IHRyaW0oJG9wdGlvblswXSk7DQoJCQl9IGVsc2Ugew0KCQkJCSRvcHRpb25zW3RyaW0oJG9wdGlvblswXSldID0gdHJpbSgkb3B0aW9uWzBdKTsNCgkJCX0NCgkJfQ0KDQoJCXJldHVybiAkb3B0aW9uczsNCgl9DQoJDQp9IC8vIGVuZCBvZiBjbGFzcw0KPz4=]]></data>
	</file>
	<file>
	  <filename>/lib/fielddefs/Dropdown/list.Dropdown.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[eyRmaWVsZGRlZi0+R2V0VmFsdWUoKX0=]]></data>
	</file>
	<file>
	  <filename>/lib/fielddefs/Dropdown/output.Dropdown.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[eyRmaWVsZGRlZi5uYW1lfTogeyRmaWVsZGRlZi52YWx1ZX0=]]></data>
	</file>
	<file>
	  <filename>/lib/fielddefs/FEUDropdown</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/lib/fielddefs/FEUDropdown/admin.FEUDropdown.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PGZpZWxkc2V0PgogIDxsZWdlbmQ+eyRmaWVsZGRlZi0+TW9kTGFuZygnb3B0aW9ucycpfTwvbGVnZW5kPgogIDxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CgkgIDxwIGNsYXNzPSJwYWdldGV4dCI+eyRmaWVsZGRlZi0+TW9kTGFuZygnZmllbGRkZWZfZmV1X29wdGlvbnMnKX06PC9wPgoJICA8cCBjbGFzcz0icGFnZWlucHV0Ij4KCQkgIHtodG1sX29wdGlvbnMgbmFtZT0iYCRhY3Rpb25pZGBjdXN0b21faW5wdXRbZmV1X29wdGlvbnNdIiBvcHRpb25zPSRmaWVsZGRlZi0+R2V0RkVVR3JvdXBzKCkgc2VsZWN0ZWQ9JGZpZWxkZGVmLT5HZXRPcHRpb25WYWx1ZSgnZmV1X29wdGlvbnMnKX0KCSAgPC9wPgogICAgPHAgY2xhc3M9InBhZ2V0ZXh0Ij48ZGl2IGNsYXNzPSJpbmZvcm1hdGlvbiI+eyRmaWVsZGRlZi0+TW9kTGFuZygnZmllbGRkZWZfZmV1X2Ryb3Bkb3duX2hlbHAnKX08L2Rpdj48L3A+CiAgPC9kaXY+CjwvZmllbGRzZXQ+]]></data>
	</file>
	<file>
	  <filename>/lib/fielddefs/FEUDropdown/help.FEUDropdown.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PGJ1dHRvbiBjbGFzcz0iYWNjb3JkaW9uIj48c3Ryb25nPnskZmllbGRkZWYtPkdldEZyaWVuZGx5VHlwZSgpfTwvc3Ryb25nPjwvYnV0dG9uPgoKPGRpdiBjbGFzcz0iYWNjcGFuZWwiPgoKCTxwIGNsYXNzPSJ3YXJuaW5nIj48Yj5Ob3RlOjwvYj4gVGhlIHVzZSBvZiB0aGlzIGZpZWxkIGRlZmluaXRpb24gZGVwZW5kcyBvbiB0aGUgcHJlc2VuY2Ugb2YgdGhlIEZyb250RW5kVXNlcnMgbW9kdWxlLjwvcD4KCgk8aDQ+V2hhdCBkb2VzIGl0IGRvPzwvaDQ+CgoJPHA+VGhpcyBmaWVsZCBkZWZpbml0aW9uIGNhbiBiZSB1c2VkIHRvIGFkZCBhIDxzdHJvbmc+RnJvbnRFbmRVc2VyIERyb3Bkb3duPC9zdHJvbmc+IGZpZWxkIHRvIGEgTElTRSBpdGVtLjwvcD4KCgk8cD5UT0RPPC9wPgoKCgk8aDQ+SG93IGRvIEkgdXNlIGl0PzwvaDQ+CgoJPHA+VE9ETzwvcD4KCgk8cD5UaGUgc2V0dGluZ3MgZm9yIHRoaXMgZmllbGQgYXJlOjwvcD4KCgk8dWw+CgkJPGxpPjxiPkZFVSBHcm91cHM8L2I+PC9saT4KCTwvdWw+Cgo8L2Rpdj4=]]></data>
	</file>
	<file>
	  <filename>/lib/fielddefs/FEUDropdown/index.html</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PCEtLSBEVU1NWSBIVE1MIEZJTEUgLS0+]]></data>
	</file>
	<file>
	  <filename>/lib/fielddefs/FEUDropdown/input.FEUDropdown.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KCTxwIGNsYXNzPSJwYWdldGV4dCI+eyRmaWVsZGRlZi0+R2V0TmFtZSgpfXtpZiAkZmllbGRkZWYtPklzUmVxdWlyZWQoKX0qey9pZn06PC9wPgoJPHAgY2xhc3M9InBhZ2VpbnB1dCI+CgkJe2lmICRmaWVsZGRlZi0+R2V0RGVzYygpfSh7JGZpZWxkZGVmLT5HZXREZXNjKCl9KTxiciAvPnsvaWZ9CgkJe2h0bWxfb3B0aW9ucyBuYW1lPSJgJGFjdGlvbmlkYGN1c3RvbWZpZWxkW2AkZmllbGRkZWYtPkdldElkKClgXSIgb3B0aW9ucz0kZmllbGRkZWYtPkdldEZFVVVzZXJMaXN0KCkgc2VsZWN0ZWQ9JGZpZWxkZGVmLT5HZXRWYWx1ZSgpfQoJPC9wPgo8L2Rpdj4K]]></data>
	</file>
	<file>
	  <filename>/lib/fielddefs/FEUDropdown/lisefd.FEUDropdown.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBMSVNFIC0gTGlzdCBJdCBTcGVjaWFsIEVkaXRpb24KIyBWZXJzaW9uIDEuMgojIEEgZm9yayBvZiBMaXN0STIKIyBtYWludGFpbmVkIGJ5IEZlcm5hbmRvIE1vcmdhZG8gQUtBIEpvIE1vcmcKIyBzaW5jZSAyMDE1CiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBPcmlnaW5hbCBBdXRob3I6IEJlbiBNYWxlbiwgPGJlbkBjb25jZXB0ZmFjdG9yeS5jb20uYXU+CiMgQ28tTWFpbnRhaW5lcjogU2ltb24gUmFkZm9yZCwgPHNpbW9uQGNvbmNlcHRmYWN0b3J5LmNvbS5hdT4KIyBXZWI6IHd3dy5jb25jZXB0ZmFjdG9yeS5jb20uYXUKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojCiMgTWFpbnRhaW5lciBzaW5jZSAyMDExIHVwIHRvIDIwMTQ6IEpvbmF0aGFuIFNjaG1pZCwgPGhpQGpvbmF0aGFuc2NobWlkLmRlPgojIFdlYjogd3d3LmpvbmF0aGFuc2NobWlkLmRlCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIwojIFNvbWUgd2Fja29zIHN0YXJ0ZWQgZGVzdHJveWluZyBzdHVmZiBzaW5jZSAyMDEyIGFuZCBzdG9wcGVkIGF0IDIwMTQ6CiMKIyBUYXBpbyBMw7Z5dHR5LCA8dGFwc2FAb3JhbmdlLW1lZGlhLmZpPgojIFdlYjogd3d3Lm9yYW5nZS1tZWRpYS5maQojCiMgR29yYW4gSWxpYywgPHVuaXF1M2VAZ21haWwuY29tPgojIFdlYjogd3d3LmljaC1tYWNoLWRhcy5hdAojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBMSVNFIGlzIGEgQ01TIE1hZGUgU2ltcGxlIG1vZHVsZSB0aGF0IGVuYWJsZXMgdGhlIHdlYiBkZXZlbG9wZXIgdG8gY3JlYXRlCiMgbXVsdGlwbGUgbGlzdHMgdGhyb3VnaG91dCBhIHNpdGUuIEl0IGNhbiBiZSBkdXBsaWNhdGVkIGFuZCBnaXZlbiBmcmllbmRseQojIG5hbWVzIGZvciBlYXNpZXIgY2xpZW50IG1haW50ZW5hbmNlLgojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgQkVHSU5fTElDRU5TRQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIExJU0UKIyBMSVNFIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgTElTRSBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBFTkRfTElDRU5TRQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKY2xhc3MgbGlzZWZkX0ZFVURyb3Bkb3duIGV4dGVuZHMgTElTRUZpZWxkZGVmQmFzZQp7CiAgICBwdWJsaWMgZnVuY3Rpb24gX19jb25zdHJ1Y3QoJiRkYl9pbmZvKSAKICAgIHsgICAKICAgICAgICBwYXJlbnQ6Ol9fY29uc3RydWN0KCRkYl9pbmZvKTsKICAgICAgICAKICAgICAgICAkdGhpcy0+U2V0RnJpZW5kbHlUeXBlKCR0aGlzLT5Nb2RMYW5nKCdmaWVsZGRlZl8nLiR0aGlzLT5HZXRUeXBlKCkpKTsKICAgIH0KICAgIAogICAgc3RhdGljIHB1YmxpYyBmdW5jdGlvbiBHZXRNb2R1bGVEZXBzKCkgewogICAgICAgIAogICAgICAgIHJldHVybiBhcnJheSgKICAgICAgICAgICAgJ0Zyb250RW5kVXNlcnMnID0+ICcxLjE4LjEnLAogICAgICAgICAgICAvLydDTVNNYWlsZXInID0+ICcxLjczLjknLAogICAgICAgICAgICAnQ0dFeHRlbnNpb25zJyA9PiAnMS4yOS4xJyAgICAvLz8/CiAgICAgICAgKTsKICAgIH0KICAgIAogICAgLy8gZ2V0IGF2YWlsYWJsZSBncm91cHMgZnJvbSBGRVUgbW9kdWxlIAogICAgcHVibGljIGZ1bmN0aW9uIEdldEZFVUdyb3VwcygpIHsKICAgICAgICAKICAgICAgICAkRkVVID0gY21zbXMoKS0+R2V0TW9kdWxlSW5zdGFuY2UoJ0Zyb250RW5kVXNlcnMnKTsKICAgICAgICBpZihpc19vYmplY3QoJEZFVSkpIHsKICAgICAgICAgICAgJGdyb3VwcyA9ICRGRVUtPkdldEdyb3VwTGlzdEZ1bGwoKTsKICAgICAgICAgICAgCiAgICAgICAgICAgIGlmKCRncm91cHMpIHsKICAgICAgICAgICAgICAgICRvcHRpb25zID0gYXJyYXkoKTsKICAgICAgICAgICAgICAgIGZvcmVhY2goJGdyb3VwcyBhcyAkb3B0aW9uKSB7CiAgICAgICAgICAgICAgICAgICAgJG9wdGlvbnNbJG9wdGlvblsnaWQnXV0gPSAkb3B0aW9uWydncm91cG5hbWUnXTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgICAgICAKICAgICAgICAgICAgcmV0dXJuICRvcHRpb25zOwogICAgICAgIH0KICAgIH0KICAgIAogICAgLy8gZ2V0IGxpc3Qgb2YgdXNlcnMgZnJvbSBGRVUgbW9kdWxlIGJhc2VkIG9uIHNlbGVjdGVkIGdyb3VwCiAgICBwdWJsaWMgZnVuY3Rpb24gR2V0RkVVVXNlckxpc3QoKSB7CiAgICAgICAgCiAgICAgICAgJEZFVSA9IGNtc21zKCktPkdldE1vZHVsZUluc3RhbmNlKCdGcm9udEVuZFVzZXJzJyk7CiAgICAgICAgaWYoaXNfb2JqZWN0KCRGRVUpKSB7CiAgICAgICAgICAgIAogICAgICAgICAgICAvLyBHZXRVc2Vyc0luR3JvdXAoKSBpcyBkZXByZWNhdGVkIGJ1dCBHZXRGdWxsVXNlcnNJbkdyb3VwKCkgc2VlbXMgdG8gaGF2ZSBhIGJ1ZywgCiAgICAgICAgICAgIC8vIGNoYW5nZSB0aGlzIGFmdGVyIEZFVSBCUiAjODc1MyBodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnL2J1Zy92aWV3Lzg3NTMgaXMgY29uZmlybWVkIGFuZCBmaXhlZCAKICAgICAgICAgICAgCiAgICAgICAgICAgICR1c2VycyA9ICRGRVUtPkdldFVzZXJzSW5Hcm91cCgkdGhpcy0+R2V0T3B0aW9uVmFsdWUoJ2ZldV9vcHRpb25zJykpOwogICAgICAgICAgICAKICAgICAgICAgICAgaWYoJHVzZXJzKSB7CiAgICAgICAgICAgICAgICAkb3B0aW9ucyA9IGFycmF5X21lcmdlKGFycmF5KCcnID0+ICR0aGlzLT5Nb2RMYW5nKCdzZWxlY3Rfb25lJykpKTsKICAgICAgICAgICAgICAgIGZvcmVhY2goJHVzZXJzIGFzICRvcHRpb24pIHsKICAgICAgICAgICAgICAgICAgICAkb3B0aW9uc1skb3B0aW9uWydpZCddXSA9ICRvcHRpb25bJ3VzZXJuYW1lJ107CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICAgICAgCiAgICAgICAgICAgIHJldHVybiAkb3B0aW9uczsKICAgICAgICB9CiAgICB9CiAgICAKICAgIC8vIHJldHVybiB1c2VybmFtZSBmcm9tIGlkIGluIGl0ZW0gc3VtbWFyeQogICAgcHVibGljIGZ1bmN0aW9uIFJlbmRlckZvckFkbWluTGlzdGluZygkaWQsICRyZXR1cm5pZCkgewogICAgICAgIAogICAgICAgIGlmKCEkdGhpcy0+SGFzVmFsdWUoKSAmJiAhaXNfbnVtZXJpYygkdGhpcy0+R2V0VmFsdWUoKSkpCiAgICAgICAgICAgIHJldHVybjsKICAgICAgICAKICAgICAgICAkRkVVID0gY21zbXMoKS0+R2V0TW9kdWxlSW5zdGFuY2UoJ0Zyb250RW5kVXNlcnMnKTsKICAgICAgICBpZihpc19vYmplY3QoJEZFVSkpIHsKICAgICAgICAgICAgcmV0dXJuICRGRVUtPkdldFVzZXJOYW1lKCR0aGlzLT5HZXRWYWx1ZSgpKTsKICAgICAgICB9CiAgICB9Cn0vLyBlbmQgb2YgY2xhc3MKPz4=]]></data>
	</file>
	<file>
	  <filename>/lib/fielddefs/FEUDropdown/output.FEUDropdown.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[eyRmaWVsZGRlZi5uYW1lfTogeyRmaWVsZGRlZi52YWx1ZX0=]]></data>
	</file>
	<file>
	  <filename>/lib/fielddefs/FEUMultiSelect</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/lib/fielddefs/FEUMultiSelect/admin.FEUMultiSelect.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[eyRvcHRzID0gJGZpZWxkZGVmLT5HZXRPcHRpb25zKCl9IAp7JHNlbF9ncm91cHMgPSBleHBsb2RlKCcsJywgJGZpZWxkZGVmLT5HZXRPcHRpb25WYWx1ZSgnZmV1X29wdGlvbnMnKSl9CnskZ3JvdXBzX29wdHMgPSAkZmllbGRkZWYtPkdldEZFVUdyb3VwcygpfQp7JGRlZnMgPSAkZmllbGRkZWYtPkdldEZldVByb3BlcnRpZXMoKX0KeyRzZWxfZGVmID0gJGZpZWxkZGVmLT5HZXRPcHRpb25WYWx1ZSgnZmV1X2ZpZWxkJyl9Cnskc2VsX2RlZjIgPSAkZmllbGRkZWYtPkdldE9wdGlvblZhbHVlKCdmZXVfZmllbGQyJyl9CiAKPGZpZWxkc2V0PgogIDxsZWdlbmQ+eyRmaWVsZGRlZi0+TW9kTGFuZygnb3B0aW9ucycpfTwvbGVnZW5kPgogIDxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CiAgICA8cCBjbGFzcz0icGFnZXRleHQiPnskZmllbGRkZWYtPk1vZExhbmcoJ2ZpZWxkZGVmX2ZldV9vcHRpb25zJyl9OjwvcD4KICAgIDxwIGNsYXNzPSJwYWdlaW5wdXQiPgogICAgICAgIDxzZWxlY3QgbmFtZT0ieyRhY3Rpb25pZH1jdXN0b21faW5wdXRbZmV1X29wdGlvbnNdW119IiBzaXplPSJ7JGdyb3Vwc19vcHRzfGNvdW50fSIgbXVsdGlwbGU+ICAgICAgICAKICAgICAgICAgIHtodG1sX29wdGlvbnMgb3B0aW9ucz0kZ3JvdXBzX29wdHMgc2VsZWN0ZWQ9JHNlbF9ncm91cHN9CiAgICAgICAgPC9zZWxlY3Q+ICAKICAgIDwvcD4KICAgIDxwIGNsYXNzPSJwYWdldGV4dCI+PGRpdiBjbGFzcz0iaW5mb3JtYXRpb24iPnskZmllbGRkZWYtPk1vZExhbmcoJ2ZpZWxkZGVmX2ZldV9tdWx0aXNlbGVjdF9oZWxwJyl9PC9kaXY+PC9wPgogIDwvZGl2PgogIDxocj4gCiAgPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KICAgIDxwIGNsYXNzPSJwYWdldGV4dCI+eyRmaWVsZGRlZi0+TW9kTGFuZygnZmllbGRkZWZfdXNlX3VpZCcpfTo8L3A+CiAgICA8cCBjbGFzcz0icGFnZWlucHV0Ij4KICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9InskYWN0aW9uaWR9Y3VzdG9tX2lucHV0W3VzZV91aWRdIiB2YWx1ZT0iMCIgLz4KICAgIDxpbnB1dCB0eXBlPSJjaGVja2JveCIgbmFtZT0ieyRhY3Rpb25pZH1jdXN0b21faW5wdXRbdXNlX3VpZF0iIHZhbHVlPSIxIntpZiAkZmllbGRkZWYtPkdldE9wdGlvblZhbHVlKCd1c2VfdWlkJyl9Y2hlY2tlZD0iY2hlY2tlZCJ7L2lmfSAvPgogIDwvcD4KICA8cCBjbGFzcz0icGFnZXRleHQiPjxkaXYgY2xhc3M9ImluZm9ybWF0aW9uIj57JGZpZWxkZGVmLT5Nb2RMYW5nKCdmaWVsZGRlZl91c2VfdWlkX2hlbHAnKX08L2Rpdj48L3A+CiAgPC9kaXY+CiAgPGhyPgogIDxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CiAgICA8cCBjbGFzcz0icGFnZXRleHQiPnskZmllbGRkZWYtPk1vZExhbmcoJ2ZpZWxkZGVmX3VzZV91c2VybmFtZScpfTo8L3A+CiAgICA8cCBjbGFzcz0icGFnZWlucHV0Ij4KICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9InskYWN0aW9uaWR9Y3VzdG9tX2lucHV0W3VzZV91c2VybmFtZV0iIHZhbHVlPSIwIiAvPgogICAgPGlucHV0IHR5cGU9ImNoZWNrYm94IiBuYW1lPSJ7JGFjdGlvbmlkfWN1c3RvbV9pbnB1dFt1c2VfdXNlcm5hbWVdIiB2YWx1ZT0iMSJ7aWYgJGZpZWxkZGVmLT5HZXRPcHRpb25WYWx1ZSgndXNlX3VzZXJuYW1lJyl9Y2hlY2tlZD0iY2hlY2tlZCJ7L2lmfSAvPgogIDwvcD4KICA8cCBjbGFzcz0icGFnZXRleHQiPjxkaXYgY2xhc3M9ImluZm9ybWF0aW9uIj57JGZpZWxkZGVmLT5Nb2RMYW5nKCdmaWVsZGRlZl91c2VfdXNlcm5hbWVfaGVscCcpfTwvZGl2PjwvcD4KICA8L2Rpdj4KICA8aHI+IAogIDxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CiAgICA8cCBjbGFzcz0icGFnZXRleHQiPnskZmllbGRkZWYtPk1vZExhbmcoJ2ZpZWxkZGVmX2ZldV9maWVsZHMnKX06PC9wPgogICAgPHAgY2xhc3M9InBhZ2VpbnB1dCI+CiAgICAgIHtodG1sX29wdGlvbnMgbmFtZT0ieyRhY3Rpb25pZH1jdXN0b21faW5wdXRbZmV1X2ZpZWxkXX0iIG9wdGlvbnM9JGRlZnMgc2VsZWN0ZWQ9JHNlbF9kZWZ9CiAgICA8L3A+CiAgICA8cCBjbGFzcz0icGFnZXRleHQiPjxkaXYgY2xhc3M9ImluZm9ybWF0aW9uIj57JGZpZWxkZGVmLT5Nb2RMYW5nKCdmaWVsZGRlZl9mZXVfZmllbGRzX2hlbHAnKX08L2Rpdj48L3A+CiAgPC9kaXY+CiAgPGhyPiAKICA8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgogICAgPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JGZpZWxkZGVmLT5Nb2RMYW5nKCdmaWVsZGRlZl9mZXVfZmllbGRzMicpfTo8L3A+CiAgICA8cCBjbGFzcz0icGFnZWlucHV0Ij4KICAgICAge2h0bWxfb3B0aW9ucyBuYW1lPSJ7JGFjdGlvbmlkfWN1c3RvbV9pbnB1dFtmZXVfZmllbGQyXX0iIG9wdGlvbnM9JGRlZnMgc2VsZWN0ZWQ9JHNlbF9kZWYyfQogICAgPC9wPgogICAgPHAgY2xhc3M9InBhZ2V0ZXh0Ij48ZGl2IGNsYXNzPSJpbmZvcm1hdGlvbiI+eyRmaWVsZGRlZi0+TW9kTGFuZygnZmllbGRkZWZfZmV1X2ZpZWxkc19oZWxwJyl9PC9kaXY+PC9wPgogIDwvZGl2PgogIDxocj4gCiAgPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KCSAgPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JGZpZWxkZGVmLT5Nb2RMYW5nKCdmaWVsZGRlZl9zZXBhcmF0b3JfY2hyJyl9OjwvcD4KCSAgPHAgY2xhc3M9InBhZ2VpbnB1dCI+CiAgICAgIDxpbnB1dCB0eXBlPSJ0ZXh0IiBuYW1lPSJ7JGFjdGlvbmlkfWN1c3RvbV9pbnB1dFtzZXBhcmF0b3JdIiB2YWx1ZT0ieyRmaWVsZGRlZi0+R2V0T3B0aW9uVmFsdWUoJ3NlcGFyYXRvcicsICcgJyl9IiAvPgoJICA8L3A+CiAgICA8cCBjbGFzcz0icGFnZXRleHQiPjxkaXYgY2xhc3M9ImluZm9ybWF0aW9uIj57JGZpZWxkZGVmLT5Nb2RMYW5nKCdmaWVsZGRlZl9zZXBhcmF0b3JfY2hyX2hlbHAnKX08L2Rpdj48L3A+CiAgPC9kaXY+CiAgPGhyPgogIDxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CiAgICAgIDxwIGNsYXNzPSJwYWdldGV4dCI+eyRmaWVsZGRlZi0+TW9kTGFuZygnZmllbGRkZWZfdHlwZScpfTo8L3A+CiAgICAgIDxwIGNsYXNzPSJwYWdlaW5wdXQiPgogICAgICAgIDxzZWxlY3QgbmFtZT0ieyRhY3Rpb25pZH1jdXN0b21faW5wdXRbdHlwZV0iIHN0eWxlPSJtYXgtd2lkdGg6IDk4JTsiPgogICAgICAgICAge2h0bWxfb3B0aW9ucyBvcHRpb25zPSRvcHRzLnR5cGVzIHNlbGVjdGVkPSRmaWVsZGRlZi0+R2V0T3B0aW9uVmFsdWUoJ3R5cGUnLCAnTXVsdGlTZWxlY3QnKX0KICAgICAgICA8L3NlbGVjdD4KICAgICAgPC9wPgogICAgICA8cCBjbGFzcz0icGFnZXRleHQiPjxkaXYgY2xhc3M9ImluZm9ybWF0aW9uIj57JGZpZWxkZGVmLT5Nb2RMYW5nKCdmaWVsZGRlZl90eXBlX2hlbHAnKX08L2Rpdj48L3A+CiAgPC9kaXY+IAogIAo8L2ZpZWxkc2V0Pg==]]></data>
	</file>
	<file>
	  <filename>/lib/fielddefs/FEUMultiSelect/help.FEUMultiSelect.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PGJ1dHRvbiBjbGFzcz0iYWNjb3JkaW9uIj48c3Ryb25nPnskZmllbGRkZWYtPkdldEZyaWVuZGx5VHlwZSgpfTwvc3Ryb25nPjwvYnV0dG9uPgoKPGRpdiBjbGFzcz0iYWNjcGFuZWwiPgoKCTxwIGNsYXNzPSJ3YXJuaW5nIj48Yj5Ob3RlOjwvYj4gVGhlIHVzZSBvZiB0aGlzIGZpZWxkIGRlZmluaXRpb24gZGVwZW5kcyBvbiB0aGUgcHJlc2VuY2Ugb2YgdGhlIEZyb250RW5kVXNlcnMgbW9kdWxlLjwvcD4KCgk8aDQ+V2hhdCBkb2VzIGl0IGRvPzwvaDQ+CgoJPHA+VGhpcyBmaWVsZCBkZWZpbml0aW9uIGNhbiBiZSB1c2VkIHRvIGFkZCBhIDxzdHJvbmc+RnJvbnRFbmRVc2VyIE11bHRpIFNlbGVjdDwvc3Ryb25nPiBmaWVsZCB0byBhIExJU0UgaXRlbS48L3A+CgoJPHA+VE9ETzwvcD4KCgoJPGg0PkhvdyBkbyBJIHVzZSBpdD88L2g0PgoKCTxwPlRPRE88L3A+CgoJPHA+VGhlIHNldHRpbmdzIGZvciB0aGlzIGZpZWxkIGFyZTo8L3A+CgoJPHVsPgoJCTxsaT48Yj5GRVUgR3JvdXBzPC9iPjwvbGk+CgkJPGxpPjxiPlByZXBlbmQgVXNlciBJRDwvYj48L2xpPgoJCTxsaT48Yj5Vc2UgVXNlcm5hbWUgRmllbGQ8L2I+PC9saT4KCQk8bGk+PGI+U2VsZWN0IDFzdCBGRVUgRmllbGQ8L2I+CiAJCQk8dWw+CiAJCQkJPGxpPk5vbmU8L2xpPgogCQkJCTxsaT5Vc2VybmFtZTwvbGk+CgkJCTwvdWw+CgkJPC9saT4KCQk8bGk+PGI+U2VsZWN0IDJuZCBGRVUgRmllbGQ8L2I+CiAJCQk8dWw+CiAJCQkJPGxpPk5vbmU8L2xpPgogCQkJCTxsaT5Vc2VybmFtZTwvbGk+CgkJCTwvdWw+CgkJPC9saT4KCQk8bGk+PGI+U2VwYXJhdG9yIENoYXJhY3RlcjwvYj48L2xpPgoJCTxsaT48Yj5UeXBlPC9iPgogCQkJPHVsPgogCQkJCTxsaT5NdWx0aSBTZWxlY3Q8L2xpPgogCQkJCTxsaT5DaGVja2JveCBHcm91cDwvbGk+CiAJCQkJPGxpPmpRdWVyeSBNdWx0aVNlbGVjdDwvbGk+CgkJCTwvdWw+CgkJPC9saT4KCTwvdWw+Cgo8L2Rpdj4=]]></data>
	</file>
	<file>
	  <filename>/lib/fielddefs/FEUMultiSelect/images</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/lib/fielddefs/FEUMultiSelect/images/index.html</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PCEtLSBEVU1NWSBIVE1MIEZJTEUgLS0+]]></data>
	</file>
	<file>
	  <filename>/lib/fielddefs/FEUMultiSelect/images/switch.png</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[iVBORw0KGgoAAAANSUhEUgAAABUAAAAVCAYAAACpF6WWAAAB40lEQVR4AWIgG4wCAKvkAPJXFAXwGRnLrqVlj5kva7bDZ+Nv27ZtG7kpY3zZC7Pe2T13Nq/5OxQKhasqlcrzX6FyudyRy+VArVZn/xtUKpU6isUi5PN50Ol03d/5sz0Wi73JZDLch55Op7lUKsUlk0kukUjgDAgtFAqAGhuNxuu/gu7ED41GA+r1Ou21Wg2q1SpUKhUolUpAhEA8HodwOAzBYBACgQBIJJLBN6S1tTWGBODiV1AKQ83wo9PpBIvFAlarFex2O9273W5wOBxvrl69uvgFkM/nnyIgzmAwpMh2q0KhKBJfdbCLRKK8QCBIkzdpnLETn95CmMfjQfir8+fPH/8aOIkOR40o9DfK9PS0yOfzocbPjhw5cuiLS6KFEB2NfkKTiTmPlUolS3KQ1Wg0rFarZYm2LBHGkmDgfActmZ+fl5hMpof79u3b/QVQLBZbSGRpWmSzWXgvGWw2G/oIXC4XNQ873qFPcUafMwyzh5Rd38u1McIQjJDvBIACvV4v+P1+GmWcEfoz12xaX19PIshsNlOgXq9/u7fA3HILGAS3gEEAxsBccwsYDLeAwQCir4LSMaEwZ0xMTKwAhtdfkKHAIJlOtWwXERERBYyE32BDqQn8/f3tcnNzg8k2YBQAAOLgc5CbVSwBAAAAAElFTkSuQmCC]]></data>
	</file>
	<file>
	  <filename>/lib/fielddefs/FEUMultiSelect/index.html</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PCEtLSBEVU1NWSBIVE1MIEZJTEUgLS0+]]></data>
	</file>
	<file>
	  <filename>/lib/fielddefs/FEUMultiSelect/input.FEUMultiSelect.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[eyR0eXBlID0gJGZpZWxkZGVmLT5HZXRPcHRpb25WYWx1ZSgndHlwZScpfQp7JG9wdHMgPSAkZmllbGRkZWYtPkdldEZFVVVzZXJMaXN0KCl9Cnskc2VsID0gJGZpZWxkZGVmLT5HZXRWYWx1ZSgnYXJyYXknKX0KPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KCTxwIGNsYXNzPSJwYWdldGV4dCI+eyRmaWVsZGRlZi0+R2V0TmFtZSgpfXtpZiAkZmllbGRkZWYtPklzUmVxdWlyZWQoKX0qey9pZn06PC9wPgoJPHAgY2xhc3M9InBhZ2VpbnB1dCI+CgkJe2lmICRmaWVsZGRlZi0+R2V0RGVzYygpfSh7JGZpZWxkZGVmLT5HZXREZXNjKCl9KTxiciAvPnsvaWZ9CiAgICB7aWYgJHR5cGUgPT0gJ011bHRpU2VsZWN0J30KICAgICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJ7JGFjdGlvbmlkfWN1c3RvbWZpZWxkW3skZmllbGRkZWYtPkdldElkKCl9XSIgdmFsdWU9IiIgLz4KICAgICAgICA8c2VsZWN0IG5hbWU9InskYWN0aW9uaWR9Y3VzdG9tZmllbGRbeyRmaWVsZGRlZi0+R2V0SWQoKX1dW119IiBzaXplPSJ7JG9wdHN8Y291bnR9IiBtdWx0aXBsZT4gICAgICAgIAogICAgICAgICAge2h0bWxfb3B0aW9ucyBvcHRpb25zPSRvcHRzIHNlbGVjdGVkPSRzZWx9CiAgICAgICAgPC9zZWxlY3Q+ICAKICAgIHsvaWZ9ICAgIAogICAge2lmICR0eXBlID09ICdSYWRpb0dyb3VwJ30KICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0ieyRhY3Rpb25pZH1jdXN0b21maWVsZFt7JGZpZWxkZGVmLT5HZXRJZCgpfV0iIHZhbHVlPSIiIC8+CiAgICAgIHtodG1sX3JhZGlvcyBuYW1lPSJ7JGFjdGlvbmlkfWN1c3RvbWZpZWxkW3skZmllbGRkZWYtPkdldElkKCl9XSIgb3B0aW9ucz0kb3B0cyBzZWxlY3RlZD0kc2VsIHNlcGFyYXRvcj0nPGJyIC8+J30KICAgIHsvaWZ9ICAgICAgCiAgICB7aWYgJHR5cGUgPT0gJ0NoZWNrYm94R3JvdXAnfQogICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJ7JGFjdGlvbmlkfWN1c3RvbWZpZWxkW3skZmllbGRkZWYtPkdldElkKCl9XSIgdmFsdWU9IiIgLz4KICAgICAge2h0bWxfY2hlY2tib3hlcyBuYW1lPSJ7JGFjdGlvbmlkfWN1c3RvbWZpZWxkW3skZmllbGRkZWYtPkdldElkKCl9XSIgb3B0aW9ucz0kb3B0cyBzZWxlY3RlZD0kc2VsIHNlcGFyYXRvcj0nPGJyIC8+J30KICAgIHsvaWZ9ICAgIAogICAge2lmICR0eXBlID09ICdKUXVlcnlNdWx0aVNlbGVjdCd9CiAgICAgIDxkaXYgY2xhc3M9Im1zLWNvbnRhaW5lciI+CiAgICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0ieyRhY3Rpb25pZH1jdXN0b21maWVsZFt7JGZpZWxkZGVmLT5HZXRJZCgpfV0iIHZhbHVlPSIiIC8+CiAgICAgICAgPHNlbGVjdCBpZD0ieyRhY3Rpb25pZH1jdXN0b21maWVsZHskZmllbGRkZWYtPkdldElkKCl9IiBuYW1lPSJ7JGFjdGlvbmlkfWN1c3RvbWZpZWxkW3skZmllbGRkZWYtPkdldElkKCl9XVtdfSIgc2l6ZT0ieyRvcHRzfGNvdW50fSIgbXVsdGlwbGU+ICAgICAgICAKICAgICAgICAgIHtodG1sX29wdGlvbnMgb3B0aW9ucz0kb3B0cyBzZWxlY3RlZD0kc2VsfQogICAgICAgIDwvc2VsZWN0PgogICAgICA8L2Rpdj4gCiAgICAgIDxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KICAgICAgICAgICAgJCgnI3skYWN0aW9uaWR9Y3VzdG9tZmllbGR7JGZpZWxkZGVmLT5HZXRJZCgpfScpLm11bHRpU2VsZWN0KCk7CiAgICAgIDwvc2NyaXB0PgogICAgey9pZn0KCTwvcD4KPC9kaXY+]]></data>
	</file>
	<file>
	  <filename>/lib/fielddefs/FEUMultiSelect/jquery.multi-select.css</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[Lm1zLWNvbnRhaW5lcnsNCiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQgdXJsKCcuLi9GRVVNdWx0aVNlbGVjdC9pbWFnZXMvc3dpdGNoLnBuZycpIG5vLXJlcGVhdCA1MCUgNTAlOw0KICB3aWR0aDogNDcwcHg7DQp9DQoNCi5tcy1jb250YWluZXI6YWZ0ZXJ7DQogIGNvbnRlbnQ6ICIuIjsNCiAgZGlzcGxheTogYmxvY2s7DQogIGhlaWdodDogMDsNCiAgbGluZS1oZWlnaHQ6IDA7DQogIGZvbnQtc2l6ZTogMDsNCiAgY2xlYXI6IGJvdGg7DQogIG1pbi1oZWlnaHQ6IDA7DQogIHZpc2liaWxpdHk6IGhpZGRlbjsNCn0NCg0KLm1zLWNvbnRhaW5lciAubXMtc2VsZWN0YWJsZSwgLm1zLWNvbnRhaW5lciAubXMtc2VsZWN0aW9uew0KICBiYWNrZ3JvdW5kOiAjZmZmOw0KICBjb2xvcjogIzU1NTU1NTsNCiAgZmxvYXQ6IGxlZnQ7DQogIHdpZHRoOiA0NSU7DQp9DQoubXMtY29udGFpbmVyIC5tcy1zZWxlY3Rpb257DQogIGZsb2F0OiByaWdodDsNCn0NCg0KLm1zLWNvbnRhaW5lciAubXMtbGlzdHsNCiAgLXdlYmtpdC1ib3gtc2hhZG93OiBpbnNldCAwIDFweCAxcHggcmdiYSgwLCAwLCAwLCAwLjA3NSk7DQogIC1tb3otYm94LXNoYWRvdzogaW5zZXQgMCAxcHggMXB4IHJnYmEoMCwgMCwgMCwgMC4wNzUpOw0KICBib3gtc2hhZG93OiBpbnNldCAwIDFweCAxcHggcmdiYSgwLCAwLCAwLCAwLjA3NSk7DQogIC13ZWJraXQtdHJhbnNpdGlvbjogYm9yZGVyIGxpbmVhciAwLjJzLCBib3gtc2hhZG93IGxpbmVhciAwLjJzOw0KICAtbW96LXRyYW5zaXRpb246IGJvcmRlciBsaW5lYXIgMC4ycywgYm94LXNoYWRvdyBsaW5lYXIgMC4yczsNCiAgLW1zLXRyYW5zaXRpb246IGJvcmRlciBsaW5lYXIgMC4ycywgYm94LXNoYWRvdyBsaW5lYXIgMC4yczsNCiAgLW8tdHJhbnNpdGlvbjogYm9yZGVyIGxpbmVhciAwLjJzLCBib3gtc2hhZG93IGxpbmVhciAwLjJzOw0KICB0cmFuc2l0aW9uOiBib3JkZXIgbGluZWFyIDAuMnMsIGJveC1zaGFkb3cgbGluZWFyIDAuMnM7DQogIGJvcmRlcjogMXB4IHNvbGlkICNjY2M7DQogIC13ZWJraXQtYm9yZGVyLXJhZGl1czogM3B4Ow0KICAtbW96LWJvcmRlci1yYWRpdXM6IDNweDsNCiAgYm9yZGVyLXJhZGl1czogM3B4Ow0KICBwb3NpdGlvbjogcmVsYXRpdmU7DQogIGhlaWdodDogMjAwcHg7DQogIHBhZGRpbmc6IDA7DQogIG92ZXJmbG93LXk6IGF1dG87DQp9DQoNCi5tcy1jb250YWluZXIgLm1zLWxpc3QubXMtZm9jdXN7DQogIGJvcmRlci1jb2xvcjogcmdiYSg4MiwgMTY4LCAyMzYsIDAuOCk7DQogIC13ZWJraXQtYm94LXNoYWRvdzogaW5zZXQgMCAxcHggMXB4IHJnYmEoMCwgMCwgMCwgMC4wNzUpLCAwIDAgOHB4IHJnYmEoODIsIDE2OCwgMjM2LCAwLjYpOw0KICAtbW96LWJveC1zaGFkb3c6IGluc2V0IDAgMXB4IDFweCByZ2JhKDAsIDAsIDAsIDAuMDc1KSwgMCAwIDhweCByZ2JhKDgyLCAxNjgsIDIzNiwgMC42KTsNCiAgYm94LXNoYWRvdzogaW5zZXQgMCAxcHggMXB4IHJnYmEoMCwgMCwgMCwgMC4wNzUpLCAwIDAgOHB4IHJnYmEoODIsIDE2OCwgMjM2LCAwLjYpOw0KICBvdXRsaW5lOiAwOw0KICBvdXRsaW5lOiB0aGluIGRvdHRlZCBcOTsNCn0NCg0KLm1zLWNvbnRhaW5lciB1bHsNCiAgbWFyZ2luOiAwOw0KICBsaXN0LXN0eWxlLXR5cGU6IG5vbmU7DQogIHBhZGRpbmc6IDA7DQp9DQoNCi5tcy1jb250YWluZXIgLm1zLW9wdGdyb3VwLWNvbnRhaW5lcnsNCiAgd2lkdGg6IDEwMCU7DQp9DQoNCi5tcy1jb250YWluZXIgLm1zLW9wdGdyb3VwLWxhYmVsew0KICBtYXJnaW46IDA7DQogIHBhZGRpbmc6IDVweCAwcHggMHB4IDVweDsNCiAgY3Vyc29yOiBwb2ludGVyOw0KICBjb2xvcjogIzk5OTsNCn0NCg0KLm1zLWNvbnRhaW5lciAubXMtc2VsZWN0YWJsZSBsaS5tcy1lbGVtLXNlbGVjdGFibGUsDQoubXMtY29udGFpbmVyIC5tcy1zZWxlY3Rpb24gbGkubXMtZWxlbS1zZWxlY3Rpb257DQogIGJvcmRlci1ib3R0b206IDFweCAjZWVlIHNvbGlkOw0KICBwYWRkaW5nOiAycHggMTBweDsNCiAgY29sb3I6ICM1NTU7DQogIGZvbnQtc2l6ZTogMTRweDsNCn0NCg0KLm1zLWNvbnRhaW5lciAubXMtc2VsZWN0YWJsZSBsaS5tcy1ob3ZlciwNCi5tcy1jb250YWluZXIgLm1zLXNlbGVjdGlvbiBsaS5tcy1ob3ZlcnsNCiAgY3Vyc29yOiBwb2ludGVyOw0KICBjb2xvcjogI2ZmZjsNCiAgdGV4dC1kZWNvcmF0aW9uOiBub25lOw0KICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDhjOw0KfQ0KDQoubXMtY29udGFpbmVyIC5tcy1zZWxlY3RhYmxlIGxpLmRpc2FibGVkLA0KLm1zLWNvbnRhaW5lciAubXMtc2VsZWN0aW9uIGxpLmRpc2FibGVkew0KICBiYWNrZ3JvdW5kLWNvbG9yOiAjZWVlOw0KICBjb2xvcjogI2FhYTsNCiAgY3Vyc29yOiB0ZXh0Ow0KfQ==]]></data>
	</file>
	<file>
	  <filename>/lib/fielddefs/FEUMultiSelect/jquery.multi-select.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[LyoKKiBNdWx0aVNlbGVjdCB2MC45LjEyCiogQ29weXJpZ2h0IChjKSAyMDEyIExvdWlzIEN1bnkKKgoqIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlLiBJdCBjb21lcyB3aXRob3V0IGFueSB3YXJyYW50eSwgdG8KKiB0aGUgZXh0ZW50IHBlcm1pdHRlZCBieSBhcHBsaWNhYmxlIGxhdy4gWW91IGNhbiByZWRpc3RyaWJ1dGUgaXQKKiBhbmQvb3IgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRG8gV2hhdCBUaGUgRnVjayBZb3UgV2FudAoqIFRvIFB1YmxpYyBMaWNlbnNlLCBWZXJzaW9uIDIsIGFzIHB1Ymxpc2hlZCBieSBTYW0gSG9jZXZhci4gU2VlCiogaHR0cDovL3NhbS56b3kub3JnL3d0ZnBsL0NPUFlJTkcgZm9yIG1vcmUgZGV0YWlscy4KKi8KCiFmdW5jdGlvbiAoJCkgewoKICAidXNlIHN0cmljdCI7CgoKIC8qIE1VTFRJU0VMRUNUIENMQVNTIERFRklOSVRJT04KICAqID09PT09PT09PT09PT09PT09PT09PT0gKi8KCiAgdmFyIE11bHRpU2VsZWN0ID0gZnVuY3Rpb24gKGVsZW1lbnQsIG9wdGlvbnMpIHsKICAgIHRoaXMub3B0aW9ucyA9IG9wdGlvbnM7CiAgICB0aGlzLiRlbGVtZW50ID0gJChlbGVtZW50KTsKICAgIHRoaXMuJGNvbnRhaW5lciA9ICQoJzxkaXYvPicsIHsgJ2NsYXNzJzogIm1zLWNvbnRhaW5lciIgfSk7CiAgICB0aGlzLiRzZWxlY3RhYmxlQ29udGFpbmVyID0gJCgnPGRpdi8+JywgeyAnY2xhc3MnOiAnbXMtc2VsZWN0YWJsZScgfSk7CiAgICB0aGlzLiRzZWxlY3Rpb25Db250YWluZXIgPSAkKCc8ZGl2Lz4nLCB7ICdjbGFzcyc6ICdtcy1zZWxlY3Rpb24nIH0pOwogICAgdGhpcy4kc2VsZWN0YWJsZVVsID0gJCgnPHVsLz4nLCB7ICdjbGFzcyc6ICJtcy1saXN0IiwgJ3RhYmluZGV4JyA6ICctMScgfSk7CiAgICB0aGlzLiRzZWxlY3Rpb25VbCA9ICQoJzx1bC8+JywgeyAnY2xhc3MnOiAibXMtbGlzdCIsICd0YWJpbmRleCcgOiAnLTEnIH0pOwogICAgdGhpcy5zY3JvbGxUbyA9IDA7CiAgICB0aGlzLmVsZW1zU2VsZWN0b3IgPSAnbGk6dmlzaWJsZTpub3QoLm1zLW9wdGdyb3VwLWxhYmVsLC5tcy1vcHRncm91cC1jb250YWluZXIsLicrb3B0aW9ucy5kaXNhYmxlZENsYXNzKycpJzsKICB9OwoKICBNdWx0aVNlbGVjdC5wcm90b3R5cGUgPSB7CiAgICBjb25zdHJ1Y3RvcjogTXVsdGlTZWxlY3QsCgogICAgaW5pdDogZnVuY3Rpb24oKXsKICAgICAgdmFyIHRoYXQgPSB0aGlzLAogICAgICAgICAgbXMgPSB0aGlzLiRlbGVtZW50OwoKICAgICAgaWYgKG1zLm5leHQoJy5tcy1jb250YWluZXInKS5sZW5ndGggPT09IDApewogICAgICAgIG1zLmNzcyh7IHBvc2l0aW9uOiAnYWJzb2x1dGUnLCBsZWZ0OiAnLTk5OTlweCcgfSk7CiAgICAgICAgbXMuYXR0cignaWQnLCBtcy5hdHRyKCdpZCcpID8gbXMuYXR0cignaWQnKSA6IE1hdGguY2VpbChNYXRoLnJhbmRvbSgpKjEwMDApKydtdWx0aXNlbGVjdCcpOwogICAgICAgIHRoaXMuJGNvbnRhaW5lci5hdHRyKCdpZCcsICdtcy0nK21zLmF0dHIoJ2lkJykpOwogICAgICAgIHRoaXMuJGNvbnRhaW5lci5hZGRDbGFzcyh0aGF0Lm9wdGlvbnMuY3NzQ2xhc3MpOwogICAgICAgIG1zLmZpbmQoJ29wdGlvbicpLmVhY2goZnVuY3Rpb24oKXsKICAgICAgICAgIHRoYXQuZ2VuZXJhdGVMaXNGcm9tT3B0aW9uKHRoaXMpOwogICAgICAgIH0pOwoKICAgICAgICB0aGlzLiRzZWxlY3Rpb25VbC5maW5kKCcubXMtb3B0Z3JvdXAtbGFiZWwnKS5oaWRlKCk7CgogICAgICAgIGlmICh0aGF0Lm9wdGlvbnMuc2VsZWN0YWJsZUhlYWRlcil7CiAgICAgICAgICB0aGF0LiRzZWxlY3RhYmxlQ29udGFpbmVyLmFwcGVuZCh0aGF0Lm9wdGlvbnMuc2VsZWN0YWJsZUhlYWRlcik7CiAgICAgICAgfQogICAgICAgIHRoYXQuJHNlbGVjdGFibGVDb250YWluZXIuYXBwZW5kKHRoYXQuJHNlbGVjdGFibGVVbCk7CiAgICAgICAgaWYgKHRoYXQub3B0aW9ucy5zZWxlY3RhYmxlRm9vdGVyKXsKICAgICAgICAgIHRoYXQuJHNlbGVjdGFibGVDb250YWluZXIuYXBwZW5kKHRoYXQub3B0aW9ucy5zZWxlY3RhYmxlRm9vdGVyKTsKICAgICAgICB9CgogICAgICAgIGlmICh0aGF0Lm9wdGlvbnMuc2VsZWN0aW9uSGVhZGVyKXsKICAgICAgICAgIHRoYXQuJHNlbGVjdGlvbkNvbnRhaW5lci5hcHBlbmQodGhhdC5vcHRpb25zLnNlbGVjdGlvbkhlYWRlcik7CiAgICAgICAgfQogICAgICAgIHRoYXQuJHNlbGVjdGlvbkNvbnRhaW5lci5hcHBlbmQodGhhdC4kc2VsZWN0aW9uVWwpOwogICAgICAgIGlmICh0aGF0Lm9wdGlvbnMuc2VsZWN0aW9uRm9vdGVyKXsKICAgICAgICAgIHRoYXQuJHNlbGVjdGlvbkNvbnRhaW5lci5hcHBlbmQodGhhdC5vcHRpb25zLnNlbGVjdGlvbkZvb3Rlcik7CiAgICAgICAgfQoKICAgICAgICB0aGF0LiRjb250YWluZXIuYXBwZW5kKHRoYXQuJHNlbGVjdGFibGVDb250YWluZXIpOwogICAgICAgIHRoYXQuJGNvbnRhaW5lci5hcHBlbmQodGhhdC4kc2VsZWN0aW9uQ29udGFpbmVyKTsKICAgICAgICBtcy5hZnRlcih0aGF0LiRjb250YWluZXIpOwoKICAgICAgICB0aGF0LmFjdGl2ZU1vdXNlKHRoYXQuJHNlbGVjdGFibGVVbCk7CiAgICAgICAgdGhhdC5hY3RpdmVLZXlib2FyZCh0aGF0LiRzZWxlY3RhYmxlVWwpOwoKICAgICAgICB2YXIgYWN0aW9uID0gdGhhdC5vcHRpb25zLmRibENsaWNrID8gJ2RibGNsaWNrJyA6ICdjbGljayc7CgogICAgICAgIHRoYXQuJHNlbGVjdGFibGVVbC5vbihhY3Rpb24sICcubXMtZWxlbS1zZWxlY3RhYmxlJywgZnVuY3Rpb24oKXsKICAgICAgICAgIHRoYXQuc2VsZWN0KCQodGhpcykuZGF0YSgnbXMtdmFsdWUnKSk7CiAgICAgICAgfSk7CiAgICAgICAgdGhhdC4kc2VsZWN0aW9uVWwub24oYWN0aW9uLCAnLm1zLWVsZW0tc2VsZWN0aW9uJywgZnVuY3Rpb24oKXsKICAgICAgICAgIHRoYXQuZGVzZWxlY3QoJCh0aGlzKS5kYXRhKCdtcy12YWx1ZScpKTsKICAgICAgICB9KTsKCiAgICAgICAgdGhhdC5hY3RpdmVNb3VzZSh0aGF0LiRzZWxlY3Rpb25VbCk7CiAgICAgICAgdGhhdC5hY3RpdmVLZXlib2FyZCh0aGF0LiRzZWxlY3Rpb25VbCk7CgogICAgICAgIG1zLm9uKCdmb2N1cycsIGZ1bmN0aW9uKCl7CiAgICAgICAgICB0aGF0LiRzZWxlY3RhYmxlVWwuZm9jdXMoKTsKICAgICAgICB9KTsKICAgICAgfQoKICAgICAgdmFyIHNlbGVjdGVkVmFsdWVzID0gbXMuZmluZCgnb3B0aW9uOnNlbGVjdGVkJykubWFwKGZ1bmN0aW9uKCl7IHJldHVybiAkKHRoaXMpLnZhbCgpOyB9KS5nZXQoKTsKICAgICAgdGhhdC5zZWxlY3Qoc2VsZWN0ZWRWYWx1ZXMsICdpbml0Jyk7CgogICAgICBpZiAodHlwZW9mIHRoYXQub3B0aW9ucy5hZnRlckluaXQgPT09ICdmdW5jdGlvbicpIHsKICAgICAgICB0aGF0Lm9wdGlvbnMuYWZ0ZXJJbml0LmNhbGwodGhpcywgdGhpcy4kY29udGFpbmVyKTsKICAgICAgfQogICAgfSwKCiAgICAnZ2VuZXJhdGVMaXNGcm9tT3B0aW9uJyA6IGZ1bmN0aW9uKG9wdGlvbiwgaW5kZXgsICRjb250YWluZXIpewogICAgICB2YXIgdGhhdCA9IHRoaXMsCiAgICAgICAgICBtcyA9IHRoYXQuJGVsZW1lbnQsCiAgICAgICAgICBhdHRyaWJ1dGVzID0gIiIsCiAgICAgICAgICAkb3B0aW9uID0gJChvcHRpb24pOwoKICAgICAgZm9yICh2YXIgY3B0ID0gMDsgY3B0IDwgb3B0aW9uLmF0dHJpYnV0ZXMubGVuZ3RoOyBjcHQrKyl7CiAgICAgICAgdmFyIGF0dHIgPSBvcHRpb24uYXR0cmlidXRlc1tjcHRdOwoKICAgICAgICBpZihhdHRyLm5hbWUgIT09ICd2YWx1ZScgJiYgYXR0ci5uYW1lICE9PSAnZGlzYWJsZWQnKXsKICAgICAgICAgIGF0dHJpYnV0ZXMgKz0gYXR0ci5uYW1lKyc9IicrYXR0ci52YWx1ZSsnIiAnOwogICAgICAgIH0KICAgICAgfQogICAgICB2YXIgc2VsZWN0YWJsZUxpID0gJCgnPGxpICcrYXR0cmlidXRlcysnPjxzcGFuPicrdGhhdC5lc2NhcGVIVE1MKCRvcHRpb24udGV4dCgpKSsnPC9zcGFuPjwvbGk+JyksCiAgICAgICAgICBzZWxlY3RlZExpID0gc2VsZWN0YWJsZUxpLmNsb25lKCksCiAgICAgICAgICB2YWx1ZSA9ICRvcHRpb24udmFsKCksCiAgICAgICAgICBlbGVtZW50SWQgPSB0aGF0LnNhbml0aXplKHZhbHVlKTsKCiAgICAgIHNlbGVjdGFibGVMaQogICAgICAgIC5kYXRhKCdtcy12YWx1ZScsIHZhbHVlKQogICAgICAgIC5hZGRDbGFzcygnbXMtZWxlbS1zZWxlY3RhYmxlJykKICAgICAgICAuYXR0cignaWQnLCBlbGVtZW50SWQrJy1zZWxlY3RhYmxlJyk7CgogICAgICBzZWxlY3RlZExpCiAgICAgICAgLmRhdGEoJ21zLXZhbHVlJywgdmFsdWUpCiAgICAgICAgLmFkZENsYXNzKCdtcy1lbGVtLXNlbGVjdGlvbicpCiAgICAgICAgLmF0dHIoJ2lkJywgZWxlbWVudElkKyctc2VsZWN0aW9uJykKICAgICAgICAuaGlkZSgpOwoKICAgICAgaWYgKCRvcHRpb24ucHJvcCgnZGlzYWJsZWQnKSB8fCBtcy5wcm9wKCdkaXNhYmxlZCcpKXsKICAgICAgICBzZWxlY3RlZExpLmFkZENsYXNzKHRoYXQub3B0aW9ucy5kaXNhYmxlZENsYXNzKTsKICAgICAgICBzZWxlY3RhYmxlTGkuYWRkQ2xhc3ModGhhdC5vcHRpb25zLmRpc2FibGVkQ2xhc3MpOwogICAgICB9CgogICAgICB2YXIgJG9wdGdyb3VwID0gJG9wdGlvbi5wYXJlbnQoJ29wdGdyb3VwJyk7CgogICAgICBpZiAoJG9wdGdyb3VwLmxlbmd0aCA+IDApewogICAgICAgIHZhciBvcHRncm91cExhYmVsID0gJG9wdGdyb3VwLmF0dHIoJ2xhYmVsJyksCiAgICAgICAgICAgIG9wdGdyb3VwSWQgPSB0aGF0LnNhbml0aXplKG9wdGdyb3VwTGFiZWwpLAogICAgICAgICAgICAkc2VsZWN0YWJsZU9wdGdyb3VwID0gdGhhdC4kc2VsZWN0YWJsZVVsLmZpbmQoJyNvcHRncm91cC1zZWxlY3RhYmxlLScrb3B0Z3JvdXBJZCksCiAgICAgICAgICAgICRzZWxlY3Rpb25PcHRncm91cCA9IHRoYXQuJHNlbGVjdGlvblVsLmZpbmQoJyNvcHRncm91cC1zZWxlY3Rpb24tJytvcHRncm91cElkKTsKCiAgICAgICAgaWYgKCRzZWxlY3RhYmxlT3B0Z3JvdXAubGVuZ3RoID09PSAwKXsKICAgICAgICAgIHZhciBvcHRncm91cENvbnRhaW5lclRwbCA9ICc8bGkgY2xhc3M9Im1zLW9wdGdyb3VwLWNvbnRhaW5lciI+PC9saT4nLAogICAgICAgICAgICAgIG9wdGdyb3VwVHBsID0gJzx1bCBjbGFzcz0ibXMtb3B0Z3JvdXAiPjxsaSBjbGFzcz0ibXMtb3B0Z3JvdXAtbGFiZWwiPjxzcGFuPicrb3B0Z3JvdXBMYWJlbCsnPC9zcGFuPjwvbGk+PC91bD4nOwoKICAgICAgICAgICRzZWxlY3RhYmxlT3B0Z3JvdXAgPSAkKG9wdGdyb3VwQ29udGFpbmVyVHBsKTsKICAgICAgICAgICRzZWxlY3Rpb25PcHRncm91cCA9ICQob3B0Z3JvdXBDb250YWluZXJUcGwpOwogICAgICAgICAgJHNlbGVjdGFibGVPcHRncm91cC5hdHRyKCdpZCcsICdvcHRncm91cC1zZWxlY3RhYmxlLScrb3B0Z3JvdXBJZCk7CiAgICAgICAgICAkc2VsZWN0aW9uT3B0Z3JvdXAuYXR0cignaWQnLCAnb3B0Z3JvdXAtc2VsZWN0aW9uLScrb3B0Z3JvdXBJZCk7CiAgICAgICAgICAkc2VsZWN0YWJsZU9wdGdyb3VwLmFwcGVuZCgkKG9wdGdyb3VwVHBsKSk7CiAgICAgICAgICAkc2VsZWN0aW9uT3B0Z3JvdXAuYXBwZW5kKCQob3B0Z3JvdXBUcGwpKTsKICAgICAgICAgIGlmICh0aGF0Lm9wdGlvbnMuc2VsZWN0YWJsZU9wdGdyb3VwKXsKICAgICAgICAgICAgJHNlbGVjdGFibGVPcHRncm91cC5maW5kKCcubXMtb3B0Z3JvdXAtbGFiZWwnKS5vbignY2xpY2snLCBmdW5jdGlvbigpewogICAgICAgICAgICAgIHZhciB2YWx1ZXMgPSAkb3B0Z3JvdXAuY2hpbGRyZW4oJzpub3QoOnNlbGVjdGVkLCA6ZGlzYWJsZWQpJykubWFwKGZ1bmN0aW9uKCl7IHJldHVybiAkKHRoaXMpLnZhbCgpO30pLmdldCgpOwogICAgICAgICAgICAgIHRoYXQuc2VsZWN0KHZhbHVlcyk7CiAgICAgICAgICAgIH0pOwogICAgICAgICAgICAkc2VsZWN0aW9uT3B0Z3JvdXAuZmluZCgnLm1zLW9wdGdyb3VwLWxhYmVsJykub24oJ2NsaWNrJywgZnVuY3Rpb24oKXsKICAgICAgICAgICAgICB2YXIgdmFsdWVzID0gJG9wdGdyb3VwLmNoaWxkcmVuKCc6c2VsZWN0ZWQ6bm90KDpkaXNhYmxlZCknKS5tYXAoZnVuY3Rpb24oKXsgcmV0dXJuICQodGhpcykudmFsKCk7fSkuZ2V0KCk7CiAgICAgICAgICAgICAgdGhhdC5kZXNlbGVjdCh2YWx1ZXMpOwogICAgICAgICAgICB9KTsKICAgICAgICAgIH0KICAgICAgICAgIHRoYXQuJHNlbGVjdGFibGVVbC5hcHBlbmQoJHNlbGVjdGFibGVPcHRncm91cCk7CiAgICAgICAgICB0aGF0LiRzZWxlY3Rpb25VbC5hcHBlbmQoJHNlbGVjdGlvbk9wdGdyb3VwKTsKICAgICAgICB9CiAgICAgICAgaW5kZXggPSBpbmRleCA9PT0gdW5kZWZpbmVkID8gJHNlbGVjdGFibGVPcHRncm91cC5maW5kKCd1bCcpLmNoaWxkcmVuKCkubGVuZ3RoIDogaW5kZXggKyAxOwogICAgICAgIHNlbGVjdGFibGVMaS5pbnNlcnRBdChpbmRleCwgJHNlbGVjdGFibGVPcHRncm91cC5jaGlsZHJlbigpKTsKICAgICAgICBzZWxlY3RlZExpLmluc2VydEF0KGluZGV4LCAkc2VsZWN0aW9uT3B0Z3JvdXAuY2hpbGRyZW4oKSk7CiAgICAgIH0gZWxzZSB7CiAgICAgICAgaW5kZXggPSBpbmRleCA9PT0gdW5kZWZpbmVkID8gdGhhdC4kc2VsZWN0YWJsZVVsLmNoaWxkcmVuKCkubGVuZ3RoIDogaW5kZXg7CgogICAgICAgIHNlbGVjdGFibGVMaS5pbnNlcnRBdChpbmRleCwgdGhhdC4kc2VsZWN0YWJsZVVsKTsKICAgICAgICBzZWxlY3RlZExpLmluc2VydEF0KGluZGV4LCB0aGF0LiRzZWxlY3Rpb25VbCk7CiAgICAgIH0KICAgIH0sCgogICAgJ2FkZE9wdGlvbicgOiBmdW5jdGlvbihvcHRpb25zKXsKICAgICAgdmFyIHRoYXQgPSB0aGlzOwoKICAgICAgaWYgKG9wdGlvbnMudmFsdWUgIT09IHVuZGVmaW5lZCAmJiBvcHRpb25zLnZhbHVlICE9PSBudWxsKXsKICAgICAgICBvcHRpb25zID0gW29wdGlvbnNdOwogICAgICB9IAogICAgICAkLmVhY2gob3B0aW9ucywgZnVuY3Rpb24oaW5kZXgsIG9wdGlvbil7CiAgICAgICAgaWYgKG9wdGlvbi52YWx1ZSAhPT0gdW5kZWZpbmVkICYmIG9wdGlvbi52YWx1ZSAhPT0gbnVsbCAmJgogICAgICAgICAgICB0aGF0LiRlbGVtZW50LmZpbmQoIm9wdGlvblt2YWx1ZT0nIitvcHRpb24udmFsdWUrIiddIikubGVuZ3RoID09PSAwKXsKICAgICAgICAgIHZhciAkb3B0aW9uID0gJCgnPG9wdGlvbiB2YWx1ZT0iJytvcHRpb24udmFsdWUrJyI+JytvcHRpb24udGV4dCsnPC9vcHRpb24+JyksCiAgICAgICAgICAgICAgaW5kZXggPSBwYXJzZUludCgodHlwZW9mIG9wdGlvbi5pbmRleCA9PT0gJ3VuZGVmaW5lZCcgPyB0aGF0LiRlbGVtZW50LmNoaWxkcmVuKCkubGVuZ3RoIDogb3B0aW9uLmluZGV4KSksCiAgICAgICAgICAgICAgJGNvbnRhaW5lciA9IG9wdGlvbi5uZXN0ZWQgPT09IHVuZGVmaW5lZCA/IHRoYXQuJGVsZW1lbnQgOiAkKCJvcHRncm91cFtsYWJlbD0nIitvcHRpb24ubmVzdGVkKyInXSIpOwoKICAgICAgICAgICRvcHRpb24uaW5zZXJ0QXQoaW5kZXgsICRjb250YWluZXIpOwogICAgICAgICAgdGhhdC5nZW5lcmF0ZUxpc0Zyb21PcHRpb24oJG9wdGlvbi5nZXQoMCksIGluZGV4LCBvcHRpb24ubmVzdGVkKTsKICAgICAgICB9CiAgICAgIH0pOwogICAgfSwKCiAgICAnZXNjYXBlSFRNTCcgOiBmdW5jdGlvbih0ZXh0KXsKICAgICAgcmV0dXJuICQoIjxkaXY+IikudGV4dCh0ZXh0KS5odG1sKCk7CiAgICB9LAoKICAgICdhY3RpdmVLZXlib2FyZCcgOiBmdW5jdGlvbigkbGlzdCl7CiAgICAgIHZhciB0aGF0ID0gdGhpczsKCiAgICAgICRsaXN0Lm9uKCdmb2N1cycsIGZ1bmN0aW9uKCl7CiAgICAgICAgJCh0aGlzKS5hZGRDbGFzcygnbXMtZm9jdXMnKTsKICAgICAgfSkKICAgICAgLm9uKCdibHVyJywgZnVuY3Rpb24oKXsKICAgICAgICAkKHRoaXMpLnJlbW92ZUNsYXNzKCdtcy1mb2N1cycpOwogICAgICB9KQogICAgICAub24oJ2tleWRvd24nLCBmdW5jdGlvbihlKXsKICAgICAgICBzd2l0Y2ggKGUud2hpY2gpIHsKICAgICAgICAgIGNhc2UgNDA6CiAgICAgICAgICBjYXNlIDM4OgogICAgICAgICAgICBlLnByZXZlbnREZWZhdWx0KCk7CiAgICAgICAgICAgIGUuc3RvcFByb3BhZ2F0aW9uKCk7CiAgICAgICAgICAgIHRoYXQubW92ZUhpZ2hsaWdodCgkKHRoaXMpLCAoZS53aGljaCA9PT0gMzgpID8gLTEgOiAxKTsKICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgY2FzZSAzNzoKICAgICAgICAgIGNhc2UgMzk6CiAgICAgICAgICAgIGUucHJldmVudERlZmF1bHQoKTsKICAgICAgICAgICAgZS5zdG9wUHJvcGFnYXRpb24oKTsKICAgICAgICAgICAgdGhhdC5zd2l0Y2hMaXN0KCRsaXN0KTsKICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgY2FzZSA5OgogICAgICAgICAgICBpZih0aGF0LiRlbGVtZW50LmlzKCdbdGFiaW5kZXhdJykpewogICAgICAgICAgICAgIGUucHJldmVudERlZmF1bHQoKTsKICAgICAgICAgICAgICB2YXIgdGFiaW5kZXggPSBwYXJzZUludCh0aGF0LiRlbGVtZW50LmF0dHIoJ3RhYmluZGV4JyksIDEwKTsKICAgICAgICAgICAgICB0YWJpbmRleCA9IChlLnNoaWZ0S2V5KSA/IHRhYmluZGV4LTEgOiB0YWJpbmRleCsxOwogICAgICAgICAgICAgICQoJ1t0YWJpbmRleD0iJysodGFiaW5kZXgpKyciXScpLmZvY3VzKCk7CiAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICB9ZWxzZXsKICAgICAgICAgICAgICBpZihlLnNoaWZ0S2V5KXsKICAgICAgICAgICAgICAgIHRoYXQuJGVsZW1lbnQudHJpZ2dlcignZm9jdXMnKTsKICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgaWYoJC5pbkFycmF5KGUud2hpY2gsIHRoYXQub3B0aW9ucy5rZXlTZWxlY3QpID4gLTEpewogICAgICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpOwogICAgICAgICAgZS5zdG9wUHJvcGFnYXRpb24oKTsKICAgICAgICAgIHRoYXQuc2VsZWN0SGlnaGxpZ2h0ZWQoJGxpc3QpOwogICAgICAgICAgcmV0dXJuOwogICAgICAgIH0KICAgICAgfSk7CiAgICB9LAoKICAgICdtb3ZlSGlnaGxpZ2h0JzogZnVuY3Rpb24oJGxpc3QsIGRpcmVjdGlvbil7CiAgICAgIHZhciAkZWxlbXMgPSAkbGlzdC5maW5kKHRoaXMuZWxlbXNTZWxlY3RvciksCiAgICAgICAgICAkY3VyckVsZW0gPSAkZWxlbXMuZmlsdGVyKCcubXMtaG92ZXInKSwKICAgICAgICAgICRuZXh0RWxlbSA9IG51bGwsCiAgICAgICAgICBlbGVtSGVpZ2h0ID0gJGVsZW1zLmZpcnN0KCkub3V0ZXJIZWlnaHQoKSwKICAgICAgICAgIGNvbnRhaW5lckhlaWdodCA9ICRsaXN0LmhlaWdodCgpLAogICAgICAgICAgY29udGFpbmVyU2VsZWN0b3IgPSAnIycrdGhpcy4kY29udGFpbmVyLnByb3AoJ2lkJyk7CgogICAgICAkZWxlbXMucmVtb3ZlQ2xhc3MoJ21zLWhvdmVyJyk7CiAgICAgIGlmIChkaXJlY3Rpb24gPT09IDEpeyAvLyBET1dOCgogICAgICAgICRuZXh0RWxlbSA9ICRjdXJyRWxlbS5uZXh0QWxsKHRoaXMuZWxlbXNTZWxlY3RvcikuZmlyc3QoKTsKICAgICAgICBpZiAoJG5leHRFbGVtLmxlbmd0aCA9PT0gMCl7CiAgICAgICAgICB2YXIgJG9wdGdyb3VwVWwgPSAkY3VyckVsZW0ucGFyZW50KCk7CgogICAgICAgICAgaWYgKCRvcHRncm91cFVsLmhhc0NsYXNzKCdtcy1vcHRncm91cCcpKXsKICAgICAgICAgICAgdmFyICRvcHRncm91cExpID0gJG9wdGdyb3VwVWwucGFyZW50KCksCiAgICAgICAgICAgICAgICAkbmV4dE9wdGdyb3VwTGkgPSAkb3B0Z3JvdXBMaS5uZXh0KCc6dmlzaWJsZScpOwoKICAgICAgICAgICAgaWYgKCRuZXh0T3B0Z3JvdXBMaS5sZW5ndGggPiAwKXsKICAgICAgICAgICAgICAkbmV4dEVsZW0gPSAkbmV4dE9wdGdyb3VwTGkuZmluZCh0aGlzLmVsZW1zU2VsZWN0b3IpLmZpcnN0KCk7CiAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgJG5leHRFbGVtID0gJGVsZW1zLmZpcnN0KCk7CiAgICAgICAgICAgIH0KICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICRuZXh0RWxlbSA9ICRlbGVtcy5maXJzdCgpOwogICAgICAgICAgfQogICAgICAgIH0KICAgICAgfSBlbHNlIGlmIChkaXJlY3Rpb24gPT09IC0xKXsgLy8gVVAKCiAgICAgICAgJG5leHRFbGVtID0gJGN1cnJFbGVtLnByZXZBbGwodGhpcy5lbGVtc1NlbGVjdG9yKS5maXJzdCgpOwogICAgICAgIGlmICgkbmV4dEVsZW0ubGVuZ3RoID09PSAwKXsKICAgICAgICAgIHZhciAkb3B0Z3JvdXBVbCA9ICRjdXJyRWxlbS5wYXJlbnQoKTsKCiAgICAgICAgICBpZiAoJG9wdGdyb3VwVWwuaGFzQ2xhc3MoJ21zLW9wdGdyb3VwJykpewogICAgICAgICAgICB2YXIgJG9wdGdyb3VwTGkgPSAkb3B0Z3JvdXBVbC5wYXJlbnQoKSwKICAgICAgICAgICAgICAgICRwcmV2T3B0Z3JvdXBMaSA9ICRvcHRncm91cExpLnByZXYoJzp2aXNpYmxlJyk7CgogICAgICAgICAgICBpZiAoJHByZXZPcHRncm91cExpLmxlbmd0aCA+IDApewogICAgICAgICAgICAgICRuZXh0RWxlbSA9ICRwcmV2T3B0Z3JvdXBMaS5maW5kKHRoaXMuZWxlbXNTZWxlY3RvcikubGFzdCgpOwogICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICRuZXh0RWxlbSA9ICRlbGVtcy5sYXN0KCk7CiAgICAgICAgICAgIH0KICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICRuZXh0RWxlbSA9ICRlbGVtcy5sYXN0KCk7CiAgICAgICAgICB9CiAgICAgICAgfQogICAgICB9CiAgICAgIGlmICgkbmV4dEVsZW0ubGVuZ3RoID4gMCl7CiAgICAgICAgJG5leHRFbGVtLmFkZENsYXNzKCdtcy1ob3ZlcicpOwogICAgICAgIHZhciBzY3JvbGxUbyA9ICRsaXN0LnNjcm9sbFRvcCgpICsgJG5leHRFbGVtLnBvc2l0aW9uKCkudG9wIC0gCiAgICAgICAgICAgICAgICAgICAgICAgY29udGFpbmVySGVpZ2h0IC8gMiArIGVsZW1IZWlnaHQgLyAyOwoKICAgICAgICAkbGlzdC5zY3JvbGxUb3Aoc2Nyb2xsVG8pOwogICAgICB9CiAgICB9LAoKICAgICdzZWxlY3RIaWdobGlnaHRlZCcgOiBmdW5jdGlvbigkbGlzdCl7CiAgICAgIHZhciAkZWxlbXMgPSAkbGlzdC5maW5kKHRoaXMuZWxlbXNTZWxlY3RvciksCiAgICAgICAgICAkaGlnaGxpZ2h0ZWRFbGVtID0gJGVsZW1zLmZpbHRlcignLm1zLWhvdmVyJykuZmlyc3QoKTsKCiAgICAgIGlmICgkaGlnaGxpZ2h0ZWRFbGVtLmxlbmd0aCA+IDApewogICAgICAgIGlmICgkbGlzdC5wYXJlbnQoKS5oYXNDbGFzcygnbXMtc2VsZWN0YWJsZScpKXsKICAgICAgICAgIHRoaXMuc2VsZWN0KCRoaWdobGlnaHRlZEVsZW0uZGF0YSgnbXMtdmFsdWUnKSk7CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgIHRoaXMuZGVzZWxlY3QoJGhpZ2hsaWdodGVkRWxlbS5kYXRhKCdtcy12YWx1ZScpKTsKICAgICAgICB9CiAgICAgICAgJGVsZW1zLnJlbW92ZUNsYXNzKCdtcy1ob3ZlcicpOwogICAgICB9CiAgICB9LAoKICAgICdzd2l0Y2hMaXN0JyA6IGZ1bmN0aW9uKCRsaXN0KXsKICAgICAgJGxpc3QuYmx1cigpOwogICAgICB0aGlzLiRjb250YWluZXIuZmluZCh0aGlzLmVsZW1zU2VsZWN0b3IpLnJlbW92ZUNsYXNzKCdtcy1ob3ZlcicpOwogICAgICBpZiAoJGxpc3QucGFyZW50KCkuaGFzQ2xhc3MoJ21zLXNlbGVjdGFibGUnKSl7CiAgICAgICAgdGhpcy4kc2VsZWN0aW9uVWwuZm9jdXMoKTsKICAgICAgfSBlbHNlIHsKICAgICAgICB0aGlzLiRzZWxlY3RhYmxlVWwuZm9jdXMoKTsKICAgICAgfQogICAgfSwKCiAgICAnYWN0aXZlTW91c2UnIDogZnVuY3Rpb24oJGxpc3QpewogICAgICB2YXIgdGhhdCA9IHRoaXM7CgogICAgICB0aGlzLiRjb250YWluZXIub24oJ21vdXNlZW50ZXInLCB0aGF0LmVsZW1zU2VsZWN0b3IsIGZ1bmN0aW9uKCl7CiAgICAgICAgJCh0aGlzKS5wYXJlbnRzKCcubXMtY29udGFpbmVyJykuZmluZCh0aGF0LmVsZW1zU2VsZWN0b3IpLnJlbW92ZUNsYXNzKCdtcy1ob3ZlcicpOwogICAgICAgICQodGhpcykuYWRkQ2xhc3MoJ21zLWhvdmVyJyk7CiAgICAgIH0pOwoKICAgICAgdGhpcy4kY29udGFpbmVyLm9uKCdtb3VzZWxlYXZlJywgdGhhdC5lbGVtc1NlbGVjdG9yLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgJCh0aGlzKS5wYXJlbnRzKCcubXMtY29udGFpbmVyJykuZmluZCh0aGF0LmVsZW1zU2VsZWN0b3IpLnJlbW92ZUNsYXNzKCdtcy1ob3ZlcicpOwogICAgICB9KTsKICAgIH0sCgogICAgJ3JlZnJlc2gnIDogZnVuY3Rpb24oKSB7CiAgICAgIHRoaXMuZGVzdHJveSgpOwogICAgICB0aGlzLiRlbGVtZW50Lm11bHRpU2VsZWN0KHRoaXMub3B0aW9ucyk7CiAgICB9LAoKICAgICdkZXN0cm95JyA6IGZ1bmN0aW9uKCl7CiAgICAgICQoIiNtcy0iK3RoaXMuJGVsZW1lbnQuYXR0cigiaWQiKSkucmVtb3ZlKCk7CiAgICAgIHRoaXMuJGVsZW1lbnQub2ZmKCdmb2N1cycpOwogICAgICB0aGlzLiRlbGVtZW50LmNzcygncG9zaXRpb24nLCAnJykuY3NzKCdsZWZ0JywgJycpOwogICAgICB0aGlzLiRlbGVtZW50LnJlbW92ZURhdGEoJ211bHRpc2VsZWN0Jyk7CiAgICB9LAoKICAgICdzZWxlY3QnIDogZnVuY3Rpb24odmFsdWUsIG1ldGhvZCl7CiAgICAgIGlmICh0eXBlb2YgdmFsdWUgPT09ICdzdHJpbmcnKXsgdmFsdWUgPSBbdmFsdWVdOyB9CgogICAgICB2YXIgdGhhdCA9IHRoaXMsCiAgICAgICAgICBtcyA9IHRoaXMuJGVsZW1lbnQsCiAgICAgICAgICBtc0lkcyA9ICQubWFwKHZhbHVlLCBmdW5jdGlvbih2YWwpeyByZXR1cm4odGhhdC5zYW5pdGl6ZSh2YWwpKTsgfSksCiAgICAgICAgICBzZWxlY3RhYmxlcyA9IHRoaXMuJHNlbGVjdGFibGVVbC5maW5kKCcjJyArIG1zSWRzLmpvaW4oJy1zZWxlY3RhYmxlLCAjJykrJy1zZWxlY3RhYmxlJykuZmlsdGVyKCc6bm90KC4nK3RoYXQub3B0aW9ucy5kaXNhYmxlZENsYXNzKycpJyksCiAgICAgICAgICBzZWxlY3Rpb25zID0gdGhpcy4kc2VsZWN0aW9uVWwuZmluZCgnIycgKyBtc0lkcy5qb2luKCctc2VsZWN0aW9uLCAjJykgKyAnLXNlbGVjdGlvbicpLmZpbHRlcignOm5vdCguJyt0aGF0Lm9wdGlvbnMuZGlzYWJsZWRDbGFzcysnKScpLAogICAgICAgICAgb3B0aW9ucyA9IG1zLmZpbmQoJ29wdGlvbjpub3QoOmRpc2FibGVkKScpLmZpbHRlcihmdW5jdGlvbigpeyByZXR1cm4oJC5pbkFycmF5KHRoaXMudmFsdWUsIHZhbHVlKSA+IC0xKTsgfSk7CgogICAgICBpZiAobWV0aG9kID09PSAnaW5pdCcpewogICAgICAgIHNlbGVjdGFibGVzID0gdGhpcy4kc2VsZWN0YWJsZVVsLmZpbmQoJyMnICsgbXNJZHMuam9pbignLXNlbGVjdGFibGUsICMnKSsnLXNlbGVjdGFibGUnKSwKICAgICAgICBzZWxlY3Rpb25zID0gdGhpcy4kc2VsZWN0aW9uVWwuZmluZCgnIycgKyBtc0lkcy5qb2luKCctc2VsZWN0aW9uLCAjJykgKyAnLXNlbGVjdGlvbicpOwogICAgICB9CgogICAgICBpZiAoc2VsZWN0YWJsZXMubGVuZ3RoID4gMCl7CiAgICAgICAgc2VsZWN0YWJsZXMuYWRkQ2xhc3MoJ21zLXNlbGVjdGVkJykuaGlkZSgpOwogICAgICAgIHNlbGVjdGlvbnMuYWRkQ2xhc3MoJ21zLXNlbGVjdGVkJykuc2hvdygpOwoKICAgICAgICBvcHRpb25zLnByb3AoJ3NlbGVjdGVkJywgdHJ1ZSk7CgogICAgICAgIHRoYXQuJGNvbnRhaW5lci5maW5kKHRoYXQuZWxlbXNTZWxlY3RvcikucmVtb3ZlQ2xhc3MoJ21zLWhvdmVyJyk7CgogICAgICAgIHZhciBzZWxlY3RhYmxlT3B0Z3JvdXBzID0gdGhhdC4kc2VsZWN0YWJsZVVsLmNoaWxkcmVuKCcubXMtb3B0Z3JvdXAtY29udGFpbmVyJyk7CiAgICAgICAgaWYgKHNlbGVjdGFibGVPcHRncm91cHMubGVuZ3RoID4gMCl7CiAgICAgICAgICBzZWxlY3RhYmxlT3B0Z3JvdXBzLmVhY2goZnVuY3Rpb24oKXsKICAgICAgICAgICAgdmFyIHNlbGVjdGFibGVzTGkgPSAkKHRoaXMpLmZpbmQoJy5tcy1lbGVtLXNlbGVjdGFibGUnKTsKICAgICAgICAgICAgaWYgKHNlbGVjdGFibGVzTGkubGVuZ3RoID09PSBzZWxlY3RhYmxlc0xpLmZpbHRlcignLm1zLXNlbGVjdGVkJykubGVuZ3RoKXsKICAgICAgICAgICAgICAkKHRoaXMpLmZpbmQoJy5tcy1vcHRncm91cC1sYWJlbCcpLmhpZGUoKTsKICAgICAgICAgICAgfQogICAgICAgICAgfSk7CgogICAgICAgICAgdmFyIHNlbGVjdGlvbk9wdGdyb3VwcyA9IHRoYXQuJHNlbGVjdGlvblVsLmNoaWxkcmVuKCcubXMtb3B0Z3JvdXAtY29udGFpbmVyJyk7CiAgICAgICAgICBzZWxlY3Rpb25PcHRncm91cHMuZWFjaChmdW5jdGlvbigpewogICAgICAgICAgICB2YXIgc2VsZWN0aW9uc0xpID0gJCh0aGlzKS5maW5kKCcubXMtZWxlbS1zZWxlY3Rpb24nKTsKICAgICAgICAgICAgaWYgKHNlbGVjdGlvbnNMaS5maWx0ZXIoJy5tcy1zZWxlY3RlZCcpLmxlbmd0aCA+IDApewogICAgICAgICAgICAgICQodGhpcykuZmluZCgnLm1zLW9wdGdyb3VwLWxhYmVsJykuc2hvdygpOwogICAgICAgICAgICB9CiAgICAgICAgICB9KTsKICAgICAgICB9IGVsc2UgewogICAgICAgICAgaWYgKHRoYXQub3B0aW9ucy5rZWVwT3JkZXIgJiYgbWV0aG9kICE9PSAnaW5pdCcpewogICAgICAgICAgICB2YXIgc2VsZWN0aW9uTGlMYXN0ID0gdGhhdC4kc2VsZWN0aW9uVWwuZmluZCgnLm1zLXNlbGVjdGVkJyk7CiAgICAgICAgICAgIGlmKChzZWxlY3Rpb25MaUxhc3QubGVuZ3RoID4gMSkgJiYgKHNlbGVjdGlvbkxpTGFzdC5sYXN0KCkuZ2V0KDApICE9IHNlbGVjdGlvbnMuZ2V0KDApKSkgewogICAgICAgICAgICAgIHNlbGVjdGlvbnMuaW5zZXJ0QWZ0ZXIoc2VsZWN0aW9uTGlMYXN0Lmxhc3QoKSk7CiAgICAgICAgICAgIH0KICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgaWYgKG1ldGhvZCAhPT0gJ2luaXQnKXsKICAgICAgICAgIG1zLnRyaWdnZXIoJ2NoYW5nZScpOwogICAgICAgICAgaWYgKHR5cGVvZiB0aGF0Lm9wdGlvbnMuYWZ0ZXJTZWxlY3QgPT09ICdmdW5jdGlvbicpIHsKICAgICAgICAgICAgdGhhdC5vcHRpb25zLmFmdGVyU2VsZWN0LmNhbGwodGhpcywgdmFsdWUpOwogICAgICAgICAgfQogICAgICAgIH0KICAgICAgfQogICAgfSwKCiAgICAnZGVzZWxlY3QnIDogZnVuY3Rpb24odmFsdWUpewogICAgICBpZiAodHlwZW9mIHZhbHVlID09PSAnc3RyaW5nJyl7IHZhbHVlID0gW3ZhbHVlXTsgfQoKICAgICAgdmFyIHRoYXQgPSB0aGlzLAogICAgICAgICAgbXMgPSB0aGlzLiRlbGVtZW50LAogICAgICAgICAgbXNJZHMgPSAkLm1hcCh2YWx1ZSwgZnVuY3Rpb24odmFsKXsgcmV0dXJuKHRoYXQuc2FuaXRpemUodmFsKSk7IH0pLAogICAgICAgICAgc2VsZWN0YWJsZXMgPSB0aGlzLiRzZWxlY3RhYmxlVWwuZmluZCgnIycgKyBtc0lkcy5qb2luKCctc2VsZWN0YWJsZSwgIycpKyctc2VsZWN0YWJsZScpLAogICAgICAgICAgc2VsZWN0aW9ucyA9IHRoaXMuJHNlbGVjdGlvblVsLmZpbmQoJyMnICsgbXNJZHMuam9pbignLXNlbGVjdGlvbiwgIycpKyctc2VsZWN0aW9uJykuZmlsdGVyKCcubXMtc2VsZWN0ZWQnKS5maWx0ZXIoJzpub3QoLicrdGhhdC5vcHRpb25zLmRpc2FibGVkQ2xhc3MrJyknKSwKICAgICAgICAgIG9wdGlvbnMgPSBtcy5maW5kKCdvcHRpb24nKS5maWx0ZXIoZnVuY3Rpb24oKXsgcmV0dXJuKCQuaW5BcnJheSh0aGlzLnZhbHVlLCB2YWx1ZSkgPiAtMSk7IH0pOwoKICAgICAgaWYgKHNlbGVjdGlvbnMubGVuZ3RoID4gMCl7CiAgICAgICAgc2VsZWN0YWJsZXMucmVtb3ZlQ2xhc3MoJ21zLXNlbGVjdGVkJykuc2hvdygpOwogICAgICAgIHNlbGVjdGlvbnMucmVtb3ZlQ2xhc3MoJ21zLXNlbGVjdGVkJykuaGlkZSgpOwogICAgICAgIG9wdGlvbnMucHJvcCgnc2VsZWN0ZWQnLCBmYWxzZSk7CgogICAgICAgIHRoYXQuJGNvbnRhaW5lci5maW5kKHRoYXQuZWxlbXNTZWxlY3RvcikucmVtb3ZlQ2xhc3MoJ21zLWhvdmVyJyk7CgogICAgICAgIHZhciBzZWxlY3RhYmxlT3B0Z3JvdXBzID0gdGhhdC4kc2VsZWN0YWJsZVVsLmNoaWxkcmVuKCcubXMtb3B0Z3JvdXAtY29udGFpbmVyJyk7CiAgICAgICAgaWYgKHNlbGVjdGFibGVPcHRncm91cHMubGVuZ3RoID4gMCl7CiAgICAgICAgICBzZWxlY3RhYmxlT3B0Z3JvdXBzLmVhY2goZnVuY3Rpb24oKXsKICAgICAgICAgICAgdmFyIHNlbGVjdGFibGVzTGkgPSAkKHRoaXMpLmZpbmQoJy5tcy1lbGVtLXNlbGVjdGFibGUnKTsKICAgICAgICAgICAgaWYgKHNlbGVjdGFibGVzTGkuZmlsdGVyKCc6bm90KC5tcy1zZWxlY3RlZCknKS5sZW5ndGggPiAwKXsKICAgICAgICAgICAgICAkKHRoaXMpLmZpbmQoJy5tcy1vcHRncm91cC1sYWJlbCcpLnNob3coKTsKICAgICAgICAgICAgfQogICAgICAgICAgfSk7CgogICAgICAgICAgdmFyIHNlbGVjdGlvbk9wdGdyb3VwcyA9IHRoYXQuJHNlbGVjdGlvblVsLmNoaWxkcmVuKCcubXMtb3B0Z3JvdXAtY29udGFpbmVyJyk7CiAgICAgICAgICBzZWxlY3Rpb25PcHRncm91cHMuZWFjaChmdW5jdGlvbigpewogICAgICAgICAgICB2YXIgc2VsZWN0aW9uc0xpID0gJCh0aGlzKS5maW5kKCcubXMtZWxlbS1zZWxlY3Rpb24nKTsKICAgICAgICAgICAgaWYgKHNlbGVjdGlvbnNMaS5maWx0ZXIoJy5tcy1zZWxlY3RlZCcpLmxlbmd0aCA9PT0gMCl7CiAgICAgICAgICAgICAgJCh0aGlzKS5maW5kKCcubXMtb3B0Z3JvdXAtbGFiZWwnKS5oaWRlKCk7CiAgICAgICAgICAgIH0KICAgICAgICAgIH0pOwogICAgICAgIH0KICAgICAgICBtcy50cmlnZ2VyKCdjaGFuZ2UnKTsKICAgICAgICBpZiAodHlwZW9mIHRoYXQub3B0aW9ucy5hZnRlckRlc2VsZWN0ID09PSAnZnVuY3Rpb24nKSB7CiAgICAgICAgICB0aGF0Lm9wdGlvbnMuYWZ0ZXJEZXNlbGVjdC5jYWxsKHRoaXMsIHZhbHVlKTsKICAgICAgICB9CiAgICAgIH0KICAgIH0sCgogICAgJ3NlbGVjdF9hbGwnIDogZnVuY3Rpb24oKXsKICAgICAgdmFyIG1zID0gdGhpcy4kZWxlbWVudCwKICAgICAgICAgIHZhbHVlcyA9IG1zLnZhbCgpOwoKICAgICAgbXMuZmluZCgnb3B0aW9uOm5vdCgiOmRpc2FibGVkIiknKS5wcm9wKCdzZWxlY3RlZCcsIHRydWUpOwogICAgICB0aGlzLiRzZWxlY3RhYmxlVWwuZmluZCgnLm1zLWVsZW0tc2VsZWN0YWJsZScpLmZpbHRlcignOm5vdCguJyt0aGlzLm9wdGlvbnMuZGlzYWJsZWRDbGFzcysnKScpLmFkZENsYXNzKCdtcy1zZWxlY3RlZCcpLmhpZGUoKTsKICAgICAgdGhpcy4kc2VsZWN0aW9uVWwuZmluZCgnLm1zLW9wdGdyb3VwLWxhYmVsJykuc2hvdygpOwogICAgICB0aGlzLiRzZWxlY3RhYmxlVWwuZmluZCgnLm1zLW9wdGdyb3VwLWxhYmVsJykuaGlkZSgpOwogICAgICB0aGlzLiRzZWxlY3Rpb25VbC5maW5kKCcubXMtZWxlbS1zZWxlY3Rpb24nKS5maWx0ZXIoJzpub3QoLicrdGhpcy5vcHRpb25zLmRpc2FibGVkQ2xhc3MrJyknKS5hZGRDbGFzcygnbXMtc2VsZWN0ZWQnKS5zaG93KCk7CiAgICAgIHRoaXMuJHNlbGVjdGlvblVsLmZvY3VzKCk7CiAgICAgIG1zLnRyaWdnZXIoJ2NoYW5nZScpOwogICAgICBpZiAodHlwZW9mIHRoaXMub3B0aW9ucy5hZnRlclNlbGVjdCA9PT0gJ2Z1bmN0aW9uJykgewogICAgICAgIHZhciBzZWxlY3RlZFZhbHVlcyA9ICQuZ3JlcChtcy52YWwoKSwgZnVuY3Rpb24oaXRlbSl7CiAgICAgICAgICByZXR1cm4gJC5pbkFycmF5KGl0ZW0sIHZhbHVlcykgPCAwOwogICAgICAgIH0pOwogICAgICAgIHRoaXMub3B0aW9ucy5hZnRlclNlbGVjdC5jYWxsKHRoaXMsIHNlbGVjdGVkVmFsdWVzKTsKICAgICAgfQogICAgfSwKCiAgICAnZGVzZWxlY3RfYWxsJyA6IGZ1bmN0aW9uKCl7CiAgICAgIHZhciBtcyA9IHRoaXMuJGVsZW1lbnQsCiAgICAgICAgICB2YWx1ZXMgPSBtcy52YWwoKTsKCiAgICAgIG1zLmZpbmQoJ29wdGlvbicpLnByb3AoJ3NlbGVjdGVkJywgZmFsc2UpOwogICAgICB0aGlzLiRzZWxlY3RhYmxlVWwuZmluZCgnLm1zLWVsZW0tc2VsZWN0YWJsZScpLnJlbW92ZUNsYXNzKCdtcy1zZWxlY3RlZCcpLnNob3coKTsKICAgICAgdGhpcy4kc2VsZWN0aW9uVWwuZmluZCgnLm1zLW9wdGdyb3VwLWxhYmVsJykuaGlkZSgpOwogICAgICB0aGlzLiRzZWxlY3RhYmxlVWwuZmluZCgnLm1zLW9wdGdyb3VwLWxhYmVsJykuc2hvdygpOwogICAgICB0aGlzLiRzZWxlY3Rpb25VbC5maW5kKCcubXMtZWxlbS1zZWxlY3Rpb24nKS5yZW1vdmVDbGFzcygnbXMtc2VsZWN0ZWQnKS5oaWRlKCk7CiAgICAgIHRoaXMuJHNlbGVjdGFibGVVbC5mb2N1cygpOwogICAgICBtcy50cmlnZ2VyKCdjaGFuZ2UnKTsKICAgICAgaWYgKHR5cGVvZiB0aGlzLm9wdGlvbnMuYWZ0ZXJEZXNlbGVjdCA9PT0gJ2Z1bmN0aW9uJykgewogICAgICAgIHRoaXMub3B0aW9ucy5hZnRlckRlc2VsZWN0LmNhbGwodGhpcywgdmFsdWVzKTsKICAgICAgfQogICAgfSwKCiAgICBzYW5pdGl6ZTogZnVuY3Rpb24odmFsdWUpewogICAgICB2YXIgaGFzaCA9IDAsIGksIGNoYXJhY3RlcjsKICAgICAgaWYgKHZhbHVlLmxlbmd0aCA9PSAwKSByZXR1cm4gaGFzaDsKICAgICAgdmFyIGxzID0gMDsKICAgICAgZm9yIChpID0gMCwgbHMgPSB2YWx1ZS5sZW5ndGg7IGkgPCBsczsgaSsrKSB7CiAgICAgICAgY2hhcmFjdGVyICA9IHZhbHVlLmNoYXJDb2RlQXQoaSk7CiAgICAgICAgaGFzaCAgPSAoKGhhc2g8PDUpLWhhc2gpK2NoYXJhY3RlcjsKICAgICAgICBoYXNoIHw9IDA7IC8vIENvbnZlcnQgdG8gMzJiaXQgaW50ZWdlcgogICAgICB9CiAgICAgIHJldHVybiBoYXNoOwogICAgfQogIH07CgogIC8qIE1VTFRJU0VMRUNUIFBMVUdJTiBERUZJTklUSU9OCiAgICogPT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiAgJC5mbi5tdWx0aVNlbGVjdCA9IGZ1bmN0aW9uICgpIHsKICAgIHZhciBvcHRpb24gPSBhcmd1bWVudHNbMF0sCiAgICAgICAgYXJncyA9IGFyZ3VtZW50czsKCiAgICByZXR1cm4gdGhpcy5lYWNoKGZ1bmN0aW9uICgpIHsKICAgICAgdmFyICR0aGlzID0gJCh0aGlzKSwKICAgICAgICAgIGRhdGEgPSAkdGhpcy5kYXRhKCdtdWx0aXNlbGVjdCcpLAogICAgICAgICAgb3B0aW9ucyA9ICQuZXh0ZW5kKHt9LCAkLmZuLm11bHRpU2VsZWN0LmRlZmF1bHRzLCAkdGhpcy5kYXRhKCksIHR5cGVvZiBvcHRpb24gPT09ICdvYmplY3QnICYmIG9wdGlvbik7CgogICAgICBpZiAoIWRhdGEpeyAkdGhpcy5kYXRhKCdtdWx0aXNlbGVjdCcsIChkYXRhID0gbmV3IE11bHRpU2VsZWN0KHRoaXMsIG9wdGlvbnMpKSk7IH0KCiAgICAgIGlmICh0eXBlb2Ygb3B0aW9uID09PSAnc3RyaW5nJyl7CiAgICAgICAgZGF0YVtvcHRpb25dKGFyZ3NbMV0pOwogICAgICB9IGVsc2UgewogICAgICAgIGRhdGEuaW5pdCgpOwogICAgICB9CiAgICB9KTsKICB9OwoKICAkLmZuLm11bHRpU2VsZWN0LmRlZmF1bHRzID0gewogICAga2V5U2VsZWN0OiBbMzJdLAogICAgc2VsZWN0YWJsZU9wdGdyb3VwOiBmYWxzZSwKICAgIGRpc2FibGVkQ2xhc3MgOiAnZGlzYWJsZWQnLAogICAgZGJsQ2xpY2sgOiBmYWxzZSwKICAgIGtlZXBPcmRlcjogZmFsc2UsCiAgICBjc3NDbGFzczogJycKICB9OwoKICAkLmZuLm11bHRpU2VsZWN0LkNvbnN0cnVjdG9yID0gTXVsdGlTZWxlY3Q7CgogICQuZm4uaW5zZXJ0QXQgPSBmdW5jdGlvbihpbmRleCwgJHBhcmVudCkgewogICAgcmV0dXJuIHRoaXMuZWFjaChmdW5jdGlvbigpIHsKICAgICAgaWYgKGluZGV4ID09PSAwKSB7CiAgICAgICAgJHBhcmVudC5wcmVwZW5kKHRoaXMpOwogICAgICB9IGVsc2UgewogICAgICAgICRwYXJlbnQuY2hpbGRyZW4oKS5lcShpbmRleCAtIDEpLmFmdGVyKHRoaXMpOwogICAgICB9CiAgICB9KTsKfTsKCn0od2luZG93LmpRdWVyeSk7Cg==]]></data>
	</file>
	<file>
	  <filename>/lib/fielddefs/FEUMultiSelect/lisefd.FEUMultiSelect.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBMSVNFIC0gTGlzdCBJdCBTcGVjaWFsIEVkaXRpb24KIyBWZXJzaW9uIDEuMgojIEEgZm9yayBvZiBMaXN0STIKIyBtYWludGFpbmVkIGJ5IEZlcm5hbmRvIE1vcmdhZG8gQUtBIEpvIE1vcmcKIyBzaW5jZSAyMDE1CiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBPcmlnaW5hbCBBdXRob3I6IEJlbiBNYWxlbiwgPGJlbkBjb25jZXB0ZmFjdG9yeS5jb20uYXU+CiMgQ28tTWFpbnRhaW5lcjogU2ltb24gUmFkZm9yZCwgPHNpbW9uQGNvbmNlcHRmYWN0b3J5LmNvbS5hdT4KIyBXZWI6IHd3dy5jb25jZXB0ZmFjdG9yeS5jb20uYXUKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojCiMgTWFpbnRhaW5lciBzaW5jZSAyMDExIHVwIHRvIDIwMTQ6IEpvbmF0aGFuIFNjaG1pZCwgPGhpQGpvbmF0aGFuc2NobWlkLmRlPgojIFdlYjogd3d3LmpvbmF0aGFuc2NobWlkLmRlCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIwojIFNvbWUgd2Fja29zIHN0YXJ0ZWQgZGVzdHJveWluZyBzdHVmZiBzaW5jZSAyMDEyIGFuZCBzdG9wcGVkIGF0IDIwMTQ6CiMKIyBUYXBpbyBMw7Z5dHR5LCA8dGFwc2FAb3JhbmdlLW1lZGlhLmZpPgojIFdlYjogd3d3Lm9yYW5nZS1tZWRpYS5maQojCiMgR29yYW4gSWxpYywgPHVuaXF1M2VAZ21haWwuY29tPgojIFdlYjogd3d3LmljaC1tYWNoLWRhcy5hdAojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBMSVNFIGlzIGEgQ01TIE1hZGUgU2ltcGxlIG1vZHVsZSB0aGF0IGVuYWJsZXMgdGhlIHdlYiBkZXZlbG9wZXIgdG8gY3JlYXRlCiMgbXVsdGlwbGUgbGlzdHMgdGhyb3VnaG91dCBhIHNpdGUuIEl0IGNhbiBiZSBkdXBsaWNhdGVkIGFuZCBnaXZlbiBmcmllbmRseQojIG5hbWVzIGZvciBlYXNpZXIgY2xpZW50IG1haW50ZW5hbmNlLgojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgQkVHSU5fTElDRU5TRQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIExJU0UKIyBMSVNFIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgTElTRSBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBFTkRfTElDRU5TRQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpjbGFzcyBsaXNlZmRfRkVVTXVsdGlTZWxlY3QgZXh0ZW5kcyBMSVNFRmllbGRkZWZCYXNlCnsKICBwcml2YXRlICRfb3B0cyA9IGFycmF5KCk7CiAgCiAgcHVibGljIGZ1bmN0aW9uIF9fY29uc3RydWN0KCYkZGJfaW5mbykgCiAgeyAgIAogICAgcGFyZW50OjpfX2NvbnN0cnVjdCgkZGJfaW5mbyk7CiAgICAKICAgICR0aGlzLT5TZXRGcmllbmRseVR5cGUoICR0aGlzLT5Nb2RMYW5nKCdmaWVsZGRlZl8nIC4gJHRoaXMtPkdldFR5cGUoKSApICk7CiAgfQogICAgCiAgc3RhdGljIHB1YmxpYyBmdW5jdGlvbiBHZXRNb2R1bGVEZXBzKCkKICB7CiAgICAKICAgIHJldHVybiBhcnJheSgKICAgICAgICAgICAgICAgICAgJ0Zyb250RW5kVXNlcnMnID0+ICcxLjE4LjEnLAogICAgICAgICAgICAgICAgICAnQ0dFeHRlbnNpb25zJyA9PiAnMS4yOS4xJyAgICAvLz8/CiAgICAgICAgICAgICAgICApOwogIH0KICAKICBwdWJsaWMgZnVuY3Rpb24gR2V0SGVhZGVySFRNTCgpCiAgewogICAgJHRtcGwgPSAnJzsKICAgIGlmKCAkdGhpcy0+R2V0T3B0aW9uVmFsdWUoJ3R5cGUnLCAnTXVsdGlTZWxlY3QnKSA9PSAnTXVsdGlTZWxlY3QnICkKICAgIHsKICAgICAgICAkdG1wbCA9IDw8PEVPVAo8bGluayB0eXBlPSJ0ZXh0L2NzcyIgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJ7JHRoaXMtPkdldFVSTFBhdGgoKX0vanF1ZXJ5Lm11bHRpLXNlbGVjdC5jc3MiIC8+CjxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9InskdGhpcy0+R2V0VVJMUGF0aCgpfS9qcXVlcnkubXVsdGktc2VsZWN0LmpzIj48L3NjcmlwdD4KRU9UOwogICAgfQogICAgcmV0dXJuICR0bXBsOwogIH0KICAgIAogIC8vIGdldCBhdmFpbGFibGUgZ3JvdXBzIGZyb20gRkVVIG1vZHVsZSAKICBwdWJsaWMgZnVuY3Rpb24gR2V0RkVVR3JvdXBzKCkgCiAgeyAgIAogICAgJEZFVSA9IGNtc21zKCktPkdldE1vZHVsZUluc3RhbmNlKCdGcm9udEVuZFVzZXJzJyk7CiAgICAKICAgIGlmKGlzX29iamVjdCgkRkVVKSkKICAgIHsKICAgICAgJGdyb3VwcyA9ICRGRVUtPkdldEdyb3VwTGlzdEZ1bGwoKTsKICAgICAgIAogICAgICBpZigkZ3JvdXBzKQogICAgICB7CiAgICAgICAgJG9wdGlvbnMgPSBhcnJheSgpOwogICAgICAgIAogICAgICAgIGZvcmVhY2goJGdyb3VwcyBhcyAkb3B0aW9uKSAKICAgICAgICB7CiAgICAgICAgICAkb3B0aW9uc1skb3B0aW9uWydpZCddXSA9ICRvcHRpb25bJ2dyb3VwbmFtZSddOwogICAgICAgIH0KICAgICAgfQogICAgICAKICAgICAgcmV0dXJuICRvcHRpb25zOwogICAgfQogIH0KICAKICBwdWJsaWMgZnVuY3Rpb24gR2V0RmV1UHJvcGVydGllcygpCiAgewogICAgJEZFVSA9IGNtc21zKCktPkdldE1vZHVsZUluc3RhbmNlKCdGcm9udEVuZFVzZXJzJyk7CiAgICAkZmV1X3Byb3BzID0gJEZFVS0+R2V0UHJvcGVydHlEZWZucygpOwogICAgCiAgICAvLyByZW1vdmUgc2VsZnJlZyBwcm9wCiAgICBpZiggaXNzZXQoJGZldV9wcm9wc1snX19TRUxGUkVHJ10pICkgdW5zZXQoJGZldV9wcm9wc1snX19TRUxGUkVHJ10pOwogICAgCiAgICAkZmV1X29wdGlvbnMgPSBhcnJheSgpOwogICAgJGZldV9vcHRpb25zYiA9IGFycmF5KCk7CiAgICBmb3JlYWNoKCRmZXVfcHJvcHMgYXMgJG9uZSkkZmV1X29wdGlvbnNbICRvbmVbJ25hbWUnXSBdID0gJG9uZVsncHJvbXB0J107CiAgICBhc29ydCgkZmV1X29wdGlvbnMpOwogICAgJGZldV9vcHRpb25zYlstMV0gPSBsYW5nKCdub25lJyk7IAogICAgJGZldV9vcHRpb25zYlswXSA9ICRGRVUtPkxhbmcoJ3Byb21wdF91c2VybmFtZScpOwogICAgJGZldV9vcHRpb25zID0gYXJyYXlfbWVyZ2UoJGZldV9vcHRpb25zYiwgJGZldV9vcHRpb25zKTsKICAgIHJldHVybiAkZmV1X29wdGlvbnM7CiAgfSAKICAgICAKICBwdWJsaWMgZnVuY3Rpb24gR2V0T3B0aW9ucygpIAogIHsKICAgICR0aGlzLT5fb3B0c1sndHlwZSddID0gJHRoaXMtPkdldE9wdGlvblZhbHVlKCd0eXBlJywgJ011bHRpU2VsZWN0Jyk7CiAgICAkdGhpcy0+X29wdHNbJ3R5cGVzJ10gPSBhcnJheSgKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ011bHRpU2VsZWN0JyAgICAgICAgID0+ICR0aGlzLT5Nb2RMYW5nKCdmaWVsZGRlZl9NdWx0aVNlbGVjdCcpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnQ2hlY2tib3hHcm91cCcgICAgICAgPT4gJHRoaXMtPk1vZExhbmcoJ2ZpZWxkZGVmX0NoZWNrYm94R3JvdXAnKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ0pRdWVyeU11bHRpU2VsZWN0JyA9PiAkdGhpcy0+TW9kTGFuZygnZmllbGRkZWZfSlF1ZXJ5TXVsdGlTZWxlY3QnKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKTsKICAgIHJldHVybiAkdGhpcy0+X29wdHM7CiAgfQogICAgCiAgLy8gZ2V0IGxpc3Qgb2YgdXNlcnMgZnJvbSBGRVUgbW9kdWxlIGJhc2VkIG9uIHNlbGVjdGVkIGdyb3VwCiAgcHVibGljIGZ1bmN0aW9uIEdldEZFVVVzZXJMaXN0KCkgCiAgeyAgICAKICAgICRGRVUgPSBjbXNtcygpLT5HZXRNb2R1bGVJbnN0YW5jZSgnRnJvbnRFbmRVc2VycycpOwogICAgCiAgICBpZihpc19vYmplY3QoJEZFVSkpCiAgICB7ICAgIAogICAgICAvLyBHZXRVc2Vyc0luR3JvdXAoKSBpcyBkZXByZWNhdGVkIGJ1dCBHZXRGdWxsVXNlcnNJbkdyb3VwKCkgc2VlbXMgdG8gaGF2ZSBhIGJ1ZywgCiAgICAgIC8vIGNoYW5nZSB0aGlzIGFmdGVyIEZFVSBCUiAjODc1MyBodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnL2J1Zy92aWV3Lzg3NTMgaXMgY29uZmlybWVkIGFuZCBmaXhlZCAKICAgICAgJGdyb3VwcyA9ICBleHBsb2RlKCcsJywgJHRoaXMtPkdldE9wdGlvblZhbHVlKCdmZXVfb3B0aW9ucycpICk7CiAgICAgICRmZXVfcHJvcCA9ICR0aGlzLT5HZXRPcHRpb25WYWx1ZSgnZmV1X2ZpZWxkJyk7CiAgICAgICRmZXVfcHJvcDIgPSAkdGhpcy0+R2V0T3B0aW9uVmFsdWUoJ2ZldV9maWVsZDInKTsKICAgICAgJHVzZV91c2VybmFtZSA9ICR0aGlzLT5HZXRPcHRpb25WYWx1ZSgndXNlX3VzZXJuYW1lJyk7CiAgICAgICR1c2VfdWlkID0gJHRoaXMtPkdldE9wdGlvblZhbHVlKCd1c2VfdWlkJyk7CiAgICAgICRzZXBhcmF0b3IgPSAkdGhpcy0+R2V0T3B0aW9uVmFsdWUoJ3NlcGFyYXRvcicpOwogICAgICAkdXNlcnMgPSBhcnJheSgpOwogICAgICAKICAgICAgZm9yZWFjaCgkZ3JvdXBzIGFzICRncm91cCkKICAgICAgewogICAgICAgICR0bXB1c2VycyA9ICRGRVUtPkdldFVzZXJzSW5Hcm91cCgkZ3JvdXApOwogICAgICAgIGZvcmVhY2goJHRtcHVzZXJzIGFzICRvbmUpCiAgICAgICAgewogICAgICAgICAgaWYoIGFycmF5X2tleV9leGlzdHMoJG9uZVsnaWQnXSwgJHVzZXJzKSApIGNvbnRpbnVlOwogICAgICAgICAgCiAgICAgICAgICAkdWlkID0gKGJvb2wpJHVzZV91aWQgPyAnWycgLiAkb25lWydpZCddIC4gJ10gJyA6ICcnOyAKICAgICAgICAgICNub3cgbGV0cyBidWlsZCB0aGUgbXVsdGlzZWxlY3QKICAgICAgICAgIGlmKCR1c2VfdXNlcm5hbWUpCiAgICAgICAgICB7CiAgICAgICAgICAgICR1c2Vyc1skb25lWydpZCddXSA9ICR1aWQgLiAkb25lWyd1c2VybmFtZSddOwogICAgICAgICAgfQogICAgICAgICAgZWxzZQogICAgICAgICAgewogICAgICAgICAgICBpZiggJGZldV9wcm9wID09IE5VTEwgfHwgKGlzX251bWVyaWMoJGZldV9wcm9wKSAmJiAkZmV1X3Byb3AgPT0gLTEpICkKICAgICAgICAgICAgewogICAgICAgICAgICAgICR1c2Vyc1skb25lWydpZCddXSA9ICR1aWQgLiAkb25lWyd1c2VybmFtZSddOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGVsc2UKICAgICAgICAgICAgewogICAgICAgICAgICAgICR1c2Vyc1skb25lWydpZCddXSA9ICR1aWQ7CiAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgaWYoaXNfbnVtZXJpYygkZmV1X3Byb3ApICYmICRmZXVfcHJvcCA9PSAwKQogICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICR1c2Vyc1skb25lWydpZCddXSAuPSAkb25lWyd1c2VybmFtZSddOwogICAgICAgICAgICAgIH0KICAgICAgICAgICAgICBlbHNlCiAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgJHVzZXJzWyRvbmVbJ2lkJ11dIC49ICRGRVUtPkdldFVzZXJQcm9wZXJ0eUZ1bGwoJGZldV9wcm9wLCAkb25lWydpZCddKTsKICAgICAgICAgICAgICB9CiAgICAgCiAgICAgICAgICAgICAgaWYoIGlzX251bWVyaWMoJGZldV9wcm9wMikgJiYgJGZldV9wcm9wMiA9PSAwICYmICEoaXNfaW50KCRmZXVfcHJvcCkgJiYgJGZldV9wcm9wIDwgMSkgKQogICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICR1c2Vyc1skb25lWydpZCddXSAuPSAkc2VwYXJhdG9yIC4gJG9uZVsndXNlcm5hbWUnXTsKICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgZWxzZWlmKCAhKGlzX2ludCgkZmV1X3Byb3AyKSAmJiAkZmV1X3Byb3AyID09IC0xKSApCiAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgJHVzZXJzWyRvbmVbJ2lkJ11dIC49ICRzZXBhcmF0b3IgLiAkRkVVLT5HZXRVc2VyUHJvcGVydHlGdWxsKCRmZXVfcHJvcDIsICRvbmVbJ2lkJ10pOwogICAgICAgICAgICAgIH0gCiAgICAgICAgICAgIH0KICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgCiAgICAgIH0KICAgICAgCiAgICAgIGFzb3J0KCR1c2Vycyk7CiAgICAgIAogICAgICByZXR1cm4gJHVzZXJzOwogICAgfQogIH0KICAKICBwdWJsaWMgZnVuY3Rpb24gUmVuZGVyRm9yQWRtaW5MaXN0aW5nKCRpZCwgJHJldHVybmlkKQogIHsKICAgICR1c2VycyA9IChhcnJheSkkdGhpcy0+R2V0VmFsdWUoKTsKICAgICRzbWFydHkgPSBjbXNtcygpLT5HZXRTbWFydHkoKTsKICAgICRzbWFydHktPmFzc2lnbigndXNlcnMnLCAkdXNlcnMpOwogICAgcmV0dXJuIHBhcmVudDo6UmVuZGVyRm9yQWRtaW5MaXN0aW5nKCRpZCwgJHJldHVybmlkKTsKICB9Cn0vLyBlbmQgb2YgY2xhc3MKPz4=]]></data>
	</file>
	<file>
	  <filename>/lib/fielddefs/FEUMultiSelect/list.FEUMultiSelect.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[eyRmaWVsZGRlZi0+TW9kTGFuZygnZmllbGRkZWZfdXNlcnMnKX06IHskdXNlcnN8Y291bnR9]]></data>
	</file>
	<file>
	  <filename>/lib/fielddefs/FEUMultiSelect/output.FEUMultiSelect.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[eyRmaWVsZGRlZi5uYW1lfTogeyRmaWVsZGRlZi52YWx1ZX0=]]></data>
	</file>
	<file>
	  <filename>/lib/fielddefs/FEUSingleSelect</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/lib/fielddefs/FEUSingleSelect/admin.FEUSingleSelect.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[eyRvcHRzID0gJGZpZWxkZGVmLT5HZXRPcHRpb25zKCl9IAp7KiRmZXVfb3B0aW9ucyA9ICRmaWVsZGRlZi0+R2V0T3B0aW9uVmFsdWUoJ2ZldV9vcHRpb25zJykqfQp7KiRmZXVfb3B0aW9uc3xwcmludF9yOjEqfQp7KiRzZWxfZ3JvdXBzID0gZXhwbG9kZSgnLCcsICRmZXVfb3B0aW9ucykqfQp7JHNlbF9ncm91cHMgPSAkZmllbGRkZWYtPkdldE9wdGlvblZhbHVlKCdmZXVfb3B0aW9ucycpfQp7JGdyb3Vwc19vcHRzID0gJGZpZWxkZGVmLT5HZXRGRVVHcm91cHMoKX0KeyRkZWZzID0gJGZpZWxkZGVmLT5HZXRGZXVQcm9wZXJ0aWVzKCl9Cnskc2VsX2RlZiA9ICRmaWVsZGRlZi0+R2V0T3B0aW9uVmFsdWUoJ2ZldV9maWVsZCcpfQp7JHNlbF9kZWYyID0gJGZpZWxkZGVmLT5HZXRPcHRpb25WYWx1ZSgnZmV1X2ZpZWxkMicpfQo8ZmllbGRzZXQ+CiAgPGxlZ2VuZD57JGZpZWxkZGVmLT5Nb2RMYW5nKCdvcHRpb25zJyl9PC9sZWdlbmQ+CiAgPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KICAgIDxwIGNsYXNzPSJwYWdldGV4dCI+eyRmaWVsZGRlZi0+TW9kTGFuZygnZmllbGRkZWZfZmV1X29wdGlvbnMnKX06PC9wPgogICAgPHAgY2xhc3M9InBhZ2VpbnB1dCI+CiAgICAgICAgPHNlbGVjdCBuYW1lPSJ7JGFjdGlvbmlkfWN1c3RvbV9pbnB1dFtmZXVfb3B0aW9uc11bXX0iIHNpemU9InskZ3JvdXBzX29wdHN8Y291bnR9IiBtdWx0aXBsZT4gICAgICAgIAogICAgICAgICAge2h0bWxfb3B0aW9ucyBvcHRpb25zPSRncm91cHNfb3B0cyBzZWxlY3RlZD0kc2VsX2dyb3Vwc30KICAgICAgICA8L3NlbGVjdD4gIAogICAgPC9wPgogICAgPHAgY2xhc3M9InBhZ2V0ZXh0Ij48ZGl2IGNsYXNzPSJpbmZvcm1hdGlvbiI+eyRmaWVsZGRlZi0+TW9kTGFuZygnZmllbGRkZWZfZmV1X211bHRpc2VsZWN0X2hlbHAnKX08L2Rpdj48L3A+CiAgPC9kaXY+CiAgPGhyPiAKICA8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgogICAgPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JGZpZWxkZGVmLT5Nb2RMYW5nKCdmaWVsZGRlZl91c2VfdWlkJyl9OjwvcD4KICAgIDxwIGNsYXNzPSJwYWdlaW5wdXQiPgogICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0ieyRhY3Rpb25pZH1jdXN0b21faW5wdXRbdXNlX3VpZF0iIHZhbHVlPSIwIiAvPgogICAgPGlucHV0IHR5cGU9ImNoZWNrYm94IiBuYW1lPSJ7JGFjdGlvbmlkfWN1c3RvbV9pbnB1dFt1c2VfdWlkXSIgdmFsdWU9IjEie2lmICRmaWVsZGRlZi0+R2V0T3B0aW9uVmFsdWUoJ3VzZV91aWQnKX1jaGVja2VkPSJjaGVja2VkInsvaWZ9IC8+CiAgPC9wPgogIDxwIGNsYXNzPSJwYWdldGV4dCI+PGRpdiBjbGFzcz0iaW5mb3JtYXRpb24iPnskZmllbGRkZWYtPk1vZExhbmcoJ2ZpZWxkZGVmX3VzZV91aWRfaGVscCcpfTwvZGl2PjwvcD4KICA8L2Rpdj4KICA8aHI+CiAgPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KICAgIDxwIGNsYXNzPSJwYWdldGV4dCI+eyRmaWVsZGRlZi0+TW9kTGFuZygnZmllbGRkZWZfdXNlX3VzZXJuYW1lJyl9OjwvcD4KICAgIDxwIGNsYXNzPSJwYWdlaW5wdXQiPgogICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0ieyRhY3Rpb25pZH1jdXN0b21faW5wdXRbdXNlX3VzZXJuYW1lXSIgdmFsdWU9IjAiIC8+CiAgICA8aW5wdXQgdHlwZT0iY2hlY2tib3giIG5hbWU9InskYWN0aW9uaWR9Y3VzdG9tX2lucHV0W3VzZV91c2VybmFtZV0iIHZhbHVlPSIxIntpZiAkZmllbGRkZWYtPkdldE9wdGlvblZhbHVlKCd1c2VfdXNlcm5hbWUnKX1jaGVja2VkPSJjaGVja2VkInsvaWZ9IC8+CiAgPC9wPgogIDxwIGNsYXNzPSJwYWdldGV4dCI+PGRpdiBjbGFzcz0iaW5mb3JtYXRpb24iPnskZmllbGRkZWYtPk1vZExhbmcoJ2ZpZWxkZGVmX3VzZV91c2VybmFtZV9oZWxwJyl9PC9kaXY+PC9wPgogIDwvZGl2PgogIDxocj4gCiAgPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KICAgIDxwIGNsYXNzPSJwYWdldGV4dCI+eyRmaWVsZGRlZi0+TW9kTGFuZygnZmllbGRkZWZfZmV1X2ZpZWxkcycpfTo8L3A+CiAgICA8cCBjbGFzcz0icGFnZWlucHV0Ij4KICAgICAge2h0bWxfb3B0aW9ucyBuYW1lPSJ7JGFjdGlvbmlkfWN1c3RvbV9pbnB1dFtmZXVfZmllbGRdfSIgb3B0aW9ucz0kZGVmcyBzZWxlY3RlZD0kc2VsX2RlZn0KICAgIDwvcD4KICAgIDxwIGNsYXNzPSJwYWdldGV4dCI+PGRpdiBjbGFzcz0iaW5mb3JtYXRpb24iPnskZmllbGRkZWYtPk1vZExhbmcoJ2ZpZWxkZGVmX2ZldV9maWVsZHNfaGVscCcpfTwvZGl2PjwvcD4KICA8L2Rpdj4KICA8aHI+IAogIDxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CiAgICA8cCBjbGFzcz0icGFnZXRleHQiPnskZmllbGRkZWYtPk1vZExhbmcoJ2ZpZWxkZGVmX2ZldV9maWVsZHMyJyl9OjwvcD4KICAgIDxwIGNsYXNzPSJwYWdlaW5wdXQiPgogICAgICB7aHRtbF9vcHRpb25zIG5hbWU9InskYWN0aW9uaWR9Y3VzdG9tX2lucHV0W2ZldV9maWVsZDJdfSIgb3B0aW9ucz0kZGVmcyBzZWxlY3RlZD0kc2VsX2RlZjJ9CiAgICA8L3A+CiAgICA8cCBjbGFzcz0icGFnZXRleHQiPjxkaXYgY2xhc3M9ImluZm9ybWF0aW9uIj57JGZpZWxkZGVmLT5Nb2RMYW5nKCdmaWVsZGRlZl9mZXVfZmllbGRzX2hlbHAnKX08L2Rpdj48L3A+CiAgPC9kaXY+CiAgPGhyPiAKICA8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgoJICA8cCBjbGFzcz0icGFnZXRleHQiPnskZmllbGRkZWYtPk1vZExhbmcoJ2ZpZWxkZGVmX3NlcGFyYXRvcl9jaHInKX06PC9wPgoJICA8cCBjbGFzcz0icGFnZWlucHV0Ij4KICAgICAgPGlucHV0IHR5cGU9InRleHQiIG5hbWU9InskYWN0aW9uaWR9Y3VzdG9tX2lucHV0W3NlcGFyYXRvcl0iIHZhbHVlPSJ7JGZpZWxkZGVmLT5HZXRPcHRpb25WYWx1ZSgnc2VwYXJhdG9yJywgJyAnKX0iIC8+CgkgIDwvcD4KICAgIDxwIGNsYXNzPSJwYWdldGV4dCI+PGRpdiBjbGFzcz0iaW5mb3JtYXRpb24iPnskZmllbGRkZWYtPk1vZExhbmcoJ2ZpZWxkZGVmX3NlcGFyYXRvcl9jaHJfaGVscCcpfTwvZGl2PjwvcD4KICA8L2Rpdj4KICA8aHI+CiAgPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KICAgICAgPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JGZpZWxkZGVmLT5Nb2RMYW5nKCdmaWVsZGRlZl90eXBlJyl9OjwvcD4KICAgICAgPHAgY2xhc3M9InBhZ2VpbnB1dCI+CiAgICAgICAgPHNlbGVjdCBuYW1lPSJ7JGFjdGlvbmlkfWN1c3RvbV9pbnB1dFt0eXBlXSIgc3R5bGU9Im1heC13aWR0aDogOTglOyI+CiAgICAgICAgICB7aHRtbF9vcHRpb25zIG9wdGlvbnM9JG9wdHMudHlwZXMgc2VsZWN0ZWQ9JGZpZWxkZGVmLT5HZXRPcHRpb25WYWx1ZSgndHlwZScsICdNdWx0aVNlbGVjdCcpfQogICAgICAgIDwvc2VsZWN0PgogICAgICA8L3A+CiAgICAgIDxwIGNsYXNzPSJwYWdldGV4dCI+PGRpdiBjbGFzcz0iaW5mb3JtYXRpb24iPnskZmllbGRkZWYtPk1vZExhbmcoJ2ZpZWxkZGVmX3R5cGVfaGVscCcpfTwvZGl2PjwvcD4KICA8L2Rpdj4gCiAgCjwvZmllbGRzZXQ+]]></data>
	</file>
	<file>
	  <filename>/lib/fielddefs/FEUSingleSelect/help.FEUSingleSelect.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PGJ1dHRvbiBjbGFzcz0iYWNjb3JkaW9uIj48c3Ryb25nPnskZmllbGRkZWYtPkdldEZyaWVuZGx5VHlwZSgpfTwvc3Ryb25nPjwvYnV0dG9uPgoKPGRpdiBjbGFzcz0iYWNjcGFuZWwiPgoKCTxwIGNsYXNzPSJ3YXJuaW5nIj48Yj5Ob3RlOjwvYj4gVGhlIHVzZSBvZiB0aGlzIGZpZWxkIGRlZmluaXRpb24gZGVwZW5kcyBvbiB0aGUgcHJlc2VuY2Ugb2YgdGhlIEZyb250RW5kVXNlcnMgbW9kdWxlLjwvcD4KCgk8aDQ+V2hhdCBkb2VzIGl0IGRvPzwvaDQ+CgoJPHA+VGhpcyBmaWVsZCBkZWZpbml0aW9uIGNhbiBiZSB1c2VkIHRvIGFkZCBhIDxzdHJvbmc+RnJvbnRFbmRVc2VycyBTaW5nbGUgU2VsZWN0PC9zdHJvbmc+IGZpZWxkIHRvIGEgTElTRSBpdGVtLjwvcD4KCgk8cD5UT0RPPC9wPgoKCgk8aDQ+SG93IGRvIEkgdXNlIGl0PzwvaDQ+CgoJPHA+VE9ETzwvcD4KCgk8cD5UaGUgc2V0dGluZ3MgZm9yIHRoaXMgZmllbGQgYXJlOjwvcD4KCgk8dWw+CgkJPGxpPjxiPkZFVSBHcm91cHM8L2I+PC9saT4KCQk8bGk+PGI+UHJlcGVuZCBVc2VyIElEPC9iPjwvbGk+CgkJPGxpPjxiPlVzZSBVc2VybmFtZSBGaWVsZDwvYj48L2xpPgoJCTxsaT48Yj5TZWxlY3QgMXN0IEZFVSBGaWVsZDwvYj4KIAkJCTx1bD4KIAkJCQk8bGk+Tm9uZTwvbGk+CiAJCQkJPGxpPlVzZXJuYW1lPC9saT4KCQkJPC91bD4KCQk8L2xpPgoJCTxsaT48Yj5TZWxlY3QgMm5kIEZFVSBGaWVsZDwvYj4KIAkJCTx1bD4KIAkJCQk8bGk+Tm9uZTwvbGk+CiAJCQkJPGxpPlVzZXJuYW1lPC9saT4KCQkJPC91bD4KCQk8L2xpPgoJCTxsaT48Yj5TZXBhcmF0b3IgQ2hhcmFjdGVyPC9iPjwvbGk+CgkJPGxpPjxiPlR5cGU8L2I+CiAJCQk8dWw+CiAJCQkJPGxpPkRyb3Bkb3duPC9saT4KIAkJCQk8bGk+UmFkaW8gR3JvdXA8L2xpPgogCQkJCTxsaT5qUXVlcnkgTXVsdGlTZWxlY3Q8L2xpPgoJCQk8L3VsPgoJCTwvbGk+Cgk8L3VsPgoKPC9kaXY+]]></data>
	</file>
	<file>
	  <filename>/lib/fielddefs/FEUSingleSelect/images</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/lib/fielddefs/FEUSingleSelect/images/index.html</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PCEtLSBEVU1NWSBIVE1MIEZJTEUgLS0+]]></data>
	</file>
	<file>
	  <filename>/lib/fielddefs/FEUSingleSelect/images/switch.png</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[iVBORw0KGgoAAAANSUhEUgAAABUAAAAVCAYAAACpF6WWAAAB40lEQVR4AWIgG4wCAKvkAPJXFAXwGRnLrqVlj5kva7bDZ+Nv27ZtG7kpY3zZC7Pe2T13Nq/5OxQKhasqlcrzX6FyudyRy+VArVZn/xtUKpU6isUi5PN50Ol03d/5sz0Wi73JZDLch55Op7lUKsUlk0kukUjgDAgtFAqAGhuNxuu/gu7ED41GA+r1Ou21Wg2q1SpUKhUolUpAhEA8HodwOAzBYBACgQBIJJLBN6S1tTWGBODiV1AKQ83wo9PpBIvFAlarFex2O9273W5wOBxvrl69uvgFkM/nnyIgzmAwpMh2q0KhKBJfdbCLRKK8QCBIkzdpnLETn95CmMfjQfir8+fPH/8aOIkOR40o9DfK9PS0yOfzocbPjhw5cuiLS6KFEB2NfkKTiTmPlUolS3KQ1Wg0rFarZYm2LBHGkmDgfActmZ+fl5hMpof79u3b/QVQLBZbSGRpWmSzWXgvGWw2G/oIXC4XNQ873qFPcUafMwyzh5Rd38u1McIQjJDvBIACvV4v+P1+GmWcEfoz12xaX19PIshsNlOgXq9/u7fA3HILGAS3gEEAxsBccwsYDLeAwQCir4LSMaEwZ0xMTKwAhtdfkKHAIJlOtWwXERERBYyE32BDqQn8/f3tcnNzg8k2YBQAAOLgc5CbVSwBAAAAAElFTkSuQmCC]]></data>
	</file>
	<file>
	  <filename>/lib/fielddefs/FEUSingleSelect/index.html</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PCEtLSBEVU1NWSBIVE1MIEZJTEUgLS0+]]></data>
	</file>
	<file>
	  <filename>/lib/fielddefs/FEUSingleSelect/input.FEUSingleSelect.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[eyR0eXBlID0gJGZpZWxkZGVmLT5HZXRPcHRpb25WYWx1ZSgndHlwZScpfQp7JG9wdHMgPSAkZmllbGRkZWYtPkdldEZFVVVzZXJMaXN0KCl9Cnskc2VsID0gJGZpZWxkZGVmLT5HZXRWYWx1ZSgpfQo8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgoJPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JGZpZWxkZGVmLT5HZXROYW1lKCl9e2lmICRmaWVsZGRlZi0+SXNSZXF1aXJlZCgpfSp7L2lmfTo8L3A+Cgk8cCBjbGFzcz0icGFnZWlucHV0Ij4KCQl7aWYgJGZpZWxkZGVmLT5HZXREZXNjKCl9KHskZmllbGRkZWYtPkdldERlc2MoKX0pPGJyIC8+ey9pZn0KICAgIHtpZiAkdHlwZSA9PSAnRHJvcGRvd24nfSAgICAgICAgCiAgICAgIHtodG1sX29wdGlvbnMgbmFtZT0ieyRhY3Rpb25pZH1jdXN0b21maWVsZFt7JGZpZWxkZGVmLT5HZXRJZCgpfV0iIG9wdGlvbnM9JG9wdHMgc2VsZWN0ZWQ9JHNlbH0KICAgIHsvaWZ9ICAgIAogICAge2lmICR0eXBlID09ICdSYWRpb0dyb3VwJ30KICAgICAge2h0bWxfcmFkaW9zIG5hbWU9InskYWN0aW9uaWR9Y3VzdG9tZmllbGRbeyRmaWVsZGRlZi0+R2V0SWQoKX1dIiBvcHRpb25zPSRvcHRzIHNlbGVjdGVkPSRzZWwgc2VwYXJhdG9yPSc8YnIgLz4nfQogICAgey9pZn0gICAgICAgICAgCiAgICB7aWYgJHR5cGUgPT0gJ0pRdWVyeU11bHRpU2VsZWN0J30KICAgICAgPGRpdiBjbGFzcz0ibXMtY29udGFpbmVyIj4KICAgICAgICA8c2VsZWN0IGlkPSJ7JGFjdGlvbmlkfWN1c3RvbWZpZWxkeyRmaWVsZGRlZi0+R2V0SWQoKX0iIG5hbWU9InskYWN0aW9uaWR9Y3VzdG9tZmllbGRbeyRmaWVsZGRlZi0+R2V0SWQoKX1dW119IiBzaXplPSJ7JG9wdHN8Y291bnR9IiBtdWx0aXBsZT4gCiAgICAgICAgICB7aHRtbF9vcHRpb25zIG9wdGlvbnM9JG9wdHMgc2VsZWN0ZWQ9JHNlbH0KICAgICAgICA8L3NlbGVjdD4KICAgICAgPC9kaXY+IAogICAgICA8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+CiAgICAgICAgICAgIC8vIGRpcnR5IGhhY2sgdG8gYXZvaWQgcmVjdXJzaW9uLi4uCiAgICAgICAgICAgIHdpbmRvdy5tc19kZXMgPSB0cnVlOwogICAgICAgICAgICAkKCcjeyRhY3Rpb25pZH1jdXN0b21maWVsZHskZmllbGRkZWYtPkdldElkKCl9JykubXVsdGlTZWxlY3QoewogICAgICAgICAgICAgICAgIGFmdGVyU2VsZWN0OiBmdW5jdGlvbih2YWx1ZXMpewogICAgICAgICAgICAgICAgICAgaWYod2luZG93Lm1zX2Rlcyl7CiAgICAgICAgICAgICAgICAgICAgICAgICAkKCcjeyRhY3Rpb25pZH1jdXN0b21maWVsZHskZmllbGRkZWYtPkdldElkKCl9JykubXVsdGlTZWxlY3QoJ2Rlc2VsZWN0X2FsbCcpOwogICAgICAgICAgICAgICAgICAgICAgICAgd2luZG93Lm1zX2RlcyA9IGZhbHNlOwogICAgICAgICAgICAgICAgICAgICAgICAgJCgnI3skYWN0aW9uaWR9Y3VzdG9tZmllbGR7JGZpZWxkZGVmLT5HZXRJZCgpfScpLm11bHRpU2VsZWN0KCdzZWxlY3QnLCB2YWx1ZXMpOwogICAgICAgICAgICAgICAgICAgICAgICB9ZWxzZXsKICAgICAgICAgICAgICAgICAgICAgICAgICB3aW5kb3cubXNfZGVzID0gdHJ1ZTsKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgIH0gICAgCiAgICAgICAgICAgIH0pOwogICAgICA8L3NjcmlwdD4KICAgIHsvaWZ9Cgk8L3A+CjwvZGl2Pg==]]></data>
	</file>
	<file>
	  <filename>/lib/fielddefs/FEUSingleSelect/jquery.multi-select.css</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[Lm1zLWNvbnRhaW5lcnsNCiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQgdXJsKCcuLi9GRVVNdWx0aVNlbGVjdC9pbWFnZXMvc3dpdGNoLnBuZycpIG5vLXJlcGVhdCA1MCUgNTAlOw0KICB3aWR0aDogNDcwcHg7DQp9DQoNCi5tcy1jb250YWluZXI6YWZ0ZXJ7DQogIGNvbnRlbnQ6ICIuIjsNCiAgZGlzcGxheTogYmxvY2s7DQogIGhlaWdodDogMDsNCiAgbGluZS1oZWlnaHQ6IDA7DQogIGZvbnQtc2l6ZTogMDsNCiAgY2xlYXI6IGJvdGg7DQogIG1pbi1oZWlnaHQ6IDA7DQogIHZpc2liaWxpdHk6IGhpZGRlbjsNCn0NCg0KLm1zLWNvbnRhaW5lciAubXMtc2VsZWN0YWJsZSwgLm1zLWNvbnRhaW5lciAubXMtc2VsZWN0aW9uew0KICBiYWNrZ3JvdW5kOiAjZmZmOw0KICBjb2xvcjogIzU1NTU1NTsNCiAgZmxvYXQ6IGxlZnQ7DQogIHdpZHRoOiA0NSU7DQp9DQoubXMtY29udGFpbmVyIC5tcy1zZWxlY3Rpb257DQogIGZsb2F0OiByaWdodDsNCn0NCg0KLm1zLWNvbnRhaW5lciAubXMtbGlzdHsNCiAgLXdlYmtpdC1ib3gtc2hhZG93OiBpbnNldCAwIDFweCAxcHggcmdiYSgwLCAwLCAwLCAwLjA3NSk7DQogIC1tb3otYm94LXNoYWRvdzogaW5zZXQgMCAxcHggMXB4IHJnYmEoMCwgMCwgMCwgMC4wNzUpOw0KICBib3gtc2hhZG93OiBpbnNldCAwIDFweCAxcHggcmdiYSgwLCAwLCAwLCAwLjA3NSk7DQogIC13ZWJraXQtdHJhbnNpdGlvbjogYm9yZGVyIGxpbmVhciAwLjJzLCBib3gtc2hhZG93IGxpbmVhciAwLjJzOw0KICAtbW96LXRyYW5zaXRpb246IGJvcmRlciBsaW5lYXIgMC4ycywgYm94LXNoYWRvdyBsaW5lYXIgMC4yczsNCiAgLW1zLXRyYW5zaXRpb246IGJvcmRlciBsaW5lYXIgMC4ycywgYm94LXNoYWRvdyBsaW5lYXIgMC4yczsNCiAgLW8tdHJhbnNpdGlvbjogYm9yZGVyIGxpbmVhciAwLjJzLCBib3gtc2hhZG93IGxpbmVhciAwLjJzOw0KICB0cmFuc2l0aW9uOiBib3JkZXIgbGluZWFyIDAuMnMsIGJveC1zaGFkb3cgbGluZWFyIDAuMnM7DQogIGJvcmRlcjogMXB4IHNvbGlkICNjY2M7DQogIC13ZWJraXQtYm9yZGVyLXJhZGl1czogM3B4Ow0KICAtbW96LWJvcmRlci1yYWRpdXM6IDNweDsNCiAgYm9yZGVyLXJhZGl1czogM3B4Ow0KICBwb3NpdGlvbjogcmVsYXRpdmU7DQogIGhlaWdodDogMjAwcHg7DQogIHBhZGRpbmc6IDA7DQogIG92ZXJmbG93LXk6IGF1dG87DQp9DQoNCi5tcy1jb250YWluZXIgLm1zLWxpc3QubXMtZm9jdXN7DQogIGJvcmRlci1jb2xvcjogcmdiYSg4MiwgMTY4LCAyMzYsIDAuOCk7DQogIC13ZWJraXQtYm94LXNoYWRvdzogaW5zZXQgMCAxcHggMXB4IHJnYmEoMCwgMCwgMCwgMC4wNzUpLCAwIDAgOHB4IHJnYmEoODIsIDE2OCwgMjM2LCAwLjYpOw0KICAtbW96LWJveC1zaGFkb3c6IGluc2V0IDAgMXB4IDFweCByZ2JhKDAsIDAsIDAsIDAuMDc1KSwgMCAwIDhweCByZ2JhKDgyLCAxNjgsIDIzNiwgMC42KTsNCiAgYm94LXNoYWRvdzogaW5zZXQgMCAxcHggMXB4IHJnYmEoMCwgMCwgMCwgMC4wNzUpLCAwIDAgOHB4IHJnYmEoODIsIDE2OCwgMjM2LCAwLjYpOw0KICBvdXRsaW5lOiAwOw0KICBvdXRsaW5lOiB0aGluIGRvdHRlZCBcOTsNCn0NCg0KLm1zLWNvbnRhaW5lciB1bHsNCiAgbWFyZ2luOiAwOw0KICBsaXN0LXN0eWxlLXR5cGU6IG5vbmU7DQogIHBhZGRpbmc6IDA7DQp9DQoNCi5tcy1jb250YWluZXIgLm1zLW9wdGdyb3VwLWNvbnRhaW5lcnsNCiAgd2lkdGg6IDEwMCU7DQp9DQoNCi5tcy1jb250YWluZXIgLm1zLW9wdGdyb3VwLWxhYmVsew0KICBtYXJnaW46IDA7DQogIHBhZGRpbmc6IDVweCAwcHggMHB4IDVweDsNCiAgY3Vyc29yOiBwb2ludGVyOw0KICBjb2xvcjogIzk5OTsNCn0NCg0KLm1zLWNvbnRhaW5lciAubXMtc2VsZWN0YWJsZSBsaS5tcy1lbGVtLXNlbGVjdGFibGUsDQoubXMtY29udGFpbmVyIC5tcy1zZWxlY3Rpb24gbGkubXMtZWxlbS1zZWxlY3Rpb257DQogIGJvcmRlci1ib3R0b206IDFweCAjZWVlIHNvbGlkOw0KICBwYWRkaW5nOiAycHggMTBweDsNCiAgY29sb3I6ICM1NTU7DQogIGZvbnQtc2l6ZTogMTRweDsNCn0NCg0KLm1zLWNvbnRhaW5lciAubXMtc2VsZWN0YWJsZSBsaS5tcy1ob3ZlciwNCi5tcy1jb250YWluZXIgLm1zLXNlbGVjdGlvbiBsaS5tcy1ob3ZlcnsNCiAgY3Vyc29yOiBwb2ludGVyOw0KICBjb2xvcjogI2ZmZjsNCiAgdGV4dC1kZWNvcmF0aW9uOiBub25lOw0KICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDhjOw0KfQ0KDQoubXMtY29udGFpbmVyIC5tcy1zZWxlY3RhYmxlIGxpLmRpc2FibGVkLA0KLm1zLWNvbnRhaW5lciAubXMtc2VsZWN0aW9uIGxpLmRpc2FibGVkew0KICBiYWNrZ3JvdW5kLWNvbG9yOiAjZWVlOw0KICBjb2xvcjogI2FhYTsNCiAgY3Vyc29yOiB0ZXh0Ow0KfQ==]]></data>
	</file>
	<file>
	  <filename>/lib/fielddefs/FEUSingleSelect/jquery.multi-select.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[LyoKKiBNdWx0aVNlbGVjdCB2MC45LjEyCiogQ29weXJpZ2h0IChjKSAyMDEyIExvdWlzIEN1bnkKKgoqIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlLiBJdCBjb21lcyB3aXRob3V0IGFueSB3YXJyYW50eSwgdG8KKiB0aGUgZXh0ZW50IHBlcm1pdHRlZCBieSBhcHBsaWNhYmxlIGxhdy4gWW91IGNhbiByZWRpc3RyaWJ1dGUgaXQKKiBhbmQvb3IgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRG8gV2hhdCBUaGUgRnVjayBZb3UgV2FudAoqIFRvIFB1YmxpYyBMaWNlbnNlLCBWZXJzaW9uIDIsIGFzIHB1Ymxpc2hlZCBieSBTYW0gSG9jZXZhci4gU2VlCiogaHR0cDovL3NhbS56b3kub3JnL3d0ZnBsL0NPUFlJTkcgZm9yIG1vcmUgZGV0YWlscy4KKi8KCiFmdW5jdGlvbiAoJCkgewoKICAidXNlIHN0cmljdCI7CgoKIC8qIE1VTFRJU0VMRUNUIENMQVNTIERFRklOSVRJT04KICAqID09PT09PT09PT09PT09PT09PT09PT0gKi8KCiAgdmFyIE11bHRpU2VsZWN0ID0gZnVuY3Rpb24gKGVsZW1lbnQsIG9wdGlvbnMpIHsKICAgIHRoaXMub3B0aW9ucyA9IG9wdGlvbnM7CiAgICB0aGlzLiRlbGVtZW50ID0gJChlbGVtZW50KTsKICAgIHRoaXMuJGNvbnRhaW5lciA9ICQoJzxkaXYvPicsIHsgJ2NsYXNzJzogIm1zLWNvbnRhaW5lciIgfSk7CiAgICB0aGlzLiRzZWxlY3RhYmxlQ29udGFpbmVyID0gJCgnPGRpdi8+JywgeyAnY2xhc3MnOiAnbXMtc2VsZWN0YWJsZScgfSk7CiAgICB0aGlzLiRzZWxlY3Rpb25Db250YWluZXIgPSAkKCc8ZGl2Lz4nLCB7ICdjbGFzcyc6ICdtcy1zZWxlY3Rpb24nIH0pOwogICAgdGhpcy4kc2VsZWN0YWJsZVVsID0gJCgnPHVsLz4nLCB7ICdjbGFzcyc6ICJtcy1saXN0IiwgJ3RhYmluZGV4JyA6ICctMScgfSk7CiAgICB0aGlzLiRzZWxlY3Rpb25VbCA9ICQoJzx1bC8+JywgeyAnY2xhc3MnOiAibXMtbGlzdCIsICd0YWJpbmRleCcgOiAnLTEnIH0pOwogICAgdGhpcy5zY3JvbGxUbyA9IDA7CiAgICB0aGlzLmVsZW1zU2VsZWN0b3IgPSAnbGk6dmlzaWJsZTpub3QoLm1zLW9wdGdyb3VwLWxhYmVsLC5tcy1vcHRncm91cC1jb250YWluZXIsLicrb3B0aW9ucy5kaXNhYmxlZENsYXNzKycpJzsKICB9OwoKICBNdWx0aVNlbGVjdC5wcm90b3R5cGUgPSB7CiAgICBjb25zdHJ1Y3RvcjogTXVsdGlTZWxlY3QsCgogICAgaW5pdDogZnVuY3Rpb24oKXsKICAgICAgdmFyIHRoYXQgPSB0aGlzLAogICAgICAgICAgbXMgPSB0aGlzLiRlbGVtZW50OwoKICAgICAgaWYgKG1zLm5leHQoJy5tcy1jb250YWluZXInKS5sZW5ndGggPT09IDApewogICAgICAgIG1zLmNzcyh7IHBvc2l0aW9uOiAnYWJzb2x1dGUnLCBsZWZ0OiAnLTk5OTlweCcgfSk7CiAgICAgICAgbXMuYXR0cignaWQnLCBtcy5hdHRyKCdpZCcpID8gbXMuYXR0cignaWQnKSA6IE1hdGguY2VpbChNYXRoLnJhbmRvbSgpKjEwMDApKydtdWx0aXNlbGVjdCcpOwogICAgICAgIHRoaXMuJGNvbnRhaW5lci5hdHRyKCdpZCcsICdtcy0nK21zLmF0dHIoJ2lkJykpOwogICAgICAgIHRoaXMuJGNvbnRhaW5lci5hZGRDbGFzcyh0aGF0Lm9wdGlvbnMuY3NzQ2xhc3MpOwogICAgICAgIG1zLmZpbmQoJ29wdGlvbicpLmVhY2goZnVuY3Rpb24oKXsKICAgICAgICAgIHRoYXQuZ2VuZXJhdGVMaXNGcm9tT3B0aW9uKHRoaXMpOwogICAgICAgIH0pOwoKICAgICAgICB0aGlzLiRzZWxlY3Rpb25VbC5maW5kKCcubXMtb3B0Z3JvdXAtbGFiZWwnKS5oaWRlKCk7CgogICAgICAgIGlmICh0aGF0Lm9wdGlvbnMuc2VsZWN0YWJsZUhlYWRlcil7CiAgICAgICAgICB0aGF0LiRzZWxlY3RhYmxlQ29udGFpbmVyLmFwcGVuZCh0aGF0Lm9wdGlvbnMuc2VsZWN0YWJsZUhlYWRlcik7CiAgICAgICAgfQogICAgICAgIHRoYXQuJHNlbGVjdGFibGVDb250YWluZXIuYXBwZW5kKHRoYXQuJHNlbGVjdGFibGVVbCk7CiAgICAgICAgaWYgKHRoYXQub3B0aW9ucy5zZWxlY3RhYmxlRm9vdGVyKXsKICAgICAgICAgIHRoYXQuJHNlbGVjdGFibGVDb250YWluZXIuYXBwZW5kKHRoYXQub3B0aW9ucy5zZWxlY3RhYmxlRm9vdGVyKTsKICAgICAgICB9CgogICAgICAgIGlmICh0aGF0Lm9wdGlvbnMuc2VsZWN0aW9uSGVhZGVyKXsKICAgICAgICAgIHRoYXQuJHNlbGVjdGlvbkNvbnRhaW5lci5hcHBlbmQodGhhdC5vcHRpb25zLnNlbGVjdGlvbkhlYWRlcik7CiAgICAgICAgfQogICAgICAgIHRoYXQuJHNlbGVjdGlvbkNvbnRhaW5lci5hcHBlbmQodGhhdC4kc2VsZWN0aW9uVWwpOwogICAgICAgIGlmICh0aGF0Lm9wdGlvbnMuc2VsZWN0aW9uRm9vdGVyKXsKICAgICAgICAgIHRoYXQuJHNlbGVjdGlvbkNvbnRhaW5lci5hcHBlbmQodGhhdC5vcHRpb25zLnNlbGVjdGlvbkZvb3Rlcik7CiAgICAgICAgfQoKICAgICAgICB0aGF0LiRjb250YWluZXIuYXBwZW5kKHRoYXQuJHNlbGVjdGFibGVDb250YWluZXIpOwogICAgICAgIHRoYXQuJGNvbnRhaW5lci5hcHBlbmQodGhhdC4kc2VsZWN0aW9uQ29udGFpbmVyKTsKICAgICAgICBtcy5hZnRlcih0aGF0LiRjb250YWluZXIpOwoKICAgICAgICB0aGF0LmFjdGl2ZU1vdXNlKHRoYXQuJHNlbGVjdGFibGVVbCk7CiAgICAgICAgdGhhdC5hY3RpdmVLZXlib2FyZCh0aGF0LiRzZWxlY3RhYmxlVWwpOwoKICAgICAgICB2YXIgYWN0aW9uID0gdGhhdC5vcHRpb25zLmRibENsaWNrID8gJ2RibGNsaWNrJyA6ICdjbGljayc7CgogICAgICAgIHRoYXQuJHNlbGVjdGFibGVVbC5vbihhY3Rpb24sICcubXMtZWxlbS1zZWxlY3RhYmxlJywgZnVuY3Rpb24oKXsKICAgICAgICAgIHRoYXQuc2VsZWN0KCQodGhpcykuZGF0YSgnbXMtdmFsdWUnKSk7CiAgICAgICAgfSk7CiAgICAgICAgdGhhdC4kc2VsZWN0aW9uVWwub24oYWN0aW9uLCAnLm1zLWVsZW0tc2VsZWN0aW9uJywgZnVuY3Rpb24oKXsKICAgICAgICAgIHRoYXQuZGVzZWxlY3QoJCh0aGlzKS5kYXRhKCdtcy12YWx1ZScpKTsKICAgICAgICB9KTsKCiAgICAgICAgdGhhdC5hY3RpdmVNb3VzZSh0aGF0LiRzZWxlY3Rpb25VbCk7CiAgICAgICAgdGhhdC5hY3RpdmVLZXlib2FyZCh0aGF0LiRzZWxlY3Rpb25VbCk7CgogICAgICAgIG1zLm9uKCdmb2N1cycsIGZ1bmN0aW9uKCl7CiAgICAgICAgICB0aGF0LiRzZWxlY3RhYmxlVWwuZm9jdXMoKTsKICAgICAgICB9KTsKICAgICAgfQoKICAgICAgdmFyIHNlbGVjdGVkVmFsdWVzID0gbXMuZmluZCgnb3B0aW9uOnNlbGVjdGVkJykubWFwKGZ1bmN0aW9uKCl7IHJldHVybiAkKHRoaXMpLnZhbCgpOyB9KS5nZXQoKTsKICAgICAgdGhhdC5zZWxlY3Qoc2VsZWN0ZWRWYWx1ZXMsICdpbml0Jyk7CgogICAgICBpZiAodHlwZW9mIHRoYXQub3B0aW9ucy5hZnRlckluaXQgPT09ICdmdW5jdGlvbicpIHsKICAgICAgICB0aGF0Lm9wdGlvbnMuYWZ0ZXJJbml0LmNhbGwodGhpcywgdGhpcy4kY29udGFpbmVyKTsKICAgICAgfQogICAgfSwKCiAgICAnZ2VuZXJhdGVMaXNGcm9tT3B0aW9uJyA6IGZ1bmN0aW9uKG9wdGlvbiwgaW5kZXgsICRjb250YWluZXIpewogICAgICB2YXIgdGhhdCA9IHRoaXMsCiAgICAgICAgICBtcyA9IHRoYXQuJGVsZW1lbnQsCiAgICAgICAgICBhdHRyaWJ1dGVzID0gIiIsCiAgICAgICAgICAkb3B0aW9uID0gJChvcHRpb24pOwoKICAgICAgZm9yICh2YXIgY3B0ID0gMDsgY3B0IDwgb3B0aW9uLmF0dHJpYnV0ZXMubGVuZ3RoOyBjcHQrKyl7CiAgICAgICAgdmFyIGF0dHIgPSBvcHRpb24uYXR0cmlidXRlc1tjcHRdOwoKICAgICAgICBpZihhdHRyLm5hbWUgIT09ICd2YWx1ZScgJiYgYXR0ci5uYW1lICE9PSAnZGlzYWJsZWQnKXsKICAgICAgICAgIGF0dHJpYnV0ZXMgKz0gYXR0ci5uYW1lKyc9IicrYXR0ci52YWx1ZSsnIiAnOwogICAgICAgIH0KICAgICAgfQogICAgICB2YXIgc2VsZWN0YWJsZUxpID0gJCgnPGxpICcrYXR0cmlidXRlcysnPjxzcGFuPicrdGhhdC5lc2NhcGVIVE1MKCRvcHRpb24udGV4dCgpKSsnPC9zcGFuPjwvbGk+JyksCiAgICAgICAgICBzZWxlY3RlZExpID0gc2VsZWN0YWJsZUxpLmNsb25lKCksCiAgICAgICAgICB2YWx1ZSA9ICRvcHRpb24udmFsKCksCiAgICAgICAgICBlbGVtZW50SWQgPSB0aGF0LnNhbml0aXplKHZhbHVlKTsKCiAgICAgIHNlbGVjdGFibGVMaQogICAgICAgIC5kYXRhKCdtcy12YWx1ZScsIHZhbHVlKQogICAgICAgIC5hZGRDbGFzcygnbXMtZWxlbS1zZWxlY3RhYmxlJykKICAgICAgICAuYXR0cignaWQnLCBlbGVtZW50SWQrJy1zZWxlY3RhYmxlJyk7CgogICAgICBzZWxlY3RlZExpCiAgICAgICAgLmRhdGEoJ21zLXZhbHVlJywgdmFsdWUpCiAgICAgICAgLmFkZENsYXNzKCdtcy1lbGVtLXNlbGVjdGlvbicpCiAgICAgICAgLmF0dHIoJ2lkJywgZWxlbWVudElkKyctc2VsZWN0aW9uJykKICAgICAgICAuaGlkZSgpOwoKICAgICAgaWYgKCRvcHRpb24ucHJvcCgnZGlzYWJsZWQnKSB8fCBtcy5wcm9wKCdkaXNhYmxlZCcpKXsKICAgICAgICBzZWxlY3RlZExpLmFkZENsYXNzKHRoYXQub3B0aW9ucy5kaXNhYmxlZENsYXNzKTsKICAgICAgICBzZWxlY3RhYmxlTGkuYWRkQ2xhc3ModGhhdC5vcHRpb25zLmRpc2FibGVkQ2xhc3MpOwogICAgICB9CgogICAgICB2YXIgJG9wdGdyb3VwID0gJG9wdGlvbi5wYXJlbnQoJ29wdGdyb3VwJyk7CgogICAgICBpZiAoJG9wdGdyb3VwLmxlbmd0aCA+IDApewogICAgICAgIHZhciBvcHRncm91cExhYmVsID0gJG9wdGdyb3VwLmF0dHIoJ2xhYmVsJyksCiAgICAgICAgICAgIG9wdGdyb3VwSWQgPSB0aGF0LnNhbml0aXplKG9wdGdyb3VwTGFiZWwpLAogICAgICAgICAgICAkc2VsZWN0YWJsZU9wdGdyb3VwID0gdGhhdC4kc2VsZWN0YWJsZVVsLmZpbmQoJyNvcHRncm91cC1zZWxlY3RhYmxlLScrb3B0Z3JvdXBJZCksCiAgICAgICAgICAgICRzZWxlY3Rpb25PcHRncm91cCA9IHRoYXQuJHNlbGVjdGlvblVsLmZpbmQoJyNvcHRncm91cC1zZWxlY3Rpb24tJytvcHRncm91cElkKTsKCiAgICAgICAgaWYgKCRzZWxlY3RhYmxlT3B0Z3JvdXAubGVuZ3RoID09PSAwKXsKICAgICAgICAgIHZhciBvcHRncm91cENvbnRhaW5lclRwbCA9ICc8bGkgY2xhc3M9Im1zLW9wdGdyb3VwLWNvbnRhaW5lciI+PC9saT4nLAogICAgICAgICAgICAgIG9wdGdyb3VwVHBsID0gJzx1bCBjbGFzcz0ibXMtb3B0Z3JvdXAiPjxsaSBjbGFzcz0ibXMtb3B0Z3JvdXAtbGFiZWwiPjxzcGFuPicrb3B0Z3JvdXBMYWJlbCsnPC9zcGFuPjwvbGk+PC91bD4nOwoKICAgICAgICAgICRzZWxlY3RhYmxlT3B0Z3JvdXAgPSAkKG9wdGdyb3VwQ29udGFpbmVyVHBsKTsKICAgICAgICAgICRzZWxlY3Rpb25PcHRncm91cCA9ICQob3B0Z3JvdXBDb250YWluZXJUcGwpOwogICAgICAgICAgJHNlbGVjdGFibGVPcHRncm91cC5hdHRyKCdpZCcsICdvcHRncm91cC1zZWxlY3RhYmxlLScrb3B0Z3JvdXBJZCk7CiAgICAgICAgICAkc2VsZWN0aW9uT3B0Z3JvdXAuYXR0cignaWQnLCAnb3B0Z3JvdXAtc2VsZWN0aW9uLScrb3B0Z3JvdXBJZCk7CiAgICAgICAgICAkc2VsZWN0YWJsZU9wdGdyb3VwLmFwcGVuZCgkKG9wdGdyb3VwVHBsKSk7CiAgICAgICAgICAkc2VsZWN0aW9uT3B0Z3JvdXAuYXBwZW5kKCQob3B0Z3JvdXBUcGwpKTsKICAgICAgICAgIGlmICh0aGF0Lm9wdGlvbnMuc2VsZWN0YWJsZU9wdGdyb3VwKXsKICAgICAgICAgICAgJHNlbGVjdGFibGVPcHRncm91cC5maW5kKCcubXMtb3B0Z3JvdXAtbGFiZWwnKS5vbignY2xpY2snLCBmdW5jdGlvbigpewogICAgICAgICAgICAgIHZhciB2YWx1ZXMgPSAkb3B0Z3JvdXAuY2hpbGRyZW4oJzpub3QoOnNlbGVjdGVkLCA6ZGlzYWJsZWQpJykubWFwKGZ1bmN0aW9uKCl7IHJldHVybiAkKHRoaXMpLnZhbCgpO30pLmdldCgpOwogICAgICAgICAgICAgIHRoYXQuc2VsZWN0KHZhbHVlcyk7CiAgICAgICAgICAgIH0pOwogICAgICAgICAgICAkc2VsZWN0aW9uT3B0Z3JvdXAuZmluZCgnLm1zLW9wdGdyb3VwLWxhYmVsJykub24oJ2NsaWNrJywgZnVuY3Rpb24oKXsKICAgICAgICAgICAgICB2YXIgdmFsdWVzID0gJG9wdGdyb3VwLmNoaWxkcmVuKCc6c2VsZWN0ZWQ6bm90KDpkaXNhYmxlZCknKS5tYXAoZnVuY3Rpb24oKXsgcmV0dXJuICQodGhpcykudmFsKCk7fSkuZ2V0KCk7CiAgICAgICAgICAgICAgdGhhdC5kZXNlbGVjdCh2YWx1ZXMpOwogICAgICAgICAgICB9KTsKICAgICAgICAgIH0KICAgICAgICAgIHRoYXQuJHNlbGVjdGFibGVVbC5hcHBlbmQoJHNlbGVjdGFibGVPcHRncm91cCk7CiAgICAgICAgICB0aGF0LiRzZWxlY3Rpb25VbC5hcHBlbmQoJHNlbGVjdGlvbk9wdGdyb3VwKTsKICAgICAgICB9CiAgICAgICAgaW5kZXggPSBpbmRleCA9PT0gdW5kZWZpbmVkID8gJHNlbGVjdGFibGVPcHRncm91cC5maW5kKCd1bCcpLmNoaWxkcmVuKCkubGVuZ3RoIDogaW5kZXggKyAxOwogICAgICAgIHNlbGVjdGFibGVMaS5pbnNlcnRBdChpbmRleCwgJHNlbGVjdGFibGVPcHRncm91cC5jaGlsZHJlbigpKTsKICAgICAgICBzZWxlY3RlZExpLmluc2VydEF0KGluZGV4LCAkc2VsZWN0aW9uT3B0Z3JvdXAuY2hpbGRyZW4oKSk7CiAgICAgIH0gZWxzZSB7CiAgICAgICAgaW5kZXggPSBpbmRleCA9PT0gdW5kZWZpbmVkID8gdGhhdC4kc2VsZWN0YWJsZVVsLmNoaWxkcmVuKCkubGVuZ3RoIDogaW5kZXg7CgogICAgICAgIHNlbGVjdGFibGVMaS5pbnNlcnRBdChpbmRleCwgdGhhdC4kc2VsZWN0YWJsZVVsKTsKICAgICAgICBzZWxlY3RlZExpLmluc2VydEF0KGluZGV4LCB0aGF0LiRzZWxlY3Rpb25VbCk7CiAgICAgIH0KICAgIH0sCgogICAgJ2FkZE9wdGlvbicgOiBmdW5jdGlvbihvcHRpb25zKXsKICAgICAgdmFyIHRoYXQgPSB0aGlzOwoKICAgICAgaWYgKG9wdGlvbnMudmFsdWUgIT09IHVuZGVmaW5lZCAmJiBvcHRpb25zLnZhbHVlICE9PSBudWxsKXsKICAgICAgICBvcHRpb25zID0gW29wdGlvbnNdOwogICAgICB9IAogICAgICAkLmVhY2gob3B0aW9ucywgZnVuY3Rpb24oaW5kZXgsIG9wdGlvbil7CiAgICAgICAgaWYgKG9wdGlvbi52YWx1ZSAhPT0gdW5kZWZpbmVkICYmIG9wdGlvbi52YWx1ZSAhPT0gbnVsbCAmJgogICAgICAgICAgICB0aGF0LiRlbGVtZW50LmZpbmQoIm9wdGlvblt2YWx1ZT0nIitvcHRpb24udmFsdWUrIiddIikubGVuZ3RoID09PSAwKXsKICAgICAgICAgIHZhciAkb3B0aW9uID0gJCgnPG9wdGlvbiB2YWx1ZT0iJytvcHRpb24udmFsdWUrJyI+JytvcHRpb24udGV4dCsnPC9vcHRpb24+JyksCiAgICAgICAgICAgICAgaW5kZXggPSBwYXJzZUludCgodHlwZW9mIG9wdGlvbi5pbmRleCA9PT0gJ3VuZGVmaW5lZCcgPyB0aGF0LiRlbGVtZW50LmNoaWxkcmVuKCkubGVuZ3RoIDogb3B0aW9uLmluZGV4KSksCiAgICAgICAgICAgICAgJGNvbnRhaW5lciA9IG9wdGlvbi5uZXN0ZWQgPT09IHVuZGVmaW5lZCA/IHRoYXQuJGVsZW1lbnQgOiAkKCJvcHRncm91cFtsYWJlbD0nIitvcHRpb24ubmVzdGVkKyInXSIpOwoKICAgICAgICAgICRvcHRpb24uaW5zZXJ0QXQoaW5kZXgsICRjb250YWluZXIpOwogICAgICAgICAgdGhhdC5nZW5lcmF0ZUxpc0Zyb21PcHRpb24oJG9wdGlvbi5nZXQoMCksIGluZGV4LCBvcHRpb24ubmVzdGVkKTsKICAgICAgICB9CiAgICAgIH0pOwogICAgfSwKCiAgICAnZXNjYXBlSFRNTCcgOiBmdW5jdGlvbih0ZXh0KXsKICAgICAgcmV0dXJuICQoIjxkaXY+IikudGV4dCh0ZXh0KS5odG1sKCk7CiAgICB9LAoKICAgICdhY3RpdmVLZXlib2FyZCcgOiBmdW5jdGlvbigkbGlzdCl7CiAgICAgIHZhciB0aGF0ID0gdGhpczsKCiAgICAgICRsaXN0Lm9uKCdmb2N1cycsIGZ1bmN0aW9uKCl7CiAgICAgICAgJCh0aGlzKS5hZGRDbGFzcygnbXMtZm9jdXMnKTsKICAgICAgfSkKICAgICAgLm9uKCdibHVyJywgZnVuY3Rpb24oKXsKICAgICAgICAkKHRoaXMpLnJlbW92ZUNsYXNzKCdtcy1mb2N1cycpOwogICAgICB9KQogICAgICAub24oJ2tleWRvd24nLCBmdW5jdGlvbihlKXsKICAgICAgICBzd2l0Y2ggKGUud2hpY2gpIHsKICAgICAgICAgIGNhc2UgNDA6CiAgICAgICAgICBjYXNlIDM4OgogICAgICAgICAgICBlLnByZXZlbnREZWZhdWx0KCk7CiAgICAgICAgICAgIGUuc3RvcFByb3BhZ2F0aW9uKCk7CiAgICAgICAgICAgIHRoYXQubW92ZUhpZ2hsaWdodCgkKHRoaXMpLCAoZS53aGljaCA9PT0gMzgpID8gLTEgOiAxKTsKICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgY2FzZSAzNzoKICAgICAgICAgIGNhc2UgMzk6CiAgICAgICAgICAgIGUucHJldmVudERlZmF1bHQoKTsKICAgICAgICAgICAgZS5zdG9wUHJvcGFnYXRpb24oKTsKICAgICAgICAgICAgdGhhdC5zd2l0Y2hMaXN0KCRsaXN0KTsKICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgY2FzZSA5OgogICAgICAgICAgICBpZih0aGF0LiRlbGVtZW50LmlzKCdbdGFiaW5kZXhdJykpewogICAgICAgICAgICAgIGUucHJldmVudERlZmF1bHQoKTsKICAgICAgICAgICAgICB2YXIgdGFiaW5kZXggPSBwYXJzZUludCh0aGF0LiRlbGVtZW50LmF0dHIoJ3RhYmluZGV4JyksIDEwKTsKICAgICAgICAgICAgICB0YWJpbmRleCA9IChlLnNoaWZ0S2V5KSA/IHRhYmluZGV4LTEgOiB0YWJpbmRleCsxOwogICAgICAgICAgICAgICQoJ1t0YWJpbmRleD0iJysodGFiaW5kZXgpKyciXScpLmZvY3VzKCk7CiAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICB9ZWxzZXsKICAgICAgICAgICAgICBpZihlLnNoaWZ0S2V5KXsKICAgICAgICAgICAgICAgIHRoYXQuJGVsZW1lbnQudHJpZ2dlcignZm9jdXMnKTsKICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgaWYoJC5pbkFycmF5KGUud2hpY2gsIHRoYXQub3B0aW9ucy5rZXlTZWxlY3QpID4gLTEpewogICAgICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpOwogICAgICAgICAgZS5zdG9wUHJvcGFnYXRpb24oKTsKICAgICAgICAgIHRoYXQuc2VsZWN0SGlnaGxpZ2h0ZWQoJGxpc3QpOwogICAgICAgICAgcmV0dXJuOwogICAgICAgIH0KICAgICAgfSk7CiAgICB9LAoKICAgICdtb3ZlSGlnaGxpZ2h0JzogZnVuY3Rpb24oJGxpc3QsIGRpcmVjdGlvbil7CiAgICAgIHZhciAkZWxlbXMgPSAkbGlzdC5maW5kKHRoaXMuZWxlbXNTZWxlY3RvciksCiAgICAgICAgICAkY3VyckVsZW0gPSAkZWxlbXMuZmlsdGVyKCcubXMtaG92ZXInKSwKICAgICAgICAgICRuZXh0RWxlbSA9IG51bGwsCiAgICAgICAgICBlbGVtSGVpZ2h0ID0gJGVsZW1zLmZpcnN0KCkub3V0ZXJIZWlnaHQoKSwKICAgICAgICAgIGNvbnRhaW5lckhlaWdodCA9ICRsaXN0LmhlaWdodCgpLAogICAgICAgICAgY29udGFpbmVyU2VsZWN0b3IgPSAnIycrdGhpcy4kY29udGFpbmVyLnByb3AoJ2lkJyk7CgogICAgICAkZWxlbXMucmVtb3ZlQ2xhc3MoJ21zLWhvdmVyJyk7CiAgICAgIGlmIChkaXJlY3Rpb24gPT09IDEpeyAvLyBET1dOCgogICAgICAgICRuZXh0RWxlbSA9ICRjdXJyRWxlbS5uZXh0QWxsKHRoaXMuZWxlbXNTZWxlY3RvcikuZmlyc3QoKTsKICAgICAgICBpZiAoJG5leHRFbGVtLmxlbmd0aCA9PT0gMCl7CiAgICAgICAgICB2YXIgJG9wdGdyb3VwVWwgPSAkY3VyckVsZW0ucGFyZW50KCk7CgogICAgICAgICAgaWYgKCRvcHRncm91cFVsLmhhc0NsYXNzKCdtcy1vcHRncm91cCcpKXsKICAgICAgICAgICAgdmFyICRvcHRncm91cExpID0gJG9wdGdyb3VwVWwucGFyZW50KCksCiAgICAgICAgICAgICAgICAkbmV4dE9wdGdyb3VwTGkgPSAkb3B0Z3JvdXBMaS5uZXh0KCc6dmlzaWJsZScpOwoKICAgICAgICAgICAgaWYgKCRuZXh0T3B0Z3JvdXBMaS5sZW5ndGggPiAwKXsKICAgICAgICAgICAgICAkbmV4dEVsZW0gPSAkbmV4dE9wdGdyb3VwTGkuZmluZCh0aGlzLmVsZW1zU2VsZWN0b3IpLmZpcnN0KCk7CiAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgJG5leHRFbGVtID0gJGVsZW1zLmZpcnN0KCk7CiAgICAgICAgICAgIH0KICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICRuZXh0RWxlbSA9ICRlbGVtcy5maXJzdCgpOwogICAgICAgICAgfQogICAgICAgIH0KICAgICAgfSBlbHNlIGlmIChkaXJlY3Rpb24gPT09IC0xKXsgLy8gVVAKCiAgICAgICAgJG5leHRFbGVtID0gJGN1cnJFbGVtLnByZXZBbGwodGhpcy5lbGVtc1NlbGVjdG9yKS5maXJzdCgpOwogICAgICAgIGlmICgkbmV4dEVsZW0ubGVuZ3RoID09PSAwKXsKICAgICAgICAgIHZhciAkb3B0Z3JvdXBVbCA9ICRjdXJyRWxlbS5wYXJlbnQoKTsKCiAgICAgICAgICBpZiAoJG9wdGdyb3VwVWwuaGFzQ2xhc3MoJ21zLW9wdGdyb3VwJykpewogICAgICAgICAgICB2YXIgJG9wdGdyb3VwTGkgPSAkb3B0Z3JvdXBVbC5wYXJlbnQoKSwKICAgICAgICAgICAgICAgICRwcmV2T3B0Z3JvdXBMaSA9ICRvcHRncm91cExpLnByZXYoJzp2aXNpYmxlJyk7CgogICAgICAgICAgICBpZiAoJHByZXZPcHRncm91cExpLmxlbmd0aCA+IDApewogICAgICAgICAgICAgICRuZXh0RWxlbSA9ICRwcmV2T3B0Z3JvdXBMaS5maW5kKHRoaXMuZWxlbXNTZWxlY3RvcikubGFzdCgpOwogICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICRuZXh0RWxlbSA9ICRlbGVtcy5sYXN0KCk7CiAgICAgICAgICAgIH0KICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICRuZXh0RWxlbSA9ICRlbGVtcy5sYXN0KCk7CiAgICAgICAgICB9CiAgICAgICAgfQogICAgICB9CiAgICAgIGlmICgkbmV4dEVsZW0ubGVuZ3RoID4gMCl7CiAgICAgICAgJG5leHRFbGVtLmFkZENsYXNzKCdtcy1ob3ZlcicpOwogICAgICAgIHZhciBzY3JvbGxUbyA9ICRsaXN0LnNjcm9sbFRvcCgpICsgJG5leHRFbGVtLnBvc2l0aW9uKCkudG9wIC0gCiAgICAgICAgICAgICAgICAgICAgICAgY29udGFpbmVySGVpZ2h0IC8gMiArIGVsZW1IZWlnaHQgLyAyOwoKICAgICAgICAkbGlzdC5zY3JvbGxUb3Aoc2Nyb2xsVG8pOwogICAgICB9CiAgICB9LAoKICAgICdzZWxlY3RIaWdobGlnaHRlZCcgOiBmdW5jdGlvbigkbGlzdCl7CiAgICAgIHZhciAkZWxlbXMgPSAkbGlzdC5maW5kKHRoaXMuZWxlbXNTZWxlY3RvciksCiAgICAgICAgICAkaGlnaGxpZ2h0ZWRFbGVtID0gJGVsZW1zLmZpbHRlcignLm1zLWhvdmVyJykuZmlyc3QoKTsKCiAgICAgIGlmICgkaGlnaGxpZ2h0ZWRFbGVtLmxlbmd0aCA+IDApewogICAgICAgIGlmICgkbGlzdC5wYXJlbnQoKS5oYXNDbGFzcygnbXMtc2VsZWN0YWJsZScpKXsKICAgICAgICAgIHRoaXMuc2VsZWN0KCRoaWdobGlnaHRlZEVsZW0uZGF0YSgnbXMtdmFsdWUnKSk7CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgIHRoaXMuZGVzZWxlY3QoJGhpZ2hsaWdodGVkRWxlbS5kYXRhKCdtcy12YWx1ZScpKTsKICAgICAgICB9CiAgICAgICAgJGVsZW1zLnJlbW92ZUNsYXNzKCdtcy1ob3ZlcicpOwogICAgICB9CiAgICB9LAoKICAgICdzd2l0Y2hMaXN0JyA6IGZ1bmN0aW9uKCRsaXN0KXsKICAgICAgJGxpc3QuYmx1cigpOwogICAgICB0aGlzLiRjb250YWluZXIuZmluZCh0aGlzLmVsZW1zU2VsZWN0b3IpLnJlbW92ZUNsYXNzKCdtcy1ob3ZlcicpOwogICAgICBpZiAoJGxpc3QucGFyZW50KCkuaGFzQ2xhc3MoJ21zLXNlbGVjdGFibGUnKSl7CiAgICAgICAgdGhpcy4kc2VsZWN0aW9uVWwuZm9jdXMoKTsKICAgICAgfSBlbHNlIHsKICAgICAgICB0aGlzLiRzZWxlY3RhYmxlVWwuZm9jdXMoKTsKICAgICAgfQogICAgfSwKCiAgICAnYWN0aXZlTW91c2UnIDogZnVuY3Rpb24oJGxpc3QpewogICAgICB2YXIgdGhhdCA9IHRoaXM7CgogICAgICB0aGlzLiRjb250YWluZXIub24oJ21vdXNlZW50ZXInLCB0aGF0LmVsZW1zU2VsZWN0b3IsIGZ1bmN0aW9uKCl7CiAgICAgICAgJCh0aGlzKS5wYXJlbnRzKCcubXMtY29udGFpbmVyJykuZmluZCh0aGF0LmVsZW1zU2VsZWN0b3IpLnJlbW92ZUNsYXNzKCdtcy1ob3ZlcicpOwogICAgICAgICQodGhpcykuYWRkQ2xhc3MoJ21zLWhvdmVyJyk7CiAgICAgIH0pOwoKICAgICAgdGhpcy4kY29udGFpbmVyLm9uKCdtb3VzZWxlYXZlJywgdGhhdC5lbGVtc1NlbGVjdG9yLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgJCh0aGlzKS5wYXJlbnRzKCcubXMtY29udGFpbmVyJykuZmluZCh0aGF0LmVsZW1zU2VsZWN0b3IpLnJlbW92ZUNsYXNzKCdtcy1ob3ZlcicpOwogICAgICB9KTsKICAgIH0sCgogICAgJ3JlZnJlc2gnIDogZnVuY3Rpb24oKSB7CiAgICAgIHRoaXMuZGVzdHJveSgpOwogICAgICB0aGlzLiRlbGVtZW50Lm11bHRpU2VsZWN0KHRoaXMub3B0aW9ucyk7CiAgICB9LAoKICAgICdkZXN0cm95JyA6IGZ1bmN0aW9uKCl7CiAgICAgICQoIiNtcy0iK3RoaXMuJGVsZW1lbnQuYXR0cigiaWQiKSkucmVtb3ZlKCk7CiAgICAgIHRoaXMuJGVsZW1lbnQub2ZmKCdmb2N1cycpOwogICAgICB0aGlzLiRlbGVtZW50LmNzcygncG9zaXRpb24nLCAnJykuY3NzKCdsZWZ0JywgJycpOwogICAgICB0aGlzLiRlbGVtZW50LnJlbW92ZURhdGEoJ211bHRpc2VsZWN0Jyk7CiAgICB9LAoKICAgICdzZWxlY3QnIDogZnVuY3Rpb24odmFsdWUsIG1ldGhvZCl7CiAgICAgIGlmICh0eXBlb2YgdmFsdWUgPT09ICdzdHJpbmcnKXsgdmFsdWUgPSBbdmFsdWVdOyB9CgogICAgICB2YXIgdGhhdCA9IHRoaXMsCiAgICAgICAgICBtcyA9IHRoaXMuJGVsZW1lbnQsCiAgICAgICAgICBtc0lkcyA9ICQubWFwKHZhbHVlLCBmdW5jdGlvbih2YWwpeyByZXR1cm4odGhhdC5zYW5pdGl6ZSh2YWwpKTsgfSksCiAgICAgICAgICBzZWxlY3RhYmxlcyA9IHRoaXMuJHNlbGVjdGFibGVVbC5maW5kKCcjJyArIG1zSWRzLmpvaW4oJy1zZWxlY3RhYmxlLCAjJykrJy1zZWxlY3RhYmxlJykuZmlsdGVyKCc6bm90KC4nK3RoYXQub3B0aW9ucy5kaXNhYmxlZENsYXNzKycpJyksCiAgICAgICAgICBzZWxlY3Rpb25zID0gdGhpcy4kc2VsZWN0aW9uVWwuZmluZCgnIycgKyBtc0lkcy5qb2luKCctc2VsZWN0aW9uLCAjJykgKyAnLXNlbGVjdGlvbicpLmZpbHRlcignOm5vdCguJyt0aGF0Lm9wdGlvbnMuZGlzYWJsZWRDbGFzcysnKScpLAogICAgICAgICAgb3B0aW9ucyA9IG1zLmZpbmQoJ29wdGlvbjpub3QoOmRpc2FibGVkKScpLmZpbHRlcihmdW5jdGlvbigpeyByZXR1cm4oJC5pbkFycmF5KHRoaXMudmFsdWUsIHZhbHVlKSA+IC0xKTsgfSk7CgogICAgICBpZiAobWV0aG9kID09PSAnaW5pdCcpewogICAgICAgIHNlbGVjdGFibGVzID0gdGhpcy4kc2VsZWN0YWJsZVVsLmZpbmQoJyMnICsgbXNJZHMuam9pbignLXNlbGVjdGFibGUsICMnKSsnLXNlbGVjdGFibGUnKSwKICAgICAgICBzZWxlY3Rpb25zID0gdGhpcy4kc2VsZWN0aW9uVWwuZmluZCgnIycgKyBtc0lkcy5qb2luKCctc2VsZWN0aW9uLCAjJykgKyAnLXNlbGVjdGlvbicpOwogICAgICB9CgogICAgICBpZiAoc2VsZWN0YWJsZXMubGVuZ3RoID4gMCl7CiAgICAgICAgc2VsZWN0YWJsZXMuYWRkQ2xhc3MoJ21zLXNlbGVjdGVkJykuaGlkZSgpOwogICAgICAgIHNlbGVjdGlvbnMuYWRkQ2xhc3MoJ21zLXNlbGVjdGVkJykuc2hvdygpOwoKICAgICAgICBvcHRpb25zLnByb3AoJ3NlbGVjdGVkJywgdHJ1ZSk7CgogICAgICAgIHRoYXQuJGNvbnRhaW5lci5maW5kKHRoYXQuZWxlbXNTZWxlY3RvcikucmVtb3ZlQ2xhc3MoJ21zLWhvdmVyJyk7CgogICAgICAgIHZhciBzZWxlY3RhYmxlT3B0Z3JvdXBzID0gdGhhdC4kc2VsZWN0YWJsZVVsLmNoaWxkcmVuKCcubXMtb3B0Z3JvdXAtY29udGFpbmVyJyk7CiAgICAgICAgaWYgKHNlbGVjdGFibGVPcHRncm91cHMubGVuZ3RoID4gMCl7CiAgICAgICAgICBzZWxlY3RhYmxlT3B0Z3JvdXBzLmVhY2goZnVuY3Rpb24oKXsKICAgICAgICAgICAgdmFyIHNlbGVjdGFibGVzTGkgPSAkKHRoaXMpLmZpbmQoJy5tcy1lbGVtLXNlbGVjdGFibGUnKTsKICAgICAgICAgICAgaWYgKHNlbGVjdGFibGVzTGkubGVuZ3RoID09PSBzZWxlY3RhYmxlc0xpLmZpbHRlcignLm1zLXNlbGVjdGVkJykubGVuZ3RoKXsKICAgICAgICAgICAgICAkKHRoaXMpLmZpbmQoJy5tcy1vcHRncm91cC1sYWJlbCcpLmhpZGUoKTsKICAgICAgICAgICAgfQogICAgICAgICAgfSk7CgogICAgICAgICAgdmFyIHNlbGVjdGlvbk9wdGdyb3VwcyA9IHRoYXQuJHNlbGVjdGlvblVsLmNoaWxkcmVuKCcubXMtb3B0Z3JvdXAtY29udGFpbmVyJyk7CiAgICAgICAgICBzZWxlY3Rpb25PcHRncm91cHMuZWFjaChmdW5jdGlvbigpewogICAgICAgICAgICB2YXIgc2VsZWN0aW9uc0xpID0gJCh0aGlzKS5maW5kKCcubXMtZWxlbS1zZWxlY3Rpb24nKTsKICAgICAgICAgICAgaWYgKHNlbGVjdGlvbnNMaS5maWx0ZXIoJy5tcy1zZWxlY3RlZCcpLmxlbmd0aCA+IDApewogICAgICAgICAgICAgICQodGhpcykuZmluZCgnLm1zLW9wdGdyb3VwLWxhYmVsJykuc2hvdygpOwogICAgICAgICAgICB9CiAgICAgICAgICB9KTsKICAgICAgICB9IGVsc2UgewogICAgICAgICAgaWYgKHRoYXQub3B0aW9ucy5rZWVwT3JkZXIgJiYgbWV0aG9kICE9PSAnaW5pdCcpewogICAgICAgICAgICB2YXIgc2VsZWN0aW9uTGlMYXN0ID0gdGhhdC4kc2VsZWN0aW9uVWwuZmluZCgnLm1zLXNlbGVjdGVkJyk7CiAgICAgICAgICAgIGlmKChzZWxlY3Rpb25MaUxhc3QubGVuZ3RoID4gMSkgJiYgKHNlbGVjdGlvbkxpTGFzdC5sYXN0KCkuZ2V0KDApICE9IHNlbGVjdGlvbnMuZ2V0KDApKSkgewogICAgICAgICAgICAgIHNlbGVjdGlvbnMuaW5zZXJ0QWZ0ZXIoc2VsZWN0aW9uTGlMYXN0Lmxhc3QoKSk7CiAgICAgICAgICAgIH0KICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgaWYgKG1ldGhvZCAhPT0gJ2luaXQnKXsKICAgICAgICAgIG1zLnRyaWdnZXIoJ2NoYW5nZScpOwogICAgICAgICAgaWYgKHR5cGVvZiB0aGF0Lm9wdGlvbnMuYWZ0ZXJTZWxlY3QgPT09ICdmdW5jdGlvbicpIHsKICAgICAgICAgICAgdGhhdC5vcHRpb25zLmFmdGVyU2VsZWN0LmNhbGwodGhpcywgdmFsdWUpOwogICAgICAgICAgfQogICAgICAgIH0KICAgICAgfQogICAgfSwKCiAgICAnZGVzZWxlY3QnIDogZnVuY3Rpb24odmFsdWUpewogICAgICBpZiAodHlwZW9mIHZhbHVlID09PSAnc3RyaW5nJyl7IHZhbHVlID0gW3ZhbHVlXTsgfQoKICAgICAgdmFyIHRoYXQgPSB0aGlzLAogICAgICAgICAgbXMgPSB0aGlzLiRlbGVtZW50LAogICAgICAgICAgbXNJZHMgPSAkLm1hcCh2YWx1ZSwgZnVuY3Rpb24odmFsKXsgcmV0dXJuKHRoYXQuc2FuaXRpemUodmFsKSk7IH0pLAogICAgICAgICAgc2VsZWN0YWJsZXMgPSB0aGlzLiRzZWxlY3RhYmxlVWwuZmluZCgnIycgKyBtc0lkcy5qb2luKCctc2VsZWN0YWJsZSwgIycpKyctc2VsZWN0YWJsZScpLAogICAgICAgICAgc2VsZWN0aW9ucyA9IHRoaXMuJHNlbGVjdGlvblVsLmZpbmQoJyMnICsgbXNJZHMuam9pbignLXNlbGVjdGlvbiwgIycpKyctc2VsZWN0aW9uJykuZmlsdGVyKCcubXMtc2VsZWN0ZWQnKS5maWx0ZXIoJzpub3QoLicrdGhhdC5vcHRpb25zLmRpc2FibGVkQ2xhc3MrJyknKSwKICAgICAgICAgIG9wdGlvbnMgPSBtcy5maW5kKCdvcHRpb24nKS5maWx0ZXIoZnVuY3Rpb24oKXsgcmV0dXJuKCQuaW5BcnJheSh0aGlzLnZhbHVlLCB2YWx1ZSkgPiAtMSk7IH0pOwoKICAgICAgaWYgKHNlbGVjdGlvbnMubGVuZ3RoID4gMCl7CiAgICAgICAgc2VsZWN0YWJsZXMucmVtb3ZlQ2xhc3MoJ21zLXNlbGVjdGVkJykuc2hvdygpOwogICAgICAgIHNlbGVjdGlvbnMucmVtb3ZlQ2xhc3MoJ21zLXNlbGVjdGVkJykuaGlkZSgpOwogICAgICAgIG9wdGlvbnMucHJvcCgnc2VsZWN0ZWQnLCBmYWxzZSk7CgogICAgICAgIHRoYXQuJGNvbnRhaW5lci5maW5kKHRoYXQuZWxlbXNTZWxlY3RvcikucmVtb3ZlQ2xhc3MoJ21zLWhvdmVyJyk7CgogICAgICAgIHZhciBzZWxlY3RhYmxlT3B0Z3JvdXBzID0gdGhhdC4kc2VsZWN0YWJsZVVsLmNoaWxkcmVuKCcubXMtb3B0Z3JvdXAtY29udGFpbmVyJyk7CiAgICAgICAgaWYgKHNlbGVjdGFibGVPcHRncm91cHMubGVuZ3RoID4gMCl7CiAgICAgICAgICBzZWxlY3RhYmxlT3B0Z3JvdXBzLmVhY2goZnVuY3Rpb24oKXsKICAgICAgICAgICAgdmFyIHNlbGVjdGFibGVzTGkgPSAkKHRoaXMpLmZpbmQoJy5tcy1lbGVtLXNlbGVjdGFibGUnKTsKICAgICAgICAgICAgaWYgKHNlbGVjdGFibGVzTGkuZmlsdGVyKCc6bm90KC5tcy1zZWxlY3RlZCknKS5sZW5ndGggPiAwKXsKICAgICAgICAgICAgICAkKHRoaXMpLmZpbmQoJy5tcy1vcHRncm91cC1sYWJlbCcpLnNob3coKTsKICAgICAgICAgICAgfQogICAgICAgICAgfSk7CgogICAgICAgICAgdmFyIHNlbGVjdGlvbk9wdGdyb3VwcyA9IHRoYXQuJHNlbGVjdGlvblVsLmNoaWxkcmVuKCcubXMtb3B0Z3JvdXAtY29udGFpbmVyJyk7CiAgICAgICAgICBzZWxlY3Rpb25PcHRncm91cHMuZWFjaChmdW5jdGlvbigpewogICAgICAgICAgICB2YXIgc2VsZWN0aW9uc0xpID0gJCh0aGlzKS5maW5kKCcubXMtZWxlbS1zZWxlY3Rpb24nKTsKICAgICAgICAgICAgaWYgKHNlbGVjdGlvbnNMaS5maWx0ZXIoJy5tcy1zZWxlY3RlZCcpLmxlbmd0aCA9PT0gMCl7CiAgICAgICAgICAgICAgJCh0aGlzKS5maW5kKCcubXMtb3B0Z3JvdXAtbGFiZWwnKS5oaWRlKCk7CiAgICAgICAgICAgIH0KICAgICAgICAgIH0pOwogICAgICAgIH0KICAgICAgICBtcy50cmlnZ2VyKCdjaGFuZ2UnKTsKICAgICAgICBpZiAodHlwZW9mIHRoYXQub3B0aW9ucy5hZnRlckRlc2VsZWN0ID09PSAnZnVuY3Rpb24nKSB7CiAgICAgICAgICB0aGF0Lm9wdGlvbnMuYWZ0ZXJEZXNlbGVjdC5jYWxsKHRoaXMsIHZhbHVlKTsKICAgICAgICB9CiAgICAgIH0KICAgIH0sCgogICAgJ3NlbGVjdF9hbGwnIDogZnVuY3Rpb24oKXsKICAgICAgdmFyIG1zID0gdGhpcy4kZWxlbWVudCwKICAgICAgICAgIHZhbHVlcyA9IG1zLnZhbCgpOwoKICAgICAgbXMuZmluZCgnb3B0aW9uOm5vdCgiOmRpc2FibGVkIiknKS5wcm9wKCdzZWxlY3RlZCcsIHRydWUpOwogICAgICB0aGlzLiRzZWxlY3RhYmxlVWwuZmluZCgnLm1zLWVsZW0tc2VsZWN0YWJsZScpLmZpbHRlcignOm5vdCguJyt0aGlzLm9wdGlvbnMuZGlzYWJsZWRDbGFzcysnKScpLmFkZENsYXNzKCdtcy1zZWxlY3RlZCcpLmhpZGUoKTsKICAgICAgdGhpcy4kc2VsZWN0aW9uVWwuZmluZCgnLm1zLW9wdGdyb3VwLWxhYmVsJykuc2hvdygpOwogICAgICB0aGlzLiRzZWxlY3RhYmxlVWwuZmluZCgnLm1zLW9wdGdyb3VwLWxhYmVsJykuaGlkZSgpOwogICAgICB0aGlzLiRzZWxlY3Rpb25VbC5maW5kKCcubXMtZWxlbS1zZWxlY3Rpb24nKS5maWx0ZXIoJzpub3QoLicrdGhpcy5vcHRpb25zLmRpc2FibGVkQ2xhc3MrJyknKS5hZGRDbGFzcygnbXMtc2VsZWN0ZWQnKS5zaG93KCk7CiAgICAgIHRoaXMuJHNlbGVjdGlvblVsLmZvY3VzKCk7CiAgICAgIG1zLnRyaWdnZXIoJ2NoYW5nZScpOwogICAgICBpZiAodHlwZW9mIHRoaXMub3B0aW9ucy5hZnRlclNlbGVjdCA9PT0gJ2Z1bmN0aW9uJykgewogICAgICAgIHZhciBzZWxlY3RlZFZhbHVlcyA9ICQuZ3JlcChtcy52YWwoKSwgZnVuY3Rpb24oaXRlbSl7CiAgICAgICAgICByZXR1cm4gJC5pbkFycmF5KGl0ZW0sIHZhbHVlcykgPCAwOwogICAgICAgIH0pOwogICAgICAgIHRoaXMub3B0aW9ucy5hZnRlclNlbGVjdC5jYWxsKHRoaXMsIHNlbGVjdGVkVmFsdWVzKTsKICAgICAgfQogICAgfSwKCiAgICAnZGVzZWxlY3RfYWxsJyA6IGZ1bmN0aW9uKCl7CiAgICAgIHZhciBtcyA9IHRoaXMuJGVsZW1lbnQsCiAgICAgICAgICB2YWx1ZXMgPSBtcy52YWwoKTsKCiAgICAgIG1zLmZpbmQoJ29wdGlvbicpLnByb3AoJ3NlbGVjdGVkJywgZmFsc2UpOwogICAgICB0aGlzLiRzZWxlY3RhYmxlVWwuZmluZCgnLm1zLWVsZW0tc2VsZWN0YWJsZScpLnJlbW92ZUNsYXNzKCdtcy1zZWxlY3RlZCcpLnNob3coKTsKICAgICAgdGhpcy4kc2VsZWN0aW9uVWwuZmluZCgnLm1zLW9wdGdyb3VwLWxhYmVsJykuaGlkZSgpOwogICAgICB0aGlzLiRzZWxlY3RhYmxlVWwuZmluZCgnLm1zLW9wdGdyb3VwLWxhYmVsJykuc2hvdygpOwogICAgICB0aGlzLiRzZWxlY3Rpb25VbC5maW5kKCcubXMtZWxlbS1zZWxlY3Rpb24nKS5yZW1vdmVDbGFzcygnbXMtc2VsZWN0ZWQnKS5oaWRlKCk7CiAgICAgIHRoaXMuJHNlbGVjdGFibGVVbC5mb2N1cygpOwogICAgICBtcy50cmlnZ2VyKCdjaGFuZ2UnKTsKICAgICAgaWYgKHR5cGVvZiB0aGlzLm9wdGlvbnMuYWZ0ZXJEZXNlbGVjdCA9PT0gJ2Z1bmN0aW9uJykgewogICAgICAgIHRoaXMub3B0aW9ucy5hZnRlckRlc2VsZWN0LmNhbGwodGhpcywgdmFsdWVzKTsKICAgICAgfQogICAgfSwKCiAgICBzYW5pdGl6ZTogZnVuY3Rpb24odmFsdWUpewogICAgICB2YXIgaGFzaCA9IDAsIGksIGNoYXJhY3RlcjsKICAgICAgaWYgKHZhbHVlLmxlbmd0aCA9PSAwKSByZXR1cm4gaGFzaDsKICAgICAgdmFyIGxzID0gMDsKICAgICAgZm9yIChpID0gMCwgbHMgPSB2YWx1ZS5sZW5ndGg7IGkgPCBsczsgaSsrKSB7CiAgICAgICAgY2hhcmFjdGVyICA9IHZhbHVlLmNoYXJDb2RlQXQoaSk7CiAgICAgICAgaGFzaCAgPSAoKGhhc2g8PDUpLWhhc2gpK2NoYXJhY3RlcjsKICAgICAgICBoYXNoIHw9IDA7IC8vIENvbnZlcnQgdG8gMzJiaXQgaW50ZWdlcgogICAgICB9CiAgICAgIHJldHVybiBoYXNoOwogICAgfQogIH07CgogIC8qIE1VTFRJU0VMRUNUIFBMVUdJTiBERUZJTklUSU9OCiAgICogPT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiAgJC5mbi5tdWx0aVNlbGVjdCA9IGZ1bmN0aW9uICgpIHsKICAgIHZhciBvcHRpb24gPSBhcmd1bWVudHNbMF0sCiAgICAgICAgYXJncyA9IGFyZ3VtZW50czsKCiAgICByZXR1cm4gdGhpcy5lYWNoKGZ1bmN0aW9uICgpIHsKICAgICAgdmFyICR0aGlzID0gJCh0aGlzKSwKICAgICAgICAgIGRhdGEgPSAkdGhpcy5kYXRhKCdtdWx0aXNlbGVjdCcpLAogICAgICAgICAgb3B0aW9ucyA9ICQuZXh0ZW5kKHt9LCAkLmZuLm11bHRpU2VsZWN0LmRlZmF1bHRzLCAkdGhpcy5kYXRhKCksIHR5cGVvZiBvcHRpb24gPT09ICdvYmplY3QnICYmIG9wdGlvbik7CgogICAgICBpZiAoIWRhdGEpeyAkdGhpcy5kYXRhKCdtdWx0aXNlbGVjdCcsIChkYXRhID0gbmV3IE11bHRpU2VsZWN0KHRoaXMsIG9wdGlvbnMpKSk7IH0KCiAgICAgIGlmICh0eXBlb2Ygb3B0aW9uID09PSAnc3RyaW5nJyl7CiAgICAgICAgZGF0YVtvcHRpb25dKGFyZ3NbMV0pOwogICAgICB9IGVsc2UgewogICAgICAgIGRhdGEuaW5pdCgpOwogICAgICB9CiAgICB9KTsKICB9OwoKICAkLmZuLm11bHRpU2VsZWN0LmRlZmF1bHRzID0gewogICAga2V5U2VsZWN0OiBbMzJdLAogICAgc2VsZWN0YWJsZU9wdGdyb3VwOiBmYWxzZSwKICAgIGRpc2FibGVkQ2xhc3MgOiAnZGlzYWJsZWQnLAogICAgZGJsQ2xpY2sgOiBmYWxzZSwKICAgIGtlZXBPcmRlcjogZmFsc2UsCiAgICBjc3NDbGFzczogJycKICB9OwoKICAkLmZuLm11bHRpU2VsZWN0LkNvbnN0cnVjdG9yID0gTXVsdGlTZWxlY3Q7CgogICQuZm4uaW5zZXJ0QXQgPSBmdW5jdGlvbihpbmRleCwgJHBhcmVudCkgewogICAgcmV0dXJuIHRoaXMuZWFjaChmdW5jdGlvbigpIHsKICAgICAgaWYgKGluZGV4ID09PSAwKSB7CiAgICAgICAgJHBhcmVudC5wcmVwZW5kKHRoaXMpOwogICAgICB9IGVsc2UgewogICAgICAgICRwYXJlbnQuY2hpbGRyZW4oKS5lcShpbmRleCAtIDEpLmFmdGVyKHRoaXMpOwogICAgICB9CiAgICB9KTsKfTsKCn0od2luZG93LmpRdWVyeSk7Cg==]]></data>
	</file>
	<file>
	  <filename>/lib/fielddefs/FEUSingleSelect/lisefd.FEUSingleSelect.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBMSVNFIC0gTGlzdCBJdCBTcGVjaWFsIEVkaXRpb24KIyBWZXJzaW9uIDEuMgojIEEgZm9yayBvZiBMaXN0STIKIyBtYWludGFpbmVkIGJ5IEZlcm5hbmRvIE1vcmdhZG8gQUtBIEpvIE1vcmcKIyBzaW5jZSAyMDE1CiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBPcmlnaW5hbCBBdXRob3I6IEJlbiBNYWxlbiwgPGJlbkBjb25jZXB0ZmFjdG9yeS5jb20uYXU+CiMgQ28tTWFpbnRhaW5lcjogU2ltb24gUmFkZm9yZCwgPHNpbW9uQGNvbmNlcHRmYWN0b3J5LmNvbS5hdT4KIyBXZWI6IHd3dy5jb25jZXB0ZmFjdG9yeS5jb20uYXUKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojCiMgTWFpbnRhaW5lciBzaW5jZSAyMDExIHVwIHRvIDIwMTQ6IEpvbmF0aGFuIFNjaG1pZCwgPGhpQGpvbmF0aGFuc2NobWlkLmRlPgojIFdlYjogd3d3LmpvbmF0aGFuc2NobWlkLmRlCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIwojIFNvbWUgd2Fja29zIHN0YXJ0ZWQgZGVzdHJveWluZyBzdHVmZiBzaW5jZSAyMDEyIGFuZCBzdG9wcGVkIGF0IDIwMTQ6CiMKIyBUYXBpbyBMw7Z5dHR5LCA8dGFwc2FAb3JhbmdlLW1lZGlhLmZpPgojIFdlYjogd3d3Lm9yYW5nZS1tZWRpYS5maQojCiMgR29yYW4gSWxpYywgPHVuaXF1M2VAZ21haWwuY29tPgojIFdlYjogd3d3LmljaC1tYWNoLWRhcy5hdAojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBMSVNFIGlzIGEgQ01TIE1hZGUgU2ltcGxlIG1vZHVsZSB0aGF0IGVuYWJsZXMgdGhlIHdlYiBkZXZlbG9wZXIgdG8gY3JlYXRlCiMgbXVsdGlwbGUgbGlzdHMgdGhyb3VnaG91dCBhIHNpdGUuIEl0IGNhbiBiZSBkdXBsaWNhdGVkIGFuZCBnaXZlbiBmcmllbmRseQojIG5hbWVzIGZvciBlYXNpZXIgY2xpZW50IG1haW50ZW5hbmNlLgojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgQkVHSU5fTElDRU5TRQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIExJU0UKIyBMSVNFIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgTElTRSBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBFTkRfTElDRU5TRQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpjbGFzcyBsaXNlZmRfRkVVU2luZ2xlU2VsZWN0IGV4dGVuZHMgTElTRUZpZWxkZGVmQmFzZQp7CiAgcHJpdmF0ZSAkX29wdHMgPSBhcnJheSgpOwogIAogIHB1YmxpYyBmdW5jdGlvbiBfX2NvbnN0cnVjdCgmJGRiX2luZm8pIAogIHsgICAKICAgIHBhcmVudDo6X19jb25zdHJ1Y3QoJGRiX2luZm8pOyAKICAgICR0aGlzLT5TZXRGcmllbmRseVR5cGUoICR0aGlzLT5Nb2RMYW5nKCAnZmllbGRkZWZfJyAuICR0aGlzLT5HZXRUeXBlKCkgKSApOwogIH0KICAKICBzdGF0aWMgcHVibGljIGZ1bmN0aW9uIEdldE1vZHVsZURlcHMoKSAKICB7IAogICAgcmV0dXJuIGFycmF5KAogICAgICAgICAgICAgICAgICAnRnJvbnRFbmRVc2VycycgPT4gJzEuMTguMScsCiAgICAgICAgICAgICAgICAgICdDR0V4dGVuc2lvbnMnID0+ICcxLjI5LjEnICAgIC8vPz8KICAgICAgICAgICAgICAgICk7CiAgfQogIAogIHB1YmxpYyBmdW5jdGlvbiBHZXRIZWFkZXJIVE1MKCkKICB7CiAgICAkdG1wbCA9ICcnOwogICAgaWYoICR0aGlzLT5HZXRPcHRpb25WYWx1ZSgndHlwZScsICdEcm9wZG93bicpID09ICdNdWx0aVNlbGVjdCcgKQogICAgewogICAgICAgICR0bXBsID0gPDw8RU9UCjxsaW5rIHR5cGU9InRleHQvY3NzIiByZWw9InN0eWxlc2hlZXQiIGhyZWY9InskdGhpcy0+R2V0VVJMUGF0aCgpfS9qcXVlcnkubXVsdGktc2VsZWN0LmNzcyIgLz4KPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0ieyR0aGlzLT5HZXRVUkxQYXRoKCl9L2pxdWVyeS5tdWx0aS1zZWxlY3QuanMiPjwvc2NyaXB0PgpFT1Q7CiAgICB9CiAgICByZXR1cm4gJHRtcGw7CiAgfQogIAogIC8vIGdldCBhdmFpbGFibGUgZ3JvdXBzIGZyb20gRkVVIG1vZHVsZSAKICBwdWJsaWMgZnVuY3Rpb24gR2V0RkVVR3JvdXBzKCkgCiAgeyAgCiAgICAkRkVVID0gY21zbXMoKS0+R2V0TW9kdWxlSW5zdGFuY2UoJ0Zyb250RW5kVXNlcnMnKTsKICAgIGlmKGlzX29iamVjdCgkRkVVKSkKICAgIHsKICAgICAgJGdyb3VwcyA9ICRGRVUtPkdldEdyb3VwTGlzdEZ1bGwoKTsKICAgICAgCiAgICAgIGlmKCRncm91cHMpIAogICAgICB7CiAgICAgICAgJG9wdGlvbnMgPSBhcnJheSgpOwogICAgICAgIGZvcmVhY2goJGdyb3VwcyBhcyAkb3B0aW9uKSAKICAgICAgICB7CiAgICAgICAgICAkb3B0aW9uc1skb3B0aW9uWydpZCddXSA9ICRvcHRpb25bJ2dyb3VwbmFtZSddOwogICAgICAgIH0KICAgICAgfQogICAgICAKICAgICAgcmV0dXJuICRvcHRpb25zOwogICAgfQogIH0KICAKICBwdWJsaWMgZnVuY3Rpb24gR2V0RmV1UHJvcGVydGllcygpCiAgewogICAgJEZFVSA9IGNtc21zKCktPkdldE1vZHVsZUluc3RhbmNlKCdGcm9udEVuZFVzZXJzJyk7CiAgICAkZmV1X3Byb3BzID0gJEZFVS0+R2V0UHJvcGVydHlEZWZucygpOwogICAgCiAgICAvLyByZW1vdmUgc2VsZnJlZyBwcm9wCiAgICBpZiggaXNzZXQoJGZldV9wcm9wc1snX19TRUxGUkVHJ10pICkgdW5zZXQoJGZldV9wcm9wc1snX19TRUxGUkVHJ10pOwogICAgCiAgICAkZmV1X29wdGlvbnMgPSBhcnJheSgpOwogICAgJGZldV9vcHRpb25zYiA9IGFycmF5KCk7CiAgICBmb3JlYWNoKCRmZXVfcHJvcHMgYXMgJG9uZSkkZmV1X29wdGlvbnNbICRvbmVbJ25hbWUnXSBdID0gJG9uZVsncHJvbXB0J107CiAgICBhc29ydCgkZmV1X29wdGlvbnMpOwogICAgJGZldV9vcHRpb25zYlstMV0gPSBsYW5nKCdub25lJyk7IAogICAgJGZldV9vcHRpb25zYlswXSA9ICRGRVUtPkxhbmcoJ3Byb21wdF91c2VybmFtZScpOwogICAgJGZldV9vcHRpb25zID0gYXJyYXlfbWVyZ2UoJGZldV9vcHRpb25zYiwgJGZldV9vcHRpb25zKTsKICAgIHJldHVybiAkZmV1X29wdGlvbnM7CiAgfSAKICAgICAKICBwdWJsaWMgZnVuY3Rpb24gR2V0T3B0aW9ucygpIAogIHsKICAgICR0aGlzLT5fb3B0c1sndHlwZSddID0gJHRoaXMtPkdldE9wdGlvblZhbHVlKCd0eXBlJywgJ0Ryb3Bkb3duJyk7CiAgICAkdGhpcy0+X29wdHNbJ3R5cGVzJ10gPSBhcnJheSgKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ0Ryb3Bkb3duJyAgICAgICAgICAgPT4gJHRoaXMtPk1vZExhbmcoJ2ZpZWxkZGVmX0Ryb3Bkb3duJyksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdSYWRpb0dyb3VwJyAgICAgICAgPT4gJHRoaXMtPk1vZExhbmcoJ2ZpZWxkZGVmX1JhZGlvR3JvdXAnKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ0pRdWVyeU11bHRpU2VsZWN0JyA9PiAkdGhpcy0+TW9kTGFuZygnZmllbGRkZWZfSlF1ZXJ5TXVsdGlTZWxlY3QnKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKTsKICAgIHJldHVybiAkdGhpcy0+X29wdHM7CiAgfQogIAogIC8vIGdldCBsaXN0IG9mIHVzZXJzIGZyb20gRkVVIG1vZHVsZSBiYXNlZCBvbiBzZWxlY3RlZCBncm91cAogIHB1YmxpYyBmdW5jdGlvbiBHZXRGRVVVc2VyTGlzdCgpIAogIHsgICAgCiAgICAkRkVVID0gY21zbXMoKS0+R2V0TW9kdWxlSW5zdGFuY2UoJ0Zyb250RW5kVXNlcnMnKTsKICAgIAogICAgaWYoaXNfb2JqZWN0KCRGRVUpKQogICAgeyAgICAKICAgICAgLy8gR2V0VXNlcnNJbkdyb3VwKCkgaXMgZGVwcmVjYXRlZCBidXQgR2V0RnVsbFVzZXJzSW5Hcm91cCgpIHNlZW1zIHRvIGhhdmUgYSBidWcsIAogICAgICAvLyBjaGFuZ2UgdGhpcyBhZnRlciBGRVUgQlIgIzg3NTMgaHR0cDovL2Rldi5jbXNtYWRlc2ltcGxlLm9yZy9idWcvdmlldy84NzUzIGlzIGNvbmZpcm1lZCBhbmQgZml4ZWQgCiAgICAgICRncm91cHMgPSAgZXhwbG9kZSgnLCcsICR0aGlzLT5HZXRPcHRpb25WYWx1ZSgnZmV1X29wdGlvbnMnKSApOwogICAgICAkZmV1X3Byb3AgPSAkdGhpcy0+R2V0T3B0aW9uVmFsdWUoJ2ZldV9maWVsZCcpOwogICAgICAkZmV1X3Byb3AyID0gJHRoaXMtPkdldE9wdGlvblZhbHVlKCdmZXVfZmllbGQyJyk7CiAgICAgICR1c2VfdXNlcm5hbWUgPSAkdGhpcy0+R2V0T3B0aW9uVmFsdWUoJ3VzZV91c2VybmFtZScpOwogICAgICAkdXNlX3VpZCA9ICR0aGlzLT5HZXRPcHRpb25WYWx1ZSgndXNlX3VpZCcpOwogICAgICAkc2VwYXJhdG9yID0gJHRoaXMtPkdldE9wdGlvblZhbHVlKCdzZXBhcmF0b3InKTsKICAgICAgJHVzZXJzID0gYXJyYXkoKTsKICAgICAgCiAgICAgIGZvcmVhY2goJGdyb3VwcyBhcyAkZ3JvdXApCiAgICAgIHsKICAgICAgICAkdG1wdXNlcnMgPSAkRkVVLT5HZXRVc2Vyc0luR3JvdXAoJGdyb3VwKTsKICAgICAgICBmb3JlYWNoKCR0bXB1c2VycyBhcyAkb25lKQogICAgICAgIHsKICAgICAgICAgIGlmKCBhcnJheV9rZXlfZXhpc3RzKCRvbmVbJ2lkJ10sICR1c2VycykgKSBjb250aW51ZTsKICAgICAgICAgIAogICAgICAgICAgJHVpZCA9IChib29sKSR1c2VfdWlkID8gJ1snIC4gJG9uZVsnaWQnXSAuICddICcgOiAnJzsgCiAgICAgICAgICAKICAgICAgICAgICNub3cgbGV0cyBidWlsZCB0aGUgc2VsZWN0ICAgICAgICAgIAogICAgICAgICAgaWYoJHVzZV91c2VybmFtZSkKICAgICAgICAgIHsKICAgICAgICAgICAgJHVzZXJzWyRvbmVbJ2lkJ11dID0gJHVpZCAuICRvbmVbJ3VzZXJuYW1lJ107CiAgICAgICAgICB9CiAgICAgICAgICBlbHNlCiAgICAgICAgICB7CiAgICAgICAgICAgIGlmKCAkZmV1X3Byb3AgPT0gTlVMTCB8fCAoaXNfbnVtZXJpYygkZmV1X3Byb3ApICYmICRmZXVfcHJvcCA9PSAtMSkgKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgJHVzZXJzWyRvbmVbJ2lkJ11dID0gJHVpZCAuICRvbmVbJ3VzZXJuYW1lJ107CiAgICAgICAgICAgIH0KICAgICAgICAgICAgZWxzZQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgJHVzZXJzWyRvbmVbJ2lkJ11dID0gJHVpZDsKICAgICAgICAgICAgICAKICAgICAgICAgICAgICBpZihpc19udW1lcmljKCRmZXVfcHJvcCkgJiYgJGZldV9wcm9wID09IDApCiAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgJHVzZXJzWyRvbmVbJ2lkJ11dIC49ICRvbmVbJ3VzZXJuYW1lJ107CiAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIGVsc2UKICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAkdXNlcnNbJG9uZVsnaWQnXV0gLj0gJEZFVS0+R2V0VXNlclByb3BlcnR5RnVsbCgkZmV1X3Byb3AsICRvbmVbJ2lkJ10pOwogICAgICAgICAgICAgIH0KICAgICAKICAgICAgICAgICAgICBpZiggaXNfbnVtZXJpYygkZmV1X3Byb3AyKSAmJiAkZmV1X3Byb3AyID09IDAgJiYgIShpc19pbnQoJGZldV9wcm9wKSAmJiAkZmV1X3Byb3AgPCAxKSApCiAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgJHVzZXJzWyRvbmVbJ2lkJ11dIC49ICRzZXBhcmF0b3IgLiAkb25lWyd1c2VybmFtZSddOwogICAgICAgICAgICAgIH0KICAgICAgICAgICAgICBlbHNlaWYoICEoaXNfaW50KCRmZXVfcHJvcDIpICYmICRmZXVfcHJvcDIgPT0gLTEpICkKICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAkdXNlcnNbJG9uZVsnaWQnXV0gLj0gJHNlcGFyYXRvciAuICRGRVUtPkdldFVzZXJQcm9wZXJ0eUZ1bGwoJGZldV9wcm9wMiwgJG9uZVsnaWQnXSk7CiAgICAgICAgICAgICAgfSAKICAgICAgICAgICAgfQogICAgICAgICAgfQogICAgICAgIH0KICAgICAgICAKICAgICAgfQogICAgICAKICAgICAgYXNvcnQoJHVzZXJzKTsKICAgICAgCiAgICAgIHJldHVybiAkdXNlcnM7CiAgICB9CiAgfQogIAogIHB1YmxpYyBmdW5jdGlvbiBSZW5kZXJGb3JBZG1pbkxpc3RpbmcoJGlkLCAkcmV0dXJuaWQpCiAgewogICAgJHVzZXIgPSAnJzsKICAgICRGRVUgPSBjbXNtcygpLT5HZXRNb2R1bGVJbnN0YW5jZSgnRnJvbnRFbmRVc2VycycpOwogICAgCiAgICBpZihpc19vYmplY3QoJEZFVSkpCiAgICB7CiAgICAgICR2YWx1ZSA9ICR0aGlzLT5HZXRWYWx1ZSgpOwogICAgICAkdXNlciA9ICRGRVUtPkdldFVzZXJOYW1lKCR2YWx1ZVswXSk7CiAgICB9CiAgICAKICAgICRzbWFydHkgPSBjbXNtcygpLT5HZXRTbWFydHkoKTsKICAgICRzbWFydHktPmFzc2lnbigndXNlcicsICR1c2VyKTsKICAgIHJldHVybiBwYXJlbnQ6OlJlbmRlckZvckFkbWluTGlzdGluZygkaWQsICRyZXR1cm5pZCk7CiAgfQogIAp9Ly8gZW5kIG9mIGNsYXNzCj8+]]></data>
	</file>
	<file>
	  <filename>/lib/fielddefs/FEUSingleSelect/list.FEUSingleSelect.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[eyR1c2VyfQ==]]></data>
	</file>
	<file>
	  <filename>/lib/fielddefs/FEUSingleSelect/output.FEUSingleSelect.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[eyRmaWVsZGRlZi5uYW1lfTogeyRmaWVsZGRlZi52YWx1ZX0=]]></data>
	</file>
	<file>
	  <filename>/lib/fielddefs/FileUpload</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/lib/fielddefs/FileUpload/admin.FileUpload.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PGZpZWxkc2V0PgogIDxsZWdlbmQ+eyRmaWVsZGRlZi0+TW9kTGFuZygnb3B0aW9ucycpfTwvbGVnZW5kPgogIDxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CiAgICA8cCBjbGFzcz0icGFnZXRleHQiPnskZmllbGRkZWYtPk1vZExhbmcoJ2FsbG93ZWQnKX06PC9wPgogICAgPHAgY2xhc3M9InBhZ2VpbnB1dCI+CgkgIDxpbnB1dCB0eXBlPSJ0ZXh0IiBuYW1lPSJ7JGFjdGlvbmlkfWN1c3RvbV9pbnB1dFthbGxvd2VkXSIgdmFsdWU9InskZmllbGRkZWYtPkdldE9wdGlvblZhbHVlKCdhbGxvd2VkJywgJ3BkZixnaWYsanBlZyxqcGcnKX0iIC8+CiAgPC9wPgogIDxwIGNsYXNzPSJwYWdldGV4dCI+PGRpdiBjbGFzcz0iaW5mb3JtYXRpb24iPnskZmllbGRkZWYtPk1vZExhbmcoJ2ZpZWxkZGVmX2FsbG93X2hlbHAnKX08L2Rpdj48L3A+CiAgPC9kaXY+CiAgPGhyPiAKICA8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgogICAgPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JGZpZWxkZGVmLT5Nb2RMYW5nKCdkaXInKX06PC9wPgogICAgPHAgY2xhc3M9InBhZ2VpbnB1dCI+CgkgIDxpbnB1dCB0eXBlPSJ0ZXh0IiBuYW1lPSJ7JGFjdGlvbmlkfWN1c3RvbV9pbnB1dFtkaXJdIiB2YWx1ZT0ieyRmaWVsZGRlZi0+R2V0T3B0aW9uVmFsdWUoJ2RpcicsJ2ltYWdlcycpfSIgLz4KICA8L3A+CiAgPHAgY2xhc3M9InBhZ2V0ZXh0Ij48ZGl2IGNsYXNzPSJpbmZvcm1hdGlvbiI+eyRmaWVsZGRlZi0+TW9kTGFuZygnZmllbGRkZWZfZGlyX2hlbHAnKX08L2Rpdj48L3A+CiAgPC9kaXY+CiAgPGhyPiAKICA8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgogICAgPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JGZpZWxkZGVmLT5Nb2RMYW5nKCdmaWVsZGRlZl9pbWFnZScpfTo8L3A+CiAgICA8cCBjbGFzcz0icGFnZWlucHV0Ij4KCSAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0ieyRhY3Rpb25pZH1jdXN0b21faW5wdXRbaW1hZ2VdIiB2YWx1ZT0iMCIgLz4KCSAgPGlucHV0IHR5cGU9ImNoZWNrYm94IiBuYW1lPSJ7JGFjdGlvbmlkfWN1c3RvbV9pbnB1dFtpbWFnZV0iIHZhbHVlPSIxIntpZiAkZmllbGRkZWYtPkdldE9wdGlvblZhbHVlKCdpbWFnZScpfWNoZWNrZWQ9ImNoZWNrZWQiey9pZn0gLz4KICA8L3A+CiAgPHAgY2xhc3M9InBhZ2V0ZXh0Ij48ZGl2IGNsYXNzPSJpbmZvcm1hdGlvbiI+eyRmaWVsZGRlZi0+TW9kTGFuZygnZmllbGRkZWZfbWVkaWFfdHlwZV9oZWxwJyl9PC9kaXY+PC9wPgogIDwvZGl2PgogIDxocj4gCiAgPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KICAgIDxwIGNsYXNzPSJwYWdldGV4dCI+eyRmaWVsZGRlZi0+TW9kTGFuZygnc2l6ZScpfTo8L3A+CiAgICA8cCBjbGFzcz0icGFnZWlucHV0Ij4KICAgICAgPGlucHV0IHR5cGU9InRleHQiIG5hbWU9InskYWN0aW9uaWR9Y3VzdG9tX2lucHV0W3NpemVdIiB2YWx1ZT0ieyRmaWVsZGRlZi0+R2V0T3B0aW9uVmFsdWUoJ3NpemUnLCAyMCl9IiAvPgogICAgPC9wPgogICAgPHAgY2xhc3M9InBhZ2V0ZXh0Ij48ZGl2IGNsYXNzPSJpbmZvcm1hdGlvbiI+eyRmaWVsZGRlZi0+TW9kTGFuZygnZmllbGRkZWZfc2l6ZV9oZWxwJyl9PC9kaXY+PC9wPgogIDwvZGl2PgoKPC9maWVsZHNldD4KCjxmaWVsZHNldD4KICA8bGVnZW5kPnskZmllbGRkZWYtPk1vZExhbmcoJ2ZpZWxkZGVmX3Jlc2l6ZV9vcHRfbGVnZW5kJyl9PC9sZWdlbmQ+CiAgPHAgY2xhc3M9InBhZ2V0ZXh0Ij48ZGl2IGNsYXNzPSJpbmZvcm1hdGlvbiI+eyRmaWVsZGRlZi0+TW9kTGFuZygnZmllbGRkZWZfcmVzaXplX29wdF9pbmZvJyl9PC9kaXY+PC9wPgogIDxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CiAgICA8cCBjbGFzcz0icGFnZXRleHQiPnskZmllbGRkZWYtPk1vZExhbmcoJ2ZpZWxkZGVmX3Jlc2l6ZV9vcHRfZW5hYmxlX2xhYmVsJyl9OjwvcD4KICAgIDxwIGNsYXNzPSJwYWdlaW5wdXQiPgoJICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJ7JGFjdGlvbmlkfWN1c3RvbV9pbnB1dFtyZXNpemVdIiB2YWx1ZT0iMCIgLz4KCSAgPGlucHV0IHR5cGU9ImNoZWNrYm94IiBuYW1lPSJ7JGFjdGlvbmlkfWN1c3RvbV9pbnB1dFtyZXNpemVdIiB2YWx1ZT0iMSJ7aWYgJGZpZWxkZGVmLT5HZXRPcHRpb25WYWx1ZSgncmVzaXplJyl9Y2hlY2tlZD0iY2hlY2tlZCJ7L2lmfSAvPgogIDwvcD4KICA8L2Rpdj4KCiAgPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KICAgIDxwIGNsYXNzPSJwYWdldGV4dCI+eyRmaWVsZGRlZi0+TW9kTGFuZygnZmllbGRkZWZfcmVzaXplX29wdF9tYXhfaW1nX3dfbGFiZWwnKX06PC9wPgogICAgPHAgY2xhc3M9InBhZ2VpbnB1dCI+CiAgICAgIDxpbnB1dCB0eXBlPSJ0ZXh0IiBuYW1lPSJ7JGFjdGlvbmlkfWN1c3RvbV9pbnB1dFttYXh3aWR0aF0iIHZhbHVlPSJ7JGZpZWxkZGVmLT5HZXRPcHRpb25WYWx1ZSgnbWF4d2lkdGgnLCAxMDI0KX0iIC8+CiAgICA8L3A+CiAgPC9kaXY+CiAgCiAgPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KICAgIDxwIGNsYXNzPSJwYWdldGV4dCI+eyRmaWVsZGRlZi0+TW9kTGFuZygnZmllbGRkZWZfcmVzaXplX29wdF9tYXhfaW1nX2hfbGFiZWwnKX06PC9wPgogICAgPHAgY2xhc3M9InBhZ2VpbnB1dCI+CiAgICAgIDxpbnB1dCB0eXBlPSJ0ZXh0IiBuYW1lPSJ7JGFjdGlvbmlkfWN1c3RvbV9pbnB1dFttYXhoZWlnaHRdIiB2YWx1ZT0ieyRmaWVsZGRlZi0+R2V0T3B0aW9uVmFsdWUoJ21heGhlaWdodCcsIDc1Nil9IiAvPgogICAgPC9wPgogICA8L2Rpdj4KCiAgPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KICAgIDxwIGNsYXNzPSJwYWdldGV4dCI+eyRmaWVsZGRlZi0+TW9kTGFuZygnZmllbGRkZWZfcmVzaXplX29wdF9rZWVwX3Bhcl9sYWJlbCcpfTo8L3A+CiAgICA8cCBjbGFzcz0icGFnZWlucHV0Ij4KCSAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0ieyRhY3Rpb25pZH1jdXN0b21faW5wdXRbYXNwZWN0cmF0aW9dIiB2YWx1ZT0iMCIgLz4KCSAgPGlucHV0IHR5cGU9ImNoZWNrYm94IiBuYW1lPSJ7JGFjdGlvbmlkfWN1c3RvbV9pbnB1dFthc3BlY3RyYXRpb10iIHZhbHVlPSIxIntpZiAkZmllbGRkZWYtPkdldE9wdGlvblZhbHVlKCdhc3BlY3RyYXRpbycpfWNoZWNrZWQ9ImNoZWNrZWQiey9pZn0gLz4KICA8L3A+CgogIDwvZGl2PgoKICA8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgogICAgPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JGZpZWxkZGVmLT5Nb2RMYW5nKCdmaWVsZGRlZl9yZXNpemVfb3B0X2Nhbl91cHNjYWxlX2xhYmVsJyl9OjwvcD4KICAgIDxwIGNsYXNzPSJwYWdlaW5wdXQiPgoJICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJ7JGFjdGlvbmlkfWN1c3RvbV9pbnB1dFt1cHNjYWxlXSIgdmFsdWU9IjAiIC8+CgkgIDxpbnB1dCB0eXBlPSJjaGVja2JveCIgbmFtZT0ieyRhY3Rpb25pZH1jdXN0b21faW5wdXRbdXBzY2FsZV0iIHZhbHVlPSIxIntpZiAkZmllbGRkZWYtPkdldE9wdGlvblZhbHVlKCd1cHNjYWxlJyl9Y2hlY2tlZD0iY2hlY2tlZCJ7L2lmfSAvPgogIDwvcD4KICA8L2Rpdj4KCiAgPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KICAgIDxwIGNsYXNzPSJwYWdldGV4dCI+eyRmaWVsZGRlZi0+TW9kTGFuZygnZmllbGRkZWZfcmVzaXplX29wdF9xdWFsaXR5X2xhYmVsJyl9OjwvcD4KICAgIDxwIGNsYXNzPSJwYWdlaW5wdXQiPgogICAgICA8aW5wdXQgdHlwZT0idGV4dCIgbmFtZT0ieyRhY3Rpb25pZH1jdXN0b21faW5wdXRbcXVhbGl0eV0iIHZhbHVlPSJ7JGZpZWxkZGVmLT5HZXRPcHRpb25WYWx1ZSgncXVhbGl0eScsIDgwKX0iIC8+CiAgICA8L3A+CiAgPC9kaXY+CiAgPC9maWVsZHNldD4KPC9maWVsZHNldD4=]]></data>
	</file>
	<file>
	  <filename>/lib/fielddefs/FileUpload/help.FileUpload.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PGJ1dHRvbiBjbGFzcz0iYWNjb3JkaW9uIj48c3Ryb25nPnskZmllbGRkZWYtPkdldEZyaWVuZGx5VHlwZSgpfTwvc3Ryb25nPjwvYnV0dG9uPgoKPGRpdiBjbGFzcz0iYWNjcGFuZWwiPgoKCTxoND5XaGF0IGRvZXMgaXQgZG8/PC9oND4KCgk8cD5UaGlzIGZpZWxkIGRlZmluaXRpb24gY2FuIGJlIHVzZWQgdG8gYWRkIGEgPHN0cm9uZz5GaWxlIFVwbG9hZDwvc3Ryb25nPiBmaWVsZCB0byBhIExJU0UgaXRlbS48L3A+CgoJPHA+VE9ETzwvcD4KCgoJPGg0PkhvdyBkbyBJIHVzZSBpdD88L2g0PgoKCTxwPlRPRE88L3A+CgoJPHA+VGhlIHNldHRpbmdzIGZvciB0aGlzIGZpZWxkIGFyZTo8L3A+CgoJPHVsPgoJCTxsaT48Yj5BbGxvd2VkPC9iPjwvbGk+CgkJPGxpPjxiPkRpcmVjdG9yeTwvYj48L2xpPgoJCTxsaT48Yj5FeHBlY3RlZCB0byBiZSBpbWFnZTwvYj48L2xpPgoJCTxsaT48Yj5TaXplPC9iPjwvbGk+Cgk8L3VsPgoKPC9kaXY+]]></data>
	</file>
	<file>
	  <filename>/lib/fielddefs/FileUpload/index.html</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PCEtLSBEVU1NWSBIVE1MIEZJTEUgLS0+]]></data>
	</file>
	<file>
	  <filename>/lib/fielddefs/FileUpload/input.FileUpload.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KCTxwIGNsYXNzPSJwYWdldGV4dCI+eyRmaWVsZGRlZi0+R2V0TmFtZSgpfXtpZiAkZmllbGRkZWYtPklzUmVxdWlyZWQoKX0qey9pZn06PC9wPgoJPHAgY2xhc3M9InBhZ2VpbnB1dCI+CgkJe2lmICRmaWVsZGRlZi0+R2V0RGVzYygpfSh7JGZpZWxkZGVmLT5HZXREZXNjKCl9KTxiciAvPnsvaWZ9CgkJe2lmICRmaWVsZGRlZi0+SGFzVmFsdWUoKX08ZW0+eyRtb2QtPk1vZExhbmcoJ3ZhbHVlJyl9OiB7JGZpZWxkZGVmLT5HZXRWYWx1ZSgpfTwvZW0+PGJyIC8+ey9pZn0KCQl7aWYgJGZpZWxkZGVmLT5HZXRPcHRpb25WYWx1ZSgnaW1hZ2UnKX17JGZpZWxkZGVmLT5SZW5kZXJGb3JBZG1pbkxpc3RpbmcoJGFjdGlvbmlkLCAkcmV0dXJuaWQpfXsvaWZ9CgkJPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0ieyRhY3Rpb25pZH1jdXN0b21maWVsZFt7JGZpZWxkZGVmLT5HZXRJZCgpfV0iIHZhbHVlPSJ7JGZpZWxkZGVmLT5HZXRWYWx1ZSgpfSIgLz4KCQk8aW5wdXQgdHlwZT0iZmlsZSIgbmFtZT0ieyRhY3Rpb25pZH1jdXN0b21maWVsZFt7JGZpZWxkZGVmLT5HZXRJZCgpfV0iIHNpemU9InskZmllbGRkZWYtPkdldE9wdGlvblZhbHVlKCdzaXplJyl9Ij57aWYgISRmaWVsZGRlZi0+SXNSZXF1aXJlZCgpICYmICRmaWVsZGRlZi0+SGFzVmFsdWUoKX08IS0tCgkJLS0+PGlucHV0IHR5cGU9ImNoZWNrYm94IiBuYW1lPSJ7JGFjdGlvbmlkfWRlbGV0ZV9jdXN0b21maWVsZFt7JGZpZWxkZGVmLT5HZXRJZCgpfV0iIHZhbHVlPSJkZWxldGUiIHRpdGxlPSJ7JG1vZC0+TW9kTGFuZygnZGVsZXRlJyl9IiAvPnsvaWZ9Cgk8L3A+CjwvZGl2Pg==]]></data>
	</file>
	<file>
	  <filename>/lib/fielddefs/FileUpload/liseeh.FileUpload.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBMSVNFIC0gTGlzdCBJdCBTcGVjaWFsIEVkaXRpb24KIyBWZXJzaW9uIDEuMgojIEEgZm9yayBvZiBMaXN0STIKIyBtYWludGFpbmVkIGJ5IEZlcm5hbmRvIE1vcmdhZG8gQUtBIEpvIE1vcmcKIyBzaW5jZSAyMDE1CiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBPcmlnaW5hbCBBdXRob3I6IEJlbiBNYWxlbiwgPGJlbkBjb25jZXB0ZmFjdG9yeS5jb20uYXU+CiMgQ28tTWFpbnRhaW5lcjogU2ltb24gUmFkZm9yZCwgPHNpbW9uQGNvbmNlcHRmYWN0b3J5LmNvbS5hdT4KIyBXZWI6IHd3dy5jb25jZXB0ZmFjdG9yeS5jb20uYXUKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojCiMgTWFpbnRhaW5lciBzaW5jZSAyMDExIHVwIHRvIDIwMTQ6IEpvbmF0aGFuIFNjaG1pZCwgPGhpQGpvbmF0aGFuc2NobWlkLmRlPgojIFdlYjogd3d3LmpvbmF0aGFuc2NobWlkLmRlCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIwojIFNvbWUgd2Fja29zIHN0YXJ0ZWQgZGVzdHJveWluZyBzdHVmZiBzaW5jZSAyMDEyIGFuZCBzdG9wcGVkIGF0IDIwMTQ6CiMKIyBUYXBpbyBMw7Z5dHR5LCA8dGFwc2FAb3JhbmdlLW1lZGlhLmZpPgojIFdlYjogd3d3Lm9yYW5nZS1tZWRpYS5maQojCiMgR29yYW4gSWxpYywgPHVuaXF1M2VAZ21haWwuY29tPgojIFdlYjogd3d3LmljaC1tYWNoLWRhcy5hdAojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBMSVNFIGlzIGEgQ01TIE1hZGUgU2ltcGxlIG1vZHVsZSB0aGF0IGVuYWJsZXMgdGhlIHdlYiBkZXZlbG9wZXIgdG8gY3JlYXRlCiMgbXVsdGlwbGUgbGlzdHMgdGhyb3VnaG91dCBhIHNpdGUuIEl0IGNhbiBiZSBkdXBsaWNhdGVkIGFuZCBnaXZlbiBmcmllbmRseQojIG5hbWVzIGZvciBlYXNpZXIgY2xpZW50IG1haW50ZW5hbmNlLgojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgQkVHSU5fTElDRU5TRQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIExJU0UKIyBMSVNFIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgTElTRSBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBFTkRfTElDRU5TRQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpjbGFzcyBsaXNlZWhfRmlsZVVwbG9hZCBleHRlbmRzIExJU0VFdmVudEhhbmRsZXJCYXNlCnsKCglwcml2YXRlIHN0YXRpYyAkX2ltZ190eXBlcyA9IGFycmF5KCdnaWYnLCAnanBnJywgJ2pwZWcnLCAncG5nJyk7CgoJLy8gQ29waWVkIGZyb20gSk1GaWxlUGlja2VyCgoJcHVibGljIHN0YXRpYyBmaW5hbCBmdW5jdGlvbiBIYW5kbGVGaWxlUmVzaXppbmcoJHNvdXJjZSwgJG91dHB1dCwgJG5ld193aWR0aCwgJG5ld19oZWlnaHQsICRrZWVwX2FzcGVjdHJhdGlvID0gdHJ1ZSwgJGFsbG93X3Vwc2NhbGluZyA9IGZhbHNlLCAkcXVhbGl0eSA9IDEwMCwgJGNsZWFuX3BhdGggPSB0cnVlKSB7CiAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgIGlmKEBpbmlfZ2V0KCJ1cGxvYWRfdG1wX2RpciIpICYmICFzdGFydHN3aXRoKCRzb3VyY2UsIEBpbmlfZ2V0KCJ1cGxvYWRfdG1wX2RpciIpKSAmJiAkY2xlYW5fcGF0aCkgeyAkc291cmNlID0gc2VsZjo6Q2xlYW5QYXRoKHN0cl9yZXBsYWNlKGJhc2VuYW1lKCRzb3VyY2UpLCcnLCRzb3VyY2UpKS5iYXNlbmFtZSgkc291cmNlKTsgfQogICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICBpZigkY2xlYW5fcGF0aCkgeyAkb3V0cHV0ID0gc2VsZjo6Q2xlYW5QYXRoKHN0cl9yZXBsYWNlKGJhc2VuYW1lKCRvdXRwdXQpLCcnLCRvdXRwdXQpKS5iYXNlbmFtZSgkb3V0cHV0KTsgfQogICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAkaW1nX2RhdGEgPSBAZ2V0aW1hZ2VzaXplKCRzb3VyY2UpOwogICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICBpZiAoISRpbWdfZGF0YSkgeyByZXR1cm4gZmFsc2U7IH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICBzd2l0Y2goJGltZ19kYXRhWydtaW1lJ10pIHsKICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSAnaW1hZ2UvanBlZyc6CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJG9yaWdfaW1hZ2UgPSBAaW1hZ2VjcmVhdGVmcm9tanBlZygkc291cmNlKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSAnaW1hZ2UvZ2lmJyA6CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJG9yaWdfaW1hZ2UgPSBAaW1hZ2VjcmVhdGVmcm9tZ2lmKCRzb3VyY2UpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgICAgICAgICBjYXNlICdpbWFnZS9wbmcnIDoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkb3JpZ19pbWFnZSA9IEBpbWFnZWNyZWF0ZWZyb21wbmcoJHNvdXJjZSk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICAgICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICBpZighJG9yaWdfaW1hZ2UpCiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgJG9yaWdfd2lkdGggID0gQGltYWdlc3goJG9yaWdfaW1hZ2UpOwogICAgICAgICAgICAgICAgJG9yaWdfaGVpZ2h0ID0gQGltYWdlc3koJG9yaWdfaW1hZ2UpOwogICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAkYXNwZWN0cmF0aW8gPSAkb3JpZ193aWR0aCAvICRvcmlnX2hlaWdodDsKICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgJG5ld193aWR0aCAgPSBmbG9vcigkbmV3X3dpZHRoKTsKICAgICAgICAgICAgICAgICRuZXdfaGVpZ2h0ID0gZmxvb3IoJG5ld19oZWlnaHQpOwogICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICBpZigkbmV3X3dpZHRoIDw9IDAgJiYgJG5ld19oZWlnaHQgPiAwKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICRuZXdfd2lkdGggPSAkb3JpZ193aWR0aDsKICAgICAgICAgICAgICAgICAgICAgICAgaWYoJG5ld19oZWlnaHQgPiAkb3JpZ19oZWlnaHQgJiYgISRhbGxvd191cHNjYWxpbmcpIHsgJG5ld19oZWlnaHQgPSAkb3JpZ19oZWlnaHQ7IH0KICAgICAgICAgICAgICAgICAgICAgICAgaWYoJGtlZXBfYXNwZWN0cmF0aW8pIHsgJG5ld193aWR0aCA9IGZsb29yKCRuZXdfaGVpZ2h0ICogJGFzcGVjdHJhdGlvKTsgfQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgZWxzZSBpZigkbmV3X2hlaWdodCA8PSAwICYmICRuZXdfd2lkdGggPiAwKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICRuZXdfaGVpZ2h0ID0gJG9yaWdfaGVpZ2h0OwogICAgICAgICAgICAgICAgICAgICAgICBpZigkbmV3X3dpZHRoID4gJG9yaWdfd2lkdGggJiYgISRhbGxvd191cHNjYWxpbmcpIHsgJG5ld193aWR0aCA9ICRvcmlnX3dpZHRoOyB9CiAgICAgICAgICAgICAgICAgICAgICAgIGlmKCRrZWVwX2FzcGVjdHJhdGlvKSB7ICRuZXdfaGVpZ2h0ID0gZmxvb3IoJG5ld193aWR0aCAvICRhc3BlY3RyYXRpbyk7IH0KICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIGVsc2UgaWYoJG5ld19oZWlnaHQgPiAwICYmICRuZXdfd2lkdGggPiAwKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIGlmKCRuZXdfd2lkdGggPiAkb3JpZ193aWR0aCAmJiAhJGFsbG93X3Vwc2NhbGluZykgeyAkbmV3X3dpZHRoID0gJG9yaWdfd2lkdGg7IH0KICAgICAgICAgICAgICAgICAgICAgICAgaWYoJG5ld19oZWlnaHQgPiAkb3JpZ19oZWlnaHQgJiYgISRhbGxvd191cHNjYWxpbmcpIHsgJG5ld19oZWlnaHQgPSAkb3JpZ19oZWlnaHQ7IH0KICAgICAgICAgICAgICAgICAgICAgICAgJG5ld19hc3BlY3RyYXRpbyA9ICRuZXdfd2lkdGggLyAkbmV3X2hlaWdodDsKICAgICAgICAgICAgICAgICAgICAgICAgaWYoJGtlZXBfYXNwZWN0cmF0aW8pIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZigkYXNwZWN0cmF0aW8gPiAxICYmICRuZXdfYXNwZWN0cmF0aW8gPCAxKSB7IAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJF90bXAgPSBmbG9vcigkbmV3X3dpZHRoIC8gJGFzcGVjdHJhdGlvKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmKCRfdG1wID4gMCAmJiAkX3RtcCA8PSAkbmV3X2hlaWdodCkgeyAgJG5ld19oZWlnaHQgPSAkX3RtcDsgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbHNlIGlmKCRhc3BlY3RyYXRpbyA8IDEgJiYgJG5ld19hc3BlY3RyYXRpbyA+IDEpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRfdG1wID0gZmxvb3IoJG5ld19oZWlnaHQgKiAkYXNwZWN0cmF0aW8pOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYoJF90bXAgPiAwICYmICRfdG1wIDw9ICRuZXdfd2lkdGgpIHsgJG5ld193aWR0aCA9ICRfdG1wOyB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmKCRuZXdfYXNwZWN0cmF0aW8gPCAkYXNwZWN0cmF0aW8pIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJF90bXAgPSBmbG9vcigkbmV3X3dpZHRoIC8gJGFzcGVjdHJhdGlvKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYoJF90bXAgPiAwICYmICRfdG1wIDw9ICRuZXdfaGVpZ2h0KSB7ICRuZXdfaGVpZ2h0ID0gJF90bXA7IH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZigkbmV3X2FzcGVjdHJhdGlvID4gJGFzcGVjdHJhdGlvKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRfdG1wID0gZmxvb3IoJG5ld19oZWlnaHQgKiAkYXNwZWN0cmF0aW8pOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZigkX3RtcCA+IDAgJiYgJF90bXAgPD0gJG5ld193aWR0aCkgeyAkbmV3X3dpZHRoID0gJF90bXA7IH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgICAgICRuZXdfaGVpZ2h0ID0gJG9yaWdfaGVpZ2h0OwogICAgICAgICAgICAgICAgICAgICAgICAkbmV3X3dpZHRoICA9ICRvcmlnX3dpZHRoOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICBpZigkbmV3X3dpZHRoIDwgMSkgeyRuZXdfd2lkdGggPSAxOyB9CiAgICAgICAgICAgICAgICBpZigkbmV3X2hlaWdodCA8IDEpIHsgJG5ld19oZWlnaHQgPSAxOyB9CiAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICRuZXdfaW1hZ2UgPSBAaW1hZ2VjcmVhdGV0cnVlY29sb3IoZmxvb3IoJG5ld193aWR0aCksIGZsb29yKCRuZXdfaGVpZ2h0KSk7CiAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgIGlmKCRpbWdfZGF0YVsnbWltZSddID09ICdpbWFnZS9naWYnKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIEBpbWFnZXRydWVjb2xvcnRvcGFsZXR0ZSgkbmV3X2ltYWdlLCB0cnVlLCAyNTYpOwogICAgICAgICAgICAgICAgICAgICAgICBAaW1hZ2VhbHBoYWJsZW5kaW5nKCRuZXdfaW1hZ2UsIGZhbHNlKTsKICAgICAgICAgICAgICAgICAgICAgICAgQGltYWdlc2F2ZWFscGhhKCRuZXdfaW1hZ2UsdHJ1ZSk7CiAgICAgICAgICAgICAgICAgICAgICAgICR0cmFuc3BhcmVudCA9IEBpbWFnZWNvbG9yYWxsb2NhdGVhbHBoYSgkbmV3X2ltYWdlLCAyNTUsIDI1NSwgMjU1LCAxMjcpOwogICAgICAgICAgICAgICAgICAgICAgICBAaW1hZ2VmaWxsZWRyZWN0YW5nbGUoJG5ld19pbWFnZSwgMCwgMCwgJG5ld193aWR0aCwgJG5ld19oZWlnaHQsICR0cmFuc3BhcmVudCk7CiAgICAgICAgICAgICAgICAgICAgICAgIEBpbWFnZWNvbG9ydHJhbnNwYXJlbnQoJG5ld19pbWFnZSwgJHRyYW5zcGFyZW50KTsKICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoJGltZ19kYXRhWydtaW1lJ10gPT0gJ2ltYWdlL3BuZycpIHsKICAgICAgICAgICAgICAgICAgICAgICAgQGltYWdlY29sb3J0cmFuc3BhcmVudCgkbmV3X2ltYWdlLCBAaW1hZ2Vjb2xvcmFsbG9jYXRlKCRuZXdfaW1hZ2UsIDAsIDAsIDApKTsgICAKICAgICAgICAgICAgICAgICAgICAgICAgQGltYWdlYWxwaGFibGVuZGluZygkbmV3X2ltYWdlLCBmYWxzZSk7CiAgICAgICAgICAgICAgICAgICAgICAgICRjb2xvciA9IEBpbWFnZWNvbG9yYWxsb2NhdGVhbHBoYSgkbmV3X2ltYWdlLCAwLCAwLCAwLCAxMjcpOwogICAgICAgICAgICAgICAgICAgICAgICBAaW1hZ2VmaWxsKCRuZXdfaW1hZ2UsIDAsIDAsICRjb2xvcik7CiAgICAgICAgICAgICAgICAgICAgICAgIEBpbWFnZXNhdmVhbHBoYSgkbmV3X2ltYWdlLCB0cnVlKTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgQGltYWdlY29weXJlc2FtcGxlZCgkbmV3X2ltYWdlLCAkb3JpZ19pbWFnZSwgMCwgMCwgMCwgMCwgJG5ld193aWR0aCwgJG5ld19oZWlnaHQsICRvcmlnX3dpZHRoLCAkb3JpZ19oZWlnaHQpOwogICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICBAaW1hZ2VkZXN0cm95KCRvcmlnX2ltYWdlKTsKICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgc3dpdGNoKCRpbWdfZGF0YVsnbWltZSddKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgJ2ltYWdlL2pwZWcnOiAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkcmVzdWx0ID0gQGltYWdlanBlZygkbmV3X2ltYWdlLCAkb3V0cHV0LCAkcXVhbGl0eSk7YnJlYWs7CiAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgJ2ltYWdlL2dpZicgOiAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkcmVzdWx0ID0gQGltYWdlZ2lmKCRuZXdfaW1hZ2UsICRvdXRwdXQpO2JyZWFrOwogICAgICAgICAgICAgICAgICAgICAgICBjYXNlICdpbWFnZS9wbmcnIDogCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJHJlc3VsdCA9IEBpbWFnZXBuZygkbmV3X2ltYWdlLCAkb3V0cHV0KTticmVhazsKICAgICAgICAgICAgICAgICAgICAgICAgZGVmYXVsdDogCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJHJlc3VsdCA9IGZhbHNlOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICBAaW1hZ2VkZXN0cm95KCRuZXdfaW1hZ2UpOwogICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICByZXR1cm4gJHJlc3VsdDsKICAgICAgICB9CgkKCSMtLS0tLS0tLS0tLS0tLS0tLS0tLS0KCSMgVmFyaWFibGVzCgkjLS0tLS0tLS0tLS0tLS0tLS0tLS0tCQoKCXByaXZhdGUgJF9kYXRhOwoKCSMtLS0tLS0tLS0tLS0tLS0tLS0tLS0KCSMgTWFnaWMgbWV0aG9kcwoJIy0tLS0tLS0tLS0tLS0tLS0tLS0tLQkJCgkKCXB1YmxpYyBmdW5jdGlvbiBfX2NvbnN0cnVjdChMSVNFRmllbGRkZWZCYXNlICYkZmllbGQpCgl7CgkJcGFyZW50OjpfX2NvbnN0cnVjdCgkZmllbGQpOwoJfQoJCgkjLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgkjIE92ZXJ3cml0YWJsZSBldmVudHMKCSMtLS0tLS0tLS0tLS0tLS0tLS0tLS0JCgkKCXB1YmxpYyBmdW5jdGlvbiBPbkl0ZW1EZWxldGUoTElTRSAmJG1vZCkKCXsKCQkvLyBEZWxldGUgZmlsZQoJCSRwYXRoID0gY21zX2pvaW5fcGF0aCgkdGhpcy0+R2V0SW1hZ2VQYXRoKCksICR0aGlzLT5HZXRWYWx1ZSgpKTsKCQlAdW5saW5rKCRwYXRoKTsJCQoJfQoJCglwdWJsaWMgZnVuY3Rpb24gSXRlbVNhdmVQcmVQcm9jZXNzKCYkZXJyb3JzLCAmJHBhcmFtcykgCgl7CQkJCgkJLy8gQ2hlY2sgaWYgd2UgbmVlZCBkZWxldGUKCQlpZiAoaXNzZXQoJHBhcmFtc1snZGVsZXRlX2N1c3RvbWZpZWxkJ11bJHRoaXMtPkdldElkKCldKSkgewoJCQkJCgkJCWlmKCRwYXJhbXNbJ2RlbGV0ZV9jdXN0b21maWVsZCddWyR0aGlzLT5HZXRJZCgpXSA9PSAnZGVsZXRlJykgewoJCQkKCQkJCS8vIERlbGV0ZSBmaWxlCgkJCQkkcGF0aCA9IGNtc19qb2luX3BhdGgoJHRoaXMtPkdldEltYWdlUGF0aCgpLCAkdGhpcy0+R2V0VmFsdWUoKSk7CgkJCQlAdW5saW5rKCRwYXRoKTsKCQkJCQoJCQkJLy8gUmVzZXQgdmFsdWUKCQkJCSR0aGlzLT5TZXRWYWx1ZSgpOwoJCQl9CgkJfQoJCWVsc2UgLy8gQXBwbHkgbmV3IHZhbHVlCiAgICB7CgkJCS8vIEZpbGwgX2RhdGEgZnJvbSAkX0ZJTEVTCiAgICAgIGlmKCBpc3NldCgkX0ZJTEVTWydtMV9jdXN0b21maWVsZCddKSApCiAgICAgIHsKICAgICAgICAvLyRpZCBpcyBzdGF0aWNhbGx5IHBhcnQgb2Yga2V5LCBub3QgaWRlYWwuCiAgICAgICAgJGZpbGVzID0gc2VsZjo6X2RpdmVyc2VfYXJyYXkoJF9GSUxFU1snbTFfY3VzdG9tZmllbGQnXSk7CiAgICAgIH0KCiAgICAgIGlmKGlzc2V0KCRmaWxlc1skdGhpcy0+R2V0SWQoKV0pKQogICAgICAgICR0aGlzLT5fZGF0YSA9ICRmaWxlc1skdGhpcy0+R2V0SWQoKV07IC8vIDwtIE15IGFzc3VtcHRpb24gaXMgdGhhdCAkX0ZJTEVTIGNvbnRhaW5zIGNvcnJlY3Qgc3RydWN0dXJlIGFuZCB0aGVyZWZvcmUgYXJyYXkgaXMgY29tcGxldGUuIEFtIGkgd3Jvbmc/IDEgKyAxID0gMiEKCiAgICAgIC8vIENoZWNrIHRoYXQgX2RhdGEgaXMgdmFsaWQKICAgICAgaWYoaXNzZXQoJHRoaXMtPl9kYXRhKSAmJiAkdGhpcy0+X2RhdGFbJ2Vycm9yJ10gPT09IDApIAogICAgICB7ICAKICAgICAgICAvLyBWYWxpZGF0ZSBlcnJvcnMKICAgICAgICBpZihzdHJwb3MoJHRoaXMtPkdldE9wdGlvblZhbHVlKCdhbGxvd2VkJyksIGxpc2VmZF9GaWxlVXBsb2FkOjpfZXh0KCR0aGlzLT5fZGF0YVsnbmFtZSddKSkgPT09IEZBTFNFKSAKICAgICAgICB7CiAgICAgICAgICAkZXJyb3JzW10gPSAkdGhpcy0+TW9kTGFuZygnZXJyb3JfYmFkX2V4dGVuc2lvbicpIC4gJyAoJyAuICR0aGlzLT5HZXROYW1lKCkgLiAnKSc7CiAgICAgICAgfSAgICAgICAgCgoJCQkJCgkJCQkvLyBTZXQgVmFsdWUgZnJvbSBfZGF0YQoJCQkJaWYoZW1wdHkoJGVycm9ycykpIAogICAgICAgIHsKCQkJCQkkdGhpcy0+U2V0VmFsdWUoJHRoaXMtPl9kYXRhWyduYW1lJ10pOwoJCQkJfQkJCQoJCQl9CgkJfQoJCQkJCQkKCQlwYXJlbnQ6Okl0ZW1TYXZlUHJlUHJvY2VzcygkZXJyb3JzLCAkcGFyYW1zKTsKCX0JCgkKCXB1YmxpYyBmdW5jdGlvbiBJdGVtU2F2ZVBvc3RQcm9jZXNzKCYkZXJyb3JzLCAmJHBhcmFtcykgCgl7CgkJLy8gTW92ZSBmaWxlIHRvIGNvcnJlY3QgcGxhY2UsIG5vdGhpbmcgZWxzZS4KCQlpZihpc3NldCgkdGhpcy0+X2RhdGEpICYmICR0aGlzLT5fZGF0YVsnZXJyb3InXSA9PT0gMCkgewoJCQoJCQkvLyBHZXQgZmlsZSBwYXRoCgkJCSRwYXRoID0gJHRoaXMtPkdldEltYWdlUGF0aCgpOwoJCQkKCQkJLy8gQXNzdXJlIGRpcmVjdG9yeSBleGlzdHMKCQkJaWYoIWlzX2RpcigkcGF0aCkpCgkJCQlAbWtkaXIoJHBhdGgsIDA3NzcsIHRydWUpOwoKCQkJLy8gTWVyZ2UgZmlsZW5hbWUgaW50byBwYXRoCgkJCSRwYXRoID0gY21zX2pvaW5fcGF0aCgkcGF0aCwgJHRoaXMtPkdldFZhbHVlKCkpOwoKCgkJCS8vIENoZWNrIGlmIHdlIG5lZWQgaW1hZ2UgYW5kIGlmIGV4dGVuc2lvbiBvZiBmaWxlbmFtZSBpcyBhY3R1YWxseSBpbWFnZS4KCQkJaWYoICgkdGhpcy0+R2V0T3B0aW9uVmFsdWUoJ2ltYWdlJykgPT0gIjEiKSAmJiAoaW5fYXJyYXkoc2VsZjo6X2V4dCgkdGhpcy0+R2V0VmFsdWUoKSksIHNlbGY6OiRfaW1nX3R5cGVzKSkgJiYgKCR0aGlzLT5HZXRPcHRpb25WYWx1ZSgncmVzaXplJykgPT0gIjEiKSApIHsKCQkJCS8vIEV4ZWN1dGUgcmVzaXplIGFuZCBtb3ZlLgoJCQkJaWYoISR0aGlzLT5IYW5kbGVGaWxlUmVzaXppbmcoJHRoaXMtPl9kYXRhWyd0bXBfbmFtZSddLCAkcGF0aCwgJHRoaXMtPkdldE9wdGlvblZhbHVlKCdtYXh3aWR0aCcpLCAgJHRoaXMtPkdldE9wdGlvblZhbHVlKCdtYXhoZWlnaHQnKSwgJHRoaXMtPkdldE9wdGlvblZhbHVlKCdhc3BlY3RyYXRpbycpLCAkdGhpcy0+R2V0T3B0aW9uVmFsdWUoJ3Vwc2NhbGUnKSwgJHRoaXMtPkdldE9wdGlvblZhbHVlKCdxdWFsaXR5JyksIGZhbHNlKSkgewoJCQkJCSRlcnJvcnNbXSA9ICR0aGlzLT5Nb2RMYW5nKCdlcnJvcl9maWxlX3Blcm1pc3Npb25zJyk7CgkJCQl9CgkJCX0gZWxzZSB7CgkJCQkvLyBFeGVjdXRlIG1vdmUuCgkJCQlpZighbW92ZV91cGxvYWRlZF9maWxlKCR0aGlzLT5fZGF0YVsndG1wX25hbWUnXSwgJHBhdGgpKSB7CgkJCQkJJGVycm9yc1tdID0gJHRoaXMtPk1vZExhbmcoJ2Vycm9yX2ZpbGVfcGVybWlzc2lvbnMnKTsKCQkJCX0KCQkJfQoJCX0KCX0KCgkjLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgkjIFByaXZhdGUgbWV0aG9kcwoJIy0tLS0tLS0tLS0tLS0tLS0tLS0tLQkKCQoJcHJpdmF0ZSBzdGF0aWMgZnVuY3Rpb24gX2RpdmVyc2VfYXJyYXkoJHZlY3RvcikgCiAgewoJCSRyZXN1bHQgPSBhcnJheSgpOwogICAgCiAgICBpZiggaXNfYXJyYXkoJHZlY3RvcikgKQogICAgewoJCSAgZm9yZWFjaCgkdmVjdG9yIGFzICRrZXkxID0+ICR2YWx1ZTEpCiAgICAgIHsKCQkJICBmb3JlYWNoKCR2YWx1ZTEgYXMgJGtleTIgPT4gJHZhbHVlMikgCiAgICAgICAgewoJCQkJICAkcmVzdWx0WyRrZXkyXVska2V5MV0gPSAkdmFsdWUyOwoJCQkgIH0KCQkgIH0KICAgIH0KICAgIAoJCXJldHVybiAkcmVzdWx0OwoJfSAJCgkKfSAvLyBlbmQgb2YgY2xhc3MKCj8+]]></data>
	</file>
	<file>
	  <filename>/lib/fielddefs/FileUpload/lisefd.FileUpload.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHANCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQojIExJU0UgLSBMaXN0IEl0IFNwZWNpYWwgRWRpdGlvbg0KIyBWZXJzaW9uIDEuMg0KIyBBIGZvcmsgb2YgTGlzdEkyDQojIG1haW50YWluZWQgYnkgRmVybmFuZG8gTW9yZ2FkbyBBS0EgSm8gTW9yZw0KIyBzaW5jZSAyMDE1DQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIw0KIyBPcmlnaW5hbCBBdXRob3I6IEJlbiBNYWxlbiwgPGJlbkBjb25jZXB0ZmFjdG9yeS5jb20uYXU+DQojIENvLU1haW50YWluZXI6IFNpbW9uIFJhZGZvcmQsIDxzaW1vbkBjb25jZXB0ZmFjdG9yeS5jb20uYXU+DQojIFdlYjogd3d3LmNvbmNlcHRmYWN0b3J5LmNvbS5hdQ0KIw0KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCiMNCiMgTWFpbnRhaW5lciBzaW5jZSAyMDExIHVwIHRvIDIwMTQ6IEpvbmF0aGFuIFNjaG1pZCwgPGhpQGpvbmF0aGFuc2NobWlkLmRlPg0KIyBXZWI6IHd3dy5qb25hdGhhbnNjaG1pZC5kZQ0KIw0KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCiMNCiMgU29tZSB3YWNrb3Mgc3RhcnRlZCBkZXN0cm95aW5nIHN0dWZmIHNpbmNlIDIwMTIgYW5kIHN0b3BwZWQgYXQgMjAxNDoNCiMNCiMgVGFwaW8gTMO2eXR0eSwgPHRhcHNhQG9yYW5nZS1tZWRpYS5maT4NCiMgV2ViOiB3d3cub3JhbmdlLW1lZGlhLmZpDQojDQojIEdvcmFuIElsaWMsIDx1bmlxdTNlQGdtYWlsLmNvbT4NCiMgV2ViOiB3d3cuaWNoLW1hY2gtZGFzLmF0DQojDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIw0KIyBMSVNFIGlzIGEgQ01TIE1hZGUgU2ltcGxlIG1vZHVsZSB0aGF0IGVuYWJsZXMgdGhlIHdlYiBkZXZlbG9wZXIgdG8gY3JlYXRlDQojIG11bHRpcGxlIGxpc3RzIHRocm91Z2hvdXQgYSBzaXRlLiBJdCBjYW4gYmUgZHVwbGljYXRlZCBhbmQgZ2l2ZW4gZnJpZW5kbHkNCiMgbmFtZXMgZm9yIGVhc2llciBjbGllbnQgbWFpbnRlbmFuY2UuDQojDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIyBCRUdJTl9MSUNFTlNFDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIyBUaGlzIGZpbGUgaXMgcGFydCBvZiBMSVNFDQojIExJU0UgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5DQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5DQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yDQojIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uDQojDQojIExJU0UgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLA0KIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZg0KIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlDQojIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuDQojIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlDQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlDQojIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcgVVNBDQojIE9yIHJlYWQgaXQgb25saW5lOiBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwNCiMNCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQojIEVORF9MSUNFTlNFDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KDQoNCmNsYXNzIGxpc2VmZF9GaWxlVXBsb2FkIGV4dGVuZHMgTElTRUZpZWxkZGVmQmFzZQ0Kew0KCXByaXZhdGUgc3RhdGljICRfaW1nX3R5cGVzID0gYXJyYXkoJ2dpZicsICdqcGcnLCAnanBlZycsICdwbmcnKTsNCg0KCXB1YmxpYyBmdW5jdGlvbiBfX2NvbnN0cnVjdCgmJGRiX2luZm8pIA0KCXsJDQoJCXBhcmVudDo6X19jb25zdHJ1Y3QoJGRiX2luZm8pOw0KCQkNCgkJJHRoaXMtPlNldEZyaWVuZGx5VHlwZSgkdGhpcy0+TW9kTGFuZygnZmllbGRkZWZfJy4kdGhpcy0+R2V0VHlwZSgpKSk7DQoJfQ0KCQ0KCSMtLS0tLS0tLS0tLS0tLS0tLS0tLS0NCgkjIEZpZWxkYmFzZSBtZXRob2RzDQoJIy0tLS0tLS0tLS0tLS0tLS0tLS0tLQkNCg0KCXB1YmxpYyBmdW5jdGlvbiBSZW5kZXJGb3JBZG1pbkxpc3RpbmcoJGlkLCAkcmV0dXJuaWQpDQoJew0KCQkvLyBDaGVjayBpZiB3ZSBoYXZlIHZhbHVlLg0KCQlpZighJHRoaXMtPkhhc1ZhbHVlKCkpDQoJCQlyZXR1cm47DQoJDQoJCS8vIENoZWNrIGlmIHdlIG5lZWQgaW1hZ2UgYW5kIGlmIGV4dGVuc2lvbiBvZiBmaWxlbmFtZSBpcyBhY3R1YWxseSBpbWFnZS4NCgkJaWYoISR0aGlzLT5HZXRPcHRpb25WYWx1ZSgnaW1hZ2UnKSB8fCAhaW5fYXJyYXkoc2VsZjo6X2V4dCgkdGhpcy0+R2V0VmFsdWUoKSksIHNlbGY6OiRfaW1nX3R5cGVzKSkNCgkJCXJldHVybiAkdGhpcy0+R2V0VmFsdWUoKTsNCg0KCQkvLyBDaGVjayBpZiBTbWFydEltYWdlIG1vZHVsZSBpcyBpbnN0YWxsZWQuDQoJCSRzaSA9IGNtc21zKCktPkdldE1vZHVsZUluc3RhbmNlKCdTbWFydEltYWdlJyk7DQoJCWlmKCFpc19vYmplY3QoJHNpKSkNCgkJCXJldHVybiAkdGhpcy0+R2V0VmFsdWUoKTsNCgkJCQkJDQoJCS8vIENoZWNrIGlmIG91ciBzb3VyY2UgZmlsZSBpcyByZWFkYWJsZS4NCiAgICAgICAgJHBhdGggPSBjbXNfam9pbl9wYXRoKCR0aGlzLT5HZXRJbWFnZVBhdGgoKSwgJHRoaXMtPkdldFZhbHVlKCkpOw0KCQlpZighaXNfcmVhZGFibGUoJHBhdGgpKQ0KCQkJcmV0dXJuICR0aGlzLT5HZXRWYWx1ZSgpOw0KCQkNCiAgICAgICAgJGhyZWYgPSAkdGhpcy0+R2V0SW1hZ2VQYXRoKHRydWUpIC4nLycuICR0aGlzLT5HZXRWYWx1ZSgpOw0KCQ0KCQkkcGFyYW1zWydzcmMnXSA9IHVybGVuY29kZSgkaHJlZik7DQoJCSRwYXJhbXNbJ2ZpbHRlcl9jcm9wdG9maXQnXSA9ICc0OCw0OCc7DQoJCSRwYXJhbXNbJ25vdGFnJ10gPSB0cnVlOw0KCQkkcGFyYW1zWydub2VtYmVkJ10gPSB0cnVlOw0KCQ0KCQkkb3V0cHV0ID0gc2lfdXRpbHM6OnByb2Nlc3NfaW1hZ2UoJHBhcmFtcyk7DQoJCQ0KCQkkdXJsID0gJG91dHB1dFsnb3V0cHV0J107DQoJCQ0KCQlyZXR1cm4gJzxhIGhyZWY9IicuJGhyZWYuJyIgY2xhc3M9ImNib3ggdGh1bWIiPjxpbWcgc3JjPSInLiR1cmwuJyIgd2lkdGg9IjQ4IiBoZWlnaHQ9IjQ4IiAvPjwvYT4nOwkJDQoJfQ0KICANCiAgcHVibGljIGZ1bmN0aW9uIEZyb250RW5kUmVuZGVyKCAkcGFyYW1zID0gYXJyYXkoKSApDQogIHsNCiAgICBpZiggZW1wdHkoJHRoaXMtPnZpZXcpICkNCiAgICB7DQogICAgICAkc21hcnR5ID0gY21zbXMoKS0+R2V0U21hcnR5KCk7DQogICAgICAkc21hcnR5LT5hc3NpZ24oJ25hbWUnLCAkdGhpcy0+bmFtZSk7DQogICAgICAkc21hcnR5LT5hc3NpZ24oJ3ZhbHVlJywgJHRoaXMtPnZhbHVlKTsNCiAgICAgICRzbWFydHktPmFzc2lnbigndHlwZScsICR0aGlzLT50eXBlKTsNCiAgICAgICRzbWFydHktPmFzc2lnbignYWxpYXMnLCAkdGhpcy0+YWxpYXMpOw0KICAgICAgJHNtYXJ0eS0+YXNzaWduKCdwYXJhbXMnLCAkcGFyYW1zKTsNCiAgICAgICRzbWFydHktPmFzc2lnbignaW1hZ2VwYXRoJywgJHRoaXMtPkdldEltYWdlUGF0aChUUlVFKSApOw0KICAgICAgJHRoaXMtPnZpZXcgPSAkc21hcnR5LT5mZXRjaCggJ3N0cmluZzonIC4gJHRoaXMtPkdldFRlbXBsYXRlKCkgKTsNCiAgICB9DQoNCiAgICByZXR1cm4gJHRoaXMtPnZpZXc7DQogICAgDQogIH0JDQoJDQoJIy0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KCSMgQ2xhc3MgbWV0aG9kcw0KCSMtLS0tLS0tLS0tLS0tLS0tLS0tLS0JCQ0KCQ0KCXB1YmxpYyBmdW5jdGlvbiBHZXRJbWFnZVBhdGgoJHVybCA9IGZhbHNlKQ0KCXsNCgkJJGNvbmZpZyA9IGNtc21zKCktPkdldENvbmZpZygpOw0KCQkkcHJlZml4ID0gJHVybCA/ICRjb25maWdbJ3VwbG9hZHNfdXJsJ10gOiAkY29uZmlnWyd1cGxvYWRzX3BhdGgnXTsNCgkJJHBhdGggPSBjbXNfam9pbl9wYXRoKCRwcmVmaXgsICR0aGlzLT5HZXRPcHRpb25WYWx1ZSgnZGlyJykpOw0KCQkNCgkJaWYoc3RycG9zKCRwYXRoLCAneyRpdGVtX2lkfScpICE9PSBmYWxzZSkJCQkNCgkJCSRwYXRoID0gc3RyX3JlcGxhY2UoJ3skaXRlbV9pZH0nLCAkdGhpcy0+R2V0SXRlbUlkKCksICRwYXRoKTsNCgkJCQkNCgkJaWYoc3RycG9zKCRwYXRoLCAneyRmaWVsZF9pZH0nKSAhPT0gZmFsc2UpCQkJDQoJCQkkcGF0aCA9IHN0cl9yZXBsYWNlKCd7JGZpZWxkX2lkfScsICR0aGlzLT5HZXRJZCgpLCAkcGF0aCk7DQoJCQkJDQoJCWlmKCR1cmwpDQoJCQkkcGF0aCA9IHN0cl9yZXBsYWNlKERJUkVDVE9SWV9TRVBBUkFUT1IsICcvJywgJHBhdGgpOw0KDQoJCXJldHVybiAkcGF0aDsNCgl9DQoNCgkjLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQoJIyBQcml2YXRlIG1ldGhvZHMNCgkjLS0tLS0tLS0tLS0tLS0tLS0tLS0tCQ0KCQ0KCXB1YmxpYyBzdGF0aWMgZnVuY3Rpb24gX2V4dCgkZmlsZW5hbWUpDQoJewkNCgkJJGZpbGVuYW1lID0gZXhwbG9kZSgnLicsICRmaWxlbmFtZSk7DQoJCXJldHVybiB0cmltKHN0cnRvbG93ZXIoZW5kKCRmaWxlbmFtZSkpKTsgLy8gPC0gQSBiaXQgZnJlYWt5IHllcywgYnV0IHNob3VsZCBjb3ZlciBhbGwgcG9zc2libGUgY2FzZXMuDQoJfQ0KCQ0KfSAvLyBlbmQgb2YgY2xhc3MNCj8+]]></data>
	</file>
	<file>
	  <filename>/lib/fielddefs/FileUpload/output.FileUpload.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[eyRmaWVsZGRlZi5uYW1lfTogPGEgaHJlZj0ieyRmaWVsZGRlZi0+R2V0SW1hZ2VQYXRoKHRydWUpfS97JGZpZWxkZGVmLnZhbHVlfSI+eyRmaWVsZGRlZi52YWx1ZX08L2E+]]></data>
	</file>
	<file>
	  <filename>/lib/fielddefs/GalleryDropdown</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/lib/fielddefs/GalleryDropdown/help.GalleryDropdown.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PGJ1dHRvbiBjbGFzcz0iYWNjb3JkaW9uIj48c3Ryb25nPnskZmllbGRkZWYtPkdldEZyaWVuZGx5VHlwZSgpfTwvc3Ryb25nPjwvYnV0dG9uPgoKPGRpdiBjbGFzcz0iYWNjcGFuZWwiPgoKCTxwIGNsYXNzPSJ3YXJuaW5nIj48Yj5Ob3RlOjwvYj4gVGhlIHVzZSBvZiB0aGlzIGZpZWxkIGRlZmluaXRpb24gZGVwZW5kcyBvbiB0aGUgcHJlc2VuY2Ugb2YgdGhlIEdhbGxlcnkgbW9kdWxlLjwvcD4KCgk8aDQ+V2hhdCBkb2VzIGl0IGRvPzwvaDQ+CgoJPHA+VGhpcyBmaWVsZCBkZWZpbml0aW9uIGNhbiBiZSB1c2VkIHRvIGFkZCBhIDxzdHJvbmc+R2FsbGVyeSBEcm9wZG93bjwvc3Ryb25nPiBmaWVsZCB0byBhIExJU0UgaXRlbS48L3A+CgoJPHA+VE9ETzwvcD4KCgoJPGg0PkhvdyBkbyBJIHVzZSBpdD88L2g0PgoKCTxwPlRPRE88L3A+CgoJPHA+VGhlIHNldHRpbmdzIGZvciB0aGlzIGZpZWxkIGFyZTo8L3A+CgoJPHVsPgoJCTxsaT48Yj5BbGxvdyB0aGlzIGZpZWxkIHRvIGJlIGluZGV4ZWQgYnkgZ2xvYmFsIHNlYXJjaDwvYj48L2xpPgoJCTxsaT48Yj5TaXplPC9iPjwvbGk+CgkJPGxpPjxiPk1heCBMZW5ndGg8L2I+PC9saT4KCTwvdWw+Cgo8L2Rpdj4=]]></data>
	</file>
	<file>
	  <filename>/lib/fielddefs/GalleryDropdown/index.html</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PCEtLSBEVU1NWSBIVE1MIEZJTEUgLS0+]]></data>
	</file>
	<file>
	  <filename>/lib/fielddefs/GalleryDropdown/input.GalleryDropdown.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KCTxwIGNsYXNzPSJwYWdldGV4dCI+eyRmaWVsZGRlZi0+R2V0TmFtZSgpfXtpZiAkZmllbGRkZWYtPklzUmVxdWlyZWQoKX0qey9pZn06PC9wPgoJPHAgY2xhc3M9InBhZ2VpbnB1dCI+CgkgIHtpZiAkZmllbGRkZWYtPkdldERlc2MoKX0oeyRmaWVsZGRlZi0+R2V0RGVzYygpfSk8YnIgLz57L2lmfQoJICB7JGZpZWxkZGVmLT5HZXRJbnB1dCgkYWN0aW9uaWQpfQoJPC9wPiAKPC9kaXY+]]></data>
	</file>
	<file>
	  <filename>/lib/fielddefs/GalleryDropdown/lisefd.GalleryDropdown.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHANCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQojIExJU0UgLSBMaXN0IEl0IFNwZWNpYWwgRWRpdGlvbg0KIyBWZXJzaW9uIDEuMg0KIyBBIGZvcmsgb2YgTGlzdEkyDQojIG1haW50YWluZWQgYnkgRmVybmFuZG8gTW9yZ2FkbyBBS0EgSm8gTW9yZw0KIyBzaW5jZSAyMDE1DQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIw0KIyBPcmlnaW5hbCBBdXRob3I6IEJlbiBNYWxlbiwgPGJlbkBjb25jZXB0ZmFjdG9yeS5jb20uYXU+DQojIENvLU1haW50YWluZXI6IFNpbW9uIFJhZGZvcmQsIDxzaW1vbkBjb25jZXB0ZmFjdG9yeS5jb20uYXU+DQojIFdlYjogd3d3LmNvbmNlcHRmYWN0b3J5LmNvbS5hdQ0KIw0KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCiMNCiMgTWFpbnRhaW5lciBzaW5jZSAyMDExIHVwIHRvIDIwMTQ6IEpvbmF0aGFuIFNjaG1pZCwgPGhpQGpvbmF0aGFuc2NobWlkLmRlPg0KIyBXZWI6IHd3dy5qb25hdGhhbnNjaG1pZC5kZQ0KIw0KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCiMNCiMgU29tZSB3YWNrb3Mgc3RhcnRlZCBkZXN0cm95aW5nIHN0dWZmIHNpbmNlIDIwMTIgYW5kIHN0b3BwZWQgYXQgMjAxNDoNCiMNCiMgVGFwaW8gTMO2eXR0eSwgPHRhcHNhQG9yYW5nZS1tZWRpYS5maT4NCiMgV2ViOiB3d3cub3JhbmdlLW1lZGlhLmZpDQojDQojIEdvcmFuIElsaWMsIDx1bmlxdTNlQGdtYWlsLmNvbT4NCiMgV2ViOiB3d3cuaWNoLW1hY2gtZGFzLmF0DQojDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIw0KIyBMSVNFIGlzIGEgQ01TIE1hZGUgU2ltcGxlIG1vZHVsZSB0aGF0IGVuYWJsZXMgdGhlIHdlYiBkZXZlbG9wZXIgdG8gY3JlYXRlDQojIG11bHRpcGxlIGxpc3RzIHRocm91Z2hvdXQgYSBzaXRlLiBJdCBjYW4gYmUgZHVwbGljYXRlZCBhbmQgZ2l2ZW4gZnJpZW5kbHkNCiMgbmFtZXMgZm9yIGVhc2llciBjbGllbnQgbWFpbnRlbmFuY2UuDQojDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIyBCRUdJTl9MSUNFTlNFDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIyBUaGlzIGZpbGUgaXMgcGFydCBvZiBMSVNFDQojIExJU0UgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5DQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5DQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yDQojIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uDQojDQojIExJU0UgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLA0KIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZg0KIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlDQojIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuDQojIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlDQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlDQojIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcgVVNBDQojIE9yIHJlYWQgaXQgb25saW5lOiBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwNCiMNCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQojIEVORF9MSUNFTlNFDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KDQpjbGFzcyBsaXNlZmRfR2FsbGVyeURyb3Bkb3duIGV4dGVuZHMgTElTRUZpZWxkZGVmQmFzZQ0Kew0KCXB1YmxpYyBmdW5jdGlvbiBfX2NvbnN0cnVjdCgmJGRiX2luZm8pIA0KCXsJDQoJCXBhcmVudDo6X19jb25zdHJ1Y3QoJGRiX2luZm8pOw0KCQkNCgkJJHRoaXMtPlNldEZyaWVuZGx5VHlwZSggJHRoaXMtPk1vZExhbmcoICdmaWVsZGRlZl8nIC4gJHRoaXMtPkdldFR5cGUoKSApICk7DQoJfQ0KCQ0KCXN0YXRpYyBwdWJsaWMgZnVuY3Rpb24gR2V0TW9kdWxlRGVwcygpDQoJew0KCQlyZXR1cm4gYXJyYXkoJ0dhbGxlcnknPT4nMS42Jyk7DQoJfQ0KCQkJDQoJcHVibGljIGZ1bmN0aW9uIEdldElucHV0KCRpZCkNCgl7DQoJCXJldHVybiBHYWxsZXJ5X3V0aWxzOjpHYWxsZXJ5RHJvcGRvd24oJGlkLCAkdGhpcy0+R2V0VmFsdWUoKSwgJ2N1c3RvbWZpZWxkWycgLiAkdGhpcy0+R2V0SWQoKSAuICddJyk7DQoJfQ0KCQ0KfSAvLyBlbmQgb2YgY2xhc3MNCj8+]]></data>
	</file>
	<file>
	  <filename>/lib/fielddefs/GalleryDropdown/output.GalleryDropdown.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[eyRmaWVsZGRlZi5uYW1lfTogeyRmaWVsZGRlZi52YWx1ZX0=]]></data>
	</file>
	<file>
	  <filename>/lib/fielddefs/GBFilePicker</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/lib/fielddefs/GBFilePicker/admin.GBFilePicker.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PGZpZWxkc2V0PgogIDxsZWdlbmQ+eyRmaWVsZGRlZi0+TW9kTGFuZygnb3B0aW9ucycpfTwvbGVnZW5kPiAgCiAgPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KICAgIDxwIGNsYXNzPSJwYWdldGV4dCI+eyRmaWVsZGRlZi0+TW9kTGFuZygnYWxsb3dlZCcpfTo8L3A+CiAgICA8cCBjbGFzcz0icGFnZWlucHV0Ij4KCSAgICA8aW5wdXQgdHlwZT0idGV4dCIgbmFtZT0ieyRhY3Rpb25pZH1jdXN0b21faW5wdXRbYWxsb3dlZF0iIHZhbHVlPSJ7JGZpZWxkZGVmLT5HZXRPcHRpb25WYWx1ZSgnYWxsb3dlZCcsICdwZGYsZ2lmLGpwZWcsanBnJyl9IiAvPgogICAgPC9wPgogICAgPHAgY2xhc3M9InBhZ2V0ZXh0Ij48ZGl2IGNsYXNzPSJpbmZvcm1hdGlvbiI+eyRmaWVsZGRlZi0+TW9kTGFuZygnZmllbGRkZWZfR0JGUF9hbGxvd19oZWxwJyl9PC9kaXY+PC9wPgogIDwvZGl2PgogIDxocj4KICA8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgogICAgPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JGZpZWxkZGVmLT5Nb2RMYW5nKCdkaXInKX06PC9wPgogICAgPHAgY2xhc3M9InBhZ2VpbnB1dCI+CgkgICAgPGlucHV0IHR5cGU9InRleHQiIG5hbWU9InskYWN0aW9uaWR9Y3VzdG9tX2lucHV0W2Rpcl0iIHZhbHVlPSJ7JGZpZWxkZGVmLT5HZXRPcHRpb25WYWx1ZSgnZGlyJywnaW1hZ2VzJyl9IiAvPgogICAgPC9wPgogICAgPHAgY2xhc3M9InBhZ2V0ZXh0Ij48ZGl2IGNsYXNzPSJpbmZvcm1hdGlvbiI+eyRmaWVsZGRlZi0+TW9kTGFuZygnZmllbGRkZWZfR0JGUF9kaXJfaGVscCcpfTwvZGl2PjwvcD4KICA8L2Rpdj4KICA8aHI+CiAgPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KICAgIDxwIGNsYXNzPSJwYWdldGV4dCI+eyRmaWVsZGRlZi0+TW9kTGFuZygnZXhjbHVkZV9wcmVmaXgnKX06PC9wPgogICAgPHAgY2xhc3M9InBhZ2VpbnB1dCI+CgkgICAgPGlucHV0IHR5cGU9InRleHQiIG5hbWU9InskYWN0aW9uaWR9Y3VzdG9tX2lucHV0W2V4Y2x1ZGVfcHJlZml4XSIgdmFsdWU9InskZmllbGRkZWYtPkdldE9wdGlvblZhbHVlKCdleGNsdWRlX3ByZWZpeCcpfSIgLz4KICA8L3A+CiAgPHAgY2xhc3M9InBhZ2V0ZXh0Ij48ZGl2IGNsYXNzPSJpbmZvcm1hdGlvbiI+eyRmaWVsZGRlZi0+TW9kTGFuZygnZmllbGRkZWZfR0JGUF9leGNsdWRlX3ByZWZpeF9oZWxwJyl9PC9kaXY+PC9wPgogIDwvZGl2PgogIDxocj4KICA8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgogICAgPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JGZpZWxkZGVmLT5Nb2RMYW5nKCdmaWVsZGRlZl9HQkZpbGVQaWNrZXJfZmlsZWJyb3dzZXInKX06PC9wPgogICAgPHAgY2xhc3M9InBhZ2VpbnB1dCI+CgkgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0ieyRhY3Rpb25pZH1jdXN0b21faW5wdXRbZmlsZWJyb3dzZXJdIiB2YWx1ZT0iMCIgLz4KCSAgICA8aW5wdXQgdHlwZT0iY2hlY2tib3giIG5hbWU9InskYWN0aW9uaWR9Y3VzdG9tX2lucHV0W2ZpbGVicm93c2VyXSIgdmFsdWU9IjEie2lmICRmaWVsZGRlZi0+R2V0T3B0aW9uVmFsdWUoJ2ZpbGVicm93c2VyJyl9Y2hlY2tlZD0iY2hlY2tlZCJ7L2lmfSAvPgogIDwvcD4KICA8cCBjbGFzcz0icGFnZXRleHQiPjxkaXYgY2xhc3M9ImluZm9ybWF0aW9uIj57JGZpZWxkZGVmLT5Nb2RMYW5nKCdmaWVsZGRlZl9HQkZQX2ZpbGVicm93c2VyX2hlbHAnKX08L2Rpdj48L3A+CiAgPC9kaXY+CiAgPGhyPgogIDxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CiAgICA8cCBjbGFzcz0icGFnZXRleHQiPnskZmllbGRkZWYtPk1vZExhbmcoJ2ZpZWxkZGVmX0dCRmlsZVBpY2tlcl9pbWFnZScpfTo8L3A+CiAgICA8cCBjbGFzcz0icGFnZWlucHV0Ij4KCSAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJ7JGFjdGlvbmlkfWN1c3RvbV9pbnB1dFtpbWFnZV0iIHZhbHVlPSIwIiAvPgoJICAgIDxpbnB1dCB0eXBlPSJjaGVja2JveCIgbmFtZT0ieyRhY3Rpb25pZH1jdXN0b21faW5wdXRbaW1hZ2VdIiB2YWx1ZT0iMSJ7aWYgJGZpZWxkZGVmLT5HZXRPcHRpb25WYWx1ZSgnaW1hZ2UnKX1jaGVja2VkPSJjaGVja2VkInsvaWZ9IC8+CiAgICA8L3A+CiAgICA8cCBjbGFzcz0icGFnZXRleHQiPjxkaXYgY2xhc3M9ImluZm9ybWF0aW9uIj57JGZpZWxkZGVmLT5Nb2RMYW5nKCdmaWVsZGRlZl9HQkZQX21lZGlhX3R5cGVfaGVscCcpfTwvZGl2PjwvcD4KICA8L2Rpdj4KICA8aHI+CiAgPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KICAgIDxwIGNsYXNzPSJwYWdldGV4dCI+eyRmaWVsZGRlZi0+TW9kTGFuZygnZmllbGRkZWZfR0JGaWxlUGlja2VyX2NyZWF0ZV9kaXJzJyl9OjwvcD4KICAgIDxwIGNsYXNzPSJwYWdlaW5wdXQiPgoJICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9InskYWN0aW9uaWR9Y3VzdG9tX2lucHV0W2NyZWF0ZV9kaXJzXSIgdmFsdWU9IjAiIC8+CgkgICAgPGlucHV0IHR5cGU9ImNoZWNrYm94IiBuYW1lPSJ7JGFjdGlvbmlkfWN1c3RvbV9pbnB1dFtjcmVhdGVfZGlyc10iIHZhbHVlPSIxIntpZiAkZmllbGRkZWYtPkdldE9wdGlvblZhbHVlKCdjcmVhdGVfZGlycycpfWNoZWNrZWQ9ImNoZWNrZWQiey9pZn0gLz4KICAgIDwvcD4KICAgIDxwIGNsYXNzPSJwYWdldGV4dCI+PGRpdiBjbGFzcz0iaW5mb3JtYXRpb24iPnskZmllbGRkZWYtPk1vZExhbmcoJ2ZpZWxkZGVmX0dCRlBfY3JlYXRlX2RpcnNfaGVscCcpfTwvZGl2PjwvcD4KICA8L2Rpdj4KICA8aHI+CiAgPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KICAgIDxwIGNsYXNzPSJwYWdldGV4dCI+eyRmaWVsZGRlZi0+TW9kTGFuZygnZmllbGRkZWZfR0JGaWxlUGlja2VyX2RlbGV0ZScpfTo8L3A+CiAgICA8cCBjbGFzcz0icGFnZWlucHV0Ij4KCSAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJ7JGFjdGlvbmlkfWN1c3RvbV9pbnB1dFtkZWxldGVdIiB2YWx1ZT0iMCIgLz4KCSAgICA8aW5wdXQgdHlwZT0iY2hlY2tib3giIG5hbWU9InskYWN0aW9uaWR9Y3VzdG9tX2lucHV0W2RlbGV0ZV0iIHZhbHVlPSIxIntpZiAkZmllbGRkZWYtPkdldE9wdGlvblZhbHVlKCdkZWxldGUnKX1jaGVja2VkPSJjaGVja2VkInsvaWZ9IC8+CiAgICA8L3A+CiAgICA8cCBjbGFzcz0icGFnZXRleHQiPjxkaXYgY2xhc3M9ImluZm9ybWF0aW9uIj57JGZpZWxkZGVmLT5Nb2RMYW5nKCdmaWVsZGRlZl9HQkZQX2RlbGV0ZV9oZWxwJyl9PC9kaXY+PC9wPgogIDwvZGl2PgogIDxocj4KICA8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgogICAgPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JGZpZWxkZGVmLT5Nb2RMYW5nKCdmaWVsZGRlZl9HQkZpbGVQaWNrZXJfc2hvd19zdWJkaXJzJyl9OjwvcD4KICAgIDxwIGNsYXNzPSJwYWdlaW5wdXQiPgoJICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9InskYWN0aW9uaWR9Y3VzdG9tX2lucHV0W3Nob3dfc3ViZGlyc10iIHZhbHVlPSIwIiAvPgoJICAgIDxpbnB1dCB0eXBlPSJjaGVja2JveCIgbmFtZT0ieyRhY3Rpb25pZH1jdXN0b21faW5wdXRbc2hvd19zdWJkaXJzXSIgdmFsdWU9IjEie2lmICRmaWVsZGRlZi0+R2V0T3B0aW9uVmFsdWUoJ3Nob3dfc3ViZGlycycpfWNoZWNrZWQ9ImNoZWNrZWQiey9pZn0gLz4KICAgIDwvcD4KICAgIDxwIGNsYXNzPSJwYWdldGV4dCI+PGRpdiBjbGFzcz0iaW5mb3JtYXRpb24iPnskZmllbGRkZWYtPk1vZExhbmcoJ2ZpZWxkZGVmX0dCRlBfc2hvd19zdWJkaXJzX2hlbHAnKX08L2Rpdj48L3A+CiAgPC9kaXY+CjwvZmllbGRzZXQ+]]></data>
	</file>
	<file>
	  <filename>/lib/fielddefs/GBFilePicker/index.html</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PCEtLSBEVU1NWSBIVE1MIEZJTEUgLS0+]]></data>
	</file>
	<file>
	  <filename>/lib/fielddefs/GBFilePicker/input.GBFilePicker.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KCTxwIGNsYXNzPSJwYWdldGV4dCI+eyRmaWVsZGRlZi0+R2V0TmFtZSgpfXtpZiAkZmllbGRkZWYtPklzUmVxdWlyZWQoKX0qey9pZn06PC9wPgoJPHAgY2xhc3M9InBhZ2VpbnB1dCI+CgkJe2lmICRmaWVsZGRlZi0+R2V0RGVzYygpfSh7JGZpZWxkZGVmLT5HZXREZXNjKCl9KTxiciAvPnsvaWZ9CgkJeyRmaWVsZGRlZi0+R2V0SW5wdXQoJGFjdGlvbmlkKX0KCTwvcD4KPC9kaXY+]]></data>
	</file>
	<file>
	  <filename>/lib/fielddefs/GBFilePicker/lisefd.GBFilePicker.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHANCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQojIExJU0UgLSBMaXN0IEl0IFNwZWNpYWwgRWRpdGlvbg0KIyBWZXJzaW9uIDEuMg0KIyBBIGZvcmsgb2YgTGlzdEkyDQojIG1haW50YWluZWQgYnkgRmVybmFuZG8gTW9yZ2FkbyBBS0EgSm8gTW9yZw0KIyBzaW5jZSAyMDE1DQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIw0KIyBPcmlnaW5hbCBBdXRob3I6IEJlbiBNYWxlbiwgPGJlbkBjb25jZXB0ZmFjdG9yeS5jb20uYXU+DQojIENvLU1haW50YWluZXI6IFNpbW9uIFJhZGZvcmQsIDxzaW1vbkBjb25jZXB0ZmFjdG9yeS5jb20uYXU+DQojIFdlYjogd3d3LmNvbmNlcHRmYWN0b3J5LmNvbS5hdQ0KIw0KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCiMNCiMgTWFpbnRhaW5lciBzaW5jZSAyMDExIHVwIHRvIDIwMTQ6IEpvbmF0aGFuIFNjaG1pZCwgPGhpQGpvbmF0aGFuc2NobWlkLmRlPg0KIyBXZWI6IHd3dy5qb25hdGhhbnNjaG1pZC5kZQ0KIw0KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCiMNCiMgU29tZSB3YWNrb3Mgc3RhcnRlZCBkZXN0cm95aW5nIHN0dWZmIHNpbmNlIDIwMTIgYW5kIHN0b3BwZWQgYXQgMjAxNDoNCiMNCiMgVGFwaW8gTMO2eXR0eSwgPHRhcHNhQG9yYW5nZS1tZWRpYS5maT4NCiMgV2ViOiB3d3cub3JhbmdlLW1lZGlhLmZpDQojDQojIEdvcmFuIElsaWMsIDx1bmlxdTNlQGdtYWlsLmNvbT4NCiMgV2ViOiB3d3cuaWNoLW1hY2gtZGFzLmF0DQojDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIw0KIyBMSVNFIGlzIGEgQ01TIE1hZGUgU2ltcGxlIG1vZHVsZSB0aGF0IGVuYWJsZXMgdGhlIHdlYiBkZXZlbG9wZXIgdG8gY3JlYXRlDQojIG11bHRpcGxlIGxpc3RzIHRocm91Z2hvdXQgYSBzaXRlLiBJdCBjYW4gYmUgZHVwbGljYXRlZCBhbmQgZ2l2ZW4gZnJpZW5kbHkNCiMgbmFtZXMgZm9yIGVhc2llciBjbGllbnQgbWFpbnRlbmFuY2UuDQojDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIyBCRUdJTl9MSUNFTlNFDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIyBUaGlzIGZpbGUgaXMgcGFydCBvZiBMSVNFDQojIExJU0UgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5DQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5DQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yDQojIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uDQojDQojIExJU0UgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLA0KIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZg0KIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlDQojIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuDQojIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlDQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlDQojIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcgVVNBDQojIE9yIHJlYWQgaXQgb25saW5lOiBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwNCiMNCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQojIEVORF9MSUNFTlNFDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KDQpjbGFzcyBsaXNlZmRfR0JGaWxlUGlja2VyIGV4dGVuZHMgTElTRUZpZWxkZGVmQmFzZQ0Kew0KCXB1YmxpYyBmdW5jdGlvbiBfX2NvbnN0cnVjdCgmJGRiX2luZm8pIA0KCXsJDQoJCXBhcmVudDo6X19jb25zdHJ1Y3QoJGRiX2luZm8pOw0KCQkNCgkJJHRoaXMtPlNldEZyaWVuZGx5VHlwZSgkdGhpcy0+TW9kTGFuZygnZmllbGRkZWZfJy4kdGhpcy0+R2V0VHlwZSgpKSk7DQoJfQ0KCQ0KCXN0YXRpYyBwdWJsaWMgZnVuY3Rpb24gR2V0TW9kdWxlRGVwcygpDQoJew0KCQlyZXR1cm4gYXJyYXkoJ0dCRmlsZVBpY2tlcic9PicxLjMuMycpOw0KCX0NCgkNCglwdWJsaWMgZnVuY3Rpb24gUmVuZGVyRm9yQWRtaW5MaXN0aW5nKCRpZCwgJHJldHVybmlkKQ0KCXsNCgkJaWYoISR0aGlzLT5IYXNWYWx1ZSgpKQ0KCQkJcmV0dXJuOw0KCQ0KCQlpZighJHRoaXMtPkdldE9wdGlvblZhbHVlKCdpbWFnZScpKQ0KCQkJcmV0dXJuICR0aGlzLT5HZXRWYWx1ZSgpOw0KDQoJCSRjb25maWcgPSBjbXNtcygpLT5HZXRDb25maWcoKTsNCgkJDQoJCSRfaW52YWxpZCA9IGFycmF5KCcuJywgJy4uJyk7DQogICAgICAgICRocmVmID0gJGNvbmZpZ1sndXBsb2Fkc191cmwnXSAuICcvJyAuICR0aGlzLT5HZXRWYWx1ZSgpOw0KCQ0KCQkvLyBUcnkgaWYgd2UgY2FuIHVzZSBDR1NtYXJ0SW1hZ2UNCgkJJGNnc2kgPSBjbXNtcygpLT5HZXRNb2R1bGVJbnN0YW5jZSgnQ0dTbWFydEltYWdlJyk7DQoJCWlmKGlzX29iamVjdCgkY2dzaSkpIHsNCgkJDQoJCQkkcGFyYW1zWydzcmMnXSA9ICRocmVmOw0KCQkJJHBhcmFtc1snZmlsdGVyX2Nyb3B0b2ZpdCddID0gJzQ4LDQ4JzsNCgkJCSRwYXJhbXNbJ25vdGFnJ10gPSB0cnVlOw0KCQkJJHBhcmFtc1snbm9lbWJlZCddID0gdHJ1ZTsNCgkJDQoJCQkkb3V0cHV0ID0gY2dzaV91dGlsczo6cHJvY2Vzc19pbWFnZSgkcGFyYW1zKTsNCgkJCQ0KCQkJJHVybCA9ICRvdXRwdXRbJ291dHB1dCddOw0KCQl9DQoJCS8vIE5vcGUsIGxldHMgdXNlIGludGVybmFsIHRodW1icyBpbnN0ZWFkLg0KCQllbHNlIHsNCgkJDQoJCQkkdXJsID0gJGNvbmZpZ1sndXBsb2Fkc191cmwnXSAuICcvR0JGaWxlUGlja2VyVGh1bWJzJzsJDQoJCQkkdmFsdWUgPSBleHBsb2RlKCcvJywgJHRoaXMtPkdldFZhbHVlKCkpOyAvLyA8LSBTdGF0aWMgcHJlc2VudGF0aW9uIG9mIERJUkVDVE9SWV9TRVBBUkFUT1IsIHdyb25nIGJ1dCBHQkZpbGVQaWNrZXIgYWluJ3Qgc3VwcG9ydGluZyBpdCEJCQ0KCQkJJGFjdHVhbF92YWx1ZSA9IGFycmF5X3BvcCgkdmFsdWUpOw0KCQkJJHVybCAuPSAnL3RodW1iXyc7DQoJCQlpZihjb3VudCgkdmFsdWUpKSB7DQoJCQkJDQoJCQkJZm9yZWFjaCgkX2ludmFsaWQgYXMgJG9uZSkgew0KCQkJCQkJCQkNCgkJCQkJaWYoaW5fYXJyYXkoJG9uZSwgJHZhbHVlKSkgew0KCQkJCQkNCgkJCQkJCSRrZXkgPSBhcnJheV9zZWFyY2goJG9uZSwgJHZhbHVlKTsNCgkJCQkJCWlmKCRrZXkgIT09IEZBTFNFKQ0KCQkJCQkJCXVuc2V0KCR2YWx1ZVska2V5XSk7DQoJCQkJCX0NCgkJCQl9DQoJCQkJDQoJCQkJJHVybCAuPSBpbXBsb2RlKCItIiwgJHZhbHVlKSAuICdfJzsJDQoJCQl9DQoJCQkkdXJsIC49ICRhY3R1YWxfdmFsdWU7DQoJCX0NCgkJDQoJCXJldHVybiAnPGEgaHJlZj0iJy4kaHJlZi4nIiBjbGFzcz0iY2JveCB0aHVtYiI+PGltZyBzcmM9IicuJHVybC4nIiB3aWR0aD0iNDgiIGhlaWdodD0iNDgiIC8+PC9hPic7CQkNCgl9DQoJCQkNCglwdWJsaWMgZnVuY3Rpb24gR2V0SW5wdXQoJGlkKQ0KCXsNCgkJJGNvbmZpZyA9IGNtc21zKCktPkdldENvbmZpZygpOw0KCQkkbW9kID0gJHRoaXMtPkdldE1vZHVsZUluc3RhbmNlKCk7DQoJCQ0KCQkkR0JGaWxlUGlja2VyID0gY21zbXMoKS0+R2V0TW9kdWxlSW5zdGFuY2UoJ0dCRmlsZVBpY2tlcicpOw0KCQlpZihpc19vYmplY3QoJEdCRmlsZVBpY2tlcikpIHsNCgkJDQoJCQkvLyRkaXIgPSAkdGhpcy0+X0NvbXBpbGVFeHRyYURpcigkdGhpcy0+R2V0T3B0aW9uVmFsdWUoJ2RpcicpLCAkdGhpcy0+R2V0SXRlbUlkKCksICR0aGlzLT5HZXRBbGlhcygpKTsNCgkJCSRkaXIgPSAkdGhpcy0+R2V0T3B0aW9uVmFsdWUoJ2RpcicpOw0KDQoJCQkvL2lmKCRkaXIgIT09IGZhbHNlKXsNCgkJCQ0KCQkJLy8gbWFrZSBkaXIgaWYgbm90IGV4aXN0cw0KCQkJJHBhdGggPSAkY29uZmlnWyd1cGxvYWRzX3BhdGgnXSAuIERJUkVDVE9SWV9TRVBBUkFUT1IgLiAkZGlyOw0KCQkJaWYoIWlzX2RpcigkcGF0aCkpew0KCQkJCUBta2RpcigkcGF0aCwgMDc3NywgdHJ1ZSk7DQoJCQl9DQoNCgkJCS8vIEdCRmlsZVBpY2tlciAiVXBkYXRlIGRyb3Bkb3duIiBkb2VzIG5vdCB3b3JrIGlmIGlkIGNvbnRhaW5zICJbXSIsIHN0cmlwIGl0IG91dA0KCQkJJG5hbWUgPSAnY3VzdG9tZmllbGRbJy4kdGhpcy0+R2V0SWQoKS4nXSc7DQoJCQkkc2F2ZW5hbWUgPSAnY3VzdG9tZmllbGRfJy4kdGhpcy0+R2V0SWQoKS4nXyc7DQoNCgkJCSRnYmZpbGVwaWNrZXIgPSAkR0JGaWxlUGlja2VyLT5DcmVhdGVGaWxlUGlja2VySW5wdXQoJEdCRmlsZVBpY2tlciwgJGlkLCAkc2F2ZW5hbWUsICR0aGlzLT5HZXRWYWx1ZSgpLCBhcnJheSgNCgkJCQknbWVkaWFfdHlwZScgPT4gKCR0aGlzLT5HZXRPcHRpb25WYWx1ZSgnaW1hZ2UnKT8naW1hZ2UnOidmaWxlJyksDQoJCQkJJ2ZpbGVfZXh0ZW5zaW9ucycgPT4gJHRoaXMtPkdldE9wdGlvblZhbHVlKCdhbGxvd2VkJyksDQoJCQkJJ2RpcicgPT4gJGRpciwNCgkJCQkndXBsb2FkJyA9PiB0cnVlLA0KCQkJCSdleGNsdWRlX3ByZWZpeCcgPT4gJHRoaXMtPkdldE9wdGlvblZhbHVlKCdleGNsdWRlX3ByZWZpeCcpLA0KCQkJCSdtb2RlJyA9PiAoJHRoaXMtPkdldE9wdGlvblZhbHVlKCdmaWxlYnJvd3NlcicpPydicm93c2VyJzonZHJvcGRvd24nKSwNCgkJCQknY3JlYXRlX2RpcnMnID0+ICR0aGlzLT5HZXRPcHRpb25WYWx1ZSgnY3JlYXRlX2RpcnMnKSwNCgkJCQknZGVsZXRlJyA9PiAkdGhpcy0+R2V0T3B0aW9uVmFsdWUoJ2RlbGV0ZScpLA0KCQkJCSdzaG93X3N1YmRpcnMnID0+ICR0aGlzLT5HZXRPcHRpb25WYWx1ZSgnc2hvd19zdWJkaXJzJykNCgkJCSkpOw0KDQoJCQkkc2VhcmNoICAgICAgID0gJ25hbWU9IicuJGlkLiRzYXZlbmFtZTsNCgkJCSRyZXBsYWNlICAgICAgPSAnbmFtZT0iJy4kaWQuJG5hbWU7DQoJCQkkZ2JmaWxlcGlja2VyID0gc3RyX3JlcGxhY2UoJHNlYXJjaCwgJHJlcGxhY2UsICRnYmZpbGVwaWNrZXIpOw0KDQoJCQlyZXR1cm4gJGdiZmlsZXBpY2tlcjsNCgkJCS8qCQ0KCQkJfSBlbHNlIHsNCgkJCQ0KCQkJCXJldHVybiAkdGhpcy0+TW9kTGFuZygncGF0aGNvbnRhaW5zdmFycycsICRtb2QtPkdldFByZWZlcmVuY2UoJ2l0ZW1fc2luZ3VsYXInLCAnJykpOw0KCQkJfQ0KCQkJKi8NCgkJfQ0KCX0NCi8qCQ0KCXByaXZhdGUgZnVuY3Rpb24gX0NvbXBpbGVFeHRyYURpcigkcGF0aCwgJGl0ZW1faWQgPSBudWxsLCAkaXRlbV9hbGlhcyA9IG51bGwpew0KDQoJCWlmKHN0cnBvcygkcGF0aCwgJ3skaXRlbV9hbGlhc30nKSAhPT0gZmFsc2Upew0KCQkJaWYoIWlzc2V0KCRpdGVtX2FsaWFzKSB8fCBzdHJsZW4oJGl0ZW1fYWxpYXMpID09IDApDQoJCQkJcmV0dXJuIGZhbHNlOw0KCQkJJHBhdGggPSBzdHJfcmVwbGFjZSgneyRpdGVtX2FsaWFzfScsICRpdGVtX2FsaWFzLCAkcGF0aCk7DQoJCX0NCgkJaWYoc3RycG9zKCRwYXRoLCAneyRpdGVtX2lkfScpICE9PSBmYWxzZSl7DQoJCQlpZighaXNzZXQoJGl0ZW1faWQpIHx8ICFpc19pbnQoJGl0ZW1faWQpKQ0KCQkJCXJldHVybiBmYWxzZTsNCgkJCSRwYXRoID0gc3RyX3JlcGxhY2UoJ3skaXRlbV9pZH0nLCAkaXRlbV9pZCwgJHBhdGgpOw0KCQl9DQoNCgkJcmV0dXJuICRwYXRoOw0KCX0NCiovCQ0KfSAvLyBlbmQgb2YgY2xhc3MNCj8+]]></data>
	</file>
	<file>
	  <filename>/lib/fielddefs/GBFilePicker/output.GBFilePicker.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[eyRmaWVsZGRlZi5uYW1lfTogPGEgaHJlZj0ieyRmaWVsZGRlZi0+R2V0SW1hZ2VQYXRoKHRydWUpfS97JGZpZWxkZGVmLnZhbHVlfSI+eyRmaWVsZGRlZi52YWx1ZX08L2E+]]></data>
	</file>
	<file>
	  <filename>/lib/fielddefs/HelpPopup</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/lib/fielddefs/HelpPopup/admin.HelpPopup.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[eyRvcHRzID0gJGZpZWxkZGVmLT5HZXRPcHRpb25zKCl9CjxmaWVsZHNldD4KICA8bGVnZW5kPnskZmllbGRkZWYtPk1vZExhbmcoJ29wdGlvbnMnKX08L2xlZ2VuZD4KCiAgPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KICAgIDxwIGNsYXNzPSJwYWdldGV4dCI+eyRmaWVsZGRlZi0+TW9kTGFuZygnZmllbGRkZWZfcGhfdGl0bGUnKX06PC9wPgogICAgPHAgY2xhc3M9InBhZ2VpbnB1dCI+CiAgICAgIDxpbnB1dCB0eXBlPSJ0ZXh0IiBuYW1lPSJ7JGFjdGlvbmlkfWN1c3RvbV9pbnB1dFt0aXRsZV0iIHZhbHVlPSJ7JG9wdHMudGl0bGV9IiAvPgogICAgPC9wPgogICAgPHAgY2xhc3M9InBhZ2V0ZXh0Ij48ZGl2IGNsYXNzPSJpbmZvcm1hdGlvbiI+eyRmaWVsZGRlZi0+TW9kTGFuZygnZmllbGRkZWZfcGhfdGl0bGVfaGVscCcpfTwvZGl2PjwvcD4KICA8L2Rpdj4KCiAgPGhyPgoKICA8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgogICAgPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JGZpZWxkZGVmLT5Nb2RMYW5nKCdmaWVsZGRlZl9waF9tc2cnKX06PC9wPgogICAgPHAgY2xhc3M9InBhZ2VpbnB1dCI+CiAgICAgIDx0ZXh0YXJlYSByb3dzPSIxMCIgbmFtZT0ieyRhY3Rpb25pZH1jdXN0b21faW5wdXRbbXNnXSI+eyRvcHRzLm1zZ308L3RleHRhcmVhPgogICAgPC9wPgogICAgPHAgY2xhc3M9InBhZ2V0ZXh0Ij48ZGl2IGNsYXNzPSJpbmZvcm1hdGlvbiI+eyRmaWVsZGRlZi0+TW9kTGFuZygnZmllbGRkZWZfcGhfbXNnX2hlbHAnKX08L2Rpdj48L3A+CiAgPC9kaXY+Cgo8L2ZpZWxkc2V0Pg==]]></data>
	</file>
	<file>
	  <filename>/lib/fielddefs/HelpPopup/help.HelpPopup.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PGJ1dHRvbiBjbGFzcz0iYWNjb3JkaW9uIj48c3Ryb25nPnskZmllbGRkZWYtPkdldEZyaWVuZGx5VHlwZSgpfTwvc3Ryb25nPjwvYnV0dG9uPgoKPGRpdiBjbGFzcz0iYWNjcGFuZWwiPgoKICA8aDQ+V2hhdCBkb2VzIGl0IGRvPzwvaDQ+CnsqCiAgPHA+VGhpcyBmaWVsZCBkZWZpbml0aW9uIGNhbiBiZSB1c2VkIHRvIGFkZCA8c3Ryb25nPnJlYWQgb25seSB0ZXh0IGJsb2Nrczwvc3Ryb25nPiB0byBhbiBpdGVtLiBUaGUgYmxvY2sgd2lsbCBiZSByZW5kZXJlZAogICAgaW5zaWRlIGFuIDxzdHJvbmc+SFRNTCBkaXYgdGFnPC9zdHJvbmc+IHdoaWNoIG1heSBoYXZlIGEgY2xhc3Mgc2VsZWN0ZWQgZnJvbSB0aGUgPHN0cm9uZz5Db250YWluZXIgRElWIFR5cGU8L3N0cm9uZz4KICAgIG9wdGlvbi4gVGhlIGNsYXNzZXMgbGlzdGVkIHRoZXJlIG1heSBkaWZmZXIgd2l0aCBMSVNFIGFuZCBDTVNNUyBjb3JlIHZlcnNpb25zIG9yIHdpdGggdGhlIDxzdHJvbmc+QWRtaW5pc3RyYXRpb24gVGhlbWU8L3N0cm9uZz4gdXNlZC48L3A+CgogIDxwPlRoZSBibG9jayBvZiB0ZXh0IHdpbGwgYmUgcG9zaXRpb25lZCBhcyBhbnkgb3RoZXIgZmllbGQgdHlwZSBhbmQgY2FuIGJlIG9yZGVyZWQgaW4gdGhlIDxzdHJvbmc+RmllbGQgRGVmaW5pdGlvbnM8L3N0cm9uZz4gdGFiLjwvcD4KKn0KVE9ETyEKICA8aDQ+SG93IGRvIEkgdXNlIGl0PzwvaDQ+CgogIDxwPlRoZSBzZXR0aW5ncyBmb3IgdGhpcyBmaWVsZCBhcmU6PC9wPgp7KgogIDx1bD4KICAgIDxsaT48c3Ryb25nPkNvbnRhaW5lciBESVYgVHlwZTo8L3N0cm9uZz4KICAgICAgPHVsPgogICAgICAgIDxsaT5Ob25lIC0gdGhlIHRleHQgYmxvY2sgd2lsbCBiZSByZW5kZXJlZCB3aXRob3V0IGFueSBzcGVjaWFsIGNsYXNzOzwvbGk+CiAgICAgICAgPGxpPkdyZWVuIC0gPHNwYW4gY2xhc3M9ImdyZWVuIj50aGUgdGV4dCBibG9jayB3aWxsIGJlIHJlbmRlcmVkIHdpdGggdGhlIGNsYXNzIDxzdHJvbmc+Z3JlZW48L3N0cm9uZz48L3NwYW4+PC9saT4KICAgICAgICA8bGk+WWVsbG93IC0gPHNwYW4gY2xhc3M9InllbGxvdyI+dGhlIHRleHQgYmxvY2sgd2lsbCBiZSByZW5kZXJlZCB3aXRoIHRoZSBjbGFzcyA8c3Ryb25nPnllbGxvdzwvc3Ryb25nPjwvc3Bhbj48L2xpPgogICAgICAgIDxsaT5SZWQgLSA8c3BhbiBjbGFzcz0icmVkIj50aGUgdGV4dCBibG9jayB3aWxsIGJlIHJlbmRlcmVkIHdpdGggdGhlIGNsYXNzIDxzdHJvbmc+cmVkPC9zdHJvbmc+PC9zcGFuPjwvbGk+CiAgICAgICAgPGxpPkluZm9ybWF0aW9uIC0gPHNwYW4gY2xhc3M9ImluZm9ybWF0aW9uIj50aGUgdGV4dCBibG9jayB3aWxsIGJlIHJlbmRlcmVkIHdpdGggdGhlIGNsYXNzIDxzdHJvbmc+aW5mb3JtYXRpb248L3N0cm9uZz48L3NwYW4+PC9saT4KICAgICAgICA8bGk+V2FybmluZyAtIDxzcGFuIGNsYXNzPSJ3YXJuaW5nIj50aGUgdGV4dCBibG9jayB3aWxsIGJlIHJlbmRlcmVkIHdpdGggdGhlIGNsYXNzIDxzdHJvbmc+d2FybmluZzwvc3Ryb25nPjwvc3Bhbj48L2xpPgogICAgICA8L3VsPgogICAgPC9saT4KICAgIDxsaT48c3Ryb25nPlRleHQ8L3N0cm9uZz46IHRoZSB0ZXh0IHRvIGluc2VydCBpbiB0aGUgYmxvY2suIEJlIGNhcmVmdWxsIHdpdGggdGhlIEhUTUwgdGFncyB1c2VkIGFzIGl0IG1heSBicmVhayB0aGUgaXRlbXMgZm9ybSBwYWdlOzwvbGk+CiAgPC91bD4KCiAgPGRpdiBjbGFzcz0id2FybmluZyI+PHN0cm9uZz5Ob3RlOjwvc3Ryb25nPiB0aGVzZSBvcHRpb25zIG1heSB2YXJ5IHdpdGggTElTRSB2ZXJzaW9uLCBDTVNNUyBjb3JlIHZlcnNpb24gYXMgd2VsbCBhcyB0aGUgPHN0cm9uZz5BZG1pbmlzdHJhdGlvbiBUaGVtZTwvc3Ryb25nPiBzZWxlY3RlZC4gVGhlIGN1cnJlbnQgc2V0dGluZ3MgaGF2ZSBiZWVuIHRlc3RlZCB3aXRoIDxzdHJvbmc+T25lRWxldmVuPC9zdHJvbmc+ICgyLjIueCkgYW5kIDxzdHJvbmc+TWFyaWdvbGQ8L3N0cm9uZz4gKDIuMy54KS48L2Rpdj4KKn0KCjwvZGl2Pg==]]></data>
	</file>
	<file>
	  <filename>/lib/fielddefs/HelpPopup/index.html</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PCEtLSBEVU1NWSBIVE1MIEZJTEUgLS0+]]></data>
	</file>
	<file>
	  <filename>/lib/fielddefs/HelpPopup/input.HelpPopup.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[eyRpZCA9ICRmaWVsZGRlZi0+R2V0SWQoKX0NCnskb3B0aW9ucyA9ICRmaWVsZGRlZi0+R2V0T3B0aW9ucygpfQ0Ke2lmICFlbXB0eSgkb3B0aW9ucy50aXRsZSl9DQogIDxkaXYgaWQ9InBsYWNlLWhvbGRlci17JGlkfSI+PC9kaXY+DQogIDxzcGFuIGlkPSJvcGVuZXIteyRpZH0iPg0KICAgIDxpbWcgY2xhc3M9ImNtc19oZWxwaWNvbiIgc3JjPSJ7JGZpZWxkZGVmLT5HZXRJY29uKCl9IiB7KiBhbHQ9IiIgKn0+DQogIDwvc3Bhbj4NCg0KICAgIDxkaXYgaWQ9ImRpYWxvZy17JGlkfSIgdGl0bGU9Inskb3B0aW9ucy50aXRsZXxzdHJpcF90YWdzOmZhbHNlfSI+DQogICAgICB7JG9wdGlvbnMubXNnfQ0KICAgIDwvZGl2Pg0KDQogIDxzY3JpcHQ+DQogICAgJChmdW5jdGlvbigpDQogICAgew0KICAgICAkKCAiI29wZW5lci17JGlkfSIgKQ0KICAgICAgIC5hcHBlbmRUbygNCiAgICAgICAgICQoIiNwbGFjZS1ob2xkZXIteyRpZH0iKQ0KICAgICAgICAgICAucGFyZW50KCkNCiAgICAgICAgICAgLnByZXYoKQ0KICAgICAgICAgICAuZmluZCgiLnBhZ2V0ZXh0IikNCiAgICAgICApOw0KDQogICAgICQoICIjZGlhbG9nLXskaWR9IiApDQogICAgICAgLmRpYWxvZyh7DQogICAgICAgICAgICAgICAgIGF1dG9PcGVuOiBmYWxzZSwNCiAgICAgICAgICAgICAgICAgZHJhZ2dhYmxlOiB0cnVlLA0KICAgICAgICAgICAgICAgICBkcmFnOiBmdW5jdGlvbihldmVudCwgdWkpIHsNCiAgICAgICAgICAgICAgICAgICB2YXIgZml4UGl4ID0gJChkb2N1bWVudCkuc2Nyb2xsVG9wKCk7DQogICAgICAgICAgICAgICAgICAgaU9iaiA9IHVpLnBvc2l0aW9uOw0KICAgICAgICAgICAgICAgICAgIGlPYmoudG9wID0gaU9iai50b3AgLSBmaXhQaXg7DQogICAgICAgICAgICAgICAgICAgJCh0aGlzKS5jbG9zZXN0KCIudWktZGlhbG9nIikuY3NzKCJ0b3AiLCBpT2JqLnRvcCArICJweCIpOw0KICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICB9KTsNCg0KICAgICAkKCAiI29wZW5lci17JGlkfSIgKQ0KICAgICAgIC5jbGljayhmdW5jdGlvbigpDQogICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAkKCAiI2RpYWxvZy17JGlkfSIgKS5kaWFsb2coICJvcGVuIiApOw0KICAgICAgICAgICAgICB9KTsNCiAgICB9KTsNCiAgPC9zY3JpcHQ+DQp7L2lmfQ==]]></data>
	</file>
	<file>
	  <filename>/lib/fielddefs/HelpPopup/lisefd.HelpPopup.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKY2xhc3MgbGlzZWZkX0hlbHBQb3B1cCBleHRlbmRzIExJU0VGaWVsZGRlZkJhc2UKewogIHByaXZhdGUgJF9vcHRzID0gYXJyYXkoKTsKICAKCXB1YmxpYyBmdW5jdGlvbiBfX2NvbnN0cnVjdCgkZGJfaW5mbywgJGNhbGxlcl9vYmplY3QpCgl7CQoJCXBhcmVudDo6X19jb25zdHJ1Y3QoJGRiX2luZm8sICRjYWxsZXJfb2JqZWN0KTsKICAgIAkJCgkJJHRoaXMtPlNldEZyaWVuZGx5VHlwZSgkdGhpcy0+TW9kTGFuZygnZmllbGRkZWZfSGVscFBvcHVwJykpOwoJfQogIAogIHB1YmxpYyBmdW5jdGlvbiBHZXRPcHRpb25zKCkKICB7CiAgICAkdGhpcy0+X29wdHNbJ3RpdGxlJ10gPSAkdGhpcy0+R2V0T3B0aW9uVmFsdWUoJ3RpdGxlJywgJycpOwogICAgJHRoaXMtPl9vcHRzWydtc2cnXSA9ICR0aGlzLT5HZXRPcHRpb25WYWx1ZSgnbXNnJywgJycpOwogICAgCiAgICByZXR1cm4gJHRoaXMtPl9vcHRzOwogIH0KICAKICBwdWJsaWMgZnVuY3Rpb24gR2V0SWNvbigpCiAgewogICAgJHRoZW1lID0gY21zX3V0aWxzOjpnZXRfdGhlbWVfb2JqZWN0KCk7CiAgICBpZiggIWlzX29iamVjdCgkdGhlbWUpICkgcmV0dXJuOwogICAgJGNvbmZpZyA9IFxjbXNfY29uZmlnOjpnZXRfaW5zdGFuY2UoKTsKICAgICRpY29uX3VybCA9ICRjb25maWdbJ2FkbWluX3VybCddCiAgICAgICAgICAgICAgICAuICcvdGhlbWVzLycKICAgICAgICAgICAgICAgIC4gJHRoZW1lLT50aGVtZU5hbWUKICAgICAgICAgICAgICAgIC4gJy9pbWFnZXMvL2ljb25zL3N5c3RlbS9pbmZvLmdpZic7CiAgICByZXR1cm4gJGljb25fdXJsOwogIH0KICAKfQ==]]></data>
	</file>
	<file>
	  <filename>/lib/fielddefs/index.html</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[]]></data>
	</file>
	<file>
	  <filename>/lib/fielddefs/JMFilePicker</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/lib/fielddefs/JMFilePicker/admin.JMFilePicker.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PGZpZWxkc2V0PgogIDxsZWdlbmQ+eyRmaWVsZGRlZi0+TW9kTGFuZygnb3B0aW9ucycpfTwvbGVnZW5kPiAgCiAgPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KICAgIDxwIGNsYXNzPSJwYWdldGV4dCI+eyRmaWVsZGRlZi0+TW9kTGFuZygnYWxsb3dlZCcpfTo8L3A+CiAgICA8cCBjbGFzcz0icGFnZWlucHV0Ij4KICAgICAgPGlucHV0IHR5cGU9InRleHQiIG5hbWU9InskYWN0aW9uaWR9Y3VzdG9tX2lucHV0W2FsbG93ZWRdIiB2YWx1ZT0ieyRmaWVsZGRlZi0+R2V0T3B0aW9uVmFsdWUoJ2FsbG93ZWQnLCAncGRmLGdpZixqcGVnLGpwZycpfSIgLz4KICAgIDwvcD4KICAgIDxwIGNsYXNzPSJwYWdldGV4dCI+PGRpdiBjbGFzcz0iaW5mb3JtYXRpb24iPnskZmllbGRkZWYtPk1vZExhbmcoJ2ZpZWxkZGVmX0pNRlBfYWxsb3dfaGVscCcpfTwvZGl2PjwvcD4KICA8L2Rpdj4KICA8aHI+CiAgPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KICAgIDxwIGNsYXNzPSJwYWdldGV4dCI+eyRmaWVsZGRlZi0+TW9kTGFuZygnZGlyJyl9OjwvcD4KICAgIDxwIGNsYXNzPSJwYWdlaW5wdXQiPgogICAgICA8aW5wdXQgdHlwZT0idGV4dCIgbmFtZT0ieyRhY3Rpb25pZH1jdXN0b21faW5wdXRbZGlyXSIgdmFsdWU9InskZmllbGRkZWYtPkdldE9wdGlvblZhbHVlKCdkaXInLCdpbWFnZXMnKX0iIC8+CiAgICA8L3A+CiAgICA8cCBjbGFzcz0icGFnZXRleHQiPjxkaXYgY2xhc3M9ImluZm9ybWF0aW9uIj57JGZpZWxkZGVmLT5Nb2RMYW5nKCdmaWVsZGRlZl9KTUZQX2Rpcl9oZWxwJyl9PC9kaXY+PC9wPgogIDwvZGl2PgogIDxocj4KICA8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgogICAgPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JGZpZWxkZGVmLT5Nb2RMYW5nKCdleGNsdWRlX3ByZWZpeCcpfTo8L3A+CiAgICA8cCBjbGFzcz0icGFnZWlucHV0Ij4KICAgICAgPGlucHV0IHR5cGU9InRleHQiIG5hbWU9InskYWN0aW9uaWR9Y3VzdG9tX2lucHV0W2V4Y2x1ZGVfcHJlZml4XSIgdmFsdWU9InskZmllbGRkZWYtPkdldE9wdGlvblZhbHVlKCdleGNsdWRlX3ByZWZpeCcpfSIgLz4KICA8L3A+CiAgPHAgY2xhc3M9InBhZ2V0ZXh0Ij48ZGl2IGNsYXNzPSJpbmZvcm1hdGlvbiI+eyRmaWVsZGRlZi0+TW9kTGFuZygnZmllbGRkZWZfSk1GUF9leGNsdWRlX3ByZWZpeF9oZWxwJyl9PC9kaXY+PC9wPgogIDwvZGl2PgogIDxocj4KICA8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgogICAgPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JGZpZWxkZGVmLT5Nb2RMYW5nKCdmaWVsZGRlZl9KTUZpbGVQaWNrZXJfZmlsZWJyb3dzZXInKX06PC9wPgogICAgPHAgY2xhc3M9InBhZ2VpbnB1dCI+CiAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9InskYWN0aW9uaWR9Y3VzdG9tX2lucHV0W2ZpbGVicm93c2VyXSIgdmFsdWU9IjAiIC8+CiAgICAgIDxpbnB1dCB0eXBlPSJjaGVja2JveCIgbmFtZT0ieyRhY3Rpb25pZH1jdXN0b21faW5wdXRbZmlsZWJyb3dzZXJdIiB2YWx1ZT0iMSJ7aWYgJGZpZWxkZGVmLT5HZXRPcHRpb25WYWx1ZSgnZmlsZWJyb3dzZXInKX1jaGVja2VkPSJjaGVja2VkInsvaWZ9IC8+CiAgPC9wPgogIDxwIGNsYXNzPSJwYWdldGV4dCI+PGRpdiBjbGFzcz0iaW5mb3JtYXRpb24iPnskZmllbGRkZWYtPk1vZExhbmcoJ2ZpZWxkZGVmX0pNRlBfZmlsZWJyb3dzZXJfaGVscCcpfTwvZGl2PjwvcD4KICA8L2Rpdj4KICA8aHI+CiAgPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KICAgIDxwIGNsYXNzPSJwYWdldGV4dCI+eyRmaWVsZGRlZi0+TW9kTGFuZygnZmllbGRkZWZfSk1GaWxlUGlja2VyX2ltYWdlJyl9OjwvcD4KICAgIDxwIGNsYXNzPSJwYWdlaW5wdXQiPgogICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJ7JGFjdGlvbmlkfWN1c3RvbV9pbnB1dFtpbWFnZV0iIHZhbHVlPSIwIiAvPgogICAgICA8aW5wdXQgdHlwZT0iY2hlY2tib3giIG5hbWU9InskYWN0aW9uaWR9Y3VzdG9tX2lucHV0W2ltYWdlXSIgdmFsdWU9IjEie2lmICRmaWVsZGRlZi0+R2V0T3B0aW9uVmFsdWUoJ2ltYWdlJyl9Y2hlY2tlZD0iY2hlY2tlZCJ7L2lmfSAvPgogICAgPC9wPgogICAgPHAgY2xhc3M9InBhZ2V0ZXh0Ij48ZGl2IGNsYXNzPSJpbmZvcm1hdGlvbiI+eyRmaWVsZGRlZi0+TW9kTGFuZygnZmllbGRkZWZfSk1GUF9tZWRpYV90eXBlX2hlbHAnKX08L2Rpdj48L3A+CiAgPC9kaXY+CiAgPGhyPgogIDxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CiAgICA8cCBjbGFzcz0icGFnZXRleHQiPnskZmllbGRkZWYtPk1vZExhbmcoJ2ZpZWxkZGVmX0pNRmlsZVBpY2tlcl9jcmVhdGVfZGlycycpfTo8L3A+CiAgICA8cCBjbGFzcz0icGFnZWlucHV0Ij4KICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0ieyRhY3Rpb25pZH1jdXN0b21faW5wdXRbY3JlYXRlX2RpcnNdIiB2YWx1ZT0iMCIgLz4KICAgICAgPGlucHV0IHR5cGU9ImNoZWNrYm94IiBuYW1lPSJ7JGFjdGlvbmlkfWN1c3RvbV9pbnB1dFtjcmVhdGVfZGlyc10iIHZhbHVlPSIxIntpZiAkZmllbGRkZWYtPkdldE9wdGlvblZhbHVlKCdjcmVhdGVfZGlycycpfWNoZWNrZWQ9ImNoZWNrZWQiey9pZn0gLz4KICAgIDwvcD4KICAgIDxwIGNsYXNzPSJwYWdldGV4dCI+PGRpdiBjbGFzcz0iaW5mb3JtYXRpb24iPnskZmllbGRkZWYtPk1vZExhbmcoJ2ZpZWxkZGVmX0pNRlBfY3JlYXRlX2RpcnNfaGVscCcpfTwvZGl2PjwvcD4KICA8L2Rpdj4KICA8aHI+CiAgPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KICAgIDxwIGNsYXNzPSJwYWdldGV4dCI+eyRmaWVsZGRlZi0+TW9kTGFuZygnZmllbGRkZWZfSk1GaWxlUGlja2VyX2RlbGV0ZScpfTo8L3A+CiAgICA8cCBjbGFzcz0icGFnZWlucHV0Ij4KICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0ieyRhY3Rpb25pZH1jdXN0b21faW5wdXRbZGVsZXRlXSIgdmFsdWU9IjAiIC8+CiAgICAgIDxpbnB1dCB0eXBlPSJjaGVja2JveCIgbmFtZT0ieyRhY3Rpb25pZH1jdXN0b21faW5wdXRbZGVsZXRlXSIgdmFsdWU9IjEie2lmICRmaWVsZGRlZi0+R2V0T3B0aW9uVmFsdWUoJ2RlbGV0ZScpfWNoZWNrZWQ9ImNoZWNrZWQiey9pZn0gLz4KICAgIDwvcD4KICAgIDxwIGNsYXNzPSJwYWdldGV4dCI+PGRpdiBjbGFzcz0iaW5mb3JtYXRpb24iPnskZmllbGRkZWYtPk1vZExhbmcoJ2ZpZWxkZGVmX0pNRlBfZGVsZXRlX2hlbHAnKX08L2Rpdj48L3A+CiAgPC9kaXY+CiAgPGhyPgogIDxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CiAgICA8cCBjbGFzcz0icGFnZXRleHQiPnskZmllbGRkZWYtPk1vZExhbmcoJ2ZpZWxkZGVmX0pNRmlsZVBpY2tlcl9zaG93X3N1YmRpcnMnKX06PC9wPgogICAgPHAgY2xhc3M9InBhZ2VpbnB1dCI+CiAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9InskYWN0aW9uaWR9Y3VzdG9tX2lucHV0W3Nob3dfc3ViZGlyc10iIHZhbHVlPSIwIiAvPgogICAgICA8aW5wdXQgdHlwZT0iY2hlY2tib3giIG5hbWU9InskYWN0aW9uaWR9Y3VzdG9tX2lucHV0W3Nob3dfc3ViZGlyc10iIHZhbHVlPSIxIntpZiAkZmllbGRkZWYtPkdldE9wdGlvblZhbHVlKCdzaG93X3N1YmRpcnMnKX1jaGVja2VkPSJjaGVja2VkInsvaWZ9IC8+CiAgICA8L3A+CiAgICA8cCBjbGFzcz0icGFnZXRleHQiPjxkaXYgY2xhc3M9ImluZm9ybWF0aW9uIj57JGZpZWxkZGVmLT5Nb2RMYW5nKCdmaWVsZGRlZl9KTUZQX3Nob3dfc3ViZGlyc19oZWxwJyl9PC9kaXY+PC9wPgogIDwvZGl2Pgo8L2ZpZWxkc2V0Pg==]]></data>
	</file>
	<file>
	  <filename>/lib/fielddefs/JMFilePicker/help.JMFilePicker.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PGJ1dHRvbiBjbGFzcz0iYWNjb3JkaW9uIj48c3Ryb25nPnskZmllbGRkZWYtPkdldEZyaWVuZGx5VHlwZSgpfTwvc3Ryb25nPjwvYnV0dG9uPgoKPGRpdiBjbGFzcz0iYWNjcGFuZWwiPgoKCTxwIGNsYXNzPSJ3YXJuaW5nIj48Yj5Ob3RlOjwvYj4gVGhlIHVzZSBvZiB0aGlzIGZpZWxkIGRlZmluaXRpb24gZGVwZW5kcyBvbiB0aGUgcHJlc2VuY2Ugb2YgdGhlIEpNRmlsZVBpY2tlciBtb2R1bGUuPC9wPgoKCTxoND5XaGF0IGRvZXMgaXQgZG8/PC9oND4KCgk8cD5UaGlzIGZpZWxkIGRlZmluaXRpb24gY2FuIGJlIHVzZWQgdG8gYWRkIGEgPHN0cm9uZz5KTUZpbGVQaWNrZXI8L3N0cm9uZz4gZmllbGQgdG8gYSBMSVNFIGl0ZW0uPC9wPgoKCTxwPlRPRE88L3A+CgoKCTxoND5Ib3cgZG8gSSB1c2UgaXQ/PC9oND4KCgk8cD5UT0RPPC9wPgoKCTxwPlRoZSBzZXR0aW5ncyBmb3IgdGhpcyBmaWVsZCBhcmU6PC9wPgoKCTx1bD4KCQk8bGk+PGI+VE9ETzo8L2I+CiAJCQk8dWw+CiAJCQkJPGxpPiA8L2xpPgoJCQk8L3VsPgoJCTwvbGk+CgkJPGxpPjxiPiA8L2I+PC9saT4KCQk8bGk+PGI+IDwvYj48L2xpPgoJCTxsaT48Yj4gPC9iPjwvbGk+Cgk8L3VsPgoKPC9kaXY+]]></data>
	</file>
	<file>
	  <filename>/lib/fielddefs/JMFilePicker/index.html</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PCEtLSBEVU1NWSBIVE1MIEZJTEUgLS0+]]></data>
	</file>
	<file>
	  <filename>/lib/fielddefs/JMFilePicker/input.JMFilePicker.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KCTxwIGNsYXNzPSJwYWdldGV4dCI+eyRmaWVsZGRlZi0+R2V0TmFtZSgpfXtpZiAkZmllbGRkZWYtPklzUmVxdWlyZWQoKX0qey9pZn06PC9wPgoJPHAgY2xhc3M9InBhZ2VpbnB1dCI+CgkJe2lmICRmaWVsZGRlZi0+R2V0RGVzYygpfSh7JGZpZWxkZGVmLT5HZXREZXNjKCl9KTxiciAvPnsvaWZ9CgkJeyRmaWVsZGRlZi0+R2V0SW5wdXQoJGFjdGlvbmlkKX0KCTwvcD4KPC9kaXY+]]></data>
	</file>
	<file>
	  <filename>/lib/fielddefs/JMFilePicker/lisefd.JMFilePicker.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHANCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQojIExJU0UgLSBMaXN0IEl0IFNwZWNpYWwgRWRpdGlvbg0KIyBWZXJzaW9uIDEuMg0KIyBBIGZvcmsgb2YgTGlzdEkyDQojIG1haW50YWluZWQgYnkgRmVybmFuZG8gTW9yZ2FkbyBBS0EgSm8gTW9yZw0KIyBzaW5jZSAyMDE1DQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIw0KIyBPcmlnaW5hbCBBdXRob3I6IEJlbiBNYWxlbiwgPGJlbkBjb25jZXB0ZmFjdG9yeS5jb20uYXU+DQojIENvLU1haW50YWluZXI6IFNpbW9uIFJhZGZvcmQsIDxzaW1vbkBjb25jZXB0ZmFjdG9yeS5jb20uYXU+DQojIFdlYjogd3d3LmNvbmNlcHRmYWN0b3J5LmNvbS5hdQ0KIw0KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCiMNCiMgTWFpbnRhaW5lciBzaW5jZSAyMDExIHVwIHRvIDIwMTQ6IEpvbmF0aGFuIFNjaG1pZCwgPGhpQGpvbmF0aGFuc2NobWlkLmRlPg0KIyBXZWI6IHd3dy5qb25hdGhhbnNjaG1pZC5kZQ0KIw0KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCiMNCiMgU29tZSB3YWNrb3Mgc3RhcnRlZCBkZXN0cm95aW5nIHN0dWZmIHNpbmNlIDIwMTIgYW5kIHN0b3BwZWQgYXQgMjAxNDoNCiMNCiMgVGFwaW8gTMO2eXR0eSwgPHRhcHNhQG9yYW5nZS1tZWRpYS5maT4NCiMgV2ViOiB3d3cub3JhbmdlLW1lZGlhLmZpDQojDQojIEdvcmFuIElsaWMsIDx1bmlxdTNlQGdtYWlsLmNvbT4NCiMgV2ViOiB3d3cuaWNoLW1hY2gtZGFzLmF0DQojDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIw0KIyBMSVNFIGlzIGEgQ01TIE1hZGUgU2ltcGxlIG1vZHVsZSB0aGF0IGVuYWJsZXMgdGhlIHdlYiBkZXZlbG9wZXIgdG8gY3JlYXRlDQojIG11bHRpcGxlIGxpc3RzIHRocm91Z2hvdXQgYSBzaXRlLiBJdCBjYW4gYmUgZHVwbGljYXRlZCBhbmQgZ2l2ZW4gZnJpZW5kbHkNCiMgbmFtZXMgZm9yIGVhc2llciBjbGllbnQgbWFpbnRlbmFuY2UuDQojDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIyBCRUdJTl9MSUNFTlNFDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIyBUaGlzIGZpbGUgaXMgcGFydCBvZiBMSVNFDQojIExJU0UgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5DQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5DQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yDQojIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uDQojDQojIExJU0UgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLA0KIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZg0KIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlDQojIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuDQojIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlDQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlDQojIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcgVVNBDQojIE9yIHJlYWQgaXQgb25saW5lOiBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwNCiMNCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQojIEVORF9MSUNFTlNFDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KDQpjbGFzcyBsaXNlZmRfSk1GaWxlUGlja2VyIGV4dGVuZHMgTElTRUZpZWxkZGVmQmFzZQ0Kew0KICANCglwdWJsaWMgZnVuY3Rpb24gX19jb25zdHJ1Y3QoJiRkYl9pbmZvKSANCgl7DQoJCXBhcmVudDo6X19jb25zdHJ1Y3QoJGRiX2luZm8pOw0KCQkNCgkJJHRoaXMtPlNldEZyaWVuZGx5VHlwZSgkdGhpcy0+TW9kTGFuZygnZmllbGRkZWZfJyAuICR0aGlzLT5HZXRUeXBlKCkpKTsNCgl9DQoJDQoJc3RhdGljIHB1YmxpYyBmdW5jdGlvbiBHZXRNb2R1bGVEZXBzKCkNCgl7DQoJCXJldHVybiBhcnJheSgnSk1GaWxlUGlja2VyJyA9PiAnMS4wLjEnKTsNCgl9DQoJDQoJcHVibGljIGZ1bmN0aW9uIFJlbmRlckZvckFkbWluTGlzdGluZygkaWQsICRyZXR1cm5pZCkNCgl7DQoJCWlmKCEkdGhpcy0+SGFzVmFsdWUoKSkNCgkJCXJldHVybjsNCgkNCgkJaWYoISR0aGlzLT5HZXRPcHRpb25WYWx1ZSgnaW1hZ2UnKSkNCgkJCXJldHVybiAkdGhpcy0+R2V0VmFsdWUoKTsNCg0KCQkkY29uZmlnID0gY21zbXMoKS0+R2V0Q29uZmlnKCk7DQoJCQ0KCQkkX2ludmFsaWQgPSBhcnJheSgnLicsICcuLicpOw0KICAgICAgICAkaHJlZiA9ICRjb25maWdbJ3VwbG9hZHNfdXJsJ10gLiAnLycgLiAkdGhpcy0+R2V0VmFsdWUoKTsNCgkNCgkJLy8gVHJ5IGlmIHdlIGNhbiB1c2UgQ0dTbWFydEltYWdlDQoJCSRjZ3NpID0gY21zbXMoKS0+R2V0TW9kdWxlSW5zdGFuY2UoJ0NHU21hcnRJbWFnZScpOw0KCQlpZihpc19vYmplY3QoJGNnc2kpKQ0KICAgIHsNCgkJCSRwYXJhbXNbJ3NyYyddID0gJGhyZWY7DQoJCQkkcGFyYW1zWydmaWx0ZXJfY3JvcHRvZml0J10gPSAnNDgsNDgnOw0KCQkJJHBhcmFtc1snbm90YWcnXSA9IHRydWU7DQoJCQkkcGFyYW1zWydub2VtYmVkJ10gPSB0cnVlOw0KCQkNCgkJCSRvdXRwdXQgPSBjZ3NpX3V0aWxzOjpwcm9jZXNzX2ltYWdlKCRwYXJhbXMpOw0KCQkJDQoJCQkkdXJsID0gJG91dHB1dFsnb3V0cHV0J107DQoJCX0NCgkJLy8gTm9wZSwgbGV0cyB1c2UgaW50ZXJuYWwgdGh1bWJzIGluc3RlYWQuDQoJCWVsc2UgDQogICAgew0KCQkJJHVybCA9ICRjb25maWdbJ3VwbG9hZHNfdXJsJ10gLiAnL0pNRmlsZVBpY2tlclRodW1icyc7CQ0KCQkJJHZhbHVlID0gZXhwbG9kZSgnLycsICR0aGlzLT5HZXRWYWx1ZSgpKTsgLy8gPC0gU3RhdGljIHByZXNlbnRhdGlvbiBvZiBESVJFQ1RPUllfU0VQQVJBVE9SLCB3cm9uZyBidXQgSk1GaWxlUGlja2VyIGFpbid0IHN1cHBvcnRpbmcgaXQhCVRPRE8hISENCgkJCSRhY3R1YWxfdmFsdWUgPSBhcnJheV9wb3AoJHZhbHVlKTsNCgkJCSR1cmwgLj0gJy90aHVtYl8nOw0KCQkJaWYoY291bnQoJHZhbHVlKSkgew0KCQkJCQ0KCQkJCWZvcmVhY2goJF9pbnZhbGlkIGFzICRvbmUpIHsNCgkJCQkJCQkJDQoJCQkJCWlmKGluX2FycmF5KCRvbmUsICR2YWx1ZSkpIHsNCgkJCQkJDQoJCQkJCQkka2V5ID0gYXJyYXlfc2VhcmNoKCRvbmUsICR2YWx1ZSk7DQoJCQkJCQlpZigka2V5ICE9PSBGQUxTRSkNCgkJCQkJCQl1bnNldCgkdmFsdWVbJGtleV0pOw0KCQkJCQl9DQoJCQkJfQ0KCQkJCQ0KCQkJCSR1cmwgLj0gaW1wbG9kZSgiLSIsICR2YWx1ZSkgLiAnXyc7CQ0KCQkJfQ0KCQkJJHVybCAuPSAkYWN0dWFsX3ZhbHVlOw0KCQl9DQoJCQ0KCQlyZXR1cm4gJzxhIGhyZWY9IicuJGhyZWYuJyIgY2xhc3M9ImNib3ggdGh1bWIiPjxpbWcgc3JjPSInLiR1cmwuJyIgd2lkdGg9IjQ4IiBoZWlnaHQ9IjQ4IiAvPjwvYT4nOwkJDQoJfQ0KCQ0KCXB1YmxpYyBmdW5jdGlvbiBHZXRJbnB1dCgkaWQpDQoJew0KICAgIA0KCQkkY29uZmlnID0gY21zbXMoKS0+R2V0Q29uZmlnKCk7DQoJCSRtb2QgPSAkdGhpcy0+R2V0TW9kdWxlSW5zdGFuY2UoKTsNCgkJDQoJCSRKTUZpbGVQaWNrZXIgPSBjbXNtcygpLT5HZXRNb2R1bGVJbnN0YW5jZSgnSk1GaWxlUGlja2VyJyk7DQoJCWlmKGlzX29iamVjdCgkSk1GaWxlUGlja2VyKSkgew0KCQkNCgkJCS8vJGRpciA9ICR0aGlzLT5fQ29tcGlsZUV4dHJhRGlyKCR0aGlzLT5HZXRPcHRpb25WYWx1ZSgnZGlyJyksICR0aGlzLT5HZXRJdGVtSWQoKSwgJHRoaXMtPkdldEFsaWFzKCkpOw0KCQkJJGRpciA9ICR0aGlzLT5HZXRPcHRpb25WYWx1ZSgnZGlyJyk7DQoNCgkJCS8vaWYoJGRpciAhPT0gZmFsc2Upew0KCQkJDQoJCQkvLyBtYWtlIGRpciBpZiBub3QgZXhpc3RzDQoJCQkkcGF0aCA9ICRjb25maWdbJ3VwbG9hZHNfcGF0aCddIC4gRElSRUNUT1JZX1NFUEFSQVRPUiAuICRkaXI7DQoJCQlpZighaXNfZGlyKCRwYXRoKSl7DQoJCQkJQG1rZGlyKCRwYXRoLCAwNzc3LCB0cnVlKTsNCgkJCX0NCg0KCQkJLy8gSk1GaWxlUGlja2VyICJVcGRhdGUgZHJvcGRvd24iIGRvZXMgbm90IHdvcmsgaWYgaWQgY29udGFpbnMgIltdIiwgc3RyaXAgaXQgb3V0DQoJCQkkbmFtZSA9ICdjdXN0b21maWVsZFsnLiR0aGlzLT5HZXRJZCgpLiddJzsNCgkJCSRzYXZlbmFtZSA9ICdjdXN0b21maWVsZF8nLiR0aGlzLT5HZXRJZCgpLidfJzsNCg0KCQkJJGptZmlsZXBpY2tlciA9ICRKTUZpbGVQaWNrZXItPkNyZWF0ZUZpbGVQaWNrZXJJbnB1dCgkSk1GaWxlUGlja2VyLCAkaWQsICRzYXZlbmFtZSwgJHRoaXMtPkdldFZhbHVlKCksIGFycmF5KA0KCQkJCSdtZWRpYV90eXBlJyA9PiAoJHRoaXMtPkdldE9wdGlvblZhbHVlKCdpbWFnZScpPydpbWFnZSc6J2ZpbGUnKSwNCgkJCQknZmlsZV9leHRlbnNpb25zJyA9PiAkdGhpcy0+R2V0T3B0aW9uVmFsdWUoJ2FsbG93ZWQnKSwNCgkJCQknZGlyJyA9PiAkZGlyLA0KCQkJCSd1cGxvYWQnID0+IHRydWUsDQoJCQkJJ2V4Y2x1ZGVfcHJlZml4JyA9PiAkdGhpcy0+R2V0T3B0aW9uVmFsdWUoJ2V4Y2x1ZGVfcHJlZml4JyksDQoJCQkJJ21vZGUnID0+ICgkdGhpcy0+R2V0T3B0aW9uVmFsdWUoJ2ZpbGVicm93c2VyJyk/J2Jyb3dzZXInOidkcm9wZG93bicpLA0KCQkJCSdjcmVhdGVfZGlycycgPT4gJHRoaXMtPkdldE9wdGlvblZhbHVlKCdjcmVhdGVfZGlycycpLA0KCQkJCSdkZWxldGUnID0+ICR0aGlzLT5HZXRPcHRpb25WYWx1ZSgnZGVsZXRlJyksDQoJCQkJJ3Nob3dfc3ViZGlycycgPT4gJHRoaXMtPkdldE9wdGlvblZhbHVlKCdzaG93X3N1YmRpcnMnKQ0KCQkJKSk7DQoNCgkJCSRzZWFyY2ggICAgICAgPSAnbmFtZT0iJy4kaWQuJHNhdmVuYW1lOw0KCQkJJHJlcGxhY2UgICAgICA9ICduYW1lPSInLiRpZC4kbmFtZTsNCgkJCSRqbWZpbGVwaWNrZXIgPSBzdHJfcmVwbGFjZSgkc2VhcmNoLCAkcmVwbGFjZSwgJGptZmlsZXBpY2tlcik7DQoNCgkJCXJldHVybiAkam1maWxlcGlja2VyOw0KCQl9DQoJfQ0KCQ0KLyoJDQoJcHJpdmF0ZSBmdW5jdGlvbiBfQ29tcGlsZUV4dHJhRGlyKCRwYXRoLCAkaXRlbV9pZCA9IG51bGwsICRpdGVtX2FsaWFzID0gbnVsbCl7DQoNCgkJaWYoc3RycG9zKCRwYXRoLCAneyRpdGVtX2FsaWFzfScpICE9PSBmYWxzZSl7DQoJCQlpZighaXNzZXQoJGl0ZW1fYWxpYXMpIHx8IHN0cmxlbigkaXRlbV9hbGlhcykgPT0gMCkNCgkJCQlyZXR1cm4gZmFsc2U7DQoJCQkkcGF0aCA9IHN0cl9yZXBsYWNlKCd7JGl0ZW1fYWxpYXN9JywgJGl0ZW1fYWxpYXMsICRwYXRoKTsNCgkJfQ0KCQlpZihzdHJwb3MoJHBhdGgsICd7JGl0ZW1faWR9JykgIT09IGZhbHNlKXsNCgkJCWlmKCFpc3NldCgkaXRlbV9pZCkgfHwgIWlzX2ludCgkaXRlbV9pZCkpDQoJCQkJcmV0dXJuIGZhbHNlOw0KCQkJJHBhdGggPSBzdHJfcmVwbGFjZSgneyRpdGVtX2lkfScsICRpdGVtX2lkLCAkcGF0aCk7DQoJCX0NCg0KCQlyZXR1cm4gJHBhdGg7DQoJfQ0KKi8JDQp9IC8vIGVuZCBvZiBjbGFzcw0KPz4=]]></data>
	</file>
	<file>
	  <filename>/lib/fielddefs/JMFilePicker/output.JMFilePicker.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[eyRmaWVsZGRlZi5uYW1lfTogPGEgaHJlZj0ieyRmaWVsZGRlZi0+R2V0SW1hZ2VQYXRoKHRydWUpfS97JGZpZWxkZGVmLnZhbHVlfSI+eyRmaWVsZGRlZi52YWx1ZX08L2E+]]></data>
	</file>
	<file>
	  <filename>/lib/fielddefs/JQueryMultiSelect</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/lib/fielddefs/JQueryMultiSelect/admin.JQueryMultiSelect.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PGZpZWxkc2V0PgogIDxsZWdlbmQ+eyRmaWVsZGRlZi0+TW9kTGFuZygnb3B0aW9ucycpfTwvbGVnZW5kPiAgCiAgPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KICAgIDxwIGNsYXNzPSJwYWdldGV4dCI+eyRmaWVsZGRlZi0+TW9kTGFuZygnb3B0aW9ucycpfTo8L3A+CiAgICA8cCBjbGFzcz0icGFnZWlucHV0Ij4KICAgICAgPHRleHRhcmVhIG5hbWU9InskYWN0aW9uaWR9Y3VzdG9tX2lucHV0W29wdGlvbnNdIj57JGZpZWxkZGVmLT5HZXRPcHRpb25WYWx1ZSgnb3B0aW9ucycpfTwvdGV4dGFyZWE+CiAgICA8L3A+CiAgICA8cCBjbGFzcz0icGFnZXRleHQiPjxkaXYgY2xhc3M9ImluZm9ybWF0aW9uIj57JGZpZWxkZGVmLT5Nb2RMYW5nKCdmaWVsZGRlZl9tdWx0aW9wdGlvbnNfaGVscCcpfTwvZGl2PjwvcD4KICA8L2Rpdj4KICA8aHI+CiAgPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KICAgIDxwIGNsYXNzPSJwYWdldGV4dCI+eyRmaWVsZGRlZi0+TW9kTGFuZygnc2l6ZScpfTo8L3A+CiAgICA8cCBjbGFzcz0icGFnZWlucHV0Ij4KICAgICAgPGlucHV0IHR5cGU9InRleHQiIG5hbWU9InskYWN0aW9uaWR9Y3VzdG9tX2lucHV0W3NpemVdIiB2YWx1ZT0ieyRmaWVsZGRlZi0+R2V0T3B0aW9uVmFsdWUoJ3NpemUnLCA1KX0iIC8+CiAgICA8L3A+CiAgICA8cCBjbGFzcz0icGFnZXRleHQiPjxkaXYgY2xhc3M9ImluZm9ybWF0aW9uIj57JGZpZWxkZGVmLT5Nb2RMYW5nKCdmaWVsZGRlZl9zaXplX2hlbHAnKX08L2Rpdj48L3A+CiAgPC9kaXY+CjwvZmllbGRzZXQ+]]></data>
	</file>
	<file>
	  <filename>/lib/fielddefs/JQueryMultiSelect/help.JQueryMultiSelect.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PGJ1dHRvbiBjbGFzcz0iYWNjb3JkaW9uIj48c3Ryb25nPnskZmllbGRkZWYtPkdldEZyaWVuZGx5VHlwZSgpfTwvc3Ryb25nPjwvYnV0dG9uPgoKPGRpdiBjbGFzcz0iYWNjcGFuZWwiPgoKCTxoND5XaGF0IGRvZXMgaXQgZG8/PC9oND4KCgk8cD5UaGlzIGZpZWxkIGRlZmluaXRpb24gY2FuIGJlIHVzZWQgdG8gYWRkIGEgPHN0cm9uZz5qUXVlcnkgTXVsdGkgU2VsZWN0PC9zdHJvbmc+IGZpZWxkIHRvIGEgTElTRSBpdGVtLjwvcD4KCgk8cD5UT0RPPC9wPgoKCgk8aDQ+SG93IGRvIEkgdXNlIGl0PzwvaDQ+CgoJPHA+VE9ETzwvcD4KCgk8cD5UaGUgc2V0dGluZ3MgZm9yIHRoaXMgZmllbGQgYXJlOjwvcD4KCgk8dWw+CgkJPGxpPjxiPk9wdGlvbnM8L2I+PC9saT4KCQk8bGk+PGI+U2l6ZTwvYj48L2xpPgoJPC91bD4KCjwvZGl2Pg==]]></data>
	</file>
	<file>
	  <filename>/lib/fielddefs/JQueryMultiSelect/images</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/lib/fielddefs/JQueryMultiSelect/images/index.html</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PCEtLSBEVU1NWSBIVE1MIEZJTEUgLS0+]]></data>
	</file>
	<file>
	  <filename>/lib/fielddefs/JQueryMultiSelect/images/switch.png</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[iVBORw0KGgoAAAANSUhEUgAAABUAAAAVCAYAAACpF6WWAAAB40lEQVR4AWIgG4wCAKvkAPJXFAXwGRnLrqVlj5kva7bDZ+Nv27ZtG7kpY3zZC7Pe2T13Nq/5OxQKhasqlcrzX6FyudyRy+VArVZn/xtUKpU6isUi5PN50Ol03d/5sz0Wi73JZDLch55Op7lUKsUlk0kukUjgDAgtFAqAGhuNxuu/gu7ED41GA+r1Ou21Wg2q1SpUKhUolUpAhEA8HodwOAzBYBACgQBIJJLBN6S1tTWGBODiV1AKQ83wo9PpBIvFAlarFex2O9273W5wOBxvrl69uvgFkM/nnyIgzmAwpMh2q0KhKBJfdbCLRKK8QCBIkzdpnLETn95CmMfjQfir8+fPH/8aOIkOR40o9DfK9PS0yOfzocbPjhw5cuiLS6KFEB2NfkKTiTmPlUolS3KQ1Wg0rFarZYm2LBHGkmDgfActmZ+fl5hMpof79u3b/QVQLBZbSGRpWmSzWXgvGWw2G/oIXC4XNQ873qFPcUafMwyzh5Rd38u1McIQjJDvBIACvV4v+P1+GmWcEfoz12xaX19PIshsNlOgXq9/u7fA3HILGAS3gEEAxsBccwsYDLeAwQCir4LSMaEwZ0xMTKwAhtdfkKHAIJlOtWwXERERBYyE32BDqQn8/f3tcnNzg8k2YBQAAOLgc5CbVSwBAAAAAElFTkSuQmCC]]></data>
	</file>
	<file>
	  <filename>/lib/fielddefs/JQueryMultiSelect/index.html</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PCEtLSBEVU1NWSBIVE1MIEZJTEUgLS0+]]></data>
	</file>
	<file>
	  <filename>/lib/fielddefs/JQueryMultiSelect/input.JQueryMultiSelect.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KCTxwIGNsYXNzPSJwYWdldGV4dCI+eyRmaWVsZGRlZi0+R2V0TmFtZSgpfXtpZiAkZmllbGRkZWYtPklzUmVxdWlyZWQoKX0qey9pZn06PC9wPgoJPHAgY2xhc3M9InBhZ2VpbnB1dCI+CgkJe2lmICRmaWVsZGRlZi0+R2V0RGVzYygpfSh7JGZpZWxkZGVmLT5HZXREZXNjKCl9KTxiciAvPnsvaWZ9CiAgICA8ZGl2IGNsYXNzPSJtcy1jb250YWluZXIiPgogICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJ7JGFjdGlvbmlkfWN1c3RvbWZpZWxkW3skZmllbGRkZWYtPkdldElkKCl9XSIgdmFsdWU9IiIgLz4KICAgICAgPHNlbGVjdCBpZD0ieyRhY3Rpb25pZH1jdXN0b21maWVsZHskZmllbGRkZWYtPkdldElkKCl9IiBuYW1lPSJ7JGFjdGlvbmlkfWN1c3RvbWZpZWxkW3skZmllbGRkZWYtPkdldElkKCl9XVtdfSIgc2l6ZT0ieyRmaWVsZGRlZi0+R2V0T3B0aW9uVmFsdWUoJ3NpemUnLCA1KX0iIG11bHRpcGxlPgogICAgICAgIHtodG1sX29wdGlvbnMgb3B0aW9ucz0kZmllbGRkZWYtPkdldE9wdGlvbnMoKSBzZWxlY3RlZD0kZmllbGRkZWYtPkdldFZhbHVlKCJhcnJheSIpfQoJCSAgPC9zZWxlY3Q+CiAgICA8L2Rpdj4KCTwvcD4KPC9kaXY+CjxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KICAkKCcjeyRhY3Rpb25pZH1jdXN0b21maWVsZHskZmllbGRkZWYtPkdldElkKCl9JykubXVsdGlTZWxlY3QoKTsKPC9zY3JpcHQ+]]></data>
	</file>
	<file>
	  <filename>/lib/fielddefs/JQueryMultiSelect/jquery.multi-select.css</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[Lm1zLWNvbnRhaW5lcnsNCiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQgdXJsKCcuLi9KUXVlcnlNdWx0aVNlbGVjdC9pbWFnZXMvc3dpdGNoLnBuZycpIG5vLXJlcGVhdCA1MSUgNTAlOw0KICBtYXgtd2lkdGg6IDkwMHB4Ow0KICBtaW4td2lkdGg6IDIwMHB4Ow0KfQ0KDQoubXMtY29udGFpbmVyOmFmdGVyew0KICBjb250ZW50OiAiLiI7DQogIGRpc3BsYXk6IGJsb2NrOw0KICBoZWlnaHQ6IDA7DQogIGxpbmUtaGVpZ2h0OiAwOw0KICBmb250LXNpemU6IDA7DQogIGNsZWFyOiBib3RoOw0KICBtaW4taGVpZ2h0OiAwOw0KICB2aXNpYmlsaXR5OiBoaWRkZW47DQp9DQoNCi5tcy1jb250YWluZXIgLm1zLXNlbGVjdGFibGUsIC5tcy1jb250YWluZXIgLm1zLXNlbGVjdGlvbnsNCiAgYmFja2dyb3VuZDogI2ZmZjsNCiAgY29sb3I6ICM1NTU1NTU7DQogIGZsb2F0OiBsZWZ0Ow0KICB3aWR0aDogNDUlOw0KfQ0KLm1zLWNvbnRhaW5lciAubXMtc2VsZWN0aW9uew0KICBmbG9hdDogcmlnaHQ7DQp9DQoNCi5tcy1jb250YWluZXIgLm1zLWxpc3R7DQogIC13ZWJraXQtYm94LXNoYWRvdzogaW5zZXQgMCAxcHggMXB4IHJnYmEoMCwgMCwgMCwgMC4wNzUpOw0KICAtbW96LWJveC1zaGFkb3c6IGluc2V0IDAgMXB4IDFweCByZ2JhKDAsIDAsIDAsIDAuMDc1KTsNCiAgYm94LXNoYWRvdzogaW5zZXQgMCAxcHggMXB4IHJnYmEoMCwgMCwgMCwgMC4wNzUpOw0KICAtd2Via2l0LXRyYW5zaXRpb246IGJvcmRlciBsaW5lYXIgMC4ycywgYm94LXNoYWRvdyBsaW5lYXIgMC4yczsNCiAgLW1vei10cmFuc2l0aW9uOiBib3JkZXIgbGluZWFyIDAuMnMsIGJveC1zaGFkb3cgbGluZWFyIDAuMnM7DQogIC1tcy10cmFuc2l0aW9uOiBib3JkZXIgbGluZWFyIDAuMnMsIGJveC1zaGFkb3cgbGluZWFyIDAuMnM7DQogIC1vLXRyYW5zaXRpb246IGJvcmRlciBsaW5lYXIgMC4ycywgYm94LXNoYWRvdyBsaW5lYXIgMC4yczsNCiAgdHJhbnNpdGlvbjogYm9yZGVyIGxpbmVhciAwLjJzLCBib3gtc2hhZG93IGxpbmVhciAwLjJzOw0KICBib3JkZXI6IDFweCBzb2xpZCAjY2NjOw0KICAtd2Via2l0LWJvcmRlci1yYWRpdXM6IDNweDsNCiAgLW1vei1ib3JkZXItcmFkaXVzOiAzcHg7DQogIGJvcmRlci1yYWRpdXM6IDNweDsNCiAgcG9zaXRpb246IHJlbGF0aXZlOw0KICBoZWlnaHQ6IDIwMHB4Ow0KICBwYWRkaW5nOiAwOw0KICBvdmVyZmxvdy15OiBhdXRvOw0KfQ0KDQoubXMtY29udGFpbmVyIC5tcy1saXN0Lm1zLWZvY3Vzew0KICBib3JkZXItY29sb3I6IHJnYmEoODIsIDE2OCwgMjM2LCAwLjgpOw0KICAtd2Via2l0LWJveC1zaGFkb3c6IGluc2V0IDAgMXB4IDFweCByZ2JhKDAsIDAsIDAsIDAuMDc1KSwgMCAwIDhweCByZ2JhKDgyLCAxNjgsIDIzNiwgMC42KTsNCiAgLW1vei1ib3gtc2hhZG93OiBpbnNldCAwIDFweCAxcHggcmdiYSgwLCAwLCAwLCAwLjA3NSksIDAgMCA4cHggcmdiYSg4MiwgMTY4LCAyMzYsIDAuNik7DQogIGJveC1zaGFkb3c6IGluc2V0IDAgMXB4IDFweCByZ2JhKDAsIDAsIDAsIDAuMDc1KSwgMCAwIDhweCByZ2JhKDgyLCAxNjgsIDIzNiwgMC42KTsNCiAgb3V0bGluZTogMDsNCiAgb3V0bGluZTogdGhpbiBkb3R0ZWQgXDk7DQp9DQoNCi5tcy1jb250YWluZXIgdWx7DQogIG1hcmdpbjogMDsNCiAgbGlzdC1zdHlsZS10eXBlOiBub25lOw0KICBwYWRkaW5nOiAwOw0KfQ0KDQoubXMtY29udGFpbmVyIC5tcy1vcHRncm91cC1jb250YWluZXJ7DQogIHdpZHRoOiAxMDAlOw0KfQ0KDQoubXMtY29udGFpbmVyIC5tcy1vcHRncm91cC1sYWJlbHsNCiAgbWFyZ2luOiAwOw0KICBwYWRkaW5nOiA1cHggMHB4IDBweCA1cHg7DQogIGN1cnNvcjogcG9pbnRlcjsNCiAgY29sb3I6ICM5OTk7DQp9DQoNCi5tcy1jb250YWluZXIgLm1zLXNlbGVjdGFibGUgbGkubXMtZWxlbS1zZWxlY3RhYmxlLA0KLm1zLWNvbnRhaW5lciAubXMtc2VsZWN0aW9uIGxpLm1zLWVsZW0tc2VsZWN0aW9uew0KICBib3JkZXItYm90dG9tOiAxcHggI2VlZSBzb2xpZDsNCiAgcGFkZGluZzogMnB4IDEwcHg7DQogIGNvbG9yOiAjNTU1Ow0KICBmb250LXNpemU6IDE0cHg7DQp9DQoNCi5tcy1jb250YWluZXIgLm1zLXNlbGVjdGFibGUgbGkubXMtaG92ZXIsDQoubXMtY29udGFpbmVyIC5tcy1zZWxlY3Rpb24gbGkubXMtaG92ZXJ7DQogIGN1cnNvcjogcG9pbnRlcjsNCiAgY29sb3I6ICNmZmY7DQogIHRleHQtZGVjb3JhdGlvbjogbm9uZTsNCiAgYmFja2dyb3VuZC1jb2xvcjogIzA4YzsNCn0NCg0KLm1zLWNvbnRhaW5lciAubXMtc2VsZWN0YWJsZSBsaS5kaXNhYmxlZCwNCi5tcy1jb250YWluZXIgLm1zLXNlbGVjdGlvbiBsaS5kaXNhYmxlZHsNCiAgYmFja2dyb3VuZC1jb2xvcjogI2VlZTsNCiAgY29sb3I6ICNhYWE7DQogIGN1cnNvcjogdGV4dDsNCn0=]]></data>
	</file>
	<file>
	  <filename>/lib/fielddefs/JQueryMultiSelect/jquery.multi-select.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[LyoKKiBNdWx0aVNlbGVjdCB2MC45LjEyCiogQ29weXJpZ2h0IChjKSAyMDEyIExvdWlzIEN1bnkKKgoqIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlLiBJdCBjb21lcyB3aXRob3V0IGFueSB3YXJyYW50eSwgdG8KKiB0aGUgZXh0ZW50IHBlcm1pdHRlZCBieSBhcHBsaWNhYmxlIGxhdy4gWW91IGNhbiByZWRpc3RyaWJ1dGUgaXQKKiBhbmQvb3IgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRG8gV2hhdCBUaGUgRnVjayBZb3UgV2FudAoqIFRvIFB1YmxpYyBMaWNlbnNlLCBWZXJzaW9uIDIsIGFzIHB1Ymxpc2hlZCBieSBTYW0gSG9jZXZhci4gU2VlCiogaHR0cDovL3NhbS56b3kub3JnL3d0ZnBsL0NPUFlJTkcgZm9yIG1vcmUgZGV0YWlscy4KKi8KCiFmdW5jdGlvbiAoJCkgewoKICAidXNlIHN0cmljdCI7CgoKIC8qIE1VTFRJU0VMRUNUIENMQVNTIERFRklOSVRJT04KICAqID09PT09PT09PT09PT09PT09PT09PT0gKi8KCiAgdmFyIE11bHRpU2VsZWN0ID0gZnVuY3Rpb24gKGVsZW1lbnQsIG9wdGlvbnMpIHsKICAgIHRoaXMub3B0aW9ucyA9IG9wdGlvbnM7CiAgICB0aGlzLiRlbGVtZW50ID0gJChlbGVtZW50KTsKICAgIHRoaXMuJGNvbnRhaW5lciA9ICQoJzxkaXYvPicsIHsgJ2NsYXNzJzogIm1zLWNvbnRhaW5lciIgfSk7CiAgICB0aGlzLiRzZWxlY3RhYmxlQ29udGFpbmVyID0gJCgnPGRpdi8+JywgeyAnY2xhc3MnOiAnbXMtc2VsZWN0YWJsZScgfSk7CiAgICB0aGlzLiRzZWxlY3Rpb25Db250YWluZXIgPSAkKCc8ZGl2Lz4nLCB7ICdjbGFzcyc6ICdtcy1zZWxlY3Rpb24nIH0pOwogICAgdGhpcy4kc2VsZWN0YWJsZVVsID0gJCgnPHVsLz4nLCB7ICdjbGFzcyc6ICJtcy1saXN0IiwgJ3RhYmluZGV4JyA6ICctMScgfSk7CiAgICB0aGlzLiRzZWxlY3Rpb25VbCA9ICQoJzx1bC8+JywgeyAnY2xhc3MnOiAibXMtbGlzdCIsICd0YWJpbmRleCcgOiAnLTEnIH0pOwogICAgdGhpcy5zY3JvbGxUbyA9IDA7CiAgICB0aGlzLmVsZW1zU2VsZWN0b3IgPSAnbGk6dmlzaWJsZTpub3QoLm1zLW9wdGdyb3VwLWxhYmVsLC5tcy1vcHRncm91cC1jb250YWluZXIsLicrb3B0aW9ucy5kaXNhYmxlZENsYXNzKycpJzsKICB9OwoKICBNdWx0aVNlbGVjdC5wcm90b3R5cGUgPSB7CiAgICBjb25zdHJ1Y3RvcjogTXVsdGlTZWxlY3QsCgogICAgaW5pdDogZnVuY3Rpb24oKXsKICAgICAgdmFyIHRoYXQgPSB0aGlzLAogICAgICAgICAgbXMgPSB0aGlzLiRlbGVtZW50OwoKICAgICAgaWYgKG1zLm5leHQoJy5tcy1jb250YWluZXInKS5sZW5ndGggPT09IDApewogICAgICAgIG1zLmNzcyh7IHBvc2l0aW9uOiAnYWJzb2x1dGUnLCBsZWZ0OiAnLTk5OTlweCcgfSk7CiAgICAgICAgbXMuYXR0cignaWQnLCBtcy5hdHRyKCdpZCcpID8gbXMuYXR0cignaWQnKSA6IE1hdGguY2VpbChNYXRoLnJhbmRvbSgpKjEwMDApKydtdWx0aXNlbGVjdCcpOwogICAgICAgIHRoaXMuJGNvbnRhaW5lci5hdHRyKCdpZCcsICdtcy0nK21zLmF0dHIoJ2lkJykpOwogICAgICAgIHRoaXMuJGNvbnRhaW5lci5hZGRDbGFzcyh0aGF0Lm9wdGlvbnMuY3NzQ2xhc3MpOwogICAgICAgIG1zLmZpbmQoJ29wdGlvbicpLmVhY2goZnVuY3Rpb24oKXsKICAgICAgICAgIHRoYXQuZ2VuZXJhdGVMaXNGcm9tT3B0aW9uKHRoaXMpOwogICAgICAgIH0pOwoKICAgICAgICB0aGlzLiRzZWxlY3Rpb25VbC5maW5kKCcubXMtb3B0Z3JvdXAtbGFiZWwnKS5oaWRlKCk7CgogICAgICAgIGlmICh0aGF0Lm9wdGlvbnMuc2VsZWN0YWJsZUhlYWRlcil7CiAgICAgICAgICB0aGF0LiRzZWxlY3RhYmxlQ29udGFpbmVyLmFwcGVuZCh0aGF0Lm9wdGlvbnMuc2VsZWN0YWJsZUhlYWRlcik7CiAgICAgICAgfQogICAgICAgIHRoYXQuJHNlbGVjdGFibGVDb250YWluZXIuYXBwZW5kKHRoYXQuJHNlbGVjdGFibGVVbCk7CiAgICAgICAgaWYgKHRoYXQub3B0aW9ucy5zZWxlY3RhYmxlRm9vdGVyKXsKICAgICAgICAgIHRoYXQuJHNlbGVjdGFibGVDb250YWluZXIuYXBwZW5kKHRoYXQub3B0aW9ucy5zZWxlY3RhYmxlRm9vdGVyKTsKICAgICAgICB9CgogICAgICAgIGlmICh0aGF0Lm9wdGlvbnMuc2VsZWN0aW9uSGVhZGVyKXsKICAgICAgICAgIHRoYXQuJHNlbGVjdGlvbkNvbnRhaW5lci5hcHBlbmQodGhhdC5vcHRpb25zLnNlbGVjdGlvbkhlYWRlcik7CiAgICAgICAgfQogICAgICAgIHRoYXQuJHNlbGVjdGlvbkNvbnRhaW5lci5hcHBlbmQodGhhdC4kc2VsZWN0aW9uVWwpOwogICAgICAgIGlmICh0aGF0Lm9wdGlvbnMuc2VsZWN0aW9uRm9vdGVyKXsKICAgICAgICAgIHRoYXQuJHNlbGVjdGlvbkNvbnRhaW5lci5hcHBlbmQodGhhdC5vcHRpb25zLnNlbGVjdGlvbkZvb3Rlcik7CiAgICAgICAgfQoKICAgICAgICB0aGF0LiRjb250YWluZXIuYXBwZW5kKHRoYXQuJHNlbGVjdGFibGVDb250YWluZXIpOwogICAgICAgIHRoYXQuJGNvbnRhaW5lci5hcHBlbmQodGhhdC4kc2VsZWN0aW9uQ29udGFpbmVyKTsKICAgICAgICBtcy5hZnRlcih0aGF0LiRjb250YWluZXIpOwoKICAgICAgICB0aGF0LmFjdGl2ZU1vdXNlKHRoYXQuJHNlbGVjdGFibGVVbCk7CiAgICAgICAgdGhhdC5hY3RpdmVLZXlib2FyZCh0aGF0LiRzZWxlY3RhYmxlVWwpOwoKICAgICAgICB2YXIgYWN0aW9uID0gdGhhdC5vcHRpb25zLmRibENsaWNrID8gJ2RibGNsaWNrJyA6ICdjbGljayc7CgogICAgICAgIHRoYXQuJHNlbGVjdGFibGVVbC5vbihhY3Rpb24sICcubXMtZWxlbS1zZWxlY3RhYmxlJywgZnVuY3Rpb24oKXsKICAgICAgICAgIHRoYXQuc2VsZWN0KCQodGhpcykuZGF0YSgnbXMtdmFsdWUnKSk7CiAgICAgICAgfSk7CiAgICAgICAgdGhhdC4kc2VsZWN0aW9uVWwub24oYWN0aW9uLCAnLm1zLWVsZW0tc2VsZWN0aW9uJywgZnVuY3Rpb24oKXsKICAgICAgICAgIHRoYXQuZGVzZWxlY3QoJCh0aGlzKS5kYXRhKCdtcy12YWx1ZScpKTsKICAgICAgICB9KTsKCiAgICAgICAgdGhhdC5hY3RpdmVNb3VzZSh0aGF0LiRzZWxlY3Rpb25VbCk7CiAgICAgICAgdGhhdC5hY3RpdmVLZXlib2FyZCh0aGF0LiRzZWxlY3Rpb25VbCk7CgogICAgICAgIG1zLm9uKCdmb2N1cycsIGZ1bmN0aW9uKCl7CiAgICAgICAgICB0aGF0LiRzZWxlY3RhYmxlVWwuZm9jdXMoKTsKICAgICAgICB9KTsKICAgICAgfQoKICAgICAgdmFyIHNlbGVjdGVkVmFsdWVzID0gbXMuZmluZCgnb3B0aW9uOnNlbGVjdGVkJykubWFwKGZ1bmN0aW9uKCl7IHJldHVybiAkKHRoaXMpLnZhbCgpOyB9KS5nZXQoKTsKICAgICAgdGhhdC5zZWxlY3Qoc2VsZWN0ZWRWYWx1ZXMsICdpbml0Jyk7CgogICAgICBpZiAodHlwZW9mIHRoYXQub3B0aW9ucy5hZnRlckluaXQgPT09ICdmdW5jdGlvbicpIHsKICAgICAgICB0aGF0Lm9wdGlvbnMuYWZ0ZXJJbml0LmNhbGwodGhpcywgdGhpcy4kY29udGFpbmVyKTsKICAgICAgfQogICAgfSwKCiAgICAnZ2VuZXJhdGVMaXNGcm9tT3B0aW9uJyA6IGZ1bmN0aW9uKG9wdGlvbiwgaW5kZXgsICRjb250YWluZXIpewogICAgICB2YXIgdGhhdCA9IHRoaXMsCiAgICAgICAgICBtcyA9IHRoYXQuJGVsZW1lbnQsCiAgICAgICAgICBhdHRyaWJ1dGVzID0gIiIsCiAgICAgICAgICAkb3B0aW9uID0gJChvcHRpb24pOwoKICAgICAgZm9yICh2YXIgY3B0ID0gMDsgY3B0IDwgb3B0aW9uLmF0dHJpYnV0ZXMubGVuZ3RoOyBjcHQrKyl7CiAgICAgICAgdmFyIGF0dHIgPSBvcHRpb24uYXR0cmlidXRlc1tjcHRdOwoKICAgICAgICBpZihhdHRyLm5hbWUgIT09ICd2YWx1ZScgJiYgYXR0ci5uYW1lICE9PSAnZGlzYWJsZWQnKXsKICAgICAgICAgIGF0dHJpYnV0ZXMgKz0gYXR0ci5uYW1lKyc9IicrYXR0ci52YWx1ZSsnIiAnOwogICAgICAgIH0KICAgICAgfQogICAgICB2YXIgc2VsZWN0YWJsZUxpID0gJCgnPGxpICcrYXR0cmlidXRlcysnPjxzcGFuPicrdGhhdC5lc2NhcGVIVE1MKCRvcHRpb24udGV4dCgpKSsnPC9zcGFuPjwvbGk+JyksCiAgICAgICAgICBzZWxlY3RlZExpID0gc2VsZWN0YWJsZUxpLmNsb25lKCksCiAgICAgICAgICB2YWx1ZSA9ICRvcHRpb24udmFsKCksCiAgICAgICAgICBlbGVtZW50SWQgPSB0aGF0LnNhbml0aXplKHZhbHVlKTsKCiAgICAgIHNlbGVjdGFibGVMaQogICAgICAgIC5kYXRhKCdtcy12YWx1ZScsIHZhbHVlKQogICAgICAgIC5hZGRDbGFzcygnbXMtZWxlbS1zZWxlY3RhYmxlJykKICAgICAgICAuYXR0cignaWQnLCBlbGVtZW50SWQrJy1zZWxlY3RhYmxlJyk7CgogICAgICBzZWxlY3RlZExpCiAgICAgICAgLmRhdGEoJ21zLXZhbHVlJywgdmFsdWUpCiAgICAgICAgLmFkZENsYXNzKCdtcy1lbGVtLXNlbGVjdGlvbicpCiAgICAgICAgLmF0dHIoJ2lkJywgZWxlbWVudElkKyctc2VsZWN0aW9uJykKICAgICAgICAuaGlkZSgpOwoKICAgICAgaWYgKCRvcHRpb24ucHJvcCgnZGlzYWJsZWQnKSB8fCBtcy5wcm9wKCdkaXNhYmxlZCcpKXsKICAgICAgICBzZWxlY3RlZExpLmFkZENsYXNzKHRoYXQub3B0aW9ucy5kaXNhYmxlZENsYXNzKTsKICAgICAgICBzZWxlY3RhYmxlTGkuYWRkQ2xhc3ModGhhdC5vcHRpb25zLmRpc2FibGVkQ2xhc3MpOwogICAgICB9CgogICAgICB2YXIgJG9wdGdyb3VwID0gJG9wdGlvbi5wYXJlbnQoJ29wdGdyb3VwJyk7CgogICAgICBpZiAoJG9wdGdyb3VwLmxlbmd0aCA+IDApewogICAgICAgIHZhciBvcHRncm91cExhYmVsID0gJG9wdGdyb3VwLmF0dHIoJ2xhYmVsJyksCiAgICAgICAgICAgIG9wdGdyb3VwSWQgPSB0aGF0LnNhbml0aXplKG9wdGdyb3VwTGFiZWwpLAogICAgICAgICAgICAkc2VsZWN0YWJsZU9wdGdyb3VwID0gdGhhdC4kc2VsZWN0YWJsZVVsLmZpbmQoJyNvcHRncm91cC1zZWxlY3RhYmxlLScrb3B0Z3JvdXBJZCksCiAgICAgICAgICAgICRzZWxlY3Rpb25PcHRncm91cCA9IHRoYXQuJHNlbGVjdGlvblVsLmZpbmQoJyNvcHRncm91cC1zZWxlY3Rpb24tJytvcHRncm91cElkKTsKCiAgICAgICAgaWYgKCRzZWxlY3RhYmxlT3B0Z3JvdXAubGVuZ3RoID09PSAwKXsKICAgICAgICAgIHZhciBvcHRncm91cENvbnRhaW5lclRwbCA9ICc8bGkgY2xhc3M9Im1zLW9wdGdyb3VwLWNvbnRhaW5lciI+PC9saT4nLAogICAgICAgICAgICAgIG9wdGdyb3VwVHBsID0gJzx1bCBjbGFzcz0ibXMtb3B0Z3JvdXAiPjxsaSBjbGFzcz0ibXMtb3B0Z3JvdXAtbGFiZWwiPjxzcGFuPicrb3B0Z3JvdXBMYWJlbCsnPC9zcGFuPjwvbGk+PC91bD4nOwoKICAgICAgICAgICRzZWxlY3RhYmxlT3B0Z3JvdXAgPSAkKG9wdGdyb3VwQ29udGFpbmVyVHBsKTsKICAgICAgICAgICRzZWxlY3Rpb25PcHRncm91cCA9ICQob3B0Z3JvdXBDb250YWluZXJUcGwpOwogICAgICAgICAgJHNlbGVjdGFibGVPcHRncm91cC5hdHRyKCdpZCcsICdvcHRncm91cC1zZWxlY3RhYmxlLScrb3B0Z3JvdXBJZCk7CiAgICAgICAgICAkc2VsZWN0aW9uT3B0Z3JvdXAuYXR0cignaWQnLCAnb3B0Z3JvdXAtc2VsZWN0aW9uLScrb3B0Z3JvdXBJZCk7CiAgICAgICAgICAkc2VsZWN0YWJsZU9wdGdyb3VwLmFwcGVuZCgkKG9wdGdyb3VwVHBsKSk7CiAgICAgICAgICAkc2VsZWN0aW9uT3B0Z3JvdXAuYXBwZW5kKCQob3B0Z3JvdXBUcGwpKTsKICAgICAgICAgIGlmICh0aGF0Lm9wdGlvbnMuc2VsZWN0YWJsZU9wdGdyb3VwKXsKICAgICAgICAgICAgJHNlbGVjdGFibGVPcHRncm91cC5maW5kKCcubXMtb3B0Z3JvdXAtbGFiZWwnKS5vbignY2xpY2snLCBmdW5jdGlvbigpewogICAgICAgICAgICAgIHZhciB2YWx1ZXMgPSAkb3B0Z3JvdXAuY2hpbGRyZW4oJzpub3QoOnNlbGVjdGVkLCA6ZGlzYWJsZWQpJykubWFwKGZ1bmN0aW9uKCl7IHJldHVybiAkKHRoaXMpLnZhbCgpO30pLmdldCgpOwogICAgICAgICAgICAgIHRoYXQuc2VsZWN0KHZhbHVlcyk7CiAgICAgICAgICAgIH0pOwogICAgICAgICAgICAkc2VsZWN0aW9uT3B0Z3JvdXAuZmluZCgnLm1zLW9wdGdyb3VwLWxhYmVsJykub24oJ2NsaWNrJywgZnVuY3Rpb24oKXsKICAgICAgICAgICAgICB2YXIgdmFsdWVzID0gJG9wdGdyb3VwLmNoaWxkcmVuKCc6c2VsZWN0ZWQ6bm90KDpkaXNhYmxlZCknKS5tYXAoZnVuY3Rpb24oKXsgcmV0dXJuICQodGhpcykudmFsKCk7fSkuZ2V0KCk7CiAgICAgICAgICAgICAgdGhhdC5kZXNlbGVjdCh2YWx1ZXMpOwogICAgICAgICAgICB9KTsKICAgICAgICAgIH0KICAgICAgICAgIHRoYXQuJHNlbGVjdGFibGVVbC5hcHBlbmQoJHNlbGVjdGFibGVPcHRncm91cCk7CiAgICAgICAgICB0aGF0LiRzZWxlY3Rpb25VbC5hcHBlbmQoJHNlbGVjdGlvbk9wdGdyb3VwKTsKICAgICAgICB9CiAgICAgICAgaW5kZXggPSBpbmRleCA9PT0gdW5kZWZpbmVkID8gJHNlbGVjdGFibGVPcHRncm91cC5maW5kKCd1bCcpLmNoaWxkcmVuKCkubGVuZ3RoIDogaW5kZXggKyAxOwogICAgICAgIHNlbGVjdGFibGVMaS5pbnNlcnRBdChpbmRleCwgJHNlbGVjdGFibGVPcHRncm91cC5jaGlsZHJlbigpKTsKICAgICAgICBzZWxlY3RlZExpLmluc2VydEF0KGluZGV4LCAkc2VsZWN0aW9uT3B0Z3JvdXAuY2hpbGRyZW4oKSk7CiAgICAgIH0gZWxzZSB7CiAgICAgICAgaW5kZXggPSBpbmRleCA9PT0gdW5kZWZpbmVkID8gdGhhdC4kc2VsZWN0YWJsZVVsLmNoaWxkcmVuKCkubGVuZ3RoIDogaW5kZXg7CgogICAgICAgIHNlbGVjdGFibGVMaS5pbnNlcnRBdChpbmRleCwgdGhhdC4kc2VsZWN0YWJsZVVsKTsKICAgICAgICBzZWxlY3RlZExpLmluc2VydEF0KGluZGV4LCB0aGF0LiRzZWxlY3Rpb25VbCk7CiAgICAgIH0KICAgIH0sCgogICAgJ2FkZE9wdGlvbicgOiBmdW5jdGlvbihvcHRpb25zKXsKICAgICAgdmFyIHRoYXQgPSB0aGlzOwoKICAgICAgaWYgKG9wdGlvbnMudmFsdWUgIT09IHVuZGVmaW5lZCAmJiBvcHRpb25zLnZhbHVlICE9PSBudWxsKXsKICAgICAgICBvcHRpb25zID0gW29wdGlvbnNdOwogICAgICB9IAogICAgICAkLmVhY2gob3B0aW9ucywgZnVuY3Rpb24oaW5kZXgsIG9wdGlvbil7CiAgICAgICAgaWYgKG9wdGlvbi52YWx1ZSAhPT0gdW5kZWZpbmVkICYmIG9wdGlvbi52YWx1ZSAhPT0gbnVsbCAmJgogICAgICAgICAgICB0aGF0LiRlbGVtZW50LmZpbmQoIm9wdGlvblt2YWx1ZT0nIitvcHRpb24udmFsdWUrIiddIikubGVuZ3RoID09PSAwKXsKICAgICAgICAgIHZhciAkb3B0aW9uID0gJCgnPG9wdGlvbiB2YWx1ZT0iJytvcHRpb24udmFsdWUrJyI+JytvcHRpb24udGV4dCsnPC9vcHRpb24+JyksCiAgICAgICAgICAgICAgaW5kZXggPSBwYXJzZUludCgodHlwZW9mIG9wdGlvbi5pbmRleCA9PT0gJ3VuZGVmaW5lZCcgPyB0aGF0LiRlbGVtZW50LmNoaWxkcmVuKCkubGVuZ3RoIDogb3B0aW9uLmluZGV4KSksCiAgICAgICAgICAgICAgJGNvbnRhaW5lciA9IG9wdGlvbi5uZXN0ZWQgPT09IHVuZGVmaW5lZCA/IHRoYXQuJGVsZW1lbnQgOiAkKCJvcHRncm91cFtsYWJlbD0nIitvcHRpb24ubmVzdGVkKyInXSIpOwoKICAgICAgICAgICRvcHRpb24uaW5zZXJ0QXQoaW5kZXgsICRjb250YWluZXIpOwogICAgICAgICAgdGhhdC5nZW5lcmF0ZUxpc0Zyb21PcHRpb24oJG9wdGlvbi5nZXQoMCksIGluZGV4LCBvcHRpb24ubmVzdGVkKTsKICAgICAgICB9CiAgICAgIH0pOwogICAgfSwKCiAgICAnZXNjYXBlSFRNTCcgOiBmdW5jdGlvbih0ZXh0KXsKICAgICAgcmV0dXJuICQoIjxkaXY+IikudGV4dCh0ZXh0KS5odG1sKCk7CiAgICB9LAoKICAgICdhY3RpdmVLZXlib2FyZCcgOiBmdW5jdGlvbigkbGlzdCl7CiAgICAgIHZhciB0aGF0ID0gdGhpczsKCiAgICAgICRsaXN0Lm9uKCdmb2N1cycsIGZ1bmN0aW9uKCl7CiAgICAgICAgJCh0aGlzKS5hZGRDbGFzcygnbXMtZm9jdXMnKTsKICAgICAgfSkKICAgICAgLm9uKCdibHVyJywgZnVuY3Rpb24oKXsKICAgICAgICAkKHRoaXMpLnJlbW92ZUNsYXNzKCdtcy1mb2N1cycpOwogICAgICB9KQogICAgICAub24oJ2tleWRvd24nLCBmdW5jdGlvbihlKXsKICAgICAgICBzd2l0Y2ggKGUud2hpY2gpIHsKICAgICAgICAgIGNhc2UgNDA6CiAgICAgICAgICBjYXNlIDM4OgogICAgICAgICAgICBlLnByZXZlbnREZWZhdWx0KCk7CiAgICAgICAgICAgIGUuc3RvcFByb3BhZ2F0aW9uKCk7CiAgICAgICAgICAgIHRoYXQubW92ZUhpZ2hsaWdodCgkKHRoaXMpLCAoZS53aGljaCA9PT0gMzgpID8gLTEgOiAxKTsKICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgY2FzZSAzNzoKICAgICAgICAgIGNhc2UgMzk6CiAgICAgICAgICAgIGUucHJldmVudERlZmF1bHQoKTsKICAgICAgICAgICAgZS5zdG9wUHJvcGFnYXRpb24oKTsKICAgICAgICAgICAgdGhhdC5zd2l0Y2hMaXN0KCRsaXN0KTsKICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgY2FzZSA5OgogICAgICAgICAgICBpZih0aGF0LiRlbGVtZW50LmlzKCdbdGFiaW5kZXhdJykpewogICAgICAgICAgICAgIGUucHJldmVudERlZmF1bHQoKTsKICAgICAgICAgICAgICB2YXIgdGFiaW5kZXggPSBwYXJzZUludCh0aGF0LiRlbGVtZW50LmF0dHIoJ3RhYmluZGV4JyksIDEwKTsKICAgICAgICAgICAgICB0YWJpbmRleCA9IChlLnNoaWZ0S2V5KSA/IHRhYmluZGV4LTEgOiB0YWJpbmRleCsxOwogICAgICAgICAgICAgICQoJ1t0YWJpbmRleD0iJysodGFiaW5kZXgpKyciXScpLmZvY3VzKCk7CiAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICB9ZWxzZXsKICAgICAgICAgICAgICBpZihlLnNoaWZ0S2V5KXsKICAgICAgICAgICAgICAgIHRoYXQuJGVsZW1lbnQudHJpZ2dlcignZm9jdXMnKTsKICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgaWYoJC5pbkFycmF5KGUud2hpY2gsIHRoYXQub3B0aW9ucy5rZXlTZWxlY3QpID4gLTEpewogICAgICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpOwogICAgICAgICAgZS5zdG9wUHJvcGFnYXRpb24oKTsKICAgICAgICAgIHRoYXQuc2VsZWN0SGlnaGxpZ2h0ZWQoJGxpc3QpOwogICAgICAgICAgcmV0dXJuOwogICAgICAgIH0KICAgICAgfSk7CiAgICB9LAoKICAgICdtb3ZlSGlnaGxpZ2h0JzogZnVuY3Rpb24oJGxpc3QsIGRpcmVjdGlvbil7CiAgICAgIHZhciAkZWxlbXMgPSAkbGlzdC5maW5kKHRoaXMuZWxlbXNTZWxlY3RvciksCiAgICAgICAgICAkY3VyckVsZW0gPSAkZWxlbXMuZmlsdGVyKCcubXMtaG92ZXInKSwKICAgICAgICAgICRuZXh0RWxlbSA9IG51bGwsCiAgICAgICAgICBlbGVtSGVpZ2h0ID0gJGVsZW1zLmZpcnN0KCkub3V0ZXJIZWlnaHQoKSwKICAgICAgICAgIGNvbnRhaW5lckhlaWdodCA9ICRsaXN0LmhlaWdodCgpLAogICAgICAgICAgY29udGFpbmVyU2VsZWN0b3IgPSAnIycrdGhpcy4kY29udGFpbmVyLnByb3AoJ2lkJyk7CgogICAgICAkZWxlbXMucmVtb3ZlQ2xhc3MoJ21zLWhvdmVyJyk7CiAgICAgIGlmIChkaXJlY3Rpb24gPT09IDEpeyAvLyBET1dOCgogICAgICAgICRuZXh0RWxlbSA9ICRjdXJyRWxlbS5uZXh0QWxsKHRoaXMuZWxlbXNTZWxlY3RvcikuZmlyc3QoKTsKICAgICAgICBpZiAoJG5leHRFbGVtLmxlbmd0aCA9PT0gMCl7CiAgICAgICAgICB2YXIgJG9wdGdyb3VwVWwgPSAkY3VyckVsZW0ucGFyZW50KCk7CgogICAgICAgICAgaWYgKCRvcHRncm91cFVsLmhhc0NsYXNzKCdtcy1vcHRncm91cCcpKXsKICAgICAgICAgICAgdmFyICRvcHRncm91cExpID0gJG9wdGdyb3VwVWwucGFyZW50KCksCiAgICAgICAgICAgICAgICAkbmV4dE9wdGdyb3VwTGkgPSAkb3B0Z3JvdXBMaS5uZXh0KCc6dmlzaWJsZScpOwoKICAgICAgICAgICAgaWYgKCRuZXh0T3B0Z3JvdXBMaS5sZW5ndGggPiAwKXsKICAgICAgICAgICAgICAkbmV4dEVsZW0gPSAkbmV4dE9wdGdyb3VwTGkuZmluZCh0aGlzLmVsZW1zU2VsZWN0b3IpLmZpcnN0KCk7CiAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgJG5leHRFbGVtID0gJGVsZW1zLmZpcnN0KCk7CiAgICAgICAgICAgIH0KICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICRuZXh0RWxlbSA9ICRlbGVtcy5maXJzdCgpOwogICAgICAgICAgfQogICAgICAgIH0KICAgICAgfSBlbHNlIGlmIChkaXJlY3Rpb24gPT09IC0xKXsgLy8gVVAKCiAgICAgICAgJG5leHRFbGVtID0gJGN1cnJFbGVtLnByZXZBbGwodGhpcy5lbGVtc1NlbGVjdG9yKS5maXJzdCgpOwogICAgICAgIGlmICgkbmV4dEVsZW0ubGVuZ3RoID09PSAwKXsKICAgICAgICAgIHZhciAkb3B0Z3JvdXBVbCA9ICRjdXJyRWxlbS5wYXJlbnQoKTsKCiAgICAgICAgICBpZiAoJG9wdGdyb3VwVWwuaGFzQ2xhc3MoJ21zLW9wdGdyb3VwJykpewogICAgICAgICAgICB2YXIgJG9wdGdyb3VwTGkgPSAkb3B0Z3JvdXBVbC5wYXJlbnQoKSwKICAgICAgICAgICAgICAgICRwcmV2T3B0Z3JvdXBMaSA9ICRvcHRncm91cExpLnByZXYoJzp2aXNpYmxlJyk7CgogICAgICAgICAgICBpZiAoJHByZXZPcHRncm91cExpLmxlbmd0aCA+IDApewogICAgICAgICAgICAgICRuZXh0RWxlbSA9ICRwcmV2T3B0Z3JvdXBMaS5maW5kKHRoaXMuZWxlbXNTZWxlY3RvcikubGFzdCgpOwogICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICRuZXh0RWxlbSA9ICRlbGVtcy5sYXN0KCk7CiAgICAgICAgICAgIH0KICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICRuZXh0RWxlbSA9ICRlbGVtcy5sYXN0KCk7CiAgICAgICAgICB9CiAgICAgICAgfQogICAgICB9CiAgICAgIGlmICgkbmV4dEVsZW0ubGVuZ3RoID4gMCl7CiAgICAgICAgJG5leHRFbGVtLmFkZENsYXNzKCdtcy1ob3ZlcicpOwogICAgICAgIHZhciBzY3JvbGxUbyA9ICRsaXN0LnNjcm9sbFRvcCgpICsgJG5leHRFbGVtLnBvc2l0aW9uKCkudG9wIC0gCiAgICAgICAgICAgICAgICAgICAgICAgY29udGFpbmVySGVpZ2h0IC8gMiArIGVsZW1IZWlnaHQgLyAyOwoKICAgICAgICAkbGlzdC5zY3JvbGxUb3Aoc2Nyb2xsVG8pOwogICAgICB9CiAgICB9LAoKICAgICdzZWxlY3RIaWdobGlnaHRlZCcgOiBmdW5jdGlvbigkbGlzdCl7CiAgICAgIHZhciAkZWxlbXMgPSAkbGlzdC5maW5kKHRoaXMuZWxlbXNTZWxlY3RvciksCiAgICAgICAgICAkaGlnaGxpZ2h0ZWRFbGVtID0gJGVsZW1zLmZpbHRlcignLm1zLWhvdmVyJykuZmlyc3QoKTsKCiAgICAgIGlmICgkaGlnaGxpZ2h0ZWRFbGVtLmxlbmd0aCA+IDApewogICAgICAgIGlmICgkbGlzdC5wYXJlbnQoKS5oYXNDbGFzcygnbXMtc2VsZWN0YWJsZScpKXsKICAgICAgICAgIHRoaXMuc2VsZWN0KCRoaWdobGlnaHRlZEVsZW0uZGF0YSgnbXMtdmFsdWUnKSk7CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgIHRoaXMuZGVzZWxlY3QoJGhpZ2hsaWdodGVkRWxlbS5kYXRhKCdtcy12YWx1ZScpKTsKICAgICAgICB9CiAgICAgICAgJGVsZW1zLnJlbW92ZUNsYXNzKCdtcy1ob3ZlcicpOwogICAgICB9CiAgICB9LAoKICAgICdzd2l0Y2hMaXN0JyA6IGZ1bmN0aW9uKCRsaXN0KXsKICAgICAgJGxpc3QuYmx1cigpOwogICAgICB0aGlzLiRjb250YWluZXIuZmluZCh0aGlzLmVsZW1zU2VsZWN0b3IpLnJlbW92ZUNsYXNzKCdtcy1ob3ZlcicpOwogICAgICBpZiAoJGxpc3QucGFyZW50KCkuaGFzQ2xhc3MoJ21zLXNlbGVjdGFibGUnKSl7CiAgICAgICAgdGhpcy4kc2VsZWN0aW9uVWwuZm9jdXMoKTsKICAgICAgfSBlbHNlIHsKICAgICAgICB0aGlzLiRzZWxlY3RhYmxlVWwuZm9jdXMoKTsKICAgICAgfQogICAgfSwKCiAgICAnYWN0aXZlTW91c2UnIDogZnVuY3Rpb24oJGxpc3QpewogICAgICB2YXIgdGhhdCA9IHRoaXM7CgogICAgICB0aGlzLiRjb250YWluZXIub24oJ21vdXNlZW50ZXInLCB0aGF0LmVsZW1zU2VsZWN0b3IsIGZ1bmN0aW9uKCl7CiAgICAgICAgJCh0aGlzKS5wYXJlbnRzKCcubXMtY29udGFpbmVyJykuZmluZCh0aGF0LmVsZW1zU2VsZWN0b3IpLnJlbW92ZUNsYXNzKCdtcy1ob3ZlcicpOwogICAgICAgICQodGhpcykuYWRkQ2xhc3MoJ21zLWhvdmVyJyk7CiAgICAgIH0pOwoKICAgICAgdGhpcy4kY29udGFpbmVyLm9uKCdtb3VzZWxlYXZlJywgdGhhdC5lbGVtc1NlbGVjdG9yLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgJCh0aGlzKS5wYXJlbnRzKCcubXMtY29udGFpbmVyJykuZmluZCh0aGF0LmVsZW1zU2VsZWN0b3IpLnJlbW92ZUNsYXNzKCdtcy1ob3ZlcicpOwogICAgICB9KTsKICAgIH0sCgogICAgJ3JlZnJlc2gnIDogZnVuY3Rpb24oKSB7CiAgICAgIHRoaXMuZGVzdHJveSgpOwogICAgICB0aGlzLiRlbGVtZW50Lm11bHRpU2VsZWN0KHRoaXMub3B0aW9ucyk7CiAgICB9LAoKICAgICdkZXN0cm95JyA6IGZ1bmN0aW9uKCl7CiAgICAgICQoIiNtcy0iK3RoaXMuJGVsZW1lbnQuYXR0cigiaWQiKSkucmVtb3ZlKCk7CiAgICAgIHRoaXMuJGVsZW1lbnQub2ZmKCdmb2N1cycpOwogICAgICB0aGlzLiRlbGVtZW50LmNzcygncG9zaXRpb24nLCAnJykuY3NzKCdsZWZ0JywgJycpOwogICAgICB0aGlzLiRlbGVtZW50LnJlbW92ZURhdGEoJ211bHRpc2VsZWN0Jyk7CiAgICB9LAoKICAgICdzZWxlY3QnIDogZnVuY3Rpb24odmFsdWUsIG1ldGhvZCl7CiAgICAgIGlmICh0eXBlb2YgdmFsdWUgPT09ICdzdHJpbmcnKXsgdmFsdWUgPSBbdmFsdWVdOyB9CgogICAgICB2YXIgdGhhdCA9IHRoaXMsCiAgICAgICAgICBtcyA9IHRoaXMuJGVsZW1lbnQsCiAgICAgICAgICBtc0lkcyA9ICQubWFwKHZhbHVlLCBmdW5jdGlvbih2YWwpeyByZXR1cm4odGhhdC5zYW5pdGl6ZSh2YWwpKTsgfSksCiAgICAgICAgICBzZWxlY3RhYmxlcyA9IHRoaXMuJHNlbGVjdGFibGVVbC5maW5kKCcjJyArIG1zSWRzLmpvaW4oJy1zZWxlY3RhYmxlLCAjJykrJy1zZWxlY3RhYmxlJykuZmlsdGVyKCc6bm90KC4nK3RoYXQub3B0aW9ucy5kaXNhYmxlZENsYXNzKycpJyksCiAgICAgICAgICBzZWxlY3Rpb25zID0gdGhpcy4kc2VsZWN0aW9uVWwuZmluZCgnIycgKyBtc0lkcy5qb2luKCctc2VsZWN0aW9uLCAjJykgKyAnLXNlbGVjdGlvbicpLmZpbHRlcignOm5vdCguJyt0aGF0Lm9wdGlvbnMuZGlzYWJsZWRDbGFzcysnKScpLAogICAgICAgICAgb3B0aW9ucyA9IG1zLmZpbmQoJ29wdGlvbjpub3QoOmRpc2FibGVkKScpLmZpbHRlcihmdW5jdGlvbigpeyByZXR1cm4oJC5pbkFycmF5KHRoaXMudmFsdWUsIHZhbHVlKSA+IC0xKTsgfSk7CgogICAgICBpZiAobWV0aG9kID09PSAnaW5pdCcpewogICAgICAgIHNlbGVjdGFibGVzID0gdGhpcy4kc2VsZWN0YWJsZVVsLmZpbmQoJyMnICsgbXNJZHMuam9pbignLXNlbGVjdGFibGUsICMnKSsnLXNlbGVjdGFibGUnKSwKICAgICAgICBzZWxlY3Rpb25zID0gdGhpcy4kc2VsZWN0aW9uVWwuZmluZCgnIycgKyBtc0lkcy5qb2luKCctc2VsZWN0aW9uLCAjJykgKyAnLXNlbGVjdGlvbicpOwogICAgICB9CgogICAgICBpZiAoc2VsZWN0YWJsZXMubGVuZ3RoID4gMCl7CiAgICAgICAgc2VsZWN0YWJsZXMuYWRkQ2xhc3MoJ21zLXNlbGVjdGVkJykuaGlkZSgpOwogICAgICAgIHNlbGVjdGlvbnMuYWRkQ2xhc3MoJ21zLXNlbGVjdGVkJykuc2hvdygpOwoKICAgICAgICBvcHRpb25zLnByb3AoJ3NlbGVjdGVkJywgdHJ1ZSk7CgogICAgICAgIHRoYXQuJGNvbnRhaW5lci5maW5kKHRoYXQuZWxlbXNTZWxlY3RvcikucmVtb3ZlQ2xhc3MoJ21zLWhvdmVyJyk7CgogICAgICAgIHZhciBzZWxlY3RhYmxlT3B0Z3JvdXBzID0gdGhhdC4kc2VsZWN0YWJsZVVsLmNoaWxkcmVuKCcubXMtb3B0Z3JvdXAtY29udGFpbmVyJyk7CiAgICAgICAgaWYgKHNlbGVjdGFibGVPcHRncm91cHMubGVuZ3RoID4gMCl7CiAgICAgICAgICBzZWxlY3RhYmxlT3B0Z3JvdXBzLmVhY2goZnVuY3Rpb24oKXsKICAgICAgICAgICAgdmFyIHNlbGVjdGFibGVzTGkgPSAkKHRoaXMpLmZpbmQoJy5tcy1lbGVtLXNlbGVjdGFibGUnKTsKICAgICAgICAgICAgaWYgKHNlbGVjdGFibGVzTGkubGVuZ3RoID09PSBzZWxlY3RhYmxlc0xpLmZpbHRlcignLm1zLXNlbGVjdGVkJykubGVuZ3RoKXsKICAgICAgICAgICAgICAkKHRoaXMpLmZpbmQoJy5tcy1vcHRncm91cC1sYWJlbCcpLmhpZGUoKTsKICAgICAgICAgICAgfQogICAgICAgICAgfSk7CgogICAgICAgICAgdmFyIHNlbGVjdGlvbk9wdGdyb3VwcyA9IHRoYXQuJHNlbGVjdGlvblVsLmNoaWxkcmVuKCcubXMtb3B0Z3JvdXAtY29udGFpbmVyJyk7CiAgICAgICAgICBzZWxlY3Rpb25PcHRncm91cHMuZWFjaChmdW5jdGlvbigpewogICAgICAgICAgICB2YXIgc2VsZWN0aW9uc0xpID0gJCh0aGlzKS5maW5kKCcubXMtZWxlbS1zZWxlY3Rpb24nKTsKICAgICAgICAgICAgaWYgKHNlbGVjdGlvbnNMaS5maWx0ZXIoJy5tcy1zZWxlY3RlZCcpLmxlbmd0aCA+IDApewogICAgICAgICAgICAgICQodGhpcykuZmluZCgnLm1zLW9wdGdyb3VwLWxhYmVsJykuc2hvdygpOwogICAgICAgICAgICB9CiAgICAgICAgICB9KTsKICAgICAgICB9IGVsc2UgewogICAgICAgICAgaWYgKHRoYXQub3B0aW9ucy5rZWVwT3JkZXIgJiYgbWV0aG9kICE9PSAnaW5pdCcpewogICAgICAgICAgICB2YXIgc2VsZWN0aW9uTGlMYXN0ID0gdGhhdC4kc2VsZWN0aW9uVWwuZmluZCgnLm1zLXNlbGVjdGVkJyk7CiAgICAgICAgICAgIGlmKChzZWxlY3Rpb25MaUxhc3QubGVuZ3RoID4gMSkgJiYgKHNlbGVjdGlvbkxpTGFzdC5sYXN0KCkuZ2V0KDApICE9IHNlbGVjdGlvbnMuZ2V0KDApKSkgewogICAgICAgICAgICAgIHNlbGVjdGlvbnMuaW5zZXJ0QWZ0ZXIoc2VsZWN0aW9uTGlMYXN0Lmxhc3QoKSk7CiAgICAgICAgICAgIH0KICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgaWYgKG1ldGhvZCAhPT0gJ2luaXQnKXsKICAgICAgICAgIG1zLnRyaWdnZXIoJ2NoYW5nZScpOwogICAgICAgICAgaWYgKHR5cGVvZiB0aGF0Lm9wdGlvbnMuYWZ0ZXJTZWxlY3QgPT09ICdmdW5jdGlvbicpIHsKICAgICAgICAgICAgdGhhdC5vcHRpb25zLmFmdGVyU2VsZWN0LmNhbGwodGhpcywgdmFsdWUpOwogICAgICAgICAgfQogICAgICAgIH0KICAgICAgfQogICAgfSwKCiAgICAnZGVzZWxlY3QnIDogZnVuY3Rpb24odmFsdWUpewogICAgICBpZiAodHlwZW9mIHZhbHVlID09PSAnc3RyaW5nJyl7IHZhbHVlID0gW3ZhbHVlXTsgfQoKICAgICAgdmFyIHRoYXQgPSB0aGlzLAogICAgICAgICAgbXMgPSB0aGlzLiRlbGVtZW50LAogICAgICAgICAgbXNJZHMgPSAkLm1hcCh2YWx1ZSwgZnVuY3Rpb24odmFsKXsgcmV0dXJuKHRoYXQuc2FuaXRpemUodmFsKSk7IH0pLAogICAgICAgICAgc2VsZWN0YWJsZXMgPSB0aGlzLiRzZWxlY3RhYmxlVWwuZmluZCgnIycgKyBtc0lkcy5qb2luKCctc2VsZWN0YWJsZSwgIycpKyctc2VsZWN0YWJsZScpLAogICAgICAgICAgc2VsZWN0aW9ucyA9IHRoaXMuJHNlbGVjdGlvblVsLmZpbmQoJyMnICsgbXNJZHMuam9pbignLXNlbGVjdGlvbiwgIycpKyctc2VsZWN0aW9uJykuZmlsdGVyKCcubXMtc2VsZWN0ZWQnKS5maWx0ZXIoJzpub3QoLicrdGhhdC5vcHRpb25zLmRpc2FibGVkQ2xhc3MrJyknKSwKICAgICAgICAgIG9wdGlvbnMgPSBtcy5maW5kKCdvcHRpb24nKS5maWx0ZXIoZnVuY3Rpb24oKXsgcmV0dXJuKCQuaW5BcnJheSh0aGlzLnZhbHVlLCB2YWx1ZSkgPiAtMSk7IH0pOwoKICAgICAgaWYgKHNlbGVjdGlvbnMubGVuZ3RoID4gMCl7CiAgICAgICAgc2VsZWN0YWJsZXMucmVtb3ZlQ2xhc3MoJ21zLXNlbGVjdGVkJykuc2hvdygpOwogICAgICAgIHNlbGVjdGlvbnMucmVtb3ZlQ2xhc3MoJ21zLXNlbGVjdGVkJykuaGlkZSgpOwogICAgICAgIG9wdGlvbnMucHJvcCgnc2VsZWN0ZWQnLCBmYWxzZSk7CgogICAgICAgIHRoYXQuJGNvbnRhaW5lci5maW5kKHRoYXQuZWxlbXNTZWxlY3RvcikucmVtb3ZlQ2xhc3MoJ21zLWhvdmVyJyk7CgogICAgICAgIHZhciBzZWxlY3RhYmxlT3B0Z3JvdXBzID0gdGhhdC4kc2VsZWN0YWJsZVVsLmNoaWxkcmVuKCcubXMtb3B0Z3JvdXAtY29udGFpbmVyJyk7CiAgICAgICAgaWYgKHNlbGVjdGFibGVPcHRncm91cHMubGVuZ3RoID4gMCl7CiAgICAgICAgICBzZWxlY3RhYmxlT3B0Z3JvdXBzLmVhY2goZnVuY3Rpb24oKXsKICAgICAgICAgICAgdmFyIHNlbGVjdGFibGVzTGkgPSAkKHRoaXMpLmZpbmQoJy5tcy1lbGVtLXNlbGVjdGFibGUnKTsKICAgICAgICAgICAgaWYgKHNlbGVjdGFibGVzTGkuZmlsdGVyKCc6bm90KC5tcy1zZWxlY3RlZCknKS5sZW5ndGggPiAwKXsKICAgICAgICAgICAgICAkKHRoaXMpLmZpbmQoJy5tcy1vcHRncm91cC1sYWJlbCcpLnNob3coKTsKICAgICAgICAgICAgfQogICAgICAgICAgfSk7CgogICAgICAgICAgdmFyIHNlbGVjdGlvbk9wdGdyb3VwcyA9IHRoYXQuJHNlbGVjdGlvblVsLmNoaWxkcmVuKCcubXMtb3B0Z3JvdXAtY29udGFpbmVyJyk7CiAgICAgICAgICBzZWxlY3Rpb25PcHRncm91cHMuZWFjaChmdW5jdGlvbigpewogICAgICAgICAgICB2YXIgc2VsZWN0aW9uc0xpID0gJCh0aGlzKS5maW5kKCcubXMtZWxlbS1zZWxlY3Rpb24nKTsKICAgICAgICAgICAgaWYgKHNlbGVjdGlvbnNMaS5maWx0ZXIoJy5tcy1zZWxlY3RlZCcpLmxlbmd0aCA9PT0gMCl7CiAgICAgICAgICAgICAgJCh0aGlzKS5maW5kKCcubXMtb3B0Z3JvdXAtbGFiZWwnKS5oaWRlKCk7CiAgICAgICAgICAgIH0KICAgICAgICAgIH0pOwogICAgICAgIH0KICAgICAgICBtcy50cmlnZ2VyKCdjaGFuZ2UnKTsKICAgICAgICBpZiAodHlwZW9mIHRoYXQub3B0aW9ucy5hZnRlckRlc2VsZWN0ID09PSAnZnVuY3Rpb24nKSB7CiAgICAgICAgICB0aGF0Lm9wdGlvbnMuYWZ0ZXJEZXNlbGVjdC5jYWxsKHRoaXMsIHZhbHVlKTsKICAgICAgICB9CiAgICAgIH0KICAgIH0sCgogICAgJ3NlbGVjdF9hbGwnIDogZnVuY3Rpb24oKXsKICAgICAgdmFyIG1zID0gdGhpcy4kZWxlbWVudCwKICAgICAgICAgIHZhbHVlcyA9IG1zLnZhbCgpOwoKICAgICAgbXMuZmluZCgnb3B0aW9uOm5vdCgiOmRpc2FibGVkIiknKS5wcm9wKCdzZWxlY3RlZCcsIHRydWUpOwogICAgICB0aGlzLiRzZWxlY3RhYmxlVWwuZmluZCgnLm1zLWVsZW0tc2VsZWN0YWJsZScpLmZpbHRlcignOm5vdCguJyt0aGlzLm9wdGlvbnMuZGlzYWJsZWRDbGFzcysnKScpLmFkZENsYXNzKCdtcy1zZWxlY3RlZCcpLmhpZGUoKTsKICAgICAgdGhpcy4kc2VsZWN0aW9uVWwuZmluZCgnLm1zLW9wdGdyb3VwLWxhYmVsJykuc2hvdygpOwogICAgICB0aGlzLiRzZWxlY3RhYmxlVWwuZmluZCgnLm1zLW9wdGdyb3VwLWxhYmVsJykuaGlkZSgpOwogICAgICB0aGlzLiRzZWxlY3Rpb25VbC5maW5kKCcubXMtZWxlbS1zZWxlY3Rpb24nKS5maWx0ZXIoJzpub3QoLicrdGhpcy5vcHRpb25zLmRpc2FibGVkQ2xhc3MrJyknKS5hZGRDbGFzcygnbXMtc2VsZWN0ZWQnKS5zaG93KCk7CiAgICAgIHRoaXMuJHNlbGVjdGlvblVsLmZvY3VzKCk7CiAgICAgIG1zLnRyaWdnZXIoJ2NoYW5nZScpOwogICAgICBpZiAodHlwZW9mIHRoaXMub3B0aW9ucy5hZnRlclNlbGVjdCA9PT0gJ2Z1bmN0aW9uJykgewogICAgICAgIHZhciBzZWxlY3RlZFZhbHVlcyA9ICQuZ3JlcChtcy52YWwoKSwgZnVuY3Rpb24oaXRlbSl7CiAgICAgICAgICByZXR1cm4gJC5pbkFycmF5KGl0ZW0sIHZhbHVlcykgPCAwOwogICAgICAgIH0pOwogICAgICAgIHRoaXMub3B0aW9ucy5hZnRlclNlbGVjdC5jYWxsKHRoaXMsIHNlbGVjdGVkVmFsdWVzKTsKICAgICAgfQogICAgfSwKCiAgICAnZGVzZWxlY3RfYWxsJyA6IGZ1bmN0aW9uKCl7CiAgICAgIHZhciBtcyA9IHRoaXMuJGVsZW1lbnQsCiAgICAgICAgICB2YWx1ZXMgPSBtcy52YWwoKTsKCiAgICAgIG1zLmZpbmQoJ29wdGlvbicpLnByb3AoJ3NlbGVjdGVkJywgZmFsc2UpOwogICAgICB0aGlzLiRzZWxlY3RhYmxlVWwuZmluZCgnLm1zLWVsZW0tc2VsZWN0YWJsZScpLnJlbW92ZUNsYXNzKCdtcy1zZWxlY3RlZCcpLnNob3coKTsKICAgICAgdGhpcy4kc2VsZWN0aW9uVWwuZmluZCgnLm1zLW9wdGdyb3VwLWxhYmVsJykuaGlkZSgpOwogICAgICB0aGlzLiRzZWxlY3RhYmxlVWwuZmluZCgnLm1zLW9wdGdyb3VwLWxhYmVsJykuc2hvdygpOwogICAgICB0aGlzLiRzZWxlY3Rpb25VbC5maW5kKCcubXMtZWxlbS1zZWxlY3Rpb24nKS5yZW1vdmVDbGFzcygnbXMtc2VsZWN0ZWQnKS5oaWRlKCk7CiAgICAgIHRoaXMuJHNlbGVjdGFibGVVbC5mb2N1cygpOwogICAgICBtcy50cmlnZ2VyKCdjaGFuZ2UnKTsKICAgICAgaWYgKHR5cGVvZiB0aGlzLm9wdGlvbnMuYWZ0ZXJEZXNlbGVjdCA9PT0gJ2Z1bmN0aW9uJykgewogICAgICAgIHRoaXMub3B0aW9ucy5hZnRlckRlc2VsZWN0LmNhbGwodGhpcywgdmFsdWVzKTsKICAgICAgfQogICAgfSwKCiAgICBzYW5pdGl6ZTogZnVuY3Rpb24odmFsdWUpewogICAgICB2YXIgaGFzaCA9IDAsIGksIGNoYXJhY3RlcjsKICAgICAgaWYgKHZhbHVlLmxlbmd0aCA9PSAwKSByZXR1cm4gaGFzaDsKICAgICAgdmFyIGxzID0gMDsKICAgICAgZm9yIChpID0gMCwgbHMgPSB2YWx1ZS5sZW5ndGg7IGkgPCBsczsgaSsrKSB7CiAgICAgICAgY2hhcmFjdGVyICA9IHZhbHVlLmNoYXJDb2RlQXQoaSk7CiAgICAgICAgaGFzaCAgPSAoKGhhc2g8PDUpLWhhc2gpK2NoYXJhY3RlcjsKICAgICAgICBoYXNoIHw9IDA7IC8vIENvbnZlcnQgdG8gMzJiaXQgaW50ZWdlcgogICAgICB9CiAgICAgIHJldHVybiBoYXNoOwogICAgfQogIH07CgogIC8qIE1VTFRJU0VMRUNUIFBMVUdJTiBERUZJTklUSU9OCiAgICogPT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiAgJC5mbi5tdWx0aVNlbGVjdCA9IGZ1bmN0aW9uICgpIHsKICAgIHZhciBvcHRpb24gPSBhcmd1bWVudHNbMF0sCiAgICAgICAgYXJncyA9IGFyZ3VtZW50czsKCiAgICByZXR1cm4gdGhpcy5lYWNoKGZ1bmN0aW9uICgpIHsKICAgICAgdmFyICR0aGlzID0gJCh0aGlzKSwKICAgICAgICAgIGRhdGEgPSAkdGhpcy5kYXRhKCdtdWx0aXNlbGVjdCcpLAogICAgICAgICAgb3B0aW9ucyA9ICQuZXh0ZW5kKHt9LCAkLmZuLm11bHRpU2VsZWN0LmRlZmF1bHRzLCAkdGhpcy5kYXRhKCksIHR5cGVvZiBvcHRpb24gPT09ICdvYmplY3QnICYmIG9wdGlvbik7CgogICAgICBpZiAoIWRhdGEpeyAkdGhpcy5kYXRhKCdtdWx0aXNlbGVjdCcsIChkYXRhID0gbmV3IE11bHRpU2VsZWN0KHRoaXMsIG9wdGlvbnMpKSk7IH0KCiAgICAgIGlmICh0eXBlb2Ygb3B0aW9uID09PSAnc3RyaW5nJyl7CiAgICAgICAgZGF0YVtvcHRpb25dKGFyZ3NbMV0pOwogICAgICB9IGVsc2UgewogICAgICAgIGRhdGEuaW5pdCgpOwogICAgICB9CiAgICB9KTsKICB9OwoKICAkLmZuLm11bHRpU2VsZWN0LmRlZmF1bHRzID0gewogICAga2V5U2VsZWN0OiBbMzJdLAogICAgc2VsZWN0YWJsZU9wdGdyb3VwOiBmYWxzZSwKICAgIGRpc2FibGVkQ2xhc3MgOiAnZGlzYWJsZWQnLAogICAgZGJsQ2xpY2sgOiBmYWxzZSwKICAgIGtlZXBPcmRlcjogZmFsc2UsCiAgICBjc3NDbGFzczogJycKICB9OwoKICAkLmZuLm11bHRpU2VsZWN0LkNvbnN0cnVjdG9yID0gTXVsdGlTZWxlY3Q7CgogICQuZm4uaW5zZXJ0QXQgPSBmdW5jdGlvbihpbmRleCwgJHBhcmVudCkgewogICAgcmV0dXJuIHRoaXMuZWFjaChmdW5jdGlvbigpIHsKICAgICAgaWYgKGluZGV4ID09PSAwKSB7CiAgICAgICAgJHBhcmVudC5wcmVwZW5kKHRoaXMpOwogICAgICB9IGVsc2UgewogICAgICAgICRwYXJlbnQuY2hpbGRyZW4oKS5lcShpbmRleCAtIDEpLmFmdGVyKHRoaXMpOwogICAgICB9CiAgICB9KTsKfTsKCn0od2luZG93LmpRdWVyeSk7Cg==]]></data>
	</file>
	<file>
	  <filename>/lib/fielddefs/JQueryMultiSelect/lisefd.JQueryMultiSelect.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHANCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQojIExJU0UgLSBMaXN0IEl0IFNwZWNpYWwgRWRpdGlvbg0KIyBWZXJzaW9uIDEuMg0KIyBBIGZvcmsgb2YgTGlzdEkyDQojIG1haW50YWluZWQgYnkgRmVybmFuZG8gTW9yZ2FkbyBBS0EgSm8gTW9yZw0KIyBzaW5jZSAyMDE1DQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIw0KIyBPcmlnaW5hbCBBdXRob3I6IEJlbiBNYWxlbiwgPGJlbkBjb25jZXB0ZmFjdG9yeS5jb20uYXU+DQojIENvLU1haW50YWluZXI6IFNpbW9uIFJhZGZvcmQsIDxzaW1vbkBjb25jZXB0ZmFjdG9yeS5jb20uYXU+DQojIFdlYjogd3d3LmNvbmNlcHRmYWN0b3J5LmNvbS5hdQ0KIw0KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCiMNCiMgTWFpbnRhaW5lciBzaW5jZSAyMDExIHVwIHRvIDIwMTQ6IEpvbmF0aGFuIFNjaG1pZCwgPGhpQGpvbmF0aGFuc2NobWlkLmRlPg0KIyBXZWI6IHd3dy5qb25hdGhhbnNjaG1pZC5kZQ0KIw0KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCiMNCiMgU29tZSB3YWNrb3Mgc3RhcnRlZCBkZXN0cm95aW5nIHN0dWZmIHNpbmNlIDIwMTIgYW5kIHN0b3BwZWQgYXQgMjAxNDoNCiMNCiMgVGFwaW8gTMO2eXR0eSwgPHRhcHNhQG9yYW5nZS1tZWRpYS5maT4NCiMgV2ViOiB3d3cub3JhbmdlLW1lZGlhLmZpDQojDQojIEdvcmFuIElsaWMsIDx1bmlxdTNlQGdtYWlsLmNvbT4NCiMgV2ViOiB3d3cuaWNoLW1hY2gtZGFzLmF0DQojDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIw0KIyBMSVNFIGlzIGEgQ01TIE1hZGUgU2ltcGxlIG1vZHVsZSB0aGF0IGVuYWJsZXMgdGhlIHdlYiBkZXZlbG9wZXIgdG8gY3JlYXRlDQojIG11bHRpcGxlIGxpc3RzIHRocm91Z2hvdXQgYSBzaXRlLiBJdCBjYW4gYmUgZHVwbGljYXRlZCBhbmQgZ2l2ZW4gZnJpZW5kbHkNCiMgbmFtZXMgZm9yIGVhc2llciBjbGllbnQgbWFpbnRlbmFuY2UuDQojDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIyBCRUdJTl9MSUNFTlNFDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIyBUaGlzIGZpbGUgaXMgcGFydCBvZiBMSVNFDQojIExJU0UgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5DQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5DQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yDQojIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uDQojDQojIExJU0UgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLA0KIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZg0KIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlDQojIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuDQojIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlDQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlDQojIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcgVVNBDQojIE9yIHJlYWQgaXQgb25saW5lOiBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwNCiMNCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQojIEVORF9MSUNFTlNFDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KY2xhc3MgbGlzZWZkX0pRdWVyeU11bHRpU2VsZWN0IGV4dGVuZHMgTElTRUZpZWxkZGVmQmFzZQ0Kew0KCXB1YmxpYyBmdW5jdGlvbiBfX2NvbnN0cnVjdCgmJGRiX2luZm8pIA0KCXsJDQoJCXBhcmVudDo6X19jb25zdHJ1Y3QoJGRiX2luZm8pOw0KCQkNCgkJJHRoaXMtPlNldEZyaWVuZGx5VHlwZSgkdGhpcy0+TW9kTGFuZygnZmllbGRkZWZfJy4kdGhpcy0+R2V0VHlwZSgpKSk7DQoJfQ0KICANCiAgcHVibGljIGZ1bmN0aW9uIEdldEhlYWRlckhUTUwoKQ0KICB7DQogICAgJHRtcGwgPSAnJzsNCiAgICBpZiggJHRoaXMtPkdldE9wdGlvblZhbHVlKCd0eXBlJywgJ011bHRpU2VsZWN0JykgPT0gJ011bHRpU2VsZWN0JyApDQogICAgew0KICAgICAgICAkdG1wbCA9IDw8PEVPVA0KPGxpbmsgdHlwZT0idGV4dC9jc3MiIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0ieyR0aGlzLT5HZXRVUkxQYXRoKCl9L2pxdWVyeS5tdWx0aS1zZWxlY3QuY3NzIiAvPg0KPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0ieyR0aGlzLT5HZXRVUkxQYXRoKCl9L2pxdWVyeS5tdWx0aS1zZWxlY3QuanMiPjwvc2NyaXB0Pg0KRU9UOw0KICAgIH0NCiAgICByZXR1cm4gJHRtcGw7DQogIH0NCgkNCglwdWJsaWMgZnVuY3Rpb24gR2V0T3B0aW9ucygpDQoJew0KCQkkb3B0aW9ucyA9ICR0aGlzLT5HZXRPcHRpb25WYWx1ZSgnb3B0aW9ucycpOw0KCQkkbGlzdCA9IGV4cGxvZGUoIlxuIiwgJG9wdGlvbnMpOw0KCQkNCgkJJG9wdGlvbnMgPSBhcnJheSgpOw0KCQlmb3JlYWNoKCRsaXN0IGFzICRvcHRpb24pIHsNCgkJDQoJCQkkb3B0aW9uID0gZXhwbG9kZSgiPSIsICRvcHRpb24sIDIpOw0KCQkJaWYoY291bnQoJG9wdGlvbikgPiAxKSB7DQoJCQkJJG9wdGlvbnNbdHJpbSgkb3B0aW9uWzFdKV0gPSB0cmltKCRvcHRpb25bMF0pOw0KCQkJfSBlbHNlIHsNCgkJCQkkb3B0aW9uc1t0cmltKCRvcHRpb25bMF0pXSA9IHRyaW0oJG9wdGlvblswXSk7DQoJCQl9DQoJCX0NCg0KCQlyZXR1cm4gJG9wdGlvbnM7DQoJfQ0KCQkNCn0gLy8gZW5kIG9mIGNsYXNzDQo/Pg==]]></data>
	</file>
	<file>
	  <filename>/lib/fielddefs/JQueryMultiSelect/output.JQueryMultiSelect.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[eyRmaWVsZGRlZi5uYW1lfToge2ltcGxvZGUoJywnLCAkZmllbGRkZWYudmFsdWUpfQ==]]></data>
	</file>
	<file>
	  <filename>/lib/fielddefs/LISEInstance</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/lib/fielddefs/LISEInstance/admin.LISEInstance.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PGZpZWxkc2V0PgogIDxsZWdlbmQ+eyRmaWVsZGRlZi0+TW9kTGFuZygnb3B0aW9ucycpfTwvbGVnZW5kPgogIDxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CiAgICA8cCBjbGFzcz0icGFnZXRleHQiPnskZmllbGRkZWYtPk1vZExhbmcoJ3N1YnR5cGUnKX06PC9wPgogICAgPHAgY2xhc3M9InBhZ2VpbnB1dCI+CgkgICAge2h0bWxfb3B0aW9ucyBuYW1lPSJ7JGFjdGlvbmlkfWN1c3RvbV9pbnB1dFtzdWJ0eXBlXSIgb3B0aW9ucz0kZmllbGRkZWYtPlN1YlR5cGVzKCkgc2VsZWN0ZWQ9JGZpZWxkZGVmLT5HZXRPcHRpb25WYWx1ZSgnc3VidHlwZScsICdEcm9wZG93bicpfQogICAgPC9wPgogICAgPHAgY2xhc3M9InBhZ2V0ZXh0Ij48ZGl2IGNsYXNzPSJpbmZvcm1hdGlvbiI+eyRmaWVsZGRlZi0+TW9kTGFuZygnZmllbGRkZWZfc3VidHlwZV9oZWxwJyl9PC9kaXY+PC9wPgogIDwvZGl2PgogIDxocj4KICA8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgkKICAgIDxwIGNsYXNzPSJwYWdldGV4dCI+eyRmaWVsZGRlZi0+TW9kTGFuZygnc2VwYXJhdG9yJyl9OjwvcD4KICAgIDxwIGNsYXNzPSJwYWdlaW5wdXQiPgogICAgICA8aW5wdXQgdHlwZT0idGV4dCIgbmFtZT0ieyRhY3Rpb25pZH1jdXN0b21faW5wdXRbc2VwYXJhdG9yXSIgdmFsdWU9InskZmllbGRkZWYtPkdldE9wdGlvblZhbHVlKCdzZXBhcmF0b3InKX0iIC8+CiAgICA8L3A+CQogICAgPHAgY2xhc3M9InBhZ2V0ZXh0Ij48ZGl2IGNsYXNzPSJpbmZvcm1hdGlvbiI+eyRmaWVsZGRlZi0+TW9kTGFuZygnZmllbGRkZWZfc2VwYXJhdG9yX2hlbHAnKX08L2Rpdj48L3A+CiAgPC9kaXY+CiAgPGhyPgogIDxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CQogICAgPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JGZpZWxkZGVmLT5Nb2RMYW5nKCdjb2x1bW5zJyl9OjwvcD4KICAgIDxwIGNsYXNzPSJwYWdlaW5wdXQiPgogICAgICA8aW5wdXQgdHlwZT0idGV4dCIgbmFtZT0ieyRhY3Rpb25pZH1jdXN0b21faW5wdXRbY29sdW1uc10iIHZhbHVlPSJ7JGZpZWxkZGVmLT5HZXRPcHRpb25WYWx1ZSgnY29sdW1ucycsIDEpfSIgLz4KICAgIDwvcD4KICAgIDxwIGNsYXNzPSJwYWdldGV4dCI+PGRpdiBjbGFzcz0iaW5mb3JtYXRpb24iPnskZmllbGRkZWYtPk1vZExhbmcoJ2ZpZWxkZGVmX2NvbHVtbnNfaGVscCcpfTwvZGl2PjwvcD4JCiAgPC9kaXY+CiAgPGhyPgogIDxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CiAgICA8cCBjbGFzcz0icGFnZXRleHQiPnskZmllbGRkZWYtPk1vZExhbmcoJ2ZpZWxkZGVmX2xpX3NlbGVjdF9ub25lJyl9OjwvcD4KICAgIDxwIGNsYXNzPSJwYWdlaW5wdXQiPgogICAgICA8aW5wdXQgdHlwZT0idGV4dCIgbmFtZT0ieyRhY3Rpb25pZH1jdXN0b21faW5wdXRbc2VsZWN0X25vbmVdIiB2YWx1ZT0ieyRmaWVsZGRlZi0+R2V0T3B0aW9uVmFsdWUoJ3NlbGVjdF9ub25lJywgJycpfSIgLz4KICAgIDwvcD4KICAgIDxwIGNsYXNzPSJwYWdldGV4dCI+PGRpdiBjbGFzcz0iaW5mb3JtYXRpb24iPnskZmllbGRkZWYtPk1vZExhbmcoJ2ZpZWxkZGVmX2xpX3NlbGVjdF9ub25lX2hlbHAnKX08L2Rpdj48L3A+CiAgPC9kaXY+CjwvZmllbGRzZXQ+]]></data>
	</file>
	<file>
	  <filename>/lib/fielddefs/LISEInstance/help.LISEInstance.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PGJ1dHRvbiBjbGFzcz0iYWNjb3JkaW9uIj48c3Ryb25nPnskZmllbGRkZWYtPkdldEZyaWVuZGx5VHlwZSgpfTwvc3Ryb25nPjwvYnV0dG9uPgoKPGRpdiBjbGFzcz0iYWNjcGFuZWwiPgoKCTxoND5XaGF0IGRvZXMgaXQgZG8/PC9oND4KCgk8cD5UaGlzIGZpZWxkIGRlZmluaXRpb24gY2FuIGJlIHVzZWQgdG8gYWRkIGEgPHN0cm9uZz5MSVNFIEluc3RhbmNlIFNlbGVjdG9yPC9zdHJvbmc+IHRvIGEgTElTRSBpdGVtLjwvcD4KCgk8cD5UT0RPPC9wPgoKCgk8aDQ+SG93IGRvIEkgdXNlIGl0PzwvaDQ+CgoJPHA+VE9ETzwvcD4KCgk8cD5UaGUgc2V0dGluZ3MgZm9yIHRoaXMgZmllbGQgYXJlOjwvcD4KCgk8dWw+CgkJPGxpPjxiPlN1YiBUeXBlOjwvYj4KIAkJCTx1bD4KIAkJCQk8bGk+RHJvcGRvd248L2xpPgogCQkJCTxsaT5SYWRpbyBHcm91cDwvbGk+CgkJCTwvdWw+CgkJPC9saT4KCQk8bGk+PGI+U2VwYXJhdG9yPC9iPjwvbGk+CgkJPGxpPjxiPkNvbHVtbnM8L2I+PC9saT4KCTwvdWw+Cgo8L2Rpdj4=]]></data>
	</file>
	<file>
	  <filename>/lib/fielddefs/LISEInstance/index.html</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PCEtLSBEVU1NWSBIVE1MIEZJTEUgLS0+]]></data>
	</file>
	<file>
	  <filename>/lib/fielddefs/LISEInstance/lisefd.LISEInstance.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHANCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQojIExJU0UgLSBMaXN0IEl0IFNwZWNpYWwgRWRpdGlvbg0KIyBWZXJzaW9uIDEuMg0KIyBBIGZvcmsgb2YgTGlzdEkyDQojIG1haW50YWluZWQgYnkgRmVybmFuZG8gTW9yZ2FkbyBBS0EgSm8gTW9yZw0KIyBzaW5jZSAyMDE1DQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIw0KIyBPcmlnaW5hbCBBdXRob3I6IEJlbiBNYWxlbiwgPGJlbkBjb25jZXB0ZmFjdG9yeS5jb20uYXU+DQojIENvLU1haW50YWluZXI6IFNpbW9uIFJhZGZvcmQsIDxzaW1vbkBjb25jZXB0ZmFjdG9yeS5jb20uYXU+DQojIFdlYjogd3d3LmNvbmNlcHRmYWN0b3J5LmNvbS5hdQ0KIw0KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCiMNCiMgTWFpbnRhaW5lciBzaW5jZSAyMDExIHVwIHRvIDIwMTQ6IEpvbmF0aGFuIFNjaG1pZCwgPGhpQGpvbmF0aGFuc2NobWlkLmRlPg0KIyBXZWI6IHd3dy5qb25hdGhhbnNjaG1pZC5kZQ0KIw0KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCiMNCiMgU29tZSB3YWNrb3Mgc3RhcnRlZCBkZXN0cm95aW5nIHN0dWZmIHNpbmNlIDIwMTIgYW5kIHN0b3BwZWQgYXQgMjAxNDoNCiMNCiMgVGFwaW8gTMO2eXR0eSwgPHRhcHNhQG9yYW5nZS1tZWRpYS5maT4NCiMgV2ViOiB3d3cub3JhbmdlLW1lZGlhLmZpDQojDQojIEdvcmFuIElsaWMsIDx1bmlxdTNlQGdtYWlsLmNvbT4NCiMgV2ViOiB3d3cuaWNoLW1hY2gtZGFzLmF0DQojDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIw0KIyBMSVNFIGlzIGEgQ01TIE1hZGUgU2ltcGxlIG1vZHVsZSB0aGF0IGVuYWJsZXMgdGhlIHdlYiBkZXZlbG9wZXIgdG8gY3JlYXRlDQojIG11bHRpcGxlIGxpc3RzIHRocm91Z2hvdXQgYSBzaXRlLiBJdCBjYW4gYmUgZHVwbGljYXRlZCBhbmQgZ2l2ZW4gZnJpZW5kbHkNCiMgbmFtZXMgZm9yIGVhc2llciBjbGllbnQgbWFpbnRlbmFuY2UuDQojDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIyBCRUdJTl9MSUNFTlNFDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIyBUaGlzIGZpbGUgaXMgcGFydCBvZiBMSVNFDQojIExJU0UgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5DQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5DQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yDQojIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uDQojDQojIExJU0UgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLA0KIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZg0KIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlDQojIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuDQojIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlDQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlDQojIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcgVVNBDQojIE9yIHJlYWQgaXQgb25saW5lOiBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwNCiMNCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQojIEVORF9MSUNFTlNFDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KdXNlIExJU0VcYXBpOw0KY2xhc3MgbGlzZWZkX0xJU0VJbnN0YW5jZSBleHRlbmRzIExJU0VGaWVsZGRlZkJhc2UNCnsNCg0KCXB1YmxpYyBmdW5jdGlvbiBfX2NvbnN0cnVjdCgkZGJfaW5mbykNCgl7CQ0KCQlwYXJlbnQ6Ol9fY29uc3RydWN0KCRkYl9pbmZvKTsJCQ0KCQkkdGhpcy0+U2V0RnJpZW5kbHlUeXBlKCAkdGhpcy0+TW9kTGFuZyggJ2ZpZWxkZGVmXycgLiAkdGhpcy0+R2V0VHlwZSgpICkgKTsJCQ0KCX0NCgkNCglwdWJsaWMgZnVuY3Rpb24gUmVuZGVySW5wdXQoJGlkLCAkcmV0dXJuaWQpDQoJew0KCQkkdHlwZSA9ICR0aGlzLT5HZXRPcHRpb25WYWx1ZSgnc3VidHlwZScsICdEcm9wZG93bicpOw0KCQkkb2JqID0gTElTRUZpZWxkZGVmT3BlcmF0aW9uczo6TG9hZEZpZWxkZGVmQnlUeXBlKCR0eXBlKTsNCgkJDQoJCWlmKCBpc19vYmplY3QoJG9iaikgKSByZXR1cm4gJG9iai0+UmVuZGVySW5wdXQoJGlkLCAkcmV0dXJuaWQpOw0KCQkJDQoJCXJldHVybiBmYWxzZTsNCgl9DQoNCglwdWJsaWMgZnVuY3Rpb24gR2V0SW5zdGFuY2VzKCkNCiAgew0KICAgICRvdXRwdXQgPSBhcnJheSgpOw0KICANCiAgICAkaW5zdGFuY2VzID0gYXBpOjpHZXRJbnN0YW5jZXNMaXN0KExJU0U6Ok1PREVfTElTVCk7DQogIA0KICAgIGZvcmVhY2goJGluc3RhbmNlcyBhcyAkaW5zdGFuY2UpDQogICAgew0KICAgICAgJG91dHB1dFskaW5zdGFuY2UtPm1vZHVsZV9uYW1lXSA9ICRpbnN0YW5jZS0+bW9kdWxlX25hbWU7DQogICAgfQ0KICANCiAgICByZXR1cm4gJG91dHB1dDsNCiAgfQ0KICANCglwdWJsaWMgZnVuY3Rpb24gR2V0T3B0aW9ucygpDQoJew0KCQkkb3V0cHV0ID0gYXJyYXkoKTsNCiAgICANCiAgICAka2V5ID0gJHRoaXMtPkdldE9wdGlvblZhbHVlKCdzZWxlY3Rfbm9uZScsICcnKTsNCiAgICANCiAgICBpZiggIWVtcHR5KCRrZXkpICkNCiAgICB7DQogICAgICAjIHRyeSBhIGxhbmcgc3RyaW5nDQogICAgICAkc3RyaW5nID0gbGFuZygka2V5KTsNCiAgICAgIA0KICAgICAgaWYoIFxzdGFydHN3aXRoKCRzdHJpbmcsICctLScpICkNCiAgICAgIHsNCiAgICAgICAgJHN0cmluZyAgPSAkdGhpcy0+TW9kTGFuZygka2V5KTsNCiAgICAgICAgDQogICAgICAgIGlmKCBcc3RhcnRzd2l0aCgkc3RyaW5nLCAnLS0nKSApDQogICAgICAgIHsNCiAgICAgICAgICAjIGFwcGFyZW50bHkgbm8gbGFuZyBzdHJpbmcgZm9yIHRoaXMNCiAgICAgICAgICAkb3V0cHV0WycnXSA9ICRrZXk7DQogICAgICAgIH0NCiAgICAgICAgZWxzZQ0KICAgICAgICB7DQogICAgICAgICAgJG91dHB1dFsnJ10gPSAkc3RyaW5nOw0KICAgICAgICB9DQogICAgICB9DQogICAgICBlbHNlDQogICAgICB7DQogICAgICAgICRvdXRwdXRbJyddID0gJHN0cmluZzsNCiAgICAgIH0NCiAgICB9DQogICAgDQogICAgJGluc3RhbmNlcyA9IGFwaTo6R2V0SW5zdGFuY2VzTGlzdChMSVNFOjpNT0RFX0xJU1QpOw0KICAgIA0KCQlmb3JlYWNoKCRpbnN0YW5jZXMgYXMgJGluc3RhbmNlKSANCiAgICB7DQoJCQkkb3V0cHV0WyRpbnN0YW5jZS0+bW9kdWxlX25hbWVdID0gJGluc3RhbmNlLT5tb2R1bGVfbmFtZTsNCgkJfQ0KCQ0KCQlyZXR1cm4gJG91dHB1dDsNCgl9DQoNCglwdWJsaWMgZnVuY3Rpb24gU3ViVHlwZXMoKQ0KCXsNCiAgICAkbW9kID0gY21zbXMoKS0+R2V0TW9kdWxlSW5zdGFuY2UoTElTRSk7DQogICAgDQogICAgcmV0dXJuIGFycmF5KA0KICAgICAgICAgICAgICAgICAgJ0Ryb3Bkb3duJyAgICA9PiAkbW9kLT5Nb2RMYW5nKCdmaWVsZGRlZl9Ecm9wZG93bicpLA0KICAgICAgICAgICAgICAgICAgJ1JhZGlvR3JvdXAnICA9PiAkbW9kLT5Nb2RMYW5nKCdmaWVsZGRlZl9SYWRpb0dyb3VwJykgICAgDQogICAgICAgICAgICAgICAgKTsNCgl9DQoJDQoJcHVibGljIGZ1bmN0aW9uIFNlcGFyYXRvcigpDQoJew0KCQlyZXR1cm4gJHRoaXMtPkdldE9wdGlvblZhbHVlKCdzZXBhcmF0b3InKTsJDQoJfQ0KCQkNCn0NCj8+]]></data>
	</file>
	<file>
	  <filename>/lib/fielddefs/LISEInstance/output.LISEInstance.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[e2Ntc19tb2R1bGUgbW9kdWxlPSRmaWVsZGRlZi52YWx1ZX0=]]></data>
	</file>
	<file>
	  <filename>/lib/fielddefs/LISEInstanceItem</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/lib/fielddefs/LISEInstanceItem/admin.LISEInstanceItem.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PGZpZWxkc2V0PgogIDxsZWdlbmQ+eyRmaWVsZGRlZi0+TW9kTGFuZygnb3B0aW9ucycpfTwvbGVnZW5kPiAgCiAgPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KICAgIDxwIGNsYXNzPSJwYWdldGV4dCI+eyRmaWVsZGRlZi0+TW9kTGFuZygnaW5zdGFuY2UnKX06PC9wPgogICAgPHAgY2xhc3M9InBhZ2VpbnB1dCI+CgkgICAge2h0bWxfb3B0aW9ucyBuYW1lPSJgJGFjdGlvbmlkYGN1c3RvbV9pbnB1dFtpbnN0YW5jZV0iIG9wdGlvbnM9JGZpZWxkZGVmLT5JbnN0YW5jZXMoKSBzZWxlY3RlZD0kZmllbGRkZWYtPkdldE9wdGlvblZhbHVlKCdpbnN0YW5jZScpfQogICAgPC9wPgogICAgPHAgY2xhc3M9InBhZ2V0ZXh0Ij48ZGl2IGNsYXNzPSJpbmZvcm1hdGlvbiI+eyRmaWVsZGRlZi0+TW9kTGFuZygnZmllbGRkZWZfaW5zdGFuY2VfaGVscCcpfTwvZGl2PjwvcD4KICA8L2Rpdj4KICA8aHI+CiAgPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KICAgIDxwIGNsYXNzPSJwYWdldGV4dCI+eyRmaWVsZGRlZi0+TW9kTGFuZygnaWRlbnRpZmllcicpfTo8L3A+CiAgICA8cCBjbGFzcz0icGFnZWlucHV0Ij4KCSAgICB7aHRtbF9vcHRpb25zIG5hbWU9ImAkYWN0aW9uaWRgY3VzdG9tX2lucHV0W2lkZW50aWZpZXJdIiBvcHRpb25zPSRmaWVsZGRlZi0+SWRlbnRpZmllcnMoKSBzZWxlY3RlZD0kZmllbGRkZWYtPkdldE9wdGlvblZhbHVlKCdpZGVudGlmaWVyJyl9CiAgICA8L3A+CiAgICA8cCBjbGFzcz0icGFnZXRleHQiPjxkaXYgY2xhc3M9ImluZm9ybWF0aW9uIj57JGZpZWxkZGVmLT5Nb2RMYW5nKCdmaWVsZGRlZl9pZGVudGlmaWVyX2hlbHAnKX08L2Rpdj48L3A+CiAgPC9kaXY+CiAgPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KICAgIDxwIGNsYXNzPSJwYWdldGV4dCI+eyRmaWVsZGRlZi0+TW9kTGFuZygncHJvbXB0X2luY2x1ZGVfaXRlbXMnKX06PC9wPgogICAgPHAgY2xhc3M9InBhZ2VpbnB1dCI+CgkgICAge2h0bWxfb3B0aW9ucyBuYW1lPSJgJGFjdGlvbmlkYGN1c3RvbV9pbnB1dFtpbmNsdWRlX2l0ZW1zXSIgb3B0aW9ucz0kZmllbGRkZWYtPkluY2x1ZGVJdGVtcygpIHNlbGVjdGVkPSRmaWVsZGRlZi0+R2V0T3B0aW9uVmFsdWUoJ2luY2x1ZGVfaXRlbXMnKX0KICAgIDwvcD4KICAgIDxwIGNsYXNzPSJwYWdldGV4dCI+PGRpdiBjbGFzcz0iaW5mb3JtYXRpb24iPnskZmllbGRkZWYtPk1vZExhbmcoJ2ZpZWxkZGVmX2lkZW50aWZpZXJfaGVscCcpfTwvZGl2PjwvcD4KICA8L2Rpdj4KICA8aHI+CiAgPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KICAgIDxwIGNsYXNzPSJwYWdldGV4dCI+eyRmaWVsZGRlZi0+TW9kTGFuZygnc3VidHlwZScpfTo8L3A+CiAgICA8cCBjbGFzcz0icGFnZWlucHV0Ij4KCSAgICB7aHRtbF9vcHRpb25zIG5hbWU9ImAkYWN0aW9uaWRgY3VzdG9tX2lucHV0W3N1YnR5cGVdIiBvcHRpb25zPSRmaWVsZGRlZi0+U3ViVHlwZXMoKSBzZWxlY3RlZD0kZmllbGRkZWYtPkdldE9wdGlvblZhbHVlKCdzdWJ0eXBlJywgJ0Ryb3Bkb3duJyl9CiAgICA8L3A+CiAgICA8cCBjbGFzcz0icGFnZXRleHQiPjxkaXYgY2xhc3M9ImluZm9ybWF0aW9uIj57JGZpZWxkZGVmLT5Nb2RMYW5nKCdmaWVsZGRlZl9zdWJ0eXBlX2hlbHAnKX08L2Rpdj48L3A+CiAgPC9kaXY+CiAgPGhyPgogIDxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CQogICAgPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JGZpZWxkZGVmLT5HZXRNb2R1bGVJbnN0YW5jZSh0cnVlKS0+TW9kTGFuZygnc2VwYXJhdG9yJyl9OjwvcD4KICAgIDxwIGNsYXNzPSJwYWdlaW5wdXQiPgogICAgICA8aW5wdXQgdHlwZT0idGV4dCIgbmFtZT0ieyRhY3Rpb25pZH1jdXN0b21faW5wdXRbc2VwYXJhdG9yXSIgdmFsdWU9InskZmllbGRkZWYtPkdldE9wdGlvblZhbHVlKCdzZXBhcmF0b3InKX0iIC8+CiAgICA8L3A+CiAgICA8cCBjbGFzcz0icGFnZXRleHQiPjxkaXYgY2xhc3M9ImluZm9ybWF0aW9uIj57JGZpZWxkZGVmLT5Nb2RMYW5nKCdmaWVsZGRlZl9zZXBhcmF0b3JfaGVscCcpfTwvZGl2PjwvcD4JCiAgPC9kaXY+CiAgPGhyPgogIDxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CQogICAgPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JGZpZWxkZGVmLT5HZXRNb2R1bGVJbnN0YW5jZSh0cnVlKS0+TW9kTGFuZygnY29sdW1ucycpfTo8L3A+CiAgICA8cCBjbGFzcz0icGFnZWlucHV0Ij4KICAgICAgPGlucHV0IHR5cGU9InRleHQiIG5hbWU9InskYWN0aW9uaWR9Y3VzdG9tX2lucHV0W2NvbHVtbnNdIiB2YWx1ZT0ieyRmaWVsZGRlZi0+R2V0T3B0aW9uVmFsdWUoJ2NvbHVtbnMnLCAxKX0iIC8+CiAgICA8L3A+CiAgICA8cCBjbGFzcz0icGFnZXRleHQiPjxkaXYgY2xhc3M9ImluZm9ybWF0aW9uIj57JGZpZWxkZGVmLT5Nb2RMYW5nKCdmaWVsZGRlZl9jb2x1bW5zX2hlbHAnKX08L2Rpdj48L3A+CQogIDwvZGl2PgogIDxocj4KICA8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgogICAgPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JGZpZWxkZGVmLT5HZXRNb2R1bGVJbnN0YW5jZSh0cnVlKS0+TW9kTGFuZygnc2l6ZScpfTo8L3A+CiAgICA8cCBjbGFzcz0icGFnZWlucHV0Ij4KICAgICAgPGlucHV0IHR5cGU9InRleHQiIG5hbWU9InskYWN0aW9uaWR9Y3VzdG9tX2lucHV0W3NpemVdIiB2YWx1ZT0ieyRmaWVsZGRlZi0+R2V0T3B0aW9uVmFsdWUoJ3NpemUnLCA1KX0iIC8+CiAgICA8L3A+CiAgICA8cCBjbGFzcz0icGFnZXRleHQiPjxkaXYgY2xhc3M9ImluZm9ybWF0aW9uIj57JGZpZWxkZGVmLT5Nb2RMYW5nKCdmaWVsZGRlZl9zaXplX2hlbHAnKX08L2Rpdj48L3A+CiAgPC9kaXY+CjwvZmllbGRzZXQ+ICA=]]></data>
	</file>
	<file>
	  <filename>/lib/fielddefs/LISEInstanceItem/help.LISEInstanceItem.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PGJ1dHRvbiBjbGFzcz0iYWNjb3JkaW9uIj48c3Ryb25nPnskZmllbGRkZWYtPkdldEZyaWVuZGx5VHlwZSgpfTwvc3Ryb25nPjwvYnV0dG9uPgoKPGRpdiBjbGFzcz0iYWNjcGFuZWwiPgoKCTxoND5XaGF0IGRvZXMgaXQgZG8/PC9oND4KCgk8cD5UaGlzIGZpZWxkIGRlZmluaXRpb24gY2FuIGJlIHVzZWQgdG8gYWRkIGEgPHN0cm9uZz5MSVNFIEluc3RhbmNlIEl0ZW0gU2VsZWN0b3I8L3N0cm9uZz4gdG8gYSBMSVNFIGl0ZW0uPC9wPgoKCTxwPlRPRE88L3A+CgoKCTxoND5Ib3cgZG8gSSB1c2UgaXQ/PC9oND4KCgk8cD5UT0RPPC9wPgoKCTxwPlRoZSBzZXR0aW5ncyBmb3IgdGhpcyBmaWVsZCBhcmU6PC9wPgoKCTx1bD4KCQk8bGk+PGI+SW5zdGFuY2U8L2I+PC9saT4KCQk8bGk+PGI+SWRlbnRpZmllcjo8L2I+CiAJCQk8dWw+CiAJCQkJPGxpPml0ZW1faWQ8L2xpPgogCQkJCTxsaT5hbGlhczwvbGk+CiAJCQkJPGxpPnRpdGxlPC9saT4KIAkJCQk8bGk+a2V5MTwvbGk+CiAJCQkJPGxpPmtleTI8L2xpPgogCQkJCTxsaT5rZXkzPC9saT4KCQkJPC91bD4KCQk8L2xpPgoJCTxsaT48Yj5TdWIgVHlwZTo8L2I+CiAJCQk8dWw+CiAJCQkJPGxpPkRyb3Bkb3duPC9saT4KIAkJCQk8bGk+TXVsdGlzZWxlY3Q8L2xpPgogCQkJCTxsaT5SYWRpbyBHcm91cDwvbGk+CiAJCQkJPGxpPkNoZWNrYm94IEdyb3VwPC9saT4KCQkJPC91bD4KCQk8L2xpPgoJCTxsaT48Yj5TZXBhcmF0b3I8L2I+PC9saT4KCQk8bGk+PGI+Q29sdW1uczwvYj48L2xpPgoJCTxsaT48Yj5TaXplPC9iPjwvbGk+Cgk8L3VsPgoKPC9kaXY+]]></data>
	</file>
	<file>
	  <filename>/lib/fielddefs/LISEInstanceItem/index.html</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PCEtLSBEVU1NWSBIVE1MIEZJTEUgLS0+]]></data>
	</file>
	<file>
	  <filename>/lib/fielddefs/LISEInstanceItem/lisefd.LISEInstanceItem.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHANCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQojIExJU0UgLSBMaXN0IEl0IFNwZWNpYWwgRWRpdGlvbg0KIyBWZXJzaW9uIDEuMg0KIyBBIGZvcmsgb2YgTGlzdEkyDQojIG1haW50YWluZWQgYnkgRmVybmFuZG8gTW9yZ2FkbyBBS0EgSm8gTW9yZw0KIyBzaW5jZSAyMDE1DQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIw0KIyBPcmlnaW5hbCBBdXRob3I6IEJlbiBNYWxlbiwgPGJlbkBjb25jZXB0ZmFjdG9yeS5jb20uYXU+DQojIENvLU1haW50YWluZXI6IFNpbW9uIFJhZGZvcmQsIDxzaW1vbkBjb25jZXB0ZmFjdG9yeS5jb20uYXU+DQojIFdlYjogd3d3LmNvbmNlcHRmYWN0b3J5LmNvbS5hdQ0KIw0KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCiMNCiMgTWFpbnRhaW5lciBzaW5jZSAyMDExIHVwIHRvIDIwMTQ6IEpvbmF0aGFuIFNjaG1pZCwgPGhpQGpvbmF0aGFuc2NobWlkLmRlPg0KIyBXZWI6IHd3dy5qb25hdGhhbnNjaG1pZC5kZQ0KIw0KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCiMNCiMgU29tZSB3YWNrb3Mgc3RhcnRlZCBkZXN0cm95aW5nIHN0dWZmIHNpbmNlIDIwMTIgYW5kIHN0b3BwZWQgYXQgMjAxNDoNCiMNCiMgVGFwaW8gTMO2eXR0eSwgPHRhcHNhQG9yYW5nZS1tZWRpYS5maT4NCiMgV2ViOiB3d3cub3JhbmdlLW1lZGlhLmZpDQojDQojIEdvcmFuIElsaWMsIDx1bmlxdTNlQGdtYWlsLmNvbT4NCiMgV2ViOiB3d3cuaWNoLW1hY2gtZGFzLmF0DQojDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIw0KIyBMSVNFIGlzIGEgQ01TIE1hZGUgU2ltcGxlIG1vZHVsZSB0aGF0IGVuYWJsZXMgdGhlIHdlYiBkZXZlbG9wZXIgdG8gY3JlYXRlDQojIG11bHRpcGxlIGxpc3RzIHRocm91Z2hvdXQgYSBzaXRlLiBJdCBjYW4gYmUgZHVwbGljYXRlZCBhbmQgZ2l2ZW4gZnJpZW5kbHkNCiMgbmFtZXMgZm9yIGVhc2llciBjbGllbnQgbWFpbnRlbmFuY2UuDQojDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIyBCRUdJTl9MSUNFTlNFDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIyBUaGlzIGZpbGUgaXMgcGFydCBvZiBMSVNFDQojIExJU0UgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5DQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5DQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yDQojIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uDQojDQojIExJU0UgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLA0KIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZg0KIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlDQojIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuDQojIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlDQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlDQojIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcgVVNBDQojIE9yIHJlYWQgaXQgb25saW5lOiBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwNCiMNCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQojIEVORF9MSUNFTlNFDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KdXNlIExJU0VcYXBpOw0KY2xhc3MgbGlzZWZkX0xJU0VJbnN0YW5jZUl0ZW0gZXh0ZW5kcyBMSVNFRmllbGRkZWZCYXNlDQp7DQogIA0KCXB1YmxpYyBmdW5jdGlvbiBfX2NvbnN0cnVjdCgmJGRiX2luZm8pIA0KCXsJDQoJCXBhcmVudDo6X19jb25zdHJ1Y3QoJGRiX2luZm8pOwkJDQoJCSR0aGlzLT5TZXRGcmllbmRseVR5cGUoICR0aGlzLT5Nb2RMYW5nKCAnZmllbGRkZWZfJyAuICR0aGlzLT5HZXRUeXBlKCkgKSApOw0KCX0NCg0KCXB1YmxpYyBmdW5jdGlvbiBSZW5kZXJJbnB1dCgkaWQsICRyZXR1cm5pZCkNCgl7DQoJCSR0eXBlID0gJHRoaXMtPkdldE9wdGlvblZhbHVlKCdzdWJ0eXBlJywgJ0Ryb3Bkb3duJyk7DQoJCSRvYmogPSBMSVNFRmllbGRkZWZPcGVyYXRpb25zOjpMb2FkRmllbGRkZWZCeVR5cGUoJHR5cGUpOw0KCQkNCgkJaWYoaXNfb2JqZWN0KCRvYmopKQ0KCQkJcmV0dXJuICRvYmotPlJlbmRlcklucHV0KCRpZCwgJHJldHVybmlkKTsNCgkJCQ0KCQlyZXR1cm4gZmFsc2U7DQoJfQ0KDQoJcHVibGljIGZ1bmN0aW9uIEdldE9wdGlvbnMoKQ0KCXsNCiAgICAkaW5zdGFuY2UgPSAkdGhpcy0+R2V0T3B0aW9uVmFsdWUoJ2luc3RhbmNlJyk7DQogICAgJGlkZW50aWZpZXIgPSAkdGhpcy0+R2V0T3B0aW9uVmFsdWUoJ2lkZW50aWZpZXInLCAnaXRlbV9pZCcpOw0KICAgICRpbmNsdWRlX2ZsYWdzID0gJHRoaXMtPkdldE9wdGlvblZhbHVlKCdpbmNsdWRlX2l0ZW1zJywgMCk7DQogICAgDQogICAgJG1vZCA9IGNtc21zKCktPkdldE1vZHVsZUluc3RhbmNlKCRpbnN0YW5jZSk7DQogICAgDQogICAgaWYoIGlzX29iamVjdCgkbW9kKSkNCiAgICB7DQogICAgICAkdGhpcy0+b3B0aW9ucyA9IExJU0VJdGVtT3BlcmF0aW9uczo6R2V0SWRlbnRpZmllcigkbW9kLCAkaWRlbnRpZmllciwgJGluY2x1ZGVfZmxhZ3MpOw0KICAgIH0NCiAgICBlbHNlDQogICAgew0KICAgICAgJHRoaXMtPm9wdGlvbnMgPSBbXTsNCiAgICB9DQogICAgDQogICAgcmV0dXJuICR0aGlzLT5vcHRpb25zOw0KCX0NCg0KCXB1YmxpYyBmdW5jdGlvbiBJbnN0YW5jZXMoKQ0KCXsNCiAgICAkaW5zdGFuY2VzID0gYXBpOjpHZXRJbnN0YW5jZXNMaXN0KExJU0U6Ok1PREVfTElTVCk7DQoJCQ0KCQkkb3V0cHV0ID0gYXJyYXkoKTsNCgkJZm9yZWFjaCgkaW5zdGFuY2VzIGFzICRpbnN0YW5jZSkgDQogICAgewkNCgkJCSRvdXRwdXRbJGluc3RhbmNlLT5tb2R1bGVfbmFtZV0gPSAkaW5zdGFuY2UtPm1vZHVsZV9uYW1lOw0KCQl9DQoJDQoJCXJldHVybiAkb3V0cHV0Ow0KCX0NCgkNCglwdWJsaWMgZnVuY3Rpb24gSW5jbHVkZUl0ZW1zKCkNCiAgew0KICAgICRtb2QgPSBjbXNtcygpLT5HZXRNb2R1bGVJbnN0YW5jZShMSVNFKTsNCiAgICByZXR1cm4gYXJyYXkoDQogICAgICAgICAgICAgICAgICAwID0+ICRtb2QtPk1vZExhbmcoJ2lpX29wdGlvbl9pbmNsdWRlX2RlZmF1bHQnKSwNCiAgICAgICAgICAgICAgICAgIDEgPT4gJG1vZC0+TW9kTGFuZygnaWlfb3B0aW9uX2luY2x1ZGVfb25seV9hY3RpdmUnKSwNCiAgICAgICAgICAgICAgICAgIDIgPT4gJG1vZC0+TW9kTGFuZygnaWlfb3B0aW9uX2luY2x1ZGVfb25seV9pbmFjdGl2ZScpLA0KICAgICAgICAgICAgICAgICAgMyA9PiAkbW9kLT5Nb2RMYW5nKCdpaV9vcHRpb25faW5jbHVkZV9hbGwnKQ0KICAgICk7DQogIH0NCg0KCXB1YmxpYyBmdW5jdGlvbiBTdWJUeXBlcygpDQoJew0KICAgICRtb2QgPSBjbXNtcygpLT5HZXRNb2R1bGVJbnN0YW5jZShMSVNFKTsNCiAgICANCiAgICByZXR1cm4gYXJyYXkoDQogICAgICAgICAgICAgICAgICAnRHJvcGRvd24nICAgICAgICAgID0+ICRtb2QtPk1vZExhbmcoJ2ZpZWxkZGVmX0Ryb3Bkb3duJyksDQogICAgICAgICAgICAgICAgICAnTXVsdGlTZWxlY3QnICAgICAgID0+ICRtb2QtPk1vZExhbmcoJ2ZpZWxkZGVmX011bHRpU2VsZWN0JyksDQogICAgICAgICAgICAgICAgICAnUmFkaW9Hcm91cCcgICAgICAgID0+ICRtb2QtPk1vZExhbmcoJ2ZpZWxkZGVmX1JhZGlvR3JvdXAnKSwNCiAgICAgICAgICAgICAgICAgICdDaGVja2JveEdyb3VwJyAgICAgPT4gJG1vZC0+TW9kTGFuZygnZmllbGRkZWZfQ2hlY2tib3hHcm91cCcpLA0KICAgICAgICAgICAgICAgICAgJ0pRdWVyeU11bHRpU2VsZWN0JyA9PiAkbW9kLT5Nb2RMYW5nKCdmaWVsZGRlZl9KUXVlcnlNdWx0aVNlbGVjdCcpDQogICAgICAgICAgICAgICAgKTsNCgl9DQoJDQoJcHVibGljIGZ1bmN0aW9uIElkZW50aWZpZXJzKCkNCgl7DQogICAgICAgIHJldHVybiBhcnJheSgNCiAgICAgICAgICAgICAgICAgICAgICAnaXRlbV9pZCcgPT4gJ2l0ZW1faWQnLA0KICAgICAgICAgICAgICAgICAgICAgICdhbGlhcycgICA9PiAnYWxpYXMnLA0KICAgICAgICAgICAgICAgICAgICAgICd0aXRsZScgICA9PiAndGl0bGUnLA0KICAgICAgICAgICAgICAgICAgICAgICdrZXkxJyAgICA9PiAna2V5MScsDQogICAgICAgICAgICAgICAgICAgICAgJ2tleTInICAgID0+ICdrZXkyJywNCiAgICAgICAgICAgICAgICAgICAgICAna2V5MycgICAgPT4gJ2tleTMnDQogICAgICAgICAgICAgICAgICAgICk7DQoJfQkNCgkNCglwdWJsaWMgZnVuY3Rpb24gU2VwYXJhdG9yKCkNCgl7DQoJCXJldHVybiAkdGhpcy0+R2V0T3B0aW9uVmFsdWUoJ3NlcGFyYXRvcicpOwkNCgl9CQ0KCQkNCn0gLy8gZW5kIG9mIGNsYXNzDQo/Pg==]]></data>
	</file>
	<file>
	  <filename>/lib/fielddefs/LISEInstanceItem/list.LISEInstanceItem.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[e2lmICFpc19hcnJheSgkdmFsdWUpfXskdmFsdWUgPSBbJHZhbHVlXX17L2lmfQp7TElTRUxvYWRlcgogIGluc3RhbmNlID0gJGZpZWxkZGVmLT5HZXRPcHRpb25WYWx1ZSgnaW5zdGFuY2UnKQogIGl0ZW0gPSAnaXRlbScKICBpZGVudGlmaWVyID0gJGZpZWxkZGVmLT5HZXRPcHRpb25WYWx1ZSgnaWRlbnRpZmllcicpCiAgZm9yY2VfYXJyYXk9MQogIHZhbHVlPWltcGxvZGUoJywnLCAkdmFsdWUpCiAgYXNzaWduPSdpdGVtcyd9CnskdG1wID0gW119Cntmb3JlYWNoICRpdGVtcyBhcyAkaXRlbX0KICAgIHskdG1wW10gPSAkaXRlbS0+dGl0bGV8dHJ1bmNhdGU6MTA6Jy4uLic6dHJ1ZTpmYWxzZX0Key9mb3JlYWNofQp7JGMgPSBjb3VudCgkdG1wKX17JG91dCA9IGltcGxvZGUoJywgJywgJHRtcCl9Cih7JGN9KTogeyRvdXR8dHJ1bmNhdGU6NTA6Jy4uLic6dHJ1ZTpmYWxzZX0=]]></data>
	</file>
	<file>
	  <filename>/lib/fielddefs/LISEInstanceItem/output.LISEInstanceItem.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[e0xJU0VMb2FkZXIgaXRlbT0naXRlbScgZm9yY2VfYXJyYXk9MSB2YWx1ZT0kZmllbGRkZWYudmFsdWUgYXNzaWduPSdpdGVtcyd9CnskZmllbGRkZWYubmFtZX06IHtpbXBsb2RlKCcsJywgJGl0ZW1zKX0=]]></data>
	</file>
	<file>
	  <filename>/lib/fielddefs/MultiSelect</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/lib/fielddefs/MultiSelect/admin.MultiSelect.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PGZpZWxkc2V0PgogIDxsZWdlbmQ+eyRmaWVsZGRlZi0+TW9kTGFuZygnb3B0aW9ucycpfTwvbGVnZW5kPiAgCiAgPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KICAgIDxwIGNsYXNzPSJwYWdldGV4dCI+eyRmaWVsZGRlZi0+TW9kTGFuZygnb3B0aW9ucycpfTo8L3A+CiAgICA8cCBjbGFzcz0icGFnZWlucHV0Ij4KICAgICAgPHRleHRhcmVhIG5hbWU9InskYWN0aW9uaWR9Y3VzdG9tX2lucHV0W29wdGlvbnNdIj57JGZpZWxkZGVmLT5HZXRPcHRpb25WYWx1ZSgnb3B0aW9ucycpfTwvdGV4dGFyZWE+CiAgICA8L3A+CiAgICA8cCBjbGFzcz0icGFnZXRleHQiPjxkaXYgY2xhc3M9ImluZm9ybWF0aW9uIj57JGZpZWxkZGVmLT5Nb2RMYW5nKCdmaWVsZGRlZl9tdWx0aW9wdGlvbnNfaGVscCcpfTwvZGl2PjwvcD4KICA8L2Rpdj4KICA8aHI+CiAgPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KICAgIDxwIGNsYXNzPSJwYWdldGV4dCI+eyRmaWVsZGRlZi0+TW9kTGFuZygnc2l6ZScpfTo8L3A+CiAgICA8cCBjbGFzcz0icGFnZWlucHV0Ij4KICAgICAgPGlucHV0IHR5cGU9InRleHQiIG5hbWU9InskYWN0aW9uaWR9Y3VzdG9tX2lucHV0W3NpemVdIiB2YWx1ZT0ieyRmaWVsZGRlZi0+R2V0T3B0aW9uVmFsdWUoJ3NpemUnLCA1KX0iIC8+CiAgICA8L3A+CiAgICA8cCBjbGFzcz0icGFnZXRleHQiPjxkaXYgY2xhc3M9ImluZm9ybWF0aW9uIj57JGZpZWxkZGVmLT5Nb2RMYW5nKCdmaWVsZGRlZl9zaXplX2hlbHAnKX08L2Rpdj48L3A+CiAgPC9kaXY+CjwvZmllbGRzZXQ+]]></data>
	</file>
	<file>
	  <filename>/lib/fielddefs/MultiSelect/help.MultiSelect.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PGJ1dHRvbiBjbGFzcz0iYWNjb3JkaW9uIj48c3Ryb25nPnskZmllbGRkZWYtPkdldEZyaWVuZGx5VHlwZSgpfTwvc3Ryb25nPjwvYnV0dG9uPgoKPGRpdiBjbGFzcz0iYWNjcGFuZWwiPgoKCTxoND5XaGF0IGRvZXMgaXQgZG8/PC9oND4KCgk8cD5UaGlzIGZpZWxkIGRlZmluaXRpb24gY2FuIGJlIHVzZWQgdG8gYWRkIGEgPHN0cm9uZz5NdWx0aSBTZWxlY3Q8L3N0cm9uZz4gZmllbGQgdG8gYSBMSVNFIGl0ZW0uPC9wPgoKCTxwPlRPRE88L3A+CgoKCTxoND5Ib3cgZG8gSSB1c2UgaXQ/PC9oND4KCgk8cD5UT0RPPC9wPgoKCTxwPlRoZSBzZXR0aW5ncyBmb3IgdGhpcyBmaWVsZCBhcmU6PC9wPgoKCTx1bD4KCQk8bGk+PGI+T3B0aW9uczwvYj48L2xpPgoJCTxsaT48Yj5TaXplPC9iPjwvbGk+Cgk8L3VsPgoKPC9kaXY+]]></data>
	</file>
	<file>
	  <filename>/lib/fielddefs/MultiSelect/index.html</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PCEtLSBEVU1NWSBIVE1MIEZJTEUgLS0+]]></data>
	</file>
	<file>
	  <filename>/lib/fielddefs/MultiSelect/input.MultiSelect.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KCTxwIGNsYXNzPSJwYWdldGV4dCI+eyRmaWVsZGRlZi0+R2V0TmFtZSgpfXtpZiAkZmllbGRkZWYtPklzUmVxdWlyZWQoKX0qey9pZn06PC9wPgoJPHAgY2xhc3M9InBhZ2VpbnB1dCI+CgkJe2lmICRmaWVsZGRlZi0+R2V0RGVzYygpfSh7JGZpZWxkZGVmLT5HZXREZXNjKCl9KTxiciAvPnsvaWZ9CgkJPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0ieyRhY3Rpb25pZH1jdXN0b21maWVsZFt7JGZpZWxkZGVmLT5HZXRJZCgpfV0iIHZhbHVlPSIiIC8+CgkJPHNlbGVjdCBuYW1lPSJ7JGFjdGlvbmlkfWN1c3RvbWZpZWxkW3skZmllbGRkZWYtPkdldElkKCl9XVtdIiBzaXplPSJ7JGZpZWxkZGVmLT5HZXRPcHRpb25WYWx1ZSgnc2l6ZScsIDUpfSIgbXVsdGlwbGU9Im11bHRpcGxlIj4KCQkJe2ZvcmVhY2ggZnJvbT0kZmllbGRkZWYtPkdldE9wdGlvbnMoKSBrZXk9dmFsdWUgaXRlbT1rZXl9CgkJCQk8b3B0aW9uIHZhbHVlPSJ7JHZhbHVlfSJ7aWYgaW5fYXJyYXkoJHZhbHVlLCAkZmllbGRkZWYtPkdldFZhbHVlKCJhcnJheSIpKX0gc2VsZWN0ZWQ9InNlbGVjdGVkInsvaWZ9Pnska2V5fTwvb3B0aW9uPgoJCQl7L2ZvcmVhY2h9CgkJPC9zZWxlY3Q+Cgk8L3A+CjwvZGl2Pg==]]></data>
	</file>
	<file>
	  <filename>/lib/fielddefs/MultiSelect/lisefd.MultiSelect.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHANCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQojIExJU0UgLSBMaXN0IEl0IFNwZWNpYWwgRWRpdGlvbg0KIyBWZXJzaW9uIDEuMg0KIyBBIGZvcmsgb2YgTGlzdEkyDQojIG1haW50YWluZWQgYnkgRmVybmFuZG8gTW9yZ2FkbyBBS0EgSm8gTW9yZw0KIyBzaW5jZSAyMDE1DQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIw0KIyBPcmlnaW5hbCBBdXRob3I6IEJlbiBNYWxlbiwgPGJlbkBjb25jZXB0ZmFjdG9yeS5jb20uYXU+DQojIENvLU1haW50YWluZXI6IFNpbW9uIFJhZGZvcmQsIDxzaW1vbkBjb25jZXB0ZmFjdG9yeS5jb20uYXU+DQojIFdlYjogd3d3LmNvbmNlcHRmYWN0b3J5LmNvbS5hdQ0KIw0KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCiMNCiMgTWFpbnRhaW5lciBzaW5jZSAyMDExIHVwIHRvIDIwMTQ6IEpvbmF0aGFuIFNjaG1pZCwgPGhpQGpvbmF0aGFuc2NobWlkLmRlPg0KIyBXZWI6IHd3dy5qb25hdGhhbnNjaG1pZC5kZQ0KIw0KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCiMNCiMgU29tZSB3YWNrb3Mgc3RhcnRlZCBkZXN0cm95aW5nIHN0dWZmIHNpbmNlIDIwMTIgYW5kIHN0b3BwZWQgYXQgMjAxNDoNCiMNCiMgVGFwaW8gTMO2eXR0eSwgPHRhcHNhQG9yYW5nZS1tZWRpYS5maT4NCiMgV2ViOiB3d3cub3JhbmdlLW1lZGlhLmZpDQojDQojIEdvcmFuIElsaWMsIDx1bmlxdTNlQGdtYWlsLmNvbT4NCiMgV2ViOiB3d3cuaWNoLW1hY2gtZGFzLmF0DQojDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIw0KIyBMSVNFIGlzIGEgQ01TIE1hZGUgU2ltcGxlIG1vZHVsZSB0aGF0IGVuYWJsZXMgdGhlIHdlYiBkZXZlbG9wZXIgdG8gY3JlYXRlDQojIG11bHRpcGxlIGxpc3RzIHRocm91Z2hvdXQgYSBzaXRlLiBJdCBjYW4gYmUgZHVwbGljYXRlZCBhbmQgZ2l2ZW4gZnJpZW5kbHkNCiMgbmFtZXMgZm9yIGVhc2llciBjbGllbnQgbWFpbnRlbmFuY2UuDQojDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIyBCRUdJTl9MSUNFTlNFDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIyBUaGlzIGZpbGUgaXMgcGFydCBvZiBMSVNFDQojIExJU0UgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5DQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5DQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yDQojIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uDQojDQojIExJU0UgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLA0KIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZg0KIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlDQojIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuDQojIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlDQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlDQojIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcgVVNBDQojIE9yIHJlYWQgaXQgb25saW5lOiBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwNCiMNCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQojIEVORF9MSUNFTlNFDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KY2xhc3MgbGlzZWZkX011bHRpU2VsZWN0IGV4dGVuZHMgTElTRUZpZWxkZGVmQmFzZQ0Kew0KCXB1YmxpYyBmdW5jdGlvbiBfX2NvbnN0cnVjdCgmJGRiX2luZm8pIA0KCXsJDQoJCXBhcmVudDo6X19jb25zdHJ1Y3QoJGRiX2luZm8pOw0KCQkNCgkJJHRoaXMtPlNldEZyaWVuZGx5VHlwZSgkdGhpcy0+TW9kTGFuZygnZmllbGRkZWZfJy4kdGhpcy0+R2V0VHlwZSgpKSk7DQoJfQ0KCQ0KCXB1YmxpYyBmdW5jdGlvbiBHZXRPcHRpb25zKCkNCgl7DQoJCSRvcHRpb25zID0gJHRoaXMtPkdldE9wdGlvblZhbHVlKCdvcHRpb25zJyk7DQoJCSRsaXN0ID0gZXhwbG9kZSgiXG4iLCAkb3B0aW9ucyk7DQoJCQ0KCQkkb3B0aW9ucyA9IGFycmF5KCk7DQoJCWZvcmVhY2goJGxpc3QgYXMgJG9wdGlvbikgew0KCQkNCgkJCSRvcHRpb24gPSBleHBsb2RlKCI9IiwgJG9wdGlvbiwgMik7DQoJCQlpZihjb3VudCgkb3B0aW9uKSA+IDEpIHsNCgkJCQkkb3B0aW9uc1t0cmltKCRvcHRpb25bMV0pXSA9IHRyaW0oJG9wdGlvblswXSk7DQoJCQl9IGVsc2Ugew0KCQkJCSRvcHRpb25zW3RyaW0oJG9wdGlvblswXSldID0gdHJpbSgkb3B0aW9uWzBdKTsNCgkJCX0NCgkJfQ0KDQoJCXJldHVybiAkb3B0aW9uczsNCgl9DQoJCQ0KfSAvLyBlbmQgb2YgY2xhc3MNCj8+]]></data>
	</file>
	<file>
	  <filename>/lib/fielddefs/MultiSelect/output.MultiSelect.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[eyRmaWVsZGRlZi5uYW1lfToge2ltcGxvZGUoJywnLCAkZmllbGRkZWYudmFsdWUpfQ==]]></data>
	</file>
	<file>
	  <filename>/lib/fielddefs/Preview</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/lib/fielddefs/Preview/help.Preview.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PGJ1dHRvbiBjbGFzcz0iYWNjb3JkaW9uIj48c3Ryb25nPnskZmllbGRkZWYtPkdldEZyaWVuZGx5VHlwZSgpfTwvc3Ryb25nPjwvYnV0dG9uPgoKPGRpdiBjbGFzcz0iYWNjcGFuZWwiPgoKCTxoND5XaGF0IGRvZXMgaXQgZG8/PC9oND4KCgk8cD5UaGlzIGZpZWxkIGRlZmluaXRpb24gY2FuIGJlIHVzZWQgdG8gYWRkIGEgPHN0cm9uZz5QcmV2aWV3PC9zdHJvbmc+IGZpZWxkIHRvIGEgTElTRSBpdGVtLjwvcD4KCgk8cD5UT0RPPC9wPgoKCgk8aDQ+SG93IGRvIEkgdXNlIGl0PzwvaDQ+CgoJPHA+VE9ETzwvcD4KCjwvZGl2Pg==]]></data>
	</file>
	<file>
	  <filename>/lib/fielddefs/Preview/index.html</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PCEtLSBEVU1NWSBIVE1MIEZJTEUgLS0+]]></data>
	</file>
	<file>
	  <filename>/lib/fielddefs/Preview/lisefd.Preview.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKCmNsYXNzIGxpc2VmZF9QcmV2aWV3IGV4dGVuZHMgTElTRUZpZWxkZGVmQmFzZQp7CglwdWJsaWMgZnVuY3Rpb24gX19jb25zdHJ1Y3QoJiRkYl9pbmZvLCAkY2FsbGVyX29iamVjdCkgCgl7CgkJcGFyZW50OjpfX2NvbnN0cnVjdCgkZGJfaW5mbywgJGNhbGxlcl9vYmplY3QpOwoJCSR0aGlzLT5TZXRGcmllbmRseVR5cGUoICR0aGlzLT5Nb2RMYW5nKCdmaWVsZGRlZl9QcmV2aWV3JykgKTsKCX0KICAKICBwdWJsaWMgZnVuY3Rpb24gSXNVbmlxdWUoKQogIHsKICAgIHJldHVybiBUUlVFOwogIH0KICAKICBwdWJsaWMgZnVuY3Rpb24gSXNMYXN0KCkKICB7CiAgICByZXR1cm4gVFJVRTsKICB9CiAgCiAgcHVibGljIGZ1bmN0aW9uIENhbkJlR2xvYmFsRmllbGQoKQogIHsKICAgIHJldHVybiBGQUxTRTsKICB9CgoJcHVibGljIGZ1bmN0aW9uIGNsb3NlVGFiKCkKCXsKICAgICRmbiA9ICR0aGlzLT5HZXRQYXRoKCkgLiBESVJFQ1RPUllfU0VQQVJBVE9SIC4gJ19jbG9zZV90YWIudHBsJzsKICAgICRzbWFydHkgPSBcY21zX3V0aWxzOjpnZXRfc21hcnR5KCk7CiAgICAKICAgIGlmKGlzX3JlYWRhYmxlKCRmbikpCiAgICB7CiAgICAgICR0ZW1wbGF0ZSA9IEBmaWxlX2dldF9jb250ZW50cygkZm4pOwogICAgfQogICAgCiAgICAkdHBsX29iID0gJHNtYXJ0eS0+Q3JlYXRlVGVtcGxhdGUoJHRlbXBsYXRlKTsKICAgIHJldHVybiAkdHBsX29iLT5mZXRjaCgpOwoJfQoKCXB1YmxpYyBmdW5jdGlvbiBkaXNwbGF5VGFiSGVhZGVyKCkKCXsKICAgICRmbiA9ICR0aGlzLT5HZXRQYXRoKCkgLiBESVJFQ1RPUllfU0VQQVJBVE9SIC4gJ190YWJfaGVhZGVyLnRwbCc7CiAgICAkc21hcnR5ID0gXGNtc191dGlsczo6Z2V0X3NtYXJ0eSgpOwogICAgCiAgICBpZihpc19yZWFkYWJsZSgkZm4pKQogICAgewogICAgICAkdGVtcGxhdGUgPSBAZmlsZV9nZXRfY29udGVudHMoJGZuKTsKICAgIH0KICAgIAogICAgJHRwbF9vYiA9ICRzbWFydHktPkNyZWF0ZVRlbXBsYXRlKCdldmFsOicgLiAkdGVtcGxhdGUpOwogICAgJHRwbF9vYi0+YXNzaWduKCdpZCcsICR0aGlzLT5hbGlhcyk7CiAgICAkdHBsX29iLT5hc3NpZ24oJ2xhYmVsJywgJHRoaXMtPm5hbWUpOwogICAgCiAgICByZXR1cm4gJHRwbF9vYi0+ZmV0Y2goKTsKCX0KCglwdWJsaWMgZnVuY3Rpb24gUmVuZGVySW5wdXQoJGlkLCAkcmV0dXJuaWQpCgl7CiAgICAjIHRoaXMgb25lIG5lZWRzIGEgZGlmZmVyZW50IGFwcHJvYWNoCiAgICAkZm4gPSAkdGhpcy0+R2V0UGF0aCgpIC4gRElSRUNUT1JZX1NFUEFSQVRPUiAuICdfaW5wdXQudHBsJzsKICAgICRzbWFydHkgPSBcY21zX3V0aWxzOjpnZXRfc21hcnR5KCk7CiAgICAKICAgIGlmKGlzX3JlYWRhYmxlKCRmbikpCiAgICB7CiAgICAgICR0ZW1wbGF0ZSA9IEBmaWxlX2dldF9jb250ZW50cygkZm4pOwogICAgfQogICAgCi8vICAgICR0eXBlID0gQ21zTGF5b3V0VGVtcGxhdGVUeXBlOjpsb2FkKCR0aGlzLT5jYWxsZXItPkdldE5hbWUoKSAuICc6OmRldGFpbCcpOwovLyAgICAkdGVtcGxhdGVzID0gJHR5cGUtPmdldF90ZW1wbGF0ZV9saXN0KCk7Ci8vICAgICRsaXN0ID0gYXJyYXkoKTsKLy8KLy8gICAgaWYoaXNfYXJyYXkoJHRlbXBsYXRlcykgJiYgY291bnQoJHRlbXBsYXRlcykpCi8vICAgIHsKLy8gICAgICBmb3JlYWNoICgkdGVtcGxhdGVzIGFzICR0ZW1wbGF0ZSkKLy8gICAgICB7Ci8vICAgICAgICAkbGlzdFskdGVtcGxhdGUtPmdldF9pZCgpXSA9ICR0ZW1wbGF0ZS0+Z2V0X25hbWUoKTsKLy8gICAgICB9Ci8vICAgIH0KICAgICRtb2QgPSBjbXNfdXRpbHM6OmdldF9tb2R1bGUoJHRoaXMtPmNhbGxlcik7CiAgICAkbGlzdF9hbGwgPSAkbW9kLT5MaXN0VGVtcGxhdGVzKCk7CiAgICAkbGlzdCA9IFtdOwogICAgZm9yZWFjaCgkbGlzdF9hbGwgYXMgJG9uZSkKICAgIHsKICAgICAgWyR0cGxfdHlwZSwgJHRwbF9uYW1lXSA9IGV4cGxvZGUoJ18nLCAkb25lLCAyKTsKICAgICAgaWYoJ2RldGFpbCcgPT09ICR0cGxfdHlwZSkgeyAkbGlzdFskb25lXSA9ICR0cGxfbmFtZTsgfQogICAgfQogICAgCiAgICAKICAgICR0cGxfb2IgPSAkc21hcnR5LT5DcmVhdGVUZW1wbGF0ZSgnZXZhbDonIC4gJHRlbXBsYXRlKTsKICAgICR0cGxfb2ItPmFzc2lnbignZGV0YWlsX3RlbXBsYXRlcycsICRsaXN0KTsKICAgICR0cGxfb2ItPmFzc2lnbignY3VyX2RldGFpbF90ZW1wbGF0ZScsICRtb2QtPkdldFByZWZlcmVuY2UoJ2N1cnJlbnRfZGV0YWlsX3RlbXBsYXRlJykpOwogICAgJHRwbF9vYi0+YXNzaWduKCdhbGlhcycsICR0aGlzLT5hbGlhcyk7CiAgICAKICAgIHJldHVybiAkdHBsX29iLT5mZXRjaCgpOwoJfQp9]]></data>
	</file>
	<file>
	  <filename>/lib/fielddefs/RadioGroup</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/lib/fielddefs/RadioGroup/admin.RadioGroup.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PGZpZWxkc2V0PgogIDxsZWdlbmQ+eyRmaWVsZGRlZi0+TW9kTGFuZygnb3B0aW9ucycpfTwvbGVnZW5kPiAgCiAgPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KICAgIDxwIGNsYXNzPSJwYWdldGV4dCI+eyRmaWVsZGRlZi0+TW9kTGFuZygnb3B0aW9ucycpfTo8L3A+CiAgICA8cCBjbGFzcz0icGFnZWlucHV0Ij4KICAgICAgPHRleHRhcmVhIG5hbWU9InskYWN0aW9uaWR9Y3VzdG9tX2lucHV0W29wdGlvbnNdIj57JGZpZWxkZGVmLT5HZXRPcHRpb25WYWx1ZSgnb3B0aW9ucycpfTwvdGV4dGFyZWE+CiAgICA8L3A+CiAgICA8cCBjbGFzcz0icGFnZXRleHQiPjxkaXYgY2xhc3M9ImluZm9ybWF0aW9uIj57JGZpZWxkZGVmLT5Nb2RMYW5nKCdmaWVsZGRlZl9tdWx0aW9wdGlvbnNfaGVscCcpfTwvZGl2PjwvcD4KICA8L2Rpdj4KICA8aHI+CiAgPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4JCiAgICA8cCBjbGFzcz0icGFnZXRleHQiPnskZmllbGRkZWYtPk1vZExhbmcoJ3NlcGFyYXRvcicpfTo8L3A+CiAgICA8cCBjbGFzcz0icGFnZWlucHV0Ij4KICAgICAgPGlucHV0IHR5cGU9InRleHQiIG5hbWU9InskYWN0aW9uaWR9Y3VzdG9tX2lucHV0W3NlcGFyYXRvcl0iIHZhbHVlPSJ7JGZpZWxkZGVmLT5HZXRPcHRpb25WYWx1ZSgnc2VwYXJhdG9yJyl9IiAvPgogICAgPC9wPgogICAgPHAgY2xhc3M9InBhZ2V0ZXh0Ij48ZGl2IGNsYXNzPSJpbmZvcm1hdGlvbiI+eyRmaWVsZGRlZi0+TW9kTGFuZygnZmllbGRkZWZfc2VwYXJhdG9yX2hlbHAnKX08L2Rpdj48L3A+CQogIDwvZGl2PgogIDxocj4KICA8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgkKICAgIDxwIGNsYXNzPSJwYWdldGV4dCI+eyRmaWVsZGRlZi0+TW9kTGFuZygnY29sdW1ucycpfTo8L3A+CiAgICA8cCBjbGFzcz0icGFnZWlucHV0Ij4KICAgICAgPGlucHV0IHR5cGU9InRleHQiIG5hbWU9InskYWN0aW9uaWR9Y3VzdG9tX2lucHV0W2NvbHVtbnNdIiB2YWx1ZT0ieyRmaWVsZGRlZi0+R2V0T3B0aW9uVmFsdWUoJ2NvbHVtbnMnLCAxKX0iIC8+CiAgICA8L3A+CiAgICA8cCBjbGFzcz0icGFnZXRleHQiPjxkaXYgY2xhc3M9ImluZm9ybWF0aW9uIj57JGZpZWxkZGVmLT5Nb2RMYW5nKCdmaWVsZGRlZl9jb2x1bW5zX2hlbHAnKX08L2Rpdj48L3A+CQogIDwvZGl2PgogIDxocj4KICA8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgkKICAgIDxwIGNsYXNzPSJwYWdldGV4dCI+eyRmaWVsZGRlZi0+TW9kTGFuZygnZW5hYmxlX2pxdWknKX06PC9wPgogICAgPHAgY2xhc3M9InBhZ2VpbnB1dCI+CiAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9InskYWN0aW9uaWR9Y3VzdG9tX2lucHV0W2pxdWlfYnV0dG9uc10iIHZhbHVlPSIwIiAvPgogICAgICA8aW5wdXQgdHlwZT0iY2hlY2tib3giIG5hbWU9InskYWN0aW9uaWR9Y3VzdG9tX2lucHV0W2pxdWlfYnV0dG9uc10iIHZhbHVlPSIxIntpZiAkZmllbGRkZWYtPkdldE9wdGlvblZhbHVlKCdqcXVpX2J1dHRvbnMnKSA9PSAxfSBjaGVja2VkPSJjaGVja2VkInsvaWZ9IC8+CiAgICA8L3A+CiAgICA8cCBjbGFzcz0icGFnZXRleHQiPjxkaXYgY2xhc3M9ImluZm9ybWF0aW9uIj57JGZpZWxkZGVmLT5Nb2RMYW5nKCdmaWVsZGRlZl9lbmFibGVfanF1aV9oZWxwJyl9PC9kaXY+PC9wPgkKICA8L2Rpdj4KPC9maWVsZHNldD4=]]></data>
	</file>
	<file>
	  <filename>/lib/fielddefs/RadioGroup/help.RadioGroup.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PGJ1dHRvbiBjbGFzcz0iYWNjb3JkaW9uIj48c3Ryb25nPnskZmllbGRkZWYtPkdldEZyaWVuZGx5VHlwZSgpfTwvc3Ryb25nPjwvYnV0dG9uPgoKPGRpdiBjbGFzcz0iYWNjcGFuZWwiPgoKCTxoND5XaGF0IGRvZXMgaXQgZG8/PC9oND4KCgk8cD5UaGlzIGZpZWxkIGRlZmluaXRpb24gY2FuIGJlIHVzZWQgdG8gYWRkIGEgPHN0cm9uZz5SYWRpbyBHcm91cDwvc3Ryb25nPiB0byBhIExJU0UgaXRlbS48L3A+CgoJPHA+VE9ETzwvcD4KCgoJPGg0PkhvdyBkbyBJIHVzZSBpdD88L2g0PgoKCTxwPlRPRE88L3A+CgoJPHA+VGhlIHNldHRpbmdzIGZvciB0aGlzIGZpZWxkIGFyZTo8L3A+CgoJPHVsPgoJCTxsaT48Yj5PcHRpb25zPC9iPjwvbGk+CgkJPGxpPjxiPlNlcGFyYXRvcjwvYj48L2xpPgoJCTxsaT48Yj5Db2x1bW5zPC9iPjwvbGk+CgkJPGxpPjxiPlVzZSBqUXVlcnlVSSBCdXR0b25zPC9iPjwvbGk+Cgk8L3VsPgoKPC9kaXY+]]></data>
	</file>
	<file>
	  <filename>/lib/fielddefs/RadioGroup/index.html</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PCEtLSBEVU1NWSBIVE1MIEZJTEUgLS0+]]></data>
	</file>
	<file>
	  <filename>/lib/fielddefs/RadioGroup/input.RadioGroup.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4NCgk8cCBjbGFzcz0icGFnZXRleHQiPnskZmllbGRkZWYtPkdldE5hbWUoKX17aWYgJGZpZWxkZGVmLT5Jc1JlcXVpcmVkKCl9KnsvaWZ9OjwvcD4NCgk8ZGl2IGNsYXNzPSJwYWdlaW5wdXQiPg0KCQl7aWYgJGZpZWxkZGVmLT5HZXREZXNjKCl9KHskZmllbGRkZWYtPkdldERlc2MoKX0pPGJyIC8+ey9pZn0NCgkJDQoJCXtpZiAkZmllbGRkZWYtPkdldE9wdGlvblZhbHVlKCdqcXVpX2J1dHRvbnMnKSA9PSAnMSd9DQoJCQ0KCQk8ZGl2IGNsYXNzPSJsaXNlLXJhZGlvLWJ1dHRvbnMiIGlkPSJ7JGFjdGlvbmlkfWN1c3RvbWZpZWxkeyRmaWVsZGRlZi0+R2V0SWQoKX0tcmFkaW8iPg0KCQl7Zm9yZWFjaCAkZmllbGRkZWYtPkdldE9wdGlvbnMoKSBhcyAkdmFsdWUgPT4gJG9wdGlvbn0NCgkJCTxpbnB1dCB0eXBlPSJyYWRpbyIgbmFtZT0ieyRhY3Rpb25pZH1jdXN0b21maWVsZFt7JGZpZWxkZGVmLT5HZXRJZCgpfV0iIGlkPSJ7JGFjdGlvbmlkfWN1c3RvbWZpZWxkW3skZmllbGRkZWYtPkdldElkKCl9XXskb3B0aW9uQGl0ZXJhdGlvbn0iIHZhbHVlPSJ7JHZhbHVlfSJ7aWYgJGZpZWxkZGVmLT5HZXRWYWx1ZSgpID09ICR2YWx1ZX0gY2hlY2tlZD0iY2hlY2tlZCJ7L2lmfSAvPg0KCQkJPGxhYmVsIGZvcj0ieyRhY3Rpb25pZH1jdXN0b21maWVsZFt7JGZpZWxkZGVmLT5HZXRJZCgpfV17JG9wdGlvbkBpdGVyYXRpb259Ij57JG9wdGlvbn08L2xhYmVsPg0KCQl7L2ZvcmVhY2h9DQoJCTwvZGl2Pg0KCQkNCgkJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPg0KCQlqUXVlcnkoZG9jdW1lbnQpLnJlYWR5KGZ1bmN0aW9uKCQpIHsNCgkJCSQoIiN7JGFjdGlvbmlkfWN1c3RvbWZpZWxkeyRmaWVsZGRlZi0+R2V0SWQoKX0tcmFkaW8iKS5idXR0b25zZXQoKTsJDQoJCX0pOw0KCQk8L3NjcmlwdD4NCgkNCgkJe2Vsc2V9DQoJCQ0KCQl7aHRtbF9yYWRpb3MgbmFtZT0iYCRhY3Rpb25pZGBjdXN0b21maWVsZFtgJGZpZWxkZGVmLT5HZXRJZCgpYF0iIG9wdGlvbnM9JGZpZWxkZGVmLT5HZXRPcHRpb25zKCkgc2VsZWN0ZWQ9JGZpZWxkZGVmLT5HZXRWYWx1ZSgpIHNlcGFyYXRvcj0kZmllbGRkZWYtPlNlcGFyYXRvcigpIGFzc2lnbj0nbGlzZWJveGVzJ30NCgkJe21hdGggZXF1YXRpb249J3gveScgeD0kbGlzZWJveGVzfGNvdW50IHk9JGZpZWxkZGVmLT5HZXRPcHRpb25WYWx1ZSgnY29sdW1ucycsIDEpIGFzc2lnbj0nY291bnRlcid9DQoNCgkJPHVsIGNsYXNzPSJsaXNlLWNvbHVtbi1saXN0Ij4NCgkJe2ZvcmVhY2ggZnJvbT0kbGlzZWJveGVzIGl0ZW09J2JveCd9DQoJCQl7aWYgJGJveEBmaXJzdH08bGk+e2Vsc2VpZiAkYm94QGluZGV4ICUgJGNvdW50ZXJ8Y2VpbCA9PSAwfTwvbGk+PGxpPnsvaWZ9DQoJCQl7JGJveH0NCgkJCXtpZiAkYm94QGxhc3R9PC9saT57L2lmfSANCgkJIHsvZm9yZWFjaH0gDQoJCTwvdWw+DQoJCQ0KCQl7L2lmfQ0KCTwvZGl2Pg0KPC9kaXY+]]></data>
	</file>
	<file>
	  <filename>/lib/fielddefs/RadioGroup/lisefd.RadioGroup.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHANCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQojIExJU0UgLSBMaXN0IEl0IFNwZWNpYWwgRWRpdGlvbg0KIyBWZXJzaW9uIDEuMg0KIyBBIGZvcmsgb2YgTGlzdEkyDQojIG1haW50YWluZWQgYnkgRmVybmFuZG8gTW9yZ2FkbyBBS0EgSm8gTW9yZw0KIyBzaW5jZSAyMDE1DQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIw0KIyBPcmlnaW5hbCBBdXRob3I6IEJlbiBNYWxlbiwgPGJlbkBjb25jZXB0ZmFjdG9yeS5jb20uYXU+DQojIENvLU1haW50YWluZXI6IFNpbW9uIFJhZGZvcmQsIDxzaW1vbkBjb25jZXB0ZmFjdG9yeS5jb20uYXU+DQojIFdlYjogd3d3LmNvbmNlcHRmYWN0b3J5LmNvbS5hdQ0KIw0KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCiMNCiMgTWFpbnRhaW5lciBzaW5jZSAyMDExIHVwIHRvIDIwMTQ6IEpvbmF0aGFuIFNjaG1pZCwgPGhpQGpvbmF0aGFuc2NobWlkLmRlPg0KIyBXZWI6IHd3dy5qb25hdGhhbnNjaG1pZC5kZQ0KIw0KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCiMNCiMgU29tZSB3YWNrb3Mgc3RhcnRlZCBkZXN0cm95aW5nIHN0dWZmIHNpbmNlIDIwMTIgYW5kIHN0b3BwZWQgYXQgMjAxNDoNCiMNCiMgVGFwaW8gTMO2eXR0eSwgPHRhcHNhQG9yYW5nZS1tZWRpYS5maT4NCiMgV2ViOiB3d3cub3JhbmdlLW1lZGlhLmZpDQojDQojIEdvcmFuIElsaWMsIDx1bmlxdTNlQGdtYWlsLmNvbT4NCiMgV2ViOiB3d3cuaWNoLW1hY2gtZGFzLmF0DQojDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIw0KIyBMSVNFIGlzIGEgQ01TIE1hZGUgU2ltcGxlIG1vZHVsZSB0aGF0IGVuYWJsZXMgdGhlIHdlYiBkZXZlbG9wZXIgdG8gY3JlYXRlDQojIG11bHRpcGxlIGxpc3RzIHRocm91Z2hvdXQgYSBzaXRlLiBJdCBjYW4gYmUgZHVwbGljYXRlZCBhbmQgZ2l2ZW4gZnJpZW5kbHkNCiMgbmFtZXMgZm9yIGVhc2llciBjbGllbnQgbWFpbnRlbmFuY2UuDQojDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIyBCRUdJTl9MSUNFTlNFDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIyBUaGlzIGZpbGUgaXMgcGFydCBvZiBMSVNFDQojIExJU0UgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5DQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5DQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yDQojIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uDQojDQojIExJU0UgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLA0KIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZg0KIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlDQojIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuDQojIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlDQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlDQojIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcgVVNBDQojIE9yIHJlYWQgaXQgb25saW5lOiBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwNCiMNCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQojIEVORF9MSUNFTlNFDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KY2xhc3MgbGlzZWZkX1JhZGlvR3JvdXAgZXh0ZW5kcyBMSVNFRmllbGRkZWZCYXNlDQp7DQoJcHVibGljIGZ1bmN0aW9uIF9fY29uc3RydWN0KCYkZGJfaW5mbykgDQoJewkNCgkJcGFyZW50OjpfX2NvbnN0cnVjdCgkZGJfaW5mbyk7DQoJCQ0KCQkkdGhpcy0+U2V0RnJpZW5kbHlUeXBlKCR0aGlzLT5Nb2RMYW5nKCdmaWVsZGRlZl8nLiR0aGlzLT5HZXRUeXBlKCkpKTsNCgl9DQoJDQoJcHVibGljIGZ1bmN0aW9uIEdldE9wdGlvbnMoKQ0KCXsNCgkJJG9wdGlvbnMgPSAkdGhpcy0+R2V0T3B0aW9uVmFsdWUoJ29wdGlvbnMnKTsNCgkJJGxpc3QgPSBleHBsb2RlKCJcbiIsICRvcHRpb25zKTsNCgkJDQoJCSRvcHRpb25zID0gYXJyYXkoKTsNCgkJZm9yZWFjaCgkbGlzdCBhcyAkb3B0aW9uKSB7DQoJCQ0KCQkJJG9wdGlvbiA9IGV4cGxvZGUoIj0iLCAkb3B0aW9uLCAyKTsNCgkJCWlmKGNvdW50KCRvcHRpb24pID4gMSkgew0KCQkJCSRvcHRpb25zW3RyaW0oJG9wdGlvblsxXSldID0gdHJpbSgkb3B0aW9uWzBdKTsNCgkJCX0gZWxzZSB7DQoJCQkJJG9wdGlvbnNbdHJpbSgkb3B0aW9uWzBdKV0gPSB0cmltKCRvcHRpb25bMF0pOw0KCQkJfQ0KCQl9DQoNCgkJcmV0dXJuICRvcHRpb25zOw0KCX0NCgkNCglwdWJsaWMgZnVuY3Rpb24gU2VwYXJhdG9yKCkNCgl7DQoJCXJldHVybiAkdGhpcy0+R2V0T3B0aW9uVmFsdWUoJ3NlcGFyYXRvcicpOwkNCgl9DQoJDQp9IC8vIGVuZCBvZiBjbGFzcw0KPz4=]]></data>
	</file>
	<file>
	  <filename>/lib/fielddefs/RadioGroup/output.RadioGroup.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[eyRmaWVsZGRlZi5uYW1lfTogeyRmaWVsZGRlZi52YWx1ZX0=]]></data>
	</file>
	<file>
	  <filename>/lib/fielddefs/SelectDateTime</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/lib/fielddefs/SelectDateTime/admin.SelectDateTime.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PGZpZWxkc2V0PgogIDxsZWdlbmQ+eyRmaWVsZGRlZi0+TW9kTGFuZygnb3B0aW9ucycpfTwvbGVnZW5kPgogIDxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CiAgICA8cCBjbGFzcz0icGFnZXRleHQiPnskZmllbGRkZWYtPk1vZExhbmcoJ3NpemUnKX06PC9wPgogICAgPHAgY2xhc3M9InBhZ2VpbnB1dCI+CiAgICAgIDxpbnB1dCB0eXBlPSJ0ZXh0IiBuYW1lPSJ7JGFjdGlvbmlkfWN1c3RvbV9pbnB1dFtzaXplXSIgdmFsdWU9InskZmllbGRkZWYtPkdldE9wdGlvblZhbHVlKCdzaXplJywgMjApfSIgLz4KICAgIDwvcD4KICAgIDxwIGNsYXNzPSJwYWdldGV4dCI+PGRpdiBjbGFzcz0iaW5mb3JtYXRpb24iPnskZmllbGRkZWYtPk1vZExhbmcoJ2ZpZWxkZGVmX3NpemVfaGVscCcpfTwvZGl2PjwvcD4KICA8L2Rpdj4KICA8aHI+ICAgCiAgPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KICAgIDxwIGNsYXNzPSJwYWdldGV4dCI+eyRmaWVsZGRlZi0+TW9kTGFuZygnZm9ybWF0X3R5cGUnKX06PC9wPgogICAgPHAgY2xhc3M9InBhZ2VpbnB1dCI+CiAgICAgIHtodG1sX29wdGlvbnMgbmFtZT0ieyRhY3Rpb25pZH1jdXN0b21faW5wdXRbZm9ybWF0X3R5cGVdIiBvcHRpb25zPSRmaWVsZGRlZi0+Rm9ybWF0VHlwZXMoKSBzZWxlY3RlZD0kZmllbGRkZWYtPkdldE9wdGlvblZhbHVlKCdmb3JtYXRfdHlwZScsIDApfQogICAgPC9wPgogICAgPHAgY2xhc3M9InBhZ2V0ZXh0Ij48ZGl2IGNsYXNzPSJpbmZvcm1hdGlvbiI+eyRmaWVsZGRlZi0+TW9kTGFuZygnZmllbGRkZWZfZm9ybWF0X3R5cGVfaGVscCcpfTwvZGl2PjwvcD4KICA8L2Rpdj4KICA8aHI+ICAgCiAgPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KICAgIDxwIGNsYXNzPSJwYWdldGV4dCI+eyRmaWVsZGRlZi0+TW9kTGFuZygnZGF0ZV9mb3JtYXQnKX06PC9wPgogICAgPHAgY2xhc3M9InBhZ2VpbnB1dCI+CiAgICAgIDxpbnB1dCB0eXBlPSJ0ZXh0IiBuYW1lPSJ7JGFjdGlvbmlkfWN1c3RvbV9pbnB1dFtkYXRlX2Zvcm1hdF0iIHZhbHVlPSJ7JGZpZWxkZGVmLT5HZXRPcHRpb25WYWx1ZSgnZGF0ZV9mb3JtYXQnLCAnZGQtbW0teXknKX0iIC8+CiAgICA8L3A+CiAgICA8cCBjbGFzcz0icGFnZXRleHQiPjxkaXYgY2xhc3M9ImluZm9ybWF0aW9uIj57JGZpZWxkZGVmLT5Nb2RMYW5nKCdmaWVsZGRlZl9kYXRlX2Zvcm1hdF9oZWxwJyl9PC9kaXY+PC9wPgogIDwvZGl2PgogIDxocj4gICAKICA8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgogICAgPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JGZpZWxkZGVmLT5Nb2RMYW5nKCd0aW1lX2Zvcm1hdCcpfTo8L3A+CiAgICA8cCBjbGFzcz0icGFnZWlucHV0Ij4KICAgICAgPGlucHV0IHR5cGU9InRleHQiIG5hbWU9InskYWN0aW9uaWR9Y3VzdG9tX2lucHV0W3RpbWVfZm9ybWF0XSIgdmFsdWU9InskZmllbGRkZWYtPkdldE9wdGlvblZhbHVlKCd0aW1lX2Zvcm1hdCcsICdISDptbScpfSIgLz4KICAgIDwvcD4KICAgIDxwIGNsYXNzPSJwYWdldGV4dCI+PGRpdiBjbGFzcz0iaW5mb3JtYXRpb24iPnskZmllbGRkZWYtPk1vZExhbmcoJ2ZpZWxkZGVmX3RpbWVfZm9ybWF0X2hlbHAnKX08L2Rpdj48L3A+CiAgPC9kaXY+CiAgeyoKICA8aHI+ICAgCiAgPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KICAgIDxwIGNsYXNzPSJwYWdldGV4dCI+eyRmaWVsZGRlZi0+TW9kTGFuZygnZmllbGRkZWZfcGhwX2RhdGV0aW1lX2Zvcm1hdCcpfTo8L3A+CiAgICA8cCBjbGFzcz0icGFnZWlucHV0Ij4KICAgICAgPGlucHV0IHR5cGU9InRleHQiIG5hbWU9InskYWN0aW9uaWR9Y3VzdG9tX2lucHV0W3BocF9kYXRldGltZV9mb3JtYXRdIiB2YWx1ZT0ieyRmaWVsZGRlZi0+R2V0T3B0aW9uVmFsdWUoJ3BocF9kYXRldGltZV9mb3JtYXQnLCAnSEg6bW0nKX0iIC8+CiAgICA8L3A+CiAgICA8cCBjbGFzcz0icGFnZXRleHQiPjxkaXYgY2xhc3M9ImluZm9ybWF0aW9uIj57JGZpZWxkZGVmLT5Nb2RMYW5nKCdmaWVsZGRlZl9waHBfZGF0ZXRpbWVfZm9ybWF0X2hlbHAnKX08L2Rpdj48L3A+CiAgPC9kaXY+CiAgKn0KICA8aHI+ICAgCiAgPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KICAgIDxwIGNsYXNzPSJwYWdldGV4dCI+eyRmaWVsZGRlZi0+TW9kTGFuZygnZmllbGRkZWZfZHRfYmFja3dhcmRzX2NvbXBhdGliaWxpdHknKX06PC9wPgogICAgPHAgY2xhc3M9InBhZ2VpbnB1dCI+CgkgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0ieyRhY3Rpb25pZH1jdXN0b21faW5wdXRbYmFja3dhcmRzX2NvbXBhdGliaWxpdHldIiB2YWx1ZT0iMCIgLz4KCSAgICA8aW5wdXQgdHlwZT0iY2hlY2tib3giIG5hbWU9InskYWN0aW9uaWR9Y3VzdG9tX2lucHV0W2JhY2t3YXJkc19jb21wYXRpYmlsaXR5XSIgdmFsdWU9IjEie2lmICRmaWVsZGRlZi0+R2V0T3B0aW9uVmFsdWUoJ2JhY2t3YXJkc19jb21wYXRpYmlsaXR5JywgMCl9Y2hlY2tlZD0iY2hlY2tlZCJ7L2lmfSAvPgogICAgPC9wPgogICAgPHAgY2xhc3M9InBhZ2V0ZXh0Ij48ZGl2IGNsYXNzPSJpbmZvcm1hdGlvbiI+eyRmaWVsZGRlZi0+TW9kTGFuZygnZmllbGRkZWZfZHRfZmllbGRkZWZfYmFja3dhcmRzX2NvbXBhdGliaWxpdHlfaGVscCcpfTwvZGl2PjwvcD4KICA8L2Rpdj4KICA8aHI+ICAgCiAgPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KICAgIDxwIGNsYXNzPSJwYWdldGV4dCI+eyRmaWVsZGRlZi0+TW9kTGFuZygnc2hvd19zZWNvbmRzJyl9OjwvcD4KICAgIDxwIGNsYXNzPSJwYWdlaW5wdXQiPgogICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJ7JGFjdGlvbmlkfWN1c3RvbV9pbnB1dFtzaG93X3NlY29uZHNdIiB2YWx1ZT0iMCIgLz4KICAgICAgPGlucHV0IHR5cGU9ImNoZWNrYm94IiBuYW1lPSJ7JGFjdGlvbmlkfWN1c3RvbV9pbnB1dFtzaG93X3NlY29uZHNdIiB2YWx1ZT0iMSJ7aWYgJGZpZWxkZGVmLT5HZXRPcHRpb25WYWx1ZSgnc2hvd19zZWNvbmRzJywgMCl9Y2hlY2tlZD0iY2hlY2tlZCJ7L2lmfSAvPgogICAgPC9wPgogICAgPHAgY2xhc3M9InBhZ2V0ZXh0Ij48ZGl2IGNsYXNzPSJpbmZvcm1hdGlvbiI+eyRmaWVsZGRlZi0+TW9kTGFuZygnZmllbGRkZWZfc2hvd19zZWNvbmRzX2hlbHAnKX08L2Rpdj48L3A+CiAgPC9kaXY+CjwvZmllbGRzZXQ+]]></data>
	</file>
	<file>
	  <filename>/lib/fielddefs/SelectDateTime/help.SelectDateTime.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PGJ1dHRvbiBjbGFzcz0iYWNjb3JkaW9uIj48c3Ryb25nPnskZmllbGRkZWYtPkdldEZyaWVuZGx5VHlwZSgpfTwvc3Ryb25nPjwvYnV0dG9uPgoKPGRpdiBjbGFzcz0iYWNjcGFuZWwiPgoKCTxoND5XaGF0IGRvZXMgaXQgZG8/PC9oND4KCgk8cD5UaGlzIGZpZWxkIGRlZmluaXRpb24gY2FuIGJlIHVzZWQgdG8gYWRkIGEgPHN0cm9uZz5EYXRlIC0gVGltZSBTZWxlY3Rvcjwvc3Ryb25nPiB0byBhIExJU0UgaXRlbS48L3A+CgoJPHA+VE9ETzwvcD4KCgoJPGg0PkhvdyBkbyBJIHVzZSBpdD88L2g0PgoKCTxwPlRPRE88L3A+CgoJPHA+VGhlIHNldHRpbmdzIGZvciB0aGlzIGZpZWxkIGFyZTo8L3A+CgoJPHVsPgoJCTxsaT48Yj5TaXplPC9iPjwvbGk+CgkJPGxpPjxiPkZvcm1hdCBUeXBlOjwvYj4KIAkJCTx1bD4KIAkJCQk8bGk+Q29tYmluZWQ8L2xpPgogCQkJCTxsaT5EYXRlIEZvcm1hdDwvbGk+CiAJCQkJPGxpPlRpbWUgRm9ybWF0PC9saT4KCQkJPC91bD4KCQk8L2xpPgoJCTxsaT48Yj5EYXRlIEZvcm1hdDwvYj48L2xpPgoJCTxsaT48Yj5UaW1lIEZvcm1hdDwvYj48L2xpPgoJCTxsaT48Yj5CYWNrd2FyZHMgQ29tcGF0aWJpbGl0eTwvYj48L2xpPgoJCTxsaT48Yj5TaG93IFNlY29uZHM8L2I+PC9saT4KCTwvdWw+Cgo8L2Rpdj4=]]></data>
	</file>
	<file>
	  <filename>/lib/fielddefs/SelectDateTime/index.html</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PCEtLSBEVU1NWSBIVE1MIEZJTEUgLS0+]]></data>
	</file>
	<file>
	  <filename>/lib/fielddefs/SelectDateTime/input.SelectDateTime.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KCTxwIGNsYXNzPSJwYWdldGV4dCI+eyRmaWVsZGRlZi0+R2V0TmFtZSgpfXtpZiAkZmllbGRkZWYtPklzUmVxdWlyZWQoKX0qey9pZn06PC9wPgoJPHAgY2xhc3M9InBhZ2VpbnB1dCI+CgkJe2lmICRmaWVsZGRlZi0+R2V0RGVzYygpfSh7JGZpZWxkZGVmLT5HZXREZXNjKCl9KTxiciAvPnsvaWZ9CgkJPGlucHV0IHR5cGU9InRleHQiIG5hbWU9InskYWN0aW9uaWR9Y3VzdG9tZmllbGRbeyRmaWVsZGRlZi0+R2V0SWQoKX1dIiBpZD0ieyRhY3Rpb25pZH1jdXN0b21maWVsZFt7JGZpZWxkZGVmLT5HZXRJZCgpfV0iIHZhbHVlPSJ7JGZpZWxkZGVmLT5HZXRWYWx1ZSgpfSIgc2l6ZT0ieyRmaWVsZGRlZi0+R2V0T3B0aW9uVmFsdWUoJ3NpemUnKX0iIC8+Cgk8L3A+CgkKCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KCWpRdWVyeShkb2N1bWVudCkucmVhZHkoZnVuY3Rpb24oJCkgewoJCSQoIiN7JGFjdGlvbmlkfWN1c3RvbWZpZWxkXFxcW3skZmllbGRkZWYtPkdldElkKCl9XFxcXSIpCgkJe2lmICRmaWVsZGRlZi0+R2V0T3B0aW9uVmFsdWUoJ2Zvcm1hdF90eXBlJykgPT0gMX0geyogRGF0ZSBGb3JtYXQgKn0KCQkuZGF0ZXBpY2tlcih7CgkJCWRhdGVGb3JtYXQ6ICJ7JGZpZWxkZGVmLT5HZXRPcHRpb25WYWx1ZSgnZGF0ZV9mb3JtYXQnKX0iCgkJfSk7CQkKCQl7ZWxzZWlmICRmaWVsZGRlZi0+R2V0T3B0aW9uVmFsdWUoJ2Zvcm1hdF90eXBlJykgPT0gMn0geyogVGltZSBGb3JtYXQgKn0KCQkudGltZXBpY2tlcih7CgkJCXRpbWVGb3JtYXQ6ICJ7JGZpZWxkZGVmLT5HZXRPcHRpb25WYWx1ZSgndGltZV9mb3JtYXQnKX0iLAoJCQl7aWYgJGZpZWxkZGVmLT5HZXRPcHRpb25WYWx1ZSgnc2hvd19zZWNvbmRzJyl9c2hvd1NlY29uZDogdHJ1ZSx7L2lmfQoJCQlob3VyR3JpZDogNCwKCQkJbWludXRlR3JpZDogMTAsCgkJCXNlY29uZEdyaWQ6IDEwCQkJCgkJfSk7CgkJe2Vsc2V9IHsqIENvbWJpbmVkICp9CgkJLmRhdGV0aW1lcGlja2VyKHsKCQkJZGF0ZUZvcm1hdDogInskZmllbGRkZWYtPkdldE9wdGlvblZhbHVlKCdkYXRlX2Zvcm1hdCcpfSIsCgkJCXRpbWVGb3JtYXQ6ICJ7JGZpZWxkZGVmLT5HZXRPcHRpb25WYWx1ZSgndGltZV9mb3JtYXQnKX0iLAoJCQl7aWYgJGZpZWxkZGVmLT5HZXRPcHRpb25WYWx1ZSgnc2hvd19zZWNvbmRzJyl9c2hvd1NlY29uZDogdHJ1ZSx7L2lmfQoJCQlob3VyR3JpZDogNCwKCQkJbWludXRlR3JpZDogMTAsCgkJCXNlY29uZEdyaWQ6IDEwCgkJfSk7CQkKCQl7L2lmfQoJfSk7Cgk8L3NjcmlwdD4KCQo8L2Rpdj4=]]></data>
	</file>
	<file>
	  <filename>/lib/fielddefs/SelectDateTime/jqeury-ui-timepicker-addon.css</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[LyogY3NzIGZvciB0aW1lcGlja2VyICovCi51aS10aW1lcGlja2VyLWRpdiAudWktd2lkZ2V0LWhlYWRlciB7IG1hcmdpbi1ib3R0b206IDhweDsgfQoudWktdGltZXBpY2tlci1kaXYgZGwgeyB0ZXh0LWFsaWduOiBsZWZ0OyB9Ci51aS10aW1lcGlja2VyLWRpdiBkbCBkdCB7IGhlaWdodDogMjVweDsgbWFyZ2luLWJvdHRvbTogLTI1cHg7IH0KLnVpLXRpbWVwaWNrZXItZGl2IGRsIGRkIHsgbWFyZ2luOiAwIDEwcHggMTBweCA2NXB4OyB9Ci51aS10aW1lcGlja2VyLWRpdiB0ZCB7IGZvbnQtc2l6ZTogOTAlOyB9Ci51aS10cGlja2VyLWdyaWQtbGFiZWwgeyBiYWNrZ3JvdW5kOiBub25lOyBib3JkZXI6IG5vbmU7IG1hcmdpbjogMDsgcGFkZGluZzogMDsgfQoKLnVpLXRpbWVwaWNrZXItcnRseyBkaXJlY3Rpb246IHJ0bDsgfQoudWktdGltZXBpY2tlci1ydGwgZGwgeyB0ZXh0LWFsaWduOiByaWdodDsgfQoudWktdGltZXBpY2tlci1ydGwgZGwgZGQgeyBtYXJnaW46IDAgNjVweCAxMHB4IDEwcHg7IH0=]]></data>
	</file>
	<file>
	  <filename>/lib/fielddefs/SelectDateTime/jquery-ui-timepicker-addon.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[LyoKICogalF1ZXJ5IHRpbWVwaWNrZXIgYWRkb24KICogQnk6IFRyZW50IFJpY2hhcmRzb24gW2h0dHA6Ly90cmVudHJpY2hhcmRzb24uY29tXQogKiBWZXJzaW9uIDEuMS4xCiAqIExhc3QgTW9kaWZpZWQ6IDExLzA3LzIwMTIKICoKICogQ29weXJpZ2h0IDIwMTIgVHJlbnQgUmljaGFyZHNvbgogKiBZb3UgbWF5IHVzZSB0aGlzIHByb2plY3QgdW5kZXIgTUlUIG9yIEdQTCBsaWNlbnNlcy4KICogaHR0cDovL3RyZW50cmljaGFyZHNvbi5jb20vSW1wcm9tcHR1L0dQTC1MSUNFTlNFLnR4dAogKiBodHRwOi8vdHJlbnRyaWNoYXJkc29uLmNvbS9JbXByb21wdHUvTUlULUxJQ0VOU0UudHh0CiAqLwoKLypqc2xpbnQgZXZpbDogdHJ1ZSwgd2hpdGU6IGZhbHNlLCB1bmRlZjogZmFsc2UsIG5vbWVuOiBmYWxzZSAqLwoKKGZ1bmN0aW9uKCQpIHsKCgkvKgoJKiBMZXRzIG5vdCByZWRlZmluZSB0aW1lcGlja2VyLCBQcmV2ZW50ICJVbmNhdWdodCBSYW5nZUVycm9yOiBNYXhpbXVtIGNhbGwgc3RhY2sgc2l6ZSBleGNlZWRlZCIKCSovCgkkLnVpLnRpbWVwaWNrZXIgPSAkLnVpLnRpbWVwaWNrZXIgfHwge307CglpZiAoJC51aS50aW1lcGlja2VyLnZlcnNpb24pIHsKCQlyZXR1cm47Cgl9CgoJLyoKCSogRXh0ZW5kIGpRdWVyeVVJLCBnZXQgaXQgc3RhcnRlZCB3aXRoIG91ciB2ZXJzaW9uIG51bWJlcgoJKi8KCSQuZXh0ZW5kKCQudWksIHsKCQl0aW1lcGlja2VyOiB7CgkJCXZlcnNpb246ICIxLjEuMSIKCQl9Cgl9KTsKCgkvKiAKCSogVGltZXBpY2tlciBtYW5hZ2VyLgoJKiBVc2UgdGhlIHNpbmdsZXRvbiBpbnN0YW5jZSBvZiB0aGlzIGNsYXNzLCAkLnRpbWVwaWNrZXIsIHRvIGludGVyYWN0IHdpdGggdGhlIHRpbWUgcGlja2VyLgoJKiBTZXR0aW5ncyBmb3IgKGdyb3VwcyBvZikgdGltZSBwaWNrZXJzIGFyZSBtYWludGFpbmVkIGluIGFuIGluc3RhbmNlIG9iamVjdCwKCSogYWxsb3dpbmcgbXVsdGlwbGUgZGlmZmVyZW50IHNldHRpbmdzIG9uIHRoZSBzYW1lIHBhZ2UuCgkqLwoJZnVuY3Rpb24gVGltZXBpY2tlcigpIHsKCQl0aGlzLnJlZ2lvbmFsID0gW107IC8vIEF2YWlsYWJsZSByZWdpb25hbCBzZXR0aW5ncywgaW5kZXhlZCBieSBsYW5ndWFnZSBjb2RlCgkJdGhpcy5yZWdpb25hbFsnJ10gPSB7IC8vIERlZmF1bHQgcmVnaW9uYWwgc2V0dGluZ3MKCQkJY3VycmVudFRleHQ6ICdOb3cnLAoJCQljbG9zZVRleHQ6ICdEb25lJywKCQkJYW1OYW1lczogWydBTScsICdBJ10sCgkJCXBtTmFtZXM6IFsnUE0nLCAnUCddLAoJCQl0aW1lRm9ybWF0OiAnSEg6bW0nLAoJCQl0aW1lU3VmZml4OiAnJywKCQkJdGltZU9ubHlUaXRsZTogJ0Nob29zZSBUaW1lJywKCQkJdGltZVRleHQ6ICdUaW1lJywKCQkJaG91clRleHQ6ICdIb3VyJywKCQkJbWludXRlVGV4dDogJ01pbnV0ZScsCgkJCXNlY29uZFRleHQ6ICdTZWNvbmQnLAoJCQltaWxsaXNlY1RleHQ6ICdNaWxsaXNlY29uZCcsCgkJCXRpbWV6b25lVGV4dDogJ1RpbWUgWm9uZScsCgkJCWlzUlRMOiBmYWxzZQoJCX07CgkJdGhpcy5fZGVmYXVsdHMgPSB7IC8vIEdsb2JhbCBkZWZhdWx0cyBmb3IgYWxsIHRoZSBkYXRldGltZSBwaWNrZXIgaW5zdGFuY2VzCgkJCXNob3dCdXR0b25QYW5lbDogdHJ1ZSwKCQkJdGltZU9ubHk6IGZhbHNlLAoJCQlzaG93SG91cjogdHJ1ZSwKCQkJc2hvd01pbnV0ZTogdHJ1ZSwKCQkJc2hvd1NlY29uZDogZmFsc2UsCgkJCXNob3dNaWxsaXNlYzogZmFsc2UsCgkJCXNob3dUaW1lem9uZTogZmFsc2UsCgkJCXNob3dUaW1lOiB0cnVlLAoJCQlzdGVwSG91cjogMSwKCQkJc3RlcE1pbnV0ZTogMSwKCQkJc3RlcFNlY29uZDogMSwKCQkJc3RlcE1pbGxpc2VjOiAxLAoJCQlob3VyOiAwLAoJCQltaW51dGU6IDAsCgkJCXNlY29uZDogMCwKCQkJbWlsbGlzZWM6IDAsCgkJCXRpbWV6b25lOiBudWxsLAoJCQl1c2VMb2NhbFRpbWV6b25lOiBmYWxzZSwKCQkJZGVmYXVsdFRpbWV6b25lOiAiKzAwMDAiLAoJCQlob3VyTWluOiAwLAoJCQltaW51dGVNaW46IDAsCgkJCXNlY29uZE1pbjogMCwKCQkJbWlsbGlzZWNNaW46IDAsCgkJCWhvdXJNYXg6IDIzLAoJCQltaW51dGVNYXg6IDU5LAoJCQlzZWNvbmRNYXg6IDU5LAoJCQltaWxsaXNlY01heDogOTk5LAoJCQltaW5EYXRlVGltZTogbnVsbCwKCQkJbWF4RGF0ZVRpbWU6IG51bGwsCgkJCW9uU2VsZWN0OiBudWxsLAoJCQlob3VyR3JpZDogMCwKCQkJbWludXRlR3JpZDogMCwKCQkJc2Vjb25kR3JpZDogMCwKCQkJbWlsbGlzZWNHcmlkOiAwLAoJCQlhbHdheXNTZXRUaW1lOiB0cnVlLAoJCQlzZXBhcmF0b3I6ICcgJywKCQkJYWx0RmllbGRUaW1lT25seTogdHJ1ZSwKCQkJYWx0VGltZUZvcm1hdDogbnVsbCwKCQkJYWx0U2VwYXJhdG9yOiBudWxsLAoJCQlhbHRUaW1lU3VmZml4OiBudWxsLAoJCQlwaWNrZXJUaW1lRm9ybWF0OiBudWxsLAoJCQlwaWNrZXJUaW1lU3VmZml4OiBudWxsLAoJCQlzaG93VGltZXBpY2tlcjogdHJ1ZSwKCQkJdGltZXpvbmVJc284NjAxOiBmYWxzZSwKCQkJdGltZXpvbmVMaXN0OiBudWxsLAoJCQlhZGRTbGlkZXJBY2Nlc3M6IGZhbHNlLAoJCQlzbGlkZXJBY2Nlc3NBcmdzOiBudWxsLAoJCQljb250cm9sVHlwZTogJ3NsaWRlcicsCgkJCWRlZmF1bHRWYWx1ZTogbnVsbCwKCQkJcGFyc2U6ICdzdHJpY3QnCgkJfTsKCQkkLmV4dGVuZCh0aGlzLl9kZWZhdWx0cywgdGhpcy5yZWdpb25hbFsnJ10pOwoJfQoKCSQuZXh0ZW5kKFRpbWVwaWNrZXIucHJvdG90eXBlLCB7CgkJJGlucHV0OiBudWxsLAoJCSRhbHRJbnB1dDogbnVsbCwKCQkkdGltZU9iajogbnVsbCwKCQlpbnN0OiBudWxsLAoJCWhvdXJfc2xpZGVyOiBudWxsLAoJCW1pbnV0ZV9zbGlkZXI6IG51bGwsCgkJc2Vjb25kX3NsaWRlcjogbnVsbCwKCQltaWxsaXNlY19zbGlkZXI6IG51bGwsCgkJdGltZXpvbmVfc2VsZWN0OiBudWxsLAoJCWhvdXI6IDAsCgkJbWludXRlOiAwLAoJCXNlY29uZDogMCwKCQltaWxsaXNlYzogMCwKCQl0aW1lem9uZTogbnVsbCwKCQlkZWZhdWx0VGltZXpvbmU6ICIrMDAwMCIsCgkJaG91ck1pbk9yaWdpbmFsOiBudWxsLAoJCW1pbnV0ZU1pbk9yaWdpbmFsOiBudWxsLAoJCXNlY29uZE1pbk9yaWdpbmFsOiBudWxsLAoJCW1pbGxpc2VjTWluT3JpZ2luYWw6IG51bGwsCgkJaG91ck1heE9yaWdpbmFsOiBudWxsLAoJCW1pbnV0ZU1heE9yaWdpbmFsOiBudWxsLAoJCXNlY29uZE1heE9yaWdpbmFsOiBudWxsLAoJCW1pbGxpc2VjTWF4T3JpZ2luYWw6IG51bGwsCgkJYW1wbTogJycsCgkJZm9ybWF0dGVkRGF0ZTogJycsCgkJZm9ybWF0dGVkVGltZTogJycsCgkJZm9ybWF0dGVkRGF0ZVRpbWU6ICcnLAoJCXRpbWV6b25lTGlzdDogbnVsbCwKCQl1bml0czogWydob3VyJywnbWludXRlJywnc2Vjb25kJywnbWlsbGlzZWMnXSwKCQljb250cm9sOiBudWxsLAoKCQkvKiAKCQkqIE92ZXJyaWRlIHRoZSBkZWZhdWx0IHNldHRpbmdzIGZvciBhbGwgaW5zdGFuY2VzIG9mIHRoZSB0aW1lIHBpY2tlci4KCQkqIEBwYXJhbSAgc2V0dGluZ3MgIG9iamVjdCAtIHRoZSBuZXcgc2V0dGluZ3MgdG8gdXNlIGFzIGRlZmF1bHRzIChhbm9ueW1vdXMgb2JqZWN0KQoJCSogQHJldHVybiB0aGUgbWFuYWdlciBvYmplY3QKCQkqLwoJCXNldERlZmF1bHRzOiBmdW5jdGlvbihzZXR0aW5ncykgewoJCQlleHRlbmRSZW1vdmUodGhpcy5fZGVmYXVsdHMsIHNldHRpbmdzIHx8IHt9KTsKCQkJcmV0dXJuIHRoaXM7CgkJfSwKCgkJLyoKCQkqIENyZWF0ZSBhIG5ldyBUaW1lcGlja2VyIGluc3RhbmNlCgkJKi8KCQlfbmV3SW5zdDogZnVuY3Rpb24oJGlucHV0LCBvKSB7CgkJCXZhciB0cF9pbnN0ID0gbmV3IFRpbWVwaWNrZXIoKSwKCQkJCWlubGluZVNldHRpbmdzID0ge30sCiAgICAgICAgICAgICAgICBmbnMgPSB7fSwKCQkgICAgICAgIG92ZXJyaWRlcywgaTsKCgkJCWZvciAodmFyIGF0dHJOYW1lIGluIHRoaXMuX2RlZmF1bHRzKSB7CgkJCQlpZih0aGlzLl9kZWZhdWx0cy5oYXNPd25Qcm9wZXJ0eShhdHRyTmFtZSkpewoJCQkJCXZhciBhdHRyVmFsdWUgPSAkaW5wdXQuYXR0cigndGltZTonICsgYXR0ck5hbWUpOwoJCQkJCWlmIChhdHRyVmFsdWUpIHsKCQkJCQkJdHJ5IHsKCQkJCQkJCWlubGluZVNldHRpbmdzW2F0dHJOYW1lXSA9IGV2YWwoYXR0clZhbHVlKTsKCQkJCQkJfSBjYXRjaCAoZXJyKSB7CgkJCQkJCQlpbmxpbmVTZXR0aW5nc1thdHRyTmFtZV0gPSBhdHRyVmFsdWU7CgkJCQkJCX0KCQkJCQl9CgkJCQl9CgkJCX0KCQkgICAgb3ZlcnJpZGVzID0gewoJCSAgICAgICAgYmVmb3JlU2hvdzogZnVuY3Rpb24gKGlucHV0LCBkcF9pbnN0KSB7CgkJICAgICAgICAgICAgaWYgKCQuaXNGdW5jdGlvbih0cF9pbnN0Ll9kZWZhdWx0cy5ldm50cy5iZWZvcmVTaG93KSkgewoJCSAgICAgICAgICAgICAgICByZXR1cm4gdHBfaW5zdC5fZGVmYXVsdHMuZXZudHMuYmVmb3JlU2hvdy5jYWxsKCRpbnB1dFswXSwgaW5wdXQsIGRwX2luc3QsIHRwX2luc3QpOwoJCSAgICAgICAgICAgIH0KCQkgICAgICAgIH0sCgkJICAgICAgICBvbkNoYW5nZU1vbnRoWWVhcjogZnVuY3Rpb24gKHllYXIsIG1vbnRoLCBkcF9pbnN0KSB7CgkJICAgICAgICAgICAgLy8gVXBkYXRlIHRoZSB0aW1lIGFzIHdlbGwgOiB0aGlzIHByZXZlbnRzIHRoZSB0aW1lIGZyb20gZGlzYXBwZWFyaW5nIGZyb20gdGhlICRpbnB1dCBmaWVsZC4KCQkgICAgICAgICAgICB0cF9pbnN0Ll91cGRhdGVEYXRlVGltZShkcF9pbnN0KTsKCQkgICAgICAgICAgICBpZiAoJC5pc0Z1bmN0aW9uKHRwX2luc3QuX2RlZmF1bHRzLmV2bnRzLm9uQ2hhbmdlTW9udGhZZWFyKSkgewoJCSAgICAgICAgICAgICAgICB0cF9pbnN0Ll9kZWZhdWx0cy5ldm50cy5vbkNoYW5nZU1vbnRoWWVhci5jYWxsKCRpbnB1dFswXSwgeWVhciwgbW9udGgsIGRwX2luc3QsIHRwX2luc3QpOwoJCSAgICAgICAgICAgIH0KCQkgICAgICAgIH0sCgkJICAgICAgICBvbkNsb3NlOiBmdW5jdGlvbiAoZGF0ZVRleHQsIGRwX2luc3QpIHsKCQkgICAgICAgICAgICBpZiAodHBfaW5zdC50aW1lRGVmaW5lZCA9PT0gdHJ1ZSAmJiAkaW5wdXQudmFsKCkgIT09ICcnKSB7CgkJICAgICAgICAgICAgICAgIHRwX2luc3QuX3VwZGF0ZURhdGVUaW1lKGRwX2luc3QpOwoJCSAgICAgICAgICAgIH0KCQkgICAgICAgICAgICBpZiAoJC5pc0Z1bmN0aW9uKHRwX2luc3QuX2RlZmF1bHRzLmV2bnRzLm9uQ2xvc2UpKSB7CgkJICAgICAgICAgICAgICAgIHRwX2luc3QuX2RlZmF1bHRzLmV2bnRzLm9uQ2xvc2UuY2FsbCgkaW5wdXRbMF0sIGRhdGVUZXh0LCBkcF9pbnN0LCB0cF9pbnN0KTsKCQkgICAgICAgICAgICB9CgkJICAgICAgICB9CgkJICAgIH07CgkJICAgIGZvciAoaSBpbiBvdmVycmlkZXMpIHsKCQkgICAgICAgIGlmIChvdmVycmlkZXMuaGFzT3duUHJvcGVydHkoaSkpIHsKCQkgICAgICAgICAgICBmbnNbaV0gPSBvW2ldIHx8IG51bGw7CgkJICAgICAgICB9CgkJICAgIH0KCQkgICAgdHBfaW5zdC5fZGVmYXVsdHMgPSAkLmV4dGVuZCh7fSwgdGhpcy5fZGVmYXVsdHMsIGlubGluZVNldHRpbmdzLCBvLCBvdmVycmlkZXMsIHsKCQkgICAgICAgIGV2bnRzOmZucywKCQkgICAgICAgIHRpbWVwaWNrZXI6IHRwX2luc3QgLy8gYWRkIHRpbWVwaWNrZXIgYXMgYSBwcm9wZXJ0eSBvZiBkYXRlcGlja2VyOiAkLmRhdGVwaWNrZXIuX2dldChkcF9pbnN0LCAndGltZXBpY2tlcicpOwoJCSAgICB9KTsKCQkJdHBfaW5zdC5hbU5hbWVzID0gJC5tYXAodHBfaW5zdC5fZGVmYXVsdHMuYW1OYW1lcywgZnVuY3Rpb24odmFsKSB7CgkJCQlyZXR1cm4gdmFsLnRvVXBwZXJDYXNlKCk7CgkJCX0pOwoJCQl0cF9pbnN0LnBtTmFtZXMgPSAkLm1hcCh0cF9pbnN0Ll9kZWZhdWx0cy5wbU5hbWVzLCBmdW5jdGlvbih2YWwpIHsKCQkJCXJldHVybiB2YWwudG9VcHBlckNhc2UoKTsKCQkJfSk7CgoJCQkvLyBjb250cm9sVHlwZSBpcyBzdHJpbmcgLSBrZXkgdG8gb3VyIHRoaXMuX2NvbnRyb2xzCgkJCWlmKHR5cGVvZih0cF9pbnN0Ll9kZWZhdWx0cy5jb250cm9sVHlwZSkgPT09ICdzdHJpbmcnKXsKCQkJCWlmKCQuZm5bdHBfaW5zdC5fZGVmYXVsdHMuY29udHJvbFR5cGVdID09PSB1bmRlZmluZWQpewoJCQkJCXRwX2luc3QuX2RlZmF1bHRzLmNvbnRyb2xUeXBlID0gJ3NlbGVjdCc7CgkJCQl9CgkJCQl0cF9pbnN0LmNvbnRyb2wgPSB0cF9pbnN0Ll9jb250cm9sc1t0cF9pbnN0Ll9kZWZhdWx0cy5jb250cm9sVHlwZV07CgkJCX0KCQkJLy8gY29udHJvbFR5cGUgaXMgYW4gb2JqZWN0IGFuZCBtdXN0IGltcGxlbWVudCBjcmVhdGUsIG9wdGlvbnMsIHZhbHVlIG1ldGhvZHMKCQkJZWxzZXsgCgkJCQl0cF9pbnN0LmNvbnRyb2wgPSB0cF9pbnN0Ll9kZWZhdWx0cy5jb250cm9sVHlwZTsKCQkJfQoKCQkJaWYgKHRwX2luc3QuX2RlZmF1bHRzLnRpbWV6b25lTGlzdCA9PT0gbnVsbCkgewoJCQkJdmFyIHRpbWV6b25lTGlzdCA9IFsnLTEyMDAnLCAnLTExMDAnLCAnLTEwMDAnLCAnLTA5MzAnLCAnLTA5MDAnLCAnLTA4MDAnLCAnLTA3MDAnLCAnLTA2MDAnLCAnLTA1MDAnLCAnLTA0MzAnLCAnLTA0MDAnLCAnLTAzMzAnLCAnLTAzMDAnLCAnLTAyMDAnLCAnLTAxMDAnLCAnKzAwMDAnLCAKCQkJCQkJCQkJJyswMTAwJywgJyswMjAwJywgJyswMzAwJywgJyswMzMwJywgJyswNDAwJywgJyswNDMwJywgJyswNTAwJywgJyswNTMwJywgJyswNTQ1JywgJyswNjAwJywgJyswNjMwJywgJyswNzAwJywgJyswODAwJywgJyswODQ1JywgJyswOTAwJywgJyswOTMwJywgCgkJCQkJCQkJCScrMTAwMCcsICcrMTAzMCcsICcrMTEwMCcsICcrMTEzMCcsICcrMTIwMCcsICcrMTI0NScsICcrMTMwMCcsICcrMTQwMCddOwoKCQkJCWlmICh0cF9pbnN0Ll9kZWZhdWx0cy50aW1lem9uZUlzbzg2MDEpIHsKCQkJCQl0aW1lem9uZUxpc3QgPSAkLm1hcCh0aW1lem9uZUxpc3QsIGZ1bmN0aW9uKHZhbCkgewoJCQkJCQlyZXR1cm4gdmFsID09ICcrMDAwMCcgPyAnWicgOiAodmFsLnN1YnN0cmluZygwLCAzKSArICc6JyArIHZhbC5zdWJzdHJpbmcoMykpOwoJCQkJCX0pOwoJCQkJfQoJCQkJdHBfaW5zdC5fZGVmYXVsdHMudGltZXpvbmVMaXN0ID0gdGltZXpvbmVMaXN0OwoJCQl9CgoJCQl0cF9pbnN0LnRpbWV6b25lID0gdHBfaW5zdC5fZGVmYXVsdHMudGltZXpvbmU7CgkJCXRwX2luc3QuaG91ciA9IHRwX2luc3QuX2RlZmF1bHRzLmhvdXI7CgkJCXRwX2luc3QubWludXRlID0gdHBfaW5zdC5fZGVmYXVsdHMubWludXRlOwoJCQl0cF9pbnN0LnNlY29uZCA9IHRwX2luc3QuX2RlZmF1bHRzLnNlY29uZDsKCQkJdHBfaW5zdC5taWxsaXNlYyA9IHRwX2luc3QuX2RlZmF1bHRzLm1pbGxpc2VjOwoJCQl0cF9pbnN0LmFtcG0gPSAnJzsKCQkJdHBfaW5zdC4kaW5wdXQgPSAkaW5wdXQ7CgoJCQlpZiAoby5hbHRGaWVsZCkgewoJCQkJdHBfaW5zdC4kYWx0SW5wdXQgPSAkKG8uYWx0RmllbGQpLmNzcyh7CgkJCQkJY3Vyc29yOiAncG9pbnRlcicKCQkJCX0pLmZvY3VzKGZ1bmN0aW9uKCkgewoJCQkJCSRpbnB1dC50cmlnZ2VyKCJmb2N1cyIpOwoJCQkJfSk7CgkJCX0KCgkJCWlmICh0cF9pbnN0Ll9kZWZhdWx0cy5taW5EYXRlID09PSAwIHx8IHRwX2luc3QuX2RlZmF1bHRzLm1pbkRhdGVUaW1lID09PSAwKSB7CgkJCQl0cF9pbnN0Ll9kZWZhdWx0cy5taW5EYXRlID0gbmV3IERhdGUoKTsKCQkJfQoJCQlpZiAodHBfaW5zdC5fZGVmYXVsdHMubWF4RGF0ZSA9PT0gMCB8fCB0cF9pbnN0Ll9kZWZhdWx0cy5tYXhEYXRlVGltZSA9PT0gMCkgewoJCQkJdHBfaW5zdC5fZGVmYXVsdHMubWF4RGF0ZSA9IG5ldyBEYXRlKCk7CgkJCX0KCgkJCS8vIGRhdGVwaWNrZXIgbmVlZHMgbWluRGF0ZS9tYXhEYXRlLCB0aW1lcGlja2VyIG5lZWRzIG1pbkRhdGVUaW1lL21heERhdGVUaW1lLi4KCQkJaWYgKHRwX2luc3QuX2RlZmF1bHRzLm1pbkRhdGUgIT09IHVuZGVmaW5lZCAmJiB0cF9pbnN0Ll9kZWZhdWx0cy5taW5EYXRlIGluc3RhbmNlb2YgRGF0ZSkgewoJCQkJdHBfaW5zdC5fZGVmYXVsdHMubWluRGF0ZVRpbWUgPSBuZXcgRGF0ZSh0cF9pbnN0Ll9kZWZhdWx0cy5taW5EYXRlLmdldFRpbWUoKSk7CgkJCX0KCQkJaWYgKHRwX2luc3QuX2RlZmF1bHRzLm1pbkRhdGVUaW1lICE9PSB1bmRlZmluZWQgJiYgdHBfaW5zdC5fZGVmYXVsdHMubWluRGF0ZVRpbWUgaW5zdGFuY2VvZiBEYXRlKSB7CgkJCQl0cF9pbnN0Ll9kZWZhdWx0cy5taW5EYXRlID0gbmV3IERhdGUodHBfaW5zdC5fZGVmYXVsdHMubWluRGF0ZVRpbWUuZ2V0VGltZSgpKTsKCQkJfQoJCQlpZiAodHBfaW5zdC5fZGVmYXVsdHMubWF4RGF0ZSAhPT0gdW5kZWZpbmVkICYmIHRwX2luc3QuX2RlZmF1bHRzLm1heERhdGUgaW5zdGFuY2VvZiBEYXRlKSB7CgkJCQl0cF9pbnN0Ll9kZWZhdWx0cy5tYXhEYXRlVGltZSA9IG5ldyBEYXRlKHRwX2luc3QuX2RlZmF1bHRzLm1heERhdGUuZ2V0VGltZSgpKTsKCQkJfQoJCQlpZiAodHBfaW5zdC5fZGVmYXVsdHMubWF4RGF0ZVRpbWUgIT09IHVuZGVmaW5lZCAmJiB0cF9pbnN0Ll9kZWZhdWx0cy5tYXhEYXRlVGltZSBpbnN0YW5jZW9mIERhdGUpIHsKCQkJCXRwX2luc3QuX2RlZmF1bHRzLm1heERhdGUgPSBuZXcgRGF0ZSh0cF9pbnN0Ll9kZWZhdWx0cy5tYXhEYXRlVGltZS5nZXRUaW1lKCkpOwoJCQl9CgkJCXRwX2luc3QuJGlucHV0LmJpbmQoJ2ZvY3VzJywgZnVuY3Rpb24oKSB7CgkJCQl0cF9pbnN0Ll9vbkZvY3VzKCk7CgkJCX0pOwoKCQkJcmV0dXJuIHRwX2luc3Q7CgkJfSwKCgkJLyoKCQkqIGFkZCBvdXIgc2xpZGVycyB0byB0aGUgY2FsZW5kYXIKCQkqLwoJCV9hZGRUaW1lUGlja2VyOiBmdW5jdGlvbihkcF9pbnN0KSB7CgkJCXZhciBjdXJyRFQgPSAodGhpcy4kYWx0SW5wdXQgJiYgdGhpcy5fZGVmYXVsdHMuYWx0RmllbGRUaW1lT25seSkgPyB0aGlzLiRpbnB1dC52YWwoKSArICcgJyArIHRoaXMuJGFsdElucHV0LnZhbCgpIDogdGhpcy4kaW5wdXQudmFsKCk7CgoJCQl0aGlzLnRpbWVEZWZpbmVkID0gdGhpcy5fcGFyc2VUaW1lKGN1cnJEVCk7CgkJCXRoaXMuX2xpbWl0TWluTWF4RGF0ZVRpbWUoZHBfaW5zdCwgZmFsc2UpOwoJCQl0aGlzLl9pbmplY3RUaW1lUGlja2VyKCk7CgkJfSwKCgkJLyoKCQkqIHBhcnNlIHRoZSB0aW1lIHN0cmluZyBmcm9tIGlucHV0IHZhbHVlIG9yIF9zZXRUaW1lCgkJKi8KCQlfcGFyc2VUaW1lOiBmdW5jdGlvbih0aW1lU3RyaW5nLCB3aXRoRGF0ZSkgewoJCQlpZiAoIXRoaXMuaW5zdCkgewoJCQkJdGhpcy5pbnN0ID0gJC5kYXRlcGlja2VyLl9nZXRJbnN0KHRoaXMuJGlucHV0WzBdKTsKCQkJfQoKCQkJaWYgKHdpdGhEYXRlIHx8ICF0aGlzLl9kZWZhdWx0cy50aW1lT25seSkgewoJCQkJdmFyIGRwX2RhdGVGb3JtYXQgPSAkLmRhdGVwaWNrZXIuX2dldCh0aGlzLmluc3QsICdkYXRlRm9ybWF0Jyk7CgkJCQl0cnkgewoJCQkJCXZhciBwYXJzZVJlcyA9IHBhcnNlRGF0ZVRpbWVJbnRlcm5hbChkcF9kYXRlRm9ybWF0LCB0aGlzLl9kZWZhdWx0cy50aW1lRm9ybWF0LCB0aW1lU3RyaW5nLCAkLmRhdGVwaWNrZXIuX2dldEZvcm1hdENvbmZpZyh0aGlzLmluc3QpLCB0aGlzLl9kZWZhdWx0cyk7CgkJCQkJaWYgKCFwYXJzZVJlcy50aW1lT2JqKSB7CgkJCQkJCXJldHVybiBmYWxzZTsKCQkJCQl9CgkJCQkJJC5leHRlbmQodGhpcywgcGFyc2VSZXMudGltZU9iaik7CgkJCQl9IGNhdGNoIChlcnIpIHsKCQkJCQkkLmRhdGVwaWNrZXIubG9nKCJFcnJvciBwYXJzaW5nIHRoZSBkYXRlL3RpbWUgc3RyaW5nOiAiICsgZXJyICsKCQkJCQkJCQkJIlxuZGF0ZS90aW1lIHN0cmluZyA9ICIgKyB0aW1lU3RyaW5nICsKCQkJCQkJCQkJIlxudGltZUZvcm1hdCA9ICIgKyB0aGlzLl9kZWZhdWx0cy50aW1lRm9ybWF0ICsKCQkJCQkJCQkJIlxuZGF0ZUZvcm1hdCA9ICIgKyBkcF9kYXRlRm9ybWF0KTsKCQkJCQlyZXR1cm4gZmFsc2U7CgkJCQl9CgkJCQlyZXR1cm4gdHJ1ZTsKCQkJfSBlbHNlIHsKCQkJCXZhciB0aW1lT2JqID0gJC5kYXRlcGlja2VyLnBhcnNlVGltZSh0aGlzLl9kZWZhdWx0cy50aW1lRm9ybWF0LCB0aW1lU3RyaW5nLCB0aGlzLl9kZWZhdWx0cyk7CgkJCQlpZiAoIXRpbWVPYmopIHsKCQkJCQlyZXR1cm4gZmFsc2U7CgkJCQl9CgkJCQkkLmV4dGVuZCh0aGlzLCB0aW1lT2JqKTsKCQkJCXJldHVybiB0cnVlOwoJCQl9CgkJfSwKCgkJLyoKCQkqIGdlbmVyYXRlIGFuZCBpbmplY3QgaHRtbCBmb3IgdGltZXBpY2tlciBpbnRvIHVpIGRhdGVwaWNrZXIKCQkqLwoJCV9pbmplY3RUaW1lUGlja2VyOiBmdW5jdGlvbigpIHsKCQkJdmFyICRkcCA9IHRoaXMuaW5zdC5kcERpdiwKCQkJCW8gPSB0aGlzLmluc3Quc2V0dGluZ3MsCgkJCQl0cF9pbnN0ID0gdGhpcywKCQkJCWxpdGVtID0gJycsCgkJCQl1aXRlbSA9ICcnLAoJCQkJbWF4ID0ge30sCgkJCQlncmlkU2l6ZSA9IHt9LAoJCQkJc2l6ZSA9IG51bGw7CgoJCQkvLyBQcmV2ZW50IGRpc3BsYXlpbmcgdHdpY2UKCQkJaWYgKCRkcC5maW5kKCJkaXYudWktdGltZXBpY2tlci1kaXYiKS5sZW5ndGggPT09IDAgJiYgby5zaG93VGltZXBpY2tlcikgewoJCQkJdmFyIG5vRGlzcGxheSA9ICcgc3R5bGU9ImRpc3BsYXk6bm9uZTsiJywKCQkJCQlodG1sID0gJzxkaXYgY2xhc3M9InVpLXRpbWVwaWNrZXItZGl2JysgKG8uaXNSVEw/ICcgdWktdGltZXBpY2tlci1ydGwnIDogJycpICsnIj48ZGw+JyArICc8ZHQgY2xhc3M9InVpX3RwaWNrZXJfdGltZV9sYWJlbCInICsgKChvLnNob3dUaW1lKSA/ICcnIDogbm9EaXNwbGF5KSArICc+JyArIG8udGltZVRleHQgKyAnPC9kdD4nICsgCgkJCQkJCQkJJzxkZCBjbGFzcz0idWlfdHBpY2tlcl90aW1lIicgKyAoKG8uc2hvd1RpbWUpID8gJycgOiBub0Rpc3BsYXkpICsgJz48L2RkPic7CgoJCQkJLy8gQ3JlYXRlIHRoZSBtYXJrdXAKCQkJCWZvcih2YXIgaT0wLGw9dGhpcy51bml0cy5sZW5ndGg7IGk8bDsgaSsrKXsKCQkJCQlsaXRlbSA9IHRoaXMudW5pdHNbaV07CgkJCQkJdWl0ZW0gPSBsaXRlbS5zdWJzdHIoMCwxKS50b1VwcGVyQ2FzZSgpICsgbGl0ZW0uc3Vic3RyKDEpOwoJCQkJCS8vIEFkZGVkIGJ5IFBldGVyIE1lZGVpcm9zOgoJCQkJCS8vIC0gRmlndXJlIG91dCB3aGF0IHRoZSBob3VyL21pbnV0ZS9zZWNvbmQgbWF4IHNob3VsZCBiZSBiYXNlZCBvbiB0aGUgc3RlcCB2YWx1ZXMuCgkJCQkJLy8gLSBFeGFtcGxlOiBpZiBzdGVwTWludXRlIGlzIDE1LCB0aGVuIG1pbk1heCBpcyA0NS4KCQkJCQltYXhbbGl0ZW1dID0gcGFyc2VJbnQoKG9bbGl0ZW0rJ01heCddIC0gKChvW2xpdGVtKydNYXgnXSAtIG9bbGl0ZW0rJ01pbiddKSAlIG9bJ3N0ZXAnK3VpdGVtXSkpLCAxMCk7CgkJCQkJZ3JpZFNpemVbbGl0ZW1dID0gMDsKCgkJCQkJaHRtbCArPSAnPGR0IGNsYXNzPSJ1aV90cGlja2VyXycrIGxpdGVtICsnX2xhYmVsIicgKyAoKG9bJ3Nob3cnK3VpdGVtXSkgPyAnJyA6IG5vRGlzcGxheSkgKyAnPicgKyBvW2xpdGVtICsnVGV4dCddICsgJzwvZHQ+JyArIAoJCQkJCQkJCSc8ZGQgY2xhc3M9InVpX3RwaWNrZXJfJysgbGl0ZW0gKyciPjxkaXYgY2xhc3M9InVpX3RwaWNrZXJfJysgbGl0ZW0gKydfc2xpZGVyIicgKyAoKG9bJ3Nob3cnK3VpdGVtXSkgPyAnJyA6IG5vRGlzcGxheSkgKyAnPjwvZGl2Pic7CgoJCQkJCWlmIChvWydzaG93Jyt1aXRlbV0gJiYgb1tsaXRlbSsnR3JpZCddID4gMCkgewoJCQkJCQlodG1sICs9ICc8ZGl2IHN0eWxlPSJwYWRkaW5nLWxlZnQ6IDFweCI+PHRhYmxlIGNsYXNzPSJ1aS10cGlja2VyLWdyaWQtbGFiZWwiPjx0cj4nOwoKCQkJCQkJaWYobGl0ZW0gPT0gJ2hvdXInKXsKCQkJCQkJCWZvciAodmFyIGggPSBvW2xpdGVtKydNaW4nXTsgaCA8PSBtYXhbbGl0ZW1dOyBoICs9IHBhcnNlSW50KG9bbGl0ZW0rJ0dyaWQnXSwgMTApKSB7CgkJCQkJCQkJZ3JpZFNpemVbbGl0ZW1dKys7CgkJCQkJCQkJdmFyIHRtcGggPSAkLmRhdGVwaWNrZXIuZm9ybWF0VGltZSh1c2VBbXBtKG8ucGlja2VyVGltZUZvcm1hdCB8fCBvLnRpbWVGb3JtYXQpPyAnaGh0JzonSEgnLCB7aG91cjpofSwgbyk7CQkJCQkJCQkJCgkJCQkJCQkJaHRtbCArPSAnPHRkIGRhdGEtZm9yPSInK2xpdGVtKyciPicgKyB0bXBoICsgJzwvdGQ+JzsKCQkJCQkJCX0KCQkJCQkJfQoJCQkJCQllbHNlewoJCQkJCQkJZm9yICh2YXIgbSA9IG9bbGl0ZW0rJ01pbiddOyBtIDw9IG1heFtsaXRlbV07IG0gKz0gcGFyc2VJbnQob1tsaXRlbSsnR3JpZCddLCAxMCkpIHsKCQkJCQkJCQlncmlkU2l6ZVtsaXRlbV0rKzsKCQkJCQkJCQlodG1sICs9ICc8dGQgZGF0YS1mb3I9IicrbGl0ZW0rJyI+JyArICgobSA8IDEwKSA/ICcwJyA6ICcnKSArIG0gKyAnPC90ZD4nOwoJCQkJCQkJfQoJCQkJCQl9CgoJCQkJCQlodG1sICs9ICc8L3RyPjwvdGFibGU+PC9kaXY+JzsKCQkJCQl9CgkJCQkJaHRtbCArPSAnPC9kZD4nOwoJCQkJfQoJCQkJCgkJCQkvLyBUaW1lem9uZQoJCQkJaHRtbCArPSAnPGR0IGNsYXNzPSJ1aV90cGlja2VyX3RpbWV6b25lX2xhYmVsIicgKyAoKG8uc2hvd1RpbWV6b25lKSA/ICcnIDogbm9EaXNwbGF5KSArICc+JyArIG8udGltZXpvbmVUZXh0ICsgJzwvZHQ+JzsKCQkJCWh0bWwgKz0gJzxkZCBjbGFzcz0idWlfdHBpY2tlcl90aW1lem9uZSIgJyArICgoby5zaG93VGltZXpvbmUpID8gJycgOiBub0Rpc3BsYXkpICsgJz48L2RkPic7CgoJCQkJLy8gQ3JlYXRlIHRoZSBlbGVtZW50cyBmcm9tIHN0cmluZwoJCQkJaHRtbCArPSAnPC9kbD48L2Rpdj4nOwoJCQkJdmFyICR0cCA9ICQoaHRtbCk7CgoJCQkJLy8gaWYgd2Ugb25seSB3YW50IHRpbWUgcGlja2VyLi4uCgkJCQlpZiAoby50aW1lT25seSA9PT0gdHJ1ZSkgewoJCQkJCSR0cC5wcmVwZW5kKCc8ZGl2IGNsYXNzPSJ1aS13aWRnZXQtaGVhZGVyIHVpLWhlbHBlci1jbGVhcmZpeCB1aS1jb3JuZXItYWxsIj4nICsgJzxkaXYgY2xhc3M9InVpLWRhdGVwaWNrZXItdGl0bGUiPicgKyBvLnRpbWVPbmx5VGl0bGUgKyAnPC9kaXY+JyArICc8L2Rpdj4nKTsKCQkJCQkkZHAuZmluZCgnLnVpLWRhdGVwaWNrZXItaGVhZGVyLCAudWktZGF0ZXBpY2tlci1jYWxlbmRhcicpLmhpZGUoKTsKCQkJCX0KCQkJCQoJCQkJLy8gYWRkIHNsaWRlcnMsIGFkanVzdCBncmlkcywgYWRkIGV2ZW50cwoJCQkJZm9yKHZhciBpPTAsbD10cF9pbnN0LnVuaXRzLmxlbmd0aDsgaTxsOyBpKyspewoJCQkJCWxpdGVtID0gdHBfaW5zdC51bml0c1tpXTsKCQkJCQl1aXRlbSA9IGxpdGVtLnN1YnN0cigwLDEpLnRvVXBwZXJDYXNlKCkgKyBsaXRlbS5zdWJzdHIoMSk7CgkJCQkJCgkJCQkJLy8gYWRkIHRoZSBzbGlkZXIKCQkJCQl0cF9pbnN0W2xpdGVtKydfc2xpZGVyJ10gPSB0cF9pbnN0LmNvbnRyb2wuY3JlYXRlKHRwX2luc3QsICR0cC5maW5kKCcudWlfdHBpY2tlcl8nK2xpdGVtKydfc2xpZGVyJyksIGxpdGVtLCB0cF9pbnN0W2xpdGVtXSwgb1tsaXRlbSsnTWluJ10sIG1heFtsaXRlbV0sIG9bJ3N0ZXAnK3VpdGVtXSk7CgoJCQkJCS8vIGFkanVzdCB0aGUgZ3JpZCBhbmQgYWRkIGNsaWNrIGV2ZW50CgkJCQkJaWYgKG9bJ3Nob3cnK3VpdGVtXSAmJiBvW2xpdGVtKydHcmlkJ10gPiAwKSB7CgkJCQkJCXNpemUgPSAxMDAgKiBncmlkU2l6ZVtsaXRlbV0gKiBvW2xpdGVtKydHcmlkJ10gLyAobWF4W2xpdGVtXSAtIG9bbGl0ZW0rJ01pbiddKTsKCQkJCQkJJHRwLmZpbmQoJy51aV90cGlja2VyXycrbGl0ZW0rJyB0YWJsZScpLmNzcyh7CgkJCQkJCQl3aWR0aDogc2l6ZSArICIlIiwKCQkJCQkJCW1hcmdpbkxlZnQ6IG8uaXNSVEw/ICcwJyA6ICgoc2l6ZSAvICgtMiAqIGdyaWRTaXplW2xpdGVtXSkpICsgIiUiKSwKCQkJCQkJCW1hcmdpblJpZ2h0OiBvLmlzUlRMPyAoKHNpemUgLyAoLTIgKiBncmlkU2l6ZVtsaXRlbV0pKSArICIlIikgOiAnMCcsCgkJCQkJCQlib3JkZXJDb2xsYXBzZTogJ2NvbGxhcHNlJwoJCQkJCQl9KS5maW5kKCJ0ZCIpLmNsaWNrKGZ1bmN0aW9uKGUpewoJCQkJCQkJCXZhciAkdCA9ICQodGhpcyksCgkJCQkJCQkJCWggPSAkdC5odG1sKCksCgkJCQkJCQkJCW4gPSBwYXJzZUludChoLnJlcGxhY2UoL1teMC05XS9nKSwxMCksCgkJCQkJCQkJCWFwID0gaC5yZXBsYWNlKC9bXmFwbV0vaWcpLAoJCQkJCQkJCQlmID0gJHQuZGF0YSgnZm9yJyk7IC8vIGxvc2VzIHNjb3BlLCBzbyB3ZSB1c2UgZGF0YS1mb3IKCgkJCQkJCQkJaWYoZiA9PSAnaG91cicpewoJCQkJCQkJCQlpZihhcC5pbmRleE9mKCdwJykgIT09IC0xICYmIG4gPCAxMil7CgkJCQkJCQkJCQluICs9IDEyOwoJCQkJCQkJCQl9CgkJCQkJCQkJCWVsc2V7CgkJCQkJCQkJCQlpZihhcC5pbmRleE9mKCdhJykgIT09IC0xICYmIG4gPT09IDEyKXsKCQkJCQkJCQkJCQluID0gMDsKCQkJCQkJCQkJCX0KCQkJCQkJCQkJfQoJCQkJCQkJCX0KCQkJCQkJCQkKCQkJCQkJCQl0cF9pbnN0LmNvbnRyb2wudmFsdWUodHBfaW5zdCwgdHBfaW5zdFtmKydfc2xpZGVyJ10sIGxpdGVtLCBuKTsKCgkJCQkJCQkJdHBfaW5zdC5fb25UaW1lQ2hhbmdlKCk7CgkJCQkJCQkJdHBfaW5zdC5fb25TZWxlY3RIYW5kbGVyKCk7CgkJCQkJCQl9KQoJCQkJCQkuY3NzKHsKCQkJCQkJCQljdXJzb3I6ICdwb2ludGVyJywKCQkJCQkJCQl3aWR0aDogKDEwMCAvIGdyaWRTaXplW2xpdGVtXSkgKyAnJScsCgkJCQkJCQkJdGV4dEFsaWduOiAnY2VudGVyJywKCQkJCQkJCQlvdmVyZmxvdzogJ2hpZGRlbicKCQkJCQkJCX0pOwoJCQkJCX0gLy8gZW5kIGlmIGdyaWQgPiAwCgkJCQl9IC8vIGVuZCBmb3IgbG9vcAoKCQkJCS8vIEFkZCB0aW1lem9uZSBvcHRpb25zCgkJCQl0aGlzLnRpbWV6b25lX3NlbGVjdCA9ICR0cC5maW5kKCcudWlfdHBpY2tlcl90aW1lem9uZScpLmFwcGVuZCgnPHNlbGVjdD48L3NlbGVjdD4nKS5maW5kKCJzZWxlY3QiKTsKCQkJCSQuZm4uYXBwZW5kLmFwcGx5KHRoaXMudGltZXpvbmVfc2VsZWN0LAoJCQkJJC5tYXAoby50aW1lem9uZUxpc3QsIGZ1bmN0aW9uKHZhbCwgaWR4KSB7CgkJCQkJcmV0dXJuICQoIjxvcHRpb24gLz4iKS52YWwodHlwZW9mIHZhbCA9PSAib2JqZWN0IiA/IHZhbC52YWx1ZSA6IHZhbCkudGV4dCh0eXBlb2YgdmFsID09ICJvYmplY3QiID8gdmFsLmxhYmVsIDogdmFsKTsKCQkJCX0pKTsKCQkJCWlmICh0eXBlb2YodGhpcy50aW1lem9uZSkgIT0gInVuZGVmaW5lZCIgJiYgdGhpcy50aW1lem9uZSAhPT0gbnVsbCAmJiB0aGlzLnRpbWV6b25lICE9PSAiIikgewoJCQkJCXZhciBsb2NhbF9kYXRlID0gbmV3IERhdGUodGhpcy5pbnN0LnNlbGVjdGVkWWVhciwgdGhpcy5pbnN0LnNlbGVjdGVkTW9udGgsIHRoaXMuaW5zdC5zZWxlY3RlZERheSwgMTIpOwoJCQkJCXZhciBsb2NhbF90aW1lem9uZSA9ICQudGltZXBpY2tlci50aW1lWm9uZU9mZnNldFN0cmluZyhsb2NhbF9kYXRlKTsKCQkJCQlpZiAobG9jYWxfdGltZXpvbmUgPT0gdGhpcy50aW1lem9uZSkgewoJCQkJCQlzZWxlY3RMb2NhbFRpbWVab25lKHRwX2luc3QpOwoJCQkJCX0gZWxzZSB7CgkJCQkJCXRoaXMudGltZXpvbmVfc2VsZWN0LnZhbCh0aGlzLnRpbWV6b25lKTsKCQkJCQl9CgkJCQl9IGVsc2UgewoJCQkJCWlmICh0eXBlb2YodGhpcy5ob3VyKSAhPSAidW5kZWZpbmVkIiAmJiB0aGlzLmhvdXIgIT09IG51bGwgJiYgdGhpcy5ob3VyICE9PSAiIikgewoJCQkJCQl0aGlzLnRpbWV6b25lX3NlbGVjdC52YWwoby5kZWZhdWx0VGltZXpvbmUpOwoJCQkJCX0gZWxzZSB7CgkJCQkJCXNlbGVjdExvY2FsVGltZVpvbmUodHBfaW5zdCk7CgkJCQkJfQoJCQkJfQoJCQkJdGhpcy50aW1lem9uZV9zZWxlY3QuY2hhbmdlKGZ1bmN0aW9uKCkgewoJCQkJCXRwX2luc3QuX2RlZmF1bHRzLnVzZUxvY2FsVGltZXpvbmUgPSBmYWxzZTsKCQkJCQl0cF9pbnN0Ll9vblRpbWVDaGFuZ2UoKTsKCQkJCX0pOwoJCQkJLy8gRW5kIHRpbWV6b25lIG9wdGlvbnMKCQkJCQoJCQkJLy8gaW5qZWN0IHRpbWVwaWNrZXIgaW50byBkYXRlcGlja2VyCgkJCQl2YXIgJGJ1dHRvblBhbmVsID0gJGRwLmZpbmQoJy51aS1kYXRlcGlja2VyLWJ1dHRvbnBhbmUnKTsKCQkJCWlmICgkYnV0dG9uUGFuZWwubGVuZ3RoKSB7CgkJCQkJJGJ1dHRvblBhbmVsLmJlZm9yZSgkdHApOwoJCQkJfSBlbHNlIHsKCQkJCQkkZHAuYXBwZW5kKCR0cCk7CgkJCQl9CgoJCQkJdGhpcy4kdGltZU9iaiA9ICR0cC5maW5kKCcudWlfdHBpY2tlcl90aW1lJyk7CgoJCQkJaWYgKHRoaXMuaW5zdCAhPT0gbnVsbCkgewoJCQkJCXZhciB0aW1lRGVmaW5lZCA9IHRoaXMudGltZURlZmluZWQ7CgkJCQkJdGhpcy5fb25UaW1lQ2hhbmdlKCk7CgkJCQkJdGhpcy50aW1lRGVmaW5lZCA9IHRpbWVEZWZpbmVkOwoJCQkJfQoKCQkJCS8vIHNsaWRlQWNjZXNzIGludGVncmF0aW9uOiBodHRwOi8vdHJlbnRyaWNoYXJkc29uLmNvbS8yMDExLzExLzExL2pxdWVyeS11aS1zbGlkZXJzLWFuZC10b3VjaC1hY2Nlc3NpYmlsaXR5LwoJCQkJaWYgKHRoaXMuX2RlZmF1bHRzLmFkZFNsaWRlckFjY2VzcykgewoJCQkJCXZhciBzbGlkZXJBY2Nlc3NBcmdzID0gdGhpcy5fZGVmYXVsdHMuc2xpZGVyQWNjZXNzQXJncywKCQkJCQkJcnRsID0gdGhpcy5fZGVmYXVsdHMuaXNSVEw7CgkJCQkJc2xpZGVyQWNjZXNzQXJncy5pc1JUTCA9IHJ0bDsKCQkJCQkJCgkJCQkJc2V0VGltZW91dChmdW5jdGlvbigpIHsgLy8gZml4IGZvciBpbmxpbmUgbW9kZQoJCQkJCQlpZiAoJHRwLmZpbmQoJy51aS1zbGlkZXItYWNjZXNzJykubGVuZ3RoID09PSAwKSB7CgkJCQkJCQkkdHAuZmluZCgnLnVpLXNsaWRlcjp2aXNpYmxlJykuc2xpZGVyQWNjZXNzKHNsaWRlckFjY2Vzc0FyZ3MpOwoKCQkJCQkJCS8vIGZpeCBhbnkgZ3JpZHMgc2luY2Ugc2xpZGVycyBhcmUgc2hvcnRlcgoJCQkJCQkJdmFyIHNsaWRlckFjY2Vzc1dpZHRoID0gJHRwLmZpbmQoJy51aS1zbGlkZXItYWNjZXNzOmVxKDApJykub3V0ZXJXaWR0aCh0cnVlKTsKCQkJCQkJCWlmIChzbGlkZXJBY2Nlc3NXaWR0aCkgewoJCQkJCQkJCSR0cC5maW5kKCd0YWJsZTp2aXNpYmxlJykuZWFjaChmdW5jdGlvbigpIHsKCQkJCQkJCQkJdmFyICRnID0gJCh0aGlzKSwKCQkJCQkJCQkJCW9sZFdpZHRoID0gJGcub3V0ZXJXaWR0aCgpLAoJCQkJCQkJCQkJb2xkTWFyZ2luTGVmdCA9ICRnLmNzcyhydGw/ICdtYXJnaW5SaWdodCc6J21hcmdpbkxlZnQnKS50b1N0cmluZygpLnJlcGxhY2UoJyUnLCAnJyksCgkJCQkJCQkJCQluZXdXaWR0aCA9IG9sZFdpZHRoIC0gc2xpZGVyQWNjZXNzV2lkdGgsCgkJCQkJCQkJCQluZXdNYXJnaW5MZWZ0ID0gKChvbGRNYXJnaW5MZWZ0ICogbmV3V2lkdGgpIC8gb2xkV2lkdGgpICsgJyUnLAoJCQkJCQkJCQkJY3NzID0geyB3aWR0aDogbmV3V2lkdGgsIG1hcmdpblJpZ2h0OiAwLCBtYXJnaW5MZWZ0OiAwIH07CgkJCQkJCQkJCWNzc1tydGw/ICdtYXJnaW5SaWdodCc6J21hcmdpbkxlZnQnXSA9IG5ld01hcmdpbkxlZnQ7CgkJCQkJCQkJCSRnLmNzcyhjc3MpOwoJCQkJCQkJCX0pOwoJCQkJCQkJfQoJCQkJCQl9CgkJCQkJfSwgMTApOwoJCQkJfQoJCQkJLy8gZW5kIHNsaWRlQWNjZXNzIGludGVncmF0aW9uCgoJCQl9CgkJfSwKCgkJLyoKCQkqIFRoaXMgZnVuY3Rpb24gdHJpZXMgdG8gbGltaXQgdGhlIGFiaWxpdHkgdG8gZ28gb3V0c2lkZSB0aGUKCQkqIG1pbi9tYXggZGF0ZSByYW5nZQoJCSovCgkJX2xpbWl0TWluTWF4RGF0ZVRpbWU6IGZ1bmN0aW9uKGRwX2luc3QsIGFkanVzdFNsaWRlcnMpIHsKCQkJdmFyIG8gPSB0aGlzLl9kZWZhdWx0cywKCQkJCWRwX2RhdGUgPSBuZXcgRGF0ZShkcF9pbnN0LnNlbGVjdGVkWWVhciwgZHBfaW5zdC5zZWxlY3RlZE1vbnRoLCBkcF9pbnN0LnNlbGVjdGVkRGF5KTsKCgkJCWlmICghdGhpcy5fZGVmYXVsdHMuc2hvd1RpbWVwaWNrZXIpIHsKCQkJCXJldHVybjsKCQkJfSAvLyBObyB0aW1lIHNvIG5vdGhpbmcgdG8gY2hlY2sgaGVyZQoKCQkJaWYgKCQuZGF0ZXBpY2tlci5fZ2V0KGRwX2luc3QsICdtaW5EYXRlVGltZScpICE9PSBudWxsICYmICQuZGF0ZXBpY2tlci5fZ2V0KGRwX2luc3QsICdtaW5EYXRlVGltZScpICE9PSB1bmRlZmluZWQgJiYgZHBfZGF0ZSkgewoJCQkJdmFyIG1pbkRhdGVUaW1lID0gJC5kYXRlcGlja2VyLl9nZXQoZHBfaW5zdCwgJ21pbkRhdGVUaW1lJyksCgkJCQkJbWluRGF0ZVRpbWVEYXRlID0gbmV3IERhdGUobWluRGF0ZVRpbWUuZ2V0RnVsbFllYXIoKSwgbWluRGF0ZVRpbWUuZ2V0TW9udGgoKSwgbWluRGF0ZVRpbWUuZ2V0RGF0ZSgpLCAwLCAwLCAwLCAwKTsKCgkJCQlpZiAodGhpcy5ob3VyTWluT3JpZ2luYWwgPT09IG51bGwgfHwgdGhpcy5taW51dGVNaW5PcmlnaW5hbCA9PT0gbnVsbCB8fCB0aGlzLnNlY29uZE1pbk9yaWdpbmFsID09PSBudWxsIHx8IHRoaXMubWlsbGlzZWNNaW5PcmlnaW5hbCA9PT0gbnVsbCkgewoJCQkJCXRoaXMuaG91ck1pbk9yaWdpbmFsID0gby5ob3VyTWluOwoJCQkJCXRoaXMubWludXRlTWluT3JpZ2luYWwgPSBvLm1pbnV0ZU1pbjsKCQkJCQl0aGlzLnNlY29uZE1pbk9yaWdpbmFsID0gby5zZWNvbmRNaW47CgkJCQkJdGhpcy5taWxsaXNlY01pbk9yaWdpbmFsID0gby5taWxsaXNlY01pbjsKCQkJCX0KCgkJCQlpZiAoZHBfaW5zdC5zZXR0aW5ncy50aW1lT25seSB8fCBtaW5EYXRlVGltZURhdGUuZ2V0VGltZSgpID09IGRwX2RhdGUuZ2V0VGltZSgpKSB7CgkJCQkJdGhpcy5fZGVmYXVsdHMuaG91ck1pbiA9IG1pbkRhdGVUaW1lLmdldEhvdXJzKCk7CgkJCQkJaWYgKHRoaXMuaG91ciA8PSB0aGlzLl9kZWZhdWx0cy5ob3VyTWluKSB7CgkJCQkJCXRoaXMuaG91ciA9IHRoaXMuX2RlZmF1bHRzLmhvdXJNaW47CgkJCQkJCXRoaXMuX2RlZmF1bHRzLm1pbnV0ZU1pbiA9IG1pbkRhdGVUaW1lLmdldE1pbnV0ZXMoKTsKCQkJCQkJaWYgKHRoaXMubWludXRlIDw9IHRoaXMuX2RlZmF1bHRzLm1pbnV0ZU1pbikgewoJCQkJCQkJdGhpcy5taW51dGUgPSB0aGlzLl9kZWZhdWx0cy5taW51dGVNaW47CgkJCQkJCQl0aGlzLl9kZWZhdWx0cy5zZWNvbmRNaW4gPSBtaW5EYXRlVGltZS5nZXRTZWNvbmRzKCk7CgkJCQkJCQlpZiAodGhpcy5zZWNvbmQgPD0gdGhpcy5fZGVmYXVsdHMuc2Vjb25kTWluKSB7CgkJCQkJCQkJdGhpcy5zZWNvbmQgPSB0aGlzLl9kZWZhdWx0cy5zZWNvbmRNaW47CgkJCQkJCQkJdGhpcy5fZGVmYXVsdHMubWlsbGlzZWNNaW4gPSBtaW5EYXRlVGltZS5nZXRNaWxsaXNlY29uZHMoKTsKCQkJCQkJCX0gZWxzZSB7CgkJCQkJCQkJaWYgKHRoaXMubWlsbGlzZWMgPCB0aGlzLl9kZWZhdWx0cy5taWxsaXNlY01pbikgewoJCQkJCQkJCQl0aGlzLm1pbGxpc2VjID0gdGhpcy5fZGVmYXVsdHMubWlsbGlzZWNNaW47CgkJCQkJCQkJfQoJCQkJCQkJCXRoaXMuX2RlZmF1bHRzLm1pbGxpc2VjTWluID0gdGhpcy5taWxsaXNlY01pbk9yaWdpbmFsOwoJCQkJCQkJfQoJCQkJCQl9IGVsc2UgewoJCQkJCQkJdGhpcy5fZGVmYXVsdHMuc2Vjb25kTWluID0gdGhpcy5zZWNvbmRNaW5PcmlnaW5hbDsKCQkJCQkJCXRoaXMuX2RlZmF1bHRzLm1pbGxpc2VjTWluID0gdGhpcy5taWxsaXNlY01pbk9yaWdpbmFsOwoJCQkJCQl9CgkJCQkJfSBlbHNlIHsKCQkJCQkJdGhpcy5fZGVmYXVsdHMubWludXRlTWluID0gdGhpcy5taW51dGVNaW5PcmlnaW5hbDsKCQkJCQkJdGhpcy5fZGVmYXVsdHMuc2Vjb25kTWluID0gdGhpcy5zZWNvbmRNaW5PcmlnaW5hbDsKCQkJCQkJdGhpcy5fZGVmYXVsdHMubWlsbGlzZWNNaW4gPSB0aGlzLm1pbGxpc2VjTWluT3JpZ2luYWw7CgkJCQkJfQoJCQkJfSBlbHNlIHsKCQkJCQl0aGlzLl9kZWZhdWx0cy5ob3VyTWluID0gdGhpcy5ob3VyTWluT3JpZ2luYWw7CgkJCQkJdGhpcy5fZGVmYXVsdHMubWludXRlTWluID0gdGhpcy5taW51dGVNaW5PcmlnaW5hbDsKCQkJCQl0aGlzLl9kZWZhdWx0cy5zZWNvbmRNaW4gPSB0aGlzLnNlY29uZE1pbk9yaWdpbmFsOwoJCQkJCXRoaXMuX2RlZmF1bHRzLm1pbGxpc2VjTWluID0gdGhpcy5taWxsaXNlY01pbk9yaWdpbmFsOwoJCQkJfQoJCQl9CgoJCQlpZiAoJC5kYXRlcGlja2VyLl9nZXQoZHBfaW5zdCwgJ21heERhdGVUaW1lJykgIT09IG51bGwgJiYgJC5kYXRlcGlja2VyLl9nZXQoZHBfaW5zdCwgJ21heERhdGVUaW1lJykgIT09IHVuZGVmaW5lZCAmJiBkcF9kYXRlKSB7CgkJCQl2YXIgbWF4RGF0ZVRpbWUgPSAkLmRhdGVwaWNrZXIuX2dldChkcF9pbnN0LCAnbWF4RGF0ZVRpbWUnKSwKCQkJCQltYXhEYXRlVGltZURhdGUgPSBuZXcgRGF0ZShtYXhEYXRlVGltZS5nZXRGdWxsWWVhcigpLCBtYXhEYXRlVGltZS5nZXRNb250aCgpLCBtYXhEYXRlVGltZS5nZXREYXRlKCksIDAsIDAsIDAsIDApOwoKCQkJCWlmICh0aGlzLmhvdXJNYXhPcmlnaW5hbCA9PT0gbnVsbCB8fCB0aGlzLm1pbnV0ZU1heE9yaWdpbmFsID09PSBudWxsIHx8IHRoaXMuc2Vjb25kTWF4T3JpZ2luYWwgPT09IG51bGwpIHsKCQkJCQl0aGlzLmhvdXJNYXhPcmlnaW5hbCA9IG8uaG91ck1heDsKCQkJCQl0aGlzLm1pbnV0ZU1heE9yaWdpbmFsID0gby5taW51dGVNYXg7CgkJCQkJdGhpcy5zZWNvbmRNYXhPcmlnaW5hbCA9IG8uc2Vjb25kTWF4OwoJCQkJCXRoaXMubWlsbGlzZWNNYXhPcmlnaW5hbCA9IG8ubWlsbGlzZWNNYXg7CgkJCQl9CgoJCQkJaWYgKGRwX2luc3Quc2V0dGluZ3MudGltZU9ubHkgfHwgbWF4RGF0ZVRpbWVEYXRlLmdldFRpbWUoKSA9PSBkcF9kYXRlLmdldFRpbWUoKSkgewoJCQkJCXRoaXMuX2RlZmF1bHRzLmhvdXJNYXggPSBtYXhEYXRlVGltZS5nZXRIb3VycygpOwoJCQkJCWlmICh0aGlzLmhvdXIgPj0gdGhpcy5fZGVmYXVsdHMuaG91ck1heCkgewoJCQkJCQl0aGlzLmhvdXIgPSB0aGlzLl9kZWZhdWx0cy5ob3VyTWF4OwoJCQkJCQl0aGlzLl9kZWZhdWx0cy5taW51dGVNYXggPSBtYXhEYXRlVGltZS5nZXRNaW51dGVzKCk7CgkJCQkJCWlmICh0aGlzLm1pbnV0ZSA+PSB0aGlzLl9kZWZhdWx0cy5taW51dGVNYXgpIHsKCQkJCQkJCXRoaXMubWludXRlID0gdGhpcy5fZGVmYXVsdHMubWludXRlTWF4OwoJCQkJCQkJdGhpcy5fZGVmYXVsdHMuc2Vjb25kTWF4ID0gbWF4RGF0ZVRpbWUuZ2V0U2Vjb25kcygpOwoJCQkJCQl9IGVsc2UgaWYgKHRoaXMuc2Vjb25kID49IHRoaXMuX2RlZmF1bHRzLnNlY29uZE1heCkgewoJCQkJCQkJdGhpcy5zZWNvbmQgPSB0aGlzLl9kZWZhdWx0cy5zZWNvbmRNYXg7CgkJCQkJCQl0aGlzLl9kZWZhdWx0cy5taWxsaXNlY01heCA9IG1heERhdGVUaW1lLmdldE1pbGxpc2Vjb25kcygpOwoJCQkJCQl9IGVsc2UgewoJCQkJCQkJaWYgKHRoaXMubWlsbGlzZWMgPiB0aGlzLl9kZWZhdWx0cy5taWxsaXNlY01heCkgewoJCQkJCQkJCXRoaXMubWlsbGlzZWMgPSB0aGlzLl9kZWZhdWx0cy5taWxsaXNlY01heDsKCQkJCQkJCX0KCQkJCQkJCXRoaXMuX2RlZmF1bHRzLm1pbGxpc2VjTWF4ID0gdGhpcy5taWxsaXNlY01heE9yaWdpbmFsOwoJCQkJCQl9CgkJCQkJfSBlbHNlIHsKCQkJCQkJdGhpcy5fZGVmYXVsdHMubWludXRlTWF4ID0gdGhpcy5taW51dGVNYXhPcmlnaW5hbDsKCQkJCQkJdGhpcy5fZGVmYXVsdHMuc2Vjb25kTWF4ID0gdGhpcy5zZWNvbmRNYXhPcmlnaW5hbDsKCQkJCQkJdGhpcy5fZGVmYXVsdHMubWlsbGlzZWNNYXggPSB0aGlzLm1pbGxpc2VjTWF4T3JpZ2luYWw7CgkJCQkJfQoJCQkJfSBlbHNlIHsKCQkJCQl0aGlzLl9kZWZhdWx0cy5ob3VyTWF4ID0gdGhpcy5ob3VyTWF4T3JpZ2luYWw7CgkJCQkJdGhpcy5fZGVmYXVsdHMubWludXRlTWF4ID0gdGhpcy5taW51dGVNYXhPcmlnaW5hbDsKCQkJCQl0aGlzLl9kZWZhdWx0cy5zZWNvbmRNYXggPSB0aGlzLnNlY29uZE1heE9yaWdpbmFsOwoJCQkJCXRoaXMuX2RlZmF1bHRzLm1pbGxpc2VjTWF4ID0gdGhpcy5taWxsaXNlY01heE9yaWdpbmFsOwoJCQkJfQoJCQl9CgoJCQlpZiAoYWRqdXN0U2xpZGVycyAhPT0gdW5kZWZpbmVkICYmIGFkanVzdFNsaWRlcnMgPT09IHRydWUpIHsKCQkJCXZhciBob3VyTWF4ID0gcGFyc2VJbnQoKHRoaXMuX2RlZmF1bHRzLmhvdXJNYXggLSAoKHRoaXMuX2RlZmF1bHRzLmhvdXJNYXggLSB0aGlzLl9kZWZhdWx0cy5ob3VyTWluKSAlIHRoaXMuX2RlZmF1bHRzLnN0ZXBIb3VyKSksIDEwKSwKCQkJCQltaW5NYXggPSBwYXJzZUludCgodGhpcy5fZGVmYXVsdHMubWludXRlTWF4IC0gKCh0aGlzLl9kZWZhdWx0cy5taW51dGVNYXggLSB0aGlzLl9kZWZhdWx0cy5taW51dGVNaW4pICUgdGhpcy5fZGVmYXVsdHMuc3RlcE1pbnV0ZSkpLCAxMCksCgkJCQkJc2VjTWF4ID0gcGFyc2VJbnQoKHRoaXMuX2RlZmF1bHRzLnNlY29uZE1heCAtICgodGhpcy5fZGVmYXVsdHMuc2Vjb25kTWF4IC0gdGhpcy5fZGVmYXVsdHMuc2Vjb25kTWluKSAlIHRoaXMuX2RlZmF1bHRzLnN0ZXBTZWNvbmQpKSwgMTApLAoJCQkJCW1pbGxpc2VjTWF4ID0gcGFyc2VJbnQoKHRoaXMuX2RlZmF1bHRzLm1pbGxpc2VjTWF4IC0gKCh0aGlzLl9kZWZhdWx0cy5taWxsaXNlY01heCAtIHRoaXMuX2RlZmF1bHRzLm1pbGxpc2VjTWluKSAlIHRoaXMuX2RlZmF1bHRzLnN0ZXBNaWxsaXNlYykpLCAxMCk7CgoJCQkJaWYgKHRoaXMuaG91cl9zbGlkZXIpIHsKCQkJCQl0aGlzLmNvbnRyb2wub3B0aW9ucyh0aGlzLCB0aGlzLmhvdXJfc2xpZGVyLCAnaG91cicsIHsgbWluOiB0aGlzLl9kZWZhdWx0cy5ob3VyTWluLCBtYXg6IGhvdXJNYXggfSk7CgkJCQkJdGhpcy5jb250cm9sLnZhbHVlKHRoaXMsIHRoaXMuaG91cl9zbGlkZXIsICdob3VyJywgdGhpcy5ob3VyKTsKCQkJCX0KCQkJCWlmICh0aGlzLm1pbnV0ZV9zbGlkZXIpIHsKCQkJCQl0aGlzLmNvbnRyb2wub3B0aW9ucyh0aGlzLCB0aGlzLm1pbnV0ZV9zbGlkZXIsICdtaW51dGUnLCB7IG1pbjogdGhpcy5fZGVmYXVsdHMubWludXRlTWluLCBtYXg6IG1pbk1heCB9KTsKCQkJCQl0aGlzLmNvbnRyb2wudmFsdWUodGhpcywgdGhpcy5taW51dGVfc2xpZGVyLCAnbWludXRlJywgdGhpcy5taW51dGUpOwoJCQkJfQoJCQkJaWYgKHRoaXMuc2Vjb25kX3NsaWRlcikgewoJCQkJCXRoaXMuY29udHJvbC5vcHRpb25zKHRoaXMsIHRoaXMuc2Vjb25kX3NsaWRlciwgJ3NlY29uZCcsIHsgbWluOiB0aGlzLl9kZWZhdWx0cy5zZWNvbmRNaW4sIG1heDogc2VjTWF4IH0pOwoJCQkJCXRoaXMuY29udHJvbC52YWx1ZSh0aGlzLCB0aGlzLnNlY29uZF9zbGlkZXIsICdzZWNvbmQnLCB0aGlzLnNlY29uZCk7CgkJCQl9CgkJCQlpZiAodGhpcy5taWxsaXNlY19zbGlkZXIpIHsKCQkJCQl0aGlzLmNvbnRyb2wub3B0aW9ucyh0aGlzLCB0aGlzLm1pbGxpc2VjX3NsaWRlciwgJ21pbGxpc2VjJywgeyBtaW46IHRoaXMuX2RlZmF1bHRzLm1pbGxpc2VjTWluLCBtYXg6IG1pbGxpc2VjTWF4IH0pOwoJCQkJCXRoaXMuY29udHJvbC52YWx1ZSh0aGlzLCB0aGlzLm1pbGxpc2VjX3NsaWRlciwgJ21pbGxpc2VjJywgdGhpcy5taWxsaXNlYyk7CgkJCQl9CgkJCX0KCgkJfSwKCgkJLyoKCQkqIHdoZW4gYSBzbGlkZXIgbW92ZXMsIHNldCB0aGUgaW50ZXJuYWwgdGltZS4uLgoJCSogb24gdGltZSBjaGFuZ2UgaXMgYWxzbyBjYWxsZWQgd2hlbiB0aGUgdGltZSBpcyB1cGRhdGVkIGluIHRoZSB0ZXh0IGZpZWxkCgkJKi8KCQlfb25UaW1lQ2hhbmdlOiBmdW5jdGlvbigpIHsKCQkJdmFyIGhvdXIgPSAodGhpcy5ob3VyX3NsaWRlcikgPyB0aGlzLmNvbnRyb2wudmFsdWUodGhpcywgdGhpcy5ob3VyX3NsaWRlciwgJ2hvdXInKSA6IGZhbHNlLAoJCQkJbWludXRlID0gKHRoaXMubWludXRlX3NsaWRlcikgPyB0aGlzLmNvbnRyb2wudmFsdWUodGhpcywgdGhpcy5taW51dGVfc2xpZGVyLCAnbWludXRlJykgOiBmYWxzZSwKCQkJCXNlY29uZCA9ICh0aGlzLnNlY29uZF9zbGlkZXIpID8gdGhpcy5jb250cm9sLnZhbHVlKHRoaXMsIHRoaXMuc2Vjb25kX3NsaWRlciwgJ3NlY29uZCcpIDogZmFsc2UsCgkJCQltaWxsaXNlYyA9ICh0aGlzLm1pbGxpc2VjX3NsaWRlcikgPyB0aGlzLmNvbnRyb2wudmFsdWUodGhpcywgdGhpcy5taWxsaXNlY19zbGlkZXIsICdtaWxsaXNlYycpIDogZmFsc2UsCgkJCQl0aW1lem9uZSA9ICh0aGlzLnRpbWV6b25lX3NlbGVjdCkgPyB0aGlzLnRpbWV6b25lX3NlbGVjdC52YWwoKSA6IGZhbHNlLAoJCQkJbyA9IHRoaXMuX2RlZmF1bHRzLAoJCQkJcGlja2VyVGltZUZvcm1hdCA9IG8ucGlja2VyVGltZUZvcm1hdCB8fCBvLnRpbWVGb3JtYXQsCgkJCQlwaWNrZXJUaW1lU3VmZml4ID0gby5waWNrZXJUaW1lU3VmZml4IHx8IG8udGltZVN1ZmZpeDsKCgkJCWlmICh0eXBlb2YoaG91cikgPT0gJ29iamVjdCcpIHsKCQkJCWhvdXIgPSBmYWxzZTsKCQkJfQoJCQlpZiAodHlwZW9mKG1pbnV0ZSkgPT0gJ29iamVjdCcpIHsKCQkJCW1pbnV0ZSA9IGZhbHNlOwoJCQl9CgkJCWlmICh0eXBlb2Yoc2Vjb25kKSA9PSAnb2JqZWN0JykgewoJCQkJc2Vjb25kID0gZmFsc2U7CgkJCX0KCQkJaWYgKHR5cGVvZihtaWxsaXNlYykgPT0gJ29iamVjdCcpIHsKCQkJCW1pbGxpc2VjID0gZmFsc2U7CgkJCX0KCQkJaWYgKHR5cGVvZih0aW1lem9uZSkgPT0gJ29iamVjdCcpIHsKCQkJCXRpbWV6b25lID0gZmFsc2U7CgkJCX0KCgkJCWlmIChob3VyICE9PSBmYWxzZSkgewoJCQkJaG91ciA9IHBhcnNlSW50KGhvdXIsIDEwKTsKCQkJfQoJCQlpZiAobWludXRlICE9PSBmYWxzZSkgewoJCQkJbWludXRlID0gcGFyc2VJbnQobWludXRlLCAxMCk7CgkJCX0KCQkJaWYgKHNlY29uZCAhPT0gZmFsc2UpIHsKCQkJCXNlY29uZCA9IHBhcnNlSW50KHNlY29uZCwgMTApOwoJCQl9CgkJCWlmIChtaWxsaXNlYyAhPT0gZmFsc2UpIHsKCQkJCW1pbGxpc2VjID0gcGFyc2VJbnQobWlsbGlzZWMsIDEwKTsKCQkJfQoKCQkJdmFyIGFtcG0gPSBvW2hvdXIgPCAxMiA/ICdhbU5hbWVzJyA6ICdwbU5hbWVzJ11bMF07CgoJCQkvLyBJZiB0aGUgdXBkYXRlIHdhcyBkb25lIGluIHRoZSBpbnB1dCBmaWVsZCwgdGhlIGlucHV0IGZpZWxkIHNob3VsZCBub3QgYmUgdXBkYXRlZC4KCQkJLy8gSWYgdGhlIHVwZGF0ZSB3YXMgZG9uZSB1c2luZyB0aGUgc2xpZGVycywgdXBkYXRlIHRoZSBpbnB1dCBmaWVsZC4KCQkJdmFyIGhhc0NoYW5nZWQgPSAoaG91ciAhPSB0aGlzLmhvdXIgfHwgbWludXRlICE9IHRoaXMubWludXRlIHx8IHNlY29uZCAhPSB0aGlzLnNlY29uZCB8fCBtaWxsaXNlYyAhPSB0aGlzLm1pbGxpc2VjIAoJCQkJCQkJCXx8ICh0aGlzLmFtcG0ubGVuZ3RoID4gMCAmJiAoaG91ciA8IDEyKSAhPSAoJC5pbkFycmF5KHRoaXMuYW1wbS50b1VwcGVyQ2FzZSgpLCB0aGlzLmFtTmFtZXMpICE9PSAtMSkpIAoJCQkJCQkJCXx8ICgodGhpcy50aW1lem9uZSA9PT0gbnVsbCAmJiB0aW1lem9uZSAhPSB0aGlzLmRlZmF1bHRUaW1lem9uZSkgfHwgKHRoaXMudGltZXpvbmUgIT09IG51bGwgJiYgdGltZXpvbmUgIT0gdGhpcy50aW1lem9uZSkpKTsKCgkJCWlmIChoYXNDaGFuZ2VkKSB7CgoJCQkJaWYgKGhvdXIgIT09IGZhbHNlKSB7CgkJCQkJdGhpcy5ob3VyID0gaG91cjsKCQkJCX0KCQkJCWlmIChtaW51dGUgIT09IGZhbHNlKSB7CgkJCQkJdGhpcy5taW51dGUgPSBtaW51dGU7CgkJCQl9CgkJCQlpZiAoc2Vjb25kICE9PSBmYWxzZSkgewoJCQkJCXRoaXMuc2Vjb25kID0gc2Vjb25kOwoJCQkJfQoJCQkJaWYgKG1pbGxpc2VjICE9PSBmYWxzZSkgewoJCQkJCXRoaXMubWlsbGlzZWMgPSBtaWxsaXNlYzsKCQkJCX0KCQkJCWlmICh0aW1lem9uZSAhPT0gZmFsc2UpIHsKCQkJCQl0aGlzLnRpbWV6b25lID0gdGltZXpvbmU7CgkJCQl9CgoJCQkJaWYgKCF0aGlzLmluc3QpIHsKCQkJCQl0aGlzLmluc3QgPSAkLmRhdGVwaWNrZXIuX2dldEluc3QodGhpcy4kaW5wdXRbMF0pOwoJCQkJfQoKCQkJCXRoaXMuX2xpbWl0TWluTWF4RGF0ZVRpbWUodGhpcy5pbnN0LCB0cnVlKTsKCQkJfQoJCQlpZiAodXNlQW1wbShvLnRpbWVGb3JtYXQpKSB7CgkJCQl0aGlzLmFtcG0gPSBhbXBtOwoJCQl9CgoJCQkvLyBVcGRhdGVzIHRoZSB0aW1lIHdpdGhpbiB0aGUgdGltZXBpY2tlcgoJCQl0aGlzLmZvcm1hdHRlZFRpbWUgPSAkLmRhdGVwaWNrZXIuZm9ybWF0VGltZShvLnRpbWVGb3JtYXQsIHRoaXMsIG8pOwoJCQlpZiAodGhpcy4kdGltZU9iaikgewoJCQkJaWYocGlja2VyVGltZUZvcm1hdCA9PT0gby50aW1lRm9ybWF0KXsKCQkJCQl0aGlzLiR0aW1lT2JqLnRleHQodGhpcy5mb3JtYXR0ZWRUaW1lICsgcGlja2VyVGltZVN1ZmZpeCk7CgkJCQl9CgkJCQllbHNlewoJCQkJCXRoaXMuJHRpbWVPYmoudGV4dCgkLmRhdGVwaWNrZXIuZm9ybWF0VGltZShwaWNrZXJUaW1lRm9ybWF0LCB0aGlzLCBvKSArIHBpY2tlclRpbWVTdWZmaXgpOwoJCQkJfQoJCQl9CgoJCQl0aGlzLnRpbWVEZWZpbmVkID0gdHJ1ZTsKCQkJaWYgKGhhc0NoYW5nZWQpIHsKCQkJCXRoaXMuX3VwZGF0ZURhdGVUaW1lKCk7CgkJCX0KCQl9LAoKCQkvKgoJCSogY2FsbCBjdXN0b20gb25TZWxlY3QuCgkJKiBiaW5kIHRvIHNsaWRlcnMgc2xpZGVzdG9wLCBhbmQgZ3JpZCBjbGljay4KCQkqLwoJCV9vblNlbGVjdEhhbmRsZXI6IGZ1bmN0aW9uKCkgewoJCQl2YXIgb25TZWxlY3QgPSB0aGlzLl9kZWZhdWx0cy5vblNlbGVjdCB8fCB0aGlzLmluc3Quc2V0dGluZ3Mub25TZWxlY3Q7CgkJCXZhciBpbnB1dEVsID0gdGhpcy4kaW5wdXQgPyB0aGlzLiRpbnB1dFswXSA6IG51bGw7CgkJCWlmIChvblNlbGVjdCAmJiBpbnB1dEVsKSB7CgkJCQlvblNlbGVjdC5hcHBseShpbnB1dEVsLCBbdGhpcy5mb3JtYXR0ZWREYXRlVGltZSwgdGhpc10pOwoJCQl9CgkJfSwKCgkJLyoKCQkqIHVwZGF0ZSBvdXIgaW5wdXQgd2l0aCB0aGUgbmV3IGRhdGUgdGltZS4uCgkJKi8KCQlfdXBkYXRlRGF0ZVRpbWU6IGZ1bmN0aW9uKGRwX2luc3QpIHsKCQkJZHBfaW5zdCA9IHRoaXMuaW5zdCB8fCBkcF9pbnN0OwoJCQl2YXIgZHQgPSAkLmRhdGVwaWNrZXIuX2RheWxpZ2h0U2F2aW5nQWRqdXN0KG5ldyBEYXRlKGRwX2luc3Quc2VsZWN0ZWRZZWFyLCBkcF9pbnN0LnNlbGVjdGVkTW9udGgsIGRwX2luc3Quc2VsZWN0ZWREYXkpKSwKCQkJCWRhdGVGbXQgPSAkLmRhdGVwaWNrZXIuX2dldChkcF9pbnN0LCAnZGF0ZUZvcm1hdCcpLAoJCQkJZm9ybWF0Q2ZnID0gJC5kYXRlcGlja2VyLl9nZXRGb3JtYXRDb25maWcoZHBfaW5zdCksCgkJCQl0aW1lQXZhaWxhYmxlID0gZHQgIT09IG51bGwgJiYgdGhpcy50aW1lRGVmaW5lZDsKCQkJdGhpcy5mb3JtYXR0ZWREYXRlID0gJC5kYXRlcGlja2VyLmZvcm1hdERhdGUoZGF0ZUZtdCwgKGR0ID09PSBudWxsID8gbmV3IERhdGUoKSA6IGR0KSwgZm9ybWF0Q2ZnKTsKCQkJdmFyIGZvcm1hdHRlZERhdGVUaW1lID0gdGhpcy5mb3JtYXR0ZWREYXRlOwoKCQkJLyoKCQkJKiByZW1vdmUgZm9sbG93aW5nIGxpbmVzIHRvIGZvcmNlIGV2ZXJ5IGNoYW5nZXMgaW4gZGF0ZSBwaWNrZXIgdG8gY2hhbmdlIHRoZSBpbnB1dCB2YWx1ZQoJCQkqIEJ1ZyBkZXNjcmlwdGlvbnM6IHdoZW4gYW4gaW5wdXQgZmllbGQgaGFzIGEgZGVmYXVsdCB2YWx1ZSwgYW5kIGNsaWNrIG9uIHRoZSBmaWVsZCB0byBwb3AgdXAgdGhlIGRhdGUgcGlja2VyLiAKCQkJKiBJZiB0aGUgdXNlciBtYW51YWxseSBlbXB0eSB0aGUgdmFsdWUgaW4gdGhlIGlucHV0IGZpZWxkLCB0aGUgZGF0ZSBwaWNrZXIgd2lsbCBuZXZlciBjaGFuZ2Ugc2VsZWN0ZWQgdmFsdWUuCgkJCSovCgkJCS8vaWYgKGRwX2luc3QubGFzdFZhbCAhPT0gdW5kZWZpbmVkICYmIChkcF9pbnN0Lmxhc3RWYWwubGVuZ3RoID4gMCAmJiB0aGlzLiRpbnB1dC52YWwoKS5sZW5ndGggPT09IDApKSB7CgkJCS8vCXJldHVybjsKCQkJLy99CgoJCQlpZiAodGhpcy5fZGVmYXVsdHMudGltZU9ubHkgPT09IHRydWUpIHsKCQkJCWZvcm1hdHRlZERhdGVUaW1lID0gdGhpcy5mb3JtYXR0ZWRUaW1lOwoJCQl9IGVsc2UgaWYgKHRoaXMuX2RlZmF1bHRzLnRpbWVPbmx5ICE9PSB0cnVlICYmICh0aGlzLl9kZWZhdWx0cy5hbHdheXNTZXRUaW1lIHx8IHRpbWVBdmFpbGFibGUpKSB7CgkJCQlmb3JtYXR0ZWREYXRlVGltZSArPSB0aGlzLl9kZWZhdWx0cy5zZXBhcmF0b3IgKyB0aGlzLmZvcm1hdHRlZFRpbWUgKyB0aGlzLl9kZWZhdWx0cy50aW1lU3VmZml4OwoJCQl9CgoJCQl0aGlzLmZvcm1hdHRlZERhdGVUaW1lID0gZm9ybWF0dGVkRGF0ZVRpbWU7CgoJCQlpZiAoIXRoaXMuX2RlZmF1bHRzLnNob3dUaW1lcGlja2VyKSB7CgkJCQl0aGlzLiRpbnB1dC52YWwodGhpcy5mb3JtYXR0ZWREYXRlKTsKCQkJfSBlbHNlIGlmICh0aGlzLiRhbHRJbnB1dCAmJiB0aGlzLl9kZWZhdWx0cy5hbHRGaWVsZFRpbWVPbmx5ID09PSB0cnVlKSB7CgkJCQl0aGlzLiRhbHRJbnB1dC52YWwodGhpcy5mb3JtYXR0ZWRUaW1lKTsKCQkJCXRoaXMuJGlucHV0LnZhbCh0aGlzLmZvcm1hdHRlZERhdGUpOwoJCQl9IGVsc2UgaWYgKHRoaXMuJGFsdElucHV0KSB7CgkJCQl0aGlzLiRpbnB1dC52YWwoZm9ybWF0dGVkRGF0ZVRpbWUpOwoJCQkJdmFyIGFsdEZvcm1hdHRlZERhdGVUaW1lID0gJycsCgkJCQkJYWx0U2VwYXJhdG9yID0gdGhpcy5fZGVmYXVsdHMuYWx0U2VwYXJhdG9yID8gdGhpcy5fZGVmYXVsdHMuYWx0U2VwYXJhdG9yIDogdGhpcy5fZGVmYXVsdHMuc2VwYXJhdG9yLAoJCQkJCWFsdFRpbWVTdWZmaXggPSB0aGlzLl9kZWZhdWx0cy5hbHRUaW1lU3VmZml4ID8gdGhpcy5fZGVmYXVsdHMuYWx0VGltZVN1ZmZpeCA6IHRoaXMuX2RlZmF1bHRzLnRpbWVTdWZmaXg7CgoJCQkJaWYgKHRoaXMuX2RlZmF1bHRzLmFsdEZvcm1hdCkgYWx0Rm9ybWF0dGVkRGF0ZVRpbWUgPSAkLmRhdGVwaWNrZXIuZm9ybWF0RGF0ZSh0aGlzLl9kZWZhdWx0cy5hbHRGb3JtYXQsIChkdCA9PT0gbnVsbCA/IG5ldyBEYXRlKCkgOiBkdCksIGZvcm1hdENmZyk7CgkJCQllbHNlIGFsdEZvcm1hdHRlZERhdGVUaW1lID0gdGhpcy5mb3JtYXR0ZWREYXRlOwoJCQkJaWYgKGFsdEZvcm1hdHRlZERhdGVUaW1lKSBhbHRGb3JtYXR0ZWREYXRlVGltZSArPSBhbHRTZXBhcmF0b3I7CgkJCQlpZiAodGhpcy5fZGVmYXVsdHMuYWx0VGltZUZvcm1hdCkgYWx0Rm9ybWF0dGVkRGF0ZVRpbWUgKz0gJC5kYXRlcGlja2VyLmZvcm1hdFRpbWUodGhpcy5fZGVmYXVsdHMuYWx0VGltZUZvcm1hdCwgdGhpcywgdGhpcy5fZGVmYXVsdHMpICsgYWx0VGltZVN1ZmZpeDsKCQkJCWVsc2UgYWx0Rm9ybWF0dGVkRGF0ZVRpbWUgKz0gdGhpcy5mb3JtYXR0ZWRUaW1lICsgYWx0VGltZVN1ZmZpeDsKCQkJCXRoaXMuJGFsdElucHV0LnZhbChhbHRGb3JtYXR0ZWREYXRlVGltZSk7CgkJCX0gZWxzZSB7CgkJCQl0aGlzLiRpbnB1dC52YWwoZm9ybWF0dGVkRGF0ZVRpbWUpOwoJCQl9CgoJCQl0aGlzLiRpbnB1dC50cmlnZ2VyKCJjaGFuZ2UiKTsKCQl9LAoKCQlfb25Gb2N1czogZnVuY3Rpb24oKSB7CgkJCWlmICghdGhpcy4kaW5wdXQudmFsKCkgJiYgdGhpcy5fZGVmYXVsdHMuZGVmYXVsdFZhbHVlKSB7CgkJCQl0aGlzLiRpbnB1dC52YWwodGhpcy5fZGVmYXVsdHMuZGVmYXVsdFZhbHVlKTsKCQkJCXZhciBpbnN0ID0gJC5kYXRlcGlja2VyLl9nZXRJbnN0KHRoaXMuJGlucHV0LmdldCgwKSksCgkJCQkJdHBfaW5zdCA9ICQuZGF0ZXBpY2tlci5fZ2V0KGluc3QsICd0aW1lcGlja2VyJyk7CgkJCQlpZiAodHBfaW5zdCkgewoJCQkJCWlmICh0cF9pbnN0Ll9kZWZhdWx0cy50aW1lT25seSAmJiAoaW5zdC5pbnB1dC52YWwoKSAhPSBpbnN0Lmxhc3RWYWwpKSB7CgkJCQkJCXRyeSB7CgkJCQkJCQkkLmRhdGVwaWNrZXIuX3VwZGF0ZURhdGVwaWNrZXIoaW5zdCk7CgkJCQkJCX0gY2F0Y2ggKGVycikgewoJCQkJCQkJJC5kYXRlcGlja2VyLmxvZyhlcnIpOwoJCQkJCQl9CgkJCQkJfQoJCQkJfQoJCQl9CgkJfSwKCgkJLyoKCQkqIFNtYWxsIGFic3RyYWN0aW9uIHRvIGNvbnRyb2wgdHlwZXMKCQkqIFdlIGNhbiBhZGQgbW9yZSwganVzdCBiZSBzdXJlIHRvIGZvbGxvdyB0aGUgcGF0dGVybjogY3JlYXRlLCBvcHRpb25zLCB2YWx1ZQoJCSovCgkJX2NvbnRyb2xzOiB7CgkJCS8vIHNsaWRlciBtZXRob2RzCgkJCXNsaWRlcjogewoJCQkJY3JlYXRlOiBmdW5jdGlvbih0cF9pbnN0LCBvYmosIHVuaXQsIHZhbCwgbWluLCBtYXgsIHN0ZXApewoJCQkJCXZhciBydGwgPSB0cF9pbnN0Ll9kZWZhdWx0cy5pc1JUTDsgLy8gaWYgcnRsIGdvIC02MC0+MCBpbnN0ZWFkIG9mIDAtPjYwCgkJCQkJcmV0dXJuIG9iai5wcm9wKCdzbGlkZScsIG51bGwpLnNsaWRlcih7CgkJCQkJCW9yaWVudGF0aW9uOiAiaG9yaXpvbnRhbCIsCgkJCQkJCXZhbHVlOiBydGw/IHZhbCotMSA6IHZhbCwKCQkJCQkJbWluOiBydGw/IG1heCotMSA6IG1pbiwKCQkJCQkJbWF4OiBydGw/IG1pbiotMSA6IG1heCwKCQkJCQkJc3RlcDogc3RlcCwKCQkJCQkJc2xpZGU6IGZ1bmN0aW9uKGV2ZW50LCB1aSkgewoJCQkJCQkJdHBfaW5zdC5jb250cm9sLnZhbHVlKHRwX2luc3QsICQodGhpcyksIHVuaXQsIHJ0bD8gdWkudmFsdWUqLTE6dWkudmFsdWUpOwoJCQkJCQkJdHBfaW5zdC5fb25UaW1lQ2hhbmdlKCk7CgkJCQkJCX0sCgkJCQkJCXN0b3A6IGZ1bmN0aW9uKGV2ZW50LCB1aSkgewoJCQkJCQkJdHBfaW5zdC5fb25TZWxlY3RIYW5kbGVyKCk7CgkJCQkJCX0KCQkJCQl9KTsJCgkJCQl9LAoJCQkJb3B0aW9uczogZnVuY3Rpb24odHBfaW5zdCwgb2JqLCB1bml0LCBvcHRzLCB2YWwpewoJCQkJCWlmKHRwX2luc3QuX2RlZmF1bHRzLmlzUlRMKXsKCQkJCQkJaWYodHlwZW9mKG9wdHMpID09ICdzdHJpbmcnKXsKCQkJCQkJCWlmKG9wdHMgPT0gJ21pbicgfHwgb3B0cyA9PSAnbWF4Jyl7CgkJCQkJCQkJaWYodmFsICE9PSB1bmRlZmluZWQpCgkJCQkJCQkJCXJldHVybiBvYmouc2xpZGVyKG9wdHMsIHZhbCotMSk7CgkJCQkJCQkJcmV0dXJuIE1hdGguYWJzKG9iai5zbGlkZXIob3B0cykpOwoJCQkJCQkJfQoJCQkJCQkJcmV0dXJuIG9iai5zbGlkZXIob3B0cyk7CgkJCQkJCX0KCQkJCQkJdmFyIG1pbiA9IG9wdHMubWluLCAKCQkJCQkJCW1heCA9IG9wdHMubWF4OwoJCQkJCQlvcHRzLm1pbiA9IG9wdHMubWF4ID0gbnVsbDsKCQkJCQkJaWYobWluICE9PSB1bmRlZmluZWQpCgkJCQkJCQlvcHRzLm1heCA9IG1pbiAqIC0xOwoJCQkJCQlpZihtYXggIT09IHVuZGVmaW5lZCkKCQkJCQkJCW9wdHMubWluID0gbWF4ICogLTE7CgkJCQkJCXJldHVybiBvYmouc2xpZGVyKG9wdHMpOwoJCQkJCX0KCQkJCQlpZih0eXBlb2Yob3B0cykgPT0gJ3N0cmluZycgJiYgdmFsICE9PSB1bmRlZmluZWQpCgkJCQkJCQlyZXR1cm4gb2JqLnNsaWRlcihvcHRzLCB2YWwpOwoJCQkJCXJldHVybiBvYmouc2xpZGVyKG9wdHMpOwoJCQkJfSwKCQkJCXZhbHVlOiBmdW5jdGlvbih0cF9pbnN0LCBvYmosIHVuaXQsIHZhbCl7CgkJCQkJaWYodHBfaW5zdC5fZGVmYXVsdHMuaXNSVEwpewoJCQkJCQlpZih2YWwgIT09IHVuZGVmaW5lZCkKCQkJCQkJCXJldHVybiBvYmouc2xpZGVyKCd2YWx1ZScsIHZhbCotMSk7CgkJCQkJCXJldHVybiBNYXRoLmFicyhvYmouc2xpZGVyKCd2YWx1ZScpKTsKCQkJCQl9CgkJCQkJaWYodmFsICE9PSB1bmRlZmluZWQpCgkJCQkJCXJldHVybiBvYmouc2xpZGVyKCd2YWx1ZScsIHZhbCk7CgkJCQkJcmV0dXJuIG9iai5zbGlkZXIoJ3ZhbHVlJyk7CgkJCQl9CgkJCX0sCgkJCS8vIHNlbGVjdCBtZXRob2RzCgkJCXNlbGVjdDogewoJCQkJY3JlYXRlOiBmdW5jdGlvbih0cF9pbnN0LCBvYmosIHVuaXQsIHZhbCwgbWluLCBtYXgsIHN0ZXApewoJCQkJCXZhciBzZWwgPSAnPHNlbGVjdCBjbGFzcz0idWktdGltZXBpY2tlci1zZWxlY3QiIGRhdGEtdW5pdD0iJysgdW5pdCArJyIgZGF0YS1taW49IicrIG1pbiArJyIgZGF0YS1tYXg9IicrIG1heCArJyIgZGF0YS1zdGVwPSInKyBzdGVwICsnIj4nLAoJCQkJCQl1bCA9IHRwX2luc3QuX2RlZmF1bHRzLnRpbWVGb3JtYXQuaW5kZXhPZigndCcpICE9PSAtMT8gJ3RvTG93ZXJDYXNlJzondG9VcHBlckNhc2UnLAoJCQkJCQltID0gMDsKCgkJCQkJZm9yKHZhciBpPW1pbjsgaTw9bWF4OyBpKz1zdGVwKXsJCQkJCQkKCQkJCQkJc2VsICs9ICc8b3B0aW9uIHZhbHVlPSInKyBpICsnIicrIChpPT12YWw/ICcgc2VsZWN0ZWQnOicnKSArJz4nOwoJCQkJCQlpZih1bml0ID09ICdob3VyJyAmJiB1c2VBbXBtKHRwX2luc3QuX2RlZmF1bHRzLnBpY2tlclRpbWVGb3JtYXQgfHwgdHBfaW5zdC5fZGVmYXVsdHMudGltZUZvcm1hdCkpCgkJCQkJCQlzZWwgKz0gJC5kYXRlcGlja2VyLmZvcm1hdFRpbWUoImhoIFRUIiwge2hvdXI6aX0sIHRwX2luc3QuX2RlZmF1bHRzKTsKCQkJCQkJZWxzZSBpZih1bml0ID09ICdtaWxsaXNlYycgfHwgaSA+PSAxMCkgc2VsICs9IGk7CgkJCQkJCWVsc2Ugc2VsICs9ICcwJysgaS50b1N0cmluZygpOwoJCQkJCQlzZWwgKz0gJzwvb3B0aW9uPic7CgkJCQkJfQoJCQkJCXNlbCArPSAnPC9zZWxlY3Q+JzsKCgkJCQkJb2JqLmNoaWxkcmVuKCdzZWxlY3QnKS5yZW1vdmUoKTsKCgkJCQkJJChzZWwpLmFwcGVuZFRvKG9iaikuY2hhbmdlKGZ1bmN0aW9uKGUpewoJCQkJCQl0cF9pbnN0Ll9vblRpbWVDaGFuZ2UoKTsKCQkJCQkJdHBfaW5zdC5fb25TZWxlY3RIYW5kbGVyKCk7CgkJCQkJfSk7CgoJCQkJCXJldHVybiBvYmo7CgkJCQl9LAoJCQkJb3B0aW9uczogZnVuY3Rpb24odHBfaW5zdCwgb2JqLCB1bml0LCBvcHRzLCB2YWwpewoJCQkJCXZhciBvID0ge30sCgkJCQkJCSR0ID0gb2JqLmNoaWxkcmVuKCdzZWxlY3QnKTsKCQkJCQlpZih0eXBlb2Yob3B0cykgPT0gJ3N0cmluZycpewoJCQkJCQlpZih2YWwgPT09IHVuZGVmaW5lZCkKCQkJCQkJCXJldHVybiAkdC5kYXRhKG9wdHMpOwoJCQkJCQlvW29wdHNdID0gdmFsOwkKCQkJCQl9CgkJCQkJZWxzZSBvID0gb3B0czsKCQkJCQlyZXR1cm4gdHBfaW5zdC5jb250cm9sLmNyZWF0ZSh0cF9pbnN0LCBvYmosICR0LmRhdGEoJ3VuaXQnKSwgJHQudmFsKCksIG8ubWluIHx8ICR0LmRhdGEoJ21pbicpLCBvLm1heCB8fCAkdC5kYXRhKCdtYXgnKSwgby5zdGVwIHx8ICR0LmRhdGEoJ3N0ZXAnKSk7CgkJCQl9LAoJCQkJdmFsdWU6IGZ1bmN0aW9uKHRwX2luc3QsIG9iaiwgdW5pdCwgdmFsKXsKCQkJCQl2YXIgJHQgPSBvYmouY2hpbGRyZW4oJ3NlbGVjdCcpOwoJCQkJCWlmKHZhbCAhPT0gdW5kZWZpbmVkKQoJCQkJCQlyZXR1cm4gJHQudmFsKHZhbCk7CgkJCQkJcmV0dXJuICR0LnZhbCgpOwoJCQkJfQoJCQl9CgkJfSAvLyBlbmQgX2NvbnRyb2xzCgoJfSk7CgoJJC5mbi5leHRlbmQoewoJCS8qCgkJKiBzaG9ydGhhbmQganVzdCB0byB1c2UgdGltZXBpY2tlci4uCgkJKi8KCQl0aW1lcGlja2VyOiBmdW5jdGlvbihvKSB7CgkJCW8gPSBvIHx8IHt9OwoJCQl2YXIgdG1wX2FyZ3MgPSBBcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChhcmd1bWVudHMpOwoKCQkJaWYgKHR5cGVvZiBvID09ICdvYmplY3QnKSB7CgkJCQl0bXBfYXJnc1swXSA9ICQuZXh0ZW5kKG8sIHsKCQkJCQl0aW1lT25seTogdHJ1ZQoJCQkJfSk7CgkJCX0KCgkJCXJldHVybiAkKHRoaXMpLmVhY2goZnVuY3Rpb24oKSB7CgkJCQkkLmZuLmRhdGV0aW1lcGlja2VyLmFwcGx5KCQodGhpcyksIHRtcF9hcmdzKTsKCQkJfSk7CgkJfSwKCgkJLyoKCQkqIGV4dGVuZCB0aW1lcGlja2VyIHRvIGRhdGVwaWNrZXIKCQkqLwoJCWRhdGV0aW1lcGlja2VyOiBmdW5jdGlvbihvKSB7CgkJCW8gPSBvIHx8IHt9OwoJCQl2YXIgdG1wX2FyZ3MgPSBhcmd1bWVudHM7CgoJCQlpZiAodHlwZW9mKG8pID09ICdzdHJpbmcnKSB7CgkJCQlpZiAobyA9PSAnZ2V0RGF0ZScpIHsKCQkJCQlyZXR1cm4gJC5mbi5kYXRlcGlja2VyLmFwcGx5KCQodGhpc1swXSksIHRtcF9hcmdzKTsKCQkJCX0gZWxzZSB7CgkJCQkJcmV0dXJuIHRoaXMuZWFjaChmdW5jdGlvbigpIHsKCQkJCQkJdmFyICR0ID0gJCh0aGlzKTsKCQkJCQkJJHQuZGF0ZXBpY2tlci5hcHBseSgkdCwgdG1wX2FyZ3MpOwoJCQkJCX0pOwoJCQkJfQoJCQl9IGVsc2UgewoJCQkJcmV0dXJuIHRoaXMuZWFjaChmdW5jdGlvbigpIHsKCQkJCQl2YXIgJHQgPSAkKHRoaXMpOwoJCQkJCSR0LmRhdGVwaWNrZXIoJC50aW1lcGlja2VyLl9uZXdJbnN0KCR0LCBvKS5fZGVmYXVsdHMpOwoJCQkJfSk7CgkJCX0KCQl9Cgl9KTsKCgkvKgoJKiBQdWJsaWMgVXRpbGl0eSB0byBwYXJzZSBkYXRlIGFuZCB0aW1lCgkqLwoJJC5kYXRlcGlja2VyLnBhcnNlRGF0ZVRpbWUgPSBmdW5jdGlvbihkYXRlRm9ybWF0LCB0aW1lRm9ybWF0LCBkYXRlVGltZVN0cmluZywgZGF0ZVNldHRpbmdzLCB0aW1lU2V0dGluZ3MpIHsKCQl2YXIgcGFyc2VSZXMgPSBwYXJzZURhdGVUaW1lSW50ZXJuYWwoZGF0ZUZvcm1hdCwgdGltZUZvcm1hdCwgZGF0ZVRpbWVTdHJpbmcsIGRhdGVTZXR0aW5ncywgdGltZVNldHRpbmdzKTsKCQlpZiAocGFyc2VSZXMudGltZU9iaikgewoJCQl2YXIgdCA9IHBhcnNlUmVzLnRpbWVPYmo7CgkJCXBhcnNlUmVzLmRhdGUuc2V0SG91cnModC5ob3VyLCB0Lm1pbnV0ZSwgdC5zZWNvbmQsIHQubWlsbGlzZWMpOwoJCX0KCgkJcmV0dXJuIHBhcnNlUmVzLmRhdGU7Cgl9OwoKCS8qCgkqIFB1YmxpYyB1dGlsaXR5IHRvIHBhcnNlIHRpbWUKCSovCgkkLmRhdGVwaWNrZXIucGFyc2VUaW1lID0gZnVuY3Rpb24odGltZUZvcm1hdCwgdGltZVN0cmluZywgb3B0aW9ucykgewkJCgkJdmFyIG8gPSBleHRlbmRSZW1vdmUoZXh0ZW5kUmVtb3ZlKHt9LCAkLnRpbWVwaWNrZXIuX2RlZmF1bHRzKSwgb3B0aW9ucyB8fCB7fSk7CgoJCS8vIFN0cmljdCBwYXJzZSByZXF1aXJlcyB0aGUgdGltZVN0cmluZyB0byBtYXRjaCB0aGUgdGltZUZvcm1hdCBleGFjdGx5CgkJdmFyIHN0cmljdFBhcnNlID0gZnVuY3Rpb24oZiwgcywgbyl7CgoJCQkvLyBwYXR0ZXJuIGZvciBzdGFuZGFyZCBhbmQgbG9jYWxpemVkIEFNL1BNIG1hcmtlcnMKCQkJdmFyIGdldFBhdHRlcm5BbXBtID0gZnVuY3Rpb24oYW1OYW1lcywgcG1OYW1lcykgewoJCQkJdmFyIG1hcmtlcnMgPSBbXTsKCQkJCWlmIChhbU5hbWVzKSB7CgkJCQkJJC5tZXJnZShtYXJrZXJzLCBhbU5hbWVzKTsKCQkJCX0KCQkJCWlmIChwbU5hbWVzKSB7CgkJCQkJJC5tZXJnZShtYXJrZXJzLCBwbU5hbWVzKTsKCQkJCX0KCQkJCW1hcmtlcnMgPSAkLm1hcChtYXJrZXJzLCBmdW5jdGlvbih2YWwpIHsKCQkJCQlyZXR1cm4gdmFsLnJlcGxhY2UoL1suKis/fCgpXFtcXXt9XFxdL2csICdcXCQmJyk7CgkJCQl9KTsKCQkJCXJldHVybiAnKCcgKyBtYXJrZXJzLmpvaW4oJ3wnKSArICcpPyc7CgkJCX07CgoJCQkvLyBmaWd1cmUgb3V0IHBvc2l0aW9uIG9mIHRpbWUgZWxlbWVudHMuLiBjYXVzZSBqcyBjYW50IGRvIG5hbWVkIGNhcHR1cmVzCgkJCXZhciBnZXRGb3JtYXRQb3NpdGlvbnMgPSBmdW5jdGlvbih0aW1lRm9ybWF0KSB7CgkJCQl2YXIgZmluZHMgPSB0aW1lRm9ybWF0LnRvTG93ZXJDYXNlKCkubWF0Y2goLyhoezEsMn18bXsxLDJ9fHN7MSwyfXxsezF9fHR7MSwyfXx6fCcuKj8nKS9nKSwKCQkJCQlvcmRlcnMgPSB7CgkJCQkJCWg6IC0xLAoJCQkJCQltOiAtMSwKCQkJCQkJczogLTEsCgkJCQkJCWw6IC0xLAoJCQkJCQl0OiAtMSwKCQkJCQkJejogLTEKCQkJCQl9OwoKCQkJCWlmIChmaW5kcykgewoJCQkJCWZvciAodmFyIGkgPSAwOyBpIDwgZmluZHMubGVuZ3RoOyBpKyspIHsKCQkJCQkJaWYgKG9yZGVyc1tmaW5kc1tpXS50b1N0cmluZygpLmNoYXJBdCgwKV0gPT0gLTEpIHsKCQkJCQkJCW9yZGVyc1tmaW5kc1tpXS50b1N0cmluZygpLmNoYXJBdCgwKV0gPSBpICsgMTsKCQkJCQkJfQoJCQkJCX0KCQkJCX0KCQkJCXJldHVybiBvcmRlcnM7CgkJCX07CgoJCQl2YXIgcmVnc3RyID0gJ14nICsgZi50b1N0cmluZygpCgkJCQkJLnJlcGxhY2UoLyhbaEhdezEsMn18bW0/fHNzP3xbdFRdezEsMn18W2x6XXwnLio/JykvZywgZnVuY3Rpb24gKG1hdGNoKSB7CgkJCQkJCQlzd2l0Y2ggKG1hdGNoLmNoYXJBdCgwKS50b0xvd2VyQ2FzZSgpKSB7CgkJCQkJCQkJY2FzZSAnaCc6IHJldHVybiAnKFxcZD9cXGQpJzsKCQkJCQkJCQljYXNlICdtJzogcmV0dXJuICcoXFxkP1xcZCknOwoJCQkJCQkJCWNhc2UgJ3MnOiByZXR1cm4gJyhcXGQ/XFxkKSc7CgkJCQkJCQkJY2FzZSAnbCc6IHJldHVybiAnKFxcZD9cXGQ/XFxkKSc7CgkJCQkJCQkJY2FzZSAneic6IHJldHVybiAnKHp8Wy0rXVxcZFxcZDo/XFxkXFxkfFxcUyspPyc7CgkJCQkJCQkJY2FzZSAndCc6IHJldHVybiBnZXRQYXR0ZXJuQW1wbShvLmFtTmFtZXMsIG8ucG1OYW1lcyk7CgkJCQkJCQkJZGVmYXVsdDogICAgLy8gbGl0ZXJhbCBlc2NhcGVkIGluIHF1b3RlcwoJCQkJCQkJCQlyZXR1cm4gJygnICsgbWF0Y2gucmVwbGFjZSgvXCcvZywgIiIpLnJlcGxhY2UoLyhcLnxcJHxcXnxcXHxcL3xcKHxcKXxcW3xcXXxcP3xcK3xcKikvZywgZnVuY3Rpb24gKG0pIHsgcmV0dXJuICJcXCIgKyBtOyB9KSArICcpPyc7CgkJCQkJCQl9CgkJCQkJCX0pCgkJCQkJLnJlcGxhY2UoL1xzL2csICdcXHM/JykgKwoJCQkJCW8udGltZVN1ZmZpeCArICckJywKCQkJCW9yZGVyID0gZ2V0Rm9ybWF0UG9zaXRpb25zKGYpLAoJCQkJYW1wbSA9ICcnLAoJCQkJdHJlZzsKCgkJCXRyZWcgPSBzLm1hdGNoKG5ldyBSZWdFeHAocmVnc3RyLCAnaScpKTsKCgkJCXZhciByZXNUaW1lID0gewoJCQkJaG91cjogMCwKCQkJCW1pbnV0ZTogMCwKCQkJCXNlY29uZDogMCwKCQkJCW1pbGxpc2VjOiAwCgkJCX07CgoJCQlpZiAodHJlZykgewoJCQkJaWYgKG9yZGVyLnQgIT09IC0xKSB7CgkJCQkJaWYgKHRyZWdbb3JkZXIudF0gPT09IHVuZGVmaW5lZCB8fCB0cmVnW29yZGVyLnRdLmxlbmd0aCA9PT0gMCkgewoJCQkJCQlhbXBtID0gJyc7CgkJCQkJCXJlc1RpbWUuYW1wbSA9ICcnOwoJCQkJCX0gZWxzZSB7CgkJCQkJCWFtcG0gPSAkLmluQXJyYXkodHJlZ1tvcmRlci50XS50b1VwcGVyQ2FzZSgpLCBvLmFtTmFtZXMpICE9PSAtMSA/ICdBTScgOiAnUE0nOwoJCQkJCQlyZXNUaW1lLmFtcG0gPSBvW2FtcG0gPT0gJ0FNJyA/ICdhbU5hbWVzJyA6ICdwbU5hbWVzJ11bMF07CgkJCQkJfQoJCQkJfQoKCQkJCWlmIChvcmRlci5oICE9PSAtMSkgewoJCQkJCWlmIChhbXBtID09ICdBTScgJiYgdHJlZ1tvcmRlci5oXSA9PSAnMTInKSB7CgkJCQkJCXJlc1RpbWUuaG91ciA9IDA7IC8vIDEyYW0gPSAwIGhvdXIKCQkJCQl9IGVsc2UgewoJCQkJCQlpZiAoYW1wbSA9PSAnUE0nICYmIHRyZWdbb3JkZXIuaF0gIT0gJzEyJykgewoJCQkJCQkJcmVzVGltZS5ob3VyID0gcGFyc2VJbnQodHJlZ1tvcmRlci5oXSwgMTApICsgMTI7IC8vIDEycG0gPSAxMiBob3VyLCBhbnkgb3RoZXIgcG0gPSBob3VyICsgMTIKCQkJCQkJfSBlbHNlIHsKCQkJCQkJCXJlc1RpbWUuaG91ciA9IE51bWJlcih0cmVnW29yZGVyLmhdKTsKCQkJCQkJfQoJCQkJCX0KCQkJCX0KCgkJCQlpZiAob3JkZXIubSAhPT0gLTEpIHsKCQkJCQlyZXNUaW1lLm1pbnV0ZSA9IE51bWJlcih0cmVnW29yZGVyLm1dKTsKCQkJCX0KCQkJCWlmIChvcmRlci5zICE9PSAtMSkgewoJCQkJCXJlc1RpbWUuc2Vjb25kID0gTnVtYmVyKHRyZWdbb3JkZXIuc10pOwoJCQkJfQoJCQkJaWYgKG9yZGVyLmwgIT09IC0xKSB7CgkJCQkJcmVzVGltZS5taWxsaXNlYyA9IE51bWJlcih0cmVnW29yZGVyLmxdKTsKCQkJCX0KCQkJCWlmIChvcmRlci56ICE9PSAtMSAmJiB0cmVnW29yZGVyLnpdICE9PSB1bmRlZmluZWQpIHsKCQkJCQl2YXIgdHogPSB0cmVnW29yZGVyLnpdLnRvVXBwZXJDYXNlKCk7CgkJCQkJc3dpdGNoICh0ei5sZW5ndGgpIHsKCQkJCQljYXNlIDE6CgkJCQkJCS8vIFoKCQkJCQkJdHogPSBvLnRpbWV6b25lSXNvODYwMSA/ICdaJyA6ICcrMDAwMCc7CgkJCQkJCWJyZWFrOwoJCQkJCWNhc2UgNToKCQkJCQkJLy8gK2hobW0KCQkJCQkJaWYgKG8udGltZXpvbmVJc284NjAxKSB7CgkJCQkJCQl0eiA9IHR6LnN1YnN0cmluZygxKSA9PSAnMDAwMCcgPyAnWicgOiB0ei5zdWJzdHJpbmcoMCwgMykgKyAnOicgKyB0ei5zdWJzdHJpbmcoMyk7CgkJCQkJCX0KCQkJCQkJYnJlYWs7CgkJCQkJY2FzZSA2OgoJCQkJCQkvLyAraGg6bW0KCQkJCQkJaWYgKCFvLnRpbWV6b25lSXNvODYwMSkgewoJCQkJCQkJdHogPSB0eiA9PSAnWicgfHwgdHouc3Vic3RyaW5nKDEpID09ICcwMDowMCcgPyAnKzAwMDAnIDogdHoucmVwbGFjZSgvOi8sICcnKTsKCQkJCQkJfSBlbHNlIHsKCQkJCQkJCWlmICh0ei5zdWJzdHJpbmcoMSkgPT0gJzAwOjAwJykgewoJCQkJCQkJCXR6ID0gJ1onOwoJCQkJCQkJfQoJCQkJCQl9CgkJCQkJCWJyZWFrOwoJCQkJCX0KCQkJCQlyZXNUaW1lLnRpbWV6b25lID0gdHo7CgkJCQl9CgoKCQkJCXJldHVybiByZXNUaW1lOwoJCQl9CgkJCXJldHVybiBmYWxzZTsKCQl9Oy8vIGVuZCBzdHJpY3RQYXJzZQoKCQkvLyBGaXJzdCB0cnkgSlMgRGF0ZSwgaWYgdGhhdCBmYWlscywgdXNlIHN0cmljdFBhcnNlCgkJdmFyIGxvb3NlUGFyc2UgPSBmdW5jdGlvbihmLHMsbyl7CgkJCXRyeXsKCQkJCXZhciBkID0gbmV3IERhdGUoJzIwMTItMDEtMDEgJysgcyk7CgkJCQlyZXR1cm4gewoJCQkJCWhvdXI6IGQuZ2V0SG91cnMoKSwKCQkJCQltaW51dGVzOiBkLmdldE1pbnV0ZXMoKSwKCQkJCQlzZWNvbmRzOiBkLmdldFNlY29uZHMoKSwKCQkJCQltaWxsaXNlYzogZC5nZXRNaWxsaXNlY29uZHMoKSwKCQkJCQl0aW1lem9uZTogJC50aW1lcGlja2VyLnRpbWVab25lT2Zmc2V0U3RyaW5nKGQpCgkJCQl9OwoJCQl9CgkJCWNhdGNoKGVycil7CgkJCQl0cnl7CgkJCQkJcmV0dXJuIHN0cmljdFBhcnNlKGYscyxvKTsKCQkJCX0KCQkJCWNhdGNoKGVycjIpewoJCQkJCSQuZGF0ZXBpY2tlci5sb2coIlVuYWJsZSB0byBwYXJzZSBcbnRpbWVTdHJpbmc6ICIrIHMgKyJcbnRpbWVGb3JtYXQ6ICIrIGYpOwoJCQkJfQkJCQkKCQkJfQoJCQlyZXR1cm4gZmFsc2U7CgkJfTsgLy8gZW5kIGxvb3NlUGFyc2UKCQkKCQlpZih0eXBlb2Ygby5wYXJzZSA9PT0gImZ1bmN0aW9uIil7CgkJCXJldHVybiBvLnBhcnNlKHRpbWVGb3JtYXQsIHRpbWVTdHJpbmcsIG8pCgkJfQoJCWlmKG8ucGFyc2UgPT09ICdsb29zZScpewoJCQlyZXR1cm4gbG9vc2VQYXJzZSh0aW1lRm9ybWF0LCB0aW1lU3RyaW5nLCBvKTsKCQl9CgkJcmV0dXJuIHN0cmljdFBhcnNlKHRpbWVGb3JtYXQsIHRpbWVTdHJpbmcsIG8pOwoJfTsKCgkvKgoJKiBQdWJsaWMgdXRpbGl0eSB0byBmb3JtYXQgdGhlIHRpbWUKCSogZm9ybWF0ID0gc3RyaW5nIGZvcm1hdCBvZiB0aGUgdGltZQoJKiB0aW1lID0gYSB7fSwgbm90IGEgRGF0ZSgpIGZvciB0aW1lem9uZXMKCSogb3B0aW9ucyA9IGVzc2VudGlhbGx5IHRoZSByZWdpb25hbFtdLi4gYW1OYW1lcywgcG1OYW1lcywgYW1wbQoJKi8KCSQuZGF0ZXBpY2tlci5mb3JtYXRUaW1lID0gZnVuY3Rpb24oZm9ybWF0LCB0aW1lLCBvcHRpb25zKSB7CgkJb3B0aW9ucyA9IG9wdGlvbnMgfHwge307CgkJb3B0aW9ucyA9ICQuZXh0ZW5kKHt9LCAkLnRpbWVwaWNrZXIuX2RlZmF1bHRzLCBvcHRpb25zKTsKCQl0aW1lID0gJC5leHRlbmQoewoJCQlob3VyOiAwLAoJCQltaW51dGU6IDAsCgkJCXNlY29uZDogMCwKCQkJbWlsbGlzZWM6IDAsCgkJCXRpbWV6b25lOiAnKzAwMDAnCgkJfSwgdGltZSk7CgoJCXZhciB0bXB0aW1lID0gZm9ybWF0LAoJCQlhbXBtTmFtZSA9IG9wdGlvbnMuYW1OYW1lc1swXSwKCQkJaG91ciA9IHBhcnNlSW50KHRpbWUuaG91ciwgMTApOwoKCQlpZiAoaG91ciA+IDExKSB7CgkJCWFtcG1OYW1lID0gb3B0aW9ucy5wbU5hbWVzWzBdOwoJCX0KCgkJdG1wdGltZSA9IHRtcHRpbWUucmVwbGFjZSgvKD86SEg/fGhoP3xtbT98c3M/fFt0VF17MSwyfXxbbHpdfCgnLio/J3wiLio/IikpL2csIGZ1bmN0aW9uKG1hdGNoKSB7CgkJc3dpdGNoIChtYXRjaCkgewoJCQljYXNlICdISCc6CgkJCQlyZXR1cm4gKCcwJyArIGhvdXIpLnNsaWNlKC0yKTsKCQkJY2FzZSAnSCc6CgkJCQlyZXR1cm4gaG91cjsKCQkJY2FzZSAnaGgnOgoJCQkJcmV0dXJuICgnMCcgKyBjb252ZXJ0MjR0bzEyKGhvdXIpKS5zbGljZSgtMik7CgkJCWNhc2UgJ2gnOgoJCQkJcmV0dXJuIGNvbnZlcnQyNHRvMTIoaG91cik7CgkJCWNhc2UgJ21tJzoKCQkJCXJldHVybiAoJzAnICsgdGltZS5taW51dGUpLnNsaWNlKC0yKTsKCQkJY2FzZSAnbSc6CgkJCQlyZXR1cm4gdGltZS5taW51dGU7CgkJCWNhc2UgJ3NzJzoKCQkJCXJldHVybiAoJzAnICsgdGltZS5zZWNvbmQpLnNsaWNlKC0yKTsKCQkJY2FzZSAncyc6CgkJCQlyZXR1cm4gdGltZS5zZWNvbmQ7CgkJCWNhc2UgJ2wnOgoJCQkJcmV0dXJuICgnMDAnICsgdGltZS5taWxsaXNlYykuc2xpY2UoLTMpOwoJCQljYXNlICd6JzoKCQkJCXJldHVybiB0aW1lLnRpbWV6b25lID09PSBudWxsPyBvcHRpb25zLmRlZmF1bHRUaW1lem9uZSA6IHRpbWUudGltZXpvbmU7CgkJCWNhc2UgJ1QnOiAKCQkJCXJldHVybiBhbXBtTmFtZS5jaGFyQXQoMCkudG9VcHBlckNhc2UoKTsKCQkJY2FzZSAnVFQnOiAKCQkJCXJldHVybiBhbXBtTmFtZS50b1VwcGVyQ2FzZSgpOwoJCQljYXNlICd0JzoKCQkJCXJldHVybiBhbXBtTmFtZS5jaGFyQXQoMCkudG9Mb3dlckNhc2UoKTsKCQkJY2FzZSAndHQnOgoJCQkJcmV0dXJuIGFtcG1OYW1lLnRvTG93ZXJDYXNlKCk7CgkJCWRlZmF1bHQ6CgkJCQlyZXR1cm4gbWF0Y2gucmVwbGFjZSgvXCcvZywgIiIpIHx8ICInIjsKCQkJfQoJCX0pOwoKCQl0bXB0aW1lID0gJC50cmltKHRtcHRpbWUpOwoJCXJldHVybiB0bXB0aW1lOwoJfTsKCgkvKgoJKiB0aGUgYmFkIGhhY2sgOi8gb3ZlcnJpZGUgZGF0ZXBpY2tlciBzbyBpdCBkb2VzbnQgY2xvc2Ugb24gc2VsZWN0CgkvLyBpbnNwaXJlZDogaHR0cDovL3N0YWNrb3ZlcmZsb3cuY29tL3F1ZXN0aW9ucy8xMjUyNTEyL2pxdWVyeS1kYXRlcGlja2VyLXByZXZlbnQtY2xvc2luZy1waWNrZXItd2hlbi1jbGlja2luZy1hLWRhdGUvMTc2MjM3OCMxNzYyMzc4CgkqLwoJJC5kYXRlcGlja2VyLl9iYXNlX3NlbGVjdERhdGUgPSAkLmRhdGVwaWNrZXIuX3NlbGVjdERhdGU7CgkkLmRhdGVwaWNrZXIuX3NlbGVjdERhdGUgPSBmdW5jdGlvbihpZCwgZGF0ZVN0cikgewoJCXZhciBpbnN0ID0gdGhpcy5fZ2V0SW5zdCgkKGlkKVswXSksCgkJCXRwX2luc3QgPSB0aGlzLl9nZXQoaW5zdCwgJ3RpbWVwaWNrZXInKTsKCgkJaWYgKHRwX2luc3QpIHsKCQkJdHBfaW5zdC5fbGltaXRNaW5NYXhEYXRlVGltZShpbnN0LCB0cnVlKTsKCQkJaW5zdC5pbmxpbmUgPSBpbnN0LnN0YXlfb3BlbiA9IHRydWU7CgkJCS8vVGhpcyB3YXkgdGhlIG9uU2VsZWN0IGhhbmRsZXIgY2FsbGVkIGZyb20gY2FsZW5kYXJwaWNrZXIgZ2V0IHRoZSBmdWxsIGRhdGVUaW1lCgkJCXRoaXMuX2Jhc2Vfc2VsZWN0RGF0ZShpZCwgZGF0ZVN0cik7CgkJCWluc3QuaW5saW5lID0gaW5zdC5zdGF5X29wZW4gPSBmYWxzZTsKCQkJdGhpcy5fbm90aWZ5Q2hhbmdlKGluc3QpOwoJCQl0aGlzLl91cGRhdGVEYXRlcGlja2VyKGluc3QpOwoJCX0gZWxzZSB7CgkJCXRoaXMuX2Jhc2Vfc2VsZWN0RGF0ZShpZCwgZGF0ZVN0cik7CgkJfQoJfTsKCgkvKgoJKiBzZWNvbmQgYmFkIGhhY2sgOi8gb3ZlcnJpZGUgZGF0ZXBpY2tlciBzbyBpdCB0cmlnZ2VycyBhbiBldmVudCB3aGVuIGNoYW5naW5nIHRoZSBpbnB1dCBmaWVsZAoJKiBhbmQgZG9lcyBub3QgcmVkcmF3IHRoZSBkYXRlcGlja2VyIG9uIGV2ZXJ5IHNlbGVjdERhdGUgZXZlbnQKCSovCgkkLmRhdGVwaWNrZXIuX2Jhc2VfdXBkYXRlRGF0ZXBpY2tlciA9ICQuZGF0ZXBpY2tlci5fdXBkYXRlRGF0ZXBpY2tlcjsKCSQuZGF0ZXBpY2tlci5fdXBkYXRlRGF0ZXBpY2tlciA9IGZ1bmN0aW9uKGluc3QpIHsKCgkJLy8gZG9uJ3QgcG9wdXAgdGhlIGRhdGVwaWNrZXIgaWYgdGhlcmUgaXMgYW5vdGhlciBpbnN0YW5jZSBhbHJlYWR5IG9wZW5lZAoJCXZhciBpbnB1dCA9IGluc3QuaW5wdXRbMF07CgkJaWYgKCQuZGF0ZXBpY2tlci5fY3VySW5zdCAmJiAkLmRhdGVwaWNrZXIuX2N1ckluc3QgIT0gaW5zdCAmJiAkLmRhdGVwaWNrZXIuX2RhdGVwaWNrZXJTaG93aW5nICYmICQuZGF0ZXBpY2tlci5fbGFzdElucHV0ICE9IGlucHV0KSB7CgkJCXJldHVybjsKCQl9CgoJCWlmICh0eXBlb2YoaW5zdC5zdGF5X29wZW4pICE9PSAnYm9vbGVhbicgfHwgaW5zdC5zdGF5X29wZW4gPT09IGZhbHNlKSB7CgoJCQl0aGlzLl9iYXNlX3VwZGF0ZURhdGVwaWNrZXIoaW5zdCk7CgoJCQkvLyBSZWxvYWQgdGhlIHRpbWUgY29udHJvbCB3aGVuIGNoYW5naW5nIHNvbWV0aGluZyBpbiB0aGUgaW5wdXQgdGV4dCBmaWVsZC4KCQkJdmFyIHRwX2luc3QgPSB0aGlzLl9nZXQoaW5zdCwgJ3RpbWVwaWNrZXInKTsKCQkJaWYgKHRwX2luc3QpIHsKCQkJCXRwX2luc3QuX2FkZFRpbWVQaWNrZXIoaW5zdCk7CgoJCQkJaWYgKHRwX2luc3QuX2RlZmF1bHRzLnVzZUxvY2FsVGltZXpvbmUpIHsgLy9jaGVja3MgZGF5bGlnaHQgc2F2aW5nIHdpdGggdGhlIG5ldyBkYXRlLgoJCQkJCXZhciBkYXRlID0gbmV3IERhdGUoaW5zdC5zZWxlY3RlZFllYXIsIGluc3Quc2VsZWN0ZWRNb250aCwgaW5zdC5zZWxlY3RlZERheSwgMTIpOwoJCQkJCXNlbGVjdExvY2FsVGltZVpvbmUodHBfaW5zdCwgZGF0ZSk7CgkJCQkJdHBfaW5zdC5fb25UaW1lQ2hhbmdlKCk7CgkJCQl9CgkJCX0KCQl9Cgl9OwoKCS8qCgkqIHRoaXJkIGJhZCBoYWNrIDovIG92ZXJyaWRlIGRhdGVwaWNrZXIgc28gaXQgYWxsb3dzIHNwYWNlcyBhbmQgY29sb24gaW4gdGhlIGlucHV0IGZpZWxkCgkqLwoJJC5kYXRlcGlja2VyLl9iYXNlX2RvS2V5UHJlc3MgPSAkLmRhdGVwaWNrZXIuX2RvS2V5UHJlc3M7CgkkLmRhdGVwaWNrZXIuX2RvS2V5UHJlc3MgPSBmdW5jdGlvbihldmVudCkgewoJCXZhciBpbnN0ID0gJC5kYXRlcGlja2VyLl9nZXRJbnN0KGV2ZW50LnRhcmdldCksCgkJCXRwX2luc3QgPSAkLmRhdGVwaWNrZXIuX2dldChpbnN0LCAndGltZXBpY2tlcicpOwoKCQlpZiAodHBfaW5zdCkgewoJCQlpZiAoJC5kYXRlcGlja2VyLl9nZXQoaW5zdCwgJ2NvbnN0cmFpbklucHV0JykpIHsKCQkJCXZhciBhbXBtID0gdXNlQW1wbSh0cF9pbnN0Ll9kZWZhdWx0cy50aW1lRm9ybWF0KSwKCQkJCQlkYXRlQ2hhcnMgPSAkLmRhdGVwaWNrZXIuX3Bvc3NpYmxlQ2hhcnMoJC5kYXRlcGlja2VyLl9nZXQoaW5zdCwgJ2RhdGVGb3JtYXQnKSksCgkJCQkJZGF0ZXRpbWVDaGFycyA9IHRwX2luc3QuX2RlZmF1bHRzLnRpbWVGb3JtYXQudG9TdHJpbmcoKQoJCQkJCQkJCQkJCS5yZXBsYWNlKC9baG1zXS9nLCAnJykKCQkJCQkJCQkJCQkucmVwbGFjZSgvVFQvZywgYW1wbSA/ICdBUE0nIDogJycpCgkJCQkJCQkJCQkJLnJlcGxhY2UoL1R0L2csIGFtcG0gPyAnQWFQcE1tJyA6ICcnKQoJCQkJCQkJCQkJCS5yZXBsYWNlKC90VC9nLCBhbXBtID8gJ0FhUHBNbScgOiAnJykKCQkJCQkJCQkJCQkucmVwbGFjZSgvVC9nLCBhbXBtID8gJ0FQJyA6ICcnKQoJCQkJCQkJCQkJCS5yZXBsYWNlKC90dC9nLCBhbXBtID8gJ2FwbScgOiAnJykKCQkJCQkJCQkJCQkucmVwbGFjZSgvdC9nLCBhbXBtID8gJ2FwJyA6ICcnKSArIAoJCQkJCQkJCQkJCSIgIiArIHRwX2luc3QuX2RlZmF1bHRzLnNlcGFyYXRvciArIAoJCQkJCQkJCQkJCXRwX2luc3QuX2RlZmF1bHRzLnRpbWVTdWZmaXggKyAKCQkJCQkJCQkJCQkodHBfaW5zdC5fZGVmYXVsdHMuc2hvd1RpbWV6b25lID8gdHBfaW5zdC5fZGVmYXVsdHMudGltZXpvbmVMaXN0LmpvaW4oJycpIDogJycpICsgCgkJCQkJCQkJCQkJKHRwX2luc3QuX2RlZmF1bHRzLmFtTmFtZXMuam9pbignJykpICsgKHRwX2luc3QuX2RlZmF1bHRzLnBtTmFtZXMuam9pbignJykpICsgCgkJCQkJCQkJCQkJZGF0ZUNoYXJzLAoJCQkJCWNociA9IFN0cmluZy5mcm9tQ2hhckNvZGUoZXZlbnQuY2hhckNvZGUgPT09IHVuZGVmaW5lZCA/IGV2ZW50LmtleUNvZGUgOiBldmVudC5jaGFyQ29kZSk7CgkJCQlyZXR1cm4gZXZlbnQuY3RybEtleSB8fCAoY2hyIDwgJyAnIHx8ICFkYXRlQ2hhcnMgfHwgZGF0ZXRpbWVDaGFycy5pbmRleE9mKGNocikgPiAtMSk7CgkJCX0KCQl9CgoJCXJldHVybiAkLmRhdGVwaWNrZXIuX2Jhc2VfZG9LZXlQcmVzcyhldmVudCk7Cgl9OwoKCS8qCgkqIEZvdXJ0aCBiYWQgaGFjayA6LyBvdmVycmlkZSBfdXBkYXRlQWx0ZXJuYXRlIGZ1bmN0aW9uIHVzZWQgaW4gaW5saW5lIG1vZGUgdG8gaW5pdCBhbHRGaWVsZAoJKi8KCSQuZGF0ZXBpY2tlci5fYmFzZV91cGRhdGVBbHRlcm5hdGUgPSAkLmRhdGVwaWNrZXIuX3VwZGF0ZUFsdGVybmF0ZTsKCS8qIFVwZGF0ZSBhbnkgYWx0ZXJuYXRlIGZpZWxkIHRvIHN5bmNocm9uaXNlIHdpdGggdGhlIG1haW4gZmllbGQuICovCgkkLmRhdGVwaWNrZXIuX3VwZGF0ZUFsdGVybmF0ZSA9IGZ1bmN0aW9uKGluc3QpIHsKCQl2YXIgdHBfaW5zdCA9IHRoaXMuX2dldChpbnN0LCAndGltZXBpY2tlcicpOwoJCWlmKHRwX2luc3QpewoJCQl2YXIgYWx0RmllbGQgPSB0cF9pbnN0Ll9kZWZhdWx0cy5hbHRGaWVsZDsKCQkJaWYgKGFsdEZpZWxkKSB7IC8vIHVwZGF0ZSBhbHRlcm5hdGUgZmllbGQgdG9vCgkJCQl2YXIgYWx0Rm9ybWF0ID0gdHBfaW5zdC5fZGVmYXVsdHMuYWx0Rm9ybWF0IHx8IHRwX2luc3QuX2RlZmF1bHRzLmRhdGVGb3JtYXQsCgkJCQkJZGF0ZSA9IHRoaXMuX2dldERhdGUoaW5zdCksCgkJCQkJZm9ybWF0Q2ZnID0gJC5kYXRlcGlja2VyLl9nZXRGb3JtYXRDb25maWcoaW5zdCksCgkJCQkJYWx0Rm9ybWF0dGVkRGF0ZVRpbWUgPSAnJywgCgkJCQkJYWx0U2VwYXJhdG9yID0gdHBfaW5zdC5fZGVmYXVsdHMuYWx0U2VwYXJhdG9yID8gdHBfaW5zdC5fZGVmYXVsdHMuYWx0U2VwYXJhdG9yIDogdHBfaW5zdC5fZGVmYXVsdHMuc2VwYXJhdG9yLCAKCQkJCQlhbHRUaW1lU3VmZml4ID0gdHBfaW5zdC5fZGVmYXVsdHMuYWx0VGltZVN1ZmZpeCA/IHRwX2luc3QuX2RlZmF1bHRzLmFsdFRpbWVTdWZmaXggOiB0cF9pbnN0Ll9kZWZhdWx0cy50aW1lU3VmZml4LAoJCQkJCWFsdFRpbWVGb3JtYXQgPSB0cF9pbnN0Ll9kZWZhdWx0cy5hbHRUaW1lRm9ybWF0ICE9PSBudWxsID8gdHBfaW5zdC5fZGVmYXVsdHMuYWx0VGltZUZvcm1hdCA6IHRwX2luc3QuX2RlZmF1bHRzLnRpbWVGb3JtYXQ7CgkJCQkKCQkJCWFsdEZvcm1hdHRlZERhdGVUaW1lICs9ICQuZGF0ZXBpY2tlci5mb3JtYXRUaW1lKGFsdFRpbWVGb3JtYXQsIHRwX2luc3QsIHRwX2luc3QuX2RlZmF1bHRzKSArIGFsdFRpbWVTdWZmaXg7CgkJCQlpZighdHBfaW5zdC5fZGVmYXVsdHMudGltZU9ubHkgJiYgIXRwX2luc3QuX2RlZmF1bHRzLmFsdEZpZWxkVGltZU9ubHkpewoJCQkJCWlmKHRwX2luc3QuX2RlZmF1bHRzLmFsdEZvcm1hdCkKCQkJCQkJYWx0Rm9ybWF0dGVkRGF0ZVRpbWUgPSAkLmRhdGVwaWNrZXIuZm9ybWF0RGF0ZSh0cF9pbnN0Ll9kZWZhdWx0cy5hbHRGb3JtYXQsIChkYXRlID09PSBudWxsID8gbmV3IERhdGUoKSA6IGRhdGUpLCBmb3JtYXRDZmcpICsgYWx0U2VwYXJhdG9yICsgYWx0Rm9ybWF0dGVkRGF0ZVRpbWU7CgkJCQkJZWxzZSBhbHRGb3JtYXR0ZWREYXRlVGltZSA9IHRwX2luc3QuZm9ybWF0dGVkRGF0ZSArIGFsdFNlcGFyYXRvciArIGFsdEZvcm1hdHRlZERhdGVUaW1lOwoJCQkJfQoJCQkJJChhbHRGaWVsZCkudmFsKGFsdEZvcm1hdHRlZERhdGVUaW1lKTsKCQkJfQoJCX0KCQllbHNlewoJCQkkLmRhdGVwaWNrZXIuX2Jhc2VfdXBkYXRlQWx0ZXJuYXRlKGluc3QpOwoJCX0KCX07CgoJLyoKCSogT3ZlcnJpZGUga2V5IHVwIGV2ZW50IHRvIHN5bmMgbWFudWFsIGlucHV0IGNoYW5nZXMuCgkqLwoJJC5kYXRlcGlja2VyLl9iYXNlX2RvS2V5VXAgPSAkLmRhdGVwaWNrZXIuX2RvS2V5VXA7CgkkLmRhdGVwaWNrZXIuX2RvS2V5VXAgPSBmdW5jdGlvbihldmVudCkgewoJCXZhciBpbnN0ID0gJC5kYXRlcGlja2VyLl9nZXRJbnN0KGV2ZW50LnRhcmdldCksCgkJCXRwX2luc3QgPSAkLmRhdGVwaWNrZXIuX2dldChpbnN0LCAndGltZXBpY2tlcicpOwoKCQlpZiAodHBfaW5zdCkgewoJCQlpZiAodHBfaW5zdC5fZGVmYXVsdHMudGltZU9ubHkgJiYgKGluc3QuaW5wdXQudmFsKCkgIT0gaW5zdC5sYXN0VmFsKSkgewoJCQkJdHJ5IHsKCQkJCQkkLmRhdGVwaWNrZXIuX3VwZGF0ZURhdGVwaWNrZXIoaW5zdCk7CgkJCQl9IGNhdGNoIChlcnIpIHsKCQkJCQkkLmRhdGVwaWNrZXIubG9nKGVycik7CgkJCQl9CgkJCX0KCQl9CgoJCXJldHVybiAkLmRhdGVwaWNrZXIuX2Jhc2VfZG9LZXlVcChldmVudCk7Cgl9OwoKCS8qCgkqIG92ZXJyaWRlICJUb2RheSIgYnV0dG9uIHRvIGFsc28gZ3JhYiB0aGUgdGltZS4KCSovCgkkLmRhdGVwaWNrZXIuX2Jhc2VfZ290b1RvZGF5ID0gJC5kYXRlcGlja2VyLl9nb3RvVG9kYXk7CgkkLmRhdGVwaWNrZXIuX2dvdG9Ub2RheSA9IGZ1bmN0aW9uKGlkKSB7CgkJdmFyIGluc3QgPSB0aGlzLl9nZXRJbnN0KCQoaWQpWzBdKSwKCQkJJGRwID0gaW5zdC5kcERpdjsKCQl0aGlzLl9iYXNlX2dvdG9Ub2RheShpZCk7CgkJdmFyIHRwX2luc3QgPSB0aGlzLl9nZXQoaW5zdCwgJ3RpbWVwaWNrZXInKTsKCQlzZWxlY3RMb2NhbFRpbWVab25lKHRwX2luc3QpOwoJCXZhciBub3cgPSBuZXcgRGF0ZSgpOwoJCXRoaXMuX3NldFRpbWUoaW5zdCwgbm93KTsKCQkkKCcudWktZGF0ZXBpY2tlci10b2RheScsICRkcCkuY2xpY2soKTsKCX07CgoJLyoKCSogRGlzYWJsZSAmIGVuYWJsZSB0aGUgVGltZSBpbiB0aGUgZGF0ZXRpbWVwaWNrZXIKCSovCgkkLmRhdGVwaWNrZXIuX2Rpc2FibGVUaW1lcGlja2VyRGF0ZXBpY2tlciA9IGZ1bmN0aW9uKHRhcmdldCkgewoJCXZhciBpbnN0ID0gdGhpcy5fZ2V0SW5zdCh0YXJnZXQpOwoJCWlmICghaW5zdCkgewoJCQlyZXR1cm47CgkJfQoKCQl2YXIgdHBfaW5zdCA9IHRoaXMuX2dldChpbnN0LCAndGltZXBpY2tlcicpOwoJCSQodGFyZ2V0KS5kYXRlcGlja2VyKCdnZXREYXRlJyk7IC8vIEluaXQgc2VsZWN0ZWRbWWVhcnxNb250aHxEYXldCgkJaWYgKHRwX2luc3QpIHsKCQkJdHBfaW5zdC5fZGVmYXVsdHMuc2hvd1RpbWVwaWNrZXIgPSBmYWxzZTsKCQkJdHBfaW5zdC5fdXBkYXRlRGF0ZVRpbWUoaW5zdCk7CgkJfQoJfTsKCgkkLmRhdGVwaWNrZXIuX2VuYWJsZVRpbWVwaWNrZXJEYXRlcGlja2VyID0gZnVuY3Rpb24odGFyZ2V0KSB7CgkJdmFyIGluc3QgPSB0aGlzLl9nZXRJbnN0KHRhcmdldCk7CgkJaWYgKCFpbnN0KSB7CgkJCXJldHVybjsKCQl9CgoJCXZhciB0cF9pbnN0ID0gdGhpcy5fZ2V0KGluc3QsICd0aW1lcGlja2VyJyk7CgkJJCh0YXJnZXQpLmRhdGVwaWNrZXIoJ2dldERhdGUnKTsgLy8gSW5pdCBzZWxlY3RlZFtZZWFyfE1vbnRofERheV0KCQlpZiAodHBfaW5zdCkgewoJCQl0cF9pbnN0Ll9kZWZhdWx0cy5zaG93VGltZXBpY2tlciA9IHRydWU7CgkJCXRwX2luc3QuX2FkZFRpbWVQaWNrZXIoaW5zdCk7IC8vIENvdWxkIGJlIGRpc2FibGVkIG9uIHBhZ2UgbG9hZAoJCQl0cF9pbnN0Ll91cGRhdGVEYXRlVGltZShpbnN0KTsKCQl9Cgl9OwoKCS8qCgkqIENyZWF0ZSBvdXIgb3duIHNldCB0aW1lIGZ1bmN0aW9uCgkqLwoJJC5kYXRlcGlja2VyLl9zZXRUaW1lID0gZnVuY3Rpb24oaW5zdCwgZGF0ZSkgewoJCXZhciB0cF9pbnN0ID0gdGhpcy5fZ2V0KGluc3QsICd0aW1lcGlja2VyJyk7CgkJaWYgKHRwX2luc3QpIHsKCQkJdmFyIGRlZmF1bHRzID0gdHBfaW5zdC5fZGVmYXVsdHM7CgoJCQkvLyBjYWxsaW5nIF9zZXRUaW1lIHdpdGggbm8gZGF0ZSBzZXRzIHRpbWUgdG8gZGVmYXVsdHMKCQkJdHBfaW5zdC5ob3VyID0gZGF0ZSA/IGRhdGUuZ2V0SG91cnMoKSA6IGRlZmF1bHRzLmhvdXI7CgkJCXRwX2luc3QubWludXRlID0gZGF0ZSA/IGRhdGUuZ2V0TWludXRlcygpIDogZGVmYXVsdHMubWludXRlOwoJCQl0cF9pbnN0LnNlY29uZCA9IGRhdGUgPyBkYXRlLmdldFNlY29uZHMoKSA6IGRlZmF1bHRzLnNlY29uZDsKCQkJdHBfaW5zdC5taWxsaXNlYyA9IGRhdGUgPyBkYXRlLmdldE1pbGxpc2Vjb25kcygpIDogZGVmYXVsdHMubWlsbGlzZWM7CgoJCQkvL2NoZWNrIGlmIHdpdGhpbiBtaW4vbWF4IHRpbWVzLi4gCgkJCXRwX2luc3QuX2xpbWl0TWluTWF4RGF0ZVRpbWUoaW5zdCwgdHJ1ZSk7CgoJCQl0cF9pbnN0Ll9vblRpbWVDaGFuZ2UoKTsKCQkJdHBfaW5zdC5fdXBkYXRlRGF0ZVRpbWUoaW5zdCk7CgkJfQoJfTsKCgkvKgoJKiBDcmVhdGUgbmV3IHB1YmxpYyBtZXRob2QgdG8gc2V0IG9ubHkgdGltZSwgY2FsbGFibGUgYXMgJCgpLmRhdGVwaWNrZXIoJ3NldFRpbWUnLCBkYXRlKQoJKi8KCSQuZGF0ZXBpY2tlci5fc2V0VGltZURhdGVwaWNrZXIgPSBmdW5jdGlvbih0YXJnZXQsIGRhdGUsIHdpdGhEYXRlKSB7CgkJdmFyIGluc3QgPSB0aGlzLl9nZXRJbnN0KHRhcmdldCk7CgkJaWYgKCFpbnN0KSB7CgkJCXJldHVybjsKCQl9CgoJCXZhciB0cF9pbnN0ID0gdGhpcy5fZ2V0KGluc3QsICd0aW1lcGlja2VyJyk7CgoJCWlmICh0cF9pbnN0KSB7CgkJCXRoaXMuX3NldERhdGVGcm9tRmllbGQoaW5zdCk7CgkJCXZhciB0cF9kYXRlOwoJCQlpZiAoZGF0ZSkgewoJCQkJaWYgKHR5cGVvZiBkYXRlID09ICJzdHJpbmciKSB7CgkJCQkJdHBfaW5zdC5fcGFyc2VUaW1lKGRhdGUsIHdpdGhEYXRlKTsKCQkJCQl0cF9kYXRlID0gbmV3IERhdGUoKTsKCQkJCQl0cF9kYXRlLnNldEhvdXJzKHRwX2luc3QuaG91ciwgdHBfaW5zdC5taW51dGUsIHRwX2luc3Quc2Vjb25kLCB0cF9pbnN0Lm1pbGxpc2VjKTsKCQkJCX0gZWxzZSB7CgkJCQkJdHBfZGF0ZSA9IG5ldyBEYXRlKGRhdGUuZ2V0VGltZSgpKTsKCQkJCX0KCQkJCWlmICh0cF9kYXRlLnRvU3RyaW5nKCkgPT0gJ0ludmFsaWQgRGF0ZScpIHsKCQkJCQl0cF9kYXRlID0gdW5kZWZpbmVkOwoJCQkJfQoJCQkJdGhpcy5fc2V0VGltZShpbnN0LCB0cF9kYXRlKTsKCQkJfQoJCX0KCgl9OwoKCS8qCgkqIG92ZXJyaWRlIHNldERhdGUoKSB0byBhbGxvdyBzZXR0aW5nIHRpbWUgdG9vIHdpdGhpbiBEYXRlIG9iamVjdAoJKi8KCSQuZGF0ZXBpY2tlci5fYmFzZV9zZXREYXRlRGF0ZXBpY2tlciA9ICQuZGF0ZXBpY2tlci5fc2V0RGF0ZURhdGVwaWNrZXI7CgkkLmRhdGVwaWNrZXIuX3NldERhdGVEYXRlcGlja2VyID0gZnVuY3Rpb24odGFyZ2V0LCBkYXRlKSB7CgkJdmFyIGluc3QgPSB0aGlzLl9nZXRJbnN0KHRhcmdldCk7CgkJaWYgKCFpbnN0KSB7CgkJCXJldHVybjsKCQl9CgoJCXZhciB0cF9kYXRlID0gKGRhdGUgaW5zdGFuY2VvZiBEYXRlKSA/IG5ldyBEYXRlKGRhdGUuZ2V0VGltZSgpKSA6IGRhdGU7CgoJCXRoaXMuX3VwZGF0ZURhdGVwaWNrZXIoaW5zdCk7CgkJdGhpcy5fYmFzZV9zZXREYXRlRGF0ZXBpY2tlci5hcHBseSh0aGlzLCBhcmd1bWVudHMpOwoJCXRoaXMuX3NldFRpbWVEYXRlcGlja2VyKHRhcmdldCwgdHBfZGF0ZSwgdHJ1ZSk7Cgl9OwoKCS8qCgkqIG92ZXJyaWRlIGdldERhdGUoKSB0byBhbGxvdyBnZXR0aW5nIHRpbWUgdG9vIHdpdGhpbiBEYXRlIG9iamVjdAoJKi8KCSQuZGF0ZXBpY2tlci5fYmFzZV9nZXREYXRlRGF0ZXBpY2tlciA9ICQuZGF0ZXBpY2tlci5fZ2V0RGF0ZURhdGVwaWNrZXI7CgkkLmRhdGVwaWNrZXIuX2dldERhdGVEYXRlcGlja2VyID0gZnVuY3Rpb24odGFyZ2V0LCBub0RlZmF1bHQpIHsKCQl2YXIgaW5zdCA9IHRoaXMuX2dldEluc3QodGFyZ2V0KTsKCQlpZiAoIWluc3QpIHsKCQkJcmV0dXJuOwoJCX0KCgkJdmFyIHRwX2luc3QgPSB0aGlzLl9nZXQoaW5zdCwgJ3RpbWVwaWNrZXInKTsKCgkJaWYgKHRwX2luc3QpIHsKCQkJLy8gaWYgaXQgaGFzbid0IHlldCBiZWVuIGRlZmluZWQsIGdyYWIgZnJvbSBmaWVsZAoJCQlpZihpbnN0Lmxhc3RWYWwgPT09IHVuZGVmaW5lZCl7CgkJCQl0aGlzLl9zZXREYXRlRnJvbUZpZWxkKGluc3QsIG5vRGVmYXVsdCk7CgkJCX0KCgkJCXZhciBkYXRlID0gdGhpcy5fZ2V0RGF0ZShpbnN0KTsKCQkJaWYgKGRhdGUgJiYgdHBfaW5zdC5fcGFyc2VUaW1lKCQodGFyZ2V0KS52YWwoKSwgdHBfaW5zdC50aW1lT25seSkpIHsKCQkJCWRhdGUuc2V0SG91cnModHBfaW5zdC5ob3VyLCB0cF9pbnN0Lm1pbnV0ZSwgdHBfaW5zdC5zZWNvbmQsIHRwX2luc3QubWlsbGlzZWMpOwoJCQl9CgkJCXJldHVybiBkYXRlOwoJCX0KCQlyZXR1cm4gdGhpcy5fYmFzZV9nZXREYXRlRGF0ZXBpY2tlcih0YXJnZXQsIG5vRGVmYXVsdCk7Cgl9OwoKCS8qCgkqIG92ZXJyaWRlIHBhcnNlRGF0ZSgpIGJlY2F1c2UgVUkgMS44LjE0IHRocm93cyBhbiBlcnJvciBhYm91dCAiRXh0cmEgY2hhcmFjdGVycyIKCSogQW4gb3B0aW9uIGluIGRhdGFwaWNrZXIgdG8gaWdub3JlIGV4dHJhIGZvcm1hdCBjaGFyYWN0ZXJzIHdvdWxkIGJlIG5pY2VyLgoJKi8KCSQuZGF0ZXBpY2tlci5fYmFzZV9wYXJzZURhdGUgPSAkLmRhdGVwaWNrZXIucGFyc2VEYXRlOwoJJC5kYXRlcGlja2VyLnBhcnNlRGF0ZSA9IGZ1bmN0aW9uKGZvcm1hdCwgdmFsdWUsIHNldHRpbmdzKSB7CgkJdmFyIGRhdGU7CgkJdHJ5IHsKCQkJZGF0ZSA9IHRoaXMuX2Jhc2VfcGFyc2VEYXRlKGZvcm1hdCwgdmFsdWUsIHNldHRpbmdzKTsKCQl9IGNhdGNoIChlcnIpIHsKCQkJLy8gSGFjayEgIFRoZSBlcnJvciBtZXNzYWdlIGVuZHMgd2l0aCBhIGNvbG9uLCBhIHNwYWNlLCBhbmQKCQkJLy8gdGhlICJleHRyYSIgY2hhcmFjdGVycy4gIFdlIHJlbHkgb24gdGhhdCBpbnN0ZWFkIG9mCgkJCS8vIGF0dGVtcHRpbmcgdG8gcGVyZmVjdGx5IHJlcHJvZHVjZSB0aGUgcGFyc2luZyBhbGdvcml0aG0uCgkJCWRhdGUgPSB0aGlzLl9iYXNlX3BhcnNlRGF0ZShmb3JtYXQsIHZhbHVlLnN1YnN0cmluZygwLHZhbHVlLmxlbmd0aC0oZXJyLmxlbmd0aC1lcnIuaW5kZXhPZignOicpLTIpKSwgc2V0dGluZ3MpOwoJCQkkLmRhdGVwaWNrZXIubG9nKCJFcnJvciBwYXJzaW5nIHRoZSBkYXRlIHN0cmluZzogIiArIGVyciArICJcbmRhdGUgc3RyaW5nID0gIiArIHZhbHVlICsgIlxuZGF0ZSBmb3JtYXQgPSAiICsgZm9ybWF0KTsKCQl9CgkJcmV0dXJuIGRhdGU7Cgl9OwoKCS8qCgkqIG92ZXJyaWRlIGZvcm1hdERhdGUgdG8gc2V0IGRhdGUgd2l0aCB0aW1lIHRvIHRoZSBpbnB1dAoJKi8KCSQuZGF0ZXBpY2tlci5fYmFzZV9mb3JtYXREYXRlID0gJC5kYXRlcGlja2VyLl9mb3JtYXREYXRlOwoJJC5kYXRlcGlja2VyLl9mb3JtYXREYXRlID0gZnVuY3Rpb24oaW5zdCwgZGF5LCBtb250aCwgeWVhcikgewoJCXZhciB0cF9pbnN0ID0gdGhpcy5fZ2V0KGluc3QsICd0aW1lcGlja2VyJyk7CgkJaWYgKHRwX2luc3QpIHsKCQkJdHBfaW5zdC5fdXBkYXRlRGF0ZVRpbWUoaW5zdCk7CgkJCXJldHVybiB0cF9pbnN0LiRpbnB1dC52YWwoKTsKCQl9CgkJcmV0dXJuIHRoaXMuX2Jhc2VfZm9ybWF0RGF0ZShpbnN0KTsKCX07CgoJLyoKCSogb3ZlcnJpZGUgb3B0aW9ucyBzZXR0ZXIgdG8gYWRkIHRpbWUgdG8gbWF4RGF0ZShUaW1lKSBhbmQgbWluRGF0ZShUaW1lKS4gTWF4RGF0ZQoJKi8KCSQuZGF0ZXBpY2tlci5fYmFzZV9vcHRpb25EYXRlcGlja2VyID0gJC5kYXRlcGlja2VyLl9vcHRpb25EYXRlcGlja2VyOwoJJC5kYXRlcGlja2VyLl9vcHRpb25EYXRlcGlja2VyID0gZnVuY3Rpb24odGFyZ2V0LCBuYW1lLCB2YWx1ZSkgewoJCXZhciBpbnN0ID0gdGhpcy5fZ2V0SW5zdCh0YXJnZXQpLAoJICAgICAgICBuYW1lX2Nsb25lOwoJCWlmICghaW5zdCkgewoJCQlyZXR1cm4gbnVsbDsKCQl9CgoJCXZhciB0cF9pbnN0ID0gdGhpcy5fZ2V0KGluc3QsICd0aW1lcGlja2VyJyk7CgkJaWYgKHRwX2luc3QpIHsKCQkJdmFyIG1pbiA9IG51bGwsCgkJCQltYXggPSBudWxsLAoJCQkJb25zZWxlY3QgPSBudWxsLAoJCQkJb3ZlcnJpZGVzID0gdHBfaW5zdC5fZGVmYXVsdHMuZXZudHMsCgkJCQlmbnMgPSB7fSwKCQkJCXByb3A7CgkJICAgIGlmICh0eXBlb2YgbmFtZSA9PSAnc3RyaW5nJykgeyAvLyBpZiBtaW4vbWF4IHdhcyBzZXQgd2l0aCB0aGUgc3RyaW5nCgkJICAgICAgICBpZiAobmFtZSA9PT0gJ21pbkRhdGUnIHx8IG5hbWUgPT09ICdtaW5EYXRlVGltZScpIHsKCQkgICAgICAgICAgICBtaW4gPSB2YWx1ZTsKCQkgICAgICAgIH0gZWxzZSBpZiAobmFtZSA9PT0gJ21heERhdGUnIHx8IG5hbWUgPT09ICdtYXhEYXRlVGltZScpIHsKCQkgICAgICAgICAgICBtYXggPSB2YWx1ZTsKCQkgICAgICAgIH0gZWxzZSBpZiAobmFtZSA9PT0gJ29uU2VsZWN0JykgewoJCSAgICAgICAgICAgIG9uc2VsZWN0ID0gdmFsdWU7CgkJICAgICAgICB9IGVsc2UgaWYgKG92ZXJyaWRlcy5oYXNPd25Qcm9wZXJ0eShuYW1lKSkgewoJCSAgICAgICAgICAgIGlmICh0eXBlb2YgKHZhbHVlKSA9PT0gJ3VuZGVmaW5lZCcpIHsKCQkgICAgICAgICAgICAgICAgcmV0dXJuIG92ZXJyaWRlc1tuYW1lXTsKCQkgICAgICAgICAgICB9CgkJICAgICAgICAgICAgZm5zW25hbWVdID0gdmFsdWU7CgkJICAgICAgICAgICAgbmFtZV9jbG9uZSA9IHt9OyAvL2VtcHR5IHJlc3VsdHMgaW4gZXhpdGluZyBmdW5jdGlvbiBhZnRlciBvdmVycmlkZXMgdXBkYXRlZAoJCSAgICAgICAgfQoJCSAgICB9IGVsc2UgaWYgKHR5cGVvZiBuYW1lID09ICdvYmplY3QnKSB7IC8vaWYgbWluL21heCB3YXMgc2V0IHdpdGggdGhlIEpTT04KCQkgICAgICAgIGlmIChuYW1lLm1pbkRhdGUpIHsKCQkgICAgICAgICAgICBtaW4gPSBuYW1lLm1pbkRhdGU7CgkJICAgICAgICB9IGVsc2UgaWYgKG5hbWUubWluRGF0ZVRpbWUpIHsKCQkgICAgICAgICAgICBtaW4gPSBuYW1lLm1pbkRhdGVUaW1lOwoJCSAgICAgICAgfSBlbHNlIGlmIChuYW1lLm1heERhdGUpIHsKCQkgICAgICAgICAgICBtYXggPSBuYW1lLm1heERhdGU7CgkJICAgICAgICB9IGVsc2UgaWYgKG5hbWUubWF4RGF0ZVRpbWUpIHsKCQkgICAgICAgICAgICBtYXggPSBuYW1lLm1heERhdGVUaW1lOwoJCSAgICAgICAgfQoJCSAgICAgICAgZm9yIChwcm9wIGluIG92ZXJyaWRlcykgewoJCSAgICAgICAgICAgIGlmIChvdmVycmlkZXMuaGFzT3duUHJvcGVydHkocHJvcCkgJiYgbmFtZVtwcm9wXSkgewoJCSAgICAgICAgICAgICAgICBmbnNbcHJvcF0gPSBuYW1lW3Byb3BdOwoJCSAgICAgICAgICAgIH0KCQkgICAgICAgIH0KCQkgICAgfQoJCSAgICBmb3IgKHByb3AgaW4gZm5zKSB7CgkJICAgICAgICBpZiAoZm5zLmhhc093blByb3BlcnR5KHByb3ApKSB7CgkJICAgICAgICAgICAgb3ZlcnJpZGVzW3Byb3BdID0gZm5zW3Byb3BdOwoJCSAgICAgICAgICAgIGlmICghbmFtZV9jbG9uZSkgeyBuYW1lX2Nsb25lID0gJC5leHRlbmQoe30sIG5hbWUpO30KCQkgICAgICAgICAgICBkZWxldGUgbmFtZV9jbG9uZVtwcm9wXTsKCQkgICAgICAgIH0KCQkgICAgfQoJCSAgICBpZiAobmFtZV9jbG9uZSAmJiBpc0VtcHR5T2JqZWN0KG5hbWVfY2xvbmUpKSB7IHJldHVybjsgfQoJCSAgICBpZiAobWluKSB7IC8vaWYgbWluIHdhcyBzZXQKCQkgICAgICAgIGlmIChtaW4gPT09IDApIHsKCQkgICAgICAgICAgICBtaW4gPSBuZXcgRGF0ZSgpOwoJCSAgICAgICAgfSBlbHNlIHsKCQkgICAgICAgICAgICBtaW4gPSBuZXcgRGF0ZShtaW4pOwoJCSAgICAgICAgfQoJCSAgICAgICAgdHBfaW5zdC5fZGVmYXVsdHMubWluRGF0ZSA9IG1pbjsKCQkgICAgICAgIHRwX2luc3QuX2RlZmF1bHRzLm1pbkRhdGVUaW1lID0gbWluOwoJCSAgICB9IGVsc2UgaWYgKG1heCkgeyAvL2lmIG1heCB3YXMgc2V0CgkJICAgICAgICBpZiAobWF4ID09PSAwKSB7CgkJICAgICAgICAgICAgbWF4ID0gbmV3IERhdGUoKTsKCQkgICAgICAgIH0gZWxzZSB7CgkJICAgICAgICAgICAgbWF4ID0gbmV3IERhdGUobWF4KTsKCQkgICAgICAgIH0KCQkgICAgICAgIHRwX2luc3QuX2RlZmF1bHRzLm1heERhdGUgPSBtYXg7CgkJICAgICAgICB0cF9pbnN0Ll9kZWZhdWx0cy5tYXhEYXRlVGltZSA9IG1heDsKCQkgICAgfSBlbHNlIGlmIChvbnNlbGVjdCkgewoJCSAgICAgICAgdHBfaW5zdC5fZGVmYXVsdHMub25TZWxlY3QgPSBvbnNlbGVjdDsKCQkgICAgfQoJCX0KCQlpZiAodmFsdWUgPT09IHVuZGVmaW5lZCkgewoJCQlyZXR1cm4gdGhpcy5fYmFzZV9vcHRpb25EYXRlcGlja2VyLmNhbGwoJC5kYXRlcGlja2VyLCB0YXJnZXQsIG5hbWUpOwoJCX0KCQlyZXR1cm4gdGhpcy5fYmFzZV9vcHRpb25EYXRlcGlja2VyLmNhbGwoJC5kYXRlcGlja2VyLCB0YXJnZXQsIG5hbWVfY2xvbmUgfHwgbmFtZSwgdmFsdWUpOwoJfTsKCS8qCgkqIGpRdWVyeSBpc0VtcHR5T2JqZWN0IGRvZXMgbm90IGNoZWNrIGhhc093blByb3BlcnR5IC0gaWYgc29tZW9uZSBoYXMgYWRkZWQgdG8gdGhlIG9iamVjdCBwcm90b3R5cGUsCgkqIGl0IHdpbGwgcmV0dXJuIGZhbHNlIGZvciBhbGwgb2JqZWN0cwoJKi8KCXZhciBpc0VtcHR5T2JqZWN0ID0gZnVuY3Rpb24ob2JqKSB7CgkJdmFyIHByb3A7CgkJZm9yIChwcm9wIGluIG9iaikgewoJCQlpZiAob2JqLmhhc093blByb3BlcnR5KG9iaikpIHsKCQkJCXJldHVybiBmYWxzZTsKCQkJfQoJCX0KCQlyZXR1cm4gdHJ1ZTsKCX07CgoJLyoKCSogalF1ZXJ5IGV4dGVuZCBub3cgaWdub3JlcyBudWxscyEKCSovCgl2YXIgZXh0ZW5kUmVtb3ZlID0gZnVuY3Rpb24odGFyZ2V0LCBwcm9wcykgewoJCSQuZXh0ZW5kKHRhcmdldCwgcHJvcHMpOwoJCWZvciAodmFyIG5hbWUgaW4gcHJvcHMpIHsKCQkJaWYgKHByb3BzW25hbWVdID09PSBudWxsIHx8IHByb3BzW25hbWVdID09PSB1bmRlZmluZWQpIHsKCQkJCXRhcmdldFtuYW1lXSA9IHByb3BzW25hbWVdOwoJCQl9CgkJfQoJCXJldHVybiB0YXJnZXQ7Cgl9OwoKCS8qCgkqIERldGVybWluZSBieSB0aGUgdGltZSBmb3JtYXQgaWYgc2hvdWxkIHVzZSBhbXBtCgkqIFJldHVybnMgdHJ1ZSBpZiBzaG91bGQgdXNlIGFtcG0sIGZhbHNlIGlmIG5vdAoJKi8KCXZhciB1c2VBbXBtID0gZnVuY3Rpb24odGltZUZvcm1hdCl7CgkJcmV0dXJuICh0aW1lRm9ybWF0LmluZGV4T2YoJ3QnKSAhPT0gLTEgJiYgdGltZUZvcm1hdC5pbmRleE9mKCdoJykgIT09IC0xKTsKCX07CgoJLyoKCSogQ29udmVydHMgMjQgaG91ciBmb3JtYXQgaW50byAxMiBob3VyCgkqIFJldHVybnMgMTIgaG91ciB3aXRob3V0IGxlYWRpbmcgMAoJKi8KCXZhciBjb252ZXJ0MjR0bzEyID0gZnVuY3Rpb24oaG91cikgewoJCWlmIChob3VyID4gMTIpIHsKCQkJaG91ciA9IGhvdXIgLSAxMjsKCQl9CgoJCWlmIChob3VyID09IDApIHsKCQkJaG91ciA9IDEyOwoJCX0KCgkJcmV0dXJuIFN0cmluZyhob3VyKTsKCX07CgoJLyoKCSogU3BsaXRzIGRhdGV0aW1lIHN0cmluZyBpbnRvIGRhdGUgYW5zIHRpbWUgc3Vic3RyaW5ncy4KCSogVGhyb3dzIGV4Y2VwdGlvbiB3aGVuIGRhdGUgY2FuJ3QgYmUgcGFyc2VkCgkqIFJldHVybnMgW2RhdGVTdHJpbmcsIHRpbWVTdHJpbmddCgkqLwoJdmFyIHNwbGl0RGF0ZVRpbWUgPSBmdW5jdGlvbihkYXRlRm9ybWF0LCBkYXRlVGltZVN0cmluZywgZGF0ZVNldHRpbmdzLCB0aW1lU2V0dGluZ3MpIHsKCQl0cnkgewoJCQkvLyBUaGUgaWRlYSBpcyB0byBnZXQgdGhlIG51bWJlciBzZXBhcmF0b3Igb2NjdXJhbmNlcyBpbiBkYXRldGltZSBhbmQgdGhlIHRpbWUgZm9ybWF0IHJlcXVlc3RlZCAoc2luY2UgdGltZSBoYXMgCgkJCS8vIGZld2VyIHVua25vd25zLCBtb3N0bHkgbnVtYmVycyBhbmQgYW0vcG0pLiBXZSB3aWxsIHVzZSB0aGUgdGltZSBwYXR0ZXJuIHRvIHNwbGl0LgoJCQl2YXIgc2VwYXJhdG9yID0gdGltZVNldHRpbmdzICYmIHRpbWVTZXR0aW5ncy5zZXBhcmF0b3IgPyB0aW1lU2V0dGluZ3Muc2VwYXJhdG9yIDogJC50aW1lcGlja2VyLl9kZWZhdWx0cy5zZXBhcmF0b3IsCgkJCQlmb3JtYXQgPSB0aW1lU2V0dGluZ3MgJiYgdGltZVNldHRpbmdzLnRpbWVGb3JtYXQgPyB0aW1lU2V0dGluZ3MudGltZUZvcm1hdCA6ICQudGltZXBpY2tlci5fZGVmYXVsdHMudGltZUZvcm1hdCwKCQkJCXRpbWVQYXJ0cyA9IGZvcm1hdC5zcGxpdChzZXBhcmF0b3IpLCAvLyBob3cgbWFueSBvY2N1cmFuY2VzIG9mIHNlcGFyYXRvciBtYXkgYmUgaW4gb3VyIGZvcm1hdD8KCQkJCXRpbWVQYXJ0c0xlbiA9IHRpbWVQYXJ0cy5sZW5ndGgsCgkJCQlhbGxQYXJ0cyA9IGRhdGVUaW1lU3RyaW5nLnNwbGl0KHNlcGFyYXRvciksCgkJCQlhbGxQYXJ0c0xlbiA9IGFsbFBhcnRzLmxlbmd0aDsKCgkJCWlmIChhbGxQYXJ0c0xlbiA+IDEpIHsKCQkJCXJldHVybiBbCgkJCQkJCWFsbFBhcnRzLnNwbGljZSgwLGFsbFBhcnRzTGVuLXRpbWVQYXJ0c0xlbikuam9pbihzZXBhcmF0b3IpLAoJCQkJCQlhbGxQYXJ0cy5zcGxpY2UoMCx0aW1lUGFydHNMZW4pLmpvaW4oc2VwYXJhdG9yKQoJCQkJCV07CgkJCX0KCgkJfSBjYXRjaCAoZXJyKSB7CgkJCSQuZGF0ZXBpY2tlci5sb2coJ0NvdWxkIG5vdCBzcGxpdCB0aGUgZGF0ZSBmcm9tIHRoZSB0aW1lLiBQbGVhc2UgY2hlY2sgdGhlIGZvbGxvd2luZyBkYXRldGltZXBpY2tlciBvcHRpb25zJyArCgkJCQkJIlxudGhyb3duIGVycm9yOiAiICsgZXJyICsKCQkJCQkiXG5kYXRlVGltZVN0cmluZyIgKyBkYXRlVGltZVN0cmluZyArCgkJCQkJIlxuZGF0ZUZvcm1hdCA9ICIgKyBkYXRlRm9ybWF0ICsKCQkJCQkiXG5zZXBhcmF0b3IgPSAiICsgdGltZVNldHRpbmdzLnNlcGFyYXRvciArCgkJCQkJIlxudGltZUZvcm1hdCA9ICIgKyB0aW1lU2V0dGluZ3MudGltZUZvcm1hdCk7CgoJCQlpZiAoZXJyLmluZGV4T2YoIjoiKSA+PSAwKSB7CgkJCQkvLyBIYWNrISAgVGhlIGVycm9yIG1lc3NhZ2UgZW5kcyB3aXRoIGEgY29sb24sIGEgc3BhY2UsIGFuZAoJCQkJLy8gdGhlICJleHRyYSIgY2hhcmFjdGVycy4gIFdlIHJlbHkgb24gdGhhdCBpbnN0ZWFkIG9mCgkJCQkvLyBhdHRlbXB0aW5nIHRvIHBlcmZlY3RseSByZXByb2R1Y2UgdGhlIHBhcnNpbmcgYWxnb3JpdGhtLgoJCQkJdmFyIGRhdGVTdHJpbmdMZW5ndGggPSBkYXRlVGltZVN0cmluZy5sZW5ndGggLSAoZXJyLmxlbmd0aCAtIGVyci5pbmRleE9mKCc6JykgLSAyKSwKCQkJCQl0aW1lU3RyaW5nID0gZGF0ZVRpbWVTdHJpbmcuc3Vic3RyaW5nKGRhdGVTdHJpbmdMZW5ndGgpOwoKCQkJCXJldHVybiBbJC50cmltKGRhdGVUaW1lU3RyaW5nLnN1YnN0cmluZygwLCBkYXRlU3RyaW5nTGVuZ3RoKSksICQudHJpbShkYXRlVGltZVN0cmluZy5zdWJzdHJpbmcoZGF0ZVN0cmluZ0xlbmd0aCkpXTsKCgkJCX0gZWxzZSB7CgkJCQl0aHJvdyBlcnI7CgkJCX0KCQl9CgkJcmV0dXJuIFtkYXRlVGltZVN0cmluZywgJyddOwoJfTsKCgkvKgoJKiBJbnRlcm5hbCBmdW5jdGlvbiB0byBwYXJzZSBkYXRldGltZSBpbnRlcnZhbAoJKiBSZXR1cm5zOiB7ZGF0ZTogRGF0ZSwgdGltZU9iajogT2JqZWN0fSwgd2hlcmUKCSogICBkYXRlIC0gcGFyc2VkIGRhdGUgd2l0aG91dCB0aW1lICh0eXBlIERhdGUpCgkqICAgdGltZU9iaiA9IHtob3VyOiAsIG1pbnV0ZTogLCBzZWNvbmQ6ICwgbWlsbGlzZWM6IH0gLSBwYXJzZWQgdGltZS4gT3B0aW9uYWwKCSovCgl2YXIgcGFyc2VEYXRlVGltZUludGVybmFsID0gZnVuY3Rpb24oZGF0ZUZvcm1hdCwgdGltZUZvcm1hdCwgZGF0ZVRpbWVTdHJpbmcsIGRhdGVTZXR0aW5ncywgdGltZVNldHRpbmdzKSB7CgkJdmFyIGRhdGU7CgkJdmFyIHNwbGl0UmVzID0gc3BsaXREYXRlVGltZShkYXRlRm9ybWF0LCBkYXRlVGltZVN0cmluZywgZGF0ZVNldHRpbmdzLCB0aW1lU2V0dGluZ3MpOwoJCWRhdGUgPSAkLmRhdGVwaWNrZXIuX2Jhc2VfcGFyc2VEYXRlKGRhdGVGb3JtYXQsIHNwbGl0UmVzWzBdLCBkYXRlU2V0dGluZ3MpOwoJCWlmIChzcGxpdFJlc1sxXSAhPT0gJycpIHsKCQkJdmFyIHRpbWVTdHJpbmcgPSBzcGxpdFJlc1sxXSwKCQkJCXBhcnNlZFRpbWUgPSAkLmRhdGVwaWNrZXIucGFyc2VUaW1lKHRpbWVGb3JtYXQsIHRpbWVTdHJpbmcsIHRpbWVTZXR0aW5ncyk7CgoJCQlpZiAocGFyc2VkVGltZSA9PT0gbnVsbCkgewoJCQkJdGhyb3cgJ1dyb25nIHRpbWUgZm9ybWF0JzsKCQkJfQoJCQlyZXR1cm4gewoJCQkJZGF0ZTogZGF0ZSwKCQkJCXRpbWVPYmo6IHBhcnNlZFRpbWUKCQkJfTsKCQl9IGVsc2UgewoJCQlyZXR1cm4gewoJCQkJZGF0ZTogZGF0ZQoJCQl9OwoJCX0KCX07CgoJLyoKCSogSW50ZXJuYWwgZnVuY3Rpb24gdG8gc2V0IHRpbWV6b25lX3NlbGVjdCB0byB0aGUgbG9jYWwgdGltZXpvbmUKCSovCgl2YXIgc2VsZWN0TG9jYWxUaW1lWm9uZSA9IGZ1bmN0aW9uKHRwX2luc3QsIGRhdGUpIHsKCQlpZiAodHBfaW5zdCAmJiB0cF9pbnN0LnRpbWV6b25lX3NlbGVjdCkgewoJCQl0cF9pbnN0Ll9kZWZhdWx0cy51c2VMb2NhbFRpbWV6b25lID0gdHJ1ZTsKCQkJdmFyIG5vdyA9IHR5cGVvZiBkYXRlICE9PSAndW5kZWZpbmVkJyA/IGRhdGUgOiBuZXcgRGF0ZSgpOwoJCQl2YXIgdHpvZmZzZXQgPSAkLnRpbWVwaWNrZXIudGltZVpvbmVPZmZzZXRTdHJpbmcobm93KTsKCQkJaWYgKHRwX2luc3QuX2RlZmF1bHRzLnRpbWV6b25lSXNvODYwMSkgewoJCQkJdHpvZmZzZXQgPSB0em9mZnNldC5zdWJzdHJpbmcoMCwgMykgKyAnOicgKyB0em9mZnNldC5zdWJzdHJpbmcoMyk7CgkJCX0KCQkJdHBfaW5zdC50aW1lem9uZV9zZWxlY3QudmFsKHR6b2Zmc2V0KTsKCQl9Cgl9OwoKCS8qCgkqIENyZWF0ZSBhIFNpbmdsZXRvbiBJbnNhbmNlCgkqLwoJJC50aW1lcGlja2VyID0gbmV3IFRpbWVwaWNrZXIoKTsKCgkvKioKCSAqIEdldCB0aGUgdGltZXpvbmUgb2Zmc2V0IGFzIHN0cmluZyBmcm9tIGEgZGF0ZSBvYmplY3QgKGVnICcrMDUzMCcgZm9yIFVUQys1LjUpCgkgKiBAcGFyYW0gIGRhdGUKCSAqIEByZXR1cm4gc3RyaW5nCgkgKi8KCSQudGltZXBpY2tlci50aW1lWm9uZU9mZnNldFN0cmluZyA9IGZ1bmN0aW9uKGRhdGUpIHsKCQl2YXIgb2ZmID0gZGF0ZS5nZXRUaW1lem9uZU9mZnNldCgpICogLTEsCgkJCW1pbnV0ZXMgPSBvZmYgJSA2MCwKCQkJaG91cnMgPSAob2ZmIC0gbWludXRlcykgLyA2MDsKCQlyZXR1cm4gKG9mZiA+PSAwID8gJysnIDogJy0nKSArICgnMCcgKyAoaG91cnMgKiAxMDEpLnRvU3RyaW5nKCkpLnN1YnN0cigtMikgKyAoJzAnICsgKG1pbnV0ZXMgKiAxMDEpLnRvU3RyaW5nKCkpLnN1YnN0cigtMik7Cgl9OwoKCS8qKgoJICogQ2FsbHMgYHRpbWVwaWNrZXIoKWAgb24gdGhlIGBzdGFydFRpbWVgIGFuZCBgZW5kVGltZWAgZWxlbWVudHMsIGFuZCBjb25maWd1cmVzIHRoZW0gdG8KCSAqIGVuZm9yY2UgZGF0ZSByYW5nZSBsaW1pdHMuCgkgKiBuLmIuIFRoZSBpbnB1dCB2YWx1ZSBtdXN0IGJlIGNvcnJlY3RseSBmb3JtYXR0ZWQgKHJlZm9ybWF0dGluZyBpcyBub3Qgc3VwcG9ydGVkKQoJICogQHBhcmFtICBFbGVtZW50IHN0YXJ0VGltZQoJICogQHBhcmFtICBFbGVtZW50IGVuZFRpbWUKCSAqIEBwYXJhbSAgb2JqIG9wdGlvbnMgT3B0aW9ucyBmb3IgdGhlIHRpbWVwaWNrZXIoKSBjYWxsCgkgKiBAcmV0dXJuIGpRdWVyeQoJICovCgkkLnRpbWVwaWNrZXIudGltZVJhbmdlID0gZnVuY3Rpb24oc3RhcnRUaW1lLCBlbmRUaW1lLCBvcHRpb25zKSB7CgkJcmV0dXJuICQudGltZXBpY2tlci5oYW5kbGVSYW5nZSgndGltZXBpY2tlcicsIHN0YXJ0VGltZSwgZW5kVGltZSwgb3B0aW9ucyk7Cgl9OwoKCS8qKgoJICogQ2FsbHMgYGRhdGV0aW1lcGlja2VyYCBvbiB0aGUgYHN0YXJ0VGltZWAgYW5kIGBlbmRUaW1lYCBlbGVtZW50cywgYW5kIGNvbmZpZ3VyZXMgdGhlbSB0bwoJICogZW5mb3JjZSBkYXRlIHJhbmdlIGxpbWl0cy4KCSAqIEBwYXJhbSAgRWxlbWVudCBzdGFydFRpbWUKCSAqIEBwYXJhbSAgRWxlbWVudCBlbmRUaW1lCgkgKiBAcGFyYW0gIG9iaiBvcHRpb25zIE9wdGlvbnMgZm9yIHRoZSBgdGltZXBpY2tlcigpYCBjYWxsLiBBbHNvIHN1cHBvcnRzIGByZWZvcm1hdGAsCgkgKiAgIGEgYm9vbGVhbiB2YWx1ZSB0aGF0IGNhbiBiZSB1c2VkIHRvIHJlZm9ybWF0IHRoZSBpbnB1dCB2YWx1ZXMgdG8gdGhlIGBkYXRlRm9ybWF0YC4KCSAqIEBwYXJhbSAgc3RyaW5nIG1ldGhvZCBDYW4gYmUgdXNlZCB0byBzcGVjaWZ5IHRoZSB0eXBlIG9mIHBpY2tlciB0byBiZSBhZGRlZAoJICogQHJldHVybiBqUXVlcnkKCSAqLwoJJC50aW1lcGlja2VyLmRhdGVUaW1lUmFuZ2UgPSBmdW5jdGlvbihzdGFydFRpbWUsIGVuZFRpbWUsIG9wdGlvbnMpIHsKCQkkLnRpbWVwaWNrZXIuZGF0ZVJhbmdlKHN0YXJ0VGltZSwgZW5kVGltZSwgb3B0aW9ucywgJ2RhdGV0aW1lcGlja2VyJyk7Cgl9OwoKCS8qKgoJICogQ2FsbHMgYG1ldGhvZGAgb24gdGhlIGBzdGFydFRpbWVgIGFuZCBgZW5kVGltZWAgZWxlbWVudHMsIGFuZCBjb25maWd1cmVzIHRoZW0gdG8KCSAqIGVuZm9yY2UgZGF0ZSByYW5nZSBsaW1pdHMuCgkgKiBAcGFyYW0gIEVsZW1lbnQgc3RhcnRUaW1lCgkgKiBAcGFyYW0gIEVsZW1lbnQgZW5kVGltZQoJICogQHBhcmFtICBvYmogb3B0aW9ucyBPcHRpb25zIGZvciB0aGUgYHRpbWVwaWNrZXIoKWAgY2FsbC4gQWxzbyBzdXBwb3J0cyBgcmVmb3JtYXRgLAoJICogICBhIGJvb2xlYW4gdmFsdWUgdGhhdCBjYW4gYmUgdXNlZCB0byByZWZvcm1hdCB0aGUgaW5wdXQgdmFsdWVzIHRvIHRoZSBgZGF0ZUZvcm1hdGAuCgkgKiBAcGFyYW0gIHN0cmluZyBtZXRob2QgQ2FuIGJlIHVzZWQgdG8gc3BlY2lmeSB0aGUgdHlwZSBvZiBwaWNrZXIgdG8gYmUgYWRkZWQKCSAqIEByZXR1cm4galF1ZXJ5CgkgKi8KCSQudGltZXBpY2tlci5kYXRlUmFuZ2UgPSBmdW5jdGlvbihzdGFydFRpbWUsIGVuZFRpbWUsIG9wdGlvbnMsIG1ldGhvZCkgewoJCW1ldGhvZCA9IG1ldGhvZCB8fCAnZGF0ZXBpY2tlcic7CgkJJC50aW1lcGlja2VyLmhhbmRsZVJhbmdlKG1ldGhvZCwgc3RhcnRUaW1lLCBlbmRUaW1lLCBvcHRpb25zKTsKCX07CgoJLyoqCgkgKiBDYWxscyBgbWV0aG9kYCBvbiB0aGUgYHN0YXJ0VGltZWAgYW5kIGBlbmRUaW1lYCBlbGVtZW50cywgYW5kIGNvbmZpZ3VyZXMgdGhlbSB0bwoJICogZW5mb3JjZSBkYXRlIHJhbmdlIGxpbWl0cy4KCSAqIEBwYXJhbSAgc3RyaW5nIG1ldGhvZCBDYW4gYmUgdXNlZCB0byBzcGVjaWZ5IHRoZSB0eXBlIG9mIHBpY2tlciB0byBiZSBhZGRlZAoJICogQHBhcmFtICBFbGVtZW50IHN0YXJ0VGltZQoJICogQHBhcmFtICBFbGVtZW50IGVuZFRpbWUKCSAqIEBwYXJhbSAgb2JqIG9wdGlvbnMgT3B0aW9ucyBmb3IgdGhlIGB0aW1lcGlja2VyKClgIGNhbGwuIEFsc28gc3VwcG9ydHMgYHJlZm9ybWF0YCwKCSAqICAgYSBib29sZWFuIHZhbHVlIHRoYXQgY2FuIGJlIHVzZWQgdG8gcmVmb3JtYXQgdGhlIGlucHV0IHZhbHVlcyB0byB0aGUgYGRhdGVGb3JtYXRgLgoJICogQHJldHVybiBqUXVlcnkKCSAqLwoJJC50aW1lcGlja2VyLmhhbmRsZVJhbmdlID0gZnVuY3Rpb24obWV0aG9kLCBzdGFydFRpbWUsIGVuZFRpbWUsIG9wdGlvbnMpIHsKCQkkLmZuW21ldGhvZF0uY2FsbChzdGFydFRpbWUsICQuZXh0ZW5kKHsKCQkJb25DbG9zZTogZnVuY3Rpb24oZGF0ZVRleHQsIGluc3QpIHsKCQkJCWNoZWNrRGF0ZXModGhpcywgZW5kVGltZSwgZGF0ZVRleHQpOwoJCQl9LAoJCQlvblNlbGVjdDogZnVuY3Rpb24oc2VsZWN0ZWREYXRlVGltZSkgewoJCQkJc2VsZWN0ZWQodGhpcywgZW5kVGltZSwgJ21pbkRhdGUnKTsKCQkJfQoJCX0sIG9wdGlvbnMsIG9wdGlvbnMuc3RhcnQpKTsKCQkkLmZuW21ldGhvZF0uY2FsbChlbmRUaW1lLCAkLmV4dGVuZCh7CgkJCW9uQ2xvc2U6IGZ1bmN0aW9uKGRhdGVUZXh0LCBpbnN0KSB7CgkJCQljaGVja0RhdGVzKHRoaXMsIHN0YXJ0VGltZSwgZGF0ZVRleHQpOwoJCQl9LAoJCQlvblNlbGVjdDogZnVuY3Rpb24oc2VsZWN0ZWREYXRlVGltZSkgewoJCQkJc2VsZWN0ZWQodGhpcywgc3RhcnRUaW1lLCAnbWF4RGF0ZScpOwoJCQl9CgkJfSwgb3B0aW9ucywgb3B0aW9ucy5lbmQpKTsKCQkvLyB0aW1lcGlja2VyIGRvZXNuJ3QgcHJvdmlkZSBhY2Nlc3MgdG8gaXRzICd0aW1lRm9ybWF0JyBvcHRpb24sIAoJCS8vIG5vciBjb3VsZCBJIGdldCBkYXRlcGlja2VyLmZvcm1hdFRpbWUoKSB0byBiZWhhdmUgd2l0aCB0aW1lcywgc28gSQoJCS8vIGhhdmUgZGlzYWJsZWQgcmVmb3JtYXR0aW5nIGZvciB0aW1lcGlja2VyCgkJaWYgKG1ldGhvZCAhPSAndGltZXBpY2tlcicgJiYgb3B0aW9ucy5yZWZvcm1hdCkgewoJCQkkKFtzdGFydFRpbWUsIGVuZFRpbWVdKS5lYWNoKGZ1bmN0aW9uKCkgewoJCQkJdmFyIGZvcm1hdCA9ICQodGhpcylbbWV0aG9kXS5jYWxsKCQodGhpcyksICdvcHRpb24nLCAnZGF0ZUZvcm1hdCcpLAoJCQkJCWRhdGUgPSBuZXcgRGF0ZSgkKHRoaXMpLnZhbCgpKTsKCQkJCWlmICgkKHRoaXMpLnZhbCgpICYmIGRhdGUpIHsKCQkJCQkkKHRoaXMpLnZhbCgkLmRhdGVwaWNrZXIuZm9ybWF0RGF0ZShmb3JtYXQsIGRhdGUpKTsKCQkJCX0KCQkJfSk7CgkJfQoJCWNoZWNrRGF0ZXMoc3RhcnRUaW1lLCBlbmRUaW1lLCBzdGFydFRpbWUudmFsKCkpOwoKCQlmdW5jdGlvbiBjaGVja0RhdGVzKGNoYW5nZWQsIG90aGVyLCBkYXRlVGV4dCkgewoJCQlpZiAob3RoZXIudmFsKCkgJiYgKG5ldyBEYXRlKHN0YXJ0VGltZS52YWwoKSkgPiBuZXcgRGF0ZShlbmRUaW1lLnZhbCgpKSkpIHsKCQkJCW90aGVyLnZhbChkYXRlVGV4dCk7CgkJCX0KCQl9CgkJc2VsZWN0ZWQoc3RhcnRUaW1lLCBlbmRUaW1lLCAnbWluRGF0ZScpOwoJCXNlbGVjdGVkKGVuZFRpbWUsIHN0YXJ0VGltZSwgJ21heERhdGUnKTsKCgkJZnVuY3Rpb24gc2VsZWN0ZWQoY2hhbmdlZCwgb3RoZXIsIG9wdGlvbikgewoJCQlpZiAoISQoY2hhbmdlZCkudmFsKCkpIHsKCQkJCXJldHVybjsKCQkJfQoJCQl2YXIgZGF0ZSA9ICQoY2hhbmdlZClbbWV0aG9kXS5jYWxsKCQoY2hhbmdlZCksICdnZXREYXRlJyk7CgkJCS8vIHRpbWVwaWNrZXIgZG9lc24ndCBpbXBsZW1lbnQgJ2dldERhdGUnIGFuZCByZXR1cm5zIGEgalF1ZXJ5CgkJCWlmIChkYXRlLmdldFRpbWUpIHsKCQkJCSQob3RoZXIpW21ldGhvZF0uY2FsbCgkKG90aGVyKSwgJ29wdGlvbicsIG9wdGlvbiwgZGF0ZSk7CgkJCX0KCQl9CgkJcmV0dXJuICQoW3N0YXJ0VGltZS5nZXQoMCksIGVuZFRpbWUuZ2V0KDApXSk7Cgl9OwoKCS8qCgkqIEtlZXAgdXAgd2l0aCB0aGUgdmVyc2lvbgoJKi8KCSQudGltZXBpY2tlci52ZXJzaW9uID0gIjEuMS4xIjsKCn0pKGpRdWVyeSk7]]></data>
	</file>
	<file>
	  <filename>/lib/fielddefs/SelectDateTime/liseeh.SelectDateTime.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHANCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQojIExJU0UgLSBMaXN0IEl0IFNwZWNpYWwgRWRpdGlvbg0KIyBWZXJzaW9uIDEuMg0KIyBBIGZvcmsgb2YgTGlzdEkyDQojIG1haW50YWluZWQgYnkgRmVybmFuZG8gTW9yZ2FkbyBBS0EgSm8gTW9yZw0KIyBzaW5jZSAyMDE1DQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIw0KIyBPcmlnaW5hbCBBdXRob3I6IEJlbiBNYWxlbiwgPGJlbkBjb25jZXB0ZmFjdG9yeS5jb20uYXU+DQojIENvLU1haW50YWluZXI6IFNpbW9uIFJhZGZvcmQsIDxzaW1vbkBjb25jZXB0ZmFjdG9yeS5jb20uYXU+DQojIFdlYjogd3d3LmNvbmNlcHRmYWN0b3J5LmNvbS5hdQ0KIw0KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCiMNCiMgTWFpbnRhaW5lciBzaW5jZSAyMDExIHVwIHRvIDIwMTQ6IEpvbmF0aGFuIFNjaG1pZCwgPGhpQGpvbmF0aGFuc2NobWlkLmRlPg0KIyBXZWI6IHd3dy5qb25hdGhhbnNjaG1pZC5kZQ0KIw0KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCiMNCiMgU29tZSB3YWNrb3Mgc3RhcnRlZCBkZXN0cm95aW5nIHN0dWZmIHNpbmNlIDIwMTIgYW5kIHN0b3BwZWQgYXQgMjAxNDoNCiMNCiMgVGFwaW8gTMO2eXR0eSwgPHRhcHNhQG9yYW5nZS1tZWRpYS5maT4NCiMgV2ViOiB3d3cub3JhbmdlLW1lZGlhLmZpDQojDQojIEdvcmFuIElsaWMsIDx1bmlxdTNlQGdtYWlsLmNvbT4NCiMgV2ViOiB3d3cuaWNoLW1hY2gtZGFzLmF0DQojDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIw0KIyBMSVNFIGlzIGEgQ01TIE1hZGUgU2ltcGxlIG1vZHVsZSB0aGF0IGVuYWJsZXMgdGhlIHdlYiBkZXZlbG9wZXIgdG8gY3JlYXRlDQojIG11bHRpcGxlIGxpc3RzIHRocm91Z2hvdXQgYSBzaXRlLiBJdCBjYW4gYmUgZHVwbGljYXRlZCBhbmQgZ2l2ZW4gZnJpZW5kbHkNCiMgbmFtZXMgZm9yIGVhc2llciBjbGllbnQgbWFpbnRlbmFuY2UuDQojDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIyBCRUdJTl9MSUNFTlNFDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIyBUaGlzIGZpbGUgaXMgcGFydCBvZiBMSVNFDQojIExJU0UgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5DQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5DQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yDQojIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uDQojDQojIExJU0UgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLA0KIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZg0KIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlDQojIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuDQojIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlDQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlDQojIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcgVVNBDQojIE9yIHJlYWQgaXQgb25saW5lOiBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwNCiMNCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQojIEVORF9MSUNFTlNFDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCiMgQ3VycmVudCBhdmFpbGFibGUgZXZlbnRzIGluIHN5c3RlbToNCiMgIC0gT25JdGVtTG9hZChMSVNFICYkbW9kKQ0KIyAgLSBPbkl0ZW1TYXZlKExJU0UgJiRtb2QpDQojICAtIE9uSXRlbURlbGV0ZShMSVNFICYkbW9kKQ0KIyAgLSBJdGVtU2F2ZVByZVByb2Nlc3MoQXJyYXkgJiRlcnJvcnMsIEFycmF5ICYkcGFyYW1zKSANCiMgIC0gSXRlbVNhdmVQb3N0UHJvY2VzcyhBcnJheSAmJGVycm9ycywgQXJyYXkgJiRwYXJhbXMpDQojDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KY2xhc3MgbGlzZWVoX1NlbGVjdERhdGVUaW1lIGV4dGVuZHMgTElTRUV2ZW50SGFuZGxlckJhc2UNCnsNCg0KICAjLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQogICMgT3ZlcndyaXRhYmxlIGV2ZW50cw0KICAjLS0tLS0tLS0tLS0tLS0tLS0tLS0tICAgIA0KDQogIC8qKg0KICAgKiBMSVNFIEZpZWxkIERhdGFiYXNlIFNhdmUgbWV0aG9kDQogICAqDQogICAqIEByZXR1cm4gdm9pZA0KICAgKi8gIA0KICBwdWJsaWMgZnVuY3Rpb24gT25JdGVtU2F2ZShMSVNFICRtb2QpDQogIHsgICAgDQogICAgJGRiID0gY21zbXMoKS0+R2V0RGIoKTsNCiAgDQogICAgJHF1ZXJ5ICA9ICdERUxFVEUgRlJPTSAnIC4gY21zX2RiX3ByZWZpeCgpIC4gJ21vZHVsZV8nIC4gJG1vZC0+X0dldE1vZHVsZUFsaWFzKCkgLiAnX2ZpZWxkdmFsIFdIRVJFIGl0ZW1faWQgPSA/IEFORCBmaWVsZGRlZl9pZCA9ID8nOw0KICAgICRyZXN1bHQgPSAkZGItPkV4ZWN1dGUoJHF1ZXJ5LCBhcnJheSgkdGhpcy0+R2V0UGFyZW50SXRlbSgpLT5pdGVtX2lkLCAkdGhpcy0+R2V0SWQoKSkpOw0KICAgICAgDQovLyAgICBpZiAoISRyZXN1bHQpDQovLyAgICAgIGRpZSgnRkFUQUwgU1FMIEVSUk9SOiAnIC4gJGRiLT5FcnJvck1zZygpIC4gJzxici8+UVVFUlk6ICcgLiAkZGItPnNxbCk7DQoNCiAgICBpZighJHJlc3VsdCkgDQogICAgICB0aHJvdyBuZXcgXExJU0VcRXhjZXB0aW9uKCRkYi0+RXJyb3JObygpIC4gJyAtICcgLiAkZGItPkVycm9yTXNnKCkgLiAnIC0gUXVlcnk6ICcgLiAkZGItPnNxbCwgXExJU0VcRXJyb3I6OkRJU0NSRVRFX0RCICk7DQogIA0KICAgICRxdWVyeSAgPSAnSU5TRVJUIElOVE8gJyAuIGNtc19kYl9wcmVmaXgoKSAuICdtb2R1bGVfJyAuICRtb2QtPl9HZXRNb2R1bGVBbGlhcygpIC4gJ19maWVsZHZhbCAoaXRlbV9pZCwgZmllbGRkZWZfaWQsIHZhbHVlX2luZGV4LCB2YWx1ZSkgVkFMVUVTICg/LD8sPyw/KSc7DQogICAgJGluZGV4ID0gMDsNCiAgICAkY29tcGF0aWJpbGl0eSA9ICR0aGlzLT5HZXRPcHRpb25WYWx1ZSgnYmFja3dhcmRzX2NvbXBhdGliaWxpdHknLCBGQUxTRSk7DQogICAgDQogICAgZm9yZWFjaCgkdGhpcy0+R2V0VmFsdWUoKSBhcyAkb25lX3ZhbCkNCiAgICB7DQogICAgICBpZighJG9uZV92YWwpIGNvbnRpbnVlOw0KICAgICAgDQogICAgICAkdmFsdWUgPSAkb25lX3ZhbDsNCiAgICAgIA0KICAgICAgaWYoISRjb21wYXRpYmlsaXR5KQ0KICAgICAgew0KICAgICAgICAkdmFsdWUgPSBsaXNlX2RhdGV0aW1lX3V0aWxzOjpkYXRlX3RvX3VuaXhfdHMoJG9uZV92YWwpOw0KICAgICAgfQ0KICAgIA0KICAgICAgJHJlc3VsdCA9ICRkYi0+RXhlY3V0ZSgkcXVlcnksIGFycmF5KCR0aGlzLT5HZXRQYXJlbnRJdGVtKCktPml0ZW1faWQsICR0aGlzLT5HZXRJZCgpLCAkaW5kZXgsICR2YWx1ZSkpOw0KDQovLyAgICAgIGlmICghJHJlc3VsdCkNCi8vICAgICAgICBkaWUoJ0ZBVEFMIFNRTCBFUlJPUjogJyAuICRkYi0+RXJyb3JNc2coKSAuICc8YnIvPlFVRVJZOiAnIC4gJGRiLT5zcWwpOw0KDQogICAgICBpZighJHJlc3VsdCkgDQogICAgICAgIHRocm93IG5ldyBcTElTRVxFeGNlcHRpb24oJGRiLT5FcnJvck5vKCkgLiAnIC0gJyAuICRkYi0+RXJyb3JNc2coKSAuICcgLSBRdWVyeTogJyAuICRkYi0+c3FsLCBcTElTRVxFcnJvcjo6RElTQ1JFVEVfREIgKTsNCg0KICAgICAgJGluZGV4Kys7ICAgICAgICAgICAgDQogICAgfQ0KICANCiAgfQ0KDQogIC8qKg0KICAgKiBMSVNFIEZpZWxkIERhdGFiYXNlIExvYWQgbWV0aG9kDQogICAqDQogICAqIEByZXR1cm4gdm9pZA0KICAgKi8gICAgDQogIHB1YmxpYyBmdW5jdGlvbiBPbkl0ZW1Mb2FkKExJU0UgJiRtb2QpDQogIHsNCiAgICAkZGIgPSBjbXNtcygpLT5HZXREYigpOw0KICANCiAgICAkcXVlcnkgPSAiU0VMRUNUIHZhbHVlX2luZGV4LCB2YWx1ZSwgZGF0YSBGUk9NICIgLiBjbXNfZGJfcHJlZml4KCkgLiAibW9kdWxlXyIgLiAkbW9kLT5fR2V0TW9kdWxlQWxpYXMoKSAuICJfZmllbGR2YWwgV0hFUkUgZmllbGRkZWZfaWQgPSA/IEFORCBpdGVtX2lkID0gPyI7DQogICAgJGRiciA9ICRkYi0+RXhlY3V0ZSgkcXVlcnksIGFycmF5KCR0aGlzLT5HZXRJZCgpLCAkdGhpcy0+R2V0UGFyZW50SXRlbSgpLT5pdGVtX2lkKSk7DQogICAgDQogICAgJGNvbXBhdGliaWxpdHkgPSAkdGhpcy0+R2V0T3B0aW9uVmFsdWUoJ2JhY2t3YXJkc19jb21wYXRpYmlsaXR5JywgRkFMU0UpOw0KICAgIA0KICAgIGlmKCEkY29tcGF0aWJpbGl0eSkNCiAgICB7DQogICAgICAkZGF0ZV9mb3JtYXQgPSBsaXNlX2RhdGV0aW1lX3V0aWxzOjpmb3JtYXRfdG9fZGF0ZXBpY2tlciggJHRoaXMtPkdldE9wdGlvblZhbHVlKCdkYXRlX2Zvcm1hdCcsICdkZC1tbS15eScpICk7DQogICAgICAkdGltZV9mb3JtYXQgPSBsaXNlX2RhdGV0aW1lX3V0aWxzOjpmb3JtYXRfdG9fdGltZXBpY2tlciggJHRoaXMtPkdldE9wdGlvblZhbHVlKCd0aW1lX2Zvcm1hdCcsICdISDptbScpICk7DQogICAgICAkZm9ybWF0X3R5cGUgPSAkdGhpcy0+R2V0T3B0aW9uVmFsdWUoJ2Zvcm1hdF90eXBlJywgMCk7DQogICAgICANCiAgICAgIC8qKg0KICAgICAgKiAwIC0gY29tYmluZWQNCiAgICAgICogMSAtIGRhdGVfZm9ybWF0DQogICAgICAqIDIgLSB0aW1lX2Zvcm1hdA0KICAgICAgKi8NCiAgICAgIHN3aXRjaCgkZm9ybWF0X3R5cGUpIA0KICAgICAgew0KICAgICAgICAgY2FzZSAwOg0KICAgICAgICAgICAgJGZvcm1hdCA9ICgkZGF0ZV9mb3JtYXQpIC4gJyAnIC4gJHRpbWVfZm9ybWF0Ow0KICAgICAgICAgICBicmVhazsNCiAgICAgICAgIGNhc2UgMToNCiAgICAgICAgICAgICRmb3JtYXQgPSAkZGF0ZV9mb3JtYXQ7DQogICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgY2FzZSAyOg0KICAgICAgICAgICAgJGZvcm1hdCA9ICR0aW1lX2Zvcm1hdDsNCiAgICAgICAgICAgYnJlYWs7DQogICAgICB9DQogICAgfQ0KICAgIA0KICAgICRpbnB1dF9hcnIgPSBhcnJheSgpOw0KICAgIA0KICAgIHdoaWxlKCRkYnIgJiYgISRkYnItPkVPRikNCiAgICB7DQogICAgICAvLyA/Pz8/IChKTSkNCiAgICAgIGlmKCFpc19udWxsKCRkYnItPmZpZWxkc1snZGF0YSddKSkNCiAgICAgIHsNCiAgICAgICAgJHRoaXMtPlNldFZhbHVlKCB1bnNlcmlhbGl6ZSgkZGJyLT5maWVsZHNbJ2RhdGEnXSkgKTsNCiAgICAgICAgcmV0dXJuOw0KICAgICAgfQ0KICAgICAgDQogICAgICAkdmFsdWUgPSAkZGJyLT5maWVsZHNbJ3ZhbHVlJ107DQogICAgICANCiAgICAgIA0KICAgICAgDQogICAgICBpZighJGNvbXBhdGliaWxpdHkpDQogICAgICB7DQogICAgICAgICR0aGlzLT5TZXRPcHRpb25WYWx1ZSgndW5peF9kYXRldGltZV9zdGFtcCcsICR2YWx1ZSk7DQogICAgICAgICR2YWx1ZSA9IGxpc2VfZGF0ZXRpbWVfdXRpbHM6OnVuaXhfdHNfdG9fZGF0ZSgkdmFsdWUsICRmb3JtYXQpOw0KICAgICAgfQ0KICAgICAgZWxzZQ0KICAgICAgew0KICAgICAgICAkdGhpcy0+U2V0T3B0aW9uVmFsdWUoICd1bml4X2RhdGV0aW1lX3N0YW1wJywgbGlzZV9kYXRldGltZV91dGlsczo6ZGF0ZV90b191bml4X3RzKCR2YWx1ZSkgKTsNCiAgICAgIH0NCiAgICAgIA0KICAgICAgJGlucHV0X2FyclskZGJyLT5maWVsZHNbJ3ZhbHVlX2luZGV4J11dID0gJHZhbHVlOw0KICAgICAgJGRici0+TW92ZU5leHQoKTsNCiAgICB9DQogICAgDQogICAgaWYoJGRicikgJGRici0+Q2xvc2UoKTsgICAgICANCiAgICAgIA0KICAgICR0aGlzLT5TZXRWYWx1ZSgkaW5wdXRfYXJyKTsgLy8gPC0gQWx3YXlzIHNldCBhcnJheSwgcmVnYXJkbGVzcyBvZiBjb250ZW50cywgY2hlY2sgaWYgdGhpcyBjYW4gZmFpbC4gIA0KICB9ICANCg0KfSAvLyBlbmQgb2YgY2xhc3MNCg0KPz4=]]></data>
	</file>
	<file>
	  <filename>/lib/fielddefs/SelectDateTime/lisefd.SelectDateTime.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHANCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQojIExJU0UgLSBMaXN0IEl0IFNwZWNpYWwgRWRpdGlvbg0KIyBWZXJzaW9uIDEuMg0KIyBBIGZvcmsgb2YgTGlzdEkyDQojIG1haW50YWluZWQgYnkgRmVybmFuZG8gTW9yZ2FkbyBBS0EgSm8gTW9yZw0KIyBzaW5jZSAyMDE1DQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIw0KIyBPcmlnaW5hbCBBdXRob3I6IEJlbiBNYWxlbiwgPGJlbkBjb25jZXB0ZmFjdG9yeS5jb20uYXU+DQojIENvLU1haW50YWluZXI6IFNpbW9uIFJhZGZvcmQsIDxzaW1vbkBjb25jZXB0ZmFjdG9yeS5jb20uYXU+DQojIFdlYjogd3d3LmNvbmNlcHRmYWN0b3J5LmNvbS5hdQ0KIw0KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCiMNCiMgTWFpbnRhaW5lciBzaW5jZSAyMDExIHVwIHRvIDIwMTQ6IEpvbmF0aGFuIFNjaG1pZCwgPGhpQGpvbmF0aGFuc2NobWlkLmRlPg0KIyBXZWI6IHd3dy5qb25hdGhhbnNjaG1pZC5kZQ0KIw0KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCiMNCiMgU29tZSB3YWNrb3Mgc3RhcnRlZCBkZXN0cm95aW5nIHN0dWZmIHNpbmNlIDIwMTIgYW5kIHN0b3BwZWQgYXQgMjAxNDoNCiMNCiMgVGFwaW8gTMO2eXR0eSwgPHRhcHNhQG9yYW5nZS1tZWRpYS5maT4NCiMgV2ViOiB3d3cub3JhbmdlLW1lZGlhLmZpDQojDQojIEdvcmFuIElsaWMsIDx1bmlxdTNlQGdtYWlsLmNvbT4NCiMgV2ViOiB3d3cuaWNoLW1hY2gtZGFzLmF0DQojDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIw0KIyBMSVNFIGlzIGEgQ01TIE1hZGUgU2ltcGxlIG1vZHVsZSB0aGF0IGVuYWJsZXMgdGhlIHdlYiBkZXZlbG9wZXIgdG8gY3JlYXRlDQojIG11bHRpcGxlIGxpc3RzIHRocm91Z2hvdXQgYSBzaXRlLiBJdCBjYW4gYmUgZHVwbGljYXRlZCBhbmQgZ2l2ZW4gZnJpZW5kbHkNCiMgbmFtZXMgZm9yIGVhc2llciBjbGllbnQgbWFpbnRlbmFuY2UuDQojDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIyBCRUdJTl9MSUNFTlNFDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIyBUaGlzIGZpbGUgaXMgcGFydCBvZiBMSVNFDQojIExJU0UgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5DQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5DQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yDQojIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uDQojDQojIExJU0UgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLA0KIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZg0KIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlDQojIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuDQojIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlDQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlDQojIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcgVVNBDQojIE9yIHJlYWQgaXQgb25saW5lOiBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwNCiMNCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQojIEVORF9MSUNFTlNFDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KY2xhc3MgbGlzZWZkX1NlbGVjdERhdGVUaW1lIGV4dGVuZHMgTElTRUZpZWxkZGVmQmFzZQ0Kew0KCXB1YmxpYyBmdW5jdGlvbiBfX2NvbnN0cnVjdCgmJGRiX2luZm8pIA0KCXsJDQoJCXBhcmVudDo6X19jb25zdHJ1Y3QoJGRiX2luZm8pOw0KCQkNCgkJJHRoaXMtPlNldEZyaWVuZGx5VHlwZSgkdGhpcy0+TW9kTGFuZygnZmllbGRkZWZfJy4kdGhpcy0+R2V0VHlwZSgpKSk7DQoJfQ0KCQ0KCXB1YmxpYyBmdW5jdGlvbiBHZXRIZWFkZXJIVE1MKCkNCgl7DQogICAgJHRtcGwgPSA8PDxFT1QNCjxsaW5rIHR5cGU9InRleHQvY3NzIiByZWw9InN0eWxlc2hlZXQiIGhyZWY9InskdGhpcy0+R2V0VVJMUGF0aCgpfS9qcWV1cnktdWktdGltZXBpY2tlci1hZGRvbi5jc3MiIC8+DQo8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJ7JHRoaXMtPkdldFVSTFBhdGgoKX0vanF1ZXJ5LXVpLXRpbWVwaWNrZXItYWRkb24uanMiPjwvc2NyaXB0Pg0KRU9UOw0KCQlyZXR1cm4gJHRtcGw7DQoJfQ0KCQ0KCXB1YmxpYyBmdW5jdGlvbiBGb3JtYXRUeXBlcygpDQoJew0KCQlyZXR1cm4gYXJyYXkNCiAgICAoDQoJCQkwID0+ICR0aGlzLT5Nb2RMYW5nKCdjb21iaW5lZCcpLA0KCQkJMSA9PiAkdGhpcy0+TW9kTGFuZygnZGF0ZV9mb3JtYXQnKSwNCgkJCTIgPT4gJHRoaXMtPk1vZExhbmcoJ3RpbWVfZm9ybWF0JykNCgkJKTsNCgl9DQoJCQ0KfSAvLyBlbmQgb2YgY2xhc3MNCj8+]]></data>
	</file>
	<file>
	  <filename>/lib/fielddefs/SelectDateTime/output.SelectDateTime.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[eyRmaWVsZGRlZi5uYW1lfTogeyRmaWVsZGRlZi52YWx1ZXxjbXNfZGF0ZV9mb3JtYXR9]]></data>
	</file>
	<file>
	  <filename>/lib/fielddefs/SelectFile</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/lib/fielddefs/SelectFile/admin.SelectFile.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PGZpZWxkc2V0PgogIDxsZWdlbmQ+eyRmaWVsZGRlZi0+TW9kTGFuZygnb3B0aW9ucycpfTwvbGVnZW5kPgogIDxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CiAgICA8cCBjbGFzcz0icGFnZXRleHQiPnskZmllbGRkZWYtPk1vZExhbmcoJ2FsbG93ZWQnKX06PC9wPgogICAgPHAgY2xhc3M9InBhZ2VpbnB1dCI+CgkgICAgPGlucHV0IHR5cGU9InRleHQiIG5hbWU9InskYWN0aW9uaWR9Y3VzdG9tX2lucHV0W2FsbG93ZWRdIiB2YWx1ZT0ieyRmaWVsZGRlZi0+R2V0T3B0aW9uVmFsdWUoJ2FsbG93ZWQnLCAncGRmLGdpZixqcGVnLGpwZycpfSIgLz4KICAgIDwvcD4KICAgIDxwIGNsYXNzPSJwYWdldGV4dCI+PGRpdiBjbGFzcz0iaW5mb3JtYXRpb24iPnskZmllbGRkZWYtPk1vZExhbmcoJ2ZpZWxkZGVmX2FsbG93X2hlbHAnKX08L2Rpdj48L3A+CiAgPC9kaXY+CiAgPGhyPgogIDxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CiAgICA8cCBjbGFzcz0icGFnZXRleHQiPnskZmllbGRkZWYtPk1vZExhbmcoJ2RpcicpfTo8L3A+CiAgICA8cCBjbGFzcz0icGFnZWlucHV0Ij4KCSAgICA8aW5wdXQgdHlwZT0idGV4dCIgbmFtZT0ieyRhY3Rpb25pZH1jdXN0b21faW5wdXRbZGlyXSIgdmFsdWU9InskZmllbGRkZWYtPkdldE9wdGlvblZhbHVlKCdkaXInLCdpbWFnZXMnKX0iIC8+CiAgICA8L3A+CiAgICA8cCBjbGFzcz0icGFnZXRleHQiPjxkaXYgY2xhc3M9ImluZm9ybWF0aW9uIj57JGZpZWxkZGVmLT5Nb2RMYW5nKCdmaWVsZGRlZl9kaXJfaGVscCcpfTwvZGl2PjwvcD4KICA8L2Rpdj4KICA8aHI+CiAgPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KICAgIDxwIGNsYXNzPSJwYWdldGV4dCI+eyRmaWVsZGRlZi0+TW9kTGFuZygnZXhjbHVkZV9wcmVmaXgnKX06PC9wPgogICAgPHAgY2xhc3M9InBhZ2VpbnB1dCI+CgkgICAgPGlucHV0IHR5cGU9InRleHQiIG5hbWU9InskYWN0aW9uaWR9Y3VzdG9tX2lucHV0W2V4Y2x1ZGVfcHJlZml4XSIgdmFsdWU9InskZmllbGRkZWYtPkdldE9wdGlvblZhbHVlKCdleGNsdWRlX3ByZWZpeCcpfSIgLz4KICAgIDwvcD4KICAgIDxwIGNsYXNzPSJwYWdldGV4dCI+PGRpdiBjbGFzcz0iaW5mb3JtYXRpb24iPnskZmllbGRkZWYtPk1vZExhbmcoJ2ZpZWxkZGVmX2V4Y2x1ZGVfcHJlZml4X2hlbHAnKX08L2Rpdj48L3A+CiAgPC9kaXY+CjwvZmllbGRzZXQ+Cg==]]></data>
	</file>
	<file>
	  <filename>/lib/fielddefs/SelectFile/help.SelectFile.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PGJ1dHRvbiBjbGFzcz0iYWNjb3JkaW9uIj48c3Ryb25nPnskZmllbGRkZWYtPkdldEZyaWVuZGx5VHlwZSgpfTwvc3Ryb25nPjwvYnV0dG9uPgoKPGRpdiBjbGFzcz0iYWNjcGFuZWwiPgoKCTxoND5XaGF0IGRvZXMgaXQgZG8/PC9oND4KCgk8cD5UaGlzIGZpZWxkIGRlZmluaXRpb24gY2FuIGJlIHVzZWQgdG8gYWRkIGEgPHN0cm9uZz5TZWxlY3QgRmllbGQ8L3N0cm9uZz4gZmllbGQgdG8gYSBMSVNFIGl0ZW0uPC9wPgoKCTxwPlRPRE88L3A+CgoKCTxoND5Ib3cgZG8gSSB1c2UgaXQ/PC9oND4KCgk8cD5UT0RPPC9wPgoKCTxwPlRoZSBzZXR0aW5ncyBmb3IgdGhpcyBmaWVsZCBhcmU6PC9wPgoKCTx1bD4KCQk8bGk+PGI+QWxsb3dlZDwvYj48L2xpPgoJCTxsaT48Yj5EaXJlY3Rvcnk8L2I+PC9saT4KCQk8bGk+PGI+RXhjbHVkZSBwcmVmaXg8L2I+PC9saT4KCTwvdWw+Cgo8L2Rpdj4=]]></data>
	</file>
	<file>
	  <filename>/lib/fielddefs/SelectFile/index.html</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PCEtLSBEVU1NWSBIVE1MIEZJTEUgLS0+]]></data>
	</file>
	<file>
	  <filename>/lib/fielddefs/SelectFile/input.SelectFile.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KCTxwIGNsYXNzPSJwYWdldGV4dCI+eyRmaWVsZGRlZi0+R2V0TmFtZSgpfXtpZiAkZmllbGRkZWYtPklzUmVxdWlyZWQoKX0qey9pZn06PC9wPgoJPHAgY2xhc3M9InBhZ2VpbnB1dCI+CgkJe2lmICRmaWVsZGRlZi0+R2V0RGVzYygpfSh7JGZpZWxkZGVmLT5HZXREZXNjKCl9KTxiciAvPnsvaWZ9CgkJe2h0bWxfb3B0aW9ucyBuYW1lPSJgJGFjdGlvbmlkYGN1c3RvbWZpZWxkW2AkZmllbGRkZWYtPkdldElkKClgXSIgb3B0aW9ucz0kZmllbGRkZWYtPkdldEZpbGVzKCkgc2VsZWN0ZWQ9JGZpZWxkZGVmLT5HZXRWYWx1ZSgpfQoJPC9wPgo8L2Rpdj4=]]></data>
	</file>
	<file>
	  <filename>/lib/fielddefs/SelectFile/lisefd.SelectFile.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHANCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQojIExJU0UgLSBMaXN0IEl0IFNwZWNpYWwgRWRpdGlvbg0KIyBWZXJzaW9uIDEuMg0KIyBBIGZvcmsgb2YgTGlzdEkyDQojIG1haW50YWluZWQgYnkgRmVybmFuZG8gTW9yZ2FkbyBBS0EgSm8gTW9yZw0KIyBzaW5jZSAyMDE1DQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIw0KIyBPcmlnaW5hbCBBdXRob3I6IEJlbiBNYWxlbiwgPGJlbkBjb25jZXB0ZmFjdG9yeS5jb20uYXU+DQojIENvLU1haW50YWluZXI6IFNpbW9uIFJhZGZvcmQsIDxzaW1vbkBjb25jZXB0ZmFjdG9yeS5jb20uYXU+DQojIFdlYjogd3d3LmNvbmNlcHRmYWN0b3J5LmNvbS5hdQ0KIw0KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCiMNCiMgTWFpbnRhaW5lciBzaW5jZSAyMDExIHVwIHRvIDIwMTQ6IEpvbmF0aGFuIFNjaG1pZCwgPGhpQGpvbmF0aGFuc2NobWlkLmRlPg0KIyBXZWI6IHd3dy5qb25hdGhhbnNjaG1pZC5kZQ0KIw0KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCiMNCiMgU29tZSB3YWNrb3Mgc3RhcnRlZCBkZXN0cm95aW5nIHN0dWZmIHNpbmNlIDIwMTIgYW5kIHN0b3BwZWQgYXQgMjAxNDoNCiMNCiMgVGFwaW8gTMO2eXR0eSwgPHRhcHNhQG9yYW5nZS1tZWRpYS5maT4NCiMgV2ViOiB3d3cub3JhbmdlLW1lZGlhLmZpDQojDQojIEdvcmFuIElsaWMsIDx1bmlxdTNlQGdtYWlsLmNvbT4NCiMgV2ViOiB3d3cuaWNoLW1hY2gtZGFzLmF0DQojDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIw0KIyBMSVNFIGlzIGEgQ01TIE1hZGUgU2ltcGxlIG1vZHVsZSB0aGF0IGVuYWJsZXMgdGhlIHdlYiBkZXZlbG9wZXIgdG8gY3JlYXRlDQojIG11bHRpcGxlIGxpc3RzIHRocm91Z2hvdXQgYSBzaXRlLiBJdCBjYW4gYmUgZHVwbGljYXRlZCBhbmQgZ2l2ZW4gZnJpZW5kbHkNCiMgbmFtZXMgZm9yIGVhc2llciBjbGllbnQgbWFpbnRlbmFuY2UuDQojDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIyBCRUdJTl9MSUNFTlNFDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIyBUaGlzIGZpbGUgaXMgcGFydCBvZiBMSVNFDQojIExJU0UgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5DQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5DQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yDQojIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uDQojDQojIExJU0UgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLA0KIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZg0KIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlDQojIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuDQojIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlDQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlDQojIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcgVVNBDQojIE9yIHJlYWQgaXQgb25saW5lOiBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwNCiMNCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQojIEVORF9MSUNFTlNFDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KY2xhc3MgbGlzZWZkX1NlbGVjdEZpbGUgZXh0ZW5kcyBMSVNFRmllbGRkZWZCYXNlDQp7DQoJcHVibGljIGZ1bmN0aW9uIF9fY29uc3RydWN0KCYkZGJfaW5mbykgDQoJewkNCgkJcGFyZW50OjpfX2NvbnN0cnVjdCgkZGJfaW5mbyk7DQoJCQ0KCQkkdGhpcy0+U2V0RnJpZW5kbHlUeXBlKCR0aGlzLT5Nb2RMYW5nKCdmaWVsZGRlZl8nLiR0aGlzLT5HZXRUeXBlKCkpKTsNCgl9DQoJDQoJcHVibGljIGZ1bmN0aW9uIEdldEZpbGVzKCkNCgl7DQoJCSRjb25maWcgPSBjbXNtcygpLT5HZXRDb25maWcoKTsNCgkJDQoJCSRwYXRoID0gY21zX2pvaW5fcGF0aCgkY29uZmlnWyd1cGxvYWRzX3BhdGgnXSwgJHRoaXMtPkdldE9wdGlvblZhbHVlKCdkaXInKSk7DQoNCgkJaWYgKCFpc19kaXIoJHBhdGgpKSB7DQoJCQlAbWtkaXIoJHBhdGgpOw0KCQl9DQoNCgkJJGFsbG93ZWQgPSAoJHRoaXMtPkdldE9wdGlvblZhbHVlKCdhbGxvd2VkJykgIT0gJycgPyBleHBsb2RlKCcsJywkdGhpcy0+R2V0T3B0aW9uVmFsdWUoJ2FsbG93ZWQnKSkgOiBhcnJheSgNCgkJCSdqcGcnLA0KCQkJJ2dpZicsDQoJCQkncG5nJw0KCQkpKTsNCg0KCQkkaW52YWxpZCA9IGFycmF5KCcuJywnLi4nKTsNCgkJJGV4Y2x1ZGVfcHJlZml4ID0gZXhwbG9kZSgnLCcsICR0aGlzLT5HZXRPcHRpb25WYWx1ZSgnZXhjbHVkZV9wcmVmaXgnKSk7DQoJCQ0KCQkkaW1hZ2VzID0gYXJyYXkoKTsNCgkJaWYgKCRoYW5kbGUgPSBvcGVuZGlyKCRwYXRoKSkgew0KCQkJd2hpbGUgKGZhbHNlICE9PSAoJGZpbGUgPSByZWFkZGlyKCRoYW5kbGUpKSkgew0KCQkJDQoJCQkJaWYoaW5fYXJyYXkoJGZpbGUsICRpbnZhbGlkKSkgY29udGludWU7DQoJCQkJDQoJCQkJZm9yZWFjaCgkZXhjbHVkZV9wcmVmaXggYXMgJG9uZSkgew0KCQkJCQ0KCQkJCQlpZihzdGFydHN3aXRoKCRmaWxlLCAkb25lKSAmJiAhZW1wdHkoJG9uZSkpIGNvbnRpbnVlIDI7DQoJCQkJfQ0KCQkJCQ0KCQkJCWZvcmVhY2goJGFsbG93ZWQgYXMgJGV4dCkgew0KCQkJCQ0KCQkJCQlpZihlbmRzd2l0aCgkZmlsZSwgJGV4dCkpIHsNCgkJCQkJDQoJCQkJCQkkaW1hZ2VzWyRmaWxlXSA9ICRmaWxlOw0KCQkJCQl9DQoJCQkJDQoJCQkJfQ0KCQkJfQ0KDQoJCQljbG9zZWRpcigkaGFuZGxlKTsNCgkJfQ0KDQoJCWFzb3J0KCRpbWFnZXMpOw0KCQkkaW1hZ2VzID0gYXJyYXlfbWVyZ2UoYXJyYXkoJyc9PiR0aGlzLT5Nb2RMYW5nKCdzZWxlY3Rfb25lJykpLCAkaW1hZ2VzKTsNCgkJCQ0KCQlyZXR1cm4gJGltYWdlczsNCgl9DQoJDQp9IC8vIGVuZCBvZiBjbGFzcw0KPz4=]]></data>
	</file>
	<file>
	  <filename>/lib/fielddefs/SelectFile/output.SelectFile.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[eyRmaWVsZGRlZi5uYW1lfTogPGEgaHJlZj0ieyRmaWVsZGRlZi0+R2V0SW1hZ2VQYXRoKHRydWUpfS97JGZpZWxkZGVmLnZhbHVlfSI+eyRmaWVsZGRlZi52YWx1ZX08L2E+]]></data>
	</file>
	<file>
	  <filename>/lib/fielddefs/Slider</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/lib/fielddefs/Slider/admin.Slider.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PGZpZWxkc2V0PgogIDxsZWdlbmQ+eyRmaWVsZGRlZi0+TW9kTGFuZygnb3B0aW9ucycpfTwvbGVnZW5kPgogIDxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CiAgICA8cCBjbGFzcz0icGFnZXRleHQiPnskZmllbGRkZWYtPk1vZExhbmcoJ3dpZHRoJyl9OjwvcD4KICAgIDxwIGNsYXNzPSJwYWdlaW5wdXQiPgogICAgICA8aW5wdXQgdHlwZT0idGV4dCIgbmFtZT0ieyRhY3Rpb25pZH1jdXN0b21faW5wdXRbd2lkdGhdIiB2YWx1ZT0ieyRmaWVsZGRlZi0+R2V0T3B0aW9uVmFsdWUoJ3dpZHRoJywgJzIwJScpfSIgLz4KICAgIDwvcD4KICAgIDxwIGNsYXNzPSJwYWdldGV4dCI+PGRpdiBjbGFzcz0iaW5mb3JtYXRpb24iPnskZmllbGRkZWYtPk1vZExhbmcoJ2ZpZWxkZGVmX3dpZHRoX2hlbHAnKX08L2Rpdj48L3A+CiAgPC9kaXY+CgogIDxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CiAgICA8cCBjbGFzcz0icGFnZXRleHQiPnskZmllbGRkZWYtPk1vZExhbmcoJ21pbl92YWx1ZScpfTo8L3A+CiAgICA8cCBjbGFzcz0icGFnZWlucHV0Ij4KICAgICAgPGlucHV0IHR5cGU9InRleHQiIG5hbWU9InskYWN0aW9uaWR9Y3VzdG9tX2lucHV0W21pbl0iIHZhbHVlPSJ7JGZpZWxkZGVmLT5HZXRPcHRpb25WYWx1ZSgnbWluJywgMCl9IiAvPgogICAgPC9wPgogICAgPHAgY2xhc3M9InBhZ2V0ZXh0Ij48ZGl2IGNsYXNzPSJpbmZvcm1hdGlvbiI+eyRmaWVsZGRlZi0+TW9kTGFuZygnZmllbGRkZWZfbWluX3ZhbHVlX2hlbHAnKX08L2Rpdj48L3A+CiAgPC9kaXY+CgogIDxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CiAgICA8cCBjbGFzcz0icGFnZXRleHQiPnskZmllbGRkZWYtPk1vZExhbmcoJ21heF92YWx1ZScpfTo8L3A+CiAgICA8cCBjbGFzcz0icGFnZWlucHV0Ij4KICAgICAgPGlucHV0IHR5cGU9InRleHQiIG5hbWU9InskYWN0aW9uaWR9Y3VzdG9tX2lucHV0W21heF0iIHZhbHVlPSJ7JGZpZWxkZGVmLT5HZXRPcHRpb25WYWx1ZSgnbWF4JywgMTAwKX0iIC8+CiAgICA8L3A+CiAgICA8cCBjbGFzcz0icGFnZXRleHQiPjxkaXYgY2xhc3M9ImluZm9ybWF0aW9uIj57JGZpZWxkZGVmLT5Nb2RMYW5nKCdmaWVsZGRlZl9tYXhfdmFsdWVfaGVscCcpfTwvZGl2PjwvcD4KICA8L2Rpdj4KCiAgPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KICAgIDxwIGNsYXNzPSJwYWdldGV4dCI+eyRmaWVsZGRlZi0+TW9kTGFuZygnaW5jcmVtZW50X2J5Jyl9OjwvcD4KICAgIDxwIGNsYXNzPSJwYWdlaW5wdXQiPgogICAgICA8aW5wdXQgdHlwZT0idGV4dCIgbmFtZT0ieyRhY3Rpb25pZH1jdXN0b21faW5wdXRbaW5jcmVtZW50XSIgdmFsdWU9InskZmllbGRkZWYtPkdldE9wdGlvblZhbHVlKCdpbmNyZW1lbnQnLCAxKX0iIC8+CiAgICA8L3A+CiAgICA8cCBjbGFzcz0icGFnZXRleHQiPjxkaXYgY2xhc3M9ImluZm9ybWF0aW9uIj57JGZpZWxkZGVmLT5Nb2RMYW5nKCdmaWVsZGRlZl9pbmNyZW1lbnRfYnlfaGVscCcpfTwvZGl2PjwvcD4KICA8L2Rpdj4KPC9maWVsZHNldD4=]]></data>
	</file>
	<file>
	  <filename>/lib/fielddefs/Slider/help.Slider.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PGJ1dHRvbiBjbGFzcz0iYWNjb3JkaW9uIj48c3Ryb25nPnskZmllbGRkZWYtPkdldEZyaWVuZGx5VHlwZSgpfTwvc3Ryb25nPjwvYnV0dG9uPgoKPGRpdiBjbGFzcz0iYWNjcGFuZWwiPgoKCTxoND5XaGF0IGRvZXMgaXQgZG8/PC9oND4KCgk8cD5UaGlzIGZpZWxkIGRlZmluaXRpb24gY2FuIGJlIHVzZWQgdG8gYWRkIGEgPHN0cm9uZz5TbGlkZXI8L3N0cm9uZz4gc2V0dGluZyB0byBhIExJU0UgaXRlbS48L3A+CgoJPHA+VE9ETzwvcD4KCgoJPGg0PkhvdyBkbyBJIHVzZSBpdD88L2g0PgoKCTxwPlRPRE88L3A+CgoJPHA+VGhlIHNldHRpbmdzIGZvciB0aGlzIGZpZWxkIGFyZTo8L3A+CgoJPHVsPgoJCTxsaT48Yj5XaWR0aDwvYj48L2xpPgoJCTxsaT48Yj5NaW5pbXVtIFZhbHVlPC9iPjwvbGk+CgkJPGxpPjxiPk1heGltdW0gVmFsdWU8L2I+PC9saT4KCQk8bGk+PGI+SW5jcmVtZW50IGJ5PC9iPjwvbGk+Cgk8L3VsPgoKPC9kaXY+]]></data>
	</file>
	<file>
	  <filename>/lib/fielddefs/Slider/index.html</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PCEtLSBEVU1NWSBIVE1MIEZJTEUgLS0+]]></data>
	</file>
	<file>
	  <filename>/lib/fielddefs/Slider/input.Slider.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KCTxwIGNsYXNzPSJwYWdldGV4dCI+eyRmaWVsZGRlZi0+R2V0TmFtZSgpfXtpZiAkZmllbGRkZWYtPklzUmVxdWlyZWQoKX0qey9pZn06PC9wPgoJPGRpdiBjbGFzcz0icGFnZWlucHV0Ij4KCQl7aWYgJGZpZWxkZGVmLT5HZXREZXNjKCl9KHskZmllbGRkZWYtPkdldERlc2MoKX0pPGJyIC8+ey9pZn0KCQk8cD48ZW0+eyRmaWVsZGRlZi0+TW9kTGFuZygndmFsdWUnKX06IDwvZW0+PHNwYW4gaWQ9InskYWN0aW9uaWR9Y3VzdG9tZmllbGRbeyRmaWVsZGRlZi0+R2V0SWQoKX1dLXZpc2libGUtdmFsdWUiPnskZmllbGRkZWYtPkdldFZhbHVlKCl8ZGVmYXVsdDokZmllbGRkZWYtPkdldE9wdGlvblZhbHVlKCdtaW4nKX08L3NwYW4+PC9wPgoJCTxkaXYgY2xhc3M9Imxpc2Utc2xpZGVyLWNvbnRhaW5lciIgc3R5bGU9IndpZHRoOiB7JGZpZWxkZGVmLT5HZXRPcHRpb25WYWx1ZSgnd2lkdGgnKX0iPgoJCQk8ZGl2IGNsYXNzPSJsaXNlLXNsaWRlciIgaWQ9InskYWN0aW9uaWR9Y3VzdG9tZmllbGRbeyRmaWVsZGRlZi0+R2V0SWQoKX1dLXNsaWRlciI+PC9kaXY+CgkJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9InskYWN0aW9uaWR9Y3VzdG9tZmllbGRbeyRmaWVsZGRlZi0+R2V0SWQoKX1dIiBpZD0ieyRhY3Rpb25pZH1jdXN0b21maWVsZFt7JGZpZWxkZGVmLT5HZXRJZCgpfV0tdmFsdWUiIHZhbHVlPSJ7JGZpZWxkZGVmLT5HZXRWYWx1ZSgpfGRlZmF1bHQ6JGZpZWxkZGVmLT5HZXRPcHRpb25WYWx1ZSgnbWluJyl9IiAvPgoJCTwvZGl2PgoJPC9kaXY+CgkKCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KCWpRdWVyeShkb2N1bWVudCkucmVhZHkoZnVuY3Rpb24oJCkgewoJCSQoIiN7JGFjdGlvbmlkfWN1c3RvbWZpZWxkXFxcW3skZmllbGRkZWYtPkdldElkKCl9XFxcXS1zbGlkZXIiKQoJCS5zbGlkZXIoewogICAgICAgICAgICByYW5nZTogIm1pbiIsCiAgICAgICAgICAgIG1pbjogeyRmaWVsZGRlZi0+R2V0T3B0aW9uVmFsdWUoJ21pbicpfSwKICAgICAgICAgICAgbWF4OiB7JGZpZWxkZGVmLT5HZXRPcHRpb25WYWx1ZSgnbWF4Jyl9LAogICAgICAgICAgICB7aWYgJGZpZWxkZGVmLT5HZXRPcHRpb25WYWx1ZSgnaW5jcmVtZW50JykgIT0gJyd9c3RlcDogeyRmaWVsZGRlZi0+R2V0T3B0aW9uVmFsdWUoJ2luY3JlbWVudCcpfSx7L2lmfQoJCQl2YWx1ZTogJCggIiN7JGFjdGlvbmlkfWN1c3RvbWZpZWxkXFxcW3skZmllbGRkZWYtPkdldElkKCl9XFxcXS12YWx1ZSIgKS52YWwoKSwKCQkJc2xpZGU6IGZ1bmN0aW9uKGV2ZW50LCB1aSkgewoJCQkKCQkJCSQoICIjeyRhY3Rpb25pZH1jdXN0b21maWVsZFxcXFt7JGZpZWxkZGVmLT5HZXRJZCgpfVxcXF0tdmlzaWJsZS12YWx1ZSIgKS50ZXh0KCB1aS52YWx1ZSApOwoJCQkJJCggIiN7JGFjdGlvbmlkfWN1c3RvbWZpZWxkXFxcW3skZmllbGRkZWYtPkdldElkKCl9XFxcXS12YWx1ZSIgKS52YWwoIHVpLnZhbHVlICk7CgkJCX0JCQoJCX0pOwoJfSk7Cgk8L3NjcmlwdD4KCQo8L2Rpdj4=]]></data>
	</file>
	<file>
	  <filename>/lib/fielddefs/Slider/lisefd-slider.css</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[Lmxpc2Utc2xpZGVyLWNvbnRhaW5lciB7IHBhZGRpbmc6IDZweCAxMHB4IDZweCA2cHg7IH0NCi5saXNlLXNsaWRlci1jb250YWluZXIgPiBkaXYgeyB6LWluZGV4OiAxOyB9]]></data>
	</file>
	<file>
	  <filename>/lib/fielddefs/Slider/lisefd.Slider.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHANCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQojIExJU0UgLSBMaXN0IEl0IFNwZWNpYWwgRWRpdGlvbg0KIyBWZXJzaW9uIDEuMg0KIyBBIGZvcmsgb2YgTGlzdEkyDQojIG1haW50YWluZWQgYnkgRmVybmFuZG8gTW9yZ2FkbyBBS0EgSm8gTW9yZw0KIyBzaW5jZSAyMDE1DQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIw0KIyBPcmlnaW5hbCBBdXRob3I6IEJlbiBNYWxlbiwgPGJlbkBjb25jZXB0ZmFjdG9yeS5jb20uYXU+DQojIENvLU1haW50YWluZXI6IFNpbW9uIFJhZGZvcmQsIDxzaW1vbkBjb25jZXB0ZmFjdG9yeS5jb20uYXU+DQojIFdlYjogd3d3LmNvbmNlcHRmYWN0b3J5LmNvbS5hdQ0KIw0KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCiMNCiMgTWFpbnRhaW5lciBzaW5jZSAyMDExIHVwIHRvIDIwMTQ6IEpvbmF0aGFuIFNjaG1pZCwgPGhpQGpvbmF0aGFuc2NobWlkLmRlPg0KIyBXZWI6IHd3dy5qb25hdGhhbnNjaG1pZC5kZQ0KIw0KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCiMNCiMgU29tZSB3YWNrb3Mgc3RhcnRlZCBkZXN0cm95aW5nIHN0dWZmIHNpbmNlIDIwMTIgYW5kIHN0b3BwZWQgYXQgMjAxNDoNCiMNCiMgVGFwaW8gTMO2eXR0eSwgPHRhcHNhQG9yYW5nZS1tZWRpYS5maT4NCiMgV2ViOiB3d3cub3JhbmdlLW1lZGlhLmZpDQojDQojIEdvcmFuIElsaWMsIDx1bmlxdTNlQGdtYWlsLmNvbT4NCiMgV2ViOiB3d3cuaWNoLW1hY2gtZGFzLmF0DQojDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIw0KIyBMSVNFIGlzIGEgQ01TIE1hZGUgU2ltcGxlIG1vZHVsZSB0aGF0IGVuYWJsZXMgdGhlIHdlYiBkZXZlbG9wZXIgdG8gY3JlYXRlDQojIG11bHRpcGxlIGxpc3RzIHRocm91Z2hvdXQgYSBzaXRlLiBJdCBjYW4gYmUgZHVwbGljYXRlZCBhbmQgZ2l2ZW4gZnJpZW5kbHkNCiMgbmFtZXMgZm9yIGVhc2llciBjbGllbnQgbWFpbnRlbmFuY2UuDQojDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIyBCRUdJTl9MSUNFTlNFDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIyBUaGlzIGZpbGUgaXMgcGFydCBvZiBMSVNFDQojIExJU0UgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5DQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5DQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yDQojIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uDQojDQojIExJU0UgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLA0KIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZg0KIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlDQojIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuDQojIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlDQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlDQojIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcgVVNBDQojIE9yIHJlYWQgaXQgb25saW5lOiBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwNCiMNCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQojIEVORF9MSUNFTlNFDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KY2xhc3MgbGlzZWZkX1NsaWRlciBleHRlbmRzIExJU0VGaWVsZGRlZkJhc2UNCnsNCglwdWJsaWMgZnVuY3Rpb24gX19jb25zdHJ1Y3QoJiRkYl9pbmZvKSANCgl7CQ0KCQlwYXJlbnQ6Ol9fY29uc3RydWN0KCRkYl9pbmZvKTsNCgkJDQoJCSR0aGlzLT5TZXRGcmllbmRseVR5cGUoJHRoaXMtPk1vZExhbmcoJ2ZpZWxkZGVmXycuJHRoaXMtPkdldFR5cGUoKSkpOw0KCX0NCgkNCglwdWJsaWMgZnVuY3Rpb24gR2V0SGVhZGVySFRNTCgpDQoJew0KICAgICAgICAkdG1wbCA9IDw8PEVPVA0KPGxpbmsgdHlwZT0idGV4dC9jc3MiIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0ieyR0aGlzLT5HZXRVUkxQYXRoKCl9L2xpc2VmZC1zbGlkZXIuY3NzIiAvPg0KRU9UOw0KCQlyZXR1cm4gJHRtcGw7DQoJfQkNCgkJCQ0KfSAvLyBlbmQgb2YgY2xhc3MNCj8+]]></data>
	</file>
	<file>
	  <filename>/lib/fielddefs/Slider/output.Slider.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[eyRmaWVsZGRlZi5uYW1lfTogeyRmaWVsZGRlZi52YWx1ZX0=]]></data>
	</file>
	<file>
	  <filename>/lib/fielddefs/Tabs</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/lib/fielddefs/Tabs/help.Tabs.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PGJ1dHRvbiBjbGFzcz0iYWNjb3JkaW9uIj48c3Ryb25nPnskZmllbGRkZWYtPkdldEZyaWVuZGx5VHlwZSgpfTwvc3Ryb25nPjwvYnV0dG9uPgoKPGRpdiBjbGFzcz0iYWNjcGFuZWwiPgoKCTxoND5XaGF0IGRvZXMgaXQgZG8/PC9oND4KCgk8cD5UaGlzIGZpZWxkIGRlZmluaXRpb24gY2FuIGJlIHVzZWQgdG8gYWRkIGEgPHN0cm9uZz5UYWI8L3N0cm9uZz4gdG8gYSBMSVNFIGl0ZW0uPC9wPgoKCTxwPlRPRE88L3A+CgoKCTxoND5Ib3cgZG8gSSB1c2UgaXQ/PC9oND4KCgk8cD5UT0RPPC9wPgoKPC9kaXY+]]></data>
	</file>
	<file>
	  <filename>/lib/fielddefs/Tabs/index.html</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PCEtLSBEVU1NWSBIVE1MIEZJTEUgLS0+]]></data>
	</file>
	<file>
	  <filename>/lib/fielddefs/Tabs/lisefd.Tabs.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKCmNsYXNzIGxpc2VmZF9UYWJzIGV4dGVuZHMgTElTRUZpZWxkZGVmQmFzZQp7CglwdWJsaWMgZnVuY3Rpb24gX19jb25zdHJ1Y3QoJiRkYl9pbmZvLCAkY2FsbGVyX29iamVjdCkgCgl7CQoJCXBhcmVudDo6X19jb25zdHJ1Y3QoJGRiX2luZm8sICRjYWxsZXJfb2JqZWN0KTsKCQkKCQkkdGhpcy0+U2V0RnJpZW5kbHlUeXBlKCR0aGlzLT5Nb2RMYW5nKCdmaWVsZGRlZl9UYWJzJykpOwoJfQoKCXB1YmxpYyBmdW5jdGlvbiBjbG9zZVRhYigpCgl7CgkJcmV0dXJuICc8L2Rpdj4nOwoJfQoKCXB1YmxpYyBmdW5jdGlvbiBkaXNwbGF5VGFiSGVhZGVyKCkKCXsKCQkkdGVtcGxhdGUgPSAnPGRpdiBpZD0idGFie3tpZH19Ij57e2xhYmVsfX08L2Rpdj4nOwoJCXJldHVybiBzdHJfcmVwbGFjZSgKCQkJWyd7e2lkfX0nLCAne3tsYWJlbH19J10sCgkJCVskdGhpcy0+YWxpYXMsICR0aGlzLT5uYW1lXSwKCQkJJHRlbXBsYXRlCgkJKTsKCX0KCglwdWJsaWMgZnVuY3Rpb24gUmVuZGVySW5wdXQoJGlkLCAkcmV0dXJuaWQpCgl7CgkJJHRlbXBsYXRlID0gJzwvZGl2PjxkaXYgaWQ9InRhYnt7YWxpYXN9fV9jIj4nOwoJCXJldHVybiBzdHJfcmVwbGFjZSgKCQkJWyd7e2FsaWFzfX0nXSwKCQkJWyR0aGlzLT5hbGlhc10sCgkJCSR0ZW1wbGF0ZQoJCSk7Cgl9Cn0=]]></data>
	</file>
	<file>
	  <filename>/lib/fielddefs/Tags</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/lib/fielddefs/Tags/admin.Tags.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PGZpZWxkc2V0PgogIDxsZWdlbmQ+eyRmaWVsZGRlZi0+TW9kTGFuZygnb3B0aW9ucycpfTwvbGVnZW5kPgogIDxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CiAgICA8cCBjbGFzcz0icGFnZXRleHQiPnskZmllbGRkZWYtPk1vZExhbmcoJ3NpemUnKX06PC9wPgogICAgPHAgY2xhc3M9InBhZ2VpbnB1dCI+CiAgICAgIDxpbnB1dCB0eXBlPSJ0ZXh0IiBuYW1lPSJ7JGFjdGlvbmlkfWN1c3RvbV9pbnB1dFtzaXplXSIgdmFsdWU9InskZmllbGRkZWYtPkdldE9wdGlvblZhbHVlKCdzaXplJywgMjApfSIgLz4KICAgIDwvcD4KICAgIDxwIGNsYXNzPSJwYWdldGV4dCI+PGRpdiBjbGFzcz0iaW5mb3JtYXRpb24iPnskZmllbGRkZWYtPk1vZExhbmcoJ2ZpZWxkZGVmX3NpemVfaGVscCcpfTwvZGl2PjwvcD4KICA8L2Rpdj4KICA8aHI+CiAgPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KICAgIDxwIGNsYXNzPSJwYWdldGV4dCI+eyRmaWVsZGRlZi0+TW9kTGFuZygnbWF4X2xlbmd0aCcpfTo8L3A+CiAgICA8cCBjbGFzcz0icGFnZWlucHV0Ij4KICAgICAgPGlucHV0IHR5cGU9InRleHQiIG5hbWU9InskYWN0aW9uaWR9Y3VzdG9tX2lucHV0W21heF9sZW5ndGhdIiB2YWx1ZT0ieyRmaWVsZGRlZi0+R2V0T3B0aW9uVmFsdWUoJ21heF9sZW5ndGgnLCAyNTUpfSIgLz4KICAgIDwvcD4KICAgIDxwIGNsYXNzPSJwYWdldGV4dCI+PGRpdiBjbGFzcz0iaW5mb3JtYXRpb24iPnskZmllbGRkZWYtPk1vZExhbmcoJ2ZpZWxkZGVmX21heF9sZW5ndGhfaGVscCcpfTwvZGl2PjwvcD4KICA8L2Rpdj4KPC9maWVsZHNldD4=]]></data>
	</file>
	<file>
	  <filename>/lib/fielddefs/Tags/header.Tags.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PGxpbmsgdHlwZT0idGV4dC9jc3MiIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0ieyRmaWVsZGRlZmRpcn0vanF1ZXJ5LnRhZ3NpbnB1dC5taW4uY3NzIiAvPg0KPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0ieyRmaWVsZGRlZmRpcn0vanF1ZXJ5LnRhZ3NpbnB1dC5taW4uanMiPjwvc2NyaXB0Pg==]]></data>
	</file>
	<file>
	  <filename>/lib/fielddefs/Tags/help.Tags.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PGJ1dHRvbiBjbGFzcz0iYWNjb3JkaW9uIj48c3Ryb25nPnskZmllbGRkZWYtPkdldEZyaWVuZGx5VHlwZSgpfTwvc3Ryb25nPjwvYnV0dG9uPgoKPGRpdiBjbGFzcz0iYWNjcGFuZWwiPgoKCTxoND5XaGF0IGRvZXMgaXQgZG8/PC9oND4KCgk8cD5UaGlzIGZpZWxkIGRlZmluaXRpb24gY2FuIGJlIHVzZWQgdG8gYWRkIGEgPHN0cm9uZz5UYWc8L3N0cm9uZz4gdG8gYSBMSVNFIGl0ZW0uPC9wPgoKCTxwPlRPRE88L3A+CgoKCTxoND5Ib3cgZG8gSSB1c2UgaXQ/PC9oND4KCgk8cD5UT0RPPC9wPgoKCTxwPlRoZSBzZXR0aW5ncyBmb3IgdGhpcyBmaWVsZCBhcmU6PC9wPgoKCTx1bD4KCQk8bGk+PGI+U2l6ZTwvYj48L2xpPgoJCTxsaT48Yj5NYXggTGVuZ3RoPC9iPjwvbGk+Cgk8L3VsPgoKPC9kaXY+]]></data>
	</file>
	<file>
	  <filename>/lib/fielddefs/Tags/index.html</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PCEtLSBEVU1NWSBIVE1MIEZJTEUgLS0+]]></data>
	</file>
	<file>
	  <filename>/lib/fielddefs/Tags/input.Tags.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KCTxwIGNsYXNzPSJwYWdldGV4dCI+eyRmaWVsZGRlZi0+R2V0TmFtZSgpfXtpZiAkZmllbGRkZWYtPklzUmVxdWlyZWQoKX0qey9pZn06PC9wPgoJPHAgY2xhc3M9InBhZ2VpbnB1dCI+CiAgPHNjcmlwdD4KICAgICAgJChmdW5jdGlvbigpeyAKICAgICAgICAgICQoImlucHV0LnRhZ3MiKS50YWdzSW5wdXQoewogICAgICAgICAgICB3aWR0aDonYXV0bycKICAgICAgICAgIH0pOwogICAgICB9KTsKICA8L3NjcmlwdD4KCQl7aWYgJGZpZWxkZGVmLT5HZXREZXNjKCl9KHskZmllbGRkZWYtPkdldERlc2MoKX0pPGJyIC8+ey9pZn0KCQk8aW5wdXQgdHlwZT0idGV4dCIgY2xhc3M9J3RhZ3MnIG5hbWU9InskYWN0aW9uaWR9Y3VzdG9tZmllbGRbeyRmaWVsZGRlZi0+R2V0SWQoKX1dIiB2YWx1ZT0ieyRmaWVsZGRlZi0+R2V0VmFsdWUoKX0iIHNpemU9InskZmllbGRkZWYtPkdldE9wdGlvblZhbHVlKCdzaXplJyl9IiBtYXhsZW5ndGg9InskZmllbGRkZWYtPkdldE9wdGlvblZhbHVlKCdtYXhfbGVuZ3RoJyl9IiAvPgoJPC9wPgo8L2Rpdj4=]]></data>
	</file>
	<file>
	  <filename>/lib/fielddefs/Tags/jquery.tagsinput.min.css</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[ZGl2LnRhZ3NpbnB1dHtib3JkZXI6MXB4IHNvbGlkICNDQ0M7YmFja2dyb3VuZDojRkZGO292ZXJmbG93LXk6YXV0bztwYWRkaW5nOjVweH1kaXYudGFnc2lucHV0IHNwYW4udGFne2JvcmRlcjoxcHggc29saWQgI2ZmOGMwMDstbW96LWJvcmRlci1yYWRpdXM6MnB4Oy13ZWJraXQtYm9yZGVyLXJhZGl1czoycHg7ZGlzcGxheTpibG9jaztmbG9hdDpsZWZ0O3RleHQtZGVjb3JhdGlvbjpub25lO2JhY2tncm91bmQ6I2ZmZTRiMjtjb2xvcjojZmY4YzAwO21hcmdpbi1yaWdodDo1cHg7bWFyZ2luLWJvdHRvbTo1cHg7Zm9udC1mYW1pbHk6aGVsdmV0aWNhO2ZvbnQtc2l6ZToxM3B4O3BhZGRpbmc6MnB4fWRpdi50YWdzaW5wdXQgc3Bhbi50YWcgYXtmb250LXdlaWdodDo3MDA7Y29sb3I6I2ZmOGMwMDt0ZXh0LWRlY29yYXRpb246bm9uZTtmb250LXNpemU6MTFweH1kaXYudGFnc2lucHV0IGlucHV0e3dpZHRoOjgwcHg7Zm9udC1mYW1pbHk6aGVsdmV0aWNhO2ZvbnQtc2l6ZToxM3B4O2JvcmRlcjoxcHggc29saWQgdHJhbnNwYXJlbnQ7YmFja2dyb3VuZDowIDA7Y29sb3I6IzAwMDtvdXRsaW5lOjA7bWFyZ2luOjAgNXB4IDVweCAwO3BhZGRpbmc6NXB4fWRpdi50YWdzaW5wdXQgZGl2e2Rpc3BsYXk6YmxvY2s7ZmxvYXQ6bGVmdH0udGFnc19jbGVhcntjbGVhcjpib3RoO3dpZHRoOjEwMCU7aGVpZ2h0OjB9Lm5vdF92YWxpZHtiYWNrZ3JvdW5kOiNGQkQ4REIhaW1wb3J0YW50O2NvbG9yOiM5MDExMUEhaW1wb3J0YW50fQ==]]></data>
	</file>
	<file>
	  <filename>/lib/fielddefs/Tags/jquery.tagsinput.min.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[IWZ1bmN0aW9uKGEpe3ZhciBiPW5ldyBBcnJheSxjPW5ldyBBcnJheTthLmZuLmRvQXV0b3NpemU9ZnVuY3Rpb24oYil7dmFyIGM9YSh0aGlzKS5kYXRhKCJtaW53aWR0aCIpLGQ9YSh0aGlzKS5kYXRhKCJtYXh3aWR0aCIpLGU9IiIsZj1hKHRoaXMpLGc9YSgiIyIrYSh0aGlzKS5kYXRhKCJ0ZXN0ZXJfaWQiKSk7aWYoZSE9PShlPWYudmFsKCkpKXt2YXIgaD1lLnJlcGxhY2UoLyYvZywiJmFtcDsiKS5yZXBsYWNlKC9ccy9nLCIgIikucmVwbGFjZSgvPC9nLCImbHQ7IikucmVwbGFjZSgvPi9nLCImZ3Q7Iik7Zy5odG1sKGgpO3ZhciBpPWcud2lkdGgoKSxqPWkrYi5jb21mb3J0Wm9uZT49Yz9pK2IuY29tZm9ydFpvbmU6YyxrPWYud2lkdGgoKSxsPWs+aiYmaj49Y3x8aj5jJiZkPmo7bCYmZi53aWR0aChqKX19LGEuZm4ucmVzZXRBdXRvc2l6ZT1mdW5jdGlvbihiKXt2YXIgYz1hKHRoaXMpLmRhdGEoIm1pbndpZHRoIil8fGIubWluSW5wdXRXaWR0aHx8YSh0aGlzKS53aWR0aCgpLGQ9YSh0aGlzKS5kYXRhKCJtYXh3aWR0aCIpfHxiLm1heElucHV0V2lkdGh8fGEodGhpcykuY2xvc2VzdCgiLnRhZ3NpbnB1dCIpLndpZHRoKCktYi5pbnB1dFBhZGRpbmcsZT1hKHRoaXMpLGY9YSgiPHRlc3Rlci8+IikuY3NzKHtwb3NpdGlvbjoiYWJzb2x1dGUiLHRvcDotOTk5OSxsZWZ0Oi05OTk5LHdpZHRoOiJhdXRvIixmb250U2l6ZTplLmNzcygiZm9udFNpemUiKSxmb250RmFtaWx5OmUuY3NzKCJmb250RmFtaWx5IiksZm9udFdlaWdodDplLmNzcygiZm9udFdlaWdodCIpLGxldHRlclNwYWNpbmc6ZS5jc3MoImxldHRlclNwYWNpbmciKSx3aGl0ZVNwYWNlOiJub3dyYXAifSksZz1hKHRoaXMpLmF0dHIoImlkIikrIl9hdXRvc2l6ZV90ZXN0ZXIiOyFhKCIjIitnKS5sZW5ndGg+MCYmKGYuYXR0cigiaWQiLGcpLGYuYXBwZW5kVG8oImJvZHkiKSksZS5kYXRhKCJtaW53aWR0aCIsYyksZS5kYXRhKCJtYXh3aWR0aCIsZCksZS5kYXRhKCJ0ZXN0ZXJfaWQiLGcpLGUuY3NzKCJ3aWR0aCIsYyl9LGEuZm4uYWRkVGFnPWZ1bmN0aW9uKGQsZSl7cmV0dXJuIGU9alF1ZXJ5LmV4dGVuZCh7Zm9jdXM6ITEsY2FsbGJhY2s6ITB9LGUpLHRoaXMuZWFjaChmdW5jdGlvbigpe3ZhciBmPWEodGhpcykuYXR0cigiaWQiKSxnPWEodGhpcykudmFsKCkuc3BsaXQoYltmXSk7aWYoIiI9PWdbMF0mJihnPW5ldyBBcnJheSksZD1qUXVlcnkudHJpbShkKSxlLnVuaXF1ZSl7dmFyIGg9YSh0aGlzKS50YWdFeGlzdChkKTsxPT1oJiZhKCIjIitmKyJfdGFnIikuYWRkQ2xhc3MoIm5vdF92YWxpZCIpfWVsc2UgdmFyIGg9ITE7aWYoIiIhPWQmJjEhPWgpe2lmKGEoIjxzcGFuPiIpLmFkZENsYXNzKCJ0YWciKS5hcHBlbmQoYSgiPHNwYW4+IikudGV4dChkKS5hcHBlbmQoIiZuYnNwOyZuYnNwOyIpLGEoIjxhPiIse2hyZWY6IiMiLHRpdGxlOiJSZW1vdmluZyB0YWciLHRleHQ6IngifSkuY2xpY2soZnVuY3Rpb24oKXtyZXR1cm4gYSgiIyIrZikucmVtb3ZlVGFnKGVzY2FwZShkKSl9KSkuaW5zZXJ0QmVmb3JlKCIjIitmKyJfYWRkVGFnIiksZy5wdXNoKGQpLGEoIiMiK2YrIl90YWciKS52YWwoIiIpLGUuZm9jdXM/YSgiIyIrZisiX3RhZyIpLmZvY3VzKCk6YSgiIyIrZisiX3RhZyIpLmJsdXIoKSxhLmZuLnRhZ3NJbnB1dC51cGRhdGVUYWdzRmllbGQodGhpcyxnKSxlLmNhbGxiYWNrJiZjW2ZdJiZjW2ZdLm9uQWRkVGFnKXt2YXIgaT1jW2ZdLm9uQWRkVGFnO2kuY2FsbCh0aGlzLGQpfWlmKGNbZl0mJmNbZl0ub25DaGFuZ2Upe3ZhciBqPWcubGVuZ3RoLGk9Y1tmXS5vbkNoYW5nZTtpLmNhbGwodGhpcyxhKHRoaXMpLGdbai0xXSl9fX0pLCExfSxhLmZuLnJlbW92ZVRhZz1mdW5jdGlvbihkKXtyZXR1cm4gZD11bmVzY2FwZShkKSx0aGlzLmVhY2goZnVuY3Rpb24oKXt2YXIgZT1hKHRoaXMpLmF0dHIoImlkIiksZj1hKHRoaXMpLnZhbCgpLnNwbGl0KGJbZV0pO2ZvcihhKCIjIitlKyJfdGFnc2lucHV0IC50YWciKS5yZW1vdmUoKSxzdHI9IiIsaT0wO2k8Zi5sZW5ndGg7aSsrKWZbaV0hPWQmJihzdHI9c3RyK2JbZV0rZltpXSk7aWYoYS5mbi50YWdzSW5wdXQuaW1wb3J0VGFncyh0aGlzLHN0ciksY1tlXSYmY1tlXS5vblJlbW92ZVRhZyl7dmFyIGc9Y1tlXS5vblJlbW92ZVRhZztnLmNhbGwodGhpcyxkKX19KSwhMX0sYS5mbi50YWdFeGlzdD1mdW5jdGlvbihjKXt2YXIgZD1hKHRoaXMpLmF0dHIoImlkIiksZT1hKHRoaXMpLnZhbCgpLnNwbGl0KGJbZF0pO3JldHVybiBqUXVlcnkuaW5BcnJheShjLGUpPj0wfSxhLmZuLmltcG9ydFRhZ3M9ZnVuY3Rpb24oYil7dmFyIGM9YSh0aGlzKS5hdHRyKCJpZCIpO2EoIiMiK2MrIl90YWdzaW5wdXQgLnRhZyIpLnJlbW92ZSgpLGEuZm4udGFnc0lucHV0LmltcG9ydFRhZ3ModGhpcyxiKX0sYS5mbi50YWdzSW5wdXQ9ZnVuY3Rpb24oZSl7dmFyIGY9alF1ZXJ5LmV4dGVuZCh7aW50ZXJhY3RpdmU6ITAsZGVmYXVsdFRleHQ6ImFkZCBhIHRhZyIsbWluQ2hhcnM6MCx3aWR0aDoiMzAwcHgiLGhlaWdodDoiMTAwcHgiLGF1dG9jb21wbGV0ZTp7c2VsZWN0Rmlyc3Q6ITF9LGhpZGU6ITAsZGVsaW1pdGVyOiIsIix1bmlxdWU6ITAscmVtb3ZlV2l0aEJhY2tzcGFjZTohMCxwbGFjZWhvbGRlckNvbG9yOiIjNjY2NjY2IixhdXRvc2l6ZTohMCxjb21mb3J0Wm9uZToyMCxpbnB1dFBhZGRpbmc6MTJ9LGUpLGc9MDtyZXR1cm4gdGhpcy5lYWNoKGZ1bmN0aW9uKCl7aWYoInVuZGVmaW5lZCI9PXR5cGVvZiBhKHRoaXMpLmF0dHIoImRhdGEtdGFnc2lucHV0LWluaXQiKSl7YSh0aGlzKS5hdHRyKCJkYXRhLXRhZ3NpbnB1dC1pbml0IiwhMCksZi5oaWRlJiZhKHRoaXMpLmhpZGUoKTt2YXIgZT1hKHRoaXMpLmF0dHIoImlkIik7KCFlfHxiW2EodGhpcykuYXR0cigiaWQiKV0pJiYoZT1hKHRoaXMpLmF0dHIoImlkIiwidGFncyIrKG5ldyBEYXRlKS5nZXRUaW1lKCkrZysrKS5hdHRyKCJpZCIpKTt2YXIgaD1qUXVlcnkuZXh0ZW5kKHtwaWQ6ZSxyZWFsX2lucHV0OiIjIitlLGhvbGRlcjoiIyIrZSsiX3RhZ3NpbnB1dCIsaW5wdXRfd3JhcHBlcjoiIyIrZSsiX2FkZFRhZyIsZmFrZV9pbnB1dDoiIyIrZSsiX3RhZyJ9LGYpO2JbZV09aC5kZWxpbWl0ZXIsKGYub25BZGRUYWd8fGYub25SZW1vdmVUYWd8fGYub25DaGFuZ2UpJiYoY1tlXT1uZXcgQXJyYXksY1tlXS5vbkFkZFRhZz1mLm9uQWRkVGFnLGNbZV0ub25SZW1vdmVUYWc9Zi5vblJlbW92ZVRhZyxjW2VdLm9uQ2hhbmdlPWYub25DaGFuZ2UpO3ZhciBpPSc8ZGl2IGlkPSInK2UrJ190YWdzaW5wdXQiIGNsYXNzPSJ0YWdzaW5wdXQiPjxkaXYgaWQ9IicrZSsnX2FkZFRhZyI+JztpZihmLmludGVyYWN0aXZlJiYoaT1pKyc8aW5wdXQgaWQ9IicrZSsnX3RhZyIgdmFsdWU9IiIgZGF0YS1kZWZhdWx0PSInK2YuZGVmYXVsdFRleHQrJyIgLz4nKSxpKz0nPC9kaXY+PGRpdiBjbGFzcz0idGFnc19jbGVhciI+PC9kaXY+PC9kaXY+JyxhKGkpLmluc2VydEFmdGVyKHRoaXMpLGEoaC5ob2xkZXIpLmNzcygid2lkdGgiLGYud2lkdGgpLGEoaC5ob2xkZXIpLmNzcygibWluLWhlaWdodCIsZi5oZWlnaHQpLGEoaC5ob2xkZXIpLmNzcygiaGVpZ2h0IixmLmhlaWdodCksIiIhPWEoaC5yZWFsX2lucHV0KS52YWwoKSYmYS5mbi50YWdzSW5wdXQuaW1wb3J0VGFncyhhKGgucmVhbF9pbnB1dCksYShoLnJlYWxfaW5wdXQpLnZhbCgpKSxmLmludGVyYWN0aXZlKXtpZihhKGguZmFrZV9pbnB1dCkudmFsKGEoaC5mYWtlX2lucHV0KS5hdHRyKCJkYXRhLWRlZmF1bHQiKSksYShoLmZha2VfaW5wdXQpLmNzcygiY29sb3IiLGYucGxhY2Vob2xkZXJDb2xvciksYShoLmZha2VfaW5wdXQpLnJlc2V0QXV0b3NpemUoZiksYShoLmhvbGRlcikuYmluZCgiY2xpY2siLGgsZnVuY3Rpb24oYil7YShiLmRhdGEuZmFrZV9pbnB1dCkuZm9jdXMoKX0pLGEoaC5mYWtlX2lucHV0KS5iaW5kKCJmb2N1cyIsaCxmdW5jdGlvbihiKXthKGIuZGF0YS5mYWtlX2lucHV0KS52YWwoKT09YShiLmRhdGEuZmFrZV9pbnB1dCkuYXR0cigiZGF0YS1kZWZhdWx0IikmJmEoYi5kYXRhLmZha2VfaW5wdXQpLnZhbCgiIiksYShiLmRhdGEuZmFrZV9pbnB1dCkuY3NzKCJjb2xvciIsIiMwMDAwMDAiKX0pLHZvaWQgMCE9Zi5hdXRvY29tcGxldGVfdXJsKXthdXRvY29tcGxldGVfb3B0aW9ucz17c291cmNlOmYuYXV0b2NvbXBsZXRlX3VybH07Zm9yKGF0dHJuYW1lIGluIGYuYXV0b2NvbXBsZXRlKWF1dG9jb21wbGV0ZV9vcHRpb25zW2F0dHJuYW1lXT1mLmF1dG9jb21wbGV0ZVthdHRybmFtZV07dm9pZCAwIT09alF1ZXJ5LkF1dG9jb21wbGV0ZXI/KGEoaC5mYWtlX2lucHV0KS5hdXRvY29tcGxldGUoZi5hdXRvY29tcGxldGVfdXJsLGYuYXV0b2NvbXBsZXRlKSxhKGguZmFrZV9pbnB1dCkuYmluZCgicmVzdWx0IixoLGZ1bmN0aW9uKGIsYyxkKXtjJiZhKCIjIitlKS5hZGRUYWcoY1swXSsiIix7Zm9jdXM6ITAsdW5pcXVlOmYudW5pcXVlfSl9KSk6dm9pZCAwIT09alF1ZXJ5LnVpLmF1dG9jb21wbGV0ZSYmKGEoaC5mYWtlX2lucHV0KS5hdXRvY29tcGxldGUoYXV0b2NvbXBsZXRlX29wdGlvbnMpLGEoaC5mYWtlX2lucHV0KS5iaW5kKCJhdXRvY29tcGxldGVzZWxlY3QiLGgsZnVuY3Rpb24oYixjKXtyZXR1cm4gYShiLmRhdGEucmVhbF9pbnB1dCkuYWRkVGFnKGMuaXRlbS52YWx1ZSx7Zm9jdXM6ITAsdW5pcXVlOmYudW5pcXVlfSksITF9KSl9ZWxzZSBhKGguZmFrZV9pbnB1dCkuYmluZCgiYmx1ciIsaCxmdW5jdGlvbihiKXt2YXIgYz1hKHRoaXMpLmF0dHIoImRhdGEtZGVmYXVsdCIpO3JldHVybiIiIT1hKGIuZGF0YS5mYWtlX2lucHV0KS52YWwoKSYmYShiLmRhdGEuZmFrZV9pbnB1dCkudmFsKCkhPWM/Yi5kYXRhLm1pbkNoYXJzPD1hKGIuZGF0YS5mYWtlX2lucHV0KS52YWwoKS5sZW5ndGgmJighYi5kYXRhLm1heENoYXJzfHxiLmRhdGEubWF4Q2hhcnM+PWEoYi5kYXRhLmZha2VfaW5wdXQpLnZhbCgpLmxlbmd0aCkmJmEoYi5kYXRhLnJlYWxfaW5wdXQpLmFkZFRhZyhhKGIuZGF0YS5mYWtlX2lucHV0KS52YWwoKSx7Zm9jdXM6ITAsdW5pcXVlOmYudW5pcXVlfSk6KGEoYi5kYXRhLmZha2VfaW5wdXQpLnZhbChhKGIuZGF0YS5mYWtlX2lucHV0KS5hdHRyKCJkYXRhLWRlZmF1bHQiKSksYShiLmRhdGEuZmFrZV9pbnB1dCkuY3NzKCJjb2xvciIsZi5wbGFjZWhvbGRlckNvbG9yKSksITF9KTthKGguZmFrZV9pbnB1dCkuYmluZCgia2V5cHJlc3MiLGgsZnVuY3Rpb24oYil7cmV0dXJuIGQoYik/KGIucHJldmVudERlZmF1bHQoKSxiLmRhdGEubWluQ2hhcnM8PWEoYi5kYXRhLmZha2VfaW5wdXQpLnZhbCgpLmxlbmd0aCYmKCFiLmRhdGEubWF4Q2hhcnN8fGIuZGF0YS5tYXhDaGFycz49YShiLmRhdGEuZmFrZV9pbnB1dCkudmFsKCkubGVuZ3RoKSYmYShiLmRhdGEucmVhbF9pbnB1dCkuYWRkVGFnKGEoYi5kYXRhLmZha2VfaW5wdXQpLnZhbCgpLHtmb2N1czohMCx1bmlxdWU6Zi51bmlxdWV9KSxhKGIuZGF0YS5mYWtlX2lucHV0KS5yZXNldEF1dG9zaXplKGYpLCExKTp2b2lkKGIuZGF0YS5hdXRvc2l6ZSYmYShiLmRhdGEuZmFrZV9pbnB1dCkuZG9BdXRvc2l6ZShmKSl9KSxoLnJlbW92ZVdpdGhCYWNrc3BhY2UmJmEoaC5mYWtlX2lucHV0KS5iaW5kKCJrZXlkb3duIixmdW5jdGlvbihiKXtpZig4PT1iLmtleUNvZGUmJiIiPT1hKHRoaXMpLnZhbCgpKXtiLnByZXZlbnREZWZhdWx0KCk7dmFyIGM9YSh0aGlzKS5jbG9zZXN0KCIudGFnc2lucHV0IikuZmluZCgiLnRhZzpsYXN0IikudGV4dCgpLGQ9YSh0aGlzKS5hdHRyKCJpZCIpLnJlcGxhY2UoL190YWckLywiIik7Yz1jLnJlcGxhY2UoL1tcc10reCQvLCIiKSxhKCIjIitkKS5yZW1vdmVUYWcoZXNjYXBlKGMpKSxhKHRoaXMpLnRyaWdnZXIoImZvY3VzIil9fSksYShoLmZha2VfaW5wdXQpLmJsdXIoKSxoLnVuaXF1ZSYmYShoLmZha2VfaW5wdXQpLmtleWRvd24oZnVuY3Rpb24oYil7KDg9PWIua2V5Q29kZXx8U3RyaW5nLmZyb21DaGFyQ29kZShiLndoaWNoKS5tYXRjaCgvXHcrfFvDocOpw63Ds8O6w4HDicONw5PDmsOxw5EsL10rLykpJiZhKHRoaXMpLnJlbW92ZUNsYXNzKCJub3RfdmFsaWQiKX0pfX19KSx0aGlzfSxhLmZuLnRhZ3NJbnB1dC51cGRhdGVUYWdzRmllbGQ9ZnVuY3Rpb24oYyxkKXt2YXIgZT1hKGMpLmF0dHIoImlkIik7YShjKS52YWwoZC5qb2luKGJbZV0pKX0sYS5mbi50YWdzSW5wdXQuaW1wb3J0VGFncz1mdW5jdGlvbihkLGUpe2EoZCkudmFsKCIiKTt2YXIgZj1hKGQpLmF0dHIoImlkIiksZz1lLnNwbGl0KGJbZl0pO2ZvcihpPTA7aTxnLmxlbmd0aDtpKyspYShkKS5hZGRUYWcoZ1tpXSx7Zm9jdXM6ITEsY2FsbGJhY2s6ITF9KTtpZihjW2ZdJiZjW2ZdLm9uQ2hhbmdlKXt2YXIgaD1jW2ZdLm9uQ2hhbmdlO2guY2FsbChkLGQsZ1tpXSl9fTt2YXIgZD1mdW5jdGlvbihiKXt2YXIgYz0hMTtyZXR1cm4gMTM9PWIud2hpY2g/ITA6KCJzdHJpbmciPT10eXBlb2YgYi5kYXRhLmRlbGltaXRlcj9iLndoaWNoPT1iLmRhdGEuZGVsaW1pdGVyLmNoYXJDb2RlQXQoMCkmJihjPSEwKTphLmVhY2goYi5kYXRhLmRlbGltaXRlcixmdW5jdGlvbihhLGQpe2Iud2hpY2g9PWQuY2hhckNvZGVBdCgwKSYmKGM9ITApfSksYyl9fShqUXVlcnkpOw==]]></data>
	</file>
	<file>
	  <filename>/lib/fielddefs/Tags/lisefd.Tags.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHANCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQojIExJU0UgLSBMaXN0IEl0IFNwZWNpYWwgRWRpdGlvbg0KIyBWZXJzaW9uIDEuMg0KIyBBIGZvcmsgb2YgTGlzdEkyDQojIG1haW50YWluZWQgYnkgRmVybmFuZG8gTW9yZ2FkbyBBS0EgSm8gTW9yZw0KIyBzaW5jZSAyMDE1DQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIw0KIyBPcmlnaW5hbCBBdXRob3I6IEJlbiBNYWxlbiwgPGJlbkBjb25jZXB0ZmFjdG9yeS5jb20uYXU+DQojIENvLU1haW50YWluZXI6IFNpbW9uIFJhZGZvcmQsIDxzaW1vbkBjb25jZXB0ZmFjdG9yeS5jb20uYXU+DQojIFdlYjogd3d3LmNvbmNlcHRmYWN0b3J5LmNvbS5hdQ0KIw0KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCiMNCiMgTWFpbnRhaW5lciBzaW5jZSAyMDExIHVwIHRvIDIwMTQ6IEpvbmF0aGFuIFNjaG1pZCwgPGhpQGpvbmF0aGFuc2NobWlkLmRlPg0KIyBXZWI6IHd3dy5qb25hdGhhbnNjaG1pZC5kZQ0KIw0KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCiMNCiMgU29tZSB3YWNrb3Mgc3RhcnRlZCBkZXN0cm95aW5nIHN0dWZmIHNpbmNlIDIwMTIgYW5kIHN0b3BwZWQgYXQgMjAxNDoNCiMNCiMgVGFwaW8gTMO2eXR0eSwgPHRhcHNhQG9yYW5nZS1tZWRpYS5maT4NCiMgV2ViOiB3d3cub3JhbmdlLW1lZGlhLmZpDQojDQojIEdvcmFuIElsaWMsIDx1bmlxdTNlQGdtYWlsLmNvbT4NCiMgV2ViOiB3d3cuaWNoLW1hY2gtZGFzLmF0DQojDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIw0KIyBMSVNFIGlzIGEgQ01TIE1hZGUgU2ltcGxlIG1vZHVsZSB0aGF0IGVuYWJsZXMgdGhlIHdlYiBkZXZlbG9wZXIgdG8gY3JlYXRlDQojIG11bHRpcGxlIGxpc3RzIHRocm91Z2hvdXQgYSBzaXRlLiBJdCBjYW4gYmUgZHVwbGljYXRlZCBhbmQgZ2l2ZW4gZnJpZW5kbHkNCiMgbmFtZXMgZm9yIGVhc2llciBjbGllbnQgbWFpbnRlbmFuY2UuDQojDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIyBCRUdJTl9MSUNFTlNFDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIyBUaGlzIGZpbGUgaXMgcGFydCBvZiBMSVNFDQojIExJU0UgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5DQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5DQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yDQojIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uDQojDQojIExJU0UgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLA0KIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZg0KIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlDQojIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuDQojIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlDQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlDQojIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcgVVNBDQojIE9yIHJlYWQgaXQgb25saW5lOiBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwNCiMNCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQojIEVORF9MSUNFTlNFDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KDQovKioNCiogQG5hbWUgVGFncw0KKiBAYXV0aG9yIEZlcm5hbmRvIE1vcmdhZG8gYWthIEpvIE1vcmcNCiogQHBhY2thZ2UgQ01TTWFkZVNpbXBsZQ0KKiBAc3VicGFja2FnZSBMSVNFDQoqLw0KY2xhc3MgbGlzZWZkX1RhZ3MgZXh0ZW5kcyBMSVNFRmllbGRkZWZCYXNlDQp7DQogIHByaXZhdGUgJG1vZF9uYW1lOw0KICBwcml2YXRlICRhY3Rpb25faWQ7DQogIHByaXZhdGUgJGFjdGlvbl9uYW1lOw0KICBwcml2YXRlICR0YWdzOw0KICANCglwdWJsaWMgZnVuY3Rpb24gX19jb25zdHJ1Y3QoJiRkYl9pbmZvKSANCgl7CQ0KCQlwYXJlbnQ6Ol9fY29uc3RydWN0KCRkYl9pbmZvKTsNCgkJDQoJCSR0aGlzLT5TZXRGcmllbmRseVR5cGUoJHRoaXMtPk1vZExhbmcoJ2ZpZWxkZGVmXycgLiAkdGhpcy0+R2V0VHlwZSgpKSk7DQoJfQ0KCQ0KCXB1YmxpYyBmdW5jdGlvbiBWYWxpZGF0ZSgmJGVycm9ycyk6IHZvaWQNCgl7DQoJCWlmIChzdHJsZW4oJHRoaXMtPkdldFZhbHVlKCJzdHJpbmciKSkgPiAkdGhpcy0+R2V0T3B0aW9uVmFsdWUoJ21heF9sZW5ndGgnLCAyNTUpICYmICR0aGlzLT5HZXRPcHRpb25WYWx1ZSgnbWF4X2xlbmd0aCcpKSB7DQoJCQ0KCQkJJGVycm9yc1tdID0gJHRoaXMtPk1vZExhbmcoJ3Rvb19sb25nJykgLiAnICgnIC4gJHRoaXMtPkdldE5hbWUoKSAuICcpJzsNCgkJfQkJDQoJDQoJCXBhcmVudDo6VmFsaWRhdGUoJGVycm9ycyk7DQoJfQ0KICANCiAgcHVibGljIGZ1bmN0aW9uIEZyb250RW5kUmVuZGVyKCAkcGFyYW1zID0gYXJyYXkoKSApDQogIHsNCiAgICBpZiggZW1wdHkoJHRoaXMtPnZpZXcpICkNCiAgICB7DQogICAgICAkc21hcnR5ID0gY21zbXMoKS0+R2V0U21hcnR5KCk7DQogICAgICAkc21hcnR5LT5hc3NpZ24oJ25hbWUnLCAkdGhpcy0+bmFtZSk7DQogICAgICAkc21hcnR5LT5hc3NpZ24oJ3ZhbHVlJywgJHRoaXMtPnZhbHVlKTsNCiAgICAgICRzbWFydHktPmFzc2lnbigndHlwZScsICR0aGlzLT50eXBlKTsNCiAgICAgICRzbWFydHktPmFzc2lnbignYWxpYXMnLCAkdGhpcy0+YWxpYXMpOw0KICAgICAgJHNtYXJ0eS0+YXNzaWduKCdwYXJhbXMnLCAkcGFyYW1zKTsNCiAgICAgICRzbWFydHktPmFzc2lnbigndGFncycsICR0aGlzLT50YWdzKTsNCiAgICAgIA0KICAgICAgJHRoaXMtPnZpZXcgPSAkc21hcnR5LT5mZXRjaCggJ3N0cmluZzonIC4gJHRoaXMtPkdldFRlbXBsYXRlKCkgKTsNCiAgICB9DQoNCiAgICByZXR1cm4gJHRoaXMtPnZpZXc7DQogIH0NCiAgDQogIHB1YmxpYyBmdW5jdGlvbiBTZXRUYWdzUGFyYW1zKCRtb2QgPSBOVUxMLCAkaWQgPSBOVUxMLCAkYWN0aW9uID0gTlVMTCwgJHJldHVybmlkID0gTlVMTCwgJHBhcmFtcyA9IGFycmF5KCkgKQ0KICB7DQogICAgaWYoICFpc19vYmplY3QoJG1vZCkgKSAgICAgIHJldHVybjsNCiAgICBpZiggIWlzc2V0KCRwYXJhbXMpICkgICAgICAgcmV0dXJuOw0KICAgIGlmKCAhaXNzZXQoJGFjdGlvbikgKSAgICAgICByZXR1cm47DQogICAgDQogICAgJHQgPSBleHBsb2RlKCcsJywgJHRoaXMtPnZhbHVlKTsNCiAgICBmb3JlYWNoKCR0IGFzICRvbmUpDQogICAgew0KICAgICAgJHBhcmFtc1sndGFnJ10gPSB1cmxlbmNvZGUoJG9uZSk7ICAgIA0KICAgICAgJHRoaXMtPnRhZ3NbJG9uZV0gPSAkbW9kLT5DcmVhdGVQcmV0dHlMaW5rKCRpZCwgJGFjdGlvbiwgJHJldHVybmlkLCAnJywgJHBhcmFtcywgJycsIFRSVUUpOw0KICAgIH0NCiAgDQogIH0NCgkNCn0gLy8gZW5kIG9mIGNsYXNzDQo/Pg==]]></data>
	</file>
	<file>
	  <filename>/lib/fielddefs/Tags/output.Tags.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[eyRuYW1lfToKe2ZvcmVhY2ggJHRhZ3MgYXMgJGsgPT4gJHZ9CiAgPGEgaHJlZj0ieyR2fSI+eyRrfTwvYT4Ke2ZvcmVhY2hlbHNlfQp7L2ZvcmVhY2h9]]></data>
	</file>
	<file>
	  <filename>/lib/fielddefs/TextArea</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/lib/fielddefs/TextArea/admin.TextArea.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PGZpZWxkc2V0PgogIDxsZWdlbmQ+eyRmaWVsZGRlZi0+TW9kTGFuZygnb3B0aW9ucycpfTwvbGVnZW5kPgogIDxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CiAgICA8cCBjbGFzcz0icGFnZXRleHQiPnskZmllbGRkZWYtPk1vZExhbmcoJ2ZpZWxkX3NlYXJjaF9pbmRleCcpfTo8L3A+CiAgICA8cCBjbGFzcz0icGFnZWlucHV0Ij4KICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9InskYWN0aW9uaWR9Y3VzdG9tX2lucHV0W3NlYXJjaF9pbmRleF0iIHZhbHVlPSIwIiAvPgogICAgPGlucHV0IHR5cGU9ImNoZWNrYm94IiBuYW1lPSJ7JGFjdGlvbmlkfWN1c3RvbV9pbnB1dFtzZWFyY2hfaW5kZXhdIiB2YWx1ZT0iMSJ7aWYgJGZpZWxkZGVmLT5HZXRPcHRpb25WYWx1ZSgnc2VhcmNoX2luZGV4JywgRkFMU0UpfWNoZWNrZWQ9ImNoZWNrZWQiey9pZn0gLz4gICAgICAKICAgIDwvcD4KICAgIDxwIGNsYXNzPSJwYWdldGV4dCI+PGRpdiBjbGFzcz0iaW5mb3JtYXRpb24iPnskZmllbGRkZWYtPk1vZExhbmcoJ2ZpZWxkZGVmX3NlYXJjaF9pbmRleF9oZWxwJyl9PC9kaXY+PC9wPgogIDwvZGl2PgogIDxocj4gICAgCiAgPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KICAgIDxwIGNsYXNzPSJwYWdldGV4dCI+eyRmaWVsZGRlZi0+TW9kTGFuZygnbWF4X2xlbmd0aCcpfTo8L3A+CiAgICA8cCBjbGFzcz0icGFnZWlucHV0Ij4KICAgICAgPGlucHV0IHR5cGU9InRleHQiIG5hbWU9InskYWN0aW9uaWR9Y3VzdG9tX2lucHV0W21heF9sZW5ndGhdIiB2YWx1ZT0ieyRmaWVsZGRlZi0+R2V0T3B0aW9uVmFsdWUoJ21heF9sZW5ndGgnLCA2MDAwKX0iIC8+CiAgICA8L3A+CiAgICA8cCBjbGFzcz0icGFnZXRleHQiPjxkaXYgY2xhc3M9ImluZm9ybWF0aW9uIj57JGZpZWxkZGVmLT5Nb2RMYW5nKCdmaWVsZGRlZl9tYXhfbGVuZ3RoX2hlbHAnKX08L2Rpdj48L3A+CiAgPC9kaXY+CiAgPGhyPgogIDxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CiAgICA8cCBjbGFzcz0icGFnZXRleHQiPnskZmllbGRkZWYtPk1vZExhbmcoJ3d5c2l3eWcnKX06PC9wPgogICAgPHAgY2xhc3M9InBhZ2VpbnB1dCI+CgkgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0ieyRhY3Rpb25pZH1jdXN0b21faW5wdXRbd3lzaXd5Z10iIHZhbHVlPSIwIiAvPgoJICAgIDxpbnB1dCB0eXBlPSJjaGVja2JveCIgbmFtZT0ieyRhY3Rpb25pZH1jdXN0b21faW5wdXRbd3lzaXd5Z10iIHZhbHVlPSIxIntpZiAkZmllbGRkZWYtPkdldE9wdGlvblZhbHVlKCd3eXNpd3lnJyl9Y2hlY2tlZD0iY2hlY2tlZCJ7L2lmfSAvPgogICAgPC9wPgogICAgPHAgY2xhc3M9InBhZ2V0ZXh0Ij48ZGl2IGNsYXNzPSJpbmZvcm1hdGlvbiI+eyRmaWVsZGRlZi0+TW9kTGFuZygnZmllbGRkZWZfd3lzaXd5Z19oZWxwJyl9PC9kaXY+PC9wPgogIDwvZGl2Pgo8L2ZpZWxkc2V0Pg==]]></data>
	</file>
	<file>
	  <filename>/lib/fielddefs/TextArea/help.TextArea.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PGJ1dHRvbiBjbGFzcz0iYWNjb3JkaW9uIj48c3Ryb25nPnskZmllbGRkZWYtPkdldEZyaWVuZGx5VHlwZSgpfTwvc3Ryb25nPjwvYnV0dG9uPgoKPGRpdiBjbGFzcz0iYWNjcGFuZWwiPgoKCTxoND5XaGF0IGRvZXMgaXQgZG8/PC9oND4KCgk8cD5UaGlzIGZpZWxkIGRlZmluaXRpb24gY2FuIGJlIHVzZWQgdG8gYWRkIGEgPHN0cm9uZz5UZXh0IEFyZWE8L3N0cm9uZz4gdG8gYSBMSVNFIGl0ZW0uPC9wPgoKCTxwPlRPRE88L3A+CgoKCTxoND5Ib3cgZG8gSSB1c2UgaXQ/PC9oND4KCgk8cD5UT0RPPC9wPgoKCTxwPlRoZSBzZXR0aW5ncyBmb3IgdGhpcyBmaWVsZCBhcmU6PC9wPgoKCTx1bD4KCQk8bGk+PGI+QWxsb3cgdGhpcyBmaWVsZCB0byBiZSBpbmRleGVkIGJ5IGdsb2JhbCBzZWFyY2g8L2I+PC9saT4KCQk8bGk+PGI+TWF4IExlbmd0aDwvYj48L2xpPgoJCTxsaT48Yj5XWVNJV1lHPC9iPjwvbGk+Cgk8L3VsPgoKPC9kaXY+]]></data>
	</file>
	<file>
	  <filename>/lib/fielddefs/TextArea/index.html</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PCEtLSBEVU1NWSBIVE1MIEZJTEUgLS0+]]></data>
	</file>
	<file>
	  <filename>/lib/fielddefs/TextArea/input.TextArea.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KCTxwIGNsYXNzPSJwYWdldGV4dCI+eyRmaWVsZGRlZi0+R2V0TmFtZSgpfXtpZiAkZmllbGRkZWYtPklzUmVxdWlyZWQoKX0qey9pZn06PC9wPgoJPHAgY2xhc3M9InBhZ2VpbnB1dCI+CgkJe2lmICRmaWVsZGRlZi0+R2V0RGVzYygpfSh7JGZpZWxkZGVmLT5HZXREZXNjKCl9KTxiciAvPnsvaWZ9CgkJeyRmaWVsZGRlZi0+R2V0SW5wdXQoJGFjdGlvbmlkKX0KCTwvcD4KPC9kaXY+]]></data>
	</file>
	<file>
	  <filename>/lib/fielddefs/TextArea/lisefd.TextArea.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHANCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQojIExJU0UgLSBMaXN0IEl0IFNwZWNpYWwgRWRpdGlvbg0KIyBWZXJzaW9uIDEuMg0KIyBBIGZvcmsgb2YgTGlzdEkyDQojIG1haW50YWluZWQgYnkgRmVybmFuZG8gTW9yZ2FkbyBBS0EgSm8gTW9yZw0KIyBzaW5jZSAyMDE1DQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIw0KIyBPcmlnaW5hbCBBdXRob3I6IEJlbiBNYWxlbiwgPGJlbkBjb25jZXB0ZmFjdG9yeS5jb20uYXU+DQojIENvLU1haW50YWluZXI6IFNpbW9uIFJhZGZvcmQsIDxzaW1vbkBjb25jZXB0ZmFjdG9yeS5jb20uYXU+DQojIFdlYjogd3d3LmNvbmNlcHRmYWN0b3J5LmNvbS5hdQ0KIw0KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCiMNCiMgTWFpbnRhaW5lciBzaW5jZSAyMDExIHVwIHRvIDIwMTQ6IEpvbmF0aGFuIFNjaG1pZCwgPGhpQGpvbmF0aGFuc2NobWlkLmRlPg0KIyBXZWI6IHd3dy5qb25hdGhhbnNjaG1pZC5kZQ0KIw0KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCiMNCiMgU29tZSB3YWNrb3Mgc3RhcnRlZCBkZXN0cm95aW5nIHN0dWZmIHNpbmNlIDIwMTIgYW5kIHN0b3BwZWQgYXQgMjAxNDoNCiMNCiMgVGFwaW8gTMO2eXR0eSwgPHRhcHNhQG9yYW5nZS1tZWRpYS5maT4NCiMgV2ViOiB3d3cub3JhbmdlLW1lZGlhLmZpDQojDQojIEdvcmFuIElsaWMsIDx1bmlxdTNlQGdtYWlsLmNvbT4NCiMgV2ViOiB3d3cuaWNoLW1hY2gtZGFzLmF0DQojDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIw0KIyBMSVNFIGlzIGEgQ01TIE1hZGUgU2ltcGxlIG1vZHVsZSB0aGF0IGVuYWJsZXMgdGhlIHdlYiBkZXZlbG9wZXIgdG8gY3JlYXRlDQojIG11bHRpcGxlIGxpc3RzIHRocm91Z2hvdXQgYSBzaXRlLiBJdCBjYW4gYmUgZHVwbGljYXRlZCBhbmQgZ2l2ZW4gZnJpZW5kbHkNCiMgbmFtZXMgZm9yIGVhc2llciBjbGllbnQgbWFpbnRlbmFuY2UuDQojDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIyBCRUdJTl9MSUNFTlNFDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIyBUaGlzIGZpbGUgaXMgcGFydCBvZiBMSVNFDQojIExJU0UgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5DQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5DQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yDQojIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uDQojDQojIExJU0UgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLA0KIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZg0KIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlDQojIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuDQojIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlDQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlDQojIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcgVVNBDQojIE9yIHJlYWQgaXQgb25saW5lOiBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwNCiMNCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQojIEVORF9MSUNFTlNFDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KY2xhc3MgbGlzZWZkX1RleHRBcmVhIGV4dGVuZHMgTElTRUZpZWxkZGVmQmFzZQ0Kew0KCXB1YmxpYyBmdW5jdGlvbiBfX2NvbnN0cnVjdCgmJGRiX2luZm8pIA0KCXsJDQoJCXBhcmVudDo6X19jb25zdHJ1Y3QoJGRiX2luZm8pOw0KCQkNCgkJJHRoaXMtPlNldEZyaWVuZGx5VHlwZSggJHRoaXMtPk1vZExhbmcoICdmaWVsZGRlZl8nIC4gJHRoaXMtPkdldFR5cGUoKSApICk7DQoJfQ0KCQ0KCXB1YmxpYyBmdW5jdGlvbiBWYWxpZGF0ZSgmJGVycm9ycyk6IHZvaWQNCgl7DQoJCWlmIChzdHJsZW4oJHRoaXMtPkdldFZhbHVlKCJzdHJpbmciKSkgPiAkdGhpcy0+R2V0T3B0aW9uVmFsdWUoJ21heF9sZW5ndGgnLCA2MDAwKSAmJiAkdGhpcy0+R2V0T3B0aW9uVmFsdWUoJ21heF9sZW5ndGgnKSkgew0KCQkNCgkJCSRlcnJvcnNbXSA9ICR0aGlzLT5Nb2RMYW5nKCd0b29fbG9uZycpIC4gJyAoJyAuICR0aGlzLT5HZXROYW1lKCkgLiAnKSc7DQoJCX0JCQ0KCQ0KCQlwYXJlbnQ6OlZhbGlkYXRlKCRlcnJvcnMpOw0KCX0NCgkJDQoJcHVibGljIGZ1bmN0aW9uIEdldElucHV0KCRpZCkNCgl7DQoJCSRtb2QgPSAkdGhpcy0+R2V0TW9kdWxlSW5zdGFuY2UoKTsNCgkJDQoJCXJldHVybiAkbW9kLT5DcmVhdGVUZXh0QXJlYSgkdGhpcy0+R2V0T3B0aW9uVmFsdWUoJ3d5c2l3eWcnKSwgJGlkLCAkdGhpcy0+R2V0VmFsdWUoInN0cmluZyIpLCAnY3VzdG9tZmllbGRbJy4kdGhpcy0+R2V0SWQoKS4nXScpOw0KCX0NCiAgDQogIHB1YmxpYyBmdW5jdGlvbiBHZXRPcHRpb25zKCkgDQogIHsNCiAgICAkdGhpcy0+X29wdHNbJ3NlYXJjaF9pbmRleCddID0gJHRoaXMtPkdldE9wdGlvblZhbHVlKCdzZWFyY2hfaW5kZXgnLCBGQUxTRSk7DQogIH0gIA0KCQ0KfSAvLyBlbmQgb2YgY2xhc3MNCj8+]]></data>
	</file>
	<file>
	  <filename>/lib/fielddefs/TextArea/output.TextArea.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[eyRmaWVsZGRlZi5uYW1lfTogeyRmaWVsZGRlZi52YWx1ZX0=]]></data>
	</file>
	<file>
	  <filename>/lib/fielddefs/TextInput</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/lib/fielddefs/TextInput/admin.TextInput.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PGZpZWxkc2V0PgogIDxsZWdlbmQ+eyRmaWVsZGRlZi0+TW9kTGFuZygnb3B0aW9ucycpfTwvbGVnZW5kPgogIDxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CiAgICA8cCBjbGFzcz0icGFnZXRleHQiPnskZmllbGRkZWYtPk1vZExhbmcoJ2ZpZWxkX3NlYXJjaF9pbmRleCcpfTo8L3A+CiAgICA8cCBjbGFzcz0icGFnZWlucHV0Ij4KICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9InskYWN0aW9uaWR9Y3VzdG9tX2lucHV0W3NlYXJjaF9pbmRleF0iIHZhbHVlPSIwIiAvPgogICAgPGlucHV0IHR5cGU9ImNoZWNrYm94IiBuYW1lPSJ7JGFjdGlvbmlkfWN1c3RvbV9pbnB1dFtzZWFyY2hfaW5kZXhdIiB2YWx1ZT0iMSJ7aWYgJGZpZWxkZGVmLT5HZXRPcHRpb25WYWx1ZSgnc2VhcmNoX2luZGV4JywgRkFMU0UpfWNoZWNrZWQ9ImNoZWNrZWQiey9pZn0gLz4gICAgICAKICAgIDwvcD4KICAgIDxwIGNsYXNzPSJwYWdldGV4dCI+PGRpdiBjbGFzcz0iaW5mb3JtYXRpb24iPnskZmllbGRkZWYtPk1vZExhbmcoJ2ZpZWxkZGVmX3NlYXJjaF9pbmRleF9oZWxwJyl9PC9kaXY+PC9wPgogIDwvZGl2PgogIDxocj4gIAogIDxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CiAgICA8cCBjbGFzcz0icGFnZXRleHQiPnskZmllbGRkZWYtPk1vZExhbmcoJ3NpemUnKX06PC9wPgogICAgPHAgY2xhc3M9InBhZ2VpbnB1dCI+CiAgICAgIDxpbnB1dCB0eXBlPSJ0ZXh0IiBuYW1lPSJ7JGFjdGlvbmlkfWN1c3RvbV9pbnB1dFtzaXplXSIgdmFsdWU9InskZmllbGRkZWYtPkdldE9wdGlvblZhbHVlKCdzaXplJywgMjApfSIgLz4KICAgIDwvcD4KICAgIDxwIGNsYXNzPSJwYWdldGV4dCI+PGRpdiBjbGFzcz0iaW5mb3JtYXRpb24iPnskZmllbGRkZWYtPk1vZExhbmcoJ2ZpZWxkZGVmX3NpemVfaGVscCcpfTwvZGl2PjwvcD4KICA8L2Rpdj4KICA8aHI+CiAgPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KICAgIDxwIGNsYXNzPSJwYWdldGV4dCI+eyRmaWVsZGRlZi0+TW9kTGFuZygnbWF4X2xlbmd0aCcpfTo8L3A+CiAgICA8cCBjbGFzcz0icGFnZWlucHV0Ij4KICAgICAgPGlucHV0IHR5cGU9InRleHQiIG5hbWU9InskYWN0aW9uaWR9Y3VzdG9tX2lucHV0W21heF9sZW5ndGhdIiB2YWx1ZT0ieyRmaWVsZGRlZi0+R2V0T3B0aW9uVmFsdWUoJ21heF9sZW5ndGgnLCAyNTUpfSIgLz4KICAgIDwvcD4KICAgIDxwIGNsYXNzPSJwYWdldGV4dCI+PGRpdiBjbGFzcz0iaW5mb3JtYXRpb24iPnskZmllbGRkZWYtPk1vZExhbmcoJ2ZpZWxkZGVmX21heF9sZW5ndGhfaGVscCcpfTwvZGl2PjwvcD4KICA8L2Rpdj4KPC9maWVsZHNldD4=]]></data>
	</file>
	<file>
	  <filename>/lib/fielddefs/TextInput/help.TextInput.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PGJ1dHRvbiBjbGFzcz0iYWNjb3JkaW9uIj48c3Ryb25nPnskZmllbGRkZWYtPkdldEZyaWVuZGx5VHlwZSgpfTwvc3Ryb25nPjwvYnV0dG9uPgoKPGRpdiBjbGFzcz0iYWNjcGFuZWwiPgoKCTxoND5XaGF0IGRvZXMgaXQgZG8/PC9oND4KCgk8cD5UaGlzIGZpZWxkIGRlZmluaXRpb24gY2FuIGJlIHVzZWQgdG8gYWRkIGEgPHN0cm9uZz5UZXh0IElucHV0PC9zdHJvbmc+IGZpZWxkIHRvIGEgTElTRSBpdGVtLjwvcD4KCgk8cD5UT0RPPC9wPgoKCgk8aDQ+SG93IGRvIEkgdXNlIGl0PzwvaDQ+CgoJPHA+VE9ETzwvcD4KCgk8cD5UaGUgc2V0dGluZ3MgZm9yIHRoaXMgZmllbGQgYXJlOjwvcD4KCgk8dWw+CgkJPGxpPjxiPkFsbG93IHRoaXMgZmllbGQgdG8gYmUgaW5kZXhlZCBieSBnbG9iYWwgc2VhcmNoPC9iPjwvbGk+CgkJPGxpPjxiPlNpemU8L2I+PC9saT4KCQk8bGk+PGI+TWF4IExlbmd0aDwvYj48L2xpPgoJPC91bD4KCjwvZGl2Pg==]]></data>
	</file>
	<file>
	  <filename>/lib/fielddefs/TextInput/index.html</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PCEtLSBEVU1NWSBIVE1MIEZJTEUgLS0+]]></data>
	</file>
	<file>
	  <filename>/lib/fielddefs/TextInput/input.TextInput.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KCTxwIGNsYXNzPSJwYWdldGV4dCI+eyRmaWVsZGRlZi0+R2V0TmFtZSgpfXtpZiAkZmllbGRkZWYtPklzUmVxdWlyZWQoKX0qey9pZn06PC9wPgoJPHAgY2xhc3M9InBhZ2VpbnB1dCI+CgkJe2lmICRmaWVsZGRlZi0+R2V0RGVzYygpfSh7JGZpZWxkZGVmLT5HZXREZXNjKCl9KTxiciAvPnsvaWZ9CgkJPGlucHV0IHR5cGU9InRleHQiIG5hbWU9InskYWN0aW9uaWR9Y3VzdG9tZmllbGRbeyRmaWVsZGRlZi0+R2V0SWQoKX1dIiB2YWx1ZT0ieyRmaWVsZGRlZi0+R2V0VmFsdWUoKX0iIHNpemU9InskZmllbGRkZWYtPkdldE9wdGlvblZhbHVlKCdzaXplJyl9IiBtYXhsZW5ndGg9InskZmllbGRkZWYtPkdldE9wdGlvblZhbHVlKCdtYXhfbGVuZ3RoJyl9IiAvPgoJPC9wPgo8L2Rpdj4=]]></data>
	</file>
	<file>
	  <filename>/lib/fielddefs/TextInput/lisefd.TextInput.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHANCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQojIExJU0UgLSBMaXN0IEl0IFNwZWNpYWwgRWRpdGlvbg0KIyBWZXJzaW9uIDEuMg0KIyBBIGZvcmsgb2YgTGlzdEkyDQojIG1haW50YWluZWQgYnkgRmVybmFuZG8gTW9yZ2FkbyBBS0EgSm8gTW9yZw0KIyBzaW5jZSAyMDE1DQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIw0KIyBPcmlnaW5hbCBBdXRob3I6IEJlbiBNYWxlbiwgPGJlbkBjb25jZXB0ZmFjdG9yeS5jb20uYXU+DQojIENvLU1haW50YWluZXI6IFNpbW9uIFJhZGZvcmQsIDxzaW1vbkBjb25jZXB0ZmFjdG9yeS5jb20uYXU+DQojIFdlYjogd3d3LmNvbmNlcHRmYWN0b3J5LmNvbS5hdQ0KIw0KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCiMNCiMgTWFpbnRhaW5lciBzaW5jZSAyMDExIHVwIHRvIDIwMTQ6IEpvbmF0aGFuIFNjaG1pZCwgPGhpQGpvbmF0aGFuc2NobWlkLmRlPg0KIyBXZWI6IHd3dy5qb25hdGhhbnNjaG1pZC5kZQ0KIw0KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCiMNCiMgU29tZSB3YWNrb3Mgc3RhcnRlZCBkZXN0cm95aW5nIHN0dWZmIHNpbmNlIDIwMTIgYW5kIHN0b3BwZWQgYXQgMjAxNDoNCiMNCiMgVGFwaW8gTMO2eXR0eSwgPHRhcHNhQG9yYW5nZS1tZWRpYS5maT4NCiMgV2ViOiB3d3cub3JhbmdlLW1lZGlhLmZpDQojDQojIEdvcmFuIElsaWMsIDx1bmlxdTNlQGdtYWlsLmNvbT4NCiMgV2ViOiB3d3cuaWNoLW1hY2gtZGFzLmF0DQojDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIw0KIyBMSVNFIGlzIGEgQ01TIE1hZGUgU2ltcGxlIG1vZHVsZSB0aGF0IGVuYWJsZXMgdGhlIHdlYiBkZXZlbG9wZXIgdG8gY3JlYXRlDQojIG11bHRpcGxlIGxpc3RzIHRocm91Z2hvdXQgYSBzaXRlLiBJdCBjYW4gYmUgZHVwbGljYXRlZCBhbmQgZ2l2ZW4gZnJpZW5kbHkNCiMgbmFtZXMgZm9yIGVhc2llciBjbGllbnQgbWFpbnRlbmFuY2UuDQojDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIyBCRUdJTl9MSUNFTlNFDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIyBUaGlzIGZpbGUgaXMgcGFydCBvZiBMSVNFDQojIExJU0UgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5DQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5DQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yDQojIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uDQojDQojIExJU0UgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLA0KIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZg0KIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlDQojIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuDQojIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlDQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlDQojIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcgVVNBDQojIE9yIHJlYWQgaXQgb25saW5lOiBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwNCiMNCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQojIEVORF9MSUNFTlNFDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KY2xhc3MgbGlzZWZkX1RleHRJbnB1dCBleHRlbmRzIExJU0VGaWVsZGRlZkJhc2UNCnsNCglwdWJsaWMgZnVuY3Rpb24gX19jb25zdHJ1Y3QoJiRkYl9pbmZvKSANCgl7CQ0KCQlwYXJlbnQ6Ol9fY29uc3RydWN0KCRkYl9pbmZvKTsNCgkJDQoJCSR0aGlzLT5TZXRGcmllbmRseVR5cGUoJHRoaXMtPk1vZExhbmcoJ2ZpZWxkZGVmXycuJHRoaXMtPkdldFR5cGUoKSkpOw0KCX0NCgkNCglwdWJsaWMgZnVuY3Rpb24gVmFsaWRhdGUoJiRlcnJvcnMpOiB2b2lkDQoJew0KCQlpZiAoc3RybGVuKCR0aGlzLT5HZXRWYWx1ZSgic3RyaW5nIikpID4gJHRoaXMtPkdldE9wdGlvblZhbHVlKCdtYXhfbGVuZ3RoJywgMjU1KSAmJiAkdGhpcy0+R2V0T3B0aW9uVmFsdWUoJ21heF9sZW5ndGgnKSkgew0KCQkNCgkJCSRlcnJvcnNbXSA9ICR0aGlzLT5Nb2RMYW5nKCd0b29fbG9uZycpIC4gJyAoJyAuICR0aGlzLT5HZXROYW1lKCkgLiAnKSc7DQoJCX0JCQ0KCQ0KCQlwYXJlbnQ6OlZhbGlkYXRlKCRlcnJvcnMpOw0KCX0NCgkNCn0gLy8gZW5kIG9mIGNsYXNzDQo/Pg==]]></data>
	</file>
	<file>
	  <filename>/lib/fielddefs/TextInput/output.TextInput.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[eyRmaWVsZGRlZi5uYW1lfTogeyRmaWVsZGRlZi52YWx1ZX0=]]></data>
	</file>
	<file>
	  <filename>/lib/index.html</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[]]></data>
	</file>
	<file>
	  <filename>/lib/js</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/lib/js/index.html</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[]]></data>
	</file>
	<file>
	  <filename>/lib/js/js.cookie.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[LyohCiAqIEphdmFTY3JpcHQgQ29va2llIHYyLjIuMQogKiBodHRwczovL2dpdGh1Yi5jb20vanMtY29va2llL2pzLWNvb2tpZQogKgogKiBDb3B5cmlnaHQgMjAwNiwgMjAxNSBLbGF1cyBIYXJ0bCAmIEZhZ25lciBCcmFjawogKiBSZWxlYXNlZCB1bmRlciB0aGUgTUlUIGxpY2Vuc2UKICovCjsoZnVuY3Rpb24gKGZhY3RvcnkpIHsKCXZhciByZWdpc3RlcmVkSW5Nb2R1bGVMb2FkZXI7CglpZiAodHlwZW9mIGRlZmluZSA9PT0gJ2Z1bmN0aW9uJyAmJiBkZWZpbmUuYW1kKSB7CgkJZGVmaW5lKGZhY3RvcnkpOwoJCXJlZ2lzdGVyZWRJbk1vZHVsZUxvYWRlciA9IHRydWU7Cgl9CglpZiAodHlwZW9mIGV4cG9ydHMgPT09ICdvYmplY3QnKSB7CgkJbW9kdWxlLmV4cG9ydHMgPSBmYWN0b3J5KCk7CgkJcmVnaXN0ZXJlZEluTW9kdWxlTG9hZGVyID0gdHJ1ZTsKCX0KCWlmICghcmVnaXN0ZXJlZEluTW9kdWxlTG9hZGVyKSB7CgkJdmFyIE9sZENvb2tpZXMgPSB3aW5kb3cuQ29va2llczsKCQl2YXIgYXBpID0gd2luZG93LkNvb2tpZXMgPSBmYWN0b3J5KCk7CgkJYXBpLm5vQ29uZmxpY3QgPSBmdW5jdGlvbiAoKSB7CgkJCXdpbmRvdy5Db29raWVzID0gT2xkQ29va2llczsKCQkJcmV0dXJuIGFwaTsKCQl9OwoJfQp9KGZ1bmN0aW9uICgpIHsKCWZ1bmN0aW9uIGV4dGVuZCAoKSB7CgkJdmFyIGkgPSAwOwoJCXZhciByZXN1bHQgPSB7fTsKCQlmb3IgKDsgaSA8IGFyZ3VtZW50cy5sZW5ndGg7IGkrKykgewoJCQl2YXIgYXR0cmlidXRlcyA9IGFyZ3VtZW50c1sgaSBdOwoJCQlmb3IgKHZhciBrZXkgaW4gYXR0cmlidXRlcykgewoJCQkJcmVzdWx0W2tleV0gPSBhdHRyaWJ1dGVzW2tleV07CgkJCX0KCQl9CgkJcmV0dXJuIHJlc3VsdDsKCX0KCglmdW5jdGlvbiBkZWNvZGUgKHMpIHsKCQlyZXR1cm4gcy5yZXBsYWNlKC8oJVswLTlBLVpdezJ9KSsvZywgZGVjb2RlVVJJQ29tcG9uZW50KTsKCX0KCglmdW5jdGlvbiBpbml0IChjb252ZXJ0ZXIpIHsKCQlmdW5jdGlvbiBhcGkoKSB7fQoKCQlmdW5jdGlvbiBzZXQgKGtleSwgdmFsdWUsIGF0dHJpYnV0ZXMpIHsKCQkJaWYgKHR5cGVvZiBkb2N1bWVudCA9PT0gJ3VuZGVmaW5lZCcpIHsKCQkJCXJldHVybjsKCQkJfQoKCQkJYXR0cmlidXRlcyA9IGV4dGVuZCh7CgkJCQlwYXRoOiAnLycKCQkJfSwgYXBpLmRlZmF1bHRzLCBhdHRyaWJ1dGVzKTsKCgkJCWlmICh0eXBlb2YgYXR0cmlidXRlcy5leHBpcmVzID09PSAnbnVtYmVyJykgewoJCQkJYXR0cmlidXRlcy5leHBpcmVzID0gbmV3IERhdGUobmV3IERhdGUoKSAqIDEgKyBhdHRyaWJ1dGVzLmV4cGlyZXMgKiA4NjRlKzUpOwoJCQl9CgoJCQkvLyBXZSdyZSB1c2luZyAiZXhwaXJlcyIgYmVjYXVzZSAibWF4LWFnZSIgaXMgbm90IHN1cHBvcnRlZCBieSBJRQoJCQlhdHRyaWJ1dGVzLmV4cGlyZXMgPSBhdHRyaWJ1dGVzLmV4cGlyZXMgPyBhdHRyaWJ1dGVzLmV4cGlyZXMudG9VVENTdHJpbmcoKSA6ICcnOwoKCQkJdHJ5IHsKCQkJCXZhciByZXN1bHQgPSBKU09OLnN0cmluZ2lmeSh2YWx1ZSk7CgkJCQlpZiAoL15bXHtcW10vLnRlc3QocmVzdWx0KSkgewoJCQkJCXZhbHVlID0gcmVzdWx0OwoJCQkJfQoJCQl9IGNhdGNoIChlKSB7fQoKCQkJdmFsdWUgPSBjb252ZXJ0ZXIud3JpdGUgPwoJCQkJY29udmVydGVyLndyaXRlKHZhbHVlLCBrZXkpIDoKCQkJCWVuY29kZVVSSUNvbXBvbmVudChTdHJpbmcodmFsdWUpKQoJCQkJCS5yZXBsYWNlKC8lKDIzfDI0fDI2fDJCfDNBfDNDfDNFfDNEfDJGfDNGfDQwfDVCfDVEfDVFfDYwfDdCfDdEfDdDKS9nLCBkZWNvZGVVUklDb21wb25lbnQpOwoKCQkJa2V5ID0gZW5jb2RlVVJJQ29tcG9uZW50KFN0cmluZyhrZXkpKQoJCQkJLnJlcGxhY2UoLyUoMjN8MjR8MjZ8MkJ8NUV8NjB8N0MpL2csIGRlY29kZVVSSUNvbXBvbmVudCkKCQkJCS5yZXBsYWNlKC9bXChcKV0vZywgZXNjYXBlKTsKCgkJCXZhciBzdHJpbmdpZmllZEF0dHJpYnV0ZXMgPSAnJzsKCQkJZm9yICh2YXIgYXR0cmlidXRlTmFtZSBpbiBhdHRyaWJ1dGVzKSB7CgkJCQlpZiAoIWF0dHJpYnV0ZXNbYXR0cmlidXRlTmFtZV0pIHsKCQkJCQljb250aW51ZTsKCQkJCX0KCQkJCXN0cmluZ2lmaWVkQXR0cmlidXRlcyArPSAnOyAnICsgYXR0cmlidXRlTmFtZTsKCQkJCWlmIChhdHRyaWJ1dGVzW2F0dHJpYnV0ZU5hbWVdID09PSB0cnVlKSB7CgkJCQkJY29udGludWU7CgkJCQl9CgoJCQkJLy8gQ29uc2lkZXJzIFJGQyA2MjY1IHNlY3Rpb24gNS4yOgoJCQkJLy8gLi4uCgkJCQkvLyAzLiAgSWYgdGhlIHJlbWFpbmluZyB1bnBhcnNlZC1hdHRyaWJ1dGVzIGNvbnRhaW5zIGEgJXgzQiAoIjsiKQoJCQkJLy8gICAgIGNoYXJhY3RlcjoKCQkJCS8vIENvbnN1bWUgdGhlIGNoYXJhY3RlcnMgb2YgdGhlIHVucGFyc2VkLWF0dHJpYnV0ZXMgdXAgdG8sCgkJCQkvLyBub3QgaW5jbHVkaW5nLCB0aGUgZmlyc3QgJXgzQiAoIjsiKSBjaGFyYWN0ZXIuCgkJCQkvLyAuLi4KCQkJCXN0cmluZ2lmaWVkQXR0cmlidXRlcyArPSAnPScgKyBhdHRyaWJ1dGVzW2F0dHJpYnV0ZU5hbWVdLnNwbGl0KCc7JylbMF07CgkJCX0KCgkJCXJldHVybiAoZG9jdW1lbnQuY29va2llID0ga2V5ICsgJz0nICsgdmFsdWUgKyBzdHJpbmdpZmllZEF0dHJpYnV0ZXMpOwoJCX0KCgkJZnVuY3Rpb24gZ2V0IChrZXksIGpzb24pIHsKCQkJaWYgKHR5cGVvZiBkb2N1bWVudCA9PT0gJ3VuZGVmaW5lZCcpIHsKCQkJCXJldHVybjsKCQkJfQoKCQkJdmFyIGphciA9IHt9OwoJCQkvLyBUbyBwcmV2ZW50IHRoZSBmb3IgbG9vcCBpbiB0aGUgZmlyc3QgcGxhY2UgYXNzaWduIGFuIGVtcHR5IGFycmF5CgkJCS8vIGluIGNhc2UgdGhlcmUgYXJlIG5vIGNvb2tpZXMgYXQgYWxsLgoJCQl2YXIgY29va2llcyA9IGRvY3VtZW50LmNvb2tpZSA/IGRvY3VtZW50LmNvb2tpZS5zcGxpdCgnOyAnKSA6IFtdOwoJCQl2YXIgaSA9IDA7CgoJCQlmb3IgKDsgaSA8IGNvb2tpZXMubGVuZ3RoOyBpKyspIHsKCQkJCXZhciBwYXJ0cyA9IGNvb2tpZXNbaV0uc3BsaXQoJz0nKTsKCQkJCXZhciBjb29raWUgPSBwYXJ0cy5zbGljZSgxKS5qb2luKCc9Jyk7CgoJCQkJaWYgKCFqc29uICYmIGNvb2tpZS5jaGFyQXQoMCkgPT09ICciJykgewoJCQkJCWNvb2tpZSA9IGNvb2tpZS5zbGljZSgxLCAtMSk7CgkJCQl9CgoJCQkJdHJ5IHsKCQkJCQl2YXIgbmFtZSA9IGRlY29kZShwYXJ0c1swXSk7CgkJCQkJY29va2llID0gKGNvbnZlcnRlci5yZWFkIHx8IGNvbnZlcnRlcikoY29va2llLCBuYW1lKSB8fAoJCQkJCQlkZWNvZGUoY29va2llKTsKCgkJCQkJaWYgKGpzb24pIHsKCQkJCQkJdHJ5IHsKCQkJCQkJCWNvb2tpZSA9IEpTT04ucGFyc2UoY29va2llKTsKCQkJCQkJfSBjYXRjaCAoZSkge30KCQkJCQl9CgoJCQkJCWphcltuYW1lXSA9IGNvb2tpZTsKCgkJCQkJaWYgKGtleSA9PT0gbmFtZSkgewoJCQkJCQlicmVhazsKCQkJCQl9CgkJCQl9IGNhdGNoIChlKSB7fQoJCQl9CgoJCQlyZXR1cm4ga2V5ID8gamFyW2tleV0gOiBqYXI7CgkJfQoKCQlhcGkuc2V0ID0gc2V0OwoJCWFwaS5nZXQgPSBmdW5jdGlvbiAoa2V5KSB7CgkJCXJldHVybiBnZXQoa2V5LCBmYWxzZSAvKiByZWFkIGFzIHJhdyAqLyk7CgkJfTsKCQlhcGkuZ2V0SlNPTiA9IGZ1bmN0aW9uIChrZXkpIHsKCQkJcmV0dXJuIGdldChrZXksIHRydWUgLyogcmVhZCBhcyBqc29uICovKTsKCQl9OwoJCWFwaS5yZW1vdmUgPSBmdW5jdGlvbiAoa2V5LCBhdHRyaWJ1dGVzKSB7CgkJCXNldChrZXksICcnLCBleHRlbmQoYXR0cmlidXRlcywgewoJCQkJZXhwaXJlczogLTEKCQkJfSkpOwoJCX07CgoJCWFwaS5kZWZhdWx0cyA9IHt9OwoKCQlhcGkud2l0aENvbnZlcnRlciA9IGluaXQ7CgoJCXJldHVybiBhcGk7Cgl9CgoJcmV0dXJuIGluaXQoZnVuY3Rpb24gKCkge30pOwp9KSk7Cg==]]></data>
	</file>
	<file>
	  <filename>/lib/js/lise-globals.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[LyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogRlVOQ1RJT05TCioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KCmZ1bmN0aW9uIHNob3dfbWVzc2FnZSh0ZXh0KSB7CgoJaWYodGV4dCAhPSAnJyl7CgkJdmFyIG1lc3NhZ2UgPSBqUXVlcnkoJzxkaXYgY2xhc3M9InBhZ2VtY29udGFpbmVyIj48cCBjbGFzcz0icGFnZW1lc3NhZ2UiPicgKyB0ZXh0ICsgJzwvcD48L2Rpdj4nKS5pbnNlcnRCZWZvcmUoJyNwYWdlX3RhYnMnKTsKCQl3aW5kb3cuc2V0VGltZW91dChmdW5jdGlvbigpeyBtZXNzYWdlLmhpZGUoKTsgfSwgOTAwMCk7Cgl9IAp9CgpmdW5jdGlvbiBpbml0QWpheCgpewoKCWpRdWVyeSgnLmluaXQtYWpheC10b2dnbGUnKS5jaGlsZHJlbigiYSIpLmFkZENsYXNzKCdhamF4LXRvZ2dsZScpOwoJalF1ZXJ5KCcuaW5pdC1hamF4LWRlbGV0ZScpLmNoaWxkcmVuKCJhIikuYWRkQ2xhc3MoJ2FqYXgtZGVsZXRlJyk7Cn0KCmZ1bmN0aW9uIGluaXRBamF4RXZlbnRzKCkgewoKCWpRdWVyeSgnLmFqYXgtdG9nZ2xlJykuY2xpY2soZnVuY3Rpb24gKGV2ZW50KSB7CgoJCWV2ZW50LnByZXZlbnREZWZhdWx0KCk7CQkKCQlhamF4X3RvZ2dsZSgkKHRoaXMpKTsKCX0pOwoJCglqUXVlcnkoJy5hamF4LWRlbGV0ZScpLmNsaWNrKGZ1bmN0aW9uIChldmVudCkgewoKCQlldmVudC5wcmV2ZW50RGVmYXVsdCgpOwoJCgkJaWYoY29uZmlybSgnQXJlIHlvdSBzdXJlPycpKSB7CgkKCQkJYWpheF9kZWxldGUoJCh0aGlzKSk7CgkJfQoJfSk7CQkKfQoKLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogSlFVRVJZIElOSVQgKFJ1biBpbml0aWFsIHN0dWZmIGhlcmUpCioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KCmpRdWVyeShmdW5jdGlvbigkKXsKCglpbml0QWpheCgpOwoJaW5pdEFqYXhFdmVudHMoKTsKfSk7CgovKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiBBSkFYIExPQURJTkcgKE9ubHkgbG9hZCBhamF4IGZ1bmN0aW9ucyBpbiBoZXJlKQoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCgovKioKKiBERUxFVEUgSVRFTQoqIEAgb2JqIDogalF1ZXJ5IERPTSBvYmplY3QKKi8KZnVuY3Rpb24gYWpheF9kZWxldGUob2JqKSB7CgoJdmFyIHVybCA9IG9iai5hdHRyKCJocmVmIik7Cgl1cmwgKz0gIiZzaG93dGVtcGxhdGU9ZmFsc2UiOwoJCQoJalF1ZXJ5LmFqYXgoewoJCXR5cGU6ICJHRVQiLAoJCXVybDogdXJsLAoJCWFzeW5jOiB0cnVlLAoJCWRhdGFUeXBlOiAiaHRtbCIsCgkJYmVmb3JlU2VuZDogZnVuY3Rpb24oKSB7CgkJCgkJCW9iai5lbXB0eSgpLmFwcGVuZCgnPGRpdiBjbGFzcz0iYWpheC1sb2FkaW5nIGFqYXgtbG9hZGVyLXR5cGUtMTYiPjwvZGl2PicpOwoJCX0sCgkJZXJyb3I6IGZ1bmN0aW9uKGpxWEhSLCB0ZXh0U3RhdHVzLCBlcnJvclRocm93bikgewoJCQkKCQkJLy9hbGVydCgiU29ycnkuIFRoZXJlIHdhcyBhbiBMSVNFIEFKQVggZXJyb3I6ICIgKyB0ZXh0U3RhdHVzKTsKCQl9LAkJCQoJCXN1Y2Nlc3M6IGZ1bmN0aW9uKGRhdGEpIHsKCQkJCgkJCXNob3dfbWVzc2FnZShkYXRhKTsKCQl9LAoJCWNvbXBsZXRlOiBmdW5jdGlvbigpIHsKCQkKCQkJb2JqLmNsb3Nlc3QoInRyIikuZmFkZU91dCg1MDAsIGZ1bmN0aW9uKCkgewoKCQkJCXZhciB0YWJsZSA9ICQodGhpcykuY2xvc2VzdCgidGFibGUiKTsKCQkJCXZhciB0b3RhbHJvd3MgPSB0YWJsZS5maW5kKCJ0Ym9keSB0ciIpLnNpemUoKTsJCQkJCQoJCQkJCgkJCQkkKHRoaXMpLnJlbW92ZSgpOwoJCQkJCgkJCQl0YWJsZS5maW5kKCJ0Ym9keSB0ciIpLnJlbW92ZUNsYXNzKCk7CgkJCQl0YWJsZS5maW5kKCJ0Ym9keSB0cjpudGgtY2hpbGQoMm4rMSkiKS5hZGRDbGFzcygicm93MSIpOwoJCQkJdGFibGUuZmluZCgidGJvZHkgdHI6bnRoLWNoaWxkKDJuKSIpLmFkZENsYXNzKCJyb3cyIik7CQkJCQkKCQkJCQoJCQl9KTsKCQl9CQkKCQkKCX0pOwoKfQoKLyoqCiogVE9HR0xFIEFDVElWRQoqIEAgb2JqIDogalF1ZXJ5IERPTSBvYmplY3QKKi8KZnVuY3Rpb24gYWpheF90b2dnbGUob2JqKSB7CgoJdmFyIHVybCA9IG9iai5hdHRyKCJocmVmIik7Cgl1cmwgKz0gIiZzaG93dGVtcGxhdGU9ZmFsc2UiOwoJCQoJalF1ZXJ5LmFqYXgoewoJCXR5cGU6ICJHRVQiLAoJCXVybDogdXJsLAoJCWFzeW5jOiB0cnVlLAoJCWRhdGFUeXBlOiAianNvbiIsCgkJYmVmb3JlU2VuZDogZnVuY3Rpb24oKSB7CgkJCgkJCW9iai5lbXB0eSgpLmFwcGVuZCgnPGRpdiBjbGFzcz0iYWpheC1sb2FkaW5nIGFqYXgtbG9hZGVyLXR5cGUtMTYiPjwvZGl2PicpOwoJCX0sCgkJZXJyb3I6IGZ1bmN0aW9uKGpxWEhSLCB0ZXh0U3RhdHVzLCBlcnJvclRocm93bikgewoJCQkKCQkJLy9hbGVydCgiU29ycnkuIFRoZXJlIHdhcyBhbiBMSVNFIEFKQVggZXJyb3I6ICIgKyB0ZXh0U3RhdHVzKTsKCQl9LAkJCQoJCXN1Y2Nlc3M6IGZ1bmN0aW9uKGRhdGEpIHsKCQkJCgkJCW9iai5odG1sKGRhdGEuaW1hZ2UpOwkJCQkKCQkJb2JqLmF0dHIoImhyZWYiLCBkYXRhLmhyZWYpOwoJCX0sCgkJY29tcGxldGU6IGZ1bmN0aW9uKCkgewoJCQoJCQkkKHRoaXMsICIuYWpheC1sb2FkaW5nIikucmVtb3ZlKCk7CgkJfQkJCgkJCgl9KTsKfQ==]]></data>
	</file>
	<file>
	  <filename>/lib/parameter.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHANCi8qKg0KICogdGVzdC4uLiBtYXkgYmUgcmVtb3ZlZCBhdCBzb21lIHBvaW50DQogKi8NCg0KbmFtZXNwYWNlIExJU0U7DQoNCg0KY2xhc3MgcGFyYW1ldGVyDQp7DQogIHByaXZhdGUgaW50ICRfdHlwZTsNCiAgcHJpdmF0ZSAkX3ZhbHVlOw0KICANCiAgDQogIC8qKg0KICAgKiBwcml2YXRlIG1ldGhvZHMNCiAgICovDQogIHByaXZhdGUgZnVuY3Rpb24gX2dldF92YWx1ZSgpDQogIHsNCiAgICAkdG1wID0gJHRoaXMtPl92YWx1ZTsNCiAgICANCiAgICBpZigkdGhpcy0+X3R5cGUgIT09IHBhcmFtZXRlcnM6OlRZUEVfVU5ERUZJTkVEKQ0KICAgIHsNCiAgICAgIGlmKCR0aGlzLT5fdHlwZSAmIHBhcmFtZXRlcnM6OlRZUEVfQk9PTCkNCiAgICAgIHsNCiAgICAgICAgJHRtcCA9IChib29sKSR0aGlzLT5fdmFsdWU7DQogICAgICB9DQogICAgfQ0KICAgIA0KICAgIHJldHVybiAkdG1wOw0KICB9DQogIA0KICAvKioNCiAgICogcHVibGljIG1ldGhvZHMNCiAgICoNCiAgICogQHBhcmFtIG51bGwgJHZhbHVlDQogICAqIEBwYXJhbSBpbnQgICR0eXBlDQogICAqLw0KICANCiAgcHVibGljIGZ1bmN0aW9uIF9fY29uc3RydWN0KCR2YWx1ZSA9IE5VTEwsICR0eXBlID0gcGFyYW1ldGVyczo6VFlQRV9VTkRFRklORUQpDQogIHsNCiAgICAkdGhpcy0+X3ZhbHVlID0gJHZhbHVlOw0KICAgICR0aGlzLT5fdHlwZSA9ICR0eXBlOw0KICB9DQoNCiAgcHVibGljIGZ1bmN0aW9uIF9fc2VyaWFsaXplKCkgOiBhcnJheQ0KICB7DQogICAgcmV0dXJuIFsNCiAgICAgICd0eXBlJyAgPT4gJHRoaXMtPl90eXBlLA0KICAgICAgJ3ZhbHVlJyA9PiAkdGhpcy0+X3ZhbHVlDQogICAgXTsNCiAgfQ0KICANCiAgcHVibGljIGZ1bmN0aW9uIF9fdW5zZXJpYWxpemUoYXJyYXkgJGRhdGEpIDogdm9pZA0KICB7DQogICAgJHRoaXMtPl92YWx1ZSA9ICRkYXRhWyd2YWx1ZSddOw0KICAgICR0aGlzLT5fdHlwZSAgPSAkZGF0YVsndHlwZSddOw0KICB9DQogIA0KICBwdWJsaWMgZnVuY3Rpb24gX190b1N0cmluZygpDQogIHsNCiAgICByZXR1cm4gKHN0cmluZykkdGhpcy0+X3ZhbHVlOw0KICB9DQogIA0KICBwdWJsaWMgZnVuY3Rpb24gX19pbnZva2UoKQ0KICB7DQogICAgcmV0dXJuIDsNCiAgfQ0KICANCiAgDQogIHB1YmxpYyBmdW5jdGlvbiBfX2RlYnVnSW5mbygpDQogIHsNCiAgICByZXR1cm4gWw0KICAgICAgJ3R5cGUnICA9PiAkdGhpcy0+X3R5cGUsDQogICAgICAndmFsdWUnID0+ICR0aGlzLT5fdmFsdWUNCiAgICBdOw0KICB9DQogIA0KICANCiAgcHVibGljIGZ1bmN0aW9uIF9fc2V0KCRuYW1lLCAkdmFsdWUpDQogIHsNCiAgICBzd2l0Y2ggKCRuYW1lKQ0KICAgIHsNCiAgICAgIGNhc2UgJ3R5cGUnOg0KICAgICAgICAgICAgJHRoaXMtPl90eXBlID0gJHZhbHVlOw0KICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgIA0KICAgICAgY2FzZSAndmFsdWUnOg0KICAgICAgICAgICAgJHRoaXMtPl92YWx1ZSA9ICR2YWx1ZTsNCiAgICAgICAgICBicmVhazsNCg0KICAgICAgZGVmYXVsdDoNCiAgICAgICAgdGhyb3cgbmV3IFxSdW50aW1lRXhjZXB0aW9uKCdJbnZhbGlkIGFjY2VzcyBvZiBwYXJhbWV0ZXIgcHJvcGVydHkgJyAuICRuYW1lKTsNCiAgICB9DQogIH0NCiAgDQogIHB1YmxpYyBmdW5jdGlvbiBfX2dldCgkbmFtZSkNCiAgew0KICAgIHN3aXRjaCgkbmFtZSkNCiAgICB7DQogICAgICBjYXNlICd0eXBlJzoNCiAgICAgICAgcmV0dXJuICR0aGlzLT5fdHlwZTsNCiAgICAgIGJyZWFrOw0KICAgIA0KICAgICAgY2FzZSAndmFsdWUnOg0KICAgICAgICByZXR1cm4gJHRoaXMtPl92YWx1ZTsNCiAgICAgIGJyZWFrOw0KICAgIA0KICAgICAgZGVmYXVsdDoNCiAgICAgICAgdGhyb3cgbmV3IFxSdW50aW1lRXhjZXB0aW9uKCdJbnZhbGlkIGFjY2VzcyBvZiBwYXJhbWV0ZXIgcHJvcGVydHkgJyAuICRuYW1lKTsNCiAgICB9DQogIH0NCiAgDQogIHB1YmxpYyBmdW5jdGlvbiBfX2lzc2V0KCRuYW1lKQ0KICB7DQogICAgc3dpdGNoKCRuYW1lKQ0KICAgIHsNCiAgICAgIGNhc2UgJ3R5cGUnOg0KICAgICAgICByZXR1cm4gaXNzZXQoJHRoaXMtPl90eXBlKTsNCiAgICAgIGJyZWFrOw0KICAgIA0KICAgICAgY2FzZSAndmFsdWUnOg0KICAgICAgICByZXR1cm4gaXNzZXQoJHRoaXMtPl92YWx1ZSk7DQogICAgICBicmVhazsNCiAgICANCiAgICAgIGRlZmF1bHQ6DQogICAgICAgIHRocm93IG5ldyBcUnVudGltZUV4Y2VwdGlvbignSW52YWxpZCBhY2Nlc3Mgb2YgcGFyYW1ldGVyIHByb3BlcnR5ICcgLiAkbmFtZSk7DQogICAgfQ0KICB9DQogIA0KICBwdWJsaWMgZnVuY3Rpb24gX191bnNldCgkbmFtZSkNCiAgew0KICAgIHN3aXRjaCgkbmFtZSkNCiAgICB7DQogICAgICBjYXNlICd0eXBlJzoNCiAgICAgICAgdW5zZXQoJHRoaXMtPl90eXBlKTsNCiAgICAgIGJyZWFrOw0KICAgIA0KICAgICAgY2FzZSAndmFsdWUnOg0KICAgICAgICB1bnNldCgkdGhpcy0+X3ZhbHVlKTsNCiAgICAgIGJyZWFrOw0KICAgIA0KICAgICAgZGVmYXVsdDoNCiAgICAgICAgdGhyb3cgbmV3IFxSdW50aW1lRXhjZXB0aW9uKCdJbnZhbGlkIGFjY2VzcyBvZiBwYXJhbWV0ZXIgcHJvcGVydHkgJyAuICRuYW1lKTsNCiAgICB9DQogIH0NCiAgDQp9DQoNCj8+]]></data>
	</file>
	<file>
	  <filename>/LISE.module.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBMSVNFIC0gTGlzdCBJdCBTcGVjaWFsIEVkaXRpb24KIyBWZXJzaW9uIDEuMi40CiMgQSBmb3JrIG9mIExpc3RJMgojIG1haW50YWluZWQgYnkgRmVybmFuZG8gTW9yZ2FkbyBBS0EgSm8gTW9yZwojIHNpbmNlIDIwMTUKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIwojIE9yaWdpbmFsIEF1dGhvcjogQmVuIE1hbGVuLCA8YmVuQGNvbmNlcHRmYWN0b3J5LmNvbS5hdT4KIyBDby1NYWludGFpbmVyOiBTaW1vbiBSYWRmb3JkLCA8c2ltb25AY29uY2VwdGZhY3RvcnkuY29tLmF1PgojIFdlYjogd3d3LmNvbmNlcHRmYWN0b3J5LmNvbS5hdQojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBNYWludGFpbmVyIHNpbmNlIDIwMTEgdXAgdG8gMjAxNDogSm9uYXRoYW4gU2NobWlkLCA8aGlAam9uYXRoYW5zY2htaWQuZGU+CiMgV2ViOiB3d3cuam9uYXRoYW5zY2htaWQuZGUKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojCiMgU29tZSB3YWNrb3Mgc3RhcnRlZCBkZXN0cm95aW5nIHN0dWZmIHNpbmNlIDIwMTIgYW5kIHN0b3BwZWQgYXQgMjAxNDoKIwojIFRhcGlvIEzDtnl0dHksIDx0YXBzYUBvcmFuZ2UtbWVkaWEuZmk+CiMgV2ViOiB3d3cub3JhbmdlLW1lZGlhLmZpCiMKIyBHb3JhbiBJbGljLCA8dW5pcXUzZUBnbWFpbC5jb20+CiMgV2ViOiB3d3cuaWNoLW1hY2gtZGFzLmF0CiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIwojIExJU0UgaXMgYSBDTVMgTWFkZSBTaW1wbGUgbW9kdWxlIHRoYXQgZW5hYmxlcyB0aGUgd2ViIGRldmVsb3BlciB0byBjcmVhdGUKIyBtdWx0aXBsZSBsaXN0cyB0aHJvdWdob3V0IGEgc2l0ZS4gSXQgY2FuIGJlIGR1cGxpY2F0ZWQgYW5kIGdpdmVuIGZyaWVuZGx5CiMgbmFtZXMgZm9yIGVhc2llciBjbGllbnQgbWFpbnRlbmFuY2UuCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBCRUdJTl9MSUNFTlNFCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgVGhpcyBmaWxlIGlzIHBhcnQgb2YgTElTRQojIExJU0UgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CiMgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKIyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvcgojIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMKIyBMSVNFIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgojIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgojIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCiMgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKIyBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3IFVTQQojIE9yIHJlYWQgaXQgb25saW5lOiBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIEVORF9MSUNFTlNFCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogR0xPQkFMIERFRklORVMKKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCiRjb25maWcgPSBjbXNtcygpLT5HZXRDb25maWcoKTsKCiMgdGhlIGZvbGxvd2luZyBhcmUgZGVwcmVjYXRlZCBzaW5jZSAxLjIuNCBhbmQgbWFya2VkIGZvciByZW1vdmFsICMKZGVmaW5lKCdMSVNFJywgJ0xJU0UnKTsKZGVmaW5lKCdMSVNFX1ZBTFVFX1NFUEFSQVRPUicsICcsJyk7CmRlZmluZSgnTElTRV9DT05GSUdfRklMRScsICdsaXNlX2NvbmZpZy5waHAnKTsKZGVmaW5lKCdMSVNFX0ZSQU1FV09SS19QQVRIJywgY21zX2pvaW5fcGF0aCgkY29uZmlnWydyb290X3BhdGgnXSwgJ21vZHVsZXMnLCBMSVNFLCAnZnJhbWV3b3JrJykgKTsKZGVmaW5lKCdMSVNFX1RFTVBMQVRFX1BBVEgnLCBjbXNfam9pbl9wYXRoKExJU0VfRlJBTUVXT1JLX1BBVEgsICd0ZW1wbGF0ZXMnKSApOwojIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCgovKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKIE1BSU4gQ0xBU1MKKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCmNsYXNzIExJU0UgZXh0ZW5kcyBDTVNNb2R1bGUKewogIAogIC8qKgogICAqIG5ldwogICAqIE1vZGVzCiAgICoKICAgKiBAc2luY2UgMS40CiAgICovCiAgCiAgLyoqCiAgICogTElTRTo6TU9ERV9MSVNUIGlzIHRoZSBkZWZhdWx0IHVzdWFsIExJU0UgbW9kZQogICAqLwogIGNvbnN0IE1PREVfTElTVCA9IDA7CiAgCiAgLyoqCiAgICogTElTRTo6TU9ERV9MT0NBTCBtZWFuczoKICAgKiBMSVNFIGluc3RhbmNlIG9uIHRoaXMgbW9kZQogICAqIHdpbGwgYmUgb24gYSBzcGVjaWFsIHNldHRpbmdzIHBhZ2UKICAgKiBvbiBhbm90aGVyIGluc3RhbmNlCiAgICovCiAgY29uc3QgTU9ERV9MT0NBTCA9IDE7CiAgCiAgLyoqCiAgICogTElTRTo6TU9ERV9HTE9CQUwgbWVhbnM6CiAgICogTElTRSBpbnN0YW5jZSBvbiB0aGlzIG1vZGUKICAgKiB3aWxsIGJlIGFjdCBhcyBhIGdsb2JhbCBzZXR0aW5ncyBtb2R1bGUKICAgKi8KICBjb25zdCBNT0RFX0dMT0JBTCA9IDI7CiAgCiAgLyoqCiAgICogdmFsaWQgbW9kZXMKICAgKgogICAqIEB2YXIgYXJyYXkKICAgKi8KICBwdWJsaWMgc3RhdGljICRtb2RlcyA9IFsKICAgIExJU0U6Ok1PREVfTElTVCwKICAgIExJU0U6Ok1PREVfTE9DQUwsCiAgICBMSVNFOjpNT0RFX0dMT0JBTAogIF07CiAgCiAgLyoqCiAgICogbmV3CiAgICogVGl0bGUgRWRpdCBEaXNwbGF5IE1vZGVzCiAgICoKICAgKiBAc2luY2UgMS41CiAgICovCiAgCiAgLyoqCiAgICogTElTRTo6VEVNX0lOUFVUIGRlZmF1bHQ6IGRpc3BsYXlzIGFuIGlucHV0IHRoZSB1c2VyIGhhcyB0byBmaWxsCiAgICovCiAgY29uc3QgVEVNX0lOUFVUID0gMDsKICAKICAvKioKICAgKiBMSVNFOjpURU1fUkVBRE9OTFkgZGlzcGxheXMgYSByZWFkb25seSBpbnB1dAogICAqIG5vdGU6IHRpdGxlIHdpbGwgbmVlZCB0byBiZSBpbiAnYXV0b2dlbmVyYXRlZCcgbW9kZQogICAqLwogIGNvbnN0IFRFTV9SRUFET05MWSA9IDE7CiAgCiAgLyoqCiAgICogTElTRTo6VEVNX0hJRERFTiBkaXNwbGF5cyBub3RoaW5nIGJ1dCByZW5kZXJzIGEgaGlkZGVuIGlucHV0CiAgICogbm90ZTogdGl0bGUgd2lsbCBuZWVkIHRvIGJlIGluICdhdXRvZ2VuZXJhdGVkJyBtb2RlCiAgICovCiAgY29uc3QgVEVNX0hJRERFTiA9IDI7CiAgCiAgLyoqCiAgICogdmFsaWQgbW9kZXMKICAgKgogICAqIEB2YXIgYXJyYXkKICAgKi8KICBwdWJsaWMgc3RhdGljICR0ZW0gPSBbCiAgICBMSVNFOjpURU1fSU5QVVQsCiAgICBMSVNFOjpURU1fUkVBRE9OTFksCiAgICBMSVNFOjpURU1fSElEREVOCiAgXTsKICAKICAjLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgIyBBdHRyaWJ1dGVzCiAgIy0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKICBwdWJsaWMgJHByZWZpeDsgLy8gPC0gTW92ZSB0byB2YXJpYWJsZXMKICBwdWJsaWMgJHVzZV9oaW50czsgLy8gPC0gTW92ZSB0byB2YXJpYWJsZXMKICBwcml2YXRlICRfY29uZmlnOwogIHByb3RlY3RlZCAkX2ZpZWxkZGVmX2NhY2hlOwogIHByb3RlY3RlZCAkX2l0ZW1fY2FjaGU7CgogICMtLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAjIE1hZ2ljIG1ldGhvZHMKICAjLS0tLS0tLS0tLS0tLS0tLS0tLS0tICAgIAoKICBwdWJsaWMgZnVuY3Rpb24gX19jb25zdHJ1Y3QoKQogIHsKICAgIHNwbF9hdXRvbG9hZF9yZWdpc3RlciggYXJyYXkoJHRoaXMsICdfYXV0b2xvYWRlcicpICk7CiAgCiAgICAkdGhpcy0+X2l0ZW1fY2FjaGUgICAgPSBuZXcgTElTRUNhY2hlKExJU0VJdGVtT3BlcmF0aW9uczo6JGlkZW50aWZpZXJzKTsKICAgICR0aGlzLT5wcmVmaXggICAgICAgICA9ICR0aGlzLT5HZXRQcmVmZXJlbmNlKCd1cmxfcHJlZml4JywgbXVuZ2Vfc3RyaW5nX3RvX3VybCgkdGhpcy0+R2V0TmFtZSgpLCB0cnVlKSk7CiAgICAKICAgICMgc21hcnR5IHN0dWZmCiAgICAkc21hcnR5ID0gY21zbXMoKS0+R2V0U21hcnR5KCk7CiAgICAkc21hcnR5LT5yZWdpc3RlclJlc291cmNlKCdsaXNldGVtcGxhdGUnLCBuZXcgTElTRVRlbXBsYXRlUmVzb3VyY2UoKSApOwogICAgJHNtYXJ0eS0+cmVnaXN0ZXJDbGFzcygnTElTRVNtYXJ0eScsICdMSVNFU21hcnR5Jyk7CiAgICAKICAgICNJIHdvdWxkIHJhdGhlciBoYXZlIHRoaXMgaGVyZSwgYnV0Li4uIGFwcGFyZW50bHkgaW4gQ01TTVMgMiBpdCB3aWxsIHdvcmsuLi4KICAgICRzbWFydHktPnJlZ2lzdGVyUGx1Z2luKCdmdW5jdGlvbicsICdMSVNFTG9hZGVyJywgWydMSVNFTG9hZGVyJywgJ2xvYWRlciddKTsKICAgIHBhcmVudDo6X19jb25zdHJ1Y3QoKTsKICAgIAogIH0KICAKICAjLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgIyBJbnRlcm5hbCBhdXRvbG9hZGVyCiAgIy0tLS0tLS0tLS0tLS0tLS0tLS0tLSAgCgogIHByaXZhdGUgZnVuY3Rpb24gX2F1dG9sb2FkZXIoJGNsYXNzbmFtZSkKICB7CiAgICAkcGFydHMgPSBleHBsb2RlKCdcXCcsICRjbGFzc25hbWUpOwogICAgJGNsYXNzbmFtZSA9IGVuZCgkcGFydHMpOwogICAgCiAgICAkZm4gPSBjbXNfam9pbl9wYXRoKAogICAgICAgICAgICAgICAgICAgICAgICAgICR0aGlzLT5HZXRNb2R1bGVQYXRoKCksCiAgICAgICAgICAgICAgICAgICAgICAgICAgJ2xpYicsCiAgICAgICAgICAgICAgICAgICAgICAgICAgJ2NsYXNzLicgLiAkY2xhc3NuYW1lIC4gJy5waHAnCiAgICAgICAgICAgICAgICAgICAgICAgICk7CiAgICAKICAgIGlmKGZpbGVfZXhpc3RzKCRmbikpCiAgICB7CiAgICAgIHJlcXVpcmVfb25jZSgkZm4pOwogICAgfQoKICB9CiAgCiAgIy0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICMgTW9kdWxlIGFwaSBtZXRob2RzCiAgIy0tLS0tLS0tLS0tLS0tLS0tLS0tLSAgICAKICAKICBwdWJsaWMgZnVuY3Rpb24gR2V0TmFtZSgpCiAgewogICAgcmV0dXJuICdMSVNFJzsKICB9CiAgCiAgcHVibGljIGZ1bmN0aW9uIEdldEZyaWVuZGx5TmFtZSgpCiAgewogICAgcmV0dXJuICdMSVNFJzsKICB9CgogIHB1YmxpYyBmdW5jdGlvbiBHZXRWZXJzaW9uKCkKICB7CiAgICByZXR1cm4gJzEuNS4xJzsKICB9CgogIHB1YmxpYyBmdW5jdGlvbiBHZXRIZWxwKCkKICB7CiAgICAkc21hcnR5ID0gY21zbXMoKS0+R2V0U21hcnR5KCk7CiAgICAkY29uZmlnID0gY21zbXMoKS0+R2V0Q29uZmlnKCk7CiAgICAkc21hcnR5LT5hc3NpZ24oJ3BhcmVudF9uYW1lJywgJHRoaXMtPkdldE5hbWUoKSk7CiAgICAkc21hcnR5LT5hc3NpZ24oJ3Jvb3RfdXJsJywgJGNvbmZpZ1sncm9vdF91cmwnXSk7CiAgICAkc21hcnR5LT5hc3NpZ24oJ21vZCcsICR0aGlzKTsKICAgIHJldHVybiAkdGhpcy0+UHJvY2Vzc1RlbXBsYXRlKCdoZWxwLnRwbCcpOwogIH0KCiAgcHVibGljIGZ1bmN0aW9uIEdldEF1dGhvcigpCiAgewogICAgcmV0dXJuICdKbyBNb3JnJzsKICB9CgogIHB1YmxpYyBmdW5jdGlvbiBHZXRBdXRob3JFbWFpbCgpCiAgewogICAgcmV0dXJuICdqb21vcmdAc20tYXJ0LWxhYi5jb20nOwogIH0KCiAgcHVibGljIGZ1bmN0aW9uIEdldENoYW5nZUxvZygpCiAgewogICAgcmV0dXJuIGNtc21zKCktPkdldFNtYXJ0eSgpLT5mZXRjaCgnbW9kdWxlX2ZpbGVfdHBsOkxJU0U7Y2hhbmdlbG9nLnRwbCcpOwogIH0KCiAgcHVibGljIGZ1bmN0aW9uIElzUGx1Z2luTW9kdWxlKCkKICB7CiAgICByZXR1cm4gZmFsc2U7CiAgfQoKICBwdWJsaWMgZnVuY3Rpb24gSGFzQWRtaW4oKQogIHsKICAgIHJldHVybiB0cnVlOwogIH0KCiAgcHVibGljIGZ1bmN0aW9uIEdldEFkbWluU2VjdGlvbigpCiAgewogICAgcmV0dXJuICdleHRlbnNpb25zJzsKICB9CgogIHB1YmxpYyBmdW5jdGlvbiBHZXRBZG1pbkRlc2NyaXB0aW9uKCkKICB7CiAgICByZXR1cm4gJHRoaXMtPk1vZExhbmcoJ21vZGRlc2NyaXB0aW9uJyk7CiAgfQoKICBwdWJsaWMgZnVuY3Rpb24gVmlzaWJsZVRvQWRtaW5Vc2VyKCkKICB7CiAgICByZXR1cm4gJHRoaXMtPkNoZWNrUGVybWlzc2lvbignTW9kaWZ5IFNpdGUgUHJlZmVyZW5jZXMnKTsKICB9CgogIHB1YmxpYyBmdW5jdGlvbiBNaW5pbXVtQ01TVmVyc2lvbigpCiAgewogICAgcmV0dXJuICcyLjEnOwogIH0KCiAgcHVibGljIGZ1bmN0aW9uIEluc3RhbGxQb3N0TWVzc2FnZSgpCiAgewogICAgcmV0dXJuICR0aGlzLT5Nb2RMYW5nKCdwb3N0aW5zdGFsbCcpOwogIH0KCiAgcHVibGljIGZ1bmN0aW9uIFVuaW5zdGFsbFBvc3RNZXNzYWdlKCkKICB7CiAgICByZXR1cm4gJHRoaXMtPk1vZExhbmcoJ3Bvc3R1bmluc3RhbGwnKTsKICB9CiAgCiAgZnVuY3Rpb24gR2V0RXZlbnREZXNjcmlwdGlvbiggJGV2ZW50bmFtZSApCiAgewogICAgcmV0dXJuICR0aGlzLT5Nb2RMYW5nKCdldmVudGRlc2NfJyAuICRldmVudG5hbWUpOwogIH0KCiAgZnVuY3Rpb24gR2V0RXZlbnRIZWxwKCAkZXZlbnRuYW1lICkKICB7CiAgICByZXR1cm4gJHRoaXMtPk1vZExhbmcoJ2V2ZW50aGVscF8nIC4gJGV2ZW50bmFtZSk7CiAgfQoKICBwdWJsaWMgZnVuY3Rpb24gR2V0SGVhZGVySFRNTCgpCiAgewogICAgLy8gU1NMIGNoZWNrIChIb3BlZnVsbHkgY29yZSB3b3VsZCBkbyB0aGlzIHNvb24uLi4pCiAgICAkdXNlX3NzbCA9IGZhbHNlOwogICAgaWYoaXNzZXQoJF9TRVJWRVJbJ0hUVFBTJ10pICYmICRfU0VSVkVSWydIVFRQUyddPT0nb24nKQogICAgICAkdXNlX3NzbCA9IHRydWU7CiAgCiAgICAkY29uZmlnID0gY21zbXMoKS0+R2V0Q29uZmlnKCk7CiAgICAkZ2xvYmFsc19qcyA9ICgkdXNlX3NzbCA/ICRjb25maWdbJ3NzbF91cmwnXSA6ICRjb25maWdbJ3Jvb3RfdXJsJ10pIC4gJy9tb2R1bGVzLycgLiBMSVNFIC4gJy9saWIvanMvJzsKICAgICRnbG9iYWxzX2NzcyA9ICgkdXNlX3NzbCA/ICRjb25maWdbJ3NzbF91cmwnXSA6ICRjb25maWdbJ3Jvb3RfdXJsJ10pIC4gJy9tb2R1bGVzLycgLiBMSVNFIC4gJy9saWIvY3NzLyc7CgogICAgJHRtcGwgPSA8PDxFT1QKPGxpbmsgdHlwZT0idGV4dC9jc3MiIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0ieyRnbG9iYWxzX2Nzc31saXNlLWdsb2JhbHMuY3NzIiAvPiAgCjxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9InskZ2xvYmFsc19qc31saXNlLWdsb2JhbHMuanMiPjwvc2NyaXB0PgpFT1Q7CiAgICByZXR1cm4gJHRtcGw7CiAgfQoKICBwdWJsaWMgZnVuY3Rpb24gRG9BY3Rpb24oJG5hbWUsICRpZCwgJHBhcmFtcywgJHJldHVybmlkPScnKQogIHsKICAgIGdsb2JhbCAkQ01TX0FETUlOX1BBR0U7CiAgICAkY29uZmlnID0gY21zbXMoKS0+R2V0Q29uZmlnKCk7CiAgICAkc21hcnR5ID0gY21zbXMoKS0+R2V0U21hcnR5KCk7CiAgICAkZGIgPSBjbXNtcygpLT5HZXREYigpOwogIAogICAgJHNtYXJ0eS0+YXNzaWduKCdtb2QnLCAkdGhpcyk7CiAgICAkc21hcnR5LT5hc3NpZ24oJ2FjdGlvbmlkJywgJGlkKTsKICAgICRzbWFydHktPmFzc2lnbigncmV0dXJuaWQnLCAkcmV0dXJuaWQpOwogICAgCiAgICBpZigkQ01TX0FETUlOX1BBR0UpCiAgICB7CiAgICAgICR0aGVtZU9iamVjdCA9IGNtc191dGlsczo6Z2V0X3RoZW1lX29iamVjdCgpOwogICAgICAkc21hcnR5LT5hc3NpZ24oJ3RoZW1lT2JqZWN0JywgJHRoZW1lT2JqZWN0KTsKICAgIH0KICAgIAogICAgaWYgKCRuYW1lICE9ICcnKQogICAgewogICAgICAkY29udGVudHMgPSAnJzsKICAgICAgJG5hbWUgPSBwcmVnX3JlcGxhY2UoJy9bXkEtWmEtejAtOVwtXytdLycsICcnLCAkbmFtZSk7CgogICAgICBpZigkQ01TX0FETUlOX1BBR0UgJiYgJG5hbWUgIT0gJ2FqYXhfZ2V0dXJsJykKICAgICAgICAkY29udGVudHMgLj0gJzxkaXYgY2xhc3M9Imxpc2UtYWRtaW4td3JhcHBlciI+JzsKICAgICAgCiAgICAgICRmaWxlbmFtZSA9ICR0aGlzLT5HZXRNb2R1bGVQYXRoKCkgLiAnL2FjdGlvbi4nIC4gJG5hbWUgLiAnLnBocCc7CiAgICAgIGlmIChAaXNfZmlsZSgkZmlsZW5hbWUpKSB7CiAgICAgICAgCiAgICAgICAgb2Jfc3RhcnQoKTsKICAgICAgICAKICAgICAgICBpbmNsdWRlKCRmaWxlbmFtZSk7CiAgICAgICAgJGNvbnRlbnRzIC49IG9iX2dldF9jb250ZW50cygpOwogICAgICAgIG9iX2VuZF9jbGVhbigpOwogICAgICB9CiAgICAgIAogICAgICBpZigkQ01TX0FETUlOX1BBR0UgJiYgJG5hbWUgIT0gJ2FqYXhfZ2V0dXJsJykKICAgICAgICAkY29udGVudHMgLj0gJzwvZGl2Pic7CgogICAgICBlY2hvICRjb250ZW50czsKICAgIH0KICB9CiAgCiAgcHVibGljIGZ1bmN0aW9uIEFsbG93QXV0b0luc3RhbGwoKQogIHsKICAgIHJldHVybiAkdGhpcy0+R2V0UHJlZmVyZW5jZSgnYXV0b19pbnN0YWxsJywgRkFMU0UpOwogIH0KCiAgcHVibGljIGZ1bmN0aW9uIEFsbG93QXV0b1VwZ3JhZGUoKQogIHsKICAgIHJldHVybiAkdGhpcy0+R2V0UHJlZmVyZW5jZSgnYXV0b191cGdyYWRlJywgRkFMU0UpOwogIH0KICAKICBwdWJsaWMgZnVuY3Rpb24gVXBncmFkZSgkb2xkdmVyc2lvbiwgJG5ld3ZlcnNpb24pCiAgewogICAgJGNvbmZpZyA9IGNtc21zKCktPkdldENvbmZpZygpOwogICAgJHNtYXJ0eSA9IGNtc21zKCktPkdldFNtYXJ0eSgpOwogICAgJGRiID0gY21zbXMoKS0+R2V0RGIoKTsKICAgIAogICAgJHJlc3BvbnNlID0gRkFMU0U7CiAgCiAgICAkZmlsZW5hbWUgPSAkdGhpcy0+R2V0TW9kdWxlUGF0aCgpIC4gJy9tZXRob2QudXBncmFkZS5waHAnOwogICAgaWYgKEBpc19maWxlKCRmaWxlbmFtZSkpIHsKICAgICAgCiAgICAgICRyZXNwb25zZSA9IEZBTFNFOwogICAgICAKICAgICAgJHJlcyA9IGluY2x1ZGUoJGZpbGVuYW1lKTsKICAgICAgCiAgICAgIGlmKGxpc2VfdXRpbHM6OmlzQ01TMigpKQogICAgICB7CiAgICAgICAgaWYoJHJlcyA9PSAxIHx8ICRyZXMgPT0gJycpIHsKICAgICAgICAgICRyZXNwb25zZSA9IEZBTFNFOwogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAkcmVzcG9uc2UgPSAkcmVzOwogICAgICAgIH0KICAgICAgfQogICAgICBlbHNlCiAgICAgIHsKICAgICAgICBpZigkcmVzID09IDEgfHwgJHJlcyA9PSAnJykgICRyZXNwb25zZSA9IFRSVUU7CiAgICAgIH0KCiAgICB9CgogICAgcmV0dXJuICRyZXNwb25zZTsKICB9CgogIHB1YmxpYyBmdW5jdGlvbiBJbnN0YWxsKCkKICB7CiAgICAkY29uZmlnID0gY21zbXMoKS0+R2V0Q29uZmlnKCk7CiAgICAkc21hcnR5ID0gY21zbXMoKS0+R2V0U21hcnR5KCk7CiAgICAkZGIgPSBjbXNtcygpLT5HZXREYigpOwogICAgCiAgICAkcmVzcG9uc2UgPSBGQUxTRTsKICAKICAgICRmaWxlbmFtZSA9ICR0aGlzLT5HZXRNb2R1bGVQYXRoKCkgLiAnL21ldGhvZC5pbnN0YWxsLnBocCc7CiAgICBpZiAoQGlzX2ZpbGUoJGZpbGVuYW1lKSkgewogIAogICAgICAKICAgICAgJHJlcyA9IGluY2x1ZGUoJGZpbGVuYW1lKTsKICAgICAgaWYoJHJlcyA9PSAxIHx8ICRyZXMgPT0gJycpIHsKICAgICAgICAkcmVzcG9uc2UgPSBGQUxTRTsKICAgICAgfSBlbHNlIHsKICAgICAgICAkcmVzcG9uc2UgPSAkcmVzOwogICAgICB9CiAgICB9CiAgCiAgICByZXR1cm4gJHJlc3BvbnNlOwogIH0KICAKICBwdWJsaWMgZnVuY3Rpb24gVW5pbnN0YWxsKCkKICB7CiAgICAkY29uZmlnID0gY21zbXMoKS0+R2V0Q29uZmlnKCk7CiAgICAkc21hcnR5ID0gY21zbXMoKS0+R2V0U21hcnR5KCk7CiAgICAkZGIgPSBjbXNtcygpLT5HZXREYigpOwogICAgCiAgICAkcmVzcG9uc2UgPSBGQUxTRTsKICAgIAogICAgJGZpbGVuYW1lID0gJHRoaXMtPkdldE1vZHVsZVBhdGgoKSAuICcvbWV0aG9kLnVuaW5zdGFsbC5waHAnOwogICAgaWYgKEBpc19maWxlKCRmaWxlbmFtZSkpIHsKICAKICAgICAgCiAgICAgICRyZXMgPSBpbmNsdWRlKCRmaWxlbmFtZSk7CiAgICAgIGlmKCRyZXMgPT0gMSB8fCAkcmVzID09ICcnKSB7CiAgICAgICAgJHJlc3BvbnNlID0gRkFMU0U7CiAgICAgIH0gZWxzZSB7CiAgICAgICAgJHJlc3BvbnNlID0gJHJlczsKICAgICAgfQogICAgfQogIAogICAgcmV0dXJuICRyZXNwb25zZTsKICB9CgogICMtLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAjIE1hbmlwdWxhdGlvbiBtZXRob2RzCiAgIy0tLS0tLS0tLS0tLS0tLS0tLS0tLSAKICAKICBwdWJsaWMgZnVuY3Rpb24gTW9kTGFuZygpCiAgewogICAgJGFyZ3MgPSBmdW5jX2dldF9hcmdzKCk7CiAgICByZXR1cm4gY2FsbF91c2VyX2Z1bmNfYXJyYXkoYXJyYXkoJHRoaXMsICdsYW5nJyksICRhcmdzKTsKICB9CiAgCiAgcHVibGljIGZ1bmN0aW9uIE1vZFByb2Nlc3NUZW1wbGF0ZSgkdHBsX25hbWUpCiAgewogICAgJG9rID0gKHN0cnBvcygkdHBsX25hbWUsICcuLicpID09PSBmYWxzZSk7CiAgICBpZiAoISRvaykgcmV0dXJuICcnOwoKICAgICRzbWFydHkgPSBjbXNtcygpLT5HZXRTbWFydHkoKTsKICAgICRyZXN1bHQgPSAnJzsKICAgICRvbGRjYWNoZSA9ICRzbWFydHktPmNhY2hpbmc7CiAgICAkc21hcnR5LT5jYWNoaW5nID0gJHRoaXMtPmNhbl9jYWNoZV9vdXRwdXQoKSA/IFNtYXJ0eTo6Q0FDSElOR19MSUZFVElNRV9DVVJSRU5UIDogU21hcnR5OjpDQUNISU5HX09GRjsKICAgICRyZXN1bHQgPSAkc21hcnR5LT5mZXRjaCgnbGlzZXRlbXBsYXRlOmluc3RhbmNlOycgLiAkdGhpcy0+R2V0TmFtZSgpIC4gJzsnIC4gJHRwbF9uYW1lKTsKICAgICRzbWFydHktPmNhY2hpbmcgPSAkb2xkY2FjaGU7CiAgICByZXR1cm4gJHJlc3VsdDsKICB9CiAgCiAgcHVibGljIGZ1bmN0aW9uIE1vZEdldFRlbXBsYXRlRnJvbUZpbGUoJHRwbF9uYW1lKQogIHsKICAgICRvayA9IChzdHJwb3MoJHRwbF9uYW1lLCAnLi4nKSA9PT0gRkFMU0UpOwogICAgaWYoISRvaykgeyByZXR1cm4gJyc7IH0KICAgIAogICAgJGNvbmZpZyA9IGNtc21zKCktPkdldENvbmZpZygpOwogICAgCiAgICAkdGVtcGxhdGUgPSBjbXNfam9pbl9wYXRoKExJU0VfVEVNUExBVEVfUEFUSCwgJHRwbF9uYW1lIC4gJy50cGwnKTsKICAgIAogICAgaWYoaXNfcmVhZGFibGUoJHRlbXBsYXRlKSkKICAgIHsKICAgICAgcmV0dXJuIEBmaWxlX2dldF9jb250ZW50cygkdGVtcGxhdGUpOwogICAgfQogICAgZWxzZQogICAgewogICAgICByZXR1cm4gTlVMTDsKICAgIH0KICB9CiAgCiAgIy0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICMgSW5zdGFuY2UgbWV0aG9kcwogICMtLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAKICAvKioKICAgKiBMaXN0IE1vZHVsZXMKICAgKgogICAqIEByZXR1cm4gYXJyYXkgb2Ygb2JqZWN0cwogICAqIEB0aHJvd3MgXEV4Y2VwdGlvbgogICAqIEBpbnRlcm5hbAogICAqLwogIGZpbmFsIHB1YmxpYyBmdW5jdGlvbiBMaXN0TW9kdWxlcygpIDogYXJyYXkKICB7CiAgICAkZGIgPSBjbXNtcygpLT5HZXREYigpOwogICAgCiAgICAkZW50cnlhcnJheSA9IGFycmF5KCk7CiAgCiAgICAkcXVlcnkgPSAiU0VMRUNUICogRlJPTSAiIC4gY21zX2RiX3ByZWZpeCgpIC4gIm1vZHVsZV9saXNlX2luc3RhbmNlcyBPUkRFUiBCWSBtb2R1bGVfaWQiOwogICAgJGRiciA9ICRkYi0+RXhlY3V0ZSgkcXVlcnkpOwoKICAgIHdoaWxlICgkZGJyICYmICRyb3cgPSAkZGJyLT5GZXRjaFJvdygpKQogICAgewogICAgICAjICogTk9URTogbGlzZV91dGlsczo6YXJyYXlfdG9fb2JqZWN0KCkgbm90IGNhbGxlZCBvbiBwdXJwb3NlLiAoTmVlZCB0byBmaW5kIHdoeSB0aG91Z2ggLi4uLiBKTSkKICAgICAgJG9iaiA9IG5ldyBzdGRDbGFzcygpOwogICAgCiAgICAgICRvYmotPm1vZHVsZV9pZCA9ICRyb3dbJ21vZHVsZV9pZCddOwogICAgICAkb2JqLT5tb2R1bGVfbmFtZSA9ICRyb3dbJ21vZHVsZV9uYW1lJ107CiAgICAKICAgICAgJGVudHJ5YXJyYXlbJHJvd1snbW9kdWxlX2lkJ11dID0gJG9iajsKICAgIH0KICAKICAgIHJldHVybiAkZW50cnlhcnJheTsKICB9CgogIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKiBGUkFNRVdPUksgU1RBUlRTCiAgKiBub3RlOiB0aGlzIHdpbGwgbW9zdCBzdXJlbHkgYmUgbW92ZWQgdG8gdGhlIGFjdHVhbCBmcmFtZXdvcmsKICAqIGF0IHNvbWUgcG9pbnQKICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwoKICAjLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgIyBTZWFyY2ggbWV0aG9kcwogICMtLS0tLS0tLS0tLS0tLS0tLS0tLS0gCgogIHB1YmxpYyBmdW5jdGlvbiBTZWFyY2hSZXN1bHQoJHJldHVybmlkLCAkaXRlbV9pZCwgJGF0dHIgPSAnJykgOiBhcnJheQogIHsKCiAgICAkcmVzdWx0ID0gYXJyYXkoKTsKCiAgICBpZigkdGhpcy0+R2V0UHJlZmVyZW5jZSgncmVpbmRleF9zZWFyY2gnLCAwKSkKICAgIHsKICAgICAgJGF0dHJpYnV0ZV9uYW1lID0gJHRoaXMtPkdldFByZWZlcmVuY2UoJ2l0ZW1fc2luZ3VsYXInLCAnaXRlbScpOwogICAgICAKICAgICAgaWYoJGF0dHIgPT0gJ3RpdGxlJyB8fCAkYXR0ciA9PSAkYXR0cmlidXRlX25hbWUpCiAgICAgIHsKICAgICAgICAkZGIgPSBjbXNtcygpLT5HZXREYigpOwogICAgICAgICRyb3cgPSAkZGItPkdldFJvdygnU0VMRUNUIGFsaWFzLCB0aXRsZSwgdXJsIEZST00gJyAuIGNtc19kYl9wcmVmaXgoKSAuICdtb2R1bGVfJyAuICR0aGlzLT5fR2V0TW9kdWxlQWxpYXMoKSAuICdfaXRlbSBXSEVSRSBhY3RpdmUgPSAxIEFORCBpdGVtX2lkID0gPycsIGFycmF5KCRpdGVtX2lkKSk7CgogICAgICAgIGlmKCRyb3cpCiAgICAgICAgewogICAgICAgICAgLy8wIHBvc2l0aW9uIGlzIHRoZSBwcmVmaXggZGlzcGxheWVkIGluIHRoZSBsaXN0IHJlc3VsdHMuCiAgICAgICAgICAkcmVzdWx0WzBdID0gJHRoaXMtPkdldEZyaWVuZGx5TmFtZSgpOwoKICAgICAgICAgIC8vMSBwb3NpdGlvbiBpcyB0aGUgdGl0bGUKICAgICAgICAgICRyZXN1bHRbMV0gPSAkcm93Wyd0aXRsZSddOwoKICAgICAgICAgIC8vMiBwb3NpdGlvbiBpcyB0aGUgVVJMIHRvIHRoZSBpdGVtLgogICAgICAgICAgJGlubGluZSA9ICR0aGlzLT5HZXRQcmVmZXJlbmNlKCdkaXNwbGF5X2lubGluZScsIDApID09IDE7CgogICAgICAgICAgJGRldGFpbHRlbXBsYXRlID0gJHRoaXMtPkdldFByZWZlcmVuY2UoJHRoaXMtPl9HZXRNb2R1bGVBbGlhcygpIC4gJ19kZWZhdWx0X2RldGFpbF90ZW1wbGF0ZScpOwogICAgICAKICAgICAgICAgICRwYXJhbXMgPSBhcnJheSgnaXRlbScgPT4gJHJvd1snYWxpYXMnXSwgJ2RldGFpbHRlbXBsYXRlJyA9PiAkZGV0YWlsdGVtcGxhdGUpOwogICAgICAgICAgLy8kdGhpcy0+TG9hZE1vZHVsZUhpbnRzKCRwYXJhbXMpOwoKICAgICAgICAgICRyZXN1bHRbMl0gPSAkdGhpcy0+Q3JlYXRlUHJldHR5TGluaygnY250bnQwMScsICdkZXRhaWwnLCAkcmV0dXJuaWQsICcnLCAkcGFyYW1zLCAnJywgdHJ1ZSwgJGlubGluZSwgJycsIGZhbHNlLCAkcm93Wyd1cmwnXSk7CiAgICAgICAgfQogICAgICB9CiAgICB9CiAgICAKICAgIHJldHVybiAkcmVzdWx0OwogIH0KICAKCiAgIy0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICMgVGVtcGxhdGUgbWV0aG9kcwogICMtLS0tLS0tLS0tLS0tLS0tLS0tLS0gCiAgCiAgcHVibGljIGZ1bmN0aW9uIEdldEZpbGVUZW1wbGF0ZXNCeVR5cGUoJHR5cGUpCiAgewogICAgJHJlc3VsdCA9IGFycmF5KCk7CiAgICAKICAgIGlmICgkaGFuZGxlID0gb3BlbmRpcihMSVNFX1RFTVBMQVRFX1BBVEgpKSB7CiAgICAKICAgICAgd2hpbGUgKGZhbHNlICE9PSAoJGVudHJ5ID0gcmVhZGRpcigkaGFuZGxlKSkpIHsKICAgICAgCiAgICAgICAgaWYgKCRlbnRyeSA9PT0gIi4iIHx8ICRlbnRyeSA9PT0gIi4uIikgY29udGludWU7CiAgICAgICAgCiAgICAgICAgaWYoc3RhcnRzd2l0aCgkZW50cnksICdmZV8nKSkgewogICAgICAKICAgICAgICAgIFskdHBsX3ByZWZpeCwgJHRwbF90eXBlLCAkdHBsX25hbWVdID0gZXhwbG9kZSgnXycsICRlbnRyeSwgMyk7CiAgICAgICAgICBpZigkdHBsX3R5cGUgPT0gJHR5cGUpIHsKICAgICAgICAgIAogICAgICAgICAgICAkc3BsaXRfZmlsZSA9IGV4cGxvZGUoJy4nLCAkZW50cnkpOwogICAgICAgICAgICAkc3BsaXRfbmFtZSA9IGV4cGxvZGUoJy4nLCAkdHBsX25hbWUpOwogICAgICAgICAgICAKICAgICAgICAgICAgJHJlc3VsdFskc3BsaXRfbmFtZVswXV0gPSAkc3BsaXRfZmlsZVswXTsKICAgICAgICAgIH0KICAgICAgICB9CiAgICAgIH0KICAgICAgCiAgICAgIGNsb3NlZGlyKCRoYW5kbGUpOwogICAgfQogIAogICAga3NvcnQoJHJlc3VsdCk7CiAgCiAgICByZXR1cm4gJHJlc3VsdDsKICAKICB9CiAgCiAgIy0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICMgRmllbGRkZWYgbWV0aG9kcwogICMtLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAKICAvLyBHZXQgRmllbGQgRGVmaW5pdGlvbnMgKFJldmlldyB0aGlzIG1ldGhvZCBBU0FQKQogIHB1YmxpYyBmdW5jdGlvbiBHZXRGaWVsZERlZnMoJGluY2x1ZGVfbGlzdCA9IGFycmF5KCkpCiAgewogICAgLy8gTG9hZCBmcm9tIGNhY2hlCiAgICBpZiggIWlzc2V0KCR0aGlzLT5fZmllbGRkZWZfY2FjaGUpICkKICAgIHsKICAgICAgJHRoaXMtPl9maWVsZGRlZl9jYWNoZSA9IG5ldyBMSVNFQ2FjaGUoTElTRUZpZWxkZGVmT3BlcmF0aW9uczo6JGlkZW50aWZpZXJzKTsKICAgICAgJGxpc3QgPSBMSVNFRmllbGRkZWZPcGVyYXRpb25zOjpHZXRGaWVsZERlZnMoJHRoaXMtPkdldE5hbWUoKSwgJGluY2x1ZGVfbGlzdCk7CiAgCiAgICAgIGZvcmVhY2goICRsaXN0IGFzICRyb3cpCiAgICAgIHsKICAgICAgICAkb2JqID0gTElTRUZpZWxkZGVmT3BlcmF0aW9uczo6TG9hZCgkdGhpcywgJHJvdyk7CiAgICAKICAgICAgICBpZihpc19vYmplY3QoJG9iaikpICR0aGlzLT5fZmllbGRkZWZfY2FjaGVbXSA9ICRvYmo7CiAgICAgIH0KICAgIH0KCiAgICAkZmllbGRkZWZzID0gYXJyYXkoKTsKICAgIGZvcmVhY2goJHRoaXMtPl9maWVsZGRlZl9jYWNoZSBhcyAkZmllbGQpCiAgICB7CiAgICAgIGlmKAogICAgICAgIGNvdW50KCRpbmNsdWRlX2xpc3QpCiAgICAgICAgJiYgIWluX2FycmF5KCRmaWVsZC0+R2V0QWxpYXMoKSwgJGluY2x1ZGVfbGlzdCkKICAgICAgICAmJiAhaW5fYXJyYXkoJGZpZWxkLT5HZXRJZCgpLCAkaW5jbHVkZV9saXN0KQogICAgICApCiAgICAgICAgY29udGludWU7CiAgICAKICAgICAgJGZpZWxkZGVmc1skZmllbGQtPkdldElkKCldID0gY2xvbmUgJGZpZWxkOwogICAgfQogIAogICAgcmV0dXJuIG5ldyBMSVNFRmllbGRkZWZBcnJheSgkZmllbGRkZWZzKTsKICB9CgogIC8vIE1ha2UgYnVsayBhY3Rpb24gKHVzaW5nIHRoaXM6IGFjdGlvbi5hamF4LnBocCkKICBwdWJsaWMgZnVuY3Rpb24gU2F2ZUZpZWxkRGVmT3JkZXIoJGZpZWxkZGVmX29yZGVyKQogIHsKICAgICRkYiA9IGNtc21zKCktPkdldERiKCk7CiAgICAkcXVlcnkgPSAnVVBEQVRFICcgLiBjbXNfZGJfcHJlZml4KCkgLiAnbW9kdWxlXycgLiAkdGhpcy0+X0dldE1vZHVsZUFsaWFzKCkgLiAnX2ZpZWxkZGVmIFNFVCBwb3NpdGlvbiA9ID8gV0hFUkUgZmllbGRkZWZfaWQgPSA/JzsKICAgIGZvcmVhY2goJGZpZWxkZGVmX29yZGVyIGFzICRrZXkgPT4gJGl0ZW0pewogICAgICAkZGItPkV4ZWN1dGUoJHF1ZXJ5LCBhcnJheSgka2V5LCAkaXRlbSkpOwogICAgfQogICAgCiAgICByZXR1cm4gJHRoaXMtPk1vZExhbmcoJ2NoYW5nZXNzYXZlZCcpOwogIH0KICAKICAjLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgIyBJdGVtIG1ldGhvZHMKICAjLS0tLS0tLS0tLS0tLS0tLS0tLS0tICAgCiAgCiAgcHVibGljIGZ1bmN0aW9uIFNhdmVJdGVtKExJU0VJdGVtICRvYmopIDogdm9pZAogIHsKICAgIExJU0VJdGVtT3BlcmF0aW9uczo6U2F2ZSgkdGhpcywgJG9iaik7CiAgfQogIAogIHB1YmxpYyBmdW5jdGlvbiBJbml0aWF0ZUl0ZW0oJGxvYWRfZmllbGRzID0gYXJyYXkoKSkgOiBcTElTRUl0ZW0KICB7CiAgICAkb2JqID0gbmV3IExJU0VJdGVtOwogICAgCiAgICBpZigkbG9hZF9maWVsZHMgIT09IGZhbHNlKQogICAgewogICAgICAkb2JqLT5maWVsZGRlZnMgPSAkdGhpcy0+R2V0RmllbGREZWZzKCRsb2FkX2ZpZWxkcyk7CiAgICAgICRvYmotPmZpZWxkZGVmcy0+U2V0UGFyZW50SXRlbSgkb2JqKTsKICAgIH0KICAgIAogICAgcmV0dXJuICRvYmo7CiAgfQogIAogIC8qKgogICAqIFRPRE8gLSBuZWVkcyByZXZpc2l0aW5nIChKTSkKICAgKgogICAqIEBwYXJhbSAgICAgICRpZGVudGlmaWVyCiAgICogQHBhcmFtICAgICAgJHZhbHVlCiAgICogQHBhcmFtIGJvb2wgJG5vZmRzCiAgICoKICAgKiBAcmV0dXJuIFxMSVNFSXRlbXxtaXhlZHxudWxsCiAgICogQHRocm93cyBcTElTRVxFeGNlcHRpb24KICAgKi8KICBwdWJsaWMgZnVuY3Rpb24gTG9hZEl0ZW1CeUlkZW50aWZpZXIoJGlkZW50aWZpZXIsICR2YWx1ZSwgJG5vZmRzID0gRkFMU0UpCiAgewogICAgJGZpZWxkcyA9ICRub2ZkcyA/IEZBTFNFIDogW107CgogICAgaWYoJGlkZW50aWZpZXIgPT09ICdpdGVtX2lkJykKICAgIHsKICAgICAgaWYoISRvYmogPSAkdGhpcy0+X2l0ZW1fY2FjaGVbJHZhbHVlXSkgLy8gJG9iaiBnZXRzIGluaXRpYWxpemVkIGhlcmUgaWYgY2FjaGVkIGluIG1lbW9yeQogICAgICB7CiAgICAgICAgJG9iaiA9ICR0aGlzLT5Jbml0aWF0ZUl0ZW0oJGZpZWxkcyk7CiAgICAgICAgJG9iai0+JGlkZW50aWZpZXIgPSAkdmFsdWU7CiAgICAgIH0KICAgIH0KICAgIGVsc2UgaWYoISRvYmogPSAkdGhpcy0+X2l0ZW1fY2FjaGUtPkdldENhY2hlZEJ5SWRlbnRpZmllcigkaWRlbnRpZmllciwgJHZhbHVlKSkgLy8gJG9iaiBnZXRzIGluaXRpYWxpemVkIGhlcmUgaWYgY2FjaGVkIGluIG1lbW9yeQogICAgewogICAgICAkb2JqID0gJHRoaXMtPkluaXRpYXRlSXRlbSgkZmllbGRzKTsKICAgICAgJG9iai0+JGlkZW50aWZpZXIgPSAkdmFsdWU7CiAgICB9CgogICAgaWYoJG9iaikKICAgIHsKICAgICAgaWYoIExJU0VJdGVtT3BlcmF0aW9uczo6TG9hZCgkdGhpcywgJG9iaiwgRkFMU0UsICRub2ZkcykgKQogICAgICAgICR0aGlzLT5faXRlbV9jYWNoZVskb2JqLT5pdGVtX2lkXSA9ICRvYmo7CgogICAgICByZXR1cm4gJG9iajsKICAgIH0KICB9CiAgCiAgcHVibGljIGZ1bmN0aW9uIERlbGV0ZUl0ZW1CeUlkKCRpZCkKICB7CiAgICAkb2JqID0gJHRoaXMtPkxvYWRJdGVtQnlJZGVudGlmaWVyKCdpdGVtX2lkJywgJGlkKTsKICAgIExJU0VJdGVtT3BlcmF0aW9uczo6RGVsZXRlKCR0aGlzLCAkb2JqKTsKICB9CiAgCiAgLy8gTWFrZSBidWxrIGFjdGlvbiAodXNpbmcgdGhpczogYWN0aW9uLmFqYXgucGhwKQogIHB1YmxpYyBmdW5jdGlvbiBTYXZlSXRlbU9yZGVyKCRpdGVtX29yZGVyKQogIHsKICAgICRkYiA9IGNtc21zKCktPkdldERiKCk7CiAgICAkcXVlcnkgPSAnVVBEQVRFICcgLiBjbXNfZGJfcHJlZml4KCkgLiAnbW9kdWxlXycgLiAkdGhpcy0+X0dldE1vZHVsZUFsaWFzKCkgLiAnX2l0ZW0gU0VUIHBvc2l0aW9uID0gPyBXSEVSRSBpdGVtX2lkID0gPyc7CiAgICAkcHJlZlNvcnRvcmRlciA9ICR0aGlzLT5HZXRQcmVmZXJlbmNlKCdzb3J0b3JkZXInLCAnJyk7CiAgICAKICAgIGZvcmVhY2goJGl0ZW1fb3JkZXIgYXMgJGtleSA9PiAkaXRlbSkKICAgIHsKICAgICAgaWYgKCRwcmVmU29ydG9yZGVyID09ICdERVNDJykKICAgICAgewogICAgICAgICRkYi0+RXhlY3V0ZSggJHF1ZXJ5LCBhcnJheSggKGNvdW50KCRpdGVtX29yZGVyKSAtICRrZXkpIC0gMSwgJGl0ZW0pICk7CiAgICAgIH0KICAgICAgZWxzZQogICAgICB7CiAgICAgICAgJGRiLT5FeGVjdXRlKCRxdWVyeSwgYXJyYXkoJGtleSwgJGl0ZW0pKTsKICAgICAgfQogICAgfQogICAgcmV0dXJuICR0aGlzLT5Nb2RMYW5nKCdjaGFuZ2Vzc2F2ZWQnKTsKICB9CiAgCiAgcHVibGljIGZ1bmN0aW9uIEdldEl0ZW1RdWVyeSgmJHBhcmFtcykKICB7CiAgICAvLyRjbGFzcyA9ICR0aGlzLT5fR2V0TW9kdWxlQ29uZmlnKCdpdGVtX3F1ZXJ5X2NsYXNzJyk7IFRPRE86IFRvIGJlIHJlbW92ZWQKICAKICAgIHJldHVybiBuZXcgTElTRUl0ZW1RdWVyeSgkdGhpcywgJHBhcmFtcyk7CiAgfQogIAogICMtLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAjIENhdGVnb3J5IG1ldGhvZHMKICAjLS0tLS0tLS0tLS0tLS0tLS0tLS0tICAgCiAgCiAgcHVibGljIGZ1bmN0aW9uIFNhdmVDYXRlZ29yeShMSVNFQ2F0ZWdvcnkgJiRvYmopCiAgewogICAgTElTRUNhdGVnb3J5T3BlcmF0aW9uczo6U2F2ZSgkdGhpcywgJG9iaik7CiAgfQogIAogIHB1YmxpYyBmdW5jdGlvbiBJbml0aWF0ZUNhdGVnb3J5KCkKICB7CiAgICByZXR1cm4gbmV3IExJU0VDYXRlZ29yeTsKICB9CiAgCiAgcHVibGljIGZ1bmN0aW9uIExvYWRDYXRlZ29yeUJ5SWRlbnRpZmllcigkaWRlbnRpZmllciwgJHZhbHVlKQogIHsKICAgIGlmKCFpbl9hcnJheSgkaWRlbnRpZmllciwgTElTRUNhdGVnb3J5T3BlcmF0aW9uczo6JGlkZW50aWZpZXJzKSkKICAgICAgdGhyb3cgbmV3IFxMSVNFXEV4Y2VwdGlvbigiSWxsZWdhbCBpZGVudGlmaWVyOiAkaWRlbnRpZmllciEiKTsKCiAgICAkb2JqID0gJHRoaXMtPkluaXRpYXRlQ2F0ZWdvcnkoKTsKICAgICRvYmotPiRpZGVudGlmaWVyID0gJHZhbHVlOwogICAgCiAgICBMSVNFQ2F0ZWdvcnlPcGVyYXRpb25zOjpMb2FkKCR0aGlzLCAkb2JqKTsKICAgIAogICAgcmV0dXJuICRvYmo7CiAgfQogIAogIHB1YmxpYyBmdW5jdGlvbiBEZWxldGVDYXRlZ29yeUJ5SWQoJGlkKQogIHsKICAgICRvYmogPSAkdGhpcy0+TG9hZENhdGVnb3J5QnlJZGVudGlmaWVyKCdjYXRlZ29yeV9pZCcsICRpZCk7CiAgICBMSVNFQ2F0ZWdvcnlPcGVyYXRpb25zOjpEZWxldGUoJHRoaXMsICRvYmopOwogIH0KICAKICAvLyBNYWtlIGJ1bGsgYWN0aW9uICh1c2luZyB0aGlzOiBhY3Rpb24uYWpheC5waHApCiAgcHVibGljIGZ1bmN0aW9uIFNhdmVDYXRlZ29yeU9yZGVyKCRjYXRlZ29yeV9vcmRlcikKICB7CiAgICAkZGIgPSBjbXNtcygpLT5HZXREYigpOwogICAgJHF1ZXJ5ID0gJ1VQREFURSAnIC4gY21zX2RiX3ByZWZpeCgpIC4gJ21vZHVsZV8nIC4gJHRoaXMtPl9HZXRNb2R1bGVBbGlhcygpIC4gJ19jYXRlZ29yeSBTRVQgcG9zaXRpb24gPSA/IFdIRVJFIGNhdGVnb3J5X2lkID0gPyc7CiAgICBmb3JlYWNoKCRjYXRlZ29yeV9vcmRlciBhcyAka2V5ID0+ICRpdGVtKXsKICAgICAgJGRiLT5FeGVjdXRlKCRxdWVyeSwgYXJyYXkoJGtleSwgJGl0ZW0pKTsKICAgIH0KICAgIExJU0VDYXRlZ29yeU9wZXJhdGlvbnM6OlVwZGF0ZUhpZXJhcmNoeVBvc2l0aW9ucygkdGhpcyk7CiAgICByZXR1cm4gJHRoaXMtPk1vZExhbmcoJ2NoYW5nZXNzYXZlZCcpOwogIH0KICAKICAvKioKICAgKiBAcGFyYW0gJHBhcmFtcwogICAqCiAgICogQHJldHVybiBcTElTRUNhdGVnb3J5UXVlcnkKICAgKi8KICBwdWJsaWMgZnVuY3Rpb24gR2V0Q2F0ZWdvcnlRdWVyeSgkcGFyYW1zKSA6IFxMSVNFQ2F0ZWdvcnlRdWVyeQogIHsKICAgICRjbGFzcyA9ICR0aGlzLT5fR2V0TW9kdWxlQ29uZmlnKCdjYXRlZ29yeV9xdWVyeV9jbGFzcycpOwogIAogICAgcmV0dXJuIG5ldyAkY2xhc3MoJHRoaXMsICRwYXJhbXMpOwogIH0KCiAgIy0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICMgQXJjaGl2ZSBtZXRob2RzCiAgIy0tLS0tLS0tLS0tLS0tLS0tLS0tLSAgIAoKICBwdWJsaWMgZnVuY3Rpb24gR2V0QXJjaGl2ZVF1ZXJ5KCYkcGFyYW1zKQogIHsKICAgICRjbGFzcyA9ICR0aGlzLT5fR2V0TW9kdWxlQ29uZmlnKCdhcmNoaXZlX3F1ZXJ5X2NsYXNzJyk7CiAgCiAgICByZXR1cm4gbmV3ICRjbGFzcygkdGhpcywgJHBhcmFtcyk7CiAgfQogIAogICMtLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAjIEludGVybmFsIG1ldGhvZHMKICAjLS0tLS0tLS0tLS0tLS0tLS0tLS0tICAgICAKCiAgLyoqCiAgICogR2V0IGZpZWxkIHR5cGVzCiAgICogQHJldHVybiBhcnJheSBSZXR1cm5zIGFuIGFycmF5IG9mIGZpZWxkIHR5cGVzCiAgICovCiAgcHVibGljIGZ1bmN0aW9uIF9HZXRNb2R1bGVDb25maWcoKQogIHsKICAgICRjb25maWcgPSBhcnJheSgpOwogICAgCiAgICBpZiggZnVuY19udW1fYXJncygpICkKICAgIHsKICAgICAgJGtleSA9IGZ1bmNfZ2V0X2FyZygwKTsKICAgICAgJGNvbmZpZyA9IFxMSVNFXENvbmZpZ01hbmFnZXI6OkdldENvbmZpZ0luc3RhbmNlKCR0aGlzKTsKICAgICAgcmV0dXJuICRjb25maWdbJGtleV07CiAgICB9CiAgICAKICAgIHJldHVybiAkY29uZmlnOwogIH0KICAKICAvKioKICAgKiBHZXQgZmllbGQgdHlwZXMKICAgKiBAcmV0dXJuIGFycmF5IFJldHVybnMgYW4gYXJyYXkgb2YgZmllbGQgdHlwZXMKICAgKi8KICBwdWJsaWMgZnVuY3Rpb24gX0dldE1vZHVsZUFsaWFzKCkKICB7CiAgICByZXR1cm4gJHRoaXMtPl9HZXRNb2R1bGVDb25maWcoJ21vZHVsZV9hbGlhcycpOwogIH0KICAKICAjLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgIyBIZWxwIG1ldGhvZHMKICAjLS0tLS0tLS0tLS0tLS0tLS0tLS0tICAgCiAgCiAgcHVibGljIGZ1bmN0aW9uIENyZWF0ZUJhY2tMaW5rKCR0YWIsICRhY3Rpb24gPSAnZGVmYXVsdGFkbWluJykKICB7CiAgICAkcGFyYW1zID0gYXJyYXkoJ2FjdGl2ZV90YWInID0+ICR0YWIpOwogICAgJGxpbmsgPSAnPGEgY2xhc3M9InBhZ2ViYWNrIiBocmVmPSInCiAgICAgICAgICAgIC4gJHRoaXMtPmNyZWF0ZV91cmwoJ20xXycsICRhY3Rpb24sICcnLCAkcGFyYW1zKQogICAgICAgICAgICAuICciPicKICAgICAgICAgICAgLiAkdGhpcy0+TW9kTGFuZygnYmFjaycpCiAgICAgICAgICAgIC4gJzwvYT4nOwogICAgICAgICAgICAKICAgIHJldHVybiAkbGluazsKICB9CgogIGZ1bmN0aW9uIENyZWF0ZVByZXR0eUxpbmsoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRpZCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJGFjdGlvbiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJHJldHVybmlkID0gJycsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRjb250ZW50cyA9ICcnLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkcGFyYW1zID0gYXJyYXkoKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJHdhcm5fbWVzc2FnZSA9ICcnLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkb25seWhyZWYgPSBmYWxzZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJGlubGluZSA9IGZhbHNlLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkYWRkdGV4dCA9ICcnLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkdGFyZ2V0Y29udGVudG9ubHkgPSBmYWxzZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJHByZXR0eXVybCA9ICcnCiAgICAgICAgICAgICAgICAgICAgICAgICAgICApCiAgewogICAgCiAgICBzd2l0Y2goJGFjdGlvbikKICAgIHsKCiAgICAgIGNhc2UgJ2RldGFpbCc6CgogICAgICAgIGlmKCAhZW1wdHkoJHByZXR0eXVybCkgKQogICAgICAgIHsKICAgICAgICAgIHJldHVybiAkdGhpcy0+Q3JlYXRlTGluaygKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJGlkLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkYWN0aW9uLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkcmV0dXJuaWQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRjb250ZW50cywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJHBhcmFtcywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJHdhcm5fbWVzc2FnZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJG9ubHlocmVmLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkaW5saW5lLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkYWRkdGV4dCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJHRhcmdldGNvbnRlbnRvbmx5LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkcHJldHR5dXJsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApOwogICAgICAgIH0KICAgICAgCiAgICAgICAgJHN0cmluZ19hcnJheSA9IGFycmF5KCk7CiAgICAgICAgJHN0cmluZ19hcnJheVtdID0gJHRoaXMtPnByZWZpeDsKICAgICAgICAKICAgICAgICAvLyBDYXRlZ29yeSAvIGhpZXJhcmNoaWFsIHN0dWZmCiAgICAgICAgaWYoaXNzZXQoJHBhcmFtc1snY2F0ZWdvcnknXSkgJiYgaXNzZXQoJHBhcmFtc1snaWRfaGllcmFyY2h5J10pKSB7CiAgICAgICAgCiAgICAgICAgICBpZighaXNzZXQoJHRoaXMtPnVzZV9oaW50c1snY2F0ZWdvcnknXSkpCiAgICAgICAgICAgICRzdHJpbmdfYXJyYXlbXSA9ICRwYXJhbXNbJ2NhdGVnb3J5J107CiAgICAgICAgICAKICAgICAgICAgIGlmKCFpc3NldCgkdGhpcy0+dXNlX2hpbnRzWydpZF9oaWVyYXJjaHknXSkpCiAgICAgICAgICAgICRzdHJpbmdfYXJyYXlbXSA9ICRwYXJhbXNbJ2lkX2hpZXJhcmNoeSddOwogICAgICAgIH0KICAgICAgICAKICAgICAgICAkc3RyaW5nX2FycmF5W10gPSAkcGFyYW1zWydpdGVtJ107CiAgICAgICAgCiAgICAgICAgaWYoIWlzc2V0KCR0aGlzLT51c2VfaGludHNbJ3JldHVybmlkJ10pKQogICAgICAgICAgJHN0cmluZ19hcnJheVtdID0gJHJldHVybmlkOwoKICAgICAgICBpZighaXNzZXQoJHRoaXMtPnVzZV9oaW50c1snZGV0YWlsdGVtcGxhdGUnXSkgJiYgaXNzZXQoJHBhcmFtc1snZGV0YWlsdGVtcGxhdGUnXSkpCiAgICAgICAgICAkc3RyaW5nX2FycmF5W10gPSAkcGFyYW1zWydkZXRhaWx0ZW1wbGF0ZSddOwogICAgICAgIAogICAgICAgICRwcmV0dHl1cmwgPSBpbXBsb2RlKCcvJywgJHN0cmluZ19hcnJheSk7CiAgICAgICAgYnJlYWs7CgogICAgICBjYXNlICdkZWZhdWx0JzoKICAgICAgCiAgICAgICAgaWYoIGlzc2V0KCRwYXJhbXNbJ3RhZyddKSApCiAgICAgICAgewogICAgICAgICAgYnJlYWs7CiAgICAgICAgfQoKICAgICAgICAkc3RyaW5nX2FycmF5ID0gYXJyYXkoKTsKICAgICAgICAkc3RyaW5nX2FycmF5W10gPSAkdGhpcy0+cHJlZml4OwogICAgICAgIAogICAgICAgIC8vIENhdGVnb3J5IC8gaGllcmFyY2hpYyBzdHVmZgogICAgICAgIGlmKCFpc3NldCgkdGhpcy0+dXNlX2hpbnRzWydjYXRlZ29yeSddKSAmJiBpc3NldCgkcGFyYW1zWydjYXRlZ29yeSddKSkKICAgICAgICAgICRzdHJpbmdfYXJyYXlbXSA9ICRwYXJhbXNbJ2NhdGVnb3J5J107CiAgICAgICAgCiAgICAgICAgaWYoIWlzc2V0KCR0aGlzLT51c2VfaGludHNbJ2lkX2hpZXJhcmNoeSddKSAmJiBpc3NldCgkcGFyYW1zWydpZF9oaWVyYXJjaHknXSkpCiAgICAgICAgICAkc3RyaW5nX2FycmF5W10gPSAkcGFyYW1zWydpZF9oaWVyYXJjaHknXTsKCiAgICAgICAgLy8gUGFnZWxpbWl0IHN0dWZmLCB3b24ndCB3b3JrIHRvZ2V0aGVyIHdpdGggaGllcmFyY2hpYyBzdHVmZi4KICAgICAgICBpZihpc3NldCgkcGFyYW1zWydwYWdlbGltaXQnXSkpCiAgICAgICAgewogICAgICAgICAgJHN0cmluZ19hcnJheVtdID0gJ3BhZ2UnOwogICAgICAgICAgJHN0cmluZ19hcnJheVtdID0gJHBhcmFtc1sncGFnZW51bWJlciddOwogICAgICAgIAogICAgICAgICAgaWYoIWlzc2V0KCR0aGlzLT51c2VfaGludHNbJ3BhZ2VsaW1pdCddKSkKICAgICAgICAgICAgJHN0cmluZ19hcnJheVtdID0gJHBhcmFtc1sncGFnZWxpbWl0J107CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC8vIEFyY2hpdmUgc3R1ZmYuCiAgICAgICAgaWYoaXNzZXQoJHBhcmFtc1snZmlsdGVyX3llYXInXSkgfHwgaXNzZXQoJHBhcmFtc1snZmlsdGVyX21vbnRoJ10pKQogICAgICAgIHsKICAgICAgICAgICRzdHJpbmdfYXJyYXlbXSA9ICdhcmNoaXZlJzsKICAgICAgICAgIAogICAgICAgICAgaWYoIWlzc2V0KCR0aGlzLT51c2VfaGludHNbJ2ZpbHRlcl95ZWFyJ10pICYmIGlzc2V0KCRwYXJhbXNbJ2ZpbHRlcl95ZWFyJ10pKQogICAgICAgICAgICAkc3RyaW5nX2FycmF5W10gPSAkcGFyYW1zWydmaWx0ZXJfeWVhciddOwogICAgICAgIAogICAgICAgICAgaWYoIWlzc2V0KCR0aGlzLT51c2VfaGludHNbJ2ZpbHRlcl9tb250aCddKSAmJiBpc3NldCgkcGFyYW1zWydmaWx0ZXJfbW9udGgnXSkpCiAgICAgICAgICAgICRzdHJpbmdfYXJyYXlbXSA9ICRwYXJhbXNbJ2ZpbHRlcl9tb250aCddOwogICAgICAgIH0KICAgICAgICAKICAgICAgICBpZighaXNzZXQoJHRoaXMtPnVzZV9oaW50c1sncmV0dXJuaWQnXSkpCiAgICAgICAgICAkc3RyaW5nX2FycmF5W10gPSAkcmV0dXJuaWQ7CgogICAgICAgIGlmKCFpc3NldCgkdGhpcy0+dXNlX2hpbnRzWydkZXRhaWx0ZW1wbGF0ZSddKSAmJiBpc3NldCgkcGFyYW1zWydkZXRhaWx0ZW1wbGF0ZSddKSkKICAgICAgICAgICRzdHJpbmdfYXJyYXlbXSA9ICRwYXJhbXNbJ2RldGFpbHRlbXBsYXRlJ107CgogICAgICAgICRwcmV0dHl1cmwgPSBpbXBsb2RlKCcvJywgJHN0cmluZ19hcnJheSk7CiAgICAgICAgYnJlYWs7CiAgICAgICAgCiAgICAgICAgZGVmYXVsdDoKICAgICAgICAgICRwcmV0dHl1cmwgPSAnJzsKICAgIH0KICAgIAogICAgcmV0dXJuICR0aGlzLT5DcmVhdGVMaW5rKAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkaWQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRhY3Rpb24sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRyZXR1cm5pZCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJGNvbnRlbnRzLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkcGFyYW1zLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkd2Fybl9tZXNzYWdlLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkb25seWhyZWYsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRpbmxpbmUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRhZGR0ZXh0LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkdGFyZ2V0Y29udGVudG9ubHksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRwcmV0dHl1cmwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICk7CgogIH0KfSAvLyBlbmQgb2YgY2xhc3MKPz4=]]></data>
	</file>
	<file>
	  <filename>/method.install.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBMSVNFIC0gTGlzdCBJdCBTcGVjaWFsIEVkaXRpb24KIyBWZXJzaW9uIDEuMgojIEEgZm9yayBvZiBMaXN0STIKIyBtYWludGFpbmVkIGJ5IEZlcm5hbmRvIE1vcmdhZG8gQUtBIEpvIE1vcmcKIyBzaW5jZSAyMDE1CiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBPcmlnaW5hbCBBdXRob3I6IEJlbiBNYWxlbiwgPGJlbkBjb25jZXB0ZmFjdG9yeS5jb20uYXU+CiMgQ28tTWFpbnRhaW5lcjogU2ltb24gUmFkZm9yZCwgPHNpbW9uQGNvbmNlcHRmYWN0b3J5LmNvbS5hdT4KIyBXZWI6IHd3dy5jb25jZXB0ZmFjdG9yeS5jb20uYXUKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojCiMgTWFpbnRhaW5lciBzaW5jZSAyMDExIHVwIHRvIDIwMTQ6IEpvbmF0aGFuIFNjaG1pZCwgPGhpQGpvbmF0aGFuc2NobWlkLmRlPgojIFdlYjogd3d3LmpvbmF0aGFuc2NobWlkLmRlCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIwojIFNvbWUgd2Fja29zIHN0YXJ0ZWQgZGVzdHJveWluZyBzdHVmZiBzaW5jZSAyMDEyIGFuZCBzdG9wcGVkIGF0IDIwMTQ6CiMKIyBUYXBpbyBMw7Z5dHR5LCA8dGFwc2FAb3JhbmdlLW1lZGlhLmZpPgojIFdlYjogd3d3Lm9yYW5nZS1tZWRpYS5maQojCiMgR29yYW4gSWxpYywgPHVuaXF1M2VAZ21haWwuY29tPgojIFdlYjogd3d3LmljaC1tYWNoLWRhcy5hdAojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBMSVNFIGlzIGEgQ01TIE1hZGUgU2ltcGxlIG1vZHVsZSB0aGF0IGVuYWJsZXMgdGhlIHdlYiBkZXZlbG9wZXIgdG8gY3JlYXRlCiMgbXVsdGlwbGUgbGlzdHMgdGhyb3VnaG91dCBhIHNpdGUuIEl0IGNhbiBiZSBkdXBsaWNhdGVkIGFuZCBnaXZlbiBmcmllbmRseQojIG5hbWVzIGZvciBlYXNpZXIgY2xpZW50IG1haW50ZW5hbmNlLgojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgQkVHSU5fTElDRU5TRQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIExJU0UKIyBMSVNFIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgTElTRSBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBFTkRfTElDRU5TRQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKaWYoICFkZWZpbmVkKCdDTVNfVkVSU0lPTicpICkgZXhpdDsKCnRyeQp7CiAgJGRiID0gY21zbXMoKS0+R2V0RGIoKTsKICAkZGljdCA9IE5ld0RhdGFEaWN0aW9uYXJ5KCRkYik7CiAgJHRhYm9wdGFycmF5ID0gYXJyYXkoJ215c3FsJyA9PiAnRW5naW5lPUlubm9EQicpOwoKICAvLyBpbnN0YW5jZSB0YWJsZXMKICAkZmllbGRzID0gJwogICAgICBtb2R1bGVfaWQgSSBLRVkgQVVUTywKICAgICAgbW9kdWxlX25hbWUgQygxNjApLAogICAgICBtb2R1bGVfbW9kZSBJLAogICc7CgogICRzcWxhcnJheSA9ICRkaWN0LT5DcmVhdGVUYWJsZVNRTChjbXNfZGJfcHJlZml4KCkgLiAnbW9kdWxlX2xpc2VfaW5zdGFuY2VzJywgJGZpZWxkcywgJHRhYm9wdGFycmF5KTsKICAkciA9ICRkaWN0LT5FeGVjdXRlU1FMQXJyYXkoJHNxbGFycmF5LCBGQUxTRSk7CiAgCiAgaWYoJHIgIT0gMikKICB7CiAgICAvL3Rocm93IG5ldyBFeGNlcHRpb24oICRkYi0+RXJyb3JNc2coKSwgJGRiLT5FcnJvck5vKCkgKTsKICAgIHRocm93IG5ldyBcTElTRVxFeGNlcHRpb24oJGRiLT5FcnJvck5vKCkgLiAnIC0gJyAuICRkYi0+RXJyb3JNc2coKSAsIFxMSVNFXEVycm9yOjpESVNDUkVURV9EQiApOwogIH0KCgogIC8vIEZpZWxkZGVmIHRhYmxlcwogICRmaWVsZHMgPSAnCiAgICB0eXBlIEMoMjU1KSBLRVksCiAgICBvcmlnaW5hdG9yIEMoMjU1KSwKICAgIHBhdGggQygyNTUpLAogICAgYWN0aXZlIEk0LAogICAgZGlzYWJsZWQgSTQKICAnOwoKICAkc3FsYXJyYXkgPSAkZGljdC0+Q3JlYXRlVGFibGVTUUwoY21zX2RiX3ByZWZpeCgpIC4gJ21vZHVsZV9saXNlX2ZpZWxkZGVmcycsICRmaWVsZHMsICR0YWJvcHRhcnJheSk7CiAgJHIgPSAkZGljdC0+RXhlY3V0ZVNRTEFycmF5KCRzcWxhcnJheSwgRkFMU0UpOwogIAogIGlmKCRyICE9IDIpCiAgewogICAgLy90aHJvdyBuZXcgRXhjZXB0aW9uKCAkZGItPkVycm9yTXNnKCksICRkYi0+RXJyb3JObygpICk7CiAgICB0aHJvdyBuZXcgXExJU0VcRXhjZXB0aW9uKCRkYi0+RXJyb3JObygpIC4gJyAtICcgLiAkZGItPkVycm9yTXNnKCkgLCBcTElTRVxFcnJvcjo6RElTQ1JFVEVfREIgKTsKICB9Cn0gCmNhdGNoIChFeGNlcHRpb24gJGUpIAp7CiAgcmV0dXJuICRlOwp9CgoKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIEV2ZW50cwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgokdGhpcy0+QWRkRXZlbnRIYW5kbGVyKCdDb3JlJywgJ0NvbnRlbnRQb3N0Q29tcGlsZScsIGZhbHNlKTsKJHRoaXMtPkFkZEV2ZW50SGFuZGxlcignQ29yZScsICdNb2R1bGVJbnN0YWxsZWQnLCBmYWxzZSk7CiR0aGlzLT5BZGRFdmVudEhhbmRsZXIoJ0NvcmUnLCAnTW9kdWxlVW5pbnN0YWxsZWQnLCBmYWxzZSk7CiR0aGlzLT5BZGRFdmVudEhhbmRsZXIoJ0NvcmUnLCAnTW9kdWxlVXBncmFkZWQnLCBmYWxzZSk7CgojLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgUHJlZmVyZW5jZXMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKJHRoaXMtPlNldFByZWZlcmVuY2UoJ2FsbG93X2F1dG9zY2FuJywgMCk7CiR0aGlzLT5TZXRQcmVmZXJlbmNlKCdhbGxvd19hdXRvaW5zdGFsbCcsIDEpOwokdGhpcy0+U2V0UHJlZmVyZW5jZSgnYWxsb3dfYXV0b3VwZGF0ZScsIDEpOwoKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIFNtYXJ0eSBwbHVnaW5zCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0KJHRoaXMtPlJlZ2lzdGVyU21hcnR5UGx1Z2luKCdMSVNFTG9hZGVyJywnZnVuY3Rpb24nLCBhcnJheSgnTElTRUxvYWRlcicsICdsb2FkZXInKSk7CgojLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgU2NhbiBmaWVsZGRlZnMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKTElTRUZpZWxkZGVmT3BlcmF0aW9uczo6U2Nhbk1vZHVsZXMoKTsKCg==]]></data>
	</file>
	<file>
	  <filename>/method.uninstall.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBMSVNFIC0gTGlzdCBJdCBTcGVjaWFsIEVkaXRpb24KIyBWZXJzaW9uIDEuMgojIEEgZm9yayBvZiBMaXN0STIKIyBtYWludGFpbmVkIGJ5IEZlcm5hbmRvIE1vcmdhZG8gQUtBIEpvIE1vcmcKIyBzaW5jZSAyMDE1CiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBPcmlnaW5hbCBBdXRob3I6IEJlbiBNYWxlbiwgPGJlbkBjb25jZXB0ZmFjdG9yeS5jb20uYXU+CiMgQ28tTWFpbnRhaW5lcjogU2ltb24gUmFkZm9yZCwgPHNpbW9uQGNvbmNlcHRmYWN0b3J5LmNvbS5hdT4KIyBXZWI6IHd3dy5jb25jZXB0ZmFjdG9yeS5jb20uYXUKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojCiMgTWFpbnRhaW5lciBzaW5jZSAyMDExIHVwIHRvIDIwMTQ6IEpvbmF0aGFuIFNjaG1pZCwgPGhpQGpvbmF0aGFuc2NobWlkLmRlPgojIFdlYjogd3d3LmpvbmF0aGFuc2NobWlkLmRlCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIwojIFNvbWUgd2Fja29zIHN0YXJ0ZWQgZGVzdHJveWluZyBzdHVmZiBzaW5jZSAyMDEyIGFuZCBzdG9wcGVkIGF0IDIwMTQ6CiMKIyBUYXBpbyBMw7Z5dHR5LCA8dGFwc2FAb3JhbmdlLW1lZGlhLmZpPgojIFdlYjogd3d3Lm9yYW5nZS1tZWRpYS5maQojCiMgR29yYW4gSWxpYywgPHVuaXF1M2VAZ21haWwuY29tPgojIFdlYjogd3d3LmljaC1tYWNoLWRhcy5hdAojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBMSVNFIGlzIGEgQ01TIE1hZGUgU2ltcGxlIG1vZHVsZSB0aGF0IGVuYWJsZXMgdGhlIHdlYiBkZXZlbG9wZXIgdG8gY3JlYXRlCiMgbXVsdGlwbGUgbGlzdHMgdGhyb3VnaG91dCBhIHNpdGUuIEl0IGNhbiBiZSBkdXBsaWNhdGVkIGFuZCBnaXZlbiBmcmllbmRseQojIG5hbWVzIGZvciBlYXNpZXIgY2xpZW50IG1haW50ZW5hbmNlLgojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgQkVHSU5fTElDRU5TRQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIExJU0UKIyBMSVNFIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgTElTRSBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBFTkRfTElDRU5TRQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKaWYoICFkZWZpbmVkKCdDTVNfVkVSU0lPTicpICkgZXhpdDsKCgojLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgRGF0YWJhc2UgdGFibGVzCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0KCiRkaWN0ID0gTmV3RGF0YURpY3Rpb25hcnkoJGRiKTsKCiRzcWxhcnJheSA9ICRkaWN0LT5Ecm9wVGFibGVTUUwoY21zX2RiX3ByZWZpeCgpIC4gJ21vZHVsZV9saXNlX2luc3RhbmNlcycpOwokZGljdC0+RXhlY3V0ZVNRTEFycmF5KCRzcWxhcnJheSk7Cgokc3FsYXJyYXkgPSAkZGljdC0+RHJvcFRhYmxlU1FMKGNtc19kYl9wcmVmaXgoKSAuICdtb2R1bGVfbGlzZV9maWVsZGRlZnMnKTsKJGRpY3QtPkV4ZWN1dGVTUUxBcnJheSgkc3FsYXJyYXkpOwoKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIEV2ZW50cwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgokdGhpcy0+UmVtb3ZlRXZlbnRIYW5kbGVyKCdDb3JlJywgJ0NvbnRlbnRQb3N0Q29tcGlsZScpOwokdGhpcy0+UmVtb3ZlRXZlbnRIYW5kbGVyKCdDb3JlJywgJ01vZHVsZUluc3RhbGxlZCcpOwokdGhpcy0+UmVtb3ZlRXZlbnRIYW5kbGVyKCdDb3JlJywgJ01vZHVsZVVuaW5zdGFsbGVkJyk7CiR0aGlzLT5SZW1vdmVFdmVudEhhbmRsZXIoJ0NvcmUnLCAnTW9kdWxlVXBncmFkZWQnKTsKCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBQcmVmZXJlbmNlcwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgokdGhpcy0+UmVtb3ZlUHJlZmVyZW5jZSgpOwoKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIFNtYXJ0eSBwbHVnaW5zCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0KCiR0aGlzLT5SZW1vdmVTbWFydHlQbHVnaW4oKTs=]]></data>
	</file>
	<file>
	  <filename>/method.upgrade.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBMSVNFIC0gTGlzdCBJdCBTcGVjaWFsIEVkaXRpb24KIyBWZXJzaW9uIDEuMgojIEEgZm9yayBvZiBMaXN0STIKIyBtYWludGFpbmVkIGJ5IEZlcm5hbmRvIE1vcmdhZG8gQUtBIEpvIE1vcmcKIyBzaW5jZSAyMDE1CiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBPcmlnaW5hbCBBdXRob3I6IEJlbiBNYWxlbiwgPGJlbkBjb25jZXB0ZmFjdG9yeS5jb20uYXU+CiMgQ28tTWFpbnRhaW5lcjogU2ltb24gUmFkZm9yZCwgPHNpbW9uQGNvbmNlcHRmYWN0b3J5LmNvbS5hdT4KIyBXZWI6IHd3dy5jb25jZXB0ZmFjdG9yeS5jb20uYXUKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojCiMgTWFpbnRhaW5lciBzaW5jZSAyMDExIHVwIHRvIDIwMTQ6IEpvbmF0aGFuIFNjaG1pZCwgPGhpQGpvbmF0aGFuc2NobWlkLmRlPgojIFdlYjogd3d3LmpvbmF0aGFuc2NobWlkLmRlCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIwojIFNvbWUgd2Fja29zIHN0YXJ0ZWQgZGVzdHJveWluZyBzdHVmZiBzaW5jZSAyMDEyIGFuZCBzdG9wcGVkIGF0IDIwMTQ6CiMKIyBUYXBpbyBMw7Z5dHR5LCA8dGFwc2FAb3JhbmdlLW1lZGlhLmZpPgojIFdlYjogd3d3Lm9yYW5nZS1tZWRpYS5maQojCiMgR29yYW4gSWxpYywgPHVuaXF1M2VAZ21haWwuY29tPgojIFdlYjogd3d3LmljaC1tYWNoLWRhcy5hdAojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBMSVNFIGlzIGEgQ01TIE1hZGUgU2ltcGxlIG1vZHVsZSB0aGF0IGVuYWJsZXMgdGhlIHdlYiBkZXZlbG9wZXIgdG8gY3JlYXRlCiMgbXVsdGlwbGUgbGlzdHMgdGhyb3VnaG91dCBhIHNpdGUuIEl0IGNhbiBiZSBkdXBsaWNhdGVkIGFuZCBnaXZlbiBmcmllbmRseQojIG5hbWVzIGZvciBlYXNpZXIgY2xpZW50IG1haW50ZW5hbmNlLgojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgQkVHSU5fTElDRU5TRQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIExJU0UKIyBMSVNFIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgTElTRSBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBFTkRfTElDRU5TRQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKaWYoICFkZWZpbmVkKCdDTVNfVkVSU0lPTicpICkgZXhpdDsKCi8qKioqKioqLwojIHNvIGZhciB0aGlzIGlzIHZhbGlkIG9ubHkgZm9yIGJldGEgdGVzdGluZyAjCi8qKioqKiovCgpzd2l0Y2ggKCRvbGR2ZXJzaW9uKSAKewogIGNhc2UgJzAuMS5iLjInOgogIGNhc2UgJzAuMS5iLjMnOgogIAogICAgIyB3ZSBub3cgc3VwcG9ydCBJbm5vREIgaW5zdGVhZCBvZiBNeUlTQU0KICAgICRwcmVmaXggPSBjbXNfZGJfcHJlZml4KCkgLiAnbW9kdWxlXycgLiAkdGhpcy0+R2V0TmFtZSgpIC4gJ18nOwogICAgCiAgICAkdGFibGVfbGlzdCA9IGFycmF5KAogICAgICAgICAgICAgICAgICAgICAgICAgICdpbnN0YW5jZXMnLAogICAgICAgICAgICAgICAgICAgICAgICAgICdmaWVsZGRlZnMnCiAgICAgICAgICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgICAgICAgICAgICAgIAogICAgZm9yZWFjaCgkdGFibGVfbGlzdCBhcyAkdGFibGUpCiAgICB7CiAgICAgICR0YWJsZW5hbWUgPSAkcHJlZml4IC4gJHRhYmxlOwogICAgICAkcXVlcnkgPSAnQUxURVIgVEFCTEUgJyAuICR0YWJsZW5hbWUgLiAnIEVOR0lORT1Jbm5vREI7JzsKICAgICAgY21zbXMoKS0+R2V0RGIoKS0+RXhlY3V0ZSgkcXVlcnkpOwogICAgfQogICAgCiAgICAjIHRoZSBwbHVnaW4gbW92ZWQgdG8gYW5vdGhlciBjbGFzcwogICAgJHRoaXMtPlJlbW92ZVNtYXJ0eVBsdWdpbignTElTRUxvYWRlcicpOyAjPC0gdGhlcmUgd2FzIGEgdHlwbyBoZXJlIGJlZm9yZT8KICAgICR0aGlzLT5SZWdpc3RlclNtYXJ0eVBsdWdpbiggJ0xJU0VMb2FkZXInLCAnZnVuY3Rpb24nLCBhcnJheSgnTElTRUxvYWRlcicsICdsb2FkZXInKSApOwogIAogIGNhc2UgJzAuMS5iLjQnOgogICAgICAjIHRoZSBwbHVnaW4gbW92ZWQgdG8gYW5vdGhlciBjbGFzcwogICAgJHRoaXMtPlJlbW92ZVNtYXJ0eVBsdWdpbignTElTRUxvYWRlcicpOwogICAgJHRoaXMtPlJlZ2lzdGVyU21hcnR5UGx1Z2luKCAnTElTRUxvYWRlcicsICdmdW5jdGlvbicsIGFycmF5KCdMSVNFTG9hZGVyJywgJ2xvYWRlcicpICk7CgogIGNhc2UgJzEuMyc6CiAgY2FzZSAnMS4zLjEnOgogIGNhc2UgJzEuNCc6CiAgY2FzZSAnMS40LjEnOgogICAgCiAgICAkcHJlZml4ID0gY21zX2RiX3ByZWZpeCgpIC4gJ21vZHVsZV8nIC4gc3RydG9sb3dlciggJHRoaXMtPkdldE5hbWUoKSApIC4gJ18nOwogICAgJHRhYmxlbmFtZSA9ICRwcmVmaXggLiAnaW5zdGFuY2VzJzsKICAgICRxdWVyeSA9ICdBTFRFUiBUQUJMRSAnIC4gJHRhYmxlbmFtZSAuCiAgICAgICAgICAgICcgQUREIG1vZHVsZV9tb2RlIElOVCc7CiAgICAKICAgIC8vIHByZXZlbnQgZmF0YWwgaW4gY2FzZSBvZiBleGlzdGluZyBiZXRhcyB3aXRoIGNvcnJlY3QgdGFibGVzCiAgICB0cnkKICAgIHsKICAgICAgJHIgPSBjbXNtcygpLT5HZXREYigpLT5FeGVjdXRlKCRxdWVyeSk7CiAgICAgIGlmKCEkcil7IHRocm93IG5ldyBcRXhjZXB0aW9uKCAkZGItPkVycm9yTXNnKCkgKTsgfQogICAgfQogICAgY2F0Y2goXEV4Y2VwdGlvbiAkZSkKICAgIHsKICAgICAgXGF1ZGl0KCAwLCAkdGhpcy0+R2V0TmFtZSgpLCAkZS0+Z2V0TWVzc2FnZSgpICk7CiAgICB9CiAgICAKICAgICMgcmVtb3ZlIC5tb2R1bGVkYXRhIGlmIGl0IGV4aXN0cwogICAgXExJU0VcZXBoZW1lcmFsOjpyZW1vdmVfbWQoKTsKfQoKIGlmKCAkdGhpcy0+R2V0UHJlZmVyZW5jZSgnYWxsb3dfYXV0b3VwZGF0ZScsIDApICkKIHsKICAgJG1vZHVsZXMgPSAkdGhpcy0+TGlzdE1vZHVsZXMoKTsKICAgCiAgICRtb2RvcHMgPSBNb2R1bGVPcGVyYXRpb25zOjpnZXRfaW5zdGFuY2UoKTsKICAgJGluc3RhbGxlZCA9ICRtb2RvcHMtPkdldEluc3RhbGxlZE1vZHVsZXMoKTsKICAgCiAgIGZvcmVhY2goJG1vZHVsZXMgYXMgJG1vZHVsZSkgCiAgewogICAgaWYoIGluX2FycmF5KCRtb2R1bGUtPm1vZHVsZV9uYW1lLCAkaW5zdGFsbGVkKSApCiAgICB7CiAgICAgICAgJGluc3RhbmNlID0gJG1vZG9wcy0+Z2V0X21vZHVsZV9pbnN0YW5jZSgkbW9kdWxlLT5tb2R1bGVfbmFtZSwgJycsIFRSVUUpOwogICAgICAgIGlmKCAkaW5zdGFuY2UtPkdldFByZWZlcmVuY2UoJ2F1dG9fdXBncmFkZScpICkKICAgICAgICB7CiAgICAgICAgICBsaXNlX3V0aWxzOjpxdWV1ZV9mb3JfdXBncmFkZSgkbW9kdWxlLT5tb2R1bGVfbmFtZSk7CiAgICAgICAgfQogICAgfSAKICB9CiAKIH0KCj8+]]></data>
	</file>
	<file>
	  <filename>/tabcontent.admin_fielddefstab.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHANCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQojIExJU0UgLSBMaXN0IEl0IFNwZWNpYWwgRWRpdGlvbg0KIyBWZXJzaW9uIDEuMg0KIyBBIGZvcmsgb2YgTGlzdEkyDQojIG1haW50YWluZWQgYnkgRmVybmFuZG8gTW9yZ2FkbyBBS0EgSm8gTW9yZw0KIyBzaW5jZSAyMDE1DQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIw0KIyBPcmlnaW5hbCBBdXRob3I6IEJlbiBNYWxlbiwgPGJlbkBjb25jZXB0ZmFjdG9yeS5jb20uYXU+DQojIENvLU1haW50YWluZXI6IFNpbW9uIFJhZGZvcmQsIDxzaW1vbkBjb25jZXB0ZmFjdG9yeS5jb20uYXU+DQojIFdlYjogd3d3LmNvbmNlcHRmYWN0b3J5LmNvbS5hdQ0KIw0KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCiMNCiMgTWFpbnRhaW5lciBzaW5jZSAyMDExIHVwIHRvIDIwMTQ6IEpvbmF0aGFuIFNjaG1pZCwgPGhpQGpvbmF0aGFuc2NobWlkLmRlPg0KIyBXZWI6IHd3dy5qb25hdGhhbnNjaG1pZC5kZQ0KIw0KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCiMNCiMgU29tZSB3YWNrb3Mgc3RhcnRlZCBkZXN0cm95aW5nIHN0dWZmIHNpbmNlIDIwMTIgYW5kIHN0b3BwZWQgYXQgMjAxNDoNCiMNCiMgVGFwaW8gTMO2eXR0eSwgPHRhcHNhQG9yYW5nZS1tZWRpYS5maT4NCiMgV2ViOiB3d3cub3JhbmdlLW1lZGlhLmZpDQojDQojIEdvcmFuIElsaWMsIDx1bmlxdTNlQGdtYWlsLmNvbT4NCiMgV2ViOiB3d3cuaWNoLW1hY2gtZGFzLmF0DQojDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIw0KIyBMSVNFIGlzIGEgQ01TIE1hZGUgU2ltcGxlIG1vZHVsZSB0aGF0IGVuYWJsZXMgdGhlIHdlYiBkZXZlbG9wZXIgdG8gY3JlYXRlDQojIG11bHRpcGxlIGxpc3RzIHRocm91Z2hvdXQgYSBzaXRlLiBJdCBjYW4gYmUgZHVwbGljYXRlZCBhbmQgZ2l2ZW4gZnJpZW5kbHkNCiMgbmFtZXMgZm9yIGVhc2llciBjbGllbnQgbWFpbnRlbmFuY2UuDQojDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIyBCRUdJTl9MSUNFTlNFDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIyBUaGlzIGZpbGUgaXMgcGFydCBvZiBMSVNFDQojIExJU0UgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5DQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5DQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yDQojIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uDQojDQojIExJU0UgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLA0KIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZg0KIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlDQojIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuDQojIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlDQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlDQojIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcgVVNBDQojIE9yIHJlYWQgaXQgb25saW5lOiBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwNCiMNCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQojIEVORF9MSUNFTlNFDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KDQppZiggIWRlZmluZWQoJ0NNU19WRVJTSU9OJykgKSBleGl0Ow0KDQoNCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0NCiMgTG9hZCBmaWVsZGRlZnMNCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0NCg0KJGZpZWxkZGVmcyA9IExJU0VGaWVsZGRlZk9wZXJhdGlvbnM6OkdldFJlZ2lzdGVyZWRGaWVsZGRlZnModHJ1ZSwgdHJ1ZSk7DQpmb3JlYWNoKCRmaWVsZGRlZnMgYXMgJG9uZWRlZikgew0KDQoJaWYoJG9uZWRlZi0+SXNEaXNhYmxlZCgpKSB7DQoJDQoJCSRvbmVkZWYtPmFjdGl2ZV9saW5rID0gJHRoZW1lT2JqZWN0LT5EaXNwbGF5SW1hZ2UoJ2ljb25zL3N5c3RlbS93YXJuaW5nLmdpZicsICR0aGlzLT5Nb2RMYW5nKCdmaWVsZGRlZl9kZXBzX21pc3NpbmcnKSwgJycsICcnLCAnc3lzdGVtaWNvbicpOw0KCX0JDQoJZWxzZWlmKCRvbmVkZWYtPklzQWN0aXZlKCkpIHsNCg0KCQkkb25lZGVmLT5hY3RpdmVfbGluayA9ICR0aGlzLT5DcmVhdGVMaW5rKCRpZCwgJ2FkbWluX3RvZ2dsZWZpZWxkZGVmJywgJHJldHVybmlkLCAkdGhlbWVPYmplY3QtPkRpc3BsYXlJbWFnZSgnaWNvbnMvc3lzdGVtL3RydWUuZ2lmJywgJycsICcnLCAnJywgJ3N5c3RlbWljb24nKSwgYXJyYXkoDQoJCQkndHlwZScgPT4gJG9uZWRlZi0+R2V0VHlwZSgpDQoJCSkpOwkJDQoJfSAJDQoJZWxzZSB7DQoJDQoJCSRvbmVkZWYtPmFjdGl2ZV9saW5rID0gJHRoaXMtPkNyZWF0ZUxpbmsoJGlkLCAnYWRtaW5fdG9nZ2xlZmllbGRkZWYnLCAkcmV0dXJuaWQsICR0aGVtZU9iamVjdC0+RGlzcGxheUltYWdlKCdpY29ucy9zeXN0ZW0vZmFsc2UuZ2lmJywgJycsICcnLCAnJywgJ3N5c3RlbWljb24nKSwgYXJyYXkoDQoJCQkndHlwZScgPT4gJG9uZWRlZi0+R2V0VHlwZSgpDQoJCSkpOwkNCgl9CQ0KfQ0KDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQojIFNtYXJ0eSBwcm9jZXNzaW5nDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQoNCiRzbWFydHktPmFzc2lnbignZmllbGRkZWZzJywgJGZpZWxkZGVmcyk7DQoNCiRzbWFydHktPmFzc2lnbignc3RhcnRmb3JtJywgJHRoaXMtPkNyZWF0ZUZvcm1TdGFydCgkaWQsICdhZG1pbl9zY2FuZmllbGRkZWZzJywgJHJldHVybmlkKSk7DQokc21hcnR5LT5hc3NpZ24oJ2VuZGZvcm0nLCAgICR0aGlzLT5DcmVhdGVGb3JtRW5kKCkpOw0KJHNtYXJ0eS0+YXNzaWduKCdzY2FuJywJCSAkdGhpcy0+Q3JlYXRlSW5wdXRTdWJtaXQoJGlkLCAnc2Nhbl9maWVsZGRlZnMnLCAkdGhpcy0+TW9kTGFuZygnZmllbGRkZWZfc2NhbicpKSk7DQoNCmVjaG8gJHRoaXMtPlByb2Nlc3NUZW1wbGF0ZSgnZmllbGRkZWZzdGFiLnRwbCcpOw0KDQo/Pg==]]></data>
	</file>
	<file>
	  <filename>/tabcontent.admin_instancestab.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHANCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQojIExJU0UgLSBMaXN0IEl0IFNwZWNpYWwgRWRpdGlvbg0KIyBWZXJzaW9uIDEuMg0KIyBBIGZvcmsgb2YgTGlzdEkyDQojIG1haW50YWluZWQgYnkgRmVybmFuZG8gTW9yZ2FkbyBBS0EgSm8gTW9yZw0KIyBzaW5jZSAyMDE1DQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIw0KIyBPcmlnaW5hbCBBdXRob3I6IEJlbiBNYWxlbiwgPGJlbkBjb25jZXB0ZmFjdG9yeS5jb20uYXU+DQojIENvLU1haW50YWluZXI6IFNpbW9uIFJhZGZvcmQsIDxzaW1vbkBjb25jZXB0ZmFjdG9yeS5jb20uYXU+DQojIFdlYjogd3d3LmNvbmNlcHRmYWN0b3J5LmNvbS5hdQ0KIw0KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCiMNCiMgTWFpbnRhaW5lciBzaW5jZSAyMDExIHVwIHRvIDIwMTQ6IEpvbmF0aGFuIFNjaG1pZCwgPGhpQGpvbmF0aGFuc2NobWlkLmRlPg0KIyBXZWI6IHd3dy5qb25hdGhhbnNjaG1pZC5kZQ0KIw0KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCiMNCiMgU29tZSB3YWNrb3Mgc3RhcnRlZCBkZXN0cm95aW5nIHN0dWZmIHNpbmNlIDIwMTIgYW5kIHN0b3BwZWQgYXQgMjAxNDoNCiMNCiMgVGFwaW8gTMO2eXR0eSwgPHRhcHNhQG9yYW5nZS1tZWRpYS5maT4NCiMgV2ViOiB3d3cub3JhbmdlLW1lZGlhLmZpDQojDQojIEdvcmFuIElsaWMsIDx1bmlxdTNlQGdtYWlsLmNvbT4NCiMgV2ViOiB3d3cuaWNoLW1hY2gtZGFzLmF0DQojDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIw0KIyBMSVNFIGlzIGEgQ01TIE1hZGUgU2ltcGxlIG1vZHVsZSB0aGF0IGVuYWJsZXMgdGhlIHdlYiBkZXZlbG9wZXIgdG8gY3JlYXRlDQojIG11bHRpcGxlIGxpc3RzIHRocm91Z2hvdXQgYSBzaXRlLiBJdCBjYW4gYmUgZHVwbGljYXRlZCBhbmQgZ2l2ZW4gZnJpZW5kbHkNCiMgbmFtZXMgZm9yIGVhc2llciBjbGllbnQgbWFpbnRlbmFuY2UuDQojDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIyBCRUdJTl9MSUNFTlNFDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIyBUaGlzIGZpbGUgaXMgcGFydCBvZiBMSVNFDQojIExJU0UgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5DQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5DQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yDQojIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uDQojDQojIExJU0UgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLA0KIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZg0KIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlDQojIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuDQojIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlDQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlDQojIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcgVVNBDQojIE9yIHJlYWQgaXQgb25saW5lOiBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwNCiMNCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQojIEVORF9MSUNFTlNFDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KDQppZiggIWRlZmluZWQoJ0NNU19WRVJTSU9OJykgKSBleGl0Ow0KDQokYWRtaW50aGVtZSA9IGNtc191dGlsczo6Z2V0X3RoZW1lX29iamVjdCgpOw0KDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQojIExvYWQgbW9kdWxlcw0KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KDQokbW9kb3BzID0gY21zbXMoKS0+R2V0TW9kdWxlT3BlcmF0aW9ucygpOw0KJGFsbG1vZHVsZXMgPSAkbW9kb3BzLT5HZXRBbGxNb2R1bGVOYW1lcygpOw0KDQppZiAoY291bnQoJGFsbG1vZHVsZXMpID4gMCkgDQp7DQoJJHF1ZXJ5ID0gIlNFTEVDVCAqIEZST00gIi5jbXNfZGJfcHJlZml4KCkuIm1vZHVsZXMgT1JERVIgQlkgbW9kdWxlX25hbWUiOw0KCSRyZXN1bHQgPSAkZGItPkV4ZWN1dGUoJHF1ZXJ5KTsNCg0KCXdoaWxlICgkcmVzdWx0ICYmICRyb3cgPSAkcmVzdWx0LT5GZXRjaFJvdygpKSANCiAgew0KCQkkZGJtWyRyb3dbJ21vZHVsZV9uYW1lJ11dWydTdGF0dXMnXSA9ICRyb3dbJ3N0YXR1cyddOw0KCQkkZGJtWyRyb3dbJ21vZHVsZV9uYW1lJ11dWydWZXJzaW9uJ10gPSAkcm93Wyd2ZXJzaW9uJ107DQoJCSRkYm1bJHJvd1snbW9kdWxlX25hbWUnXV1bJ0FjdGl2ZSddID0gKCRyb3dbJ2FjdGl2ZSddID09IDEgPyB0cnVlIDogZmFsc2UpOw0KCX0NCn0NCg0KJG1vZHVsZXMgPSAkdGhpcy0+TGlzdE1vZHVsZXMoKTsNCg0KZm9yZWFjaCgkbW9kdWxlcyBhcyAkbW9kdWxlKSANCnsNCgkkbW9kID0gJG1vZG9wcy0+Z2V0X21vZHVsZV9pbnN0YW5jZSgkbW9kdWxlLT5tb2R1bGVfbmFtZSwnJyx0cnVlKTsNCgkNCglpZihpc19vYmplY3QoJG1vZCkpDQogIHsNCgkJJG1vZHVsZS0+ZnJpZW5kbHluYW1lID0gJG1vZC0+R2V0RnJpZW5kbHlOYW1lKCk7DQoJCSRtb2R1bGUtPnZlcnNpb24gPSAkZGJtWyRtb2R1bGUtPm1vZHVsZV9uYW1lXVsnVmVyc2lvbiddOw0KCQkkbW9kdWxlLT5tb2RlID0gKGludCkkbW9kLT5HZXRNb2RlKCk7DQoNCgkJaWYgKHZlcnNpb25fY29tcGFyZSgkbW9kLT5HZXRWZXJzaW9uKCksICRkYm1bJG1vZHVsZS0+bW9kdWxlX25hbWVdWydWZXJzaW9uJ10pID4gMCkgDQogICAgew0KICAgICAgJG1vZHVsZS0+ZXhwb3J0bGluayA9ICcnOw0KICAgICAgJG1vZHVsZS0+Y2xvbmVsaW5rID0gJyc7DQogICAgICAkbW9kdWxlLT5zYXZlZG5hbGluayA9ICcnOw0KCQkJJG1vZHVsZS0+dXBncmFkZWxpbmsgPSAkdGhpcy0+Q3JlYXRlTGluaygNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRpZCwgDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnYWRtaW5fdXBncmFkZW1vZHVsZScsIA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJHJldHVybmlkLCANCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICR0aGVtZU9iamVjdC0+RGlzcGxheUltYWdlKA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdpY29ucy9zeXN0ZW0vZmFsc2UuZ2lmJywgDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJHRoaXMtPk1vZExhbmcoJ2luc3RhbmNlX3VwZ3JhZGUnKSwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnJywgDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJycsIA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdzeXN0ZW1pY29uJw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApLCANCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFycmF5KCdtb2R1bGVfaWQnID0+ICRtb2R1bGUtPm1vZHVsZV9pZCkNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApOyANCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICANCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkdGVzdCA9ICR0aGVtZU9iamVjdC0+RGlzcGxheUltYWdlKA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdpY29ucy9zeXN0ZW0vZmFsc2UuZ2lmJywgDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJHRoaXMtPk1vZExhbmcoJ2luc3RhbmNlX3VwZ3JhZGUnKSwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnJywgDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJycsIA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdzeXN0ZW1pY29uJw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAJCQ0KCQl9IA0KCQllbHNlIA0KICAgIHsNCiAgICAgICRtb2R1bGUtPmNsb25lbGluayA9ICR0aGlzLT5DcmVhdGVMaW5rKA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJGlkLCANCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdhZG1pbl9jbG9uZW1vZHVsZScsIA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJHJldHVybmlkLCANCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICR0aGVtZU9iamVjdC0+RGlzcGxheUltYWdlKA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdpY29ucy9zeXN0ZW0vY29weS5naWYnLCANCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkdGhpcy0+TW9kTGFuZygnY2xvbmUnLCAkbW9kdWxlLT5mcmllbmRseW5hbWUpLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICcnLCANCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnJywgDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3N5c3RlbWljb24nDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICksIA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJyYXkoJ21vZHVsZV9pZCcgPT4gJG1vZHVsZS0+bW9kdWxlX2lkKQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICk7ICAgICAgDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgDQogICAgICAkbW9kdWxlLT5zYXZlZG5hbGluayA9ICR0aGlzLT5DcmVhdGVMaW5rKA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJGlkLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2FkbWluX3NhdmVfZG5hJywNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRyZXR1cm5pZCwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICR0aGVtZU9iamVjdC0+RGlzcGxheUltYWdlKA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdpY29ucy9zeXN0ZW0vZXhwb3J0LmdpZicsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJHRoaXMtPk1vZExhbmcoJ3NhdmVfZG5hJywgJG1vZHVsZS0+ZnJpZW5kbHluYW1lKSwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnJywNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnJywNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnc3lzdGVtaWNvbicNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKSwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFycmF5KCdtb2R1bGVfaWQnID0+ICRtb2R1bGUtPm1vZHVsZV9pZCkNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIA0KICAgICAgJG1vZHVsZS0+ZXhwb3J0bGluayA9ICR0aGlzLT5DcmVhdGVMaW5rKA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJGlkLCANCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdhZG1pbl9leHBvcnRtb2R1bGUnLCANCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRyZXR1cm5pZCwgDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaXNlX3V0aWxzOjpEaXNwbGF5SW1hZ2UoDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpc2VfdXRpbHM6OlVJZ2lmKCd4bWxfcnNzJyksIA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkdGhpcy0+TW9kTGFuZygnZXhwb3J0JywgJG1vZHVsZS0+ZnJpZW5kbHluYW1lKSwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJycsIA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnJywgDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdzeXN0ZW1pY29uJw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKSwgDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcnJheSgnbW9kdWxlX2lkJyA9PiAkbW9kdWxlLT5tb2R1bGVfaWQpDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICANCgkJCSRtb2R1bGUtPnVwZ3JhZGVsaW5rID0gJHRoZW1lT2JqZWN0LT5EaXNwbGF5SW1hZ2UoJ2ljb25zL3N5c3RlbS90cnVlLmdpZicsICR0aGlzLT5Nb2RMYW5nKCdpbnN0YW5jZV91cHRvZGF0ZScpLCAnJywgJycsICdzeXN0ZW1pY29uJyk7DQoJCX0NCgl9DQp9DQoNCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0NCiMgU21hcnR5IHByb2Nlc3NpbmcNCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0NCg0KJHNtYXJ0eS0+YXNzaWduKCdtb2R1bGVzJywgJG1vZHVsZXMpOw0KDQokc21hcnR5LT5hc3NpZ24oJ3N0YXJ0Zm9ybScsICR0aGlzLT5DcmVhdGVGb3JtU3RhcnQoJGlkLCAnYWRtaW5fY29weW1vZHVsZScsICRyZXR1cm5pZCkpOw0KJHNtYXJ0eS0+YXNzaWduKCdlbmRmb3JtJywgICAkdGhpcy0+Q3JlYXRlRm9ybUVuZCgpKTsNCiRzbWFydHktPmFzc2lnbignZHVwbGljYXRlJywgJHRoaXMtPkNyZWF0ZUlucHV0U3VibWl0KCRpZCwgJ2R1cGxpY2F0ZScsICR0aGlzLT5Nb2RMYW5nKCdkdXBsaWNhdGUnKSkpOw0KDQokc21hcnR5LT5hc3NpZ24oJ3N0YXJ0dXBsb2FkZm9ybScsICR0aGlzLT5DcmVhdGVGb3JtU3RhcnQoJGlkLCAnYWRtaW5fdXBsb2FkbW9kdWxlJywgJHJldHVybmlkLCAncG9zdCcsICdtdWx0aXBhcnQvZm9ybS1kYXRhJykpOw0KJHNtYXJ0eS0+YXNzaWduKCdlbmR1cGxvYWRmb3JtJywgICAkdGhpcy0+Q3JlYXRlRm9ybUVuZCgpKTsNCiRzbWFydHktPmFzc2lnbignaW5zdGFuY2VuYW1laW5wdXQnLCAgICR0aGlzLT5DcmVhdGVJbnB1dFRleHQoJGlkLCAnaW5zdGFuY2VuYW1lJywnJyAsIDIwLCBOVUxMLCAncGxhY2Vob2xkZXI9IicgLiAkdGhpcy0+TW9kTGFuZygnaW5zdGFuY2VfbmFtZScpIC4gJyInKSk7DQokc21hcnR5LT5hc3NpZ24oJ2ZpbGVuYW1laW5wdXQnLCAgICR0aGlzLT5DcmVhdGVJbnB1dEZpbGUoJGlkLCAnZmlsZW5hbWUnLCAkdGhpcy0+TW9kTGFuZygnZmlsZW5hbWUnKSkpOw0KJHNtYXJ0eS0+YXNzaWduKCd1cGxvYWQnLCAkdGhpcy0+Q3JlYXRlSW5wdXRTdWJtaXQoJGlkLCAndXBsb2FkJywgJHRoaXMtPk1vZExhbmcoJ2ltcG9ydF90aXRsZScpKSk7DQoNCmVjaG8gJHRoaXMtPlByb2Nlc3NUZW1wbGF0ZSgnaW5zdGFuY2VzdGFiLnRwbCcpOw0KPz4=]]></data>
	</file>
	<file>
	  <filename>/tabcontent.admin_maintenancetab.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHANCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQojIExJU0UgLSBMaXN0IEl0IFNwZWNpYWwgRWRpdGlvbg0KIyBWZXJzaW9uIDEuMg0KIyBBIGZvcmsgb2YgTGlzdEkyDQojIG1haW50YWluZWQgYnkgRmVybmFuZG8gTW9yZ2FkbyBBS0EgSm8gTW9yZw0KIyBzaW5jZSAyMDE1DQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIw0KIyBPcmlnaW5hbCBBdXRob3I6IEJlbiBNYWxlbiwgPGJlbkBjb25jZXB0ZmFjdG9yeS5jb20uYXU+DQojIENvLU1haW50YWluZXI6IFNpbW9uIFJhZGZvcmQsIDxzaW1vbkBjb25jZXB0ZmFjdG9yeS5jb20uYXU+DQojIFdlYjogd3d3LmNvbmNlcHRmYWN0b3J5LmNvbS5hdQ0KIw0KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCiMNCiMgTWFpbnRhaW5lciBzaW5jZSAyMDExIHVwIHRvIDIwMTQ6IEpvbmF0aGFuIFNjaG1pZCwgPGhpQGpvbmF0aGFuc2NobWlkLmRlPg0KIyBXZWI6IHd3dy5qb25hdGhhbnNjaG1pZC5kZQ0KIw0KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCiMNCiMgU29tZSB3YWNrb3Mgc3RhcnRlZCBkZXN0cm95aW5nIHN0dWZmIHNpbmNlIDIwMTIgYW5kIHN0b3BwZWQgYXQgMjAxNDoNCiMNCiMgVGFwaW8gTMO2eXR0eSwgPHRhcHNhQG9yYW5nZS1tZWRpYS5maT4NCiMgV2ViOiB3d3cub3JhbmdlLW1lZGlhLmZpDQojDQojIEdvcmFuIElsaWMsIDx1bmlxdTNlQGdtYWlsLmNvbT4NCiMgV2ViOiB3d3cuaWNoLW1hY2gtZGFzLmF0DQojDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIw0KIyBMSVNFIGlzIGEgQ01TIE1hZGUgU2ltcGxlIG1vZHVsZSB0aGF0IGVuYWJsZXMgdGhlIHdlYiBkZXZlbG9wZXIgdG8gY3JlYXRlDQojIG11bHRpcGxlIGxpc3RzIHRocm91Z2hvdXQgYSBzaXRlLiBJdCBjYW4gYmUgZHVwbGljYXRlZCBhbmQgZ2l2ZW4gZnJpZW5kbHkNCiMgbmFtZXMgZm9yIGVhc2llciBjbGllbnQgbWFpbnRlbmFuY2UuDQojDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIyBCRUdJTl9MSUNFTlNFDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIyBUaGlzIGZpbGUgaXMgcGFydCBvZiBMSVNFDQojIExJU0UgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5DQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5DQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yDQojIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uDQojDQojIExJU0UgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLA0KIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZg0KIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlDQojIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuDQojIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlDQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlDQojIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcgVVNBDQojIE9yIHJlYWQgaXQgb25saW5lOiBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwNCiMNCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQojIEVORF9MSUNFTlNFDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KaWYoICFkZWZpbmVkKCdDTVNfVkVSU0lPTicpICkgZXhpdDsNCg0KaWYoIGlzc2V0KCRwYXJhbXNbJ2RiX2Vycm9ycyddKSApDQp7DQogICR0aGlzLT5TaG93RXJyb3JzKCRwYXJhbXNbJ2RiX2Vycm9ycyddKTsgIA0KfQ0KDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQojIFNtYXJ0eSBwcm9jZXNzaW5nDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQoNCiRzbWFydHktPmFzc2lnbignc3RhcnRmb3JtJywgJHRoaXMtPkNyZWF0ZUZvcm1TdGFydCAoJGlkLCAnYWRtaW5fZG9tYWludGVuYW5jZScsICRyZXR1cm5pZCkpOw0KJHNtYXJ0eS0+YXNzaWduKCdlbmRmb3JtJywgJHRoaXMtPkNyZWF0ZUZvcm1FbmQoKSk7DQoNCiRzbWFydHktPmFzc2lnbignYnV0dG9uX2ZpeF9maWVsZGRlZnMnLCAkdGhpcy0+Q3JlYXRlSW5wdXRTdWJtaXQoJGlkLCAnZml4X2ZpZWxkZGVmcycsICR0aGlzLT5MYW5nKCdyZXBhaXInKSkpOw0KJHNtYXJ0eS0+YXNzaWduKCdidXR0b25faW1wb3J0X2Zyb21fTEkyJywgJHRoaXMtPkNyZWF0ZUlucHV0U3VibWl0KCRpZCwgJ2ltcG9ydF9mcm9tX0xJMicsICR0aGlzLT5MYW5nKCdidXR0b25faW1wb3J0X2Zyb21fTEkyJykpKTsNCiRzbWFydHktPmFzc2lnbignYnV0dG9uX2ZpeF9pbXBvcnRfZnJvbV9MSTInLCAkdGhpcy0+Q3JlYXRlSW5wdXRTdWJtaXQoJGlkLCAnZml4X2ltcG9ydF9mcm9tX0xJMicsICR0aGlzLT5MYW5nKCdidXR0b25fZml4X2ltcG9ydF9mcm9tX0xJMicpKSk7DQoNCmVjaG8gJHRoaXMtPlByb2Nlc3NUZW1wbGF0ZSgnbWFpbnRlbmFuY2V0YWIudHBsJyk7DQoNCj8+]]></data>
	</file>
	<file>
	  <filename>/tabcontent.admin_optionstab.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHANCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQojIExJU0UgLSBMaXN0IEl0IFNwZWNpYWwgRWRpdGlvbg0KIyBWZXJzaW9uIDEuMg0KIyBBIGZvcmsgb2YgTGlzdEkyDQojIG1haW50YWluZWQgYnkgRmVybmFuZG8gTW9yZ2FkbyBBS0EgSm8gTW9yZw0KIyBzaW5jZSAyMDE1DQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIw0KIyBPcmlnaW5hbCBBdXRob3I6IEJlbiBNYWxlbiwgPGJlbkBjb25jZXB0ZmFjdG9yeS5jb20uYXU+DQojIENvLU1haW50YWluZXI6IFNpbW9uIFJhZGZvcmQsIDxzaW1vbkBjb25jZXB0ZmFjdG9yeS5jb20uYXU+DQojIFdlYjogd3d3LmNvbmNlcHRmYWN0b3J5LmNvbS5hdQ0KIw0KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCiMNCiMgTWFpbnRhaW5lciBzaW5jZSAyMDExIHVwIHRvIDIwMTQ6IEpvbmF0aGFuIFNjaG1pZCwgPGhpQGpvbmF0aGFuc2NobWlkLmRlPg0KIyBXZWI6IHd3dy5qb25hdGhhbnNjaG1pZC5kZQ0KIw0KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCiMNCiMgU29tZSB3YWNrb3Mgc3RhcnRlZCBkZXN0cm95aW5nIHN0dWZmIHNpbmNlIDIwMTIgYW5kIHN0b3BwZWQgYXQgMjAxNDoNCiMNCiMgVGFwaW8gTMO2eXR0eSwgPHRhcHNhQG9yYW5nZS1tZWRpYS5maT4NCiMgV2ViOiB3d3cub3JhbmdlLW1lZGlhLmZpDQojDQojIEdvcmFuIElsaWMsIDx1bmlxdTNlQGdtYWlsLmNvbT4NCiMgV2ViOiB3d3cuaWNoLW1hY2gtZGFzLmF0DQojDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIw0KIyBMSVNFIGlzIGEgQ01TIE1hZGUgU2ltcGxlIG1vZHVsZSB0aGF0IGVuYWJsZXMgdGhlIHdlYiBkZXZlbG9wZXIgdG8gY3JlYXRlDQojIG11bHRpcGxlIGxpc3RzIHRocm91Z2hvdXQgYSBzaXRlLiBJdCBjYW4gYmUgZHVwbGljYXRlZCBhbmQgZ2l2ZW4gZnJpZW5kbHkNCiMgbmFtZXMgZm9yIGVhc2llciBjbGllbnQgbWFpbnRlbmFuY2UuDQojDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIyBCRUdJTl9MSUNFTlNFDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIyBUaGlzIGZpbGUgaXMgcGFydCBvZiBMSVNFDQojIExJU0UgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5DQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5DQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yDQojIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uDQojDQojIExJU0UgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLA0KIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZg0KIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlDQojIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuDQojIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlDQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlDQojIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcgVVNBDQojIE9yIHJlYWQgaXQgb25saW5lOiBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwNCiMNCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQojIEVORF9MSUNFTlNFDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KDQppZiggIWRlZmluZWQoJ0NNU19WRVJTSU9OJykgKSBleGl0Ow0KDQoNCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0NCiMgSW5pdCBpdGVtcw0KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KDQokYWxsb3dfYXV0b3NjYW4gPSAkdGhpcy0+R2V0UHJlZmVyZW5jZSgnYWxsb3dfYXV0b3NjYW4nLCAwKTsNCiRhbGxvd19hdXRvaW5zdGFsbCA9ICR0aGlzLT5HZXRQcmVmZXJlbmNlKCdhbGxvd19hdXRvaW5zdGFsbCcsIDApOw0KJGFsbG93X2F1dG91cGRhdGUgPSAkdGhpcy0+R2V0UHJlZmVyZW5jZSgnYWxsb3dfYXV0b3VwZGF0ZScsIDApOw0KDQoNCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0NCiMgU21hcnR5IHByb2Nlc3NpbmcNCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0NCg0KJHNtYXJ0eS0+YXNzaWduKCdzdGFydGZvcm0nLCAkdGhpcy0+Q3JlYXRlRm9ybVN0YXJ0KCRpZCwgJ2FkbWluX3VwZGF0ZW9wdGlvbnMnLCAkcmV0dXJuaWQpKTsNCiRzbWFydHktPmFzc2lnbignZW5kZm9ybScsICR0aGlzLT5DcmVhdGVGb3JtRW5kKCkpOw0KJHNtYXJ0eS0+YXNzaWduKCdzdWJtaXQnLCAkdGhpcy0+Q3JlYXRlSW5wdXRTdWJtaXQoJGlkLCAnc3VibWl0JywgbGFuZygnc3VibWl0JykpKTsNCg0KJHNtYXJ0eS0+YXNzaWduKCdpbnB1dF9hbGxvd19hdXRvc2NhbicsICR0aGlzLT5DcmVhdGVJbnB1dENoZWNrYm94KCRpZCwgJ2FsbG93X2F1dG9zY2FuJywgMSwgJGFsbG93X2F1dG9zY2FuLCAoJGFsbG93X2F1dG9zY2FuID8gJ2NoZWNrZWQ9ImNoZWNrZWQiJyA6ICcnKSkpOw0KJHNtYXJ0eS0+YXNzaWduKCdpbnB1dF9hbGxvd19hdXRvaW5zdGFsbCcsICR0aGlzLT5DcmVhdGVJbnB1dENoZWNrYm94KCRpZCwgJ2FsbG93X2F1dG9pbnN0YWxsJywgMSwgJGFsbG93X2F1dG9pbnN0YWxsLCAoJGFsbG93X2F1dG9pbnN0YWxsID8gJ2NoZWNrZWQ9ImNoZWNrZWQiJyA6ICcnKSkpOw0KJHNtYXJ0eS0+YXNzaWduKCdpbnB1dF9hbGxvd19hdXRvdXBkYXRlJywgJHRoaXMtPkNyZWF0ZUlucHV0Q2hlY2tib3goJGlkLCAnYWxsb3dfYXV0b3VwZGF0ZScsIDEsICRhbGxvd19hdXRvdXBkYXRlLCAoJGFsbG93X2F1dG91cGRhdGUgPyAnY2hlY2tlZD0iY2hlY2tlZCInIDogJycpKSk7DQoNCmVjaG8gJHRoaXMtPlByb2Nlc3NUZW1wbGF0ZSgnb3B0aW9udGFiLnRwbCcpOw0KDQo/Pg==]]></data>
	</file>
	<file>
	  <filename>/templates</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/templates/changelog.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PGg0PlZlcnNpb24gMS41LjE8L2g0Pg0KDQo8aDU+Rml4ZXM8L2g1Pg0KPHVsPg0KICA8bGk+Rml4ZWQgYSBidWcgaW50cm9kdWNlZCBpbiAxLjUuMCB3aGVyZSByb3V0ZXMgaW4gbmV3IGl0ZW1zIGhhZCBhbiBpbmNvcnJlY3QgcGFyYW1ldGVyIHJlZ2lzdGVyZWQ7PC9saT4NCjwvdWw+DQoNCjxoND5WZXJzaW9uIDEuNS4wPC9oND4NCg0KPGg1PkZpeGVzPC9oNT4NCjx1bD4NCiAgPGxpPkEgZmV3IG1pbm9yIGZpeGVzOzwvbGk+DQogIDxsaT5GaXhlZCB0aGUgY2hhbmdlbG9nIGNhbGw7PC9saT4NCiAgPGxpPkZpeGVkIGFuIGlzc3VlIHdpdGggdGhlIGdlbmVyYXRpb24gb2YgY3VzdG9tIFVSTHMgd2hlbiB0aGUgZmllbGQgd2FzIGhpZGRlbjs8L2xpPg0KICA8bGk+TW9yZSBQSFAgOC4xIGNvbXBhdGliaWxpdHkgZml4ZXM7PC9saT4NCjwvdWw+DQoNCjxoNT5OZXcgZmVhdHVyZXM8L2g1Pg0KDQo8dWw+DQogIDxsaT5BZGRlZCBuZXcgZmllbGRzOg0KICAgIDx1bD4NCiAgICAgIDxsaT5DdXN0b20gRmllbGQgRnJvbSBTbWFydHkgVGVtcGxhdGU7PC9saT4NCiAgICAgIDxsaT5IZWxwIFBvcHVwOzwvbGk+DQogICAgICA8bGk+UHJldmlldyBUYWI7PC9saT4NCiAgICA8L3VsPg0KICA8L2xpPg0KICA8bGk+QWRkZWQgVGl0bGVzIE1vZGVzIGFuZCBhdXRvIGdlbmVyYXRpb247PC9saT4NCiAgPGxpPkFkZGVkIGVhc3kgbmF2aWdhdGlvbiBvbiB0aGUgSXRlbSBFZGl0b3IgdmlhIHByZXZpb3VzIGFuZCBuZXh0IGFycm93IGJ1dHRvbnM7PC9saT4NCiAgPGxpPkl0ZW0gVGl0bGUsIEFsaWFzIGFuZCBDdXN0b20gVVJMcyB0ZW1wbGF0ZXMgaGF2ZSBuZXcgdGFncyB3aXRoIG1vcmUgZmVhdHVyZXM7PC9saT4NCiAgPGxpPkFkZGVkIG9wdGlvbiB0byBsaXN0IGluYWN0aXZlIGl0ZW1zLCBhY3RpdmUgaXRlbXMgb3IgYm90aCBpbiBMSVNFIEluc3RhbmNlIEl0ZW0gY3VzdG9tIGZpZWxkOzwvbGk+DQogIDxsaT5VcGxvYWQgRmlsZSBjYW4gbm93IHVzZSBTbWFydCBJbWFnZSBBUEkgdG8gcHJvY2VzcyB1cGxvYWRlZCBpbWFnZXM7PC9saT4NCiAgPGxpPlRoZXJlIGlzIG5vdyBhbiBlYXN5IG1lY2hhbmlzbSB0byBjdXN0b21pc2UgZmllbGQgdGVtcGxhdGVzOzwvbGk+DQo8L3VsPg0KDQo8aDU+Q2hhbmdlczwvaDU+DQoNCjx1bD4NCiAgPGxpPkl0ZW0gVGl0bGUsIEFsaWFzIGFuZCBDdXN0b20gVVJMcyBoYXZlIGFuIGltcHJvdmVkIGdlbmVyYXRvcjs8L2xpPg0KICA8bGk+SXRlbSBUaXRsZSwgQWxpYXMgYW5kIEN1c3RvbSBVUkxzIGNhbiBub3cgdXNlIGZhc3RlciBhbmQgbW9yZSByb2J1c3Qgc21hcnR5IHBhcnNpbmc7PC9saT4NCiAgPGxpPkFuIGF0dGVtcHQgaGFzIGJlZW4gbWFkZSB0byBpbXByb3ZlIGRvY3VtZW50YXRpb247PC9saT4NCjwvdWw+DQoNCjxoND5WZXJzaW9uIDEuNC4zPC9oND4NCg0KPGg1PkZpeGVzPC9oNT4NCjx1bD4NCiAgPGxpPkZpeGVzIGEgdnVsbmVyYWJpbGl0eSBpbiBhIHBhcnRpY3VsYXIgaW1wb3J0YW50IGFjdGlvbiBmaWxlOzwvbGk+DQo8L3VsPg0KDQo8aDQ+VmVyc2lvbiAxLjQuMjwvaDQ+DQoNCjxoNT5GaXhlczwvaDU+DQo8dWw+DQogIDxsaT5BIGZldyBtaW5vciBmaXhlczs8L2xpPg0KICA8bGk+UmUtZml4ZWQgQlIjMTIzNzI6IGVycm9yIHdoaWxlIGltcG9ydGluZyBMSVNFIGluc3RhbmNlcyBwcmV2aW91c2x5IG5vdCBjb3JyZWN0bHkgZml4ZWQ7PC9saT4NCjwvdWw+DQoNCjxoND5WZXJzaW9uIDEuNC4xPC9oND4NCg0KPGg1PkZpeGVzPC9oNT4NCjx1bD4NCiAgPGxpPkZpeGVkIEJSIzEyMzcyOiBlcnJvciB3aGlsZSBpbXBvcnRpbmcgTElTRSBpbnN0YW5jZXM7PC9saT4NCiAgPGxpPkZpeGVkIGEgYnVuY2ggb2YgaXNzdWVzIGNvbnNlcXVlbmNlIG9mIHRoZSAxLjQgcmVsZWFzZSBiZWluZyBjdXQgZnJvbSBhIHdvcmsgY29weSB0aGF0IHdhc24ndCB0aGUgbGF0ZXN0IHRlc3RlZCBhbmQgc3RhYmxlIG9uZTs8L2xpPg0KPC91bD4NCjxoND5WZXJzaW9uIDEuNDwvaDQ+DQoNCjxoNT5GaXhlczwvaDU+DQoNCjx1bD4NCiAgPGxpPlNldmVyYWwgZml4ZXMgZm9yIENNU01TIDIuMyBjb21wYXRpYmlsaXR5OzwvbGk+DQogIDxsaT5TZXZlcmFsIFBIUCBub3RpY2VzIGFuZCB3YXJuaW5ncyBmaXhlZDs8L2xpPg0KPC91bD4NCg0KPGg1Pk5ldyBmZWF0dXJlczwvaDU+DQoNCjx1bD4NCiAgPGxpPkltcHJvdmVkIGhlbHAgdGV4dCwgbm93IGFsc28gZmllbGQgZGVmaW5pdGlvbiBoZWxwIChFbmdsaXNoIG9ubHkpOzwvbGk+DQo8L3VsPg0KDQoNCjxoND5WZXJzaW9uIDEuMy4xPC9oND4NCg0KPGg1PkZpeGVzPC9oNT4NCg0KPHVsPg0KICA8bGk+Rml4ZWQgYSBtaW5vciB0eXBvIGluIHZlcnNpb24gbnVtYmVycyBpbiBsYXN0IGNoYW5nZWxvZzogcHJldmlvdXMgdmVyc2lvbiB3YXMgMS4zLCBub3QgMS40OzwvbGk+DQogIDxsaT5GaXhlZCB0aGUgSk1GaWxlUGlja2VyIGZpZWxkIGRlZmZpbml0aW9uOiBjbGVhbmVkIHRoZSBmaWxlIG9mIG9sZGVyIGF0dGVtcHRzIG9mIGZpeGVzICh0aGUgZml4IGhhZCB0byBiZSBvbiB0aGUgSk1GaWxlUGlja2VyIGl0c2VsZiwgbm90IGhlcmUpOzwvbGk+DQogIDxsaT5CdW1wZWQgdGhlIG5pbmltdW0gSk1GaWxlUGlja2VyIHZlcnNpb24gaW4gZGVwZW5kZW5jaWVzOzwvbGk+DQogIDxsaT5GaXhlZCBzdXBwb3J0IHRvIGV4dGVybmFsIG1vZHVsZXMgZmllbGRzIGRlZmluaXRpb25zOzwvbGk+DQogIDxsaT5NaW5vciB0d2Vha3M7PC9saT4NCjwvdWw+DQoNCg0KPGg0PlZlcnNpb24gMS4zPC9oND4NCg0KPGg1Pk5ldyBmZWF0dXJlczwvaDU+DQoNCjx1bD4NCiAgPGxpPlNlYXJjaCBwYXJhbWV0ZXJzIGFyZSBub3cgc3RvcmVkIGludG8gdGhlIHNlc3Npb24gc28gdGhleSBjYW4gYmUgcmV0cmlldmVkIGJ5IHNtYXJ0eSBpZiBuZWVkZWQgdXNpbmcgPHN0cm9uZz4mbHQ7PGVtPmluc3RhbmNlbmFtZTwvZW0+Jmd0O19zZWFyY2g8L3N0cm9uZz4gYW5kIDxzdHJvbmc+Jmx0OzxlbT5pbnN0YW5jZW5hbWU8L2VtPiZndDtfc2VhcmNoXyo8L3N0cm9uZz4sIHdoZXJlIDxzdHJvbmc+Kjwvc3Ryb25nPiBpcyBhIGZpZWxkIGFsaWFzOzwvbGk+DQogIDxsaT5BZGRlZCA8c3Ryb25nPiJmaWx0ZXJvcmRlcmJ5Ijwvc3Ryb25nPiBwYXJhbWV0ZXIgb24gYWN0aW9uIHNlYXJjaCB3aGVuIHVzaW5nIGZpbHRlcnM6IG9yZGVycyB0aGUgZHJvcGRvd24gdmFsdWVzIG9uIHRoZSBzZWFyY2ggZm9ybSB0ZW1wbGF0ZTs8L2xpPg0KICA8bGk+QWRkZWQgYSBjdXN0b20gZmllbGQgZm9yIGNvcmUgPHN0cm9uZz4iRmlsZVBpY2tlciI8L3N0cm9uZz47PC9saT4NCjwvdWw+DQoNCjxoNT5DaGFuZ2VzPC9oNT4NCg0KPHVsPg0KICA8bGk+SW1wbGVtZW50ZWQgRlIjMTEzMjA7PC9saT4NCiAgPGxpPkltcGxlbWVudGVkIEZSIzExMzIzOiBTaG93IGl0ZW0gbmFtZSBpbiBoZWFkZXI7PC9saT4NCiAgPGxpPkEgbnVtYmVyIG9mIGltcHJvdmVtZW50cyBhbmQgZml4ZXMgdG8gdGhlIGludGVyYWN0aW9uIGJldHdlZW4gTElTRSBhbmQgdGhlIGNvcmUgc2VhcmNoIGZlYXR1cmU6DQogICAgPHVsPg0KICAgICAgPGxpPm5vdyBvbmx5IHRleHQgYmFzZWQgZmllbGRzIGNhbiBiZSBpbmRleGVkIChUZXh0SW5wdXQgYW5kIFRleHRBcmVhKTs8L2xpPg0KICAgICAgPGxpPmZpZWxkcyBuZWVkIHRvIGJlIHNldCBpbiBvcmRlciB0byBiZSBpbmRleGVkLCBhcyBhbiBvcHRpb247PC9saT4NCiAgICAgIDxsaT5MSVNFIG5vdyBzdXBwb3J0cyBhbnkgc2VhcmNoIG1vZHVsZSB0aGF0IGlzIGNvbXBhdGlibGUgd2l0aCB0aGUgQ29yZSBTZWFyY2ggTW9kdWxlOzwvbGk+DQogICAgICA8bGk+UmUtaW5kZXhpbmcgYWxsIGNvbnRlbnQgbm93IGFjdHVhbGx5IHdvcmtzIGFzIGV4cGVjdGVkIG9uIExJU0Ugc2lkZTs8L2xpPg0KICAgICAgPGxpPkEgZmV3IG90aGVyIHR3ZWFrcyBhbmQgZW5oYW5jZW1lbnRzOzwvbGk+DQogICAgPC91bD4NCiAgPC9saT4NCjwvdWw+DQoNCjxoNT5GaXhlczwvaDU+DQoNCjx1bD4NCiAgPGxpPkZpeGVzIHRvIEZFVU11bHRpU2VsZWN0IGFuZCBKUXVlcnlNdWx0aVNlbGVjdDogdW5zZWxlY3RpbmcgYWxsIG5vdyB3b2tzIGFzIGV4cGVjdGVkOzwvbGk+DQogIDxsaT5CUiMxMTMxOSAtIFhNTCBJbXBvcnQgZG9lcyBub3Qgd29yayB3aGVuIHRoZXJlIGFyZSBlbnRpdGllcyBpbiBtb2R1bGUgZnJpZW5kbHkgbmFtZTs8L2xpPg0KICA8bGk+QlIjMTEzMjggLSBtaW5vciBlcnJvciBsb2dnZWQgZm9yIEZpbGVVcGxvYWQgZmllbGQ7PC9saT4NCiAgPGxpPkZpeGVzIHdpdGggcmVnYXJkcyB0byBtb2R1bGVfZnJpZW5kbHluYW1lIG5vdCBkZWZhdWx0aW5nIHRvIG1vZHVsZV9uYW1lIHdoZW4gdGhlIGZyaWVuZGx5IG5hbWUgZmllbGQgaXMgZW1wdHkgd2hpbGUgY3JlYXRpbmcgYSBuZXcgaW5zdGFuY2U7PC9saT4NCiAgPGxpPkJSIzExMzIxIC0gZWRpdGl0ZW0udHBsIGZpbGUgaGFzIGR1cGxpY2F0ZWQgaWQnczs8L2xpPg0KICA8bGk+QlIjMTEyNDIgLSBhdXRvLWFsaWFzIGlzIG5vdCB2YWxpZCB3aGVuIHRpdGxlIHN0YXJ0cyB3aXRoIG51bWJlcjs8L2xpPg0KICA8bGk+Rml4ZXMgZm9yIHBhZ2luYXRpb24gbGlua3Mgb24gdGhlIGZyb250ZW5kOiBwcmV0dHkgVVJscyB3aWxsIHN0aWxsIGJlIGF2YWlsYWJsZSwgYnV0IGFzIHNvb24gYXMgZXh0YSB0YWcgcGFyYW1ldGVycyBhcmUgYWRkZWQgYW5kIG5vdCBzdXBwb3J0ZWQgYnkgcHJldHR5IFVSTHMsIHVnbHkgVVJMcyBraWNrIGluOzwvbGk+DQogIDxsaT5GaXhlcyB0byB0ZW1wbGF0ZSByZXNvdXJjZSBhbmQgZmllbGRkZWYgdG8gbWFrZSBpdCB3b3JrIHdpdGggY21zbXMgMi4yLjIgKG9uIGFjY291bnQgb2YgYW4gaW1wb3J0YW50IGNvcmUgc2VjdXJpdHkgZml4KTs8L2xpPg0KICA8bGk+QlIjMTEwNzEgLSBTZWxlY3REYXRlVGltZSBmaWVsZCBnZXRzIHByZS1maWxsZWQgd2l0aCBVVEMgdGltZSBpbnN0ZWFkIGxvY2FsOzwvbGk+DQogIDxsaT5CUiMxMTMzMCBTYXZlIHNvcnRvcmRlciBpdGVtcyByZXZlcnNlZCB3aXRoIGRlZmF1bHQgc29ydG9yZGVyID0gREVTQzs8L2xpPg0KICA8bGk+QSBncmVhdCBudW1iZXIgb2YgbWlub3IgZml4ZXMgYW5kIGNvZGUgb3B0aW1pemF0aW9uczs8L2xpPg0KPC91bD4NCg0KDQo8aDQ+VmVyc2lvbiAxLjIuMzwvaDQ+DQoNCjxoNT5DaGFuZ2VzPC9oNT4NCg0KPHVsPg0KICA8bGk+Q2hhbmdlZCBtb3N0IGlmIG5vdCBhbGwgZGllKCkgZXJyb3Igc3RhdGVtZW50cyB0byBleGNlcHRpb25zLCBhbGxvd2luZyBmb3IgYmV0dGVyIGVycm9yIGhhbmRsaW5nOzwvbGk+DQo8L3VsPg0KDQo8aDU+Rml4ZXM8L2g1Pg0KDQo8dWw+DQogIDxsaT5GaXhlcyBhIGJ1ZyBpbnRyb2R1Y2VkIGluIDEuMi4yLjEgcmVnYXJkaW5nIHRoZSBleGNsdWRlX2NhdGVnb3J5IGFuZCBjYXRlZ29yeSBwYXJhbWV0ZXJzOzwvbGk+DQogIDxsaT5GaXhlcyBhIGJ1ZyBvY2N1cnJpbmcgd2hlbiBzYXZpbmcgaXRlbXMgd2l0aCBubyBjYXRlZ29yaWVzIGl0IHdvdWxkIGVycm9yIG9uIHNvbWUgTXlTUUwgZGF0YWJhc2Ugc2V0dXBzOzwvbGk+DQogIDxsaT5GaXhlcyBhIHNtYWxsIGJ1ZyBpbiB0aGUgaW5zdGFuY2UgY2xhc3MgY29uc3RydWN0b3IgcHJldmVudGluZyB0aGUgcm91dGVzIHRvIGJlIHJlZ2lzdGVyZWQ7PC9saT4NCjwvdWw+DQoNCjxoND5WZXJzaW9uIDEuMi4yLjE8L2g0Pg0KDQo8aDU+Rml4ZXM8L2g1Pg0KDQo8dWw+IA0KICA8bGk+UmVtb3ZlZCBhIGZvcmdvdHRlbiBkZWJ1ZyBzdGF0ZW1lbnQ7PC9saT4NCjwvdWw+DQoNCjxoND5WZXJzaW9uIDEuMi4yPC9oND4NCg0KPGg1Pk5ldyBmZWF0dXJlczwvaDU+DQoNCjx1bD4NCiAgPGxpPkFkZGVkIEpRdWVyeSBNdWx0aVNlbGVjdCBGaWVsZCBEZWZpbml0aW9uOzwvbGk+DQogIDxsaT5BZGRlZCBKUXVlcnkgTXVsdGlTZWxlY3QgdG8gQ2F0ZWdvcmllcyBvcHRpb25zOzwvbGk+DQogIDxsaT5MSVNFIHN0YXJ0cyB1c2luZyB0aGUgbmFtZXNwYWNlcyBmZWF0dXJlcyBvZiBQSFAgNS4zLjA7PC9saT4NCiAgPGxpPk5ldyBleGNlcHRpb25zIGhhbmRsZXI6IGVycm9ycyBhbmQgZXhjZXB0aW9ucyBpbiBMSVNFIGNhbiBub3cgYmUgbG9jYWxpemVkIChjaGVjayBlcnJvciBjb2RlcyBhbmQgc3RyaW5ncyBpbiB0aGUgVHJhbnNsYXRvciBDZW50ZXIpOzwvbGk+DQogIDxsaT5BZGRlZCBGRVUgU2luZ2xlU2VsZWN0IEZpZWxkIERlZmluaXRpb24gKGRlcHJlY2F0ZXMgRkVVIERyb3Bkb3duKTs8L2xpPg0KICA8bGk+QWRkZWQgRkVVIE11bHRpU2VsZWN0IEZpZWxkIERlZmluaXRpb247PC9saT4NCiAgPGxpPkFkZGVkIHN1cHBvcnQgZm9yIGFycmF5cyBpbiBvcHRpb252YWx1ZXM7PC9saT4gDQogIDxsaT5BZGRlZCBzdXBwb3J0IGZvciBhZG1pbiBsaXN0aW5nIHRlbXBsYXRlczwvbGk+IA0KPC91bD4NCg0KPGg1PkZpeGVzPC9oNT4NCg0KPHVsPiANCiAgPGxpPkZpeGVzIGJhY2tsaW5rIGZ1bmN0aW9uYWxpdHk7PC9saT4NCiAgPGxpPkZpeGVzIHRvIHRoZSBtYWludGVuYW5jZSBmdW5jdGlvbnM6IGZpeGluZyBEQiB0YWJsZXMgaW1wb3J0ZWQgZnJvbSBMSTIgc2hvdWxkIG5vdCBpc3N1ZSBhIFBIUCBGYXRhbCBFcnJvciBpbiBubyBjb25kaXRpb25zOzwvbGk+DQogIDxsaT5BZGRlZCByb3V0ZSBmb3IgcGFnaW5hdGlvbiB3aXRoIGNhdGVnb3J5OzwvbGk+DQogIDxsaT5GaXhlcyBkZXRhaWxwYWdlIHBhcmFtZXRlciBvdmVycmlkZSBvbiBkZWZhdWx0IGFjdGlvbjs8L2xpPg0KICA8bGk+Rml4ZXMgZXhjbHVkZV9jYXRlZ29yeSBwYXJhbWV0ZXI6IG5vdyBpdGVtcyBub3QgYmVsb25naW5nIHRvIGFueSBjYXRlZ29yeSBkb24ndCBnZXQgZXhjbHVkZWQ7PC9saT4NCjwvdWw+DQoNCjxoND5WZXJzaW9uIDEuMi4xLjE8L2g0Pg0KDQo8aDU+TWlub3IgRml4ZXM8L2g1Pg0KDQo8dWw+IA0KICA8bGk+TWlub3IgZml4IHRvIExJMiBpbXBvcnRlZCBpbnN0YW5jZXMgdGFibGVzIGZpeGluZyBjb2RlOzwvbGk+DQogIDxsaT5NaW5vciBmaXggdG8gZmllbGQgZGVmaW5pdGlvbnM7PC9saT4NCjwvdWw+DQoNCjxoND5WZXJzaW9uIDEuMi4xPC9oND4NCg0KPGg1Pk5ldyBmZWF0dXJlczwvaDU+DQo8dWw+ICANCiAgPGxpPg0KICAgIEFkZHMgdGhlIGFiaWxpdHkgdG8gZml4IHRhYmxlcyBmcm9tIHByZXZpb3VzIExJMiBpbXBvcnRlZCBpbnN0YW5jZXM7DQogIDwvbGk+ICANCjwvdWw+DQoNCjxoNT5GaXhlcyBhbmQgSW1wcm92ZW1lbnRzPC9oNT4NCg0KPHVsPiANCiAgPGxpPkZpeGVzIHRvIHRoZSBMSVNFX0xJMmNvbnZlcnRlciBjbGFzcy4gSW1wb3J0ZWQgaW5zdGFuY2VzIHNob3VsZCB3b3JrIHdpdGhvdXQgZXJyb3JzIG5vdzs8L2xpPg0KPC91bD4NCg0KPGg0PlZlcnNpb24gMS4yPC9oND4NCg0KPGg1Pk5ldyBmZWF0dXJlczwvaDU+DQo8dWw+DQogIDxsaT4NCiAgICBBZGRlZCBDdXN0b21Gcm9tVURUIGZpZWxkIGRlZmluaXRpb246IGFsbG93cyB0byBjcmVhdGUgc2VsZWN0L2NoZWNrYm94ZXMvcmFkaW8gZmllbGRzIHdpdGggbXVsdGlwbGUgc2VsZWN0aW9uIGNhcGFiaWxpdHkgYW5kIHZhbGlkYXRpb24gZnJvbSBVRFRzIDsNCiAgPC9saT4gDQogIDxsaT4NCiAgICBBZGRlZCBDYXRlZ29yeSBmaWx0ZXIgdG8gdGhlIGRlZmF1bHQgYWN0aW9uOiB5b3UgY2FuIG5vdyBzaG93IHN1bW1hcmllcyBvZiBzZWxlY3RlZCBjYXRlZ29yaWVzOw0KICA8L2xpPiAgDQogIDxsaT4NCiAgICBBZGRlZCB0aGUgcG9zc2liaWxpdHkgdG8gcGFzcyBwYXJhbWV0ZXJzIHRvIGZpZWxkIHRlbXBsYXRlcyAoZm9yIGluc3RhbmNlIHRvIGhhbmRsZSBzdW1tYXJ5IGFuZCBkZXRhaWwgdmlld3MgZGlmZmVyZW50bHkpOw0KICA8L2xpPiAgICANCiAgPGxpPg0KICAgIE5ldyBmaWVsZCBkZWZpbml0aW9uczogQmFja2VuZFRleHQsIEZFVURyb3Bkb3duLCBHYWxsZXJ5RHJvcGRvd24sIEdCRmlsZVBpY2tlciAod2l0aCBDTVNNUyAxLnggb25seSksIEpNRmlsZVBpY2tlciwgTElTRUluc3RhbmNlLCBMSVNFSW5zdGFuY2VJdGVtOw0KICA8L2xpPiAgDQo8L3VsPg0KDQo8aDU+Rml4ZXMgYW5kIEltcHJvdmVtZW50czwvaDU+DQoNCjx1bD4gDQogIDxsaT48c3Ryb25nPiMxMDcwNiAtPC9zdHJvbmc+IG1pbm9yIG5vdGljZTs8L2xpPg0KICA8bGk+QmV0dGVyIGhhbmRsaW5nIG9mIGZpZWxkZGVmIGN1c3RvbSB0ZW1wbGF0ZXM7PC9saT4NCiAgPGxpPkZpeGVzIHRvIFNlYXJjaFJlc3VsdDs8L2xpPg0KICA8bGk+Rml4ZXMgdG8gRGF0ZVRpbWUgZmllbGRkZWYgbWFpbmx5IHJlbGF0ZWQgdG8gZGIgc3RvcmFnZSBhbmQgc29ydGluZzs8L2xpPg0KICA8bGk+QWRkZWQgYSBsaXNlX2RhdGV0aW1lX3V0aWxzIGNsYXNzIHRvIGhlbHAgd2l0aCBmb3JtYXQgY29udmVyc2lvbnM7PC9saT4NCiAgPGxpPkNhdGVnb3J5UXVlcnkgY2xhc3Mgc3VwcG9ydHMgY2F0ZWdvcnkgcGFyYW1ldGVyIG5vdzs8L2xpPg0KICA8bGk+SW1wcm92ZWQgVGFncyBzb3J0aW5nOzwvbGk+DQogIDxsaT4NCiAgICBDdXN0b21Gcm9tVURUOiBhZGRlZCB0aGUgcG9zc2liaWxpdHkgdG8gY3VzdG9taXplIEFkbWluIExpc3RpbmcgcHJlc2VudGF0aW9uIHZpYSBVRFQ7DQogIDwvbGk+DQogIDxsaT4NCiAgICBGaXhlcyBidWcgIzEwODE0IC0gQXNzZXRzIGZhaWwgdG8gbG9hZCBpZiBTU0wgaXMgZW5hYmxlZCBmb3IgQmFja2VuZC4gKFRoYW5rcyBoZXhkaik7DQogIDwvbGk+DQogIDxsaT4NCiAgICBOdW1lcm91cyBmaXhlcyBhbmQgaW1wcm92ZW1lbnRzIGluIGZpZWxkZGVmcyB0ZW1wbGF0ZXM7DQogIDwvbGk+DQogIDxsaT4NCiAgICBOdW1lcm91cyBtaW5vciBidWcgZml4ZXM7DQogIDwvbGk+DQogIDxsaT4NCiAgICBGaXhlcyB0byByb3V0ZXMgaW4gQ01TTVMgMi54KHRoYW5rcyBhanByb2cpOw0KICA8L2xpPg0KICA8bGk+DQogICAgVGFncyBpbnRlcmZlcmluZyB3aXRoIENNU01TIGJhY2tlbmQgbWVudTsgZml4ZXMgcmVnYXJkaW5nIGFsaWFzZXM7IGFkZGl0aW9uYWwgd29yayBvbiByb3V0ZXMgKHRoYW5rcyBhanByb2cpOw0KICA8L2xpPg0KICA8bGk+DQogICAgRml4ZXMgdG8gYmFja2VuZCBpbnN0YW5jZXMgcGFnaW5hdGlvbiAoQlIgIzEwNzEyKSAoVGhhbmtzIEplZmYgQm9zY2ggW2FqcHJvZ10gYW5kIEdyZWcgUHJvc3NlciBbZ2VlcGVyc10pOw0KICA8L2xpPg0KICA8bGk+DQogICAgRml4ZXMgQlIgIzEwOTA0LCAodGhhbmtzIEplZmYgQm9zY2ggW2FqcHJvZ10gYW5kIEVkdWFyZG8gTWFydGluZXogW2hleGRqXSk7DQogIDwvbGk+DQogIDxsaT4NCiAgICBGaXhlcyB0byBMSTIgaW1wb3J0cyBhbmQgTElTRSBpbnN0YW5jZSBjbG9uZXI7IFVwZGF0aW5nIGZpeGVzIG9sZCBpbXBvcnRzL2Nsb25lcyBidWdzOw0KICA8L2xpPg0KPC91bD4NCg0KPGg0PlZlcnNpb24gMS4xLjA8L2g0Pg0KDQo8aDU+TmV3IGZlYXR1cmVzPC9oNT4NCjx1bD4NCiAgPGxpPkxJU0UgaW5zdGFuY2VzIGNhbiBub3cgYmUgc2V0IHRvIGJlIHVwZ3JhZGVkIG1hbnVhbGx5IG9yIGF1dG9tYXRpY2FsbHkgb24gYSBwZXIgaW5zdGFuY2Ugc2V0dGluZyBpbiBjb25qdW5jdGlvbiB3aXRoIGEgZ2xvYmFsIHNldHRpbmcgb24gTElTRSBtYWluIG1vZHVsZTs8L2xpPg0KICA8bGk+TElTRSBtYWluIG1vZHVsZSBjYW4gbm93IGJlIHNldCB0byBiZSB1cGdyYWRlZCBtYW51YWxseSAocmVjb21tZW5kZWQpIHRvIGF2b2lkIHRpbWluZyBvdXQgZHVyaW5nIHVwZ3JhZGVzOzwvbGk+DQogIDxsaT5MSVNFIG1haW4gbW9kdWxlIGhhcyB0byBiZSBpbnN0YWxsZWQgbWFudWFsbHkgdG8gYXZvaWQgdGltZW91dHMgZHVyaW5nIGluc3RhbGxhdGlvbjs8L2xpPg0KICA8bGk+QWRkZWQgdGhlIGNhcGFiaWxpdHkgdG8gZGVmaW5lIHRoZSBpbnN0YW5jZSA8c3Ryb25nPkZyaWVuZGx5IE5hbWU8L3N0cm9uZz4sIDxzdHJvbmc+TW9kdWxlIEFkbWluIERlc2NyaXB0aW9uPC9zdHJvbmc+IGFuZCA8c3Ryb25nPk1vZHVsZSBBZG1pbiBTZWN0aW9uPC9zdHJvbmc+IG9uIHRoZSA8c3Ryb25nPkNyZWF0ZSBJbnN0YW5jZTwvc3Ryb25nPiBmb3JtOzwvbGk+DQogIDxsaT5BZGRlZCBpbnN0YW5jZSBpbXBvcnQsIGV4cG9ydCBhbmQgY2xvbmUgY2FwYWJpbGl0eTs8L2xpPg0KICA8bGk+SW1wbGVtZW50ZWQgPHN0cm9uZz5GUnMgIzEwNjQzIGFuZCAjMTA2NDY8L3N0cm9uZz46DQogICAgPHVsPg0KICAgICAgPGxpPjxzdHJvbmc+IzEwNjQzIC08L3N0cm9uZz4gYWRkZWQgYSA8c3Ryb25nPlRhYnM8L3N0cm9uZz4gZmllbGQgZGVmaW5pdGlvbiAodGhhbmtzIHRvIDxzdHJvbmc+QWxiZXJ0IENhbnNhZG88L3N0cm9uZz4pOzwvbGk+DQogICAgICA8bGk+PHN0cm9uZz4jMTA2NDYgLTwvc3Ryb25nPiBtYWRlIHRvdGFsIHJlY29yZCBjb3VudCBhdmFpbGFibGUgYXMgYSBTbWFydHkgdmFyaWFibGUgKHRoYW5rcyB0byA8c3Ryb25nPkNocmlzIENpYXZhcmVsbGEgW2NhY2lhdmFyXTwvc3Ryb25nPik7PC9saT4NCiAgICA8L3VsPg0KICA8L2xpPg0KPC91bD4NCg0KPGg1PkZpeGVzPC9oNT4NCg0KPHVsPg0KICA8bGk+Rml4ZXMgdG8gdGhlIFRhZ3MgZnVuY3Rpb25hbGl0eTs8L2xpPg0KICA8bGk+Rml4ZXMgcmVsYXRlZCB3aXRoIG5ldyBDTVNNUyAyLjAuMSB3YXkgb2YgaGFuZGxpbmcgdmFyaWFibGUgc2NvcGVzIGFuZCB0ZW1wbGF0ZSBvYmplY3RzOzwvbGk+DQogIDxsaT5Tb21lIG1pbm9yIGZpeGVzOzwvbGk+DQo8L3VsPg0KDQo8aDQ+VmVyc2lvbiAxLjAuMjwvaDQ+DQo8dWw+DQogIDxsaT5NaW5vciBmaXhlcyBpbmNsdWRpbmcgIzEwNjM1LjwvbGk+DQo8L3VsPg0KPGg0PlZlcnNpb24gMS4wLjE8L2g0Pg0KPHVsPg0KICA8bGk+TWlub3IgZml4ZXMgaW5jbHVkaW5nICMxMDYzMC48L2xpPg0KPC91bD4NCjxoND5WZXJzaW9uIDEuMC4wPC9oND4NCjx1bD4NCiAgPGxpPjFzdCBwdWJsaWMgcmVsZWFzZS48L2xpPg0KPC91bD4=]]></data>
	</file>
	<file>
	  <filename>/templates/clonemodule.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PGgzPnskbW9kLT5MYW5nKCdjb3B5X3RpdGxlJyl9PC9oMz4NCnskc3RhcnRmb3JtfXskaGlkZGVufQ0KPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4NCiAgICA8cCBjbGFzcz0icGFnZXRleHQiPiogeyRtb2QtPk1vZExhbmcoJ21vZHVsZV9uYW1lJyl9OjwvcD4NCiAgICA8cCBjbGFzcz0icGFnZWlucHV0Ij57JGlucHV0X21vZHVsZV9uYW1lfTwvcD4NCjwvZGl2Pg0KPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4NCiAgICA8cCBjbGFzcz0icGFnZXRleHQiPiogeyRtb2QtPk1vZExhbmcoJ2luc3RhbmNlX2ZyaWVuZGx5bmFtZScpfTo8L3A+DQogICAgPHAgY2xhc3M9InBhZ2VpbnB1dCI+eyRpbnB1dF9tb2R1bGVfZnJpZW5kbHluYW1lfTwvcD4NCjwvZGl2Pg0KPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4NCiAgICA8cCBjbGFzcz0icGFnZXRleHQiPnskbW9kLT5Nb2RMYW5nKCdwcm9tcHRfbW9kZGVzY3JpcHRpb24nKX06PC9wPg0KICAgIDxwIGNsYXNzPSJwYWdlaW5wdXQiPnskaW5wdXRfbW9kZGVzY3JpcHRpb259PC9wPg0KPC9kaXY+ICAgICAgDQo8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPg0KICAgIDxwIGNsYXNzPSJwYWdldGV4dCI+eyRtb2QtPk1vZExhbmcoJ3Byb21wdF9hZG1pbnNlY3Rpb24nKX06PC9wPg0KICAgIDxwIGNsYXNzPSJwYWdlaW5wdXQiPnskaW5wdXRfYWRtaW5zZWN0aW9ufTwvcD4NCjwvZGl2PiANCjxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+DQogICAgPHAgY2xhc3M9InBhZ2V0ZXh0Ij4mbmJzcDs8L3A+DQogICAgPHAgY2xhc3M9InBhZ2VpbnB1dCI+eyRzdWJtaXR9eyRjYW5jZWx9PC9wPg0KPC9kaXY+DQp7JGVuZGZvcm19DQoNCg==]]></data>
	</file>
	<file>
	  <filename>/templates/copymodule.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PGgzPnskbW9kLT5MYW5nKCdjb3B5X3RpdGxlJyl9PC9oMz4NCnskc3RhcnRmb3JtfQ0KICA8ZmllbGRzZXQ+DQogICAgPGxlZ2VuZD57JG1vZC0+TW9kTGFuZygnbW9kdWxlX21haW5fb3B0aW9ucycpfTwvbGVnZW5kPg0KICAgICAgPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4NCiAgICAgICAgICA8cCBjbGFzcz0icGFnZXRleHQiPiogeyRtb2QtPk1vZExhbmcoJ21vZHVsZV9uYW1lJyl9OjwvcD4NCiAgICAgICAgICA8cCBjbGFzcz0icGFnZWlucHV0Ij57JGlucHV0X21vZHVsZV9uYW1lfTwvcD4NCiAgICAgIDwvZGl2Pg0KDQogICAge2lmICRhdXRvaW5zdGFsbH0NCiAgICAgIDxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+DQogICAgICAgIDxwIGNsYXNzPSJwYWdldGV4dCI+KiB7JG1vZC0+TW9kTGFuZygnaW5zdGFuY2VfZnJpZW5kbHluYW1lJyl9OjwvcD4NCiAgICAgICAgPHAgY2xhc3M9InBhZ2VpbnB1dCI+eyRpbnB1dF9tb2R1bGVfZnJpZW5kbHluYW1lfTwvcD4NCiAgICAgIDwvZGl2Pg0KICAgICAgPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4NCiAgICAgICAgPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JG1vZC0+TW9kTGFuZygncHJvbXB0X21vZGRlc2NyaXB0aW9uJyl9OjwvcD4NCiAgICAgICAgPHAgY2xhc3M9InBhZ2VpbnB1dCI+eyRpbnB1dF9tb2RkZXNjcmlwdGlvbn08L3A+DQogICAgICA8L2Rpdj4NCg0KICAgIHtlbHNlfQ0KICAgICAgICA8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPg0KICAgICAgICAgIDxkaXYgY2xhc3M9InBhZ2V3YXJuaW5nIj4NCiAgICAgICAgICAgIDxoMz57JG1vZC0+TW9kTGFuZygnbm90aWNlJyl9PC9oMz4NCiAgICAgICAgICAgIDxwPnskbW9kLT5Nb2RMYW5nKCdtaXNzaW5nX29wdGlvbnNfbm90aWNlJyl9PC9wPg0KICAgICAgICAgIDwvZGl2Pg0KICAgICAgICA8L2Rpdj4NCiAgICB7L2lmfQ0KICA8L2ZpZWxkc2V0Pg0KDQogIHtpZiAkYXV0b2luc3RhbGx9DQogICAgPGZpZWxkc2V0Pg0KICAgICAgPGxlZ2VuZD57JG1vZC0+TW9kTGFuZygnaXRlbXNfb3B0aW9ucycpfTwvbGVnZW5kPg0KICAgICAgPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4NCiAgICAgICAgPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JG1vZC0+TW9kTGFuZygncHJvbXB0X2hpZGVfYWxpYXMnKX06PC9wPg0KICAgICAgICA8cCBjbGFzcz0icGFnZWlucHV0Ij57JGlucHV0X2hpZGVfYWxpYXN9PC9wPg0KICAgICAgPC9kaXY+DQogICAgICA8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPg0KICAgICAgICA8cCBjbGFzcz0icGFnZXRleHQiPnskbW9kLT5Nb2RMYW5nKCdwcm9tcHRfaGlkZV9zbHVnJyl9OjwvcD4NCiAgICAgICAgPHAgY2xhc3M9InBhZ2VpbnB1dCI+eyRpbnB1dF9oaWRlX3NsdWd9PC9wPg0KICAgICAgPC9kaXY+DQogICAgICA8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPg0KICAgICAgICA8cCBjbGFzcz0icGFnZXRleHQiPnskbW9kLT5Nb2RMYW5nKCdwcm9tcHRfaGlkZV90aW1lX2NvbnRyb2wnKX06PC9wPg0KICAgICAgICA8cCBjbGFzcz0icGFnZWlucHV0Ij57JGlucHV0X2hpZGVfdGltZV9jb250cm9sfTwvcD4NCiAgICAgIDwvZGl2Pg0KICAgIDwvZmllbGRzZXQ+DQoNCiAgICA8ZmllbGRzZXQ+DQogICAgICA8bGVnZW5kPnskbW9kLT5Nb2RMYW5nKCdtb2R1bGVfYWR2YW5jZWRfb3B0aW9ucycpfTwvbGVnZW5kPg0KICAgICAgPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4NCiAgICAgICAgPGRpdiBjbGFzcz0iaW5mb3JtYXRpb24iPg0KICAgICAgICAgIDxwPnskbW9kLT5Nb2RMYW5nKCdhZG1pbl9zZWN0aW9uX2luZm8nKX08L3A+DQogICAgICAgIDwvZGl2Pg0KICAgICAgPC9kaXY+DQogICAgICA8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPg0KICAgICAgICA8cCBjbGFzcz0icGFnZXRleHQiPnskbW9kLT5Nb2RMYW5nKCdwcm9tcHRfYWRtaW5zZWN0aW9uJyl9OjwvcD4NCiAgICAgICAgPHAgY2xhc3M9InBhZ2VpbnB1dCI+eyRpbnB1dF9hZG1pbnNlY3Rpb259PC9wPg0KICAgICAgPC9kaXY+DQogICAgICA8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPg0KICAgICAgICA8cCBjbGFzcz0icGFnZXRleHQiPnskbW9kLT5Nb2RMYW5nKCdwcm9tcHRfc2VwYXJhdGVfc2V0dGluZ3NfY29udHJvbCcpfTo8L3A+DQogICAgICAgIDxwIGNsYXNzPSJwYWdlaW5wdXQiPnskaW5wdXRfc2VwYXJhdGVfc2V0dGluZ3NfY29udHJvbH08L3A+DQogICAgICA8L2Rpdj4NCiAgICAgIDxocj4NCiAgICAgIDxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+DQogICAgICAgIDxkaXYgY2xhc3M9InBhZ2V3YXJuaW5nIj4NCiAgICAgICAgICA8aDM+eyRtb2QtPk1vZExhbmcoJ25vdGljZScpfTwvaDM+DQogICAgICAgICAgPHA+eyRtb2QtPk1vZExhbmcoJ2luc3RhbmNlX21vZGVfbm90aWNlJyl9PC9wPg0KICAgICAgICA8L2Rpdj4NCiAgICAgIDwvZGl2Pg0KICAgICAgPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4NCiAgICAgICAgPGRpdiBjbGFzcz0iaW5mb3JtYXRpb24iPg0KICAgICAgICAgIDxwPnskbW9kLT5Nb2RMYW5nKCdpbnN0YW5jZV9tb2RlX2luZm8nKX08L3A+DQogICAgICAgIDwvZGl2Pg0KICAgICAgPC9kaXY+DQogICAgICA8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPg0KICAgICAgICA8cCBjbGFzcz0icGFnZXRleHQiPnskbW9kLT5Nb2RMYW5nKCdwcm9tcHRfaW5zdGFuY2VfbW9kZScpfTo8L3A+DQogICAgICAgIDxwIGNsYXNzPSJwYWdlaW5wdXQiPnskaW5wdXRfbW9kZV9saXN0fTwvcD4NCiAgICAgIDwvZGl2Pg0KDQogICAgICA8aHI+DQoNCiAgICAgIDxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+DQogICAgICAgIDxwIGNsYXNzPSJwYWdldGV4dCI+eyRtb2QtPk1vZExhbmcoJ3Byb21wdF9hdXRvX3VwZ3JhZGUnKX06PC9wPg0KICAgICAgICA8cCBjbGFzcz0icGFnZWlucHV0Ij57JGlucHV0X2F1dG9fdXBncmFkZX08L3A+DQogICAgICA8L2Rpdj4NCiAgICA8L2ZpZWxkc2V0Pg0KICB7L2lmfQ0KDQogIDxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+DQogICAgICA8cCBjbGFzcz0icGFnZXRleHQiPiZuYnNwOzwvcD4NCiAgICAgIDxwIGNsYXNzPSJwYWdlaW5wdXQiPnskc3VibWl0fXskY2FuY2VsfTwvcD4NCiAgPC9kaXY+DQp7JGVuZGZvcm19DQoNCg==]]></data>
	</file>
	<file>
	  <filename>/templates/fielddefstab.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[77u/e2lmIGNvdW50KCRmaWVsZGRlZnMpID4gMH0KPGZpZWxkc2V0PgoJPGxlZ2VuZD57JG1vZC0+TW9kTGFuZygncmVnaXN0ZXJlZF9maWVsZGRlZnMnKX08L2xlZ2VuZD4KCTx0YWJsZSBjZWxsc3BhY2luZz0iMCIgY2xhc3M9InBhZ2V0YWJsZSI+CiAgICAJPHRoZWFkPgogICAgICAgIAk8dHI+CiAgICAgICAgICAgIAk8dGg+eyRtb2QtPk1vZExhbmcoJ2ZpZWxkZGVmX3R5cGUnKX08L3RoPgogICAgICAgICAgICAJPHRoPnskbW9kLT5Nb2RMYW5nKCdmaWVsZGRlZl9mcmllbmRseXR5cGUnKX08L3RoPgogICAgICAgICAgICAJPHRoPnskbW9kLT5Nb2RMYW5nKCdmaWVsZGRlZl9vcmlnaW5hdG9yJyl9PC90aD4KICAgICAgICAgICAgCTx0aD57JG1vZC0+TW9kTGFuZygnZmllbGRkZWZfZGVwcycpfTwvdGg+CiAgICAgICAgICAgIAk8dGggY2xhc3M9InBhZ2VpY29uIj57JG1vZC0+TW9kTGFuZygnYWN0aXZlJyl9PC90aD4KICAgICAgICAJPC90cj4KICAgIAk8L3RoZWFkPgogICAgCTx0Ym9keT4KCXtmb3JlYWNoIGZyb209JGZpZWxkZGVmcyBpdGVtPSdlbnRyeScgbmFtZT0nZmllbGRkZWZzJ30KICAgIAkgICAgPHRyIGNsYXNzPSJ7Y3ljbGUgdmFsdWVzPSdyb3cxLHJvdzInIG5hbWU9J3N1bW1hcnknfSI+CiAgICAgICAgCSAgICA8dGQ+eyRlbnRyeS0+R2V0VHlwZSgpfTwvdGQ+CiAgICAgICAgCSAgICA8dGQ+eyRlbnRyeS0+R2V0RnJpZW5kbHlUeXBlKCl9PC90ZD4KICAgICAgICAgICAgCTx0ZD57JGVudHJ5LT5HZXRPcmlnaW5hdG9yKCl9PC90ZD4KCQkJCTx0ZD4KCQkJCXtpZiAhaXNfbnVsbCgkZW50cnktPkdldE1vZHVsZURlcHMoKSl9CgkJCQkJe2ZvcmVhY2ggZnJvbT0kZW50cnktPkdldE1vZHVsZURlcHMoKSBrZXk9J21vZHVsZScgaXRlbT0ndmVyc2lvbicgbmFtZT0nZGVwcyd9CgkJCQkJCXskbW9kdWxlfSAoeyR2ZXJzaW9ufSl7aWYgISRzbWFydHkuZm9yZWFjaC5kZXBzLmxhc3R9LHsvaWZ9CgkJCQkJey9mb3JlYWNofQkJCQkJCgkJCQl7ZWxzZX0KCQkJCQl7J25vbmUnfGxhbmd9CgkJCQl7L2lmfQoJCQkJPC90ZD4KICAgICAgICAgICAgCTx0ZCBjbGFzcz0iaW5pdC1hamF4LXRvZ2dsZSI+eyRlbnRyeS0+YWN0aXZlX2xpbmt9PC90ZD4KICAgICAgICAJPC90cj4KCXsvZm9yZWFjaH0KICAgIAk8L3Rib2R5PgoJPC90YWJsZT4KPC9maWVsZHNldD4Key9pZn0KeyRzdGFydGZvcm19CgogICAgPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KICAgICAgICA8cCBjbGFzcz0icGFnZWlucHV0Ij4KCQkJCXskc2Nhbn0KCQk8L3A+CiAgICA8L2Rpdj4KIAp7JGVuZGZvcm19]]></data>
	</file>
	<file>
	  <filename>/templates/help.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[e3N0cmlwfQ0KPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJ7JHJvb3RfdXJsfS9tb2R1bGVzL3skcGFyZW50X25hbWV9L2xpYi9jc3MvbGlzZUhlbHAuY3NzIiB0eXBlPSJ0ZXh0L2NzcyIgLz4NCjxzY3JpcHQgc3JjPSJ7JHJvb3RfdXJsfS9tb2R1bGVzL3skcGFyZW50X25hbWV9L2xpYi9qcy9qcy5jb29raWUuanMiPjwvc2NyaXB0Pg0KPHNjcmlwdD4NCmpRdWVyeShkb2N1bWVudCkucmVhZHkoZnVuY3Rpb24oKXsNCiAgdmFyIGFjdGl2ZV90YWIgPSBDb29raWVzLmdldCgneyRwYXJlbnRfbmFtZX1fYWN0aXZlJyk7DQogICQoIiNkb25hdGluZyIpLmNsaWNrKGZ1bmN0aW9uKGV2ZW50KQ0KICB7DQogICAgZXZlbnQucHJldmVudERlZmF1bHQoKTsNCiAgICBfc2V0X2FjdGl2ZV90YWIoJ2NvbnRyaWJ1dGUnKTsNCiAgfSk7DQoNCiAgaWYodHlwZW9mIGFjdGl2ZV90YWIgPT09ICJ1bmRlZmluZWQiKQ0KICB7DQogICAgX3NldF9hY3RpdmVfdGFiKCdnZW5lcmFsJyk7DQogIH0NCiAgZWxzZQ0KICB7DQogICAgX3NldF9hY3RpdmVfdGFiKGFjdGl2ZV90YWIpOw0KICB9DQoNCiAgJCgnI3BhZ2VfdGFicyA+IGRpdicpDQogICAgLmVhY2goZnVuY3Rpb24oKQ0KICAgIHsNCiAgICAgICQodGhpcykuY2xpY2soZnVuY3Rpb24oKQ0KICAgICAgew0KICAgICAgICBDb29raWVzLnNldCgneyRwYXJlbnRfbmFtZX1fYWN0aXZlJywgdGhpcy5pZCk7DQogICAgICB9KTsNCiAgICB9KTsNCn0pOw0KDQoNCmZ1bmN0aW9uIF9zZXRfYWN0aXZlX3RhYih0YWJfbmFtZSkNCnsNCiAgJCgnI3BhZ2VfdGFicyA+IGRpdicpDQogICAgLmVhY2goZnVuY3Rpb24oKQ0KICAgIHsNCiAgICAgICQodGhpcykucmVtb3ZlQ2xhc3MoJ2FjdGl2ZScpOw0KICAgIH0pOw0KDQogICQoJyNwYWdlX2NvbnRlbnQgPiBkaXYnKQ0KICAgIC5lYWNoKGZ1bmN0aW9uKCkNCiAgICB7DQogICAgICAkKHRoaXMpLmhpZGUoKTsNCiAgICB9KTsNCg0KICAkKCcjJyArIHRhYl9uYW1lKS5hZGRDbGFzcygnYWN0aXZlJyk7DQogICQoJyMnICsgdGFiX25hbWUgKyAnX2MnKS5zaG93KCk7DQogIENvb2tpZXMuc2V0KCd7JHBhcmVudF9uYW1lfV9hY3RpdmUnLCB0YWJfbmFtZSk7DQp9DQoNCmZ1bmN0aW9uIGNvcHlUb0NsaXBib2FyZChlbGVtZW50KQ0Kew0KICB2YXIgJHRlbXAgPSAkKCI8aW5wdXQ+Iik7DQogICQoImJvZHkiKS5hcHBlbmQoJHRlbXApOw0KICAkdGVtcC52YWwoJChlbGVtZW50KS50ZXh0KCkpLnNlbGVjdCgpOw0KICBkb2N1bWVudC5leGVjQ29tbWFuZCgiY29weSIpOw0KICAkdGVtcC5yZW1vdmUoKTsNCn0NCjwvc2NyaXB0Pg0KDQo8ZGl2IGNsYXNzPSJjbGVhciI+PC9kaXY+DQo8ZGl2IGlkPSJwYWdlX3RhYnMiPg0KICA8ZGl2ICBpZD0iZ2VuZXJhbCI+DQogICAgICB7JG1vZC0+TW9kTGFuZygnZ2VuZXJhbCcpfQ0KICA8L2Rpdj4gICAgDQogIDxkaXYgaWQ9ImR1cGxpY2F0aW5nIj4NCiAgICB7JG1vZC0+TW9kTGFuZygnZHVwbGljYXRpbmcnKX0NCiAgPC9kaXY+DQogIDxkaXYgaWQ9Im1vZGVzIj4NCiAgICBJbnN0YW5jZSBNb2Rlcw0KICA8L2Rpdj4NCiAgPGRpdiBpZD0iZmllbGQiPg0KICAgIHskbW9kLT5Nb2RMYW5nKCdmaWVsZGRlZnMnKX0NCiAgPC9kaXY+DQoNCiAge2lmIExJU0VTbWFydHk6OkxJMl9wcmVzZW50KCl9ICANCiAgICA8ZGl2IGlkPSJpbXBvcnRpbmciPg0KICAgICAgICB7JG1vZC0+TW9kTGFuZygnaW1wb3J0aW5nJyl9DQogICAgPC9kaXY+DQogIHsvaWZ9DQoNCiAgPGRpdiBpZD0ic21hcnR5X3BsdWdpbnMiPg0KICAgIHskbW9kLT5Nb2RMYW5nKCdzbWFydHlfcGx1Z2lucycpfQ0KICA8L2Rpdj4NCiAgPGRpdiBpZD0iZGV2ZWxvcGVycyI+DQogICAgRGV2ZWxvcGVycw0KICA8L2Rpdj4NCiAgPGRpdiBpZD0id2hhdHNuZXciPg0KICAgICB7JG1vZC0+TW9kTGFuZygnd2hhdHNuZXcnKX0NCiAgPC9kaXY+DQogIDxkaXYgaWQ9ImNvbnRyaWJ1dGUiPg0KCQl7JG1vZC0+TW9kTGFuZygnY29udHJpYnV0ZScpfQ0KCTwvZGl2Pg0KICA8ZGl2IGlkPSJhYm91dCI+DQogICAgIHskbW9kLT5Nb2RMYW5nKCdhYm91dCcpfQ0KICA8L2Rpdj4NCjwvZGl2Pg0KPGRpdiBjbGFzcz0iY2xlYXJiIj48L2Rpdj4NCjxkaXYgaWQ9InBhZ2VfY29udGVudCI+DQogIDxkaXYgaWQ9ImdlbmVyYWxfYyI+DQogICAgPGltZyBzcmM9ImRhdGE6aW1hZ2UvcG5nO2Jhc2U2NCxpVkJPUncwS0dnb0FBQUFOU1VoRVVnQUFBV1FBQUFESUNBWUFBQURmc3BzQkFBQWdBRWxFUVZSNG5PMmRlWlJrVlpYdVQxVXhWWWtDUWxJYUZTU1JFVGZPL3I2OUx3V3RLTTZDcllnMHlBSzd0VlZRRkpYdXRsVlFXK1hwVTBSWHQ0b0t2TWJoMmJRellqOXQ3VmJScC9qc3B6M1lPR0E3SVNoRHdXT3FlWjZuOTBkRVNsRlVabVZFM0J2MzNzajlXK3RickVveTQ1Njc5N2xmM2p6RFBpRTRqdU00anVNNGp1TTRqdU00anVNNGp1TTRqdU00anVNNGp1TTRqdU00anVNNGp1TTRqdU00anVNNGp1TTRqdU00anVNNGp1TTRqdU00anVNNGp1TTRqdU00anVNNGp1TTRqdU00anVNNGp1TTRqdU00anVNNGp1TTRqdU00anVNNGp1TTRqdU00anVNNGp1UDB5NXdrU1E2dTErdnppMjdJTk13cHVnSE9RTXlyMSt2ekc0M0dJVVUzWkNiVTYvWDVydjZVSk1uQlJlZXZhc3dCY0xLUjF4amxIbE51VStWNkk5WW9zVXRWN3pMeUdqSytLQlJnaE1DaUkwbTVTRlgvMlJUM0dySERsTnVOMktHcWQ1SDhySWljRmtJNGFOaHRjMmJNZ1NyeVFwTFhtR0twRVp0TXVWYUpkVXJzTXVYTnBIeGtZbUppWWRFTkRTRUVFVG1SSW45bnlnZVUyR1hFR2xPdWRmVXVWYTVYWXBlU3Z5WHc0UmpqRTR2T2Iya3hrVk5NdWQyTTk1aHk5M1JLamN0TXVZM2txNGJVdkFOVTlWb2pscGx5NC9UdDA5VktyRFB5bWlHMXpka1BZMk5qaDVJOE96WDd2Nmx4a3lsWDdhK1BtWEt0bWE1U2JaOVVSSnVCOWhtcVdLNnFLMmZRVmxjZlV1WDlTaTRSa2NWRjVMaTBxSExyREIrU3ZiVWhOYjE5OGVMRmo4aXJiUURPNmJhdnQyUVRXMDI1MmNpTDgycWJNelV4eHFNTU9GK1ZQK3UrVmU3bkYrbVVXcTNBcDBJSUJ3eWozVW1TakpucHpVcXNLOXF3Wm9zNkwxRDQ5RER5VzNibW1uSjNhanBvVURlUXllUEd4OGVQeUtwaElyTFlpRnVOM0RSWTIvUjJvUDNtck5ybFRFMnIxVHJHeUl0TjlYWlZybFJpUzFZUGJXcmNGRUtZbTJmN1ZlU0ZxZW5Tb2cxcTlncjNKa21pZWVhNHRDd20wOVIwUTVZQnpkS1FqYnl5TzBhY1JkdFdrZkxSck5ybVBJaUlDQ252N1F4allYbHF6Q3BuKzlKcUFJL1A2VllPOHJmaTRwV2FiZ2l6Y2FKZWdYdXpEcVlTSzJLTWl3WnRtMEcrbkpwdXo3UnR5cFdrWEpCRjdHWTdaUEk0SXo5cXlvMUdMQ05rMTdBZVdGV3VIQnNiT3pUcmU4cnliZDQxdUxMT2I2a2grZG5jZ2tuY21TVEpXUDl0azQ4cXNEeVB0cVhHWlVtUzFMT001U3hobnNiNGRKSmZURlYzRTFoUjFJUGFIVjY3T2N1YlUrWDZvZzNJOWJBY2I4c3l4NldsM1c2ZmtPZWZacXJjQ3NSMzlkTTJjdUpZSlpma21uREtIVm5IZEJTcDErdnp5WGk2R2I3ZGZYdGNYZlNEK3FDd0hNQkxzcmhQVlRtcnUvS2pCUGZsMmtPclJWcW5aSkhqVW1PcWQrY2RUQ1dYdEZxdFkzcHRteXJlbmVHNDhSUnR3MzFwaWpQeWlHM1ZhVFFhaHdONHNTcHZWR0pkbWQ4Y1U5UGJzN2puZmxid3VJYW03V0dVeDVPMTNUNHBOWDBnOTBBU200QjRTUzl0R3hzYk85UTBuNkdLdlpXUy81QlhqS3NHZWV4akdlTmZtT3B2VExsS2ljMGxlQkQzS3lXWEFIakJZUGNlejdiK2xudTZoaUxjQytEa2pMcDYrU0RseXFFRnM4YzNHQkU1elhRSXZ5dzZXbDJyMVJia0ZlZXlreVJKaTVSM21PSmVKVllvc2EzNGg2OFBVZDQ2U0J5TStIVGg5K0RhVDQ1SGVJT1hLbjgzckVBcXNhNlh2ZXVBWEQ3RXRxMklNU0xQV0pjTkFNY1o1WXJPSmcwc04rWE93aCsyQVVYeVY0UEV4SlRWL0VVMHE0UjdzM29HU3Njd0E1bWFQa0JPSER2VHRpbjVnMkcxVFlrdGcvNjVXd0hta01tVHpQQ1oxSFM3UW9ZeUhEUnM5UnVjUnFOeGlKVjRqTnoxZTIwTG96aU8zR2cwRGhubXd2ZlV1S3pkYm5PbTdWUHlWOE5NTklrUDV4bnZnamdvSlo5amhxK2JjcnVOK1Bpb0t0ZjNXMEdzMFdnOHBsdVRwZkQ3Y09XVDQxSlRxOVVXV0tmcTBuQUNDVmtPNExpWnRzK0lXNGVaYUE0NC9sZ1dST1NSUVBzRlN2NGdOZDJvbEtIbHVHZ3BzYTdmc3AweHhrV204RzNTWlJleFppVG5lMHB2eUtyL05zUWs3MURWQy9PTWQ1NGtTVEpHa1F0U3d5OU11VG8xN2Jkd1QrWFZid3pIeHNZTzdSWTlLdndlWEZOTGlWMVpQanVsb2V5R3JLcWZIR0tTVndBNE5jOTRaMDJ6MlJ4WDRNMUtMbEZpaGErZjVXNVRETFFXdVZ0L3VRVDM0WnBLcW5wWFZzOVFxU2k3SVI5SFBtTlliM3BLM0ZlRkxkUXhSaWppWHl1eFFpSEw4OTQwVXpXUnVIcVErQTV6SXRuVnAwWjEyVnZaRFhsaVltS2hLWWV5RGxtSmRYbkdlaEJFNUVRRi9xY3BONnRpK1RBTDkxUkpxbHdwSWljT0V1c1VPS2Q3WWtuaDkrTjZ1Rkxqc3U3cFJLTkgyUTA1aEJCSTNwQjcyNGhOWkR3N3J6ajN3VHdnZWFhcWZzbTBZelJGUHdnVjBhb3N6dUh6WVl0U2F6U1h2SVZRRFVQdXZpWG4zRVpkVmZTaHJiVmFiUUdBTTVYOHJuVk9OZkhKcFY3NkZtV3RxcjQraTF3QTdUZFhkcWZpQ0NzMTNXakFxN1BJY1NtcGdpR0hFQUlwNzgvdHJZVllSc3BiOG9qdi9oZ2ZIejlDVmM0MXcwKzBrNGRNRHdlWVRjcXFzTkFrWHBpK2ZFcU5vMTJWc1NxR0hFSUlwcnd0aHdUdk1OVlZXY2QxT2tTa3BzRHJsUHh0OTBpalNoVHVLYm0yaFJEbVpaa25zcFYyRDlBdCt0NWNIVzNJODV6T1VsQWxRMmF6MmJhTTZ3eWt4bnV5anVtK2FMVmFpUUx2VXVYOTNab1IvdWR3UmlKeHA0cWNtMGZlRkxpa2s3UGk3M08ySzhkanVzcERsUXk1eTd5TWxzRnRVK1UvWlJiSWZkQnNOZzhqY1hVbnZsaXVST1VMOTVSTnFyekx6RTdJTTQ5ay9Bcy81TFRBSEJNcnpPelI5WHI5MFhubXVSUlUwSkJEQ09HZzdxcUR2b3habFN0VDQ0OHpDZUFVQUhpYkVpdXlQZ1BRMVJFaFcweTVPY2I0aER6ek9JbkYrTVR1Q1NtZXp5RkpsVnVOY2tjVzUzRldob29hY2tpUzVHQUFGNXJpWHB1aE1YZE4vR1lBVDg0aWRsTndvS25lN3V0WWM5TkdKYllvOEttUThaanhESmhINEF0bWVyZjVrRk4rSWpZcHVZU1V5eVltSmhZT09jZkZVbFZEbmlUR2VKU1JGNXZwYldaY284cjd0VE5HdTZvN1RMRENsSnRUOG5OcG11KzJhSkxIMml5dUg1SG5BMnFtcTB4NXN5citOZ3pmaUI4Q2dBWVpYNmJLRzAyNXR0dmZIdWpNRGJoNlZhZTZuajVneXJWbXZFTVYvNjNaYkk0WG1lUENxTG9oNzBtOVhwOGZZMFNNOFdrQVRoYVJFNGY1RzlaS2RlQm50YVhFT2lYV2tmZ2hHZiswMFdnY1Bxdzg5a0tqMFRoRVJHb3h4dU5GWkxHck44VVlqOWNrTVFDTkxEYjBWSjVSTXVRaTZTeWZLOTdJcXF6VWRMVXF0NnJLdHpURzUva0Q2c3c2M0pBSFI0RTMrWmh4bi8yaGMzYmZMak5jRjJOOFdnaGhidEg1ZEp6Q2NFTWVIUE1Kbmw0TWVHZDNIZllHSTYvV0pQbURvdlBuT0tYQkRYa3dTUDZWRy9MMDZpejl3M0l6WGFxS2R3UE5XSFRlSEtlVXVDRVBobzNBS2MyNTVKblkzRjJIZlRzcEYxV2h6clRqRkk0YmN2OGtTVExtWlRIM3lLMXl2Um5YS0hrVGdKY0RpNDRzT2tlT1V5bmNrUHNId01uRGpGMHAxU2tSdXRGVXY2Y3FaeTFjdUhDMGk3ODRUcDY0SWZjUEVGODlHMC91WUdlenpjNlUrSXFJbkJKQ09MRG9YRGpPU09DRzNEOUd2cU5vY3h5S0FVTjJtV0o1cDdZQXJ4bFcvUWpIbVhXNElmZFBkNFZGNFlhWmk0Z2QzVnJBcTBoNWY1SWtXblM4SFdma0dSVkRGcEVUR2VONUtmbjNLZmw5QTM1aWhuOGhjSFdhNHB4V3EzVjAxdGNrNDluV1o4VzVNa3FWV3hWWXJzcTdESGdiZ0ViV01Sc2xBRHhGZ1hlbjVGZU4vTEdTTjdsNkU0bWZtdUhmVmZWYUJTNk1NU0tFY0ZEUnVTMk1xaHN5WTN5UktkZXE4aTRsdGs1aE5PdE5zVFExM0pLbU9DZXJhOGNZMFNtTVVyeVo5cXZVdU1sVVZ4UDRKWURYekxycVdqMVNyOWZuSy9BaFUrNzAwMFN5bFJLN09pZm9jSzJSSHc0RkY1RXFoS29hY3F6VmpsSnlpZlY0QmgyQis1VDhMcGs4TG92NHBhWlZQQU52clNyWEcrVGZWZVNGU1pJOEtvdFlqRHFLK0NaVnJ2ZURCb2FpN2FyY0NpUm5GcDMzb1ZJMVEwNlM1T0R1S1J3REdhRXFmeDFqUEw3WmJCNDJTUHpNOE8wU2RONFpTRmVaY2x0S1htOW16MDJTNU9CQjduczIwV2cwRGpmeWpveE9xbkgxb003YWRud216SlpoaktvWnNnSG5XNFpsTGs4NjZhU0IzZzQ3d3hiNlFORWRkOS9DY2xQdVRDbWZBL0NVNElWNytrTEpYK1YyNHJsckp0cE84dnRGOTRPaFVDVkRKbmxORGp2alZyVmFyV01HaWFGQnZseUc5Y2hLN0RSeW1hcXVUeUZYeFJpUEgrUytuQkJVdVQ0MUxkcVFacjFTMCsycDZkS2krMFB1Vk1XUUc0M0c0YWJjbkV1N3lEc0dyYlZRNExqaXR1NGE0ZnNOZUdlcjFVb0d1US9uUVVoNWkva1plcVdSRXB0VjVZVkY5NHRjcVlvaDI0Qmp4dnRKOUU0alB6dElISk1rMGU0UXdaQTZKbGNxK1ZzQXJ4T1IyaUJ0ZHg1T3E5VTZ1ck02cDNnamN1MHBMQi9wL2w0RlF5YmxBM2svSEtxOGY5QzNTeFY1WVk3dFcyK2RNOGQrckNMbnpvb2owUXRFeVp1S054L1hGTS9DWFVYM2o5eW9naUVQWTBJbE5kMXRocThQR3M5NnZUN2ZqR3V5YVJQWG1ISXp5UnNBbkZHcjFSWU0yajVuL3dBNHpoUkxpelllMTVTNnU3dUJaUFFvdXlFRGVMd1M5dzJqYmFucHhpeGlPalkyZGlqSkwzWXJvZlVXSDJKRnFycGJWYjhFNE9Rd0d4ZkhGd3lCTDVUQWRGeFRQNmZiUmRwdkw3cWY1RUxaRFhuSUV5dXJ5R01mbTFWczIrMzJDYWwxMXE4cXNXWGZuWXM3ckxPTWI3T3FmRnhFVHN6cStrNS9kRGNjRlc0OHJta0UvS0xvZnBJTFpUZmtsTHgrV0cxTFRUZUt5TE95am5HOVhwK3ZNZjZocWx5YkVqODA1YzFHK2JrWi9oSEFYMmI1UzhBWm1MbXEzT2NXZkZlcHRMUG9qcElMNVRkay9IS1lpUWJ3dWp6ajdaUWJZTkdSQkZhVXdIQmMwMGhWMTQva2J0T3lHektKVzRlYWJPQnRlY2JiS1RjeHhrVlZMeGcxUzdSMkpDZTV5MjdJWnZxam9TWWFlRTJlOFhiS1RZenhxR0d0SjNjTnBNMWhGQ2U4eTI3SUJENDl4Q1N2QlhCcW52RjJwbVVPZ0FhQWQ2cnF2NmFHVzh6MHR0VHdIMGI1Q0lEbkR1R3RhSjRTK2V3SWRXVW1WYTdNdVI4VVE5a05HY0JMcGxxaGtMVlM0ekkvcm42NE5CcU5Rd0E4bDhRM1RMbGRpWFhUNUdpakV1dU11SE14bVVuNTFIMlJtdDVldE9HNHBoZUJyK1NWLzBJcHV5RzNXcTFqaGppbXR5SFBXRHNkNnZYNm8xWGtwYXE4VVlsMWZlM0NKSllaK2RteHNiRkRzMjZma2UvcExrY3MzSGhjRDVjU1cyS016ODQ2NzZXZzdJWWNRZ2lxdkQvdmRxWEdIYVI4SUs4NHozWmFyZFl4cEZ5a3l0OTE2bkFNUGl4QXlLN3VuNjZaamlXMldxMWtXSnVSWFAwcHkzeVhpaW9ZY296eDJmM3NldXRKeG50OHVDSmJraVJSSTkrbnhBcFRMTS96clRQckRUV204cHVpVGNmMWNDbXhVMVgvVjVhNUxoVlZNT1FRUWxEbGpUbTJhNk1CWDhzanZyT011VUR5WkJLZjdteXV3UEloMW9sZWZjSUpKeHllMVkySXlDazI3Q1dYcnYxS2lWMVo1YmlVVk1XUVJXU3hVZTdJS2NucjhvanRiS0M3Qy9GNVNuN1RsTnU2UjBVVjlNQWkwd0xtcEZ4bVJMNS9tYmxtTG1JWnlWZGxtZVBTVVJWRERpRUVNenNoanpabEhkTlJCMWgwcElxY2E2by9VbUxkZmxaR0RFMnEzRXJLWlZuZXE2cCszcmRTbDBPcWNsYVd1UzBsVlRKa1lOR1JyVllyeVdyVlJXcTZWSTQ2NnBFaGhBTXlEdXZJMFd3Mnh3MTRZMnA2TzRFVlpWMnJxOFNLUnFPUjJkQkZDQ0VZK1VVMzVlSkV5RG9EWGlNaWttVmVTMG1WREhrUzFmWkpxV25ma3k2cTNKcWFyZ1lXSFpsVkhFY1JzcFdTOG41VnJqUmlXUldXZ25YZmtqTmZMU01pcnpCbFNRK3pIV1hwNzREMm03UE9aMm1wb2lHSEVJSW15UjkwS3NIcDNUTytOckdyODhEeTRwRXNUREk0Y3dFOHhReWZTVTIzRzFISm1nNnEvSFVld1NINUhGUGVScFJqaUdhMGhhV212RHRWUFRlUFhKYVdxaHJ5SkdUN09TbjVmVk91VFUyWDd1TlB5dzNkNUs1VnhTVmhGUGUvRDBDOVhwOVB4dE5WNVZ1ZDJCVTVLWmVaVmlWSjhxaThZaVlpcHhseHA2bitQMU91SHNhSk5pTXZZb2RDbHFlbUQ1anEzU1QvUEsvOGxacXFHL0lralViakVCRTUwUXpuSy9CdW8zeUFJbThYa1Q4V2tZbXNyMWRsWW94SEFYaTVHWDdTOTA2NU1vdFlKaUtMODQ0ak9YR3N4dmgwQUs5UjRHOEF1ZHpWdTh6NFhqSytsakUrTzBtU3NienpWbXBHeFpDZDZRSFFVT0ROUnR6WjNTazNsUG9nQlJueUdzWjRldEV4ZDV5ZWNVTWVYUUFjQjhqbHFlbHFVeXczb3ZTVGNwbjBNZVY2QUdjV0hYL0g2UmszNUpGaW5vZzhOYVY4TGpYdVVNaXNyT3ViR3RjQWVFclJ5WENjbm5GRHJqYTFXbTBCZ0RNSWZLYzdEREVLazNLRDlUSGxTaEdwRlowYngra1pOK1Rxa1NUSm1BSG5LM21US2RlTzNLVGNnRXFObTRKdjluR3FpQnR5TlFEUUlQbFdKWmNvc1dLa0orVUc3V09xLzF4MHZoeW5MOXlReTB1bm9CS3ZNT1hxVGtIMjJURXBONGhTMDFVR3ZLVG8zRGxPWDdnaGw0cDVHdVBUVmZWYVUrNzB3emI3RUxHajZDUTZUdCs0SVJmTHdvVUxId0hnVEpJM0tMR2xzMFN0Qk1aV1FTbXhJZ1hPS0Rxbmp0TTNic2pEcDlWcUhhMHFyMURsejh5NHhwUWJpamF6eW92WVljQzNpODZ0NHd6RUtCbXlpTlJVNUU4WTQyc1Z1SVRrbndONGJxdlZPaWFQNi9WQ2pMR3B3Q1dxdkVzaHkzMVNMdU4rcGR4YVFGcm5kVGJmNEZReW51ZnFUd3E4VzBST2lUR2lnQnlXaTZvYmNxdlZTa2hlYjhxTjFsbUQrNUMzemRTNEpqVmRhc29OcXJoOG1PWmNyOWNmbmFiOG1CTHJVcU5QeXVYUm40aWRLZkhMWnJONTJMRHlDdUE0ZzN4TmlTMUszRWRnWGJlbzFVNVhYOXF1bExWSzNLZks5VXArYzlhYWMxVU51ZFZxSFVQZ0M5WmJqZHB0cHJ3N3Bid2g3L0tiWm5pbmtjdTYxeXpjdUVaVUcxVDFrM25tY1UrU0pLa3JlWk1xVjViZzNrZGJ4TEtVK0VZSVljNnc4bHNLcW1qSUFCcEtMdW43QUUxaTB4N0h4MmVhOEVhamNZZ3E3ekppVStHZGVrU1ZHamVaY2pQSloyU1p1K2t3eEhkMlRzOHUvdjVubFlnZFpMeDRXSGt1bkNvWmNvenhxUEh4OFNOTW1kbEtoRXN2dlhSdVZyRk0wN1JWbHZQbFJrMUtiT25VNXRCVkZMa2dxNXpOQktQOFBNcys1K3BaRHdCNHdUQnpYaGpWTXVUbTB6SnZrK25kNUxHUHpTS1d2bTQ0NDc2aVhKOGExNWpwZjZuS0sxdXQxdEZaNUtrWFNMbkFsS1U4UDNDVzZRRlYrZnl3OHo5MHFtTElNY2FucWZMWHViVEw5TjhHamFPZkdwR1pWcGx5czVMZlZaV3p4c2JHRGgwME4vMUNrY3ZNejlFcmt6YkVHQmNWMVIrR1FsVU1XWlUzNXRZbVlvdXF2S0xmR0ZMa0RUNW1QSWl3WElsZFpyaU9iRDhqbE9DWXJiR3hzVVBUemhyeEVzVEh0WWUyaDFHZTZLdUNJWk44V1dyTSs4RE56YUdQQ21IMWV2M1JRMmpiYUluWVljWmxxWEdOa1ZjTTQ3aWxYaUZ4ZGVGeGN1MUwyd3o0V3RIOUl6ZXFZTWltdURmdmRuVk9XZVo3ZW8wZkdjOHo1ZllTZE5SU3E3dG1kNFdxM21YQTI4cDh6cUdJMUV6Vmh5cEtxdFIwNmZqNCtCRkY5NU5jS0xzaGt4UEhxdkwrWWJXdjEvajVqcnRwdGNHTWExVDVNMVY1UlZVT3NGU1JsNXIva2kydGxGaEg4cnlpKzBrdWxONlFZM3laRWtPWjVWYmx5bDVNSTBtU01mcmExSWNvTlYydHhCYVNOd0E0YytIQ2hZL29yMmNXaDVML1dYUWNYZE5MbGQ4dHVwL2tRdGtOdVZ1S2NsaUpYdHVkVkpvUkFFNzFpWjlPVG8zWW9TcWZqekUrTFpSZ1VtNFFpbzZuYXdaOVRybSs2SDZTQzJVMzVKVDQ2YkRhUnNndUE4NmZhZHZJK05xK2R3dFdXY1FPSTVhWmNqV0pENDlTOWI3eDhmRWpmR3QwK1RXeXgzU1YzWkJKM0RyVVpBTnZtMm5iakh4SDBSMXphSG1ibkpRamw1QjhLNEJHWHgydTVNUVlGNWxpYWRIeGR1MVhhMnUxMm9LaSswdm1sTjJRaC9tR2JNcmRLdkw2bWJhTjVGK1ZvR1BtRnd2bGVsV3VKZkZUQUMrdnlxVGNJRXhNVEN6MFpZeVYwTVlRd29GRjk1Zk1LYnNoRzNEZEVKTzhvWmM5ODBEN0hPdVUvU3k2YzJhcFZhcmNhb1p2ayswL0dzbTNrR21vMSt2emRZalBnNnRQRVp1SzdpdTVVSFpEQnVLcmgxVkhXSlgzYTVMWVROdVdKSWwyYXkwWDMwRUh6RWxxM0pGU1BpY2lUdzBoWkZad3FZcVlGeElxdlZUMXhxTDdTUzZVM1pDVEpHa05xK3loRWx0Q2oyWmtWU3c4USt3d3hmTFVkQlVnbDQvU3BGd1dESGxsajZ0MzdSelprcHhsTitRUXdyeWgxWW13M3Jka211bjNTdEJCOXg5M1lvc3FWNmJHT3dDOGladzR0dGQ3blMwQXlUTjlZcSs4VW5KSmpQR0pSZmVUWEtpQUlRZFMzbTQ1ajlVcXVRVEFVM3FOSDlsS2xiaXY2RTY2NzN2Q09pWFhtdUVuSkY4R0xEcXkxL3VicmZoeFcrVlZhbnA3MGYwak42cGd5Q0dFa0JwemUwQUkyVVhnQy8zRzBBeGZLODk2WkYybHlxMnEraTB5bmw2djErZjNlMSt6R1lwY3BNaS9ob3FyTjZYR1phbzY0M21leWxFVlF3YncrTHdXN0tlR1d3WThWSEd1RlhwMkhwYWJjaHVKVHdQSms4TXNuNVRMQ2lWL29NVE9vazNJMVpFcXR4cHhkZEg5SWxlcVlzZ2hoS0F4L21IbWJTS1c5Ykt5WWlwaWpNY1BhOFZGYXR4aHhESWxWbERrZlZtMDM5azNxZkdlb28zSTFaRXFmMWQwZjhpZEtoa3ltODIyQWhjUzJaMWJKeUsxckdLcEt1Zm1GamRpTTRFVnFlbnRCcnl4Mld5T1o5VnVaM3AwQ09WZlhWTXJOZDFOOHZ0SmttalJmU0YzcW1USWt3RHhuWVRjT1ZCYlRHOWpxNVZtWFZlMVhxL1B6KzZnVTEydnhEcFYzcWdpNS9xa1hERUFhQkQ0WVdwYTRMRFVyTlVHSlg5VmRCOFlHbFUwNUJCQ0lPVU5xZWtHVTI3b3NRMnJsUHpQUE5mZTFtcTFCV1o2VzU5MW5GZWxwdHRUOG5vVE9hM1JhQnlTVnp1ZDNraUpyL2lwNHNOUmFycGJsU3NOK0plaTh6NVVxbXJJazVEeUFTVjJkYzF2cWdtWXphcGNyOFI5SnZLc3JLNjlQMVRrRmQyekFOZE9WY2crTmU1SVRWZDNWMFo4a2t5ZUZFYjV6TENLTXo0K2ZvU1MzN1RPZkVIMU5nV1ZYSjFmZUxqWFRQOXJOdFJPZVJoVk4rUkp5T1J4cEx5RnhEZFN3eThNdU1WTWYyVGtOUlM1b01oQzZVbVNQQXJBR1NubFk2bmhQd3k0eFNnL1RvbHZBUEdkclZicm1LTGE1dlRIeE1URVFoRTV4UXhmVG9sZmRpcmh1ZnBSYXJyVWdGc011RTVWWDlwb05CNVRkSDRMWTFRTTJYRWNwL0s0SVR1TzQ1UUVOMlRIY1p5UzRJYnNPSTVURXR5UUhjZHhTb0lic3VNNFRrbHdRM1ljeHlrSmJzaU80emdsd1EzWmNSeW5KTGdoTzQ3amxJUmhHN0lwVnh2d0FoRlo3SEs1WEpva05qRXhzVENFY0dEUmZsZzRRMzlESm5hWjZlck9LUmN1bDJ1Mkt6VXU2NTRzdjhGVXZxY2lydzhoSEZDME54WkNBVy9JTHBmTE5iVTZwOHh2QnRxdkM3UHRPREkzWkpmTFZVWXBzVldKTFNHRWVVWDc1TkJ3UTNhNVhDWFhkaEY1Wk5GZU9SVGNrRjB1VjltbHhDNmcvZUtpL1RKMzNKQmRMbGNWcE1xVml4Y3ZQcnBvejh3Vk4yU1h5MVVWS2ZuYm9qMHpWOXlRWFM1WFpVUnNJbmwyMGI2Wkc3VmFiVUdxOUpOMFhTNVhKYVRLbFVYN1ptN1VhclVGcVhGVDBVRjJ1Vnl1bVNnMXJoR1JFNHYyemx6b0RsbHNLenJJTHBmTE5WT3A2aWVMOXM1Y3FOVnFDNVRZVlhTQVhTNlhhNlpLamN1SzlzNWM2TDRoRng1Z2w4dmw2a0U3aS9iT1hGaTBhTkdSSlFpdXkrVnl6VnpFbWxxdHRxQm8vOHdja3UzQ2crdHl1Vnc5U0pYcmt5UTV1R2oveklONVJRZlg1WEs1ZXBFU3U0bzJ6dHd3NWM2aUEreHl1Vnd6MVVqdjJGUHl0MFVIMk9WeXVXWXFVcTRvMmpkemc0d1htNzhsdTF5dWF1aUJHT01UaS9iTjNMajAwa3ZubGlESUxwZkx0VitwOHE2aVBUTjNGUEZOUlFmYTVYSzVwcE1xMThjWWp5L2FMNGRDMGNGMnVWeXVhV1gybWFKOWNxZ1VIbkNYeStYYXAzQnYwZjQ0ZEh3ODJlVnlsVkFiVk5XSzlzZENVSkd6ekZkZHVGeXVncFdhN2pibDdoREMzS0o5c1hCTWVWdlJDWEc1WExOV3EweTVyV2dmTEJVcThpZXBjWWNTL3Nic2NybnlsL0VlVTI0emtXY1Y3WCtsUlVWZXFlUk5xZW4ydlFQWXJhZTh6WlFickhNK244dmxjczFJU3F4VDVWWlQzSnVTZnk4aXA0UVE1aFR0ZVpXaTJXd2V0bWpSb2lQcjlmcDhsOHZsNmtlMVdtMUJvOUU0SlBnWXNlTTRqdU00anVNNGp1TTRqdU00anVNNGp1TTRqdU00anVNNGp1TTRqdE9sMVdvZDAyZzBEdS8zNTVNa3FZZDliQkJvdFZySDdGVVRkMTZqMFRoOFVtR3ZOYTFrKzQvMitMemZVNi9YNXdPTGp1eTNmWTdqT0ZWZ0xza2JUTGxSbFZ0RjVQbjlmSWdDRjQ2TmpSMjY5OWVCNUprS1hEajU3M2E3ZllMdHNYT1VuRGgyeis4bjhJVVF3b0VLdks3ejh6ZzFoQkNTSkZFUk9hMmZ0am1PNDFRQ0FJMUpZd1FXSFZtcjFSYUl5UFBKZURZcEgrMXVqUTBpVWxQZ2c2VDg5eVJKRGc0aHpGSGdRZ0tmRUpHbmlzZ2ZoeEFPWXJQWkJ1UnlCZjY2MFdnY1BwVWhkejhqaE5BeFcwQ3VVcEUvVTVYUGh4RG1BSGdKMlg2T1VYNnV3THRpakUwZ2VYSzN6UzhtNVNOQSs1enV2NThySXM4bmNEVVp6eDVxQUIzSEtUZk5abk1jUUtQWmJCNDJ4YmNjUk1aWDFldjErVmxldDJPcTAxNTNYeHhBNHBkSy9vcHNQeWVFRUFDNUNvZ3ZUNUxrWUNXL21TVEpvMVRsMmlSSnhnQ2Nxc0FsWkh5UkFtOEtJUnc0TmpaMktJRlBqSTJOSFJwalBHcHNiT3hRRVhrV0VOODQ1UnN5OERWVitWSUlJWmpLLzI0Mm00ZHB1MzBTaWUrRUVPYW95clVoaEdEQWRaMTdhejlEUmY0TVNKNUp5bnRENXhmQ2gyS01UNkRJWmFSY0ZFS1laOERYczQ2cjR6Z1ZScFhyVGJtYkltL2YxLytQTVQ3QmxMc24zejVud0R5Z0dXZHczYTJkdDExNXkrVFhGaTVjK0loV3EzWE1kRC9YYkRZUFUrQnZWTGxWWTN3ZUlGZkZHQmVGRUFKRjN0NXByL3dHa010SnVaS1VEM1QrKytCd3c2UWhBOG1UU1hrdktWZVE4cDZwREptTXJ5TGplYlZhYmNHaytZWVFnZ0gvR0tZeFpBVXVtVHpGdUd2T0YxSGtzbmE3emM3M3laV3RWdXZvR2NiVmNaeFJaMytHSEVLWUMrRE1FTUlCTS9rOE1ua1N5UnRtY04ySEdUSkZMaURseXFrLys5akhrc25qUWdnSHF2SmZTWGtISUZlMTIrMFRRZ2lCd05WSmtyUlU1VnNQdVJid0xtMjNUL3I5NTNRTnVmdDk4MktNVDV6T2tDY21KaFoySi9VT1VNby9oUkJDbzlFNGhPVDFZVHBERm5tbGlwelYrVnI4VXhVNWx5S1h0VnF0cFBNMU4yVEhjZlpnQm9ZOHI5Rm9QQ2JzWmNneFJwRHRaMmlTV0FoaFh2ZkxjenB2bS94K285RjRUUGZuRHByaXVuc2I4b0Vrcnlmd2lUMSs5aUVySVRSSnpJZzFTdXdpY2F1SVRBQnlsYXA4dkR0bS9IY2hoRURHOHd5NGpwUXJHZVBwU1pMVVNYNVZnUStLeUdtL04yVGdVeFI1bndJZm9zaGxNNW5VSStVZEJLNVc0RzlKK1Z6WXc1Qkovb01DbDA0YThzS0ZDeCtoS3ArbnlQc011SzVXcXkxd1EzWWNaMHIyWjhoSmtyUk11YnRydkNIR3VNaUFuNmh5cXdMTHV6V3JIeGdmSHorQzVGZVYyTm45Mm5aVGJnZndsQ211K3hCREpuR3JFcnU2Qnhac04rWDJLY2FYNXlSSjhxakpmd0J5VlpJa1l5THl5TDNhZmZCZUt5bm03djA5SVlTd3I2L3RqKzduN3F1czQ1eDlyTjU0U0hzZHgzR21wRmREVnBXUG04cjNKbzJzMld3ZXhoaFBmL0R6NHYvb2Q4aENWZjdQZEVNVysyTFNrSHY1R2NkeG5GTFNxeUdUL0dKM01tdUt6eHV1SVljUURneCtDb1RqT0tOQXI0WU00R1FsTml2NVhZM3hlV0d2UDkwTE1HVEhjWnpSb0ZkRERpRUVvQmtWK0pRU1c3cVRhNmM5K0hsdXlJN2pPSDNSanlGUE1qRXhzVkNCVDVseWU1SWsydms4TjJUSGNTM0hobEFBQUFEWlNVUkJWSnkrbURSa0JUNElvTEduUWdnSFRtZklYZWFZOGdFQTU0Y1FBaWxYS1BtREdWejM0ZXVRaWUrUThyRXM3c3R4SEtkeVRCcnl2aVFpOHZCSnZYaGVkL2ZaZ1NHRUE4aDRkbmQ1MitORENBSEFYNXB5WTNjMzJ0dzk2MERzZGQxOUdMSjh6QlMzZDFkTkhCUWVYTi9zT0k0eit2UnV5UEplVlc3dHJqZmVhY3JWazlYT1FnZ2hTWkpIbWNxUFRMbmJpQjFUVlQzYmx5RW5TZEpTY3Nua1p6ZWJ6Zkg4SStBNGpsTmhHbzNHSWExV0swbVNwQlgydmFWNmpvaE03Szh1eFJUTVk3UFo5aDFzanVNNGp1TTRqdU00czQzL0Q3QkVmWVRvK2FpOUFBQUFBRWxGVGtTdVFtQ0MiIGFsdD0iTElTRSBMb2dvIiAvPg0KICAgIHskbW9kLT5Nb2RMYW5nKCdoZWxwX2dlbmVyYWwnKX0NCiAgPC9kaXY+ICAgIA0KICA8ZGl2IGlkPSJkdXBsaWNhdGluZ19jIj4NCiAgICB7aW5jbHVkZSBmaWxlPSdtb2R1bGVfZmlsZV90cGw6TElTRTtoZWxwX25ld19pbnN0YW5jZXNfdGFiLnRwbCd9DQogIDwvZGl2Pg0KICA8ZGl2IGlkPSJtb2Rlc19jIj4NCiAgICB7aW5jbHVkZSBmaWxlPSdtb2R1bGVfZmlsZV90cGw6TElTRTtoZWxwX21vZGVzX3RhYi50cGwnfQ0KICA8L2Rpdj4NCiAgPGRpdiBpZD0iZmllbGRfYyI+DQogICAge2luY2x1ZGUgZmlsZT0nbW9kdWxlX2ZpbGVfdHBsOkxJU0U7aGVscF9maWVsZGRlZnNfdGFiLnRwbCd9DQogIDwvZGl2Pg0KICB7aWYgTElTRVNtYXJ0eTo6TEkyX3ByZXNlbnQoKX0gIA0KICAgIDxkaXYgaWQ9ImltcG9ydGluZ19jIj4gIA0KICAgICAgICA8ZGl2IGNsYXNzPSJwYWdld2FybmluZyI+eyRtb2QtPk1vZExhbmcoJ2ltcG9ydGluZ193YXJuaW5nJyl9PC9kaXY+DQogICAgPGZpZWxkc2V0Pg0KICAgICAgPGxlZ2VuZD57JG1vZC0+TW9kTGFuZygnaW1wb3J0aW5nX2Zyb21fbGkyJyl9PC9sZWdlbmQ+DQogICAgICB7JG1vZC0+TW9kTGFuZygnaGVscF9pbXBvcnRpbmdfZnJvbV9saTInKX0NCiAgICA8L2ZpZWxkc2V0Pg0KICAgIDwvZGl2Pg0KICB7L2lmfQ0KICA8ZGl2IGlkPSJzbWFydHlfcGx1Z2luc19jIj4NCiAgICA8ZmllbGRzZXQ+DQogICAgICA8bGVnZW5kPntsaXRlcmFsfXtMSVNFTG9hZGVyfXsvbGl0ZXJhbH08L2xlZ2VuZD4NCiAgICAgIHskbW9kLT5Nb2RMYW5nKCdoZWxwX3NtYXJ0eV9wbHVnaW5zJyl9DQogICAgPC9maWVsZHNldD4NCiAgPC9kaXY+DQogIDxkaXYgaWQ9ImRldmVsb3BlcnNfYyI+DQogICAge2luY2x1ZGUgZmlsZT0nbW9kdWxlX2ZpbGVfdHBsOkxJU0U7aGVscF9kZXZlbG9wZXJzX3RhYi50cGwnfQ0KICA8L2Rpdj4NCiAgPGRpdiBpZD0id2hhdHNuZXdfYyI+DQogICAge2luY2x1ZGUgZmlsZT0nbW9kdWxlX2ZpbGVfdHBsOkxJU0U7aGVscF93aGF0c19uZXdfdGFiLnRwbCd9DQogIDwvZGl2Pg0KCTxkaXYgaWQ9ImNvbnRyaWJ1dGVfYyI+DQoJCXtpbmNsdWRlIGZpbGU9J21vZHVsZV9maWxlX3RwbDpMSVNFO2hlbHBfY29udHJpYnV0ZV90YWIudHBsJ30NCgk8L2Rpdj4NCgk8ZGl2IGlkPSJhYm91dF9jIj4NCiAgICB7aW5jbHVkZSBmaWxlPSdtb2R1bGVfZmlsZV90cGw6TElTRTtoZWxwX2Fib3V0X3RhYi50cGwnfQ0KCTwvZGl2Pg0KICA8ZGl2IGNsYXNzPSJjbGVhcmIiPjwvZGl2Pg0KPC9kaXY+DQp7L3N0cmlwfQ==]]></data>
	</file>
	<file>
	  <filename>/templates/help_about.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[eyogdG8gYmUgcmVtb3ZlZCAqfQ==]]></data>
	</file>
	<file>
	  <filename>/templates/help_about_tab.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4NCg0KCQkJPGgzPkFib3V0IHRoaXMgbW9kdWxlPC9oMz4NCiAgICAgIDxwPk9yaWdpbiBvZiB0aGlzIG1vZHVsZSBjb21lcyBmcm9tIDxzdHJvbmc+TGlzdEl0IE1vZHVsZTwvc3Ryb25nPiBkZXZlbG9wZWQgYnkgPHN0cm9uZz5CZW4gTWFsZW48L3N0cm9uZz4uPGJyIC8+QXMgdGhlcmUgd2VyZSBubyBwbGFucyBvbiBmdXJ0aGVyIGRldmVsb3BtZW50IG9mIHRoZSBtb2R1bGUgc29tZSBwZW9wbGUgZGVjaWRlZCB0byBmb3JrIHRoZSBtb2R1bGUgYW5kIGNvbnRpbnVlIHdpdGggZGV2ZWxvcG1lbnQuPGJyIC8+DQoJCQlUaGlzIGlzIGEgdGhpcmQgZ2VuZXJhdGlvbiBmb3JrIG9mIHRoZSBtb2R1bGUgYW5kIHRoZXJlIGFyZSBvdGhlcnMuIENvbnNpZGVyIHRoaXMgYXMgYW5vdGhlciBmbGF2b3VyIG9mIHRoZSBvcmlnaW5hbCBtb2R1bGUuPGJyIC8+DQoJCQlJZiB5b3UgZmluZCBhbnkgYnVncyBwbGVhc2UgZmVlbCBmcmVlIHRvIHN1Ym1pdCBhIGJ1ZyByZXBvcnQgPGEgaHJlZj0iaHR0cDovL2Rldi5jbXNtYWRlc2ltcGxlLm9yZy9idWcvbGlzdC8xMzQ1IiB0YXJnZXQ9Il9ibGFuayI+aGVyZTwvYT4gb3IgZm9yIGFueSBnb29kIGlkZWFzIGNvbnNpZGVyIHN1Ym1pdGluZyBhIGZlYXR1cmUgcmVxdWVzdCA8YSBocmVmPSJodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnL2ZlYXR1cmVfcmVxdWVzdC9saXN0LzEzNDUiIHRhcmdldD0iX2JsYW5rIj5oZXJlPC9hPi48L3A+DQoJCQk8cD5QbGVhc2Uga2VlcCBpbiBtaW5kIHRoYXQgZGV2ZWxvcGVycyBkbyBoYXZlIHRoZWlyIGRhaWx5IGpvYnMgd2hpY2ggbWVhbnMgdGhhdCBmZWF0dXJlIHJlcXVlc3RzIGFyZSBjb25zaWRlcmVkIGFuZCBkb25lIGFzIHRpbWUgYWxsb3dzLiBJZiB5b3UgbmVlZCBhIGZlYXR1cmUgcmVhbGx5IGJhZGx5IGNvbnNpZGVyIGNvbnRhY3Rpbmcgb25lIG9mIHRoZSBkZXZlbG9wZXJzIGZvciBhIHNwb25zb3JlZCBkZXZlbG9wbWVudC4NCgkJCTwvcD4NCg0KICAgICAgPGgzPlN1cHBvcnQ8L2gzPg0KICAgICAgPHA+QXMgcGVyIHRoZSBHUEwsIHRoaXMgc29mdHdhcmUgaXMgcHJvdmlkZWQgYXMtaXMuIFBsZWFzZSByZWFkIHRoZSB0ZXh0IG9mIHRoZSBsaWNlbnNlIGZvciB0aGUgZnVsbCBkaXNjbGFpbWVyLjwvcD4NCiAgICAgIDxwPlRoZSBtb2R1bGUgYXV0aG9yIGlzIGluIG5vIHdheSBvYmxpZ2F0ZWQgdG8gcHJvdmlkZSBzdXBwb3J0IGZvciB0aGlzIGNvZGUgaW4gYW55IGZhc2hpb24uIEhvd2V2ZXIsIHRoZXJlIGFyZSBhIG51bWJlciBvZiByZXNvdXJjZXMgYXZhaWxhYmxlIHRvIGhlbHAgeW91IHdpdGggaXRzIHVzZToNCiAgICAgICAgPHVsPg0KICAgICAgICAgIDxsaT4NCiAgICAgICAgICAgIElmIHlvdSBmaW5kIGFueSBidWdzIHBsZWFzZSBmZWVsIGZyZWUgdG8gc3VibWl0IGEgYnVnIHJlcG9ydCA8YSBocmVmPSJodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnL2J1Zy9saXN0LzEzNDUiIHRhcmdldD0iX2JsYW5rIj5oZXJlPC9hPiBvciBmb3IgYW55IGdvb2QgaWRlYXMgY29uc2lkZXIgc3VibWl0aW5nIGEgZmVhdHVyZSByZXF1ZXN0IDxhIGhyZWY9Imh0dHA6Ly9kZXYuY21zbWFkZXNpbXBsZS5vcmcvZmVhdHVyZV9yZXF1ZXN0L2xpc3QvMTM0NSIgdGFyZ2V0PSJfYmxhbmsiPmhlcmU8L2E+Ow0KICAgICAgICAgIDwvbGk+DQogICAgICAgICAgPGxpPg0KICAgICAgICAgICAgQWRkaXRpb25hbCBkaXNjdXNzaW9uIG9mIHRoaXMgbW9kdWxlIG1heSBhbHNvIGJlIGZvdW5kIGluIHRoZSA8YSBocmVmPSJodHRwOi8vZm9ydW0uY21zbWFkZXNpbXBsZS5vcmciPkNNUyBNYWRlIFNpbXBsZSBGb3J1bXM8L2E+LiAgV2hlbiBkZXNjcmliaW5nIGFuIGlzc3VlIHBsZWFzZSBtYWtlIGFuIGVmZm9ydCB0byBwcm92aWRlIGFsbCByZWxldmFudCBpbmZvcm1hdGlvbiwgYSB0aG9yb3VnaCBkZXNjcmlwdGlvbiBvZiB5b3VyIGlzc3VlLCBhbmQgc3RlcHMgdG8gcmVwcm9kdWNlIGl0IG9yIHlvdXIgZGlzY3Vzc2lvbiBtYXkgYmUgaWdub3JlZDsNCiAgICAgICAgICA8L2xpPg0KICAgICAgICA8L3VsPg0KICA8L3A+DQogIDxwPlBsZWFzZSBrZWVwIGluIG1pbmQgdGhhdCBkZXZlbG9wZXJzIGRvIGhhdmUgdGhlaXIgZGFpbHkgam9icyB3aGljaCBtZWFucyB0aGF0IGZlYXR1cmUgcmVxdWVzdHMgYXJlIGNvbnNpZGVyZWQgYW5kIGRvbmUgYXMgdGltZSBhbGxvd3MuIElmIHlvdSBuZWVkIGEgZmVhdHVyZSByZWFsbHkgYmFkbHkgY29uc2lkZXIgY29udGFjdGluZyBvbmUgb2YgdGhlIGRldmVsb3BlcnMgZm9yIGEgc3BvbnNvcmVkIGRldmVsb3BtZW50LjwvcD4NCg0KICAgICAgPHA+SWYgd2FudCB0byBoZWxwIHRoZSBkZXZlbG9wbWVudCBhbmQgbWFpbnRlbmFuY2Ugb2YgdGhpcyBtb2R1bGUsIHBsZWFzZSBjb25zaWRlciA8YSBocmVmPSIiIGlkPSJkb25hdGluZyI+ZG9uYXRpbmc8L2E+LjwvcD4NCg0KICAgICAgPGgzPkNvcHlyaWdodCBhbmQgTGljZW5zZTwvaDM+DQoNCgkJCTxwIGNsYXNzPSJwX2JvdHRvbV8xNSI+VGhlIE1vZHVsZSBpcyBjdXJyZW50bHkgYmVpbmcgZGV2ZWxvcGVkIGJ5PC9wPg0KDQoJCQk8cCBjbGFzcz0icF9ib3R0b21fMTUiPjxzdHJvbmc+RmVybmFuZG8gTW9yZ2FkbyAoSm8gTW9yZyk8L3N0cm9uZz4NCgkJCTxiciAvPg0KCQkJV2ViOiA8YSB0YXJnZXQ9Il9ibGFuayIgaHJlZj0iaHR0cHM6Ly93d3cuc20tYXJ0LWxhYi5jb20iIHJlbD0iZXh0ZXJuYWwiPnd3dy5zbS1hcnQtbGFiLmNvbTwvYT4NCgkJCTxiciAvPg0KCQkJRW1haWw6IDxhIGhyZWY9Im1haWx0bzpqb21vcmdAc20tYXJ0LWxhYi5jb20iPmpvbW9yZ0BzbS1hcnQtbGFiLmNvbTwvYT4NCgkJCTwvcD4NCg0KCQkJPHAgY2xhc3M9InBfYm90dG9tXzE1Ij4uLi4gd2l0aCBhIGh1Z2UgYW1vdW50IG9mIGhlbHAgZnJvbTwvcD4NCgkJCTxwIGNsYXNzPSJwX2JvdHRvbV8xNSI+PHN0cm9uZz5Sb2xmIFRqYXNzZW5zIChSb2xmIFRqKTwvc3Ryb25nPg0KICAgICAgPGJyIC8+DQogICAgICB3aG8ncyBsb3ZlIGFuZCBjb21taXRtZW50IGZvciB0aGUgQ01TTVMgcHJvamVjdCBoYXMgYmVlbiBib3RoIGluc3BpcmF0aW9uYWwgYW5kIHByaWNlbGVzcy4NCgkJCTxiciAvPg0KICAgICAgICBTYWRseSwgbG9uZyB0aW1lIERldiBUZWFtIG1lbWJlciBhbmQgZ3JlYXQgZnJpZW5kIHRvIENNUyBNYWRlIFNpbXBsZSwgUm9sZiBUamFzc2VucyBwYXNzZWQgYXdheSB1bmV4cGVjdGVkbHkgb24gdGhlIDMwdGggb2YgTWF5IDIwMjIuIEZhcmV3ZWxsIFJvbGYsIHdlIHdpbGwgbWlzcyB5b3UuDQoJCQk8YnIgLz4NCgkJCVdlYjogPGEgdGFyZ2V0PSJfYmxhbmsiIGhyZWY9Imh0dHBzOi8vcm9sZnRqYXNzZW5zLmNvbSIgcmVsPSJleHRlcm5hbCI+cm9sZnRqYXNzZW5zLmNvbTwvYT4NCgkJCTxiciAvPg0KCQkJRG9uJ3QgZm9yZ2V0IHRvIGNoZWNrIGhpcyB0aXBzIGFuZCB0cmlja3Mgc2l0ZTogPGEgdGFyZ2V0PSJfYmxhbmsiIGhyZWY9Imh0dHBzOi8vY21zY2FuYmVzaW1wbGUub3JnIiByZWw9ImV4dGVybmFsIj5jbXNjYW5iZXNpbXBsZS5vcmc8L2E+DQoJCQk8YnIgLz4NCgkJCWFuZCBoaXMgQ01TTVMgc2hvd2Nhc2Ugc2l0ZTogPGEgdGFyZ2V0PSJfYmxhbmsiIGhyZWY9Imh0dHBzOi8vd2Vsb3ZlY21zbXMuY29tIiByZWw9ImV4dGVybmFsIj53ZWxvdmVjbXNtcy5jb208L2E+DQoJCQk8L3A+DQoJCQk8aHI+DQogIHtpZiAkc21hcnR5Lm5vd3xkYXRlX2Zvcm1hdDoiJVkiID09ICcyMDE1J317JGNyID0gJzIwMTUnfXtlbHNlfXskY3IgPSAiMjAxNSAtIHskc21hcnR5Lm5vd3xkYXRlX2Zvcm1hdDonJVknfSJ9ey9pZn0NCiAgPHA+Q29weXJpZ2h0ICZjb3B5OyB7JGNyfSAuIEFsbCBSaWdodHMgQXJlIFJlc2VydmVkLjxiciAvPjwvcD4NCiAgICAgIDxocj4NCiAgICAgIDxwPjxzdHJvbmc+TElTRTwvc3Ryb25nPiBpcyBmcmVlIHNvZnR3YXJlOzxiciAvPiB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgPHN0cm9uZz5HTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZTwvc3Ryb25nPiBhcyBwdWJsaXNoZWQgYnkgdGhlIDxzdHJvbmc+RnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uPC9zdHJvbmc+OzxiciAvPiBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLjwvcD4NCiAgICAgIDxwPjxzdHJvbmc+TElTRTwvc3Ryb25nPiBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLCBidXQgPHN0cm9uZz5XSVRIT1VUIEFOWSBXQVJSQU5UWTwvc3Ryb25nPjs8YnIgLz4gd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mIDxzdHJvbmc+TUVSQ0hBTlRBQklMSVRZPC9zdHJvbmc+IG9yIDxzdHJvbmc+RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0U8L3N0cm9uZz4uPC9wPg0KICAgICAgPHA+U2VlIHRoZUdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuPC9wPg0KICAgICAgIDxwPllvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIDxzdHJvbmc+R05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2U8L3N0cm9uZz4gYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07PGJyIC8+IGlmIG5vdCwgd3JpdGUgdG8gdGhlIDxzdHJvbmc+RnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3IFVTQTwvc3Ryb25nPiBvciA8YSB0YXJnZXQ9Il9ibGFuayIgaHJlZj0iaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMIj5yZWFkIGl0IG9ubGluZTwvYT4uPC9wPg0KICAgICAgPHA+PHN0cm9uZz5Zb3UgbXVzdCBhZ3JlZSB0byB0aGlzIGxpY2Vuc2UgYmVmb3JlIHVzaW5nIDxzdHJvbmc+TElTRTwvc3Ryb25nPi48L3N0cm9uZz48L3A+DQogICAgICA8aHI+DQogICAgICA8aDQ+Q29udHJpYnV0b3JzIGFuZCBTcG9uc29yczwvaDQ+DQogICAgICA8dWw+DQogICAgICAgIDxsaT48c3Ryb25nPlJvbGYgVGphc3NlbnM8L3N0cm9uZz48YnIgLz53d3cuY21zY2FuYmVzaW1wbGUub3JnPC9saT4NCiAgICAgICAgPGxpPjxzdHJvbmc+VGFwaW8gTCZvdW1sO3l0dHkgKHN0aWtraSk8L3N0cm9uZz4gdGFwc2FAb3JhbmdlLW1lZGlhLmZpIDxiciAvPnd3dy5vcmFuZ2UtbWVkaWEuZmk8L2xpPg0KICAgICAgICA8bGk+PHN0cm9uZz5Hb3JhbiBJbGljICh1bmlxdTMpPC9zdHJvbmc+IHVuaXF1M2VAZ21haWwuY29tIDxiciAvPnd3dy5pZHQtbWVkaWEuY29tPC9saT4NCiAgICAgICAgPGxpPjxzdHJvbmc+Sm9uYXRoYW4gU2NobWlkIChGb2FseSopPC9zdHJvbmc+PC9saT4NCiAgICAgICAgPGxpPjxzdHJvbmc+Um9iZXJ0IENhbXBiZWxsIChjYWxndXkxMDAwKTwvc3Ryb25nPjxiciAvPnd3dy5jYWxndXkxMDAwLmNvbTwvbGk+DQogICAgICAgIDxsaT48c3Ryb25nPkx1a2FzIEJsYXR0ZXIgKG5vY2tlbmZlbGwpPC9zdHJvbmc+IG5vY2tlbmZlbGxAZ21haWwuY29tIDxiciAvPnd3dy5ibGF0dGVydGVjaC5jaDwvbGk+DQogICAgICAgIDxsaT48c3Ryb25nPkFybm91ZCAoYXJub3VkKTwvc3Ryb25nPjwvbGk+DQogICAgICAgIDxsaT48c3Ryb25nPldheW5lIE9OZWlsICh3aXNoYm9uZSk8L3N0cm9uZz48L2xpPg0KICAgICAgICA8bGk+PHN0cm9uZz5BbGJlcnQgQ2Fuc2Fkbzwvc3Ryb25nPjwvbGk+DQogICAgICAgIDxsaT48c3Ryb25nPkNocmlzIENpYXZhcmVsbGEgKGNhY2lhdmFyKTwvc3Ryb25nPjwvbGk+DQogICAgICAgIDxsaT48c3Ryb25nPkplZmYgQm9zY2ggKGFqcHJvZyk8L3N0cm9uZz4gamVmZkBhanByb2dyYW1taW5nLmNvbTxiciAvPnd3dy5hanByb2dyYW1taW5nLmNvbTwvbGk+DQogICAgICAgIDxsaT48c3Ryb25nPkVkdWFyZG8gTWFydGluZXogKGhFeERKKTwvc3Ryb25nPjwvbGk+DQogICAgICAgIDxsaT48c3Ryb25nPk1hdHQgSG9ybnNieSAoRElHSTMpPC9zdHJvbmc+PGJyIC8+d3d3Lm1hdHRob3Juc2J5LmNhPC9saT4NCiAgICAgICAgPGxpPjxzdHJvbmc+R3JlZ29yeSBQcm9zc2VyIChnZWVwZXJzKTwvc3Ryb25nPjxiciAvPnd3dy5zdGlja3l3aWNrZXRkZXNpZ25zLmNvbTwvbGk+DQogICAgICAgIDxsaT48c3Ryb25nPlR1cm5idWxsUmlwbGV5PC9zdHJvbmc+PGJyIC8+d3d3LnR1cm5idWxscmlwbGV5LmNvLnVrPC9saT4NCiAgICAgICAgPGxpPjxzdHJvbmc+TWFudWVsIFNjaHJveWVuczwvc3Ryb25nPiB3ZWJtYXN0ZXJAd2ViYWhvbGljLmJlPGJyIC8+d2ViYWhvbGljLmJlPC9saT4NCiAgICAgICAgPGxpPjxzdHJvbmc+UGl4ZWwgU29sdXRpb25zPC9zdHJvbmc+PGJyIC8+aHR0cHM6Ly9waXhlbHNvbHV0aW9ucy5iaXo8L2xpPg0KICAgICAgICA8bGk+PHN0cm9uZz5Lb2EnbGluazwvc3Ryb25nPjxiciAvPmh0dHBzOi8vd3d3LmtvYWxpbmsuZnI8L2xpPg0KICAgICAgICA8bGk+PHN0cm9uZz5EYXJyZW4gS2llcm1hbiAoa2llcndlYik8L3N0cm9uZz48YnIgLz5odHRwczovL3d3dy5raWVyd2ViLmNvLnVrLzwvbGk+DQoJCQk8L3VsPg0KCQk8L2Rpdj4=]]></data>
	</file>
	<file>
	  <filename>/templates/help_bottom.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PHNjcmlwdD4KICAkKCBkb2N1bWVudCApLnJlYWR5KGZ1bmN0aW9uKCkKICB7CiAgICB2YXIgYWNjID0gZG9jdW1lbnQuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZSgiYWNjb3JkaW9uIik7CiAgICB2YXIgaTsKCiAgICBmb3IgKGkgPSAwOyBpIDwgYWNjLmxlbmd0aDsgaSsrKQogICAgewogICAgICBhY2NbaV0uYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLCBmdW5jdGlvbigpCiAgICAgIHsKICAgICAgICB0aGlzLmNsYXNzTGlzdC50b2dnbGUoImFjY2FjdGl2ZSIpOwoKICAgICAgICB2YXIgcGFuZWwgPSB0aGlzLm5leHRFbGVtZW50U2libGluZzsKCiAgICAgICAgaWYgKHBhbmVsLnN0eWxlLm1heEhlaWdodCkKICAgICAgICB7CiAgICAgICAgICBwYW5lbC5zdHlsZS5tYXhIZWlnaHQgPSBudWxsOwogICAgICAgIH0KICAgICAgICBlbHNlCiAgICAgICAgewogICAgICAgICAgcGFuZWwuc3R5bGUubWF4SGVpZ2h0ID0gcGFuZWwuc2Nyb2xsSGVpZ2h0ICsgInB4IjsKICAgICAgICB9CiAgICAgIH0gKTsKICAgIH0KICB9ICk7Cjwvc2NyaXB0Pg==]]></data>
	</file>
	<file>
	  <filename>/templates/help_categories.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KCiAgICA8aDM+Q2F0ZWdvcmllczwvaDM+CgogICAgPHA+Q2F0ZWdvcmllcyBhcmUgcGFydCBvZiBGaWVsZCBkZWZpbml0aW9ucyBhbmQgZGlzYWJsZWQgYnkgZGVmYXVsdC48YnIgLz4KICAgIElmIHlvdSBuZWVkIENhdGVnb3JpZXMgd2l0aCB0aGlzIGluc3RhbmNlIHlvdSB3aWxsIGhhdmUgdG8gY3JlYXRlIGEgbmV3IEZpZWxkIGRlZmluaXRpb24gb2YgdHlwZSAiQ2F0ZWdvcnkiLjxiciAvPgogICAgT25jZSBhIEZpZWxkIGRlZmluaXRpb24gd2FzIGNyZWF0ZWQsIGEgbmV3cyB0YWIgbmFtZWQgIkNhdGVnb3JpZXMiIHdpbGwgYmVjb21lIGF2YWlsYWJsZSBpbiBtb2R1bGUgSW5zdGFuY2UuPC9wPgoKICAgIDxwPkNhdGVnb3JpZXMgc3VwcG9ydCBtdWx0aXBsZSBsZXZlbHMgYW5kIGNyZWF0ZWQgSXRlbXMgbWF5IGJlbG9uZyB0byBtdWx0aXBsZSBjYXRlZ29yaWVzLCBkZXBlbmRpbmcgb24geW91ciBzZWxlY3RlZCBvcHRpb25zIHdoaWxlIGNyZWF0aW5nIENhdGVnb3J5IEZpZWxkIGRlZmludGlvbi48L3A+PGJyIC8+CgogICAgPHA+VGhlcmUgYXJlIHR3byBzYW1wbGUgdGVtcGxhdGVzIGluY2x1ZGVkIHRvIGRlbW9uc3RyYXRlIGhvdyBjYXRlZ29yaWVzIHdpdGhpbiBMSVNFIE1vZHVsZSBpbnN0YW5jZSB3b3JrLCB0aGlzIHNob3VsZCBnaXZlIHlvdSBhIHN0YXJ0aW5nIGlkZWEgb24gaG93IHRvIGNyZWF0ZSB5b3VyIHBlcnNvbmFsaXppZWQgYW5kIGN1c3RvbTxiciAvPgogICAgVGVtcGxhdGVzIGZvciB5b3VyIG5leHQgcHJvamVjdC48L3A+CgogICAgPGg0PlVzaW5nIENhdGVnb3JpZXM8L2g0PgoKICAgIDxwPkZvciBkZXRhaWxlZCB1c2FnZSBhbmQgYXZhaWxhYmxlIHBhcmFtZXRlcnMsIGhhdmUgYSBsb29rIGJlbG93IGF0ICJQYXJhbWV0ZXJzIiBIZWxwIHNlY3Rpb248L3A+CgogICAgPHByZT48Y29kZT57bGRlbGltfXskbW9kdWxlX25hbWV9IGFjdGlvbj0nY2F0ZWdvcnknfTwvY29kZT48L3ByZT4KCjwvZGl2Pg==]]></data>
	</file>
	<file>
	  <filename>/templates/help_contribute_tab.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4NCg0KICA8aDM+Q29udHJpYnV0aW9uczwvaDM+DQogIDxwPk9wZW4gU291cmNlIG1vZHVsZSBkZXZlbG9wbWVudCBmb3IgQ01TTVMgaXMgcHJldHR5IG11Y2ggYSB2b2x1bnRlZXIgY29tbWl0bWVudC4gVGhlIGRldmVsb3BlciBjb21taXRzIHRoZSB0aW1lIGhlIGNhbiBzcGFyZSB0byB0aGUgcHJvamVjdHMgaGUgY29uc2lkZXJzIGltcG9ydGFudCB0byB0aGUgZnV0dXJlIG9mIHRoZSBncmVhdGVyIHByb2plY3QgdGhhdCBDTVNNUyBpcy4gU29tZXRpbWVzIHdoYXQgb25lIGJlbGlldmVzIGlzIGltcG9ydGFudCBpcyBub3QgY29udmVyZ2VudCB3aXRoIHdoYXQgdGhlIGNvbW11bml0eSBiZWxpZXZlcyB0byBiZSBpbXBvcnRhbnQuIFNvbWV0aW1lcyBpdCdzIGEgd2FrZXVwIGNhbGwgYW5kIHRoZSBkZXZlbG9wZXIgZW1icmFjZXMgc29tZSBvZiB0aGUgY29tbXVuaXR5J3MgdmlzaW9uLCBzb21ldGltZXMgYm90aCB2aXNpb25zIGFyZSBub3QgY29tcGF0aWJsZS4gSXQncyBhIGJhbGFuY2UgZGlmZmljdWx0IHRvIGFjaGlldmUsIGJ1dCBicmluZ3MgbW9yZSByZXNwb25zaWJpbGl0eSB0byB0aGUgZGV2ZWxvcGVyLiBCdXQgYWxzbyByZXF1aXJlcyBzb21lIGVtcGF0aHkgZnJvbSB0aGUgY29tbXVuaXR5LiBBbmQgdGltZS4uLjwvcD4NCiAgPHA+UGxlYXNlIGtlZXAgaW4gbWluZCB0aGF0IGRldmVsb3BlcnMgZG8gaGF2ZSB0aGVpciBkYWlseSBqb2JzIHdoaWNoIG1lYW5zIHRoYXQgZmVhdHVyZSByZXF1ZXN0cyBhcmUgY29uc2lkZXJlZCBhbmQgZG9uZSBhcyB0aW1lIGFsbG93cy4gSWYgeW91IG5lZWQgYSBmZWF0dXJlIHJlYWxseSBiYWRseSBjb25zaWRlciBjb250YWN0aW5nIG9uZSBvZiB0aGUgZGV2ZWxvcGVycyBmb3IgYSBzcG9uc29yZWQgZGV2ZWxvcG1lbnQuPC9wPg0KICA8cD5Bbm90aGVyIHdheSB0aGF0ICdraWNrcyB0aGUgY2FuJyBmb3J3YXJkIHdoaWxlIG1vdGl2YXRpbmcgdGhlIG1vZHVsZSBkZXZlbG9wZXIgaXMgdG8gc3BvbnNvciBmZWF0dXJlcyB0aGF0IHdlYiBkZXZlbG9wZXJzIHdvdWxkIGxpa2UgdG8gc2VlIGltcGxlbWVudGVkLiBXZWIgZGV2ZWxvcGVycywgbW9yZSBvZnRlbiB0aGF0IG5vdCwga25vdyB3aGF0IHRoZSBmaW5hbCBjbGllbnQgd2FudHMgb3IgbmVlZHMgYW5kIGhlbHAgYnJpZGdpbmcgdGhlIGdhcCBiZXR3ZWVuIHRoZSBmaW5hbCB1c2VyIGFuZCB0aGUgb3JpZ2luYWwgY3JlYXRvciBvZiB0aGUgbW9kdWxlcy4gS2VlcCBpbiBtaW5kIHRoYXQgbW9kdWxlcywgbW9yZSB0aGFuIHRoZSBDTVNNUyBjb3JlLCBhcmUgcGFydGljdWxhcmx5IGFwdCB0byBjb3ZlciBzaXRlcyBzcGVjaWFsIG5lZWRzLCB0aGUgY29yZSBiZWluZyB0aGUgc3VwcG9ydCBhcm91bmQgd2hpY2ggYWxsIHRoaW5ncyBhcmUgcG9zc2libGUuIFNvLCBpZiBzZWUgdGhlIG5lZWQgZm9yIGEgcGFydGljdWxhciBmZWF0dXJlIGluIGFuIGV4aXN0aW5nIG1vZHVsZSwgb3IgYSBiZXNwb2tlIG1vZHVsZSBmb3IgYSBzcGVjaWFsIG5lZWQsIHNlZSBpZiB0aGUgZmluYWwgY3VzdG9tZXIgY2FuIGZpdCBpbiB0aGUgYnVkZ2V0IHRoZSBzcG9uc29yc2hpcCBvZiB0aGF0IHByb2plY3QuIEFzayBhIGRldmVsb3BlciBvciB0aGUgYWN0dWFsIG1vZHVsZSBkZXZlbG9wZXIgaWYgaXRzIGEgbW9kdWxlIGZlYXR1cmUgdGhhdCBpcyByZXF1ZXN0ZWQsIGZvciBhbiBlc3RpbWF0ZSBmb3IgdGhlIGpvYiBhbmQgdHJ5IHRvIG1ha2UgaXQgcG9zc2libGUuIFNvbWV0aW1lcyBpdCBtYXkgYmUgY2hlYXBlciB0aGFuIGl0IGxvb2tzLCBvdGhlciB0aW1lcyBpdCBtYXkgYmUgcG9zc2libGUgdmlhIHNvbWUgc29ydCBvZiBjcm93ZCBmdW5kaW5nLiBXaGVuIGl0IGhhcHBlbnMsIGl0J3MgYSB3aW4td2luIHNpdHVhdGlvbi4gVGhlIGNvbW11bml0eSB3aW5zLCB0aGUgd2ViIGRldmVsb3BlciB3aW5zLCB0aGUgY2xpZW50IHdpbnMsIENNU01TIHdpbnMgYW5kIHRoZSBtb2R1bGUgZGV2ZWxvcGVyIHdpbnMuPC9wPg0KICA8cD5BIGRpZmZlcmVudCB3YXkgdGhhdCBoZWxwcyB0b286IGZvdW5kIGEgYnVnPyBmaWxlIGEgYnVnIHJlcG9ydC4gQnV0IHBsZWFzZSwgYmUgYXMgdGhvcm91Z2ggaW4gdGhlIGRlc2NyaXB0aW9uIG9mIHRoZSBidWcsIHRoZSBjaXJjdW1zdGFuY2VzIGFuZCBlbnZpcm9ubWVudCB3aGVyZSBpdCBoYXBwZW5lZCBhbmQgdGhlIHN0ZXBzIHRvIHJlcHJvZHVjZSBpdDsgaWYgdGhlIGRldmVsb3BlciBjYW4ndCByZXByb2R1Y2UgdGhlIGJ1ZyBpdCB3aWxsIGJlIGRpZmZpY3VsdCwgaWYgbm90IGltcG9zc2libGUsIHRvIGZpeCBpdDogYXMgZmFyIGFzIHRoZSBkZXZlbG9wZXIgaXMgY29uY2VybmVkIGlmIGl0IGNhbm5vdCBiZSByZXByb2R1Y2VkIGl0IGRvZXNuJ3QgZXhpc3QuIEJldHRlciB5ZXQsIGlmIHlvdSBrbm93IGhvdyB0byBmaXggaXQsIHN1Z2dlc3QgdGhlIHBvc3NpYmxlIGZpeC4gSWYgdmFsaWQsIHRoZSBkZXZlbG9wZXIgd2lsbCBzdXJlbHkgaW5jbHVkZSBpdC48L3A+DQoNCiAgPGgzPkhvdyBDYW4gSSBIZWxwPzwvaDM+DQogIDxwPklmIHdhbnQgdG8gaGVscCB0aGUgZGV2ZWxvcG1lbnQgYW5kIG1haW50ZW5hbmNlIG9mIHRoaXMgbW9kdWxlLCBwbGVhc2UgY29uc2lkZXIgZG9uYXRpbmcuPC9wPg0KICA8cD5BbGwgaGVscCBpcyBhcHByZWNpYXRlZCwgbm8gY29udHJpYnV0aW9uIGlzIHRvbyBzbWFsbCEgVGhlIG1vcmUgcGVvcGxlIGNvbnRyaWJ1dGUgdGhlIG1vcmUgdGltZSBjYW4gYmUgYWxsb2NhdGVkIHRvIHRoZSBtYWludGVuYW5jZSBhbmQgZGV2ZWxvcG1lbnQgb2YgdGhlIG1vZHVsZS4gVGhpcyBhbHNvIGVucmljaGVzIENNUyBNYWRlIFNpbXBsZS48L3A+DQoNCiAgPGg0PlBheVBhbDwvaDQ+DQogIDxwPllvdSBjYW4gY29udHJpYnV0ZSB3aXRoIGEgb25lIHRpbWUgZG9uYXRpb24gb3IgYSByZWN1cnJlbnQgb25lLCBqdXN0IGNsaWNrIG9uPGJyPg0KICAgICAgPGEgdGFyZ2V0PSJfYmxhbmsiIGhyZWY9Imh0dHBzOi8vd3d3LnBheXBhbC5jb20vZG9uYXRlLz9ob3N0ZWRfYnV0dG9uX2lkPTM2TFRYSDI0OEw3R0wiPg0KICAgICAgICA8aW1nIHNyYz0ieyRyb290X3VybH0vbW9kdWxlcy97JHBhcmVudF9uYW1lfS9pbWFnZXMvcHBfYnV0dG9uLnBuZyIgYWx0PSJQYXlQYWwgRG9uYXRlIEJ1dHRvbiIgLz4NCiAgICAgIDwvYT4NCiAgPC9wPg0KICA8cD4NCiAgICBPciB1c2UgdGhlIGZvbGxvd2luZyBRUiBjb2RlIGZvciB0aGUgc2FtZSBQYXlQYWwgYWNjb3VudDogPGJyPg0KICAgIDxpbWcgc3JjPSJ7JHJvb3RfdXJsfS9tb2R1bGVzL3skcGFyZW50X25hbWV9L2ltYWdlcy9wcF9xcl9jb2RlLnBuZyIgYWx0PSJQYXlQYWwgUVIgQ29kZSIgLz4NCiAgPC9wPg0KPHA+Tm90ZTogdGhlIHBheXBhbCBkb25hdGUgbGluayBoYXMgYmVlbiB1cGRhdGVkIHRvIG15IFNtQXJ0IExhYiBhY2NvdW50LiBJIHdhc24ndCB1c2luZyBteSBwZXJzb25hbCBhY2NvdW50IHRoYXQgbXVjaCBhbmQgdGhlIGFjY291bnQgd2FzIGJlaW5nIG1vcmUgb2YgYW4gaGFzc2xlIHRoYW4gYW4gYXNzZXQuLi4gVGhhdCdzIFBQIGZvcid5YS4uLjwvcD4NCiAgPGg0PkJpdGNvaW48L2g0Pg0KICAgIDxwPiBVc2UgdGhlIGZvbGxvd2luZyBidGMgYWRkcmVzczogPGJyPg0KICAgICAgPHNwYW4gaWQ9InMxIj4xN0cySkQ0MTFzVTNzd2Nwck5jR0xRQ2NIYVpCeUsxOThOPC9zcGFuPiA8YnV0dG9uIG9uY2xpY2s9ImNvcHlUb0NsaXBib2FyZCgnI3MxJykiPkNvcHkgdG8gQ2xpcGJvYXJkPC9idXR0b24+DQoNCiAgPC9wPg0KICA8cD4NCiAgICBPciB1c2UgdGhlIGZvbGxvd2luZyBRUiBjb2RlOiA8YnI+DQogICAgPGltZyBzcmM9Inskcm9vdF91cmx9L21vZHVsZXMveyRwYXJlbnRfbmFtZX0vaW1hZ2VzL2J0Y19xcl9jb2RlLnBuZyIgYWx0PSJQYXlQYWwgUVIgQ29kZSIgLz4NCiAgPC9wPg0KPC9kaXY+]]></data>
	</file>
	<file>
	  <filename>/templates/help_developers_tab.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PGgyPkFkdmFuY2VkIFVzZSBGb3IgRGV2ZWxvcGVyczwvaDI+DQo8cD5TaW5jZSB2ZXJzaW9uIDEuMyBMSVNFIGhhcyBiZWVuIGluY2x1ZGluZyBhIHdpZGUgcmFuZ2Ugb2YgYWR2YW5jZWQgZmVhdHVyZXMsIHNvbWUgZXhwZXJpbWVudGFsLCBvdGhlciBhbHJlYWR5IHN0YWJsZS4gTW9zdCBvZiB0aGVzZSBmZWF0dXJlcyBoYXZlIGJlZW4gcG9vcmx5IGRvY3VtZW50ZWQsIGlmIGF0IGFsbC4gSW4gZmFjdCwgc29tZSBvZiB0aG9zZSBmZWF0dXJlcyBoYXZlIGJlZW4gbGluZ2VyaW5nIHNpbmNlIExJMiBvciBtYXliZSBldmVuIHNpbmNlIExpc3QgSXQgKHRoZSB0d28gbW9kdWxlcyB0aGF0IG9yaWdpbmF0ZWQgTElTRSksIGFuZCB3ZXJlIG5vdCBkb2N1bWVudGVkLiBUaGVzZSBoYXZlIGJlZW4gaW1wcm92ZWQgd2hlcmUgcG9zc2libGUgb3IgbmVlZGVkLiBPdGhlciBmZWF0dXJlcyBoYXZlIGJlZW4gc2xvd2x5IGltcGxlbWVudGVkIGFuZCBzZWVtIG1hdHVyZSBlbm91Z2ggdG8gYmUgZG9jdW1lbnRlZCBhdCB0aGlzIHBvaW50LjwvcD4NCjxwPlRoZXJlIGFyZSBmZWF0dXJlcyBhY3Jvc3MgdGhlIHNwZWN0cnVtIG9mIHVzZXMgZm9yIHRoaXMgbW9kdWxlLCBmcm9tIHRoZSBQSFAgZGV2ZWxvcGVyIHBvaW50IG9mIHZpZXcsIHdobyBtYXkgbmVlZCBhIHNpbXBsZSBtb2R1bGUgdGhhdCBjYW4gYmUgYmFzZWQgb24gTElTRSBidXQgd2l0aCBhIGZldyBtb2RpZmljYXRpb25zIGFuZCBjdXN0b20gY29kZSwgdG8gdGhlIHdlYiBkZXZlbG9wZXIgdGhhdCBuZWVkcyB0byBjdXN0b21pemUgdGhlIGxvb2sgYW5kIGZlZWwgb2Ygc29tZSBvZiB0aGUgaW5zdGFuY2VzIHVzZWQgb24gYSBzaXRlLiBMSVNFIGhhcyBiZWNvbWUgbW9yZSBhbmQgbW9yZSBhIG1vZHVsZSBidWlsZGVyIHRvb2xraXQsIGFuZCBpdCBsb29rcyBsaWtlIHRoZSB3YXkgdG8gZ28gZnJvbSB0aGlzIHBvaW50IG9uLjwvcD4NCjxoMz5UaGUgSW5zdGFuY2U8L2gzPg0KPHA+V2hlbiBhbiBpbnN0YW5jZSBpcyBjcmVhdGVkLCBpbmRlcGVuZGVudGx5IG9mIGl0cyBtb2RlLCBhIG5ldyBmb2xkZXIgaXMgY3JlYXRlZCBpbiB0aGUgbW9kdWxlcyBmb2xkZXIgd2l0aCB0aGUgaXRzIG5hbWUsIHVzdWFsbHkgPGVtPkxJU0UmbHQ7bmFtZSZndDs8L2VtPiBhbmQsIGJ5IGRlZmF1bHQsIHRoZSBmb2xsb3dpbmcgZmlsZXMgaW5zaWRlIGl0OjwvcD4NCjx1bD4NCiAgPGxpPjxlbT5MSVNFJmx0O25hbWUmZ3Q7PC9lbT4ubW9kdWxlLnBocDs8L2xpPg0KICA8bGk+YW5vdGhlciBmb2xkZXIgbmFtZWQgaW1hZ2VzIHdpdGggdGhlIGZpbGUgaWNvbi5wbmcgaW5zaWRlIGl0OzwvbGk+DQo8L3VsPg0KPHA+VGhlcmUgbWF5IGJlIG1vcmUgZmlsZXMgYW5kIGZvbGRlcnMgaW4gdGhlcmUsIGFuZCB3ZSdsbCBzZWUgbGF0ZXIgb24gd2h5IGFuZCBob3csIGJ1dCB0aGVzZSBhcmUgdGhlIG9uZXMgd2UgbmVlZCB0byBrbm93IG5vdy4gVGhlICoubW9kdWxlLnBocCBpcyBhIG1pbmltYWwgcGhwIGNsYXNzIGZpbGUgdGhhdCBleHRlbmRzIExJU0UgbWFpbiBpbnN0YW5jZSBjbGFzcy4gVGhlcmUgbm90IG11Y2ggaW4gdGVybXMgb2YgZnVuY3Rpb25hbGl0eSBpbiB0aGlzIGZpbGUgYWx0aG91Z2ggaXQgY2FuIGJlIGV4dGVuZGVkIGZ1cnRoZXIgaWYgbmVlZGVkLiBUaGUgaWNvbi5waHAgZmlsZSBjYW4gYmUgcmVwbGFjZWQgd2l0aCBhIGN1c3RvbSBvbmUsIGFuZCBpdCB3aWxsIGJlIHRoZSBvbmUgYXBwZWFyaW5nIGluIENNU01TIGJhY2tlbmQgZm9yIHRoYXQgaW5zdGFuY2UuIEl0J3MgYWR2aXNhYmxlIHRvIGtlZXAgdGhlIHNpemUgaW4gcGl4ZWxzIHRoZSBzYW1lIGFzIHRoZSBvcmlnaW5hbCBmb3IgYmV0dGVyIGZpdCBpbiBtb3N0IENNU01TIHVzZXMuPC9wPg0KPHA+QWxsIHRoZSBvdGhlciBmaWxlcyBuZWVkZWQgZm9yIGEgTElTRSBpbnN0YW5jZSB0byB3b3JrIGFyZSBpbnNpZGUgdGhlIG1haW4gTElTRSBtb2R1bGUsIGFuZCBhbiBpbnN0YW5jZSBjYW5ub3Qgd29yayB3aXRob3V0IHRoZSBtYWluIG1vZHVsZS4gVGhlcmUgYXJlIGEgZmV3IGV4Y2VwdGlvbnMgYXMgd2Ugd2lsbCBzZWUgc29vbi48L3A+DQo8aDM+RE5BPC9oMz4NCjxwPklmIHlvdSBhcmUgYSByZWd1bGFyIHVzZXIgb2YgTElTRSB5b3UgbWF5IGhhdmUgc2VlbiwgZm9yIHF1aXRlIHNvbWUgdGltZSBub3csIGEgPHN0cm9uZz5TYXZlIEROQTwvc3Ryb25nPiBidXR0b24gb24gdGhlIEluc3RhbmNlcyB0YWIgb2YgdGhlIG1haW4gTElTRSBtb2R1bGUuIENsaWNraW5nIG9uIGl0IHdpbGwgc2F2ZSBhIGZpbGUgY2FsbGVkIGRuYS54bWwgaW5zaWRlIGEgZm9sZGVyIG5hbWVkICdkYXRhJyB3aXRoIGVub3VnaCBpbmZvcm1hdGlvbiB0byByZWNyZWF0ZSB0aGUgaW5zdGFuY2UgZWxzZXdoZXJlLCBhcyBhbiBlbXB0eSBtb2R1bGUsIGkuZS4ganVzdCBhYm91dCB0aGUgc2FtZSBhcyB5b3Ugd291bGQgaGF2ZSB3aXRoIGFueSBvdGhlciBtb2R1bGUsIGV4Y2VwdCB0aGF0IHRoaXMgcmVxdWlyZXMgTElTRSBtYWluIG1vZHVsZSB0byB3b3JrLiBUaGlzIGZpbGUgaXMgYWxzbyBjcmVhdGVkIGlmIGFuIGluc3RhbmNlIGlzIHVuaW5zdGFsbGVkLCBhbmQgaXQgd2lsbCBhbGxvdyB5b3UgdG8gcmVpbnN0YWxsIGl0IGJ1dCB3aXRoIGVtcHR5IGRhdGEsIGV4Y2VwdCBmb3IgdGhlIGRhdGFiYXNlIHN0cnVjdHVyZSBhbmQgcHJlZmVyZW5jZXMuIFRoaXMgd2F5LCBhIG1vZHVsZSBjcmVhdGVkIGJ5IHlvdSBhcyBhbiBpbnN0YW5jZSBjYW4gYmUgcGFja2FnZWQgYXMgYW55IG90aGVyIG1vZHVsZSBhbmQgaW5zdGFsbGVkIGVsc2V3aGVyZS4gSSBjYW4gZXZlbiBiZSBzaGFyZWQgaW4gdGhlIGZvcmdlLCBvciB3aGVyZXZlciB5b3Ugc2VlIGZpdC48L3A+DQo8cD5UaGUgPHN0cm9uZz5TYXZlIEROQTwvc3Ryb25nPiBidXR0b24gaXMgdGhlcmUgc28gdGhhdCB5b3UgY2FuIHNhdmUgaXQgb24geW91ciBvd24gd2hlbmV2ZXIgeW91IG1ha2UgYSBjaGFuZ2UgdG8gaXRzIHN0cnVjdHVyZS4gUmVtZW1iZXI6IGN1c3RvbSBmaWVsZHMsIHByZWZlcmVuY2VzIGFuZCBzdHJ1Y3R1cmUgYXJlIHNhdmVkIHRoaXMgd2F5IGFuZCBjYW4gYmUgc2hhcmVkIGJ5IHNoYXJpbmcgdGhlIGZ1bGwgaW5zdGFuY2UgZm9sZGVyLiBBbHNvIGtlZXAgaW4gbWluZCB0aGF0IGl0IHJlcXVpcmVzIExJU0UgdG8gYmUgaW5zdGFsbGVkIGZvciBpdCB0byB3b3JrOzwvcD4NCjxoMz5EZXZlbG9waW5nIEN1c3RvbSBGaWVsZHMgZm9yIExJU0U8L2gzPg0KPHA+Rm9yIHF1aXRlIHNvbWUgdGltZSBMSVNFIGFuZCBpdHMgYW5jZXN0b3JzIGhhZCB0aGUgYWJpbGl0eSB0byBhbGxvdyBmb3IgM3JkIHBhcnR5IG1vZHVsZXMgdG8gYWRkIGN1c3RvbSBmaWVsZHMgdG8gaXRzIGFscmVhZHkgcmF0aGVyIGV4dGVuc2l2ZSBwYWxldHRlLiBCdXQgdGhlIGluaGVyaXRlZCBtZWNoYW5pc20gd2FzIGV4dHJlbWVseSBjbHVtc3kgYW5kIGluZWZmZWN0aXZlOiBpbiBsYXJnZSBpbnN0YWxsYXRpb25zLCBzY2FubmluZyBhbGwgdGhlIGZpbGVzIGFuZCBmb2xkZXJzIGZvciB0cmFjZXMgb2YgYSBwb3NzaWJsZSBwbHVnaW4gd2FzIGEgdmVyeSBzbG93IHByb2Nlc3MuIExJU0UgaGFzIG5vdyBhZG9wdGVkIGEgZGlmZmVyZW50IGFuZCBtb3JlIGVmZmVjdGl2ZSBtZXRob2Q6PC9wPg0KPG9sPg0KICA8bGk+TElTRSBncmFicyBhIGxpc3Qgb2YgaW5zdGFsbGVkIG1vZHVsZXMgYW5kPC9saT4NCiAgPGxpPm9ubHkgc2NhbnMgdGhvc2UgbW9kdWxlcycgZGlyZWN0b3JpZXMgZm9yIHZhbGlkIGN1c3RvbSBmaWVsZHMgZmlsZXMgc3RydWN0dXJlczwvbGk+DQo8L29sPg0KDQo8cD5JbiB0aGUgZnV0dXJlLCBhIG1vZHVsZSB0aGF0IGluY2x1ZGVzIGN1c3RvbSBmaWVsZHMgZm9yIExJU0Ugd2lsbCBoYXZlIHRvIGxpc3QgaXQgYXMgYSBjYXBhYmlsaXR5LjwvcD4NCjxwPkZvciBhbiBleGFtcGxlIG9mIGhvdyB0byBhZGQgY3VzdG9tIGZpZWxkcyBmb3IgTElTRSBsb29rIGF0IHRoZSB3YXkgTUFNUyBpbXBsZW1lbnRzIGl0LjwvcD4NCg0KPGgzPkN1c3RvbWl6aW5nIEJhY2tlbmQgVGVtcGxhdGVzPC9oMz4NCjxwPkxJU0UgaW5oZXJpdGVkIHNvbWUgb2YgaXRzIGFuY2VzdG9yIG1vZHVsZXMgYWJpbGl0eSB0byBjdXN0b21pc2UgdGhlIGJhY2tlbmQgdGVtcGxhdGVzIGZvciBhbGwgaXRzIGluc3RhbmNlcy4gQnV0IGl0IGhhcyB0YWtlbiBpdCBzb21lIHN0ZXBzIGZ1cnRoZXI6PC9wPg0KDQo8aDQ+LSBtYXN0ZXIgdGVtcGxhdGVzPC9oND4NCg0KPHA+QWxsIHRoZSB0ZW1wbGF0ZXMgaW4gYm90aCBtYWluIExJU0UgbW9kdWxlIGFuZCBhbnkgb2YgaXRzIGluc3RhbmNlcyBjYW4gYmUgb3ZlcnJpZGRlbiwgYWx0aG91Z2ggdGhlIG9uZXMgd2hpY2ggd2lsbCBiZSBvZiBtb3JlIHVzZSB3aWxsIGJlIHRoZSBvbmVzIGZyb20gaW5zdGFuY2VzLCBuYW1lbHk6PC9wPg0KPHVsPg0KICA8bGk+PHN0cm9uZz5lZGl0aXRlbS50cGw8L3N0cm9uZz48L2xpPg0KICA8bGk+PHN0cm9uZz5lZGl0Y2F0ZWdvcnkudHBsPC9zdHJvbmc+PC9saT4NCjwvdWw+DQoNCjxwPlRoZXJlIG1heSBiZSBzb21lIGludGVyZXN0IGluIGN1c3RvbWl6aW5nIHRoZSBtYWluIGl0ZW1zIGxpc3QgZGlzcGxheSwgbWFpbmx5IGluIHdoYXQgY29uY2VybnMgdGhlIHdheSBzb21lIGN1c3RvbSBmaWVsZHMgc2hvdyBpdGggdGhlIGxpc3QsIGJ1dCB0aGF0IGlzIGJldHRlciBhY2hpZXZlZCBlbHNld2hlcmUsIGFzIGV4cGxhaW5lZCBpbiBhIGZvbGxvdy11cCBzZWN0aW9uLjwvcD4NCjxwPkFzIGl0IGhhcHBlbnMgd2l0aCByZWd1bGFyIG1vZHVsZXMsIExJU0UgaW5zdGFuY2VzIGFsc28gc3VwcG9ydCB0aGUgdXNlIG9mIHRoZSA8c3Ryb25nPm1vZHVsZV9jdXN0b208L3N0cm9uZz4gdGVjaG5pcXVlIHRvIGN1c3RvbWlzZSB0aGUgYmFja2VuZCB0ZW1wbGF0ZXMuIEhvd2V2ZXIsIGFuZCBiZWNhdXNlIExJU0UgaW5zdGFuY2VzIGFyZSBub3QgZXhhY3RseSByZWd1bGFyIG1vZHVsZXMsIHRoZXJlIGFyZSBhIGZldyB0aGluZ3MgZGlmZmVyZW50IGluIHRoZSB3YXkgdGhpcyBtYXkgd29yay4gVG8gYmVnaW4gd2l0aCwgdGhlIGZhY3QgdGhhdCB0aGUgaW5zdGFuY2VzIHRlbXBsYXRlcyBhcmUgaW5zaWRlIHRoZSA8c3Ryb25nPkxJU0UvZnJhbWV3b3JrL3RlbXBsYXRlczwvc3Ryb25nPiBmb2xkZXIsIHdoaWNoIG1ha2VzIGl0IGhhcmRlciB0byBmaW5kIHRoZW0gYXQgZmlyc3QgZ2xhbmNlLiBUaGlzIGlzIHRoZSBwbGFjZSB3aGVyZSB5b3Ugd2lsbCBuZWVkIHRvIGNvcHkgdGhlIHRlbXBsYXRlcyBmcm9tIHRvIHRoZSByZWNvbW1lbmRlZCBsb2NhdGlvbnMgdG8gYmUgY3VzdG9taXplZCB3aXRob3V0IGhhdmluZyB0byBldmVyIHRvdWNoIHRoZSBvcmlnaW5hbCB0ZW1wbGF0ZXMuPC9wPg0KPHA+TElTRSBpbnN0YW5jZXMgbG9vayBmb3IgaXRzIGN1c3RvbWlzZWQgbWFzdGVyIHRlbXBsYXRlcyBpbiB0aGUgZm9sbG93aW5nIGxvY2F0aW9ucywgYnkgb3JkZXI6PC9wPg0KPHVsPg0KICA8bGk+DQogICAgdGhlIHRlbXBsYXRlcyBmb2xkZXIgaW5zaWRlIHRoZSBpbnN0YW5jZSBvd24gZm9sZGVyOg0KICAgICAgPHA+SXQgZG9lc24ndCBleGlzdCBieSBkZWZhdWx0LCBuZWl0aGVyIGRvIHRoZSB0ZW1wbGF0ZXMsIGJ1dCBpdCBjYW4gYmUgY3JlYXRlZCwgYW5kIGFueSB0ZW1wbGF0ZSBjb3BpZWQgZnJvbSB0aGUgc291cmNlIGFib3ZlIHdpbGwgb3ZlcnJpZGUgdGhlIG9yaWdpbmFsIG9uZS4gVGhpcyBpcyB0aGUgYmVzdCB3YXkgYXMgYSBmaXJzdCBhcHByb2FjaCBhcyBpdCBhbGxvd3MgZm9yIHRoZSB0ZW1wbGF0ZXMgdG8gYmUga2VwdCB0b2dldGhlciB3aXRoIHRoZSBjdXN0b21pc2VkIGluc3RhbmNlIGFuZCBzaGFyZWQgYXMgYSB3aG9sZS48L3A+DQogIDwvbGk+DQogIDxsaT4NCiAgICB0aGUgdGVtcGxhdGVzIGZvbGRlciBpbnNpZGUgdGhlIG1vZHVsZV9jdXN0b20vaW5zdGFuY2VfbmFtZSBmb2xkZXI6DQogICAgICA8cD5JdCdzIGxlZ2FjeSBhbmQgd2lsbCBubyBsb25nZXIgYmUgYW4gb3B0aW9uIHN0YXJ0aW5nIHdpdGggTElTRSAyLjAuIEFueSB0ZW1wbGF0ZSBjb3BpZWQgZnJvbSB0aGUgc291cmNlIGFib3ZlIHdpbGwgb3ZlcnJpZGUgdGhlIHByZXZpb3VzIG9uZXMuPC9wPg0KICA8L2xpPg0KICA8bGk+DQogICAgdGhlIHRlbXBsYXRlcyBmb2xkZXIgaW5zaWRlIHRoZSBhc3NldHMvbW9kdWxlX2N1c3RvbS9pbnN0YW5jZV9uYW1lIGZvbGRlcjoNCiAgICAgIDxwPlVzZSBhcyBkb2N1bWVudGVkIGluIDxhIGhyZWY9Imh0dHBzOi8vZG9jcy5jbXNtYWRlc2ltcGxlLm9yZy9jdXN0b21pemluZy9jdXN0b21pemluZy1hZG1pbi10ZW1wbGF0ZXMiIHRhcmdldD0iX2JsYW5rIj5DdXN0b21pemluZyBBZG1pbiBUZW1wbGF0ZXM8L2E+LiBBbnkgdGVtcGxhdGUgY29waWVkIGZyb20gdGhlIHNvdXJjZSBhYm92ZSB3aWxsIG92ZXJyaWRlIHRoZSBwcmV2aW91cyBvbmVzLjwvcD4NCiAgPC9saT4NCjwvdWw+DQo8aDQ+LSBjdXN0b20gZmllbGRzIHRlbXBsYXRlczwvaDQ+DQo8cD5UaGVyZSBpcyB0aGUgdGVtcHRhdGlvbiB0byBhbHRlciB0aGUgb3JpZ2luYWwgdGVtcGxhdGVzIG9yIGV2ZW4gdGhlIFBIUCBjb2RlIGluIG9yZGVyIHRvIG1vZGlmeSB0aGUgZmllbGRzJyBwcmVzZW50YXRpb24uIEl0IGFjdHVhbGx5IHVzZWQgdG8gYmUgdGhlIG9ubHkgd2F5IHRvIGRvIGFueSBjdXN0b21pc2F0aW9uIHRvIHRoZWlyIHByZXNlbnRhdGlvbiBpbiB0aGUgYmFja2VuZC4gVGhhdCBpcyBubyBsb25nZXIgdGhlIGNhc2U6IExJU0UgaW5zdGFuY2VzIGFsc28gaGF2ZSBhIG1lY2hhbmlzbSB0byBhbGxvdyBzb21lIGRlZ3JlZSBvZiBjdXN0b21pc2F0aW9uIHRvIHRoZW0gd2l0aG91dCBoYXZpbmcgdG8gYWx0ZXIgdGhlIG9yaWdpbmFsIGZpbGVzLjwvcD4NCjxwPlRoZXJlIGFyZSB0d28gdGVtcGxhdGVzIHRoYXQgY2FuIGJlIHVzZWQgdG8gZG8gdGhpcyBjdXN0b21pc2F0aW9uOjwvcD4NCjx1bD4NCiAgPGxpPmlucHV0LiZsdDtmaWVsZG5hbWUmZ3Q7LnRwbCwgd2hlcmUgdGhlIGFjdHVhbCBpbnB1dCB1c2VkIGluIHRoZSBpdGVtIGVkaXRvciByZXNpZGVzOzwvbGk+DQogIDxsaT5saXN0LiZsdDtmaWVsZG5hbWUmZ3Q7LnRwbCwgd2hlcmUgdGhlIHByZXNlbnRhdGlvbiBvZiB0aGUgZmllbGQgaW4gYSBsaXN0LCBpZiBzZWxlY3RlZCB0byBiZSBsaXN0ZWQsIGlzIGRlZmluZWQ7PC9saT4NCjwvdWw+DQo8cD5UaGUgb3JpZ2luYWwgc291cmNlIG9mIHRoZXNlIHRlbXBsYXRlcyBhcmUgZWl0aGVyIGluIExJU0UgKGluc2lkZSB0aGUgbW9kdWxlcy9MSVNFL2xpYi9maWVsZGRlZnMvJmx0O2ZpZWxkbmFtZSZndDsgZm9sZGVyKSBvciBpbiBhbnkgb3RoZXIgbW9kdWxlIHRoYXQgcHJvdmlkZXMgY3VzdG9tIGZpZWxkcyBmb3IgTElTRS4gWW91J2xsIG5lZWQgdG8gY29weSB0aGVtIHRvIG9uZSBvZiB0aGUgbG9jYXRpb25zIGxpc3RlZCBiZWxvdy4gUGxlYXNlIG5vdGUgdGhhdCB0aGVzZSB0ZW1wbGF0ZXMgbWF5IG5vdCBleGlzdCBvbiB0aGUgb3JpZ2luYWwgZmllbGQgZGVmaW5pdGlvbnMgZm9sZGVycyBmb3IgYSBudW1iZXIgb2YgcmVhc29ucywgYnV0IGl0IHdpbGwgYmUgYW4gaW5jcmVhc2luZ2x5IHVzZWQgYW5kIGVuY291cmFnZWQgcHJhY3RpY2UgZm9yIG1vc3QgY3VzdG9tIGZpZWxkcy48L3A+DQo8cD5MSVNFIGluc3RhbmNlcyBsb29rIGZvciBpdHMgY3VzdG9taXNlZCBmaWVsZCBkZWZpbml0aW9ucyB0ZW1wbGF0ZXMgaW4gdGhlIGZvbGxvd2luZyBsb2NhdGlvbnMsIGJ5IG9yZGVyOjwvcD4NCjx1bD4NCiAgPGxpPg0KICAgIHRoZSAmbHQ7ZmllbGRuYW1lJmd0OyBmb2xkZXIgaW5zaWRlIHRoZSBtb2R1bGVfY3VzdG9tL2luc3RhbmNlX25hbWUvZmllbGRkZWYgZm9sZGVyOg0KICAgICAgPHA+SXQncyBsZWdhY3kgYW5kIHdpbGwgbm8gbG9uZ2VyIGJlIGFuIG9wdGlvbiBzdGFydGluZyB3aXRoIExJU0UgMi4wLiBBbnkgdGVtcGxhdGUgY29waWVkIGZyb20gdGhlIHNvdXJjZSBhYm92ZSB3aWxsIG92ZXJyaWRlIHRoZSBvcmlnaW5hbCBvbmUuPC9wPg0KICA8L2xpPg0KICA8bGk+DQogICAgdGhlICZsdDtmaWVsZG5hbWUmZ3Q7IGZvbGRlciBpbnNpZGUgdGhlIGFzc2V0cy9tb2R1bGVfY3VzdG9tL2luc3RhbmNlX25hbWUvZmllbGRkZWYgZm9sZGVyOg0KICAgICAgPHA+QW55IHRlbXBsYXRlIGNvcGllZCBmcm9tIHRoZSBzb3VyY2UgYWJvdmUgd2lsbCBvdmVycmlkZSB0aGUgcHJldmlvdXMgb25lcy48L3A+DQogIDwvbGk+DQo8L3VsPg0KDQo8cD5MSVNFIHdpbGwgdXNlIG9uZSBvZiB0aGVzZSB0ZW1wbGF0ZXMgZXZlbiBpZiB0aGVyZSBhcmUgbm8gb3JpZ2luYWwgdGVtcGxhdGUgc291cmNlcywgc28gdXNlIGNhcmVmdWxseS4gT24gdGhlIGJyaWdodCBzaWRlLCB5b3UgY2FuIGFsd2F5cyBnZXQgYmFjayB0byB0aGUgb3JpZ2luYWwgd2l0aCBsaXR0bGUgZWZmb3J0LjwvcD4NCg0KPGgzPkFjdGlvbiBGaWxlczwvaDM+DQo8cD5UaGUgYmVzdCwgYW5kIHRoZSBtb3N0IHBvd2VyZnVsLCBmb3IgbGFzdDogb3ZlcnJpZGluZyB0aGUgaW5zdGFuY2VzIFBIUCBhY3Rpb24gZmlsZXMuPC9wPg0KPHA+SXQncyB1bmRvdWJ0ZWRseSBvbmUgb2YgdGhlIG1vc3QgcG93ZXJmdWwgYW5kIHBvdGVudGlhbGx5IGRhbmdlcm91cyBmZWF0dXJlcyBpbiBMSVNFLiBJdCBoYXMgYmVlbiB0aGVyZSBmb3IgcXVpdGUgYSB3aGlsZSB0b28gYnV0IHVuZG9jdW1lbnRlZC48L3A+DQo8cD5UaGUgUEhQIGZpbGVzIGluc2lkZSB0aGUgPHN0cm9uZz5MSVNFL2ZyYW1ld29yay90ZW1wbGF0ZXM8L3N0cm9uZz4gZm9sZGVyIGNhbiBiZSBjb3BpZWQgdG8gdGhlIGJlbG93IGxvY2F0aW9ucyB0byBvdmVycmlkZSB0aGUgb3JpZ2luYWwgYWN0aW9uIGZpbGVzLiBUaGVzZSBmaWxlcyBhbGwgaGF2ZSB0aGUgcHJlZml4IDxzdHJvbmc+YWN0aW9uLjwvc3Ryb25nPiwgdGhlIGFjdGlvbiBuYW1lIGFuZCB0aGUgPHN0cm9uZz4ucGhwPC9zdHJvbmc+IGV4dGVuc2lvbi48L3A+DQo8cD5UaGlzIGZlYXR1cmUgaXMgbWVhbnQgZm9yIHNlYXNvbmVkIFBIUCBkZXZlbG9wZXJzIHdpdGggc29saWQga25vd2xlZGdlIG9mIHRoZSBpbnRyaWNhY2llcyBvZiBib3RoIExJU0UgYW5kIENNU01TIGFuZCBhbGxvdyBmb3Igc29tZSB2ZXJ5IGhpZ2ggbGV2ZWwgb2YgY3VzdG9taXphdGlvbiB0byB0aGUgcG9pbnQgb2QgYWxsb3dpbmcgdG8gY29vayB1cCBhIHZlcnkgcG93ZXJmdWwgbW9kdWxlIGluIGEgdmVyeSBzaG9ydCBwZXJpb2Qgb2YgdGltZS48L3A+DQo8cD5BIGZldyBub3Rlczo8L3A+DQo8dWw+DQogIDxsaT5TZWN1cml0eSBpcyBvZiB0aGUgZXNzZW5jZTogd2hpbGUgZGV2ZWxvcGluZyBhbmQvb3IgY3VzdG9taXppbmcgUEhQIGZvciBhIExJU0UgaW5zdGFuY2UsIG1ha2Ugc3VyZSB5b3Uga2VlcCBpbiBwbGFjZSwgY29weSBvciBvdGhlcndpc2UgYWRvcHQgdGhlIHNlY3VyaXR5IG1lYXN1cmVzIGltcGxlbWVudGVkIHRvIHByZXZlbnQgdnVsbmVyYWJpbGl0aWVzIG9yIGF0dGFjayB2ZWN0b3JzOzwvbGk+DQogIDxsaT5BbHdheXMgbWFrZSBzdXJlIHRoZSBzb3VyY2Ugb2YgYSBjdXN0b21pemVkIExJU0UgaW5zdGFuY2UgaXMgcmVsaWFibGUgYW5kIHRydXN0d29ydGh5IGFzIHRoaXMgZmVhdHVyZSBpcyBleHRyZW1lbHkgcG93ZXJmdWw7PC9saT4NCiAgPGxpPklmIHlvdSBhcmUgbm90IHN1cmUgd2hhdCB5b3UgYXJlIGRvaW5nIGVpdGhlciBkb24ndCBkbyBpdCBhdCBhbGwsIG9yIHJlYWNoIGZvciBzcGVjaWFsaXplZCBoZWxwIGZyb20gdGhlIGRldiB0ZWFtIG9mIENNU01TIGluIGl0cyBTbGFjayBjaGFubmVsIChhbHRob3VnaCB0aGlzIG1vZHVsZSBpcyBub3QgdGhlaXIgcmVzcG9uc2liaWxpdHkgbW9zdCBvZiB0aGVtIGFyZSB3ZWxsIHZlcnNlZCBpbiB1c2luZyBpdCBhbmQgaXRzIGRldmVsb3BlciBjYW4gdXN1YWxseSBiZSBmb3VuZCB0aGVyZSB0b28pOzwvbGk+DQo8L3VsPg==]]></data>
	</file>
	<file>
	  <filename>/templates/help_duplicating.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4NCg0KICA8aDM+Q3JlYXRpbmcgTW9kdWxlIEluc3RhbmNlczwvaDM+DQogIA0KICA8cD5UaGlzIG1vZHVsZSBpcyBhIENvbnRyb2wgUGFuZWwgZm9yIGNyZWF0aW5nIExJU0UgTW9kdWxlIEluc3RhbmNlcy4gVG8gY3JlYXRlIGEgTElTRSBtb2R1bGUgSW5zdGFuY2UsIHNpbXBseSBnbyB0byAiSW5zdGFuY2VzIiB0YWIgYW5kIGNsaWNrIG9uICJDcmVhdGUgSW5zdGFuY2UiIGJ1dHRvbi48YnIgLz4NCiAgICBNYWtlIHN1cmUgeW91IGZvbGxvdyB0aGUgQ01TTVMgbW9kdWxlIG5hbWluZyBjb252ZW50aW9ucywgYS16IHdpdGggbm8gcHVuY3R1YXRpb24gY2hhcmFjdGVycyBvciBzcGFjZXMgdG8gYmUgc2FmZSA6KTxiciAvPg0KICAgIFlvdSBjYW4gc2V0IHRoZSBpbnN0YW5jZSA8c3Ryb25nPkZyaWVuZGx5IE5hbWU8L3N0cm9uZz4sIDxzdHJvbmc+TW9kdWxlIEFkbWluIERlc2NyaXB0aW9uPC9zdHJvbmc+IGFuZCA8c3Ryb25nPk1vZHVsZSBBZG1pbiBTZWN0aW9uPC9zdHJvbmc+IG9uIHRoZSA8c3Ryb25nPkNyZWF0ZSBJbnN0YW5jZTwvc3Ryb25nPiBmb3JtLjxiciAvPg0KICAgIEFmdGVyIHRoZSBtb2R1bGUgaGFzIGJlZW4gY3JlYXRlZCBhIG5ldyBpbnN0YW5jZSB3aWxsIGJlIGluc3RhbGxlZCBhbmQgbGlzdGVkIGluIG9yaWdpbmFsIExJU0UgbW9kdWxlIHVuZGVyICJJbnN0YW5jZXMiIHRhYi48L3A+PGJyIC8+DQogICAgPHA+WW91IGNhbiBhbHdheXMgY2hhbmdlIHRoZSBtb2R1bGUgZnJpZW5kbHkgbmFtZSBvbmNlIGluc3RhbGxlZCB1bmRlciAiT3B0aW9ucyIgKENvbnRlbnQgJnJhcXVvOyBMSVNFTmFtZU9mRHVwbGljYXRlKS48YnIgLz4NCiAgICA8YnIgLz4NCiAgICBUbyBjaGFuZ2UgdGhlIGljb24sIHJlcGxhY2UgL21vZHVsZXMvTElTRU5hbWVPZkR1cGxpY2F0ZS9pbWFnZXMvaWNvbi5naWYuPGJyIC8+DQogICAgPGJyIC8+DQogICAgVG8gY2hhbmdlIEFkbWluIHNlY3Rpb24gb2YgdGhlIG1vZHVsZSwgc2ltcGx5IHNlbGVjdCBhcHByb3ByaWF0ZSBzZWN0aW9uIGZyb20gRHJvcGRvd24uIE1ha2Ugc3VyZSB5b3UgY2xlYXIgdGhlIGNhY2hlIGFmdGVyIHRoZXNlIGNoYW5nZXMuPC9wPg0KDQo8L2Rpdj4=]]></data>
	</file>
	<file>
	  <filename>/templates/help_fielddefs.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[eyogdG8gYmUgcmVtb3ZlZCAqfQ==]]></data>
	</file>
	<file>
	  <filename>/templates/help_fielddefs_help.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KCiAgPGgzPkZpZWxkcyBEZWZpbml0aW9ucyBIZWxwPC9oMz4KICAKICA8cD5BdCB0aGUgIkZpZWxkIERlZmluaXRpb25zIiB0YWIgb2YgeW91ciBMSVNFIGluc3RhbmNlIHlvdSBjbGljayB0aGUgIkFkZCBGaWVsZCBEZWZpbml0aW9uIiBsaW5rIHRvIGNyZWF0ZSBhIG5ldyBmaWVsZC48YnIgLz4KICAgIEFmdGVyIGNyZWF0aW9uLCB5b3UgY2FuIGNsaWNrIG9uIHRoZSBuYW1lIG9yIGVkaXQgaWNvbiB0byBjaGFuZ2UgdGhlIHNldHRpbmdzLjxwPgogIDxiciAvPgoKICA8cD5GaWVsZCBkZWZpbml0aW9ucyBoYXZlIHNvbWUgY29tbW9uIHNldHRpbmdzICh0aGUgPHN0cm9uZz5NYWluIFNldHRpbmdzPC9zdHJvbmc+IGFuZCA8c3Ryb25nPlRlbXBsYXRlPC9zdHJvbmc+KSBhbmQgc29tZSBzcGVjaWZpYyBzZXR0aW5ncyAob3IgPHN0cm9uZz5PcHRpb25zPC9zdHJvbmc+KS48L3A+CiAgPGJyIC8+CgogIDxmaWVsZHNldD4KCiAgICA8bGVnZW5kPk1haW4gU2V0dGluZ3M8L2xlZ2VuZD4KICAgIAogICAgPHA+Q29tbW9uIHRvIGFsbCBmaWVsZCBkZWZpbml0aW9ucyB5b3UnbGwgZmluZCB0aGUgPHN0cm9uZz5OYW1lPC9zdHJvbmc+IChyZXF1aXJlZCksIDxzdHJvbmc+QWxpYXM8L3N0cm9uZz4sIDxzdHJvbmc+SGVscGZ1bCB0aXA8L3N0cm9uZz4gYW5kIDxzdHJvbmc+UmVxdWlyZWQ8L3N0cm9uZz4uPC9wPgogICAgCiAgICA8dWw+CiAgICAgIDxsaT48c3Ryb25nPk5hbWU8L3N0cm9uZz46IGEgbWVhbmluZ2Z1bCBuYW1lIGZvciB0aGUgaW5wdXQuIEl0IHdpbGwgYmUgc2hvd24gYXMgYSBwcm9tcHQgZm9yIHRoZSBmaWVsZCBpbiB0aGUgSXRlbSBFZGl0b3I7PC9saT4KICAgICAgPGxpPjxzdHJvbmc+QWxpYXM8L3N0cm9uZz46IGlmIHlvdSBkb24ndCBwcm92aWRlIGl0LCBvbmUgd2lsbCBiZSBnZW5lcmF0ZWQgZm9yIHlvdS4gSXQgd2lsbCBiZSB1c2VkIGluIHRoZSB0ZW1wbGF0ZXMgd2hlbiB5b3UgbmVlZCB0byBjYWxsIHRoZSBmaWVsZCBkZWZpbml0aW9uIGJ5IGFsaWFzOzwvbGk+CiAgICAgIDxsaT48c3Ryb25nPkhlbHBmdWwgdGlwPC9zdHJvbmc+OiBJZiBwcm92aWRlZCB3aWxsIGJlIHNob3duIG5leHQgdG8gdGhlIGlucHV0IGFzIGluc3RydWN0aW9ucyBvciBoZWxwIHRvIHRoZSB1c2VyIHdoZW4gZmlsbGluZyB0aGUgZm9ybSBpbiB0aGUgSXRlbSBFZGl0b3I7PC9saT4KICAgICAgPGxpPjxzdHJvbmc+UmVxdWlyZWQ8L3N0cm9uZz46IHNldHMgdGhlIGZpZWxkIGFzIHJlcXVpcmVkIG9yIG9wdGlvbmFsOzwvbGk+CiAgICA8L3VsPgoKICA8L2ZpZWxkc2V0PgoKICA8YnIgLz4KCiAgPGZpZWxkc2V0PgoKICAgIDxsZWdlbmQ+VGVtcGxhdGU8L2xlZ2VuZD4KICAgICAgCiAgICA8cD5UaGlzIGlzIGFuIGV4cGVyaW1lbnRhbCBmZWF0dXJlOiBpdCBoYXMgYmVlbiBhcm91bmQgZm9yIGEgd2hpbGUgYnV0IHVuZG9jdW1lbnRlZC4gVGhlIGlkZWEgYmVoaW5kIHRoaXMgZmVhdHVyZSBpcyB0aGUgY3VzdG9taXphdGlvbiBvZiB0aGUgZnJvbnRlbmQgcmVuZGVyaW5nIG9mIHRoZSBmaWVsZCBvbiB0aGUgZnJvbnRlbmQgYW5kIHNpbXBsaWZ5aW5nIHRoZSBzdW1tYXJ5IGFuZCBkZXRhaWwgdGVtcGxhdGVzLjwvcD4KICAgICAgCiAgICA8cCBjbGFzcz0ibV90b3BfMTAiPjxlbT4gRXhhbXBsZSBvZiBhIHNpbXBsaWZpZWQgZGV0YWlsIHRlbXBsYXRlOjwvZW0+PC9wPgogICAgICAKICAgIHtsaXRlcmFsfTxwcmU+PGNvZGU+Li4uCgp7aWYgIWVtcHR5KCRpdGVtLT5maWVsZGRlZnMpfQogIHtmb3JlYWNoICRpdGVtLT5maWVsZGRlZnMgYXMgJGZpZWxkZGVmfQogICAgeyRmaWVsZGRlZi5WaWV3KCl9CiAgey9mb3JlYWNofQp7L2lmfQoKLi4uPC9jb2RlPjwvcHJlPnsvbGl0ZXJhbH0KICAgICAgCiAgICA8cD5UaGUgc2FtcGxlIGFib3ZlIHNob3dzIGhvdyB0byB1c2UgdGhlIHRlbXBsYXRlIGZlYXR1cmUgYnkgY2FsbGluZyB0aGUgPHN0cm9uZz5WaWV3PC9zdHJvbmc+IG1ldGhvZCBvZiB0aGUgZmllbGQgZGVmaW5pdGlvbiBvYmplY3QgaW4gYSA8c3Ryb25nPkRldGFpbDwvc3Ryb25nPiB0ZW1wbGF0ZSBjb250ZXh0LiBUaGlzIG1ldGhvZCByZW5kZXJzIHRoZSB0ZW1wbGF0ZSBkZWZpbmVkIGluIHRoaXMgZmllbGQgZGVmaW5pdGlvbiBzZXR0aW5nLjwvcD4KCiAgPC9maWVsZHNldD4KCiAgPGJyIC8+CgogIDxmaWVsZHNldD4KCiAgPGxlZ2VuZD5PcHRpb25zPC9sZWdlbmQ+CiAgICAKICAgIDxwPlRoaXMgZ3JvdXAgb2Ygc2V0dGluZ3MgaXMgZXNwZWNpZmljIHRvIGVhY2ggZmllbGQgZGVmaW5pdGlvbi4gVGhlcmUgbWlnaHQgYmUgYSBmZXcgc2ltaWxhciBvcHRpb25zIGJ1dCB0aGV5IHdpbGwgYWxsIGRlcGVuZCBvbiB0aGUgY29udGV4dCBvZiBlYWNoIGN1c3RvbSBmaWVsZC48L3A+CiAgICA8cD5UaGUgYmFzaWNzIG9mIHRoZSB1c2Ugb2YgYSBmaWVsZCBkZWZpbml0aW9uIGFuZCB0aGUgYXZhaWxhYmxlIHNldHRpbmdzIGNhbiBiZSByZWFkIGJlbG93LCBtb3JlIGluZm9ybWF0aW9uIGlzIGJlIGRpc3BsYXllZCBhdCB0aGUgZmllbGQuPC9wPgoKICA8L2ZpZWxkc2V0PgoKICA8YnIgLz4KICAKICA8aDM+Q2hlY2sgdGhlIGZvbGxvd2luZyBhY2NvcmRpb24gZm9yIGVhY2ggZmllbGQgZXhwbGFuYXRpb24gYW5kIGhlbHA6PC9oMz4KCiAgPGRpdiBjbGFzcz0ibV90b3BfMTUiPgogICAge2lmIGNvdW50KCRmaWVsZGRlZnMpID4gMH0KICAgICAge2ZvcmVhY2ggJGZpZWxkZGVmcyBhcyAkZmllbGRkZWZ9CiAgICAgICAgeyRmaWVsZGRlZi0+R2V0SGVscCgpfQogICAgICB7L2ZvcmVhY2h9CiAgICB7L2lmfQogIDwvZGl2PgoKPC9kaXY+]]></data>
	</file>
	<file>
	  <filename>/templates/help_fielddefs_tab.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PGgzPkZpZWxkIERlZmluaXRpb25zPC9oMz4NCg0KPHA+VGhlIGZpcnN0IHRoaW5nIHlvdSBzaG91bGQgY29uZmlndXJlIGFyZSB5b3VyIGZpZWxkIGRlZmluaXRpb25zLjwvcD4NCjxwPkZvciBlYWNoIGZpZWxkIGRlZmluaXRpb24sIHlvdSBjYW4gc3BlY2lmeSBhZGRpdGlvbmFsIHNldHRpbmdzIGJ5IGNob29zaW5nIGZyb20gYXZhaWxhYmxlIG9wdGlvbnMuPC9wPg0KDQo8aDM+RGVmYXVsdCBGaWVsZCBEZWZpbml0aW9ucyBieSB0eXBlPC9oMz4NCg0KPHVsPg0KICA8bGk+QmFja2VuZFRleHQgLSA8c3Ryb25nPkJhY2tlbmQgVGV4dDwvc3Ryb25nPjs8L2xpPg0KICA8bGk+Q2F0ZWdvcmllcyAtIDxzdHJvbmc+Q2F0ZWdvcmllczwvc3Ryb25nPjs8L2xpPg0KICA8bGk+Q2hlY2tib3ggLSA8c3Ryb25nPkNoZWNrYm94PC9zdHJvbmc+OzwvbGk+DQogIDxsaT5DaGVja2JveEdyb3VwIC0gPHN0cm9uZz5DaGVja2JveCBHcm91cDwvc3Ryb25nPjs8L2xpPg0KICA8bGk+Q29sb3JQaWNrZXIgLSA8c3Ryb25nPkNvbG9yUGlja2VyPC9zdHJvbmc+OzwvbGk+DQogIDxsaT5Db250ZW50UGFnZXMgLSA8c3Ryb25nPkNvbnRlbnQgUGFnZXM8L3N0cm9uZz47PC9saT4NCiAgPGxpPkNvcmVGaWxlUGlja2VyIC0gPHN0cm9uZz5GaWxlIFBpY2tlciA8c3VwPjxiPjxpPigxKTwvaT48L2I+PC9zdXA+PC9zdHJvbmc+OzwvbGk+DQogIDxsaT5DdXN0b21Gcm9tVURUIC0gPHN0cm9uZz5DdXN0b20gRmllbGQgRnJvbSBVRFQ8L3N0cm9uZz47PC9saT4NCiAgPGxpPkN1c3RvbUZyb21TbWFydHkgLSA8c3Ryb25nPkN1c3RvbSBGaWVsZCBGcm9tIFNtYXJ0eSBUZW1wbGF0ZTwvc3Ryb25nPjs8L2xpPg0KICA8bGk+RHJvcGRvd24gLSA8c3Ryb25nPkRyb3Bkb3duPC9zdHJvbmc+OzwvbGk+DQogIDxsaT5GRVVEcm9wZG93biAtIDxzdHJvbmc+RnJvbnRFbmRVc2VycyBEcm9wZG93biA8c3VwPjxiPjxpPigyKSg2KTwvaT48L2I+PC9zdXA+IDxzcGFuIHN0eWxlPSJjb2xvcjpvcmFuZ2VyZWQiPihkZXByZWNhdGVkKTwvc3Bhbj48L3N0cm9uZz47PC9saT4NCiAgPGxpPkZFVU11bHRpU2VsZWN0IC0gPHN0cm9uZz5GRVUgTXVsdGkgU2VsZWN0IDxzdXA+PGI+PGk+KDIpPC9pPjwvYj48L3N1cD48L3N0cm9uZz47PC9saT4NCiAgPGxpPkZFVVNpbmdsZVNlbGVjdCAtIDxzdHJvbmc+RkVVIFNpbmdsZSBTZWxlY3QgPHN1cD48Yj48aT4oMik8L2k+PC9iPjwvc3VwPjwvc3Ryb25nPjs8L2xpPg0KICA8bGk+RmlsZVVwbG9hZCAtIDxzdHJvbmc+RmlsZSBVcGxvYWQ8L3N0cm9uZz47PC9saT4NCiAgPGxpPkdhbGxlcnlEcm9wZG93biAtIDxzdHJvbmc+R2FsbGVyeSBEcm9wZG93biA8c3VwPjxiPjxpPigzKTwvaT48L2I+PC9zdXA+PC9zdHJvbmc+OzwvbGk+DQogIDxsaT5HQkZpbGVQaWNrZXIgLSA8c3Ryb25nPkdCRmlsZVBpY2tlciBVcGxvYWQgRmlsZSA8c3VwPjxiPjxpPig0KSg2KTwvaT48L2I+PC9zdXA+IDxzcGFuIHN0eWxlPSJjb2xvcjpvcmFuZ2VyZWQiPihkZXByZWNhdGVkKTwvc3Bhbj48L3N0cm9uZz47PC9saT4NCiAgPGxpPkhlbHBQb3B1cCAtIDxzdHJvbmc+SGVscCBQb3B1cDwvc3Ryb25nPjs8L2xpPg0KICA8bGk+Sk1GaWxlUGlja2VyIC0gPHN0cm9uZz5KTUZpbGVQaWNrZXIgVXBsb2FkIEZpbGUgPHN1cD48Yj48aT4oNSk8L2k+PC9iPjwvc3VwPjwvc3Ryb25nPjs8L2xpPg0KICA8bGk+SlF1ZXJ5TXVsdGlTZWxlY3QgLSA8c3Ryb25nPkpRdWVyeSBNdWx0aVNlbGVjdDwvc3Ryb25nPjs8L2xpPg0KICA8bGk+TElTRUluc3RhbmNlIC0gPHN0cm9uZz5MSVNFIEluc3RhbmNlPC9zdHJvbmc+OzwvbGk+DQogIDxsaT5MSVNFSW5zdGFuY2VJdGVtIC0gPHN0cm9uZz5MSVNFIEluc3RhbmNlIEl0ZW08L3N0cm9uZz47PC9saT4NCiAgPGxpPk11bHRpU2VsZWN0IC0gPHN0cm9uZz5NdWx0aSBTZWxlY3Q8L3N0cm9uZz47PC9saT4NCiAgPGxpPlByZXZpZXcgLSA8c3Ryb25nPkEgUHJldmlldyB0YWIgZm9yIGVkaXRvcnM8L3N0cm9uZz47IDxzcGFuIHN0eWxlPSJjb2xvcjpncmVlbiI+KG5ldyk8L3NwYW4+PC9saT4NCiAgPGxpPlJhZGlvR3JvdXAgLSA8c3Ryb25nPlJhZGlvIEdyb3VwPC9zdHJvbmc+OzwvbGk+DQogIDxsaT5TZWxlY3REYXRlVGltZSAtIDxzdHJvbmc+U2VsZWN0IERhdGVUaW1lPC9zdHJvbmc+OzwvbGk+DQogIDxsaT5TZWxlY3RGaWxlIC0gPHN0cm9uZz5TZWxlY3QgRmlsZTwvc3Ryb25nPjs8L2xpPg0KICA8bGk+U2xpZGVyIC0gPHN0cm9uZz5TbGlkZXI8L3N0cm9uZz47PC9saT4NCiAgPGxpPlRhYnMgLSA8c3Ryb25nPlRhYnM8L3N0cm9uZz47PC9saT4NCiAgPGxpPlRhZ3MgLSA8c3Ryb25nPlRhZ3M8L3N0cm9uZz47PC9saT4NCiAgPGxpPlRleHRBcmVhIC0gPHN0cm9uZz5UZXh0IEFyZWE8L3N0cm9uZz47PC9saT4NCiAgPGxpPlRleHRJbnB1dCAtIDxzdHJvbmc+VGV4dCBJbnB1dDwvc3Ryb25nPjs8L2xpPg0KPC91bD4NCjxkaXYgY2xhc3M9ImluZm9ybWF0aW9uIj48c3Ryb25nPk5vdGU6IHRoaXMgbGlzdCBkb2VzIG5vdCBpbmNsdWRlIGFkZGl0aW9uYWwgZmllbGQgZGVmaW5pdGlvbnMgdGhhdCBtYXkgYmUgcmVnaXN0ZXJlZCBieSBleHRlcm5hbCBtb2R1bGVzLjwvc3Ryb25nPjwvZGl2Pg0KPGRpdiBjbGFzcz0iaW5mb3JtYXRpb24iPjxzdHJvbmc+Tm90ZTogYWZ0ZXIgdXBncmFkaW5nIExJU0Ugb3IgaW5zdGFsbGluZyBhIG1vZHVsZSB3aGljaCBjb3VsZCByZWdpc3RlciBhZGRpdGlvbmFsIGZpZWxkIGRlZmluaXRpb25zLCByZS1zY2FuIGZpZWxkIGRlZmluaXRpb25zIGZvciB0aGVtIHRvIGFwcGVhciBvbiB0aGUgbGlzdCBvZiBhdmFpbGFibGUgZmllbGQgZGVmaW5pdGlvbnMuPC9zdHJvbmc+PC9kaXY+DQo8cD48Yj4oMSk8L2I+IEhhcyBkZXBlbmRlbmNpZXM6IDxzdHJvbmc+RmlsZSBQaWNrZXIgKGNvcmUpPC9zdHJvbmc+OzwvcD4NCjxwPjxiPigyKTwvYj4gSGFzIGRlcGVuZGVuY2llczogPHN0cm9uZz5Gcm9udEVuZFVzZXI8L3N0cm9uZz5zIGFuZCA8c3Ryb25nPkNHRXh0ZW5zaW9uczwvc3Ryb25nPjs8L3A+DQo8cD48Yj4oMyk8L2I+IEhhcyBkZXBlbmRlbmNpZXM6IDxzdHJvbmc+R2FsbGVyeTwvc3Ryb25nPjs8L3A+DQo8cD48Yj4oNCk8L2I+IEhhcyBkZXBlbmRlbmNpZXM6IDxzdHJvbmc+R0JGaWxlUGlja2VyPC9zdHJvbmc+LiA8ZW0+Tm90ZTogSXQgb25seSB3b3JrcyB3aXRoIENNU01TIDEueCBicmFuY2g8L2VtPjs8L3A+DQo8cD48Yj4oNSk8L2I+IEhhcyBkZXBlbmRlbmNpZXM6IDxzdHJvbmc+Sk1GaWxlUGlja2VyPC9zdHJvbmc+LjwvcD4NCjxwPjxiPig2KTwvYj4gRGVwcmVjYXRlZDogPHN0cm9uZz53aWxsIGJlIHJlbW92ZWQgaW4gYSBuZWFyIGZ1dHVyZSwgdXNlIHRoZSByZXBsYWNlbWVudHMgQVNBUDwvc3Ryb25nPi48L3A+]]></data>
	</file>
	<file>
	  <filename>/templates/help_general.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KCgk8aDM+R2VuZXJhbCBJbmZvPC9oMz4KCgk8aW1nIHNyYz0iZGF0YTppbWFnZS9wbmc7YmFzZTY0LGlWQk9SdzBLR2dvQUFBQU5TVWhFVWdBQUFXUUFBQURJQ0FZQUFBRGZzcHNCQUFBZ0FFbEVRVlI0bk8yZGVaUmtWWlh1VDFVeFZZa0NRbElhRlNTUkVUZk8vcjY5THdXdEtNNkNyWWcweUFLN3RWVlFGSlh1dGxWUVcrWHBVMFJYdDRvS3ZNYmgyYlF6WWo5dDdWYlJwL2pzcHozWU9HQTdJU2hEd1dPcWVaNm45MGRFU2xGVVptVkUzQnYzM3NqOVcrdGJyRW95NDU2Nzk3bGYzanpEUGlFNGp1TTRqdU00anVNNGp1TTRqdU00anVNNGp1TTRqdU00anVNNGp1TTRqdU00anVNNGp1TTRqdU00anVNNGp1TTRqdU00anVNNGp1TTRqdU00anVNNGp1TTRqdU00anVNNGp1TTRqdU00anVNNGp1TTRqdU00anVNNGp1TTRqdU00anVNNGp1TTRqdU00anVQMHk1d2tTUTZ1MSt2emkyN0lOTXdwdWdIT1FNeXIxK3Z6RzQzR0lVVTNaQ2JVNi9YNXJ2NlVKTW5CUmVldmFzd0JjTEtSMXhqbEhsTnVVK1Y2STlZb3NVdFY3ekx5R2pLK0tCUmdoTUNpSTBtNVNGWC8yUlQzR3JIRGxOdU4yS0dxZDVIOHJJaWNGa0k0YU5odGMyYk1nU3J5UXBMWG1HS3BFWnRNdVZhSmRVcnNNdVhOcEh4a1ltSmlZZEVORFNFRUVUbVJJbjlueWdlVTJHWEVHbE91ZGZVdVZhNVhZcGVTdnlYdzRSampFNHZPYjJreGtWTk11ZDJNOTVoeTkzUktqY3RNdVkza3E0YlV2QU5VOVZvamxwbHk0L1R0MDlWS3JEUHltaUcxemRrUFkyTmpoNUk4T3pYN3Y2bHhreWxYN2ErUG1YS3RtYTVTYlo5VVJKdUI5aG1xV0s2cUsyZlFWbGNmVXVYOVNpNFJrY1ZGNUxpMHFITHJEQitTdmJVaE5iMTk4ZUxGajhpcmJRRE82YmF2dDJRVFcwMjUyY2lMODJxYk16VXh4cU1NT0YrVlArdStWZTduRittVVdxM0FwMElJQnd5ajNVbVNqSm5welVxc0s5cXdab3M2TDFENDlERHlXM2JtbW5KM2FqcG9VRGVReWVQR3g4ZVB5S3BoSXJMWWlGdU4zRFJZMi9SMm9QM21yTnJsVEUycjFUckd5SXROOVhaVnJsUmlTMVlQYldyY0ZFS1ltMmY3VmVTRnFlblNvZzFxOWdyM0prbWllZWE0dEN3bTA5UjBRNVlCemRLUWpieXlPMGFjUmR0V2tmTFJyTnJtUElpSUNDbnY3UXhqWVhscXpDcG4rOUpxQUkvUDZWWU84cmZpNHBXYWJnaXpjYUplZ1h1ekRxWVNLMktNaXdadG0wRytuSnB1ejdSdHlwV2tYSkJGN0dZN1pQSTRJejlxeW8xR0xDTmsxN0FlV0ZXdUhCc2JPelRyZThyeWJkNDF1TExPYjZraCtkbmNna25jbVNUSldQOXRrNDhxc0R5UHRxWEdaVW1TMUxPTTVTeGhuc2I0ZEpKZlRGVjNFMWhSMUlQYUhWNjdPY3ViVStYNm9nM0k5YkFjYjhzeXg2V2wzVzZma09lZlpxcmNDc1IzOWRNMmN1SllKWmZrbW5ES0hWbkhkQlNwMSt2enlYaTZHYjdkZlh0Y1hmU0QrcUN3SE1CTHNyaFBWVG1ydS9LakJQZmwya09yUlZxblpKSGpVbU9xZCtjZFRDV1h0RnF0WTNwdG15cmVuZUc0OFJSdHczMXBpalB5aUczVmFUUWFod040c1NwdlZHSmRtZDhjVTlQYnM3am5mbGJ3dUlhbTdXR1V4NU8xM1Q0cE5YMGc5MEFTbTRCNFNTOXRHeHNiTzlRMG42R0t2WldTLzVCWGpLc0dlZXhqR2VOZm1PcHZUTGxLaWMwbGVCRDNLeVdYQUhqQllQY2V6N2IrbG51NmhpTGNDK0RrakxwNitTRGx5cUVGczhjM0dCRTV6WFFJdnl3NldsMnIxUmJrRmVleWt5UkppNVIzbU9KZUpWWW9zYTM0aDY4UFVkNDZTQnlNK0hUaDkrRGFUNDVIZUlPWEtuODNyRUFxc2E2WHZldUFYRDdFdHEySU1TTFBXSmNOQU1jWjVZck9KZzBzTitYT3doKzJBVVh5VjRQRXhKVFYvRVUwcTRSN3Mzb0dTc2N3QTVtYVBrQk9IRHZUdGluNWcyRzFUWWt0Zy82NVd3SG1rTW1UelBDWjFIUzdRb1l5SERSczlSdWNScU54aUpWNGpOejFlMjBMb3ppTzNHZzBEaG5td3ZmVXVLemRibk9tN1ZQeVY4Tk1OSWtQNXhudmdqZ29KWjlqaHErYmNydU4rUGlvS3RmM1cwR3MwV2c4cGx1VHBmRDdjT1dUNDFKVHE5VVdXS2ZxMG5BQ0NWa080TGladHMrSVc0ZVphQTQ0L2xnV1JPU1JRUHNGU3Y0Z05kMm9sS0hsdUdncHNhN2ZzcDB4eGtXbThHM1NaUmV4WmlUbmUwcHZ5S3IvTnNRazcxRFZDL09NZDU0a1NUSkdrUXRTd3k5TXVUbzE3YmR3VCtYVmJ3ekh4c1lPN1JZOUt2d2VYRk5MaVYxWlBqdWxvZXlHcktxZkhHS1NWd0E0TmM5NFowMnoyUnhYNE0xS0xsRmloYStmNVc1VERMUVd1VnQvdVFUMzRacEtxbnBYVnM5UXFTaTdJUjlIUG1OWWIzcEszRmVGTGRReFJpamlYeXV4UWlITDg5NDBVeldSdUhxUStBNXpJdG5WcDBaMTJWdlpEWGxpWW1LaEtZZXlEbG1KZFhuR2VoQkU1RVFGL3FjcE42dGkrVEFMOTFSSnFsd3BJaWNPRXVzVU9LZDdZa25oOStONnVGTGpzdTdwUktOSDJRMDVoQkJJM3BCNzI0aE5aRHc3cnpqM3dUd2dlYWFxZnNtMFl6UkZQd2dWMGFvc3p1SHpZWXRTYXpTWHZJVlFEVVB1dmlYbjNFWmRWZlNocmJWYWJRR0FNNVg4cm5WT05mSEpwVjc2Rm1XdHFyNCtpMXdBN1RkWGRxZmlDQ3MxM1dqQXE3UEljU21wZ2lHSEVBSXA3OC90cllWWVJzcGI4b2p2L2hnZkh6OUNWYzQxdzArMGs0ZE1Ed2VZVGNxcXNOQWtYcGkrZkVxTm8xMlZzU3FHSEVJSXByd3Rod1R2TU5WVldjZDFPa1NrcHNEcmxQeHQ5MGlqU2hUdUtibTJoUkRtWlprbnNwVjJEOUF0K3Q1Y0hXM0k4NXpPVWxBbFEyYXoyYmFNNnd5a3hudXlqdW0rYUxWYWlRTHZVdVg5M1pvUi91ZHdSaUp4cDRxY20wZmVGTGlrazdQaTczTzJLOGRqdXNwRGxReTV5N3lNbHNGdFUrVS9aUmJJZmRCc05nOGpjWFVudmxpdVJPVUw5NVJOcXJ6THpFN0lNNDlrL0FzLzVMVEFIQk1yek96UjlYcjkwWG5tdVJSVTBKQkRDT0dnN3FxRHZveFpsU3RUNDQ4ekNlQVVBSGliRWl1eVBnUFExUkVoVzB5NU9jYjRoRHp6T0luRitNVHVDU21lenlGSmxWdU5ja2NXNTNGV2hvb2Fja2lTNUdBQUY1cmlYcHVoTVhkTi9HWUFUODRpZGxOd29LbmU3dXRZYzlOR0piWW84S21ROFpqeERKaEg0QXRtZXJmNWtGTitJallwdVlTVXl5WW1KaFlPT2NmRlVsVkRuaVRHZUpTUkY1dnBiV1pjbzhyN3RUTkd1Nm83VExEQ2xKdFQ4bk5wbXUrMmFKTEgyaXl1SDVIbkEycW1xMHg1c3lyK05nemZpQjhDZ0FZWlg2YktHMDI1dHR2Zkh1ak1EYmg2VmFlNm5qNWd5clZtdkVNVi82M1piSTRYbWVQQ3FMb2g3MG05WHA4ZlkwU004V2tBVGhhUkU0ZjVHOVpLZGVCbnRhWEVPaVhXa2ZnaEdmKzAwV2djUHF3ODlrS2owVGhFUkdveHh1TkZaTEdyTjhVWWo5Y2tNUUNOTERiMFZKNVJNdVFpNlN5Zks5N0lxcXpVZExVcXQ2ckt0elRHNS9rRDZzdzYzSkFIUjRFMytaaHhuLzJoYzNiZkxqTmNGMk44V2doaGJ0SDVkSnpDY0VNZUhQTUpubDRNZUdkM0hmWUdJNi9XSlBtRG92UG5PS1hCRFhrd1NQNlZHL0wwNml6OXczSXpYYXFLZHdQTldIVGVIS2VVdUNFUGhvM0FLYzI1NUpuWTNGMkhmVHNwRjFXaHpyVGpGSTRiY3Y4a1NUTG1aVEgzeUsxeXZSblhLSGtUZ0pjRGk0NHNPa2VPVXluY2tQc0h3TW5EakYwcDFTa1J1dEZVdjZjcVp5MWN1SEMwaTc4NFRwNjRJZmNQRUY4OUcwL3VZR2V6emM2VStJcUluQkpDT0xEb1hEak9TT0NHM0Q5R3ZxTm9jeHlLQVVOMm1XSjVwN1lBcnhsVy9RakhtWFc0SWZkUGQ0VkY0WWFaaTRnZDNWckFxMGg1ZjVJa1duUzhIV2ZrR1JWREZwRVRHZU41S2ZuM0tmbDlBMzVpaG44aGNIV2E0cHhXcTNWMDF0Y2s0OW5XWjhXNU1rcVZXeFZZcnNxN0RIZ2JnRWJXTVJzbEFEeEZnWGVuNUZlTi9MR1NON2w2RTRtZm11SGZWZlZhQlM2TU1TS0VjRkRSdVMyTXFoc3lZM3lSS2RlcThpNGx0azVoTk90TnNUUTEzSkttT0NlcmE4Y1kwU21NVXJ5WjlxdlV1TWxVVnhQNEpZRFh6THJxV2oxU3I5Zm5LL0FoVSs3MDAwU3lsUks3T2lmb2NLMlJIdzRGRjVFcWhLb2FjcXpWamxKeWlmVjRCaDJCKzVUOExwazhMb3Y0cGFaVlBBTnZyU3JYRytUZlZlU0ZTWkk4S290WWpEcUsrQ1pWcnZlREJvYWk3YXJjQ2lSbkZwMzNvVkkxUTA2UzVPRHVLUndER2FFcWZ4MWpQTDdaYkI0MlNQek04TzBTZE40WlNGZVpjbHRLWG05bXowMlM1T0JCN25zMjBXZzBEamZ5am94T3FuSDFvTTdhZG53bXpKWmhqS29ac2dIblc0WmxMazg2NmFTQjNnNDd3eGI2UU5FZGQ5L0NjbFB1VENtZkEvQ1U0SVY3K2tMSlgrVjI0cmxySnRwTzh2dEY5NE9oVUNWREpubE5EanZqVnJWYXJXTUdpYUZCdmx5RzljaEs3RFJ5bWFxdVR5Rlh4UmlQSCtTK25CQlV1VDQxTGRxUVpyMVMwKzJwNmRLaSswUHVWTVdRRzQzRzRhYmNuRXU3eURzR3JiVlE0TGppdHU0YTRmc05lR2VyMVVvR3VRL25RVWg1aS9rWmVxV1JFcHRWNVlWRjk0dGNxWW9oMjRCanh2dEo5RTRqUHp0SUhKTWswZTRRd1pBNkpsY3ErVnNBcnhPUjJpQnRkeDVPcTlVNnVyTTZwM2dqY3UwcExCL3AvbDRGUXlibEEzay9IS3E4ZjlDM1N4VjVZWTd0VzIrZE04ZCtyQ0xuem9vajBRdEV5WnVLTngvWEZNL0NYVVgzajl5b2dpRVBZMElsTmQxdGhxOFBHczk2dlQ3ZmpHdXlhUlBYbUhJenlSc0FuRkdyMVJZTTJqNW4vd0E0emhSTGl6WWUxNVM2dTd1QlpQUW91eUVEZUx3Uzl3MmpiYW5weGl4aU9qWTJkaWpKTDNZcm9mVVdIMkpGcXJwYlZiOEU0T1F3R3hmSEZ3eUJMNVRBZEZ4VFA2ZmJSZHB2TDdxZjVFTFpEWG5JRXl1cnlHTWZtMVZzMiszMkNhbDExcThxc1dYZm5ZczdyTE9NYjdPcWZGeEVUc3pxK2s1L2REY2NGVzQ4cm1rRS9LTG9mcElMWlRma2xMeCtXRzFMVFRlS3lMT3lqbkc5WHArdk1mNmhxbHliRWo4MDVjMUcrYmtaL2hIQVgyYjVTOEFabUxtcTNPY1dmRmVwdExQb2pwSUw1VGRrL0hLWWlRYnd1anpqN1pRYllOR1JCRmFVd0hCYzAwaFYxNC9rYnRPeUd6S0pXNGVhYk9CdGVjYmJLVGN4eGtWVkx4ZzFTN1IySkNlNXkyN0ladnFqb1NZYWVFMmU4WGJLVFl6eHFHR3RKM2NOcE0xaEZDZTh5MjdJQkQ0OXhDU3ZCWEJxbnZGMnBtVU9nQWFBZDZycXY2YUdXOHowdHRUd0gwYjVDSURuRHVHdGFKNFMrZXdJZFdVbVZhN011UjhVUTlrTkdjQkxwbHFoa0xWUzR6SS9ybjY0TkJxTlF3QThsOFEzVExsZGlYWFQ1R2lqRXV1TXVITXhtVW41MUgyUm10NWV0T0c0cGhlQnIrU1YvMElwdXlHM1dxMWpoamltdHlIUFdEc2Q2dlg2bzFYa3BhcThVWWwxZmUzQ0pKWVorZG14c2JGRHMyNmZrZS9wTGtjczNIaGNENWNTVzJLTXo4NDY3NldnN0lZY1FnaXF2RC92ZHFYR0hhUjhJSzg0ejNaYXJkWXhwRnlreXQ5MTZuQU1QaXhBeUs3dW42NlpqaVcyV3Exa1dKdVJYUDBweTN5WGlpb1ljb3p4MmYzc2V1dEp4bnQ4dUNKYmtpUlJJOStueEFwVExNL3pyVFByRFRXbThwdWlUY2YxY0NteFUxWC9WNWE1TGhWVk1PUVFRbERsalRtMmE2TUJYOHNqdnJPTXVVRHlaQktmN215dXdQSWgxb2xlZmNJSkp4eWUxWTJJeUNrMjdDV1hydjFLaVYxWjViaVVWTVdRUldTeFVlN0lLY25yOG9qdGJLQzdDL0Y1U243VGxOdTZSMFVWOU1BaTB3TG1wRnhtUkw1L21ibG1MbUlaeVZkbG1lUFNVUlZERGlFRU16c2hqelpsSGROUkIxaDBwSXFjYTZvL1VtTGRmbFpHREUycTNFcktaVm5lcTZwKzNyZFNsME9xY2xhV3VTMGxWVEprWU5HUnJWWXJ5V3JWUldxNlZJNDY2cEVoaEFNeUR1dkkwV3cyeHcxNFkycDZPNEVWWlYycnE4U0tScU9SMmRCRkNDRVkrVVUzNWVKRXlEb0RYaU1pa21WZVMwbVZESGtTMWZaSnFXbmZreTZxM0pxYXJnWVdIWmxWSEVjUnNwV1M4bjVWcmpSaVdSV1dnblhma2pOZkxTTWlyekJsU1ErekhXWHA3NEQybTdQT1oybXBvaUdIRUlJbXlSOTBLc0hwM1RPK05yR3I4OER5NHBFc1RESTRjd0U4eFF5ZlNVMjNHMUhKbWc2cS9IVWV3U0g1SEZQZVJwUmppR2EwaGFXbXZEdFZQVGVQWEphV3FocnlKR1Q3T1NuNWZWT3VUVTJYN3VOUHl3M2Q1SzVWeFNWaEZQZS9EMEM5WHA5UHh0TlY1VnVkMkJVNUtaZVpWaVZKOHFpOFlpWWlweGx4cDZuK1AxT3VIc2FKTmlNdllvZENscWVtRDVqcTNTVC9QSy84bFpxcUcvSWtqVWJqRUJFNTBRem5LL0J1bzN5QUltOFhrVDhXa1ltc3IxZGxZb3hIQVhpNUdYN1M5MDY1TW90WUppS0w4NDRqT1hHc3h2aDBBSzlSNEc4QXVkelZ1OHo0WGpLK2xqRStPMG1Tc2J6elZtcEd4WkNkNlFIUVVPRE5SdHpaM1NrM2xQb2dCUm55R3NaNGV0RXhkNXllY1VNZVhRQWNCOGpscWVscVV5dzNvdlNUY3BuME1lVjZBR2NXSFgvSDZSazM1SkZpbm9nOE5hVjhMalh1VU1pc3JPdWJHdGNBZUVyUnlYQ2NubkZEcmphMVdtMEJnRE1JZktjN0RERUtrM0tEOVRIbFNoR3BGWjBieCtrWk4rVHFrU1RKbUFIbkszbVRLZGVPM0tUY2dFcU5tNEp2OW5HcWlCdHlOUURRSVBsV0paY29zV0trSitVRzdXT3EvMXgwdmh5bkw5eVF5MHVub0JLdk1PWHFUa0gyMlRFcE40aFMwMVVHdktUbzNEbE9YN2dobDRwNUd1UFRWZlZhVSs3MHd6YjdFTEdqNkNRNlR0KzRJUmZMd29VTEh3SGdUSkkzS0xHbHMwU3RCTVpXUVNteElnWE9LRHFuanRNM2JzakRwOVZxSGEwcXIxRGx6OHk0eHBRYmlqYXp5b3ZZWWNDM2k4NnQ0d3pFS0JteWlOUlU1RThZNDJzVnVJVGtud040YnF2Vk9pYVA2L1ZDakxHcHdDV3F2RXNoeTMxU0x1TitwZHhhUUZybmRUYmY0RlF5bnVmcVR3cThXMFJPaVRHaWdCeVdpNm9iY3F2VlNraGViOHFOMWxtRCs1QzN6ZFM0SmpWZGFzb05xcmg4bU9aY3I5Y2ZuYWI4bUJMclVxTlB5dVhSbjRpZEtmSExack41MkxEeUN1QTRnM3hOaVMxSzNFZGdYYmVvMVU1WFg5cXVsTFZLM0tmSzlVcCtjOWFhYzFVTnVkVnFIVVBnQzlaYmpkcHRwcnc3cGJ3aDcvS2Jabmlua2N1NjF5emN1RVpVRzFUMWszbm1jVStTSktrcmVaTXFWNWJnM2tkYnhMS1UrRVlJWWM2dzhsc0txbWpJQUJwS0x1bjdBRTFpMHg3SHgyZWE4RWFqY1lncTd6SmlVK0dkZWtTVkdqZVpjalBKWjJTWnUra3d4SGQyVHM4dS92NW5sWWdkWkx4NFdIa3VuQ29aY296eHFQSHg4U05NbWRsS2hFc3Z2WFJ1VnJGTTA3UlZsdlBsUmsxS2JPblU1dEJWRkxrZ3E1ek5CS1A4UE1zKzUrcFpEd0I0d1RCelhoalZNdVRtMHpKdmsrbmQ1TEdQelNLV3ZtNDQ0NzZpWEo4YTE1anBmNm5LSzF1dDF0Rlo1S2tYU0xuQWxLVThQM0NXNlFGVitmeXc4ejkwcW1MSU1jYW5xZkxYdWJUTDlOOEdqYU9mR3BHWlZwbHlzNUxmVlpXenhzYkdEaDAwTi8xQ2tjdk16OUVya3piRUdCY1YxUitHUWxVTVdaVTM1dFltWW91cXZLTGZHRkxrRFQ1bVBJaXdYSWxkWnJpT2JEOGpsT0NZcmJHeHNVUFR6aHJ4RXNUSHRZZTJoMUdlNkt1Q0laTjhXV3JNKzhETnphR1BDbUgxZXYzUlEyamJhSW5ZWWNabHFYR05rVmNNNDdpbFhpRnhkZUZ4Y3UxTDJ3ejRXdEg5SXplcVlNaW11RGZ2ZG5WT1dlWjdlbzBmR2M4ejVmWVNkTlJTcTd0bWQ0V3EzbVhBMjhwOHpxR0kxRXpWaHlwS3F0UjA2Zmo0K0JGRjk1TmNLTHNoa3hQSHF2TCtZYld2MS9qNWpydHB0Y0dNYTFUNU0xVjVSVlVPc0ZTUmw1ci9raTJ0bEZoSDhyeWkrMGt1bE42UVkzeVpFa09aNVZibHlsNU1JMG1TTWZyYTFJY29OVjJ0eEJhU053QTRjK0hDaFkvb3IyY1doNUwvV1hRY1hkTkxsZDh0dXAva1F0a051VnVLY2xpSlh0dWRWSm9SQUU3MWlaOU9UbzNZb1NxZmp6RStMWlJnVW00UWlvNm5hd1o5VHJtKzZINlNDMlUzNUpUNDZiRGFSc2d1QTg2ZmFkdkkrTnErZHd0V1djUU9JNWFaY2pXSkQ0OVM5Yjd4OGZFamZHdDArVFd5eDNTVjNaQkozRHJVWkFOdm0ybmJqSHhIMFIxemFIbWJuSlFqbDVCOEs0QkdYeDJ1NU1RWUY1bGlhZEh4ZHUxWGEydTEyb0tpKzB2bWxOMlFoL21HYk1yZEt2TDZtYmFONUYrVm9HUG1Gd3ZsZWxXdUpmRlRBQyt2eXFUY0lFeE1UQ3owWll5VjBNWVF3b0ZGOTVmTUtic2hHM0RkRUpPOG9aYzk4MEQ3SE91VS9TeTZjMmFwVmFyY2FvWnZrKzAvR3NtM2tHbW8xK3Z6ZFlqUGc2dFBFWnVLN2l1NVVIWkRCdUtyaDFWSFdKWDNhNUxZVE51V0pJbDJheTBYMzBFSHpFbHEzSkZTUGljaVR3MGhaRlp3cVlxWUZ4SXF2VlQxeHFMN1NTNlUzWkNUSkdrTnEreWhFbHRDajJaa1ZTdzhRK3d3eGZMVWRCVWdsNC9TcEZ3V0RIbGxqNnQzN1J6WmtweGxOK1FRd3J5aDFZbXczcmRrbXVuM1N0QkI5eDkzWW9zcVY2YkdPd0M4aVp3NHR0ZDduUzBBeVROOVlxKzhVbkpKalBHSlJmZVRYS2lBSVFkUzNtNDVqOVVxdVFUQVUzcU5IOWxLbGJpdjZFNjY3M3ZDT2lYWG11RW5KRjhHTERxeTEvdWJyZmh4VytWVmFucDcwZjBqTjZwZ3lDR0VrQnB6ZTBBSTJVWGdDLzNHMEF4Zks4OTZaRjJseXEycStpMHlubDZ2MStmM2UxK3pHWXBjcE1pL2hvcXJONlhHWmFvNjQzbWV5bEVWUXdidytMd1c3S2VHV3dZOFZIR3VGWHAySHBhYmNodUpUd1BKazhNc241VExDaVYvb01UT29rM0kxWkVxdHhweGRkSDlJbGVxWXNnaGhLQXgvbUhtYlNLVzliS3lZaXBpak1jUGE4VkZhdHhoeERJbFZsRGtmVm0wMzlrM3FmR2VvbzNJMVpFcWYxZDBmOGlkS2hreW04MjJBaGNTMloxYkp5SzFyR0twS3VmbUZqZGlNNEVWcWVudEJyeXgyV3lPWjlWdVozcDBDT1ZmWFZNck5kMU44dnRKa21qUmZTRjNxbVRJa3dEeG5ZVGNPVkJiVEc5anE1Vm1YVmUxWHEvUHorNmdVMTJ2eERwVjNxZ2k1L3FrWERFQWFCRDRZV3BhNExEVXJOVUdKWDlWZEI4WUdsVTA1QkJDSU9VTnFla0dVMjdvc1EycmxQelBQTmZlMW1xMUJXWjZXNTkxbkZlbHB0dFQ4bm9UT2EzUmFCeVNWenVkM2tpSnIvaXA0c05SYXJwYmxTc04rSmVpOHo1VXFtcklrNUR5QVNWMmRjMXZxZ21ZemFwY3I4UjlKdktzcks2OVAxVGtGZDJ6QU5kT1ZjZytOZTVJVFZkM1YwWjhra3llRkViNXpMQ0tNejQrZm9TUzM3VE9mRUgxTmdXVlhKMWZlTGpYVFA5ck50Uk9lUmhWTitSSnlPUnhwTHlGeERkU3d5OE11TVZNZjJUa05SUzVvTWhDNlVtU1BBckFHU25sWTZuaFB3eTR4U2cvVG9sdkFQR2RyVmJybUtMYTV2VEh4TVRFUWhFNXhReGZUb2xmZGlyaHVmcFJhcnJVZ0ZzTXVFNVZYOXBvTkI1VGRINExZMVFNMlhFY3AvSzRJVHVPNDVRRU4yVEhjWnlTNElic09JNVRFdHlRSGNkeFNvSWJzdU00VGtsd1EzWWN4eWtKYnNpTzR6Z2x3UTNaY1J5bkpMZ2hPNDdqbElSaEc3SXBWeHZ3QWhGWjdISzVYSm9rTmpFeHNUQ0VjR0RSZmxnNFEzOURKbmFaNmVyT0tSY3VsMnUyS3pVdTY1NHN2OEZVdnFjaXJ3OGhIRkMwTnhaQ0FXL0lMcGZMTmJVNnA4eHZCdHF2QzdQdE9ESTNaSmZMVlVZcHNWV0pMU0dFZVVYNzVOQndRM2E1WENYWGRoRjVaTkZlT1JUY2tGMHVWOW1seEM2Zy9lS2kvVEozM0pCZExsY1ZwTXFWaXhjdlBycG96OHdWTjJTWHkxVVZLZm5ib2owelY5eVFYUzVYWlVSc0lubDIwYjZaRzdWYWJVR3E5Sk4wWFM1WEphVEtsVVg3Wm03VWFyVUZxWEZUMFVGMnVWeXVtU2cxcmhHUkU0djJ6bHpvRGxsc0t6cklMcGZMTlZPcDZpZUw5czVjcU5WcUM1VFlWWFNBWFM2WGE2WktqY3VLOXM1YzZMNGhGeDVnbDh2bDZrRTdpL2JPWEZpMGFOR1JKUWl1eStWeXpWekVtbHF0dHFCby84d2NrdTNDZyt0eXVWdzlTSlhya3lRNXVHai96SU41UlFmWDVYSzVlcEVTdTRvMnp0d3c1YzZpQSt4eXVWd3oxVWp2MkZQeXQwVUgyT1Z5dVdZcVVxNG8yamR6ZzR3WG03OGx1MXl1YXVpQkdPTVRpL2JOM0xqMDBrdm5saURJTHBmTHRWK3A4cTZpUFROM0ZQRk5SUWZhNVhLNXBwTXExOGNZankvYUw0ZEMwY0YydVZ5dWFXWDJtYUo5Y3FnVUhuQ1h5K1hhcDNCdjBmNDRkSHc4MmVWeWxWQWJWTldLOXNkQ1VKR3p6RmRkdUZ5dWdwV2E3amJsN2hEQzNLSjlzWEJNZVZ2UkNYRzVYTE5XcTB5NXJXZ2ZMQlVxOGllcGNZY1Mvc2JzY3JueWwvRWVVMjR6a1djVjdYK2xSVVZlcWVSTnFlbjJ2UVBZcmFlOHpaUWJySE0rbjh2bGNzMUlTcXhUNVZaVDNKdVNmeThpcDRRUTVoVHRlWldpMld3ZXRtalJvaVByOWZwOGw4dmw2a2UxV20xQm85RTRKUGdZc2VNNGp1TTRqdU00anVNNGp1TTRqdU00anVNNGp1TTRqdU00anVNNGp0T2wxV29kMDJnMER1LzM1NU1rcVlkOWJCQm90VnJIN0ZVVGQxNmowVGg4VW1Hdk5hMWsrNC8yK0x6ZlU2L1g1d09ManV5M2ZZN2pPRlZnTHNrYlRMbFJsVnRGNVBuOWZJZ0NGNDZOalIyNjk5ZUI1SmtLWERqNTczYTdmWUx0c1hPVW5EaDJ6KzhuOElVUXdvRUt2Szd6OHpnMWhCQ1NKRkVST2EyZnRqbU80MVFDQUkxSll3UVdIVm1yMVJhSXlQUEplRFlwSCsxdWpRMGlVbFBnZzZUODl5UkpEZzRoekZIZ1FnS2ZFSkduaXNnZmh4QU9ZclBaQnVSeUJmNjYwV2djUHBVaGR6OGpoTkF4VzBDdVVwRS9VNVhQaHhEbUFIZ0oyWDZPVVg2dXdMdGlqRTBnZVhLM3pTOG01U05BKzV6dXY1OHJJczhuY0RVWnp4NXFBQjNIS1RmTlpuTWNRS1BaYkI0MnhiY2NSTVpYMWV2MStWbGV0Mk9xMDE1M1h4eEE0cGRLL29wc1B5ZUVFQUM1Q29ndlQ1TGtZQ1cvbVNUSm8xVGwyaVJKeGdDY3FzQWxaSHlSQW04S0lSdzROaloyS0lGUGpJMk5IUnBqUEdwc2JPeFFFWGtXRU44NDVSc3k4RFZWK1ZJSUlaaksvMjQybTRkcHUzMFNpZStFRU9hb3lyVWhoR0RBZFoxN2F6OURSZjRNU0o1SnludEQ1eGZDaDJLTVQ2RElaYVJjRkVLWVo4RFhzNDZyNHpnVlJwWHJUYm1iSW0vZjEvK1BNVDdCbExzbjN6NW53RHlnR1dkdzNhMmR0MTE1eStUWEZpNWMrSWhXcTNYTWREL1hiRFlQVStCdlZMbFZZM3dlSUZmRkdCZUZFQUpGM3Q1cHIvd0drTXRKdVpLVUQzVCsrK0J3dzZRaEE4bVRTWGt2S1ZlUThwNnBESm1NcnlMamViVmFiY0drK1lZUWdnSC9HS1l4WkFVdW1UekZ1R3ZPRjFIa3NuYTd6YzczeVpXdFZ1dm9HY2JWY1p4UlozK0dIRUtZQytETUVNSUJNL2s4TW5rU3lSdG1jTjJIR1RKRkxpRGx5cWsvKzlqSGtzbmpRZ2dIcXZKZlNYa0hJRmUxMiswVFFnaUJ3TlZKa3JSVTVWc1B1UmJ3TG0yM1Qvcjk1M1FOdWZ0OTgyS01UNXpPa0NjbUpoWjJKL1VPVU1vL2hSQkNvOUU0aE9UMVlUcERGbm1saXB6VitWcjhVeFU1bHlLWHRWcXRwUE0xTjJUSGNmWmdCb1k4cjlGb1BDYnNaY2d4UnBEdFoyaVNXQWhoWHZmTGN6cHZtL3grbzlGNFRQZm5EcHJpdW5zYjhvRWtyeWZ3aVQxKzlpRXJJVFJKeklnMVN1d2ljYXVJVEFCeWxhcDh2RHRtL0hjaGhFREc4d3k0anBRckdlUHBTWkxVU1g1VmdRK0t5R20vTjJUZ1V4UjVud0lmb3NobE01blVJK1VkQks1VzRHOUorVnpZdzVCSi9vTUNsMDRhOHNLRkN4K2hLcCtueVBzTXVLNVdxeTF3UTNZY1owcjJaOGhKa3JSTXVidHJ2Q0hHdU1pQW42aHlxd0xMdXpXckh4Z2ZIeitDNUZlVjJObjkyblpUYmdmd2xDbXUreEJESm5HckVydTZCeFpzTitYMktjYVg1eVJKOHFqSmZ3QnlWWklrWXlMeXlMM2FmZkJlS3lubTd2MDlJWVN3cjYvdGorN243cXVzNDV4OXJONTRTSHNkeDNHbXBGZERWcFdQbThyM0pvMnMyV3dleGhoUGYvRHo0di9vZDhoQ1ZmN1BkRU1XKzJMU2tIdjVHY2R4bkZMU3F5R1QvR0ozTW11S3p4dXVJWWNRRGd4K0NvVGpPS05BcjRZTTRHUWxOaXY1WFkzeGVXR3ZQOTBMTUdUSGNaelJvRmRERGlFRW9Ca1YrSlFTVzdxVGE2YzkrSGx1eUk3ak9IM1JqeUZQTWpFeHNWQ0JUNWx5ZTVJazJ2azhOMlRIY1MzSGhsQUFBQURaU1VSQlZKeSttRFJrQlQ0SW9MR25RZ2dIVG1mSVhlYVk4Z0VBNTRjUUFpbFhLUG1ER1Z6MzRldVFpZStROHJFczdzdHhIS2R5VEJyeXZpUWk4dkJKdlhoZWQvZlpnU0dFQThoNGRuZDUyK05EQ0FIQVg1cHlZM2MzMnR3OTYwRHNkZDE5R0xKOHpCUzNkMWROSEJRZVhOL3NPSTR6K3ZSdXlQSmVWVzd0cmpmZWFjclZrOVhPUWdnaFNaSkhtY3FQVExuYmlCMVRWVDNibHlFblNkSlNjc25rWnplYnpmSDhJK0E0amxOaEdvM0dJYTFXSzBtU3BCWDJ2YVY2am9oTTdLOHV4UlRNWTdQWjloMXNqdU00anVNNGp1TTRzNDMvRDdCRWZZVG8rYWk5QUFBQUFFbEZUa1N1UW1DQyIgYWx0PSJMSVNFIExvZ28iIHN0eWxlPSJmbG9hdDogcmlnaHQ7IiAvPgoKICAgIDxwPlNpbXBseSBwdXQsIExJU0UgYWxsb3dzIHlvdSB0byBjcmVhdGUgbGlzdHMgdGhhdCB5b3UgY2FuIGRpc3BsYXkgdGhyb3VnaG91dCB5b3VyIHdlYnNpdGUuIFlvdSBjYW4gbWFrZSBhIHNpbXBsZSBGQVEgb3IgVGVzdGltb25pYWxzIGZlYXR1cmUgd2l0aCB0aGlzIG1vZHVsZS4gVGhlIHdlYiBkZXZlbG9wZXIgY2FuIGRlZmluZSBmaWVsZHMgdG8gY29uc3RyYWluIHdoYXQgZGF0YSB0aGUgY2xpZW50IGNhbiBlbnRlci4gQSBudW1iZXIgb2YgZmllbGQgdHlwZXMgY2FuIGJlIHNwZWNpZmllZCAtIHRleHQgaW5wdXQsIGNoZWNrYm94LCB0ZXh0IGFyZWEsIHNlbGVjdCBkYXRlLCB1cGxvYWQgZmlsZSwgc2VsZWN0IGZpbGUsIGRyb3Bkb3duIC0gYW5kIGFkZGl0aW9uYWwgaW5zdHJ1Y3Rpb25zIGNhbiBiZSBzZXQgZm9yIGVhY2ggdHlwZSwgZm9yIGV4YW1wbGUsIGlucHV0IGZpZWxkIHNpemUsIG1heCBsZW5ndGgsIFdZU0lXWUcgZWRpdG9yLCBwb3NzaWJsZSBkcm9wIGRvd24gdmFsdWVzLCBwb3NzaWJsZSBmaWxlIGV4dGVuc2lvbnMsIGRpcmVjdG9yeSBwYXRocyBmb3IgZmlsZSBzZWxlY3Rpb25zLCBkYXRlIGZvcm1hdHMsIGV0Yy4uPC9wPgogICAgPHA+QW4gaW1wb3J0YW50IG5vdGUgb2Ygd2FybmluZyAtIFRoaXMgaXMgbm90IGEgY29udGVudCBjb25zdHJ1Y3Rpb24ga2l0LCBzdWNoIGFzIGluIERydXBhbC4gSXQgaXMgbWVhbnQgZm9yIHNtYWxsIGxpc3RpbmdzLCBub3QgdG8gc3RvcmUgdGhvdXNhbmRzIG9mIHJlY29yZHMuIFRoaXMgaXMgYmVjYXVzZSBvZiB0aGUgZGF0YWJhc2UgbW9kZWwgdXNlZCAoRUFWKS4gQWxzbywgZWFjaCBiaXQgb2YgZGF0YSB5b3UgZW50ZXIgaXMgc3RvcmVkIGFzIFRFWFQgZGF0YSB0eXBlLCByZWdhcmRsZXNzIG9mIHdoZXRoZXIgaXQgaXMgdmFyY2hhciwgYm9vbGVhbiwgdGltZXN0YW1wLCBldGMuPC9wPgogICAgCiAgICB7aWYgTElTRVNtYXJ0eTo6TEkyX3ByZXNlbnQoKX0KICAgIAk8ZGl2IGNsYXNzPSJyZWQiPllvdSBjYW4gaW1wb3J0IGluc3RhbmNlcyBmcm9tIExpc3RJdEV4dGVuZGVkLiBJZiB5b3UgaGF2ZSBpdCBpbnN0YWxsZWQgeW91IHdpbGwgc2VlIGEgdGFiLCA8c3Ryb25nPkltcG9ydGluZyBGcm9tIExpc3RJdEV4dGVuZGVkIEluc3RhbGxhdGlvbnM8L3N0cm9uZz4sIHdpdGggbW9yZSBoZWxwLi4uPC9kaXY+CiAgICB7L2lmfQoKPC9kaXY+]]></data>
	</file>
	<file>
	  <filename>/templates/help_importing_from_li2.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KCiAgPGgzPkltcG9ydGluZyBGcm9tIExJMiBJbnN0YW5jZXM8L2gzPgogIAogIDxkaXYgY2xhc3M9InBhZ2V3YXJuaW5nIj4KICAgIDxoMz5JbXBvcnRhbnQgSW5mb3JtYXRpb248L2gzPgogICAgPHA+PHN0cm9uZz5SZWFkIHRoaXMgY2FyZWZ1bGx5ITwvc3Ryb25nPjwvcD4KICAgIDxwPllvdSBuZWVkIHRvIGhhdmUgYSBMaXN0SXRFeHRlbmRlZCBpbnN0YWxsYXRpb24gdXBkYXRlZCB1cCB0byBpdCdzIGxhdGVzdCBrbm93biB2ZXJzaW9uICgxLjQuMSkuPGJyIC8+CiAgICBEb24ndCBhdHRlbXB0IHRvIGltcG9ydCBMaXN0SXRFeHRlbmRlZCBpbnN0YW5jZXMgd2l0aG91dCB1cGdyYWRpbmcgYXMgaXQgbWF5IHJlc3VsdCBpbiBpbmNvbXBsZXRlIExJU0UgaW5zdGFuY2VzLjwvcD4KICA8L2Rpdj4KCiAgPGRpdiBjbGFzcz0icmVkIj4KICAgIDx1bD4KICAgICAgPGxpPlRoaXMgdGFiIHdpbGwgb25seSBiZSB2aXNpYmxlIGlmIHRoZXJlIGlzIGEgdmFsaWQgTGlzdEl0RXh0ZW5kZWQgaW5zdGFsbGF0aW9uIG9uIHRoZSBjdXJyZW50IHNpdGUuPC9saT4KICAgICAgPGxpPjxzdHJvbmc+TWFrZSBzdXJlIHlvdSBjcmVhdGUgYSBmdWxsIGJhY2t1cCBvciB5b3VyIHNpdGUgYW5kIGRhdGFiYXNlIGJlZm9yZSB0YWtpbmcgYW55IGZ1cnRoZXIgYWN0aW9ucy48L3N0cm9uZz48L2xpPgogICAgPC91bD4KICA8L2Rpdj4KICAKICA8aDQ+U3RlcCBPbmU8L2g0PgogICAgCiAgPHA+SWYgdGhlcmUgYXJlIHZhbGlkIExpc3RJdEV4dGVuZGVkIGluc3RhbmNlcyBvbiB0aGUgc3lzdGVtIExJU0Ugd2lsbCBiZSBhYmxlIHRvIGRldGVjdCB0aGVtIGFuZCB0aGVyZSB3aWxsIGFwcGVhciBhIGJ1dHRvbiBvbiBMSVNFIG1hc3RlciBtb2R1bGUsIHVuZGVyIHRoZSBNYWludGVuYW5jZSB0YWIgaW5zaWRlIEltcG9ydCBJbnN0YW5jZXMgRnJvbSBMSTIgZm9ybS4gVGhpcyBpbXBvcnQgYnV0dG9uIHNob3VsZCBtYWtlIGEgY29weSBvZiBhbGwgY3VycmVudGx5IGluc3RhbGxlZCBMSTIgaW5zdGFuY2VzLCB3aXRob3V0IGNoYW5naW5nIHRoZSBvcmlnaW5hbCBvbmVzLiBIb3dldmVyLCBhdCB0aGlzIHBvaW50IExJU0Ugd2lsbCBub3QgY29weSB0aGUgdXNlcnMgcGVybWlzc2lvbnMgZnJvbSBMSTIsIGdpdmVuIHRoZSBsYWNrIG9mIGEgQ01TTVMgQ29yZSBBUEkgdG8gZG8gc28uIFRoYXQgc2hvdWxkIGJlIGRvbmUgbWFudWFsbHkuPC9wPgogIAogIDxwPlRlbXBsYXRlcyBtYXkgaGF2ZSB0byBiZSBhZGp1c3RlZCB0byB3b3JrIHdpdGggTElTRS48L3A+CiAgCiAgPGg0PlN0ZXAgVHdvPC9oND4KICAKICA8cD5BZnRlciB5b3UgYXJlIHNhdGlzZmllZCB3aXRoIHRoZSBMSVNFIGluc3RhbmNlIGNvcGllcyB5b3Ugd2lsbCBuZWVkIHRvIGNoYW5nZSB0aGUgY2FsbGluZyB0YWdzIGZyb20gPHN0cm9uZz57TGlzdEl0MiZsc2FxdW87aW5zdGFuY2VfbmFtZSZyc2FxdW87fTwvc3Ryb25nPiB0byA8c3Ryb25nPntMSVNFJmxzYXF1bztpbnN0YW5jZV9uYW1lJnJzYXF1bzt9PC9zdHJvbmc+IG9uIGV2ZXJ5IHRlbXBsYXRlIHdoZXJlIHRoZXkgYXJlIGJlaW5nIGNhbGxlZC48L3A+CiAgCiAgPGg0PlN0ZXAgVGhyZWU8L2g0PgogIAogIDxwPklkZWFsbHkgeW91ciBGaWVsZCBkZWZpbml0aW9ucyBzaG91bGQgd29yayBhZ2FpbiwgaWYgdGhhdCBpcyBub3QgdGhlIGNhc2UgeW91IHNob3VsZCB0cnkgdG8gcmVwYWlyIEZpZWxkIGRlZmluaXRpb25zIGRhdGFiYXNlIHRhYmxlIGJ5IGNsaWNraW5nIG9uICJSZXBhaXIiIGJ1dHRvbiB1bmRlciAiTWFpbnRlbmFuY2UiIHRhYi48L3A+CiAgPGJyIC8+CiAgPHA+PHN0cm9uZz5JZiB5b3UgaGF2ZSBmb2xsb3dlZCBhYm92ZSBzdGVwcywgeW91IHNob3VsZCBub3cgaGF2ZSBhIGZ1bGx5IGZ1bmN0aW9uYWwgYW5kIHVwZ3JhZGVkIExJU0UgTW9kdWxlIGFuZCBhbGwgY3JlYXRlZCBJbnN0YW5jZXMuPC9zdHJvbmc+PC9wPgogIDxwPjxzdHJvbmc+QWZ0ZXIgdGhpcyBwb2ludCB5b3Ugc2hvdWxkIGJlIGFibGUgdG8gdW5pbnN0YWxsIExJMiBJbnN0YW5jZXMgYW5kIExpc3RJdEV4dGVuZGVkIGl0c2VsZiAobWFrZSBzdXJlIHlvdSBrZWVwIGEgZnVsbCBiYWNrdXAganVzdCBpbiBjYXNlKS48L3N0cm9uZz48L3A+Cgo8L2Rpdj4=]]></data>
	</file>
	<file>
	  <filename>/templates/help_modes_tab.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PGgzPk1vZHVsZSBJbnN0YW5jZSBNb2RlczwvaDM+DQo8cD5MSVNFIGluc3RhbmNlcyBjYW4gaGF2ZSBub3cgdGhyZWUgZGlmZmVyZW50IDxzdHJvbmc+b3BlcmF0aW9uIG1vZGVzPC9zdHJvbmc+OjwvcD4NCjx1bD4NCiAgPGxpPjxzdHJvbmc+TGlzdDwvc3Ryb25nPiAoZGVmYXVsdCk8L2xpPg0KICA8bGk+PHN0cm9uZz5HbG9iYWw8L3N0cm9uZz48L2xpPg0KICA8bGk+PHN0cm9uZz5Mb2NhbDwvc3Ryb25nPjwvbGk+DQo8L3VsPg0KDQo8cD5UaGVzZSBhcmUgbXV0dWFsbHkgZXhjbHVzaXZlIGFuZCBjYW4gb25seSBiZSBzZXQgYXQgY3JlYXRpb24gdGltZSBhbmQgb25seSBpZiB0aGUgPHN0cm9uZz5BbGxvdyBzeXN0ZW0gdG8gdXBncmFkZSBpbnN0YW5jZXMgYXV0b21hdGljYWxseSB3aGVuIExJU0UgaXMgdXBncmFkZWQ8L3N0cm9uZz4gaXMgc2VsZWN0ZWQuIE90aGVyd2lzZSB0aGUgZGVmYXVsdCBtb2RlIHdpbGwgYmUgPHN0cm9uZz5MaXN0PC9zdHJvbmc+IHdoaWNoIGlzIHRoZSB1c3VhbCwgd2VsbCBrbm93biwgaW5zdGFuY2UgYmVoYXZpb3VyLjwvcD4NCg0KPGhyPg0KDQo8aDQ+TGlzdCBNb2RlPC9oND4NCg0KPHA+VGhpcyBpcyB0aGUgdXN1YWwgTElTRSBJbnN0YW5jZSBiZWhhdmlvciBhbmQgdGhlIG9uZSB5b3Ugd2lsbCB1c2UgbW9zdCBvZiB0aGUgdGltZS4gSWYgeW91IGFyZSBmYW1pbGlhciB3aXRoIExJU0UgeW91J2xsIHNlZSB0aGUgdXN1YWwgaW50ZXJmYWNlIG9uIHRoZSBzZWxlY3RlZCBBZG1pbiBzZWN0aW9uLjwvcD4NCg0KPGRpdiBjbGFzcz0iaW5mb3JtYXRpb24iPg0KICA8cD5MSVNFIG5vdyBjYW4gaGF2ZSBzZXBhcmF0ZWQgc2V0dGluZ3MgbWVudSBlbnRyeS4gVGhlIG9wdGlvbiBpcyBvbmx5IHBvc3NpYmxlIHdoZW4gdGhlIGluc3RhbmNlIGlzIGluIDxzdHJvbmc+TW9kZSBMaXN0PC9zdHJvbmc+LjwvcD4NCjwvZGl2Pg0KDQo8cD5JZiBzZWxlY3RlZCwgdGhlIG9wdGlvbiB0byBoYXZlIGEgc2VwYXJhdGVkIHNldHRpbmdzIG1lbnUgZW50cnkgd2lsbCBzcGxpdCBMSVNFIGludGVyZmFjZSBpbiB0d28gcGFnZXMgYWNjZXNzaWJsZSB2aWEgZGlmZmVyZW50IG1lbnUgZW50cmllcy4gT25lIGlzIHRoZSBzZWN0aW9uIHNlbGVjdGVkIGluIG9wdGlvbnMgd2hlcmUgdGhlIGl0ZW1zIGxpc3QgYW5kIGVkaXRvciwgYXMgd2VsbCBhcyB0aGUgY2F0ZWdvcmllcyBhbmQgYW55IGFkZGl0aW9uYWwgbG9jYWwgc2V0dGluZ3Mgd2lsbCBiZSBhY2Nlc3NpYmxlIDxpPihtb3JlIG9uIGxvY2FsIHNldHRpbmdzIGFuZCBpbnN0YW5jZXMgaW4gbG9jYWwgbW9kZSBiZWxvdyk8L2k+LiBUaGUgb3RoZXIgc2VjdGlvbiB3aWxsIGJlIGluIDxiPlNldHRpbmdzIC0gPGk+Jmx0O0luc3RhbmNlIEZyaWVuZGx5IE5hbWUmZ3Q7PC9pPjwvYj4sIHVuZGVyIHRoZSA8Yj5TaXRlIEFkbWluPC9iPiBzZWN0aW9uLCB3aGVyZSB0aGUgY3VzdG9tIGZpZWxkcyBkZWZpbml0aW9ucywgIHRlbXBsYXRlcyBhbmQgb3B0aW9ucyB3aWxsIGJlIGFjY2Vzc2libGUuPC9wPg0KPHA+VGhlIGRlZmF1bHQgaXMgbm90IHRvIGhhdmUgdGhlIGludGVyZmFjZSBzcGxpdCwgYXMgaW4gcHJldmlvdXMgTElTRSB2ZXJzaW9ucywgd2hlcmUgYWxsIHdpbGwgYmUgYWNjZXNzaWJsZSBpbiB0aGUgbWVudSBlbnRyeSB3aXRoIHRoZSBmcmllbmRseSBtb2R1bGUgbmFtZSwgdW5kZXIgdGhlIHNlbGVjdGVkIGFkbWluIHNlY3Rpb24uPC9wPg0KDQo8aHI+DQoNCjxoND5HbG9iYWwgTW9kZTwvaDQ+DQoNCjxkaXYgY2xhc3M9ImluZm9ybWF0aW9uIj4NCiAgPHA+VGhpcyBtb2RlIGlzIHNvbWV3aGF0IGxpbWl0ZWQgaW4gZmVhdHVyZXMuIEZvciBhIGZ1bGwgZmxlZGdlZCBkZWRpY2F0ZWQgbW9kdWxlIHVzZSA8YSBocmVmPSJodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnL3Byb2plY3RzL2N1c3RvbWdzIj5DdXN0b20gR2xvYmFsIFNldHRpbmdzPC9hPi48L3A+DQogIDxwPkxJU0UgaW5zdGFuY2VzIGluIGdvYmFsIG1vZGUgY2FuIGVhc2lseSBjb21wbGVtZW50IHRoZSBhYm92ZSBtb2R1bGUuPC9wPg0KPC9kaXY+DQo8ZGl2IGNsYXNzPSJtX3RvcF8yNSI+PC9kaXY+DQo8cD5JbiB0aGlzIG1vZGUgdGhlIGluc3RhbmNlIHdpbGwgYmVoYXZlIGEgYml0IGxpa2UgdGhlIG9sZCA8c3Ryb25nPkdsb2JhbCBDb250ZW50IEJsb2Nrczwvc3Ryb25nPiB3aGVyZSB5b3UgY2FuIGhhdmUgYSBsaXN0IG9mIGdsb2JhbCBmaWVsZHMgd2hpY2ggY2FuIGJlIHVzZWQgZm9yIGEgbXVsdGl0dWRlIG9mIHVzZXMuIEZpZWxkcyBzZXQgaW4gaW5zdGFuY2VzIGluIDxiPjxpPmdsb2JhbCBtb2RlPC9pPjwvYj4gd2lsbCBiZSBhdmFpbGFibGUgaW4gYWxsIHRlbXBsYXRlcyBpbiBDTVNNUywgZXhjZXB0IGlmIHRoZSB0ZW1wbGF0ZSB3YXMgY3JlYXRlZCBieSBzb21lIG1vZHVsZSB0aGF0IHByZXZlbnRzIGdsb2JhbCBTbWFydHkgdmFyaWFibGVzIHRvIGJlIGluIHNjb3BlLiBXaGVuIGEgbW9kdWxlIGlzIGNyZWF0ZWQgaW4gPGI+PGk+Z2xvYmFsIG1vZGU8L2k+PC9iPiBpdCB3aWxsIGF1dG9tYXRpY2FsbHkgaGF2ZSBhIHNldHRpbmdzIHBhZ2UgaW4gdGhlIGFkbWluIHNlY3Rpb24gd2l0aCB0aGUgY3VzdG9tIGZpZWxkcyBhbmQgb3B0aW9ucyB0YWJzIHNwbGl0IGZyb20gdGhlIHNlbGVjdGVkIHNlY3Rpb24sIHdoZXJlIGl0IHdpbGwgb25seSBzaG93IGEgcGFnZSBzaW1pbGFyIHRvIHRoZSA8Yj5JdGVtcyBFZGl0b3I8L2I+LCBidXQgc2hvd2luZyBvbmx5IHRoZSBjdXN0b20gZmllbGRzIGNyZWF0ZWQgZm9yIHRoYXQgcHVycG9zZS4gSW4gdGhpcyBtb2RlIHRoZSBtb2R1bGUgU21hcnR5IHRhZyB3aWxsIGFsc28gaGF2ZSBhIGRpZmZlcmVudCBiZWhhdmlvdXIgPGVtPihzZWUgYmVsb3cpPC9lbT4uIFRoZSBmaWVsZCB0eXBlcyB5b3Ugd2lsbCBiZSBhYmxlIHRvIHVzZSBvbiB0aGlzIG1vZGUgd2lsbCBiZSBhIGJpdCBsZXNzIGFzIHNvbWUgd29uJ3QgZml0IHRoZSBwdXJwb3NlIGZvciB0aGlzIG1vZGUuIDxiPkNhdGVnb3JpZXM8L2I+LCBmb3IgaW5zdGFuY2UsIHdvbid0IGJlIGVuYWJsZWQgZm9yIHRoaXMgdXNlLjwvcD4NCjxkaXYgY2xhc3M9Im1fdG9wXzI1Ij48L2Rpdj4NCjxwPkxldCdzIHNheSwgYXMgYW4gZXhhbXBsZSwgdGhhdCB5b3UgaGF2ZSBjcmVhdGVkIGEgTElTRSBpbnN0YW5jZSBjYWxsZWQgPGI+R2xvYmFsPC9iPiBpbiA8Yj48aT5nbG9iYWwgbW9kZTwvaT48L2I+LiBMSVNFIHdpbGwsIGFzIHVzdWFsLCBjcmVhdGUgYSBtb2R1bGUgaW5zdGFuY2UgdGhhdCB3aWxsIGJlIGNhbGxlZCA8Yj5MSVNFR2xvYmFsPC9iPi4gSG93ZXZlciBpdCB3aWxsIG5vdCByZWdpc3RlciB0aGUgbW9kdWxlIGluIFNtYXJ0eSBhcyB1c3VhbDogPGI+e2xkZWxpbX1MSVNFR2xvYmFse3JkZWxpbX08L2I+IHdvbid0IGhhdmUgdGhlIHVzdWFsIHBhcmFtZXRlcnMgeW91IHdvdWxkIGV4cGVjdCBhbmQsIHBhcnRpY3VsYXJseSwgd29uJ3QgaGF2ZSB0aGUgZXhwZWN0ZWQgZnJvbnRlbmQgYWN0aW9ucy4gV2hpbGUgdGhlIHRhZyBpcyBzdGlsbCB2YWxpZCwgaXQgd2lsbCBoYXZlIGRpZmZlcmVudCBmdW5jdGlvbnMgdGhhbiB3aGF0IHlvdSdkIGV4cGVjdCBmcm9tIHRoZSB1c3VhbCBMSVNFIG1vZGUuPC9wPg0KDQo8ZGl2IGNsYXNzPSJ3YXJuaW5nIj4NCiAgPHA+PGI+TElTRUdsb2JhbDwvYj4sIHtsZGVsaW19TElTRUdsb2JhbHtyZGVsaW19IGFuZCB7bGRlbGltfSRMSVNFR2xvYmFse3JkZWxpbX0gYXJlIHVzZWQgaGVyZSBhcyBleGFtcGxlcy4gVGhlIGFjdHVhbCBuYW1lcyB3aWxsIGRlcGVuZCBvbiB0aGUgbmFtZSB5b3UnbGwgZ2l2ZSB0byB0aGUgbW9kdWxlcyBvbiBjcmVhdGlvbiwgYW5kIHdpbGwgZm9sbG93IHRoZSB0aXBpY2FsIHRlbXBsYXRlOiA8Yj5MSVNFPGk+Jmx0O0luc3RhbmNlTmFtZSZndDs8L2k+PC9iPjwvcD4NCjwvZGl2Pg0KDQo8cD5JbiBHb2JhbCBtb2RlIHRoZSBhbGlhc2VzIG9mIHRoZSBjcmVhdGVkIGN1c3RvbSBmaWVsZHMgd2lsbCBiZSBhdmFpbGFibGUgdXNpbmcgdGhlIGZvbGxvd2luZyBjYWxsczo8L3A+DQo8cHJlPjxjb2RlPntsZGVsaW19KiB0YWcgYXMgc3RhdGljIGNsYXNzIHdpdGggYSBnZXQgbWV0aG9kICp7cmRlbGltfQ0Ke2xkZWxpbX1MSVNFR2xvYmFsOjpnZXQoJyZsdDtmaWVsZF9hbGlhcyZndDsnKXtyZGVsaW19DQoNCntsZGVsaW19KiB2YXJpYWJsZSB0YWcgYXMgZWl0aGVyIGFuIG9iamVjdCBvciBhbiBhcnJheSAqe3JkZWxpbX0NCntsZGVsaW19JExJU0VHbG9iYWwuJmx0O2ZpZWxkX2FsaWFzJmd0O3tyZGVsaW19DQp7bGRlbGltfSRMSVNFR2xvYmFsWycmbHQ7ZmllbGRfYWxpYXMmZ3Q7J117cmRlbGltfQ0Ke2xkZWxpbX0kTElTRUdsb2JhbC0+Jmx0O2ZpZWxkX2FsaWFzJmd0O3tyZGVsaW19DQo8L2NvZGU+PC9wcmU+DQoNCjxwPlNvLCBpZiB5b3UgaGF2ZSBhIGZpZWxkIHdpdGggdGhlIGFsaWFzIDxlbT5teWFsaWFzPC9lbT4gd2l0aCB0aGUgdmFsdWUgJ015IFRleHQnLCB0byBzaG93ICdNeSBUZXh0JyBvbiBhIHRlbXBsYXRlIGp1c3QgdXNlIG9uZSBvZiB0aGUgZm9sbG93aW5nOjwvcD4NCg0KPHByZT48Y29kZT57bGRlbGltfSogbm90ZSB0aGUgdXNlIG9mIHRoZSBMSVNFR2xvYmFsIHRhZyBhcyBzdGF0aWMgY2xhc3Mgd2l0aCBhIGdldCBtZXRob2QgKntyZGVsaW19DQp7bGRlbGltfUxJU0VHbG9iYWw6OmdldCgnbXlhbGlhcycpe3JkZWxpbX0NCg0Ke2xkZWxpbX0qIG90aGVyd2lzZSB1c2UgdGhlICRMSVNFR2xvYmFsIHZhcmlhYmxlIHRhZyBhcyBlaXRoZXIgYW4gb2JqZWN0IG9yIGFuIGFycmF5IGFzIGJlbG93ICp7cmRlbGltfQ0Ke2xkZWxpbX0kTElTRUdsb2JhbC5teWFsaWFze3JkZWxpbX0NCntsZGVsaW19JExJU0VHbG9iYWxbJ215YWxpYXMnXXtyZGVsaW19DQp7bGRlbGltfSRMSVNFR2xvYmFsLT5teWFsaWFze3JkZWxpbX0NCjwvY29kZT48L3ByZT4NCg0KPHA+VG8gc2VlIGEganNvbiByZXByZXNlbnRhdGlvbiBvZiBhbGwgdGhlIHN0b3JlZCBmaWVsZCBuYW1lcyBhbmQgcmVzcGVjdGl2ZSB2YWx1ZXMgdXNlIG9uZSBvZiB0aGUgZm9sbG93aW5nIG9uIHlvdXIgdGVtcGxhdGU6PC9wPg0KDQo8cHJlPjxjb2RlPntsZGVsaW19TElTRUdsb2JhbHtyZGVsaW19DQp7bGRlbGltfSRMSVNFR2xvYmFse3JkZWxpbX0NCjwvY29kZT48L3ByZT4NCjxkaXYgY2xhc3M9Im1fdG9wXzE1Ij48L2Rpdj4NCjxkaXYgY2xhc3M9ImluZm9ybWF0aW9uIj4NCiAgPHA+VGhlIGFib3ZlIHRhZ3Mgd2lsbCBmYWlsIHNpbGVudGx5IGlmIHRoZSBhbGlhcyBkb2Vzbid0IGV4aXN0LjwvcD4NCiAgPHA+SG93ZXZlciBpZiB5b3UgbG9vayBhdCB0aGUgcGFnZSBzb3VyY2UgeW91IHNob3VsZCBmaW5kIEhUTUwgY29tbWVudHMgc3VjaCBhcyA8ZW0+Jmx0OyEtLSBpbnZhbGlkIC0tJmd0OzwvZW0+IGluIGNhc2Ugb2YgZXJyb3JzLjwvcD4NCjwvZGl2Pg0KPGRpdiBjbGFzcz0iaW5mb3JtYXRpb24iPg0KICA8cD5Zb3UgY2FuIGhhdmUgbXVsdGlwbGUgaW5zdGFuY2VzIGluIGdsb2JhbCBtb2RlLCBpbiBkaWZmZXJlbnQgc2VjdGlvbnMgb2YgdGhlIGFkbWluIGNvbnNvbGUuPC9wPg0KPC9kaXY+DQo8ZGl2IGNsYXNzPSJ3YXJuaW5nIj4NCiAgPHA+TElTRSBwbHVnaW5zIHdvbid0IGJlIGFibGUgdG8gZGlmZmVyZW50aWF0ZSBhbGlhc2VzIGZyb20gbXVsdGlwbGUgZ2xvYmFsIGluc3RhbmNlcywgc28gaW4gY2FzZSB5b3UgaGF2ZSB0aGUgc2FtZSBhbGlhcyBvbiBkaWZmZXJlbnQgaW5zdGFuY2VzIG9ubHkgb25lIHRoZSB2YWx1ZXMgd2lsbCBiZSBhdmFpbGFibGUsIGFuZCB0aGUgb25lIHRoYXQgaXMgd29uJ3QgYmUgZWFzaWx5IHByZWRpY3RhYmxlLjwvcD4NCjwvZGl2Pg0KPGhyPg0KPGg0PkxvY2FsIE1vZGU8L2g0Pg0KDQo8cD5JbiB0aGlzIG1vZGUgdGhlIGluc3RhbmNlIHdpbGwgYmVoYXZlIGFzIGFuIGFkZCBvbiB0YWIgZm9yIG90aGVyIDxiPkxJU0UgaW5zdGFuY2VzPC9iPi4gSG93ZXZlciBvbmx5IGluc3RhbmNlcyBpbiBsaXN0IG1vZGUgd2lsbCBiZSBhYmxlIHRvIHVzZSB0aGlzIGZlYXR1cmU6IHlvdWwgYmUgYWJsZSB0byBzZWxlY3QgaW4gdGhlIG9wdGlvbnMgdGFiIG9uZSBvZiB0aGUgaW5zdGFuY2VzIHRoYXQgbWF5IGV4aXN0IGluIGxvY2FsIG1vZGUgaWYgYW55IGFscmVhZHkgZXhpc3RzLiBBbHRob3VnaCB0aGVyZSBjYW4gYmUgbXVsdGlwbGUgaW5zdGFuY2VzIGluIGxvY2FsIG1vZGUsIGluc3RhbmNlcyBpbiBsaXN0IG1vZGUgY2FuIG9ubHkgc2VsZWN0IG9uZSBvZiB0aGUgbG9jYWwgbW9kZSBpbnN0YW5jZXMgYXQgYW55IGdpdmVuIHRpbWUuIERpZmZlcmVudCBpbnN0YW5jZXMgaW4gbGlzdCBtb2RlIGNhbiB1c2UgdGhlIHNhbWUgbG9jYWwgbW9kZSBpbnN0YW5jZSB0aG91Z2guPC9wPg0KPHA+VGhpcyBtb2RlIGlzIHNpbWlsYXIgdG8gPGI+PGk+Z2xvYmFsIG1vZGU8L2k+PC9iPiBpbiB0aGF0IHRoZSBpbnN0YW5jZSB3aWxsIGJlaGF2ZSBhIGJpdCBsaWtlIHRoZSBvbGQgPHN0cm9uZz5HbG9iYWwgQ29udGVudCBCbG9ja3M8L3N0cm9uZz4gYnV0IHRoZXJlIGFyZSBhIGZldyBmdW5kYW1lbnRhbCBkaWZmZXJlbmNlcy4gRmlyc3QgdGhlIG1vZHVsZSB3b24ndCBoYXZlIGEgdHlwaWNhbCBwYWdlIHdoZXJlIHRvIGVkaXQgdGhlIGN1c3RvbSBmaWVsZHMuIEFzIGV4cGxhaW5lZCBhYm92ZSBpdCB3aWxsIGFwcGVhciBhcyBhbiBhZGRpdGlvbmFsIHRhYiwgPGI+U2V0dGluZ3M8L2I+LiBGaWVsZHMgc2V0IGluIGluc3RhbmNlcyBpbiA8Yj48aT5sb2NhbCBtb2RlPC9pPjwvYj4gd2lsbCBvbmx5IGJlIGF2YWlsYWJsZSBpbiB0ZW1wbGF0ZXMgaW4gc2NvcGUgd2l0aCBhbnkgb2YgdGhlIExJU0UgaW5zdGFuY2VzJyBmcm9udGVuZCBhY3Rpb25zIHdoZXJlIHRoYXQgbG9jYWwgaW5zdGFuY2UgaXMgYXNzb2NpYXRlZCB3aXRoLiBJbiBsb2NhbCBtb2RlLCBMSVNFIHdpbGwgdHJ5IHRvIGRldGVybWluZSB3aGljaCBpbnN0YW5jZSBpcyBjdXJyZW50bHkgaW4gc2NvcGUgYW5kIHJldHJpZXZlIHRoZSBsb2NhbCBzZXR0aW5ncyB1c2VkIGZvciB0aGF0IHBhcnRpY3VsYXIgaW5zdGFuY2UuIEFzIGEgcnVsZSBvZiB0aHVtYiBvbmx5IHVzZSB0aGVzZSBTbWFydHkgcGx1Z2lucyBmcm9tIHRlbXBsYXRlcyBzcGVjaWZpYyBmb3IgdGhlIExJU0UgaW5zdGFuY2UgaXQgaXMgYXNzb2NpYXRlZCB3aXRoLCBvciBjaGlsZCB0ZW1wbGF0ZXMuPC9wPg0KPGRpdiBjbGFzcz0ibV90b3BfMjUiPjwvZGl2Pg0KPHA+TGV0J3Mgc2F5LCBhcyBhbiBleGFtcGxlLCB0aGF0IHlvdSBoYXZlIGNyZWF0ZWQgYSBMSVNFIGluc3RhbmNlIGNhbGxlZCA8Yj5Mb2NhbDwvYj4gaW4gPGI+PGk+bG9jYWwgbW9kZTwvaT48L2I+LiBMSVNFIHdpbGwsIGFzIHVzdWFsLCBjcmVhdGUgYSBtb2R1bGUgaW5zdGFuY2UgdGhhdCB3aWxsIGJlIGNhbGxlZCA8Yj5MSVNFTG9jYWw8L2I+LiBIb3dldmVyIGl0IHdpbGwgbm90IHJlZ2lzdGVyIHRoZSBtb2R1bGUgaW4gU21hcnR5IGFzIHVzdWFsOiA8Yj57bGRlbGltfUxJU0VMb2NhbHtyZGVsaW19PC9iPiB3b24ndCBoYXZlIHRoZSB1c3VhbCBwYXJhbWV0ZXJzIHlvdSB3b3VsZCBleHBlY3QgYW5kLCBwYXJ0aWN1bGFybHksIHdvbid0IGhhdmUgdGhlIGV4cGVjdGVkIGZyb250ZW5kIGFjdGlvbnMuIFdoaWxlIHRoZSB0YWcgaXMgc3RpbGwgdmFsaWQsIGl0IHdpbGwgaGF2ZSBkaWZmZXJlbnQgZnVuY3Rpb25zIHRoYW4gd2hhdCB5b3UnZCBleHBlY3QgZnJvbSB0aGUgdXN1YWwgTElTRSBtb2RlLjwvcD4NCg0KPGRpdiBjbGFzcz0id2FybmluZyI+DQogIDxwPjxiPkxJU0VMb2NhbDwvYj4sIHtsZGVsaW19TElTRUxvY2Fse3JkZWxpbX0gYW5kIHtsZGVsaW19JExJU0VMb2NhbHtyZGVsaW19IGFyZSB1c2VkIGhlcmUgYXMgZXhhbXBsZXMuIFRoZSBhY3R1YWwgbmFtZXMgd2lsbCBkZXBlbmQgb24gdGhlIG5hbWUgeW91J2xsIGdpdmUgdG8gdGhlIG1vZHVsZXMgb24gY3JlYXRpb24sIGFuZCB3aWxsIGZvbGxvdyB0aGUgdGlwaWNhbCB0ZW1wbGF0ZTogPGI+TElTRTxpPiZsdDtJbnN0YW5jZU5hbWUmZ3Q7PC9pPjwvYj48L3A+DQo8L2Rpdj4NCg0KPHA+SW4gbG9jYWwgbW9kZSB0aGUgYWxpYXNlcyBvZiB0aGUgY3JlYXRlZCBjdXN0b20gZmllbGRzIHdpbGwgYmUgYXZhaWxhYmxlIHVzaW5nIHRoZSBmb2xsb3dpbmcgY2FsbHM6PC9wPg0KPHByZT48Y29kZT57bGRlbGltfSogdGFnIGFzIHN0YXRpYyBjbGFzcyB3aXRoIGEgZ2V0IG1ldGhvZCAqe3JkZWxpbX0NCntsZGVsaW19TElTRUxvY2FsOjpnZXQoJyZsdDtmaWVsZF9hbGlhcyZndDsnKXtyZGVsaW19DQoNCntsZGVsaW19KiB2YXJpYWJsZSB0YWcgYXMgZWl0aGVyIGFuIG9iamVjdCBvciBhbiBhcnJheSAqe3JkZWxpbX0NCntsZGVsaW19JExJU0VMb2NhbC4mbHQ7ZmllbGRfYWxpYXMmZ3Q7e3JkZWxpbX0NCntsZGVsaW19JExJU0VMb2NhbFsnJmx0O2ZpZWxkX2FsaWFzJmd0Oydde3JkZWxpbX0NCntsZGVsaW19JExJU0VMb2NhbC0+Jmx0O2ZpZWxkX2FsaWFzJmd0O3tyZGVsaW19DQo8L2NvZGU+PC9wcmU+DQoNCjxwPlNvLCBpZiB5b3UgaGF2ZSBhIGZpZWxkIHdpdGggdGhlIGFsaWFzIDxlbT5teWFsaWFzPC9lbT4gd2l0aCB0aGUgdmFsdWUgJ015IFRleHQnLCB0byBzaG93ICdNeSBUZXh0JyBvbiBhIHRlbXBsYXRlIGp1c3QgdXNlIG9uZSBvZiB0aGUgZm9sbG93aW5nOjwvcD4NCg0KPHByZT48Y29kZT57bGRlbGltfSogbm90ZSB0aGUgdXNlIG9mIHRoZSBMSVNFTG9jYWwgdGFnIGFzIHN0YXRpYyBjbGFzcyB3aXRoIGEgZ2V0IG1ldGhvZCAqe3JkZWxpbX0NCntsZGVsaW19TElTRUxvY2FsOjpnZXQoJ215YWxpYXMnKXtyZGVsaW19DQoNCntsZGVsaW19KiBvdGhlcndpc2UgdXNlIHRoZSAkTElTRUdsb2JhbCB2YXJpYWJsZSB0YWcgYXMgZWl0aGVyIGFuIG9iamVjdCBvciBhbiBhcnJheSBhcyBiZWxvdyAqe3JkZWxpbX0NCntsZGVsaW19JExJU0VMb2NhbC5teWFsaWFze3JkZWxpbX0NCntsZGVsaW19JExJU0VMb2NhbFsnbXlhbGlhcydde3JkZWxpbX0NCntsZGVsaW19JExJU0VMb2NhbC0+bXlhbGlhc3tyZGVsaW19DQo8L2NvZGU+PC9wcmU+DQoNCjxwPlRvIHNlZSBhIGpzb24gcmVwcmVzZW50YXRpb24gb2YgYWxsIHRoZSBzdG9yZWQgZmllbGQgbmFtZXMgYW5kIHJlc3BlY3RpdmUgdmFsdWVzIHVzZSBvbmUgb2YgdGhlIGZvbGxvd2luZyBvbiB5b3VyIHRlbXBsYXRlOjwvcD4NCg0KPHByZT48Y29kZT57bGRlbGltfUxJU0VMb2NhbHtyZGVsaW19DQp7bGRlbGltfSRMSVNFTG9jYWx7cmRlbGltfQ0KPC9jb2RlPjwvcHJlPg0KPGRpdiBjbGFzcz0ibV90b3BfMTUiPjwvZGl2Pg0KPGRpdiBjbGFzcz0iaW5mb3JtYXRpb24iPg0KICA8cD5Zb3UgY2FuIGhhdmUgbXVsdGlwbGUgaW5zdGFuY2VzIGluIGxvY2FsIG1vZGUsIGhvd2V2ZXIgeW91IGNhbiBvbmx5IGhhdmUgb25lIHNlbGVjdGVkIG9uIGFueSBnaXZlbiBMSVNFIGluc3RhbmNlIGluIGxpc3QgbW9kZS4gSW5zdGFuY2VzIGluIGxpc3QgbW9kZSBkb24ndCBuZWVkIHRvIGhhdmUgYW55IGFzc29jaWF0ZWQgbG9jYWwgbW9kZSBpbnN0YW5jZSBhdCBhbGwuPC9wPg0KPC9kaXY+DQo8ZGl2IGNsYXNzPSJ3YXJuaW5nIj4NCiAgPHA+TElTRSBwbHVnaW5zIGZvciBsb2NhbCBpbnN0YW5jZXMgd2lsbCBiZSBhYmxlIHRvIGRpZmZlcmVudGlhdGUgd2hpY2ggb2YgdGhlIGluc3RhbmNlcyBpbiBsaXN0IG1vZGUgYXNzb2NpYXRlZCB3aXRoIGl0IGlzIGJlaW5nIHVzZWQgcHJvdmlkZWQgdGhlIHBsdWdpbnMgYXJlIGJlaW5nIGNhbGxlZCBmcm9tIHRlbXBsYXRlcyBvZiBhY3Rpb25zIG9mIHRoZSBhc3NvY2lhdGVkIGxpc3QgbW9kZSBpbnN0YW5jZXMuPC9wPg0KPC9kaXY+]]></data>
	</file>
	<file>
	  <filename>/templates/help_new_instances_tab.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PGgyPkNyZWF0aW5nIE1vZHVsZSBJbnN0YW5jZXM8L2gyPg0KDQo8cD5UaGlzIG1haW4gYW5kIGJhc2UgbW9kdWxlIGlzIGEgPHN0cm9uZz5Db250cm9sIFBhbmVsPC9zdHJvbmc+IGZvciBjcmVhdGluZyBvdGhlciA8c3Ryb25nPkxJU0UgTW9kdWxlIEluc3RhbmNlczwvc3Ryb25nPi48L3A+DQo8cD5UbyBjcmVhdGUgYSA8c3Ryb25nPkxJU0UgTW9kdWxlIEluc3RhbmNlPC9zdHJvbmc+LCBzaW1wbHkgZ28gdG8gPHN0cm9uZz5JbnN0YW5jZXM8L3N0cm9uZz4gdGFiIGFuZCBjbGljayBvbiA8c3Ryb25nPkNyZWF0ZSBJbnN0YW5jZTwvc3Ryb25nPiBidXR0b24uPC9wPg0KPHA+TWFrZSBzdXJlIHlvdSBmb2xsb3cgdGhlIENNU01TIG1vZHVsZSBuYW1pbmcgY29udmVudGlvbnM6IHVzZSA8c3Ryb25nPmEgLSB6PC9zdHJvbmc+IGNoYXJhY3RlcnMgd2l0aCBubyBwdW5jdHVhdGlvbiBvciBzcGFjZXMgdG8gYmUgc2FmZS48L3A+DQo8ZGl2IGNsYXNzPSJ3YXJuaW5nIj4NCiAgPHA+PHN0cm9uZz5BbGxvdyBzeXN0ZW0gdG8gdXBncmFkZSBpbnN0YW5jZXMgYXV0b21hdGljYWxseSB3aGVuIExJU0UgaXMgdXBncmFkZWQ8L3N0cm9uZz4gb3B0aW9uIGlzIHNlbGVjdGVkIGJ5IGRlZmF1bHQgaW4gdGhlIGJhc2UgTElTRSBtb2R1bGUgb3B0aW9ucyBwYWdlLjwvcD4NCiAgPHA+V2l0aG91dCB0aGF0IG9wdGlvbiBzZWxlY3RlZCBMSVNFIHdpbGwgbm90IGluc3RhbGwgdGhlIG5ldyBjcmVhdGVkIGluc3RhbmNlcyBhdCBjcmVhdGlvbiB0aW1lIGFuZCB3aWxsIG5vdCBiZSBhYmxlIHRvIHNldCBvcHRpb25zIG90aGVyIHRoYW4gdGhlIGluc3RhbmNlIG5hbWUsIGluIHdoaWNoIGNhc2UgdGhlIGluc3RhbmNlcyB3aWxsIGhhdmUgdG8gYmUgaW5zdGFsbGVkIHZpYSBNb2R1bGUgTWFuYWdlciwgYW5kIGl0cyBvcHRpb25zIHNldCBhZnRlciBpbnN0YWxsLjwvcD4NCjwvZGl2Pg0KPGRpdiBjbGFzcz0iaW5mb3JtYXRpb24iPg0KICA8cD5MSVNFIG5vdyBoYXMgPHN0cm9uZz5vcGVyYXRpb24gbW9kZXM8L3N0cm9uZz4uIFRoZXNlIGFyZSBtdXR1YWxseSBleGNsdXNpdmUgYW5kIGNhbiBvbmx5IGJlIHNldCBvbiB0aGUgaW5zdGFuY2VzIGNyZWF0aW9uIHBhZ2UuPC9wPg0KPC9kaXY+DQoNCjxoMz5Nb2R1bGUgSW5zdGFuY2VzIE1vZGVzPC9oMz4NCjxwPkxJU0UgaW5zdGFuY2VzIGNhbiBoYXZlIG5vdyB0aHJlZSBkaWZmZXJlbnQgPHN0cm9uZz5vcGVyYXRpb24gbW9kZXM8L3N0cm9uZz46PC9wPg0KPHVsPg0KICA8bGk+PHN0cm9uZz5MaXN0PC9zdHJvbmc+IChkZWZhdWx0KTwvbGk+DQogIDxsaT48c3Ryb25nPkdsb2JhbDwvc3Ryb25nPjwvbGk+DQogIDxsaT48c3Ryb25nPkxvY2FsPC9zdHJvbmc+PC9saT4NCjwvdWw+DQoNCjxwPlRoZXNlIGFyZSBtdXR1YWxseSBleGNsdXNpdmUgYW5kIGNhbiBvbmx5IGJlIHNldCBhdCBjcmVhdGlvbiB0aW1lIGFuZCBvbmx5IGlmIHRoZSA8c3Ryb25nPkFsbG93IHN5c3RlbSB0byB1cGdyYWRlIGluc3RhbmNlcyBhdXRvbWF0aWNhbGx5IHdoZW4gTElTRSBpcyB1cGdyYWRlZDwvc3Ryb25nPiBpcyBzZWxlY3RlZC48L3A+DQo8cD5PdGhlcndpc2UgdGhlIGRlZmF1bHQgbW9kZSB3aWxsIGJlIDxzdHJvbmc+TGlzdDwvc3Ryb25nPiB3aGljaCBpcyB0aGUgdXN1YWwsIHdlbGwga25vd24sIGluc3RhbmNlIGJlaGF2aW91ciA8aT4obW9yZSBhYm91dCBtb2RlIHMgb24gPGI+SGVscCA+IEluc3RhbmNlIE1vZGVzPC9iPiB0YWIpPC9pPi48L3A+DQoNCjxwIGNsYXNzPSJtX3RvcF8yNSBtX2JvdHRvbV8yNSI+QXMgbGlzdCBtb2RlIGlzIHRoZSB1c3VhbCwgYW5kIGRlZmF1bHQsIExJU0UgSW5zdGFuY2UgYmVoYXZpb3IgYW5kIHRoZSBvbmUgeW91IHdpbGwgdXNlIG1vc3Qgb2Z0ZW4sIHdlJ2xsIHVzZSBpdCB0byBleHBsYWluIHRoZSBwcm9jZWR1cmUgdG8gY3JlYXRlIGEgTElTRSBpbnN0YW5jZS48L3A+DQo8cD5Zb3Ugd2lsbCBiZSBhYmxlIHRvIHNlbGVjdCBhIGZldyBvZiB0aGUgb3B0aW9ucyBhdCBjcmVhdGlvbiB0aW1lIGFzIGxvbmcgYXMgeW91IGhhdmUgTElTRSBzZXQgdG8gYXV0b21hdGljYWxseSBpbnN0YWxsIG5ld2x5IGNyZWF0ZWQgaW5zdGFuY2VzLjwvcD4NCjxwPllvdSBjYW4gc2V0IHRoZSBpbnN0YW5jZSA8c3Ryb25nPkZyaWVuZGx5IE5hbWU8L3N0cm9uZz4gYW5kIDxzdHJvbmc+TW9kdWxlIEFkbWluIERlc2NyaXB0aW9uPC9zdHJvbmc+IG9uIHRoZSA8c3Ryb25nPkNyZWF0ZSBJbnN0YW5jZTwvc3Ryb25nPiBmb3JtLjwvcD4NCjxwPllvdSBjYW4gYWxzbyBjaG9zZSB0byBoaWRlIG9yIHNob3cgdGhlIDxzdHJvbmc+YWxpYXM8L3N0cm9uZz4gZmllbGQgYW5kIHRoZSA8c3Ryb25nPlVSTDwvc3Ryb25nPiBmaWVsZCwgYW5kIHdoZXRoZXIgb3Igbm90IHRvIHVzZSB0aGUgPHN0cm9uZz50aW1lIGNvbnRyb2w8L3N0cm9uZz4gZmVhdHVyZSBvbiB0aGUgaXRlbSBlZGl0b3IuPC9wPg0KPHA+QWRkaXRpb25hbGx5IHlvdSBjYW4gc2V0IHRoZSA8c3Ryb25nPk1vZHVsZSBBZG1pbiBTZWN0aW9uPC9zdHJvbmc+IGkuZS4gd2hlcmUgdGhlIG1vZHVsZSBsaW5rIHdpbGwgYXBwZWFyIGluIHRoZSBhZG1pbiBjb25zb2xlIG9mIENNU01TLiBZb3Ugd2lsbCBhbHNvIGhhdmUgdGhlIG9wdGlvbiB0byBoYXZlIGEgc2VwYXJhdGUgPHN0cm9uZz5TZXR0aW5nczwvc3Ryb25nPiBtZW51IGVudHJ5IGlmIHlvdSB3aXNoIGJ1dCBpdCB3aWxsIGFsd2F5cyBiZSBzZXQgdG8gc2hvdyB1bmRlciB0aGUgPHN0cm9uZz5TaXRlIEFkbWluPC9zdHJvbmc+IHNlY3Rpb24uPC9wPg0KDQo8ZGl2IGNsYXNzPSJpbmZvcm1hdGlvbiI+DQogIDxwPkxJU0Ugbm93IGNhbiBoYXZlIHNlcGFyYXRlZCBzZXR0aW5ncyBtZW51IGVudHJ5LiBUaGUgb3B0aW9uIGlzIG9ubHkgcG9zc2libGUgd2hlbiB0aGUgaW5zdGFuY2UgaXMgaW4gPHN0cm9uZz5Nb2RlIExpc3Q8L3N0cm9uZz4uPC9wPg0KPC9kaXY+DQoNCjxwPkFmdGVyIHRoZSBtb2R1bGUgaGFzIGJlZW4gY3JlYXRlZCBhIG5ldyBpbnN0YW5jZSB3aWxsIGJlIGluc3RhbGxlZCBhbmQgbGlzdGVkIGluIG9yaWdpbmFsIExJU0UgbW9kdWxlIHVuZGVyIHRoZSA8c3Ryb25nPkluc3RhbmNlczwvc3Ryb25nPiB0YWIuPC9wPg0KPHA+WW91IGNhbiBhbHdheXMgY2hhbmdlIHRoZSBtb2R1bGUgZnJpZW5kbHkgbmFtZSBvbmNlIGluc3RhbGxlZCB1bmRlciA8c3Ryb25nPk9wdGlvbnM8L3N0cm9uZz4uPC9wPg0KPHA+VG8gY2hhbmdlIHRoZSBpY29uLCByZXBsYWNlIDxzdHJvbmc+L21vZHVsZXMvPGVtPiZsdDtMSVNFTmFtZU9mRHVwbGljYXRlJmd0OzwvZW0+L2ltYWdlcy9pY29uLmdpZjwvc3Ryb25nPi48L3A+DQo8cD5UbyBjaGFuZ2UgQWRtaW4gc2VjdGlvbiBvZiB0aGUgbW9kdWxlLCBzaW1wbHkgc2VsZWN0IGFwcHJvcHJpYXRlIHNlY3Rpb24gZnJvbSBEcm9wZG93bi4gTWFrZSBzdXJlIHlvdSBjbGVhciB0aGUgY2FjaGUgYWZ0ZXIgdGhlc2UgY2hhbmdlcy48L3A+]]></data>
	</file>
	<file>
	  <filename>/templates/help_params_tab.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PHA+DQogIEFzIHNlZW4gaW4gdGhlIDxiPlVzYWdlPC9iPiB0YWIgdGhlIG1vc3QgYmFzaWMgdXNhZ2Ugb2YgdGhlIG1vZGxlIGlzIGJ5IGNhbGxpbmcgdGhlIDxiPntsZGVsaW19eyRtb2QtPkdldE5hbWUoKX17cmRlbGltfTwvYj4gdGFnIGluIGFueSBvZiB5b3VyIGZyb250ZW5kIHRlbXBsYXRlcy4gSG93ZXZlciB5b3UgY2FuIGV4dGVuZCBhbmQgY29udHJvbCB0aGUgbW9kdWxlJ3MgYmVoYXZpb3VyIHdpdGggcGFyYW1ldGVycyBpbiB0aGUgdGFnLg0KPC9wPg0KDQo8aDM+UGFyYW1ldGVyczwvaDM+DQoNCjxwPg0KICBUaGlzIGlzIGEgbGlzdCBvZiB0aGUgcGFyYW1ldGVycyB0aGF0IGNhbiBiZSB1c2VkIHdpdGggdGhlIGluc3RhbmNlIHRhZzoNCjwvcD4NCjx1bD4NCiAgPGxpPg0KICAgIDxlbT4ob3B0aW9uYWwpPC9lbT4gPGI+YWN0aW9uID0gZGVmYXVsdDwvYj4gLSBPdmVycmlkZSB0aGUgZGVmYXVsdCBhY3Rpb24uIFRoZSBkZWZhdWx0IGFjdGlvbiBjYW4gYmUgb21pdHRlZC4gUG9zc2libGUgdmFsdWVzIGFyZToNCiAgICA8dWw+DQogICAgICA8bGk+PGI+ZGVmYXVsdDwvYj4gLSBkaXNwbGF5cyB0aGUgc3VtbWFyeSB2aWV3LCBhbmQgY2FuIGJlIG9taXR0ZWQuPC9saT4NCiAgICAgIDxsaT48Yj5kZXRhaWw8L2I+IC0gZGlzcGxheXMgYSBzcGVjaWZpZWQgZW50cnkgaW4gZGV0YWlsIG1vZGUuPC9saT4NCiAgICAgIDxsaT48Yj5zZWFyY2g8L2I+IC0gZGlzcGxheXMgdGhlIHNlYXJjaCBmb3JtLiBPcHRpb25hbCBwYXJhbWV0ZXJzIHRoYXQgYWZmZWN0IHRvIHRoaXMgYWN0aW9uIG9ubHk6IDxlbT48Yj5maWx0ZXI8L2I+PC9lbT4uPC9saT4NCiAgICAgIDxsaT48Yj5jYXRlZ29yeTwvYj4gLSBkaXNwbGF5cyB0aGUgY2F0ZWdvcmllcy4gT3B0aW9uYWwgcGFyYW1ldGVycyB0aGF0IGFmZmVjdCB0byB0aGlzIGFjdGlvbiBvbmx5OiA8ZW0+PGI+c2hvd19pdGVtczwvYj4sIDxiPmNvbGxhcHNlPC9iPiwgPGI+bnVtYmVyX29mX2xldmVsczwvYj48L2VtPi48L2xpPg0KICAgICAgPGxpPjxiPmFyY2hpdmU8L2I+IC0gZGlzcGxheXMgdGhlIGFyY2hpdmVzLjwvbGk+DQogICAgPC91bD4NCiAgPC9saT4NCiAgPGxpPg0KICAgIDxlbT4ob3B0aW9uYWwpPC9lbT4gPGI+b3JkZXJieSA9IGl0ZW1fcG9zaXRpb248L2I+IC0gWW91IGNhbiBvcmRlciBieSBhbnkgb2YgdGhlIGZvbGxvd2luZyBjb2x1bW5zOiA8Yj5pdGVtX2lkPC9iPiwgPGI+aXRlbV90aXRsZTwvYj4sIDxiPml0ZW1fcG9zaXRpb248L2I+LCA8Yj5pdGVtX2NyZWF0ZWQ8L2I+LCA8Yj5jYXRlZ29yeV9pZDwvYj4sIDxiPmNhdGVnb3J5X25hbWU8L2I+LCA8Yj5jYXRlZ29yeV9wb3NpdGlvbjwvYj4sIDxiPmNhdGVnb3J5X2hpZXJhcmNoeTwvYj4sIDxiPnJhbmQ8L2I+IGFuZCBhbHNvIGJ5IGN1c3RvbSBmaWVsZHMgd2l0aCA8Yj5jdXN0b21fKjwvYj4gKDxiPio8L2I+IHdvdWxkIGJlIHRoZSA8ZW0+ZmllbGQgZGVmaW5pdGlvbiBhbGlhczwvZW0+KS4NCiAgICA8cCBjbGFzcz0ibV90b3BfMjUiPkZvciBleGFtcGxlOjwvcD4NCiAgICAgIDx1bD4NCiAgICAgICAgPGxpPm9yZGVyYnkgPSAnY2F0ZWdvcnlfbmFtZSwgaXRlbV90aXRsZSc8L2xpPg0KICAgICAgICA8bGk+DQogICAgICAgICAgPHA+V2l0aCBmaWVsZGRlZiB2YWx1ZXM6PC9wPg0KICAgICAgICAgIG9yZGVyYnk9J2N1c3RvbV88ZW0+Jmx0O2ZpZWxkZGVmIGFsaWFzJmd0OzwvZW0+Jw0KICAgICAgICA8L2xpPg0KICAgICAgICA8bGk+DQogICAgICAgICAgPHA+WW91IGNhbiBhbHNvIHNwZWNpZnkgYXNjZW5kaW5nIG9yIGRlc2NlbmRpbmcgZm9yIGFueSBjb2x1bW4sIGZvciBleGFtcGxlOjwvcD4NCiAgICAgICAgICBvcmRlcmJ5PSdjYXRlZ29yeV9uYW1lfEFTQywgaXRlbV90aXRsZXxERVNDJw0KICAgICAgICA8L2xpPg0KICAgICAgPC91bD4NCg0KICA8L2xpPg0KICA8ZGl2IGNsYXNzPSJtX3RvcF8yNSI+PC9kaXY+DQo8bGk+PGVtPihvcHRpb25hbCk8L2VtPiA8Yj5zaG93YWxsID0gMDwvYj4gLSBTaG93IGFsbCBpdGVtcywgaXJyZXNwZWN0aXZlIG9mIGVuZCBkYXRlLjwvbGk+DQo8bGk+PGVtPihvcHRpb25hbCk8L2VtPiA8Yj5jYXRlZ29yeSA9IGdlbmVyYWw8L2I+IC0gU3BlY2lmeSBhbiBhbGlhcyBvciBjb21tYSBzZXBhcmF0ZWQgYWxpYXNlcyBvZiB0aGUgY2F0ZWdvcnkvY2F0ZWdvcmllcyBkaXNwbGF5ZWQgaXRlbXMgbXVzdCBiZSBhIG1lbWJlciBvZi48L2xpPg0KPGxpPjxlbT4ob3B0aW9uYWwpPC9lbT4gPGI+ZXhjbHVkZV9jYXRlZ29yeSA9ICc8ZW0+Jmx0O2NhdGVnb3J5X2FsaWFzXzEmZ3Q7LCZsdDtjYXRlZ29yeV9hbGlhc18yJmd0O1ssLi4uLCZsdDtjYXRlZ29yeV9hbGlhc19uJmd0O108L2VtPic8L2I+IC0gU3BlY2lmeSBhbiBhbGlhcyBvciBjb21tYSBzZXBhcmF0ZWQgYWxpYXNlcyBvZiB0aGUgY2F0ZWdvcnkvY2F0ZWdvcmllcyBkaXNwbGF5ZWQgaXRlbXMgbXVzdCBub3QgYmUgYSBtZW1iZXIgb2YuPC9saT4NCjxsaT48ZW0+KG9wdGlvbmFsKTwvZW0+IDxiPnN1YmNhdGVnb3J5ID0gZmFsc2U8L2I+IC0gSWYgcGFyYW1ldGVyICdjYXRlZ29yeScgaXMgc3BlY2lmaWVkLCB0aGlzIHBhcmFtZXRlciBzZXQgdG8gPGVtPnRydWU8L2VtPiB3aWxsIG1ha2UgYWxsb3dhbmNlIGZvciBzdWJjYXRlZ29yaWVzJyBpdGVtcy4gSXQgaXMgc2V0IHRvIGZhbHNlIGJ5IGRlZmF1bHQuPC9saT4NCjxsaT48ZW0+KG9wdGlvbmFsKTwvZW0+IDxiPmRldGFpbHBhZ2UgPSA8ZW0+Jmx0O2FsaWFzL2lkJmd0OzwvZW0+PC9iPiAtIFBhZ2UgdG8gZGlzcGxheSBpdGVtIGRldGFpbHMgaW4uIE11c3QgYmUgYSBwYWdlIGFsaWFzL2lkLiBVc2VkIHRvIGFsbG93IGRldGFpbHMgdG8gYmUgZGlzcGxheWVkIGluIGEgZGlmZmVyZW50IHBhZ2UgdGhhbiBzdW1tYXJ5LjwvbGk+DQo8bGk+PGVtPihvcHRpb25hbCk8L2VtPiA8Yj5zdW1tYXJ5cGFnZSA9IDxlbT4mbHQ7YWxpYXMvaWQmZ3Q7PC9lbT48L2I+IC0gUGFnZSB0byBkaXNwbGF5IGl0ZW0gc3VtbWFyeSBpbi4gTXVzdCBiZSBhIHBhZ2UgYWxpYXMvaWQuIFVzZWQgdG8gYWxsb3cgc3VtbWFyaWVzIHRvIGJlIGRpc3BsYXllZCBpbiBhIGRpZmZlcmVudCBwYWdlIHRoYW4gaW5pdGlhdG9yLjwvbGk+DQo8bGk+PGVtPihvcHRpb25hbCk8L2VtPiA8Yj5pdGVtID0gPGVtPiZsdDtpdGVtX2FsaWFzJmd0OzwvZW0+PC9iPiAtIFRoaXMgcGFyYW1ldGVyIGlzIG9ubHkgYXBwbGljYWJsZSB0byB0aGUgZGV0YWlsIHZpZXcuIEl0IGFsbG93cyBzcGVjaWZ5aW5nIHdoaWNoIGl0ZW0gdG8gZGlzcGxheSBpbiBkZXRhaWwgbW9kZS4gTXVzdCBiZSBhbiBpdGVtIGFsaWFzLjwvbGk+DQogIDxsaT4NCiAgICA8ZW0+KG9wdGlvbmFsKTwvZW0+IDxiPnBhZ2VsaW1pdCA9IDEwPC9iPiAtIE1heGltdW0gbnVtYmVyIG9mIGl0ZW1zIHRvIGRpc3BsYXkgKHBlciBwYWdlKS4gSWYgdGhpcyBwYXJhbWV0ZXIgaXMgbm90IHN1cHBsaWVkIGFsbCBtYXRjaGluZyBpdGVtcyB3aWxsIGJlIGRpc3BsYXllZCB0byBhIG1heGltdW0gb2YgeyRwYWdlX2xpbWl0fS4gSWYgaXQgaXMsIGFuZCB0aGVyZSBhcmUgbW9yZSBpdGVtcyBhdmFpbGFibGUgdGhhbiBzcGVjaWZpZWQgaW4gdGhlIHBhcmFtZXRlciwgdGV4dCBhbmQgbGlua3Mgd2lsbCBiZSBzdXBwbGllZCB0byBhbGxvdyBzY3JvbGxpbmcgdGhyb3VnaCB0aGUgcmVzdWx0cy4NCiAgPC9saT4NCiAgPGxpPjxlbT4ob3B0aW9uYWwpPC9lbT4gPGI+c3RhcnQgPSAyPC9iPiAtIFN0YXJ0IGF0IHRoZSA8Yj5uPC9iPnRoIGl0ZW0gLS0gbGVhdmluZyBlbXB0eSB3aWxsIHN0YXJ0IGF0IHRoZSBmaXJzdCBpdGVtLjwvbGk+DQogIDxsaT48ZW0+KG9wdGlvbmFsKTwvZW0+IDxiPnNlYXJjaCA9ICc8ZW0+Jmx0O3NvbWUgc2VhcmNoIHRleHQmZ3Q7PC9lbT4nPC9iPiAtIFNlYXJjaCBhbGwgZmllbGRzLiBVc2VzIDxzdHJvbmc+ZnVsbHRleHQ8L3N0cm9uZz4gc2VhcmNoLiBDYW4gYmUgY29tYmluZWQgd2l0aCBmaWx0ZXIgc2VhcmNoLjwvbGk+DQogIDxsaT48ZW0+KG9wdGlvbmFsKSA8c3BhbiBzdHlsZT0iY29sb3I6Z3JlZW4iPjxiPihuZXcpPC9iPjwvc3Bhbj48L2VtPiA8Yj5zcmNob3AgPSAnPSc8L2I+IC0gdXNlZCBpbiBjb21iaW5hdGlvbiB3aXRoIHRoZSBleGlzdGVudCBmdWxsIHRleHQgc2VhcmNoIHBhcmFtZXRlciBzZXRzIHRoZSB3YXkgdXNlZCBpbiB0aGUgcXVlcnkgZWl0aGVyIGFzIGFuIGV4YWN0IHNlYXJjaCA8Yj4nPSc8L2I+IG9yIGFzIGFuIGFwcHJveGltYXRlIHNlYXJjaCA8Yj4nTElLRSc8L2I+IHdoaWNoIGlzIHRoZSBkZWZhdWx0IG1vZGUuIDxzdXA+PGI+PGk+KDMpPC9pPjwvYj48L3N1cD48L2xpPg0KICA8bGk+PGVtPihvcHRpb25hbCkgPHNwYW4gc3R5bGU9ImNvbG9yOm9yYW5nZXJlZCI+PGI+KGRlcHJlY2F0ZWQpPC9iPjwvc3Bhbj48L2VtPiA8Yj5zZWFyY2hfPGVtPiZsdDtmaWVsZGRlZl9hbGlhcyZndDsmZ3Q7PC9lbT4gPSAnPGVtPiZsdDtzb21lIHNlYXJjaCB0ZXh0Jmd0OzwvZW0+JzwvYj4gLSBTZWFyY2ggYSBwYXJ0aWN1bGFyIGZpZWxkLiBZb3UgY2FuIHVzZSAndGl0bGUnIG9yIHRoZSBhbGlhcyBvZiBhIGZpZWxkIGRlZmluaXRpb24sIGUuZy4gc2VhcmNoX3RpdGxlLiBDYW4gYmUgY29tYmluZWQgd2l0aCBmdWxsdGV4dCBzZWFyY2guIE11bHRpcGxlIHNlYXJjaF8qIHBhcmFtcyBjYW4gYmUgY29tYmluZWQuIDxzdXA+PGI+PGk+KDEpKDIpPC9pPjwvYj48L3N1cD48L2xpPg0KICA8bGk+PGVtPihvcHRpb25hbCk8L2VtPiA8Yj5maWx0ZXIgPSA8ZW0+Jmx0O2NhdGVnb3J5X2FsaWFzXzEmZ3Q7LCZsdDtjYXRlZ29yeV9hbGlhc18yJmd0O1ssLi4uLCZsdDtjYXRlZ29yeV9hbGlhc19uJmd0O108L2VtPjwvYj4gLSBBcHBsaWVzIG9ubHkgdG8gYWN0aW9uOiA8ZW0+c2VhcmNoPC9lbT4uIFNwZWNpZnkgdGhlIGZpZWxkcyB3aG9zZSB2YWx1ZXMgc2hvdWxkIGJlIG9mZmVyZWQgYXMgZmlsdGVyIG9wdGlvbnMgYnkgbGlzdGluZyB0aGUgZmllbGQncyBhbGlhc2VzIGNvbW1hIHNlcGFyYXRlZC48L2xpPg0KICA8bGk+DQogICAgPGVtPihvcHRpb25hbCk8L2VtPiBmaWx0ZXJvcmRlcmJ5ID0gJ3ZhbHVlJyAtIFdoZW4gZmlsdGVyaW5nIGluIGEgc2VhcmNoIGFjdGlvbiB5b3UgY2FuIG9yZGVyIGJ5IGFueSBvZiB0aGUgZm9sbG93aW5nIGNvbHVtbnM6IDxiPnZhbHVlPC9iPiwgPGI+aXRlbV9pZDwvYj4sIDxiPmFsaWFzPC9iPiwgPGI+dGl0bGU8L2I+LCA8Yj5wb3NpdGlvbjwvYj4sIDxiPmNyZWF0ZV90aW1lPC9iPiBhbmQgPGI+bW9kaWZpZWRfdGltZTwvYj4uDQogICAgPHA+VGhlIHVzZSBpcyBzaW1pbGFyIHRvIHRoZSBvbmUgdXNlZCBpbiB0aGUgPGVtPm9yZGVyYnk8L2VtPiBwYXJhbWV0ZXIuIEFsc28gZm9yIHRoaXMgdG8gaGF2ZSBhbnkgZWZmZWN0LCB0aGUgPGVtPmZpbHRlcjwvZW0+IHBhcmFtZXRlciBpcyByZXF1aXJlZC48L3A+DQogICAgPHA+VGhlcmUgb3JkZXIgb2YgdGhlIGNvbW1hIHNlcGFyYXRlZCBsaXN0IG9mIGZpbHRlciBhbGlhc2VzIGlzIHVzZWQgdG8gZGV0ZXJtbmluZSB0aGUgb3JkZXIgYnkgd2hpY2ggdGhlIDxlbT5maWx0ZXJvcmRlcmJ5PC9lbT4gaXMgYXBwbGllZC48L3A+DQogICAgPHAgY2xhc3M9Im1fdG9wXzI1Ij5Gb3IgZXhhbXBsZTo8L3A+DQogICAgPHVsPg0KICAgICAgPGxpPmZpbHRlciA9ICc8ZW0+Jmx0O2ZpZWxkZGVmX2FsaWFzJmd0OzwvZW0+JyBmaWx0ZXJvcmRlcmJ5ID0gJ3ZhbHVlfEFTQycgKGRlZmF1bHQgYmVoYXZpb3VyIHNvIDxlbT5maWx0ZXJvcmRlcmJ5PC9lbT4gY2FuIGJlIG9taXR0ZWQgaW4gdGhpcyBjYXNlKTwvbGk+DQogICAgICA8bGk+DQogICAgICAgIDxwPldpdGggbXVsdGlwbGUgYWxpYXNlcyB0byBzb3J0IGRpZmZlcmVudGx5OjwvcD4NCiAgICAgICAgPHA+ZmlsdGVyID0gJ3RpdGxlLHZhbHVlLDxlbT4mbHQ7ZmllbGRkZWZfYWxpYXMmZ3Q7LCZsdDtmaWVsZGRlZl9hbGlhczImZ3Q7WywuLi4sJmx0O2NhdGVnb3J5X2FsaWFzX24mZ3Q7XTwvZW0+JyBmaWx0ZXJvcmRlcmJ5PSd0aXRsZSx2YWx1ZXxERVNDJyAoQVNDIGlzIGRlZmF1bHQgc28gY2FuIGJlIG9taXR0ZWQpPC9wPg0KICAgICAgICA8cD5UaGlzIHdpbGwgc29ydCB0aGUgZmlsdGVyIGRyb3Bkb3ducyBvciBtdWx0aXNlbGVjdCBmaWVsZHMgYnkgdGl0bGUgQVNDIGFuZCBieSB2YWx1ZSBERVNDIHJlc3BlY3RpdmVseTwvcD4NCiAgICAgIDwvbGk+DQogICAgPC91bD4NCiAgPC9saT4NCiAgPGRpdiBjbGFzcz0ibV90b3BfMjUiPjwvZGl2Pg0KICA8bGk+PGVtPihvcHRpb25hbCk8L2VtPiA8Yj5jb2xsYXBzZSA9IGZhbHNlPC9iPiAtIEFwcGxpZXMgb25seSB0byBhY3Rpb246IDxlbT5jYXRlZ29yeTwvZW0+LiBUb2dnbGUgY29sbGFwc2UgY2F0ZWdvcmllcy48L2xpPg0KICA8bGk+PGVtPihvcHRpb25hbCk8L2VtPiA8Yj5zaG93X2l0ZW1zID0gZmFsc2U8L2I+IC0gQXBwbGllcyBvbmx5IHRvIGFjdGlvbjogPGVtPmNhdGVnb3J5PC9lbT4uIEFwcGVuZCBpdGVtcyB0byBjYXRlZ29yeSB0cmVlLjwvbGk+DQogIDxsaT48ZW0+KG9wdGlvbmFsKTwvZW0+IDxiPm51bWJlcl9vZl9sZXZlbHMgPSAyPC9iPiAtIEFwcGxpZXMgb25seSB0byBhY3Rpb246IDxlbT5jYXRlZ29yeTwvZW0+LiBOdW1iZXIgb2Ygb2YgY2F0ZWdvcnkgbGV2ZWxzIHRvIHNob3cuPC9saT4NCiAgPGxpPjxlbT4ob3B0aW9uYWwpPC9lbT4gPGI+aW5jbHVkZV9pdGVtcyA9ICcxLDQsN1ssLi4uLG5dJzwvYj4gLSBTcGVjaWZ5IGFuIGlkL2FsaWFzIG9yIGNvbW1hIHNlcGFyYXRlZCBpZHMvYWxpYXNlcyBvZiB0aGUgaXRlbXMgeW91IHdhbnQgdG8gZGlzcGxheS48L2xpPg0KICA8bGk+PGVtPihvcHRpb25hbCk8L2VtPiA8Yj5leGNsdWRlX2l0ZW1zID0gJzIsMyw1WywuLi4sbl0nPC9iPiAtIFNwZWNpZnkgYW4gaWQvYWxpYXMgb3IgY29tbWEgc2VwYXJhdGVkIGlkcy9hbGlhc2VzIG9mIHRoZSBpdGVtcyB5b3Ugd2FudCB0byBleGNsdWRlIGZyb20gbGlzdC48L2xpPg0KICA8bGk+PGVtPihvcHRpb25hbCk8L2VtPiA8Yj50ZW1wbGF0ZV9kZXRhaWwgPSAnZGVmYXVsdCc8L2I+IC0gVGhlIGRldGFpbCB0ZW1wbGF0ZSB5b3Ugd2lzaCB0byB1c2UuPC9saT4NCiAgPGxpPjxlbT4ob3B0aW9uYWwpPC9lbT4gPGI+dGVtcGxhdGVfc3VtbWFyeSA9ICdkZWZhdWx0JzwvYj4gLSBUaGUgc3VtbWFyeSB0ZW1wbGF0ZSB5b3Ugd2lzaCB0byB1c2UuPC9saT4NCiAgPGxpPjxlbT4ob3B0aW9uYWwpPC9lbT4gPGI+dGVtcGxhdGVfc2VhcmNoID0gJ2RlZmF1bHQnPC9iPiAtIFRoZSBzZWFyY2ggdGVtcGxhdGUgeW91IHdpc2ggdG8gdXNlLjwvbGk+DQogIDxsaT48ZW0+KG9wdGlvbmFsKTwvZW0+IDxiPnRlbXBsYXRlX2NhdGVnb3J5ID0gJ2RlZmF1bHQnPC9iPiAtIFRoZSBjYXRlZ29yeSB0ZW1wbGF0ZSB5b3Ugd2lzaCB0byB1c2UuPC9saT4NCiAgPGxpPjxlbT4ob3B0aW9uYWwpPC9lbT4gPGI+dGVtcGxhdGVfYXJjaGl2ZSA9ICdkZWZhdWx0JzwvYj4gLSBUaGUgY2F0ZWdvcnkgdGVtcGxhdGUgeW91IHdpc2ggdG8gdXNlLjwvbGk+DQogIDxsaT48ZW0+KG9wdGlvbmFsKSA8c3BhbiBzdHlsZT0iY29sb3I6b3JhbmdlcmVkIj48Yj4oZGVwcmVjYXRlZCk8L2I+PC9zcGFuPjwvZW0+IDxiPmZpbHRlcl95ZWFyID0gJzIwMDAnPC9iPiAtIEZpbHRlciBpdGVtcyBieSB5ZWFyLiA8c3VwPjxiPjxpPigxKSg0KTwvaT48L2I+PC9zdXA+PC9saT4NCiAgPGxpPjxlbT4ob3B0aW9uYWwpIDxzcGFuIHN0eWxlPSJjb2xvcjpvcmFuZ2VyZWQiPjxiPihkZXByZWNhdGVkKTwvYj48L3NwYW4+PC9lbT4gPGI+ZmlsdGVyX21vbnRoID0gJzInPC9iPiAtIEZpbHRlciBpdGVtcyBieSBtb250aC4gPHN1cD48Yj48aT4oMSkoNCk8L2k+PC9iPjwvc3VwPjwvbGk+DQo8L3VsPg0KDQo8cD48Yj5Ob3Rlczo8L2I+PC9wPg0KPHA+PGI+KDEpPC9iPiBUaGlzIHBhcmFtZXRlciBoYXMgYmVlbiByZXBsYWNlZCBieSBhIG5ldyBzZXQgb2YgcGFyYW1ldGVycyAoc2VlIGJlbG93KSBhbmQgaXMgZGVwcmVjYXRlZC4gSXQgd2lsbCBiZSByZW1vdmVkIGluIHRoZSBmdXR1cmUuPC9wPg0KPHA+PGI+KDIpPC9iPiBVc2luZyBzZWFyY2hfKiBkaXNhYmxlcyBjb21wbGV0ZWx5IHRoZSBleHRlbmRlZCBzZWFyY2ggcGFyYW1ldGVycy48L3A+DQo8cD48Yj4oMyk8L2I+IFdvbid0IGFmZmVjdCBzZWFyY2hfKiBwYXJhbWV0ZXJzLjwvcD4NCjxwPjxiPig0KTwvYj4gVXNpbmcgZmlsdGVyX3llYXIgYW5kL29yIGZpbHRlcl9tb250aCBkaXNhYmxlcyBjb21wbGV0ZWx5IHRoZSBleHRlbmRlZCBkYXRlIGZpbHRlciBwYXJhbWV0ZXJzLjwvcD4NCg0KPGgzPk5ldyBFeHRlbmRlZCBEYXRlIEZpbHRlciBQYXJhbWV0ZXJzPC9oMz4NCjxwPlRoZSA8Yj48aT5maWx0ZXJfeWVhcjwvaT48L2I+IGFuZCA8Yj48aT5maWx0ZXJfbW9udGg8L2k+PC9iPiBwYXJhbWV0ZXJzIGhhdmUgYmVlbiBkZXByZWNhdGVkIGFuZCB3aWxsIGJlIHJlbW92ZWQgaW4gdGhlIG5leHQgbWFqb3IgdmVyc2lvbiB1cGdyYWRlIG9mIExJU0UuIFRoZXJlIGlzIGEgbmV3IHNldCBvZiBwYXJhbWV0ZXJzIHRvIHJlcGxhY2UgdGhlIHByZXZpb3VzIGZ1bmN0aW9uYWxpdHkgdGhhdCB5b3UgY2FuIHVzZSBub3cgd2l0aCBuZXcgYW5kIGV4dGVuZGVkIGZlYXR1cmVzLiBVc2luZyBhbnkgb2YgdGhlIG9sZCBkYXRlIGZpbHRlcmluZyBwYXJhbWV0ZXJzIHdpbGwgZGlzYWJsZSB0aGUgdXNlIG9mIHRoZSBleHRlbmRlZCBvbmVzLjwvcD4NCjx1bD4NCiAgPGxpPjxlbT4ob3B0aW9uYWwpIDxzcGFuIHN0eWxlPSJjb2xvcjpncmVlbiI+PGI+KG5ldyk8L2I+PC9zcGFuPjwvZW0+IDxiPnhmX3N0YXJ0ZGF5ID0gMTwvYj4gLSBUaGUgZGF5IHlvdSB3aXNoIHRvIHN0YXJ0IHRvIGZpbHRlciBieSBpbiBhIHJhbmdlIG9mIGRheXMuIERlZmF1bHRzIHRvIGN1cnJlbnQgZGF5LiA8c3VwPjxiPjxpPigxKTwvaT48L2I+PC9zdXA+PC9saT4NCiAgPGxpPjxlbT4ob3B0aW9uYWwpIDxzcGFuIHN0eWxlPSJjb2xvcjpncmVlbiI+PGI+KG5ldyk8L2I+PC9zcGFuPjwvZW0+IDxiPnhmX2VuZGRheSA9IDMwPC9iPiAtIFRoZSBlbmQgZGF5IGluIGEgcmFuZ2Ugb2YgZGF5cyB5b3Ugd2lzaCB0byBmaWx0ZXIgYnkuIERlZmF1bHRzIHRvIGN1cnJlbnQgZGF5LiA8c3VwPjxiPjxpPigxKTwvaT48L2I+PC9zdXA+PC9saT4NCg0KICA8bGk+PGVtPihvcHRpb25hbCkgPHNwYW4gc3R5bGU9ImNvbG9yOmdyZWVuIj48Yj4obmV3KTwvYj48L3NwYW4+PC9lbT4gPGI+eGZfc3RhcnRtb250aCA9IDE8L2I+IC0gVGhlIG1vbnRoIHlvdSB3aXNoIHRvIHN0YXJ0IHRvIGZpbHRlciBieSBpbiBhIHJhbmdlIG9mIG1vbnRocy4gRGVmYXVsdHMgdG8gY3VycmVudCBtb250aC4gPHN1cD48Yj48aT4oMSk8L2k+PC9iPjwvc3VwPjwvbGk+DQogIDxsaT48ZW0+KG9wdGlvbmFsKSA8c3BhbiBzdHlsZT0iY29sb3I6Z3JlZW4iPjxiPihuZXcpPC9iPjwvc3Bhbj48L2VtPiA8Yj54Zl9lbmRtb250aCA9IDEyPC9iPiAtIFRoZSBlbmQgbW9udGggaW4gYSByYW5nZSBvZiBtb250aHMgeW91IHdpc2ggdG8gZmlsdGVyIGJ5LiBEZWZhdWx0cyB0byBjdXJyZW50IG1vbnRoLiA8c3VwPjxiPjxpPigxKTwvaT48L2I+PC9zdXA+PC9saT4NCg0KICA8bGk+PGVtPihvcHRpb25hbCkgPHNwYW4gc3R5bGU9ImNvbG9yOmdyZWVuIj48Yj4obmV3KTwvYj48L3NwYW4+PC9lbT4gPGI+eGZfc3RhcnR5ZWFyID0gMTkxMDwvYj4gLSBUaGUgeWVhciB5b3Ugd2lzaCB0byBzdGFydCB0byBmaWx0ZXIgYnkgaW4gYSByYW5nZSBvZiB5ZWFycy4gRGVmYXVsdHMgdG8gY3VycmVudCB5ZWFyLiA8c3VwPjxiPjxpPigxKTwvaT48L2I+PC9zdXA+PC9saT4NCiAgPGxpPjxlbT4ob3B0aW9uYWwpIDxzcGFuIHN0eWxlPSJjb2xvcjpncmVlbiI+PGI+KG5ldyk8L2I+PC9zcGFuPjwvZW0+IDxiPnhmX2VuZHllYXIgPSAyMDMwPC9iPiAtIFRoZSBlbmQgeWVhciBpbiBhIHJhbmdlIG9mIHllYXJzIHlvdSB3aXNoIHRvIGZpbHRlciBieS4gRGVmYXVsdHMgdG8gY3VycmVudCB5ZWFyLiA8c3VwPjxiPjxpPigxKTwvaT48L2I+PC9zdXA+PC9saT4NCjwvdWw+DQoNCjxwPjxiPk5vdGVzOjwvYj48L3A+DQo8cD48Yj4oMSk8L2I+IEZvciB0aGUgZGF0ZSBmaWx0ZXJzIHRvIHN0YXJ0IHdvcmtpbmcgeW91IG9ubHkgbmVlZHMgb25lIG9mIHRoZSBkYXRlIHBhcmFtZXRlcnM6IGFsbCBvdGhlciBvbWl0dGVkIHdpbGwgZGVmYXVsdCB0byBjdXJyZW50IHRpbWUuPC9wPg0KDQo8aDM+TmV3IEV4dGVuZGVkIFNlYXJjaCBQYXJhbWV0ZXJzPC9oMz4NCg0KPHA+VGhlIDxiPjxpPnNlYXJjaF8qPC9pPjwvYj4gcGFyYW1ldGVycyBmdW5jdGlvbmFsaXR5IGhhcyBiZWVuIGRlcHJlY2F0ZWQgYW5kIHdpbGwgYmUgcmVtb3ZlZCBpbiB0aGUgbmV4dCBtYWpvciB2ZXJzaW9uIHVwZ3JhZGUgb2YgTElTRS4gVGhlcmUgaXMgYSBuZXcgc2V0IG9mIHBhcmFtZXRlcnMgdG8gcmVwbGFjZSB0aGUgcHJldmlvdXMgZnVuY3Rpb25hbGl0eSB0aGF0IHlvdSBjYW4gdXNlIG5vdyB3aXRoIG5ldyBhbmQgZXh0ZW5kZWQgZmVhdHVyZXMuPC9wPg0KPHA+VGhlIG1vZHVsZSB3aWxsIGRldGVjdCB0aGUgdXNlIG9mIDxiPjxpPnNlYXJjaF8qPC9pPjwvYj4gYW5kIGlnbm9yZSB0aGUgZXh0ZW5kZWQgcGFyYW1ldGVycyBhcyB0aGV5IGFyZSBtdXR1YWxseSBleGNsdXNpdmUuPC9wPg0KPHA+DQogIFRoaXMgaXMgYSBsaXN0IG9mIHRoZSBleHRlbmRlZCBzZWFyY2ggcGFyYW1ldGVycyB0aGF0IGNhbiBiZSB1c2VkIHdpdGggdGhlIGluc3RhbmNlIHRhZzoNCjwvcD4NCg0KPHVsPg0KICA8bGk+PGVtPihvcHRpb25hbCkgPHNwYW4gc3R5bGU9ImNvbG9yOmdyZWVuIj48Yj4obmV3KTwvYj48L3NwYW4+PC9lbT4gPGI+eHNfPGVtPiZsdDtmaWVsZGRlZl9hbGlhcyZndDsmZ3Q7PC9lbT4gPSAnPGVtPiZsdDtzb21lIHNlYXJjaCB0ZXh0Jmd0OzwvZW0+JzwvYj4gIC0gU2VhcmNoIGEgcGFydGljdWxhciBmaWVsZC4gWW91IGNhbiB1c2UgdGhlIDxiPnRpdGxlPC9iPiwgdGhlIDxiPmFsaWFzPC9iPiBvciBhIGZpZWxkIGRlZmluaXRpb24gYWxpYXMsIGUuZy46IDxiPnhzX3RpdGxlPSdhbiBpdGVtIHRpdGxlJzwvYj4uIEl0IGNhbiBiZSBjb21iaW5lZCB3aXRoIGZ1bGx0ZXh0IHNlYXJjaC4gTXVsdGlwbGUgeHNfKiBwYXJhbWV0ZXJzIGNhbiBiZSBjb21iaW5lZC48L2xpPg0KICA8bGk+PGVtPihvcHRpb25hbCkgPHNwYW4gc3R5bGU9ImNvbG9yOmdyZWVuIj48Yj4obmV3KTwvYj48L3NwYW4+PC9lbT4gPGI+eHNvXzxlbT4mbHQ7ZmllbGRkZWZfYWxpYXMmZ3Q7Jmd0OzwvZW0+ID0gJz0nPC9iPiAgLSBzYW1lIGFzIDxiPnNyY2hvcDwvYj4gYnV0IGV4Y2x1c2l2ZWx5IGZvciB0aGUgZXh0ZW5kZWQgc2VhcmNoIHBhcmFtZXRlcnM6IHNldHMgdGhlIHdheSB1c2VkIGluIHRoZSBxdWVyeSBlaXRoZXIgYXMgYW4gZXhhY3Qgc2VhcmNoIDxiPic9JzwvYj4gb3IgYXMgYW4gYXBwcm94aW1hdGUgc2VhcmNoIDxiPidMSUtFJzwvYj4gd2hpY2ggaXMgdGhlIGRlZmF1bHQgbW9kZS4gPHN1cD48Yj48aT4oMSk8L2k+PC9iPjwvc3VwPjwvbGk+DQo8L3VsPg0KPHA+QWRpdGlvbmFseSB0byB0aGUgYWJvdmUgcGFyYW1ldGVycyB0aGVyZSBhIGZldyBtb3JlIHBhcmFtZXRlcnMgdGhhdCB3aWxsIGVuYWJsZSB5b3UgdG8gZmlsdGVyIGJ5IHJhbmdlcyBpbiBhIG51bWJlciBvZiB3YXlzLiBIb3dldmVyIHVzaW5nIGEgcmFuZ2Ugb24gYSBmaWVsZCBwcmVjbHVkZXMgdXNpbmcgYSBzZWFyY2ggb3IgYW4gZXh0ZW5kZWQgc2VhcmNoIG9uIHRoYXQgc2FtZSBmaWVsZC4gWW91IGNhbiBob3dldmVyIGNvbWJpbmUgaGF2aW5nIHNvbWUgZmllbGRzIGJlaW5nIGZpbHRlcmVkIGJ5IHJhbmdlIGFuZCBvdGhlcnMgYnkgZXh0ZW5kZWQgc2VhcmNoLiBSYW5nZXMgYXJlIGJlc3QgdXNlZCB3aXRoIG51bWVyaWMgZmllbGRzLiBVc2luZyB0aGVtIG9uIG1peGVkIGZpZWxkcyBtYXkgaGF2ZSB1bnByZWRpY3RhYmxlIHJlc3VsdHMuPC9wPg0KPHVsPg0KICA8bGk+PGVtPihvcHRpb25hbCkgPHNwYW4gc3R5bGU9ImNvbG9yOmdyZWVuIj48Yj4obmV3KTwvYj48L3NwYW4+PC9lbT4gPGI+eHNyc3RhcnRfPGVtPiZsdDtmaWVsZGRlZl9hbGlhcyZndDsmZ3Q7PC9lbT4gPSAxMDwvYj4gIC0gcmFuZ2UgbW9kZSwgYmV0dGVyIHVzZWQgd2l0aCBudW1lcmljIHZhbHVlczogc2V0cyB0aGUgc3RhcnQgb2YgdGhlIHJhbmdlIGZvciB0aGUgc3BlY2lmaWVkIGZpZWxkLiA8c3VwPjxiPjxpPigyKSg0KTwvaT48L2I+PC9zdXA+PC9saT4NCiAgPGxpPjxlbT4ob3B0aW9uYWwpIDxzcGFuIHN0eWxlPSJjb2xvcjpncmVlbiI+PGI+KG5ldyk8L2I+PC9zcGFuPjwvZW0+IDxiPnhzcmVuZF88ZW0+Jmx0O2ZpZWxkZGVmX2FsaWFzJmd0OyZndDs8L2VtPiA9IDE1MDwvYj4gIC0gcmFuZ2UgbW9kZSwgYmV0dGVyIHVzZWQgd2l0aCBudW1lcmljIHZhbHVlczogc2V0cyB0aGUgc3RhcnQgb2YgdGhlIHJhbmdlIGZvciB0aGUgc3BlY2lmaWVkIGZpZWxkLiA8c3VwPjxiPjxpPigyKSg0KTwvaT48L2I+PC9zdXA+PC9saT4NCiAgPGxpPjxlbT4ob3B0aW9uYWwpIDxzcGFuIHN0eWxlPSJjb2xvcjpncmVlbiI+PGI+KG5ldyk8L2I+PC9zcGFuPjwvZW0+IDxiPnhzaW9fPGVtPiZsdDtmaWVsZGRlZl9hbGlhcyZndDsmZ3Q7PC9lbT4gPSBvPC9iPiAgLSByYW5nZSBtb2RlLCBkZXRlcm1pbmVzIGlmIHRoZSByYW5nZSBpcyBmaWx0ZXJlZCBiZXR3ZWVuLCA8Yj4oaSk8L2I+bnNpZGUsIHN0YXJ0IGFuZCBlbmQgdmFsdWVzIG9yIDxiPihvKTwvYj51dHNpZGUgdGhpcyB2YWx1ZXMuIERlZmF1bHQgaXMgPGI+KGkpPC9iPm5zaWRlLiA8c3VwPjxiPjxpPigzKSg0KTwvaT48L2I+PC9zdXA+PC9saT4NCiAgPGxpPjxlbT4ob3B0aW9uYWwpIDxzcGFuIHN0eWxlPSJjb2xvcjpncmVlbiI+PGI+KG5ldyk8L2I+PC9zcGFuPjwvZW0+IDxiPnhzcm1vZGVfPGVtPiZsdDtmaWVsZGRlZl9hbGlhcyZndDsmZ3Q7PC9lbT4gPSBleGM8L2I+ICAtIGRldGVybWluZXMgaWYgdGhlIHJhbmdlIGlzIGZpbHRlcmVkIDxiPihpbmMpPC9iPmx1ZGluZyBzdGFydCBhbmQgZW5kIHZhbHVlcyBvciA8Yj4oZXhjKTwvYj5sdWRpbmcgdGhpcyB2YWx1ZXMuIERlZmF1bHQgaXMgPGI+KGluYyk8L2I+bHVkaW5nLiA8c3VwPjxiPjxpPig0KTwvaT48L2I+PC9zdXA+PC9saT4NCjwvdWw+DQoNCjxwPjxiPk5vdGVzOjwvYj48L3A+DQo8cD48Yj4oMSk8L2I+IC0gd29uJ3QgYWZmZWN0IHNlYXJjaF8qIHBhcmFtZXRlcnMgd2hpY2gsIGlmIHVzZWQgd2lsbCBkaXNhYmxlIHRoZSB4c18qIHBhcmFtZXRlcnMgYW55d2F5LjwvcD4NCjxwPjxiPigyKTwvYj4gLSB1c2luZyByYW5nZSBwYXJhbWV0ZXJzIG9uIGEgZmllbGQgZGlzYWJsZXMgdGhlIGV4dGVuZGVkIHNlYXJjaCBvbiB0aGF0IHNhbWUgZmllbGQuPC9wPg0KPHA+PGI+KDMpPC9iPiAtIDxiPihvKTwvYj51dHNpZGUgaXMgYmFzaWNhbGx5IGVxdWl2YWxlbnQgdG8gZmlsdGVyaW5nIHRvIHNob3cgYWxsIHZhbHVlcyBOT1QgaW5zaWRlIHRoZSBzdGFydCBhbmQgZW5kIHZhbHVlcy48L3A+DQo8cD48Yj4oNCk8L2I+IC0gYWxsIHRoZSByYW5nZSBwYXJhbWV0ZXJzIGNhbiBiZSBjb21iaW5lZCBmb3IgdGhlIHNhbWUgZmllbGQuIGFuZCB5b3UgY2FuIGhhdmUgbXVsdGlwbGUgZmllbGRzIGZpbHRlcmVkIGJ5IGVpdGhlciBleHRlbmRlZCBzZWFyY2ggb3IgcmFuZ2UgZmlsdGVyaW5nLiBIb3dldmVyIHVzaW5nIHNlYXJjaF8qIG9uIGFueSBvZiB0aGVtIGRpc2FibGVzIHRoZSBleHRlbmRlZCBmZWF0dXJlcy48L3A+]]></data>
	</file>
	<file>
	  <filename>/templates/help_permissions.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KCiAgICA8aDM+UGVybWlzc2lvbnM8L2gzPgogICAgCiAgICA8cD5Zb3UgY2FuIHNwZWNpZnkgdGhlIGZvbGxvd2luZyBwZXJtaXNzaW9ucyB1bmRlciBVc2VycyAmYW1wOyBHcm91cHMgJnJhcnI7IEdyb3VwIFBlcm1pc3Npb25zPC9wPgogICAgCiAgICA8dWw+CiAgICAgICAgPGxpPnskbW9kdWxlX25hbWV9OiBNb2RpZnkgSXRlbXM8L2xpPgogICAgICAgIDxsaT57JG1vZHVsZV9uYW1lfTogTW9kaWZ5IGFsbCBpdGVtczwvbGk+CiAgICAgICAgPGxpPnskbW9kdWxlX25hbWV9OiBSZW1vdmUgaXRlbXM8L2xpPgogICAgICAgIDxsaT57JG1vZHVsZV9uYW1lfTogQXBwcm92ZSBpdGVtczwvbGk+CiAgICAgICAgPGxpPnskbW9kdWxlX25hbWV9OiBNb2RpZnkgQ2F0ZWdvcmllczwvbGk+CiAgICAgICAgPGxpPnskbW9kdWxlX25hbWV9OiBNb2RpZnkgT3B0aW9uczwvbGk+CiAgICA8L3VsPgogICAgCiAgICA8cD5UbyBhbGxvdyBub24tYWRtaW4gdXNlcnMgdG8gdXBsb2FkIGZpbGVzLCBwbGVhc2UgZ28gdG8gRXh0ZW5zaW9ucyA+IEdCRmlsZVBpY2tlciBhbmQgdGljayB0aGF0IGZpcnN0IGNoZWNrYm94ICJTaG93IGZpbGVtYW5hZ2VtZW50IG9wdGlvbnMiLjwvcD4KCjwvZGl2Pg==]]></data>
	</file>
	<file>
	  <filename>/templates/help_smarty_plugins.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KCiAgPGgzPntsZGVsaW19TElTRUxvYWRlcn08L2gzPgoKICA8aDQ+V2hhdCBkb2VzIHRoaXMgZG8/PC9oND4KICAKICA8cD5UaGlzIHBsdWdpbiBhbGxvd3MgeW91IHRvIGxvYWQgTElTRSBpdGVtIGFuZCBjYXRlZ29yeSBvYmplY3QgYnkgY2VydGFpbiBjcml0ZXJpYSwgYW55d2hlcmUgaW4gdGhlIHN5c3RlbS48L3A+CiAgIAogIDxoND5Ib3cgZG8gSSB1c2UgaXQ/PC9oND4KICAKICA8cD5TaW1wbHkgaW5zZXJ0IHRoaXMgdGFnIGludG8geW91ciBwYWdlIG9yIHRlbXBsYXRlOjwvcD4KCiAgPHByZT48Y29kZT57bGRlbGltfUxJU0VMb2FkZXIgaXRlbT0naXRlbScgaWRlbnRpZmllcj0nYWxpYXMnIGluc3RhbmNlPSdMSVNFSW5zdGFuY2UnIHZhbHVlPSdteWFsaWFzJyBhc3NpZ249J3RtcCd9PC9jb2RlPjwvcHJlPgogIAogIDxiciAvPjxiciAvPgogIAogIDxwPkZvbGxvd2luZyBsaW5lIHdpbGwgbG9hZCBpdGVtIG9iamVjdCBmcm9tIGluc3RhbmNlICdMSVNFSW5zdGFuY2UnIGJ5IGFsaWFzICdteWFsaWFzJyBhbmQgYXNzaWduIGl0IHRvIHZhcmlhYmxlICZkb2xsYXI7dG1wLjxiciAvPgogIEFmdGVyIHRoaXMgeW91IGNhbiB1c2UgaXQgaW4gc2ltaWxhciB3YXksIGp1c3QgbGlrZSBpbiByZWd1bGFyIExJU0UgdGVtcGxhdGVzOjwvcD4KCiAgPHByZT48Y29kZT57bGRlbGltfSZkb2xsYXI7dG1wLT50aXRsZX08L2NvZGU+PC9wcmU+CiAgCiAgPGJyIC8+PGJyIC8+CgogIDxwPklmIG11bHRpcGxlIGl0ZW1zIGFyZSBiZWluZyBsb2FkZWQsIHRoaXMgZnVuY3Rpb24gcmV0dXJucyBhcnJheSBvZiBvYmplY3RzLCBlbHNlIGl0IHJldHVybnMgc2luZ2xlIGl0ZW0vY2F0ZWdvcnkgb2JqZWN0PC9wPgoKICA8aDQ+V2hhdCBwYXJhbWV0ZXJzIGRvZXMgaXQgdGFrZT88L2g0PgogIAogIDx1bD4KICAgIDxsaT48ZW0+KHJlcXVpcmVkKSA8L2VtPjx0dD5pbnN0YW5jZTwvdHQ+IC0gTmFtZSBvZiBpbnN0YW5jZSB0aGF0IGhvbGRzIGl0ZW1zLiA8aT4oSWYgdXNlZCBpbnNpZGUgTElTRSB0ZW1wbGF0ZXMsIHRoaXMgcGFyYW1ldGVyIGlzIG9wdGlvbmFsKTwvaT48L2xpPgogICAgPGxpPjxlbT4ocmVxdWlyZWQpIDwvZW0+PHR0PnZhbHVlPC90dD4gLSBDb21tYSBzZXBhcmF0ZWQgbGlzdCBvZiBpZGVudGlmaWVyIHZhbHVlczogJ2FsaWFzMSxhbGlhczIsYWxpYXMzJyBvciAnMSwyLDMnPC9saT4KICAgIDxsaT48ZW0+KG9wdGlvbmFsKSA8L2VtPjx0dD5pdGVtPSdpdGVtJzwvdHQ+IC0gV2FudGVkIGl0ZW0gdHlwZSwgZWl0aGVyOiBpdGVtL2NhdGVnb3J5PC9saT4KICAgIDxsaT48ZW0+KG9wdGlvbmFsKSA8L2VtPjx0dD5pZGVudGlmaWVyPSdpdGVtX2lkL2NhdGVnb3J5X2lkJzwvdHQ+IC0gV2FudGVkIGlkZW50aWZpZXIsIG9uZSBvZiBmb2xsb3dpbmc6IGl0ZW1faWQsIGNhdGVnb3J5X2lkLCBhbGlhczwvbGk+CiAgICA8bGk+PGVtPihvcHRpb25hbCkgPC9lbT48dHQ+Zm9yY2VfYXJyYXk9J2ZhbHNlJzwvdHQ+IC0gRm9yY2Ugb3V0cHV0IHZhbHVlIGFzIGFycmF5PC9saT4KICA8L3VsPgoKPC9kaXY+]]></data>
	</file>
	<file>
	  <filename>/templates/help_templates.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KCiAgICA8aDM+VGVtcGxhdGVzPC9oMz4KCiAgICA8cD5JZiB5b3UgYXJlIG5vdCBzdXJlIHdoYXQgdmFyaWFibGVzIGFyZSBhdmFpbGFibGUgdG8gdXNlIGluIHlvdXIgdGVtcGxhdGVzLCB0cnkgZGVidWdnaW5nOjwvcD4KCiAgICA8cD57bGRlbGltfXskbW9kdWxlX25hbWV9IGRlYnVnPTF9PC9wPgogICAgCiAgICA8cD5Zb3UgY2FuIGFjY2VzcyBhbnkgZmllbGQgZGlyZWN0bHkgd2hlbiBsb29waW5nIHRocm91Z2ggaXRlbXMgdXNpbmcgaXRzIGFsaWFzLCBmb3IgZXhhbXBsZSwgdG8gaWYgeW91IGNyZWF0ZWQgYSBmaWVsZCBkZWZpbml0aW9uIHdpdGggYW4gYWxpYXMgInBvc2l0aW9uIiwgeW91IGNhbiBkbyBvbmUgb2YgdGhlIGZvbGxvd2luZzo8L3A+CgogICAgPHByZSBjbGFzcz0iY29kZSI+PGNvZGU+e2xpdGVyYWx9e2ZvcmVhY2ggZnJvbT0kaXRlbXMgaXRlbT1pdGVtfQogIHskaXRlbS0+ZmllbGRkZWZzLnBvc2l0aW9uLnZhbHVlfGNtc19lc2NhcGV9Jmx0O2JyIC8mZ3Q7CnsvZm9yZWFjaH0KCntmb3JlYWNoIGZyb209JGl0ZW1zIGl0ZW09aXRlbX0KICB7JGl0ZW0tPnBvc2l0aW9ufGNtc19lc2NhcGV9Jmx0O2JyIC8mZ3Q7CnsvZm9yZWFjaH17L2xpdGVyYWx9PC9jb2RlPjwvcHJlPgoKPC9kaXY+]]></data>
	</file>
	<file>
	  <filename>/templates/help_usage.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KCgk8aDM+VXNhZ2U8L2gzPgogICAgCiAgICA8cD5Zb3UgY2FuIGNvbmZpZ3VyZSB7JG1vZHVsZV9uYW1lfSBoZXJlOiBDb250ZW50ICZyYXF1bzsgeyRtb2R1bGVfbmFtZX08L3A+CiAgICA8cD5QbGFjZSB0aGlzIHRhZyBpbiB5b3VyIHBhZ2U6IHtsZGVsaW19eyRtb2R1bGVfbmFtZX19PC9wPgogICAgPGJyIC8+CgoJPHA+QWZ0ZXIgaW5zdGFsbGluZyB0aGUgbW9kdWxlIHRoZSBuZXh0IHRoaW5nIHRvIGRvIGlzIHNldCB0aGUgb3B0aW9ucy48L3A+CgogICAgPG9sPgogICAgICAgIDxsaT5UbyBjaGFuZ2UgdGhlIG5hbWUgb2YgdGhlIG1vZHVsZSBpbiB0aGUgbWVudSBjaGFuZ2UgdGhlICJNb2R1bGUgRnJpZW5kbHkgTmFtZSIuPC9saT4KICAgICAgICA8bGk+VG8gY2hhbmdlIHRoZSBuYW1lIG9mIHRoZSBpdGVtIHRhYiBjaGFuZ2UgdGhlICJJdGVtIFBsdXJhbCIuPC9saT4KICAgIDwvb2w+CgoJPHA+TmV4dCAtIHNldCB0aGUgRmllbGQgRGVmaW5pdGlvbnMuPC9wPgoKICAgIDxvbD4KICAgICAgICA8bGk+Q2hvb3NlIGZyb20gIlRleHQgSW5wdXQiLCAiQ2hlY2tib3giLCAiVGV4dCBBcmVhIiwgIlNlbGVjdCBEYXRlIiwgIlNlbGVjdCBGaWxlIiwgIkNvbnRlbnQgUGFnZXMiICAmYW1wOyAiRHJvcGRvd24iLjwvbGk+CiAgICAgICAgPGxpPkZvciBlYWNoIGZpZWxkIGRlZmluaXRpb24sIHlvdSBjYW4gc3BlY2lmeSBvciBjaG9vc2UgYWRkaXRpb25hbCBzZXR0aW5nczxiciAvPiBmcm9tIGF2YWlsYWJsZSBvcHRpb25zIHdoaWNoIGRlcGVuZCBvbiBmaWVsZCBkZWZpbml0aW9uIHR5cGUuPC9saT4KICAgICAgICA8bGk+RWFjaCBpdGVtIGluIGVhY2ggbGlzdCBoYXMgdGhyZWUgZGVmYXVsdCBmaWVsZHMuIDxiciAvPkFsbCBGaWVsZCBEZWZpbml0aW9ucyBzZXQgaGVyZSBhcmUgYWRkaXRpb25hbCB0byB0aGVtLjwvbGk+CiAgICA8L29sPgoKCTxwPlRvIGJlIGFibGUgdG8gdXNlIENhdGVnb3JpZXMgd2l0aCB5b3VyIExJU0UgaW5zdGFuY2UgeW91IHdpbGwgaGF2ZSB0byBjcmVhdGUgYSBGaWVsZCBkZWZpbml0aW9uIHdpdGggdHlwZSBvZiAiQ2F0ZWdvcnkiLjxiciAvPgogICAgICAgIE9uY2UgYSBGaWVsZCBkZWZpbml0aW9uIHdhcyBjcmVhdGUgbmV3IFRhYiB3aXRoIG5hbWUgIkNhdGVnb3JpZXMiIHdpbGwgYmVjb21lIGF2YWlsYWJsZSBpbiB5b3VyIExJU0UgbW9kdWxlIGluc3RhbmNlLjxiciAvPgoJTm93IHlvdSBjYW4gc3RhcnQgYWRkaW5nIGNhdGVnb3JpZXMuPC9wPgoKCTxwPk5vdyB3ZSBtb3ZlIG9uIHRvIHRoZSBpdGVtIGxpc3QgaXRzZWxmLiBJbiB0aGlzIGV4YW1wbGUgaXQgc2F5cyAiQWRkIEJveCIsIHRoaXMgd2FzIHJlbmFtZWQgaW4gdGhlICJPcHRpb25zIiB0YWIuPC9wPgoKICAgIDxvbD4KICAgICAgICA8bGk+VGhlIGZpcnN0IGZpZWxkIGlzIHRoZSBkZWZhdWx0ICJUaXRsZSIgZmllbGQuPC9saT4KICAgICAgICA8bGk+VGhlICJDYXRlZ29yeSIgZHJvcGRvd24gaXMgYWxzbyBhIGRlZmF1bHQgZmllbGQsIGFuZCBpZiB1bmNoYW5nZWQsIHdpbGwgYmUgc2V0IHRvICJHZW5lcmFsIi48L2xpPgogICAgICAgIDxsaT5UaGUgdGhpcmQgZGVmYXVsdCBmaWVsZCBpcyB0aGUgY2hlY2tib3ggY2FsbGVkICJBY3RpdmUiLiBUaGlzIGFsbG93cyB5b3UgdG8gdG9nZ2xlIGEgbGlzdCBlbnRyeSB3aXRob3V0IGRlbGV0aW5nIGl0LjwvbGk+CiAgICA8L29sPgoKPC9kaXY+]]></data>
	</file>
	<file>
	  <filename>/templates/help_whatsnew.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[eyogdG8gYmUgcmVtb3ZlZCAqfQ==]]></data>
	</file>
	<file>
	  <filename>/templates/help_whats_new_tab.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4NCiAgPGgzPldoYXQncyBuZXc8L2gzPg0KICA8cD5UaGVzZSBhcmUgc29tZSBvZiB0aGUgbmV3IGZlYXR1cmVzIG9mIHRoZSBsYXRlc3QgcmVsZWFzZXM6PC9wPg0KDQogIDxoND5WZXJzaW9uIDEuNTwvaDQ+DQogIDx1bD4NCiAgICA8bGk+DQogICAgICA8Yj5JdGVtIEVkaXRvcjwvYj4gaGFzIG5vdyA8Yj5wcmV2aW91czwvYj4gYW5kIDxiPm5leHQ8L2I+IG5hdmlnYXRpb24gYnV0dG9ucyB3aXRoIG9wdGlvbiB0byBzdWJtaXQgaWYgdGhlcmUgYXJlIGNoYW5nZXMgdG8gdGhlIGZvcm07DQogICAgPC9saT4NCiAgICA8bGk+DQogICAgICBTaW1pbGFyIHRvIHRoZSA8Yj5DdXN0b20gRmllbGQgRnJvbSBVRFQ8L2I+IGN1c3RvbSBmaWVsZCwgdGhlcmUgaXMgbm93IGEgPGI+Q3VzdG9tIEZpZWxkIEZyb20gU21hcnR5IFRlbXBsYXRlPC9iPiBmaWVsZCB3aGljaCBhbGxvd3MgeW91IHRvIHBvcHVsYXRlIGZpZWxkIG9wdGlvbnMgZnJvbSBTbWFydHkgbG9naWM7DQogICAgPC9saT4NCiAgICA8bGk+DQogICAgICBUaGVyZSBpcyBhIDxiPkhlbHAgUG9wdXA8L2I+IGN1c3RvbSBmaWVsZCwgd2hpY2ggd2lsbCBhZGQgYSBjbGlja2FibGUgPGltZyBzcmM9InRoZW1lcy9PbmVFbGV2ZW4vaW1hZ2VzL2ljb25zL3N5c3RlbS9pbmZvLmdpZiI+IGljb24gdG8gdGhlIHByZXZpb3VzIGZpZWxkIGluIHRoZSBsaXN0IHdoaWNoIHdpbGwgb3BlbiBhIGhlbHAgcG9wdXAgZGlhbG9nIHdpdGggeW91ciBjdXN0b20gdGV4dCBhbmQgdGl0bGUsIGdyZWF0IGZvciBoZWxwIHRleHRzIGZvciBvdGhlciBmaWVsZHM7DQogICAgPC9saT4NCiAgICA8bGk+DQogICAgICBUaGVyZSBpcyBhIDxiPlByZXZpZXc8L2I+IGN1c3RvbSBmaWxlZCB0aGF0IGFkZHMgYSBwcmV2aWV3IHRhYiB0byB0aGUgSXRlbSBFZGl0b3I7DQogICAgPC9saT4NCiAgPC91bD4NCg0KICA8aDU+TmV3IGZlYXR1cmVzPC9oNT4NCg0KICA8dWw+DQogICAgPGxpPkFkZGVkIFRpdGxlcyBNb2RlcyBhbmQgYXV0byBnZW5lcmF0aW9uOzwvbGk+DQogICAgPGxpPkFkZGVkIGVhc3kgbmF2aWdhdGlvbiBvbiB0aGUgSXRlbSBFZGl0b3IgdmlhIHByZXZpb3VzIGFuZCBuZXh0IGFycm93IGJ1dHRvbnM7PC9saT4NCiAgICA8bGk+SXRlbSBUaXRsZSwgQWxpYXMgYW5kIEN1c3RvbSBVUkxzIHRlbXBsYXRlcyBoYXZlIG5ldyB0YWdzIHdpdGggbW9yZSBmZWF0dXJlczs8L2xpPg0KICAgIDxsaT5BZGRlZCBvcHRpb24gdG8gbGlzdCBpbmFjdGl2ZSBpdGVtcywgYWN0aXZlIGl0ZW1zIG9yIGJvdGggaW4gTElTRSBJbnN0YW5jZSBJdGVtIGN1c3RvbSBmaWVsZDs8L2xpPg0KICA8L3VsPg0KPC9kaXY+]]></data>
	</file>
	<file>
	  <filename>/templates/index.html</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[]]></data>
	</file>
	<file>
	  <filename>/templates/instancestab.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[e2lmIGNvdW50KCRtb2R1bGVzKSA+IDB9Cgl7JG1vZGVzID0gWwoJMCA9PiAkbW9kLT5Nb2RMYW5nKCdtb2RlX2xpc3QnKSwKCTEgPT4gJG1vZC0+TW9kTGFuZygnbW9kZV9sb2NhbCcpLAoJMiA9PiAkbW9kLT5Nb2RMYW5nKCdtb2RlX2dsb2JhbCcpCgldfQoKPGRpdiBjbGFzcz0icGFnZXdhcm5pbmciPgoJPGgzPnskbW9kLT5Nb2RMYW5nKCdub3RpY2UnKX08L2gzPgoJPHA+eyRtb2QtPk1vZExhbmcoJ2luc3RhbGxlZF9pbnN0YW5jZXNfd2FybmluZycpfTwvcD4KPC9kaXY+CjxmaWVsZHNldD4KCTxsZWdlbmQ+eyRtb2QtPk1vZExhbmcoJ2luc3RhbGxlZF9pbnN0YW5jZXMnKX08L2xlZ2VuZD4KCTx0YWJsZSBjZWxsc3BhY2luZz0iMCIgY2xhc3M9InBhZ2V0YWJsZSI+CiAgICAJPHRoZWFkPgogICAgICAgIAk8dHI+CiAgICAgICAgICAgIAk8dGg+eyRtb2QtPk1vZExhbmcoJ2luc3RhbmNlX25hbWUnKX08L3RoPgogICAgICAgICAgICAJPHRoPnskbW9kLT5Nb2RMYW5nKCdpbnN0YW5jZV9mcmllbmRseW5hbWUnKX08L3RoPgogICAgICAgICAgICAJPHRoPnskbW9kLT5Nb2RMYW5nKCdpbnN0YW5jZV9zbWFydHknKX08L3RoPgogICAgICAgICAgICAgIDx0aD57JG1vZC0+TW9kTGFuZygnaW5zdGFuY2VfdmVyc2lvbicpfTwvdGg+CiAgICAgICAgICAgICAgPHRoPnskbW9kLT5Nb2RMYW5nKCdpbnN0YW5jZV9tb2RlJyl9PC90aD4KICAgICAgICAgICAgICA8dGg+eyRtb2QtPk1vZExhbmcoJ2Nsb25lX3RpdGxlJyl9PC90aD4KICAgICAgICAgICAgICA8dGg+eyRtb2QtPk1vZExhbmcoJ2V4cG9ydF90aXRsZScpfTwvdGg+CgkJCQkJCQk8dGg+eyRtb2QtPk1vZExhbmcoJ3NhdmVfZG5hX3RpdGxlJyl9PC90aD4KICAgICAgICAgICAgCTx0aCBjbGFzcz0icGFnZWljb24iPnskbW9kLT5Nb2RMYW5nKCdpbnN0YW5jZV91cHRvZGF0ZScpfTwvdGg+CiAgICAgICAgCTwvdHI+CiAgICAJPC90aGVhZD4KICAgIAk8dGJvZHk+Cgl7Zm9yZWFjaCBmcm9tPSRtb2R1bGVzIGl0ZW09J2VudHJ5J30KICAgIAkgICAgPHRyIGNsYXNzPSJ7Y3ljbGUgdmFsdWVzPSdyb3cxLHJvdzInIG5hbWU9J3N1bW1hcnknfSI+CiAgICAgICAgCSAgICA8dGQ+eyRlbnRyeS0+bW9kdWxlX25hbWV9PC90ZD4KICAgICAgICAJICAgIDx0ZD57JGVudHJ5LT5mcmllbmRseW5hbWV9PC90ZD4KICAgICAgICAJICAgIDx0ZD57bGRlbGltfXskZW50cnktPm1vZHVsZV9uYW1lfXtyZGVsaW19PC90ZD4KICAgICAgICAgICAgICA8dGQ+eyRlbnRyeS0+dmVyc2lvbn08L3RkPgoJCQkJCQkJPHRkPjxkaXYgY2xhc3M9ImdyZWVuIj57JG1vZGVzWyRlbnRyeS0+bW9kZV19PC9kaXY+PC90ZD4KICAgICAgICAgICAgICA8dGQ+eyRlbnRyeS0+Y2xvbmVsaW5rfTwvdGQ+CiAgICAgICAgICAgIAk8dGQ+eyRlbnRyeS0+ZXhwb3J0bGlua308L3RkPgogICAgICAgICAgICAJPHRkPnskZW50cnktPnNhdmVkbmFsaW5rfTwvdGQ+CiAgICAgICAgICAgIAk8dGQ+eyRlbnRyeS0+dXBncmFkZWxpbmt9PC90ZD4KICAgICAgICAJPC90cj4KCXsvZm9yZWFjaH0KICAgIAk8L3Rib2R5PgoJPC90YWJsZT4KPC9maWVsZHNldD4Key9pZn0KeyRzdGFydGZvcm19CiAgICAgICAgPHAgY2xhc3M9InBhZ2VpbnB1dCI+CgkJCQl7JGR1cGxpY2F0ZX0KCQk8L3A+ICAgCnskZW5kZm9ybX0KCnskc3RhcnR1cGxvYWRmb3JtfQo8ZmllbGRzZXQ+Cgk8bGVnZW5kPnskbW9kLT5Nb2RMYW5nKCdpbXBvcnRfaW5zdGFuY2UnKX08L2xlZ2VuZD4KCTxkaXYgY2xhc3M9ImluZm9ybWF0aW9uIj4KCQk8cD57JG1vZC0+TW9kTGFuZygnaW1wb3J0X2luc3RhbmNlX2luZm8nKX08L3A+Cgk8L2Rpdj4KCTxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CgkJPHAgY2xhc3M9InBhZ2VpbnB1dCI+eyRpbnN0YW5jZW5hbWVpbnB1dH17JGZpbGVuYW1laW5wdXR9eyR1cGxvYWR9PC9wPgoJPC9kaXY+CjwvZmllbGRzZXQ+CnskZW5kdXBsb2FkZm9ybX0=]]></data>
	</file>
	<file>
	  <filename>/templates/maintenancetab.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[eyRzdGFydGZvcm19DQo8ZmllbGRzZXQ+DQogIDxsZWdlbmQ+eyRtb2QtPk1vZExhbmcoJ2ZpZWxkZGVmcycpfTwvbGVnZW5kPg0KDQogIDxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+DQogICAgPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JG1vZC0+TW9kTGFuZygncHJvbXB0X2ZpeF9maWVsZGRlZnMnKX06PC9wPg0KICAgIDxwIGNsYXNzPSJwYWdlaW5wdXQiPnskYnV0dG9uX2ZpeF9maWVsZGRlZnN9PC9wPg0KICA8L2Rpdj4gIA0KICANCjwvZmllbGRzZXQ+DQp7aWYgTElTRVNtYXJ0eTo6TEkyX3ByZXNlbnQoKX0NCjxmaWVsZHNldD4NCiAgPGxlZ2VuZD57JG1vZC0+TW9kTGFuZygnaW1wb3J0X2Zyb21fTEkyX3RpdGxlJyl9PC9sZWdlbmQ+DQogICA8ZGl2IGNsYXNzPSJyZWQiPnskbW9kLT5Nb2RMYW5nKCdjbG9uZV9pbnN0YW5jZXNfd2FybmluZycpfTwvZGl2Pg0KDQoJPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4NCgkJPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JG1vZC0+TW9kTGFuZygncHJvbXB0X2ltcG9ydF9mcm9tX0xJMicpfTo8L3A+DQoJCTxwIGNsYXNzPSJwYWdlaW5wdXQiPnskYnV0dG9uX2ltcG9ydF9mcm9tX0xJMn08L3A+DQoJPC9kaXY+CQ0KPC9maWVsZHNldD4NCnsvaWZ9DQoNCjxmaWVsZHNldD4NCiAgPGxlZ2VuZD57JG1vZC0+TW9kTGFuZygnZml4X2ltcG9ydF9mcm9tX0xJMl90aXRsZScpfTwvbGVnZW5kPg0KICAgPGRpdiBjbGFzcz0icmVkIj57JG1vZC0+TW9kTGFuZygnZml4X0xJMl9pbnN0YW5jZXNfd2FybmluZycpfTwvZGl2Pg0KDQogIDxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+DQogICAgPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JG1vZC0+TW9kTGFuZygncHJvbXB0X2ZpeF9pbXBvcnRfZnJvbV9MSTInKX06PC9wPg0KICAgIDxwIGNsYXNzPSJwYWdlaW5wdXQiPnskYnV0dG9uX2ZpeF9pbXBvcnRfZnJvbV9MSTJ9PC9wPg0KICA8L2Rpdj4gIA0KPC9maWVsZHNldD4gIA0KeyRlbmRmb3JtfQ==]]></data>
	</file>
	<file>
	  <filename>/templates/optiontab.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[eyRzdGFydGZvcm19DQo8ZmllbGRzZXQ+DQoJPGxlZ2VuZD57JG1vZC0+TW9kTGFuZygnZmllbGRkZWZzJyl9PC9sZWdlbmQ+DQoJDQoJPGRpdiBjbGFzcz0icGFnZXdhcm5pbmciPg0KCQk8aDM+eyRtb2QtPk1vZExhbmcoJ25vdGljZScpfTwvaDM+DQoJCTxwPnskbW9kLT5Nb2RMYW5nKCdub3RpY2VfYWxsb3dfYXV0b3NjYW4nKX08L3A+DQoJPC9kaXY+CQ0KCQ0KICAgIDxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+DQogICAgICAgIDxwIGNsYXNzPSJwYWdldGV4dCI+eyRtb2QtPk1vZExhbmcoJ3Byb21wdF9hbGxvd19hdXRvc2NhbicpfTo8L3A+DQogICAgICAgIDxwIGNsYXNzPSJwYWdlaW5wdXQiPnskaW5wdXRfYWxsb3dfYXV0b3NjYW59PC9wPg0KICAgIDwvZGl2Pg0KIA0KPC9maWVsZHNldD4NCg0KPGZpZWxkc2V0Pg0KCTxsZWdlbmQ+eyRtb2QtPk1vZExhbmcoJ2luc3RhbmNlcycpfTwvbGVnZW5kPg0KICANCiAgICA8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPg0KICAgICAgICA8cCBjbGFzcz0icGFnZXRleHQiPnskbW9kLT5Nb2RMYW5nKCdwcm9tcHRfYWxsb3dfYXV0b2luc3RhbGwnKX06PC9wPg0KICAgICAgICA8cCBjbGFzcz0icGFnZWlucHV0Ij57JGlucHV0X2FsbG93X2F1dG9pbnN0YWxsfTwvcD4NCiAgICA8L2Rpdj4JDQogICAgPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4NCiAgICAgICAgPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JG1vZC0+TW9kTGFuZygncHJvbXB0X2FsbG93X2F1dG91cGRhdGUnKX06PC9wPg0KICAgICAgICA8cCBjbGFzcz0icGFnZWlucHV0Ij57JGlucHV0X2FsbG93X2F1dG91cGRhdGV9PC9wPg0KICAgIDwvZGl2Pg0KIA0KPC9maWVsZHNldD4NCiAgICA8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPg0KICAgICAgICA8cCBjbGFzcz0icGFnZXRleHQiPiZuYnNwOzwvcD4NCiAgICAgICAgPHAgY2xhc3M9InBhZ2VpbnB1dCI+DQoJCQl7JHN1Ym1pdH0NCgkJPC9wPg0KICAgIDwvZGl2Pg0KDQp7JGVuZGZvcm19DQo=]]></data>
	</file>
</module>
