PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iSVNPLTg4NTktMSI/Pgo8IURPQ1RZUEUgaHRtbCBQVUJMSUMgIi0vL1czQy8vRFREIFhIVE1MIDEuMCBTdHJpY3QvL0VOIiAiaHR0cDovL3d3dy53My5vcmcvVFIveGh0bWwxL0RURC94aHRtbDEtc3RyaWN0LmR0ZCI+CjxodG1sIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sIiBsYW5nPSJmciIgeG1sOmxhbmc9ImZyIj48aGVhZD4KPG1ldGEgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PUlTTy04ODU5LTEiIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIgLz4KPCEtLQogICAgICAgIFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYCiAgICAgICAgICAgICAgVGhpcyBmaWxlIGlzIGdlbmVyYXRlZCBmcm9tIHhtbCBzb3VyY2U6IERPIE5PVCBFRElUCiAgICAgICAgWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFgKICAgICAgLS0+Cjx0aXRsZT5TdXBwb3J0IGRlcyBvYmpldHMgZHluYW1pcXVlcyBwYXJ0YWfpcyAoRFNPKSAtIFNlcnZldXIgQXBhY2hlIEhUVFAgVmVyc2lvbiAyLjU8L3RpdGxlPgo8bGluayBocmVmPSIuL3N0eWxlL2Nzcy9tYW51YWwuY3NzIiByZWw9InN0eWxlc2hlZXQiIG1lZGlhPSJhbGwiIHR5cGU9InRleHQvY3NzIiB0aXRsZT0iTWFpbiBzdHlsZXNoZWV0IiAvPgo8bGluayBocmVmPSIuL3N0eWxlL2Nzcy9tYW51YWwtbG9vc2UtMTAwcGMuY3NzIiByZWw9ImFsdGVybmF0ZSBzdHlsZXNoZWV0IiBtZWRpYT0iYWxsIiB0eXBlPSJ0ZXh0L2NzcyIgdGl0bGU9Ik5vIFNpZGViYXIgLSBEZWZhdWx0IGZvbnQgc2l6ZSIgLz4KPGxpbmsgaHJlZj0iLi9zdHlsZS9jc3MvbWFudWFsLXByaW50LmNzcyIgcmVsPSJzdHlsZXNoZWV0IiBtZWRpYT0icHJpbnQiIHR5cGU9InRleHQvY3NzIiAvPjxsaW5rIHJlbD0ic3R5bGVzaGVldCIgdHlwZT0idGV4dC9jc3MiIGhyZWY9Ii4vc3R5bGUvY3NzL3ByZXR0aWZ5LmNzcyIgLz4KPHNjcmlwdCBzcmM9Ii4vc3R5bGUvc2NyaXB0cy9wcmV0dGlmeS5taW4uanMiIHR5cGU9InRleHQvamF2YXNjcmlwdCI+Cjwvc2NyaXB0PgoKPGxpbmsgaHJlZj0iLi9pbWFnZXMvZmF2aWNvbi5pY28iIHJlbD0ic2hvcnRjdXQgaWNvbiIgLz48L2hlYWQ+Cjxib2R5IGlkPSJtYW51YWwtcGFnZSI+PGRpdiBpZD0icGFnZS1oZWFkZXIiPgo8cCBjbGFzcz0ibWVudSI+PGEgaHJlZj0iLi9tb2QvIj5Nb2R1bGVzPC9hPiB8IDxhIGhyZWY9Ii4vbW9kL3F1aWNrcmVmZXJlbmNlLmh0bWwiPkRpcmVjdGl2ZXM8L2E+IHwgPGEgaHJlZj0iaHR0cDovL3dpa2kuYXBhY2hlLm9yZy9odHRwZC9GQVEiPkZBUTwvYT4gfCA8YSBocmVmPSIuL2dsb3NzYXJ5Lmh0bWwiPkdsb3NzYWlyZTwvYT4gfCA8YSBocmVmPSIuL3NpdGVtYXAuaHRtbCI+UGxhbiBkdSBzaXRlPC9hPjwvcD4KPHAgY2xhc3M9ImFwYWNoZSI+U2VydmV1ciBBcGFjaGUgSFRUUCBWZXJzaW9uIDIuNTwvcD4KPGltZyBhbHQ9IiIgc3JjPSIuL2ltYWdlcy9mZWF0aGVyLnBuZyIgLz48L2Rpdj4KPGRpdiBjbGFzcz0idXAiPjxhIGhyZWY9Ii4vIj48aW1nIHRpdGxlPSImbHQ7LSIgYWx0PSImbHQ7LSIgc3JjPSIuL2ltYWdlcy9sZWZ0LmdpZiIgLz48L2E+PC9kaXY+CjxkaXYgaWQ9InBhdGgiPgo8YSBocmVmPSJodHRwOi8vd3d3LmFwYWNoZS5vcmcvIj5BcGFjaGU8L2E+ICZndDsgPGEgaHJlZj0iaHR0cDovL2h0dHBkLmFwYWNoZS5vcmcvIj5TZXJ2ZXVyIEhUVFA8L2E+ICZndDsgPGEgaHJlZj0iaHR0cDovL2h0dHBkLmFwYWNoZS5vcmcvZG9jcy8iPkRvY3VtZW50YXRpb248L2E+ICZndDsgPGEgaHJlZj0iLi8iPlZlcnNpb24gMi41PC9hPjwvZGl2PjxkaXYgaWQ9InBhZ2UtY29udGVudCI+PGRpdiBpZD0icHJlYW1ibGUiPjxoMT5TdXBwb3J0IGRlcyBvYmpldHMgZHluYW1pcXVlcyBwYXJ0YWfpcyAoRFNPKTwvaDE+CjxkaXYgY2xhc3M9InRvcGxhbmciPgo8cD48c3Bhbj5MYW5ndWVzIERpc3BvbmlibGVzOiA8L3NwYW4+PGEgaHJlZj0iLi9lbi9kc28uaHRtbCIgaHJlZmxhbmc9ImVuIiByZWw9ImFsdGVybmF0ZSIgdGl0bGU9IkVuZ2xpc2giPiZuYnNwO2VuJm5ic3A7PC9hPiB8CjxhIGhyZWY9Ii4vZnIvZHNvLmh0bWwiIHRpdGxlPSJGcmFu52FpcyI+Jm5ic3A7ZnImbmJzcDs8L2E+IHwKPGEgaHJlZj0iLi9qYS9kc28uaHRtbCIgaHJlZmxhbmc9ImphIiByZWw9ImFsdGVybmF0ZSIgdGl0bGU9IkphcGFuZXNlIj4mbmJzcDtqYSZuYnNwOzwvYT4gfAo8YSBocmVmPSIuL2tvL2Rzby5odG1sIiBocmVmbGFuZz0ia28iIHJlbD0iYWx0ZXJuYXRlIiB0aXRsZT0iS29yZWFuIj4mbmJzcDtrbyZuYnNwOzwvYT4gfAo8YSBocmVmPSIuL3RyL2Rzby5odG1sIiBocmVmbGFuZz0idHIiIHJlbD0iYWx0ZXJuYXRlIiB0aXRsZT0iVPxya+dlIj4mbmJzcDt0ciZuYnNwOzwvYT48L3A+CjwvZGl2PgoKICAgIDxwPkxhIGNvbmNlcHRpb24gbW9kdWxhaXJlIGR1IHNlcnZldXIgSFRUUCBBcGFjaGUgcGVybWV0IOAgbCdhZG1pbmlzdHJhdGV1cgogICAgZGUgY2hvaXNpciBsZXMgZm9uY3Rpb25uYWxpdOlzIOAgaW5jbHVyZSBkYW5zIGxlIHNlcnZldXIgZW4gc+lsZWN0aW9ubmFudAogICAgdW4gY2VydGFpbiBub21icmUgZGUgbW9kdWxlcy4gTGVzIG1vZHVsZXMgc2Vyb250IGNvbXBpbOlzIGVuIHRhbnQKICAgIHF1J09iamV0cyBEeW5hbWlxdWVzIFBhcnRhZ+lzIChEeW5hbWljIFNoYXJlZCBPYmplY3RzIG91IERTT3MpCiAgICBxdWkgbehuZW50IHVuZSBleGlzdGVuY2Ugc+lwYXLpZSBkdSBmaWNoaWVyIGJpbmFpcmUgcHJpbmNpcGFsCiAgICA8Y29kZSBjbGFzcz0icHJvZ3JhbSI+PGEgaHJlZj0iLi9wcm9ncmFtcy9odHRwZC5odG1sIj5odHRwZDwvYT48L2NvZGU+LiBMZXMgbW9kdWxlcyBEU08gcGV1dmVudCDqdHJlIGNvbXBpbOlzIGVuCiAgICBt6m1lIHRlbXBzIHF1ZSBsZSBzZXJ2ZXVyLCBvdSBjb21waWzpcyBldCBham91dOlzIHVsdOlyaWV1cmVtZW50IHZpYQogICAgbCdPdXRpbCBkZXMgRXh0ZW5zaW9ucyDgIEFwYWNoZSAoQXBhY2hlIEV4dGVuc2lvbiBUb29sIG91CiAgICA8Y29kZSBjbGFzcz0icHJvZ3JhbSI+PGEgaHJlZj0iLi9wcm9ncmFtcy9hcHhzLmh0bWwiPmFweHM8L2E+PC9jb2RlPikuPC9wPgogICAgPHA+TGVzIG1vZHVsZXMgcGV1dmVudCBhdXNzaSDqdHJlIGludOlnculzIHN0YXRpcXVlbWVudCBkYW5zIGxlCiAgICBiaW5haXJlIDxjb2RlIGNsYXNzPSJwcm9ncmFtIj48YSBocmVmPSIuL3Byb2dyYW1zL2h0dHBkLmh0bWwiPmh0dHBkPC9hPjwvY29kZT4gbG9ycyBkZSBsYSBjb21waWxhdGlvbiBkZSBjZQogICAgZGVybmllci48L3A+CgogICAgPHA+Q2UgZG9jdW1lbnQgZOljcml0IGwndXRpbGlzYXRpb24gZGVzIG1vZHVsZXMgRFNPIGFpbnNpIHF1ZSBsZXMgZGVzc291cwogICAgZGUgbGV1ciBmb25jdGlvbm5lbWVudC48L3A+CiAgPC9kaXY+CjxkaXYgaWQ9InF1aWNrdmlldyI+PHVsIGlkPSJ0b2MiPjxsaT48aW1nIGFsdD0iIiBzcmM9Ii4vaW1hZ2VzL2Rvd24uZ2lmIiAvPiA8YSBocmVmPSIjaW1wbGVtZW50YXRpb24iPkltcGzpbWVudGF0aW9uPC9hPjwvbGk+CjxsaT48aW1nIGFsdD0iIiBzcmM9Ii4vaW1hZ2VzL2Rvd24uZ2lmIiAvPiA8YSBocmVmPSIjdXNhZ2UiPk1vZGUgZCdlbXBsb2kgc3VjY2luY3Q8L2E+PC9saT4KPGxpPjxpbWcgYWx0PSIiIHNyYz0iLi9pbWFnZXMvZG93bi5naWYiIC8+IDxhIGhyZWY9IiNiYWNrZ3JvdW5kIj5MZXMgZGVzc291cyBkdSBmb25jdGlvbm5lbWVudCBkZXMgRFNPPC9hPjwvbGk+CjxsaT48aW1nIGFsdD0iIiBzcmM9Ii4vaW1hZ2VzL2Rvd24uZ2lmIiAvPiA8YSBocmVmPSIjYWR2YW50YWdlcyI+QXZhbnRhZ2VzIGV0IGluY29uduluaWVudHM8L2E+PC9saT4KPC91bD48aDM+Vm9pciBhdXNzaTwvaDM+PHVsIGNsYXNzPSJzZWVhbHNvIj48bGk+PGEgaHJlZj0iI2NvbW1lbnRzX3NlY3Rpb24iPkNvbW1lbnRhaXJlczwvYT48L2xpPjwvdWw+PC9kaXY+CjxkaXYgY2xhc3M9InRvcCI+PGEgaHJlZj0iI3BhZ2UtaGVhZGVyIj48aW1nIGFsdD0idG9wIiBzcmM9Ii4vaW1hZ2VzL3VwLmdpZiIgLz48L2E+PC9kaXY+CjxkaXYgY2xhc3M9InNlY3Rpb24iPgo8aDI+PGEgbmFtZT0iaW1wbGVtZW50YXRpb24iIGlkPSJpbXBsZW1lbnRhdGlvbiI+SW1wbOltZW50YXRpb248L2E+PC9oMj4KCjx0YWJsZSBjbGFzcz0icmVsYXRlZCI+PHRyPjx0aD5Nb2R1bGVzIEFwcGFyZW506XM8L3RoPjx0aD5EaXJlY3RpdmVzIEFwcGFyZW506WVzPC90aD48L3RyPjx0cj48dGQ+PHVsPjxsaT48Y29kZSBjbGFzcz0ibW9kdWxlIj48YSBocmVmPSIuL21vZC9tb2Rfc28uaHRtbCI+bW9kX3NvPC9hPjwvY29kZT48L2xpPjwvdWw+PC90ZD48dGQ+PHVsPjxsaT48Y29kZSBjbGFzcz0iZGlyZWN0aXZlIj48YSBocmVmPSIuL21vZC9tb2Rfc28uaHRtbCNsb2FkbW9kdWxlIj5Mb2FkTW9kdWxlPC9hPjwvY29kZT48L2xpPjwvdWw+PC90ZD48L3RyPjwvdGFibGU+CgogICAgPHA+TGUgc3VwcG9ydCBEU08gcG91ciBsZSBjaGFyZ2VtZW50IGRlIG1vZHVsZXMgaW5kaXZpZHVlbHMgZCdBcGFjaGUKICAgIGh0dHBkIGVzdAogICAgYXNzdXLpIHBhciB1biBtb2R1bGUgbm9tbekgPGNvZGUgY2xhc3M9Im1vZHVsZSI+PGEgaHJlZj0iLi9tb2QvbW9kX3NvLmh0bWwiPm1vZF9zbzwvYT48L2NvZGU+IHF1aSBkb2l0IOp0cmUgY29tcGls6QogICAgc3RhdGlxdWVtZW50IGRhbnMgbGUgY29ldXIgZCdBcGFjaGUgaHR0cGQuIElsIHMnYWdpdCBkdSBzZXVsIG1vZHVsZSBhdmVjIGxlCiAgICBtb2R1bGUgPGNvZGUgY2xhc3M9Im1vZHVsZSI+PGEgaHJlZj0iLi9tb2QvY29yZS5odG1sIj5jb3JlPC9hPjwvY29kZT4g4CBuZSBwYXMgcG91dm9pciDqdHJlIGNvbXBpbOkgZW4gdGFudCBxdWUKICAgIG1vZHVsZSBEU08gbHVpLW3qbWUuIFByYXRpcXVlbWVudCB0b3VzIGxlcyBhdXRyZXMgbW9kdWxlcyBkJ0FwYWNoZSBodHRwZAogICAgZGlzdHJpYnXpcyBzZXJvbnQgYWxvcnMgY29tcGls6XMgZW4gdGFudCBxdWUgbW9kdWxlcyBEU08uIFVuZSBmb2lzCiAgICBjb21waWzpIGVuIHRhbnQgcXVlIG1vZHVsZSBEU08gbm9tbekgPGNvZGU+bW9kX2Zvby5zbzwvY29kZT4sIHVuCiAgICBtb2R1bGUgcGV1dCDqdHJlIGNoYXJn6SBlbiBt6W1vaXJlIGF1CiAgICBk6W1hcnJhZ2Ugb3UgcmVk6W1hcnJhZ2UgZHUgc2VydmV1ciDgIGwnYWlkZSBkZQogICAgbGEgZGlyZWN0aXZlIDxjb2RlIGNsYXNzPSJkaXJlY3RpdmUiPjxhIGhyZWY9Ii4vbW9kL21vZF9zby5odG1sI2xvYWRtb2R1bGUiPkxvYWRNb2R1bGU8L2E+PC9jb2RlPiBkdSBtb2R1bGUKICAgIDxjb2RlIGNsYXNzPSJtb2R1bGUiPjxhIGhyZWY9Ii4vbW9kL21vZF9zby5odG1sIj5tb2Rfc288L2E+PC9jb2RlPiwgcGxhY+llCiAgICBkYW5zIHZvdHJlIGZpY2hpZXIgPGNvZGU+aHR0cGQuY29uZjwvY29kZT4uPC9wPgogICAgPHA+TGEgY29tcGlsYXRpb24gZW4gbW9kZSBEU08gcGV1dCDqdHJlIGTpc2FjdGl26WUgcG91ciBjZXJ0YWlucwogICAgbW9kdWxlcyB2aWEgbCdvcHRpb24gPGNvZGU+LS1lbmFibGUtbW9kcy1zdGF0aWM8L2NvZGU+IGR1IHNjcmlwdAogICAgPGNvZGUgY2xhc3M9InByb2dyYW0iPjxhIGhyZWY9Ii4vcHJvZ3JhbXMvY29uZmlndXJlLmh0bWwiPmNvbmZpZ3VyZTwvYT48L2NvZGU+LCBjb21tZSBleHBsaXF16SBkYW5zIGxhIDxhIGhyZWY9Imluc3RhbGwuaHRtbCI+RG9jdW1lbnRhdGlvbiBzdXIgbCdpbnN0YWxsYXRpb248L2E+LjwvcD4KCiAgICA8cD5VbiB1dGlsaXRhaXJlIHBlcm1ldCBkZSBzaW1wbGlmaWVyIGxhIGNy6WF0aW9uIGRlCiAgICBmaWNoaWVycyBEU08gcG91ciBsZXMgbW9kdWxlcyBkJ0FwYWNoZSBodHRwZAogICAgKHBhcnRpY3VsaehyZW1lbnQgcG91ciBsZXMgbW9kdWxlcyB0aWVycykgOyBpbCBzJ2FnaXQgZHUgcHJvZ3JhbW1lIG5vbW3pCiAgICA8Y29kZSBjbGFzcz0icHJvZ3JhbSI+PGEgaHJlZj0iLi9wcm9ncmFtcy9hcHhzLmh0bWwiPmFweHM8L2E+PC9jb2RlPiAoPGRmbj5BUGFjaGUKICAgIGVYdGVuU2lvbjwvZGZuPikuIE9uIHBldXQgbCd1dGlsaXNlciBwb3VyIGNvbnN0cnVpcmUgZGVzIG1vZHVsZXMgZGUgdHlwZQogICAgRFNPIDxlbT5lbiBkZWhvcnM8L2VtPiBkZSBsJ2FyYm9yZXNjZW5jZSBkZXMgc291cmNlcyBkJ0FwYWNoZSBodHRwZC4gTCdpZOllIGVzdAogICAgc2ltcGxlIDog4CBsJ2luc3RhbGxhdGlvbiBkdSBzZXJ2ZXVyIEhUVFAgQXBhY2hlLCBsYSBwcm9j6WR1cmUgPGNvZGU+bWFrZSBpbnN0YWxsPC9jb2RlPgogICAgZHUgc2NyaXB0IDxjb2RlIGNsYXNzPSJwcm9ncmFtIj48YSBocmVmPSIuL3Byb2dyYW1zL2NvbmZpZ3VyZS5odG1sIj5jb25maWd1cmU8L2E+PC9jb2RlPiBpbnN0YWxsZSBsZXMgZmljaGllcnMgZCdlbi106nRlcwogICAgZCdBcGFjaGUgaHR0cGQgZXQgcG9zaXRpb25uZSwgcG91ciBsYSBwbGF0ZWZvcm1lIGRlIGNvbXBpbGF0aW9uLCAgbGVzIGRyYXBlYXV4IGR1IGNvbXBpbGF0ZXVyIGV0IGRlCiAgICBsJ+lkaXRldXIgZGUgbGllbnMg4CBsJ2ludOlyaWV1ciBkdSBwcm9ncmFtbWUKICAgIDxjb2RlIGNsYXNzPSJwcm9ncmFtIj48YSBocmVmPSIuL3Byb2dyYW1zL2FweHMuaHRtbCI+YXB4czwvYT48L2NvZGU+LCBxdWkgc2VyYSB1dGlsaXPpIHBvdXIgbGEgY29uc3RydWN0aW9uIGRlIGZpY2hpZXJzIERTTy4KICAgIElsIGVzdCBhaW5zaSBwb3NzaWJsZSBkJ3V0aWxpc2VyIGxlIHByb2dyYW1tZSA8Y29kZSBjbGFzcz0icHJvZ3JhbSI+PGEgaHJlZj0iLi9wcm9ncmFtcy9hcHhzLmh0bWwiPmFweHM8L2E+PC9jb2RlPgogICAgcG91ciBjb21waWxlciBzZXMgc291cmNlcyBkZSBtb2R1bGVzIEFwYWNoZSBodHRwZCBzYW5zIGF2b2lyIGJlc29pbiBkZQogICAgbCdhcmJvcmVzY2VuY2UgZGVzIHNvdXJjZXMgZGUgbGEgZGlzdHJpYnV0aW9uIGQnQXBhY2hlLCBldCBzYW5zIGF2b2lyIOAKICAgIHLpZ2xlciBsZXMgZHJhcGVhdXggZHUgY29tcGlsYXRldXIgZXQgZGUgbCfpZGl0ZXVyIGRlIGxpZW5zIHBvdXIgbGUgc3VwcG9ydCBEU08uPC9wPgo8L2Rpdj48ZGl2IGNsYXNzPSJ0b3AiPjxhIGhyZWY9IiNwYWdlLWhlYWRlciI+PGltZyBhbHQ9InRvcCIgc3JjPSIuL2ltYWdlcy91cC5naWYiIC8+PC9hPjwvZGl2Pgo8ZGl2IGNsYXNzPSJzZWN0aW9uIj4KPGgyPjxhIG5hbWU9InVzYWdlIiBpZD0idXNhZ2UiPk1vZGUgZCdlbXBsb2kgc3VjY2luY3Q8L2E+PC9oMj4KCiAgICA8cD5BZmluIHF1ZSB2b3VzIHB1aXNzaWV6IHZvdXMgZmFpcmUgdW5lIGlk6WUgZGVzIGZvbmN0aW9ubmFsaXTpcyBEU08KICAgIGR1IHNlcnZldXIgSFRUUCBBcGFjaGUgMi54LCBlbiB2b2ljaSB1biBy6XN1bekgY291cnQgZXQgY29uY2lzIDo8L3A+CgogICAgPG9sPgogICAgICA8bGk+CiAgICAgICAgPHA+Q29uc3RydWlyZSBldCBpbnN0YWxsZXIgdW4gbW9kdWxlIEFwYWNoZSBodHRwZCA8ZW0+ZmFpc2FudCBwYXJ0aWUgZGUgbGEKCWRpc3RyaWJ1dGlvbjwvZW0+LCBwYXIgZXhlbXBsZSA8Y29kZT5tb2RfZm9vLmM8L2NvZGU+LAoJZW4gdGFudCBxdWUgbW9kdWxlIERTTyA8Y29kZT5tb2RfZm9vLnNvPC9jb2RlPiA6PC9wPgoKPGRpdiBjbGFzcz0iZXhhbXBsZSI+PHA+PGNvZGU+CiQgLi9jb25maWd1cmUgLS1wcmVmaXg9L2NoZW1pbi92ZXJzL2luc3RhbGxhdGlvbiAtLWVuYWJsZS1mb288YnIgLz4KJCBtYWtlIGluc3RhbGwKPC9jb2RlPjwvcD48L2Rpdj4KICAgICAgPC9saT4KCiAgICAgIDxsaT4KICAgICAgICA8cD5Db25maWd1cmUgbGUgc2VydmV1ciBIVFRQIEFwYWNoZSBhdmVjIHRvdXMgbGVzIG1vZHVsZXMKCWFjdGl26XMuIFNldWwgdW4gamV1IGRlIG1vZHVsZXMgZGUgYmFzZSBzZXJhIGNoYXJn6SBhdQoJZOltYXJyYWdlIGR1IHNlcnZldXIuIFZvdXMgcG91dmV6IG1vZGlmaWVyIGNlIGpldSBkZSBtb2R1bGVzCgljaGFyZ+lzIGF1IGTpbWFycmFnZSBlbiBhY3RpdmFudCBvdSBk6XNhY3RpdmFudCBsZXMgZGlyZWN0aXZlcyA8Y29kZSBjbGFzcz0iZGlyZWN0aXZlIj48YSBocmVmPSIuL21vZC9tb2Rfc28uaHRtbCNsb2FkbW9kdWxlIj5Mb2FkTW9kdWxlPC9hPjwvY29kZT4gY29ycmVzcG9uZGFudGVzIGRhbnMgbGUKICAgICAgZmljaGllciA8Y29kZT5odHRwZC5jb25mPC9jb2RlPi48L3A+Cgo8ZGl2IGNsYXNzPSJleGFtcGxlIj48cD48Y29kZT4KJCAuL2NvbmZpZ3VyZSAtLWVuYWJsZS1tb2RzLXNoYXJlZD1hbGw8YnIgLz4KJCBtYWtlIGluc3RhbGwKPC9jb2RlPjwvcD48L2Rpdj4KCiAgICAgICAgPHA+TCdhcmd1bWVudCA8Y29kZT5tb3N0PC9jb2RlPiBkZSBsJ29wdGlvbgoJPGNvZGU+LS1lbmFibGUtbW9kdWxlczwvY29kZT4gaW5kaXF1ZSBxdWUgdG91cyBsZXMgbW9kdWxlcwoJbm9uLWV4cOlyaW1lbnRhdXggb3UgcXVpIG5lIHNvbnQgcGFzIGzgIOAgdGl0cmUgZCdleGVtcGxlIHNlcm9udAoJY29tcGls6XMuPC9wPgogICAgICA8L2xpPgoKICAgICAgPGxpPgogICAgICA8cD5DZXJ0YWlucyBtb2R1bGVzIG5lIHNvbnQgdXRpbGlz6XMgcXVlIHBhciBsZXMgZOl2ZWxvcHBldXJzIGV0CiAgICAgIG5lIHNlcm9udCBwYXMgY29tcGls6XMuIFNpIHZvdXMgdm91bGV6IGxlcyB1dGlsaXNlciwgc3DpY2lmaWV6CiAgICAgIGwnb3B0aW9uIDxlbT5hbGw8L2VtPi4gUG91ciBjb21waWxlciB0b3VzIGxlcyBtb2R1bGVzIGRpc3BvbmlibGVzLAogICAgICB5IGNvbXByaXMgbGVzIG1vZHVsZXMgZGUgZOl2ZWxvcHBldXJzLCBzcOljaWZpZXogbCdvcHRpb24KICAgICAgPGVtPnJlYWxseWFsbDwvZW0+LiBFbiBvdXRyZSwgbGEgZGlyZWN0aXZlIDxjb2RlIGNsYXNzPSJkaXJlY3RpdmUiPjxhIGhyZWY9Ii4vbW9kL21vZF9zby5odG1sI2xvYWRtb2R1bGUiPkxvYWRNb2R1bGU8L2E+PC9jb2RlPiBwZXV0IOp0cmUgYWN0aXbpZSBwb3VyIHRvdXMKICAgICAgbGVzIG1vZHVsZXMgY29tcGls6XMgdmlhIGwnb3B0aW9uIGR1IHNjcmlwdCBjb25maWd1cmUKICAgICAgPGNvZGU+LS1lbmFibGUtbG9hZC1hbGwtbW9kdWxlczwvY29kZT4uPC9wPgoKPGRpdiBjbGFzcz0iZXhhbXBsZSI+PHA+PGNvZGU+CiQgLi9jb25maWd1cmUgLS1lbmFibGUtbW9kcy1zaGFyZWQ9cmVhbGx5YWxsIC0tZW5hYmxlLWxvYWQtYWxsLW1vZHVsZXM8YnIgLz4KJCBtYWtlIGluc3RhbGwKPC9jb2RlPjwvcD48L2Rpdj4KICAgICAgPC9saT4KCiAgICAgIDxsaT4KICAgICAgICBDb25zdHJ1aXJlIGV0IGluc3RhbGxlciB1biBtb2R1bGUgQXBhY2hlIGh0dHBkIDxlbT50aWVyczwvZW0+LCBwYXIgZXhlbXBsZQogICAgICAgIDxjb2RlPm1vZF9mb28uYzwvY29kZT4sIGVuIHRhbnQgcXVlIG1vZHVsZSBEU08KICAgICAgICA8Y29kZT5tb2RfZm9vLnNvPC9jb2RlPiA8ZW0+ZW4gZGVob3JzPC9lbT4gZGUgbCdhcmJvcmVzY2VuY2UgZGVzIHNvdXJjZXMKCWQnQXBhY2hlIGh0dHBkIOAgbCdhaWRlIGR1IHByb2dyYW1tZSA8Y29kZSBjbGFzcz0icHJvZ3JhbSI+PGEgaHJlZj0iLi9wcm9ncmFtcy9hcHhzLmh0bWwiPmFweHM8L2E+PC9jb2RlPiA6Cgo8ZGl2IGNsYXNzPSJleGFtcGxlIj48cD48Y29kZT4KJCBjZCAvY2hlbWluL3ZlcnMvbW9kdWxlX3RpZXJzPGJyIC8+CiQgYXB4cyAtY2lhIG1vZF9mb28uYwo8L2NvZGU+PC9wPjwvZGl2PgogICAgICA8L2xpPgogICAgPC9vbD4KCiAgICA8cD5EYW5zIHRvdXMgbGVzIGNhcywgdW5lIGZvaXMgbGUgbW9kdWxlIHBhcnRhZ+kgY29tcGls6Swgdm91cyBkZXZlegogICAgYWpvdXRlciB1bmUgZGlyZWN0aXZlIDxjb2RlIGNsYXNzPSJkaXJlY3RpdmUiPjxhIGhyZWY9Ii4vbW9kL21vZF9zby5odG1sI2xvYWRtb2R1bGUiPkxvYWRNb2R1bGU8L2E+PC9jb2RlPgogICAgZGFucyBsZSBmaWNoaWVyIDxjb2RlPmh0dHBkLmNvbmY8L2NvZGU+IHBvdXIgcXUnQXBhY2hlIGh0dHBkIGFjdGl2ZSBsZSBtb2R1bGUuPC9wPgoKICAgIDxwPlZvaXIgbGEgPGEgaHJlZj0icHJvZ3JhbXMvYXB4cy5odG1sIj5kb2N1bWVudGF0aW9uIHN1ciBhcHhzPC9hPgogICAgcG91ciBwbHVzIGRlIGTpdGFpbHMuPC9wPgo8L2Rpdj48ZGl2IGNsYXNzPSJ0b3AiPjxhIGhyZWY9IiNwYWdlLWhlYWRlciI+PGltZyBhbHQ9InRvcCIgc3JjPSIuL2ltYWdlcy91cC5naWYiIC8+PC9hPjwvZGl2Pgo8ZGl2IGNsYXNzPSJzZWN0aW9uIj4KPGgyPjxhIG5hbWU9ImJhY2tncm91bmQiIGlkPSJiYWNrZ3JvdW5kIj5MZXMgZGVzc291cyBkdSBmb25jdGlvbm5lbWVudCBkZXMgRFNPPC9hPjwvaDI+CgogICAgPHA+TGVzIGNs9G5lcyBtb2Rlcm5lcyBkJ1VOSVggcHJvcG9zZW50IHVuIG3pY2FuaXNtZQogICAgYXBwZWzpIOlkaXRpb24gZGUgbGllbnMgZXQgY2hhcmdlbWVudCBkeW5hbWlxdWVzIGQnCiAgICA8ZW0+T2JqZXRzIER5bmFtaXF1ZXMgUGFydGFn6XM8L2VtPiAoRFNPKSwgcXVpIHBlcm1ldCBkZSBjb25zdHJ1aXJlIHVuCiAgICBtb3JjZWF1IGRlIHByb2dyYW1tZSBkYW5zIHVuIGZvcm1hdCBzcOljaWFsIHBvdXIgbGUgcmVuZHJlIGNoYXJnZWFibGUKICAgIOAgbCdleOljdXRpb24gZGFucyBsJ2VzcGFjZSBkJ2FkcmVzc2FnZSBkJ3VuIHByb2dyYW1tZSBleOljdXRhYmxlLjwvcD4KCiAgICA8cD5DZSBjaGFyZ2VtZW50IHBldXQgcydlZmZlY3R1ZXIgZGUgZGV1eCBtYW5p6HJlcyA6IGF1dG9tYXRpcXVlbWVudCBwYXIKICAgIHVuIHByb2dyYW1tZSBzeXN06G1lIGFwcGVs6SA8Y29kZT5sZC5zbzwvY29kZT4gcXVhbmQgdW4gcHJvZ3JhbW1lCiAgICBleOljdXRhYmxlIGVzdCBk6W1hcnLpLCBvdSBtYW51ZWxsZW1lbnQg4CBwYXJ0aXIgZHUgcHJvZ3JhbW1lIGVuIGNvdXJzCiAgICBkJ2V46WN1dGlvbiB2aWEgc2EgcHJvcHJlIGludGVyZmFjZSBzeXN06G1lIHZlcnMgbGUgY2hhcmdldXIgVW5peCDgIGwnYWlkZQogICAgZGVzIGFwcGVscyBzeXN06G1lIDxjb2RlPmRsb3BlbigpL2Rsc3ltKCk8L2NvZGU+LjwvcD4KCiAgICA8cD5EYW5zIGxhIHByZW1p6HJlIG3pdGhvZGUsIGxlcyBEU08gc29udCBlbiBn6W7pcmFsIGFwcGVs6XMKICAgIDxlbT5iaWJsaW90aOhxdWVzIHBhcnRhZ+llczwvZW0+IG91IGVuY29yZSA8ZW0+YmlibGlvdGjocXVlcyBEU088L2VtPiwgZXQKICAgIHBvc3PoZGVudCBkZXMgbm9tcyBkdSBzdHlsZQogICAgPGNvZGU+bGliZm9vLnNvPC9jb2RlPiBvdSA8Y29kZT5saWJmb28uc28uMS4yPC9jb2RlPi4gSWxzIHLpc2lkZW50IGRhbnMgdW4KICAgIHLpcGVydG9pcmUgc3lzdOhtZSAoZW4gZ+lu6XJhbCA8Y29kZT4vdXNyL2xpYjwvY29kZT4pCiAgICBldCBsZSBsaWVuIGF2ZWMgbGUgcHJvZ3JhbW1lIGV46WN1dGFibGUgZXN0IOl0YWJsaSDgIGxhIGNvbXBpbGF0aW9uIGVuCiAgICBham91dGFudCA8Y29kZT4tbGZvbzwvY29kZT4g4CBsYSBjb21tYW5kZSBkZSBsJ+lkaXRldXIgZGUgbGllbnMuIExlcwogICAgculm6XJlbmNlcyDgIGxhIGJpYmxpb3Ro6HF1ZSBzb250IGFpbnNpIGNvZOllcyBlbiBkdXIgZGFucyBsZSBmaWNoaWVyIGR1CiAgICBwcm9ncmFtbWUgZXjpY3V0YWJsZSBkZSBmYedvbiDgIGNlIHF1J2F1IGTpbWFycmFnZSBkdSBwcm9ncmFtbWUsIGxlCiAgICBjaGFyZ2V1ciBVbml4IHNvaXQgY2FwYWJsZSBkZSBsb2NhbGlzZXIgPGNvZGU+bGliZm9vLnNvPC9jb2RlPiBkYW5zCiAgICA8Y29kZT4vdXNyL2xpYjwvY29kZT4sIGRhbnMgZGVzIGNoZW1pbnMgY29k6XMgZW4gZHVyIOAgbCdhaWRlIGQnb3B0aW9ucyBkZQogICAgbCfpZGl0ZXVyIGRlIGxpZW5zIGNvbW1lIDxjb2RlPi1SPC9jb2RlPiBvdSBkYW5zIGRlcyBjaGVtaW5zIGTpZmluaXMgcGFyIGxhCiAgICB2YXJpYWJsZSBkJ2Vudmlyb25uZW1lbnQKICAgIDxjb2RlPkxEX0xJQlJBUllfUEFUSDwvY29kZT4uIExlIGNoYXJnZXVyIHBldXQgZOhzIGxvcnMgculzb3VkcmUgdG91cyBsZXMgc3ltYm9sZXMKICAgIChqdXNxdWUgbOAgbm9uIGVuY29yZSBy6XNvbHVzKSBkdSBEU08gZGFucyBsZSBwcm9ncmFtbWUgZXjpY3V0YWJsZS48L3A+CgogICAgPHA+TGVzIHN5bWJvbGVzIGR1IHByb2dyYW1tZSBleOljdXRhYmxlIG5lIHNvbnQgZW4gZ+lu6XJhbCBwYXMKICAgIHLpZulyZW5j6XMgcGFyIGxlIERTTyAoY2FyIGMnZXN0IHVuZSBiaWJsaW90aOhxdWUgZGUgY29kZSDgIHVzYWdlIGfpbulyYWwKICAgIGV0IHLpdXRpbGlzYWJsZSksCiAgICBldCBhaW5zaSBhdWN1bmUgculzb2x1dGlvbiBzdXBwbOltZW50YWlyZSBuJ2VzdCBu6WNlc3NhaXJlLiBEZSBzb24gY/R06SwKICAgIGxlIHByb2dyYW1tZSBleOljdXRhYmxlIG5lIGRvaXQgYWNjb21wbGlyIGF1Y3VuZSBhY3Rpb24gcGFydGljdWxp6HJlCiAgICBwb3VyIHV0aWxpc2VyIGxlcwogICAgc3ltYm9sZXMgZHUgRFNPIGNhciB0b3V0ZXMgbGVzIHLpc29sdXRpb25zIHNvbnQgZWZmZWN0dellcyBwYXIgbGUgY2hhcmdldXIKICAgIFVuaXguIEVuIGZhaXQsIGxlIGNvZGUgcGVybWV0dGFudCBkJ2ludm9xdWVyCiAgICA8Y29kZT5sZC5zbzwvY29kZT4gZmFpdCBwYXJ0aWUgZHUgY29kZSBkZSBk6W1hcnJhZ2UgcG91ciBsJ2V46WN1dGlvbiBxdWkKICAgIGVzdCBsaekgZGFucyB0b3V0IHByb2dyYW1tZSBleOljdXRhYmxlIG5vbiBzdGF0aXF1ZW1lbnQgbGnpLgogICAgTCdhdmFudGFnZSBkdSBjaGFyZ2VtZW50IGR5bmFtaXF1ZSBkdSBjb2RlIGQndW5lIGJpYmxpb3Ro6HF1ZSBwYXJ0YWfpZSBlc3QKICAgIOl2aWRlbnQgOiBsZSBjb2RlIGRlIGxhIGJpYmxpb3Ro6HF1ZSBuZSBkb2l0IOp0cmUgc3RvY2vpIHF1J3VuZSBzZXVsZSBmb2lzCiAgICBkYW5zIHVuZSBiaWJsaW90aOhxdWUgc3lzdOhtZSB0ZWxsZSBxdWUgPGNvZGU+bGliYy5zbzwvY29kZT4sIGNlIHF1aSBwZXJtZXQKICAgIGQn6WNvbm9taXNlciBkZSBsJ2VzcGFjZSBkaXNxdWUgcG91ciBsZXMgYXV0cmVzIHByb2dyYW1tZXMuPC9wPgoKICAgIDxwPkRhbnMgbGEgc2Vjb25kZSBt6XRob2RlLCBsZXMgRFNPIHNvbnQgZW4gZ+lu6XJhbCBhcHBlbOlzIDxlbT5vYmpldHMKICAgIHBhcnRhZ+lzPC9lbT4gb3UgPGVtPmZpY2hpZXJzIERTTzwvZW0+LCBldCBwZXV2ZW50IOp0cmUgbm9tbelzIGF2ZWMKICAgIGwnZXh0ZW5zaW9uIGRlIHNvbiBjaG9peCAoYmllbiBxdWUgbGUgbm9tIGNvbnNlaWxs6SBzb2l0IGR1IHN0eWxlCiAgICA8Y29kZT5mb28uc288L2NvZGU+KS4gQ2VzIGZpY2hpZXJzIHLpc2lkZW50IGVuIGfpbulyYWwgZGFucyB1biBy6XBlcnRvaXJlCiAgICBzcOljaWZpcXVlIOAgdW4gcHJvZ3JhbW1lLCBldCBhdWN1biBsaWVuIG4nZXN0IGF1dG9tYXRpcXVlbWVudCDpdGFibGkgYXZlYwogICAgbGUgcHJvZ3JhbW1lIGV46WN1dGFibGUgZGFucyBsZXF1ZWwgaWxzIHNvbnQgdXRpbGlz6XMuCiAgICBMZSBwcm9ncmFtbWUgZXjpY3V0YWJsZSBjaGFyZ2UgbWFudWVsbGVtZW50IGxlIERTTyDgIGwnZXjpY3V0aW9uIGRhbnMgc29uCiAgICBlc3BhY2UgZCdhZHJlc3NhZ2Ug4CBsJ2FpZGUgZGUgbCdhcHBlbCBzeXN06G1lIDxjb2RlPmRsb3BlbigpPC9jb2RlPi4KICAgIEEgY2UgbW9tZW50LCBhdWN1bmUgculzb2x1dGlvbiBkZSBzeW1ib2xlcyBkdSBEU08gbidlc3QgZWZmZWN0dellIHBvdXIgbGUKICAgIHByb2dyYW1tZSBleOljdXRhYmxlLiBQYXIgY29udHJlIGxlIGNoYXJnZXVyIFVuaXgKICAgIHLpc291ZCBhdXRvbWF0aXF1ZW1lbnQgdG91dCBzeW1ib2xlIGR1IERTTyAobm9uIGVuY29yZSBy6XNvbHUpCiAgICBmYWlzYW50IHBhcnRpZSBkZSBsJ2Vuc2VtYmxlIGRlIHN5bWJvbGVzIGV4cG9ydOkgcGFyIGxlIHByb2dyYW1tZQogICAgZXjpY3V0YWJsZSBldCBzZXMgYmlibGlvdGjocXVlcyBEU08gZOlq4CBjaGFyZ+llcyAoZXQgZW4gcGFydGljdWxpZXIgdG91cwogICAgbGVzIHN5bWJvbGVzIGRlIGxhIGJpYmxpb3Ro6HF1ZSDgIHRvdXQgZmFpcmUgPGNvZGU+bGliYy5zbzwvY29kZT4pLgogICAgRGUgY2V0dGUgZmHnb24sIGxlIERTTyBwcmVuZCBjb25uYWlzc2FuY2UgZGUgbCdlbnNlbWJsZSBkZSBzeW1ib2xlcyBkdQogICAgcHJvZ3JhbW1lIGV46WN1dGFibGUgY29tbWUgcydpbCBhdmFpdCDpdOkgbGnpIHN0YXRpcXVlbWVudCBhdmVjIGx1aQogICAgYXVwYXJhdmFudC48L3A+CgogICAgPHA+RmluYWxlbWVudCwgcG91ciB0aXJlciBwcm9maXQgZGUgbCdBUEkgZGVzIERTTywgbGUgcHJvZ3JhbW1lIGV46WN1dGFibGUKICAgIGRvaXQgculzb3VkcmUgY2VydGFpbnMgc3ltYm9sZXMgZHUgRFNPIOAgbCdhaWRlIGRlIGwnYXBwZWwgc3lzdOhtZQogICAgPGNvZGU+ZGxzeW0oKTwvY29kZT4gcG91ciB1bmUgdXRpbGlzYXRpb24gdWx06XJpZXVyZSBkYW5zIGxlcyB0YWJsZXMgZGUKICAgIGRpc3RyaWJ1dGlvbiwgPGVtPmV0Yy4uLjwvZW0+IEVuIGQnYXV0cmVzIHRlcm1lcywgbGUgcHJvZ3JhbW1lIGV46WN1dGFibGUgZG9pdAogICAgculzb3VkcmUgbWFudWVsbGVtZW50IHRvdXMgbGVzIHN5bWJvbGVzIGRvbnQgaWwgYSBiZXNvaW4gcG91ciBwb3V2b2lyIGxlcwogICAgdXRpbGlzZXIuCiAgICBBdmFudGFnZSBkJ3VuIHRlbCBt6WNhbmlzbWUgOiBsZXMgbW9kdWxlcyBvcHRpb25uZWxzIGR1IHByb2dyYW1tZSBuJ29udCBwYXMKICAgIGJlc29pbiBkJ+p0cmUgY2hhcmfpcyAoZXQgbmUgZ2FzcGlsbGVudCBkb25jIHBhcyBkZSByZXNzb3VyY2VzIG3pbW9pcmUpCiAgICB0YW50IHF1J2lsIG5lIHNvbnQgcGFzIG7pY2Vzc2FpcmVzIGF1IHByb2dyYW1tZSBlbiBxdWVzdGlvbi4gU2kgbuljZXNzYWlyZSwKICAgIGNlcyBtb2R1bGVzIHBldXZlbnQg6nRyZSBjaGFyZ+lzIGR5bmFtaXF1ZW1lbnQgYWZpbiBkJ+l0ZW5kcmUgbGVzCiAgICBmb25jdGlvbm5hbGl06XMgZGUgYmFzZSBkdSBwcm9ncmFtbWUuPC9wPgoKICAgIDxwPkJpZW4gcXVlIGNlIG3pY2FuaXNtZSBEU08gcGFyYWlzc2Ug6XZpZGVudCwgaWwgY29tcG9ydGUgYXUgbW9pbnMgdW5lCiAgICDpdGFwZSBkaWZmaWNpbGUgOiBsYSBy6XNvbHV0aW9uIGRlcyBzeW1ib2xlcyBkZXB1aXMgbGUgcHJvZ3JhbW1lIGV46WN1dGFibGUKICAgIHBvdXIgbGUgRFNPIGxvcnNxdSdvbiB1dGlsaXNlIHVuIERTTyBwb3VyIOl0ZW5kcmUgbGVzIGZvbmN0aW9ubmFsaXTpcyBkJ3VuCiAgICBwcm9ncmFtbWUgKGxhIHNlY29uZGUgbel0aG9kZSkuIFBvdXJxdW9pID8gUGFyY2UgcXVlIGxhICJy6XNvbHV0aW9uCiAgICBpbnZlcnNlIiBkZXMgc3ltYm9sZXMgRFNPIOAgcGFydGlyIGR1IGpldSBkZSBzeW1ib2xlcyBkdSBwcm9ncmFtbWUKICAgIGV46WN1dGFibGUgZOlwZW5kIGRlIGxhIGNvbmNlcHRpb24gZGUgbGEgYmlibGlvdGjocXVlIChsYSBiaWJsaW90aOhxdWUgbidhCiAgICBhdWN1bmUgaW5mb3JtYXRpb24gc3VyIGxlIHByb2dyYW1tZSBxdWkgbCd1dGlsaXNlKSBldCBuJ2VzdCBuaSBzdGFuZGFyZGlz6WUKICAgIG5pIGRpc3BvbmlibGUgc3VyIHRvdXRlcyBsZXMgcGxhdGVmb3JtZXMuIEVuIHByYXRpcXVlLCBsZXMgc3ltYm9sZXMgZ2xvYmF1eAogICAgZHUgcHJvZ3JhbW1lIGV46WN1dGFibGUgbmUgc29udCBlbiBn6W7pcmFsIHBhcyBy6WV4cG9ydOlzIGV0IGRvbmMKICAgIGluZGlzcG9uaWJsZXMgcG91ciBsJ3V0aWxpc2F0aW9uIGRhbnMgdW4gRFNPLiBUcm91dmVyIHVuZSBt6XRob2RlIHBvdXIKICAgIGZvcmNlciBsJ+lkaXRldXIgZGUgbGllbnMg4CBleHBvcnRlciB0b3VzIGxlcyBzeW1ib2xlcyBnbG9iYXV4IGVzdCBsZQogICAgcHJpbmNpcGFsIHByb2Js6G1lIHF1ZSBsJ29uIGRvaXQgculzb3VkcmUgbG9yc3F1J29uIHV0aWxpc2UgdW4gRFNPIHBvdXIKICAgIOl0ZW5kcmUgbGVzIGZvbmN0aW9ubmFsaXTpcyBkJ3VuIHByb2dyYW1tZSBhdSBtb21lbnQgZGUgc29uIGV46WN1dGlvbi48L3A+CgogICAgPHA+TCdhcHByb2NoZSBkZXMgYmlibGlvdGjocXVlcyBwYXJ0YWfpZXMgZXN0IGxhIHBsdXMgY291cmFudGUsIHBhcmNlIHF1ZQogICAgYydlc3QgZGFucyBjZXR0ZSBvcHRpcXVlIHF1ZSBsZSBt6WNhbmlzbWUgRFNPIGEg6XTpIGNvbud1IDsgYydlc3QgY2V0dGUKICAgIGFwcHJvY2hlIHF1aSBlc3QgYWluc2kKICAgIHV0aWxpc+llIHBhciBwcmF0aXF1ZW1lbnQgdG91cyBsZXMgdHlwZXMgZGUgYmlibGlvdGjocXVlcyBxdWUgZm91cm5pdCBsZQogICAgc3lzdOhtZSBkJ2V4cGxvaXRhdGlvbi48L3A+Cgo8L2Rpdj48ZGl2IGNsYXNzPSJ0b3AiPjxhIGhyZWY9IiNwYWdlLWhlYWRlciI+PGltZyBhbHQ9InRvcCIgc3JjPSIuL2ltYWdlcy91cC5naWYiIC8+PC9hPjwvZGl2Pgo8ZGl2IGNsYXNzPSJzZWN0aW9uIj4KPGgyPjxhIG5hbWU9ImFkdmFudGFnZXMiIGlkPSJhZHZhbnRhZ2VzIj5BdmFudGFnZXMgZXQgaW5jb2526W5pZW50czwvYT48L2gyPgoKICAgIDxwPkxlcyBmb25jdGlvbm5hbGl06XMgY2ktZGVzc3VzIGJhc+llcyBzdXIgbGVzIERTTyBwculzZW50ZW50IGxlcwogICAgYXZhbnRhZ2VzIHN1aXZhbnRzIDo8L3A+CgogICAgPHVsPgogICAgICA8bGk+TGUgcGFxdWV0YWdlIGR1IHNlcnZldXIgZXN0IHBsdXMgZmxleGlibGUg4CBsJ2V46WN1dGlvbiBjYXIgbGUKICAgICAgcHJvY2Vzc3VzIHNlcnZldXIgcGV1dCDqdHJlIGFzc2VtYmzpIOAgbCdleOljdXRpb24gdmlhIGxhCiAgICAgIGRpcmVjdGl2ZSA8Y29kZSBjbGFzcz0iZGlyZWN0aXZlIj48YSBocmVmPSIuL21vZC9tb2Rfc28uaHRtbCNsb2FkbW9kdWxlIj5Mb2FkTW9kdWxlPC9hPjwvY29kZT4gZHUgZmljaGllciBkZQogICAgICBjb25maWd1cmF0aW9uIDxjb2RlPmh0dHBkLmNvbmY8L2NvZGU+IHBsdXT0dCBxdWUgcGFyIGRlcyBvcHRpb25zIGR1IHNjcmlwdAogICAgICA8Y29kZSBjbGFzcz0icHJvZ3JhbSI+PGEgaHJlZj0iLi9wcm9ncmFtcy9jb25maWd1cmUuaHRtbCI+Y29uZmlndXJlPC9hPjwvY29kZT4g4CBsYSBjb21waWxhdGlvbi4gUGFyIGV4ZW1wbGUsCiAgICAgIG9uIHBldXQgYWluc2kgZXjpY3V0ZXIgZGlmZulyZW50ZXMgaW5zdGFuY2VzIGR1IHNlcnZldXIKICAgICAgKHN0YW5kYXJkIGV0IHZlcnNpb24gU1NMLCB2ZXJzaW9uIG1pbmltYWxlIGV0IHZlcnNpb24gZHluYW1pcXVlCiAgICAgIFttb2RfcGVybCwgbW9kX3BocF0sIDxlbT5ldGMuLi48L2VtPikg4CBwYXJ0aXIgZCd1bmUgc2V1bGUgaW5zdGFsbGF0aW9uCiAgICAgIGQnQXBhY2hlIGh0dHBkLjwvbGk+CgogICAgICA8bGk+TGUgcGFxdWV0YWdlIGR1IHNlcnZldXIgcGV1dCDqdHJlIGZhY2lsZW1lbnQg6XRlbmR1IGF2ZWMgZGVzIG1vZHVsZXMKICAgICAgdGllcnMsIG3qbWUgYXBy6HMgbCdpbnN0YWxsYXRpb24uIENlY2kgcHLpc2VudGUgdW4gZ3JvcwogICAgICBhdmFudGFnZSBwb3VyIGxlcyBtYWludGVuZXVycyBkZSBwYXF1ZXRhZ2VzIGRlc3RpbulzIGF1eCBkaXN0cmlidXRpb25zLAogICAgICBjYXIgaWxzIHBldXZlbnQgY3LpZXIgdW4gcGFxdWV0YWdlIEFwYWNoZSBodHRwZCBkZSBiYXNlLCBldCBkZXMgcGFxdWV0YWdlcwogICAgICBhZGRpdGlvbm5lbHMgY29udGVuYW50IGRlcyBleHRlbnNpb25zIHRlbGxlcyBxdWUgUEhQLCBtb2RfcGVybCwgbW9kX2Zhc3RjZ2ksCiAgICAgIDxlbT5ldGMuLi48L2VtPjwvbGk+CgogICAgICA8bGk+VW5lIGZhY2lsaXTpIGRlIHByb3RvdHlwYWdlIGRlcyBtb2R1bGVzIEFwYWNoZSBodHRwZCwgY2FyIGxhIHBhaXJlCiAgICAgIERTTy88Y29kZSBjbGFzcz0icHJvZ3JhbSI+PGEgaHJlZj0iLi9wcm9ncmFtcy9hcHhzLmh0bWwiPmFweHM8L2E+PC9jb2RlPiB2b3VzIHBlcm1ldCBkJ3VuZSBwYXJ0IGRlIHRyYXZhaWxsZXIgZW4KICAgICAgZGVob3JzIGRlIGwnYXJib3Jlc2NlbmNlIGRlcyBzb3VyY2VzIGQnQXBhY2hlIGh0dHBkLCBldCBkJ2F1dHJlIHBhcnQgZGUgbidhdm9pcgogICAgICBiZXNvaW4gcXVlIGRlIGxhIGNvbW1hbmRlIDxjb2RlPmFweHMgLWk8L2NvZGU+CiAgICAgIHN1aXZpZSBkJ3VuIDxjb2RlPmFwYWNoZWN0bCByZXN0YXJ0PC9jb2RlPiBwb3VyIGludHJvZHVpcmUgdW5lIG5vdXZlbGxlCiAgICAgIHZlcnNpb24gZGUgdm90cmUgbW9kdWxlIGZyYe5jaGVtZW50IGTpdmVsb3Bw6SBkYW5zIGxlIHNlcnZldXIgSFRUUCBBcGFjaGUKICAgICAgZW4gY291cnMgZCdleOljdXRpb24uPC9saT4KICAgIDwvdWw+CgogICAgPHA+SW5jb2526W5pZW50cyBkZXMgRFNPIDo8L3A+CgogICAgPHVsPgogICAgICA8bGk+TGUgc2VydmV1ciBlc3QgZW52aXJvbiAyMCAlIHBsdXMgbGVudCBhdSBk6W1hcnJhZ2UKICAgICAg4CBjYXVzZSBkZXMgculzb2x1dGlvbnMgZGUgc3ltYm9sZXMgc3VwcGzpbWVudGFpcmVzIHF1ZSBsZSBjaGFyZ2V1cgogICAgICBVbml4IGRvaXQgZWZmZWN0dWVyLjwvbGk+CgogICAgICA8bGk+TGUgc2VydmV1ciBlc3QgZW52aXJvbiA1ICUgcGx1cyBsZW50IOAgbCdleOljdXRpb24KICAgICAgc3VyIGNlcnRhaW5lcyBwbGF0ZXMtZm9ybWVzLCBjYXIgbGUgY29kZSBpbmTpcGVuZGFudCBkZSBsYSBwb3NpdGlvbiAoUElDKQogICAgICBu6WNlc3NpdGUgcGFyZm9pcyBkZXMgbWFuaXB1bGF0aW9ucyBjb21wbGlxdellcyBlbiBhc3NlbWJsZXVyIHBvdXIKICAgICAgbCdhZHJlc3NhZ2UgcmVsYXRpZiBxdWkgbmUgc29udCBwYXMgdG91am91cnMgYXVzc2kgcmFwaWRlcyBxdWUgY2VsbGVzCiAgICAgIHF1ZSBwZXJtZXQgbCdhZHJlc3NhZ2UgYWJzb2x1LjwvbGk+CgogICAgICA8bGk+Q29tbWUgbGVzIG1vZHVsZXMgRFNPIG5lIHBldXZlbnQgcGFzIOp0cmUgbGnpcyBhdmVjIGQnYXV0cmVzCiAgICAgIGJpYmxpb3Ro6HF1ZXMgYmFz6WVzIHN1ciBEU08gKDxjb2RlPmxkIC1sZm9vPC9jb2RlPikgc3VyIHRvdXRlcyBsZXMKICAgICAgcGxhdGVzLWZvcm1lcwogICAgICAocGFyIGV4ZW1wbGUsIGxlcyBwbGF0ZXMtZm9ybWVzIGJhc+llcyBzdXIgYS5vdXQgbmUgZm91cm5pc3NlbnQgZW4KICAgICAgZ+lu6XJhbCBwYXMgY2V0dGUgZm9uY3Rpb25uYWxpdOkgYWxvcnMgcXVlIGxlcyBwbGF0ZXMtZm9ybWVzIGJhc+llcyBzdXIKICAgICAgRUxGIGxlIGZvbnQpLCB2b3VzIG5lIHBvdXZleiBwYXMgdXRpbGlzZXIgbGUgbeljYW5pc21lIERTTyBwb3VyIHRvdXMgbGVzCiAgICAgIHR5cGVzIGRlIG1vZHVsZXMuIE91IGVuIGQnYXV0cmVzIHRlcm1lcywgbGVzIG1vZHVsZXMgY29tcGls6XMgY29tbWUKICAgICAgZmljaGllcnMgRFNPIHNvbnQgY29udHJhaW50cyBkZSBuJ3V0aWxpc2VyIHF1ZSBsZXMgc3ltYm9sZXMgZHUgY29ldXIKICAgICAgZCdBcGFjaGUgaHR0cGQsIGRlIGxhIGJpYmxpb3Ro6HF1ZSBDCiAgICAgICg8Y29kZT5saWJjPC9jb2RlPikgZXQgdG91dGVzIGF1dHJlcyBiaWJsaW90aOhxdWVzIHN0YXRpcXVlcyBvdQogICAgICBkeW5hbWlxdWVzIHV0aWxpc+llcyBwYXIgbGUgY29ldXIgZCdBcGFjaGUgaHR0cGQsIG91IGQnYXJjaGl2ZXMgc3RhdGlxdWVzCiAgICAgICg8Y29kZT5saWJmb28uYTwvY29kZT4pIGNvbnRlbmFudCBkdSBjb2RlIGluZOlwZW5kYW50IGRlIGxhCiAgICAgIHBvc2l0aW9uIChQSUMpLgogICAgICBJbCB5IGEgZGV1eCBzb2x1dGlvbnMgcG91ciB1dGlsaXNlciB1biBhdXRyZSB0eXBlIGRlIGNvZGUgOiBzb2l0IGxlCiAgICAgIGNvZXVyIGQnQXBhY2hlIGh0dHBkIGNvbnRpZW50IGTpauAgbHVpLW3qbWUgdW5lIHLpZulyZW5jZSBhdSBjb2RlLCBzb2l0IHZvdXMKICAgICAgY2hhcmdleiBsZSBjb2RlIHZvdXMtbeptZSB2aWEgPGNvZGU+ZGxvcGVuKCk8L2NvZGU+LjwvbGk+CiAgICA8L3VsPgoKPC9kaXY+PC9kaXY+CjxkaXYgY2xhc3M9ImJvdHRvbWxhbmciPgo8cD48c3Bhbj5MYW5ndWVzIERpc3BvbmlibGVzOiA8L3NwYW4+PGEgaHJlZj0iLi9lbi9kc28uaHRtbCIgaHJlZmxhbmc9ImVuIiByZWw9ImFsdGVybmF0ZSIgdGl0bGU9IkVuZ2xpc2giPiZuYnNwO2VuJm5ic3A7PC9hPiB8CjxhIGhyZWY9Ii4vZnIvZHNvLmh0bWwiIHRpdGxlPSJGcmFu52FpcyI+Jm5ic3A7ZnImbmJzcDs8L2E+IHwKPGEgaHJlZj0iLi9qYS9kc28uaHRtbCIgaHJlZmxhbmc9ImphIiByZWw9ImFsdGVybmF0ZSIgdGl0bGU9IkphcGFuZXNlIj4mbmJzcDtqYSZuYnNwOzwvYT4gfAo8YSBocmVmPSIuL2tvL2Rzby5odG1sIiBocmVmbGFuZz0ia28iIHJlbD0iYWx0ZXJuYXRlIiB0aXRsZT0iS29yZWFuIj4mbmJzcDtrbyZuYnNwOzwvYT4gfAo8YSBocmVmPSIuL3RyL2Rzby5odG1sIiBocmVmbGFuZz0idHIiIHJlbD0iYWx0ZXJuYXRlIiB0aXRsZT0iVPxya+dlIj4mbmJzcDt0ciZuYnNwOzwvYT48L3A+CjwvZGl2PjxkaXYgY2xhc3M9InRvcCI+PGEgaHJlZj0iI3BhZ2UtaGVhZGVyIj48aW1nIHNyYz0iLi9pbWFnZXMvdXAuZ2lmIiBhbHQ9InRvcCIgLz48L2E+PC9kaXY+PGRpdiBjbGFzcz0ic2VjdGlvbiI+PGgyPjxhIGlkPSJjb21tZW50c19zZWN0aW9uIiBuYW1lPSJjb21tZW50c19zZWN0aW9uIj5Db21tZW50YWlyZXM8L2E+PC9oMj48ZGl2IGNsYXNzPSJ3YXJuaW5nIj48c3Ryb25nPk5vdGljZTo8L3N0cm9uZz48YnIgLz5UaGlzIGlzIG5vdCBhIFEmYW1wO0Egc2VjdGlvbi4gQ29tbWVudHMgcGxhY2VkIGhlcmUgc2hvdWxkIGJlIHBvaW50ZWQgdG93YXJkcyBzdWdnZXN0aW9ucyBvbiBpbXByb3ZpbmcgdGhlIGRvY3VtZW50YXRpb24gb3Igc2VydmVyLCBhbmQgbWF5IGJlIHJlbW92ZWQgYWdhaW4gYnkgb3VyIG1vZGVyYXRvcnMgaWYgdGhleSBhcmUgZWl0aGVyIGltcGxlbWVudGVkIG9yIGNvbnNpZGVyZWQgaW52YWxpZC9vZmYtdG9waWMuIFF1ZXN0aW9ucyBvbiBob3cgdG8gbWFuYWdlIHRoZSBBcGFjaGUgSFRUUCBTZXJ2ZXIgc2hvdWxkIGJlIGRpcmVjdGVkIGF0IGVpdGhlciBvdXIgSVJDIGNoYW5uZWwsICNodHRwZCwgb24gRnJlZW5vZGUsIG9yIHNlbnQgdG8gb3VyIDxhIGhyZWY9Imh0dHA6Ly9odHRwZC5hcGFjaGUub3JnL2xpc3RzLmh0bWwiPm1haWxpbmcgbGlzdHM8L2E+LjwvZGl2Pgo8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+PCEtLS8vLS0+PCFbQ0RBVEFbLy8+PCEtLQp2YXIgY29tbWVudHNfc2hvcnRuYW1lID0gJ2h0dHBkJzsKdmFyIGNvbW1lbnRzX2lkZW50aWZpZXIgPSAnaHR0cDovL2h0dHBkLmFwYWNoZS5vcmcvZG9jcy90cnVuay9kc28uaHRtbCc7CihmdW5jdGlvbih3LCBkKSB7CiAgICBpZiAody5sb2NhdGlvbi5ob3N0bmFtZS50b0xvd2VyQ2FzZSgpID09ICJodHRwZC5hcGFjaGUub3JnIikgewogICAgICAgIGQud3JpdGUoJzxkaXYgaWQ9ImNvbW1lbnRzX3RocmVhZCI+PFwvZGl2PicpOwogICAgICAgIHZhciBzID0gZC5jcmVhdGVFbGVtZW50KCdzY3JpcHQnKTsKICAgICAgICBzLnR5cGUgPSAndGV4dC9qYXZhc2NyaXB0JzsKICAgICAgICBzLmFzeW5jID0gdHJ1ZTsKICAgICAgICBzLnNyYyA9ICdodHRwczovL2NvbW1lbnRzLmFwYWNoZS5vcmcvc2hvd19jb21tZW50cy5sdWE/c2l0ZT0nICsgY29tbWVudHNfc2hvcnRuYW1lICsgJyZwYWdlPScgKyBjb21tZW50c19pZGVudGlmaWVyOwogICAgICAgIChkLmdldEVsZW1lbnRzQnlUYWdOYW1lKCdoZWFkJylbMF0gfHwgZC5nZXRFbGVtZW50c0J5VGFnTmFtZSgnYm9keScpWzBdKS5hcHBlbmRDaGlsZChzKTsKICAgIH0KICAgIGVsc2UgewogICAgICAgIGQud3JpdGUoJzxkaXYgaWQ9ImNvbW1lbnRzX3RocmVhZCI+Q29tbWVudHMgYXJlIGRpc2FibGVkIGZvciB0aGlzIHBhZ2UgYXQgdGhlIG1vbWVudC48XC9kaXY+Jyk7CiAgICB9Cn0pKHdpbmRvdywgZG9jdW1lbnQpOwovLy0tPjwhXV0+PC9zY3JpcHQ+PC9kaXY+PGRpdiBpZD0iZm9vdGVyIj4KPHAgY2xhc3M9ImFwYWNoZSI+Q29weXJpZ2h0IDIwMTYgVGhlIEFwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLjxiciAvPkF1dG9yaXPpIHNvdXMgPGEgaHJlZj0iaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wIj5BcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjA8L2E+LjwvcD4KPHAgY2xhc3M9Im1lbnUiPjxhIGhyZWY9Ii4vbW9kLyI+TW9kdWxlczwvYT4gfCA8YSBocmVmPSIuL21vZC9xdWlja3JlZmVyZW5jZS5odG1sIj5EaXJlY3RpdmVzPC9hPiB8IDxhIGhyZWY9Imh0dHA6Ly93aWtpLmFwYWNoZS5vcmcvaHR0cGQvRkFRIj5GQVE8L2E+IHwgPGEgaHJlZj0iLi9nbG9zc2FyeS5odG1sIj5HbG9zc2FpcmU8L2E+IHwgPGEgaHJlZj0iLi9zaXRlbWFwLmh0bWwiPlBsYW4gZHUgc2l0ZTwvYT48L3A+PC9kaXY+PHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPjwhLS0vLy0tPjwhW0NEQVRBWy8vPjwhLS0KaWYgKHR5cGVvZihwcmV0dHlQcmludCkgIT09ICd1bmRlZmluZWQnKSB7CiAgICBwcmV0dHlQcmludCgpOwp9Ci8vLS0+PCFdXT48L3NjcmlwdD4KPC9ib2R5PjwvaHRtbD4=