{"js":"PCFET0NUWVBFIGh0bWw+CjxodG1sIGxhbmc9ImVuIj4KPGhlYWQ+CiAgICA8bWV0YSBjaGFyc2V0PSJVVEYtOCI+CiAgICA8bWV0YSBuYW1lPSJ2aWV3cG9ydCIgY29udGVudD0id2lkdGg9ZGV2aWNlLXdpZHRoLCBpbml0aWFsLXNjYWxlPTEuMCI+CiAgICA8dGl0bGU+RjQgQWNhZGVteSAtIEZ1dHVyZSBMZWFkZXJzIFN0YXJ0IEhlcmU8L3RpdGxlPgogICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJodHRwczovL2NkbmpzLmNsb3VkZmxhcmUuY29tL2FqYXgvbGlicy90YWlsd2luZGNzcy8yLjIuMTkvdGFpbHdpbmQubWluLmNzcyI+CiAgICA8c2NyaXB0IHNyYz0iaHR0cHM6Ly9jZG5qcy5jbG91ZGZsYXJlLmNvbS9hamF4L2xpYnMvZnJhbWVyLW1vdGlvbi82LjUuMS9mcmFtZXItbW90aW9uLmpzIj48L3NjcmlwdD4KCiAgICA8c3R5bGU+CiAgICAgICAgQGtleWZyYW1lcyBmbG9hdCB7CiAgICAgICAgICAgIDAlIHsgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDBweCk7IH0KICAgICAgICAgICAgNTAlIHsgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0yMHB4KTsgfQogICAgICAgICAgICAxMDAlIHsgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDBweCk7IH0KICAgICAgICB9CgogICAgICAgIC5mbG9hdGluZyB7CiAgICAgICAgICAgIGFuaW1hdGlvbjogZmxvYXQgNnMgZWFzZS1pbi1vdXQgaW5maW5pdGU7CiAgICAgICAgfQoKICAgICAgICAuZ3JhZGllbnQtdGV4dCB7CiAgICAgICAgICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCg0NWRlZywgIzdjM2FlZCwgIzNiODJmNik7CiAgICAgICAgICAgIC13ZWJraXQtYmFja2dyb3VuZC1jbGlwOiB0ZXh0OwogICAgICAgICAgICAtd2Via2l0LXRleHQtZmlsbC1jb2xvcjogdHJhbnNwYXJlbnQ7CiAgICAgICAgfQoKICAgICAgICAuaGVyby1ncmFkaWVudCB7CiAgICAgICAgICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgKICAgICAgICAgICAgICAgIDEzNWRlZywKICAgICAgICAgICAgICAgIHJnYmEoMTI0LCA1OCwgMjM3LCAwLjgpLAogICAgICAgICAgICAgICAgcmdiYSg1OSwgMTMwLCAyNDYsIDAuOCkKICAgICAgICAgICAgKSwKICAgICAgICAgICAgdXJsKCdwYXRoLXRvLXlvdXItYmFja2dyb3VuZC1pbWFnZS5qcGcnKTsKICAgICAgICAgICAgYmFja2dyb3VuZC1zaXplOiBjb3ZlcjsKICAgICAgICB9CgogICAgICAgIC5uYXYtbGluayB7CiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgICB9CgogICAgICAgIC5uYXYtbGluazo6YWZ0ZXIgewogICAgICAgICAgICBjb250ZW50OiAnJzsKICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgICAgICBib3R0b206IDA7CiAgICAgICAgICAgIGxlZnQ6IDA7CiAgICAgICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgICAgICBoZWlnaHQ6IDJweDsKICAgICAgICAgICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDkwZGVnLCAjN2MzYWVkLCAjM2I4MmY2KTsKICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC0xMDAlKTsKICAgICAgICAgICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuM3MgZWFzZTsKICAgICAgICB9CgogICAgICAgIC5uYXYtbGluazpob3Zlcjo6YWZ0ZXIgewogICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMCk7CiAgICAgICAgfQoKICAgICAgICAuYnV0dG9uLWdyYWRpZW50IHsKICAgICAgICAgICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDQ1ZGVnLCAjN2MzYWVkLCAjM2I4MmY2KTsKICAgICAgICAgICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuM3MgZWFzZTsKICAgICAgICB9CgogICAgICAgIC5idXR0b24tZ3JhZGllbnQ6aG92ZXIgewogICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTJweCk7CiAgICAgICAgfQogICAgPC9zdHlsZT4KPC9oZWFkPgo8Ym9keSBjbGFzcz0iYmctZ3JheS01MCI+CiAgICA8IS0tIFJTUyBGZWVkIEJhbm5lciAtLT4KICAgIDxkaXYgY2xhc3M9ImJnLWdyYWRpZW50LXRvLXIgZnJvbS1wdXJwbGUtNjAwIHZpYS1ibHVlLTUwMCB0by1wdXJwbGUtNjAwIHRleHQtd2hpdGUgcHktMiI+CiAgICAgICAgPGRpdiBpZD0icnNzRmVlZCIgY2xhc3M9ImNvbnRhaW5lciBteC1hdXRvIHB4LTQgdGV4dC1jZW50ZXIiPjwvZGl2PgogICAgPC9kaXY+CgogICAgPCEtLSBOYXZpZ2F0aW9uIC0tPgogICAgPG5hdiBjbGFzcz0iYmctd2hpdGUgc2hhZG93LWxnIHN0aWNreSB0b3AtMCB6LTUwIj4KICAgICAgICA8ZGl2IGNsYXNzPSJjb250YWluZXIgbXgtYXV0byBweC00Ij4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iZmxleCBqdXN0aWZ5LWJldHdlZW4gaXRlbXMtY2VudGVyIGgtMTYiPgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZmxleCBpdGVtcy1jZW50ZXIiPgogICAgICAgICAgICAgICAgICAgIDxpbWcgc3JjPSIvbG9nby5wbmciIGFsdD0iRjQgTG9nbyIgY2xhc3M9ImgtOCB3LWF1dG8iPgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImhpZGRlbiBtZDpmbGV4IGl0ZW1zLWNlbnRlciBzcGFjZS14LTgiPgogICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9IiNwcm9ncmFtcyIgY2xhc3M9Im5hdi1saW5rIHRleHQtZ3JheS03MDAgaG92ZXI6dGV4dC1wdXJwbGUtNjAwIj5Qcm9ncmFtczwvYT4KICAgICAgICAgICAgICAgICAgICA8YSBocmVmPSIjZmVhdHVyZXMiIGNsYXNzPSJuYXYtbGluayB0ZXh0LWdyYXktNzAwIGhvdmVyOnRleHQtcHVycGxlLTYwMCI+RmVhdHVyZXM8L2E+CiAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iaHR0cHM6Ly9mYW5hbmNpYWxmaXRuZXNzZm9ydHVuZXMuY29tIiBjbGFzcz0ibmF2LWxpbmsgdGV4dC1ncmF5LTcwMCBob3Zlcjp0ZXh0LXB1cnBsZS02MDAiPk1haW4gU2l0ZTwvYT4KICAgICAgICAgICAgICAgICAgICA8YSBocmVmPSJodHRwczovL2Z1dHVyZXByZW5ldXJzLmNvbS9odWItbmV3cyIgY2xhc3M9Im5hdi1saW5rIHRleHQtZ3JheS03MDAgaG92ZXI6dGV4dC1wdXJwbGUtNjAwIj5OZXdzPC9hPgogICAgICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9ImJ1dHRvbi1ncmFkaWVudCB0ZXh0LXdoaXRlIHB4LTYgcHktMiByb3VuZGVkLWZ1bGwiPgogICAgICAgICAgICAgICAgICAgICAgICBTY2hlZHVsZSBNZWV0ICYgR3JlZXQKICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj4KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgIDwvbmF2PgoKICAgIDwhLS0gSGVybyBTZWN0aW9uIC0tPgogICAgPHNlY3Rpb24gY2xhc3M9Imhlcm8tZ3JhZGllbnQgdGV4dC13aGl0ZSBweS0yNCI+CiAgICAgICAgPGRpdiBjbGFzcz0iY29udGFpbmVyIG14LWF1dG8gcHgtNCB0ZXh0LWNlbnRlciI+CiAgICAgICAgICAgIDxoMSBjbGFzcz0idGV4dC01eGwgbWQ6dGV4dC03eGwgZm9udC1ib2xkIG1iLTgiPlRyYW5zZm9ybSBZb3VyIEZ1dHVyZTwvaDE+CiAgICAgICAgICAgIDxwIGNsYXNzPSJ0ZXh0LXhsIG1kOnRleHQtMnhsIG1iLTEyIG1heC13LTN4bCBteC1hdXRvIj4KICAgICAgICAgICAgICAgIEVtcG93ZXJpbmcgeW91bmcgbWluZHMgdGhyb3VnaCBmaW5hbmNpYWwgbGl0ZXJhY3kgYW5kIGxlYWRlcnNoaXAgZGV2ZWxvcG1lbnQKICAgICAgICAgICAgPC9wPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJmbGV4IGZsZXgtd3JhcCBqdXN0aWZ5LWNlbnRlciBnYXAtNiI+CiAgICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJmbG9hdGluZyBidXR0b24tZ3JhZGllbnQgdGV4dC13aGl0ZSBweC04IHB5LTQgcm91bmRlZC1mdWxsIHRleHQtbGcgZm9udC1ib2xkIj4KICAgICAgICAgICAgICAgICAgICBTdGFydCBZb3VyIEpvdXJuZXkKICAgICAgICAgICAgICAgIDwvYnV0dG9uPgogICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz0iZmxvYXRpbmcgYnV0dG9uLWdyYWRpZW50IGJnLXdoaXRlIHRleHQtcHVycGxlLTYwMCBweC04IHB5LTQgcm91bmRlZC1mdWxsIHRleHQtbGcgZm9udC1ib2xkIj4KICAgICAgICAgICAgICAgICAgICBFeHBsb3JlIFByb2dyYW1zCiAgICAgICAgICAgICAgICA8L2J1dHRvbj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICA8L3NlY3Rpb24+CgogICAgPCEtLSBQcm9ncmFtcyBTZWN0aW9uIC0tPgogICAgPHNlY3Rpb24gaWQ9InByb2dyYW1zIiBjbGFzcz0icHktMjQgYmctd2hpdGUiPgogICAgICAgIDwhLS0gQWRkIHByb2dyYW1zIGNvbnRlbnQgLS0+CiAgICA8L3NlY3Rpb24+CgogICAgPCEtLSBGZWF0dXJlcyBTZWN0aW9uIC0tPgogICAgPHNlY3Rpb24gaWQ9ImZlYXR1cmVzIiBjbGFzcz0icHktMjQgYmctZ3JheS01MCI+CiAgICAgICAgPCEtLSBBZGQgZmVhdHVyZXMgY29udGVudCAtLT4KICAgIDwvc2VjdGlvbj4KCiAgICA8IS0tIEZvb3RlciAtLT4KICAgIDxmb290ZXIgY2xhc3M9ImJnLWdyYXktOTAwIHRleHQtd2hpdGUgcHktMTIiPgogICAgICAgIDwhLS0gQWRkIGZvb3RlciBjb250ZW50IC0tPgogICAgPC9mb290ZXI+CgogICAgPHNjcmlwdD4KICAgICAgICAvLyBSU1MgRmVlZCBJbXBsZW1lbnRhdGlvbgogICAgICAgIGFzeW5jIGZ1bmN0aW9uIGZldGNoUlNTRmVlZCgpIHsKICAgICAgICAgICAgdHJ5IHsKICAgICAgICAgICAgICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgZmV0Y2goJ2h0dHBzOi8vcnNzLmFwcC9mZWVkcy9XYTBJOTd1SGk2Y3RyTWx3LnhtbCcpOwogICAgICAgICAgICAgICAgY29uc3QgdGV4dCA9IGF3YWl0IHJlc3BvbnNlLnRleHQoKTsKICAgICAgICAgICAgICAgIGNvbnN0IHBhcnNlciA9IG5ldyBET01QYXJzZXIoKTsKICAgICAgICAgICAgICAgIGNvbnN0IHhtbCA9IHBhcnNlci5wYXJzZUZyb21TdHJpbmcodGV4dCwgJ3RleHQveG1sJyk7CiAgICAgICAgICAgICAgICBjb25zdCBpdGVtcyA9IHhtbC5xdWVyeVNlbGVjdG9yQWxsKCdpdGVtJyk7CiAgICAgICAgICAgICAgICBjb25zdCBmZWVkRWxlbWVudCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdyc3NGZWVkJyk7CiAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgIGxldCBjdXJyZW50SW5kZXggPSAwOwogICAgICAgICAgICAgICAgc2V0SW50ZXJ2YWwoKCkgPT4gewogICAgICAgICAgICAgICAgICAgIGNvbnN0IGl0ZW0gPSBpdGVtc1tjdXJyZW50SW5kZXhdOwogICAgICAgICAgICAgICAgICAgIGZlZWRFbGVtZW50LnRleHRDb250ZW50ID0gaXRlbS5xdWVyeVNlbGVjdG9yKCd0aXRsZScpLnRleHRDb250ZW50OwogICAgICAgICAgICAgICAgICAgIGN1cnJlbnRJbmRleCA9IChjdXJyZW50SW5kZXggKyAxKSAlIGl0ZW1zLmxlbmd0aDsKICAgICAgICAgICAgICAgIH0sIDUwMDApOwogICAgICAgICAgICB9IGNhdGNoIChlcnJvcikgewogICAgICAgICAgICAgICAgY29uc29sZS5lcnJvcignUlNTIEZlZWQgRXJyb3I6JywgZXJyb3IpOwogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICBmZXRjaFJTU0ZlZWQoKTsKICAgIDwvc2NyaXB0Pgo8L2JvZHk+CjwvaHRtbD4KPCEtLSBQcm9ncmFtcyBTZWN0aW9uIENvbnRlbnQgLS0+CjxzZWN0aW9uIGlkPSJwcm9ncmFtcyIgY2xhc3M9InB5LTI0IGJnLXdoaXRlIj4KICAgIDxkaXYgY2xhc3M9ImNvbnRhaW5lciBteC1hdXRvIHB4LTQiPgogICAgICAgIDxkaXYgY2xhc3M9InRleHQtY2VudGVyIG1iLTE2Ij4KICAgICAgICAgICAgPGgyIGNsYXNzPSJ0ZXh0LTR4bCBtZDp0ZXh0LTV4bCBmb250LWJvbGQgbWItNCBncmFkaWVudC10ZXh0Ij5PdXIgUHJvZ3JhbXM8L2gyPgogICAgICAgICAgICA8cCBjbGFzcz0idGV4dC14bCB0ZXh0LWdyYXktNjAwIj5DaG9vc2UgWW91ciBQYXRoIHRvIFN1Y2Nlc3M8L3A+CiAgICAgICAgPC9kaXY+CgogICAgICAgIDxkaXYgY2xhc3M9ImdyaWQgZ3JpZC1jb2xzLTEgbWQ6Z3JpZC1jb2xzLTMgZ2FwLTgiPgogICAgICAgICAgICA8IS0tIERyZWFtIEV4cGxvcmVycyBDYXJkIC0tPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJyb3VuZGVkLXhsIG92ZXJmbG93LWhpZGRlbiBzaGFkb3ctbGcgaG92ZXI6c2hhZG93LTJ4bCB0cmFuc2l0aW9uLXNoYWRvdyBkdXJhdGlvbi0zMDAiPgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iaC00OCBiZy1ncmFkaWVudC10by1yIGZyb20tcGluay01MDAgdG8tcHVycGxlLTUwMCByZWxhdGl2ZSI+CiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iYWJzb2x1dGUgaW5zZXQtMCBmbGV4IGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNlbnRlciI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImZsb2F0aW5nIHRleHQtd2hpdGUgdGV4dC02eGwiPuKcqDwvZGl2PgogICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJwLTYiPgogICAgICAgICAgICAgICAgICAgIDxoMyBjbGFzcz0idGV4dC0yeGwgZm9udC1ib2xkIG1iLTIiPkRyZWFtIEV4cGxvcmVyczwvaDM+CiAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9InRleHQtcHVycGxlLTYwMCBmb250LXNlbWlib2xkIG1iLTQiPkFnZXMgNS04PC9wPgogICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzPSJ0ZXh0LWdyYXktNjAwIG1iLTYiPkVhcmx5IGZpbmFuY2lhbCBsaXRlcmFjeSB0aHJvdWdoIGludGVyYWN0aXZlIHN0b3JpZXMgYW5kIGdhbWVzLjwvcD4KICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJ3LWZ1bGwgYnV0dG9uLWdyYWRpZW50IHRleHQtd2hpdGUgcHktMiByb3VuZGVkLWZ1bGwiPkxlYXJuIE1vcmU8L2J1dHRvbj4KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8L2Rpdj4KCiAgICAgICAgICAgIDwhLS0gWW91bmcgRHJlYW1lcnMgQ2FyZCAtLT4KICAgICAgICAgICAgPGRpdiBjbGFzcz0icm91bmRlZC14bCBvdmVyZmxvdy1oaWRkZW4gc2hhZG93LWxnIGhvdmVyOnNoYWRvdy0yeGwgdHJhbnNpdGlvbi1zaGFkb3cgZHVyYXRpb24tMzAwIj4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImgtNDggYmctZ3JhZGllbnQtdG8tciBmcm9tLWJsdWUtNTAwIHRvLWN5YW4tNTAwIHJlbGF0aXZlIj4KICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJhYnNvbHV0ZSBpbnNldC0wIGZsZXggaXRlbXMtY2VudGVyIGp1c3RpZnktY2VudGVyIj4KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZmxvYXRpbmcgdGV4dC13aGl0ZSB0ZXh0LTZ4bCI+8J+agDwvZGl2PgogICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJwLTYiPgogICAgICAgICAgICAgICAgICAgIDxoMyBjbGFzcz0idGV4dC0yeGwgZm9udC1ib2xkIG1iLTIiPllvdW5nIERyZWFtZXJzPC9oMz4KICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz0idGV4dC1ibHVlLTYwMCBmb250LXNlbWlib2xkIG1iLTQiPkFnZXMgOS0xMjwvcD4KICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz0idGV4dC1ncmF5LTYwMCBtYi02Ij5CdWlsZGluZyBmb3VuZGF0aW9uYWwgbW9uZXkgbWFuYWdlbWVudCBhbmQgZW50cmVwcmVuZXVyc2hpcCBza2lsbHMuPC9wPgogICAgICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9InctZnVsbCBidXR0b24tZ3JhZGllbnQgdGV4dC13aGl0ZSBweS0yIHJvdW5kZWQtZnVsbCI+TGVhcm4gTW9yZTwvYnV0dG9uPgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDwvZGl2PgoKICAgICAgICAgICAgPCEtLSBUZWVuIElubm92YXRvcnMgQ2FyZCAtLT4KICAgICAgICAgICAgPGRpdiBjbGFzcz0icm91bmRlZC14bCBvdmVyZmxvdy1oaWRkZW4gc2hhZG93LWxnIGhvdmVyOnNoYWRvdy0yeGwgdHJhbnNpdGlvbi1zaGFkb3cgZHVyYXRpb24tMzAwIj4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImgtNDggYmctZ3JhZGllbnQtdG8tciBmcm9tLXB1cnBsZS01MDAgdG8taW5kaWdvLTUwMCByZWxhdGl2ZSI+CiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iYWJzb2x1dGUgaW5zZXQtMCBmbGV4IGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNlbnRlciI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImZsb2F0aW5nIHRleHQtd2hpdGUgdGV4dC02eGwiPvCfkqE8L2Rpdj4KICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0icC02Ij4KICAgICAgICAgICAgICAgICAgICA8aDMgY2xhc3M9InRleHQtMnhsIGZvbnQtYm9sZCBtYi0yIj5UZWVuIElubm92YXRvcnM8L2gzPgogICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzPSJ0ZXh0LWluZGlnby02MDAgZm9udC1zZW1pYm9sZCBtYi00Ij5BZ2VzIDEzLTE3PC9wPgogICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzPSJ0ZXh0LWdyYXktNjAwIG1iLTYiPkFkdmFuY2VkIGZpbmFuY2lhbCBjb25jZXB0cyBhbmQgbGVhZGVyc2hpcCBkZXZlbG9wbWVudC48L3A+CiAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz0idy1mdWxsIGJ1dHRvbi1ncmFkaWVudCB0ZXh0LXdoaXRlIHB5LTIgcm91bmRlZC1mdWxsIj5MZWFybiBNb3JlPC9idXR0b24+CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICA8L2Rpdj4KPC9zZWN0aW9uPgoKPCEtLSBGZWF0dXJlcyBTZWN0aW9uIENvbnRlbnQgLS0+CjxzZWN0aW9uIGlkPSJmZWF0dXJlcyIgY2xhc3M9InB5LTI0IGJnLWdyYXktNTAiPgogICAgPGRpdiBjbGFzcz0iY29udGFpbmVyIG14LWF1dG8gcHgtNCI+CiAgICAgICAgPGRpdiBjbGFzcz0idGV4dC1jZW50ZXIgbWItMTYiPgogICAgICAgICAgICA8aDIgY2xhc3M9InRleHQtNHhsIG1kOnRleHQtNXhsIGZvbnQtYm9sZCBtYi00IGdyYWRpZW50LXRleHQiPldoeSBDaG9vc2UgRjQgQWNhZGVteT88L2gyPgogICAgICAgICAgICA8cCBjbGFzcz0idGV4dC14bCB0ZXh0LWdyYXktNjAwIj5SZXZvbHV0aW9uYXJ5IExlYXJuaW5nIEV4cGVyaWVuY2U8L3A+CiAgICAgICAgPC9kaXY+CgogICAgICAgIDxkaXYgY2xhc3M9ImdyaWQgZ3JpZC1jb2xzLTEgbWQ6Z3JpZC1jb2xzLTIgbGc6Z3JpZC1jb2xzLTQgZ2FwLTgiPgogICAgICAgICAgICA8IS0tIEludGVyYWN0aXZlIExlYXJuaW5nIC0tPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJiZy13aGl0ZSByb3VuZGVkLXhsIHAtNiBzaGFkb3ctbGcgaG92ZXI6c2hhZG93LXhsIHRyYW5zaXRpb24tc2hhZG93IGR1cmF0aW9uLTMwMCI+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJ0ZXh0LXB1cnBsZS01MDAgbWItNCB0ZXh0LTR4bCI+8J+OrjwvZGl2PgogICAgICAgICAgICAgICAgPGgzIGNsYXNzPSJ0ZXh0LXhsIGZvbnQtYm9sZCBtYi0yIj5JbnRlcmFjdGl2ZSBMZWFybmluZzwvaDM+CiAgICAgICAgICAgICAgICA8cCBjbGFzcz0idGV4dC1ncmF5LTYwMCI+RW5nYWdpbmcgZGlnaXRhbCBleHBlcmllbmNlcyB0aGF0IG1ha2UgbGVhcm5pbmcgZnVuIGFuZCBlZmZlY3RpdmUuPC9wPgogICAgICAgICAgICA8L2Rpdj4KCiAgICAgICAgICAgIDwhLS0gQ29tbXVuaXR5IFN1cHBvcnQgLS0+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImJnLXdoaXRlIHJvdW5kZWQteGwgcC02IHNoYWRvdy1sZyBob3ZlcjpzaGFkb3cteGwgdHJhbnNpdGlvbi1zaGFkb3cgZHVyYXRpb24tMzAwIj4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InRleHQtYmx1ZS01MDAgbWItNCB0ZXh0LTR4bCI+8J+RpTwvZGl2PgogICAgICAgICAgICAgICAgPGgzIGNsYXNzPSJ0ZXh0LXhsIGZvbnQtYm9sZCBtYi0yIj5Db21tdW5pdHkgU3VwcG9ydDwvaDM+CiAgICAgICAgICAgICAgICA8cCBjbGFzcz0idGV4dC1ncmF5LTYwMCI+Q29ubmVjdCB3aXRoIHBlZXJzIGFuZCBtZW50b3JzIGluIGEgc2FmZSwgbnVydHVyaW5nIGVudmlyb25tZW50LjwvcD4KICAgICAgICAgICAgPC9kaXY+CgogICAgICAgICAgICA8IS0tIFBlcnNvbmFsaXplZCBQYXRoIC0tPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJiZy13aGl0ZSByb3VuZGVkLXhsIHAtNiBzaGFkb3ctbGcgaG92ZXI6c2hhZG93LXhsIHRyYW5zaXRpb24tc2hhZG93IGR1cmF0aW9uLTMwMCI+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJ0ZXh0LWdyZWVuLTUwMCBtYi00IHRleHQtNHhsIj7wn46vPC9kaXY+CiAgICAgICAgICAgICAgICA8aDMgY2xhc3M9InRleHQteGwgZm9udC1ib2xkIG1iLTIiPlBlcnNvbmFsaXplZCBQYXRoPC9oMz4KICAgICAgICAgICAgICAgIDxwIGNsYXNzPSJ0ZXh0LWdyYXktNjAwIj5DdXN0b20gbGVhcm5pbmcgam91cm5leSBiYXNlZCBvbiBhZ2UgYW5kIGludGVyZXN0cy48L3A+CiAgICAgICAgICAgIDwvZGl2PgoKICAgICAgICAgICAgPCEtLSBBY2hpZXZlbWVudCBTeXN0ZW0gLS0+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImJnLXdoaXRlIHJvdW5kZWQteGwgcC02IHNoYWRvdy1sZyBob3ZlcjpzaGFkb3cteGwgdHJhbnNpdGlvbi1zaGFkb3cgZHVyYXRpb24tMzAwIj4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InRleHQteWVsbG93LTUwMCBtYi00IHRleHQtNHhsIj7wn4+GPC9kaXY+CiAgICAgICAgICAgICAgICA8aDMgY2xhc3M9InRleHQteGwgZm9udC1ib2xkIG1iLTIiPkFjaGlldmVtZW50IFN5c3RlbTwvaDM+CiAgICAgICAgICAgICAgICA8cCBjbGFzcz0idGV4dC1ncmF5LTYwMCI+VHJhY2sgcHJvZ3Jlc3MgYW5kIGVhcm4gcmV3YXJkcyBhcyB5b3UgbGVhcm4gYW5kIGdyb3cuPC9wPgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgIDwvZGl2Pgo8L3NlY3Rpb24+Cgo8IS0tIEVuaGFuY2VkIEZvb3RlciBDb250ZW50IC0tPgo8Zm9vdGVyIGNsYXNzPSJiZy1ncmFkaWVudC10by1yIGZyb20tZ3JheS05MDAgdmlhLXB1cnBsZS05MDAgdG8tZ3JheS05MDAgdGV4dC13aGl0ZSBweS0xMiI+CiAgICA8ZGl2IGNsYXNzPSJjb250YWluZXIgbXgtYXV0byBweC00Ij4KICAgICAgICA8ZGl2IGNsYXNzPSJncmlkIGdyaWQtY29scy0xIG1kOmdyaWQtY29scy00IGdhcC04Ij4KICAgICAgICAgICAgPCEtLSBDb21wYW55IEluZm8gLS0+CiAgICAgICAgICAgIDxkaXY+CiAgICAgICAgICAgICAgICA8aDMgY2xhc3M9InRleHQteGwgZm9udC1ib2xkIG1iLTQgdGV4dC1wdXJwbGUtMzAwIj5BYm91dCBGNDwvaDM+CiAgICAgICAgICAgICAgICA8cCBjbGFzcz0idGV4dC1ncmF5LTMwMCBtYi00Ij5FbXBvd2VyaW5nIHlvdXRoIHRocm91Z2ggZmluYW5jaWFsIGVkdWNhdGlvbiBhbmQgbGVhZGVyc2hpcCBkZXZlbG9wbWVudC48L3A+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJmbGV4IHNwYWNlLXgtNCI+CiAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iIyIgY2xhc3M9InRleHQtZ3JheS0zMDAgaG92ZXI6dGV4dC13aGl0ZSB0cmFuc2l0aW9uLWNvbG9ycyI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxzdmcgY2xhc3M9InctNiBoLTYiIGZpbGw9ImN1cnJlbnRDb2xvciIgdmlld0JveD0iMCAwIDI0IDI0Ij48cGF0aCBkPSJNMjIgMTJjMC01LjUyMy00LjQ3Ny0xMC0xMC0xMFMyIDYuNDc3IDIgMTJjMCA0Ljk5MSAzLjY1NyA5LjEyOCA4LjQzOCA5Ljg3OHYtNi45ODdoLTIuNTRWMTJoMi41NFY5Ljc5N2MwLTIuNTA2IDEuNDkyLTMuODkgMy43NzctMy44OSAxLjA5NCAwIDIuMjM4LjE5NSAyLjIzOC4xOTV2Mi40NmgtMS4yNmMtMS4yNDMgMC0xLjYzLjc3MS0xLjYzIDEuNTYyVjEyaDIuNzczbC0uNDQzIDIuODloLTIuMzN2Ni45ODhDMTguMzQzIDIxLjEyOCAyMiAxNi45OTEgMjIgMTJ6Ij48L3BhdGg+PC9zdmc+CiAgICAgICAgICAgICAgICAgICAgPC9hPgogICAgICAgICAgICAgICAgICAgIDwhLS0gQWRkIG1vcmUgc29jaWFsIGljb25zIC0tPgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDwvZGl2PgoKICAgICAgICAgICAgPCEtLSBRdWljayBMaW5rcyAtLT4KICAgICAgICAgICAgPGRpdj4KICAgICAgICAgICAgICAgIDxoMyBjbGFzcz0idGV4dC14bCBmb250LWJvbGQgbWItNCB0ZXh0LWJsdWUtMzAwIj5RdWljayBMaW5rczwvaDM+CiAgICAgICAgICAgICAgICA8dWwgY2xhc3M9InNwYWNlLXktMiI+CiAgICAgICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9IiMiIGNsYXNzPSJ0ZXh0LWdyYXktMzAwIGhvdmVyOnRleHQtd2hpdGUgdHJhbnNpdGlvbi1jb2xvcnMiPlByb2dyYW1zPC9hPjwvbGk+CiAgICAgICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9IiMiIGNsYXNzPSJ0ZXh0LWdyYXktMzAwIGhvdmVyOnRleHQtd2hpdGUgdHJhbnNpdGlvbi1jb2xvcnMiPkFib3V0IFVzPC9hPjwvbGk+CiAgICAgICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9IiMiIGNsYXNzPSJ0ZXh0LWdyYXktMzAwIGhvdmVyOnRleHQtd2hpdGUgdHJhbnNpdGlvbi1jb2xvcnMiPk5ld3M8L2E+PC9saT4KICAgICAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iIyIgY2xhc3M9InRleHQtZ3JheS0zMDAgaG92ZXI6dGV4dC13aGl0ZSB0cmFuc2l0aW9uLWNvbG9ycyI+QmxvZzwvYT48L2xpPgogICAgICAgICAgICAgICAgPC91bD4KICAgICAgICAgICAgPC9kaXY+CgogICAgICAgICAgICA8IS0tIFJlc291cmNlcyAtLT4KICAgICAgICAgICAgPGRpdj4KICAgICAgICAgICAgICAgIDxoMyBjbGFzcz0idGV4dC14bCBmb250LWJvbGQgbWItNCB0ZXh0LWdyZWVuLTMwMCI+UmVzb3VyY2VzPC9oMz4KICAgICAgICAgICAgICAgIDx1bCBjbGFzcz0ic3BhY2UteS0yIj4KICAgICAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iIyIgY2xhc3M9InRleHQtZ3JheS0zMDAgaG92ZXI6dGV4dC13aGl0ZSB0cmFuc2l0aW9uLWNvbG9ycyI+SGVscCBDZW50ZXI8L2E+PC9saT4KICAgICAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iIyIgY2xhc3M9InRleHQtZ3JheS0zMDAgaG92ZXI6dGV4dC13aGl0ZSB0cmFuc2l0aW9uLWNvbG9ycyI+RkFRczwvYT48L2xpPgogICAgICAgICAgICAgICAgICAgIDxsaT48YSBocmVmPSIjIiBjbGFzcz0idGV4dC1ncmF5LTMwMCBob3Zlcjp0ZXh0LXdoaXRlIHRyYW5zaXRpb24tY29sb3JzIj5TdXBwb3J0PC9hPjwvbGk+CiAgICAgICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9IiMiIGNsYXNzPSJ0ZXh0LWdyYXktMzAwIGhvdmVyOnRleHQtd2hpdGUgdHJhbnNpdGlvbi1jb2xvcnMiPkNvbnRhY3QgVXM8L2E+PC9saT4KICAgICAgICAgICAgICAgIDwvdWw+CiAgICAgICAgICAgIDwvZGl2PgoKICAgICAgICAgICAgPCEtLSBDb250YWN0IC0tPgogICAgICAgICAgICA8ZGl2PgogICAgICAgICAgICAgICAgPGgzIGNsYXNzPSJ0ZXh0LXhsIGZvbnQtYm9sZCBtYi00IHRleHQteWVsbG93LTMwMCI+Q29udGFjdDwvaDM+CiAgICAgICAgICAgICAgICA8dWwgY2xhc3M9InNwYWNlLXktMiB0ZXh0LWdyYXktMzAwIj4KICAgICAgICAgICAgICAgICAgICA8bGk+RW1haWw6IGluZm9AZjRhY2FkZW15LmNvbTwvbGk+CiAgICAgICAgICAgICAgICAgICAgPGxpPlBob25lOiAxLTgwMC1GNC1MRUFSTjwvbGk+CiAgICAgICAgICAgICAgICAgICAgPGxpPkhvdXJzOiBNb24tRnJpIDlBTS02UE0gRVNUPC9saT4KICAgICAgICAgICAgICAgIDwvdWw+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgoKICAgICAgICA8ZGl2IGNsYXNzPSJtdC04IHB0LTggYm9yZGVyLXQgYm9yZGVyLWdyYXktODAwIHRleHQtY2VudGVyIHRleHQtZ3JheS00MDAiPgogICAgICAgICAgICA8cD4mY29weTsgMjAyNSBGaW5hbmNpYWwgRml0bmVzcyBGb3J0dW5lcyBGb3VuZGF0aW9uLiBBbGwgcmlnaHRzIHJlc2VydmVkLjwvcD4KICAgICAgICA8L2Rpdj4KICAgIDwvZGl2Pgo8L2Zvb3Rlcj4KPCEtLSBBZGQgdGhpcyB0byB5b3VyIGV4aXN0aW5nIDxzdHlsZT4gc2VjdGlvbiAtLT4KPHN0eWxlPgpAa2V5ZnJhbWVzIHB1bHNlIHsKICAgIDAlLCAxMDAlIHsgdHJhbnNmb3JtOiBzY2FsZSgxKTsgfQogICAgNTAlIHsgdHJhbnNmb3JtOiBzY2FsZSgxLjA1KTsgfQp9CgpAa2V5ZnJhbWVzIHNoaW1tZXIgewogICAgMCUgeyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMTAwMHB4IDA7IH0KICAgIDEwMCUgeyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAxMDAwcHggMDsgfQp9CgpAa2V5ZnJhbWVzIGJvdW5jZSB7CiAgICAwJSwgMTAwJSB7IHRyYW5zZm9ybTogdHJhbnNsYXRlWSgwKTsgfQogICAgNTAlIHsgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0xMHB4KTsgfQp9CgouYW5pbWF0ZS1wdWxzZSB7CiAgICBhbmltYXRpb246IHB1bHNlIDJzIGluZmluaXRlOwp9CgouYW5pbWF0ZS1ib3VuY2UgewogICAgYW5pbWF0aW9uOiBib3VuY2UgMnMgaW5maW5pdGU7Cn0KCi5zaGltbWVyIHsKICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCg5MGRlZywgCiAgICAgICAgcmdiYSgyNTUsMjU1LDI1NSwwKSAwJSwKICAgICAgICByZ2JhKDI1NSwyNTUsMjU1LDAuMikgNTAlLAogICAgICAgIHJnYmEoMjU1LDI1NSwyNTUsMCkgMTAwJSk7CiAgICBiYWNrZ3JvdW5kLXNpemU6IDEwMDBweCAxMDAlOwogICAgYW5pbWF0aW9uOiBzaGltbWVyIDJzIGluZmluaXRlIGxpbmVhcjsKfQoKLmhvdmVyLWNhcmQgewogICAgdHJhbnNpdGlvbjogYWxsIDAuM3MgZWFzZTsKfQoKLmhvdmVyLWNhcmQ6aG92ZXIgewogICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0xMHB4KSBzY2FsZSgxLjAyKTsKICAgIGJveC1zaGFkb3c6IDAgMjBweCAyNXB4IC01cHggcmdiYSgwLCAwLCAwLCAwLjEpOwp9Cgouc2Nyb2xsLWluZGljYXRvciB7CiAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICBib3R0b206IDMwcHg7CiAgICBsZWZ0OiA1MCU7CiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSk7CiAgICBjdXJzb3I6IHBvaW50ZXI7Cn0KCi5zY3JvbGwtaW5kaWNhdG9yOjphZnRlciB7CiAgICBjb250ZW50OiAnJzsKICAgIHdpZHRoOiA0MHB4OwogICAgaGVpZ2h0OiA0MHB4OwogICAgYm9yZGVyOiAycHggc29saWQgd2hpdGU7CiAgICBib3JkZXItcmFkaXVzOiA1MCU7CiAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICB0b3A6IC0yMHB4OwogICAgbGVmdDogLTIwcHg7CiAgICBhbmltYXRpb246IHJpcHBsZSAxLjVzIGluZmluaXRlOwp9CgpAa2V5ZnJhbWVzIHJpcHBsZSB7CiAgICAwJSB7CiAgICAgICAgdHJhbnNmb3JtOiBzY2FsZSgxKTsKICAgICAgICBvcGFjaXR5OiAxOwogICAgfQogICAgMTAwJSB7CiAgICAgICAgdHJhbnNmb3JtOiBzY2FsZSgxLjUpOwogICAgICAgIG9wYWNpdHk6IDA7CiAgICB9Cn0KCi8qIEFkZCBnbG93aW5nIGVmZmVjdCB0byBidXR0b25zICovCi5idXR0b24tZ3JhZGllbnQgewogICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgb3ZlcmZsb3c6IGhpZGRlbjsKfQoKLmJ1dHRvbi1ncmFkaWVudDo6YmVmb3JlIHsKICAgIGNvbnRlbnQ6ICcnOwogICAgcG9zaXRpb246IGFic29sdXRlOwogICAgdG9wOiAtNTAlOwogICAgbGVmdDogLTUwJTsKICAgIHdpZHRoOiAyMDAlOwogICAgaGVpZ2h0OiAyMDAlOwogICAgYmFja2dyb3VuZDogcmFkaWFsLWdyYWRpZW50KGNpcmNsZSwgcmdiYSgyNTUsMjU1LDI1NSwwLjIpIDAlLCByZ2JhKDI1NSwyNTUsMjU1LDApIDcwJSk7CiAgICB0cmFuc2Zvcm06IHJvdGF0ZSg0NWRlZyk7CiAgICBhbmltYXRpb246IHNoaW5lIDNzIGluZmluaXRlOwp9CgpAa2V5ZnJhbWVzIHNoaW5lIHsKICAgIDAlIHsgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC0xMDAlKSByb3RhdGUoNDVkZWcpOyB9CiAgICAxMDAlIHsgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDEwMCUpIHJvdGF0ZSg0NWRlZyk7IH0KfQo8L3N0eWxlPgoKPCEtLSBBZGQgdGhpcyBzY3JpcHQganVzdCBiZWZvcmUgY2xvc2luZyA8L2JvZHk+IHRhZyAtLT4KPHNjcmlwdD4KLy8gU21vb3RoIHNjcm9sbCBhbmltYXRpb24KZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgnYVtocmVmXj0iIyJdJykuZm9yRWFjaChhbmNob3IgPT4gewogICAgYW5jaG9yLmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgZnVuY3Rpb24gKGUpIHsKICAgICAgICBlLnByZXZlbnREZWZhdWx0KCk7CiAgICAgICAgZG9jdW1lbnQucXVlcnlTZWxlY3Rvcih0aGlzLmdldEF0dHJpYnV0ZSgnaHJlZicpKS5zY3JvbGxJbnRvVmlldyh7CiAgICAgICAgICAgIGJlaGF2aW9yOiAnc21vb3RoJwogICAgICAgIH0pOwogICAgfSk7Cn0pOwoKLy8gSW50ZXJzZWN0aW9uIE9ic2VydmVyIGZvciBmYWRlLWluIGFuaW1hdGlvbnMKY29uc3Qgb2JzZXJ2ZXJPcHRpb25zID0gewogICAgdGhyZXNob2xkOiAwLjEKfTsKCmNvbnN0IG9ic2VydmVyID0gbmV3IEludGVyc2VjdGlvbk9ic2VydmVyKChlbnRyaWVzKSA9PiB7CiAgICBlbnRyaWVzLmZvckVhY2goZW50cnkgPT4gewogICAgICAgIGlmIChlbnRyeS5pc0ludGVyc2VjdGluZykgewogICAgICAgICAgICBlbnRyeS50YXJnZXQuY2xhc3NMaXN0LmFkZCgnYW5pbWF0ZS1mYWRlLWluJyk7CiAgICAgICAgICAgIG9ic2VydmVyLnVub2JzZXJ2ZShlbnRyeS50YXJnZXQpOwogICAgICAgIH0KICAgIH0pOwp9LCBvYnNlcnZlck9wdGlvbnMpOwoKZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgnLmZhZGUtaW4nKS5mb3JFYWNoKGVsZW1lbnQgPT4gewogICAgb2JzZXJ2ZXIub2JzZXJ2ZShlbGVtZW50KTsKfSk7CgogICAgICAgIC8vIFBhcmFsbGF4IGVmZmVjdCBmb3IgaGVybyBzZWN0aW9uCiAgICAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ3Njcm9sbCcsICgpID0+IHsKICAgICAgICAgICAgY29uc3Qgc2Nyb2xsZWQgPSB3aW5kb3cucGFnZVlPZmZzZXQ7CiAgICAgICAgICAgIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJy5oZXJvLWdyYWRpZW50Jykuc3R5bGUuYmFja2dyb3VuZFBvc2l0aW9uWSA9IAogICAgICAgICAgICAgICAgc2Nyb2xsZWQgKiAwLjUgKyAncHgnOwogICAgICAgIH0pOwogICAgPC9zY3JpcHQ+CjwvYm9keT4KPC9odG1sPg==","embed":""}
F4 Academy - Future Leaders Start Here
F4 Logo
Programs Features Main Site News

