Explore our resorts  BOOK NOW

Luxury Wellness Holidays

Sunswept Resorts, the World’s Leading Destination Spa Company,

providing Wellness Holidays since 1988.

The DNA of Sunswept Resorts includes a commitment to wellness at each resort, present and future. The BodyHoliday and StolenTime in Saint Lucia continue to set the bar high in the field of Wellness Holidays.

The concept is simple and is designed to set us apart from other Wellness Resorts and Spas.

We are not fat farms, boot camps or mystical temples. There are elements of these attributes in our holiday design and our wellness teams are professional and expert, so why are we so different? Essentially it’s that we’ve created fun-filled beach vacations where the choices made available to guests to have a fabulous, healthy experience are seemingly endless and fun.

Staying at one of our resorts is stacked with value. Not only because of the quantum and quality of inclusions but also because guests can take away something beneficial with them. Imparting new skills and knowledge to enhance our guest’s lifestyle is one of our goals.

Of course, getting to the bottom line, it’s apparent that selling one of our holidays means receiving a commission on a long list of activities and personalised body care as well as an all-inclusive room rate.

You may ask; “What are the chances of selling one of our holidays to the same client over and over? Currently; 50%”

An opportunity to present potential clients interested in either BodyHoliday or StolenTime

with some phenomenal added Value. We invite you to explore our Feature Months

BodyHoliday Saint Lucia

A one-of-a-kind that seems to have no alternative. Set on a Caribbean white sand beach overlooked by possibly the most significant center of well-being in the Americas. 

Women and Man standing resting with their Bikes

Key Selling Points

  • What do Guests love most? – An included spa treatment daily.

  • Why Agents love BodyHoliday – Earning commission on considerably more than a room rate.

  • Who is it for? – Like-minded Millennials, Gen Xers, and a few Grey Panthers.

  • Where From? America, Canada and Britain.

  • Top Tech, is the proprietary software guests use to design their trip.

  • A typical guest is outgoing and gregarious.

  • BodyHoliday is for Adults and discerning teenagers only. Popular with Solos.

Give us your Body for a Week and we’ll give you back your Mind

StolenTime Saint Lucia

StolenTime, once known as Rendezvous, sits on a magical two-mile stretch of soft sand beach. The resort is designed to provide many different “spaces” to unwind and relax. Throughout the extensive beach and gardens, are hammocks for two and the “WaterGarden” is a unique “get-away-from-it-all” hideaway. The resort is perhaps a little more laid back than BodyHoliday and as such, offers a choice in mood and style.

Beautiful Sundown with Palms over Pool
A white Building over looking a flat calm pool with the building reflected in the water

Key Selling Points

  • Guests love the out-of-the-fast-lane approach.

  • Agents also love the increased commission from the quantum of inclusions.

  • Who is it for? A tad older than BodyHoliday, Gen Xers – Boomers and Grey Panthers.

  • Where do they come from? – Canada, United States and Great Britain.

  • A Typical guest is more laid back than at BodyHoliday.

  • StolenTime is also Adults-Only, and is popular with Multi-Generational groups.

It’s About Time you Introduced your Body to your Mind

Sunswept Resorts Travel Agent Rewards

Cash Rewards

For every RoomNight you book at BodyHoliday or StolenTime, we send you USD $8.00 cash money.

Line drawing of woman nude in yoga pose
Beach club tables adorned with glassware, cutlery and napiery
Sparlking deep blue pool in front of Traditional Caribbean Villa

Free Stay Rewards

For every RoomNight you book, we also give you a free stay point for two. To claim one free night all-inclusive you need 7 points.

Line drawing of woman nude in yoga pose

Complete Flexibility

You can make your bookings directly with us, for which you’ll also receive your regular commission. If you prefer to book with a wholesaler, then that’s OK. Your rewards still apply.

Click the button below to sign in or sign up. There is no fee plus it also opens a portal to resources to help you sell our holidays.

Contact Us

If you would like to contact us direct, please feel free to send this form.

Sketch of Candle Alight

Sunswept Resorts

Travel Partners Monthly Newsletter

Please sign up here and submit your request to stay informed about product updates, events and exclusive member offers.

