PCFkb2N0eXBlIGh0bWwgcHVibGljICItLy93M2MvL2R0ZCBodG1sIDQuMCB0cmFuc2l0aW9uYWwvL2VuIj4KPGh0bWw+CjxoZWFkPgo8bWV0YSBodHRwLWVxdWl2PUNvbnRlbnQtVHlwZSBjb250ZW50PSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9aXNvLTg4NTktMSI+Cjx0aXRsZT5SZWFkTWUgZm9yIElDVTwvdGl0bGU+CjwvaGVhZD4KCjxib2R5IGxhbmc9ImVuLVVTIj4KCjxkaXYgY2xhc3M9U2VjdGlvbjE+Cgo8aDI+UmVhZE1lOiBJbnRlcm5hdGlvbmFsIENvbXBvbmVudHMgZm9yIFVuaWNvZGU8L2gyPgoKPHA+VmVyc2lvbjogRmVicnVhcnkgMSwgMjAwMDwvcD4KCgo8ZGl2IGNsYXNzPU1zb05vcm1hbCBhbGlnbj1jZW50ZXIgc3R5bGU9J3RleHQtYWxpZ246Y2VudGVyJz4KCjxociBzaXplPTIgd2lkdGg9IjEwMCUiIGFsaWduPWNlbnRlcj4KCjwvZGl2PgoKCjxwPkNPUFlSSUdIVDogPGJyPgpDb3B5cmlnaHQgKGMpIDE5OTctMjAwMCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCBvdGhlcnMuCkFsbCBSaWdodHMgUmVzZXJ2ZWQuPC9wPgoKCjxkaXYgY2xhc3M9TXNvTm9ybWFsIGFsaWduPWNlbnRlciBzdHlsZT0ndGV4dC1hbGlnbjpjZW50ZXInPgoKPGhyIHNpemU9MiB3aWR0aD0iMTAwJSIgYWxpZ249Y2VudGVyPgoKPC9kaXY+CgoKPHA+PGJyPgombmJzcDsgJm5ic3A7IDwvcD4KCjxoMz48dT5Db250ZW50czwvdT48L2gzPgoKPHVsIHR5cGU9ZGlzYz4KIDxsaSBjbGFzcz1Nc29Ob3JtYWwgc3R5bGU9J21zby1tYXJnaW4tdG9wLWFsdDphdXRvO21zby1tYXJnaW4tYm90dG9tLWFsdDphdXRvOwogICAgIG1zby1saXN0OmwzIGxldmVsMSBsZm8zO3RhYi1zdG9wczpsaXN0IC41aW4nPjxhIGhyZWY9IiNpbnRyb2R1Y3Rpb24iPkludHJvZHVjdGlvbjwvYT48L2xpPgogPGxpIGNsYXNzPU1zb05vcm1hbCBzdHlsZT0nbXNvLW1hcmdpbi10b3AtYWx0OmF1dG87bXNvLW1hcmdpbi1ib3R0b20tYWx0OmF1dG87CiAgICAgbXNvLWxpc3Q6bDMgbGV2ZWwxIGxmbzM7dGFiLXN0b3BzOmxpc3QgLjVpbic+PGEgaHJlZj0iI1doYXRDb250YWluIj5XaGF0CiAgICAgdGhlIEludGVybmF0aW9uYWwgQ29tcG9uZW50cyBmb3IgVW5pY29kZSBDb250YWluPC9hPjwvbGk+CiA8bGkgY2xhc3M9TXNvTm9ybWFsIHN0eWxlPSdtc28tbWFyZ2luLXRvcC1hbHQ6YXV0bzttc28tbWFyZ2luLWJvdHRvbS1hbHQ6YXV0bzsKICAgICBtc28tbGlzdDpsMyBsZXZlbDEgbGZvMzt0YWItc3RvcHM6bGlzdCAuNWluJz48YSBocmVmPSIjQVBJIj5BUEkgb3ZlcnZpZXc8L2E+PC9saT4KIDxsaSBjbGFzcz1Nc29Ob3JtYWwgc3R5bGU9J21zby1tYXJnaW4tdG9wLWFsdDphdXRvO21zby1tYXJnaW4tYm90dG9tLWFsdDphdXRvOwogICAgIG1zby1saXN0OmwzIGxldmVsMSBsZm8zO3RhYi1zdG9wczpsaXN0IC41aW4nPjxhCiAgICAgaHJlZj0iI1BsYXRmb3JtRGVwZW5kZW5jaWVzIj5QbGF0Zm9ybSBEZXBlbmRlbmNpZXM8L2E+PC9saT4KIDxsaSBjbGFzcz1Nc29Ob3JtYWwgc3R5bGU9J21zby1tYXJnaW4tdG9wLWFsdDphdXRvO21zby1tYXJnaW4tYm90dG9tLWFsdDphdXRvOwogICAgIG1zby1saXN0OmwzIGxldmVsMSBsZm8zO3RhYi1zdG9wczpsaXN0IC41aW4nPjxhIGhyZWY9IiNJbXBvcnRhbnROb3RlcyI+SW1wb3J0YW50CiAgICAgSW5zdGFsbGF0aW9uIE5vdGVzPC9hPjwvbGk+CiA8bGkgY2xhc3M9TXNvTm9ybWFsIHN0eWxlPSdtc28tbWFyZ2luLXRvcC1hbHQ6YXV0bzttc28tbWFyZ2luLWJvdHRvbS1hbHQ6YXV0bzsKICAgICBtc28tbGlzdDpsMyBsZXZlbDEgbGZvMzt0YWItc3RvcHM6bGlzdCAuNWluJz48YSBocmVmPSIjSG93VG9JbnN0YWxsIj5Ib3cKICAgICB0byBJbnN0YWxsL0J1aWxkPC9hPjwvbGk+CiA8bGkgY2xhc3M9TXNvTm9ybWFsIHN0eWxlPSdtc28tbWFyZ2luLXRvcC1hbHQ6YXV0bzttc28tbWFyZ2luLWJvdHRvbS1hbHQ6YXV0bzsKICAgICBtc28tbGlzdDpsMyBsZXZlbDEgbGZvMzt0YWItc3RvcHM6bGlzdCAuNWluJz48YSBocmVmPSIjZGF0YWhhbmRsaW5nIj5Ib3cKICAgICBJQ1UgaGFuZGxlcyBkYXRhPC9hPjwvbGk+CiA8bGkgY2xhc3M9TXNvTm9ybWFsIHN0eWxlPSdtc28tbWFyZ2luLXRvcC1hbHQ6YXV0bzttc28tbWFyZ2luLWJvdHRvbS1hbHQ6YXV0bzsKICAgICBtc28tbGlzdDpsMyBsZXZlbDEgbGZvMzt0YWItc3RvcHM6bGlzdCAuNWluJz48YSBocmVmPSIjQ2hhcnNldENvbnZlcnQiPkNoYXJhY3RlcgogICAgIFNldCBDb252ZXJzaW9uIEluZm9ybWF0aW9uPC9hPjwvbGk+CiA8bGkgY2xhc3M9TXNvTm9ybWFsIHN0eWxlPSdtc28tbWFyZ2luLXRvcC1hbHQ6YXV0bzttc28tbWFyZ2luLWJvdHRvbS1hbHQ6YXV0bzsKICAgICBtc28tbGlzdDpsMyBsZXZlbDEgbGZvMzt0YWItc3RvcHM6bGlzdCAuNWluJz48YSBocmVmPSIjUHJvZ3JhbW1pbmdOb3RlcyI+UHJvZ3JhbW1pbmcKICAgICBOb3RlczwvYT48L2xpPgogPGxpIGNsYXNzPU1zb05vcm1hbCBzdHlsZT0nbXNvLW1hcmdpbi10b3AtYWx0OmF1dG87bXNvLW1hcmdpbi1ib3R0b20tYWx0OmF1dG87CiAgICAgbXNvLWxpc3Q6bDMgbGV2ZWwxIGxmbzM7dGFiLXN0b3BzOmxpc3QgLjVpbic+PGEgaHJlZj0iI1doZXJlVG9GaW5kTW9yZSI+V2hlcmUKICAgICB0byBGaW5kIE1vcmUgSW5mb3JtYXRpb248L2E+PC9saT4KIDxsaSBjbGFzcz1Nc29Ob3JtYWwgc3R5bGU9J21zby1tYXJnaW4tdG9wLWFsdDphdXRvO21zby1tYXJnaW4tYm90dG9tLWFsdDphdXRvOwogICAgIG1zby1saXN0OmwzIGxldmVsMSBsZm8zO3RhYi1zdG9wczpsaXN0IC41aW4nPjxhIGhyZWY9IiNTdWJtaXR0aW5nQ29tbWVudHMiPlN1Ym1pdHRpbmcKICAgICBDb21tZW50cywgUmVxdWVzdGluZyBGZWF0dXJlcyBhbmQgUmVwb3J0aW5nIEJ1Z3M8L2E+PC9saT4KPC91bD4KCjxoMz48YSBuYW1lPWludHJvZHVjdGlvbj48L2E+PHU+SW50cm9kdWN0aW9uPC91PjwvaDM+Cgo8cD5Ub2RheSdzIHNvZnR3YXJlIG1hcmtldCBpcyBhIGdsb2JhbCBvbmUgaW4gd2hpY2ggaXQgaXMgZGVzaXJhYmxlIHRvIGRldmVsb3AKYW5kIG1haW50YWluIG9uZSBhcHBsaWNhdGlvbiB0aGF0IHN1cHBvcnRzIGEgd2lkZSB2YXJpZXR5IG9mIG5hdGlvbmFsCmxhbmd1YWdlcy4gSW50ZXJuYXRpb25hbCBDb21wb25lbnRzIGZvciBVbmljb2RlIHByb3ZpZGVzIHRoZSBmb2xsb3dpbmcgdG9vbHMgdG8KaGVscCB5b3Ugd3JpdGUgbGFuZ3VhZ2UgaW5kZXBlbmRlbnQgYXBwbGljYXRpb25zOiA8L3A+Cgo8dWwgdHlwZT1kaXNjPgogPGxpIGNsYXNzPU1zb05vcm1hbCBzdHlsZT0nbXNvLW1hcmdpbi10b3AtYWx0OmF1dG87bXNvLW1hcmdpbi1ib3R0b20tYWx0OmF1dG87CiAgICAgbXNvLWxpc3Q6bDUgbGV2ZWwxIGxmbzY7dGFiLXN0b3BzOmxpc3QgLjVpbic+VW5pY29kZVN0cmluZyBzdXBwb3J0aW5nIHRoZQogICAgIFVuaWNvZGUgMy4wIHN0YW5kYXJkPC9saT4KIDxsaSBjbGFzcz1Nc29Ob3JtYWwgc3R5bGU9J21zby1tYXJnaW4tdG9wLWFsdDphdXRvO21zby1tYXJnaW4tYm90dG9tLWFsdDphdXRvOwogICAgIG1zby1saXN0Omw1IGxldmVsMSBsZm82O3RhYi1zdG9wczpsaXN0IC41aW4nPlJlc291cmNlIGJ1bmRsZXMgZm9yIHN0b3JpbmcKICAgICBhbmQgYWNjZXNzaW5nIGxvY2FsaXplZCBpbmZvcm1hdGlvbjwvbGk+CiA8bGkgY2xhc3M9TXNvTm9ybWFsIHN0eWxlPSdtc28tbWFyZ2luLXRvcC1hbHQ6YXV0bzttc28tbWFyZ2luLWJvdHRvbS1hbHQ6YXV0bzsKICAgICBtc28tbGlzdDpsNSBsZXZlbDEgbGZvNjt0YWItc3RvcHM6bGlzdCAuNWluJz5OdW1iZXIgZm9ybWF0dGVycyBmb3IKICAgICBjb252ZXJ0aW5nIGJpbmFyeSBudW1iZXJzIGludG8gdGV4dCBzdHJpbmdzIGZvciBtZWFuaW5nZnVsIGRpc3BsYXk8L2xpPgogPGxpIGNsYXNzPU1zb05vcm1hbCBzdHlsZT0nbXNvLW1hcmdpbi10b3AtYWx0OmF1dG87bXNvLW1hcmdpbi1ib3R0b20tYWx0OmF1dG87CiAgICAgbXNvLWxpc3Q6bDUgbGV2ZWwxIGxmbzY7dGFiLXN0b3BzOmxpc3QgLjVpbic+RGF0ZSBhbmQgdGltZSBmb3JtYXR0ZXJzIGZvcgogICAgIGNvbnZlcnRpbmcgaW50ZXJuYWwgdGltZSBkYXRhIGludG8gdGV4dCBzdHJpbmdzIGZvciBtZWFuaW5nZnVsIGRpc3BsYXk8L2xpPgogPGxpIGNsYXNzPU1zb05vcm1hbCBzdHlsZT0nbXNvLW1hcmdpbi10b3AtYWx0OmF1dG87bXNvLW1hcmdpbi1ib3R0b20tYWx0OmF1dG87CiAgICAgbXNvLWxpc3Q6bDUgbGV2ZWwxIGxmbzY7dGFiLXN0b3BzOmxpc3QgLjVpbic+TWVzc2FnZSBmb3JtYXR0ZXJzIGZvcgogICAgIHB1dHRpbmcgdG9nZXRoZXIgc2VxdWVuY2VzIG9mIHN0cmluZ3MsIG51bWJlcnMgZGF0ZXMgYW5kIG90aGVyIGZvcm1hdCB0bwogICAgIGNyZWF0ZSBtZXNzYWdlczwvbGk+CiA8bGkgY2xhc3M9TXNvTm9ybWFsIHN0eWxlPSdtc28tbWFyZ2luLXRvcC1hbHQ6YXV0bzttc28tbWFyZ2luLWJvdHRvbS1hbHQ6YXV0bzsKICAgICBtc28tbGlzdDpsNSBsZXZlbDEgbGZvNjt0YWItc3RvcHM6bGlzdCAuNWluJz5UZXh0IGNvbGxhdGlvbiBzdXBwb3J0aW5nCiAgICAgbGFuZ3VhZ2Ugc2Vuc2l0aXZlIGNvbXBhcmlzb24gb2Ygc3RyaW5nczwvbGk+CiA8bGkgY2xhc3M9TXNvTm9ybWFsIHN0eWxlPSdtc28tbWFyZ2luLXRvcC1hbHQ6YXV0bzttc28tbWFyZ2luLWJvdHRvbS1hbHQ6YXV0bzsKICAgICBtc28tbGlzdDpsNSBsZXZlbDEgbGZvNjt0YWItc3RvcHM6bGlzdCAuNWluJz5UZXh0IGJvdW5kYXJ5IGFuYWx5c2lzIGZvcgogICAgIGZpbmRpbmcgY2hhcmFjdGVycywgd29yZCBhbmQgc2VudGVuY2UgYm91bmRhcmllczwvbGk+CiA8bGkgY2xhc3M9TXNvTm9ybWFsIHN0eWxlPSdtc28tbWFyZ2luLXRvcC1hbHQ6YXV0bzttc28tbWFyZ2luLWJvdHRvbS1hbHQ6YXV0bzsKICAgICBtc28tbGlzdDpsNSBsZXZlbDEgbGZvNjt0YWItc3RvcHM6bGlzdCAuNWluJz5DaGFuZ2luZyBzaW1wbGUgZGF0YSBmaWxlcwogICAgIHJhdGhlciB0aGFuIG1vZGlmeWluZyBwcm9ncmFtIGNvZGUgZWFzaWx5IGxvY2FsaXplcyBhcHBsaWNhdGlvbnMgd3JpdHRlbgogICAgIHVzaW5nIHRoZXNlIHRvb2xzPC9saT4KIDxsaSBjbGFzcz1Nc29Ob3JtYWwgc3R5bGU9J21zby1tYXJnaW4tdG9wLWFsdDphdXRvO21zby1tYXJnaW4tYm90dG9tLWFsdDphdXRvOwogICAgIG1zby1saXN0Omw1IGxldmVsMSBsZm82O3RhYi1zdG9wczpsaXN0IC41aW4nPk92ZXIgMTUwIGxvY2FsZXMgc3VwcG9ydGVkLgogICAgIFZpc2l0IDxhCiAgICAgaHJlZj0iaHR0cDovL29zcy5zb2Z0d2FyZS5pYm0uY29tL2RldmVsb3BlcndvcmtzL29wZW5zb3VyY2UvaWN1L2xvY2FsZWV4cGxvcmVyIj5Mb2NhbGVFeHBsb3JlcgogICAgIChodHRwOi8vb3NzLnNvZnR3YXJlLmlibS5jb20vZGV2ZWxvcGVyd29ya3Mvb3BlbnNvdXJjZS9pY3UvbG9jYWxlZXhwbG9yZXIpPC9hPgogICAgIHNpdGUgZm9yIGEgZGVtb25zdHJhdGlvbiBhbmQgYSBmdWxsIGxpc3Qgb2Ygc3VwcG9ydGVkIGxvY2FsZXMgb3IgPGEKICAgICBocmVmPSJkb2NzL3N1cHBfbG9jLmh0bWwiPmNsaWNrIGhlcmUgZm9yIGEgdGFibGUgb2Ygc3VwcG9ydGVkIGxvY2FsZXM8L2E+LjwvbGk+CjwvdWw+Cgo8cD5JdCBpcyBwb3NzaWJsZSB0byBzdXBwb3J0IGFkZGl0aW9uYWwgbG9jYWxlcyBieSBhZGRpbmcgbW9yZSBsb2NhbGUgZGF0YQpmaWxlcywgd2l0aCBubyBjb2RlIGNoYW5nZXMuIDwvcD4KCjxwPlBsZWFzZSByZWZlciB0byBQT1NJWCBwcm9ncmFtbWVyJ3MgR3VpZGUgZm9yIGRldGFpbHMgb24gd2hhdCB0aGUgSVNPIGxvY2FsZQpJRCBtZWFucy4gPC9wPgoKPHA+WW91ciBjb21tZW50cyBhcmUgaW1wb3J0YW50IHRvIG1ha2luZyB0aGlzIHJlbGVhc2Ugc3VjY2Vzc2Z1bC4mbmJzcDsgV2UgYXJlCmNvbW1pdHRlZCB0byBmaXhpbmcgYW55IGJ1Z3MsIGFuZCB3aWxsIGFsc28gdXNlIHlvdXIgZmVlZGJhY2sgdG8gaGVscCBwbGFuCmZ1dHVyZSByZWxlYXNlcy4gPC9wPgoKPHAgc3R5bGU9J21hcmdpbi1yaWdodDouNWluO21hcmdpbi1sZWZ0Oi41aW4nPjxiPjx1PklNUE9SVEFOVDwvdT46IFBsZWFzZSBtYWtlCnN1cmUgeW91IHVuZGVyc3RhbmQgdGhlIDxhIGhyZWY9ImxpY2Vuc2UuaHRtbCI+Q29weXJpZ2h0IGFuZCBMaWNlbnNlCmluZm9ybWF0aW9uPC9hPi48L2I+PC9wPgoKPHAgc3R5bGU9J21hcmdpbi1yaWdodDouNWluO21hcmdpbi1sZWZ0Oi41aW4nPiZuYnNwOzwvcD4KCjxoMz48YSBuYW1lPVdoYXRDb250YWluPjwvYT48dT5XaGF0IHRoZSBJbnRlcm5hdGlvbmFsIENvbXBvbmVudHMgZm9yIFVuaWNvZGUKQ29udGFpbjwvdT48L2gzPgoKPHA+VGhlcmUgYXJlIHR3byB3YXlzIHRvIGRvd25sb2FkIHRoZSBJQ1UgcmVsZWFzZXMsIDwvcD4KCjx1bCB0eXBlPWRpc2M+CiA8bGkgY2xhc3M9TXNvTm9ybWFsIHN0eWxlPSdtc28tbWFyZ2luLXRvcC1hbHQ6YXV0bzttc28tbWFyZ2luLWJvdHRvbS1hbHQ6YXV0bzsKICAgICBtc28tbGlzdDpsMTAgbGV2ZWwxIGxmbzk7dGFiLXN0b3BzOmxpc3QgLjVpbic+PHN0cm9uZz5PZmZpY2lhbCBSZWxlYXNlCiAgICAgU25hcHNob3Q6PC9zdHJvbmc+PGI+PGJyPgogICAgIDwvYj5JZiB5b3Ugd2FudCB0byB1c2UgSUNVIChhcyBvcHBvc2VkIHRvIGRldmVsb3BpbmcgaXQpLCB5b3VyIGJlc3QgYmV0IGlzCiAgICAgdG8gZG93bmxvYWQgYW4gb2ZmaWNpYWwsIHBhY2thZ2VkIElDVSB2ZXJzaW9uIG9mIHRoZSBJQ1Ugc291cmNlCiAgICAgY29kZS4mbmJzcDsgVGhlc2UgdmVyc2lvbnMgYXJlIHRlc3RlZCBtb3JlIHRob3JvdWdobHkgdGhhbiBkYXktdG8tZGF5CiAgICAgZGV2ZWxvcG1lbnQgYnVpbGRzIG9mIHRoZSBzeXN0ZW0sIGFuZCB0aGV5IGFyZSBwYWNrYWdlZCBpbiB6aXAgYW5kIHRhcgogICAgIGZpbGVzIGZvciBjb252ZW5pZW50IGRvd25sb2FkLiZuYnNwOyBUaGVzZSBwYWNrYWdlZCBmaWxlcyBjYW4gYmUgZm91bmQgYXQgPGEKICAgICBocmVmPSJodHRwOi8vb3NzLnNvZnR3YXJlLmlibS5jb20vaWN1L2Rvd25sb2FkL2luZGV4Lmh0bWwiPmh0dHA6Ly9vc3Muc29mdHdhcmUuaWJtLmNvbS9pY3UvZG93bmxvYWQvaW5kZXguaHRtbDwvYT4uPGJyPgogICAgIElmIHBhY2thZ2VkIHNuYXBzaG90IGlzIG5hbWVkIDxiPklDVVhYWFhYWC56aXAgPC9iPiwgWFhYWFhYIGlzIHRoZSByZWxlYXNlCiAgICAgdmVyc2lvbiBudW1iZXIuPGJyPgogICAgIFBsZWFzZSB1bnppcCB0aGlzIGZpbGUuJm5ic3A7IEl0IHdpbGwgcmUtY29uc3RydWN0IHRoZSBzb3VyY2UgZGlyZWN0b3J5LiA8L2xpPgogPGxpIGNsYXNzPU1zb05vcm1hbCBzdHlsZT0nbXNvLW1hcmdpbi10b3AtYWx0OmF1dG87bXNvLW1hcmdpbi1ib3R0b20tYWx0OmF1dG87CiAgICAgbXNvLWxpc3Q6bDEwIGxldmVsMSBsZm85O3RhYi1zdG9wczpsaXN0IC41aW4nPjxzdHJvbmc+Q1ZTIFNvdXJjZQogICAgIFJlcG9zaXRvcnk6PC9zdHJvbmc+PGI+PGJyPgogICAgIDwvYj5JZiB5b3UgYXJlIGludGVyZXN0ZWQgaW4gZGV2ZWxvcGluZyBmZWF0dXJlcywgcGF0Y2hlcywgb3IgYnVnIGZpeGVzCiAgICAgZm9yIElDVSwgeW91IHNob3VsZCBwcm9iYWJseSBiZSB3b3JraW5nIHdpdGggdGhlIGxhdGVzdCB2ZXJzaW9uIG9mIHRoZSBJQ1UKICAgICBzb3VyY2UgY29kZS4gWW91IHdpbGwgbmVlZCB0byBjaGVjayB0aGUgY29kZSBvdXQgb2Ygb3VyIENWUyByZXBvc2l0b3J5IHRvCiAgICAgZW5zdXJlIHRoYXQgeW91IGhhdmUgdGhlIG1vc3QgcmVjZW50IHZlcnNpb24gb2YgYWxsIG9mIHRoZSBmaWxlcy4gVGhlcmUKICAgICBhcmUgc2V2ZXJhbCB3YXlzIHRvIGRvIHRoaXM6PC9saT4KIDx1bCB0eXBlPWNpcmNsZT4KICA8bGkgY2xhc3M9TXNvTm9ybWFsIHN0eWxlPSdtc28tbWFyZ2luLXRvcC1hbHQ6YXV0bzttc28tbWFyZ2luLWJvdHRvbS1hbHQ6CiAgICAgIGF1dG87bXNvLWxpc3Q6bDEwIGxldmVsMiBsZm85O3RhYi1zdG9wczpsaXN0IDEuMGluJz5XZWJDVlM6PGJyPgogICAgICBJZiB5b3Ugd2FudCB0byBicm93c2UgdGhlIGNvZGUgYW5kIG9ubHkgbWFrZSBvY2Nhc2lvbmFsIGRvd25sb2FkcywgeW91CiAgICAgIG1heSB3YW50IHRvIHVzZSBXZWJDVlMuIEl0IHByb3ZpZGVzIGEgY29udmVuaWVudCwgd2ViLWJhc2VkIGludGVyZmFjZSBmb3IKICAgICAgYnJvd3NpbmcgYW5kIGRvd25sb2FkaW5nIHRoZSBsYXRlc3QgdmVyc2lvbiBvZiB0aGUgSUNVIHNvdXJjZSBjb2RlIGFuZAogICAgICBkb2N1bWVudGF0aW9uLiBZb3UgY2FuIGFsc28gdmlldyBlYWNoIGZpbGUncyByZXZpc2lvbiBoaXN0b3J5LCBkaXNwbGF5CiAgICAgIHRoZSBkaWZmZXJlbmNlcyBiZXR3ZWVuIGluZGl2aWR1YWwgcmV2aXNpb25zLCBkZXRlcm1pbmUgd2hpY2ggcmV2aXNpb25zCiAgICAgIHdlcmUgcGFydCBvZiB3aGljaCBvZmZpY2lhbCByZWxlYXNlLCBhbmQgc28gb24uIDwvbGk+CiAgPGxpIGNsYXNzPU1zb05vcm1hbCBzdHlsZT0nbXNvLW1hcmdpbi10b3AtYWx0OmF1dG87bXNvLW1hcmdpbi1ib3R0b20tYWx0OgogICAgICBhdXRvO21zby1saXN0OmwxMCBsZXZlbDIgbGZvOTt0YWItc3RvcHM6bGlzdCAxLjBpbic+V2luQ1ZTOjxicj4KICAgICAgSWYgeW91IHdpbGwgYmUgZG9pbmcgc2VyaW91cyB3b3JrIG9uIElDVSwgeW91IHNob3VsZCBwcm9iYWJseSBpbnN0YWxsIGEKICAgICAgQ1ZTIGNsaWVudCBvbiB5b3VyIG93biBtYWNoaW5lIHNvIHRoYXQgeW91IGNhbiBkbyBiYXRjaCBvcGVyYXRpb25zCiAgICAgIHdpdGhvdXQgZ29pbmcgdGhyb3VnaCB0aGUgV2ViQ1ZTIGludGVyZmFjZS4gT24gV2luZG93cywgd2Ugc3VnZ2VzdCB0aGUKICAgICAgV2luQ1ZTIGNsaWVudC4gVGhlIGZvbGxvd2luZyBpcyB0aGUgZXhhbXBsZSBpbnN0cnVjdGlvbiBvbiBob3cgdG8gZG93bmxvYWQKICAgICAgSUNVIHZpYSBXaW5DVlM6IDxicj4KICAgICAgMS5JbnN0YWxsIHRoZSBXaW5DVlMgY2xpZW50LCB3aGljaCB5b3UgY2FuIGRvd25sb2FkIGZyb20gdGhlIFdpbkNWUyBob21lCiAgICAgIHBhZ2UuIDxicj4KICAgICAgMi5JbiB0aGUgV2luQ1ZTIHByZWZlcmVuY2VzLCBzcGVjaWZ5IHlvdXIgQ1ZTUm9vdCB0byBiZQogICAgICAmcXVvdDs6cHNlcnZlcjphbm9uY3ZzQG9zcy5zb2Z0d2FyZS5pYm0uY29tOi91c3IvY3ZzL2ljdSZxdW90Ozxicj4KICAgICAgd2l0aCB0aGUgcGFzc3dvcmQgJnF1b3Q7YW5vbmN2cyZxdW90Oy4gVG8gZW50ZXIgdGhlIENWU1Jvb3QgdmFsdWUsIHNlbGVjdAogICAgICAmcXVvdDtQcmVmZXJlbmNlcyZxdW90OyBmcm9tIHRoZSAmcXVvdDtDdnMgQWRtaW4mcXVvdDsgcHVsbC1kb3duIG1lbnUuCiAgICAgICZuYnNwOyZuYnNwOyBBdXRoZW50aWNhdGlvbiBzaG91bGQgYmUgc2V0IHRvICZxdW90OydwYXNzd2QnIGZpbGUgb24gdGhlCiAgICAgIGN2cyBzZXJ2ZXImcXVvdDsuIDxicj4KICAgICAgMy5UbyAmcXVvdDtleHRyYWN0JnF1b3Q7IHRoZSBtb3N0IHJlY2VudCB2ZXJzaW9uIG9mIElDVSwgc2VsZWN0CiAgICAgICZxdW90O0NoZWNrb3V0IG1vZHVsZSZxdW90OyBmcm9tIHRoZSAmcXVvdDtDdnMgQWRtaW4mcXVvdDsgbWVudS4gU3BlY2lmeQogICAgICAmcXVvdDtpY3UmcXVvdDsgZm9yIHRoZSBtb2R1bGUgbmFtZS4gPC9saT4KICA8bGkgY2xhc3M9TXNvTm9ybWFsIHN0eWxlPSdtc28tbWFyZ2luLXRvcC1hbHQ6YXV0bzttc28tbWFyZ2luLWJvdHRvbS1hbHQ6CiAgICAgIGF1dG87bXNvLWxpc3Q6bDEwIGxldmVsMiBsZm85O3RhYi1zdG9wczpsaXN0IDEuMGluJz5DVlMgY29tbWFuZCBsaW5lOjxicj4KICAgICAgWW91IGNhbiBhbHNvIGNoZWNrIG91dCB0aGUgcmVwb3NpdG9yeSBhbm9ueW1vdXNseSBvbiBVTklYIHVzaW5nIHRoZQogICAgICBmb2xsb3dpbmcgY29tbWFuZHMsIGFmdGVyIGZpcnN0IHNldHRpbmcgeW91ciBDVlNST09UIHRvIHBvaW50IHRvIHRoZSBJQ1UKICAgICAgcmVwb3NpdG9yeTogPGJyPgogICAgICA8YnI+CiAgICAgIGV4cG9ydCBDVlNST09UPTpwc2VydmVyOmFub25jdnNAb3NzLnNvZnR3YXJlLmlibS5jb206L3Vzci9jdnMvaWN1PGJyPgogICAgICBjdnMgbG9naW4gQ1ZTIHBhc3N3b3JkOiBhbm9uY3ZzPGJyPgogICAgICBjdnMgY2hlY2tvdXQgaWN1PGJyPgogICAgICBjdnMgbG9nb3V0PC9saT4KIDwvdWw+CjwvdWw+Cgo8cD5Gb3IgbW9yZSBkZXRhaWxzIG9uIGhvdyB0byBkb3dubG9hZCBJQ1UgZGlyZWN0bHkgZnJvbSB0aGUgd2ViIHNpdGUsIHBsZWFzZQphbHNvIHNlZSA8YQpocmVmPSJodHRwOi8vb3NzLnNvZnR3YXJlLmlibS5jb20vaWN1L2Rvd25sb2FkL2luZGV4Lmh0bWwiPmh0dHA6L29zcy5zb2Z0d2FyZS5pYm0uY29tL2ljdS9kb3dubG9hZC9pbmRleC5odG1sPC9hPjwvcD4KCjxwPkJlbG93LCA8Yj4kUm9vdDwvYj4gaXMgdGhlIHBsYWNlbWVudCBvZiB0aGUgaWN1IGRpcmVjdG9yeSBpbiB5b3VyIGZpbGUKc3lzdGVtLCBsaWtlICZxdW90O2RyaXZlOlwuLi5caWN1JnF1b3Q7IGluIHlvdXIgZW52aXJvbm1lbnQuCiZxdW90O2RyaXZlOlwuLi4mcXVvdDsgc3RhbmRzIGZvciBhbnkgZHJpdmUgYW5kIGFueSBkaXJlY3Rvcnkgb24gdGhhdCBkcml2ZQp0aGF0IHlvdSBjaG9zZSB0byBpbnN0YWxsIGljdSBpbnRvLjwvcD4KCjxwPjxiPlRoZSBmb2xsb3dpbmcgZmlsZXMgZGVzY3JpYmUgdGhlIGNvZGUgZHJvcDo8L2I+IDxicj4KJm5ic3A7IDxicj4KJm5ic3A7IDwvcD4KCjx0YWJsZSBib3JkZXI9MSBjZWxscGFkZGluZz0wIHN0eWxlPSdtc28tY2VsbHNwYWNpbmc6MS41cHQ7bXNvLXBhZGRpbmctYWx0OgogMGluIDBpbiAwaW4gMGluJz4KIDx0cj4KICA8dGQgc3R5bGU9J3BhZGRpbmc6Ljc1cHQgLjc1cHQgLjc1cHQgLjc1cHQnPgogIDxwIGNsYXNzPU1zb05vcm1hbD5yZWFkbWUuaHRtbCAodGhpcyBmaWxlKTwvcD4KICA8L3RkPgogIDx0ZCBzdHlsZT0ncGFkZGluZzouNzVwdCAuNzVwdCAuNzVwdCAuNzVwdCc+CiAgPHAgY2xhc3M9TXNvTm9ybWFsPmRlc2NyaWJlcyB0aGUgSW50ZXJuYXRpb25hbCBDb21wb25lbnRzIGZvciBVbmljb2RlPC9wPgogIDwvdGQ+CiA8L3RyPgogPHRyPgogIDx0ZCBzdHlsZT0ncGFkZGluZzouNzVwdCAuNzVwdCAuNzVwdCAuNzVwdCc+CiAgPHAgY2xhc3M9TXNvTm9ybWFsPmxpY2Vuc2UuaHRtbDwvcD4KICA8L3RkPgogIDx0ZCBzdHlsZT0ncGFkZGluZzouNzVwdCAuNzVwdCAuNzVwdCAuNzVwdCc+CiAgPHAgY2xhc3M9TXNvTm9ybWFsPmNvbnRhaW5zIElCTSdzIHB1YmxpYyBsaWNlbnNlPC9wPgogIDwvdGQ+CiA8L3RyPgo8L3RhYmxlPgoKPHA+PGI+VGhlIGZvbGxvd2luZyBkaXJlY3RvcmllcyBjb250YWluIHNvdXJjZSBjb2RlIGFuZCBkYXRhIGZpbGVzOjwvYj4gPGJyPgombmJzcDsgPGJyPgombmJzcDsgPC9wPgoKPHRhYmxlIGJvcmRlcj0xIGNlbGxwYWRkaW5nPTAgd2lkdGg9NjIzIHN0eWxlPSd3aWR0aDo0NjcuMjVwdDttc28tY2VsbHNwYWNpbmc6CiAxLjVwdDttc28tcGFkZGluZy1hbHQ6MGluIDBpbiAwaW4gMGluJz4KIDx0cj4KICA8dGQgd2lkdGg9IjIwJSIgc3R5bGU9J3dpZHRoOjIwLjAlO3BhZGRpbmc6Ljc1cHQgLjc1cHQgLjc1cHQgLjc1cHQnPgogIDxwIGNsYXNzPU1zb05vcm1hbD4kUm9vdFxzb3VyY2VcY29tbW9uXDwvcD4KICA8L3RkPgogIDx0ZCB3aWR0aD0iODAlIiBzdHlsZT0nd2lkdGg6ODAuMCU7cGFkZGluZzouNzVwdCAuNzVwdCAuNzVwdCAuNzVwdCc+CiAgPHAgY2xhc3M9TXNvTm9ybWFsPlRoZSB1dGlsaXR5IGNsYXNzZXMsIHN1Y2ggYXMgUmVzb3VyY2VCdW5kbGUsIFVuaWNvZGUsCiAgTG9jYWxlLCBVbmljb2RlU3RyaW5nLiBUaGUgY29kZXBhZ2UgY29udmVyc2lvbiBsaWJyYXJ5IEFQSSwgVW5pY29kZUNvbnZlcnRlci48L3A+CiAgPC90ZD4KIDwvdHI+CiA8dHI+CiAgPHRkIHdpZHRoPSIyMCUiIHN0eWxlPSd3aWR0aDoyMC4wJTtwYWRkaW5nOi43NXB0IC43NXB0IC43NXB0IC43NXB0Jz4KICA8cCBjbGFzcz1Nc29Ob3JtYWw+JFJvb3Rcc291cmNlXGkxOG5cPC9wPgogIDwvdGQ+CiAgPHRkIHdpZHRoPSI4MCUiIHN0eWxlPSd3aWR0aDo4MC4wJTtwYWRkaW5nOi43NXB0IC43NXB0IC43NXB0IC43NXB0Jz4KICA8cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGNvbGxhdGlvbiBzb3VyY2UgZmlsZXMsIENvbGxhdG9yLCBSdWxlQmFzZWRDb2xsYXRvcgogIGFuZCBDb2xsYXRpb25LZXkuJm5ic3A7IDxicj4KICBUaGUgdGV4dCBib3VuZGFyeSBBUEksIHdoaWNoIGxvY2F0ZXMgY2hhcmFjdGVyLCB3b3JkLCBzZW50ZW5jZSwgYW5kJm5ic3A7IDxicj4KICBsaW5lIGJyZWFrcy4mbmJzcDsgPGJyPgogIFRoZSBmb3JtYXQgQVBJLCB3aGljaCBmb3JtYXRzIGFuZCBwYXJzZXMgZGF0YSBpbiBudW1lcmljIG9yIGRhdGUgZm9ybWF0IHRvCiAgYW5kIGZyb20gdGV4dC48L3A+CiAgPC90ZD4KIDwvdHI+CiA8dHI+CiAgPHRkIHdpZHRoPSIyMCUiIHN0eWxlPSd3aWR0aDoyMC4wJTtwYWRkaW5nOi43NXB0IC43NXB0IC43NXB0IC43NXB0Jz4KICA8cCBjbGFzcz1Nc29Ob3JtYWw+JFJvb3Rcc291cmNlXHRlc3RcaW50bHRlc3RcPC9wPgogIDwvdGQ+CiAgPHRkIHdpZHRoPSI4MCUiIHN0eWxlPSd3aWR0aDo4MC4wJTtwYWRkaW5nOi43NXB0IC43NXB0IC43NXB0IC43NXB0Jz4KICA8cCBjbGFzcz1Nc29Ob3JtYWw+QSB0ZXN0IHN1aXRlIGluY2x1ZGluZyBhbGwgQysrIEFQSXMuIEZvciBpbmZvcm1hdGlvbiBhYm91dAogIHJ1bm5pbmcgdGhlIHRlc3Qgc3VpdGUsIHNlZSA8YSBocmVmPSJkb2NzL2ludGx0ZXN0Lmh0bWwiPmRvY3MvaW50bHRlc3QuaHRtbDwvYT4uPC9wPgogIDwvdGQ+CiA8L3RyPgogPHRyPgogIDx0ZCB3aWR0aD0iMjAlIiBzdHlsZT0nd2lkdGg6MjAuMCU7cGFkZGluZzouNzVwdCAuNzVwdCAuNzVwdCAuNzVwdCc+CiAgPHAgY2xhc3M9TXNvTm9ybWFsPiRSb290L3NvdXJjZS90ZXN0L2NpbnRsdHN0LzwvcD4KICA8L3RkPgogIDx0ZCB3aWR0aD0iODAlIiBzdHlsZT0nd2lkdGg6ODAuMCU7cGFkZGluZzouNzVwdCAuNzVwdCAuNzVwdCAuNzVwdCc+CiAgPHAgY2xhc3M9TXNvTm9ybWFsPkEgdGVzdCBzdWl0ZSBpbmNsdWRpbmcgYWxsIEMgQVBJcy4gRm9yIGluZm9ybWF0aW9uIGFib3V0CiAgcnVubmluZyB0aGUgdGVzdCBzdWl0ZSwgc2VlJm5ic3A7IDxhIGhyZWY9ImRvY3MvY2ludGx0c3QuaHRtbCI+ZG9jcy9jaW50bHRzdC5odG1sLjwvYT48L3A+CiAgPC90ZD4KIDwvdHI+CiA8dHI+CiAgPHRkIHdpZHRoPSIyMCUiIHN0eWxlPSd3aWR0aDoyMC4wJTtwYWRkaW5nOi43NXB0IC43NXB0IC43NXB0IC43NXB0Jz4KICA8cCBjbGFzcz1Nc29Ob3JtYWw+JFJvb3QvZGF0YS88L3A+CiAgPC90ZD4KICA8dGQgd2lkdGg9IjgwJSIgc3R5bGU9J3dpZHRoOjgwLjAlO3BhZGRpbmc6Ljc1cHQgLjc1cHQgLjc1cHQgLjc1cHQnPgogIDxwIGNsYXNzPU1zb05vcm1hbD5UaGUgVW5pY29kZSAzLjAgZGF0YSBmaWxlLiZuYnNwOyBQbGVhc2Ugc2VlIDxhCiAgaHJlZj0iaHR0cDovL3d3dy51bmljb2RlLm9yZy8iPmh0dHA6Ly93d3cudW5pY29kZS5vcmcvPC9hPiBmb3IgbW9yZQogIGluZm9ybWF0aW9uLiZuYnNwOyA8YnI+CiAgVGhpcyBkaXJlY3RvcnkgYWxzbyBjb250YWlucyB0aGUgcmVzb3VyY2UgZmlsZXMgZm9yIGFsbCBpbnRlcm5hdGlvbmFsCiAgb2JqZWN0cy4mbmJzcDsgVGhlc2UgZmlsZXMgYXJlIG9mIHRocmVlIHR5cGVzOiZuYnNwOyA8L3A+CiAgPHVsIHR5cGU9ZGlzYz4KICAgPGxpIGNsYXNzPU1zb05vcm1hbCBzdHlsZT0nbXNvLW1hcmdpbi10b3AtYWx0OmF1dG87bXNvLW1hcmdpbi1ib3R0b20tYWx0OgogICAgICAgYXV0bzttc28tbGlzdDpsMTIgbGV2ZWwxIGxmbzEyO3RhYi1zdG9wczpsaXN0IC41aW4nPlRYVCBmaWxlcyBjb250YWluCiAgICAgICBnZW5lcmFsIGxvY2FsZSBkYXRhLiZuYnNwOzwvbGk+CiAgIDxsaSBjbGFzcz1Nc29Ob3JtYWwgc3R5bGU9J21zby1tYXJnaW4tdG9wLWFsdDphdXRvO21zby1tYXJnaW4tYm90dG9tLWFsdDoKICAgICAgIGF1dG87bXNvLWxpc3Q6bDEyIGxldmVsMSBsZm8xMjt0YWItc3RvcHM6bGlzdCAuNWluJz5SRVMgZmlsZXMgY29udGFpbgogICAgICAgbm9uLXBvcnRhYmxlIGxvY2FsZSBkYXRhIGZpbGVzIHdoaWNoIGFyZSBnZW5lcmF0ZWQgYnkgdGhlIDxzdHJvbmc+Z2VucmI8L3N0cm9uZz4KICAgICAgIHRvb2wuPC9saT4KICAgPGxpIGNsYXNzPU1zb05vcm1hbCBzdHlsZT0nbXNvLW1hcmdpbi10b3AtYWx0OmF1dG87bXNvLW1hcmdpbi1ib3R0b20tYWx0OgogICAgICAgYXV0bzttc28tbGlzdDpsMTIgbGV2ZWwxIGxmbzEyO3RhYi1zdG9wczpsaXN0IC41aW4nPkNPTCBmaWxlcyBhcmUgbm9uLXBvcnRhYmxlCiAgICAgICBwYWNrZWQgYmluYXJ5IGNvbGxhdGlvbiBkYXRhIGZpbGVzIHdoaWNoIGFyZSBjcmVhdGVkIGJ5IHRoZSA8c3Ryb25nPmdlbmNvbDwvc3Ryb25nPgogICAgICAgdG9vbC4mbmJzcDs8L2xpPgogICA8bGkgY2xhc3M9TXNvTm9ybWFsIHN0eWxlPSdtc28tbWFyZ2luLXRvcC1hbHQ6YXV0bzttc28tbWFyZ2luLWJvdHRvbS1hbHQ6CiAgICAgICBhdXRvO21zby1saXN0OmwxMiBsZXZlbDEgbGZvMTI7dGFiLXN0b3BzOmxpc3QgLjVpbic+VUNNIGZpbGVzIHdoaWNoCiAgICAgICBjb250YWluIG1hcHBpbmcgdGFibGVzIHtmcm9tLHRvfSBVbmljb2RlIGluIHRleHQgZm9ybWF0PC9saT4KICAgPGxpIGNsYXNzPU1zb05vcm1hbCBzdHlsZT0nbXNvLW1hcmdpbi10b3AtYWx0OmF1dG87bXNvLW1hcmdpbi1ib3R0b20tYWx0OgogICAgICAgYXV0bzttc28tbGlzdDpsMTIgbGV2ZWwxIGxmbzEyO3RhYi1zdG9wczpsaXN0IC41aW4nPkNOViBmaWxlcyBhcmUKICAgICAgIG5vbi1wb3J0YWJsZSBwYWNrZWQgYmluYXJ5IGNvbnZlcnNpb24gZGF0YSBnZW5lcmF0ZWQgYnkgdGhlIDxzdHJvbmc+bWFrZWNvbnY8L3N0cm9uZz4KICAgICAgIHRvb2wuPC9saT4KICAgPGxpIGNsYXNzPU1zb05vcm1hbCBzdHlsZT0nbXNvLW1hcmdpbi10b3AtYWx0OmF1dG87bXNvLW1hcmdpbi1ib3R0b20tYWx0OgogICAgICAgYXV0bzttc28tbGlzdDpsMTIgbGV2ZWwxIGxmbzEyO3RhYi1zdG9wczpsaXN0IC41aW4nPmljdWRhdGEuZGxsIGZpbGUKICAgICAgIGNvbnRhaW5zIGRhdGEgZmlsZXMgaW4gYSBkeW5hbWljIGxvYWRhYmxlIGxpYnJhcnkgZm9ybWF0LiBBdCB0aGlzCiAgICAgICBtb21lbnQsIHRoaXMgZmlsZSBjb250YWlucyBDTlYgZmlsZXMsIGNvbnZlcnRlciBhbGlhc2VzLCB0aW1lem9uZSBkYXRhCiAgICAgICBhbmQgVW5pY29kZSBjaGFyYWN0ZXIgbmFtZXMuIFBsZWFzZSByZWFkIDxhIGhyZWY9ImRvY3MvdWRhdGEuaHRtbCI+dWRhdGEuaHRtbDwvYT4KICAgICAgIGZvciBtb3JlIGluZm9ybWF0aW9uLjwvbGk+CiAgIDxsaSBjbGFzcz1Nc29Ob3JtYWwgc3R5bGU9J21zby1tYXJnaW4tdG9wLWFsdDphdXRvO21zby1tYXJnaW4tYm90dG9tLWFsdDoKICAgICAgIGF1dG87bXNvLWxpc3Q6bDEyIGxldmVsMSBsZm8xMjt0YWItc3RvcHM6bGlzdCAuNWluJz5pY3VkYXRhLmRhdCBmaWxlCiAgICAgICBjb250YWlucyBkYXRhIGZpbGVzIGluIGEgbWVtb3J5IG1hcHBlZCBmaWxlIGZvcm1hdC4gQXQgdGhpcyBtb21lbnQsIHRoaXMKICAgICAgIGZpbGUgY29udGFpbnMgQ05WIGZpbGVzLCBjb252ZXJ0ZXIgYWxpYXNlcywgdGltZXpvbmUgZGF0YSBhbmQgVW5pY29kZQogICAgICAgY2hhcmFjdGVyIG5hbWVzLiBQbGVhc2UgcmVhZCA8YSBocmVmPSJkb2NzL3VkYXRhLmh0bWwiPnVkYXRhLmh0bWw8L2E+CiAgICAgICBmb3IgbW9yZSBpbmZvcm1hdGlvbi48L2xpPgogIDwvdWw+CiAgPC90ZD4KIDwvdHI+CiA8dHI+CiAgPHRkIHdpZHRoPSIyMCUiIHN0eWxlPSd3aWR0aDoyMC4wJTtwYWRkaW5nOi43NXB0IC43NXB0IC43NXB0IC43NXB0Jz4KICA8cCBjbGFzcz1Nc29Ob3JtYWw+JFJvb3Qvc291cmNlL3Rvb2xzPC9wPgogIDwvdGQ+CiAgPHRkIHdpZHRoPSI4MCUiIHN0eWxlPSd3aWR0aDo4MC4wJTtwYWRkaW5nOi43NXB0IC43NXB0IC43NXB0IC43NXB0Jz4KICA8cCBjbGFzcz1Nc29Ob3JtYWw+VG9vbHMgZm9yIGdlbmVyYXRpbmcgdGhlIGRhdGEgZmlsZXMuIERhdGEgZmlsZXMgYXJlCiAgZ2VuZXJhdGVkIGJ5IGludm9raW5nICRSb290L3NvdXJjZS90b29scy9tYWtlZGF0YS5iYXQgb24gV2luMzIgb3IKICAkUm9vdC9zb3VyY2UvbWFrZSBpbnN0YWxsIG9uIFVuaXguPC9wPgogIDwvdGQ+CiA8L3RyPgogPHRyPgogIDx0ZCB3aWR0aD0iMjAlIiBzdHlsZT0nd2lkdGg6MjAuMCU7cGFkZGluZzouNzVwdCAuNzVwdCAuNzVwdCAuNzVwdCc+CiAgPHAgY2xhc3M9TXNvTm9ybWFsPiRSb290L3NvdXJjZS9zYW1wbGVzPC9wPgogIDwvdGQ+CiAgPHRkIHdpZHRoPSI4MCUiIHN0eWxlPSd3aWR0aDo4MC4wJTtwYWRkaW5nOi43NXB0IC43NXB0IC43NXB0IC43NXB0Jz4KICA8cCBjbGFzcz1Nc29Ob3JtYWw+VmFyaW91cyBzYW1wbGUgcHJvZ3JhbXMgdGhhdCB1c2UgSUNVPC9wPgogIDwvdGQ+CiA8L3RyPgo8L3RhYmxlPgoKPHA+Jm5ic3A7PGI+VGhlIGZvbGxvd2luZyBkaXJlY3RvcmllcyBhcmUgcG9wdWxhdGVkIHdoZW4geW91J3ZlIGJ1aWx0IHRoZQpmcmFtZXdvcms6PC9iPiA8YnI+CiZuYnNwOyAob24gVW5peCwgcmVwbGFjZSAkUm9vdCB3aXRoIHRoZSB2YWx1ZSBnaXZlbiB0byB0aGUgZmlsZQomcXVvdDtjb25maWd1cmUmcXVvdDspIDxicj4KJm5ic3A7IDwvcD4KCjx0YWJsZSBib3JkZXI9MSBjZWxscGFkZGluZz0wIHN0eWxlPSdtc28tY2VsbHNwYWNpbmc6MS41cHQ7bXNvLXBhZGRpbmctYWx0OgogMGluIDBpbiAwaW4gMGluJz4KIDx0cj4KICA8dGQgc3R5bGU9J3BhZGRpbmc6Ljc1cHQgLjc1cHQgLjc1cHQgLjc1cHQnPgogIDxwIGNsYXNzPU1zb05vcm1hbD4kUm9vdC9pbmNsdWRlLzwvcD4KICA8L3RkPgogIDx0ZCBzdHlsZT0ncGFkZGluZzouNzVwdCAuNzVwdCAuNzVwdCAuNzVwdCc+CiAgPHAgY2xhc3M9TXNvTm9ybWFsPmNvbnRhaW5zIGFsbCB0aGUgcHVibGljIGhlYWRlciBmaWxlcy48L3A+CiAgPC90ZD4KIDwvdHI+CiA8dHI+CiAgPHRkIHN0eWxlPSdwYWRkaW5nOi43NXB0IC43NXB0IC43NXB0IC43NXB0Jz4KICA8cCBjbGFzcz1Nc29Ob3JtYWw+JG91dHB1dDwvcD4KICA8L3RkPgogIDx0ZCBzdHlsZT0ncGFkZGluZzouNzVwdCAuNzVwdCAuNzVwdCAuNzVwdCc+CiAgPHAgY2xhc3M9TXNvTm9ybWFsPmNvbnRhaW5zIHRoZSBsaWJyYXJpZXMgZm9yIHN0YXRpYy9keW5hbWljIGxpbmtpbmcgb3IKICBleGVjdXRhYmxlIHByb2dyYW1zLjwvcD4KICA8L3RkPgogPC90cj4KPC90YWJsZT4KCjxwPjxiPlRoZSBmb2xsb3dpbmcgZGlhZ3JhbSBzaG93cyB0aGUgbWFpbiBkaXJlY3Rvcnkgc3RydWN0dXJlIG9mIHRoZQpJbnRlcm5hdGlvbmFsIENvbXBvbmVudHMgZm9yIFVuaWNvZGU6PC9iPiA8L3A+Cgo8cHJlPiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyBpY3UtTk5OTjwvcHJlPgo8cHJlPiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyB8PC9wcmU+CjxwcmU+Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7b3V0cHV0Jm5ic3A7Jm5ic3A7PHNwYW4gc3R5bGU9Im1zby1zcGFjZXJ1bjogeWVzIj4mbmJzcDsgPC9zcGFuPiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzxzcGFuIHN0eWxlPSJtc28tc3BhY2VydW46IHllcyI+Jm5ic3A7Jm5ic3A7Jm5ic3A7IDwvc3Bhbj5pY3U8L3ByZT4KPHByZT4mbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsgX19fX198X19fX188c3BhbiBzdHlsZT0ibXNvLXNwYWNlcnVuOiB5ZXMiPiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyA8L3NwYW4+X19fX19fX19fX19fX198X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fPC9wcmU+CjxwcmU+Jm5ic3A7Jm5ic3A7Jm5ic3A7IHwmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsgJm5ic3A7PHNwYW4gc3R5bGU9Im1zby1zcGFjZXJ1bjogeWVzIj4mbmJzcDsmbmJzcDsgPC9zcGFuPnwmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8c3BhbiBzdHlsZT0ibXNvLXNwYWNlcnVuOiB5ZXMiPiZuYnNwOyA8L3NwYW4+fCAmbmJzcDs8c3BhbiBzdHlsZT0ibXNvLXNwYWNlcnVuOiB5ZXMiPiZuYnNwOyZuYnNwOyA8L3NwYW4+Jm5ic3A7IHwmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsgfCZuYnNwOzxzcGFuIHN0eWxlPSJtc28tc3BhY2VydW46IHllcyI+Jm5ic3A7Jm5ic3A7IDwvc3Bhbj4mbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsgfDxzcGFuIHN0eWxlPSJtc28tc3BhY2VydW46IHllcyI+Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7IDwvc3Bhbj58PC9wcmU+CjxwcmU+IGxpYnJhcmllczxzcGFuIHN0eWxlPSJtc28tc3BhY2VydW46IHllcyI+Jm5ic3A7Jm5ic3A7IDwvc3Bhbj5wcm9ncmFtcyAmbmJzcDtpbmNsdWRlJm5ic3A7ZGF0YSZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyBzb3VyY2UmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsgfDxzcGFuIHN0eWxlPSJtc28tc3BhY2VydW46IHllcyI+Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7IDwvc3Bhbj58PC9wcmU+CjxwcmU+IChidWlsdCk8c3BhbiBzdHlsZT0ibXNvLXNwYWNlcnVuOiB5ZXMiPiZuYnNwOyZuYnNwOyZuYnNwOyA8L3NwYW4+KGJ1aWx0KTxzcGFuIHN0eWxlPSJtc28tc3BhY2VydW46IHllcyI+Jm5ic3A7Jm5ic3A7IDwvc3Bhbj4oYnVpbHQpJm5ic3A7PHNwYW4gc3R5bGU9Im1zby1zcGFjZXJ1bjogeWVzIj4mbmJzcDsgPC9zcGFuPiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyB8Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7cmVhZG1lLmh0bWwgbGljZW5zZS5odG1sPC9wcmU+CjxwcmU+Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PHNwYW4gc3R5bGU9Im1zby1zcGFjZXJ1bjogeWVzIj4mbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsgPC9zcGFuPiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyB8PHNwYW4gc3R5bGU9Im1zby1zcGFjZXJ1bjogeWVzIj4mbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsgPC9zcGFuPjwvcHJlPgo8cHJlPiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzxzcGFuIHN0eWxlPSJtc28tc3BhY2VydW46IHllcyI+Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7IDwvc3Bhbj5fX19fX19fX19fX19fX19fX3xfX19fX19fX19fX19fX19fX19fX19fX19fXzwvcHJlPgo8cHJlPiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzxzcGFuIHN0eWxlPSJtc28tc3BhY2VydW46IHllcyI+Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7IDwvc3Bhbj58PHNwYW4gc3R5bGU9Im1zby1zcGFjZXJ1bjogeWVzIj4mbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsgPC9zcGFuPnw8c3BhbiBzdHlsZT0ibXNvLXNwYWNlcnVuOiB5ZXMiPiZuYnNwOyA8L3NwYW4+PHNwYW4gc3R5bGU9Im1zby1zcGFjZXJ1bjogeWVzIj4mbmJzcDs8L3NwYW4+Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7IHwmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsgfDxzcGFuIHN0eWxlPSJtc28tc3BhY2VydW46IHllcyI+Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7IDwvc3Bhbj58PHNwYW4gc3R5bGU9Im1zby1zcGFjZXJ1bjogeWVzIj4mbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsgPC9zcGFuPnw8L3ByZT4KPHByZT4mbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8c3BhbiBzdHlsZT0ibXNvLXNwYWNlcnVuOiB5ZXMiPiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyA8L3NwYW4+Y29tbW9uPHNwYW4gc3R5bGU9Im1zby1zcGFjZXJ1bjogeWVzIj4mbmJzcDsgPC9zcGFuPmkxOG4mbmJzcDsmbmJzcDs8c3BhbiBzdHlsZT0ibXNvLXNwYWNlcnVuOiB5ZXMiPiZuYnNwOyZuYnNwOyZuYnNwOyA8L3NwYW4+dGVzdDxzcGFuIHN0eWxlPSJtc28tc3BhY2VydW46IHllcyI+Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7IDwvc3Bhbj5leHRyYTxzcGFuIHN0eWxlPSJtc28tc3BhY2VydW46IHllcyI+Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7IDwvc3Bhbj50b29sczxzcGFuIHN0eWxlPSJtc28tc3BhY2VydW46IHllcyI+Jm5ic3A7Jm5ic3A7IDwvc3Bhbj5zYW1wbGVzPC9wcmU+CjxwcmU+Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PHNwYW4gc3R5bGU9Im1zby1zcGFjZXJ1bjogeWVzIj4mbmJzcDsgPC9zcGFuPiZuYnNwOyAmbmJzcDs8c3BhbiBzdHlsZT0ibXNvLXNwYWNlcnVuOiB5ZXMiPiZuYnNwOyA8L3NwYW4+fDxzcGFuIHN0eWxlPSJtc28tc3BhY2VydW46IHllcyI+Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7IDwvc3Bhbj58PHNwYW4gc3R5bGU9Im1zby1zcGFjZXJ1bjogeWVzIj4mbmJzcDsmbmJzcDsgPC9zcGFuPjwvcHJlPgo8cHJlPiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzxzcGFuIHN0eWxlPSJtc28tc3BhY2VydW46IHllcyI+Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7IDwvc3Bhbj4mbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsgX19ffF9fXyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzxzcGFuIHN0eWxlPSJtc28tc3BhY2VydW46IHllcyI+Jm5ic3A7IDwvc3Bhbj5fX198X19fX19fX19fX19fX19fX188L3ByZT4KPHByZT48c3BhbiBzdHlsZT0ibXNvLXNwYWNlcnVuOiB5ZXMiPiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyA8L3NwYW4+fDxzcGFuIHN0eWxlPSJtc28tc3BhY2VydW46IHllcyI+Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7IDwvc3Bhbj58PHNwYW4gc3R5bGU9Im1zby1zcGFjZXJ1bjogeWVzIj4mbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsgPC9zcGFuPnw8c3BhbiBzdHlsZT0ibXNvLXNwYWNlcnVuOiB5ZXMiPiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyA8L3NwYW4+fDxzcGFuIHN0eWxlPSJtc28tc3BhY2VydW46IHllcyI+Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7IDwvc3Bhbj58PHNwYW4gc3R5bGU9Im1zby1zcGFjZXJ1bjogeWVzIj4mbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsgPC9zcGFuPnwgPC9wcmU+CjxwcmU+PHNwYW4gc3R5bGU9Im1zby1zcGFjZXJ1bjogeWVzIj4mbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8L3NwYW4+aW50bHRlc3QgY2ludGx0c3QgbWFrZWNvbnYgY3Rlc3RmdyBnZW5yYjxzcGFuIHN0eWxlPSJtc28tc3BhY2VydW46IHllcyI+Jm5ic3A7IDwvc3Bhbj4uLi4uPC9wcmU+Cgo8aDM+PGEgbmFtZT1BUEk+PC9hPjx1PkFQSSBPdmVydmlldzwvdT48L2gzPgoKPHA+SW4gdGhlIEludGVybmF0aW9uYWwgQ29tcG9uZW50cyBmb3IgVW5pY29kZSwgdGhlcmUgYXJlIHR3byBjYXRlZ29yaWVzOiA8L3A+Cgo8dWwgdHlwZT1kaXNjPgogPGxpIGNsYXNzPU1zb05vcm1hbCBzdHlsZT0nbXNvLW1hcmdpbi10b3AtYWx0OmF1dG87bXNvLW1hcmdpbi1ib3R0b20tYWx0OmF1dG87CiAgICAgbXNvLWxpc3Q6bDE1IGxldmVsMSBsZm8xNTt0YWItc3RvcHM6bGlzdCAuNWluJz5Mb3ctbGV2ZWwgVW5pY29kZS9SZXNvdXJjZQogICAgIEF0dHJpYnV0ZXM6ICg8c3Ryb25nPmljdXVjPC9zdHJvbmc+IGxpYnJhcnkpPC9saT4KIDx1bCB0eXBlPWNpcmNsZT4KICA8bGkgY2xhc3M9TXNvTm9ybWFsIHN0eWxlPSdtc28tbWFyZ2luLXRvcC1hbHQ6YXV0bzttc28tbWFyZ2luLWJvdHRvbS1hbHQ6CiAgICAgIGF1dG87bXNvLWxpc3Q6bDE1IGxldmVsMiBsZm8xNTt0YWItc3RvcHM6bGlzdCAxLjBpbic+PGEKICAgICAgaHJlZj0iZG9jcy91dGlsQ0wuaHRtbCI+VXRpbGl0eSBDbGFzc2VzPC9hPjwvbGk+CiAgPGxpIGNsYXNzPU1zb05vcm1hbCBzdHlsZT0nbXNvLW1hcmdpbi10b3AtYWx0OmF1dG87bXNvLW1hcmdpbi1ib3R0b20tYWx0OgogICAgICBhdXRvO21zby1saXN0OmwxNSBsZXZlbDIgbGZvMTU7dGFiLXN0b3BzOmxpc3QgMS4waW4nPjxhCiAgICAgIGhyZWY9ImRvY3MvY29udmVyc2lvbl9pbnRlcmZhY2UuaHRtIj5Db252ZXJzaW9uIEludGVyZmFjZTwvYT48L2xpPgogPC91bD4KIDxsaSBjbGFzcz1Nc29Ob3JtYWwgc3R5bGU9J21zby1tYXJnaW4tdG9wLWFsdDphdXRvO21zby1tYXJnaW4tYm90dG9tLWFsdDphdXRvOwogICAgIG1zby1saXN0OmwxNSBsZXZlbDEgbGZvMTU7dGFiLXN0b3BzOmxpc3QgLjVpbic+SGlnaC1sZXZlbCBVbmljb2RlCiAgICAgSW50ZXJuYXRpb25hbGl6YXRpb246ICg8c3Ryb25nPmljdWkxOG48L3N0cm9uZz4gbGlicmFyeSk8L2xpPgogPHVsIHR5cGU9Y2lyY2xlPgogIDxsaSBjbGFzcz1Nc29Ob3JtYWwgc3R5bGU9J21zby1tYXJnaW4tdG9wLWFsdDphdXRvO21zby1tYXJnaW4tYm90dG9tLWFsdDoKICAgICAgYXV0bzttc28tbGlzdDpsMTUgbGV2ZWwyIGxmbzE1O3RhYi1zdG9wczpsaXN0IDEuMGluJz48YQogICAgICBocmVmPSJkb2NzL2JvdW5kQ0wuaHRtbCI+VGV4dCBCb3VuZGFyeSBDbGFzc2VzPC9hPjwvbGk+CiAgPGxpIGNsYXNzPU1zb05vcm1hbCBzdHlsZT0nbXNvLW1hcmdpbi10b3AtYWx0OmF1dG87bXNvLW1hcmdpbi1ib3R0b20tYWx0OgogICAgICBhdXRvO21zby1saXN0OmwxNSBsZXZlbDIgbGZvMTU7dGFiLXN0b3BzOmxpc3QgMS4waW4nPjxhCiAgICAgIGhyZWY9ImRvY3MvY29sbGF0ZUNMLmh0bWwiPkNvbGxhdGlvbiBDbGFzc2VzPC9hPjwvbGk+CiAgPGxpIGNsYXNzPU1zb05vcm1hbCBzdHlsZT0nbXNvLW1hcmdpbi10b3AtYWx0OmF1dG87bXNvLW1hcmdpbi1ib3R0b20tYWx0OgogICAgICBhdXRvO21zby1saXN0OmwxNSBsZXZlbDIgbGZvMTU7dGFiLXN0b3BzOmxpc3QgMS4waW4nPjxhCiAgICAgIGhyZWY9ImRvY3MvZm9ybWF0Q0wuaHRtbCI+Rm9ybWF0dGluZyBDbGFzc2VzPC9hPjwvbGk+CiAgPGxpIGNsYXNzPU1zb05vcm1hbCBzdHlsZT0nbXNvLW1hcmdpbi10b3AtYWx0OmF1dG87bXNvLW1hcmdpbi1ib3R0b20tYWx0OgogICAgICBhdXRvO21zby1saXN0OmwxNSBsZXZlbDIgbGZvMTU7dGFiLXN0b3BzOmxpc3QgMS4waW4nPlRyYW5zbGl0ZXJhdG9yCiAgICAgIENsYXNzZXM8L2xpPgogPC91bD4KPC91bD4KCjxwPlNlZSA8QSBIUkVGPSJodHRwOi8vb3NzLnNvZnR3YXJlLmlibS5jb20vaWN1L2RldmVsb3AvY29kZXN0ZHMuaHRtbCI+SW50ZXJuYXRpb25hbCBDb21wb25lbnRzIGZvciBVbmljb2RlIENvZGluZyBHdWlkZWxpbmVzPC9BPgpmb3IgYSBkaXNjdXNzaW9uIG9mIGNvZGUgY29udmVudGlvbnMgY29tbW9uIHRvIGFsbCBsaWJyYXJ5IGNsYXNzZXMuIDwvcD4KCjxwPlNlZSBhbHNvIDxhIGhyZWY9Ii4uL2h0bWwvYWluZGV4Lmh0bWwiPmh0bWwvYWluZGV4Lmh0bWw8L2E+IGZvciBhbiBhbHBoYWJldGljYWwKaW5kZXgsIGFuZCA8YSBocmVmPSIuLi9odG1sL0hJRVJqYXZhLmh0bWwiPmh0bWwvSElFUmphdmEuaHRtbDwvYT4gZm9yIGEKaGllcmFyY2hpY2FsIGluZGV4IHRvIGRldGFpbGVkIEFQSSBkb2N1bWVudGF0aW9uLiA8YnI+CiZuYnNwOyA8YnI+CiZuYnNwOyA8L3A+Cgo8aDM+PGEgbmFtZT1QbGF0Zm9ybURlcGVuZGVuY2llcz48L2E+PHU+UGxhdGZvcm0gRGVwZW5kZW5jaWVzPC91PjwvaDM+Cgo8cD5UaGUgcGxhdGZvcm0gZGVwZW5kZW5jaWVzIGhhdmUgYmVlbiBpc29sYXRlZCBpbnRvIHRoZSBmb2xsb3dpbmcgNCBmaWxlczogPC9wPgoKPHVsIHR5cGU9ZGlzYz4KIDxsaSBjbGFzcz1Nc29Ob3JtYWwgc3R5bGU9J21zby1tYXJnaW4tdG9wLWFsdDphdXRvO21zby1tYXJnaW4tYm90dG9tLWFsdDphdXRvOwogICAgIG1zby1saXN0OmwxNCBsZXZlbDEgbGZvMTg7dGFiLXN0b3BzOmxpc3QgLjVpbic+PHU+cGxhdGZvcm0uaC5pbjo8L3U+CiAgICAgUGxhdGZvcm0tZGVwZW5kZW50IHR5cGVkZWZzIGFuZCBkZWZpbmVzOjwvbGk+CjwvdWw+Cgo8cCBjbGFzcz1Nc29Ob3JtYWwgc3R5bGU9J21hcmdpbi1yaWdodDouNWluO21zby1tYXJnaW4tdG9wLWFsdDphdXRvO21zby1tYXJnaW4tYm90dG9tLWFsdDoKYXV0bzttYXJnaW4tbGVmdDoxLjBpbjt0ZXh0LWluZGVudDotLjI1aW47bXNvLWxpc3Q6bDEzIGxldmVsMSBsZm8yMDt0YWItc3RvcHM6Cmxpc3QgLjVpbic+PCFbaWYgIXN1cHBvcnRMaXN0c10+PHNwYW4gc3R5bGU9J2ZvbnQtc2l6ZToxMC4wcHQ7bXNvLWJpZGktZm9udC1zaXplOgoxMi4wcHQ7Zm9udC1mYW1pbHk6U3ltYm9sJz63PHNwYW4gc3R5bGU9J2ZvbnQ6Ny4wcHQgIlRpbWVzIE5ldyBSb21hbiInPiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOwo8L3NwYW4+PC9zcGFuPjwhW2VuZGlmXT5YUF9DUExVU1BMVVMgaXMgZGVmaW5lZCBmb3IgQysrPC9wPgoKPHAgY2xhc3M9TXNvTm9ybWFsIHN0eWxlPSdtYXJnaW4tcmlnaHQ6LjVpbjttc28tbWFyZ2luLXRvcC1hbHQ6YXV0bzttc28tbWFyZ2luLWJvdHRvbS1hbHQ6CmF1dG87bWFyZ2luLWxlZnQ6MS4waW47dGV4dC1pbmRlbnQ6LS4yNWluO21zby1saXN0OmwxMyBsZXZlbDEgbGZvMjA7dGFiLXN0b3BzOgpsaXN0IC41aW4nPjwhW2lmICFzdXBwb3J0TGlzdHNdPjxzcGFuIHN0eWxlPSdmb250LXNpemU6MTAuMHB0O21zby1iaWRpLWZvbnQtc2l6ZToKMTIuMHB0O2ZvbnQtZmFtaWx5OlN5bWJvbCc+tzxzcGFuIHN0eWxlPSdmb250OjcuMHB0ICJUaW1lcyBOZXcgUm9tYW4iJz4mbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsKPC9zcGFuPjwvc3Bhbj48IVtlbmRpZl0+Ym9vbF90LCBUUlVFIGFuZCBGQUxTRSwgaW50OF90LCBpbnQxNl90IGV0Yy48L3A+Cgo8cCBjbGFzcz1Nc29Ob3JtYWwgc3R5bGU9J21hcmdpbi1yaWdodDouNWluO21zby1tYXJnaW4tdG9wLWFsdDphdXRvO21zby1tYXJnaW4tYm90dG9tLWFsdDoKYXV0bzttYXJnaW4tbGVmdDoxLjBpbjt0ZXh0LWluZGVudDotLjI1aW47bXNvLWxpc3Q6bDEzIGxldmVsMSBsZm8yMDt0YWItc3RvcHM6Cmxpc3QgLjVpbic+PCFbaWYgIXN1cHBvcnRMaXN0c10+PHNwYW4gc3R5bGU9J2ZvbnQtc2l6ZToxMC4wcHQ7bXNvLWJpZGktZm9udC1zaXplOgoxMi4wcHQ7Zm9udC1mYW1pbHk6U3ltYm9sJz63PHNwYW4gc3R5bGU9J2ZvbnQ6Ny4wcHQgIlRpbWVzIE5ldyBSb21hbiInPiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOwo8L3NwYW4+PC9zcGFuPjwhW2VuZGlmXT5VX0VYUE9SVCBhbmQgVV9JTVBPUlQgZm9yIHNwZWNpZnlpbmcgZHluYW1pYyBsaWJyYXJ5CmltcG9ydCBhbmQgZXhwb3J0PC9wPgoKPHVsIHR5cGU9ZGlzYz4KIDxsaSBjbGFzcz1Nc29Ob3JtYWwgc3R5bGU9J21zby1tYXJnaW4tdG9wLWFsdDphdXRvO21zby1tYXJnaW4tYm90dG9tLWFsdDphdXRvOwogICAgIG1zby1saXN0Omw2IGxldmVsMSBsZm8yMzt0YWItc3RvcHM6bGlzdCAuNWluJz48dT5wdXRpbC5jOjwvdT4KICAgICBwbGF0Zm9ybS1kZXBlbmRlbnQgaW1wbGVtZW50YXRpb25zIG9mIHZhcmlvdXMgZnVuY3Rpb25zIHRoYXQgYXJlIHBsYXRmb3JtCiAgICAgZGVwZW5kZW50OiAoZGVjbGFyZWQgaW4gcHV0aWwuaCk8L2xpPgo8L3VsPgoKPHAgY2xhc3M9TXNvTm9ybWFsIHN0eWxlPSdtYXJnaW4tcmlnaHQ6LjVpbjttc28tbWFyZ2luLXRvcC1hbHQ6YXV0bzttc28tbWFyZ2luLWJvdHRvbS1hbHQ6CmF1dG87bWFyZ2luLWxlZnQ6MS4waW47dGV4dC1pbmRlbnQ6LS4yNWluO21zby1saXN0OmwxIGxldmVsMSBsZm8yNTt0YWItc3RvcHM6Cmxpc3QgLjVpbic+PCFbaWYgIXN1cHBvcnRMaXN0c10+PHNwYW4gc3R5bGU9J2ZvbnQtc2l6ZToxMC4wcHQ7bXNvLWJpZGktZm9udC1zaXplOgoxMi4wcHQ7Zm9udC1mYW1pbHk6U3ltYm9sJz63PHNwYW4gc3R5bGU9J2ZvbnQ6Ny4wcHQgIlRpbWVzIE5ldyBSb21hbiInPiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOwo8L3NwYW4+PC9zcGFuPjwhW2VuZGlmXT5pY3VfaXNOYU4sIGljdV9pc0luZmluaXRlKGRvdWJsZSksIGljdV9nZXROYU4oKTsKaWN1X2dldEluZmluaXR5IGZvciBoYW5kbGluZyBzcGVjaWFsIGZsb2F0aW5nIHBvaW50IHZhbHVlczwvcD4KCjxwIGNsYXNzPU1zb05vcm1hbCBzdHlsZT0nbWFyZ2luLXJpZ2h0Oi41aW47bXNvLW1hcmdpbi10b3AtYWx0OmF1dG87bXNvLW1hcmdpbi1ib3R0b20tYWx0OgphdXRvO21hcmdpbi1sZWZ0OjEuMGluO3RleHQtaW5kZW50Oi0uMjVpbjttc28tbGlzdDpsMSBsZXZlbDEgbGZvMjU7dGFiLXN0b3BzOgpsaXN0IC41aW4nPjwhW2lmICFzdXBwb3J0TGlzdHNdPjxzcGFuIHN0eWxlPSdmb250LXNpemU6MTAuMHB0O21zby1iaWRpLWZvbnQtc2l6ZToKMTIuMHB0O2ZvbnQtZmFtaWx5OlN5bWJvbCc+tzxzcGFuIHN0eWxlPSdmb250OjcuMHB0ICJUaW1lcyBOZXcgUm9tYW4iJz4mbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsKPC9zcGFuPjwvc3Bhbj48IVtlbmRpZl0+aWN1X3R6c2V0LCBpY3VfdGltZXpvbmUsIGljdV90em5hbWUgYW5kIHRpbWUgZm9yCnJlYWRpbmcgcGxhdGZvcm0gc3BlY2lmaWMgdGltZSBhbmQgdGltZXpvbmUgaW5mb3JtYXRpb248L3A+Cgo8cCBjbGFzcz1Nc29Ob3JtYWwgc3R5bGU9J21hcmdpbi1yaWdodDouNWluO21zby1tYXJnaW4tdG9wLWFsdDphdXRvO21zby1tYXJnaW4tYm90dG9tLWFsdDoKYXV0bzttYXJnaW4tbGVmdDoxLjBpbjt0ZXh0LWluZGVudDotLjI1aW47bXNvLWxpc3Q6bDEgbGV2ZWwxIGxmbzI1O3RhYi1zdG9wczoKbGlzdCAuNWluJz48IVtpZiAhc3VwcG9ydExpc3RzXT48c3BhbiBzdHlsZT0nZm9udC1zaXplOjEwLjBwdDttc28tYmlkaS1mb250LXNpemU6CjEyLjBwdDtmb250LWZhbWlseTpTeW1ib2wnPrc8c3BhbiBzdHlsZT0nZm9udDo3LjBwdCAiVGltZXMgTmV3IFJvbWFuIic+Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Cjwvc3Bhbj48L3NwYW4+PCFbZW5kaWZdPmljdV9nZXREZWZhdWx0RGF0YURpcmVjdG9yeSwgaWN1X2dldERlZmF1bHRMb2NhbGVJRCBmb3IKcmVhZGluZyB0aGUgbG9jYWxlIHNldHRpbmcgYW5kIGRhdGEgZGlyZWN0b3J5PC9wPgoKPHAgY2xhc3M9TXNvTm9ybWFsIHN0eWxlPSdtYXJnaW4tcmlnaHQ6LjVpbjttc28tbWFyZ2luLXRvcC1hbHQ6YXV0bzttc28tbWFyZ2luLWJvdHRvbS1hbHQ6CmF1dG87bWFyZ2luLWxlZnQ6MS4waW47dGV4dC1pbmRlbnQ6LS4yNWluO21zby1saXN0OmwxIGxldmVsMSBsZm8yNTt0YWItc3RvcHM6Cmxpc3QgLjVpbic+PCFbaWYgIXN1cHBvcnRMaXN0c10+PHNwYW4gc3R5bGU9J2ZvbnQtc2l6ZToxMC4wcHQ7bXNvLWJpZGktZm9udC1zaXplOgoxMi4wcHQ7Zm9udC1mYW1pbHk6U3ltYm9sJz63PHNwYW4gc3R5bGU9J2ZvbnQ6Ny4wcHQgIlRpbWVzIE5ldyBSb21hbiInPiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOwo8L3NwYW4+PC9zcGFuPjwhW2VuZGlmXT5pY3VfaXNCaWdFbmRpYW4gZm9yIGZpbmRpbmcgdGhlIGVuZGlhbmVzcyBvZiB0aGUKcGxhdGZvcm08L3A+Cgo8cCBjbGFzcz1Nc29Ob3JtYWwgc3R5bGU9J21hcmdpbi1yaWdodDouNWluO21zby1tYXJnaW4tdG9wLWFsdDphdXRvO21zby1tYXJnaW4tYm90dG9tLWFsdDoKYXV0bzttYXJnaW4tbGVmdDoxLjBpbjt0ZXh0LWluZGVudDotLjI1aW47bXNvLWxpc3Q6bDEgbGV2ZWwxIGxmbzI1O3RhYi1zdG9wczoKbGlzdCAuNWluJz48IVtpZiAhc3VwcG9ydExpc3RzXT48c3BhbiBzdHlsZT0nZm9udC1zaXplOjEwLjBwdDttc28tYmlkaS1mb250LXNpemU6CjEyLjBwdDtmb250LWZhbWlseTpTeW1ib2wnPrc8c3BhbiBzdHlsZT0nZm9udDo3LjBwdCAiVGltZXMgTmV3IFJvbWFuIic+Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Cjwvc3Bhbj48L3NwYW4+PCFbZW5kaWZdPmljdV9uZXh0RG91YmxlIGlzIHVzZWQgc3BlY2lmaWNhbGx5IGJ5IHRoZSBDaG9pY2VGb3JtYXQKQVBJLjwvcD4KCjx1bCB0eXBlPWRpc2M+CiA8bGkgY2xhc3M9TXNvTm9ybWFsIHN0eWxlPSdtc28tbWFyZ2luLXRvcC1hbHQ6YXV0bzttc28tbWFyZ2luLWJvdHRvbS1hbHQ6YXV0bzsKICAgICBtc28tbGlzdDpsNyBsZXZlbDEgbGZvMjg7dGFiLXN0b3BzOmxpc3QgLjVpbic+PHU+bXV0ZXguaCBhbmQgbXV0ZXguY3BwPC91PjoKICAgICBDb2RlIGZvciBkb2luZyBzeW5jaHJvbml6YXRpb24gaW4gbXVsdGl0aHJlYWRlZCBhcHBsaWNhdGlvbnMuIElmIHlvdSB3aXNoCiAgICAgdG8gdXNlIEludGVybmF0aW9uYWwgQ29tcG9uZW50cyBmb3IgVW5pY29kZSBpbiBhIG11bHRpdGhyZWFkZWQKICAgICBhcHBsaWNhdGlvbiwgeW91IG11c3QgcHJvdmlkZSBhIHN5bmNocm9uaXphdGlvbiBwcmltaXRpdmUgdGhhdCB0aGUgY2xhc3NlcwogICAgIGNhbiB1c2UgdG8gcHJvdGVjdCB0aGVpciBnbG9iYWwgZGF0YSBhZ2FpbnN0IHNpbXVsdGFuZW91cyBtb2RpZmljYXRpb25zLgogICAgIFNlZSA8YSBocmVmPSJkb2NzL211dGV4Lmh0bWwiPmRvY3MvbXV0ZXguaHRtbDwvYT4gZm9yIG1vcmUgaW5mb3JtYXRpb24uPC9saT4KIDx1bCB0eXBlPWNpcmNsZT4KICA8bGkgY2xhc3M9TXNvTm9ybWFsIHN0eWxlPSdtc28tbWFyZ2luLXRvcC1hbHQ6YXV0bzttc28tbWFyZ2luLWJvdHRvbS1hbHQ6CiAgICAgIGF1dG87bXNvLWxpc3Q6bDcgbGV2ZWwyIGxmbzI4O3RhYi1zdG9wczpsaXN0IDEuMGluJz5XZSBzdXBwbHkgc2FtcGxlCiAgICAgIGltcGxlbWVudGF0aW9ucyBmb3IgV2luTlQsIFdpbjk1LCBXaW45OCwgU3VuL1NvbGFyaXMsIFJlZEhhdC9MaW51eCwgSFAtVVgKICAgICAgYW5kIGZvciBBSVggb24gYW4gUlMvNjAwMC48L2xpPgogIDxsaSBjbGFzcz1Nc29Ob3JtYWwgc3R5bGU9J21zby1tYXJnaW4tdG9wLWFsdDphdXRvO21zby1tYXJnaW4tYm90dG9tLWFsdDoKICAgICAgYXV0bzttc28tbGlzdDpsNyBsZXZlbDIgbGZvMjg7dGFiLXN0b3BzOmxpc3QgMS4waW4nPklmIHlvdSBhcmUgY2hhbmdpbmcKICAgICAgdGhlIHBsYXRmb3JtLWRlcGVuZGVudCBmaWxlcywgcHR5cGVzLmggYW5kIHB1dGlsLmggbWF5IGFsc28gYmUgaW50ZXJlc3RpbmcsCiAgICAgIGJ1dCBzaG91bGRuJ3QgaGF2ZSB0byBiZSBjaGFuZ2VkLiBJZiB5b3UgdGhpbmsgYW55IG90aGVyIGZpbGVzIHRoYW4gdGhlCiAgICAgIG9uZXMgbWVudGlvbmVkIGFib3ZlIGhhdmUgcGxhdGZvcm0gZGVwZW5kZW5jaWVzLCBwbGVhc2UgY29udGFjdCB1cy48L2xpPgogIDxsaSBjbGFzcz1Nc29Ob3JtYWwgc3R5bGU9J21zby1tYXJnaW4tdG9wLWFsdDphdXRvO21zby1tYXJnaW4tYm90dG9tLWFsdDoKICAgICAgYXV0bzttc28tbGlzdDpsNyBsZXZlbDIgbGZvMjg7dGFiLXN0b3BzOmxpc3QgMS4waW4nPkZvciB0aGUgSW50bHRlc3QgdGVzdAogICAgICBzdWl0ZSwgaW50bHRlc3QuY3BwIGluICZxdW90O2ljdVxzb3VyY2VcdGVzdFxpbnRsdGVzdFwmcXVvdDsgY29udGFpbnMgdGhlCiAgICAgIG1ldGhvZCBwYXRobmFtZUluQ29udGV4dCwgd2hpY2ggbXVzdCBhbHNvIGJlIGFkYXB0ZWQgdG8gYW55IG5ldyBwbGF0Zm9ybS48L2xpPgogPC91bD4KPC91bD4KCjx1bCB0eXBlPWRpc2M+CiA8bGkgY2xhc3M9TXNvTm9ybWFsIHN0eWxlPSdtc28tbWFyZ2luLXRvcC1hbHQ6YXV0bzttc28tbWFyZ2luLWJvdHRvbS1hbHQ6YXV0bzsKICAgICBtc28tbGlzdDpsMTQgbGV2ZWwxIGxmbzE4O3RhYi1zdG9wczpsaXN0IC41aW4nPnVkYXRhLmg6IFRoZSBkYXRhLWFjY2Vzc2luZwogICAgIGludGVyZmFjZSBpbiBJQ1UgaXMgaW1wbGVtZW50ZWQgc3VjaCB0aGF0IHRoZXJlIGlzIGEgbG90IG9mIGZsZXhpYmlsaXR5CiAgICAgZm9yIHJlYWRpbmcgYSBkYXRhIGZpbGUuPHNwYW4gc3R5bGU9Im1zby1zcGFjZXJ1bjogeWVzIj4mbmJzcDsgPC9zcGFuPkVhY2gKICAgICBwbGF0Zm9ybSBjYW4gdHVuZSB0aGUgcGVyZm9ybWFuY2Ugb2YgZmlsZSBhY2Nlc3NpbmcgZm9yIGl0cyBlbnZpcm9ubWVudCBieQogICAgIGNob29zaW5nIHRvIGltcGxlbWVudCBvbmUgb2YgdGhlIGZvbGxvd2luZyBvcHRpb25zOjwvbGk+CjwvdWw+Cgo8dWwgdHlwZT1kaXNjPgogPHVsIHR5cGU9Y2lyY2xlPgogIDxsaSBjbGFzcz1Nc29Ob3JtYWwgc3R5bGU9J21zby1tYXJnaW4tdG9wLWFsdDphdXRvO21zby1tYXJnaW4tYm90dG9tLWFsdDoKICAgICAgYXV0bzttc28tbGlzdDpsNyBsZXZlbDIgbGZvMjg7dGFiLXN0b3BzOmxpc3QgMS4waW4nPkRMTDwvbGk+CiAgPGxpIGNsYXNzPU1zb05vcm1hbCBzdHlsZT0nbXNvLW1hcmdpbi10b3AtYWx0OmF1dG87bXNvLW1hcmdpbi1ib3R0b20tYWx0OgogICAgICBhdXRvO21zby1saXN0Omw3IGxldmVsMiBsZm8yODt0YWItc3RvcHM6bGlzdCAxLjBpbic+TWVtb3J5IG1hcDwvbGk+CiAgPGxpIGNsYXNzPU1zb05vcm1hbCBzdHlsZT0nbXNvLW1hcmdpbi10b3AtYWx0OmF1dG87bXNvLW1hcmdpbi1ib3R0b20tYWx0OgogICAgICBhdXRvO21zby1saXN0Omw3IGxldmVsMiBsZm8yODt0YWItc3RvcHM6bGlzdCAxLjBpbic+UGxhaW4gdGV4dCA8L2xpPgogPC91bD4KPC91bD4KCjxoMz48YSBuYW1lPUltcG9ydGFudE5vdGVzPjwvYT48dT5JbXBvcnRhbnQgSW5zdGFsbGF0aW9uIE5vdGVzIDwvdT48L2gzPgoKPHA+PHN0cm9uZz5XaW4zMiBQbGF0Zm9ybTwvc3Ryb25nPjwvcD4KCjxwPklmIHlvdSBhcmUgYnVpbGRpbmcgb24gdGhlIFdpbjMyIHBsYXRmb3JtLCBpdCBpcyBpbXBvcnRhbnQgdGhhdCB5b3UKdW5kZXJzdGFuZCBhIGZldyBidWlsZCBkZXRhaWxzOiA8L3A+Cgo8cD48dT5ETEwgZGlyZWN0b3JpZXMgYW5kIHRoZSBQQVRIIHNldHRpbmc6PC91PiBBcyBkZWxpdmVyZWQsIHRoZSBJbnRlcm5hdGlvbmFsCkNvbXBvbmVudHMgZm9yIFVuaWNvZGUgYnVpbGQgYXMgc2V2ZXJhbCBETExzLiBUaGVzZSBETExzIGFyZSBwbGFjZWQgaW4gdGhlCmRpcmVjdG9yaWVzICZxdW90O2ljdVxiaW5cRGVidWcmcXVvdDsgYW5kICZxdW90O2ljdVxiaW5cUmVsZWFzZSZxdW90Oy4mbmJzcDsKWW91IG11c3QgYWRkIGVpdGhlciBvZiB0aGVzZSBkaXJlY3RvcmllcyB0byB0aGUgUEFUSCBlbnZpcm9ubWVudCB2YXJpYWJsZSBpbgp5b3VyIHN5c3RlbSwgb3IgYW55IGV4ZWN1dGFibGVzIHlvdSBidWlsZCB3aWxsIG5vdCBiZSBhYmxlIHRvIGFjY2VzcwpJbnRlcm5hdGlvbmFsIENvbXBvbmVudHMgZm9yIFVuaWNvZGUgbGlicmFyaWVzLiBBbHRlcm5hdGl2ZWx5LCB5b3UgY2FuIGNvcHkgdGhlCkRMTCBmaWxlcyBpbnRvIGEgZGlyZWN0b3J5IGFscmVhZHkgaW4geW91ciBQQVRILCBidXQgd2UgZG8gbm90IHJlY29tbWVuZCB0aGlzCi0tIHlvdSBjYW4gd2luZCB1cCB3aXRoIG11bHRpcGxlIGNvcGllcyBvZiB0aGUgRExMLCBhbmQgd2luZCB1cCB1c2luZyB0aGUgd3JvbmcKb25lLiA8L3A+Cgo8cD48dT5UbyBjaGFuZ2UgeW91ciBQQVRIOjwvdT4mbmJzcDsgRG8gdGhpcyB1bmRlciBOVCBieSB1c2luZyB0aGUgU3lzdGVtCmNvbnRyb2wgcGFuZWwuIFBpY2sgdGhlICZxdW90O0Vudmlyb25tZW50JnF1b3Q7IHRhYiwgc2VsZWN0IHRoZSB2YXJpYWJsZSBQQVRICmluIHRoZSBsb3dlciBib3guJm5ic3A7IEluIHRoZSAmcXVvdDt2YWx1ZSZxdW90OyBib3gsIGFwcGVuZCB0aGUgc3RyaW5nCiZxdW90Oztkcml2ZTpcLi4uXGljdVxiaW5cRGVidWcmcXVvdDsgYXQgdGhlIGVuZCBvZiB0aGUgcGF0aCBzdHJpbmcuJm5ic3A7IElmCnRoZXJlIGlzIG5vdGhpbmcgdGhlcmUsIGp1c3QgdHlwZSBpbiAmcXVvdDtkcml2ZTpcLi4uXGljdVxiaW5cRGVidWcmcXVvdDsuCkNsaWNrIHRoZSBTZXQgYnV0dG9uLCB0aGVuIHRoZSBPayBidXR0b24uIDwvcD4KCjxwPjx1Pkxpbmsgd2l0aCBSdW50aW1lIGxpYnJhcmllczo8L3U+IEFsbCB0aGUgRExMcyBsaW5rIHdpdGggdGhlIEMgcnVudGltZQpsaWJyYXJ5ICZxdW90O0RlYnVnIE11bHRpdGhyZWFkZWQgRExMJnF1b3Q7IG9yICZxdW90O011bHRpdGhyZWFkZWQgRExMLiZxdW90OwooVGhpcyBpcyBjaGFuZ2VkIHRocm91Z2ggdGhlIFByb2plY3QgU2V0dGluZ3MgZGlhbG9nLCBvbiB0aGUgQy9DKysgdGFiLCB1bmRlcgpDb2RlIEdlbmVyYXRpb24uKSBJdCBpcyBpbXBvcnRhbnQgdGhhdCBhbnkgZXhlY3V0YWJsZSBvciBvdGhlciBETEwgeW91IGJ1aWxkCndoaWNoIHVzZXMgdGhlIEludGVybmF0aW9uYWwgQ29tcG9uZW50cyBmb3IgVW5pY29kZSBETExzIGxpbmtzIHdpdGggdGhlc2UKcnVudGltZSBsaWJyYXJpZXMgYXMgd2VsbC4gSWYgeW91IGRvIG5vdCBkbyB0aGlzLCB5b3Ugd2lsbCBzZWVtaW5nbHkgZ2V0IG1lbW9yeQplcnJvcnMgd2hlbiB5b3UgcnVuIHRoZSBleGVjdXRhYmxlLiA8YnI+CiZuYnNwOyA8L3A+Cgo8cD48YSBuYW1lPU9TMzkwPjxzdHJvbmc+T1MvMzkwIFBsYXRmb3JtPC9zdHJvbmc+PC9wPgoKPHA+SWYgeW91IGFyZSBidWlsZGluZyBvbiB0aGUgT1MvMzkwIFVOSVggU3lzdGVtIFNlcnZpY2VzIHBsYXRmb3JtLCBpdCBpcwppbXBvcnRhbnQgdGhhdCB5b3UgdW5kZXJzdGFuZCBhIGZldyBkZXRhaWxzOjwvcD4KPHVsPgogICAgPGxpPlRoZSBnbnUgdXRpbGl0aWVzIGdtYWtlIGFuZCBnemlwL2d1bnppcCBhcmUgbmVlZGVkIGFuZCBjYW4gYmUgb2J0YWluZWQgZm9yCiAgICAgICAgT1MvMzkwIGZyb20gPGEgaHJlZj0iaHR0cDovL3d3dy5ta3MuY29tLyI+aHR0cDovL3d3dy5ta3MuY29tLzwvYT4uCiAgICAgICAgU2VhcmNoIGZvciBPUy8zOTAsIHJlZ2lzdGVyLCBhbmQgZm9sbG93IGRvd25sb2FkIGRpcmVjdGlvbnMuPC9saT4KICAgIDxsaT5FbmNvZGluZyBjb25zaWRlcmF0aW9uczogVGhlIHNvdXJjZSBjb2RlIGFzc3VtZXMgdGhhdCBpdCBpcyBjb21waWxlZAogICAgICAgIHdpdGggY29kZXBhZ2UgMTA0NyAodG8gYmUgZXhhY3QsIHRoZSBVTklYIFN5c3RlbSBTZXJ2aWNlcyB2YXJpYW50IG9mIGl0KS4KICAgICAgICBUaGUgcGF4IGNvbW1hbmQgY29udmVydHMgYWxsIG9mIHRoZSBzb3VyY2UgY29kZSBmaWxlcyBmcm9tIEFTQ0lJCiAgICAgICAgdG8gY29kZXBhZ2UgMTA0NyAoVVNTKSBFQkNESUMuIEhvd2V2ZXIsIHNvbWUgZmlsZXMgYXJlIGJpbmFyeSBmaWxlcwogICAgICAgIGFuZCBtdXN0IG5vdCBiZSBjb252ZXJ0ZWQsIG9yIG11c3QgYmUgY29udmVydGVkIGJhY2sgdG8gdGhlaXIgb3JpZ2luYWwKICAgICAgICBzdGF0ZS4KICAgICAgICBUaG9zZSBmaWxlcyBhcmU6PHVsPgogICAgICAgIDxsaT5BbGwgdGhlIC5icmsgZmlsZXMgbG9jYXRlZCBpbiB0aGUgaWN1L2RhdGEgZGlyZWN0b3J5IChpY3UvZGF0YS8qLmJyayk8L2xpPgogICAgICAgIDxsaT5pY3Uvc291cmNlL3Rlc3QvdGVzdGRhdGEvdW5pLXRleHQudHh0PC9saT4KICAgICAgICA8bGk+aWN1L3NvdXJjZS90ZXN0L3Rlc3RkYXRhL3RoMTgwNTcudHh0PC9saT4KICAgICAgICA8L3VsPgogICAgICAgIFN1Y2ggYSBjb252ZXJzaW9uIGNhbiBiZSBkb25lIHVzaW5nIGljb252Ojxicj4KICAgICAgICA8Y29kZT5pY29udiAtZiBJQk0tMTA0NyAtdCBJU084ODU5LTEgdW5pLXRleHQudHh0ID4gdW5pLXRleHQudHh0PC9jb2RlPjwvbGk+CiAgICA8bGk+RExMIGRpcmVjdG9yaWVzIGFuZCB0aGUgTElCUEFUSCBzZXR0aW5nOgogICAgICAgIEJ1aWxkaW5nIGFuZCB0ZXN0aW5nIElDVSBuZWVkcyB0aGUgSUNVIGxpYnJhcmllcyBvbiB0aGUgTElCUEFUSC4KICAgICAgICBJbiBvdGhlciB3b3JkcywgdGhlIExJQlBBVEggc2hvdWxkIGNvbnRhaW4KICAgICAgICAoZWFjaCBwYXRoIHByZXBlbmRlZCB3aXRoIHRoZSByb290IGRpcmVjdG9yeSB0aGF0IGNvbnRhaW5zIHRoZSBpY3UgZGlyZWN0b3J5KToKICAgICAgICA8dWw+CiAgICAgICAgICAgIDxsaT5pY3Uvc291cmNlL2NvbW1vbjwvbGk+CiAgICAgICAgICAgIDxsaT5pY3Uvc291cmNlL2kxOG48L2xpPgogICAgICAgICAgICA8bGk+aWN1L3NvdXJjZS90b29scy9jdGVzdGZ3PC9saT4KICAgICAgICAgICAgPGxpPmljdS9zb3VyY2UvdG9vbHMvdG9vbHV0aWw8L2xpPgogICAgICAgICAgICA8bGk+aWN1L3NvdXJjZS9leHRyYS91c3RkaW88L2xpPgogICAgICAgIDwvdWw+PC9saT4KICAgIDxsaT48cD5PUy8zOTAgc3VwcG9ydHMgYm90aCBuYXRpdmUgUy8zOTAgaGV4YWRlY2ltYWwgZmxvYXRpbmcgcG9pbnQgYW5kLCB3aXRoIFZlcnNpb24KICAgICAgICAyLjYgYW5kIGxhdGVyLCBJRUVFIGJpbmFyeQogICAgICAgIGZsb2F0aW5nIHBvaW50LiBUaGlzIGlzIGEgY29tcGlsZSB0aW1lIG9wdGlvbi4gQXBwbGljYXRpb25zIGJ1aWx0IHdpdGggSUVFRQogICAgICAgIHNob3VsZCB1c2UgSUNVIGRsbHMgdGhhdCBhcmUKICAgICAgICBidWlsdCB3aXRoIElFRUUgKGFuZCB2aWNlIHZlcnNhKS4gVGhlIGVudmlyb25tZW50IHZhcmlhYmxlIElFRUUzOTA9MSB3aWxsIGNhdXNlCiAgICAgICAgdGhlIE9TLzM5MCB2ZXJzaW9uCiAgICAgICAgb2YgSUNVIHRvIGJlIGJ1aWx0IHdpdGggSUVFRSBmbG9hdGluZyBwb2ludC4gVGhlIGRlZmF1bHQgaXMgbmF0aXZlIGhleGFkZWNpbWFsCiAgICAgICAgZmxvYXRpbmcgcG9pbnQuPGJyPgogICAgICAgIDxlbT5JbXBvcnRhbnQ6IDwvZW0+Q3VycmVudGx5IChJQ1UgMS40LjIpLCBuYXRpdmUgZmxvYXRpbmcgcG9pbnQgc3VwcG9ydAogICAgICAgIGlzIHN1ZmZpY2llbnQgZm9yIGNvZGVwYWdlIGNvbnZlcnNpb24sIHJlc291cmNlIGJ1bmRsZSBhbmQgVW5pY29kZVN0cmluZyBvcGVyYXRpb25zLAogICAgICAgIGJ1dCB0aGUgRm9ybWF0IEFQSXMsIGVzcGVjaWFsbHkgQ2hvaWNlRm9ybWF0LCByZXF1aXJlIElFRUUgYmluYXJ5IGZsb2F0aW5nIHBvaW50LjwvcD4KICAgICAgICA8cD5FeGFtcGxlcyBmb3IgY29uZmlndXJpbmcgSUNVOjxicj4KICAgICAgICBEZWJ1ZyBidWlsZDogPGNvZGU+SUVFRTM5MD0xIC4vY29uZmlndXJlPC9jb2RlPjxicj4KICAgICAgICBSZWxlYXNlIGJ1aWxkOiA8Y29kZT5DRkxBR1M9LTIgSUVFRTM5MD0xIC4vY29uZmlndXJlPC9jb2RlPjwvcD48L2xpPgogICAgPGxpPlRoZSBtYWtlZGVwIGV4ZWN1dGFibGUgdGhhdCBpcyB1c2VkIHdpdGggdGhlIE9TLzM5MCBJQ1UgYnVpbGQKICAgICAgICBwcm9jZXNzIGlzIG5vdCBzaGlwcGVkIHdpdGggSUNVLiBJdCBpcyBhdmFpbGFibGUgYXQgdGhlCiAgICAgICAgPGEgaHJlZj0iaHR0cDovL3d3dy5zMzkwLmlibS5jb20vcHJvZHVjdHMvb2UvYnB4YTF0eTIuaHRtbCI+T1MvMzkwIFVOSVggLSBUb29scyBhbmQgVG95czwvYT4KICAgICAgICBzaXRlLiBUaGUgUEFUSAogICAgICAgIGVudmlyb25tZW50IHZhcmlhYmxlIHNob3VsZCBiZSB1cGRhdGVkIHRvIGNvbnRhaW4gdGhlIGxvY2F0aW9uIG9mIHRoaXMKICAgICAgICBleGVjdXRhYmxlIHByaW9yIHRvIGJ1aWxkLgogICAgICAgIEFsdGVybmF0aXZlbHksIG1ha2VkZXAgbWF5IGJlIG1vdmVkIGludG8gYW4gZXhpc3RpbmcgUEFUSCBkaXJlY3RvcnkuPC9saT4KICAgIDxsaT5XaGVuIHJ1bm5pbmcgdGhlIHRlc3Qgc3VpdGUsIHRoZSBUWiBlbnZpcm9ubWVudCB2YXJpYWJsZSBzaG91bGQgYmUgc2V0IHRvCiAgICAgICAgZXhwb3J0IFRaPSZxdW90O1BTVDhQRFQmcXVvdDsgc28KICAgICAgICB0aGF0IHRpbWUgem9uZSBjb21wYXJpc29ucyBhcmUgY29ycmVjdC48L2xpPgo8L3VsPgoKPHA+PGEgbmFtZT1PUzQwMD48c3Ryb25nPk9TLzQwMCBQbGF0Zm9ybTwvc3Ryb25nPjwvYT48L3A+CgogSUNVIFJlZmVyZW5jZSBSZWxlYXNlIDEuNC4wIGNvbnRhaW5zIHBhcnRpYWwgc3VwcG9ydCBmb3IgdGhlICA0MDAKcGxhdGZvcm0sIGJ1dCBhZGRpdGlvbmFsIHdvcmsgYnkgdGhlIHVzZXIgaXMgY3VycmVudGx5IG5lZWRlZCB0byBnZXQKaXQgdG8gYnVpbGQgY29tcGxldGVseS4KIEEgZnV0dXJlIHJlbGVhc2Ugb2YgdGhlIElDVSBzaG91bGQgd29yayBvdXQtb2YtdGhlLWJveAp1bmRlciBPUy80MDAuCjxVTD4KICAgPExJPiBSZXF1aXJlbWVudHM6CiAgICAgIDxVTD4KICAgICAgICAgIDxMST4gICAgUVNIRUxMIGludGVycHJldGVyIGluc3RhbGxlZCAoaW5zdGFsbCBiYXNlIG9wdGlvbiAzMCwgIG9wZXJhdGluZwpzeXN0ZW0pCiAgICAgICAgIDxMST4gICAgUVNoZWxsIFV0aWxpdGllcywgIFBSUFEgIDU3OTktWEVICiAgICAgICAgICA8TEk+ICAgICBJTEUgQysrIGZvciBBUy80MDAsICBQUlBRIDU3OTktR0RXCiAgICAgICAgICAgPExJPiAgICBHTlUgZmFjaWxpdGllcyAgKHRoZSBnbnUgZmFjaWxpdGllcyBhcmUgY3VycmVudGx5IGF2YWlsYWJsZSBieSByZXF1ZXN0IG9ubHkuICBTZW5kIGUtbWFpbCB0byA8QSBIUkVGPSJtYWlsdG86cmNoYXNnbzQwMEB1cy5pYm0uY29tIj5yY2hhc2dvNDAwQHVzLmlibS5jb208L0E+ICkKCiAgICAgIDxQPjwvVUw+IDwhLS0gZW5kIHJlcXVpcmVtZW50cyAtLT4KICAgPExJPiBCdWlsZCBlbnZpcm9ubWVudCBzZXR1cDoKICAgICAgPE9MPgo8TEk+IENyZWF0ZSBBUzQwMCB0YXJnZXQgbGlicmFyeS4gICBUaGlzIGxpYnJhcnkgd2lsbCBiZSB0aGUgdGFyZ2V0ICBmb3IgdGhlCnJlc3VsdGluZyAgbW9kdWxlcywgcHJvZ3JhbXMgYW5kIHNlcnZpY2UgcHJvZ3JhbXMuICBZb3Ugd2lsbCBzcGVjaWZ5IHRoaXMKbGlicmFyeSBvbiB0aGUgT1VUUFVURElSIGVudmlyb25tZW50IHZhcmlhYmxlIGluIHN0ZXAgMi4KPExJPiAgU2V0IHVwIHRoZSBmb2xsb3dpbmcgZW52aXJvbm1lbnQgdmFyaWFibGVzIGluIHlvdXIgYnVpbGQgcHJvY2VzcyAodXNlCkFEREVOVlZBUiBvciBXUktFTlZWQVIgQ0wgY29tbWFuZHMpCjxVTD4KICAgICAgQ0MgIC0gJy91c3IvYmluL2ljYyc8QlI+CiAgICAgIENYWCAgLSAnIC91c3IvYmluL2ljYyc8QlI+CiAgICAgIE1BS0UgICAtICcvdXNyL2Jpbi9nbWFrZSc8QlI+CiAgICAgIE9VVFBVVERJUiAgLSA8ST5pZGVudGlmaWVzIHRhcmdldCBhczQwMCBsaWJyYXJ5IGZvciAqbW9kdWxlLCAqcGdtIGFuZAoqc3J2cGdtIG9iamVjdHM8L0k+CjxQPjwvVUw+CjxMST4gQWRkIFFDWFhOLCAgdG8geW91ciBidWlsZCBwcm9jZXNzIGxpYnJhcnkgbGlzdC4gIFRoaXMgcmVzdWx0cyBpbiB0aGUKcmVzb2x1dGlvbiBvZiBDUlRDUFBNT0QgdXNlZCBieSB0aGUgaWNjIGNvbXBpbGVyCjxMST4gQ29uZmlndXJlIHRoZSBNYWtlZmlsZXMgKHNlZSBjb25maWd1cmUgYmVsb3cpICBOb3RlOiAgVmVyaWZ5IHRoYXQgdGhlCm1oLW9zNDAwIGNvbmZpZ3VyZSAgZmlsZSBpcyB1c2VkLgo8VUw+ICAgICAgCiAgIDxMST4gUnVuICdjb25maWd1cmUgLS1ob3N0PWFzNDAwLW9zNDAwJyAKICAgPExJPiBDaGFuZ2UgdGhlIFRBUkdFVCBlbnRyaWVzIGluIAogICA8VFQ+Y29tbW9uL01ha2VmaWxlLmluLCBpMThuL01ha2VmaWxlLmluLCB0b29scy90b29sdXRpbC9NYWtlZmlsZS5pbiA8L1RUPiAgc28gdGhhdCBpbnN0ZWFkCiAgIG9mIDxUVD5UQVJHRVQ9PFU+bGliaWN1LTwvVT51Yy4kKFNPKTwvVFQ+IHRoZXkgcmVhZAogICA8VFQ+VEFSR0VUPTxCPiQoTElCSUNVKTwvQj51Yy4kKFNPKTwvVFQ+IFtyZW1vdmUgaHlwaGVuc10KICAgPExJPiBDaGFuZ2UgTWFrZWZpbGUuaW4ncyAodW5kZXIgc291cmNlL3Rvb2xzKSB0aGF0IGhhdmUKICAgTElCSUNVLVRPT0xVVElMIHNvIHRoYXQgaXQgZm9sbG93cyB0aGUgb3RoZXIgTElCSUNVIHZhcmlhYmxlcyBvbgogICB0aGUgbGluayBsaW5lOgogICA8VFQ+JChMSUJJQ1UtVUMpJm5ic3A7JChMSUJJQ1UtVE9PTFVUSUwpJm5ic3A7QExJQlNAJm5ic3A7QExJQl9NQDwvVFQ+CiAgIDxMST4gVGhlICdjbGVhbicgYW5kICdpbnN0YWxsJyB0YXJnZXRzIHdpbGwgbm90IHdvcmsgd2l0aG91dCBjaGFuZ2VzCmJlY2F1c2Ugb2Ygc3ltYm9saWMgbGlua3MuIFRvIGRlbGV0ZSB0aGUgdGFyZ2V0IG1vZHVsZSwgcHJvZ3JhbSwgb3Igc2VydmljZSBwcm9ncmFtcyByZXBsYWNlIDxUVD5ybSAtcmY8L1RUPiB3aXRoIDxCPiQoUk1WKTwvQj4sIGFuZCBpbiB0aGUKICAgbGlicmFyeSBpbnN0YWxsYXRpb24gdGFyZ2V0cyAoaW5zdGFsbC1saWJyYXJ5KSBjaGFuZ2UKICAgPFRUPiQoSU5TVEFMTCk8L1RUPiB0byA8Qj48VFQ+JChJTlNUQUxMLVMpPC9UVD48L0I+Lgo8UD48L1VMPiAKCjxMST4gZ21ha2UgLWUgICAoLWUgdG8gcGlja3VwIHRoZSBjb21waWxlcnMpCiAgICAgIDxQPjwvT0w+IDwhLS0gZW5kIGJ1aWxkIGVudmlyb25tZW50IC0tPgo8L1VMPgoKTm90ZSBvbiBOVUxMIHBvaW50ZXIgY2hlY2tzOgo8VUw+CkluIGNvbW1vbi91Y252LmMgYW5kIGNvbW1vbi91bmlzdHIuYyAoc2VhcmNoIGZvciBVX01BWF9QVFIpLCB0aGVyZSBhcmUKYWRkaXRpb25hbCBjaGVja3MgZm9yIE5VTEwgcG9pbnRlcnMuICBUaGlzIGlzIGJlY2F1c2UgcG9pbnRlcgpjb21wYXJpc29uIHdvcmtzIGRpZmZlcmVudGx5IG9uIHRoZSBBUy80MDAgYXJjaGl0ZWN0dXJlLgo8L1VMPgoKPGgzPjxhIG5hbWU9SG93VG9JbnN0YWxsPjwvYT48dT5Ib3cgdG8gSW5zdGFsbC9CdWlsZCBvbiBXaW4gTlQ8L3U+PC9oMz4KCjxwPkJ1aWxkaW5nIEludGVybmF0aW9uYWwgQ29tcG9uZW50cyBmb3IgVW5pY29kZSByZXF1aXJlczogPC9wPgoKPHVsIHR5cGU9ZGlzYz4KIDxsaSBjbGFzcz1Nc29Ob3JtYWwgc3R5bGU9J21zby1tYXJnaW4tdG9wLWFsdDphdXRvO21zby1tYXJnaW4tYm90dG9tLWFsdDphdXRvOwogICAgIG1zby1saXN0OmwxNiBsZXZlbDEgbGZvMzE7dGFiLXN0b3BzOmxpc3QgLjVpbic+TWljcm9zb2Z0IE5UIDMuNTEgb3IgYWJvdmU8L2xpPgogPGxpIGNsYXNzPU1zb05vcm1hbCBzdHlsZT0nbXNvLW1hcmdpbi10b3AtYWx0OmF1dG87bXNvLW1hcmdpbi1ib3R0b20tYWx0OmF1dG87CiAgICAgbXNvLWxpc3Q6bDE2IGxldmVsMSBsZm8zMTt0YWItc3RvcHM6bGlzdCAuNWluJz5NaWNyb3NvZnQgVmlzdWFsIEMrKyA2LjAKICAgICAoU2VydmljZSBQYWNrIDIgaXMgcmVxdWlyZWQgdG8gd29yayB3aXRoIHRoZSByZWxlYXNlIGJ1aWxkIG9mIG1heCBzcGVlZAogICAgIG9wdGltaXphdGlvbikuPC9saT4KPC91bD4KCjxwPlRoZSBzdGVwcyBhcmU6IDwvcD4KCjxvbCBzdGFydD0xIHR5cGU9MT4KIDxsaSBjbGFzcz1Nc29Ob3JtYWwgc3R5bGU9J21zby1tYXJnaW4tdG9wLWFsdDphdXRvO21zby1tYXJnaW4tYm90dG9tLWFsdDphdXRvOwogICAgIG1zby1saXN0OmwxMSBsZXZlbDEgbGZvMzQ7dGFiLXN0b3BzOmxpc3QgLjVpbic+VW56aXAgdGhlIGljdS1YWFhYLnppcAogICAgIGZpbGUsIHR5cGUgJnF1b3Q7dW56aXAgLWEgaWN1LVhYWFguemlwIC1kIGRyaXZlOlxkaXJlY3RvcnkmcXVvdDsgdW5kZXIKICAgICBjb21tYW5kIHByb21wdCBvciB1c2UgV2luWmlwLiZuYnNwOyBkcml2ZTpcZGlyZWN0b3J5XGljdSBpcyB0aGUgcm9vdAogICAgICgkUm9vdCkgZGlyZWN0b3J5ICh5b3UgbWF5IGJ1dCBkb24ndCBuZWVkIHRvIHBsYWNlICZxdW90O2ljdSZxdW90OyBpbnRvIGFub3RoZXIKICAgICBkaXJlY3RvcnkpLiBJZiB5b3UgY2hhbmdlIHRoZSByb290LCB5b3Ugd2lsbCBjaGFuZ2UgdGhlIHByb2plY3Qgc2V0dGluZ3MKICAgICBhY2NvcmRpbmdseSBpbiBFQUNIIG1ha2VmaWxlIGluIHRoZSBwcm9qZWN0LCB1cGRhdGluZyB0aGUgJnF1b3Q7aW5jbHVkZSZxdW90OwogICAgIGFuZCAmcXVvdDtsaWJyYXJ5JnF1b3Q7IHBhdGhzLjwvbGk+CiA8bGkgY2xhc3M9TXNvTm9ybWFsIHN0eWxlPSdtc28tbWFyZ2luLXRvcC1hbHQ6YXV0bzttc28tbWFyZ2luLWJvdHRvbS1hbHQ6YXV0bzsKICAgICBtc28tbGlzdDpsMTEgbGV2ZWwxIGxmbzM0O3RhYi1zdG9wczpsaXN0IC41aW4nPlNldCB0aGUgZW52aXJvbm1lbnQKICAgICB2YXJpYWJsZSA8c3Ryb25nPklDVV9EQVRBPC9zdHJvbmc+LCB0aGUgZnVsbCBwYXRobmFtZSBvZiB0aGUgZGF0YQogICAgIGRpcmVjdG9yeSwgdG8gaW5kaWNhdGUgd2hlcmUgdGhlIGxvY2FsZSBkYXRhIGZpbGVzIGFuZCBjb252ZXJzaW9uIG1hcHBpbmcKICAgICB0YWJsZXMgYXJlLjwvbGk+CiA8bGkgY2xhc3M9TXNvTm9ybWFsIHN0eWxlPSdtc28tbWFyZ2luLXRvcC1hbHQ6YXV0bzttc28tbWFyZ2luLWJvdHRvbS1hbHQ6YXV0bzsKICAgICBtc28tbGlzdDpsMTEgbGV2ZWwxIGxmbzM0O3RhYi1zdG9wczpsaXN0IC41aW4nPlN0YXJ0IE1pY3Jvc29mdCBWaXN1YWwgQysrCiAgICAgNi4wLjwvbGk+CiA8bGkgY2xhc3M9TXNvTm9ybWFsIHN0eWxlPSdtc28tbWFyZ2luLXRvcC1hbHQ6YXV0bzttc28tbWFyZ2luLWJvdHRvbS1hbHQ6YXV0bzsKICAgICBtc28tbGlzdDpsMTEgbGV2ZWwxIGxmbzM0O3RhYi1zdG9wczpsaXN0IC41aW4nPkNob29zZSAmcXVvdDtGaWxlJnF1b3Q7CiAgICAgbWVudSBhbmQgc2VsZWN0ICZxdW90O09wZW4gV29ya1NwYWNlJnF1b3Q7LjwvbGk+CiA8bGkgY2xhc3M9TXNvTm9ybWFsIHN0eWxlPSdtc28tbWFyZ2luLXRvcC1hbHQ6YXV0bzttc28tbWFyZ2luLWJvdHRvbS1hbHQ6YXV0bzsKICAgICBtc28tbGlzdDpsMTEgbGV2ZWwxIGxmbzM0O3RhYi1zdG9wczpsaXN0IC41aW4nPkluIHRoZSBmaWxlIGNob29zZXIsIGNob29zZQogICAgIGljdVxzb3VyY2VcYWxsaW5vbmVcYWxsaW5vbmUuZHN3LiBPcGVuIHRoaXMgd29ya3NwYWNlLjwvbGk+CiA8bGkgY2xhc3M9TXNvTm9ybWFsIHN0eWxlPSdtc28tbWFyZ2luLXRvcC1hbHQ6YXV0bzttc28tbWFyZ2luLWJvdHRvbS1hbHQ6YXV0bzsKICAgICBtc28tbGlzdDpsMTEgbGV2ZWwxIGxmbzM0O3RhYi1zdG9wczpsaXN0IC41aW4nPlRoaXMgd29ya3NwYWNlIGluY2x1ZGVzIGFsbAogICAgIHRoZSBJbnRlcm5hdGlvbmFsIENvbXBvbmVudHMgZm9yIFVuaWNvZGUgbGlicmFyaWVzLCBuZWNlc3NhcnkgdG9vbHMgYXMKICAgICB3ZWxsIGFzIGludGx0ZXN0IGFuZCBjaW50bHRlc3QgdGVzdCBzdWl0ZSBwcm9qZWN0cy48L2xpPgogPGxpIGNsYXNzPU1zb05vcm1hbCBzdHlsZT0nbXNvLW1hcmdpbi10b3AtYWx0OmF1dG87bXNvLW1hcmdpbi1ib3R0b20tYWx0OmF1dG87CiAgICAgbXNvLWxpc3Q6bDExIGxldmVsMSBsZm8zNDt0YWItc3RvcHM6bGlzdCAuNWluJz5TZXQgdGhlIGFjdGl2ZSBQcm9qZWN0LgogICAgIENob29zZSAmcXVvdDtQcm9qZWN0JnF1b3Q7IG1lbnUgYW5kIHNlbGVjdCAmcXVvdDtTZXQgYWN0aXZlIHByb2plY3QmcXVvdDsuCiAgICAgSW4gdGhlIHN1Ym1lbnUsIHNlbGVjdCAmcXVvdDthbGwmcXVvdDsgd29ya3NwYWNlLjwvbGk+CiA8bGkgY2xhc3M9TXNvTm9ybWFsIHN0eWxlPSdtc28tbWFyZ2luLXRvcC1hbHQ6YXV0bzttc28tbWFyZ2luLWJvdHRvbS1hbHQ6YXV0bzsKICAgICBtc28tbGlzdDpsMTEgbGV2ZWwxIGxmbzM0O3RhYi1zdG9wczpsaXN0IC41aW4nPlNldCB0aGUgYWN0aXZlCiAgICAgY29uZmlndXJhdGlvbiAoJnF1b3Q7V2luMzIgRGVidWcmcXVvdDsgb3IgJnF1b3Q7V2luMzIgUmVsZWFzZSZxdW90OykgYW5kCiAgICAgbWFrZSBzdXJlIHRoaXMgbWF0Y2hlcyB5b3VyIFBBVEggc2V0dGluZyBhcyBkZXNjcmliZWQgaW4gdGhlIHByZXZpb3VzCiAgICAgY2hhcHRlci4gKFNlZSBub3RlIGJlbG93Lik8L2xpPgogPGxpIGNsYXNzPU1zb05vcm1hbCBzdHlsZT0nbXNvLW1hcmdpbi10b3AtYWx0OmF1dG87bXNvLW1hcmdpbi1ib3R0b20tYWx0OmF1dG87CiAgICAgbXNvLWxpc3Q6bDExIGxldmVsMSBsZm8zNDt0YWItc3RvcHM6bGlzdCAuNWluJz5DaG9vc2UgJnF1b3Q7QnVpbGQmcXVvdDsKICAgICBtZW51IGFuZCBzZWxlY3QgJnF1b3Q7UmVidWlsZCBBbGwmcXVvdDsuIElmIHlvdSB3YW50IHRvIGJ1aWxkIHRoZSBEZWJ1ZwogICAgIGFuZCBSZWxlYXNlIGNvbmZpZ3VyYXRpb25zIGF0IHRoZSBzYW1lIHRpbWUsIGNob29zZSAmcXVvdDtCdWlsZCZxdW90OyBtZW51CiAgICAgYW5kIHNlbGVjdCAmcXVvdDtCYXRjaCBCdWlsZC4uLiZxdW90OyBpbnN0ZWFkIChhbmQgbWFyayBhbGwgY29uZmlndXJhdGlvbnMKICAgICBhcyBjaGVja2VkKSwgdGhlbiBjbGljayB0aGUgYnV0dG9uIG5hbWVkICZxdW90O1JlYnVpbGQgQWxsJnF1b3Q7LjwvbGk+CiA8bGkgY2xhc3M9TXNvTm9ybWFsIHN0eWxlPSdtc28tbWFyZ2luLXRvcC1hbHQ6YXV0bzttc28tbWFyZ2luLWJvdHRvbS1hbHQ6YXV0bzsKICAgICBtc28tbGlzdDpsMTEgbGV2ZWwxIGxmbzM0O3RhYi1zdG9wczpsaXN0IC41aW4nPlRoZSAmcXVvdDthbGwmcXVvdDsKICAgICB3b3Jrc3BhY2Ugd2lsbCBidWlsZCBhbGwgdGhlIHRlc3QgcHJvZ3JhbXMgYXMgd2VsbCBhcyB0aGUgdG9vbHMgZm9yCiAgICAgZ2VuZXJhdGluZyBiaW5hcnkgbG9jYWxlIGRhdGEgZmlsZXMuJm5ic3A7IFRoZSAmcXVvdDttYWtlZGF0YSZxdW90OwogICAgIHByb2plY3Qgd2lsbCBiZSBydW4gYXV0b21hdGljYWxseSB0byBjb252ZXJ0IHRoZSBsb2NhbGUgZGF0YSBmaWxlcyBmcm9tCiAgICAgdGV4dCBmb3JtYXQgaW50byBpY3VkYXRhLmRsbC48L2xpPgogPGxpIGNsYXNzPU1zb05vcm1hbCBzdHlsZT0nbXNvLW1hcmdpbi10b3AtYWx0OmF1dG87bXNvLW1hcmdpbi1ib3R0b20tYWx0OmF1dG87CiAgICAgbXNvLWxpc3Q6bDExIGxldmVsMSBsZm8zNDt0YWItc3RvcHM6bGlzdCAuNWluJz5TYXZlIHRoZSB2YWx1ZSBvZiB0aGUgPHN0cm9uZz5UWjwvc3Ryb25nPgogICAgIGVudmlyb25tZW50IHZhcmlhYmxlIGFuZCB0aGVuIHNldCBpdCB0byA8c3Ryb25nPlBTVDhQRFQ8L3N0cm9uZz4uJm5ic3A7IDwvbGk+CiA8bGkgY2xhc3M9TXNvTm9ybWFsIHN0eWxlPSdtc28tbWFyZ2luLXRvcC1hbHQ6YXV0bzttc28tbWFyZ2luLWJvdHRvbS1hbHQ6YXV0bzsKICAgICBtc28tbGlzdDpsMTEgbGV2ZWwxIGxmbzM0O3RhYi1zdG9wczpsaXN0IC41aW4nPlJlb3BlbiB0aGUKICAgICAmcXVvdDthbGxpbm9uZSZxdW90OyBwcm9qZWN0IGZpbGUgYW5kIHJ1biB0aGUgJnF1b3Q7aW50bHRlc3QmcXVvdDsgdGVzdC4KICAgICAmbmJzcDsgUmVzZXQgdGhlIDxzdHJvbmc+VFo8L3N0cm9uZz4gdmFsdWUuPC9saT4KIDxsaSBjbGFzcz1Nc29Ob3JtYWwgc3R5bGU9J21zby1tYXJnaW4tdG9wLWFsdDphdXRvO21zby1tYXJnaW4tYm90dG9tLWFsdDphdXRvOwogICAgIG1zby1saXN0OmwxMSBsZXZlbDEgbGZvMzQ7dGFiLXN0b3BzOmxpc3QgLjVpbic+VG8gcnVuIHRoZSBDIHRlc3Qgc3VpdGUsCiAgICAgc2V0ICZxdW90O2NpbnRsdHN0JnF1b3Q7IGFzIHRoZSBhY3RpdmUgcHJvamVjdCwgcmVwZWF0IHN0ZXBzIDExIGFuZCB0aGVuCiAgICAgcnVuIHRoZSAmcXVvdDtjaW50bHRzdCZxdW90OyB0ZXN0Li48L2xpPgogPGxpIGNsYXNzPU1zb05vcm1hbCBzdHlsZT0nbXNvLW1hcmdpbi10b3AtYWx0OmF1dG87bXNvLW1hcmdpbi1ib3R0b20tYWx0OmF1dG87CiAgICAgbXNvLWxpc3Q6bDExIGxldmVsMSBsZm8zNDt0YWItc3RvcHM6bGlzdCAuNWluJz5CdWlsZCBhbmQgcnVuIGFzIG91dGxpbmVkCiAgICAgYWJvdmUuPC9saT4KPC9vbD4KCjxwPjxiPk5vdGU6IDwvYj5UbyBzZXQgdGhlIGFjdGl2ZSBjb25maWd1cmF0aW9uLCB0d28gZGlmZmVyZW50IHBvc3NpYmlsaXRpZXMgYXJlOgo8L3A+Cgo8dWwgdHlwZT1kaXNjPgogPGxpIGNsYXNzPU1zb05vcm1hbCBzdHlsZT0nbXNvLW1hcmdpbi10b3AtYWx0OmF1dG87bXNvLW1hcmdpbi1ib3R0b20tYWx0OmF1dG87CiAgICAgbXNvLWxpc3Q6bDQgbGV2ZWwxIGxmbzM3O3RhYi1zdG9wczpsaXN0IC41aW4nPkNob29zZSAmcXVvdDtCdWlsZCZxdW90OwogICAgIG1lbnUsIHNlbGVjdCAmcXVvdDtTZXQgQWN0aXZlIENvbmZpZ3VyYXRpb24mcXVvdDssIGFuZCBzZWxlY3QgJnF1b3Q7V2luMzIKICAgICBSZWxlYXNlJnF1b3Q7IG9yICZxdW90O1dpbjMyIERlYnVnJnF1b3Q7LjwvbGk+CiA8bGkgY2xhc3M9TXNvTm9ybWFsIHN0eWxlPSdtc28tbWFyZ2luLXRvcC1hbHQ6YXV0bzttc28tbWFyZ2luLWJvdHRvbS1hbHQ6YXV0bzsKICAgICBtc28tbGlzdDpsNCBsZXZlbDEgbGZvMzc7dGFiLXN0b3BzOmxpc3QgLjVpbic+QW5vdGhlciB3YXkgaXMgdG8gc2VsZWN0CiAgICAgJnF1b3Q7Q3VzdG9taXplJnF1b3Q7IGluIHRoZSAmcXVvdDtUb29scyZxdW90OyBtZW51LCBzZWxlY3QgdGhlCiAgICAgJnF1b3Q7VG9vbGJhcnMmcXVvdDsgdGFiLCBlbmFibGUgJnF1b3Q7QnVpbGQmcXVvdDsgaW5zdGVhZCBvZiAmcXVvdDtCdWlsZAogICAgIE1pbmliYXImcXVvdDssIGFuZCBjbGljayBvbiAmcXVvdDtDbG9zZSZxdW90Oy4gVGhpcyB3aWxsIGJyaW5nIHVwIGEKICAgICB0b29sYmFyIHdoaWNoIHlvdSBjYW4gbW92ZSBhc2lkZSB0aGUgb3RoZXIgcGVybWFuZW50IHRvb2xiYXJzIGF0IHRoZSB0b3AKICAgICBvZiB0aGUgTVNWQyB3aW5kb3cuIFRoZSBhZHZhbnRhZ2UgaXMgdGhhdCB5b3Ugbm93IGhhdmUgYW4gZWFzeS10by1yZWFjaAogICAgIHBvcC11cCBtZW51IHRoYXQgd2lsbCBhbHdheXMgc2hvdyB0aGUgY3VycmVudGx5IHNlbGVjdGVkIGFjdGl2ZQogICAgIGNvbmZpZ3VyYXRpb24uJm5ic3A7IE9yLCB5b3UgY2FuIGRyYWcgdGhlIHByb2plY3QgYW5kIGNvbmZpZ3VyYXRpb24gc2VsZWN0aW9ucwogICAgIGFuZCBkcm9wIHRoZW0gb24gdGhlIG1lbnUgYmFyIGZvciBsYXRlciBzZWxlY3Rpb24uPC9saT4KPC91bD4KCjxwPkl0IGlzIGFsc28gcG9zc2libGUgdG8gYnVpbGQgZWFjaCBsaWJyYXJ5IGluZGl2aWR1YWxseSwgdXNpbmcgdGhlIHdvcmtzcGFjZXMKaW4gZWFjaCByZXNwZWN0aXZlIGRpcmVjdG9yeS4gVGhleSBoYXZlIHRvIGJlIGJ1aWx0IGluIHRoZSBmb2xsb3dpbmcgb3JkZXI6IDxicj4KJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7IDEuIGNvbW1vbiA8YnI+CiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyAyLiBpMThuIDxicj4KJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7IDMuIG1ha2VkYXRhICh3aGljaCBpbnZva2VzIG1ha2Vjb252LApnZW5yYiwgZ2VuY29sLCBnZW5jY29kZSBldGMuKTxicj4KJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7IDQuIGN0ZXN0ZncgPGJyPgombmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsgNS4gaW50bHRlc3QgYW5kIGNpbnRsdHN0LCBpZiB5b3UKd2FudCB0byBydW4gdGhlIHRlc3Qgc3VpdGUuIDxicj4KUmVnYXJkaW5nIHRoZSB0ZXN0IHN1aXRlLCBwbGVhc2UgcmVhZCB0aGUgZGlyZWN0aW9ucyBpbiA8YQpocmVmPSJkb2NzL2ludGx0ZXN0Lmh0bWwiPmRvY3MvaW50bHRlc3QuaHRtbDwvYT4gYW5kIDxhCmhyZWY9ImRvY3MvY2ludGx0c3QuaHRtbCI+ZG9jcy9jaW50bHRzdC5odG1sPC9hPiA8L3A+Cgo8aDM+SG93IHRvIEluc3RhbGwvQnVpbGQgb24gVW5peDwvaDM+Cgo8cD5UaGVyZSBpcyBhIHNldCBvZiBNYWtlZmlsZXMgZm9yIFVuaXggdGhhdCBzdXBwb3J0cyBMaW51eCB3L2djYywgU29sYXJpcwp3L2djYyBhbmQgV29ya3Nob3AgQ0MsIEFJWCB3L3hsYyBhbmQgT1MvMzkwIHdpdGggQysrLjwvcD4KCjxwPkJ1aWxkaW5nIEludGVybmF0aW9uYWwgQ29tcG9uZW50cyBmb3IgVW5pY29kZSBvbiBVbml4IHJlcXVpcmVzOiA8L3A+Cgo8cD5BIFVOSVggQysrIGNvbXBpbGVyLCAoZ2NjLCBjYywgeGxjX3IsIGV0Yy4uLikgaW5zdGFsbGVkIG9uIHRoZSB0YXJnZXQKbWFjaGluZS4gQSByZWNlbnQgdmVyc2lvbiBvZiBHTlUgbWFrZSAoMy43KykuJm5ic3A7Jm5ic3A7IE9TLzM5MCBnbnUgdXRpbGl0aWVzCmZvciBib3RoIG1ha2UgKGdtYWtlKSBhbmQgemlwIChnemlwL2d1bnppcCkgY2FuIGJlIGZvdW5kIGF0IHRoZSBNS1Mgd2ViIHNpdGUgYXQKPGEgaHJlZj0iaHR0cDovL3d3dy5ta3MuY29tIj5odHRwOi8vd3d3Lm1rcy5jb208L2E+LiAmbmJzcDsgUGxlYXNlIGRvIGEgc2VhcmNoCm9uICZxdW90O29zLzM5MCZxdW90Oy48L3A+Cgo8cD5UaGUgc3RlcHMgYXJlOiA8L3A+Cgo8b2wgc3RhcnQ9MSB0eXBlPTE+CiA8bGkgY2xhc3M9TXNvTm9ybWFsIHN0eWxlPSdtc28tbWFyZ2luLXRvcC1hbHQ6YXV0bzttc28tbWFyZ2luLWJvdHRvbS1hbHQ6YXV0bzsKICAgICBtc28tbGlzdDpsMiBsZXZlbDEgbGZvNDA7dGFiLXN0b3BzOmxpc3QgLjVpbic+VW56aXAgdGhlIGljdVhYWFgudGFyIChvcgogICAgIGljdVhYWFgudGd6KSBmaWxlLjwvbGk+CiA8bGkgY2xhc3M9TXNvTm9ybWFsIHN0eWxlPSdtc28tbWFyZ2luLXRvcC1hbHQ6YXV0bzttc28tbWFyZ2luLWJvdHRvbS1hbHQ6YXV0bzsKICAgICBtc28tbGlzdDpsMiBsZXZlbDEgbGZvNDA7dGFiLXN0b3BzOmxpc3QgLjVpbic+QmVmb3JlIHJ1bm5pbmcgdGhlIHRlc3QgcHJvZ3JhbXMKICAgICBvciBzYW1wbGVzLCBwbGVhc2Ugc2V0IHRoZSBlbnZpcm9ubWVudCB2YXJpYWJsZSA8c3Ryb25nPklDVV9EQVRBPC9zdHJvbmc+LAogICAgIHRoZSBmdWxsIHBhdGhuYW1lIG9mIHRoZSBkYXRhIGRpcmVjdG9yeSwgdG8gaW5kaWNhdGUgd2hlcmUgdGhlIGxvY2FsZSBkYXRhCiAgICAgZmlsZXMgYW5kIGNvbnZlcnNpb24gbWFwcGluZyB0YWJsZXMgYXJlLiZuYnNwOyBJZiB0aGlzIHZhcmlhYmxlIGlzIG5vdAogICAgIHNldCwgdGhlIGRlZmF1bHQgdXNlciBkYXRhIGRpcmVjdG9yeSB3aWxsIGJlIHVzZWQuPC9saT4KIDxsaSBjbGFzcz1Nc29Ob3JtYWwgc3R5bGU9J21zby1tYXJnaW4tdG9wLWFsdDphdXRvO21zby1tYXJnaW4tYm90dG9tLWFsdDphdXRvOwogICAgIG1zby1saXN0OmwyIGxldmVsMSBsZm80MDt0YWItc3RvcHM6bGlzdCAuNWluJz5DaGFuZ2UgZGlyZWN0b3J5IHRvIHRoZQogICAgICZxdW90O2ljdS9zb3VyY2UmcXVvdDsuPC9saT4KIDxsaSBjbGFzcz1Nc29Ob3JtYWwgc3R5bGU9J21zby1tYXJnaW4tdG9wLWFsdDphdXRvO21zby1tYXJnaW4tYm90dG9tLWFsdDphdXRvOwogICAgIG1zby1saXN0OmwyIGxldmVsMSBsZm80MDt0YWItc3RvcHM6bGlzdCAuNWluJz5JZiBpdCBpcyBub3QgYWxyZWFkeSBzZXQsCiAgICAgcGxlYXNlIHNldCB0aGUgZXhlY3V0YWJsZSBmbGFnIGZvciB0aGUgZm9sbG93aW5nIGZpbGVzIChieSBleGVjdXRpbmcKICAgICAnY2htb2QgK3gnIGNvbW1hbmQpOiBjb25maWd1cmUsIGluc3RhbGwuc2ggYW5kIGNvbmZpZy4qLCA8L2xpPgogPGxpIGNsYXNzPU1zb05vcm1hbCBzdHlsZT0nbXNvLW1hcmdpbi10b3AtYWx0OmF1dG87bXNvLW1hcmdpbi1ib3R0b20tYWx0OmF1dG87CiAgICAgbXNvLWxpc3Q6bDIgbGV2ZWwxIGxmbzQwO3RhYi1zdG9wczpsaXN0IC41aW4nPllvdSBhbHNvIG5lZWQgdG8gc2V0IG90aGVyCiAgICAgZW52aXJvbm1lbnQgdmFyaWFibGVzIGZvciBkaWZmZXJlbnQgYnVpbGQgc3lzdGVtcy4gVXNlIHRoaXMgPGEKICAgICBocmVmPSJkb2NzL2J1aWxkX2Vudi5odG0iPnRhYmxlPC9hPiBvciBwcm92aWRlZCA8YQogICAgIGhyZWY9InNvdXJjZS9ydW5Db25maWd1cmVJQ1UiPnNjcmlwdDwvYT4uPC9saT4KIDxsaSBjbGFzcz1Nc29Ob3JtYWwgc3R5bGU9J21zby1tYXJnaW4tdG9wLWFsdDphdXRvO21zby1tYXJnaW4tYm90dG9tLWFsdDphdXRvOwogICAgIG1zby1saXN0OmwyIGxldmVsMSBsZm80MDt0YWItc3RvcHM6bGlzdCAuNWluJz5UeXBlICZxdW90Oy4vY29uZmlndXJlJnF1b3Q7CiAgICAgb3IgdHlwZSAmcXVvdDsuL2NvbmZpZ3VyZSAtLWhlbHAmcXVvdDsgdG8gcHJpbnQgdGhlIGF2YWlsYWJsZSBvcHRpb25zLjwvbGk+CiA8bGkgY2xhc3M9TXNvTm9ybWFsIHN0eWxlPSdtc28tbWFyZ2luLXRvcC1hbHQ6YXV0bzttc28tbWFyZ2luLWJvdHRvbS1hbHQ6YXV0bzsKICAgICBtc28tbGlzdDpsMiBsZXZlbDEgbGZvNDA7dGFiLXN0b3BzOmxpc3QgLjVpbic+VHlwZSAmcXVvdDttYWtlJnF1b3Q7IHRvIGNvbXBpbGUKICAgICB0aGUgbGlicmFyaWVzIGFuZCBhbGwgdGhlIGRhdGEgZmlsZXMuJm5ic3A7IE9uIE9TLzM5MCwgYm90aCBJRUVFIGJpbmFyeQogICAgIGZsb2F0aW5nIHBvaW50IGFuZCBuYXRpdmUgUy8zOTAgaGV4YWRlY2ltYWwgZmxvYXRpbmcgcG9pbnQgY2FsY3VsYXRpb25zCiAgICAgYXJlIHN1cHBvcnRlZC4gJm5ic3A7IFRoZSBkZWZhdWx0IGlzIHRvIGJ1aWxkIHdpdGggbmF0aXZlIGZsb2F0aW5nLXBvaW50CiAgICAgc3VwcG9ydC4mbmJzcDsgUGxlYXNlIHNldCB0aGUgZW52aXJvbm1lbnQgdmFyaWFibGUgSUVFRTM5MD0xIGlmIHlvdSB3b3VsZAogICAgIGxpa2UgdG8gbWFrZSB0aGUgSUNVIERMTHMgd2l0aCBJRUVFIGZsb2F0aW5nIHBvaW50IHN1cHBvcnQuPC9saT4KIDxsaSBjbGFzcz1Nc29Ob3JtYWwgc3R5bGU9J21zby1tYXJnaW4tdG9wLWFsdDphdXRvO21zby1tYXJnaW4tYm90dG9tLWFsdDphdXRvOwogICAgIG1zby1saXN0OmwyIGxldmVsMSBsZm80MDt0YWItc3RvcHM6bGlzdCAuNWluJz5PcHRpb25hbGx5LCB0eXBlICZxdW90O21ha2UKICAgICBjaGVjayZxdW90OyB0byB2ZXJpZnkgdGhlIHRlc3Qgc3VpdGUuPC9saT4KIDxsaSBjbGFzcz1Nc29Ob3JtYWwgc3R5bGU9J21zby1tYXJnaW4tdG9wLWFsdDphdXRvO21zby1tYXJnaW4tYm90dG9tLWFsdDphdXRvOwogICAgIG1zby1saXN0OmwyIGxldmVsMSBsZm80MDt0YWItc3RvcHM6bGlzdCAuNWluJz5UeXBlICZxdW90O01ha2UKICAgICBpbnN0YWxsJnF1b3Q7IHRvIGluc3RhbGwuPC9saT4KPC9vbD4KCjxwPkl0IGlzIGFsc28gcG9zc2libGUgdG8gYnVpbGQgZWFjaCBsaWJyYXJ5IGluZGl2aWR1YWxseSwgdXNpbmcgdGhlIE1ha2VmaWxlcwppbiBlYWNoIHJlc3BlY3RpdmUgZGlyZWN0b3J5LiBUaGV5IGhhdmUgdG8gYmUgYnVpbHQgaW4gdGhlIGZvbGxvd2luZyBvcmRlcjogPGJyPgombmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsgMS4gY29tbW9uIDxicj4KJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7IDIuIGkxOG4gPGJyPgombmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsgMy4gbWFrZWNvbnYgPGJyPgombmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsgNC4gZ2VucmI8YnI+CiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyA1LiBnZW5jb2w8YnI+CiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyA2LiBnZW50ejxicj4KJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7IDcuIGdlbmNjb2RlPGJyPgombmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsgOC4gY3Rlc3RmdyA8YnI+CiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyA5LiBpbnRsdGVzdCBhbmQgY2ludGx0c3QsIGlmIHlvdQp3YW50IHRvIHJ1biB0aGUgdGVzdCBzdWl0ZS4gPGJyPgpSZWdhcmRpbmcgdGhlIHRlc3Qgc3VpdGUsIHBsZWFzZSByZWFkIHRoZSBkaXJlY3Rpb25zIGluIDxhCmhyZWY9ImRvY3MvaW50bHRlc3QuaHRtbCI+ZG9jcy9pbnRsdGVzdC5odG1sPC9hPiBhbmQgPGEKaHJlZj0iZG9jcy9jaW50bHRzdC5odG1sIj5kb2NzL2NpbnRsdHN0Lmh0bWw8L2E+IDwvcD4KCjxoMT48YSBuYW1lPWRhdGFoYW5kbGluZz5Ib3cgSUNVIGhhbmRsZXMgZGF0YTwvYT48L2gxPgoKPHNwYW4gc3R5bGU9J21zby1ib29rbWFyazpkYXRhaGFuZGxpbmcnPjwvc3Bhbj4KCjxoMz48dT5Ib3cgdG8gYWRkIGEgbG9jYWxlIGRhdGEgZmlsZTwvdT48L2gzPgoKPHA+VG8gYWRkIGxvY2FsZSBkYXRhIGZpbGVzIHRvIEludGVybmF0aW9uYWwgQ29tcG9uZW50cyBmb3IgVW5pY29kZSBkbyB0aGUKZm9sbG93aW5nOiA8L3A+Cgo8cCBzdHlsZT0nbWFyZ2luLXJpZ2h0Oi41aW47bWFyZ2luLWxlZnQ6LjVpbic+MS4gQ3JlYXRlIGEgZmlsZSBjb250YWluaW5nIHRoZQprZXktdmFsdWUgcGFpcnMgd2hpY2ggdmFsdWUgeW91IGFyZSBvdmVycmlkaW5nIGZyb20gdGhlIHBhcmVudCBsb2NhbGUgZGF0YQpmaWxlLiA8YnI+CiZuYnNwOyZuYnNwOyZuYnNwOyBNYWtlIHN1cmUgdGhlIGZpbGVuYW1lIGlzIHRoZSBsb2NhbGUgSUQgd2l0aCB0aGUgZXh0ZW5zaW9uCiZxdW90Oy50eHQmcXVvdDsuIFdlIHJlY29tbWVuZCB5b3UgY29weSBwYXJlbnQgZmlsZSBhbmQgY2hhbmdlIHRoZSB2YWx1ZXMgPGJyPgombmJzcDsmbmJzcDsmbmJzcDsgdGhhdCBuZWVkIHRvIGJlIGNoYW5nZWQsIHJlbW92ZSBhbGwgb3RoZXIga2V5LXBhaXJzLiBCZSBzdXJlCnRvIHVwZGF0ZSB0aGUgbG9jYWxlIElEIGtleSAodGhlIG91dG1vc3QgYnJhY2UpIHdpdGggPGJyPgombmJzcDsmbmJzcDsmbmJzcDsgdGhlIG5hbWUgb2YgdGhlIGxvY2FsZSBpZCB5b3VyIGEgY3JlYXRpbmcuPC9wPgoKPHAgc3R5bGU9J21hcmdpbi1yaWdodDouNWluO21hcmdpbi1sZWZ0Oi41aW4nPjIuIE5hbWUgdGhlIGZpbGUgd2l0aCBsb2NhbGUgSUQKeW91IGFyZSBjcmVhdGluZyB3aXRoIGEgJnF1b3Q7LnR4dCZxdW90OyBhdCB0aGUgZW5kLjwvcD4KCjxwIHN0eWxlPSdtYXJnaW4tcmlnaHQ6MS4waW47bWFyZ2luLWxlZnQ6MS4waW4nPmUuZy4mbmJzcDsmbmJzcDsmbmJzcDsKZnJfQkYudHh0IDxicj4KV291bGQgY3JlYXRlIGEgbG9jYWxlIHRoYXQgaW5oZXJpdHMgYWxsIHRoZSBrZXktdmFsdWUgcGFpcnMgZnJvbSBmci50eHQuPC9wPgoKPHAgc3R5bGU9J21hcmdpbi1yaWdodDouNWluO21hcmdpbi1sZWZ0Oi41aW4nPjMuIEFkZCB0aGUgbmFtZSBvZiB0aGF0IGZpbGUKKHdpdGhvdXQgdGhlICZxdW90Oy50eHQmcXVvdDsgZXh0ZW5zaW9uKSBhcyBhIHNpbmdsZSBsaW5lIGluCiZxdW90O2luZGV4LnR4dCZxdW90OyBmaWxlIGluIHRoZSBkZWZhdWx0IGxvY2FsZSBkaXJlY3RvcnkgKGljdS9kYXRhLykuPC9wPgoKPHAgc3R5bGU9J21hcmdpbi1yaWdodDouNWluO21hcmdpbi1sZWZ0Oi41aW4nPjQuIFJlZ2VuZXJhdGUgdGhlIGRhdGEgRExMCmZpbGUuJm5ic3A7IFBsZWFzZSBzZWUgJnF1b3Q7PGEgaHJlZj0iI0hvd1RvSW5zdGFsbCI+SG93IHRvIEluc3RhbGw8L2E+JnF1b3Q7CnNlY3Rpb24gZm9yIG1vcmUgZGV0YWlscyBvbiBob3cgdG8gdmVyaWZ5IHRoZSBJQ1UgcmVsZWFzZS48L3A+Cgo8cD48YSBuYW1lPWFkZHJiZGF0YXRvYXBwPjwvYT48Yj48dT48c3BhbiBzdHlsZT0nZm9udC1zaXplOjEzLjVwdCc+SG93IHRvIGFkZApyZXNvdXJjZSBidW5kbGUgZGF0YSB0byB5b3VyIGFwcGxpY2F0aW9uPC9zcGFuPjwvdT48L2I+IDwvcD4KCjxwPkFkZGluZyByZXNvdXJjZSBidW5kbGUgZGF0YSB0byB5b3VyIGFwcGxpY2F0aW9uIGlzIHF1aXRlIHNpbXBsZTogPC9wPgoKPHA+Q3JlYXRlIHJlc291cmNlIGJ1bmRsZSBmaWxlcyB3aXRoIHRoZSByaWdodCBmb3JtYXQgYW5kIG5hbWVzIGluIGEgZGlyZWN0b3J5CmZvciByZXNvdXJjZSBidW5kbGVzIHlvdSBjcmVhdGUgaW4geW91ciBhcHBsaWNhdGlvbiBkaXJlY3RvcnkgdHJlZS4oZm9yIG1vcmUKaW5mb3JtYXRpb24gb2YgdGhhdCBmb3JtYXQgb2YgdGhlc2UgZmlsZXMgc2VlIDxhCmhyZWY9Ii4uL2ljdWh0bWwvUmVzb3VyY2VCdW5kbGUuaHRtbCNET0MuRE9DVSI+cmVzb3VyY2UgYnVuZGxlIGRvY3VtZW50YXRpb248L2E+Cm9yJm5ic3A7IDxhCmhyZWY9Imh0dHA6Ly93d3cuaWJtLmNvbS9qYXZhL2VkdWNhdGlvbi9pbnRlcm5hdGlvbmFsLXVuaWNvZGUvdW5pY29kZWMuaHRtbCI+cmVzb3VyY2UKYnVuZGxlIGZvcm1hdCk8L2E+LiA8YnI+ClBsZWFzZSBub3RlIHRoYXQgcmVzb3VyY2UgYnVuZGxlIHRhZyBuYW1lcyBzaG91bGQgY29udGFpbiBvbmx5IGludmFyaWFudCA3LWJpdApBU0NJSSBjaGFyYWN0ZXJzIChlLmcuIG9uZXMgZnJvbSB0aGUgZm9sbG93aW5nIHNldDogQS1aLCBhLXosIDAtOSwgJmx0O1NQJmd0OywKJnF1b3Q7LCAlLCAmYW1wOywgYCwgKCwgKSwgKiwgKywgLCwgLSwgLiwgLywgOiwgOywgJmx0OywgPSwgJmd0OywgPywgXykuPGJyPgpVc2UgdGhhdCBzYW1lIGRpcmVjdG9yeSBuYW1lIChhYnNvbHV0ZSBwYXRoKSB3aGVuIGluc3RhbnRpYXRpbmcgYSByZXNvdXJjZQpidW5kbGUgYXQgcnVuIHRpbWUuPC9wPgoKPGgzPjxhIG5hbWU9V2hlcmVDb2xsYXRpb24+PC9hPjx1PldoZXJlIENvbGxhdGlvbiBEYXRhIGlzIHN0b3JlZDwvdT48L2gzPgoKPHA+Q29sbGF0aW9uIGRhdGEgaXMgc3RvcmVkIGluIGEgc2luZ2xlIGRpcmVjdG9yeSBvbiBhIGxvY2FsIGRpc2suIEVhY2gKbG9jYWxlJ3MgZGF0YSBpcyBzdG9yZWQgaW4gYSBjb3JyZXNwb25kaW5nIEFTQ0lJIHRleHQgZmlsZSBpbmRpY2F0ZWQgYnkgYQomcXVvdDtDb2xsYXRpb25FbGVtZW50cyZxdW90OyB0YWcgLiBGb3IgaW5zdGFuY2UsIHRoZSBkYXRhIGZvciBkZV9DSCBpcyBzdG9yZWQKd2l0aCBhIHRhZyAmcXVvdDtDb2xsYXRpb25FbGVtZW50cyZxdW90OyBpbiBhIGZpbGUgbmFtZWQgJnF1b3Q7ZGVfQ0gudHh0JnF1b3Q7LgpSZWFkaW5nIHRoZSBjb2xsYXRpb24gZGF0YSBmcm9tIHRoZXNlIGZpbGVzIGNhbiBiZSB0aW1lLWNvbnN1bWluZywgZXNwZWNpYWxseQpmb3IgbGFyZ2UgcGllY2VzIG9mIGRhdGEgdGhhdCBvY2N1ciBpbiBsYW5ndWFnZXMgc3VjaCBhcyBKYXBhbmVzZS4gRm9yIHRoaXMKcmVhc29uLCB0aGUgQ29sbGF0aW9uIEZyYW1ld29yayBpbXBsZW1lbnRzIGEgc2Vjb25kIGZpbGUgZm9ybWF0LCBhCnBlcmZvcm1hbmNlLW9wdGltaXplZCwgbm9uLXBvcnRhYmxlLCBiaW5hcnkgZm9ybWF0LiBUaGVzZSBiaW5hcnkgZmlsZXMgYXJlCmdlbmVyYXRlZCBhdXRvbWF0aWNhbGx5IGJ5IHRoZSBmcmFtZXdvcmsgdGhlIGZpcnN0IHRpbWUgYSBjb2xsYXRpb24gdGFibGUgaXMKcGFyc2VkLiBUaGV5IGhhdmUgbmFtZXMgb2YgdGhlIGZvcm0gJnF1b3Q7ZGVfQ0guY29sJnF1b3Q7LiBPbmNlIHRoZSBmaWxlcyBhcmUKZ2VuZXJhdGVkIGJ5IHRoZSBmcmFtZXdvcmssIGZ1dHVyZSBsb2FkaW5nIG9mIHRob3NlIGNvbGxhdGlvbnMgb2NjdXIgZnJvbSB0aGUKYmluYXJ5IGZpbGUsIHJhdGhlciB0aGFuIHRoZSB0ZXh0IGZpbGUsIGF0IG11Y2ggaGlnaGVyIHNwZWVkLiA8L3A+Cgo8cD5JbiBnZW5lcmFsLCB5b3UgZG9uJ3QgaGF2ZSB0byBkbyBhbnl0aGluZyBzcGVjaWFsIHdpdGggdGhlc2UgZmlsZXMuIFRoZXkgY2FuCmJlIGdlbmVyYXRlZCBkaXJlY3RseSBieSB1c2luZyB0aGUgJnF1b3Q7Z2VuY29sJnF1b3Q7IHRvb2wuJm5ic3A7IEluIGFkZGl0aW9uLAp0aGV5IGNhbiBhbHNvIGJlIGdlbmVyYXRlZCBhbmQgdXNlZCBhdXRvbWF0aWNhbGx5IGJ5IHRoZSBmcmFtZXdvcmssIHdpdGhvdXQKaW50ZXJ2ZW50aW9uIG9uIHlvdXIgcGFydC4gSG93ZXZlciwgdGhlcmUgYXJlIHNpdHVhdGlvbnMgaW4gd2hpY2ggeW91IHdpbGwgaGF2ZQp0byByZWdlbmVyYXRlIHRoZW0uIFRvIGRvIHNvLCB5b3UgbXVzdCBtYW51YWxseSBkZWxldGUgdGhlICZxdW90Oy5jb2wmcXVvdDsKZmlsZXMgZnJvbSB5b3VyIGNvbGxhdGlvbiBkYXRhIGRpcmVjdG9yeSBhbmQgcmUtcnVuIHRoZSBnZW5jb2wgdG9vbC48L3A+Cgo8cD5Zb3Ugd2lsbCBuZWVkIHRvIHJlZ2VuZXJhdGUgeW91ciAmcXVvdDsuY29sJnF1b3Q7IGZpbGVzIGluIHRoZSBmb2xsb3dpbmcKY2lyY3Vtc3RhbmNlczogPC9wPgoKPG9sIHN0YXJ0PTEgdHlwZT0xPgogPGxpIGNsYXNzPU1zb05vcm1hbCBzdHlsZT0nbXNvLW1hcmdpbi10b3AtYWx0OmF1dG87bXNvLW1hcmdpbi1ib3R0b20tYWx0OmF1dG87CiAgICAgbXNvLWxpc3Q6bDAgbGV2ZWwxIGxmbzQzO3RhYi1zdG9wczpsaXN0IC41aW4nPllvdSBhcmUgbW92aW5nIHlvdXIgZGF0YSB0bwogICAgIGFub3RoZXIgcGxhdGZvcm0uJm5ic3A7IFNpbmNlIHRoZSAmcXVvdDsuY29sJnF1b3Q7IGZpbGVzIGFyZSBub24tcG9ydGFibGUsCiAgICAgeW91IG11c3QgbWFrZSBzdXJlIHRoZXkgYXJlIHJlZ2VuZXJhdGVkLjwvbGk+CiA8bGkgY2xhc3M9TXNvTm9ybWFsIHN0eWxlPSdtc28tbWFyZ2luLXRvcC1hbHQ6YXV0bzttc28tbWFyZ2luLWJvdHRvbS1hbHQ6YXV0bzsKICAgICBtc28tbGlzdDpsMCBsZXZlbDEgbGZvNDM7dGFiLXN0b3BzOmxpc3QgLjVpbic+PGI+RE8gTk9UIDwvYj5jb3B5IHRoZW0gZnJvbQogICAgIG9uZSBwbGF0Zm9ybSB0byBhbm90aGVyLjwvbGk+CiA8bGkgY2xhc3M9TXNvTm9ybWFsIHN0eWxlPSdtc28tbWFyZ2luLXRvcC1hbHQ6YXV0bzttc28tbWFyZ2luLWJvdHRvbS1hbHQ6YXV0bzsKICAgICBtc28tbGlzdDpsMCBsZXZlbDEgbGZvNDM7dGFiLXN0b3BzOmxpc3QgLjVpbic+WW91IGhhdmUgY2hhbmdlZCB0aGUKICAgICAmcXVvdDtDb2xsYXRpb25FbGVtZW50cyZxdW90OyBkYXRhIGluIHRoZSBsb2NhbGUncyAmcXVvdDsudHh0JnF1b3Q7CiAgICAgZmlsZS4mbmJzcDsgTm90ZSB0aGF0IGlmIHlvdSBjaGFuZ2UgdGhlIGRlZmF1bHQgcnVsZXMgZm9yIHNvbWUgcmVhc29uLAogICAgIHdoaWNoIHVuZGVybGllIGFsbCBjb2xsYXRpb25zLCB0aGVuIHlvdSB3aWxsIGhhdmUgdG8gcmVidWlsZCBBTEwgeW91cgogICAgICZxdW90Oy5jb2wmcXVvdDsgZmlsZXMsIHNpbmNlIHRoZXkgYWxsIGFyZSBtZXJnZWQgd2l0aCB0aGUgZGVmYXVsdCBydWxlCiAgICAgc2V0LjwvbGk+Cjwvb2w+Cgo8aDM+PGEgbmFtZT1DaGFyc2V0Q29udmVydD48L2E+PHU+Q2hhcmFjdGVyIFNldCBDb252ZXJzaW9uIEluZm9ybWF0aW9uPC91PjwvaDM+Cgo8cD5UaGUgY2hhcnNldCBjb252ZXJzaW9uIGxpYnJhcnkgcHJvdmlkZXMgd2F5cyB0byBjb252ZXJ0IHNpbXBsZSB0ZXh0IHN0cmluZ3MKKGUuZy4sIGNoYXIqKSBzdWNoIGFzIElTTyA4ODU5LTEgdG8gYW5kIGZyb20gVW5pY29kZS4gVGhlIG9iamVjdGl2ZSBpcyB0bwpwcm92aWRlIGNsZWFuLCBzaW1wbGUsIHJlbGlhYmxlLCBwb3J0YWJsZSBhbmQgYWRhcHRhYmxlIGRhdGEgc3RydWN0dXJlcyBhbmQKYWxnb3JpdGhtcyB0byBzdXBwb3J0IHRoZSBJbnRlcm5hdGlvbmFsIENvbXBvbmVudHMgZm9yIFVuaWNvZGUncyBjaGFyYWN0ZXIKY29kZXNldCBDb252ZXJzaW9uIEFQSXMuIFRoZSBjb252ZXJzaW9uIGRhdGEgaW4gdGhlIGxpYnJhcnkgb3JpZ2luYXRlZCBmcm9tIHRoZQpOTFRDIGxhYiBpbiBJQk0uIFRoZSBJQk0gY2hhcmFjdGVyIHNldCBjb252ZXJzaW9uIHRhYmxlcyBhcmUgcHVibGljbHkgYXZhaWxhYmxlCmluIHRoZSBwdWJsaXNoZWQgSUJNIGRvY3VtZW50IGNhbGxlZCAmcXVvdDtDSEFSQUNURVIgREFUQSBSRVBSRVNFTlRBVElPTgpBUkNISVRFQ1RVUkUgLSBSRUZFUkVOQ0UgQU5EIFJFR0lTVFJZJnF1b3Q7LiBUaGUgY2hhcmFjdGVyIHNldCBjb252ZXJzaW9uCmxpYnJhcnkgaW5jbHVkZXMgc2luZ2xlLWJ5dGUsIGRvdWJsZS1ieXRlIGFuZCBzb21lIFVDUyBlbmNvZGluZ3MgdG8gYW5kIGZyb20gVW5pY29kZS4KVGhpcyBkb2N1bWVudCBjYW4gYmUgb3JkZXJlZCB0aHJvdWdoIE1lY2hhbmljc2JlcmcgYW5kIGl0IGNvbWVzIHdpdGggMiBDRCBST01zCndoaWNoIGhhdmUgbWFjaGluZS1yZWFkYWJsZSBjb252ZXJzaW9uIHRhYmxlcyBvbiB0aGVtLiBUaGUgbGljZW5zZSBhZ3JlZW1lbnQgaXMKaW5jbHVkZWQgaW4gSW50ZXJuYXRpb25hbCBDb21wb25lbnRzIGZvciBVbmljb2RlIGFncmVlbWVudC4gPC9wPgoKPHA+Q2xpY2sgPGEgaHJlZj0iZGF0YS9jb252cnRycy50eHQiPmhlcmU8L2E+IHRvIHZpZXcgY29udmVydGVycyBpbXBsZW1lbnRlZCBpbgpJQ1UuIFRvIHNlZSBjb252ZXJ0ZXJzIGluIGFjdGlvbiwgcGxlYXNlIHZpc2l0IDxhCmhyZWY9Imh0dHA6Ly9vc3Muc29mdHdhcmUuaWJtLmNvbS9kZXZlbG9wZXJ3b3Jrcy9vcGVuc291cmNlL2ljdS9sb2NhbGVleHBsb3Jlci8/Y29udmVydGVyJmFtcDsiPgpodHRwOi8vb3NzLnNvZnR3YXJlLmlibS5jb20vZGV2ZWxvcGVyd29ya3Mvb3BlbnNvdXJjZS9pY3UvbG9jYWxlZXhwbG9yZXIvP2NvbnZlcnRlciZhbXA7PC9hPjwvcD4KCjxwPlRvIG9yZGVyIHRoZSBkb2N1bWVudCBpbiB0aGUgVVMgeW91IGNhbiBjYWxsIDEtODAwLTg3OS0yNzU1IGFuZCByZXF1ZXN0CmRvY3VtZW50IG51bWJlciBTQzA5LTIxOTAtMDAuIFRoZSBjb3N0IG9mIHRoaXMgcHVibGljYXRpb24gaXMgJDc1LjAwIFVTIG5vdAppbmNsdWRpbmcgdGF4LiA8L3A+Cgo8aDM+PGEgbmFtZT1Qcm9ncmFtbWluZ05vdGVzPjwvYT48dT5Qcm9ncmFtbWluZyBOb3RlczwvdT48L2gzPgoKPGg0Pjx1PlJlcG9ydGluZyBFcnJvcnM8L3U+PC9oND4KCjxwPkluIG9yZGVyIGZvciB0aGUgY29kZSB0byBiZSBwb3J0YWJsZSwgb25seSBhIHN1YnNldCBvZiB0aGUgQysrIGxhbmd1YWdlIHRoYXQKd2lsbCBjb21waWxlIGNvcnJlY3RseSBvbiBldmVuIHRoZSBvbGRlc3Qgb2YgQysrIGNvbXBpbGVycyAoYW5kIGFsc28gdG8gcHJvdmlkZQphIHVzYWJsZSBDIGludGVyZmFjZSkgY2FuIGJlIHVzZWQgaW4gdGhlIGltcGxlbWVudGF0aW9uLCB3aGljaCBtZWFucyB0aGF0CnRoZXJlJ3Mgbm8gdXNlIHRoZSBDKysgZXhjZXB0aW9uIG1lY2hhbmlzbSBpbiB0aGUgY29kZS4gPC9wPgoKPHA+QWZ0ZXIgY29uc2lkZXJpbmcgbWFueSBhbHRlcm5hdGl2ZXMsIHRoZSBkZWNpc2lvbiB3YXMgdGhhdCBldmVyeSBmdW5jdGlvbgp0aGF0IGNhbiBmYWlsIHRha2VzIGFuIGVycm9yLWNvZGUgcGFyYW1ldGVyIGJ5IHJlZmVyZW5jZS4gVGhpcyBpcyBhbHdheXMgdGhlCmxhc3QgcGFyYW1ldGVyIGluIHRoZSBmdW5jdGlvbiYjODIxNztzIHBhcmFtZXRlciBsaXN0LiBUaGUgRXJyb3JDb2RlIHR5cGUgaXMgZGVmaW5lZAphcyBhIGVudW1lcmF0ZWQgdHlwZS4gWmVybyByZXByZXNlbnRzIG5vIGVycm9yLCBwb3NpdGl2ZSB2YWx1ZXMgcmVwcmVzZW50CmVycm9ycywgYW5kIG5lZ2F0aXZlIHZhbHVlcyByZXByZXNlbnQgbm9uLWVycm9yIHN0YXR1cyBjb2Rlcy4gTWFjcm9zIHdlcmUKcHJvdmlkZWQsIFNVQ0NFU1MgYW5kIEZBSUxVUkUsIHRvIGNoZWNrIHRoZSBlcnJvciBjb2RlLiA8L3A+Cgo8cD5UaGUgRXJyb3JDb2RlIHBhcmFtZXRlciBpcyBhbiBpbnB1dC1vdXRwdXQgcGFyYW1ldGVyLiBFdmVyeSBmdW5jdGlvbiB0ZXN0cwp0aGUgZXJyb3IgY29kZSBiZWZvcmUgZG9pbmcgYW55dGhpbmcgZWxzZSwgYW5kIGltbWVkaWF0ZWx5IGV4aXRzIGlmIGl0JiM4MjE3O3MgYQpGQUlMVVJFIGVycm9yIGNvZGUuIElmIHRoZSBmdW5jdGlvbiBmYWlscyBsYXRlciBvbiwgaXQgc2V0cyB0aGUgZXJyb3IgY29kZQphcHByb3ByaWF0ZWx5IGFuZCBleGl0cyB3aXRob3V0IGRvaW5nIGFueSBvdGhlciB3b3JrIChleGNlcHQsIG9mIGNvdXJzZSwgYW55CmNsZWFudXAgaXQgaGFzIHRvIGRvKS4gSWYgdGhlIGZ1bmN0aW9uIGVuY291bnRlcnMgYSBub24tZXJyb3IgY29uZGl0aW9uIGl0CndhbnRzIHRvIHNpZ25hbCAoc3VjaCBhcyAmcXVvdDtlbmNvdW50ZXJlZCBhbiB1bm1hcHBlZCBjaGFyYWN0ZXImcXVvdDsgaW4KdHJhbnNjb2RpbmcpLCBpdCBzZXRzIHRoZSBlcnJvciBjb2RlIGFwcHJvcHJpYXRlbHkgYW5kIGNvbnRpbnVlcy4gT3RoZXJ3aXNlLAp0aGUgZnVuY3Rpb24gbGVhdmVzIHRoZSBlcnJvciBjb2RlIHVuY2hhbmdlZC4gPC9wPgoKPHA+R2VuZXJhbGx5LCBvbmx5IGZ1bmN0aW9ucyB0aGF0IGRvbiYjODIxNzt0IHRha2UgYW4gRXJyb3JDb2RlIHBhcmFtZXRlciwgYnV0IGNhbGwKZnVuY3Rpb25zIHRoYXQgZG8sIGhhdmUgdG8gZGVjbGFyZSBvbmUuIEFsbW9zdCBhbGwgZnVuY3Rpb25zIHRoYXQgdGFrZSBhbgpFcnJvckNvZGUgcGFyYW1ldGVyIGFuZCBhbHNvIGNhbGwgb3RoZXIgZnVuY3Rpb25zIHRoYXQgZG8gbWVyZWx5IGhhdmUgdG8KcHJvcGFnYXRlIHRoZSBlcnJvciBjb2RlIHRoZXkgd2VyZSBwYXNzZWQgZG93biB0byB0aGUgZnVuY3Rpb25zIHRoZXkgY2FsbC4KRnVuY3Rpb25zIHRoYXQgZGVjbGFyZSBhIG5ldyBFcnJvckNvZGUgcGFyYW1ldGVyIG11c3QgaW5pdGlhbGl6ZSBpdCB0bwpaRVJPX0VSUk9SIGJlZm9yZSBjYWxsaW5nIGFueSBvdGhlciBmdW5jdGlvbnMuIDwvcD4KCjxwPlRoZSByYXRpb25hbGUgaGVyZSBpcyB0byBhbGxvdyBhIGZ1bmN0aW9uIHRvIGNhbGwgc2V2ZXJhbCBmdW5jdGlvbnMgKHRoYXQKdGFrZSBlcnJvciBjb2RlcykgaW4gYSByb3cgd2l0aG91dCBoYXZpbmcgdG8gY2hlY2sgdGhlIGVycm9yIGNvZGUgYWZ0ZXIgZWFjaApvbmUuIFtBIGZ1bmN0aW9uIHVzdWFsbHkgd2lsbCBoYXZlIHRvIGNoZWNrIHRoZSBlcnJvciBjb2RlIGJlZm9yZSBkb2luZyBhbnkKb3RoZXIgcHJvY2Vzc2luZywgaG93ZXZlciwgc2luY2UgaXQgaXMgc3VwcG9zZWQgdG8gc3RvcCBpbW1lZGlhdGVseSBhZnRlcgpyZWNlaXZpbmcgYW4gZXJyb3IgY29kZS5dIFByb3BhZ2F0aW5nIHRoZSBlcnJvci1jb2RlIHBhcmFtZXRlciBkb3duIHRoZSBjYWxsCmNoYWluIHNhdmVzIHRoZSBwcm9ncmFtbWVyIGZyb20gaGF2aW5nIHRvIGRlY2xhcmUgb25lIGV2ZXJ5d2hlcmUsIGFuZCBhbHNvCmFsbG93cyB1cyB0byBtb3JlIGNsb3NlbHkgbWltaWMgdGhlIEMrKyBleGNlcHRpb24gcHJvdG9jb2wuIDwvcD4KCjxoND48dT5DIEZ1bmN0aW9uIGFuZCBEYXRhIFR5cGUgTmFtaW5nPC91PjwvaDQ+Cgo8cD48Yj5GdW5jdGlvbiBuYW1lcy48L2I+IElmIGEgZnVuY3Rpb24gaXMgaWRlbnRpY2FsIChvciBhbG1vc3QgaWRlbnRpY2FsKSB0bwphbiBBTlNJIG9yIFBPU0lYIGZ1bmN0aW9uLCB3ZSBnaXZlIGl0IHRoZSBzYW1lIG5hbWUgYW5kIChhcyBtdWNoIGFzIHBvc3NpYmxlKQp0aGUgc2FtZSBwYXJhbWV0ZXIgbGlzdC4gQSAmcXVvdDt1JnF1b3Q7IGlzIHByZXBlbmRlZCBvbnRvIHRoZSBiZWdpbm5pbmcgb2YgdGhlCm5hbWUuIDwvcD4KCjxwPkZvciBmdW5jdGlvbnMgdGhhdCBleGlzdCBwcmlvciB0byB2ZXJzaW9uIDEuMi4xLCB0aGF0IHRoZSBmdW5jdGlvbiBuYW1lCnNob3VsZCBiZWdpbiB3aXRoIGEgbG93ZXItY2FzZSAmcXVvdDt1JnF1b3Q7LiBBZnRlciB0aGUgJnF1b3Q7dSZxdW90OyBpcyBhCnNob3J0IGNvZGUgaWRlbnRpZnlpbmcgdGhlIHN1YnN5c3RlbSBpdCBiZWxvbmdzIHRvIChlLmcuLCAmcXVvdDtsb2MmcXVvdDssCiZxdW90O3JiJnF1b3Q7LCAmcXVvdDtjbnYmcXVvdDssICZxdW90O2NvbGwmcXVvdDssIGV0Yy4pLiBUaGlzIGNvZGUgaXMKc2VwYXJhdGVkIGZyb20gdGhlIGFjdHVhbCBmdW5jdGlvbiBuYW1lIGJ5IGFuIHVuZGVyc2NvcmUsIGFuZCB0aGUgYWN0dWFsCmZ1bmN0aW9uIG5hbWUgY2FuIGJlIGFueXRoaW5nLiBGb3IgZXhhbXBsZSwgPC9wPgoKPHByZSBzdHlsZT0nbWFyZ2luLXRvcDowaW47bWFyZ2luLXJpZ2h0Oi41aW47bWFyZ2luLWJvdHRvbTowaW47bWFyZ2luLWxlZnQ6Ci41aW47bWFyZ2luLWJvdHRvbTouMDAwMXB0Jz48c3BhbiBzdHlsZT0nZm9udC1zaXplOjcuNXB0Jz5VQ2hhciogdWxvY19nZXRMYW5ndWFnZSguLi4pOzxvOnA+PC9vOnA+PC9zcGFuPjwvcHJlPjxwcmUKc3R5bGU9J21hcmdpbi10b3A6MGluO21hcmdpbi1yaWdodDouNWluO21hcmdpbi1ib3R0b206MGluO21hcmdpbi1sZWZ0Oi41aW47Cm1hcmdpbi1ib3R0b206LjAwMDFwdCc+PHNwYW4gc3R5bGU9J2ZvbnQtc2l6ZTo3LjVwdCc+dm9pZCB1bG9jX3NldERlZmF1bHRMb2NhbGUoLi4uKTs8bzpwPjwvbzpwPjwvc3Bhbj48L3ByZT48cHJlCnN0eWxlPSdtYXJnaW4tdG9wOjBpbjttYXJnaW4tcmlnaHQ6LjVpbjttYXJnaW4tYm90dG9tOjBpbjttYXJnaW4tbGVmdDouNWluOwptYXJnaW4tYm90dG9tOi4wMDAxcHQnPjxzcGFuIHN0eWxlPSdmb250LXNpemU6Ny41cHQnPlVDaGFyKiB1cmVzX2dldFN0cmluZyguLi4pOzwvc3Bhbj48L3ByZT4KCjxwPjxiPlN0cnVjdCBhbmQgZW51bSB0eXBlIG5hbWVzLjwvYj4gRm9yIHN0cnVjdHMgYW5kIGVudW0gdHlwZXMsIHRoZSBydWxlIGlzCnRoYXQgdGhlaXIgbmFtZXMgYmVnaW4gd2l0aCBhIGNhcGl0YWwgJnF1b3Q7VS4mcXVvdDsgVGhlcmUgaXMgbm8gdW5kZXJzY29yZSBmb3IKc3RydWN0IG5hbWVzLjwvcD4KCjxwcmU+PHNwYW4gc3R5bGU9J2ZvbnQtc2l6ZTo3LjVwdCc+Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7IFVSZXNvdXJjZUJ1bmRsZTs8bzpwPjwvbzpwPjwvc3Bhbj48L3ByZT48cHJlPjxzcGFuCnN0eWxlPSdmb250LXNpemU6Ny41cHQnPiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyBVQ29sbGF0b3I7PG86cD48L286cD48L3NwYW4+PC9wcmU+PHByZT48c3BhbgpzdHlsZT0nZm9udC1zaXplOjcuNXB0Jz48c3BhbiBzdHlsZT0ibXNvLXNwYWNlcnVuOiB5ZXMiPiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyA8L3NwYW4+VUNvbGxhdGlvblJlc3VsdDs8L3NwYW4+PC9wcmU+Cgo8cD48Yj5FbnVtIHZhbHVlIG5hbWVzLjwvYj4gRW51bWVyYXRpb24gdmFsdWVzIGhhdmUgbmFtZXMgdGhhdCBiZWdpbiB3aXRoCiZxdW90O1VYWFgmcXVvdDsgd2hlcmUgWFhYIHN0YW5kcyBmb3IgdGhlIG5hbWUgb2YgdGhlIGZ1bmN0aW9uYWwgY2F0ZWdvcnkuPC9wPgoKPHByZSBzdHlsZT0nbWFyZ2luLXRvcDowaW47bWFyZ2luLXJpZ2h0Oi41aW47bWFyZ2luLWJvdHRvbTowaW47bWFyZ2luLWxlZnQ6Ci41aW47bWFyZ2luLWJvdHRvbTouMDAwMXB0Jz48c3BhbiBzdHlsZT0nZm9udC1zaXplOjcuNXB0Jz5VTlVNX0RFQ0lNQUw7PG86cD48L286cD48L3NwYW4+PC9wcmU+PHByZQpzdHlsZT0nbWFyZ2luLXRvcDowaW47bWFyZ2luLXJpZ2h0Oi41aW47bWFyZ2luLWJvdHRvbTowaW47bWFyZ2luLWxlZnQ6LjVpbjsKbWFyZ2luLWJvdHRvbTouMDAwMXB0Jz48c3BhbiBzdHlsZT0nZm9udC1zaXplOjcuNXB0Jz5VQ09MX0dSRUFURVI7PC9zcGFuPjwvcHJlPgoKPHA+PGI+TWFjcm8gbmFtZXMuPC9iPiBNYWNybyBuYW1lcyBhcmUgaW4gYWxsIGNhcHMsIGJ1dCB0aGVyZSBhcmUgY3VycmVudGx5IG5vCm90aGVyIHJlcXVpcmVtZW50cy4gPC9wPgoKPHA+PGI+Q29uc3RhbnQgbmFtZXMuPC9iPiBNYW55IGNvbnN0YW50IG5hbWVzIChjb25zdGFudHMgZGVmaW5lZCB3aXRoCiZxdW90O2NvbnN0JnF1b3Q7LCBub3QgbWFjcm9zIGRlZmluZWQgd2l0aCAmcXVvdDsjZGVmaW5lJnF1b3Q7IHRoYXQgYXJlIHVzZWQgYXMKY29uc3RhbnRzKSBiZWdpbiB3aXRoIGEgbG93ZXJjYXNlIGssIGJ1dCB0aGlzIGlzbiYjODIxNzt0IHVuaXZlcnNhbGx5IGVuZm9yY2VkLiA8L3A+Cgo8aDQ+PHU+UHJlZmxpZ2h0aW5nIGFuZCBPdmVyZmxvdyBIYW5kbGluZzwvdT48L2g0PgoKPHA+SW4gSUNVJ3MgQyBBUElzLCB0aGUgdXNlciBuZWVkcyB0byBhZGhlcmUgdG8gdGhlIGZvbGxvd2luZyBwcmluY2lwbGVzIGZvcgpjb25zaXN0ZW5jeSBhY3Jvc3MgYWxsIGZ1bmN0aW9uYWwgY2F0ZWdvcmllczogPC9wPgoKPG9sIHN0YXJ0PTEgdHlwZT0xPgogPGxpIGNsYXNzPU1zb05vcm1hbCBzdHlsZT0nbXNvLW1hcmdpbi10b3AtYWx0OmF1dG87bXNvLW1hcmdpbi1ib3R0b20tYWx0OmF1dG87CiAgICAgbXNvLWxpc3Q6bDggbGV2ZWwxIGxmbzQ2O3RhYi1zdG9wczpsaXN0IC41aW4nPkFsbCB0aGUgVW5pY29kZSBzdHJpbmcKICAgICBwcm9jZXNzaW5nIHNob3VsZCBiZSBleHByZXNzZWQgaW4gdGVybXMgb2YgYSBVQ2hhciogYnVmZmVyIHRoYXQgaXMgYWx3YXlzCiAgICAgbnVsbCB0ZXJtaW5hdGVkLjwvbGk+CiA8bGkgY2xhc3M9TXNvTm9ybWFsIHN0eWxlPSdtc28tbWFyZ2luLXRvcC1hbHQ6YXV0bzttc28tbWFyZ2luLWJvdHRvbS1hbHQ6YXV0bzsKICAgICBtc28tbGlzdDpsOCBsZXZlbDEgbGZvNDY7dGFiLXN0b3BzOmxpc3QgLjVpbic+VGhlIEFQSXMgYXNzdW1lIHRoYXQgdGhlCiAgICAgaW5wdXQgc3RyaW5nIHBhcmFtZXRlcnMgYXJlIHN0YXRpY2FsbHkgYWxsb2NhdGVkIGZpeC1zaXplZCBjaGFyYWN0ZXIKICAgICBidWZmZXJzLjwvbGk+CiA8bGkgY2xhc3M9TXNvTm9ybWFsIHN0eWxlPSdtc28tbWFyZ2luLXRvcC1hbHQ6YXV0bzttc28tbWFyZ2luLWJvdHRvbS1hbHQ6YXV0bzsKICAgICBtc28tbGlzdDpsOCBsZXZlbDEgbGZvNDY7dGFiLXN0b3BzOmxpc3QgLjVpbic+V2hlbiB0aGUgdmFsdWUgYSBmdW5jdGlvbiBpcwogICAgIGdvaW5nIHRvIHJldHVybiBpcyBhbHJlYWR5IHN0b3JlZCBhcyBhIGNvbnN0YW50IHZhbHVlIGluIHN0YXRpYyBzcGFjZQogICAgIChlLmcuLCBpdCYjODIxNztzIGNvbWluZyBmcm9tIGEgZml4ZWQgdGFibGUsIG9yIGlzIHN0b3JlZCBpbiBhIGNhY2hlKSwgdGhlCiAgICAgZnVuY3Rpb24gd2lsbCBqdXN0IHJldHVybiB0aGUgY29uc3QgVUNoYXIqIHBvaW50ZXIuPC9saT4KIDxsaSBjbGFzcz1Nc29Ob3JtYWwgc3R5bGU9J21zby1tYXJnaW4tdG9wLWFsdDphdXRvO21zby1tYXJnaW4tYm90dG9tLWFsdDphdXRvOwogICAgIG1zby1saXN0Omw4IGxldmVsMSBsZm80Njt0YWItc3RvcHM6bGlzdCAuNWluJz5XaGVuIHRoZSBmdW5jdGlvbiBjYW4mIzgyMTc7dAogICAgIHJldHVybiBhIFVDaGFyKiB0byBzdG9yYWdlIHRoZSB1c2VyIGRvZXNuJiM4MjE3O3QgaGF2ZSB0byBkZWxldGUsIHRoZSBjYWxsZXIKICAgICBuZWVkcyB0byBwYXNzIGluIGEgcG9pbnRlciB0byBhIGNoYXJhY3RlciBidWZmZXIgdGhhdCB0aGUgZnVuY3Rpb24gY2FuCiAgICAgZmlsbCB3aXRoIHRoZSByZXN1bHQuIFRoaXMgcG9pbnRlciBuZWVkcyB0byBiZSBhY2NvbXBhbmllZCBieSBhIGludDMyX3QKICAgICBwYXJhbWV0ZXIgdGhhdCBnaXZlcyB0aGUgc2l6ZSBvZiB0aGUgYnVmZmVyLjwvbGk+Cjwvb2w+Cgo8cD5UbyBmaW5kIG91dCBob3cgbGFyZ2UgdGhlIHJlc3VsdCBidWZmZXIgc2hvdWxkIGJlLCBJQ1UgcHJvdmlkZXMgYSA8c3Ryb25nPnByZWZsaWdodGluZzwvc3Ryb25nPgpDIGludGVyZmFjZS4mbmJzcDsgVGhlIGludGVyZmFjZSB3b3JrcyBsaWtlIHRoaXM6IDwvcD4KCjxvbCBzdGFydD0xIHR5cGU9MT4KIDxsaSBjbGFzcz1Nc29Ob3JtYWwgc3R5bGU9J21zby1tYXJnaW4tdG9wLWFsdDphdXRvO21zby1tYXJnaW4tYm90dG9tLWFsdDphdXRvOwogICAgIG1zby1saXN0Omw5IGxldmVsMSBsZm80OTt0YWItc3RvcHM6bGlzdCAuNWluJz5XaGVuIHVzaW5nIHRoZSAmcXVvdDs8Yj5wcmVmbGlnaHRpbmc8L2I+JnF1b3Q7CiAgICAgb3B0aW9uOiB5b3UgbmVlZCB0byBwYXNzIHRoZSBmdW5jdGlvbiBhIE5VTEwgcG9pbnRlciBmb3IgdGhlIGJ1ZmZlcgogICAgIHBvaW50ZXIsIGFuZCB0aGUgZnVuY3Rpb24gcmV0dXJucyB0aGUgYWN0dWFsIHNpemUgb2YgdGhlIHJlc3VsdC4gWW91IGNhbgogICAgIHRoZW4gY2hvb3NlIHRvIGFsbG9jYXRlIGEgYnVmZmVyIG9mIHRoZSBjb3JyZWN0IHNpemUgYW5kIHJlLXJ1biB0aGUKICAgICBvcGVyYXRpb24gaWYgeW91IHdvdWxkIGxpa2UgdG8uPC9saT4KIDxsaSBjbGFzcz1Nc29Ob3JtYWwgc3R5bGU9J21zby1tYXJnaW4tdG9wLWFsdDphdXRvO21zby1tYXJnaW4tYm90dG9tLWFsdDphdXRvOwogICAgIG1zby1saXN0Omw5IGxldmVsMSBsZm80OTt0YWItc3RvcHM6bGlzdCAuNWluJz5BZnRlciBhbGxvY2F0aW5nIGEgYnVmZmVyIG9mCiAgICAgc29tZSByZWFzb25hYmxlIHNpemUgb24gdGhlIHN0YWNrIGFuZCBwYXNzZXMgdGhhdCB0byB0aGUgZnVuY3Rpb24sIGlmIHRoZQogICAgIHJlc3VsdCBjYW4gZml0IGluIHRoYXQgYnVmZmVyLCBldmVyeXRoaW5nJm5ic3A7IHdvcmtzIGZpbmUuIElmIHRoZSByZXN1bHQKICAgICBkb2VzbiYjODIxNzt0IGZpdCwgdGhlIGZ1bmN0aW9uIHdpbGwgcmV0dXJuIHRoZSBhY3R1YWwgc2l6ZSBuZWVkZWQuJm5ic3A7IFlvdQogICAgIGNhbiB0aGVuIGFsbG9jYXRlIGEgYnVmZmVyIG9mIHRoZSBjb3JyZWN0IHNpemUgb24gdGhlIGhlYXAgYW5kIHRyeSBjYWxsaW5nCiAgICAgdGhlIHNhbWUgZnVuY3Rpb24gYWdhaW4uPC9saT4KIDxsaSBjbGFzcz1Nc29Ob3JtYWwgc3R5bGU9J21zby1tYXJnaW4tdG9wLWFsdDphdXRvO21zby1tYXJnaW4tYm90dG9tLWFsdDphdXRvOwogICAgIG1zby1saXN0Omw5IGxldmVsMSBsZm80OTt0YWItc3RvcHM6bGlzdCAuNWluJz5Ob3cgeW91IGhhdmUgY3JlYXRlZCBhCiAgICAgYnVmZmVyIG9mIHNvbWUgcmVhc29uYWJsZSBzaXplIG9uIHRoZSBzdGFjayBhbmQgcGFzc2VzIGl0IHRvIHRoZQogICAgIGZ1bmN0aW9uLiZuYnNwOyBJZiB5b3UgZG9uJ3QgY2FyZSBhYm91dCB0aGUgY29tcGxldGVuZXNzIG9mIHRoZSByZXN1bHQgYW5kCiAgICAgdGhlIGFsbG9jYXRlZCBidWZmZXIgaXMgdG9vIHNtYWxsLCB5b3UgY2FuIGNvbnRpbnVlIG9uIHVzaW5nIHRoZSB0cnVuY2F0ZWQKICAgICByZXN1bHQuPC9saT4KPC9vbD4KCjxwPlRoZSBmb2xsb3dpbmcgdGhyZWUgb3B0aW9ucyBkZW1vbnN0cmF0ZXMgaG93IHRvIHVzZSB0aGUgcHJlZmxpZ2h0aW5nCmludGVyZmFjZSwgPC9wPgoKPHByZSBzdHlsZT0nbWFyZ2luLXRvcDowaW47bWFyZ2luLXJpZ2h0Oi41aW47bWFyZ2luLWJvdHRvbTowaW47bWFyZ2luLWxlZnQ6Ci41aW47bWFyZ2luLWJvdHRvbTouMDAwMXB0Jz48c3BhbiBzdHlsZT0nZm9udC1zaXplOjcuNXB0Jz4vKiombmJzcDs8bzpwPjwvbzpwPjwvc3Bhbj48L3ByZT48cHJlCnN0eWxlPSdtYXJnaW4tdG9wOjBpbjttYXJnaW4tcmlnaHQ6LjVpbjttYXJnaW4tYm90dG9tOjBpbjttYXJnaW4tbGVmdDouNWluOwptYXJnaW4tYm90dG9tOi4wMDAxcHQnPjxzcGFuIHN0eWxlPSdmb250LXNpemU6Ny41cHQnPiZuYnNwOyogQHBhcmFtIHJlc3VsdCBpcyBhIHBvaW50ZXIgdG8gd2hlcmUgdGhlIGFjdHVhbCByZXN1bHQgd2lsbCBiZS48bzpwPjwvbzpwPjwvc3Bhbj48L3ByZT48cHJlCnN0eWxlPSdtYXJnaW4tdG9wOjBpbjttYXJnaW4tcmlnaHQ6LjVpbjttYXJnaW4tYm90dG9tOjBpbjttYXJnaW4tbGVmdDouNWluOwptYXJnaW4tYm90dG9tOi4wMDAxcHQnPjxzcGFuIHN0eWxlPSdmb250LXNpemU6Ny41cHQnPiZuYnNwOyogQHBhcmFtIG1heFJlc3VsdFNpemUgaXMgdGhlIG51bWJlciBvZiBjaGFyYWN0ZXJzIHRoZSBidWZmZXIgcG9pbnRlZCB0byBiZSByZXN1bHQgaGFzIHJvb20gZm9yLiZuYnNwOzxvOnA+PC9vOnA+PC9zcGFuPjwvcHJlPjxwcmUKc3R5bGU9J21hcmdpbi10b3A6MGluO21hcmdpbi1yaWdodDouNWluO21hcmdpbi1ib3R0b206MGluO21hcmdpbi1sZWZ0Oi41aW47Cm1hcmdpbi1ib3R0b206LjAwMDFwdCc+PHNwYW4gc3R5bGU9J2ZvbnQtc2l6ZTo3LjVwdCc+Jm5ic3A7KiBAcmV0dXJuIFRoZSBhY3R1YWwgbGVuZ3RoIG9mIHRoZSByZXN1bHQgKGNvdW50aW5nIHRoZSB0ZXJtaW5hdGluZyBudWxsKTxvOnA+PC9vOnA+PC9zcGFuPjwvcHJlPjxwcmUKc3R5bGU9J21hcmdpbi10b3A6MGluO21hcmdpbi1yaWdodDouNWluO21hcmdpbi1ib3R0b206MGluO21hcmdpbi1sZWZ0Oi41aW47Cm1hcmdpbi1ib3R0b206LjAwMDFwdCc+PHNwYW4gc3R5bGU9J2ZvbnQtc2l6ZTo3LjVwdCc+Jm5ic3A7Ki88bzpwPjwvbzpwPjwvc3Bhbj48L3ByZT48cHJlCnN0eWxlPSdtYXJnaW4tdG9wOjBpbjttYXJnaW4tcmlnaHQ6LjVpbjttYXJnaW4tYm90dG9tOjBpbjttYXJnaW4tbGVmdDouNWluOwptYXJnaW4tYm90dG9tOi4wMDAxcHQnPjxzcGFuIHN0eWxlPSdmb250LXNpemU6Ny41cHQnPmludDMyX3QgZG9Tb21ldGhpbmcoIC8qIGlucHV0IHBhcmFtcyAqLywgVUNoYXIqIHJlc3VsdCw8bzpwPjwvbzpwPjwvc3Bhbj48L3ByZT48cHJlCnN0eWxlPSdtYXJnaW4tdG9wOjBpbjttYXJnaW4tcmlnaHQ6LjVpbjttYXJnaW4tYm90dG9tOjBpbjttYXJnaW4tbGVmdDouNWluOwptYXJnaW4tYm90dG9tOi4wMDAxcHQnPjxzcGFuIHN0eWxlPSdmb250LXNpemU6Ny41cHQnPiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyBpbnQzMl90IG1heFJlc3VsdFNpemUsIFVFcnJvckNvZGUqIGVycik7PC9zcGFuPjwvcHJlPgoKPHA+SW4gdGhpcyBzYW1wbGUsIGlmIHRoZSBhY3R1YWwgcmVzdWx0IGRvZXNuJiM4MjE3O3QgZml0IGluIHRoZSBzcGFjZSBhdmFpbGFibGUgaW4gPHNwYW4Kc3R5bGU9J2ZvbnQtc2l6ZToxMC4wcHQ7Zm9udC1mYW1pbHk6IkNvdXJpZXIgTmV3Iic+bWF4UmVzdWx0U2l6ZTwvc3Bhbj4sIHRoaXMKZnVuY3Rpb24gcmV0dXJucyB0aGUgYW1vdW50IG9mIHNwYWNlIG5lY2Vzc2FyeSB0byBob2xkIHRoZSByZXN1bHQsIGFuZCByZXN1bHQKaG9sZHMgYXMgbWFueSBjaGFyYWN0ZXJzIG9mIHRoZSBhY3R1YWwgcmVzdWx0IGFzIHBvc3NpYmxlLiBJZiB5b3UgZG9uJiM4MjE3O3QgY2FyZQphYm91dCB0aGlzLCBubyBmdXJ0aGVyIGFjdGlvbiBpcyBuZWNlc3NhcnkuIElmIHlvdSA8aT5kbyA8L2k+Y2FyZSBhYm91dCB0aGUKdHJ1bmNhdGVkIGNoYXJhY3RlcnMsIHlvdSBjYW4gdGhlbiBhbGxvY2F0ZSBhIGJ1ZmZlciBvbiB0aGUgaGVhcCBvZiB0aGUgc2l6ZQpzcGVjaWZpZWQgYnkgdGhlIHJldHVybiB2YWx1ZSBhbmQgY2FsbCB0aGUgZnVuY3Rpb24gYWdhaW4sIHBhc3NpbmcgPGk+dGhhdCA8L2k+YnVmZmVyJiM4MjE3O3MKYWRkcmVzcyBmb3IgcmVzdWx0LiA8L3A+Cgo8cD5BbGwgcHJlZmxpZ2h0aW5nIGZ1bmN0aW9ucyBoYXZlIGEgZmlsbC1pbiA8c3BhbiBzdHlsZT0nZm9udC1zaXplOjEwLjBwdDsKZm9udC1mYW1pbHk6IkNvdXJpZXIgTmV3Iic+RXJyb3JDb2RlPC9zcGFuPiBwYXJhbWV0ZXIgKGFuZCBmb2xsb3cgdGhlIG5vcm1hbCA8c3BhbgpzdHlsZT0nZm9udC1zaXplOjEwLjBwdDtmb250LWZhbWlseToiQ291cmllciBOZXciJz5FcnJvckNvZGU8L3NwYW4+IHJ1bGVzKSwKZXZlbiBpZiB0aGV5IGFyZSBub3QgY3VycmVudGx5IGRvaW5nIHNvLiBCdWZmZXIgb3ZlcmZsb3cgd291bGQgYmUgdHJlYXRlZCBhcyBhCkZBSUxVUkUgZXJyb3IgY29uZGl0aW9uLCBidXQgd291bGQgPGk+bm90PC9pPiBiZSByZXBvcnRlZCB3aGVuIHRoZSBjYWxsZXIKcGFzc2VzIGluIE5VTEwgZm9yIDxzcGFuIHN0eWxlPSdmb250LXNpemU6MTAuMHB0O2ZvbnQtZmFtaWx5OiJDb3VyaWVyIE5ldyInPmFjdHVhbFJlc3VsdFNpemU8L3NwYW4+CihwcmVzdW1hYmx5LCBhIE5VTEwgZm9yIHRoaXMgcGFyYW1ldGVyIG1lYW5zIHRoZSBjbGllbnQgZG9lc24mIzgyMTc7dCBjYXJlIGlmIGhlIGdvdAphIGJ1ZmZlciBvdmVyZmxvdykuIEFsbCBvdGhlciBmYWlsaW5nIGVycm9yIGNvbmRpdGlvbnMgd2lsbCBvdmVyd3JpdGUgdGhlCiZxdW90O2J1ZmZlciBvdmVyZmxvdyZxdW90OyBlcnJvciwgZS5nLiA8c3BhbiBzdHlsZT0nZm9udC1mYW1pbHk6IkNvdXJpZXIgTmV3Iic+TUlTU0lOR19SRVNPVVJDRV9FUlJPUjwvc3Bhbj4KZXRjLi48L3A+Cgo8aDQ+PHU+QXJyYXlzIGFzIHJldHVybiB0eXBlczwvdT48L2g0PgoKPHA+UmV0dXJuaW5nIGFuIGFycmF5IG9mIHN0cmluZ3MgaXMgZmFpcmx5IGVhc3kgaW4gQysrLCBidXQgdmVyeSBoYXJkIGluIEMuCkluc3RlYWQgb2YgcmV0dXJuaW5nIHRoZSBhcnJheSBwb2ludGVyIGRpcmVjdGx5LCB3ZSBvcHRlZCBmb3IgYW4gaXRlcmF0aXZlCmludGVyZmFjZSBpbnN0ZWFkOiBzcGxpdCB0aGUgZnVuY3Rpb24gaW50byB0d28gZnVuY3Rpb25zLiZuYnNwOyBPbmUgcmV0dXJucyB0aGUKbnVtYmVyIG9mIGVsZW1lbnRzIGluIHRoZSBhcnJheSwgYW5kIHRoZSBvdGhlciBvbmUgcmV0dXJucyBhIHNpbmdsZSBzcGVjaWZpZWQKZWxlbWVudCBmcm9tIHRoZSBhcnJheS48L3A+Cgo8cHJlIHN0eWxlPSdtYXJnaW4tdG9wOjBpbjttYXJnaW4tcmlnaHQ6LjVpbjttYXJnaW4tYm90dG9tOjBpbjttYXJnaW4tbGVmdDoKLjVpbjttYXJnaW4tYm90dG9tOi4wMDAxcHQnPjxzcGFuIHN0eWxlPSdmb250LXNpemU6Ny41cHQnPmludDMyX3QgY291bnRBcnJheUl0ZW1zKC8qIHBhcmFtcyAqLyk7PG86cD48L286cD48L3NwYW4+PC9wcmU+PHByZQpzdHlsZT0nbWFyZ2luLXRvcDowaW47bWFyZ2luLXJpZ2h0Oi41aW47bWFyZ2luLWJvdHRvbTowaW47bWFyZ2luLWxlZnQ6LjVpbjsKbWFyZ2luLWJvdHRvbTouMDAwMXB0Jz48c3BhbiBzdHlsZT0nZm9udC1zaXplOjcuNXB0Jz5pbnQzMl90IGdldEFycmF5RWxlbWVudChpbnQzMl90IGVsZW1lbnRJbmRleCwgLyogb3RoZXIgcGFyYW1zICovLDxvOnA+PC9vOnA+PC9zcGFuPjwvcHJlPjxwcmUKc3R5bGU9J21hcmdpbi10b3A6MGluO21hcmdpbi1yaWdodDouNWluO21hcmdpbi1ib3R0b206MGluO21hcmdpbi1sZWZ0Oi41aW47Cm1hcmdpbi1ib3R0b206LjAwMDFwdCc+PHNwYW4gc3R5bGU9J2ZvbnQtc2l6ZTo3LjVwdCc+Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7IFVDaGFyKiByZXN1bHQsIGludDMyX3QgbWF4UmVzdWx0U2l6ZSwgVUVycm9yQ29kZSogZXJyKTs8L3NwYW4+PC9wcmU+Cgo8cD5JbiB0aGlzIGNhc2UsIGl0ZXJhdGluZyBhY3Jvc3MgYWxsIHRoZSBlbGVtZW50cyBpbiB0aGUgYXJyYXkgd291bGQgYW1vdW50IHRvCmEgY2FsbCB0byB0aGUgY291bnQoKSBmdW5jdGlvbiBmb2xsb3dlZCBieSBtdWx0aXBsZSBjYWxscyB0byB0aGUgZ2V0RWxlbWVudCgpCmZ1bmN0aW9uLiA8L3A+Cgo8cHJlIHN0eWxlPSdtYXJnaW4tdG9wOjBpbjttYXJnaW4tcmlnaHQ6LjVpbjttYXJnaW4tYm90dG9tOjBpbjttYXJnaW4tbGVmdDoKLjVpbjttYXJnaW4tYm90dG9tOi4wMDAxcHQnPjxzcGFuIHN0eWxlPSdmb250LXNpemU6Ny41cHQnPmZvciAoaSA9IDA7IGkgJmx0OyBjb3VudEFycmF5SXRlbXMoLi4uKTsgaSsrKSB7PG86cD48L286cD48L3NwYW4+PC9wcmU+PHByZQpzdHlsZT0nbWFyZ2luLXRvcDowaW47bWFyZ2luLXJpZ2h0Oi41aW47bWFyZ2luLWJvdHRvbTowaW47bWFyZ2luLWxlZnQ6LjVpbjsKbWFyZ2luLWJvdHRvbTouMDAwMXB0Jz48c3BhbiBzdHlsZT0nZm9udC1zaXplOjcuNXB0Jz4mbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsgVUNoYXIgZWxlbWVudFs1MF07PG86cD48L286cD48L3NwYW4+PC9wcmU+PHByZQpzdHlsZT0nbWFyZ2luLXRvcDowaW47bWFyZ2luLXJpZ2h0Oi41aW47bWFyZ2luLWJvdHRvbTowaW47bWFyZ2luLWxlZnQ6LjVpbjsKbWFyZ2luLWJvdHRvbTouMDAwMXB0Jz48c3BhbiBzdHlsZT0nZm9udC1zaXplOjcuNXB0Jz4mbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsgZ2V0QXJyYXlJdGVtKGksIC4uLiwgZWxlbWVudCwgNTAsICZhbXA7ZXJyKTs8bzpwPjwvbzpwPjwvc3Bhbj48L3ByZT48cHJlCnN0eWxlPSdtYXJnaW4tdG9wOjBpbjttYXJnaW4tcmlnaHQ6LjVpbjttYXJnaW4tYm90dG9tOjBpbjttYXJnaW4tbGVmdDouNWluOwptYXJnaW4tYm90dG9tOi4wMDAxcHQnPjxzcGFuIHN0eWxlPSdmb250LXNpemU6Ny41cHQnPiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyAvKiBkbyBzb21ldGhpbmcgd2l0aCBlbGVtZW50ICovPG86cD48L286cD48L3NwYW4+PC9wcmU+PHByZQpzdHlsZT0nbWFyZ2luLXRvcDowaW47bWFyZ2luLXJpZ2h0Oi41aW47bWFyZ2luLWJvdHRvbTowaW47bWFyZ2luLWxlZnQ6LjVpbjsKbWFyZ2luLWJvdHRvbTouMDAwMXB0Jz48c3BhbiBzdHlsZT0nZm9udC1zaXplOjcuNXB0Jz59PC9zcGFuPjwvcHJlPgoKPHA+SW4gdGhlIGNhc2Ugb2YgdGhlIHJlc291cmNlIGJ1bmRsZSA8c3BhbiBzdHlsZT0nZm9udC1mYW1pbHk6IkNvdXJpZXIgTmV3Iic+dXJlc19YWFhYPC9zcGFuPgpmdW5jdGlvbnMgcmV0dXJuaW5nIDItZGltZW5zaW9uYWwgYXJyYXlzLCB0aGUgZ2V0RWxlbWVudCgpIGZ1bmN0aW9uIHRha2VzIGJvdGgKeCBhbmQgeSBjb29yZGluYXRlcyBmb3IgdGhlIGRlc2lyZWQgZWxlbWVudCwgYW5kIHRoZSBjb3VudCgpIGZ1bmN0aW9uIHJldHVybnMKdGhlIG51bWJlciBvZiBhcnJheXMgKHggYXhpcykuICZuYnNwOyBTaW5jZSB0aGUgc2l6ZSBvZiBlYWNoIGFycmF5IGVsZW1lbnQgaW4KdGhlIHJlc291cmNlIDItRCBhcnJheXMgc2hvdWxkIGFsd2F5cyBiZSB0aGUgc2FtZSwgdGhpcyBwcm92aWRlcyBhbiBlYXN5LXRvLXVzZQpDIGludGVyZmFjZS4gPC9wPgoKPHByZSBzdHlsZT0nbWFyZ2luLXRvcDowaW47bWFyZ2luLXJpZ2h0Oi41aW47bWFyZ2luLWJvdHRvbTowaW47bWFyZ2luLWxlZnQ6Ci41aW47bWFyZ2luLWJvdHRvbTouMDAwMXB0Jz48c3BhbiBzdHlsZT0nZm9udC1zaXplOjcuNXB0Jz52b2lkIGNvdW50QXJyYXlJdGVtcyhpbnQzMl90KiByb3dzLCBpbnQzMl90KiBjb2x1bW5zLDxvOnA+PC9vOnA+PC9zcGFuPjwvcHJlPjxwcmUKc3R5bGU9J21hcmdpbi10b3A6MGluO21hcmdpbi1yaWdodDouNWluO21hcmdpbi1ib3R0b206MGluO21hcmdpbi1sZWZ0Oi41aW47Cm1hcmdpbi1ib3R0b206LjAwMDFwdCc+PHNwYW4gc3R5bGU9J2ZvbnQtc2l6ZTo3LjVwdCc+Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7IC8qIG90aGVyIHBhcmFtcyAqLyk7PG86cD48L286cD48L3NwYW4+PC9wcmU+PHByZQpzdHlsZT0nbWFyZ2luLXRvcDowaW47bWFyZ2luLXJpZ2h0Oi41aW47bWFyZ2luLWJvdHRvbTowaW47bWFyZ2luLWxlZnQ6LjVpbjsKbWFyZ2luLWJvdHRvbTouMDAwMXB0Jz48c3BhbiBzdHlsZT0nZm9udC1zaXplOjcuNXB0Jz48IVtpZiAhc3VwcG9ydEVtcHR5UGFyYXNdPiZuYnNwOzwhW2VuZGlmXT48bzpwPjwvbzpwPjwvc3Bhbj48L3ByZT48cHJlCnN0eWxlPSdtYXJnaW4tdG9wOjBpbjttYXJnaW4tcmlnaHQ6LjVpbjttYXJnaW4tYm90dG9tOjBpbjttYXJnaW4tbGVmdDouNWluOwptYXJnaW4tYm90dG9tOi4wMDAxcHQnPjxzcGFuIHN0eWxlPSdmb250LXNpemU6Ny41cHQnPmludDMyX3QgZ2V0MmRBcnJheUVsZW1lbnQoaW50MzJfdCByb3dJbmRleCwmbmJzcDs8bzpwPjwvbzpwPjwvc3Bhbj48L3ByZT48cHJlCnN0eWxlPSdtYXJnaW4tdG9wOjBpbjttYXJnaW4tcmlnaHQ6LjVpbjttYXJnaW4tYm90dG9tOjBpbjttYXJnaW4tbGVmdDouNWluOwptYXJnaW4tYm90dG9tOi4wMDAxcHQnPjxzcGFuIHN0eWxlPSdmb250LXNpemU6Ny41cHQnPiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyBpbnQzMl90IGNvbEluZGV4LDxvOnA+PC9vOnA+PC9zcGFuPjwvcHJlPjxwcmUKc3R5bGU9J21hcmdpbi10b3A6MGluO21hcmdpbi1yaWdodDouNWluO21hcmdpbi1ib3R0b206MGluO21hcmdpbi1sZWZ0Oi41aW47Cm1hcmdpbi1ib3R0b206LjAwMDFwdCc+PHNwYW4gc3R5bGU9J2ZvbnQtc2l6ZTo3LjVwdCc+Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7IC8qIG90aGVyIHBhcmFtcyAqLywmbmJzcDs8bzpwPjwvbzpwPjwvc3Bhbj48L3ByZT48cHJlCnN0eWxlPSdtYXJnaW4tdG9wOjBpbjttYXJnaW4tcmlnaHQ6LjVpbjttYXJnaW4tYm90dG9tOjBpbjttYXJnaW4tbGVmdDouNWluOwptYXJnaW4tYm90dG9tOi4wMDAxcHQnPjxzcGFuIHN0eWxlPSdmb250LXNpemU6Ny41cHQnPiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyBVQ2hhciogcmVzdWx0LCZuYnNwOzxvOnA+PC9vOnA+PC9zcGFuPjwvcHJlPjxwcmUKc3R5bGU9J21hcmdpbi10b3A6MGluO21hcmdpbi1yaWdodDouNWluO21hcmdpbi1ib3R0b206MGluO21hcmdpbi1sZWZ0Oi41aW47Cm1hcmdpbi1ib3R0b206LjAwMDFwdCc+PHNwYW4gc3R5bGU9J2ZvbnQtc2l6ZTo3LjVwdCc+Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7IGludDMyX3QgbWF4UmVzdWx0U2l6ZSw8bzpwPjwvbzpwPjwvc3Bhbj48L3ByZT48cHJlCnN0eWxlPSdtYXJnaW4tdG9wOjBpbjttYXJnaW4tcmlnaHQ6LjVpbjttYXJnaW4tYm90dG9tOjBpbjttYXJnaW4tbGVmdDouNWluOwptYXJnaW4tYm90dG9tOi4wMDAxcHQnPjxzcGFuIHN0eWxlPSdmb250LXNpemU6Ny41cHQnPiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyBVRXJyb3JDb2RlKiBlcnIpOzwvc3Bhbj48L3ByZT4KCjxoMz48YSBuYW1lPVdoZXJlVG9GaW5kTW9yZT48L2E+PHU+V2hlcmUgdG8gRmluZCBNb3JlIEluZm9ybWF0aW9uPC91PjwvaDM+Cgo8cD48YSBocmVmPSJodHRwOi8vb3NzLnNvZnR3YXJlLmlibS5jb20vaWN1LyI+aHR0cDovL29zcy5zb2Z0d2FyZS5pYm0uY29tL2ljdS88L2E+CmlzIGEgcG9pbnRlciB0byBnZW5lcmFsIGluZm9ybWF0aW9uIGFib3V0IHRoZSBJbnRlcm5hdGlvbmFsIENvbXBvbmVudHMgZm9yClVuaWNvZGUuIDwvcD4KCjxwPjxhIGhyZWY9ImRvY3MvdWRhdGEuaHRtbCI+ZG9jcy91ZGF0YS5odG1sPC9hPiBpcyBhIHJhdyBkcmFmdCBvZiBJQ1UgZGF0YQpoYW5kbGluZy48L3A+Cgo8cD48YSBocmVmPSIuLi9pY3VodG1sL2FpbmRleC5odG1sIj5odG1sL2FpbmRleC5odG1sPC9hPiBpcyBhbiBhbHBoYWJldGljYWwKaW5kZXggdG8gZGV0YWlsZWQgQVBJIGRvY3VtZW50YXRpb24uIDxicj4KPGEgaHJlZj0iLi4vaWN1aHRtbC9ISUVSamF2YS5odG1sIj5odG1sL0hJRVJqYXZhLmh0bWw8L2E+IGlzIGEgaGllcmFyY2hpY2FsCmluZGV4IHRvIGRldGFpbGVkIEFQSSBkb2N1bWVudGF0aW9uLiA8L3A+Cgo8cD48YSBocmVmPSJkb2NzL2NvbGxhdGUuaHRtbCI+ZG9jcy9jb2xsYXRlLmh0bWw8L2E+IGlzIGFuIG92ZXJ2aWV3IHRvCkNvbGxhdGlvbi4gPC9wPgoKPHA+PGEgaHJlZj0iZG9jcy9CcmVha0l0ZXJhdG9yLmh0bWwiPmRvY3MvQnJlYWtJdGVyYXRvci5odG1sPC9hPiBpcyBhIGRpYWdyYW0Kc2hvd2luZyBob3cgQnJlYWtJdGVyYXRvciBwcm9jZXNzZXMgdGV4dCBlbGVtZW50cy4gPC9wPgoKPHA+PGEgaHJlZj0iaHR0cDovL3d3dy5pYm0uY29tL2RldmVsb3Blci91bmljb2RlLyI+aHR0cDovL3d3dy5pYm0uY29tL2RldmVsb3Blci91bmljb2RlLzwvYT4gaXMgYQpwb2ludGVyIHRvIGluZm9ybWF0aW9uIG9uIGhvdyB0byBtYWtlIGFwcGxpY2F0aW9ucyBnbG9iYWwuIDxicj4KJm5ic3A7IDwvcD4KCjxoMz48YSBuYW1lPVN1Ym1pdHRpbmdDb21tZW50cz48L2E+PHU+U3VibWl0dGluZyBDb21tZW50cywgUmVxdWVzdGluZyBGZWF0dXJlcwphbmQgUmVwb3J0aW5nIEJ1Z3M8L3U+PC9oMz4KCjxwPlRvIHN1Ym1pdCBjb21tZW50cywgcmVxdWVzdCBmZWF0dXJlcyBhbmQgcmVwb3J0IGJ1Z3MsIHBsZWFzZSBjb250YWN0CnVzLiZuYnNwOyBXaGlsZSB3ZSBhcmUgbm90IGFibGUgdG8gcmVzcG9uZCBpbmRpdmlkdWFsbHkgdG8gZWFjaCBjb21tZW50LCB3ZSBkbwpyZXZpZXcgYWxsIGNvbW1lbnRzLiBTZW5kIEludGVybmV0IGVtYWlsIHRvIDxhCmhyZWY9Im1haWx0bzppY3VAb3NzLnNvZnR3YXJlLmlibS5jb20iPmljdUBvc3Muc29mdHdhcmUuaWJtLmNvbTwvYT4uPC9wPgoKCjxkaXYgY2xhc3M9TXNvTm9ybWFsIGFsaWduPWNlbnRlciBzdHlsZT0ndGV4dC1hbGlnbjpjZW50ZXInPgoKPGhyIHNpemU9MiB3aWR0aD0iMTAwJSIgYWxpZ249Y2VudGVyPgoKPC9kaXY+CgoKPHA+Q29weXJpZ2h0IKkgMTk5Ny0yMDAwIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kCm90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC48YnI+CklCTSBDZW50ZXIgZm9yIEphdmEgVGVjaG5vbG9neSBTaWxpY29uIFZhbGxleSwgPGJyPgoxMDI3NSBOIERlIEFuemEgQmx2ZC4sIEN1cGVydGlubywgQ0EgOTUwMTQgPGJyPgpBbGwgcmlnaHRzIHJlc2VydmVkLiA8L3A+CgoKPGRpdiBjbGFzcz1Nc29Ob3JtYWwgYWxpZ249Y2VudGVyIHN0eWxlPSd0ZXh0LWFsaWduOmNlbnRlcic+Cgo8aHIgc2l6ZT0yIHdpZHRoPSIxMDAlIiBhbGlnbj1jZW50ZXI+Cgo8L2Rpdj4KCjwvZGl2PgoKPC9ib2R5PgoKPC9odG1sPgo=