# Name: smd_slimbox v0.33 # Type: Client side plugin # Image gallery lightbox wrapper that can use Slimbox, Litebox, Moonbox, Thickbox etc # Author: Stef Dawson # URL: http://stefdawson.com/ # Recommended load order: 5 # ..................................................................... # This is a plugin for Textpattern - http://textpattern.com/ # To install: textpattern > admin > plugins # Paste the following text into the 'Install plugin' box: # ..................................................................... YToxMTp7czo0OiJuYW1lIjtzOjExOiJzbWRfc2xpbWJveCI7czo2OiJhdXRob3IiO3M6MTE6 IlN0ZWYgRGF3c29uIjtzOjEwOiJhdXRob3JfdXJpIjtzOjIyOiJodHRwOi8vc3RlZmRhd3Nv bi5jb20vIjtzOjc6InZlcnNpb24iO3M6NDoiMC4zMyI7czoxMToiZGVzY3JpcHRpb24iO3M6 ODM6IkltYWdlIGdhbGxlcnkgbGlnaHRib3ggd3JhcHBlciB0aGF0IGNhbiB1c2UgU2xpbWJv eCwgTGl0ZWJveCwgTW9vbmJveCwgVGhpY2tib3ggZXRjIjtzOjQ6ImhlbHAiO3M6MzkwMDA6 IjxkaXYgaWQ9InNtZF9oZWxwIj4NCg0KCTxoMSBpZD0idG9wIj5zbWRfc2xpbWJveDwvaDE+ DQoNCgk8aDIgaWQ9ImNvbnRlbnRzIj5Db250ZW50czwvaDI+DQoNCgk8dWw+DQoJCTxsaT48 YSBocmVmPSIjZmVhdHVyZXMiPkZlYXR1cmVzPC9hPjwvbGk+DQoJCTxsaT48YSBocmVmPSIj YXV0aG9yIj5BdXRob3I8L2E+PC9saT4NCgkJPGxpPjxhIGhyZWY9IiNpbnN0YWxsIj5JbnN0 YWxsYXRpb24gLyBVbmluc3RhbGxhdGlvbjwvYT48L2xpPg0KCQk8bGk+PGEgaHJlZj0iI3Vz YWdlIj5UYWcgdXNhZ2U8L2E+DQoJPHVsPg0KCQk8bGk+PGEgaHJlZj0iI2NoYW5nZXMiPkNo YW5nZXMgZnJvbSBwcmV2aW91cyB2ZXJzaW9uPC9hPjwvbGk+DQoJCTxsaT48YSBocmVmPSIj YXR0cyI+QXR0cmlidXRlczwvYT48L2xpPg0KCQk8bGk+PGEgaHJlZj0iI2ZpZWxkcyI+QXJ0 aWNsZSBmaWVsZCBjb2RlczwvYT48L2xpPg0KCQk8bGk+PGEgaHJlZj0iI2ltYWdlX2ZpZWxk cyI+SW1hZ2UgZmllbGQgY29kZXM8L2E+PC9saT4NCgk8L3VsPjwvbGk+DQoJCTxsaT48YSBo cmVmPSIjZXhhbXBsZXMiPkV4YW1wbGVzPC9hPjwvbGk+DQoJCTxsaT48YSBocmVmPSIjc3R5 bGUiPlN0eWxpbmc8L2E+PC9saT4NCgkJPGxpPjxhIGhyZWY9IiNjaGFuZ2Vsb2ciPkNoYW5n ZWxvZzwvYT48L2xpPg0KCQk8bGk+PGEgaHJlZj0iI2NyZWRpdHMiPkNyZWRpdHM8L2E+PC9s aT4NCgk8L3VsPg0KDQoJPGgyIGlkPSJmZWF0dXJlcyI+RmVhdHVyZXM8L2gyPg0KDQoJPHVs Pg0KCQk8bGk+R2VuZXJhdGVzIGEgbGlzdCBvZiB0aHVtYm5haWxzIHRoYXQgY2FuIGJlIHN0 eWxlZCBhbnkgd2F5IHlvdSBsaWtlPC9saT4NCgkJPGxpPkZsZXhpYmxlIHdheSBvZiBleHRy YWN0aW5nIGltYWdlcyBmcm9tIHRoZSA8c3BhbiBjbGFzcz0iY2FwcyI+VFhQPC9zcGFuPiBk YXRhYmFzZTsgYXJiaXRyYXJ5IGluY2x1c2lvbi9leGNsdXNpb24gb2YgY2F0ZWdvcmllcyBv ciBpbWFnZSBJRHM8L2xpPg0KCQk8bGk+TGlzdHMgb2YgY2F0ZWdvcmllcyBhbmQgSURzIGNh biBiZSBwdWxsZWQgZnJvbSBhbnkgZmllbGQgaW4gdGhlIGN1cnJlbnQgYXJ0aWNsZSwgaW5j bHVkaW5nIGN1c3RvbSBmaWVsZHM8L2xpPg0KCQk8bGk+U3VwcG9ydHMgZ2x6X2N1c3RvbV9m aWVsZHMgZm9yIGV2ZW4gZ3JlYXRlciBmbGV4aWJpbGl0eSAoY3VycmVudGx5IHJlcXVpcmVz IGEgc21hbGwgbW9kIHRvIHB1Ymxpc2gucGhwKTwvbGk+DQoJCTxsaT5TdWJjYXRlZ29yaWVz OiBzcGVjaWZ5IGEgcGFyZW50IGFuZCBhbGwgY2hpbGQgY2F0ZWdvcmllcyBhcmUgYXV0b21h dGljYWxseSBpbmNsdWRlZDwvbGk+DQoJCTxsaT5TaG93IGFzc29jaWF0ZWQgaW1hZ2UgdGV4 dCBpbiB2YXJpb3VzIGxvY2F0aW9ucyBhcm91bmQgdGhlIHRodW1ibmFpbHM8L2xpPg0KCQk8 bGk+UGFnaW5nIGFuZCBtdWx0aXBsZSBnYWxsZXJpZXMgcGVyIHBhZ2U8L2xpPg0KCQk8bGk+ U3VwcG9ydHMgU2xpbWJveCwgTGlnaHRib3gsIExpdGVib3gsIE1vb25ib3gsIFRoaWNrYm94 IGFuZCBwZXJoYXBzIHNvbWUgbW9yZSBiZXNpZGVzLiBGb3IgYSB3aWRlciByYW5nZSwgc2Vl IDxhIGhyZWY9Imh0dHA6Ly90ZXh0cGF0dGVybi5vcmcvcGx1Z2lucy85NTcvc21kX2dhbGxl cnkiPnNtZF9nYWxsZXJ5PC9hPjwvbGk+DQoJPC91bD4NCg0KCTxoMiBpZD0iYXV0aG9yIj5B dXRob3I8L2gyPg0KDQoJPHA+PGEgaHJlZj0iaHR0cDovL3N0ZWZkYXdzb24uY29tL2NvbW1l bnRGb3JtIj5TdGVmIERhd3NvbjwvYT4uIEZvciBvdGhlciBzb2Z0d2FyZSBieSBtZSwgb3Ig dG8gbWFrZSBhIGRvbmF0aW9uLCBzZWUgdGhlIDxhIGhyZWY9Imh0dHA6Ly9zdGVmZGF3c29u LmNvbS9zdyI+c29mdHdhcmUgcGFnZTwvYT4uPC9wPg0KDQoJPHA+T3JpZ2luYWxseSBiYXNl ZCBvbiA8YSBocmVmPSJodHRwOi8vd3d3LmRpZ2l0YWxpYS5iZS9zb2Z0d2FyZS9zbGltYm94 Ij5zbGltYm94LCBhIGxpZ2h0d2VpZ2h0IExpZ2h0Ym94IGNsb25lPC9hPiBieSBDaHJpc3Rv cGhlIEJleWxzLiBGb3IgbW9yZSBpbmZvIG9yIHRyb3VibGVzaG9vdGluZyBvbiB0aGUgbGln aHRib3ggc2lkZSBvZiB0aGluZ3MgKGFzIG9wcG9zZWQgdG8gdGhlIHRodW1ibmFpbCBnZW5l cmF0aW9uIHNpZGUgb2YgdGhpbmdzKSA8YSBocmVmPSJodHRwOi8vd3d3LmZyZWV3ZWJzZmFy bXMuY29tL2ZvcnVtcy92aWV3dG9waWMucGhwP3BpZD0zMzE2I3AzMzE2Ij5zZWUgQ2hyaXN0 b3BoZSYjODIxNztzIGZvcnVtPC9hPi48L3A+DQoNCgk8aDIgaWQ9Imluc3RhbGwiPkluc3Rh bGxhdGlvbiAvIFVuaW5zdGFsbGF0aW9uPC9oMj4NCg0KCTxwIGNsYXNzPSJyZXF1aXJlZCI+ UmVxdWlyZXMgPGEgaHJlZj0iaHR0cDovL3N0ZWZkYXdzb24uY29tL2Rvd25sb2Fkcy9zbWRf bGliX3YwLjMyLnR4dCI+c21kX2xpYiB2MC4zMjwvYT4gdG8gYmUgaW5zdGFsbGVkIGFuZCBh Y3RpdmF0ZWQuPC9wPg0KDQoJPHA+RG93bmxvYWQgdGhlIHBsdWdpbiBmcm9tIGVpdGhlciA8 YSBocmVmPSJodHRwOi8vdGV4dHBhdHRlcm4ub3JnL3BsdWdpbnMvNzQxL3NtZF9zbGltYm94 Ij50ZXh0cGF0dGVybi5vcmc8L2E+LCBvciB0aGUgPGEgaHJlZj0iaHR0cDovL3N0ZWZkYXdz b24uY29tL3N3Ij5zb2Z0d2FyZSBwYWdlPC9hPiwgcGFzdGUgdGhlIGNvZGUgaW50byB0aGUg PHNwYW4gY2xhc3M9ImNhcHMiPlRYUDwvc3Bhbj4gQWRtaW4gLSZndDsgUGx1Z2lucyBwYW5l LCBpbnN0YWxsIGFuZCBlbmFibGUgdGhlIHBsdWdpbi48L3A+DQoNCgk8cD5Zb3Ugd2lsbCBh bHNvIG5lZWQgYSBqYXZhc2NyaXB0IGxpYnJhcnkgdG8gcGVyZm9ybSB0aGUgbGlnaHRib3gg ZWZmZWN0LCB3aGljaCB5b3UgbXVzdCBsb2FkIG9uIHlvdXIgcGFnZSBhcyBwZXIgdGhlIGlu c3RydWN0aW9ucyBmb3IgdGhhdCBsaWJyYXJ5LiBBbHRob3VnaCB0aGUgZXhhbXBsZXMgaW4g dGhpcyBwYWdlIGFyZSBmb3IgU2xpbWJveCwgdGhlIHBsdWdpbiB3aWxsIHdvcmsgd2l0aCBh IG51bWJlciBvZiBmcmVlbHktYXZhaWxhYmxlIGphdmFzY3JpcHQgbGlicmFyaWVzICYjODIx Mjsgb2Z0ZW4gd2l0aG91dCBtb2RpZmljYXRpb24uIFNvbWUgbGlicmFyaWVzIChlLmcuIFRo aWNrYm94KSBzaW1wbHkgcmVxdWlyZSBhbiBhZGRpdGlvbmFsIGNsYXNzIHRvIGJlIHNldCBv biB0aGUgaW1hZ2UgdGFncy48L3A+DQoNCgk8cD5WaXNpdCB0aGUgPGEgaHJlZj0iaHR0cDov L2ZvcnVtLnRleHRwYXR0ZXJuLmNvbS92aWV3dG9waWMucGhwP2lkPTIwNzE0Ij5mb3J1bSB0 aHJlYWQ8L2E+IGZvciBtb3JlIGluZm8gb3IgdG8gcmVwb3J0IG9uIHRoZSBzdWNjZXNzIG9y IG90aGVyd2lzZSBvZiB0aGUgcGx1Z2luLjwvcD4NCg0KCTxwPlRvIHJlbW92ZSB0aGUgcGx1 Z2luLCBzaW1wbHkgZGVsZXRlIGl0IGZyb20gdGhlIEFkbWluLSZndDtQbHVnaW5zIHRhYiBh bmQgcmVtb3ZlIHlvdXIgdGhpcmQgcGFydHkgbGlicmFyaWVzLjwvcD4NCg0KCTxoMiBpZD0i dXNhZ2UiPlVzYWdlPC9oMj4NCg0KCTxwPlRoZSBwbHVnaW4gb3B0aW9ucyBnb3Zlcm4gd2hp Y2ggdGh1bWJuYWlscyB0byB1c2UgYW5kIGhvdyB0aGV5IGFyZSBkaXNwbGF5ZWQuIE9uY2Ug YSB0aHVtYiBpcyBjbGlja2VkLCBjb250cm9sIGlzIGhhbmRlZCBvdmVyIHRvIG1vb3Rvb2xz L2pRdWVyeS9wcm90b3R5cGUgdG8gZG8gdGhlIGZhbmN5IHdvcmsuIFRoZXJlZm9yZSwgaWYg eW91IHdpc2ggdG8gY29uZmlndXJlIHRoZSBsb29rIG9mIHRoZSAmIzgyMjA7bGlnaHRib3gm IzgyMjE7IHBhcnQsIHlvdSBuZWVkIHRvIGVkaXQgaXRzIGphdmFzY3JpcHQgYW5kL29yIGFz c29jaWF0ZWQgPHNwYW4gY2xhc3M9ImNhcHMiPkNTUzwvc3Bhbj4uPC9wPg0KDQoJPHA+QmVm b3JlIHlvdSBjYW4gdXNlIHNtZF9zbGltYm94IHlvdSBoYXZlIHRvIGVuc3VyZSB0aGF0IHRo ZSBwYWdlIGNhbiByZWFkIHRoZSBleHRlcm5hbCBsaWJyYXJ5IGZpbGVzLiBZb3UgZG8gdGhp cyBieSBwdXR0aW5nIDxjb2RlPiZsdDtzY3JpcHQmZ3Q7PC9jb2RlPiBhbmQgPGNvZGU+Jmx0 O2xpbmsmZ3Q7PC9jb2RlPiB0YWdzIGFzIHVzdWFsIGluIHlvdXIgcGFnZSA8Y29kZT4mbHQ7 aGVhZCZndDs8L2NvZGU+LjwvcD4NCg0KCTxoMyBpZD0iY2hhbmdlcyI+Q2hhbmdlcyBmcm9t IHByZXZpb3VzIHZlcnNpb248L2gzPg0KDQoJPHA+RXhwZXJpZW5jZWQgdXNlcnMgb2Ygc21k X3NsaW1ib3gsIHBsZWFzZSBub3RlIHRoZXNlIGltcG9ydGFudCBjaGFuZ2VzIHRvIHRoZSBw bHVnaW46PC9wPg0KDQoJPHVsPg0KCQk8bGk+QWZ0ZXIgb3ZlcndoZWxtaW5nIHN1cHBvcnQg ZnJvbSB0aGUgcG9sbCwgPGNvZGU+c21kX3NsaW1ib3hfaW5jPC9jb2RlPiBpcyBub3cgcmVt b3ZlZC4gSWYgeW91IHVzZSBpdCwgYSB3YXJuaW5nIHdpbGwgYmUgaXNzdWVkPC9saT4NCgkJ PGxpPkFjY29yZGluZ2x5LCA8Y29kZT5saWJjaGVjazwvY29kZT4gaGFzIGJlZW4gcmVtb3Zl ZDwvbGk+DQoJCTxsaT48Y29kZT5jYXRsYWJlbDwvY29kZT4gaGFzIGJlZW4gcmVtb3ZlZC4g V2l0aCBtb3JlIDxjb2RlPj88L2NvZGU+IGFuZCA8Y29kZT4hPC9jb2RlPiA8YSBocmVmPSIj ZmllbGRzIj5hcnRpY2xlIGZpZWxkIGNvZGVzPC9hPiBub3cgYXZhaWxhYmxlLCBhbmQgdGhl IGFiaWxpdHkgdG8gY29tYmluZSB0aGVtIChlLmcuID9zLT9jKSB5b3UgY2FuIG5vdyBwZXJm b3JtIHRoZSBzYW1lIGZ1bmN0aW9uIGFzIDxjb2RlPmNhdGxhYmVsPC9jb2RlPiBieSB1c2lu ZyA8Y29kZT5jYXRlZ29yeT0mcXVvdDthcnRpY2xlLT9pZCZxdW90OzwvY29kZT48L2xpPg0K CQk8bGk+PGNvZGU+c3ViY2F0czwvY29kZT4gaW1wcm92ZWQuIE5vdyB0YWtlcyBhbiBpbnRl Z2VyICYjODIyMDtsZXZlbCYjODIyMTsgdGhhdCBzcGVjaWZpZXMgaG93IGZhciBkb3duIHRo ZSB0cmVlIHRvIGdvLiBGb3IgdGhlIHNhbWUgYmVoYXZpb3VyIGFzIGJlZm9yZSwgdXNlIDxj b2RlPnN1YmNhdHM9JnF1b3Q7YWxsJnF1b3Q7PC9jb2RlPjwvbGk+DQoJCTxsaT5zaG93YWx0 L3Nob3djYXB0aW9uL2FsdGNsYXNzL2NhcHRpb25jbGFzcy90ZXh0cG9zIGhhdmUgYmVlbiBy ZW1vdmVkLiBVc2UgPGNvZGU+dGh1bWJ0ZXh0PC9jb2RlPiwgPGNvZGU+dGh1bWJ0ZXh0d3Jh cDwvY29kZT4gYW5kIDxjb2RlPnRodW1idGV4dGNsYXNzPC9jb2RlPiBpbnN0ZWFkPC9saT4N CgkJPGxpPjxjb2RlPm9yZGVyYnk8L2NvZGU+IGlzIG5vdyBjYWxsZWQgPGNvZGU+c29ydDwv Y29kZT4gaW4gbGluZSB3aXRoIG90aGVyIDxzcGFuIGNsYXNzPSJjYXBzIj5UWFA8L3NwYW4+ IHRhZ3MsIGFuZCB0YWtlcyBhIHNwYWNlLWRlbGltaXRlZCBkaXJlY3Rpb24gbW9kaWZpZXIg aW5zdGVhZCBvZiB0aGUgb2xkIGNvbG9uIGRlbGltaXRlci4gPGNvZGU+b3JkZXJieTwvY29k ZT4gaXMgc3RpbGwgc3VwcG9ydGVkIGZvciBub3cgYW5kIHdpbGwgYmUgY29udmVydGVkIHRv IHRoZSBuZXcgPGNvZGU+c29ydDwvY29kZT4gdGFnIGJ1dCB3aWxsIGlzc3VlIGEgd2Fybmlu ZyBpbiBwcm9kdWN0aW9uL2RlYnVnIG1vZGVzPC9saT4NCgkJPGxpPjxjb2RlPnRodW1iPC9j b2RlPiBpcyBub3cgZW5oYW5jZWQgdG8gYWxsb3cgeW91IHRvIHNwZWNpZnkgd2hldGhlciB0 aGUgZnVsbC1zaXplIGltYWdlIGFuZC9vciB0aGUgdGh1bWJuYWlsIGFyZSBkaXNwbGF5ZWQg dXNpbmcgdGhlICYjODIxNjt0JiM4MjE3OyBpbWFnZSBvciBub3QuIFNvIHlvdSBjYW4gbm93 IHN3YXAgdGh1bWJuYWlsIGFuZCBmdWxsLXNpemUgaWYgeW91IHdpc2gsIG9yIG1ha2UgdGhl bSBzaG93IGlkZW50aWNhbCBpbWFnZXM8L2xpPg0KCQk8bGk+PGNvZGU+dHJpZ2dlcjwvY29k ZT4gYWRkZWQuIFRoaXMgZGVmYXVsdHMgdG8gJiM4MjIwO2xpZ2h0Ym94LSYjODIyMTsgd2hp Y2ggaXMgd2hhdCBzbGltYm94IHVzZXMgaW4gdGhlIDxjb2RlPnJlbDwvY29kZT4gYXR0cmli dXRlIG9mIHRoZSBhbmNob3JzLiBPdGhlciBsaWJyYXJpZXMgbWF5IHVzZSBvdGhlciB3b3Jk cyB0byBpZGVudGlmeSB0aGVtc2VsdmVzLCBzbyB0aGlzIGFsbG93cyB5b3UgdG8gbW9kaWZ5 IHRoZSBzdHJpbmcgdG8gc3VpdDwvbGk+DQoJCTxsaT48Y29kZT5kZWxpbTwvY29kZT4gYWRk ZWQuIElmIHlvdSBkb24mIzgyMTc7dCBsaWtlIHVzaW5nIGEgY29tbWEgYXMgYSBkZWxpbWl0 ZXIsIGNoYW5nZSBpdC4gU2V0IDxjb2RlPmRlbGltPSZxdW90O3wmcXVvdDs8L2NvZGU+IGlm IHVzaW5nIGNoZWNrYm94ZXMgYW5kIG11bHRpLXNlbGVjdHMgd2l0aCBnbHpfY3VzdG9tX2Zp ZWxkczwvbGk+DQoJCTxsaT48Y29kZT5uYXZ3cmFwdGFnPC9jb2RlPiBhZGRlZCBzbyB0aGUg bmF2aWdhdGlvbiBibG9jayBjYW4gYmUgd3JhcHBlZCBpbiBhIGRpZmZlcmVudCB0YWcgdG8g ZWFjaCBpbWFnZTwvbGk+DQoJCTxsaT48Y29kZT5saW5rY2xhc3M8L2NvZGU+IGFkZGVkIHNv IHlvdSBjYW4gc3BlY2lmeSBhIHNlcGFyYXRlIGNsYXNzIGZvciB0aGUgaW1hZ2UgYW5jaG9y cyBpZiB5b3Ugd2lzaDwvbGk+DQoJPC91bD4NCg0KCTxoMyBjbGFzcz0iYXR0cyAiIGlkPSJh dHRzIj5BdHRyaWJ1dGVzPC9oMz4NCg0KCTxwPldpdGhvdXQgYW55IG9wdGlvbnMgdGhlIHBs dWdpbiBkaXNwbGF5cyBldmVyeSBpbWFnZSBpbiB5b3VyIGVudGlyZSBjb2xsZWN0aW9uIGFu ZCB3b24mIzgyMTc7dCBsb29rIHZlcnkgcHJldHR5ICh0aG91Z2ggeW91IGNhbiBoZWxwIGEg Yml0IGJ5IHN0YXJ0aW5nIHdpdGggdGhlIDxhIGhyZWY9IiNzdHlsZSI+PHNwYW4gY2xhc3M9 ImNhcHMiPkNTUzwvc3Bhbj48L2E+KS4gVGhlIGZvbGxvd2luZyBvcHRpb25zIHRhbWUgdGhl IHBsdWdpbiBhIGxpdHRsZTo8L3A+DQoNCgk8dWwgY2xhc3M9ImF0dHMiPg0KCQk8bGk+PHNw YW4gY2xhc3M9ImF0dC1uYW1lIj5jYXRlZ29yeTwvc3Bhbj4gOiBhIGxpc3Qgb2YgaW1hZ2Ug Y2F0ZWdvcmllcy4gQnkgZGVmYXVsdCB0aGUgbGlzdCBzaG91bGQgYmUgY29tbWEtc2VwYXJh dGVkIGJ1dCB0aGlzIGNhbiBiZSBjaGFuZ2VkIHdpdGggdGhlIDxjb2RlPmRlbGltPC9jb2Rl PiBvcHRpb24uIFRoaXMgYXR0cmlidXRlIG1heSB0YWtlIGFueSBvZiB0aGUgc3BlY2lhbCA8 YSBocmVmPSIjZmllbGRzIj5maWVsZCBjb2RlczwvYT4gYnkgZ2l2aW5nIGl0cyBuYW1lIGFm dGVyIGEgPGNvZGU+PzwvY29kZT4gKHRvIGluY2x1ZGUgdGhhdCBmaWVsZCkgb3IgPGNvZGU+ ITwvY29kZT4gKHRvIGV4Y2x1ZGUgdGhhdCBmaWVsZCk8L2xpPg0KCQk8bGk+PHNwYW4gY2xh c3M9ImF0dC1uYW1lIj5pbWFnZWlkPC9zcGFuPiA6IGEgbGlzdCBvZiBpbWFnZSBJRHMuIFRh a2VzIGV4YWN0bHkgdGhlIHNhbWUgc3ludGF4IGFzIHRoZSA8Y29kZT5jYXRlZ29yeTwvY29k ZT4gYXR0cmlidXRlPC9saT4NCgkJPGxpPjxzcGFuIGNsYXNzPSJhdHQtbmFtZSI+c3ViY2F0 czwvc3Bhbj4gOiBob3cgZmFyICYjODIxNjtkb3duJiM4MjE3OyB0byB0cmF2ZXJzZSBpbWFn ZSBzdWItY2F0ZWdvcmllcy4gVGFrZXMgYW4gaW50ZWdlciB2YWx1ZSBvciAmIzgyMTY7YWxs JiM4MjE3Oy4gMCAodGhlIGRlZmF1bHQpIG1lYW5zIG5vIGNoaWxkIGNhdGVnb3JpZXM7IDEg dXNlcyB0aGUgbWFpbiBjYXRlZ29yaWVzIGFuZCB0aGUgZmlyc3QgbGV2ZWwgb2YgY2hpbGRy ZW47IDIgdXNlcyB0aGUgbWFpbiBjYXRlZ29yaWVzIGFuZCB1cCB0byB0d28gY2hpbGQgc3Vi LWNhdGVnb3JpZXM7IGFuZCBzbyBvbjwvbGk+DQoJCTxsaT48c3BhbiBjbGFzcz0iYXR0LW5h bWUiPmltYWdlY2FwdGlvbjwvc3Bhbj4gOiB0aGUgdGV4dCB0byBkaXNwbGF5IHVuZGVyIHRo ZSBsYXJnZSBsaWdodGJveCBpbWFnZS4gSXQgY2FuIGJlIGFueSBmaXhlZCBzdHJpbmcgKHJh dGhlciBwb2ludGxlc3MhKSBvciBhIGNvbWJpbmF0aW9uIG9mIGZpeGVkIHRleHQgYW5kIDxh IGhyZWY9IiNpbWFnZV9maWVsZHMiPmltYWdlIGZpZWxkIGNvZGVzPC9hPjwvbGk+DQoJCTxs aT48c3BhbiBjbGFzcz0iYXR0LW5hbWUiPnRodW1iPC9zcGFuPiA6IGlmIHlvdSB3aXNoIHRo ZSBmdWxsc2l6ZSBpbWFnZXMgZGlzcGxheWVkIGluIHRoZSBsaWdodGJveCB0byBiZSB0aGUg dGh1bWJuYWlscywgb3IgaWYgeW91IHdhbnQgdGhlIHRodW1ibmFpbCBnYWxsZXJ5IHRvIHVz ZSB0aGUgZnVsbHNpemUgaW1hZ2VzLCBzcGVjaWZ5IGl0IHdpdGggdGhpcyBhdHRyaWJ1dGUu IFVzZSA8Y29kZT50aHVtYj0mcXVvdDsxJnF1b3Q7PC9jb2RlPiB0byBzcGVjaWZ5IHRoYXQg Ym90aCBmdWxsc2l6ZSBpbWFnZSBhbmQgdGh1bWJuYWlsIGRpc3BsYXkgdGhlICYjODIxNjt0 JiM4MjE3OyAodGh1bWJuYWlsKSBpbWFnZS4gQ29udmVyc2VseSwgdXNlIDxjb2RlPnRodW1i PSZxdW90OzAmcXVvdDs8L2NvZGU+IHRvIHNwZWNpZnkgdGhhdCBib3RoIGZ1bGxzaXplIGFu ZCB0aHVtYm5haWxzIHVzZSB0aGUgZnVsbCBzaXplIGltYWdlcy4gWW91IGNhbiBhbHNvIGNo b29zZSBvbmUgb3IgdGhlIG90aGVyIGJ5IGdpdmluZyB0aGlzIGF0dHJpYnV0ZSB0d28gbnVt YmVycyBzZXBhcmF0ZWQgYnkgYSBjb2xvbi48ZGl2IGNsYXNzPSJicmVhayI+Rm9yICYjODIx Njtub3JtYWwmIzgyMTc7IG9wZXJhdGlvbiAmIzgyMTI7IGkuZS4gZnVsbHNpemUgaW1hZ2Ug aXMgZnVsbCBzaXplLCB0aHVtYm5haWwgaXMgIHRodW1iIHNpemVkICYjODIxMjsgc3BlY2lm eSA8Y29kZT50aHVtYj0mcXVvdDswOjEmcXVvdDs8L2NvZGU+LiBUbyByZXZlcnNlIHRoaXMs IHVzZSA8Y29kZT50aHVtYj0mcXVvdDsxOjAmcXVvdDs8L2NvZGU+LiBOb3RlIHRoYXQgPGNv ZGU+MToxPC9jb2RlPiBhbmQgPGNvZGU+MDowPC9jb2RlPiBhbHNvIHdvcmsgdG8gc2V0IGJv dGggaW1hZ2VzIHRvIHRoZSBzYW1lIHNpemUgaWYgeW91IHByZWZlciB0aGF0IHN5bnRheCBv dmVyIHVzaW5nIGEgc2luZ2xlIGRpZ2l0PC9kaXY+PC9saT4NCgkJPGxpPjxzcGFuIGNsYXNz PSJhdHQtbmFtZSI+bGltaXQ8L3NwYW4+IDogdGhlIG51bWJlciBvZiBpbWFnZSB0aHVtYm5h aWxzIHRvIHNob3cgcGVyIHBhZ2UuIDAgKG9yIG9taXR0ZWQpIG1lYW5zIGVzc2VudGlhbGx5 IHVubGltaXRlZDwvbGk+DQoJCTxsaT48c3BhbiBjbGFzcz0iYXR0LW5hbWUiPm1heGxpbWl0 PC9zcGFuPiA6IHRoZSBhYnNvbHV0ZSBtYXhpbXVtIG51bWJlciBvZiBpbWFnZXMgdG8gcHVs bCBmcm9tIHRoZSBkYXRhYmFzZS4gMCAob3Igb21pdHRlZCkgbWVhbnMgZXNzZW50aWFsbHkg dW5saW1pdGVkPC9saT4NCgkJPGxpPjxzcGFuIGNsYXNzPSJhdHQtbmFtZSI+c29ydDwvc3Bh bj4gOiBhIGxpc3Qgb2Ygd2F5cyB0byBvcmRlciB0aGUgcmVzdWx0czsgYnkgZGVmYXVsdCBp dCBpcyBieSBjYXRlZ29yeS4gU3BlY2lmeSB0aGUgc29ydCBvcmRlciBieSBhZGRpbmcgPGNv ZGU+YXNjPC9jb2RlPiBvciA8Y29kZT5kZXNjPC9jb2RlPiB0byBhbnkgdmFsdWUsIGUuZy4g PGNvZGU+c29ydD0mcXVvdDtjYXRlZ29yeSwgZGF0ZSBkZXNjJnF1b3Q7PC9jb2RlPiB3b3Vs ZCBzb3J0IGJ5IGNhdGVnb3J5IGZpcnN0LCB0aGVuIGRlc2NlbmRpbmcgZGF0ZS4gVGFrZXMg YW55IG9mIHRoZSA8YSBocmVmPSIjaW1hZ2VfZmllbGRzIj5pbWFnZSBmaWVsZCBjb2Rlczwv YT4gcGx1cyB0d28gc3BlY2lhbCBjb2Rlczo8ZGl2IGNsYXNzPSJicmVhayI+PGNvZGU+Zml4 ZWQ8L2NvZGU+IGZvcmNlcyB0aHVtYnMgdG8gYmUgb3V0cHV0IGluIHRoZSBvcmRlciBnaXZl biBpbiA8Y29kZT5pbWFnZWlkPC9jb2RlPi48L2Rpdj48ZGl2IGNsYXNzPSJicmVhayI+PGNv ZGU+cmFuZG9tPC9jb2RlPiBhY3RzIHNsaWdodGx5IGRpZmZlcmVudGx5IGZyb20gdGhlIG90 aGVyczogaWYgaXQgYXBwZWFycyBhcyB0aGUgZmlyc3QgaXRlbSBpbiB0aGUgbGlzdCwgcmFu ZG9tIGltYWdlcyB3aWxsIGJlIHB1bGxlZCBmcm9tIHRoZSBkYXRhYmFzZSBhbmQgdGhleSB3 aWxsIHRoZW4gYmUgc29ydGVkIGFjY29yZGluZyB0byB0aGUgb3B0aW9ucyBsaXN0ZWQgYWZ0 ZXIgaXQuIEhvd2V2ZXIsIGlmIGl0IGFwcGVhcnMgYW55d2hlcmUgZWxzZSBpbiB0aGUgbGlz dCwgYW55IHNvcnQgaXRlbXMgYmVmb3JlIGl0IHdpbGwgZGV0ZXJtaW5lIHRoZSBvcmRlciBv ZiBkYXRhIHB1bGxlZCBmcm9tIHRoZSBkYXRhYmFzZSwgYW5kIHRoZSByZXN1bHRzIHdpbGwg PGVtPnRoZW48L2VtPiBiZSBvcmRlcmVkIHJhbmRvbWx5IChpbiB0aGF0IGNhc2UsIGFueSBp dGVtcyBsaXN0ZWQgYWZ0ZXIgPGNvZGU+cmFuZG9tPC9jb2RlPiB3aWxsIGJlIGlnbm9yZWQs IHRob3VnaCA8Y29kZT5maXhlZDwvY29kZT4gaXMgc3RpbGwgaG9ub3VyZWQpLiBTZWUgPGEg aHJlZj0iI2VnMiI+ZXhhbXBsZSAyPC9hPiBmb3IgbW9yZTwvZGl2PjwvbGk+DQoJCTxsaT48 c3BhbiBjbGFzcz0iYXR0LW5hbWUiPnRyaWdnZXI8L3NwYW4+IDogaW4gb3JkZXIgdG8gaW5k aWNhdGUgdG8gdGhlIGphdmFzY3JpcHQgbGlicmFyeSB0aGF0IGltYWdlcyBhcmUgdG8gYmUg JiM4MjIwO2xpZ2h0Ym94ZWQmIzgyMjE7IHRoZSAmIzgyMTY7cmVsJiM4MjE3OyBhdHRyaXV0 ZSBvZiBhbmNob3IgaW1hZ2VzIGlzIG9mdGVuIHVzZWQgKHRoaWNrYm94IGlzIHRoZSBleGNl cHRpb24gYW5kIHVzZXMgaXRzIG93biBjbGFzcykuIFNpbmNlIHRoZSBtZXRob2Qgb2YgaW5k aWNhdGluZyBob3cgdG8gbGlnaHRib3ggYW4gaW1hZ2UgdmFyaWVzLCB0aGlzIGF0dHJpYnV0 ZSBjYW4gYmUgdGFpbG9yZWQgdG8gbWF0Y2ggd2hpY2hldmVyIGphdmFzY3JpcHQgbGlicmFy eSB5b3UgYXJlIHVzaW5nIChzZWUgdGhlaXIgaW5zdHJ1Y3Rpb25zKS4gQnkgZGVmYXVsdCwg aXQgaXMgc2V0IHRvICYjODIyMDtsaWdodGJveC0mIzgyMjE7IHdoaWNoIHNob3VsZCBjb3Zl ciBtb3N0IG1ham9yIGxpZ2h0Ym94IGdhbGxlcnkgZWZmZWN0cy4gSWYgeW91IHdpc2ggdG8g cmVtb3ZlIHRoZSA8Y29kZT5yZWw8L2NvZGU+LCBlbXB0eSBib3RoIDxjb2RlPnRyaWdnZXI8 L2NvZGU+IGFuZCA8Y29kZT5ncm91cG5hbWU8L2NvZGU+IGF0dHJpYnV0ZXM8L2xpPg0KCQk8 bGk+PHNwYW4gY2xhc3M9ImF0dC1uYW1lIj5ncm91cG5hbWU8L3NwYW4+IDogd2hlbiBtYWtp bmcgbXVsdGlwbGUgZ2FsbGVyaWVzIG9yIGZvciBzcGVjaWFsIGJlaGF2aW91cnMsIHRoaXMg YXR0cmlidXRlIGFsbG93cyB5b3UgdG8gbG9naWNhbGx5ICYjODIyMDtncm91cCYjODIyMTsg dGh1bWJuYWlscy48YnIgLz4NCk9uY2UgYSB2aXNpdG9yIGNsaWNrcyBhIHRodW1ibmFpbCBh bmQgY29udHJvbCBpcyBwYXNzZWQgdG8gdGhlIGphdmFzY3JpcHQgY29kZSwgbmF2aWdhdGlv biBpcyB2aWEgdGhlIE5leHQvUHJldiBsaW5rcy4gV2l0aG91dCBzdXBwbHlpbmcgYSA8Y29k ZT5ncm91cG5hbWU8L2NvZGU+LCA8ZW0+YWxsPC9lbT4gbGlnaHRib3hhYmxlIGltYWdlcyBm cm9tIDxlbT5hbGw8L2VtPiBzbWRfc2xpbWJveCB0YWdzIHdpbGwgYmUgaW5jbHVkZWQgaW4g dGhlIG5hdmlnYXRpb24uIFNvIGlmIHlvdSBoYWQgMyBzbGltYm94IHRhZ3Mgb24gdGhlIHBh Z2UsIGVhY2ggd2l0aCAyMCBpbWFnZXMgaW4gdGhlbSwgdGhlIGxpZ2h0Ym94IHdvdWxkIHNo b3cgJiM4MjIwO0ltYWdlIDEgb2YgNjAmIzgyMjE7IGFuZCBhbGxvdyB5b3UgdG8gbmF2aWdh dGUgYW1vbmcgYWxsIG9mIHRoZW0uPGRpdiBjbGFzcz0iYnJlYWsiPk9uIGFydGljbGUgbGlz dCBwYWdlcywgdGhpcyBpcyBvZnRlbiB1bmRlc2lyYWJsZSBzbyB0byBjaGFuZ2UgdGhpcyBi ZWhhdmlvdXIsIGdpdmUgZWFjaCBzbGltYm94IHRhZyBhIHVuaXF1ZSA8Y29kZT5ncm91cG5h bWU8L2NvZGU+OyB0aGF0IHdpbGwgbGltaXQgdGhlIG5hdmlnYXRpb24gb25seSB0byB0aGUg Z3JvdXAgb2YgaW1hZ2VzIGluIHRoYXQgdGFnLiA8Y29kZT5ncm91cG5hbWU8L2NvZGU+IGNh biBiZSBhbnkgdGV4dCB5b3UgbGlrZSAoaXQgZGVmYXVsdHMgdG8gJiM4MjIwO3NtZCYjODIy MTspLCBvciB5b3UgY2FuIHN1cHBseSBhbnkgb2YgdGhlIDxhIGhyZWY9IiNpbWFnZV9maWVs ZHMiPmltYWdlIGZpZWxkIGNvZGVzPC9hPiB0byBzbGljZSBhbmQgZGljZSB0aGUgdGh1bWJu YWlscyBhbnkgd2F5IHlvdSBjaG9vc2UuIFNlZSA8YSBocmVmPSIjZWc0Ij5leGFtcGxlIDQ8 L2E+IGZvciBtb3JlPC9kaXY+PC9saT4NCgkJPGxpPjxzcGFuIGNsYXNzPSJhdHQtbmFtZSI+ c2hvd3BhZ2VsaW5rczwvc3Bhbj4gOiBkaXNwbGF5cyBjbGlja2FibGUgbmV4dC9wcmV2aW91 cyBsaW5rcyB1bmRlciB0aGUgdGh1bWJuYWlscywgYWxsb3dpbmcgeW91IHRvIG5hdmlnYXRl IGZyb20gcGFnZSB0byBwYWdlIGFuZCBvbmx5IHNob3cgPGNvZGU+bGltaXQ8L2NvZGU+IHRo dW1icyBwZXIgcGFnZS4gSXQgaXMgb24gKDxjb2RlPjE8L2NvZGU+KSBieSBkZWZhdWx0IGlm IGxpbWl0IGlzIGdyZWF0ZXIgdGhhbiAwLiBVc2UgPGNvZGU+c2hvd3BhZ2VsaW5rcz0mcXVv dDswJnF1b3Q7PC9jb2RlPiB0byB0dXJuIGl0IG9mZjwvbGk+DQoJCTxsaT48c3BhbiBjbGFz cz0iYXR0LW5hbWUiPmdhbGxlcnlpZDwvc3Bhbj4gOiBpZiB1c2luZyA8Y29kZT5zaG93cGFn ZWxpbmtzPC9jb2RlPiwgdGhpcyBpcyB0aGUgc3RyaW5nIHRoYXQgaXMgdXNlZCB0byBkaWZm ZXJlbnRpYXRlIGJldHdlZW4gbXVsdGlwbGUgc2xpbWJveCBnYWxsZXJpZXMgb24gYSBzaW5n bGUgcGFnZS4gSXQgYWxsb3dzIHBhZ2luZyB0byBiZSBjb250cm9sbGVkIG9uIGEgcGVyLWdh bGxlcnkgYmFzaXMsIHNvIGNsaWNraW5nIE5leHQvUHJldiBpbiBvbmUgZ2FsbGVyeSB3b24m IzgyMTc7dCBhZmZlY3QgdGhlIHRodW1ibmFpbHMgaW4gb3RoZXIgZ2FsbGVyaWVzIG9uIHRo ZSBzYW1lIHBhZ2UuIEVhY2ggZ2FsbGVyeSBvbiBhIHBhZ2UgPGVtPm11c3Q8L2VtPiBoYXZl IGEgdW5pcXVlIDxjb2RlPmdhbGxlcnlpZDwvY29kZT4gaW4gb3JkZXIgZm9yIHBhZ2luZyB0 byB3b3JrLiBUaGUgZ29vZCBuZXdzIGlzIHlvdSYjODIxNztsbCBwcm9iYWJseSBuZXZlciBo YXZlIHRvIHVzZSB0aGlzIGF0dHJpYnV0ZSBiZWNhdXNlIGl0IHdvcmtzIGF1dG9tYXRpY2Fs bHkgZm9yIHlvdS4gSW4gdGhlICh2ZXJ5KSB1bmxpa2VseSBldmVudCBpdCBnZW5lcmF0ZXMg dHdvIGlkZW50aWNhbCBzdHJpbmdzLCB5b3UgY2FuIHVzZSB0aGlzIG9wdGlvbiB0byBvdmVy cmlkZSB0aGUgZGVmYXVsdCBiZWhhdmlvdXIuPGRpdiBjbGFzcz0iYnJlYWsiPkl0IHRha2Vz IGVpdGhlciBhIGZpeGVkIHN0cmluZyAoZS5nLiA8Y29kZT5nYWxsZXJ5aWQ9JnF1b3Q7bXlH YWxsZXJ5MSZxdW90OzwvY29kZT4pOyBvciBhICYjODIxNjs/JiM4MjE3OyBmb2xsb3dlZCBi eSB1cCB0byB0d28gbnVtYmVycyBzZXBhcmF0ZWQgYnkgYSBjb2xvbiAodGhlIGNvbG9uIGNh biBiZSBjaGFnbmVkIHdpdGggPGNvZGU+cGFyYW1kZWxpbTwvY29kZT4pLiBJbnRlcm5hbGx5 LCB0aGUgcGx1Z2luIGdlbmVyYXRlcyBhIHVuaXF1ZSAoMzItY2hhcmFjdGVyKSBzdHJpbmcg YmFzZWQgb24gdGhlIG90aGVyIGF0dHJpYnV0ZXMgZ2l2ZW4uIFlvdSB1c2UgdGhlIHR3byBu dW1iZXJzIHRvIGNvbnRyb2wgd2hpY2ggY2hhcmFjdGVycyBmcm9tIHRoaXMgc3RyaW5nIHRv IHVzZSBpbiB5b3VyIHVuaXF1ZSBjb2RlLiBUaGUgZmlyc3QgbnVtYmVyIGlzIHRoZSBsZW5n dGggb2YgdGhlIHN0cmluZyB0byBnZW5lcmF0ZSBhbmQgdGhlIDJuZCBudW1iZXIgaXMgaG93 IG1hbnkgY2hhcmFjdGVycyB0byBza2lwIGVhY2ggdGltZSBpdCBwaWNrcyBvbmUgZnJvbSB0 aGUgc3RyaW5nICh3cmFwcGluZyBiYWNrIHRvIHRoZSBzdGFydCBvZiB0aGUgc3RyaW5nIGlm IGl0IGZhbGxzIG9mZiB0aGUgZW5kKS48L2Rpdj48ZGl2IGNsYXNzPSJicmVhayI+QW4gZXhh bXBsZTogc3VwcG9zZSB0aGUgdGFnIGdlbmVyYXRlZCB0aGlzIHN0cmluZyBpbnRlcm5hbGx5 OiA8Y29kZT4yY2I1YmJmOGIwYzJjMDI4ZDhmMjM0YjRiZDQ2ZmRkZTwvY29kZT4uIFRoZXNl IGFyZSB0aGUgcmVzdWx0cyBvZiB2YXJpb3VzIHZhbHVlczo8L2Rpdj48L2xpPg0KCTwvdWw+ DQoNCgk8dGFibGU+DQoJCTx0cj4NCgkJCTx0aD5nYWxsZXJ5aWQ9PC90aD4NCgkJCTx0aD5y ZXN1bHQ8L3RoPg0KCQkJPHRoPnJlbWFya3M8L3RoPg0KCQk8L3RyPg0KCQk8dHI+DQoJCQk8 dGQ+ICYjODIyMDsmIzgyMjE7IG9yICYjODIyMDs/NDo2JiM4MjIxOyA8L3RkPg0KCQkJPHRk PiAyZmNmIDwvdGQ+DQoJCQk8dGQ+IHRoZSBkZWZhdWx0IDwvdGQ+DQoJCTwvdHI+DQoJCTx0 cj4NCgkJCTx0ZD4gJiM4MjIwOz84JiM4MjIxOyA8L3RkPg0KCQkJPHRkPiAyY2I1YmJmOCA8 L3RkPg0KCQkJPHRkPiB0aGUgZmlyc3QgOCBjaGFyYWN0ZXJzIDwvdGQ+DQoJCTwvdHI+DQoJ CTx0cj4NCgkJCTx0ZD4gJiM4MjIwOz83OjMmIzgyMjE7IDwvdGQ+DQoJCQk8dGQ+IDI1ZjBj OGYgPC90ZD4NCgkJCTx0ZD4gbGVuZ3RoIDcsIGNob29zaW5nIGV2ZXJ5IDNyZCBjaGFyYWN0 ZXIgPC90ZD4NCgkJPC90cj4NCgkJPHRyPg0KCQkJPHRkPiAmIzgyMjA7Pzg6NyYjODIyMTsg PC90ZD4NCgkJCTx0ZD4gMjgyNGY1YzggPC90ZD4NCgkJCTx0ZD4gbGVuZ3RoIDgsIGNob29z aW5nIGV2ZXJ5IDd0aCBjaGFyYWN0ZXIgKHdyYXBzKSA8L3RkPg0KCQk8L3RyPg0KCTwvdGFi bGU+DQoNCgk8dWw+DQoJCTxsaT48c3BhbiBjbGFzcz0iYXR0LW5hbWUiPndyYXB0YWc8L3Nw YW4+IDogKFgpSFRNTCB0YWcgdG8gd3JhcCBlYWNoICYjODIxNjtjZWxsJiM4MjE3OyAoZWZm ZWN0aXZlbHkgYSB0aHVtYm5haWwgaW1hZ2UpIHdpdGguIERvIG5vdCBzcGVjaWZ5IHRoZSAm bHQ7IG9yICZndDsgY2hhcmFjdGVycy4gRm9yIGEgdmFsaWQgcGFnZSwgdGhlIG9ubHkgdXNl ZnVsIG9wdGlvbnMgYXJlICYjODIyMDtkaXYmIzgyMjE7LCAmIzgyMjA7bGkmIzgyMjE7IG9y ICYjODIyMDtwJiM4MjIxOy4gRGVmYXVsdDogZW1wdHkgKGkuZS4gbm8gdGFnKTwvbGk+DQoJ CTxsaT48c3BhbiBjbGFzcz0iYXR0LW5hbWUiPnRodW1ic2l6ZTwvc3Bhbj4gOiBlaXRoZXIg Zm9yIHNwZWNpYWwgZWZmZWN0cywgb3IgaW4gb3JkZXIgdG8gdmFsaWRhdGUgYWdhaW5zdCA8 c3BhbiBjbGFzcz0iY2FwcyI+WEhUTUw8L3NwYW4+LCB0aGUgaW1hZ2UgdGh1bWJuYWlscyBz aG91bGQgaGF2ZSA8Y29kZT53aWR0aDwvY29kZT4gYW5kIDxjb2RlPmhlaWdodDwvY29kZT4g YXR0cmlidXRlcy4gPHNwYW4gY2xhc3M9ImNhcHMiPlRYUDwvc3Bhbj4gY2Fubm90IHN1cHBs eSB0aGlzIGF1dG9tYXRpY2FsbHksIGJ1dCB0aGlzIGF0dHJpYnV0ZSB3aWxsLjxkaXYgY2xh c3M9ImJyZWFrIj5TaW1wbHkgc3BlY2lmeSB1cCB0byB0d28gdmFsdWVzIHNlcGFyYXRlZCBi eSBhIGNvbW1hICh5b3UgY2FuIG92ZXJyaWRlIHRoaXMgd2l0aCA8Y29kZT5kZWxpbTwvY29k ZT4pIHRvIGRlZmluZSB0aGUgd2lkdGggYW5kIGhlaWdodCBvZiB5b3VyIHRodW1ibmFpbHMg KGluIHBpeGVscyBieSBkZWZhdWx0KS4gRm9yIGV4YW1wbGU6IDxjb2RlPnRodW1ic2l6ZT0m cXVvdDs0MCwgNjAmcXVvdDs8L2NvZGU+IHdpbGwgc2V0IDQwLXBpeGVsIHggNjAtcGl4ZWwg dGh1bWJuYWlscy4gU3VwcGx5aW5nIG9ubHkgb25lIHZhbHVlIHdpbGwgc2V0IGJvdGggd2lk dGggYW5kIGhlaWdodCB0byB0aGUgc2FtZSB2YWx1ZS4gQWRkaW5nIHVuaXRzIGFmdGVyIGVh Y2ggdmFsdWUgKCYjODIyMDtweCYjODIyMTssICYjODIyMDtlbSYjODIyMTssICYjODIyMDsl JiM4MjIxOyBldGMpIHdpbGwgdXNlIHRob3NlIHVuaXRzIGluc3RlYWQgb2YgdGhlIGRlZmF1 bHQgcGl4ZWxzLjwvZGl2PjxkaXYgY2xhc3M9ImJyZWFrIj5UbyBzcGVjaWZ5IGp1c3QgdGhl IHdpZHRoLCBwdXQgdGhlIGNvbW1hIGluIGJ1dCBsZWF2ZSB0aGUgc2Vjb25kIHBhcmFtZXRl ciBlbXB0eSAoZS5nLiA8Y29kZT50aHVtYnNpemU9JnF1b3Q7MmVtLCZxdW90OzwvY29kZT4p LiBTaW1pbGFybHkgdG8gc3BlY2lmeSB0aGUgaGVpZ2h0IG9ubHksIGxlYXZlIHRoZSBmaXJz dCB2YWx1ZSBlbXB0eSBieSBzdGFydGluZyB3aXRoIGEgY29tbWEgKGUuZy4gPGNvZGU+dGh1 bWJzaXplPSZxdW90OywxMCUmcXVvdDs8L2NvZGU+KTwvZGl2PjwvbGk+DQoJCTxsaT48c3Bh biBjbGFzcz0iYXR0LW5hbWUiPnRodW1idGV4dDwvc3Bhbj4gOiB5b3UgY2FuIHBsYWNlIHRl eHQgYXJvdW5kIGVhY2ggdGh1bWJuYWlsLiBMaWtlIDxjb2RlPmltYWdlY2FwdGlvbjwvY29k ZT4sIGdpdmUgYW55IGZpeGVkIHRleHQgYW5kL29yIDxhIGhyZWY9IiNpbWFnZV9maWVsZHMi PmltYWdlIGZpZWxkIGNvZGVzPC9hPiB0byBhZGQgaXQgYmVsb3cgZXZlcnkgdGh1bWJuYWls IChpbnNpZGUgdGFnIDxjb2RlPnRodW1idGV4dHdyYXA8L2NvZGU+IHdpdGggYSBjbGFzcyBv ZiA8Y29kZT50aHVtYnRleHRjbGFzczwvY29kZT4pLiBCeSBkZWZhdWx0LCB0ZXh0IGlzIHBs YWNlZCA8Y29kZT5iZWxvdzwvY29kZT4gdGhlIGltYWdlIGJ1dCBjYW4gYmUgcGxhY2VkIGlu IGFueSBvZiA1IHBvc2l0aW9ucywgYXMgZ2l2ZW4gaW4gdGhlIHRhYmxlIGJlbG93LiA8Y29k ZT5vbmNoYW5nZTwvY29kZT4gaXMgdmVyeSB1c2VmdWwgZm9yIGFwcGx5aW5nIGhlYWRlcnMg d2hlbiB0aGUgY2F0ZWdvcnkgY2hhbmdlcy4gU2VlIDxhIGhyZWY9IiNlZzYiPmV4YW1wbGUg NjwvYT4uPC9saT4NCgk8L3VsPg0KDQoJPHRhYmxlPg0KCQk8dHI+DQoJCQk8dGg+cG9zaXRp b248L3RoPg0KCQkJPHRoPnJlbWFya3M8L3RoPg0KCQk8L3RyPg0KCQk8dHI+DQoJCQk8dGQ+ IGFib3ZlIDwvdGQ+DQoJCQk8dGQ+IGFib3ZlIHRoZSB0aHVtYm5haWwsIG5vdCBjbGlja2Fi bGUgPC90ZD4NCgkJPC90cj4NCgkJPHRyPg0KCQkJPHRkPiBiZWxvdyA8L3RkPg0KCQkJPHRk PiBiZWxvdyB0aGUgdGh1bWJuYWlsLCBub3QgY2xpY2thYmxlIChkZWZhdWx0KSA8L3RkPg0K CQk8L3RyPg0KCQk8dHI+DQoJCQk8dGQ+IGJlZm9yZSA8L3RkPg0KCQkJPHRkPiBpbW1lZGlh dGVseSBpbiBmcm9udCBvZiB0aGUgdGh1bWJuYWlsLCBjbGlja2FibGUgYXMgcGFydCBvZiB0 aGUgbGluayA8L3RkPg0KCQk8L3RyPg0KCQk8dHI+DQoJCQk8dGQ+IGFmdGVyIDwvdGQ+DQoJ CQk8dGQ+IGltbWVkaWF0ZWx5IGZvbGxvd2luZyB0aGUgdGh1bWJuYWlsLCBjbGlja2FibGUg YXMgcGFydCBvZiB0aGUgbGluayA8L3RkPg0KCQk8L3RyPg0KCQk8dHI+DQoJCQk8dGQ+IG9u Y2hhbmdlIDwvdGQ+DQoJCQk8dGQ+IGFib3ZlIGV2ZXJ5IHRodW1ibmFpbCBidXQgPGVtPm9u bHk8L2VtPiBpZiBpdHMgY29udGVudHMgY2hhbmdlcyBmcm9tIHRoZSBpbWFnZSBiZWZvcmUg aXQgPC90ZD4NCgkJPC90cj4NCgk8L3RhYmxlPg0KDQoJPHVsPg0KCQk8bGk+PHNwYW4gY2xh c3M9ImF0dC1uYW1lIj50aHVtYnRleHR3cmFwPC9zcGFuPiA6IChYKUhUTUwgdGFnIHRvIHdy YXAgYXJvdW5kIGVhY2ggdGh1bWJ0ZXh0IGl0ZW0uIERvIG5vdCBzcGVjaWZ5IHRoZSAmbHQ7 IG9yICZndDsgY2hhcmFjdGVycy4gRGVmYXVsdDogc3BhbjwvbGk+DQoJCTxsaT48c3BhbiBj bGFzcz0iYXR0LW5hbWUiPnRodW1idGV4dGNsYXNzPC9zcGFuPiA6IDxzcGFuIGNsYXNzPSJj YXBzIj5DU1M8L3NwYW4+IGNsYXNzIHRvIGFwcGx5IHRvIGV2ZXJ5IHRodW1idGV4dCBpdGVt LiBEZWZhdWx0OiBlbXB0eSAoaS5lLiBubyBjbGFzcyk8L2xpPg0KCQk8bGk+PHNwYW4gY2xh c3M9ImF0dC1uYW1lIj5kZWxpbTwvc3Bhbj4gOiBUaGUgZGVsaW1pdGVyIHRvIHVzZSBiZXR3 ZWVuIGl0ZW1zIGluIGxpc3RzICg8Y29kZT5jYXRlZ29yeTwvY29kZT4sIDxjb2RlPmltYWdl aWQ8L2NvZGU+LCA8Y29kZT50aHVtYnRleHQ8L2NvZGU+IGV0YykuIElmIHVzaW5nIGdsel9j dXN0b21fZmllbGRzICYjODIxMjsgZXNwZWNpYWxseSB3aXRoIGNoZWNrYm94ZXMgb3IgYSBt dWx0aSBzZWxlY3QgJiM4MjEyOyB5b3Ugc2hvdWxkIGNoYW5nZSA8Y29kZT5kZWxpbTwvY29k ZT4gdG8gYSBwaXBlICYjODIxNjt8JiM4MjE3OyBjaGFyYWN0ZXI8L2xpPg0KCQk8bGk+PHNw YW4gY2xhc3M9ImF0dC1uYW1lIj5wYXJhbWRlbGltPC9zcGFuPiA6IGJ5IGRlZmF1bHQgaW4g dGhlIDxjb2RlPnRodW1idGV4dDwvY29kZT4gYXR0cmlidXRlLCB5b3Ugc2VwYXJhdGUgcGFy YW1ldGVycyBmcm9tIG9wdGlvbiBuYW1lcyB1c2luZyB0aGUgY29sb24uIEluIHNvbWUgY2Fz ZSB5b3UgbWF5IHdpc2ggdG8gdXNlIHRoZSBjb2xvbiBpbiB5b3VyIHN0cmluZyBvZiB0ZXh0 IHNvIHlvdSB3aWxsIG5lZWQgdG8gc2V0IHRoZSBkZWxpbWl0ZXIgdG8gc29tZXRoaW5nIGVs c2UuIEl0IGNhbiBiZSBwcmV0dHkgbXVjaCBhbnkgc3RyaW5nIHlvdSBsaWtlIChlLmcuIDxj b2RlPnBhcmFtZGVsaW09JnF1b3Q7W1tTUVVJRCZxdW90OzwvY29kZT4pLCBqdXN0IG1ha2Ug c3VyZSBpdCBkb2VzbiYjODIxNzt0IGFwcGVhciBhbnl3aGVyZSBlbHNlIGluIHlvdXIgdGV4 dDwvbGk+DQoJCTxsaT48c3BhbiBjbGFzcz0iYXR0LW5hbWUiPmNlbGxjbGFzczwvc3Bhbj4g OiA8c3BhbiBjbGFzcz0iY2FwcyI+Q1NTPC9zcGFuPiBjbGFzcyBmb3IgZWFjaCAmIzgyMTY7 Y2VsbCYjODIxNzsgdGhhdCBkaXNwbGF5cyBhIHRodW1ibmFpbC4gRGVmYXVsdDogZW1wdHkg KGkuZS4gbm8gY2xhc3MpPC9saT4NCgkJPGxpPjxzcGFuIGNsYXNzPSJhdHQtbmFtZSI+bGlu a2NsYXNzPC9zcGFuPiA6IDxzcGFuIGNsYXNzPSJjYXBzIj5DU1M8L3NwYW4+IGNsYXNzIGZv ciB0aGUgYW5jaG9yIHRhZyBvZiBlYWNoIGltYWdlLiBEZWZhdWx0OiBlbXB0eSAoaS5lLiBu byBjbGFzcyk8L2xpPg0KCQk8bGk+PHNwYW4gY2xhc3M9ImF0dC1uYW1lIj5pbWdjbGFzczwv c3Bhbj4gOiA8c3BhbiBjbGFzcz0iY2FwcyI+Q1NTPC9zcGFuPiBjbGFzcyBmb3IgZWFjaCBp bWcgdGFnLiBEZWZhdWx0OiBlbXB0eSAoaS5lLiBubyBjbGFzcyk8L2xpPg0KCQk8bGk+PHNw YW4gY2xhc3M9ImF0dC1uYW1lIj5uYXZ3cmFwdGFnPC9zcGFuPiA6IHdoZW4gPGNvZGU+c2hv d3BhZ2VsaW5rczwvY29kZT4gaXMgb24sIHNvbWUgbmV4dC9wcmV2IGxpbmtzIGFyZSBwbGFj ZWQgdW5kZXIgZWFjaCBnYWxsZXJ5IHRvIHBhZ2UgdGhyb3VnaCA8Y29kZT5saW1pdDwvY29k ZT4gdGh1bWJuYWlscyBhdCBhIHRpbWUuIFRoaXMgYXR0cmlidXRlIHNwZWNpZmllcyB0aGUg KFgpSFRNTCB0YWcgdG8gd3JhcCBhcm91bmQgdGhlIHdob2xlIG5hdmlnYXRpb24gYmxvY2su IERvIG5vdCBzcGVjaWZ5IHRoZSAmbHQ7IG9yICZndDsgY2hhcmFjdGVycy4gRGVmYXVsdDog ZW1wdHkgKGkuZS4gbm8gdGFnKTwvbGk+DQoJCTxsaT48c3BhbiBjbGFzcz0iYXR0LW5hbWUi Pm5hdmNsYXNzPC9zcGFuPiA6IDxzcGFuIGNsYXNzPSJjYXBzIj5DU1M8L3NwYW4+IGNsYXNz IGZvciB0aGUgbmV4dC9wcmV2IGNvbnRhaW5lci4gRGVmYXVsdDogZW1wdHkgKGkuZS4gbm8g Y2xhc3MpPC9saT4NCgkJPGxpPjxzcGFuIGNsYXNzPSJhdHQtbmFtZSI+cHJldmxhYmVsPC9z cGFuPiA6IExhYmVsIGZvciB0aGUgJiM4MjE2O3ByZXZpb3VzIHBhZ2UmIzgyMTc7IG9mIHBp Y3R1cmVzIHdoZW4gdXNpbmcgPGNvZGU+c2hvd3BhZ2VsaW5rczwvY29kZT4uIERlZmF1bHQ6 ICYjODIyMDtQcmV2JiM4MjIxOy4gQ3VzdG9taXNhYmxlIGluIGRpZmZlcmVudCBsYW5ndWFn ZXMgdmlhIDxzcGFuIGNsYXNzPSJjYXBzIj5NTFA8L3NwYW4+PC9saT4NCgkJPGxpPjxzcGFu IGNsYXNzPSJhdHQtbmFtZSI+bmV4dGxhYmVsPC9zcGFuPiA6IExhYmVsIGZvciB0aGUgJiM4 MjE2O25leHQgcGFnZSYjODIxNzsgb2YgcGljdHVyZXMgd2hlbiB1c2luZyA8Y29kZT5zaG93 cGFnZWxpbmtzPC9jb2RlPi4gRGVmYXVsdDogJiM4MjIwO05leHQmIzgyMjE7LiBDdXN0b21p c2FibGUgaW4gZGlmZmVyZW50IGxhbmd1YWdlcyB2aWEgPHNwYW4gY2xhc3M9ImNhcHMiPk1M UDwvc3Bhbj48L2xpPg0KCQk8bGk+PHNwYW4gY2xhc3M9ImF0dC1uYW1lIj5wcmV2Y2xhc3M8 L3NwYW4+IDogPHNwYW4gY2xhc3M9ImNhcHMiPkNTUzwvc3Bhbj4gY2xhc3MgZm9yIHRoZSAm IzgyMTY7cHJldiYjODIxNzsgbGluay4gRGVmYXVsdDogc21kX3NsaW1ib3hfcHJldjwvbGk+ DQoJCTxsaT48c3BhbiBjbGFzcz0iYXR0LW5hbWUiPm5leHRjbGFzczwvc3Bhbj4gOiA8c3Bh biBjbGFzcz0iY2FwcyI+Q1NTPC9zcGFuPiBjbGFzcyBmb3IgdGhlICYjODIxNjtuZXh0JiM4 MjE3OyBsaW5rLiBEZWZhdWx0OiBzbWRfc2xpbWJveF9uZXh0PC9saT4NCgk8L3VsPg0KDQoJ PGgzIGlkPSJmaWVsZHMiPkFydGljbGUgZmllbGQgY29kZXM8L2gzPg0KDQoJPHA+VXNlIHRo ZXNlIGNvZGVzIHRvIGdyYWIgaXRlbXMgZnJvbSB0aGUgY3VycmVudGx5IGRpc3BsYXllZCBh cnRpY2xlIGFuZCBpbmplY3QgdGhlbSBpbnRvIHNtZF9zbGltYm94IHRhZyBhdHRyaWJ1dGVz LiBBbGwgb2YgdGhlIHRhZ3MgY2FuIGJlIGNvbWJpbmVkIHdpdGggZml4ZWQgdGV4dCAoZS5n LiA8Y29kZT5jYXRlZ29yeT0mcXVvdDtteWNhdC0/YXJ0aWNsZV9pbWFnZV8/cyZxdW90Ozwv Y29kZT4gbWlnaHQgY2hvb3NlIGltYWdlcyBmcm9tIHRoZSBjYXRlZ29yeSAmIzgyMjA7bXlj YXQtMTJfbGlvbiYjODIyMTsgaWYgdGhlIGN1cnJlbnQgYXJ0aWNsZSB3YXMgaW4gc2VjdGlv biAmIzgyMTY7bGlvbiYjODIxNzsgYW5kIGhhZCBhbiBhcnRpY2xlIGltYWdlIG9mICYjODIx NjsxMiYjODIxNzspLiBOb3RlIHRoYXQgYW55IGFydGljbGUgb3IgY3VzdG9tIGZpZWxkcyAm IzgyMTI7IGluY2x1ZGluZyB0aG9zZSB1dGlsaXNpbmcgZ2x6X2N1c3RvbV9maWVsZHMgJiM4 MjEyOyBtYXkgY29udGFpbiBsaXN0cyBvZiBpdGVtcy48L3A+DQoNCgk8dWw+DQoJCTxsaT48 Y29kZT4/YzwvY29kZT4gOiB1c2UgdGhlIGN1cnJlbnQgZ2xvYmFsIChhcnRpY2xlKSBjYXRl Z29yeTwvbGk+DQoJCTxsaT48Y29kZT4hYzwvY29kZT4gOiB1c2VzIGV2ZXJ5dGhpbmcgZXhj ZXB0IHRoZSBjdXJyZW50IGdsb2JhbCBjYXRlZ29yeTwvbGk+DQoJCTxsaT48Y29kZT4/czwv Y29kZT4gOiB1c2UgdGhlIGN1cnJlbnQgPHNwYW4gY2xhc3M9ImNhcHMiPlRYUDwvc3Bhbj4g c2VjdGlvbjwvbGk+DQoJCTxsaT48Y29kZT4hczwvY29kZT4gOiB1c2VzIGV2ZXJ5dGhpbmcg ZXhjZXB0IHRoZSBjdXJyZW50IHNlY3Rpb248L2xpPg0KCQk8bGk+PGNvZGU+P3Q8L2NvZGU+ IDogdXNlIHRoZSBjdXJyZW50IGFydGljbGUmIzgyMTc7cyB1cmwtdGl0bGU8L2xpPg0KCQk8 bGk+PGNvZGU+IXQ8L2NvZGU+IDogdXNlcyBhbGwgdXJsLXRpdGxlcyBleGNlcHQgdGhlIGN1 cnJlbnQgYXJ0aWNsZSAocHJvYmFibHkgbm90IG11Y2ggdXNlISk8L2xpPg0KCQk8bGk+PGNv ZGU+P2lkPC9jb2RlPiA6IHVzZSB0aGUgY3VycmVudCBhcnRpY2xlJiM4MjE3O3MgSUQgYXMg dGhlIG5hbWUgb2YgYW4gaW1hZ2UgY2F0ZWdvcnkuIFVzZWZ1bCB0byBtYWtlIGEgcGVyLWFy dGljbGUgaW1hZ2UgZ2FsbGVyeSAoZS5nLiA8Y29kZT5jYXRlZ29yeT0mcXVvdDthcnRpY2xl LT9pZCZxdW90OzwvY29kZT4pPC9saT4NCgkJPGxpPjxjb2RlPiFpZDwvY29kZT4gOiB1c2Vz IGFsbCBpbWFnZSBJRHMgZXhjZXB0IHRoZSBjdXJyZW50IGFydGljbGU8L2xpPg0KCQk8bGk+ PGNvZGU+P2ZpZWxkbmFtZTwvY29kZT4gOiBsb29rcyBpbiB0aGUgZ2l2ZW4gZmllbGRuYW1l IG9mIHRoZSBjdXJyZW50IGFydGljbGUuIERlc2lnbmVkIHByaW1hcmlseSBmb3IgdXNlIHdp dGggY3VzdG9tIGZpZWxkcyAoZS5nLiA8Y29kZT5pbWFnZWlkPSZxdW90Oz9jdXN0b20xJnF1 b3Q7PC9jb2RlPiksIGl0IGNhbiBhbHNvIGJlIGFueSBvdGhlciBmaWVsZCBmcm9tIHlvdXIg YXJ0aWNsZS4gQ29tbW9uIGZpZWxkcyBhcmUgPGNvZGU+P2V4Y2VycHQ8L2NvZGU+LCA8Y29k ZT4/Y2F0ZWdvcnkxPC9jb2RlPiwgPGNvZGU+P2tleXdvcmRzPC9jb2RlPiwgPGNvZGU+P2Fy dGljbGVfaW1hZ2U8L2NvZGU+IG9yIDxjb2RlPj9hdXRob3JpZDwvY29kZT4uPC9saT4NCgk8 L3VsPg0KDQoJPHA+VG8gbmVnYXRlIGFueSBjYXRlZ29yeSBzZWxlY3Rpb24sIHVzZSA8Y29k ZT4hY2F0ZWdvcnk8L2NvZGU+IG9yIDxjb2RlPiFmaWVsZF9uYW1lPC9jb2RlPi4gSWYgeW91 IGxpc3Qgc3BlY2lmaWMgaW1hZ2UgY2F0ZWdvcmllcyAoZS5nLiA8Y29kZT5jYXRlZ29yeT0m cXVvdDshbGFuZHNjYXBlLCAhYmlyZHMmcXVvdDs8L2NvZGU+KSB0aG9zZSBjYXRlZ29yaWVz IHdpbGwgYmUgZXhjbHVkZWQuIElmIHlvdSBzcGVjaWZ5IGEgZmllbGQgbmFtZSBzdWNoIGFz IDxjb2RlPiFrZXl3b3JkczwvY29kZT4sIHRoZSBjb250ZW50cyBvZiB0aGF0IGZpZWxkIHdp bGwgYmUgcmVhZCBhbmQgdGhlIGxpc3Qgb2YgaW1hZ2UgY2F0ZWdvcmllcyBmb3VuZCB0aGVy ZSB3aWxsIGJlIGV4Y2x1ZGVkLjwvcD4NCg0KCTxwPk5vdGUgdGhhdCBpZiB5b3Ugc3BlY2lm eSBhIGZpZWxkIG5hbWUgYW5kIHRoYXQgZmllbGQgaW4gdGhlIGFydGljbGUgaXMgZW1wdHks IHRoZSBuYW1lIHdpbGwgYmUgdHJlYXRlZCBhcyBpZiBpdCB3YXMgYW4gYWN0dWFsIGltYWdl IGNhdGVnb3J5LiBTbyBpZiB5b3Ugc3BlY2lmaWVkIDxjb2RlPmNhdGVnb3J5PSZxdW90Oz9r ZXl3b3JkcyZxdW90OzwvY29kZT4gYW5kIHRoZSAmIzgyMTY7a2V5d29yZHMmIzgyMTc7IGZp ZWxkIGluIHRoZSBjdXJyZW50IGFydGljbGUgd2FzIGVtcHR5LCBpdCB3b3VsZCBsb29rIGZv ciBhbiBpbWFnZSBjYXRlZ29yeSBuYW1lZCAmIzgyMjA7a2V5d29yZHMmIzgyMjE7LjwvcD4N Cg0KCTxwPkFsc28gbm90ZSB0aGF0LCByZWdhcmRsZXNzIG9mIHRoZSBvcmRlciB5b3UgbGlz dCB0aGVtLCBhbGwgJiM4MjE2O3Bvc2l0aXZlcyYjODIxNzsgd2lsbCBiZSBwcm9jZXNzZWQg Zmlyc3QsIHRoZW4gYW55IGV4Y2x1c2lvbnMgYXBwbGllZC48L3A+DQoNCgk8aDMgaWQ9Imlt YWdlX2ZpZWxkcyI+SW1hZ2UgZmllbGQgY29kZXM8L2gzPg0KDQoJPHA+TGlrZSA8YSBocmVm PSIjZmllbGRzIj5hcnRpY2xlIGZpZWxkIGNvZGVzPC9hPiwgdGhlc2UgY2FuIGJlIHNwZWNp ZmllZCB0byBncmFiIHBpZWNlcyBvZiBpbmZvcm1hdGlvbiBmcm9tIHRoZSBjdXJyZW50IGlt YWdlLiBOb3RlIHRoYXQgdGhlICYjODIxNjtuZWdhdGlvbiYjODIxNzsgdmVyc2lvbnMgZG9u JiM4MjE3O3QgbWFrZSBzZW5zZSBoZXJlIHNvIHRoZSBjb2RlcyBhcmUgJiM4MjE2O2luY2x1 ZGUgb25seSYjODIxNzs6PC9wPg0KDQoJPHVsPg0KCQk8bGk+PGNvZGU+P2NhdGVnb3J5PC9j b2RlPiA6IGltYWdlIGNhdGVnb3J5PC9saT4NCgkJPGxpPjxjb2RlPj9jYXB0aW9uPC9jb2Rl PiA6IGltYWdlIGNhcHRpb248L2xpPg0KCQk8bGk+PGNvZGU+P2FsdDwvY29kZT4gOiBpbWFn ZSBhbHQgdGV4dDwvbGk+DQoJCTxsaT48Y29kZT4/bmFtZTwvY29kZT4gOiBpbWFnZSAodXN1 YWxseSBmaWxlKSBuYW1lPC9saT4NCgkJPGxpPjxjb2RlPj9pZDwvY29kZT4gOiBpbWFnZSBJ RDwvbGk+DQoJCTxsaT48Y29kZT4/ZGF0ZTwvY29kZT4gOiBpbWFnZSB1cGxvYWQgZGF0ZXN0 YW1wPC9saT4NCgkJPGxpPjxjb2RlPj9hdXRob3I8L2NvZGU+IDogaW1hZ2UgYXV0aG9yICh3 aG8gdXBsb2FkZWQgaXQgdG8gPHNwYW4gY2xhc3M9ImNhcHMiPlRYUDwvc3Bhbj4pPC9saT4N CgkJPGxpPjxjb2RlPj9leHQ8L2NvZGU+IDogaW1hZ2UgZmlsZSBleHRlbnNpb248L2xpPg0K CQk8bGk+PGNvZGU+P3dpZHRoPC9jb2RlPiA6IGltYWdlIHdpZHRoIGluIHBpeGVsczwvbGk+ DQoJCTxsaT48Y29kZT4/aGVpZ2h0PC9jb2RlPiA6IGltYWdlIGhlaWdodCBpbiBwaXhlbHM8 L2xpPg0KCQk8bGk+PGNvZGU+P3VybDwvY29kZT4gOiB0aGUgPHNwYW4gY2xhc3M9ImNhcHMi PlVSTDwvc3Bhbj4gb2YgdGhlIGZ1bGwtc2l6ZSBpbWFnZSAmIzgyMTI7IGNhbiBvbmx5IGJl IHVzZWQgd2l0aCA8Y29kZT5pbWFnZWNhcHRpb248L2NvZGU+IG9yIDxjb2RlPnRodW1idGV4 dDwvY29kZT48L2xpPg0KCTwvdWw+DQoNCgk8cD5Gb3IgZXhhbXBsZSwgdG8gc2hvdyB0aGUg YWx0IHRleHQgdW5kZXIgdGhlIG1haW4gaW1hZ2UgaW5zdGVhZCBvZiB0aGUgY2FwdGlvbiAo d2hpY2ggaXQgb3RoZXJ3aXNlIHVzZXMgYnkgZGVmYXVsdCkgOjwvcD4NCg0KPHByZSBjbGFz cz0iYmxvY2siPjxjb2RlIGNsYXNzPSJibG9jayI+aW1hZ2VjYXB0aW9uPSZxdW90Oz9hbHQm cXVvdDsNCjwvY29kZT48L3ByZT4NCg0KCTxwPkZvciB0aGUgYWR2ZW50dXJvdXM6PC9wPg0K DQo8cHJlIGNsYXNzPSJibG9jayI+PGNvZGUgY2xhc3M9ImJsb2NrIj5pbWFnZWNhcHRpb249 JnF1b3Q7P2NhcHRpb24gYnkgP2F1dGhvcg0KICAgICBbP2V4dCBwaWN0dXJlOiA/d2lkdGh4 P2hlaWdodHB4XSZxdW90Ow0KPC9jb2RlPjwvcHJlPg0KDQoJPHA+VGhhdCBtaWdodCBzaG93 IGEgY2FwdGlvbiBzdWNoIGFzICYjODIyMDtMYWtlIFdpbmRlcm1lcmUgYXQgbmlnaHQgYnkg U3RlZiBbanBnIHBpY3R1cmU6IDgwMCYjMjE1OzYwMHB4XSYjODIyMTsuPC9wPg0KDQoJPHA+ VG8gcHV0IChhYm92ZSBlYWNoIHRodW1ibmFpbCkgdGhlIHRleHQgJiM4MjIwO0ZpbGVkIGlu JiM4MjIxOyBhbmQgdGhlbiB0aGUgY2F0ZWdvcnkgbmFtZSBvZiB0aGUgaW1hZ2UsIGZvbGxv d2VkIGJ5IGl0cyBmaWxlbmFtZSBpbiBzcXVhcmUgYnJhY2tldHM6PC9wPg0KDQo8cHJlIGNs YXNzPSJibG9jayI+PGNvZGUgY2xhc3M9ImJsb2NrIj50aHVtYnRleHQ9JnF1b3Q7YWJvdmU6 IEZpbGVkIGluID9jYXRlZ29yeSBbP25hbWVdJnF1b3Q7Jmd0Ow0KPC9jb2RlPjwvcHJlPg0K DQoJPHA+WW91IGNhbiBjb21iaW5lIGRlZmluaXRpb25zLCBlYWNoIHNlcGFyYXRlZCBieSBh IGNvbW1hLCBmb3IgZXhhbXBsZTo8L3A+DQoNCjxwcmUgY2xhc3M9ImJsb2NrIj48Y29kZSBj bGFzcz0iYmxvY2siPnRodW1idGV4dD0mcXVvdDthYm92ZTpGaWxlZCBpbiA/Y2F0ZWdvcnkg Wz9uYW1lICg/d2lkdGggeCA/aGVpZ2h0KV0sDQogICAgIGJlbG93Oj9hdXRob3ImcXVvdDsm bHQ7L2NvZGUmZ3Q7DQo8L2NvZGU+PC9wcmU+DQoNCgk8cD5UaGF0IHdvdWxkIGFkZCB0aGUg Y2F0ZWdvcnksIGZpbGVuYW1lLCB3aWR0aCBhbmQgaGVpZ2h0IGFib3ZlIHRoZSBpbWFnZSBh bmQgdGhlIGF1dGhvciAodGhlIHBlcnNvbiB3aG8gdXBsb2FkZWQgaXQpIGJlbG93IHRoZSB0 aHVtYm5haWwuIFlvdSBjYW4gZ2V0IGFzIGNyZWF0aXZlIGFzIHlvdSBsaWtlLjwvcD4NCg0K CTxwPk5vdGUgdGhhdCBpZiB5b3Ugd2FudCB0byB1c2UgYSBjb2xvbiBpbiB0aGUgdGV4dCBp dHNlbGYsIHlvdSB3aWxsIG5lZWQgdG8gb3ZlcnJpZGUgdGhlIGRlZmF1bHQgYW5kIHNldCBp dCB0byBhbnkgc3RyaW5nIG9mIGNoYXJhY3RlcnMgeW91IHByZWZlciB1c2luZyB0aGUgPGNv ZGU+cGFyYW1kZWxpbTwvY29kZT4gb3B0aW9uLjwvcD4NCg0KCTxoMiBpZD0iZXhhbXBsZXMi PkV4YW1wbGVzPC9oMj4NCg0KCTxoMyBpZD0iZWcxIj5FeGFtcGxlIDE8L2gzPg0KDQoJPHA+ U2hvdyBhbGwgaW1hZ2VzIGluIHRoZSBsYW5kc2NhcGUgY2F0ZWdvcnksIHRlbiBhdCBhIHRp bWU6PC9wPg0KDQo8cHJlIGNsYXNzPSJibG9jayI+PGNvZGUgY2xhc3M9ImJsb2NrIj4mbHQ7 dHhwOnNtZF9zbGltYm94IGNhdGVnb3J5PSZxdW90O2xhbmRzY2FwZSZxdW90OyBsaW1pdD0m cXVvdDsxMCZxdW90OyAvJmd0Ow0KPC9jb2RlPjwvcHJlPg0KDQoJPGgzIGlkPSJlZzIiPkV4 YW1wbGUgMjwvaDM+DQoNCjxwcmUgY2xhc3M9ImJsb2NrIj48Y29kZSBjbGFzcz0iYmxvY2si PiZsdDt0eHA6c21kX3NsaW1ib3ggY2F0ZWdvcnk9JnF1b3Q7ZG9ncywgYmlyZHMmcXVvdDsg bGltaXQ9JnF1b3Q7OSZxdW90Ow0KICAgICB0aHVtYnRleHQ9JnF1b3Q7YWZ0ZXI6P2NhcHRp b24mcXVvdDsgd3JhcHRhZz0mcXVvdDtsaSZxdW90Ow0KICAgICBjZWxsY2xhc3M9JnF1b3Q7 Y2VsbCZxdW90OyAvJmd0Ow0KPC9jb2RlPjwvcHJlPg0KDQoJPHA+U2hvdyBhbGwgaW1hZ2Vz IGluIHRoZSBkb2dzIGFuZCBiaXJkcyBjYXRlZ29yaWVzLCA5IHBlciBwYWdlLiBBZGQgdGhl IGNhcHRpb25zIHVuZGVyIHRoZSB0aHVtYm5haWxzIGFuZCBtYWtlIHRoZW0gY2xpY2thYmxl IHRvby4gV3JhcCBlYWNoIGltYWdlIGluIGEgPGNvZGU+bGk8L2NvZGU+IHRhZyBhbmQgZ2l2 ZSBlYWNoIGEgY2xhc3Mgb2YgJiM4MjE2O2NlbGwmIzgyMTc7IChpbXBsaWVzIHlvdSBtdXN0 IG1hbnVhbGx5IGFkZCBhIGNvcnJlc3BvbmRpbmcgPGNvZGU+Jmx0O3VsJmd0OzwvY29kZT4g dGFnIGFyb3VuZCB0aGUgcGx1Z2luIGluIG9yZGVyIHRvIG1haW50YWluIHBhZ2UgdmFsaWRp dHkpLjwvcD4NCg0KCTxwPklmIHlvdSBhZGRlZCA8Y29kZT5zb3J0PSZxdW90O2RhdGUgZGVz YywgcmFuZG9tJnF1b3Q7PC9jb2RlPiB0byB0aGUgYWJvdmUgdGFnLCB5b3Ugd291bGQgZ2V0 IHRoZSBtb3N0IHJlY2VudCA5IGltYWdlcyBvbiB0aGUgZmlyc3QgcGFnZSwgYnV0IHNob3du IGluIGEgcmFuZG9tIG9yZGVyLiBUaGUgbmV4dCBwYWdlIHdvdWxkIHNob3cgdGhlIG5leHQg bW9zdC1yZWNlbnQgOSBpbWFnZXMsIGFnYWluIHNvcnRlZCByYW5kb21seSB3aXRoaW4gdGhl bXNlbHZlcy48L3A+DQoNCgk8cD5Ib3dldmVyLCBzd2l0Y2hpbmcgdGhlIGF0dHJpYnV0ZXMg dG86IDxjb2RlPnNvcnQ9JnF1b3Q7cmFuZG9tLCBkYXRlIGRlc2MmcXVvdDs8L2NvZGU+IHdv dWxkIGNoYW5nZSB0aGUgb3V0cHV0LiBZb3Ugd291bGQgdGhlbiBnZXQgOSByYW5kb20gaW1h Z2VzIG9uIHRoZSBmaXJzdCBwYWdlLCB3aXRoIHRoZSBtb3N0IHJlY2VudCBvbmVzIG9mIHRo ZSBncm91cCBzaG93biBmaXJzdC4gQ2xpY2tpbmcgJiM4MjE2O05leHQmIzgyMTc7IHdvdWxk IHNob3cgYW5vdGhlciA5IHJhbmRvbSBpbWFnZXMgKHNvbWUgbWF5IGJlIHRoZSBzYW1lIGFz IHBhZ2UgMSksIGFnYWluIHNvcnRlZCBpbiBkZXNjZW5kaW5nIG9yZGVyIG9mIGRhdGUuIEZv ciB0aGlzIHJlYXNvbiAodW5sZXNzIHlvdSYjODIxNztyZSBzaW1wbHkgdXNpbmcgdGhlIHBs dWdpbiB0byBwcmV0dHkgdXAgYSBwYWdlIHdpdGggcmFuZG9tIGltYWdlcykgaWYgeW91JiM4 MjE3O3JlIHVzaW5nIHJhbmRvbSBhcyB0aGUgZmlyc3QgYXJndW1lbnQgdG8gPGNvZGU+c29y dDwvY29kZT4sIHlvdSBwcm9iYWJseSB3YW50IHRvIGRpc2FibGUgcGFnaW5nIGJ5IHNldHRp bmcgc2hvd3BhZ2VsaW5rcz0mIzgyMjA7MCYjODIyMTsuPC9wPg0KDQoJPGgzIGlkPSJlZzMi PkV4YW1wbGUgMzwvaDM+DQoNCjxwcmUgY2xhc3M9ImJsb2NrIj48Y29kZSBjbGFzcz0iYmxv Y2siPiZsdDt0eHA6c21kX3NsaW1ib3ggaW1hZ2VpZD0mcXVvdDs0OCwgMjUsIDQmcXVvdDsN CiAgICAgY2F0ZWdvcnk9JnF1b3Q7ZG9ncywgP2N1c3RvbTEmcXVvdDsgc3ViY2F0cz0mcXVv dDthbGwmcXVvdDsgbGltaXQ9JnF1b3Q7MjAmcXVvdDsNCiAgICAgcHJldmxhYmVsPSZxdW90 O0JhY2smcXVvdDsgc29ydD0mcXVvdDtuYW1lIGRlc2MsIGNhdGVnb3J5JnF1b3Q7IC8mZ3Q7 DQo8L2NvZGU+PC9wcmU+DQoNCgk8cD5TaG93IGltYWdlcyB3aXRoIElEcyA0OCwgMjUgYW5k IDQgYXMgd2VsbCBhcyBhbGwgaW1hZ2VzIGluIHRoZSBkb2dzIGNhdGVnb3J5IGFuZCBhbHNv IHB1bGwgdGhlIGltYWdlIGNhdGVnb3J5IG5hbWVzIGZyb20gdGhlIGN1cnJlbnQgYXJ0aWNs ZSYjODIxNztzIGN1c3RvbTEgZmllbGQgKGlmIGN1c3RvbTEgaGVsZCA8Y29kZT5iaXJkcywg bGFuZHNjYXBlczwvY29kZT4geW91JiM4MjE3O2QgZ2V0IHBpY3R1cmVzIGZyb20gYWxsIHRo cmVlIGNhdGVnb3JpZXMgYW5kIGFsbCB0aGVpciBzdWItY2F0ZWdvcmllcykuIFRoZSB0YWcg YWxzbyBsaW1pdHMgdGhlIG51bWJlciBvZiB0aHVtYnMgcGVyIHBhZ2UgdG8gMjAsIGNoYW5n ZXMgdGhlIHByZXZpb3VzIHBhZ2UgbGFiZWwgdG8gJiM4MjIwO0JhY2smIzgyMjE7IGFuZCBz b3J0cyB0aGUgaW1hZ2VzIGluIGRlc2NlbmRpbmcgb3JkZXIgb2YgbmFtZSwgdGhlbiBjYXRl Z29yeS48L3A+DQoNCgk8aDMgaWQ9ImVnNCI+RXhhbXBsZSA0PC9oMz4NCg0KPHByZSBjbGFz cz0iYmxvY2siPjxjb2RlIGNsYXNzPSJibG9jayI+Jmx0O3R4cDpzbWRfc2xpbWJveCBjYXRl Z29yeT0mcXVvdDtzdGF0aWMsIGNhdC0/aWQmcXVvdDsNCiAgICAgaW1hZ2VpZD0mcXVvdDsh YXJ0aWNsZV9pbWFnZSZxdW90OyBsaW1pdD0mcXVvdDs2JnF1b3Q7IGdyb3VwbmFtZT0mcXVv dDs/YyZxdW90Ow0KICAgICBzaG93cGFnZWxpbmtzPSZxdW90OzAmcXVvdDsgLyZndDsNCjwv Y29kZT48L3ByZT4NCg0KCTxwPklmIHRoZSBwZXJzb24gaXMgY3VycmVudGx5IHZpZXdpbmcg YXJ0aWNsZSBJRCA2Nywgc2hvdyBhbGwgaW1hZ2VzIGZyb20gdGhlICYjODIxNjtzdGF0aWMm IzgyMTc7IGNhdGVnb3J5IGFuZCB0aGUgJiM4MjE2O2NhdC02NyYjODIxNzsgY2F0ZWdvcnku IElmIGFueSBpbWFnZSBpbiBlaXRoZXIgb2YgdGhvc2UgY2F0ZWdvcmllcyBpcyBmb3VuZCB0 byBoYXZlIGFuIElEIG9mIHRoZSBhcnRpY2xlIGltYWdlIGZyb20gdGhlIGN1cnJlbnQgYXJ0 aWNsZSwgdGhhdCBwaWN0dXJlIHdpbGwgYmUgaWdub3JlZC4gT25seSBzaG93IDYgcGljdHVy ZXMgYW5kIGRvbiYjODIxNzt0IHNob3cgdGhlIG5leHQvcHJldiBsaW5rcyBvbiB0aGUgcGFn ZS48L3A+DQoNCgk8cD5BbHNvLCBncm91cCB0aGUgbGlnaHRib3ggcGljdHVyZXMgYnkgaW1h Z2UgY2F0ZWdvcnkuIFRoaXMgbWVhbnMgdGhhdCBpZiBzb21lb25lIGNsaWNrcyBvbiBhIHBp Y3R1cmUgZnJvbSB0aGUgJiM4MjIwO3N0YXRpYyYjODIyMTsgY2F0ZWdvcnksIHRoZSBTbGlt Ym94IG5leHQvcHJldiBsaW5rcyBvbmx5IG5hdmlnYXRlIGJldHdlZW4gdGhvc2UgcGljdHVy ZXMuIFRoZSB1c2VyIHdpbGwgaGF2ZSB0byBjbG9zZSB0aGUgbGlnaHRib3ggYW5kIGNsaWNr IGEgcGljdHVyZSBpbiB0aGUgY2F0LTY3IGNhdGVnb3J5IHRvIHNob3cgcGljdHVyZXMgZnJv bSB0aGUgb3RoZXIgZ3JvdXAuPC9wPg0KDQoJPHA+T24gdGhlIHN1cmZhY2UgdGhlIGdyb3Vw bmFtZSBvcHRpb24gbWF5IHNlZW0gYSBsaXR0bGUgc3VwZXJmbHVvdXMgYnV0IGl0IGNhbiBi ZSB1c2VmdWwgdG8gYWxsb3cgcGVvcGxlIHRvIG9ubHkgZmxpY2sgdGhyb3VnaCBhIHN1YnNl dCBvZiB0aGUgcGljdHVyZXMgb24gZWFjaCBwYWdlLCBiYXNlZCBvbiB0aGVpciBjYXRlZ29y eSwgZmlsZSBuYW1lLCBhdXRob3IsIHdpZHRoL2hlaWdodCwgYWx0L2NhcHRpb24sIGV2ZW4g SUQgaWYgeW91IHdhbnQgdGhlbSB0byBhbGwgYmUgdW5pcXVlIGVudGl0aWVzLiBZb3UgY2Fu IGFsc28gdXNlIGEgZml4ZWQgdmFsdWUgcmVhZCBmcm9tIGEgZmllbGQgaW4gdGhlIGN1cnJl bnQgYXJ0aWNsZSwgZS5nLiA8Y29kZT5ncm91cG5hbWU9JnF1b3Q7P2N1c3RvbTImcXVvdDs8 L2NvZGU+LiBVc2VmdWwgd2hlbiB1c2VkIGluIGNvbmp1bmN0aW9uIHdpdGggc29ydC48L3A+ DQoNCgk8aDMgaWQ9ImVnNSI+RXhhbXBsZSA1PC9oMz4NCg0KPHByZSBjbGFzcz0iYmxvY2si Pjxjb2RlIGNsYXNzPSJibG9jayI+Jmx0O3R4cDpzbWRfc2xpbWJveCBjYXRlZ29yeT0mcXVv dDs/YywgP2N1c3RvbTEsICFjdXN0b20yLCAhc3RhdGljJnF1b3Q7DQogICAgIGxpbWl0PSZx dW90OzgmcXVvdDsgbWF4bGltaXQ9JnF1b3Q7MzImcXVvdDsgLyZndDsNCjwvY29kZT48L3By ZT4NCg0KCTxwPkEgYml0IG9mIGEgY29udHJpdmVkIGV4YW1wbGUgdGhhdCBzaG93cyBob3cg Y3JhenkgeW91IGNhbiBnZXQ6IFRoaXMgd2lsbCBzaG93IGEgbWF4aW11bSBvZiAzMiBpbWFn ZXMgZnJvbSBhbiBpbWFnZSBjYXRlZ29yeSB3aXRoIHRoZSBzYW1lIG5hbWUgYXMgdGhlIGN1 cnJlbnQgZ2xvYmFsIGNhdGVnb3J5LCBwbHVzIGFsbCBpbWFnZXMgZnJvbSBjYXRlZ29yaWVz IGxpc3RlZCBpbiB0aGUgY3VzdG9tMSBmaWVsZCBvZiB0aGUgY3VycmVudCBhcnRpY2xlIGJ1 dCA8ZW0+ZXhjbHVkaW5nPC9lbT4gaW1hZ2VzIGZyb20gY2F0ZWdvcmllcyBsaXN0ZWQgaW4g Y3VzdG9tMiBhbmQgYWxzbyBleGNsdWRpbmcgdGhlICYjODIxNjtzdGF0aWMmIzgyMTc7IGNh dGVnb3J5LiBTaG93IDggaW1hZ2UgdGh1bWJuYWlscyBhdCBhIHRpbWUgKGkuZS4gNCBwYWdl cykuPC9wPg0KDQoJPGgzIGlkPSJlZzYiPkV4YW1wbGUgNjwvaDM+DQoNCjxwcmUgY2xhc3M9 ImJsb2NrIj48Y29kZSBjbGFzcz0iYmxvY2siPiZsdDt0eHA6c21kX3NsaW1ib3ggY2F0ZWdv cnk9JnF1b3Q7P1Bob3RvIGNvdW50cnkmcXVvdDsgc3ViY2F0cz0mcXVvdDthbGwmcXVvdDsN CiAgICAgdGh1bWJ0ZXh0PSZxdW90O29uY2hhbmdlOiAmYW1wO2FtcDtsdDtoNCZhbXA7YW1w O2d0Oz9jYXRlZ29yeSZhbXA7YW1wO2x0Oy9oNCZhbXA7YW1wO2d0OyZxdW90Ow0KICAgICBn cm91cG5hbWU9JnF1b3Q7P2MmcXVvdDsgdGh1bWJ0ZXh0d3JhcD0mcXVvdDsmcXVvdDsgLyZn dDsNCjwvY29kZT48L3ByZT4NCg0KCTxwPkEgd29yay1zYXZpbmcgdGFnISBQdWxscyBvdXQg YWxsIHBpY3R1cmVzIGZyb20gdGhlIGNhdGVnb3J5IGdpdmVuIGluIHRoZSBjdXN0b20gZmll bGQgbGFiZWxsZWQgJiM4MjE2O1Bob3RvIGNvdW50cnkmIzgyMTc7LCBpbmNsdWRpbmcgYW55 IHN1Yi1jYXRlZ29yaWVzLiBCeSBkZWZhdWx0IGl0IHNvcnRzIHRoZW0gYnkgY2F0ZWdvcnks IHdoaWNoIGlzIHBlcmZlY3QuIFRoZSBjbGV2ZXIgYml0IGlzIDxjb2RlPnRodW1idGV4dDwv Y29kZT4sIHdoaWNoIHRlbGxzIHRoZSBwbHVnaW4gdG8gZGlzcGxheSB0aGUgY2F0ZWdvcnkg bmFtZSBhYm92ZSB0aGUgaW1hZ2VzIGJ1dCA8ZW0+b25seTwvZW0+IHdoZW4gdGhlIGNhdGVn b3J5IGNoYW5nZXMuIFRoZSByZXN1bHQgaXMgY2F0ZWdvcnkgaGVhZGluZ3MgKHN1cnJvdW5k ZWQgYnkgaDQgdGFncywgd2l0aG91dCB0aGUgZGVmYXVsdCA8Y29kZT50aHVtYnRleHR3cmFw PC9jb2RlPiBzcGFuKSBhYm92ZSBlYWNoIGdyb3VwIG9mIGltYWdlcy4gTm90ZSB0aGF0IGlm IHlvdSB3YW50IHRvIGluY2x1ZGUgc2ltcGxlIDxzcGFuIGNsYXNzPSJjYXBzIj5IVE1MPC9z cGFuPiB0YWdzIHlvdSBjYW4sIGJ1dCB0aGV5IG11c3QgYmUgZW5jb2RlZCB3aXRoIHRoZWly IGNoYXJhY3RlciBjb2RlIGVxdWl2YWxlbnRzIG9yIDxzcGFuIGNsYXNzPSJjYXBzIj5UWFA8 L3NwYW4+IGdldHMgbWFkLjwvcD4NCg0KCTxwPlRoZSA8Y29kZT5ncm91cG5hbWU8L2NvZGU+ IG9wdGlvbiB0ZWxscyBzbGltYm94IHRvIG9ubHkgcGVybWl0IHN0ZXBwaW5nIHRocm91Z2gg ZWFjaCBpbWFnZSBpbiBlYWNoIGNhdGVnb3J5LiBZb3UgY2Fubm90ICYjODIxNjtmYWxsIG9m ZiYjODIxNzsgdGhlIGVuZCBvZiBvbmUgY2F0ZWdvcnkgaW50byB0aGUgbmV4dCB3aGVuIHVz aW5nIHRoZSBOZXh0L1ByZXYgbGlua3MgaW4gdGhlIGxpZ2h0Ym94LjwvcD4NCg0KCTxwPklm IHlvdSB3YW50ZWQgdG8gc2hvdyBjYXRlZ29yeSBoZWFkaW5ncyB0aGF0IGdyb3VwZWQgcGlj dHVyZXMgYnkgYXV0aG9yIGFzIHdlbGwgeW91IGNvdWxkIHVzZTo8L3A+DQoNCjxwcmUgY2xh c3M9ImJsb2NrIj48Y29kZSBjbGFzcz0iYmxvY2siPnNvcnQ9JnF1b3Q7Y2F0ZWdvcnksIGF1 dGhvciZxdW90Ow0KICAgICB0aHVtYnRleHQ9JnF1b3Q7b25jaGFuZ2U6ICZhbXA7YW1wO2x0 O2g0JmFtcDthbXA7Z3Q7P2NhdGVnb3J5DQogICAgIChieSA/YXV0aG9yKSZhbXA7YW1wO2x0 Oy9oNCZhbXA7YW1wO2d0OyZxdW90Ow0KPC9jb2RlPjwvcHJlPg0KDQoJPHA+QWRkIGEgbGl0 dGxlIGJpdCBvZiA8c3BhbiBjbGFzcz0iY2FwcyI+Q1NTPC9zcGFuPiBhbmQgeW91ciBzaW5n bGUgc2xpbWJveCB0YWcgY2FuIGxvb2sgbGlrZSBpdCYjODIxNztzIGNyZWF0aW5nIG11bHRp cGxlIGdhbGxlcmllcywgYWxsIGF1dG9tYXRpY2FsbHkuPC9wPg0KDQoJPGgyIGlkPSJzdHls ZSI+U3R5bGluZyB3aXRoIDxzcGFuIGNsYXNzPSJjYXBzIj5DU1M8L3NwYW4+PC9oMj4NCg0K CTxwPlRoZXJlIGFyZSAoZGVsaWJlcmF0ZWx5KSB2ZXJ5IGZldyBsYXlvdXQgYXR0cmlidXRl cyBmb3IgdGhlIHBsdWdpbiBiZWNhdXNlIHByZXR0eSBtdWNoIGV2ZXJ5dGhpbmcgY2FuIGJl IGFjY2Vzc2VkIGZyb20gPHNwYW4gY2xhc3M9ImNhcHMiPkNTUzwvc3Bhbj4gdG8gbGF5IHlv dXIgaW1hZ2VzIG91dCBob3dldmVyIHlvdSBsaWtlIHRoZW0uIFdhbnQgdG8gY2hhbmdlIHRo ZSBudW1iZXIgb2YgaW1hZ2VzIHBlciByb3c/IENoYW5nZSB0aGUgd2lkdGggb2YgdGhlIGNv bnRhaW5pbmcgJmx0O2RpdiZndDsgYW5kIHNldCB0aGUgd2lkdGggb2YgZWFjaCB0aHVtYm5h aWwgc3BhY2UgdG8gYSBwYXJ0aWN1bGFyIHNpemUuPC9wPg0KDQoJPHA+VGhlIGZvbGxvd2lu ZyBsb2dpY2FsIHN0cnVjdHVyZSBhcHBsaWVzOjwvcD4NCg0KCTx1bD4NCgkJPGxpPkFuIG9w dGlvbmFsIHdyYXB0YWcgYW5kIGNlbGxjbGFzcyBhcm91bmQgZWFjaCAmIzgyMjA7Y2VsbCYj ODIyMTsgKGkuZS4gbGlua2VkIHRodW1ibmFpbCk8L2xpPg0KCQk8bGk+QSBsaW5rIGVsZW1l bnQgY29udGFpbmluZyB0aGUgdGh1bWJuYWlsJiM4MjE3O3MgPGNvZGU+Jmx0O2ltZyZndDs8 L2NvZGU+IHRhZyB3aXRoIGFuIG9wdGlvbmFsIGltZ2NsYXNzPC9saT4NCgkJPGxpPlRoZSB0 aHVtYnRleHQgaXMgYSAmbHQ7c3BhbiZndDsgd2l0aCBhbiBvcHRpb25hbCB0aHVtYnRleHRj bGFzcyBhbmQgY2FuIGFwcGVhciBhYm92ZSwgYmVsb3cgb3Igd2l0aGluIHRoZSBsaW5rIGVs ZW1lbnQ8L2xpPg0KCQk8bGk+VGhlIG5leHQvcHJldiBsaW5rcyBhcmUgd3JhcHBlZCBpbiB0 aGUgb3B0aW9uYWwgbmF2d3JhcHRhZyBjb250YWluZXIgYW5kIGNhbiBiZSBnaXZlbiBhbiBv cHRpb25hbCBuYXZjbGFzczwvbGk+DQoJCTxsaT5UaGUgbmV4dCBsaW5rIGhhcyBhIChkZWZh dWx0KSBjbGFzcyBvZiAmIzgyMjA7c21kX3NsaW1ib3hfbmV4dCYjODIyMTsgYW5kIHByZXYg aGFzICYjODIyMDtzbWRfc2xpbWJveF9wcmV2JiM4MjIxOy4gVGhlc2UgY2FuIGJlIGNoYW5n ZWQgb3IgcmVtb3ZlZCBpZiB5b3Ugd2lzaDwvbGk+DQoJPC91bD4NCg0KCTxwPlVzaW5nIDxz cGFuIGNsYXNzPSJjYXBzIj5DU1M8L3NwYW4+IHNlbGVjdG9ycyB5b3UgY2FuIGFjY2VzcyBl dmVyeSBwYXJ0IG9mIHRoZSBzdHJ1Y3R1cmUuIEFuIGV4YW1wbGUgPHNwYW4gY2xhc3M9ImNh cHMiPkNTUzwvc3Bhbj4gbGF5b3V0IGlzIGdpdmVuIGhlcmUgdG8gZ2V0IHlvdSBzdGFydGVk IChhc3N1bWVzIGEgd3JhcHRhZyBvZiAmIzgyMTY7bGkmIzgyMTc7LCBhIGNvbnRhaW5pbmcg JiM4MjE2O3VsJiM4MjE3OyBhcm91bmQgdGhlIHBsdWdpbiB0YWcgd2l0aCBhIGNsYXNzIG9m IDxjb2RlPnNtZF9zbGltYm94PC9jb2RlPiBhbmQgPGNvZGU+bmF2Y2xhc3M9JnF1b3Q7c21k X3NsaW1ib3hfbmF2JnF1b3Q7PC9jb2RlPikuIFBhc3RlIGl0IGludG8geW91ciA8c3BhbiBj bGFzcz0iY2FwcyI+Q1NTPC9zcGFuPiB0ZW1wbGF0ZSBhbmQgeW91JiM4MjE3O3JlIGdvb2Qg dG8gZ28uPC9wPg0KDQo8cHJlIGNsYXNzPSJibG9jayI+PGNvZGUgY2xhc3M9ImJsb2NrIj4u c21kX3NsaW1ib3ggew0KCWZsb2F0OmxlZnQ7DQoJd2lkdGg6NjAwcHg7DQoJbWFyZ2luOjFl bSAwOw0KCWNsZWFyOmJvdGg7DQoJbGlzdC1zdHlsZTpub25lOw0KfQ0KLnNtZF9zbGltYm94 IGxpIHsNCgl3aWR0aDoxNTBweDsNCgloZWlnaHQ6MTUwcHg7DQoJZmxvYXQ6bGVmdDsNCglt YXJnaW46MWVtIGF1dG87DQoJdGV4dC1hbGlnbjpjZW50ZXI7DQp9DQouc21kX3NsaW1ib3gg aW1nIHsNCgltYXJnaW46MCBhdXRvOw0KfQ0KLnNtZF9zbGltYm94IHNwYW4gew0KCWZsb2F0 OmxlZnQ7DQoJd2lkdGg6MTQwcHg7DQoJcGFkZGluZzoycHggMCAwIDVweDsNCn0NCi5zbWRf c2xpbWJveF9uYXYgew0KCWNsZWFyOmJvdGg7DQoJd2lkdGg6NTAwcHg7DQoJcGFkZGluZzoy MHB4Ow0KfQ0KLnNtZF9zbGltYm94X3ByZXYgew0KCWZsb2F0OmxlZnQ7DQp9DQouc21kX3Ns aW1ib3hfbmV4dCB7DQoJZmxvYXQ6cmlnaHQ7DQp9DQo8L2NvZGU+PC9wcmU+DQoNCgk8aDIg aWQ9ImNoYW5nZWxvZyI+Q2hhbmdlbG9nPC9oMj4NCg0KCTx1bD4NCgkJPGxpPjE5IEphbiAw NyB8IDAuMSB8IEluaXRpYWwgcmVsZWFzZTwvbGk+DQoJCTxsaT4yMCBKYW4gMDcgfCAwLjEx IHwgQWRkZWQgIWNhdGVnb3J5IChuZWdhdGlvbikgc3VwcG9ydC4gVGhhbmtzIFZpdHJ1dml1 czwvbGk+DQoJCTxsaT4wMiBGZWIgMDcgfCAwLjEyIHwgQWRkZWQgaW1hZ2VpZCwgd2l0aCBu ZWdhdGlvbiBzdXBwb3J0ICh0aGFua3Mgd291YXJlbikgYW5kIHRleHRwb3Mgb3B0aW9uICh0 aGFua3MgbGVlKTwvbGk+DQoJCTxsaT4wNiBGZWIgMDcgfCAwLjIgfCBqcyBhbmQgY3NzIGNh biBub3cgYmUgbG9hZGVkIGVsc2V3aGVyZSAodGhhbmtzIGpzdHViYnMpLiBBZGRlZCB3cmFw dGFnIGFuZCBjaGFuZ2VkIGRlZmF1bHRzIHRvIG1ha2Ugb3V0cHV0IGxlc3MgbGlrZSB0YWct c291cCAodGhhbmtzIHdvdWFyZW4pPC9saT4NCgkJPGxpPjEzIEZlYiAwNyB8IDAuMjEgfCBB ZGRlZCBvcmRlcmJ5PSYjODIyMDtmaXhlZCYjODIyMTsgKHRoYW5rcyBsZWUpIGFuZCBtaW5v ciB3YXJuZml4ICh0aGFua3MgYmVuamlib3QpPC9saT4NCgkJPGxpPjA0IE1hciAwNyB8IDAu MjIgfCBBZGRlZCA8c3BhbiBjbGFzcz0iY2FwcyI+TUxQPC9zcGFuPiBzdXBwb3J0LCBzdWJj YXRlZ29yeSBzdXBwb3J0IGFuZCBleHRlbmRlZCB0aGUgY2F0ZWdvcnkvaW1hZ2VpZCBvcHRp b25zLiBOb3cgcmVxdWlyZXMgc21kX2xpYiAoaW5jbHVkZWQgaW4gdGhlIHppcCBmaWxlIGZv ciBjb252ZW5pZW5jZSBidXQgYXZhaWxhYmxlIHNlcGFyYXRlbHkgYXMgd2VsbCk8L2xpPg0K CQk8bGk+MDQgTWFyIDA3IHwgMC4yMyB8IEZpeGVkIG9yZGVyYnkgd2hlbiB1c2luZyByYW5k b20gKHRoYW5rcyBtcmRhbGUpIGFuZCBhZGRlZCBhYmlsaXR5IHRvIG92ZXJyaWRlIG1heGxp bWl0PC9saT4NCgkJPGxpPjE5IE1hciAwNyB8IDAuMjQgfCBBbGxvd2VkIHNtZF9zbGltYm94 X2luYyB0byBiZSBpZ25vcmVkIHZpYSA8Y29kZT5saWJjaGVjaz0mcXVvdDswJnF1b3Q7PC9j b2RlPiAodGhhbmtzIHBhcHVhc3MpPC9saT4NCgkJPGxpPjMwIEp1biAwNyB8IDAuMjRiIHwg Rml4ZWQgcGFnaW5nIGluIHN1Yi1kaXJlY3RvcnkgaW5zdGFsbGF0aW9ucyAodGhhbmtzIHVs dHJhbWVnYSBhbmQgUXdlc3QpPC9saT4NCgkJPGxpPjI4IEp1bCAwNyB8IDAuMjUgfCBTdXBl cmNoYXJnZWQgdGhlIGdyb3VwbmFtZSBvcHRpb24gKHRoYW5rcyBbQXhlbF0pPC9saT4NCgkJ PGxpPjMxIEp1bCAwNyB8IDAuMjVhIHwgTWFpbnRlbmFuY2UgdXBncmFkZSBvbmx5LiBObyBm ZWF0dXJlcywganVzdCBidW5kbGVkIHRoZSBsYXRlc3Qgc2xpbWJveC9tb290b29scyBsaWJy YXJ5IGFuZCBmaXhlZCB0aGUgaGVscCBmaWxlPC9saT4NCgkJPGxpPjA0IEF1ZyAwNyB8IDAu MjY6IHwgRml4ZWQgcGFnaW5nIHRvIGFsbG93IG11bHRpcGxlIHNsaW1ib3ggdGFncyBwZXIg cGFnZSB0byBjby1leGlzdCAodGhhbmtzIHdoZWF0aWN1cyk8L2xpPg0KCQk8bGk+MjIgQXVn IDA3IHwgMC4yNzogfCBBZGRlZCB0aHVtYm5haWxzLWFzLW1haW4taW1hZ2Ugb3B0aW9uICh0 aGFua3MgcHJvZ3JlNTUpPC9saT4NCgkJPGxpPjMwIEF1ZyAwNyB8IDAuMjggfCBBZGRlZCBj dXN0b21pc2FibGUgY2FwdGlvbnMgdW5kZXIgdGhlIG1haW4gaW1hZ2UgKHRoYW5rcyBBZGFt X1YpIGFuZCBjb25zb2xpZGF0ZWQgb3JkZXJieSAoaW50ZXJuYWwgY29kZSk8L2xpPg0KCQk8 bGk+MTQgU2VwIDA3IHwgMC4yOSB8IEFkZGVkIHRoZSB0aHVtYnNpemUgb3B0aW9uIHRvIHNl dCB0aHVtYm5haWwgZGltZW5zaW9ucyAodGhhbmtzIFNpbWFuZWspPC9saT4NCgkJPGxpPjIw IFNlcCAwNyB8IDAuMjlhIHwgRml4ZWQgdW5kZWNsYXJlZCBpbmRleCB3YXJuaW5ncyAodGhh bmtzIEFtYml0aW91c2xlbW9uKTwvbGk+DQoJCTxsaT4yMCBPY3QgMDcgfCAwLjI5YiB8IEZp eGVkIHRoZSBmaXggdGhhdCBicm9rZSBpbiB2MC4yNCAodGhhbmtzIE1yLlNtaXRoKSBhbmQg dGhlICYjODIxNjtweCYjODIxNzsgdGh1bWJzaXplIGlzc3VlICh0aGFua3Mgcm9iaW43NDYp PC9saT4NCgkJPGxpPjAzIE5vdiAwNyB8IDAuMjEwIHwgVXNlcyBzbWRfbGliIHYwLjMgc28g aW50ZWdlciByYW5nZXMgYXJlIG5vdyBvbmx5IGFsbG93ZWQgaW4gaW1hZ2VpZC4gQWRkZWQg dGh1bWJ0ZXh0L3RodW1idGV4dGNsYXNzL3BhcmFtZGVsaW0uIERlcHJlY2F0ZWQgc2hvd2Fs dC9zaG93Y2FwdGlvbi9hbHRjbGFzcy9jYXB0aW9uY2xhc3MvdGV4dHBvczwvbGk+DQoJCTxs aT4yOCBOb3YgMDcgfCAwLjIxMSB8IFVzZXMgc21kX2xpYiB2MC4zMS4gRml4ZWQgc29tZSB3 YXJuaW5ncyBhbmQgYWRkZWQgb25jaGFuZ2UgaGVhZGluZyBzdXBwb3J0ICh0aGFua3Mga2Fy bC5zcGVuY2VyLCBkZWNvZGVybHRkKTwvbGk+DQoJCTxsaT4yMCBKYW4gMDggfCAwLjIxMiB8 IEFkZGVkIHRodW1idGV4dHdyYXAgKHRoYW5rcyBqb2RlY2kpIGFuZCA8Y29kZT4/dXJsPC9j b2RlPiAodGhhbmtzIG1hcmt1c2ZhbGspIDsgZml4ZWQgd2hpdGVzcGFjZSBhcm91bmQgJiM4 MjE2Oz8mIzgyMTc7IGNvZGVzPC9saT4NCgkJPGxpPjAxIEFwciAwOCB8IDAuMyB8IFVzZXMg c21kX2xpYiB2MC4zMi4gQmFja3BvcnRlZCBmZWF0dXJlcyBhbmQgcmVmYWN0b3Jpc2F0aW9u IGZyb20gc21kX2dhbGxlcnkgOyBhZGRlZCB0cmlnZ2VyLCBkZWxpbSwgbmF2d3JhcHRhZyBh bmQgbGlua2NsYXNzICh0aGFua3MgbWFyaW9zKSA7IGNoYW5nZWQgc3ViY2F0cyBhbmQgdGh1 bWIgKHRoYW5rcyBmYW5nb25rKSA7IGRlcHJlY2F0ZWQgc21kX3NsaW1ib3hfaW5jIDsgcmVt b3ZlZCBjYXRsYWJlbCwgbGliY2hlY2sgYW5kIHRoZSBkZXByZWNhdGVkIGF0dHMgZnJvbSB2 MC4yMTAgOyByZW5hbWVkIG9yZGVyYnkgYXMgc29ydCA7IE1vb25ib3gsIExpZ2h0Ym94LCBM aXRlYm94LCBJbWFnZWJveCBhbmQgVGhpY2tib3ggKGpRdWVyeSkgbm93IHN1cHBvcnRlZCA7 IGFsc28gd29ya3Mgd2l0aCBnbHpfY3VzdG9tX2ZpZWxkcyAodGhhbmtzIHByb2dyZTU1IGFu ZCBnZXJoYXJkKTwvbGk+DQoJCTxsaT4wOSBKdW4gMDggfCAwLjMxIHwgRml4ZWQgPGNvZGU+ c29ydDwvY29kZT4gd2hlbiB1c2luZyA8Y29kZT5saW1pdDwvY29kZT4gYW5kIHNhdmVkIGEg cXVlcnkgKHRoYW5rcyByb2Jpbjc0Nik8L2xpPg0KCQk8bGk+MTkgRGVjIDA4IHwgMC4zMiB8 IEZpeGVkIDxzcGFuIGNsYXNzPSJjYXBzIj5NTFA8L3NwYW4+IHN0cmluZyBidWc8L2xpPg0K CQk8bGk+MjIgRmViIDA5IHwgMC4zMyB8IEFsbG93ZWQgPGNvZGU+cmVsPC9jb2RlPiB0byBi ZSByZW1vdmVkICh0aGFua3MgPHNwYW4gY2xhc3M9ImNhcHMiPk9NR0M8L3NwYW4+aHJpcyk8 L2xpPg0KCTwvdWw+DQoNCgk8aDIgaWQ9ImNyZWRpdHMiPkNyZWRpdHM8L2gyPg0KDQoJPHA+ VGhpcyBwbHVnaW4gb3JpZ2luYWxseSBwbGFnaWFyaXNlZCBpZGVhcyBmcm9tIFJvYiBTYWJs ZSYjODIxNztzIHJzc190aHVtYnBvcCBhbmQgaGFzIGJlZW4gYnVpbHQgdXAgZnJvbSB0aGVy ZSB3aXRoIHN1Z2dlc3Rpb25zIGZyb20gdmFyaW91cyA8c3BhbiBjbGFzcz0iY2FwcyI+VFhQ PC9zcGFuPmVycyBpbiB0aGUgY29tbXVuaXR5LiBJdCBhbHNvIHdvdWxkbiYjODIxNzt0IGV4 aXN0IHdpdGhvdXQgdGhlIGhhcmQgd29yayBvZiBDaHJpc3RvcGhlIEJleWxzJiM4MjE3OyBv cmlnaW5hbCBpbXBsZW1lbnRhdGlvbiBvZiBTbGltYm94LiBNYW55IHRoYW5rcyB0byBhbGwg d2hvIGhhdmUgaGVscGVkIGNyYWZ0IHRoaXMgcGx1Z2luLCBhbmQgb2YgY291cnNlIHRvIHRo ZSBhd2Vzb21lIFRlYW0gVGV4dFBhdHRlcm4uPC9wPg0KDQo8L2Rpdj4KPCEtLSAtLS0gQkVH SU4gUExVR0lOIENTUyAtLS0gLS0+CjxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyI+DQojc21kX2hl bHAgeyBsaW5lLWhlaWdodDoxLjQ1O30NCiNzbWRfaGVscCBjb2RlIHsgZm9udC13ZWlnaHQ6 Ym9sZDsgZm9udDogMTA1JS8xMzAlICJDb3VyaWVyIE5ldyIsIGNvdXJpZXIsIG1vbm9zcGFj ZTsgYmFja2dyb3VuZC1jb2xvcjogI0ZGRkZDQzt9DQojc21kX2hlbHAgY29kZS5ibG9jayB7 IGZvbnQtd2VpZ2h0Om5vcm1hbDsgYm9yZGVyOjFweCBkb3R0ZWQgIzk5OTsgYmFja2dyb3Vu ZC1jb2xvcjogI2YwZTY4YzsgZGlzcGxheTpibG9jazsgbWFyZ2luOjEwcHggMTBweCAyMHB4 OyBwYWRkaW5nOjEwcHg7IH0NCiNzbWRfaGVscCAucmVxdWlyZWQge2NvbG9yOnJlZDt9DQoj c21kX2hlbHAgYTpsaW5rLCAjc21kX2hlbHAgYTp2aXNpdGVkIHsgY29sb3I6IGJsdWU7IHRl eHQtZGVjb3JhdGlvbjogbm9uZTsgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIGJsdWU7IHBh ZGRpbmctYm90dG9tOjFweDt9DQojc21kX2hlbHAgYTpob3ZlciwgI3NtZF9oZWxwIGE6YWN0 aXZlIHsgY29sb3I6IGJsdWU7IHRleHQtZGVjb3JhdGlvbjogbm9uZTsgYm9yZGVyLWJvdHRv bTogMnB4IHNvbGlkIGJsdWU7IHBhZGRpbmctYm90dG9tOjFweDt9DQojc21kX2hlbHAgaDEg eyBjb2xvcjogIzM2OTsgZm9udDogMjBweCBHZW9yZ2lhLCBzYW5zLXNlcmlmOyBtYXJnaW46 IDA7IHRleHQtYWxpZ246IGNlbnRlcjsgfQ0KI3NtZF9oZWxwIGgyIHsgYm9yZGVyLWJvdHRv bTogMXB4IHNvbGlkIGJsYWNrOyBwYWRkaW5nOjEwcHggMCAwOyBjb2xvcjogIzM2OTsgZm9u dDogMTdweCBHZW9yZ2lhLCBzYW5zLXNlcmlmOyB9DQojc21kX2hlbHAgaDMgeyBjb2xvcjog IzY5MzsgZm9udDogYm9sZCAxMnB4IEFyaWFsLCBzYW5zLXNlcmlmOyBsZXR0ZXItc3BhY2lu ZzogMXB4OyBtYXJnaW46IDIycHggMCAwOyB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlOyB0 ZXh0LWRlY29yYXRpb246dW5kZXJsaW5lO30NCiNzbWRfaGVscCBoNCB7IGZvbnQ6IGJvbGQg MTFweCBBcmlhbCwgc2Fucy1zZXJpZjsgbGV0dGVyLXNwYWNpbmc6IDFweDsgbWFyZ2luOiAx MHB4IDAgMCA7dGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTsgfQ0KI3NtZF9oZWxwIHVsIHsg bGlzdC1zdHlsZS10eXBlOnNxdWFyZTsgfQ0KI3NtZF9oZWxwIGxpIHsgbWFyZ2luLWxlZnQ6 MzVweDsgfQ0KI3NtZF9oZWxwIC5hdHQtbmFtZSB7IGZvbnQtd2VpZ2h0OmJvbGQ7IH0NCiNz bWRfaGVscCB0YWJsZSB7d2lkdGg6OTAlOyB0ZXh0LWFsaWduOmNlbnRlcjsgcGFkZGluZy1i b3R0b206MWVtOyBtYXJnaW46MCBhdXRvO30NCiNzbWRfaGVscCB0ZCwgI3NtZF9oZWxwIHRo IHtib3JkZXI6MXB4IHNvbGlkICM5OTk7IHBhZGRpbmc6LjVlbSAwO30NCiNzbWRfaGVscCAu YnJlYWsgeyBtYXJnaW4tdG9wOjVweDsgfQ0KPC9zdHlsZT4KPCEtLSAtLS0gRU5EIFBMVUdJ TiBDU1MgLS0tIC0tPiI7czo0OiJjb2RlIjtzOjE1NTAwOiIvLyBERVBSRUNBVEVEDQpmdW5j dGlvbiBzbWRfc2xpbWJveF9pbmMoJGF0dHMpIHsNCglnbG9iYWwgJHByb2R1Y3Rpb25fc3Rh dHVzOw0KCWlmIChpbl9hcnJheSgkcHJvZHVjdGlvbl9zdGF0dXMsIGFycmF5KCdkZWJ1Zycs ICd0ZXN0aW5nJykpKSB7DQoJCXRyaWdnZXJfZXJyb3IoInNtZF9zbGltYm94X2luYyBpcyBu byBsb25nZXIgc3VwcG9ydGVkLiBQbGVhc2UgcmVtb3ZlIGl0IGFuZCBpbmNsdWRlIHRoZSBy ZWxldmFudCBqYXZhc2NyaXB0IGxpYnJhcmllcyBtYW51YWxseSBvbiB5b3VyIHBhZ2UuIik7 DQoJfQ0KCXJldHVybjsNCn0NCnJlcXVpcmVfcGx1Z2luKCdzbWRfbGliJyk7DQovLyBNTFAg c3VwcG9ydA0KZ2xvYmFsICRzbWRfc2JveExhbmc7DQokc21kX3Nib3hTdHIgPSBhcnJheSgN CgknbmV4dF9sYmwnID0+ICdOZXh0JywNCgkncHJldl9sYmwnID0+ICdQcmV2JywNCik7DQok c21kX3Nib3hMYW5nID0gbmV3IHNtZF9NTFAoJ3NtZF9zbGltYm94JywgJ3NtZF9zYm94Jywg JHNtZF9zYm94U3RyKTsNCg0KZnVuY3Rpb24gc21kX3NsaW1ib3goJGF0dHMsICR0aGluZz0n Jykgew0KCWdsb2JhbCAkcHJvZHVjdGlvbl9zdGF0dXMsICRwcmV0ZXh0LCAkdGhpc2FydGlj bGUsICRpbWdfZGlyLCAkc21kX3Nib3hMYW5nOw0KDQoJLy8gKiogTE9PS1VQIFRBQkxFUw0K CS8vIEhvbGRzIGRhdGFiYXNlIGZpZWxkIGFzIGtleSBpbmRleCBhbmQgcGx1Z2luIG9wdGlv biBuYW1lcyBhcyB2YWx1ZS4NCgkvLyBVc2UgYXJyYXlfc2VhcmNoIHRvIGZpbmQgaWYgdmFs dWUgZXhpc3RzIGFuZCByZXR1cm4gY29ycmVjdCBrZXkgZm9yIHVzZSBpbiBkYiBjYWxscy4N CgkkZmllbGRNYXAgPSBhcnJheSgNCgkJIm5hbWUiID0+ICJuYW1lIiwNCgkJImlkIiA9PiAi aWQiLA0KCQkiYWx0IiA9PiAiYWx0IiwNCgkJImNhcHRpb24iID0+ICJjYXB0aW9uIiwNCgkJ ImNhdGVnb3J5IiA9PiAiY2F0ZWdvcnkiLA0KCQkiYXV0aG9yIiA9PiAiYXV0aG9yIiwNCgkJ ImRhdGUiID0+ICJkYXRlIiwNCgkJImV4dCIgPT4gImV4dCIsDQoJCSJ3IiA9PiAid2lkdGgi LA0KCQkiaCIgPT4gImhlaWdodCIsDQoJKTsNCgkkc2hvd0xvY3MgPSBhcnJheSgiYmVsb3ci LCJhYm92ZSIsImFmdGVyIiwiYmVmb3JlIiwib25jaGFuZ2UiKTsNCi8vCSRjbGFzc1R5cGVz ID0gYXJyYXlfbWVyZ2UoYXJyYXkoImdyb3VwIiwiY2VsbCIsImxpbmsiLCJpbWciLCJ0aHVt YnRleHQiLCJuYXYiLCJwcmV2IiwibmV4dCIpLCRzaG93TG9jcyk7DQovLwkkb3BlcmFuZHMg PSBhcnJheSgiY2hhbmdlcyIsICJjb250YWlucyIsICJlcSIsICJsdCIsICJndCIsICJsdGUi LCAiZ3RlIiwgIm5vdCIpOw0KCSR0aHVtYmhvbGRlciA9ICI6OlNCT1hfUkVQTDo6IjsNCg0K CSRhdHRlbXB0TWF0Y2ggPSAoaXNzZXQoJGF0dHNbJ2NhdGVnb3J5J10pIHx8IGlzc2V0KCRh dHRzWydpbWFnZWlkJ10pKSA/IHRydWUgOiBmYWxzZTsNCg0KCS8vIFBsdWdpbiBvcHRpb25z DQoJZXh0cmFjdChsQXR0cyhhcnJheSgNCgkJJ2RlbGltJwkJCQk9PiAnLCcsDQoJCSdwYXJh bWRlbGltJwkJPT4gJzonLA0KCQknaW1hZ2VpZCcJCQk9PiAnJywNCgkJJ2NhdGVnb3J5JwkJ CT0+ICcnLA0KCQknc3ViY2F0cycJCQk9PiAnMCcsDQoJCSd0cmlnZ2VyJwkJCT0+ICdsaWdo dGJveC0nLA0KCQknZ3JvdXBuYW1lJwkJCT0+ICdzbWQnLA0KCQkndGh1bWInCQkJCT0+ICcw OjEnLA0KCQknbGltaXQnCQkJCT0+ICcwJywNCgkJJ21heGxpbWl0JwkJCT0+ICc5OTk5OScs DQoJCSdzb3J0JwkJCQk9PiAnY2F0ZWdvcnkgYXNjJywgLy8gd2FzIG9yZGVyYnkNCgkJJ29y ZGVyYnknCQkJPT4gJycsIC8vIERFUFJFQ0FURUQNCgkJJ3Nob3dwYWdlbGlua3MnCT0+ICcx JywNCgkJJ2dhbGxlcnlpZCcJCQk9PiAnPzQ6NicsDQoJCSdpbWFnZWNhcHRpb24nCQk9PiAn P2NhcHRpb24nLA0KCQkndGh1bWJzaXplJwkJCT0+ICcnLA0KCQkndGh1bWJ0ZXh0JwkJCT0+ ICcnLA0KCQkndGh1bWJ0ZXh0d3JhcCcJPT4gJ3NwYW4nLA0KCQkndGh1bWJ0ZXh0Y2xhc3Mn CT0+ICcnLA0KCQknd3JhcHRhZycJCQk9PiAnJywNCgkJJ25hdndyYXB0YWcnCQk9PiAnJywN CgkJJ3ByZXZsYWJlbCcJCQk9PiAkc21kX3Nib3hMYW5nLT5nVHh0KCdwcmV2X2xibCcpLA0K CQknbmV4dGxhYmVsJwkJCT0+ICRzbWRfc2JveExhbmctPmdUeHQoJ25leHRfbGJsJyksDQoJ CSdwcmV2Y2xhc3MnCQkJPT4gJ3NtZF9zbGltYm94X3ByZXYnLA0KCQknbmV4dGNsYXNzJwkJ CT0+ICdzbWRfc2xpbWJveF9uZXh0JywNCgkJJ25hdmNsYXNzJwkJCT0+ICcnLA0KCQknY2Vs bGNsYXNzJwkJCT0+ICcnLA0KCQknbGlua2NsYXNzJwkJCT0+ICcnLA0KCQknaW1nY2xhc3Mn CQkJPT4gJycsDQoJCSdkZWJ1ZycJCQk9PiAnMCcsDQoJKSwgJGF0dHMpKTsNCg0KCS8vIERF UFJFQ0FURUQ6IENvbnZlcnQgb3JkZXJieSB0byB0aGUgbmV3IHNvcnQuIFJlbW92ZSBpbiBs YXRlciB2ZXJzaW9ucw0KCWlmICgkb3JkZXJieSkgew0KCQkkc29ydCA9IHN0cl9yZXBsYWNl ICgiOiIsICIgIiwgJG9yZGVyYnkpOw0KCQlpZiAoaW5fYXJyYXkoJHByb2R1Y3Rpb25fc3Rh dHVzLCBhcnJheSgnZGVidWcnLCAndGVzdGluZycpKSkgew0KCQkJdHJpZ2dlcl9lcnJvcigi J29yZGVyYnknIGlzIG5vdyByZW5hbWVkICdzb3J0Jy4gVXNlIGEgc3BhY2UgaW5zdGVhZCBv ZiBhIGNvbG9uIHRvIHNwZWNpZnkgc29ydCBvcmRlciAoZS5nLiBvcmRlcmJ5PSdjYXRlZ29y eTphc2MnIGlzIG5vdyBzb3J0PSdjYXRlZ29yeSBhc2MnKS4iKTsNCgkJfQ0KCX0NCgkvLyBD YXRlZ29yeSByZWxpZXMgb24gd2hldGhlciBpbWFnZWlkIGhhcyBiZWVuIHNwZWNpZmllZCBv ciBub3QuDQoJLy8gbEF0dHMoKSB3b24ndCBsZXQgdXMgaGFuZGxlIHRoaXMgbG9naWMgc28g aXQgaGFzIHRvIGJlIGRvbmUgbWFudWFsbHkNCgkkY2F0ZWdvcnkgPSBpc3NldCgkY2F0ZWdv cnkpID8gZG9TbGFzaCgkY2F0ZWdvcnkpIDogKCgkaW1hZ2VpZD09IiIpID8gJHByZXRleHRb J2MnXTogJycpOw0KDQoJLy8gVGhlIGdhbGxlcnkgaWRlbnRpZmllciBpcyB1c2VkIGZvciBr ZWVwaW5nIHRyYWNrIG9mIG5leHQvcHJldiB0aHVtYnBhZ2UgbGlua3MuDQoJLy8gRG9uJ3Qg dXNlIHBhcmFtZGVsaW0gaGVyZSBvciB0aGUgZGVmYXVsdCBvcHRpb24gYnJlYWtzDQoJJGdh bGxJRCA9ICIiOw0KCWlmICgkZ2FsbGVyeWlkID09ICIiIHx8IHN1YnN0cigkZ2FsbGVyeWlk LDAsMSkgPT0gIj8iKSB7DQoJCS8vIEdlbmVyYXRlIGEgdW5pcXVlIElEIGZvciB0aGlzIGdh bGxlcnkgaW5zdGFuY2UNCgkJJGdhbGxUbXAgPSBtZDUoJGNhdGVnb3J5LiRpbWFnZWlkLiRv cmRlcmJ5LiRsaW1pdC4kbWF4bGltaXQuJHdyYXB0YWcpOw0KCQlsaXN0KCRnYWxsTGVuLCAk Z2FsbFNraXApID0gZXhwbG9kZSgiOiIsIHN1YnN0cigkZ2FsbGVyeWlkLDEpKTsNCgkJJGdh bGxMZW4gPSAgKGVtcHR5KCRnYWxsTGVuKSkgPyAiNCIgOiAkZ2FsbExlbjsNCgkJJGdhbGxT a2lwID0gIChlbXB0eSgkZ2FsbFNraXApKSA/ICIxIiA6ICRnYWxsU2tpcDsNCgkJZm9yICgk aWR4ID0gMCwgJGNudCA9IDA7ICRjbnQgPCAkZ2FsbExlbjsgJGNudCsrLCAkaWR4ID0gKCgk aWR4KyRnYWxsU2tpcCkgJSBzdHJsZW4oJGdhbGxUbXApKSkgew0KCQkJJGdhbGxJRCAuPSAk Z2FsbFRtcFskaWR4XTsNCgkJfQ0KCX0gZWxzZSB7DQoJCSRnYWxsSUQgPSAkZ2FsbGVyeWlk Ow0KCX0NCg0KCS8vIFNldCB1cCB0aGUgdmFyaWFibGVzIGZyb20gdGhlIHRodW1iIG9wdGlv bi4NCgkvLyBEb24ndCB1c2UgcGFyYW1kZWxpbSBoZXJlIG9yIHRoZSBkZWZhdWx0IG9wdGlv biBicmVha3MNCgkkdGh1bWJPcHRzID0gZG9fbGlzdCgkdGh1bWIsICI6Iik7DQoJaWYgKGNv dW50KCR0aHVtYk9wdHMpID09IDEpIHsNCgkJJGZ1bGxtb2QgPSAoJHRodW1iT3B0c1swXSA9 PSAxKSA/ICJ0IiA6ICIiOw0KCQkkdGh1bWJtb2QgPSAidCI7DQoJfSBlbHNlIHsNCgkJJGZ1 bGxtb2QgPSAoJHRodW1iT3B0c1swXSA9PSAxKSA/ICJ0IiA6ICIiOw0KCQkkdGh1bWJtb2Qg PSAoJHRodW1iT3B0c1sxXSA9PSAxKSA/ICJ0IiA6ICIiOw0KCX0NCg0KCS8vIEV4dHJhY3Qg dGhlIGdpdmVuIGNhdGVnb3J5L2ltYWdlaWQgbGlzdHMgYW5kIG1ha2UgdXAgdGhlIGJlZ2lu bmluZ3Mgb2YgYSBXSEVSRSBjbGF1c2UNCgkkY2xhdXNlW10gPSAnMT0xJzsNCgkkY2xhdXNl T1IgPSBhcnJheSgpOw0KCSRzdWJpbmZvID0gKCRzdWJjYXRzKSA/ICJpbWFnZToiLiRzdWJj YXRzIDogJyc7DQoJbGlzdCgkZnVsbElETGlzdCwgJG5vdElETGlzdCkgPSBzbWRfZG9MaXN0 KCRpbWFnZWlkLCB0cnVlLCAnJywgdHJ1ZSwgJGRlbGltKTsNCglsaXN0KCRmdWxsQ2F0TGlz dCwgJG5vdENhdExpc3QpID0gc21kX2RvTGlzdCgkY2F0ZWdvcnksIGZhbHNlLCAkc3ViaW5m bywgdHJ1ZSwgJGRlbGltKTsNCglpZiAoJGZ1bGxJRExpc3QpIHsNCgkJJGNsYXVzZU9SW10g PSAndHhwX2ltYWdlLmlkIElOICgnLmltcGxvZGUoIiwiLCAkZnVsbElETGlzdCkuJyknOw0K CX0NCglpZiAoJGZ1bGxDYXRMaXN0KSB7DQoJCSRjbGF1c2VPUltdID0gJ3R4cF9pbWFnZS5j YXRlZ29yeSBJTiAoJy5pbXBsb2RlKCIsIiwgJGZ1bGxDYXRMaXN0KS4nKSc7DQoJfQ0KCWlm ICghZW1wdHkoJGNsYXVzZU9SKSkgew0KCQkkY2xhdXNlW10gPSBpbXBsb2RlKCIgT1IgIiwg JGNsYXVzZU9SKTsNCgl9DQoNCgkkY2xhdXNlID0gaW1wbG9kZSgiIEFORCAiLCAkY2xhdXNl KTsNCgkkY2xhdXNlIC49ICgkbm90Q2F0TGlzdCkgPyAnIEFORCB0eHBfaW1hZ2UuY2F0ZWdv cnkgTk9UIElOICgnLmltcGxvZGUoIiwiLCAkbm90Q2F0TGlzdCkuJyknIDogJyc7DQoJJGNs YXVzZSAuPSAoJG5vdElETGlzdCkgPyAnIEFORCB0eHBfaW1hZ2UuaWQgTk9UIElOICgnLmlt cGxvZGUoIiwiLCAkbm90SURMaXN0KS4nKScgOiAnJzsNCg0KCS8vIElmIGEgY2F0ZWdvcnkv aW1hZ2VpZCBvcHRpb24gd2FzIGNob3NlbiBhbmQgdGhleSBtYXRjaGVkIG5vdGhpbmcsIHVz ZSBhIGJvZ3VzIGNhdGVnb3J5IHRoYXQgc2hvdWxkIG5vdCBleGlzdC4NCgkvLyBUaGlzIGVu c3VyZXMgdGhhdCB0aGUgcGx1Z2luIGRvZXMgdGhlIGV4cGVjdGVkIHRoaW5nIG9mIG1hdGNo aW5nIG5vdGhpbmcgaW4gdGhlIGV2ZW50IGl0IGZpbmRzIG5vdGhpbmcuDQoJaWYgKCRjbGF1 c2UgPT0gIjE9MSIgJiYgJGF0dGVtcHRNYXRjaCkgew0KICAJCSRjbGF1c2UgPSAndHhwX2lt YWdlLmNhdGVnb3J5ID0gInNtZF8nIC5tdF9yYW5kKCkuICciJzsNCgl9DQoNCgkvLyBDb252 ZXJ0IHRoZSBzb3J0IGludG8gYSB2YWxpZCBzb3J0aW5nIGhpZXJhcmNoeS4NCgkvLyBOb3Rl IHRoYXQgcmFuZG9tIGlzIGEgc3BlY2lhbCBjYXNlIGFuZCB0aGUgZm9sbG93aW5nIHJ1bGVz IGFwcGx5Og0KCS8vICAxKSBBbnl0aGluZyBhcHBlYXJpbmcgYmVmb3JlIHJhbmRvbSBpcyBw YXNzZWQgdG8gdGhlIGRhdGFiYXNlIHF1ZXJ5IGZvciBvcmRlcmluZw0KCS8vICAyKSBBcyBz b29uIGFzIHJhbmRvbSBpcyBlbmNvdW50ZXJlZCwgdGhlIHJlc3Qgb2YgdGhlIHNvcnQgc3Ry aW5nIGlzIGlnbm9yZWQuDQoJLy8gICAgIFRoZSByZXN1bHRzZXQgd2lsbCBiZSBzb3J0ZWQg cmFuZG9tbHkgaW5zdGVhZA0KCS8vICAzKSBJZiByYW5kb20gYXBwZWFycyBmaXJzdCBpbiB0 aGUgbGlzdCwgdGhlIGRhdGEgaXMgcmV0cmlldmVkIHJhbmRvbWx5IHRoZW4gdGhlDQoJLy8g ICAgIHJlbWFpbmluZyBvcHRpb25zIHNvcnQgdGhlIHJlc3VsdHNldA0KCSRjbGF1c2VTb3J0 ID0gYXJyYXkoKTsNCgkkcG9zdE9yZGVyID0gYXJyYXkoKTsNCgkkcnVsZSA9ICJzcWwiOw0K CSRwb3N0UHJlZml4ID0gIlNPUlRfIjsNCgkkZml4ZWRPcmRlciA9ICRyYW5kc29ydCA9IGZh bHNlOw0KCSRzb3J0ID0gZG9fbGlzdCgkc29ydCwgJGRlbGltKTsNCglmb3IgKCRpZHggPSAw OyAkaWR4IDwgY291bnQoJHNvcnQpOyAkaWR4KyspIHsNCgkJJHNvcnRfZGlyID0gZXhwbG9k ZSgnICcsICRzb3J0WyRpZHhdKTsNCgkJJGRpcmVjdGlvbiA9ICRjb2xSZWYgPSAnJzsNCgkJ aWYgKGNvdW50KCRzb3J0X2RpcikgPD0gMSkgew0KCQkJJHNvcnRfZGlyWzFdID0gImFzYyI7 DQoJCX0NCgkJaWYgKCRydWxlID09ICJzcWwiKSB7DQoJCQkkZGlyZWN0aW9uID0gKCRzb3J0 X2RpclsxXSA9PSAiZGVzYyIpID8gJyBkZXNjJyA6ICcgYXNjJzsNCgkJfSBlbHNlIHsNCgkJ CSRkaXJlY3Rpb24gPSAoJHNvcnRfZGlyWzFdID09ICJkZXNjIikgPyAkcG9zdFByZWZpeC4n REVTQycgOiAkcG9zdFByZWZpeC4nQVNDJzsNCgkJfQ0KDQoJCXN3aXRjaCAoJHNvcnRfZGly WzBdKSB7DQoJCQljYXNlICdyYW5kb20nOg0KCQkJCSRydWxlID0gInBvc3QiOw0KCQkJCWlm ICgkaWR4ID09IDApIHsNCgkJCQkJJGNsYXVzZVNvcnRbXSA9ICdyYW5kKCknOw0KCQkJCX0g ZWxzZSB7DQoJCQkJCSRyYW5kc29ydCA9IHRydWU7DQoJCQkJfQ0KCQkJCWJyZWFrOw0KCQkJ Y2FzZSAnZml4ZWQnOg0KCQkJCS8vICdmaXhlZCcgb25seSB3b3JrcyBvbiBpZHMNCgkJCQkk Zml4ZWRPcmRlciA9ICgkaW1hZ2VpZCA9PSAnJykgPyBmYWxzZSA6IHRydWU7DQoJCQkJYnJl YWs7DQoJCQlkZWZhdWx0Og0KCQkJCSRjb2xSZWYgPSBhcnJheV9zZWFyY2goJHNvcnRfZGly WzBdLCAkZmllbGRNYXApOw0KCQkJCWJyZWFrOw0KCQl9DQoJCWlmICgkcnVsZSA9PSAic3Fs Iikgew0KCQkJaWYgKCRjb2xSZWYgIT0gJycpIHsNCgkJCQkkY2xhdXNlU29ydFtdID0gJGNv bFJlZi4kZGlyZWN0aW9uOw0KCQkJfQ0KCQl9IGVsc2Ugew0KCQkJaWYgKCEkcmFuZHNvcnQp IHsNCgkJCQlpZiAoJGNvbFJlZiAhPSAnJykgew0KCQkJCQkkcG9zdE9yZGVyW10gPSBhcnJh eSgiY29sIiA9PiAkY29sUmVmLCAic29ydCIgPT4gJGRpcmVjdGlvbik7DQoJCQkJfQ0KCQkJ fQ0KCQl9DQoJfQ0KDQoJaWYgKGNvdW50KCRjbGF1c2VTb3J0KSA+IDApIHsNCgkJJGNsYXVz ZSAuPSAnIE9SREVSIEJZICcgLiBpbXBsb2RlKCIsIiwkY2xhdXNlU29ydCk7DQoJfQ0KDQoJ Ly8gVGhlIGRhdGFiYXNlIGZpZWxkcyByZXF1aXJlZA0KCSRmaWVsZHMgPSAnaWQsbmFtZSxj YXB0aW9uLGFsdCxjYXRlZ29yeSxkYXRlLGF1dGhvcixleHQsdyxoJzsNCg0KCS8vIEhhbmRs ZSBwYWdpbmcNCglpZiAoKCRsaW1pdCA+IDApICYmICRzaG93cGFnZWxpbmtzKSB7DQoJCSRy cyA9IHNhZmVfcm93cygkZmllbGRzLCAndHhwX2ltYWdlJywgJGNsYXVzZSAuJyBMSU1JVCAw LCcuJG1heGxpbWl0LCAkZGVidWcpOw0KCQkkbnVtdGh1bSA9IGNvdW50KCRycyk7DQoJCSRu dW1QYWdlcyA9ICgkbnVtdGh1bSA+IDApID8gY2VpbCgkbnVtdGh1bS8kbGltaXQpIDogMTsN CgkJJHRodW1icGFnZSA9ICghZ3BzKCRnYWxsSUQpKSA/IDEgOiBncHMoJGdhbGxJRCk7DQoJ CSRvZmZzZXQgPSAoJHRodW1icGFnZSAtIDEpICogJGxpbWl0Ow0KCX0gZWxzZSB7DQoJCS8v IE5vIHBhZ2luZyByZXF1aXJlZA0KCQkkbnVtUGFnZXMgPSAxOw0KCQkkdGh1bWJwYWdlID0g MTsNCgkJJHJzID0gc2FmZV9yb3dzKCRmaWVsZHMsICd0eHBfaW1hZ2UnLCAkY2xhdXNlIC4n IExJTUlUIDAsJy4gKCgkbGltaXQ9PTApID8gJG1heGxpbWl0IDogJGxpbWl0KSwgJGRlYnVn KTsNCgl9DQoNCgkvLyBJcyBwb3N0LW9yZGVyaW5nIHJlcXVpcmVkPyBEbyBpdA0KCWlmICgk cmFuZHNvcnQpIHsNCgkJc2h1ZmZsZSgkcnMpOw0KCX0gZWxzZSBpZiAoY291bnQoJHBvc3RP cmRlcikgPiAwKSB7DQoJCS8vIFRyYW5zbGF0ZSB0aGUgcm93cyBpbnRvIGNvbHVtbnMgdGhh dCBjYW4gYmUgc29ydGVkDQoJCWZvcmVhY2goJHJzIGFzICRrZXkgPT4gJHJvdykgew0KCQkJ JGNvbF9pZFska2V5XSA9ICRyb3dbJ2lkJ107DQoJCQkkY29sX25hbWVbJGtleV0gPSAkcm93 WyduYW1lJ107DQoJCQkkY29sX2NhcHRpb25bJGtleV0gPSAkcm93WydjYXB0aW9uJ107DQoJ CQkkY29sX2FsdFska2V5XSA9ICRyb3dbJ2FsdCddOw0KCQkJJGNvbF9jYXRlZ29yeVska2V5 XSA9ICRyb3dbJ2NhdGVnb3J5J107DQoJCQkkY29sX2RhdGVbJGtleV0gPSAkcm93WydkYXRl J107DQoJCQkkY29sX2V4dFska2V5XSA9ICRyb3dbJ2V4dCddOw0KCQkJJGNvbF9hdXRob3Jb JGtleV0gPSAkcm93WydhdXRob3InXTsNCgkJCSRjb2xfd1ska2V5XSA9ICRyb3dbJ3cnXTsN CgkJCSRjb2xfaFska2V5XSA9ICRyb3dbJ2gnXTsNCgkJfQ0KCQkvLyBNYWtlIHVwIGFuIGFy cmF5X211bHRpc29ydCBhcmcgbGlzdCBhbmQgZXhlY3V0ZSBpdA0KCQlmb3IgKCRpZHggPSAw OyAkaWR4IDwgY291bnQoJHBvc3RPcmRlcik7ICRpZHgrKykgew0KCQkJJHNvcnRhcmdzW10g PSAnJGNvbF8nLiRwb3N0T3JkZXJbJGlkeF1bJ2NvbCddOw0KCQkJJHNvcnRhcmdzW10gPSAk cG9zdE9yZGVyWyRpZHhdWydzb3J0J107DQoJCX0NCgkJJHNvcnRpdCA9ICdhcnJheV9tdWx0 aXNvcnQoJy5pbXBsb2RlKCIsICIsJHNvcnRhcmdzKS4nLCAkcnMpOyc7DQoJCWV2YWwoJHNv cnRpdCk7DQoJfQ0KDQoJLy8gSXMgZml4ZWQtb3JkZXIgb3V0cHV0IGRlc2lyZWQ/IElmIHNv LCByZS1vcmRlciB0aGUgJHJzDQoJaWYgKCRmaXhlZE9yZGVyKSB7DQoJCSRvcmRlcmVkUlMg PSBBcnJheSgpOw0KCQkkaWdub3JlTGlzdCA9IEFycmF5KCk7DQoJCSRyZW1haW5pbmdSUyA9 IEFycmF5KCk7DQoJCS8vIFN1Y2sgb3V0IHRoZSBmaXhlZCBpdGVtcyBmaXJzdA0KCQlmb3Ig KCRpZHggPSAwOyAkaWR4IDwgY291bnQoJGZ1bGxJRExpc3QpOyAkaWR4KyspIHsNCgkJCWZv cmVhY2goJHJzIGFzICRyb3cpIHsNCgkJCQlpZiAoIiciLiRyb3dbJ2lkJ10uIiciID09ICRm dWxsSURMaXN0WyRpZHhdKSB7DQoJCQkJCSRvcmRlcmVkUlNbXSA9ICRyb3c7DQoJCQkJCSRp Z25vcmVMaXN0W10gPSAkcm93WydpZCddOw0KCQkJCX0NCgkJCX0NCgkJfQ0KCQkvLyBUYWNr IG9uIHRoZSByZW1haW5pbmcgcm93cw0KCQlmb3JlYWNoKCRycyBhcyAkcm93KSB7DQoJCQlp ZiAoIWluX2FycmF5KCRyb3dbJ2lkJ10sICRpZ25vcmVMaXN0KSkgew0KCQkJCSRyZW1haW5p bmdSU1tdID0gJHJvdzsNCgkJCX0NCgkJfQ0KCQkkcnMgPSBhcnJheV9tZXJnZSgkb3JkZXJl ZFJTLCAkcmVtYWluaW5nUlMpOw0KCX0NCg0KCWlmICgoJGxpbWl0ID4gMCkgJiYgJHNob3dw YWdlbGlua3MpIHsNCgkJJHJzID0gYXJyYXlfc2xpY2UoJHJzLCAkb2Zmc2V0LCAkbGltaXQp Ow0KCX0NCg0KCS8vIEhhbmRsZSB0aHVtYnNpemUNCgkkdGh1bWJXaWR0aCA9ICR0aHVtYkhl aWdodCA9ICcnOw0KCSR0aHVtYldVbml0cyA9ICR0aHVtYkhVbml0cyA9ICcnOw0KCWlmICgk dGh1bWJzaXplKSB7DQoJCSR0aHVtYlNpemVzID0gZG9fbGlzdCgkdGh1bWJzaXplLCAkZGVs aW0pOw0KCQlpZiAoY291bnQoJHRodW1iU2l6ZXMpID09IDEpIHsNCgkJCSR0aHVtYldpZHRo ID0gJHRodW1iSGVpZ2h0ID0gZXJlZ19yZXBsYWNlKCJbXjAtOV0iLCAnJywgJHRodW1iU2l6 ZXNbMF0pOw0KCQkJJHVuaXRzID0gZXJlZ19yZXBsYWNlKCJbMC05XSIsICcnLCAkdGh1bWJT aXplc1swXSk7DQoJCQkkdGh1bWJXVW5pdHMgPSAkdGh1bWJIVW5pdHMgPSAoJHVuaXRzID09 ICcnKSA/ICR0aHVtYldVbml0cyA6ICR1bml0czsNCgkJfSBlbHNlIHsNCgkJCSR0aHVtYldp ZHRoID0gZXJlZ19yZXBsYWNlKCJbXjAtOV0iLCAnJywgJHRodW1iU2l6ZXNbMF0pOw0KCQkJ JHRodW1iSGVpZ2h0ID0gZXJlZ19yZXBsYWNlKCJbXjAtOV0iLCAnJywgJHRodW1iU2l6ZXNb MV0pOw0KCQkJJHVuaXRzID0gZXJlZ19yZXBsYWNlKCJbMC05XSIsICcnLCAkdGh1bWJTaXpl c1swXSk7DQoJCQkkdGh1bWJXVW5pdHMgPSAoJHVuaXRzID09ICcnICYmICR0aHVtYldpZHRo ICE9ICcnKSA/ICR0aHVtYldVbml0cyA6ICR1bml0czsNCgkJCSR1bml0cyA9IGVyZWdfcmVw bGFjZSgiWzAtOV0iLCAnJywgJHRodW1iU2l6ZXNbMV0pOw0KCQkJJHRodW1iSFVuaXRzID0g KCR1bml0cyA9PSAnJyAmJiAkdGh1bWJIZWlnaHQgIT0gJycpID8gJHRodW1iSFVuaXRzIDog JHVuaXRzOw0KCQl9DQoJfQ0KDQoJLy8gU2V0IHVwIHRoZSB0aHVtYnRleHQgcG9zaXRpb25z DQoJJHBvc0FycmF5ID0gYXJyYXkoKTsNCgkkc2hvd29wdHMgPSBkb19saXN0KCR0aHVtYnRl eHQsICRkZWxpbSk7DQoJZm9yZWFjaCAoJHNob3dvcHRzIGFzICRpdGVtKSB7DQoJCSRzaG93 cG9zID0gZG9fbGlzdCgkaXRlbSwgJHBhcmFtZGVsaW0pOw0KCQlpZiAoY291bnQoJHNob3dw b3MpID4gMSAmJiBpbl9hcnJheSgkc2hvd3Bvc1swXSwkc2hvd0xvY3MpKSB7DQoJCQkkcG9z QXJyYXlbJHNob3dwb3NbMF1dID0gJHNob3dwb3NbMV07DQoJCX0gZWxzZSB7DQoJCQkkcG9z QXJyYXlbJHNob3dMb2NzWzBdXSA9ICgoY291bnQoJHNob3dwb3MpPjEpID8gJHNob3dwb3Nb MV0gOiAkc2hvd3Bvc1swXSk7DQoJCX0NCgl9DQoNCgkvLyBDb25zdHJ1Y3QgdGhlIG91dHB1 dA0KCSRmaWVsZFJFID0gJy9cPygnLmltcGxvZGUoJ3wnLCAkZmllbGRNYXApLid8dXJsKS8n Ow0KCSR0aHVtYnRleHRQbGF0ZSA9ICgoJHRodW1idGV4dHdyYXApID8gJzwnIC4gJHRodW1i dGV4dHdyYXAgLiAoKCR0aHVtYnRleHRjbGFzcyAhPSAiIikgPyAnIGNsYXNzPSInIC4kdGh1 bWJ0ZXh0Y2xhc3MuICciJyA6ICcnKSAuICc+JyA6ICcnKSAuJHRodW1iaG9sZGVyLiAoKCR0 aHVtYnRleHR3cmFwKSA/ICc8LycgLiAkdGh1bWJ0ZXh0d3JhcC4gJz4nIDogJycpOw0KCSRv dXRTdHIgPSAnJzsNCg0KCWlmICgkZGVidWcpIHsNCgkJZG1wKCRycyk7DQoJfQ0KDQoJaWYo JHJzKSB7DQoJCSR0aHVtYnRleHRDdXJyPSIiOw0KCQlmb3JlYWNoKCRycyBhcyAkcm93KSB7 DQoJCQkkdGhlVGh1bWIgPSBodS4kaW1nX2Rpci4nLycgLiAkcm93WydpZCddIC4gJHRodW1i bW9kIC4gJHJvd1snZXh0J107DQoJCQkkZnVsbCA9IGh1LiRpbWdfZGlyLicvJyAuICRyb3db J2lkJ10gLiAkZnVsbG1vZCAuJHJvd1snZXh0J107DQoJCQlpZiAoJGdyb3VwbmFtZSA9PT0g Ij9jIikgew0KCQkJCSRncnAgPSAkcm93WydjYXRlZ29yeSddOw0KCQkJfSBlbHNlIGlmICgk Z3JvdXBuYW1lID09PSAiP2lkIikgew0KCQkJCSRncnAgPSAkcm93WydpZCddOw0KCQkJfSBl bHNlIGlmICgkZ3JvdXBuYW1lID09PSAiP2F1dGhvciIpIHsNCgkJCQkkZ3JwID0gJHJvd1sn YXV0aG9yJ107DQoJCQl9IGVsc2UgaWYgKCRncm91cG5hbWUgPT09ICI/ZGF0ZSIpIHsNCgkJ CQkkZ3JwID0gJHJvd1snZGF0ZSddOw0KCQkJfSBlbHNlIGlmICgkZ3JvdXBuYW1lID09PSAi P2FsdCIpIHsNCgkJCQkkZ3JwID0gJHJvd1snYWx0J107DQoJCQl9IGVsc2UgaWYgKCRncm91 cG5hbWUgPT09ICI/Y2FwdGlvbiIpIHsNCgkJCQkkZ3JwID0gJHJvd1snY2FwdGlvbiddOw0K CQkJfSBlbHNlIGlmICgkZ3JvdXBuYW1lID09PSAiP2V4dCIpIHsNCgkJCQkkZ3JwID0gJHJv d1snZXh0J107DQoJCQl9IGVsc2UgaWYgKCRncm91cG5hbWUgPT09ICI/bmFtZSIpIHsNCgkJ CQkkZ3JwID0gJHJvd1snbmFtZSddOw0KCQkJfSBlbHNlIGlmICgkZ3JvdXBuYW1lID09PSAi P3dpZHRoIikgew0KCQkJCSRncnAgPSAkcm93Wyd3J107DQoJCQl9IGVsc2UgaWYgKCRncm91 cG5hbWUgPT09ICI/aGVpZ2h0Iikgew0KCQkJCSRncnAgPSAkcm93WydoJ107DQoJCQl9IGVs c2UgaWYgKHN1YnN0cigkZ3JvdXBuYW1lLDAsMSkgPT09ICI/Iikgew0KCQkJCS8vIFNwbGl0 IG9mZiB0aGUgZmllbGQgbmFtZSBmcm9tIHRoZSBxdWVzdGlvbiBtYXJrDQoJCQkJJGZpZWxk bmFtZSA9IHN1YnN0cigkZ3JvdXBuYW1lLDEpOw0KCQkJCWlmIChpc3NldCgkdGhpc2FydGlj bGVbJGZpZWxkbmFtZV0pKSB7DQoJCQkJCSRncnAgPSAkdGhpc2FydGljbGVbJGZpZWxkbmFt ZV07DQoJCQkJfSBlbHNlIHsNCgkJCQkJJGdycCA9ICcnOw0KCQkJCX0NCgkJCX0gZWxzZSB7 DQoJCQkJJGdycCA9ICRncm91cG5hbWU7DQoJCQl9DQoNCgkJCS8vIEhhbmRsZSBpbWFnZWNh cHRpb24NCgkJCSRjYXB0aW9uTXNnID0gJGltYWdlY2FwdGlvbjsNCgkJCSRtYXRjaGVzID0g YXJyYXkoKTsNCgkJCSRjdHIgPSBwcmVnX21hdGNoX2FsbCgkZmllbGRSRSwgJGNhcHRpb25N c2csICRtYXRjaGVzLCBQUkVHX1NFVF9PUkRFUik7DQoJCQlmb3IgKCRpZHggPSAwOyAkaWR4 IDwgJGN0cjsgJGlkeCsrKSB7DQoJCQkJJGZpZWxkbmFtZSA9ICRtYXRjaGVzWyRpZHhdWzFd Ow0KCQkJCSRrZXkgPSBhcnJheV9zZWFyY2goJGZpZWxkbmFtZSwgJGZpZWxkTWFwKTsNCgkJ CQlpZiAoJGtleSkgew0KCQkJCQkkcmVwID0gJHJvd1ska2V5XTsNCgkJCQl9IGVsc2UgaWYg KCRmaWVsZG5hbWUgPT0gInVybCIpIHsNCgkJCQkJJHJlcCA9ICRmdWxsOw0KCQkJCX0gZWxz ZSB7DQoJCQkJCSRyZXAgPSAkZmllbGRuYW1lOw0KCQkJCX0NCgkJCQkkY2FwdGlvbk1zZyA9 IHN0cl9yZXBsYWNlKCRtYXRjaGVzWyRpZHhdWzBdLCAkcmVwLCAkY2FwdGlvbk1zZyk7DQoJ CQl9DQoNCgkJCS8vIEhhbmRsZSB0aHVtYnRleHQNCgkJCSR0aHVtYnRleHRBcnJheSA9IGFy cmF5X2NvbWJpbmUoJHNob3dMb2NzLCBhcnJheSgiIiwiIiwiIiwiIiwiIikpOyAvLyBJbml0 aWFsaXNlIGV2ZXJ5IGVsZW1lbnQNCgkJCWZvcmVhY2ggKCRwb3NBcnJheSBhcyAkcG9zID0+ ICR0ZXh0KSB7DQoJCQkJJG1hdGNoZXMgPSBhcnJheSgpOw0KCQkJCSRjdHIgPSBwcmVnX21h dGNoX2FsbCgkZmllbGRSRSwgJHRleHQsICRtYXRjaGVzLCBQUkVHX1NFVF9PUkRFUik7DQoJ CQkJZm9yICgkaWR4ID0gMDsgJGlkeCA8ICRjdHI7ICRpZHgrKykgew0KCQkJCQkkZmllbGRu YW1lID0gJG1hdGNoZXNbJGlkeF1bMV07DQoJCQkJCSRrZXkgPSBhcnJheV9zZWFyY2goJGZp ZWxkbmFtZSwgJGZpZWxkTWFwKTsNCgkJCQkJaWYgKCRrZXkpIHsNCgkJCQkJCSRyZXAgPSAk cm93WyRrZXldOw0KCQkJCQl9IGVsc2UgaWYgKCRmaWVsZG5hbWUgPT0gInVybCIpIHsNCgkJ CQkJCSRyZXAgPSAkZnVsbDsNCgkJCQkJfSBlbHNlIHsNCgkJCQkJCSRyZXAgPSAkZmllbGRu YW1lOw0KCQkJCQl9DQoJCQkJCSR0ZXh0ID0gc3RyX3JlcGxhY2UoJG1hdGNoZXNbJGlkeF1b MF0sICRyZXAsICR0ZXh0KTsNCgkJCQl9DQoJCQkJJHRodW1idGV4dEFycmF5WyRwb3NdID0g JHRleHQ7DQoJCQl9DQoNCgkJCS8vIENvbnN0cnVjdCB0aGUgbGluayBhbmQgcHV0IHRodW1i dGV4dCBpbiB0aGUgYXBwcm9wcmlhdGUgcG9zaXRpb25zDQoJCQkkb3V0U3RyIC49ICgkdGh1 bWJ0ZXh0QXJyYXlbIm9uY2hhbmdlIl0gJiYgJHRodW1idGV4dEFycmF5WyJvbmNoYW5nZSJd ICE9ICR0aHVtYnRleHRDdXJyKSA/IHN0cl9yZXBsYWNlKCR0aHVtYmhvbGRlciwgaHRtbHNw ZWNpYWxjaGFyc19kZWNvZGUoJHRodW1idGV4dEFycmF5WyJvbmNoYW5nZSJdKSwgJHRodW1i dGV4dFBsYXRlKSA6ICcnOw0KCQkJJG91dFN0ciAuPSAoJHdyYXB0YWcgIT0gIiIpID8gJzwn IC4kd3JhcHRhZy4gKCgkY2VsbGNsYXNzICE9ICIiKSA/ICcgY2xhc3M9IicgLiRjZWxsY2xh c3MuICciJyA6ICcnKSAuICc+JyA6ICcnOw0KCQkJJG91dFN0ciAuPSAoJHRodW1idGV4dEFy cmF5WyJhYm92ZSJdKSA/IHN0cl9yZXBsYWNlKCR0aHVtYmhvbGRlciwgaHRtbHNwZWNpYWxj aGFyc19kZWNvZGUoJHRodW1idGV4dEFycmF5WyJhYm92ZSJdKSwgJHRodW1idGV4dFBsYXRl KSA6ICcnOw0KCQkJJG91dFN0ciAuPSAnPGEgaHJlZj0iJy4kZnVsbC4nIicuKCgkdHJpZ2dl ciB8fCAkZ3JwKSA/ICcgcmVsPSInIC4kdHJpZ2dlci4kZ3JwLiAnIicgOiAnJykuJyB0aXRs ZT0iJyAuJGNhcHRpb25Nc2cuICciJyAuKCgkbGlua2NsYXNzICE9ICIiKSA/ICcgY2xhc3M9 IicgLiRsaW5rY2xhc3MuICciJyA6ICcnKS4gJz4nIC4oKCR0aHVtYnRleHRBcnJheVsiYmVm b3JlIl0pID8gc3RyX3JlcGxhY2UoJHRodW1iaG9sZGVyLCBodG1sc3BlY2lhbGNoYXJzX2Rl Y29kZSgkdGh1bWJ0ZXh0QXJyYXlbImJlZm9yZSJdKSwgJHRodW1idGV4dFBsYXRlKSA6ICcn KS4gJzxpbWcgc3JjPSInIC4kdGhlVGh1bWIuICciIGFsdD0iJyAuJHJvd1snYWx0J10uICci JyAuICgoJGltZ2NsYXNzICE9ICIiKSA/ICcgY2xhc3M9IicgLiRpbWdjbGFzcy4gJyInIDog JycpIC4gKCgkdGh1bWJXaWR0aCkgPyAnIHdpZHRoPSInIC4gJHRodW1iV2lkdGguJHRodW1i V1VuaXRzLiAnIicgOiAnJykgLiAoKCR0aHVtYkhlaWdodCkgPyAnIGhlaWdodD0iJyAuICR0 aHVtYkhlaWdodC4kdGh1bWJIVW5pdHMuICciJyA6ICcnKSAuICcgLz4nIC4oKCR0aHVtYnRl eHRBcnJheVsiYWZ0ZXIiXSkgPyBzdHJfcmVwbGFjZSgkdGh1bWJob2xkZXIsIGh0bWxzcGVj aWFsY2hhcnNfZGVjb2RlKCR0aHVtYnRleHRBcnJheVsiYWZ0ZXIiXSksICR0aHVtYnRleHRQ bGF0ZSkgOiAnJykuICc8L2E+Jy5uOw0KCQkJJG91dFN0ciAuPSAoJHRodW1idGV4dEFycmF5 WyJiZWxvdyJdKSA/IHN0cl9yZXBsYWNlKCR0aHVtYmhvbGRlciwgaHRtbHNwZWNpYWxjaGFy c19kZWNvZGUoJHRodW1idGV4dEFycmF5WyJiZWxvdyJdKSwgJHRodW1idGV4dFBsYXRlKSA6 ICcnOw0KCQkJJG91dFN0ciAuPSAoJHdyYXB0YWcgIT0gIiIpID8gJzwvJyAuJHdyYXB0YWcu ICc+JyA6ICcnOw0KCQkJJG91dFN0ciAuPSBuOw0KCQkJJHRodW1idGV4dEN1cnIgPSAkdGh1 bWJ0ZXh0QXJyYXlbIm9uY2hhbmdlIl07DQoJCX0NCg0KCQkvLyBBZGQgdGhlIHBhZ2luZyBm ZWF0dXJlcyBpZiByZXF1aXJlZA0KCQlpZiAoKCRsaW1pdCA+IDApICYmICRzaG93cGFnZWxp bmtzKSB7DQoJCQkkbmV4dCA9ICgkbnVtUGFnZXMgPiAxICYmICR0aHVtYnBhZ2UgIT0gJG51 bVBhZ2VzKTsNCgkJCSRwcmV2ID0gKCRudW1QYWdlcyA+IDEgJiYgJHRodW1icGFnZSA+IDEp Ow0KDQoJCQkvLyBSZXBsYWNlIGFueSBwYWdpbmcgaW5mbyBpbiB0aGUgcXVlcnkgc3RyaW5n DQoJCQkkcHJldlBhZ2UgPSBzbWRfYWRkUVNWYXIoJHByZXRleHRbJ3JlcXVlc3RfdXJpJ10s ICRnYWxsSUQsICR0aHVtYnBhZ2UtMSk7DQoJCQkkbmV4dFBhZ2UgPSBzbWRfYWRkUVNWYXIo JHByZXRleHRbJ3JlcXVlc3RfdXJpJ10sICRnYWxsSUQsICR0aHVtYnBhZ2UrMSk7DQoNCgkJ CSRvdXRTdHIgLj0gKCRuYXZ3cmFwdGFnICE9ICIiKSA/ICc8JyAuJG5hdndyYXB0YWcuICgo JG5hdmNsYXNzICE9ICIiKSA/ICcgY2xhc3M9IicgLiRuYXZjbGFzcy4gJyInIDogJycpIC4g Jz4nIDogJyc7DQoJCQkkb3V0U3RyIC49ICgkcHJldikgPyAnPGEnIC4gKCgkcHJldmNsYXNz ICE9ICIiKSA/ICcgY2xhc3M9IicgLiRwcmV2Y2xhc3MuICciJyA6ICcnKSAuICcgaHJlZj0i JyAuJHByZXZQYWdlLiAnIj4nIC4kcHJldmxhYmVsLiAnPC9hPicubiA6ICcnOw0KCQkJJG91 dFN0ciAuPSAoJG5leHQpID8gJzxhJyAuICgoJG5leHRjbGFzcyAhPSAiIikgPyAnIGNsYXNz PSInIC4kbmV4dGNsYXNzLiAnIicgOiAnJykgLiAnIGhyZWY9IicgLiRuZXh0UGFnZS4gJyI+ JyAuJG5leHRsYWJlbC4gJzwvYT4nLm4gOiAnJzsNCgkJCSRvdXRTdHIgLj0gKCRuYXZ3cmFw dGFnICE9ICIiKSA/ICc8LycgLiRuYXZ3cmFwdGFnLiAnPicgOiAnJzsNCgkJCSRvdXRTdHIg Lj0gbjsNCgkJfQ0KCX0NCg0KCXJldHVybiAkb3V0U3RyOw0KfSI7czo0OiJ0eXBlIjtzOjE6 IjAiO3M6NToiZmxhZ3MiO3M6MToiMCI7czo1OiJvcmRlciI7czoxOiI1IjtzOjM6Im1kNSI7 czozMjoiZDM5MmQ0ZWNhZDEzYmRlNjExMjg4N2UxN2FkMmQ2NDgiO30=