PHN0eWxlPiNfZm9ybV83X3tmb250LXNpemU6MTRweDtsaW5lLWhlaWdodDoxLjY7Zm9udC1mYW1pbHk6YXJpYWwsIGhlbHZldGljYSwgc2Fucy1zZXJpZjttYXJnaW46MH0jX2Zvcm1fN18gKntvdXRsaW5lOjB9Ll9mb3JtX2hpZGV7ZGlzcGxheTpub25lO3Zpc2liaWxpdHk6aGlkZGVufS5fZm9ybV9zaG93e2Rpc3BsYXk6YmxvY2s7dmlzaWJpbGl0eTp2aXNpYmxlfSNfZm9ybV83Xy5fZm9ybS10b3B7dG9wOjB9I19mb3JtXzdfLl9mb3JtLWJvdHRvbXtib3R0b206MH0jX2Zvcm1fN18uX2Zvcm0tbGVmdHtsZWZ0OjB9I19mb3JtXzdfLl9mb3JtLXJpZ2h0e3JpZ2h0OjB9I19mb3JtXzdfIGlucHV0W3R5cGU9InRleHQiXSwjX2Zvcm1fN18gaW5wdXRbdHlwZT0idGVsIl0sI19mb3JtXzdfIGlucHV0W3R5cGU9ImRhdGUiXSwjX2Zvcm1fN18gdGV4dGFyZWF7cGFkZGluZzo2cHg7aGVpZ2h0OmF1dG87Ym9yZGVyOiM5Nzk3OTcgMXB4IHNvbGlkO2JvcmRlci1yYWRpdXM6NHB4O2NvbG9yOiMwMDAwMDAgIWltcG9ydGFudDtmb250LXNpemU6MTRweDstd2Via2l0LWJveC1zaXppbmc6Ym9yZGVyLWJveDstbW96LWJveC1zaXppbmc6Ym9yZGVyLWJveDtib3gtc2l6aW5nOmJvcmRlci1ib3h9I19mb3JtXzdfIHRleHRhcmVhe3Jlc2l6ZTpub25lfSNfZm9ybV83XyAuX3N1Ym1pdHstd2Via2l0LWFwcGVhcmFuY2U6bm9uZTtjdXJzb3I6cG9pbnRlcjtmb250LWZhbWlseTphcmlhbCwgc2Fucy1zZXJpZjtmb250LXNpemU6MTRweDt0ZXh0LWFsaWduOmNlbnRlcjtiYWNrZ3JvdW5kOiMwMzAzMDMgIWltcG9ydGFudDtib3JkZXI6MCAhaW1wb3J0YW50Oy1tb3otYm9yZGVyLXJhZGl1czo0cHggIWltcG9ydGFudDstd2Via2l0LWJvcmRlci1yYWRpdXM6NHB4ICFpbXBvcnRhbnQ7Ym9yZGVyLXJhZGl1czo0cHggIWltcG9ydGFudDtjb2xvcjojRkZGRkZGICFpbXBvcnRhbnQ7cGFkZGluZzoxMXB4ICFpbXBvcnRhbnR9I19mb3JtXzdfIC5fc3VibWl0OmRpc2FibGVke2N1cnNvcjpub3QtYWxsb3dlZDtvcGFjaXR5OjAuNH0jX2Zvcm1fN18gLl9zdWJtaXQucHJvY2Vzc2luZ3twb3NpdGlvbjpyZWxhdGl2ZX0jX2Zvcm1fN18gLl9zdWJtaXQucHJvY2Vzc2luZzo6YmVmb3Jle2NvbnRlbnQ6IiI7d2lkdGg6MWVtO2hlaWdodDoxZW07cG9zaXRpb246YWJzb2x1dGU7ei1pbmRleDoxO3RvcDo1MCU7bGVmdDo1MCU7Ym9yZGVyOmRvdWJsZSAzcHggdHJhbnNwYXJlbnQ7Ym9yZGVyLXJhZGl1czo1MCU7YmFja2dyb3VuZC1pbWFnZTpsaW5lYXItZ3JhZGllbnQoIzAzMDMwMywgIzAzMDMwMyksIGNvbmljLWdyYWRpZW50KCMwMzAzMDMsICNGRkZGRkYpO2JhY2tncm91bmQtb3JpZ2luOmJvcmRlci1ib3g7YmFja2dyb3VuZC1jbGlwOmNvbnRlbnQtYm94LCBib3JkZXItYm94O2FuaW1hdGlvbjoxMjAwbXMgZWFzZSAwcyBpbmZpbml0ZSBub3JtYWwgbm9uZSBydW5uaW5nIF9zcGlufSNfZm9ybV83XyAuX3N1Ym1pdC5wcm9jZXNzaW5nOjphZnRlcntjb250ZW50OiIiO3Bvc2l0aW9uOmFic29sdXRlO3RvcDowO2JvdHRvbTowO2xlZnQ6MDtyaWdodDowO2JhY2tncm91bmQ6IzAzMDMwMyAhaW1wb3J0YW50O2JvcmRlcjowICFpbXBvcnRhbnQ7LW1vei1ib3JkZXItcmFkaXVzOjRweCAhaW1wb3J0YW50Oy13ZWJraXQtYm9yZGVyLXJhZGl1czo0cHggIWltcG9ydGFudDtib3JkZXItcmFkaXVzOjRweCAhaW1wb3J0YW50O2NvbG9yOiNGRkZGRkYgIWltcG9ydGFudDtwYWRkaW5nOjExcHggIWltcG9ydGFudH1Aa2V5ZnJhbWVzIF9zcGluezAle3RyYW5zZm9ybTp0cmFuc2xhdGUoLTUwJSwgLTUwJSkgcm90YXRlKDkwZGVnKX0xMDAle3RyYW5zZm9ybTp0cmFuc2xhdGUoLTUwJSwgLTUwJSkgcm90YXRlKDQ1MGRlZyl9fSNfZm9ybV83XyAuX2Nsb3NlLWljb257Y3Vyc29yOnBvaW50ZXI7YmFja2dyb3VuZC1pbWFnZTp1cmwoImh0dHBzOi8vZDIyNmFqNGFvMXQ2MXEuY2xvdWRmcm9udC5uZXQvZXNma3lqaDF1X2Zvcm1zLWNsb3NlLWRhcmsucG5nIik7YmFja2dyb3VuZC1yZXBlYXQ6bm8tcmVwZWF0O2JhY2tncm91bmQtc2l6ZToxNC4ycHggMTQuMnB4O3Bvc2l0aW9uOmFic29sdXRlO2Rpc3BsYXk6YmxvY2s7dG9wOjExcHg7cmlnaHQ6OXB4O292ZXJmbG93OmhpZGRlbjt3aWR0aDoxNi4ycHg7aGVpZ2h0OjE2LjJweH0jX2Zvcm1fN18gLl9jbG9zZS1pY29uOmJlZm9yZXtwb3NpdGlvbjpyZWxhdGl2ZX0jX2Zvcm1fN18gLl9mb3JtLWJvZHl7bWFyZ2luLWJvdHRvbTozMHB4fSNfZm9ybV83XyAuX2Zvcm0taW1hZ2UtbGVmdHt3aWR0aDoxNTBweDtmbG9hdDpsZWZ0fSNfZm9ybV83XyAuX2Zvcm0tY29udGVudC1yaWdodHttYXJnaW4tbGVmdDoxNjRweH0jX2Zvcm1fN18gLl9mb3JtLWJyYW5kaW5ne2NvbG9yOiNmZmY7Zm9udC1zaXplOjEwcHg7Y2xlYXI6Ym90aDt0ZXh0LWFsaWduOmxlZnQ7bWFyZ2luLXRvcDozMHB4O2ZvbnQtd2VpZ2h0OjEwMH0jX2Zvcm1fN18gLl9mb3JtLWJyYW5kaW5nIC5fbG9nb3tkaXNwbGF5OmJsb2NrO3dpZHRoOjEzMHB4O2hlaWdodDoxNHB4O21hcmdpbi10b3A6NnB4O2JhY2tncm91bmQtaW1hZ2U6dXJsKCJodHRwczovL2QyMjZhajRhbzF0NjFxLmNsb3VkZnJvbnQubmV0L2hoOXVqcWd2NV9hY2xvZ29fbGkucG5nIik7YmFja2dyb3VuZC1zaXplOjEzMHB4IGF1dG87YmFja2dyb3VuZC1yZXBlYXQ6bm8tcmVwZWF0fSNfZm9ybV83XyAuZm9ybS1zci1vbmx5e3Bvc2l0aW9uOmFic29sdXRlO3dpZHRoOjFweDtoZWlnaHQ6MXB4O3BhZGRpbmc6MDttYXJnaW46LTFweDtvdmVyZmxvdzpoaWRkZW47Y2xpcDpyZWN0KDAsIDAsIDAsIDApO2JvcmRlcjowfSNfZm9ybV83XyAuX2Zvcm0tbGFiZWwsI19mb3JtXzdfIC5fZm9ybV9lbGVtZW50IC5fZm9ybS1sYWJlbHtmb250LXdlaWdodDpib2xkO21hcmdpbi1ib3R0b206NXB4O2Rpc3BsYXk6YmxvY2t9I19mb3JtXzdfLl9kYXJrIC5fZm9ybS1icmFuZGluZ3tjb2xvcjojMzMzfSNfZm9ybV83Xy5fZGFyayAuX2Zvcm0tYnJhbmRpbmcgLl9sb2dve2JhY2tncm91bmQtaW1hZ2U6dXJsKCJodHRwczovL2QyMjZhajRhbzF0NjFxLmNsb3VkZnJvbnQubmV0L2pmdHEyYzhzX2FjbG9nb19kay5wbmciKX0jX2Zvcm1fN18gLl9mb3JtX2VsZW1lbnR7cG9zaXRpb246cmVsYXRpdmU7bWFyZ2luLWJvdHRvbToxMHB4O2ZvbnQtc2l6ZTowO21heC13aWR0aDoxMDAlfSNfZm9ybV83XyAuX2Zvcm1fZWxlbWVudCAqe2ZvbnQtc2l6ZToxNHB4fSNfZm9ybV83XyAuX2Zvcm1fZWxlbWVudC5fY2xlYXJ7Y2xlYXI6Ym90aDt3aWR0aDoxMDAlO2Zsb2F0Om5vbmV9I19mb3JtXzdfIC5fZm9ybV9lbGVtZW50Ll9jbGVhcjphZnRlcntjbGVhcjpsZWZ0fSNfZm9ybV83XyAuX2Zvcm1fZWxlbWVudCBpbnB1dFt0eXBlPSJ0ZXh0Il0sI19mb3JtXzdfIC5fZm9ybV9lbGVtZW50IGlucHV0W3R5cGU9ImRhdGUiXSwjX2Zvcm1fN18gLl9mb3JtX2VsZW1lbnQgc2VsZWN0LCNfZm9ybV83XyAuX2Zvcm1fZWxlbWVudCB0ZXh0YXJlYTpub3QoLmctcmVjYXB0Y2hhLXJlc3BvbnNlKXtkaXNwbGF5OmJsb2NrO3dpZHRoOjEwMCU7LXdlYmtpdC1ib3gtc2l6aW5nOmJvcmRlci1ib3g7LW1vei1ib3gtc2l6aW5nOmJvcmRlci1ib3g7Ym94LXNpemluZzpib3JkZXItYm94O2ZvbnQtZmFtaWx5OmluaGVyaXR9I19mb3JtXzdfIC5fZmllbGQtd3JhcHBlcntwb3NpdGlvbjpyZWxhdGl2ZX0jX2Zvcm1fN18gLl9pbmxpbmUtc3R5bGV7ZmxvYXQ6bGVmdH0jX2Zvcm1fN18gLl9pbmxpbmUtc3R5bGUgaW5wdXRbdHlwZT0idGV4dCJde3dpZHRoOjE1MHB4fSNfZm9ybV83XyAuX2lubGluZS1zdHlsZTpub3QoLl9jbGVhcikrLl9pbmxpbmUtc3R5bGU6bm90KC5fY2xlYXIpe21hcmdpbi1sZWZ0OjIwcHh9I19mb3JtXzdfIC5fZm9ybV9lbGVtZW50IGltZy5fZm9ybS1pbWFnZXttYXgtd2lkdGg6MTAwJX0jX2Zvcm1fN18gLl9mb3JtX2VsZW1lbnQgLl9mb3JtLWZpZWxkc2V0e2JvcmRlcjowO3BhZGRpbmc6MC4wMWVtIDAgMCAwO21hcmdpbjowO21pbi13aWR0aDowfSNfZm9ybV83XyAuX2NsZWFyLWVsZW1lbnR7Y2xlYXI6bGVmdH0jX2Zvcm1fN18gLl9mdWxsX3dpZHRoe3dpZHRoOjEwMCV9I19mb3JtXzdfIC5fZm9ybV9mdWxsX2ZpZWxke2Rpc3BsYXk6YmxvY2s7d2lkdGg6MTAwJTttYXJnaW4tYm90dG9tOjEwcHh9I19mb3JtXzdfIGlucHV0W3R5cGU9InRleHQiXS5faGFzX2Vycm9yLCNfZm9ybV83XyB0ZXh0YXJlYS5faGFzX2Vycm9ye2JvcmRlcjojRjM3QzdCIDFweCBzb2xpZH0jX2Zvcm1fN18gaW5wdXRbdHlwZT0iY2hlY2tib3giXS5faGFzX2Vycm9ye291dGxpbmU6I0YzN0M3QiAxcHggc29saWR9I19mb3JtXzdfIC5fZXJyb3J7ZGlzcGxheTpibG9jaztwb3NpdGlvbjphYnNvbHV0ZTtmb250LXNpemU6MTRweDt6LWluZGV4OjEwMDAwMDAxfSNfZm9ybV83XyAuX2Vycm9yLl9hYm92ZXtwYWRkaW5nLWJvdHRvbTo0cHg7Ym90dG9tOjM5cHg7cmlnaHQ6MH0jX2Zvcm1fN18gLl9lcnJvci5fYmVsb3d7cGFkZGluZy10b3A6OHB4O3RvcDoxMDAlO3JpZ2h0OjB9I19mb3JtXzdfIC5fZXJyb3IuX2Fib3ZlIC5fZXJyb3ItYXJyb3d7Ym90dG9tOi00cHg7cmlnaHQ6MTVweDtib3JkZXItbGVmdDo4cHggc29saWQgdHJhbnNwYXJlbnQ7Ym9yZGVyLXJpZ2h0OjhweCBzb2xpZCB0cmFuc3BhcmVudDtib3JkZXItdG9wOjhweCBzb2xpZCAjRkZEREREfSNfZm9ybV83XyAuX2Vycm9yLl9iZWxvdyAuX2Vycm9yLWFycm93e3RvcDowO3JpZ2h0OjE1cHg7Ym9yZGVyLWxlZnQ6OHB4IHNvbGlkIHRyYW5zcGFyZW50O2JvcmRlci1yaWdodDo4cHggc29saWQgdHJhbnNwYXJlbnQ7Ym9yZGVyLWJvdHRvbTo4cHggc29saWQgI0ZGRERERH0jX2Zvcm1fN18gLl9lcnJvci1pbm5lcntwYWRkaW5nOjEycHggMTJweCAxMnB4IDM2cHg7YmFja2dyb3VuZC1jb2xvcjojRkZEREREO2JhY2tncm91bmQtaW1hZ2U6dXJsKCJkYXRhOmltYWdlL3N2Zyt4bWwsJTNDc3ZnIHdpZHRoPScxNicgaGVpZ2h0PScxNicgdmlld0JveD0nMCAwIDE2IDE2JyBmaWxsPSdub25lJyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnJTNFJTNDcGF0aCBmaWxsLXJ1bGU9J2V2ZW5vZGQnIGNsaXAtcnVsZT0nZXZlbm9kZCcgZD0nTTE2IDhDMTYgMTIuNDE4MyAxMi40MTgzIDE2IDggMTZDMy41ODE3MiAxNiAwIDEyLjQxODMgMCA4QzAgMy41ODE3MiAzLjU4MTcyIDAgOCAwQzEyLjQxODMgMCAxNiAzLjU4MTcyIDE2IDhaTTkgM1Y5SDdWM0g5Wk05IDEzVjExSDdWMTNIOVonIGZpbGw9JyUyM0NBMDAwMCcvJTNFJTNDL3N2ZyUzRSIpO2JhY2tncm91bmQtcmVwZWF0Om5vLXJlcGVhdDtiYWNrZ3JvdW5kLXBvc2l0aW9uOjEycHggY2VudGVyO2ZvbnQtc2l6ZToxNHB4O2ZvbnQtZmFtaWx5OmFyaWFsLCBzYW5zLXNlcmlmO2ZvbnQtd2VpZ2h0OjYwMDtsaW5lLWhlaWdodDoxNnB4O2NvbG9yOiMwMDA7dGV4dC1hbGlnbjpjZW50ZXI7dGV4dC1kZWNvcmF0aW9uOm5vbmU7LXdlYmtpdC1ib3JkZXItcmFkaXVzOjRweDstbW96LWJvcmRlci1yYWRpdXM6NHB4O2JvcmRlci1yYWRpdXM6NHB4O2JveC1zaGFkb3c6MHB4IDFweCA0cHggcmdiYSgzMSwgMzMsIDQxLCAwLjI5ODI5NSl9I19mb3JtXzdfIC5fZXJyb3ItaW5uZXIuX2Zvcm1fZXJyb3J7bWFyZ2luLWJvdHRvbTo1cHg7dGV4dC1hbGlnbjpsZWZ0fSNfZm9ybV83XyAuX2J1dHRvbi13cmFwcGVyIC5fZXJyb3ItaW5uZXIuX2Zvcm1fZXJyb3J7cG9zaXRpb246c3RhdGljfSNfZm9ybV83XyAuX2Vycm9yLWlubmVyLl9ub19hcnJvd3ttYXJnaW4tYm90dG9tOjEwcHh9I19mb3JtXzdfIC5fZXJyb3ItYXJyb3d7cG9zaXRpb246YWJzb2x1dGU7d2lkdGg6MDtoZWlnaHQ6MH0jX2Zvcm1fN18gLl9lcnJvci1odG1se21hcmdpbi1ib3R0b206MTBweH0ucGlrYS1zaW5nbGV7ei1pbmRleDoxMDAwMDAwMSAhaW1wb3J0YW50fSNfZm9ybV83XyBpbnB1dFt0eXBlPSJ0ZXh0Il0uZGF0ZXRpbWVfZGF0ZXt3aWR0aDo2OSU7ZGlzcGxheTppbmxpbmV9I19mb3JtXzdfIHNlbGVjdC5kYXRldGltZV90aW1le3dpZHRoOjI5JTtkaXNwbGF5OmlubGluZTtoZWlnaHQ6MzJweH0jX2Zvcm1fN18gaW5wdXRbdHlwZT0iZGF0ZSJdLmRhdGV0aW1lX2RhdGV7d2lkdGg6NjklO2Rpc3BsYXk6aW5saW5lLWZsZXh9I19mb3JtXzdfIGlucHV0W3R5cGU9InRpbWUiXS5kYXRldGltZV90aW1le3dpZHRoOjI5JTtkaXNwbGF5OmlubGluZS1mbGV4fUBtZWRpYSAobWluLXdpZHRoOjMyMHB4KSBhbmQgKG1heC13aWR0aDo2NjdweCl7Ojotd2Via2l0LXNjcm9sbGJhcntkaXNwbGF5Om5vbmV9I19mb3JtXzdfe21hcmdpbjowO3dpZHRoOjEwMCU7bWluLXdpZHRoOjEwMCU7bWF4LXdpZHRoOjEwMCU7Ym94LXNpemluZzpib3JkZXItYm94fSNfZm9ybV83XyAqey13ZWJraXQtYm94LXNpemluZzpib3JkZXItYm94Oy1tb3otYm94LXNpemluZzpib3JkZXItYm94O2JveC1zaXppbmc6Ym9yZGVyLWJveDtmb250LXNpemU6MWVtfSNfZm9ybV83XyAuX2Zvcm0tY29udGVudHttYXJnaW46MDt3aWR0aDoxMDAlfSNfZm9ybV83XyAuX2Zvcm0taW5uZXJ7ZGlzcGxheTpibG9jazttaW4td2lkdGg6MTAwJX0jX2Zvcm1fN18gLl9mb3JtLXRpdGxlLCNfZm9ybV83XyAuX2lubGluZS1zdHlsZXttYXJnaW4tdG9wOjA7bWFyZ2luLXJpZ2h0OjA7bWFyZ2luLWxlZnQ6MH0jX2Zvcm1fN18gLl9mb3JtLXRpdGxle2ZvbnQtc2l6ZToxLjJlbX0jX2Zvcm1fN18gLl9mb3JtX2VsZW1lbnR7bWFyZ2luOjAgMCAyMHB4O3BhZGRpbmc6MDt3aWR0aDoxMDAlfSNfZm9ybV83XyAuX2Zvcm0tZWxlbWVudCwjX2Zvcm1fN18gLl9pbmxpbmUtc3R5bGUsI19mb3JtXzdfIGlucHV0W3R5cGU9InRleHQiXSwjX2Zvcm1fN18gbGFiZWwsI19mb3JtXzdfIHAsI19mb3JtXzdfIHRleHRhcmVhOm5vdCguZy1yZWNhcHRjaGEtcmVzcG9uc2Upe2Zsb2F0Om5vbmU7ZGlzcGxheTpibG9jazt3aWR0aDoxMDAlfSNfZm9ybV83XyAuX3Jvdy5fY2hlY2tib3gtcmFkaW8gbGFiZWx7ZGlzcGxheTppbmxpbmV9I19mb3JtXzdfIC5fcm93LCNfZm9ybV83XyBwLCNfZm9ybV83XyBsYWJlbHttYXJnaW4tYm90dG9tOjAuN2VtO3dpZHRoOjEwMCV9I19mb3JtXzdfIC5fcm93IGlucHV0W3R5cGU9ImNoZWNrYm94Il0sI19mb3JtXzdfIC5fcm93IGlucHV0W3R5cGU9InJhZGlvIl17bWFyZ2luOjAgIWltcG9ydGFudDt2ZXJ0aWNhbC1hbGlnbjptaWRkbGUgIWltcG9ydGFudH0jX2Zvcm1fN18gLl9yb3cgaW5wdXRbdHlwZT0iY2hlY2tib3giXStzcGFuIGxhYmVse2Rpc3BsYXk6aW5saW5lfSNfZm9ybV83XyAuX3JvdyBzcGFuIGxhYmVse21hcmdpbjowICFpbXBvcnRhbnQ7d2lkdGg6aW5pdGlhbCAhaW1wb3J0YW50O3ZlcnRpY2FsLWFsaWduOm1pZGRsZSAhaW1wb3J0YW50fSNfZm9ybV83XyAuX2Zvcm0taW1hZ2V7bWF4LXdpZHRoOjEwMCU7aGVpZ2h0OmF1dG8gIWltcG9ydGFudH0jX2Zvcm1fN18gaW5wdXRbdHlwZT0idGV4dCJde3BhZGRpbmctbGVmdDoxMHB4O3BhZGRpbmctcmlnaHQ6MTBweDtmb250LXNpemU6MTZweDtsaW5lLWhlaWdodDoxLjNlbTstd2Via2l0LWFwcGVhcmFuY2U6bm9uZX0jX2Zvcm1fN18gaW5wdXRbdHlwZT0icmFkaW8iXSwjX2Zvcm1fN18gaW5wdXRbdHlwZT0iY2hlY2tib3giXXtkaXNwbGF5OmlubGluZS1ibG9jazt3aWR0aDoxLjNlbTtoZWlnaHQ6MS4zZW07Zm9udC1zaXplOjFlbTttYXJnaW46MCAwLjNlbSAwIDA7dmVydGljYWwtYWxpZ246YmFzZWxpbmV9I19mb3JtXzdfIGJ1dHRvblt0eXBlPSJzdWJtaXQiXXtwYWRkaW5nOjIwcHg7Zm9udC1zaXplOjEuNWVtfSNfZm9ybV83XyAuX2lubGluZS1zdHlsZXttYXJnaW46MjBweCAwIDAgIWltcG9ydGFudH19I19mb3JtXzdfe3Bvc2l0aW9uOnJlbGF0aXZlO3RleHQtYWxpZ246bGVmdDttYXJnaW46MjVweCBhdXRvIDA7cGFkZGluZy10b3A6MjBweDtwYWRkaW5nLXJpZ2h0OjIwcHg7cGFkZGluZy1ib3R0b206MjBweDtwYWRkaW5nLWxlZnQ6MjBweDstd2Via2l0LWJveC1zaXppbmc6Ym9yZGVyLWJveDstbW96LWJveC1zaXppbmc6Ym9yZGVyLWJveDtib3gtc2l6aW5nOmJvcmRlci1ib3g7YmFja2dyb3VuZDojRkZGRkZGICFpbXBvcnRhbnQ7Ym9yZGVyOjBweCBzb2xpZCAjQjBCMEIwICFpbXBvcnRhbnQ7bWF4LXdpZHRoOjUwMHB4Oy1tb3otYm9yZGVyLXJhZGl1czowcHggIWltcG9ydGFudDstd2Via2l0LWJvcmRlci1yYWRpdXM6MHB4ICFpbXBvcnRhbnQ7Ym9yZGVyLXJhZGl1czowcHggIWltcG9ydGFudDtjb2xvcjojMDAwMDAwfSNfZm9ybV83Xy5faW5saW5lLWZvcm0sI19mb3JtXzdfLl9pbmxpbmUtZm9ybSAuX2Zvcm0tY29udGVudHtmb250LWZhbWlseTpMYXRvO2ZvbnQtc2l6ZToxNHB4O2ZvbnQtd2VpZ2h0OjQwMH0jX2Zvcm1fN18uX2lubGluZS1mb3JtIC5fcm93IHNwYW4sI19mb3JtXzdfLl9pbmxpbmUtZm9ybSAuX3JvdyBsYWJlbHtmb250LWZhbWlseTpMYXRvO2ZvbnQtc2l6ZToxNHB4O2ZvbnQtd2VpZ2h0OjQwMDtsaW5lLWhlaWdodDoxLjZlbTtjb2xvcjpibGFjayAhaW1wb3J0YW50fSNfZm9ybV83X19pbmxpbmVmb3JtIGlucHV0W3R5cGU9InRleHQiXSwjX2Zvcm1fN19faW5saW5lZm9ybSBpbnB1dFt0eXBlPSJkYXRlIl0sI19mb3JtXzdfX2lubGluZWZvcm0gaW5wdXRbdHlwZT0idGVsIl0sI19mb3JtXzdfX2lubGluZWZvcm0gc2VsZWN0LCNfZm9ybV83X19pbmxpbmVmb3JtIHRleHRhcmVhOm5vdCguZy1yZWNhcHRjaGEtcmVzcG9uc2Upe2ZvbnQtZmFtaWx5OkxhdG87Zm9udC1zaXplOjE0cHg7Zm9udC13ZWlnaHQ6NDAwO2ZvbnQtY29sb3I6IzAwMDAwMDtsaW5lLWhlaWdodDoxLjZlbX0jX2Zvcm1fN18uX2lubGluZS1mb3JtIC5faHRtbC1jb2RlICosI19mb3JtXzdfLl9pbmxpbmUtZm9ybSAuX2Zvcm0tdGhhbmsteW91e2ZvbnQtZmFtaWx5OkxhdG87Zm9udC1zaXplOjE0cHg7Zm9udC13ZWlnaHQ6NDAwO2NvbG9yOmJsYWNrICFpbXBvcnRhbnR9I19mb3JtXzdfLl9pbmxpbmUtZm9ybSAuX2Zvcm0tbGFiZWx7Zm9udC1mYW1pbHk6TGF0bztmb250LXNpemU6MTRweDtmb250LXdlaWdodDo3MDA7bGluZS1oZWlnaHQ6MS42ZW07Y29sb3I6YmxhY2sgIWltcG9ydGFudH0jX2Zvcm1fN18uX2lubGluZS1mb3JtIC5fc3VibWl0e2ZvbnQtZmFtaWx5OkxhdG87Zm9udC1zaXplOjE0cHg7Zm9udC13ZWlnaHQ6NDAwfSNfZm9ybV83Xy5faW5saW5lLWZvcm0gLl9mb3JtLXRpdGxle2ZvbnQtZmFtaWx5OkxhdG87Zm9udC1zaXplOjIycHg7bGluZS1oZWlnaHQ6bm9ybWFsO2ZvbnQtd2VpZ2h0OjcwMDtjb2xvcjpibGFjazttYXJnaW4tYm90dG9tOjB9I19mb3JtXzdfLl9pbmxpbmUtZm9ybSAuX2Zvcm0tYnJhbmRpbmd7Zm9udC1mYW1pbHk6IklCTSBQbGV4IFNhbnMiLCBIZWx2ZXRpY2EsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjEzcHg7Zm9udC13ZWlnaHQ6MTAwO2ZvbnQtc3R5bGU6bm9ybWFsO3RleHQtZGVjb3JhdGlvbjpub25lfSNfZm9ybV83XzpiZWZvcmUsI19mb3JtXzdfOmFmdGVye2NvbnRlbnQ6IiAiO2Rpc3BsYXk6dGFibGV9I19mb3JtXzdfOmFmdGVye2NsZWFyOmJvdGh9I19mb3JtXzdfLl9pbmxpbmUtc3R5bGV7d2lkdGg6YXV0bztkaXNwbGF5OmlubGluZS1ibG9ja30jX2Zvcm1fN18uX2lubGluZS1zdHlsZSBpbnB1dFt0eXBlPSJ0ZXh0Il0sI19mb3JtXzdfLl9pbmxpbmUtc3R5bGUgaW5wdXRbdHlwZT0iZGF0ZSJde3BhZGRpbmc6MTBweCAxMnB4fSNfZm9ybV83Xy5faW5saW5lLXN0eWxlIGJ1dHRvbi5faW5saW5lLXN0eWxle3Bvc2l0aW9uOnJlbGF0aXZlO3RvcDoyN3B4fSNfZm9ybV83Xy5faW5saW5lLXN0eWxlIHB7bWFyZ2luOjB9I19mb3JtXzdfLl9pbmxpbmUtc3R5bGUgLl9idXR0b24td3JhcHBlcntwb3NpdGlvbjpyZWxhdGl2ZTttYXJnaW46MjdweCAxMi41cHggMCAyMHB4fSNfZm9ybV83XyAuX2Zvcm0tdGhhbmsteW91e3Bvc2l0aW9uOnJlbGF0aXZlO2xlZnQ6MDtyaWdodDowO3RleHQtYWxpZ246Y2VudGVyO2ZvbnQtc2l6ZToxOHB4fUBtZWRpYSAobWluLXdpZHRoOjMyMHB4KSBhbmQgKG1heC13aWR0aDo2NjdweCl7I19mb3JtXzdfLl9pbmxpbmUtZm9ybS5faW5saW5lLXN0eWxlIC5faW5saW5lLXN0eWxlLl9idXR0b24td3JhcHBlcnttYXJnaW4tdG9wOjIwcHggIWltcG9ydGFudDttYXJnaW4tbGVmdDowICFpbXBvcnRhbnR9fSNfZm9ybV83XyAuaXRpLml0aS0tYWxsb3ctZHJvcGRvd24uaXRpLS1zZXBhcmF0ZS1kaWFsLWNvZGV7d2lkdGg6MTAwJX0jX2Zvcm1fN18gLml0aSBpbnB1dHt3aWR0aDoxMDAlO2hlaWdodDozMnB4O2JvcmRlcjojOTc5Nzk3IDFweCBzb2xpZDtib3JkZXItcmFkaXVzOjRweH0jX2Zvcm1fN18gLml0aS0tc2VwYXJhdGUtZGlhbC1jb2RlIC5pdGlfX3NlbGVjdGVkLWZsYWd7YmFja2dyb3VuZC1jb2xvcjojRkZGRkZGO2JvcmRlci1yYWRpdXM6NHB4fSNfZm9ybV83XyAuaXRpLS1zZXBhcmF0ZS1kaWFsLWNvZGUgLml0aV9fc2VsZWN0ZWQtZmxhZzpob3ZlcntiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMCwgMCwgMCwgMC4wNSl9I19mb3JtXzdfIC5pdGlfX2NvdW50cnktbGlzdHtib3JkZXItcmFkaXVzOjRweDttYXJnaW4tdG9wOjRweDttaW4td2lkdGg6NDYwcHh9I19mb3JtXzdfIC5pdGlfX2NvdW50cnktbGlzdC0tZHJvcHVwe21hcmdpbi1ib3R0b206NHB4fSNfZm9ybV83XyAucGhvbmUtZXJyb3ItaGlkZGVue2Rpc3BsYXk6bm9uZX0jX2Zvcm1fN18gLnBob25lLWVycm9ye2NvbG9yOiNFNDBFNDl9I19mb3JtXzdfIC5waG9uZS1pbnB1dC1lcnJvcntib3JkZXI6MXB4IHNvbGlkICNFNDBFNDkgIWltcG9ydGFudH08L3N0eWxlPgoKPGRpdiBjbGFzcz0iZW1iZWQtZm9ybSI+CiAgICAgIDxmb3JtIG1ldGhvZD0iUE9TVCIgYWN0aW9uPSJodHRwczovL3N1bnN3ZXB0cmVzb3J0cy5hY3RpdmVob3N0ZWQuY29tL3Byb2MucGhwIiBpZD0iX2Zvcm1fN18iIGNsYXNzPSJfZm9ybSBfZm9ybV83IF9pbmxpbmUtZm9ybSAgX2RhcmsiIG5vdmFsaWRhdGUgZGF0YS1zdHlsZXMtdmVyc2lvbj0iNSI+CiAgICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0idSIgdmFsdWU9IjciIC8+CiAgICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iZiIgdmFsdWU9IjciIC8+CiAgICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0icyIgLz4KICAgICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJjIiB2YWx1ZT0iMCIgLz4KICAgICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJtIiB2YWx1ZT0iMCIgLz4KICAgICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJhY3QiIHZhbHVlPSJzdWIiIC8+CiAgICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0idiIgdmFsdWU9IjIiIC8+CiAgICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0ib3IiIHZhbHVlPSJkMmM2YzdiZjA0ODkxNzFkZTg4ZGI3ZDdiMjg2YWVkMSIgLz4KICAgICAgICA8ZGl2IGNsYXNzPSJfZm9ybS1jb250ZW50Ij4KICAgICAgICAgIDwhLS0gPGRpdiBjbGFzcz0iX2Zvcm1fZWxlbWVudCBfeDI4NDc2Mjc2IF9mdWxsX3dpZHRoIF9jbGVhciIgPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJfZm9ybS10aXRsZSI+CiAgICAgICAgICAgICAgU3Vic2NyaWJlIGZvciBFbWFpbCBVcGRhdGVzCiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPC9kaXY+IC0tPgogICAgICAgICAgPCEtLSA8ZGl2IGNsYXNzPSJfZm9ybV9lbGVtZW50IF94ODI0MzkzNzkgX2Z1bGxfd2lkdGggX2NsZWFyIiA+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9Il9odG1sLWNvZGUiPgogICAgICAgICAgICAgIDxwPgogICAgICAgICAgICAgICAgT3VyIHRyYXZlbCBwYXJ0bmVyIGVtYWlscyBhcmUgbW9udGhseSBhbmQgd2lsbCBnaXZlIHlvdSB0aGUgbGF0ZXN0IHByb2R1Y3QgbmV3cywgc3BlY2lhbCBvZmZlcnMgYW5kIGJlbmVmaXRzIGZvciB5b3VyIGJvb2tlZCBjbGllbnRzLgogICAgICAgICAgICAgIDwvcD4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8L2Rpdj4gLS0+CiAgICAgICAgICA8ZGl2IGNsYXNzPSItcm93IC1yb3ctMSI+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJfZm9ybV9lbGVtZW50IF94NzUxNzkyMzUgX2Z1bGxfd2lkdGggIiA+CiAgICAgICAgICAgIDxsYWJlbCBmb3I9ImZpcnN0bmFtZSIgY2xhc3M9Il9mb3JtLWxhYmVsIj4KICAgICAgICAgICAgICBGaXJzdCBOYW1lCiAgICAgICAgICAgIDwvbGFiZWw+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9Il9maWVsZC13cmFwcGVyIj4KICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0idGV4dCIgaWQ9ImZpcnN0bmFtZSIgbmFtZT0iZmlyc3RuYW1lIiBwbGFjZWhvbGRlcj0iVHlwZSB5b3VyIGZpcnN0IG5hbWUiIC8+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJfZm9ybV9lbGVtZW50IF94MDYzOTUxMTMgX2Z1bGxfd2lkdGggIiA+CiAgICAgICAgICAgIDxsYWJlbCBmb3I9Imxhc3RuYW1lIiBjbGFzcz0iX2Zvcm0tbGFiZWwiPgogICAgICAgICAgICAgIExhc3QgTmFtZQogICAgICAgICAgICA8L2xhYmVsPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJfZmllbGQtd3JhcHBlciI+CiAgICAgICAgICAgICAgPGlucHV0IHR5cGU9InRleHQiIGlkPSJsYXN0bmFtZSIgbmFtZT0ibGFzdG5hbWUiIHBsYWNlaG9sZGVyPSJUeXBlIHlvdXIgbGFzdCBuYW1lIiAvPgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPGRpdiBjbGFzcz0iX2Zvcm1fZWxlbWVudCBfeDI2ODY3MzQ5IF9mdWxsX3dpZHRoICIgPgogICAgICAgICAgICA8bGFiZWwgZm9yPSJmaWVsZFsxXSIgY2xhc3M9Il9mb3JtLWxhYmVsIj4KICAgICAgICAgICAgICBDb3VudHJ5CiAgICAgICAgICAgIDwvbGFiZWw+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9Il9maWVsZC13cmFwcGVyIj4KICAgICAgICAgICAgICA8c2VsZWN0IG5hbWU9ImZpZWxkWzFdIiBpZD0iZmllbGRbMV0iID4KICAgICAgICAgICAgICAgIDxvcHRpb24gc2VsZWN0ZWQ+CiAgICAgICAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9IlVuaXRlZCBTdGF0ZXMiID4KICAgICAgICAgICAgICAgICAgVW5pdGVkIFN0YXRlcwogICAgICAgICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJVbml0ZWQgS2luZ2RvbSIgPgogICAgICAgICAgICAgICAgICBVbml0ZWQgS2luZ2RvbQogICAgICAgICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJDYW5hZGEiID4KICAgICAgICAgICAgICAgICAgQ2FuYWRhCiAgICAgICAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9IklyZWxhbmQiID4KICAgICAgICAgICAgICAgICAgSXJlbGFuZAogICAgICAgICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJHZXJtYW55IiA+CiAgICAgICAgICAgICAgICAgIEdlcm1hbnkKICAgICAgICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iQWZnaGFuaXN0YW4iID4KICAgICAgICAgICAgICAgICAgQWZnaGFuaXN0YW4KICAgICAgICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iQWxiYW5pYSIgPgogICAgICAgICAgICAgICAgICBBbGJhbmlhCiAgICAgICAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9IkZyYW5jZSIgPgogICAgICAgICAgICAgICAgICBGcmFuY2UKICAgICAgICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iQWxnZXJpYSIgPgogICAgICAgICAgICAgICAgICBBbGdlcmlhCiAgICAgICAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9IlNhaW50IEx1Y2lhIiA+CiAgICAgICAgICAgICAgICAgIFNhaW50IEx1Y2lhCiAgICAgICAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9IkFtZXJpY2FuIFNhbW9hIiA+CiAgICAgICAgICAgICAgICAgIEFtZXJpY2FuIFNhbW9hCiAgICAgICAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9IkJhcmJhZG9zIiA+CiAgICAgICAgICAgICAgICAgIEJhcmJhZG9zCiAgICAgICAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9IkFuZG9ycmEiID4KICAgICAgICAgICAgICAgICAgQW5kb3JyYQogICAgICAgICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJBbmdvbGEiID4KICAgICAgICAgICAgICAgICAgQW5nb2xhCiAgICAgICAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9IkFuZ3VpbGxhIiA+CiAgICAgICAgICAgICAgICAgIEFuZ3VpbGxhCiAgICAgICAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9IkFudGFyY3RpY2EiID4KICAgICAgICAgICAgICAgICAgQW50YXJjdGljYQogICAgICAgICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJBbnRpZ3VhIGFuZCBCYXJidWRhIiA+CiAgICAgICAgICAgICAgICAgIEFudGlndWEgYW5kIEJhcmJ1ZGEKICAgICAgICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iQXJnZW50aW5hIiA+CiAgICAgICAgICAgICAgICAgIEFyZ2VudGluYQogICAgICAgICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJBcm1lbmlhIiA+CiAgICAgICAgICAgICAgICAgIEFybWVuaWEKICAgICAgICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iQXJ1YmEiID4KICAgICAgICAgICAgICAgICAgQXJ1YmEKICAgICAgICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iQXVzdHJhbGlhIiA+CiAgICAgICAgICAgICAgICAgIEF1c3RyYWxpYQogICAgICAgICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJBdXN0cmlhIiA+CiAgICAgICAgICAgICAgICAgIEF1c3RyaWEKICAgICAgICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iQXplcmJhaWphbiIgPgogICAgICAgICAgICAgICAgICBBemVyYmFpamFuCiAgICAgICAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9IkJhaGFtYXMiID4KICAgICAgICAgICAgICAgICAgQmFoYW1hcwogICAgICAgICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJCYWhyYWluIiA+CiAgICAgICAgICAgICAgICAgIEJhaHJhaW4KICAgICAgICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iQmFuZ2xhZGVzaCIgPgogICAgICAgICAgICAgICAgICBCYW5nbGFkZXNoCiAgICAgICAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9IkJlbGFydXMiID4KICAgICAgICAgICAgICAgICAgQmVsYXJ1cwogICAgICAgICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJCZWxnaXVtIiA+CiAgICAgICAgICAgICAgICAgIEJlbGdpdW0KICAgICAgICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iQmVsaXplIiA+CiAgICAgICAgICAgICAgICAgIEJlbGl6ZQogICAgICAgICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJCZW5pbiIgPgogICAgICAgICAgICAgICAgICBCZW5pbgogICAgICAgICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJCaHV0YW4iID4KICAgICAgICAgICAgICAgICAgQmh1dGFuCiAgICAgICAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9IkJvbGl2aWEiID4KICAgICAgICAgICAgICAgICAgQm9saXZpYQogICAgICAgICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJCZXJtdWRhIiA+CiAgICAgICAgICAgICAgICAgIEJlcm11ZGEKICAgICAgICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iQm91dmV0IElzbGFuZCIgPgogICAgICAgICAgICAgICAgICBCb3V2ZXQgSXNsYW5kCiAgICAgICAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9IkJyaXRpc2ggSW5kaWFuIE9jZWFuIFRlcnJpdG9yeSIgPgogICAgICAgICAgICAgICAgICBCcml0aXNoIEluZGlhbiBPY2VhbiBUZXJyaXRvcnkKICAgICAgICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iQm9ubmFpcmUiID4KICAgICAgICAgICAgICAgICAgQm9ubmFpcmUKICAgICAgICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iQm9zbmlhIGFuZCBIZXJ6ZWdvdmluYSIgPgogICAgICAgICAgICAgICAgICBCb3NuaWEgYW5kIEhlcnplZ292aW5hCiAgICAgICAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9IkJvdHN3YW5hIiA+CiAgICAgICAgICAgICAgICAgIEJvdHN3YW5hCiAgICAgICAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9IkJ1cmtpbmEgRmFzbyIgPgogICAgICAgICAgICAgICAgICBCdXJraW5hIEZhc28KICAgICAgICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iQnVydW5kaSIgPgogICAgICAgICAgICAgICAgICBCdXJ1bmRpCiAgICAgICAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9IkJyYXppbCIgPgogICAgICAgICAgICAgICAgICBCcmF6aWwKICAgICAgICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iQ2FtYm9kaWEiID4KICAgICAgICAgICAgICAgICAgQ2FtYm9kaWEKICAgICAgICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iQ2FtZXJvb24iID4KICAgICAgICAgICAgICAgICAgQ2FtZXJvb24KICAgICAgICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iQnJ1bmVpIERhcnVzc2FsYW0iID4KICAgICAgICAgICAgICAgICAgQnJ1bmVpIERhcnVzc2FsYW0KICAgICAgICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iQ2FwZSBWZXJkZSIgPgogICAgICAgICAgICAgICAgICBDYXBlIFZlcmRlCiAgICAgICAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9IkJ1bGdhcmlhIiA+CiAgICAgICAgICAgICAgICAgIEJ1bGdhcmlhCiAgICAgICAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9IkNheW1hbiBJc2xhbmRzIiA+CiAgICAgICAgICAgICAgICAgIENheW1hbiBJc2xhbmRzCiAgICAgICAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9IkNlbnRyYWwgQWZyaWNhbiBSZXB1YmxpYyIgPgogICAgICAgICAgICAgICAgICBDZW50cmFsIEFmcmljYW4gUmVwdWJsaWMKICAgICAgICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iQ2hhZCIgPgogICAgICAgICAgICAgICAgICBDaGFkCiAgICAgICAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9IkNoaWxlIiA+CiAgICAgICAgICAgICAgICAgIENoaWxlCiAgICAgICAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9IkNoaW5hIiA+CiAgICAgICAgICAgICAgICAgIENoaW5hCiAgICAgICAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9IkNocmlzdG1hcyBJc2xhbmQiID4KICAgICAgICAgICAgICAgICAgQ2hyaXN0bWFzIElzbGFuZAogICAgICAgICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJDb2NvcyAoS2VlbGluZykgSXNsYW5kcyIgPgogICAgICAgICAgICAgICAgICBDb2NvcyAoS2VlbGluZykgSXNsYW5kcwogICAgICAgICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJDb25nbyIgPgogICAgICAgICAgICAgICAgICBDb25nbwogICAgICAgICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJDb29rIElzbGFuZHMiID4KICAgICAgICAgICAgICAgICAgQ29vayBJc2xhbmRzCiAgICAgICAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9IkNvc3RhIFJpY2EiID4KICAgICAgICAgICAgICAgICAgQ29zdGEgUmljYQogICAgICAgICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJDb2xvbWJpYSIgPgogICAgICAgICAgICAgICAgICBDb2xvbWJpYQogICAgICAgICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJDb3RlIEQmIzAzOTtJdm9pcmUiID4KICAgICAgICAgICAgICAgICAgQ290ZSBEJiMwMzk7SXZvaXJlCiAgICAgICAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9IkNvbW9yb3MiID4KICAgICAgICAgICAgICAgICAgQ29tb3JvcwogICAgICAgICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJDb25nbywgdGhlIERlbW9jcmF0aWMgUmVwdWJsaWMgb2YgdGhlIiA+CiAgICAgICAgICAgICAgICAgIENvbmdvLCB0aGUgRGVtb2NyYXRpYyBSZXB1YmxpYyBvZiB0aGUKICAgICAgICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iQ3JvYXRpYSIgPgogICAgICAgICAgICAgICAgICBDcm9hdGlhCiAgICAgICAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9IkN1YmEiID4KICAgICAgICAgICAgICAgICAgQ3ViYQogICAgICAgICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJDdXJhY2FvIiA+CiAgICAgICAgICAgICAgICAgIEN1cmFjYW8KICAgICAgICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iRWN1YWRvciIgPgogICAgICAgICAgICAgICAgICBFY3VhZG9yCiAgICAgICAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9IkN5cHJ1cyIgPgogICAgICAgICAgICAgICAgICBDeXBydXMKICAgICAgICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iRGVubWFyayIgPgogICAgICAgICAgICAgICAgICBEZW5tYXJrCiAgICAgICAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9IkRvbWluaWNhIiA+CiAgICAgICAgICAgICAgICAgIERvbWluaWNhCiAgICAgICAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9IkRvbWluaWNhbiBSZXB1YmxpYyIgPgogICAgICAgICAgICAgICAgICBEb21pbmljYW4gUmVwdWJsaWMKICAgICAgICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iRWwgU2FsdmFkb3IiID4KICAgICAgICAgICAgICAgICAgRWwgU2FsdmFkb3IKICAgICAgICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iRXF1YXRvcmlhbCBHdWluZWEiID4KICAgICAgICAgICAgICAgICAgRXF1YXRvcmlhbCBHdWluZWEKICAgICAgICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iRXJpdHJlYSIgPgogICAgICAgICAgICAgICAgICBFcml0cmVhCiAgICAgICAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9IkVzdG9uaWEiID4KICAgICAgICAgICAgICAgICAgRXN0b25pYQogICAgICAgICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJFdGhpb3BpYSIgPgogICAgICAgICAgICAgICAgICBFdGhpb3BpYQogICAgICAgICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJGYWxrbGFuZCBJc2xhbmRzIChNYWx2aW5hcykiID4KICAgICAgICAgICAgICAgICAgRmFsa2xhbmQgSXNsYW5kcyAoTWFsdmluYXMpCiAgICAgICAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9IkZpamkiID4KICAgICAgICAgICAgICAgICAgRmlqaQogICAgICAgICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJGcmVuY2ggR3VpYW5hIiA+CiAgICAgICAgICAgICAgICAgIEZyZW5jaCBHdWlhbmEKICAgICAgICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iRnJlbmNoIFBvbHluZXNpYSIgPgogICAgICAgICAgICAgICAgICBGcmVuY2ggUG9seW5lc2lhCiAgICAgICAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9IkdhYm9uIiA+CiAgICAgICAgICAgICAgICAgIEdhYm9uCiAgICAgICAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9IkdhbWJpYSIgPgogICAgICAgICAgICAgICAgICBHYW1iaWEKICAgICAgICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iR2VvcmdpYSIgPgogICAgICAgICAgICAgICAgICBHZW9yZ2lhCiAgICAgICAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9IkdoYW5hIiA+CiAgICAgICAgICAgICAgICAgIEdoYW5hCiAgICAgICAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9Ikd1YW0iID4KICAgICAgICAgICAgICAgICAgR3VhbQogICAgICAgICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJHaWJyYWx0YXIiID4KICAgICAgICAgICAgICAgICAgR2licmFsdGFyCiAgICAgICAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9IkdyZW5hZGEiID4KICAgICAgICAgICAgICAgICAgR3JlbmFkYQogICAgICAgICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJHdWFkZWxvdXBlIiA+CiAgICAgICAgICAgICAgICAgIEd1YWRlbG91cGUKICAgICAgICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iR3VpbmVhLUJpc3NhdSIgPgogICAgICAgICAgICAgICAgICBHdWluZWEtQmlzc2F1CiAgICAgICAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9IkhvbmcgS29uZyIgPgogICAgICAgICAgICAgICAgICBIb25nIEtvbmcKICAgICAgICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iSHVuZ2FyeSIgPgogICAgICAgICAgICAgICAgICBIdW5nYXJ5CiAgICAgICAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9IkhlYXJkIElzbGFuZCBhbmQgTWNkb25hbGQgSXNsYW5kcyIgPgogICAgICAgICAgICAgICAgICBIZWFyZCBJc2xhbmQgYW5kIE1jZG9uYWxkIElzbGFuZHMKICAgICAgICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iSG9uZHVyYXMiID4KICAgICAgICAgICAgICAgICAgSG9uZHVyYXMKICAgICAgICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iSWNlbGFuZCIgPgogICAgICAgICAgICAgICAgICBJY2VsYW5kCiAgICAgICAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9Ikl0YWx5IiA+CiAgICAgICAgICAgICAgICAgIEl0YWx5CiAgICAgICAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9IkVuZ2xhbmQiID4KICAgICAgICAgICAgICAgICAgRW5nbGFuZAogICAgICAgICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJVSyIgPgogICAgICAgICAgICAgICAgICBVSwogICAgICAgICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJVbml0ZWQgU3RhdGVzIE9mIEFtZXJpY2EiID4KICAgICAgICAgICAgICAgICAgVW5pdGVkIFN0YXRlcyBPZiBBbWVyaWNhCiAgICAgICAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9IlZpcmdpbiBJc2xhbmRzIChCcml0LikiID4KICAgICAgICAgICAgICAgICAgVmlyZ2luIElzbGFuZHMgKEJyaXQuKQogICAgICAgICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJ1ayIgPgogICAgICAgICAgICAgICAgICB1awogICAgICAgICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJFbiIgPgogICAgICAgICAgICAgICAgICBFbgogICAgICAgICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJubyIgPgogICAgICAgICAgICAgICAgICBubwogICAgICAgICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJVU0EiID4KICAgICAgICAgICAgICAgICAgVVNBCiAgICAgICAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9IlN3IiA+CiAgICAgICAgICAgICAgICAgIFN3CiAgICAgICAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9IkdiIiA+CiAgICAgICAgICAgICAgICAgIEdiCiAgICAgICAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9IkxhdHZpYSIgPgogICAgICAgICAgICAgICAgICBMYXR2aWEKICAgICAgICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT0idXMiID4KICAgICAgICAgICAgICAgICAgdXMKICAgICAgICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iTGl0aHVhbmlhIiA+CiAgICAgICAgICAgICAgICAgIExpdGh1YW5pYQogICAgICAgICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJTdCBMdWNpYSIgPgogICAgICAgICAgICAgICAgICBTdCBMdWNpYQogICAgICAgICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJMdXhlbWJvdXJnIiA+CiAgICAgICAgICAgICAgICAgIEx1eGVtYm91cmcKICAgICAgICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iTWFydGluaXF1ZSIgPgogICAgICAgICAgICAgICAgICBNYXJ0aW5pcXVlCiAgICAgICAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9IkxpYmVyaWEiID4KICAgICAgICAgICAgICAgICAgTGliZXJpYQogICAgICAgICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJUcmluaWRhZCBhbmQgVG9iYWdvIiA+CiAgICAgICAgICAgICAgICAgIFRyaW5pZGFkIGFuZCBUb2JhZ28KICAgICAgICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iTWFjZWRvbmlhLCB0aGUgRm9ybWVyIFl1Z29zbGF2IFJlcHVibGljIG9mIiA+CiAgICAgICAgICAgICAgICAgIE1hY2Vkb25pYSwgdGhlIEZvcm1lciBZdWdvc2xhdiBSZXB1YmxpYyBvZgogICAgICAgICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJWaXJnaW4gSXNsYW5kcyBVUyIgPgogICAgICAgICAgICAgICAgICBWaXJnaW4gSXNsYW5kcyBVUwogICAgICAgICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJOZXRoZXJsYW5kcyIgPgogICAgICAgICAgICAgICAgICBOZXRoZXJsYW5kcwogICAgICAgICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJUcmluaWRhZCAmYW1wOyBUb2JhZ28iID4KICAgICAgICAgICAgICAgICAgVHJpbmlkYWQgJmFtcDsgVG9iYWdvCiAgICAgICAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9IklyZWxhbmQsIFJlcHVibGljIE9mIiA+CiAgICAgICAgICAgICAgICAgIElyZWxhbmQsIFJlcHVibGljIE9mCiAgICAgICAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9Ik1hY2FvIiA+CiAgICAgICAgICAgICAgICAgIE1hY2FvCiAgICAgICAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9ImNhIiA+CiAgICAgICAgICAgICAgICAgIGNhCiAgICAgICAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9IlNwYWluIiA+CiAgICAgICAgICAgICAgICAgIFNwYWluCiAgICAgICAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9Ik1hZGFnYXNjYXIiID4KICAgICAgICAgICAgICAgICAgTWFkYWdhc2NhcgogICAgICAgICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJCcml0aXNoIFZpcmdpbiBJc2xhbmRzIiA+CiAgICAgICAgICAgICAgICAgIEJyaXRpc2ggVmlyZ2luIElzbGFuZHMKICAgICAgICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT0idHQiID4KICAgICAgICAgICAgICAgICAgdHQKICAgICAgICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iTm9ydGhlcm4gSXJlbGFuZCIgPgogICAgICAgICAgICAgICAgICBOb3J0aGVybiBJcmVsYW5kCiAgICAgICAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9Im1xIiA+CiAgICAgICAgICAgICAgICAgIG1xCiAgICAgICAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9Ik5vcndheSIgPgogICAgICAgICAgICAgICAgICBOb3J3YXkKICAgICAgICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iTWFsdGEiID4KICAgICAgICAgICAgICAgICAgTWFsdGEKICAgICAgICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iQW1lcmljYSIgPgogICAgICAgICAgICAgICAgICBBbWVyaWNhCiAgICAgICAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9IlJ1c3NpYW4gRmVkZXJhdGlvbiIgPgogICAgICAgICAgICAgICAgICBSdXNzaWFuIEZlZGVyYXRpb24KICAgICAgICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iSXNyYWVsIiA+CiAgICAgICAgICAgICAgICAgIElzcmFlbAogICAgICAgICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJOZXcgWmVhbGFuZCIgPgogICAgICAgICAgICAgICAgICBOZXcgWmVhbGFuZAogICAgICAgICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJIdW5nYXJ5IChSZXApIiA+CiAgICAgICAgICAgICAgICAgIEh1bmdhcnkgKFJlcCkKICAgICAgICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iU2FpbnQgVmluY2VudCAmYW1wOyBHcmVuYWRpbmVzIiA+CiAgICAgICAgICAgICAgICAgIFNhaW50IFZpbmNlbnQgJmFtcDsgR3JlbmFkaW5lcwogICAgICAgICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJqZSIgPgogICAgICAgICAgICAgICAgICBqZQogICAgICAgICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJTYWludCBWaW5jZW50IGFuZCBHcmVuYWRpbmVzIiA+CiAgICAgICAgICAgICAgICAgIFNhaW50IFZpbmNlbnQgYW5kIEdyZW5hZGluZXMKICAgICAgICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iU2NvdGxhbmQiID4KICAgICAgICAgICAgICAgICAgU2NvdGxhbmQKICAgICAgICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iVW5pdGVkIEFyYWIgRW1pcmF0ZXMiID4KICAgICAgICAgICAgICAgICAgVW5pdGVkIEFyYWIgRW1pcmF0ZXMKICAgICAgICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iICIgPgogICAgICAgICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJTQSIgPgogICAgICAgICAgICAgICAgICBTQQogICAgICAgICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJTdCBWaW5jZW50IiA+CiAgICAgICAgICAgICAgICAgIFN0IFZpbmNlbnQKICAgICAgICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iSW5kaWEiID4KICAgICAgICAgICAgICAgICAgSW5kaWEKICAgICAgICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iR3V5YW5hIiA+CiAgICAgICAgICAgICAgICAgIEd1eWFuYQogICAgICAgICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJOaWdlcmlhIiA+CiAgICAgICAgICAgICAgICAgIE5pZ2VyaWEKICAgICAgICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iU2xvdmFraWEiID4KICAgICAgICAgICAgICAgICAgU2xvdmFraWEKICAgICAgICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iTmVwYWwiID4KICAgICAgICAgICAgICAgICAgTmVwYWwKICAgICAgICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iTWV4aWNvIiA+CiAgICAgICAgICAgICAgICAgIE1leGljbwogICAgICAgICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJWZW5lenVlbGEiID4KICAgICAgICAgICAgICAgICAgVmVuZXp1ZWxhCiAgICAgICAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9IkdQIiA+CiAgICAgICAgICAgICAgICAgIEdQCiAgICAgICAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9IlB1ZXJ0byBSaWNvIiA+CiAgICAgICAgICAgICAgICAgIFB1ZXJ0byBSaWNvCiAgICAgICAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9IlRUIiA+CiAgICAgICAgICAgICAgICAgIFRUCiAgICAgICAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9IkdVIiA+CiAgICAgICAgICAgICAgICAgIEdVCiAgICAgICAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9Ik1RIiA+CiAgICAgICAgICAgICAgICAgIE1RCiAgICAgICAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9IkdyZWVubGFuZCIgPgogICAgICAgICAgICAgICAgICBHcmVlbmxhbmQKICAgICAgICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iU2xvdmVuaWEiID4KICAgICAgICAgICAgICAgICAgU2xvdmVuaWEKICAgICAgICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iR3JlZWNlIiA+CiAgICAgICAgICAgICAgICAgIEdyZWVjZQogICAgICAgICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJKYXBhbiIgPgogICAgICAgICAgICAgICAgICBKYXBhbgogICAgICAgICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJTd2l0emVybGFuZCIgPgogICAgICAgICAgICAgICAgICBTd2l0emVybGFuZAogICAgICAgICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJKYW1haWNhIiA+CiAgICAgICAgICAgICAgICAgIEphbWFpY2EKICAgICAgICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iUGFwdWEgTmV3IEd1aW5lYSIgPgogICAgICAgICAgICAgICAgICBQYXB1YSBOZXcgR3VpbmVhCiAgICAgICAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9IlJvbWFuaWEiID4KICAgICAgICAgICAgICAgICAgUm9tYW5pYQogICAgICAgICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJQYXJhZ3VheSIgPgogICAgICAgICAgICAgICAgICBQYXJhZ3VheQogICAgICAgICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJTY290IiA+CiAgICAgICAgICAgICAgICAgIFNjb3QKICAgICAgICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iUGVydSIgPgogICAgICAgICAgICAgICAgICBQZXJ1CiAgICAgICAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9IlN3ZWRlbiIgPgogICAgICAgICAgICAgICAgICBTd2VkZW4KICAgICAgICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iVWsiID4KICAgICAgICAgICAgICAgICAgVWsKICAgICAgICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iVXNhIiA+CiAgICAgICAgICAgICAgICAgIFVzYQogICAgICAgICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJOYW1pYmlhIiA+CiAgICAgICAgICAgICAgICAgIE5hbWliaWEKICAgICAgICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iUG9ydHVnYWwiID4KICAgICAgICAgICAgICAgICAgUG9ydHVnYWwKICAgICAgICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iTW9uYWNvIiA+CiAgICAgICAgICAgICAgICAgIE1vbmFjbwogICAgICAgICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJOb3J0aGVybiBNYXJpYW5hIElzbGFuZHMiID4KICAgICAgICAgICAgICAgICAgTm9ydGhlcm4gTWFyaWFuYSBJc2xhbmRzCiAgICAgICAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9IlBpdGNhaXJuIiA+CiAgICAgICAgICAgICAgICAgIFBpdGNhaXJuCiAgICAgICAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9IlRoYWlsYW5kIiA+CiAgICAgICAgICAgICAgICAgIFRoYWlsYW5kCiAgICAgICAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9IlN3YXppbGFuZCIgPgogICAgICAgICAgICAgICAgICBTd2F6aWxhbmQKICAgICAgICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iRmlubGFuZCIgPgogICAgICAgICAgICAgICAgICBGaW5sYW5kCiAgICAgICAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9Ik1vcm9jY28iID4KICAgICAgICAgICAgICAgICAgTW9yb2NjbwogICAgICAgICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJLdXdhaXQiID4KICAgICAgICAgICAgICAgICAgS3V3YWl0CiAgICAgICAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9IlR1cmtleSIgPgogICAgICAgICAgICAgICAgICBUdXJrZXkKICAgICAgICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iVVMgVmlyZ2luIElzbGFuZHMiID4KICAgICAgICAgICAgICAgICAgVVMgVmlyZ2luIElzbGFuZHMKICAgICAgICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iU2F1ZGkgQXJhYmlhIiA+CiAgICAgICAgICAgICAgICAgIFNhdWRpIEFyYWJpYQogICAgICAgICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJTaW5nYXBvcmUiID4KICAgICAgICAgICAgICAgICAgU2luZ2Fwb3JlCiAgICAgICAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9IlBvbGFuZCIgPgogICAgICAgICAgICAgICAgICBQb2xhbmQKICAgICAgICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iU2FpbnQgS2l0dHMgYW5kIE5ldmlzIiA+CiAgICAgICAgICAgICAgICAgIFNhaW50IEtpdHRzIGFuZCBOZXZpcwogICAgICAgICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJRYXRhciIgPgogICAgICAgICAgICAgICAgICBRYXRhcgogICAgICAgICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJTYWludCBIZWxlbmEiID4KICAgICAgICAgICAgICAgICAgU2FpbnQgSGVsZW5hCiAgICAgICAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9IkF1c3RyYWxpYSAiID4KICAgICAgICAgICAgICAgICAgQXVzdHJhbGlhCiAgICAgICAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9Ik4vQSIgPgogICAgICAgICAgICAgICAgICBOL0EKICAgICAgICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iVGFpd2FuIiA+CiAgICAgICAgICAgICAgICAgIFRhaXdhbgogICAgICAgICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPSItIiA+CiAgICAgICAgICAgICAgICAgIC0KICAgICAgICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iUGFuYW1hIiA+CiAgICAgICAgICAgICAgICAgIFBhbmFtYQogICAgICAgICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJVcnVndWF5IiA+CiAgICAgICAgICAgICAgICAgIFVydWd1YXkKICAgICAgICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iR3VhdGVtYWxhIiA+CiAgICAgICAgICAgICAgICAgIEd1YXRlbWFsYQogICAgICAgICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJUcmluaWRhZCBBbmQgVG9iYWdvIiA+CiAgICAgICAgICAgICAgICAgIFRyaW5pZGFkIEFuZCBUb2JhZ28KICAgICAgICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iVWtyYWluZSIgPgogICAgICAgICAgICAgICAgICBVa3JhaW5lCiAgICAgICAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9IlNvdXRoIEFmcmljYSIgPgogICAgICAgICAgICAgICAgICBTb3V0aCBBZnJpY2EKICAgICAgICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iVMO8cmtpeWUiID4KICAgICAgICAgICAgICAgICAgVMO8cmtpeWUKICAgICAgICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iU291dGggS29yZWEiID4KICAgICAgICAgICAgICAgICAgU291dGggS29yZWEKICAgICAgICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iTWFsYXlzaWEiID4KICAgICAgICAgICAgICAgICAgTWFsYXlzaWEKICAgICAgICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iSW5kb25lc2lhIiA+CiAgICAgICAgICAgICAgICAgIEluZG9uZXNpYQogICAgICAgICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJVbml0ZWQgU3RhdGVzIG9mIEFtZXJpY2EiID4KICAgICAgICAgICAgICAgICAgVW5pdGVkIFN0YXRlcyBvZiBBbWVyaWNhCiAgICAgICAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9IlVuaXRlZCBTdGF0ZXMgIiA+CiAgICAgICAgICAgICAgICAgIFVuaXRlZCBTdGF0ZXMKICAgICAgICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iSXNsZSBvZiBNYW4iID4KICAgICAgICAgICAgICAgICAgSXNsZSBvZiBNYW4KICAgICAgICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iVW5pdGVkIFN0YXRlcyBNaW5vciBPdXRseWluZyBJc2xhbmRzIiA+CiAgICAgICAgICAgICAgICAgIFVuaXRlZCBTdGF0ZXMgTWlub3IgT3V0bHlpbmcgSXNsYW5kcwogICAgICAgICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJUdXJrcyBhbmQgQ2FpY29zIElzbGFuZHMiID4KICAgICAgICAgICAgICAgICAgVHVya3MgYW5kIENhaWNvcyBJc2xhbmRzCiAgICAgICAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9IlR1dmFsdSIgPgogICAgICAgICAgICAgICAgICBUdXZhbHUKICAgICAgICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iVmlyZ2luIElzbGFuZHMsIFUucy4iID4KICAgICAgICAgICAgICAgICAgVmlyZ2luIElzbGFuZHMsIFUucy4KICAgICAgICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgICAgIDwvc2VsZWN0PgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPC9kaXY+CgogICAgICAgICAgPGRpdiBjbGFzcz0iLXJvdyAtcm93LTIiPgogICAgICAgICAgPGRpdiBjbGFzcz0iX2Zvcm1fZWxlbWVudCBfeDEyMDczMjMzIF9mdWxsX3dpZHRoICIgPgogICAgICAgICAgICA8bGFiZWwgZm9yPSJlbWFpbCIgY2xhc3M9Il9mb3JtLWxhYmVsIj4KICAgICAgICAgICAgICBFbWFpbCoKICAgICAgICAgICAgPC9sYWJlbD4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iX2ZpZWxkLXdyYXBwZXIiPgogICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJ0ZXh0IiBpZD0iZW1haWwiIG5hbWU9ImVtYWlsIiBwbGFjZWhvbGRlcj0iVHlwZSB5b3VyIGVtYWlsIiByZXF1aXJlZC8+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJfYnV0dG9uLXdyYXBwZXIgX2Z1bGxfd2lkdGgiPgogICAgICAgICAgICA8YnV0dG9uIGlkPSJfZm9ybV83X3N1Ym1pdCIgY2xhc3M9Il9zdWJtaXQiIHR5cGU9InN1Ym1pdCI+CiAgICAgICAgICAgICAgU3Vic2NyaWJlCiAgICAgICAgICAgIDwvYnV0dG9uPgogICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDxkaXYgY2xhc3M9Il9jbGVhci1lbGVtZW50Ij4KICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9Il9mb3JtLXRoYW5rLXlvdSIgc3R5bGU9ImRpc3BsYXk6bm9uZTsiPgogICAgICAgIDwvZGl2PgogICAgICA8L2Zvcm0+PHNjcmlwdD4KICAgICAgd2luZG93LmNmaWVsZHMgPSB7IjEiOiJjb3VudHJ5In07CiAgICAgIHdpbmRvdy5fc2hvd190aGFua195b3UgPSBmdW5jdGlvbihpZCwgbWVzc2FnZSwgdHJhY2tjbXBfdXJsLCBlbWFpbCkgewogICAgICAgICAgdmFyIGZvcm0gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnX2Zvcm1fJyArIGlkICsgJ18nKSwgdGhhbmtfeW91ID0gZm9ybS5xdWVyeVNlbGVjdG9yKCcuX2Zvcm0tdGhhbmsteW91Jyk7CiAgICAgICAgICBmb3JtLnF1ZXJ5U2VsZWN0b3IoJy5fZm9ybS1jb250ZW50Jykuc3R5bGUuZGlzcGxheSA9ICdub25lJzsKICAgICAgICAgIHRoYW5rX3lvdS5pbm5lckhUTUwgPSBtZXNzYWdlOwogICAgICAgICAgdGhhbmtfeW91LnN0eWxlLmRpc3BsYXkgPSAnYmxvY2snOwogICAgICAgICAgY29uc3QgdmdvQWxpYXMgPSB0eXBlb2YgdmlzaXRvckdsb2JhbE9iamVjdEFsaWFzID09PSAndW5kZWZpbmVkJyA/ICd2Z28nIDogdmlzaXRvckdsb2JhbE9iamVjdEFsaWFzOwogICAgICAgICAgdmFyIHZpc2l0b3JPYmplY3QgPSB3aW5kb3dbdmdvQWxpYXNdOwogICAgICAgICAgaWYgKGVtYWlsICYmIHR5cGVvZiB2aXNpdG9yT2JqZWN0ICE9PSAndW5kZWZpbmVkJykgewogICAgICAgICAgICAgIHZpc2l0b3JPYmplY3QoJ3NldEVtYWlsJywgZW1haWwpOwogICAgICAgICAgICAgIHZpc2l0b3JPYmplY3QoJ3VwZGF0ZScpOwogICAgICAgICAgfSBlbHNlIGlmICh0eXBlb2YodHJhY2tjbXBfdXJsKSAhPSAndW5kZWZpbmVkJyAmJiB0cmFja2NtcF91cmwpIHsKICAgICAgICAgICAgICAvLyBTaXRlIHRyYWNraW5nIFVSTCB0byB1c2UgYWZ0ZXIgaW5saW5lIGZvcm0gc3VibWlzc2lvbi4KICAgICAgICAgICAgICBfbG9hZF9zY3JpcHQodHJhY2tjbXBfdXJsKTsKICAgICAgICAgIH0KICAgICAgICAgIGlmICh0eXBlb2Ygd2luZG93Ll9mb3JtX2NhbGxiYWNrICE9PSAndW5kZWZpbmVkJykgd2luZG93Ll9mb3JtX2NhbGxiYWNrKGlkKTsKICAgICAgfTsKICAgICAgd2luZG93Ll9zaG93X3Vuc3Vic2NyaWJlID0gZnVuY3Rpb24oaWQsIG1lc3NhZ2UsIHRyYWNrY21wX3VybCwgZW1haWwpIHsKICAgICAgICAgIHZhciBmb3JtID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ19mb3JtXycgKyBpZCArICdfJyksIHVuc3ViID0gZm9ybS5xdWVyeVNlbGVjdG9yKCcuX2Zvcm0tdGhhbmsteW91Jyk7CiAgICAgICAgICB2YXIgYnJhbmRpbmcgPSBmb3JtLnF1ZXJ5U2VsZWN0b3IoJy5fZm9ybS1icmFuZGluZycpOwogICAgICAgICAgaWYgKGJyYW5kaW5nKSB7CiAgICAgICAgICAgICAgYnJhbmRpbmcuc3R5bGUuZGlzcGxheSA9ICdub25lJzsKICAgICAgICAgIH0KICAgICAgICAgIGZvcm0ucXVlcnlTZWxlY3RvcignLl9mb3JtLWNvbnRlbnQnKS5zdHlsZS5kaXNwbGF5ID0gJ25vbmUnOwogICAgICAgICAgdW5zdWIuc3R5bGUuZGlzcGxheSA9ICdibG9jayc7CiAgICAgICAgICBmb3JtLmluc2VydEFkamFjZW50SFRNTCgnYWZ0ZXJlbmQnLCBtZXNzYWdlKQogICAgICAgICAgY29uc3QgdmdvQWxpYXMgPSB0eXBlb2YgdmlzaXRvckdsb2JhbE9iamVjdEFsaWFzID09PSAndW5kZWZpbmVkJyA/ICd2Z28nIDogdmlzaXRvckdsb2JhbE9iamVjdEFsaWFzOwogICAgICAgICAgdmFyIHZpc2l0b3JPYmplY3QgPSB3aW5kb3dbdmdvQWxpYXNdOwogICAgICAgICAgaWYgKGVtYWlsICYmIHR5cGVvZiB2aXNpdG9yT2JqZWN0ICE9PSAndW5kZWZpbmVkJykgewogICAgICAgICAgICAgIHZpc2l0b3JPYmplY3QoJ3NldEVtYWlsJywgZW1haWwpOwogICAgICAgICAgICAgIHZpc2l0b3JPYmplY3QoJ3VwZGF0ZScpOwogICAgICAgICAgfSBlbHNlIGlmICh0eXBlb2YodHJhY2tjbXBfdXJsKSAhPSAndW5kZWZpbmVkJyAmJiB0cmFja2NtcF91cmwpIHsKICAgICAgICAgICAgICAvLyBTaXRlIHRyYWNraW5nIFVSTCB0byB1c2UgYWZ0ZXIgaW5saW5lIGZvcm0gc3VibWlzc2lvbi4KICAgICAgICAgICAgICBfbG9hZF9zY3JpcHQodHJhY2tjbXBfdXJsKTsKICAgICAgICAgIH0KICAgICAgICAgIGlmICh0eXBlb2Ygd2luZG93Ll9mb3JtX2NhbGxiYWNrICE9PSAndW5kZWZpbmVkJykgd2luZG93Ll9mb3JtX2NhbGxiYWNrKGlkKTsKICAgICAgfTsKICAgICAgd2luZG93Ll9zaG93X2Vycm9yID0gZnVuY3Rpb24oaWQsIG1lc3NhZ2UsIGh0bWwpIHsKICAgICAgICAgIHZhciBmb3JtID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ19mb3JtXycgKyBpZCArICdfJyksCiAgICAgICAgICAgICAgZXJyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2JyksCiAgICAgICAgICAgICAgYnV0dG9uID0gZm9ybS5xdWVyeVNlbGVjdG9yKCdidXR0b24nKSwKICAgICAgICAgICAgICBvbGRfZXJyb3IgPSBmb3JtLnF1ZXJ5U2VsZWN0b3IoJy5fZm9ybV9lcnJvcicpOwogICAgICAgICAgaWYgKG9sZF9lcnJvcikgb2xkX2Vycm9yLnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQob2xkX2Vycm9yKTsKICAgICAgICAgIGVyci5pbm5lckhUTUwgPSBtZXNzYWdlOwogICAgICAgICAgZXJyLmNsYXNzTmFtZSA9ICdfZXJyb3ItaW5uZXIgX2Zvcm1fZXJyb3IgX25vX2Fycm93JzsKICAgICAgICAgIHZhciB3cmFwcGVyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7CiAgICAgICAgICB3cmFwcGVyLmNsYXNzTmFtZSA9ICdfZm9ybS1pbm5lcic7CiAgICAgICAgICB3cmFwcGVyLmFwcGVuZENoaWxkKGVycik7CiAgICAgICAgICBidXR0b24ucGFyZW50Tm9kZS5pbnNlcnRCZWZvcmUod3JhcHBlciwgYnV0dG9uKTsKICAgICAgICAgIHZhciBzdWJtaXRCdXR0b24gPSBmb3JtLnF1ZXJ5U2VsZWN0b3IoJ1tpZF49Il9mb3JtIl1baWQkPSJfc3VibWl0Il0nKTsKICAgICAgICAgIHN1Ym1pdEJ1dHRvbi5kaXNhYmxlZCA9IGZhbHNlOwogICAgICAgICAgc3VibWl0QnV0dG9uLmNsYXNzTGlzdC5yZW1vdmUoJ3Byb2Nlc3NpbmcnKTsKICAgICAgICAgIGlmIChodG1sKSB7CiAgICAgICAgICAgICAgdmFyIGRpdiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpOwogICAgICAgICAgICAgIGRpdi5jbGFzc05hbWUgPSAnX2Vycm9yLWh0bWwnOwogICAgICAgICAgICAgIGRpdi5pbm5lckhUTUwgPSBodG1sOwogICAgICAgICAgICAgIGVyci5hcHBlbmRDaGlsZChkaXYpOwogICAgICAgICAgfQogICAgICB9OwogICAgICB3aW5kb3cuX2xvYWRfc2NyaXB0ID0gZnVuY3Rpb24odXJsLCBjYWxsYmFjaywgaXNTdWJtaXQpIHsKICAgICAgICAgIHZhciBoZWFkID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcignaGVhZCcpLCBzY3JpcHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdzY3JpcHQnKSwgciA9IGZhbHNlOwogICAgICAgICAgdmFyIHN1Ym1pdEJ1dHRvbiA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJyNfZm9ybV83X3N1Ym1pdCcpOwogICAgICAgICAgc2NyaXB0LmNoYXJzZXQgPSAndXRmLTgnOwogICAgICAgICAgc2NyaXB0LnNyYyA9IHVybDsKICAgICAgICAgIGlmIChjYWxsYmFjaykgewogICAgICAgICAgICAgIHNjcmlwdC5vbmxvYWQgPSBzY3JpcHQub25yZWFkeXN0YXRlY2hhbmdlID0gZnVuY3Rpb24oKSB7CiAgICAgICAgICAgICAgICAgIGlmICghciAmJiAoIXRoaXMucmVhZHlTdGF0ZSB8fCB0aGlzLnJlYWR5U3RhdGUgPT0gJ2NvbXBsZXRlJykpIHsKICAgICAgICAgICAgICAgICAgICAgIHIgPSB0cnVlOwogICAgICAgICAgICAgICAgICAgICAgY2FsbGJhY2soKTsKICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIH07CiAgICAgICAgICB9CiAgICAgICAgICBzY3JpcHQub25lcnJvciA9IGZ1bmN0aW9uKCkgewogICAgICAgICAgICAgIGlmIChpc1N1Ym1pdCkgewogICAgICAgICAgICAgICAgICBpZiAoc2NyaXB0LnNyYy5sZW5ndGggPiAxMDAwMCkgewogICAgICAgICAgICAgICAgICAgICAgX3Nob3dfZXJyb3IoIjciLCAiU29ycnksIHlvdXIgc3VibWlzc2lvbiBmYWlsZWQuIFBsZWFzZSBzaG9ydGVuIHlvdXIgcmVzcG9uc2VzIGFuZCB0cnkgYWdhaW4uIik7CiAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgICBfc2hvd19lcnJvcigiNyIsICJTb3JyeSwgeW91ciBzdWJtaXNzaW9uIGZhaWxlZC4gUGxlYXNlIHRyeSBhZ2Fpbi4iKTsKICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICBzdWJtaXRCdXR0b24uZGlzYWJsZWQgPSBmYWxzZTsKICAgICAgICAgICAgICAgICAgc3VibWl0QnV0dG9uLmNsYXNzTGlzdC5yZW1vdmUoJ3Byb2Nlc3NpbmcnKTsKICAgICAgICAgICAgICB9CiAgICAgICAgICB9CiAgICAgIAogICAgICAgICAgaGVhZC5hcHBlbmRDaGlsZChzY3JpcHQpOwogICAgICB9OwogICAgICAoZnVuY3Rpb24oKSB7CiAgICAgICAgICBpZiAod2luZG93LmxvY2F0aW9uLnNlYXJjaC5zZWFyY2goImV4Y2x1ZGVmb3JtIikgIT09IC0xKSByZXR1cm4gZmFsc2U7CiAgICAgICAgICB2YXIgZ2V0Q29va2llID0gZnVuY3Rpb24obmFtZSkgewogICAgICAgICAgICAgIHZhciBtYXRjaCA9IGRvY3VtZW50LmNvb2tpZS5tYXRjaChuZXcgUmVnRXhwKCcoXnw7ICknICsgbmFtZSArICc9KFteO10rKScpKTsKICAgICAgICAgICAgICByZXR1cm4gbWF0Y2ggPyBtYXRjaFsyXSA6IG51bGw7CiAgICAgICAgICB9CiAgICAgICAgICB2YXIgc2V0Q29va2llID0gZnVuY3Rpb24obmFtZSwgdmFsdWUpIHsKICAgICAgICAgICAgICB2YXIgbm93ID0gbmV3IERhdGUoKTsKICAgICAgICAgICAgICB2YXIgdGltZSA9IG5vdy5nZXRUaW1lKCk7CiAgICAgICAgICAgICAgdmFyIGV4cGlyZVRpbWUgPSB0aW1lICsgMTAwMCAqIDYwICogNjAgKiAyNCAqIDM2NTsKICAgICAgICAgICAgICBub3cuc2V0VGltZShleHBpcmVUaW1lKTsKICAgICAgICAgICAgICBkb2N1bWVudC5jb29raWUgPSBuYW1lICsgJz0nICsgdmFsdWUgKyAnOyBleHBpcmVzPScgKyBub3cgKyAnO3BhdGg9LzsgU2VjdXJlOyBTYW1lU2l0ZT1MYXg7JzsKICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgdmFyIGFkZEV2ZW50ID0gZnVuY3Rpb24oZWxlbWVudCwgZXZlbnQsIGZ1bmMpIHsKICAgICAgICAgICAgICBpZiAoZWxlbWVudC5hZGRFdmVudExpc3RlbmVyKSB7CiAgICAgICAgICAgICAgICAgIGVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcihldmVudCwgZnVuYyk7CiAgICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICAgdmFyIG9sZEZ1bmMgPSBlbGVtZW50WydvbicgKyBldmVudF07CiAgICAgICAgICAgICAgICAgIGVsZW1lbnRbJ29uJyArIGV2ZW50XSA9IGZ1bmN0aW9uKCkgewogICAgICAgICAgICAgICAgICAgICAgb2xkRnVuYy5hcHBseSh0aGlzLCBhcmd1bWVudHMpOwogICAgICAgICAgICAgICAgICAgICAgZnVuYy5hcHBseSh0aGlzLCBhcmd1bWVudHMpOwogICAgICAgICAgICAgICAgICB9OwogICAgICAgICAgICAgIH0KICAgICAgICAgIH0KICAgICAgICAgIHZhciBfcmVtb3ZlZCA9IGZhbHNlOwogICAgICAgICAgICAgIHZhciBmb3JtX3RvX3N1Ym1pdCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdfZm9ybV83XycpOwogICAgICAgICAgdmFyIGFsbElucHV0cyA9IGZvcm1fdG9fc3VibWl0LnF1ZXJ5U2VsZWN0b3JBbGwoJ2lucHV0LCBzZWxlY3QsIHRleHRhcmVhJyksIHRvb2x0aXBzID0gW10sIHN1Ym1pdHRlZCA9IGZhbHNlOwogICAgICAKICAgICAgICAgIHZhciBnZXRVcmxQYXJhbSA9IGZ1bmN0aW9uKG5hbWUpIHsKICAgICAgICAgICAgICBpZiAobmFtZS50b0xvd2VyQ2FzZSgpICE9PSAnZW1haWwnKSB7CiAgICAgICAgICAgICAgICAgIHZhciBwYXJhbXMgPSBuZXcgVVJMU2VhcmNoUGFyYW1zKHdpbmRvdy5sb2NhdGlvbi5zZWFyY2gpOwogICAgICAgICAgICAgICAgICByZXR1cm4gcGFyYW1zLmdldChuYW1lKSB8fCBmYWxzZTsKICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgLy8gZW1haWwgaXMgYSBzcGVjaWFsIGNhc2UgYmVjYXVzZSBhIHBsdXMgaXMgdmFsaWQgaW4gdGhlIGVtYWlsIGFkZHJlc3MKICAgICAgICAgICAgICB2YXIgcVN0cmluZyA9IHdpbmRvdy5sb2NhdGlvbi5zZWFyY2g7CiAgICAgICAgICAgICAgaWYgKCFxU3RyaW5nKSB7CiAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgdmFyIHBhcmFtZXRlcnMgPSBxU3RyaW5nLnN1YnN0cigxKS5zcGxpdCgnJicpOwogICAgICAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgcGFyYW1ldGVycy5sZW5ndGg7IGkrKykgewogICAgICAgICAgICAgICAgICB2YXIgcGFyYW1ldGVyID0gcGFyYW1ldGVyc1tpXS5zcGxpdCgnPScpOwogICAgICAgICAgICAgICAgICBpZiAocGFyYW1ldGVyWzBdLnRvTG93ZXJDYXNlKCkgPT09ICdlbWFpbCcpIHsKICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBwYXJhbWV0ZXJbMV0gPT09IHVuZGVmaW5lZCA/IHRydWUgOiBkZWNvZGVVUklDb21wb25lbnQocGFyYW1ldGVyWzFdKTsKICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIH0KICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgICB9OwogICAgICAKICAgICAgICAgIHZhciBhY2N0RGF0ZUZvcm1hdCA9ICIlbS8lZC8lWSI7CiAgICAgICAgICB2YXIgZ2V0Tm9ybWFsaXplZERhdGUgPSBmdW5jdGlvbihkYXRlLCBhY2N0Rm9ybWF0KSB7CiAgICAgICAgICAgICAgdmFyIGRlY29kZWREYXRlID0gZGVjb2RlVVJJQ29tcG9uZW50KGRhdGUpOwogICAgICAgICAgICAgIGlmIChhY2N0Rm9ybWF0ICYmIGFjY3RGb3JtYXQubWF0Y2goLyglZHwlZSkuKiVtL2dpKSAhPT0gbnVsbCkgewogICAgICAgICAgICAgICAgICByZXR1cm4gZGVjb2RlZERhdGUucmVwbGFjZSgvKFxkezJ9KS4qKFxkezJ9KS4qKFxkezR9KS9nLCAnJDMtJDItJDEnKTsKICAgICAgICAgICAgICB9IGVsc2UgaWYgKERhdGUucGFyc2UoZGVjb2RlZERhdGUpKSB7CiAgICAgICAgICAgICAgICAgIHZhciBkYXRlT2JqID0gbmV3IERhdGUoZGVjb2RlZERhdGUpOwogICAgICAgICAgICAgICAgICB2YXIgeWVhciA9IGRhdGVPYmouZ2V0RnVsbFllYXIoKTsKICAgICAgICAgICAgICAgICAgdmFyIG1vbnRoID0gZGF0ZU9iai5nZXRNb250aCgpICsgMTsKICAgICAgICAgICAgICAgICAgdmFyIGRheSA9IGRhdGVPYmouZ2V0RGF0ZSgpOwogICAgICAgICAgICAgICAgICByZXR1cm4gYCR7eWVhcn0tJHttb250aCA8IDEwID8gYDAke21vbnRofWAgOiBtb250aH0tJHtkYXkgPCAxMCA/IGAwJHtkYXl9YCA6IGRheX1gOwogICAgICAgICAgICAgIH0KICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgICB9OwogICAgICAKICAgICAgICAgIHZhciBnZXROb3JtYWxpemVkVGltZSA9IGZ1bmN0aW9uKHRpbWUpIHsKICAgICAgICAgICAgICB2YXIgaG91ciwgbWludXRlczsKICAgICAgICAgICAgICB2YXIgZGVjb2RlZFRpbWUgPSBkZWNvZGVVUklDb21wb25lbnQodGltZSk7CiAgICAgICAgICAgICAgdmFyIHRpbWVQYXJ0cyA9IEFycmF5LmZyb20oZGVjb2RlZFRpbWUubWF0Y2hBbGwoLyhcZHsxLDJ9KTooXGR7MSwyfSlcVyooW0FhUHBdW01tXSk/L2dtKSlbMF07CiAgICAgICAgICAgICAgaWYgKHRpbWVQYXJ0c1szXSkgeyAvLyAxMiBob3VyIGZvcm1hdAogICAgICAgICAgICAgICAgICB2YXIgaXNQTSA9IHRpbWVQYXJ0c1szXS50b0xvd2VyQ2FzZSgpID09PSAncG0nOwogICAgICAgICAgICAgICAgICBpZiAoaXNQTSkgewogICAgICAgICAgICAgICAgICAgICAgaG91ciA9IHBhcnNlSW50KHRpbWVQYXJ0c1sxXSkgPT09IDEyID8gJzEyJyA6IGAke3BhcnNlSW50KHRpbWVQYXJ0c1sxXSkgKyAxMn1gOwogICAgICAgICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgICAgICAgaG91ciA9IHBhcnNlSW50KHRpbWVQYXJ0c1sxXSkgPT09IDEyID8gJzAnIDogdGltZVBhcnRzWzFdOwogICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgfSBlbHNlIHsgLy8gMjQgaG91ciBmb3JtYXQKICAgICAgICAgICAgICAgICAgaG91ciA9IHRpbWVQYXJ0c1sxXTsKICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgdmFyIG5vcm1hbGl6ZWRIb3VyID0gcGFyc2VJbnQoaG91cikgPCAxMCA/IGAwJHtwYXJzZUludChob3VyKX1gIDogaG91cjsKICAgICAgICAgICAgICB2YXIgbWludXRlcyA9IHRpbWVQYXJ0c1syXTsKICAgICAgICAgICAgICByZXR1cm4gYCR7bm9ybWFsaXplZEhvdXJ9OiR7bWludXRlc31gOwogICAgICAgICAgfTsKICAgICAgCiAgICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGFsbElucHV0cy5sZW5ndGg7IGkrKykgewogICAgICAgICAgICAgIHZhciByZWdleFN0ciA9ICJmaWVsZFxcWyhcXGQrKVxcXSI7CiAgICAgICAgICAgICAgdmFyIHJlc3VsdHMgPSBuZXcgUmVnRXhwKHJlZ2V4U3RyKS5leGVjKGFsbElucHV0c1tpXS5uYW1lKTsKICAgICAgICAgICAgICBpZiAocmVzdWx0cyAhPSB1bmRlZmluZWQpIHsKICAgICAgICAgICAgICAgICAgYWxsSW5wdXRzW2ldLmRhdGFzZXQubmFtZSA9IGFsbElucHV0c1tpXS5uYW1lLm1hdGNoKC9cW3RpbWVcXSQvKQogICAgICAgICAgICAgICAgICAgICAgPyBgJHt3aW5kb3cuY2ZpZWxkc1tyZXN1bHRzWzFdXX1fdGltZWAKICAgICAgICAgICAgICAgICAgICAgIDogd2luZG93LmNmaWVsZHNbcmVzdWx0c1sxXV07CiAgICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICAgYWxsSW5wdXRzW2ldLmRhdGFzZXQubmFtZSA9IGFsbElucHV0c1tpXS5uYW1lOwogICAgICAgICAgICAgIH0KICAgICAgICAgICAgICB2YXIgZmllbGRWYWwgPSBnZXRVcmxQYXJhbShhbGxJbnB1dHNbaV0uZGF0YXNldC5uYW1lKTsKICAgICAgCiAgICAgICAgICAgICAgaWYgKGZpZWxkVmFsKSB7CiAgICAgICAgICAgICAgICAgIGlmIChhbGxJbnB1dHNbaV0uZGF0YXNldC5hdXRvZmlsbCA9PT0gImZhbHNlIikgewogICAgICAgICAgICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgaWYgKGFsbElucHV0c1tpXS50eXBlID09ICJyYWRpbyIgfHwgYWxsSW5wdXRzW2ldLnR5cGUgPT0gImNoZWNrYm94IikgewogICAgICAgICAgICAgICAgICAgICAgaWYgKGFsbElucHV0c1tpXS52YWx1ZSA9PSBmaWVsZFZhbCkgewogICAgICAgICAgICAgICAgICAgICAgICAgIGFsbElucHV0c1tpXS5jaGVja2VkID0gdHJ1ZTsKICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChhbGxJbnB1dHNbaV0udHlwZSA9PSAiZGF0ZSIpIHsKICAgICAgICAgICAgICAgICAgICAgIGFsbElucHV0c1tpXS52YWx1ZSA9IGdldE5vcm1hbGl6ZWREYXRlKGZpZWxkVmFsLCBhY2N0RGF0ZUZvcm1hdCk7CiAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoYWxsSW5wdXRzW2ldLnR5cGUgPT0gInRpbWUiKSB7CiAgICAgICAgICAgICAgICAgICAgICBhbGxJbnB1dHNbaV0udmFsdWUgPSBnZXROb3JtYWxpemVkVGltZShmaWVsZFZhbCk7CiAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgICBhbGxJbnB1dHNbaV0udmFsdWUgPSBmaWVsZFZhbDsKICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIH0KICAgICAgICAgIH0KICAgICAgCiAgICAgICAgICB2YXIgcmVtb3ZlX3Rvb2x0aXBzID0gZnVuY3Rpb24oKSB7CiAgICAgICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCB0b29sdGlwcy5sZW5ndGg7IGkrKykgewogICAgICAgICAgICAgICAgICB0b29sdGlwc1tpXS50aXAucGFyZW50Tm9kZS5yZW1vdmVDaGlsZCh0b29sdGlwc1tpXS50aXApOwogICAgICAgICAgICAgIH0KICAgICAgICAgICAgICB0b29sdGlwcyA9IFtdOwogICAgICAgICAgfTsKICAgICAgICAgIHZhciByZW1vdmVfdG9vbHRpcCA9IGZ1bmN0aW9uKGVsZW0pIHsKICAgICAgICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHRvb2x0aXBzLmxlbmd0aDsgaSsrKSB7CiAgICAgICAgICAgICAgICAgIGlmICh0b29sdGlwc1tpXS5lbGVtID09PSBlbGVtKSB7CiAgICAgICAgICAgICAgICAgICAgICB0b29sdGlwc1tpXS50aXAucGFyZW50Tm9kZS5yZW1vdmVDaGlsZCh0b29sdGlwc1tpXS50aXApOwogICAgICAgICAgICAgICAgICAgICAgdG9vbHRpcHMuc3BsaWNlKGksIDEpOwogICAgICAgICAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgfQogICAgICAgICAgfTsKICAgICAgICAgIHZhciBjcmVhdGVfdG9vbHRpcCA9IGZ1bmN0aW9uKGVsZW0sIHRleHQpIHsKICAgICAgICAgICAgICB2YXIgdG9vbHRpcCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpLAogICAgICAgICAgICAgICAgICBhcnJvdyA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpLAogICAgICAgICAgICAgICAgICBpbm5lciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpLCBuZXdfdG9vbHRpcCA9IHt9OwogICAgICAgICAgICAgIGlmIChlbGVtLnR5cGUgIT0gJ3JhZGlvJyAmJiBlbGVtLnR5cGUgIT0gJ2NoZWNrYm94JykgewogICAgICAgICAgICAgICAgICB0b29sdGlwLmNsYXNzTmFtZSA9ICdfZXJyb3InOwogICAgICAgICAgICAgICAgICBhcnJvdy5jbGFzc05hbWUgPSAnX2Vycm9yLWFycm93JzsKICAgICAgICAgICAgICAgICAgaW5uZXIuY2xhc3NOYW1lID0gJ19lcnJvci1pbm5lcic7CiAgICAgICAgICAgICAgICAgIGlubmVyLmlubmVySFRNTCA9IHRleHQ7CiAgICAgICAgICAgICAgICAgIHRvb2x0aXAuYXBwZW5kQ2hpbGQoYXJyb3cpOwogICAgICAgICAgICAgICAgICB0b29sdGlwLmFwcGVuZENoaWxkKGlubmVyKTsKICAgICAgICAgICAgICAgICAgZWxlbS5wYXJlbnROb2RlLmFwcGVuZENoaWxkKHRvb2x0aXApOwogICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAgIHRvb2x0aXAuY2xhc3NOYW1lID0gJ19lcnJvci1pbm5lciBfbm9fYXJyb3cnOwogICAgICAgICAgICAgICAgICB0b29sdGlwLmlubmVySFRNTCA9IHRleHQ7CiAgICAgICAgICAgICAgICAgIGVsZW0ucGFyZW50Tm9kZS5pbnNlcnRCZWZvcmUodG9vbHRpcCwgZWxlbSk7CiAgICAgICAgICAgICAgICAgIG5ld190b29sdGlwLm5vX2Fycm93ID0gdHJ1ZTsKICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgbmV3X3Rvb2x0aXAudGlwID0gdG9vbHRpcDsKICAgICAgICAgICAgICBuZXdfdG9vbHRpcC5lbGVtID0gZWxlbTsKICAgICAgICAgICAgICB0b29sdGlwcy5wdXNoKG5ld190b29sdGlwKTsKICAgICAgICAgICAgICByZXR1cm4gbmV3X3Rvb2x0aXA7CiAgICAgICAgICB9OwogICAgICAgICAgdmFyIHJlc2l6ZV90b29sdGlwID0gZnVuY3Rpb24odG9vbHRpcCkgewogICAgICAgICAgICAgIHZhciByZWN0ID0gdG9vbHRpcC5lbGVtLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpOwogICAgICAgICAgICAgIHZhciBkb2MgPSBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQsCiAgICAgICAgICAgICAgICAgIHNjcm9sbFBvc2l0aW9uID0

[/fusion_builder_col