diff --git a/docs/categories/all.html b/docs/categories/all.html index 70e43988..5dd1da4a 100644 --- a/docs/categories/all.html +++ b/docs/categories/all.html @@ -253,7 +253,7 @@

No Yes Yes - 4469 + 4470 @@ -353,7 +353,7 @@

Yes Yes No - 185 + 191 @@ -376,7 +376,7 @@

Yes Yes Yes - 5433 + 5446 @@ -399,7 +399,7 @@

No Yes No - 1639 + 1641 @@ -462,7 +462,7 @@

Yes Yes Yes - 23156 + 23163 @@ -548,7 +548,7 @@

No Yes No - 656 + 657 @@ -837,7 +837,7 @@

No Yes Yes - 552 + 553 @@ -883,7 +883,7 @@

No Yes Yes - 21044 + 21058 @@ -906,7 +906,7 @@

Yes Yes No - 139 + 140 @@ -929,7 +929,7 @@

No Yes Yes - 2729 + 2742 @@ -1087,7 +1087,7 @@

Yes Yes Yes - 8832 + 8833 @@ -1406,7 +1406,7 @@

Yes Yes Yes - 4176 + 4177 @@ -1429,7 +1429,7 @@

Yes Yes Yes - 1313 + 1314 @@ -1560,7 +1560,7 @@

No Yes Yes - 3412 + 3413 @@ -1675,7 +1675,7 @@

No Yes Yes - 8412 + 8413 @@ -1807,7 +1807,7 @@

No Yes No - 1655 + 1656 @@ -1853,7 +1853,7 @@

No Yes Yes - 4169 + 4170 @@ -1874,7 +1874,7 @@

No Yes No - 896 + 897 @@ -1918,7 +1918,7 @@

No Yes No - 629 + 630 @@ -2050,7 +2050,7 @@

Yes Yes Yes - 889 + 890 @@ -2115,7 +2115,7 @@

Yes Yes No - 101 + 102 @@ -2182,7 +2182,7 @@

No Yes Yes - 1082 + 1083 @@ -2293,7 +2293,7 @@

No Yes Yes - 2527 + 2528 @@ -2442,7 +2442,7 @@

No Yes Yes - 1369 + 1370 @@ -2593,7 +2593,7 @@

No No Yes - 9427 + 9428 @@ -2662,7 +2662,7 @@

No Yes Yes - 6662 + 6663 @@ -2708,7 +2708,7 @@

No Yes Yes - 16839 + 16843 @@ -2729,7 +2729,7 @@

No Yes Yes - 4568 + 4569 @@ -3029,7 +3029,7 @@

No Yes No - 525 + 526 @@ -3094,7 +3094,7 @@

No Yes No - 237 + 236 @@ -3367,7 +3367,7 @@

Yes Yes No - 3872 + 3873 @@ -3390,7 +3390,7 @@

No Yes No - 4054 + 4057 @@ -3436,7 +3436,7 @@

Yes Yes No - 731 + 733 @@ -3478,7 +3478,7 @@

Yes Yes Yes - 902 + 903 @@ -3501,7 +3501,7 @@

Yes Yes No - 88 + 89 @@ -3589,7 +3589,7 @@

No Yes Yes - 12407 + 12411 @@ -3830,7 +3830,7 @@

No Yes No - 28019 + 28026 @@ -3853,7 +3853,7 @@

No Yes Yes - 204 + 205 @@ -4005,7 +4005,7 @@

Yes Yes Yes - 1680 + 1681 @@ -4321,7 +4321,7 @@

Yes Yes Yes - 535 + 538 @@ -4388,7 +4388,7 @@

Yes Yes Yes - 409 + 410 @@ -4614,7 +4614,7 @@

Yes Yes Yes - 166 + 167 @@ -4849,7 +4849,7 @@

Yes Yes Yes - 2532 + 2534 @@ -4916,7 +4916,7 @@

Yes Yes No - 1333 + 1334 @@ -5073,7 +5073,7 @@

No Yes No - 716 + 733 @@ -5096,7 +5096,7 @@

Yes Yes No - 1790 + 1794 @@ -5119,7 +5119,7 @@

No Yes No - 126 + 127 @@ -5234,7 +5234,7 @@

No Yes No - 74736 + 74774 @@ -5257,7 +5257,7 @@

Yes Yes No - 26199 + 26213 @@ -5280,7 +5280,7 @@

Yes Yes No - 23156 + 23163 @@ -5301,7 +5301,7 @@

No Yes No - 7369 + 7370 @@ -5322,7 +5322,7 @@

No Yes No - 6191 + 6195 @@ -5345,7 +5345,7 @@

No Yes No - 5798 + 5800 @@ -5368,7 +5368,7 @@

Yes Yes Yes - 5341 + 5351 @@ -5389,7 +5389,7 @@

No Yes No - 4037 + 4038 @@ -5410,7 +5410,7 @@

No Yes No - 3805 + 3808 @@ -5433,7 +5433,7 @@

No Yes No - 3224 + 3225 @@ -5454,7 +5454,7 @@

No Yes No - 2670 + 2671 @@ -5496,7 +5496,7 @@

No Yes No - 2265 + 2268 @@ -5519,7 +5519,7 @@

No Yes No - 2212 + 2215 @@ -5540,7 +5540,7 @@

No Yes No - 2185 + 2187 @@ -5561,7 +5561,7 @@

No Yes No - 2058 + 2059 @@ -5582,7 +5582,7 @@

No Yes No - 1638 + 1640 @@ -5626,7 +5626,7 @@

No Yes No - 1376 + 1379 @@ -5647,7 +5647,7 @@

No Yes No - 1250 + 1251 @@ -5731,7 +5731,7 @@

No Yes No - 863 + 870 @@ -5773,7 +5773,7 @@

No Yes No - 796 + 798 @@ -6006,7 +6006,7 @@

No Yes No - 485 + 486 @@ -6048,7 +6048,7 @@

No Yes No - 480 + 481 @@ -6321,7 +6321,7 @@

No Yes No - 351 + 353 @@ -6365,7 +6365,7 @@

Yes Yes No - 331 + 332 @@ -6428,7 +6428,7 @@

Yes Yes No - 295 + 296 @@ -6512,7 +6512,7 @@

No Yes No - 280 + 281 @@ -6871,7 +6871,7 @@

No Yes No - 201 + 202 @@ -7041,7 +7041,7 @@

No Yes No - 179 + 181 @@ -7209,7 +7209,7 @@

No Yes No - 167 + 168 @@ -7400,7 +7400,7 @@

No Yes No - 125 + 130 @@ -7526,7 +7526,7 @@

No Yes No - 111 + 112 @@ -7820,7 +7820,7 @@

No Yes No - 94 + 95 @@ -8261,7 +8261,7 @@

Yes Yes No - 60 + 61 @@ -8834,7 +8834,7 @@

Yes Yes No - 42 + 43 @@ -10665,7 +10665,7 @@

No Yes No - 18 + 19 @@ -13319,7 +13319,7 @@

No Yes No - 7 + 8 @@ -14390,7 +14390,7 @@

No Yes No - 5 + 6 @@ -24701,7 +24701,7 @@

Yes Yes No - 2095 + 2097 @@ -24997,7 +24997,7 @@

No Yes Yes - 2736 + 2743 @@ -26786,7 +26786,7 @@

No Yes No - 25454 + 25483 @@ -30907,7 +30907,7 @@

No No No - 7369 + 7370 @@ -30930,7 +30930,7 @@

No No No - 1369 + 1370 @@ -31308,7 +31308,7 @@

No No No - 543 + 545 @@ -31941,7 +31941,7 @@

No Yes Yes - 2547 + 2549 @@ -32088,7 +32088,7 @@

No Yes No - N/A + 1 @@ -33136,7 +33136,7 @@

Connexion (link)

Stars - 4469 + 4470 Watchers @@ -33152,7 +33152,7 @@

Connexion (link)

Last Updated - 2024-08-17T04:56:19Z + 2024-08-19T23:34:53Z Archived @@ -33391,7 +33391,7 @@

Rate My OpenAPI (link)

Stars - 185 + 191 Watchers @@ -33407,7 +33407,7 @@

Rate My OpenAPI (link)

Last Updated - 2024-08-18T19:11:05Z + 2024-08-19T12:58:58Z Archived @@ -33442,7 +33442,7 @@

Scalar (link)

Stars - 5433 + 5446 Watchers @@ -33458,7 +33458,7 @@

Scalar (link)

Last Updated - 2024-08-19T00:39:13Z + 2024-08-20T03:14:38Z Archived @@ -33493,7 +33493,7 @@

Scribe (link)

Stars - 1639 + 1641 Watchers @@ -33509,7 +33509,7 @@

Scribe (link)

Last Updated - 2024-08-18T15:39:34Z + 2024-08-20T00:56:05Z Archived @@ -33646,7 +33646,7 @@

ReDoc (link)

Stars - 23156 + 23163 Watchers @@ -33662,7 +33662,7 @@

ReDoc (link)

Last Updated - 2024-08-19T01:00:16Z + 2024-08-20T01:50:55Z Archived @@ -33815,7 +33815,7 @@

OpenAPI-UI (link)

Last Updated - 2024-08-17T14:30:14Z + 2024-08-19T15:17:05Z Archived @@ -33850,7 +33850,7 @@

oasdiff (link)

Stars - 656 + 657 Watchers @@ -33866,7 +33866,7 @@

oasdiff (link)

Last Updated - 2024-08-17T20:26:44Z + 2024-08-19T09:35:43Z Archived @@ -34513,7 +34513,7 @@

Spot (link)

Stars - 552 + 553 Watchers @@ -34529,7 +34529,7 @@

Spot (link)

Last Updated - 2024-08-18T07:49:02Z + 2024-08-19T17:38:58Z Archived @@ -34615,7 +34615,7 @@

OpenAPI Generator (link)

Stars - 21044 + 21058 Watchers @@ -34623,7 +34623,7 @@

OpenAPI Generator (link)

Forks - 6380 + 6382 Created @@ -34631,7 +34631,7 @@

OpenAPI Generator (link)

Last Updated - 2024-08-18T21:46:05Z + 2024-08-20T01:50:16Z Archived @@ -34666,7 +34666,7 @@

OpenAPI JSON Schema Generator (link) Stars - 139 + 140 Watchers @@ -34682,7 +34682,7 @@

OpenAPI JSON Schema Generator (link) Last Updated - 2024-08-16T22:44:23Z + 2024-08-19T06:45:35Z Archived @@ -34717,7 +34717,7 @@

Kiota Api Client Generator (link)

Stars - 2729 + 2742 Watchers @@ -34733,7 +34733,7 @@

Kiota Api Client Generator (link)

Last Updated - 2024-08-19T01:19:55Z + 2024-08-20T02:16:53Z Archived @@ -34988,7 +34988,7 @@

VSCode OpenAPI Editor (link)

Last Updated - 2024-08-16T14:18:51Z + 2024-08-19T16:17:16Z Archived @@ -35074,7 +35074,7 @@

Swagger Editor (link)

Stars - 8832 + 8833 Watchers @@ -35082,7 +35082,7 @@

Swagger Editor (link)

Forks - 2235 + 2236 Created @@ -35090,7 +35090,7 @@

Swagger Editor (link)

Last Updated - 2024-08-18T18:25:54Z + 2024-08-19T10:15:45Z Archived @@ -35839,7 +35839,7 @@

Prism (link)

Stars - 4176 + 4177 Watchers @@ -35855,7 +35855,7 @@

Prism (link)

Last Updated - 2024-08-17T07:24:27Z + 2024-08-19T04:00:29Z Archived @@ -35890,11 +35890,11 @@

Microcks (link)

Stars - 1313 + 1314 Watchers - 23 + 22 Forks @@ -35906,7 +35906,7 @@

Microcks (link)

Last Updated - 2024-08-18T14:19:47Z + 2024-08-19T07:39:04Z Archived @@ -36196,7 +36196,7 @@

tsoa (link)

Stars - 3412 + 3413 Watchers @@ -36212,7 +36212,7 @@

tsoa (link)

Last Updated - 2024-08-18T07:35:59Z + 2024-08-19T11:10:06Z Archived @@ -36255,7 +36255,7 @@

Vert.x Web Api Contract (link)

Forks - 530 + 531 Created @@ -36451,7 +36451,7 @@

API Platform (link)

Stars - 8412 + 8413 Watchers @@ -36467,7 +36467,7 @@

API Platform (link)

Last Updated - 2024-08-18T19:05:30Z + 2024-08-19T03:30:05Z Archived @@ -36757,7 +36757,7 @@

@nestjs/swagger (link)

Stars - 1655 + 1656 Watchers @@ -36773,7 +36773,7 @@

@nestjs/swagger (link)

Last Updated - 2024-08-19T00:51:03Z + 2024-08-20T03:05:52Z Archived @@ -36859,7 +36859,7 @@

Dredd (link)

Stars - 4169 + 4170 Watchers @@ -36875,7 +36875,7 @@

Dredd (link)

Last Updated - 2024-08-17T19:21:47Z + 2024-08-19T08:16:12Z Archived @@ -36910,7 +36910,7 @@

express-openapi-validator (link)

Stars - 896 + 897 Watchers @@ -36926,7 +36926,7 @@

express-openapi-validator (link)

Last Updated - 2024-08-12T16:16:33Z + 2024-08-19T08:29:17Z Archived @@ -37012,7 +37012,7 @@

portman (link)

Stars - 629 + 630 Watchers @@ -37028,7 +37028,7 @@

portman (link)

Last Updated - 2024-08-18T19:05:50Z + 2024-08-19T17:22:59Z Archived @@ -37173,7 +37173,7 @@

Spectral (link)

Forks - 234 + 235 Created @@ -37318,7 +37318,7 @@

Redocly CLI (link)

Stars - 889 + 890 Watchers @@ -37334,7 +37334,7 @@

Redocly CLI (link)

Last Updated - 2024-08-18T22:22:34Z + 2024-08-19T12:15:28Z Archived @@ -37471,7 +37471,7 @@

openapi_first (link)

Stars - 101 + 102 Watchers @@ -37487,7 +37487,7 @@

openapi_first (link)

Last Updated - 2024-08-18T14:35:42Z + 2024-08-19T10:52:13Z Archived @@ -37624,7 +37624,7 @@

APIDevTools/swagger-parser (link)

Stars - 1082 + 1083 Watchers @@ -37640,7 +37640,7 @@

APIDevTools/swagger-parser (link)

Last Updated - 2024-08-18T06:40:41Z + 2024-08-19T19:42:22Z Archived @@ -37879,7 +37879,7 @@

kin-openapi (link)

Stars - 2527 + 2528 Watchers @@ -37887,7 +37887,7 @@

kin-openapi (link)

Forks - 421 + 422 Created @@ -37895,7 +37895,7 @@

kin-openapi (link)

Last Updated - 2024-08-16T09:18:15Z + 2024-08-19T17:31:47Z Archived @@ -38236,7 +38236,7 @@

Microsoft/OpenAPI.NET (link)

Stars - 1369 + 1370 Watchers @@ -38252,7 +38252,7 @@

Microsoft/OpenAPI.NET (link)

Last Updated - 2024-08-15T20:19:47Z + 2024-08-19T21:41:28Z Archived @@ -38593,7 +38593,7 @@

go-swagger (link)

Stars - 9427 + 9428 Watchers @@ -38609,7 +38609,7 @@

go-swagger (link)

Last Updated - 2024-08-18T14:14:23Z + 2024-08-19T11:51:28Z Archived @@ -38746,7 +38746,7 @@

NSwag (link)

Stars - 6662 + 6663 Watchers @@ -38762,7 +38762,7 @@

NSwag (link)

Last Updated - 2024-08-19T02:34:39Z + 2024-08-19T11:29:09Z Archived @@ -38848,7 +38848,7 @@

Swagger-Codegen (link)

Stars - 16839 + 16843 Watchers @@ -38864,7 +38864,7 @@

Swagger-Codegen (link)

Last Updated - 2024-08-18T23:59:04Z + 2024-08-20T02:40:36Z Archived @@ -38899,7 +38899,7 @@

Azure AutoRest (link)

Stars - 4568 + 4569 Watchers @@ -38915,7 +38915,7 @@

Azure AutoRest (link)

Last Updated - 2024-08-16T19:04:06Z + 2024-08-19T08:31:22Z Archived @@ -39613,7 +39613,7 @@

openapi-fuzzer (link)

Stars - 525 + 526 Watchers @@ -39629,7 +39629,7 @@

openapi-fuzzer (link)

Last Updated - 2024-08-05T08:45:17Z + 2024-08-19T05:33:45Z Archived @@ -39766,7 +39766,7 @@

OpenAPI Schema to JSON Schema (link) Stars - 237 + 236 Watchers @@ -39782,7 +39782,7 @@

OpenAPI Schema to JSON Schema (link) Last Updated - 2024-08-15T20:14:23Z + 2024-08-19T07:38:15Z Archived @@ -40378,7 +40378,7 @@

OpenAPI DevTools (link)

Stars - 3872 + 3873 Watchers @@ -40394,7 +40394,7 @@

OpenAPI DevTools (link)

Last Updated - 2024-08-19T02:17:32Z + 2024-08-19T04:03:55Z Archived @@ -40429,7 +40429,7 @@

TypeSpec (link)

Stars - 4054 + 4057 Watchers @@ -40445,7 +40445,7 @@

TypeSpec (link)

Last Updated - 2024-08-19T00:41:19Z + 2024-08-20T02:14:01Z Archived @@ -40531,7 +40531,7 @@

Restish (link)

Stars - 731 + 733 Watchers @@ -40547,7 +40547,7 @@

Restish (link)

Last Updated - 2024-08-18T17:27:07Z + 2024-08-20T00:18:49Z Archived @@ -40633,7 +40633,7 @@

openapi-to-postman (link)

Stars - 902 + 903 Watchers @@ -40649,7 +40649,7 @@

openapi-to-postman (link)

Last Updated - 2024-08-16T18:46:53Z + 2024-08-19T07:23:26Z Archived @@ -40684,7 +40684,7 @@

openapi-format (link)

Stars - 88 + 89 Watchers @@ -40700,7 +40700,7 @@

openapi-format (link)

Last Updated - 2024-08-17T09:41:03Z + 2024-08-19T16:18:06Z Archived @@ -40888,7 +40888,7 @@

OWASP ZAP (link)

Stars - 12407 + 12411 Watchers @@ -40896,7 +40896,7 @@

OWASP ZAP (link)

Forks - 2218 + 2219 Created @@ -40904,7 +40904,7 @@

OWASP ZAP (link)

Last Updated - 2024-08-18T17:11:20Z + 2024-08-19T23:18:50Z Archived @@ -41449,11 +41449,11 @@

Django REST Framework (link)

Stars - 28019 + 28026 Watchers - 622 + 623 Forks @@ -41465,7 +41465,7 @@

Django REST Framework (link)

Last Updated - 2024-08-19T02:17:07Z + 2024-08-20T02:42:01Z Archived @@ -41500,7 +41500,7 @@

RESTest (link)

Stars - 204 + 205 Watchers @@ -41516,7 +41516,7 @@

RESTest (link)

Last Updated - 2024-06-10T15:07:57Z + 2024-08-19T14:34:01Z Archived @@ -41857,7 +41857,7 @@

Elements (link)

Stars - 1680 + 1681 Watchers @@ -41873,7 +41873,7 @@

Elements (link)

Last Updated - 2024-08-19T02:37:51Z + 2024-08-19T21:02:48Z Archived @@ -42571,7 +42571,7 @@

vacuum (link)

Stars - 535 + 538 Watchers @@ -42587,7 +42587,7 @@

vacuum (link)

Last Updated - 2024-08-18T09:01:36Z + 2024-08-19T17:07:43Z Archived @@ -42724,7 +42724,7 @@

libopenapi (link)

Stars - 409 + 410 Watchers @@ -42740,7 +42740,7 @@

libopenapi (link)

Last Updated - 2024-08-16T08:52:10Z + 2024-08-19T13:50:25Z Archived @@ -43234,7 +43234,7 @@

openapi-changes (link)

Stars - 166 + 167 Watchers @@ -43250,7 +43250,7 @@

openapi-changes (link)

Last Updated - 2024-08-10T23:17:53Z + 2024-08-19T15:21:43Z Archived @@ -43795,7 +43795,7 @@

🌿 Fern (link)

Stars - 2532 + 2534 Watchers @@ -43803,7 +43803,7 @@

🌿 Fern (link)

Forks - 129 + 128 Created @@ -43811,7 +43811,7 @@

🌿 Fern (link)

Last Updated - 2024-08-19T02:53:38Z + 2024-08-20T03:13:13Z Archived @@ -43948,7 +43948,7 @@

Swift OpenAPI Generator (link)

Stars - 1333 + 1334 Watchers @@ -43964,7 +43964,7 @@

Swift OpenAPI Generator (link)

Last Updated - 2024-08-19T00:48:12Z + 2024-08-20T00:04:22Z Archived @@ -44305,7 +44305,7 @@

Fuego (link)

Stars - 716 + 733 Watchers @@ -44321,7 +44321,7 @@

Fuego (link)

Last Updated - 2024-08-17T21:47:31Z + 2024-08-20T00:57:14Z Archived @@ -44356,7 +44356,7 @@

Huma (link)

Stars - 1790 + 1794 Watchers @@ -44372,7 +44372,7 @@

Huma (link)

Last Updated - 2024-08-19T03:20:53Z + 2024-08-19T15:47:04Z Archived @@ -44407,7 +44407,7 @@

openapi-merge (link)

Stars - 126 + 127 Watchers @@ -44423,7 +44423,7 @@

openapi-merge (link)

Last Updated - 2024-08-04T22:37:33Z + 2024-08-19T14:53:08Z Archived @@ -44525,7 +44525,7 @@

OpenAPI Qraft (link)

Last Updated - 2024-08-17T21:54:43Z + 2024-08-19T20:11:16Z Archived @@ -44576,7 +44576,7 @@

Mojolicious::Plugin::OpenAPI::Modern (l Last Updated - 2024-05-09T16:28:28Z + 2024-08-19T17:47:53Z Archived @@ -44662,7 +44662,7 @@

FastAPI (link)

Stars - 74736 + 74774 Watchers @@ -44670,7 +44670,7 @@

FastAPI (link)

Forks - 6290 + 6295 Created @@ -44678,7 +44678,7 @@

FastAPI (link)

Last Updated - 2024-08-19T02:59:59Z + 2024-08-20T03:25:40Z Archived @@ -44713,7 +44713,7 @@

swagger-ui (link)

Stars - 26199 + 26213 Watchers @@ -44721,7 +44721,7 @@

swagger-ui (link)

Forks - 8896 + 8897 Created @@ -44729,7 +44729,7 @@

swagger-ui (link)

Last Updated - 2024-08-18T21:39:45Z + 2024-08-20T03:08:47Z Archived @@ -44764,7 +44764,7 @@

Redoc (link)

Stars - 23156 + 23163 Watchers @@ -44780,7 +44780,7 @@

Redoc (link)

Last Updated - 2024-08-19T01:00:16Z + 2024-08-20T01:50:55Z Archived @@ -44815,7 +44815,7 @@

swagger-core (link)

Stars - 7369 + 7370 Watchers @@ -44831,7 +44831,7 @@

swagger-core (link)

Last Updated - 2024-08-16T08:59:27Z + 2024-08-19T09:21:15Z Archived @@ -44866,7 +44866,7 @@

mockoon (link)

Stars - 6191 + 6195 Watchers @@ -44874,7 +44874,7 @@

mockoon (link)

Forks - 361 + 362 Created @@ -44882,7 +44882,7 @@

mockoon (link)

Last Updated - 2024-08-18T19:39:28Z + 2024-08-19T20:20:36Z Archived @@ -44917,7 +44917,7 @@

OpenAPI Server Code Generator (oapi-cod Stars - 5798 + 5800 Watchers @@ -44925,7 +44925,7 @@

OpenAPI Server Code Generator (oapi-cod Forks - 827 + 826 Created @@ -44933,7 +44933,7 @@

OpenAPI Server Code Generator (oapi-cod Last Updated - 2024-08-18T20:04:41Z + 2024-08-19T18:06:45Z Archived @@ -44968,7 +44968,7 @@

OpenAPI TypeScript (link)

Stars - 5341 + 5351 Watchers @@ -44976,7 +44976,7 @@

OpenAPI TypeScript (link)

Forks - 440 + 442 Created @@ -44984,7 +44984,7 @@

OpenAPI TypeScript (link)

Last Updated - 2024-08-19T02:33:58Z + 2024-08-20T03:14:29Z Archived @@ -45019,7 +45019,7 @@

knife4j (link)

Stars - 4037 + 4038 Watchers @@ -45035,7 +45035,7 @@

knife4j (link)

Last Updated - 2024-08-17T12:10:31Z + 2024-08-19T10:15:55Z Archived @@ -45070,7 +45070,7 @@

openapi-directory (link)

Stars - 3805 + 3808 Watchers @@ -45086,7 +45086,7 @@

openapi-directory (link)

Last Updated - 2024-08-17T17:55:21Z + 2024-08-20T03:10:11Z Archived @@ -45121,7 +45121,7 @@

springdoc-openapi (link)

Stars - 3224 + 3225 Watchers @@ -45137,7 +45137,7 @@

springdoc-openapi (link)

Last Updated - 2024-08-19T02:53:28Z + 2024-08-19T10:47:26Z Archived @@ -45172,7 +45172,7 @@

uvicorn-gunicorn-fastapi-docker (link)< Stars - 2670 + 2671 Watchers @@ -45188,7 +45188,7 @@

uvicorn-gunicorn-fastapi-docker (link)< Last Updated - 2024-08-18T12:57:11Z + 2024-08-19T16:10:59Z Archived @@ -45274,7 +45274,7 @@

drf-spectacular (link)

Stars - 2265 + 2268 Watchers @@ -45290,7 +45290,7 @@

drf-spectacular (link)

Last Updated - 2024-08-17T20:36:12Z + 2024-08-19T13:38:27Z Archived @@ -45325,7 +45325,7 @@

Schemathesis (link)

Stars - 2212 + 2215 Watchers @@ -45341,7 +45341,7 @@

Schemathesis (link)

Last Updated - 2024-08-18T06:02:11Z + 2024-08-19T22:00:47Z Archived @@ -45376,7 +45376,7 @@

msgspec (link)

Stars - 2185 + 2187 Watchers @@ -45392,7 +45392,7 @@

msgspec (link)

Last Updated - 2024-08-19T02:48:10Z + 2024-08-19T20:18:49Z Archived @@ -45427,7 +45427,7 @@

gnostic (link)

Stars - 2058 + 2059 Watchers @@ -45443,7 +45443,7 @@

gnostic (link)

Last Updated - 2024-08-18T09:17:31Z + 2024-08-19T06:31:42Z Archived @@ -45478,7 +45478,7 @@

rapidoc (link)

Stars - 1638 + 1640 Watchers @@ -45494,7 +45494,7 @@

rapidoc (link)

Last Updated - 2024-08-18T17:53:52Z + 2024-08-19T15:39:38Z Archived @@ -45580,7 +45580,7 @@

openapi-generator-cli (link)

Stars - 1376 + 1379 Watchers @@ -45596,7 +45596,7 @@

openapi-generator-cli (link)

Last Updated - 2024-08-18T13:49:34Z + 2024-08-20T02:56:13Z Archived @@ -45631,7 +45631,7 @@

ogen (link)

Stars - 1250 + 1251 Watchers @@ -45647,7 +45647,7 @@

ogen (link)

Last Updated - 2024-08-17T05:28:17Z + 2024-08-19T06:47:34Z Archived @@ -45835,15 +45835,15 @@

openapi-ts (link)

Stars - 863 + 870 Watchers - 7 + 6 Forks - 70 + 69 Created @@ -45851,7 +45851,7 @@

openapi-ts (link)

Last Updated - 2024-08-19T03:20:32Z + 2024-08-19T20:00:21Z Archived @@ -45937,7 +45937,7 @@

openapi-diff (link)

Stars - 796 + 798 Watchers @@ -45953,7 +45953,7 @@

openapi-diff (link)

Last Updated - 2024-08-16T00:40:43Z + 2024-08-19T12:07:40Z Archived @@ -46200,7 +46200,7 @@

openapi.tools (link)

Forks - 314 + 315 Created @@ -46498,7 +46498,7 @@

oazapfts (link)

Stars - 485 + 486 Watchers @@ -46514,7 +46514,7 @@

oazapfts (link)

Last Updated - 2024-08-05T19:48:13Z + 2024-08-19T06:56:04Z Archived @@ -46600,7 +46600,7 @@

openapi-codegen (link)

Stars - 480 + 481 Watchers @@ -46616,7 +46616,7 @@

openapi-codegen (link)

Last Updated - 2024-08-16T10:06:49Z + 2024-08-19T06:17:18Z Archived @@ -46667,7 +46667,7 @@

stackql (link)

Last Updated - 2024-08-18T01:03:59Z + 2024-08-19T22:11:58Z Archived @@ -47263,7 +47263,7 @@

fastapi-clean-example (link)

Stars - 351 + 353 Watchers @@ -47279,7 +47279,7 @@

fastapi-clean-example (link)

Last Updated - 2024-08-19T01:42:06Z + 2024-08-19T08:11:05Z Archived @@ -47365,7 +47365,7 @@

openapi-spec-validator (link)

Stars - 331 + 332 Watchers @@ -47381,7 +47381,7 @@

openapi-spec-validator (link)

Last Updated - 2024-08-16T21:05:59Z + 2024-08-20T01:36:32Z Archived @@ -47432,7 +47432,7 @@

beacon-apis (link)

Last Updated - 2024-08-15T10:48:31Z + 2024-08-19T11:05:01Z Archived @@ -47518,7 +47518,7 @@

openapi-core (link)

Stars - 295 + 296 Watchers @@ -47534,7 +47534,7 @@

openapi-core (link)

Last Updated - 2024-08-18T00:57:17Z + 2024-08-20T01:36:31Z Archived @@ -47722,7 +47722,7 @@

chanfana (link)

Stars - 280 + 281 Watchers @@ -47738,7 +47738,7 @@

chanfana (link)

Last Updated - 2024-08-10T12:56:59Z + 2024-08-19T16:19:58Z Archived @@ -48589,7 +48589,7 @@

oas-tools (link)

Stars - 201 + 202 Watchers @@ -48605,7 +48605,7 @@

oas-tools (link)

Last Updated - 2024-08-12T19:36:07Z + 2024-08-19T06:55:38Z Archived @@ -48997,7 +48997,7 @@

flask-openapi3 (link)

Stars - 179 + 181 Watchers @@ -49013,7 +49013,7 @@

flask-openapi3 (link)

Last Updated - 2024-08-04T04:12:57Z + 2024-08-20T00:50:42Z Archived @@ -49115,7 +49115,7 @@

speakeasy (link)

Last Updated - 2024-08-16T22:11:45Z + 2024-08-19T14:15:11Z Archived @@ -49405,7 +49405,7 @@

apiclientcodegen (link)

Stars - 167 + 168 Watchers @@ -49421,7 +49421,7 @@

apiclientcodegen (link)

Last Updated - 2024-08-14T22:50:58Z + 2024-08-19T12:40:27Z Archived @@ -49864,7 +49864,7 @@

typescript-backend-toolkit (link)

Stars - 125 + 130 Watchers @@ -49872,7 +49872,7 @@

typescript-backend-toolkit (link)

Forks - 21 + 23 Created @@ -49880,7 +49880,7 @@

typescript-backend-toolkit (link)

Last Updated - 2024-08-19T03:10:59Z + 2024-08-19T18:36:53Z Archived @@ -50170,7 +50170,7 @@

awesome-jsonschema (link)

Stars - 111 + 112 Watchers @@ -50186,7 +50186,7 @@

awesome-jsonschema (link)

Last Updated - 2024-08-13T06:59:54Z + 2024-08-19T19:08:00Z Archived @@ -50798,7 +50798,7 @@

tools.openapis.org (link)

Last Updated - 2024-08-18T03:32:26Z + 2024-08-19T03:28:02Z Archived @@ -50849,7 +50849,7 @@

openapi-schema-validator (link)

Last Updated - 2024-07-31T09:32:48Z + 2024-08-20T01:36:34Z Archived @@ -50884,7 +50884,7 @@

openapi-to-plantuml (link)

Stars - 94 + 95 Watchers @@ -50900,7 +50900,7 @@

openapi-to-plantuml (link)

Last Updated - 2024-08-16T12:27:07Z + 2024-08-20T02:31:28Z Archived @@ -51716,7 +51716,7 @@

apidom (link)

Last Updated - 2024-08-17T00:02:11Z + 2024-08-19T23:27:56Z Archived @@ -51955,7 +51955,7 @@

spectral-owasp-ruleset (link)

Stars - 60 + 61 Watchers @@ -51971,7 +51971,7 @@

spectral-owasp-ruleset (link)

Last Updated - 2024-08-18T05:08:42Z + 2024-08-19T10:45:17Z Archived @@ -52124,7 +52124,7 @@

php-json-schema-model-generator (link)< Last Updated - 2024-07-24T12:13:23Z + 2024-08-19T10:16:21Z Archived @@ -52218,7 +52218,7 @@

openapi (link)

Forks - 91 + 90 Created @@ -53332,7 +53332,7 @@

libopenapi-validator (link)

Stars - 42 + 43 Watchers @@ -53340,7 +53340,7 @@

libopenapi-validator (link)

Forks - 14 + 15 Created @@ -53348,7 +53348,7 @@

libopenapi-validator (link)

Last Updated - 2024-07-31T21:03:45Z + 2024-08-19T11:27:25Z Archived @@ -54215,7 +54215,7 @@

openapi-processor-spring (link)

Last Updated - 2024-08-17T11:31:42Z + 2024-08-19T23:45:30Z Archived @@ -54623,7 +54623,7 @@

data-fair (link)

Last Updated - 2024-08-13T13:24:11Z + 2024-08-19T09:09:20Z Archived @@ -55227,7 +55227,7 @@

hcloud-openapi (link)

Forks - 3 + 4 Created @@ -57071,7 +57071,7 @@

go-oas3 (link)

Last Updated - 2024-08-14T13:26:57Z + 2024-08-19T13:57:59Z Archived @@ -57122,7 +57122,7 @@

mockoon.com (link)

Last Updated - 2024-08-14T16:12:13Z + 2024-08-19T12:52:21Z Archived @@ -57769,7 +57769,7 @@

aspnetcore.scalar (link)

Stars - 18 + 19 Watchers @@ -57785,7 +57785,7 @@

aspnetcore.scalar (link)

Last Updated - 2024-08-15T23:05:38Z + 2024-08-19T12:09:55Z Archived @@ -60131,7 +60131,7 @@

fastify-flux (link)

Last Updated - 2024-08-18T13:02:21Z + 2024-08-19T08:53:40Z Archived @@ -63140,7 +63140,7 @@

sandbox (link)

Last Updated - 2024-08-16T15:14:49Z + 2024-08-19T15:18:15Z Archived @@ -63387,7 +63387,7 @@

go-openapi-example (link)

Forks - 1 + 2 Created @@ -63591,7 +63591,7 @@

notebookmanager (link)

Forks - 4 + 5 Created @@ -64195,7 +64195,7 @@

dotnetconf22 (link)

Stars - 7 + 8 Watchers @@ -64211,7 +64211,7 @@

dotnetconf22 (link)

Last Updated - 2024-07-31T06:33:10Z + 2024-08-19T08:48:38Z Archived @@ -66796,7 +66796,7 @@

openapi-oathkeeper (link)

Stars - 5 + 6 Watchers @@ -66812,7 +66812,7 @@

openapi-oathkeeper (link)

Last Updated - 2024-08-17T11:10:23Z + 2024-08-19T23:32:36Z Archived @@ -70178,7 +70178,7 @@

public-api-docs (link)

Last Updated - 2024-08-15T17:14:49Z + 2024-08-19T13:01:30Z Archived @@ -73748,7 +73748,7 @@

restdocs-openapi3 (link)

Last Updated - 2024-08-13T01:37:01Z + 2024-08-20T02:13:19Z Archived @@ -78899,7 +78899,7 @@

trust (link)

Last Updated - 2024-08-17T21:21:00Z + 2024-08-19T17:57:10Z Archived @@ -79562,7 +79562,7 @@

goapi (link)

Last Updated - 2024-08-16T09:47:28Z + 2024-08-19T08:46:50Z Archived @@ -84560,7 +84560,7 @@

oas-preview.nvim (link)

Last Updated - 2024-08-07T22:24:29Z + 2024-08-19T23:45:26Z Archived @@ -86957,7 +86957,7 @@

spec-transformer (link)

Last Updated - 2024-08-12T10:21:49Z + 2024-08-19T11:51:41Z Archived @@ -91837,7 +91837,7 @@

utoipa (link)

Stars - 2095 + 2097 Watchers @@ -91853,7 +91853,7 @@

utoipa (link)

Last Updated - 2024-08-19T02:10:17Z + 2024-08-19T18:10:57Z Archived @@ -91955,7 +91955,7 @@

oas_rails (link)

Last Updated - 2024-08-16T10:10:42Z + 2024-08-19T14:39:32Z Archived @@ -92551,7 +92551,7 @@

orval (link)

Stars - 2736 + 2743 Watchers @@ -92559,7 +92559,7 @@

orval (link)

Forks - 307 + 308 Created @@ -92567,7 +92567,7 @@

orval (link)

Last Updated - 2024-08-18T17:04:32Z + 2024-08-20T01:55:37Z Archived @@ -94046,7 +94046,7 @@

EvoMaster (link)

Last Updated - 2024-08-17T13:37:10Z + 2024-08-19T06:52:11Z Archived @@ -96886,7 +96886,7 @@

full-stack-fastapi-template (link)

Stars - 25454 + 25483 Watchers @@ -96894,7 +96894,7 @@

full-stack-fastapi-template (link)

Forks - 4354 + 4363 Created @@ -96902,7 +96902,7 @@

full-stack-fastapi-template (link)

Last Updated - 2024-08-19T02:50:22Z + 2024-08-20T02:37:01Z Archived @@ -106933,7 +106933,7 @@

swagger-models (link)

Stars - 7369 + 7370 Watchers @@ -106949,7 +106949,7 @@

swagger-models (link)

Last Updated - 2024-08-16T08:59:27Z + 2024-08-19T09:21:15Z Archived @@ -106984,7 +106984,7 @@

Microsoft.OpenApi.net (link)

Stars - 1369 + 1370 Watchers @@ -107000,7 +107000,7 @@

Microsoft.OpenApi.net (link)

Last Updated - 2024-08-15T20:19:47Z + 2024-08-19T21:41:28Z Archived @@ -107902,7 +107902,7 @@

openapi-client-axios (link)

Stars - 543 + 545 Watchers @@ -107918,7 +107918,7 @@

openapi-client-axios (link)

Last Updated - 2024-08-16T14:20:19Z + 2024-08-20T01:38:48Z Archived @@ -109295,7 +109295,7 @@

LoopBack 4 (link)

Last Updated - 2024-08-18T03:07:10Z + 2024-08-19T18:56:09Z Archived @@ -109381,7 +109381,7 @@

RESTler (link)

Stars - 2547 + 2549 Watchers @@ -109389,7 +109389,7 @@

RESTler (link)

Forks - 287 + 289 Created @@ -109397,7 +109397,7 @@

RESTler (link)

Last Updated - 2024-08-16T10:26:19Z + 2024-08-19T10:10:56Z Archived @@ -109738,7 +109738,7 @@

ogcapi-dggs-webdev-python (link)

Stars - N/A + 1 Watchers @@ -109754,7 +109754,7 @@

ogcapi-dggs-webdev-python (link)

Last Updated - 2021-11-17T08:22:24Z + 2024-08-19T14:03:12Z Archived @@ -110766,7 +110766,7 @@

Vert.x Web API Service (link)

Forks - 530 + 531 Created diff --git a/docs/categories/auto-generators.html b/docs/categories/auto-generators.html index e647bca7..e929419e 100644 --- a/docs/categories/auto-generators.html +++ b/docs/categories/auto-generators.html @@ -227,7 +227,7 @@

Yes Yes No - 3872 + 3873 @@ -250,7 +250,7 @@

No Yes No - 4054 + 4057 @@ -273,7 +273,7 @@

No Yes No - 716 + 733 @@ -296,7 +296,7 @@

Yes Yes No - 1790 + 1794 @@ -656,7 +656,7 @@

OpenAPI DevTools (link)

Stars - 3872 + 3873 Watchers @@ -672,7 +672,7 @@

OpenAPI DevTools (link)

Last Updated - 2024-08-19T02:17:32Z + 2024-08-19T04:03:55Z Archived @@ -707,7 +707,7 @@

TypeSpec (link)

Stars - 4054 + 4057 Watchers @@ -723,7 +723,7 @@

TypeSpec (link)

Last Updated - 2024-08-19T00:41:19Z + 2024-08-20T02:14:01Z Archived @@ -758,7 +758,7 @@

Fuego (link)

Stars - 716 + 733 Watchers @@ -774,7 +774,7 @@

Fuego (link)

Last Updated - 2024-08-17T21:47:31Z + 2024-08-20T00:57:14Z Archived @@ -809,7 +809,7 @@

Huma (link)

Stars - 1790 + 1794 Watchers @@ -825,7 +825,7 @@

Huma (link)

Last Updated - 2024-08-19T03:20:53Z + 2024-08-19T15:47:04Z Archived diff --git a/docs/categories/client-implementations.html b/docs/categories/client-implementations.html index 44632234..a67f62e7 100644 --- a/docs/categories/client-implementations.html +++ b/docs/categories/client-implementations.html @@ -137,7 +137,7 @@

No No No - 543 + 545 @@ -293,7 +293,7 @@

openapi-client-axios (link)

Stars - 543 + 545 Watchers @@ -309,7 +309,7 @@

openapi-client-axios (link)

Last Updated - 2024-08-16T14:20:19Z + 2024-08-20T01:38:48Z Archived diff --git a/docs/categories/code-generators.html b/docs/categories/code-generators.html index 5dd0b011..4c331766 100644 --- a/docs/categories/code-generators.html +++ b/docs/categories/code-generators.html @@ -114,7 +114,7 @@

No Yes Yes - 21044 + 21058 @@ -137,7 +137,7 @@

Yes Yes No - 139 + 140 @@ -160,7 +160,7 @@

No Yes Yes - 2729 + 2742 @@ -248,7 +248,7 @@

No Yes Yes - 16839 + 16843 @@ -340,7 +340,7 @@

Yes Yes Yes - 2532 + 2534 @@ -386,7 +386,7 @@

Yes Yes No - 26199 + 26213 @@ -407,7 +407,7 @@

No Yes No - 7369 + 7370 @@ -430,7 +430,7 @@

No Yes No - 5798 + 5800 @@ -472,7 +472,7 @@

No Yes No - 1376 + 1379 @@ -1381,7 +1381,7 @@

No Yes Yes - 2736 + 2743 @@ -1868,7 +1868,7 @@

No No No - 7369 + 7370 @@ -2168,7 +2168,7 @@

OpenAPI Generator (link)

Stars - 21044 + 21058 Watchers @@ -2176,7 +2176,7 @@

OpenAPI Generator (link)

Forks - 6380 + 6382 Created @@ -2184,7 +2184,7 @@

OpenAPI Generator (link)

Last Updated - 2024-08-18T21:46:05Z + 2024-08-20T01:50:16Z Archived @@ -2219,7 +2219,7 @@

OpenAPI JSON Schema Generator (link) Stars - 139 + 140 Watchers @@ -2235,7 +2235,7 @@

OpenAPI JSON Schema Generator (link) Last Updated - 2024-08-16T22:44:23Z + 2024-08-19T06:45:35Z Archived @@ -2270,7 +2270,7 @@

Kiota Api Client Generator (link)

Stars - 2729 + 2742 Watchers @@ -2286,7 +2286,7 @@

Kiota Api Client Generator (link)

Last Updated - 2024-08-19T01:19:55Z + 2024-08-20T02:16:53Z Archived @@ -2474,7 +2474,7 @@

Swagger-Codegen (link)

Stars - 16839 + 16843 Watchers @@ -2490,7 +2490,7 @@

Swagger-Codegen (link)

Last Updated - 2024-08-18T23:59:04Z + 2024-08-20T02:40:36Z Archived @@ -2678,7 +2678,7 @@

🌿 Fern (link)

Stars - 2532 + 2534 Watchers @@ -2686,7 +2686,7 @@

🌿 Fern (link)

Forks - 129 + 128 Created @@ -2694,7 +2694,7 @@

🌿 Fern (link)

Last Updated - 2024-08-19T02:53:38Z + 2024-08-20T03:13:13Z Archived @@ -2745,7 +2745,7 @@

OpenAPI Qraft (link)

Last Updated - 2024-08-17T21:54:43Z + 2024-08-19T20:11:16Z Archived @@ -2780,7 +2780,7 @@

swagger-ui (link)

Stars - 26199 + 26213 Watchers @@ -2788,7 +2788,7 @@

swagger-ui (link)

Forks - 8896 + 8897 Created @@ -2796,7 +2796,7 @@

swagger-ui (link)

Last Updated - 2024-08-18T21:39:45Z + 2024-08-20T03:08:47Z Archived @@ -2831,7 +2831,7 @@

swagger-core (link)

Stars - 7369 + 7370 Watchers @@ -2847,7 +2847,7 @@

swagger-core (link)

Last Updated - 2024-08-16T08:59:27Z + 2024-08-19T09:21:15Z Archived @@ -2882,7 +2882,7 @@

OpenAPI Server Code Generator (oapi-cod Stars - 5798 + 5800 Watchers @@ -2890,7 +2890,7 @@

OpenAPI Server Code Generator (oapi-cod Forks - 827 + 826 Created @@ -2898,7 +2898,7 @@

OpenAPI Server Code Generator (oapi-cod Last Updated - 2024-08-18T20:04:41Z + 2024-08-19T18:06:45Z Archived @@ -2984,7 +2984,7 @@

openapi-generator-cli (link)

Stars - 1376 + 1379 Watchers @@ -3000,7 +3000,7 @@

openapi-generator-cli (link)

Last Updated - 2024-08-18T13:49:34Z + 2024-08-20T02:56:13Z Archived @@ -5177,7 +5177,7 @@

orval (link)

Stars - 2736 + 2743 Watchers @@ -5185,7 +5185,7 @@

orval (link)

Forks - 307 + 308 Created @@ -5193,7 +5193,7 @@

orval (link)

Last Updated - 2024-08-18T17:04:32Z + 2024-08-20T01:55:37Z Archived @@ -6350,7 +6350,7 @@

swagger-models (link)

Stars - 7369 + 7370 Watchers @@ -6366,7 +6366,7 @@

swagger-models (link)

Last Updated - 2024-08-16T08:59:27Z + 2024-08-19T09:21:15Z Archived diff --git a/docs/categories/converters.html b/docs/categories/converters.html index 7cb355c3..27d8ae81 100644 --- a/docs/categories/converters.html +++ b/docs/categories/converters.html @@ -221,7 +221,7 @@

No Yes No - 629 + 630 @@ -267,7 +267,7 @@

No No Yes - 9427 + 9428 @@ -380,7 +380,7 @@

No Yes No - 237 + 236 @@ -424,7 +424,7 @@

Yes Yes Yes - 902 + 903 @@ -447,7 +447,7 @@

Yes Yes No - 88 + 89 @@ -558,7 +558,7 @@

No Yes No - 126 + 127 @@ -581,7 +581,7 @@

Yes Yes Yes - 5341 + 5351 @@ -602,7 +602,7 @@

No Yes No - 2058 + 2059 @@ -665,7 +665,7 @@

No Yes No - 111 + 112 @@ -1447,7 +1447,7 @@

portman (link)

Stars - 629 + 630 Watchers @@ -1463,7 +1463,7 @@

portman (link)

Last Updated - 2024-08-18T19:05:50Z + 2024-08-19T17:22:59Z Archived @@ -1549,7 +1549,7 @@

go-swagger (link)

Stars - 9427 + 9428 Watchers @@ -1565,7 +1565,7 @@

go-swagger (link)

Last Updated - 2024-08-18T14:14:23Z + 2024-08-19T11:51:28Z Archived @@ -1804,7 +1804,7 @@

OpenAPI Schema to JSON Schema (link) Stars - 237 + 236 Watchers @@ -1820,7 +1820,7 @@

OpenAPI Schema to JSON Schema (link) Last Updated - 2024-08-15T20:14:23Z + 2024-08-19T07:38:15Z Archived @@ -1906,7 +1906,7 @@

openapi-to-postman (link)

Stars - 902 + 903 Watchers @@ -1922,7 +1922,7 @@

openapi-to-postman (link)

Last Updated - 2024-08-16T18:46:53Z + 2024-08-19T07:23:26Z Archived @@ -1957,7 +1957,7 @@

openapi-format (link)

Stars - 88 + 89 Watchers @@ -1973,7 +1973,7 @@

openapi-format (link)

Last Updated - 2024-08-17T09:41:03Z + 2024-08-19T16:18:06Z Archived @@ -2212,7 +2212,7 @@

openapi-merge (link)

Stars - 126 + 127 Watchers @@ -2228,7 +2228,7 @@

openapi-merge (link)

Last Updated - 2024-08-04T22:37:33Z + 2024-08-19T14:53:08Z Archived @@ -2263,7 +2263,7 @@

OpenAPI TypeScript (link)

Stars - 5341 + 5351 Watchers @@ -2271,7 +2271,7 @@

OpenAPI TypeScript (link)

Forks - 440 + 442 Created @@ -2279,7 +2279,7 @@

OpenAPI TypeScript (link)

Last Updated - 2024-08-19T02:33:58Z + 2024-08-20T03:14:29Z Archived @@ -2314,7 +2314,7 @@

gnostic (link)

Stars - 2058 + 2059 Watchers @@ -2330,7 +2330,7 @@

gnostic (link)

Last Updated - 2024-08-18T09:17:31Z + 2024-08-19T06:31:42Z Archived @@ -2467,7 +2467,7 @@

awesome-jsonschema (link)

Stars - 111 + 112 Watchers @@ -2483,7 +2483,7 @@

awesome-jsonschema (link)

Last Updated - 2024-08-13T06:59:54Z + 2024-08-19T19:08:00Z Archived diff --git a/docs/categories/data-validators.html b/docs/categories/data-validators.html index 41bbaebb..c1dfd8b4 100644 --- a/docs/categories/data-validators.html +++ b/docs/categories/data-validators.html @@ -112,7 +112,7 @@

No Yes Yes - 3412 + 3413 @@ -133,7 +133,7 @@

No Yes No - 896 + 897 @@ -242,7 +242,7 @@

Yes Yes No - 101 + 102 @@ -288,7 +288,7 @@

No Yes Yes - 2527 + 2528 @@ -506,7 +506,7 @@

Yes Yes Yes - 535 + 538 @@ -552,7 +552,7 @@

Yes Yes Yes - 166 + 167 @@ -642,7 +642,7 @@

No Yes No - 716 + 733 @@ -665,7 +665,7 @@

Yes Yes No - 1790 + 1794 @@ -709,7 +709,7 @@

Yes Yes No - 295 + 296 @@ -1998,7 +1998,7 @@

tsoa (link)

Stars - 3412 + 3413 Watchers @@ -2014,7 +2014,7 @@

tsoa (link)

Last Updated - 2024-08-18T07:35:59Z + 2024-08-19T11:10:06Z Archived @@ -2049,7 +2049,7 @@

express-openapi-validator (link)

Stars - 896 + 897 Watchers @@ -2065,7 +2065,7 @@

express-openapi-validator (link)

Last Updated - 2024-08-12T16:16:33Z + 2024-08-19T08:29:17Z Archived @@ -2304,7 +2304,7 @@

openapi_first (link)

Stars - 101 + 102 Watchers @@ -2320,7 +2320,7 @@

openapi_first (link)

Last Updated - 2024-08-18T14:35:42Z + 2024-08-19T10:52:13Z Archived @@ -2406,7 +2406,7 @@

kin-openapi (link)

Stars - 2527 + 2528 Watchers @@ -2414,7 +2414,7 @@

kin-openapi (link)

Forks - 421 + 422 Created @@ -2422,7 +2422,7 @@

kin-openapi (link)

Last Updated - 2024-08-16T09:18:15Z + 2024-08-19T17:31:47Z Archived @@ -2916,7 +2916,7 @@

vacuum (link)

Stars - 535 + 538 Watchers @@ -2932,7 +2932,7 @@

vacuum (link)

Last Updated - 2024-08-18T09:01:36Z + 2024-08-19T17:07:43Z Archived @@ -3018,7 +3018,7 @@

openapi-changes (link)

Stars - 166 + 167 Watchers @@ -3034,7 +3034,7 @@

openapi-changes (link)

Last Updated - 2024-08-10T23:17:53Z + 2024-08-19T15:21:43Z Archived @@ -3222,7 +3222,7 @@

Fuego (link)

Stars - 716 + 733 Watchers @@ -3238,7 +3238,7 @@

Fuego (link)

Last Updated - 2024-08-17T21:47:31Z + 2024-08-20T00:57:14Z Archived @@ -3273,7 +3273,7 @@

Huma (link)

Stars - 1790 + 1794 Watchers @@ -3289,7 +3289,7 @@

Huma (link)

Last Updated - 2024-08-19T03:20:53Z + 2024-08-19T15:47:04Z Archived @@ -3375,7 +3375,7 @@

openapi-core (link)

Stars - 295 + 296 Watchers @@ -3391,7 +3391,7 @@

openapi-core (link)

Last Updated - 2024-08-18T00:57:17Z + 2024-08-20T01:36:31Z Archived @@ -4207,7 +4207,7 @@

fastify-flux (link)

Last Updated - 2024-08-18T13:02:21Z + 2024-08-19T08:53:40Z Archived diff --git a/docs/categories/description-validators.html b/docs/categories/description-validators.html index 1ec66a4c..7c521634 100644 --- a/docs/categories/description-validators.html +++ b/docs/categories/description-validators.html @@ -131,7 +131,7 @@

Yes Yes No - 185 + 191 @@ -172,7 +172,7 @@

No Yes No - 896 + 897 @@ -281,7 +281,7 @@

Yes Yes Yes - 889 + 890 @@ -459,7 +459,7 @@

Yes Yes Yes - 535 + 538 @@ -1759,7 +1759,7 @@

Rate My OpenAPI (link)

Stars - 185 + 191 Watchers @@ -1775,7 +1775,7 @@

Rate My OpenAPI (link)

Last Updated - 2024-08-18T19:11:05Z + 2024-08-19T12:58:58Z Archived @@ -1861,7 +1861,7 @@

express-openapi-validator (link)

Stars - 896 + 897 Watchers @@ -1877,7 +1877,7 @@

express-openapi-validator (link)

Last Updated - 2024-08-12T16:16:33Z + 2024-08-19T08:29:17Z Archived @@ -1971,7 +1971,7 @@

Spectral (link)

Forks - 234 + 235 Created @@ -2116,7 +2116,7 @@

Redocly CLI (link)

Stars - 889 + 890 Watchers @@ -2132,7 +2132,7 @@

Redocly CLI (link)

Last Updated - 2024-08-18T22:22:34Z + 2024-08-19T12:15:28Z Archived @@ -2524,7 +2524,7 @@

vacuum (link)

Stars - 535 + 538 Watchers @@ -2540,7 +2540,7 @@

vacuum (link)

Last Updated - 2024-08-18T09:01:36Z + 2024-08-19T17:07:43Z Archived @@ -2838,7 +2838,7 @@

openapi.tools (link)

Forks - 314 + 315 Created diff --git a/docs/categories/documentation.html b/docs/categories/documentation.html index d4b90a28..4925b808 100644 --- a/docs/categories/documentation.html +++ b/docs/categories/documentation.html @@ -188,7 +188,7 @@

Yes Yes Yes - 5433 + 5446 @@ -211,7 +211,7 @@

No Yes No - 1639 + 1641 @@ -255,7 +255,7 @@

Yes Yes Yes - 23156 + 23163 @@ -540,7 +540,7 @@

Yes Yes Yes - 889 + 890 @@ -630,7 +630,7 @@

Yes Yes No - 3872 + 3873 @@ -653,7 +653,7 @@

Yes Yes No - 731 + 733 @@ -718,7 +718,7 @@

Yes Yes Yes - 1680 + 1681 @@ -873,7 +873,7 @@

Yes Yes Yes - 166 + 167 @@ -955,7 +955,7 @@

Yes Yes Yes - 2532 + 2534 @@ -1066,7 +1066,7 @@

No Yes No - 1638 + 1640 @@ -2607,7 +2607,7 @@

Scalar (link)

Stars - 5433 + 5446 Watchers @@ -2623,7 +2623,7 @@

Scalar (link)

Last Updated - 2024-08-19T00:39:13Z + 2024-08-20T03:14:38Z Archived @@ -2658,7 +2658,7 @@

Scribe (link)

Stars - 1639 + 1641 Watchers @@ -2674,7 +2674,7 @@

Scribe (link)

Last Updated - 2024-08-18T15:39:34Z + 2024-08-20T00:56:05Z Archived @@ -2760,7 +2760,7 @@

ReDoc (link)

Stars - 23156 + 23163 Watchers @@ -2776,7 +2776,7 @@

ReDoc (link)

Last Updated - 2024-08-19T01:00:16Z + 2024-08-20T01:50:55Z Archived @@ -2929,7 +2929,7 @@

OpenAPI-UI (link)

Last Updated - 2024-08-17T14:30:14Z + 2024-08-19T15:17:05Z Archived @@ -3423,7 +3423,7 @@

Redocly CLI (link)

Stars - 889 + 890 Watchers @@ -3439,7 +3439,7 @@

Redocly CLI (link)

Last Updated - 2024-08-18T22:22:34Z + 2024-08-19T12:15:28Z Archived @@ -3627,7 +3627,7 @@

OpenAPI DevTools (link)

Stars - 3872 + 3873 Watchers @@ -3643,7 +3643,7 @@

OpenAPI DevTools (link)

Last Updated - 2024-08-19T02:17:32Z + 2024-08-19T04:03:55Z Archived @@ -3678,7 +3678,7 @@

Restish (link)

Stars - 731 + 733 Watchers @@ -3694,7 +3694,7 @@

Restish (link)

Last Updated - 2024-08-18T17:27:07Z + 2024-08-20T00:18:49Z Archived @@ -3831,7 +3831,7 @@

Elements (link)

Stars - 1680 + 1681 Watchers @@ -3847,7 +3847,7 @@

Elements (link)

Last Updated - 2024-08-19T02:37:51Z + 2024-08-19T21:02:48Z Archived @@ -4188,7 +4188,7 @@

openapi-changes (link)

Stars - 166 + 167 Watchers @@ -4204,7 +4204,7 @@

openapi-changes (link)

Last Updated - 2024-08-10T23:17:53Z + 2024-08-19T15:21:43Z Archived @@ -4392,7 +4392,7 @@

🌿 Fern (link)

Stars - 2532 + 2534 Watchers @@ -4400,7 +4400,7 @@

🌿 Fern (link)

Forks - 129 + 128 Created @@ -4408,7 +4408,7 @@

🌿 Fern (link)

Last Updated - 2024-08-19T02:53:38Z + 2024-08-20T03:13:13Z Archived @@ -4647,7 +4647,7 @@

rapidoc (link)

Stars - 1638 + 1640 Watchers @@ -4663,7 +4663,7 @@

rapidoc (link)

Last Updated - 2024-08-18T17:53:52Z + 2024-08-19T15:39:38Z Archived @@ -4714,7 +4714,7 @@

beacon-apis (link)

Last Updated - 2024-08-15T10:48:31Z + 2024-08-19T11:05:01Z Archived @@ -5122,7 +5122,7 @@

data-fair (link)

Last Updated - 2024-08-13T13:24:11Z + 2024-08-19T09:09:20Z Archived diff --git a/docs/categories/dsl.html b/docs/categories/dsl.html index 4bad398a..7362c74d 100644 --- a/docs/categories/dsl.html +++ b/docs/categories/dsl.html @@ -127,7 +127,7 @@

No Yes Yes - 552 + 553 @@ -415,7 +415,7 @@

Spot (link)

Stars - 552 + 553 Watchers @@ -431,7 +431,7 @@

Spot (link)

Last Updated - 2024-08-18T07:49:02Z + 2024-08-19T17:38:58Z Archived diff --git a/docs/categories/low-level-tooling.html b/docs/categories/low-level-tooling.html index 85c0f7d2..d032ed12 100644 --- a/docs/categories/low-level-tooling.html +++ b/docs/categories/low-level-tooling.html @@ -91,7 +91,7 @@

No Yes No - 3224 + 3225 @@ -1298,7 +1298,7 @@

No No No - 7369 + 7370 @@ -1321,7 +1321,7 @@

No No No - 1369 + 1370 @@ -1461,7 +1461,7 @@

springdoc-openapi (link)

Stars - 3224 + 3225 Watchers @@ -1477,7 +1477,7 @@

springdoc-openapi (link)

Last Updated - 2024-08-19T02:53:28Z + 2024-08-19T10:47:26Z Archived @@ -4368,7 +4368,7 @@

swagger-models (link)

Stars - 7369 + 7370 Watchers @@ -4384,7 +4384,7 @@

swagger-models (link)

Last Updated - 2024-08-16T08:59:27Z + 2024-08-19T09:21:15Z Archived @@ -4419,7 +4419,7 @@

Microsoft.OpenApi.net (link)

Stars - 1369 + 1370 Watchers @@ -4435,7 +4435,7 @@

Microsoft.OpenApi.net (link)

Last Updated - 2024-08-15T20:19:47Z + 2024-08-19T21:41:28Z Archived diff --git a/docs/categories/mock-testing.html b/docs/categories/mock-testing.html index 5d1448fb..1047f39c 100644 --- a/docs/categories/mock-testing.html +++ b/docs/categories/mock-testing.html @@ -91,7 +91,7 @@

Yes Yes Yes - 1313 + 1314 @@ -145,11 +145,11 @@

Microcks (link)

Stars - 1313 + 1314 Watchers - 23 + 22 Forks @@ -161,7 +161,7 @@

Microcks (link)

Last Updated - 2024-08-18T14:19:47Z + 2024-08-19T07:39:04Z Archived diff --git a/docs/categories/mock.html b/docs/categories/mock.html index 6c7c3984..24b6c2c6 100644 --- a/docs/categories/mock.html +++ b/docs/categories/mock.html @@ -110,7 +110,7 @@

Yes Yes Yes - 4176 + 4177 @@ -543,7 +543,7 @@

No Yes Yes - 2736 + 2743 @@ -821,7 +821,7 @@

Prism (link)

Stars - 4176 + 4177 Watchers @@ -837,7 +837,7 @@

Prism (link)

Last Updated - 2024-08-17T07:24:27Z + 2024-08-19T04:00:29Z Archived @@ -1841,7 +1841,7 @@

orval (link)

Stars - 2736 + 2743 Watchers @@ -1849,7 +1849,7 @@

orval (link)

Forks - 307 + 308 Created @@ -1857,7 +1857,7 @@

orval (link)

Last Updated - 2024-08-18T17:04:32Z + 2024-08-20T01:55:37Z Archived diff --git a/docs/categories/parsers.html b/docs/categories/parsers.html index 936b20bc..14a133b5 100644 --- a/docs/categories/parsers.html +++ b/docs/categories/parsers.html @@ -91,7 +91,7 @@

Yes Yes Yes - 23156 + 23163 @@ -114,7 +114,7 @@

No Yes No - 656 + 657 @@ -223,7 +223,7 @@

No Yes Yes - 552 + 553 @@ -246,7 +246,7 @@

Yes Yes No - 139 + 140 @@ -474,7 +474,7 @@

No Yes Yes - 3412 + 3413 @@ -608,7 +608,7 @@

No Yes Yes - 1082 + 1083 @@ -719,7 +719,7 @@

No Yes Yes - 2527 + 2528 @@ -828,7 +828,7 @@

No Yes Yes - 1369 + 1370 @@ -918,7 +918,7 @@

No No Yes - 9427 + 9428 @@ -1056,7 +1056,7 @@

No Yes No - 525 + 526 @@ -1079,7 +1079,7 @@

No Yes No - 237 + 236 @@ -1259,7 +1259,7 @@

Yes Yes Yes - 902 + 903 @@ -1282,7 +1282,7 @@

Yes Yes No - 88 + 89 @@ -1552,7 +1552,7 @@

Yes Yes Yes - 409 + 410 @@ -1778,7 +1778,7 @@

No Yes No - 126 + 127 @@ -1824,7 +1824,7 @@

Yes Yes No - 23156 + 23163 @@ -1845,7 +1845,7 @@

No Yes No - 1376 + 1379 @@ -1866,7 +1866,7 @@

No Yes No - 1250 + 1251 @@ -1950,7 +1950,7 @@

No Yes No - 796 + 798 @@ -2055,7 +2055,7 @@

No Yes No - 485 + 486 @@ -2181,7 +2181,7 @@

Yes Yes No - 331 + 332 @@ -2223,7 +2223,7 @@

Yes Yes No - 295 + 296 @@ -2372,7 +2372,7 @@

No Yes No - 201 + 202 @@ -3325,7 +3325,7 @@

Yes Yes No - 42 + 43 @@ -4146,7 +4146,7 @@

No Yes No - 18 + 19 @@ -5538,7 +5538,7 @@

No Yes No - 5 + 6 @@ -8940,7 +8940,7 @@

Yes Yes No - 2095 + 2097 @@ -10456,7 +10456,7 @@

No No No - 1369 + 1370 @@ -10548,7 +10548,7 @@

No No No - 543 + 545 @@ -10944,7 +10944,7 @@

ReDoc (link)

Stars - 23156 + 23163 Watchers @@ -10960,7 +10960,7 @@

ReDoc (link)

Last Updated - 2024-08-19T01:00:16Z + 2024-08-20T01:50:55Z Archived @@ -10995,7 +10995,7 @@

oasdiff (link)

Stars - 656 + 657 Watchers @@ -11011,7 +11011,7 @@

oasdiff (link)

Last Updated - 2024-08-17T20:26:44Z + 2024-08-19T09:35:43Z Archived @@ -11250,7 +11250,7 @@

Spot (link)

Stars - 552 + 553 Watchers @@ -11266,7 +11266,7 @@

Spot (link)

Last Updated - 2024-08-18T07:49:02Z + 2024-08-19T17:38:58Z Archived @@ -11301,7 +11301,7 @@

OpenAPI JSON Schema Generator (link) Stars - 139 + 140 Watchers @@ -11317,7 +11317,7 @@

OpenAPI JSON Schema Generator (link) Last Updated - 2024-08-16T22:44:23Z + 2024-08-19T06:45:35Z Archived @@ -11811,7 +11811,7 @@

tsoa (link)

Stars - 3412 + 3413 Watchers @@ -11827,7 +11827,7 @@

tsoa (link)

Last Updated - 2024-08-18T07:35:59Z + 2024-08-19T11:10:06Z Archived @@ -12117,7 +12117,7 @@

APIDevTools/swagger-parser (link)

Stars - 1082 + 1083 Watchers @@ -12133,7 +12133,7 @@

APIDevTools/swagger-parser (link)

Last Updated - 2024-08-18T06:40:41Z + 2024-08-19T19:42:22Z Archived @@ -12372,7 +12372,7 @@

kin-openapi (link)

Stars - 2527 + 2528 Watchers @@ -12380,7 +12380,7 @@

kin-openapi (link)

Forks - 421 + 422 Created @@ -12388,7 +12388,7 @@

kin-openapi (link)

Last Updated - 2024-08-16T09:18:15Z + 2024-08-19T17:31:47Z Archived @@ -12627,7 +12627,7 @@

Microsoft/OpenAPI.NET (link)

Stars - 1369 + 1370 Watchers @@ -12643,7 +12643,7 @@

Microsoft/OpenAPI.NET (link)

Last Updated - 2024-08-15T20:19:47Z + 2024-08-19T21:41:28Z Archived @@ -12831,7 +12831,7 @@

go-swagger (link)

Stars - 9427 + 9428 Watchers @@ -12847,7 +12847,7 @@

go-swagger (link)

Last Updated - 2024-08-18T14:14:23Z + 2024-08-19T11:51:28Z Archived @@ -13137,7 +13137,7 @@

openapi-fuzzer (link)

Stars - 525 + 526 Watchers @@ -13153,7 +13153,7 @@

openapi-fuzzer (link)

Last Updated - 2024-08-05T08:45:17Z + 2024-08-19T05:33:45Z Archived @@ -13188,7 +13188,7 @@

OpenAPI Schema to JSON Schema (link) Stars - 237 + 236 Watchers @@ -13204,7 +13204,7 @@

OpenAPI Schema to JSON Schema (link) Last Updated - 2024-08-15T20:14:23Z + 2024-08-19T07:38:15Z Archived @@ -13596,7 +13596,7 @@

openapi-to-postman (link)

Stars - 902 + 903 Watchers @@ -13612,7 +13612,7 @@

openapi-to-postman (link)

Last Updated - 2024-08-16T18:46:53Z + 2024-08-19T07:23:26Z Archived @@ -13647,7 +13647,7 @@

openapi-format (link)

Stars - 88 + 89 Watchers @@ -13663,7 +13663,7 @@

openapi-format (link)

Last Updated - 2024-08-17T09:41:03Z + 2024-08-19T16:18:06Z Archived @@ -14259,7 +14259,7 @@

libopenapi (link)

Stars - 409 + 410 Watchers @@ -14275,7 +14275,7 @@

libopenapi (link)

Last Updated - 2024-08-16T08:52:10Z + 2024-08-19T13:50:25Z Archived @@ -14769,7 +14769,7 @@

openapi-merge (link)

Stars - 126 + 127 Watchers @@ -14785,7 +14785,7 @@

openapi-merge (link)

Last Updated - 2024-08-04T22:37:33Z + 2024-08-19T14:53:08Z Archived @@ -14871,7 +14871,7 @@

Redoc (link)

Stars - 23156 + 23163 Watchers @@ -14887,7 +14887,7 @@

Redoc (link)

Last Updated - 2024-08-19T01:00:16Z + 2024-08-20T01:50:55Z Archived @@ -14922,7 +14922,7 @@

openapi-generator-cli (link)

Stars - 1376 + 1379 Watchers @@ -14938,7 +14938,7 @@

openapi-generator-cli (link)

Last Updated - 2024-08-18T13:49:34Z + 2024-08-20T02:56:13Z Archived @@ -14973,7 +14973,7 @@

ogen (link)

Stars - 1250 + 1251 Watchers @@ -14989,7 +14989,7 @@

ogen (link)

Last Updated - 2024-08-17T05:28:17Z + 2024-08-19T06:47:34Z Archived @@ -15177,7 +15177,7 @@

openapi-diff (link)

Stars - 796 + 798 Watchers @@ -15193,7 +15193,7 @@

openapi-diff (link)

Last Updated - 2024-08-16T00:40:43Z + 2024-08-19T12:07:40Z Archived @@ -15432,7 +15432,7 @@

oazapfts (link)

Stars - 485 + 486 Watchers @@ -15448,7 +15448,7 @@

oazapfts (link)

Last Updated - 2024-08-05T19:48:13Z + 2024-08-19T06:56:04Z Archived @@ -15738,7 +15738,7 @@

openapi-spec-validator (link)

Stars - 331 + 332 Watchers @@ -15754,7 +15754,7 @@

openapi-spec-validator (link)

Last Updated - 2024-08-16T21:05:59Z + 2024-08-20T01:36:32Z Archived @@ -15840,7 +15840,7 @@

openapi-core (link)

Stars - 295 + 296 Watchers @@ -15856,7 +15856,7 @@

openapi-core (link)

Last Updated - 2024-08-18T00:57:17Z + 2024-08-20T01:36:31Z Archived @@ -16197,7 +16197,7 @@

oas-tools (link)

Stars - 201 + 202 Watchers @@ -16213,7 +16213,7 @@

oas-tools (link)

Last Updated - 2024-08-12T19:36:07Z + 2024-08-19T06:55:38Z Archived @@ -16468,7 +16468,7 @@

speakeasy (link)

Last Updated - 2024-08-16T22:11:45Z + 2024-08-19T14:15:11Z Archived @@ -17284,7 +17284,7 @@

openapi-schema-validator (link)

Last Updated - 2024-07-31T09:32:48Z + 2024-08-20T01:36:34Z Archived @@ -17794,7 +17794,7 @@

apidom (link)

Last Updated - 2024-08-17T00:02:11Z + 2024-08-19T23:27:56Z Archived @@ -18092,7 +18092,7 @@

openapi (link)

Forks - 91 + 90 Created @@ -18492,7 +18492,7 @@

libopenapi-validator (link)

Stars - 42 + 43 Watchers @@ -18500,7 +18500,7 @@

libopenapi-validator (link)

Forks - 14 + 15 Created @@ -18508,7 +18508,7 @@

libopenapi-validator (link)

Last Updated - 2024-07-31T21:03:45Z + 2024-08-19T11:27:25Z Archived @@ -20242,7 +20242,7 @@

go-oas3 (link)

Last Updated - 2024-08-14T13:26:57Z + 2024-08-19T13:57:59Z Archived @@ -20481,7 +20481,7 @@

aspnetcore.scalar (link)

Stars - 18 + 19 Watchers @@ -20497,7 +20497,7 @@

aspnetcore.scalar (link)

Last Updated - 2024-08-15T23:05:38Z + 2024-08-19T12:09:55Z Archived @@ -21568,7 +21568,7 @@

fastify-flux (link)

Last Updated - 2024-08-18T13:02:21Z + 2024-08-19T08:53:40Z Archived @@ -22631,7 +22631,7 @@

go-openapi-example (link)

Forks - 1 + 2 Created @@ -23847,7 +23847,7 @@

openapi-oathkeeper (link)

Stars - 5 + 6 Watchers @@ -23863,7 +23863,7 @@

openapi-oathkeeper (link)

Last Updated - 2024-08-17T11:10:23Z + 2024-08-19T23:32:36Z Archived @@ -27739,7 +27739,7 @@

trust (link)

Last Updated - 2024-08-17T21:21:00Z + 2024-08-19T17:57:10Z Archived @@ -27943,7 +27943,7 @@

goapi (link)

Last Updated - 2024-08-16T09:47:28Z + 2024-08-19T08:46:50Z Archived @@ -29677,7 +29677,7 @@

oas-preview.nvim (link)

Last Updated - 2024-08-07T22:24:29Z + 2024-08-19T23:45:26Z Archived @@ -30340,7 +30340,7 @@

spec-transformer (link)

Last Updated - 2024-08-12T10:21:49Z + 2024-08-19T11:51:41Z Archived @@ -32109,7 +32109,7 @@

utoipa (link)

Stars - 2095 + 2097 Watchers @@ -32125,7 +32125,7 @@

utoipa (link)

Last Updated - 2024-08-19T02:10:17Z + 2024-08-19T18:10:57Z Archived @@ -32176,7 +32176,7 @@

oas_rails (link)

Last Updated - 2024-08-16T10:10:42Z + 2024-08-19T14:39:32Z Archived @@ -35781,7 +35781,7 @@

Microsoft.OpenApi.net (link)

Stars - 1369 + 1370 Watchers @@ -35797,7 +35797,7 @@

Microsoft.OpenApi.net (link)

Last Updated - 2024-08-15T20:19:47Z + 2024-08-19T21:41:28Z Archived @@ -35985,7 +35985,7 @@

openapi-client-axios (link)

Stars - 543 + 545 Watchers @@ -36001,7 +36001,7 @@

openapi-client-axios (link)

Last Updated - 2024-08-16T14:20:19Z + 2024-08-20T01:38:48Z Archived diff --git a/docs/categories/sdk.html b/docs/categories/sdk.html index 4b303eb1..aba4d448 100644 --- a/docs/categories/sdk.html +++ b/docs/categories/sdk.html @@ -114,7 +114,7 @@

No Yes Yes - 21044 + 21058 @@ -137,7 +137,7 @@

Yes Yes No - 139 + 140 @@ -160,7 +160,7 @@

No Yes Yes - 2729 + 2742 @@ -206,7 +206,7 @@

Yes Yes Yes - 1313 + 1314 @@ -290,7 +290,7 @@

No No Yes - 9427 + 9428 @@ -359,7 +359,7 @@

No Yes Yes - 6662 + 6663 @@ -403,7 +403,7 @@

No Yes Yes - 4568 + 4569 @@ -514,7 +514,7 @@

No Yes Yes - 12407 + 12411 @@ -742,7 +742,7 @@

Yes Yes Yes - 2532 + 2534 @@ -809,7 +809,7 @@

Yes Yes No - 1333 + 1334 @@ -855,7 +855,7 @@

Yes Yes Yes - 5341 + 5351 @@ -876,7 +876,7 @@

No Yes No - 4037 + 4038 @@ -897,7 +897,7 @@

No Yes No - 3805 + 3808 @@ -918,7 +918,7 @@

No Yes No - 863 + 870 @@ -1065,7 +1065,7 @@

No Yes No - 167 + 168 @@ -1086,7 +1086,7 @@

No Yes No - 94 + 95 @@ -1527,7 +1527,7 @@

No Yes No - 7 + 8 @@ -3146,7 +3146,7 @@

OpenAPI Generator (link)

Stars - 21044 + 21058 Watchers @@ -3154,7 +3154,7 @@

OpenAPI Generator (link)

Forks - 6380 + 6382 Created @@ -3162,7 +3162,7 @@

OpenAPI Generator (link)

Last Updated - 2024-08-18T21:46:05Z + 2024-08-20T01:50:16Z Archived @@ -3197,7 +3197,7 @@

OpenAPI JSON Schema Generator (link) Stars - 139 + 140 Watchers @@ -3213,7 +3213,7 @@

OpenAPI JSON Schema Generator (link) Last Updated - 2024-08-16T22:44:23Z + 2024-08-19T06:45:35Z Archived @@ -3248,7 +3248,7 @@

Kiota Api Client Generator (link)

Stars - 2729 + 2742 Watchers @@ -3264,7 +3264,7 @@

Kiota Api Client Generator (link)

Last Updated - 2024-08-19T01:19:55Z + 2024-08-20T02:16:53Z Archived @@ -3350,11 +3350,11 @@

Microcks (link)

Stars - 1313 + 1314 Watchers - 23 + 22 Forks @@ -3366,7 +3366,7 @@

Microcks (link)

Last Updated - 2024-08-18T14:19:47Z + 2024-08-19T07:39:04Z Archived @@ -3554,7 +3554,7 @@

go-swagger (link)

Stars - 9427 + 9428 Watchers @@ -3570,7 +3570,7 @@

go-swagger (link)

Last Updated - 2024-08-18T14:14:23Z + 2024-08-19T11:51:28Z Archived @@ -3707,7 +3707,7 @@

NSwag (link)

Stars - 6662 + 6663 Watchers @@ -3723,7 +3723,7 @@

NSwag (link)

Last Updated - 2024-08-19T02:34:39Z + 2024-08-19T11:29:09Z Archived @@ -3809,7 +3809,7 @@

Azure AutoRest (link)

Stars - 4568 + 4569 Watchers @@ -3825,7 +3825,7 @@

Azure AutoRest (link)

Last Updated - 2024-08-16T19:04:06Z + 2024-08-19T08:31:22Z Archived @@ -4064,7 +4064,7 @@

OWASP ZAP (link)

Stars - 12407 + 12411 Watchers @@ -4072,7 +4072,7 @@

OWASP ZAP (link)

Forks - 2218 + 2219 Created @@ -4080,7 +4080,7 @@

OWASP ZAP (link)

Last Updated - 2024-08-18T17:11:20Z + 2024-08-19T23:18:50Z Archived @@ -4574,7 +4574,7 @@

🌿 Fern (link)

Stars - 2532 + 2534 Watchers @@ -4582,7 +4582,7 @@

🌿 Fern (link)

Forks - 129 + 128 Created @@ -4590,7 +4590,7 @@

🌿 Fern (link)

Last Updated - 2024-08-19T02:53:38Z + 2024-08-20T03:13:13Z Archived @@ -4727,7 +4727,7 @@

Swift OpenAPI Generator (link)

Stars - 1333 + 1334 Watchers @@ -4743,7 +4743,7 @@

Swift OpenAPI Generator (link)

Last Updated - 2024-08-19T00:48:12Z + 2024-08-20T00:04:22Z Archived @@ -4794,7 +4794,7 @@

OpenAPI Qraft (link)

Last Updated - 2024-08-17T21:54:43Z + 2024-08-19T20:11:16Z Archived @@ -4829,7 +4829,7 @@

OpenAPI TypeScript (link)

Stars - 5341 + 5351 Watchers @@ -4837,7 +4837,7 @@

OpenAPI TypeScript (link)

Forks - 440 + 442 Created @@ -4845,7 +4845,7 @@

OpenAPI TypeScript (link)

Last Updated - 2024-08-19T02:33:58Z + 2024-08-20T03:14:29Z Archived @@ -4880,7 +4880,7 @@

knife4j (link)

Stars - 4037 + 4038 Watchers @@ -4896,7 +4896,7 @@

knife4j (link)

Last Updated - 2024-08-17T12:10:31Z + 2024-08-19T10:15:55Z Archived @@ -4931,7 +4931,7 @@

openapi-directory (link)

Stars - 3805 + 3808 Watchers @@ -4947,7 +4947,7 @@

openapi-directory (link)

Last Updated - 2024-08-17T17:55:21Z + 2024-08-20T03:10:11Z Archived @@ -4982,15 +4982,15 @@

openapi-ts (link)

Stars - 863 + 870 Watchers - 7 + 6 Forks - 70 + 69 Created @@ -4998,7 +4998,7 @@

openapi-ts (link)

Last Updated - 2024-08-19T03:20:32Z + 2024-08-19T20:00:21Z Archived @@ -5339,7 +5339,7 @@

apiclientcodegen (link)

Stars - 167 + 168 Watchers @@ -5355,7 +5355,7 @@

apiclientcodegen (link)

Last Updated - 2024-08-14T22:50:58Z + 2024-08-19T12:40:27Z Archived @@ -5390,7 +5390,7 @@

openapi-to-plantuml (link)

Stars - 94 + 95 Watchers @@ -5406,7 +5406,7 @@

openapi-to-plantuml (link)

Last Updated - 2024-08-16T12:27:07Z + 2024-08-20T02:31:28Z Archived @@ -6461,7 +6461,7 @@

dotnetconf22 (link)

Stars - 7 + 8 Watchers @@ -6477,7 +6477,7 @@

dotnetconf22 (link)

Last Updated - 2024-07-31T06:33:10Z + 2024-08-19T08:48:38Z Archived diff --git a/docs/categories/security.html b/docs/categories/security.html index e8c996c8..fcb4bf9a 100644 --- a/docs/categories/security.html +++ b/docs/categories/security.html @@ -91,7 +91,7 @@

Yes Yes No - 185 + 191 @@ -175,7 +175,7 @@

No Yes No - 525 + 526 @@ -240,7 +240,7 @@

No Yes Yes - 12407 + 12411 @@ -326,7 +326,7 @@

No Yes Yes - 2547 + 2549 @@ -380,7 +380,7 @@

Rate My OpenAPI (link)

Stars - 185 + 191 Watchers @@ -396,7 +396,7 @@

Rate My OpenAPI (link)

Last Updated - 2024-08-18T19:11:05Z + 2024-08-19T12:58:58Z Archived @@ -584,7 +584,7 @@

openapi-fuzzer (link)

Stars - 525 + 526 Watchers @@ -600,7 +600,7 @@

openapi-fuzzer (link)

Last Updated - 2024-08-05T08:45:17Z + 2024-08-19T05:33:45Z Archived @@ -737,7 +737,7 @@

OWASP ZAP (link)

Stars - 12407 + 12411 Watchers @@ -745,7 +745,7 @@

OWASP ZAP (link)

Forks - 2218 + 2219 Created @@ -753,7 +753,7 @@

OWASP ZAP (link)

Last Updated - 2024-08-18T17:11:20Z + 2024-08-19T23:18:50Z Archived @@ -941,7 +941,7 @@

RESTler (link)

Stars - 2547 + 2549 Watchers @@ -949,7 +949,7 @@

RESTler (link)

Forks - 287 + 289 Created @@ -957,7 +957,7 @@

RESTler (link)

Last Updated - 2024-08-16T10:26:19Z + 2024-08-19T10:10:56Z Archived diff --git a/docs/categories/server-implementations.html b/docs/categories/server-implementations.html index ba46c4fe..1e2e9c88 100644 --- a/docs/categories/server-implementations.html +++ b/docs/categories/server-implementations.html @@ -91,7 +91,7 @@

No Yes Yes - 4469 + 4470 @@ -114,7 +114,7 @@

Yes Yes No - 185 + 191 @@ -298,7 +298,7 @@

Yes Yes Yes - 8832 + 8833 @@ -344,7 +344,7 @@

Yes Yes Yes - 4176 + 4177 @@ -367,7 +367,7 @@

No Yes Yes - 8412 + 8413 @@ -434,7 +434,7 @@

Yes Yes Yes - 889 + 890 @@ -549,7 +549,7 @@

No Yes No - 4054 + 4057 @@ -616,7 +616,7 @@

No Yes No - 28019 + 28026 @@ -754,7 +754,7 @@

No Yes No - 74736 + 74774 @@ -777,7 +777,7 @@

No Yes No - 3224 + 3225 @@ -798,7 +798,7 @@

No Yes No - 2670 + 2671 @@ -819,7 +819,7 @@

No Yes No - 2265 + 2268 @@ -842,7 +842,7 @@

No Yes No - 2212 + 2215 @@ -863,7 +863,7 @@

No Yes No - 2185 + 2187 @@ -884,7 +884,7 @@

No Yes No - 1638 + 1640 @@ -1119,7 +1119,7 @@

No Yes No - 351 + 353 @@ -1205,7 +1205,7 @@

No Yes No - 280 + 281 @@ -1310,7 +1310,7 @@

No Yes No - 179 + 181 @@ -1394,7 +1394,7 @@

No Yes No - 125 + 130 @@ -1583,7 +1583,7 @@

Yes Yes No - 60 + 61 @@ -9065,7 +9065,7 @@

No Yes No - 25454 + 25483 @@ -11236,7 +11236,7 @@

No Yes No - N/A + 1 @@ -11506,7 +11506,7 @@

Connexion (link)

Stars - 4469 + 4470 Watchers @@ -11522,7 +11522,7 @@

Connexion (link)

Last Updated - 2024-08-17T04:56:19Z + 2024-08-19T23:34:53Z Archived @@ -11557,7 +11557,7 @@

Rate My OpenAPI (link)

Stars - 185 + 191 Watchers @@ -11573,7 +11573,7 @@

Rate My OpenAPI (link)

Last Updated - 2024-08-18T19:11:05Z + 2024-08-19T12:58:58Z Archived @@ -11624,7 +11624,7 @@

OpenAPI-UI (link)

Last Updated - 2024-08-17T14:30:14Z + 2024-08-19T15:17:05Z Archived @@ -11930,7 +11930,7 @@

VSCode OpenAPI Editor (link)

Last Updated - 2024-08-16T14:18:51Z + 2024-08-19T16:17:16Z Archived @@ -11965,7 +11965,7 @@

Swagger Editor (link)

Stars - 8832 + 8833 Watchers @@ -11973,7 +11973,7 @@

Swagger Editor (link)

Forks - 2235 + 2236 Created @@ -11981,7 +11981,7 @@

Swagger Editor (link)

Last Updated - 2024-08-18T18:25:54Z + 2024-08-19T10:15:45Z Archived @@ -12067,7 +12067,7 @@

Prism (link)

Stars - 4176 + 4177 Watchers @@ -12083,7 +12083,7 @@

Prism (link)

Last Updated - 2024-08-17T07:24:27Z + 2024-08-19T04:00:29Z Archived @@ -12118,7 +12118,7 @@

API Platform (link)

Stars - 8412 + 8413 Watchers @@ -12134,7 +12134,7 @@

API Platform (link)

Last Updated - 2024-08-18T19:05:30Z + 2024-08-19T03:30:05Z Archived @@ -12271,7 +12271,7 @@

Redocly CLI (link)

Stars - 889 + 890 Watchers @@ -12287,7 +12287,7 @@

Redocly CLI (link)

Last Updated - 2024-08-18T22:22:34Z + 2024-08-19T12:15:28Z Archived @@ -12526,7 +12526,7 @@

TypeSpec (link)

Stars - 4054 + 4057 Watchers @@ -12542,7 +12542,7 @@

TypeSpec (link)

Last Updated - 2024-08-19T00:41:19Z + 2024-08-20T02:14:01Z Archived @@ -12679,11 +12679,11 @@

Django REST Framework (link)

Stars - 28019 + 28026 Watchers - 622 + 623 Forks @@ -12695,7 +12695,7 @@

Django REST Framework (link)

Last Updated - 2024-08-19T02:17:07Z + 2024-08-20T02:42:01Z Archived @@ -12985,7 +12985,7 @@

FastAPI (link)

Stars - 74736 + 74774 Watchers @@ -12993,7 +12993,7 @@

FastAPI (link)

Forks - 6290 + 6295 Created @@ -13001,7 +13001,7 @@

FastAPI (link)

Last Updated - 2024-08-19T02:59:59Z + 2024-08-20T03:25:40Z Archived @@ -13036,7 +13036,7 @@

springdoc-openapi (link)

Stars - 3224 + 3225 Watchers @@ -13052,7 +13052,7 @@

springdoc-openapi (link)

Last Updated - 2024-08-19T02:53:28Z + 2024-08-19T10:47:26Z Archived @@ -13087,7 +13087,7 @@

uvicorn-gunicorn-fastapi-docker (link)< Stars - 2670 + 2671 Watchers @@ -13103,7 +13103,7 @@

uvicorn-gunicorn-fastapi-docker (link)< Last Updated - 2024-08-18T12:57:11Z + 2024-08-19T16:10:59Z Archived @@ -13138,7 +13138,7 @@

drf-spectacular (link)

Stars - 2265 + 2268 Watchers @@ -13154,7 +13154,7 @@

drf-spectacular (link)

Last Updated - 2024-08-17T20:36:12Z + 2024-08-19T13:38:27Z Archived @@ -13189,7 +13189,7 @@

Schemathesis (link)

Stars - 2212 + 2215 Watchers @@ -13205,7 +13205,7 @@

Schemathesis (link)

Last Updated - 2024-08-18T06:02:11Z + 2024-08-19T22:00:47Z Archived @@ -13240,7 +13240,7 @@

msgspec (link)

Stars - 2185 + 2187 Watchers @@ -13256,7 +13256,7 @@

msgspec (link)

Last Updated - 2024-08-19T02:48:10Z + 2024-08-19T20:18:49Z Archived @@ -13291,7 +13291,7 @@

rapidoc (link)

Stars - 1638 + 1640 Watchers @@ -13307,7 +13307,7 @@

rapidoc (link)

Last Updated - 2024-08-18T17:53:52Z + 2024-08-19T15:39:38Z Archived @@ -13562,7 +13562,7 @@

stackql (link)

Last Updated - 2024-08-18T01:03:59Z + 2024-08-19T22:11:58Z Archived @@ -13852,7 +13852,7 @@

fastapi-clean-example (link)

Stars - 351 + 353 Watchers @@ -13868,7 +13868,7 @@

fastapi-clean-example (link)

Last Updated - 2024-08-19T01:42:06Z + 2024-08-19T08:11:05Z Archived @@ -13970,7 +13970,7 @@

beacon-apis (link)

Last Updated - 2024-08-15T10:48:31Z + 2024-08-19T11:05:01Z Archived @@ -14056,7 +14056,7 @@

chanfana (link)

Stars - 280 + 281 Watchers @@ -14072,7 +14072,7 @@

chanfana (link)

Last Updated - 2024-08-10T12:56:59Z + 2024-08-19T16:19:58Z Archived @@ -14311,7 +14311,7 @@

flask-openapi3 (link)

Stars - 179 + 181 Watchers @@ -14327,7 +14327,7 @@

flask-openapi3 (link)

Last Updated - 2024-08-04T04:12:57Z + 2024-08-20T00:50:42Z Archived @@ -14515,7 +14515,7 @@

typescript-backend-toolkit (link)

Stars - 125 + 130 Watchers @@ -14523,7 +14523,7 @@

typescript-backend-toolkit (link)

Forks - 21 + 23 Created @@ -14531,7 +14531,7 @@

typescript-backend-toolkit (link)

Last Updated - 2024-08-19T03:10:59Z + 2024-08-19T18:36:53Z Archived @@ -14837,7 +14837,7 @@

tools.openapis.org (link)

Last Updated - 2024-08-18T03:32:26Z + 2024-08-19T03:28:02Z Archived @@ -14974,7 +14974,7 @@

spectral-owasp-ruleset (link)

Stars - 60 + 61 Watchers @@ -14990,7 +14990,7 @@

spectral-owasp-ruleset (link)

Last Updated - 2024-08-18T05:08:42Z + 2024-08-19T10:45:17Z Archived @@ -15857,7 +15857,7 @@

data-fair (link)

Last Updated - 2024-08-13T13:24:11Z + 2024-08-19T09:09:20Z Archived @@ -18764,7 +18764,7 @@

sandbox (link)

Last Updated - 2024-08-16T15:14:49Z + 2024-08-19T15:18:15Z Archived @@ -19011,7 +19011,7 @@

notebookmanager (link)

Forks - 4 + 5 Created @@ -33130,7 +33130,7 @@

full-stack-fastapi-template (link)

Stars - 25454 + 25483 Watchers @@ -33138,7 +33138,7 @@

full-stack-fastapi-template (link)

Forks - 4354 + 4363 Created @@ -33146,7 +33146,7 @@

full-stack-fastapi-template (link)

Last Updated - 2024-08-19T02:50:22Z + 2024-08-20T02:37:01Z Archived @@ -38383,7 +38383,7 @@

ogcapi-dggs-webdev-python (link)

Stars - N/A + 1 Watchers @@ -38399,7 +38399,7 @@

ogcapi-dggs-webdev-python (link)

Last Updated - 2021-11-17T08:22:24Z + 2024-08-19T14:03:12Z Archived diff --git a/docs/categories/server.html b/docs/categories/server.html index 744cd0bd..5b483f59 100644 --- a/docs/categories/server.html +++ b/docs/categories/server.html @@ -91,7 +91,7 @@

No Yes Yes - 4469 + 4470 @@ -114,7 +114,7 @@

No Yes Yes - 3412 + 3413 @@ -229,7 +229,7 @@

No Yes Yes - 8412 + 8413 @@ -342,7 +342,7 @@

No Yes No - 1655 + 1656 @@ -546,7 +546,7 @@

Yes Yes Yes - 2532 + 2534 @@ -569,7 +569,7 @@

Yes Yes No - 1333 + 1334 @@ -592,7 +592,7 @@

No Yes No - 716 + 733 @@ -615,7 +615,7 @@

Yes Yes No - 1790 + 1794 @@ -680,7 +680,7 @@

No Yes No - 201 + 202 @@ -2892,7 +2892,7 @@

Connexion (link)

Stars - 4469 + 4470 Watchers @@ -2908,7 +2908,7 @@

Connexion (link)

Last Updated - 2024-08-17T04:56:19Z + 2024-08-19T23:34:53Z Archived @@ -2943,7 +2943,7 @@

tsoa (link)

Stars - 3412 + 3413 Watchers @@ -2959,7 +2959,7 @@

tsoa (link)

Last Updated - 2024-08-18T07:35:59Z + 2024-08-19T11:10:06Z Archived @@ -3002,7 +3002,7 @@

Vert.x Web Api Contract (link)

Forks - 530 + 531 Created @@ -3198,7 +3198,7 @@

API Platform (link)

Stars - 8412 + 8413 Watchers @@ -3214,7 +3214,7 @@

API Platform (link)

Last Updated - 2024-08-18T19:05:30Z + 2024-08-19T03:30:05Z Archived @@ -3453,7 +3453,7 @@

@nestjs/swagger (link)

Stars - 1655 + 1656 Watchers @@ -3469,7 +3469,7 @@

@nestjs/swagger (link)

Last Updated - 2024-08-19T00:51:03Z + 2024-08-20T03:05:52Z Archived @@ -3912,7 +3912,7 @@

🌿 Fern (link)

Stars - 2532 + 2534 Watchers @@ -3920,7 +3920,7 @@

🌿 Fern (link)

Forks - 129 + 128 Created @@ -3928,7 +3928,7 @@

🌿 Fern (link)

Last Updated - 2024-08-19T02:53:38Z + 2024-08-20T03:13:13Z Archived @@ -3963,7 +3963,7 @@

Swift OpenAPI Generator (link)

Stars - 1333 + 1334 Watchers @@ -3979,7 +3979,7 @@

Swift OpenAPI Generator (link)

Last Updated - 2024-08-19T00:48:12Z + 2024-08-20T00:04:22Z Archived @@ -4014,7 +4014,7 @@

Fuego (link)

Stars - 716 + 733 Watchers @@ -4030,7 +4030,7 @@

Fuego (link)

Last Updated - 2024-08-17T21:47:31Z + 2024-08-20T00:57:14Z Archived @@ -4065,7 +4065,7 @@

Huma (link)

Stars - 1790 + 1794 Watchers @@ -4081,7 +4081,7 @@

Huma (link)

Last Updated - 2024-08-19T03:20:53Z + 2024-08-19T15:47:04Z Archived @@ -4132,7 +4132,7 @@

Mojolicious::Plugin::OpenAPI::Modern (l Last Updated - 2024-05-09T16:28:28Z + 2024-08-19T17:47:53Z Archived @@ -4218,7 +4218,7 @@

oas-tools (link)

Stars - 201 + 202 Watchers @@ -4234,7 +4234,7 @@

oas-tools (link)

Last Updated - 2024-08-12T19:36:07Z + 2024-08-19T06:55:38Z Archived @@ -4438,7 +4438,7 @@

openapi-processor-spring (link)

Last Updated - 2024-08-17T11:31:42Z + 2024-08-19T23:45:30Z Archived @@ -5866,7 +5866,7 @@

restdocs-openapi3 (link)

Last Updated - 2024-08-13T01:37:01Z + 2024-08-20T02:13:19Z Archived @@ -9283,7 +9283,7 @@

LoopBack 4 (link)

Last Updated - 2024-08-18T03:07:10Z + 2024-08-19T18:56:09Z Archived @@ -9428,7 +9428,7 @@

Vert.x Web API Service (link)

Forks - 530 + 531 Created diff --git a/docs/categories/testing-tools.html b/docs/categories/testing-tools.html index 0f3938dd..8998af41 100644 --- a/docs/categories/testing-tools.html +++ b/docs/categories/testing-tools.html @@ -114,7 +114,7 @@

No Yes No - 2212 + 2215 @@ -242,7 +242,7 @@

Schemathesis (link)

Stars - 2212 + 2215 Watchers @@ -258,7 +258,7 @@

Schemathesis (link)

Last Updated - 2024-08-18T06:02:11Z + 2024-08-19T22:00:47Z Archived diff --git a/docs/categories/testing.html b/docs/categories/testing.html index b5c5cbd4..395d1179 100644 --- a/docs/categories/testing.html +++ b/docs/categories/testing.html @@ -173,7 +173,7 @@

No Yes Yes - 4169 + 4170 @@ -217,7 +217,7 @@

No Yes No - 629 + 630 @@ -368,7 +368,7 @@

Yes Yes No - 731 + 733 @@ -433,7 +433,7 @@

No Yes Yes - 204 + 205 @@ -631,7 +631,7 @@

Yes Yes Yes - 166 + 167 @@ -717,7 +717,7 @@

No Yes No - 6191 + 6195 @@ -759,7 +759,7 @@

No Yes No - 480 + 481 @@ -2640,7 +2640,7 @@

No Yes Yes - 2547 + 2549 @@ -2938,7 +2938,7 @@

Dredd (link)

Stars - 4169 + 4170 Watchers @@ -2954,7 +2954,7 @@

Dredd (link)

Last Updated - 2024-08-17T19:21:47Z + 2024-08-19T08:16:12Z Archived @@ -3040,7 +3040,7 @@

portman (link)

Stars - 629 + 630 Watchers @@ -3056,7 +3056,7 @@

portman (link)

Last Updated - 2024-08-18T19:05:50Z + 2024-08-19T17:22:59Z Archived @@ -3397,7 +3397,7 @@

Restish (link)

Stars - 731 + 733 Watchers @@ -3413,7 +3413,7 @@

Restish (link)

Last Updated - 2024-08-18T17:27:07Z + 2024-08-20T00:18:49Z Archived @@ -3550,7 +3550,7 @@

RESTest (link)

Stars - 204 + 205 Watchers @@ -3566,7 +3566,7 @@

RESTest (link)

Last Updated - 2024-06-10T15:07:57Z + 2024-08-19T14:34:01Z Archived @@ -4009,7 +4009,7 @@

openapi-changes (link)

Stars - 166 + 167 Watchers @@ -4025,7 +4025,7 @@

openapi-changes (link)

Last Updated - 2024-08-10T23:17:53Z + 2024-08-19T15:21:43Z Archived @@ -4213,7 +4213,7 @@

mockoon (link)

Stars - 6191 + 6195 Watchers @@ -4221,7 +4221,7 @@

mockoon (link)

Forks - 361 + 362 Created @@ -4229,7 +4229,7 @@

mockoon (link)

Last Updated - 2024-08-18T19:39:28Z + 2024-08-19T20:20:36Z Archived @@ -4315,7 +4315,7 @@

openapi-codegen (link)

Stars - 480 + 481 Watchers @@ -4331,7 +4331,7 @@

openapi-codegen (link)

Last Updated - 2024-08-16T10:06:49Z + 2024-08-19T06:17:18Z Archived @@ -4935,7 +4935,7 @@

hcloud-openapi (link)

Forks - 3 + 4 Created @@ -5045,7 +5045,7 @@

mockoon.com (link)

Last Updated - 2024-08-14T16:12:13Z + 2024-08-19T12:52:21Z Archived @@ -6218,7 +6218,7 @@

public-api-docs (link)

Last Updated - 2024-08-15T17:14:49Z + 2024-08-19T13:01:30Z Archived @@ -7442,7 +7442,7 @@

EvoMaster (link)

Last Updated - 2024-08-17T13:37:10Z + 2024-08-19T06:52:11Z Archived @@ -8854,7 +8854,7 @@

RESTler (link)

Stars - 2547 + 2549 Watchers @@ -8862,7 +8862,7 @@

RESTler (link)

Forks - 287 + 289 Created @@ -8870,7 +8870,7 @@

RESTler (link)

Last Updated - 2024-08-16T10:26:19Z + 2024-08-19T10:10:56Z Archived diff --git a/docs/categories/text-editors.html b/docs/categories/text-editors.html index dca7ae71..453fb3a2 100644 --- a/docs/categories/text-editors.html +++ b/docs/categories/text-editors.html @@ -157,7 +157,7 @@

Yes Yes Yes - 8832 + 8833 @@ -508,7 +508,7 @@

VSCode OpenAPI Editor (link)

Last Updated - 2024-08-16T14:18:51Z + 2024-08-19T16:17:16Z Archived @@ -594,7 +594,7 @@

Swagger Editor (link)

Stars - 8832 + 8833 Watchers @@ -602,7 +602,7 @@

Swagger Editor (link)

Forks - 2235 + 2236 Created @@ -610,7 +610,7 @@

Swagger Editor (link)

Last Updated - 2024-08-18T18:25:54Z + 2024-08-19T10:15:45Z Archived diff --git a/docs/categories/unclassified.html b/docs/categories/unclassified.html index eb4cdecc..c546575f 100644 --- a/docs/categories/unclassified.html +++ b/docs/categories/unclassified.html @@ -1420,7 +1420,7 @@

php-json-schema-model-generator (link)< Last Updated - 2024-07-24T12:13:23Z + 2024-08-19T10:16:21Z Archived diff --git a/docs/categories/user-interfaces.html b/docs/categories/user-interfaces.html index 00d57088..c7ec5f8b 100644 --- a/docs/categories/user-interfaces.html +++ b/docs/categories/user-interfaces.html @@ -91,7 +91,7 @@

Yes Yes No - 26199 + 26213 @@ -114,7 +114,7 @@

Yes Yes No - 23156 + 23163 @@ -275,7 +275,7 @@

swagger-ui (link)

Stars - 26199 + 26213 Watchers @@ -283,7 +283,7 @@

swagger-ui (link)

Forks - 8896 + 8897 Created @@ -291,7 +291,7 @@

swagger-ui (link)

Last Updated - 2024-08-18T21:39:45Z + 2024-08-20T03:08:47Z Archived @@ -326,7 +326,7 @@

Redoc (link)

Stars - 23156 + 23163 Watchers @@ -342,7 +342,7 @@

Redoc (link)

Last Updated - 2024-08-19T01:00:16Z + 2024-08-20T01:50:55Z Archived diff --git a/src/_data/tools.yaml b/src/_data/tools.yaml index 817360b9..2254a7d9 100644 --- a/src/_data/tools.yaml +++ b/src/_data/tools.yaml @@ -159,17 +159,17 @@ Connexion is a modern Python web framework that makes spec-first and api-first development easy. created: '2015-05-19T13:05:58Z' - updated: '2024-08-17T04:56:19Z' + updated: '2024-08-19T23:34:53Z' language: Python archived: false - stars: 4469 + stars: 4470 watchers: 84 forks: 758 owner: spec-first logo: https://avatars.githubusercontent.com/u/58754196?v=4 license: Apache-2.0 - repoEtag: '"6fe1bd5810213fabe76c466f28eb2adda673921a327c46028ff5003c37371b6d"' - repoLastModified: Sat, 17 Aug 2024 04:56:19 GMT + repoEtag: '"fc140983fb1e1617cb187a0f68894e38e69294ff3dd55cb07c2652ab7b3bd233"' + repoLastModified: Mon, 19 Aug 2024 23:34:53 GMT foundInMaster: true homepage: https://github.com/zalando/connexion id: 2d575abdf2671028868058b2442d9131 @@ -258,17 +258,17 @@ repositoryId: 653466139 description: null created: '2023-06-14T05:39:38Z' - updated: '2024-08-18T19:11:05Z' + updated: '2024-08-19T12:58:58Z' language: TypeScript archived: false - stars: 185 + stars: 191 watchers: 4 forks: 4 owner: zuplo logo: https://avatars.githubusercontent.com/u/85497839?v=4 license: MIT - repoEtag: '"794085b47180562040f83c2f0ba2b9d169b52af5420c444c8f46b6d0db6f42f6"' - repoLastModified: Sun, 18 Aug 2024 19:11:05 GMT + repoEtag: '"ac07845dd432fae812cf487b5154f3140751c9f68b01d52a5c21f4431de2360f"' + repoLastModified: Mon, 19 Aug 2024 12:58:58 GMT foundInMaster: true - source: - https://openapi.tools/ @@ -291,17 +291,17 @@ repositoryId: 679280065 description: Beautiful API references from OpenAPI/Swagger files ✨ created: '2023-08-16T13:42:32Z' - updated: '2024-08-19T00:39:13Z' + updated: '2024-08-20T03:14:38Z' language: TypeScript archived: false - stars: 5433 + stars: 5446 watchers: 20 forks: 162 owner: scalar logo: https://avatars.githubusercontent.com/u/301879?v=4 license: MIT - repoEtag: '"474a6bf38380bfcaa3bc4b84589c5621b7ee3907c52996914d63d2ea9a0498d7"' - repoLastModified: Mon, 19 Aug 2024 00:39:13 GMT + repoEtag: '"a0572eea0c33f88bb7e1f06ce759fa6d917b92fd6f182d527d3bad08166474ab"' + repoLastModified: Tue, 20 Aug 2024 03:14:38 GMT foundInMaster: true - source: https://openapi.tools/ name: Scribe @@ -322,17 +322,17 @@ repositoryId: 260729799 description: Generate API documentation for humans from your Laravel codebase.✍ created: '2020-05-02T16:36:45Z' - updated: '2024-08-18T15:39:34Z' + updated: '2024-08-20T00:56:05Z' language: PHP archived: false - stars: 1639 + stars: 1641 watchers: 17 forks: 289 owner: knuckleswtf logo: https://avatars.githubusercontent.com/u/63367037?v=4 license: MIT - repoEtag: '"37c8c1566b0923f5c3c8a118e94bf5e0ae5039f0d9f6a433da5d87b38b6ee1e0"' - repoLastModified: Sun, 18 Aug 2024 15:39:34 GMT + repoEtag: '"e88078c5691c145f2e742702844e1569510c51d7897678484567f35aaa35cdac"' + repoLastModified: Tue, 20 Aug 2024 00:56:05 GMT foundInMaster: true - source: https://openapi.tools/ name: Supermodel @@ -379,17 +379,17 @@ repositoryId: 45250726 description: 📘 OpenAPI/Swagger-generated API Reference Documentation created: '2015-10-30T12:53:02Z' - updated: '2024-08-19T01:00:16Z' + updated: '2024-08-20T01:50:55Z' language: TypeScript archived: false - stars: 23156 + stars: 23163 watchers: 295 forks: 2280 owner: Redocly logo: https://avatars.githubusercontent.com/u/32099856?v=4 license: MIT - repoEtag: '"7c709e7e3c6a49f63c16da5cad73ba95d35b12ee0723544eceed65151d058659"' - repoLastModified: Mon, 19 Aug 2024 01:00:16 GMT + repoEtag: '"f4aeed61504b65a0b1b542c5bed46daffbcbb6036d575bbfc1b1187a0690dfcd"' + repoLastModified: Tue, 20 Aug 2024 01:50:55 GMT foundInMaster: true - source: https://openapi.tools/ name: RestCase Docs @@ -451,7 +451,7 @@ also simplified postman tool. 基于 OpenAPI/Swagger 规范的接口文档,快速模拟请求参数并调用接口,也是简化版 postman 工具 created: '2023-12-20T14:51:12Z' - updated: '2024-08-17T14:30:14Z' + updated: '2024-08-19T15:17:05Z' language: TypeScript archived: false stars: 601 @@ -460,8 +460,8 @@ owner: rookie-luochao logo: https://avatars.githubusercontent.com/u/22948077?v=4 license: MIT - repoEtag: '"a34f82cc385a4eefb91a181feb2b4f54f344ff165eca01a89159eca20f6ea139"' - repoLastModified: Sat, 17 Aug 2024 14:30:14 GMT + repoEtag: '"6bd01097fee0924a1b148037bb28a0156703e6321dec78a5fa81674027331710"' + repoLastModified: Mon, 19 Aug 2024 15:17:05 GMT category: - Documentation - Server Implementations @@ -488,17 +488,17 @@ repositoryId: 337689065 description: OpenAPI Diff and Breaking Changes created: '2021-02-10T10:28:36Z' - updated: '2024-08-17T20:26:44Z' + updated: '2024-08-19T09:35:43Z' language: Go archived: false - stars: 656 + stars: 657 watchers: 11 forks: 59 owner: Tufin logo: https://avatars.githubusercontent.com/u/5352131?v=4 license: Apache-2.0 - repoEtag: '"0a8a472b2f7b4fc0e80741d5907db8afaec1712db8f5ee1ef5331708ca915f0a"' - repoLastModified: Sat, 17 Aug 2024 20:26:44 GMT + repoEtag: '"5e99723c5e73bfaa4830074eb9fb0c8412a074bdfc90e7cc949890c22b78bf76"' + repoLastModified: Mon, 19 Aug 2024 09:35:43 GMT foundInMaster: true name: oasdiff language: Go @@ -933,17 +933,17 @@ repositoryId: 152569547 description: Spot is a concise, developer-friendly way to describe your API contract. created: '2018-10-11T09:55:46Z' - updated: '2024-08-18T07:49:02Z' + updated: '2024-08-19T17:38:58Z' language: TypeScript archived: false - stars: 552 + stars: 553 watchers: 48 forks: 37 owner: airtasker logo: https://avatars.githubusercontent.com/u/1745680?v=4 license: NOASSERTION - repoEtag: '"ead2184ee2928bcf840906de8bf572046c55bced4b429ce6f3d8dce665028116"' - repoLastModified: Sun, 18 Aug 2024 07:49:02 GMT + repoEtag: '"5946ce3223dd8cb5cece5a92d21a5a633d4f4e5e2d467212fcee002e96f4d969"' + repoLastModified: Mon, 19 Aug 2024 17:38:58 GMT foundInMaster: true id: 7c28c31ae17b20b046f57bb6765c3939 - source: https://openapi.tools/ @@ -1002,26 +1002,26 @@ v3: true repositoryMetadata: base64Readme: >- - PGgxIGFsaWduPSJjZW50ZXIiPk9wZW5BUEkgR2VuZXJhdG9yPC9oMT4KCgo8ZGl2IGFsaWduPSJjZW50ZXIiPgoKWyFbU3RhYmxlIHJlbGVhc2VzIGluIE1hdmVuIENlbnRyYWxdKGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vbWF2ZW4tbWV0YWRhdGEvdi9odHRwcy9yZXBvMS5tYXZlbi5vcmcvbWF2ZW4yL29yZy9vcGVuYXBpdG9vbHMvb3BlbmFwaS1nZW5lcmF0b3IvbWF2ZW4tbWV0YWRhdGEueG1sLnN2ZyldKGh0dHA6Ly9zZWFyY2gubWF2ZW4ub3JnLyNzZWFyY2glN0NnYXYlN0MxJTdDZyUzQSUyMm9yZy5vcGVuYXBpdG9vbHMlMjIlMjBBTkQlMjBhJTNBJTIyb3BlbmFwaS1nZW5lcmF0b3IlMjIpClshW0FwYWNoZSAyLjAgTGljZW5zZV0oaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9iYWRnZS9MaWNlbnNlLUFwYWNoZSUyMDIuMC1vcmFuZ2UpXSguL0xJQ0VOU0UpClshW09wZW4gQ29sbGVjdGl2ZSBiYWNrZXJzXShodHRwczovL2ltZy5zaGllbGRzLmlvL29wZW5jb2xsZWN0aXZlL2JhY2tlcnMvb3BlbmFwaV9nZW5lcmF0b3I/Y29sb3I9b3JhbmdlJmxhYmVsPU9wZW5Db2xsZWN0aXZlJTIwQmFja2VycyldKGh0dHBzOi8vb3BlbmNvbGxlY3RpdmUuY29tL29wZW5hcGlfZ2VuZXJhdG9yKQpbIVtKb2luIHRoZSBTbGFjayBjaGF0IHJvb21dKGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vYmFkZ2UvU2xhY2stSm9pbiUyMHRoZSUyMGNoYXQlMjByb29tLW9yYW5nZSldKGh0dHBzOi8vam9pbi5zbGFjay5jb20vdC9vcGVuYXBpLWdlbmVyYXRvci9zaGFyZWRfaW52aXRlL3p0LTEyanh4ZDdwMi1YVWVRTX40cHpzVTl4fmVHTFFxWDJnKQpbIVtGb2xsb3cgT3BlbkFQSSBHZW5lcmF0b3IgVHdpdHRlciBhY2NvdW50IHRvIGdldCB0aGUgbGF0ZXN0IHVwZGF0ZV0oaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby90d2l0dGVyL2ZvbGxvdy9vYXNfZ2VuZXJhdG9yLnN2Zz9zdHlsZT1zb2NpYWwmbGFiZWw9Rm9sbG93KV0oaHR0cHM6Ly90d2l0dGVyLmNvbS9vYXNfZ2VuZXJhdG9yKQpbIVtDb250cmlidXRlIHdpdGggR2l0cG9kXShodHRwczovL2ltZy5zaGllbGRzLmlvL2JhZGdlL0NvbnRyaWJ1dGUlMjB3aXRoLUdpdHBvZC05MDhhODU/bG9nbz1naXRwb2QpXShodHRwczovL2dpdHBvZC5pby8jaHR0cHM6Ly9naXRodWIuY29tL09wZW5BUElUb29scy9vcGVuYXBpLWdlbmVyYXRvcikKWyFbQ29uYW4gQ2VudGVyXShodHRwczovL3NoaWVsZHMuaW8vY29uYW4vdi9vcGVuYXBpLWdlbmVyYXRvcildKGh0dHBzOi8vY29uYW4uaW8vY2VudGVyL3JlY2lwZXMvb3BlbmFwaS1nZW5lcmF0b3IpClshW1JldnZlZCB1cCBieSBEZXZlbG9jaXR5XShodHRwczovL2ltZy5zaGllbGRzLmlvL2JhZGdlL1JldnZlZCUyMHVwJTIwYnktRGV2ZWxvY2l0eS0wNkEwQ0U/bG9nbz1HcmFkbGUmbGFiZWxDb2xvcj0wMjMwM0EpXShodHRwczovL2dlLm9wZW5hcGktZ2VuZXJhdG9yLnRlY2gvc2NhbnMpCjwvZGl2PgoKPGRpdiBhbGlnbj0iY2VudGVyIj4KCltNYXN0ZXJdKGh0dHBzOi8vZ2l0aHViLmNvbS9PcGVuQVBJVG9vbHMvb3BlbmFwaS1nZW5lcmF0b3IvdHJlZS9tYXN0ZXIpIChgNy44LjBgKToKWyFbQnVpbGQgU3RhdHVzXShodHRwczovL2FwaS50cmF2aXMtY2kuY29tL09wZW5BUElUb29scy9vcGVuYXBpLWdlbmVyYXRvci5zdmc/YnJhbmNoPW1hc3RlciZzdGF0dXM9cGFzc2VkKV0oaHR0cHM6Ly9hcHAudHJhdmlzLWNpLmNvbS9naXRodWIvT3BlbkFQSVRvb2xzL29wZW5hcGktZ2VuZXJhdG9yL2J1aWxkcykKWyFbSW50ZWdyYXRpb24gVGVzdDJdKGh0dHBzOi8vY2lyY2xlY2kuY29tL2doL09wZW5BUElUb29scy9vcGVuYXBpLWdlbmVyYXRvci5zdmc/c3R5bGU9c2hpZWxkKV0oaHR0cHM6Ly9jaXJjbGVjaS5jb20vZ2gvT3BlbkFQSVRvb2xzL29wZW5hcGktZ2VuZXJhdG9yKQpbIVtXaW5kb3dzIFRlc3RdKGh0dHBzOi8vY2kuYXBwdmV5b3IuY29tL2FwaS9wcm9qZWN0cy9zdGF0dXMvZ2l0aHViL29wZW5hcGl0b29scy9vcGVuYXBpLWdlbmVyYXRvcj9icmFuY2g9bWFzdGVyJnN2Zz10cnVlJnBhc3NpbmdUZXh0PVdpbmRvd3MlMjBUZXN0JTIwLSUyME9LJmZhaWxpbmdUZXh0PVdpbmRvd3MlMjBUZXN0JTIwLSUyMEZhaWxzKV0oaHR0cHM6Ly9jaS5hcHB2ZXlvci5jb20vcHJvamVjdC9XaWxsaWFtQ2hlbmcvb3BlbmFwaS1nZW5lcmF0b3IpClshW0JpdHJpc2VdKGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vYml0cmlzZS80YTJiMTBhODE5ZDEyYjY3L21hc3Rlcj9sYWJlbD1iaXRyaXNlJTNBJTIwU3dpZnQrNCw1JnRva2VuPTg1OUZNRFI4UUh3YWJDend2Wks2dlEpXShodHRwczovL2FwcC5iaXRyaXNlLmlvL2FwcC80YTJiMTBhODE5ZDEyYjY3KQoKPC9kaXY+Cgo8ZGl2IGFsaWduPSJjZW50ZXIiPgoKOnN0YXI6OnN0YXI6OnN0YXI6IElmIHlvdSB3b3VsZCBsaWtlIHRvIGNvbnRyaWJ1dGUsIHBsZWFzZSByZWZlciB0byBbZ3VpZGVsaW5lc10oQ09OVFJJQlVUSU5HLm1kKSBhbmQgYSBsaXN0IG9mIFtvcGVuIHRhc2tzXShodHRwczovL2dpdGh1Yi5jb20vb3BlbmFwaXRvb2xzL29wZW5hcGktZ2VuZXJhdG9yL2lzc3Vlcz9xPWlzJTNBb3BlbitpcyUzQWlzc3VlK2xhYmVsJTNBJTIyaGVscCt3YW50ZWQlMjIpLiA6c3Rhcjo6c3Rhcjo6c3RhcjoKCjpiYW5nYmFuZzogVG8gbWlncmF0ZSBmcm9tIFN3YWdnZXIgQ29kZWdlbiB0byBPcGVuQVBJIEdlbmVyYXRvciwgcGxlYXNlIHJlZmVyIHRvIHRoZSBbbWlncmF0aW9uIGd1aWRlXShkb2NzL21pZ3JhdGlvbi1mcm9tLXN3YWdnZXItY29kZWdlbi5tZCkgOmJhbmdiYW5nOgoKOm5vdGVib29rX3dpdGhfZGVjb3JhdGl2ZV9jb3ZlcjogRm9yIG1vcmUgaW5mb3JtYXRpb24sIHBsZWFzZSByZWZlciB0byB0aGUgW1dpa2kgcGFnZV0oaHR0cHM6Ly9naXRodWIuY29tL29wZW5hcGl0b29scy9vcGVuYXBpLWdlbmVyYXRvci93aWtpKSBhbmQgW0ZBUV0oaHR0cHM6Ly9naXRodWIuY29tL29wZW5hcGl0b29scy9vcGVuYXBpLWdlbmVyYXRvci93aWtpL0ZBUSkgOm5vdGVib29rX3dpdGhfZGVjb3JhdGl2ZV9jb3ZlcjoKCjpub3RlYm9va193aXRoX2RlY29yYXRpdmVfY292ZXI6IFRoZSBlQm9vayBbQSBCZWdpbm5lcidzIEd1aWRlIHRvIENvZGUgR2VuZXJhdGlvbiBmb3IgUkVTVCBBUElzXShodHRwczovL2d1bS5jby9vcGVuYXBpX2dlbmVyYXRvcl9lYm9vaykgaXMgYSBnb29kIHN0YXJ0aW5nIHBvaW50IGZvciBiZWdpbm5lcnMgOm5vdGVib29rX3dpdGhfZGVjb3JhdGl2ZV9jb3ZlcjoKCjp3YXJuaW5nOiBJZiB0aGUgT3BlbkFQSSBzcGVjLCB0ZW1wbGF0ZXMgb3IgYW55IGlucHV0IChlLmcuIG9wdGlvbnMsIGVudmlyb25tZW50IHZhcmlhYmxlcykgaXMgb2J0YWluZWQgZnJvbSBhbiB1bnRydXN0ZWQgc291cmNlIG9yIGVudmlyb25tZW50LCBwbGVhc2UgbWFrZSBzdXJlIHlvdSd2ZSByZXZpZXdlZCB0aGVzZSBpbnB1dHMgYmVmb3JlIHVzaW5nIE9wZW5BUEkgR2VuZXJhdG9yIHRvIGdlbmVyYXRlIHRoZSBBUEkgY2xpZW50LCBzZXJ2ZXIgc3R1YiBvciBkb2N1bWVudGF0aW9uIHRvIGF2b2lkIHBvdGVudGlhbCBzZWN1cml0eSBpc3N1ZXMgKGUuZy4gW2NvZGUgaW5qZWN0aW9uXShodHRwczovL2VuLndpa2lwZWRpYS5vcmcvd2lraS9Db2RlX2luamVjdGlvbikpLiBGb3Igc2VjdXJpdHkgdnVsbmVyYWJpbGl0aWVzLCBwbGVhc2UgY29udGFjdCBbdGVhbUBvcGVuYXBpdG9vbHMub3JnXShtYWlsdG86dGVhbUBvcGVuYXBpdG9vbHMub3JnKS4gOndhcm5pbmc6Cgo6YmFuZ2Jhbmc6IEJvdGggIk9wZW5BUEkgVG9vbHMiIChodHRwczovL09wZW5BUElUb29scy5vcmcgLSB0aGUgcGFyZW50IG9yZ2FuaXphdGlvbiBvZiBPcGVuQVBJIEdlbmVyYXRvcikgYW5kICJPcGVuQVBJIEdlbmVyYXRvciIgYXJlIG5vdCBhZmZpbGlhdGVkIHdpdGggT3BlbkFQSSBJbml0aWF0aXZlIChPQUkpIDpiYW5nYmFuZzoKCjwvZGl2PgoKIyMgU3BvbnNvcnMKCklmIHlvdSBmaW5kIE9wZW5BUEkgR2VuZXJhdG9yIHVzZWZ1bCBmb3Igd29yaywgcGxlYXNlIGNvbnNpZGVyIGFza2luZyB5b3VyIGNvbXBhbnkgdG8gc3VwcG9ydCB0aGlzIE9wZW4gU291cmNlIHByb2plY3QgYnkgW2JlY29taW5nIGEgc3BvbnNvcl0oaHR0cHM6Ly9vcGVuY29sbGVjdGl2ZS5jb20vb3BlbmFwaV9nZW5lcmF0b3IpLiBZb3UgY2FuIGFsc28gaW5kaXZpZHVhbGx5IHNwb25zb3IgdGhlIHByb2plY3QgYnkgW2JlY29taW5nIGEgYmFja2VyXShodHRwczovL29wZW5jb2xsZWN0aXZlLmNvbS9vcGVuYXBpX2dlbmVyYXRvcikuCgojIyMjIFRoYW5rIHlvdSB0byBvdXIgYnJvbnplIHNwb25zb3JzIQoKWyFbTmFtU29yXShodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gvaW1nL2NvbXBhbmllcy9uYW1zb3IucG5nKV0oaHR0cHM6Ly93d3cubmFtc29yLmNvbS8/dXRtX3NvdXJjZT1vcGVuYXBpX2dlbmVyYXRvciZ1dG1fbWVkaXVtPWdpdGh1Yl93ZWJwYWdlJnV0bV9jYW1wYWlnbj1zcG9uc29yKQpbIVtMaWdodEJvd10oaHR0cHM6Ly9vcGVuYXBpLWdlbmVyYXRvci50ZWNoL2ltZy9jb21wYW5pZXMvbGlnaHRib3cucG5nKV0oaHR0cHM6Ly93d3cubGlnaHRib3cubmV0Lz91dG1fc291cmNlPW9wZW5hcGlfZ2VuZXJhdG9yJnV0bV9tZWRpdW09Z2l0aHViX3dlYnBhZ2UmdXRtX2NhbXBhaWduPXNwb25zb3IpCls8aW1nIHNyYz0iaHR0cHM6Ly9vcGVuYXBpLWdlbmVyYXRvci50ZWNoL2ltZy9jb21wYW5pZXMvZG9jc3ByaW5nLnBuZyIgd2lkdGg9IjEyOCIgaGVpZ2h0PSIxMjgiPl0oaHR0cHM6Ly9kb2NzcHJpbmcuY29tLz91dG1fc291cmNlPW9wZW5hcGlfZ2VuZXJhdG9yJnV0bV9tZWRpdW09Z2l0aHViX3dlYnBhZ2UmdXRtX2NhbXBhaWduPXNwb25zb3IpCls8aW1nIHNyYz0iaHR0cHM6Ly9vcGVuYXBpLWdlbmVyYXRvci50ZWNoL2ltZy9jb21wYW5pZXMvZGF0YWRvZy5wbmciIHdpZHRoPSIxMjgiIGhlaWdodD0iMTI4Ij5dKGh0dHBzOi8vZGF0YWRvZ2hxLmNvbS8/dXRtX3NvdXJjZT1vcGVuYXBpX2dlbmVyYXRvciZ1dG1fbWVkaXVtPWdpdGh1Yl93ZWJwYWdlJnV0bV9jYW1wYWlnbj1zcG9uc29yKQpbPGltZyBzcmM9Imh0dHBzOi8vb3BlbmFwaS1nZW5lcmF0b3IudGVjaC9pbWcvY29tcGFuaWVzL3RoYWxlcy5qcGciIHdpZHRoPSIxMjgiIGhlaWdodD0iMTI4Ij5dKGh0dHBzOi8vY3BsLnRoYWxlc2dyb3VwLmNvbS8/dXRtX3NvdXJjZT1vcGVuYXBpX2dlbmVyYXRvciZ1dG1fbWVkaXVtPWdpdGh1Yl93ZWJwYWdlJnV0bV9jYW1wYWlnbj1zcG9uc29yKQpbPGltZyBzcmM9Imh0dHBzOi8vb3BlbmFwaS1nZW5lcmF0b3IudGVjaC9pbWcvY29tcGFuaWVzL2FwaWRlY2suanBnIiB3aWR0aD0iMTI4IiBoZWlnaHQ9IjEyOCI+XShodHRwczovL3d3dy5hcGlkZWNrLmNvbS8/dXRtX3NvdXJjZT1vcGVuYXBpX2dlbmVyYXRvciZ1dG1fbWVkaXVtPWdpdGh1Yl93ZWJwYWdlJnV0bV9jYW1wYWlnbj1zcG9uc29yKQpbPGltZyBzcmM9Imh0dHBzOi8vb3BlbmFwaS1nZW5lcmF0b3IudGVjaC9pbWcvY29tcGFuaWVzL3BleGEucG5nIiB3aWR0aD0iMTI4IiBoZWlnaHQ9IjEyOCI+XShodHRwczovL3d3dy5wZXhhLmNvbS5hdS8/dXRtX3NvdXJjZT1vcGVuYXBpX2dlbmVyYXRvciZ1dG1fbWVkaXVtPWdpdGh1Yl93ZWJwYWdlJnV0bV9jYW1wYWlnbj1zcG9uc29yKQpbPGltZyBzcmM9Imh0dHBzOi8vb3BlbmFwaS1nZW5lcmF0b3IudGVjaC9pbWcvY29tcGFuaWVzL251bWFyeS5wbmciIHdpZHRoPSIxMjgiIGhlaWdodD0iMTI4Ij5dKGh0dHBzOi8vd3d3Lm51bWFyeS5jb20vP3V0bV9zb3VyY2U9b3BlbmFwaV9nZW5lcmF0b3ImdXRtX21lZGl1bT1naXRodWJfd2VicGFnZSZ1dG1fY2FtcGFpZ249c3BvbnNvcikKWzxpbWcgc3JjPSJodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gvaW1nL2NvbXBhbmllcy9vbmVzaWduYWwucG5nIiB3aWR0aD0iMTI4IiBoZWlnaHQ9IjEyOCI+XShodHRwczovL3d3dy5vbmVzaWduYWwuY29tLz91dG1fc291cmNlPW9wZW5hcGlfZ2VuZXJhdG9yJnV0bV9tZWRpdW09Z2l0aHViX3dlYnBhZ2UmdXRtX2NhbXBhaWduPXNwb25zb3IpCls8aW1nIHNyYz0iaHR0cHM6Ly9vcGVuYXBpLWdlbmVyYXRvci50ZWNoL2ltZy9jb21wYW5pZXMvdmlydHVhbGFuc29mdHdhcmUucG5nIiB3aWR0aD0iMTI4IiBoZWlnaHQ9IjEyOCI+XShodHRwczovL3d3dy52aXJ0dWFsYW5zb2Z0d2FyZS5jb20vP3V0bV9zb3VyY2U9b3BlbmFwaV9nZW5lcmF0b3ImdXRtX21lZGl1bT1naXRodWJfd2VicGFnZSZ1dG1fY2FtcGFpZ249c3BvbnNvcikKWzxpbWcgc3JjPSJodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gvaW1nL2NvbXBhbmllcy9tZXJnZWRldi5qcGVnIiB3aWR0aD0iMTI4IiBoZWlnaHQ9IjEyOCI+XShodHRwczovL3d3dy5tZXJnZS5kZXYvP3V0bV9zb3VyY2U9b3BlbmFwaV9nZW5lcmF0b3ImdXRtX21lZGl1bT1naXRodWJfd2VicGFnZSZ1dG1fY2FtcGFpZ249c3BvbnNvcikKWzxpbWcgc3JjPSJodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gvaW1nL2NvbXBhbmllcy9idXJrZXJ0LmpwZyIgd2lkdGg9IjEyOCIgaGVpZ2h0PSIxMjgiPl0oaHR0cHM6Ly93d3cuYnVya2VydC5jb20vP3V0bV9zb3VyY2U9b3BlbmFwaV9nZW5lcmF0b3ImdXRtX21lZGl1bT1naXRodWJfd2VicGFnZSZ1dG1fY2FtcGFpZ249c3BvbnNvcikKWzxpbWcgc3JjPSJodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gvaW1nL2NvbXBhbmllcy9maW5ib3VybmUucG5nIiB3aWR0aD0iMTI4IiBoZWlnaHQ9IjEyOCI+XShodHRwczovL3d3dy5maW5ib3VybmUuY29tLz91dG1fc291cmNlPW9wZW5hcGlfZ2VuZXJhdG9yJnV0bV9tZWRpdW09Z2l0aHViX3dlYnBhZ2UmdXRtX2NhbXBhaWduPXNwb25zb3IpCls8aW1nIHNyYz0iaHR0cHM6Ly9vcGVuYXBpLWdlbmVyYXRvci50ZWNoL2ltZy9jb21wYW5pZXMvYnVtcHNoLnBuZyIgd2lkdGg9IjEyOCIgaGVpZ2h0PSIxMjgiPl0oaHR0cHM6Ly9idW1wLnNoLz91dG1fc291cmNlPW9wZW5hcGlfZ2VuZXJhdG9yJnV0bV9tZWRpdW09Z2l0aHViX3dlYnBhZ2UmdXRtX2NhbXBhaWduPXNwb25zb3IpCls8aW1nIHNyYz0iaHR0cHM6Ly9vcGVuYXBpLWdlbmVyYXRvci50ZWNoL2ltZy9jb21wYW5pZXMvYmlsZXRvLnBuZyIgd2lkdGg9IjEyOCIgaGVpZ2h0PSIxMjgiPl0oaHR0cHM6Ly93d3cuYmlsZXRvLmNvbS8/dXRtX3NvdXJjZT1vcGVuYXBpX2dlbmVyYXRvciZ1dG1fbWVkaXVtPWdpdGh1Yl93ZWJwYWdlJnV0bV9jYW1wYWlnbj1zcG9uc29yKQpbPGltZyBzcmM9Imh0dHBzOi8vb3BlbmFwaS1nZW5lcmF0b3IudGVjaC9pbWcvY29tcGFuaWVzL2JhaXJlc2Rldi5wbmciIHdpZHRoPSIxMjgiIGhlaWdodD0iMTI4Ij5dKGh0dHBzOi8vd3d3LmJhaXJlc2Rldi5jb20vc3BvbnNvcmluZy1vcGVuLXNvdXJjZS1wcm9qZWN0cy8/dXRtX3NvdXJjZT1vcGVuYXBpX2dlbmVyYXRvciZ1dG1fbWVkaXVtPWdpdGh1Yl93ZWJwYWdlJnV0bV9jYW1wYWlnbj1zcG9uc29yKQpbPGltZyBzcmM9Imh0dHBzOi8vb3BlbmFwaS1nZW5lcmF0b3IudGVjaC9pbWcvY29tcGFuaWVzL2RtdGVjaC5qcGVnIiB3aWR0aD0iMTI4IiBoZWlnaHQ9IjEyOCI+XShodHRwczovL3d3dy5kbXRlY2guZGUvP3V0bV9zb3VyY2U9b3BlbmFwaV9nZW5lcmF0b3ImdXRtX21lZGl1bT1naXRodWJfd2VicGFnZSZ1dG1fY2FtcGFpZ249c3BvbnNvcikKWzxpbWcgc3JjPSJodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gvaW1nL2NvbXBhbmllcy9hZHllbi5wbmciIHdpZHRoPSIxMjgiIGhlaWdodD0iMTI4Ij5dKGh0dHBzOi8vYWR5ZW4uY29tLz91dG1fc291cmNlPW9wZW5hcGlfZ2VuZXJhdG9yJnV0bV9tZWRpdW09Z2l0aHViX3dlYnBhZ2UmdXRtX2NhbXBhaWduPXNwb25zb3IpCls8aW1nIHNyYz0iaHR0cHM6Ly9vcGVuYXBpLWdlbmVyYXRvci50ZWNoL2ltZy9jb21wYW5pZXMvZm9ybmV4LnBuZyIgd2lkdGg9IjEyOCIgaGVpZ2h0PSIxMjgiPl0oaHR0cHM6Ly9mb3JuZXguY29tLz91dG1fc291cmNlPW9wZW5hcGlfZ2VuZXJhdG9yJnV0bV9tZWRpdW09Z2l0aHViX3dlYnBhZ2UmdXRtX2NhbXBhaWduPXNwb25zb3IpCls8aW1nIHNyYz0iaHR0cHM6Ly9vcGVuYXBpLWdlbmVyYXRvci50ZWNoL2ltZy9jb21wYW5pZXMvYWxsb3lhdXRvbWF0aW9uLnBuZyIgd2lkdGg9IjEyOCIgaGVpZ2h0PSIxMjgiPl0oaHR0cHM6Ly9ydW5hbGxveS5jb20vc2lnbnVwP3V0bV9zb3VyY2U9Z2l0aHViJnV0bV9tZWRpdW09cmVmZXJyYWwmdXRtX2NhbXBhaWduPTE1MjRfb3BlbmFwaWdlbmVyYXRvcikKWzxpbWcgc3JjPSJodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gvaW1nL2NvbXBhbmllcy9zc3N0d2l0dGVyLnBuZyIgd2lkdGg9IjEyOCIgaGVpZ2h0PSIxMjgiPl0oaHR0cHM6Ly9zc3N0d2l0dGVyLmNvbS8/dXRtX3NvdXJjZT1naXRodWImdXRtX21lZGl1bT1yZWZlcnJhbCZ1dG1fY2FtcGFpZ249c3BvbnNvcikKWzxpbWcgc3JjPSJodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gvaW1nL2NvbXBhbmllcy9zdml4LnBuZyIgd2lkdGg9IjEyOCIgaGVpZ2h0PSIxMjgiPl0oaHR0cHM6Ly93d3cuc3ZpeC5jb20vP3V0bV9zb3VyY2U9b3BlbmFwaS1nZW5lcmF0b3ImdXRtX21lZGl1bT1zcG9uc29yc2hpcCZ1dG1fY2FtcGFpZ249b3NzLXNwb25zb3JzaGlwKQpbPGltZyBzcmM9Imh0dHBzOi8vb3BlbmFwaS1nZW5lcmF0b3IudGVjaC9pbWcvY29tcGFuaWVzL2xpdHNsaW5rLnBuZyIgd2lkdGg9IjEyOCIgaGVpZ2h0PSIxMjgiPl0oaHR0cHM6Ly9saXRzbGluay5jb20vc2VydmljZXMvYXJ0aWZpY2lhbC1pbnRlbGxpZ2VuY2U/dXRtX3NvdXJjZT1vcGVuYXBpLWdlbmVyYXRvciZ1dG1fbWVkaXVtPXNwb25zb3JzaGlwJnV0bV9jYW1wYWlnbj1vc3Mtc3BvbnNvcnNoaXApCls8aW1nIHNyYz0iaHR0cHM6Ly9vcGVuYXBpLWdlbmVyYXRvci50ZWNoL2ltZy9jb21wYW5pZXMvZGVzaWdubGkuanBnIiB3aWR0aD0iMTI4IiBoZWlnaHQ9IjEyOCI+XShodHRwczovL2Rlc2lnbmxpLmNvP3V0bV9zb3VyY2U9b3BlbmFwaS1nZW5lcmF0b3ImdXRtX21lZGl1bT1zcG9uc29yc2hpcCZ1dG1fY2FtcGFpZ249b3NzLXNwb25zb3JzaGlwKQpbPGltZyBzcmM9Imh0dHBzOi8vb3BlbmFwaS1nZW5lcmF0b3IudGVjaC9pbWcvY29tcGFuaWVzL2l0bS5wbmciIHdpZHRoPSIxMjgiIGhlaWdodD0iMTI4Ij5dKGh0dHBzOi8vb3BlbnNvdXJjZS5tdWVuY2hlbi5kZT91dG1fc291cmNlPW9wZW5hcGktZ2VuZXJhdG9yJnV0bV9tZWRpdW09c3BvbnNvcnNoaXAmdXRtX2NhbXBhaWduPW9zcy1zcG9uc29yc2hpcCkKWzxpbWcgc3JjPSJodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gvaW1nL2NvbXBhbmllcy9rb25nLnBuZyIgd2lkdGg9IjEyOCIgaGVpZ2h0PSIxMjgiPl0oaHR0cHM6Ly9rb25naHEuY29tL3Byb2R1Y3RzL2tvbmcta29ubmVjdD91dG1fbWVkaXVtPXJlZmVycmFsJnV0bV9zb3VyY2U9Z2l0aHViJnV0bV9jYW1wYWlnbj1wbGF0Zm9ybSZ1dG1fY29udGVudD1vcGVuYXBpLWdlbmVyYXRvcikKWzxpbWcgc3JjPSJodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gvaW1nL2NvbXBhbmllcy9yb3V0ZTRtZS5wbmciIHdpZHRoPSIxMjgiIGhlaWdodD0iMTI4Ij5dKGh0dHBzOi8vcm91dGU0bWUuY29tLz91dG1fc291cmNlPW9wZW5hcGktZ2VuZXJhdG9yJnV0bV9tZWRpdW09c3BvbnNvcnNoaXAmdXRtX2NhbXBhaWduPW9zcy1zcG9uc29yc2hpcCkKCiMjIyMgVGhhbmsgeW91IEdvRGFkZHkgZm9yIHNwb25zb3JpbmcgdGhlIGRvbWFpbiBuYW1lcywgTGlub2RlIGZvciBzcG9uc29yaW5nIHRoZSBWUFMsIENoZWNrbHkgZm9yIHNwb25zb3JpbmcgdGhlIEFQSSBtb25pdG9yaW5nIGFuZCBHcmFkbGUgZm9yIHNwb25zb3JpbmcgRGV2ZWxvY2l0eQoKWzxpbWcgc3JjPSJodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gvaW1nL2NvbXBhbmllcy9nb2RhZGR5LnBuZyIgd2lkdGg9IjE1MCI+XShodHRwczovL3d3dy5nb2RhZGR5LmNvbS8/dXRtX3NvdXJjZT1vcGVuYXBpX2dlbmVyYXRvciZ1dG1fbWVkaXVtPWdpdGh1Yl93ZWJwYWdlJnV0bV9jYW1wYWlnbj1zcG9uc29yKQpbIVtMaW5vZGVdKGh0dHBzOi8vd3d3Lmxpbm9kZS5jb20vbWVkaWEvaW1hZ2VzL2xvZ29zL3N0YW5kYXJkL2xpZ2h0L2xpbm9kZS1sb2dvX3N0YW5kYXJkX2xpZ2h0X3NtYWxsLnBuZyldKGh0dHBzOi8vd3d3Lmxpbm9kZS5jb20vP3V0bV9zb3VyY2U9b3BlbmFwaV9nZW5lcmF0b3ImdXRtX21lZGl1bT1naXRodWJfd2VicGFnZSZ1dG1fY2FtcGFpZ249c3BvbnNvcikKWzxpbWcgc3JjPSJodHRwczovL2VuY3J5cHRlZC10Ym4wLmdzdGF0aWMuY29tL2ltYWdlcz9xPXRibiUzQUFOZDlHY1JBaEVZYWRVeVpZekdVb3RaaVNkWGtWTXFxTEd1b2h5aXhMbDRlVXBVVjZwQWJVVUxMIiB3aWR0aD0iMTUwIj5dKGh0dHBzOi8vY2hlY2tseWhxLmNvbS8/dXRtX3NvdXJjZT1vcGVuYXBpX2dlbmVyYXRvciZ1dG1fbWVkaXVtPWdpdGh1Yl93ZWJwYWdlJnV0bV9jYW1wYWlnbj1zcG9uc29yKQpbPGltZyBzcmM9Imh0dHBzOi8vdXBsb2FkLndpa2ltZWRpYS5vcmcvd2lraXBlZGlhL2NvbW1vbnMvdGh1bWIvYy9jYi9HcmFkbGVfbG9nby5wbmcvMzIwcHgtR3JhZGxlX2xvZ28ucG5nIiB3aWR0aD0iMTUwIj5dKGh0dHBzOi8vZ3JhZGxlLm9yZz91dG1fc291cmNlPW9wZW5hcGlfZ2VuZXJhdG9yJnV0bV9tZWRpdW09Z2l0aHViX3dlYnBhZ2UmdXRtX2NhbXBhaWduPXNwb25zb3IpCgojIyBPdmVydmlldwoKT3BlbkFQSSBHZW5lcmF0b3IgYWxsb3dzIGdlbmVyYXRpb24gb2YgQVBJIGNsaWVudCBsaWJyYXJpZXMgKFNESyBnZW5lcmF0aW9uKSwgc2VydmVyIHN0dWJzLCAgZG9jdW1lbnRhdGlvbiBhbmQgY29uZmlndXJhdGlvbiBhdXRvbWF0aWNhbGx5IGdpdmVuIGFuIFtPcGVuQVBJIFNwZWNdKGh0dHBzOi8vZ2l0aHViLmNvbS9PQUkvT3BlbkFQSS1TcGVjaWZpY2F0aW9uKSAoYm90aCAyLjAgYW5kIDMuMCBhcmUgc3VwcG9ydGVkKS4gQ3VycmVudGx5LCB0aGUgZm9sbG93aW5nIGxhbmd1YWdlcy9mcmFtZXdvcmtzIGFyZSBzdXBwb3J0ZWQ6Cgp8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgTGFuZ3VhZ2VzL0ZyYW1ld29ya3MgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKfCAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSB8LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS18CnwgKipBUEkgY2xpZW50cyoqICAgICAgICAgICAgICAgICAgfCAqKkFjdGlvblNjcmlwdCoqLCAqKkFkYSoqLCAqKkFwZXgqKiwgKipCYXNoKiosICoqQyoqLCAqKkMjKiogKC5uZXQgMi4wLCAzLjUgb3IgbGF0ZXIsIC5ORVQgU3RhbmRhcmQgMS4zIC0gMi4xLCAuTkVUIENvcmUgMy4xLCAuTkVUIDUuMC4gTGlicmFyaWVzOiBSZXN0U2hhcnAsIEdlbmVyaWNIb3N0LCBIdHRwQ2xpZW50KSwgKipDKysqKiAoQXJkdWlubywgY3BwLXJlc3RzZGssIFF0NSwgVGl6ZW4sIFVucmVhbCBFbmdpbmUgNCksICoqQ2xvanVyZSoqLCAqKkNyeXN0YWwqKiwgKipEYXJ0KiosICoqRWxpeGlyKiosICoqRWxtKiosICoqRWlmZmVsKiosICoqRXJsYW5nKiosICoqR28qKiwgKipHcm9vdnkqKiwgKipIYXNrZWxsKiogKGh0dHAtY2xpZW50LCBTZXJ2YW50KSwgKipKYXZhKiogKEFwYWNoZSBIdHRwQ2xpZW50IDQueCwgQXBhY2hlIEh0dHBDbGllbnQgNS54LCBKZXJzZXkyLngsIE9rSHR0cCwgUmV0cm9maXQxLngsIFJldHJvZml0Mi54LCBGZWlnbiwgUmVzdFRlbXBsYXRlLCBSRVNURWFzeSwgVmVydHgsIEdvb2dsZSBBUEkgQ2xpZW50IExpYnJhcnkgZm9yIEphdmEsIFJlc3QtYXNzdXJlZCwgU3ByaW5nIDUgV2ViIENsaWVudCwgU3ByaW5nIDYgUmVzdENsaWVudCwgTWljcm9Qcm9maWxlIFJlc3QgQ2xpZW50LCBIZWxpZG9uKSwgKipKZXRicmFpbnMgSFRUUCBDbGllbnQqKiwgKipKdWxpYSoqLCAqKms2KiosICoqS290bGluKiosICoqTHVhKiosICoqTjRKUyoqLCAqKk5pbSoqLCAqKk5vZGUuanMvSmF2YVNjcmlwdCoqIChFUzUsIEVTNiwgQW5ndWxhckpTIHdpdGggR29vZ2xlIENsb3N1cmUgQ29tcGlsZXIgYW5ub3RhdGlvbnMsIEZsb3cgdHlwZXMsIEFwb2xsbyBHcmFwaFFMIERhdGFTdG9yZSksICoqT2JqZWN0aXZlLUMqKiwgKipPQ2FtbCoqLCAqKlBlcmwqKiwgKipQSFAqKiwgKipQb3dlclNoZWxsKiosICoqUHl0aG9uKiosICoqUioqLCAqKlJ1YnkqKiwgKipSdXN0KiogKGh5cGVyLCByZXF3ZXN0LCBydXN0LXNlcnZlciksICoqU2NhbGEqKiAoYWtrYSwgaHR0cDRzLCBzY2FsYXosIHN0dHAsIHN3YWdnZXItYXN5bmMtaHR0cGNsaWVudCwgcGVra28pLCAqKlN3aWZ0KiogKDIueCwgMy54LCA0LngsIDUueCksICoqVHlwZXNjcmlwdCoqIChBbmd1bGFySlMsIEFuZ3VsYXIgKDkueCAtIDE4LngpLCBBdXJlbGlhLCBBeGlvcywgRmV0Y2gsIEludmVyc2lmeSwgalF1ZXJ5LCBOZXN0anMsIE5vZGUsIHJlZHV4LXF1ZXJ5LCBSeGpzKSwgKipYb0pvKiosICoqWmFwaWVyKiogfAp8ICoqU2VydmVyIHN0dWJzKiogICAgICAgICAgICAgICAgIHwgKipBZGEqKiwgKipDIyoqIChBU1AuTkVUIENvcmUsIEF6dXJlIEZ1bmN0aW9ucyksICoqQysrKiogKFBpc3RhY2hlLCBSZXN0YmVkLCBRdDUgUUhUVFBFbmdpbmUpLCAqKkVybGFuZyoqLCAqKkYjKiogKEdpcmFmZmUpLCAqKkdvKiogKG5ldC9odHRwLCBHaW4sIEVjaG8pLCAqKkhhc2tlbGwqKiAoU2VydmFudCwgWWVzb2QpLCAqKkphdmEqKiAoTVNGNEosIFNwcmluZywgVW5kZXJ0b3csIEpBWC1SUzogQ0RJLCBDWEYsIEluZmxlY3RvciwgSmVyc2V5LCBSZXN0RWFzeSwgUGxheSBGcmFtZXdvcmssIFtQS01TVF0oaHR0cHM6Ly9naXRodWIuY29tL1Byb0thcm1hLUluYy9wa21zdC1nZXR0aW5nLXN0YXJ0ZWQtZXhhbXBsZXMpLCBbVmVydC54XShodHRwczovL3ZlcnR4LmlvLyksIFtBcGFjaGUgQ2FtZWxdKGh0dHBzOi8vY2FtZWwuYXBhY2hlLm9yZy8pLCBbSGVsaWRvbl0oaHR0cHM6Ly9oZWxpZG9uLmlvLykpLCAqKkp1bGlhKiosICoqS290bGluKiogKFNwcmluZyBCb290LCBbS3Rvcl0oaHR0cHM6Ly9naXRodWIuY29tL2t0b3Jpby9rdG9yKSwgW1ZlcnQueF0oaHR0cHM6Ly92ZXJ0eC5pby8pKSwgKipQSFAqKiAoW0ZsaWdodF0oaHR0cHM6Ly9kb2NzLmZsaWdodHBocC5jb20vKSwgTGFyYXZlbCwgTHVtZW4sIFtNZXp6aW8gKGZrYSBaZW5kIEV4cHJlc3NpdmUpXShodHRwczovL2dpdGh1Yi5jb20vbWV6emlvL21lenppbyksIFNsaW0sIFNpbGV4LCBbU3ltZm9ueV0oaHR0cHM6Ly9zeW1mb255LmNvbS8pKSwgKipQeXRob24qKiAoRmFzdEFQSSwgRmxhc2spLCAqKk5vZGVKUyoqLCAqKlJ1YnkqKiAoU2luYXRyYSwgUmFpbHM1KSwgKipSdXN0KiogKFtydXN0LXNlcnZlcl0oaHR0cHM6Ly9vcGVuYXBpLWdlbmVyYXRvci50ZWNoL2RvY3MvZ2VuZXJhdG9ycy9ydXN0LXNlcnZlci8pKSwgKipTY2FsYSoqIChBa2thLCBbRmluY2hdKGh0dHBzOi8vZ2l0aHViLmNvbS9maW5hZ2xlL2ZpbmNoKSwgW0xhZ29tXShodHRwczovL2dpdGh1Yi5jb20vbGFnb20vbGFnb20pLCBbUGxheV0oaHR0cHM6Ly93d3cucGxheWZyYW1ld29yay5jb20vKSwgW0Nhc2tdKGh0dHBzOi8vZ2l0aHViLmNvbS9jb20tbGloYW95aS9jYXNrKSwgU2NhbGF0cmEpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKfCAqKkFQSSBkb2N1bWVudGF0aW9uIGdlbmVyYXRvcnMqKiB8ICoqSFRNTCoqLCAqKkNvbmZsdWVuY2UgV2lraSoqLCAqKkFzY2lpZG9jKiosICoqTWFya2Rvd24qKiwgKipQbGFudFVNTCoqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8CnwgKipDb25maWd1cmF0aW9uIGZpbGVzKiogICAgICAgICAgfCBbKipBcGFjaGUyKipdKGh0dHBzOi8vaHR0cGQuYXBhY2hlLm9yZy8pICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAp8ICoqT3RoZXJzKiogICAgICAgICAgICAgICAgICAgICAgIHwgKipHcmFwaFFMKiosICoqSk1ldGVyKiosICoqS3Rvcm0qKiwgKipNeVNRTCBTY2hlbWEqKiwgKipQb3N0bWFuIENvbGxlY3Rpb24qKiwgKipQcm90b2NvbCBCdWZmZXIqKiwgKipXU0RMKiogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKCiMjIFRhYmxlIG9mIGNvbnRlbnRzCgogIC0gW09wZW5BUEkgR2VuZXJhdG9yXSgjb3BlbmFwaS1nZW5lcmF0b3IpCiAgLSBbT3ZlcnZpZXddKCNvdmVydmlldykKICAtIFtUYWJsZSBvZiBDb250ZW50c10oI3RhYmxlLW9mLWNvbnRlbnRzKQogIC0gWzEgLSBJbnN0YWxsYXRpb25dKCMxLS0taW5zdGFsbGF0aW9uKQogICAgLSBbMS4xIC0gQ29tcGF0aWJpbGl0eV0oIzExLS0tY29tcGF0aWJpbGl0eSkKICAgIC0gWzEuMiAtIEFydGlmYWN0cyBvbiBNYXZlbiBDZW50cmFsXSgjMTItLS1hcnRpZmFjdHMtb24tbWF2ZW4tY2VudHJhbCkKICAgIC0gWzEuMyAtIERvd25sb2FkIEpBUl0oIzEzLS0tZG93bmxvYWQtamFyKQogICAgLSBbMS40IC0gQnVpbGQgUHJvamVjdHNdKCMxNC0tLWJ1aWxkLXByb2plY3RzKQogICAgLSBbMS41IC0gSG9tZWJyZXddKCMxNS0tLWhvbWVicmV3KQogICAgLSBbMS42IC0gRG9ja2VyXSgjMTYtLS1kb2NrZXIpCiAgICAtIFsxLjcgLSBOUE1dKCMxNy0tLW5wbSkKICAtIFsyIC0gR2V0dGluZyBTdGFydGVkXSgjMi0tLWdldHRpbmctc3RhcnRlZCkKICAtIFszIC0gVXNhZ2VdKCMzLS0tdXNhZ2UpCiAgICAtIFszLjEgLSBDdXN0b21pemF0aW9uXSgjMzEtLS1jdXN0b21pemF0aW9uKQogICAgLSBbMy4yIC0gV29ya2Zsb3cgSW50ZWdyYXRpb25dKCMzMi0tLXdvcmtmbG93LWludGVncmF0aW9uLW1hdmVuLWdyYWRsZS1naXRodWItY2ljZCkKICAgIC0gWzMuMyAtIE9ubGluZSBHZW5lcmF0b3JzXSgjMzMtLS1vbmxpbmUtb3BlbmFwaS1nZW5lcmF0b3IpCiAgICAtIFszLjQgLSBMaWNlbnNlIEluZm9ybWF0aW9uIG9uIEdlbmVyYXRlZCBDb2RlXSgjMzQtLS1saWNlbnNlLWluZm9ybWF0aW9uLW9uLWdlbmVyYXRlZC1jb2RlKQogICAgLSBbMy41IC0gSURFIEludGVncmF0aW9uXSgjMzUtLS1pZGUtaW50ZWdyYXRpb24pCiAgLSBbNCAtIENvbXBhbmllcy9Qcm9qZWN0cyB1c2luZyBPcGVuQVBJIEdlbmVyYXRvcl0oIzQtLS1jb21wYW5pZXNwcm9qZWN0cy11c2luZy1vcGVuYXBpLWdlbmVyYXRvcikKICAtIFs1IC0gUHJlc2VudGF0aW9ucy9WaWRlb3MvVHV0b3JpYWxzL0Jvb2tzXSgjNS0tLXByZXNlbnRhdGlvbnN2aWRlb3N0dXRvcmlhbHNib29rcykKICAtIFs2IC0gQWJvdXQgVXNdKCM2LS0tYWJvdXQtdXMpCiAgICAtIFs2LjEgLSBPcGVuQVBJIEdlbmVyYXRvciBDb3JlIFRlYW1dKCM2MS0tLW9wZW5hcGktZ2VuZXJhdG9yLWNvcmUtdGVhbSkKICAgIC0gWzYuMiAtIE9wZW5BUEkgR2VuZXJhdG9yIFRlY2huaWNhbCBDb21taXR0ZWVdKCM2Mi0tLW9wZW5hcGktZ2VuZXJhdG9yLXRlY2huaWNhbC1jb21taXR0ZWUpCiAgICAtIFs2LjMgLSBIaXN0b3J5IG9mIE9wZW5BUEkgR2VuZXJhdG9yXSgjNjMtLS1oaXN0b3J5LW9mLW9wZW5hcGktZ2VuZXJhdG9yKQogIC0gWzcgLSBMaWNlbnNlXSgjNy0tLWxpY2Vuc2UpCgojIyBbMSAtIEluc3RhbGxhdGlvbl0oI3RhYmxlLW9mLWNvbnRlbnRzKQoKIyMjIFsxLjEgLSBDb21wYXRpYmlsaXR5XSgjdGFibGUtb2YtY29udGVudHMpCgpUaGUgT3BlbkFQSSBTcGVjaWZpY2F0aW9uIGhhcyB1bmRlcmdvbmUgMyByZXZpc2lvbnMgc2luY2UgaW5pdGlhbCBjcmVhdGlvbiBpbiAyMDEwLiAgVGhlIG9wZW5hcGktZ2VuZXJhdG9yIHByb2plY3QgaGFzIHRoZSBmb2xsb3dpbmcgY29tcGF0aWJpbGl0aWVzIHdpdGggdGhlIE9wZW5BUEkgU3BlY2lmaWNhdGlvbjoKCnwgT3BlbkFQSSBHZW5lcmF0b3IgVmVyc2lvbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgUmVsZWFzZSBEYXRlIHwgTm90ZXMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8CnwgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSB8CnwgNy44LjAgKHVwY29taW5nIG1pbm9yIHJlbGVhc2UpIFtTTkFQU0hPVF0oaHR0cHM6Ly9vc3Muc29uYXR5cGUub3JnL2NvbnRlbnQvcmVwb3NpdG9yaWVzL3NuYXBzaG90cy9vcmcvb3BlbmFwaXRvb2xzL29wZW5hcGktZ2VuZXJhdG9yLWNsaS83LjguMC1TTkFQU0hPVC8pIHwgMDkuMDguMjAyNCAgIHwgTWlub3IgcmVsZWFzZSB3aXRoIGJyZWFraW5nIGNoYW5nZXMgKHdpdGggZmFsbGJhY2spIHwKfCBbNy43LjBdKGh0dHBzOi8vZ2l0aHViLmNvbS9PcGVuQVBJVG9vbHMvb3BlbmFwaS1nZW5lcmF0b3IvcmVsZWFzZXMvdGFnL3Y3LjcuMCkgKGxhdGVzdCBzdGFibGUgcmVsZWFzZSkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAwMi4wNy4yMDI0ICAgfCBNaW5vciByZWxlYXNlIHdpdGggYnJlYWtpbmcgY2hhbmdlcyAod2l0aCBmYWxsYmFjaykgfAp8IFs2LjYuMF0oaHR0cHM6Ly9naXRodWIuY29tL09wZW5BUElUb29scy9vcGVuYXBpLWdlbmVyYXRvci9yZWxlYXNlcy90YWcvdjYuNi4wKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IDExLjA1LjIwMjMgICB8IE1pbm9yIHJlbGVhc2Ugd2l0aCBicmVha2luZyBjaGFuZ2VzICh3aXRoIGZhbGxiYWNrKSB8CnwgWzUuNC4wXShodHRwczovL2dpdGh1Yi5jb20vT3BlbkFQSVRvb2xzL29wZW5hcGktZ2VuZXJhdG9yL3JlbGVhc2VzL3RhZy92NS40LjApICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgMzEuMDEuMjAyMiAgIHwgTWlub3IgcmVsZWFzZSB3aXRoIGJyZWFraW5nIGNoYW5nZXMgKHdpdGggZmFsbGJhY2spIHwKfCBbNC4zLjFdKGh0dHBzOi8vZ2l0aHViLmNvbS9PcGVuQVBJVG9vbHMvb3BlbmFwaS1nZW5lcmF0b3IvcmVsZWFzZXMvdGFnL3Y0LjMuMSkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAwNi4wNS4yMDIwICAgfCBQYXRjaCByZWxlYXNlIChlbmhhbmNlbWVudHMsIGJ1ZyBmaXhlcywgZXRjKSAgICAgICAgICAgICAgICAgICAgICAgfAoKT3BlbkFQSSBTcGVjIGNvbXBhdGliaWxpdHk6IDEuMCwgMS4xLCAxLjIsIDIuMCwgMy4wLCAzLjEgKGJldGEgc3VwcG9ydCkKCihXZSBkbyBub3QgcHVibGlzaCBkYWlseS9uaWdodGx5IGJ1aWxkLiBQbGVhc2UgdXNlIFNOQVBTSE9UIGluc3RlYWQpCgpGb3Igb2xkIHJlbGVhc2VzLCBwbGVhc2UgcmVmZXIgdG8gdGhlIFsqKlJlbGVhc2UqKl0oaHR0cHM6Ly9naXRodWIuY29tL09wZW5BUElUb29scy9vcGVuYXBpLWdlbmVyYXRvci9yZWxlYXNlcykgcGFnZS4KCkZvciBkZWNvbWlzc2lvbmVkIGdlbmVyYXRvcnMvbGlicmFyaWVzL2ZyYW1ld29ya3MsIHBsZWFzZSByZWZlciB0byBbdGhlICJEZWNvbW1pc3Npb24iIGxhYmVsXShodHRwczovL2dpdGh1Yi5jb20vT3BlbkFQSVRvb2xzL29wZW5hcGktZ2VuZXJhdG9yL2lzc3Vlcz9xPWxhYmVsJTNBRGVjb21taXNzaW9uK2lzJTNBbWVyZ2VkKykgaW4gdGhlIHB1bGwgcmVxdWVzdCBwYWdlLgoKIyMgWzEuMiAtIEFydGlmYWN0cyBvbiBNYXZlbiBDZW50cmFsXSgjdGFibGUtb2YtY29udGVudHMpCgpZb3UgY2FuIGZpbmQgb3VyIHJlbGVhc2VkIGFydGlmYWN0cyBvbiBtYXZlbiBjZW50cmFsOgoKKipDb3JlOioqCmBgYHhtbAo8ZGVwZW5kZW5jeT4KICAgIDxncm91cElkPm9yZy5vcGVuYXBpdG9vbHM8L2dyb3VwSWQ+CiAgICA8YXJ0aWZhY3RJZD5vcGVuYXBpLWdlbmVyYXRvcjwvYXJ0aWZhY3RJZD4KICAgIDx2ZXJzaW9uPiR7b3BlbmFwaS1nZW5lcmF0b3ItdmVyc2lvbn08L3ZlcnNpb24+CjwvZGVwZW5kZW5jeT4KYGBgClNlZSB0aGUgZGlmZmVyZW50IHZlcnNpb25zIG9mIHRoZSBbb3BlbmFwaS1nZW5lcmF0b3JdKGh0dHBzOi8vc2VhcmNoLm1hdmVuLm9yZy9hcnRpZmFjdC9vcmcub3BlbmFwaXRvb2xzL29wZW5hcGktZ2VuZXJhdG9yKSBhcnRpZmFjdCBhdmFpbGFibGUgb24gbWF2ZW4gY2VudHJhbC4KCioqQ2xpOioqCmBgYHhtbAo8ZGVwZW5kZW5jeT4KICAgIDxncm91cElkPm9yZy5vcGVuYXBpdG9vbHM8L2dyb3VwSWQ+CiAgICA8YXJ0aWZhY3RJZD5vcGVuYXBpLWdlbmVyYXRvci1jbGk8L2FydGlmYWN0SWQ+CiAgICA8dmVyc2lvbj4ke29wZW5hcGktZ2VuZXJhdG9yLXZlcnNpb259PC92ZXJzaW9uPgo8L2RlcGVuZGVuY3k+CmBgYApTZWUgdGhlIGRpZmZlcmVudCB2ZXJzaW9ucyBvZiB0aGUgW29wZW5hcGktZ2VuZXJhdG9yLWNsaV0oaHR0cHM6Ly9zZWFyY2gubWF2ZW4ub3JnL2FydGlmYWN0L29yZy5vcGVuYXBpdG9vbHMvb3BlbmFwaS1nZW5lcmF0b3ItY2xpKSBhcnRpZmFjdCBhdmFpbGFibGUgb24gbWF2ZW4gY2VudHJhbC4KCioqTWF2ZW4gcGx1Z2luOioqCmBgYHhtbAo8ZGVwZW5kZW5jeT4KICAgIDxncm91cElkPm9yZy5vcGVuYXBpdG9vbHM8L2dyb3VwSWQ+CiAgICA8YXJ0aWZhY3RJZD5vcGVuYXBpLWdlbmVyYXRvci1tYXZlbi1wbHVnaW48L2FydGlmYWN0SWQ+CiAgICA8dmVyc2lvbj4ke29wZW5hcGktZ2VuZXJhdG9yLXZlcnNpb259PC92ZXJzaW9uPgo8L2RlcGVuZGVuY3k+CmBgYAoqIFNlZSB0aGUgZGlmZmVyZW50IHZlcnNpb25zIG9mIHRoZSBbb3BlbmFwaS1nZW5lcmF0b3ItbWF2ZW4tcGx1Z2luXShodHRwczovL3NlYXJjaC5tYXZlbi5vcmcvYXJ0aWZhY3Qvb3JnLm9wZW5hcGl0b29scy9vcGVuYXBpLWdlbmVyYXRvci1tYXZlbi1wbHVnaW4pIGFydGlmYWN0IGF2YWlsYWJsZSBvbiBtYXZlbiBjZW50cmFsLgoqIFtSZWFkbWVdKGh0dHBzOi8vZ2l0aHViLmNvbS9PcGVuQVBJVG9vbHMvb3BlbmFwaS1nZW5lcmF0b3IvYmxvYi9tYXN0ZXIvbW9kdWxlcy9vcGVuYXBpLWdlbmVyYXRvci1tYXZlbi1wbHVnaW4vUkVBRE1FLm1kKQoKKipHcmFkbGUgcGx1Z2luOioqCmBgYHhtbAo8ZGVwZW5kZW5jeT4KICAgIDxncm91cElkPm9yZy5vcGVuYXBpdG9vbHM8L2dyb3VwSWQ+CiAgICA8YXJ0aWZhY3RJZD5vcGVuYXBpLWdlbmVyYXRvci1ncmFkbGUtcGx1Z2luPC9hcnRpZmFjdElkPgogICAgPHZlcnNpb24+JHtvcGVuYXBpLWdlbmVyYXRvci12ZXJzaW9ufTwvdmVyc2lvbj4KPC9kZXBlbmRlbmN5PgpgYGAKKiBTZWUgdGhlIGRpZmZlcmVudCB2ZXJzaW9ucyBvZiB0aGUgW29wZW5hcGktZ2VuZXJhdG9yLWdyYWRsZS1wbHVnaW5dKGh0dHBzOi8vc2VhcmNoLm1hdmVuLm9yZy9hcnRpZmFjdC9vcmcub3BlbmFwaXRvb2xzL29wZW5hcGktZ2VuZXJhdG9yLWdyYWRsZS1wbHVnaW4pIGFydGlmYWN0IGF2YWlsYWJsZSBvbiBtYXZlbiBjZW50cmFsLgoqIFtSZWFkbWVdKGh0dHBzOi8vZ2l0aHViLmNvbS9PcGVuQVBJVG9vbHMvb3BlbmFwaS1nZW5lcmF0b3IvYmxvYi9tYXN0ZXIvbW9kdWxlcy9vcGVuYXBpLWdlbmVyYXRvci1ncmFkbGUtcGx1Z2luL1JFQURNRS5hZG9jKQoKIyMjIFsxLjMgLSBEb3dubG9hZCBKQVJdKCN0YWJsZS1vZi1jb250ZW50cykKPCEtLSBSRUxFQVNFX1ZFUlNJT04gLS0+CklmIHlvdSdyZSBsb29raW5nIGZvciB0aGUgbGF0ZXN0IHN0YWJsZSB2ZXJzaW9uLCB5b3UgY2FuIGdyYWIgaXQgZGlyZWN0bHkgZnJvbSBNYXZlbi5vcmcgKEphdmEgMTEgcnVudGltZSBhdCBhIG1pbmltdW0pOgoKSkFSIGxvY2F0aW9uOiBgaHR0cHM6Ly9yZXBvMS5tYXZlbi5vcmcvbWF2ZW4yL29yZy9vcGVuYXBpdG9vbHMvb3BlbmFwaS1nZW5lcmF0b3ItY2xpLzcuNy4wL29wZW5hcGktZ2VuZXJhdG9yLWNsaS03LjcuMC5qYXJgCgpGb3IgKipNYWMvTGludXgqKiB1c2VyczoKYGBgc2gKd2dldCBodHRwczovL3JlcG8xLm1hdmVuLm9yZy9tYXZlbjIvb3JnL29wZW5hcGl0b29scy9vcGVuYXBpLWdlbmVyYXRvci1jbGkvNy43LjAvb3BlbmFwaS1nZW5lcmF0b3ItY2xpLTcuNy4wLmphciAtTyBvcGVuYXBpLWdlbmVyYXRvci1jbGkuamFyCmBgYAoKRm9yICoqV2luZG93cyoqIHVzZXJzLCB5b3Ugd2lsbCBuZWVkIHRvIGluc3RhbGwgW3dnZXRdKGh0dHA6Ly9nbnV3aW4zMi5zb3VyY2Vmb3JnZS5uZXQvcGFja2FnZXMvd2dldC5odG0pIG9yIHlvdSBjYW4gdXNlIEludm9rZS1XZWJSZXF1ZXN0IGluIFBvd2VyU2hlbGwgKDMuMCspLCBlLmcuCmBgYApJbnZva2UtV2ViUmVxdWVzdCAtT3V0RmlsZSBvcGVuYXBpLWdlbmVyYXRvci1jbGkuamFyIGh0dHBzOi8vcmVwbzEubWF2ZW4ub3JnL21hdmVuMi9vcmcvb3BlbmFwaXRvb2xzL29wZW5hcGktZ2VuZXJhdG9yLWNsaS83LjcuMC9vcGVuYXBpLWdlbmVyYXRvci1jbGktNy43LjAuamFyCmBgYAoKQWZ0ZXIgZG93bmxvYWRpbmcgdGhlIEpBUiwgcnVuIGBqYXZhIC1qYXIgb3BlbmFwaS1nZW5lcmF0b3ItY2xpLmphciBoZWxwYCB0byBzaG93IHRoZSB1c2FnZS4KCkZvciBNYWMgdXNlcnMsIHBsZWFzZSBtYWtlIHN1cmUgSmF2YSAxMSBpcyBpbnN0YWxsZWQgKFRpcHM6IHJ1biBgamF2YSAtdmVyc2lvbmAgdG8gY2hlY2sgdGhlIHZlcnNpb24pLCBhbmQgZXhwb3J0IGBKQVZBX0hPTUVgIGluIG9yZGVyIHRvIHVzZSB0aGUgc3VwcG9ydGVkIEphdmEgdmVyc2lvbjoKYGBgc2gKZXhwb3J0IEpBVkFfSE9NRT1gL3Vzci9saWJleGVjL2phdmFfaG9tZSAtdiAxLjExYApleHBvcnQgUEFUSD0ke0pBVkFfSE9NRX0vYmluOiRQQVRICmBgYAoKPCEtLSAvUkVMRUFTRV9WRVJTSU9OIC0tPgojIyMgTGF1bmNoZXIgU2NyaXB0CgpPbmUgZG93bnNpZGUgdG8gbWFudWFsIGphciBkb3dubG9hZHMgaXMgdGhhdCB5b3UgZG9uJ3Qga2VlcCB1cC10by1kYXRlIHdpdGggdGhlIGxhdGVzdCByZWxlYXNlZCB2ZXJzaW9uLiBXZSBoYXZlIGEgQmFzaCBsYXVuY2hlciBzY3JpcHQgYXQgW2Jpbi91dGlscy9vcGVuYXBpLWdlbmVyYXRvci5jbGkuc2hdKC4vYmluL3V0aWxzL29wZW5hcGktZ2VuZXJhdG9yLWNsaS5zaCkgd2hpY2ggcmVzb2x2ZXMgdGhpcyBpc3N1ZS4KClRvIGluc3RhbGwgdGhlIGxhdW5jaGVyIHNjcmlwdCwgY29weSB0aGUgY29udGVudHMgb2YgdGhlIHNjcmlwdCB0byBhIGxvY2F0aW9uIG9uIHlvdXIgcGF0aCBhbmQgbWFrZSB0aGUgc2NyaXB0IGV4ZWN1dGFibGUuCgpBbiBleGFtcGxlIG9mIHNldHRpbmcgdGhpcyB1cCAoTk9URTogQWx3YXlzIGV2YWx1YXRlIHNjcmlwdHMgY3VybGVkIGZyb20gZXh0ZXJuYWwgc3lzdGVtcyBiZWZvcmUgZXhlY3V0aW5nIHRoZW0pLgoKYGBgCm1rZGlyIC1wIH4vYmluL29wZW5hcGl0b29scwpjdXJsIGh0dHBzOi8vcmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbS9PcGVuQVBJVG9vbHMvb3BlbmFwaS1nZW5lcmF0b3IvbWFzdGVyL2Jpbi91dGlscy9vcGVuYXBpLWdlbmVyYXRvci1jbGkuc2ggPiB+L2Jpbi9vcGVuYXBpdG9vbHMvb3BlbmFwaS1nZW5lcmF0b3ItY2xpCmNobW9kIHUreCB+L2Jpbi9vcGVuYXBpdG9vbHMvb3BlbmFwaS1nZW5lcmF0b3ItY2xpCmV4cG9ydCBQQVRIPSRQQVRIOn4vYmluL29wZW5hcGl0b29scy8KYGBgCgpOb3csIGBvcGVuYXBpLWdlbmVyYXRvci1jbGlgIGlzICJpbnN0YWxsZWQiLiBPbiBpbnZvY2F0aW9uLCBpdCB3aWxsIHF1ZXJ5IHRoZSBHaXRIdWIgcmVwb3NpdG9yeSBmb3IgdGhlIG1vc3QgcmVjZW50bHkgcmVsZWFzZWQgdmVyc2lvbi4gSWYgdGhpcyBtYXRjaGVzIHRoZSBsYXN0IGRvd25sb2FkZWQgamFyLAppdCB3aWxsIGV4ZWN1dGUgYXMgbm9ybWFsLiBJZiBhIG5ld2VyIHZlcnNpb24gaXMgZm91bmQsIHRoZSBzY3JpcHQgd2lsbCBkb3dubG9hZCB0aGUgbGF0ZXN0IHJlbGVhc2UgYW5kIGV4ZWN1dGUgaXQuCgpJZiB5b3UgbmVlZCB0byBpbnZva2UgYW4gb2xkZXIgdmVyc2lvbiBvZiB0aGUgZ2VuZXJhdG9yLCB5b3UgY2FuIGRlZmluZSB0aGUgdmFyaWFibGUgYE9QRU5BUElfR0VORVJBVE9SX1ZFUlNJT05gIGVpdGhlciBhZCBob2Mgb3IgZ2xvYmFsbHkuIFlvdSBjYW4gZXhwb3J0IHRoaXMgdmFyaWFibGUgaWYgeW91J2QgbGlrZSB0byBwZXJzaXN0IGEgc3BlY2lmaWMgcmVsZWFzZSB2ZXJzaW9uLgoKRXhhbXBsZXM6CgpgYGAKIyBFeGVjdXRlIGxhdGVzdCByZWxlYXNlZCBvcGVuYXBpLWdlbmVyYXRvci1jbGkKb3BlbmFwaS1nZW5lcmF0b3ItY2xpIHZlcnNpb24KCiMgRXhlY3V0ZSB2ZXJzaW9uIDQuMS4wIGZvciB0aGUgY3VycmVudCBpbnZvY2F0aW9uLCByZWdhcmRsZXNzIG9mIHRoZSBsYXRlc3QgcmVsZWFzZWQgdmVyc2lvbgpPUEVOQVBJX0dFTkVSQVRPUl9WRVJTSU9OPTQuMS4wIG9wZW5hcGktZ2VuZXJhdG9yLWNsaSB2ZXJzaW9uCgojIEV4ZWN1dGUgdmVyc2lvbiA0LjEuMC1TTkFQU0hPVCBmb3IgdGhlIGN1cnJlbnQgaW52b2NhdGlvbgpPUEVOQVBJX0dFTkVSQVRPUl9WRVJTSU9OPTQuMS4wLVNOQVBTSE9UIG9wZW5hcGktZ2VuZXJhdG9yLWNsaSB2ZXJzaW9uCgojIEV4ZWN1dGUgdmVyc2lvbiA0LjAuMiBmb3IgZXZlcnkgaW52b2NhdGlvbiBpbiB0aGUgY3VycmVudCBzaGVsbCBzZXNzaW9uCmV4cG9ydCBPUEVOQVBJX0dFTkVSQVRPUl9WRVJTSU9OPTQuMC4yCm9wZW5hcGktZ2VuZXJhdG9yLWNsaSB2ZXJzaW9uICMgaXMgNC4wLjIKb3BlbmFwaS1nZW5lcmF0b3ItY2xpIHZlcnNpb24gIyBpcyBhbHNvIDQuMC4yCgojIFRvICJpbnN0YWxsIiBhIHNwZWNpZmljIHZlcnNpb24sIHNldCB0aGUgdmFyaWFibGUgaW4gLmJhc2hyYy8uYmFzaF9wcm9maWxlCmVjaG8gImV4cG9ydCBPUEVOQVBJX0dFTkVSQVRPUl9WRVJTSU9OPTQuMC4yIiA+PiB+Ly5iYXNocmMKc291cmNlIH4vLmJhc2hyYwpvcGVuYXBpLWdlbmVyYXRvci1jbGkgdmVyc2lvbiAjIGlzIGFsd2F5cyA0LjAuMiwgdW5sZXNzIGFueSBvZiB0aGUgYWJvdmUgb3ZlcnJpZGVzIGFyZSBkb25lIGFkIGhvYwpgYGAKCiMjIyBbMS40IC0gQnVpbGQgUHJvamVjdHNdKCN0YWJsZS1vZi1jb250ZW50cykKClRvIGJ1aWxkIGZyb20gc291cmNlLCB5b3UgbmVlZCB0aGUgZm9sbG93aW5nIGluc3RhbGxlZCBhbmQgYXZhaWxhYmxlIGluIHlvdXIgYCRQQVRIOmAKCiogW0phdmEgMTFdKGh0dHBzOi8vYWRvcHRpdW0ubmV0LykKCiogW0FwYWNoZSBNYXZlbiAzLjguOCBvciBncmVhdGVyXShodHRwczovL21hdmVuLmFwYWNoZS5vcmcvKSAob3B0aW9uYWwpCgpBZnRlciBjbG9uaW5nIHRoZSBwcm9qZWN0LCB5b3UgY2FuIGJ1aWxkIGl0IGZyb20gc291cmNlIHVzaW5nIFttYXZlbiB3cmFwcGVyXShodHRwczovL21hdmVuLmFwYWNoZS5vcmcvd3JhcHBlci8pOgoKLSBMaW51eDogYC4vbXZudyBjbGVhbiBpbnN0YWxsYAotIFdpbmRvd3M6IGBtdm53LmNtZCBjbGVhbiBpbnN0YWxsYAoKIyMjIyBOaXggdXNlcnMKCklmIHlvdSdyZSBhIG5peCB1c2VyLCB5b3UgY2FuIGVudGVyIE9wZW5BUEkgR2VuZXJhdG9yIHNoZWxsLCBieSB0eXBpbmc6CmBgYHNoCm5peCBkZXZlbG9wCmBgYApJdCB3aWxsIGVudGVyIGEgc2hlbGwgd2l0aCBKYXZhIDExIGluc3RhbGxlZC4KCkRpcmVudiBzdXBwb3J0cyBhdXRvbWF0aWNhbGx5IGxvYWRpbmcgb2YgdGhlIG5peCBkZXZlbG9wZXIgc2hlbGwsIHNvIGlmIHlvdSdyZSB1c2luZyBkaXJlbnYgdG9vLCB0eXBlOgpgYGBzaApkaXJlbnYgYWxsb3cKYGBgCmFuZCBoYXZlIGBqYXZhYCBhbmQgYG12bmAgc2V0IHVwIHdpdGggY29ycmVjdCB2ZXJzaW9ucyBlYWNoIHRpbWUgeW91IGVudGVyIHByb2plY3QgZGlyZWN0b3J5LgoKVGhlIGRlZmF1bHQgYnVpbGQgY29udGFpbnMgbWluaW1hbCBzdGF0aWMgYW5hbHlzaXMgKHZpYSBDaGVja1N0eWxlKS4gVG8gcnVuIHlvdXIgYnVpbGQgd2l0aCBQTUQgYW5kIFNwb3RidWdzLCB1c2UgdGhlIGBzdGF0aWMtYW5hbHlzaXNgIHByb2ZpbGU6CgotIExpbnV4OiBgLi9tdm53IC1Qc3RhdGljLWFuYWx5c2lzIGNsZWFuIGluc3RhbGxgCi0gV2luZG93czogYG12bncuY21kIC1Qc3RhdGljLWFuYWx5c2lzIGNsZWFuIGluc3RhbGxgCgojIyMgWzEuNSAtIEhvbWVicmV3XSgjdGFibGUtb2YtY29udGVudHMpCgpUbyBpbnN0YWxsLCBydW4gYGJyZXcgaW5zdGFsbCBvcGVuYXBpLWdlbmVyYXRvcmAKCkhlcmUgaXMgYW4gZXhhbXBsZSB1c2FnZSB0byBnZW5lcmF0ZSBhIFJ1YnkgY2xpZW50OgpgYGBzaApvcGVuYXBpLWdlbmVyYXRvciBnZW5lcmF0ZSAtaSBodHRwczovL3Jhdy5naXRodWJ1c2VyY29udGVudC5jb20vb3BlbmFwaXRvb2xzL29wZW5hcGktZ2VuZXJhdG9yL21hc3Rlci9tb2R1bGVzL29wZW5hcGktZ2VuZXJhdG9yL3NyYy90ZXN0L3Jlc291cmNlcy8zXzAvcGV0c3RvcmUueWFtbCAtZyBydWJ5IC1vIC90bXAvdGVzdC8KYGBgCgpUbyByZWluc3RhbGwgd2l0aCB0aGUgbGF0ZXN0IG1hc3RlciwgcnVuIGBicmV3IHVuaW5zdGFsbCBvcGVuYXBpLWdlbmVyYXRvciAmJiBicmV3IGluc3RhbGwgLS1IRUFEIG9wZW5hcGktZ2VuZXJhdG9yYAoKVG8gaW5zdGFsbCBPcGVuSkRLIChwcmUtcmVxdWlzaXRlcyksIHBsZWFzZSBydW4KYGBgc2gKYnJldyB0YXAgQWRvcHRPcGVuSkRLL29wZW5qZGsKYnJldyBpbnN0YWxsIC0tY2FzayBhZG9wdG9wZW5qZGsxMQpleHBvcnQgSkFWQV9IT01FPWAvdXNyL2xpYmV4ZWMvamF2YV9ob21lIC12IDEuMTFgCmBgYAoKb3IgZG93bmxvYWQgaW5zdGFsbGVyIHZpYSBodHRwczovL2Fkb3B0aXVtLm5ldC8KClRvIGluc3RhbGwgTWF2ZW4gKG9wdGlvbmFsKSwgcGxlYXNlIHJ1bgpgYGBzaApicmV3IGluc3RhbGwgbWF2ZW4KYGBgCgojIyMgWzEuNiAtIERvY2tlcl0oI3RhYmxlLW9mLWNvbnRlbnRzKQoKIyMjIyBQdWJsaWMgUHJlLWJ1aWx0IERvY2tlciBpbWFnZXMKCiAtIFtodHRwczovL2h1Yi5kb2NrZXIuY29tL3Ivb3BlbmFwaXRvb2xzL29wZW5hcGktZ2VuZXJhdG9yLWNsaS9dKGh0dHBzOi8vaHViLmRvY2tlci5jb20vci9vcGVuYXBpdG9vbHMvb3BlbmFwaS1nZW5lcmF0b3ItY2xpLykgKG9mZmljaWFsIENMSSkKIC0gW2h0dHBzOi8vaHViLmRvY2tlci5jb20vci9vcGVuYXBpdG9vbHMvb3BlbmFwaS1nZW5lcmF0b3Itb25saW5lL10oaHR0cHM6Ly9odWIuZG9ja2VyLmNvbS9yL29wZW5hcGl0b29scy9vcGVuYXBpLWdlbmVyYXRvci1vbmxpbmUvKSAob2ZmaWNpYWwgd2ViIHNlcnZpY2UpCgoKIyMjIyBPcGVuQVBJIEdlbmVyYXRvciBDTEkgRG9ja2VyIEltYWdlCgpUaGUgT3BlbkFQSSBHZW5lcmF0b3IgaW1hZ2UgYWN0cyBhcyBhIHN0YW5kYWxvbmUgZXhlY3V0YWJsZS4gSXQgY2FuIGJlIHVzZWQgYXMgYW4gYWx0ZXJuYXRpdmUgdG8gaW5zdGFsbGluZyB2aWEgaG9tZWJyZXcsIG9yIGZvciBkZXZlbG9wZXJzIHdobyBhcmUgdW5hYmxlIHRvIGluc3RhbGwgSmF2YSBvciB1cGdyYWRlIHRoZSBpbnN0YWxsZWQgdmVyc2lvbi4KClRvIGdlbmVyYXRlIGNvZGUgd2l0aCB0aGlzIGltYWdlLCB5b3UnbGwgbmVlZCB0byBtb3VudCBhIGxvY2FsIGxvY2F0aW9uIGFzIGEgdm9sdW1lLgoKRXhhbXBsZToKCmBgYHNoCmRvY2tlciBydW4gLS1ybSAtdiAiJHtQV0R9Oi9sb2NhbCIgb3BlbmFwaXRvb2xzL29wZW5hcGktZ2VuZXJhdG9yLWNsaSBnZW5lcmF0ZSBcCiAgICAtaSBodHRwczovL3Jhdy5naXRodWJ1c2VyY29udGVudC5jb20vb3BlbmFwaXRvb2xzL29wZW5hcGktZ2VuZXJhdG9yL21hc3Rlci9tb2R1bGVzL29wZW5hcGktZ2VuZXJhdG9yL3NyYy90ZXN0L3Jlc291cmNlcy8zXzAvcGV0c3RvcmUueWFtbCBcCiAgICAtZyBnbyBcCiAgICAtbyAvbG9jYWwvb3V0L2dvCmBgYAoKVGhlIGdlbmVyYXRlZCBjb2RlIHdpbGwgYmUgbG9jYXRlZCB1bmRlciBgLi9vdXQvZ29gIGluIHRoZSBjdXJyZW50IGRpcmVjdG9yeS4KCiMjIyMgT3BlbkFQSSBHZW5lcmF0b3IgT25saW5lIERvY2tlciBJbWFnZQoKVGhlIG9wZW5hcGktZ2VuZXJhdG9yLW9ubGluZSBpbWFnZSBjYW4gYWN0IGFzIGEgc2VsZi1ob3N0ZWQgd2ViIGFwcGxpY2F0aW9uIGFuZCBBUEkgZm9yIGdlbmVyYXRpbmcgY29kZS4gVGhpcyBjb250YWluZXIgY2FuIGJlIGluY29ycG9yYXRlZCBpbnRvIGEgQ0kgcGlwZWxpbmUsIGFuZCByZXF1aXJlcyBhdCBsZWFzdCB0d28gSFRUUCByZXF1ZXN0cyBhbmQgc29tZSBkb2NrZXIgb3JjaGVzdHJhdGlvbiB0byBhY2Nlc3MgZ2VuZXJhdGVkIGNvZGUuCgpFeGFtcGxlIHVzYWdlOgoKYGBgc2gKIyBTdGFydCBjb250YWluZXIgYXQgcG9ydCA4ODg4IGFuZCBzYXZlIHRoZSBjb250YWluZXIgaWQKPiBDSUQ9JChkb2NrZXIgcnVuIC1kIC1wIDg4ODg6ODA4MCBvcGVuYXBpdG9vbHMvb3BlbmFwaS1nZW5lcmF0b3Itb25saW5lKQoKIyBhbGxvdyBmb3Igc3RhcnR1cAo+IHNsZWVwIDEwCgojIEdldCB0aGUgSVAgb2YgdGhlIHJ1bm5pbmcgY29udGFpbmVyIChvcHRpb25hbCkKR0VOX0lQPSQoZG9ja2VyIGluc3BlY3QgLS1mb3JtYXQgJ3t7Lk5ldHdvcmtTZXR0aW5ncy5JUEFkZHJlc3N9fScgICRDSUQpCgojIEV4ZWN1dGUgYW4gSFRUUCByZXF1ZXN0IHRvIGdlbmVyYXRlIGEgUnVieSBjbGllbnQKPiBjdXJsIC1YIFBPU1QgLS1oZWFkZXIgJ0NvbnRlbnQtVHlwZTogYXBwbGljYXRpb24vanNvbicgLS1oZWFkZXIgJ0FjY2VwdDogYXBwbGljYXRpb24vanNvbicgXAotZCAneyJvcGVuQVBJVXJsIjogImh0dHBzOi8vcmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbS9vcGVuYXBpdG9vbHMvb3BlbmFwaS1nZW5lcmF0b3IvbWFzdGVyL21vZHVsZXMvb3BlbmFwaS1nZW5lcmF0b3Ivc3JjL3Rlc3QvcmVzb3VyY2VzLzNfMC9wZXRzdG9yZS55YW1sIn0nIFwKJ2h0dHA6Ly9sb2NhbGhvc3Q6ODg4OC9hcGkvZ2VuL2NsaWVudHMvcnVieScKCnsiY29kZSI6ImMyZDQ4My4zLjQ2NzItNDBlOS05MWRmLWI5ZmZkMThkMjJiOCIsImxpbmsiOiJodHRwOi8vbG9jYWxob3N0Ojg4ODgvYXBpL2dlbi9kb3dubG9hZC9jMmQ0ODMuMy40NjcyLTQwZTktOTFkZi1iOWZmZDE4ZDIyYjgifQoKIyBEb3dubG9hZCB0aGUgZ2VuZXJhdGVkIHppcCBmaWxlCj4gd2dldCBodHRwOi8vbG9jYWxob3N0Ojg4ODgvYXBpL2dlbi9kb3dubG9hZC9jMmQ0ODMuMy40NjcyLTQwZTktOTFkZi1iOWZmZDE4ZDIyYjgKCiMgVW56aXAgdGhlIGZpbGUKPiB1bnppcCBjMmQ0ODMuMy40NjcyLTQwZTktOTFkZi1iOWZmZDE4ZDIyYjgKCiMgU2h1dGRvd24gdGhlIG9wZW5hcGkgZ2VuZXJhdG9yIGltYWdlCj4gZG9ja2VyIHN0b3AgJENJRCAmJiBkb2NrZXIgcm0gJENJRApgYGAKCiMjIyMgRGV2ZWxvcG1lbnQgaW4gZG9ja2VyCgpZb3UgY2FuIHVzZSBgcnVuLWluLWRvY2tlci5zaGAgdG8gZG8gYWxsIGRldmVsb3BtZW50LiBUaGlzIHNjcmlwdCBtYXBzIHlvdXIgbG9jYWwgcmVwb3NpdG9yeSB0byBgL2dlbmAKaW4gdGhlIGRvY2tlciBjb250YWluZXIuIEl0IGFsc28gbWFwcyBgfi8ubTIvcmVwb3NpdG9yeWAgdG8gdGhlIGFwcHJvcHJpYXRlIGNvbnRhaW5lciBsb2NhdGlvbi4KClRvIGV4ZWN1dGUgYG12biBwYWNrYWdlYDoKCmBgYHNoCmdpdCBjbG9uZSBodHRwczovL2dpdGh1Yi5jb20vb3BlbmFwaXRvb2xzL29wZW5hcGktZ2VuZXJhdG9yCmNkIG9wZW5hcGktZ2VuZXJhdG9yCi4vcnVuLWluLWRvY2tlci5zaCBtdm4gcGFja2FnZQpgYGAKCkJ1aWxkIGFydGlmYWN0cyBhcmUgbm93IGFjY2Vzc2libGUgaW4geW91ciB3b3JraW5nIGRpcmVjdG9yeS4KCk9uY2UgYnVpbHQsIGBydW4taW4tZG9ja2VyLnNoYCB3aWxsIGFjdCBhcyBhbiBleGVjdXRhYmxlIGZvciBvcGVuYXBpLWdlbmVyYXRvci1jbGkuIFRvIGdlbmVyYXRlIGNvZGUsIHlvdSdsbCBuZWVkIHRvIG91dHB1dCB0byBhIGRpcmVjdG9yeSB1bmRlciBgL2dlbmAgKGUuZy4gYC9nZW4vb3V0YCkuIEZvciBleGFtcGxlOgoKYGBgc2gKLi9ydW4taW4tZG9ja2VyLnNoIGhlbHAgIyBFeGVjdXRlcyAnaGVscCcgY29tbWFuZCBmb3Igb3BlbmFwaS1nZW5lcmF0b3ItY2xpCi4vcnVuLWluLWRvY2tlci5zaCBsaXN0ICMgRXhlY3V0ZXMgJ2xpc3QnIGNvbW1hbmQgZm9yIG9wZW5hcGktZ2VuZXJhdG9yLWNsaQouL3J1bi1pbi1kb2NrZXIuc2ggZ2VuZXJhdGUgLWkgbW9kdWxlcy9vcGVuYXBpLWdlbmVyYXRvci9zcmMvdGVzdC9yZXNvdXJjZXMvM18wL3BldHN0b3JlLnlhbWwgXAogICAgLWcgZ28gLW8gL2dlbi9vdXQvZ28tcGV0c3RvcmUgLXAgcGFja2FnZU5hbWU9cGV0c3RvcmUgIyBnZW5lcmF0ZXMgZ28gY2xpZW50LCBvdXRwdXRzIGxvY2FsbHkgdG8gLi9vdXQvZ28tcGV0c3RvcmUKYGBgCgojIyMjIyBUcm91Ymxlc2hvb3RpbmcKCklmIGFuIGVycm9yIGxpa2UgdGhpcyBvY2N1cnMsIGp1c3QgZXhlY3V0ZSB0aGUgKiouL212bncgY2xlYW4gaW5zdGFsbCAtVSoqIGNvbW1hbmQ6Cgo+IG9yZy5hcGFjaGUubWF2ZW4ubGlmZWN5Y2xlLkxpZmVjeWNsZUV4ZWN1dGlvbkV4Y2VwdGlvbjogRmFpbGVkIHRvIGV4ZWN1dGUgZ29hbCBvcmcuYXBhY2hlLm1hdmVuLnBsdWdpbnM6bWF2ZW4tc3VyZWZpcmUtcGx1Z2luOjIuMTkuMTp0ZXN0IChkZWZhdWx0LXRlc3QpIG9uIHByb2plY3Qgb3BlbmFwaS1nZW5lcmF0b3I6IEEgdHlwZSBpbmNvbXBhdGliaWxpdHkgb2NjdXJyZWQgd2hpbGUgZXhlY3V0aW5nIG9yZy5hcGFjaGUubWF2ZW4ucGx1Z2luczptYXZlbi1zdXJlZmlyZS1wbHVnaW46Mi4xOS4xOnRlc3Q6IGphdmEubGFuZy5FeGNlcHRpb25JbkluaXRpYWxpemVyRXJyb3IgY2Fubm90IGJlIGNhc3QgdG8gamF2YS5pby5JT0V4Y2VwdGlvbgoKYGBgc2gKLi9ydW4taW4tZG9ja2VyLnNoIC4vbXZudyBjbGVhbiBpbnN0YWxsIC1VCmBgYAoKPiBGYWlsZWQgdG8gZXhlY3V0ZSBnb2FsIG9yZy5mb3J0YXNvZnQ6Z3JhZGxlLW1hdmVuLXBsdWdpbjoxLjAuODppbnZva2UgKGRlZmF1bHQpIG9uIHByb2plY3Qgb3BlbmFwaS1nZW5lcmF0b3ItZ3JhZGxlLXBsdWdpbi1tdm4td3JhcHBlcjogb3JnLmdyYWRsZS50b29saW5nLkJ1aWxkRXhjZXB0aW9uOiBDb3VsZCBub3QgZXhlY3V0ZSBidWlsZCB1c2luZyBHcmFkbGUgZGlzdHJpYnV0aW9uICdodHRwczovL3NlcnZpY2VzLmdyYWRsZS5vcmcvZGlzdHJpYnV0aW9ucy9ncmFkbGUtNC43LWJpbi56aXAnCgpSaWdodCBub3c6IG5vIHNvbHV0aW9uIGZvciB0aGlzIG9uZSA6fAoKIyMjIyBSdW4gRG9ja2VyIGluIFZhZ3JhbnQKUHJlcmVxdWlzaXRlOiBpbnN0YWxsIFtWYWdyYW50XShodHRwczovL3d3dy52YWdyYW50dXAuY29tL2Rvd25sb2Fkcy5odG1sKSBhbmQgW1ZpcnR1YWxCb3hdKGh0dHBzOi8vd3d3LnZpcnR1YWxib3gub3JnL3dpa2kvRG93bmxvYWRzKS4KIGBgYHNoCmdpdCBjbG9uZSBodHRwczovL2dpdGh1Yi5jb20vb3BlbmFwaXRvb2xzL29wZW5hcGktZ2VuZXJhdG9yLmdpdApjZCBvcGVuYXBpLWdlbmVyYXRvcgp2YWdyYW50IHVwCnZhZ3JhbnQgc3NoCmNkIC92YWdyYW50Ci4vcnVuLWluLWRvY2tlci5zaCAuL212bncgcGFja2FnZQpgYGAKCiMjIyBbMS43IC0gTlBNXSgjdGFibGUtb2YtY29udGVudHMpCgpUaGVyZSBpcyBhbHNvIGFuIFtOUE0gcGFja2FnZSB3cmFwcGVyXShodHRwczovL3d3dy5ucG1qcy5jb20vcGFja2FnZS9Ab3BlbmFwaXRvb2xzL29wZW5hcGktZ2VuZXJhdG9yLWNsaSkgYXZhaWxhYmxlIGZvciBkaWZmZXJlbnQgcGxhdGZvcm1zIChlLmcuIExpbnV4LCBNYWMsIFdpbmRvd3MpLiAoSlZNIGlzIHN0aWxsIHJlcXVpcmVkKQpQbGVhc2Ugc2VlIHRoZSBbcHJvamVjdCdzIFJFQURNRV0oaHR0cHM6Ly9naXRodWIuY29tL29wZW5hcGl0b29scy9vcGVuYXBpLWdlbmVyYXRvci1jbGkpIHRoZXJlIGZvciBtb3JlIGluZm9ybWF0aW9uLgoKSW5zdGFsbCBpdCBnbG9iYWxseSB0byBnZXQgdGhlIENMSSBhdmFpbGFibGUgb24gdGhlIGNvbW1hbmQgbGluZToKCmBgYHNoCm5wbSBpbnN0YWxsIEBvcGVuYXBpdG9vbHMvb3BlbmFwaS1nZW5lcmF0b3ItY2xpIC1nCm9wZW5hcGktZ2VuZXJhdG9yLWNsaSB2ZXJzaW9uCmBgYAoKPCEtLSBSRUxFQVNFX1ZFUlNJT04gLS0+ClRvIHVzZSBhIHNwZWNpZmljIHZlcnNpb24gb2YgIm9wZW5hcGktZ2VuZXJhdG9yLWNsaSIKCmBgYHNoCm9wZW5hcGktZ2VuZXJhdG9yLWNsaSB2ZXJzaW9uLW1hbmFnZXIgc2V0IDcuNy4wCmBgYAoKT3IgaW5zdGFsbCBpdCBhcyBkZXYtZGVwZW5kZW5jeToKCmBgYHNoCm5wbSBpbnN0YWxsIEBvcGVuYXBpdG9vbHMvb3BlbmFwaS1nZW5lcmF0b3ItY2xpIC1ECmBgYAo8IS0tIC9SRUxFQVNFX1ZFUlNJT04gLS0+CiMjIFsyIC0gR2V0dGluZyBTdGFydGVkXSgjdGFibGUtb2YtY29udGVudHMpCgpUbyBnZW5lcmF0ZSBhIFBIUCBjbGllbnQgZm9yIFtwZXRzdG9yZS55YW1sXShodHRwczovL3Jhdy5naXRodWJ1c2VyY29udGVudC5jb20vb3BlbmFwaXRvb2xzL29wZW5hcGktZ2VuZXJhdG9yL21hc3Rlci9tb2R1bGVzL29wZW5hcGktZ2VuZXJhdG9yL3NyYy90ZXN0L3Jlc291cmNlcy8zXzAvcGV0c3RvcmUueWFtbCksIHBsZWFzZSBydW4gdGhlIGZvbGxvd2luZwpgYGBzaApnaXQgY2xvbmUgaHR0cHM6Ly9naXRodWIuY29tL29wZW5hcGl0b29scy9vcGVuYXBpLWdlbmVyYXRvcgpjZCBvcGVuYXBpLWdlbmVyYXRvcgouL212bncgY2xlYW4gcGFja2FnZQpqYXZhIC1qYXIgbW9kdWxlcy9vcGVuYXBpLWdlbmVyYXRvci1jbGkvdGFyZ2V0L29wZW5hcGktZ2VuZXJhdG9yLWNsaS5qYXIgZ2VuZXJhdGUgXAogICAtaSBodHRwczovL3Jhdy5naXRodWJ1c2VyY29udGVudC5jb20vb3BlbmFwaXRvb2xzL29wZW5hcGktZ2VuZXJhdG9yL21hc3Rlci9tb2R1bGVzL29wZW5hcGktZ2VuZXJhdG9yL3NyYy90ZXN0L3Jlc291cmNlcy8zXzAvcGV0c3RvcmUueWFtbCBcCiAgIC1nIHBocCBcCiAgIC1vIC92YXIvdG1wL3BocF9hcGlfY2xpZW50CmBgYAooaWYgeW91J3JlIG9uIFdpbmRvd3MsIHJlcGxhY2UgdGhlIGxhc3QgY29tbWFuZCB3aXRoIGBqYXZhIC1qYXIgbW9kdWxlc1xvcGVuYXBpLWdlbmVyYXRvci1jbGlcdGFyZ2V0XG9wZW5hcGktZ2VuZXJhdG9yLWNsaS5qYXIgZ2VuZXJhdGUgLWkgaHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL29wZW5hcGl0b29scy9vcGVuYXBpLWdlbmVyYXRvci9tYXN0ZXIvbW9kdWxlcy9vcGVuYXBpLWdlbmVyYXRvci9zcmMvdGVzdC9yZXNvdXJjZXMvM18wL3BldHN0b3JlLnlhbWwgLWcgcGhwIC1vIGM6XHRlbXBccGhwX2FwaV9jbGllbnRgKQoKPCEtLSBSRUxFQVNFX1ZFUlNJT04gLS0+CllvdSBjYW4gYWxzbyBkb3dubG9hZCB0aGUgSkFSIChsYXRlc3QgcmVsZWFzZSkgZGlyZWN0bHkgZnJvbSBbbWF2ZW4ub3JnXShodHRwczovL3JlcG8xLm1hdmVuLm9yZy9tYXZlbjIvb3JnL29wZW5hcGl0b29scy9vcGVuYXBpLWdlbmVyYXRvci1jbGkvNy43LjAvb3BlbmFwaS1nZW5lcmF0b3ItY2xpLTcuNy4wLmphcikKPCEtLSAvUkVMRUFTRV9WRVJTSU9OIC0tPgoKVG8gZ2V0IGEgbGlzdCBvZiAqKmdlbmVyYWwqKiBvcHRpb25zIGF2YWlsYWJsZSwgcGxlYXNlIHJ1biBgamF2YSAtamFyIG1vZHVsZXMvb3BlbmFwaS1nZW5lcmF0b3ItY2xpL3RhcmdldC9vcGVuYXBpLWdlbmVyYXRvci1jbGkuamFyIGhlbHAgZ2VuZXJhdGVgCgpUbyBnZXQgYSBsaXN0IG9mIFBIUCBzcGVjaWZpZWQgb3B0aW9ucyAod2hpY2ggY2FuIGJlIHBhc3NlZCB0byB0aGUgZ2VuZXJhdG9yIHdpdGggYSBjb25maWcgZmlsZSB2aWEgdGhlIGAtY2Agb3B0aW9uKSwgcGxlYXNlIHJ1biBgamF2YSAtamFyIG1vZHVsZXMvb3BlbmFwaS1nZW5lcmF0b3ItY2xpL3RhcmdldC9vcGVuYXBpLWdlbmVyYXRvci1jbGkuamFyIGNvbmZpZy1oZWxwIC1nIHBocGAKCiMjIFszIC0gVXNhZ2VdKCN0YWJsZS1vZi1jb250ZW50cykKCiMjIyBUbyBnZW5lcmF0ZSBhIHNhbXBsZSBjbGllbnQgbGlicmFyeQpZb3UgY2FuIGJ1aWxkIGEgY2xpZW50IGFnYWluc3QgdGhlIFtQZXRzdG9yZSBBUEldKGh0dHBzOi8vcmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbS9vcGVuYXBpdG9vbHMvb3BlbmFwaS1nZW5lcmF0b3IvbWFzdGVyL21vZHVsZXMvb3BlbmFwaS1nZW5lcmF0b3Ivc3JjL3Rlc3QvcmVzb3VyY2VzLzNfMC9wZXRzdG9yZS55YW1sKSBhcyBmb2xsb3dzOgoKYGBgc2gKLi9iaW4vZ2VuZXJhdGUtc2FtcGxlcy5zaCAuL2Jpbi9jb25maWdzL2phdmEtb2todHRwLWdzb24ueWFtbApgYGAKCihPbiBXaW5kb3dzLCBwbGVhc2UgaW5zdGFsbCBbR0lUIEJhc2ggZm9yIFdpbmRvd3NdKGh0dHBzOi8vZ2l0Zm9yd2luZG93cy5vcmcvKSB0byBydW4gdGhlIGNvbW1hbmQgYWJvdmUpCgpUaGlzIHNjcmlwdCB1c2VzIHRoZSBkZWZhdWx0IGxpYnJhcnksIHdoaWNoIGlzIGBva2h0dHAtZ3NvbmAuIEl0IHdpbGwgcnVuIHRoZSBnZW5lcmF0b3Igd2l0aCB0aGlzIGNvbW1hbmQ6CgpgYGBzaApqYXZhIC1qYXIgbW9kdWxlcy9vcGVuYXBpLWdlbmVyYXRvci1jbGkvdGFyZ2V0L29wZW5hcGktZ2VuZXJhdG9yLWNsaS5qYXIgZ2VuZXJhdGUgXAogIC1pIGh0dHBzOi8vcmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbS9vcGVuYXBpdG9vbHMvb3BlbmFwaS1nZW5lcmF0b3IvbWFzdGVyL21vZHVsZXMvb3BlbmFwaS1nZW5lcmF0b3Ivc3JjL3Rlc3QvcmVzb3VyY2VzLzNfMC9wZXRzdG9yZS55YW1sIFwKICAtZyBqYXZhIFwKICAtdCBtb2R1bGVzL29wZW5hcGktZ2VuZXJhdG9yL3NyYy9tYWluL3Jlc291cmNlcy9KYXZhIFwKICAtLWFkZGl0aW9uYWwtcHJvcGVydGllcyBhcnRpZmFjdElkPXBldHN0b3JlLW9raHR0cC1nc29uLGhpZGVHZW5lcmF0aW9uVGltZXN0YW1wPXRydWUgXAogIC1vIHNhbXBsZXMvY2xpZW50L3BldHN0b3JlL2phdmEvb2todHRwLWdzb24KYGBgCgp3aXRoIGEgbnVtYmVyIG9mIG9wdGlvbnMuIFtUaGUgamF2YSBvcHRpb25zIGFyZSBkb2N1bWVudGVkIGhlcmUuXShkb2NzL2dlbmVyYXRvcnMvamF2YS5tZCkKCllvdSBjYW4gYWxzbyBnZXQgdGhlIG9wdGlvbnMgd2l0aCB0aGUgYGhlbHAgZ2VuZXJhdGVgIGNvbW1hbmQgKGJlbG93IG9ubHkgc2hvd3MgcGFydGlhbCByZXN1bHRzKToKCmBgYApOQU1FCiAgICAgICAgb3BlbmFwaS1nZW5lcmF0b3ItY2xpIGdlbmVyYXRlIC0gR2VuZXJhdGUgY29kZSB3aXRoIHRoZSBzcGVjaWZpZWQKICAgICAgICBnZW5lcmF0b3IuCgpTWU5PUFNJUwogICAgICAgIG9wZW5hcGktZ2VuZXJhdG9yLWNsaSBnZW5lcmF0ZQogICAgICAgICAgICAgICAgWygtYSA8YXV0aG9yaXphdGlvbj4gfCAtLWF1dGggPGF1dGhvcml6YXRpb24+KV0KICAgICAgICAgICAgICAgIFstLWFwaS1uYW1lLXN1ZmZpeCA8YXBpIG5hbWUgc3VmZml4Pl0gWy0tYXBpLXBhY2thZ2UgPGFwaSBwYWNrYWdlPl0KICAgICAgICAgICAgICAgIFstLWFydGlmYWN0LWlkIDxhcnRpZmFjdCBpZD5dIFstLWFydGlmYWN0LXZlcnNpb24gPGFydGlmYWN0IHZlcnNpb24+XQogICAgICAgICAgICAgICAgWygtYyA8Y29uZmlndXJhdGlvbiBmaWxlPiB8IC0tY29uZmlnIDxjb25maWd1cmF0aW9uIGZpbGU+KV0gWy0tZHJ5LXJ1bl0KICAgICAgICAgICAgICAgIFsoLWUgPHRlbXBsYXRpbmcgZW5naW5lPiB8IC0tZW5naW5lIDx0ZW1wbGF0aW5nIGVuZ2luZT4pXQogICAgICAgICAgICAgICAgWy0tZW5hYmxlLXBvc3QtcHJvY2Vzcy1maWxlXQogICAgICAgICAgICAgICAgWygtZyA8Z2VuZXJhdG9yIG5hbWU+IHwgLS1nZW5lcmF0b3ItbmFtZSA8Z2VuZXJhdG9yIG5hbWU+KV0KICAgICAgICAgICAgICAgIFstLWdlbmVyYXRlLWFsaWFzLWFzLW1vZGVsXSBbLS1naXQtaG9zdCA8Z2l0IGhvc3Q+XQogICAgICAgICAgICAgICAgWy0tZ2l0LXJlcG8taWQgPGdpdCByZXBvIGlkPl0gWy0tZ2l0LXVzZXItaWQgPGdpdCB1c2VyIGlkPl0KICAgICAgICAgICAgICAgIFstLWdsb2JhbC1wcm9wZXJ0eSA8Z2xvYmFsIHByb3BlcnRpZXM+Li4uXSBbLS1ncm91cC1pZCA8Z3JvdXAgaWQ+XQogICAgICAgICAgICAgICAgWy0taHR0cC11c2VyLWFnZW50IDxodHRwIHVzZXIgYWdlbnQ+XQogICAgICAgICAgICAgICAgWygtaSA8c3BlYyBmaWxlPiB8IC0taW5wdXQtc3BlYyA8c3BlYyBmaWxlPildCiAgICAgICAgICAgICAgICBbLS1pZ25vcmUtZmlsZS1vdmVycmlkZSA8aWdub3JlIGZpbGUgb3ZlcnJpZGUgbG9jYXRpb24+XQogICAgICAgICAgICAgICAgWy0taW1wb3J0LW1hcHBpbmdzIDxpbXBvcnQgbWFwcGluZ3M+Li4uXQogICAgICAgICAgICAgICAgWy0taW5zdGFudGlhdGlvbi10eXBlcyA8aW5zdGFudGlhdGlvbiB0eXBlcz4uLi5dCiAgICAgICAgICAgICAgICBbLS1pbnZva2VyLXBhY2thZ2UgPGludm9rZXIgcGFja2FnZT5dCiAgICAgICAgICAgICAgICBbLS1sYW5ndWFnZS1zcGVjaWZpYy1wcmltaXRpdmVzIDxsYW5ndWFnZSBzcGVjaWZpYyBwcmltaXRpdmVzPi4uLl0KICAgICAgICAgICAgICAgIFstLWxlZ2FjeS1kaXNjcmltaW5hdG9yLWJlaGF2aW9yXSBbLS1saWJyYXJ5IDxsaWJyYXJ5Pl0KICAgICAgICAgICAgICAgIFstLWxvZy10by1zdGRlcnJdIFstLW1pbmltYWwtdXBkYXRlXQogICAgICAgICAgICAgICAgWy0tbW9kZWwtbmFtZS1wcmVmaXggPG1vZGVsIG5hbWUgcHJlZml4Pl0KICAgICAgICAgICAgICAgIFstLW1vZGVsLW5hbWUtc3VmZml4IDxtb2RlbCBuYW1lIHN1ZmZpeD5dCiAgICAgICAgICAgICAgICBbLS1tb2RlbC1wYWNrYWdlIDxtb2RlbCBwYWNrYWdlPl0KICAgICAgICAgICAgICAgIFsoLW8gPG91dHB1dCBkaXJlY3Rvcnk+IHwgLS1vdXRwdXQgPG91dHB1dCBkaXJlY3Rvcnk+KV0gWygtcCA8YWRkaXRpb25hbCBwcm9wZXJ0aWVzPiB8IC0tYWRkaXRpb25hbC1wcm9wZXJ0aWVzIDxhZGRpdGlvbmFsIHByb3BlcnRpZXM+KS4uLl0KICAgICAgICAgICAgICAgIFstLXBhY2thZ2UtbmFtZSA8cGFja2FnZSBuYW1lPl0gWy0tcmVsZWFzZS1ub3RlIDxyZWxlYXNlIG5vdGU+XQogICAgICAgICAgICAgICAgWy0tcmVtb3ZlLW9wZXJhdGlvbi1pZC1wcmVmaXhdCiAgICAgICAgICAgICAgICBbLS1yZXNlcnZlZC13b3Jkcy1tYXBwaW5ncyA8cmVzZXJ2ZWQgd29yZCBtYXBwaW5ncz4uLi5dCiAgICAgICAgICAgICAgICBbKC1zIHwgLS1za2lwLW92ZXJ3cml0ZSldIFstLXNlcnZlci12YXJpYWJsZXMgPHNlcnZlciB2YXJpYWJsZXM+Li4uXQogICAgICAgICAgICAgICAgWy0tc2tpcC12YWxpZGF0ZS1zcGVjXSBbLS1zdHJpY3Qtc3BlYyA8dHJ1ZS9mYWxzZSBzdHJpY3QgYmVoYXZpb3I+XQogICAgICAgICAgICAgICAgWygtdCA8dGVtcGxhdGUgZGlyZWN0b3J5PiB8IC0tdGVtcGxhdGUtZGlyIDx0ZW1wbGF0ZSBkaXJlY3Rvcnk+KV0KICAgICAgICAgICAgICAgIFstLXR5cGUtbWFwcGluZ3MgPHR5cGUgbWFwcGluZ3M+Li4uXSBbKC12IHwgLS12ZXJib3NlKV0KCk9QVElPTlMKICAgICAgICAtYSA8YXV0aG9yaXphdGlvbj4sIC0tYXV0aCA8YXV0aG9yaXphdGlvbj4KICAgICAgICAgICAgYWRkcyBhdXRob3JpemF0aW9uIGhlYWRlcnMgd2hlbiBmZXRjaGluZyB0aGUgT3BlbkFQSSBkZWZpbml0aW9ucwogICAgICAgICAgICByZW1vdGVseS4gUGFzcyBpbiBhIFVSTC1lbmNvZGVkIHN0cmluZyBvZiBuYW1lOmhlYWRlciB3aXRoIGEgY29tbWEKICAgICAgICAgICAgc2VwYXJhdGluZyBtdWx0aXBsZSB2YWx1ZXMKCi4uLi4uLiAocmVzdWx0cyBvbWl0dGVkKQoKICAgICAgICAtdiwgLS12ZXJib3NlCiAgICAgICAgICAgIHZlcmJvc2UgbW9kZQoKYGBgCgpZb3UgY2FuIHRoZW4gY29tcGlsZSBhbmQgcnVuIHRoZSBjbGllbnQsIGFzIHdlbGwgYXMgdW5pdCB0ZXN0cyBhZ2FpbnN0IGl0OgoKYGBgc2gKY2Qgc2FtcGxlcy9jbGllbnQvcGV0c3RvcmUvamF2YS9va2h0dHAtZ3Nvbgptdm4gcGFja2FnZQpgYGAKCk90aGVyIGdlbmVyYXRvcnMgaGF2ZSBbc2FtcGxlc10oaHR0cHM6Ly9naXRodWIuY29tL09wZW5BUElUb29scy9vcGVuYXBpLWdlbmVyYXRvci90cmVlL21hc3Rlci9zYW1wbGVzKSB0b28uCgojIyMgWzMuMSAtIEN1c3RvbWl6YXRpb25dKCN0YWJsZS1vZi1jb250ZW50cykKClBsZWFzZSByZWZlciB0byBbY3VzdG9taXphdGlvbi5tZF0oZG9jcy9jdXN0b21pemF0aW9uLm1kKSBvbiBob3cgdG8gY3VzdG9taXplIHRoZSBvdXRwdXQgKGUuZy4gcGFja2FnZSBuYW1lLCB2ZXJzaW9uKQoKIyMjIFszLjIgLSBXb3JrZmxvdyBJbnRlZ3JhdGlvbiAoTWF2ZW4sIEdyYWRsZSwgR2l0aHViLCBDSS9DRCldKCN0YWJsZS1vZi1jb250ZW50cykKClBsZWFzZSByZWZlciB0byBbaW50ZWdyYXRpb24ubWRdKGRvY3MvaW50ZWdyYXRpb24ubWQpIG9uIGhvdyB0byBpbnRlZ3JhdGUgT3BlbkFQSSBnZW5lcmF0b3Igd2l0aCBNYXZlbiwgR3JhZGxlLCBzYnQsIEJhemVsLCBHaXRodWIgYW5kIENJL0NELgoKIyMjIFszLjMgLSBPbmxpbmUgT3BlbkFQSSBnZW5lcmF0b3JdKCN0YWJsZS1vZi1jb250ZW50cykKCkhlcmUgYXJlIHRoZSBwdWJsaWMgb25saW5lIHNlcnZpY2VzOgoKLSBsYXRlc3Qgc3RhYmxlIHZlcnNpb246IGh0dHBzOi8vYXBpLm9wZW5hcGktZ2VuZXJhdG9yLnRlY2gKLSBsYXRlc3QgbWFzdGVyOiBodHRwczovL2FwaS1sYXRlc3QtbWFzdGVyLm9wZW5hcGktZ2VuZXJhdG9yLnRlY2ggKHVwZGF0ZWQgd2l0aCBsYXRlc3QgbWFzdGVyIGV2ZXJ5IGhvdXIpCgpUaGUgc2VydmVyIGlzIHNwb25zb3JlZCBieSBbTGlub2RlXShodHRwczovL3d3dy5saW5vZGUuY29tLykgWyFbTGlub2RlIExvZ29dKGh0dHBzOi8vd3d3Lmxpbm9kZS5jb20vbWVkaWEvaW1hZ2VzL2xvZ29zL3N0YW5kYXJkL2xpZ2h0L2xpbm9kZS1sb2dvX3N0YW5kYXJkX2xpZ2h0X3NtYWxsLnBuZyldKGh0dHBzOi8vd3d3Lmxpbm9kZS5jb20vKQoKKFRoZXNlIHNlcnZpY2VzIGFyZSBiZXRhIGFuZCBkbyBub3QgaGF2ZSBhbnkgZ3VhcmFudGVlIG9uIHNlcnZpY2UgbGV2ZWwpCgpQbGVhc2UgcmVmZXIgdG8gW29ubGluZS5tZF0oZG9jcy9vbmxpbmUubWQpIG9uIGhvdyB0byBydW4gYW5kIHVzZSB0aGUgYG9wZW5hcGktZ2VuZXJhdG9yLW9ubGluZWAgLSBhIHdlYiBzZXJ2aWNlIGZvciBgb3BlbmFwaS1nZW5lcmF0b3JgLgoKIyMjIFszLjQgLSBMaWNlbnNlIGluZm9ybWF0aW9uIG9uIEdlbmVyYXRlZCBDb2RlXSgjdGFibGUtb2YtY29udGVudHMpCgpUaGUgT3BlbkFQSSBHZW5lcmF0b3IgcHJvamVjdCBpcyBpbnRlbmRlZCBhcyBhIGJlbmVmaXQgZm9yIHVzZXJzIG9mIHRoZSBPcGVuIEFQSSBTcGVjaWZpY2F0aW9uLiAgVGhlIHByb2plY3QgaXRzZWxmIGhhcyB0aGUgW0xpY2Vuc2VdKCM3LS0tbGljZW5zZSkgYXMgc3BlY2lmaWVkLiBJbiBhZGRpdGlvbiwgcGxlYXNlIHVuZGVyc3RhbmQgdGhlIGZvbGxvd2luZyBwb2ludHM6CgoqIFRoZSB0ZW1wbGF0ZXMgaW5jbHVkZWQgd2l0aCB0aGlzIHByb2plY3QgYXJlIHN1YmplY3QgdG8gdGhlIFtMaWNlbnNlXSgjNy0tLWxpY2Vuc2UpLgoqIEdlbmVyYXRlZCBjb2RlIGlzIGludGVudGlvbmFsbHkgX25vdF8gc3ViamVjdCB0byB0aGUgcGFyZW50IHByb2plY3QgbGljZW5zZQoKV2hlbiBjb2RlIGlzIGdlbmVyYXRlZCBmcm9tIHRoaXMgcHJvamVjdCwgaXQgc2hhbGwgYmUgY29uc2lkZXJlZCAqKkFTIElTKiogYW5kIG93bmVkIGJ5IHRoZSB1c2VyIG9mIHRoZSBzb2Z0d2FyZS4gIFRoZXJlIGFyZSBubyB3YXJyYW50aWVzLS1leHByZXNzZWQgb3IgaW1wbGllZC0tZm9yIGdlbmVyYXRlZCBjb2RlLiAgWW91IGNhbiBkbyB3aGF0IHlvdSB3aXNoIHdpdGggaXQsIGFuZCBvbmNlIGdlbmVyYXRlZCwgdGhlIGNvZGUgaXMgeW91ciByZXNwb25zaWJpbGl0eSBhbmQgc3ViamVjdCB0byB0aGUgbGljZW5zaW5nIHRlcm1zIHRoYXQgeW91IGRlZW0gYXBwcm9wcmlhdGUuCgojIyMgWzMuNSAtIElERSBJbnRlZ3JhdGlvbl0oI3RhYmxlLW9mLWNvbnRlbnRzKQoKSGVyZSBpcyBhIGxpc3Qgb2YgY29tbXVuaXR5LWNvbnRyaWJ1dGVkIElERSBwbHVnLWlucyB0aGF0IGludGVncmF0ZSB3aXRoIE9wZW5BUEkgR2VuZXJhdG9yOgoKLSBFY2xpcHNlOiBbQ29kZXdpbmQgT3BlbkFQSSBUb29scyBmb3IgRWNsaXBzZV0oaHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvY29kZXdpbmQvb3Blbi1hcGktdG9vbHMtZm9yLWVjbGlwc2UuaHRtbCkgYnkgW0lCTV0oaHR0cHM6Ly93d3cuaWJtLmNvbSkKLSBJbnRlbGxpSiBJREVBOiBbT3BlbkFQSSBHZW5lcmF0b3JdKGh0dHBzOi8vcGx1Z2lucy5qZXRicmFpbnMuY29tL3BsdWdpbi84NDMzLW9wZW5hcGktZ2VuZXJhdG9yKSBieSBbSmltIFNjaHViZXJ0XShodHRwczovL2ppbXNjaHViZXJ0LnVzLyMvKQotIEludGVsbGlKIElERUE6IFtTZW55YSBFZGl0b3JdKGh0dHBzOi8vcGx1Z2lucy5qZXRicmFpbnMuY29tL3BsdWdpbi8xMDY5MC1zZW55YS1lZGl0b3IpIGJ5IFtzZW55YS5pb10oaHR0cHM6Ly9zZW55YS5pbykKLSBbUmVwcmVaZW4gQVBJIFN0dWRpb10oaHR0cHM6Ly93d3cucmVwcmV6ZW4uY29tLykKLSBWaXN1YWwgU3R1ZGlvOiBbUkVTVCBBUEkgQ2xpZW50IENvZGUgR2VuZXJhdG9yXShodHRwczovL21hcmtldHBsYWNlLnZpc3VhbHN0dWRpby5jb20vaXRlbXM/aXRlbU5hbWU9Q2hyaXN0aWFuUmVzbWFIZWxsZS5BcGlDbGllbnRDb2RlR2VuZXJhdG9yKSBieSBbQ2hyaXN0aWFuIFJlc21hIEhlbGxlXShodHRwczovL2NocmlzdGlhbi1oZWxsZS5ibG9nc3BvdC5jb20vKQotIFZpc3VhbCBTdHVkaW8gQ29kZTogW0NvZGV3aW5kIE9wZW5BUEkgVG9vbHNdKGh0dHBzOi8vbWFya2V0cGxhY2UudmlzdWFsc3R1ZGlvLmNvbS9pdGVtcz9pdGVtTmFtZT1JQk0uY29kZXdpbmQtb3BlbmFwaS10b29scykgYnkgW0lCTV0oaHR0cHM6Ly9tYXJrZXRwbGFjZS52aXN1YWxzdHVkaW8uY29tL3B1Ymxpc2hlcnMvSUJNKQoKCiMjIFs0IC0gQ29tcGFuaWVzL1Byb2plY3RzIHVzaW5nIE9wZW5BUEkgR2VuZXJhdG9yXSgjdGFibGUtb2YtY29udGVudHMpCkhlcmUgYXJlIHNvbWUgY29tcGFuaWVzL3Byb2plY3RzIChhbHBoYWJldGljYWwgb3JkZXIpIHVzaW5nIE9wZW5BUEkgR2VuZXJhdG9yIGluIHByb2R1Y3Rpb24uIFRvIGFkZCB5b3VyIGNvbXBhbnkvcHJvamVjdCB0byB0aGUgbGlzdCwgcGxlYXNlIHZpc2l0IFtSRUFETUUubWRdKFJFQURNRS5tZCkgYW5kIGNsaWNrIG9uIHRoZSBpY29uIHRvIGVkaXQgdGhlIHBhZ2UuCgotIFtBYWxib3JnIFVuaXZlcnNpdHldKGh0dHBzOi8vd3d3LmFhdS5kaykKLSBbYWN0IGNvZGluZ10oaHR0cHM6Ly9naXRodWIuY29tL2FjdGNvZGluZykKLSBbQWRhcHRhbnQgU29sdXRpb25zIEFHXShodHRwczovL3d3dy5hZGFwdGFudC5pby8pCi0gW2FkZXNzbyBTRV0oaHR0cHM6Ly93d3cuYWRlc3NvLmRlLykKLSBbQWR5ZW5dKGh0dHBzOi8vd3d3LmFkeWVuLmNvbS8pCi0gW0Fnb2RhXShodHRwczovL3d3dy5hZ29kYS5jb20vKQotIFtBaXJ0aGluZ3NdKGh0dHBzOi8vd3d3LmFpcnRoaW5ncy5jb20vKQotIFtBbGVyaSBTb2x1dGlvbnMgR21iaF0oaHR0cHM6Ly93d3cuYWxlcmkuZGUvKQotIFtBbGxpYW56XShodHRwczovL3d3dy5hbGxpYW56LmNvbSkKLSBbQW5ndWxhci5TY2h1bGVdKGh0dHBzOi8vYW5ndWxhci5zY2h1bGUvKQotIFtBcW92aWFdKGh0dHBzOi8vYXFvdmlhLmNvbS8pCi0gW0F1c3RyYWxpYSBhbmQgTmV3IFplYWxhbmQgQmFua2luZyBHcm91cCAoQU5aKV0oaHR0cDovL3d3dy5hbnouY29tLykKLSBbQXJkdWlub10oaHR0cHM6Ly93d3cuYXJkdWluby5jYy8pCi0gW0FTS1VMXShodHRwczovL3d3dy5hc2t1bC5jby5qcCkKLSBbQW1hem9uIFdlYiBTZXJ2aWNlcyAoQVdTKV0oaHR0cHM6Ly9hd3MuYW1hem9uLmNvbS8pCi0gW2I8PmNvbV0oaHR0cHM6Ly9iLWNvbS5jb20vZW4pCi0gW+eZvuW6puiQpemUgF0oaHR0cHM6Ly9lLmJhaWR1LmNvbSkKLSBbQmFuZHdpZHRoXShodHRwczovL2Rldi5iYW5kd2lkdGguY29tKQotIFtCYW56YWkgQ2xvdWRdKGh0dHBzOi8vYmFuemFpY2xvdWQuY29tKQotIFtCSU1EYXRhLmlvXShodHRwczovL2JpbWRhdGEuaW8pCi0gW0JpdGhvc3QgR21iSF0oaHR0cHM6Ly93d3cuYml0aG9zdC5jaCkKLSBbQm9zY2ggQ29ubmVjdGVkIEluZHVzdHJ5XShodHRwczovL3d3dy5ib3NjaC1jb25uZWN0ZWQtaW5kdXN0cnkuY29tKQotIFtCb3hldmVyXShodHRwczovL3d3dy5ib3hldmVyLmNvbS8pCi0gW0JyZXZ5XShodHRwczovL3d3dy5icmV2eS5jb20pCi0gW0J1bmtlciBIb2xkaW5nIEdyb3VwXShodHRwczovL3d3dy5idW5rZXItaG9sZGluZy5jb20vKQotIFtDYWxpZm9ybmlhIFN0YXRlIFVuaXZlcnNpdHksIE5vcnRocmlkZ2VdKGh0dHBzOi8vd3d3LmNzdW4uZWR1KQotIFtDQU1dKGh0dHBzOi8vd3d3LmNhbS1pbmMuY28uanAvKQotIFtDYW1wdG9jYW1wXShodHRwczovL3d3dy5jYW1wdG9jYW1wLmNvbS9lbikKLSBbQ2FybHNiZXJnIEdyb3VwXShodHRwczovL3d3dy5jYXJsc2Jlcmdncm91cC5jb20vKQotIFtDaHJpc3RvcGhlciBRdWVlbiBDb25zdWx0aW5nXShodHRwczovL3d3dy5jaHJpc3RvcGhlcnF1ZWVuY29uc3VsdGluZy5jb20vKQotIFtDaXNjb10oaHR0cHM6Ly93d3cuY2lzY28uY29tLykKLSBbY29kZWNlbnRyaWMgQUddKGh0dHBzOi8vd3d3LmNvZGVjZW50cmljLmRlLykKLSBbQ29pbkFQSV0oaHR0cHM6Ly93d3cuY29pbmFwaS5pby8pCi0gW0NvbW1lbmNpc10oaHR0cHM6Ly93d3cuY29tbWVuY2lzLmNvbS8pCi0gW0NvbmZpZ0NhdF0oaHR0cHM6Ly9jb25maWdjYXQuY29tLykKLSBbY3Jvbm4gR21iSF0oaHR0cHM6Ly93d3cuY3Jvbm4uZGUvKQotIFtDcm9zc292ZXIgSGVhbHRoXShodHRwczovL2Nyb3Nzb3ZlcmhlYWx0aC5jb20vKQotIFtDdXBpeF0oaHR0cHM6Ly93d3cuY3VwaXguY29tLykKLSBbRGF0YWRvZ10oaHR0cHM6Ly93d3cuZGF0YWRvZ2hxLmNvbSkKLSBbREIgU3lzdGVsXShodHRwczovL3d3dy5kYnN5c3RlbC5kZSkKLSBbRGVlcG9ydXRlLmFpXShodHRwczovL3d3dy5kZWVwcm91dGUuYWkvKQotIFtEZXZzdXBwbHldKGh0dHBzOi8vd3d3LmRldnN1cHBseS5jb20vKQotIFtkbVRFQ0ggR21iSF0oaHR0cHM6Ly93d3cuZG1URUNILmRlKQotIFtEb2NTcHJpbmddKGh0dHBzOi8vZG9jc3ByaW5nLmNvbS8pCi0gW2R3YW5nb10oaHR0cHM6Ly9kd2FuZ28uY28uanAvKQotIFtFZGdlIEltcHVsc2VdKGh0dHBzOi8vd3d3LmVkZ2VpbXB1bHNlLmNvbS8pCi0gW0VsZW1lbnQgQUldKGh0dHBzOi8vd3d3LmVsZW1lbnRhaS5jb20vKQotIFtFbWJvdGljc10oaHR0cHM6Ly93d3cuZW1ib3RpY3MuY29tLykKLSBbZW1pbmVvXShodHRwczovL3d3dy5lbWluZW8uY2gpCi0gW2Zhc3RseV0oaHR0cHM6Ly93d3cuZmFzdGx5LmNvbS8pCi0gW0ZlbmVyZ29dKGh0dHBzOi8vd3d3LmZlbmVyZ28uY29tLykKLSBbZnJlZWVdKGh0dHBzOi8vY29ycC5mcmVlZS5jby5qcC9lbi8pCi0gW0ZyZXNoQ2VsbHNdKGh0dHBzOi8vd3d3LmZyZXNoY2VsbHMuZGUvKQotIFtGdXNlXShodHRwczovL3d3dy5mdXNlLm5vLykKLSBbR2FudG5lcl0oaHR0cHM6Ly93d3cuZ2FudG5lci5jb20pCi0gW0dlbkZsb3ddKGh0dHBzOi8vZ2l0aHViLmNvbS9SZXByZVplbi9HZW5GbG93KQotIFtHZXRZb3VyR3VpZGVdKGh0dHBzOi8vd3d3LmdldHlvdXJndWlkZS5jb20vKQotIFtHbG92b10oaHR0cHM6Ly9nbG92b2FwcC5jb20vKQotIFtHTU8gUGVwYWJvXShodHRwczovL3BlcGFiby5jb20vZW4vKQotIFtHb0RhZGR5XShodHRwczovL2dvZGFkZHkuY29tKQotIFtHdW10cmVlXShodHRwczovL2d1bXRyZWUuY29tKQotIFtIZXJlXShodHRwczovL2RldmVsb3Blci5oZXJlLmNvbS8pCi0gW0lCTV0oaHR0cHM6Ly93d3cuaWJtLmNvbS8pCi0gW0luc3RhbmFdKGh0dHBzOi8vd3d3Lmluc3RhbmEuY29tKQotIFtJbnRlcnhpb25dKGh0dHBzOi8vd3d3LmludGVyeGlvbi5jb20pCi0gW0lucXVpc2ljb10oaHR0cHM6Ly9pbnF1aXNpY28uY29tKQotIFtKdXN0U3Rhcl0oaHR0cHM6Ly93d3cuanVzdHN0YXJpbmZvLmNvbSkKLSBbazYuaW9dKGh0dHBzOi8vazYuaW8vKQotIFtLbGFybmFdKGh0dHBzOi8vd3d3LmtsYXJuYS5jb20vKQotIFtLcm9uc29mdCBEZXZlbG9wbWVudF0oaHR0cHM6Ly93d3cua3JvbnNvZnQucm8vaG9tZS8pCi0gW0t1YmVybmV0ZXNdKGh0dHBzOi8va3ViZXJuZXRlcy5pbykKLSBbTGFuZGVzaGF1cHRzdGFkdCBNw7xuY2hlbiAtIGl0QE1dKGh0dHBzOi8vbXVlbmNoZW4uZGlnaXRhbC9pdC1hdC1tLykKLSBbTGlub2RlXShodHRwczovL3d3dy5saW5vZGUuY29tLykKLSBbTG9naWNkcm9wXShodHRwczovL3d3dy5sb2dpY2Ryb3AuY29tKQotIFtMdW1lcmlzXShodHRwczovL3d3dy5sdW1lcmlzLmNvbSkKLSBbTFZNIFZlcnNpY2hlcnVuZ2VuXShodHRwczovL3d3dy5sdm0uZGUpCi0gW01haWxTbHVycF0oaHR0cHM6Ly93d3cubWFpbHNsdXJwLmNvbSkKLSBbTWFudGljb3JlIFNlYXJjaF0oaHR0cHM6Ly9tYW50aWNvcmVzZWFyY2guY29tKQotIFtNYXN0ZXJjYXJkXShodHRwczovL2RldmVsb3BlcnMubWFzdGVyY2FyZC5jb20pCi0gW03DqWRpYXZpc2lvbl0oaHR0cHM6Ly93d3cubWVkaWF2aXNpb24uZnIvKQotIFtNZXRhc3dpdGNoXShodHRwczovL3d3dy5tZXRhc3dpdGNoLmNvbS8pCi0gW01vb25WaXNpb25dKGh0dHBzOi8vd3d3Lm1vb252aXNpb24uaW8vKQotIFtNeXdvcmtvdXRdKGh0dHBzOi8vbXl3b3Jrb3V0LmNvbSkKLSBbTmFtU29yXShodHRwczovL3d3dy5uYW1zb3IuY29tLykKLSBbTmV2ZXJmYWlsXShodHRwczovL3d3dy5uZXZlcmZhaWwuY29tLykKLSBbTmV1ZXJFbmVyZ3ldKGh0dHBzOi8vbmV1ZXJlbmVyZ3kuY29tKQotIFtOb2tpYV0oaHR0cHM6Ly93d3cubm9raWEuY29tLykKLSBbT25lU2lnbmFsXShodHRwczovL3d3dy5vbmVzaWduYWwuY29tLykKLSBbT3B0aW9ucyBDbGVhcmluZyBDb3Jwb3JhdGlvbiAoT0NDKV0oaHR0cHM6Ly93d3cudGhlb2NjLmNvbS8pCi0gW09wZW5ldF0oaHR0cHM6Ly93d3cub3BlbmV0LmNvbS8pCi0gW29wZW5WQUxJREFUSU9OXShodHRwczovL29wZW52YWxpZGF0aW9uLmlvLykKLSBbT3JhY2xlXShodHRwczovL3d3dy5vcmFjbGUuY29tLykKLSBbUGF4b3NdKGh0dHBzOi8vd3d3LnBheG9zLmNvbSkKLSBbUGxhaWRdKGh0dHBzOi8vcGxhaWQuY29tKQotIFtQTEFJRCwgSW5jLl0oaHR0cHM6Ly9wbGFpZC5jby5qcC8pCi0gW1BpbnRlcmVzdF0oaHR0cHM6Ly93d3cucGludGVyZXN0LmNvbSkKLSBbUG9uaWNvZGVdKGh0dHBzOi8vcG9uaWNvZGUuZGV2LykKLSBbUHJpY2VmeF0oaHR0cHM6Ly93d3cucHJpY2VmeC5jb20vKQotIFtQcmludE5hbm55XShodHRwczovL3d3dy5wcmludC1uYW5ueS5jb20vKQotIFtQcm9tZXRoZXVzL0FsZXJ0bWFuYWdlcl0oaHR0cHM6Ly9naXRodWIuY29tL3Byb21ldGhldXMvYWxlcnRtYW5hZ2VyKQotIFtRYXZhcl0oaHR0cHM6Ly93d3cucWF2YXIuY29tKQotIFtRRURJVF0oaHR0cHM6Ly9xZWQtaXQuY29tKQotIFtRb3ZlcnldKGh0dHBzOi8vcW92ZXJ5LmNvbSkKLSBbUXVsaXggU3lzdGVtc10oaHR0cHM6Ly93d3cucXVsaXguY29tKQotIFtSYWtzdWxdKGh0dHBzOi8vY29ycC5yYWtzdWwuY29tKQotIFtSYWlmZmVpc2VuIFNjaHdlaXogR2Vub3NzZW5zY2hhZnRdKGh0dHBzOi8vd3d3LnJhaWZmZWlzZW4uY2gpCi0gW1JlZEhhdF0oaHR0cHM6Ly93d3cucmVkaGF0LmNvbSkKLSBbUmVwcmVaZW4gQVBJIFN0dWRpb10oaHR0cHM6Ly93d3cucmVwcmV6ZW4uY29tL3N3YWdnZXItb3BlbmFwaS1jb2RlLWdlbmVyYXRpb24tYXBpLWZpcnN0LW1pY3Jvc2VydmljZXMtZW50ZXJwcmlzZS1kZXZlbG9wbWVudCkKLSBbUkVTVCBVbml0ZWRdKGh0dHBzOi8vcmVzdHVuaXRlZC5jb20pCi0gW1JvYm9jb3JwXShodHRwczovL3d3dy5yb2JvY29ycC5jb20pCi0gW1JvYm90aW5mcmFdKGh0dHBzOi8vd3d3LnJvYm90aW5mcmEuY29tKQotIFtTZWFyY2hBcGldKGh0dHBzOi8vd3d3LnNlYXJjaGFwaS5pby8pCi0gW1NtYXJ0SFJdKGh0dHBzOi8vc21hcnRoci5jby5qcC8pCi0gW1NvbnkgSW50ZXJhY3RpdmUgRW50ZXJ0YWlubWVudF0oaHR0cHM6Ly93d3cuc2llLmNvbS9lbi9pbmRleC5odG1sKQotIFtTcGxpdGl0XShodHRwczovL3d3dy5zcGxpdGl0LmNvbS8pCi0gW1N0aW5ncmF5XShodHRwOi8vd3d3LnN0aW5ncmF5LmNvbSkKLSBbU3V2YV0oaHR0cHM6Ly93d3cuc3V2YS5jaC8pCi0gW1N2aXhdKGh0dHBzOi8vd3d3LnN2aXguY29tLykKLSBbVGVsc3RyYV0oaHR0cHM6Ly9kZXYudGVsc3RyYS5jb20pCi0gW1RlbmNlbnRdKGh0dHBzOi8vd3d3LnRlbmNlbnQuY29tKQotIFtUaGUgVW5pdmVyc2l0eSBvZiBBaXp1XShodHRwczovL3d3dy51LWFpenUuYWMuanAvZW4vKQotIFtUcmFuc2x1Y2VudCBBcFNdKGh0dHBzOi8vd3d3LnRyYW5zbHVjZW50LmRrKQotIFtUcmF2ZWxUaW1lIHBsYXRmb3JtXShodHRwczovL3d3dy50cmF2ZWx0aW1lcGxhdGZvcm0uY29tLykKLSBbVHJpYmFsU2NhbGVdKGh0dHBzOi8vd3d3LnRyaWJhbHNjYWxlLmNvbSkKLSBbVHJpZm9ya10oaHR0cHM6Ly90cmlmb3JrLmNvbSkKLSBbVFVJIEluZm9UZWMgR21iSF0oaHR0cDovL3d3dy50dWktaW5mb3RlYy5jb20vKQotIFtUd2lsaW9dKGh0dHBzOi8vd3d3LnR3aWxpby5jb20vKQotIFtUd2l0dGVyXShodHRwczovL3R3aXR0ZXIuY29tKQotIFt1bmJsdSBpbmMuXShodHRwczovL3d3dy51bmJsdS5jb20vKQotIFtWZWFtbHldKGh0dHBzOi8vd3d3LnZlYW1seS5jb20vKQotIFtWTVdhcmVdKGh0dHBzOi8vd3d3LnZtd2FyZS5jb20vKQotIFt3YnQtc29sdXRpb25zXShodHRwczovL3d3dy53YnQtc29sdXRpb25zLmRlLykKLSBbV29sZWV0XShodHRwczovL3d3dy53b2xlZXQuaW8vKQotIFtXU08yXShodHRwczovL3dzbzIuY29tLykKLSBbVm91Y2hlcnkuaW9dKGh0dHBzOi8vdm91Y2hlcnkuaW8pCi0gW1hlcm9dKGh0dHBzOi8vd3d3Lnhlcm8uY29tLykKLSBbWWFob28gSmFwYW5dKGh0dHBzOi8vd3d3LnlhaG9vLmNvLmpwLykKLSBbdmlhZGVlXShodHRwczovL3d3dy52aWFkZWUuZGUvKQotIFtWb25hZ2VdKGh0dHBzOi8vdm9uYWdlLmNvbSkKLSBbWUlUVSBUZWNobm9sb2d5XShodHRwczovL3d3dy55aXR1dGVjaC5jb20vKQotIFtZZWxwXShodHRwczovL3d3dy55ZWxwLmNvbS8pCi0gW1phbGFuZG9dKGh0dHBzOi8vd3d3LnphbGFuZG8uY29tKQotIFszRFMgT3V0c2NhbGVdKGh0dHBzOi8vd3d3Lm91dHNjYWxlLmNvbS8pCgojIyBbNSAtIFByZXNlbnRhdGlvbnMvVmlkZW9zL1R1dG9yaWFscy9Cb29rc10oI3RhYmxlLW9mLWNvbnRlbnRzKQoKLSAyMDE4LzA1LzEyIC0gW09wZW5BUEkgR2VuZXJhdG9yIC0gY29tbXVuaXR5IGRyaXZlbuOBp+aIkOmVt+OBmeOCi+OCs+ODvOODieOCuOOCp+ODjeODrOODvOOCv10oaHR0cHM6Ly9hY2tpbnRvc2guZ2l0aHViLmlvL2Jsb2cvMjAxOC8wNS8xMi9vcGVuYXBpLWdlbmVyYXRvci8pIGJ5IFvkuK3ph47mmoHkurpdKGh0dHBzOi8vZ2l0aHViLmNvbS9hY2tpbnRvc2gpCi0gMjAxOC8wNS8xNSAtIFtTdGFydGluZyBhIG5ldyBvcGVuLXNvdXJjZSBwcm9qZWN0XShodHRwOi8vam1pbmkuZ2l0aHViLmlvL2Jsb2cvMjAxOC8yMDE4LTA1LTE1X25ldy1vcGVuLXNvdXJjZS1wcm9qZWN0Lmh0bWwpIGJ5IFtKZXJlbWllIEJyZXNzb25dKGh0dHBzOi8vZ2l0aHViLmNvbS9qbWluaSkKLSAyMDE4LzA1LzE1IC0gW1JFU1QgQVBJ5LuV5qeY44GL44KJQVBJ44Kv44Op44Kk44Ki44Oz44OI44KE44K544K/44OW44K144O844OQ44KS6Ieq5YuV55Sf5oiQ44GZ44KL44CMT3BlbkFQSSBHZW5lcmF0b3LjgI3jgqrjg7zjg5fjg7Pjgr3jg7zjgrnjgaflhazplovjgIJTd2FnZ2VyIENvZGVnZW7jgYvjgonjga7jg5Xjgqnjg7zjgq9dKGh0dHBzOi8vd3d3LnB1YmxpY2tleTEuanAvYmxvZy8xOC9yZXN0X2FwaWFwaW9wZW5hcGlfZ2VuZXJhdG9yc3dhZ2dlcl9nZW5lcmF0b3IuaHRtbCkgYnkgW1B1YmxpY2tleV0oaHR0cHM6Ly93d3cucHVibGlja2V5MS5qcCkKLSAyMDE4LzA2LzA4IC0gW1N3YWdnZXIgQ29kZWdlbiBpcyBub3cgT3BlbkFQSSBHZW5lcmF0b3JdKGh0dHBzOi8vYW5ndWxhci5zY2h1bGUvYmxvZy8yMDE4LTA2LXN3YWdnZXItY29kZWdlbi1pcy1ub3ctb3BlbmFwaS1nZW5lcmF0b3IpIGJ5IFtKb2hhbm5lc0hvcHBlXShodHRwczovL2dpdGh1Yi5jb20vSm9oYW5uZXNIb3BwZSkKLSAyMDE4LzA2LzIxIC0gW0Nvbm5lY3QgeW91ciBKSGlwc3RlciBhcHBzIHRvIHRoZSB3b3JsZCBvZiBBUElzIHdpdGggT3BlbkFQSSBhbmQgZ1JQQ10oaHR0cHM6Ly9mci5zbGlkZXNoYXJlLm5ldC9jaGJvcm5ldC9qaGlwc3Rlci1jb25mLTIwMTgtY29ubmVjdC15b3VyLWpoaXBzdGVyLWFwcHMtdG8tdGhlLXdvcmxkLW9mLWFwaXMtd2l0aC1vcGVuYXBpLWFuZC1ncnBjKSBieSBbQ2hyaXN0b3BoZSBCb3JuZXRdKGh0dHBzOi8vZ2l0aHViLmNvbS9jYm9ybmV0KSBhdCBbSkhpcHN0ZXIgQ29uZiAyMDE4XShodHRwczovL2poaXBzdGVyLWNvbmYuZ2l0aHViLmlvLykKLSAyMDE4LzA2LzIyIC0gW09wZW5BUEkgR2VuZXJhdG9yIOOBpyBHYXRsaW5nIENsaWVudCDjgpLnlJ/miJDjgZfjgabjgb/jgZ9dKGh0dHBzOi8vcm9oa2kuaGF0ZW5hYmxvZy5jb20vZW50cnkvMjAxOC8wNi8yMi8wNzMwMDApIGF0IFvjgr3jg6LjgrXjg7NdKGh0dHBzOi8vcm9oa2kuaGF0ZW5hYmxvZy5jb20vKQotIDIwMTgvMDYvMjcgLSBbTGVzc29ucyBMZWFybmVkIGZyb20gTGVhZGluZyBhbiBPcGVuLVNvdXJjZSBQcm9qZWN0IFN1cHBvcnRpbmcgMzArIFByb2dyYW1taW5nIExhbmd1YWdlc10oaHR0cHM6Ly9zcGVha2VyZGVjay5jb20vd2luZzMyOC9sZXNzb25zLWxlYXJuZWQtZnJvbS1sZWFkaW5nLWFuLW9wZW4tc291cmNlLXByb2plY3Qtc3VwcG9ydGluZy0zMC1wbHVzLXByb2dyYW1taW5nLWxhbmd1YWdlcykgLSBbV2lsbGlhbSBDaGVuZ10oaHR0cHM6Ly9naXRodWIuY29tL3dpbmczMjgpIGF0IFtMaW51eENvbiArIENvbnRhaW5lckNvbiArIENsb3VkT3BlbiBDaGluYSAyMDE4XShodHRwOi8vYml0Lmx5LzJ3YURLS1gpCi0gMjAxOC8wNy8xOSAtIFtPcGVuQVBJIEdlbmVyYXRvciBDb250cmlidXRpb24gUXVpY2tzdGFydCAtIFJpbmdDZW50cmFsIEdvIFNES10oaHR0cHM6Ly9tZWRpdW0uY29tL3JpbmdjZW50cmFsLWRldmVsb3BlcnMvb3BlbmFwaS1nZW5lcmF0b3ItZm9yLWdvLWNvbnRyaWJ1dGlvbi1xdWlja3N0YXJ0LThjYzcyYmYzN2I1MykgYnkgW0pvaG4gV2FuZ10oaHR0cHM6Ly9naXRodWIuY29tL2dyb2tpZnkpCi0gMjAxOC8wOC8yMiAtIFtPcGVuQVBJIEdlbmVyYXRvcuOBruODl+ODreOCuOOCp+OCr+ODiOani+aIkOOBquOBqeOBruODoeODol0oaHR0cHM6Ly95aW5tLmluZm8vMjAxODA4MjIvKSBieSBbWXVzdWtlIElpbnVtYV0oaHR0cHM6Ly9naXRodWIuY29tL3lpbm0pCi0gMjAxOC8wOS8xMiAtIFtSZXByZVplbiBhbmQgT3BlbkFQSSAzLjA6IE5vdyBpcyB0aGUgVGltZV0oaHR0cHM6Ly93d3cucmVwcmV6ZW4uY29tL2Jsb2cvcmVwcmV6ZW4tb3BlbmFwaS0zLjAtdXBncmFkZS1ub3ctaXMtdGhlLXRpbWUpIGJ5IFtNaWxlcyBEYWZmaW5dKGh0dHBzOi8vd3d3LnJlcHJlemVuLmNvbS9ibG9nL2F1dGhvci9taWxlcy1kYWZmaW4pCi0gMjAxOC8xMC8zMSAtIFtBIG5vZGUgcGFja2FnZSB3cmFwcGVyIGZvciBvcGVuYXBpLWdlbmVyYXRvcl0oaHR0cHM6Ly9naXRodWIuY29tL0hhcm1vV2F0Y2gvb3BlbmFwaS1nZW5lcmF0b3ItY2xpKQotIDIwMTgvMTEvMDMgLSBbT3BlbkFQSSBHZW5lcmF0b3IgKyBnb2xhbmcgKyBGbHV0dGVyIOOBp+OCouODl+ODqumWi+eZul0oaHR0cDovL3J5dWljaGkxMTFzdGQuaGF0ZW5hYmxvZy5jb20vZW50cnkvMjAxOC8xMS8wMy8yMTQwMDUpIGJ5IFtSeXVpY2hpIERhaWdvXShodHRwczovL2dpdGh1Yi5jb20vcnl1aWNoaTExMSkKLSAyMDE4LzExLzE1IC0gW+WfuuS6jm9wZW5hcGkzLjDnmoR5YW1s5paH5Lu255Sf5oiQamF2YeS7o+eggeeahOS4gOasoeWunui3tV0oaHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3l6eTE5OTM5MS9hcnRpY2xlL2RldGFpbHMvODQwMjM5ODIpIGJ5IFvnhLHprZTnjotdKGh0dHBzOi8vbWUuY3Nkbi5uZXQveXp5MTk5MzkxKQotIDIwMTgvMTEvMTggLSBbR2VuZXJhdGluZyBQSFAgbGlicmFyeSBjb2RlIGZyb20gT3BlbkFQSV0oaHR0cHM6Ly9sb3JuYWphbmUubmV0L3Bvc3RzLzIwMTgvZ2VuZXJhdGluZy1waHAtbGlicmFyeS1jb2RlLWZyb20tb3BlbmFwaSkgYnkgW0xvcm5hIEphbmVdKGh0dHBzOi8vbG9ybmFqYW5lLm5ldC8pIGF0IFtMT1JOQUpBTkUgQmxvZ10oaHR0cHM6Ly9sb3JuYWphbmUubmV0L2Jsb2cpCi0gMjAxOC8xMS8xOSAtIFtPcGVuQVBJcyBhcmUgZXZlcnl3aGVyZV0oaHR0cHM6Ly95b3V0dS5iZS8tbERvdDRZbjdEZykgYnkgW0plcmVtaWUgQnJlc3NvbiAoVW5ibHUpXShodHRwczovL2dpdGh1Yi5jb20vam1pbmkpIGF0IFtFY2xpcHNlQ29uIEV1cm9wZSAyMDE4XShodHRwczovL3d3dy5lY2xpcHNlY29uLm9yZy9ldXJvcGUyMDE4KQotIDIwMTgvMTIvMDkgLSBbb3BlbmFwaS1nZW5lcmF0b3Ig44KS44Kr44K544K/44Oe44Kk44K644GZ44KL5pa55rOVXShodHRwczovL3FpaXRhLmNvbS93YXRpa28vaXRlbXMvMDk2MTI4N2MwMmVhYzkyMTE1NzIpIGJ5IFtAd2F0aWtvXShodHRwczovL3FpaXRhLmNvbS93YXRpa28pCi0gMjAxOS8wMS8wMyAtIFtDYWxsaW5nIGEgU3dhZ2dlciBzZXJ2aWNlIGZyb20gQXBleCB1c2luZyBvcGVuYXBpLWdlbmVyYXRvcl0oaHR0cHM6Ly9sZWtraW13b3JsZC5jb20vMjAxOS8wMS8wMy9jYWxsaW5nLWEtc3dhZ2dlci1zZXJ2aWNlLWZyb20tYXBleC11c2luZy1vcGVuYXBpLWdlbmVyYXRvci8pIGJ5IFtNaWtrZWwgRmxpbmR0IEhlaXN0ZXJiZXJnXShodHRwczovL2xla2tpbXdvcmxkLmNvbSkKLSAyMDE5LzAxLzEzIC0gW09wZW5BUEkgR2VuZXJhdG9y44GnUkVTVGZ1bCBBUEnjga7lrprnvqnmm7jjgYvjgonoibLjgIXoh6rli5XnlJ/miJDjgZnjgotdKGh0dHBzOi8va3kteWstZC5oYXRlbmFibG9nLmNvbS9lbnRyeS8yMDE5LzAxLzEzLzIzNDEwOCkgYnkgW0BreV95a19kXShodHRwczovL3R3aXR0ZXIuY29tL2t5X3lrX2QpCi0gMjAxOS8wMS8yMCAtIFtDb250cmFjdC1GaXJzdCBBUEkgRGV2ZWxvcG1lbnQgd2l0aCBPcGVuQVBJIEdlbmVyYXRvciBhbmQgQ29ubmV4aW9uXShodHRwczovL21lZGl1bS5jb20vY29tbWVuY2lzL2NvbnRyYWN0LWZpcnN0LWFwaS1kZXZlbG9wbWVudC13aXRoLW9wZW5hcGktZ2VuZXJhdG9yLWFuZC1jb25uZXhpb24tYjIxYmJmMmY5MjQ0KSBieSBbQW5pbCBDYW4gQXlkaW5dKGh0dHBzOi8vZ2l0aHViLmNvbS9hbmxjbnlkbikKLSAyMDE5LzAxLzMwIC0gW1JhcGlkIEFwcGxpY2F0aW9uIERldmVsb3BtZW50IFdpdGggQVBJIEZpcnN0IEFwcHJvYWNoIFVzaW5nIE9wZW4tQVBJIEdlbmVyYXRvcl0oaHR0cHM6Ly9kem9uZS5jb20vYXJ0aWNsZXMvcmFwaWQtYXBpLWRldmVsb3BtZW50LXVzaW5nLW9wZW4tYXBpLWdlbmVyYXRvcikgYnkgW01pbGFuIFNvbmthcl0oaHR0cHM6Ly9kem9uZS5jb20vdXNlcnMvODI4MzI5L21pbGFuX3Nvbmthci5odG1sKQotIDIwMTkvMDIvMDIgLSBb5bmz6Z2Z44KS5L+d44Gh44CB44Kz44O844OJ44KS55Sf5oiQ44Gb44KIIOOAnCBPcGVuQVBJIEdlbmVyYXRvcuiqleeUn+OBruiDjOaZr+OBqOi7jOi3oSDjgJxdKGh0dHBzOi8vc3BlYWtlcmRlY2suY29tL2FraWhpdG9fbmFrYW5vL2d1bm1hd2ViMzQpIGJ5IFvkuK3ph47mmoHkurpdKGh0dHBzOi8vZ2l0aHViLmNvbS9hY2tpbnRvc2gpIGF0IFtHdW5tYS53ZWIgIzM0IOOCueOCreODvOODnumnhuWLlemWi+eZul0oaHR0cHM6Ly9ndW5tYXdlYi5jb25ucGFzcy5jb20vZXZlbnQvMTEzOTc0LykKLSAyMDE5LzAyLzIwIC0gW0FuIGFkdmVudHVyZSBpbiBPcGVuQVBJIFYzIGNvZGUgZ2VuZXJhdGlvbl0oaHR0cHM6Ly9tdXguY29tL2Jsb2cvYW4tYWR2ZW50dXJlLWluLW9wZW5hcGktdjMtYXBpLWNvZGUtZ2VuZXJhdGlvbi8pIGJ5IFtQaGlsIENsdWZmXShodHRwczovL211eC5jb20vYmxvZy9hdXRob3IvcGhpbGMvKQotIDIwMTkvMDIvMjYgLSBbQnVpbGRpbmcgQVBJIFNlcnZpY2VzOiBBIEJlZ2lubmVy4oCZcyBHdWlkZV0oaHR0cHM6Ly9tZWRpdW0uY29tL2dvb2dsZS1jbG91ZC9idWlsZGluZy1hcGktc2VydmljZXMtYS1iZWdpbm5lcnMtZ3VpZGUtNzI3NGFlNGM1NDdmKSBieSBbUmF0cm9zIFkuXShodHRwczovL21lZGl1bS5jb20vQHJhdHJvc3kpIGluIFtHb29nbGUgQ2xvdWQgUGxhdGZvcm0gQmxvZ10oaHR0cHM6Ly9tZWRpdW0uY29tL2dvb2dsZS1jbG91ZCkKLSAyMDE5LzAyLzI2IC0gW0J1aWxkaW5nIEFQSXMgd2l0aCBPcGVuQVBJOiBDb250aW51ZWRdKGh0dHBzOi8vbWVkaXVtLmNvbS9AcmF0cm9zeS9idWlsZGluZy1hcGlzLXdpdGgtb3BlbmFwaS1jb250aW51ZWQtNWQwZmFhZWQzMmViKSBieSBbUmF0cm9zIFkuXShodHRwczovL21lZGl1bS5jb20vQHJhdHJvc3kpIGluIFtHb29nbGUgQ2xvdWQgUGxhdGZvcm0gQmxvZ10oaHR0cHM6Ly9tZWRpdW0uY29tL2dvb2dsZS1jbG91ZCkKLSAyMDE5LTAzLTA3IC0gW09wZW5BUEkgR2VuZXJhdG9yIOOBpyBTcHJpbmcgQm9vdCDjgaggQW5ndWxhciDjgpLjgr/jgqTjg5fjgrvjg7zjg5XjgavnuYvjgZBdKGh0dHBzOi8vcWlpdGEuY29tL2NoaWJhdG8vaXRlbXMvZTRhNzQ4ZGIxMjQwOWI0MGMwMmYpIGJ5IFtUb21vZnVtaSBDaGliYV0oaHR0cHM6Ly9naXRodWIuY29tL2NoaWJhdCkKLSAyMDE5LTAzLTE2IC0gW0EgUXVpY2sgaW50cm9kdWN0aW9uIHRvIG1hbnVhbCBPcGVuQVBJIFYzXShodHRwczovL3ZhZG9zd2FyZS5pby9wb3N0L3F1aWNrLWludHJvLXRvLW1hbnVhbC1vcGVuYXBpLXYzLykgYnkgW3ZhZG9zXShodHRwczovL2dpdGh1Yi5jb20vdDNobXJtYW4pIGF0IFtWQURPU1dBUkVdKGh0dHBzOi8vdmFkb3N3YXJlLmlvKQotIDIwMTktMDMtMjUgLSBbQWNjZXNzIGFueSBSRVNUIHNlcnZpY2Ugd2l0aCB0aGUgU0FQIFMvNEhBTkEgQ2xvdWQgU0RLXShodHRwczovL2Jsb2dzLnNhcC5jb20vMjAxOS8wMy8yNS9pbnRlZ3JhdGUtc2FwLXM0aGFuYS1jbG91ZC1zZGstd2l0aC1vcGVuLWFwaS8pIGJ5IFtBbGV4YW5kZXIgRHVlbW9udF0oaHR0cHM6Ly9wZW9wbGUuc2FwLmNvbS9hbGV4YW5kZXIuZHVlbW9udCkKLSAyMDE5LTAzLTI1IC0gW09wZW5BUEkgZ2VuZXJhdG9y44KS6Kmm44GX44Gm44G/44KLXShodHRwczovL3FpaXRhLmNvbS9hbXV5aWthbS9pdGVtcy9lOGE0NWRhYWU1OWM2OGJlMGZjOCkgYnkgW0BhbXV5aWthbV0oaHR0cHM6Ly90d2l0dGVyLmNvbS9hbXV5aWthbSkKLSAyMDE5LTAzLTI3IC0gW09wZW5BUEkz44KS5L2/44Gj44Gm44G/44KI44GG77yBR2/oqIDoqp7jgafjgq/jg6njgqTjgqLjg7Pjg4jjgajjgrnjgr/jg5bjga7oh6rli5XnlJ/miJDjgb7jgafvvIFdKGh0dHBzOi8vdGVjaGJsb2cuem96by5jb20vZW50cnkvb3BlbmFwaTMvZ28pIGJ5IFtAZ29sZF9rb3VdKGh0dHBzOi8vdHdpdHRlci5jb20vZ29sZF9rb3UpCi0gMjAxOS0wNC0xNyAtIFtPcGVuQVBJ44Gr44KI44KL44K544Kt44O844Oe44OV44Kh44O844K544OI6ZaL55m644Gu5a6f5pa944K144Oz44OX44Or44GoQ2xvdWQgUnVu44Gr44Gk44GE44GmXShodHRwczovL3RlY2gtYmxvZy5vcHRpbS5jby5qcC9lbnRyeS8yMDE5LzA0LzE3LzE3NDAwMCkgYnkgW0B5dWtleTEwMzFdKGh0dHBzOi8vdHdpdHRlci5jb20veXVrZXkxMDMxKQotIDIwMTktMDQtMTggLSBbSG93IHRvIHVzZSBPcGVuQVBJMyBmb3IgQVBJIGRldmVsb3BlciAoUnVieUthaWdpIDIwMTkpXShodHRwczovL3NwZWFrZXJkZWNrLmNvbS9vdGE0MnkvaG93LXRvLXVzZS1vcGVuYXBpMy1mb3ItYXBpLWRldmVsb3BlcikgYnkgW0BvdGE0MnldKGh0dHBzOi8vdHdpdHRlci5jb20vb3RhNDJ5KSBhdCBbUnVieUthaWdpIDIwMTldKGh0dHBzOi8vcnVieWthaWdpLm9yZy8yMDE5KQotIDIwMTktMDQtMjkgLSBbQSBCZWdpbm5lcidzIEd1aWRlIHRvIENvZGUgR2VuZXJhdGlvbiBmb3IgUkVTVCBBUElzIChPcGVuQVBJIEdlbmVyYXRvcildKGh0dHBzOi8vZ3VtLmNvL29wZW5hcGlfZ2VuZXJhdG9yX2Vib29rKSBieSBbV2lsbGlhbSBDaGVuZ10oaHR0cHM6Ly90d2l0dGVyLmNvbS93aW5nMzI4KQotIDIwMTktMDUtMDEgLSBbRGVzaWduIGFuZCBnZW5lcmF0ZSBhIFJFU1QgQVBJIGZyb20gU3dhZ2dlciAvIE9wZW5BUEkgaW4gSmF2YSwgUHl0aG9uLCBDIyBhbmQgbW9yZV0oaHR0cHM6Ly9zaW1wbHktaG93LmNvbS9kZXNpZ24tYW5kLWdlbmVyYXRlLWFwaS1jb2RlLWZyb20tb3BlbmFwaSkgYnkgW1NpbXBseSBIb3ddKGh0dHBzOi8vc2ltcGx5LWhvdy5jb20vKQotIDIwMTktMDUtMTcgLSBbR2VuZXJhdGUgU3ByaW5nIEJvb3QgUkVTVCBBUEkgdXNpbmcgU3dhZ2dlci9PcGVuQVBJXShodHRwczovL3d3dy40N25vcnRobGFicy5jb20va25vd2xlZGdlLWJhc2UvZ2VuZXJhdGUtc3ByaW5nLWJvb3QtcmVzdC1hcGktdXNpbmctc3dhZ2dlci1vcGVuYXBpLykgYnkgW0FudG9uaWUgWmFmaXJvdl0oaHR0cHM6Ly93d3cuNDdub3J0aGxhYnMuY29tL2F1dGhvci9hbnRvbmllLXphZmlyb3YvKQotIDIwMTktMDUtMjIgLSBbUkVTVCBBUElz5Luj56CB55Sf5oiQ5oyH5Y2XKE9wZW5BUEkgR2VuZXJhdG9yKV0oaHR0cHM6Ly9ndW0uY28vb3BlbmFwaV9nZW5lcmF0b3JfZWJvb2tfZ2IpIGJ5IFtXaWxsaWFtIENoZW5nXShodHRwczovL3R3aXR0ZXIuY29tL3dpbmczMjgpLCBbWGluIE1lbmddKGh0dHBzOi8vZ2l0aHViLmNvbS94bWVuZzEpCi0gMjAxOS0wNS0yNCAtIFtSRVNUIEFQSSDku6PnorznlJ/miJDmjIfljZcgKE9wZW5BUEkgR2VuZXJhdG9yKV0oaHR0cHM6Ly9ndW0uY28vb3BlbmFwaV9nZW5lcmF0b3JfZWJvb2tfYmlnNSkgYnkgW1dpbGxpYW0gQ2hlbmddKGh0dHBzOi8vdHdpdHRlci5jb20vd2luZzMyOCkKLSAyMDE5LTA2LTI0IC0gW0t1YmVybmV0ZXMgQ2xpZW50cyBhbmQgT3BlbkFQSSBHZW5lcmF0b3JdKGh0dHBzOi8vc3BlYWtlcmRlY2suY29tL3dpbmczMjgva3ViZXJuZXRlcy1jbGllbnRzLWFuZC1vcGVuYXBpLWdlbmVyYXRvcikgYnkgW1dpbGxpYW0gQ2hlbmddKGh0dHBzOi8vdHdpdHRlci5jb20vd2luZzMyOCkgYXQgW0t1YmVybmV0ZXMgQ29udHJpYnV0b3IgU3VtbWl0cyBTaGFuZ2hhaSAyMDE5XShodHRwczovL3d3dy5sZmFzaWFsbGMuY29tL2V2ZW50cy9jb250cmlidXRvcnMtc3VtbWl0LWNoaW5hLTIwMTkvKQotIDIwMTktMDYtMjggW0NvZGV3aW5kIE9wZW5BUEkgVG9vbHNdKGh0dHBzOi8vbWFya2V0cGxhY2UuZWNsaXBzZS5vcmcvY29udGVudC9jb2Rld2luZC1vcGVuYXBpLXRvb2xzKSBpbiBbRWNsaXBzZSBNYXJrZXRwbGFjZV0oaHR0cHM6Ly9tYXJrZXRwbGFjZS5lY2xpcHNlLm9yZy8pIGJ5IElCTQotIDIwMTktMDYtMjkgW0NvZGV3aW5kIE9wZW5BUEkgVG9vbHNdKGh0dHBzOi8vbWFya2V0cGxhY2UudmlzdWFsc3R1ZGlvLmNvbS9pdGVtcz9pdGVtTmFtZT1JQk0uY29kZXdpbmQtb3BlbmFwaS10b29scykgaW4gW1Zpc3VhbCBTdHVkaW8gTWFya2V0cGxhY2VdKGh0dHBzOi8vbWFya2V0cGxhY2UudmlzdWFsc3R1ZGlvLmNvbS8pIGJ5IElCTQotIDIwMTktMDctMDQgLSBbUkVTVCBBUEkg44Gu44Gf44KB44Gu44Kz44O844OI44KZ55Sf5oiQ5YWl6ZaAIChPcGVuQVBJIEdlbmVyYXRvcildKGh0dHBzOi8vZ3VtLmNvL29wZW5hcGlfZ2VuZXJhdG9yX2Vib29rX2JpZzUpIGJ5IFtXaWxsaWFtIENoZW5nXShodHRwczovL3R3aXR0ZXIuY29tL3dpbmczMjgpLCBb5Lit6YeO5pqB5Lq6XShodHRwczovL2dpdGh1Yi5jb20vYWNraW50b3NoKSwgW+WSjOeUsOaLk+acl10oaHR0cHM6Ly9naXRodWIuY29tL3RheHBvbikKLSAyMDE5LTA3LTA4IC0gW09wZW5BUEkgR2VuZXJhdG9yIOOBq+OCs+ODs+ODiOODquODk+ODpeODvOODiOOBl+OBn+OCieekvuWQjeOBjOi8ieOBo+OBn+ipseOAgihDQU0pIC0gQ0FNIFRFQ0ggQkxPR10oaHR0cHM6Ly90ZWNoLmNhbS1pbmMuY28uanAvZW50cnkvMjAxOS8wNy8wOC8xNDAwMDApIGJ5IFtDQU0sIEluYy5dKGh0dHBzOi8vd3d3LmNhbS1pbmMuY28uanAvKQotIDIwMTktMDctMTQgLSBbT3BlbkFQSSBHZW5lcmF0b3LjgadQeXRob27jga7jgq/jg6njgqTjgqLjg7Pjg4jjg6njgqTjg5bjg6njg6rjgpLkvZzmiJDjgZfjgZ9dKGh0dHBzOi8vcWlpdGEuY29tL3l1amkzOGt3bXQvaXRlbXMvZGZiOTI5MzE2YTEzMzVhMTYxYzApIGJ5IFt5dWppMzhrd210XShodHRwczovL3FpaXRhLmNvbS95dWppMzhrd210KQotIDIwMTktMDctMTkgLSBbRGV2ZWxvcGVyIEV4cGVyaWVuY2UgKERYKSBmb3IgT3Blbi1Tb3VyY2UgUHJvamVjdHM6IEhvdyB0byBFbmdhZ2UgRGV2ZWxvcGVycyBhbmQgQnVpbGQgYSBHcm93aW5nIERldmVsb3BlciBDb21tdW5pdHldKGh0dHBzOi8vc3BlYWtlcmRlY2suY29tL3dpbmczMjgvZGV2ZWxvcGVyLWV4cGVyaWVuY2UtZHgtZm9yLW9wZW4tc291cmNlLXByb2plY3RzLWVuZ2xpc2gtamFwYW5lc2UpIGJ5IFtXaWxsaWFtIENoZW5nXShodHRwczovL3R3aXR0ZXIuY29tL3dpbmczMjgpLCBb5Lit6YeO5pqB5Lq6XShodHRwczovL2dpdGh1Yi5jb20vYWNraW50b3NoKSBhdCBbT3BlbiBTb3VyY2UgU3VtbWl0IEphcGFuIDIwMTldKGh0dHBzOi8vZXZlbnRzLmxpbnV4Zm91bmRhdGlvbi5vcmcvZXZlbnRzL29wZW4tc291cmNlLXN1bW1pdC1qYXBhbi0yMDE5LykKLSAyMDE5LTA4LTE0IC0gW091ciBPcGVuQVBJIGpvdXJuZXkgd2l0aCBTdGFuZGFyZGl6aW5nIFNES3NdKGh0dHBzOi8vYml0bW92aW4uY29tL291ci1vcGVuYXBpLWpvdXJuZXktd2l0aC1zdGFuZGFyZGl6aW5nLXNka3MvKSBieSBbU2ViYXN0aWFuIEJ1cmdzdGFsbGVyXShodHRwczovL2JpdG1vdmluLmNvbS9hdXRob3Ivc2J1cmdzdGFsbGVyLykgYXQgW0JpdG1vdmluXShodHRwczovL3d3dy5iaXRtb3Zpbi5jb20pCi0gMjAxOS0wOC0xNSAtIFtBUEnjga7jgrPjg7zjg4njgpLoh6rli5XnlJ/miJDjgZXjgZvjgZ/jgYTjgaDjgZHjgarjgolnUlBD44Gn44Gq44GP44Gm44KC44KI44GP44Gq44GEP10oaHR0cHM6Ly93d3cubTN0ZWNoLmJsb2cvZW50cnkvMjAxOS8wOC8xNS8xMTAwMDApIGJ5IFtNMywgSW5jLl0oaHR0cHM6Ly9jb3Jwb3JhdGUubTMuY29tLykKLSAyMDE5LTA4LTIyIC0gW+ODnuOCpOOCr+ODreOCteODvOODk+OCueOBq+OBiuOBkeOCi1dlYiBBUEnjgrnjgq3jg7zjg57jga7nrqHnkIbilIAgR3JhcGhRTOOAgWdSUEPjgIFPcGVuQVBJ44Gu54m55b6044Go5L2/44GE44Gp44GT44KNXShodHRwczovL2VtcGxveW1lbnQuZW4tamFwYW4uY29tL2VuZ2luZWVyaHViL2VudHJ5LzIwMTkvMDgvMjIvMTAzMDAwKSBieSBbQG90YTQyeV0oaHR0cHM6Ly90d2l0dGVyLmNvbS9vdGE0MnkpCi0gMjAxOS0wOC0yNCAtIFtTd2FnZ2Vy44OJ44Kt44Ol44Oh44Oz44OI44GL44KJT3BlbkFQSSBHZW5lcmF0b3LjgpLkvb/jgaPjgabjg6Ljg4Pjgq/jgrXjg7zjg5Djg7zkvZzmiJBdKGh0dHBzOi8vcWlpdGEuY29tL21hc2F5b3NoaTAyMjIvaXRlbXMvNDg0NWU0YzcxNWQwNDU4N2MxMDQpIGJ5IFvlnYLmnKzmraPnvqldKGh0dHBzOi8vcWlpdGEuY29tL21hc2F5b3NoaTAyMjIpCi0gMjAxOS0wOC0yOSAtIFtPcGVuQVBJ5Yid5o6iXShodHRwczovL2Nsb3VkLnRlbmNlbnQuY29tL2RldmVsb3Blci9hcnRpY2xlLzE0OTU5ODYpIGJ5IFtwZWFreGllXShodHRwczovL2Nsb3VkLnRlbmNlbnQuY29tL2RldmVsb3Blci91c2VyLzExMTMxNTIpIGF0IFvohb7orq/kupHnpL7ljLpdKGh0dHBzOi8vY2xvdWQudGVuY2VudC5jb20vZGV2ZWxvcGVyKQotIDIwMTktMDgtMjkgLSBb5YWo6Z2i6L+b5YyW77yaS3ViZXJuZXRlcyBDUkQgMS4xNiBHQeWJjeeeu10oaHR0cHM6Ly93d3cuc2VydmljZW1lc2hlci5jb20vYmxvZy9rdWJlcm5ldGVzLTEuMTYtY3JkLWdhLXByZXZpZXcvKSBieSBbTWluIEtpbV0oaHR0cHM6Ly9naXRodWIuY29tL3l1ZTk5NDQ4ODIpIGF0IFtTZXJ2aWNlTWVzaGVyIEJsb2ddKGh0dHBzOi8vd3d3LnNlcnZpY2VtZXNoZXIuY29tL2Jsb2cvKQotIDIwMTktMDktMDEgLSBbQ3JlYXRpbmcgYSBQSFAtU2xpbSBzZXJ2ZXIgdXNpbmcgT3BlbkFQSSAoWW91dHViZSB2aWRlbyldKGh0dHBzOi8vd3d3LnlvdXR1YmUuY29tL3dhdGNoP3Y9NWNKdGJJcnNZa2cpIGJ5IFtEYW5pZWwgUGVyc3Nvbl0oaHR0cHM6Ly93d3cueW91dHViZS5jb20vY2hhbm5lbC9VQ25HLVROMjNsc3dPNlFidldoTXR4cEEpCi0gMjAxOS0wOS0wNiAtIFtWZXJ0LnggYW5kIE9wZW5BUEldKGh0dHBzOi8vd2lzc2VsLm5ldC9ibG9nLzIwMTkvMDkvdmVydHgtYW5kLW9wZW5hcGkuaHRtbCkgYnkgW1N0ZXBoYW4gSCBXaXNzZWxdKGh0dHBzOi8vdHdpdHRlci5jb20vbm90ZXNzZW5zZWkpIGF0IFt3aXNzZWwubmV0IGJsb2ddKGh0dHBzOi8vd2lzc2VsLm5ldCkKLSAyMDE5LTA5LTA5IC0gW0Nsb3VkLW5hdGl2ZSBkZXZlbG9wbWVudCAtIENyZWF0aW5nIFJFU1RmdWwgbWljcm9zZXJ2aWNlc10oaHR0cHM6Ly9jbG91ZC5pYm0uY29tL2RvY3MvY2xvdWQtbmF0aXZlP3RvcGljPWNsb3VkLW5hdGl2ZS1yZXN0LWFwaSkgaW4gW0lCTSBDbG91ZCBEb2NzXShodHRwczovL2Nsb3VkLmlibS5jb20vZG9jcykKLSAyMDE5LTA5LTE0IC0gW0dlbmVyYXRpbmcgYW5kIENvbmZpZ3VyaW5nIGEgTWFzdGVyY2FyZCBBUEkgQ2xpZW50XShodHRwczovL2RldmVsb3Blci5tYXN0ZXJjYXJkLmNvbS9wbGF0Zm9ybS9kb2N1bWVudGF0aW9uL2dlbmVyYXRpbmctYW5kLWNvbmZpZ3VyaW5nLWEtbWFzdGVyY2FyZC1hcGktY2xpZW50LykgYXQgW01hc3RlcmNhcmQgRGV2ZWxvcGVycyBQbGF0Zm9ybV0oaHR0cHM6Ly9kZXZlbG9wZXIubWFzdGVyY2FyZC5jb20vcGxhdGZvcm0vZG9jdW1lbnRhdGlvbi8pCi0gMjAxOS0wOS0xNSAtIFtPcGVuQVBJKFN3YWdnZXIp5bCO5YWl5LiL6Kq/44G5XShodHRwczovL3FpaXRhLmNvbS9TaG9pY2hpS3VyYW9rYS9pdGVtcy9mMWY3YTNjMjM3NmY3Y2Q5YzU2YSkgYnkgW1Nob2ljaGkgS3VyYW9rYV0oaHR0cHM6Ly9xaWl0YS5jb20vU2hvaWNoaUt1cmFva2EpCi0gMjAxOS0wOS0xNyAtIFtUdXRvcmlhbDogRG9jdW1lbnRpbmcgaHR0cDRrIEFQSXMgd2l0aCBPcGVuQXBpM10oaHR0cHM6Ly93d3cuaHR0cDRrLm9yZy90dXRvcmlhbHMvZG9jdW1lbnRpbmdfYXBpc193aXRoX29wZW5hcGkvKSBieSBbaHR0cDRrXShodHRwczovL3d3dy5odHRwNGsub3JnLykKLSAyMDE5LTA5LTIyIC0gW09wZW5BUEkgM+OCkuWujOWFqOOBq+eQhuino+OBp+OBjeOCi+acrF0oaHR0cHM6Ly9ib290aC5wbS9qYS9pdGVtcy8xNTcxOTAyKSBieSBbQG90YTQyeV0oaHR0cHM6Ly90d2l0dGVyLmNvbS9vdGE0MnkpCi0gMjAxOS0wOS0yMiAtIFtSRVNUZnVsIEFQSXM6IFR1dG9yaWFsIG9mIE9wZW5BUEkgU3BlY2lmaWNhdGlvbl0oaHR0cHM6Ly9tZWRpdW0uY29tL0BhbWlybS5sYXZhc2FuaS9yZXN0ZnVsLWFwaXMtdHV0b3JpYWwtb2Ytb3BlbmFwaS1zcGVjaWZpY2F0aW9uLWVlYWRhMGUzOTAxZCkgYnkgW0FtaXIgTGF2YXNhbmldKGh0dHBzOi8vbWVkaXVtLmNvbS9AYW1pcm0ubGF2YXNhbmkpCi0gMjAxOS0wOS0yMiAtIFtSZWRlZmluaW5nIFNES3MgYXMgc29mdHdhcmUgZGl2ZXJzaXR5IGtpdHNdKGh0dHBzOi8vZGV2cmVsLm5ldC9kZXYtcmVsL3JlZGVmaW5pbmctc2Rrcy1hcy1zb2Z0d2FyZS1kaXZlcnNpdHkta2l0cykgYnkgW1NpZCBNYWVzdHJlIChYZXJvKV0oaHR0cHM6Ly90d2l0dGVyLmNvbS9zaWRuZXlhbGxlbikgYXQgW0RldlJlbENvbiBTYW4gRnJhbmNpc2NvIDIwMTldKGh0dHBzOi8vc2YyMDE5LmRldnJlbC5uZXQvKQotIDIwMTktMDktMjMgLSBbc3dhZ2dlcuOBi+OCiU9wZW5BcGkgR2VuZXJhdG9y44GnU3ByaW5n44Gu44Kz44O844OJ44KS6Ieq5YuV55Sf5oiQXShodHRwczovL3FpaXRhLmNvbS9saXR0bGVGZWV0L2l0ZW1zLzQ5MmRmMmFkNjhhMDc5OWE1ZTVlKSBieSBbQGxpdHRsZUZlZXRdKGh0dHBzOi8vcWlpdGEuY29tL2xpdHRsZUZlZXQpIGF0IFtRaWl0YV0oaHR0cHM6Ly9xaWl0YS5jb20vKQotIDIwMTktMDktMjQgLSBbRWluZSBTdHVuZGUgd2FzIG1pdCBBcGkgRmlyc3QhXShodHRwczovL3d3dy5zbGlkZXNoYXJlLm5ldC9KYW5XZWluc2NoZW5rZXIvZWluZS1zdHVuZGUtd2FzLW1pdC1hcGktZmlyc3QpIGJ5IFtAamFud2VpbnNjaGVua2VyXShodHRwczovL3R3aXR0ZXIuY29tL2phbndlaW5zY2hlbmtlcikgYXQgW0phdmEgRm9ydW0gTm9yZF0oaHR0cHM6Ly9qYXZhZm9ydW1ub3JkLmRlLykKLSAyMDE5LTEwLTA5IC0gW29wZW5hcGktZ2VuZXJhdG9yIOOBp+eUn+aIkOOBl+OBnyBHbyDjgq/jg6njgqTjgqLjg7Pjg4jjgacgQmVhcmVyIOiqjeiovOOCkuOBmeOCi10oaHR0cHM6Ly9hdXRvcHAtdGVjaC5oYXRlbmFibG9nLmNvbS9lbnRyeS8yMDE5LzEwLzA5LzIyMjAzOSkgYnkgW0FraXJhIFRhbmltdXJhXShodHRwczovL2dpdGh1Yi5jb20vYXV0b3BwKQotIDIwMTktMTAtMTAgLSBbQXV0b21hdGljIEdlbmVyYXRpb24gb2YgUkVTVCBDbGllbnRzXShodHRwczovL3d3dy5tZWV0dXAuY29tL2ZyLUZSL0NyaXRlby1MYWJzLVRlY2gtVGFsa3MvZXZlbnRzLzI2NDc3NTc2OC8pIGJ5IFRob21hcyBQZXlyYXJkLCBTZW5pb3IgU29mdHdhcmUgRW5naW5lZXIgYXQgQ3JpdGVvIGluIFtGdWxsLVN0YWNrIFRlY2ggVGFsa3MgKE1lZXR1cCldKGh0dHBzOi8vd3d3Lm1lZXR1cC5jb20vZnItRlIvQ3JpdGVvLUxhYnMtVGVjaC1UYWxrcy9ldmVudHMvMjY0Nzc1NzY4LykKLSAyMDE5LTEwLTEyIC0gW09wZW5BcGnoh6rliqjnlJ/miJBjbGllbnRdKGh0dHBzOi8vYmxvZy5jc2RuLm5ldC93eGlkMjc5ODIyNi9hcnRpY2xlL2RldGFpbHMvMTAyNTI3NDY3KSBieSBb6YOR5rO95rSyXShodHRwczovL21lLmNzZG4ubmV0L3d4aWQyNzk4MjI2KQotIDIwMTktMTAtMTYgLSBbSG93IHRvIHNoaXAgQVBJcyBmYXN0ZXI/XShodHRwczovL21lZGl1bS5jb20vQGFjY291bnRzXzc2MjI0L2hvdy10by1zaGlwLWFwaXMtZmFzdGVyLWNhYmVmMmY4MTllNCkgYnkgW1NpbW9uIEd1aWxsaWFtcyBAIFBvbmlDb2RlXShodHRwczovL3Bvbmljb2RlLmRldikKLSAyMDE5LTEwLTIyIC0gW09wZW5BUEkgKyBTcHJpbmcgQm9vdChLb3RsaW4p44Gn44OV44Kh44Kk44Or44OA44Km44Oz44Ot44O844OJQVBJ44KS5L2c5oiQ44GZ44KLXShodHRwczovL3FpaXRhLmNvbS9ib3Jvbm5nby9pdGVtcy80Yjc4YjkyNTI2MjA5ZGFlYWVlOSkgYnkgW1l1a2kgRnVydWthd2FdKGh0dHBzOi8vdHdpdHRlci5jb20veXVraV9mdXJ1a2F3YTUpCi0gMjAxOS0xMC0yNCAtIFtNaWNyb3Byb2ZpbGUgT3BlbkFQSSAtIENvZGUgRmlyc3Qgb3IgRGVzaWduIEZpcnN0P10oaHR0cHM6Ly9naXRodWIuY29tL3BlLXN0L2FwaWRvY3MvYmxvYi9tYXN0ZXIvTWljcm9Qcm9maWxlLU9wZW5BUEktYWxsLXNsaWRlcy5wZGYpIGJ5IFtQZXRlciBbcMmbyoPJmV0gU3RlaW5lcl0oaHR0cHM6Ly90d2l0dGVyLmNvbS9wZXNjaGUpIGF0IFtlY2xpcHNlY29uIEV1cm9wZSAyMDE5XShodHRwczovL3d3dy5lY2xpcHNlY29uLm9yZy9ldXJvcGUyMDE5L3Nlc3Npb25zL21pY3JvcHJvZmlsZS1vcGVuYXBpLWNvZGUtZmlyc3Qtb3ItZGVzaWduLWZpcnN0KQotIDIwMTktMTEtMDYgLSBbR2VuZXJhdGluZyBBUEkgY2xpZW50cyBiYXNlZCBvbiBPcGVuQVBJIHYzIHNwZWNpZmljYXRpb25zXShodHRwczovLzk4ZWxlbWVudHMuY29tL2Jsb2cvZ2VuZXJhdGluZy1hcGktY2xpZW50cy1iYXNlZC1vbi1vcGVuYXBpLXYzLXNwZWNpZmljYXRpb25zKSBieSBbRG9taW5payBKYXN0cnrEmWJza2kgQCA5OGVsZW1lbnRzXShodHRwczovLzk4ZWxlbWVudHMuY29tKQotIDIwMTktMTEtMDYgLSBbT3BlbkFQSeOCkuWIqeeUqOOBl+OBpuiHquWJjeOBrkFQSeOCteODvOODkOODvChTaW5hdHJhKeOCkuenu+akjeOBl+OBn+aZguOBruODoeODol0oaHR0cHM6Ly9xaWl0YS5jb20vWWFzdWhpcm9BQkUvaXRlbXMvYzczOTIwZWFiMmQ5ZDZlOTdmZDkpIGJ5IFtZYXN1aGlybyBBQkVdKGh0dHBzOi8vdHdpdHRlci5jb20vWWFzdWhpcm9BQkUpCi0gMjAxOS0xMS0wNyAtIFtBUEkgRmlyc3QgZGV2ZWxvcG1lbnQgd2l0aCBPcGVuQVBJIC0gWW91IHNob3VsZCB5b3UgcHJhY3Rpc2UgaXQgIT9dKGh0dHBzOi8vd3d3LnlvdXR1YmUuY29tL3dhdGNoP3Y9RjlpRjNhMVo4WTgpIGJ5IFtOaWNrIFZhbiBIb29mXShodHRwczovL3d3dy5uaWNrdmFuaG9vZi5jb20vKSBhdCBbRGV2b3h4IEJlbGdpdW0gMjAxOV0oaHR0cHM6Ly9kZXZveHguYmUvKQotIDIwMTktMTEtMDggLSBbSkhpcHN0ZXIgYmV5b25kIENSVUQgLSBBUEktRmlyc3QgZm9yIEVudGVycHJpc2VzIGJ5IEVucmljbyBDb3N0YW56aV0oaHR0cHM6Ly93d3cueW91dHViZS5jb20vd2F0Y2g/dj1tMjhKRm92S1EyMCkgYnkgW0VucmljbyBDb3N0YW56aV0oaHR0cHM6Ly90d2l0dGVyLmNvbS9lbnJpY29jb3N0YW56aSkgYXQgW0pIaXBzdGVyIENvbmYgMjAxOSBpbiBQYXJpc10oaHR0cHM6Ly9qaGlwc3Rlci1jb25mLmdpdGh1Yi5pby8pCi0gMjAxOS0xMS0xMSAtIFtUeXBlU2NyaXB0IFJFU1QgQVBJ44Kv44Op44Kk44Ki44Oz44OIXShodHRwczovL3FpaXRhLmNvbS91bmh1cnJpZWQvaXRlbXMvN2I3NGY3ZDNjNDM1NDVkYWRkMmIpIGJ5IFtAdW5odXJyaWVkXShodHRwczovL3FpaXRhLmNvbS91bmh1cnJpZWQpCi0gMjAxOS0xMS0xMSAtIFtPbmUgU3BlYyB0byBSdWxlIHRoZW0gYWxsIC0gT3BlbkFQSSBpbiBBY3Rpb25dKGh0dHBzOi8vd3d3LnlvdXR1YmUuY29tL3dhdGNoP3Y9TU1heV9uaHQ4ZWMpIGJ5IFtBbmRyZWFzIExpdHRdKGh0dHBzOi8vZ2l0aHViLmNvbS9saXR0bGRyKSBhdCBbY29kZS50YWxrcyAyMDE5XShodHRwczovL3d3dy5jb2RldGFsa3MuY29tLykKLSAyMDE5LTExLTEzIC0gW09wZW5BUEkgMy4wIEVkaXRvciBBbmQgR2VuZXJhdG9yIFdpdGggQSBTcHJpbmcgQm9vdCBFeGFtcGxlXShodHRwczovL3NpbXBseS1ob3cuY29tL2Rlc2lnbi1hbmQtZ2VuZXJhdGUtYXBpLWNvZGUtZnJvbS1vcGVuYXBpKSBhdCBbU2ltcGx5IEhvd10oaHR0cHM6Ly9zaW1wbHktaG93LmNvbS8pCi0gMjAxOS0xMS0xNyAtIFtPcGVuQVBJIEdlbmVyYXRvciBZb3VUdWJlIHBsYXlsaXN0XShodHRwczovL3d3dy55b3V0dWJlLmNvbS9wbGF5bGlzdD9saXN0PVBMdEp5SFZNZHpmRjZmQmtPVVY1VkRWRXJQMjNDR2dISXkpIGF0IFtZb3VUdWJlXShodHRwczovL3d3dy55b3V0dWJlLmNvbSkKLSAyMDE5LTExLTIwIC0gW0ludHJvZHVjdGlvbiB0byBPcGVuQVBJXShodHRwczovL25vdGkuc3QvbG9ybmFqYW5lL0h2REg3VS9pbnRyb2R1Y3Rpb24tdG8tb3BlbmFwaSkgYnkgW0xvcm5hIE1pdGNoZWxsXShodHRwczovL3R3aXR0ZXIuY29tL2xvcm5hamFuZSkgYXQgW0dPVE8gQ29wZW5oYWdlbiAyMDE5XShodHRwczovL2dvdG9jcGguY29tLzIwMTkvKQotIDIwMTktMTEtMjAgLSBbSG93IHRvIEdlbmVyYXRlIEFuZ3VsYXIgY29kZSBmcm9tIE9wZW5BUEkgc3BlY2lmaWNhdGlvbnNdKGh0dHBzOi8vZG90bmV0dGhvdWdodHMubmV0L2hvdy10by1nZW5lcmF0ZS1hbmd1bGFyLWNvZGUtZnJvbS1vcGVuYXBpLXNwZWNpZmljYXRpb25zLykgYnkgQW51cmFqCi0gMjAxOS0xMS0yMyAtIFtTd2FnZ2VyIOOBp+OBr+OBquOBhCBPcGVuQVBJIFNwZWNpZmljYXRpb24gMy4wIOOBq+OCiOOCiyBBUEkg44K144O844OQ44O86ZaL55m6XShodHRwczovL3d3dy5zbGlkZXNoYXJlLm5ldC90ZWNoYmxvZ3lhaG9vL3N3YWdnZXItb3BlbmFwaS1zcGVjaWZpY2F0aW9uLTMwLWFwaSkgYnkgW1RldHN1eWEgTW9yaW1vdG9dKGh0dHBzOi8vZ2l0aHViLmNvbS90MnkpIGF0IFtKSlVHIENDQyAyMDE5IEZhbGxdKGh0dHBzOi8vY2NjMjAxOWZhbGwuamF2YS11c2Vycy5qcC8pCi0gMjAxOS0xMS0yNCAtIFtBY2NlbGVyYXRlIEZsdXR0ZXIgZGV2ZWxvcG1lbnQgd2l0aCBPcGVuQVBJIGFuZCBEYXJ0IGNvZGUgZ2VuZXJhdGlvbl0oaHR0cHM6Ly9tZWRpdW0uY29tL0BpcmluYXNvdXRod2VsbF8yMjAvYWNjZWxlcmF0ZS1mbHV0dGVyLWRldmVsb3BtZW50LXdpdGgtb3BlbmFwaS1hbmQtZGFydC1jb2RlLWdlbmVyYXRpb24tMWYxNmY4MzI5YTZhKSBieSBbSXJpbmEgU291dGh3ZWxsXShodHRwczovL21lZGl1bS5jb20vQGlyaW5hc291dGh3ZWxsXzIyMCkKLSAyMDE5LTExLTI1IC0gW29wZW5hcGktZ2VuZXJhdG9y44Gn5omL6Lu944Gr44K544K/44OW44K144O844OQ44Go44Kv44Op44Kk44Ki44Oz44OI44Gu55Sf5oiQXShodHRwczovL3FpaXRhLmNvbS9wb2Nob3BvY2hvMTMvaXRlbXMvOGRiNjYyZTE5MzRmYjJiNDA4YjgpIGJ5IFtAcG9jaG9wb2NobzEzXShodHRwczovL3R3aXR0ZXIuY29tL3BvY2hvcG9jaG8xMykKLSAyMDE5LTExLTI2IC0gW0NvcmRhQ29uIDIwMTkgSGlnaGxpZ2h0czogQnJhaWQgU2VydmVyIGFuZCBPcGVuQVBJIEdlbmVyYXRvciBmb3IgQ29yZGEgQ2xpZW50IEFQSeKAmXNdKGh0dHBzOi8vYmxvZy5iOWxhYi5jb20vY29yZGFjb24tMjAxOS1oaWdobGlnaHRzLWJyYWlkLXNlcnZlci1hbmQtb3BlbmFwaS1nZW5lcmF0b3ItZm9yLWNvcmRhLWZsb3dzLWFwaS1zLWQyNDE3OWNjYjI3YykgYnkgW0FkZWwgUnVzdHVtXShodHRwczovL2Jsb2cuYjlsYWIuY29tL0BhZGVscmVzdG9tKSBhdCBbQjlsYWJdKGh0dHBzOi8vYmxvZy5iOWxhYi5jb20vKQotIDIwMTktMTItMDMgLSBbQSBSb2FkIHRvIExlc3MgQ29kaW5nOiBBdXRvLUdlbmVyYXRlIEFQSUxpYnJhcnldKGh0dHBzOi8vd3d3LmNvcmRhLm5ldC9ibG9nL2Etcm9hZC10by1sZXNzLWNvZGluZy1hdXRvLWdlbmVyYXRlLWFwaWxpYnJhcnkvKSBhdCBbQ29yZGEgQmxvZ10oaHR0cHM6Ly93d3cuY29yZGEubmV0L2Jsb2cvKQotIDIwMTktMTItMDQgLSBbQW5ndWxhcu+8i05lc3RKU++8i09wZW5BUEnvvIhTd2FnZ2Vy77yJ44Gn44Oe44Kk44Kv44Ot44K144O844OT44K544KS6KaW6YeO44Gr5YWl44KM44Gf55Kw5aKD44KS6ICD44GI44KLXShodHRwczovL3FpaXRhLmNvbS90ZXJhY3k1NS9pdGVtcy8wMzI3YzdhMTcwZWM3NzI5NzBjNikgYnkgW+OBpuOCieOBl+ODvF0oaHR0cHM6Ly90d2l0dGVyLmNvbS90ZXJhY3k1NSkKLSAyMDE5LTEyLTA1IC0gW0NvZGUgZ2VuZXJhdGlvbiBvbiB0aGUgSmF2YSBWTV0oaHR0cHM6Ly9zcGVha2VyZGVjay5jb20vc3VsbGlzL2NvZGUtZ2VuZXJhdGlvbi1vbi10aGUtamF2YS12bS0yMDE5LTEyLTA1KSBieSBbU2VhbiBTdWxsaXZhbl0oaHR0cHM6Ly9zcGVha2VyZGVjay5jb20vc3VsbGlzKQotIDIwMTktMTItMTcgLSBbT3BlbkFQSSBHZW5lcmF0b3Ig44GnIE9BdXRoMiDjgqLjgq/jgrvjgrnjg4jjg7zjgq/jg7PnmbrooYzjga7jgrPjg7zjg4njgb7jgafnlJ/miJDjgZfjgabjgb/jgotdKGh0dHBzOi8vd3d3LnRlY2hzY29yZS5jb20vYmxvZy8yMDE5LzEyLzE3L29wZW5hcGktZ2VuZXJhdG9yLW9hdXRoMi1hY2Nlc3N0b2tlbi8pIGJ5IFtURUNIU0NPUkVdKGh0dHBzOi8vd3d3LnRlY2hzY29yZS5jb20vYmxvZy8pCi0gMjAxOS0xMi0yMyAtIFtVc2UgQWRhIGZvciBZb3VyIFdlYiBEZXZlbG9wbWVudF0oaHR0cHM6Ly93d3cuZWxlY3Ryb25pY2Rlc2lnbi5jb20vdGVjaG5vbG9naWVzL2VtYmVkZGVkLXJldm9sdXRpb24vYXJ0aWNsZS8yMTExOTE3Ny91c2UtYWRhLWZvci15b3VyLXdlYi1kZXZlbG9wbWVudCkgYnkgW1N0ZXBoYW5lIENhcnJlel0oaHR0cHM6Ly9naXRodWIuY29tL3N0Y2FycmV6KQotIDIwMTktMTItMjMgLSBbT3BlbkFQSeOBruOCueOCreODvOODnuOCkuWIhuWJsuODu+ani+mAoOWMluOBl+OBpuOBhOOBj+aWueazlV0oaHR0cHM6Ly9naWZ0LXRlY2guY28uanAvYXJ0aWNsZXMvc3RydWN0dXJlZC1vcGVuYXBpLXNjaGVtYSkgYnkgW+Wwj+mjr+WhmumBlOS5n10oaHR0cHM6Ly9naXRodWIuY29tL3QyaDUpIGF0IFtHaUZULCBJbmNdKGh0dHBzOi8vZ2lmdC10ZWNoLmNvLmpwLykKLSAyMDIwLTAxLTE3IC0gW09wZW5BUEkgZGVtbyBmb3IgUHVscCAzLjAgR0FdKGh0dHBzOi8vd3d3LnlvdXR1YmUuY29tL3dhdGNoP3Y9bUZCUC1NMFpQZncmdD0xNzhzKSBieSBbUHVscF0oaHR0cHM6Ly93d3cueW91dHViZS5jb20vY2hhbm5lbC9VQ0k0M0ZmczRWUER2N2F3WHZ2QkpmUlEpIGF0IFtZb3V0dWJlXShodHRwczovL3d3dy55b3V0dWJlLmNvbS8pCi0gMjAyMC0wMS0xOSAtIFtXaHkgZG9jdW1lbnQgYSBSRVNUIEFQSSBhcyBjb2RlP10oaHR0cHM6Ly9kZXYudG8vcm9sZnN0cmVlZmtlcmsvd2h5LWRvY3VtZW50LWEtcmVzdC1hcGktYXMtY29kZS01ZTdwKSBieSBbUm9sZiBTdHJlZWZrZXJrXShodHRwczovL2dpdGh1Yi5jb20vcnBzdHJlZWYpIGF0IFtERVYgQ29tbXVuaXR5XShodHRwczovL2Rldi50bykKLSAyMDIwLTAxLTI4IC0gW0dldCBZb3VyIFNlcnZlcmxlc3MgU3dhZ2dlciBCYWNrIHdpdGggT3BlbkFQSV0oaHR0cHM6Ly9kZXYudG8vbWF0dHR5bGVyL2dldC15b3VyLXNlcnZlcmxlc3Mtc3dhZ2dlci1iYWNrLXdpdGgtb3BlbmFwaS00OGdjKSBieSBbTWF0dCBUeWxlcl0oaHR0cHM6Ly9kZXYudG8vbWF0dHR5bGVyKQotIDIwMjAtMDEtMzAgLSBbT3BlbkFQSSBHZW5lcmF0b3Ljgbjjga7jgrPjg7Pjg4jjg6rjg5Pjg6Xjg7zjg4hdKGh0dHBzOi8vd3d3Lnl1dGFrYTBtLndvcmsvZW50cnkvMjAyMC8wMS8zMC8xNjM5MDUpIGJ5IFt5dXRha2EwbV0oaHR0cHM6Ly9naXRodWIuY29tL3l1dGFrYTBtKQotIDIwMjAtMDItMDEgLSBbVXNpbmcgT3BlbkFQSSB0byBNYXhpbWlzZSBZb3VyIFB1bHAgMyBFeHBlcmllbmNlXShodHRwczovL2Zvc2RlbS5vcmcvMjAyMC9zY2hlZHVsZS9ldmVudC9vcGVuYXBpLykgYnkgW0Rlbm5pcyBLbGliYW5dKGh0dHBzOi8vZ2l0aHViLmNvbS9ka2xpYmFuLykgYXQgW0ZPU0RFTV0oaHR0cHM6Ly9mb3NkZW0ub3JnLykKLSAyMDIwLTAyLTA3IC0gW1doeSB5b3Ugc2hvdWxkIHVzZSBPcGVuQVBJIGZvciB5b3VyIEFQSSBkZXNpZ25dKGh0dHBzOi8vd3d3LnlvdXR1YmUuY29tL3dhdGNoP3Y9emhiN3ZVQXBMVzgmdD05MjdzKSBieSBbTmljayBWYW4gSG9vZl0oaHR0cHM6Ly9hcGljb25mZXJlbmNlLm5ldC9zcGVha2VyL25pY2stdmFuLWhvb2YvKSBhdCBbQVBJIENvbmZlcmVuY2VdKGh0dHBzOi8vYXBpY29uZmVyZW5jZS5uZXQvKQotIDIwMjAtMDItMTcgLSBbUnVieW5ldGVzOiB1c2luZyBPcGVuQVBJIHRvIHZhbGlkYXRlIEt1YmVybmV0ZXMgY29uZmlnc10oaHR0cHM6Ly93d3cuYnJpZ2h0Ym94LmNvbS9ibG9nLzIwMjAvMDIvMTcvdXNpbmctb3BlbmFwaS10by12YWxpZGF0ZS1rdWJlcm5ldGVzLWNvbmZpZ3MvKSBieSBOZWlsIFdpbHNvbiBhdCBbQnJpZ2h0Ym94XShodHRwczovL3d3dy5icmlnaHRib3guY29tLykKLSAyMDIwLTAyLTIwIC0gW0J1aWxkaW5nIFNES3MgZm9yIHRoZSBmdXR1cmVdKGh0dHBzOi8vZGV2YmxvZy54ZXJvLmNvbS9idWlsZGluZy1zZGtzLWZvci10aGUtZnV0dXJlLWI3OWZmNzI2ZGZkNikgYnkgW1NpZCBNYWVzdHJlIChYZXJvKV0oaHR0cHM6Ly90d2l0dGVyLmNvbS9zaWRuZXlhbGxlbikKLSAyMDIwLTAyLTI3IC0gW051eHTliKnnlKjjg5fjg63jg4Djgq/jg4jjgadJRTEx44Go5Luy6Imv44GP44GZ44KL44Gf44KB44GuRTJFXShodHRwczovL3RlY2gubWVkcGVlci5jby5qcC9lbnRyeS9lMmUtaWUxMSkgYXQgW01lZHBlZXIuY28uanAgVGVjaCBCbG9nXShodHRwczovL3RlY2gubWVkcGVlci5jby5qcC8pCi0gMjAyMC0wMi0yOSAtIFtQcm92aWRpbmcgU3VwcG9ydCB0byBJb1QgRGV2aWNlcyBEZXBsb3llZCBpbiBEaXNjb25uZWN0ZWQgUnVyYWwgRW52aXJvbm1lbnQgKENvbmZlcmVuY2UgcGFwZXIpXShodHRwczovL2xpbmsuc3ByaW5nZXIuY29tL2NoYXB0ZXIvMTAuMTAwNy85NzgtMy0wMzAtNDE0OTQtOF8xNCkgYnkgU2VyZ2lvIExhc28sIERhbmllbCBGbG9yZXMtTWFydMOtbiwgSnVhbiBMdWlzIEhlcnJlcmFDYXJsb3MsIENhbmFsSnVhbiBNYW51ZWwsIE11cmlsbG9KYXZpZXIgQmVycm9jYWwKLSAyMDIwLTAzLTAyIC0gW0hvdyBUbyBHZW5lcmF0ZSBBbmd1bGFyICYgU3ByaW5nIENvZGUgRnJvbSBPcGVuQVBJIFNwZWNpZmljYXRpb25dKGh0dHBzOi8vd3d3Lm1va2thcHBzLmRlL2Jsb2cvaG93LXRvLWdlbmVyYXRlLWFuZ3VsYXItYW5kLXNwcmluZy1jb2RlLWZyb20tb3Blbi1hcGktc3BlY2lmaWNhdGlvbi8pIGJ5IFtNaWNoYWVsIEhvZmZtYW5uXShodHRwczovL3d3dy5tb2trYXBwcy5kZS8pCi0gMjAyMC0wMy0wMiAtIFtPcGVuQVBJIEdlbmVyYXRvciArIFR5cGVTY3JpcHQg44Gn5aeL44KB44KL6Ieq5YuV55Sf5oiQ44Gu5Z6L44Gr5a6I44KJ44KM44Gf6LGK44GL44Gq44Kv44Op44Kk44Ki44Oz44OI55Sf5rS7XShodHRwczovL2dpZnQtdGVjaC5jby5qcC9hcnRpY2xlcy9vcGVuYXBpLWdlbmVyYXRvci10eXBlc2NyaXB0KSBieSBb5LqU55m+6JS1IOebtOaouV0oaHR0cHM6Ly9naWZ0LXRlY2guY28uanAvbWVtYmVycy9uYW9raWlvcm9pKSBhdCBbR2lGVOagquW8j+S8muekvl0oaHR0cHM6Ly9naWZ0LXRlY2guY28uanAvKQotIDIwMjAtMDMtMTAgLSBbT3BlbkFQSSBHZW5lcmF0b3IgTWVldHVwICMxXShodHRwczovL3NwZWFrZXJkZWNrLmNvbS9ha2loaXRvX25ha2Fuby9vcGVuYXBpLWdlbmVyYXRvci1tZWV0dXAtbnVtYmVyLTEpIGJ5IFvkuK3ph47mmoHkurpdKGh0dHBzOi8vZ2l0aHViLmNvbS9hY2tpbnRvc2gpIGF0IFtPcGVuQVBJIEdlbmVyYXRvciBNZWV0dXAgIzFdKGh0dHBzOi8vb3BlbmFwaS1nZW5lcmF0b3ItbWVldHVwLmNvbm5wYXNzLmNvbS9ldmVudC8xNjgxODcvKQotIDIwMjAtMDMtMTUgLSBbTG9hZCBUZXN0aW5nIFlvdXIgQVBJIHdpdGggU3dhZ2dlci9PcGVuQVBJIGFuZCBrNl0oaHR0cHM6Ly9rNi5pby9ibG9nL2xvYWQtdGVzdGluZy15b3VyLWFwaS13aXRoLXN3YWdnZXItb3BlbmFwaS1hbmQtazYpCi0gMjAyMC0wNC0xMyAtIFvkv7rnmoTjgJBPQVPjgJHjgajjga7lkJHjgY3lkIjjgYTmlrkgKOeIhumAn+OBp09wZW5BUEnjgajlj4vpgZTjgavjgarjgo3jgYYpXShodHRwczovL3RlY2gtYmxvZy5vcHRpbS5jby5qcC9lbnRyeS8yMDIwLzA0LzEzLzEwMDAwMCkgaW4gW09QVGltIEJsb2ddKGh0dHBzOi8vdGVjaC1ibG9nLm9wdGltLmNvLmpwLykKLSAyMDIwLTA0LTIyIC0gW0ludHJvZHVjdGlvbiB0byBPcGVuQVBJIEdlbmVyYXRvcl0oaHR0cHM6Ly9ub3JkaWNhcGlzLmNvbS9pbnRyb2R1Y3Rpb24tdG8tb3BlbmFwaS1nZW5lcmF0b3IvKSBieSBbS3Jpc3RvcGhlciBTYW5kb3ZhbF0oaHR0cHM6Ly9ub3JkaWNhcGlzLmNvbS9hdXRob3Ivc2FuZG92YWxlZmZlY3QvKSBpbiBbTm9yZGljIEFQSXNdKGh0dHBzOi8vbm9yZGljYXBpcy5jb20vKQotIDIwMjAtMDQtMjcgLSBbSG93IHdlIHVzZSBPcGVuIEFQSSB2MyBzcGVjaWZpY2F0aW9uIHRvIGF1dG8tZ2VuZXJhdGUgQVBJIGRvY3VtZW50YXRpb24sIGNvZGUtc25pcHBldHMgYW5kIGNsaWVudHNdKGh0dHBzOi8vbWVkaXVtLmNvbS9wZGYtZ2VuZXJhdG9yLWFwaS9ob3ctd2UtdXNlLW9wZW4tYXBpLXYzLXNwZWNpZmljYXRpb24tdG8tYXV0by1nZW5lcmF0ZS1hcGktZG9jdW1lbnRhdGlvbi1jb2RlLXNuaXBwZXRzLWFuZC1jbGllbnRzLWQxMjdhM2NlYTc4NCkgYnkgW1RhbmVsIFTDpGhlcMO1bGRdKGh0dHBzOi8vbWVkaXVtLmNvbS9AdGFuZWwudGFoZXBvbGQpCi0gMjAyMC0wNS0wOSAtIFtPcGVuQVBJ44Gn44GK5omL6Lu944Gr44Oi44OD44KvQVBJ44K144O844OQ44O844KS5YuV44GL44GZXShodHRwczovL3FpaXRhLmNvbS9rYXNhX2xlL2l0ZW1zLzk3Y2E2YThkZDQ2MDU2OTVjMjVjKSBieSBbU2FjaGllIEthbWJhXShodHRwczovL3FpaXRhLmNvbS9rYXNhX2xlKQotIDIwMjAtMDUtMTggLSBbU3ByaW5nIEJvb3QgUkVTVCB3aXRoIE9wZW5BUEkgM10oaHR0cHM6Ly9kZXYudG8vYWxmb256amFuZnJpdGh6L3NwcmluZy1ib290LXJlc3Qtd2l0aC1vcGVuYXBpLTMtNTlqbSkgYnkgW0FsZm9ueiBKYW4gRnJpdGh6XShodHRwczovL2Rldi50by9hbGZvbnpqYW5mcml0aHopCi0gMjAyMC0wNS0xOSAtIFtEZWFkIFNpbXBsZSBBUElzIHdpdGggT3BlbiBBUEldKGh0dHBzOi8vd3d3LnlvdXR1YmUuY29tL3dhdGNoP3Y9c0lhWG1SNnhSQXcpIGJ5IFtDaHJpcyBUYW5rZXJzbGV5XShodHRwczovL2dpdGh1Yi5jb20vZHJhZ29ubWFudGFuaykgYXQgW05leG1vXShodHRwczovL2RldmVsb3Blci5uZXhtby5jb20vKQotIDIwMjAtMDUtMjIgLSBbVHlwZVNjcmlwdCBSRVNUIEFQSSBDbGllbnRdKGh0dHBzOi8vZGV2LnRvL3VuaHVycmllZC90eXBlc2NyaXB0LXJlc3QtYXBpLWNsaWVudC00aW4zKSBieSBbInVuaHVycmllZCJdKGh0dHBzOi8vZGV2LnRvL3VuaHVycmllZCkKLSAyMDIwLTA1LTI4IC0gW+OAkOS9v+eUqCBsb3RpZnkgKyBTd2FnZ2VyIOW7uue9ruWPr+WFseeUqOeahCBMSU5FIE5vdGlmeSBib3TjgJEgLSAjTmlKaWEgQCBDaGF0Ym90IERldmVsb3BlciBUYWl3YW4g56ysICMxOSDlsI/ogZpdKGh0dHBzOi8vd3d3LnlvdXR1YmUuY29tL3dhdGNoP3Y9YWdZVno2ZHpoMUkpIGJ5IFtDaGF0Ym90IERldmVsb3BlciBUYWl3YW5dKGh0dHBzOi8vd3d3LnlvdXR1YmUuY29tL2NoYW5uZWwvVUN4ZVlVeVpObkhtcFgyM1lORi1ld3Z3KQotIDIwMjAtMDUtMjggLSBbQnVpbGRpbmcgQVBJcyB3aXRoIExhcmF2ZWwgdXNpbmcgT3BlbkFQSV0oaHR0cHM6Ly93d3cueW91dHViZS5jb20vd2F0Y2g/dj14ZXhMdlFxQWhpQSkgYnkgW0NocmlzIFRhbmtlcnNsZXldKGh0dHBzOi8vZ2l0aHViLmNvbS9kcmFnb25tYW50YW5rKSBhdCBbTGFyYWNvbiBFVV0oaHR0cHM6Ly9sYXJhY29uLmV1LykKLSAyMDIwLTA2LTEyIC0gW0ludGVyb3BlcmFiaWxpdHkgYnkgY29uc3RydWN0aW9uOiBjb2RlIGdlbmVyYXRpb24gZm9yIEFycm93aGVhZCBDbGllbnRzXShodHRwczovL2llZWV4cGxvcmUuaWVlZS5vcmcvZG9jdW1lbnQvOTI3NDc0NikgYnkgTWljaGVsZSBBbGJhbm8sIEJyaWFuIE5pZWxzZW4gYXQgWzIwMjAgSUVFRSBDb25mZXJlbmNlIG9uIEluZHVzdHJpYWwgQ3liZXJwaHlzaWNhbCBTeXN0ZW1zIChJQ1BTKV0oaHR0cHM6Ly9pZWVleHBsb3JlLmllZWUub3JnL3hwbC9jb25ob21lLzkyNzQ1NDQvcHJvY2VlZGluZykKLSAyMDIwLTA2LTIzIC0gW+aWsOimj+OCteODvOODkOODvOOCouODl+ODquOCseODvOOCt+ODp+ODs+OBq1R5cGVTY3JpcHTjgpLmjqHnlKjjgZfjgabjgb/jgZ9dKGh0dHBzOi8vd3d3LmNhbS1pbmMuY28uanAvbmV3cy8yMDIwMDYyMykgYXQgW0NBTSBUZWNoIEJsb2ddKGh0dHBzOi8vd3d3LmNhbS1pbmMuY28uanAvbmV3cy90ZWNoLWJsb2cvKQotIDIwMjAtMDYtMjkgLSBbQXJ0aWZhY3QgQWJzdHJhY3Q6IERlcGxveW1lbnQgb2YgQVBJcyBvbiBBbmRyb2lkIE1vYmlsZSBEZXZpY2VzIGFuZCBNaWNyb2NvbnRyb2xsZXJzXShodHRwczovL2llZWV4cGxvcmUuaWVlZS5vcmcvZG9jdW1lbnQvOTEyNzM1MykgYnkgW1NlcmdpbyBMYXNvIDsgTWFyaW5vIExpbmFqZSA7IEpvc2UgR2FyY2lhLUFsb25zbyA7IEp1YW4gTS4gTXVyaWxsbyA7IEphdmllciBCZXJyb2NhbF0oaHR0cHM6Ly9pZWVleHBsb3JlLmllZWUub3JnL2RvY3VtZW50LzkxMjczNTMvYXV0aG9ycyNhdXRob3JzKSBhdCBbMjAyMCBJRUVFIEludGVybmF0aW9uYWwgQ29uZmVyZW5jZSBvbiBQZXJ2YXNpdmUgQ29tcHV0aW5nIGFuZCBDb21tdW5pY2F0aW9ucyAoUGVyQ29tKV0oaHR0cHM6Ly9pZWVleHBsb3JlLmllZWUub3JnL3hwbC9jb25ob21lLzkxMjU0NDkvcHJvY2VlZGluZykKLSAyMDIwLTA3LTA3IC0gWzUgQmVzdCBBUEkgRG9jdW1lbnRhdGlvbiBUb29sc10oaHR0cHM6Ly9ibG9nLmRyZWFtZmFjdG9yeS5jb20vNS1iZXN0LWFwaS1kb2N1bWVudGF0aW9uLXRvb2xzLykgYnkgU3VzYW5uYSBCb3VzZSBhdCBbRHJlYW1GYWN0b3J5IEJsb2ddKGh0dHBzOi8vYmxvZy5kcmVhbWZhY3RvcnkuY29tLykKLSAyMDIwLTA3LTEyIC0gW09wZW4gQVBJIDMuMOOBruWumue+qeOBi+OCiWdvbGFuZ+OBruOCteODvOODkOOCs+ODvOODieOBruOCueOCseODq+ODiOODs+OCkuS9nOaIkOOBmeOCi10oaHR0cHM6Ly9xaWl0YS5jb20vcHJvZmVzc29yL2l0ZW1zLzRjYmQwNGVjMDg0ZDEzMDU3YmMyKSBieSBbQHByb2Zlc3NvciAoUWlpdGEgQmxvZyldKGh0dHBzOi8vcWlpdGEuY29tL3Byb2Zlc3NvcikKLSAyMDIwLTA3LTIwIC0gW0RhdGFkb2cgQVBJIGNsaWVudCBsaWJyYXJpZXMgbm93IGF2YWlsYWJsZSBmb3IgSmF2YSBhbmQgR29dKGh0dHBzOi8vd3d3LmRhdGFkb2docS5jb20vYmxvZy9qYXZhLWdvLWxpYnJhcmllcy8pIGJ5IEpvcmRhbiBPYmV5IGF0IFtEYXRhZG9nIEJsb2ddKGh0dHBzOi8vd3d3LmRhdGFkb2docS5jb20vYmxvZykKLSAyMDIwLTA3LTIzIC0gW0dlbmVyYXRlIENsaWVudCBTREsgZm9yIC5ORVQgQ29yZSB1c2luZyBPcGVuIEFwaV0oaHR0cHM6Ly9kZXYudG8vbm8wbGF3MS9nZW5lcmF0ZS1jbGllbnQtc2RrLWZvci1uZXQtY29yZS11c2luZy1vcGVuLWFwaS0yZGdoKSBieSBbTnVubyBSZWlzXShodHRwczovL2Rldi50by9ubzBsYXcxKQotIDIwMjAtMDctMjYgLSBbRGFydOOBrmh0dHBfaW50ZXJjZXB0b3Ljg6njgqTjg5bjg6njg6rjgpLkvb/jgYbjgajphY3liJfjga7jgq/jgqjjg6rjg5Hjg6njg6Hjg7zjgr/jgYzmtojjgYjjgabjgZfjgb7jgYbku7bjga7lv5zmgKXlh6bnva5dKGh0dHBzOi8vcWlpdGEuY29tL2d5YW1vdG8vaXRlbXMvZWVlZmY4MWI2NzcwNDg3MzE5ZWQpIGJ5IFtAZ3lhbW90b10oaHR0cHM6Ly9xaWl0YS5jb20vZ3lhbW90bykKLSAyMDIwLTA4LTAxIC0gW0dlbmVyYXRlIEFuZ3VsYXIgUmVhY3RpdmVGb3JtcyBmcm9tIFN3YWdnZXIvT3BlbkFQSV0oaHR0cHM6Ly9kZXYudG8vbWFydGlubWN3aG9ydGVyL2dlbmVyYXRlLWFuZ3VsYXItcmVhY3RpdmVmb3Jtcy1mcm9tLXN3YWdnZXItb3BlbmFwaS0zNWg5KSBieSBbTWFydGluIE1jV2hvcnRlcl0oaHR0cHM6Ly9kZXYudG8vbWFydGlubWN3aG9ydGVyKQotIDIwMjAtMDgtMDMgLSBbQ3JpYW5kbyBCaWJsaW90ZWNhcyBwYXJhIEFQSXMgUkVTVGZ1bCBjb20gT3BlbkFQSSwgU3dhZ2dlciBFZGl0b3IgZSBPcGVuQVBJIEdlbmVyYXRvcl0oaHR0cHM6Ly9tZWRpdW0uY29tL0BldmVyaXNCcmFzaWwvY3JpYW5kby1iaWJsaW90ZWNhcy1wYXJhLWFwaXMtcmVzdGZ1bC1jb20tb3BlbmFwaS1zd2FnZ2VyLWVkaXRvci1lLW9wZW5hcGktZ2VuZXJhdG9yLTc1MzQ5YTY0MjBmZCkgYnkgW2V2ZXJpcyBCcmFzaWwgKGFuIE5UVCBEQVRBIENvbXBhbnkpXShodHRwczovL21lZGl1bS5jb20vQGV2ZXJpc0JyYXNpbCkKLSAyMDIwLTA4LTE5IC0gW+ODnuOCpOOCr+ODreOCteODvOODk+OCueOCkumAo+aQuuOBl+OBpuOBv+OCiOOBhl0oaHR0cHM6Ly90aGlua2l0LmNvLmpwL2FydGljbGUvMTc3MDQpIGJ5IFvlsqHkupUg6KOV55+iKOOBiuOBi+OBhCDjgobjgYbjgoQpXShodHRwczovL3RoaW5raXQuY28uanAvYXV0aG9yLzE3NTg4KSwgW+aziSDli50o44GE44Ga44G/IOOBvuOBleOCiyldKGh0dHBzOi8vdGhpbmtpdC5jby5qcC9hdXRob3IvMTc3MDUpIGF0IFtUaGluayBJVO+8iOOCt+ODs+OCr+OCpOODg+ODiO+8iV0oaHR0cHM6Ly90aGlua2l0LmNvLmpwLykKLSAyMDIwLTA4LTI1IC0gW09wZW5BUEkgR2VuZXJhdG9yIOOBqCBUeXBlU2NyaXB0IOOBp+Wei+WuieWFqOOBq+ODleODreODs+ODiOOCqOODs+ODiemWi+eZuuOCkuOBl+OBpuOBhOOCi+ipsV0oaHR0cHM6Ly90ZWNoLnNtYXJ0aHIuanAvZW50cnkvMjAyMC8wOC8yNS8xMzU2MzEpIGF0IFtTbWFydEhSIFRlY2ggQmxvZ10oaHR0cHM6Ly90ZWNoLnNtYXJ0aHIuanAvKQotIDIwMjAtMDktMTAgLSBbSW50cm9kdWN0aW9uIHRvIE9wZW5BUEkgd2l0aCBJbnN0YW5hXShodHRwczovL3d3dy5pbnN0YW5hLmNvbS9ibG9nL2ludHJvZHVjdGlvbi10by1vcGVuYXBpLXdpdGgtaW5zdGFuYS8pIGJ5IFtDZWRyaWMgWmllbF0oaHR0cHM6Ly93d3cuaW5zdGFuYS5jb20vYmxvZy9hdXRob3IvY2VkcmljemllbC8pIGF0IFtJbnN0YW5hIEJsb2ddKGh0dHBzOi8vd3d3Lmluc3RhbmEuY29tL2Jsb2cvKQotIDIwMjAtMDktMTcgLSBbR2VuZXJhdGUgUG93ZXJTaGVsbFNESyB1c2luZyBvcGVuYXBpLWdlbmVyYXRvcl0oaHR0cHM6Ly9tZWRpdW0uY29tL0BnaHVmei5sZWFybi9nZW5lcmF0ZS1wb3dlcnNoZWxsc2RrLXVzaW5nLW9wZW5hcGktZ2VuZXJhdG9yLTMzYjcwMDg5MWUzMykgYnkgW0dodWZyYW4gWmFoaWRpXShodHRwczovL21lZGl1bS5jb20vQGdodWZ6LmxlYXJuKQotIDIwMjAtMDktMjQgLSBbSG93IHRvIGF1dG9tYXRlIEFQSSBjb2RlIGdlbmVyYXRpb24gKE9wZW5BUEkvU3dhZ2dlcikgYW5kIGJvb3N0IHByb2R1Y3Rpdml0eSAtIFR1dG9yaWFsIHdpdGggUmVhY3QgTmF0aXZlIGZlYXR1cmluZyBUeXBlU2NyaXB0XShodHRwczovL21lZGl1bS5jb20vQHNjZWxlc2tpL2hvdy10by1hdXRvbWF0ZS1hcGktY29kZS1nZW5lcmF0aW9uLW9wZW5hcGktc3dhZ2dlci1hbmQtYm9vc3QtcHJvZHVjdGl2aXR5LTExNzZhMDA1NmQ4YSkgYnkgW1NhbmppbiBDZWxlc2tpXShodHRwczovL21lZGl1bS5jb20vQHNjZWxlc2tpKQotIDIwMjAtMDktMjUgLSBbR2VuZXJhdGUgT3BlbkFQSSBBbmd1bGFyIENsaWVudF0oaHR0cHM6Ly9tZWRpdW0uY29tL0BwZ3Vzby9nZW5lcmF0ZS1vcGVuYXBpLWFuZ3VsYXItY2xpZW50LThjOTI4OGU4YmJkNCkgYnkgW1BhdHJpY10oaHR0cHM6Ly9tZWRpdW0uY29tL0BwZ3VzbykKLSAyMDIwLTEwLTI0IC0gW1dvcmtpbmcgd2l0aCBNaWNyb3NvZnQgSWRlbnRpdHkgLSBSZWFjdCBOYXRpdmUgQ2xpZW50XShodHRwczovL3d3dy5qb3NlcGhndWFkYWduby5uZXQvMjAyMC8xMC8yNC93b3JraW5nLXdpdGgtbWljcm9zb2Z0LWlkZW50aXR5LXJlYWN0LW5hdGl2ZS1jbGllbnQpIGJ5IFtKb3NlcGggR3VhZGFnbm9dKGh0dHBzOi8vd3d3Lmpvc2VwaGd1YWRhZ25vLm5ldC8pCi0gMjAyMC0xMC0zMSAtIFtbQjJdIE9wZW5BUEkgU3BlY2lmaWNhdGlvbuycvOuhnCDtg4DsnoUt7IS47J207ZSE7ZWY6rKMIEFQSSDqsJzrsJztlZjquLA6IO2drOunne2OuCBWUyDsoIjrp53tjrhdKGh0dHBzOi8vd3d3LnlvdXR1YmUuY29tL3dhdGNoP3Y9SjRKSExFU0FpRmspIGJ5IOy1nO2DnOqxtCBhdCBbRkVDb25mIDIwMjBdKGh0dHBzOi8vMjAyMC5mZWNvbmYua3IvKQotIDIwMjAtMTEtMDUgLSBbQXV0b21hdGVkIFJFU1QtQXBpIENvZGUgR2VuZXJhdGlvbjogV2llIElULVN5c3RlbWUgbWl0ZWluYW5kZXIgc3ByZWNoZW5dKGh0dHBzOi8vd3d3Lm1hc3NpdmVhcnQuY29tL2Jsb2cvYXV0b21hdGVkLXJlc3QtYXBpLWNvZGUtZ2VuZXJhdGlvbi13aWUtaXQtc3lzdGVtZS1taXRlaW5hbmRlci1zcHJlY2hlbikgYnkgU3RlZmFuIFJvdHRlbnN0ZWluZXIgYXQgW01BU1NJVkUgQVJUIEJsb2ddKGh0dHBzOi8vd3d3Lm1hc3NpdmVhcnQuY29tL2Jsb2cpCi0gMjAyMC0xMi0wMSAtIFtPcGVuQVBJIEdlbmVyYXRvcuOBp0dv44GuQVBJ44K144O844OQ44O8L+OCr+ODqeOCpOOCouODs+ODiOOCs+ODvOODieOCkuiHquWLleeUn+aIkOOBmeOCi10oaHR0cHM6Ly9xaWl0YS5jb20vc2FraS1lbmdpbmVlcmluZy9pdGVtcy9iMjBkOGI2MDc0YzRkYTk2NjRhNSkgYnkgW0BzYWtpLWVuZ2luZWVyaW5nXShodHRwczovL3FpaXRhLmNvbS9zYWtpLWVuZ2luZWVyaW5nKQotIDIwMjAtMTItMDQgLSBbU2NhbGluZyB0aGUgVGVzdCBDb3ZlcmFnZSBvZiBPcGVuQVBJIEdlbmVyYXRvciBmb3IgMzArIFByb2dyYW1taW5nIExhbmd1YWdlc10oaHR0cHM6Ly93d3cueW91dHViZS5jb20vd2F0Y2g/dj03TGtlOWRIUnFUMCkgYnkgW1dpbGxpYW0gQ2hlbmddKGh0dHBzOi8vZ2l0aHViLmNvbS93aW5nMzI4KSBhdCBbT3BlbiBTb3VyY2UgU3VtbWl0IEphcGFuICsgQXV0b21vdGl2ZSBMaW51eCBTdW1taXQgMjAyMF0oaHR0cHM6Ly9ldmVudHMubGludXhmb3VuZGF0aW9uLm9yZy9hcmNoaXZlLzIwMjAvb3Blbi1zb3VyY2Utc3VtbWl0LWphcGFuLykgKFtTbGlkZXNdKGh0dHBzOi8vc3BlYWtlcmRlY2suY29tL3dpbmczMjgvc2NhbGluZy10aGUtdGVzdC1jb3ZlcmFnZS1vZi1vcGVuYXBpLWdlbmVyYXRvci1mb3ItMzAtcGx1cy1wcm9ncmFtbWluZy1sYW5ndWFnZXMpKQotIDIwMjAtMTItMDkgLSBb44OX44Ot44K444Kn44Kv44OI44GrT3BlbkFQSSBHZW5lcmF0b3Ljgafoh6rli5XnlJ/miJDjgZXjgozjgZ/lnovku5jjgY1BUEkgQ2xpZW5044KS5bCO5YWl44GX44Gf6KmxXShodHRwczovL3FpaXRhLmNvbS95b3NoaWZ1amlUL2l0ZW1zLzkwNWMxODcwMGVkZTIzZjQwODQwKSBieSBbQHlvc2hpZnVqaVRdKGh0dHBzOi8vZ2l0aHViLmNvbS95b3NoaWZ1amlUKQotIDIwMjAtMTItMTUgLSBbTmV4dC5qcyArIE5lc3RKUyArIEdyYXBoUUzjgaflpInljJbjgavov73lvpPjgZnjgovjg5Xjg63jg7Pjg4jjgqjjg7Pjg4njgbgg44CcIOOCt+ODp+ODg+ODlOODs+OCsOOCr+ODvOODneODs+OBruS6i+S+i+e0ueS7i10oaHR0cHM6Ly90ZWNoYmxvZy55YWhvby5jby5qcC9lbnRyeS8yMDIwMTIxNTMwMDUyOTUyLykgYnkgW+Wwj+WAiSDpmbhdKGh0dHBzOi8vZ2l0aHViLmNvbS9vZ3VndTkpIGF0IFtZYWhvbyEgSkFQQU4gVGVjaCBCbG9nXShodHRwczovL3RlY2hibG9nLnlhaG9vLmNvLmpwLykKLSAyMDIxLTAxLTA4IC0gW0hlbGxvLCBOZXcgQVBJIOKAkyBQYXJ0IDFdKGh0dHBzOi8vd3d3Lm5naW54LmNvbS9ibG9nL2hlbGxvLW5ldy1hcGktcGFydC0xLykgYnkgW0plcmVteSBTY2h1bG1hbl0oaHR0cHM6Ly93d3cubmdpbnguY29tL3Blb3BsZS9qZXJlbXktc2NodWxtYW4vKSBhdCBbTWFqb3IgTGVhZ3VlIEJhc2ViYWxsXShodHRwczovL3d3dy5tbGIuY29tKQotIDIwMjEtMDEtMTggLSBb44CM44Ki44OX44Oq6ZaL55m644GC44KL44GC44KL44CN44KS55aR44GG44GT44Go44GL44KJ5aeL44G+44Gj44Gf44CBQVBJIENsaWVudOOCs+ODvOODieOBruiHquWLleeUn+aIkOOAkOODh+ODluOCueODiDIwMjDjgJFdKGh0dHBzOi8vY29kZXppbmUuanAvYXJ0aWNsZS9kZXRhaWwvMTM0MDY/cD0yKSBieSBbQ29kZVppbmXnt6jpm4bpg6hdKGh0dHBzOi8vY29kZXppbmUuanAvYXV0aG9yLzEpCi0gMjAyMS0wMi0wNSAtIFtSRVNULUFQSS1Sb3VuZHRyaXAgd2l0aCBTcHJpbmdEb2MgYW5kIE9wZW5BUEkgR2VuZXJhdG9yXShodHRwczovL2Jsb2cudmlhZGVlLmRlL2VuL3Jlc3QtYXBpLXJvdW5kdHJpcCkgYnkgW0JlbmphbWluIEtsYXR0XShodHRwczovL3R3aXR0ZXIuY29tL2JlbmtsYXR0KSBhdCBbdmlhZGVlXShodHRwczovL3d3dy52aWFkZWUuZGUvZW4vKQotIDIwMjEtMDItMTcgLSBbUkVTVC1BUEktUm91bmR0cmlwIHdpdGggU3ByaW5nRG9jIGFuZCBPcGVuQVBJIEdlbmVyYXRvcl0oaHR0cHM6Ly9tZWRpdW0uY29tL25lcmQtZm9yLXRlY2gvcmVzdC1hcGktcm91bmR0cmlwLXdpdGgtc3ByaW5nZG9jLWFuZC1vcGVuYXBpLWdlbmVyYXRvci0zMGJkMjdjY2Y2OTgpIGJ5IFtjbG91ZCBAdmlhZGVlXShodHRwczovL2Nsb3VkLXZpYWRlZS5tZWRpdW0uY29tLykKLSAyMDIxLTAzLTA4IC0gW09wZW5BUEkgR2VuZXJhdG9yIOW3peWFt+eahOi6uuWdkeWwneivlV0oaHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3UwMTMwMTk3MDEvYXJ0aWNsZS9kZXRhaWxzLzExNDUzMTk3NSkgYnkgW+eLrOWutumbqOWkqV0oaHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3UwMTMwMTk3MDEpIGF0IFtDU0RO5a6Y5pa55Y2a5a6iXShodHRwczovL2Jsb2cuY3Nkbi5uZXQvKQotIDIwMjEtMDMtMTYgLSBb5aaC5L2V5Z+65LqOIFN3YWdnZXIg5L2/55SoIE9wZW5BUEkgR2VuZXJhdG9yIOeUn+aIkCBKTWV0ZXIg6ISa5pys77yfXShodHRwczovL2Nsb3VkLnRlbmNlbnQuY29tL2RldmVsb3Blci9hcnRpY2xlLzE4MDI3MDQpIGJ5IFvpq5jmpbxaZWVdKGh0dHBzOi8vY2xvdWQudGVuY2VudC5jb20vZGV2ZWxvcGVyL3VzZXIvNTgzNjI1NSkgYXQgW+iFvuiur+S6keS4k+agj10oaHR0cHM6Ly9jbG91ZC50ZW5jZW50LmNvbS9kZXZlbG9wZXIvY29sdW1uKQotIDIwMjEtMDMtMjQgLSBbb3BlbmFwaS1nZW5lcmF0b3ItY2xpIOOBq+OCiOOCiyBUeXBlU2NyaXB0IOWei+Wumue+qV0oaHR0cHM6Ly96ZW5uLmRldi90YWtlcGVwZS9hcnRpY2xlcy9vcGVuYXBpLWdlbmVyYXRvci1jbGktdHMpIGJ5IFtUYWtlZnVtaSBZb3NoaWldKGh0dHBzOi8vemVubi5kZXYvdGFrZXBlcGUpCi0gMjAyMS0wMy0yOCAtIFtUcnlpbmcgb3V0IE5lc3RKUyBwYXJ0IDQ6IEdlbmVyYXRlIFR5cGVzY3JpcHQgY2xpZW50cyBmcm9tIE9wZW5BUEkgZG9jdW1lbnRzXShodHRwczovL2Rldi50by9hcm5hdWRjb3J0aXNzZS90cnlpbmctb3V0LW5lc3Rqcy1wYXJ0LTQtZ2VuZXJhdGUtdHlwZXNjcmlwdC1jbGllbnRzLWZyb20tb3BlbmFwaS1kb2N1bWVudHMtMjhtaykgYnkgW0FybmF1ZCBDb3J0aXNzZV0oaHR0cHM6Ly9kZXYudG8vYXJuYXVkY29ydGlzc2UpCi0gMjAyMS0wMy0zMSAtIFtPcGVuIEFQSSBTZXJ2ZXIgSW1wbGVtZW50YXRpb24gVXNpbmcgT3BlbkFQSSBHZW5lcmF0b3JdKGh0dHBzOi8vd3d3LmJhZWxkdW5nLmNvbS9qYXZhLW9wZW5hcGktZ2VuZXJhdG9yLXNlcnZlcikgYXQgW0JhZWxkdW5nXShodHRwczovL3d3dy5iYWVsZHVuZy5jb20vKQotIDIwMjEtMDMtMzEgLSBb5L2/55SoT3BlbkFQSSBHZW5lcmF0b3Llr6bnj75PcGVuIEFQSSBTZXJ2ZXJdKGh0dHBzOi8vd3d3LjFqdS5vcmcvYXJ0aWNsZS9qYXZhLW9wZW5hcGktZ2VuZXJhdG9yLXNlcnZlcikgYXQgW+WEhOiBmue2sl0oaHR0cHM6Ly93d3cuMWp1Lm9yZy8pCi0gMjAyMS0wNC0xOSAtIFtJbnRyb2R1Y2luZyBUd2lsaW/igJlzIE9wZW5BUEkgU3BlY2lmaWNhdGlvbiBCZXRhXShodHRwczovL3d3dy50d2lsaW8uY29tL2Jsb2cvaW50cm9kdWNpbmctdHdpbGlvLW9wZW4tYXBpLXNwZWNpZmljYXRpb24tYmV0YSkgYnkgW0dBUkVUSCBQQVVMIEpPTkVTXShodHRwczovL3d3dy50d2lsaW8uY29tL2Jsb2cvYXV0aG9yL2dwaikgYXQgW1R3aWxpbyBCbG9nXShodHRwczovL3d3dy50d2lsaW8uY29tL2Jsb2cpCi0gMjAyMS0wNC0yMiAtIFtMZXZlcmFnaW5nIE9wZW5BcGkgc3RyZW5ndGhzIGluIGEgTWljcm8tU2VydmljZSBlbnZpcm9ubWVudF0oaHR0cHM6Ly9tZWRpdW0uY29tL3VuaWJ1ZGR5LXRlY2hub2xvZ3ktYmxvZy9sZXZlcmFnaW5nLW9wZW5hcGktc3RyZW5ndGhzLWluLWEtbWljcm8tc2VydmljZS1lbnZpcm9ubWVudC0zZDdmOWU3YzI2ZmYpIGJ5IE5pY29sYXMgSmVsbGFiIGF0IFtVbmlidWRkeSBUZWNobm9sb2d5IEJsb2ddKGh0dHBzOi8vbWVkaXVtLmNvbS91bmlidWRkeS10ZWNobm9sb2d5LWJsb2cpCi0gMjAyMS0wNC0yNyAtIFtGcm9tIHplcm8gdG8gcHVibGlzaGluZyBQb3dlclNoZWxsIEFQSSBjbGllbnRzIGluIFBvd2VyU2hlbGwgR2FsbGVyeSB3aXRoaW4gbWludXRlc10oaHR0cHM6Ly9zcGVha2VyZGVjay5jb20vd2luZzMyOC9mcm9tLXplcm8tdG8tcHVibGlzaGluZy1wb3dlcnNoZWxsLWFwaS1jbGllbnRzLWluLXBvd2Vyc2hlbGwtZ2FsbGVyeS13aXRoaW4tbWludXRlcykgYnkgW1dpbGxpYW0gQ2hlbmddKGh0dHBzOi8vZ2l0aHViLmNvbS93aW5nMzI4KSBhdCBbUG93ZXJTaGVsbCArIERldk9wcyBHbG9iYWwgU3VtbWl0IDIwMjFdKGh0dHBzOi8vZXZlbnRzLmRldm9wc2NvbGxlY3RpdmUub3JnL2V2ZW50L3Bvd2Vyc2hlbGwtZGV2b3BzLWdsb2JhbC1zdW1taXQtMjAyMS8pCi0gMjAyMS0wNS0zMSAtIFtGbHV0dGVy44GnT3BlbiBBcGkgR2VuZXJhdG9yKFN3YWdnZXIp44KS5L2/44GGXShodHRwczovL2Fha2lyYS5hcHAvYmxvZy8yMDIxLzA1L2ZsdXR0ZXItb3Blbi1hcGkvKSBieSBbQUFraXJhXShodHRwczovL3R3aXR0ZXIuY29tL19hX2FraXJhKQotIDIwMjEtMDYtMjIgLSBbUmVzdCBBUEkgRG9jdW1lbnRhdGlvbiBhbmQgQ2xpZW50IEdlbmVyYXRpb24gV2l0aCBPcGVuQVBJXShodHRwczovL2R6b25lLmNvbS9hcnRpY2xlcy9yZXN0LWFwaS1kb2N1bWVudGF0aW9uLWFuZC1jbGllbnQtZ2VuZXJhdGlvbi13aXRoKSBieSBbUHJhc2FudGggR3VsbGFwYWxsaV0oaHR0cHM6Ly9kem9uZS5jb20vdXNlcnMvMTAxMTc5Ny9wcmFzYW50aG5hdGguZ0BnbWFpbC5jb20uaHRtbCkKLSAyMDIxLTA3LTE2IC0gW+mKgOihjOS6i+alreOBruOCteODvOODkOODvOOCteOCpOODiemWi+eZuuOBq+OBpOOBhOOBpiAvIExJTkUg5Lqs6YO96ZaL55m65a6kIOOCqOODs+OCuOODi+OCouaOoeeUqOiqrOaYjuS8ml0oaHR0cHM6Ly93d3cueW91dHViZS5jb20vd2F0Y2g/dj1ZcnJLUUh4TFBwUSkgYnkg6YeO55Sw6Kqg5Lq6LCBSb2JlcnQgTWl0Y2hlbGwKLSAyMDIxLTA3LTE5IC0gW09wZW5BUEkgY29kZSBnZW5lcmF0aW9uIHdpdGgga290bGluXShodHRwczovL3N5bGhhcmUuZ2l0aHViLmlvLzIwMjEvMDcvMTkvT3BlbmFwaS1zd2FnZ2VyLWNvZGVnZW4td2l0aC1rb3RsaW4uaHRtbCkgYnkgW3N5bGhhcmVdKGh0dHBzOi8vZ2l0aHViLmNvbS9zeWxoYXJlKQotIDIwMjEtMDctMjkgLSBbSG93IFRvIFJld3JpdGUgYSBIdWdlIENvZGViYXNlXShodHRwczovL2R6b25lLmNvbS9hcnRpY2xlcy9ob3ctdG8tcmV3cml0ZS1hLWh1Z2UtY29kZS1iYXNlKSBieSBbQ3VydGlzIFBvZV0oaHR0cHM6Ly9kem9uZS5jb20vdXNlcnMvNDU2NTQ0Ni9wdWJsaXVzb3ZpZGl1cy5odG1sKQotIDIwMjEtMDgtMjEgLSBbR2VuZXJhdGluZyBDbGllbnQgQVBJcyB1c2luZyBTd2FnZ2VyIFBhcnQgMV0oaHR0cHM6Ly9tZWRpdW0uY29tL0BmbG93c3F1YWQvZ2VuZXJhdGluZy1jbGllbnQtYXBpcy11c2luZy1zd2FnZ2VyLXBhcnQtMS0yZDQ2ZjEzZjVlOTIpIGJ5IFtGbG93U3F1YWQuaW9dKGh0dHBzOi8vbWVkaXVtLmNvbS9AZmxvd3NxdWFkKQotIDIwMjEtMDktMTEgLSBbSW52b2tpbmcgQVdTIFBhcmFsbGVsQ2x1c3RlciBBUEldKGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9wYXJhbGxlbGNsdXN0ZXIvbGF0ZXN0L3VnL2FwaS1yZWZlcmVuY2UtdjMuaHRtbCkgYXQgW0FXUyBQYXJhbGxlbENsdXN0ZXIgQVBJIG9mZmljaWFsIGRvY3VtZW50YXRpb25dKGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9wYXJhbGxlbGNsdXN0ZXIvbGF0ZXN0L3VnL2FwaS1yZWZlcmVuY2UtdjMuaHRtbCkKLSAyMDIxLTA5LTIwIC0gW09wZW5BUEkgR2VuZXJhdG9yIC0gVGhlIEJhYmVsIEZpc2ggb2YgdGhlIEFQSSBXb3JsZF0oaHR0cHM6Ly93d3cueW91dHViZS5jb20vd2F0Y2g/dj1zMnpNdHdkNWtsZykgYnkgW0NsaWZmYW5vIFN1YmFnaW8gKFByaW5jaXBhbCBFbmdpbmVlciBhdCBTaGluZSBTb2x1dGlvbnMpXShodHRwczovL2dpdGh1Yi5jb20vY2xpZmZhbm8pIGF0IFtBcGlkYXlzIExJVkUgQXVzdHJhbGlhIDIwMjFdKGh0dHBzOi8vd3d3LmFwaWRheXMuZ2xvYmFsL2F1c3RyYWxpYTIwMjEvKQotIDIwMjEtMTAtMDIgLSBbSG93IHRvIFdyaXRlIEZld2VyIExpbmVzIG9mIENvZGUgd2l0aCB0aGUgT3BlbkFQSSBHZW5lcmF0b3JdKGh0dHBzOi8vaGFja2Vybm9vbi5jb20vaG93LXRvLXdyaXRlLWZld2VyLWxpbmVzLW9mLWNvZGUtd2l0aC10aGUtb3BlbmFwaS1nZW5lcmF0b3IpIGJ5IFtNaWtoYWlsIEFsZmFdKGh0dHBzOi8vaGFja2Vybm9vbi5jb20vdS9hbHBoYW1pa2xlKQotIDIwMjEtMTAtMTIgLSBbT3BlbkFQSSBHZW5lcmF0b3IgOiA0MDAwIMOpdG9pbGVzIHN1ciBHaXRIdWIgZXQgZGVzIHNwYWdoZXR0aXNdKGh0dHBzOi8vd3d3LnlvdXR1YmUuY29tL3dhdGNoP3Y9OWhFc05CU3FURmspIGJ5IFtKw6lyw6ltaWUgQnJlc3Nvbl0oaHR0cHM6Ly9naXRodWIuY29tL2ptaW5pKSBhdCBbRGV2b3h4IEZSIDIwMjFdKGh0dHBzOi8vY2ZwLmRldm94eC5mci8yMDIxL3NwZWFrZXIvamVyZW1pZV9icmVzc29uKQotIDIwMjEtMTAtMTcgLSBbR2VuZXJhdGUgYSBUeXBlU2NyaXB0IEhUVFAgQ2xpZW50IEZyb20gQW4gT3BlbkFQSSBTcGVjIEluIERvdE5FVCA1XShodHRwczovL3JpY2hhcmR3aWxsaXMuaW5mby9ibG9nL2dlbmVyYXRlLWEtdHlwZS1zY3JpcHQtaHR0cC1jbGllbnQtZnJvbS1hbi1vcGVuLWFwaS1zcGVjLWluLWRvdC1uZXQtNSkgYnkgW1JpY2hhcmQgV2lsbGlzXShodHRwczovL2dpdGh1Yi5jb20vYmFkc3ludGF4KQotIDIwMjEtMTEtMDYgLSBb44K544K/44O844OI44Ki44OD44OX44Gu6ZaL55m644Gn5oSP6K2Y44GX44Gf44GT44GoXShodHRwczovL3plbm4uZGV2L3dvb19ub28vYXJ0aWNsZXMvNWNiMDlmOGUyODk5YWU3ODJhZDEpIGJ5IFt3b28tbm9vXShodHRwczovL3plbm4uZGV2L3dvb19ub28pCi0gMjAyMS0xMS0wOSAtIFtFZmZlY3RpdmUgU29mdHdhcmUgRGV2ZWxvcG1lbnQgdXNpbmcgT3BlbkFQSSBHZW5lcmF0b3JdKGh0dHBzOi8vYXBleGxhYnMuYWkvcG9zdC9lZmZlY3RpdmUtc29mdHdhcmUtZGV2ZWxvcG1lbnQtdXNpbmctb3BlbmFwaS1nZW5lcmF0b3IpIGJ5IEFqaWwgT29tbWUKLSAyMDIxLTEyLTA3IC0gW0FuIEludHJvZHVjdGlvbiB0byBPcGVuQVBJXShodHRwczovL2JldHRlcnByb2dyYW1taW5nLnB1Yi80LXVzZS1jYXNlcy1vZi1vcGVuYXBpLXdoaWNoLWFyZS1nb29kLXRvLWtub3ctMWEwNDFmNGFkNzFlKSBieSBbTmEnYW1hbiBIaXJzY2hmZWxkXShodHRwczovL25hYW1hbmhpcnNjaGZlbGQubWVkaXVtLmNvbS8pCi0gMjAyMi0wMS0wMiAtIFtUb3dhcmRzIGEgc2VjdXJlIEFQSSBjbGllbnQgZ2VuZXJhdG9yIGZvciBJb1QgZGV2aWNlc10oaHR0cHM6Ly9hcnhpdi5vcmcvYWJzLzIyMDEuMDAyNzApIGJ5IEFuZGVycyBBYWVuIFNwcmluZ2JvcmcsIE1hcnRpbiBLYWxkYWhsIEFuZGVyc2VuLCBLYWFyZSBIb2xsYW5kIEhhdHRlbCwgTWljaGVsZSBBbGJhbm8KLSAyMDIyLTAyLTAyIC0gW1VzZSBPcGVuQXBpIGdlbmVyYXRvciB0byBzaGFyZSB5b3VyIG1vZGVscyBiZXR3ZWVuIEZsdXR0ZXIgYW5kIHlvdXIgYmFja2VuZF0oaHR0cHM6Ly93d3cueW91dHViZS5jb20vd2F0Y2g/dj1rUFc3Y2N1OVl2aykgYnkgW0d1aWxsYXVtZSBCZXJub3NdKGh0dHBzOi8vZmViMjAyMi5mbHV0dGVydmlraW5ncy5jb20vc3BlYWtlcnMvZ3VpbGxhdW1lX2Jlcm5vcykgYXQgW0ZsdXR0ZXIgVmlraW5ncyBDb25mZXJlbmNlIDIwMjIgKEh5YnJpZCldKGh0dHBzOi8vZmViMjAyMi5mbHV0dGVydmlraW5ncy5jb20vKQotIDIwMjItMDMtMTUgLSBbT3BlbkFQSSBTcGVj44Gn44OP44Kk44OV44Oz5Yy65YiH44KK44GuRW51beWApOOCkk9wZW5BUEkgR2VuZXJhdG9y44Gn5Ye65Yqb44GZ44KL44Go44CB44OP44Kk44OV44Oz5Yy65YiH44KK44Gu44G+44G+5Ye65Yqb44GV44KM44KLXShodHRwczovL3FpaXRhLmNvbS95dWppMzhrd210L2l0ZW1zLzgyNGQ3NGQ0ODg5MDU1YWIzN2Q4KSBieSBbeXVqaTM4a3dtdF0oaHR0cHM6Ly9xaWl0YS5jb20veXVqaTM4a3dtdCkKLSAyMDIyLTA0LTAxIC0gW09wZW5BUEkgR2VuZXJhdG9y44Gu44Kz44O844OJ55Sf5oiQ44GoU3ByaW5nIEZyYW1ld29ya+OBruOCq+OCueOCv+ODoOODh+ODvOOCv+ODkOOCpOODs+ODh+OCo+ODs+OCsOOCkuWFseWtmOOBleOBm+OCi10oaHR0cHM6Ly90ZWNoYmxvZy56b3pvLmNvbS9lbnRyeS9jb2V4aXN0ZW5jZS1vZi1vcGVuYXBpLWFuZC1zcHJpbmcpIGluIFtaT1pPIFRlY2ggQmxvZ10oaHR0cHM6Ly90ZWNoYmxvZy56b3pvLmNvbS8pCi0gMjAyMi0wNC0wNiAtIFtFZmZlY3RpdmUgU29mdHdhcmUgRGV2ZWxvcG1lbnQgdXNpbmcgT3BlbkFQSSBHZW5lcmF0b3JdKGh0dHBzOi8vYXBleGxhYnMuYWkvcG9zdC9vcGVuYXBpLWdlbmVyYXRvcikgYnkgQWppbCBPb21tZW4gKFNlbmlvciBGbHV0dGVyIERldmVsb3BlcikKLSAyMDIyLTA1LTEzIC0gW0EgUGF0aCBGcm9tIGFuIEFQSSBUbyBDbGllbnQgTGlicmFyaWVzXShodHRwczovL3d3dy55b3V0dWJlLmNvbS93YXRjaD92PVhDOG9Wbl9lZlR3KSBieSBbRmlsaXAgU3JuZWNdKGh0dHBzOi8vd3d3LmRldm94eC5jby51ay90YWxrLz9pZD0xMTIxMSkgYXQgSW5mb2JpcAotIDIwMjItMDYtMDEgLSBbQVBJIEZpcnN0LCB1c2luZyBPcGVuQVBJIGFuZCBTcHJpbmcgQm9vdF0oaHR0cHM6Ly9tZWRpdW0uY29tL3hnZWVrcy9hcGktZmlyc3QtdXNpbmctb3BlbmFwaS1hbmQtc3ByaW5nLWJvb3QtMjYwMmMwNGJiMGQzKSBieSBbTWljYWVsIEVzdHLDoXp1bGFzIFZpYW5uYV0oaHR0cHM6Ly9lc3RyYXp1bGFzLm1lZGl1bS5jb20vKQotIDIwMjItMDYtMTAgLSBbQXV0b2dlbmVyYXRpbmcgQ2xpZW50cyB3aXRoIEZhc3RBUEkgYW5kIEdpdGh1YiBBY3Rpb25zXShodHRwczovL3d3dy5wcm9wZWxhdXRoLmNvbS9wb3N0L2F1dG9nZW5lcmF0aW5nLWNsaWVudHMtd2l0aC1mYXN0YXBpLWFuZC1naXRodWItYWN0aW9ucykgYnkgW0FuZHJldyBJc3JhZWxdKGh0dHBzOi8vd3d3LnByb3BlbGF1dGguY29tL2F1dGhvci9hbmRyZXcpCi0gMjAyMi0wNi0xMiAtIFtNdXN0YWNoZSB0ZW1wbGF0ZXMgd2l0aCBPcGVuQVBJIHNwZWNzXShodHRwczovL21lZGl1bS5jb20vZ2Vla2N1bHR1cmUvbXVzdGFjaGUtdGVtcGxhdGVzLXdpdGgtb3BlbmFwaS1zcGVjcy1mMjQ3MTFjNjdkZWMpIGJ5IFtCZXBwZSBDYXRhbmVzZV0oaHR0cHM6Ly9naXRodWIuY29tL2djYXRhbmVzZSkKLSAyMDIyLTA3LTAxIC0gW0dlbmVyYXRlIEFQSSBjb250cmFjdCB1c2luZyBPcGVuQVBJIEdlbmVyYXRvciBNYXZlbiBwbHVnaW5dKGh0dHBzOi8vaHVvbmdkYW5qYXZhLmNvbS9nZW5lcmF0ZS1hcGktY29udHJhY3QtdXNpbmctb3BlbmFwaS1nZW5lcmF0b3ItbWF2ZW4tcGx1Z2luLmh0bWwpIGJ5IFtLaGFuaCBOZ3V5ZW5dKGh0dHBzOi8vaHVvbmdkYW5qYXZhLmNvbS8pCi0gMjAyMi0wNy0yMiAtIFvkvb/nlKhPcGVuQVBJIEdlbmVyYXRvciBNYXZlbiBwbHVnaW7lvIDlj5FhcGnkvJjlhYjnmoRqYXZh5a6i5oi356uv5ZKM5pyN5Yqh56uv5Luj56CBXShodHRwczovL2Jsb2cucm9jY29zaGkudG9wLzIwMjIvamF2YS9vcGVuYXBpLWdlbmVyYXRvciVFNyU5QSU4NCVFNCVCRCVCRiVFNyU5NCVBOC8pIGJ5IFtMaW5jZXN0XShodHRwczovL2dpdGh1Yi5jb20vTGluY2VzdCkKLSAyMDIyLTA4LTAxIC0gW1R1dG9yaWFsOiBFdHN5IE9wZW4gQVBJIHYzIChydWJ5KV0oaHR0cHM6Ly9ibG9nLnRqb3lhbC5kZXYvZXRzeS1vcGVuLWFwaS12My8pIGJ5IFtUaGllcnJ5IEpveWFsXShodHRwczovL2dpdGh1Yi5jb20vdGpveWFsKQotIDIwMjItMDktMDMgLSBbT3BlbkFQSSBHZW5lcmF0b3IgRm9yIEdvIFdlYiBEZXZlbG9wbWVudF0oaHR0cHM6Ly9ibG9nLmtldmluaHUubWUvMjAyMi8wOS8wMy8wMy1vcGVuYXBpLWdlbmVyYXRvci8pIGJ5IFtLZXZpbiBIdV0oaHR0cHM6Ly90d2l0dGVyLmNvbS9PbGRndW5peCkKLSAyMDIyLTEwLTAxIC0gW09wZW5BUEkgR2VuZXJhdG9y44KS44Kr44K544K/44Oe44Kk44K644GX44Gf44Kz44O844OJ44KS55Sf5oiQ44GZ44KL77yIU3dhZ2dlciBDb2RlZ2Vu44Go44G744G85ZCM44GY77yJXShodHRwczovL25haW5haXN0YXIuaGF0ZW5hYmxvZy5jb20vZW50cnkvMjAyMi8xMC8wMy8xMjAwMDApIGJ5IFvjgY3jgorkuLhdKGh0dHBzOi8vdHdpdHRlci5jb20vbmFpbmFpc3RhcikKLSAyMDIyLTEwLTIxIC0gW0tvdGxpbu+8iFNwcmluZyBCb29077yJ44GuIEFQSSDjgpIgT3BlbkFQSSBHZW5lcmF0b3Ig44Gn6Ieq5YuV55Sf5oiQXShodHRwczovL3plbm4uZGV2L21za3NnbS9hcnRpY2xlcy8yMDIyMTAyMS1rb3RsaW4tc3ByaW5nLW9wZW5hcGktZ2VuZXJhdG9yKSBieSBbbXNrc2dtXShodHRwczovL3plbm4uZGV2L21za3NnbSkKLSAyMDIyLTEwLTI2IC0gW1F1YXJrdXMgSW5zaWdodHMgIzEwNjogUXVhcmtpdmVyc2UgRXh0ZW5zaW9uIFNwb3RsaWdodDogT3BlbkFwaSBHZW5lcmF0b3JdKGh0dHBzOi8vd3d3LnlvdXR1YmUuY29tL3dhdGNoP3Y9X3NfaWY2OXQyaVEpIGJ5IFtRdWFya3VzaW9dKGh0dHBzOi8vd3d3LnlvdXR1YmUuY29tL2MvUXVhcmt1c2lvKQotIDIwMjItMTEtMjggLSBbVGhlIFJFU1QgQVBJIGltcGxlbWVudGF0aW9uIGZsb3ddKGh0dHBzOi8vdG1zdnIuY29tL29wZW5hcGktY29kZS1nZW5lcmF0aW9uLWZvci1yZXN0LWFwaXMvKSBieSBbSW1yZSBUw7Ztw7ZzdsOhcmldKGh0dHBzOi8vdG1zdnIuY29tL2F1dGhvci9pbXJlLykKLSAyMDIyLTEyLTEzIC0gW0FQSS1GaXJzdCB3aXRoIFNwcmluZyBXZWJGbHV4IGFuZCBPcGVuQVBJIEdlbmVyYXRvcl0oaHR0cHM6Ly9ib290dGVjaG5vbG9naWVzLWNpLm1lZGl1bS5jb20vYXBpLWZpcnN0LXdpdGgtc3ByaW5nLXdlYmZsdXgtYW5kLW9wZW5hcGktZ2VuZXJhdG9yLTM4Yjc4MDRjNGVkNCkgYnkgW0VyaWMgQW5pY2V0XShodHRwczovL2Jvb3R0ZWNobm9sb2dpZXMtY2kubWVkaXVtLmNvbS8pCi0gMjAyMy0wMS0wNiAtIFtNYWpvciBJbXByb3ZlbWVudHMgd2l0aCBIZWxpZG9uIGFuZCBPcGVuQVBJXShodHRwczovL21lZGl1bS5jb20vaGVsaWRvbi9tYWpvci1pbXByb3ZlbWVudHMtd2l0aC1oZWxpZG9uLWFuZC1vcGVuYXBpLWY3NmEwOTUxNTA4ZSkgYnkgW1RpbSBRdWlubl0oaHR0cHM6Ly9tZWRpdW0uY29tL0B0cXVpbm5vNjAwKQotIDIwMjMtMDItMDIgLSBbUmVwbGFjaW5nIFBvc3RtYW4gd2l0aCB0aGUgSmV0YnJhaW5zIEhUVFAgQ2xpZW50XShodHRwczovL2xlbmdyYW5kLmZyL3JlcGxhY2luZy1wb3N0bWFuLWluLXNlY29uZHMtd2l0aC10aGUtamV0YnJhaW5zLWh0dHAtY2xpZW50LykgYnkgW2p1bGllbiBMZW5ncmFuZC1MYW1iZXJ0XShodHRwczovL2dpdGh1Yi5jb20vamxlbmdyYW5kKQotIDIwMjMtMDMtMTUgLSBbT3BlbkFQSSBHZW5lcmF0b3LjgavpganjgZfjgZ9PcGVuQVBJ44Gu5pu444GN5pa5XShodHRwczovL3RlY2hibG9nLnpvem8uY29tL2VudHJ5L2hvdy10by13cml0ZS1vcGVuYXBpLWZvci1vcGVuYXBpLWdlbmVyYXRvcikgYnkgW1pPWk8gVGVjaCBCbG9nXShodHRwczovL3RlY2hibG9nLnpvem8uY29tLykKLSAyMDIzLTAzLTE5IC0gW0VYT0dFTTogRXh0ZW5kaW5nIE9wZW5BUEkgR2VuZXJhdG9yIGZvciBNb25pdG9yaW5nIG9mIFJFU1RmdWwgQVBJc10oaHR0cHM6Ly9saW5rLnNwcmluZ2VyLmNvbS9jaGFwdGVyLzEwLjEwMDcvOTc4LTMtMDMxLTI2NTA3LTVfMTApIGJ5IERhbmllbCBGcmlpcyBIb2x0ZWJvLCBKYW5uaWsgTHVjYXMgU29tbWVyLCBNYWdudXMgTcO4bGdhYXJkIEx1bmQsIEFsZXNzYW5kcm8gVGlibywgSnVuaW9yIERvbmdvICYgTWljaGVsZSBBbGJhbm8gYXQgIklDU09DIDIwMjI6IFNlcnZpY2UtT3JpZW50ZWQgQ29tcHV0aW5nIOKAkyBJQ1NPQyAyMDIyIFdvcmtzaG9wcyIKLSAyMDIzLTAzLTI4IC0gW0FQSS1GaXJzdCBEZXNpZ24gd2l0aCBPcGVuQVBJIEdlbmVyYXRvcl0oaHR0cHM6Ly93d3cubGlua2VkaW4uY29tL3B1bHNlL2FwaS1maXJzdC1kZXNpZ24tb3BlbmFwaS1nZW5lcmF0b3Itam9uYXRoYW4tbWFuZXJhLykgYnkgW0pvbmF0aGFuIE1hbmVyYV0oaHR0cHM6Ly93d3cubGlua2VkaW4uY29tL2luL21hbmVyYWpvbmEvKQotIDIwMjMtMDMtMjggLSBb44OP44Oz44K644Kq44Oz44Gn5a2m44G244K144O844OQ44O844K144Kk44OJIEtvdGxpbu+8iFNwcmluZyBCb290JkFycm93Jk9wZW5BUEkgR2VuZXJhdG9y77yJdjEuMC4xXShodHRwczovL3plbm4uZGV2L21za3NnbS9ib29rcy9pbXBsZW1lbnRpbmctc2VydmVyLXNpZGUta290bGluLWRldmVsb3BtZW50KSBieSBbbXNrXShodHRwczovL3plbm4uZGV2L21za3NnbSkKLSAyMDIzLTA0LTAxIC0gW09wZW5BUEkgQ2xpZW50IENvZGUgR2VuZXJhdGlvbl0oaHR0cHM6Ly90ZXN0aW5nYm9zcy5jb20vYmxvZy9vcGVuYXBpLWNsaWVudC1nZW5lcmF0aW9uLykgYnkgS3dvIERpbmcKLSAyMDIzLTA0LTI3IC0gW0NyZWF0ZSBhbiBBbmd1bGFyIENsaWVudCB1c2luZyBPcGVuQVBJIFNwZWNpZmljYXRpb25zXShDcmVhdGUgYW4gQW5ndWxhciBDbGllbnQgdXNpbmcgT3BlbkFQSSBTcGVjaWZpY2F0aW9ucykgYnkgW1BhdHJpY10oaHR0cHM6Ly9wZ3Vzby5tZWRpdW0uY29tLykKLSAyMDIzLTA1LTE2IC0gW0FkeWVuIGZvciBKYXZhIGRldmVsb3BlcnNdKGh0dHBzOi8vd3d3LmFkeWVuLmNvbS9ibG9nL2FkeWVuLWphdmEtbGlicmFyeSkgYnkgW0JlcHBlIENhdGFuZXNlLCBEZXZlbG9wZXIgQWR2b2NhdGUsIEFkeWVuXShodHRwczovL2dpdGh1Yi5jb20vZ2NhdGFuZXNlKQotIDIwMjMtMDUtMTggLSBb5aaC5L2V5Z+65LqOIFN3YWdnZXIg5L2/55SoIE9wZW5BUEkgR2VuZXJhdG9yIOeUn+aIkCBKTWV0ZXIg6ISa5pys77yfXShodHRwczovL2Jsb2cuNTFjdG8uY29tL3VfMTUxODE1NzIvNjI5NDk3NCkgYnkgW+mrmOalvO+8iFplZSldKGh0dHBzOi8vYmxvZy41MWN0by5jb20vdV8xNTE4MTU3MikKLSAyMDIzLTA2LTI4IC0gW0dlbmVyYXRlIEFQSSBjb250cmFjdCB1c2luZyBPcGVuQVBJIEdlbmVyYXRvciBNYXZlbiBwbHVnaW5dKGh0dHBzOi8vaHVvbmdkYW5qYXZhLmNvbS9nZW5lcmF0ZS1hcGktY29udHJhY3QtdXNpbmctb3BlbmFwaS1nZW5lcmF0b3ItbWF2ZW4tcGx1Z2luLmh0bWwpIGJ5IFtLaGFuaCBOZ3V5ZW5dKGh0dHBzOi8vaHVvbmdkYW5qYXZhLmNvbS8pCi0gMjAyMy0wNi0zMCAtIFtHZW5lcmF0ZSBDbGllbnQgU0RLcyB3aXRoIE9wZW5BcGkgR2VuZXJhdG9yIGluIFNwcmluZ2Jvb3RdKGh0dHBzOi8vbWVkaXVtLmNvbS9AcmFtYXZhdGh2aW5heWFrL2dlbmVyYXRlLWNsaWVudC1zZGtzLXdpdGgtb3BlbmFwaS1nZW5lcmF0b3ItaW4tc3ByaW5nYm9vdC1mOWYwMTJlNzNjMGIpIGJ5IFtWaW5heWFrIFJhbWF2YXRoXShodHRwczovL21lZGl1bS5jb20vQHJhbWF2YXRodmluYXlhaykKLSAyMDIzLTEyLTEwIC0gW1VuaXR544GnT3BlbkFQSSBHZW5lcmF0b3LjgpLkvb/jgYZdKGh0dHBzOi8vd3d3LnlvdXR1YmUuY29tL3dhdGNoP3Y9Q2JOd0tWVjVMUk0pIGJ5IFtTb3VwIFRvcmldKGh0dHBzOi8vd3d3LnlvdXR1YmUuY29tL0Bzb3VwdG9yaTg0MTcpCi0gMjAyNC0wMS0yNCAtIFtDb21tZW50IGfDqW7DqXJlciBkZXMgc3R1YnMgd2lyZW1vY2sgYXZlYyBvcGVuYXBpIGdlbmVyYXRvcl0oaHR0cHM6Ly93d3cueW91dHViZS5jb20vd2F0Y2g/dj0wamhPTmZCcmNLdykgYnkgW0FsZXhpcyBDb3V2cmV1cl0oaHR0cHM6Ly9naXRodWIuY29tL2Fjb3V2cmV1cikKLSAyMDI0LTAzLTA0IC0gW0dlbmVyYXRpbmcgVHlwZVNjcmlwdCBUeXBlcyB3aXRoIE9wZW5BUEkgZm9yIFJFU1QgQVBJIENvbnN1bXB0aW9uXShodHRwczovL3d3dy5wdWxscmVxdWVzdC5jb20vYmxvZy9nZW5lcmF0aW5nLXR5cGVzY3JpcHQtdHlwZXMtd2l0aC1vcGVuYXBpLWZvci1yZXN0LWFwaS1jb25zdW1wdGlvbi8pIGJ5IFtQdWxsUmVxdWVzdF0oaHR0cHM6Ly93d3cucHVsbHJlcXVlc3QuY29tLykKLSAyMDI0LTAzLTA3IC0gW0Z1bGx5IHR5cGVkIFdlYiBBcHBzIHdpdGggT3BlbkFQSSAoUGFydCAxKV0oaHR0cHM6Ly9tZWRpdW0uY29tL0BnZm94MTk4NC9mdWxseS10eXBlZC13ZWItYXBwcy13aXRoLW9wZW5hcGktcGFydC0xLTU5NWQ1NTc2NjY3MCkgYnkgW0d1aWxsYXVtZSBSZW5hcmRdKGh0dHBzOi8vbWVkaXVtLmNvbS9AZ2ZveDE5ODQpCi0gMjAyNC0wMy0wOCAtIFtMYXJhdmVsIE9wZW5BUEnjgavjgojjgosgIui+m+OBj+OBquOBhCIg44K544Kt44O844Oe6aeG5YuV6ZaL55m6XShodHRwczovL2ZvcnRlZS5qcC9waHBlcmthaWdpLTIwMjQvcHJvcG9zYWwvOWUyZTZjMzgtZDA3OC00ZWZhLTk5YjQtODNlYmY5MDMzYjM0KSBieSBbS2VudGFyb3VUYWtlZGFdKGh0dHBzOi8vdHdpdHRlci5jb20vS2VudGFyb3VUYWtlZGEpCgojIyBbNiAtIEFib3V0IFVzXSgjdGFibGUtb2YtY29udGVudHMpCgpXaGF0J3MgdGhlIGRlc2lnbiBwaGlsb3NvcGh5IG9yIHByaW5jaXBsZSBiZWhpbmQgT3BlbkFQSSBHZW5lcmF0b3I/CgpXZSBmb2N1cyBvbiBkZXZlbG9wZXIgZXhwZXJpZW5jZS4gVGhlIGdlbmVyYXRvcnMgc2hvdWxkIHByb2R1Y2UgY29kZSwgY29uZmlnLCBkb2N1bWVudGF0aW9uLCBhbmQgbW9yZSB0aGF0IGFyZSBlYXNpbHkgdW5kZXJzdGFuZGFibGUgYW5kIGNvbnN1bWFibGUgYnkgdXNlcnMuIFdlIGZvY3VzZWQgb24gc2ltcGxlIHVzZSBjYXNlcyB0byBzdGFydCB3aXRoIChib3R0b20tdXAgYXBwcm9hY2gpLiBTaW5jZSB0aGVuIHRoZSBwcm9qZWN0IGFuZCB0aGUgY29tbXVuaXR5IGhhdmUgZ3Jvd24gYSBsb3Q6IDYwMGsgd2Vla2x5IGRvd25sb2FkcyB2aWEgTlBNIENMSSB3cmFwcGVyLCAzME0gZG93bmxvYWRzIHZpYSBvcGVuYXBpLWdlbmVyYXRvci1jbGkgZG9ja2VyIGltYWdlIGp1c3QgdG8gaGlnaGxpZ2h0IGEgZmV3LiBXZSd2ZSBncmFkdWFsbHkgc3VwcG9ydGVkIG1vcmUgZmVhdHVyZXMgKGUuZy4gb25lT2YsIGFueU9mIGludHJvZHVjZWQgaW4gT3BlbkFQSSAzLjApIGluIHZhcmlvdXMgZ2VuZXJhdG9ycyBhbmQgd2Ugd2lsbCBjb250aW51ZSB0aGlzIGFwcHJvYWNoIHRvIGRlbGl2ZXIgc29tZXRoaW5nIGJhc2VkIG9uIG91ciB1bmRlcnN0YW5kaW5nIG9mIHVzZXIgZGVtYW5kIGFuZCB3aGF0IHRoZXkgd2FudCwgYW5kIGNvbnRpbnVlIHRvIGFkZCBzdXBwb3J0IG9mIG5ldyBmZWF0dXJlcyBpbnRyb2R1Y2VkIGluIE9wZW5BUEkgc3BlY2lmaWNhdGlvbiAoc3VjaCBhcyB2My4xIGFuZCBmdXR1cmUgdmVyc2lvbnMgb2YgdGhlIE9wZW5BUEkgc3BlY2lmaWNhdGlvbikuCgojIyMgWzYuMSAtIE9wZW5BUEkgR2VuZXJhdG9yIENvcmUgVGVhbV0oI3RhYmxlLW9mLWNvbnRlbnRzKQoKT3BlbkFQSSBHZW5lcmF0b3IgY29yZSB0ZWFtIG1lbWJlcnMgYXJlIGNvbnRyaWJ1dG9ycyB3aG8gaGF2ZSBiZWVuIG1ha2luZyBzaWduaWZpY2FudCBjb250cmlidXRpb25zIChyZXZpZXcgaXNzdWVzLCBmaXggYnVncywgbWFrZSBlbmhhbmNlbWVudHMsIGV0YykgdG8gdGhlIHByb2plY3Qgb24gYSByZWd1bGFyIGJhc2lzLgoKIyMjIyBDb3JlIFRlYW0gTWVtYmVycwoqIFtAd2luZzMyOF0oaHR0cHM6Ly9naXRodWIuY29tL3dpbmczMjgpICgyMDE1LzA3KSBbOmhlYXJ0Ol0oaHR0cHM6Ly93d3cucGF0cmVvbi5jb20vd2luZzMyOCkKKiBbQGppbXNjaHViZXJ0XShodHRwczovL2dpdGh1Yi5jb20vamltc2NodWJlcnQpICgyMDE2LzA1KSBbOmhlYXJ0Ol0oaHR0cHM6Ly93d3cucGF0cmVvbi5jb20vamltc2NodWJlcnQpCiogW0BjYm9ybmV0XShodHRwczovL2dpdGh1Yi5jb20vY2Jvcm5ldCkgKDIwMTYvMDUpCiogW0BqbWluaV0oaHR0cHM6Ly9naXRodWIuY29tL2ptaW5pKSAoMjAxOC8wNCkgIFs6aGVhcnQ6XShodHRwczovL3d3dy5wYXRyZW9uLmNvbS9qbWluaSkKKiBbQGV0aGVyZWFsam95XShodHRwczovL2dpdGh1Yi5jb20vZXRoZXJlYWxqb3kpICgyMDE5LzA2KQoKOmhlYXJ0OiA9IExpbmsgdG8gc3VwcG9ydCB0aGUgY29udHJpYnV0b3IgZGlyZWN0bHkKCiMjIyMgVGVtcGxhdGUgQ3JlYXRvcgoKKipOT1RFKio6IEVtYmVkZGVkIHRlbXBsYXRlcyBhcmUgb25seSBzdXBwb3J0ZWQgaW4gX011c3RhY2hlXyBmb3JtYXQuIFN1cHBvcnQgZm9yIGFsbCBvdGhlciBmb3JtYXRzIGlzIGV4cGVyaW1lbnRhbCBhbmQgc3ViamVjdCB0byBjaGFuZ2UgYXQgYW55IHRpbWUuCgpIZXJlIGlzIGEgbGlzdCBvZiB0ZW1wbGF0ZSBjcmVhdG9yczoKICogQVBJIENsaWVudHM6CiAgICogQWRhOiBAc3RjYXJyZXoKICAgKiBBcGV4OiBAYXNuZWxsaW5nCiAgICogQmFzaDogQGJrcnl6YQogICAqIEM6IEBQb3dlck9mQ3JlYXRpb24gQHpoZW1hbnQgWzpoZWFydDpdKGh0dHBzOi8vd3d3LnBhdHJlb24uY29tL3poZW1hbnQpCiAgICogQysrIFJFU1Q6IEBEYW5pZWxrdTE1CiAgICogQysrIFRpbnk6IEBBbmRlcnNTcHJpbmdib3JnIEBrYWFyZUhIIEBtaWNoZWxlYWxiYW5vIEBta2FrYmFzCiAgICogQysrIFVFNDogQEthaG5jb2RlCiAgICogQyMgKC5ORVQgMi4wKTogQHdobwogICAqIEMjICguTkVUIFN0YW5kYXJkIDEuMyApOiBAR3JvbnNhawogICAqIEMjICguTkVUIDQuNSByZWZhY3RvcmVkKTogQGppbXNjaHViZXJ0IFs6aGVhcnQ6XShodHRwczovL3d3dy5wYXRyZW9uLmNvbS9qaW1zY2h1YmVydCkKICAgKiBDIyAoR2VuZXJpY0hvc3QpOiBAZGV2aGwtbGFicwogICAqIEMjIChIdHRwQ2xpZW50KTogQEJsYWNrY2xhd3MKICAgKiBDbG9qdXJlOiBAeGhoCiAgICogQ3J5c3RhbDogQHdpbmczMjgKICAgKiBEYXJ0OiBAeWlzc2FjaGFyCiAgICogRGFydCAocmVmYWN0b3IpOiBAam9lcm5haHJlbnMKICAgKiBEYXJ0IDI6IEBzd2lwZXNpZ2h0CiAgICogRGFydCAoSmFndWFyKTogQGphdW1hcmQKICAgKiBEYXJ0IChEaW8pOiBAam9zaC1idXJ0b24KICAgKiBFbGl4aXI6IEBuaWt1CiAgICogRWxtOiBAZXJpa3RpbQogICAqIEVpZmZlbDogQGp2ZWxpbGxhCiAgICogRXJsYW5nOiBAdHNsb3VnaHRlcgogICAqIEVybGFuZyAoUHJvcEVyKTogQGpmYWNvcnJvIEByb2JlcnRvYWxvaQogICAqIEdyb292eTogQHZpY3RvcmdpdAogICAqIEdvOiBAd2luZzMyOCBbOmhlYXJ0Ol0oaHR0cHM6Ly93d3cucGF0cmVvbi5jb20vd2luZzMyOCkKICAgKiBHbyAocmV3cml0dGVuIGluIDIuMy4wKTogQGFudGloYXgKICAgKiBIYXNrZWxsIChodHRwLWNsaWVudCk6IEBqb25zY2hvbmluZwogICAqIEphdmEgKEZlaWduKTogQGRhdmlka2lzcwogICAqIEphdmEgKFJldHJvZml0KTogQDBsZWdnCiAgICogSmF2YSAoUmV0cm9maXQyKTogQGVtaWxpYW5vYm9uYXNzaQogICAqIEphdmEgKEplcnNleTIpOiBAeGhoCiAgICogSmF2YSAob2todHRwLWdzb24pOiBAeGhoCiAgICogSmF2YSAoUmVzdFRlbXBsYXRlKTogQG5icnVubwogICAqIEphdmEgKFNwcmluZyA1IFdlYkNsaWVudCk6IEBkYW9ub21pYwogICAqIEphdmEgKFNwcmluZyA2IFJlc3RDbGllbnQpOiBAbmlja2xhczI3NTEKICAgKiBKYXZhIChSRVNURWFzeSk6IEBnYXlhdGhyaWdzCiAgICogSmF2YSAoVmVydHgpOiBAbG9wZXNtY2MKICAgKiBKYXZhIChHb29nbGUgQVBJcyBDbGllbnQgTGlicmFyeSk6IEBjaGFybGVzY2FwcHMKICAgKiBKYXZhIChSZXN0LWFzc3VyZWQpOiBAdmljbG92c2t5CiAgICogSmF2YSAoSmF2YSAxMSBOYXRpdmUgSFRUUCBjbGllbnQpOiBAYmJkb3VnbGFzCiAgICogSmF2YSAoQXBhY2hlIEh0dHBDbGllbnQgNS54KTogQGhhcnJ5d2hpdGU0IEBhbmRyZXZlZ2FzCiAgICogSmF2YSAoSGVsaWRvbik6IEBzcGVyaWNhcyBAdGpxdWlubm8gQHR2YWxsaW4KICAgKiBKYXZhc2NyaXB0L05vZGVKUzogQGpmaWFsYQogICAqIEphdmFTY3JpcHQgKEFwb2xsbyBEYXRhU291cmNlKTogQGVyaXRobWV0aWMKICAgKiBKYXZhU2NyaXB0IChDbG9zdXJlLWFubm90YXRlZCBBbmd1bGFyKSBAYWNoZXcyMgogICAqIEphdmFTY3JpcHQgKEZsb3cgdHlwZXMpIEBqYXlwZWEKICAgKiBKZXRicmFpbnMgSFRUUCBDbGllbnQgOiBAamxlbmdyYW5kCiAgICogSk1ldGVyOiBAZGF2aWRraXNzCiAgICogSnVsaWE6IEB0YW5tYXlrbQogICAqIEtvdGxpbjogQGppbXNjaHViZXJ0IFs6aGVhcnQ6XShodHRwczovL3d3dy5wYXRyZW9uLmNvbS9qaW1zY2h1YmVydCkKICAgKiBLb3RsaW4gKE11bHRpUGxhdGZvcm0pOiBAYW5kcmV3ZW1lcnkKICAgKiBLb3RsaW4gKFZvbGxleSk6IEBhbGlzdGVycwogICAqIEtvdGxpbiAoanZtLXNwcmluZy13ZWJjbGllbnQpOiBAc3RlZmFua29wcGllcgogICAqIEtvdGxpbiAoanZtLXNwcmluZy1yZXN0Y2xpZW50KTogQHN0ZWZhbmtvcHBpZXIKICAgKiBMdWE6IEBkYXVybmltYXRvcgogICAqIE40SlM6IEBtbWV3cy1uNAogICAqIE5pbTogQGhva2Ftb3RvCiAgICogT0NhbWw6IEBjZ2Vuc291bAogICAqIFBlcmw6IEB3aW5nMzI4IFs6aGVhcnQ6XShodHRwczovL3d3dy5wYXRyZW9uLmNvbS93aW5nMzI4KQogICAqIFBIUCAoR3V6emxlKTogQGJhYXJ0b3N6CiAgICogUEhQICh3aXRoIERhdGEgVHJhbnNmZXIpOiBAQXJ0aWN1cwogICAqIFBvd2VyU2hlbGw6IEBiZWF0Y3JhY2tlcgogICAqIFBvd2VyU2hlbGwgKHJlZmFjdG9yZWQgaW4gNS4wLjApOiBAd2luZzMyOAogICAqIFB5dGhvbjogQHNwYWNldGhlciBbOmhlYXJ0Ol1bc3BhY2V0aGVyIHNwb25zb3JzaGlwXQogICAqIFB5dGhvbi1FeHBlcmltZW50YWw6IEBzcGFjZXRoZXIgWzpoZWFydDpdW3NwYWNldGhlciBzcG9uc29yc2hpcF0KICAgKiBQeXRob24gKHJlZmFjdG9yZWQgaW4gNy4wLjApOiBAd2luZzMyOAogICAqIFI6IEByYW1ub3YKICAgKiBSdWJ5IChGYXJhZGF5KTogQG1lZ2FuZW11cmEgQGRrbGliYW4KICAgKiBSdWJ5IChIVFRQWCk6IEBob25leXJ5ZGVyY2h1Y2sKICAgKiBSdXN0OiBAZmFyY2FsbGVyCiAgICogUnVzdCAocnVzdC1zZXJ2ZXIpOiBAbWV0YXN3aXRjaAogICAqIFNjYWxhIChzY2FsYXogJiBodHRwNHMpOiBAdGJyb3duMTk3OQogICAqIFNjYWxhIChBa2thKTogQGNjaGFmZXIKICAgKiBTY2FsYSAoc3R0cCk6IEBjaGFtZWxlb244MgogICAqIFNjYWxhIChzdHRwNCk6IEBmbHNoODYKICAgKiBTY2FsYSAoUGVra28pOiBAbWlja2FlbG1hZ25pZXoKICAgKiBTd2lmdDogQHRrcXVibwogICAqIFN3aWZ0IDM6IEBoZXhlbG9uCiAgICogU3dpZnQgNDogQGVoeWNoZQogICAqIFN3aWZ0IDU6IEA0YnJ1bnUKICAgKiBTd2lmdCBDb21iaW5lOiBAZHlkdXMweDE0CiAgICogVHlwZVNjcmlwdCAoQW5ndWxhcjEpOiBAbWhhcmRvcmYKICAgKiBUeXBlU2NyaXB0IChBbmd1bGFyMik6IEByb25pLWZyYW50Y2hpCiAgICogVHlwZVNjcmlwdCAoQW5ndWxhcjYpOiBAYWtlaGlyCiAgICogVHlwZVNjcmlwdCAoQW5ndWxhcjcpOiBAdG9wY2UKICAgKiBUeXBlU2NyaXB0IChBeGlvcyk6IEBuaWNva29lbmlnCiAgICogVHlwZVNjcmlwdCAoRmV0Y2gpOiBAbGVvbnl1CiAgICogVHlwZVNjcmlwdCAoSW52ZXJzaWZ5KTogQGd1YWx0aWVyaW0KICAgKiBUeXBlU2NyaXB0IChqUXVlcnkpOiBAYmhlcmlsYQogICAqIFR5cGVTY3JpcHQgKE5lc3Rqcyk6IEB2ZnJhbms2NgogICAqIFR5cGVTY3JpcHQgKE5vZGUpOiAgQG1oYXJkb3JmCiAgICogVHlwZVNjcmlwdCAoUnhqcyk6IEBkZW55bwogICAqIFR5cGVTY3JpcHQgKHJlZHV4LXF1ZXJ5KTogQHBldGVqb2hhbnNvbnhvCiAgICogWG9qbzogQFRvcGhlZWUKICAgKiBaYXBpZXI6IEB2YWxtb3osIEBlbWFqbwogKiBTZXJ2ZXIgU3R1YnMKICAgKiBBZGE6IEBzdGNhcnJlegogICAqIEMjIEFTUC5ORVQgNTogQGppbXNjaHViZXJ0IFs6aGVhcnQ6XShodHRwczovL3d3dy5wYXRyZW9uLmNvbS9qaW1zY2h1YmVydCkKICAgKiBDIyBBU1AuTkVUIENvcmUgMy4wOiBAQS1Kb3NoaQogICAqIEMjIEFQUy5ORVQgQ29yZSAzLjE6IEBwaGF0Y2hlcgogICAqIEMjIEF6dXJlIGZ1bmN0aW9uczogQEFicmhtNzc4NgogICAqIEMjIE5hbmN5Rlg6IEBtc3RlZmFuaXVrCiAgICogQysrIChRdDUgUUh0dHBFbmdpbmUpOiBAZXRoZXJlYWxqb3kKICAgKiBDKysgUGlzdGFjaGU6IEBzZWJ5bWlhbm8KICAgKiBDKysgUmVzdGJlZDogQHN0a3J3b3JrCiAgICogRXJsYW5nIFNlcnZlcjogQGdhbGF4aWUKICAgKiBGIyAoR2lyYWZmZSkgU2VydmVyOiBAbm1maXNoZXIKICAgKiBHbyBTZXJ2ZXI6IEBndW9odWFuZwogICAqIEdvIFNlcnZlciAocmVmYWN0b3JlZCBpbiA3LjAuMCk6IEBsd2o1CiAgICogR28gKEVjaG8pIFNlcnZlcjogQHBoNHI1aDRkCiAgICogR28gKEdpbikgU2VydmVyOiBAa2Vtb2tlbW8KICAgKiBHcmFwaFFMIEV4cHJlc3MgU2VydmVyOiBAcmVuZXBhcmRvbgogICAqIEhhc2tlbGwgU2VydmFudDogQGFsZ2FzCiAgICogSGFza2VsbCBZZXNvZDogQHlvdHN1eWEKICAgKiBKYXZhIENhbWVsOiBAY2FybmV2YWxlZ2lhY29tbwogICAqIEphdmEgTVNGNEo6IEBzYW5qZWV3YS1tYWxhbGdvZGEKICAgKiBKYXZhIFNwcmluZyBCb290OiBAZGl5ZnIKICAgKiBKYXZhIFVuZGVydG93OiBAc3RldmVodQogICAqIEphdmEgUGxheSBGcmFtZXdvcms6IEBKRkNvdGUKICAgKiBKYXZhIFBLTVNUOiBAYW5zaHUyMTg1IEBzYW5zaHVtYW4gQHJrdW1hci1wayBAbmlub2RwaWxsYWkKICAgKiBKYXZhIFZlcnQueDogQGx3bGVlMjYwOAogICAqIEphdmEgTWljcm9uYXV0OiBAYW5kcml5LWRteXRydWsKICAgKiBKYXZhIEhlbGlkb246IEBzcGVyaWNhcyBAdGpxdWlubm8gQHR2YWxsaW4KICAgKiBKYXZhIFdpcmVNb2NrOiBbQGFjb3V2cmV1cl0oaHR0cHM6Ly9naXRodWIuY29tL2Fjb3V2cmV1cikKICAgKiBKQVgtUlMgUmVzdEVhc3k6IEBjaGFtZWxlb244MgogICAqIEpBWC1SUyBDWEY6IEBoaXZlc2hpcAogICAqIEpBWC1SUyBDWEYgKENESSk6IEBuaWNrY21heW5hcmQKICAgKiBKQVgtUlMgUmVzdEVhc3kgKEpCb3NzIEVBUCk6IEBqZmlhbGEKICAgKiBKdWxpYTogQHRhbm1heWttCiAgICogS290bGluOiBAamltc2NodWJlcnQgWzpoZWFydDpdKGh0dHBzOi8vd3d3LnBhdHJlb24uY29tL2ppbXNjaHViZXJ0KQogICAqIEtvdGxpbiAoU3ByaW5nIEJvb3QpOiBAZHI0a2U2MTYKICAgKiBLb3RsaW4gKFZlcnR4KTogQFdvb3ltZQogICAqIEtvdGxpbiAoSkFYLVJTKTogQGFudHRpbGVwcGEKICAgKiBLb3RsaW4gV2lyZU1vY2s6IEBzdGVmYW5rb3BwaWVyCiAgICogTm9kZUpTIEV4cHJlc3M6IEBZaXNoVGlzaAogICAqIFBIUCBGbGlnaHQ6IEBkYW5pZWwtc2MKICAgKiBQSFAgTGFyYXZlbDogQHJlbmVwYXJkb24KICAgKiBQSFAgTHVtZW46IEBhYmNzdW4KICAgKiBQSFAgTWV6emlvICh3aXRoIFBhdGggSGFuZGxlcik6IEBBcnRpY3VzCiAgICogUEhQIFNsaW06IEBqZmFzdG5hY2h0CiAgICogUEhQIFNsaW00OiBbQHliZWxlbmtvXShodHRwczovL2dpdGh1Yi5jb20veWJlbGVua28pCiAgICogUEhQIFN5bWZvbnk6IEBrc20yCiAgICogUEhQIFN5bWZvbnk2OiBAQmVuamFtaW5IYWUKICAgKiBQeXRob24gRmFzdEFQSTogQGtyamFrYnJqYWsKICAgKiBQeXRob24gQUlPSFRUUDoKICAgKiBSdWJ5IG9uIFJhaWxzIDU6IEB6bHgKICAgKiBSdXN0IChydXN0LXNlcnZlcik6IEBtZXRhc3dpdGNoCiAgICogU2NhbGEgQWtrYTogQEJvdWlsbGllCiAgICogU2NhbGEgQ2FzazogQGFhcm9ucAogICAqIFNjYWxhIEZpbmNoOiBAamltc2NodWJlcnQgWzpoZWFydDpdKGh0dHBzOi8vd3d3LnBhdHJlb24uY29tL2ppbXNjaHViZXJ0KQogICAqIFNjYWxhIExhZ29tOiBAZ21rdW1hcjIwMDUKICAgKiBTY2FsYSBQbGF5OiBAYWRpZ2VyYmVyCiAqIERvY3VtZW50YXRpb24KICAgKiBBc2NpaURvYzogQG1hbi1hdC1ob21lCiAgICogSFRNTCBEb2MgMjogQGpoaXRjaGNvY2sKICAgKiBDb25mbHVlbmNlIFdpa2k6IEBqaGl0Y2hjb2NrCiAgICogUGxhbnRVTUw6IEBwYnVybHMKICogQ29uZmlndXJhdGlvbgogICAqIEFwYWNoZTI6IEBzdGtyd29yawogICAqIGs2OiBAbW9zdGFmYQogKiBTY2hlbWEKICAgKiBBdnJvOiBAc2dhZG91YXIKICAgKiBHcmFwaFFMOiBAd2luZzMyOCBbOmhlYXJ0Ol0oaHR0cHM6Ly93d3cucGF0cmVvbi5jb20vd2luZzMyOCkKICAgKiBLdG9ybTogQEx1aXotTW9uYWQKICAgKiBNeVNRTDogW0B5YmVsZW5rb10oaHR0cHM6Ly9naXRodWIuY29tL3liZWxlbmtvKQogICAqIFBvc3RtYW4gQ29sbGVjdGlvbjogQGdjYXRhbmVzZQogICAqIFByb3RvY29sIEJ1ZmZlcjogQHdpbmczMjgKICAgKiBXU0RMOiBAYWRlc3NvRHBkCgo6aGVhcnQ6ID0gTGluayB0byBzdXBwb3J0IHRoZSBjb250cmlidXRvciBkaXJlY3RseQoKIyMjIyBIb3cgdG8gam9pbiB0aGUgY29yZSB0ZWFtCgpIZXJlIGFyZSB0aGUgcmVxdWlyZW1lbnRzIHRvIGJlY29tZSBhIGNvcmUgdGVhbSBtZW1iZXI6Ci0gcmFuayB3aXRoaW4gdG9wIDUwIGluIGh0dHBzOi8vZ2l0aHViLmNvbS9vcGVuYXBpdG9vbHMvb3BlbmFwaS1nZW5lcmF0b3IvZ3JhcGhzL2NvbnRyaWJ1dG9ycwogIC0gdG8gY29udHJpYnV0ZSwgaGVyZSBhcmUgc29tZSBnb29kIFtzdGFydGluZyBwb2ludHNdKGh0dHBzOi8vZ2l0aHViLmNvbS9vcGVuYXBpdG9vbHMvb3BlbmFwaS1nZW5lcmF0b3IvaXNzdWVzP3E9aXMlM0FvcGVuK2lzJTNBaXNzdWUrbGFiZWwlM0ElMjJoZWxwK3dhbnRlZCUyMikKLSByZWd1bGFyIGNvbnRyaWJ1dGlvbnMgdG8gdGhlIHByb2plY3QKICAtIGFib3V0IDMgaG91cnMgcGVyIHdlZWsKICAtIGZvciBjb250cmlidXRpb24sIGl0IGNhbiBiZSBhZGRyZXNzaW5nIGlzc3VlcywgcmV2aWV3aW5nIFBScyBzdWJtaXR0ZWQgYnkgb3RoZXJzLCBzdWJtaXR0aW5nIFBSIHRvIGZpeCBidWdzIG9yIG1ha2UgZW5oYW5jZW1lbnRzLCBldGMKICAtIG11c3QgYmUgYWN0aXZlIGluIHRoZSBwYXN0IDMgbW9udGhzIGF0IHRoZSB0aW1lIG9mIGFwcGxpY2F0aW9uCgogVG8gam9pbiB0aGUgY29yZSB0ZWFtLCBwbGVhc2UgcmVhY2ggb3V0IHRvIHRlYW1Ab3BlbmFwaXRvb2xzLm9yZyBmb3IgbW9yZSBpbmZvcm1hdGlvbi4KCiBUbyBiZWNvbWUgYSBUZW1wbGF0ZSBDcmVhdG9yLCBzaW1wbHkgc3VibWl0IGEgUFIgZm9yIG5ldyBBUEkgY2xpZW50IChlLmcuIFJ1c3QsIEVsaXhpcikgb3Igc2VydmVyIHN0dWIgKGUuZy4gUnVieSBHcmFwZSkgZ2VuZXJhdG9yLgoKIyMjIFs2LjIgLSBPcGVuQVBJIEdlbmVyYXRvciBUZWNobmljYWwgQ29tbWl0dGVlXSgjdGFibGUtb2YtY29udGVudHMpCgpNZW1iZXJzIG9mIHRoZSBPcGVuQVBJIEdlbmVyYXRvciB0ZWNobmljYWwgY29tbWl0dGVlIHNob3VsZGVyIHRoZSBmb2xsb3dpbmcgcmVzcG9uc2liaWxpdGllczoKCi0gUHJvdmlkZXMgZ3VpZGFuY2UgYW5kIGRpcmVjdGlvbiB0byBvdGhlciB1c2VycwotIFJldmlld3MgcHVsbCByZXF1ZXN0cyBhbmQgaXNzdWVzCi0gSW1wcm92ZXMgdGhlIGdlbmVyYXRvciBieSBtYWtpbmcgZW5oYW5jZW1lbnRzLCBmaXhpbmcgYnVncyBvciB1cGRhdGluZyBkb2N1bWVudGF0aW9ucwotIFNldHMgdGhlIHRlY2huaWNhbCBkaXJlY3Rpb24gb2YgdGhlIGdlbmVyYXRvcgoKV2hvIGlzIGVsaWdpYmxlPyBUaG9zZSB3aG8gd2FudCB0byBqb2luIG11c3QgaGF2ZSBhdCBsZWFzdCAzIFBScyBtZXJnZWQgaW50byBhIGdlbmVyYXRvci4gKEV4Y2VwdGlvbnMgY2FuIGJlIGdyYW50ZWQgdG8gdGVtcGxhdGUgY3JlYXRvcnMgb3IgY29udHJpYnV0b3JzIHdobyBoYXZlIG1hZGUgYSBsb3Qgb2YgY29kZSBjaGFuZ2VzIHdpdGggbGVzcyB0aGFuIDMgbWVyZ2VkIFBScykKCklmIHlvdSB3YW50IHRvIGpvaW4gdGhlIGNvbW1pdHRlZSwgcGxlYXNlIGtpbmRseSBhcHBseSBieSBzZW5kaW5nIGFuIGVtYWlsIHRvIHRlYW1Ab3BlbmFwaXRvb2xzLm9yZyB3aXRoIHlvdXIgR2l0aHViIElELgoKIyMjIyBNZW1iZXJzIG9mIFRlY2huaWNhbCBDb21taXR0ZWUKCnwgTGFuZ3VhZ2VzL0dlbmVyYXRvcnMgIHwgTWVtYmVyIChqb2luIGRhdGUpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAp8Oi0tLS0tLS0tLS0tLS0tLS0tLS0tLS18Oi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLXwKfCBBY3Rpb25TY3JpcHQgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8CnwgQWRhICAgICAgICAgICAgICAgICAgIHwgQHN0Y2FycmV6ICgyMDE4LzAyKSBAbWljaGVsZWFsYmFubyAoMjAxOC8wMikgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAp8IEFuZHJvaWQgICAgICAgICAgICAgICB8IEBqYXotYWggKDIwMTcvMDkpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKfCBBcGV4ICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8CnwgQmFzaCAgICAgICAgICAgICAgICAgIHwgQGZyb2wgKDIwMTcvMDcpIEBia3J5emEgKDIwMTcvMDgpIEBrZW5qb25lcy1jaXNjbyAoMjAxNy8wOSkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAp8IEMgICAgICAgICAgICAgICAgICAgICB8IEB6aGVtYW50ICgyMDE4LzExKSBAaXR5dWh1aSAoMjAxOS8xMikgQG1pY2hlbGVhbGJhbm8gKDIwMjAvMDMpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKfCBDKysgICAgICAgICAgICAgICAgICAgfCBAcmF2aW5pa2FtICgyMDE3LzA3KSBAc3RrcndvcmsgKDIwMTcvMDcpIEBldGhlcmVhbGpveSAoMjAxOC8wMikgQG1hcnRpbmRlbGlsbGUgKDIwMTgvMDMpIEBtdXR0bGV5eGQgKDIwMTkvMDgpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8CnwgQyMgICAgICAgICAgICAgICAgICAgIHwgQG1hbmRyZWFuICgyMDE3LzA4KSBAc2hpYmF5YW4gKDIwMjAvMDIpIEBCbGFja2NsYXdzICgyMDIxLzAzKSBAbHVjYW1henphbnRpICgyMDIxLzA1KSBAaUJpY2hhICgyMDIzLzA3KSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKfCBDbG9qdXJlICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8CnwgQ3J5c3RhbCAgICAgICAgICAgICAgIHwgQGN5YW5nbGUgKDIwMjEvMDEpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAp8IERhcnQgICAgICAgICAgICAgICAgICB8IEBqYXVtYXJkICgyMDE4LzA5KSBAam9zaC1idXJ0b24gKDIwMTkvMTIpIEBhbW9uZG5ldCAoMjAxOS8xMikgQHNidS1XQlQgKDIwMjAvMTIpIEBrdWhucm95YWwgKDIwMjAvMTIpIEBhZ2lsb2IgKDIwMjAvMTIpIEBhaG1lZG5md2VsYSAoMjAyMS8wOCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKfCBFaWZmZWwgICAgICAgICAgICAgICAgfCBAanZlbGlsbGEgKDIwMTcvMDkpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8CnwgRWxpeGlyICAgICAgICAgICAgICAgIHwgQG1ybXN0biAoMjAxOC8xMikgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAp8IEVsbSAgICAgICAgICAgICAgICAgICB8IEBlcmlrdGltICgyMDE4LzA5KSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKfCBFcmxhbmcgICAgICAgICAgICAgICAgfCBAdHNsb3VnaHRlciAoMjAxNy8xMSkgQGpmYWNvcnJvICgyMDE4LzEwKSBAcm9iZXJ0b2Fsb2kgKDIwMTgvMTApICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8CnwgRiMgICAgICAgICAgICAgICAgICAgIHwgQG5tZmlzaGVyICgyMDE5LzA1KSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAp8IEdvICAgICAgICAgICAgICAgICAgICB8IEBhbnRpaGF4ICgyMDE3LzExKSBAZ3Jva2lmeSAoMjAxOC8wNykgQGtlbW9rZW1vICgyMDE4LzA5KSBAamlyaWt1bmNhciAoMjAyMS8wMSkgQHBoNHI1aDRkICgyMDIxLzA0KSBAbHdqNSAoMjAyMy8wNCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8CnwgR3JhcGhRTCAgICAgICAgICAgICAgIHwgQHJlbmVwYXJkb24gKDIwMTgvMTIpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAp8IEdyb292eSAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKfCBIYXNrZWxsICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8CnwgSmF2YSAgICAgICAgICAgICAgICAgIHwgQGJiZG91Z2xhcyAoMjAxNy8wNykgQHNyZWVzaGFzICgyMDE3LzA4KSBAamZpYWxhICgyMDE3LzA4KSBAbHVrb3lhbm92ICgyMDE3LzA5KSBAY2Jvcm5ldCAoMjAxNy8wOSkgQGplZmY5ZmluZ2VyICgyMDE4LzAxKSBAa2FyaXNtYW5uICgyMDE5LzAzKSBAWm9tem9nICgyMDE5LzA0KSBAbHdsZWUyNjA4ICgyMDE5LzEwKSBAbWFydGluLW1mZyAoMjAyMy8wOCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKfCBKYXZhIFNwcmluZyAgICAgICAgICAgfCBAY2FjaGVzY3J1YmJlciAoMjAyMi8wMikgQHdlbHNobSAoMjAyMi8wMikgQE1lbGxlRCAoMjAyMi8wMikgQGF0ZXh0b3IgKDIwMjIvMDIpIEBtYW5lZGV2NzkgKDIwMjIvMDIpIEBqYXZpc3N0ICgyMDIyLzAyKSBAYm9yc2NoICgyMDIyLzAyKSBAYmFubGV2ZW50ZSAoMjAyMi8wMikgQFpvbXpvZyAoMjAyMi8wOSkgQG1hcnRpbi1tZmcgKDIwMjMvMDgpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAp8IEpNZXRlciAgICAgICAgICAgICAgICB8IEBrYW5ua3lvICgyMDIxLzAxKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKfCBKZXRicmFpbnMgSFRUUCBDbGllbnQgfCBAamxlbmdyYW5kICgyMDIzLzAxKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8CnwgSnVsaWEgICAgICAgICAgICAgICAgIHwgQHRhbm1heWttICgyMDIzLzAxKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAp8IEtvdGxpbiAgICAgICAgICAgICAgICB8IEBkcjRrZTYxNiAoMjAxOC8wOCkgQGthcmlzbWFubiAoMjAxOS8wMykgQFpvbXpvZyAoMjAxOS8wNCkgQGFuZHJld2VtZXJ5ICgyMDE5LzEwKSBANGJydW51ICgyMDE5LzExKSBAeXV0YWthMG0gKDIwMjAvMDMpIEBzdGVmYW5rb3BwaWVyICgyMDIyLzA2KSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAp8IEx1YSAgICAgICAgICAgICAgICAgICB8IEBkYXVybmltYXRvciAoMjAxNy8wOCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKfCBONEpTICAgICAgICAgICAgICAgICAgfCBAbW1ld3MtbjQgKDIwMjMvMDMpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8CnwgTmltICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAp8IE5vZGVKUy9KYXZhc2NyaXB0ICAgICB8IEBDb2RlTmluamFpICgyMDE3LzA3KSBAZnJvbCAoMjAxNy8wNykgQGNsaWZmYW5vICgyMDE3LzA3KSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKfCBPYmpDICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8CnwgT0NhbWwgICAgICAgICAgICAgICAgIHwgQGNnZW5zb3VsICgyMDE5LzA4KSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAp8IFBlcmwgICAgICAgICAgICAgICAgICB8IEB3aW5nMzI4ICgyMDE3LzA3KSBbOmhlYXJ0Ol0oaHR0cHM6Ly93d3cucGF0cmVvbi5jb20vd2luZzMyOCkgQHl1ZTk5NDQ4ODIgKDIwMTkvMDYpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKfCBQSFAgICAgICAgICAgICAgICAgICAgfCBAamViZW50aWVyICgyMDE3LzA3KSwgQGRrYXJsb3ZpICgyMDE3LzA3KSwgQG1hbmRyZWFuICgyMDE3LzA4KSwgQGpmYXN0bmFjaHQgKDIwMTcvMDkpLCBbQHliZWxlbmtvXShodHRwczovL2dpdGh1Yi5jb20veWJlbGVua28pICgyMDE4LzA3KSwgQHJlbmVwYXJkb24gKDIwMTgvMTIpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8CnwgUG93ZXJTaGVsbCAgICAgICAgICAgIHwgQHdpbmczMjggKDIwMjAvMDUpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAp8IFB5dGhvbiAgICAgICAgICAgICAgICB8IEBjYm9ybmV0ICgyMDE3LzA5KSBAdG9tcGx1cyAoMjAxOC8xMCkgQGtyamFrYnJqYWsgKDIwMjMvMDIpIEBmYTAzMTEgKDIwMjMvMTApIEBtdWx0YW5pICgyMDIzLzEwKSB8CnwgUiAgICAgICAgICAgICAgICAgICAgIHwgQFJhbWFudGggKDIwMTkvMDcpIEBzYWlnaXJpZGhhcjIxICgyMDE5LzA3KSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAp8IFJ1YnkgICAgICAgICAgICAgICAgICB8IEBjbGlmZmFubyAoMjAxNy8wNykgQHpseCAoMjAxNy8wOSkgQGF1dG9wcCAoMjAxOS8wMikgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKfCBSdXN0ICAgICAgICAgICAgICAgICAgfCBAZnJvbCAoMjAxNy8wNykgQGZhcmNhbGxlciAoMjAxNy8wOCkgQHJpY2hhcmR3aGl1ayAoMjAxOS8wNykgQHBhbGFkaW56aCAoMjAyMC8wNSkgQGphY29iLXBybyAoMjAyMi8xMCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8CnwgU2NhbGEgICAgICAgICAgICAgICAgIHwgQGNsYXNuYWtlICgyMDE3LzA3KSwgQHNoaWppbmt1aSAgKDIwMTgvMDEpLCBAcmFtemltYWFsZWogKDIwMTgvMDMpLCBAY2hhbWVsZW9uODIgKDIwMjAvMDMpLCBAQm91aWxsaWUgKDIwMjAvMDQpIEBmaXNoODYgKDIwMjMvMDYpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAp8IFN3aWZ0ICAgICAgICAgICAgICAgICB8IEBqZ2F2cmlzICgyMDE3LzA3KSBAZWh5Y2hlICgyMDE3LzA4KSBARWR1Yml0cyAoMjAxNy8wOSkgQGphei1haCAoMjAxNy8wOSkgQDRicnVudSAoMjAxOS8xMSkgQGR5ZHVzMHgxNCAoMjAyMy8wNikgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKfCBUeXBlU2NyaXB0ICAgICAgICAgICAgfCBAVGlGdSAoMjAxNy8wNykgQHRheHBvbiAoMjAxNy8wNykgQHNlYmFzdGlhbmhhYXMgKDIwMTcvMDcpIEBrZW5pc3Rld2FyZCAoMjAxNy8wNykgQFZyb2xpamt4ICgyMDE3LzA5KSBAbWFjam9obm55ICgyMDE4LzAxKSBAdG9wY2UgKDIwMTgvMTApIEBha2VoaXIgKDIwMTkvMDcpIEBwZXRlam9oYW5zb254byAoMjAxOS8xMSkgQGFtYWtocm92ICgyMDIwLzAyKSBAZGF2aWRnYW1lcm8gKDIwMjIvMDMpIEBta3VzYWthICgyMDIyLzA0KSB8CnwgWG9qbyAgICAgICAgICAgICAgICAgIHwgQFRvcGhlZWUgKDIwMjMvMDQpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAoKClBhc3QgTWVtYmVycyBvZiBUZWNobmljYWwgQ29tbWl0dGVlOgp8IExhbmd1YWdlcy9HZW5lcmF0b3JzICAgICAgICAgfCBNZW1iZXIgKGpvaW4gZGF0ZSkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAp8IDotLS0tLS0tLS0tLS0tLS0tIHwgOi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIHwKfCBQeXRob24gICAgICAgICAgICB8IEB0YXhwb24gKDIwMTcvMDcpIEBmcm9sICgyMDE3LzA3KSBAbWJvaGxvb2wgKDIwMTcvMDcpIEBjYm9ybmV0ICgyMDE3LzA5KSBAa2Vuam9uZXMtY2lzY28gKDIwMTcvMTEpIEB0b21wbHVzICgyMDE4LzEwKSBAYXJ1bi1uYWxsYSAoMjAxOS8xMSkgIHwKCgo6aGVhcnQ6ID0gTGluayB0byBzdXBwb3J0IHRoZSBjb250cmlidXRvciBkaXJlY3RseQoKIyMjIFs2LjMgLSBIaXN0b3J5IG9mIE9wZW5BUEkgR2VuZXJhdG9yXSgjdGFibGUtb2YtY29udGVudHMpCgpPcGVuQVBJIEdlbmVyYXRvciBpcyBhIGZvcmsgb2YgW1N3YWdnZXIgQ29kZWdlbl0oaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbikuIEluIHZpZXcgb2YgdGhlIGlzc3VlcyB3aXRoIHRoZSBTd2FnZ2VyIENvZGVnZW4gMy4wLjAgKGJldGEpIHJlbGVhc2UgYW5kIHRoZSBkaXNhZ3JlZW1lbnQgb24gdGhlIHByb2plY3QncyBkaXJlY3Rpb24sIG1vcmUgdGhhbiA0MCB0b3AgY29udHJpYnV0b3JzIGFuZCB0ZW1wbGF0ZSBjcmVhdG9ycyBvZiBTd2FnZ2VyIENvZGVnZW4gZGVjaWRlZCB0byBmb3JrIFN3YWdnZXIgQ29kZWdlbiBhbmQgbWFpbnRhaW4gYSBjb21tdW5pdHktZHJpdmVuIHZlcnNpb24gY2FsbGVkICJPcGVuQVBJIEdlbmVyYXRvciIuIFBsZWFzZSByZWZlciB0byB0aGUgW1EmQV0oZG9jcy9xbmEubWQpIGZvciBtb3JlIGluZm9ybWF0aW9uLgoKIyMjIyBGb3VuZGluZyBNZW1iZXJzIChhbHBoYWJldGljYWwgb3JkZXIpOgoKLSBbQWtpaGl0byBOYWthbm9dKGh0dHBzOi8vZ2l0aHViLmNvbS9hY2tpbnRvc2gpCi0gW0FydGVtIE9jaGVyZWRrb10oaHR0cHM6Ly9naXRodWIuY29tL2dhbGF4aWUpCi0gW0FydGh1ciBNb2dsaWV2XShodHRwczovL2dpdGh1Yi5jb20vQXJ0aWN1cykKLSBbQmFydGVrIEtyeXphXShodHRwczovL2dpdGh1Yi5jb20vYmtyeXphKQotIFtCZW4gV2VsbHNdKGh0dHBzOi8vZ2l0aHViLmNvbS9idndlbGxzKQotIFtCZW5qYW1pbiBHaWxsXShodHRwczovL2dpdGh1Yi5jb20vYmpnaWxsKQotIFtDaHJpc3RvcGhlIEJvcm5ldF0oaHR0cHM6Ly9naXRodWIuY29tL2Nib3JuZXQpCi0gW0NsaWZmYW5vIFN1YmFnaW9dKGh0dHBzOi8vZ2l0aHViLmNvbS9jbGlmZmFubykKLSBbRGFpa2kgTWF0c3VkYXRlXShodHRwczovL2dpdGh1Yi5jb20vZC1kYXRlKQotIFtEYW5pZWxdKGh0dHBzOi8vZ2l0aHViLmNvbS9EYW5pZWxrdTE1KQotIFtFbWlsaWFubyBCb25hc3NpXShodHRwczovL2dpdGh1Yi5jb20vZW1pbGlhbm9ib25hc3NpKQotIFtFcmlrIFRpbW1lcnNdKGh0dHBzOi8vZ2l0aHViLmNvbS9lcmlrdGltKQotIFtFc3RlYmFuIEdlaHJpbmddKGh0dHBzOi8vZ2l0aHViLmNvbS9tYWNqb2hubnkpCi0gW0d1c3Rhdm8gUGF6XShodHRwczovL2dpdGh1Yi5jb20vZ3VzdGF2b2FwYXopCi0gW0phdmllciBWZWxpbGxhXShodHRwczovL2dpdGh1Yi5jb20vanZlbGlsbGEpCi0gW0plYW4tRnJhbsOnb2lzIEPDtHTDqV0oaHR0cHM6Ly9naXRodWIuY29tL0pGQ290ZSkKLSBbSmltIFNjaHViZXJ0XShodHRwczovL2dpdGh1Yi5jb20vamltc2NodWJlcnQpCi0gW0pvbiBTY2hvbmluZ10oaHR0cHM6Ly9naXRodWIuY29tL2pvbnNjaG9uaW5nKQotIFtKw6lyw6ltaWUgQnJlc3Nvbl0oaHR0cHM6Ly9naXRodWIuY29tL2ptaW5pKSBbOmhlYXJ0Ol0oaHR0cHM6Ly93d3cucGF0cmVvbi5jb20vam1pbmkpCi0gW0rDtnJuIEFocmVuc10oaHR0cHM6Ly9naXRodWIuY29tL2pheWVhcm4pCi0gW0tlbmkgU3Rld2FyZF0oaHR0cHM6Ly9naXRodWIuY29tL2tlbmlzdGV3YXJkKQotIFtNYXJjaW4gU3RlZmFuaXVrXShodHRwczovL2dpdGh1Yi5jb20vbXN0ZWZhbml1aykKLSBbTWFydGluIERlbGlsbGVdKGh0dHBzOi8vZ2l0aHViLmNvbS9NYXJ0aW5EZWxpbGxlKQotIFtNYXNhaGlybyBZYW1hdWNoaV0oaHR0cHM6Ly9naXRodWIuY29tL2FsZ2FzKQotIFtNaWNoZWxlIEFsYmFub10oaHR0cHM6Ly9naXRodWIuY29tL21pY2hlbGVhbGJhbm8pCi0gW1JhbXppIE1hYWxlal0oaHR0cHM6Ly9naXRodWIuY29tL3JhbXppbWFhbGVqKQotIFtSYXZpbmRyYSBOaWthbV0oaHR0cHM6Ly9naXRodWIuY29tL3JhdmluaWthbSkKLSBbUmljYXJkbyBDYXJkb25hXShodHRwczovL2dpdGh1Yi5jb20vcmljYXJkb25hKQotIFtTZWJhc3RpYW4gSGFhc10oaHR0cHM6Ly9naXRodWIuY29tL3NlYmFzdGlhbmhhYXMpCi0gW1NlYmFzdGlhbiBNYW5kcmVhbl0oaHR0cHM6Ly9naXRodWIuY29tL21hbmRyZWFuKQotIFtTcmVlbmlkaGkgU3JlZXNoYV0oaHR0cHM6Ly9naXRodWIuY29tL3NyZWVzaGFzKQotIFtTdGVmYW4gS3Jpc21hbm5dKGh0dHBzOi8vZ2l0aHViLmNvbS9zdGtyd29yaykKLSBbU3RlcGhhbmUgQ2FycmV6XShodHRwczovL2dpdGh1Yi5jb20vc3RjYXJyZXopCi0gW1Rha3VybyBXYWRhXShodHRwczovL2dpdGh1Yi5jb20vdGF4cG9uKQotIFtUb21hc3ogUHJ1c10oaHR0cHM6Ly9naXRodWIuY29tL3RvbXBsdXMpCi0gW1RyaXN0YW4gU2xvdWdodGVyXShodHRwczovL2dpdGh1Yi5jb20vdHNsb3VnaHRlcikKLSBbVmljdG9yIE9ybG92c2t5XShodHRwczovL2dpdGh1Yi5jb20vdmljbG92c2t5KQotIFtWaWN0b3IgVHJha2h0ZW5iZXJnXShodHRwczovL2dpdGh1Yi5jb20vdmljdG9yZ2l0KQotIFtWbGFkIEZyb2xvdl0oaHR0cHM6Ly9naXRodWIuY29tL2Zyb2wpCi0gW1ZsYWRpbWlyIFBvdXphbm92XShodHRwczovL2dpdGh1Yi5jb20vZmFyY2FsbGVyKQotIFtXaWxsaWFtIENoZW5nXShodHRwczovL2dpdGh1Yi5jb20vd2luZzMyOCkKLSBbWGluIE1lbmddKGh0dHBzOi8vZ2l0aHViLmNvbS94bWVuZzEpIFs6aGVhcnQ6XShodHRwczovL3d3dy5wYXRyZW9uLmNvbS91c2VyL292ZXJ2aWV3P3U9MTY0MzUzODUpCi0gW1h1IEh1aSBIdWldKGh0dHBzOi8vZ2l0aHViLmNvbS94aGgpCi0gW2FudGloYXhdKGh0dHBzOi8vZ2l0aHViLmNvbS9hbnRpaGF4KQotIFtiZWF0Y3JhY2tlcl0oaHR0cHM6Ly9naXRodWIuY29tL2JlYXRjcmFja2VyKQotIFtkYXVybmltYXRvcl0oaHR0cHM6L2dpdGh1Yi5jb20vZGF1cm5pbWF0b3IpCi0gW2V0aGVyZWFsam95XShodHRwczovL2dpdGh1Yi5jb20vZXRoZXJlYWxqb3kpCi0gW2pmaWFsYV0oaHR0cHM6Ly9naXRodWIuY29tL2pmaWFsYSkKLSBbbHVrb3lhbm92XShodHRwczovL2dpdGh1Yi5jb20vbHVrb3lhbm92KQoKOmhlYXJ0OiA9IExpbmsgdG8gc3VwcG9ydCB0aGUgY29udHJpYnV0b3IgZGlyZWN0bHkKCiMjIFs3IC0gTGljZW5zZV0oI3RhYmxlLW9mLWNvbnRlbnRzKQotLS0tLS0tCgpDb3B5cmlnaHQgMjAxOCBPcGVuQVBJLUdlbmVyYXRvciBDb250cmlidXRvcnMgKGh0dHBzOi8vb3BlbmFwaS1nZW5lcmF0b3IudGVjaCkKQ29weXJpZ2h0IDIwMTggU21hcnRCZWFyIFNvZnR3YXJlCgpMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgpZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQgW2FwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBdKGh0dHBzOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjApCgpVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCmRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCldJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgpTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCmxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgoKLS0tCg== - readmeEtag: '"52477078b7f331d2b7dd4178b544138347dc3575"' - readmeLastModified: Fri, 16 Aug 2024 10:04:47 GMT + PGgxIGFsaWduPSJjZW50ZXIiPk9wZW5BUEkgR2VuZXJhdG9yPC9oMT4KCgo8ZGl2IGFsaWduPSJjZW50ZXIiPgoKWyFbU3RhYmxlIHJlbGVhc2VzIGluIE1hdmVuIENlbnRyYWxdKGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vbWF2ZW4tbWV0YWRhdGEvdi9odHRwcy9yZXBvMS5tYXZlbi5vcmcvbWF2ZW4yL29yZy9vcGVuYXBpdG9vbHMvb3BlbmFwaS1nZW5lcmF0b3IvbWF2ZW4tbWV0YWRhdGEueG1sLnN2ZyldKGh0dHA6Ly9zZWFyY2gubWF2ZW4ub3JnLyNzZWFyY2glN0NnYXYlN0MxJTdDZyUzQSUyMm9yZy5vcGVuYXBpdG9vbHMlMjIlMjBBTkQlMjBhJTNBJTIyb3BlbmFwaS1nZW5lcmF0b3IlMjIpClshW0FwYWNoZSAyLjAgTGljZW5zZV0oaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9iYWRnZS9MaWNlbnNlLUFwYWNoZSUyMDIuMC1vcmFuZ2UpXSguL0xJQ0VOU0UpClshW09wZW4gQ29sbGVjdGl2ZSBiYWNrZXJzXShodHRwczovL2ltZy5zaGllbGRzLmlvL29wZW5jb2xsZWN0aXZlL2JhY2tlcnMvb3BlbmFwaV9nZW5lcmF0b3I/Y29sb3I9b3JhbmdlJmxhYmVsPU9wZW5Db2xsZWN0aXZlJTIwQmFja2VycyldKGh0dHBzOi8vb3BlbmNvbGxlY3RpdmUuY29tL29wZW5hcGlfZ2VuZXJhdG9yKQpbIVtKb2luIHRoZSBTbGFjayBjaGF0IHJvb21dKGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vYmFkZ2UvU2xhY2stSm9pbiUyMHRoZSUyMGNoYXQlMjByb29tLW9yYW5nZSldKGh0dHBzOi8vam9pbi5zbGFjay5jb20vdC9vcGVuYXBpLWdlbmVyYXRvci9zaGFyZWRfaW52aXRlL3p0LTEyanh4ZDdwMi1YVWVRTX40cHpzVTl4fmVHTFFxWDJnKQpbIVtGb2xsb3cgT3BlbkFQSSBHZW5lcmF0b3IgVHdpdHRlciBhY2NvdW50IHRvIGdldCB0aGUgbGF0ZXN0IHVwZGF0ZV0oaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby90d2l0dGVyL2ZvbGxvdy9vYXNfZ2VuZXJhdG9yLnN2Zz9zdHlsZT1zb2NpYWwmbGFiZWw9Rm9sbG93KV0oaHR0cHM6Ly90d2l0dGVyLmNvbS9vYXNfZ2VuZXJhdG9yKQpbIVtDb250cmlidXRlIHdpdGggR2l0cG9kXShodHRwczovL2ltZy5zaGllbGRzLmlvL2JhZGdlL0NvbnRyaWJ1dGUlMjB3aXRoLUdpdHBvZC05MDhhODU/bG9nbz1naXRwb2QpXShodHRwczovL2dpdHBvZC5pby8jaHR0cHM6Ly9naXRodWIuY29tL09wZW5BUElUb29scy9vcGVuYXBpLWdlbmVyYXRvcikKWyFbQ29uYW4gQ2VudGVyXShodHRwczovL3NoaWVsZHMuaW8vY29uYW4vdi9vcGVuYXBpLWdlbmVyYXRvcildKGh0dHBzOi8vY29uYW4uaW8vY2VudGVyL3JlY2lwZXMvb3BlbmFwaS1nZW5lcmF0b3IpClshW1JldnZlZCB1cCBieSBEZXZlbG9jaXR5XShodHRwczovL2ltZy5zaGllbGRzLmlvL2JhZGdlL1JldnZlZCUyMHVwJTIwYnktRGV2ZWxvY2l0eS0wNkEwQ0U/bG9nbz1HcmFkbGUmbGFiZWxDb2xvcj0wMjMwM0EpXShodHRwczovL2dlLm9wZW5hcGktZ2VuZXJhdG9yLnRlY2gvc2NhbnMpCjwvZGl2PgoKPGRpdiBhbGlnbj0iY2VudGVyIj4KCltNYXN0ZXJdKGh0dHBzOi8vZ2l0aHViLmNvbS9PcGVuQVBJVG9vbHMvb3BlbmFwaS1nZW5lcmF0b3IvdHJlZS9tYXN0ZXIpIChgNy45LjBgKToKWyFbQnVpbGQgU3RhdHVzXShodHRwczovL2FwaS50cmF2aXMtY2kuY29tL09wZW5BUElUb29scy9vcGVuYXBpLWdlbmVyYXRvci5zdmc/YnJhbmNoPW1hc3RlciZzdGF0dXM9cGFzc2VkKV0oaHR0cHM6Ly9hcHAudHJhdmlzLWNpLmNvbS9naXRodWIvT3BlbkFQSVRvb2xzL29wZW5hcGktZ2VuZXJhdG9yL2J1aWxkcykKWyFbSW50ZWdyYXRpb24gVGVzdDJdKGh0dHBzOi8vY2lyY2xlY2kuY29tL2doL09wZW5BUElUb29scy9vcGVuYXBpLWdlbmVyYXRvci5zdmc/c3R5bGU9c2hpZWxkKV0oaHR0cHM6Ly9jaXJjbGVjaS5jb20vZ2gvT3BlbkFQSVRvb2xzL29wZW5hcGktZ2VuZXJhdG9yKQpbIVtXaW5kb3dzIFRlc3RdKGh0dHBzOi8vY2kuYXBwdmV5b3IuY29tL2FwaS9wcm9qZWN0cy9zdGF0dXMvZ2l0aHViL29wZW5hcGl0b29scy9vcGVuYXBpLWdlbmVyYXRvcj9icmFuY2g9bWFzdGVyJnN2Zz10cnVlJnBhc3NpbmdUZXh0PVdpbmRvd3MlMjBUZXN0JTIwLSUyME9LJmZhaWxpbmdUZXh0PVdpbmRvd3MlMjBUZXN0JTIwLSUyMEZhaWxzKV0oaHR0cHM6Ly9jaS5hcHB2ZXlvci5jb20vcHJvamVjdC9XaWxsaWFtQ2hlbmcvb3BlbmFwaS1nZW5lcmF0b3IpClshW0JpdHJpc2VdKGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vYml0cmlzZS80YTJiMTBhODE5ZDEyYjY3L21hc3Rlcj9sYWJlbD1iaXRyaXNlJTNBJTIwU3dpZnQrNCw1JnRva2VuPTg1OUZNRFI4UUh3YWJDend2Wks2dlEpXShodHRwczovL2FwcC5iaXRyaXNlLmlvL2FwcC80YTJiMTBhODE5ZDEyYjY3KQoKPC9kaXY+Cgo8ZGl2IGFsaWduPSJjZW50ZXIiPgoKOnN0YXI6OnN0YXI6OnN0YXI6IElmIHlvdSB3b3VsZCBsaWtlIHRvIGNvbnRyaWJ1dGUsIHBsZWFzZSByZWZlciB0byBbZ3VpZGVsaW5lc10oQ09OVFJJQlVUSU5HLm1kKSBhbmQgYSBsaXN0IG9mIFtvcGVuIHRhc2tzXShodHRwczovL2dpdGh1Yi5jb20vb3BlbmFwaXRvb2xzL29wZW5hcGktZ2VuZXJhdG9yL2lzc3Vlcz9xPWlzJTNBb3BlbitpcyUzQWlzc3VlK2xhYmVsJTNBJTIyaGVscCt3YW50ZWQlMjIpLiA6c3Rhcjo6c3Rhcjo6c3RhcjoKCjpiYW5nYmFuZzogVG8gbWlncmF0ZSBmcm9tIFN3YWdnZXIgQ29kZWdlbiB0byBPcGVuQVBJIEdlbmVyYXRvciwgcGxlYXNlIHJlZmVyIHRvIHRoZSBbbWlncmF0aW9uIGd1aWRlXShkb2NzL21pZ3JhdGlvbi1mcm9tLXN3YWdnZXItY29kZWdlbi5tZCkgOmJhbmdiYW5nOgoKOm5vdGVib29rX3dpdGhfZGVjb3JhdGl2ZV9jb3ZlcjogRm9yIG1vcmUgaW5mb3JtYXRpb24sIHBsZWFzZSByZWZlciB0byB0aGUgW1dpa2kgcGFnZV0oaHR0cHM6Ly9naXRodWIuY29tL29wZW5hcGl0b29scy9vcGVuYXBpLWdlbmVyYXRvci93aWtpKSBhbmQgW0ZBUV0oaHR0cHM6Ly9naXRodWIuY29tL29wZW5hcGl0b29scy9vcGVuYXBpLWdlbmVyYXRvci93aWtpL0ZBUSkgOm5vdGVib29rX3dpdGhfZGVjb3JhdGl2ZV9jb3ZlcjoKCjpub3RlYm9va193aXRoX2RlY29yYXRpdmVfY292ZXI6IFRoZSBlQm9vayBbQSBCZWdpbm5lcidzIEd1aWRlIHRvIENvZGUgR2VuZXJhdGlvbiBmb3IgUkVTVCBBUElzXShodHRwczovL2d1bS5jby9vcGVuYXBpX2dlbmVyYXRvcl9lYm9vaykgaXMgYSBnb29kIHN0YXJ0aW5nIHBvaW50IGZvciBiZWdpbm5lcnMgOm5vdGVib29rX3dpdGhfZGVjb3JhdGl2ZV9jb3ZlcjoKCjp3YXJuaW5nOiBJZiB0aGUgT3BlbkFQSSBzcGVjLCB0ZW1wbGF0ZXMgb3IgYW55IGlucHV0IChlLmcuIG9wdGlvbnMsIGVudmlyb25tZW50IHZhcmlhYmxlcykgaXMgb2J0YWluZWQgZnJvbSBhbiB1bnRydXN0ZWQgc291cmNlIG9yIGVudmlyb25tZW50LCBwbGVhc2UgbWFrZSBzdXJlIHlvdSd2ZSByZXZpZXdlZCB0aGVzZSBpbnB1dHMgYmVmb3JlIHVzaW5nIE9wZW5BUEkgR2VuZXJhdG9yIHRvIGdlbmVyYXRlIHRoZSBBUEkgY2xpZW50LCBzZXJ2ZXIgc3R1YiBvciBkb2N1bWVudGF0aW9uIHRvIGF2b2lkIHBvdGVudGlhbCBzZWN1cml0eSBpc3N1ZXMgKGUuZy4gW2NvZGUgaW5qZWN0aW9uXShodHRwczovL2VuLndpa2lwZWRpYS5vcmcvd2lraS9Db2RlX2luamVjdGlvbikpLiBGb3Igc2VjdXJpdHkgdnVsbmVyYWJpbGl0aWVzLCBwbGVhc2UgY29udGFjdCBbdGVhbUBvcGVuYXBpdG9vbHMub3JnXShtYWlsdG86dGVhbUBvcGVuYXBpdG9vbHMub3JnKS4gOndhcm5pbmc6Cgo6YmFuZ2Jhbmc6IEJvdGggIk9wZW5BUEkgVG9vbHMiIChodHRwczovL09wZW5BUElUb29scy5vcmcgLSB0aGUgcGFyZW50IG9yZ2FuaXphdGlvbiBvZiBPcGVuQVBJIEdlbmVyYXRvcikgYW5kICJPcGVuQVBJIEdlbmVyYXRvciIgYXJlIG5vdCBhZmZpbGlhdGVkIHdpdGggT3BlbkFQSSBJbml0aWF0aXZlIChPQUkpIDpiYW5nYmFuZzoKCjwvZGl2PgoKIyMgU3BvbnNvcnMKCklmIHlvdSBmaW5kIE9wZW5BUEkgR2VuZXJhdG9yIHVzZWZ1bCBmb3Igd29yaywgcGxlYXNlIGNvbnNpZGVyIGFza2luZyB5b3VyIGNvbXBhbnkgdG8gc3VwcG9ydCB0aGlzIE9wZW4gU291cmNlIHByb2plY3QgYnkgW2JlY29taW5nIGEgc3BvbnNvcl0oaHR0cHM6Ly9vcGVuY29sbGVjdGl2ZS5jb20vb3BlbmFwaV9nZW5lcmF0b3IpLiBZb3UgY2FuIGFsc28gaW5kaXZpZHVhbGx5IHNwb25zb3IgdGhlIHByb2plY3QgYnkgW2JlY29taW5nIGEgYmFja2VyXShodHRwczovL29wZW5jb2xsZWN0aXZlLmNvbS9vcGVuYXBpX2dlbmVyYXRvcikuCgojIyMjIFRoYW5rIHlvdSB0byBvdXIgYnJvbnplIHNwb25zb3JzIQoKWyFbTmFtU29yXShodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gvaW1nL2NvbXBhbmllcy9uYW1zb3IucG5nKV0oaHR0cHM6Ly93d3cubmFtc29yLmNvbS8/dXRtX3NvdXJjZT1vcGVuYXBpX2dlbmVyYXRvciZ1dG1fbWVkaXVtPWdpdGh1Yl93ZWJwYWdlJnV0bV9jYW1wYWlnbj1zcG9uc29yKQpbIVtMaWdodEJvd10oaHR0cHM6Ly9vcGVuYXBpLWdlbmVyYXRvci50ZWNoL2ltZy9jb21wYW5pZXMvbGlnaHRib3cucG5nKV0oaHR0cHM6Ly93d3cubGlnaHRib3cubmV0Lz91dG1fc291cmNlPW9wZW5hcGlfZ2VuZXJhdG9yJnV0bV9tZWRpdW09Z2l0aHViX3dlYnBhZ2UmdXRtX2NhbXBhaWduPXNwb25zb3IpCls8aW1nIHNyYz0iaHR0cHM6Ly9vcGVuYXBpLWdlbmVyYXRvci50ZWNoL2ltZy9jb21wYW5pZXMvZG9jc3ByaW5nLnBuZyIgd2lkdGg9IjEyOCIgaGVpZ2h0PSIxMjgiPl0oaHR0cHM6Ly9kb2NzcHJpbmcuY29tLz91dG1fc291cmNlPW9wZW5hcGlfZ2VuZXJhdG9yJnV0bV9tZWRpdW09Z2l0aHViX3dlYnBhZ2UmdXRtX2NhbXBhaWduPXNwb25zb3IpCls8aW1nIHNyYz0iaHR0cHM6Ly9vcGVuYXBpLWdlbmVyYXRvci50ZWNoL2ltZy9jb21wYW5pZXMvZGF0YWRvZy5wbmciIHdpZHRoPSIxMjgiIGhlaWdodD0iMTI4Ij5dKGh0dHBzOi8vZGF0YWRvZ2hxLmNvbS8/dXRtX3NvdXJjZT1vcGVuYXBpX2dlbmVyYXRvciZ1dG1fbWVkaXVtPWdpdGh1Yl93ZWJwYWdlJnV0bV9jYW1wYWlnbj1zcG9uc29yKQpbPGltZyBzcmM9Imh0dHBzOi8vb3BlbmFwaS1nZW5lcmF0b3IudGVjaC9pbWcvY29tcGFuaWVzL3RoYWxlcy5qcGciIHdpZHRoPSIxMjgiIGhlaWdodD0iMTI4Ij5dKGh0dHBzOi8vY3BsLnRoYWxlc2dyb3VwLmNvbS8/dXRtX3NvdXJjZT1vcGVuYXBpX2dlbmVyYXRvciZ1dG1fbWVkaXVtPWdpdGh1Yl93ZWJwYWdlJnV0bV9jYW1wYWlnbj1zcG9uc29yKQpbPGltZyBzcmM9Imh0dHBzOi8vb3BlbmFwaS1nZW5lcmF0b3IudGVjaC9pbWcvY29tcGFuaWVzL2FwaWRlY2suanBnIiB3aWR0aD0iMTI4IiBoZWlnaHQ9IjEyOCI+XShodHRwczovL3d3dy5hcGlkZWNrLmNvbS8/dXRtX3NvdXJjZT1vcGVuYXBpX2dlbmVyYXRvciZ1dG1fbWVkaXVtPWdpdGh1Yl93ZWJwYWdlJnV0bV9jYW1wYWlnbj1zcG9uc29yKQpbPGltZyBzcmM9Imh0dHBzOi8vb3BlbmFwaS1nZW5lcmF0b3IudGVjaC9pbWcvY29tcGFuaWVzL3BleGEucG5nIiB3aWR0aD0iMTI4IiBoZWlnaHQ9IjEyOCI+XShodHRwczovL3d3dy5wZXhhLmNvbS5hdS8/dXRtX3NvdXJjZT1vcGVuYXBpX2dlbmVyYXRvciZ1dG1fbWVkaXVtPWdpdGh1Yl93ZWJwYWdlJnV0bV9jYW1wYWlnbj1zcG9uc29yKQpbPGltZyBzcmM9Imh0dHBzOi8vb3BlbmFwaS1nZW5lcmF0b3IudGVjaC9pbWcvY29tcGFuaWVzL251bWFyeS5wbmciIHdpZHRoPSIxMjgiIGhlaWdodD0iMTI4Ij5dKGh0dHBzOi8vd3d3Lm51bWFyeS5jb20vP3V0bV9zb3VyY2U9b3BlbmFwaV9nZW5lcmF0b3ImdXRtX21lZGl1bT1naXRodWJfd2VicGFnZSZ1dG1fY2FtcGFpZ249c3BvbnNvcikKWzxpbWcgc3JjPSJodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gvaW1nL2NvbXBhbmllcy9vbmVzaWduYWwucG5nIiB3aWR0aD0iMTI4IiBoZWlnaHQ9IjEyOCI+XShodHRwczovL3d3dy5vbmVzaWduYWwuY29tLz91dG1fc291cmNlPW9wZW5hcGlfZ2VuZXJhdG9yJnV0bV9tZWRpdW09Z2l0aHViX3dlYnBhZ2UmdXRtX2NhbXBhaWduPXNwb25zb3IpCls8aW1nIHNyYz0iaHR0cHM6Ly9vcGVuYXBpLWdlbmVyYXRvci50ZWNoL2ltZy9jb21wYW5pZXMvdmlydHVhbGFuc29mdHdhcmUucG5nIiB3aWR0aD0iMTI4IiBoZWlnaHQ9IjEyOCI+XShodHRwczovL3d3dy52aXJ0dWFsYW5zb2Z0d2FyZS5jb20vP3V0bV9zb3VyY2U9b3BlbmFwaV9nZW5lcmF0b3ImdXRtX21lZGl1bT1naXRodWJfd2VicGFnZSZ1dG1fY2FtcGFpZ249c3BvbnNvcikKWzxpbWcgc3JjPSJodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gvaW1nL2NvbXBhbmllcy9tZXJnZWRldi5qcGVnIiB3aWR0aD0iMTI4IiBoZWlnaHQ9IjEyOCI+XShodHRwczovL3d3dy5tZXJnZS5kZXYvP3V0bV9zb3VyY2U9b3BlbmFwaV9nZW5lcmF0b3ImdXRtX21lZGl1bT1naXRodWJfd2VicGFnZSZ1dG1fY2FtcGFpZ249c3BvbnNvcikKWzxpbWcgc3JjPSJodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gvaW1nL2NvbXBhbmllcy9idXJrZXJ0LmpwZyIgd2lkdGg9IjEyOCIgaGVpZ2h0PSIxMjgiPl0oaHR0cHM6Ly93d3cuYnVya2VydC5jb20vP3V0bV9zb3VyY2U9b3BlbmFwaV9nZW5lcmF0b3ImdXRtX21lZGl1bT1naXRodWJfd2VicGFnZSZ1dG1fY2FtcGFpZ249c3BvbnNvcikKWzxpbWcgc3JjPSJodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gvaW1nL2NvbXBhbmllcy9maW5ib3VybmUucG5nIiB3aWR0aD0iMTI4IiBoZWlnaHQ9IjEyOCI+XShodHRwczovL3d3dy5maW5ib3VybmUuY29tLz91dG1fc291cmNlPW9wZW5hcGlfZ2VuZXJhdG9yJnV0bV9tZWRpdW09Z2l0aHViX3dlYnBhZ2UmdXRtX2NhbXBhaWduPXNwb25zb3IpCls8aW1nIHNyYz0iaHR0cHM6Ly9vcGVuYXBpLWdlbmVyYXRvci50ZWNoL2ltZy9jb21wYW5pZXMvYnVtcHNoLnBuZyIgd2lkdGg9IjEyOCIgaGVpZ2h0PSIxMjgiPl0oaHR0cHM6Ly9idW1wLnNoLz91dG1fc291cmNlPW9wZW5hcGlfZ2VuZXJhdG9yJnV0bV9tZWRpdW09Z2l0aHViX3dlYnBhZ2UmdXRtX2NhbXBhaWduPXNwb25zb3IpCls8aW1nIHNyYz0iaHR0cHM6Ly9vcGVuYXBpLWdlbmVyYXRvci50ZWNoL2ltZy9jb21wYW5pZXMvYmlsZXRvLnBuZyIgd2lkdGg9IjEyOCIgaGVpZ2h0PSIxMjgiPl0oaHR0cHM6Ly93d3cuYmlsZXRvLmNvbS8/dXRtX3NvdXJjZT1vcGVuYXBpX2dlbmVyYXRvciZ1dG1fbWVkaXVtPWdpdGh1Yl93ZWJwYWdlJnV0bV9jYW1wYWlnbj1zcG9uc29yKQpbPGltZyBzcmM9Imh0dHBzOi8vb3BlbmFwaS1nZW5lcmF0b3IudGVjaC9pbWcvY29tcGFuaWVzL2JhaXJlc2Rldi5wbmciIHdpZHRoPSIxMjgiIGhlaWdodD0iMTI4Ij5dKGh0dHBzOi8vd3d3LmJhaXJlc2Rldi5jb20vc3BvbnNvcmluZy1vcGVuLXNvdXJjZS1wcm9qZWN0cy8/dXRtX3NvdXJjZT1vcGVuYXBpX2dlbmVyYXRvciZ1dG1fbWVkaXVtPWdpdGh1Yl93ZWJwYWdlJnV0bV9jYW1wYWlnbj1zcG9uc29yKQpbPGltZyBzcmM9Imh0dHBzOi8vb3BlbmFwaS1nZW5lcmF0b3IudGVjaC9pbWcvY29tcGFuaWVzL2RtdGVjaC5qcGVnIiB3aWR0aD0iMTI4IiBoZWlnaHQ9IjEyOCI+XShodHRwczovL3d3dy5kbXRlY2guZGUvP3V0bV9zb3VyY2U9b3BlbmFwaV9nZW5lcmF0b3ImdXRtX21lZGl1bT1naXRodWJfd2VicGFnZSZ1dG1fY2FtcGFpZ249c3BvbnNvcikKWzxpbWcgc3JjPSJodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gvaW1nL2NvbXBhbmllcy9hZHllbi5wbmciIHdpZHRoPSIxMjgiIGhlaWdodD0iMTI4Ij5dKGh0dHBzOi8vYWR5ZW4uY29tLz91dG1fc291cmNlPW9wZW5hcGlfZ2VuZXJhdG9yJnV0bV9tZWRpdW09Z2l0aHViX3dlYnBhZ2UmdXRtX2NhbXBhaWduPXNwb25zb3IpCls8aW1nIHNyYz0iaHR0cHM6Ly9vcGVuYXBpLWdlbmVyYXRvci50ZWNoL2ltZy9jb21wYW5pZXMvZm9ybmV4LnBuZyIgd2lkdGg9IjEyOCIgaGVpZ2h0PSIxMjgiPl0oaHR0cHM6Ly9mb3JuZXguY29tLz91dG1fc291cmNlPW9wZW5hcGlfZ2VuZXJhdG9yJnV0bV9tZWRpdW09Z2l0aHViX3dlYnBhZ2UmdXRtX2NhbXBhaWduPXNwb25zb3IpCls8aW1nIHNyYz0iaHR0cHM6Ly9vcGVuYXBpLWdlbmVyYXRvci50ZWNoL2ltZy9jb21wYW5pZXMvYWxsb3lhdXRvbWF0aW9uLnBuZyIgd2lkdGg9IjEyOCIgaGVpZ2h0PSIxMjgiPl0oaHR0cHM6Ly9ydW5hbGxveS5jb20vc2lnbnVwP3V0bV9zb3VyY2U9Z2l0aHViJnV0bV9tZWRpdW09cmVmZXJyYWwmdXRtX2NhbXBhaWduPTE1MjRfb3BlbmFwaWdlbmVyYXRvcikKWzxpbWcgc3JjPSJodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gvaW1nL2NvbXBhbmllcy9zc3N0d2l0dGVyLnBuZyIgd2lkdGg9IjEyOCIgaGVpZ2h0PSIxMjgiPl0oaHR0cHM6Ly9zc3N0d2l0dGVyLmNvbS8/dXRtX3NvdXJjZT1naXRodWImdXRtX21lZGl1bT1yZWZlcnJhbCZ1dG1fY2FtcGFpZ249c3BvbnNvcikKWzxpbWcgc3JjPSJodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gvaW1nL2NvbXBhbmllcy9zdml4LnBuZyIgd2lkdGg9IjEyOCIgaGVpZ2h0PSIxMjgiPl0oaHR0cHM6Ly93d3cuc3ZpeC5jb20vP3V0bV9zb3VyY2U9b3BlbmFwaS1nZW5lcmF0b3ImdXRtX21lZGl1bT1zcG9uc29yc2hpcCZ1dG1fY2FtcGFpZ249b3NzLXNwb25zb3JzaGlwKQpbPGltZyBzcmM9Imh0dHBzOi8vb3BlbmFwaS1nZW5lcmF0b3IudGVjaC9pbWcvY29tcGFuaWVzL2xpdHNsaW5rLnBuZyIgd2lkdGg9IjEyOCIgaGVpZ2h0PSIxMjgiPl0oaHR0cHM6Ly9saXRzbGluay5jb20vc2VydmljZXMvYXJ0aWZpY2lhbC1pbnRlbGxpZ2VuY2U/dXRtX3NvdXJjZT1vcGVuYXBpLWdlbmVyYXRvciZ1dG1fbWVkaXVtPXNwb25zb3JzaGlwJnV0bV9jYW1wYWlnbj1vc3Mtc3BvbnNvcnNoaXApCls8aW1nIHNyYz0iaHR0cHM6Ly9vcGVuYXBpLWdlbmVyYXRvci50ZWNoL2ltZy9jb21wYW5pZXMvZGVzaWdubGkuanBnIiB3aWR0aD0iMTI4IiBoZWlnaHQ9IjEyOCI+XShodHRwczovL2Rlc2lnbmxpLmNvP3V0bV9zb3VyY2U9b3BlbmFwaS1nZW5lcmF0b3ImdXRtX21lZGl1bT1zcG9uc29yc2hpcCZ1dG1fY2FtcGFpZ249b3NzLXNwb25zb3JzaGlwKQpbPGltZyBzcmM9Imh0dHBzOi8vb3BlbmFwaS1nZW5lcmF0b3IudGVjaC9pbWcvY29tcGFuaWVzL2l0bS5wbmciIHdpZHRoPSIxMjgiIGhlaWdodD0iMTI4Ij5dKGh0dHBzOi8vb3BlbnNvdXJjZS5tdWVuY2hlbi5kZT91dG1fc291cmNlPW9wZW5hcGktZ2VuZXJhdG9yJnV0bV9tZWRpdW09c3BvbnNvcnNoaXAmdXRtX2NhbXBhaWduPW9zcy1zcG9uc29yc2hpcCkKWzxpbWcgc3JjPSJodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gvaW1nL2NvbXBhbmllcy9rb25nLnBuZyIgd2lkdGg9IjEyOCIgaGVpZ2h0PSIxMjgiPl0oaHR0cHM6Ly9rb25naHEuY29tL3Byb2R1Y3RzL2tvbmcta29ubmVjdD91dG1fbWVkaXVtPXJlZmVycmFsJnV0bV9zb3VyY2U9Z2l0aHViJnV0bV9jYW1wYWlnbj1wbGF0Zm9ybSZ1dG1fY29udGVudD1vcGVuYXBpLWdlbmVyYXRvcikKWzxpbWcgc3JjPSJodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gvaW1nL2NvbXBhbmllcy9yb3V0ZTRtZS5wbmciIHdpZHRoPSIxMjgiIGhlaWdodD0iMTI4Ij5dKGh0dHBzOi8vcm91dGU0bWUuY29tLz91dG1fc291cmNlPW9wZW5hcGktZ2VuZXJhdG9yJnV0bV9tZWRpdW09c3BvbnNvcnNoaXAmdXRtX2NhbXBhaWduPW9zcy1zcG9uc29yc2hpcCkKCiMjIyMgVGhhbmsgeW91IEdvRGFkZHkgZm9yIHNwb25zb3JpbmcgdGhlIGRvbWFpbiBuYW1lcywgTGlub2RlIGZvciBzcG9uc29yaW5nIHRoZSBWUFMsIENoZWNrbHkgZm9yIHNwb25zb3JpbmcgdGhlIEFQSSBtb25pdG9yaW5nIGFuZCBHcmFkbGUgZm9yIHNwb25zb3JpbmcgRGV2ZWxvY2l0eQoKWzxpbWcgc3JjPSJodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gvaW1nL2NvbXBhbmllcy9nb2RhZGR5LnBuZyIgd2lkdGg9IjE1MCI+XShodHRwczovL3d3dy5nb2RhZGR5LmNvbS8/dXRtX3NvdXJjZT1vcGVuYXBpX2dlbmVyYXRvciZ1dG1fbWVkaXVtPWdpdGh1Yl93ZWJwYWdlJnV0bV9jYW1wYWlnbj1zcG9uc29yKQpbIVtMaW5vZGVdKGh0dHBzOi8vd3d3Lmxpbm9kZS5jb20vbWVkaWEvaW1hZ2VzL2xvZ29zL3N0YW5kYXJkL2xpZ2h0L2xpbm9kZS1sb2dvX3N0YW5kYXJkX2xpZ2h0X3NtYWxsLnBuZyldKGh0dHBzOi8vd3d3Lmxpbm9kZS5jb20vP3V0bV9zb3VyY2U9b3BlbmFwaV9nZW5lcmF0b3ImdXRtX21lZGl1bT1naXRodWJfd2VicGFnZSZ1dG1fY2FtcGFpZ249c3BvbnNvcikKWzxpbWcgc3JjPSJodHRwczovL2VuY3J5cHRlZC10Ym4wLmdzdGF0aWMuY29tL2ltYWdlcz9xPXRibiUzQUFOZDlHY1JBaEVZYWRVeVpZekdVb3RaaVNkWGtWTXFxTEd1b2h5aXhMbDRlVXBVVjZwQWJVVUxMIiB3aWR0aD0iMTUwIj5dKGh0dHBzOi8vY2hlY2tseWhxLmNvbS8/dXRtX3NvdXJjZT1vcGVuYXBpX2dlbmVyYXRvciZ1dG1fbWVkaXVtPWdpdGh1Yl93ZWJwYWdlJnV0bV9jYW1wYWlnbj1zcG9uc29yKQpbPGltZyBzcmM9Imh0dHBzOi8vdXBsb2FkLndpa2ltZWRpYS5vcmcvd2lraXBlZGlhL2NvbW1vbnMvdGh1bWIvYy9jYi9HcmFkbGVfbG9nby5wbmcvMzIwcHgtR3JhZGxlX2xvZ28ucG5nIiB3aWR0aD0iMTUwIj5dKGh0dHBzOi8vZ3JhZGxlLm9yZz91dG1fc291cmNlPW9wZW5hcGlfZ2VuZXJhdG9yJnV0bV9tZWRpdW09Z2l0aHViX3dlYnBhZ2UmdXRtX2NhbXBhaWduPXNwb25zb3IpCgojIyBPdmVydmlldwoKT3BlbkFQSSBHZW5lcmF0b3IgYWxsb3dzIGdlbmVyYXRpb24gb2YgQVBJIGNsaWVudCBsaWJyYXJpZXMgKFNESyBnZW5lcmF0aW9uKSwgc2VydmVyIHN0dWJzLCAgZG9jdW1lbnRhdGlvbiBhbmQgY29uZmlndXJhdGlvbiBhdXRvbWF0aWNhbGx5IGdpdmVuIGFuIFtPcGVuQVBJIFNwZWNdKGh0dHBzOi8vZ2l0aHViLmNvbS9PQUkvT3BlbkFQSS1TcGVjaWZpY2F0aW9uKSAoYm90aCAyLjAgYW5kIDMuMCBhcmUgc3VwcG9ydGVkKS4gQ3VycmVudGx5LCB0aGUgZm9sbG93aW5nIGxhbmd1YWdlcy9mcmFtZXdvcmtzIGFyZSBzdXBwb3J0ZWQ6Cgp8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgTGFuZ3VhZ2VzL0ZyYW1ld29ya3MgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKfCAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSB8LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS18CnwgKipBUEkgY2xpZW50cyoqICAgICAgICAgICAgICAgICAgfCAqKkFjdGlvblNjcmlwdCoqLCAqKkFkYSoqLCAqKkFwZXgqKiwgKipCYXNoKiosICoqQyoqLCAqKkMjKiogKC5uZXQgMi4wLCAzLjUgb3IgbGF0ZXIsIC5ORVQgU3RhbmRhcmQgMS4zIC0gMi4xLCAuTkVUIENvcmUgMy4xLCAuTkVUIDUuMC4gTGlicmFyaWVzOiBSZXN0U2hhcnAsIEdlbmVyaWNIb3N0LCBIdHRwQ2xpZW50KSwgKipDKysqKiAoQXJkdWlubywgY3BwLXJlc3RzZGssIFF0NSwgVGl6ZW4sIFVucmVhbCBFbmdpbmUgNCksICoqQ2xvanVyZSoqLCAqKkNyeXN0YWwqKiwgKipEYXJ0KiosICoqRWxpeGlyKiosICoqRWxtKiosICoqRWlmZmVsKiosICoqRXJsYW5nKiosICoqR28qKiwgKipHcm9vdnkqKiwgKipIYXNrZWxsKiogKGh0dHAtY2xpZW50LCBTZXJ2YW50KSwgKipKYXZhKiogKEFwYWNoZSBIdHRwQ2xpZW50IDQueCwgQXBhY2hlIEh0dHBDbGllbnQgNS54LCBKZXJzZXkyLngsIE9rSHR0cCwgUmV0cm9maXQxLngsIFJldHJvZml0Mi54LCBGZWlnbiwgUmVzdFRlbXBsYXRlLCBSRVNURWFzeSwgVmVydHgsIEdvb2dsZSBBUEkgQ2xpZW50IExpYnJhcnkgZm9yIEphdmEsIFJlc3QtYXNzdXJlZCwgU3ByaW5nIDUgV2ViIENsaWVudCwgU3ByaW5nIDYgUmVzdENsaWVudCwgTWljcm9Qcm9maWxlIFJlc3QgQ2xpZW50LCBIZWxpZG9uKSwgKipKZXRicmFpbnMgSFRUUCBDbGllbnQqKiwgKipKdWxpYSoqLCAqKms2KiosICoqS290bGluKiosICoqTHVhKiosICoqTjRKUyoqLCAqKk5pbSoqLCAqKk5vZGUuanMvSmF2YVNjcmlwdCoqIChFUzUsIEVTNiwgQW5ndWxhckpTIHdpdGggR29vZ2xlIENsb3N1cmUgQ29tcGlsZXIgYW5ub3RhdGlvbnMsIEZsb3cgdHlwZXMsIEFwb2xsbyBHcmFwaFFMIERhdGFTdG9yZSksICoqT2JqZWN0aXZlLUMqKiwgKipPQ2FtbCoqLCAqKlBlcmwqKiwgKipQSFAqKiwgKipQb3dlclNoZWxsKiosICoqUHl0aG9uKiosICoqUioqLCAqKlJ1YnkqKiwgKipSdXN0KiogKGh5cGVyLCByZXF3ZXN0LCBydXN0LXNlcnZlciksICoqU2NhbGEqKiAoYWtrYSwgaHR0cDRzLCBzY2FsYXosIHN0dHAsIHN3YWdnZXItYXN5bmMtaHR0cGNsaWVudCwgcGVra28pLCAqKlN3aWZ0KiogKDIueCwgMy54LCA0LngsIDUueCksICoqVHlwZXNjcmlwdCoqIChBbmd1bGFySlMsIEFuZ3VsYXIgKDkueCAtIDE4LngpLCBBdXJlbGlhLCBBeGlvcywgRmV0Y2gsIEludmVyc2lmeSwgalF1ZXJ5LCBOZXN0anMsIE5vZGUsIHJlZHV4LXF1ZXJ5LCBSeGpzKSwgKipYb0pvKiosICoqWmFwaWVyKiogfAp8ICoqU2VydmVyIHN0dWJzKiogICAgICAgICAgICAgICAgIHwgKipBZGEqKiwgKipDIyoqIChBU1AuTkVUIENvcmUsIEF6dXJlIEZ1bmN0aW9ucyksICoqQysrKiogKFBpc3RhY2hlLCBSZXN0YmVkLCBRdDUgUUhUVFBFbmdpbmUpLCAqKkVybGFuZyoqLCAqKkYjKiogKEdpcmFmZmUpLCAqKkdvKiogKG5ldC9odHRwLCBHaW4sIEVjaG8pLCAqKkhhc2tlbGwqKiAoU2VydmFudCwgWWVzb2QpLCAqKkphdmEqKiAoTVNGNEosIFNwcmluZywgVW5kZXJ0b3csIEpBWC1SUzogQ0RJLCBDWEYsIEluZmxlY3RvciwgSmVyc2V5LCBSZXN0RWFzeSwgUGxheSBGcmFtZXdvcmssIFtQS01TVF0oaHR0cHM6Ly9naXRodWIuY29tL1Byb0thcm1hLUluYy9wa21zdC1nZXR0aW5nLXN0YXJ0ZWQtZXhhbXBsZXMpLCBbVmVydC54XShodHRwczovL3ZlcnR4LmlvLyksIFtBcGFjaGUgQ2FtZWxdKGh0dHBzOi8vY2FtZWwuYXBhY2hlLm9yZy8pLCBbSGVsaWRvbl0oaHR0cHM6Ly9oZWxpZG9uLmlvLykpLCAqKkp1bGlhKiosICoqS290bGluKiogKFNwcmluZyBCb290LCBbS3Rvcl0oaHR0cHM6Ly9naXRodWIuY29tL2t0b3Jpby9rdG9yKSwgW1ZlcnQueF0oaHR0cHM6Ly92ZXJ0eC5pby8pKSwgKipQSFAqKiAoW0ZsaWdodF0oaHR0cHM6Ly9kb2NzLmZsaWdodHBocC5jb20vKSwgTGFyYXZlbCwgTHVtZW4sIFtNZXp6aW8gKGZrYSBaZW5kIEV4cHJlc3NpdmUpXShodHRwczovL2dpdGh1Yi5jb20vbWV6emlvL21lenppbyksIFNsaW0sIFNpbGV4LCBbU3ltZm9ueV0oaHR0cHM6Ly9zeW1mb255LmNvbS8pKSwgKipQeXRob24qKiAoRmFzdEFQSSwgRmxhc2spLCAqKk5vZGVKUyoqLCAqKlJ1YnkqKiAoU2luYXRyYSwgUmFpbHM1KSwgKipSdXN0KiogKFtydXN0LXNlcnZlcl0oaHR0cHM6Ly9vcGVuYXBpLWdlbmVyYXRvci50ZWNoL2RvY3MvZ2VuZXJhdG9ycy9ydXN0LXNlcnZlci8pKSwgKipTY2FsYSoqIChBa2thLCBbRmluY2hdKGh0dHBzOi8vZ2l0aHViLmNvbS9maW5hZ2xlL2ZpbmNoKSwgW0xhZ29tXShodHRwczovL2dpdGh1Yi5jb20vbGFnb20vbGFnb20pLCBbUGxheV0oaHR0cHM6Ly93d3cucGxheWZyYW1ld29yay5jb20vKSwgW0Nhc2tdKGh0dHBzOi8vZ2l0aHViLmNvbS9jb20tbGloYW95aS9jYXNrKSwgU2NhbGF0cmEpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKfCAqKkFQSSBkb2N1bWVudGF0aW9uIGdlbmVyYXRvcnMqKiB8ICoqSFRNTCoqLCAqKkNvbmZsdWVuY2UgV2lraSoqLCAqKkFzY2lpZG9jKiosICoqTWFya2Rvd24qKiwgKipQbGFudFVNTCoqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8CnwgKipDb25maWd1cmF0aW9uIGZpbGVzKiogICAgICAgICAgfCBbKipBcGFjaGUyKipdKGh0dHBzOi8vaHR0cGQuYXBhY2hlLm9yZy8pICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAp8ICoqT3RoZXJzKiogICAgICAgICAgICAgICAgICAgICAgIHwgKipHcmFwaFFMKiosICoqSk1ldGVyKiosICoqS3Rvcm0qKiwgKipNeVNRTCBTY2hlbWEqKiwgKipQb3N0bWFuIENvbGxlY3Rpb24qKiwgKipQcm90b2NvbCBCdWZmZXIqKiwgKipXU0RMKiogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKCiMjIFRhYmxlIG9mIGNvbnRlbnRzCgogIC0gW09wZW5BUEkgR2VuZXJhdG9yXSgjb3BlbmFwaS1nZW5lcmF0b3IpCiAgLSBbT3ZlcnZpZXddKCNvdmVydmlldykKICAtIFtUYWJsZSBvZiBDb250ZW50c10oI3RhYmxlLW9mLWNvbnRlbnRzKQogIC0gWzEgLSBJbnN0YWxsYXRpb25dKCMxLS0taW5zdGFsbGF0aW9uKQogICAgLSBbMS4xIC0gQ29tcGF0aWJpbGl0eV0oIzExLS0tY29tcGF0aWJpbGl0eSkKICAgIC0gWzEuMiAtIEFydGlmYWN0cyBvbiBNYXZlbiBDZW50cmFsXSgjMTItLS1hcnRpZmFjdHMtb24tbWF2ZW4tY2VudHJhbCkKICAgIC0gWzEuMyAtIERvd25sb2FkIEpBUl0oIzEzLS0tZG93bmxvYWQtamFyKQogICAgLSBbMS40IC0gQnVpbGQgUHJvamVjdHNdKCMxNC0tLWJ1aWxkLXByb2plY3RzKQogICAgLSBbMS41IC0gSG9tZWJyZXddKCMxNS0tLWhvbWVicmV3KQogICAgLSBbMS42IC0gRG9ja2VyXSgjMTYtLS1kb2NrZXIpCiAgICAtIFsxLjcgLSBOUE1dKCMxNy0tLW5wbSkKICAtIFsyIC0gR2V0dGluZyBTdGFydGVkXSgjMi0tLWdldHRpbmctc3RhcnRlZCkKICAtIFszIC0gVXNhZ2VdKCMzLS0tdXNhZ2UpCiAgICAtIFszLjEgLSBDdXN0b21pemF0aW9uXSgjMzEtLS1jdXN0b21pemF0aW9uKQogICAgLSBbMy4yIC0gV29ya2Zsb3cgSW50ZWdyYXRpb25dKCMzMi0tLXdvcmtmbG93LWludGVncmF0aW9uLW1hdmVuLWdyYWRsZS1naXRodWItY2ljZCkKICAgIC0gWzMuMyAtIE9ubGluZSBHZW5lcmF0b3JzXSgjMzMtLS1vbmxpbmUtb3BlbmFwaS1nZW5lcmF0b3IpCiAgICAtIFszLjQgLSBMaWNlbnNlIEluZm9ybWF0aW9uIG9uIEdlbmVyYXRlZCBDb2RlXSgjMzQtLS1saWNlbnNlLWluZm9ybWF0aW9uLW9uLWdlbmVyYXRlZC1jb2RlKQogICAgLSBbMy41IC0gSURFIEludGVncmF0aW9uXSgjMzUtLS1pZGUtaW50ZWdyYXRpb24pCiAgLSBbNCAtIENvbXBhbmllcy9Qcm9qZWN0cyB1c2luZyBPcGVuQVBJIEdlbmVyYXRvcl0oIzQtLS1jb21wYW5pZXNwcm9qZWN0cy11c2luZy1vcGVuYXBpLWdlbmVyYXRvcikKICAtIFs1IC0gUHJlc2VudGF0aW9ucy9WaWRlb3MvVHV0b3JpYWxzL0Jvb2tzXSgjNS0tLXByZXNlbnRhdGlvbnN2aWRlb3N0dXRvcmlhbHNib29rcykKICAtIFs2IC0gQWJvdXQgVXNdKCM2LS0tYWJvdXQtdXMpCiAgICAtIFs2LjEgLSBPcGVuQVBJIEdlbmVyYXRvciBDb3JlIFRlYW1dKCM2MS0tLW9wZW5hcGktZ2VuZXJhdG9yLWNvcmUtdGVhbSkKICAgIC0gWzYuMiAtIE9wZW5BUEkgR2VuZXJhdG9yIFRlY2huaWNhbCBDb21taXR0ZWVdKCM2Mi0tLW9wZW5hcGktZ2VuZXJhdG9yLXRlY2huaWNhbC1jb21taXR0ZWUpCiAgICAtIFs2LjMgLSBIaXN0b3J5IG9mIE9wZW5BUEkgR2VuZXJhdG9yXSgjNjMtLS1oaXN0b3J5LW9mLW9wZW5hcGktZ2VuZXJhdG9yKQogIC0gWzcgLSBMaWNlbnNlXSgjNy0tLWxpY2Vuc2UpCgojIyBbMSAtIEluc3RhbGxhdGlvbl0oI3RhYmxlLW9mLWNvbnRlbnRzKQoKIyMjIFsxLjEgLSBDb21wYXRpYmlsaXR5XSgjdGFibGUtb2YtY29udGVudHMpCgpUaGUgT3BlbkFQSSBTcGVjaWZpY2F0aW9uIGhhcyB1bmRlcmdvbmUgMyByZXZpc2lvbnMgc2luY2UgaW5pdGlhbCBjcmVhdGlvbiBpbiAyMDEwLiAgVGhlIG9wZW5hcGktZ2VuZXJhdG9yIHByb2plY3QgaGFzIHRoZSBmb2xsb3dpbmcgY29tcGF0aWJpbGl0aWVzIHdpdGggdGhlIE9wZW5BUEkgU3BlY2lmaWNhdGlvbjoKCnwgT3BlbkFQSSBHZW5lcmF0b3IgVmVyc2lvbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgUmVsZWFzZSBEYXRlIHwgTm90ZXMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8CnwgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSB8CnwgNy45LjAgKHVwY29taW5nIG1pbm9yIHJlbGVhc2UpIFtTTkFQU0hPVF0oaHR0cHM6Ly9vc3Muc29uYXR5cGUub3JnL2NvbnRlbnQvcmVwb3NpdG9yaWVzL3NuYXBzaG90cy9vcmcvb3BlbmFwaXRvb2xzL29wZW5hcGktZ2VuZXJhdG9yLWNsaS83LjguMC1TTkFQU0hPVC8pIHwgMjMuMDkuMjAyNCAgIHwgTWlub3IgcmVsZWFzZSB3aXRoIGJyZWFraW5nIGNoYW5nZXMgKHdpdGggZmFsbGJhY2spIHwKfCBbNy44LjBdKGh0dHBzOi8vZ2l0aHViLmNvbS9PcGVuQVBJVG9vbHMvb3BlbmFwaS1nZW5lcmF0b3IvcmVsZWFzZXMvdGFnL3Y3LjguMCkgKGxhdGVzdCBzdGFibGUgcmVsZWFzZSkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAxOS4wOC4yMDI0ICAgfCBNaW5vciByZWxlYXNlIHdpdGggYnJlYWtpbmcgY2hhbmdlcyAod2l0aCBmYWxsYmFjaykgfAp8IFs2LjYuMF0oaHR0cHM6Ly9naXRodWIuY29tL09wZW5BUElUb29scy9vcGVuYXBpLWdlbmVyYXRvci9yZWxlYXNlcy90YWcvdjYuNi4wKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IDExLjA1LjIwMjMgICB8IE1pbm9yIHJlbGVhc2Ugd2l0aCBicmVha2luZyBjaGFuZ2VzICh3aXRoIGZhbGxiYWNrKSB8CnwgWzUuNC4wXShodHRwczovL2dpdGh1Yi5jb20vT3BlbkFQSVRvb2xzL29wZW5hcGktZ2VuZXJhdG9yL3JlbGVhc2VzL3RhZy92NS40LjApICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgMzEuMDEuMjAyMiAgIHwgTWlub3IgcmVsZWFzZSB3aXRoIGJyZWFraW5nIGNoYW5nZXMgKHdpdGggZmFsbGJhY2spIHwKfCBbNC4zLjFdKGh0dHBzOi8vZ2l0aHViLmNvbS9PcGVuQVBJVG9vbHMvb3BlbmFwaS1nZW5lcmF0b3IvcmVsZWFzZXMvdGFnL3Y0LjMuMSkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAwNi4wNS4yMDIwICAgfCBQYXRjaCByZWxlYXNlIChlbmhhbmNlbWVudHMsIGJ1ZyBmaXhlcywgZXRjKSAgICAgICAgICAgICAgICAgICAgICAgfAoKT3BlbkFQSSBTcGVjIGNvbXBhdGliaWxpdHk6IDEuMCwgMS4xLCAxLjIsIDIuMCwgMy4wLCAzLjEgKGJldGEgc3VwcG9ydCkKCihXZSBkbyBub3QgcHVibGlzaCBkYWlseS9uaWdodGx5IGJ1aWxkLiBQbGVhc2UgdXNlIFNOQVBTSE9UIGluc3RlYWQpCgpGb3Igb2xkIHJlbGVhc2VzLCBwbGVhc2UgcmVmZXIgdG8gdGhlIFsqKlJlbGVhc2UqKl0oaHR0cHM6Ly9naXRodWIuY29tL09wZW5BUElUb29scy9vcGVuYXBpLWdlbmVyYXRvci9yZWxlYXNlcykgcGFnZS4KCkZvciBkZWNvbWlzc2lvbmVkIGdlbmVyYXRvcnMvbGlicmFyaWVzL2ZyYW1ld29ya3MsIHBsZWFzZSByZWZlciB0byBbdGhlICJEZWNvbW1pc3Npb24iIGxhYmVsXShodHRwczovL2dpdGh1Yi5jb20vT3BlbkFQSVRvb2xzL29wZW5hcGktZ2VuZXJhdG9yL2lzc3Vlcz9xPWxhYmVsJTNBRGVjb21taXNzaW9uK2lzJTNBbWVyZ2VkKykgaW4gdGhlIHB1bGwgcmVxdWVzdCBwYWdlLgoKIyMgWzEuMiAtIEFydGlmYWN0cyBvbiBNYXZlbiBDZW50cmFsXSgjdGFibGUtb2YtY29udGVudHMpCgpZb3UgY2FuIGZpbmQgb3VyIHJlbGVhc2VkIGFydGlmYWN0cyBvbiBtYXZlbiBjZW50cmFsOgoKKipDb3JlOioqCmBgYHhtbAo8ZGVwZW5kZW5jeT4KICAgIDxncm91cElkPm9yZy5vcGVuYXBpdG9vbHM8L2dyb3VwSWQ+CiAgICA8YXJ0aWZhY3RJZD5vcGVuYXBpLWdlbmVyYXRvcjwvYXJ0aWZhY3RJZD4KICAgIDx2ZXJzaW9uPiR7b3BlbmFwaS1nZW5lcmF0b3ItdmVyc2lvbn08L3ZlcnNpb24+CjwvZGVwZW5kZW5jeT4KYGBgClNlZSB0aGUgZGlmZmVyZW50IHZlcnNpb25zIG9mIHRoZSBbb3BlbmFwaS1nZW5lcmF0b3JdKGh0dHBzOi8vc2VhcmNoLm1hdmVuLm9yZy9hcnRpZmFjdC9vcmcub3BlbmFwaXRvb2xzL29wZW5hcGktZ2VuZXJhdG9yKSBhcnRpZmFjdCBhdmFpbGFibGUgb24gbWF2ZW4gY2VudHJhbC4KCioqQ2xpOioqCmBgYHhtbAo8ZGVwZW5kZW5jeT4KICAgIDxncm91cElkPm9yZy5vcGVuYXBpdG9vbHM8L2dyb3VwSWQ+CiAgICA8YXJ0aWZhY3RJZD5vcGVuYXBpLWdlbmVyYXRvci1jbGk8L2FydGlmYWN0SWQ+CiAgICA8dmVyc2lvbj4ke29wZW5hcGktZ2VuZXJhdG9yLXZlcnNpb259PC92ZXJzaW9uPgo8L2RlcGVuZGVuY3k+CmBgYApTZWUgdGhlIGRpZmZlcmVudCB2ZXJzaW9ucyBvZiB0aGUgW29wZW5hcGktZ2VuZXJhdG9yLWNsaV0oaHR0cHM6Ly9zZWFyY2gubWF2ZW4ub3JnL2FydGlmYWN0L29yZy5vcGVuYXBpdG9vbHMvb3BlbmFwaS1nZW5lcmF0b3ItY2xpKSBhcnRpZmFjdCBhdmFpbGFibGUgb24gbWF2ZW4gY2VudHJhbC4KCioqTWF2ZW4gcGx1Z2luOioqCmBgYHhtbAo8ZGVwZW5kZW5jeT4KICAgIDxncm91cElkPm9yZy5vcGVuYXBpdG9vbHM8L2dyb3VwSWQ+CiAgICA8YXJ0aWZhY3RJZD5vcGVuYXBpLWdlbmVyYXRvci1tYXZlbi1wbHVnaW48L2FydGlmYWN0SWQ+CiAgICA8dmVyc2lvbj4ke29wZW5hcGktZ2VuZXJhdG9yLXZlcnNpb259PC92ZXJzaW9uPgo8L2RlcGVuZGVuY3k+CmBgYAoqIFNlZSB0aGUgZGlmZmVyZW50IHZlcnNpb25zIG9mIHRoZSBbb3BlbmFwaS1nZW5lcmF0b3ItbWF2ZW4tcGx1Z2luXShodHRwczovL3NlYXJjaC5tYXZlbi5vcmcvYXJ0aWZhY3Qvb3JnLm9wZW5hcGl0b29scy9vcGVuYXBpLWdlbmVyYXRvci1tYXZlbi1wbHVnaW4pIGFydGlmYWN0IGF2YWlsYWJsZSBvbiBtYXZlbiBjZW50cmFsLgoqIFtSZWFkbWVdKGh0dHBzOi8vZ2l0aHViLmNvbS9PcGVuQVBJVG9vbHMvb3BlbmFwaS1nZW5lcmF0b3IvYmxvYi9tYXN0ZXIvbW9kdWxlcy9vcGVuYXBpLWdlbmVyYXRvci1tYXZlbi1wbHVnaW4vUkVBRE1FLm1kKQoKKipHcmFkbGUgcGx1Z2luOioqCmBgYHhtbAo8ZGVwZW5kZW5jeT4KICAgIDxncm91cElkPm9yZy5vcGVuYXBpdG9vbHM8L2dyb3VwSWQ+CiAgICA8YXJ0aWZhY3RJZD5vcGVuYXBpLWdlbmVyYXRvci1ncmFkbGUtcGx1Z2luPC9hcnRpZmFjdElkPgogICAgPHZlcnNpb24+JHtvcGVuYXBpLWdlbmVyYXRvci12ZXJzaW9ufTwvdmVyc2lvbj4KPC9kZXBlbmRlbmN5PgpgYGAKKiBTZWUgdGhlIGRpZmZlcmVudCB2ZXJzaW9ucyBvZiB0aGUgW29wZW5hcGktZ2VuZXJhdG9yLWdyYWRsZS1wbHVnaW5dKGh0dHBzOi8vc2VhcmNoLm1hdmVuLm9yZy9hcnRpZmFjdC9vcmcub3BlbmFwaXRvb2xzL29wZW5hcGktZ2VuZXJhdG9yLWdyYWRsZS1wbHVnaW4pIGFydGlmYWN0IGF2YWlsYWJsZSBvbiBtYXZlbiBjZW50cmFsLgoqIFtSZWFkbWVdKGh0dHBzOi8vZ2l0aHViLmNvbS9PcGVuQVBJVG9vbHMvb3BlbmFwaS1nZW5lcmF0b3IvYmxvYi9tYXN0ZXIvbW9kdWxlcy9vcGVuYXBpLWdlbmVyYXRvci1ncmFkbGUtcGx1Z2luL1JFQURNRS5hZG9jKQoKIyMjIFsxLjMgLSBEb3dubG9hZCBKQVJdKCN0YWJsZS1vZi1jb250ZW50cykKPCEtLSBSRUxFQVNFX1ZFUlNJT04gLS0+CklmIHlvdSdyZSBsb29raW5nIGZvciB0aGUgbGF0ZXN0IHN0YWJsZSB2ZXJzaW9uLCB5b3UgY2FuIGdyYWIgaXQgZGlyZWN0bHkgZnJvbSBNYXZlbi5vcmcgKEphdmEgMTEgcnVudGltZSBhdCBhIG1pbmltdW0pOgoKSkFSIGxvY2F0aW9uOiBgaHR0cHM6Ly9yZXBvMS5tYXZlbi5vcmcvbWF2ZW4yL29yZy9vcGVuYXBpdG9vbHMvb3BlbmFwaS1nZW5lcmF0b3ItY2xpLzcuOC4wL29wZW5hcGktZ2VuZXJhdG9yLWNsaS03LjguMC5qYXJgCgpGb3IgKipNYWMvTGludXgqKiB1c2VyczoKYGBgc2gKd2dldCBodHRwczovL3JlcG8xLm1hdmVuLm9yZy9tYXZlbjIvb3JnL29wZW5hcGl0b29scy9vcGVuYXBpLWdlbmVyYXRvci1jbGkvNy44LjAvb3BlbmFwaS1nZW5lcmF0b3ItY2xpLTcuOC4wLmphciAtTyBvcGVuYXBpLWdlbmVyYXRvci1jbGkuamFyCmBgYAoKRm9yICoqV2luZG93cyoqIHVzZXJzLCB5b3Ugd2lsbCBuZWVkIHRvIGluc3RhbGwgW3dnZXRdKGh0dHA6Ly9nbnV3aW4zMi5zb3VyY2Vmb3JnZS5uZXQvcGFja2FnZXMvd2dldC5odG0pIG9yIHlvdSBjYW4gdXNlIEludm9rZS1XZWJSZXF1ZXN0IGluIFBvd2VyU2hlbGwgKDMuMCspLCBlLmcuCmBgYApJbnZva2UtV2ViUmVxdWVzdCAtT3V0RmlsZSBvcGVuYXBpLWdlbmVyYXRvci1jbGkuamFyIGh0dHBzOi8vcmVwbzEubWF2ZW4ub3JnL21hdmVuMi9vcmcvb3BlbmFwaXRvb2xzL29wZW5hcGktZ2VuZXJhdG9yLWNsaS83LjguMC9vcGVuYXBpLWdlbmVyYXRvci1jbGktNy44LjAuamFyCmBgYAoKQWZ0ZXIgZG93bmxvYWRpbmcgdGhlIEpBUiwgcnVuIGBqYXZhIC1qYXIgb3BlbmFwaS1nZW5lcmF0b3ItY2xpLmphciBoZWxwYCB0byBzaG93IHRoZSB1c2FnZS4KCkZvciBNYWMgdXNlcnMsIHBsZWFzZSBtYWtlIHN1cmUgSmF2YSAxMSBpcyBpbnN0YWxsZWQgKFRpcHM6IHJ1biBgamF2YSAtdmVyc2lvbmAgdG8gY2hlY2sgdGhlIHZlcnNpb24pLCBhbmQgZXhwb3J0IGBKQVZBX0hPTUVgIGluIG9yZGVyIHRvIHVzZSB0aGUgc3VwcG9ydGVkIEphdmEgdmVyc2lvbjoKYGBgc2gKZXhwb3J0IEpBVkFfSE9NRT1gL3Vzci9saWJleGVjL2phdmFfaG9tZSAtdiAxLjExYApleHBvcnQgUEFUSD0ke0pBVkFfSE9NRX0vYmluOiRQQVRICmBgYAoKPCEtLSAvUkVMRUFTRV9WRVJTSU9OIC0tPgojIyMgTGF1bmNoZXIgU2NyaXB0CgpPbmUgZG93bnNpZGUgdG8gbWFudWFsIGphciBkb3dubG9hZHMgaXMgdGhhdCB5b3UgZG9uJ3Qga2VlcCB1cC10by1kYXRlIHdpdGggdGhlIGxhdGVzdCByZWxlYXNlZCB2ZXJzaW9uLiBXZSBoYXZlIGEgQmFzaCBsYXVuY2hlciBzY3JpcHQgYXQgW2Jpbi91dGlscy9vcGVuYXBpLWdlbmVyYXRvci5jbGkuc2hdKC4vYmluL3V0aWxzL29wZW5hcGktZ2VuZXJhdG9yLWNsaS5zaCkgd2hpY2ggcmVzb2x2ZXMgdGhpcyBpc3N1ZS4KClRvIGluc3RhbGwgdGhlIGxhdW5jaGVyIHNjcmlwdCwgY29weSB0aGUgY29udGVudHMgb2YgdGhlIHNjcmlwdCB0byBhIGxvY2F0aW9uIG9uIHlvdXIgcGF0aCBhbmQgbWFrZSB0aGUgc2NyaXB0IGV4ZWN1dGFibGUuCgpBbiBleGFtcGxlIG9mIHNldHRpbmcgdGhpcyB1cCAoTk9URTogQWx3YXlzIGV2YWx1YXRlIHNjcmlwdHMgY3VybGVkIGZyb20gZXh0ZXJuYWwgc3lzdGVtcyBiZWZvcmUgZXhlY3V0aW5nIHRoZW0pLgoKYGBgCm1rZGlyIC1wIH4vYmluL29wZW5hcGl0b29scwpjdXJsIGh0dHBzOi8vcmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbS9PcGVuQVBJVG9vbHMvb3BlbmFwaS1nZW5lcmF0b3IvbWFzdGVyL2Jpbi91dGlscy9vcGVuYXBpLWdlbmVyYXRvci1jbGkuc2ggPiB+L2Jpbi9vcGVuYXBpdG9vbHMvb3BlbmFwaS1nZW5lcmF0b3ItY2xpCmNobW9kIHUreCB+L2Jpbi9vcGVuYXBpdG9vbHMvb3BlbmFwaS1nZW5lcmF0b3ItY2xpCmV4cG9ydCBQQVRIPSRQQVRIOn4vYmluL29wZW5hcGl0b29scy8KYGBgCgpOb3csIGBvcGVuYXBpLWdlbmVyYXRvci1jbGlgIGlzICJpbnN0YWxsZWQiLiBPbiBpbnZvY2F0aW9uLCBpdCB3aWxsIHF1ZXJ5IHRoZSBHaXRIdWIgcmVwb3NpdG9yeSBmb3IgdGhlIG1vc3QgcmVjZW50bHkgcmVsZWFzZWQgdmVyc2lvbi4gSWYgdGhpcyBtYXRjaGVzIHRoZSBsYXN0IGRvd25sb2FkZWQgamFyLAppdCB3aWxsIGV4ZWN1dGUgYXMgbm9ybWFsLiBJZiBhIG5ld2VyIHZlcnNpb24gaXMgZm91bmQsIHRoZSBzY3JpcHQgd2lsbCBkb3dubG9hZCB0aGUgbGF0ZXN0IHJlbGVhc2UgYW5kIGV4ZWN1dGUgaXQuCgpJZiB5b3UgbmVlZCB0byBpbnZva2UgYW4gb2xkZXIgdmVyc2lvbiBvZiB0aGUgZ2VuZXJhdG9yLCB5b3UgY2FuIGRlZmluZSB0aGUgdmFyaWFibGUgYE9QRU5BUElfR0VORVJBVE9SX1ZFUlNJT05gIGVpdGhlciBhZCBob2Mgb3IgZ2xvYmFsbHkuIFlvdSBjYW4gZXhwb3J0IHRoaXMgdmFyaWFibGUgaWYgeW91J2QgbGlrZSB0byBwZXJzaXN0IGEgc3BlY2lmaWMgcmVsZWFzZSB2ZXJzaW9uLgoKRXhhbXBsZXM6CgpgYGAKIyBFeGVjdXRlIGxhdGVzdCByZWxlYXNlZCBvcGVuYXBpLWdlbmVyYXRvci1jbGkKb3BlbmFwaS1nZW5lcmF0b3ItY2xpIHZlcnNpb24KCiMgRXhlY3V0ZSB2ZXJzaW9uIDQuMS4wIGZvciB0aGUgY3VycmVudCBpbnZvY2F0aW9uLCByZWdhcmRsZXNzIG9mIHRoZSBsYXRlc3QgcmVsZWFzZWQgdmVyc2lvbgpPUEVOQVBJX0dFTkVSQVRPUl9WRVJTSU9OPTQuMS4wIG9wZW5hcGktZ2VuZXJhdG9yLWNsaSB2ZXJzaW9uCgojIEV4ZWN1dGUgdmVyc2lvbiA0LjEuMC1TTkFQU0hPVCBmb3IgdGhlIGN1cnJlbnQgaW52b2NhdGlvbgpPUEVOQVBJX0dFTkVSQVRPUl9WRVJTSU9OPTQuMS4wLVNOQVBTSE9UIG9wZW5hcGktZ2VuZXJhdG9yLWNsaSB2ZXJzaW9uCgojIEV4ZWN1dGUgdmVyc2lvbiA0LjAuMiBmb3IgZXZlcnkgaW52b2NhdGlvbiBpbiB0aGUgY3VycmVudCBzaGVsbCBzZXNzaW9uCmV4cG9ydCBPUEVOQVBJX0dFTkVSQVRPUl9WRVJTSU9OPTQuMC4yCm9wZW5hcGktZ2VuZXJhdG9yLWNsaSB2ZXJzaW9uICMgaXMgNC4wLjIKb3BlbmFwaS1nZW5lcmF0b3ItY2xpIHZlcnNpb24gIyBpcyBhbHNvIDQuMC4yCgojIFRvICJpbnN0YWxsIiBhIHNwZWNpZmljIHZlcnNpb24sIHNldCB0aGUgdmFyaWFibGUgaW4gLmJhc2hyYy8uYmFzaF9wcm9maWxlCmVjaG8gImV4cG9ydCBPUEVOQVBJX0dFTkVSQVRPUl9WRVJTSU9OPTQuMC4yIiA+PiB+Ly5iYXNocmMKc291cmNlIH4vLmJhc2hyYwpvcGVuYXBpLWdlbmVyYXRvci1jbGkgdmVyc2lvbiAjIGlzIGFsd2F5cyA0LjAuMiwgdW5sZXNzIGFueSBvZiB0aGUgYWJvdmUgb3ZlcnJpZGVzIGFyZSBkb25lIGFkIGhvYwpgYGAKCiMjIyBbMS40IC0gQnVpbGQgUHJvamVjdHNdKCN0YWJsZS1vZi1jb250ZW50cykKClRvIGJ1aWxkIGZyb20gc291cmNlLCB5b3UgbmVlZCB0aGUgZm9sbG93aW5nIGluc3RhbGxlZCBhbmQgYXZhaWxhYmxlIGluIHlvdXIgYCRQQVRIOmAKCiogW0phdmEgMTFdKGh0dHBzOi8vYWRvcHRpdW0ubmV0LykKCiogW0FwYWNoZSBNYXZlbiAzLjguOCBvciBncmVhdGVyXShodHRwczovL21hdmVuLmFwYWNoZS5vcmcvKSAob3B0aW9uYWwpCgpBZnRlciBjbG9uaW5nIHRoZSBwcm9qZWN0LCB5b3UgY2FuIGJ1aWxkIGl0IGZyb20gc291cmNlIHVzaW5nIFttYXZlbiB3cmFwcGVyXShodHRwczovL21hdmVuLmFwYWNoZS5vcmcvd3JhcHBlci8pOgoKLSBMaW51eDogYC4vbXZudyBjbGVhbiBpbnN0YWxsYAotIFdpbmRvd3M6IGBtdm53LmNtZCBjbGVhbiBpbnN0YWxsYAoKIyMjIyBOaXggdXNlcnMKCklmIHlvdSdyZSBhIG5peCB1c2VyLCB5b3UgY2FuIGVudGVyIE9wZW5BUEkgR2VuZXJhdG9yIHNoZWxsLCBieSB0eXBpbmc6CmBgYHNoCm5peCBkZXZlbG9wCmBgYApJdCB3aWxsIGVudGVyIGEgc2hlbGwgd2l0aCBKYXZhIDExIGluc3RhbGxlZC4KCkRpcmVudiBzdXBwb3J0cyBhdXRvbWF0aWNhbGx5IGxvYWRpbmcgb2YgdGhlIG5peCBkZXZlbG9wZXIgc2hlbGwsIHNvIGlmIHlvdSdyZSB1c2luZyBkaXJlbnYgdG9vLCB0eXBlOgpgYGBzaApkaXJlbnYgYWxsb3cKYGBgCmFuZCBoYXZlIGBqYXZhYCBhbmQgYG12bmAgc2V0IHVwIHdpdGggY29ycmVjdCB2ZXJzaW9ucyBlYWNoIHRpbWUgeW91IGVudGVyIHByb2plY3QgZGlyZWN0b3J5LgoKVGhlIGRlZmF1bHQgYnVpbGQgY29udGFpbnMgbWluaW1hbCBzdGF0aWMgYW5hbHlzaXMgKHZpYSBDaGVja1N0eWxlKS4gVG8gcnVuIHlvdXIgYnVpbGQgd2l0aCBQTUQgYW5kIFNwb3RidWdzLCB1c2UgdGhlIGBzdGF0aWMtYW5hbHlzaXNgIHByb2ZpbGU6CgotIExpbnV4OiBgLi9tdm53IC1Qc3RhdGljLWFuYWx5c2lzIGNsZWFuIGluc3RhbGxgCi0gV2luZG93czogYG12bncuY21kIC1Qc3RhdGljLWFuYWx5c2lzIGNsZWFuIGluc3RhbGxgCgojIyMgWzEuNSAtIEhvbWVicmV3XSgjdGFibGUtb2YtY29udGVudHMpCgpUbyBpbnN0YWxsLCBydW4gYGJyZXcgaW5zdGFsbCBvcGVuYXBpLWdlbmVyYXRvcmAKCkhlcmUgaXMgYW4gZXhhbXBsZSB1c2FnZSB0byBnZW5lcmF0ZSBhIFJ1YnkgY2xpZW50OgpgYGBzaApvcGVuYXBpLWdlbmVyYXRvciBnZW5lcmF0ZSAtaSBodHRwczovL3Jhdy5naXRodWJ1c2VyY29udGVudC5jb20vb3BlbmFwaXRvb2xzL29wZW5hcGktZ2VuZXJhdG9yL21hc3Rlci9tb2R1bGVzL29wZW5hcGktZ2VuZXJhdG9yL3NyYy90ZXN0L3Jlc291cmNlcy8zXzAvcGV0c3RvcmUueWFtbCAtZyBydWJ5IC1vIC90bXAvdGVzdC8KYGBgCgpUbyByZWluc3RhbGwgd2l0aCB0aGUgbGF0ZXN0IG1hc3RlciwgcnVuIGBicmV3IHVuaW5zdGFsbCBvcGVuYXBpLWdlbmVyYXRvciAmJiBicmV3IGluc3RhbGwgLS1IRUFEIG9wZW5hcGktZ2VuZXJhdG9yYAoKVG8gaW5zdGFsbCBPcGVuSkRLIChwcmUtcmVxdWlzaXRlcyksIHBsZWFzZSBydW4KYGBgc2gKYnJldyB0YXAgQWRvcHRPcGVuSkRLL29wZW5qZGsKYnJldyBpbnN0YWxsIC0tY2FzayBhZG9wdG9wZW5qZGsxMQpleHBvcnQgSkFWQV9IT01FPWAvdXNyL2xpYmV4ZWMvamF2YV9ob21lIC12IDEuMTFgCmBgYAoKb3IgZG93bmxvYWQgaW5zdGFsbGVyIHZpYSBodHRwczovL2Fkb3B0aXVtLm5ldC8KClRvIGluc3RhbGwgTWF2ZW4gKG9wdGlvbmFsKSwgcGxlYXNlIHJ1bgpgYGBzaApicmV3IGluc3RhbGwgbWF2ZW4KYGBgCgojIyMgWzEuNiAtIERvY2tlcl0oI3RhYmxlLW9mLWNvbnRlbnRzKQoKIyMjIyBQdWJsaWMgUHJlLWJ1aWx0IERvY2tlciBpbWFnZXMKCiAtIFtodHRwczovL2h1Yi5kb2NrZXIuY29tL3Ivb3BlbmFwaXRvb2xzL29wZW5hcGktZ2VuZXJhdG9yLWNsaS9dKGh0dHBzOi8vaHViLmRvY2tlci5jb20vci9vcGVuYXBpdG9vbHMvb3BlbmFwaS1nZW5lcmF0b3ItY2xpLykgKG9mZmljaWFsIENMSSkKIC0gW2h0dHBzOi8vaHViLmRvY2tlci5jb20vci9vcGVuYXBpdG9vbHMvb3BlbmFwaS1nZW5lcmF0b3Itb25saW5lL10oaHR0cHM6Ly9odWIuZG9ja2VyLmNvbS9yL29wZW5hcGl0b29scy9vcGVuYXBpLWdlbmVyYXRvci1vbmxpbmUvKSAob2ZmaWNpYWwgd2ViIHNlcnZpY2UpCgoKIyMjIyBPcGVuQVBJIEdlbmVyYXRvciBDTEkgRG9ja2VyIEltYWdlCgpUaGUgT3BlbkFQSSBHZW5lcmF0b3IgaW1hZ2UgYWN0cyBhcyBhIHN0YW5kYWxvbmUgZXhlY3V0YWJsZS4gSXQgY2FuIGJlIHVzZWQgYXMgYW4gYWx0ZXJuYXRpdmUgdG8gaW5zdGFsbGluZyB2aWEgaG9tZWJyZXcsIG9yIGZvciBkZXZlbG9wZXJzIHdobyBhcmUgdW5hYmxlIHRvIGluc3RhbGwgSmF2YSBvciB1cGdyYWRlIHRoZSBpbnN0YWxsZWQgdmVyc2lvbi4KClRvIGdlbmVyYXRlIGNvZGUgd2l0aCB0aGlzIGltYWdlLCB5b3UnbGwgbmVlZCB0byBtb3VudCBhIGxvY2FsIGxvY2F0aW9uIGFzIGEgdm9sdW1lLgoKRXhhbXBsZToKCmBgYHNoCmRvY2tlciBydW4gLS1ybSAtdiAiJHtQV0R9Oi9sb2NhbCIgb3BlbmFwaXRvb2xzL29wZW5hcGktZ2VuZXJhdG9yLWNsaSBnZW5lcmF0ZSBcCiAgICAtaSBodHRwczovL3Jhdy5naXRodWJ1c2VyY29udGVudC5jb20vb3BlbmFwaXRvb2xzL29wZW5hcGktZ2VuZXJhdG9yL21hc3Rlci9tb2R1bGVzL29wZW5hcGktZ2VuZXJhdG9yL3NyYy90ZXN0L3Jlc291cmNlcy8zXzAvcGV0c3RvcmUueWFtbCBcCiAgICAtZyBnbyBcCiAgICAtbyAvbG9jYWwvb3V0L2dvCmBgYAoKVGhlIGdlbmVyYXRlZCBjb2RlIHdpbGwgYmUgbG9jYXRlZCB1bmRlciBgLi9vdXQvZ29gIGluIHRoZSBjdXJyZW50IGRpcmVjdG9yeS4KCiMjIyMgT3BlbkFQSSBHZW5lcmF0b3IgT25saW5lIERvY2tlciBJbWFnZQoKVGhlIG9wZW5hcGktZ2VuZXJhdG9yLW9ubGluZSBpbWFnZSBjYW4gYWN0IGFzIGEgc2VsZi1ob3N0ZWQgd2ViIGFwcGxpY2F0aW9uIGFuZCBBUEkgZm9yIGdlbmVyYXRpbmcgY29kZS4gVGhpcyBjb250YWluZXIgY2FuIGJlIGluY29ycG9yYXRlZCBpbnRvIGEgQ0kgcGlwZWxpbmUsIGFuZCByZXF1aXJlcyBhdCBsZWFzdCB0d28gSFRUUCByZXF1ZXN0cyBhbmQgc29tZSBkb2NrZXIgb3JjaGVzdHJhdGlvbiB0byBhY2Nlc3MgZ2VuZXJhdGVkIGNvZGUuCgpFeGFtcGxlIHVzYWdlOgoKYGBgc2gKIyBTdGFydCBjb250YWluZXIgYXQgcG9ydCA4ODg4IGFuZCBzYXZlIHRoZSBjb250YWluZXIgaWQKPiBDSUQ9JChkb2NrZXIgcnVuIC1kIC1wIDg4ODg6ODA4MCBvcGVuYXBpdG9vbHMvb3BlbmFwaS1nZW5lcmF0b3Itb25saW5lKQoKIyBhbGxvdyBmb3Igc3RhcnR1cAo+IHNsZWVwIDEwCgojIEdldCB0aGUgSVAgb2YgdGhlIHJ1bm5pbmcgY29udGFpbmVyIChvcHRpb25hbCkKR0VOX0lQPSQoZG9ja2VyIGluc3BlY3QgLS1mb3JtYXQgJ3t7Lk5ldHdvcmtTZXR0aW5ncy5JUEFkZHJlc3N9fScgICRDSUQpCgojIEV4ZWN1dGUgYW4gSFRUUCByZXF1ZXN0IHRvIGdlbmVyYXRlIGEgUnVieSBjbGllbnQKPiBjdXJsIC1YIFBPU1QgLS1oZWFkZXIgJ0NvbnRlbnQtVHlwZTogYXBwbGljYXRpb24vanNvbicgLS1oZWFkZXIgJ0FjY2VwdDogYXBwbGljYXRpb24vanNvbicgXAotZCAneyJvcGVuQVBJVXJsIjogImh0dHBzOi8vcmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbS9vcGVuYXBpdG9vbHMvb3BlbmFwaS1nZW5lcmF0b3IvbWFzdGVyL21vZHVsZXMvb3BlbmFwaS1nZW5lcmF0b3Ivc3JjL3Rlc3QvcmVzb3VyY2VzLzNfMC9wZXRzdG9yZS55YW1sIn0nIFwKJ2h0dHA6Ly9sb2NhbGhvc3Q6ODg4OC9hcGkvZ2VuL2NsaWVudHMvcnVieScKCnsiY29kZSI6ImMyZDQ4My4zLjQ2NzItNDBlOS05MWRmLWI5ZmZkMThkMjJiOCIsImxpbmsiOiJodHRwOi8vbG9jYWxob3N0Ojg4ODgvYXBpL2dlbi9kb3dubG9hZC9jMmQ0ODMuMy40NjcyLTQwZTktOTFkZi1iOWZmZDE4ZDIyYjgifQoKIyBEb3dubG9hZCB0aGUgZ2VuZXJhdGVkIHppcCBmaWxlCj4gd2dldCBodHRwOi8vbG9jYWxob3N0Ojg4ODgvYXBpL2dlbi9kb3dubG9hZC9jMmQ0ODMuMy40NjcyLTQwZTktOTFkZi1iOWZmZDE4ZDIyYjgKCiMgVW56aXAgdGhlIGZpbGUKPiB1bnppcCBjMmQ0ODMuMy40NjcyLTQwZTktOTFkZi1iOWZmZDE4ZDIyYjgKCiMgU2h1dGRvd24gdGhlIG9wZW5hcGkgZ2VuZXJhdG9yIGltYWdlCj4gZG9ja2VyIHN0b3AgJENJRCAmJiBkb2NrZXIgcm0gJENJRApgYGAKCiMjIyMgRGV2ZWxvcG1lbnQgaW4gZG9ja2VyCgpZb3UgY2FuIHVzZSBgcnVuLWluLWRvY2tlci5zaGAgdG8gZG8gYWxsIGRldmVsb3BtZW50LiBUaGlzIHNjcmlwdCBtYXBzIHlvdXIgbG9jYWwgcmVwb3NpdG9yeSB0byBgL2dlbmAKaW4gdGhlIGRvY2tlciBjb250YWluZXIuIEl0IGFsc28gbWFwcyBgfi8ubTIvcmVwb3NpdG9yeWAgdG8gdGhlIGFwcHJvcHJpYXRlIGNvbnRhaW5lciBsb2NhdGlvbi4KClRvIGV4ZWN1dGUgYG12biBwYWNrYWdlYDoKCmBgYHNoCmdpdCBjbG9uZSBodHRwczovL2dpdGh1Yi5jb20vb3BlbmFwaXRvb2xzL29wZW5hcGktZ2VuZXJhdG9yCmNkIG9wZW5hcGktZ2VuZXJhdG9yCi4vcnVuLWluLWRvY2tlci5zaCBtdm4gcGFja2FnZQpgYGAKCkJ1aWxkIGFydGlmYWN0cyBhcmUgbm93IGFjY2Vzc2libGUgaW4geW91ciB3b3JraW5nIGRpcmVjdG9yeS4KCk9uY2UgYnVpbHQsIGBydW4taW4tZG9ja2VyLnNoYCB3aWxsIGFjdCBhcyBhbiBleGVjdXRhYmxlIGZvciBvcGVuYXBpLWdlbmVyYXRvci1jbGkuIFRvIGdlbmVyYXRlIGNvZGUsIHlvdSdsbCBuZWVkIHRvIG91dHB1dCB0byBhIGRpcmVjdG9yeSB1bmRlciBgL2dlbmAgKGUuZy4gYC9nZW4vb3V0YCkuIEZvciBleGFtcGxlOgoKYGBgc2gKLi9ydW4taW4tZG9ja2VyLnNoIGhlbHAgIyBFeGVjdXRlcyAnaGVscCcgY29tbWFuZCBmb3Igb3BlbmFwaS1nZW5lcmF0b3ItY2xpCi4vcnVuLWluLWRvY2tlci5zaCBsaXN0ICMgRXhlY3V0ZXMgJ2xpc3QnIGNvbW1hbmQgZm9yIG9wZW5hcGktZ2VuZXJhdG9yLWNsaQouL3J1bi1pbi1kb2NrZXIuc2ggZ2VuZXJhdGUgLWkgbW9kdWxlcy9vcGVuYXBpLWdlbmVyYXRvci9zcmMvdGVzdC9yZXNvdXJjZXMvM18wL3BldHN0b3JlLnlhbWwgXAogICAgLWcgZ28gLW8gL2dlbi9vdXQvZ28tcGV0c3RvcmUgLXAgcGFja2FnZU5hbWU9cGV0c3RvcmUgIyBnZW5lcmF0ZXMgZ28gY2xpZW50LCBvdXRwdXRzIGxvY2FsbHkgdG8gLi9vdXQvZ28tcGV0c3RvcmUKYGBgCgojIyMjIyBUcm91Ymxlc2hvb3RpbmcKCklmIGFuIGVycm9yIGxpa2UgdGhpcyBvY2N1cnMsIGp1c3QgZXhlY3V0ZSB0aGUgKiouL212bncgY2xlYW4gaW5zdGFsbCAtVSoqIGNvbW1hbmQ6Cgo+IG9yZy5hcGFjaGUubWF2ZW4ubGlmZWN5Y2xlLkxpZmVjeWNsZUV4ZWN1dGlvbkV4Y2VwdGlvbjogRmFpbGVkIHRvIGV4ZWN1dGUgZ29hbCBvcmcuYXBhY2hlLm1hdmVuLnBsdWdpbnM6bWF2ZW4tc3VyZWZpcmUtcGx1Z2luOjIuMTkuMTp0ZXN0IChkZWZhdWx0LXRlc3QpIG9uIHByb2plY3Qgb3BlbmFwaS1nZW5lcmF0b3I6IEEgdHlwZSBpbmNvbXBhdGliaWxpdHkgb2NjdXJyZWQgd2hpbGUgZXhlY3V0aW5nIG9yZy5hcGFjaGUubWF2ZW4ucGx1Z2luczptYXZlbi1zdXJlZmlyZS1wbHVnaW46Mi4xOS4xOnRlc3Q6IGphdmEubGFuZy5FeGNlcHRpb25JbkluaXRpYWxpemVyRXJyb3IgY2Fubm90IGJlIGNhc3QgdG8gamF2YS5pby5JT0V4Y2VwdGlvbgoKYGBgc2gKLi9ydW4taW4tZG9ja2VyLnNoIC4vbXZudyBjbGVhbiBpbnN0YWxsIC1VCmBgYAoKPiBGYWlsZWQgdG8gZXhlY3V0ZSBnb2FsIG9yZy5mb3J0YXNvZnQ6Z3JhZGxlLW1hdmVuLXBsdWdpbjoxLjAuODppbnZva2UgKGRlZmF1bHQpIG9uIHByb2plY3Qgb3BlbmFwaS1nZW5lcmF0b3ItZ3JhZGxlLXBsdWdpbi1tdm4td3JhcHBlcjogb3JnLmdyYWRsZS50b29saW5nLkJ1aWxkRXhjZXB0aW9uOiBDb3VsZCBub3QgZXhlY3V0ZSBidWlsZCB1c2luZyBHcmFkbGUgZGlzdHJpYnV0aW9uICdodHRwczovL3NlcnZpY2VzLmdyYWRsZS5vcmcvZGlzdHJpYnV0aW9ucy9ncmFkbGUtNC43LWJpbi56aXAnCgpSaWdodCBub3c6IG5vIHNvbHV0aW9uIGZvciB0aGlzIG9uZSA6fAoKIyMjIyBSdW4gRG9ja2VyIGluIFZhZ3JhbnQKUHJlcmVxdWlzaXRlOiBpbnN0YWxsIFtWYWdyYW50XShodHRwczovL3d3dy52YWdyYW50dXAuY29tL2Rvd25sb2Fkcy5odG1sKSBhbmQgW1ZpcnR1YWxCb3hdKGh0dHBzOi8vd3d3LnZpcnR1YWxib3gub3JnL3dpa2kvRG93bmxvYWRzKS4KIGBgYHNoCmdpdCBjbG9uZSBodHRwczovL2dpdGh1Yi5jb20vb3BlbmFwaXRvb2xzL29wZW5hcGktZ2VuZXJhdG9yLmdpdApjZCBvcGVuYXBpLWdlbmVyYXRvcgp2YWdyYW50IHVwCnZhZ3JhbnQgc3NoCmNkIC92YWdyYW50Ci4vcnVuLWluLWRvY2tlci5zaCAuL212bncgcGFja2FnZQpgYGAKCiMjIyBbMS43IC0gTlBNXSgjdGFibGUtb2YtY29udGVudHMpCgpUaGVyZSBpcyBhbHNvIGFuIFtOUE0gcGFja2FnZSB3cmFwcGVyXShodHRwczovL3d3dy5ucG1qcy5jb20vcGFja2FnZS9Ab3BlbmFwaXRvb2xzL29wZW5hcGktZ2VuZXJhdG9yLWNsaSkgYXZhaWxhYmxlIGZvciBkaWZmZXJlbnQgcGxhdGZvcm1zIChlLmcuIExpbnV4LCBNYWMsIFdpbmRvd3MpLiAoSlZNIGlzIHN0aWxsIHJlcXVpcmVkKQpQbGVhc2Ugc2VlIHRoZSBbcHJvamVjdCdzIFJFQURNRV0oaHR0cHM6Ly9naXRodWIuY29tL29wZW5hcGl0b29scy9vcGVuYXBpLWdlbmVyYXRvci1jbGkpIHRoZXJlIGZvciBtb3JlIGluZm9ybWF0aW9uLgoKSW5zdGFsbCBpdCBnbG9iYWxseSB0byBnZXQgdGhlIENMSSBhdmFpbGFibGUgb24gdGhlIGNvbW1hbmQgbGluZToKCmBgYHNoCm5wbSBpbnN0YWxsIEBvcGVuYXBpdG9vbHMvb3BlbmFwaS1nZW5lcmF0b3ItY2xpIC1nCm9wZW5hcGktZ2VuZXJhdG9yLWNsaSB2ZXJzaW9uCmBgYAoKPCEtLSBSRUxFQVNFX1ZFUlNJT04gLS0+ClRvIHVzZSBhIHNwZWNpZmljIHZlcnNpb24gb2YgIm9wZW5hcGktZ2VuZXJhdG9yLWNsaSIKCmBgYHNoCm9wZW5hcGktZ2VuZXJhdG9yLWNsaSB2ZXJzaW9uLW1hbmFnZXIgc2V0IDcuOC4wCmBgYAoKT3IgaW5zdGFsbCBpdCBhcyBkZXYtZGVwZW5kZW5jeToKCmBgYHNoCm5wbSBpbnN0YWxsIEBvcGVuYXBpdG9vbHMvb3BlbmFwaS1nZW5lcmF0b3ItY2xpIC1ECmBgYAo8IS0tIC9SRUxFQVNFX1ZFUlNJT04gLS0+CiMjIFsyIC0gR2V0dGluZyBTdGFydGVkXSgjdGFibGUtb2YtY29udGVudHMpCgpUbyBnZW5lcmF0ZSBhIFBIUCBjbGllbnQgZm9yIFtwZXRzdG9yZS55YW1sXShodHRwczovL3Jhdy5naXRodWJ1c2VyY29udGVudC5jb20vb3BlbmFwaXRvb2xzL29wZW5hcGktZ2VuZXJhdG9yL21hc3Rlci9tb2R1bGVzL29wZW5hcGktZ2VuZXJhdG9yL3NyYy90ZXN0L3Jlc291cmNlcy8zXzAvcGV0c3RvcmUueWFtbCksIHBsZWFzZSBydW4gdGhlIGZvbGxvd2luZwpgYGBzaApnaXQgY2xvbmUgaHR0cHM6Ly9naXRodWIuY29tL29wZW5hcGl0b29scy9vcGVuYXBpLWdlbmVyYXRvcgpjZCBvcGVuYXBpLWdlbmVyYXRvcgouL212bncgY2xlYW4gcGFja2FnZQpqYXZhIC1qYXIgbW9kdWxlcy9vcGVuYXBpLWdlbmVyYXRvci1jbGkvdGFyZ2V0L29wZW5hcGktZ2VuZXJhdG9yLWNsaS5qYXIgZ2VuZXJhdGUgXAogICAtaSBodHRwczovL3Jhdy5naXRodWJ1c2VyY29udGVudC5jb20vb3BlbmFwaXRvb2xzL29wZW5hcGktZ2VuZXJhdG9yL21hc3Rlci9tb2R1bGVzL29wZW5hcGktZ2VuZXJhdG9yL3NyYy90ZXN0L3Jlc291cmNlcy8zXzAvcGV0c3RvcmUueWFtbCBcCiAgIC1nIHBocCBcCiAgIC1vIC92YXIvdG1wL3BocF9hcGlfY2xpZW50CmBgYAooaWYgeW91J3JlIG9uIFdpbmRvd3MsIHJlcGxhY2UgdGhlIGxhc3QgY29tbWFuZCB3aXRoIGBqYXZhIC1qYXIgbW9kdWxlc1xvcGVuYXBpLWdlbmVyYXRvci1jbGlcdGFyZ2V0XG9wZW5hcGktZ2VuZXJhdG9yLWNsaS5qYXIgZ2VuZXJhdGUgLWkgaHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL29wZW5hcGl0b29scy9vcGVuYXBpLWdlbmVyYXRvci9tYXN0ZXIvbW9kdWxlcy9vcGVuYXBpLWdlbmVyYXRvci9zcmMvdGVzdC9yZXNvdXJjZXMvM18wL3BldHN0b3JlLnlhbWwgLWcgcGhwIC1vIGM6XHRlbXBccGhwX2FwaV9jbGllbnRgKQoKPCEtLSBSRUxFQVNFX1ZFUlNJT04gLS0+CllvdSBjYW4gYWxzbyBkb3dubG9hZCB0aGUgSkFSIChsYXRlc3QgcmVsZWFzZSkgZGlyZWN0bHkgZnJvbSBbbWF2ZW4ub3JnXShodHRwczovL3JlcG8xLm1hdmVuLm9yZy9tYXZlbjIvb3JnL29wZW5hcGl0b29scy9vcGVuYXBpLWdlbmVyYXRvci1jbGkvNy44LjAvb3BlbmFwaS1nZW5lcmF0b3ItY2xpLTcuOC4wLmphcikKPCEtLSAvUkVMRUFTRV9WRVJTSU9OIC0tPgoKVG8gZ2V0IGEgbGlzdCBvZiAqKmdlbmVyYWwqKiBvcHRpb25zIGF2YWlsYWJsZSwgcGxlYXNlIHJ1biBgamF2YSAtamFyIG1vZHVsZXMvb3BlbmFwaS1nZW5lcmF0b3ItY2xpL3RhcmdldC9vcGVuYXBpLWdlbmVyYXRvci1jbGkuamFyIGhlbHAgZ2VuZXJhdGVgCgpUbyBnZXQgYSBsaXN0IG9mIFBIUCBzcGVjaWZpZWQgb3B0aW9ucyAod2hpY2ggY2FuIGJlIHBhc3NlZCB0byB0aGUgZ2VuZXJhdG9yIHdpdGggYSBjb25maWcgZmlsZSB2aWEgdGhlIGAtY2Agb3B0aW9uKSwgcGxlYXNlIHJ1biBgamF2YSAtamFyIG1vZHVsZXMvb3BlbmFwaS1nZW5lcmF0b3ItY2xpL3RhcmdldC9vcGVuYXBpLWdlbmVyYXRvci1jbGkuamFyIGNvbmZpZy1oZWxwIC1nIHBocGAKCiMjIFszIC0gVXNhZ2VdKCN0YWJsZS1vZi1jb250ZW50cykKCiMjIyBUbyBnZW5lcmF0ZSBhIHNhbXBsZSBjbGllbnQgbGlicmFyeQpZb3UgY2FuIGJ1aWxkIGEgY2xpZW50IGFnYWluc3QgdGhlIFtQZXRzdG9yZSBBUEldKGh0dHBzOi8vcmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbS9vcGVuYXBpdG9vbHMvb3BlbmFwaS1nZW5lcmF0b3IvbWFzdGVyL21vZHVsZXMvb3BlbmFwaS1nZW5lcmF0b3Ivc3JjL3Rlc3QvcmVzb3VyY2VzLzNfMC9wZXRzdG9yZS55YW1sKSBhcyBmb2xsb3dzOgoKYGBgc2gKLi9iaW4vZ2VuZXJhdGUtc2FtcGxlcy5zaCAuL2Jpbi9jb25maWdzL2phdmEtb2todHRwLWdzb24ueWFtbApgYGAKCihPbiBXaW5kb3dzLCBwbGVhc2UgaW5zdGFsbCBbR0lUIEJhc2ggZm9yIFdpbmRvd3NdKGh0dHBzOi8vZ2l0Zm9yd2luZG93cy5vcmcvKSB0byBydW4gdGhlIGNvbW1hbmQgYWJvdmUpCgpUaGlzIHNjcmlwdCB1c2VzIHRoZSBkZWZhdWx0IGxpYnJhcnksIHdoaWNoIGlzIGBva2h0dHAtZ3NvbmAuIEl0IHdpbGwgcnVuIHRoZSBnZW5lcmF0b3Igd2l0aCB0aGlzIGNvbW1hbmQ6CgpgYGBzaApqYXZhIC1qYXIgbW9kdWxlcy9vcGVuYXBpLWdlbmVyYXRvci1jbGkvdGFyZ2V0L29wZW5hcGktZ2VuZXJhdG9yLWNsaS5qYXIgZ2VuZXJhdGUgXAogIC1pIGh0dHBzOi8vcmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbS9vcGVuYXBpdG9vbHMvb3BlbmFwaS1nZW5lcmF0b3IvbWFzdGVyL21vZHVsZXMvb3BlbmFwaS1nZW5lcmF0b3Ivc3JjL3Rlc3QvcmVzb3VyY2VzLzNfMC9wZXRzdG9yZS55YW1sIFwKICAtZyBqYXZhIFwKICAtdCBtb2R1bGVzL29wZW5hcGktZ2VuZXJhdG9yL3NyYy9tYWluL3Jlc291cmNlcy9KYXZhIFwKICAtLWFkZGl0aW9uYWwtcHJvcGVydGllcyBhcnRpZmFjdElkPXBldHN0b3JlLW9raHR0cC1nc29uLGhpZGVHZW5lcmF0aW9uVGltZXN0YW1wPXRydWUgXAogIC1vIHNhbXBsZXMvY2xpZW50L3BldHN0b3JlL2phdmEvb2todHRwLWdzb24KYGBgCgp3aXRoIGEgbnVtYmVyIG9mIG9wdGlvbnMuIFtUaGUgamF2YSBvcHRpb25zIGFyZSBkb2N1bWVudGVkIGhlcmUuXShkb2NzL2dlbmVyYXRvcnMvamF2YS5tZCkKCllvdSBjYW4gYWxzbyBnZXQgdGhlIG9wdGlvbnMgd2l0aCB0aGUgYGhlbHAgZ2VuZXJhdGVgIGNvbW1hbmQgKGJlbG93IG9ubHkgc2hvd3MgcGFydGlhbCByZXN1bHRzKToKCmBgYApOQU1FCiAgICAgICAgb3BlbmFwaS1nZW5lcmF0b3ItY2xpIGdlbmVyYXRlIC0gR2VuZXJhdGUgY29kZSB3aXRoIHRoZSBzcGVjaWZpZWQKICAgICAgICBnZW5lcmF0b3IuCgpTWU5PUFNJUwogICAgICAgIG9wZW5hcGktZ2VuZXJhdG9yLWNsaSBnZW5lcmF0ZQogICAgICAgICAgICAgICAgWygtYSA8YXV0aG9yaXphdGlvbj4gfCAtLWF1dGggPGF1dGhvcml6YXRpb24+KV0KICAgICAgICAgICAgICAgIFstLWFwaS1uYW1lLXN1ZmZpeCA8YXBpIG5hbWUgc3VmZml4Pl0gWy0tYXBpLXBhY2thZ2UgPGFwaSBwYWNrYWdlPl0KICAgICAgICAgICAgICAgIFstLWFydGlmYWN0LWlkIDxhcnRpZmFjdCBpZD5dIFstLWFydGlmYWN0LXZlcnNpb24gPGFydGlmYWN0IHZlcnNpb24+XQogICAgICAgICAgICAgICAgWygtYyA8Y29uZmlndXJhdGlvbiBmaWxlPiB8IC0tY29uZmlnIDxjb25maWd1cmF0aW9uIGZpbGU+KV0gWy0tZHJ5LXJ1bl0KICAgICAgICAgICAgICAgIFsoLWUgPHRlbXBsYXRpbmcgZW5naW5lPiB8IC0tZW5naW5lIDx0ZW1wbGF0aW5nIGVuZ2luZT4pXQogICAgICAgICAgICAgICAgWy0tZW5hYmxlLXBvc3QtcHJvY2Vzcy1maWxlXQogICAgICAgICAgICAgICAgWygtZyA8Z2VuZXJhdG9yIG5hbWU+IHwgLS1nZW5lcmF0b3ItbmFtZSA8Z2VuZXJhdG9yIG5hbWU+KV0KICAgICAgICAgICAgICAgIFstLWdlbmVyYXRlLWFsaWFzLWFzLW1vZGVsXSBbLS1naXQtaG9zdCA8Z2l0IGhvc3Q+XQogICAgICAgICAgICAgICAgWy0tZ2l0LXJlcG8taWQgPGdpdCByZXBvIGlkPl0gWy0tZ2l0LXVzZXItaWQgPGdpdCB1c2VyIGlkPl0KICAgICAgICAgICAgICAgIFstLWdsb2JhbC1wcm9wZXJ0eSA8Z2xvYmFsIHByb3BlcnRpZXM+Li4uXSBbLS1ncm91cC1pZCA8Z3JvdXAgaWQ+XQogICAgICAgICAgICAgICAgWy0taHR0cC11c2VyLWFnZW50IDxodHRwIHVzZXIgYWdlbnQ+XQogICAgICAgICAgICAgICAgWygtaSA8c3BlYyBmaWxlPiB8IC0taW5wdXQtc3BlYyA8c3BlYyBmaWxlPildCiAgICAgICAgICAgICAgICBbLS1pZ25vcmUtZmlsZS1vdmVycmlkZSA8aWdub3JlIGZpbGUgb3ZlcnJpZGUgbG9jYXRpb24+XQogICAgICAgICAgICAgICAgWy0taW1wb3J0LW1hcHBpbmdzIDxpbXBvcnQgbWFwcGluZ3M+Li4uXQogICAgICAgICAgICAgICAgWy0taW5zdGFudGlhdGlvbi10eXBlcyA8aW5zdGFudGlhdGlvbiB0eXBlcz4uLi5dCiAgICAgICAgICAgICAgICBbLS1pbnZva2VyLXBhY2thZ2UgPGludm9rZXIgcGFja2FnZT5dCiAgICAgICAgICAgICAgICBbLS1sYW5ndWFnZS1zcGVjaWZpYy1wcmltaXRpdmVzIDxsYW5ndWFnZSBzcGVjaWZpYyBwcmltaXRpdmVzPi4uLl0KICAgICAgICAgICAgICAgIFstLWxlZ2FjeS1kaXNjcmltaW5hdG9yLWJlaGF2aW9yXSBbLS1saWJyYXJ5IDxsaWJyYXJ5Pl0KICAgICAgICAgICAgICAgIFstLWxvZy10by1zdGRlcnJdIFstLW1pbmltYWwtdXBkYXRlXQogICAgICAgICAgICAgICAgWy0tbW9kZWwtbmFtZS1wcmVmaXggPG1vZGVsIG5hbWUgcHJlZml4Pl0KICAgICAgICAgICAgICAgIFstLW1vZGVsLW5hbWUtc3VmZml4IDxtb2RlbCBuYW1lIHN1ZmZpeD5dCiAgICAgICAgICAgICAgICBbLS1tb2RlbC1wYWNrYWdlIDxtb2RlbCBwYWNrYWdlPl0KICAgICAgICAgICAgICAgIFsoLW8gPG91dHB1dCBkaXJlY3Rvcnk+IHwgLS1vdXRwdXQgPG91dHB1dCBkaXJlY3Rvcnk+KV0gWygtcCA8YWRkaXRpb25hbCBwcm9wZXJ0aWVzPiB8IC0tYWRkaXRpb25hbC1wcm9wZXJ0aWVzIDxhZGRpdGlvbmFsIHByb3BlcnRpZXM+KS4uLl0KICAgICAgICAgICAgICAgIFstLXBhY2thZ2UtbmFtZSA8cGFja2FnZSBuYW1lPl0gWy0tcmVsZWFzZS1ub3RlIDxyZWxlYXNlIG5vdGU+XQogICAgICAgICAgICAgICAgWy0tcmVtb3ZlLW9wZXJhdGlvbi1pZC1wcmVmaXhdCiAgICAgICAgICAgICAgICBbLS1yZXNlcnZlZC13b3Jkcy1tYXBwaW5ncyA8cmVzZXJ2ZWQgd29yZCBtYXBwaW5ncz4uLi5dCiAgICAgICAgICAgICAgICBbKC1zIHwgLS1za2lwLW92ZXJ3cml0ZSldIFstLXNlcnZlci12YXJpYWJsZXMgPHNlcnZlciB2YXJpYWJsZXM+Li4uXQogICAgICAgICAgICAgICAgWy0tc2tpcC12YWxpZGF0ZS1zcGVjXSBbLS1zdHJpY3Qtc3BlYyA8dHJ1ZS9mYWxzZSBzdHJpY3QgYmVoYXZpb3I+XQogICAgICAgICAgICAgICAgWygtdCA8dGVtcGxhdGUgZGlyZWN0b3J5PiB8IC0tdGVtcGxhdGUtZGlyIDx0ZW1wbGF0ZSBkaXJlY3Rvcnk+KV0KICAgICAgICAgICAgICAgIFstLXR5cGUtbWFwcGluZ3MgPHR5cGUgbWFwcGluZ3M+Li4uXSBbKC12IHwgLS12ZXJib3NlKV0KCk9QVElPTlMKICAgICAgICAtYSA8YXV0aG9yaXphdGlvbj4sIC0tYXV0aCA8YXV0aG9yaXphdGlvbj4KICAgICAgICAgICAgYWRkcyBhdXRob3JpemF0aW9uIGhlYWRlcnMgd2hlbiBmZXRjaGluZyB0aGUgT3BlbkFQSSBkZWZpbml0aW9ucwogICAgICAgICAgICByZW1vdGVseS4gUGFzcyBpbiBhIFVSTC1lbmNvZGVkIHN0cmluZyBvZiBuYW1lOmhlYWRlciB3aXRoIGEgY29tbWEKICAgICAgICAgICAgc2VwYXJhdGluZyBtdWx0aXBsZSB2YWx1ZXMKCi4uLi4uLiAocmVzdWx0cyBvbWl0dGVkKQoKICAgICAgICAtdiwgLS12ZXJib3NlCiAgICAgICAgICAgIHZlcmJvc2UgbW9kZQoKYGBgCgpZb3UgY2FuIHRoZW4gY29tcGlsZSBhbmQgcnVuIHRoZSBjbGllbnQsIGFzIHdlbGwgYXMgdW5pdCB0ZXN0cyBhZ2FpbnN0IGl0OgoKYGBgc2gKY2Qgc2FtcGxlcy9jbGllbnQvcGV0c3RvcmUvamF2YS9va2h0dHAtZ3Nvbgptdm4gcGFja2FnZQpgYGAKCk90aGVyIGdlbmVyYXRvcnMgaGF2ZSBbc2FtcGxlc10oaHR0cHM6Ly9naXRodWIuY29tL09wZW5BUElUb29scy9vcGVuYXBpLWdlbmVyYXRvci90cmVlL21hc3Rlci9zYW1wbGVzKSB0b28uCgojIyMgWzMuMSAtIEN1c3RvbWl6YXRpb25dKCN0YWJsZS1vZi1jb250ZW50cykKClBsZWFzZSByZWZlciB0byBbY3VzdG9taXphdGlvbi5tZF0oZG9jcy9jdXN0b21pemF0aW9uLm1kKSBvbiBob3cgdG8gY3VzdG9taXplIHRoZSBvdXRwdXQgKGUuZy4gcGFja2FnZSBuYW1lLCB2ZXJzaW9uKQoKIyMjIFszLjIgLSBXb3JrZmxvdyBJbnRlZ3JhdGlvbiAoTWF2ZW4sIEdyYWRsZSwgR2l0aHViLCBDSS9DRCldKCN0YWJsZS1vZi1jb250ZW50cykKClBsZWFzZSByZWZlciB0byBbaW50ZWdyYXRpb24ubWRdKGRvY3MvaW50ZWdyYXRpb24ubWQpIG9uIGhvdyB0byBpbnRlZ3JhdGUgT3BlbkFQSSBnZW5lcmF0b3Igd2l0aCBNYXZlbiwgR3JhZGxlLCBzYnQsIEJhemVsLCBHaXRodWIgYW5kIENJL0NELgoKIyMjIFszLjMgLSBPbmxpbmUgT3BlbkFQSSBnZW5lcmF0b3JdKCN0YWJsZS1vZi1jb250ZW50cykKCkhlcmUgYXJlIHRoZSBwdWJsaWMgb25saW5lIHNlcnZpY2VzOgoKLSBsYXRlc3Qgc3RhYmxlIHZlcnNpb246IGh0dHBzOi8vYXBpLm9wZW5hcGktZ2VuZXJhdG9yLnRlY2gKLSBsYXRlc3QgbWFzdGVyOiBodHRwczovL2FwaS1sYXRlc3QtbWFzdGVyLm9wZW5hcGktZ2VuZXJhdG9yLnRlY2ggKHVwZGF0ZWQgd2l0aCBsYXRlc3QgbWFzdGVyIGV2ZXJ5IGhvdXIpCgpUaGUgc2VydmVyIGlzIHNwb25zb3JlZCBieSBbTGlub2RlXShodHRwczovL3d3dy5saW5vZGUuY29tLykgWyFbTGlub2RlIExvZ29dKGh0dHBzOi8vd3d3Lmxpbm9kZS5jb20vbWVkaWEvaW1hZ2VzL2xvZ29zL3N0YW5kYXJkL2xpZ2h0L2xpbm9kZS1sb2dvX3N0YW5kYXJkX2xpZ2h0X3NtYWxsLnBuZyldKGh0dHBzOi8vd3d3Lmxpbm9kZS5jb20vKQoKKFRoZXNlIHNlcnZpY2VzIGFyZSBiZXRhIGFuZCBkbyBub3QgaGF2ZSBhbnkgZ3VhcmFudGVlIG9uIHNlcnZpY2UgbGV2ZWwpCgpQbGVhc2UgcmVmZXIgdG8gW29ubGluZS5tZF0oZG9jcy9vbmxpbmUubWQpIG9uIGhvdyB0byBydW4gYW5kIHVzZSB0aGUgYG9wZW5hcGktZ2VuZXJhdG9yLW9ubGluZWAgLSBhIHdlYiBzZXJ2aWNlIGZvciBgb3BlbmFwaS1nZW5lcmF0b3JgLgoKIyMjIFszLjQgLSBMaWNlbnNlIGluZm9ybWF0aW9uIG9uIEdlbmVyYXRlZCBDb2RlXSgjdGFibGUtb2YtY29udGVudHMpCgpUaGUgT3BlbkFQSSBHZW5lcmF0b3IgcHJvamVjdCBpcyBpbnRlbmRlZCBhcyBhIGJlbmVmaXQgZm9yIHVzZXJzIG9mIHRoZSBPcGVuIEFQSSBTcGVjaWZpY2F0aW9uLiAgVGhlIHByb2plY3QgaXRzZWxmIGhhcyB0aGUgW0xpY2Vuc2VdKCM3LS0tbGljZW5zZSkgYXMgc3BlY2lmaWVkLiBJbiBhZGRpdGlvbiwgcGxlYXNlIHVuZGVyc3RhbmQgdGhlIGZvbGxvd2luZyBwb2ludHM6CgoqIFRoZSB0ZW1wbGF0ZXMgaW5jbHVkZWQgd2l0aCB0aGlzIHByb2plY3QgYXJlIHN1YmplY3QgdG8gdGhlIFtMaWNlbnNlXSgjNy0tLWxpY2Vuc2UpLgoqIEdlbmVyYXRlZCBjb2RlIGlzIGludGVudGlvbmFsbHkgX25vdF8gc3ViamVjdCB0byB0aGUgcGFyZW50IHByb2plY3QgbGljZW5zZQoKV2hlbiBjb2RlIGlzIGdlbmVyYXRlZCBmcm9tIHRoaXMgcHJvamVjdCwgaXQgc2hhbGwgYmUgY29uc2lkZXJlZCAqKkFTIElTKiogYW5kIG93bmVkIGJ5IHRoZSB1c2VyIG9mIHRoZSBzb2Z0d2FyZS4gIFRoZXJlIGFyZSBubyB3YXJyYW50aWVzLS1leHByZXNzZWQgb3IgaW1wbGllZC0tZm9yIGdlbmVyYXRlZCBjb2RlLiAgWW91IGNhbiBkbyB3aGF0IHlvdSB3aXNoIHdpdGggaXQsIGFuZCBvbmNlIGdlbmVyYXRlZCwgdGhlIGNvZGUgaXMgeW91ciByZXNwb25zaWJpbGl0eSBhbmQgc3ViamVjdCB0byB0aGUgbGljZW5zaW5nIHRlcm1zIHRoYXQgeW91IGRlZW0gYXBwcm9wcmlhdGUuCgojIyMgWzMuNSAtIElERSBJbnRlZ3JhdGlvbl0oI3RhYmxlLW9mLWNvbnRlbnRzKQoKSGVyZSBpcyBhIGxpc3Qgb2YgY29tbXVuaXR5LWNvbnRyaWJ1dGVkIElERSBwbHVnLWlucyB0aGF0IGludGVncmF0ZSB3aXRoIE9wZW5BUEkgR2VuZXJhdG9yOgoKLSBFY2xpcHNlOiBbQ29kZXdpbmQgT3BlbkFQSSBUb29scyBmb3IgRWNsaXBzZV0oaHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvY29kZXdpbmQvb3Blbi1hcGktdG9vbHMtZm9yLWVjbGlwc2UuaHRtbCkgYnkgW0lCTV0oaHR0cHM6Ly93d3cuaWJtLmNvbSkKLSBJbnRlbGxpSiBJREVBOiBbT3BlbkFQSSBHZW5lcmF0b3JdKGh0dHBzOi8vcGx1Z2lucy5qZXRicmFpbnMuY29tL3BsdWdpbi84NDMzLW9wZW5hcGktZ2VuZXJhdG9yKSBieSBbSmltIFNjaHViZXJ0XShodHRwczovL2ppbXNjaHViZXJ0LnVzLyMvKQotIEludGVsbGlKIElERUE6IFtTZW55YSBFZGl0b3JdKGh0dHBzOi8vcGx1Z2lucy5qZXRicmFpbnMuY29tL3BsdWdpbi8xMDY5MC1zZW55YS1lZGl0b3IpIGJ5IFtzZW55YS5pb10oaHR0cHM6Ly9zZW55YS5pbykKLSBbUmVwcmVaZW4gQVBJIFN0dWRpb10oaHR0cHM6Ly93d3cucmVwcmV6ZW4uY29tLykKLSBWaXN1YWwgU3R1ZGlvOiBbUkVTVCBBUEkgQ2xpZW50IENvZGUgR2VuZXJhdG9yXShodHRwczovL21hcmtldHBsYWNlLnZpc3VhbHN0dWRpby5jb20vaXRlbXM/aXRlbU5hbWU9Q2hyaXN0aWFuUmVzbWFIZWxsZS5BcGlDbGllbnRDb2RlR2VuZXJhdG9yKSBieSBbQ2hyaXN0aWFuIFJlc21hIEhlbGxlXShodHRwczovL2NocmlzdGlhbi1oZWxsZS5ibG9nc3BvdC5jb20vKQotIFZpc3VhbCBTdHVkaW8gQ29kZTogW0NvZGV3aW5kIE9wZW5BUEkgVG9vbHNdKGh0dHBzOi8vbWFya2V0cGxhY2UudmlzdWFsc3R1ZGlvLmNvbS9pdGVtcz9pdGVtTmFtZT1JQk0uY29kZXdpbmQtb3BlbmFwaS10b29scykgYnkgW0lCTV0oaHR0cHM6Ly9tYXJrZXRwbGFjZS52aXN1YWxzdHVkaW8uY29tL3B1Ymxpc2hlcnMvSUJNKQoKCiMjIFs0IC0gQ29tcGFuaWVzL1Byb2plY3RzIHVzaW5nIE9wZW5BUEkgR2VuZXJhdG9yXSgjdGFibGUtb2YtY29udGVudHMpCkhlcmUgYXJlIHNvbWUgY29tcGFuaWVzL3Byb2plY3RzIChhbHBoYWJldGljYWwgb3JkZXIpIHVzaW5nIE9wZW5BUEkgR2VuZXJhdG9yIGluIHByb2R1Y3Rpb24uIFRvIGFkZCB5b3VyIGNvbXBhbnkvcHJvamVjdCB0byB0aGUgbGlzdCwgcGxlYXNlIHZpc2l0IFtSRUFETUUubWRdKFJFQURNRS5tZCkgYW5kIGNsaWNrIG9uIHRoZSBpY29uIHRvIGVkaXQgdGhlIHBhZ2UuCgotIFtBYWxib3JnIFVuaXZlcnNpdHldKGh0dHBzOi8vd3d3LmFhdS5kaykKLSBbYWN0IGNvZGluZ10oaHR0cHM6Ly9naXRodWIuY29tL2FjdGNvZGluZykKLSBbQWRhcHRhbnQgU29sdXRpb25zIEFHXShodHRwczovL3d3dy5hZGFwdGFudC5pby8pCi0gW2FkZXNzbyBTRV0oaHR0cHM6Ly93d3cuYWRlc3NvLmRlLykKLSBbQWR5ZW5dKGh0dHBzOi8vd3d3LmFkeWVuLmNvbS8pCi0gW0Fnb2RhXShodHRwczovL3d3dy5hZ29kYS5jb20vKQotIFtBaXJ0aGluZ3NdKGh0dHBzOi8vd3d3LmFpcnRoaW5ncy5jb20vKQotIFtBbGVyaSBTb2x1dGlvbnMgR21iaF0oaHR0cHM6Ly93d3cuYWxlcmkuZGUvKQotIFtBbGxpYW56XShodHRwczovL3d3dy5hbGxpYW56LmNvbSkKLSBbQW5ndWxhci5TY2h1bGVdKGh0dHBzOi8vYW5ndWxhci5zY2h1bGUvKQotIFtBcW92aWFdKGh0dHBzOi8vYXFvdmlhLmNvbS8pCi0gW0F1c3RyYWxpYSBhbmQgTmV3IFplYWxhbmQgQmFua2luZyBHcm91cCAoQU5aKV0oaHR0cDovL3d3dy5hbnouY29tLykKLSBbQXJkdWlub10oaHR0cHM6Ly93d3cuYXJkdWluby5jYy8pCi0gW0FTS1VMXShodHRwczovL3d3dy5hc2t1bC5jby5qcCkKLSBbQW1hem9uIFdlYiBTZXJ2aWNlcyAoQVdTKV0oaHR0cHM6Ly9hd3MuYW1hem9uLmNvbS8pCi0gW2I8PmNvbV0oaHR0cHM6Ly9iLWNvbS5jb20vZW4pCi0gW+eZvuW6puiQpemUgF0oaHR0cHM6Ly9lLmJhaWR1LmNvbSkKLSBbQmFuZHdpZHRoXShodHRwczovL2Rldi5iYW5kd2lkdGguY29tKQotIFtCYW56YWkgQ2xvdWRdKGh0dHBzOi8vYmFuemFpY2xvdWQuY29tKQotIFtCSU1EYXRhLmlvXShodHRwczovL2JpbWRhdGEuaW8pCi0gW0JpdGhvc3QgR21iSF0oaHR0cHM6Ly93d3cuYml0aG9zdC5jaCkKLSBbQm9zY2ggQ29ubmVjdGVkIEluZHVzdHJ5XShodHRwczovL3d3dy5ib3NjaC1jb25uZWN0ZWQtaW5kdXN0cnkuY29tKQotIFtCb3hldmVyXShodHRwczovL3d3dy5ib3hldmVyLmNvbS8pCi0gW0JyZXZ5XShodHRwczovL3d3dy5icmV2eS5jb20pCi0gW0J1bmtlciBIb2xkaW5nIEdyb3VwXShodHRwczovL3d3dy5idW5rZXItaG9sZGluZy5jb20vKQotIFtDYWxpZm9ybmlhIFN0YXRlIFVuaXZlcnNpdHksIE5vcnRocmlkZ2VdKGh0dHBzOi8vd3d3LmNzdW4uZWR1KQotIFtDQU1dKGh0dHBzOi8vd3d3LmNhbS1pbmMuY28uanAvKQotIFtDYW1wdG9jYW1wXShodHRwczovL3d3dy5jYW1wdG9jYW1wLmNvbS9lbikKLSBbQ2FybHNiZXJnIEdyb3VwXShodHRwczovL3d3dy5jYXJsc2Jlcmdncm91cC5jb20vKQotIFtDaHJpc3RvcGhlciBRdWVlbiBDb25zdWx0aW5nXShodHRwczovL3d3dy5jaHJpc3RvcGhlcnF1ZWVuY29uc3VsdGluZy5jb20vKQotIFtDaXNjb10oaHR0cHM6Ly93d3cuY2lzY28uY29tLykKLSBbY29kZWNlbnRyaWMgQUddKGh0dHBzOi8vd3d3LmNvZGVjZW50cmljLmRlLykKLSBbQ29pbkFQSV0oaHR0cHM6Ly93d3cuY29pbmFwaS5pby8pCi0gW0NvbW1lbmNpc10oaHR0cHM6Ly93d3cuY29tbWVuY2lzLmNvbS8pCi0gW0NvbmZpZ0NhdF0oaHR0cHM6Ly9jb25maWdjYXQuY29tLykKLSBbY3Jvbm4gR21iSF0oaHR0cHM6Ly93d3cuY3Jvbm4uZGUvKQotIFtDcm9zc292ZXIgSGVhbHRoXShodHRwczovL2Nyb3Nzb3ZlcmhlYWx0aC5jb20vKQotIFtDdXBpeF0oaHR0cHM6Ly93d3cuY3VwaXguY29tLykKLSBbRGF0YWRvZ10oaHR0cHM6Ly93d3cuZGF0YWRvZ2hxLmNvbSkKLSBbREIgU3lzdGVsXShodHRwczovL3d3dy5kYnN5c3RlbC5kZSkKLSBbRGVlcG9ydXRlLmFpXShodHRwczovL3d3dy5kZWVwcm91dGUuYWkvKQotIFtEZXZzdXBwbHldKGh0dHBzOi8vd3d3LmRldnN1cHBseS5jb20vKQotIFtkbVRFQ0ggR21iSF0oaHR0cHM6Ly93d3cuZG1URUNILmRlKQotIFtEb2NTcHJpbmddKGh0dHBzOi8vZG9jc3ByaW5nLmNvbS8pCi0gW2R3YW5nb10oaHR0cHM6Ly9kd2FuZ28uY28uanAvKQotIFtFZGdlIEltcHVsc2VdKGh0dHBzOi8vd3d3LmVkZ2VpbXB1bHNlLmNvbS8pCi0gW0VsZW1lbnQgQUldKGh0dHBzOi8vd3d3LmVsZW1lbnRhaS5jb20vKQotIFtFbWJvdGljc10oaHR0cHM6Ly93d3cuZW1ib3RpY3MuY29tLykKLSBbZW1pbmVvXShodHRwczovL3d3dy5lbWluZW8uY2gpCi0gW2Zhc3RseV0oaHR0cHM6Ly93d3cuZmFzdGx5LmNvbS8pCi0gW0ZlbmVyZ29dKGh0dHBzOi8vd3d3LmZlbmVyZ28uY29tLykKLSBbZnJlZWVdKGh0dHBzOi8vY29ycC5mcmVlZS5jby5qcC9lbi8pCi0gW0ZyZXNoQ2VsbHNdKGh0dHBzOi8vd3d3LmZyZXNoY2VsbHMuZGUvKQotIFtGdXNlXShodHRwczovL3d3dy5mdXNlLm5vLykKLSBbR2FudG5lcl0oaHR0cHM6Ly93d3cuZ2FudG5lci5jb20pCi0gW0dlbkZsb3ddKGh0dHBzOi8vZ2l0aHViLmNvbS9SZXByZVplbi9HZW5GbG93KQotIFtHZXRZb3VyR3VpZGVdKGh0dHBzOi8vd3d3LmdldHlvdXJndWlkZS5jb20vKQotIFtHbG92b10oaHR0cHM6Ly9nbG92b2FwcC5jb20vKQotIFtHTU8gUGVwYWJvXShodHRwczovL3BlcGFiby5jb20vZW4vKQotIFtHb0RhZGR5XShodHRwczovL2dvZGFkZHkuY29tKQotIFtHdW10cmVlXShodHRwczovL2d1bXRyZWUuY29tKQotIFtIZXJlXShodHRwczovL2RldmVsb3Blci5oZXJlLmNvbS8pCi0gW0lCTV0oaHR0cHM6Ly93d3cuaWJtLmNvbS8pCi0gW0luc3RhbmFdKGh0dHBzOi8vd3d3Lmluc3RhbmEuY29tKQotIFtJbnRlcnhpb25dKGh0dHBzOi8vd3d3LmludGVyeGlvbi5jb20pCi0gW0lucXVpc2ljb10oaHR0cHM6Ly9pbnF1aXNpY28uY29tKQotIFtKdXN0U3Rhcl0oaHR0cHM6Ly93d3cuanVzdHN0YXJpbmZvLmNvbSkKLSBbazYuaW9dKGh0dHBzOi8vazYuaW8vKQotIFtLbGFybmFdKGh0dHBzOi8vd3d3LmtsYXJuYS5jb20vKQotIFtLcm9uc29mdCBEZXZlbG9wbWVudF0oaHR0cHM6Ly93d3cua3JvbnNvZnQucm8vaG9tZS8pCi0gW0t1YmVybmV0ZXNdKGh0dHBzOi8va3ViZXJuZXRlcy5pbykKLSBbTGFuZGVzaGF1cHRzdGFkdCBNw7xuY2hlbiAtIGl0QE1dKGh0dHBzOi8vbXVlbmNoZW4uZGlnaXRhbC9pdC1hdC1tLykKLSBbTGlub2RlXShodHRwczovL3d3dy5saW5vZGUuY29tLykKLSBbTG9naWNkcm9wXShodHRwczovL3d3dy5sb2dpY2Ryb3AuY29tKQotIFtMdW1lcmlzXShodHRwczovL3d3dy5sdW1lcmlzLmNvbSkKLSBbTFZNIFZlcnNpY2hlcnVuZ2VuXShodHRwczovL3d3dy5sdm0uZGUpCi0gW01haWxTbHVycF0oaHR0cHM6Ly93d3cubWFpbHNsdXJwLmNvbSkKLSBbTWFudGljb3JlIFNlYXJjaF0oaHR0cHM6Ly9tYW50aWNvcmVzZWFyY2guY29tKQotIFtNYXN0ZXJjYXJkXShodHRwczovL2RldmVsb3BlcnMubWFzdGVyY2FyZC5jb20pCi0gW03DqWRpYXZpc2lvbl0oaHR0cHM6Ly93d3cubWVkaWF2aXNpb24uZnIvKQotIFtNZXRhc3dpdGNoXShodHRwczovL3d3dy5tZXRhc3dpdGNoLmNvbS8pCi0gW01vb25WaXNpb25dKGh0dHBzOi8vd3d3Lm1vb252aXNpb24uaW8vKQotIFtNeXdvcmtvdXRdKGh0dHBzOi8vbXl3b3Jrb3V0LmNvbSkKLSBbTmFtU29yXShodHRwczovL3d3dy5uYW1zb3IuY29tLykKLSBbTmV2ZXJmYWlsXShodHRwczovL3d3dy5uZXZlcmZhaWwuY29tLykKLSBbTmV1ZXJFbmVyZ3ldKGh0dHBzOi8vbmV1ZXJlbmVyZ3kuY29tKQotIFtOb2tpYV0oaHR0cHM6Ly93d3cubm9raWEuY29tLykKLSBbT25lU2lnbmFsXShodHRwczovL3d3dy5vbmVzaWduYWwuY29tLykKLSBbT3B0aW9ucyBDbGVhcmluZyBDb3Jwb3JhdGlvbiAoT0NDKV0oaHR0cHM6Ly93d3cudGhlb2NjLmNvbS8pCi0gW09wZW5ldF0oaHR0cHM6Ly93d3cub3BlbmV0LmNvbS8pCi0gW29wZW5WQUxJREFUSU9OXShodHRwczovL29wZW52YWxpZGF0aW9uLmlvLykKLSBbT3JhY2xlXShodHRwczovL3d3dy5vcmFjbGUuY29tLykKLSBbUGF4b3NdKGh0dHBzOi8vd3d3LnBheG9zLmNvbSkKLSBbUGxhaWRdKGh0dHBzOi8vcGxhaWQuY29tKQotIFtQTEFJRCwgSW5jLl0oaHR0cHM6Ly9wbGFpZC5jby5qcC8pCi0gW1BpbnRlcmVzdF0oaHR0cHM6Ly93d3cucGludGVyZXN0LmNvbSkKLSBbUG9uaWNvZGVdKGh0dHBzOi8vcG9uaWNvZGUuZGV2LykKLSBbUHJpY2VmeF0oaHR0cHM6Ly93d3cucHJpY2VmeC5jb20vKQotIFtQcmludE5hbm55XShodHRwczovL3d3dy5wcmludC1uYW5ueS5jb20vKQotIFtQcm9tZXRoZXVzL0FsZXJ0bWFuYWdlcl0oaHR0cHM6Ly9naXRodWIuY29tL3Byb21ldGhldXMvYWxlcnRtYW5hZ2VyKQotIFtRYXZhcl0oaHR0cHM6Ly93d3cucWF2YXIuY29tKQotIFtRRURJVF0oaHR0cHM6Ly9xZWQtaXQuY29tKQotIFtRb3ZlcnldKGh0dHBzOi8vcW92ZXJ5LmNvbSkKLSBbUXVsaXggU3lzdGVtc10oaHR0cHM6Ly93d3cucXVsaXguY29tKQotIFtSYWtzdWxdKGh0dHBzOi8vY29ycC5yYWtzdWwuY29tKQotIFtSYWlmZmVpc2VuIFNjaHdlaXogR2Vub3NzZW5zY2hhZnRdKGh0dHBzOi8vd3d3LnJhaWZmZWlzZW4uY2gpCi0gW1JlZEhhdF0oaHR0cHM6Ly93d3cucmVkaGF0LmNvbSkKLSBbUmVwcmVaZW4gQVBJIFN0dWRpb10oaHR0cHM6Ly93d3cucmVwcmV6ZW4uY29tL3N3YWdnZXItb3BlbmFwaS1jb2RlLWdlbmVyYXRpb24tYXBpLWZpcnN0LW1pY3Jvc2VydmljZXMtZW50ZXJwcmlzZS1kZXZlbG9wbWVudCkKLSBbUkVTVCBVbml0ZWRdKGh0dHBzOi8vcmVzdHVuaXRlZC5jb20pCi0gW1JvYm9jb3JwXShodHRwczovL3d3dy5yb2JvY29ycC5jb20pCi0gW1JvYm90aW5mcmFdKGh0dHBzOi8vd3d3LnJvYm90aW5mcmEuY29tKQotIFtTZWFyY2hBcGldKGh0dHBzOi8vd3d3LnNlYXJjaGFwaS5pby8pCi0gW1NtYXJ0SFJdKGh0dHBzOi8vc21hcnRoci5jby5qcC8pCi0gW1NvbnkgSW50ZXJhY3RpdmUgRW50ZXJ0YWlubWVudF0oaHR0cHM6Ly93d3cuc2llLmNvbS9lbi9pbmRleC5odG1sKQotIFtTcGxpdGl0XShodHRwczovL3d3dy5zcGxpdGl0LmNvbS8pCi0gW1N0aW5ncmF5XShodHRwOi8vd3d3LnN0aW5ncmF5LmNvbSkKLSBbU3V2YV0oaHR0cHM6Ly93d3cuc3V2YS5jaC8pCi0gW1N2aXhdKGh0dHBzOi8vd3d3LnN2aXguY29tLykKLSBbVGVsc3RyYV0oaHR0cHM6Ly9kZXYudGVsc3RyYS5jb20pCi0gW1RlbmNlbnRdKGh0dHBzOi8vd3d3LnRlbmNlbnQuY29tKQotIFtUaGUgVW5pdmVyc2l0eSBvZiBBaXp1XShodHRwczovL3d3dy51LWFpenUuYWMuanAvZW4vKQotIFtUcmFuc2x1Y2VudCBBcFNdKGh0dHBzOi8vd3d3LnRyYW5zbHVjZW50LmRrKQotIFtUcmF2ZWxUaW1lIHBsYXRmb3JtXShodHRwczovL3d3dy50cmF2ZWx0aW1lcGxhdGZvcm0uY29tLykKLSBbVHJpYmFsU2NhbGVdKGh0dHBzOi8vd3d3LnRyaWJhbHNjYWxlLmNvbSkKLSBbVHJpZm9ya10oaHR0cHM6Ly90cmlmb3JrLmNvbSkKLSBbVFVJIEluZm9UZWMgR21iSF0oaHR0cDovL3d3dy50dWktaW5mb3RlYy5jb20vKQotIFtUd2lsaW9dKGh0dHBzOi8vd3d3LnR3aWxpby5jb20vKQotIFtUd2l0dGVyXShodHRwczovL3R3aXR0ZXIuY29tKQotIFt1bmJsdSBpbmMuXShodHRwczovL3d3dy51bmJsdS5jb20vKQotIFtWZWFtbHldKGh0dHBzOi8vd3d3LnZlYW1seS5jb20vKQotIFtWTVdhcmVdKGh0dHBzOi8vd3d3LnZtd2FyZS5jb20vKQotIFt3YnQtc29sdXRpb25zXShodHRwczovL3d3dy53YnQtc29sdXRpb25zLmRlLykKLSBbV29sZWV0XShodHRwczovL3d3dy53b2xlZXQuaW8vKQotIFtXU08yXShodHRwczovL3dzbzIuY29tLykKLSBbVm91Y2hlcnkuaW9dKGh0dHBzOi8vdm91Y2hlcnkuaW8pCi0gW1hlcm9dKGh0dHBzOi8vd3d3Lnhlcm8uY29tLykKLSBbWWFob28gSmFwYW5dKGh0dHBzOi8vd3d3LnlhaG9vLmNvLmpwLykKLSBbdmlhZGVlXShodHRwczovL3d3dy52aWFkZWUuZGUvKQotIFtWb25hZ2VdKGh0dHBzOi8vdm9uYWdlLmNvbSkKLSBbWUlUVSBUZWNobm9sb2d5XShodHRwczovL3d3dy55aXR1dGVjaC5jb20vKQotIFtZZWxwXShodHRwczovL3d3dy55ZWxwLmNvbS8pCi0gW1phbGFuZG9dKGh0dHBzOi8vd3d3LnphbGFuZG8uY29tKQotIFszRFMgT3V0c2NhbGVdKGh0dHBzOi8vd3d3Lm91dHNjYWxlLmNvbS8pCgojIyBbNSAtIFByZXNlbnRhdGlvbnMvVmlkZW9zL1R1dG9yaWFscy9Cb29rc10oI3RhYmxlLW9mLWNvbnRlbnRzKQoKLSAyMDE4LzA1LzEyIC0gW09wZW5BUEkgR2VuZXJhdG9yIC0gY29tbXVuaXR5IGRyaXZlbuOBp+aIkOmVt+OBmeOCi+OCs+ODvOODieOCuOOCp+ODjeODrOODvOOCv10oaHR0cHM6Ly9hY2tpbnRvc2guZ2l0aHViLmlvL2Jsb2cvMjAxOC8wNS8xMi9vcGVuYXBpLWdlbmVyYXRvci8pIGJ5IFvkuK3ph47mmoHkurpdKGh0dHBzOi8vZ2l0aHViLmNvbS9hY2tpbnRvc2gpCi0gMjAxOC8wNS8xNSAtIFtTdGFydGluZyBhIG5ldyBvcGVuLXNvdXJjZSBwcm9qZWN0XShodHRwOi8vam1pbmkuZ2l0aHViLmlvL2Jsb2cvMjAxOC8yMDE4LTA1LTE1X25ldy1vcGVuLXNvdXJjZS1wcm9qZWN0Lmh0bWwpIGJ5IFtKZXJlbWllIEJyZXNzb25dKGh0dHBzOi8vZ2l0aHViLmNvbS9qbWluaSkKLSAyMDE4LzA1LzE1IC0gW1JFU1QgQVBJ5LuV5qeY44GL44KJQVBJ44Kv44Op44Kk44Ki44Oz44OI44KE44K544K/44OW44K144O844OQ44KS6Ieq5YuV55Sf5oiQ44GZ44KL44CMT3BlbkFQSSBHZW5lcmF0b3LjgI3jgqrjg7zjg5fjg7Pjgr3jg7zjgrnjgaflhazplovjgIJTd2FnZ2VyIENvZGVnZW7jgYvjgonjga7jg5Xjgqnjg7zjgq9dKGh0dHBzOi8vd3d3LnB1YmxpY2tleTEuanAvYmxvZy8xOC9yZXN0X2FwaWFwaW9wZW5hcGlfZ2VuZXJhdG9yc3dhZ2dlcl9nZW5lcmF0b3IuaHRtbCkgYnkgW1B1YmxpY2tleV0oaHR0cHM6Ly93d3cucHVibGlja2V5MS5qcCkKLSAyMDE4LzA2LzA4IC0gW1N3YWdnZXIgQ29kZWdlbiBpcyBub3cgT3BlbkFQSSBHZW5lcmF0b3JdKGh0dHBzOi8vYW5ndWxhci5zY2h1bGUvYmxvZy8yMDE4LTA2LXN3YWdnZXItY29kZWdlbi1pcy1ub3ctb3BlbmFwaS1nZW5lcmF0b3IpIGJ5IFtKb2hhbm5lc0hvcHBlXShodHRwczovL2dpdGh1Yi5jb20vSm9oYW5uZXNIb3BwZSkKLSAyMDE4LzA2LzIxIC0gW0Nvbm5lY3QgeW91ciBKSGlwc3RlciBhcHBzIHRvIHRoZSB3b3JsZCBvZiBBUElzIHdpdGggT3BlbkFQSSBhbmQgZ1JQQ10oaHR0cHM6Ly9mci5zbGlkZXNoYXJlLm5ldC9jaGJvcm5ldC9qaGlwc3Rlci1jb25mLTIwMTgtY29ubmVjdC15b3VyLWpoaXBzdGVyLWFwcHMtdG8tdGhlLXdvcmxkLW9mLWFwaXMtd2l0aC1vcGVuYXBpLWFuZC1ncnBjKSBieSBbQ2hyaXN0b3BoZSBCb3JuZXRdKGh0dHBzOi8vZ2l0aHViLmNvbS9jYm9ybmV0KSBhdCBbSkhpcHN0ZXIgQ29uZiAyMDE4XShodHRwczovL2poaXBzdGVyLWNvbmYuZ2l0aHViLmlvLykKLSAyMDE4LzA2LzIyIC0gW09wZW5BUEkgR2VuZXJhdG9yIOOBpyBHYXRsaW5nIENsaWVudCDjgpLnlJ/miJDjgZfjgabjgb/jgZ9dKGh0dHBzOi8vcm9oa2kuaGF0ZW5hYmxvZy5jb20vZW50cnkvMjAxOC8wNi8yMi8wNzMwMDApIGF0IFvjgr3jg6LjgrXjg7NdKGh0dHBzOi8vcm9oa2kuaGF0ZW5hYmxvZy5jb20vKQotIDIwMTgvMDYvMjcgLSBbTGVzc29ucyBMZWFybmVkIGZyb20gTGVhZGluZyBhbiBPcGVuLVNvdXJjZSBQcm9qZWN0IFN1cHBvcnRpbmcgMzArIFByb2dyYW1taW5nIExhbmd1YWdlc10oaHR0cHM6Ly9zcGVha2VyZGVjay5jb20vd2luZzMyOC9sZXNzb25zLWxlYXJuZWQtZnJvbS1sZWFkaW5nLWFuLW9wZW4tc291cmNlLXByb2plY3Qtc3VwcG9ydGluZy0zMC1wbHVzLXByb2dyYW1taW5nLWxhbmd1YWdlcykgLSBbV2lsbGlhbSBDaGVuZ10oaHR0cHM6Ly9naXRodWIuY29tL3dpbmczMjgpIGF0IFtMaW51eENvbiArIENvbnRhaW5lckNvbiArIENsb3VkT3BlbiBDaGluYSAyMDE4XShodHRwOi8vYml0Lmx5LzJ3YURLS1gpCi0gMjAxOC8wNy8xOSAtIFtPcGVuQVBJIEdlbmVyYXRvciBDb250cmlidXRpb24gUXVpY2tzdGFydCAtIFJpbmdDZW50cmFsIEdvIFNES10oaHR0cHM6Ly9tZWRpdW0uY29tL3JpbmdjZW50cmFsLWRldmVsb3BlcnMvb3BlbmFwaS1nZW5lcmF0b3ItZm9yLWdvLWNvbnRyaWJ1dGlvbi1xdWlja3N0YXJ0LThjYzcyYmYzN2I1MykgYnkgW0pvaG4gV2FuZ10oaHR0cHM6Ly9naXRodWIuY29tL2dyb2tpZnkpCi0gMjAxOC8wOC8yMiAtIFtPcGVuQVBJIEdlbmVyYXRvcuOBruODl+ODreOCuOOCp+OCr+ODiOani+aIkOOBquOBqeOBruODoeODol0oaHR0cHM6Ly95aW5tLmluZm8vMjAxODA4MjIvKSBieSBbWXVzdWtlIElpbnVtYV0oaHR0cHM6Ly9naXRodWIuY29tL3lpbm0pCi0gMjAxOC8wOS8xMiAtIFtSZXByZVplbiBhbmQgT3BlbkFQSSAzLjA6IE5vdyBpcyB0aGUgVGltZV0oaHR0cHM6Ly93d3cucmVwcmV6ZW4uY29tL2Jsb2cvcmVwcmV6ZW4tb3BlbmFwaS0zLjAtdXBncmFkZS1ub3ctaXMtdGhlLXRpbWUpIGJ5IFtNaWxlcyBEYWZmaW5dKGh0dHBzOi8vd3d3LnJlcHJlemVuLmNvbS9ibG9nL2F1dGhvci9taWxlcy1kYWZmaW4pCi0gMjAxOC8xMC8zMSAtIFtBIG5vZGUgcGFja2FnZSB3cmFwcGVyIGZvciBvcGVuYXBpLWdlbmVyYXRvcl0oaHR0cHM6Ly9naXRodWIuY29tL0hhcm1vV2F0Y2gvb3BlbmFwaS1nZW5lcmF0b3ItY2xpKQotIDIwMTgvMTEvMDMgLSBbT3BlbkFQSSBHZW5lcmF0b3IgKyBnb2xhbmcgKyBGbHV0dGVyIOOBp+OCouODl+ODqumWi+eZul0oaHR0cDovL3J5dWljaGkxMTFzdGQuaGF0ZW5hYmxvZy5jb20vZW50cnkvMjAxOC8xMS8wMy8yMTQwMDUpIGJ5IFtSeXVpY2hpIERhaWdvXShodHRwczovL2dpdGh1Yi5jb20vcnl1aWNoaTExMSkKLSAyMDE4LzExLzE1IC0gW+WfuuS6jm9wZW5hcGkzLjDnmoR5YW1s5paH5Lu255Sf5oiQamF2YeS7o+eggeeahOS4gOasoeWunui3tV0oaHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3l6eTE5OTM5MS9hcnRpY2xlL2RldGFpbHMvODQwMjM5ODIpIGJ5IFvnhLHprZTnjotdKGh0dHBzOi8vbWUuY3Nkbi5uZXQveXp5MTk5MzkxKQotIDIwMTgvMTEvMTggLSBbR2VuZXJhdGluZyBQSFAgbGlicmFyeSBjb2RlIGZyb20gT3BlbkFQSV0oaHR0cHM6Ly9sb3JuYWphbmUubmV0L3Bvc3RzLzIwMTgvZ2VuZXJhdGluZy1waHAtbGlicmFyeS1jb2RlLWZyb20tb3BlbmFwaSkgYnkgW0xvcm5hIEphbmVdKGh0dHBzOi8vbG9ybmFqYW5lLm5ldC8pIGF0IFtMT1JOQUpBTkUgQmxvZ10oaHR0cHM6Ly9sb3JuYWphbmUubmV0L2Jsb2cpCi0gMjAxOC8xMS8xOSAtIFtPcGVuQVBJcyBhcmUgZXZlcnl3aGVyZV0oaHR0cHM6Ly95b3V0dS5iZS8tbERvdDRZbjdEZykgYnkgW0plcmVtaWUgQnJlc3NvbiAoVW5ibHUpXShodHRwczovL2dpdGh1Yi5jb20vam1pbmkpIGF0IFtFY2xpcHNlQ29uIEV1cm9wZSAyMDE4XShodHRwczovL3d3dy5lY2xpcHNlY29uLm9yZy9ldXJvcGUyMDE4KQotIDIwMTgvMTIvMDkgLSBbb3BlbmFwaS1nZW5lcmF0b3Ig44KS44Kr44K544K/44Oe44Kk44K644GZ44KL5pa55rOVXShodHRwczovL3FpaXRhLmNvbS93YXRpa28vaXRlbXMvMDk2MTI4N2MwMmVhYzkyMTE1NzIpIGJ5IFtAd2F0aWtvXShodHRwczovL3FpaXRhLmNvbS93YXRpa28pCi0gMjAxOS8wMS8wMyAtIFtDYWxsaW5nIGEgU3dhZ2dlciBzZXJ2aWNlIGZyb20gQXBleCB1c2luZyBvcGVuYXBpLWdlbmVyYXRvcl0oaHR0cHM6Ly9sZWtraW13b3JsZC5jb20vMjAxOS8wMS8wMy9jYWxsaW5nLWEtc3dhZ2dlci1zZXJ2aWNlLWZyb20tYXBleC11c2luZy1vcGVuYXBpLWdlbmVyYXRvci8pIGJ5IFtNaWtrZWwgRmxpbmR0IEhlaXN0ZXJiZXJnXShodHRwczovL2xla2tpbXdvcmxkLmNvbSkKLSAyMDE5LzAxLzEzIC0gW09wZW5BUEkgR2VuZXJhdG9y44GnUkVTVGZ1bCBBUEnjga7lrprnvqnmm7jjgYvjgonoibLjgIXoh6rli5XnlJ/miJDjgZnjgotdKGh0dHBzOi8va3kteWstZC5oYXRlbmFibG9nLmNvbS9lbnRyeS8yMDE5LzAxLzEzLzIzNDEwOCkgYnkgW0BreV95a19kXShodHRwczovL3R3aXR0ZXIuY29tL2t5X3lrX2QpCi0gMjAxOS8wMS8yMCAtIFtDb250cmFjdC1GaXJzdCBBUEkgRGV2ZWxvcG1lbnQgd2l0aCBPcGVuQVBJIEdlbmVyYXRvciBhbmQgQ29ubmV4aW9uXShodHRwczovL21lZGl1bS5jb20vY29tbWVuY2lzL2NvbnRyYWN0LWZpcnN0LWFwaS1kZXZlbG9wbWVudC13aXRoLW9wZW5hcGktZ2VuZXJhdG9yLWFuZC1jb25uZXhpb24tYjIxYmJmMmY5MjQ0KSBieSBbQW5pbCBDYW4gQXlkaW5dKGh0dHBzOi8vZ2l0aHViLmNvbS9hbmxjbnlkbikKLSAyMDE5LzAxLzMwIC0gW1JhcGlkIEFwcGxpY2F0aW9uIERldmVsb3BtZW50IFdpdGggQVBJIEZpcnN0IEFwcHJvYWNoIFVzaW5nIE9wZW4tQVBJIEdlbmVyYXRvcl0oaHR0cHM6Ly9kem9uZS5jb20vYXJ0aWNsZXMvcmFwaWQtYXBpLWRldmVsb3BtZW50LXVzaW5nLW9wZW4tYXBpLWdlbmVyYXRvcikgYnkgW01pbGFuIFNvbmthcl0oaHR0cHM6Ly9kem9uZS5jb20vdXNlcnMvODI4MzI5L21pbGFuX3Nvbmthci5odG1sKQotIDIwMTkvMDIvMDIgLSBb5bmz6Z2Z44KS5L+d44Gh44CB44Kz44O844OJ44KS55Sf5oiQ44Gb44KIIOOAnCBPcGVuQVBJIEdlbmVyYXRvcuiqleeUn+OBruiDjOaZr+OBqOi7jOi3oSDjgJxdKGh0dHBzOi8vc3BlYWtlcmRlY2suY29tL2FraWhpdG9fbmFrYW5vL2d1bm1hd2ViMzQpIGJ5IFvkuK3ph47mmoHkurpdKGh0dHBzOi8vZ2l0aHViLmNvbS9hY2tpbnRvc2gpIGF0IFtHdW5tYS53ZWIgIzM0IOOCueOCreODvOODnumnhuWLlemWi+eZul0oaHR0cHM6Ly9ndW5tYXdlYi5jb25ucGFzcy5jb20vZXZlbnQvMTEzOTc0LykKLSAyMDE5LzAyLzIwIC0gW0FuIGFkdmVudHVyZSBpbiBPcGVuQVBJIFYzIGNvZGUgZ2VuZXJhdGlvbl0oaHR0cHM6Ly9tdXguY29tL2Jsb2cvYW4tYWR2ZW50dXJlLWluLW9wZW5hcGktdjMtYXBpLWNvZGUtZ2VuZXJhdGlvbi8pIGJ5IFtQaGlsIENsdWZmXShodHRwczovL211eC5jb20vYmxvZy9hdXRob3IvcGhpbGMvKQotIDIwMTkvMDIvMjYgLSBbQnVpbGRpbmcgQVBJIFNlcnZpY2VzOiBBIEJlZ2lubmVy4oCZcyBHdWlkZV0oaHR0cHM6Ly9tZWRpdW0uY29tL2dvb2dsZS1jbG91ZC9idWlsZGluZy1hcGktc2VydmljZXMtYS1iZWdpbm5lcnMtZ3VpZGUtNzI3NGFlNGM1NDdmKSBieSBbUmF0cm9zIFkuXShodHRwczovL21lZGl1bS5jb20vQHJhdHJvc3kpIGluIFtHb29nbGUgQ2xvdWQgUGxhdGZvcm0gQmxvZ10oaHR0cHM6Ly9tZWRpdW0uY29tL2dvb2dsZS1jbG91ZCkKLSAyMDE5LzAyLzI2IC0gW0J1aWxkaW5nIEFQSXMgd2l0aCBPcGVuQVBJOiBDb250aW51ZWRdKGh0dHBzOi8vbWVkaXVtLmNvbS9AcmF0cm9zeS9idWlsZGluZy1hcGlzLXdpdGgtb3BlbmFwaS1jb250aW51ZWQtNWQwZmFhZWQzMmViKSBieSBbUmF0cm9zIFkuXShodHRwczovL21lZGl1bS5jb20vQHJhdHJvc3kpIGluIFtHb29nbGUgQ2xvdWQgUGxhdGZvcm0gQmxvZ10oaHR0cHM6Ly9tZWRpdW0uY29tL2dvb2dsZS1jbG91ZCkKLSAyMDE5LTAzLTA3IC0gW09wZW5BUEkgR2VuZXJhdG9yIOOBpyBTcHJpbmcgQm9vdCDjgaggQW5ndWxhciDjgpLjgr/jgqTjg5fjgrvjg7zjg5XjgavnuYvjgZBdKGh0dHBzOi8vcWlpdGEuY29tL2NoaWJhdG8vaXRlbXMvZTRhNzQ4ZGIxMjQwOWI0MGMwMmYpIGJ5IFtUb21vZnVtaSBDaGliYV0oaHR0cHM6Ly9naXRodWIuY29tL2NoaWJhdCkKLSAyMDE5LTAzLTE2IC0gW0EgUXVpY2sgaW50cm9kdWN0aW9uIHRvIG1hbnVhbCBPcGVuQVBJIFYzXShodHRwczovL3ZhZG9zd2FyZS5pby9wb3N0L3F1aWNrLWludHJvLXRvLW1hbnVhbC1vcGVuYXBpLXYzLykgYnkgW3ZhZG9zXShodHRwczovL2dpdGh1Yi5jb20vdDNobXJtYW4pIGF0IFtWQURPU1dBUkVdKGh0dHBzOi8vdmFkb3N3YXJlLmlvKQotIDIwMTktMDMtMjUgLSBbQWNjZXNzIGFueSBSRVNUIHNlcnZpY2Ugd2l0aCB0aGUgU0FQIFMvNEhBTkEgQ2xvdWQgU0RLXShodHRwczovL2Jsb2dzLnNhcC5jb20vMjAxOS8wMy8yNS9pbnRlZ3JhdGUtc2FwLXM0aGFuYS1jbG91ZC1zZGstd2l0aC1vcGVuLWFwaS8pIGJ5IFtBbGV4YW5kZXIgRHVlbW9udF0oaHR0cHM6Ly9wZW9wbGUuc2FwLmNvbS9hbGV4YW5kZXIuZHVlbW9udCkKLSAyMDE5LTAzLTI1IC0gW09wZW5BUEkgZ2VuZXJhdG9y44KS6Kmm44GX44Gm44G/44KLXShodHRwczovL3FpaXRhLmNvbS9hbXV5aWthbS9pdGVtcy9lOGE0NWRhYWU1OWM2OGJlMGZjOCkgYnkgW0BhbXV5aWthbV0oaHR0cHM6Ly90d2l0dGVyLmNvbS9hbXV5aWthbSkKLSAyMDE5LTAzLTI3IC0gW09wZW5BUEkz44KS5L2/44Gj44Gm44G/44KI44GG77yBR2/oqIDoqp7jgafjgq/jg6njgqTjgqLjg7Pjg4jjgajjgrnjgr/jg5bjga7oh6rli5XnlJ/miJDjgb7jgafvvIFdKGh0dHBzOi8vdGVjaGJsb2cuem96by5jb20vZW50cnkvb3BlbmFwaTMvZ28pIGJ5IFtAZ29sZF9rb3VdKGh0dHBzOi8vdHdpdHRlci5jb20vZ29sZF9rb3UpCi0gMjAxOS0wNC0xNyAtIFtPcGVuQVBJ44Gr44KI44KL44K544Kt44O844Oe44OV44Kh44O844K544OI6ZaL55m644Gu5a6f5pa944K144Oz44OX44Or44GoQ2xvdWQgUnVu44Gr44Gk44GE44GmXShodHRwczovL3RlY2gtYmxvZy5vcHRpbS5jby5qcC9lbnRyeS8yMDE5LzA0LzE3LzE3NDAwMCkgYnkgW0B5dWtleTEwMzFdKGh0dHBzOi8vdHdpdHRlci5jb20veXVrZXkxMDMxKQotIDIwMTktMDQtMTggLSBbSG93IHRvIHVzZSBPcGVuQVBJMyBmb3IgQVBJIGRldmVsb3BlciAoUnVieUthaWdpIDIwMTkpXShodHRwczovL3NwZWFrZXJkZWNrLmNvbS9vdGE0MnkvaG93LXRvLXVzZS1vcGVuYXBpMy1mb3ItYXBpLWRldmVsb3BlcikgYnkgW0BvdGE0MnldKGh0dHBzOi8vdHdpdHRlci5jb20vb3RhNDJ5KSBhdCBbUnVieUthaWdpIDIwMTldKGh0dHBzOi8vcnVieWthaWdpLm9yZy8yMDE5KQotIDIwMTktMDQtMjkgLSBbQSBCZWdpbm5lcidzIEd1aWRlIHRvIENvZGUgR2VuZXJhdGlvbiBmb3IgUkVTVCBBUElzIChPcGVuQVBJIEdlbmVyYXRvcildKGh0dHBzOi8vZ3VtLmNvL29wZW5hcGlfZ2VuZXJhdG9yX2Vib29rKSBieSBbV2lsbGlhbSBDaGVuZ10oaHR0cHM6Ly90d2l0dGVyLmNvbS93aW5nMzI4KQotIDIwMTktMDUtMDEgLSBbRGVzaWduIGFuZCBnZW5lcmF0ZSBhIFJFU1QgQVBJIGZyb20gU3dhZ2dlciAvIE9wZW5BUEkgaW4gSmF2YSwgUHl0aG9uLCBDIyBhbmQgbW9yZV0oaHR0cHM6Ly9zaW1wbHktaG93LmNvbS9kZXNpZ24tYW5kLWdlbmVyYXRlLWFwaS1jb2RlLWZyb20tb3BlbmFwaSkgYnkgW1NpbXBseSBIb3ddKGh0dHBzOi8vc2ltcGx5LWhvdy5jb20vKQotIDIwMTktMDUtMTcgLSBbR2VuZXJhdGUgU3ByaW5nIEJvb3QgUkVTVCBBUEkgdXNpbmcgU3dhZ2dlci9PcGVuQVBJXShodHRwczovL3d3dy40N25vcnRobGFicy5jb20va25vd2xlZGdlLWJhc2UvZ2VuZXJhdGUtc3ByaW5nLWJvb3QtcmVzdC1hcGktdXNpbmctc3dhZ2dlci1vcGVuYXBpLykgYnkgW0FudG9uaWUgWmFmaXJvdl0oaHR0cHM6Ly93d3cuNDdub3J0aGxhYnMuY29tL2F1dGhvci9hbnRvbmllLXphZmlyb3YvKQotIDIwMTktMDUtMjIgLSBbUkVTVCBBUElz5Luj56CB55Sf5oiQ5oyH5Y2XKE9wZW5BUEkgR2VuZXJhdG9yKV0oaHR0cHM6Ly9ndW0uY28vb3BlbmFwaV9nZW5lcmF0b3JfZWJvb2tfZ2IpIGJ5IFtXaWxsaWFtIENoZW5nXShodHRwczovL3R3aXR0ZXIuY29tL3dpbmczMjgpLCBbWGluIE1lbmddKGh0dHBzOi8vZ2l0aHViLmNvbS94bWVuZzEpCi0gMjAxOS0wNS0yNCAtIFtSRVNUIEFQSSDku6PnorznlJ/miJDmjIfljZcgKE9wZW5BUEkgR2VuZXJhdG9yKV0oaHR0cHM6Ly9ndW0uY28vb3BlbmFwaV9nZW5lcmF0b3JfZWJvb2tfYmlnNSkgYnkgW1dpbGxpYW0gQ2hlbmddKGh0dHBzOi8vdHdpdHRlci5jb20vd2luZzMyOCkKLSAyMDE5LTA2LTI0IC0gW0t1YmVybmV0ZXMgQ2xpZW50cyBhbmQgT3BlbkFQSSBHZW5lcmF0b3JdKGh0dHBzOi8vc3BlYWtlcmRlY2suY29tL3dpbmczMjgva3ViZXJuZXRlcy1jbGllbnRzLWFuZC1vcGVuYXBpLWdlbmVyYXRvcikgYnkgW1dpbGxpYW0gQ2hlbmddKGh0dHBzOi8vdHdpdHRlci5jb20vd2luZzMyOCkgYXQgW0t1YmVybmV0ZXMgQ29udHJpYnV0b3IgU3VtbWl0cyBTaGFuZ2hhaSAyMDE5XShodHRwczovL3d3dy5sZmFzaWFsbGMuY29tL2V2ZW50cy9jb250cmlidXRvcnMtc3VtbWl0LWNoaW5hLTIwMTkvKQotIDIwMTktMDYtMjggW0NvZGV3aW5kIE9wZW5BUEkgVG9vbHNdKGh0dHBzOi8vbWFya2V0cGxhY2UuZWNsaXBzZS5vcmcvY29udGVudC9jb2Rld2luZC1vcGVuYXBpLXRvb2xzKSBpbiBbRWNsaXBzZSBNYXJrZXRwbGFjZV0oaHR0cHM6Ly9tYXJrZXRwbGFjZS5lY2xpcHNlLm9yZy8pIGJ5IElCTQotIDIwMTktMDYtMjkgW0NvZGV3aW5kIE9wZW5BUEkgVG9vbHNdKGh0dHBzOi8vbWFya2V0cGxhY2UudmlzdWFsc3R1ZGlvLmNvbS9pdGVtcz9pdGVtTmFtZT1JQk0uY29kZXdpbmQtb3BlbmFwaS10b29scykgaW4gW1Zpc3VhbCBTdHVkaW8gTWFya2V0cGxhY2VdKGh0dHBzOi8vbWFya2V0cGxhY2UudmlzdWFsc3R1ZGlvLmNvbS8pIGJ5IElCTQotIDIwMTktMDctMDQgLSBbUkVTVCBBUEkg44Gu44Gf44KB44Gu44Kz44O844OI44KZ55Sf5oiQ5YWl6ZaAIChPcGVuQVBJIEdlbmVyYXRvcildKGh0dHBzOi8vZ3VtLmNvL29wZW5hcGlfZ2VuZXJhdG9yX2Vib29rX2JpZzUpIGJ5IFtXaWxsaWFtIENoZW5nXShodHRwczovL3R3aXR0ZXIuY29tL3dpbmczMjgpLCBb5Lit6YeO5pqB5Lq6XShodHRwczovL2dpdGh1Yi5jb20vYWNraW50b3NoKSwgW+WSjOeUsOaLk+acl10oaHR0cHM6Ly9naXRodWIuY29tL3RheHBvbikKLSAyMDE5LTA3LTA4IC0gW09wZW5BUEkgR2VuZXJhdG9yIOOBq+OCs+ODs+ODiOODquODk+ODpeODvOODiOOBl+OBn+OCieekvuWQjeOBjOi8ieOBo+OBn+ipseOAgihDQU0pIC0gQ0FNIFRFQ0ggQkxPR10oaHR0cHM6Ly90ZWNoLmNhbS1pbmMuY28uanAvZW50cnkvMjAxOS8wNy8wOC8xNDAwMDApIGJ5IFtDQU0sIEluYy5dKGh0dHBzOi8vd3d3LmNhbS1pbmMuY28uanAvKQotIDIwMTktMDctMTQgLSBbT3BlbkFQSSBHZW5lcmF0b3LjgadQeXRob27jga7jgq/jg6njgqTjgqLjg7Pjg4jjg6njgqTjg5bjg6njg6rjgpLkvZzmiJDjgZfjgZ9dKGh0dHBzOi8vcWlpdGEuY29tL3l1amkzOGt3bXQvaXRlbXMvZGZiOTI5MzE2YTEzMzVhMTYxYzApIGJ5IFt5dWppMzhrd210XShodHRwczovL3FpaXRhLmNvbS95dWppMzhrd210KQotIDIwMTktMDctMTkgLSBbRGV2ZWxvcGVyIEV4cGVyaWVuY2UgKERYKSBmb3IgT3Blbi1Tb3VyY2UgUHJvamVjdHM6IEhvdyB0byBFbmdhZ2UgRGV2ZWxvcGVycyBhbmQgQnVpbGQgYSBHcm93aW5nIERldmVsb3BlciBDb21tdW5pdHldKGh0dHBzOi8vc3BlYWtlcmRlY2suY29tL3dpbmczMjgvZGV2ZWxvcGVyLWV4cGVyaWVuY2UtZHgtZm9yLW9wZW4tc291cmNlLXByb2plY3RzLWVuZ2xpc2gtamFwYW5lc2UpIGJ5IFtXaWxsaWFtIENoZW5nXShodHRwczovL3R3aXR0ZXIuY29tL3dpbmczMjgpLCBb5Lit6YeO5pqB5Lq6XShodHRwczovL2dpdGh1Yi5jb20vYWNraW50b3NoKSBhdCBbT3BlbiBTb3VyY2UgU3VtbWl0IEphcGFuIDIwMTldKGh0dHBzOi8vZXZlbnRzLmxpbnV4Zm91bmRhdGlvbi5vcmcvZXZlbnRzL29wZW4tc291cmNlLXN1bW1pdC1qYXBhbi0yMDE5LykKLSAyMDE5LTA4LTE0IC0gW091ciBPcGVuQVBJIGpvdXJuZXkgd2l0aCBTdGFuZGFyZGl6aW5nIFNES3NdKGh0dHBzOi8vYml0bW92aW4uY29tL291ci1vcGVuYXBpLWpvdXJuZXktd2l0aC1zdGFuZGFyZGl6aW5nLXNka3MvKSBieSBbU2ViYXN0aWFuIEJ1cmdzdGFsbGVyXShodHRwczovL2JpdG1vdmluLmNvbS9hdXRob3Ivc2J1cmdzdGFsbGVyLykgYXQgW0JpdG1vdmluXShodHRwczovL3d3dy5iaXRtb3Zpbi5jb20pCi0gMjAxOS0wOC0xNSAtIFtBUEnjga7jgrPjg7zjg4njgpLoh6rli5XnlJ/miJDjgZXjgZvjgZ/jgYTjgaDjgZHjgarjgolnUlBD44Gn44Gq44GP44Gm44KC44KI44GP44Gq44GEP10oaHR0cHM6Ly93d3cubTN0ZWNoLmJsb2cvZW50cnkvMjAxOS8wOC8xNS8xMTAwMDApIGJ5IFtNMywgSW5jLl0oaHR0cHM6Ly9jb3Jwb3JhdGUubTMuY29tLykKLSAyMDE5LTA4LTIyIC0gW+ODnuOCpOOCr+ODreOCteODvOODk+OCueOBq+OBiuOBkeOCi1dlYiBBUEnjgrnjgq3jg7zjg57jga7nrqHnkIbilIAgR3JhcGhRTOOAgWdSUEPjgIFPcGVuQVBJ44Gu54m55b6044Go5L2/44GE44Gp44GT44KNXShodHRwczovL2VtcGxveW1lbnQuZW4tamFwYW4uY29tL2VuZ2luZWVyaHViL2VudHJ5LzIwMTkvMDgvMjIvMTAzMDAwKSBieSBbQG90YTQyeV0oaHR0cHM6Ly90d2l0dGVyLmNvbS9vdGE0MnkpCi0gMjAxOS0wOC0yNCAtIFtTd2FnZ2Vy44OJ44Kt44Ol44Oh44Oz44OI44GL44KJT3BlbkFQSSBHZW5lcmF0b3LjgpLkvb/jgaPjgabjg6Ljg4Pjgq/jgrXjg7zjg5Djg7zkvZzmiJBdKGh0dHBzOi8vcWlpdGEuY29tL21hc2F5b3NoaTAyMjIvaXRlbXMvNDg0NWU0YzcxNWQwNDU4N2MxMDQpIGJ5IFvlnYLmnKzmraPnvqldKGh0dHBzOi8vcWlpdGEuY29tL21hc2F5b3NoaTAyMjIpCi0gMjAxOS0wOC0yOSAtIFtPcGVuQVBJ5Yid5o6iXShodHRwczovL2Nsb3VkLnRlbmNlbnQuY29tL2RldmVsb3Blci9hcnRpY2xlLzE0OTU5ODYpIGJ5IFtwZWFreGllXShodHRwczovL2Nsb3VkLnRlbmNlbnQuY29tL2RldmVsb3Blci91c2VyLzExMTMxNTIpIGF0IFvohb7orq/kupHnpL7ljLpdKGh0dHBzOi8vY2xvdWQudGVuY2VudC5jb20vZGV2ZWxvcGVyKQotIDIwMTktMDgtMjkgLSBb5YWo6Z2i6L+b5YyW77yaS3ViZXJuZXRlcyBDUkQgMS4xNiBHQeWJjeeeu10oaHR0cHM6Ly93d3cuc2VydmljZW1lc2hlci5jb20vYmxvZy9rdWJlcm5ldGVzLTEuMTYtY3JkLWdhLXByZXZpZXcvKSBieSBbTWluIEtpbV0oaHR0cHM6Ly9naXRodWIuY29tL3l1ZTk5NDQ4ODIpIGF0IFtTZXJ2aWNlTWVzaGVyIEJsb2ddKGh0dHBzOi8vd3d3LnNlcnZpY2VtZXNoZXIuY29tL2Jsb2cvKQotIDIwMTktMDktMDEgLSBbQ3JlYXRpbmcgYSBQSFAtU2xpbSBzZXJ2ZXIgdXNpbmcgT3BlbkFQSSAoWW91dHViZSB2aWRlbyldKGh0dHBzOi8vd3d3LnlvdXR1YmUuY29tL3dhdGNoP3Y9NWNKdGJJcnNZa2cpIGJ5IFtEYW5pZWwgUGVyc3Nvbl0oaHR0cHM6Ly93d3cueW91dHViZS5jb20vY2hhbm5lbC9VQ25HLVROMjNsc3dPNlFidldoTXR4cEEpCi0gMjAxOS0wOS0wNiAtIFtWZXJ0LnggYW5kIE9wZW5BUEldKGh0dHBzOi8vd2lzc2VsLm5ldC9ibG9nLzIwMTkvMDkvdmVydHgtYW5kLW9wZW5hcGkuaHRtbCkgYnkgW1N0ZXBoYW4gSCBXaXNzZWxdKGh0dHBzOi8vdHdpdHRlci5jb20vbm90ZXNzZW5zZWkpIGF0IFt3aXNzZWwubmV0IGJsb2ddKGh0dHBzOi8vd2lzc2VsLm5ldCkKLSAyMDE5LTA5LTA5IC0gW0Nsb3VkLW5hdGl2ZSBkZXZlbG9wbWVudCAtIENyZWF0aW5nIFJFU1RmdWwgbWljcm9zZXJ2aWNlc10oaHR0cHM6Ly9jbG91ZC5pYm0uY29tL2RvY3MvY2xvdWQtbmF0aXZlP3RvcGljPWNsb3VkLW5hdGl2ZS1yZXN0LWFwaSkgaW4gW0lCTSBDbG91ZCBEb2NzXShodHRwczovL2Nsb3VkLmlibS5jb20vZG9jcykKLSAyMDE5LTA5LTE0IC0gW0dlbmVyYXRpbmcgYW5kIENvbmZpZ3VyaW5nIGEgTWFzdGVyY2FyZCBBUEkgQ2xpZW50XShodHRwczovL2RldmVsb3Blci5tYXN0ZXJjYXJkLmNvbS9wbGF0Zm9ybS9kb2N1bWVudGF0aW9uL2dlbmVyYXRpbmctYW5kLWNvbmZpZ3VyaW5nLWEtbWFzdGVyY2FyZC1hcGktY2xpZW50LykgYXQgW01hc3RlcmNhcmQgRGV2ZWxvcGVycyBQbGF0Zm9ybV0oaHR0cHM6Ly9kZXZlbG9wZXIubWFzdGVyY2FyZC5jb20vcGxhdGZvcm0vZG9jdW1lbnRhdGlvbi8pCi0gMjAxOS0wOS0xNSAtIFtPcGVuQVBJKFN3YWdnZXIp5bCO5YWl5LiL6Kq/44G5XShodHRwczovL3FpaXRhLmNvbS9TaG9pY2hpS3VyYW9rYS9pdGVtcy9mMWY3YTNjMjM3NmY3Y2Q5YzU2YSkgYnkgW1Nob2ljaGkgS3VyYW9rYV0oaHR0cHM6Ly9xaWl0YS5jb20vU2hvaWNoaUt1cmFva2EpCi0gMjAxOS0wOS0xNyAtIFtUdXRvcmlhbDogRG9jdW1lbnRpbmcgaHR0cDRrIEFQSXMgd2l0aCBPcGVuQXBpM10oaHR0cHM6Ly93d3cuaHR0cDRrLm9yZy90dXRvcmlhbHMvZG9jdW1lbnRpbmdfYXBpc193aXRoX29wZW5hcGkvKSBieSBbaHR0cDRrXShodHRwczovL3d3dy5odHRwNGsub3JnLykKLSAyMDE5LTA5LTIyIC0gW09wZW5BUEkgM+OCkuWujOWFqOOBq+eQhuino+OBp+OBjeOCi+acrF0oaHR0cHM6Ly9ib290aC5wbS9qYS9pdGVtcy8xNTcxOTAyKSBieSBbQG90YTQyeV0oaHR0cHM6Ly90d2l0dGVyLmNvbS9vdGE0MnkpCi0gMjAxOS0wOS0yMiAtIFtSRVNUZnVsIEFQSXM6IFR1dG9yaWFsIG9mIE9wZW5BUEkgU3BlY2lmaWNhdGlvbl0oaHR0cHM6Ly9tZWRpdW0uY29tL0BhbWlybS5sYXZhc2FuaS9yZXN0ZnVsLWFwaXMtdHV0b3JpYWwtb2Ytb3BlbmFwaS1zcGVjaWZpY2F0aW9uLWVlYWRhMGUzOTAxZCkgYnkgW0FtaXIgTGF2YXNhbmldKGh0dHBzOi8vbWVkaXVtLmNvbS9AYW1pcm0ubGF2YXNhbmkpCi0gMjAxOS0wOS0yMiAtIFtSZWRlZmluaW5nIFNES3MgYXMgc29mdHdhcmUgZGl2ZXJzaXR5IGtpdHNdKGh0dHBzOi8vZGV2cmVsLm5ldC9kZXYtcmVsL3JlZGVmaW5pbmctc2Rrcy1hcy1zb2Z0d2FyZS1kaXZlcnNpdHkta2l0cykgYnkgW1NpZCBNYWVzdHJlIChYZXJvKV0oaHR0cHM6Ly90d2l0dGVyLmNvbS9zaWRuZXlhbGxlbikgYXQgW0RldlJlbENvbiBTYW4gRnJhbmNpc2NvIDIwMTldKGh0dHBzOi8vc2YyMDE5LmRldnJlbC5uZXQvKQotIDIwMTktMDktMjMgLSBbc3dhZ2dlcuOBi+OCiU9wZW5BcGkgR2VuZXJhdG9y44GnU3ByaW5n44Gu44Kz44O844OJ44KS6Ieq5YuV55Sf5oiQXShodHRwczovL3FpaXRhLmNvbS9saXR0bGVGZWV0L2l0ZW1zLzQ5MmRmMmFkNjhhMDc5OWE1ZTVlKSBieSBbQGxpdHRsZUZlZXRdKGh0dHBzOi8vcWlpdGEuY29tL2xpdHRsZUZlZXQpIGF0IFtRaWl0YV0oaHR0cHM6Ly9xaWl0YS5jb20vKQotIDIwMTktMDktMjQgLSBbRWluZSBTdHVuZGUgd2FzIG1pdCBBcGkgRmlyc3QhXShodHRwczovL3d3dy5zbGlkZXNoYXJlLm5ldC9KYW5XZWluc2NoZW5rZXIvZWluZS1zdHVuZGUtd2FzLW1pdC1hcGktZmlyc3QpIGJ5IFtAamFud2VpbnNjaGVua2VyXShodHRwczovL3R3aXR0ZXIuY29tL2phbndlaW5zY2hlbmtlcikgYXQgW0phdmEgRm9ydW0gTm9yZF0oaHR0cHM6Ly9qYXZhZm9ydW1ub3JkLmRlLykKLSAyMDE5LTEwLTA5IC0gW29wZW5hcGktZ2VuZXJhdG9yIOOBp+eUn+aIkOOBl+OBnyBHbyDjgq/jg6njgqTjgqLjg7Pjg4jjgacgQmVhcmVyIOiqjeiovOOCkuOBmeOCi10oaHR0cHM6Ly9hdXRvcHAtdGVjaC5oYXRlbmFibG9nLmNvbS9lbnRyeS8yMDE5LzEwLzA5LzIyMjAzOSkgYnkgW0FraXJhIFRhbmltdXJhXShodHRwczovL2dpdGh1Yi5jb20vYXV0b3BwKQotIDIwMTktMTAtMTAgLSBbQXV0b21hdGljIEdlbmVyYXRpb24gb2YgUkVTVCBDbGllbnRzXShodHRwczovL3d3dy5tZWV0dXAuY29tL2ZyLUZSL0NyaXRlby1MYWJzLVRlY2gtVGFsa3MvZXZlbnRzLzI2NDc3NTc2OC8pIGJ5IFRob21hcyBQZXlyYXJkLCBTZW5pb3IgU29mdHdhcmUgRW5naW5lZXIgYXQgQ3JpdGVvIGluIFtGdWxsLVN0YWNrIFRlY2ggVGFsa3MgKE1lZXR1cCldKGh0dHBzOi8vd3d3Lm1lZXR1cC5jb20vZnItRlIvQ3JpdGVvLUxhYnMtVGVjaC1UYWxrcy9ldmVudHMvMjY0Nzc1NzY4LykKLSAyMDE5LTEwLTEyIC0gW09wZW5BcGnoh6rliqjnlJ/miJBjbGllbnRdKGh0dHBzOi8vYmxvZy5jc2RuLm5ldC93eGlkMjc5ODIyNi9hcnRpY2xlL2RldGFpbHMvMTAyNTI3NDY3KSBieSBb6YOR5rO95rSyXShodHRwczovL21lLmNzZG4ubmV0L3d4aWQyNzk4MjI2KQotIDIwMTktMTAtMTYgLSBbSG93IHRvIHNoaXAgQVBJcyBmYXN0ZXI/XShodHRwczovL21lZGl1bS5jb20vQGFjY291bnRzXzc2MjI0L2hvdy10by1zaGlwLWFwaXMtZmFzdGVyLWNhYmVmMmY4MTllNCkgYnkgW1NpbW9uIEd1aWxsaWFtcyBAIFBvbmlDb2RlXShodHRwczovL3Bvbmljb2RlLmRldikKLSAyMDE5LTEwLTIyIC0gW09wZW5BUEkgKyBTcHJpbmcgQm9vdChLb3RsaW4p44Gn44OV44Kh44Kk44Or44OA44Km44Oz44Ot44O844OJQVBJ44KS5L2c5oiQ44GZ44KLXShodHRwczovL3FpaXRhLmNvbS9ib3Jvbm5nby9pdGVtcy80Yjc4YjkyNTI2MjA5ZGFlYWVlOSkgYnkgW1l1a2kgRnVydWthd2FdKGh0dHBzOi8vdHdpdHRlci5jb20veXVraV9mdXJ1a2F3YTUpCi0gMjAxOS0xMC0yNCAtIFtNaWNyb3Byb2ZpbGUgT3BlbkFQSSAtIENvZGUgRmlyc3Qgb3IgRGVzaWduIEZpcnN0P10oaHR0cHM6Ly9naXRodWIuY29tL3BlLXN0L2FwaWRvY3MvYmxvYi9tYXN0ZXIvTWljcm9Qcm9maWxlLU9wZW5BUEktYWxsLXNsaWRlcy5wZGYpIGJ5IFtQZXRlciBbcMmbyoPJmV0gU3RlaW5lcl0oaHR0cHM6Ly90d2l0dGVyLmNvbS9wZXNjaGUpIGF0IFtlY2xpcHNlY29uIEV1cm9wZSAyMDE5XShodHRwczovL3d3dy5lY2xpcHNlY29uLm9yZy9ldXJvcGUyMDE5L3Nlc3Npb25zL21pY3JvcHJvZmlsZS1vcGVuYXBpLWNvZGUtZmlyc3Qtb3ItZGVzaWduLWZpcnN0KQotIDIwMTktMTEtMDYgLSBbR2VuZXJhdGluZyBBUEkgY2xpZW50cyBiYXNlZCBvbiBPcGVuQVBJIHYzIHNwZWNpZmljYXRpb25zXShodHRwczovLzk4ZWxlbWVudHMuY29tL2Jsb2cvZ2VuZXJhdGluZy1hcGktY2xpZW50cy1iYXNlZC1vbi1vcGVuYXBpLXYzLXNwZWNpZmljYXRpb25zKSBieSBbRG9taW5payBKYXN0cnrEmWJza2kgQCA5OGVsZW1lbnRzXShodHRwczovLzk4ZWxlbWVudHMuY29tKQotIDIwMTktMTEtMDYgLSBbT3BlbkFQSeOCkuWIqeeUqOOBl+OBpuiHquWJjeOBrkFQSeOCteODvOODkOODvChTaW5hdHJhKeOCkuenu+akjeOBl+OBn+aZguOBruODoeODol0oaHR0cHM6Ly9xaWl0YS5jb20vWWFzdWhpcm9BQkUvaXRlbXMvYzczOTIwZWFiMmQ5ZDZlOTdmZDkpIGJ5IFtZYXN1aGlybyBBQkVdKGh0dHBzOi8vdHdpdHRlci5jb20vWWFzdWhpcm9BQkUpCi0gMjAxOS0xMS0wNyAtIFtBUEkgRmlyc3QgZGV2ZWxvcG1lbnQgd2l0aCBPcGVuQVBJIC0gWW91IHNob3VsZCB5b3UgcHJhY3Rpc2UgaXQgIT9dKGh0dHBzOi8vd3d3LnlvdXR1YmUuY29tL3dhdGNoP3Y9RjlpRjNhMVo4WTgpIGJ5IFtOaWNrIFZhbiBIb29mXShodHRwczovL3d3dy5uaWNrdmFuaG9vZi5jb20vKSBhdCBbRGV2b3h4IEJlbGdpdW0gMjAxOV0oaHR0cHM6Ly9kZXZveHguYmUvKQotIDIwMTktMTEtMDggLSBbSkhpcHN0ZXIgYmV5b25kIENSVUQgLSBBUEktRmlyc3QgZm9yIEVudGVycHJpc2VzIGJ5IEVucmljbyBDb3N0YW56aV0oaHR0cHM6Ly93d3cueW91dHViZS5jb20vd2F0Y2g/dj1tMjhKRm92S1EyMCkgYnkgW0VucmljbyBDb3N0YW56aV0oaHR0cHM6Ly90d2l0dGVyLmNvbS9lbnJpY29jb3N0YW56aSkgYXQgW0pIaXBzdGVyIENvbmYgMjAxOSBpbiBQYXJpc10oaHR0cHM6Ly9qaGlwc3Rlci1jb25mLmdpdGh1Yi5pby8pCi0gMjAxOS0xMS0xMSAtIFtUeXBlU2NyaXB0IFJFU1QgQVBJ44Kv44Op44Kk44Ki44Oz44OIXShodHRwczovL3FpaXRhLmNvbS91bmh1cnJpZWQvaXRlbXMvN2I3NGY3ZDNjNDM1NDVkYWRkMmIpIGJ5IFtAdW5odXJyaWVkXShodHRwczovL3FpaXRhLmNvbS91bmh1cnJpZWQpCi0gMjAxOS0xMS0xMSAtIFtPbmUgU3BlYyB0byBSdWxlIHRoZW0gYWxsIC0gT3BlbkFQSSBpbiBBY3Rpb25dKGh0dHBzOi8vd3d3LnlvdXR1YmUuY29tL3dhdGNoP3Y9TU1heV9uaHQ4ZWMpIGJ5IFtBbmRyZWFzIExpdHRdKGh0dHBzOi8vZ2l0aHViLmNvbS9saXR0bGRyKSBhdCBbY29kZS50YWxrcyAyMDE5XShodHRwczovL3d3dy5jb2RldGFsa3MuY29tLykKLSAyMDE5LTExLTEzIC0gW09wZW5BUEkgMy4wIEVkaXRvciBBbmQgR2VuZXJhdG9yIFdpdGggQSBTcHJpbmcgQm9vdCBFeGFtcGxlXShodHRwczovL3NpbXBseS1ob3cuY29tL2Rlc2lnbi1hbmQtZ2VuZXJhdGUtYXBpLWNvZGUtZnJvbS1vcGVuYXBpKSBhdCBbU2ltcGx5IEhvd10oaHR0cHM6Ly9zaW1wbHktaG93LmNvbS8pCi0gMjAxOS0xMS0xNyAtIFtPcGVuQVBJIEdlbmVyYXRvciBZb3VUdWJlIHBsYXlsaXN0XShodHRwczovL3d3dy55b3V0dWJlLmNvbS9wbGF5bGlzdD9saXN0PVBMdEp5SFZNZHpmRjZmQmtPVVY1VkRWRXJQMjNDR2dISXkpIGF0IFtZb3VUdWJlXShodHRwczovL3d3dy55b3V0dWJlLmNvbSkKLSAyMDE5LTExLTIwIC0gW0ludHJvZHVjdGlvbiB0byBPcGVuQVBJXShodHRwczovL25vdGkuc3QvbG9ybmFqYW5lL0h2REg3VS9pbnRyb2R1Y3Rpb24tdG8tb3BlbmFwaSkgYnkgW0xvcm5hIE1pdGNoZWxsXShodHRwczovL3R3aXR0ZXIuY29tL2xvcm5hamFuZSkgYXQgW0dPVE8gQ29wZW5oYWdlbiAyMDE5XShodHRwczovL2dvdG9jcGguY29tLzIwMTkvKQotIDIwMTktMTEtMjAgLSBbSG93IHRvIEdlbmVyYXRlIEFuZ3VsYXIgY29kZSBmcm9tIE9wZW5BUEkgc3BlY2lmaWNhdGlvbnNdKGh0dHBzOi8vZG90bmV0dGhvdWdodHMubmV0L2hvdy10by1nZW5lcmF0ZS1hbmd1bGFyLWNvZGUtZnJvbS1vcGVuYXBpLXNwZWNpZmljYXRpb25zLykgYnkgQW51cmFqCi0gMjAxOS0xMS0yMyAtIFtTd2FnZ2VyIOOBp+OBr+OBquOBhCBPcGVuQVBJIFNwZWNpZmljYXRpb24gMy4wIOOBq+OCiOOCiyBBUEkg44K144O844OQ44O86ZaL55m6XShodHRwczovL3d3dy5zbGlkZXNoYXJlLm5ldC90ZWNoYmxvZ3lhaG9vL3N3YWdnZXItb3BlbmFwaS1zcGVjaWZpY2F0aW9uLTMwLWFwaSkgYnkgW1RldHN1eWEgTW9yaW1vdG9dKGh0dHBzOi8vZ2l0aHViLmNvbS90MnkpIGF0IFtKSlVHIENDQyAyMDE5IEZhbGxdKGh0dHBzOi8vY2NjMjAxOWZhbGwuamF2YS11c2Vycy5qcC8pCi0gMjAxOS0xMS0yNCAtIFtBY2NlbGVyYXRlIEZsdXR0ZXIgZGV2ZWxvcG1lbnQgd2l0aCBPcGVuQVBJIGFuZCBEYXJ0IGNvZGUgZ2VuZXJhdGlvbl0oaHR0cHM6Ly9tZWRpdW0uY29tL0BpcmluYXNvdXRod2VsbF8yMjAvYWNjZWxlcmF0ZS1mbHV0dGVyLWRldmVsb3BtZW50LXdpdGgtb3BlbmFwaS1hbmQtZGFydC1jb2RlLWdlbmVyYXRpb24tMWYxNmY4MzI5YTZhKSBieSBbSXJpbmEgU291dGh3ZWxsXShodHRwczovL21lZGl1bS5jb20vQGlyaW5hc291dGh3ZWxsXzIyMCkKLSAyMDE5LTExLTI1IC0gW29wZW5hcGktZ2VuZXJhdG9y44Gn5omL6Lu944Gr44K544K/44OW44K144O844OQ44Go44Kv44Op44Kk44Ki44Oz44OI44Gu55Sf5oiQXShodHRwczovL3FpaXRhLmNvbS9wb2Nob3BvY2hvMTMvaXRlbXMvOGRiNjYyZTE5MzRmYjJiNDA4YjgpIGJ5IFtAcG9jaG9wb2NobzEzXShodHRwczovL3R3aXR0ZXIuY29tL3BvY2hvcG9jaG8xMykKLSAyMDE5LTExLTI2IC0gW0NvcmRhQ29uIDIwMTkgSGlnaGxpZ2h0czogQnJhaWQgU2VydmVyIGFuZCBPcGVuQVBJIEdlbmVyYXRvciBmb3IgQ29yZGEgQ2xpZW50IEFQSeKAmXNdKGh0dHBzOi8vYmxvZy5iOWxhYi5jb20vY29yZGFjb24tMjAxOS1oaWdobGlnaHRzLWJyYWlkLXNlcnZlci1hbmQtb3BlbmFwaS1nZW5lcmF0b3ItZm9yLWNvcmRhLWZsb3dzLWFwaS1zLWQyNDE3OWNjYjI3YykgYnkgW0FkZWwgUnVzdHVtXShodHRwczovL2Jsb2cuYjlsYWIuY29tL0BhZGVscmVzdG9tKSBhdCBbQjlsYWJdKGh0dHBzOi8vYmxvZy5iOWxhYi5jb20vKQotIDIwMTktMTItMDMgLSBbQSBSb2FkIHRvIExlc3MgQ29kaW5nOiBBdXRvLUdlbmVyYXRlIEFQSUxpYnJhcnldKGh0dHBzOi8vd3d3LmNvcmRhLm5ldC9ibG9nL2Etcm9hZC10by1sZXNzLWNvZGluZy1hdXRvLWdlbmVyYXRlLWFwaWxpYnJhcnkvKSBhdCBbQ29yZGEgQmxvZ10oaHR0cHM6Ly93d3cuY29yZGEubmV0L2Jsb2cvKQotIDIwMTktMTItMDQgLSBbQW5ndWxhcu+8i05lc3RKU++8i09wZW5BUEnvvIhTd2FnZ2Vy77yJ44Gn44Oe44Kk44Kv44Ot44K144O844OT44K544KS6KaW6YeO44Gr5YWl44KM44Gf55Kw5aKD44KS6ICD44GI44KLXShodHRwczovL3FpaXRhLmNvbS90ZXJhY3k1NS9pdGVtcy8wMzI3YzdhMTcwZWM3NzI5NzBjNikgYnkgW+OBpuOCieOBl+ODvF0oaHR0cHM6Ly90d2l0dGVyLmNvbS90ZXJhY3k1NSkKLSAyMDE5LTEyLTA1IC0gW0NvZGUgZ2VuZXJhdGlvbiBvbiB0aGUgSmF2YSBWTV0oaHR0cHM6Ly9zcGVha2VyZGVjay5jb20vc3VsbGlzL2NvZGUtZ2VuZXJhdGlvbi1vbi10aGUtamF2YS12bS0yMDE5LTEyLTA1KSBieSBbU2VhbiBTdWxsaXZhbl0oaHR0cHM6Ly9zcGVha2VyZGVjay5jb20vc3VsbGlzKQotIDIwMTktMTItMTcgLSBbT3BlbkFQSSBHZW5lcmF0b3Ig44GnIE9BdXRoMiDjgqLjgq/jgrvjgrnjg4jjg7zjgq/jg7PnmbrooYzjga7jgrPjg7zjg4njgb7jgafnlJ/miJDjgZfjgabjgb/jgotdKGh0dHBzOi8vd3d3LnRlY2hzY29yZS5jb20vYmxvZy8yMDE5LzEyLzE3L29wZW5hcGktZ2VuZXJhdG9yLW9hdXRoMi1hY2Nlc3N0b2tlbi8pIGJ5IFtURUNIU0NPUkVdKGh0dHBzOi8vd3d3LnRlY2hzY29yZS5jb20vYmxvZy8pCi0gMjAxOS0xMi0yMyAtIFtVc2UgQWRhIGZvciBZb3VyIFdlYiBEZXZlbG9wbWVudF0oaHR0cHM6Ly93d3cuZWxlY3Ryb25pY2Rlc2lnbi5jb20vdGVjaG5vbG9naWVzL2VtYmVkZGVkLXJldm9sdXRpb24vYXJ0aWNsZS8yMTExOTE3Ny91c2UtYWRhLWZvci15b3VyLXdlYi1kZXZlbG9wbWVudCkgYnkgW1N0ZXBoYW5lIENhcnJlel0oaHR0cHM6Ly9naXRodWIuY29tL3N0Y2FycmV6KQotIDIwMTktMTItMjMgLSBbT3BlbkFQSeOBruOCueOCreODvOODnuOCkuWIhuWJsuODu+ani+mAoOWMluOBl+OBpuOBhOOBj+aWueazlV0oaHR0cHM6Ly9naWZ0LXRlY2guY28uanAvYXJ0aWNsZXMvc3RydWN0dXJlZC1vcGVuYXBpLXNjaGVtYSkgYnkgW+Wwj+mjr+WhmumBlOS5n10oaHR0cHM6Ly9naXRodWIuY29tL3QyaDUpIGF0IFtHaUZULCBJbmNdKGh0dHBzOi8vZ2lmdC10ZWNoLmNvLmpwLykKLSAyMDIwLTAxLTE3IC0gW09wZW5BUEkgZGVtbyBmb3IgUHVscCAzLjAgR0FdKGh0dHBzOi8vd3d3LnlvdXR1YmUuY29tL3dhdGNoP3Y9bUZCUC1NMFpQZncmdD0xNzhzKSBieSBbUHVscF0oaHR0cHM6Ly93d3cueW91dHViZS5jb20vY2hhbm5lbC9VQ0k0M0ZmczRWUER2N2F3WHZ2QkpmUlEpIGF0IFtZb3V0dWJlXShodHRwczovL3d3dy55b3V0dWJlLmNvbS8pCi0gMjAyMC0wMS0xOSAtIFtXaHkgZG9jdW1lbnQgYSBSRVNUIEFQSSBhcyBjb2RlP10oaHR0cHM6Ly9kZXYudG8vcm9sZnN0cmVlZmtlcmsvd2h5LWRvY3VtZW50LWEtcmVzdC1hcGktYXMtY29kZS01ZTdwKSBieSBbUm9sZiBTdHJlZWZrZXJrXShodHRwczovL2dpdGh1Yi5jb20vcnBzdHJlZWYpIGF0IFtERVYgQ29tbXVuaXR5XShodHRwczovL2Rldi50bykKLSAyMDIwLTAxLTI4IC0gW0dldCBZb3VyIFNlcnZlcmxlc3MgU3dhZ2dlciBCYWNrIHdpdGggT3BlbkFQSV0oaHR0cHM6Ly9kZXYudG8vbWF0dHR5bGVyL2dldC15b3VyLXNlcnZlcmxlc3Mtc3dhZ2dlci1iYWNrLXdpdGgtb3BlbmFwaS00OGdjKSBieSBbTWF0dCBUeWxlcl0oaHR0cHM6Ly9kZXYudG8vbWF0dHR5bGVyKQotIDIwMjAtMDEtMzAgLSBbT3BlbkFQSSBHZW5lcmF0b3Ljgbjjga7jgrPjg7Pjg4jjg6rjg5Pjg6Xjg7zjg4hdKGh0dHBzOi8vd3d3Lnl1dGFrYTBtLndvcmsvZW50cnkvMjAyMC8wMS8zMC8xNjM5MDUpIGJ5IFt5dXRha2EwbV0oaHR0cHM6Ly9naXRodWIuY29tL3l1dGFrYTBtKQotIDIwMjAtMDItMDEgLSBbVXNpbmcgT3BlbkFQSSB0byBNYXhpbWlzZSBZb3VyIFB1bHAgMyBFeHBlcmllbmNlXShodHRwczovL2Zvc2RlbS5vcmcvMjAyMC9zY2hlZHVsZS9ldmVudC9vcGVuYXBpLykgYnkgW0Rlbm5pcyBLbGliYW5dKGh0dHBzOi8vZ2l0aHViLmNvbS9ka2xpYmFuLykgYXQgW0ZPU0RFTV0oaHR0cHM6Ly9mb3NkZW0ub3JnLykKLSAyMDIwLTAyLTA3IC0gW1doeSB5b3Ugc2hvdWxkIHVzZSBPcGVuQVBJIGZvciB5b3VyIEFQSSBkZXNpZ25dKGh0dHBzOi8vd3d3LnlvdXR1YmUuY29tL3dhdGNoP3Y9emhiN3ZVQXBMVzgmdD05MjdzKSBieSBbTmljayBWYW4gSG9vZl0oaHR0cHM6Ly9hcGljb25mZXJlbmNlLm5ldC9zcGVha2VyL25pY2stdmFuLWhvb2YvKSBhdCBbQVBJIENvbmZlcmVuY2VdKGh0dHBzOi8vYXBpY29uZmVyZW5jZS5uZXQvKQotIDIwMjAtMDItMTcgLSBbUnVieW5ldGVzOiB1c2luZyBPcGVuQVBJIHRvIHZhbGlkYXRlIEt1YmVybmV0ZXMgY29uZmlnc10oaHR0cHM6Ly93d3cuYnJpZ2h0Ym94LmNvbS9ibG9nLzIwMjAvMDIvMTcvdXNpbmctb3BlbmFwaS10by12YWxpZGF0ZS1rdWJlcm5ldGVzLWNvbmZpZ3MvKSBieSBOZWlsIFdpbHNvbiBhdCBbQnJpZ2h0Ym94XShodHRwczovL3d3dy5icmlnaHRib3guY29tLykKLSAyMDIwLTAyLTIwIC0gW0J1aWxkaW5nIFNES3MgZm9yIHRoZSBmdXR1cmVdKGh0dHBzOi8vZGV2YmxvZy54ZXJvLmNvbS9idWlsZGluZy1zZGtzLWZvci10aGUtZnV0dXJlLWI3OWZmNzI2ZGZkNikgYnkgW1NpZCBNYWVzdHJlIChYZXJvKV0oaHR0cHM6Ly90d2l0dGVyLmNvbS9zaWRuZXlhbGxlbikKLSAyMDIwLTAyLTI3IC0gW051eHTliKnnlKjjg5fjg63jg4Djgq/jg4jjgadJRTEx44Go5Luy6Imv44GP44GZ44KL44Gf44KB44GuRTJFXShodHRwczovL3RlY2gubWVkcGVlci5jby5qcC9lbnRyeS9lMmUtaWUxMSkgYXQgW01lZHBlZXIuY28uanAgVGVjaCBCbG9nXShodHRwczovL3RlY2gubWVkcGVlci5jby5qcC8pCi0gMjAyMC0wMi0yOSAtIFtQcm92aWRpbmcgU3VwcG9ydCB0byBJb1QgRGV2aWNlcyBEZXBsb3llZCBpbiBEaXNjb25uZWN0ZWQgUnVyYWwgRW52aXJvbm1lbnQgKENvbmZlcmVuY2UgcGFwZXIpXShodHRwczovL2xpbmsuc3ByaW5nZXIuY29tL2NoYXB0ZXIvMTAuMTAwNy85NzgtMy0wMzAtNDE0OTQtOF8xNCkgYnkgU2VyZ2lvIExhc28sIERhbmllbCBGbG9yZXMtTWFydMOtbiwgSnVhbiBMdWlzIEhlcnJlcmFDYXJsb3MsIENhbmFsSnVhbiBNYW51ZWwsIE11cmlsbG9KYXZpZXIgQmVycm9jYWwKLSAyMDIwLTAzLTAyIC0gW0hvdyBUbyBHZW5lcmF0ZSBBbmd1bGFyICYgU3ByaW5nIENvZGUgRnJvbSBPcGVuQVBJIFNwZWNpZmljYXRpb25dKGh0dHBzOi8vd3d3Lm1va2thcHBzLmRlL2Jsb2cvaG93LXRvLWdlbmVyYXRlLWFuZ3VsYXItYW5kLXNwcmluZy1jb2RlLWZyb20tb3Blbi1hcGktc3BlY2lmaWNhdGlvbi8pIGJ5IFtNaWNoYWVsIEhvZmZtYW5uXShodHRwczovL3d3dy5tb2trYXBwcy5kZS8pCi0gMjAyMC0wMy0wMiAtIFtPcGVuQVBJIEdlbmVyYXRvciArIFR5cGVTY3JpcHQg44Gn5aeL44KB44KL6Ieq5YuV55Sf5oiQ44Gu5Z6L44Gr5a6I44KJ44KM44Gf6LGK44GL44Gq44Kv44Op44Kk44Ki44Oz44OI55Sf5rS7XShodHRwczovL2dpZnQtdGVjaC5jby5qcC9hcnRpY2xlcy9vcGVuYXBpLWdlbmVyYXRvci10eXBlc2NyaXB0KSBieSBb5LqU55m+6JS1IOebtOaouV0oaHR0cHM6Ly9naWZ0LXRlY2guY28uanAvbWVtYmVycy9uYW9raWlvcm9pKSBhdCBbR2lGVOagquW8j+S8muekvl0oaHR0cHM6Ly9naWZ0LXRlY2guY28uanAvKQotIDIwMjAtMDMtMTAgLSBbT3BlbkFQSSBHZW5lcmF0b3IgTWVldHVwICMxXShodHRwczovL3NwZWFrZXJkZWNrLmNvbS9ha2loaXRvX25ha2Fuby9vcGVuYXBpLWdlbmVyYXRvci1tZWV0dXAtbnVtYmVyLTEpIGJ5IFvkuK3ph47mmoHkurpdKGh0dHBzOi8vZ2l0aHViLmNvbS9hY2tpbnRvc2gpIGF0IFtPcGVuQVBJIEdlbmVyYXRvciBNZWV0dXAgIzFdKGh0dHBzOi8vb3BlbmFwaS1nZW5lcmF0b3ItbWVldHVwLmNvbm5wYXNzLmNvbS9ldmVudC8xNjgxODcvKQotIDIwMjAtMDMtMTUgLSBbTG9hZCBUZXN0aW5nIFlvdXIgQVBJIHdpdGggU3dhZ2dlci9PcGVuQVBJIGFuZCBrNl0oaHR0cHM6Ly9rNi5pby9ibG9nL2xvYWQtdGVzdGluZy15b3VyLWFwaS13aXRoLXN3YWdnZXItb3BlbmFwaS1hbmQtazYpCi0gMjAyMC0wNC0xMyAtIFvkv7rnmoTjgJBPQVPjgJHjgajjga7lkJHjgY3lkIjjgYTmlrkgKOeIhumAn+OBp09wZW5BUEnjgajlj4vpgZTjgavjgarjgo3jgYYpXShodHRwczovL3RlY2gtYmxvZy5vcHRpbS5jby5qcC9lbnRyeS8yMDIwLzA0LzEzLzEwMDAwMCkgaW4gW09QVGltIEJsb2ddKGh0dHBzOi8vdGVjaC1ibG9nLm9wdGltLmNvLmpwLykKLSAyMDIwLTA0LTIyIC0gW0ludHJvZHVjdGlvbiB0byBPcGVuQVBJIEdlbmVyYXRvcl0oaHR0cHM6Ly9ub3JkaWNhcGlzLmNvbS9pbnRyb2R1Y3Rpb24tdG8tb3BlbmFwaS1nZW5lcmF0b3IvKSBieSBbS3Jpc3RvcGhlciBTYW5kb3ZhbF0oaHR0cHM6Ly9ub3JkaWNhcGlzLmNvbS9hdXRob3Ivc2FuZG92YWxlZmZlY3QvKSBpbiBbTm9yZGljIEFQSXNdKGh0dHBzOi8vbm9yZGljYXBpcy5jb20vKQotIDIwMjAtMDQtMjcgLSBbSG93IHdlIHVzZSBPcGVuIEFQSSB2MyBzcGVjaWZpY2F0aW9uIHRvIGF1dG8tZ2VuZXJhdGUgQVBJIGRvY3VtZW50YXRpb24sIGNvZGUtc25pcHBldHMgYW5kIGNsaWVudHNdKGh0dHBzOi8vbWVkaXVtLmNvbS9wZGYtZ2VuZXJhdG9yLWFwaS9ob3ctd2UtdXNlLW9wZW4tYXBpLXYzLXNwZWNpZmljYXRpb24tdG8tYXV0by1nZW5lcmF0ZS1hcGktZG9jdW1lbnRhdGlvbi1jb2RlLXNuaXBwZXRzLWFuZC1jbGllbnRzLWQxMjdhM2NlYTc4NCkgYnkgW1RhbmVsIFTDpGhlcMO1bGRdKGh0dHBzOi8vbWVkaXVtLmNvbS9AdGFuZWwudGFoZXBvbGQpCi0gMjAyMC0wNS0wOSAtIFtPcGVuQVBJ44Gn44GK5omL6Lu944Gr44Oi44OD44KvQVBJ44K144O844OQ44O844KS5YuV44GL44GZXShodHRwczovL3FpaXRhLmNvbS9rYXNhX2xlL2l0ZW1zLzk3Y2E2YThkZDQ2MDU2OTVjMjVjKSBieSBbU2FjaGllIEthbWJhXShodHRwczovL3FpaXRhLmNvbS9rYXNhX2xlKQotIDIwMjAtMDUtMTggLSBbU3ByaW5nIEJvb3QgUkVTVCB3aXRoIE9wZW5BUEkgM10oaHR0cHM6Ly9kZXYudG8vYWxmb256amFuZnJpdGh6L3NwcmluZy1ib290LXJlc3Qtd2l0aC1vcGVuYXBpLTMtNTlqbSkgYnkgW0FsZm9ueiBKYW4gRnJpdGh6XShodHRwczovL2Rldi50by9hbGZvbnpqYW5mcml0aHopCi0gMjAyMC0wNS0xOSAtIFtEZWFkIFNpbXBsZSBBUElzIHdpdGggT3BlbiBBUEldKGh0dHBzOi8vd3d3LnlvdXR1YmUuY29tL3dhdGNoP3Y9c0lhWG1SNnhSQXcpIGJ5IFtDaHJpcyBUYW5rZXJzbGV5XShodHRwczovL2dpdGh1Yi5jb20vZHJhZ29ubWFudGFuaykgYXQgW05leG1vXShodHRwczovL2RldmVsb3Blci5uZXhtby5jb20vKQotIDIwMjAtMDUtMjIgLSBbVHlwZVNjcmlwdCBSRVNUIEFQSSBDbGllbnRdKGh0dHBzOi8vZGV2LnRvL3VuaHVycmllZC90eXBlc2NyaXB0LXJlc3QtYXBpLWNsaWVudC00aW4zKSBieSBbInVuaHVycmllZCJdKGh0dHBzOi8vZGV2LnRvL3VuaHVycmllZCkKLSAyMDIwLTA1LTI4IC0gW+OAkOS9v+eUqCBsb3RpZnkgKyBTd2FnZ2VyIOW7uue9ruWPr+WFseeUqOeahCBMSU5FIE5vdGlmeSBib3TjgJEgLSAjTmlKaWEgQCBDaGF0Ym90IERldmVsb3BlciBUYWl3YW4g56ysICMxOSDlsI/ogZpdKGh0dHBzOi8vd3d3LnlvdXR1YmUuY29tL3dhdGNoP3Y9YWdZVno2ZHpoMUkpIGJ5IFtDaGF0Ym90IERldmVsb3BlciBUYWl3YW5dKGh0dHBzOi8vd3d3LnlvdXR1YmUuY29tL2NoYW5uZWwvVUN4ZVlVeVpObkhtcFgyM1lORi1ld3Z3KQotIDIwMjAtMDUtMjggLSBbQnVpbGRpbmcgQVBJcyB3aXRoIExhcmF2ZWwgdXNpbmcgT3BlbkFQSV0oaHR0cHM6Ly93d3cueW91dHViZS5jb20vd2F0Y2g/dj14ZXhMdlFxQWhpQSkgYnkgW0NocmlzIFRhbmtlcnNsZXldKGh0dHBzOi8vZ2l0aHViLmNvbS9kcmFnb25tYW50YW5rKSBhdCBbTGFyYWNvbiBFVV0oaHR0cHM6Ly9sYXJhY29uLmV1LykKLSAyMDIwLTA2LTEyIC0gW0ludGVyb3BlcmFiaWxpdHkgYnkgY29uc3RydWN0aW9uOiBjb2RlIGdlbmVyYXRpb24gZm9yIEFycm93aGVhZCBDbGllbnRzXShodHRwczovL2llZWV4cGxvcmUuaWVlZS5vcmcvZG9jdW1lbnQvOTI3NDc0NikgYnkgTWljaGVsZSBBbGJhbm8sIEJyaWFuIE5pZWxzZW4gYXQgWzIwMjAgSUVFRSBDb25mZXJlbmNlIG9uIEluZHVzdHJpYWwgQ3liZXJwaHlzaWNhbCBTeXN0ZW1zIChJQ1BTKV0oaHR0cHM6Ly9pZWVleHBsb3JlLmllZWUub3JnL3hwbC9jb25ob21lLzkyNzQ1NDQvcHJvY2VlZGluZykKLSAyMDIwLTA2LTIzIC0gW+aWsOimj+OCteODvOODkOODvOOCouODl+ODquOCseODvOOCt+ODp+ODs+OBq1R5cGVTY3JpcHTjgpLmjqHnlKjjgZfjgabjgb/jgZ9dKGh0dHBzOi8vd3d3LmNhbS1pbmMuY28uanAvbmV3cy8yMDIwMDYyMykgYXQgW0NBTSBUZWNoIEJsb2ddKGh0dHBzOi8vd3d3LmNhbS1pbmMuY28uanAvbmV3cy90ZWNoLWJsb2cvKQotIDIwMjAtMDYtMjkgLSBbQXJ0aWZhY3QgQWJzdHJhY3Q6IERlcGxveW1lbnQgb2YgQVBJcyBvbiBBbmRyb2lkIE1vYmlsZSBEZXZpY2VzIGFuZCBNaWNyb2NvbnRyb2xsZXJzXShodHRwczovL2llZWV4cGxvcmUuaWVlZS5vcmcvZG9jdW1lbnQvOTEyNzM1MykgYnkgW1NlcmdpbyBMYXNvIDsgTWFyaW5vIExpbmFqZSA7IEpvc2UgR2FyY2lhLUFsb25zbyA7IEp1YW4gTS4gTXVyaWxsbyA7IEphdmllciBCZXJyb2NhbF0oaHR0cHM6Ly9pZWVleHBsb3JlLmllZWUub3JnL2RvY3VtZW50LzkxMjczNTMvYXV0aG9ycyNhdXRob3JzKSBhdCBbMjAyMCBJRUVFIEludGVybmF0aW9uYWwgQ29uZmVyZW5jZSBvbiBQZXJ2YXNpdmUgQ29tcHV0aW5nIGFuZCBDb21tdW5pY2F0aW9ucyAoUGVyQ29tKV0oaHR0cHM6Ly9pZWVleHBsb3JlLmllZWUub3JnL3hwbC9jb25ob21lLzkxMjU0NDkvcHJvY2VlZGluZykKLSAyMDIwLTA3LTA3IC0gWzUgQmVzdCBBUEkgRG9jdW1lbnRhdGlvbiBUb29sc10oaHR0cHM6Ly9ibG9nLmRyZWFtZmFjdG9yeS5jb20vNS1iZXN0LWFwaS1kb2N1bWVudGF0aW9uLXRvb2xzLykgYnkgU3VzYW5uYSBCb3VzZSBhdCBbRHJlYW1GYWN0b3J5IEJsb2ddKGh0dHBzOi8vYmxvZy5kcmVhbWZhY3RvcnkuY29tLykKLSAyMDIwLTA3LTEyIC0gW09wZW4gQVBJIDMuMOOBruWumue+qeOBi+OCiWdvbGFuZ+OBruOCteODvOODkOOCs+ODvOODieOBruOCueOCseODq+ODiOODs+OCkuS9nOaIkOOBmeOCi10oaHR0cHM6Ly9xaWl0YS5jb20vcHJvZmVzc29yL2l0ZW1zLzRjYmQwNGVjMDg0ZDEzMDU3YmMyKSBieSBbQHByb2Zlc3NvciAoUWlpdGEgQmxvZyldKGh0dHBzOi8vcWlpdGEuY29tL3Byb2Zlc3NvcikKLSAyMDIwLTA3LTIwIC0gW0RhdGFkb2cgQVBJIGNsaWVudCBsaWJyYXJpZXMgbm93IGF2YWlsYWJsZSBmb3IgSmF2YSBhbmQgR29dKGh0dHBzOi8vd3d3LmRhdGFkb2docS5jb20vYmxvZy9qYXZhLWdvLWxpYnJhcmllcy8pIGJ5IEpvcmRhbiBPYmV5IGF0IFtEYXRhZG9nIEJsb2ddKGh0dHBzOi8vd3d3LmRhdGFkb2docS5jb20vYmxvZykKLSAyMDIwLTA3LTIzIC0gW0dlbmVyYXRlIENsaWVudCBTREsgZm9yIC5ORVQgQ29yZSB1c2luZyBPcGVuIEFwaV0oaHR0cHM6Ly9kZXYudG8vbm8wbGF3MS9nZW5lcmF0ZS1jbGllbnQtc2RrLWZvci1uZXQtY29yZS11c2luZy1vcGVuLWFwaS0yZGdoKSBieSBbTnVubyBSZWlzXShodHRwczovL2Rldi50by9ubzBsYXcxKQotIDIwMjAtMDctMjYgLSBbRGFydOOBrmh0dHBfaW50ZXJjZXB0b3Ljg6njgqTjg5bjg6njg6rjgpLkvb/jgYbjgajphY3liJfjga7jgq/jgqjjg6rjg5Hjg6njg6Hjg7zjgr/jgYzmtojjgYjjgabjgZfjgb7jgYbku7bjga7lv5zmgKXlh6bnva5dKGh0dHBzOi8vcWlpdGEuY29tL2d5YW1vdG8vaXRlbXMvZWVlZmY4MWI2NzcwNDg3MzE5ZWQpIGJ5IFtAZ3lhbW90b10oaHR0cHM6Ly9xaWl0YS5jb20vZ3lhbW90bykKLSAyMDIwLTA4LTAxIC0gW0dlbmVyYXRlIEFuZ3VsYXIgUmVhY3RpdmVGb3JtcyBmcm9tIFN3YWdnZXIvT3BlbkFQSV0oaHR0cHM6Ly9kZXYudG8vbWFydGlubWN3aG9ydGVyL2dlbmVyYXRlLWFuZ3VsYXItcmVhY3RpdmVmb3Jtcy1mcm9tLXN3YWdnZXItb3BlbmFwaS0zNWg5KSBieSBbTWFydGluIE1jV2hvcnRlcl0oaHR0cHM6Ly9kZXYudG8vbWFydGlubWN3aG9ydGVyKQotIDIwMjAtMDgtMDMgLSBbQ3JpYW5kbyBCaWJsaW90ZWNhcyBwYXJhIEFQSXMgUkVTVGZ1bCBjb20gT3BlbkFQSSwgU3dhZ2dlciBFZGl0b3IgZSBPcGVuQVBJIEdlbmVyYXRvcl0oaHR0cHM6Ly9tZWRpdW0uY29tL0BldmVyaXNCcmFzaWwvY3JpYW5kby1iaWJsaW90ZWNhcy1wYXJhLWFwaXMtcmVzdGZ1bC1jb20tb3BlbmFwaS1zd2FnZ2VyLWVkaXRvci1lLW9wZW5hcGktZ2VuZXJhdG9yLTc1MzQ5YTY0MjBmZCkgYnkgW2V2ZXJpcyBCcmFzaWwgKGFuIE5UVCBEQVRBIENvbXBhbnkpXShodHRwczovL21lZGl1bS5jb20vQGV2ZXJpc0JyYXNpbCkKLSAyMDIwLTA4LTE5IC0gW+ODnuOCpOOCr+ODreOCteODvOODk+OCueOCkumAo+aQuuOBl+OBpuOBv+OCiOOBhl0oaHR0cHM6Ly90aGlua2l0LmNvLmpwL2FydGljbGUvMTc3MDQpIGJ5IFvlsqHkupUg6KOV55+iKOOBiuOBi+OBhCDjgobjgYbjgoQpXShodHRwczovL3RoaW5raXQuY28uanAvYXV0aG9yLzE3NTg4KSwgW+aziSDli50o44GE44Ga44G/IOOBvuOBleOCiyldKGh0dHBzOi8vdGhpbmtpdC5jby5qcC9hdXRob3IvMTc3MDUpIGF0IFtUaGluayBJVO+8iOOCt+ODs+OCr+OCpOODg+ODiO+8iV0oaHR0cHM6Ly90aGlua2l0LmNvLmpwLykKLSAyMDIwLTA4LTI1IC0gW09wZW5BUEkgR2VuZXJhdG9yIOOBqCBUeXBlU2NyaXB0IOOBp+Wei+WuieWFqOOBq+ODleODreODs+ODiOOCqOODs+ODiemWi+eZuuOCkuOBl+OBpuOBhOOCi+ipsV0oaHR0cHM6Ly90ZWNoLnNtYXJ0aHIuanAvZW50cnkvMjAyMC8wOC8yNS8xMzU2MzEpIGF0IFtTbWFydEhSIFRlY2ggQmxvZ10oaHR0cHM6Ly90ZWNoLnNtYXJ0aHIuanAvKQotIDIwMjAtMDktMTAgLSBbSW50cm9kdWN0aW9uIHRvIE9wZW5BUEkgd2l0aCBJbnN0YW5hXShodHRwczovL3d3dy5pbnN0YW5hLmNvbS9ibG9nL2ludHJvZHVjdGlvbi10by1vcGVuYXBpLXdpdGgtaW5zdGFuYS8pIGJ5IFtDZWRyaWMgWmllbF0oaHR0cHM6Ly93d3cuaW5zdGFuYS5jb20vYmxvZy9hdXRob3IvY2VkcmljemllbC8pIGF0IFtJbnN0YW5hIEJsb2ddKGh0dHBzOi8vd3d3Lmluc3RhbmEuY29tL2Jsb2cvKQotIDIwMjAtMDktMTcgLSBbR2VuZXJhdGUgUG93ZXJTaGVsbFNESyB1c2luZyBvcGVuYXBpLWdlbmVyYXRvcl0oaHR0cHM6Ly9tZWRpdW0uY29tL0BnaHVmei5sZWFybi9nZW5lcmF0ZS1wb3dlcnNoZWxsc2RrLXVzaW5nLW9wZW5hcGktZ2VuZXJhdG9yLTMzYjcwMDg5MWUzMykgYnkgW0dodWZyYW4gWmFoaWRpXShodHRwczovL21lZGl1bS5jb20vQGdodWZ6LmxlYXJuKQotIDIwMjAtMDktMjQgLSBbSG93IHRvIGF1dG9tYXRlIEFQSSBjb2RlIGdlbmVyYXRpb24gKE9wZW5BUEkvU3dhZ2dlcikgYW5kIGJvb3N0IHByb2R1Y3Rpdml0eSAtIFR1dG9yaWFsIHdpdGggUmVhY3QgTmF0aXZlIGZlYXR1cmluZyBUeXBlU2NyaXB0XShodHRwczovL21lZGl1bS5jb20vQHNjZWxlc2tpL2hvdy10by1hdXRvbWF0ZS1hcGktY29kZS1nZW5lcmF0aW9uLW9wZW5hcGktc3dhZ2dlci1hbmQtYm9vc3QtcHJvZHVjdGl2aXR5LTExNzZhMDA1NmQ4YSkgYnkgW1NhbmppbiBDZWxlc2tpXShodHRwczovL21lZGl1bS5jb20vQHNjZWxlc2tpKQotIDIwMjAtMDktMjUgLSBbR2VuZXJhdGUgT3BlbkFQSSBBbmd1bGFyIENsaWVudF0oaHR0cHM6Ly9tZWRpdW0uY29tL0BwZ3Vzby9nZW5lcmF0ZS1vcGVuYXBpLWFuZ3VsYXItY2xpZW50LThjOTI4OGU4YmJkNCkgYnkgW1BhdHJpY10oaHR0cHM6Ly9tZWRpdW0uY29tL0BwZ3VzbykKLSAyMDIwLTEwLTI0IC0gW1dvcmtpbmcgd2l0aCBNaWNyb3NvZnQgSWRlbnRpdHkgLSBSZWFjdCBOYXRpdmUgQ2xpZW50XShodHRwczovL3d3dy5qb3NlcGhndWFkYWduby5uZXQvMjAyMC8xMC8yNC93b3JraW5nLXdpdGgtbWljcm9zb2Z0LWlkZW50aXR5LXJlYWN0LW5hdGl2ZS1jbGllbnQpIGJ5IFtKb3NlcGggR3VhZGFnbm9dKGh0dHBzOi8vd3d3Lmpvc2VwaGd1YWRhZ25vLm5ldC8pCi0gMjAyMC0xMC0zMSAtIFtbQjJdIE9wZW5BUEkgU3BlY2lmaWNhdGlvbuycvOuhnCDtg4DsnoUt7IS47J207ZSE7ZWY6rKMIEFQSSDqsJzrsJztlZjquLA6IO2drOunne2OuCBWUyDsoIjrp53tjrhdKGh0dHBzOi8vd3d3LnlvdXR1YmUuY29tL3dhdGNoP3Y9SjRKSExFU0FpRmspIGJ5IOy1nO2DnOqxtCBhdCBbRkVDb25mIDIwMjBdKGh0dHBzOi8vMjAyMC5mZWNvbmYua3IvKQotIDIwMjAtMTEtMDUgLSBbQXV0b21hdGVkIFJFU1QtQXBpIENvZGUgR2VuZXJhdGlvbjogV2llIElULVN5c3RlbWUgbWl0ZWluYW5kZXIgc3ByZWNoZW5dKGh0dHBzOi8vd3d3Lm1hc3NpdmVhcnQuY29tL2Jsb2cvYXV0b21hdGVkLXJlc3QtYXBpLWNvZGUtZ2VuZXJhdGlvbi13aWUtaXQtc3lzdGVtZS1taXRlaW5hbmRlci1zcHJlY2hlbikgYnkgU3RlZmFuIFJvdHRlbnN0ZWluZXIgYXQgW01BU1NJVkUgQVJUIEJsb2ddKGh0dHBzOi8vd3d3Lm1hc3NpdmVhcnQuY29tL2Jsb2cpCi0gMjAyMC0xMi0wMSAtIFtPcGVuQVBJIEdlbmVyYXRvcuOBp0dv44GuQVBJ44K144O844OQ44O8L+OCr+ODqeOCpOOCouODs+ODiOOCs+ODvOODieOCkuiHquWLleeUn+aIkOOBmeOCi10oaHR0cHM6Ly9xaWl0YS5jb20vc2FraS1lbmdpbmVlcmluZy9pdGVtcy9iMjBkOGI2MDc0YzRkYTk2NjRhNSkgYnkgW0BzYWtpLWVuZ2luZWVyaW5nXShodHRwczovL3FpaXRhLmNvbS9zYWtpLWVuZ2luZWVyaW5nKQotIDIwMjAtMTItMDQgLSBbU2NhbGluZyB0aGUgVGVzdCBDb3ZlcmFnZSBvZiBPcGVuQVBJIEdlbmVyYXRvciBmb3IgMzArIFByb2dyYW1taW5nIExhbmd1YWdlc10oaHR0cHM6Ly93d3cueW91dHViZS5jb20vd2F0Y2g/dj03TGtlOWRIUnFUMCkgYnkgW1dpbGxpYW0gQ2hlbmddKGh0dHBzOi8vZ2l0aHViLmNvbS93aW5nMzI4KSBhdCBbT3BlbiBTb3VyY2UgU3VtbWl0IEphcGFuICsgQXV0b21vdGl2ZSBMaW51eCBTdW1taXQgMjAyMF0oaHR0cHM6Ly9ldmVudHMubGludXhmb3VuZGF0aW9uLm9yZy9hcmNoaXZlLzIwMjAvb3Blbi1zb3VyY2Utc3VtbWl0LWphcGFuLykgKFtTbGlkZXNdKGh0dHBzOi8vc3BlYWtlcmRlY2suY29tL3dpbmczMjgvc2NhbGluZy10aGUtdGVzdC1jb3ZlcmFnZS1vZi1vcGVuYXBpLWdlbmVyYXRvci1mb3ItMzAtcGx1cy1wcm9ncmFtbWluZy1sYW5ndWFnZXMpKQotIDIwMjAtMTItMDkgLSBb44OX44Ot44K444Kn44Kv44OI44GrT3BlbkFQSSBHZW5lcmF0b3Ljgafoh6rli5XnlJ/miJDjgZXjgozjgZ/lnovku5jjgY1BUEkgQ2xpZW5044KS5bCO5YWl44GX44Gf6KmxXShodHRwczovL3FpaXRhLmNvbS95b3NoaWZ1amlUL2l0ZW1zLzkwNWMxODcwMGVkZTIzZjQwODQwKSBieSBbQHlvc2hpZnVqaVRdKGh0dHBzOi8vZ2l0aHViLmNvbS95b3NoaWZ1amlUKQotIDIwMjAtMTItMTUgLSBbTmV4dC5qcyArIE5lc3RKUyArIEdyYXBoUUzjgaflpInljJbjgavov73lvpPjgZnjgovjg5Xjg63jg7Pjg4jjgqjjg7Pjg4njgbgg44CcIOOCt+ODp+ODg+ODlOODs+OCsOOCr+ODvOODneODs+OBruS6i+S+i+e0ueS7i10oaHR0cHM6Ly90ZWNoYmxvZy55YWhvby5jby5qcC9lbnRyeS8yMDIwMTIxNTMwMDUyOTUyLykgYnkgW+Wwj+WAiSDpmbhdKGh0dHBzOi8vZ2l0aHViLmNvbS9vZ3VndTkpIGF0IFtZYWhvbyEgSkFQQU4gVGVjaCBCbG9nXShodHRwczovL3RlY2hibG9nLnlhaG9vLmNvLmpwLykKLSAyMDIxLTAxLTA4IC0gW0hlbGxvLCBOZXcgQVBJIOKAkyBQYXJ0IDFdKGh0dHBzOi8vd3d3Lm5naW54LmNvbS9ibG9nL2hlbGxvLW5ldy1hcGktcGFydC0xLykgYnkgW0plcmVteSBTY2h1bG1hbl0oaHR0cHM6Ly93d3cubmdpbnguY29tL3Blb3BsZS9qZXJlbXktc2NodWxtYW4vKSBhdCBbTWFqb3IgTGVhZ3VlIEJhc2ViYWxsXShodHRwczovL3d3dy5tbGIuY29tKQotIDIwMjEtMDEtMTggLSBb44CM44Ki44OX44Oq6ZaL55m644GC44KL44GC44KL44CN44KS55aR44GG44GT44Go44GL44KJ5aeL44G+44Gj44Gf44CBQVBJIENsaWVudOOCs+ODvOODieOBruiHquWLleeUn+aIkOOAkOODh+ODluOCueODiDIwMjDjgJFdKGh0dHBzOi8vY29kZXppbmUuanAvYXJ0aWNsZS9kZXRhaWwvMTM0MDY/cD0yKSBieSBbQ29kZVppbmXnt6jpm4bpg6hdKGh0dHBzOi8vY29kZXppbmUuanAvYXV0aG9yLzEpCi0gMjAyMS0wMi0wNSAtIFtSRVNULUFQSS1Sb3VuZHRyaXAgd2l0aCBTcHJpbmdEb2MgYW5kIE9wZW5BUEkgR2VuZXJhdG9yXShodHRwczovL2Jsb2cudmlhZGVlLmRlL2VuL3Jlc3QtYXBpLXJvdW5kdHJpcCkgYnkgW0JlbmphbWluIEtsYXR0XShodHRwczovL3R3aXR0ZXIuY29tL2JlbmtsYXR0KSBhdCBbdmlhZGVlXShodHRwczovL3d3dy52aWFkZWUuZGUvZW4vKQotIDIwMjEtMDItMTcgLSBbUkVTVC1BUEktUm91bmR0cmlwIHdpdGggU3ByaW5nRG9jIGFuZCBPcGVuQVBJIEdlbmVyYXRvcl0oaHR0cHM6Ly9tZWRpdW0uY29tL25lcmQtZm9yLXRlY2gvcmVzdC1hcGktcm91bmR0cmlwLXdpdGgtc3ByaW5nZG9jLWFuZC1vcGVuYXBpLWdlbmVyYXRvci0zMGJkMjdjY2Y2OTgpIGJ5IFtjbG91ZCBAdmlhZGVlXShodHRwczovL2Nsb3VkLXZpYWRlZS5tZWRpdW0uY29tLykKLSAyMDIxLTAzLTA4IC0gW09wZW5BUEkgR2VuZXJhdG9yIOW3peWFt+eahOi6uuWdkeWwneivlV0oaHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3UwMTMwMTk3MDEvYXJ0aWNsZS9kZXRhaWxzLzExNDUzMTk3NSkgYnkgW+eLrOWutumbqOWkqV0oaHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3UwMTMwMTk3MDEpIGF0IFtDU0RO5a6Y5pa55Y2a5a6iXShodHRwczovL2Jsb2cuY3Nkbi5uZXQvKQotIDIwMjEtMDMtMTYgLSBb5aaC5L2V5Z+65LqOIFN3YWdnZXIg5L2/55SoIE9wZW5BUEkgR2VuZXJhdG9yIOeUn+aIkCBKTWV0ZXIg6ISa5pys77yfXShodHRwczovL2Nsb3VkLnRlbmNlbnQuY29tL2RldmVsb3Blci9hcnRpY2xlLzE4MDI3MDQpIGJ5IFvpq5jmpbxaZWVdKGh0dHBzOi8vY2xvdWQudGVuY2VudC5jb20vZGV2ZWxvcGVyL3VzZXIvNTgzNjI1NSkgYXQgW+iFvuiur+S6keS4k+agj10oaHR0cHM6Ly9jbG91ZC50ZW5jZW50LmNvbS9kZXZlbG9wZXIvY29sdW1uKQotIDIwMjEtMDMtMjQgLSBbb3BlbmFwaS1nZW5lcmF0b3ItY2xpIOOBq+OCiOOCiyBUeXBlU2NyaXB0IOWei+Wumue+qV0oaHR0cHM6Ly96ZW5uLmRldi90YWtlcGVwZS9hcnRpY2xlcy9vcGVuYXBpLWdlbmVyYXRvci1jbGktdHMpIGJ5IFtUYWtlZnVtaSBZb3NoaWldKGh0dHBzOi8vemVubi5kZXYvdGFrZXBlcGUpCi0gMjAyMS0wMy0yOCAtIFtUcnlpbmcgb3V0IE5lc3RKUyBwYXJ0IDQ6IEdlbmVyYXRlIFR5cGVzY3JpcHQgY2xpZW50cyBmcm9tIE9wZW5BUEkgZG9jdW1lbnRzXShodHRwczovL2Rldi50by9hcm5hdWRjb3J0aXNzZS90cnlpbmctb3V0LW5lc3Rqcy1wYXJ0LTQtZ2VuZXJhdGUtdHlwZXNjcmlwdC1jbGllbnRzLWZyb20tb3BlbmFwaS1kb2N1bWVudHMtMjhtaykgYnkgW0FybmF1ZCBDb3J0aXNzZV0oaHR0cHM6Ly9kZXYudG8vYXJuYXVkY29ydGlzc2UpCi0gMjAyMS0wMy0zMSAtIFtPcGVuIEFQSSBTZXJ2ZXIgSW1wbGVtZW50YXRpb24gVXNpbmcgT3BlbkFQSSBHZW5lcmF0b3JdKGh0dHBzOi8vd3d3LmJhZWxkdW5nLmNvbS9qYXZhLW9wZW5hcGktZ2VuZXJhdG9yLXNlcnZlcikgYXQgW0JhZWxkdW5nXShodHRwczovL3d3dy5iYWVsZHVuZy5jb20vKQotIDIwMjEtMDMtMzEgLSBb5L2/55SoT3BlbkFQSSBHZW5lcmF0b3Llr6bnj75PcGVuIEFQSSBTZXJ2ZXJdKGh0dHBzOi8vd3d3LjFqdS5vcmcvYXJ0aWNsZS9qYXZhLW9wZW5hcGktZ2VuZXJhdG9yLXNlcnZlcikgYXQgW+WEhOiBmue2sl0oaHR0cHM6Ly93d3cuMWp1Lm9yZy8pCi0gMjAyMS0wNC0xOSAtIFtJbnRyb2R1Y2luZyBUd2lsaW/igJlzIE9wZW5BUEkgU3BlY2lmaWNhdGlvbiBCZXRhXShodHRwczovL3d3dy50d2lsaW8uY29tL2Jsb2cvaW50cm9kdWNpbmctdHdpbGlvLW9wZW4tYXBpLXNwZWNpZmljYXRpb24tYmV0YSkgYnkgW0dBUkVUSCBQQVVMIEpPTkVTXShodHRwczovL3d3dy50d2lsaW8uY29tL2Jsb2cvYXV0aG9yL2dwaikgYXQgW1R3aWxpbyBCbG9nXShodHRwczovL3d3dy50d2lsaW8uY29tL2Jsb2cpCi0gMjAyMS0wNC0yMiAtIFtMZXZlcmFnaW5nIE9wZW5BcGkgc3RyZW5ndGhzIGluIGEgTWljcm8tU2VydmljZSBlbnZpcm9ubWVudF0oaHR0cHM6Ly9tZWRpdW0uY29tL3VuaWJ1ZGR5LXRlY2hub2xvZ3ktYmxvZy9sZXZlcmFnaW5nLW9wZW5hcGktc3RyZW5ndGhzLWluLWEtbWljcm8tc2VydmljZS1lbnZpcm9ubWVudC0zZDdmOWU3YzI2ZmYpIGJ5IE5pY29sYXMgSmVsbGFiIGF0IFtVbmlidWRkeSBUZWNobm9sb2d5IEJsb2ddKGh0dHBzOi8vbWVkaXVtLmNvbS91bmlidWRkeS10ZWNobm9sb2d5LWJsb2cpCi0gMjAyMS0wNC0yNyAtIFtGcm9tIHplcm8gdG8gcHVibGlzaGluZyBQb3dlclNoZWxsIEFQSSBjbGllbnRzIGluIFBvd2VyU2hlbGwgR2FsbGVyeSB3aXRoaW4gbWludXRlc10oaHR0cHM6Ly9zcGVha2VyZGVjay5jb20vd2luZzMyOC9mcm9tLXplcm8tdG8tcHVibGlzaGluZy1wb3dlcnNoZWxsLWFwaS1jbGllbnRzLWluLXBvd2Vyc2hlbGwtZ2FsbGVyeS13aXRoaW4tbWludXRlcykgYnkgW1dpbGxpYW0gQ2hlbmddKGh0dHBzOi8vZ2l0aHViLmNvbS93aW5nMzI4KSBhdCBbUG93ZXJTaGVsbCArIERldk9wcyBHbG9iYWwgU3VtbWl0IDIwMjFdKGh0dHBzOi8vZXZlbnRzLmRldm9wc2NvbGxlY3RpdmUub3JnL2V2ZW50L3Bvd2Vyc2hlbGwtZGV2b3BzLWdsb2JhbC1zdW1taXQtMjAyMS8pCi0gMjAyMS0wNS0zMSAtIFtGbHV0dGVy44GnT3BlbiBBcGkgR2VuZXJhdG9yKFN3YWdnZXIp44KS5L2/44GGXShodHRwczovL2Fha2lyYS5hcHAvYmxvZy8yMDIxLzA1L2ZsdXR0ZXItb3Blbi1hcGkvKSBieSBbQUFraXJhXShodHRwczovL3R3aXR0ZXIuY29tL19hX2FraXJhKQotIDIwMjEtMDYtMjIgLSBbUmVzdCBBUEkgRG9jdW1lbnRhdGlvbiBhbmQgQ2xpZW50IEdlbmVyYXRpb24gV2l0aCBPcGVuQVBJXShodHRwczovL2R6b25lLmNvbS9hcnRpY2xlcy9yZXN0LWFwaS1kb2N1bWVudGF0aW9uLWFuZC1jbGllbnQtZ2VuZXJhdGlvbi13aXRoKSBieSBbUHJhc2FudGggR3VsbGFwYWxsaV0oaHR0cHM6Ly9kem9uZS5jb20vdXNlcnMvMTAxMTc5Ny9wcmFzYW50aG5hdGguZ0BnbWFpbC5jb20uaHRtbCkKLSAyMDIxLTA3LTE2IC0gW+mKgOihjOS6i+alreOBruOCteODvOODkOODvOOCteOCpOODiemWi+eZuuOBq+OBpOOBhOOBpiAvIExJTkUg5Lqs6YO96ZaL55m65a6kIOOCqOODs+OCuOODi+OCouaOoeeUqOiqrOaYjuS8ml0oaHR0cHM6Ly93d3cueW91dHViZS5jb20vd2F0Y2g/dj1ZcnJLUUh4TFBwUSkgYnkg6YeO55Sw6Kqg5Lq6LCBSb2JlcnQgTWl0Y2hlbGwKLSAyMDIxLTA3LTE5IC0gW09wZW5BUEkgY29kZSBnZW5lcmF0aW9uIHdpdGgga290bGluXShodHRwczovL3N5bGhhcmUuZ2l0aHViLmlvLzIwMjEvMDcvMTkvT3BlbmFwaS1zd2FnZ2VyLWNvZGVnZW4td2l0aC1rb3RsaW4uaHRtbCkgYnkgW3N5bGhhcmVdKGh0dHBzOi8vZ2l0aHViLmNvbS9zeWxoYXJlKQotIDIwMjEtMDctMjkgLSBbSG93IFRvIFJld3JpdGUgYSBIdWdlIENvZGViYXNlXShodHRwczovL2R6b25lLmNvbS9hcnRpY2xlcy9ob3ctdG8tcmV3cml0ZS1hLWh1Z2UtY29kZS1iYXNlKSBieSBbQ3VydGlzIFBvZV0oaHR0cHM6Ly9kem9uZS5jb20vdXNlcnMvNDU2NTQ0Ni9wdWJsaXVzb3ZpZGl1cy5odG1sKQotIDIwMjEtMDgtMjEgLSBbR2VuZXJhdGluZyBDbGllbnQgQVBJcyB1c2luZyBTd2FnZ2VyIFBhcnQgMV0oaHR0cHM6Ly9tZWRpdW0uY29tL0BmbG93c3F1YWQvZ2VuZXJhdGluZy1jbGllbnQtYXBpcy11c2luZy1zd2FnZ2VyLXBhcnQtMS0yZDQ2ZjEzZjVlOTIpIGJ5IFtGbG93U3F1YWQuaW9dKGh0dHBzOi8vbWVkaXVtLmNvbS9AZmxvd3NxdWFkKQotIDIwMjEtMDktMTEgLSBbSW52b2tpbmcgQVdTIFBhcmFsbGVsQ2x1c3RlciBBUEldKGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9wYXJhbGxlbGNsdXN0ZXIvbGF0ZXN0L3VnL2FwaS1yZWZlcmVuY2UtdjMuaHRtbCkgYXQgW0FXUyBQYXJhbGxlbENsdXN0ZXIgQVBJIG9mZmljaWFsIGRvY3VtZW50YXRpb25dKGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9wYXJhbGxlbGNsdXN0ZXIvbGF0ZXN0L3VnL2FwaS1yZWZlcmVuY2UtdjMuaHRtbCkKLSAyMDIxLTA5LTIwIC0gW09wZW5BUEkgR2VuZXJhdG9yIC0gVGhlIEJhYmVsIEZpc2ggb2YgdGhlIEFQSSBXb3JsZF0oaHR0cHM6Ly93d3cueW91dHViZS5jb20vd2F0Y2g/dj1zMnpNdHdkNWtsZykgYnkgW0NsaWZmYW5vIFN1YmFnaW8gKFByaW5jaXBhbCBFbmdpbmVlciBhdCBTaGluZSBTb2x1dGlvbnMpXShodHRwczovL2dpdGh1Yi5jb20vY2xpZmZhbm8pIGF0IFtBcGlkYXlzIExJVkUgQXVzdHJhbGlhIDIwMjFdKGh0dHBzOi8vd3d3LmFwaWRheXMuZ2xvYmFsL2F1c3RyYWxpYTIwMjEvKQotIDIwMjEtMTAtMDIgLSBbSG93IHRvIFdyaXRlIEZld2VyIExpbmVzIG9mIENvZGUgd2l0aCB0aGUgT3BlbkFQSSBHZW5lcmF0b3JdKGh0dHBzOi8vaGFja2Vybm9vbi5jb20vaG93LXRvLXdyaXRlLWZld2VyLWxpbmVzLW9mLWNvZGUtd2l0aC10aGUtb3BlbmFwaS1nZW5lcmF0b3IpIGJ5IFtNaWtoYWlsIEFsZmFdKGh0dHBzOi8vaGFja2Vybm9vbi5jb20vdS9hbHBoYW1pa2xlKQotIDIwMjEtMTAtMTIgLSBbT3BlbkFQSSBHZW5lcmF0b3IgOiA0MDAwIMOpdG9pbGVzIHN1ciBHaXRIdWIgZXQgZGVzIHNwYWdoZXR0aXNdKGh0dHBzOi8vd3d3LnlvdXR1YmUuY29tL3dhdGNoP3Y9OWhFc05CU3FURmspIGJ5IFtKw6lyw6ltaWUgQnJlc3Nvbl0oaHR0cHM6Ly9naXRodWIuY29tL2ptaW5pKSBhdCBbRGV2b3h4IEZSIDIwMjFdKGh0dHBzOi8vY2ZwLmRldm94eC5mci8yMDIxL3NwZWFrZXIvamVyZW1pZV9icmVzc29uKQotIDIwMjEtMTAtMTcgLSBbR2VuZXJhdGUgYSBUeXBlU2NyaXB0IEhUVFAgQ2xpZW50IEZyb20gQW4gT3BlbkFQSSBTcGVjIEluIERvdE5FVCA1XShodHRwczovL3JpY2hhcmR3aWxsaXMuaW5mby9ibG9nL2dlbmVyYXRlLWEtdHlwZS1zY3JpcHQtaHR0cC1jbGllbnQtZnJvbS1hbi1vcGVuLWFwaS1zcGVjLWluLWRvdC1uZXQtNSkgYnkgW1JpY2hhcmQgV2lsbGlzXShodHRwczovL2dpdGh1Yi5jb20vYmFkc3ludGF4KQotIDIwMjEtMTEtMDYgLSBb44K544K/44O844OI44Ki44OD44OX44Gu6ZaL55m644Gn5oSP6K2Y44GX44Gf44GT44GoXShodHRwczovL3plbm4uZGV2L3dvb19ub28vYXJ0aWNsZXMvNWNiMDlmOGUyODk5YWU3ODJhZDEpIGJ5IFt3b28tbm9vXShodHRwczovL3plbm4uZGV2L3dvb19ub28pCi0gMjAyMS0xMS0wOSAtIFtFZmZlY3RpdmUgU29mdHdhcmUgRGV2ZWxvcG1lbnQgdXNpbmcgT3BlbkFQSSBHZW5lcmF0b3JdKGh0dHBzOi8vYXBleGxhYnMuYWkvcG9zdC9lZmZlY3RpdmUtc29mdHdhcmUtZGV2ZWxvcG1lbnQtdXNpbmctb3BlbmFwaS1nZW5lcmF0b3IpIGJ5IEFqaWwgT29tbWUKLSAyMDIxLTEyLTA3IC0gW0FuIEludHJvZHVjdGlvbiB0byBPcGVuQVBJXShodHRwczovL2JldHRlcnByb2dyYW1taW5nLnB1Yi80LXVzZS1jYXNlcy1vZi1vcGVuYXBpLXdoaWNoLWFyZS1nb29kLXRvLWtub3ctMWEwNDFmNGFkNzFlKSBieSBbTmEnYW1hbiBIaXJzY2hmZWxkXShodHRwczovL25hYW1hbmhpcnNjaGZlbGQubWVkaXVtLmNvbS8pCi0gMjAyMi0wMS0wMiAtIFtUb3dhcmRzIGEgc2VjdXJlIEFQSSBjbGllbnQgZ2VuZXJhdG9yIGZvciBJb1QgZGV2aWNlc10oaHR0cHM6Ly9hcnhpdi5vcmcvYWJzLzIyMDEuMDAyNzApIGJ5IEFuZGVycyBBYWVuIFNwcmluZ2JvcmcsIE1hcnRpbiBLYWxkYWhsIEFuZGVyc2VuLCBLYWFyZSBIb2xsYW5kIEhhdHRlbCwgTWljaGVsZSBBbGJhbm8KLSAyMDIyLTAyLTAyIC0gW1VzZSBPcGVuQXBpIGdlbmVyYXRvciB0byBzaGFyZSB5b3VyIG1vZGVscyBiZXR3ZWVuIEZsdXR0ZXIgYW5kIHlvdXIgYmFja2VuZF0oaHR0cHM6Ly93d3cueW91dHViZS5jb20vd2F0Y2g/dj1rUFc3Y2N1OVl2aykgYnkgW0d1aWxsYXVtZSBCZXJub3NdKGh0dHBzOi8vZmViMjAyMi5mbHV0dGVydmlraW5ncy5jb20vc3BlYWtlcnMvZ3VpbGxhdW1lX2Jlcm5vcykgYXQgW0ZsdXR0ZXIgVmlraW5ncyBDb25mZXJlbmNlIDIwMjIgKEh5YnJpZCldKGh0dHBzOi8vZmViMjAyMi5mbHV0dGVydmlraW5ncy5jb20vKQotIDIwMjItMDMtMTUgLSBbT3BlbkFQSSBTcGVj44Gn44OP44Kk44OV44Oz5Yy65YiH44KK44GuRW51beWApOOCkk9wZW5BUEkgR2VuZXJhdG9y44Gn5Ye65Yqb44GZ44KL44Go44CB44OP44Kk44OV44Oz5Yy65YiH44KK44Gu44G+44G+5Ye65Yqb44GV44KM44KLXShodHRwczovL3FpaXRhLmNvbS95dWppMzhrd210L2l0ZW1zLzgyNGQ3NGQ0ODg5MDU1YWIzN2Q4KSBieSBbeXVqaTM4a3dtdF0oaHR0cHM6Ly9xaWl0YS5jb20veXVqaTM4a3dtdCkKLSAyMDIyLTA0LTAxIC0gW09wZW5BUEkgR2VuZXJhdG9y44Gu44Kz44O844OJ55Sf5oiQ44GoU3ByaW5nIEZyYW1ld29ya+OBruOCq+OCueOCv+ODoOODh+ODvOOCv+ODkOOCpOODs+ODh+OCo+ODs+OCsOOCkuWFseWtmOOBleOBm+OCi10oaHR0cHM6Ly90ZWNoYmxvZy56b3pvLmNvbS9lbnRyeS9jb2V4aXN0ZW5jZS1vZi1vcGVuYXBpLWFuZC1zcHJpbmcpIGluIFtaT1pPIFRlY2ggQmxvZ10oaHR0cHM6Ly90ZWNoYmxvZy56b3pvLmNvbS8pCi0gMjAyMi0wNC0wNiAtIFtFZmZlY3RpdmUgU29mdHdhcmUgRGV2ZWxvcG1lbnQgdXNpbmcgT3BlbkFQSSBHZW5lcmF0b3JdKGh0dHBzOi8vYXBleGxhYnMuYWkvcG9zdC9vcGVuYXBpLWdlbmVyYXRvcikgYnkgQWppbCBPb21tZW4gKFNlbmlvciBGbHV0dGVyIERldmVsb3BlcikKLSAyMDIyLTA1LTEzIC0gW0EgUGF0aCBGcm9tIGFuIEFQSSBUbyBDbGllbnQgTGlicmFyaWVzXShodHRwczovL3d3dy55b3V0dWJlLmNvbS93YXRjaD92PVhDOG9Wbl9lZlR3KSBieSBbRmlsaXAgU3JuZWNdKGh0dHBzOi8vd3d3LmRldm94eC5jby51ay90YWxrLz9pZD0xMTIxMSkgYXQgSW5mb2JpcAotIDIwMjItMDYtMDEgLSBbQVBJIEZpcnN0LCB1c2luZyBPcGVuQVBJIGFuZCBTcHJpbmcgQm9vdF0oaHR0cHM6Ly9tZWRpdW0uY29tL3hnZWVrcy9hcGktZmlyc3QtdXNpbmctb3BlbmFwaS1hbmQtc3ByaW5nLWJvb3QtMjYwMmMwNGJiMGQzKSBieSBbTWljYWVsIEVzdHLDoXp1bGFzIFZpYW5uYV0oaHR0cHM6Ly9lc3RyYXp1bGFzLm1lZGl1bS5jb20vKQotIDIwMjItMDYtMTAgLSBbQXV0b2dlbmVyYXRpbmcgQ2xpZW50cyB3aXRoIEZhc3RBUEkgYW5kIEdpdGh1YiBBY3Rpb25zXShodHRwczovL3d3dy5wcm9wZWxhdXRoLmNvbS9wb3N0L2F1dG9nZW5lcmF0aW5nLWNsaWVudHMtd2l0aC1mYXN0YXBpLWFuZC1naXRodWItYWN0aW9ucykgYnkgW0FuZHJldyBJc3JhZWxdKGh0dHBzOi8vd3d3LnByb3BlbGF1dGguY29tL2F1dGhvci9hbmRyZXcpCi0gMjAyMi0wNi0xMiAtIFtNdXN0YWNoZSB0ZW1wbGF0ZXMgd2l0aCBPcGVuQVBJIHNwZWNzXShodHRwczovL21lZGl1bS5jb20vZ2Vla2N1bHR1cmUvbXVzdGFjaGUtdGVtcGxhdGVzLXdpdGgtb3BlbmFwaS1zcGVjcy1mMjQ3MTFjNjdkZWMpIGJ5IFtCZXBwZSBDYXRhbmVzZV0oaHR0cHM6Ly9naXRodWIuY29tL2djYXRhbmVzZSkKLSAyMDIyLTA3LTAxIC0gW0dlbmVyYXRlIEFQSSBjb250cmFjdCB1c2luZyBPcGVuQVBJIEdlbmVyYXRvciBNYXZlbiBwbHVnaW5dKGh0dHBzOi8vaHVvbmdkYW5qYXZhLmNvbS9nZW5lcmF0ZS1hcGktY29udHJhY3QtdXNpbmctb3BlbmFwaS1nZW5lcmF0b3ItbWF2ZW4tcGx1Z2luLmh0bWwpIGJ5IFtLaGFuaCBOZ3V5ZW5dKGh0dHBzOi8vaHVvbmdkYW5qYXZhLmNvbS8pCi0gMjAyMi0wNy0yMiAtIFvkvb/nlKhPcGVuQVBJIEdlbmVyYXRvciBNYXZlbiBwbHVnaW7lvIDlj5FhcGnkvJjlhYjnmoRqYXZh5a6i5oi356uv5ZKM5pyN5Yqh56uv5Luj56CBXShodHRwczovL2Jsb2cucm9jY29zaGkudG9wLzIwMjIvamF2YS9vcGVuYXBpLWdlbmVyYXRvciVFNyU5QSU4NCVFNCVCRCVCRiVFNyU5NCVBOC8pIGJ5IFtMaW5jZXN0XShodHRwczovL2dpdGh1Yi5jb20vTGluY2VzdCkKLSAyMDIyLTA4LTAxIC0gW1R1dG9yaWFsOiBFdHN5IE9wZW4gQVBJIHYzIChydWJ5KV0oaHR0cHM6Ly9ibG9nLnRqb3lhbC5kZXYvZXRzeS1vcGVuLWFwaS12My8pIGJ5IFtUaGllcnJ5IEpveWFsXShodHRwczovL2dpdGh1Yi5jb20vdGpveWFsKQotIDIwMjItMDktMDMgLSBbT3BlbkFQSSBHZW5lcmF0b3IgRm9yIEdvIFdlYiBEZXZlbG9wbWVudF0oaHR0cHM6Ly9ibG9nLmtldmluaHUubWUvMjAyMi8wOS8wMy8wMy1vcGVuYXBpLWdlbmVyYXRvci8pIGJ5IFtLZXZpbiBIdV0oaHR0cHM6Ly90d2l0dGVyLmNvbS9PbGRndW5peCkKLSAyMDIyLTEwLTAxIC0gW09wZW5BUEkgR2VuZXJhdG9y44KS44Kr44K544K/44Oe44Kk44K644GX44Gf44Kz44O844OJ44KS55Sf5oiQ44GZ44KL77yIU3dhZ2dlciBDb2RlZ2Vu44Go44G744G85ZCM44GY77yJXShodHRwczovL25haW5haXN0YXIuaGF0ZW5hYmxvZy5jb20vZW50cnkvMjAyMi8xMC8wMy8xMjAwMDApIGJ5IFvjgY3jgorkuLhdKGh0dHBzOi8vdHdpdHRlci5jb20vbmFpbmFpc3RhcikKLSAyMDIyLTEwLTIxIC0gW0tvdGxpbu+8iFNwcmluZyBCb29077yJ44GuIEFQSSDjgpIgT3BlbkFQSSBHZW5lcmF0b3Ig44Gn6Ieq5YuV55Sf5oiQXShodHRwczovL3plbm4uZGV2L21za3NnbS9hcnRpY2xlcy8yMDIyMTAyMS1rb3RsaW4tc3ByaW5nLW9wZW5hcGktZ2VuZXJhdG9yKSBieSBbbXNrc2dtXShodHRwczovL3plbm4uZGV2L21za3NnbSkKLSAyMDIyLTEwLTI2IC0gW1F1YXJrdXMgSW5zaWdodHMgIzEwNjogUXVhcmtpdmVyc2UgRXh0ZW5zaW9uIFNwb3RsaWdodDogT3BlbkFwaSBHZW5lcmF0b3JdKGh0dHBzOi8vd3d3LnlvdXR1YmUuY29tL3dhdGNoP3Y9X3NfaWY2OXQyaVEpIGJ5IFtRdWFya3VzaW9dKGh0dHBzOi8vd3d3LnlvdXR1YmUuY29tL2MvUXVhcmt1c2lvKQotIDIwMjItMTEtMjggLSBbVGhlIFJFU1QgQVBJIGltcGxlbWVudGF0aW9uIGZsb3ddKGh0dHBzOi8vdG1zdnIuY29tL29wZW5hcGktY29kZS1nZW5lcmF0aW9uLWZvci1yZXN0LWFwaXMvKSBieSBbSW1yZSBUw7Ztw7ZzdsOhcmldKGh0dHBzOi8vdG1zdnIuY29tL2F1dGhvci9pbXJlLykKLSAyMDIyLTEyLTEzIC0gW0FQSS1GaXJzdCB3aXRoIFNwcmluZyBXZWJGbHV4IGFuZCBPcGVuQVBJIEdlbmVyYXRvcl0oaHR0cHM6Ly9ib290dGVjaG5vbG9naWVzLWNpLm1lZGl1bS5jb20vYXBpLWZpcnN0LXdpdGgtc3ByaW5nLXdlYmZsdXgtYW5kLW9wZW5hcGktZ2VuZXJhdG9yLTM4Yjc4MDRjNGVkNCkgYnkgW0VyaWMgQW5pY2V0XShodHRwczovL2Jvb3R0ZWNobm9sb2dpZXMtY2kubWVkaXVtLmNvbS8pCi0gMjAyMy0wMS0wNiAtIFtNYWpvciBJbXByb3ZlbWVudHMgd2l0aCBIZWxpZG9uIGFuZCBPcGVuQVBJXShodHRwczovL21lZGl1bS5jb20vaGVsaWRvbi9tYWpvci1pbXByb3ZlbWVudHMtd2l0aC1oZWxpZG9uLWFuZC1vcGVuYXBpLWY3NmEwOTUxNTA4ZSkgYnkgW1RpbSBRdWlubl0oaHR0cHM6Ly9tZWRpdW0uY29tL0B0cXVpbm5vNjAwKQotIDIwMjMtMDItMDIgLSBbUmVwbGFjaW5nIFBvc3RtYW4gd2l0aCB0aGUgSmV0YnJhaW5zIEhUVFAgQ2xpZW50XShodHRwczovL2xlbmdyYW5kLmZyL3JlcGxhY2luZy1wb3N0bWFuLWluLXNlY29uZHMtd2l0aC10aGUtamV0YnJhaW5zLWh0dHAtY2xpZW50LykgYnkgW2p1bGllbiBMZW5ncmFuZC1MYW1iZXJ0XShodHRwczovL2dpdGh1Yi5jb20vamxlbmdyYW5kKQotIDIwMjMtMDMtMTUgLSBbT3BlbkFQSSBHZW5lcmF0b3LjgavpganjgZfjgZ9PcGVuQVBJ44Gu5pu444GN5pa5XShodHRwczovL3RlY2hibG9nLnpvem8uY29tL2VudHJ5L2hvdy10by13cml0ZS1vcGVuYXBpLWZvci1vcGVuYXBpLWdlbmVyYXRvcikgYnkgW1pPWk8gVGVjaCBCbG9nXShodHRwczovL3RlY2hibG9nLnpvem8uY29tLykKLSAyMDIzLTAzLTE5IC0gW0VYT0dFTTogRXh0ZW5kaW5nIE9wZW5BUEkgR2VuZXJhdG9yIGZvciBNb25pdG9yaW5nIG9mIFJFU1RmdWwgQVBJc10oaHR0cHM6Ly9saW5rLnNwcmluZ2VyLmNvbS9jaGFwdGVyLzEwLjEwMDcvOTc4LTMtMDMxLTI2NTA3LTVfMTApIGJ5IERhbmllbCBGcmlpcyBIb2x0ZWJvLCBKYW5uaWsgTHVjYXMgU29tbWVyLCBNYWdudXMgTcO4bGdhYXJkIEx1bmQsIEFsZXNzYW5kcm8gVGlibywgSnVuaW9yIERvbmdvICYgTWljaGVsZSBBbGJhbm8gYXQgIklDU09DIDIwMjI6IFNlcnZpY2UtT3JpZW50ZWQgQ29tcHV0aW5nIOKAkyBJQ1NPQyAyMDIyIFdvcmtzaG9wcyIKLSAyMDIzLTAzLTI4IC0gW0FQSS1GaXJzdCBEZXNpZ24gd2l0aCBPcGVuQVBJIEdlbmVyYXRvcl0oaHR0cHM6Ly93d3cubGlua2VkaW4uY29tL3B1bHNlL2FwaS1maXJzdC1kZXNpZ24tb3BlbmFwaS1nZW5lcmF0b3Itam9uYXRoYW4tbWFuZXJhLykgYnkgW0pvbmF0aGFuIE1hbmVyYV0oaHR0cHM6Ly93d3cubGlua2VkaW4uY29tL2luL21hbmVyYWpvbmEvKQotIDIwMjMtMDMtMjggLSBb44OP44Oz44K644Kq44Oz44Gn5a2m44G244K144O844OQ44O844K144Kk44OJIEtvdGxpbu+8iFNwcmluZyBCb290JkFycm93Jk9wZW5BUEkgR2VuZXJhdG9y77yJdjEuMC4xXShodHRwczovL3plbm4uZGV2L21za3NnbS9ib29rcy9pbXBsZW1lbnRpbmctc2VydmVyLXNpZGUta290bGluLWRldmVsb3BtZW50KSBieSBbbXNrXShodHRwczovL3plbm4uZGV2L21za3NnbSkKLSAyMDIzLTA0LTAxIC0gW09wZW5BUEkgQ2xpZW50IENvZGUgR2VuZXJhdGlvbl0oaHR0cHM6Ly90ZXN0aW5nYm9zcy5jb20vYmxvZy9vcGVuYXBpLWNsaWVudC1nZW5lcmF0aW9uLykgYnkgS3dvIERpbmcKLSAyMDIzLTA0LTI3IC0gW0NyZWF0ZSBhbiBBbmd1bGFyIENsaWVudCB1c2luZyBPcGVuQVBJIFNwZWNpZmljYXRpb25zXShDcmVhdGUgYW4gQW5ndWxhciBDbGllbnQgdXNpbmcgT3BlbkFQSSBTcGVjaWZpY2F0aW9ucykgYnkgW1BhdHJpY10oaHR0cHM6Ly9wZ3Vzby5tZWRpdW0uY29tLykKLSAyMDIzLTA1LTE2IC0gW0FkeWVuIGZvciBKYXZhIGRldmVsb3BlcnNdKGh0dHBzOi8vd3d3LmFkeWVuLmNvbS9ibG9nL2FkeWVuLWphdmEtbGlicmFyeSkgYnkgW0JlcHBlIENhdGFuZXNlLCBEZXZlbG9wZXIgQWR2b2NhdGUsIEFkeWVuXShodHRwczovL2dpdGh1Yi5jb20vZ2NhdGFuZXNlKQotIDIwMjMtMDUtMTggLSBb5aaC5L2V5Z+65LqOIFN3YWdnZXIg5L2/55SoIE9wZW5BUEkgR2VuZXJhdG9yIOeUn+aIkCBKTWV0ZXIg6ISa5pys77yfXShodHRwczovL2Jsb2cuNTFjdG8uY29tL3VfMTUxODE1NzIvNjI5NDk3NCkgYnkgW+mrmOalvO+8iFplZSldKGh0dHBzOi8vYmxvZy41MWN0by5jb20vdV8xNTE4MTU3MikKLSAyMDIzLTA2LTI4IC0gW0dlbmVyYXRlIEFQSSBjb250cmFjdCB1c2luZyBPcGVuQVBJIEdlbmVyYXRvciBNYXZlbiBwbHVnaW5dKGh0dHBzOi8vaHVvbmdkYW5qYXZhLmNvbS9nZW5lcmF0ZS1hcGktY29udHJhY3QtdXNpbmctb3BlbmFwaS1nZW5lcmF0b3ItbWF2ZW4tcGx1Z2luLmh0bWwpIGJ5IFtLaGFuaCBOZ3V5ZW5dKGh0dHBzOi8vaHVvbmdkYW5qYXZhLmNvbS8pCi0gMjAyMy0wNi0zMCAtIFtHZW5lcmF0ZSBDbGllbnQgU0RLcyB3aXRoIE9wZW5BcGkgR2VuZXJhdG9yIGluIFNwcmluZ2Jvb3RdKGh0dHBzOi8vbWVkaXVtLmNvbS9AcmFtYXZhdGh2aW5heWFrL2dlbmVyYXRlLWNsaWVudC1zZGtzLXdpdGgtb3BlbmFwaS1nZW5lcmF0b3ItaW4tc3ByaW5nYm9vdC1mOWYwMTJlNzNjMGIpIGJ5IFtWaW5heWFrIFJhbWF2YXRoXShodHRwczovL21lZGl1bS5jb20vQHJhbWF2YXRodmluYXlhaykKLSAyMDIzLTEyLTEwIC0gW1VuaXR544GnT3BlbkFQSSBHZW5lcmF0b3LjgpLkvb/jgYZdKGh0dHBzOi8vd3d3LnlvdXR1YmUuY29tL3dhdGNoP3Y9Q2JOd0tWVjVMUk0pIGJ5IFtTb3VwIFRvcmldKGh0dHBzOi8vd3d3LnlvdXR1YmUuY29tL0Bzb3VwdG9yaTg0MTcpCi0gMjAyNC0wMS0yNCAtIFtDb21tZW50IGfDqW7DqXJlciBkZXMgc3R1YnMgd2lyZW1vY2sgYXZlYyBvcGVuYXBpIGdlbmVyYXRvcl0oaHR0cHM6Ly93d3cueW91dHViZS5jb20vd2F0Y2g/dj0wamhPTmZCcmNLdykgYnkgW0FsZXhpcyBDb3V2cmV1cl0oaHR0cHM6Ly9naXRodWIuY29tL2Fjb3V2cmV1cikKLSAyMDI0LTAzLTA0IC0gW0dlbmVyYXRpbmcgVHlwZVNjcmlwdCBUeXBlcyB3aXRoIE9wZW5BUEkgZm9yIFJFU1QgQVBJIENvbnN1bXB0aW9uXShodHRwczovL3d3dy5wdWxscmVxdWVzdC5jb20vYmxvZy9nZW5lcmF0aW5nLXR5cGVzY3JpcHQtdHlwZXMtd2l0aC1vcGVuYXBpLWZvci1yZXN0LWFwaS1jb25zdW1wdGlvbi8pIGJ5IFtQdWxsUmVxdWVzdF0oaHR0cHM6Ly93d3cucHVsbHJlcXVlc3QuY29tLykKLSAyMDI0LTAzLTA3IC0gW0Z1bGx5IHR5cGVkIFdlYiBBcHBzIHdpdGggT3BlbkFQSSAoUGFydCAxKV0oaHR0cHM6Ly9tZWRpdW0uY29tL0BnZm94MTk4NC9mdWxseS10eXBlZC13ZWItYXBwcy13aXRoLW9wZW5hcGktcGFydC0xLTU5NWQ1NTc2NjY3MCkgYnkgW0d1aWxsYXVtZSBSZW5hcmRdKGh0dHBzOi8vbWVkaXVtLmNvbS9AZ2ZveDE5ODQpCi0gMjAyNC0wMy0wOCAtIFtMYXJhdmVsIE9wZW5BUEnjgavjgojjgosgIui+m+OBj+OBquOBhCIg44K544Kt44O844Oe6aeG5YuV6ZaL55m6XShodHRwczovL2ZvcnRlZS5qcC9waHBlcmthaWdpLTIwMjQvcHJvcG9zYWwvOWUyZTZjMzgtZDA3OC00ZWZhLTk5YjQtODNlYmY5MDMzYjM0KSBieSBbS2VudGFyb3VUYWtlZGFdKGh0dHBzOi8vdHdpdHRlci5jb20vS2VudGFyb3VUYWtlZGEpCgojIyBbNiAtIEFib3V0IFVzXSgjdGFibGUtb2YtY29udGVudHMpCgpXaGF0J3MgdGhlIGRlc2lnbiBwaGlsb3NvcGh5IG9yIHByaW5jaXBsZSBiZWhpbmQgT3BlbkFQSSBHZW5lcmF0b3I/CgpXZSBmb2N1cyBvbiBkZXZlbG9wZXIgZXhwZXJpZW5jZS4gVGhlIGdlbmVyYXRvcnMgc2hvdWxkIHByb2R1Y2UgY29kZSwgY29uZmlnLCBkb2N1bWVudGF0aW9uLCBhbmQgbW9yZSB0aGF0IGFyZSBlYXNpbHkgdW5kZXJzdGFuZGFibGUgYW5kIGNvbnN1bWFibGUgYnkgdXNlcnMuIFdlIGZvY3VzZWQgb24gc2ltcGxlIHVzZSBjYXNlcyB0byBzdGFydCB3aXRoIChib3R0b20tdXAgYXBwcm9hY2gpLiBTaW5jZSB0aGVuIHRoZSBwcm9qZWN0IGFuZCB0aGUgY29tbXVuaXR5IGhhdmUgZ3Jvd24gYSBsb3Q6IDYwMGsgd2Vla2x5IGRvd25sb2FkcyB2aWEgTlBNIENMSSB3cmFwcGVyLCAzME0gZG93bmxvYWRzIHZpYSBvcGVuYXBpLWdlbmVyYXRvci1jbGkgZG9ja2VyIGltYWdlIGp1c3QgdG8gaGlnaGxpZ2h0IGEgZmV3LiBXZSd2ZSBncmFkdWFsbHkgc3VwcG9ydGVkIG1vcmUgZmVhdHVyZXMgKGUuZy4gb25lT2YsIGFueU9mIGludHJvZHVjZWQgaW4gT3BlbkFQSSAzLjApIGluIHZhcmlvdXMgZ2VuZXJhdG9ycyBhbmQgd2Ugd2lsbCBjb250aW51ZSB0aGlzIGFwcHJvYWNoIHRvIGRlbGl2ZXIgc29tZXRoaW5nIGJhc2VkIG9uIG91ciB1bmRlcnN0YW5kaW5nIG9mIHVzZXIgZGVtYW5kIGFuZCB3aGF0IHRoZXkgd2FudCwgYW5kIGNvbnRpbnVlIHRvIGFkZCBzdXBwb3J0IG9mIG5ldyBmZWF0dXJlcyBpbnRyb2R1Y2VkIGluIE9wZW5BUEkgc3BlY2lmaWNhdGlvbiAoc3VjaCBhcyB2My4xIGFuZCBmdXR1cmUgdmVyc2lvbnMgb2YgdGhlIE9wZW5BUEkgc3BlY2lmaWNhdGlvbikuCgojIyMgWzYuMSAtIE9wZW5BUEkgR2VuZXJhdG9yIENvcmUgVGVhbV0oI3RhYmxlLW9mLWNvbnRlbnRzKQoKT3BlbkFQSSBHZW5lcmF0b3IgY29yZSB0ZWFtIG1lbWJlcnMgYXJlIGNvbnRyaWJ1dG9ycyB3aG8gaGF2ZSBiZWVuIG1ha2luZyBzaWduaWZpY2FudCBjb250cmlidXRpb25zIChyZXZpZXcgaXNzdWVzLCBmaXggYnVncywgbWFrZSBlbmhhbmNlbWVudHMsIGV0YykgdG8gdGhlIHByb2plY3Qgb24gYSByZWd1bGFyIGJhc2lzLgoKIyMjIyBDb3JlIFRlYW0gTWVtYmVycwoqIFtAd2luZzMyOF0oaHR0cHM6Ly9naXRodWIuY29tL3dpbmczMjgpICgyMDE1LzA3KSBbOmhlYXJ0Ol0oaHR0cHM6Ly93d3cucGF0cmVvbi5jb20vd2luZzMyOCkKKiBbQGppbXNjaHViZXJ0XShodHRwczovL2dpdGh1Yi5jb20vamltc2NodWJlcnQpICgyMDE2LzA1KSBbOmhlYXJ0Ol0oaHR0cHM6Ly93d3cucGF0cmVvbi5jb20vamltc2NodWJlcnQpCiogW0BjYm9ybmV0XShodHRwczovL2dpdGh1Yi5jb20vY2Jvcm5ldCkgKDIwMTYvMDUpCiogW0BqbWluaV0oaHR0cHM6Ly9naXRodWIuY29tL2ptaW5pKSAoMjAxOC8wNCkgIFs6aGVhcnQ6XShodHRwczovL3d3dy5wYXRyZW9uLmNvbS9qbWluaSkKKiBbQGV0aGVyZWFsam95XShodHRwczovL2dpdGh1Yi5jb20vZXRoZXJlYWxqb3kpICgyMDE5LzA2KQoKOmhlYXJ0OiA9IExpbmsgdG8gc3VwcG9ydCB0aGUgY29udHJpYnV0b3IgZGlyZWN0bHkKCiMjIyMgVGVtcGxhdGUgQ3JlYXRvcgoKKipOT1RFKio6IEVtYmVkZGVkIHRlbXBsYXRlcyBhcmUgb25seSBzdXBwb3J0ZWQgaW4gX011c3RhY2hlXyBmb3JtYXQuIFN1cHBvcnQgZm9yIGFsbCBvdGhlciBmb3JtYXRzIGlzIGV4cGVyaW1lbnRhbCBhbmQgc3ViamVjdCB0byBjaGFuZ2UgYXQgYW55IHRpbWUuCgpIZXJlIGlzIGEgbGlzdCBvZiB0ZW1wbGF0ZSBjcmVhdG9yczoKICogQVBJIENsaWVudHM6CiAgICogQWRhOiBAc3RjYXJyZXoKICAgKiBBcGV4OiBAYXNuZWxsaW5nCiAgICogQmFzaDogQGJrcnl6YQogICAqIEM6IEBQb3dlck9mQ3JlYXRpb24gQHpoZW1hbnQgWzpoZWFydDpdKGh0dHBzOi8vd3d3LnBhdHJlb24uY29tL3poZW1hbnQpCiAgICogQysrIFJFU1Q6IEBEYW5pZWxrdTE1CiAgICogQysrIFRpbnk6IEBBbmRlcnNTcHJpbmdib3JnIEBrYWFyZUhIIEBtaWNoZWxlYWxiYW5vIEBta2FrYmFzCiAgICogQysrIFVFNDogQEthaG5jb2RlCiAgICogQyMgKC5ORVQgMi4wKTogQHdobwogICAqIEMjICguTkVUIFN0YW5kYXJkIDEuMyApOiBAR3JvbnNhawogICAqIEMjICguTkVUIDQuNSByZWZhY3RvcmVkKTogQGppbXNjaHViZXJ0IFs6aGVhcnQ6XShodHRwczovL3d3dy5wYXRyZW9uLmNvbS9qaW1zY2h1YmVydCkKICAgKiBDIyAoR2VuZXJpY0hvc3QpOiBAZGV2aGwtbGFicwogICAqIEMjIChIdHRwQ2xpZW50KTogQEJsYWNrY2xhd3MKICAgKiBDbG9qdXJlOiBAeGhoCiAgICogQ3J5c3RhbDogQHdpbmczMjgKICAgKiBEYXJ0OiBAeWlzc2FjaGFyCiAgICogRGFydCAocmVmYWN0b3IpOiBAam9lcm5haHJlbnMKICAgKiBEYXJ0IDI6IEBzd2lwZXNpZ2h0CiAgICogRGFydCAoSmFndWFyKTogQGphdW1hcmQKICAgKiBEYXJ0IChEaW8pOiBAam9zaC1idXJ0b24KICAgKiBFbGl4aXI6IEBuaWt1CiAgICogRWxtOiBAZXJpa3RpbQogICAqIEVpZmZlbDogQGp2ZWxpbGxhCiAgICogRXJsYW5nOiBAdHNsb3VnaHRlcgogICAqIEVybGFuZyAoUHJvcEVyKTogQGpmYWNvcnJvIEByb2JlcnRvYWxvaQogICAqIEdyb292eTogQHZpY3RvcmdpdAogICAqIEdvOiBAd2luZzMyOCBbOmhlYXJ0Ol0oaHR0cHM6Ly93d3cucGF0cmVvbi5jb20vd2luZzMyOCkKICAgKiBHbyAocmV3cml0dGVuIGluIDIuMy4wKTogQGFudGloYXgKICAgKiBIYXNrZWxsIChodHRwLWNsaWVudCk6IEBqb25zY2hvbmluZwogICAqIEphdmEgKEZlaWduKTogQGRhdmlka2lzcwogICAqIEphdmEgKFJldHJvZml0KTogQDBsZWdnCiAgICogSmF2YSAoUmV0cm9maXQyKTogQGVtaWxpYW5vYm9uYXNzaQogICAqIEphdmEgKEplcnNleTIpOiBAeGhoCiAgICogSmF2YSAob2todHRwLWdzb24pOiBAeGhoCiAgICogSmF2YSAoUmVzdFRlbXBsYXRlKTogQG5icnVubwogICAqIEphdmEgKFNwcmluZyA1IFdlYkNsaWVudCk6IEBkYW9ub21pYwogICAqIEphdmEgKFNwcmluZyA2IFJlc3RDbGllbnQpOiBAbmlja2xhczI3NTEKICAgKiBKYXZhIChSRVNURWFzeSk6IEBnYXlhdGhyaWdzCiAgICogSmF2YSAoVmVydHgpOiBAbG9wZXNtY2MKICAgKiBKYXZhIChHb29nbGUgQVBJcyBDbGllbnQgTGlicmFyeSk6IEBjaGFybGVzY2FwcHMKICAgKiBKYXZhIChSZXN0LWFzc3VyZWQpOiBAdmljbG92c2t5CiAgICogSmF2YSAoSmF2YSAxMSBOYXRpdmUgSFRUUCBjbGllbnQpOiBAYmJkb3VnbGFzCiAgICogSmF2YSAoQXBhY2hlIEh0dHBDbGllbnQgNS54KTogQGhhcnJ5d2hpdGU0IEBhbmRyZXZlZ2FzCiAgICogSmF2YSAoSGVsaWRvbik6IEBzcGVyaWNhcyBAdGpxdWlubm8gQHR2YWxsaW4KICAgKiBKYXZhc2NyaXB0L05vZGVKUzogQGpmaWFsYQogICAqIEphdmFTY3JpcHQgKEFwb2xsbyBEYXRhU291cmNlKTogQGVyaXRobWV0aWMKICAgKiBKYXZhU2NyaXB0IChDbG9zdXJlLWFubm90YXRlZCBBbmd1bGFyKSBAYWNoZXcyMgogICAqIEphdmFTY3JpcHQgKEZsb3cgdHlwZXMpIEBqYXlwZWEKICAgKiBKZXRicmFpbnMgSFRUUCBDbGllbnQgOiBAamxlbmdyYW5kCiAgICogSk1ldGVyOiBAZGF2aWRraXNzCiAgICogSnVsaWE6IEB0YW5tYXlrbQogICAqIEtvdGxpbjogQGppbXNjaHViZXJ0IFs6aGVhcnQ6XShodHRwczovL3d3dy5wYXRyZW9uLmNvbS9qaW1zY2h1YmVydCkKICAgKiBLb3RsaW4gKE11bHRpUGxhdGZvcm0pOiBAYW5kcmV3ZW1lcnkKICAgKiBLb3RsaW4gKFZvbGxleSk6IEBhbGlzdGVycwogICAqIEtvdGxpbiAoanZtLXNwcmluZy13ZWJjbGllbnQpOiBAc3RlZmFua29wcGllcgogICAqIEtvdGxpbiAoanZtLXNwcmluZy1yZXN0Y2xpZW50KTogQHN0ZWZhbmtvcHBpZXIKICAgKiBMdWE6IEBkYXVybmltYXRvcgogICAqIE40SlM6IEBtbWV3cy1uNAogICAqIE5pbTogQGhva2Ftb3RvCiAgICogT0NhbWw6IEBjZ2Vuc291bAogICAqIFBlcmw6IEB3aW5nMzI4IFs6aGVhcnQ6XShodHRwczovL3d3dy5wYXRyZW9uLmNvbS93aW5nMzI4KQogICAqIFBIUCAoR3V6emxlKTogQGJhYXJ0b3N6CiAgICogUEhQICh3aXRoIERhdGEgVHJhbnNmZXIpOiBAQXJ0aWN1cwogICAqIFBvd2VyU2hlbGw6IEBiZWF0Y3JhY2tlcgogICAqIFBvd2VyU2hlbGwgKHJlZmFjdG9yZWQgaW4gNS4wLjApOiBAd2luZzMyOAogICAqIFB5dGhvbjogQHNwYWNldGhlciBbOmhlYXJ0Ol1bc3BhY2V0aGVyIHNwb25zb3JzaGlwXQogICAqIFB5dGhvbi1FeHBlcmltZW50YWw6IEBzcGFjZXRoZXIgWzpoZWFydDpdW3NwYWNldGhlciBzcG9uc29yc2hpcF0KICAgKiBQeXRob24gKHJlZmFjdG9yZWQgaW4gNy4wLjApOiBAd2luZzMyOAogICAqIFI6IEByYW1ub3YKICAgKiBSdWJ5IChGYXJhZGF5KTogQG1lZ2FuZW11cmEgQGRrbGliYW4KICAgKiBSdWJ5IChIVFRQWCk6IEBob25leXJ5ZGVyY2h1Y2sKICAgKiBSdXN0OiBAZmFyY2FsbGVyCiAgICogUnVzdCAocnVzdC1zZXJ2ZXIpOiBAbWV0YXN3aXRjaAogICAqIFNjYWxhIChzY2FsYXogJiBodHRwNHMpOiBAdGJyb3duMTk3OQogICAqIFNjYWxhIChBa2thKTogQGNjaGFmZXIKICAgKiBTY2FsYSAoc3R0cCk6IEBjaGFtZWxlb244MgogICAqIFNjYWxhIChzdHRwNCk6IEBmbHNoODYKICAgKiBTY2FsYSAoUGVra28pOiBAbWlja2FlbG1hZ25pZXoKICAgKiBTd2lmdDogQHRrcXVibwogICAqIFN3aWZ0IDM6IEBoZXhlbG9uCiAgICogU3dpZnQgNDogQGVoeWNoZQogICAqIFN3aWZ0IDU6IEA0YnJ1bnUKICAgKiBTd2lmdCBDb21iaW5lOiBAZHlkdXMweDE0CiAgICogVHlwZVNjcmlwdCAoQW5ndWxhcjEpOiBAbWhhcmRvcmYKICAgKiBUeXBlU2NyaXB0IChBbmd1bGFyMik6IEByb25pLWZyYW50Y2hpCiAgICogVHlwZVNjcmlwdCAoQW5ndWxhcjYpOiBAYWtlaGlyCiAgICogVHlwZVNjcmlwdCAoQW5ndWxhcjcpOiBAdG9wY2UKICAgKiBUeXBlU2NyaXB0IChBeGlvcyk6IEBuaWNva29lbmlnCiAgICogVHlwZVNjcmlwdCAoRmV0Y2gpOiBAbGVvbnl1CiAgICogVHlwZVNjcmlwdCAoSW52ZXJzaWZ5KTogQGd1YWx0aWVyaW0KICAgKiBUeXBlU2NyaXB0IChqUXVlcnkpOiBAYmhlcmlsYQogICAqIFR5cGVTY3JpcHQgKE5lc3Rqcyk6IEB2ZnJhbms2NgogICAqIFR5cGVTY3JpcHQgKE5vZGUpOiAgQG1oYXJkb3JmCiAgICogVHlwZVNjcmlwdCAoUnhqcyk6IEBkZW55bwogICAqIFR5cGVTY3JpcHQgKHJlZHV4LXF1ZXJ5KTogQHBldGVqb2hhbnNvbnhvCiAgICogWG9qbzogQFRvcGhlZWUKICAgKiBaYXBpZXI6IEB2YWxtb3osIEBlbWFqbwogKiBTZXJ2ZXIgU3R1YnMKICAgKiBBZGE6IEBzdGNhcnJlegogICAqIEMjIEFTUC5ORVQgNTogQGppbXNjaHViZXJ0IFs6aGVhcnQ6XShodHRwczovL3d3dy5wYXRyZW9uLmNvbS9qaW1zY2h1YmVydCkKICAgKiBDIyBBU1AuTkVUIENvcmUgMy4wOiBAQS1Kb3NoaQogICAqIEMjIEFQUy5ORVQgQ29yZSAzLjE6IEBwaGF0Y2hlcgogICAqIEMjIEF6dXJlIGZ1bmN0aW9uczogQEFicmhtNzc4NgogICAqIEMjIE5hbmN5Rlg6IEBtc3RlZmFuaXVrCiAgICogQysrIChRdDUgUUh0dHBFbmdpbmUpOiBAZXRoZXJlYWxqb3kKICAgKiBDKysgUGlzdGFjaGU6IEBzZWJ5bWlhbm8KICAgKiBDKysgUmVzdGJlZDogQHN0a3J3b3JrCiAgICogRXJsYW5nIFNlcnZlcjogQGdhbGF4aWUKICAgKiBGIyAoR2lyYWZmZSkgU2VydmVyOiBAbm1maXNoZXIKICAgKiBHbyBTZXJ2ZXI6IEBndW9odWFuZwogICAqIEdvIFNlcnZlciAocmVmYWN0b3JlZCBpbiA3LjAuMCk6IEBsd2o1CiAgICogR28gKEVjaG8pIFNlcnZlcjogQHBoNHI1aDRkCiAgICogR28gKEdpbikgU2VydmVyOiBAa2Vtb2tlbW8KICAgKiBHcmFwaFFMIEV4cHJlc3MgU2VydmVyOiBAcmVuZXBhcmRvbgogICAqIEhhc2tlbGwgU2VydmFudDogQGFsZ2FzCiAgICogSGFza2VsbCBZZXNvZDogQHlvdHN1eWEKICAgKiBKYXZhIENhbWVsOiBAY2FybmV2YWxlZ2lhY29tbwogICAqIEphdmEgTVNGNEo6IEBzYW5qZWV3YS1tYWxhbGdvZGEKICAgKiBKYXZhIFNwcmluZyBCb290OiBAZGl5ZnIKICAgKiBKYXZhIFVuZGVydG93OiBAc3RldmVodQogICAqIEphdmEgUGxheSBGcmFtZXdvcms6IEBKRkNvdGUKICAgKiBKYXZhIFBLTVNUOiBAYW5zaHUyMTg1IEBzYW5zaHVtYW4gQHJrdW1hci1wayBAbmlub2RwaWxsYWkKICAgKiBKYXZhIFZlcnQueDogQGx3bGVlMjYwOAogICAqIEphdmEgTWljcm9uYXV0OiBAYW5kcml5LWRteXRydWsKICAgKiBKYXZhIEhlbGlkb246IEBzcGVyaWNhcyBAdGpxdWlubm8gQHR2YWxsaW4KICAgKiBKYXZhIFdpcmVNb2NrOiBbQGFjb3V2cmV1cl0oaHR0cHM6Ly9naXRodWIuY29tL2Fjb3V2cmV1cikKICAgKiBKQVgtUlMgUmVzdEVhc3k6IEBjaGFtZWxlb244MgogICAqIEpBWC1SUyBDWEY6IEBoaXZlc2hpcAogICAqIEpBWC1SUyBDWEYgKENESSk6IEBuaWNrY21heW5hcmQKICAgKiBKQVgtUlMgUmVzdEVhc3kgKEpCb3NzIEVBUCk6IEBqZmlhbGEKICAgKiBKdWxpYTogQHRhbm1heWttCiAgICogS290bGluOiBAamltc2NodWJlcnQgWzpoZWFydDpdKGh0dHBzOi8vd3d3LnBhdHJlb24uY29tL2ppbXNjaHViZXJ0KQogICAqIEtvdGxpbiAoU3ByaW5nIEJvb3QpOiBAZHI0a2U2MTYKICAgKiBLb3RsaW4gKFZlcnR4KTogQFdvb3ltZQogICAqIEtvdGxpbiAoSkFYLVJTKTogQGFudHRpbGVwcGEKICAgKiBLb3RsaW4gV2lyZU1vY2s6IEBzdGVmYW5rb3BwaWVyCiAgICogTm9kZUpTIEV4cHJlc3M6IEBZaXNoVGlzaAogICAqIFBIUCBGbGlnaHQ6IEBkYW5pZWwtc2MKICAgKiBQSFAgTGFyYXZlbDogQHJlbmVwYXJkb24KICAgKiBQSFAgTHVtZW46IEBhYmNzdW4KICAgKiBQSFAgTWV6emlvICh3aXRoIFBhdGggSGFuZGxlcik6IEBBcnRpY3VzCiAgICogUEhQIFNsaW06IEBqZmFzdG5hY2h0CiAgICogUEhQIFNsaW00OiBbQHliZWxlbmtvXShodHRwczovL2dpdGh1Yi5jb20veWJlbGVua28pCiAgICogUEhQIFN5bWZvbnk6IEBrc20yCiAgICogUEhQIFN5bWZvbnk2OiBAQmVuamFtaW5IYWUKICAgKiBQeXRob24gRmFzdEFQSTogQGtyamFrYnJqYWsKICAgKiBQeXRob24gQUlPSFRUUDoKICAgKiBSdWJ5IG9uIFJhaWxzIDU6IEB6bHgKICAgKiBSdXN0IChydXN0LXNlcnZlcik6IEBtZXRhc3dpdGNoCiAgICogU2NhbGEgQWtrYTogQEJvdWlsbGllCiAgICogU2NhbGEgQ2FzazogQGFhcm9ucAogICAqIFNjYWxhIEZpbmNoOiBAamltc2NodWJlcnQgWzpoZWFydDpdKGh0dHBzOi8vd3d3LnBhdHJlb24uY29tL2ppbXNjaHViZXJ0KQogICAqIFNjYWxhIExhZ29tOiBAZ21rdW1hcjIwMDUKICAgKiBTY2FsYSBQbGF5OiBAYWRpZ2VyYmVyCiAqIERvY3VtZW50YXRpb24KICAgKiBBc2NpaURvYzogQG1hbi1hdC1ob21lCiAgICogSFRNTCBEb2MgMjogQGpoaXRjaGNvY2sKICAgKiBDb25mbHVlbmNlIFdpa2k6IEBqaGl0Y2hjb2NrCiAgICogUGxhbnRVTUw6IEBwYnVybHMKICogQ29uZmlndXJhdGlvbgogICAqIEFwYWNoZTI6IEBzdGtyd29yawogICAqIGs2OiBAbW9zdGFmYQogKiBTY2hlbWEKICAgKiBBdnJvOiBAc2dhZG91YXIKICAgKiBHcmFwaFFMOiBAd2luZzMyOCBbOmhlYXJ0Ol0oaHR0cHM6Ly93d3cucGF0cmVvbi5jb20vd2luZzMyOCkKICAgKiBLdG9ybTogQEx1aXotTW9uYWQKICAgKiBNeVNRTDogW0B5YmVsZW5rb10oaHR0cHM6Ly9naXRodWIuY29tL3liZWxlbmtvKQogICAqIFBvc3RtYW4gQ29sbGVjdGlvbjogQGdjYXRhbmVzZQogICAqIFByb3RvY29sIEJ1ZmZlcjogQHdpbmczMjgKICAgKiBXU0RMOiBAYWRlc3NvRHBkCgo6aGVhcnQ6ID0gTGluayB0byBzdXBwb3J0IHRoZSBjb250cmlidXRvciBkaXJlY3RseQoKIyMjIyBIb3cgdG8gam9pbiB0aGUgY29yZSB0ZWFtCgpIZXJlIGFyZSB0aGUgcmVxdWlyZW1lbnRzIHRvIGJlY29tZSBhIGNvcmUgdGVhbSBtZW1iZXI6Ci0gcmFuayB3aXRoaW4gdG9wIDUwIGluIGh0dHBzOi8vZ2l0aHViLmNvbS9vcGVuYXBpdG9vbHMvb3BlbmFwaS1nZW5lcmF0b3IvZ3JhcGhzL2NvbnRyaWJ1dG9ycwogIC0gdG8gY29udHJpYnV0ZSwgaGVyZSBhcmUgc29tZSBnb29kIFtzdGFydGluZyBwb2ludHNdKGh0dHBzOi8vZ2l0aHViLmNvbS9vcGVuYXBpdG9vbHMvb3BlbmFwaS1nZW5lcmF0b3IvaXNzdWVzP3E9aXMlM0FvcGVuK2lzJTNBaXNzdWUrbGFiZWwlM0ElMjJoZWxwK3dhbnRlZCUyMikKLSByZWd1bGFyIGNvbnRyaWJ1dGlvbnMgdG8gdGhlIHByb2plY3QKICAtIGFib3V0IDMgaG91cnMgcGVyIHdlZWsKICAtIGZvciBjb250cmlidXRpb24sIGl0IGNhbiBiZSBhZGRyZXNzaW5nIGlzc3VlcywgcmV2aWV3aW5nIFBScyBzdWJtaXR0ZWQgYnkgb3RoZXJzLCBzdWJtaXR0aW5nIFBSIHRvIGZpeCBidWdzIG9yIG1ha2UgZW5oYW5jZW1lbnRzLCBldGMKICAtIG11c3QgYmUgYWN0aXZlIGluIHRoZSBwYXN0IDMgbW9udGhzIGF0IHRoZSB0aW1lIG9mIGFwcGxpY2F0aW9uCgogVG8gam9pbiB0aGUgY29yZSB0ZWFtLCBwbGVhc2UgcmVhY2ggb3V0IHRvIHRlYW1Ab3BlbmFwaXRvb2xzLm9yZyBmb3IgbW9yZSBpbmZvcm1hdGlvbi4KCiBUbyBiZWNvbWUgYSBUZW1wbGF0ZSBDcmVhdG9yLCBzaW1wbHkgc3VibWl0IGEgUFIgZm9yIG5ldyBBUEkgY2xpZW50IChlLmcuIFJ1c3QsIEVsaXhpcikgb3Igc2VydmVyIHN0dWIgKGUuZy4gUnVieSBHcmFwZSkgZ2VuZXJhdG9yLgoKIyMjIFs2LjIgLSBPcGVuQVBJIEdlbmVyYXRvciBUZWNobmljYWwgQ29tbWl0dGVlXSgjdGFibGUtb2YtY29udGVudHMpCgpNZW1iZXJzIG9mIHRoZSBPcGVuQVBJIEdlbmVyYXRvciB0ZWNobmljYWwgY29tbWl0dGVlIHNob3VsZGVyIHRoZSBmb2xsb3dpbmcgcmVzcG9uc2liaWxpdGllczoKCi0gUHJvdmlkZXMgZ3VpZGFuY2UgYW5kIGRpcmVjdGlvbiB0byBvdGhlciB1c2VycwotIFJldmlld3MgcHVsbCByZXF1ZXN0cyBhbmQgaXNzdWVzCi0gSW1wcm92ZXMgdGhlIGdlbmVyYXRvciBieSBtYWtpbmcgZW5oYW5jZW1lbnRzLCBmaXhpbmcgYnVncyBvciB1cGRhdGluZyBkb2N1bWVudGF0aW9ucwotIFNldHMgdGhlIHRlY2huaWNhbCBkaXJlY3Rpb24gb2YgdGhlIGdlbmVyYXRvcgoKV2hvIGlzIGVsaWdpYmxlPyBUaG9zZSB3aG8gd2FudCB0byBqb2luIG11c3QgaGF2ZSBhdCBsZWFzdCAzIFBScyBtZXJnZWQgaW50byBhIGdlbmVyYXRvci4gKEV4Y2VwdGlvbnMgY2FuIGJlIGdyYW50ZWQgdG8gdGVtcGxhdGUgY3JlYXRvcnMgb3IgY29udHJpYnV0b3JzIHdobyBoYXZlIG1hZGUgYSBsb3Qgb2YgY29kZSBjaGFuZ2VzIHdpdGggbGVzcyB0aGFuIDMgbWVyZ2VkIFBScykKCklmIHlvdSB3YW50IHRvIGpvaW4gdGhlIGNvbW1pdHRlZSwgcGxlYXNlIGtpbmRseSBhcHBseSBieSBzZW5kaW5nIGFuIGVtYWlsIHRvIHRlYW1Ab3BlbmFwaXRvb2xzLm9yZyB3aXRoIHlvdXIgR2l0aHViIElELgoKIyMjIyBNZW1iZXJzIG9mIFRlY2huaWNhbCBDb21taXR0ZWUKCnwgTGFuZ3VhZ2VzL0dlbmVyYXRvcnMgIHwgTWVtYmVyIChqb2luIGRhdGUpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAp8Oi0tLS0tLS0tLS0tLS0tLS0tLS0tLS18Oi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLXwKfCBBY3Rpb25TY3JpcHQgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8CnwgQWRhICAgICAgICAgICAgICAgICAgIHwgQHN0Y2FycmV6ICgyMDE4LzAyKSBAbWljaGVsZWFsYmFubyAoMjAxOC8wMikgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAp8IEFuZHJvaWQgICAgICAgICAgICAgICB8IEBqYXotYWggKDIwMTcvMDkpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKfCBBcGV4ICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8CnwgQmFzaCAgICAgICAgICAgICAgICAgIHwgQGZyb2wgKDIwMTcvMDcpIEBia3J5emEgKDIwMTcvMDgpIEBrZW5qb25lcy1jaXNjbyAoMjAxNy8wOSkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAp8IEMgICAgICAgICAgICAgICAgICAgICB8IEB6aGVtYW50ICgyMDE4LzExKSBAaXR5dWh1aSAoMjAxOS8xMikgQG1pY2hlbGVhbGJhbm8gKDIwMjAvMDMpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKfCBDKysgICAgICAgICAgICAgICAgICAgfCBAcmF2aW5pa2FtICgyMDE3LzA3KSBAc3RrcndvcmsgKDIwMTcvMDcpIEBldGhlcmVhbGpveSAoMjAxOC8wMikgQG1hcnRpbmRlbGlsbGUgKDIwMTgvMDMpIEBtdXR0bGV5eGQgKDIwMTkvMDgpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8CnwgQyMgICAgICAgICAgICAgICAgICAgIHwgQG1hbmRyZWFuICgyMDE3LzA4KSBAc2hpYmF5YW4gKDIwMjAvMDIpIEBCbGFja2NsYXdzICgyMDIxLzAzKSBAbHVjYW1henphbnRpICgyMDIxLzA1KSBAaUJpY2hhICgyMDIzLzA3KSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKfCBDbG9qdXJlICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8CnwgQ3J5c3RhbCAgICAgICAgICAgICAgIHwgQGN5YW5nbGUgKDIwMjEvMDEpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAp8IERhcnQgICAgICAgICAgICAgICAgICB8IEBqYXVtYXJkICgyMDE4LzA5KSBAam9zaC1idXJ0b24gKDIwMTkvMTIpIEBhbW9uZG5ldCAoMjAxOS8xMikgQHNidS1XQlQgKDIwMjAvMTIpIEBrdWhucm95YWwgKDIwMjAvMTIpIEBhZ2lsb2IgKDIwMjAvMTIpIEBhaG1lZG5md2VsYSAoMjAyMS8wOCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKfCBFaWZmZWwgICAgICAgICAgICAgICAgfCBAanZlbGlsbGEgKDIwMTcvMDkpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8CnwgRWxpeGlyICAgICAgICAgICAgICAgIHwgQG1ybXN0biAoMjAxOC8xMikgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAp8IEVsbSAgICAgICAgICAgICAgICAgICB8IEBlcmlrdGltICgyMDE4LzA5KSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKfCBFcmxhbmcgICAgICAgICAgICAgICAgfCBAdHNsb3VnaHRlciAoMjAxNy8xMSkgQGpmYWNvcnJvICgyMDE4LzEwKSBAcm9iZXJ0b2Fsb2kgKDIwMTgvMTApICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8CnwgRiMgICAgICAgICAgICAgICAgICAgIHwgQG5tZmlzaGVyICgyMDE5LzA1KSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAp8IEdvICAgICAgICAgICAgICAgICAgICB8IEBhbnRpaGF4ICgyMDE3LzExKSBAZ3Jva2lmeSAoMjAxOC8wNykgQGtlbW9rZW1vICgyMDE4LzA5KSBAamlyaWt1bmNhciAoMjAyMS8wMSkgQHBoNHI1aDRkICgyMDIxLzA0KSBAbHdqNSAoMjAyMy8wNCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8CnwgR3JhcGhRTCAgICAgICAgICAgICAgIHwgQHJlbmVwYXJkb24gKDIwMTgvMTIpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAp8IEdyb292eSAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKfCBIYXNrZWxsICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8CnwgSmF2YSAgICAgICAgICAgICAgICAgIHwgQGJiZG91Z2xhcyAoMjAxNy8wNykgQHNyZWVzaGFzICgyMDE3LzA4KSBAamZpYWxhICgyMDE3LzA4KSBAbHVrb3lhbm92ICgyMDE3LzA5KSBAY2Jvcm5ldCAoMjAxNy8wOSkgQGplZmY5ZmluZ2VyICgyMDE4LzAxKSBAa2FyaXNtYW5uICgyMDE5LzAzKSBAWm9tem9nICgyMDE5LzA0KSBAbHdsZWUyNjA4ICgyMDE5LzEwKSBAbWFydGluLW1mZyAoMjAyMy8wOCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKfCBKYXZhIFNwcmluZyAgICAgICAgICAgfCBAY2FjaGVzY3J1YmJlciAoMjAyMi8wMikgQHdlbHNobSAoMjAyMi8wMikgQE1lbGxlRCAoMjAyMi8wMikgQGF0ZXh0b3IgKDIwMjIvMDIpIEBtYW5lZGV2NzkgKDIwMjIvMDIpIEBqYXZpc3N0ICgyMDIyLzAyKSBAYm9yc2NoICgyMDIyLzAyKSBAYmFubGV2ZW50ZSAoMjAyMi8wMikgQFpvbXpvZyAoMjAyMi8wOSkgQG1hcnRpbi1tZmcgKDIwMjMvMDgpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAp8IEpNZXRlciAgICAgICAgICAgICAgICB8IEBrYW5ua3lvICgyMDIxLzAxKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKfCBKZXRicmFpbnMgSFRUUCBDbGllbnQgfCBAamxlbmdyYW5kICgyMDIzLzAxKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8CnwgSnVsaWEgICAgICAgICAgICAgICAgIHwgQHRhbm1heWttICgyMDIzLzAxKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAp8IEtvdGxpbiAgICAgICAgICAgICAgICB8IEBkcjRrZTYxNiAoMjAxOC8wOCkgQGthcmlzbWFubiAoMjAxOS8wMykgQFpvbXpvZyAoMjAxOS8wNCkgQGFuZHJld2VtZXJ5ICgyMDE5LzEwKSBANGJydW51ICgyMDE5LzExKSBAeXV0YWthMG0gKDIwMjAvMDMpIEBzdGVmYW5rb3BwaWVyICgyMDIyLzA2KSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAp8IEx1YSAgICAgICAgICAgICAgICAgICB8IEBkYXVybmltYXRvciAoMjAxNy8wOCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKfCBONEpTICAgICAgICAgICAgICAgICAgfCBAbW1ld3MtbjQgKDIwMjMvMDMpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8CnwgTmltICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAp8IE5vZGVKUy9KYXZhc2NyaXB0ICAgICB8IEBDb2RlTmluamFpICgyMDE3LzA3KSBAZnJvbCAoMjAxNy8wNykgQGNsaWZmYW5vICgyMDE3LzA3KSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKfCBPYmpDICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8CnwgT0NhbWwgICAgICAgICAgICAgICAgIHwgQGNnZW5zb3VsICgyMDE5LzA4KSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAp8IFBlcmwgICAgICAgICAgICAgICAgICB8IEB3aW5nMzI4ICgyMDE3LzA3KSBbOmhlYXJ0Ol0oaHR0cHM6Ly93d3cucGF0cmVvbi5jb20vd2luZzMyOCkgQHl1ZTk5NDQ4ODIgKDIwMTkvMDYpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKfCBQSFAgICAgICAgICAgICAgICAgICAgfCBAamViZW50aWVyICgyMDE3LzA3KSwgQGRrYXJsb3ZpICgyMDE3LzA3KSwgQG1hbmRyZWFuICgyMDE3LzA4KSwgQGpmYXN0bmFjaHQgKDIwMTcvMDkpLCBbQHliZWxlbmtvXShodHRwczovL2dpdGh1Yi5jb20veWJlbGVua28pICgyMDE4LzA3KSwgQHJlbmVwYXJkb24gKDIwMTgvMTIpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8CnwgUG93ZXJTaGVsbCAgICAgICAgICAgIHwgQHdpbmczMjggKDIwMjAvMDUpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAp8IFB5dGhvbiAgICAgICAgICAgICAgICB8IEBjYm9ybmV0ICgyMDE3LzA5KSBAdG9tcGx1cyAoMjAxOC8xMCkgQGtyamFrYnJqYWsgKDIwMjMvMDIpIEBmYTAzMTEgKDIwMjMvMTApIEBtdWx0YW5pICgyMDIzLzEwKSB8CnwgUiAgICAgICAgICAgICAgICAgICAgIHwgQFJhbWFudGggKDIwMTkvMDcpIEBzYWlnaXJpZGhhcjIxICgyMDE5LzA3KSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAp8IFJ1YnkgICAgICAgICAgICAgICAgICB8IEBjbGlmZmFubyAoMjAxNy8wNykgQHpseCAoMjAxNy8wOSkgQGF1dG9wcCAoMjAxOS8wMikgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKfCBSdXN0ICAgICAgICAgICAgICAgICAgfCBAZnJvbCAoMjAxNy8wNykgQGZhcmNhbGxlciAoMjAxNy8wOCkgQHJpY2hhcmR3aGl1ayAoMjAxOS8wNykgQHBhbGFkaW56aCAoMjAyMC8wNSkgQGphY29iLXBybyAoMjAyMi8xMCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8CnwgU2NhbGEgICAgICAgICAgICAgICAgIHwgQGNsYXNuYWtlICgyMDE3LzA3KSwgQHNoaWppbmt1aSAgKDIwMTgvMDEpLCBAcmFtemltYWFsZWogKDIwMTgvMDMpLCBAY2hhbWVsZW9uODIgKDIwMjAvMDMpLCBAQm91aWxsaWUgKDIwMjAvMDQpIEBmaXNoODYgKDIwMjMvMDYpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAp8IFN3aWZ0ICAgICAgICAgICAgICAgICB8IEBqZ2F2cmlzICgyMDE3LzA3KSBAZWh5Y2hlICgyMDE3LzA4KSBARWR1Yml0cyAoMjAxNy8wOSkgQGphei1haCAoMjAxNy8wOSkgQDRicnVudSAoMjAxOS8xMSkgQGR5ZHVzMHgxNCAoMjAyMy8wNikgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKfCBUeXBlU2NyaXB0ICAgICAgICAgICAgfCBAVGlGdSAoMjAxNy8wNykgQHRheHBvbiAoMjAxNy8wNykgQHNlYmFzdGlhbmhhYXMgKDIwMTcvMDcpIEBrZW5pc3Rld2FyZCAoMjAxNy8wNykgQFZyb2xpamt4ICgyMDE3LzA5KSBAbWFjam9obm55ICgyMDE4LzAxKSBAdG9wY2UgKDIwMTgvMTApIEBha2VoaXIgKDIwMTkvMDcpIEBwZXRlam9oYW5zb254byAoMjAxOS8xMSkgQGFtYWtocm92ICgyMDIwLzAyKSBAZGF2aWRnYW1lcm8gKDIwMjIvMDMpIEBta3VzYWthICgyMDIyLzA0KSB8CnwgWG9qbyAgICAgICAgICAgICAgICAgIHwgQFRvcGhlZWUgKDIwMjMvMDQpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAoKClBhc3QgTWVtYmVycyBvZiBUZWNobmljYWwgQ29tbWl0dGVlOgp8IExhbmd1YWdlcy9HZW5lcmF0b3JzICAgICAgICAgfCBNZW1iZXIgKGpvaW4gZGF0ZSkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAp8IDotLS0tLS0tLS0tLS0tLS0tIHwgOi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIHwKfCBQeXRob24gICAgICAgICAgICB8IEB0YXhwb24gKDIwMTcvMDcpIEBmcm9sICgyMDE3LzA3KSBAbWJvaGxvb2wgKDIwMTcvMDcpIEBjYm9ybmV0ICgyMDE3LzA5KSBAa2Vuam9uZXMtY2lzY28gKDIwMTcvMTEpIEB0b21wbHVzICgyMDE4LzEwKSBAYXJ1bi1uYWxsYSAoMjAxOS8xMSkgIHwKCgo6aGVhcnQ6ID0gTGluayB0byBzdXBwb3J0IHRoZSBjb250cmlidXRvciBkaXJlY3RseQoKIyMjIFs2LjMgLSBIaXN0b3J5IG9mIE9wZW5BUEkgR2VuZXJhdG9yXSgjdGFibGUtb2YtY29udGVudHMpCgpPcGVuQVBJIEdlbmVyYXRvciBpcyBhIGZvcmsgb2YgW1N3YWdnZXIgQ29kZWdlbl0oaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbikuIEluIHZpZXcgb2YgdGhlIGlzc3VlcyB3aXRoIHRoZSBTd2FnZ2VyIENvZGVnZW4gMy4wLjAgKGJldGEpIHJlbGVhc2UgYW5kIHRoZSBkaXNhZ3JlZW1lbnQgb24gdGhlIHByb2plY3QncyBkaXJlY3Rpb24sIG1vcmUgdGhhbiA0MCB0b3AgY29udHJpYnV0b3JzIGFuZCB0ZW1wbGF0ZSBjcmVhdG9ycyBvZiBTd2FnZ2VyIENvZGVnZW4gZGVjaWRlZCB0byBmb3JrIFN3YWdnZXIgQ29kZWdlbiBhbmQgbWFpbnRhaW4gYSBjb21tdW5pdHktZHJpdmVuIHZlcnNpb24gY2FsbGVkICJPcGVuQVBJIEdlbmVyYXRvciIuIFBsZWFzZSByZWZlciB0byB0aGUgW1EmQV0oZG9jcy9xbmEubWQpIGZvciBtb3JlIGluZm9ybWF0aW9uLgoKIyMjIyBGb3VuZGluZyBNZW1iZXJzIChhbHBoYWJldGljYWwgb3JkZXIpOgoKLSBbQWtpaGl0byBOYWthbm9dKGh0dHBzOi8vZ2l0aHViLmNvbS9hY2tpbnRvc2gpCi0gW0FydGVtIE9jaGVyZWRrb10oaHR0cHM6Ly9naXRodWIuY29tL2dhbGF4aWUpCi0gW0FydGh1ciBNb2dsaWV2XShodHRwczovL2dpdGh1Yi5jb20vQXJ0aWN1cykKLSBbQmFydGVrIEtyeXphXShodHRwczovL2dpdGh1Yi5jb20vYmtyeXphKQotIFtCZW4gV2VsbHNdKGh0dHBzOi8vZ2l0aHViLmNvbS9idndlbGxzKQotIFtCZW5qYW1pbiBHaWxsXShodHRwczovL2dpdGh1Yi5jb20vYmpnaWxsKQotIFtDaHJpc3RvcGhlIEJvcm5ldF0oaHR0cHM6Ly9naXRodWIuY29tL2Nib3JuZXQpCi0gW0NsaWZmYW5vIFN1YmFnaW9dKGh0dHBzOi8vZ2l0aHViLmNvbS9jbGlmZmFubykKLSBbRGFpa2kgTWF0c3VkYXRlXShodHRwczovL2dpdGh1Yi5jb20vZC1kYXRlKQotIFtEYW5pZWxdKGh0dHBzOi8vZ2l0aHViLmNvbS9EYW5pZWxrdTE1KQotIFtFbWlsaWFubyBCb25hc3NpXShodHRwczovL2dpdGh1Yi5jb20vZW1pbGlhbm9ib25hc3NpKQotIFtFcmlrIFRpbW1lcnNdKGh0dHBzOi8vZ2l0aHViLmNvbS9lcmlrdGltKQotIFtFc3RlYmFuIEdlaHJpbmddKGh0dHBzOi8vZ2l0aHViLmNvbS9tYWNqb2hubnkpCi0gW0d1c3Rhdm8gUGF6XShodHRwczovL2dpdGh1Yi5jb20vZ3VzdGF2b2FwYXopCi0gW0phdmllciBWZWxpbGxhXShodHRwczovL2dpdGh1Yi5jb20vanZlbGlsbGEpCi0gW0plYW4tRnJhbsOnb2lzIEPDtHTDqV0oaHR0cHM6Ly9naXRodWIuY29tL0pGQ290ZSkKLSBbSmltIFNjaHViZXJ0XShodHRwczovL2dpdGh1Yi5jb20vamltc2NodWJlcnQpCi0gW0pvbiBTY2hvbmluZ10oaHR0cHM6Ly9naXRodWIuY29tL2pvbnNjaG9uaW5nKQotIFtKw6lyw6ltaWUgQnJlc3Nvbl0oaHR0cHM6Ly9naXRodWIuY29tL2ptaW5pKSBbOmhlYXJ0Ol0oaHR0cHM6Ly93d3cucGF0cmVvbi5jb20vam1pbmkpCi0gW0rDtnJuIEFocmVuc10oaHR0cHM6Ly9naXRodWIuY29tL2pheWVhcm4pCi0gW0tlbmkgU3Rld2FyZF0oaHR0cHM6Ly9naXRodWIuY29tL2tlbmlzdGV3YXJkKQotIFtNYXJjaW4gU3RlZmFuaXVrXShodHRwczovL2dpdGh1Yi5jb20vbXN0ZWZhbml1aykKLSBbTWFydGluIERlbGlsbGVdKGh0dHBzOi8vZ2l0aHViLmNvbS9NYXJ0aW5EZWxpbGxlKQotIFtNYXNhaGlybyBZYW1hdWNoaV0oaHR0cHM6Ly9naXRodWIuY29tL2FsZ2FzKQotIFtNaWNoZWxlIEFsYmFub10oaHR0cHM6Ly9naXRodWIuY29tL21pY2hlbGVhbGJhbm8pCi0gW1JhbXppIE1hYWxlal0oaHR0cHM6Ly9naXRodWIuY29tL3JhbXppbWFhbGVqKQotIFtSYXZpbmRyYSBOaWthbV0oaHR0cHM6Ly9naXRodWIuY29tL3JhdmluaWthbSkKLSBbUmljYXJkbyBDYXJkb25hXShodHRwczovL2dpdGh1Yi5jb20vcmljYXJkb25hKQotIFtTZWJhc3RpYW4gSGFhc10oaHR0cHM6Ly9naXRodWIuY29tL3NlYmFzdGlhbmhhYXMpCi0gW1NlYmFzdGlhbiBNYW5kcmVhbl0oaHR0cHM6Ly9naXRodWIuY29tL21hbmRyZWFuKQotIFtTcmVlbmlkaGkgU3JlZXNoYV0oaHR0cHM6Ly9naXRodWIuY29tL3NyZWVzaGFzKQotIFtTdGVmYW4gS3Jpc21hbm5dKGh0dHBzOi8vZ2l0aHViLmNvbS9zdGtyd29yaykKLSBbU3RlcGhhbmUgQ2FycmV6XShodHRwczovL2dpdGh1Yi5jb20vc3RjYXJyZXopCi0gW1Rha3VybyBXYWRhXShodHRwczovL2dpdGh1Yi5jb20vdGF4cG9uKQotIFtUb21hc3ogUHJ1c10oaHR0cHM6Ly9naXRodWIuY29tL3RvbXBsdXMpCi0gW1RyaXN0YW4gU2xvdWdodGVyXShodHRwczovL2dpdGh1Yi5jb20vdHNsb3VnaHRlcikKLSBbVmljdG9yIE9ybG92c2t5XShodHRwczovL2dpdGh1Yi5jb20vdmljbG92c2t5KQotIFtWaWN0b3IgVHJha2h0ZW5iZXJnXShodHRwczovL2dpdGh1Yi5jb20vdmljdG9yZ2l0KQotIFtWbGFkIEZyb2xvdl0oaHR0cHM6Ly9naXRodWIuY29tL2Zyb2wpCi0gW1ZsYWRpbWlyIFBvdXphbm92XShodHRwczovL2dpdGh1Yi5jb20vZmFyY2FsbGVyKQotIFtXaWxsaWFtIENoZW5nXShodHRwczovL2dpdGh1Yi5jb20vd2luZzMyOCkKLSBbWGluIE1lbmddKGh0dHBzOi8vZ2l0aHViLmNvbS94bWVuZzEpIFs6aGVhcnQ6XShodHRwczovL3d3dy5wYXRyZW9uLmNvbS91c2VyL292ZXJ2aWV3P3U9MTY0MzUzODUpCi0gW1h1IEh1aSBIdWldKGh0dHBzOi8vZ2l0aHViLmNvbS94aGgpCi0gW2FudGloYXhdKGh0dHBzOi8vZ2l0aHViLmNvbS9hbnRpaGF4KQotIFtiZWF0Y3JhY2tlcl0oaHR0cHM6Ly9naXRodWIuY29tL2JlYXRjcmFja2VyKQotIFtkYXVybmltYXRvcl0oaHR0cHM6L2dpdGh1Yi5jb20vZGF1cm5pbWF0b3IpCi0gW2V0aGVyZWFsam95XShodHRwczovL2dpdGh1Yi5jb20vZXRoZXJlYWxqb3kpCi0gW2pmaWFsYV0oaHR0cHM6Ly9naXRodWIuY29tL2pmaWFsYSkKLSBbbHVrb3lhbm92XShodHRwczovL2dpdGh1Yi5jb20vbHVrb3lhbm92KQoKOmhlYXJ0OiA9IExpbmsgdG8gc3VwcG9ydCB0aGUgY29udHJpYnV0b3IgZGlyZWN0bHkKCiMjIFs3IC0gTGljZW5zZV0oI3RhYmxlLW9mLWNvbnRlbnRzKQotLS0tLS0tCgpDb3B5cmlnaHQgMjAxOCBPcGVuQVBJLUdlbmVyYXRvciBDb250cmlidXRvcnMgKGh0dHBzOi8vb3BlbmFwaS1nZW5lcmF0b3IudGVjaCkKQ29weXJpZ2h0IDIwMTggU21hcnRCZWFyIFNvZnR3YXJlCgpMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgpZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQgW2FwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBdKGh0dHBzOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjApCgpVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCmRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCldJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgpTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCmxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgoKLS0tCg== + readmeEtag: '"e93db362f20b63f3b2fdf006d1172bcccd640f52"' + readmeLastModified: Mon, 19 Aug 2024 08:19:49 GMT repositoryId: 133134007 description: >- OpenAPI Generator allows generation of API client libraries (SDK generation), server stubs, documentation and configuration automatically given an OpenAPI Spec (v2, v3) created: '2018-05-12T09:57:56Z' - updated: '2024-08-18T21:46:05Z' + updated: '2024-08-20T01:50:16Z' language: Java archived: false - stars: 21044 + stars: 21058 watchers: 219 - forks: 6380 + forks: 6382 owner: OpenAPITools logo: https://avatars.githubusercontent.com/u/37325267?v=4 license: Apache-2.0 - repoEtag: '"0f8493c503f0512541f26282ed87b90bfb420aea174a731e7e7eecfe51a578c7"' - repoLastModified: Sun, 18 Aug 2024 21:46:05 GMT + repoEtag: '"34babdfebb9645ae7310c759c050396e8496c7746b2356d8558c54c122667b62"' + repoLastModified: Tue, 20 Aug 2024 01:50:16 GMT foundInMaster: true id: 0418f8afcd0196c648d1a46c0c5c20d1 v3_1_link: https://github.com/OpenAPITools/openapi-generator/issues/9083 @@ -1040,17 +1040,17 @@ repositoryId: 544314254 description: ' OpenAPI JSON Schema Generator allows auto-generation of API client libraries with a focus on JSON schema given an OpenAPI document' created: '2022-10-02T06:47:59Z' - updated: '2024-08-16T22:44:23Z' + updated: '2024-08-19T06:45:35Z' language: Java archived: false - stars: 139 + stars: 140 watchers: 4 forks: 13 owner: openapi-json-schema-tools logo: https://avatars.githubusercontent.com/u/114849992?v=4 license: Apache-2.0 - repoEtag: '"7cae5832210535b82dff603c01dc8c3c85c0a49c01a75ee976bae80ec45a23d7"' - repoLastModified: Fri, 16 Aug 2024 22:44:23 GMT + repoEtag: '"329340767280459cde6ed68ed3682400afdbfac17ee45c795919051b849828e3"' + repoLastModified: Mon, 19 Aug 2024 06:45:35 GMT category: - Code Generators - SDK @@ -1095,17 +1095,17 @@ repositoryId: 323665366 description: OpenAPI based HTTP Client code generator created: '2020-12-22T15:35:49Z' - updated: '2024-08-19T01:19:55Z' + updated: '2024-08-20T02:16:53Z' language: C# archived: false - stars: 2729 + stars: 2742 watchers: 44 forks: 184 owner: microsoft logo: https://avatars.githubusercontent.com/u/6154722?v=4 license: MIT - repoEtag: '"d6820cfb07c401d2bc5fa062f5d388c5b50969a45d0e09bae09c0d5bdbc88038"' - repoLastModified: Mon, 19 Aug 2024 01:19:55 GMT + repoEtag: '"ffa89134a964f6ffdd88e87a752810f66df2e647b995b05571e70a30b78c4612"' + repoLastModified: Tue, 20 Aug 2024 02:16:53 GMT foundInMaster: true - source: https://openapi.tools/ name: FabriKt @@ -1142,7 +1142,7 @@ owner: cjbooms logo: https://avatars.githubusercontent.com/u/868640?v=4 license: Apache-2.0 - repoEtag: '"9127e005c1de72c78b2bb20d1e6eb6b5c65ca7e29749dbe55c2909f948addfb4"' + repoEtag: '"0331ef85976a662b984e795d67962add95a9a297fff78a9c7226a9789d5caea4"' repoLastModified: Tue, 13 Aug 2024 10:11:21 GMT foundInMaster: true - source: @@ -1260,7 +1260,7 @@ repositoryId: 190430086 description: VisualStudio Code OpenAPI tools created: '2019-06-05T16:27:53Z' - updated: '2024-08-16T14:18:51Z' + updated: '2024-08-19T16:17:16Z' language: TypeScript archived: false stars: 326 @@ -1269,8 +1269,8 @@ owner: 42Crunch logo: https://avatars.githubusercontent.com/u/25365245?v=4 license: AGPL-3.0 - repoEtag: '"5e8d28c7676bdd7893baa2241371895bf8ce4a01cab9bba8e71ccbbdce4d3db4"' - repoLastModified: Fri, 16 Aug 2024 14:18:51 GMT + repoEtag: '"73e89587d001a3aa1ec0dbc89dcb33bc7e862174d800c829ea3ac1cfba891968"' + repoLastModified: Mon, 19 Aug 2024 16:17:16 GMT foundInMaster: true id: 782ecbb10f1ff8ac9685e0ed24e52e58 v3_1: false @@ -1335,17 +1335,17 @@ repositoryId: 19390712 description: Swagger Editor created: '2014-05-02T22:47:10Z' - updated: '2024-08-18T18:25:54Z' + updated: '2024-08-19T10:15:45Z' language: JavaScript archived: false - stars: 8832 + stars: 8833 watchers: 258 - forks: 2235 + forks: 2236 owner: swagger-api logo: https://avatars.githubusercontent.com/u/7658037?v=4 license: Apache-2.0 - repoEtag: '"54d940ff7b37fb010f072a02d507aebdbb0589d0dbf7ca90f3b7eaee3ff12fa0"' - repoLastModified: Sun, 18 Aug 2024 18:25:54 GMT + repoEtag: '"f2162dc9620a4ab70bc9dbc50d01cb259a919bf4ceb52dda8c6ffd3e59da6d95"' + repoLastModified: Mon, 19 Aug 2024 10:15:45 GMT foundInMaster: true id: 951cf61d12c812ef9b201ad76b5d278d v3_1: true @@ -1498,7 +1498,7 @@ owner: Apicurio logo: https://avatars.githubusercontent.com/u/28107283?v=4 license: Apache-2.0 - repoEtag: '"45ae9d9fd9086d7b07bf88022fb171cbf6df66039f4616f71f0d81583fa12929"' + repoEtag: '"7a76380d4140f1fb710f89ac2f2eadcaba13154702ead2ba1f78f93bd6539b1c"' repoLastModified: Thu, 15 Aug 2024 15:06:30 GMT foundInMaster: true homepage: https://github.com/Apicurio/apicurio-studio @@ -1705,17 +1705,17 @@ Turn any OpenAPI2/3 and Postman Collection file into an API server with mocking, transformations and validations. created: '2016-03-18T03:52:09Z' - updated: '2024-08-17T07:24:27Z' + updated: '2024-08-19T04:00:29Z' language: TypeScript archived: false - stars: 4176 + stars: 4177 watchers: 54 forks: 343 owner: stoplightio logo: https://avatars.githubusercontent.com/u/10767217?v=4 license: Apache-2.0 - repoEtag: '"4c83450edc79f44084ddf5fdaea93a931817c19913f73e63be1fed64e8244c48"' - repoLastModified: Sat, 17 Aug 2024 07:24:27 GMT + repoEtag: '"7a389f9adf93282d2b0326d36f24c2aa897ab10d778878762521718b7c7f1a96"' + repoLastModified: Mon, 19 Aug 2024 04:00:29 GMT foundInMaster: true useMasterProperties: true id: 15aad8cd322242e03733b07f2a37890a @@ -1748,17 +1748,17 @@ The open source, cloud native tool for API Mocking and Testing. Microcks is a Cloud Native Computing Foundation sandbox project 🚀 created: '2015-02-23T15:46:09Z' - updated: '2024-08-18T14:19:47Z' + updated: '2024-08-19T07:39:04Z' language: Java archived: false - stars: 1313 - watchers: 23 + stars: 1314 + watchers: 22 forks: 208 owner: microcks logo: https://avatars.githubusercontent.com/u/11051048?v=4 license: Apache-2.0 - repoEtag: '"3df3d815ec180d3fb2b2889b8774b11151c98bed580234603687a722211d1ef3"' - repoLastModified: Sun, 18 Aug 2024 14:19:47 GMT + repoEtag: '"e09a6ea26e6e5f1a451d7f78f87dcb407ab3f9e3da94994a67be0778576101f0"' + repoLastModified: Mon, 19 Aug 2024 07:39:04 GMT foundInMaster: true id: 1c0e918b5a733b0f1726199e3ea101d6 - source: https://openapi.tools/ @@ -1927,17 +1927,17 @@ repositoryId: 61366800 description: Build OpenAPI-compliant REST APIs using TypeScript and Node created: '2016-06-17T10:42:50Z' - updated: '2024-08-18T07:35:59Z' + updated: '2024-08-19T11:10:06Z' language: TypeScript archived: false - stars: 3412 + stars: 3413 watchers: 29 forks: 488 owner: lukeautry logo: https://avatars.githubusercontent.com/u/8770560?v=4 license: MIT - repoEtag: '"721e738adb7a1966c29b42924c065623a6f36217abb345056ce9ddc90a5c8e45"' - repoLastModified: Sun, 18 Aug 2024 07:35:59 GMT + repoEtag: '"4a1c98b592b209bf1bbc6269a4c3231a9b38b6e5e488d92f19c29507b6da08c6"' + repoLastModified: Mon, 19 Aug 2024 11:10:06 GMT foundInMaster: true id: 2529db76d3d9f042b0c624f65b13fc41 - source: https://openapi.tools/ @@ -1970,11 +1970,11 @@ archived: false stars: 1100 watchers: 82 - forks: 530 + forks: 531 owner: vert-x3 logo: https://avatars.githubusercontent.com/u/8124623?v=4 license: Apache-2.0 - repoEtag: '"f3d04d8c776906345d76f3ce1afb3226594f19773f5b497dc3988088d9ad3850"' + repoEtag: '"e5719da05acfc5a020a551c98413484ebdbafb95b6fa324b1dfa74fe4805cecd"' repoLastModified: Sun, 18 Aug 2024 12:53:59 GMT foundInMaster: true v3_link: https://github.com/vert-x3/vertx-web/issues/1872 @@ -2106,17 +2106,17 @@ 🕸️ Create REST and GraphQL APIs, scaffold Jamstack webapps, stream changes in real-time. created: '2015-03-06T21:46:05Z' - updated: '2024-08-18T19:05:30Z' + updated: '2024-08-19T03:30:05Z' language: TypeScript archived: false - stars: 8412 + stars: 8413 watchers: 213 forks: 950 owner: api-platform logo: https://avatars.githubusercontent.com/u/13420081?v=4 license: MIT - repoEtag: '"4fff2fe83b3730dc8cfb8e84d84a040e8b6f696ef65a2dbe80d775c643cb2ea0"' - repoLastModified: Sun, 18 Aug 2024 19:05:30 GMT + repoEtag: '"fa1299cfdfcea020f9bbd22b41376db608bd71c6a17a04b7918a0c0a9151208f"' + repoLastModified: Mon, 19 Aug 2024 03:30:05 GMT foundInMaster: true id: d14f5904300aabf1ceef4660a6b3d57e - source: https://openapi.tools/ @@ -2288,17 +2288,17 @@ repositoryId: 105440153 description: 'OpenAPI (Swagger) module for Nest framework (node.js) :earth_americas:' created: '2017-10-01T12:20:24Z' - updated: '2024-08-19T00:51:03Z' + updated: '2024-08-20T03:05:52Z' language: TypeScript archived: false - stars: 1655 + stars: 1656 watchers: 31 forks: 457 owner: nestjs logo: https://avatars.githubusercontent.com/u/28507035?v=4 license: MIT - repoEtag: '"1ec9c709c051a3441ff26214bbd9e1c89821f429e2b8b9bac2eea541fae29a9c"' - repoLastModified: Mon, 19 Aug 2024 00:51:03 GMT + repoEtag: '"2932707cf1865ae6c7ce54a3640213866d2c261168ac729ba1e41dff959ccb23"' + repoLastModified: Tue, 20 Aug 2024 03:05:52 GMT foundInMaster: true id: 7071babd9853fc901c5decfa9b465b67 - source: @@ -2361,17 +2361,17 @@ repositoryId: 12590052 description: Language-agnostic HTTP API Testing Tool created: '2013-09-04T12:21:35Z' - updated: '2024-08-17T19:21:47Z' + updated: '2024-08-19T08:16:12Z' language: JavaScript archived: false - stars: 4169 + stars: 4170 watchers: 76 forks: 279 owner: apiaryio logo: https://avatars.githubusercontent.com/u/765943?v=4 license: MIT - repoEtag: '"e8838a24a03bf0040a333dd79406bbd1dd43ab79dc73b9e2fa35a509d0ca5242"' - repoLastModified: Sat, 17 Aug 2024 19:21:47 GMT + repoEtag: '"aaab76e8d604b6fc34b53df826e6bce6328b6e65aee926f92653d81be1ed50d3"' + repoLastModified: Mon, 19 Aug 2024 08:16:12 GMT foundInMaster: true id: bb2e4b0879fce0d8706dcebfd2c10a4c - source: @@ -2396,17 +2396,17 @@ 🦋 Auto-validates api requests, responses, and securities using ExpressJS and an OpenAPI 3.x specification created: '2019-03-19T19:08:05Z' - updated: '2024-08-12T16:16:33Z' + updated: '2024-08-19T08:29:17Z' language: TypeScript archived: false - stars: 896 + stars: 897 watchers: 18 forks: 203 owner: cdimascio logo: https://avatars.githubusercontent.com/u/4706618?v=4 license: MIT - repoEtag: '"7667c18e4a84d486b3b1bc7ad527a39ed56bcf770f13f7b3b4dcb98d61ab8aba"' - repoLastModified: Mon, 12 Aug 2024 16:16:33 GMT + repoEtag: '"33f6bd2d197fa37f418ed9d162a6e609122919da54bb4fb07a3766a70e76f208"' + repoLastModified: Mon, 19 Aug 2024 08:29:17 GMT foundInMaster: true id: 3a27bc1a71642e0c1c020c41dc66e206 - source: https://openapi.tools/ @@ -2469,17 +2469,17 @@ Port OpenAPI Specs to Postman Collections, inject test suite and run via Newman 👨🏽‍🚀 created: '2021-05-05T10:42:29Z' - updated: '2024-08-18T19:05:50Z' + updated: '2024-08-19T17:22:59Z' language: TypeScript archived: false - stars: 629 + stars: 630 watchers: 10 forks: 58 owner: apideck-libraries logo: https://avatars.githubusercontent.com/u/73573473?v=4 license: Apache-2.0 - repoEtag: '"261b17ed7d93f618c26589aba4c02b434d603d482418865e64c1ca0b48f8f332"' - repoLastModified: Sun, 18 Aug 2024 19:05:50 GMT + repoEtag: '"9ccd493e484c316183968ca026208eaeadf0a206708f03a0a01c05e738eba26b"' + repoLastModified: Mon, 19 Aug 2024 17:22:59 GMT foundInMaster: true id: a03cdb329f630a946a946dfe26802c43 - source: https://openapi.tools/ @@ -2593,11 +2593,11 @@ archived: false stars: 2427 watchers: 32 - forks: 234 + forks: 235 owner: stoplightio logo: https://avatars.githubusercontent.com/u/10767217?v=4 license: Apache-2.0 - repoEtag: '"4750249337d8a0c7ec557640215335f54669c4847358ae7b51ebc812bd9b131c"' + repoEtag: '"db27a51d1cfd2251074023410510dc7b43827ad06d9a9fe0c59a337753197791"' repoLastModified: Sun, 18 Aug 2024 12:50:29 GMT foundInMaster: true id: fab3cc58898cd8953a30e43cc622e0fe @@ -2632,7 +2632,7 @@ owner: OpenAPITools logo: https://avatars.githubusercontent.com/u/37325267?v=4 license: Apache-2.0 - repoEtag: '"1aed40c6a1d2ac71ef30a7741accaa6d64ffba0f32f60a585bd66d2b9d242f03"' + repoEtag: '"a3ddf5c8b78014c6439652a06c8477209cef91b696666b9b761c0bf7d29c4110"' repoLastModified: Fri, 16 Aug 2024 01:38:44 GMT foundInMaster: true id: 30d322c922366df3f6f8fb9c681b2139 @@ -2683,17 +2683,17 @@ ⚒️ Redocly CLI makes OpenAPI easy. Lint/validate to any standard, generate beautiful docs, and more. created: '2019-09-10T14:56:25Z' - updated: '2024-08-18T22:22:34Z' + updated: '2024-08-19T12:15:28Z' language: TypeScript archived: false - stars: 889 + stars: 890 watchers: 28 forks: 134 owner: Redocly logo: https://avatars.githubusercontent.com/u/32099856?v=4 license: MIT - repoEtag: '"9412e9272799572aad4c54493dc74e9e8a4edfe99b0c6de62e95c023887525de"' - repoLastModified: Sun, 18 Aug 2024 22:22:34 GMT + repoEtag: '"1c12e012490bc4bf6e57970ca91337b104e4775c2a3ad8072aca732237e833b3"' + repoLastModified: Mon, 19 Aug 2024 12:15:28 GMT category: - Description Validators - Documentation @@ -2801,17 +2801,17 @@ contract-testing against an OpenAPI API description. It makes APIFirst easy and reliable. created: '2019-02-20T09:11:47Z' - updated: '2024-08-18T14:35:42Z' + updated: '2024-08-19T10:52:13Z' language: Ruby archived: false - stars: 101 + stars: 102 watchers: 6 forks: 12 owner: ahx logo: https://avatars.githubusercontent.com/u/8669?v=4 license: MIT - repoEtag: '"bfcabeadacd1947ef2dff24a86038dfaee2f3e518f8614b41f830fa36d49c45a"' - repoLastModified: Sun, 18 Aug 2024 14:35:42 GMT + repoEtag: '"67a6367438774eeb1b8b46f613ac4a06e88210e1677c81e6d856ad5360f4ab7b"' + repoLastModified: Mon, 19 Aug 2024 10:52:13 GMT foundInMaster: true category: Data Validators id: d8781910209a542c2f846aa8c740baf2 @@ -2907,17 +2907,17 @@ repositoryId: 25453221 description: Swagger 2.0 and OpenAPI 3.0 parser/validator created: '2014-10-20T06:14:51Z' - updated: '2024-08-18T06:40:41Z' + updated: '2024-08-19T19:42:22Z' language: JavaScript archived: false - stars: 1082 + stars: 1083 watchers: 18 forks: 154 owner: APIDevTools logo: https://avatars.githubusercontent.com/u/43750074?v=4 license: MIT - repoEtag: '"0258b67dde855d02889ccf70a89a4c01b99da6ec7491fd0dc04f23d591f8f472"' - repoLastModified: Sun, 18 Aug 2024 06:40:41 GMT + repoEtag: '"5e428065a01b7977dc141189695206ffaa36c4b477edee9a2c449cb7bbe1fe7c"' + repoLastModified: Mon, 19 Aug 2024 19:42:22 GMT category: Parsers foundInMaster: true name: APIDevTools/swagger-parser @@ -3075,17 +3075,17 @@ OpenAPI 3.0 (and Swagger v2) implementation for Go (parsing, converting, validation, and more) created: '2017-06-11T20:12:06Z' - updated: '2024-08-16T09:18:15Z' + updated: '2024-08-19T17:31:47Z' language: Go archived: false - stars: 2527 + stars: 2528 watchers: 23 - forks: 421 + forks: 422 owner: getkin logo: https://avatars.githubusercontent.com/u/40365715?v=4 license: MIT - repoEtag: '"dfbd5f1f4db7600afef958fc854d4d83267aef9c1bd4cc9b0bf3966b2c8417f4"' - repoLastModified: Fri, 16 Aug 2024 09:18:15 GMT + repoEtag: '"1734281135f0244d062021a71199ed2c59e0d73b41948e91570b138a22c73980"' + repoLastModified: Mon, 19 Aug 2024 17:31:47 GMT foundInMaster: true v2: true id: f6838ce08e87fa4c3dc813c97193ece3 @@ -3259,7 +3259,7 @@ owner: apioo logo: https://avatars.githubusercontent.com/u/18172950?v=4 license: Apache-2.0 - repoEtag: '"4a50ccf829e866e24e89aaebc696ec5d628ead516bccfb39d713c786b0b549ff"' + repoEtag: '"f5dd8fec6c15ff038121519c964380eec5c1a8205cb092ca94879141bde9b0c1"' repoLastModified: Sat, 13 Jul 2024 00:18:30 GMT foundInMaster: true id: ee32e280cf10ca5103c9b9e144021b91 @@ -3284,17 +3284,17 @@ in .NET along with common serializers to extract raw OpenAPI JSON and YAML documents from the model. created: '2017-07-14T00:24:14Z' - updated: '2024-08-15T20:19:47Z' + updated: '2024-08-19T21:41:28Z' language: C# archived: false - stars: 1369 + stars: 1370 watchers: 64 forks: 231 owner: microsoft logo: https://avatars.githubusercontent.com/u/6154722?v=4 license: MIT - repoEtag: '"10848543a5803322c11a4fe0a9dfaed32b0220ad5241684bc84bab435fd0c65a"' - repoLastModified: Thu, 15 Aug 2024 20:19:47 GMT + repoEtag: '"409ddf1ca203fcc1325dfafccba5a3a95b9e213dafce48a2dbb6f004379f7d00"' + repoLastModified: Mon, 19 Aug 2024 21:41:28 GMT foundInMaster: true id: 1066748bb5b1f114a70856a29fee4aa7 - source: @@ -3491,17 +3491,17 @@ repositoryId: 26726495 description: Swagger 2.0 implementation for go created: '2014-11-16T20:13:15Z' - updated: '2024-08-18T14:14:23Z' + updated: '2024-08-19T11:51:28Z' language: Go archived: false - stars: 9427 + stars: 9428 watchers: 120 forks: 1245 owner: go-swagger logo: https://avatars.githubusercontent.com/u/10362650?v=4 license: Apache-2.0 - repoEtag: '"82e21a350082ec055919545649afddf139598d3bf1bc18c9ac8c55087e449716"' - repoLastModified: Sun, 18 Aug 2024 14:14:23 GMT + repoEtag: '"7c2485eaa2ff25e756bacb2266c7fa1fe240b45d70bdab46a67bd90c0a8083dc"' + repoLastModified: Mon, 19 Aug 2024 11:51:28 GMT foundInMaster: true id: ef136df9ffb40bb33ccbd76665d8f5b4 - source: https://openapi.tools/ @@ -3594,17 +3594,17 @@ repositoryId: 41822320 description: 'The Swagger/OpenAPI toolchain for .NET, ASP.NET Core and TypeScript. ' created: '2015-09-02T19:11:57Z' - updated: '2024-08-19T02:34:39Z' + updated: '2024-08-19T11:29:09Z' language: C# archived: false - stars: 6662 + stars: 6663 watchers: 163 forks: 1229 owner: RicoSuter logo: https://avatars.githubusercontent.com/u/2603405?v=4 license: MIT - repoEtag: '"c05a171ba7d075b6c43d33d55c7592fd9752c8680ebe7d6febd2be2ecd52dc4c"' - repoLastModified: Mon, 19 Aug 2024 02:34:39 GMT + repoEtag: '"255ede8328a9f8ab731e03db0a6ce55a6f0ade30210844475fded23bd3f38232"' + repoLastModified: Mon, 19 Aug 2024 11:29:09 GMT foundInMaster: true id: 93636e95435e95198d7d15c9d507f0d3 - source: https://openapi.tools/ @@ -3667,17 +3667,17 @@ documentation, API clients and server stubs in different languages by parsing your OpenAPI / Swagger definition. created: '2011-07-06T14:26:48Z' - updated: '2024-08-18T23:59:04Z' + updated: '2024-08-20T02:40:36Z' language: Mustache archived: false - stars: 16839 + stars: 16843 watchers: 413 forks: 6022 owner: swagger-api logo: https://avatars.githubusercontent.com/u/7658037?v=4 license: Apache-2.0 - repoEtag: '"75b41a83872b1a8577a60b4eada59e44634644b707b5448013de9c6702f1e7b9"' - repoLastModified: Sun, 18 Aug 2024 23:59:04 GMT + repoEtag: '"ce79bcbee1c2050ab6c8cdca570a6c8b5721b0732d59af1b29dc200d6bd8855c"' + repoLastModified: Tue, 20 Aug 2024 02:40:36 GMT foundInMaster: true id: eda1e66e1b7805496e42f57851791a32 - source: https://openapi.tools/ @@ -3701,17 +3701,17 @@ OpenAPI (f.k.a Swagger) Specification code generator. Supports C#, PowerShell, Go, Java, Node.js, TypeScript, Python created: '2015-02-20T23:02:54Z' - updated: '2024-08-16T19:04:06Z' + updated: '2024-08-19T08:31:22Z' language: TypeScript archived: false - stars: 4568 + stars: 4569 watchers: 874 forks: 729 owner: Azure logo: https://avatars.githubusercontent.com/u/6844498?v=4 license: MIT - repoEtag: '"f7b4e86e902cb04ebfbb927e76484c5411cf1c78f8843af348e3c6128978a2a9"' - repoLastModified: Fri, 16 Aug 2024 19:04:06 GMT + repoEtag: '"ed21685251560d23b19339d86bd554172bb19a32020f240a48cc0c74737a9790"' + repoLastModified: Mon, 19 Aug 2024 08:31:22 GMT foundInMaster: true id: 648d92bca90bf58cd74407e0bcad2936 - source: https://openapi.tools/ @@ -4095,17 +4095,17 @@ Black-box fuzzer that fuzzes APIs based on OpenAPI specification. Find bugs for free! created: '2020-12-23T22:33:38Z' - updated: '2024-08-05T08:45:17Z' + updated: '2024-08-19T05:33:45Z' language: Rust archived: false - stars: 525 + stars: 526 watchers: 8 forks: 22 owner: matusf logo: https://avatars.githubusercontent.com/u/18228995?v=4 license: AGPL-3.0 - repoEtag: '"3fc8b3a1b27b1a3842e12a677fa516765f8342c4640da9e3dd07b9875847c233"' - repoLastModified: Mon, 05 Aug 2024 08:45:17 GMT + repoEtag: '"6b6495bcc26438390f29abd1ddd24175b410564dcfa3caad2e3c8790293c5987"' + repoLastModified: Mon, 19 Aug 2024 05:33:45 GMT id: 9e0191ba47403298459b30242dbfe9ad - source: https://openapi.tools/ name: cats @@ -4184,17 +4184,17 @@ Due to the OpenAPI v3.0 and JSON Schema discrepancy, you can use this JS library to convert OpenAPI Schema objects to proper JSON Schema. created: '2020-01-17T21:37:32Z' - updated: '2024-08-15T20:14:23Z' + updated: '2024-08-19T07:38:15Z' language: TypeScript archived: false - stars: 237 + stars: 236 watchers: 6 forks: 19 owner: openapi-contrib logo: https://avatars.githubusercontent.com/u/49447320?v=4 license: MIT - repoEtag: '"314aadf5118bf137ca78548629c404cd6265ac325587672896099ca215638cbb"' - repoLastModified: Thu, 15 Aug 2024 20:14:23 GMT + repoEtag: '"b5eb1bbef04be5cd7fb9aaa41126966c9cfb4b58cb8cec51de783af4b9d07746"' + repoLastModified: Mon, 19 Aug 2024 07:38:15 GMT foundInMaster: true id: f6608d418f20d73a1e15b74206edd45a - source: https://openapi.tools/ @@ -4423,7 +4423,7 @@ owner: microsoft logo: https://avatars.githubusercontent.com/u/6154722?v=4 license: MIT - repoEtag: '"a2029d17d76884a410748b91f5a6639b6992d8591faf7c2622349293d4cea0f2"' + repoEtag: '"829c911af8305a5054735a1a28acfb1c8044ef96b7f595bd0c54b13c3302a956"' repoLastModified: Sun, 18 Aug 2024 19:44:45 GMT foundInMaster: true - source: https://openapi.tools/ @@ -4557,17 +4557,17 @@ repositoryId: 709571808 description: Browser extension that generates API specs for any app or website created: '2023-10-25T00:36:06Z' - updated: '2024-08-19T02:17:32Z' + updated: '2024-08-19T04:03:55Z' language: TypeScript archived: false - stars: 3872 + stars: 3873 watchers: 21 forks: 68 owner: AndrewWalsh logo: https://avatars.githubusercontent.com/u/15863952?v=4 license: MIT - repoEtag: '"14d6535984a758b9843fcd6ffb57b4fadda9282ad2593aa0b77dac64ee5c9003"' - repoLastModified: Mon, 19 Aug 2024 02:17:32 GMT + repoEtag: '"f63b9d13a2fbad374931e29f2813180a07f65a4a491ce3ce105f3e67f7fb9497"' + repoLastModified: Mon, 19 Aug 2024 04:03:55 GMT category: - Auto Generators - Documentation @@ -4594,17 +4594,17 @@ repositoryId: 381857226 description: null created: '2021-06-30T23:29:49Z' - updated: '2024-08-19T00:41:19Z' + updated: '2024-08-20T02:14:01Z' language: TypeScript archived: false - stars: 4054 + stars: 4057 watchers: 32 forks: 188 owner: microsoft logo: https://avatars.githubusercontent.com/u/6154722?v=4 license: MIT - repoEtag: '"f3439e91a87c0e3eb65c337510cf4e8e00783001e76312be4ca2f8ef5e14963b"' - repoLastModified: Mon, 19 Aug 2024 00:41:19 GMT + repoEtag: '"fe9bea15da7e7b385753ad16e49ac2d6ee74e496bff107bd36f0e1945ddff259"' + repoLastModified: Tue, 20 Aug 2024 02:14:01 GMT category: - Auto Generators - Server Implementations @@ -4681,17 +4681,17 @@ Restish is a CLI for interacting with REST-ish HTTP APIs with some nice features built-in created: '2020-05-15T06:45:59Z' - updated: '2024-08-18T17:27:07Z' + updated: '2024-08-20T00:18:49Z' language: Go archived: false - stars: 731 + stars: 733 watchers: 7 forks: 69 owner: danielgtaylor logo: https://avatars.githubusercontent.com/u/106826?v=4 license: MIT - repoEtag: '"149f1b0db969890721691eef9d77e9864abf6d5ad4d10609c1bc612c654fbc09"' - repoLastModified: Sun, 18 Aug 2024 17:27:07 GMT + repoEtag: '"8bbc926f89317f6673087ab3d1fcb5cdec592561785608b03bd2aeb9f5dca7d0"' + repoLastModified: Tue, 20 Aug 2024 00:18:49 GMT foundInMaster: true id: 22a8c610015b1b9d89af39221beabe66 v3_1: true @@ -4725,7 +4725,7 @@ owner: codekie logo: https://avatars.githubusercontent.com/u/1512840?v=4 license: MIT - repoEtag: '"5b8023a2061fa8cad8f6824cd3719f54f7057845cf12a1958f04b1a8a75ca978"' + repoEtag: '"a500b4c05c56247340d353f850e4cb983d5147d36b21aad121d2c026e2d652d9"' repoLastModified: Thu, 01 Aug 2024 11:37:23 GMT foundInMaster: true id: 301e3f380f248daf345a88c8971d2a71 @@ -4751,17 +4751,17 @@ Plugin for converting OpenAPI 3.0 specs to the Postman Collection (v2) format created: '2018-12-12T10:13:46Z' - updated: '2024-08-16T18:46:53Z' + updated: '2024-08-19T07:23:26Z' language: JavaScript archived: false - stars: 902 + stars: 903 watchers: 22 forks: 194 owner: postmanlabs logo: https://avatars.githubusercontent.com/u/10251060?v=4 license: Apache-2.0 - repoEtag: '"70e63877a11694c158d1f017dadfcef748231c2801c1d29a54457671db385aa2"' - repoLastModified: Fri, 16 Aug 2024 18:46:53 GMT + repoEtag: '"238db047709883541f8a12be4fa68d549b65be9bee57ae9de699132d79d645a0"' + repoLastModified: Mon, 19 Aug 2024 07:23:26 GMT foundInMaster: true id: 31b717a2084e3d92f6cda2c33484c789 v3_link: true @@ -4789,17 +4789,17 @@ repositoryId: 345077537 description: Format an OpenAPI document by ordering, formatting and filtering fields. created: '2021-03-06T11:31:52Z' - updated: '2024-08-17T09:41:03Z' + updated: '2024-08-19T16:18:06Z' language: JavaScript archived: false - stars: 88 + stars: 89 watchers: 4 forks: 15 owner: thim81 logo: https://avatars.githubusercontent.com/u/952446?v=4 license: MIT - repoEtag: '"8aed6e6a636d3574a835c421e7431aec94bc243d4321a14ea9c9f527daf1e386"' - repoLastModified: Sat, 17 Aug 2024 09:41:03 GMT + repoEtag: '"a1694ee134da7ebedb6e3951cd811e6767a2894a50ffc3583f08f1137dbaf80c"' + repoLastModified: Mon, 19 Aug 2024 16:18:06 GMT foundInMaster: true id: 788dd625de099d0d3403fe30067f3743 v3_1: true @@ -4834,7 +4834,7 @@ owner: github logo: https://avatars.githubusercontent.com/u/9919?v=4 license: MIT - repoEtag: '"df1fb392d72bf6afbd67c0b67c1ae37472d428aee46b06884792aed3a14486ef"' + repoEtag: '"a7701ce844c9a956ba1cbc2f8aa5d9b36f182cbdb682ad090b7de9373596f2c7"' repoLastModified: Wed, 31 Jul 2024 03:12:30 GMT foundInMaster: true id: ec6a7a1e4a69a9beeb95bdebb88cb36d @@ -4928,17 +4928,17 @@ repositoryId: 36817565 description: The ZAP core project created: '2015-06-03T16:55:01Z' - updated: '2024-08-18T17:11:20Z' + updated: '2024-08-19T23:18:50Z' language: Java archived: false - stars: 12407 + stars: 12411 watchers: 395 - forks: 2218 + forks: 2219 owner: zaproxy logo: https://avatars.githubusercontent.com/u/6716868?v=4 license: Apache-2.0 - repoEtag: '"08599e1611262116313907ed0a978e3af325e171f1c36ae9a3aee0d95c637817"' - repoLastModified: Sun, 18 Aug 2024 17:11:20 GMT + repoEtag: '"52cd6f6b0f1c5229b0845d8844b9a384d70db1b97e914dc76b2ddf9a95167a27"' + repoLastModified: Mon, 19 Aug 2024 23:18:50 GMT foundInMaster: true id: 9eedc1be44837a65f912bcf562844f39 - source: @@ -5272,17 +5272,17 @@ repositoryId: 1431547 description: Web APIs for Django. 🎸 created: '2011-03-02T17:13:56Z' - updated: '2024-08-19T02:17:07Z' + updated: '2024-08-20T02:42:01Z' language: Python archived: false - stars: 28019 - watchers: 622 + stars: 28026 + watchers: 623 forks: 6794 owner: encode logo: https://avatars.githubusercontent.com/u/19159390?v=4 license: NOASSERTION - repoEtag: '"ad7623517cebf794bba40f63ef369a25768c3f96e5d530b95b9b418eaf15961b"' - repoLastModified: Mon, 19 Aug 2024 02:17:07 GMT + repoEtag: '"a458bdfd85840993735c1958494b7a08a25a68f4e108ac678e7cb5744b060f61"' + repoLastModified: Tue, 20 Aug 2024 02:42:01 GMT foundInMaster: true id: fb8994c078a380cc3510b024f6ed1202 category: Server Implementations @@ -5307,17 +5307,17 @@ repositoryId: 120752811 description: 'RESTest: Automated Black-Box Testing of RESTful Web APIs' created: '2018-02-08T11:27:45Z' - updated: '2024-06-10T15:07:57Z' + updated: '2024-08-19T14:34:01Z' language: Java archived: false - stars: 204 + stars: 205 watchers: 16 forks: 34 owner: isa-group logo: https://avatars.githubusercontent.com/u/2708867?v=4 license: LGPL-3.0 - repoEtag: '"54d1551b44b72f5231045a6d4cf6bf8a6c8d220653aff8914326e853c3e14801"' - repoLastModified: Mon, 10 Jun 2024 15:07:57 GMT + repoEtag: '"05b397f204456fe71cb999893a0ab8bf04a631d6acd6aa5faa8ca9e45e3d874d"' + repoLastModified: Mon, 19 Aug 2024 14:34:01 GMT foundInMaster: true id: 9115f26fa9e7b17b844a0f10b9814db7 - source: https://openapi.tools/ @@ -5507,17 +5507,17 @@ Build beautiful, interactive API Docs with embeddable React or Web Components, powered by OpenAPI and Markdown. created: '2019-05-03T01:05:01Z' - updated: '2024-08-19T02:37:51Z' + updated: '2024-08-19T21:02:48Z' language: TypeScript archived: false - stars: 1680 + stars: 1681 watchers: 18 forks: 195 owner: stoplightio logo: https://avatars.githubusercontent.com/u/10767217?v=4 license: Apache-2.0 - repoEtag: '"4d200af9ff9dc4cae5d6f767727517f9c8e3e76e4f4a48513aced2eaa4382e3d"' - repoLastModified: Mon, 19 Aug 2024 02:37:51 GMT + repoEtag: '"7d5da3694a2b51d7b49b7e5ac8309ee9bd29c832b98da5ea0b38a4b08dc13a65"' + repoLastModified: Mon, 19 Aug 2024 21:02:48 GMT foundInMaster: true id: 2f94cc1fc980953b17a9979d4ff2e7ec - source: @@ -5982,17 +5982,17 @@ you can think. vacuum is compatible with Spectral rulesets and generates compatible reports. created: '2021-10-10T18:24:19Z' - updated: '2024-08-18T09:01:36Z' + updated: '2024-08-19T17:07:43Z' language: Go archived: false - stars: 535 + stars: 538 watchers: 8 forks: 42 owner: daveshanley logo: https://avatars.githubusercontent.com/u/187345?v=4 license: MIT - repoEtag: '"8fe4ffeb545b7af96d6ed7df558a27e2ba77168fcc785511461de7d36990ad10"' - repoLastModified: Sun, 18 Aug 2024 09:01:36 GMT + repoEtag: '"cceabfd7218eb8a7027b72c49dd31dd6efc604df3e37c97ac0fa3427e5eff179"' + repoLastModified: Mon, 19 Aug 2024 17:07:43 GMT foundInMaster: true category: - Description Validators @@ -6077,17 +6077,17 @@ libopenapi is a fully featured, high performance OpenAPI 3.1, 3.0 and Swagger parser, library, validator and toolkit for golang applications. created: '2022-07-17T19:41:10Z' - updated: '2024-08-16T08:52:10Z' + updated: '2024-08-19T13:50:25Z' language: Go archived: false - stars: 409 + stars: 410 watchers: 7 forks: 53 owner: pb33f logo: https://avatars.githubusercontent.com/u/104016643?v=4 license: NOASSERTION - repoEtag: '"393713c6e234ddb3790fad6a050d48cdbfc1f239b4c28f1d8a179bb7f6f2b780"' - repoLastModified: Fri, 16 Aug 2024 08:52:10 GMT + repoEtag: '"ec5f2a0a52297e57030bb42332b90b8ee97a0b9336561bc6549a040d0224915e"' + repoLastModified: Mon, 19 Aug 2024 13:50:25 GMT category: Parsers foundInMaster: true name: libopenapi @@ -6391,7 +6391,7 @@ owner: znsio logo: https://avatars.githubusercontent.com/u/75619722?v=4 license: MIT - repoEtag: '"29cd7a39c5d8ec4f5c1f816429ee5093abc760cc0543c2363cbcae0c52b20e62"' + repoEtag: '"9f2e54e9f802443dc87848a46fdfbda018b0370e94a4914468ccf50bb265af3d"' repoLastModified: Sun, 18 Aug 2024 20:40:42 GMT foundInMaster: true - source: @@ -6411,17 +6411,17 @@ changed between two OpenAPI specs, or a single spec over time. Supports OpenAPI 3.1, 3.0 and Swagger created: '2022-11-28T16:53:14Z' - updated: '2024-08-10T23:17:53Z' + updated: '2024-08-19T15:21:43Z' language: Go archived: false - stars: 166 + stars: 167 watchers: 1 forks: 15 owner: pb33f logo: https://avatars.githubusercontent.com/u/104016643?v=4 license: NOASSERTION - repoEtag: '"975f592fe8963d3da7a7d792f5f0945312eaff45e71e5560a28827913d4db6b0"' - repoLastModified: Sat, 10 Aug 2024 23:17:53 GMT + repoEtag: '"b12ce3e633713f6de7260c2ff39a4a34d4c694ba480a07af77da428068e57b45"' + repoLastModified: Mon, 19 Aug 2024 15:21:43 GMT category: - Data Validators - Testing @@ -6675,7 +6675,7 @@ owner: udamir logo: https://avatars.githubusercontent.com/u/29271460?v=4 license: MIT - repoEtag: '"074616cd93dbee2daaf0408bbeccc2e7a66919863af576d601d9f49c04627042"' + repoEtag: '"dcdfe83912e3937d0f0aa6821ad7ee77596edde5bd748190077f7e8c70af9bef"' repoLastModified: Sun, 18 Aug 2024 17:16:21 GMT foundInMaster: true - source: https://openapi.tools/ @@ -6706,7 +6706,7 @@ owner: udamir logo: https://avatars.githubusercontent.com/u/29271460?v=4 license: MIT - repoEtag: '"788139a4d030dee75d8bf1434f4d4aaea4ba4c904e2969174f7332dcec4ee0fd"' + repoEtag: '"6edcbc3d83a0aa60c77102216823da64a8c062dd7a0823e73c9843472ffd7349"' repoLastModified: Sat, 06 Jul 2024 06:42:54 GMT foundInMaster: true - source: https://openapi.tools/ @@ -6786,17 +6786,17 @@ repositoryId: 476820102 description: Input OpenAPI. Output SDKs and Docs. created: '2022-04-01T17:56:54Z' - updated: '2024-08-19T02:53:38Z' + updated: '2024-08-20T03:13:13Z' language: TypeScript archived: false - stars: 2532 + stars: 2534 watchers: 18 - forks: 129 + forks: 128 owner: fern-api logo: https://avatars.githubusercontent.com/u/102944815?v=4 license: MIT - repoEtag: '"a31e314c2b3405eec639f1af93718aa24fc8e8aaf8ab050439de1def8a9104a7"' - repoLastModified: Mon, 19 Aug 2024 02:53:38 GMT + repoEtag: '"77d10a822e285174d79c47735cce8b0c69a4d003f090597e03ade612bb2b83af"' + repoLastModified: Tue, 20 Aug 2024 03:13:13 GMT foundInMaster: true sponsored: true testimonial: > @@ -6900,17 +6900,17 @@ repositoryId: 630566794 description: Generate Swift client and server code from an OpenAPI document. created: '2023-04-20T16:50:53Z' - updated: '2024-08-19T00:48:12Z' + updated: '2024-08-20T00:04:22Z' language: Swift archived: false - stars: 1333 + stars: 1334 watchers: 106 forks: 98 owner: apple logo: https://avatars.githubusercontent.com/u/10639145?v=4 license: Apache-2.0 - repoEtag: '"f8970822261f07f56f57d0abeff605d8a2e01e4a6a6705a76bd01dcf03bcdf41"' - repoLastModified: Mon, 19 Aug 2024 00:48:12 GMT + repoEtag: '"d755e2733e52c99bc43609b97a3b886444b3722d78d19a414bb54cd65e6c3b95"' + repoLastModified: Tue, 20 Aug 2024 00:04:22 GMT foundInMaster: true - source: - https://openapi.tools/ @@ -7138,17 +7138,17 @@ repositoryId: 706256859 description: Golang Fuego - web framework generating OpenAPI 3 spec from source code created: '2023-10-17T15:36:43Z' - updated: '2024-08-17T21:47:31Z' + updated: '2024-08-20T00:57:14Z' language: Go archived: false - stars: 716 + stars: 733 watchers: 6 forks: 32 owner: go-fuego logo: https://avatars.githubusercontent.com/u/148255240?v=4 license: MIT - repoEtag: '"f78dfc0ea3a2b3df45cf799f38469a8eb6792ce3eb6aed25620f94ee0b14b809"' - repoLastModified: Sat, 17 Aug 2024 21:47:31 GMT + repoEtag: '"e2aac04e74b216b2399e2d62399223a687048f3cf1791b2f6467cdece8a9bcba"' + repoLastModified: Tue, 20 Aug 2024 00:57:14 GMT foundInMaster: true - source: - https://openapi.tools/ @@ -7158,23 +7158,23 @@ v3: true repositoryMetadata: base64Readme: >- - PGEgaHJlZj0iIyI+Cgk8cGljdHVyZT4KCQk8c291cmNlIG1lZGlhPSIocHJlZmVycy1jb2xvci1zY2hlbWU6IGRhcmspIiBzcmNzZXQ9Imh0dHBzOi8vaHVtYS5yb2Nrcy9odW1hLWRhcmsucG5nIiAvPgoJCTxzb3VyY2UgbWVkaWE9IihwcmVmZXJzLWNvbG9yLXNjaGVtZTogbGlnaHQpIiBzcmNzZXQ9Imh0dHBzOi8vaHVtYS5yb2Nrcy9odW1hLnBuZyIgLz4KCQk8aW1nIGFsdD0iSHVtYSBMb2dvIiBzcmM9Imh0dHBzOi8vaHVtYS5yb2Nrcy9odW1hLnBuZyIgLz4KCTwvcGljdHVyZT4KPC9hPgoKWyFbSFVNQSBQb3dlcmVkXShodHRwczovL2ltZy5zaGllbGRzLmlvL2JhZGdlL1Bvd2VyZWQlMjBCeS1IVU1BLWY0MDI3MyldKGh0dHBzOi8vaHVtYS5yb2Nrcy8pIFshW0NJXShodHRwczovL2dpdGh1Yi5jb20vZGFuaWVsZ3RheWxvci9odW1hL3dvcmtmbG93cy9DSS9iYWRnZS5zdmc/YnJhbmNoPW1haW4pXShodHRwczovL2dpdGh1Yi5jb20vZGFuaWVsZ3RheWxvci9odW1hL2FjdGlvbnM/cXVlcnk9d29ya2Zsb3clM0FDSSticmFuY2glM0FtYWluKyspIFshW2NvZGVjb3ZdKGh0dHBzOi8vY29kZWNvdi5pby9naC9kYW5pZWxndGF5bG9yL2h1bWEvYnJhbmNoL21haW4vZ3JhcGgvYmFkZ2Uuc3ZnKV0oaHR0cHM6Ly9jb2RlY292LmlvL2doL2RhbmllbGd0YXlsb3IvaHVtYSkgWyFbRG9jc10oaHR0cHM6Ly9nb2RvYy5vcmcvZ2l0aHViLmNvbS9kYW5pZWxndGF5bG9yL2h1bWEvdjI/c3RhdHVzLnN2ZyldKGh0dHBzOi8vcGtnLmdvLmRldi9naXRodWIuY29tL2RhbmllbGd0YXlsb3IvaHVtYS92Mj90YWI9ZG9jKSBbIVtHbyBSZXBvcnQgQ2FyZF0oaHR0cHM6Ly9nb3JlcG9ydGNhcmQuY29tL2JhZGdlL2dpdGh1Yi5jb20vZGFuaWVsZ3RheWxvci9odW1hL3YyKV0oaHR0cHM6Ly9nb3JlcG9ydGNhcmQuY29tL3JlcG9ydC9naXRodWIuY29tL2RhbmllbGd0YXlsb3IvaHVtYS92MikKClsqKvCfjI7kuK3mlofmlofmoaMqKl0oLi9SRUFETUVfQ04ubWQpCgotIFtXaGF0IGlzIGh1bWE/XSgjaW50cm8pCi0gW0luc3RhbGxdKCNpbnN0YWxsKQotIFtFeGFtcGxlXSgjZXhhbXBsZSkKLSBbRG9jdW1lbnRhdGlvbl0oI2RvY3VtZW50YXRpb24pCgo8YSBuYW1lPSJpbnRybyI+PC9hPgpBIG1vZGVybiwgc2ltcGxlLCBmYXN0ICYgZmxleGlibGUgbWljcm8gZnJhbWV3b3JrIGZvciBidWlsZGluZyBIVFRQIFJFU1QvUlBDIEFQSXMgaW4gR28gYmFja2VkIGJ5IE9wZW5BUEkgMyBhbmQgSlNPTiBTY2hlbWEuIFByb25vdW5jZWQgSVBBOiBbLydoanXLkG3JkS9dKGh0dHBzOi8vZW4ud2lrdGlvbmFyeS5vcmcvd2lraS9XaWt0aW9uYXJ5OkludGVybmF0aW9uYWxfUGhvbmV0aWNfQWxwaGFiZXQpLiBUaGUgZ29hbHMgb2YgdGhpcyBwcm9qZWN0IGFyZSB0byBwcm92aWRlOgoKLSBJbmNyZW1lbnRhbCBhZG9wdGlvbiBmb3IgdGVhbXMgd2l0aCBleGlzdGluZyBzZXJ2aWNlcwogIC0gQnJpbmcgeW91ciBvd24gcm91dGVyIChpbmNsdWRpbmcgR28gMS4yMispLCBtaWRkbGV3YXJlLCBhbmQgbG9nZ2luZy9tZXRyaWNzCiAgLSBFeHRlbnNpYmxlIE9wZW5BUEkgJiBKU09OIFNjaGVtYSBsYXllciB0byBkb2N1bWVudCBleGlzdGluZyByb3V0ZXMKLSBBIG1vZGVybiBSRVNUIG9yIEhUVFAgUlBDIEFQSSBiYWNrZW5kIGZyYW1ld29yayBmb3IgR28gZGV2ZWxvcGVycwogIC0gRGVzY3JpYmVkIGJ5IFtPcGVuQVBJIDMuMV0oaHR0cHM6Ly9naXRodWIuY29tL09BSS9PcGVuQVBJLVNwZWNpZmljYXRpb24vYmxvYi9tYXN0ZXIvdmVyc2lvbnMvMy4xLjAubWQpICYgW0pTT04gU2NoZW1hXShodHRwczovL2pzb24tc2NoZW1hLm9yZy8pCi0gR3VhcmQgcmFpbHMgdG8gcHJldmVudCBjb21tb24gbWlzdGFrZXMKLSBEb2N1bWVudGF0aW9uIHRoYXQgY2FuJ3QgZ2V0IG91dCBvZiBkYXRlCi0gSGlnaC1xdWFsaXR5IGdlbmVyYXRlZCBkZXZlbG9wZXIgdG9vbGluZwoKRmVhdHVyZXMgaW5jbHVkZToKCi0gRGVjbGFyYXRpdmUgaW50ZXJmYWNlIG9uIHRvcCBvZiB5b3VyIHJvdXRlciBvZiBjaG9pY2U6CiAgLSBPcGVyYXRpb24gJiBtb2RlbCBkb2N1bWVudGF0aW9uCiAgLSBSZXF1ZXN0IHBhcmFtcyAocGF0aCwgcXVlcnksIGhlYWRlciwgb3IgY29va2llKQogIC0gUmVxdWVzdCBib2R5CiAgLSBSZXNwb25zZXMgKGluY2x1ZGluZyBlcnJvcnMpCiAgLSBSZXNwb25zZSBoZWFkZXJzCi0gSlNPTiBFcnJvcnMgdXNpbmcgW1JGQzk0NTddKGh0dHBzOi8vZGF0YXRyYWNrZXIuaWV0Zi5vcmcvZG9jL2h0bWwvcmZjOTQ1NykgYW5kIGBhcHBsaWNhdGlvbi9wcm9ibGVtK2pzb25gIGJ5IGRlZmF1bHQgKGJ1dCBjYW4gYmUgY2hhbmdlZCkKLSBQZXItb3BlcmF0aW9uIHJlcXVlc3Qgc2l6ZSBsaW1pdHMgd2l0aCBzYW5lIGRlZmF1bHRzCi0gW0NvbnRlbnQgbmVnb3RpYXRpb25dKGh0dHBzOi8vZGV2ZWxvcGVyLm1vemlsbGEub3JnL2VuLVVTL2RvY3MvV2ViL0hUVFAvQ29udGVudF9uZWdvdGlhdGlvbikgYmV0d2VlbiBzZXJ2ZXIgYW5kIGNsaWVudAogIC0gU3VwcG9ydCBmb3IgSlNPTiAoW1JGQyA4MjU5XShodHRwczovL3Rvb2xzLmlldGYub3JnL2h0bWwvcmZjODI1OSkpIGFuZCBvcHRpb25hbGx5IENCT1IgKFtSRkMgNzA0OV0oaHR0cHM6Ly90b29scy5pZXRmLm9yZy9odG1sL3JmYzcwNDkpKSBjb250ZW50IHR5cGVzIHZpYSB0aGUgYEFjY2VwdGAgaGVhZGVyIHdpdGggdGhlIGRlZmF1bHQgY29uZmlnLgotIENvbmRpdGlvbmFsIHJlcXVlc3RzIHN1cHBvcnQsIGUuZy4gYElmLU1hdGNoYCBvciBgSWYtVW5tb2RpZmllZC1TaW5jZWAgaGVhZGVyIHV0aWxpdGllcy4KLSBPcHRpb25hbCBhdXRvbWF0aWMgZ2VuZXJhdGlvbiBvZiBgUEFUQ0hgIG9wZXJhdGlvbnMgdGhhdCBzdXBwb3J0OgogIC0gW1JGQyA3Mzg2XShodHRwczovL3d3dy5yZmMtZWRpdG9yLm9yZy9yZmMvcmZjNzM4NikgSlNPTiBNZXJnZSBQYXRjaAogIC0gW1JGQyA2OTAyXShodHRwczovL3d3dy5yZmMtZWRpdG9yLm9yZy9yZmMvcmZjNjkwMikgSlNPTiBQYXRjaAogIC0gW1Nob3J0aGFuZF0oaHR0cHM6Ly9naXRodWIuY29tL2RhbmllbGd0YXlsb3Ivc2hvcnRoYW5kKSBwYXRjaGVzCi0gQW5ub3RhdGVkIEdvIHR5cGVzIGZvciBpbnB1dCBhbmQgb3V0cHV0IG1vZGVscwogIC0gR2VuZXJhdGVzIEpTT04gU2NoZW1hIGZyb20gR28gdHlwZXMKICAtIFN0YXRpYyB0eXBpbmcgZm9yIHBhdGgvcXVlcnkvaGVhZGVyIHBhcmFtcywgYm9kaWVzLCByZXNwb25zZSBoZWFkZXJzLCBldGMuCiAgLSBBdXRvbWF0aWMgaW5wdXQgbW9kZWwgdmFsaWRhdGlvbiAmIGVycm9yIGhhbmRsaW5nCi0gRG9jdW1lbnRhdGlvbiBnZW5lcmF0aW9uIHVzaW5nIFtTdG9wbGlnaHQgRWxlbWVudHNdKGh0dHBzOi8vc3RvcGxpZ2h0LmlvL29wZW4tc291cmNlL2VsZW1lbnRzKQotIE9wdGlvbmFsIENMSSBidWlsdC1pbiwgY29uZmlndXJlZCB2aWEgYXJndW1lbnRzIG9yIGVudmlyb25tZW50IHZhcmlhYmxlcwogIC0gU2V0IHZpYSBlLmcuIGAtcCA4MDAwYCwgYC0tcG9ydD04MDAwYCwgb3IgYFNFUlZJQ0VfUE9SVD04MDAwYAogIC0gU3RhcnR1cCBhY3Rpb25zICYgZ3JhY2VmdWwgc2h1dGRvd24gYnVpbHQtaW4KLSBHZW5lcmF0ZXMgT3BlbkFQSSBmb3IgYWNjZXNzIHRvIGEgcmljaCBlY29zeXN0ZW0gb2YgdG9vbHMKICAtIE1vY2tzIHdpdGggW0FQSSBTcHJvdXRdKGh0dHBzOi8vZ2l0aHViLmNvbS9kYW5pZWxndGF5bG9yL2FwaXNwcm91dCkgb3IgW1ByaXNtXShodHRwczovL3N0b3BsaWdodC5pby9vcGVuLXNvdXJjZS9wcmlzbSkKICAtIFNES3Mgd2l0aCBbT3BlbkFQSSBHZW5lcmF0b3JdKGh0dHBzOi8vZ2l0aHViLmNvbS9PcGVuQVBJVG9vbHMvb3BlbmFwaS1nZW5lcmF0b3IpIG9yIFtvYXBpLWNvZGVnZW5dKGh0dHBzOi8vZ2l0aHViLmNvbS9kZWVwbWFwL29hcGktY29kZWdlbikKICAtIENMSSB3aXRoIFtSZXN0aXNoXShodHRwczovL3Jlc3Quc2gvKQogIC0gQW5kIFtwbGVudHldKGh0dHBzOi8vb3BlbmFwaS50b29scy8pIFttb3JlXShodHRwczovL2FwaXMuZ3VydS9hd2Vzb21lLW9wZW5hcGkzL2NhdGVnb3J5Lmh0bWwpCi0gR2VuZXJhdGVzIEpTT04gU2NoZW1hIGZvciBlYWNoIHJlc291cmNlIHVzaW5nIG9wdGlvbmFsIGBkZXNjcmliZWRieWAgbGluayByZWxhdGlvbiBoZWFkZXJzIGFzIHdlbGwgYXMgb3B0aW9uYWwgYCRzY2hlbWFgIHByb3BlcnRpZXMgaW4gcmV0dXJuZWQgb2JqZWN0cyB0aGF0IGludGVncmF0ZSBpbnRvIGVkaXRvcnMgZm9yIHZhbGlkYXRpb24gJiBjb21wbGV0aW9uLgoKVGhpcyBwcm9qZWN0IHdhcyBpbnNwaXJlZCBieSBbRmFzdEFQSV0oaHR0cHM6Ly9mYXN0YXBpLnRpYW5nb2xvLmNvbS8pLiBMb2dvICYgYnJhbmRpbmcgZGVzaWduZWQgYnkgS2FyaSBUYXlsb3IuCgojIyBTcG9uc29ycwoKQSBiaWcgdGhhbmsgeW91IHRvIG91ciBjdXJyZW50ICYgZm9ybWVyIHNwb25zb3JzIQoKPGRpdj4KCQkJCQk8aW1nIHdpZHRoPSIxMDAwIiBoZWlnaHQ9IjAiIC8+CgkJCQkJPGEgaHJlZj0iaHR0cHM6Ly96dXBsby5saW5rL2h1bWEtZ2ggIj4KCQkJCQk8cGljdHVyZT4KCQkJCQkJCTwhLS0gPHNvdXJjZSBtZWRpYT0iKHByZWZlcnMtY29sb3Itc2NoZW1lOiBkYXJrKSIgc3Jjc2V0PSJkb2NzL3p1cGxvLWRhcmsucG5nIj4gLS0+CgkJCQkJCQk8aW1nIHNyYz0iaHR0cHM6Ly9naXRodWIuY29tL3VzZXItYXR0YWNobWVudHMvYXNzZXRzL2FhY2U1YWE3LTMyYmQtNDVjZi1hOGY4LTJlMzUyZmVhZjAxNyIgYWx0PSJadXBsbyIgd2lkdGg9IjI2MCIgYWxpZ249InJpZ2h0Ij4KCQkJCQk8L3BpY3R1cmU+CgkJCQkJPC9hPgoJCQkJCTxoMz5adXBsbzogU2NhbGUsIFByb3RlY3QsIGFuZCBQcm9kdWN0aXplIHlvdXIgSHVtYSBBUEk8L2gzPgoJCQkJCTxwPgoJCQkJCQkJT3VyIEFQSSBHYXRld2F5IGFsbG93cyB5b3UgdG8gc2VjdXJlIHlvdXIgQVBJLCBzY2FsZSBpdCBnbG9iYWxseSwgZ2VuZXJhdGUgZG9jdW1lbnRhdGlvbiBmcm9tIHlvdXIgT3BlbkFQSSwgYW5kIG1vbmV0aXplIHlvdXIgdXNlcnMuCgkJCQkJPC9wPgoJCQkJCTxhIGhyZWY9Imh0dHBzOi8venVwbG8ubGluay9odW1hLWdoICI+U3RhcnQgZm9yIEZyZWU8L2E+CjwvZGl2Pgo8aHIvPgoKLSBbQGJjbGVtZW50c10oaHR0cHM6Ly9naXRodWIuY29tL2JjbGVtZW50cykKLSBbQGJla2FiYXpdKGh0dHBzOi8vZ2l0aHViLmNvbS9iZWthYmF6KQotIFtAdmljdG9yYXVndXN0b2xsc10oaHR0cHM6Ly9naXRodWIuY29tL3ZpY3RvcmF1Z3VzdG9sbHMpCi0gW0BwaG9lbml4dGVjaG5vbG9naWVzLWlvXShodHRwczovL2dpdGh1Yi5jb20vcGhvZW5peHRlY2hub2xvZ2llcy1pbykKLSBbQGNoZW5qcjA3MTldKGh0dHBzOi8vZ2l0aHViLmNvbS9jaGVuanIwNzE5KQoKIyMgVGVzdGltb25pYWxzCgo+IFRoaXMgaXMgYnkgZmFyIG15IGZhdm9yaXRlIHdlYiBmcmFtZXdvcmsgZm9yIEdvLiBJdCBpcyBpbnNwaXJlZCBieSBGYXN0QVBJLCB3aGljaCBpcyBhbHNvIGFtYXppbmcsIGFuZCBjb25mb3JtcyB0byBtYW55IFJGQ3MgZm9yIGNvbW1vbiB3ZWIgdGhpbmdzIC4uLiBJIHJlYWxseSBsaWtlIHRoZSBmZWF0dXJlIHNldCwgdGhlIGZhY3QgdGhhdCBpdCBbY2FuIHVzZV0gQ2hpLCBhbmQgdGhlIGZhY3QgdGhhdCBpdCBpcyBzdGlsbCBzb21laG93IHJlbGF0aXZlbHkgc2ltcGxlIHRvIHVzZS4gSSd2ZSB0cmllZCBvdGhlciBmcmFtZXdvcmtzIGFuZCB0aGV5IGRvIG5vdCBzcGFyayBqb3kgZm9yIG1lLiAtIFtKZWJfSmVua3ldKGh0dHBzOi8vd3d3LnJlZGRpdC5jb20vci9nb2xhbmcvY29tbWVudHMvemhpdGNnL2NvbW1lbnQvaXptZzZ2ay8/dXRtX3NvdXJjZT1yZWRkaXQmdXRtX21lZGl1bT13ZWIyeCZjb250ZXh0PTMpCgo+IEFmdGVyIHdvcmtpbmcgd2l0aCAjR29sYW5nIGZvciBvdmVyIGEgeWVhciwgSSBzdHVtYmxlZCB1cG9uIEh1bWEsIHRoZSAjRmFzdEFQSS1pbnNwaXJlZCB3ZWIgZnJhbWV3b3JrLiBJdOKAmXMgdGhlIENocmlzdG1hcyBtaXJhY2xlIEnigJl2ZSBiZWVuIGhvcGluZyBmb3IhIFRoaXMgZnJhbWV3b3JrIGhhcyBldmVyeXRoaW5nISAtIFtIYW5hIE1vaGFuXShodHRwczovL3R3aXR0ZXIuY29tL3VuYW1hc2hhbmEvc3RhdHVzLzE3MzMwODgwNjYwNTM1ODMxOTcpCgo+IEkgbG92ZSBIdW1hLiBUaGFuayB5b3UsIHNpbmNlcmVseSwgZm9yIHRoaXMgYXdlc29tZSBwYWNrYWdlLiBJ4oCZdmUgYmVlbiB1c2luZyBpdCBmb3Igc29tZSB0aW1lIG5vdyBhbmQgaXTigJlzIGJlZW4gZ3JlYXQhIC0gW3Bsc2NvdHRdKGh0dHBzOi8vd3d3LnJlZGRpdC5jb20vci9nb2xhbmcvY29tbWVudHMvMWFvc2hleS9jb21tZW50L2txNmhjcGQvP3V0bV9zb3VyY2U9cmVkZGl0JnV0bV9tZWRpdW09d2ViMngmY29udGV4dD0zKQoKPiBUaGFuayB5b3UgRGFuaWVsIGZvciBIdW1hLiBTdXBlcmJseSB1c2VmdWwgcHJvamVjdCBhbmQgc2F2ZXMgdXMgYSBsb3Qgb2YgdGltZSBhbmQgaGFzc2xlIHRoYW5rcyB0byB0aGUgT3BlbkFQSSBnZW4g4oCUIHNpbWlsYXIgdG8gRmFzdEFQSSBpbiBQeXRob24uIC0gW1dvbHZlc09mQWxsU3RyZWV0c10oaHR0cHM6Ly93d3cucmVkZGl0LmNvbS9yL2dvbGFuZy9jb21tZW50cy8xYXFqOTlkL2NvbW1lbnQva3FmcWNtbC8/dXRtX3NvdXJjZT1yZWRkaXQmdXRtX21lZGl1bT13ZWIyeCZjb250ZXh0PTMpCgo+IEh1bWEgaXMgd29uZGVyZnVsLCBJJ3ZlIHN0YXJ0ZWQgd29ya2luZyB3aXRoIGl0IHJlY2VudGx5LCBhbmQgaXQncyBhIHBsZWFzdXJlLCBzbyB0aGFuayB5b3UgdmVyeSBtdWNoIGZvciB5b3VyIGVmZm9ydHMg8J+ZjyAtIFtjYWxsbWVtaWNhaF0oaHR0cHM6Ly93d3cucmVkZGl0LmNvbS9yL2dvbGFuZy9jb21tZW50cy8xYjMydHM0L2NvbW1lbnQva3N2cjloNy8/dXRtX3NvdXJjZT1yZWRkaXQmdXRtX21lZGl1bT13ZWIyeCZjb250ZXh0PTMpCgo+IEl0IHRvb2sgdXMgMyBtb250aHMgdG8gYnVpbGQgb3VyIHBsYXRmb3JtIGluIFB5dGhvbiB3aXRoIEZhc3RBUEksIFNRTCBBbGNoZW15IGFuZCBvbmx5IDMgd2Vla3MgdG8gcmV3cml0ZSBpdCBpbiBHbyB3aXRoIEh1bWEgYW5kIFNRTCBDLiBUaGluZ3MganVzdCB3b3JrIGFuZCBJIHNlbGRvbWx5IGhhdmUgdG8gZGVidWcgd2hlcmUgaW4gUHl0aG9uIEkgc3BlbnQgYSBtYWpvcml0eSBvZiBteSB0aW1lIGRlYnVnZ2luZy4gLSBbQml0Y2xpY2tcX10oaHR0cHM6Ly93d3cucmVkZGl0LmNvbS9yL2dvbGFuZy9jb21tZW50cy8xY2oyem5iL2NvbW1lbnQvbDJlNHU2eS8pCgojIEluc3RhbGwKCkluc3RhbGwgdmlhIGBnbyBnZXRgLiBOb3RlIHRoYXQgR28gMS4yMCBvciBuZXdlciBpcyByZXF1aXJlZC4KCmBgYHNoCiMgQWZ0ZXI6IGdvIG1vZCBpbml0IC4uLgpnbyBnZXQgLXUgZ2l0aHViLmNvbS9kYW5pZWxndGF5bG9yL2h1bWEvdjIKYGBgCgojIEV4YW1wbGUKCkhlcmUgaXMgYSBjb21wbGV0ZSBiYXNpYyBoZWxsbyB3b3JsZCBleGFtcGxlIGluIEh1bWEsIHRoYXQgc2hvd3MgaG93IHRvIGluaXRpYWxpemUgYSBIdW1hIGFwcCBjb21wbGV0ZSB3aXRoIENMSSwgZGVjbGFyZSBhIHJlc291cmNlIG9wZXJhdGlvbiwgYW5kIGRlZmluZSBpdHMgaGFuZGxlciBmdW5jdGlvbi4KCmBgYGdvCnBhY2thZ2UgbWFpbgoKaW1wb3J0ICgKCSJjb250ZXh0IgoJImZtdCIKCSJuZXQvaHR0cCIKCgkiZ2l0aHViLmNvbS9kYW5pZWxndGF5bG9yL2h1bWEvdjIiCgkiZ2l0aHViLmNvbS9kYW5pZWxndGF5bG9yL2h1bWEvdjIvYWRhcHRlcnMvaHVtYWNoaSIKCSJnaXRodWIuY29tL2RhbmllbGd0YXlsb3IvaHVtYS92Mi9odW1hY2xpIgoJImdpdGh1Yi5jb20vZ28tY2hpL2NoaS92NSIKCglfICJnaXRodWIuY29tL2RhbmllbGd0YXlsb3IvaHVtYS92Mi9mb3JtYXRzL2Nib3IiCikKCi8vIE9wdGlvbnMgZm9yIHRoZSBDTEkuIFBhc3MgYC0tcG9ydGAgb3Igc2V0IHRoZSBgU0VSVklDRV9QT1JUYCBlbnYgdmFyLgp0eXBlIE9wdGlvbnMgc3RydWN0IHsKCVBvcnQgaW50IGBoZWxwOiJQb3J0IHRvIGxpc3RlbiBvbiIgc2hvcnQ6InAiIGRlZmF1bHQ6Ijg4ODgiYAp9CgovLyBHcmVldGluZ091dHB1dCByZXByZXNlbnRzIHRoZSBncmVldGluZyBvcGVyYXRpb24gcmVzcG9uc2UuCnR5cGUgR3JlZXRpbmdPdXRwdXQgc3RydWN0IHsKCUJvZHkgc3RydWN0IHsKCQlNZXNzYWdlIHN0cmluZyBganNvbjoibWVzc2FnZSIgZXhhbXBsZToiSGVsbG8sIHdvcmxkISIgZG9jOiJHcmVldGluZyBtZXNzYWdlImAKCX0KfQoKZnVuYyBtYWluKCkgewoJLy8gQ3JlYXRlIGEgQ0xJIGFwcCB3aGljaCB0YWtlcyBhIHBvcnQgb3B0aW9uLgoJY2xpIDo9IGh1bWFjbGkuTmV3KGZ1bmMoaG9va3MgaHVtYWNsaS5Ib29rcywgb3B0aW9ucyAqT3B0aW9ucykgewoJCS8vIENyZWF0ZSBhIG5ldyByb3V0ZXIgJiBBUEkKCQlyb3V0ZXIgOj0gY2hpLk5ld011eCgpCgkJYXBpIDo9IGh1bWFjaGkuTmV3KHJvdXRlciwgaHVtYS5EZWZhdWx0Q29uZmlnKCJNeSBBUEkiLCAiMS4wLjAiKSkKCgkJLy8gQWRkIHRoZSBvcGVyYXRpb24gaGFuZGxlciB0byB0aGUgQVBJLgoJCWh1bWEuR2V0KGFwaSwgIi9ncmVldGluZy97bmFtZX0iLCBmdW5jKGN0eCBjb250ZXh0LkNvbnRleHQsIGlucHV0ICpzdHJ1Y3R7CgkJCU5hbWUgc3RyaW5nIGBwYXRoOiJuYW1lIiBtYXhMZW5ndGg6IjMwIiBleGFtcGxlOiJ3b3JsZCIgZG9jOiJOYW1lIHRvIGdyZWV0ImAKCQl9KSAoKkdyZWV0aW5nT3V0cHV0LCBlcnJvcikgewoJCQlyZXNwIDo9ICZHcmVldGluZ091dHB1dHt9CgkJCXJlc3AuQm9keS5NZXNzYWdlID0gZm10LlNwcmludGYoIkhlbGxvLCAlcyEiLCBpbnB1dC5OYW1lKQoJCQlyZXR1cm4gcmVzcCwgbmlsCgkJfSkKCgkJLy8gVGVsbCB0aGUgQ0xJIGhvdyB0byBzdGFydCB5b3VyIHJvdXRlci4KCQlob29rcy5PblN0YXJ0KGZ1bmMoKSB7CgkJCWh0dHAuTGlzdGVuQW5kU2VydmUoZm10LlNwcmludGYoIjolZCIsIG9wdGlvbnMuUG9ydCksIHJvdXRlcikKCQl9KQoJfSkKCgkvLyBSdW4gdGhlIENMSS4gV2hlbiBwYXNzZWQgbm8gY29tbWFuZHMsIGl0IHN0YXJ0cyB0aGUgc2VydmVyLgoJY2xpLlJ1bigpCn0KYGBgCgo+IFshVElQXQo+IFJlcGxhY2UgYGNoaS5OZXdNdXgoKWAg4oaSIGBodHRwLk5ld1NlcnZlTXV4KClgIGFuZCBgaHVtYWNoaS5OZXdgIOKGkiBgaHVtYWdvLk5ld2AgdG8gdXNlIHRoZSBzdGFuZGFyZCBsaWJyYXJ5IHJvdXRlciBmcm9tIEdvIDEuMjIrLiBKdXN0IG1ha2Ugc3VyZSB5b3VyIGBnby5tb2RgIGhhcyBgZ28gMS4yMmAgb3IgbmV3ZXIgbGlzdGVkIGluIGl0LiBFdmVyeXRoaW5nIGVsc2Ugc3RheXMgdGhlIHNhbWUhIFN3aXRjaCB3aGVuZXZlciB5b3UgYXJlIHJlYWR5LgoKWW91IGNhbiB0ZXN0IGl0IHdpdGggYGdvIHJ1biBncmVldC5nb2AgKG9wdGlvbmFsbHkgcGFzcyBgLS1wb3J0YCB0byBjaGFuZ2UgdGhlIGRlZmF1bHQpIGFuZCBtYWtlIGEgc2FtcGxlIHJlcXVlc3QgdXNpbmcgW1Jlc3Rpc2hdKGh0dHBzOi8vcmVzdC5zaC8pIChvciBgY3VybGApOgoKYGBgc2gKIyBHZXQgdGhlIG1lc3NhZ2UgZnJvbSB0aGUgc2VydmVyCiQgcmVzdGlzaCA6ODg4OC9ncmVldGluZy93b3JsZApIVFRQLzEuMSAyMDAgT0sKLi4uCnsKCSRzY2hlbWE6ICJodHRwOi8vbG9jYWxob3N0Ojg4ODgvc2NoZW1hcy9HcmVldGluZ091dHB1dEJvZHkuanNvbiIsCgltZXNzYWdlOiAiSGVsbG8sIHdvcmxkISIKfQpgYGAKCkV2ZW4gdGhvdWdoIHRoZSBleGFtcGxlIGlzIHRpbnkgeW91IGNhbiBhbHNvIHNlZSBzb21lIGdlbmVyYXRlZCBkb2N1bWVudGF0aW9uIGF0IGh0dHA6Ly9sb2NhbGhvc3Q6ODg4OC9kb2NzLiBUaGUgZ2VuZXJhdGVkIE9wZW5BUEkgaXMgYXZhaWxhYmxlIGF0IGh0dHA6Ly9sb2NhbGhvc3Q6ODg4OC9vcGVuYXBpLmpzb24gb3IgaHR0cDovL2xvY2FsaG9zdDo4ODg4L29wZW5hcGkueWFtbC4KCkNoZWNrIG91dCB0aGUgW0h1bWEgdHV0b3JpYWxdKGh0dHBzOi8vaHVtYS5yb2Nrcy90dXRvcmlhbC9pbnN0YWxsYXRpb24vKSBmb3IgYSBzdGVwLWJ5LXN0ZXAgZ3VpZGUgdG8gZ2V0IHN0YXJ0ZWQuCgojIERvY3VtZW50YXRpb24KClNlZSB0aGUgW2h0dHBzOi8vaHVtYS5yb2Nrcy9dKGh0dHBzOi8vaHVtYS5yb2Nrcy8pIHdlYnNpdGUgZm9yIGZ1bGwgZG9jdW1lbnRhdGlvbiBpbiBhIHByZXNlbnRhdGlvbiB0aGF0J3MgZWFzaWVyIHRvIG5hdmlnYXRlIGFuZCBzZWFyY2ggdGhlbiB0aGlzIFJFQURNRS4gWW91IGNhbiBmaW5kIHRoZSBzb3VyY2UgZm9yIHRoZSBzaXRlIGluIHRoZSBgZG9jc2AgZGlyZWN0b3J5IG9mIHRoaXMgcmVwby4KCk9mZmljaWFsIEdvIHBhY2thZ2UgZG9jdW1lbnRhdGlvbiBjYW4gYWx3YXlzIGJlIGZvdW5kIGF0IGh0dHBzOi8vcGtnLmdvLmRldi9naXRodWIuY29tL2RhbmllbGd0YXlsb3IvaHVtYS92Mi4KCiMgQXJ0aWNsZXMgJiBNZW50aW9ucwoKLSBbQVBJcyBpbiBHbyB3aXRoIEh1bWEgMi4wXShodHRwczovL2RndC5oYXNobm9kZS5kZXYvYXBpcy1pbi1nby13aXRoLWh1bWEtMjApCi0gW1JlZHVjaW5nIEdvIERlcGVuZGVuY2llczogQSBjYXNlIHN0dWR5IG9mIGRlcGVuZGVuY3kgcmVkdWN0aW9uIGluIEh1bWFdKGh0dHBzOi8vZGd0Lmhhc2hub2RlLmRldi9yZWR1Y2luZy1nby1kZXBlbmRlbmNpZXMpCi0gW0dvbGFuZyBOZXdzICYgTGlicyAmIEpvYnMgc2hhcmVkIG9uIFR3aXR0ZXIvWF0oaHR0cHM6Ly90d2l0dGVyLmNvbS9nb2xhbmdjaC9zdGF0dXMvMTc1MjE3NTQ5OTcwMTI2NDUzMikKLSBGZWF0dXJlZCBpbiBHbyBXZWVrbHkgWyM0OTVdKGh0dHBzOi8vZ29sYW5nd2Vla2x5LmNvbS9pc3N1ZXMvNDk1KSAmIFsjNDk4XShodHRwczovL2dvbGFuZ3dlZWtseS5jb20vaXNzdWVzLzQ5OCkKLSBbQnVtcC5zaCBEZXBsb3lpbmcgRG9jcyBmcm9tIEh1bWFdKGh0dHBzOi8vZG9jcy5idW1wLnNoL2d1aWRlcy9idW1wLXNoLXR1dG9yaWFscy9odW1hLykKLSBNZW50aW9uZWQgaW4gW0NvbXBvc2FibGUgSFRUUCBIYW5kbGVycyBVc2luZyBHZW5lcmljc10oaHR0cHM6Ly93d3cud2lsbGVtLmRldi9hcnRpY2xlcy9nZW5lcmljLWh0dHAtaGFuZGxlcnMvKQoKQmUgc3VyZSB0byBzdGFyIHRoZSBwcm9qZWN0IGlmIHlvdSBmaW5kIGl0IHVzZWZ1bCEKCjxhIGhyZWY9Imh0dHBzOi8vc3Rhci1oaXN0b3J5LmNvbS8jZGFuaWVsZ3RheWxvci9odW1hJkRhdGUiPgoJPHBpY3R1cmU+CgkJPHNvdXJjZSBtZWRpYT0iKHByZWZlcnMtY29sb3Itc2NoZW1lOiBkYXJrKSIgc3Jjc2V0PSJodHRwczovL2FwaS5zdGFyLWhpc3RvcnkuY29tL3N2Zz9yZXBvcz1kYW5pZWxndGF5bG9yL2h1bWEmdHlwZT1EYXRlJnRoZW1lPWRhcmsiIC8+CgkJPHNvdXJjZSBtZWRpYT0iKHByZWZlcnMtY29sb3Itc2NoZW1lOiBsaWdodCkiIHNyY3NldD0iaHR0cHM6Ly9hcGkuc3Rhci1oaXN0b3J5LmNvbS9zdmc/cmVwb3M9ZGFuaWVsZ3RheWxvci9odW1hJnR5cGU9RGF0ZSIgLz4KCQk8aW1nIGFsdD0iU3RhciBIaXN0b3J5IENoYXJ0IiBzcmM9Imh0dHBzOi8vYXBpLnN0YXItaGlzdG9yeS5jb20vc3ZnP3JlcG9zPWRhbmllbGd0YXlsb3IvaHVtYSZ0eXBlPURhdGUiIC8+Cgk8L3BpY3R1cmU+CjwvYT4K - readmeEtag: '"2fadd9999d89d6912b24394a4b467ea9e16f5da0"' - readmeLastModified: Thu, 15 Aug 2024 17:43:21 GMT + PGEgaHJlZj0iIyI+Cgk8cGljdHVyZT4KCQk8c291cmNlIG1lZGlhPSIocHJlZmVycy1jb2xvci1zY2hlbWU6IGRhcmspIiBzcmNzZXQ9Imh0dHBzOi8vaHVtYS5yb2Nrcy9odW1hLWRhcmsucG5nIiAvPgoJCTxzb3VyY2UgbWVkaWE9IihwcmVmZXJzLWNvbG9yLXNjaGVtZTogbGlnaHQpIiBzcmNzZXQ9Imh0dHBzOi8vaHVtYS5yb2Nrcy9odW1hLnBuZyIgLz4KCQk8aW1nIGFsdD0iSHVtYSBMb2dvIiBzcmM9Imh0dHBzOi8vaHVtYS5yb2Nrcy9odW1hLnBuZyIgLz4KCTwvcGljdHVyZT4KPC9hPgoKWyFbSFVNQSBQb3dlcmVkXShodHRwczovL2ltZy5zaGllbGRzLmlvL2JhZGdlL1Bvd2VyZWQlMjBCeS1IVU1BLWY0MDI3MyldKGh0dHBzOi8vaHVtYS5yb2Nrcy8pIFshW0NJXShodHRwczovL2dpdGh1Yi5jb20vZGFuaWVsZ3RheWxvci9odW1hL3dvcmtmbG93cy9DSS9iYWRnZS5zdmc/YnJhbmNoPW1haW4pXShodHRwczovL2dpdGh1Yi5jb20vZGFuaWVsZ3RheWxvci9odW1hL2FjdGlvbnM/cXVlcnk9d29ya2Zsb3clM0FDSSticmFuY2glM0FtYWluKyspIFshW2NvZGVjb3ZdKGh0dHBzOi8vY29kZWNvdi5pby9naC9kYW5pZWxndGF5bG9yL2h1bWEvYnJhbmNoL21haW4vZ3JhcGgvYmFkZ2Uuc3ZnKV0oaHR0cHM6Ly9jb2RlY292LmlvL2doL2RhbmllbGd0YXlsb3IvaHVtYSkgWyFbRG9jc10oaHR0cHM6Ly9nb2RvYy5vcmcvZ2l0aHViLmNvbS9kYW5pZWxndGF5bG9yL2h1bWEvdjI/c3RhdHVzLnN2ZyldKGh0dHBzOi8vcGtnLmdvLmRldi9naXRodWIuY29tL2RhbmllbGd0YXlsb3IvaHVtYS92Mj90YWI9ZG9jKSBbIVtHbyBSZXBvcnQgQ2FyZF0oaHR0cHM6Ly9nb3JlcG9ydGNhcmQuY29tL2JhZGdlL2dpdGh1Yi5jb20vZGFuaWVsZ3RheWxvci9odW1hL3YyKV0oaHR0cHM6Ly9nb3JlcG9ydGNhcmQuY29tL3JlcG9ydC9naXRodWIuY29tL2RhbmllbGd0YXlsb3IvaHVtYS92MikKClsqKvCfjI7kuK3mlofmlofmoaMqKl0oLi9SRUFETUVfQ04ubWQpCgotIFtXaGF0IGlzIGh1bWE/XSgjaW50cm8pCi0gW0luc3RhbGxdKCNpbnN0YWxsKQotIFtFeGFtcGxlXSgjZXhhbXBsZSkKLSBbRG9jdW1lbnRhdGlvbl0oI2RvY3VtZW50YXRpb24pCgo8YSBuYW1lPSJpbnRybyI+PC9hPgpBIG1vZGVybiwgc2ltcGxlLCBmYXN0ICYgZmxleGlibGUgbWljcm8gZnJhbWV3b3JrIGZvciBidWlsZGluZyBIVFRQIFJFU1QvUlBDIEFQSXMgaW4gR28gYmFja2VkIGJ5IE9wZW5BUEkgMyBhbmQgSlNPTiBTY2hlbWEuIFByb25vdW5jZWQgSVBBOiBbLydoanXLkG3JkS9dKGh0dHBzOi8vZW4ud2lrdGlvbmFyeS5vcmcvd2lraS9XaWt0aW9uYXJ5OkludGVybmF0aW9uYWxfUGhvbmV0aWNfQWxwaGFiZXQpLiBUaGUgZ29hbHMgb2YgdGhpcyBwcm9qZWN0IGFyZSB0byBwcm92aWRlOgoKLSBJbmNyZW1lbnRhbCBhZG9wdGlvbiBmb3IgdGVhbXMgd2l0aCBleGlzdGluZyBzZXJ2aWNlcwogIC0gQnJpbmcgeW91ciBvd24gcm91dGVyIChpbmNsdWRpbmcgR28gMS4yMispLCBtaWRkbGV3YXJlLCBhbmQgbG9nZ2luZy9tZXRyaWNzCiAgLSBFeHRlbnNpYmxlIE9wZW5BUEkgJiBKU09OIFNjaGVtYSBsYXllciB0byBkb2N1bWVudCBleGlzdGluZyByb3V0ZXMKLSBBIG1vZGVybiBSRVNUIG9yIEhUVFAgUlBDIEFQSSBiYWNrZW5kIGZyYW1ld29yayBmb3IgR28gZGV2ZWxvcGVycwogIC0gRGVzY3JpYmVkIGJ5IFtPcGVuQVBJIDMuMV0oaHR0cHM6Ly9naXRodWIuY29tL09BSS9PcGVuQVBJLVNwZWNpZmljYXRpb24vYmxvYi9tYXN0ZXIvdmVyc2lvbnMvMy4xLjAubWQpICYgW0pTT04gU2NoZW1hXShodHRwczovL2pzb24tc2NoZW1hLm9yZy8pCi0gR3VhcmQgcmFpbHMgdG8gcHJldmVudCBjb21tb24gbWlzdGFrZXMKLSBEb2N1bWVudGF0aW9uIHRoYXQgY2FuJ3QgZ2V0IG91dCBvZiBkYXRlCi0gSGlnaC1xdWFsaXR5IGdlbmVyYXRlZCBkZXZlbG9wZXIgdG9vbGluZwoKRmVhdHVyZXMgaW5jbHVkZToKCi0gRGVjbGFyYXRpdmUgaW50ZXJmYWNlIG9uIHRvcCBvZiB5b3VyIHJvdXRlciBvZiBjaG9pY2U6CiAgLSBPcGVyYXRpb24gJiBtb2RlbCBkb2N1bWVudGF0aW9uCiAgLSBSZXF1ZXN0IHBhcmFtcyAocGF0aCwgcXVlcnksIGhlYWRlciwgb3IgY29va2llKQogIC0gUmVxdWVzdCBib2R5CiAgLSBSZXNwb25zZXMgKGluY2x1ZGluZyBlcnJvcnMpCiAgLSBSZXNwb25zZSBoZWFkZXJzCi0gSlNPTiBFcnJvcnMgdXNpbmcgW1JGQzk0NTddKGh0dHBzOi8vZGF0YXRyYWNrZXIuaWV0Zi5vcmcvZG9jL2h0bWwvcmZjOTQ1NykgYW5kIGBhcHBsaWNhdGlvbi9wcm9ibGVtK2pzb25gIGJ5IGRlZmF1bHQgKGJ1dCBjYW4gYmUgY2hhbmdlZCkKLSBQZXItb3BlcmF0aW9uIHJlcXVlc3Qgc2l6ZSBsaW1pdHMgd2l0aCBzYW5lIGRlZmF1bHRzCi0gW0NvbnRlbnQgbmVnb3RpYXRpb25dKGh0dHBzOi8vZGV2ZWxvcGVyLm1vemlsbGEub3JnL2VuLVVTL2RvY3MvV2ViL0hUVFAvQ29udGVudF9uZWdvdGlhdGlvbikgYmV0d2VlbiBzZXJ2ZXIgYW5kIGNsaWVudAogIC0gU3VwcG9ydCBmb3IgSlNPTiAoW1JGQyA4MjU5XShodHRwczovL3Rvb2xzLmlldGYub3JnL2h0bWwvcmZjODI1OSkpIGFuZCBvcHRpb25hbGx5IENCT1IgKFtSRkMgNzA0OV0oaHR0cHM6Ly90b29scy5pZXRmLm9yZy9odG1sL3JmYzcwNDkpKSBjb250ZW50IHR5cGVzIHZpYSB0aGUgYEFjY2VwdGAgaGVhZGVyIHdpdGggdGhlIGRlZmF1bHQgY29uZmlnLgotIENvbmRpdGlvbmFsIHJlcXVlc3RzIHN1cHBvcnQsIGUuZy4gYElmLU1hdGNoYCBvciBgSWYtVW5tb2RpZmllZC1TaW5jZWAgaGVhZGVyIHV0aWxpdGllcy4KLSBPcHRpb25hbCBhdXRvbWF0aWMgZ2VuZXJhdGlvbiBvZiBgUEFUQ0hgIG9wZXJhdGlvbnMgdGhhdCBzdXBwb3J0OgogIC0gW1JGQyA3Mzg2XShodHRwczovL3d3dy5yZmMtZWRpdG9yLm9yZy9yZmMvcmZjNzM4NikgSlNPTiBNZXJnZSBQYXRjaAogIC0gW1JGQyA2OTAyXShodHRwczovL3d3dy5yZmMtZWRpdG9yLm9yZy9yZmMvcmZjNjkwMikgSlNPTiBQYXRjaAogIC0gW1Nob3J0aGFuZF0oaHR0cHM6Ly9naXRodWIuY29tL2RhbmllbGd0YXlsb3Ivc2hvcnRoYW5kKSBwYXRjaGVzCi0gQW5ub3RhdGVkIEdvIHR5cGVzIGZvciBpbnB1dCBhbmQgb3V0cHV0IG1vZGVscwogIC0gR2VuZXJhdGVzIEpTT04gU2NoZW1hIGZyb20gR28gdHlwZXMKICAtIFN0YXRpYyB0eXBpbmcgZm9yIHBhdGgvcXVlcnkvaGVhZGVyIHBhcmFtcywgYm9kaWVzLCByZXNwb25zZSBoZWFkZXJzLCBldGMuCiAgLSBBdXRvbWF0aWMgaW5wdXQgbW9kZWwgdmFsaWRhdGlvbiAmIGVycm9yIGhhbmRsaW5nCi0gRG9jdW1lbnRhdGlvbiBnZW5lcmF0aW9uIHVzaW5nIFtTdG9wbGlnaHQgRWxlbWVudHNdKGh0dHBzOi8vc3RvcGxpZ2h0LmlvL29wZW4tc291cmNlL2VsZW1lbnRzKQotIE9wdGlvbmFsIENMSSBidWlsdC1pbiwgY29uZmlndXJlZCB2aWEgYXJndW1lbnRzIG9yIGVudmlyb25tZW50IHZhcmlhYmxlcwogIC0gU2V0IHZpYSBlLmcuIGAtcCA4MDAwYCwgYC0tcG9ydD04MDAwYCwgb3IgYFNFUlZJQ0VfUE9SVD04MDAwYAogIC0gU3RhcnR1cCBhY3Rpb25zICYgZ3JhY2VmdWwgc2h1dGRvd24gYnVpbHQtaW4KLSBHZW5lcmF0ZXMgT3BlbkFQSSBmb3IgYWNjZXNzIHRvIGEgcmljaCBlY29zeXN0ZW0gb2YgdG9vbHMKICAtIE1vY2tzIHdpdGggW0FQSSBTcHJvdXRdKGh0dHBzOi8vZ2l0aHViLmNvbS9kYW5pZWxndGF5bG9yL2FwaXNwcm91dCkgb3IgW1ByaXNtXShodHRwczovL3N0b3BsaWdodC5pby9vcGVuLXNvdXJjZS9wcmlzbSkKICAtIFNES3Mgd2l0aCBbT3BlbkFQSSBHZW5lcmF0b3JdKGh0dHBzOi8vZ2l0aHViLmNvbS9PcGVuQVBJVG9vbHMvb3BlbmFwaS1nZW5lcmF0b3IpIG9yIFtvYXBpLWNvZGVnZW5dKGh0dHBzOi8vZ2l0aHViLmNvbS9kZWVwbWFwL29hcGktY29kZWdlbikKICAtIENMSSB3aXRoIFtSZXN0aXNoXShodHRwczovL3Jlc3Quc2gvKQogIC0gQW5kIFtwbGVudHldKGh0dHBzOi8vb3BlbmFwaS50b29scy8pIFttb3JlXShodHRwczovL2FwaXMuZ3VydS9hd2Vzb21lLW9wZW5hcGkzL2NhdGVnb3J5Lmh0bWwpCi0gR2VuZXJhdGVzIEpTT04gU2NoZW1hIGZvciBlYWNoIHJlc291cmNlIHVzaW5nIG9wdGlvbmFsIGBkZXNjcmliZWRieWAgbGluayByZWxhdGlvbiBoZWFkZXJzIGFzIHdlbGwgYXMgb3B0aW9uYWwgYCRzY2hlbWFgIHByb3BlcnRpZXMgaW4gcmV0dXJuZWQgb2JqZWN0cyB0aGF0IGludGVncmF0ZSBpbnRvIGVkaXRvcnMgZm9yIHZhbGlkYXRpb24gJiBjb21wbGV0aW9uLgoKVGhpcyBwcm9qZWN0IHdhcyBpbnNwaXJlZCBieSBbRmFzdEFQSV0oaHR0cHM6Ly9mYXN0YXBpLnRpYW5nb2xvLmNvbS8pLiBMb2dvICYgYnJhbmRpbmcgZGVzaWduZWQgYnkgS2FyaSBUYXlsb3IuCgojIyBTcG9uc29ycwoKQSBiaWcgdGhhbmsgeW91IHRvIG91ciBjdXJyZW50ICYgZm9ybWVyIHNwb25zb3JzIQoKPGRpdj4KCQkJCQk8aW1nIHdpZHRoPSIxMDAwIiBoZWlnaHQ9IjAiIC8+CgkJCQkJPGEgaHJlZj0iaHR0cHM6Ly96dXBsby5saW5rL2h1bWEtZ2ggIj4KCQkJCQk8cGljdHVyZT4KCQkJCQkJCTwhLS0gPHNvdXJjZSBtZWRpYT0iKHByZWZlcnMtY29sb3Itc2NoZW1lOiBkYXJrKSIgc3Jjc2V0PSJkb2NzL3p1cGxvLWRhcmsucG5nIj4gLS0+CgkJCQkJCQk8aW1nIHNyYz0iaHR0cHM6Ly9naXRodWIuY29tL3VzZXItYXR0YWNobWVudHMvYXNzZXRzL2FhY2U1YWE3LTMyYmQtNDVjZi1hOGY4LTJlMzUyZmVhZjAxNyIgYWx0PSJadXBsbyIgd2lkdGg9IjI2MCIgYWxpZ249InJpZ2h0Ij4KCQkJCQk8L3BpY3R1cmU+CgkJCQkJPC9hPgoJCQkJCTxoMz5adXBsbzogU2NhbGUsIFByb3RlY3QsIGFuZCBQcm9kdWN0aXplIHlvdXIgSHVtYSBBUEk8L2gzPgoJCQkJCTxwPgoJCQkJCQkJT3VyIEFQSSBHYXRld2F5IGFsbG93cyB5b3UgdG8gc2VjdXJlIHlvdXIgQVBJLCBzY2FsZSBpdCBnbG9iYWxseSwgZ2VuZXJhdGUgZG9jdW1lbnRhdGlvbiBmcm9tIHlvdXIgT3BlbkFQSSwgYW5kIG1vbmV0aXplIHlvdXIgdXNlcnMuCgkJCQkJPC9wPgoJCQkJCTxhIGhyZWY9Imh0dHBzOi8venVwbG8ubGluay9odW1hLWdoICI+U3RhcnQgZm9yIEZyZWU8L2E+CjwvZGl2Pgo8aHIvPgoKLSBbQGJjbGVtZW50c10oaHR0cHM6Ly9naXRodWIuY29tL2JjbGVtZW50cykKLSBbQGJla2FiYXpdKGh0dHBzOi8vZ2l0aHViLmNvbS9iZWthYmF6KQotIFtAdmljdG9yYXVndXN0b2xsc10oaHR0cHM6Ly9naXRodWIuY29tL3ZpY3RvcmF1Z3VzdG9sbHMpCi0gW0BwaG9lbml4dGVjaG5vbG9naWVzLWlvXShodHRwczovL2dpdGh1Yi5jb20vcGhvZW5peHRlY2hub2xvZ2llcy1pbykKLSBbQGNoZW5qcjA3MTldKGh0dHBzOi8vZ2l0aHViLmNvbS9jaGVuanIwNzE5KQoKIyMgVGVzdGltb25pYWxzCgo+IFRoaXMgaXMgYnkgZmFyIG15IGZhdm9yaXRlIHdlYiBmcmFtZXdvcmsgZm9yIEdvLiBJdCBpcyBpbnNwaXJlZCBieSBGYXN0QVBJLCB3aGljaCBpcyBhbHNvIGFtYXppbmcsIGFuZCBjb25mb3JtcyB0byBtYW55IFJGQ3MgZm9yIGNvbW1vbiB3ZWIgdGhpbmdzIC4uLiBJIHJlYWxseSBsaWtlIHRoZSBmZWF0dXJlIHNldCwgdGhlIGZhY3QgdGhhdCBpdCBbY2FuIHVzZV0gQ2hpLCBhbmQgdGhlIGZhY3QgdGhhdCBpdCBpcyBzdGlsbCBzb21laG93IHJlbGF0aXZlbHkgc2ltcGxlIHRvIHVzZS4gSSd2ZSB0cmllZCBvdGhlciBmcmFtZXdvcmtzIGFuZCB0aGV5IGRvIG5vdCBzcGFyayBqb3kgZm9yIG1lLiAtIFtKZWJfSmVua3ldKGh0dHBzOi8vd3d3LnJlZGRpdC5jb20vci9nb2xhbmcvY29tbWVudHMvemhpdGNnL2NvbW1lbnQvaXptZzZ2ay8/dXRtX3NvdXJjZT1yZWRkaXQmdXRtX21lZGl1bT13ZWIyeCZjb250ZXh0PTMpCgo+IEFmdGVyIHdvcmtpbmcgd2l0aCAjR29sYW5nIGZvciBvdmVyIGEgeWVhciwgSSBzdHVtYmxlZCB1cG9uIEh1bWEsIHRoZSAjRmFzdEFQSS1pbnNwaXJlZCB3ZWIgZnJhbWV3b3JrLiBJdOKAmXMgdGhlIENocmlzdG1hcyBtaXJhY2xlIEnigJl2ZSBiZWVuIGhvcGluZyBmb3IhIFRoaXMgZnJhbWV3b3JrIGhhcyBldmVyeXRoaW5nISAtIFtIYW5hIE1vaGFuXShodHRwczovL3R3aXR0ZXIuY29tL3VuYW1hc2hhbmEvc3RhdHVzLzE3MzMwODgwNjYwNTM1ODMxOTcpCgo+IEkgbG92ZSBIdW1hLiBUaGFuayB5b3UsIHNpbmNlcmVseSwgZm9yIHRoaXMgYXdlc29tZSBwYWNrYWdlLiBJ4oCZdmUgYmVlbiB1c2luZyBpdCBmb3Igc29tZSB0aW1lIG5vdyBhbmQgaXTigJlzIGJlZW4gZ3JlYXQhIC0gW3Bsc2NvdHRdKGh0dHBzOi8vd3d3LnJlZGRpdC5jb20vci9nb2xhbmcvY29tbWVudHMvMWFvc2hleS9jb21tZW50L2txNmhjcGQvP3V0bV9zb3VyY2U9cmVkZGl0JnV0bV9tZWRpdW09d2ViMngmY29udGV4dD0zKQoKPiBUaGFuayB5b3UgRGFuaWVsIGZvciBIdW1hLiBTdXBlcmJseSB1c2VmdWwgcHJvamVjdCBhbmQgc2F2ZXMgdXMgYSBsb3Qgb2YgdGltZSBhbmQgaGFzc2xlIHRoYW5rcyB0byB0aGUgT3BlbkFQSSBnZW4g4oCUIHNpbWlsYXIgdG8gRmFzdEFQSSBpbiBQeXRob24uIC0gW1dvbHZlc09mQWxsU3RyZWV0c10oaHR0cHM6Ly93d3cucmVkZGl0LmNvbS9yL2dvbGFuZy9jb21tZW50cy8xYXFqOTlkL2NvbW1lbnQva3FmcWNtbC8/dXRtX3NvdXJjZT1yZWRkaXQmdXRtX21lZGl1bT13ZWIyeCZjb250ZXh0PTMpCgo+IEh1bWEgaXMgd29uZGVyZnVsLCBJJ3ZlIHN0YXJ0ZWQgd29ya2luZyB3aXRoIGl0IHJlY2VudGx5LCBhbmQgaXQncyBhIHBsZWFzdXJlLCBzbyB0aGFuayB5b3UgdmVyeSBtdWNoIGZvciB5b3VyIGVmZm9ydHMg8J+ZjyAtIFtjYWxsbWVtaWNhaF0oaHR0cHM6Ly93d3cucmVkZGl0LmNvbS9yL2dvbGFuZy9jb21tZW50cy8xYjMydHM0L2NvbW1lbnQva3N2cjloNy8/dXRtX3NvdXJjZT1yZWRkaXQmdXRtX21lZGl1bT13ZWIyeCZjb250ZXh0PTMpCgo+IEl0IHRvb2sgdXMgMyBtb250aHMgdG8gYnVpbGQgb3VyIHBsYXRmb3JtIGluIFB5dGhvbiB3aXRoIEZhc3RBUEksIFNRTCBBbGNoZW15IGFuZCBvbmx5IDMgd2Vla3MgdG8gcmV3cml0ZSBpdCBpbiBHbyB3aXRoIEh1bWEgYW5kIFNRTCBDLiBUaGluZ3MganVzdCB3b3JrIGFuZCBJIHNlbGRvbWx5IGhhdmUgdG8gZGVidWcgd2hlcmUgaW4gUHl0aG9uIEkgc3BlbnQgYSBtYWpvcml0eSBvZiBteSB0aW1lIGRlYnVnZ2luZy4gLSBbQml0Y2xpY2tcX10oaHR0cHM6Ly93d3cucmVkZGl0LmNvbS9yL2dvbGFuZy9jb21tZW50cy8xY2oyem5iL2NvbW1lbnQvbDJlNHU2eS8pCgojIEluc3RhbGwKCkluc3RhbGwgdmlhIGBnbyBnZXRgLiBOb3RlIHRoYXQgR28gMS4yMSBvciBuZXdlciBpcyByZXF1aXJlZC4KCmBgYHNoCiMgQWZ0ZXI6IGdvIG1vZCBpbml0IC4uLgpnbyBnZXQgLXUgZ2l0aHViLmNvbS9kYW5pZWxndGF5bG9yL2h1bWEvdjIKYGBgCgojIEV4YW1wbGUKCkhlcmUgaXMgYSBjb21wbGV0ZSBiYXNpYyBoZWxsbyB3b3JsZCBleGFtcGxlIGluIEh1bWEsIHRoYXQgc2hvd3MgaG93IHRvIGluaXRpYWxpemUgYSBIdW1hIGFwcCBjb21wbGV0ZSB3aXRoIENMSSwgZGVjbGFyZSBhIHJlc291cmNlIG9wZXJhdGlvbiwgYW5kIGRlZmluZSBpdHMgaGFuZGxlciBmdW5jdGlvbi4KCmBgYGdvCnBhY2thZ2UgbWFpbgoKaW1wb3J0ICgKCSJjb250ZXh0IgoJImZtdCIKCSJuZXQvaHR0cCIKCgkiZ2l0aHViLmNvbS9kYW5pZWxndGF5bG9yL2h1bWEvdjIiCgkiZ2l0aHViLmNvbS9kYW5pZWxndGF5bG9yL2h1bWEvdjIvYWRhcHRlcnMvaHVtYWNoaSIKCSJnaXRodWIuY29tL2RhbmllbGd0YXlsb3IvaHVtYS92Mi9odW1hY2xpIgoJImdpdGh1Yi5jb20vZ28tY2hpL2NoaS92NSIKCglfICJnaXRodWIuY29tL2RhbmllbGd0YXlsb3IvaHVtYS92Mi9mb3JtYXRzL2Nib3IiCikKCi8vIE9wdGlvbnMgZm9yIHRoZSBDTEkuIFBhc3MgYC0tcG9ydGAgb3Igc2V0IHRoZSBgU0VSVklDRV9QT1JUYCBlbnYgdmFyLgp0eXBlIE9wdGlvbnMgc3RydWN0IHsKCVBvcnQgaW50IGBoZWxwOiJQb3J0IHRvIGxpc3RlbiBvbiIgc2hvcnQ6InAiIGRlZmF1bHQ6Ijg4ODgiYAp9CgovLyBHcmVldGluZ091dHB1dCByZXByZXNlbnRzIHRoZSBncmVldGluZyBvcGVyYXRpb24gcmVzcG9uc2UuCnR5cGUgR3JlZXRpbmdPdXRwdXQgc3RydWN0IHsKCUJvZHkgc3RydWN0IHsKCQlNZXNzYWdlIHN0cmluZyBganNvbjoibWVzc2FnZSIgZXhhbXBsZToiSGVsbG8sIHdvcmxkISIgZG9jOiJHcmVldGluZyBtZXNzYWdlImAKCX0KfQoKZnVuYyBtYWluKCkgewoJLy8gQ3JlYXRlIGEgQ0xJIGFwcCB3aGljaCB0YWtlcyBhIHBvcnQgb3B0aW9uLgoJY2xpIDo9IGh1bWFjbGkuTmV3KGZ1bmMoaG9va3MgaHVtYWNsaS5Ib29rcywgb3B0aW9ucyAqT3B0aW9ucykgewoJCS8vIENyZWF0ZSBhIG5ldyByb3V0ZXIgJiBBUEkKCQlyb3V0ZXIgOj0gY2hpLk5ld011eCgpCgkJYXBpIDo9IGh1bWFjaGkuTmV3KHJvdXRlciwgaHVtYS5EZWZhdWx0Q29uZmlnKCJNeSBBUEkiLCAiMS4wLjAiKSkKCgkJLy8gQWRkIHRoZSBvcGVyYXRpb24gaGFuZGxlciB0byB0aGUgQVBJLgoJCWh1bWEuR2V0KGFwaSwgIi9ncmVldGluZy97bmFtZX0iLCBmdW5jKGN0eCBjb250ZXh0LkNvbnRleHQsIGlucHV0ICpzdHJ1Y3R7CgkJCU5hbWUgc3RyaW5nIGBwYXRoOiJuYW1lIiBtYXhMZW5ndGg6IjMwIiBleGFtcGxlOiJ3b3JsZCIgZG9jOiJOYW1lIHRvIGdyZWV0ImAKCQl9KSAoKkdyZWV0aW5nT3V0cHV0LCBlcnJvcikgewoJCQlyZXNwIDo9ICZHcmVldGluZ091dHB1dHt9CgkJCXJlc3AuQm9keS5NZXNzYWdlID0gZm10LlNwcmludGYoIkhlbGxvLCAlcyEiLCBpbnB1dC5OYW1lKQoJCQlyZXR1cm4gcmVzcCwgbmlsCgkJfSkKCgkJLy8gVGVsbCB0aGUgQ0xJIGhvdyB0byBzdGFydCB5b3VyIHJvdXRlci4KCQlob29rcy5PblN0YXJ0KGZ1bmMoKSB7CgkJCWh0dHAuTGlzdGVuQW5kU2VydmUoZm10LlNwcmludGYoIjolZCIsIG9wdGlvbnMuUG9ydCksIHJvdXRlcikKCQl9KQoJfSkKCgkvLyBSdW4gdGhlIENMSS4gV2hlbiBwYXNzZWQgbm8gY29tbWFuZHMsIGl0IHN0YXJ0cyB0aGUgc2VydmVyLgoJY2xpLlJ1bigpCn0KYGBgCgo+IFshVElQXQo+IFJlcGxhY2UgYGNoaS5OZXdNdXgoKWAg4oaSIGBodHRwLk5ld1NlcnZlTXV4KClgIGFuZCBgaHVtYWNoaS5OZXdgIOKGkiBgaHVtYWdvLk5ld2AgdG8gdXNlIHRoZSBzdGFuZGFyZCBsaWJyYXJ5IHJvdXRlciBmcm9tIEdvIDEuMjIrLiBKdXN0IG1ha2Ugc3VyZSB5b3VyIGBnby5tb2RgIGhhcyBgZ28gMS4yMmAgb3IgbmV3ZXIgbGlzdGVkIGluIGl0LiBFdmVyeXRoaW5nIGVsc2Ugc3RheXMgdGhlIHNhbWUhIFN3aXRjaCB3aGVuZXZlciB5b3UgYXJlIHJlYWR5LgoKWW91IGNhbiB0ZXN0IGl0IHdpdGggYGdvIHJ1biBncmVldC5nb2AgKG9wdGlvbmFsbHkgcGFzcyBgLS1wb3J0YCB0byBjaGFuZ2UgdGhlIGRlZmF1bHQpIGFuZCBtYWtlIGEgc2FtcGxlIHJlcXVlc3QgdXNpbmcgW1Jlc3Rpc2hdKGh0dHBzOi8vcmVzdC5zaC8pIChvciBgY3VybGApOgoKYGBgc2gKIyBHZXQgdGhlIG1lc3NhZ2UgZnJvbSB0aGUgc2VydmVyCiQgcmVzdGlzaCA6ODg4OC9ncmVldGluZy93b3JsZApIVFRQLzEuMSAyMDAgT0sKLi4uCnsKCSRzY2hlbWE6ICJodHRwOi8vbG9jYWxob3N0Ojg4ODgvc2NoZW1hcy9HcmVldGluZ091dHB1dEJvZHkuanNvbiIsCgltZXNzYWdlOiAiSGVsbG8sIHdvcmxkISIKfQpgYGAKCkV2ZW4gdGhvdWdoIHRoZSBleGFtcGxlIGlzIHRpbnkgeW91IGNhbiBhbHNvIHNlZSBzb21lIGdlbmVyYXRlZCBkb2N1bWVudGF0aW9uIGF0IGh0dHA6Ly9sb2NhbGhvc3Q6ODg4OC9kb2NzLiBUaGUgZ2VuZXJhdGVkIE9wZW5BUEkgaXMgYXZhaWxhYmxlIGF0IGh0dHA6Ly9sb2NhbGhvc3Q6ODg4OC9vcGVuYXBpLmpzb24gb3IgaHR0cDovL2xvY2FsaG9zdDo4ODg4L29wZW5hcGkueWFtbC4KCkNoZWNrIG91dCB0aGUgW0h1bWEgdHV0b3JpYWxdKGh0dHBzOi8vaHVtYS5yb2Nrcy90dXRvcmlhbC9pbnN0YWxsYXRpb24vKSBmb3IgYSBzdGVwLWJ5LXN0ZXAgZ3VpZGUgdG8gZ2V0IHN0YXJ0ZWQuCgojIERvY3VtZW50YXRpb24KClNlZSB0aGUgW2h0dHBzOi8vaHVtYS5yb2Nrcy9dKGh0dHBzOi8vaHVtYS5yb2Nrcy8pIHdlYnNpdGUgZm9yIGZ1bGwgZG9jdW1lbnRhdGlvbiBpbiBhIHByZXNlbnRhdGlvbiB0aGF0J3MgZWFzaWVyIHRvIG5hdmlnYXRlIGFuZCBzZWFyY2ggdGhlbiB0aGlzIFJFQURNRS4gWW91IGNhbiBmaW5kIHRoZSBzb3VyY2UgZm9yIHRoZSBzaXRlIGluIHRoZSBgZG9jc2AgZGlyZWN0b3J5IG9mIHRoaXMgcmVwby4KCk9mZmljaWFsIEdvIHBhY2thZ2UgZG9jdW1lbnRhdGlvbiBjYW4gYWx3YXlzIGJlIGZvdW5kIGF0IGh0dHBzOi8vcGtnLmdvLmRldi9naXRodWIuY29tL2RhbmllbGd0YXlsb3IvaHVtYS92Mi4KCiMgQXJ0aWNsZXMgJiBNZW50aW9ucwoKLSBbQVBJcyBpbiBHbyB3aXRoIEh1bWEgMi4wXShodHRwczovL2RndC5oYXNobm9kZS5kZXYvYXBpcy1pbi1nby13aXRoLWh1bWEtMjApCi0gW1JlZHVjaW5nIEdvIERlcGVuZGVuY2llczogQSBjYXNlIHN0dWR5IG9mIGRlcGVuZGVuY3kgcmVkdWN0aW9uIGluIEh1bWFdKGh0dHBzOi8vZGd0Lmhhc2hub2RlLmRldi9yZWR1Y2luZy1nby1kZXBlbmRlbmNpZXMpCi0gW0dvbGFuZyBOZXdzICYgTGlicyAmIEpvYnMgc2hhcmVkIG9uIFR3aXR0ZXIvWF0oaHR0cHM6Ly90d2l0dGVyLmNvbS9nb2xhbmdjaC9zdGF0dXMvMTc1MjE3NTQ5OTcwMTI2NDUzMikKLSBGZWF0dXJlZCBpbiBHbyBXZWVrbHkgWyM0OTVdKGh0dHBzOi8vZ29sYW5nd2Vla2x5LmNvbS9pc3N1ZXMvNDk1KSAmIFsjNDk4XShodHRwczovL2dvbGFuZ3dlZWtseS5jb20vaXNzdWVzLzQ5OCkKLSBbQnVtcC5zaCBEZXBsb3lpbmcgRG9jcyBmcm9tIEh1bWFdKGh0dHBzOi8vZG9jcy5idW1wLnNoL2d1aWRlcy9idW1wLXNoLXR1dG9yaWFscy9odW1hLykKLSBNZW50aW9uZWQgaW4gW0NvbXBvc2FibGUgSFRUUCBIYW5kbGVycyBVc2luZyBHZW5lcmljc10oaHR0cHM6Ly93d3cud2lsbGVtLmRldi9hcnRpY2xlcy9nZW5lcmljLWh0dHAtaGFuZGxlcnMvKQoKQmUgc3VyZSB0byBzdGFyIHRoZSBwcm9qZWN0IGlmIHlvdSBmaW5kIGl0IHVzZWZ1bCEKCjxhIGhyZWY9Imh0dHBzOi8vc3Rhci1oaXN0b3J5LmNvbS8jZGFuaWVsZ3RheWxvci9odW1hJkRhdGUiPgoJPHBpY3R1cmU+CgkJPHNvdXJjZSBtZWRpYT0iKHByZWZlcnMtY29sb3Itc2NoZW1lOiBkYXJrKSIgc3Jjc2V0PSJodHRwczovL2FwaS5zdGFyLWhpc3RvcnkuY29tL3N2Zz9yZXBvcz1kYW5pZWxndGF5bG9yL2h1bWEmdHlwZT1EYXRlJnRoZW1lPWRhcmsiIC8+CgkJPHNvdXJjZSBtZWRpYT0iKHByZWZlcnMtY29sb3Itc2NoZW1lOiBsaWdodCkiIHNyY3NldD0iaHR0cHM6Ly9hcGkuc3Rhci1oaXN0b3J5LmNvbS9zdmc/cmVwb3M9ZGFuaWVsZ3RheWxvci9odW1hJnR5cGU9RGF0ZSIgLz4KCQk8aW1nIGFsdD0iU3RhciBIaXN0b3J5IENoYXJ0IiBzcmM9Imh0dHBzOi8vYXBpLnN0YXItaGlzdG9yeS5jb20vc3ZnP3JlcG9zPWRhbmllbGd0YXlsb3IvaHVtYSZ0eXBlPURhdGUiIC8+Cgk8L3BpY3R1cmU+CjwvYT4K + readmeEtag: '"35ae5e856addb27690f92de9dd7730abca2a69b4"' + readmeLastModified: Mon, 19 Aug 2024 15:47:00 GMT repositoryId: 245763170 description: Huma REST/HTTP API Framework for Golang with OpenAPI 3.1 created: '2020-03-08T06:19:51Z' - updated: '2024-08-19T03:20:53Z' + updated: '2024-08-19T15:47:04Z' language: Go archived: false - stars: 1790 + stars: 1794 watchers: 28 forks: 136 owner: danielgtaylor logo: https://avatars.githubusercontent.com/u/106826?v=4 license: MIT - repoEtag: '"854b45a665070135f9b45c97e271f705c66608fdc243b2a3d9e83efc2c199300"' - repoLastModified: Mon, 19 Aug 2024 03:20:53 GMT + repoEtag: '"8bb8531bdb3c68c4014324af5092aeedb8241c8c9f6cfde1da5379bc2f003760"' + repoLastModified: Mon, 19 Aug 2024 15:47:04 GMT foundInMaster: true category: - Auto Generators @@ -7214,17 +7214,17 @@ Merge multiple OpenAPI 3.0 (Swagger) files together via a library or CLI tool. created: '2021-05-23T02:23:17Z' - updated: '2024-08-04T22:37:33Z' + updated: '2024-08-19T14:53:08Z' language: TypeScript archived: false - stars: 126 + stars: 127 watchers: 4 forks: 25 owner: robertmassaioli logo: https://avatars.githubusercontent.com/u/149178?v=4 license: MIT - repoEtag: '"c1fcd5334f5709584be37c59144c8ed4aa78cd32d4a02051c6ca93182481f979"' - repoLastModified: Sun, 04 Aug 2024 22:37:33 GMT + repoEtag: '"1e09ba3fad617cc4a6af4d416d46f97985ba2300dc2c20a1998b65cd85f6e025"' + repoLastModified: Mon, 19 Aug 2024 14:53:08 GMT foundInMaster: true - source: https://openapi.tools/ name: OpenAPI::Modern @@ -7256,7 +7256,7 @@ owner: karenetheridge logo: https://avatars.githubusercontent.com/u/303051?v=4 license: NOASSERTION - repoEtag: '"ef1fe51d08ed929dd9e1f5057ae5c87192e9845366ff8ddb40377c2649f29110"' + repoEtag: '"382d6acb418f9b3294ac0fd0c909072ce38995bbeae366e8da9fbc85a2ff57f8"' repoLastModified: Sat, 27 Jul 2024 23:56:34 GMT foundInMaster: true - source: https://openapi.tools/ @@ -7282,7 +7282,7 @@ repositoryId: 755634410 description: Generate a type-safe OpenAPI client for your React app created: '2024-02-10T19:15:33Z' - updated: '2024-08-17T21:54:43Z' + updated: '2024-08-19T20:11:16Z' language: TypeScript archived: false stars: 23 @@ -7291,8 +7291,8 @@ owner: OpenAPI-Qraft logo: https://avatars.githubusercontent.com/u/159651230?v=4 license: MIT - repoEtag: '"da75f0e1dc640d6c41cb5e3a9de9dac3db18290ba6aba875236d896c2b4b2caa"' - repoLastModified: Sat, 17 Aug 2024 21:54:43 GMT + repoEtag: '"a034c777da72f84642360ac6a389da76417fe4d4ed52f5902998de9f0e436664"' + repoLastModified: Mon, 19 Aug 2024 20:11:16 GMT foundInMaster: true - source: https://openapi.tools/ name: Mojolicious::Plugin::OpenAPI::Modern @@ -7305,13 +7305,13 @@ id: 77699d6a49674ab7e178a8ff8bafb2b2 repositoryMetadata: base64Readme: >- - PXBvZAoKPWVuY29kaW5nIFVURi04Cgo9aGVhZDEgTkFNRQoKTW9qb2xpY2lvdXM6OlBsdWdpbjo6T3BlbkFQSTo6TW9kZXJuIC0gTW9qb2xpY2lvdXMgcGx1Z2luIHByb3ZpZGluZyBhY2Nlc3MgdG8gYW4gT3BlbkFQSSBkb2N1bWVudCBhbmQgcGFyc2VyCgo9aGVhZDEgVkVSU0lPTgoKdmVyc2lvbiAwLjAxMAoKPWhlYWQxIFNZTk9QU0lTCgogICRhcHAtPmNvbmZpZyh7CiAgICBvcGVuYXBpID0+IHsKICAgICAgZG9jdW1lbnRfZmlsZW5hbWUgPT4gJ2RhdGEvb3BlbmFwaS55YW1sJywKICAgICAgYWZ0ZXJfcmVzcG9uc2UgPT4gc3ViICgkYykgeyAuLi4gfSwKICAgIH0sCiAgICAuLi4KICB9KTsKCiAgJGFwcC0+cGx1Z2luKCdPcGVuQVBJOjpNb2Rlcm4nLCAkYXBwLT5jb25maWctPntvcGVuYXBpfSk7CgogICMgaW4gYSBjb250cm9sbGVyLi4uCiAgbXkgJHJlc3VsdCA9ICRjLT5vcGVuYXBpLT52YWxpZGF0ZV9yZXF1ZXN0KCRjLT5yZXEpOwoKPWhlYWQxIERFU0NSSVBUSU9OCgpUaGlzIEw8TW9qb2xpY2lvdXM+IHBsdWdpbiBtYWtlcyBhbiBMPE9wZW5BUEk6Ok1vZGVybj4gb2JqZWN0IGF2YWlsYWJsZSB0byB0aGUgYXBwbGljYXRpb24uCgpUaGVyZSBhcmUgbWFueSBmZWF0dXJlcyB0byBjb21lLgoKPWZvciBzdG9wd29yZHMgb3BlbmFwaSBvcGVyYXRpb25JZCBzdWJyZWYKCj1oZWFkMSBDT05GSUdVUkFUSU9OIE9QVElPTlMKCj1oZWFkMiBzY2hlbWEKClRoZSBsaXRlcmFsLCB1bmJsZXNzZWQgUGVybCBkYXRhIHN0cnVjdHVyZSBjb250YWluaW5nIHRoZSBPcGVuQVBJIGRvY3VtZW50LiBTZWUKTDxPcGVuQVBJOjpNb2Rlcm4vb3BlbmFwaV9zY2hlbWE+OyBwYXNzZWQgdG8gdGhlIEw8T3BlbkFQSTo6TW9kZXJuPiBjb25zdHJ1Y3Rvci4KT25seSB1c2VkIGlmIEw8L29wZW5hcGlfb2JqPiBpcyBub3QgcHJvdmlkZWQuCgo9aGVhZDIgZG9jdW1lbnRfZmlsZW5hbWUKCkEgZmlsZW5hbWUgaW5kaWNhdGluZyBmcm9tIHdoZXJlIHRvIGxvYWQgdGhlIE9wZW5BUEkgZG9jdW1lbnQuIFN1cHBvcnRzIFlBTUwgYW5kIGpzb24gZmlsZSBmb3JtYXRzLgpPbmx5IHVzZWQgaWYgTDwvc2NoZW1hPiBpcyBub3QgcHJvdmlkZWQ7IGFsc28gcGFzc2VkIHRvIHRoZSBMPE9wZW5BUEk6Ok1vZGVybj4gY29uc3RydWN0b3IgYXMKQzxvcGVuYXBpX3VyaT4uIE9ubHkgdXNlZCBpZiBMPC9vcGVuYXBpX29iaj4gaXMgbm90IHByb3ZpZGVkLgoKPWhlYWQyIG9wZW5hcGlfb2JqCgpBbiBMPE9wZW5BUEk6Ok1vZGVybj4gb2JqZWN0IHRvIHVzZQoKPWhlYWQyIGFmdGVyX3Jlc3BvbnNlCgpBIHN1YnJlZiB3aGljaCBydW5zIGFmdGVyIHRoZSByZXNwb25zZSBoYXMgYmVlbiBmaW5hbGl6ZWQsIHRvIGFsbG93IHlvdSB0byBwZXJmb3JtIHZhbGlkYXRpb24gb24gaXQuCllvdSBCPG11c3Qgbm90PiBtdXRhdGUgdGhlIHJlc3BvbnNlIGhlcmUsIG5vciBzd2FwIGl0IG91dCBmb3IgYSBkaWZmZXJlbnQgcmVzcG9uc2UsIHNvIHVzZSB0aGlzIG9ubHkKZm9yIHRlbGVtZXRyeSBhbmQgbG9nZ2luZy4KCiAgbXkgJGFmdGVyX3Jlc3BvbnNlID0gc3ViICgkYykgewogICAgbXkgJHJlc3VsdCA9ICRjLT52YWxpZGF0ZV9yZXNwb25zZTsKICAgIGlmICgkcmVzdWx0KSB7CiAgICAgICRjLT5sb2ctPmRlYnVnKCdyZXNwb25zZSBpcyB2YWxpZCcpOwogICAgfQogICAgZWxzZSB7CiAgICAgICMgc2VlIEpTT046OlNjaGVtYTo6TW9kZXJuOjpSZXN1bHQgZm9yIGRpZmZlcmVudCBvdXRwdXQgZm9ybWF0cwogICAgICAkYy0+bG9nLT5lcnJvcigicmVzcG9uc2UgaXMgaW52YWxpZDpcbiIsICRyZXN1bHQpOwogICAgfQogIH07Cgo9aGVhZDEgTUVUSE9EUwoKPWhlYWQyIHJlZ2lzdGVyCgpJbnN0YW50aWF0ZXMgYW4gTDxPcGVuQVBJOjpNb2Rlcm4+IG9iamVjdCBhbmQgcHJvdmlkZXMgYW4gYWNjZXNzb3IgdG8gaXQuCgo9aGVhZDEgSEVMUEVSUwoKVGhlc2UgbWV0aG9kcyBhcmUgbWFkZSBhdmFpbGFibGUgb24gdGhlIEM8JGM+IG9iamVjdCAodGhlIGludm9jYW50IG9mIGFsbCBjb250cm9sbGVyIG1ldGhvZHMsCmFuZCB0aGVyZWZvcmUgb3RoZXIgaGVscGVycykuCgo9aGVhZDIgb3BlbmFwaQoKVGhlIEw8T3BlbkFQSTo6TW9kZXJuPiBvYmplY3Q7IGl0IGhvbGRzIHlvdXIgT3BlbkFQSSBzcGVjaWZpY2F0aW9uIGFuZCBpcyByZXVzZWQgYmV0d2VlbiByZXF1ZXN0cy4KCj1oZWFkMiB2YWxpZGF0ZV9yZXF1ZXN0CgogIG15ICRyZXN1bHQgPSAkYy0+b3BlbmFwaS0+dmFsaWRhdGVfcmVxdWVzdDsKClBhc3NlcyBDPDwgJGMtPnJlcSA+PiB0byBMPE9wZW5BUEk6Ok1vZGVybi92YWxpZGF0ZV9yZXF1ZXN0PiBhbmQgcmV0dXJucyBhCkw8SlNPTjo6U2NoZW1hOjpNb2Rlcm46OlJlc3VsdD4gb2JqZWN0LgoKTm90ZSB0aGF0IHRoZSBtYXRjaGluZyBMPE1vam86OlJvdXRlczo6Um91dGU+IG9iamVjdCBmb3IgdGhpcyByZXF1ZXN0IGlzIEk8bm90PiB1c2VkIHRvIGZpbmQgdGhlCk9wZW5BUEkgcGF0aC1pdGVtIHRoYXQgY29ycmVzcG9uZHMgdG8gdGhpcyByZXF1ZXN0OiBvbmx5IGluZm9ybWF0aW9uIGluIHRoZSByZXF1ZXN0IFVSSSBpdHNlbGYgaXMKdXNlZCAoYWx0aG91Z2ggc29tZSBpbmZvcm1hdGlvbiBpbiB0aGUgcm91dGUgbWF5IGJlIHVzZWQgaW4gZnV0dXJlIGZlYXR1cmVzKS4KCllvdSBtaWdodCB3YW50IHRvIGRlZmluZSBhbiBDPHVuZGVyPiByb3V0ZSBhY3Rpb24gdGhhdCBjYWxscyBDPHZhbGlkYXRlX3JlcXVlc3Q+IGFuZCBzaG9ydC1jaXJjdWl0cwp3aXRoIGFuIEhUVFAgNDAwIHJlc3BvbnNlIG9uIHZhbGlkYXRpb24gZmFpbHVyZS4KCj1oZWFkMiB2YWxpZGF0ZV9yZXNwb25zZQoKICBteSAkcmVzdWx0ID0gJGMtPm9wZW5hcGktPnZhbGlkYXRlX3Jlc3BvbnNlOwoKUGFzc2VzIEM8PCAkYy0+cmVzID4+IGFuZCBDPDwgJGMtPnJlcSA+PiB0byBMPE9wZW5BUEk6Ok1vZGVybi92YWxpZGF0ZV9yZXNwb25zZT4gYW5kIHJldHVybnMgYQpMPEpTT046OlNjaGVtYTo6TW9kZXJuOjpSZXN1bHQ+IG9iamVjdC4KCkFzIHRoaXMgY2FuIG9ubHkgYmUgY2FsbGVkIGluIHRoZSBwYXJ0cyBvZiB0aGUgZGlzcGF0Y2ggZmxvdyB3aGVyZSB0aGUgcmVzcG9uc2UgaGFzIGFscmVhZHkgYmVlbgpyZW5kZXJlZCBhbmQgZmluYWxpemVkLCBhIGhvb2sgaGFzIGJlZW4gc2V0IHVwIGZvciB5b3U7IHlvdSBjYW4gYWNjZXNzIGl0IGJ5IHByb3ZpZGluZyBhIHN1YnJlZiB0byB0aGUKTDwvYWZ0ZXJfcmVzcG9uc2U+IGNvbmZpZ3VyYXRpb24gdmFsdWU6CgogICRhcHAtPmNvbmZpZy0+e29wZW5hcGl9e2FmdGVyX3Jlc3BvbnNlfSAvLz0gc3ViICgkYykgewogICAgbXkgJHJlc3VsdCA9ICRjLT52YWxpZGF0ZV9yZXNwb25zZTsKICAgICMgLi4uIGRvIHNvbWV0aGluZyB3aXRoIHRoZSB2YWxpZGF0aW9uIHJlc3VsdAogIH07CgpOb3RlIHRoYXQgdGhlIG1hdGNoaW5nIEw8TW9qbzo6Um91dGVzOjpSb3V0ZT4gb2JqZWN0IGZvciB0aGlzIHJlcXVlc3QgaXMgSTxub3Q+IHVzZWQgdG8gZmluZCB0aGUKT3BlbkFQSSBwYXRoLWl0ZW0gdGhhdCBjb3JyZXNwb25kcyB0byB0aGlzIHJlcXVlc3QgYW5kIHJlc3BvbnNlOiBvbmx5IGluZm9ybWF0aW9uIGluIHRoZSByZXF1ZXN0IFVSSQppdHNlbGYgaXMgdXNlZCAoYWx0aG91Z2ggc29tZSBpbmZvcm1hdGlvbiBpbiB0aGUgcm91dGUgbWF5IGJlIHVzZWQgaW4gZnV0dXJlIGZlYXR1cmVzKS4KCj1oZWFkMSBTVEFTSCBWQUxVRVMKClRoaXMgcGx1Z2luIHN0b3JlcyBhbGwgaXRzIGRhdGEgdW5kZXIgdGhlIEM8b3BlbmFwaT4gaGFzaHJlZiwgZS5nLjoKCiAgbXkgJG9wZXJhdGlvbl9pZCA9ICRjLT5zdGFzaC0+e29wZW5hcGl9e29wZXJhdGlvbl9pZH07CgpLZXlzIHN0YXJ0aW5nIHdpdGggdW5kZXJzY29yZSBhcmUgZm9yIEk8aW50ZXJuYWwgdXNlIG9ubHk+IGFuZCBzaG91bGQgbm90IGJlIHJlbGllZCB1cG9uIHRvIGJlaGF2ZQpjb25zaXN0ZW50bHkgYWNyb3NzIHJlbGVhc2UgdmVyc2lvbnMuIFZhbHVlcyB0aGF0IG1heSBiZSB1c2VkIGJ5IGNvbnRyb2xsZXJzIGFuZCB0ZW1wbGF0ZXMgYXJlOgoKPW92ZXIgNAoKPWl0ZW0gKgoKQzxwYXRoX3RlbXBsYXRlPjogU2V0IGJ5IHRoZSBmaXJzdCBjYWxsIHRvIEw8L3ZhbGlkYXRlX3JlcXVlc3Q+IG9yIEw8L3ZhbGlkYXRlX3Jlc3BvbnNlPi4gQSBzdHJpbmcgcmVwcmVzZW50aW5nIHRoZSByZXF1ZXN0IFVSSSwgd2l0aCBwbGFjZWhvbGRlcnMgaW4gYnJhY2VzIChlLmcuIEM8L3BldHMve3BldElkfT4pOyBzZWUgTDxodHRwczovL3NwZWMub3BlbmFwaXMub3JnL29hcy92My4xLjAjcGF0aHMtb2JqZWN0Pi4KCj1pdGVtICoKCkM8cGF0aF9jYXB0dXJlcz46IFNldCBieSB0aGUgZmlyc3QgY2FsbCB0byBMPC92YWxpZGF0ZV9yZXF1ZXN0PiBvciBMPC92YWxpZGF0ZV9yZXNwb25zZT4uIEEgaGFzaHJlZiBtYXBwaW5nIHBsYWNlaG9sZGVycyBpbiB0aGUgcGF0aCB0byB0aGVpciBhY3R1YWwgdmFsdWVzIGluIHRoZSByZXF1ZXN0IFVSSS4KCj1pdGVtICoKCkM8b3BlcmF0aW9uX2lkPjogU2V0IGJ5IHRoZSBmaXJzdCBjYWxsIHRvIEw8L3ZhbGlkYXRlX3JlcXVlc3Q+IG9yIEw8L3ZhbGlkYXRlX3Jlc3BvbnNlPi4gQ29udGFpbnMgdGhlIGNvcnJlc3BvbmRpbmcgTDxvcGVyYXRpb25JZHxodHRwczovL3N3YWdnZXIuaW8vZG9jcy9zcGVjaWZpY2F0aW9uL3BhdGhzLWFuZC1vcGVyYXRpb25zLyNvcGVyYXRpb25pZD4gb2YgdGhlIGN1cnJlbnQgZW5kcG9pbnQuCgo9aXRlbSAqCgpDPG1ldGhvZD46IFNldCBieSB0aGUgZmlyc3QgY2FsbCB0byBMPC92YWxpZGF0ZV9yZXF1ZXN0PiBvciBMPC92YWxpZGF0ZV9yZXNwb25zZT4uIFRoZSBIVFRQIG1ldGhvZCB1c2VkIGJ5IHRoZSByZXF1ZXN0LCBsb3dlci1jYXNlZC4KCj1iYWNrCgo9aGVhZDEgU0VFIEFMU08KCj1vdmVyIDQKCj1pdGVtICoKCkw8T3BlbkFQSTo6TW9kZXJuPgoKPWl0ZW0gKgoKTDxUZXN0OjpNb2pvOjpSb2xlOjpPcGVuQVBJOjpNb2Rlcm4+Cgo9aXRlbSAqCgpMPEpTT046OlNjaGVtYTo6TW9kZXJuOjpEb2N1bWVudDo6T3BlbkFQST4KCj1pdGVtICoKCkw8SlNPTjo6U2NoZW1hOjpNb2Rlcm4+Cgo9aXRlbSAqCgpMPGh0dHBzOi8vanNvbi1zY2hlbWEub3JnPgoKPWl0ZW0gKgoKTDxodHRwczovL3d3dy5vcGVuYXBpcy5vcmcvPgoKPWl0ZW0gKgoKTDxodHRwczovL2xlYXJuLm9wZW5hcGlzLm9yZy8+Cgo9aXRlbSAqCgpMPGh0dHBzOi8vc3BlYy5vcGVuYXBpcy5vcmcvb2FzL3YzLjEuMD4KCj1iYWNrCgo9aGVhZDEgU1VQUE9SVAoKQnVncyBtYXkgYmUgc3VibWl0dGVkIHRocm91Z2ggTDxodHRwczovL2dpdGh1Yi5jb20va2FyZW5ldGhlcmlkZ2UvTW9qb2xpY2lvdXMtUGx1Z2luLU9wZW5BUEktTW9kZXJuL2lzc3Vlcz4uCgpJIGFtIGFsc28gdXN1YWxseSBhY3RpdmUgb24gaXJjLCBhcyAnZXRoZXInIGF0IEM8aXJjLnBlcmwub3JnPiBhbmQgQzxpcmMubGliZXJhLmNoYXQ+LgoKWW91IGNhbiBhbHNvIGZpbmQgbWUgb24gdGhlIEw8SlNPTiBTY2hlbWEgU2xhY2sgc2VydmVyfGh0dHBzOi8vanNvbi1zY2hlbWEuc2xhY2suY29tPiBhbmQKTDxPcGVuQVBJIFNsYWNrIHNlcnZlcnxodHRwczovL29wZW4tYXBpLnNsYWNrLmNvbT4sIHdoaWNoIGFyZSBhbHNvIGdyZWF0IHJlc291cmNlcyBmb3IgZmluZGluZyBoZWxwLgoKPWhlYWQxIEFVVEhPUgoKS2FyZW4gRXRoZXJpZGdlIDxldGhlckBjcGFuLm9yZz4KCj1oZWFkMSBDT1BZUklHSFQgQU5EIExJQ0VOQ0UKClRoaXMgc29mdHdhcmUgaXMgY29weXJpZ2h0IChjKSAyMDIxIGJ5IEthcmVuIEV0aGVyaWRnZS4KClRoaXMgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeSBpdCB1bmRlcgp0aGUgc2FtZSB0ZXJtcyBhcyB0aGUgUGVybCA1IHByb2dyYW1taW5nIGxhbmd1YWdlIHN5c3RlbSBpdHNlbGYuCgo9Y3V0Cg== - readmeEtag: '"8e406dff56ab081cdfd50b09c28bf2c4c72cbeed"' - readmeLastModified: Thu, 09 May 2024 16:28:23 GMT + PXBvZAoKPWVuY29kaW5nIFVURi04Cgo9aGVhZDEgTkFNRQoKTW9qb2xpY2lvdXM6OlBsdWdpbjo6T3BlbkFQSTo6TW9kZXJuIC0gTW9qb2xpY2lvdXMgcGx1Z2luIHByb3ZpZGluZyBhY2Nlc3MgdG8gYW4gT3BlbkFQSSBkb2N1bWVudCBhbmQgcGFyc2VyCgo9aGVhZDEgVkVSU0lPTgoKdmVyc2lvbiAwLjAxMQoKPWhlYWQxIFNZTk9QU0lTCgogICRhcHAtPmNvbmZpZyh7CiAgICBvcGVuYXBpID0+IHsKICAgICAgZG9jdW1lbnRfZmlsZW5hbWUgPT4gJ2RhdGEvb3BlbmFwaS55YW1sJywKICAgICAgYWZ0ZXJfcmVzcG9uc2UgPT4gc3ViICgkYykgeyAuLi4gfSwKICAgIH0sCiAgICAuLi4KICB9KTsKCiAgJGFwcC0+cGx1Z2luKCdPcGVuQVBJOjpNb2Rlcm4nLCAkYXBwLT5jb25maWctPntvcGVuYXBpfSk7CgogICMgaW4gYSBjb250cm9sbGVyLi4uCiAgbXkgJHJlc3VsdCA9ICRjLT5vcGVuYXBpLT52YWxpZGF0ZV9yZXF1ZXN0KCRjLT5yZXEpOwoKPWhlYWQxIERFU0NSSVBUSU9OCgpUaGlzIEw8TW9qb2xpY2lvdXM+IHBsdWdpbiBtYWtlcyBhbiBMPE9wZW5BUEk6Ok1vZGVybj4gb2JqZWN0IGF2YWlsYWJsZSB0byB0aGUgYXBwbGljYXRpb24uCgpUaGVyZSBhcmUgbWFueSBmZWF0dXJlcyB0byBjb21lLgoKPWZvciBzdG9wd29yZHMgb3BlbmFwaSBvcGVyYXRpb25JZCBzdWJyZWYKCj1oZWFkMSBDT05GSUdVUkFUSU9OIE9QVElPTlMKCj1oZWFkMiBzY2hlbWEKClRoZSBsaXRlcmFsLCB1bmJsZXNzZWQgUGVybCBkYXRhIHN0cnVjdHVyZSBjb250YWluaW5nIHRoZSBPcGVuQVBJIGRvY3VtZW50LiBTZWUKTDxPcGVuQVBJOjpNb2Rlcm4vb3BlbmFwaV9zY2hlbWE+OyBwYXNzZWQgdG8gdGhlIEw8T3BlbkFQSTo6TW9kZXJuPiBjb25zdHJ1Y3Rvci4KT25seSB1c2VkIGlmIEw8L29wZW5hcGlfb2JqPiBpcyBub3QgcHJvdmlkZWQuCgo9aGVhZDIgZG9jdW1lbnRfZmlsZW5hbWUKCkEgZmlsZW5hbWUgaW5kaWNhdGluZyBmcm9tIHdoZXJlIHRvIGxvYWQgdGhlIE9wZW5BUEkgZG9jdW1lbnQuIFN1cHBvcnRzIFlBTUwgYW5kIGpzb24gZmlsZSBmb3JtYXRzLgpPbmx5IHVzZWQgaWYgTDwvc2NoZW1hPiBpcyBub3QgcHJvdmlkZWQ7IGFsc28gcGFzc2VkIHRvIHRoZSBMPE9wZW5BUEk6Ok1vZGVybj4gY29uc3RydWN0b3IgYXMKQzxvcGVuYXBpX3VyaT4uIE9ubHkgdXNlZCBpZiBMPC9vcGVuYXBpX29iaj4gaXMgbm90IHByb3ZpZGVkLgoKPWhlYWQyIG9wZW5hcGlfb2JqCgpBbiBMPE9wZW5BUEk6Ok1vZGVybj4gb2JqZWN0IHRvIHVzZQoKPWhlYWQyIGFmdGVyX3Jlc3BvbnNlCgpBIHN1YnJlZiB3aGljaCBydW5zIGFmdGVyIHRoZSByZXNwb25zZSBoYXMgYmVlbiBmaW5hbGl6ZWQsIHRvIGFsbG93IHlvdSB0byBwZXJmb3JtIHZhbGlkYXRpb24gb24gaXQuCllvdSBCPG11c3Qgbm90PiBtdXRhdGUgdGhlIHJlc3BvbnNlIGhlcmUsIG5vciBzd2FwIGl0IG91dCBmb3IgYSBkaWZmZXJlbnQgcmVzcG9uc2UsIHNvIHVzZSB0aGlzIG9ubHkKZm9yIHRlbGVtZXRyeSBhbmQgbG9nZ2luZy4KCiAgbXkgJGFmdGVyX3Jlc3BvbnNlID0gc3ViICgkYykgewogICAgbXkgJHJlc3VsdCA9ICRjLT52YWxpZGF0ZV9yZXNwb25zZTsKICAgIGlmICgkcmVzdWx0KSB7CiAgICAgICRjLT5sb2ctPmRlYnVnKCdyZXNwb25zZSBpcyB2YWxpZCcpOwogICAgfQogICAgZWxzZSB7CiAgICAgICMgc2VlIEpTT046OlNjaGVtYTo6TW9kZXJuOjpSZXN1bHQgZm9yIGRpZmZlcmVudCBvdXRwdXQgZm9ybWF0cwogICAgICAkYy0+bG9nLT5lcnJvcigicmVzcG9uc2UgaXMgaW52YWxpZDpcbiIsICRyZXN1bHQpOwogICAgfQogIH07Cgo9aGVhZDEgTUVUSE9EUwoKPWhlYWQyIHJlZ2lzdGVyCgpJbnN0YW50aWF0ZXMgYW4gTDxPcGVuQVBJOjpNb2Rlcm4+IG9iamVjdCBhbmQgcHJvdmlkZXMgYW4gYWNjZXNzb3IgdG8gaXQuCgo9aGVhZDEgSEVMUEVSUwoKVGhlc2UgbWV0aG9kcyBhcmUgbWFkZSBhdmFpbGFibGUgb24gdGhlIEM8JGM+IG9iamVjdCAodGhlIGludm9jYW50IG9mIGFsbCBjb250cm9sbGVyIG1ldGhvZHMsCmFuZCB0aGVyZWZvcmUgb3RoZXIgaGVscGVycykuCgo9aGVhZDIgb3BlbmFwaQoKVGhlIEw8T3BlbkFQSTo6TW9kZXJuPiBvYmplY3Q7IGl0IGhvbGRzIHlvdXIgT3BlbkFQSSBzcGVjaWZpY2F0aW9uIGFuZCBpcyByZXVzZWQgYmV0d2VlbiByZXF1ZXN0cy4KCj1oZWFkMiB2YWxpZGF0ZV9yZXF1ZXN0CgogIG15ICRyZXN1bHQgPSAkYy0+b3BlbmFwaS0+dmFsaWRhdGVfcmVxdWVzdDsKClBhc3NlcyBDPDwgJGMtPnJlcSA+PiB0byBMPE9wZW5BUEk6Ok1vZGVybi92YWxpZGF0ZV9yZXF1ZXN0PiBhbmQgcmV0dXJucyBhCkw8SlNPTjo6U2NoZW1hOjpNb2Rlcm46OlJlc3VsdD4gb2JqZWN0LgoKTm90ZSB0aGF0IHRoZSBtYXRjaGluZyBMPE1vam86OlJvdXRlczo6Um91dGU+IG9iamVjdCBmb3IgdGhpcyByZXF1ZXN0IGlzIEk8bm90PiB1c2VkIHRvIGZpbmQgdGhlCk9wZW5BUEkgcGF0aC1pdGVtIHRoYXQgY29ycmVzcG9uZHMgdG8gdGhpcyByZXF1ZXN0OiBvbmx5IGluZm9ybWF0aW9uIGluIHRoZSByZXF1ZXN0IFVSSSBpdHNlbGYgaXMKdXNlZCAoYWx0aG91Z2ggc29tZSBpbmZvcm1hdGlvbiBpbiB0aGUgcm91dGUgbWF5IGJlIHVzZWQgaW4gZnV0dXJlIGZlYXR1cmVzKS4KCllvdSBtaWdodCB3YW50IHRvIGRlZmluZSBhbiBDPHVuZGVyPiByb3V0ZSBhY3Rpb24gdGhhdCBjYWxscyBDPHZhbGlkYXRlX3JlcXVlc3Q+IGFuZCBzaG9ydC1jaXJjdWl0cwp3aXRoIGFuIEhUVFAgNDAwIHJlc3BvbnNlIG9uIHZhbGlkYXRpb24gZmFpbHVyZS4KCj1oZWFkMiB2YWxpZGF0ZV9yZXNwb25zZQoKICBteSAkcmVzdWx0ID0gJGMtPm9wZW5hcGktPnZhbGlkYXRlX3Jlc3BvbnNlOwoKUGFzc2VzIEM8PCAkYy0+cmVzID4+IGFuZCBDPDwgJGMtPnJlcSA+PiB0byBMPE9wZW5BUEk6Ok1vZGVybi92YWxpZGF0ZV9yZXNwb25zZT4gYW5kIHJldHVybnMgYQpMPEpTT046OlNjaGVtYTo6TW9kZXJuOjpSZXN1bHQ+IG9iamVjdC4KCkFzIHRoaXMgY2FuIG9ubHkgYmUgY2FsbGVkIGluIHRoZSBwYXJ0cyBvZiB0aGUgZGlzcGF0Y2ggZmxvdyB3aGVyZSB0aGUgcmVzcG9uc2UgaGFzIGFscmVhZHkgYmVlbgpyZW5kZXJlZCBhbmQgZmluYWxpemVkLCBhIGhvb2sgaGFzIGJlZW4gc2V0IHVwIGZvciB5b3U7IHlvdSBjYW4gYWNjZXNzIGl0IGJ5IHByb3ZpZGluZyBhIHN1YnJlZiB0byB0aGUKTDwvYWZ0ZXJfcmVzcG9uc2U+IGNvbmZpZ3VyYXRpb24gdmFsdWU6CgogICRhcHAtPmNvbmZpZy0+e29wZW5hcGl9e2FmdGVyX3Jlc3BvbnNlfSAvLz0gc3ViICgkYykgewogICAgbXkgJHJlc3VsdCA9ICRjLT52YWxpZGF0ZV9yZXNwb25zZTsKICAgICMgLi4uIGRvIHNvbWV0aGluZyB3aXRoIHRoZSB2YWxpZGF0aW9uIHJlc3VsdAogIH07CgpOb3RlIHRoYXQgdGhlIG1hdGNoaW5nIEw8TW9qbzo6Um91dGVzOjpSb3V0ZT4gb2JqZWN0IGZvciB0aGlzIHJlcXVlc3QgaXMgSTxub3Q+IHVzZWQgdG8gZmluZCB0aGUKT3BlbkFQSSBwYXRoLWl0ZW0gdGhhdCBjb3JyZXNwb25kcyB0byB0aGlzIHJlcXVlc3QgYW5kIHJlc3BvbnNlOiBvbmx5IGluZm9ybWF0aW9uIGluIHRoZSByZXF1ZXN0IFVSSQppdHNlbGYgaXMgdXNlZCAoYWx0aG91Z2ggc29tZSBpbmZvcm1hdGlvbiBpbiB0aGUgcm91dGUgbWF5IGJlIHVzZWQgaW4gZnV0dXJlIGZlYXR1cmVzKS4KCj1oZWFkMSBTVEFTSCBWQUxVRVMKClRoaXMgcGx1Z2luIHN0b3JlcyBhbGwgaXRzIGRhdGEgdW5kZXIgdGhlIEM8b3BlbmFwaT4gaGFzaHJlZiwgZS5nLjoKCiAgbXkgJG9wZXJhdGlvbl9pZCA9ICRjLT5zdGFzaC0+e29wZW5hcGl9e29wZXJhdGlvbl9pZH07CgpLZXlzIHN0YXJ0aW5nIHdpdGggdW5kZXJzY29yZSBhcmUgZm9yIEk8aW50ZXJuYWwgdXNlIG9ubHk+IGFuZCBzaG91bGQgbm90IGJlIHJlbGllZCB1cG9uIHRvIGJlaGF2ZQpjb25zaXN0ZW50bHkgYWNyb3NzIHJlbGVhc2UgdmVyc2lvbnMuIFZhbHVlcyB0aGF0IG1heSBiZSB1c2VkIGJ5IGNvbnRyb2xsZXJzIGFuZCB0ZW1wbGF0ZXMgYXJlOgoKPW92ZXIgNAoKPWl0ZW0gKgoKQzxwYXRoX3RlbXBsYXRlPjogU2V0IGJ5IHRoZSBmaXJzdCBjYWxsIHRvIEw8L3ZhbGlkYXRlX3JlcXVlc3Q+IG9yIEw8L3ZhbGlkYXRlX3Jlc3BvbnNlPi4gQSBzdHJpbmcgcmVwcmVzZW50aW5nIHRoZSByZXF1ZXN0IFVSSSwgd2l0aCBwbGFjZWhvbGRlcnMgaW4gYnJhY2VzIChlLmcuIEM8L3BldHMve3BldElkfT4pOyBzZWUgTDxodHRwczovL3NwZWMub3BlbmFwaXMub3JnL29hcy92My4xLjAjcGF0aHMtb2JqZWN0Pi4KCj1pdGVtICoKCkM8cGF0aF9jYXB0dXJlcz46IFNldCBieSB0aGUgZmlyc3QgY2FsbCB0byBMPC92YWxpZGF0ZV9yZXF1ZXN0PiBvciBMPC92YWxpZGF0ZV9yZXNwb25zZT4uIEEgaGFzaHJlZiBtYXBwaW5nIHBsYWNlaG9sZGVycyBpbiB0aGUgcGF0aCB0byB0aGVpciBhY3R1YWwgdmFsdWVzIGluIHRoZSByZXF1ZXN0IFVSSS4KCj1pdGVtICoKCkM8b3BlcmF0aW9uX2lkPjogU2V0IGJ5IHRoZSBmaXJzdCBjYWxsIHRvIEw8L3ZhbGlkYXRlX3JlcXVlc3Q+IG9yIEw8L3ZhbGlkYXRlX3Jlc3BvbnNlPi4gQ29udGFpbnMgdGhlIGNvcnJlc3BvbmRpbmcgTDxvcGVyYXRpb25JZHxodHRwczovL3N3YWdnZXIuaW8vZG9jcy9zcGVjaWZpY2F0aW9uL3BhdGhzLWFuZC1vcGVyYXRpb25zLyNvcGVyYXRpb25pZD4gb2YgdGhlIGN1cnJlbnQgZW5kcG9pbnQuCgo9aXRlbSAqCgpDPG1ldGhvZD46IFNldCBieSB0aGUgZmlyc3QgY2FsbCB0byBMPC92YWxpZGF0ZV9yZXF1ZXN0PiBvciBMPC92YWxpZGF0ZV9yZXNwb25zZT4uIFRoZSBIVFRQIG1ldGhvZCB1c2VkIGJ5IHRoZSByZXF1ZXN0LCBsb3dlci1jYXNlZC4KCj1iYWNrCgo9aGVhZDEgU0VFIEFMU08KCj1vdmVyIDQKCj1pdGVtICoKCkw8T3BlbkFQSTo6TW9kZXJuPgoKPWl0ZW0gKgoKTDxUZXN0OjpNb2pvOjpSb2xlOjpPcGVuQVBJOjpNb2Rlcm4+Cgo9aXRlbSAqCgpMPEpTT046OlNjaGVtYTo6TW9kZXJuOjpEb2N1bWVudDo6T3BlbkFQST4KCj1pdGVtICoKCkw8SlNPTjo6U2NoZW1hOjpNb2Rlcm4+Cgo9aXRlbSAqCgpMPGh0dHBzOi8vanNvbi1zY2hlbWEub3JnPgoKPWl0ZW0gKgoKTDxodHRwczovL3d3dy5vcGVuYXBpcy5vcmcvPgoKPWl0ZW0gKgoKTDxodHRwczovL2xlYXJuLm9wZW5hcGlzLm9yZy8+Cgo9aXRlbSAqCgpMPGh0dHBzOi8vc3BlYy5vcGVuYXBpcy5vcmcvb2FzL3YzLjEuMD4KCj1iYWNrCgo9aGVhZDEgU1VQUE9SVAoKQnVncyBtYXkgYmUgc3VibWl0dGVkIHRocm91Z2ggTDxodHRwczovL2dpdGh1Yi5jb20va2FyZW5ldGhlcmlkZ2UvTW9qb2xpY2lvdXMtUGx1Z2luLU9wZW5BUEktTW9kZXJuL2lzc3Vlcz4uCgpJIGFtIGFsc28gdXN1YWxseSBhY3RpdmUgb24gaXJjLCBhcyAnZXRoZXInIGF0IEM8aXJjLnBlcmwub3JnPiBhbmQgQzxpcmMubGliZXJhLmNoYXQ+LgoKWW91IGNhbiBhbHNvIGZpbmQgbWUgb24gdGhlIEw8SlNPTiBTY2hlbWEgU2xhY2sgc2VydmVyfGh0dHBzOi8vanNvbi1zY2hlbWEuc2xhY2suY29tPiBhbmQKTDxPcGVuQVBJIFNsYWNrIHNlcnZlcnxodHRwczovL29wZW4tYXBpLnNsYWNrLmNvbT4sIHdoaWNoIGFyZSBhbHNvIGdyZWF0IHJlc291cmNlcyBmb3IgZmluZGluZyBoZWxwLgoKPWhlYWQxIEFVVEhPUgoKS2FyZW4gRXRoZXJpZGdlIDxldGhlckBjcGFuLm9yZz4KCj1oZWFkMSBDT1BZUklHSFQgQU5EIExJQ0VOQ0UKClRoaXMgc29mdHdhcmUgaXMgY29weXJpZ2h0IChjKSAyMDIxIGJ5IEthcmVuIEV0aGVyaWRnZS4KClRoaXMgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeSBpdCB1bmRlcgp0aGUgc2FtZSB0ZXJtcyBhcyB0aGUgUGVybCA1IHByb2dyYW1taW5nIGxhbmd1YWdlIHN5c3RlbSBpdHNlbGYuCgo9Y3V0Cg== + readmeEtag: '"d076becc6227db713f33c79f27e1a02f150eec32"' + readmeLastModified: Mon, 19 Aug 2024 17:47:48 GMT repositoryId: 436109317 description: Mojolicious plugin providing access to an OpenAPI document and parser created: '2021-12-08T03:55:07Z' - updated: '2024-05-09T16:28:28Z' + updated: '2024-08-19T17:47:53Z' language: Perl archived: false stars: 3 @@ -7320,8 +7320,8 @@ owner: karenetheridge logo: https://avatars.githubusercontent.com/u/303051?v=4 license: NOASSERTION - repoEtag: '"09fc3ec9119cc1c0d6b3ffc35533085a47033ebc6cdf8e07e6c5cbca7b18f05b"' - repoLastModified: Thu, 09 May 2024 16:28:28 GMT + repoEtag: '"9f0343cb18ba0e9d17e614db4464e93ce61b6e5d80be251b4ff397ee0a3d7e1c"' + repoLastModified: Mon, 19 Aug 2024 17:47:53 GMT foundInMaster: true - source: - https://openapi.tools/ @@ -7380,17 +7380,17 @@ FastAPI framework, high performance, easy to learn, fast to code, ready for production created: '2018-12-08T08:21:47Z' - updated: '2024-08-19T02:59:59Z' + updated: '2024-08-20T03:25:40Z' language: Python archived: false - stars: 74736 + stars: 74774 watchers: 666 - forks: 6290 + forks: 6295 owner: fastapi logo: https://avatars.githubusercontent.com/u/156354296?v=4 license: MIT - repoEtag: '"a1fec871147dc22717fe7d04d4017b91386b9bc6c8ca1b5a3278443c49e75900"' - repoLastModified: Mon, 19 Aug 2024 02:59:59 GMT + repoEtag: '"643a6910ee1aeda16c38bedccd4c6a8af05645a5625dbea7cf3f64f1e9cd16a5"' + repoLastModified: Tue, 20 Aug 2024 03:25:40 GMT foundInMaster: true id: 01f8d446752c39de698f67e8d2352229 oldLocations: @@ -7410,17 +7410,17 @@ Swagger UI is a collection of HTML, JavaScript, and CSS assets that dynamically generate beautiful documentation from a Swagger-compliant API. created: '2011-07-15T22:56:39Z' - updated: '2024-08-18T21:39:45Z' + updated: '2024-08-20T03:08:47Z' language: JavaScript archived: false - stars: 26199 + stars: 26213 watchers: 650 - forks: 8896 + forks: 8897 owner: swagger-api logo: https://avatars.githubusercontent.com/u/7658037?v=4 license: Apache-2.0 - repoEtag: '"4860469243d56cf6c2cfa406b6ce801e4ee9e85378133be295cb40bb951ef86c"' - repoLastModified: Sun, 18 Aug 2024 21:39:45 GMT + repoEtag: '"32a7a97314102bfb0565588a6bb0ec8871b960db8fad8e52adef649caa8e6dbd"' + repoLastModified: Tue, 20 Aug 2024 03:08:47 GMT foundInMaster: true name: swagger-ui homepage: https://github.com/swagger-api/swagger-UI @@ -7453,17 +7453,17 @@ repositoryId: 45250726 description: 📘 OpenAPI/Swagger-generated API Reference Documentation created: '2015-10-30T12:53:02Z' - updated: '2024-08-19T01:00:16Z' + updated: '2024-08-20T01:50:55Z' language: TypeScript archived: false - stars: 23156 + stars: 23163 watchers: 295 forks: 2280 owner: Redocly logo: https://avatars.githubusercontent.com/u/32099856?v=4 license: MIT - repoEtag: '"7c709e7e3c6a49f63c16da5cad73ba95d35b12ee0723544eceed65151d058659"' - repoLastModified: Mon, 19 Aug 2024 01:00:16 GMT + repoEtag: '"f4aeed61504b65a0b1b542c5bed46daffbcbb6036d575bbfc1b1187a0690dfcd"' + repoLastModified: Tue, 20 Aug 2024 01:50:55 GMT foundInMaster: true v3_1: true id: 2725d6db6977c1dd12ceaf9701787e07 @@ -7482,17 +7482,17 @@ Examples and server integrations for generating the Swagger API Specification, which enables easy access to your REST API created: '2011-07-05T23:44:11Z' - updated: '2024-08-16T08:59:27Z' + updated: '2024-08-19T09:21:15Z' language: Java archived: false - stars: 7369 + stars: 7370 watchers: 310 forks: 2171 owner: swagger-api logo: https://avatars.githubusercontent.com/u/7658037?v=4 license: Apache-2.0 - repoEtag: '"ce39828d1f8ff4fd4612a9d01403796200ade747b238d9977d4f170514e10173"' - repoLastModified: Fri, 16 Aug 2024 08:59:27 GMT + repoEtag: '"22c870ea9969e66b2d07e789f103be141b04011643cf4f75c0c660dc0141bf11"' + repoLastModified: Mon, 19 Aug 2024 09:21:15 GMT foundInMaster: true category: Code Generators id: 2093f5c5f56617123b73ae823791176d @@ -7509,17 +7509,17 @@ Mockoon is the easiest and quickest way to run mock APIs locally. No remote deployment, no account required, open source. created: '2017-07-17T13:19:16Z' - updated: '2024-08-18T19:39:28Z' + updated: '2024-08-19T20:20:36Z' language: TypeScript archived: false - stars: 6191 + stars: 6195 watchers: 60 - forks: 361 + forks: 362 owner: mockoon logo: https://avatars.githubusercontent.com/u/49429147?v=4 license: NOASSERTION - repoEtag: '"888baed76e69ede84c77dd21003f8f3c9f9bff0d25e9c3e67de6534f3bc65443"' - repoLastModified: Sun, 18 Aug 2024 19:39:28 GMT + repoEtag: '"b93d37daeea8ae1709b1ef07f3f399bf35249449026a759522366bf9f8cc5161"' + repoLastModified: Mon, 19 Aug 2024 20:20:36 GMT foundInMaster: true category: Testing id: 8728dfca2c1908dbecdcddd31597fad4 @@ -7542,17 +7542,17 @@ repositoryId: 173009358 description: Generate Go client and server boilerplate from OpenAPI 3 specifications created: '2019-02-27T23:59:59Z' - updated: '2024-08-18T20:04:41Z' + updated: '2024-08-19T18:06:45Z' language: Go archived: false - stars: 5798 + stars: 5800 watchers: 37 - forks: 827 + forks: 826 owner: oapi-codegen logo: https://avatars.githubusercontent.com/u/142752710?v=4 license: Apache-2.0 - repoEtag: '"450489f4b4c6a1ab88e6a3eac85db43a18e443be6c4d86d38eff604909a7a2e6"' - repoLastModified: Sun, 18 Aug 2024 20:04:41 GMT + repoEtag: '"0d51012f6719defeca1f40870e3d5f5f36509a95567cf8dd707f1ab7ebab9a96"' + repoLastModified: Mon, 19 Aug 2024 18:06:45 GMT foundInMaster: true id: 770a221110cc4ef0e399089f5caf8694 oldLocations: @@ -7581,17 +7581,17 @@ repositoryId: 161691324 description: Generate TypeScript types from OpenAPI 3 specs created: '2018-12-13T20:28:01Z' - updated: '2024-08-19T02:33:58Z' + updated: '2024-08-20T03:14:29Z' language: TypeScript archived: false - stars: 5341 + stars: 5351 watchers: 24 - forks: 440 + forks: 442 owner: openapi-ts logo: https://avatars.githubusercontent.com/u/172838200?v=4 license: MIT - repoEtag: '"d3c648b126bccfa2f6337b943a2b0a1440f5a1d2c8bd32bbcd9dfdad3f7edffe"' - repoLastModified: Mon, 19 Aug 2024 02:33:58 GMT + repoEtag: '"27bee6465e7482d9391473e764e4a2cd971e911922d6b361ef2c788abd49ffd1"' + repoLastModified: Tue, 20 Aug 2024 03:14:29 GMT foundInMaster: true oldLocations: - https://github.com/drwpow/openapi-typescript @@ -7607,17 +7607,17 @@ repositoryId: 88701696 description: Knife4j is a set of Swagger2 and OpenAPI3 All-in-one enhancement solution created: '2017-04-19T04:44:28Z' - updated: '2024-08-17T12:10:31Z' + updated: '2024-08-19T10:15:55Z' language: HTML archived: false - stars: 4037 + stars: 4038 watchers: 75 forks: 612 owner: xiaoymin logo: https://avatars.githubusercontent.com/u/7894406?v=4 license: Apache-2.0 - repoEtag: '"a63d9296157e59aca6a6b8acdfa8a7efec685186d4be351f6c27ef0709687db8"' - repoLastModified: Sat, 17 Aug 2024 12:10:31 GMT + repoEtag: '"519683ca50f03167e8819df15c7a125aeb475815005952d02f2229d5965497ca"' + repoLastModified: Mon, 19 Aug 2024 10:15:55 GMT category: SDK foundInMaster: true - source: openapi3 tags @@ -7633,17 +7633,17 @@ 🌐 Wikipedia for Web APIs. Directory of REST API definitions in OpenAPI 2.0/3.x format created: '2015-02-22T19:58:12Z' - updated: '2024-08-17T17:55:21Z' + updated: '2024-08-20T03:10:11Z' language: null archived: false - stars: 3805 + stars: 3808 watchers: 113 forks: 569 owner: APIs-guru logo: https://avatars.githubusercontent.com/u/10975548?v=4 license: CC0-1.0 - repoEtag: '"d87b7532fa678282465de8da504453671e2091d921813765a0998181b64b7828"' - repoLastModified: Sat, 17 Aug 2024 17:55:21 GMT + repoEtag: '"f2f014a8cff1622bf8e85191786e084fee5bbb88290474c53f25c66bd0c3868a"' + repoLastModified: Tue, 20 Aug 2024 03:10:11 GMT foundInMaster: true category: SDK id: 667f2aef78d9d19418fbd6c0a7835abb @@ -7667,17 +7667,17 @@ repositoryId: 196475719 description: Library for OpenAPI 3 with spring-boot created: '2019-07-11T23:08:20Z' - updated: '2024-08-19T02:53:28Z' + updated: '2024-08-19T10:47:26Z' language: Java archived: false - stars: 3224 + stars: 3225 watchers: 42 forks: 487 owner: springdoc logo: https://avatars.githubusercontent.com/u/52804136?v=4 license: Apache-2.0 - repoEtag: '"6203f5d8b201240b46f724e0e32523842868cd6f41bb9d85aee98d9083f61a05"' - repoLastModified: Mon, 19 Aug 2024 02:53:28 GMT + repoEtag: '"e95ccc59732fa13f738bc9d1fa586f50af1930be9366f50f940412c9e3b8eea3"' + repoLastModified: Mon, 19 Aug 2024 10:47:26 GMT foundInMaster: true id: 901410cec129651fcf7374c79f824f27 - source: openapi3 tags @@ -7693,17 +7693,17 @@ Docker image with Uvicorn managed by Gunicorn for high-performance FastAPI web applications in Python with performance auto-tuning. created: '2019-01-04T17:33:29Z' - updated: '2024-08-18T12:57:11Z' + updated: '2024-08-19T16:10:59Z' language: Python archived: false - stars: 2670 + stars: 2671 watchers: 25 forks: 330 owner: tiangolo logo: https://avatars.githubusercontent.com/u/1326112?v=4 license: MIT - repoEtag: '"86992ff4aa5f832e7be30a5d888d24f309e5ed2cb1294a53a46682eac167f243"' - repoLastModified: Sun, 18 Aug 2024 12:57:11 GMT + repoEtag: '"dbfd58006d5f55c451072ef4b7f2979b6696b396474fa4b02997d9aeca319bb9"' + repoLastModified: Mon, 19 Aug 2024 16:10:59 GMT foundInMaster: true category: Server Implementations id: d0f3fc0bd35fcadacc8ed2c531780739 @@ -7748,17 +7748,17 @@ repositoryId: 244234763 description: Sane and flexible OpenAPI 3 schema generation for Django REST framework. created: '2020-03-01T22:36:54Z' - updated: '2024-08-17T20:36:12Z' + updated: '2024-08-19T13:38:27Z' language: Python archived: false - stars: 2265 + stars: 2268 watchers: 11 forks: 252 owner: tfranzel logo: https://avatars.githubusercontent.com/u/13507857?v=4 license: BSD-3-Clause - repoEtag: '"87564c31cb8feb6701177e0c852f723c06e661b4b97f2dda493d09f6af92202a"' - repoLastModified: Sat, 17 Aug 2024 20:36:12 GMT + repoEtag: '"7b1d47751a03839fd60f4d635952d49cf3a83720fb7256c00e8c08e5c7b289f4"' + repoLastModified: Mon, 19 Aug 2024 13:38:27 GMT foundInMaster: true category: Server Implementations id: 520f5c66c3e42a7b3fbface4f156c1dc @@ -7782,17 +7782,17 @@ repositoryId: 203157084 description: Supercharge your API testing, catch bugs, and ensure compliance created: '2019-08-19T11:13:01Z' - updated: '2024-08-18T06:02:11Z' + updated: '2024-08-19T22:00:47Z' language: Python archived: false - stars: 2212 + stars: 2215 watchers: 20 forks: 152 owner: schemathesis logo: https://avatars.githubusercontent.com/u/70383271?v=4 license: MIT - repoEtag: '"7b7cfb20b753212cfd349601557407c6f419a6fd2da8d0bb89e78d679bae6ace"' - repoLastModified: Sun, 18 Aug 2024 06:02:11 GMT + repoEtag: '"97fd3b7f84bbad1c72f052405f5840a221e9e922ea1ba6bc41b9a01f93ebe6b2"' + repoLastModified: Mon, 19 Aug 2024 22:00:47 GMT foundInMaster: true id: f4032fb371a703acffa691c0f1239d45 oldLocations: @@ -7811,17 +7811,17 @@ A fast serialization and validation library, with builtin support for JSON, MessagePack, YAML, and TOML created: '2021-01-26T02:53:57Z' - updated: '2024-08-19T02:48:10Z' + updated: '2024-08-19T20:18:49Z' language: Python archived: false - stars: 2185 + stars: 2187 watchers: 19 forks: 62 owner: jcrist logo: https://avatars.githubusercontent.com/u/2783717?v=4 license: BSD-3-Clause - repoEtag: '"ca568dbdbc1cf45ab4be5c15521b279863f8d540c8401669403146e722c82505"' - repoLastModified: Mon, 19 Aug 2024 02:48:10 GMT + repoEtag: '"b314e107aca50f5a671593d4a9a737142e972bdc6531c5d31fd9376f05a93ed8"' + repoLastModified: Mon, 19 Aug 2024 20:18:49 GMT category: Server Implementations foundInMaster: true - source: openapi3 tags @@ -7837,17 +7837,17 @@ A compiler for APIs described by the OpenAPI Specification with plugins for code generation and other API support tasks. created: '2016-11-15T19:21:53Z' - updated: '2024-08-18T09:17:31Z' + updated: '2024-08-19T06:31:42Z' language: Go archived: false - stars: 2058 + stars: 2059 watchers: 38 forks: 243 owner: google logo: https://avatars.githubusercontent.com/u/1342004?v=4 license: Apache-2.0 - repoEtag: '"7f48e82991bf1b77987391e7ae004175add199a7afcd59b1ddb6d7acd9133edb"' - repoLastModified: Sun, 18 Aug 2024 09:17:31 GMT + repoEtag: '"e9cc14e257aa5e9a12f5d6d63445711043d91855a4a091b18f2aeffe2545ed98"' + repoLastModified: Mon, 19 Aug 2024 06:31:42 GMT foundInMaster: true category: Converters id: 46e070512676eb0fd196ee199e6a0b34 @@ -7864,17 +7864,17 @@ repositoryId: 165951750 description: RapiDoc -WebComponent for OpenAPI Spec created: '2019-01-16T01:29:58Z' - updated: '2024-08-18T17:53:52Z' + updated: '2024-08-19T15:39:38Z' language: JavaScript archived: false - stars: 1638 + stars: 1640 watchers: 14 forks: 271 owner: rapi-doc logo: https://avatars.githubusercontent.com/u/104180085?v=4 license: MIT - repoEtag: '"797def9b9b265de5b773aa9535bc93be3b351cdddd2597ad5deebb4dd26d8681"' - repoLastModified: Sun, 18 Aug 2024 17:53:52 GMT + repoEtag: '"98a8d30b7b7e9c1a5c7a46f3845e7bac82bad084f0fc630d49e097fc943543b4"' + repoLastModified: Mon, 19 Aug 2024 15:39:38 GMT foundInMaster: true category: - Documentation @@ -7926,17 +7926,17 @@ A node package wrapper for https://github.com/OpenAPITools/openapi-generator created: '2018-10-26T10:21:23Z' - updated: '2024-08-18T13:49:34Z' + updated: '2024-08-20T02:56:13Z' language: TypeScript archived: false - stars: 1376 + stars: 1379 watchers: 18 forks: 141 owner: OpenAPITools logo: https://avatars.githubusercontent.com/u/37325267?v=4 license: Apache-2.0 - repoEtag: '"88eba548139021e7c72bda0e4e1b320068c77ff416257752554a42c5a1b9eb92"' - repoLastModified: Sun, 18 Aug 2024 13:49:34 GMT + repoEtag: '"af348533cfbed77e5b90aa619a3a4600cadf792b5fbed8ee989d7235b42ff93f"' + repoLastModified: Tue, 20 Aug 2024 02:56:13 GMT foundInMaster: true category: - Code Generators @@ -7954,17 +7954,17 @@ repositoryId: 372032505 description: OpenAPI v3 code generator for go created: '2021-05-29T17:25:48Z' - updated: '2024-08-17T05:28:17Z' + updated: '2024-08-19T06:47:34Z' language: Go archived: false - stars: 1250 + stars: 1251 watchers: 16 forks: 73 owner: ogen-go logo: https://avatars.githubusercontent.com/u/85122432?v=4 license: Apache-2.0 - repoEtag: '"34cacfb6441513b9e8dccb7c54ca5d359d9436b52240f3ca0246ecb2dcd30f6b"' - repoLastModified: Sat, 17 Aug 2024 05:28:17 GMT + repoEtag: '"eccbd4db80ffe9c3cf9c7033e6080b680d3a5e56cdf890001340cd442a7b5b28"' + repoLastModified: Mon, 19 Aug 2024 06:47:34 GMT category: Parsers foundInMaster: true - source: openapi3 tags @@ -7989,7 +7989,7 @@ owner: marshmallow-code logo: https://avatars.githubusercontent.com/u/10334301?v=4 license: MIT - repoEtag: '"6b42751d5d847e8952447b8685dfb76feccae5d111c93df4e631c7a19ea25baa"' + repoEtag: '"91ddb4c53768c541615c30bb6789eb99582ff0b2a0abd618730fbea6cf38b807"' repoLastModified: Mon, 12 Aug 2024 21:48:25 GMT foundInMaster: true category: Parsers @@ -8058,17 +8058,17 @@ repositoryId: 741524414 description: ✨ Turn your OpenAPI specification into a beautiful TypeScript client created: '2024-01-10T15:19:25Z' - updated: '2024-08-19T03:20:32Z' + updated: '2024-08-19T20:00:21Z' language: TypeScript archived: false - stars: 863 - watchers: 7 - forks: 70 + stars: 870 + watchers: 6 + forks: 69 owner: hey-api logo: https://avatars.githubusercontent.com/u/164436240?v=4 license: MIT - repoEtag: '"e19faff5d4581a651058fd156d5871b350375f274f19b76ad20b50575f38b651"' - repoLastModified: Mon, 19 Aug 2024 03:20:32 GMT + repoEtag: '"c5276ee8c6bdfb1ca65fb52a1aa2eda659d10eb5bfe9587a1e4e5a27b08640d8"' + repoLastModified: Mon, 19 Aug 2024 20:00:21 GMT category: SDK foundInMaster: true - source: openapi3 tags @@ -8109,17 +8109,17 @@ repositoryId: 113924383 description: Utility for comparing two OpenAPI specifications. created: '2017-12-12T00:39:30Z' - updated: '2024-08-16T00:40:43Z' + updated: '2024-08-19T12:07:40Z' language: Java archived: false - stars: 796 + stars: 798 watchers: 20 forks: 154 owner: OpenAPITools logo: https://avatars.githubusercontent.com/u/37325267?v=4 license: Apache-2.0 - repoEtag: '"c550a20673428f37635dfe689051b0316d030e328baa9839cb75d54be64eeb9e"' - repoLastModified: Fri, 16 Aug 2024 00:40:43 GMT + repoEtag: '"9ddaa09e1821f0858d92a61408034a15686c4f138e198e79a1ac679760af88ed"' + repoLastModified: Mon, 19 Aug 2024 12:07:40 GMT foundInMaster: true category: Parsers id: c128907e9d949a67c1bda0e0ceda755a @@ -8273,11 +8273,11 @@ archived: false stars: 662 watchers: 30 - forks: 314 + forks: 315 owner: apisyouwonthate logo: https://avatars.githubusercontent.com/u/35378327?v=4 license: MIT - repoEtag: '"1b4faf938b6ac501c3a3bbb75218bf3c1ee36ff5a7c5396de6d14257e8bae138"' + repoEtag: '"93cc1bb5e39d2512b4b762523e0a1abd891355776c7e098c96333325080dee67"' repoLastModified: Fri, 16 Aug 2024 05:14:24 GMT foundInMaster: true category: Description Validators @@ -8427,16 +8427,16 @@ repositoryId: 182983428 description: Generate TypeScript clients to tap into OpenAPI servers created: '2019-04-23T09:40:41Z' - updated: '2024-08-05T19:48:13Z' + updated: '2024-08-19T06:56:04Z' language: TypeScript archived: false - stars: 485 + stars: 486 watchers: 7 forks: 78 owner: oazapfts logo: https://avatars.githubusercontent.com/u/119607625?v=4 - repoEtag: '"918f1c6d93672b2046ab62b754d81bf5d4db7cba6777f3588f9f5cf7bff03bf7"' - repoLastModified: Mon, 05 Aug 2024 19:48:13 GMT + repoEtag: '"46fb59732a4a6fd75185fb15b04cfa22dc85c97f16cd821ada26f1f51356ba7b"' + repoLastModified: Mon, 19 Aug 2024 06:56:04 GMT category: Parsers foundInMaster: true oldLocations: @@ -8480,16 +8480,16 @@ repositoryId: 417437020 description: A tool for generating code base on an OpenAPI schema. created: '2021-10-15T09:08:51Z' - updated: '2024-08-16T10:06:49Z' + updated: '2024-08-19T06:17:18Z' language: TypeScript archived: false - stars: 480 + stars: 481 watchers: 6 forks: 61 owner: fabien0102 logo: https://avatars.githubusercontent.com/u/1761469?v=4 - repoEtag: '"4c641261d09603711741183cf99b87d0f31d0230823377cd9754416145f5e71e"' - repoLastModified: Fri, 16 Aug 2024 10:06:49 GMT + repoEtag: '"cca484ec330c61faf96eb35c9a7f472f0152ce6664258bffa7497ee398d8ca52"' + repoLastModified: Mon, 19 Aug 2024 06:17:18 GMT category: Testing foundInMaster: true - source: openapi3 tags @@ -8506,7 +8506,7 @@ Query, provision and operate Cloud and SaaS resources and APIs using an extensible SQL based framework created: '2022-01-03T08:20:06Z' - updated: '2024-08-18T01:03:59Z' + updated: '2024-08-19T22:11:58Z' language: Go archived: false stars: 471 @@ -8515,8 +8515,8 @@ owner: stackql logo: https://avatars.githubusercontent.com/u/95105302?v=4 license: MIT - repoEtag: '"bd6a11ac75ad43f52d785688de2745eeeeefccb3eaec2c0cc9c9b120c3f605e1"' - repoLastModified: Sun, 18 Aug 2024 01:03:59 GMT + repoEtag: '"b16fca79bff1e17b2c0cc81e65aa5040de602ccb18fbbe6b2618735bc6972f5a"' + repoLastModified: Mon, 19 Aug 2024 22:11:58 GMT category: Server Implementations foundInMaster: true - source: openapi3 tags @@ -8830,17 +8830,17 @@ repositoryId: 479982630 description: Clean Architecture Example using FastAPI framework created: '2022-04-10T10:23:51Z' - updated: '2024-08-19T01:42:06Z' + updated: '2024-08-19T08:11:05Z' language: Python archived: false - stars: 351 + stars: 353 watchers: 4 forks: 51 owner: 0xTheProDev logo: https://avatars.githubusercontent.com/u/14367736?v=4 license: MIT - repoEtag: '"2b8b6c345e3fcfebbdd1fb9e87bcded3c8a9bc56dac9116ebcb37d93e9560e0d"' - repoLastModified: Mon, 19 Aug 2024 01:42:06 GMT + repoEtag: '"e131c8639ede644c2cf757b4fa366c937959b581bef9c70d6b7d19b56920c5fc"' + repoLastModified: Mon, 19 Aug 2024 08:11:05 GMT category: Server Implementations foundInMaster: true oldLocations: @@ -8894,17 +8894,17 @@ validates OpenAPI Specs against the OpenAPI 2.0 (aka Swagger), OpenAPI 3.0 and OpenAPI 3.1 specification. created: '2017-09-06T08:08:25Z' - updated: '2024-08-16T21:05:59Z' + updated: '2024-08-20T01:36:32Z' language: Python archived: false - stars: 331 + stars: 332 watchers: 9 forks: 62 owner: python-openapi logo: https://avatars.githubusercontent.com/u/126442889?v=4 license: Apache-2.0 - repoEtag: '"beeebb64aabc261dc597aa18048239f315386c2fb1c803093b7fd7c00ffddc23"' - repoLastModified: Fri, 16 Aug 2024 21:05:59 GMT + repoEtag: '"15be56c499d9ed00068b1af96c950854eede7af12f4587088336b820a5eb9854"' + repoLastModified: Tue, 20 Aug 2024 01:36:32 GMT category: Parsers oldLocations: - https://github.com/p1c2u/openapi-spec-validator @@ -8915,13 +8915,13 @@ v3: true repositoryMetadata: base64Readme: >- - IyBFdGhlcmV1bSBCZWFjb24gQVBJcwoKIVtDSV0oaHR0cHM6Ly9naXRodWIuY29tL2V0aGVyZXVtL2JlYWNvbi1BUElzL3dvcmtmbG93cy9DSS9iYWRnZS5zdmcpCgpDb2xsZWN0aW9uIG9mIFJFU1RmdWwgQVBJcyBwcm92aWRlZCBieSBFdGhlcmV1bSBCZWFjb24gbm9kZXMKCkFQSSBicm93c2VyOiBbaHR0cHM6Ly9ldGhlcmV1bS5naXRodWIuaW8vYmVhY29uLUFQSXMvXShodHRwczovL2V0aGVyZXVtLmdpdGh1Yi5pby9iZWFjb24tQVBJcy8pCgojIyBPdXRsaW5lCgpUaGlzIGRvY3VtZW50IG91dGxpbmVzIGFuIGFwcGxpY2F0aW9uIHByb2dyYW1taW5nIGludGVyZmFjZSAoQVBJKSB3aGljaCBpcyBleHBvc2VkIGJ5IGEgYmVhY29uIG5vZGUgaW1wbGVtZW50YXRpb24gb2YgdGhlIEV0aGVyZXVtIFtjb25zZW5zdXMgbGF5ZXIgc3BlY2lmaWNhdGlvbnNdKGh0dHBzOi8vZ2l0aHViLmNvbS9ldGhlcmV1bS9jb25zZW5zdXMtc3BlY3MpLgoKVGhlIEFQSSBpcyBhIFJFU1QgaW50ZXJmYWNlLCBhY2Nlc3NlZCB2aWEgSFRUUC4gVGhlIEFQSSBzaG91bGQgbm90LCB1bmxlc3MgcHJvdGVjdGVkIGJ5IGFkZGl0aW9uYWwgc2VjdXJpdHkgbGF5ZXJzLCBiZSBleHBvc2VkIHRvIHRoZSBwdWJsaWMgSW50ZXJuZXQgYXMgdGhlIEFQSSBpbmNsdWRlcyBtdWx0aXBsZSBlbmRwb2ludHMgd2hpY2ggY291bGQgb3BlbiB5b3VyIG5vZGUgdG8gZGVuaWFsLW9mLXNlcnZpY2UgKERvUykgYXR0YWNrcyB0aHJvdWdoIGVuZHBvaW50cyB0cmlnZ2VyaW5nIGhlYXZ5IHByb2Nlc3NpbmcuCiBDdXJyZW50bHksIHRoZSBvbmx5IHN1cHBvcnRlZCByZXR1cm4gZGF0YSB0eXBlIGlzIEpTT04uCgpUaGUgYmVhY29uIG5vZGUgKEJOKSBtYWludGFpbnMgdGhlIHN0YXRlIG9mIHRoZSBiZWFjb24gY2hhaW4gYnkgY29tbXVuaWNhdGluZyB3aXRoIG90aGVyIGJlYWNvbiBub2RlcyBpbiB0aGUgRXRoZXJldW0gbmV0d29yay4KQ29uY2VwdHVhbGx5LCBpdCBkb2VzIG5vdCBtYWludGFpbiBrZXlwYWlycyB0aGF0IHBhcnRpY2lwYXRlIHdpdGggdGhlIGJlYWNvbiBjaGFpbi4KClRoZSB2YWxpZGF0b3IgY2xpZW50IChWQykgaXMgYSBjb25jZXB0dWFsbHkgc2VwYXJhdGUgZW50aXR5IHdoaWNoIHV0aWxpemVzIHByaXZhdGUga2V5cwp0byBwZXJmb3JtIHZhbGlkYXRvciByZWxhdGVkIHRhc2tzLCBjYWxsZWQgImR1dGllcyIsIG9uIHRoZSBiZWFjb24gY2hhaW4uCiBUaGVzZSBkdXRpZXMgaW5jbHVkZSB0aGUgcHJvZHVjdGlvbiBvZiBiZWFjb24gYmxvY2tzIGFuZCBzaWduaW5nIG9mIGF0dGVzdGF0aW9ucy4KClRoZSBnb2FsIG9mIHRoaXMgc3BlY2lmaWNhdGlvbiBpcyB0byBwcm9tb3RlIGludGVyb3BlcmFiaWxpdHkgYmV0d2VlbiB2YXJpb3VzIGJlYWNvbiBub2RlIGltcGxlbWVudGF0aW9ucy4KCiMjIFJlbmRlcgpUbyByZW5kZXIgc3BlYyBpbiBicm93c2VyIHlvdSB3aWxsIG5lZWQgYW55IGh0dHAgc2VydmVyIHRvIGxvYWQgYGluZGV4Lmh0bWxgIGZpbGUKaW4gcm9vdCBvZiB0aGUgcmVwby4KCiMjIyMjIFB5dGhvbgpgYGAKcHl0aG9uIC1tIGh0dHAuc2VydmVyIDgwODAKYGBgCkFuZCBhcGkgc3BlYyB3aWxsIHJlbmRlciBvbiBbaHR0cDovL2xvY2FsaG9zdDo4MDgwXShodHRwOi8vbG9jYWxob3N0OjgwODApLgoKIyMjIyMgTm9kZUpzCmBgYApucG0gaW5zdGFsbCBzaW1wbGVodHRwc2VydmVyIC1nCgojIE9SCgp5YXJuIGdsb2JhbCBhZGQgc2ltcGxlaHR0cHNlcnZlcgoKc2ltcGxlaHR0cHNlcnZlcgpgYGAKQW5kIGFwaSBzcGVjIHdpbGwgcmVuZGVyIG9uIFtodHRwOi8vbG9jYWxob3N0OjgwMDBdKGh0dHA6Ly9sb2NhbGhvc3Q6ODAwMCkuCgojIyMgVXNhZ2UKCkxvY2FsIGNoYW5nZXMgd2lsbCBiZSBvYnNlcnZhYmxlIGlmICJkZXYiIGlzIHNlbGVjdGVkIGluIHRoZSAiU2VsZWN0IGEgZGVmaW5pdGlvbiIgZHJvcC1kb3duIGluIHRoZSB3ZWIgVUkuCgpVc2VycyBtYXkgbmVlZCB0byB0aWNrIHRoZSAiRGlzYWJsZSBDYWNoZSIgYm94IGluIHRoZWlyIGJyb3dzZXIncyBkZXZlbG9wZXIgdG9vbHMgdG8gc2VlIGNoYW5nZXMgYWZ0ZXIgbW9kaWZ5aW5nIHRoZSBzb3VyY2UuCgojIyBDb250cmlidXRpbmcKQXBpIHNwZWMgaXMgY2hlY2tlZCBmb3IgbGludCBlcnJvcnMgYmVmb3JlIG1lcmdlLgoKVG8gcnVuIGxpbnQgbG9jYWxseSwgaW5zdGFsbCBsaW50ZXIgd2l0aApgYGAKbnBtIGluc3RhbGwgLWcgQHJlZG9jbHkvY2xpCgojIE9SCgp5YXJuIGdsb2JhbCBhZGQgQHJlZG9jbHkvY2xpCmBgYAphbmQgcnVuIGxpbnQgd2l0aApgYGAKcmVkb2NseSBsaW50IGJlYWNvbi1ub2RlLW9hcGkueWFtbApgYGAKCiMjIFJlbGVhc2luZwoKMS4gQ3JlYXRlIGFuZCBwdXNoIHRhZwoKICAgLSBNYWtlIHN1cmUgYGluZm8udmVyc2lvbmAgaW4gYGJlYWNvbi1ub2RlLW9hcGkueWFtbGAgZmlsZSBpcyB1cGRhdGVkIGJlZm9yZSB0YWdnaW5nLiAgVGhpcyB3aWxsIG5lZWQgdG8gYmUgYSBQUiwgYW5kIHdpbGwgZ2V0IHRoZSByZWxlYXNlIHByb2Nlc3Mgc3RhcnRlZC4KICAgLSBDRCB3aWxsIGNyZWF0ZSBnaXRodWIgcmVsZWFzZSBhbmQgdXBsb2FkIGJ1bmRsZWQgc3BlYyBmaWxlCgoyLiBDcmVhdGUgYSBzZWNvbmQgUFIsIGNvbnRhaW5pbmcgdGhlIHVwZGF0ZWQgYGluZGV4Lmh0bWxgLiBBbHNvIGNoYW5nZSBiYWNrIHRoZSBgaW5mby52ZXJzaW9uYCBpbiBgYmVhY29uLW5vZGUtYXBpLnlhbWxgIGJhY2sgdG8gYERldmAKCiAgIC0gVGhlIGBpbmRleC5odG1sYCBmaWxlIG5lZWRzIGEgbmV3IHJlbGVhc2UgZW50cnlwb2ludCBhZGRlZCB0byByZWZlciB0byB0aGUgbmV3IHJlbGVhc2UuIEZpbmQgdGhlIGB1cmxzYCBmaWVsZCwgCiAgICAgYW5kIGFkZCB0aGUgbmV3IHJlbGVhc2UgYXMgdGhlIGZpcnN0IGVudHJ5IGluIHRoZSBsaXN0LgogICAgIEVudHJ5IHNob3VsZCBiZSBpbiBmb2xsb3dpbmcgZm9ybWF0KHJlcGxhY2UgYDx0YWc+YCB3aXRoIHJlYWwgdGFnIG5hbWUgZnJvbSBzdGVwIDEuKToKYGBgCiAgICAgICAgIHt1cmw6ICIuL3JlbGVhc2VzLzx0YWc+L2JlYWNvbi1ub2RlLW9hcGkuanNvbiIsIG5hbWU6ICI8dGFnPiJ9LApgYGAKCiMjIyBQcmUtcmVsZWFzZXMKClRvIGNyZWF0ZSBhIHByZS1yZWxlYXNlLCBzaW1wbHkgcHVzaCBhIG5ldyB0YWcgd2l0aCB0aGUgc3VmZml4IGAtYWxwaGEueGAuIFRoZSBDRCB3aWxsIGNyZWF0ZSBhIGdpdGh1YiByZWxlYXNlIGFuZCB1cGxvYWQgdGhlIGJ1bmRsZWQgc3BlYyBmaWxlcy4KClByZS1yZWxlYXNlcyB3aWxsIG5vdCBiZSBsaXN0ZWQgaW4gYGluZGV4Lmh0bWxgIGFuZCBhcmUgaW50ZW5kZWQgdG8gYWxsb3cgZWFybHkgdGVzdGluZyBhZ2FpbnN0IHRoZSBzcGVjLgo= - readmeEtag: '"e2f16cf0eddab4a08b89f255a0d08a0e5b3bcc9b"' - readmeLastModified: Thu, 15 Aug 2024 10:48:27 GMT + IyBFdGhlcmV1bSBCZWFjb24gQVBJcwoKIVtDSV0oaHR0cHM6Ly9naXRodWIuY29tL2V0aGVyZXVtL2JlYWNvbi1BUElzL3dvcmtmbG93cy9DSS9iYWRnZS5zdmcpCgpDb2xsZWN0aW9uIG9mIFJFU1RmdWwgQVBJcyBwcm92aWRlZCBieSBFdGhlcmV1bSBCZWFjb24gbm9kZXMKCkFQSSBicm93c2VyOiBbaHR0cHM6Ly9ldGhlcmV1bS5naXRodWIuaW8vYmVhY29uLUFQSXMvXShodHRwczovL2V0aGVyZXVtLmdpdGh1Yi5pby9iZWFjb24tQVBJcy8pCgojIyBPdXRsaW5lCgpUaGlzIGRvY3VtZW50IG91dGxpbmVzIGFuIGFwcGxpY2F0aW9uIHByb2dyYW1taW5nIGludGVyZmFjZSAoQVBJKSB3aGljaCBpcyBleHBvc2VkIGJ5IGEgYmVhY29uIG5vZGUgaW1wbGVtZW50YXRpb24gb2YgdGhlIEV0aGVyZXVtIFtjb25zZW5zdXMgbGF5ZXIgc3BlY2lmaWNhdGlvbnNdKGh0dHBzOi8vZ2l0aHViLmNvbS9ldGhlcmV1bS9jb25zZW5zdXMtc3BlY3MpLgoKVGhlIEFQSSBpcyBhIFJFU1QgaW50ZXJmYWNlLCBhY2Nlc3NlZCB2aWEgSFRUUC4gVGhlIEFQSSBzaG91bGQgbm90LCB1bmxlc3MgcHJvdGVjdGVkIGJ5IGFkZGl0aW9uYWwgc2VjdXJpdHkgbGF5ZXJzLCBiZSBleHBvc2VkIHRvIHRoZSBwdWJsaWMgSW50ZXJuZXQgYXMgdGhlIEFQSSBpbmNsdWRlcyBtdWx0aXBsZSBlbmRwb2ludHMgd2hpY2ggY291bGQgb3BlbiB5b3VyIG5vZGUgdG8gZGVuaWFsLW9mLXNlcnZpY2UgKERvUykgYXR0YWNrcyB0aHJvdWdoIGVuZHBvaW50cyB0cmlnZ2VyaW5nIGhlYXZ5IHByb2Nlc3NpbmcuCiBDdXJyZW50bHksIHRoZSBvbmx5IHN1cHBvcnRlZCByZXR1cm4gZGF0YSB0eXBlIGlzIEpTT04uCgpUaGUgYmVhY29uIG5vZGUgKEJOKSBtYWludGFpbnMgdGhlIHN0YXRlIG9mIHRoZSBiZWFjb24gY2hhaW4gYnkgY29tbXVuaWNhdGluZyB3aXRoIG90aGVyIGJlYWNvbiBub2RlcyBpbiB0aGUgRXRoZXJldW0gbmV0d29yay4KQ29uY2VwdHVhbGx5LCBpdCBkb2VzIG5vdCBtYWludGFpbiBrZXlwYWlycyB0aGF0IHBhcnRpY2lwYXRlIHdpdGggdGhlIGJlYWNvbiBjaGFpbi4KClRoZSB2YWxpZGF0b3IgY2xpZW50IChWQykgaXMgYSBjb25jZXB0dWFsbHkgc2VwYXJhdGUgZW50aXR5IHdoaWNoIHV0aWxpemVzIHByaXZhdGUga2V5cwp0byBwZXJmb3JtIHZhbGlkYXRvciByZWxhdGVkIHRhc2tzLCBjYWxsZWQgImR1dGllcyIsIG9uIHRoZSBiZWFjb24gY2hhaW4uCiBUaGVzZSBkdXRpZXMgaW5jbHVkZSB0aGUgcHJvZHVjdGlvbiBvZiBiZWFjb24gYmxvY2tzIGFuZCBzaWduaW5nIG9mIGF0dGVzdGF0aW9ucy4KClRoZSBnb2FsIG9mIHRoaXMgc3BlY2lmaWNhdGlvbiBpcyB0byBwcm9tb3RlIGludGVyb3BlcmFiaWxpdHkgYmV0d2VlbiB2YXJpb3VzIGJlYWNvbiBub2RlIGltcGxlbWVudGF0aW9ucy4KCiMjIFJlbmRlcgpUbyByZW5kZXIgc3BlYyBpbiBicm93c2VyIHlvdSB3aWxsIG5lZWQgYW55IGh0dHAgc2VydmVyIHRvIGxvYWQgYGluZGV4Lmh0bWxgIGZpbGUKaW4gcm9vdCBvZiB0aGUgcmVwby4KCiMjIyMjIFB5dGhvbgpgYGAKcHl0aG9uIC1tIGh0dHAuc2VydmVyIDgwODAKYGBgCkFuZCBhcGkgc3BlYyB3aWxsIHJlbmRlciBvbiBbaHR0cDovL2xvY2FsaG9zdDo4MDgwXShodHRwOi8vbG9jYWxob3N0OjgwODApLgoKIyMjIyMgTm9kZUpzCmBgYApucG0gaW5zdGFsbCBzaW1wbGVodHRwc2VydmVyIC1nCgojIE9SCgp5YXJuIGdsb2JhbCBhZGQgc2ltcGxlaHR0cHNlcnZlcgoKc2ltcGxlaHR0cHNlcnZlcgpgYGAKQW5kIGFwaSBzcGVjIHdpbGwgcmVuZGVyIG9uIFtodHRwOi8vbG9jYWxob3N0OjgwMDBdKGh0dHA6Ly9sb2NhbGhvc3Q6ODAwMCkuCgojIyMgVXNhZ2UKCkxvY2FsIGNoYW5nZXMgd2lsbCBiZSBvYnNlcnZhYmxlIGlmICJkZXYiIGlzIHNlbGVjdGVkIGluIHRoZSAiU2VsZWN0IGEgZGVmaW5pdGlvbiIgZHJvcC1kb3duIGluIHRoZSB3ZWIgVUkuCgpVc2VycyBtYXkgbmVlZCB0byB0aWNrIHRoZSAiRGlzYWJsZSBDYWNoZSIgYm94IGluIHRoZWlyIGJyb3dzZXIncyBkZXZlbG9wZXIgdG9vbHMgdG8gc2VlIGNoYW5nZXMgYWZ0ZXIgbW9kaWZ5aW5nIHRoZSBzb3VyY2UuCgojIyBDb250cmlidXRpbmcKQXBpIHNwZWMgaXMgY2hlY2tlZCBmb3IgbGludCBlcnJvcnMgYmVmb3JlIG1lcmdlLgoKVG8gcnVuIGxpbnQgbG9jYWxseSwgaW5zdGFsbCBsaW50ZXIgd2l0aApgYGAKbnBtIGluc3RhbGwgLWcgQHJlZG9jbHkvY2xpCgojIE9SCgp5YXJuIGdsb2JhbCBhZGQgQHJlZG9jbHkvY2xpCmBgYAphbmQgcnVuIGxpbnQgd2l0aApgYGAKcmVkb2NseSBsaW50IGJlYWNvbi1ub2RlLW9hcGkueWFtbApgYGAKCiMjIFJlbGVhc2luZwoKVGhpcyByZXBvc2l0b3J5IHN1cHBvcnRzIGJvdGggc3RhYmxlIGFuZCBwcmUtcmVsZWFzZXMuIFRoZSB2ZXJzaW9uIG9mIHRoZSBuZXh0IHJlbGVhc2UgaGFzIHRvIGJlCmRldGVybWluZWQgYmFzZWQgb24gdGhlIGNoYW5nZXMgaW4gYG1hc3RlcmAgYnJhbmNoIHNpbmNlIHRoZSBsYXN0IHN0YWJsZSByZWxlYXNlLiBJdCBpcyByZWNvbW1lbmRlZAp0byBjcmVhdGUgYSBwcmUtcmVsZWFzZSBiZWZvcmUgcmVsZWFzaW5nIGEgbmV3IHN0YWJsZSB2ZXJzaW9uLgoKIyMjIFN0YWJsZSByZWxlYXNlcwoKU3RlcHMgdG8gY3JlYXRlIGEgbmV3IHN0YWJsZSByZWxlYXNlOgoKLSBDcmVhdGUgYW5kIHB1c2ggYSB0YWcgd2l0aCB0aGUgdmVyc2lvbiBvZiB0aGUgcmVsZWFzZSwgZS5nLiBgdjMuMC4wYAotIENEIHdpbGwgY3JlYXRlIHRoZSBnaXRodWIgcmVsZWFzZSwgdXBsb2FkIGJ1bmRsZWQgc3BlYyBmaWxlcywgYW5kIG9wZW4gYSByZWxlYXNlIFBSCi0gUmV2aWV3LCBhcHByb3ZlIGFuZCBtZXJnZSB0aGUgcmVsZWFzZSBQUiB0byBgbWFzdGVyYCBicmFuY2gKCiMjIyBQcmUtcmVsZWFzZXMKClN0ZXBzIHRvIGNyZWF0ZSBhIG5ldyBwcmUtcmVsZWFzZToKCi0gQ3JlYXRlIGFuZCBwdXNoIGEgdGFnIHdpdGggdGhlIHZlcnNpb24gb2YgdGhlIHJlbGVhc2UsIGUuZy4gYHYzLjAuMC1hbHBoYS4wYAotIENEIHdpbGwgY3JlYXRlIHRoZSBnaXRodWIgcmVsZWFzZSBhbmQgdXBsb2FkIGJ1bmRsZWQgc3BlYyBmaWxlcwoKUHJlLXJlbGVhc2VzIHdpbGwgbm90IGJlIGxpc3RlZCBpbiBgaW5kZXguaHRtbGAgYW5kIGFyZSBpbnRlbmRlZCB0byBhbGxvdyBlYXJseSB0ZXN0aW5nIGFnYWluc3QgdGhlIHNwZWMuCg== + readmeEtag: '"fb2454ab23ee53e72ab31fdaf1721eb026890ef4"' + readmeLastModified: Mon, 19 Aug 2024 11:04:56 GMT repositoryId: 202613633 description: Collection of RESTful APIs provided by Ethereum Beacon nodes created: '2019-08-15T21:27:12Z' - updated: '2024-08-15T10:48:31Z' + updated: '2024-08-19T11:05:01Z' language: HTML archived: false stars: 326 @@ -8930,8 +8930,8 @@ owner: ethereum logo: https://avatars.githubusercontent.com/u/6250754?v=4 license: CC0-1.0 - repoEtag: '"d5d1997143870d9d9976e1342b622e083be30d039bea253e9d648edf229caa47"' - repoLastModified: Thu, 15 Aug 2024 10:48:31 GMT + repoEtag: '"04c79cc284ae67d9fd5d6d292ce993b04e0a55aa0d978a7cec99216c45872507"' + repoLastModified: Mon, 19 Aug 2024 11:05:01 GMT foundInMaster: true category: - Documentation @@ -8978,17 +8978,17 @@ Openapi-core is a Python library that adds client-side and server-side support for the OpenAPI v3.0 and OpenAPI v3.1 specification. created: '2017-09-20T10:25:35Z' - updated: '2024-08-18T00:57:17Z' + updated: '2024-08-20T01:36:31Z' language: Python archived: false - stars: 295 + stars: 296 watchers: 9 forks: 131 owner: python-openapi logo: https://avatars.githubusercontent.com/u/126442889?v=4 license: BSD-3-Clause - repoEtag: '"1e8010200a2e1aeb195d803bed1dc720192f29453a53f9135291d11f11f3e3fc"' - repoLastModified: Sun, 18 Aug 2024 00:57:17 GMT + repoEtag: '"eb1416aebb6b6b80ea399f22887a7737e47c62a3cdd6f6b95abebaadb49d5c1d"' + repoLastModified: Tue, 20 Aug 2024 01:36:31 GMT category: - Data Validators - Parsers @@ -9090,17 +9090,17 @@ OpenAPI 3 and 3.1 schema generator and validator for Hono, itty-router and more! created: '2022-11-08T11:43:41Z' - updated: '2024-08-10T12:56:59Z' + updated: '2024-08-19T16:19:58Z' language: TypeScript archived: false - stars: 280 + stars: 281 watchers: 11 forks: 38 owner: cloudflare logo: https://avatars.githubusercontent.com/u/314135?v=4 license: MIT - repoEtag: '"95c5acd14ed0de910aee2fa82db14759872120114236e6dd6a29d07344d27667"' - repoLastModified: Sat, 10 Aug 2024 12:56:59 GMT + repoEtag: '"c507e6b0348611cf3ac0a1461844e6dee1fe4bc47d83308a42d70d675c12cc52"' + repoLastModified: Mon, 19 Aug 2024 16:19:58 GMT category: Server Implementations foundInMaster: true oldLocations: @@ -9320,7 +9320,7 @@ owner: samchungy logo: https://avatars.githubusercontent.com/u/18017094?v=4 license: MIT - repoEtag: '"de8c47ed57ed2f55faf126012da0b4cf1ae44c72c8f46ffb80eb86f26c2d686e"' + repoEtag: '"48e83f8395a128bbb7a674bdff49b8e0225cf9176c6986ca8ab0881cc80c77c2"' repoLastModified: Sun, 18 Aug 2024 08:35:05 GMT category: Parsers foundInMaster: true @@ -9544,17 +9544,17 @@ NodeJS module to manage RESTful APIs defined with OpenAPI 3.0 Specs over express servers. created: '2018-02-08T14:28:39Z' - updated: '2024-08-12T19:36:07Z' + updated: '2024-08-19T06:55:38Z' language: JavaScript archived: false - stars: 201 + stars: 202 watchers: 12 forks: 60 owner: oas-tools logo: https://avatars.githubusercontent.com/u/97441539?v=4 license: Apache-2.0 - repoEtag: '"af0fb38cc9435676a11ba2e0ed6d2d7dbe518417b1207871d74f70a30bf1fc55"' - repoLastModified: Mon, 12 Aug 2024 19:36:07 GMT + repoEtag: '"d3ea3177bd252d79aead8ed3440e72b2fd226b00302d2b1bb21c28162acf38aa"' + repoLastModified: Mon, 19 Aug 2024 06:55:38 GMT foundInMaster: true category: - Parsers @@ -9776,17 +9776,17 @@ repositoryId: 362315893 description: Generate REST API and OpenAPI documentation for your Flask project. created: '2021-04-28T02:39:57Z' - updated: '2024-08-04T04:12:57Z' + updated: '2024-08-20T00:50:42Z' language: Python archived: false - stars: 179 + stars: 181 watchers: 7 forks: 28 owner: luolingchun logo: https://avatars.githubusercontent.com/u/22740403?v=4 license: MIT - repoEtag: '"fed5e552d2b36d4c64876827083b32641bfb2acd637efb45e70e9fa568a47f1b"' - repoLastModified: Sun, 04 Aug 2024 04:12:57 GMT + repoEtag: '"77ac864ac26ff1b0546f570628ea8a2519729b314a655e50fc8026ecf832a38e"' + repoLastModified: Tue, 20 Aug 2024 00:50:42 GMT foundInMaster: true category: Server Implementations id: 7baa4046f5397a8fd006511115871ac0 @@ -9829,7 +9829,7 @@ repositoryId: 543052826 description: Speakeasy CLI - Enterprise developer experience for your API created: '2022-09-29T10:13:15Z' - updated: '2024-08-16T22:11:45Z' + updated: '2024-08-19T14:15:11Z' language: JavaScript archived: false stars: 173 @@ -9838,8 +9838,8 @@ owner: speakeasy-api logo: https://avatars.githubusercontent.com/u/91446104?v=4 license: NOASSERTION - repoEtag: '"92f2218b5526d67420babf4a9288a28ac8136edcfb194a8bdd4bfe3980bf7ca5"' - repoLastModified: Fri, 16 Aug 2024 22:11:45 GMT + repoEtag: '"aff5b394868d3703cfc154f8cf7a111c95fd2a6f876c4e226c2a6bf33a63de56"' + repoLastModified: Mon, 19 Aug 2024 14:15:11 GMT category: Parsers foundInMaster: true - source: openapi3 tags @@ -9915,7 +9915,7 @@ owner: christianhelle logo: https://avatars.githubusercontent.com/u/710400?v=4 license: MIT - repoEtag: '"db8b4ae87c369f1e700d53879caec3a98fc57e2c037d2a75492694722e9f421f"' + repoEtag: '"28b7da540f82899c728c6a598e79e0a01671bf042a9ef8822ae05c1a3c8f5dd2"' repoLastModified: Sat, 17 Aug 2024 05:52:56 GMT category: Parsers foundInMaster: true @@ -9975,25 +9975,25 @@ id: 30d6812808d99b1b58b61c10028cb8de repositoryMetadata: base64Readme: >- - WyFbQnVpbGQgc3RhdHVzXShodHRwczovL2NpLmFwcHZleW9yLmNvbS9hcGkvcHJvamVjdHMvc3RhdHVzL2diMmRvZTN0Z3dqdDQ3Y24vYnJhbmNoL21hc3Rlcj9zdmc9dHJ1ZSldKGh0dHBzOi8vY2kuYXBwdmV5b3IuY29tL3Byb2plY3QvY2hyaXN0aWFuaGVsbGUvYXBpY2xpZW50Y29kZWdlbi9icmFuY2gvbWFzdGVyKQohW0NMSSBUb29sXShodHRwczovL2dpdGh1Yi5jb20vY2hyaXN0aWFuaGVsbGUvYXBpY2xpZW50Y29kZWdlbi93b3JrZmxvd3MvQ0xJJTIwVG9vbC9iYWRnZS5zdmcpCiFbVlNJWF0oaHR0cHM6Ly9naXRodWIuY29tL2NocmlzdGlhbmhlbGxlL2FwaWNsaWVudGNvZGVnZW4vd29ya2Zsb3dzL1ZTSVgvYmFkZ2Uuc3ZnKQohW1ZTIE1hY10oaHR0cHM6Ly9naXRodWIuY29tL2NocmlzdGlhbmhlbGxlL2FwaWNsaWVudGNvZGVnZW4vd29ya2Zsb3dzL1ZTJTIwTWFjL2JhZGdlLnN2ZykKIVtTbW9rZSBUZXN0c10oaHR0cHM6Ly9naXRodWIuY29tL2NocmlzdGlhbmhlbGxlL2FwaWNsaWVudGNvZGVnZW4vd29ya2Zsb3dzL1Ntb2tlJTIwVGVzdHMvYmFkZ2Uuc3ZnKQoKWyFbTWFpbnRhaW5hYmlsaXR5IFJhdGluZ10oaHR0cHM6Ly9zb25hcmNsb3VkLmlvL2FwaS9wcm9qZWN0X2JhZGdlcy9tZWFzdXJlP3Byb2plY3Q9Y2hyaXN0aWFuaGVsbGVfYXBpY2xpZW50Y29kZWdlbiZtZXRyaWM9c3FhbGVfcmF0aW5nKV0oaHR0cHM6Ly9zb25hcmNsb3VkLmlvL2Rhc2hib2FyZD9pZD1jaHJpc3RpYW5oZWxsZV9hcGljbGllbnRjb2RlZ2VuKQpbIVtSZWxpYWJpbGl0eSBSYXRpbmddKGh0dHBzOi8vc29uYXJjbG91ZC5pby9hcGkvcHJvamVjdF9iYWRnZXMvbWVhc3VyZT9wcm9qZWN0PWNocmlzdGlhbmhlbGxlX2FwaWNsaWVudGNvZGVnZW4mbWV0cmljPXJlbGlhYmlsaXR5X3JhdGluZyldKGh0dHBzOi8vc29uYXJjbG91ZC5pby9kYXNoYm9hcmQ/aWQ9Y2hyaXN0aWFuaGVsbGVfYXBpY2xpZW50Y29kZWdlbikKWyFbU2VjdXJpdHkgUmF0aW5nXShodHRwczovL3NvbmFyY2xvdWQuaW8vYXBpL3Byb2plY3RfYmFkZ2VzL21lYXN1cmU/cHJvamVjdD1jaHJpc3RpYW5oZWxsZV9hcGljbGllbnRjb2RlZ2VuJm1ldHJpYz1zZWN1cml0eV9yYXRpbmcpXShodHRwczovL3NvbmFyY2xvdWQuaW8vZGFzaGJvYXJkP2lkPWNocmlzdGlhbmhlbGxlX2FwaWNsaWVudGNvZGVnZW4pClshW0J1Z3NdKGh0dHBzOi8vc29uYXJjbG91ZC5pby9hcGkvcHJvamVjdF9iYWRnZXMvbWVhc3VyZT9wcm9qZWN0PWNocmlzdGlhbmhlbGxlX2FwaWNsaWVudGNvZGVnZW4mbWV0cmljPWJ1Z3MpXShodHRwczovL3NvbmFyY2xvdWQuaW8vZGFzaGJvYXJkP2lkPWNocmlzdGlhbmhlbGxlX2FwaWNsaWVudGNvZGVnZW4pClshW1Z1bG5lcmFiaWxpdGllc10oaHR0cHM6Ly9zb25hcmNsb3VkLmlvL2FwaS9wcm9qZWN0X2JhZGdlcy9tZWFzdXJlP3Byb2plY3Q9Y2hyaXN0aWFuaGVsbGVfYXBpY2xpZW50Y29kZWdlbiZtZXRyaWM9dnVsbmVyYWJpbGl0aWVzKV0oaHR0cHM6Ly9zb25hcmNsb3VkLmlvL2Rhc2hib2FyZD9pZD1jaHJpc3RpYW5oZWxsZV9hcGljbGllbnRjb2RlZ2VuKQpbIVtDb2RlIFNtZWxsc10oaHR0cHM6Ly9zb25hcmNsb3VkLmlvL2FwaS9wcm9qZWN0X2JhZGdlcy9tZWFzdXJlP3Byb2plY3Q9Y2hyaXN0aWFuaGVsbGVfYXBpY2xpZW50Y29kZWdlbiZtZXRyaWM9Y29kZV9zbWVsbHMpXShodHRwczovL3NvbmFyY2xvdWQuaW8vc3VtbWFyeS9uZXdfY29kZT9pZD1jaHJpc3RpYW5oZWxsZV9hcGljbGllbnRjb2RlZ2VuKQpbIVtDb3ZlcmFnZV0oaHR0cHM6Ly9zb25hcmNsb3VkLmlvL2FwaS9wcm9qZWN0X2JhZGdlcy9tZWFzdXJlP3Byb2plY3Q9Y2hyaXN0aWFuaGVsbGVfYXBpY2xpZW50Y29kZWdlbiZtZXRyaWM9Y292ZXJhZ2UpXShodHRwczovL3NvbmFyY2xvdWQuaW8vc3VtbWFyeS9uZXdfY29kZT9pZD1jaHJpc3RpYW5oZWxsZV9hcGljbGllbnRjb2RlZ2VuKQoKWyFbVmVyc2lvbl0oaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby92aXN1YWwtc3R1ZGlvLW1hcmtldHBsYWNlL3YvQ2hyaXN0aWFuUmVzbWFIZWxsZS5BcGlDbGllbnRDb2RlR2VuZXJhdG9yP2xhYmVsPU1hcmtldHBsYWNlKV0oaHR0cHM6Ly9tYXJrZXRwbGFjZS52aXN1YWxzdHVkaW8uY29tL2l0ZW1zP2l0ZW1OYW1lPUNocmlzdGlhblJlc21hSGVsbGUuQVBJQ2xpZW50Q29kZUdlbmVyYXRvcikgClshW0Rvd25sb2Fkc10oaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby92aXN1YWwtc3R1ZGlvLW1hcmtldHBsYWNlL2QvQ2hyaXN0aWFuUmVzbWFIZWxsZS5BcGlDbGllbnRDb2RlR2VuZXJhdG9yP2xhYmVsPVZTJTIwMjAxOSldKGh0dHBzOi8vbWFya2V0cGxhY2UudmlzdWFsc3R1ZGlvLmNvbS9pdGVtcz9pdGVtTmFtZT1DaHJpc3RpYW5SZXNtYUhlbGxlLkFQSUNsaWVudENvZGVHZW5lcmF0b3IpClshW1JhdGluZ10oaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby92aXN1YWwtc3R1ZGlvLW1hcmtldHBsYWNlL3N0YXJzL0NocmlzdGlhblJlc21hSGVsbGUuQXBpQ2xpZW50Q29kZUdlbmVyYXRvcildKGh0dHBzOi8vbWFya2V0cGxhY2UudmlzdWFsc3R1ZGlvLmNvbS9pdGVtcz9pdGVtTmFtZT1DaHJpc3RpYW5SZXNtYUhlbGxlLkFQSUNsaWVudENvZGVHZW5lcmF0b3IpClshW0Rvd25sb2Fkc10oaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby92aXN1YWwtc3R1ZGlvLW1hcmtldHBsYWNlL2QvQ2hyaXN0aWFuUmVzbWFIZWxsZS5BUElDbGllbnRDb2RlR2VuZXJhdG9yMjAyMj9sYWJlbD1WUyUyMDIwMjIpXShodHRwczovL21hcmtldHBsYWNlLnZpc3VhbHN0dWRpby5jb20vaXRlbXM/aXRlbU5hbWU9Q2hyaXN0aWFuUmVzbWFIZWxsZS5BUElDbGllbnRDb2RlR2VuZXJhdG9yMjAyMikgClshW1JhdGluZ10oaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby92aXN1YWwtc3R1ZGlvLW1hcmtldHBsYWNlL3N0YXJzL0NocmlzdGlhblJlc21hSGVsbGUuQXBpQ2xpZW50Q29kZUdlbmVyYXRvcjIwMjIpXShodHRwczovL21hcmtldHBsYWNlLnZpc3VhbHN0dWRpby5jb20vaXRlbXM/aXRlbU5hbWU9Q2hyaXN0aWFuUmVzbWFIZWxsZS5BUElDbGllbnRDb2RlR2VuZXJhdG9yMjAyMikKWyFbTnVHZXRdKGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vbnVnZXQvZHQvcmFwaWNnZW4uc3ZnP3N0eWxlPWZsYXQtc3F1YXJlJmxhYmVsPW51Z2V0KV0oaHR0cDovL3d3dy5udWdldC5vcmcvcGFja2FnZXMvcmFwaWNnZW4pCgpbIVtidXltZWFjb2ZmZWVdKGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vYmFkZ2UvYnV5JTIwbWUlMjBhJTIwY29mZmVlLWRvbmF0ZS15ZWxsb3cuc3ZnKV0oaHR0cHM6Ly93d3cuYnV5bWVhY29mZmVlLmNvbS9jaHJpc3RpYW5oZWxsZSkKWyFbSm9pbiB0aGUgY2hhdCBhdCBodHRwczovL2dpdHRlci5pbS9hcGljbGllbnRjb2RlZ2VuL2NvbW11bml0eV0oaHR0cHM6Ly9iYWRnZXMuZ2l0dGVyLmltL2FwaWNsaWVudGNvZGVnZW4vY29tbXVuaXR5LnN2ZyldKGh0dHBzOi8vZ2l0dGVyLmltL2FwaWNsaWVudGNvZGVnZW4vY29tbXVuaXR5P3V0bV9zb3VyY2U9YmFkZ2UmdXRtX21lZGl1bT1iYWRnZSZ1dG1fY2FtcGFpZ249cHItYmFkZ2UmdXRtX2NvbnRlbnQ9YmFkZ2UpCgojIFJFU1QgQVBJIENsaWVudCBDb2RlIEdlbmVyYXRvcgoKQSBjb2xsZWN0aW9uIG9mIFZpc3VhbCBTdHVkaW8gQyMgY3VzdG9tIHRvb2wgY29kZSBnZW5lcmF0b3JzIGZvciBTd2FnZ2VyIC8gT3BlbkFQSSBzcGVjaWZpY2F0aW9uIGZpbGVzCgojIyBEb3dubG9hZAoKLSAqKltWaXN1YWwgU3R1ZGlvIDIwMjJdKGh0dHBzOi8vbWFya2V0cGxhY2UudmlzdWFsc3R1ZGlvLmNvbS9pdGVtcz9pdGVtTmFtZT1DaHJpc3RpYW5SZXNtYUhlbGxlLkFwaUNsaWVudENvZGVHZW5lcmF0b3IyMDIyKSoqCi0gKipbVmlzdWFsIFN0dWRpbyAyMDE5XShodHRwczovL21hcmtldHBsYWNlLnZpc3VhbHN0dWRpby5jb20vaXRlbXM/aXRlbU5hbWU9Q2hyaXN0aWFuUmVzbWFIZWxsZS5BcGlDbGllbnRDb2RlR2VuZXJhdG9yKSoqCi0gKipbVmlzdWFsIFN0dWRpbyAyMDE3XShodHRwczovL21hcmtldHBsYWNlLnZpc3VhbHN0dWRpby5jb20vaXRlbXM/aXRlbU5hbWU9Q2hyaXN0aWFuUmVzbWFIZWxsZS5BcGlDbGllbnRDb2RlR2VuZXJhdG9yMjAxNykqKgotICoqW1Zpc3VhbCBTdHVkaW8gZm9yIE1hY10oaHR0cHM6Ly9naXRodWIuY29tL2NocmlzdGlhbmhlbGxlL2FwaWNsaWVudGNvZGVnZW4vcmVsZWFzZXMvbGF0ZXN0KSoqLiBGb2xsb3cgKipbdGhlc2UgaW5zdHJ1Y3Rpb25zXSgjdmlzdWFsLXN0dWRpby1mb3ItbWFjKSoqIGZvciB1cGRhdGUgY29udmVuaWVuY2Ugb24gVmlzdWFsIFN0dWRpbyBmb3IgTWFjCgojIyBGZWF0dXJlcwoKLSBTdXBwb3J0cyBWaXN1YWwgU3R1ZGlvIDIwMTcsIDIwMTksIDIwMjIsIGFuZCBbVmlzdWFsIFN0dWRpbyBmb3IgTWFjXSgjdmlzdWFsLXN0dWRpby1mb3ItbWFjKQotIEFkZCBOZXcgUkVTVCBBUEkgQ2xpZW50IHRvIGEgcHJvamVjdCBmcm9tIGFuIE9wZW5BUEkgc3BlY2lmaWNhdGlvbiBVUkwgKGUuZyA8aHR0cHM6Ly9wZXRzdG9yZS5zd2FnZ2VyLmlvL3YyL3N3YWdnZXIuanNvbj4pIHVzaW5nIHRoZSBmb2xsb3dpbmcgY29kZSBnZW5lcmF0b3JzOgogIC0gW05Td2FnXShodHRwczovL2dpdGh1Yi5jb20vUmljb1N1dGVyL05Td2FnKQogIC0gW09wZW5BUEkgR2VuZXJhdG9yXShodHRwczovL2dpdGh1Yi5jb20vT3BlbkFQSVRvb2xzL29wZW5hcGktZ2VuZXJhdG9yKQogIC0gW1N3YWdnZXIgQ29kZWdlbl0oaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbikKICAtIFtSZWZpdHRlcl0oaHR0cHM6Ly9naXRodWIuY29tL2NocmlzdGlhbmhlbGxlL3JlZml0dGVyKQogIC0gW01pY3Jvc29mdCBLaW90YV0oaHR0cHM6Ly9naXRodWIuY29tL21pY3Jvc29mdC9raW90YSkKICAtIFtBdXRvUmVzdF0oaHR0cHM6Ly9naXRodWIuY29tL0F6dXJlL2F1dG9yZXN0KQotIERlZmluZSBjdXN0b20gbmFtZXNwYWNlIGZvciB0aGUgZ2VuZXJhdGVkIGZpbGUKLSBBdXRvLXVwZGF0aW5nIG9mIGdlbmVyYXRlZCBjb2RlIGZpbGUgd2hlbiBjaGFuZ2VzIGFyZSBtYWRlIHRvIHRoZSBPcGVuQVBJIHNwZWNpZmljYXRpb24gSlNPTiBvciBZQU1MIGZpbGUKLSBHZW5lcmF0ZSBjb2RlIHVzaW5nIGEgY29uZmlndXJhdGlvbiBmaWxlcyB1c2luZyB0aGUgZm9sbG93aW5nOgogIC0gYC5uc3dhZ2AgY29uZmlndXJhdGlvbiBmaWxlcyBmcm9tIFtOU3dhZ1N0dWRpb10oaHR0cHM6Ly9naXRodWIuY29tL1JpY29TdXRlci9OU3dhZy93aWtpL05Td2FnU3R1ZGlvKSBieSBpbmNsdWRpbmcgaXQgaW4gdGhlIHByb2plY3QgYW5kIHVzaW5nIHRoZSAqKkdlbmVyYXRlIE5Td2FnIFN0dWRpbyBvdXRwdXQqKiBjb250ZXh0IG1lbnUKICAtIGAucmVmaXR0ZXJgIHNldHRpbmdzIGZpbGVzIGZyb20gW1JlZml0dGVyXShodHRwczovL2dpdGh1Yi5jb20vY2hyaXN0aWFuaGVsbGUvcmVmaXR0ZXIpIGJ5IGluY2x1ZGluZyBpdCBpbiB0aGUgcHJvamVjdCBhbmQgdXNpbmcgdGhlICoqR2VuZXJhdGUgUmVmaXR0ZXIgb3V0cHV0KiogY29udGV4dCBtZW51CiAgLSBga2lvdGEtbG9jay5qc29uYCBjb25maWd1cmF0aW9uIGZpbGVzIGZyb20gW01pY3Jvc29mdCBLaW90YV0oaHR0cHM6Ly9naXRodWIuY29tL21pY3Jvc29mdC9raW90YSkgYnkgaW5jbHVkaW5nIGl0IGluIHRoZSBwcm9qZWN0IGFuZCB1c2luZyB0aGUgKipHZW5lcmF0ZSBLaW90YSBvdXRwdXQqKiBjb250ZXh0IG1lbnUKCiMjIyBDdXN0b20gVG9vbHMKCkN1c3RvbSB0b29scyBsZXQgeW91IGFzc29jaWF0ZSBhIHRvb2wgd2l0aCBhbiBpdGVtIGluIGEgcHJvamVjdCBhbmQgcnVuIHRoYXQgdG9vbCB3aGVuZXZlciB0aGUgZmlsZSBpcyBzYXZlZAoKLSAqKipOU3dhZ0NvZGVHZW5lcmF0b3IqKiogLSBHZW5lcmF0ZXMgYSBzaW5nbGUgZmlsZSBDIyBSRVNUIEFQSSBDbGllbnQgdXNpbmcgdGhlIFtOU3dhZy5Db2RlR2VuZXJhdGlvbi5DU2hhcnBdKGh0dHBzOi8vZ2l0aHViLmNvbS9SU3V0ZXIvTlN3YWcvd2lraS9DU2hhcnBDbGllbnRHZW5lcmF0b3IpIFtudWdldCBwYWNrYWdlXShodHRwczovL3d3dy5udWdldC5vcmcvcGFja2FnZXMvTlN3YWcuQ29kZUdlbmVyYXRpb24uQ1NoYXJwLykgKip2MTQuMS4wKioKCi0gKioqT3BlbkFwaUNvZGVHZW5lcmF0b3IqKiogLSBHZW5lcmF0ZXMgYSBzaW5nbGUgZmlsZSBDIyBSRVNUIEFQSSBDbGllbnQgdXNpbmcgKipbT3BlbkFQSSBHZW5lcmF0b3IgdjcuNy4wXShodHRwczovL2dpdGh1Yi5jb20vT3BlbkFQSVRvb2xzL29wZW5hcGktZ2VuZXJhdG9yL3JlbGVhc2VzL3RhZy92Ny43LjApKiouClRoZSBvdXRwdXQgZmlsZSBpcyB0aGUgcmVzdWx0IG9mIG1lcmdpbmcgYWxsIHRoZSBmaWxlcyBnZW5lcmF0ZWQgdXNpbmcgdGhlIE9wZW5BUEkgR2VuZXJhdG9yIHRvb2wgd2l0aDoKYGdlbmVyYXRlIC1nIGNzaGFycCAtLWlucHV0LXNwZWMgW3N3YWdnZXIgZmlsZV0gLS1vdXRwdXQgW291dHB1dCBmaWxlXSAtRGFwaVRlc3RzPWZhbHNlIC1EbW9kZWxUZXN0cz1mYWxzZSAtRHBhY2thZ2VOYW1lPVtkZWZhdWx0IG5hbWVzcGFjZV0gLS1za2lwLW92ZXJ3cml0ZWAuIEl0IGlzIHBvc3NpYmxlIHRvIGNvbmZpZ3VyZSB0aGUgT3BlbkFQSSBHZW5lcmF0b3IgdG8gZ2VuZXJhdGUgbXVsdGlwbGUgZmlsZXMgd2hpY2ggd2lsbCBiZSBwbGFjZWQgYXQgdGhlIHNhbWUgcGF0aCBhcyB0aGUgT3BlbkFQSSBzcGVjaWZpY2F0aW9ucyBkb2N1bWVudCB0aGF0IHdhcyB1c2VkIHRvIGdlbmVyYXRlIGNvZGUsIHRoaXMgaXMgZG9uZSB1bmRlciBUb29scyAtPiBSRVNUIEFQSSBDbGllbnQgQ29kZSBHZW5lcmF0b3IgLT4gT3BlbkFQSSBHZW5lcmF0b3IgYW5kIHNldHRpbmcgKipHZW5lcmF0ZSBNdWx0aXBsZSBGaWxlcyoqIHRvICoqdHJ1ZSoqCgotICoqKktpb3RhQ29kZUdlbmVyYXRvcioqKiAtIEdlbmVyYXRlcyBhIHNpbmdsZSBmaWxlIEMjIFJFU1QgQVBJIENsaWVudCB1c2luZyB0aGUgTWljcm9zb2Z0IHByb2plY3QgKipbS2lvdGEgdjEuMTcuMF0oaHR0cHM6Ly9sZWFybi5taWNyb3NvZnQuY29tL2VuLXVzL29wZW5hcGkva2lvdGEvKSoqIGdlbmVyYXRvci4gVGhlIG91dHB1dCBmaWxlIGlzIHRoZSByZXN1bHQgb2YgbWVyZ2luZyBhbGwgdGhlIGZpbGVzIGdlbmVyYXRlZCB1c2luZyB0aGUgS2lvdGEgZG90bmV0IHRvb2wgd2l0aDogYGdlbmVyYXRlIC1sIENTaGFycCAtZCBbc3dhZ2dlciBmaWxlXSAtbyBbb3V0cHV0IGZpbGVdIC1uIFtkZWZhdWx0IG5hbWVzcGFjZV1gLiBJdCBpcyBwb3NzaWJsZSB0byBjb25maWd1cmUgdGhlIE9wZW5BUEkgR2VuZXJhdG9yIHRvIGdlbmVyYXRlIG11bHRpcGxlIGZpbGVzIHdoaWNoIHdpbGwgYmUgcGxhY2VkIGF0IHRoZSBzYW1lIHBhdGggYXMgdGhlIE9wZW5BUEkgc3BlY2lmaWNhdGlvbnMgZG9jdW1lbnQgdGhhdCB3YXMgdXNlZCB0byBnZW5lcmF0ZSBjb2RlLCB0aGlzIGlzIGRvbmUgdW5kZXIgVG9vbHMgLT4gUkVTVCBBUEkgQ2xpZW50IENvZGUgR2VuZXJhdG9yIC0+IEtpb3RhIGFuZCBzZXR0aW5nICoqR2VuZXJhdGUgTXVsdGlwbGUgRmlsZXMqKiB0byAqKnRydWUqKgoKLSAqKipTd2FnZ2VyQ29kZUdlbmVyYXRvcioqKiAtIEdlbmVyYXRlcyBhIHNpbmdsZSBmaWxlIEMjIFJFU1QgQVBJIENsaWVudCB1c2luZyAqKlN3YWdnZXIgQ29kZWdlbiBDTEkgdjMuMC4zNCoqLgpUaGUgb3V0cHV0IGZpbGUgaXMgdGhlIHJlc3VsdCBvZiBtZXJnaW5nIGFsbCB0aGUgZmlsZXMgZ2VuZXJhdGVkIHVzaW5nIHRoZSBTd2FnZ2VyIENvZGVnZW4gQ0xJIHRvb2wgd2l0aDoKYGdlbmVyYXRlIC1sIGNzaGFycCAtLWlucHV0LXNwZWMgW3N3YWdnZXIgZmlsZV0gLS1vdXRwdXQgW291dHB1dCBmaWxlXSAtRGFwaVRlc3RzPWZhbHNlIC1EbW9kZWxUZXN0cz1mYWxzZSAtRHBhY2thZ2VOYW1lPVtkZWZhdWx0IG5hbWVzcGFjZV0gLS1za2lwLW92ZXJ3cml0ZWAKCi0gKioqQXV0b1Jlc3RDb2RlR2VuZXJhdG9yKioqIC0gR2VuZXJhdGVzIGEgc2luZ2xlIGZpbGUgQyMgUkVTVCBBUEkgQ2xpZW50IHVzaW5nICoqQXV0b1Jlc3QgdjMuMC4wLWJldGEuMjAyMTA1MDQuMioqIGZvciBPcGVuQVBJIHYzIGFuZCAqKkF1dG9SZXN0IHYyLjAuNDQxNyoqIGZvciBPcGVuQVBJIHYyLiBUaGUgcmVzdWx0aW5nIGZpbGUgaXMgdGhlIGVxdWl2YWxlbnQgb2YgdXNpbmcgdGhlIEF1dG9SZXN0IENMSSB0b29sIHdpdGg6CiBgLS1jc2hhcnAgLS1pbnB1dC1maWxlPVtzd2FnZ2VyIGZpbGVdIC0tb3V0cHV0LWZpbGU9W291dHB1dCBmaWxlXSAtLW5hbWVzcGFjZT1bZGVmYXVsdCBuYW1lc3BhY2VdIC0tYWRkLWNyZWRlbnRpYWxzYAoKLSAqKipSZWZpdHRlckNvZGVHZW5lcmF0b3IqKiogLSBHZW5lcmF0ZXMgYSBzaW5nbGUgZmlsZSBDIyBSRVNUIEFQSSBDbGllbnQgaW50ZWZhY2UgZm9yIFtSZWZpdF0oaHR0cHM6Ly9naXRodWIuY29tL3JlYWN0aXZldWkvcmVmaXQpIHVzaW5nIFtSZWZpdHRlci5Db3JlXShodHRwczovL2dpdGh1Yi5jb20vY2hyaXN0aWFuaGVsbGUvcmVmaXR0ZXIpIFtudWdldCBwYWNrYWdlXShodHRwczovL3d3dy5udWdldC5vcmcvcGFja2FnZXMvUmVmaXR0ZXIuQ29yZS8pICoqdjEuMi4wKiouClRoZSBvdXRwdXQgZmlsZSBjb250YWlucyBhIFJlZml0IGludGVyZmFjZSBnZW5lcmF0ZWQgYnkgW1JlZml0dGVyXShodHRwczovL2dpdGh1Yi5jb20vY2hyaXN0aWFuaGVsbGUvcmVmaXR0ZXIpIGFuZCBjb250cmFjdHMgZ2VuZXJhdGVkIHVzaW5nIFtOU3dhZy5Db2RlR2VuZXJhdGlvbi5DU2hhcnBdKGh0dHBzOi8vZ2l0aHViLmNvbS9SU3V0ZXIvTlN3YWcvd2lraS9DU2hhcnBDbGllbnRHZW5lcmF0b3IpIFtudWdldCBwYWNrYWdlXShodHRwczovL3d3dy5udWdldC5vcmcvcGFja2FnZXMvTlN3YWcuQ29kZUdlbmVyYXRpb24uQ1NoYXJwLykKCiMjIyBEZXBlbmRlbmNpZXMKClRoZSBjdXN0b20gdG9vbCBjb2RlIGdlbmVyYXRvcnMgcGlnZ3kgYmFjayBvbiB0b3Agb2Ygd2VsbCBrbm93biBPcGVuIEFQSSBjbGllbnQgY29kZSBnZW5lcmF0b3JzIGxpa2UgKipBdXRvUmVzdCoqLCAqKk5Td2FnKiosICoqT3BlbkFQSSBHZW5lcmF0b3IqKiwgKipNaWNyb3NvZnQgS2lvdGEqKiwgKipSZWZpdHRlcioqLCBhbmQgKipTd2FnZ2VyIENvZGVnZW4gQ0xJKiouIFRoZXNlIHRvb2xzIHJlcXVpcmUgW05QTV0oaHR0cHM6Ly93d3cubnBtanMuY29tL2dldC1ucG0pIGFuZCB0aGUgW0phdmEgUnVudGltZSBFbnZpcm9ubWVudF0oaHR0cHM6Ly9qYXZhLmNvbS9lbi9kb3dubG9hZC9tYW51YWwuanNwKSB0byBiZSBpbnN0YWxsZWQgb24gdGhlIGRldmVsb3BlcnMgbWFjaGluZS4gQWx0ZXJuYXRpdmUgSmF2YSBTREsgaW1wbGVtZW50YXRpb25zIHN1Y2ggYXMgdGhlIFtPcGVuSkRLXShodHRwczovL2Fkb3B0b3Blbmpkay5uZXQpIHdvcmtzIGZpbmUgd2l0aCB0aGlzIGV4dGVuc2lvbi4gQnkgZGVmYXVsdCwgdGhlIHBhdGggdG8gKipqYXZhLmV4ZSoqIGlzIHJlYWQgZnJvbSB0aGUgKipKQVZBX0hPTUUqKiBlbnZpcm9ubWVudCB2YXJpYWJsZSwgYnV0IGlzIGFsc28gY29uZmlndXJhYmxlIGluIHRoZSBTZXR0aW5ncyBzY3JlZW4uIEZ1dHVyZSB2ZXJzaW9ucyBvZiB0aGUgZXh0ZW5zaW9uIHdpbGwgaW5jbHVkZSB0aGUgW09wZW5KREtdKGh0dHBzOi8vYWRvcHRvcGVuamRrLm5ldCkgaW4gdGhlIFZTSVggcGFja2FnZQoKVGhlICoqU3dhZ2dlciBDb2RlZ2VuIENMSSoqIGFuZCAqKk9wZW5BUEkgR2VuZXJhdG9yKiogYXJlIGRpc3RyaWJ1dGVkIGFzIEpBUiBmaWxlcyBhbmQgYXJlIGRvd25sb2FkZWQgb24gZGVtYW5kIGJ1dCByZXF1aXJlcyB0aGUgSmF2YSBTREsgdG8gYmUgaW5zdGFsbGVkIG9uIHRoZSBtYWNoaW5lLiAqKkF1dG9SZXN0KiogaXMgaW5zdGFsbGVkIG9uLWRlbWFuZCB2aWEgW05QTV0oaHR0cHM6Ly93d3cubnBtanMuY29tL2dldC1ucG0pIGFzIGEgZ2xvYmFsIHRvb2wgYW5kIHVzZXMgdGhlIGxhdGVzdCBhdmFpbGFibGUgdmVyc2lvbi4gKipNaWNyb3NvZnQgS2lvdGEqKiBpcyBpbnN0YWxsZWQgb24tZGVtYW5kIGFzIGEgLk5FVCBUb29sIGFuZCByZXF1aXJlcyAuTkVUIDcuMC4gVGhpcyBtZWFucyB0aGF0IHVzaW5nIHRoZXNlIGN1c3RvbSB0b29scyBoYXZlIGFuIGluaXRpYWwgZGVsYXkgdXBvbiBmaXJzdCB0aW1lIHVzZS4gCgoqKk5Td2FnU3R1ZGlvKiogaXMgc3RhbmQgYWxvbmUgVUkgdG9vbCBmb3IgZWRpdGluZyBhICoqLm5zd2FnKiogc3BlY2lmaWNhdGlvbiBmaWxlIGZvciBnZW5lcmF0aW5nIGNvZGUuIFRoaXMgdG9vbCBpcyBvcHRpb25hbCB0byBpbnN0YWxsIGFuZCBvZmZpY2lhbCBpbnN0YWxsYXRpb24gaW5zdHJ1Y3Rpb25zIGFyZSBhdmFpbGFibGUgb24gdGhlIFtOU3dhZyBXaWtpIG9uIEdpdGh1Yl0oaHR0cHM6Ly9naXRodWIuY29tL1JpY29TdXRlci9OU3dhZy93aWtpL05Td2FnU3R1ZGlvKS4gSWYgKipOU3dhZ1N0dWRpbyoqIGlzIG5vdCBpbnN0YWxsZWQgb24gdGhlIG1hY2hpbmUgdGhlbiB0aGUgVmlzdWFsIFN0dWRpbyBFeHRlbnNpb24gd2lsbCBpbnN0YWxsIHRoZSAqKk5Td2FnIENMSSoqIHZpYSBbTlBNXShodHRwczovL3d3dy5ucG1qcy5jb20vZ2V0LW5wbSkgYXMgYSBnbG9iYWwgdG9vbCB1c2luZyB0aGUgbGF0ZXN0IGF2YWlsYWJsZSB2ZXJzaW9uLiAKClRoZSAqKk5Td2FnKiogY29kZSBnZW5lcmF0b3IgcHJvZHVjZXMgY29kZSB0aGF0IGRlcGVuZHMgb24gdGhlIFtOZXd0b25zb2Z0Lkpzb25dKGh0dHBzOi8vd3d3Lm51Z2V0Lm9yZy9wYWNrYWdlcy9OZXd0b25zb2Z0Lkpzb24vMTMuMC4zKSBOdUdldCBwYWNrYWdlCgpUaGUgKipSZWZpdHRlcioqIGNvZGUgZ2VuZXJhdG9yIHByb2R1Y2VzIGNvZGUgdGhhdCBkZXBlbmRzIG9uIHRoZSBbUmVmaXRdKGh0dHBzOi8vd3d3Lm51Z2V0Lm9yZy9wYWNrYWdlcy9SZWZpdC83LjAuMCkgTnVHZXQgcGFja2FnZQoKVGhlICoqT3BlbkFQSSBHZW5lcmF0b3IqKiBjb2RlIGdlbmVyYXRvciBwcm9kdWNlcyBjb2RlIHRoYXQgZGVwZW5kcyBvbiB0aGUgZm9sbG93aW5nIE51R2V0IHBhY2thZ2VzOgoKLSBbUmVzdFNoYXJwXShodHRwczovL3d3dy5udWdldC5vcmcvcGFja2FnZXMvUmVzdFNoYXJwLzExMC4yLjApCi0gW0pzb25TdWJUeXBlc10oaHR0cHM6Ly93d3cubnVnZXQub3JnL3BhY2thZ2VzL0pzb25TdWJUeXBlcy8yLjAuMSkKLSBbUG9sbHldKGh0dHBzOi8vd3d3Lm51Z2V0Lm9yZy9wYWNrYWdlcy9Qb2xseS84LjQuMCkKLSBbTmV3dG9uc29mdC5Kc29uXShodHRwczovL3d3dy5udWdldC5vcmcvcGFja2FnZXMvTmV3dG9uc29mdC5Kc29uLzEzLjAuMykKClRoZSBwcm9qZWN0ICoqS2lvdGEqKiBjb2RlIGdlbmVyYXRvciBwcm9kdWNlcyBjb2RlIHRoYXQgZGVwZW5kcyBvbiB0aGUgZm9sbG93aW5nIE51R2V0IHBhY2thZ2VzCgotIFtNaWNyb3NvZnQuS2lvdGEuQWJzdHJhY3Rpb25zXShodHRwczovL3d3dy5udWdldC5vcmcvcGFja2FnZXMvTWljcm9zb2Z0Lktpb3RhLkFic3RyYWN0aW9ucykKLSBbTWljcm9zb2Z0Lktpb3RhLkh0dHAuSHR0cENsaWVudExpYnJhcnldKGh0dHBzOi8vd3d3Lm51Z2V0Lm9yZy9wYWNrYWdlcy9NaWNyb3NvZnQuS2lvdGEuSHR0cC5IdHRwQ2xpZW50TGlicmFyeSkKLSBbTWljcm9zb2Z0Lktpb3RhLlNlcmlhbGl6YXRpb24uRm9ybV0oaHR0cHM6Ly93d3cubnVnZXQub3JnL3BhY2thZ2VzL01pY3Jvc29mdC5LaW90YS5TZXJpYWxpemF0aW9uLkZvcm0pCi0gW01pY3Jvc29mdC5LaW90YS5TZXJpYWxpemF0aW9uLlRleHRdKGh0dHBzOi8vd3d3Lm51Z2V0Lm9yZy9wYWNrYWdlcy9NaWNyb3NvZnQuS2lvdGEuU2VyaWFsaXphdGlvbi5UZXh0KQotIFtNaWNyb3NvZnQuS2lvdGEuU2VyaWFsaXphdGlvbi5Kc29uXShodHRwczovL3d3dy5udWdldC5vcmcvcGFja2FnZXMvTWljcm9zb2Z0Lktpb3RhLlNlcmlhbGl6YXRpb24uSnNvbikKLSBbTWljcm9zb2Z0Lktpb3RhLlNlcmlhbGl6YXRpb24uTXVsdGlwYXJ0XShodHRwczovL3d3dy5udWdldC5vcmcvcGFja2FnZXMvTWljcm9zb2Z0Lktpb3RhLlNlcmlhbGl6YXRpb24uTXVsdGlwYXJ0KQotIFtNaWNyb3NvZnQuS2lvdGEuQXV0aGVudGljYXRpb24uQXp1cmVdKGh0dHBzOi8vd3d3Lm51Z2V0Lm9yZy9wYWNrYWdlcy9NaWNyb3NvZnQuS2lvdGEuQXV0aGVudGljYXRpb24uQXp1cmUpCi0gW0F6dXJlLklkZW50aXR5XShodHRwczovL3d3dy5udWdldC5vcmcvcGFja2FnZXMvQXp1cmUuSWRlbnRpdHkpCgpUaGUgKipTd2FnZ2VyIENvZGVnZW4gQ0xJKiogY29kZSBnZW5lcmF0b3IgcHJvZHVjZXMgY29kZSB0aGF0IGRlcGVuZHMgb24gdGhlIFtSZXN0U2hhcnBdKGh0dHBzOi8vd3d3Lm51Z2V0Lm9yZy9wYWNrYWdlcy9SZXN0U2hhcnAvMTA1LjEuMCkgYW5kIFtKc29uU3ViVHlwZXNdKGh0dHBzOi8vd3d3Lm51Z2V0Lm9yZy9wYWNrYWdlcy9Kc29uU3ViVHlwZXMvMS4yLjApIE51R2V0IHBhY2thZ2VzCgpUaGUgKipBdXRvUmVzdCoqIGNvZGUgZ2VuZXJhdG9yIHByb2R1Y2VzIGNvZGUgdGhhdCBkZXBlbmRzIG9uIHRoZSBbTWljcm9zb2Z0LlJlc3QuQ2xpZW50UnVudGltZV0oaHR0cHM6Ly93d3cubnVnZXQub3JnL3BhY2thZ2VzL01pY3Jvc29mdC5SZXN0LkNsaWVudFJ1bnRpbWUvMi4zLjI0KSBhbmQgW05ld3RvbnNvZnQuSnNvbl0oaHR0cHM6Ly93d3cubnVnZXQub3JnL3BhY2thZ2VzL05ld3RvbnNvZnQuSnNvbi8xMy4wLjMpIE51R2V0IHBhY2thZ2VzCgpUaGlzIFZpc3VhbCBTdHVkaW8gRXh0ZW5zaW9uIHdpbGwgYXV0b21hdGljYWxseSBhZGQgdGhlIHJlcXVpcmVkIE51R2V0IHBhY2thZ2VzIHRoYXQgdGhlIGdlbmVyYXRlZCBjb2RlIGRlcGVuZHMgb24KCiMjIFNjcmVlbnNob3RzCgohW0FkZCAtIEFQSSBDbGllbnQgZnJvbSBPcGVuQVBJIFNwZWNpZmljYXRpb25dKGltYWdlcy9hZGQtbmV3LW1lbnUucG5nKQoKIVtFbnRlciBVUkwgdG8gT3BlbkFQSSBTcGVjaWZpY2F0aW9uXShpbWFnZXMvYWRkLW5ldy1kaWFsb2cucG5nKQoKIVtTb2x1dGlvbiBFeHBsb3JlciBDb250ZXh0IE1lbnVzXShpbWFnZXMvc29sdXRpb24tZXhwbG9yZXItY29udGV4dC1tZW51LmpwZykKCiFbTlN3YWcgU3R1ZGlvIENvbnRleHQgTWVudV0oaW1hZ2VzL25zd2Fnc3R1ZGlvLWNvbnRleHQtbWVudS5qcGcpCgohW1JlZml0dGVyIENvbnRleHQgTWVudV0oaW1hZ2VzL3JlZml0dGVyLWNvbW1hbmQucG5nKQoKIVtLaW90YSBDb250ZXh0IE1lbnVdKGltYWdlcy9nZW5lcmF0ZS1raW90YS1vdXRwdXQucG5nKQoKIyMjIFNldHRpbmdzCgpUaGlzIGV4dGVuc2lvbiB3aWxsIGJ5IGRlZmF1bHQgbWFrZSBzb21lIGFzc3VtcHRpb25zIG9uIHRoZSBpbnN0YWxsYXRpb24gcGF0aHMgZm9yICoqSmF2YSoqLCAqKk5Td2FnKiogYW5kICoqTlBNKiogYnV0IGFsc28gcHJvdmlkZXMgb3B0aW9uIHBhZ2VzIGZvciBjb25maWd1cmluZyB0aGlzLiBUaGUgKipTd2FnZ2VyIENvZGVnZW4gQ0xJKiogYW5kIHRoZSAqKk9wZW5BUEkgR2VuZXJhdG9yKiogSkFSIGZpbGVzIGFyZSBieSBkZWZhdWx0IGRvd25sb2FkZWQgdG8gdGhlIHVzZXIgVEVNUCBmb2xkZXIgYnV0IGl0IGlzIGFsc28gcG9zc2libGUgdG8gc3BlY2lmeSB0byB1c2UgZXhpc3RpbmcgSkFSIGZpbGVzCgohW09wdGlvbnMgLSBHZW5lcmFsXShpbWFnZXMvb3B0aW9ucy1nZW5lcmFsLnBuZykKClN1cHBvcnRzIGN1c3RvbWlzaW5nIGhvdyBBdXRvUmVzdCBnZW5lcmF0ZXMgY29kZSBiYXNlZCBvbiB0aGUgQyMgZ2VuZXJhdG9yIHNldHRpbmdzIHRoYXQgdGhlIEF1dG9SZXN0IENMSSB0b29sIHByb3ZpZGVzCgohW09wdGlvbnMgLSBBdXRvUmVzdF0oaW1hZ2VzL29wdGlvbnMtYXV0b3Jlc3QucG5nKQoKU3VwcG9ydHMgY3VzdG9taXNpbmcgaG93IE5Td2FnIGdlbmVyYXRlcyBjb2RlIHVzaW5nIHRoZSBwcm9wZXJ0aWVzIGV4cG9zZWQgYnkgdGhlIE5Td2FnIE51R2V0IHBhY2thZ2UKCiFbT3B0aW9ucyAtIE5Td2FnXShpbWFnZXMvb3B0aW9ucy1uc3dhZy5wbmcpCgpTdXBwb3J0cyBjdXN0b21pc2luZyBob3cgdGhlICoqLm5zd2FnKiogZmlsZSBpcyBnZW5lcmF0ZWQgdXNpbmcgYSBzdWJzZXQgb2YgdGhlIG9wdGlvbnMgYXZhaWxhYmxlIGluIE5Td2FnIFN0dWRpbwoKIVtPcHRpb25zIC0gTlN3YWcgU3R1ZGlvXShpbWFnZXMvb3B0aW9ucy1uc3dhZ3N0dWRpby5wbmcpCgpTdXBwb3J0cyBjdXN0b21pc2luZyBob3cgT3BlbkFQSSBHZW5lcmF0b3IgZ2VuZXJhdGVzIGNvZGUgdXNpbmcgdGhlIGFkZGl0aW9uYWwgb3B0aW9uYWwgcHJvcGVydGllcyB0aGF0IHRoZSBPcGVuQVBJIEdlbmVyYXRvciBDTEkgdG9vbCBwcm92aWRlcwoKIVtPcHRpb25zIC0gT3BlbkFQSSBHZW5lcmF0b3JdKGltYWdlcy9vcHRpb25zLW9wZW5hcGlnZW5lcmF0b3IucG5nKQoKU3VwcG9ydHMgY3VzdG9taXNpbmcgaG93IFJlZml0dGVyIGdlbmVyYXRlcyB0aGUgUmVmaXQgaW50ZXJmYWNlLiBUaGlzIGFsbG93cyB5b3UgdG8gY29uZmlndXJlIHdoZXRoZXIgdG8gcmV0dXJuIHRoZSB0eXBlIGRpcmVjdGx5IG9yIHdyYXAgaXQgaW5zaWRlIGFuIGBJQXBpUmVzcG9uc2U8VD5gLiBZb3UgY2FuIGFsc28gZGlzYWJsZSBnZW5lcmF0aW5nIGNvbnRyYWN0cyBvciBYTUwgZG9jIHN0eWxlIGNvbW1lbnRzCgohW09wdGlvbnMgLSBSZWZpdHRlcl0oaW1hZ2VzL3JlZml0dGVyLW9wdGlvbnMucG5nKQoKU3VwcG9ydHMgYWxsb3dpbmcgS2lvdGEgdG8gZ2VuZXJhdGUgbXVsdGlwbGUgZmlsZXMKCiFbT3B0aW9ucyAtIEtpb3RhXShpbWFnZXMvb3B0aW9ucy1raW90YS5wbmcpCgpUaGlzIGV4dGVuc2lvbiBjb2xsZWN0cyBlcnJvcnMgYW5kIHRyYWNrcyBmZWF0dXJlIHVzYWdlcyB0byBhIHNlcnZpY2UgY2FsbGVkIFtFeGNlcHRpb25sZXNzXShodHRwczovL2V4Y2VwdGlvbmxlc3MuY29tKSBhbmQgW0F6dXJlIEFwcGxpY2F0aW9uIEluc2lnaHRzXShodHRwczovL2xlYXJuLm1pY3Jvc29mdC5jb20vZW4tdXMvYXp1cmUvYXp1cmUtbW9uaXRvci9hcHAvYXBwLWluc2lnaHRzLW92ZXJ2aWV3P1dULm1jX2lkPURULU1WUC01MDA0ODIyKS4gVGhpcyBpcyBkb25lIGFub255bW91c2x5IHVzaW5nIGEgc3VwcG9ydCBrZXkgYW5kIGEgZ2VuZXJhdGVkIGFub255bW91cyBpZGVudGl0eSBiYXNlZCBvbiBhIHNlY3VyZSBoYXNoIG9mIHVzZXJuYW1lQGhvc3QKCiFbT3B0aW9ucyAtIEFuYWx5dGljc10oaW1hZ2VzL3N1cHBvcnQta2V5LnBuZykKCiMjIyBNYWNPUwoKIVtBZGQgLSBBUEkgQ2xpZW50IGZyb20gT3BlbkFQSSBTcGVjaWZpY2F0aW9uXShpbWFnZXMvdnNtYWMtYWRkLW5ldy1tZW51LnBuZykKCiFbRW50ZXIgVVJMIHRvIE9wZW5BUEkgU3BlY2lmaWNhdGlvbl0oaW1hZ2VzL3ZzbWFjLWFkZC1uZXctZGlhbG9nLnBuZykKCiFbU29sdXRpb24gRXhwbG9yZXIgQ29udGV4dCBNZW51c10oaW1hZ2VzL3ZzbWFjLWdlbmVyYXRlLWNvZGUucG5nKQoKIVtOU3dhZyBTdHVkaW8gQ29udGV4dCBNZW51XShpbWFnZXMvdnNtYWMtbnN3YWctc3R1ZGlvLnBuZykKCiMgSW5zdGFsbGF0aW9uCgpUaGUgVmlzdWFsIFN0dWRpbyBleHRlbnNpb24gY2FuIGJlIGluc3RhbGxlZCBkaXJlY3RseSBmcm9tIFZpc3VhbCBTdHVkaW8gMjAxOSBhbmQgMjAyMiB2aWEgdGhlICoqRXh0ZW5zaW9ucyBEaWFsb2cgQm94KiouIFRoZSBwcm9jZXNzIGlzIGJlc3QgZGVzY3JpYmVkIGluIHRoZSBvZmZpY2lhbCBNaWNyb3NvZnQgZG9jdW1lbnRhdGlvbiBmb3IgW01hbmFnaW5nIGV4dGVuc2lvbnMgZm9yIFZpc3VhbCBTdHVkaW9dKGh0dHBzOi8vZG9jcy5taWNyb3NvZnQuY29tL2VuLXVzL3Zpc3VhbHN0dWRpby9pZGUvZmluZGluZy1hbmQtdXNpbmctdmlzdWFsLXN0dWRpby1leHRlbnNpb25zP3ZpZXc9dnMtMjAxOSZXVC5tY19pZD1EVC1NVlAtNTAwNDgyMikKCiMjIFZpc3VhbCBTdHVkaW8gZm9yIE1hYwoKVGhpcyBpbnN0YWxsYXRpb24gcHJvY2VzcyBmb3IgKipWaXN1YWwgU3R1ZGlvIGZvciBNYWMqKiBpcyBjdXJyZW50bHkgYSBiaXQgdHJvdWJsZXNvbWUgYXMgdGhlIE1vbm9EZXZlbG9wIEFkZGluIFJlcG9zaXRvcnkgaXMgY3VycmVudGx5IG5vdCBhY2NlcHRpbmcgbmV3IHVzZXJzIHNvIEkgY2FuJ3QgcmVhbGx5IHJlZ2lzdGVyIGFuZCBzZXR1cCBteSBleHRlbnNpb24uCgpUaGVyZSBhcmUgMiB3YXlzIG9mIGluc3RhbGxpbmcgbXkgZXh0ZW5zaW9uIG9uIFZpc3VhbCBTdHVkaW8gZm9yIE1hYzogQWRkaW5nIGEgY3VzdG9tIGV4dGVuc2lvbiByZXBvc2l0b3J5IG9yIEluc3RhbGxpbmcgdGhlICoqLm1wYWNrKiogZmlsZSBkaXJlY3RseSBmcm9tIHRoZSBFeHRlbnNpb25zIE1hbmFnZXIKCiMjIyBBZGRpbmcgYSBuZXcgZXh0ZW5zaW9uIHJlcG9zaXRvcnkKCkhlcmUncyB3aGF0IHlvdSBuZWVkIHRvIGRvOgoKLSBPcGVuIHRoZSBWaXN1YWwgU3R1ZGlvIGZvciBNYWMgKipFeHRlbnNpb24gTWFuYWdlcioqCi0gWW91IGNhbiBkbyB0aGlzIGZyb20gdGhlIG1lbnUgKipWaXN1YWwgU3R1ZGlvKiogLT4gKipFeHRlbnRpb25zKioKCiFbT3BlbiBFeHRlbnNpb25zIERpYWxvZyBCb3hdKGltYWdlcy92c21hYy1leHRlbnNpb25zLW1lbnUucG5nKQoKLSBTZWxlY3QgdGhlICoqR2FsbGVyeSoqIFRhYgotIEV4cGFuZCB0aGUgUmVwb3NpdG9yeSBkcm9wIGRvd24gYm94IGFuZCBzZWxlY3QgKipNYW5hZ2UgUmVwb3NpdG9yaWVzKioKCiFbTWFuYWdlIFJlcG9zaXRvcmllc10oaW1hZ2VzL3ZzbWFjLWV4dGVuc2lvbnMtbWFuYWdlLXJlcG9zaXRvcmllcy5wbmcpCgotIFByZXNzIG9uIHRoZSAqKkFkZCoqIGJ1dHRvbiB0byBhZGQgYSBuZXcgY3VzdG9tIGV4dGVuc2lvbiByZXBvc2l0b3J5CgohW01hbmFnZSBSZXBvc2l0b3JpZXNdKGltYWdlcy92c21hYy1leHRlbnNpb25zLXJlcG9zaXRvcmllcy5wbmcpCgotIFJlZ2lzdGVyIGFuIG9ubGluZSByZXBvc2l0b3J5IGF0ICoqaHR0cHM6Ly9jaHJpc3RpYW5oZWxsZS5jb20vdnNtYWMvbWFpbi5tcmVwKioKLSBDbGljayAqKk9LKioKCiFbQWRkIFJlcG9zaXRvcnldKGltYWdlcy92c21hYy1leHRlbnNpb25zLWFkZC1yZXBvc2l0b3J5LnBuZykKCi0gTm93IG15IGV4dGVuc2lvbiByZXBvc2l0b3J5IGlzIGFkZGVkIHRvIHRoZSBsaXN0Ci0gTWFrZSBzdXJlIHRoYXQgdGhpcyBpcyBlbmFibGVkIChpbmRpY2F0ZWQgYnkgYSBjaGVjayBib3gpCgohW0FkZCBSZXBvc2l0b3J5IERpYWxvZ10oaW1hZ2VzL3ZzbWFjLWV4dGVuc2lvbnMtYWRkZWQtcmVwb3NpdG9yeS5wbmcpCgotIFlvdSBzaG91bGQgbm93IGJlIGFibGUgdG8gc2VlIG15IGV4dGVuc2lvbnMgZnJvbSB0aGUgKipHYWxsZXJ5KiogdGFiCgohW0FkZGVkIFJlcG9zaXRvcnldKGltYWdlcy92c21hYy1leHRlbnNpb25zLWdhbGxlcnkucG5nKQoKLSBCeSBhZGRpbmcgbXkgZXh0ZW5zaW9uIHJlcG9zaXRvcnkgeW91IHdpbGwgYmUgYWJsZSB0byBjb252ZW5pZW50bHkgdXBkYXRlIG15IGV4dGVuc2lvbiB1c2luZyB0aGUgVmlzdWFsIFN0dWRpbyBmb3IgTWFjIEV4dGVuc2lvbiBNYW5hZ2VyCgohW0FkZCBSZXBvc2l0b3J5XShpbWFnZXMvdnNtYWMtdXBkYXRlcy5wbmcpCgohW0FkZCBSZXBvc2l0b3J5XShpbWFnZXMvdnNtYWMtdXBkYXRlLWluc3RhbGwucG5nKQoKIVtBZGQgUmVwb3NpdG9yeV0oaW1hZ2VzL3ZzbWFjLXVwZGF0ZS1pbnN0YWxsLXByb2dyZXNzLnBuZykKCiMjIyBJbnN0YWxsaW5nIHRoZSAqKi5tcGFjayoqIGZpbGUgZGlyZWN0bHkKCkhlcmUncyB3aGF0IHlvdSBuZWVkIHRvIGRvOgotIERvd25sb2FkIHRoZSBsYXRlc3QgKioubXBhY2sgZmlsZSoqIGZyb20gdGhlIFtMYXRlc3QgR2l0aHViIFJlbGVhc2VdKGh0dHBzOi8vZ2l0aHViLmNvbS9jaHJpc3RpYW5oZWxsZS9hcGljbGllbnRjb2RlZ2VuL3JlbGVhc2VzL2xhdGVzdCkKLSBOb3cgZnJvbSB3aXRoaW4gVmlzdWFsIFN0dWRpbyBmb3IgTWFjIHlvdSBuZWVkIHRvIGxhdW5jaCB0aGUgKipFeHRlbnNpb25zIERpYWxvZyBCb3gqKi4gWW91IGNhbiBkbyB0aGlzIGZyb20gdGhlIG1lbnUgKipWaXN1YWwgU3R1ZGlvKiogLT4gKipFeHRlbnRpb25zKioKCiFbT3BlbiBFeHRlbnNpb25zIERpYWxvZyBCb3hdKGltYWdlcy92c21hYy1leHRlbnNpb25zLW1lbnUucG5nKQoKLSBDbGljayBvbiB0aGUgKipJbnN0YWxsIGZyb20gRmlsZSoqIGJ1dHRvbgoKIVtNYW51YWxseSBpbnN0YWxsIC5tcGFjayBmaWxlXShpbWFnZXMvdnNtYWMtZXh0ZW5zaW9ucy1pbnN0YWxsLnBuZykKCi0gQnJvd3NlIHRvIHRoZSAubXBhY2sgZmlsZSBhbmQgc2VsZWN0IGl0LiBZb3Ugd2lsbCBiZSBwcm9tcHRlZCB3aXRoIGEgY29uZmlybWF0aW9uIGRpYWxvZwoKIVtDb25maXJtIC5tcGFjayBmaWxlIGluc3RhbGxdKGltYWdlcy92c21hYy1leHRlbnNpb25zLWluc3RhbGwtY29uZmlybS5wbmcpCgotIENsaWNrICoqSW5zdGFsbCoqIGFuZCByZXN0YXJ0IFZpc3VhbCBTdHVkaW8gZm9yIE1hYwotIFRvIFZlcmlmeSB0aGF0IHRoZSBBZGQtaW4gd2FzIGluc3RhbGxlZCB5b3UgY2FuIHJlLW9wZW4gdGhlIEV4dGVuc2lvbnMgRGlhbG9nIEJveCwgc2VsZWN0IHRoZSAqKkluc3RhbGxlZCoqIHRhYiBhbmQgZXhwYW5kIHRoZSAqKklERSBFeHRlbnNpb25zKiouIFlvdSBzaG91bGQgYmUgYWJsZSB0byBzZWUgdGhlICoqUkVTVCBBUEkgQ2xpZW50IENvZGUgR2VuZXJhdG9yKiouCgotIFVuaW5zdGFsbGluZyB0aGUgQWRkLWluIGlzIGRvbmUgaW4gdGhpcyBzYW1lIGRpYWxvZyBib3ggYnkgY2xpY2tpbmcgdGhlICoqVW5pbnN0YWxsKiogYnV0dG9uCgohW01hbnVhbGx5IHVuaW5zdGFsbCBBZGQtaW5dKGltYWdlcy92c21hYy1leHRlbnNpb25zLXVuaW5zdGFsbC5wbmcpCgoKIyBDcm9zcyBQbGF0Zm9ybSBDb21tYW5kIExpbmUgVG9vbApBbGwgY3VzdG9tIHRvb2xzIG1lbnRpb25lZCBhYm92ZSBhcmUgYWxzbyBpbXBsZW1lbnRlZCBpbiBhIGNyb3NzIHBsYXRmb3JtIGNvbW1hbmQgbGluZSBhcHBsaWNhdGlvbgoKIyMjIyBSZXF1aXJlbWVudHMKLSAuTkVUIDYuMCBydW50aW1lCi0gSmF2YSBSdW50aW1lIEVudmlyb25tZW50Ci0gTlBNCgojIyMgSW5zdGFsbGF0aW9uClRoZSB0b29sIGNhbiBiZSBpbnN0YWxsZWQgYXMgYSAuTkVUIENvcmUgZ2xvYmFsIHRvb2wgdGhhdCB5b3UgY2FuIGNhbGwgZnJvbSB0aGUgc2hlbGwgLyBjb21tYW5kIGxpbmUKYGBgCmRvdG5ldCB0b29sIGluc3RhbGwgLS1nbG9iYWwgcmFwaWNnZW4KYGBgCm9yIGJ5IGZvbGxvd2luZyB0aGUgaW5zdHJ1Y3Rpb25zIFtoZXJlXShodHRwczovL3d3dy5udWdldC5vcmcvcGFja2FnZXMvcmFwaWNnZW4pIHRvIGluc3RhbGwgYSBzcGVjaWZpYyB2ZXJzaW9uIG9mIHRvb2wKCiMjIyBVc2FnZQpTaW5jZSB0aGUgdG9vbCBpcyBwdWJsaXNoZWQgYXMgYSAuTkVUIENvcmUgVG9vbCwgaXQgY2FuIGJlIGxhdW5jaGVkIGZyb20gYW55d2hlcmUgdXNpbmcgYW55IGNvbW1hbmQgbGluZSBpbnRlcmZhY2UgYnkgY2FsbGluZyAqKnJhcGljZ2VuKiouClRoZSBoZWxwIGluZm9ybWF0aW9uIGlzIGRpc3BsYXllZCB3aGVuIG5vdCBzcGVjaWZ5aW5nIGFueSBhcmd1bWVudHMgdG8gKipyYXBpY2dlbioqCgpgYGAKVXNhZ2U6IHJhcGljZ2VuIFtjb21tYW5kXSBbb3B0aW9uc10KCk9wdGlvbnM6CiAgLXZ8LS12ZXJib3NlICAgICAgIFNob3cgdmVyYm9zZSBvdXRwdXQKICAtP3wtaHwtLWhlbHAgICAgICAgU2hvdyBoZWxwIGluZm9ybWF0aW9uLgoKQ29tbWFuZHM6CiAgY3NoYXJwICAgICAgICAgICAgIEdlbmVyYXRlIEMjIEFQSSBjbGllbnRzCiAgam1ldGVyICAgICAgICAgICAgIEdlbmVyYXRlIEFwYWNoZSBKTWV0ZXIgdGVzdCBwbGFucwogIG9wZW5hcGktZ2VuZXJhdG9yICBHZW5lcmF0ZSBjb2RlIHVzaW5nIE9wZW5BUEkgR2VuZXJhdG9yICh2Ny43LjApLgogICAgICAgICAgICAgICAgICAgICBTZWUgc3VwcG9ydGVkIGdlbmVyYXRvcnMgYXQgaHR0cHM6Ly9vcGVuYXBpLWdlbmVyYXRvci50ZWNoL2RvY3MvZ2VuZXJhdG9ycy8KICB0eXBlc2NyaXB0ICAgICAgICAgR2VuZXJhdGUgVHlwZVNjcmlwdCBBUEkgY2xpZW50cwoKUnVuICdyYXBpY2dlbiBbY29tbWFuZF0gLT98LWh8LS1oZWxwJyBmb3IgbW9yZSBpbmZvcm1hdGlvbiBhYm91dCBhIGNvbW1hbmQuCmBgYAoKU29tZSBoZWxwIGluZm9ybWF0aW9uIGlzIGFsc28gcHJvdmlkZWQgcGVyIGNvbW1hbmQgYW5kIGNhbiBiZSBsYXVuY2hlZCBieSAKCmBgYApyYXBpY2dlbiBbY29tbWFuZCBuYW1lXSAtPwpgYGAKCm9yCgpgYGAKcmFwaWNnZW4gW2NvbW1hbmQgbmFtZV0gW3N1YiBjb21tYW5kIG5hbWVdIC0/CmBgYAoKRm9yIGV4YW1wbGU6CgpgYGAKcmFwaWNnZW4gY3NoYXJwIC0/CmBgYCAKCndpbGwgb3V0cHV0IHRoaXM6CgpgYGAKR2VuZXJhdGUgQyMgQVBJIGNsaWVudHMKClVzYWdlOiByYXBpY2dlbiBjc2hhcnAgW2NvbW1hbmRdIFtvcHRpb25zXQoKT3B0aW9uczoKICAtP3wtaHwtLWhlbHAgIFNob3cgaGVscCBpbmZvcm1hdGlvbi4KCkNvbW1hbmRzOgogIGF1dG9yZXN0ICAgICAgQXV0b1Jlc3QgKHYzLjAuMC1iZXRhLjIwMjEwNTA0LjIpCiAga2lvdGEgICAgICAgICBNaWNyb3NvZnQgS2lvdGEgKHYxLjE3LjApCiAgbnN3YWcgICAgICAgICBOU3dhZyAodjE0LjEuMCkKICBvcGVuYXBpICAgICAgIE9wZW5BUEkgR2VuZXJhdG9yICh2Ny43LjApCiAgcmVmaXR0ZXIgICAgICBSZWZpdHRlciAodjEuMi4wKQogIHN3YWdnZXIgICAgICAgU3dhZ2dlciBDb2RlZ2VuIENMSSAodjMuMC4zNCkKClJ1biAnY3NoYXJwIFtjb21tYW5kXSAtP3wtaHwtLWhlbHAnIGZvciBtb3JlIGluZm9ybWF0aW9uIGFib3V0IGEgY29tbWFuZC4KCmBgYAoKYW5kCgpgYGAKcmFwaWNnZW4gY3NoYXJwIGF1dG9yZXN0IC0/CmBgYAoKd2lsbCBvdXRwdXQgdGhpczoKCmBgYApHZW5lcmF0ZSBTd2FnZ2VyIC8gT3BlbiBBUEkgY2xpZW50IHVzaW5nIEF1dG9SZXN0CgpVc2FnZTogcnVuIGF1dG9yZXN0IFtvcHRpb25zXSA8c3dhZ2dlckZpbGU+IDxuYW1lc3BhY2U+IDxvdXRwdXRGaWxlPgoKQXJndW1lbnRzOgogIHN3YWdnZXJGaWxlICAgUGF0aCB0byB0aGUgU3dhZ2dlciAvIE9wZW4gQVBJIHNwZWNpZmljYXRpb24gZmlsZQogIG5hbWVzcGFjZSAgICAgRGVmYXVsdCBuYW1lc3BhY2UgdG8gaW4gdGhlIGdlbmVyYXRlZCBjb2RlCiAgb3V0cHV0RmlsZSAgICBPdXRwdXQgZmlsZW5hbWUgdG8gd3JpdGUgdGhlIGdlbmVyYXRlZCBjb2RlIHRvLiBEZWZhdWx0IGlzIHRoZSBzd2FnZ2VyRmlsZSAuY3MKCk9wdGlvbnM6CiAgLT98LWh8LS1oZWxwICBTaG93IGhlbHAgaW5mb3JtYXRpb24KYGBgCgpvciAKCmBgYApyYXBpY2dlbiB0eXBlc2NyaXB0IC0/CmBgYAoKd2lsbCBvdXRwdXQgdGhpczoKCmBgYApHZW5lcmF0ZSBUeXBlU2NyaXB0IEFQSSBjbGllbnQKClVzYWdlOiByYXBpY2dlbiB0eXBlc2NyaXB0IFtvcHRpb25zXSA8Z2VuZXJhdG9yPiA8c3dhZ2dlckZpbGU+IDxvdXRwdXRQYXRoPgoKQXJndW1lbnRzOgogIGdlbmVyYXRvciAgICAgICAgIFRoZSB0ZWNoIHN0YWNrIHRvIHVzZSBmb3IgdGhlIGdlbmVyYXRlZCBjbGllbnQgbGlicmFyeQogICAgICAgICAgICAgICAgICAgIEFsbG93ZWQgdmFsdWVzIGFyZTogQW5ndWxhciwgQXVyZWxpYSwgQXhpb3MsIEZldGNoLCBJbnZlcnNpZnksIEpRdWVyeSwgTmVzdEpTLCBOb2RlLCBSZWR1eFF1ZXJ5LAogICAgICAgICAgICAgICAgICAgIFJ4anMuCiAgICAgICAgICAgICAgICAgICAgRGVmYXVsdCB2YWx1ZSBpczogQW5ndWxhci4KICBzd2FnZ2VyRmlsZSAgICAgICBQYXRoIHRvIHRoZSBTd2FnZ2VyIC8gT3BlbiBBUEkgc3BlY2lmaWNhdGlvbiBmaWxlCiAgb3V0cHV0UGF0aCAgICAgICAgT3V0cHV0IGZvbGRlciB0byB3cml0ZSB0aGUgZ2VuZXJhdGVkIGNvZGUgdG8KICAgICAgICAgICAgICAgICAgICBEZWZhdWx0IHZhbHVlIGlzOiB0eXBlc2NyaXB0LWdlbmVyYXRlZC1jb2RlLgoKT3B0aW9uczoKICAtbmx8LS1uby1sb2dnaW5nICBEaXNhYmxlcyBBbmFseXRpY3MgYW5kIEVycm9yIFJlcG9ydGluZwogIC0/fC1ofC0taGVscCAgICAgIFNob3cgaGVscCBpbmZvcm1hdGlvbi4KYGBgCgojIyBVc2FnZSBFeGFtcGxlczoKCkxldCdzIHNheSB3ZSBoYXZlIGEgT3BlbkFQSSBTcGVjaWZpY2F0aW9ucyBkb2N1bWVudCBjYWxsZWQgKipTd2FnZ2VyLmpzb24qKgoKRm9yIHN0YXJ0ZXJzLCB3ZSBjYW4gdXNlIHRoZSBTd2FnZ2VyIFBldHN0b3JlIHNwZWMuIEhlcmUncyBhbiBleGFtcGxlIHBvd2Vyc2hlbGwgc2NyaXB0IGZvciBkb3dubG9hZGluZyBpdAoKYGBgCkludm9rZS1XZWJSZXF1ZXN0IC1VcmkgaHR0cHM6Ly9wZXRzdG9yZS5zd2FnZ2VyLmlvL3YzL3N3YWdnZXIuanNvbiAtT3V0RmlsZSBTd2FnZ2VyLmpzb24KYGBgCgpJbiBjYXNlIHlvdSBkb24ndCBoYXZlIHRoZSBDTEkgdG9vbCBpbnN0YWxsZWQgeW91IGNhbiBpbnN0YWxsIGl0IGJ5CgpgYGAKZG90bmV0IHRvb2wgaW5zdGFsbCAtLWdsb2JhbCByYXBpY2dlbgpgYGAKCkhlcmUncyBhbiBleGFtcGxlIG9mIGhvdyB0byBnZW5lcmF0ZSBjb2RlIHVzaW5nICoqQXV0b1Jlc3QqKgoKYGBgCnJhcGljZ2VuIGNzaGFycCBhdXRvcmVzdCBTd2FnZ2VyLmpzb24gR2VuZXJhdGVkQ29kZSAuL0F1dG9SZXN0T3V0cHV0LmNzCmBgYAoKSGVyZSdzIGFuIGV4YW1wbGUgb2YgaG93IHRvIGdlbmVyYXRlIGNvZGUgdXNpbmcgKipLaW90YSoqCgpgYGAKcmFwaWNnZW4gY3NoYXJwIGtpb3RhIFN3YWdnZXIuanNvbiBHZW5lcmF0ZWRDb2RlIC4vT3BlbkFwaU91dHB1dC5jcwpgYGAKCkhlcmUncyBhbiBleGFtcGxlIG9mIGhvdyB0byBnZW5lcmF0ZSBjb2RlIHVzaW5nICoqTlN3YWcqKgoKYGBgCnJhcGljZ2VuIGNzaGFycCBuc3dhZyBTd2FnZ2VyLmpzb24gR2VuZXJhdGVkQ29kZSAuL05Td2FnT3V0cHV0LmNzCmBgYAoKSGVyZSdzIGFuIGV4YW1wbGUgb2YgaG93IHRvIGdlbmVyYXRlIGNvZGUgdXNpbmcgKipTd2FnZ2VyIENvZGVnZW4gQ0xJKioKCmBgYApyYXBpY2dlbiBjc2hhcnAgc3dhZ2dlciBTd2FnZ2VyLmpzb24gR2VuZXJhdGVkQ29kZSAuL1N3YWdnZXJPdXRwdXQuY3MKYGBgCgpIZXJlJ3MgYW4gZXhhbXBsZSBvZiBob3cgdG8gZ2VuZXJhdGUgY29kZSB1c2luZyAqKk9wZW5BUEkgR2VuZXJhdG9yKioKCmBgYApyYXBpY2dlbiBjc2hhcnAgb3BlbmFwaSBTd2FnZ2VyLmpzb24gR2VuZXJhdGVkQ29kZSAuL09wZW5BcGlPdXRwdXQuY3MKYGBgCgpIZXJlJ3MgYW4gZXhhbXBsZSBvZiBob3cgdG8gZ2VuZXJhdGUgY29kZSAqKkpNZXRlcioqIHRlc3QgcGxhbnMKCmBgYApyYXBpY2dlbiBqbWV0ZXIgU3dhZ2dlci5qc29uCmBgYAoKSGVyZSdzIGFuIGV4YW1wbGUgb2YgaG93IHRvIGdlbmVyYXRlIGNvZGUgZm9yICoqVHlwZVNjcmlwdCoqCgpgYGAKcmFwaWNnZW4gdHlwZXNjcmlwdCBBbmd1bGFyIFN3YWdnZXIuanNvbgpgYGAKCiMKCkZvciB0aXBzIGFuZCB0cmlja3Mgb24gc29mdHdhcmUgZGV2ZWxvcG1lbnQsIGNoZWNrIG91dCBbbXkgYmxvZ10oaHR0cHM6Ly9jaHJpc3RpYW5oZWxsZS5jb20pCgpJZiB5b3UgZmluZCB0aGlzIHVzZWZ1bCBhbmQgZmVlbCBhIGJpdCBnZW5lcm91cyB0aGVuIGZlZWwgZnJlZSB0byBbYnV5IG1lIGEgY29mZmVlIOKYlV0oaHR0cHM6Ly93d3cuYnV5bWVhY29mZmVlLmNvbS9jaHJpc3RpYW5oZWxsZSkKCg== - readmeEtag: '"c5b46113730f3bbe8f1c092d396956f79af9f425"' - readmeLastModified: Wed, 14 Aug 2024 22:50:54 GMT + WyFbQnVpbGQgc3RhdHVzXShodHRwczovL2NpLmFwcHZleW9yLmNvbS9hcGkvcHJvamVjdHMvc3RhdHVzL2diMmRvZTN0Z3dqdDQ3Y24vYnJhbmNoL21hc3Rlcj9zdmc9dHJ1ZSldKGh0dHBzOi8vY2kuYXBwdmV5b3IuY29tL3Byb2plY3QvY2hyaXN0aWFuaGVsbGUvYXBpY2xpZW50Y29kZWdlbi9icmFuY2gvbWFzdGVyKQohW0NMSSBUb29sXShodHRwczovL2dpdGh1Yi5jb20vY2hyaXN0aWFuaGVsbGUvYXBpY2xpZW50Y29kZWdlbi93b3JrZmxvd3MvQ0xJJTIwVG9vbC9iYWRnZS5zdmcpCiFbVlNJWF0oaHR0cHM6Ly9naXRodWIuY29tL2NocmlzdGlhbmhlbGxlL2FwaWNsaWVudGNvZGVnZW4vd29ya2Zsb3dzL1ZTSVgvYmFkZ2Uuc3ZnKQohW1ZTIE1hY10oaHR0cHM6Ly9naXRodWIuY29tL2NocmlzdGlhbmhlbGxlL2FwaWNsaWVudGNvZGVnZW4vd29ya2Zsb3dzL1ZTJTIwTWFjL2JhZGdlLnN2ZykKIVtTbW9rZSBUZXN0c10oaHR0cHM6Ly9naXRodWIuY29tL2NocmlzdGlhbmhlbGxlL2FwaWNsaWVudGNvZGVnZW4vd29ya2Zsb3dzL1Ntb2tlJTIwVGVzdHMvYmFkZ2Uuc3ZnKQoKWyFbTWFpbnRhaW5hYmlsaXR5IFJhdGluZ10oaHR0cHM6Ly9zb25hcmNsb3VkLmlvL2FwaS9wcm9qZWN0X2JhZGdlcy9tZWFzdXJlP3Byb2plY3Q9Y2hyaXN0aWFuaGVsbGVfYXBpY2xpZW50Y29kZWdlbiZtZXRyaWM9c3FhbGVfcmF0aW5nKV0oaHR0cHM6Ly9zb25hcmNsb3VkLmlvL2Rhc2hib2FyZD9pZD1jaHJpc3RpYW5oZWxsZV9hcGljbGllbnRjb2RlZ2VuKQpbIVtSZWxpYWJpbGl0eSBSYXRpbmddKGh0dHBzOi8vc29uYXJjbG91ZC5pby9hcGkvcHJvamVjdF9iYWRnZXMvbWVhc3VyZT9wcm9qZWN0PWNocmlzdGlhbmhlbGxlX2FwaWNsaWVudGNvZGVnZW4mbWV0cmljPXJlbGlhYmlsaXR5X3JhdGluZyldKGh0dHBzOi8vc29uYXJjbG91ZC5pby9kYXNoYm9hcmQ/aWQ9Y2hyaXN0aWFuaGVsbGVfYXBpY2xpZW50Y29kZWdlbikKWyFbU2VjdXJpdHkgUmF0aW5nXShodHRwczovL3NvbmFyY2xvdWQuaW8vYXBpL3Byb2plY3RfYmFkZ2VzL21lYXN1cmU/cHJvamVjdD1jaHJpc3RpYW5oZWxsZV9hcGljbGllbnRjb2RlZ2VuJm1ldHJpYz1zZWN1cml0eV9yYXRpbmcpXShodHRwczovL3NvbmFyY2xvdWQuaW8vZGFzaGJvYXJkP2lkPWNocmlzdGlhbmhlbGxlX2FwaWNsaWVudGNvZGVnZW4pClshW0J1Z3NdKGh0dHBzOi8vc29uYXJjbG91ZC5pby9hcGkvcHJvamVjdF9iYWRnZXMvbWVhc3VyZT9wcm9qZWN0PWNocmlzdGlhbmhlbGxlX2FwaWNsaWVudGNvZGVnZW4mbWV0cmljPWJ1Z3MpXShodHRwczovL3NvbmFyY2xvdWQuaW8vZGFzaGJvYXJkP2lkPWNocmlzdGlhbmhlbGxlX2FwaWNsaWVudGNvZGVnZW4pClshW1Z1bG5lcmFiaWxpdGllc10oaHR0cHM6Ly9zb25hcmNsb3VkLmlvL2FwaS9wcm9qZWN0X2JhZGdlcy9tZWFzdXJlP3Byb2plY3Q9Y2hyaXN0aWFuaGVsbGVfYXBpY2xpZW50Y29kZWdlbiZtZXRyaWM9dnVsbmVyYWJpbGl0aWVzKV0oaHR0cHM6Ly9zb25hcmNsb3VkLmlvL2Rhc2hib2FyZD9pZD1jaHJpc3RpYW5oZWxsZV9hcGljbGllbnRjb2RlZ2VuKQpbIVtDb2RlIFNtZWxsc10oaHR0cHM6Ly9zb25hcmNsb3VkLmlvL2FwaS9wcm9qZWN0X2JhZGdlcy9tZWFzdXJlP3Byb2plY3Q9Y2hyaXN0aWFuaGVsbGVfYXBpY2xpZW50Y29kZWdlbiZtZXRyaWM9Y29kZV9zbWVsbHMpXShodHRwczovL3NvbmFyY2xvdWQuaW8vc3VtbWFyeS9uZXdfY29kZT9pZD1jaHJpc3RpYW5oZWxsZV9hcGljbGllbnRjb2RlZ2VuKQpbIVtDb3ZlcmFnZV0oaHR0cHM6Ly9zb25hcmNsb3VkLmlvL2FwaS9wcm9qZWN0X2JhZGdlcy9tZWFzdXJlP3Byb2plY3Q9Y2hyaXN0aWFuaGVsbGVfYXBpY2xpZW50Y29kZWdlbiZtZXRyaWM9Y292ZXJhZ2UpXShodHRwczovL3NvbmFyY2xvdWQuaW8vc3VtbWFyeS9uZXdfY29kZT9pZD1jaHJpc3RpYW5oZWxsZV9hcGljbGllbnRjb2RlZ2VuKQoKWyFbVmVyc2lvbl0oaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby92aXN1YWwtc3R1ZGlvLW1hcmtldHBsYWNlL3YvQ2hyaXN0aWFuUmVzbWFIZWxsZS5BcGlDbGllbnRDb2RlR2VuZXJhdG9yP2xhYmVsPU1hcmtldHBsYWNlKV0oaHR0cHM6Ly9tYXJrZXRwbGFjZS52aXN1YWxzdHVkaW8uY29tL2l0ZW1zP2l0ZW1OYW1lPUNocmlzdGlhblJlc21hSGVsbGUuQVBJQ2xpZW50Q29kZUdlbmVyYXRvcikgClshW0Rvd25sb2Fkc10oaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby92aXN1YWwtc3R1ZGlvLW1hcmtldHBsYWNlL2QvQ2hyaXN0aWFuUmVzbWFIZWxsZS5BcGlDbGllbnRDb2RlR2VuZXJhdG9yP2xhYmVsPVZTJTIwMjAxOSldKGh0dHBzOi8vbWFya2V0cGxhY2UudmlzdWFsc3R1ZGlvLmNvbS9pdGVtcz9pdGVtTmFtZT1DaHJpc3RpYW5SZXNtYUhlbGxlLkFQSUNsaWVudENvZGVHZW5lcmF0b3IpClshW1JhdGluZ10oaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby92aXN1YWwtc3R1ZGlvLW1hcmtldHBsYWNlL3N0YXJzL0NocmlzdGlhblJlc21hSGVsbGUuQXBpQ2xpZW50Q29kZUdlbmVyYXRvcildKGh0dHBzOi8vbWFya2V0cGxhY2UudmlzdWFsc3R1ZGlvLmNvbS9pdGVtcz9pdGVtTmFtZT1DaHJpc3RpYW5SZXNtYUhlbGxlLkFQSUNsaWVudENvZGVHZW5lcmF0b3IpClshW0Rvd25sb2Fkc10oaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby92aXN1YWwtc3R1ZGlvLW1hcmtldHBsYWNlL2QvQ2hyaXN0aWFuUmVzbWFIZWxsZS5BUElDbGllbnRDb2RlR2VuZXJhdG9yMjAyMj9sYWJlbD1WUyUyMDIwMjIpXShodHRwczovL21hcmtldHBsYWNlLnZpc3VhbHN0dWRpby5jb20vaXRlbXM/aXRlbU5hbWU9Q2hyaXN0aWFuUmVzbWFIZWxsZS5BUElDbGllbnRDb2RlR2VuZXJhdG9yMjAyMikgClshW1JhdGluZ10oaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby92aXN1YWwtc3R1ZGlvLW1hcmtldHBsYWNlL3N0YXJzL0NocmlzdGlhblJlc21hSGVsbGUuQXBpQ2xpZW50Q29kZUdlbmVyYXRvcjIwMjIpXShodHRwczovL21hcmtldHBsYWNlLnZpc3VhbHN0dWRpby5jb20vaXRlbXM/aXRlbU5hbWU9Q2hyaXN0aWFuUmVzbWFIZWxsZS5BUElDbGllbnRDb2RlR2VuZXJhdG9yMjAyMikKWyFbTnVHZXRdKGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vbnVnZXQvZHQvcmFwaWNnZW4uc3ZnP3N0eWxlPWZsYXQtc3F1YXJlJmxhYmVsPW51Z2V0KV0oaHR0cDovL3d3dy5udWdldC5vcmcvcGFja2FnZXMvcmFwaWNnZW4pCgpbIVtidXltZWFjb2ZmZWVdKGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vYmFkZ2UvYnV5JTIwbWUlMjBhJTIwY29mZmVlLWRvbmF0ZS15ZWxsb3cuc3ZnKV0oaHR0cHM6Ly93d3cuYnV5bWVhY29mZmVlLmNvbS9jaHJpc3RpYW5oZWxsZSkKWyFbSm9pbiB0aGUgY2hhdCBhdCBodHRwczovL2dpdHRlci5pbS9hcGljbGllbnRjb2RlZ2VuL2NvbW11bml0eV0oaHR0cHM6Ly9iYWRnZXMuZ2l0dGVyLmltL2FwaWNsaWVudGNvZGVnZW4vY29tbXVuaXR5LnN2ZyldKGh0dHBzOi8vZ2l0dGVyLmltL2FwaWNsaWVudGNvZGVnZW4vY29tbXVuaXR5P3V0bV9zb3VyY2U9YmFkZ2UmdXRtX21lZGl1bT1iYWRnZSZ1dG1fY2FtcGFpZ249cHItYmFkZ2UmdXRtX2NvbnRlbnQ9YmFkZ2UpCgojIFJFU1QgQVBJIENsaWVudCBDb2RlIEdlbmVyYXRvcgoKQSBjb2xsZWN0aW9uIG9mIFZpc3VhbCBTdHVkaW8gQyMgY3VzdG9tIHRvb2wgY29kZSBnZW5lcmF0b3JzIGZvciBTd2FnZ2VyIC8gT3BlbkFQSSBzcGVjaWZpY2F0aW9uIGZpbGVzCgojIyBEb3dubG9hZAoKLSAqKltWaXN1YWwgU3R1ZGlvIDIwMjJdKGh0dHBzOi8vbWFya2V0cGxhY2UudmlzdWFsc3R1ZGlvLmNvbS9pdGVtcz9pdGVtTmFtZT1DaHJpc3RpYW5SZXNtYUhlbGxlLkFwaUNsaWVudENvZGVHZW5lcmF0b3IyMDIyKSoqCi0gKipbVmlzdWFsIFN0dWRpbyAyMDE5XShodHRwczovL21hcmtldHBsYWNlLnZpc3VhbHN0dWRpby5jb20vaXRlbXM/aXRlbU5hbWU9Q2hyaXN0aWFuUmVzbWFIZWxsZS5BcGlDbGllbnRDb2RlR2VuZXJhdG9yKSoqCi0gKipbVmlzdWFsIFN0dWRpbyAyMDE3XShodHRwczovL21hcmtldHBsYWNlLnZpc3VhbHN0dWRpby5jb20vaXRlbXM/aXRlbU5hbWU9Q2hyaXN0aWFuUmVzbWFIZWxsZS5BcGlDbGllbnRDb2RlR2VuZXJhdG9yMjAxNykqKgotICoqW1Zpc3VhbCBTdHVkaW8gZm9yIE1hY10oaHR0cHM6Ly9naXRodWIuY29tL2NocmlzdGlhbmhlbGxlL2FwaWNsaWVudGNvZGVnZW4vcmVsZWFzZXMvbGF0ZXN0KSoqLiBGb2xsb3cgKipbdGhlc2UgaW5zdHJ1Y3Rpb25zXSgjdmlzdWFsLXN0dWRpby1mb3ItbWFjKSoqIGZvciB1cGRhdGUgY29udmVuaWVuY2Ugb24gVmlzdWFsIFN0dWRpbyBmb3IgTWFjCgojIyBGZWF0dXJlcwoKLSBTdXBwb3J0cyBWaXN1YWwgU3R1ZGlvIDIwMTcsIDIwMTksIDIwMjIsIGFuZCBbVmlzdWFsIFN0dWRpbyBmb3IgTWFjXSgjdmlzdWFsLXN0dWRpby1mb3ItbWFjKQotIEFkZCBOZXcgUkVTVCBBUEkgQ2xpZW50IHRvIGEgcHJvamVjdCBmcm9tIGFuIE9wZW5BUEkgc3BlY2lmaWNhdGlvbiBVUkwgKGUuZyA8aHR0cHM6Ly9wZXRzdG9yZS5zd2FnZ2VyLmlvL3YyL3N3YWdnZXIuanNvbj4pIHVzaW5nIHRoZSBmb2xsb3dpbmcgY29kZSBnZW5lcmF0b3JzOgogIC0gW05Td2FnXShodHRwczovL2dpdGh1Yi5jb20vUmljb1N1dGVyL05Td2FnKQogIC0gW09wZW5BUEkgR2VuZXJhdG9yXShodHRwczovL2dpdGh1Yi5jb20vT3BlbkFQSVRvb2xzL29wZW5hcGktZ2VuZXJhdG9yKQogIC0gW1N3YWdnZXIgQ29kZWdlbl0oaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbikKICAtIFtSZWZpdHRlcl0oaHR0cHM6Ly9naXRodWIuY29tL2NocmlzdGlhbmhlbGxlL3JlZml0dGVyKQogIC0gW01pY3Jvc29mdCBLaW90YV0oaHR0cHM6Ly9naXRodWIuY29tL21pY3Jvc29mdC9raW90YSkKICAtIFtBdXRvUmVzdF0oaHR0cHM6Ly9naXRodWIuY29tL0F6dXJlL2F1dG9yZXN0KQotIERlZmluZSBjdXN0b20gbmFtZXNwYWNlIGZvciB0aGUgZ2VuZXJhdGVkIGZpbGUKLSBBdXRvLXVwZGF0aW5nIG9mIGdlbmVyYXRlZCBjb2RlIGZpbGUgd2hlbiBjaGFuZ2VzIGFyZSBtYWRlIHRvIHRoZSBPcGVuQVBJIHNwZWNpZmljYXRpb24gSlNPTiBvciBZQU1MIGZpbGUKLSBHZW5lcmF0ZSBjb2RlIHVzaW5nIGEgY29uZmlndXJhdGlvbiBmaWxlcyB1c2luZyB0aGUgZm9sbG93aW5nOgogIC0gYC5uc3dhZ2AgY29uZmlndXJhdGlvbiBmaWxlcyBmcm9tIFtOU3dhZ1N0dWRpb10oaHR0cHM6Ly9naXRodWIuY29tL1JpY29TdXRlci9OU3dhZy93aWtpL05Td2FnU3R1ZGlvKSBieSBpbmNsdWRpbmcgaXQgaW4gdGhlIHByb2plY3QgYW5kIHVzaW5nIHRoZSAqKkdlbmVyYXRlIE5Td2FnIFN0dWRpbyBvdXRwdXQqKiBjb250ZXh0IG1lbnUKICAtIGAucmVmaXR0ZXJgIHNldHRpbmdzIGZpbGVzIGZyb20gW1JlZml0dGVyXShodHRwczovL2dpdGh1Yi5jb20vY2hyaXN0aWFuaGVsbGUvcmVmaXR0ZXIpIGJ5IGluY2x1ZGluZyBpdCBpbiB0aGUgcHJvamVjdCBhbmQgdXNpbmcgdGhlICoqR2VuZXJhdGUgUmVmaXR0ZXIgb3V0cHV0KiogY29udGV4dCBtZW51CiAgLSBga2lvdGEtbG9jay5qc29uYCBjb25maWd1cmF0aW9uIGZpbGVzIGZyb20gW01pY3Jvc29mdCBLaW90YV0oaHR0cHM6Ly9naXRodWIuY29tL21pY3Jvc29mdC9raW90YSkgYnkgaW5jbHVkaW5nIGl0IGluIHRoZSBwcm9qZWN0IGFuZCB1c2luZyB0aGUgKipHZW5lcmF0ZSBLaW90YSBvdXRwdXQqKiBjb250ZXh0IG1lbnUKCiMjIyBDdXN0b20gVG9vbHMKCkN1c3RvbSB0b29scyBsZXQgeW91IGFzc29jaWF0ZSBhIHRvb2wgd2l0aCBhbiBpdGVtIGluIGEgcHJvamVjdCBhbmQgcnVuIHRoYXQgdG9vbCB3aGVuZXZlciB0aGUgZmlsZSBpcyBzYXZlZAoKLSAqKipOU3dhZ0NvZGVHZW5lcmF0b3IqKiogLSBHZW5lcmF0ZXMgYSBzaW5nbGUgZmlsZSBDIyBSRVNUIEFQSSBDbGllbnQgdXNpbmcgdGhlIFtOU3dhZy5Db2RlR2VuZXJhdGlvbi5DU2hhcnBdKGh0dHBzOi8vZ2l0aHViLmNvbS9SU3V0ZXIvTlN3YWcvd2lraS9DU2hhcnBDbGllbnRHZW5lcmF0b3IpIFtudWdldCBwYWNrYWdlXShodHRwczovL3d3dy5udWdldC5vcmcvcGFja2FnZXMvTlN3YWcuQ29kZUdlbmVyYXRpb24uQ1NoYXJwLykgKip2MTQuMS4wKioKCi0gKioqT3BlbkFwaUNvZGVHZW5lcmF0b3IqKiogLSBHZW5lcmF0ZXMgYSBzaW5nbGUgZmlsZSBDIyBSRVNUIEFQSSBDbGllbnQgdXNpbmcgKipbT3BlbkFQSSBHZW5lcmF0b3IgdjcuOC4wXShodHRwczovL2dpdGh1Yi5jb20vT3BlbkFQSVRvb2xzL29wZW5hcGktZ2VuZXJhdG9yL3JlbGVhc2VzL3RhZy92Ny44LjApKiouClRoZSBvdXRwdXQgZmlsZSBpcyB0aGUgcmVzdWx0IG9mIG1lcmdpbmcgYWxsIHRoZSBmaWxlcyBnZW5lcmF0ZWQgdXNpbmcgdGhlIE9wZW5BUEkgR2VuZXJhdG9yIHRvb2wgd2l0aDoKYGdlbmVyYXRlIC1nIGNzaGFycCAtLWlucHV0LXNwZWMgW3N3YWdnZXIgZmlsZV0gLS1vdXRwdXQgW291dHB1dCBmaWxlXSAtRGFwaVRlc3RzPWZhbHNlIC1EbW9kZWxUZXN0cz1mYWxzZSAtRHBhY2thZ2VOYW1lPVtkZWZhdWx0IG5hbWVzcGFjZV0gLS1za2lwLW92ZXJ3cml0ZWAuIEl0IGlzIHBvc3NpYmxlIHRvIGNvbmZpZ3VyZSB0aGUgT3BlbkFQSSBHZW5lcmF0b3IgdG8gZ2VuZXJhdGUgbXVsdGlwbGUgZmlsZXMgd2hpY2ggd2lsbCBiZSBwbGFjZWQgYXQgdGhlIHNhbWUgcGF0aCBhcyB0aGUgT3BlbkFQSSBzcGVjaWZpY2F0aW9ucyBkb2N1bWVudCB0aGF0IHdhcyB1c2VkIHRvIGdlbmVyYXRlIGNvZGUsIHRoaXMgaXMgZG9uZSB1bmRlciBUb29scyAtPiBSRVNUIEFQSSBDbGllbnQgQ29kZSBHZW5lcmF0b3IgLT4gT3BlbkFQSSBHZW5lcmF0b3IgYW5kIHNldHRpbmcgKipHZW5lcmF0ZSBNdWx0aXBsZSBGaWxlcyoqIHRvICoqdHJ1ZSoqCgotICoqKktpb3RhQ29kZUdlbmVyYXRvcioqKiAtIEdlbmVyYXRlcyBhIHNpbmdsZSBmaWxlIEMjIFJFU1QgQVBJIENsaWVudCB1c2luZyB0aGUgTWljcm9zb2Z0IHByb2plY3QgKipbS2lvdGEgdjEuMTcuMF0oaHR0cHM6Ly9sZWFybi5taWNyb3NvZnQuY29tL2VuLXVzL29wZW5hcGkva2lvdGEvKSoqIGdlbmVyYXRvci4gVGhlIG91dHB1dCBmaWxlIGlzIHRoZSByZXN1bHQgb2YgbWVyZ2luZyBhbGwgdGhlIGZpbGVzIGdlbmVyYXRlZCB1c2luZyB0aGUgS2lvdGEgZG90bmV0IHRvb2wgd2l0aDogYGdlbmVyYXRlIC1sIENTaGFycCAtZCBbc3dhZ2dlciBmaWxlXSAtbyBbb3V0cHV0IGZpbGVdIC1uIFtkZWZhdWx0IG5hbWVzcGFjZV1gLiBJdCBpcyBwb3NzaWJsZSB0byBjb25maWd1cmUgdGhlIE9wZW5BUEkgR2VuZXJhdG9yIHRvIGdlbmVyYXRlIG11bHRpcGxlIGZpbGVzIHdoaWNoIHdpbGwgYmUgcGxhY2VkIGF0IHRoZSBzYW1lIHBhdGggYXMgdGhlIE9wZW5BUEkgc3BlY2lmaWNhdGlvbnMgZG9jdW1lbnQgdGhhdCB3YXMgdXNlZCB0byBnZW5lcmF0ZSBjb2RlLCB0aGlzIGlzIGRvbmUgdW5kZXIgVG9vbHMgLT4gUkVTVCBBUEkgQ2xpZW50IENvZGUgR2VuZXJhdG9yIC0+IEtpb3RhIGFuZCBzZXR0aW5nICoqR2VuZXJhdGUgTXVsdGlwbGUgRmlsZXMqKiB0byAqKnRydWUqKgoKLSAqKipTd2FnZ2VyQ29kZUdlbmVyYXRvcioqKiAtIEdlbmVyYXRlcyBhIHNpbmdsZSBmaWxlIEMjIFJFU1QgQVBJIENsaWVudCB1c2luZyAqKlN3YWdnZXIgQ29kZWdlbiBDTEkgdjMuMC4zNCoqLgpUaGUgb3V0cHV0IGZpbGUgaXMgdGhlIHJlc3VsdCBvZiBtZXJnaW5nIGFsbCB0aGUgZmlsZXMgZ2VuZXJhdGVkIHVzaW5nIHRoZSBTd2FnZ2VyIENvZGVnZW4gQ0xJIHRvb2wgd2l0aDoKYGdlbmVyYXRlIC1sIGNzaGFycCAtLWlucHV0LXNwZWMgW3N3YWdnZXIgZmlsZV0gLS1vdXRwdXQgW291dHB1dCBmaWxlXSAtRGFwaVRlc3RzPWZhbHNlIC1EbW9kZWxUZXN0cz1mYWxzZSAtRHBhY2thZ2VOYW1lPVtkZWZhdWx0IG5hbWVzcGFjZV0gLS1za2lwLW92ZXJ3cml0ZWAKCi0gKioqQXV0b1Jlc3RDb2RlR2VuZXJhdG9yKioqIC0gR2VuZXJhdGVzIGEgc2luZ2xlIGZpbGUgQyMgUkVTVCBBUEkgQ2xpZW50IHVzaW5nICoqQXV0b1Jlc3QgdjMuMC4wLWJldGEuMjAyMTA1MDQuMioqIGZvciBPcGVuQVBJIHYzIGFuZCAqKkF1dG9SZXN0IHYyLjAuNDQxNyoqIGZvciBPcGVuQVBJIHYyLiBUaGUgcmVzdWx0aW5nIGZpbGUgaXMgdGhlIGVxdWl2YWxlbnQgb2YgdXNpbmcgdGhlIEF1dG9SZXN0IENMSSB0b29sIHdpdGg6CiBgLS1jc2hhcnAgLS1pbnB1dC1maWxlPVtzd2FnZ2VyIGZpbGVdIC0tb3V0cHV0LWZpbGU9W291dHB1dCBmaWxlXSAtLW5hbWVzcGFjZT1bZGVmYXVsdCBuYW1lc3BhY2VdIC0tYWRkLWNyZWRlbnRpYWxzYAoKLSAqKipSZWZpdHRlckNvZGVHZW5lcmF0b3IqKiogLSBHZW5lcmF0ZXMgYSBzaW5nbGUgZmlsZSBDIyBSRVNUIEFQSSBDbGllbnQgaW50ZWZhY2UgZm9yIFtSZWZpdF0oaHR0cHM6Ly9naXRodWIuY29tL3JlYWN0aXZldWkvcmVmaXQpIHVzaW5nIFtSZWZpdHRlci5Db3JlXShodHRwczovL2dpdGh1Yi5jb20vY2hyaXN0aWFuaGVsbGUvcmVmaXR0ZXIpIFtudWdldCBwYWNrYWdlXShodHRwczovL3d3dy5udWdldC5vcmcvcGFja2FnZXMvUmVmaXR0ZXIuQ29yZS8pICoqdjEuMi4wKiouClRoZSBvdXRwdXQgZmlsZSBjb250YWlucyBhIFJlZml0IGludGVyZmFjZSBnZW5lcmF0ZWQgYnkgW1JlZml0dGVyXShodHRwczovL2dpdGh1Yi5jb20vY2hyaXN0aWFuaGVsbGUvcmVmaXR0ZXIpIGFuZCBjb250cmFjdHMgZ2VuZXJhdGVkIHVzaW5nIFtOU3dhZy5Db2RlR2VuZXJhdGlvbi5DU2hhcnBdKGh0dHBzOi8vZ2l0aHViLmNvbS9SU3V0ZXIvTlN3YWcvd2lraS9DU2hhcnBDbGllbnRHZW5lcmF0b3IpIFtudWdldCBwYWNrYWdlXShodHRwczovL3d3dy5udWdldC5vcmcvcGFja2FnZXMvTlN3YWcuQ29kZUdlbmVyYXRpb24uQ1NoYXJwLykKCiMjIyBEZXBlbmRlbmNpZXMKClRoZSBjdXN0b20gdG9vbCBjb2RlIGdlbmVyYXRvcnMgcGlnZ3kgYmFjayBvbiB0b3Agb2Ygd2VsbCBrbm93biBPcGVuIEFQSSBjbGllbnQgY29kZSBnZW5lcmF0b3JzIGxpa2UgKipBdXRvUmVzdCoqLCAqKk5Td2FnKiosICoqT3BlbkFQSSBHZW5lcmF0b3IqKiwgKipNaWNyb3NvZnQgS2lvdGEqKiwgKipSZWZpdHRlcioqLCBhbmQgKipTd2FnZ2VyIENvZGVnZW4gQ0xJKiouIFRoZXNlIHRvb2xzIHJlcXVpcmUgW05QTV0oaHR0cHM6Ly93d3cubnBtanMuY29tL2dldC1ucG0pIGFuZCB0aGUgW0phdmEgUnVudGltZSBFbnZpcm9ubWVudF0oaHR0cHM6Ly9qYXZhLmNvbS9lbi9kb3dubG9hZC9tYW51YWwuanNwKSB0byBiZSBpbnN0YWxsZWQgb24gdGhlIGRldmVsb3BlcnMgbWFjaGluZS4gQWx0ZXJuYXRpdmUgSmF2YSBTREsgaW1wbGVtZW50YXRpb25zIHN1Y2ggYXMgdGhlIFtPcGVuSkRLXShodHRwczovL2Fkb3B0b3Blbmpkay5uZXQpIHdvcmtzIGZpbmUgd2l0aCB0aGlzIGV4dGVuc2lvbi4gQnkgZGVmYXVsdCwgdGhlIHBhdGggdG8gKipqYXZhLmV4ZSoqIGlzIHJlYWQgZnJvbSB0aGUgKipKQVZBX0hPTUUqKiBlbnZpcm9ubWVudCB2YXJpYWJsZSwgYnV0IGlzIGFsc28gY29uZmlndXJhYmxlIGluIHRoZSBTZXR0aW5ncyBzY3JlZW4uIEZ1dHVyZSB2ZXJzaW9ucyBvZiB0aGUgZXh0ZW5zaW9uIHdpbGwgaW5jbHVkZSB0aGUgW09wZW5KREtdKGh0dHBzOi8vYWRvcHRvcGVuamRrLm5ldCkgaW4gdGhlIFZTSVggcGFja2FnZQoKVGhlICoqU3dhZ2dlciBDb2RlZ2VuIENMSSoqIGFuZCAqKk9wZW5BUEkgR2VuZXJhdG9yKiogYXJlIGRpc3RyaWJ1dGVkIGFzIEpBUiBmaWxlcyBhbmQgYXJlIGRvd25sb2FkZWQgb24gZGVtYW5kIGJ1dCByZXF1aXJlcyB0aGUgSmF2YSBTREsgdG8gYmUgaW5zdGFsbGVkIG9uIHRoZSBtYWNoaW5lLiAqKkF1dG9SZXN0KiogaXMgaW5zdGFsbGVkIG9uLWRlbWFuZCB2aWEgW05QTV0oaHR0cHM6Ly93d3cubnBtanMuY29tL2dldC1ucG0pIGFzIGEgZ2xvYmFsIHRvb2wgYW5kIHVzZXMgdGhlIGxhdGVzdCBhdmFpbGFibGUgdmVyc2lvbi4gKipNaWNyb3NvZnQgS2lvdGEqKiBpcyBpbnN0YWxsZWQgb24tZGVtYW5kIGFzIGEgLk5FVCBUb29sIGFuZCByZXF1aXJlcyAuTkVUIDcuMC4gVGhpcyBtZWFucyB0aGF0IHVzaW5nIHRoZXNlIGN1c3RvbSB0b29scyBoYXZlIGFuIGluaXRpYWwgZGVsYXkgdXBvbiBmaXJzdCB0aW1lIHVzZS4gCgoqKk5Td2FnU3R1ZGlvKiogaXMgc3RhbmQgYWxvbmUgVUkgdG9vbCBmb3IgZWRpdGluZyBhICoqLm5zd2FnKiogc3BlY2lmaWNhdGlvbiBmaWxlIGZvciBnZW5lcmF0aW5nIGNvZGUuIFRoaXMgdG9vbCBpcyBvcHRpb25hbCB0byBpbnN0YWxsIGFuZCBvZmZpY2lhbCBpbnN0YWxsYXRpb24gaW5zdHJ1Y3Rpb25zIGFyZSBhdmFpbGFibGUgb24gdGhlIFtOU3dhZyBXaWtpIG9uIEdpdGh1Yl0oaHR0cHM6Ly9naXRodWIuY29tL1JpY29TdXRlci9OU3dhZy93aWtpL05Td2FnU3R1ZGlvKS4gSWYgKipOU3dhZ1N0dWRpbyoqIGlzIG5vdCBpbnN0YWxsZWQgb24gdGhlIG1hY2hpbmUgdGhlbiB0aGUgVmlzdWFsIFN0dWRpbyBFeHRlbnNpb24gd2lsbCBpbnN0YWxsIHRoZSAqKk5Td2FnIENMSSoqIHZpYSBbTlBNXShodHRwczovL3d3dy5ucG1qcy5jb20vZ2V0LW5wbSkgYXMgYSBnbG9iYWwgdG9vbCB1c2luZyB0aGUgbGF0ZXN0IGF2YWlsYWJsZSB2ZXJzaW9uLiAKClRoZSAqKk5Td2FnKiogY29kZSBnZW5lcmF0b3IgcHJvZHVjZXMgY29kZSB0aGF0IGRlcGVuZHMgb24gdGhlIFtOZXd0b25zb2Z0Lkpzb25dKGh0dHBzOi8vd3d3Lm51Z2V0Lm9yZy9wYWNrYWdlcy9OZXd0b25zb2Z0Lkpzb24vMTMuMC4zKSBOdUdldCBwYWNrYWdlCgpUaGUgKipSZWZpdHRlcioqIGNvZGUgZ2VuZXJhdG9yIHByb2R1Y2VzIGNvZGUgdGhhdCBkZXBlbmRzIG9uIHRoZSBbUmVmaXRdKGh0dHBzOi8vd3d3Lm51Z2V0Lm9yZy9wYWNrYWdlcy9SZWZpdC83LjAuMCkgTnVHZXQgcGFja2FnZQoKVGhlICoqT3BlbkFQSSBHZW5lcmF0b3IqKiBjb2RlIGdlbmVyYXRvciBwcm9kdWNlcyBjb2RlIHRoYXQgZGVwZW5kcyBvbiB0aGUgZm9sbG93aW5nIE51R2V0IHBhY2thZ2VzOgoKLSBbUmVzdFNoYXJwXShodHRwczovL3d3dy5udWdldC5vcmcvcGFja2FnZXMvUmVzdFNoYXJwLzExMC4yLjApCi0gW0pzb25TdWJUeXBlc10oaHR0cHM6Ly93d3cubnVnZXQub3JnL3BhY2thZ2VzL0pzb25TdWJUeXBlcy8yLjAuMSkKLSBbUG9sbHldKGh0dHBzOi8vd3d3Lm51Z2V0Lm9yZy9wYWNrYWdlcy9Qb2xseS84LjQuMCkKLSBbTmV3dG9uc29mdC5Kc29uXShodHRwczovL3d3dy5udWdldC5vcmcvcGFja2FnZXMvTmV3dG9uc29mdC5Kc29uLzEzLjAuMykKClRoZSBwcm9qZWN0ICoqS2lvdGEqKiBjb2RlIGdlbmVyYXRvciBwcm9kdWNlcyBjb2RlIHRoYXQgZGVwZW5kcyBvbiB0aGUgZm9sbG93aW5nIE51R2V0IHBhY2thZ2VzCgotIFtNaWNyb3NvZnQuS2lvdGEuQWJzdHJhY3Rpb25zXShodHRwczovL3d3dy5udWdldC5vcmcvcGFja2FnZXMvTWljcm9zb2Z0Lktpb3RhLkFic3RyYWN0aW9ucykKLSBbTWljcm9zb2Z0Lktpb3RhLkh0dHAuSHR0cENsaWVudExpYnJhcnldKGh0dHBzOi8vd3d3Lm51Z2V0Lm9yZy9wYWNrYWdlcy9NaWNyb3NvZnQuS2lvdGEuSHR0cC5IdHRwQ2xpZW50TGlicmFyeSkKLSBbTWljcm9zb2Z0Lktpb3RhLlNlcmlhbGl6YXRpb24uRm9ybV0oaHR0cHM6Ly93d3cubnVnZXQub3JnL3BhY2thZ2VzL01pY3Jvc29mdC5LaW90YS5TZXJpYWxpemF0aW9uLkZvcm0pCi0gW01pY3Jvc29mdC5LaW90YS5TZXJpYWxpemF0aW9uLlRleHRdKGh0dHBzOi8vd3d3Lm51Z2V0Lm9yZy9wYWNrYWdlcy9NaWNyb3NvZnQuS2lvdGEuU2VyaWFsaXphdGlvbi5UZXh0KQotIFtNaWNyb3NvZnQuS2lvdGEuU2VyaWFsaXphdGlvbi5Kc29uXShodHRwczovL3d3dy5udWdldC5vcmcvcGFja2FnZXMvTWljcm9zb2Z0Lktpb3RhLlNlcmlhbGl6YXRpb24uSnNvbikKLSBbTWljcm9zb2Z0Lktpb3RhLlNlcmlhbGl6YXRpb24uTXVsdGlwYXJ0XShodHRwczovL3d3dy5udWdldC5vcmcvcGFja2FnZXMvTWljcm9zb2Z0Lktpb3RhLlNlcmlhbGl6YXRpb24uTXVsdGlwYXJ0KQotIFtNaWNyb3NvZnQuS2lvdGEuQXV0aGVudGljYXRpb24uQXp1cmVdKGh0dHBzOi8vd3d3Lm51Z2V0Lm9yZy9wYWNrYWdlcy9NaWNyb3NvZnQuS2lvdGEuQXV0aGVudGljYXRpb24uQXp1cmUpCi0gW0F6dXJlLklkZW50aXR5XShodHRwczovL3d3dy5udWdldC5vcmcvcGFja2FnZXMvQXp1cmUuSWRlbnRpdHkpCgpUaGUgKipTd2FnZ2VyIENvZGVnZW4gQ0xJKiogY29kZSBnZW5lcmF0b3IgcHJvZHVjZXMgY29kZSB0aGF0IGRlcGVuZHMgb24gdGhlIFtSZXN0U2hhcnBdKGh0dHBzOi8vd3d3Lm51Z2V0Lm9yZy9wYWNrYWdlcy9SZXN0U2hhcnAvMTA1LjEuMCkgYW5kIFtKc29uU3ViVHlwZXNdKGh0dHBzOi8vd3d3Lm51Z2V0Lm9yZy9wYWNrYWdlcy9Kc29uU3ViVHlwZXMvMS4yLjApIE51R2V0IHBhY2thZ2VzCgpUaGUgKipBdXRvUmVzdCoqIGNvZGUgZ2VuZXJhdG9yIHByb2R1Y2VzIGNvZGUgdGhhdCBkZXBlbmRzIG9uIHRoZSBbTWljcm9zb2Z0LlJlc3QuQ2xpZW50UnVudGltZV0oaHR0cHM6Ly93d3cubnVnZXQub3JnL3BhY2thZ2VzL01pY3Jvc29mdC5SZXN0LkNsaWVudFJ1bnRpbWUvMi4zLjI0KSBhbmQgW05ld3RvbnNvZnQuSnNvbl0oaHR0cHM6Ly93d3cubnVnZXQub3JnL3BhY2thZ2VzL05ld3RvbnNvZnQuSnNvbi8xMy4wLjMpIE51R2V0IHBhY2thZ2VzCgpUaGlzIFZpc3VhbCBTdHVkaW8gRXh0ZW5zaW9uIHdpbGwgYXV0b21hdGljYWxseSBhZGQgdGhlIHJlcXVpcmVkIE51R2V0IHBhY2thZ2VzIHRoYXQgdGhlIGdlbmVyYXRlZCBjb2RlIGRlcGVuZHMgb24KCiMjIFNjcmVlbnNob3RzCgohW0FkZCAtIEFQSSBDbGllbnQgZnJvbSBPcGVuQVBJIFNwZWNpZmljYXRpb25dKGltYWdlcy9hZGQtbmV3LW1lbnUucG5nKQoKIVtFbnRlciBVUkwgdG8gT3BlbkFQSSBTcGVjaWZpY2F0aW9uXShpbWFnZXMvYWRkLW5ldy1kaWFsb2cucG5nKQoKIVtTb2x1dGlvbiBFeHBsb3JlciBDb250ZXh0IE1lbnVzXShpbWFnZXMvc29sdXRpb24tZXhwbG9yZXItY29udGV4dC1tZW51LmpwZykKCiFbTlN3YWcgU3R1ZGlvIENvbnRleHQgTWVudV0oaW1hZ2VzL25zd2Fnc3R1ZGlvLWNvbnRleHQtbWVudS5qcGcpCgohW1JlZml0dGVyIENvbnRleHQgTWVudV0oaW1hZ2VzL3JlZml0dGVyLWNvbW1hbmQucG5nKQoKIVtLaW90YSBDb250ZXh0IE1lbnVdKGltYWdlcy9nZW5lcmF0ZS1raW90YS1vdXRwdXQucG5nKQoKIyMjIFNldHRpbmdzCgpUaGlzIGV4dGVuc2lvbiB3aWxsIGJ5IGRlZmF1bHQgbWFrZSBzb21lIGFzc3VtcHRpb25zIG9uIHRoZSBpbnN0YWxsYXRpb24gcGF0aHMgZm9yICoqSmF2YSoqLCAqKk5Td2FnKiogYW5kICoqTlBNKiogYnV0IGFsc28gcHJvdmlkZXMgb3B0aW9uIHBhZ2VzIGZvciBjb25maWd1cmluZyB0aGlzLiBUaGUgKipTd2FnZ2VyIENvZGVnZW4gQ0xJKiogYW5kIHRoZSAqKk9wZW5BUEkgR2VuZXJhdG9yKiogSkFSIGZpbGVzIGFyZSBieSBkZWZhdWx0IGRvd25sb2FkZWQgdG8gdGhlIHVzZXIgVEVNUCBmb2xkZXIgYnV0IGl0IGlzIGFsc28gcG9zc2libGUgdG8gc3BlY2lmeSB0byB1c2UgZXhpc3RpbmcgSkFSIGZpbGVzCgohW09wdGlvbnMgLSBHZW5lcmFsXShpbWFnZXMvb3B0aW9ucy1nZW5lcmFsLnBuZykKClN1cHBvcnRzIGN1c3RvbWlzaW5nIGhvdyBBdXRvUmVzdCBnZW5lcmF0ZXMgY29kZSBiYXNlZCBvbiB0aGUgQyMgZ2VuZXJhdG9yIHNldHRpbmdzIHRoYXQgdGhlIEF1dG9SZXN0IENMSSB0b29sIHByb3ZpZGVzCgohW09wdGlvbnMgLSBBdXRvUmVzdF0oaW1hZ2VzL29wdGlvbnMtYXV0b3Jlc3QucG5nKQoKU3VwcG9ydHMgY3VzdG9taXNpbmcgaG93IE5Td2FnIGdlbmVyYXRlcyBjb2RlIHVzaW5nIHRoZSBwcm9wZXJ0aWVzIGV4cG9zZWQgYnkgdGhlIE5Td2FnIE51R2V0IHBhY2thZ2UKCiFbT3B0aW9ucyAtIE5Td2FnXShpbWFnZXMvb3B0aW9ucy1uc3dhZy5wbmcpCgpTdXBwb3J0cyBjdXN0b21pc2luZyBob3cgdGhlICoqLm5zd2FnKiogZmlsZSBpcyBnZW5lcmF0ZWQgdXNpbmcgYSBzdWJzZXQgb2YgdGhlIG9wdGlvbnMgYXZhaWxhYmxlIGluIE5Td2FnIFN0dWRpbwoKIVtPcHRpb25zIC0gTlN3YWcgU3R1ZGlvXShpbWFnZXMvb3B0aW9ucy1uc3dhZ3N0dWRpby5wbmcpCgpTdXBwb3J0cyBjdXN0b21pc2luZyBob3cgT3BlbkFQSSBHZW5lcmF0b3IgZ2VuZXJhdGVzIGNvZGUgdXNpbmcgdGhlIGFkZGl0aW9uYWwgb3B0aW9uYWwgcHJvcGVydGllcyB0aGF0IHRoZSBPcGVuQVBJIEdlbmVyYXRvciBDTEkgdG9vbCBwcm92aWRlcwoKIVtPcHRpb25zIC0gT3BlbkFQSSBHZW5lcmF0b3JdKGltYWdlcy9vcHRpb25zLW9wZW5hcGlnZW5lcmF0b3IucG5nKQoKU3VwcG9ydHMgY3VzdG9taXNpbmcgaG93IFJlZml0dGVyIGdlbmVyYXRlcyB0aGUgUmVmaXQgaW50ZXJmYWNlLiBUaGlzIGFsbG93cyB5b3UgdG8gY29uZmlndXJlIHdoZXRoZXIgdG8gcmV0dXJuIHRoZSB0eXBlIGRpcmVjdGx5IG9yIHdyYXAgaXQgaW5zaWRlIGFuIGBJQXBpUmVzcG9uc2U8VD5gLiBZb3UgY2FuIGFsc28gZGlzYWJsZSBnZW5lcmF0aW5nIGNvbnRyYWN0cyBvciBYTUwgZG9jIHN0eWxlIGNvbW1lbnRzCgohW09wdGlvbnMgLSBSZWZpdHRlcl0oaW1hZ2VzL3JlZml0dGVyLW9wdGlvbnMucG5nKQoKU3VwcG9ydHMgYWxsb3dpbmcgS2lvdGEgdG8gZ2VuZXJhdGUgbXVsdGlwbGUgZmlsZXMKCiFbT3B0aW9ucyAtIEtpb3RhXShpbWFnZXMvb3B0aW9ucy1raW90YS5wbmcpCgpUaGlzIGV4dGVuc2lvbiBjb2xsZWN0cyBlcnJvcnMgYW5kIHRyYWNrcyBmZWF0dXJlIHVzYWdlcyB0byBhIHNlcnZpY2UgY2FsbGVkIFtFeGNlcHRpb25sZXNzXShodHRwczovL2V4Y2VwdGlvbmxlc3MuY29tKSBhbmQgW0F6dXJlIEFwcGxpY2F0aW9uIEluc2lnaHRzXShodHRwczovL2xlYXJuLm1pY3Jvc29mdC5jb20vZW4tdXMvYXp1cmUvYXp1cmUtbW9uaXRvci9hcHAvYXBwLWluc2lnaHRzLW92ZXJ2aWV3P1dULm1jX2lkPURULU1WUC01MDA0ODIyKS4gVGhpcyBpcyBkb25lIGFub255bW91c2x5IHVzaW5nIGEgc3VwcG9ydCBrZXkgYW5kIGEgZ2VuZXJhdGVkIGFub255bW91cyBpZGVudGl0eSBiYXNlZCBvbiBhIHNlY3VyZSBoYXNoIG9mIHVzZXJuYW1lQGhvc3QKCiFbT3B0aW9ucyAtIEFuYWx5dGljc10oaW1hZ2VzL3N1cHBvcnQta2V5LnBuZykKCiMjIyBNYWNPUwoKIVtBZGQgLSBBUEkgQ2xpZW50IGZyb20gT3BlbkFQSSBTcGVjaWZpY2F0aW9uXShpbWFnZXMvdnNtYWMtYWRkLW5ldy1tZW51LnBuZykKCiFbRW50ZXIgVVJMIHRvIE9wZW5BUEkgU3BlY2lmaWNhdGlvbl0oaW1hZ2VzL3ZzbWFjLWFkZC1uZXctZGlhbG9nLnBuZykKCiFbU29sdXRpb24gRXhwbG9yZXIgQ29udGV4dCBNZW51c10oaW1hZ2VzL3ZzbWFjLWdlbmVyYXRlLWNvZGUucG5nKQoKIVtOU3dhZyBTdHVkaW8gQ29udGV4dCBNZW51XShpbWFnZXMvdnNtYWMtbnN3YWctc3R1ZGlvLnBuZykKCiMgSW5zdGFsbGF0aW9uCgpUaGUgVmlzdWFsIFN0dWRpbyBleHRlbnNpb24gY2FuIGJlIGluc3RhbGxlZCBkaXJlY3RseSBmcm9tIFZpc3VhbCBTdHVkaW8gMjAxOSBhbmQgMjAyMiB2aWEgdGhlICoqRXh0ZW5zaW9ucyBEaWFsb2cgQm94KiouIFRoZSBwcm9jZXNzIGlzIGJlc3QgZGVzY3JpYmVkIGluIHRoZSBvZmZpY2lhbCBNaWNyb3NvZnQgZG9jdW1lbnRhdGlvbiBmb3IgW01hbmFnaW5nIGV4dGVuc2lvbnMgZm9yIFZpc3VhbCBTdHVkaW9dKGh0dHBzOi8vZG9jcy5taWNyb3NvZnQuY29tL2VuLXVzL3Zpc3VhbHN0dWRpby9pZGUvZmluZGluZy1hbmQtdXNpbmctdmlzdWFsLXN0dWRpby1leHRlbnNpb25zP3ZpZXc9dnMtMjAxOSZXVC5tY19pZD1EVC1NVlAtNTAwNDgyMikKCiMjIFZpc3VhbCBTdHVkaW8gZm9yIE1hYwoKVGhpcyBpbnN0YWxsYXRpb24gcHJvY2VzcyBmb3IgKipWaXN1YWwgU3R1ZGlvIGZvciBNYWMqKiBpcyBjdXJyZW50bHkgYSBiaXQgdHJvdWJsZXNvbWUgYXMgdGhlIE1vbm9EZXZlbG9wIEFkZGluIFJlcG9zaXRvcnkgaXMgY3VycmVudGx5IG5vdCBhY2NlcHRpbmcgbmV3IHVzZXJzIHNvIEkgY2FuJ3QgcmVhbGx5IHJlZ2lzdGVyIGFuZCBzZXR1cCBteSBleHRlbnNpb24uCgpUaGVyZSBhcmUgMiB3YXlzIG9mIGluc3RhbGxpbmcgbXkgZXh0ZW5zaW9uIG9uIFZpc3VhbCBTdHVkaW8gZm9yIE1hYzogQWRkaW5nIGEgY3VzdG9tIGV4dGVuc2lvbiByZXBvc2l0b3J5IG9yIEluc3RhbGxpbmcgdGhlICoqLm1wYWNrKiogZmlsZSBkaXJlY3RseSBmcm9tIHRoZSBFeHRlbnNpb25zIE1hbmFnZXIKCiMjIyBBZGRpbmcgYSBuZXcgZXh0ZW5zaW9uIHJlcG9zaXRvcnkKCkhlcmUncyB3aGF0IHlvdSBuZWVkIHRvIGRvOgoKLSBPcGVuIHRoZSBWaXN1YWwgU3R1ZGlvIGZvciBNYWMgKipFeHRlbnNpb24gTWFuYWdlcioqCi0gWW91IGNhbiBkbyB0aGlzIGZyb20gdGhlIG1lbnUgKipWaXN1YWwgU3R1ZGlvKiogLT4gKipFeHRlbnRpb25zKioKCiFbT3BlbiBFeHRlbnNpb25zIERpYWxvZyBCb3hdKGltYWdlcy92c21hYy1leHRlbnNpb25zLW1lbnUucG5nKQoKLSBTZWxlY3QgdGhlICoqR2FsbGVyeSoqIFRhYgotIEV4cGFuZCB0aGUgUmVwb3NpdG9yeSBkcm9wIGRvd24gYm94IGFuZCBzZWxlY3QgKipNYW5hZ2UgUmVwb3NpdG9yaWVzKioKCiFbTWFuYWdlIFJlcG9zaXRvcmllc10oaW1hZ2VzL3ZzbWFjLWV4dGVuc2lvbnMtbWFuYWdlLXJlcG9zaXRvcmllcy5wbmcpCgotIFByZXNzIG9uIHRoZSAqKkFkZCoqIGJ1dHRvbiB0byBhZGQgYSBuZXcgY3VzdG9tIGV4dGVuc2lvbiByZXBvc2l0b3J5CgohW01hbmFnZSBSZXBvc2l0b3JpZXNdKGltYWdlcy92c21hYy1leHRlbnNpb25zLXJlcG9zaXRvcmllcy5wbmcpCgotIFJlZ2lzdGVyIGFuIG9ubGluZSByZXBvc2l0b3J5IGF0ICoqaHR0cHM6Ly9jaHJpc3RpYW5oZWxsZS5jb20vdnNtYWMvbWFpbi5tcmVwKioKLSBDbGljayAqKk9LKioKCiFbQWRkIFJlcG9zaXRvcnldKGltYWdlcy92c21hYy1leHRlbnNpb25zLWFkZC1yZXBvc2l0b3J5LnBuZykKCi0gTm93IG15IGV4dGVuc2lvbiByZXBvc2l0b3J5IGlzIGFkZGVkIHRvIHRoZSBsaXN0Ci0gTWFrZSBzdXJlIHRoYXQgdGhpcyBpcyBlbmFibGVkIChpbmRpY2F0ZWQgYnkgYSBjaGVjayBib3gpCgohW0FkZCBSZXBvc2l0b3J5IERpYWxvZ10oaW1hZ2VzL3ZzbWFjLWV4dGVuc2lvbnMtYWRkZWQtcmVwb3NpdG9yeS5wbmcpCgotIFlvdSBzaG91bGQgbm93IGJlIGFibGUgdG8gc2VlIG15IGV4dGVuc2lvbnMgZnJvbSB0aGUgKipHYWxsZXJ5KiogdGFiCgohW0FkZGVkIFJlcG9zaXRvcnldKGltYWdlcy92c21hYy1leHRlbnNpb25zLWdhbGxlcnkucG5nKQoKLSBCeSBhZGRpbmcgbXkgZXh0ZW5zaW9uIHJlcG9zaXRvcnkgeW91IHdpbGwgYmUgYWJsZSB0byBjb252ZW5pZW50bHkgdXBkYXRlIG15IGV4dGVuc2lvbiB1c2luZyB0aGUgVmlzdWFsIFN0dWRpbyBmb3IgTWFjIEV4dGVuc2lvbiBNYW5hZ2VyCgohW0FkZCBSZXBvc2l0b3J5XShpbWFnZXMvdnNtYWMtdXBkYXRlcy5wbmcpCgohW0FkZCBSZXBvc2l0b3J5XShpbWFnZXMvdnNtYWMtdXBkYXRlLWluc3RhbGwucG5nKQoKIVtBZGQgUmVwb3NpdG9yeV0oaW1hZ2VzL3ZzbWFjLXVwZGF0ZS1pbnN0YWxsLXByb2dyZXNzLnBuZykKCiMjIyBJbnN0YWxsaW5nIHRoZSAqKi5tcGFjayoqIGZpbGUgZGlyZWN0bHkKCkhlcmUncyB3aGF0IHlvdSBuZWVkIHRvIGRvOgotIERvd25sb2FkIHRoZSBsYXRlc3QgKioubXBhY2sgZmlsZSoqIGZyb20gdGhlIFtMYXRlc3QgR2l0aHViIFJlbGVhc2VdKGh0dHBzOi8vZ2l0aHViLmNvbS9jaHJpc3RpYW5oZWxsZS9hcGljbGllbnRjb2RlZ2VuL3JlbGVhc2VzL2xhdGVzdCkKLSBOb3cgZnJvbSB3aXRoaW4gVmlzdWFsIFN0dWRpbyBmb3IgTWFjIHlvdSBuZWVkIHRvIGxhdW5jaCB0aGUgKipFeHRlbnNpb25zIERpYWxvZyBCb3gqKi4gWW91IGNhbiBkbyB0aGlzIGZyb20gdGhlIG1lbnUgKipWaXN1YWwgU3R1ZGlvKiogLT4gKipFeHRlbnRpb25zKioKCiFbT3BlbiBFeHRlbnNpb25zIERpYWxvZyBCb3hdKGltYWdlcy92c21hYy1leHRlbnNpb25zLW1lbnUucG5nKQoKLSBDbGljayBvbiB0aGUgKipJbnN0YWxsIGZyb20gRmlsZSoqIGJ1dHRvbgoKIVtNYW51YWxseSBpbnN0YWxsIC5tcGFjayBmaWxlXShpbWFnZXMvdnNtYWMtZXh0ZW5zaW9ucy1pbnN0YWxsLnBuZykKCi0gQnJvd3NlIHRvIHRoZSAubXBhY2sgZmlsZSBhbmQgc2VsZWN0IGl0LiBZb3Ugd2lsbCBiZSBwcm9tcHRlZCB3aXRoIGEgY29uZmlybWF0aW9uIGRpYWxvZwoKIVtDb25maXJtIC5tcGFjayBmaWxlIGluc3RhbGxdKGltYWdlcy92c21hYy1leHRlbnNpb25zLWluc3RhbGwtY29uZmlybS5wbmcpCgotIENsaWNrICoqSW5zdGFsbCoqIGFuZCByZXN0YXJ0IFZpc3VhbCBTdHVkaW8gZm9yIE1hYwotIFRvIFZlcmlmeSB0aGF0IHRoZSBBZGQtaW4gd2FzIGluc3RhbGxlZCB5b3UgY2FuIHJlLW9wZW4gdGhlIEV4dGVuc2lvbnMgRGlhbG9nIEJveCwgc2VsZWN0IHRoZSAqKkluc3RhbGxlZCoqIHRhYiBhbmQgZXhwYW5kIHRoZSAqKklERSBFeHRlbnNpb25zKiouIFlvdSBzaG91bGQgYmUgYWJsZSB0byBzZWUgdGhlICoqUkVTVCBBUEkgQ2xpZW50IENvZGUgR2VuZXJhdG9yKiouCgotIFVuaW5zdGFsbGluZyB0aGUgQWRkLWluIGlzIGRvbmUgaW4gdGhpcyBzYW1lIGRpYWxvZyBib3ggYnkgY2xpY2tpbmcgdGhlICoqVW5pbnN0YWxsKiogYnV0dG9uCgohW01hbnVhbGx5IHVuaW5zdGFsbCBBZGQtaW5dKGltYWdlcy92c21hYy1leHRlbnNpb25zLXVuaW5zdGFsbC5wbmcpCgoKIyBDcm9zcyBQbGF0Zm9ybSBDb21tYW5kIExpbmUgVG9vbApBbGwgY3VzdG9tIHRvb2xzIG1lbnRpb25lZCBhYm92ZSBhcmUgYWxzbyBpbXBsZW1lbnRlZCBpbiBhIGNyb3NzIHBsYXRmb3JtIGNvbW1hbmQgbGluZSBhcHBsaWNhdGlvbgoKIyMjIyBSZXF1aXJlbWVudHMKLSAuTkVUIDYuMCBydW50aW1lCi0gSmF2YSBSdW50aW1lIEVudmlyb25tZW50Ci0gTlBNCgojIyMgSW5zdGFsbGF0aW9uClRoZSB0b29sIGNhbiBiZSBpbnN0YWxsZWQgYXMgYSAuTkVUIENvcmUgZ2xvYmFsIHRvb2wgdGhhdCB5b3UgY2FuIGNhbGwgZnJvbSB0aGUgc2hlbGwgLyBjb21tYW5kIGxpbmUKYGBgCmRvdG5ldCB0b29sIGluc3RhbGwgLS1nbG9iYWwgcmFwaWNnZW4KYGBgCm9yIGJ5IGZvbGxvd2luZyB0aGUgaW5zdHJ1Y3Rpb25zIFtoZXJlXShodHRwczovL3d3dy5udWdldC5vcmcvcGFja2FnZXMvcmFwaWNnZW4pIHRvIGluc3RhbGwgYSBzcGVjaWZpYyB2ZXJzaW9uIG9mIHRvb2wKCiMjIyBVc2FnZQpTaW5jZSB0aGUgdG9vbCBpcyBwdWJsaXNoZWQgYXMgYSAuTkVUIENvcmUgVG9vbCwgaXQgY2FuIGJlIGxhdW5jaGVkIGZyb20gYW55d2hlcmUgdXNpbmcgYW55IGNvbW1hbmQgbGluZSBpbnRlcmZhY2UgYnkgY2FsbGluZyAqKnJhcGljZ2VuKiouClRoZSBoZWxwIGluZm9ybWF0aW9uIGlzIGRpc3BsYXllZCB3aGVuIG5vdCBzcGVjaWZ5aW5nIGFueSBhcmd1bWVudHMgdG8gKipyYXBpY2dlbioqCgpgYGAKVXNhZ2U6IHJhcGljZ2VuIFtjb21tYW5kXSBbb3B0aW9uc10KCk9wdGlvbnM6CiAgLXZ8LS12ZXJib3NlICAgICAgIFNob3cgdmVyYm9zZSBvdXRwdXQKICAtP3wtaHwtLWhlbHAgICAgICAgU2hvdyBoZWxwIGluZm9ybWF0aW9uLgoKQ29tbWFuZHM6CiAgY3NoYXJwICAgICAgICAgICAgIEdlbmVyYXRlIEMjIEFQSSBjbGllbnRzCiAgam1ldGVyICAgICAgICAgICAgIEdlbmVyYXRlIEFwYWNoZSBKTWV0ZXIgdGVzdCBwbGFucwogIG9wZW5hcGktZ2VuZXJhdG9yICBHZW5lcmF0ZSBjb2RlIHVzaW5nIE9wZW5BUEkgR2VuZXJhdG9yICh2Ny44LjApLgogICAgICAgICAgICAgICAgICAgICBTZWUgc3VwcG9ydGVkIGdlbmVyYXRvcnMgYXQgaHR0cHM6Ly9vcGVuYXBpLWdlbmVyYXRvci50ZWNoL2RvY3MvZ2VuZXJhdG9ycy8KICB0eXBlc2NyaXB0ICAgICAgICAgR2VuZXJhdGUgVHlwZVNjcmlwdCBBUEkgY2xpZW50cwoKUnVuICdyYXBpY2dlbiBbY29tbWFuZF0gLT98LWh8LS1oZWxwJyBmb3IgbW9yZSBpbmZvcm1hdGlvbiBhYm91dCBhIGNvbW1hbmQuCmBgYAoKU29tZSBoZWxwIGluZm9ybWF0aW9uIGlzIGFsc28gcHJvdmlkZWQgcGVyIGNvbW1hbmQgYW5kIGNhbiBiZSBsYXVuY2hlZCBieSAKCmBgYApyYXBpY2dlbiBbY29tbWFuZCBuYW1lXSAtPwpgYGAKCm9yCgpgYGAKcmFwaWNnZW4gW2NvbW1hbmQgbmFtZV0gW3N1YiBjb21tYW5kIG5hbWVdIC0/CmBgYAoKRm9yIGV4YW1wbGU6CgpgYGAKcmFwaWNnZW4gY3NoYXJwIC0/CmBgYCAKCndpbGwgb3V0cHV0IHRoaXM6CgpgYGAKR2VuZXJhdGUgQyMgQVBJIGNsaWVudHMKClVzYWdlOiByYXBpY2dlbiBjc2hhcnAgW2NvbW1hbmRdIFtvcHRpb25zXQoKT3B0aW9uczoKICAtP3wtaHwtLWhlbHAgIFNob3cgaGVscCBpbmZvcm1hdGlvbi4KCkNvbW1hbmRzOgogIGF1dG9yZXN0ICAgICAgQXV0b1Jlc3QgKHYzLjAuMC1iZXRhLjIwMjEwNTA0LjIpCiAga2lvdGEgICAgICAgICBNaWNyb3NvZnQgS2lvdGEgKHYxLjE3LjApCiAgbnN3YWcgICAgICAgICBOU3dhZyAodjE0LjEuMCkKICBvcGVuYXBpICAgICAgIE9wZW5BUEkgR2VuZXJhdG9yICh2Ny44LjApCiAgcmVmaXR0ZXIgICAgICBSZWZpdHRlciAodjEuMi4wKQogIHN3YWdnZXIgICAgICAgU3dhZ2dlciBDb2RlZ2VuIENMSSAodjMuMC4zNCkKClJ1biAnY3NoYXJwIFtjb21tYW5kXSAtP3wtaHwtLWhlbHAnIGZvciBtb3JlIGluZm9ybWF0aW9uIGFib3V0IGEgY29tbWFuZC4KCmBgYAoKYW5kCgpgYGAKcmFwaWNnZW4gY3NoYXJwIGF1dG9yZXN0IC0/CmBgYAoKd2lsbCBvdXRwdXQgdGhpczoKCmBgYApHZW5lcmF0ZSBTd2FnZ2VyIC8gT3BlbiBBUEkgY2xpZW50IHVzaW5nIEF1dG9SZXN0CgpVc2FnZTogcnVuIGF1dG9yZXN0IFtvcHRpb25zXSA8c3dhZ2dlckZpbGU+IDxuYW1lc3BhY2U+IDxvdXRwdXRGaWxlPgoKQXJndW1lbnRzOgogIHN3YWdnZXJGaWxlICAgUGF0aCB0byB0aGUgU3dhZ2dlciAvIE9wZW4gQVBJIHNwZWNpZmljYXRpb24gZmlsZQogIG5hbWVzcGFjZSAgICAgRGVmYXVsdCBuYW1lc3BhY2UgdG8gaW4gdGhlIGdlbmVyYXRlZCBjb2RlCiAgb3V0cHV0RmlsZSAgICBPdXRwdXQgZmlsZW5hbWUgdG8gd3JpdGUgdGhlIGdlbmVyYXRlZCBjb2RlIHRvLiBEZWZhdWx0IGlzIHRoZSBzd2FnZ2VyRmlsZSAuY3MKCk9wdGlvbnM6CiAgLT98LWh8LS1oZWxwICBTaG93IGhlbHAgaW5mb3JtYXRpb24KYGBgCgpvciAKCmBgYApyYXBpY2dlbiB0eXBlc2NyaXB0IC0/CmBgYAoKd2lsbCBvdXRwdXQgdGhpczoKCmBgYApHZW5lcmF0ZSBUeXBlU2NyaXB0IEFQSSBjbGllbnQKClVzYWdlOiByYXBpY2dlbiB0eXBlc2NyaXB0IFtvcHRpb25zXSA8Z2VuZXJhdG9yPiA8c3dhZ2dlckZpbGU+IDxvdXRwdXRQYXRoPgoKQXJndW1lbnRzOgogIGdlbmVyYXRvciAgICAgICAgIFRoZSB0ZWNoIHN0YWNrIHRvIHVzZSBmb3IgdGhlIGdlbmVyYXRlZCBjbGllbnQgbGlicmFyeQogICAgICAgICAgICAgICAgICAgIEFsbG93ZWQgdmFsdWVzIGFyZTogQW5ndWxhciwgQXVyZWxpYSwgQXhpb3MsIEZldGNoLCBJbnZlcnNpZnksIEpRdWVyeSwgTmVzdEpTLCBOb2RlLCBSZWR1eFF1ZXJ5LAogICAgICAgICAgICAgICAgICAgIFJ4anMuCiAgICAgICAgICAgICAgICAgICAgRGVmYXVsdCB2YWx1ZSBpczogQW5ndWxhci4KICBzd2FnZ2VyRmlsZSAgICAgICBQYXRoIHRvIHRoZSBTd2FnZ2VyIC8gT3BlbiBBUEkgc3BlY2lmaWNhdGlvbiBmaWxlCiAgb3V0cHV0UGF0aCAgICAgICAgT3V0cHV0IGZvbGRlciB0byB3cml0ZSB0aGUgZ2VuZXJhdGVkIGNvZGUgdG8KICAgICAgICAgICAgICAgICAgICBEZWZhdWx0IHZhbHVlIGlzOiB0eXBlc2NyaXB0LWdlbmVyYXRlZC1jb2RlLgoKT3B0aW9uczoKICAtbmx8LS1uby1sb2dnaW5nICBEaXNhYmxlcyBBbmFseXRpY3MgYW5kIEVycm9yIFJlcG9ydGluZwogIC0/fC1ofC0taGVscCAgICAgIFNob3cgaGVscCBpbmZvcm1hdGlvbi4KYGBgCgojIyBVc2FnZSBFeGFtcGxlczoKCkxldCdzIHNheSB3ZSBoYXZlIGEgT3BlbkFQSSBTcGVjaWZpY2F0aW9ucyBkb2N1bWVudCBjYWxsZWQgKipTd2FnZ2VyLmpzb24qKgoKRm9yIHN0YXJ0ZXJzLCB3ZSBjYW4gdXNlIHRoZSBTd2FnZ2VyIFBldHN0b3JlIHNwZWMuIEhlcmUncyBhbiBleGFtcGxlIHBvd2Vyc2hlbGwgc2NyaXB0IGZvciBkb3dubG9hZGluZyBpdAoKYGBgCkludm9rZS1XZWJSZXF1ZXN0IC1VcmkgaHR0cHM6Ly9wZXRzdG9yZS5zd2FnZ2VyLmlvL3YzL3N3YWdnZXIuanNvbiAtT3V0RmlsZSBTd2FnZ2VyLmpzb24KYGBgCgpJbiBjYXNlIHlvdSBkb24ndCBoYXZlIHRoZSBDTEkgdG9vbCBpbnN0YWxsZWQgeW91IGNhbiBpbnN0YWxsIGl0IGJ5CgpgYGAKZG90bmV0IHRvb2wgaW5zdGFsbCAtLWdsb2JhbCByYXBpY2dlbgpgYGAKCkhlcmUncyBhbiBleGFtcGxlIG9mIGhvdyB0byBnZW5lcmF0ZSBjb2RlIHVzaW5nICoqQXV0b1Jlc3QqKgoKYGBgCnJhcGljZ2VuIGNzaGFycCBhdXRvcmVzdCBTd2FnZ2VyLmpzb24gR2VuZXJhdGVkQ29kZSAuL0F1dG9SZXN0T3V0cHV0LmNzCmBgYAoKSGVyZSdzIGFuIGV4YW1wbGUgb2YgaG93IHRvIGdlbmVyYXRlIGNvZGUgdXNpbmcgKipLaW90YSoqCgpgYGAKcmFwaWNnZW4gY3NoYXJwIGtpb3RhIFN3YWdnZXIuanNvbiBHZW5lcmF0ZWRDb2RlIC4vT3BlbkFwaU91dHB1dC5jcwpgYGAKCkhlcmUncyBhbiBleGFtcGxlIG9mIGhvdyB0byBnZW5lcmF0ZSBjb2RlIHVzaW5nICoqTlN3YWcqKgoKYGBgCnJhcGljZ2VuIGNzaGFycCBuc3dhZyBTd2FnZ2VyLmpzb24gR2VuZXJhdGVkQ29kZSAuL05Td2FnT3V0cHV0LmNzCmBgYAoKSGVyZSdzIGFuIGV4YW1wbGUgb2YgaG93IHRvIGdlbmVyYXRlIGNvZGUgdXNpbmcgKipTd2FnZ2VyIENvZGVnZW4gQ0xJKioKCmBgYApyYXBpY2dlbiBjc2hhcnAgc3dhZ2dlciBTd2FnZ2VyLmpzb24gR2VuZXJhdGVkQ29kZSAuL1N3YWdnZXJPdXRwdXQuY3MKYGBgCgpIZXJlJ3MgYW4gZXhhbXBsZSBvZiBob3cgdG8gZ2VuZXJhdGUgY29kZSB1c2luZyAqKk9wZW5BUEkgR2VuZXJhdG9yKioKCmBgYApyYXBpY2dlbiBjc2hhcnAgb3BlbmFwaSBTd2FnZ2VyLmpzb24gR2VuZXJhdGVkQ29kZSAuL09wZW5BcGlPdXRwdXQuY3MKYGBgCgpIZXJlJ3MgYW4gZXhhbXBsZSBvZiBob3cgdG8gZ2VuZXJhdGUgY29kZSAqKkpNZXRlcioqIHRlc3QgcGxhbnMKCmBgYApyYXBpY2dlbiBqbWV0ZXIgU3dhZ2dlci5qc29uCmBgYAoKSGVyZSdzIGFuIGV4YW1wbGUgb2YgaG93IHRvIGdlbmVyYXRlIGNvZGUgZm9yICoqVHlwZVNjcmlwdCoqCgpgYGAKcmFwaWNnZW4gdHlwZXNjcmlwdCBBbmd1bGFyIFN3YWdnZXIuanNvbgpgYGAKCiMKCkZvciB0aXBzIGFuZCB0cmlja3Mgb24gc29mdHdhcmUgZGV2ZWxvcG1lbnQsIGNoZWNrIG91dCBbbXkgYmxvZ10oaHR0cHM6Ly9jaHJpc3RpYW5oZWxsZS5jb20pCgpJZiB5b3UgZmluZCB0aGlzIHVzZWZ1bCBhbmQgZmVlbCBhIGJpdCBnZW5lcm91cyB0aGVuIGZlZWwgZnJlZSB0byBbYnV5IG1lIGEgY29mZmVlIOKYlV0oaHR0cHM6Ly93d3cuYnV5bWVhY29mZmVlLmNvbS9jaHJpc3RpYW5oZWxsZSkKCg== + readmeEtag: '"e5c7e6e54f58edacb22334db5a437debea15ff26"' + readmeLastModified: Mon, 19 Aug 2024 08:58:36 GMT repositoryId: 166226127 description: >- A collection of Visual Studio custom tool code generators for Swagger / OpenAPI specification files created: '2019-01-17T12:58:50Z' - updated: '2024-08-14T22:50:58Z' + updated: '2024-08-19T12:40:27Z' language: C# archived: false - stars: 167 + stars: 168 watchers: 6 forks: 20 owner: christianhelle logo: https://avatars.githubusercontent.com/u/710400?v=4 license: GPL-3.0 - repoEtag: '"ad2e6667760bdcd37f71be8544b91c01989a31850a32f192b76c4da815c4fb80"' - repoLastModified: Wed, 14 Aug 2024 22:50:58 GMT + repoEtag: '"875944129d6b3f78d1f53b6327c68a90407c2dbd45133b3e7504f1413c034d77"' + repoLastModified: Mon, 19 Aug 2024 12:40:27 GMT category: SDK foundInMaster: true - source: openapi3 tags @@ -10044,7 +10044,7 @@ owner: sunrise-php logo: https://avatars.githubusercontent.com/u/41580063?v=4 license: MIT - repoEtag: '"3367e8c0d9f6c906e07a2095399c32bdf9e5bfeffcde6c7dd9df72fdaaceb1f1"' + repoEtag: '"d0e1bb39a5009ac4b27e9872b609570a54bf5646ade713a4464cd37e3d1f48ed"' repoLastModified: Thu, 27 Jun 2024 17:27:53 GMT foundInMaster: true category: Data Validators @@ -10225,17 +10225,17 @@ Autogenered docs, Zod - BullMQ - Nodemailer - Docker - MongoDB (Mongoose) - Socket.io created: '2024-08-11T02:19:59Z' - updated: '2024-08-19T03:10:59Z' + updated: '2024-08-19T18:36:53Z' language: TypeScript archived: false - stars: 125 + stars: 130 watchers: 1 - forks: 21 + forks: 23 owner: muneebhashone logo: https://avatars.githubusercontent.com/u/88892379?v=4 license: MIT - repoEtag: '"b234caf521d8cdaf101c59873b0d54631ad58c20274c4bb7f6029806dabe8376"' - repoLastModified: Mon, 19 Aug 2024 03:10:59 GMT + repoEtag: '"d681e1790be3321755d81e74b726c8e00cfd46434b45549362587231be150e7c"' + repoLastModified: Mon, 19 Aug 2024 18:36:53 GMT category: Server Implementations foundInMaster: true - source: openapi3 tags @@ -10386,17 +10386,17 @@ A curated list of awesome JSON Schema resources, tutorials, tools, and more created: '2021-09-09T11:39:06Z' - updated: '2024-08-13T06:59:54Z' + updated: '2024-08-19T19:08:00Z' language: Handlebars archived: false - stars: 111 + stars: 112 watchers: 11 forks: 3 owner: sourcemeta logo: https://avatars.githubusercontent.com/u/74150453?v=4 license: CC0-1.0 - repoEtag: '"c552cc411528bbe7cdb5ddebb2ea088e2dbfe9bc3cc1882942b758578ad84c91"' - repoLastModified: Tue, 13 Aug 2024 06:59:54 GMT + repoEtag: '"343f93fb9d4b1996cb70832e56b455ea4b654772629fd2d570d9f73c60af43d1"' + repoLastModified: Mon, 19 Aug 2024 19:08:00 GMT foundInMaster: true category: Converters id: 40df0f4f4e0e95da0b9f4aeb27567a36 @@ -10618,7 +10618,7 @@ owner: moclojer logo: https://avatars.githubusercontent.com/u/103039458?v=4 license: MIT - repoEtag: '"fce43c515e12650d79b81fdc70a5fe4160a3f6c1bac0827a5144c61757cf0ea5"' + repoEtag: '"6226355d64ce09ac8b333d68cb46863691f5611c538a605483dcbfce4cef86b6"' repoLastModified: Mon, 12 Aug 2024 20:43:05 GMT category: Testing foundInMaster: true @@ -10724,7 +10724,7 @@ A collection of open-source and commercial tools for creating your APIs with OpenAPI - Sourced from and published for the community created: '2022-01-14T19:24:14Z' - updated: '2024-08-18T03:32:26Z' + updated: '2024-08-19T03:28:02Z' language: JavaScript archived: false stars: 96 @@ -10732,8 +10732,8 @@ forks: 26 owner: OAI logo: https://avatars.githubusercontent.com/u/16343502?v=4 - repoEtag: '"58bdb499f7ce8f3c5173e4d6bb5baea6b6761aa7f08e59ae74cddac5436c5491"' - repoLastModified: Sun, 18 Aug 2024 03:32:26 GMT + repoEtag: '"7f1e8a019f4b7ae8246f0a602801e0e5430cfc6bc4dcd0be382cf5672162d7a9"' + repoLastModified: Mon, 19 Aug 2024 03:28:02 GMT category: Server Implementations foundInMaster: true oldLocations: @@ -10754,7 +10754,7 @@ OpenAPI schema validator is a Python library that validates schema against OpenAPI Schema Specification v3.0 and v3.1 created: '2020-03-05T09:23:39Z' - updated: '2024-07-31T09:32:48Z' + updated: '2024-08-20T01:36:34Z' language: Python archived: false stars: 96 @@ -10763,8 +10763,8 @@ owner: python-openapi logo: https://avatars.githubusercontent.com/u/126442889?v=4 license: BSD-3-Clause - repoEtag: '"5f65fd469f179c01d4bfb16e8ce11a57102ee1fdb3dc606fb35179d5de2c60f6"' - repoLastModified: Wed, 31 Jul 2024 09:32:48 GMT + repoEtag: '"aa3a64854b32fae7f1c9afdc4a4dc3830f7075817c0eb93aac80f990344df6e0"' + repoLastModified: Tue, 20 Aug 2024 01:36:34 GMT category: Parsers oldLocations: - https://github.com/p1c2u/openapi-schema-validator @@ -10783,17 +10783,17 @@ Converts OpenAPI 3.0 definitions to Plant UML text for visualisation of your API. created: '2021-02-17T03:47:43Z' - updated: '2024-08-16T12:27:07Z' + updated: '2024-08-20T02:31:28Z' language: Java archived: false - stars: 94 + stars: 95 watchers: 4 forks: 18 owner: davidmoten logo: https://avatars.githubusercontent.com/u/318187?v=4 license: Apache-2.0 - repoEtag: '"497a37a8614f3ee8a4e882e7391506af3d60b77117e7b752b92a37761e92f7a9"' - repoLastModified: Fri, 16 Aug 2024 12:27:07 GMT + repoEtag: '"ef8796f144815d5534c6ec4cc39ae5a75051787e7b1a20a7db306618c8308267"' + repoLastModified: Tue, 20 Aug 2024 02:31:28 GMT foundInMaster: true category: SDK id: d4f9d833f5a48b843c52f5ec6f582976 @@ -10977,7 +10977,7 @@ owner: jellyfin logo: https://avatars.githubusercontent.com/u/45698031?v=4 license: LGPL-3.0 - repoEtag: '"aadaf3fbc699487a197ef23b1602fa3fbfbe3d8989447d6268f916cc74758364"' + repoEtag: '"e2269c05298a099abe8bfd2888d613d34c7f7af14aeca26c4aa2743ba3d90ac5"' repoLastModified: Sat, 10 Aug 2024 03:48:58 GMT foundInMaster: true category: Testing @@ -11211,7 +11211,7 @@ repositoryId: 249737066 description: Semantic parser for API specifications created: '2020-03-24T14:55:51Z' - updated: '2024-08-17T00:02:11Z' + updated: '2024-08-19T23:27:56Z' language: TypeScript archived: false stars: 67 @@ -11219,8 +11219,8 @@ forks: 15 owner: swagger-api logo: https://avatars.githubusercontent.com/u/7658037?v=4 - repoEtag: '"15d328806c1a4dd5d1695504a2f578d1072c550cfef29f954770c52c2ecf5b84"' - repoLastModified: Sat, 17 Aug 2024 00:02:11 GMT + repoEtag: '"4b17160a3740e92ec2113e75945f93e23fe5ecc7e09359e24f896fc59c24874e"' + repoLastModified: Mon, 19 Aug 2024 23:27:56 GMT category: Parsers foundInMaster: true - source: openapi3 tags @@ -11345,16 +11345,16 @@ Improve the security of your API by detecting common vulnerabilities as defined by OWASP and enforced with Spectral. created: '2022-08-25T18:14:13Z' - updated: '2024-08-18T05:08:42Z' + updated: '2024-08-19T10:45:17Z' language: TypeScript archived: false - stars: 60 + stars: 61 watchers: 3 forks: 11 owner: stoplightio logo: https://avatars.githubusercontent.com/u/10767217?v=4 - repoEtag: '"dd3135e56d4f5848a8c27ea08bee1efe9b66f9e64caf297723fd1c62a1960502"' - repoLastModified: Sun, 18 Aug 2024 05:08:42 GMT + repoEtag: '"73220128b32d51060a50cb4cdd26e8688542f4d3d59427603cf883a704a6da25"' + repoLastModified: Mon, 19 Aug 2024 10:45:17 GMT category: Server Implementations foundInMaster: true - source: openapi3 tags @@ -11421,7 +11421,7 @@ Creates (immutable) PHP model classes from JSON-Schema files including all validation rules as PHP code created: '2018-04-19T15:03:37Z' - updated: '2024-07-24T12:13:23Z' + updated: '2024-08-19T10:16:21Z' language: PHP archived: false stars: 58 @@ -11430,8 +11430,8 @@ owner: wol-soft logo: https://avatars.githubusercontent.com/u/14750468?v=4 license: MIT - repoEtag: '"d087018adabb8890774dde6440b8dd58d8c189d88ce65331e820548a1c6752a5"' - repoLastModified: Wed, 24 Jul 2024 12:13:23 GMT + repoEtag: '"e30a3c62108e2bc04046154f0ec2f543c8f37472fc9374cfb6c61ae498067cbf"' + repoLastModified: Mon, 19 Aug 2024 10:16:21 GMT foundInMaster: true id: 66096cd4d636503d8f7fc479dbf415f6 - source: openapi3 tags @@ -11476,10 +11476,10 @@ archived: false stars: 56 watchers: 5 - forks: 91 + forks: 90 owner: eazybytes logo: https://avatars.githubusercontent.com/u/79041235?v=4 - repoEtag: '"5e5ae83ef529adc05a506a495c79656956a22939cc6e0d4eb5edfe7c369efe90"' + repoEtag: '"d15cd2045823108bf1bfd93fcd7f3d14bdd364de80880942b0cd269a976634d1"' repoLastModified: Thu, 01 Aug 2024 14:35:13 GMT category: Parsers foundInMaster: true @@ -12067,17 +12067,17 @@ OpenAPI validation extension for libopenapi, validate http requests and responses as well as schemas created: '2023-03-31T11:28:11Z' - updated: '2024-07-31T21:03:45Z' + updated: '2024-08-19T11:27:25Z' language: Go archived: false - stars: 42 + stars: 43 watchers: 5 - forks: 14 + forks: 15 owner: pb33f logo: https://avatars.githubusercontent.com/u/104016643?v=4 license: NOASSERTION - repoEtag: '"6739b6ca9b11161ba2ef9de74694fa673004455dc0018c133b65d6579e1131cc"' - repoLastModified: Wed, 31 Jul 2024 21:03:45 GMT + repoEtag: '"79a1b6e1978c6b6c2c21736aa46780f676231d71883a94d8237ebf63641a5515"' + repoLastModified: Mon, 19 Aug 2024 11:27:25 GMT category: Parsers foundInMaster: true v3_1: true @@ -12101,7 +12101,7 @@ owner: atlassian logo: https://avatars.githubusercontent.com/u/168166?v=4 license: NOASSERTION - repoEtag: '"332197f310375c84de9e5a1ab3620a011483f7c7b92714d37211deb430689d06"' + repoEtag: '"033795f7f79aeec17ee49f9c65c3d155093f4ce07cc390ac1f6653b9573d978f"' repoLastModified: Mon, 12 Aug 2024 12:00:19 GMT foundInMaster: true id: 70270b46839e1466d6a425a8da6ded65 @@ -12152,7 +12152,7 @@ owner: Backbase logo: https://avatars.githubusercontent.com/u/1914334?v=4 license: NOASSERTION - repoEtag: '"33c4dc86d31f16a76ee9784dac1972360e3e64fb845086336a93939b1ef82124"' + repoEtag: '"c5117906d3189ce62add8a0cb276e647afc546124f98be57bfd6551ca978b20b"' repoLastModified: Tue, 13 Aug 2024 10:18:16 GMT foundInMaster: true category: SDK @@ -12531,7 +12531,7 @@ repositoryId: 196863956 description: an OpenAPI 3.0 & 3.1 interface & model java code generator for Spring Boot created: '2019-07-14T17:16:49Z' - updated: '2024-08-17T11:31:42Z' + updated: '2024-08-19T23:45:30Z' language: Kotlin archived: false stars: 35 @@ -12540,8 +12540,8 @@ owner: openapi-processor logo: https://avatars.githubusercontent.com/u/66728774?v=4 license: Apache-2.0 - repoEtag: '"aff9cfc2fd5e4bfe0d301d72a9de79172bd1eac8b74078b65cb93d89ce3c43c6"' - repoLastModified: Sat, 17 Aug 2024 11:31:42 GMT + repoEtag: '"d932464f5309253a6703b86503c790e625622f52ca37fad16ec21ef7368e75df"' + repoLastModified: Mon, 19 Aug 2024 23:45:30 GMT foundInMaster: true id: 544de493e48dbce482dd3fcfc87ad568 v3_1: true @@ -12742,7 +12742,7 @@ open-source solution for your open and private data needs. French only for the time being, internationalization coming soon. created: '2017-11-24T22:19:00Z' - updated: '2024-08-13T13:24:11Z' + updated: '2024-08-19T09:09:20Z' language: JavaScript archived: false stars: 33 @@ -12751,8 +12751,8 @@ owner: data-fair logo: https://avatars.githubusercontent.com/u/83776320?v=4 license: AGPL-3.0 - repoEtag: '"0baaee361d9240ec34ad93840c3e0b19c3b01632a02fa2efbb66742e014098dc"' - repoLastModified: Tue, 13 Aug 2024 13:24:11 GMT + repoEtag: '"b28d05b8c2e6ec6d2c38ef3aab4073023460635bebed60d5eac23b509fdf0547"' + repoLastModified: Mon, 19 Aug 2024 09:09:20 GMT foundInMaster: true category: - Documentation @@ -13064,11 +13064,11 @@ archived: false stars: 27 watchers: 4 - forks: 3 + forks: 4 owner: MaximilianKoestler logo: https://avatars.githubusercontent.com/u/6814304?v=4 license: MIT - repoEtag: '"313113a7fe1568353e5e3e7fa032928c39cdc58cc7f027a9d34026d0771d1fb4"' + repoEtag: '"84446250556ac951e022b1f4d6917dc7ff5c864e73330f923086ec33cc2b51ab"' repoLastModified: Fri, 09 Aug 2024 10:57:36 GMT foundInMaster: true category: Testing @@ -14005,7 +14005,7 @@ repositoryId: 315667251 description: Open API v3 server code generator created: '2020-11-24T15:03:56Z' - updated: '2024-08-14T13:26:57Z' + updated: '2024-08-19T13:57:59Z' language: Go archived: false stars: 20 @@ -14014,8 +14014,8 @@ owner: mikekonan logo: https://avatars.githubusercontent.com/u/36304777?v=4 license: MIT - repoEtag: '"91cd2eba839eb8dd007b731db9ee26cfbd9092baca84405767c65f66850773d8"' - repoLastModified: Wed, 14 Aug 2024 13:26:57 GMT + repoEtag: '"4f65d0d259adee3e5402e6b83a630cb401ddc28c49249b58071f268d75675913"' + repoLastModified: Mon, 19 Aug 2024 13:57:59 GMT foundInMaster: true category: Parsers id: 15bb9572a91297aa6595fb0450194d91 @@ -14030,7 +14030,7 @@ repositoryId: 98350934 description: Mockoon application official website repository and documentation created: '2017-07-25T21:19:22Z' - updated: '2024-08-14T16:12:13Z' + updated: '2024-08-19T12:52:21Z' language: TypeScript archived: false stars: 20 @@ -14039,8 +14039,8 @@ owner: mockoon logo: https://avatars.githubusercontent.com/u/49429147?v=4 license: NOASSERTION - repoEtag: '"572fccd3bc1c45ace7ddcf36a14ccb1f945025b692d27d6430b3bbeb0adac2f5"' - repoLastModified: Wed, 14 Aug 2024 16:12:13 GMT + repoEtag: '"024fe40925f9690626eca1c332c23f5651489caaf922b27801c064ee61489c53"' + repoLastModified: Mon, 19 Aug 2024 12:52:21 GMT foundInMaster: true category: Testing id: 84d3391fa9deedcd6398666ba504eb78 @@ -14376,17 +14376,17 @@ repositoryId: 720201668 description: Scalar API reference from Swagger/OpenAPI files for .NET🔥 created: '2023-11-17T20:04:30Z' - updated: '2024-08-15T23:05:38Z' + updated: '2024-08-19T12:09:55Z' language: C# archived: false - stars: 18 + stars: 19 watchers: 1 forks: 1 owner: benirave logo: https://avatars.githubusercontent.com/u/23312114?v=4 license: MIT - repoEtag: '"eb38f2193ae2762ec9bd79809d1bd7908adbdf694ae4e091387ed7d246b74b51"' - repoLastModified: Thu, 15 Aug 2024 23:05:38 GMT + repoEtag: '"de71ec57e7049f852d7b25a2323160c2b3003550933ffa4dd7cb71eefa93249c"' + repoLastModified: Mon, 19 Aug 2024 12:09:55 GMT category: Parsers foundInMaster: true - source: openapi3 tags @@ -14776,7 +14776,7 @@ forks: 2 owner: curvednebula logo: https://avatars.githubusercontent.com/u/1443238?v=4 - repoEtag: '"8bd74dc7c8f557ad6fba435cb5c080ddc0baffd290f2b8cea36bc986cee56f58"' + repoEtag: '"53779f54b7ed5c6d3e6056a91bab63c9178726ae51b62722d3e71c5959b45fa0"' repoLastModified: Thu, 08 Aug 2024 07:08:04 GMT category: Parsers foundInMaster: true @@ -15621,7 +15621,7 @@ Delightful API development: Focused on developer experience and performance. created: '2021-12-16T16:23:45Z' - updated: '2024-08-18T13:02:21Z' + updated: '2024-08-19T08:53:40Z' language: TypeScript archived: false stars: 12 @@ -15630,8 +15630,8 @@ owner: Jnig logo: https://avatars.githubusercontent.com/u/3729585?v=4 license: MIT - repoEtag: '"209b0c0f2820e699b228eb6c269e5a9a3176c96e97f5b9af3d7a867a7fe1cf4e"' - repoLastModified: Sun, 18 Aug 2024 13:02:21 GMT + repoEtag: '"f2618d588a08b0bcc676310f4f7a0455e059ce974041d3d696d8778f064e082a"' + repoLastModified: Mon, 19 Aug 2024 08:53:40 GMT category: - Data Validators - Parsers @@ -17183,7 +17183,7 @@ repositoryId: 740729887 description: The easiest way to share OpenAPI files created: '2024-01-09T00:11:59Z' - updated: '2024-08-16T15:14:49Z' + updated: '2024-08-19T15:18:15Z' language: Vue archived: false stars: 8 @@ -17191,8 +17191,8 @@ forks: 3 owner: scalar logo: https://avatars.githubusercontent.com/u/301879?v=4 - repoEtag: '"cb30d78fe8d6ee24b3d1a75bab1cfb993c2d7c57272d8aea1534979bf33eb434"' - repoLastModified: Fri, 16 Aug 2024 15:14:49 GMT + repoEtag: '"8c336d133c91bc8ca1100448b16c3a3d78a1862e22e69c11702f7f45444faa9a"' + repoLastModified: Mon, 19 Aug 2024 15:18:15 GMT category: Server Implementations foundInMaster: true - source: openapi3 tags @@ -17321,10 +17321,10 @@ archived: false stars: 8 watchers: 2 - forks: 1 + forks: 2 owner: ldej logo: https://avatars.githubusercontent.com/u/18293312?v=4 - repoEtag: '"3b1badfd2bb05f993e7737057e8aabab42ef08002f1be552bc3916cc8258684d"' + repoEtag: '"1b950dbc9b5c540de2b5ade7e9fd1fba1ce65e5a7f9ea127e4c2641266abf8e9"' repoLastModified: Mon, 22 Jul 2024 23:10:36 GMT category: Parsers foundInMaster: true @@ -17429,10 +17429,10 @@ archived: false stars: 7 watchers: 2 - forks: 4 + forks: 5 owner: birddevelper logo: https://avatars.githubusercontent.com/u/20352967?v=4 - repoEtag: '"2795718237cef1ebbb5381e3402e0f2904b799b05d5f3adb6b6c7ab61d677b14"' + repoEtag: '"5e26b9dbec9d76a2f0f59a4f675839a5ebb898c08974599cff8cf00d0149711d"' repoLastModified: Fri, 22 Sep 2023 03:37:18 GMT foundInMaster: true category: Server Implementations @@ -17736,17 +17736,17 @@ repositoryId: 555555610 description: Minimal API + OpenAPI Sample created: '2022-10-21T20:24:18Z' - updated: '2024-07-31T06:33:10Z' + updated: '2024-08-19T08:48:38Z' language: C# archived: false - stars: 7 + stars: 8 watchers: 1 forks: 1 owner: laura-rodriguez logo: https://avatars.githubusercontent.com/u/16751130?v=4 license: GPL-3.0 - repoEtag: '"c730b529f892de41d545dd74b1fb791383f6585e806bed8ef65bafbf621015db"' - repoLastModified: Wed, 31 Jul 2024 06:33:10 GMT + repoEtag: '"72539dec18cd258339f26904a54f9baffe3252b4b584335ed5e3ad93f608c8ef"' + repoLastModified: Mon, 19 Aug 2024 08:48:38 GMT category: SDK foundInMaster: true - source: openapi3 tags @@ -17876,7 +17876,7 @@ owner: meabed logo: https://avatars.githubusercontent.com/u/45731?v=4 license: MIT - repoEtag: '"a6696aaacb6e4d435d127f5fd062f16fb7cda768ef0480599bf4160eeb47ef34"' + repoEtag: '"a61c5f9aad7c4c5ff2ff2fc4addfb49baced3e228b6ff03fae26fface8059e33"' repoLastModified: Fri, 12 Jan 2024 18:23:08 GMT foundInMaster: true category: @@ -19088,17 +19088,17 @@ OpenAPI 3 contract and save a lot of time and effort, especially for larger projects with many endpoints or many services. created: '2023-03-08T23:18:03Z' - updated: '2024-08-17T11:10:23Z' + updated: '2024-08-19T23:32:36Z' language: Go archived: false - stars: 5 + stars: 6 watchers: 2 forks: 2 owner: cerberauth logo: https://avatars.githubusercontent.com/u/127022998?v=4 license: MIT - repoEtag: '"b27d0a211510ce824277b8238775fac400392083d6089474e9a2e52b436b5bc9"' - repoLastModified: Sat, 17 Aug 2024 11:10:23 GMT + repoEtag: '"67d0fb862cb40f117bee14bf38a3041245631c9b0b9bc0ae34962319f78dbc4e"' + repoLastModified: Mon, 19 Aug 2024 23:32:36 GMT category: Parsers foundInMaster: true - source: openapi3 tags @@ -20787,7 +20787,7 @@ repositoryId: 380081816 description: A public mirror of U21's API documentation, with a Postman collection created: '2021-06-25T00:25:04Z' - updated: '2024-08-15T17:14:49Z' + updated: '2024-08-19T13:01:30Z' language: HTML archived: false stars: 3 @@ -20795,8 +20795,8 @@ forks: 9 owner: u21 logo: https://avatars.githubusercontent.com/u/40812212?v=4 - repoEtag: '"d92eb7a1741b46e628d115ea9be01cc6c2f4f449b6f2df12142af8286dd09b05"' - repoLastModified: Thu, 15 Aug 2024 17:14:49 GMT + repoEtag: '"610aa0a1ed756be4f16637f7c75b46556b72d4dec0f735134d4b5027dd46a211"' + repoLastModified: Mon, 19 Aug 2024 13:01:30 GMT foundInMaster: true category: Testing id: 7f6cec13dc45de3e3f0a64d53f0c22d4 @@ -21033,7 +21033,7 @@ owner: tsingsun logo: https://avatars.githubusercontent.com/u/5848549?v=4 license: Apache-2.0 - repoEtag: '"74912bc1e1d0c9e66db8586f28c46839df58d51612d8bb02b20758c6733a163e"' + repoEtag: '"3861e28a13b50d63d549fbd415a5f1fb344a6250601be8831ea6aa4def7d2036"' repoLastModified: Tue, 13 Aug 2024 08:15:28 GMT category: Server Implementations foundInMaster: true @@ -22630,7 +22630,7 @@ Clone of ePages-de/restdocs-api-spec with class field type and constraint inference. created: '2022-02-22T03:33:26Z' - updated: '2024-08-13T01:37:01Z' + updated: '2024-08-20T02:13:19Z' language: Kotlin archived: false stars: 2 @@ -22639,8 +22639,8 @@ owner: keecon logo: https://avatars.githubusercontent.com/u/19371343?v=4 license: MIT - repoEtag: '"b2aa2872154c5944709edcf524dc6a0f3f7f1472a49ea70d6a0728140049b83e"' - repoLastModified: Tue, 13 Aug 2024 01:37:01 GMT + repoEtag: '"5dc66c714741b1c8f7275b5e04259b3e841c39c13e98f9f182c0205053ab5413"' + repoLastModified: Tue, 20 Aug 2024 02:13:19 GMT foundInMaster: true category: Server id: 07a8059ee6961dc1e46442f5582d1501 @@ -22821,7 +22821,7 @@ owner: smallstep logo: https://avatars.githubusercontent.com/u/23183426?v=4 license: Apache-2.0 - repoEtag: '"6c35e0da4bb429ffe04fd742422512d102d3604af689bf87489cc9a020026b5e"' + repoEtag: '"95813495747a47be1ce764c73f0e46bfe8576db881cb38a6fd5c42c51d2ddd42"' repoLastModified: Wed, 14 Aug 2024 18:10:32 GMT category: Server Implementations foundInMaster: true @@ -23953,7 +23953,7 @@ owner: hiroyoshii logo: https://avatars.githubusercontent.com/u/40140638?v=4 license: Apache-2.0 - repoEtag: '"4e86f794fd56ecc81f79c9f949ff5c5ea51ae28777f3ea59b719e8f5eef85f53"' + repoEtag: '"1e850acfbd73538b336ad499e40c1a70d190752af8a72c8ee6eae5e4b50e139c"' repoLastModified: Tue, 30 Jul 2024 21:02:46 GMT category: Server Implementations foundInMaster: true @@ -24056,7 +24056,7 @@ owner: tada5hi logo: https://avatars.githubusercontent.com/u/13162758?v=4 license: MIT - repoEtag: '"39c1ee6dbc53773983244e426d797874cfa1da3ecd8ac01786f361d7f9e0e29c"' + repoEtag: '"21312758c3c2463bb387ec8a97097f0b0bdda7c16c2b773e25d3e645af4694fe"' repoLastModified: Mon, 24 Jun 2024 09:22:04 GMT category: Parsers foundInMaster: true @@ -24687,7 +24687,7 @@ owner: protung logo: https://avatars.githubusercontent.com/u/81255167?v=4 license: MIT - repoEtag: '"b74986c3c17fa25be7c730d6f6958aef509aaaca9364b834c43a5fd8853c9975"' + repoEtag: '"f90182828f1d8bab4a01c99a05cc39ce017e42667d45da4ad0cfaa2ab5df9886"' repoLastModified: Sat, 10 Aug 2024 05:38:04 GMT category: - Server @@ -25254,7 +25254,7 @@ Python-Client Python-Server OpenAPI generator in Rust, Web Integration Specification / Trust created: '2024-07-26T20:36:55Z' - updated: '2024-08-17T21:21:00Z' + updated: '2024-08-19T17:57:10Z' language: Rust archived: false stars: 1 @@ -25263,8 +25263,8 @@ owner: wkarwacki logo: https://avatars.githubusercontent.com/u/79852127?v=4 license: Apache-2.0 - repoEtag: '"753b660b38832bcd0e76ac4d97ce6a51b5d49e12b7283680d1b0e56d98477ded"' - repoLastModified: Sat, 17 Aug 2024 21:21:00 GMT + repoEtag: '"246dddeed5aafb96719cbdf54f2cc93fac642a827b87038e610b125182a36391"' + repoLastModified: Mon, 19 Aug 2024 17:57:10 GMT category: Parsers foundInMaster: true - source: openapi3 tags @@ -25599,7 +25599,7 @@ repositoryId: 819191357 description: Go's API server can generate open API documents Go的API服务器可以生成开放的API文档 created: '2024-06-24T02:43:37Z' - updated: '2024-08-16T09:47:28Z' + updated: '2024-08-19T08:46:50Z' language: Go archived: false stars: 1 @@ -25608,8 +25608,8 @@ owner: goodluckxu-go logo: https://avatars.githubusercontent.com/u/110141236?v=4 license: MIT - repoEtag: '"e4456708e17a9d8b45e2a7b7f37d6ff69f7009f4b1bf4008cb27b9241af572a0"' - repoLastModified: Fri, 16 Aug 2024 09:47:28 GMT + repoEtag: '"a112aae134bbef46347dbdb3a3e8d2287e27638df84b8e7933d5fd4c2decd8b3"' + repoLastModified: Mon, 19 Aug 2024 08:46:50 GMT category: Parsers foundInMaster: true v3_1: true @@ -28067,7 +28067,7 @@ owner: gcatanese logo: https://avatars.githubusercontent.com/u/1771700?v=4 license: Apache-2.0 - repoEtag: '"ba1bef1b36991e7fbf734b3b00e04ae21e58c464ca0087aa33d3d66ce2c5b864"' + repoEtag: '"10664d62289d4186c583b1f9312901b15f135d7b86c66ecfb25bcbd0c512ff70"' repoLastModified: Sat, 06 Jul 2024 15:07:54 GMT category: Server Implementations foundInMaster: true @@ -28134,7 +28134,7 @@ repositoryId: 545944120 description: WIP a simple nvim/neovim plugin to preview oas/openapi3 or swagger spec. created: '2022-10-05T08:46:31Z' - updated: '2024-08-07T22:24:29Z' + updated: '2024-08-19T23:45:26Z' language: Lua archived: false stars: 1 @@ -28143,8 +28143,8 @@ owner: rusagaib logo: https://avatars.githubusercontent.com/u/33116863?v=4 license: MIT - repoEtag: '"6c3e7e43efade5680dc49b4b21cefa78b7609af820b59321f9f66cf359948741"' - repoLastModified: Wed, 07 Aug 2024 22:24:29 GMT + repoEtag: '"7548ed299bd1bd8aa3dc5764b68671f27427f56205b12745e9441cc76d60869f"' + repoLastModified: Mon, 19 Aug 2024 23:45:26 GMT category: Parsers foundInMaster: true - source: openapi3 tags @@ -29268,7 +29268,7 @@ owner: API-Flows logo: https://avatars.githubusercontent.com/u/153562650?v=4 license: Apache-2.0 - repoEtag: '"707554fe16e2c007c7ff704fcf901a784ba4ed1d652ee899db58cca72eeed831"' + repoEtag: '"f1f3a527335a14fccd1981ef1d35ec3ab176fb6bf7ec2f112b99496f40cc4193"' repoLastModified: Sat, 06 Jul 2024 15:10:22 GMT category: Server Implementations foundInMaster: true @@ -29363,7 +29363,7 @@ repositoryId: 651020076 description: The API Spec Transformer Library created: '2023-06-08T10:09:10Z' - updated: '2024-08-12T10:21:49Z' + updated: '2024-08-19T11:51:41Z' language: TypeScript archived: false stars: 1 @@ -29372,8 +29372,8 @@ owner: ExpediaGroup logo: https://avatars.githubusercontent.com/u/38541875?v=4 license: Apache-2.0 - repoEtag: '"6dc779dc09c7e52293abceba74271ebe32e12ce8962ed63bd1ac68b2874918de"' - repoLastModified: Mon, 12 Aug 2024 10:21:49 GMT + repoEtag: '"578a485f4f89b4650b26a2e3eda40eecd9162c1e3d1804060439008e8812aedd"' + repoLastModified: Mon, 19 Aug 2024 11:51:41 GMT category: Parsers foundInMaster: true - source: openapi3 tags @@ -31861,17 +31861,17 @@ Simple, Fast, Code first and Compile time generated OpenAPI documentation for Rust created: '2021-09-30T22:00:31Z' - updated: '2024-08-19T02:10:17Z' + updated: '2024-08-19T18:10:57Z' language: Rust archived: false - stars: 2095 + stars: 2097 watchers: 8 forks: 164 owner: juhaku logo: https://avatars.githubusercontent.com/u/26358664?v=4 license: Apache-2.0 - repoEtag: '"f08a69fab877029d6d1442f84e562557760b0730483a9212b6964caf4f91ae03"' - repoLastModified: Mon, 19 Aug 2024 02:10:17 GMT + repoEtag: '"1c38bd1663914d0f7cb70dabb8be7945bed4c76e1ddd76bfd8b81f69109ca5e3"' + repoLastModified: Mon, 19 Aug 2024 18:10:57 GMT foundInMaster: true category: Parsers id: 14269a89115b3be71493769fca4d995e @@ -31917,7 +31917,7 @@ Rails engine for generate automatic interactive documentation in your rails APIs. created: '2024-07-21T16:44:36Z' - updated: '2024-08-16T10:10:42Z' + updated: '2024-08-19T14:39:32Z' language: Ruby archived: false stars: 40 @@ -31926,8 +31926,8 @@ owner: a-chacon logo: https://avatars.githubusercontent.com/u/39093711?v=4 license: GPL-3.0 - repoEtag: '"13ee7b5befa9043319cba21e7dc9e9e0a62b087cfa92a25fabdd04a31ab01c60"' - repoLastModified: Fri, 16 Aug 2024 10:10:42 GMT + repoEtag: '"e4b1a762653305be88c5071a5eac35e3819b93c5e475383c635b518d357eec0f"' + repoLastModified: Mon, 19 Aug 2024 14:39:32 GMT category: Parsers foundInMaster: true - source: openapi31 tags @@ -32235,26 +32235,26 @@ id: 72b4e3cc7ddcef07aadfe99a81245653 repositoryMetadata: base64Readme: >- - WyFbbnBtIHZlcnNpb25dKGh0dHBzOi8vYmFkZ2UuZnVyeS5pby9qcy9vcnZhbC5zdmcpXShodHRwczovL2JhZGdlLmZ1cnkuaW8vanMvb3J2YWwpCiFbTlBNIERvd25sb2Fkc10oaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9ucG0vZG0vb3J2YWw/Y29sb3I9cHVycGxlKQpbIVtMaWNlbnNlOiBNSVRdKGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vYmFkZ2UvTGljZW5zZS1NSVQteWVsbG93LnN2ZyldKGh0dHBzOi8vb3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvTUlUKQpbIVt0ZXN0c10oaHR0cHM6Ly9naXRodWIuY29tL29ydmFsLWxhYnMvb3J2YWwvYWN0aW9ucy93b3JrZmxvd3MvdGVzdHMueWFtbC9iYWRnZS5zdmcpXShodHRwczovL2dpdGh1Yi5jb20vb3J2YWwtbGFicy9vcnZhbC9hY3Rpb25zL3dvcmtmbG93cy90ZXN0cy55YW1sKQpbIVtvcnZhbF0oaHR0cHM6Ly9zbnlrLmlvL2Fkdmlzb3IvbnBtLXBhY2thZ2Uvb3J2YWwvYmFkZ2Uuc3ZnKV0oaHR0cHM6Ly9zbnlrLmlvL2Fkdmlzb3IvbnBtLXBhY2thZ2Uvb3J2YWwpCgo8cCBhbGlnbj0iY2VudGVyIj4KICA8aW1nIHNyYz0iLi9sb2dvL29ydmFsLWxvZ28taG9yaXpvbnRhbC5zdmc/cmF3PXRydWUiIHdpZHRoPSI1MDAiIGhlaWdodD0iMTYwIiBhbHQ9Im9ydmFsIC0gUmVzdGZ1bGwgQ2xpZW50IEdlbmVyYXRvciIgLz4KPC9wPgo8aDEgYWxpZ249ImNlbnRlciI+CiAgVmlzaXQgPGEgaHJlZj0iaHR0cHM6Ly9vcnZhbC5kZXYiIHRhcmdldD0iX2JsYW5rIj5vcnZhbC5kZXY8L2E+IGZvciBkb2NzLCBndWlkZXMsIEFQSSBhbmQgYmVlciEKPC9oMT4KCuKaoO+4jyBBY3RpdmVseSBzZWFyY2hpbmcgZm9yIGNvbnRyaWJ1dG9ycywgaWYgeW91IHdhbnQgdG8gaGVscCwgcGxlYXNlIGNvbnRhY3QgbWUgb24gW2Rpc2NvcmRdKGh0dHBzOi8vZGlzY29yZC5nZy82ZkMyc2pEVTd3KSDimqDvuI8KCiMjIyBDb2RlIEdlbmVyYXRpb24KCmBvcnZhbGAgaXMgYWJsZSB0byBnZW5lcmF0ZSBjbGllbnQgd2l0aCBhcHByb3ByaWF0ZSB0eXBlLXNpZ25hdHVyZXMgKFR5cGVTY3JpcHQpIGZyb20gYW55IHZhbGlkIE9wZW5BUEkgdjMgb3IgU3dhZ2dlciB2MiBzcGVjaWZpY2F0aW9uLCBlaXRoZXIgaW4gYHlhbWxgIG9yIGBqc29uYCBmb3JtYXRzLgoKYEdlbmVyYXRlYCwgYHZhbGlkYCwgYGNhY2hlYCBhbmQgYG1vY2tgIGluIHlvdXIgUmVhY3QsIFZ1ZSwgU3ZlbHRlIGFuZCBBbmd1bGFyIGFwcGxpY2F0aW9ucyBhbGwgd2l0aCB5b3VyIE9wZW5BUEkgc3BlY2lmaWNhdGlvbi4KCiMjIyBTYW1wbGVzCgpZb3UgY2FuIGZpbmQgYmVsb3cgc29tZSBzYW1wbGVzOgoKLSBbcmVhY3QgYXBwXShodHRwczovL2dpdGh1Yi5jb20vb3J2YWwtbGFicy9vcnZhbC90cmVlL21hc3Rlci9zYW1wbGVzL3JlYWN0LWFwcCkKLSBbcmVhY3QgcXVlcnldKGh0dHBzOi8vZ2l0aHViLmNvbS9vcnZhbC1sYWJzL29ydmFsL3RyZWUvbWFzdGVyL3NhbXBsZXMvcmVhY3QtcXVlcnkpCi0gW3N2ZWx0ZSBxdWVyeV0oaHR0cHM6Ly9naXRodWIuY29tL29ydmFsLWxhYnMvb3J2YWwvdHJlZS9tYXN0ZXIvc2FtcGxlcy9zdmVsdGUtcXVlcnkpCi0gW3Z1ZSBxdWVyeV0oaHR0cHM6Ly9naXRodWIuY29tL29ydmFsLWxhYnMvb3J2YWwvdHJlZS9tYXN0ZXIvc2FtcGxlcy92dWUtcXVlcnkpCi0gW3JlYWN0IGFwcCB3aXRoIHN3cl0oaHR0cHM6Ly9naXRodWIuY29tL29ydmFsLWxhYnMvb3J2YWwvdHJlZS9tYXN0ZXIvc2FtcGxlcy9yZWFjdC1hcHAtd2l0aC1zd3IpCi0gW2FuZ3VsYXIgYXBwXShodHRwczovL2dpdGh1Yi5jb20vb3J2YWwtbGFicy9vcnZhbC90cmVlL21hc3Rlci9zYW1wbGVzL2FuZ3VsYXItYXBwKQotIFtob25vXShodHRwczovL2dpdGh1Yi5jb20vb3J2YWwtbGFicy9vcnZhbC90cmVlL21hc3Rlci9zYW1wbGVzL2hvbm8pCi0gW25leHQgYXBwIHdpdGggZmV0Y2hdKGh0dHBzOi8vZ2l0aHViLmNvbS9vcnZhbC1sYWJzL29ydmFsL3RyZWUvbWFzdGVyL3NhbXBsZXMvbmV4dC1hcHAtd2l0aC1mZXRjaCkKCiMjIyBQbGF5Z3JvdW5kCgpUcnkgT3J2YWwgb3V0IGZvciB5b3Vyc2VsZiB1c2luZyBvdXIgW1BsYXlnb3VuZF0oaHR0cHM6Ly9vcnZhbC5kZXYvcGxheWdyb3VuZCkgYXBwbGljYXRpb24hCgojIyBTdGFyIEhpc3RvcnkKCjxhIGhyZWY9Imh0dHBzOi8vc3Rhci1oaXN0b3J5LmNvbS8jb3J2YWwtbGFicy9vcnZhbCZEYXRlIj4KICA8cGljdHVyZT4KICAgIDxzb3VyY2UgbWVkaWE9IihwcmVmZXJzLWNvbG9yLXNjaGVtZTogZGFyaykiIHNyY3NldD0iaHR0cHM6Ly9hcGkuc3Rhci1oaXN0b3J5LmNvbS9zdmc/cmVwb3M9b3J2YWwtbGFicy9vcnZhbCZ0eXBlPURhdGUmdGhlbWU9ZGFyayIgLz4KICAgIDxzb3VyY2UgbWVkaWE9IihwcmVmZXJzLWNvbG9yLXNjaGVtZTogbGlnaHQpIiBzcmNzZXQ9Imh0dHBzOi8vYXBpLnN0YXItaGlzdG9yeS5jb20vc3ZnP3JlcG9zPW9ydmFsLWxhYnMvb3J2YWwmdHlwZT1EYXRlIiAvPgogICAgPGltZyBhbHQ9IlN0YXIgSGlzdG9yeSBDaGFydCIgc3JjPSJodHRwczovL2FwaS5zdGFyLWhpc3RvcnkuY29tL3N2Zz9yZXBvcz1vcnZhbC1sYWJzL29ydmFsJnR5cGU9RGF0ZSIgLz4KICA8L3BpY3R1cmU+CjwvYT4KCiMjIyBBbGwgVGhhbmtzIFRvIE91ciBDb250cmlidXRvcnM6Cgo8YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vb3J2YWwtbGFicy9vcnZhbC9ncmFwaHMvY29udHJpYnV0b3JzIj4KICA8aW1nIHNyYz0iaHR0cHM6Ly9jb250cmliLnJvY2tzL2ltYWdlP3JlcG89YW55bWFuaWF4L29ydmFsIiAvPgo8L2E+Cg== - readmeEtag: '"39fe22d128e07dbcd261f8b369626d8cb90c77e7"' - readmeLastModified: Wed, 14 Aug 2024 13:35:14 GMT + WyFbbnBtIHZlcnNpb25dKGh0dHBzOi8vYmFkZ2UuZnVyeS5pby9qcy9vcnZhbC5zdmcpXShodHRwczovL2JhZGdlLmZ1cnkuaW8vanMvb3J2YWwpCiFbTlBNIERvd25sb2Fkc10oaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9ucG0vZG0vb3J2YWw/Y29sb3I9cHVycGxlKQpbIVtMaWNlbnNlOiBNSVRdKGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vYmFkZ2UvTGljZW5zZS1NSVQteWVsbG93LnN2ZyldKGh0dHBzOi8vb3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvTUlUKQpbIVt0ZXN0c10oaHR0cHM6Ly9naXRodWIuY29tL29ydmFsLWxhYnMvb3J2YWwvYWN0aW9ucy93b3JrZmxvd3MvdGVzdHMueWFtbC9iYWRnZS5zdmcpXShodHRwczovL2dpdGh1Yi5jb20vb3J2YWwtbGFicy9vcnZhbC9hY3Rpb25zL3dvcmtmbG93cy90ZXN0cy55YW1sKQpbIVtvcnZhbF0oaHR0cHM6Ly9zbnlrLmlvL2Fkdmlzb3IvbnBtLXBhY2thZ2Uvb3J2YWwvYmFkZ2Uuc3ZnKV0oaHR0cHM6Ly9zbnlrLmlvL2Fkdmlzb3IvbnBtLXBhY2thZ2Uvb3J2YWwpCgo8cCBhbGlnbj0iY2VudGVyIj4KICA8aW1nIHNyYz0iLi9sb2dvL29ydmFsLWxvZ28taG9yaXpvbnRhbC5zdmc/cmF3PXRydWUiIHdpZHRoPSI1MDAiIGhlaWdodD0iMTYwIiBhbHQ9Im9ydmFsIC0gUmVzdGZ1bGwgQ2xpZW50IEdlbmVyYXRvciIgLz4KPC9wPgo8aDEgYWxpZ249ImNlbnRlciI+CiAgVmlzaXQgPGEgaHJlZj0iaHR0cHM6Ly9vcnZhbC5kZXYiIHRhcmdldD0iX2JsYW5rIj5vcnZhbC5kZXY8L2E+IGZvciBkb2NzLCBndWlkZXMsIEFQSSBhbmQgYmVlciEKPC9oMT4KCuKaoO+4jyBBY3RpdmVseSBzZWFyY2hpbmcgZm9yIGNvbnRyaWJ1dG9ycywgaWYgeW91IHdhbnQgdG8gaGVscCwgcGxlYXNlIGNvbnRhY3QgbWUgb24gW2Rpc2NvcmRdKGh0dHBzOi8vZGlzY29yZC5nZy82ZkMyc2pEVTd3KSDimqDvuI8KCiMjIyBDb2RlIEdlbmVyYXRpb24KCmBvcnZhbGAgaXMgYWJsZSB0byBnZW5lcmF0ZSBjbGllbnQgd2l0aCBhcHByb3ByaWF0ZSB0eXBlLXNpZ25hdHVyZXMgKFR5cGVTY3JpcHQpIGZyb20gYW55IHZhbGlkIE9wZW5BUEkgdjMgb3IgU3dhZ2dlciB2MiBzcGVjaWZpY2F0aW9uLCBlaXRoZXIgaW4gYHlhbWxgIG9yIGBqc29uYCBmb3JtYXRzLgoKYEdlbmVyYXRlYCwgYHZhbGlkYCwgYGNhY2hlYCBhbmQgYG1vY2tgIGluIHlvdXIgUmVhY3QsIFZ1ZSwgU3ZlbHRlIGFuZCBBbmd1bGFyIGFwcGxpY2F0aW9ucyBhbGwgd2l0aCB5b3VyIE9wZW5BUEkgc3BlY2lmaWNhdGlvbi4KCiMjIyBTYW1wbGVzCgpZb3UgY2FuIGZpbmQgYmVsb3cgc29tZSBzYW1wbGVzOgoKLSBbcmVhY3QgYXBwXShodHRwczovL2dpdGh1Yi5jb20vb3J2YWwtbGFicy9vcnZhbC90cmVlL21hc3Rlci9zYW1wbGVzL3JlYWN0LWFwcCkKLSBbcmVhY3QgcXVlcnldKGh0dHBzOi8vZ2l0aHViLmNvbS9vcnZhbC1sYWJzL29ydmFsL3RyZWUvbWFzdGVyL3NhbXBsZXMvcmVhY3QtcXVlcnkpCi0gW3N2ZWx0ZSBxdWVyeV0oaHR0cHM6Ly9naXRodWIuY29tL29ydmFsLWxhYnMvb3J2YWwvdHJlZS9tYXN0ZXIvc2FtcGxlcy9zdmVsdGUtcXVlcnkpCi0gW3Z1ZSBxdWVyeV0oaHR0cHM6Ly9naXRodWIuY29tL29ydmFsLWxhYnMvb3J2YWwvdHJlZS9tYXN0ZXIvc2FtcGxlcy92dWUtcXVlcnkpCi0gW3JlYWN0IGFwcCB3aXRoIHN3cl0oaHR0cHM6Ly9naXRodWIuY29tL29ydmFsLWxhYnMvb3J2YWwvdHJlZS9tYXN0ZXIvc2FtcGxlcy9yZWFjdC1hcHAtd2l0aC1zd3IpCi0gW2FuZ3VsYXIgYXBwXShodHRwczovL2dpdGh1Yi5jb20vb3J2YWwtbGFicy9vcnZhbC90cmVlL21hc3Rlci9zYW1wbGVzL2FuZ3VsYXItYXBwKQotIFtob25vXShodHRwczovL2dpdGh1Yi5jb20vb3J2YWwtbGFicy9vcnZhbC90cmVlL21hc3Rlci9zYW1wbGVzL2hvbm8pCi0gW25leHQgYXBwIHdpdGggZmV0Y2hdKGh0dHBzOi8vZ2l0aHViLmNvbS9vcnZhbC1sYWJzL29ydmFsL3RyZWUvbWFzdGVyL3NhbXBsZXMvbmV4dC1hcHAtd2l0aC1mZXRjaCkKCiMjIyBQbGF5Z3JvdW5kCgpUcnkgT3J2YWwgb3V0IGZvciB5b3Vyc2VsZiB1c2luZyBvdXIgW1BsYXlncm91bmRdKGh0dHBzOi8vb3J2YWwuZGV2L3BsYXlncm91bmQpIGFwcGxpY2F0aW9uIQoKIyMgU3RhciBIaXN0b3J5Cgo8YSBocmVmPSJodHRwczovL3N0YXItaGlzdG9yeS5jb20vI29ydmFsLWxhYnMvb3J2YWwmRGF0ZSI+CiAgPHBpY3R1cmU+CiAgICA8c291cmNlIG1lZGlhPSIocHJlZmVycy1jb2xvci1zY2hlbWU6IGRhcmspIiBzcmNzZXQ9Imh0dHBzOi8vYXBpLnN0YXItaGlzdG9yeS5jb20vc3ZnP3JlcG9zPW9ydmFsLWxhYnMvb3J2YWwmdHlwZT1EYXRlJnRoZW1lPWRhcmsiIC8+CiAgICA8c291cmNlIG1lZGlhPSIocHJlZmVycy1jb2xvci1zY2hlbWU6IGxpZ2h0KSIgc3Jjc2V0PSJodHRwczovL2FwaS5zdGFyLWhpc3RvcnkuY29tL3N2Zz9yZXBvcz1vcnZhbC1sYWJzL29ydmFsJnR5cGU9RGF0ZSIgLz4KICAgIDxpbWcgYWx0PSJTdGFyIEhpc3RvcnkgQ2hhcnQiIHNyYz0iaHR0cHM6Ly9hcGkuc3Rhci1oaXN0b3J5LmNvbS9zdmc/cmVwb3M9b3J2YWwtbGFicy9vcnZhbCZ0eXBlPURhdGUiIC8+CiAgPC9waWN0dXJlPgo8L2E+CgojIyMgQWxsIFRoYW5rcyBUbyBPdXIgQ29udHJpYnV0b3JzOgoKPGEgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL29ydmFsLWxhYnMvb3J2YWwvZ3JhcGhzL2NvbnRyaWJ1dG9ycyI+CiAgPGltZyBzcmM9Imh0dHBzOi8vY29udHJpYi5yb2Nrcy9pbWFnZT9yZXBvPWFueW1hbmlheC9vcnZhbCIgLz4KPC9hPgo= + readmeEtag: '"a476e741ab83c365e64f07059f738433addaca17"' + readmeLastModified: Mon, 19 Aug 2024 07:49:28 GMT repositoryId: 238402553 description: >- orval is able to generate client with appropriate type-signatures (TypeScript) from any valid OpenAPI v3 or Swagger v2 specification, either in yaml or json formats. 🍺 created: '2020-02-05T08:31:50Z' - updated: '2024-08-18T17:04:32Z' + updated: '2024-08-20T01:55:37Z' language: TypeScript archived: false - stars: 2736 + stars: 2743 watchers: 11 - forks: 307 + forks: 308 owner: orval-labs logo: https://avatars.githubusercontent.com/u/176128704?v=4 license: MIT - repoEtag: '"cc57b4eecf45919fc586e24b2a2d979aeb38e3d96f489ef9247f0d3f50a21882"' - repoLastModified: Sun, 18 Aug 2024 17:04:32 GMT + repoEtag: '"95c078038e6ccc4609a7489226cd06fc1d7c5289b35db183104c8273ee5c7aef"' + repoLastModified: Tue, 20 Aug 2024 01:55:37 GMT foundInMaster: true oldLocations: - https://github.com/anymaniax/orval @@ -32983,7 +32983,7 @@ applications. Currently targeting whitebox and blackbox testing of Web APIs, like REST, GraphQL and RPC (e.g., gRPC and Thrift). created: '2017-05-25T09:11:23Z' - updated: '2024-08-17T13:37:10Z' + updated: '2024-08-19T06:52:11Z' language: Kotlin archived: false stars: 469 @@ -32992,8 +32992,8 @@ owner: WebFuzzing logo: https://avatars.githubusercontent.com/u/29148026?v=4 license: LGPL-3.0 - repoEtag: '"cf6bd37703bce9fd8f7a61bf2b882a092dfbb9a6af450e20d3b3ed5ae6eba2bf"' - repoLastModified: Sat, 17 Aug 2024 13:37:10 GMT + repoEtag: '"421bf9a750fd15c70afabd19fe9a865f732b15fa48f28f9ee80b6b6a7724551b"' + repoLastModified: Mon, 19 Aug 2024 06:52:11 GMT foundInMaster: true id: d1d3d85149c4a9437dbdbf157cf3d7c7 oldLocations: @@ -34402,7 +34402,7 @@ forks: 29 owner: apicat logo: https://avatars.githubusercontent.com/u/64158984?v=4 - repoEtag: '"b16973b59e581683579b3da41f099341661d8cadb2fd0335fc35ad988036c9ce"' + repoEtag: '"65d0f3f98aa2795b5fb5583b130b43d5ba10ffddfeb3406cd2652596f113f867"' repoLastModified: Sun, 18 Aug 2024 02:19:38 GMT category: Server Implementations foundInMaster: true @@ -34419,17 +34419,17 @@ Full stack, modern web application template. Using FastAPI, React, SQLModel, PostgreSQL, Docker, GitHub Actions, automatic HTTPS and more. created: '2019-02-23T15:08:34Z' - updated: '2024-08-19T02:50:22Z' + updated: '2024-08-20T02:37:01Z' language: TypeScript archived: false - stars: 25454 + stars: 25483 watchers: 270 - forks: 4354 + forks: 4363 owner: fastapi logo: https://avatars.githubusercontent.com/u/156354296?v=4 license: MIT - repoEtag: '"5a057c123cafe36995f2c3e7f7e7cccf765b4c1ccd9b65e60a752df8717a53c1"' - repoLastModified: Mon, 19 Aug 2024 02:50:22 GMT + repoEtag: '"9474d5318af2c194b4bfdd17ff8ecaa51ad5966f283f797ab3bcb8f842423525"' + repoLastModified: Tue, 20 Aug 2024 02:37:01 GMT foundInMaster: true category: Server Implementations id: 0354007b562b4efc3f08ce3da7f03afb @@ -39389,17 +39389,17 @@ Examples and server integrations for generating the Swagger API Specification, which enables easy access to your REST API created: '2011-07-05T23:44:11Z' - updated: '2024-08-16T08:59:27Z' + updated: '2024-08-19T09:21:15Z' language: Java archived: false - stars: 7369 + stars: 7370 watchers: 310 forks: 2171 owner: swagger-api logo: https://avatars.githubusercontent.com/u/7658037?v=4 license: Apache-2.0 - repoEtag: '"ce39828d1f8ff4fd4612a9d01403796200ade747b238d9977d4f170514e10173"' - repoLastModified: Fri, 16 Aug 2024 08:59:27 GMT + repoEtag: '"22c870ea9969e66b2d07e789f103be141b04011643cf4f75c0c660dc0141bf11"' + repoLastModified: Mon, 19 Aug 2024 09:21:15 GMT id: 266d60df2d48ad8a47539de3c1071f3a - source: IMPLEMENTATIONS.md name: Microsoft.OpenApi.net @@ -39422,17 +39422,17 @@ in .NET along with common serializers to extract raw OpenAPI JSON and YAML documents from the model. created: '2017-07-14T00:24:14Z' - updated: '2024-08-15T20:19:47Z' + updated: '2024-08-19T21:41:28Z' language: C# archived: false - stars: 1369 + stars: 1370 watchers: 64 forks: 231 owner: microsoft logo: https://avatars.githubusercontent.com/u/6154722?v=4 license: MIT - repoEtag: '"10848543a5803322c11a4fe0a9dfaed32b0220ad5241684bc84bab435fd0c65a"' - repoLastModified: Thu, 15 Aug 2024 20:19:47 GMT + repoEtag: '"409ddf1ca203fcc1325dfafccba5a3a95b9e213dafce48a2dbb6f004379f7d00"' + repoLastModified: Mon, 19 Aug 2024 21:41:28 GMT id: f3215034d64cfcbcc28a4bdb0205a075 - source: IMPLEMENTATIONS.md name: openapi-validator @@ -39805,17 +39805,17 @@ repositoryId: 157976175 description: JavaScript client library for consuming OpenAPI-enabled APIs with axios created: '2018-11-17T11:04:15Z' - updated: '2024-08-16T14:20:19Z' + updated: '2024-08-20T01:38:48Z' language: TypeScript archived: false - stars: 543 + stars: 545 watchers: 6 forks: 67 owner: openapistack logo: https://avatars.githubusercontent.com/u/147298423?v=4 license: MIT - repoEtag: '"4109d2fc85e78cea73020a1923437a58bc40753ff616ea3ef183e945fe78b545"' - repoLastModified: Fri, 16 Aug 2024 14:20:19 GMT + repoEtag: '"9909aa1addcfafb87f5f3acb5bf9b9797cfe28d09aa0b5a81a5c8d1131c2200e"' + repoLastModified: Tue, 20 Aug 2024 01:38:48 GMT id: a3b46b452de775b27f5ce966a69ccfa3 oldLocations: - https://github.com/anttiviljami/openapi-client-axios @@ -40607,7 +40607,7 @@ LoopBack makes it easy to build modern API applications that require complex integrations. created: '2017-01-09T17:27:14Z' - updated: '2024-08-18T03:07:10Z' + updated: '2024-08-19T18:56:09Z' language: TypeScript archived: false stars: 4913 @@ -40616,8 +40616,8 @@ owner: loopbackio logo: https://avatars.githubusercontent.com/u/22173486?v=4 license: NOASSERTION - repoEtag: '"24def8cb83e5d3f879c5b0a367485eddabec3f2f4197083576dcce79dd5a3dfa"' - repoLastModified: Sun, 18 Aug 2024 03:07:10 GMT + repoEtag: '"0c7667bb014c1418ca0cb89605abd8d5d4863dcec473082b0b869385e0792371"' + repoLastModified: Mon, 19 Aug 2024 18:56:09 GMT foundInMaster: true id: 9132c25ad468bed25b9dbbe3a352abc2 v3: true @@ -40689,17 +40689,17 @@ testing cloud services through their REST APIs and finding security and reliability bugs in these services. created: '2020-07-24T21:40:11Z' - updated: '2024-08-16T10:26:19Z' + updated: '2024-08-19T10:10:56Z' language: Python archived: false - stars: 2547 + stars: 2549 watchers: 36 - forks: 287 + forks: 289 owner: microsoft logo: https://avatars.githubusercontent.com/u/6154722?v=4 license: MIT - repoEtag: '"bf3305e82e92ae46b74068d01e18b599ef109932a42f5b0e45bf9c8fe6817f78"' - repoLastModified: Fri, 16 Aug 2024 10:26:19 GMT + repoEtag: '"4b352f1da46041b9e85ae5c70a70952c502259edf45ae31bb65e1f8fd71886ba"' + repoLastModified: Mon, 19 Aug 2024 10:10:56 GMT foundInMaster: true oldLocations: - https://github.com/microsoft/restler @@ -40874,16 +40874,16 @@ Testing Python code generated servers for ogcapi-discrete-global-grid-systems created: '2021-06-21T11:39:33Z' - updated: '2021-11-17T08:22:24Z' + updated: '2024-08-19T14:03:12Z' language: Jupyter Notebook archived: false - stars: 0 + stars: 1 watchers: 2 forks: 0 owner: allixender logo: https://avatars.githubusercontent.com/u/4483885?v=4 - repoEtag: '"7e4d4020632f043964804f7979efb7a0365bfb3f4b7888ccc7a6368de8323b53"' - repoLastModified: Wed, 17 Nov 2021 08:22:24 GMT + repoEtag: '"065002023a9a7978025f534d3f87b9c2d18165659f54a04ca8021b35ea261637"' + repoLastModified: Mon, 19 Aug 2024 14:03:12 GMT foundInMaster: true category: Server Implementations id: a69484dbdfba2f19352bbc6aa2284c34 @@ -41402,11 +41402,11 @@ archived: false stars: 1100 watchers: 82 - forks: 530 + forks: 531 owner: vert-x3 logo: https://avatars.githubusercontent.com/u/8124623?v=4 license: Apache-2.0 - repoEtag: '"f3d04d8c776906345d76f3ce1afb3226594f19773f5b497dc3988088d9ad3850"' + repoEtag: '"e5719da05acfc5a020a551c98413484ebdbafb95b6fa324b1dfa74fe4805cecd"' repoLastModified: Sun, 18 Aug 2024 12:53:59 GMT foundInMaster: true v3_link: https://github.com/vert-x3/vertx-web/issues/1872