Transform Your Future

Empowering young minds through financial literacy and leadership development

Our Programs

Choose Your Path to Success

✨

Dream Explorers

Ages 5-8

Early financial literacy through interactive stories and games.

🚀

Young Dreamers

Ages 9-12

Building foundational money management and entrepreneurship skills.

💡

Teen Innovators

Ages 13-17

Advanced financial concepts and leadership development.

Why Choose F4 Academy?

Revolutionary Learning Experience

🎮

Interactive Learning

Engaging digital experiences that make learning fun and effective.

👥

Community Support

Connect with peers and mentors in a safe, nurturing environment.

🎯

Personalized Path

Custom learning journey based on age and interests.

🏆

Achievement System

Track progress and earn rewards as you learn and grow.

About F4

Empowering youth through financial education and leadership development.

Quick Links

  • Programs
  • About Us
  • News
  • Blog

Resources

  • Help Center
  • FAQs
  • Support
  • Contact Us

Contact

  • Email: info@f4academy.com
  • Phone: 1-800-F4-LEARN
  • Hours: Mon-Fri 9AM-6PM EST

© 2025 Financial Fitness Fortunes Foundation. All rights reserved.

section --> tag --> |||-->
Image Gallery Grid
T
Please Check Your Email
We Will Be Following Up Shortly
*
*
*

warning