From 9a27a74974815688bc3e71cff2bba3f5c1ace90f Mon Sep 17 00:00:00 2001 From: Tooling Builder Date: Thu, 14 Nov 2024 03:42:18 +0000 Subject: [PATCH] chore: Metadata build (updates to OpenAPI tooling metadata and site rebuild) --- docs/categories/all.html | 664 ++++++------ docs/categories/auto-generators.html | 48 +- docs/categories/code-generators.html | 66 +- docs/categories/converters.html | 44 +- docs/categories/data-validators.html | 48 +- docs/categories/description-validators.html | 30 +- docs/categories/documentation.html | 76 +- docs/categories/dsl.html | 8 +- docs/categories/gateway.html | 8 +- docs/categories/gui-editors.html | 4 +- docs/categories/low-level-tooling.html | 20 +- docs/categories/mock-testing.html | 6 +- docs/categories/mock.html | 16 +- docs/categories/parsers.html | 182 ++-- docs/categories/sdk.html | 100 +- docs/categories/security.html | 8 +- docs/categories/server-implementations.html | 190 ++-- docs/categories/server.html | 58 +- docs/categories/testing-tools.html | 20 +- docs/categories/testing.html | 62 +- docs/categories/text-editors.html | 6 +- docs/categories/unclassified.html | 6 +- docs/categories/user-interfaces.html | 14 +- src/_data/tools.yaml | 1026 +++++++++---------- 24 files changed, 1355 insertions(+), 1355 deletions(-) diff --git a/docs/categories/all.html b/docs/categories/all.html index 89d85160..f7d574e7 100644 --- a/docs/categories/all.html +++ b/docs/categories/all.html @@ -357,7 +357,7 @@

Yes Yes Yes - 7207 + 7280 @@ -380,7 +380,7 @@

Yes No No - 1236 + 1237 @@ -403,7 +403,7 @@

No Yes No - 1746 + 1748 @@ -466,7 +466,7 @@

Yes Yes Yes - 23590 + 23599 @@ -552,7 +552,7 @@

No Yes No - 745 + 746 @@ -887,7 +887,7 @@

No Yes Yes - 21827 + 21838 @@ -933,7 +933,7 @@

No Yes Yes - 2969 + 2971 @@ -1091,7 +1091,7 @@

Yes Yes Yes - 8934 + 8935 @@ -1410,7 +1410,7 @@

Yes Yes Yes - 4319 + 4322 @@ -1433,7 +1433,7 @@

Yes Yes Yes - 1405 + 1406 @@ -1564,7 +1564,7 @@

No Yes Yes - 3566 + 3570 @@ -1587,7 +1587,7 @@

Yes Yes Yes - 1333 + 1339 @@ -1702,7 +1702,7 @@

No Yes Yes - 8691 + 8692 @@ -1834,7 +1834,7 @@

No Yes No - 1694 + 1695 @@ -2033,7 +2033,7 @@

Yes Yes Yes - 2527 + 2529 @@ -2075,7 +2075,7 @@

Yes Yes Yes - 500 + 501 @@ -2098,7 +2098,7 @@

Yes Yes Yes - 941 + 943 @@ -2341,7 +2341,7 @@

No Yes Yes - 2624 + 2626 @@ -2381,7 +2381,7 @@

Yes Yes No - 527 + 528 @@ -2490,7 +2490,7 @@

No Yes Yes - 1408 + 1409 @@ -2641,7 +2641,7 @@

No No Yes - 9545 + 9546 @@ -2710,7 +2710,7 @@

No Yes Yes - 6783 + 6785 @@ -2756,7 +2756,7 @@

No Yes Yes - 17035 + 17040 @@ -2993,7 +2993,7 @@

No Yes No - 219 + 220 @@ -3165,7 +3165,7 @@

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

No Yes No - 5098 + 5099 @@ -3302,7 +3302,7 @@

No Yes No - 528 + 529 @@ -3415,7 +3415,7 @@

Yes Yes No - 3949 + 3952 @@ -3438,7 +3438,7 @@

No Yes No - 4496 + 4501 @@ -3484,7 +3484,7 @@

Yes Yes No - 919 + 921 @@ -3526,7 +3526,7 @@

Yes Yes Yes - 926 + 927 @@ -3637,7 +3637,7 @@

No Yes Yes - 12732 + 12737 @@ -3878,7 +3878,7 @@

No Yes No - 28415 + 28423 @@ -4030,7 +4030,7 @@

Yes Yes No - 1341 + 1342 @@ -4053,7 +4053,7 @@

Yes Yes Yes - 1800 + 1803 @@ -4436,7 +4436,7 @@

Yes Yes Yes - 474 + 475 @@ -4662,7 +4662,7 @@

Yes Yes Yes - 190 + 192 @@ -4874,7 +4874,7 @@

No Yes No - 2003 + 2005 @@ -4897,7 +4897,7 @@

Yes Yes Yes - 2674 + 2677 @@ -4964,7 +4964,7 @@

Yes Yes No - 1435 + 1436 @@ -4987,7 +4987,7 @@

Yes Yes Yes - 123 + 124 @@ -5121,7 +5121,7 @@

No Yes No - 900 + 901 @@ -5144,7 +5144,7 @@

Yes Yes No - 2115 + 2118 @@ -5305,7 +5305,7 @@

No Yes No - 77491 + 77537 @@ -5328,7 +5328,7 @@

Yes Yes No - 26570 + 26575 @@ -5351,7 +5351,7 @@

Yes Yes No - 23590 + 23599 @@ -5393,7 +5393,7 @@

No Yes No - 6540 + 6543 @@ -5416,7 +5416,7 @@

No Yes No - 6303 + 6308 @@ -5439,7 +5439,7 @@

Yes Yes Yes - 5872 + 5882 @@ -5460,7 +5460,7 @@

No Yes No - 4136 + 4138 @@ -5481,7 +5481,7 @@

No Yes No - 3880 + 3881 @@ -5504,7 +5504,7 @@

No Yes No - 3291 + 3292 @@ -5525,7 +5525,7 @@

No Yes No - 2711 + 2712 @@ -5567,7 +5567,7 @@

No Yes No - 2394 + 2395 @@ -5588,7 +5588,7 @@

No Yes No - 2396 + 2399 @@ -5611,7 +5611,7 @@

No Yes No - 2294 + 2295 @@ -5632,7 +5632,7 @@

No Yes No - 2107 + 2108 @@ -5653,7 +5653,7 @@

No Yes No - 1708 + 1710 @@ -5760,7 +5760,7 @@

No Yes No - 1038 + 1039 @@ -5781,7 +5781,7 @@

No Yes No - 962 + 964 @@ -5823,7 +5823,7 @@

No Yes No - 830 + 831 @@ -6035,7 +6035,7 @@

No Yes No - 549 + 550 @@ -6352,7 +6352,7 @@

No Yes No - 367 + 368 @@ -6457,7 +6457,7 @@

No Yes No - 328 + 330 @@ -6604,7 +6604,7 @@

No Yes No - 294 + 295 @@ -6625,7 +6625,7 @@

No Yes No - 292 + 293 @@ -6858,7 +6858,7 @@

No Yes No - 219 + 220 @@ -7005,7 +7005,7 @@

No Yes No - 205 + 206 @@ -7112,7 +7112,7 @@

No Yes No - 194 + 195 @@ -7427,7 +7427,7 @@

No Yes No - 139 + 141 @@ -7513,7 +7513,7 @@

Yes Yes No - 122 + 123 @@ -7618,7 +7618,7 @@

No Yes No - 116 + 115 @@ -7723,7 +7723,7 @@

No Yes No - 109 + 110 @@ -7828,7 +7828,7 @@

No Yes No - 107 + 108 @@ -8542,7 +8542,7 @@

No Yes No - 56 + 57 @@ -8947,7 +8947,7 @@

No Yes No - 43 + 44 @@ -9665,7 +9665,7 @@

No Yes No - 32 + 33 @@ -11708,7 +11708,7 @@

No Yes No - 14 + 15 @@ -11855,7 +11855,7 @@

No Yes No - 14 + 15 @@ -12193,7 +12193,7 @@

No Yes No - 13 + 14 @@ -22336,7 +22336,7 @@

No Yes No - 4 + 8 @@ -24730,7 +24730,7 @@

Yes Yes No - 2466 + 2469 @@ -25549,7 +25549,7 @@

No Yes Yes - 3043 + 3073 @@ -26137,7 +26137,7 @@

No Yes Yes - 519 + 520 @@ -27296,7 +27296,7 @@

No Yes No - 27615 + 27644 @@ -31356,7 +31356,7 @@

No No No - 1408 + 1409 @@ -31581,7 +31581,7 @@

No No No - 219 + 220 @@ -33796,15 +33796,15 @@

Scalar (link)

Stars - 7207 + 7280 Watchers - 23 + 24 Forks - 221 + 226 Created @@ -33812,7 +33812,7 @@

Scalar (link)

Last Updated - 2024-11-13T03:25:49Z + 2024-11-14T03:28:13Z Archived @@ -33847,7 +33847,7 @@

Scramble (link)

Stars - 1236 + 1237 Watchers @@ -33855,7 +33855,7 @@

Scramble (link)

Forks - 118 + 119 Created @@ -33863,7 +33863,7 @@

Scramble (link)

Last Updated - 2024-11-13T01:38:58Z + 2024-11-14T03:35:15Z Archived @@ -33898,7 +33898,7 @@

Scribe (link)

Stars - 1746 + 1748 Watchers @@ -33914,7 +33914,7 @@

Scribe (link)

Last Updated - 2024-11-12T17:56:56Z + 2024-11-13T20:20:07Z Archived @@ -34051,7 +34051,7 @@

ReDoc (link)

Stars - 23590 + 23599 Watchers @@ -34067,7 +34067,7 @@

ReDoc (link)

Last Updated - 2024-11-12T14:41:29Z + 2024-11-14T01:59:20Z Archived @@ -34220,7 +34220,7 @@

OpenAPI-UI (link)

Last Updated - 2024-11-12T16:37:47Z + 2024-11-13T05:47:57Z Archived @@ -34255,7 +34255,7 @@

oasdiff (link)

Stars - 745 + 746 Watchers @@ -34271,7 +34271,7 @@

oasdiff (link)

Last Updated - 2024-11-12T22:36:29Z + 2024-11-13T10:44:01Z Archived @@ -34365,7 +34365,7 @@

OpenAPI CRUD Wizard (link)

Forks - 1 + 0 Created @@ -35020,7 +35020,7 @@

OpenAPI Generator (link)

Stars - 21827 + 21838 Watchers @@ -35028,7 +35028,7 @@

OpenAPI Generator (link)

Forks - 6583 + 6587 Created @@ -35036,7 +35036,7 @@

OpenAPI Generator (link)

Last Updated - 2024-11-13T03:21:09Z + 2024-11-14T01:48:19Z Archived @@ -35122,7 +35122,7 @@

Kiota Api Client Generator (link)

Stars - 2969 + 2971 Watchers @@ -35130,7 +35130,7 @@

Kiota Api Client Generator (link)

Forks - 207 + 208 Created @@ -35138,7 +35138,7 @@

Kiota Api Client Generator (link)

Last Updated - 2024-11-12T17:42:18Z + 2024-11-14T02:41:40Z Archived @@ -35479,7 +35479,7 @@

Swagger Editor (link)

Stars - 8934 + 8935 Watchers @@ -35495,7 +35495,7 @@

Swagger Editor (link)

Last Updated - 2024-11-12T19:53:14Z + 2024-11-13T19:54:56Z Archived @@ -35793,7 +35793,7 @@

Apicurio Studio (link)

Forks - 498 + 499 Created @@ -35801,7 +35801,7 @@

Apicurio Studio (link)

Last Updated - 2024-11-12T19:10:25Z + 2024-11-13T18:55:36Z Archived @@ -36244,7 +36244,7 @@

Prism (link)

Stars - 4319 + 4322 Watchers @@ -36252,7 +36252,7 @@

Prism (link)

Forks - 349 + 350 Created @@ -36260,7 +36260,7 @@

Prism (link)

Last Updated - 2024-11-12T09:30:01Z + 2024-11-13T23:37:34Z Archived @@ -36295,7 +36295,7 @@

Microcks (link)

Stars - 1405 + 1406 Watchers @@ -36311,7 +36311,7 @@

Microcks (link)

Last Updated - 2024-11-10T04:17:08Z + 2024-11-13T21:56:13Z Archived @@ -36601,7 +36601,7 @@

tsoa (link)

Stars - 3566 + 3570 Watchers @@ -36617,7 +36617,7 @@

tsoa (link)

Last Updated - 2024-11-12T11:59:43Z + 2024-11-14T00:50:27Z Archived @@ -36652,7 +36652,7 @@

@hey-api/openapi-ts (link)

Stars - 1333 + 1339 Watchers @@ -36668,7 +36668,7 @@

@hey-api/openapi-ts (link)

Last Updated - 2024-11-13T00:09:56Z + 2024-11-14T02:02:24Z Archived @@ -36711,7 +36711,7 @@

Vert.x Web Api Contract (link)

Forks - 535 + 536 Created @@ -36762,7 +36762,7 @@

express-openapi (link)

Forks - 236 + 237 Created @@ -36860,7 +36860,7 @@

@smartrecruiters/openapi-first (link) Watchers - 23 + 25 Forks @@ -36907,7 +36907,7 @@

API Platform (link)

Stars - 8691 + 8692 Watchers @@ -36923,7 +36923,7 @@

API Platform (link)

Last Updated - 2024-11-12T19:33:10Z + 2024-11-13T20:33:53Z Archived @@ -37213,7 +37213,7 @@

@nestjs/swagger (link)

Stars - 1694 + 1695 Watchers @@ -37221,7 +37221,7 @@

@nestjs/swagger (link)

Forks - 476 + 477 Created @@ -37229,7 +37229,7 @@

@nestjs/swagger (link)

Last Updated - 2024-11-11T21:02:04Z + 2024-11-13T18:15:09Z Archived @@ -37672,7 +37672,7 @@

Spectral (link)

Stars - 2527 + 2529 Watchers @@ -37680,7 +37680,7 @@

Spectral (link)

Forks - 240 + 241 Created @@ -37688,7 +37688,7 @@

Spectral (link)

Last Updated - 2024-11-12T17:03:26Z + 2024-11-14T02:36:51Z Archived @@ -37774,7 +37774,7 @@

OpenAPI Validator (link)

Stars - 500 + 501 Watchers @@ -37790,7 +37790,7 @@

OpenAPI Validator (link)

Last Updated - 2024-11-12T21:39:30Z + 2024-11-13T10:06:45Z Archived @@ -37825,7 +37825,7 @@

Redocly CLI (link)

Stars - 941 + 943 Watchers @@ -37841,7 +37841,7 @@

Redocly CLI (link)

Last Updated - 2024-11-12T17:05:19Z + 2024-11-13T19:27:21Z Archived @@ -38386,7 +38386,7 @@

kin-openapi (link)

Stars - 2624 + 2626 Watchers @@ -38394,7 +38394,7 @@

kin-openapi (link)

Forks - 429 + 430 Created @@ -38402,7 +38402,7 @@

kin-openapi (link)

Last Updated - 2024-11-12T12:17:46Z + 2024-11-13T21:06:29Z Archived @@ -38488,7 +38488,7 @@

openapi-psr7-validator (link)

Stars - 527 + 528 Watchers @@ -38504,7 +38504,7 @@

openapi-psr7-validator (link)

Last Updated - 2024-11-12T03:23:53Z + 2024-11-13T20:54:23Z Archived @@ -38543,7 +38543,7 @@

php-openapi (link)

Watchers - 22 + 21 Forks @@ -38555,7 +38555,7 @@

php-openapi (link)

Last Updated - 2024-11-12T01:13:05Z + 2024-11-13T16:13:29Z Archived @@ -38743,7 +38743,7 @@

Microsoft/OpenAPI.NET (link)

Stars - 1408 + 1409 Watchers @@ -38759,7 +38759,7 @@

Microsoft/OpenAPI.NET (link)

Last Updated - 2024-11-12T17:37:58Z + 2024-11-13T22:55:17Z Archived @@ -39100,7 +39100,7 @@

go-swagger (link)

Stars - 9545 + 9546 Watchers @@ -39108,7 +39108,7 @@

go-swagger (link)

Forks - 1252 + 1253 Created @@ -39116,7 +39116,7 @@

go-swagger (link)

Last Updated - 2024-11-12T23:06:29Z + 2024-11-14T00:26:55Z Archived @@ -39253,7 +39253,7 @@

NSwag (link)

Stars - 6783 + 6785 Watchers @@ -39269,7 +39269,7 @@

NSwag (link)

Last Updated - 2024-11-13T03:16:42Z + 2024-11-14T03:21:15Z Archived @@ -39355,7 +39355,7 @@

Swagger-Codegen (link)

Stars - 17035 + 17040 Watchers @@ -39363,7 +39363,7 @@

Swagger-Codegen (link)

Forks - 6029 + 6030 Created @@ -39371,7 +39371,7 @@

Swagger-Codegen (link)

Last Updated - 2024-11-12T19:25:29Z + 2024-11-13T19:54:15Z Archived @@ -39410,7 +39410,7 @@

Azure AutoRest (link)

Watchers - 911 + 912 Forks @@ -39916,7 +39916,7 @@

Tcases for OpenAPI (link)

Stars - 219 + 220 Watchers @@ -39932,7 +39932,7 @@

Tcases for OpenAPI (link)

Last Updated - 2024-11-04T10:00:23Z + 2024-11-14T01:36:23Z Archived @@ -40324,7 +40324,7 @@

JSON Schema to OpenAPI Schema (link) Stars - 111 + 112 Watchers @@ -40340,7 +40340,7 @@

JSON Schema to OpenAPI Schema (link) Last Updated - 2024-09-02T14:31:00Z + 2024-11-13T08:35:05Z Archived @@ -40579,7 +40579,7 @@

mitmproxy2swagger (link)

Stars - 5098 + 5099 Watchers @@ -40595,7 +40595,7 @@

mitmproxy2swagger (link)

Last Updated - 2024-11-12T10:20:11Z + 2024-11-13T21:54:27Z Archived @@ -40630,7 +40630,7 @@

OpenApiSpecGeneratorPlugin (link)

Stars - 528 + 529 Watchers @@ -40646,7 +40646,7 @@

OpenApiSpecGeneratorPlugin (link)

Last Updated - 2024-11-12T14:57:08Z + 2024-11-13T20:43:16Z Archived @@ -40885,7 +40885,7 @@

OpenAPI DevTools (link)

Stars - 3949 + 3952 Watchers @@ -40901,7 +40901,7 @@

OpenAPI DevTools (link)

Last Updated - 2024-11-12T01:25:59Z + 2024-11-13T22:07:15Z Archived @@ -40936,7 +40936,7 @@

TypeSpec (link)

Stars - 4496 + 4501 Watchers @@ -40944,7 +40944,7 @@

TypeSpec (link)

Forks - 214 + 215 Created @@ -40952,7 +40952,7 @@

TypeSpec (link)

Last Updated - 2024-11-13T01:58:56Z + 2024-11-14T03:24:55Z Archived @@ -41038,7 +41038,7 @@

Restish (link)

Stars - 919 + 921 Watchers @@ -41054,7 +41054,7 @@

Restish (link)

Last Updated - 2024-11-09T14:32:02Z + 2024-11-13T21:39:21Z Archived @@ -41140,7 +41140,7 @@

openapi-to-postman (link)

Stars - 926 + 927 Watchers @@ -41156,7 +41156,7 @@

openapi-to-postman (link)

Last Updated - 2024-11-11T09:55:32Z + 2024-11-13T12:51:50Z Archived @@ -41395,7 +41395,7 @@

OWASP ZAP (link)

Stars - 12732 + 12737 Watchers @@ -41411,7 +41411,7 @@

OWASP ZAP (link)

Last Updated - 2024-11-12T18:37:25Z + 2024-11-13T21:21:53Z Archived @@ -41956,7 +41956,7 @@

Django REST Framework (link)

Stars - 28415 + 28423 Watchers @@ -41964,7 +41964,7 @@

Django REST Framework (link)

Forks - 6839 + 6841 Created @@ -41972,7 +41972,7 @@

Django REST Framework (link)

Last Updated - 2024-11-12T20:24:02Z + 2024-11-13T22:40:18Z Archived @@ -42313,7 +42313,7 @@

openapi-python-client (link)

Stars - 1341 + 1342 Watchers @@ -42329,7 +42329,7 @@

openapi-python-client (link)

Last Updated - 2024-11-12T17:21:39Z + 2024-11-13T13:52:03Z Archived @@ -42364,7 +42364,7 @@

Elements (link)

Stars - 1800 + 1803 Watchers @@ -42380,7 +42380,7 @@

Elements (link)

Last Updated - 2024-11-10T11:54:42Z + 2024-11-13T18:06:54Z Archived @@ -43231,7 +43231,7 @@

libopenapi (link)

Stars - 474 + 475 Watchers @@ -43247,7 +43247,7 @@

libopenapi (link)

Last Updated - 2024-11-12T13:33:54Z + 2024-11-13T14:37:39Z Archived @@ -43706,7 +43706,7 @@

Specmatic (link)

Last Updated - 2024-11-12T15:59:16Z + 2024-11-13T11:31:57Z Archived @@ -43741,7 +43741,7 @@

openapi-changes (link)

Stars - 190 + 192 Watchers @@ -43757,7 +43757,7 @@

openapi-changes (link)

Last Updated - 2024-11-10T23:34:28Z + 2024-11-13T19:42:13Z Archived @@ -43910,7 +43910,7 @@

Serverless API Gateway (link)

Last Updated - 2024-11-12T15:57:11Z + 2024-11-13T17:13:25Z Archived @@ -44251,7 +44251,7 @@

rswag (link)

Stars - 2003 + 2005 Watchers @@ -44259,7 +44259,7 @@

rswag (link)

Forks - 432 + 433 Created @@ -44267,7 +44267,7 @@

rswag (link)

Last Updated - 2024-11-12T09:26:29Z + 2024-11-13T14:19:48Z Archived @@ -44302,7 +44302,7 @@

🌿 Fern (link)

Stars - 2674 + 2677 Watchers @@ -44318,7 +44318,7 @@

🌿 Fern (link)

Last Updated - 2024-11-13T02:24:47Z + 2024-11-13T21:12:41Z Archived @@ -44455,11 +44455,11 @@

Swift OpenAPI Generator (link)

Stars - 1435 + 1436 Watchers - 114 + 115 Forks @@ -44471,7 +44471,7 @@

Swift OpenAPI Generator (link)

Last Updated - 2024-11-12T20:53:51Z + 2024-11-13T15:58:50Z Archived @@ -44506,7 +44506,7 @@

wiretap (link)

Stars - 123 + 124 Watchers @@ -44522,7 +44522,7 @@

wiretap (link)

Last Updated - 2024-11-09T20:21:46Z + 2024-11-14T03:34:17Z Archived @@ -44565,7 +44565,7 @@

openapi-schema-validator (link)

Forks - 6 + 7 Created @@ -44573,7 +44573,7 @@

openapi-schema-validator (link)

Last Updated - 2024-11-12T17:47:28Z + 2024-11-13T22:02:11Z Archived @@ -44812,7 +44812,7 @@

Fuego (link)

Stars - 900 + 901 Watchers @@ -44828,7 +44828,7 @@

Fuego (link)

Last Updated - 2024-11-12T15:29:15Z + 2024-11-13T21:37:54Z Archived @@ -44863,7 +44863,7 @@

Huma (link)

Stars - 2115 + 2118 Watchers @@ -44871,7 +44871,7 @@

Huma (link)

Forks - 151 + 152 Created @@ -44879,7 +44879,7 @@

Huma (link)

Last Updated - 2024-11-13T00:11:04Z + 2024-11-14T02:21:16Z Archived @@ -45185,7 +45185,7 @@

Zudoku (link)

Last Updated - 2024-11-12T14:51:15Z + 2024-11-13T18:50:16Z Archived @@ -45220,7 +45220,7 @@

FastAPI (link)

Stars - 77491 + 77537 Watchers @@ -45228,7 +45228,7 @@

FastAPI (link)

Forks - 6624 + 6629 Created @@ -45236,7 +45236,7 @@

FastAPI (link)

Last Updated - 2024-11-13T02:52:31Z + 2024-11-14T03:17:19Z Archived @@ -45271,7 +45271,7 @@

swagger-ui (link)

Stars - 26570 + 26575 Watchers @@ -45279,7 +45279,7 @@

swagger-ui (link)

Forks - 8960 + 8959 Created @@ -45287,7 +45287,7 @@

swagger-ui (link)

Last Updated - 2024-11-13T00:17:02Z + 2024-11-14T02:24:43Z Archived @@ -45322,7 +45322,7 @@

Redoc (link)

Stars - 23590 + 23599 Watchers @@ -45338,7 +45338,7 @@

Redoc (link)

Last Updated - 2024-11-12T14:41:29Z + 2024-11-14T01:59:20Z Archived @@ -45424,7 +45424,7 @@

mockoon (link)

Stars - 6540 + 6543 Watchers @@ -45432,7 +45432,7 @@

mockoon (link)

Forks - 389 + 391 Created @@ -45440,7 +45440,7 @@

mockoon (link)

Last Updated - 2024-11-12T21:40:15Z + 2024-11-13T22:04:13Z Archived @@ -45475,7 +45475,7 @@

OpenAPI Server Code Generator (oapi-cod Stars - 6303 + 6308 Watchers @@ -45483,7 +45483,7 @@

OpenAPI Server Code Generator (oapi-cod Forks - 865 + 868 Created @@ -45491,7 +45491,7 @@

OpenAPI Server Code Generator (oapi-cod Last Updated - 2024-11-12T23:06:42Z + 2024-11-14T02:18:02Z Archived @@ -45526,7 +45526,7 @@

OpenAPI TypeScript (link)

Stars - 5872 + 5882 Watchers @@ -45542,7 +45542,7 @@

OpenAPI TypeScript (link)

Last Updated - 2024-11-13T03:25:14Z + 2024-11-14T01:57:14Z Archived @@ -45577,7 +45577,7 @@

knife4j (link)

Stars - 4136 + 4138 Watchers @@ -45593,7 +45593,7 @@

knife4j (link)

Last Updated - 2024-11-12T08:53:38Z + 2024-11-13T16:53:14Z Archived @@ -45628,7 +45628,7 @@

openapi-directory (link)

Stars - 3880 + 3881 Watchers @@ -45644,7 +45644,7 @@

openapi-directory (link)

Last Updated - 2024-11-12T17:22:59Z + 2024-11-13T23:38:58Z Archived @@ -45679,7 +45679,7 @@

springdoc-openapi (link)

Stars - 3291 + 3292 Watchers @@ -45695,7 +45695,7 @@

springdoc-openapi (link)

Last Updated - 2024-11-12T13:00:00Z + 2024-11-14T03:35:46Z Archived @@ -45730,7 +45730,7 @@

uvicorn-gunicorn-fastapi-docker (link)< Stars - 2711 + 2712 Watchers @@ -45746,7 +45746,7 @@

uvicorn-gunicorn-fastapi-docker (link)< Last Updated - 2024-11-12T23:55:35Z + 2024-11-13T10:58:28Z Archived @@ -45832,7 +45832,7 @@

drf-spectacular (link)

Stars - 2394 + 2395 Watchers @@ -45840,7 +45840,7 @@

drf-spectacular (link)

Forks - 265 + 266 Created @@ -45848,7 +45848,7 @@

drf-spectacular (link)

Last Updated - 2024-11-11T12:56:22Z + 2024-11-13T10:00:47Z Archived @@ -45883,7 +45883,7 @@

msgspec (link)

Stars - 2396 + 2399 Watchers @@ -45891,7 +45891,7 @@

msgspec (link)

Forks - 72 + 73 Created @@ -45899,7 +45899,7 @@

msgspec (link)

Last Updated - 2024-11-11T20:43:28Z + 2024-11-13T23:31:17Z Archived @@ -45934,7 +45934,7 @@

Schemathesis (link)

Stars - 2294 + 2295 Watchers @@ -45942,7 +45942,7 @@

Schemathesis (link)

Forks - 163 + 164 Created @@ -45950,7 +45950,7 @@

Schemathesis (link)

Last Updated - 2024-11-12T18:40:42Z + 2024-11-13T10:51:56Z Archived @@ -45985,7 +45985,7 @@

gnostic (link)

Stars - 2107 + 2108 Watchers @@ -46001,7 +46001,7 @@

gnostic (link)

Last Updated - 2024-11-11T08:05:33Z + 2024-11-14T03:22:45Z Archived @@ -46036,7 +46036,7 @@

rapidoc (link)

Stars - 1708 + 1710 Watchers @@ -46052,7 +46052,7 @@

rapidoc (link)

Last Updated - 2024-11-10T22:53:05Z + 2024-11-13T22:56:48Z Archived @@ -46103,7 +46103,7 @@

openapi-generator-cli (link)

Last Updated - 2024-11-12T16:14:41Z + 2024-11-13T14:40:16Z Archived @@ -46205,7 +46205,7 @@

ogen (link)

Last Updated - 2024-11-11T23:59:34Z + 2024-11-13T12:28:03Z Archived @@ -46291,7 +46291,7 @@

apiflask (link)

Stars - 1038 + 1039 Watchers @@ -46307,7 +46307,7 @@

apiflask (link)

Last Updated - 2024-11-11T16:56:47Z + 2024-11-13T06:49:48Z Archived @@ -46342,7 +46342,7 @@

zod-to-openapi (link)

Stars - 962 + 964 Watchers @@ -46358,7 +46358,7 @@

zod-to-openapi (link)

Last Updated - 2024-11-12T19:06:42Z + 2024-11-13T22:57:27Z Archived @@ -46444,7 +46444,7 @@

openapi-diff (link)

Stars - 830 + 831 Watchers @@ -46460,7 +46460,7 @@

openapi-diff (link)

Last Updated - 2024-11-12T19:28:55Z + 2024-11-13T10:45:03Z Archived @@ -46656,7 +46656,7 @@

openapi.tools (link)

Forks - 326 + 325 Created @@ -46817,7 +46817,7 @@

awesome-openapi3 (link)

Last Updated - 2024-11-13T00:01:14Z + 2024-11-14T00:01:17Z Archived @@ -46954,7 +46954,7 @@

stackql (link)

Stars - 549 + 550 Watchers @@ -46970,7 +46970,7 @@

stackql (link)

Last Updated - 2024-11-12T21:34:23Z + 2024-11-13T16:35:18Z Archived @@ -47719,7 +47719,7 @@

fastapi-plugins (link)

Stars - 367 + 368 Watchers @@ -47735,7 +47735,7 @@

fastapi-plugins (link)

Last Updated - 2024-11-09T18:00:28Z + 2024-11-13T21:25:20Z Archived @@ -47974,7 +47974,7 @@

chanfana (link)

Stars - 328 + 330 Watchers @@ -47982,7 +47982,7 @@

chanfana (link)

Forks - 41 + 42 Created @@ -47990,7 +47990,7 @@

chanfana (link)

Last Updated - 2024-11-13T00:02:16Z + 2024-11-13T15:29:04Z Archived @@ -48041,7 +48041,7 @@

esmerald (link)

Last Updated - 2024-11-12T17:47:41Z + 2024-11-13T10:41:34Z Archived @@ -48331,7 +48331,7 @@

openapi-react-query-codegen (link)

Stars - 294 + 295 Watchers @@ -48339,7 +48339,7 @@

openapi-react-query-codegen (link)

Forks - 28 + 30 Created @@ -48347,7 +48347,7 @@

openapi-react-query-codegen (link)

Last Updated - 2024-11-12T14:05:23Z + 2024-11-13T09:21:57Z Archived @@ -48382,7 +48382,7 @@

zod-openapi (link)

Stars - 292 + 293 Watchers @@ -48398,7 +48398,7 @@

zod-openapi (link)

Last Updated - 2024-11-12T15:59:20Z + 2024-11-13T12:40:55Z Archived @@ -48943,7 +48943,7 @@

tcases (link)

Stars - 219 + 220 Watchers @@ -48959,7 +48959,7 @@

tcases (link)

Last Updated - 2024-11-04T10:00:23Z + 2024-11-14T01:36:23Z Archived @@ -49163,7 +49163,7 @@

openapi.net.odata (link)

Last Updated - 2024-11-10T20:49:07Z + 2024-11-13T19:45:17Z Archived @@ -49300,7 +49300,7 @@

paypal-rest-api-specifications (link) Stars - 205 + 206 Watchers @@ -49308,7 +49308,7 @@

paypal-rest-api-specifications (link) Forks - 140 + 141 Created @@ -49316,7 +49316,7 @@

paypal-rest-api-specifications (link) Last Updated - 2024-11-10T02:32:12Z + 2024-11-13T20:16:23Z Archived @@ -49469,7 +49469,7 @@

speakeasy (link)

Last Updated - 2024-11-12T13:59:56Z + 2024-11-14T00:19:12Z Archived @@ -49555,7 +49555,7 @@

refitter (link)

Stars - 194 + 195 Watchers @@ -49571,7 +49571,7 @@

refitter (link)

Last Updated - 2024-11-08T14:39:33Z + 2024-11-13T08:10:00Z Archived @@ -49869,7 +49869,7 @@

apiclientcodegen (link)

Forks - 23 + 24 Created @@ -50120,7 +50120,7 @@

openapi-starter (link)

Watchers - 19 + 20 Forks @@ -50320,7 +50320,7 @@

apistos (link)

Stars - 139 + 141 Watchers @@ -50336,7 +50336,7 @@

apistos (link)

Last Updated - 2024-11-11T09:31:22Z + 2024-11-13T13:32:26Z Archived @@ -50524,7 +50524,7 @@

learn.openapis.org (link)

Stars - 122 + 123 Watchers @@ -50540,7 +50540,7 @@

learn.openapis.org (link)

Last Updated - 2024-11-10T11:37:00Z + 2024-11-13T09:23:54Z Archived @@ -50779,7 +50779,7 @@

openapi-schema-pydantic (link)

Stars - 116 + 115 Watchers @@ -50795,7 +50795,7 @@

openapi-schema-pydantic (link)

Last Updated - 2024-11-11T23:25:15Z + 2024-11-14T01:55:05Z Archived @@ -51034,7 +51034,7 @@

api-docs (link)

Stars - 109 + 110 Watchers @@ -51050,7 +51050,7 @@

api-docs (link)

Last Updated - 2024-10-28T23:34:41Z + 2024-11-13T08:03:25Z Archived @@ -51093,7 +51093,7 @@

openapi (link)

Forks - 74 + 75 Created @@ -51101,7 +51101,7 @@

openapi (link)

Last Updated - 2024-11-06T21:11:45Z + 2024-11-13T21:24:55Z Archived @@ -51289,7 +51289,7 @@

tools.openapis.org (link)

Stars - 107 + 108 Watchers @@ -51305,7 +51305,7 @@

tools.openapis.org (link)

Last Updated - 2024-11-12T03:30:24Z + 2024-11-13T09:25:09Z Archived @@ -51458,7 +51458,7 @@

openapi-to-plantuml (link)

Last Updated - 2024-11-11T11:00:27Z + 2024-11-13T17:55:16Z Archived @@ -52274,7 +52274,7 @@

spectral-owasp-ruleset (link)

Last Updated - 2024-10-31T15:08:51Z + 2024-11-13T21:46:07Z Archived @@ -52325,7 +52325,7 @@

apidom (link)

Last Updated - 2024-11-12T17:24:46Z + 2024-11-13T23:49:15Z Archived @@ -53023,7 +53023,7 @@

rest (link)

Stars - 56 + 57 Watchers @@ -53039,7 +53039,7 @@

rest (link)

Last Updated - 2024-11-09T21:36:13Z + 2024-11-13T13:39:28Z Archived @@ -53992,7 +53992,7 @@

oas3-chow-chow (link)

Stars - 43 + 44 Watchers @@ -54008,7 +54008,7 @@

oas3-chow-chow (link)

Last Updated - 2024-10-30T17:17:06Z + 2024-11-13T05:42:00Z Archived @@ -55726,7 +55726,7 @@

aspnetcore.scalar (link)

Stars - 32 + 33 Watchers @@ -55742,7 +55742,7 @@

aspnetcore.scalar (link)

Last Updated - 2024-11-03T12:24:02Z + 2024-11-13T03:47:38Z Archived @@ -55997,7 +55997,7 @@

hei-admin-api (link)

Last Updated - 2024-11-12T06:09:42Z + 2024-11-13T13:26:19Z Archived @@ -56966,7 +56966,7 @@

shipengine-openapi (link)

Last Updated - 2024-11-09T01:34:01Z + 2024-11-13T16:05:42Z Archived @@ -58241,7 +58241,7 @@

mockoon.com (link)

Last Updated - 2024-11-12T10:23:24Z + 2024-11-13T09:05:32Z Archived @@ -60673,7 +60673,7 @@

sofia-supermarkets-api (link)

Stars - 14 + 15 Watchers @@ -60689,7 +60689,7 @@

sofia-supermarkets-api (link)

Last Updated - 2024-11-12T15:15:33Z + 2024-11-13T18:55:13Z Archived @@ -61030,7 +61030,7 @@

flapi (link)

Stars - 14 + 15 Watchers @@ -61046,7 +61046,7 @@

flapi (link)

Last Updated - 2024-11-06T12:48:20Z + 2024-11-13T19:18:38Z Archived @@ -61709,7 +61709,7 @@

responsible (link)

Last Updated - 2024-11-13T00:32:33Z + 2024-11-13T12:47:37Z Archived @@ -61846,7 +61846,7 @@

frappe-api (link)

Stars - 13 + 14 Watchers @@ -61862,7 +61862,7 @@

frappe-api (link)

Last Updated - 2024-11-12T18:09:50Z + 2024-11-13T04:36:45Z Archived @@ -62627,7 +62627,7 @@

sandbox (link)

Last Updated - 2024-11-08T15:48:31Z + 2024-11-13T15:59:03Z Archived @@ -65534,7 +65534,7 @@

openapi-specs (link)

Last Updated - 2024-11-12T12:22:40Z + 2024-11-13T06:53:30Z Archived @@ -71195,7 +71195,7 @@

pyapi-server (link)

Last Updated - 2024-11-05T21:54:05Z + 2024-11-13T15:13:00Z Archived @@ -72623,7 +72623,7 @@

kopgen (link)

Last Updated - 2024-11-12T13:50:53Z + 2024-11-14T00:54:47Z Archived @@ -79853,7 +79853,7 @@

openapi-schemas-validator (link)

Watchers - 22 + 24 Forks @@ -80069,7 +80069,7 @@

goapi (link)

Last Updated - 2024-11-12T03:09:37Z + 2024-11-13T09:13:24Z Archived @@ -86479,7 +86479,7 @@

r5t (link)

Stars - 4 + 8 Watchers @@ -86495,7 +86495,7 @@

r5t (link)

Last Updated - 2024-11-12T13:56:32Z + 2024-11-13T06:25:12Z Archived @@ -92293,7 +92293,7 @@

utoipa (link)

Stars - 2466 + 2469 Watchers @@ -92309,7 +92309,7 @@

utoipa (link)

Last Updated - 2024-11-12T05:32:37Z + 2024-11-13T22:22:05Z Archived @@ -94282,7 +94282,7 @@

orval (link)

Stars - 3043 + 3073 Watchers @@ -94298,7 +94298,7 @@

orval (link)

Last Updated - 2024-11-12T16:38:53Z + 2024-11-14T00:08:06Z Archived @@ -95710,7 +95710,7 @@

EvoMaster (link)

Stars - 519 + 520 Watchers @@ -95726,7 +95726,7 @@

EvoMaster (link)

Last Updated - 2024-11-11T05:21:50Z + 2024-11-13T13:47:14Z Archived @@ -98319,7 +98319,7 @@

kubb (link)

Forks - 67 + 66 Created @@ -98515,7 +98515,7 @@

full-stack-fastapi-template (link)

Stars - 27615 + 27644 Watchers @@ -98523,7 +98523,7 @@

full-stack-fastapi-template (link)

Forks - 4920 + 4927 Created @@ -98531,7 +98531,7 @@

full-stack-fastapi-template (link)

Last Updated - 2024-11-13T02:18:19Z + 2024-11-14T01:52:20Z Archived @@ -99755,7 +99755,7 @@

spring-boot-starter-tomcat (link)

Last Updated - 2024-11-11T20:15:41Z + 2024-11-13T17:19:45Z Archived @@ -108409,7 +108409,7 @@

Microsoft.OpenApi.net (link)

Stars - 1408 + 1409 Watchers @@ -108425,7 +108425,7 @@

Microsoft.OpenApi.net (link)

Last Updated - 2024-11-12T17:37:58Z + 2024-11-13T22:55:17Z Archived @@ -108970,7 +108970,7 @@

Tcases for OpenAPI (link)

Stars - 219 + 220 Watchers @@ -108986,7 +108986,7 @@

Tcases for OpenAPI (link)

Last Updated - 2024-11-04T10:00:23Z + 2024-11-14T01:36:23Z Archived @@ -110720,7 +110720,7 @@

LoopBack 4 (link)

Last Updated - 2024-11-13T02:32:13Z + 2024-11-13T17:58:14Z Archived @@ -110814,7 +110814,7 @@

RESTler (link)

Forks - 302 + 303 Created @@ -112140,7 +112140,7 @@

Vert.x Web API Service (link)

Forks - 535 + 536 Created diff --git a/docs/categories/auto-generators.html b/docs/categories/auto-generators.html index 6fdaa539..85ed0ba6 100644 --- a/docs/categories/auto-generators.html +++ b/docs/categories/auto-generators.html @@ -91,7 +91,7 @@

Yes No No - 1236 + 1237 @@ -114,7 +114,7 @@

No Yes No - 5098 + 5099 @@ -137,7 +137,7 @@

No Yes No - 528 + 529 @@ -250,7 +250,7 @@

Yes Yes No - 3949 + 3952 @@ -273,7 +273,7 @@

No Yes No - 4496 + 4501 @@ -296,7 +296,7 @@

No Yes No - 900 + 901 @@ -319,7 +319,7 @@

Yes Yes No - 2115 + 2118 @@ -373,7 +373,7 @@

Scramble (link)

Stars - 1236 + 1237 Watchers @@ -381,7 +381,7 @@

Scramble (link)

Forks - 118 + 119 Created @@ -389,7 +389,7 @@

Scramble (link)

Last Updated - 2024-11-13T01:38:58Z + 2024-11-14T03:35:15Z Archived @@ -424,7 +424,7 @@

mitmproxy2swagger (link)

Stars - 5098 + 5099 Watchers @@ -440,7 +440,7 @@

mitmproxy2swagger (link)

Last Updated - 2024-11-12T10:20:11Z + 2024-11-13T21:54:27Z Archived @@ -475,7 +475,7 @@

OpenApiSpecGeneratorPlugin (link)

Stars - 528 + 529 Watchers @@ -491,7 +491,7 @@

OpenApiSpecGeneratorPlugin (link)

Last Updated - 2024-11-12T14:57:08Z + 2024-11-13T20:43:16Z Archived @@ -730,7 +730,7 @@

OpenAPI DevTools (link)

Stars - 3949 + 3952 Watchers @@ -746,7 +746,7 @@

OpenAPI DevTools (link)

Last Updated - 2024-11-12T01:25:59Z + 2024-11-13T22:07:15Z Archived @@ -781,7 +781,7 @@

TypeSpec (link)

Stars - 4496 + 4501 Watchers @@ -789,7 +789,7 @@

TypeSpec (link)

Forks - 214 + 215 Created @@ -797,7 +797,7 @@

TypeSpec (link)

Last Updated - 2024-11-13T01:58:56Z + 2024-11-14T03:24:55Z Archived @@ -832,7 +832,7 @@

Fuego (link)

Stars - 900 + 901 Watchers @@ -848,7 +848,7 @@

Fuego (link)

Last Updated - 2024-11-12T15:29:15Z + 2024-11-13T21:37:54Z Archived @@ -883,7 +883,7 @@

Huma (link)

Stars - 2115 + 2118 Watchers @@ -891,7 +891,7 @@

Huma (link)

Forks - 151 + 152 Created @@ -899,7 +899,7 @@

Huma (link)

Last Updated - 2024-11-13T00:11:04Z + 2024-11-14T02:21:16Z Archived diff --git a/docs/categories/code-generators.html b/docs/categories/code-generators.html index 75293bf4..d5917e50 100644 --- a/docs/categories/code-generators.html +++ b/docs/categories/code-generators.html @@ -114,7 +114,7 @@

No Yes Yes - 21827 + 21838 @@ -160,7 +160,7 @@

No Yes Yes - 2969 + 2971 @@ -248,7 +248,7 @@

No Yes Yes - 17035 + 17040 @@ -340,7 +340,7 @@

Yes Yes Yes - 2674 + 2677 @@ -386,7 +386,7 @@

Yes Yes No - 26570 + 26575 @@ -430,7 +430,7 @@

No Yes No - 6303 + 6308 @@ -535,7 +535,7 @@

No Yes No - 205 + 206 @@ -1381,7 +1381,7 @@

No Yes Yes - 3043 + 3073 @@ -2168,7 +2168,7 @@

OpenAPI Generator (link)

Stars - 21827 + 21838 Watchers @@ -2176,7 +2176,7 @@

OpenAPI Generator (link)

Forks - 6583 + 6587 Created @@ -2184,7 +2184,7 @@

OpenAPI Generator (link)

Last Updated - 2024-11-13T03:21:09Z + 2024-11-14T01:48:19Z Archived @@ -2270,7 +2270,7 @@

Kiota Api Client Generator (link)

Stars - 2969 + 2971 Watchers @@ -2278,7 +2278,7 @@

Kiota Api Client Generator (link)

Forks - 207 + 208 Created @@ -2286,7 +2286,7 @@

Kiota Api Client Generator (link)

Last Updated - 2024-11-12T17:42:18Z + 2024-11-14T02:41:40Z Archived @@ -2474,7 +2474,7 @@

Swagger-Codegen (link)

Stars - 17035 + 17040 Watchers @@ -2482,7 +2482,7 @@

Swagger-Codegen (link)

Forks - 6029 + 6030 Created @@ -2490,7 +2490,7 @@

Swagger-Codegen (link)

Last Updated - 2024-11-12T19:25:29Z + 2024-11-13T19:54:15Z Archived @@ -2678,7 +2678,7 @@

🌿 Fern (link)

Stars - 2674 + 2677 Watchers @@ -2694,7 +2694,7 @@

🌿 Fern (link)

Last Updated - 2024-11-13T02:24:47Z + 2024-11-13T21:12:41Z Archived @@ -2780,7 +2780,7 @@

swagger-ui (link)

Stars - 26570 + 26575 Watchers @@ -2788,7 +2788,7 @@

swagger-ui (link)

Forks - 8960 + 8959 Created @@ -2796,7 +2796,7 @@

swagger-ui (link)

Last Updated - 2024-11-13T00:17:02Z + 2024-11-14T02:24:43Z Archived @@ -2882,7 +2882,7 @@

OpenAPI Server Code Generator (oapi-cod Stars - 6303 + 6308 Watchers @@ -2890,7 +2890,7 @@

OpenAPI Server Code Generator (oapi-cod Forks - 865 + 868 Created @@ -2898,7 +2898,7 @@

OpenAPI Server Code Generator (oapi-cod Last Updated - 2024-11-12T23:06:42Z + 2024-11-14T02:18:02Z Archived @@ -3000,7 +3000,7 @@

openapi-generator-cli (link)

Last Updated - 2024-11-12T16:14:41Z + 2024-11-13T14:40:16Z Archived @@ -3137,7 +3137,7 @@

paypal-rest-api-specifications (link) Stars - 205 + 206 Watchers @@ -3145,7 +3145,7 @@

paypal-rest-api-specifications (link) Forks - 140 + 141 Created @@ -3153,7 +3153,7 @@

paypal-rest-api-specifications (link) Last Updated - 2024-11-10T02:32:12Z + 2024-11-13T20:16:23Z Archived @@ -3561,7 +3561,7 @@

hei-admin-api (link)

Last Updated - 2024-11-12T06:09:42Z + 2024-11-13T13:26:19Z Archived @@ -5177,7 +5177,7 @@

orval (link)

Stars - 3043 + 3073 Watchers @@ -5193,7 +5193,7 @@

orval (link)

Last Updated - 2024-11-12T16:38:53Z + 2024-11-14T00:08:06Z Archived @@ -5695,7 +5695,7 @@

kubb (link)

Forks - 67 + 66 Created diff --git a/docs/categories/converters.html b/docs/categories/converters.html index b581d742..43d03299 100644 --- a/docs/categories/converters.html +++ b/docs/categories/converters.html @@ -221,7 +221,7 @@

Yes Yes Yes - 1333 + 1339 @@ -290,7 +290,7 @@

No No Yes - 9545 + 9546 @@ -426,7 +426,7 @@

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

Yes Yes Yes - 926 + 927 @@ -493,7 +493,7 @@

Yes Yes No - 1341 + 1342 @@ -604,7 +604,7 @@

Yes Yes Yes - 5872 + 5882 @@ -625,7 +625,7 @@

No Yes No - 2107 + 2108 @@ -1470,7 +1470,7 @@

@hey-api/openapi-ts (link)

Stars - 1333 + 1339 Watchers @@ -1486,7 +1486,7 @@

@hey-api/openapi-ts (link)

Last Updated - 2024-11-13T00:09:56Z + 2024-11-14T02:02:24Z Archived @@ -1623,7 +1623,7 @@

go-swagger (link)

Stars - 9545 + 9546 Watchers @@ -1631,7 +1631,7 @@

go-swagger (link)

Forks - 1252 + 1253 Created @@ -1639,7 +1639,7 @@

go-swagger (link)

Last Updated - 2024-11-12T23:06:29Z + 2024-11-14T00:26:55Z Archived @@ -1929,7 +1929,7 @@

JSON Schema to OpenAPI Schema (link) Stars - 111 + 112 Watchers @@ -1945,7 +1945,7 @@

JSON Schema to OpenAPI Schema (link) Last Updated - 2024-09-02T14:31:00Z + 2024-11-13T08:35:05Z Archived @@ -1980,7 +1980,7 @@

openapi-to-postman (link)

Stars - 926 + 927 Watchers @@ -1996,7 +1996,7 @@

openapi-to-postman (link)

Last Updated - 2024-11-11T09:55:32Z + 2024-11-13T12:51:50Z Archived @@ -2082,7 +2082,7 @@

openapi-python-client (link)

Stars - 1341 + 1342 Watchers @@ -2098,7 +2098,7 @@

openapi-python-client (link)

Last Updated - 2024-11-12T17:21:39Z + 2024-11-13T13:52:03Z Archived @@ -2337,7 +2337,7 @@

OpenAPI TypeScript (link)

Stars - 5872 + 5882 Watchers @@ -2353,7 +2353,7 @@

OpenAPI TypeScript (link)

Last Updated - 2024-11-13T03:25:14Z + 2024-11-14T01:57:14Z Archived @@ -2388,7 +2388,7 @@

gnostic (link)

Stars - 2107 + 2108 Watchers @@ -2404,7 +2404,7 @@

gnostic (link)

Last Updated - 2024-11-11T08:05:33Z + 2024-11-14T03:22:45Z Archived diff --git a/docs/categories/data-validators.html b/docs/categories/data-validators.html index 941d0210..44d728ce 100644 --- a/docs/categories/data-validators.html +++ b/docs/categories/data-validators.html @@ -112,7 +112,7 @@

No Yes Yes - 3566 + 3570 @@ -309,7 +309,7 @@

No Yes Yes - 2624 + 2626 @@ -349,7 +349,7 @@

Yes Yes No - 527 + 528 @@ -573,7 +573,7 @@

Yes Yes Yes - 190 + 192 @@ -640,7 +640,7 @@

Yes Yes Yes - 123 + 124 @@ -663,7 +663,7 @@

No Yes No - 900 + 901 @@ -686,7 +686,7 @@

Yes Yes No - 2115 + 2118 @@ -2019,7 +2019,7 @@

tsoa (link)

Stars - 3566 + 3570 Watchers @@ -2035,7 +2035,7 @@

tsoa (link)

Last Updated - 2024-11-12T11:59:43Z + 2024-11-14T00:50:27Z Archived @@ -2478,7 +2478,7 @@

kin-openapi (link)

Stars - 2624 + 2626 Watchers @@ -2486,7 +2486,7 @@

kin-openapi (link)

Forks - 429 + 430 Created @@ -2494,7 +2494,7 @@

kin-openapi (link)

Last Updated - 2024-11-12T12:17:46Z + 2024-11-13T21:06:29Z Archived @@ -2580,7 +2580,7 @@

openapi-psr7-validator (link)

Stars - 527 + 528 Watchers @@ -2596,7 +2596,7 @@

openapi-psr7-validator (link)

Last Updated - 2024-11-12T03:23:53Z + 2024-11-13T20:54:23Z Archived @@ -3090,7 +3090,7 @@

openapi-changes (link)

Stars - 190 + 192 Watchers @@ -3106,7 +3106,7 @@

openapi-changes (link)

Last Updated - 2024-11-10T23:34:28Z + 2024-11-13T19:42:13Z Archived @@ -3243,7 +3243,7 @@

wiretap (link)

Stars - 123 + 124 Watchers @@ -3259,7 +3259,7 @@

wiretap (link)

Last Updated - 2024-11-09T20:21:46Z + 2024-11-14T03:34:17Z Archived @@ -3294,7 +3294,7 @@

Fuego (link)

Stars - 900 + 901 Watchers @@ -3310,7 +3310,7 @@

Fuego (link)

Last Updated - 2024-11-12T15:29:15Z + 2024-11-13T21:37:54Z Archived @@ -3345,7 +3345,7 @@

Huma (link)

Stars - 2115 + 2118 Watchers @@ -3353,7 +3353,7 @@

Huma (link)

Forks - 151 + 152 Created @@ -3361,7 +3361,7 @@

Huma (link)

Last Updated - 2024-11-13T00:11:04Z + 2024-11-14T02:21:16Z Archived @@ -4879,7 +4879,7 @@

openapi-schemas-validator (link)

Watchers - 22 + 24 Forks diff --git a/docs/categories/description-validators.html b/docs/categories/description-validators.html index 921236e5..285e61dd 100644 --- a/docs/categories/description-validators.html +++ b/docs/categories/description-validators.html @@ -197,7 +197,7 @@

Yes Yes Yes - 2527 + 2529 @@ -239,7 +239,7 @@

Yes Yes Yes - 500 + 501 @@ -262,7 +262,7 @@

Yes Yes Yes - 941 + 943 @@ -1912,7 +1912,7 @@

Spectral (link)

Stars - 2527 + 2529 Watchers @@ -1920,7 +1920,7 @@

Spectral (link)

Forks - 240 + 241 Created @@ -1928,7 +1928,7 @@

Spectral (link)

Last Updated - 2024-11-12T17:03:26Z + 2024-11-14T02:36:51Z Archived @@ -2014,7 +2014,7 @@

OpenAPI Validator (link)

Stars - 500 + 501 Watchers @@ -2030,7 +2030,7 @@

OpenAPI Validator (link)

Last Updated - 2024-11-12T21:39:30Z + 2024-11-13T10:06:45Z Archived @@ -2065,7 +2065,7 @@

Redocly CLI (link)

Stars - 941 + 943 Watchers @@ -2081,7 +2081,7 @@

Redocly CLI (link)

Last Updated - 2024-11-12T17:05:19Z + 2024-11-13T19:27:21Z Archived @@ -2171,7 +2171,7 @@

php-openapi (link)

Watchers - 22 + 21 Forks @@ -2183,7 +2183,7 @@

php-openapi (link)

Last Updated - 2024-11-12T01:13:05Z + 2024-11-13T16:13:29Z Archived @@ -2634,7 +2634,7 @@

openapi-schema-validator (link)

Forks - 6 + 7 Created @@ -2642,7 +2642,7 @@

openapi-schema-validator (link)

Last Updated - 2024-11-12T17:47:28Z + 2024-11-13T22:02:11Z Archived @@ -2787,7 +2787,7 @@

openapi.tools (link)

Forks - 326 + 325 Created diff --git a/docs/categories/documentation.html b/docs/categories/documentation.html index 6220dce9..c996506a 100644 --- a/docs/categories/documentation.html +++ b/docs/categories/documentation.html @@ -169,7 +169,7 @@

Yes Yes Yes - 7207 + 7280 @@ -192,7 +192,7 @@

Yes No No - 1236 + 1237 @@ -215,7 +215,7 @@

No Yes No - 1746 + 1748 @@ -259,7 +259,7 @@

Yes Yes Yes - 23590 + 23599 @@ -544,7 +544,7 @@

Yes Yes Yes - 941 + 943 @@ -634,7 +634,7 @@

Yes Yes No - 3949 + 3952 @@ -657,7 +657,7 @@

Yes Yes No - 919 + 921 @@ -722,7 +722,7 @@

Yes Yes Yes - 1800 + 1803 @@ -877,7 +877,7 @@

Yes Yes Yes - 190 + 192 @@ -959,7 +959,7 @@

Yes Yes Yes - 2674 + 2677 @@ -1093,7 +1093,7 @@

No Yes No - 1708 + 1710 @@ -2602,15 +2602,15 @@

Scalar (link)

Stars - 7207 + 7280 Watchers - 23 + 24 Forks - 221 + 226 Created @@ -2618,7 +2618,7 @@

Scalar (link)

Last Updated - 2024-11-13T03:25:49Z + 2024-11-14T03:28:13Z Archived @@ -2653,7 +2653,7 @@

Scramble (link)

Stars - 1236 + 1237 Watchers @@ -2661,7 +2661,7 @@

Scramble (link)

Forks - 118 + 119 Created @@ -2669,7 +2669,7 @@

Scramble (link)

Last Updated - 2024-11-13T01:38:58Z + 2024-11-14T03:35:15Z Archived @@ -2704,7 +2704,7 @@

Scribe (link)

Stars - 1746 + 1748 Watchers @@ -2720,7 +2720,7 @@

Scribe (link)

Last Updated - 2024-11-12T17:56:56Z + 2024-11-13T20:20:07Z Archived @@ -2806,7 +2806,7 @@

ReDoc (link)

Stars - 23590 + 23599 Watchers @@ -2822,7 +2822,7 @@

ReDoc (link)

Last Updated - 2024-11-12T14:41:29Z + 2024-11-14T01:59:20Z Archived @@ -2975,7 +2975,7 @@

OpenAPI-UI (link)

Last Updated - 2024-11-12T16:37:47Z + 2024-11-13T05:47:57Z Archived @@ -3469,7 +3469,7 @@

Redocly CLI (link)

Stars - 941 + 943 Watchers @@ -3485,7 +3485,7 @@

Redocly CLI (link)

Last Updated - 2024-11-12T17:05:19Z + 2024-11-13T19:27:21Z Archived @@ -3673,7 +3673,7 @@

OpenAPI DevTools (link)

Stars - 3949 + 3952 Watchers @@ -3689,7 +3689,7 @@

OpenAPI DevTools (link)

Last Updated - 2024-11-12T01:25:59Z + 2024-11-13T22:07:15Z Archived @@ -3724,7 +3724,7 @@

Restish (link)

Stars - 919 + 921 Watchers @@ -3740,7 +3740,7 @@

Restish (link)

Last Updated - 2024-11-09T14:32:02Z + 2024-11-13T21:39:21Z Archived @@ -3877,7 +3877,7 @@

Elements (link)

Stars - 1800 + 1803 Watchers @@ -3893,7 +3893,7 @@

Elements (link)

Last Updated - 2024-11-10T11:54:42Z + 2024-11-13T18:06:54Z Archived @@ -4234,7 +4234,7 @@

openapi-changes (link)

Stars - 190 + 192 Watchers @@ -4250,7 +4250,7 @@

openapi-changes (link)

Last Updated - 2024-11-10T23:34:28Z + 2024-11-13T19:42:13Z Archived @@ -4438,7 +4438,7 @@

🌿 Fern (link)

Stars - 2674 + 2677 Watchers @@ -4454,7 +4454,7 @@

🌿 Fern (link)

Last Updated - 2024-11-13T02:24:47Z + 2024-11-13T21:12:41Z Archived @@ -4709,7 +4709,7 @@

Zudoku (link)

Last Updated - 2024-11-12T14:51:15Z + 2024-11-13T18:50:16Z Archived @@ -4744,7 +4744,7 @@

rapidoc (link)

Stars - 1708 + 1710 Watchers @@ -4760,7 +4760,7 @@

rapidoc (link)

Last Updated - 2024-11-10T22:53:05Z + 2024-11-13T22:56:48Z Archived diff --git a/docs/categories/dsl.html b/docs/categories/dsl.html index bc74759f..630f8db0 100644 --- a/docs/categories/dsl.html +++ b/docs/categories/dsl.html @@ -215,7 +215,7 @@

No Yes No - 2003 + 2005 @@ -619,7 +619,7 @@

rswag (link)

Stars - 2003 + 2005 Watchers @@ -627,7 +627,7 @@

rswag (link)

Forks - 432 + 433 Created @@ -635,7 +635,7 @@

rswag (link)

Last Updated - 2024-11-12T09:26:29Z + 2024-11-13T14:19:48Z Archived diff --git a/docs/categories/gateway.html b/docs/categories/gateway.html index 467fcaab..5f5fccb8 100644 --- a/docs/categories/gateway.html +++ b/docs/categories/gateway.html @@ -217,7 +217,7 @@

Yes Yes Yes - 123 + 124 @@ -565,7 +565,7 @@

Serverless API Gateway (link)

Last Updated - 2024-11-12T15:57:11Z + 2024-11-13T17:13:25Z Archived @@ -600,7 +600,7 @@

wiretap (link)

Stars - 123 + 124 Watchers @@ -616,7 +616,7 @@

wiretap (link)

Last Updated - 2024-11-09T20:21:46Z + 2024-11-14T03:34:17Z Archived diff --git a/docs/categories/gui-editors.html b/docs/categories/gui-editors.html index fa74c3e8..b5c1e67f 100644 --- a/docs/categories/gui-editors.html +++ b/docs/categories/gui-editors.html @@ -680,7 +680,7 @@

Apicurio Studio (link)

Forks - 498 + 499 Created @@ -688,7 +688,7 @@

Apicurio Studio (link)

Last Updated - 2024-11-12T19:10:25Z + 2024-11-13T18:55:36Z Archived diff --git a/docs/categories/low-level-tooling.html b/docs/categories/low-level-tooling.html index 0187a64c..50324c6b 100644 --- a/docs/categories/low-level-tooling.html +++ b/docs/categories/low-level-tooling.html @@ -91,7 +91,7 @@

No Yes No - 3291 + 3292 @@ -219,7 +219,7 @@

No Yes No - 109 + 110 @@ -1300,7 +1300,7 @@

No No No - 1408 + 1409 @@ -1440,7 +1440,7 @@

springdoc-openapi (link)

Stars - 3291 + 3292 Watchers @@ -1456,7 +1456,7 @@

springdoc-openapi (link)

Last Updated - 2024-11-12T13:00:00Z + 2024-11-14T03:35:46Z Archived @@ -1609,7 +1609,7 @@

openapi.net.odata (link)

Last Updated - 2024-11-10T20:49:07Z + 2024-11-13T19:45:17Z Archived @@ -1746,7 +1746,7 @@

api-docs (link)

Stars - 109 + 110 Watchers @@ -1762,7 +1762,7 @@

api-docs (link)

Last Updated - 2024-10-28T23:34:41Z + 2024-11-13T08:03:25Z Archived @@ -4347,7 +4347,7 @@

Microsoft.OpenApi.net (link)

Stars - 1408 + 1409 Watchers @@ -4363,7 +4363,7 @@

Microsoft.OpenApi.net (link)

Last Updated - 2024-11-12T17:37:58Z + 2024-11-13T22:55:17Z Archived diff --git a/docs/categories/mock-testing.html b/docs/categories/mock-testing.html index 193634f9..c21237d5 100644 --- a/docs/categories/mock-testing.html +++ b/docs/categories/mock-testing.html @@ -91,7 +91,7 @@

Yes Yes Yes - 1405 + 1406 @@ -145,7 +145,7 @@

Microcks (link)

Stars - 1405 + 1406 Watchers @@ -161,7 +161,7 @@

Microcks (link)

Last Updated - 2024-11-10T04:17:08Z + 2024-11-13T21:56:13Z Archived diff --git a/docs/categories/mock.html b/docs/categories/mock.html index bc7575d0..dc93084e 100644 --- a/docs/categories/mock.html +++ b/docs/categories/mock.html @@ -110,7 +110,7 @@

Yes Yes Yes - 4319 + 4322 @@ -543,7 +543,7 @@

No Yes Yes - 3043 + 3073 @@ -821,7 +821,7 @@

Prism (link)

Stars - 4319 + 4322 Watchers @@ -829,7 +829,7 @@

Prism (link)

Forks - 349 + 350 Created @@ -837,7 +837,7 @@

Prism (link)

Last Updated - 2024-11-12T09:30:01Z + 2024-11-13T23:37:34Z Archived @@ -1449,7 +1449,7 @@

Specmatic (link)

Last Updated - 2024-11-12T15:59:16Z + 2024-11-13T11:31:57Z Archived @@ -1841,7 +1841,7 @@

orval (link)

Stars - 3043 + 3073 Watchers @@ -1857,7 +1857,7 @@

orval (link)

Last Updated - 2024-11-12T16:38:53Z + 2024-11-14T00:08:06Z Archived diff --git a/docs/categories/parsers.html b/docs/categories/parsers.html index 0bca9732..58f125e7 100644 --- a/docs/categories/parsers.html +++ b/docs/categories/parsers.html @@ -91,7 +91,7 @@

Yes Yes Yes - 23590 + 23599 @@ -114,7 +114,7 @@

No Yes No - 745 + 746 @@ -474,7 +474,7 @@

No Yes Yes - 3566 + 3570 @@ -719,7 +719,7 @@

No Yes Yes - 2624 + 2626 @@ -828,7 +828,7 @@

No Yes Yes - 1408 + 1409 @@ -918,7 +918,7 @@

No No Yes - 9545 + 9546 @@ -1102,7 +1102,7 @@

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

Yes Yes Yes - 926 + 927 @@ -1391,7 +1391,7 @@

Yes Yes No - 1341 + 1342 @@ -1529,7 +1529,7 @@

Yes Yes Yes - 474 + 475 @@ -1686,7 +1686,7 @@

No Yes No - 2003 + 2005 @@ -1801,7 +1801,7 @@

Yes Yes No - 23590 + 23599 @@ -1885,7 +1885,7 @@

No Yes No - 962 + 964 @@ -1927,7 +1927,7 @@

No Yes No - 830 + 831 @@ -2221,7 +2221,7 @@

No Yes No - 292 + 293 @@ -2456,7 +2456,7 @@

No Yes No - 194 + 195 @@ -2540,7 +2540,7 @@

No Yes No - 139 + 141 @@ -2605,7 +2605,7 @@

Yes Yes No - 122 + 123 @@ -2689,7 +2689,7 @@

No Yes No - 116 + 115 @@ -3193,7 +3193,7 @@

No Yes No - 56 + 57 @@ -3640,7 +3640,7 @@

No Yes No - 32 + 33 @@ -8077,7 +8077,7 @@

No Yes No - 4 + 8 @@ -8875,7 +8875,7 @@

Yes Yes No - 2466 + 2469 @@ -10580,7 +10580,7 @@

No No No - 1408 + 1409 @@ -11089,7 +11089,7 @@

ReDoc (link)

Stars - 23590 + 23599 Watchers @@ -11105,7 +11105,7 @@

ReDoc (link)

Last Updated - 2024-11-12T14:41:29Z + 2024-11-14T01:59:20Z Archived @@ -11140,7 +11140,7 @@

oasdiff (link)

Stars - 745 + 746 Watchers @@ -11156,7 +11156,7 @@

oasdiff (link)

Last Updated - 2024-11-12T22:36:29Z + 2024-11-13T10:44:01Z Archived @@ -11956,7 +11956,7 @@

tsoa (link)

Stars - 3566 + 3570 Watchers @@ -11972,7 +11972,7 @@

tsoa (link)

Last Updated - 2024-11-12T11:59:43Z + 2024-11-14T00:50:27Z Archived @@ -12011,7 +12011,7 @@

@smartrecruiters/openapi-first (link) Watchers - 23 + 25 Forks @@ -12517,7 +12517,7 @@

kin-openapi (link)

Stars - 2624 + 2626 Watchers @@ -12525,7 +12525,7 @@

kin-openapi (link)

Forks - 429 + 430 Created @@ -12533,7 +12533,7 @@

kin-openapi (link)

Last Updated - 2024-11-12T12:17:46Z + 2024-11-13T21:06:29Z Archived @@ -12572,7 +12572,7 @@

php-openapi (link)

Watchers - 22 + 21 Forks @@ -12584,7 +12584,7 @@

php-openapi (link)

Last Updated - 2024-11-12T01:13:05Z + 2024-11-13T16:13:29Z Archived @@ -12772,7 +12772,7 @@

Microsoft/OpenAPI.NET (link)

Stars - 1408 + 1409 Watchers @@ -12788,7 +12788,7 @@

Microsoft/OpenAPI.NET (link)

Last Updated - 2024-11-12T17:37:58Z + 2024-11-13T22:55:17Z Archived @@ -12976,7 +12976,7 @@

go-swagger (link)

Stars - 9545 + 9546 Watchers @@ -12984,7 +12984,7 @@

go-swagger (link)

Forks - 1252 + 1253 Created @@ -12992,7 +12992,7 @@

go-swagger (link)

Last Updated - 2024-11-12T23:06:29Z + 2024-11-14T00:26:55Z Archived @@ -13384,7 +13384,7 @@

JSON Schema to OpenAPI Schema (link) Stars - 111 + 112 Watchers @@ -13400,7 +13400,7 @@

JSON Schema to OpenAPI Schema (link) Last Updated - 2024-09-02T14:31:00Z + 2024-11-13T08:35:05Z Archived @@ -13690,7 +13690,7 @@

openapi-to-postman (link)

Stars - 926 + 927 Watchers @@ -13706,7 +13706,7 @@

openapi-to-postman (link)

Last Updated - 2024-11-11T09:55:32Z + 2024-11-13T12:51:50Z Archived @@ -14047,7 +14047,7 @@

openapi-python-client (link)

Stars - 1341 + 1342 Watchers @@ -14063,7 +14063,7 @@

openapi-python-client (link)

Last Updated - 2024-11-12T17:21:39Z + 2024-11-13T13:52:03Z Archived @@ -14353,7 +14353,7 @@

libopenapi (link)

Stars - 474 + 475 Watchers @@ -14369,7 +14369,7 @@

libopenapi (link)

Last Updated - 2024-11-12T13:33:54Z + 2024-11-13T14:37:39Z Archived @@ -14710,7 +14710,7 @@

rswag (link)

Stars - 2003 + 2005 Watchers @@ -14718,7 +14718,7 @@

rswag (link)

Forks - 432 + 433 Created @@ -14726,7 +14726,7 @@

rswag (link)

Last Updated - 2024-11-12T09:26:29Z + 2024-11-13T14:19:48Z Archived @@ -14965,7 +14965,7 @@

Redoc (link)

Stars - 23590 + 23599 Watchers @@ -14981,7 +14981,7 @@

Redoc (link)

Last Updated - 2024-11-12T14:41:29Z + 2024-11-14T01:59:20Z Archived @@ -15032,7 +15032,7 @@

openapi-generator-cli (link)

Last Updated - 2024-11-12T16:14:41Z + 2024-11-13T14:40:16Z Archived @@ -15083,7 +15083,7 @@

ogen (link)

Last Updated - 2024-11-11T23:59:34Z + 2024-11-13T12:28:03Z Archived @@ -15169,7 +15169,7 @@

zod-to-openapi (link)

Stars - 962 + 964 Watchers @@ -15185,7 +15185,7 @@

zod-to-openapi (link)

Last Updated - 2024-11-12T19:06:42Z + 2024-11-13T22:57:27Z Archived @@ -15271,7 +15271,7 @@

openapi-diff (link)

Stars - 830 + 831 Watchers @@ -15287,7 +15287,7 @@

openapi-diff (link)

Last Updated - 2024-11-12T19:28:55Z + 2024-11-13T10:45:03Z Archived @@ -15491,7 +15491,7 @@

awesome-openapi3 (link)

Last Updated - 2024-11-13T00:01:14Z + 2024-11-14T00:01:17Z Archived @@ -15985,7 +15985,7 @@

zod-openapi (link)

Stars - 292 + 293 Watchers @@ -16001,7 +16001,7 @@

zod-openapi (link)

Last Updated - 2024-11-12T15:59:20Z + 2024-11-13T12:40:55Z Archived @@ -16256,7 +16256,7 @@

openapi.net.odata (link)

Last Updated - 2024-11-10T20:49:07Z + 2024-11-13T19:45:17Z Archived @@ -16460,7 +16460,7 @@

speakeasy (link)

Last Updated - 2024-11-12T13:59:56Z + 2024-11-14T00:19:12Z Archived @@ -16546,7 +16546,7 @@

refitter (link)

Stars - 194 + 195 Watchers @@ -16562,7 +16562,7 @@

refitter (link)

Last Updated - 2024-11-08T14:39:33Z + 2024-11-13T08:10:00Z Archived @@ -16703,7 +16703,7 @@

openapi-starter (link)

Watchers - 19 + 20 Forks @@ -16750,7 +16750,7 @@

apistos (link)

Stars - 139 + 141 Watchers @@ -16766,7 +16766,7 @@

apistos (link)

Last Updated - 2024-11-11T09:31:22Z + 2024-11-13T13:32:26Z Archived @@ -16903,7 +16903,7 @@

learn.openapis.org (link)

Stars - 122 + 123 Watchers @@ -16919,7 +16919,7 @@

learn.openapis.org (link)

Last Updated - 2024-11-10T11:37:00Z + 2024-11-13T09:23:54Z Archived @@ -17107,7 +17107,7 @@

openapi-schema-pydantic (link)

Stars - 116 + 115 Watchers @@ -17123,7 +17123,7 @@

openapi-schema-pydantic (link)

Last Updated - 2024-11-11T23:25:15Z + 2024-11-14T01:55:05Z Archived @@ -17268,7 +17268,7 @@

openapi (link)

Forks - 74 + 75 Created @@ -17276,7 +17276,7 @@

openapi (link)

Last Updated - 2024-11-06T21:11:45Z + 2024-11-13T21:24:55Z Archived @@ -17888,7 +17888,7 @@

apidom (link)

Last Updated - 2024-11-12T17:24:46Z + 2024-11-13T23:49:15Z Archived @@ -18331,7 +18331,7 @@

rest (link)

Stars - 56 + 57 Watchers @@ -18347,7 +18347,7 @@

rest (link)

Last Updated - 2024-11-09T21:36:13Z + 2024-11-13T13:39:28Z Archived @@ -19402,7 +19402,7 @@

aspnetcore.scalar (link)

Stars - 32 + 33 Watchers @@ -19418,7 +19418,7 @@

aspnetcore.scalar (link)

Last Updated - 2024-11-03T12:24:02Z + 2024-11-13T03:47:38Z Archived @@ -19877,7 +19877,7 @@

shipengine-openapi (link)

Last Updated - 2024-11-09T01:34:01Z + 2024-11-13T16:05:42Z Archived @@ -22070,7 +22070,7 @@

responsible (link)

Last Updated - 2024-11-13T00:32:33Z + 2024-11-13T12:47:37Z Archived @@ -28025,7 +28025,7 @@

openapi-schemas-validator (link)

Watchers - 22 + 24 Forks @@ -28139,7 +28139,7 @@

goapi (link)

Last Updated - 2024-11-12T03:09:37Z + 2024-11-13T09:13:24Z Archived @@ -30163,7 +30163,7 @@

r5t (link)

Stars - 4 + 8 Watchers @@ -30179,7 +30179,7 @@

r5t (link)

Last Updated - 2024-11-12T13:56:32Z + 2024-11-13T06:25:12Z Archived @@ -32101,7 +32101,7 @@

utoipa (link)

Stars - 2466 + 2469 Watchers @@ -32117,7 +32117,7 @@

utoipa (link)

Last Updated - 2024-11-12T05:32:37Z + 2024-11-13T22:22:05Z Archived @@ -36232,7 +36232,7 @@

Microsoft.OpenApi.net (link)

Stars - 1408 + 1409 Watchers @@ -36248,7 +36248,7 @@

Microsoft.OpenApi.net (link)

Last Updated - 2024-11-12T17:37:58Z + 2024-11-13T22:55:17Z Archived diff --git a/docs/categories/sdk.html b/docs/categories/sdk.html index 4dfeb02e..46400923 100644 --- a/docs/categories/sdk.html +++ b/docs/categories/sdk.html @@ -114,7 +114,7 @@

No Yes Yes - 21827 + 21838 @@ -160,7 +160,7 @@

No Yes Yes - 2969 + 2971 @@ -206,7 +206,7 @@

Yes Yes Yes - 1405 + 1406 @@ -229,7 +229,7 @@

Yes Yes Yes - 1333 + 1339 @@ -313,7 +313,7 @@

No No Yes - 9545 + 9546 @@ -382,7 +382,7 @@

No Yes Yes - 6783 + 6785 @@ -537,7 +537,7 @@

No Yes Yes - 12732 + 12737 @@ -765,7 +765,7 @@

Yes Yes Yes - 2674 + 2677 @@ -832,7 +832,7 @@

Yes Yes No - 1435 + 1436 @@ -878,7 +878,7 @@

Yes Yes Yes - 5872 + 5882 @@ -899,7 +899,7 @@

No Yes No - 4136 + 4138 @@ -920,7 +920,7 @@

No Yes No - 3880 + 3881 @@ -1004,7 +1004,7 @@

No Yes No - 294 + 295 @@ -1403,7 +1403,7 @@

No Yes No - 14 + 15 @@ -3190,7 +3190,7 @@

OpenAPI Generator (link)

Stars - 21827 + 21838 Watchers @@ -3198,7 +3198,7 @@

OpenAPI Generator (link)

Forks - 6583 + 6587 Created @@ -3206,7 +3206,7 @@

OpenAPI Generator (link)

Last Updated - 2024-11-13T03:21:09Z + 2024-11-14T01:48:19Z Archived @@ -3292,7 +3292,7 @@

Kiota Api Client Generator (link)

Stars - 2969 + 2971 Watchers @@ -3300,7 +3300,7 @@

Kiota Api Client Generator (link)

Forks - 207 + 208 Created @@ -3308,7 +3308,7 @@

Kiota Api Client Generator (link)

Last Updated - 2024-11-12T17:42:18Z + 2024-11-14T02:41:40Z Archived @@ -3394,7 +3394,7 @@

Microcks (link)

Stars - 1405 + 1406 Watchers @@ -3410,7 +3410,7 @@

Microcks (link)

Last Updated - 2024-11-10T04:17:08Z + 2024-11-13T21:56:13Z Archived @@ -3445,7 +3445,7 @@

@hey-api/openapi-ts (link)

Stars - 1333 + 1339 Watchers @@ -3461,7 +3461,7 @@

@hey-api/openapi-ts (link)

Last Updated - 2024-11-13T00:09:56Z + 2024-11-14T02:02:24Z Archived @@ -3649,7 +3649,7 @@

go-swagger (link)

Stars - 9545 + 9546 Watchers @@ -3657,7 +3657,7 @@

go-swagger (link)

Forks - 1252 + 1253 Created @@ -3665,7 +3665,7 @@

go-swagger (link)

Last Updated - 2024-11-12T23:06:29Z + 2024-11-14T00:26:55Z Archived @@ -3802,7 +3802,7 @@

NSwag (link)

Stars - 6783 + 6785 Watchers @@ -3818,7 +3818,7 @@

NSwag (link)

Last Updated - 2024-11-13T03:16:42Z + 2024-11-14T03:21:15Z Archived @@ -3908,7 +3908,7 @@

Azure AutoRest (link)

Watchers - 911 + 912 Forks @@ -4159,7 +4159,7 @@

OWASP ZAP (link)

Stars - 12732 + 12737 Watchers @@ -4175,7 +4175,7 @@

OWASP ZAP (link)

Last Updated - 2024-11-12T18:37:25Z + 2024-11-13T21:21:53Z Archived @@ -4669,7 +4669,7 @@

🌿 Fern (link)

Stars - 2674 + 2677 Watchers @@ -4685,7 +4685,7 @@

🌿 Fern (link)

Last Updated - 2024-11-13T02:24:47Z + 2024-11-13T21:12:41Z Archived @@ -4822,11 +4822,11 @@

Swift OpenAPI Generator (link)

Stars - 1435 + 1436 Watchers - 114 + 115 Forks @@ -4838,7 +4838,7 @@

Swift OpenAPI Generator (link)

Last Updated - 2024-11-12T20:53:51Z + 2024-11-13T15:58:50Z Archived @@ -4924,7 +4924,7 @@

OpenAPI TypeScript (link)

Stars - 5872 + 5882 Watchers @@ -4940,7 +4940,7 @@

OpenAPI TypeScript (link)

Last Updated - 2024-11-13T03:25:14Z + 2024-11-14T01:57:14Z Archived @@ -4975,7 +4975,7 @@

knife4j (link)

Stars - 4136 + 4138 Watchers @@ -4991,7 +4991,7 @@

knife4j (link)

Last Updated - 2024-11-12T08:53:38Z + 2024-11-13T16:53:14Z Archived @@ -5026,7 +5026,7 @@

openapi-directory (link)

Stars - 3880 + 3881 Watchers @@ -5042,7 +5042,7 @@

openapi-directory (link)

Last Updated - 2024-11-12T17:22:59Z + 2024-11-13T23:38:58Z Archived @@ -5230,7 +5230,7 @@

openapi-react-query-codegen (link)

Stars - 294 + 295 Watchers @@ -5238,7 +5238,7 @@

openapi-react-query-codegen (link)

Forks - 28 + 30 Created @@ -5246,7 +5246,7 @@

openapi-react-query-codegen (link)

Last Updated - 2024-11-12T14:05:23Z + 2024-11-13T09:21:57Z Archived @@ -5442,7 +5442,7 @@

apiclientcodegen (link)

Forks - 23 + 24 Created @@ -5501,7 +5501,7 @@

openapi-to-plantuml (link)

Last Updated - 2024-11-11T11:00:27Z + 2024-11-13T17:55:16Z Archived @@ -6199,7 +6199,7 @@

sofia-supermarkets-api (link)

Stars - 14 + 15 Watchers @@ -6215,7 +6215,7 @@

sofia-supermarkets-api (link)

Last Updated - 2024-11-12T15:15:33Z + 2024-11-13T18:55:13Z Archived diff --git a/docs/categories/security.html b/docs/categories/security.html index 8cc7d470..f87e873f 100644 --- a/docs/categories/security.html +++ b/docs/categories/security.html @@ -240,7 +240,7 @@

No Yes Yes - 12732 + 12737 @@ -737,7 +737,7 @@

OWASP ZAP (link)

Stars - 12732 + 12737 Watchers @@ -753,7 +753,7 @@

OWASP ZAP (link)

Last Updated - 2024-11-12T18:37:25Z + 2024-11-13T21:21:53Z Archived @@ -949,7 +949,7 @@

RESTler (link)

Forks - 302 + 303 Created diff --git a/docs/categories/server-implementations.html b/docs/categories/server-implementations.html index 85ca4c49..6ff0328a 100644 --- a/docs/categories/server-implementations.html +++ b/docs/categories/server-implementations.html @@ -137,7 +137,7 @@

Yes No No - 1236 + 1237 @@ -298,7 +298,7 @@

Yes Yes Yes - 8934 + 8935 @@ -344,7 +344,7 @@

Yes Yes Yes - 4319 + 4322 @@ -367,7 +367,7 @@

No Yes Yes - 8691 + 8692 @@ -434,7 +434,7 @@

Yes Yes Yes - 941 + 943 @@ -480,7 +480,7 @@

No Yes No - 5098 + 5099 @@ -503,7 +503,7 @@

No Yes No - 528 + 529 @@ -549,7 +549,7 @@

No Yes No - 4496 + 4501 @@ -616,7 +616,7 @@

No Yes No - 28415 + 28423 @@ -800,7 +800,7 @@

No Yes No - 77491 + 77537 @@ -823,7 +823,7 @@

No Yes No - 3291 + 3292 @@ -844,7 +844,7 @@

No Yes No - 2711 + 2712 @@ -865,7 +865,7 @@

No Yes No - 2394 + 2395 @@ -886,7 +886,7 @@

No Yes No - 2396 + 2399 @@ -909,7 +909,7 @@

No Yes No - 2294 + 2295 @@ -930,7 +930,7 @@

No Yes No - 1708 + 1710 @@ -974,7 +974,7 @@

No Yes No - 1038 + 1039 @@ -1039,7 +1039,7 @@

No Yes No - 549 + 550 @@ -1167,7 +1167,7 @@

No Yes No - 367 + 368 @@ -1230,7 +1230,7 @@

No Yes No - 328 + 330 @@ -1461,7 +1461,7 @@

Yes Yes No - 122 + 123 @@ -1566,7 +1566,7 @@

No Yes No - 107 + 108 @@ -2765,7 +2765,7 @@

No Yes No - 14 + 15 @@ -2891,7 +2891,7 @@

No Yes No - 13 + 14 @@ -9405,7 +9405,7 @@

No Yes No - 27615 + 27644 @@ -11927,7 +11927,7 @@

Scramble (link)

Stars - 1236 + 1237 Watchers @@ -11935,7 +11935,7 @@

Scramble (link)

Forks - 118 + 119 Created @@ -11943,7 +11943,7 @@

Scramble (link)

Last Updated - 2024-11-13T01:38:58Z + 2024-11-14T03:35:15Z Archived @@ -12037,7 +12037,7 @@

OpenAPI CRUD Wizard (link)

Forks - 1 + 0 Created @@ -12284,7 +12284,7 @@

Swagger Editor (link)

Stars - 8934 + 8935 Watchers @@ -12300,7 +12300,7 @@

Swagger Editor (link)

Last Updated - 2024-11-12T19:53:14Z + 2024-11-13T19:54:56Z Archived @@ -12343,7 +12343,7 @@

Apicurio Studio (link)

Forks - 498 + 499 Created @@ -12351,7 +12351,7 @@

Apicurio Studio (link)

Last Updated - 2024-11-12T19:10:25Z + 2024-11-13T18:55:36Z Archived @@ -12386,7 +12386,7 @@

Prism (link)

Stars - 4319 + 4322 Watchers @@ -12394,7 +12394,7 @@

Prism (link)

Forks - 349 + 350 Created @@ -12402,7 +12402,7 @@

Prism (link)

Last Updated - 2024-11-12T09:30:01Z + 2024-11-13T23:37:34Z Archived @@ -12437,7 +12437,7 @@

API Platform (link)

Stars - 8691 + 8692 Watchers @@ -12453,7 +12453,7 @@

API Platform (link)

Last Updated - 2024-11-12T19:33:10Z + 2024-11-13T20:33:53Z Archived @@ -12590,7 +12590,7 @@

Redocly CLI (link)

Stars - 941 + 943 Watchers @@ -12606,7 +12606,7 @@

Redocly CLI (link)

Last Updated - 2024-11-12T17:05:19Z + 2024-11-13T19:27:21Z Archived @@ -12692,7 +12692,7 @@

mitmproxy2swagger (link)

Stars - 5098 + 5099 Watchers @@ -12708,7 +12708,7 @@

mitmproxy2swagger (link)

Last Updated - 2024-11-12T10:20:11Z + 2024-11-13T21:54:27Z Archived @@ -12743,7 +12743,7 @@

OpenApiSpecGeneratorPlugin (link)

Stars - 528 + 529 Watchers @@ -12759,7 +12759,7 @@

OpenApiSpecGeneratorPlugin (link)

Last Updated - 2024-11-12T14:57:08Z + 2024-11-13T20:43:16Z Archived @@ -12845,7 +12845,7 @@

TypeSpec (link)

Stars - 4496 + 4501 Watchers @@ -12853,7 +12853,7 @@

TypeSpec (link)

Forks - 214 + 215 Created @@ -12861,7 +12861,7 @@

TypeSpec (link)

Last Updated - 2024-11-13T01:58:56Z + 2024-11-14T03:24:55Z Archived @@ -12998,7 +12998,7 @@

Django REST Framework (link)

Stars - 28415 + 28423 Watchers @@ -13006,7 +13006,7 @@

Django REST Framework (link)

Forks - 6839 + 6841 Created @@ -13014,7 +13014,7 @@

Django REST Framework (link)

Last Updated - 2024-11-12T20:24:02Z + 2024-11-13T22:40:18Z Archived @@ -13320,7 +13320,7 @@

Serverless API Gateway (link)

Last Updated - 2024-11-12T15:57:11Z + 2024-11-13T17:13:25Z Archived @@ -13406,7 +13406,7 @@

FastAPI (link)

Stars - 77491 + 77537 Watchers @@ -13414,7 +13414,7 @@

FastAPI (link)

Forks - 6624 + 6629 Created @@ -13422,7 +13422,7 @@

FastAPI (link)

Last Updated - 2024-11-13T02:52:31Z + 2024-11-14T03:17:19Z Archived @@ -13457,7 +13457,7 @@

springdoc-openapi (link)

Stars - 3291 + 3292 Watchers @@ -13473,7 +13473,7 @@

springdoc-openapi (link)

Last Updated - 2024-11-12T13:00:00Z + 2024-11-14T03:35:46Z Archived @@ -13508,7 +13508,7 @@

uvicorn-gunicorn-fastapi-docker (link)< Stars - 2711 + 2712 Watchers @@ -13524,7 +13524,7 @@

uvicorn-gunicorn-fastapi-docker (link)< Last Updated - 2024-11-12T23:55:35Z + 2024-11-13T10:58:28Z Archived @@ -13559,7 +13559,7 @@

drf-spectacular (link)

Stars - 2394 + 2395 Watchers @@ -13567,7 +13567,7 @@

drf-spectacular (link)

Forks - 265 + 266 Created @@ -13575,7 +13575,7 @@

drf-spectacular (link)

Last Updated - 2024-11-11T12:56:22Z + 2024-11-13T10:00:47Z Archived @@ -13610,7 +13610,7 @@

msgspec (link)

Stars - 2396 + 2399 Watchers @@ -13618,7 +13618,7 @@

msgspec (link)

Forks - 72 + 73 Created @@ -13626,7 +13626,7 @@

msgspec (link)

Last Updated - 2024-11-11T20:43:28Z + 2024-11-13T23:31:17Z Archived @@ -13661,7 +13661,7 @@

Schemathesis (link)

Stars - 2294 + 2295 Watchers @@ -13669,7 +13669,7 @@

Schemathesis (link)

Forks - 163 + 164 Created @@ -13677,7 +13677,7 @@

Schemathesis (link)

Last Updated - 2024-11-12T18:40:42Z + 2024-11-13T10:51:56Z Archived @@ -13712,7 +13712,7 @@

rapidoc (link)

Stars - 1708 + 1710 Watchers @@ -13728,7 +13728,7 @@

rapidoc (link)

Last Updated - 2024-11-10T22:53:05Z + 2024-11-13T22:56:48Z Archived @@ -13814,7 +13814,7 @@

apiflask (link)

Stars - 1038 + 1039 Watchers @@ -13830,7 +13830,7 @@

apiflask (link)

Last Updated - 2024-11-11T16:56:47Z + 2024-11-13T06:49:48Z Archived @@ -13967,7 +13967,7 @@

stackql (link)

Stars - 549 + 550 Watchers @@ -13983,7 +13983,7 @@

stackql (link)

Last Updated - 2024-11-12T21:34:23Z + 2024-11-13T16:35:18Z Archived @@ -14273,7 +14273,7 @@

fastapi-plugins (link)

Stars - 367 + 368 Watchers @@ -14289,7 +14289,7 @@

fastapi-plugins (link)

Last Updated - 2024-11-09T18:00:28Z + 2024-11-13T21:25:20Z Archived @@ -14426,7 +14426,7 @@

chanfana (link)

Stars - 328 + 330 Watchers @@ -14434,7 +14434,7 @@

chanfana (link)

Forks - 41 + 42 Created @@ -14442,7 +14442,7 @@

chanfana (link)

Last Updated - 2024-11-13T00:02:16Z + 2024-11-13T15:29:04Z Archived @@ -14493,7 +14493,7 @@

esmerald (link)

Last Updated - 2024-11-12T17:47:41Z + 2024-11-13T10:41:34Z Archived @@ -14987,7 +14987,7 @@

learn.openapis.org (link)

Stars - 122 + 123 Watchers @@ -15003,7 +15003,7 @@

learn.openapis.org (link)

Last Updated - 2024-11-10T11:37:00Z + 2024-11-13T09:23:54Z Archived @@ -15242,7 +15242,7 @@

tools.openapis.org (link)

Stars - 107 + 108 Watchers @@ -15258,7 +15258,7 @@

tools.openapis.org (link)

Last Updated - 2024-11-12T03:30:24Z + 2024-11-13T09:25:09Z Archived @@ -15411,7 +15411,7 @@

spectral-owasp-ruleset (link)

Last Updated - 2024-10-31T15:08:51Z + 2024-11-13T21:46:07Z Archived @@ -18149,7 +18149,7 @@

flapi (link)

Stars - 14 + 15 Watchers @@ -18165,7 +18165,7 @@

flapi (link)

Last Updated - 2024-11-06T12:48:20Z + 2024-11-13T19:18:38Z Archived @@ -18455,7 +18455,7 @@

frappe-api (link)

Stars - 13 + 14 Watchers @@ -18471,7 +18471,7 @@

frappe-api (link)

Last Updated - 2024-11-12T18:09:50Z + 2024-11-13T04:36:45Z Archived @@ -18828,7 +18828,7 @@

sandbox (link)

Last Updated - 2024-11-08T15:48:31Z + 2024-11-13T15:59:03Z Archived @@ -22449,7 +22449,7 @@

pyapi-server (link)

Last Updated - 2024-11-05T21:54:05Z + 2024-11-13T15:13:00Z Archived @@ -23010,7 +23010,7 @@

kopgen (link)

Last Updated - 2024-11-12T13:50:53Z + 2024-11-14T00:54:47Z Archived @@ -34265,7 +34265,7 @@

full-stack-fastapi-template (link)

Stars - 27615 + 27644 Watchers @@ -34273,7 +34273,7 @@

full-stack-fastapi-template (link)

Forks - 4920 + 4927 Created @@ -34281,7 +34281,7 @@

full-stack-fastapi-template (link)

Last Updated - 2024-11-13T02:18:19Z + 2024-11-14T01:52:20Z Archived @@ -34893,7 +34893,7 @@

spring-boot-starter-tomcat (link)

Last Updated - 2024-11-11T20:15:41Z + 2024-11-13T17:19:45Z Archived diff --git a/docs/categories/server.html b/docs/categories/server.html index 19246a98..d30c4e5e 100644 --- a/docs/categories/server.html +++ b/docs/categories/server.html @@ -114,7 +114,7 @@

No Yes Yes - 3566 + 3570 @@ -229,7 +229,7 @@

No Yes Yes - 8691 + 8692 @@ -342,7 +342,7 @@

No Yes No - 1694 + 1695 @@ -546,7 +546,7 @@

Yes Yes Yes - 2674 + 2677 @@ -569,7 +569,7 @@

Yes Yes No - 1435 + 1436 @@ -592,7 +592,7 @@

No Yes No - 900 + 901 @@ -615,7 +615,7 @@

Yes Yes No - 2115 + 2118 @@ -2922,7 +2922,7 @@

tsoa (link)

Stars - 3566 + 3570 Watchers @@ -2938,7 +2938,7 @@

tsoa (link)

Last Updated - 2024-11-12T11:59:43Z + 2024-11-14T00:50:27Z Archived @@ -2981,7 +2981,7 @@

Vert.x Web Api Contract (link)

Forks - 535 + 536 Created @@ -3032,7 +3032,7 @@

express-openapi (link)

Forks - 236 + 237 Created @@ -3130,7 +3130,7 @@

@smartrecruiters/openapi-first (link) Watchers - 23 + 25 Forks @@ -3177,7 +3177,7 @@

API Platform (link)

Stars - 8691 + 8692 Watchers @@ -3193,7 +3193,7 @@

API Platform (link)

Last Updated - 2024-11-12T19:33:10Z + 2024-11-13T20:33:53Z Archived @@ -3432,7 +3432,7 @@

@nestjs/swagger (link)

Stars - 1694 + 1695 Watchers @@ -3440,7 +3440,7 @@

@nestjs/swagger (link)

Forks - 476 + 477 Created @@ -3448,7 +3448,7 @@

@nestjs/swagger (link)

Last Updated - 2024-11-11T21:02:04Z + 2024-11-13T18:15:09Z Archived @@ -3891,7 +3891,7 @@

🌿 Fern (link)

Stars - 2674 + 2677 Watchers @@ -3907,7 +3907,7 @@

🌿 Fern (link)

Last Updated - 2024-11-13T02:24:47Z + 2024-11-13T21:12:41Z Archived @@ -3942,11 +3942,11 @@

Swift OpenAPI Generator (link)

Stars - 1435 + 1436 Watchers - 114 + 115 Forks @@ -3958,7 +3958,7 @@

Swift OpenAPI Generator (link)

Last Updated - 2024-11-12T20:53:51Z + 2024-11-13T15:58:50Z Archived @@ -3993,7 +3993,7 @@

Fuego (link)

Stars - 900 + 901 Watchers @@ -4009,7 +4009,7 @@

Fuego (link)

Last Updated - 2024-11-12T15:29:15Z + 2024-11-13T21:37:54Z Archived @@ -4044,7 +4044,7 @@

Huma (link)

Stars - 2115 + 2118 Watchers @@ -4052,7 +4052,7 @@

Huma (link)

Forks - 151 + 152 Created @@ -4060,7 +4060,7 @@

Huma (link)

Last Updated - 2024-11-13T00:11:04Z + 2024-11-14T02:21:16Z Archived @@ -9211,7 +9211,7 @@

LoopBack 4 (link)

Last Updated - 2024-11-13T02:32:13Z + 2024-11-13T17:58:14Z Archived @@ -9356,7 +9356,7 @@

Vert.x Web API Service (link)

Forks - 535 + 536 Created diff --git a/docs/categories/testing-tools.html b/docs/categories/testing-tools.html index 0c8b7db0..59a46c8f 100644 --- a/docs/categories/testing-tools.html +++ b/docs/categories/testing-tools.html @@ -91,7 +91,7 @@

Yes Yes Yes - 123 + 124 @@ -114,7 +114,7 @@

No Yes No - 2294 + 2295 @@ -137,7 +137,7 @@

No No No - 219 + 220 @@ -191,7 +191,7 @@

wiretap (link)

Stars - 123 + 124 Watchers @@ -207,7 +207,7 @@

wiretap (link)

Last Updated - 2024-11-09T20:21:46Z + 2024-11-14T03:34:17Z Archived @@ -242,7 +242,7 @@

Schemathesis (link)

Stars - 2294 + 2295 Watchers @@ -250,7 +250,7 @@

Schemathesis (link)

Forks - 163 + 164 Created @@ -258,7 +258,7 @@

Schemathesis (link)

Last Updated - 2024-11-12T18:40:42Z + 2024-11-13T10:51:56Z Archived @@ -293,7 +293,7 @@

Tcases for OpenAPI (link)

Stars - 219 + 220 Watchers @@ -309,7 +309,7 @@

Tcases for OpenAPI (link)

Last Updated - 2024-11-04T10:00:23Z + 2024-11-14T01:36:23Z Archived diff --git a/docs/categories/testing.html b/docs/categories/testing.html index ebd0e9d0..293df4c9 100644 --- a/docs/categories/testing.html +++ b/docs/categories/testing.html @@ -345,7 +345,7 @@

No Yes No - 219 + 220 @@ -368,7 +368,7 @@

Yes Yes No - 919 + 921 @@ -631,7 +631,7 @@

Yes Yes Yes - 190 + 192 @@ -677,7 +677,7 @@

Yes Yes Yes - 123 + 124 @@ -717,7 +717,7 @@

No Yes No - 6540 + 6543 @@ -780,7 +780,7 @@

No Yes No - 219 + 220 @@ -2040,7 +2040,7 @@

No Yes Yes - 519 + 520 @@ -2487,7 +2487,7 @@

No No No - 219 + 220 @@ -3346,7 +3346,7 @@

Tcases for OpenAPI (link)

Stars - 219 + 220 Watchers @@ -3362,7 +3362,7 @@

Tcases for OpenAPI (link)

Last Updated - 2024-11-04T10:00:23Z + 2024-11-14T01:36:23Z Archived @@ -3397,7 +3397,7 @@

Restish (link)

Stars - 919 + 921 Watchers @@ -3413,7 +3413,7 @@

Restish (link)

Last Updated - 2024-11-09T14:32:02Z + 2024-11-13T21:39:21Z Archived @@ -3974,7 +3974,7 @@

Specmatic (link)

Last Updated - 2024-11-12T15:59:16Z + 2024-11-13T11:31:57Z Archived @@ -4009,7 +4009,7 @@

openapi-changes (link)

Stars - 190 + 192 Watchers @@ -4025,7 +4025,7 @@

openapi-changes (link)

Last Updated - 2024-11-10T23:34:28Z + 2024-11-13T19:42:13Z Archived @@ -4111,7 +4111,7 @@

wiretap (link)

Stars - 123 + 124 Watchers @@ -4127,7 +4127,7 @@

wiretap (link)

Last Updated - 2024-11-09T20:21:46Z + 2024-11-14T03:34:17Z Archived @@ -4213,7 +4213,7 @@

mockoon (link)

Stars - 6540 + 6543 Watchers @@ -4221,7 +4221,7 @@

mockoon (link)

Forks - 389 + 391 Created @@ -4229,7 +4229,7 @@

mockoon (link)

Last Updated - 2024-11-12T21:40:15Z + 2024-11-13T22:04:13Z Archived @@ -4366,7 +4366,7 @@

tcases (link)

Stars - 219 + 220 Watchers @@ -4382,7 +4382,7 @@

tcases (link)

Last Updated - 2024-11-04T10:00:23Z + 2024-11-14T01:36:23Z Archived @@ -4680,7 +4680,7 @@

openapi (link)

Forks - 74 + 75 Created @@ -4688,7 +4688,7 @@

openapi (link)

Last Updated - 2024-11-06T21:11:45Z + 2024-11-13T21:24:55Z Archived @@ -5045,7 +5045,7 @@

mockoon.com (link)

Last Updated - 2024-11-12T10:23:24Z + 2024-11-13T09:05:32Z Archived @@ -5504,7 +5504,7 @@

openapi-specs (link)

Last Updated - 2024-11-12T12:22:40Z + 2024-11-13T06:53:30Z Archived @@ -7426,7 +7426,7 @@

EvoMaster (link)

Stars - 519 + 520 Watchers @@ -7442,7 +7442,7 @@

EvoMaster (link)

Last Updated - 2024-11-11T05:21:50Z + 2024-11-13T13:47:14Z Archived @@ -8497,7 +8497,7 @@

Tcases for OpenAPI (link)

Stars - 219 + 220 Watchers @@ -8513,7 +8513,7 @@

Tcases for OpenAPI (link)

Last Updated - 2024-11-04T10:00:23Z + 2024-11-14T01:36:23Z Archived @@ -8862,7 +8862,7 @@

RESTler (link)

Forks - 302 + 303 Created diff --git a/docs/categories/text-editors.html b/docs/categories/text-editors.html index a9826d19..907b6760 100644 --- a/docs/categories/text-editors.html +++ b/docs/categories/text-editors.html @@ -157,7 +157,7 @@

Yes Yes Yes - 8934 + 8935 @@ -594,7 +594,7 @@

Swagger Editor (link)

Stars - 8934 + 8935 Watchers @@ -610,7 +610,7 @@

Swagger Editor (link)

Last Updated - 2024-11-12T19:53:14Z + 2024-11-13T19:54:56Z Archived diff --git a/docs/categories/unclassified.html b/docs/categories/unclassified.html index 81518b2b..0ecbb2b3 100644 --- a/docs/categories/unclassified.html +++ b/docs/categories/unclassified.html @@ -194,7 +194,7 @@

No Yes No - 43 + 44 @@ -1455,7 +1455,7 @@

oas3-chow-chow (link)

Stars - 43 + 44 Watchers @@ -1471,7 +1471,7 @@

oas3-chow-chow (link)

Last Updated - 2024-10-30T17:17:06Z + 2024-11-13T05:42:00Z Archived diff --git a/docs/categories/user-interfaces.html b/docs/categories/user-interfaces.html index 29826ba1..4a958bf9 100644 --- a/docs/categories/user-interfaces.html +++ b/docs/categories/user-interfaces.html @@ -91,7 +91,7 @@

Yes Yes No - 26570 + 26575 @@ -114,7 +114,7 @@

Yes Yes No - 23590 + 23599 @@ -275,7 +275,7 @@

swagger-ui (link)

Stars - 26570 + 26575 Watchers @@ -283,7 +283,7 @@

swagger-ui (link)

Forks - 8960 + 8959 Created @@ -291,7 +291,7 @@

swagger-ui (link)

Last Updated - 2024-11-13T00:17:02Z + 2024-11-14T02:24:43Z Archived @@ -326,7 +326,7 @@

Redoc (link)

Stars - 23590 + 23599 Watchers @@ -342,7 +342,7 @@

Redoc (link)

Last Updated - 2024-11-12T14:41:29Z + 2024-11-14T01:59:20Z Archived diff --git a/src/_data/tools.yaml b/src/_data/tools.yaml index 0fd4fec7..67b7dcd1 100644 --- a/src/_data/tools.yaml +++ b/src/_data/tools.yaml @@ -281,17 +281,17 @@ References                                        ✨ 1st-Class OpenAPI/Swagger Support created: '2023-08-16T13:42:32Z' - updated: '2024-11-13T03:25:49Z' + updated: '2024-11-14T03:28:13Z' language: TypeScript archived: false - stars: 7207 - watchers: 23 - forks: 221 + stars: 7280 + watchers: 24 + forks: 226 owner: scalar logo: https://avatars.githubusercontent.com/u/301879?v=4 license: MIT - repoEtag: '"8475a9d2169ada12501e37d2d5d5a95502cecbfbba0bda2a3514d3da72a5a073"' - repoLastModified: Wed, 13 Nov 2024 03:25:49 GMT + repoEtag: '"1893f96edea2e8006b66e25f8b0c7275e02cb3ce52a38f9b09a64020d47ff4df"' + repoLastModified: Thu, 14 Nov 2024 03:28:13 GMT foundInMaster: true - source: https://openapi.tools/ name: Scramble @@ -319,17 +319,17 @@ Modern Laravel OpenAPI (Swagger) documentation generator. No PHPDoc annotations required. created: '2022-08-05T17:16:20Z' - updated: '2024-11-13T01:38:58Z' + updated: '2024-11-14T03:35:15Z' language: PHP archived: false - stars: 1236 + stars: 1237 watchers: 15 - forks: 118 + forks: 119 owner: dedoc logo: https://avatars.githubusercontent.com/u/93313138?v=4 license: MIT - repoEtag: '"7e0083d3efddc852a7334e505fb3de1c9e1b28eebad3e81ccae0697bb9dbf23c"' - repoLastModified: Wed, 13 Nov 2024 01:38:58 GMT + repoEtag: '"c8b473e09b05e68ab5b57da746d26d6acd0d45e2d4af3ec60acd1396f296f4df"' + repoLastModified: Thu, 14 Nov 2024 03:35:15 GMT foundInMaster: true - source: https://openapi.tools/ name: Scribe @@ -350,17 +350,17 @@ repositoryId: 260729799 description: Generate API documentation for humans from your Laravel codebase.✍ created: '2020-05-02T16:36:45Z' - updated: '2024-11-12T17:56:56Z' + updated: '2024-11-13T20:20:07Z' language: PHP archived: false - stars: 1746 + stars: 1748 watchers: 17 forks: 314 owner: knuckleswtf logo: https://avatars.githubusercontent.com/u/63367037?v=4 license: MIT - repoEtag: '"cc34e87756a0d8c665221a4f6fd8f9b72fa4079571c772cc25010a826a075dc8"' - repoLastModified: Tue, 12 Nov 2024 17:56:56 GMT + repoEtag: '"eca2f02d72454e010866f5764276a9282dd168a45725b1b68d552aa796b8d321"' + repoLastModified: Wed, 13 Nov 2024 20:20:07 GMT foundInMaster: true - source: https://openapi.tools/ name: Supermodel @@ -407,17 +407,17 @@ repositoryId: 45250726 description: 📘 OpenAPI/Swagger-generated API Reference Documentation created: '2015-10-30T12:53:02Z' - updated: '2024-11-12T14:41:29Z' + updated: '2024-11-14T01:59:20Z' language: TypeScript archived: false - stars: 23590 + stars: 23599 watchers: 296 forks: 2301 owner: Redocly logo: https://avatars.githubusercontent.com/u/32099856?v=4 license: MIT - repoEtag: '"b3ee47a36296e89b17a6928bf38d8a0a00deadee00fae067142aefa704926edb"' - repoLastModified: Tue, 12 Nov 2024 14:41:29 GMT + repoEtag: '"3fb439f55a12052f234788348db5eda8cdb6920652138d5a4dbff0fdfa6657b6"' + repoLastModified: Thu, 14 Nov 2024 01:59:20 GMT foundInMaster: true - source: https://openapi.tools/ name: RestCase Docs @@ -479,7 +479,7 @@ also simplified postman tool. 基于 OpenAPI/Swagger 规范的接口文档,快速模拟请求参数并调用接口,也是简化版 postman 工具,欢迎提功能请求、bug created: '2023-12-20T14:51:12Z' - updated: '2024-11-12T16:37:47Z' + updated: '2024-11-13T05:47:57Z' language: TypeScript archived: false stars: 650 @@ -488,8 +488,8 @@ owner: rookie-luochao logo: https://avatars.githubusercontent.com/u/22948077?v=4 license: MIT - repoEtag: '"07cd0f4f3340502b1342a193eff6c1c3cc9fcd68ddb35de482ca42e9d77a12f3"' - repoLastModified: Tue, 12 Nov 2024 16:37:47 GMT + repoEtag: '"c047e5302396c914d316a247cbdd9bceb29c08e7c5cf48b173b2b3b7bbe16a27"' + repoLastModified: Wed, 13 Nov 2024 05:47:57 GMT category: Documentation foundInMaster: true v3_1: true @@ -514,17 +514,17 @@ repositoryId: 337689065 description: OpenAPI Diff and Breaking Changes created: '2021-02-10T10:28:36Z' - updated: '2024-11-12T22:36:29Z' + updated: '2024-11-13T10:44:01Z' language: Go archived: false - stars: 745 + stars: 746 watchers: 10 forks: 62 owner: Tufin logo: https://avatars.githubusercontent.com/u/5352131?v=4 license: Apache-2.0 - repoEtag: '"ce359720c2afc65eea759069c3ca26d44381cb63021f5538314d381d0030d658"' - repoLastModified: Tue, 12 Nov 2024 22:36:29 GMT + repoEtag: '"b7867929e7454e739b00a79a180678dc2a6ea6ea14a8e6425919c8f95cb7a561"' + repoLastModified: Wed, 13 Nov 2024 10:44:01 GMT foundInMaster: true name: oasdiff language: Go @@ -581,7 +581,7 @@ owner: opticdev logo: https://avatars.githubusercontent.com/u/34556970?v=4 license: MIT - repoEtag: '"e718cf8a59b4e39668556ac8b208da4f67bb4c4bd62edc994d80044fd45150e7"' + repoEtag: '"adadd1eab59029dfb5612b77845ce35eef96725f7bb4dd8b8bd3cb6a2afcd2ca"' repoLastModified: Mon, 11 Nov 2024 15:28:01 GMT foundInMaster: true id: 8c3d08406ca659662808d51ddc10b4e4 @@ -611,10 +611,10 @@ archived: false stars: 1 watchers: 1 - forks: 1 + forks: 0 owner: inssch logo: https://avatars.githubusercontent.com/u/109123959?v=4 - repoEtag: '"d8b7ef3e16779ece10edad5ff51a3e32619799cd6fbdfb6997605dead2e8942f"' + repoEtag: '"1360f0e070254e0833eefc2ef09c0f242369ffc41bcd28ca2825cb889490ae90"' repoLastModified: Fri, 17 May 2024 16:07:37 GMT foundInMaster: true category: Server Implementations @@ -1028,26 +1028,26 @@ v3: true repositoryMetadata: base64Readme: >- - PGgxIGFsaWduPSJjZW50ZXIiPk9wZW5BUEkgR2VuZXJhdG9yPC9oMT4KCgo8ZGl2IGFsaWduPSJjZW50ZXIiPgoKWyFbU3RhYmxlIHJlbGVhc2VzIGluIE1hdmVuIENlbnRyYWxdKGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vbWF2ZW4tbWV0YWRhdGEvdi9odHRwcy9yZXBvMS5tYXZlbi5vcmcvbWF2ZW4yL29yZy9vcGVuYXBpdG9vbHMvb3BlbmFwaS1nZW5lcmF0b3IvbWF2ZW4tbWV0YWRhdGEueG1sLnN2ZyldKGh0dHA6Ly9zZWFyY2gubWF2ZW4ub3JnLyNzZWFyY2glN0NnYXYlN0MxJTdDZyUzQSUyMm9yZy5vcGVuYXBpdG9vbHMlMjIlMjBBTkQlMjBhJTNBJTIyb3BlbmFwaS1nZW5lcmF0b3IlMjIpClshW0FwYWNoZSAyLjAgTGljZW5zZV0oaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9iYWRnZS9MaWNlbnNlLUFwYWNoZSUyMDIuMC1vcmFuZ2UpXSguL0xJQ0VOU0UpClshW09wZW4gQ29sbGVjdGl2ZSBiYWNrZXJzXShodHRwczovL2ltZy5zaGllbGRzLmlvL29wZW5jb2xsZWN0aXZlL2JhY2tlcnMvb3BlbmFwaV9nZW5lcmF0b3I/Y29sb3I9b3JhbmdlJmxhYmVsPU9wZW5Db2xsZWN0aXZlJTIwQmFja2VycyldKGh0dHBzOi8vb3BlbmNvbGxlY3RpdmUuY29tL29wZW5hcGlfZ2VuZXJhdG9yKQpbIVtKb2luIHRoZSBTbGFjayBjaGF0IHJvb21dKGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vYmFkZ2UvU2xhY2stSm9pbiUyMHRoZSUyMGNoYXQlMjByb29tLW9yYW5nZSldKGh0dHBzOi8vam9pbi5zbGFjay5jb20vdC9vcGVuYXBpLWdlbmVyYXRvci9zaGFyZWRfaW52aXRlL3p0LTEyanh4ZDdwMi1YVWVRTX40cHpzVTl4fmVHTFFxWDJnKQpbIVtGb2xsb3cgT3BlbkFQSSBHZW5lcmF0b3IgVHdpdHRlciBhY2NvdW50IHRvIGdldCB0aGUgbGF0ZXN0IHVwZGF0ZV0oaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby90d2l0dGVyL2ZvbGxvdy9vYXNfZ2VuZXJhdG9yLnN2Zz9zdHlsZT1zb2NpYWwmbGFiZWw9Rm9sbG93KV0oaHR0cHM6Ly90d2l0dGVyLmNvbS9vYXNfZ2VuZXJhdG9yKQpbIVtDb250cmlidXRlIHdpdGggR2l0cG9kXShodHRwczovL2ltZy5zaGllbGRzLmlvL2JhZGdlL0NvbnRyaWJ1dGUlMjB3aXRoLUdpdHBvZC05MDhhODU/bG9nbz1naXRwb2QpXShodHRwczovL2dpdHBvZC5pby8jaHR0cHM6Ly9naXRodWIuY29tL09wZW5BUElUb29scy9vcGVuYXBpLWdlbmVyYXRvcikKWyFbQ29uYW4gQ2VudGVyXShodHRwczovL3NoaWVsZHMuaW8vY29uYW4vdi9vcGVuYXBpLWdlbmVyYXRvcildKGh0dHBzOi8vY29uYW4uaW8vY2VudGVyL3JlY2lwZXMvb3BlbmFwaS1nZW5lcmF0b3IpClshW1JldnZlZCB1cCBieSBEZXZlbG9jaXR5XShodHRwczovL2ltZy5zaGllbGRzLmlvL2JhZGdlL1JldnZlZCUyMHVwJTIwYnktRGV2ZWxvY2l0eS0wNkEwQ0U/bG9nbz1HcmFkbGUmbGFiZWxDb2xvcj0wMjMwM0EpXShodHRwczovL2dlLm9wZW5hcGktZ2VuZXJhdG9yLnRlY2gvc2NhbnMpCjwvZGl2PgoKPGRpdiBhbGlnbj0iY2VudGVyIj4KCltNYXN0ZXJdKGh0dHBzOi8vZ2l0aHViLmNvbS9PcGVuQVBJVG9vbHMvb3BlbmFwaS1nZW5lcmF0b3IvdHJlZS9tYXN0ZXIpIChgNy4xMC4wYCk6ClshW0J1aWxkIFN0YXR1c10oaHR0cHM6Ly9hcGkudHJhdmlzLWNpLmNvbS9PcGVuQVBJVG9vbHMvb3BlbmFwaS1nZW5lcmF0b3Iuc3ZnP2JyYW5jaD1tYXN0ZXImc3RhdHVzPXBhc3NlZCldKGh0dHBzOi8vYXBwLnRyYXZpcy1jaS5jb20vZ2l0aHViL09wZW5BUElUb29scy9vcGVuYXBpLWdlbmVyYXRvci9idWlsZHMpClshW0ludGVncmF0aW9uIFRlc3QyXShodHRwczovL2NpcmNsZWNpLmNvbS9naC9PcGVuQVBJVG9vbHMvb3BlbmFwaS1nZW5lcmF0b3Iuc3ZnP3N0eWxlPXNoaWVsZCldKGh0dHBzOi8vY2lyY2xlY2kuY29tL2doL09wZW5BUElUb29scy9vcGVuYXBpLWdlbmVyYXRvcikKWyFbV2luZG93cyBUZXN0XShodHRwczovL2NpLmFwcHZleW9yLmNvbS9hcGkvcHJvamVjdHMvc3RhdHVzL2dpdGh1Yi9vcGVuYXBpdG9vbHMvb3BlbmFwaS1nZW5lcmF0b3I/YnJhbmNoPW1hc3RlciZzdmc9dHJ1ZSZwYXNzaW5nVGV4dD1XaW5kb3dzJTIwVGVzdCUyMC0lMjBPSyZmYWlsaW5nVGV4dD1XaW5kb3dzJTIwVGVzdCUyMC0lMjBGYWlscyldKGh0dHBzOi8vY2kuYXBwdmV5b3IuY29tL3Byb2plY3QvV2lsbGlhbUNoZW5nL29wZW5hcGktZ2VuZXJhdG9yKQpbIVtCaXRyaXNlXShodHRwczovL2ltZy5zaGllbGRzLmlvL2JpdHJpc2UvNGEyYjEwYTgxOWQxMmI2Ny9tYXN0ZXI/bGFiZWw9Yml0cmlzZSUzQSUyMFN3aWZ0KzQsNSZ0b2tlbj04NTlGTURSOFFId2FiQ3p3dlpLNnZRKV0oaHR0cHM6Ly9hcHAuYml0cmlzZS5pby9hcHAvNGEyYjEwYTgxOWQxMmI2NykKCjwvZGl2PgoKPGRpdiBhbGlnbj0iY2VudGVyIj4KCjpzdGFyOjpzdGFyOjpzdGFyOiBJZiB5b3Ugd291bGQgbGlrZSB0byBjb250cmlidXRlLCBwbGVhc2UgcmVmZXIgdG8gW2d1aWRlbGluZXNdKENPTlRSSUJVVElORy5tZCkgYW5kIGEgbGlzdCBvZiBbb3BlbiB0YXNrc10oaHR0cHM6Ly9naXRodWIuY29tL29wZW5hcGl0b29scy9vcGVuYXBpLWdlbmVyYXRvci9pc3N1ZXM/cT1pcyUzQW9wZW4raXMlM0Fpc3N1ZStsYWJlbCUzQSUyMmhlbHArd2FudGVkJTIyKS4gOnN0YXI6OnN0YXI6OnN0YXI6Cgo6YmFuZ2Jhbmc6IFRvIG1pZ3JhdGUgZnJvbSBTd2FnZ2VyIENvZGVnZW4gdG8gT3BlbkFQSSBHZW5lcmF0b3IsIHBsZWFzZSByZWZlciB0byB0aGUgW21pZ3JhdGlvbiBndWlkZV0oZG9jcy9taWdyYXRpb24tZnJvbS1zd2FnZ2VyLWNvZGVnZW4ubWQpIDpiYW5nYmFuZzoKCjpub3RlYm9va193aXRoX2RlY29yYXRpdmVfY292ZXI6IEZvciBtb3JlIGluZm9ybWF0aW9uLCBwbGVhc2UgcmVmZXIgdG8gdGhlIFtXaWtpIHBhZ2VdKGh0dHBzOi8vZ2l0aHViLmNvbS9vcGVuYXBpdG9vbHMvb3BlbmFwaS1nZW5lcmF0b3Ivd2lraSkgYW5kIFtGQVFdKGh0dHBzOi8vZ2l0aHViLmNvbS9vcGVuYXBpdG9vbHMvb3BlbmFwaS1nZW5lcmF0b3Ivd2lraS9GQVEpIDpub3RlYm9va193aXRoX2RlY29yYXRpdmVfY292ZXI6Cgo6bm90ZWJvb2tfd2l0aF9kZWNvcmF0aXZlX2NvdmVyOiBUaGUgZUJvb2sgW0EgQmVnaW5uZXIncyBHdWlkZSB0byBDb2RlIEdlbmVyYXRpb24gZm9yIFJFU1QgQVBJc10oaHR0cHM6Ly9ndW0uY28vb3BlbmFwaV9nZW5lcmF0b3JfZWJvb2spIGlzIGEgZ29vZCBzdGFydGluZyBwb2ludCBmb3IgYmVnaW5uZXJzIDpub3RlYm9va193aXRoX2RlY29yYXRpdmVfY292ZXI6Cgo6d2FybmluZzogSWYgdGhlIE9wZW5BUEkgc3BlYywgdGVtcGxhdGVzIG9yIGFueSBpbnB1dCAoZS5nLiBvcHRpb25zLCBlbnZpcm9ubWVudCB2YXJpYWJsZXMpIGlzIG9idGFpbmVkIGZyb20gYW4gdW50cnVzdGVkIHNvdXJjZSBvciBlbnZpcm9ubWVudCwgcGxlYXNlIG1ha2Ugc3VyZSB5b3UndmUgcmV2aWV3ZWQgdGhlc2UgaW5wdXRzIGJlZm9yZSB1c2luZyBPcGVuQVBJIEdlbmVyYXRvciB0byBnZW5lcmF0ZSB0aGUgQVBJIGNsaWVudCwgc2VydmVyIHN0dWIgb3IgZG9jdW1lbnRhdGlvbiB0byBhdm9pZCBwb3RlbnRpYWwgc2VjdXJpdHkgaXNzdWVzIChlLmcuIFtjb2RlIGluamVjdGlvbl0oaHR0cHM6Ly9lbi53aWtpcGVkaWEub3JnL3dpa2kvQ29kZV9pbmplY3Rpb24pKS4gRm9yIHNlY3VyaXR5IHZ1bG5lcmFiaWxpdGllcywgcGxlYXNlIGNvbnRhY3QgW3RlYW1Ab3BlbmFwaXRvb2xzLm9yZ10obWFpbHRvOnRlYW1Ab3BlbmFwaXRvb2xzLm9yZykuIDp3YXJuaW5nOgoKOmJhbmdiYW5nOiBCb3RoICJPcGVuQVBJIFRvb2xzIiAoaHR0cHM6Ly9PcGVuQVBJVG9vbHMub3JnIC0gdGhlIHBhcmVudCBvcmdhbml6YXRpb24gb2YgT3BlbkFQSSBHZW5lcmF0b3IpIGFuZCAiT3BlbkFQSSBHZW5lcmF0b3IiIGFyZSBub3QgYWZmaWxpYXRlZCB3aXRoIE9wZW5BUEkgSW5pdGlhdGl2ZSAoT0FJKSA6YmFuZ2Jhbmc6Cgo8L2Rpdj4KCiMjIFNwb25zb3JzCgpJZiB5b3UgZmluZCBPcGVuQVBJIEdlbmVyYXRvciB1c2VmdWwgZm9yIHdvcmssIHBsZWFzZSBjb25zaWRlciBhc2tpbmcgeW91ciBjb21wYW55IHRvIHN1cHBvcnQgdGhpcyBPcGVuIFNvdXJjZSBwcm9qZWN0IGJ5IFtiZWNvbWluZyBhIHNwb25zb3JdKGh0dHBzOi8vb3BlbmNvbGxlY3RpdmUuY29tL29wZW5hcGlfZ2VuZXJhdG9yKS4gWW91IGNhbiBhbHNvIGluZGl2aWR1YWxseSBzcG9uc29yIHRoZSBwcm9qZWN0IGJ5IFtiZWNvbWluZyBhIGJhY2tlcl0oaHR0cHM6Ly9vcGVuY29sbGVjdGl2ZS5jb20vb3BlbmFwaV9nZW5lcmF0b3IpLgoKIyMjIyBUaGFuayB5b3UgdG8gb3VyIGJyb256ZSBzcG9uc29ycyEKClshW05hbVNvcl0oaHR0cHM6Ly9vcGVuYXBpLWdlbmVyYXRvci50ZWNoL2ltZy9jb21wYW5pZXMvbmFtc29yLnBuZyldKGh0dHBzOi8vd3d3Lm5hbXNvci5jb20vP3V0bV9zb3VyY2U9b3BlbmFwaV9nZW5lcmF0b3ImdXRtX21lZGl1bT1naXRodWJfd2VicGFnZSZ1dG1fY2FtcGFpZ249c3BvbnNvcikKWyFbTGlnaHRCb3ddKGh0dHBzOi8vb3BlbmFwaS1nZW5lcmF0b3IudGVjaC9pbWcvY29tcGFuaWVzL2xpZ2h0Ym93LnBuZyldKGh0dHBzOi8vd3d3LmxpZ2h0Ym93Lm5ldC8/dXRtX3NvdXJjZT1vcGVuYXBpX2dlbmVyYXRvciZ1dG1fbWVkaXVtPWdpdGh1Yl93ZWJwYWdlJnV0bV9jYW1wYWlnbj1zcG9uc29yKQpbPGltZyBzcmM9Imh0dHBzOi8vb3BlbmFwaS1nZW5lcmF0b3IudGVjaC9pbWcvY29tcGFuaWVzL2RvY3NwcmluZy5wbmciIHdpZHRoPSIxMjgiIGhlaWdodD0iMTI4Ij5dKGh0dHBzOi8vZG9jc3ByaW5nLmNvbS8/dXRtX3NvdXJjZT1vcGVuYXBpX2dlbmVyYXRvciZ1dG1fbWVkaXVtPWdpdGh1Yl93ZWJwYWdlJnV0bV9jYW1wYWlnbj1zcG9uc29yKQpbPGltZyBzcmM9Imh0dHBzOi8vb3BlbmFwaS1nZW5lcmF0b3IudGVjaC9pbWcvY29tcGFuaWVzL2RhdGFkb2cucG5nIiB3aWR0aD0iMTI4IiBoZWlnaHQ9IjEyOCI+XShodHRwczovL2RhdGFkb2docS5jb20vP3V0bV9zb3VyY2U9b3BlbmFwaV9nZW5lcmF0b3ImdXRtX21lZGl1bT1naXRodWJfd2VicGFnZSZ1dG1fY2FtcGFpZ249c3BvbnNvcikKWzxpbWcgc3JjPSJodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gvaW1nL2NvbXBhbmllcy90aGFsZXMuanBnIiB3aWR0aD0iMTI4IiBoZWlnaHQ9IjEyOCI+XShodHRwczovL2NwbC50aGFsZXNncm91cC5jb20vP3V0bV9zb3VyY2U9b3BlbmFwaV9nZW5lcmF0b3ImdXRtX21lZGl1bT1naXRodWJfd2VicGFnZSZ1dG1fY2FtcGFpZ249c3BvbnNvcikKWzxpbWcgc3JjPSJodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gvaW1nL2NvbXBhbmllcy9hcGlkZWNrLmpwZyIgd2lkdGg9IjEyOCIgaGVpZ2h0PSIxMjgiPl0oaHR0cHM6Ly93d3cuYXBpZGVjay5jb20vP3V0bV9zb3VyY2U9b3BlbmFwaV9nZW5lcmF0b3ImdXRtX21lZGl1bT1naXRodWJfd2VicGFnZSZ1dG1fY2FtcGFpZ249c3BvbnNvcikKWzxpbWcgc3JjPSJodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gvaW1nL2NvbXBhbmllcy9wZXhhLnBuZyIgd2lkdGg9IjEyOCIgaGVpZ2h0PSIxMjgiPl0oaHR0cHM6Ly93d3cucGV4YS5jb20uYXUvP3V0bV9zb3VyY2U9b3BlbmFwaV9nZW5lcmF0b3ImdXRtX21lZGl1bT1naXRodWJfd2VicGFnZSZ1dG1fY2FtcGFpZ249c3BvbnNvcikKWzxpbWcgc3JjPSJodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gvaW1nL2NvbXBhbmllcy9udW1hcnkucG5nIiB3aWR0aD0iMTI4IiBoZWlnaHQ9IjEyOCI+XShodHRwczovL3d3dy5udW1hcnkuY29tLz91dG1fc291cmNlPW9wZW5hcGlfZ2VuZXJhdG9yJnV0bV9tZWRpdW09Z2l0aHViX3dlYnBhZ2UmdXRtX2NhbXBhaWduPXNwb25zb3IpCls8aW1nIHNyYz0iaHR0cHM6Ly9vcGVuYXBpLWdlbmVyYXRvci50ZWNoL2ltZy9jb21wYW5pZXMvb25lc2lnbmFsLnBuZyIgd2lkdGg9IjEyOCIgaGVpZ2h0PSIxMjgiPl0oaHR0cHM6Ly93d3cub25lc2lnbmFsLmNvbS8/dXRtX3NvdXJjZT1vcGVuYXBpX2dlbmVyYXRvciZ1dG1fbWVkaXVtPWdpdGh1Yl93ZWJwYWdlJnV0bV9jYW1wYWlnbj1zcG9uc29yKQpbPGltZyBzcmM9Imh0dHBzOi8vb3BlbmFwaS1nZW5lcmF0b3IudGVjaC9pbWcvY29tcGFuaWVzL3ZpcnR1YWxhbnNvZnR3YXJlLnBuZyIgd2lkdGg9IjEyOCIgaGVpZ2h0PSIxMjgiPl0oaHR0cHM6Ly93d3cudmlydHVhbGFuc29mdHdhcmUuY29tLz91dG1fc291cmNlPW9wZW5hcGlfZ2VuZXJhdG9yJnV0bV9tZWRpdW09Z2l0aHViX3dlYnBhZ2UmdXRtX2NhbXBhaWduPXNwb25zb3IpCls8aW1nIHNyYz0iaHR0cHM6Ly9vcGVuYXBpLWdlbmVyYXRvci50ZWNoL2ltZy9jb21wYW5pZXMvbWVyZ2VkZXYuanBlZyIgd2lkdGg9IjEyOCIgaGVpZ2h0PSIxMjgiPl0oaHR0cHM6Ly93d3cubWVyZ2UuZGV2Lz91dG1fc291cmNlPW9wZW5hcGlfZ2VuZXJhdG9yJnV0bV9tZWRpdW09Z2l0aHViX3dlYnBhZ2UmdXRtX2NhbXBhaWduPXNwb25zb3IpCls8aW1nIHNyYz0iaHR0cHM6Ly9vcGVuYXBpLWdlbmVyYXRvci50ZWNoL2ltZy9jb21wYW5pZXMvYnVya2VydC5qcGciIHdpZHRoPSIxMjgiIGhlaWdodD0iMTI4Ij5dKGh0dHBzOi8vd3d3LmJ1cmtlcnQuY29tLz91dG1fc291cmNlPW9wZW5hcGlfZ2VuZXJhdG9yJnV0bV9tZWRpdW09Z2l0aHViX3dlYnBhZ2UmdXRtX2NhbXBhaWduPXNwb25zb3IpCls8aW1nIHNyYz0iaHR0cHM6Ly9vcGVuYXBpLWdlbmVyYXRvci50ZWNoL2ltZy9jb21wYW5pZXMvZmluYm91cm5lLnBuZyIgd2lkdGg9IjEyOCIgaGVpZ2h0PSIxMjgiPl0oaHR0cHM6Ly93d3cuZmluYm91cm5lLmNvbS8/dXRtX3NvdXJjZT1vcGVuYXBpX2dlbmVyYXRvciZ1dG1fbWVkaXVtPWdpdGh1Yl93ZWJwYWdlJnV0bV9jYW1wYWlnbj1zcG9uc29yKQpbPGltZyBzcmM9Imh0dHBzOi8vb3BlbmFwaS1nZW5lcmF0b3IudGVjaC9pbWcvY29tcGFuaWVzL2J1bXBzaC5wbmciIHdpZHRoPSIxMjgiIGhlaWdodD0iMTI4Ij5dKGh0dHBzOi8vYnVtcC5zaC8/dXRtX3NvdXJjZT1vcGVuYXBpX2dlbmVyYXRvciZ1dG1fbWVkaXVtPWdpdGh1Yl93ZWJwYWdlJnV0bV9jYW1wYWlnbj1zcG9uc29yKQpbPGltZyBzcmM9Imh0dHBzOi8vb3BlbmFwaS1nZW5lcmF0b3IudGVjaC9pbWcvY29tcGFuaWVzL2JpbGV0by5wbmciIHdpZHRoPSIxMjgiIGhlaWdodD0iMTI4Ij5dKGh0dHBzOi8vd3d3LmJpbGV0by5jb20vP3V0bV9zb3VyY2U9b3BlbmFwaV9nZW5lcmF0b3ImdXRtX21lZGl1bT1naXRodWJfd2VicGFnZSZ1dG1fY2FtcGFpZ249c3BvbnNvcikKWzxpbWcgc3JjPSJodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gvaW1nL2NvbXBhbmllcy9iYWlyZXNkZXYucG5nIiB3aWR0aD0iMTI4IiBoZWlnaHQ9IjEyOCI+XShodHRwczovL3d3dy5iYWlyZXNkZXYuY29tL3Nwb25zb3Jpbmctb3Blbi1zb3VyY2UtcHJvamVjdHMvP3V0bV9zb3VyY2U9b3BlbmFwaV9nZW5lcmF0b3ImdXRtX21lZGl1bT1naXRodWJfd2VicGFnZSZ1dG1fY2FtcGFpZ249c3BvbnNvcikKWzxpbWcgc3JjPSJodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gvaW1nL2NvbXBhbmllcy9kbXRlY2guanBlZyIgd2lkdGg9IjEyOCIgaGVpZ2h0PSIxMjgiPl0oaHR0cHM6Ly93d3cuZG10ZWNoLmRlLz91dG1fc291cmNlPW9wZW5hcGlfZ2VuZXJhdG9yJnV0bV9tZWRpdW09Z2l0aHViX3dlYnBhZ2UmdXRtX2NhbXBhaWduPXNwb25zb3IpCls8aW1nIHNyYz0iaHR0cHM6Ly9vcGVuYXBpLWdlbmVyYXRvci50ZWNoL2ltZy9jb21wYW5pZXMvYWR5ZW4ucG5nIiB3aWR0aD0iMTI4IiBoZWlnaHQ9IjEyOCI+XShodHRwczovL2FkeWVuLmNvbS8/dXRtX3NvdXJjZT1vcGVuYXBpX2dlbmVyYXRvciZ1dG1fbWVkaXVtPWdpdGh1Yl93ZWJwYWdlJnV0bV9jYW1wYWlnbj1zcG9uc29yKQpbPGltZyBzcmM9Imh0dHBzOi8vb3BlbmFwaS1nZW5lcmF0b3IudGVjaC9pbWcvY29tcGFuaWVzL2Zvcm5leC5wbmciIHdpZHRoPSIxMjgiIGhlaWdodD0iMTI4Ij5dKGh0dHBzOi8vZm9ybmV4LmNvbS8/dXRtX3NvdXJjZT1vcGVuYXBpX2dlbmVyYXRvciZ1dG1fbWVkaXVtPWdpdGh1Yl93ZWJwYWdlJnV0bV9jYW1wYWlnbj1zcG9uc29yKQpbPGltZyBzcmM9Imh0dHBzOi8vb3BlbmFwaS1nZW5lcmF0b3IudGVjaC9pbWcvY29tcGFuaWVzL2FsbG95YXV0b21hdGlvbi5wbmciIHdpZHRoPSIxMjgiIGhlaWdodD0iMTI4Ij5dKGh0dHBzOi8vcnVuYWxsb3kuY29tL3NpZ251cD91dG1fc291cmNlPWdpdGh1YiZ1dG1fbWVkaXVtPXJlZmVycmFsJnV0bV9jYW1wYWlnbj0xNTI0X29wZW5hcGlnZW5lcmF0b3IpCls8aW1nIHNyYz0iaHR0cHM6Ly9vcGVuYXBpLWdlbmVyYXRvci50ZWNoL2ltZy9jb21wYW5pZXMvc3NzdHdpdHRlci5wbmciIHdpZHRoPSIxMjgiIGhlaWdodD0iMTI4Ij5dKGh0dHBzOi8vc3NzdHdpdHRlci5jb20vP3V0bV9zb3VyY2U9Z2l0aHViJnV0bV9tZWRpdW09cmVmZXJyYWwmdXRtX2NhbXBhaWduPXNwb25zb3IpCls8aW1nIHNyYz0iaHR0cHM6Ly9vcGVuYXBpLWdlbmVyYXRvci50ZWNoL2ltZy9jb21wYW5pZXMvc3ZpeC5wbmciIHdpZHRoPSIxMjgiIGhlaWdodD0iMTI4Ij5dKGh0dHBzOi8vd3d3LnN2aXguY29tLz91dG1fc291cmNlPW9wZW5hcGktZ2VuZXJhdG9yJnV0bV9tZWRpdW09c3BvbnNvcnNoaXAmdXRtX2NhbXBhaWduPW9zcy1zcG9uc29yc2hpcCkKWzxpbWcgc3JjPSJodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gvaW1nL2NvbXBhbmllcy9saXRzbGluay5wbmciIHdpZHRoPSIxMjgiIGhlaWdodD0iMTI4Ij5dKGh0dHBzOi8vbGl0c2xpbmsuY29tL3NlcnZpY2VzL2FydGlmaWNpYWwtaW50ZWxsaWdlbmNlP3V0bV9zb3VyY2U9b3BlbmFwaS1nZW5lcmF0b3ImdXRtX21lZGl1bT1zcG9uc29yc2hpcCZ1dG1fY2FtcGFpZ249b3NzLXNwb25zb3JzaGlwKQpbPGltZyBzcmM9Imh0dHBzOi8vb3BlbmFwaS1nZW5lcmF0b3IudGVjaC9pbWcvY29tcGFuaWVzL2Rlc2lnbmxpLmpwZyIgd2lkdGg9IjEyOCIgaGVpZ2h0PSIxMjgiPl0oaHR0cHM6Ly9kZXNpZ25saS5jbz91dG1fc291cmNlPW9wZW5hcGktZ2VuZXJhdG9yJnV0bV9tZWRpdW09c3BvbnNvcnNoaXAmdXRtX2NhbXBhaWduPW9zcy1zcG9uc29yc2hpcCkKWzxpbWcgc3JjPSJodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gvaW1nL2NvbXBhbmllcy9pdG0ucG5nIiB3aWR0aD0iMTI4IiBoZWlnaHQ9IjEyOCI+XShodHRwczovL29wZW5zb3VyY2UubXVlbmNoZW4uZGU/dXRtX3NvdXJjZT1vcGVuYXBpLWdlbmVyYXRvciZ1dG1fbWVkaXVtPXNwb25zb3JzaGlwJnV0bV9jYW1wYWlnbj1vc3Mtc3BvbnNvcnNoaXApCls8aW1nIHNyYz0iaHR0cHM6Ly9vcGVuYXBpLWdlbmVyYXRvci50ZWNoL2ltZy9jb21wYW5pZXMva29uZy5wbmciIHdpZHRoPSIxMjgiIGhlaWdodD0iMTI4Ij5dKGh0dHBzOi8va29uZ2hxLmNvbS9wcm9kdWN0cy9rb25nLWtvbm5lY3Q/dXRtX21lZGl1bT1yZWZlcnJhbCZ1dG1fc291cmNlPWdpdGh1YiZ1dG1fY2FtcGFpZ249cGxhdGZvcm0mdXRtX2NvbnRlbnQ9b3BlbmFwaS1nZW5lcmF0b3IpCls8aW1nIHNyYz0iaHR0cHM6Ly9vcGVuYXBpLWdlbmVyYXRvci50ZWNoL2ltZy9jb21wYW5pZXMvcm91dGU0bWUucG5nIiB3aWR0aD0iMTI4IiBoZWlnaHQ9IjEyOCI+XShodHRwczovL3JvdXRlNG1lLmNvbS8/dXRtX3NvdXJjZT1vcGVuYXBpLWdlbmVyYXRvciZ1dG1fbWVkaXVtPXNwb25zb3JzaGlwJnV0bV9jYW1wYWlnbj1vc3Mtc3BvbnNvcnNoaXApCls8aW1nIHNyYz0iaHR0cHM6Ly9vcGVuYXBpLWdlbmVyYXRvci50ZWNoL2ltZy9jb21wYW5pZXMvZG0ucG5nIiB3aWR0aD0iMTI4IiBoZWlnaHQ9IjEyOCI+XShodHRwczovL3d3dy5kb3Rjb20tbW9uaXRvci5jb20vc3BvbnNvcmluZy1vcGVuLXNvdXJjZS1wcm9qZWN0cy8/dXRtX3NvdXJjZT1vcGVuYXBpLWdlbmVyYXRvciZ1dG1fbWVkaXVtPXNwb25zb3JzaGlwJnV0bV9jYW1wYWlnbj1vc3Mtc3BvbnNvcnNoaXApCgojIyMjIFRoYW5rIHlvdSBHb0RhZGR5IGZvciBzcG9uc29yaW5nIHRoZSBkb21haW4gbmFtZXMsIExpbm9kZSBmb3Igc3BvbnNvcmluZyB0aGUgVlBTLCBDaGVja2x5IGZvciBzcG9uc29yaW5nIHRoZSBBUEkgbW9uaXRvcmluZyBhbmQgR3JhZGxlIGZvciBzcG9uc29yaW5nIERldmVsb2NpdHkKCls8aW1nIHNyYz0iaHR0cHM6Ly9vcGVuYXBpLWdlbmVyYXRvci50ZWNoL2ltZy9jb21wYW5pZXMvZ29kYWRkeS5wbmciIHdpZHRoPSIxNTAiPl0oaHR0cHM6Ly93d3cuZ29kYWRkeS5jb20vP3V0bV9zb3VyY2U9b3BlbmFwaV9nZW5lcmF0b3ImdXRtX21lZGl1bT1naXRodWJfd2VicGFnZSZ1dG1fY2FtcGFpZ249c3BvbnNvcikKWyFbTGlub2RlXShodHRwczovL3d3dy5saW5vZGUuY29tL21lZGlhL2ltYWdlcy9sb2dvcy9zdGFuZGFyZC9saWdodC9saW5vZGUtbG9nb19zdGFuZGFyZF9saWdodF9zbWFsbC5wbmcpXShodHRwczovL3d3dy5saW5vZGUuY29tLz91dG1fc291cmNlPW9wZW5hcGlfZ2VuZXJhdG9yJnV0bV9tZWRpdW09Z2l0aHViX3dlYnBhZ2UmdXRtX2NhbXBhaWduPXNwb25zb3IpCls8aW1nIHNyYz0iaHR0cHM6Ly9lbmNyeXB0ZWQtdGJuMC5nc3RhdGljLmNvbS9pbWFnZXM/cT10Ym4lM0FBTmQ5R2NSQWhFWWFkVXlaWXpHVW90WmlTZFhrVk1xcUxHdW9oeWl4TGw0ZVVwVVY2cEFiVVVMTCIgd2lkdGg9IjE1MCI+XShodHRwczovL2NoZWNrbHlocS5jb20vP3V0bV9zb3VyY2U9b3BlbmFwaV9nZW5lcmF0b3ImdXRtX21lZGl1bT1naXRodWJfd2VicGFnZSZ1dG1fY2FtcGFpZ249c3BvbnNvcikKWzxpbWcgc3JjPSJodHRwczovL3VwbG9hZC53aWtpbWVkaWEub3JnL3dpa2lwZWRpYS9jb21tb25zL3RodW1iL2MvY2IvR3JhZGxlX2xvZ28ucG5nLzMyMHB4LUdyYWRsZV9sb2dvLnBuZyIgd2lkdGg9IjE1MCI+XShodHRwczovL2dyYWRsZS5vcmc/dXRtX3NvdXJjZT1vcGVuYXBpX2dlbmVyYXRvciZ1dG1fbWVkaXVtPWdpdGh1Yl93ZWJwYWdlJnV0bV9jYW1wYWlnbj1zcG9uc29yKQoKIyMgT3ZlcnZpZXcKCk9wZW5BUEkgR2VuZXJhdG9yIGFsbG93cyBnZW5lcmF0aW9uIG9mIEFQSSBjbGllbnQgbGlicmFyaWVzIChTREsgZ2VuZXJhdGlvbiksIHNlcnZlciBzdHVicywgIGRvY3VtZW50YXRpb24gYW5kIGNvbmZpZ3VyYXRpb24gYXV0b21hdGljYWxseSBnaXZlbiBhbiBbT3BlbkFQSSBTcGVjXShodHRwczovL2dpdGh1Yi5jb20vT0FJL09wZW5BUEktU3BlY2lmaWNhdGlvbikgKGJvdGggMi4wIGFuZCAzLjAgYXJlIHN1cHBvcnRlZCkuIEN1cnJlbnRseSwgdGhlIGZvbGxvd2luZyBsYW5ndWFnZXMvZnJhbWV3b3JrcyBhcmUgc3VwcG9ydGVkOgoKfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IExhbmd1YWdlcy9GcmFtZXdvcmtzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8CnwgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gfC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tfAp8ICoqQVBJIGNsaWVudHMqKiAgICAgICAgICAgICAgICAgIHwgKipBY3Rpb25TY3JpcHQqKiwgKipBZGEqKiwgKipBcGV4KiosICoqQmFzaCoqLCAqKkMqKiwgKipDIyoqICgubmV0IDIuMCwgMy41IG9yIGxhdGVyLCAuTkVUIFN0YW5kYXJkIDEuMyAtIDIuMSwgLk5FVCBDb3JlIDMuMSwgLk5FVCA1LjAuIExpYnJhcmllczogUmVzdFNoYXJwLCBHZW5lcmljSG9zdCwgSHR0cENsaWVudCksICoqQysrKiogKEFyZHVpbm8sIGNwcC1yZXN0c2RrLCBRdDUsIFRpemVuLCBVbnJlYWwgRW5naW5lIDQpLCAqKkNsb2p1cmUqKiwgKipDcnlzdGFsKiosICoqRGFydCoqLCAqKkVsaXhpcioqLCAqKkVsbSoqLCAqKkVpZmZlbCoqLCAqKkVybGFuZyoqLCAqKkdvKiosICoqR3Jvb3Z5KiosICoqSGFza2VsbCoqIChodHRwLWNsaWVudCwgU2VydmFudCksICoqSmF2YSoqIChBcGFjaGUgSHR0cENsaWVudCA0LngsIEFwYWNoZSBIdHRwQ2xpZW50IDUueCwgSmVyc2V5Mi54LCBPa0h0dHAsIFJldHJvZml0MS54LCBSZXRyb2ZpdDIueCwgRmVpZ24sIFJlc3RUZW1wbGF0ZSwgUkVTVEVhc3ksIFZlcnR4LCBHb29nbGUgQVBJIENsaWVudCBMaWJyYXJ5IGZvciBKYXZhLCBSZXN0LWFzc3VyZWQsIFNwcmluZyA1IFdlYiBDbGllbnQsIFNwcmluZyA2IFJlc3RDbGllbnQsIE1pY3JvUHJvZmlsZSBSZXN0IENsaWVudCwgSGVsaWRvbiksICoqSmV0YnJhaW5zIEhUVFAgQ2xpZW50KiosICoqSnVsaWEqKiwgKiprNioqLCAqKktvdGxpbioqLCAqKkx1YSoqLCAqKk40SlMqKiwgKipOaW0qKiwgKipOb2RlLmpzL0phdmFTY3JpcHQqKiAoRVM1LCBFUzYsIEFuZ3VsYXJKUyB3aXRoIEdvb2dsZSBDbG9zdXJlIENvbXBpbGVyIGFubm90YXRpb25zLCBGbG93IHR5cGVzLCBBcG9sbG8gR3JhcGhRTCBEYXRhU3RvcmUpLCAqKk9iamVjdGl2ZS1DKiosICoqT0NhbWwqKiwgKipQZXJsKiosICoqUEhQKiosICoqUG93ZXJTaGVsbCoqLCAqKlB5dGhvbioqLCAqKlIqKiwgKipSdWJ5KiosICoqUnVzdCoqIChoeXBlciwgcmVxd2VzdCwgcnVzdC1zZXJ2ZXIpLCAqKlNjYWxhKiogKGFra2EsIGh0dHA0cywgc2NhbGF6LCBzdHRwLCBzd2FnZ2VyLWFzeW5jLWh0dHBjbGllbnQsIHBla2tvKSwgKipTd2lmdCoqICgyLngsIDMueCwgNC54LCA1LngsIDYueCksICoqVHlwZXNjcmlwdCoqIChBbmd1bGFySlMsIEFuZ3VsYXIgKDkueCAtIDE4LngpLCBBdXJlbGlhLCBBeGlvcywgRmV0Y2gsIEludmVyc2lmeSwgalF1ZXJ5LCBOZXN0anMsIE5vZGUsIHJlZHV4LXF1ZXJ5LCBSeGpzKSwgKipYb0pvKiosICoqWmFwaWVyKiogfAp8ICoqU2VydmVyIHN0dWJzKiogICAgICAgICAgICAgICAgIHwgKipBZGEqKiwgKipDIyoqIChBU1AuTkVUIENvcmUsIEF6dXJlIEZ1bmN0aW9ucyksICoqQysrKiogKFBpc3RhY2hlLCBSZXN0YmVkLCBRdDUgUUhUVFBFbmdpbmUpLCAqKkVybGFuZyoqLCAqKkYjKiogKEdpcmFmZmUpLCAqKkdvKiogKG5ldC9odHRwLCBHaW4sIEVjaG8pLCAqKkhhc2tlbGwqKiAoU2VydmFudCwgWWVzb2QpLCAqKkphdmEqKiAoTVNGNEosIFNwcmluZywgVW5kZXJ0b3csIEpBWC1SUzogQ0RJLCBDWEYsIEluZmxlY3RvciwgSmVyc2V5LCBSZXN0RWFzeSwgUGxheSBGcmFtZXdvcmssIFtQS01TVF0oaHR0cHM6Ly9naXRodWIuY29tL1Byb0thcm1hLUluYy9wa21zdC1nZXR0aW5nLXN0YXJ0ZWQtZXhhbXBsZXMpLCBbVmVydC54XShodHRwczovL3ZlcnR4LmlvLyksIFtBcGFjaGUgQ2FtZWxdKGh0dHBzOi8vY2FtZWwuYXBhY2hlLm9yZy8pLCBbSGVsaWRvbl0oaHR0cHM6Ly9oZWxpZG9uLmlvLykpLCAqKkp1bGlhKiosICoqS290bGluKiogKFNwcmluZyBCb290LCBbS3Rvcl0oaHR0cHM6Ly9naXRodWIuY29tL2t0b3Jpby9rdG9yKSwgW1ZlcnQueF0oaHR0cHM6Ly92ZXJ0eC5pby8pKSwgKipQSFAqKiAoW0ZsaWdodF0oaHR0cHM6Ly9kb2NzLmZsaWdodHBocC5jb20vKSwgTGFyYXZlbCwgTHVtZW4sIFtNZXp6aW8gKGZrYSBaZW5kIEV4cHJlc3NpdmUpXShodHRwczovL2dpdGh1Yi5jb20vbWV6emlvL21lenppbyksIFNsaW0sIFNpbGV4LCBbU3ltZm9ueV0oaHR0cHM6Ly9zeW1mb255LmNvbS8pKSwgKipQeXRob24qKiAoRmFzdEFQSSwgRmxhc2spLCAqKk5vZGVKUyoqLCAqKlJ1YnkqKiAoU2luYXRyYSwgUmFpbHM1KSwgKipSdXN0KiogKFtydXN0LXNlcnZlcl0oaHR0cHM6Ly9vcGVuYXBpLWdlbmVyYXRvci50ZWNoL2RvY3MvZ2VuZXJhdG9ycy9ydXN0LXNlcnZlci8pKSwgKipTY2FsYSoqIChBa2thLCBbRmluY2hdKGh0dHBzOi8vZ2l0aHViLmNvbS9maW5hZ2xlL2ZpbmNoKSwgW0xhZ29tXShodHRwczovL2dpdGh1Yi5jb20vbGFnb20vbGFnb20pLCBbUGxheV0oaHR0cHM6Ly93d3cucGxheWZyYW1ld29yay5jb20vKSwgW0Nhc2tdKGh0dHBzOi8vZ2l0aHViLmNvbS9jb20tbGloYW95aS9jYXNrKSwgU2NhbGF0cmEpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKfCAqKkFQSSBkb2N1bWVudGF0aW9uIGdlbmVyYXRvcnMqKiB8ICoqSFRNTCoqLCAqKkNvbmZsdWVuY2UgV2lraSoqLCAqKkFzY2lpZG9jKiosICoqTWFya2Rvd24qKiwgKipQbGFudFVNTCoqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8CnwgKipDb25maWd1cmF0aW9uIGZpbGVzKiogICAgICAgICAgfCBbKipBcGFjaGUyKipdKGh0dHBzOi8vaHR0cGQuYXBhY2hlLm9yZy8pICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAp8ICoqT3RoZXJzKiogICAgICAgICAgICAgICAgICAgICAgIHwgKipHcmFwaFFMKiosICoqSk1ldGVyKiosICoqS3Rvcm0qKiwgKipNeVNRTCBTY2hlbWEqKiwgKipQb3N0bWFuIENvbGxlY3Rpb24qKiwgKipQcm90b2NvbCBCdWZmZXIqKiwgKipXU0RMKiogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKCiMjIFRhYmxlIG9mIGNvbnRlbnRzCgogIC0gW09wZW5BUEkgR2VuZXJhdG9yXSgjb3BlbmFwaS1nZW5lcmF0b3IpCiAgLSBbT3ZlcnZpZXddKCNvdmVydmlldykKICAtIFtUYWJsZSBvZiBDb250ZW50c10oI3RhYmxlLW9mLWNvbnRlbnRzKQogIC0gWzEgLSBJbnN0YWxsYXRpb25dKCMxLS0taW5zdGFsbGF0aW9uKQogICAgLSBbMS4xIC0gQ29tcGF0aWJpbGl0eV0oIzExLS0tY29tcGF0aWJpbGl0eSkKICAgIC0gWzEuMiAtIEFydGlmYWN0cyBvbiBNYXZlbiBDZW50cmFsXSgjMTItLS1hcnRpZmFjdHMtb24tbWF2ZW4tY2VudHJhbCkKICAgIC0gWzEuMyAtIERvd25sb2FkIEpBUl0oIzEzLS0tZG93bmxvYWQtamFyKQogICAgLSBbMS40IC0gQnVpbGQgUHJvamVjdHNdKCMxNC0tLWJ1aWxkLXByb2plY3RzKQogICAgLSBbMS41IC0gSG9tZWJyZXddKCMxNS0tLWhvbWVicmV3KQogICAgLSBbMS42IC0gRG9ja2VyXSgjMTYtLS1kb2NrZXIpCiAgICAtIFsxLjcgLSBOUE1dKCMxNy0tLW5wbSkKICAtIFsyIC0gR2V0dGluZyBTdGFydGVkXSgjMi0tLWdldHRpbmctc3RhcnRlZCkKICAtIFszIC0gVXNhZ2VdKCMzLS0tdXNhZ2UpCiAgICAtIFszLjEgLSBDdXN0b21pemF0aW9uXSgjMzEtLS1jdXN0b21pemF0aW9uKQogICAgLSBbMy4yIC0gV29ya2Zsb3cgSW50ZWdyYXRpb25dKCMzMi0tLXdvcmtmbG93LWludGVncmF0aW9uLW1hdmVuLWdyYWRsZS1naXRodWItY2ljZCkKICAgIC0gWzMuMyAtIE9ubGluZSBHZW5lcmF0b3JzXSgjMzMtLS1vbmxpbmUtb3BlbmFwaS1nZW5lcmF0b3IpCiAgICAtIFszLjQgLSBMaWNlbnNlIEluZm9ybWF0aW9uIG9uIEdlbmVyYXRlZCBDb2RlXSgjMzQtLS1saWNlbnNlLWluZm9ybWF0aW9uLW9uLWdlbmVyYXRlZC1jb2RlKQogICAgLSBbMy41IC0gSURFIEludGVncmF0aW9uXSgjMzUtLS1pZGUtaW50ZWdyYXRpb24pCiAgLSBbNCAtIENvbXBhbmllcy9Qcm9qZWN0cyB1c2luZyBPcGVuQVBJIEdlbmVyYXRvcl0oIzQtLS1jb21wYW5pZXNwcm9qZWN0cy11c2luZy1vcGVuYXBpLWdlbmVyYXRvcikKICAtIFs1IC0gUHJlc2VudGF0aW9ucy9WaWRlb3MvVHV0b3JpYWxzL0Jvb2tzXSgjNS0tLXByZXNlbnRhdGlvbnN2aWRlb3N0dXRvcmlhbHNib29rcykKICAtIFs2IC0gQWJvdXQgVXNdKCM2LS0tYWJvdXQtdXMpCiAgICAtIFs2LjEgLSBPcGVuQVBJIEdlbmVyYXRvciBDb3JlIFRlYW1dKCM2MS0tLW9wZW5hcGktZ2VuZXJhdG9yLWNvcmUtdGVhbSkKICAgIC0gWzYuMiAtIE9wZW5BUEkgR2VuZXJhdG9yIFRlY2huaWNhbCBDb21taXR0ZWVdKCM2Mi0tLW9wZW5hcGktZ2VuZXJhdG9yLXRlY2huaWNhbC1jb21taXR0ZWUpCiAgICAtIFs2LjMgLSBIaXN0b3J5IG9mIE9wZW5BUEkgR2VuZXJhdG9yXSgjNjMtLS1oaXN0b3J5LW9mLW9wZW5hcGktZ2VuZXJhdG9yKQogIC0gWzcgLSBMaWNlbnNlXSgjNy0tLWxpY2Vuc2UpCgojIyBbMSAtIEluc3RhbGxhdGlvbl0oI3RhYmxlLW9mLWNvbnRlbnRzKQoKIyMjIFsxLjEgLSBDb21wYXRpYmlsaXR5XSgjdGFibGUtb2YtY29udGVudHMpCgpUaGUgT3BlbkFQSSBTcGVjaWZpY2F0aW9uIGhhcyB1bmRlcmdvbmUgMyByZXZpc2lvbnMgc2luY2UgaW5pdGlhbCBjcmVhdGlvbiBpbiAyMDEwLiAgVGhlIG9wZW5hcGktZ2VuZXJhdG9yIHByb2plY3QgaGFzIHRoZSBmb2xsb3dpbmcgY29tcGF0aWJpbGl0aWVzIHdpdGggdGhlIE9wZW5BUEkgU3BlY2lmaWNhdGlvbjoKCnwgT3BlbkFQSSBHZW5lcmF0b3IgVmVyc2lvbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgUmVsZWFzZSBEYXRlIHwgTm90ZXMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8CnwgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSB8CnwgNy4xMC4wICh1cGNvbWluZyBtaW5vciByZWxlYXNlKSBbU05BUFNIT1RdKGh0dHBzOi8vb3NzLnNvbmF0eXBlLm9yZy9jb250ZW50L3JlcG9zaXRvcmllcy9zbmFwc2hvdHMvb3JnL29wZW5hcGl0b29scy9vcGVuYXBpLWdlbmVyYXRvci1jbGkvNy4xMC4wLVNOQVBTSE9ULykgfCAwNy4xMS4yMDI0ICAgfCBNaW5vciByZWxlYXNlIHdpdGggYnJlYWtpbmcgY2hhbmdlcyAod2l0aCBmYWxsYmFjaykgfAp8IFs3LjkuMF0oaHR0cHM6Ly9naXRodWIuY29tL09wZW5BUElUb29scy9vcGVuYXBpLWdlbmVyYXRvci9yZWxlYXNlcy90YWcvdjcuOS4wKSAobGF0ZXN0IHN0YWJsZSByZWxlYXNlKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IDA3LjEwLjIwMjQgICB8IE1pbm9yIHJlbGVhc2Ugd2l0aCBicmVha2luZyBjaGFuZ2VzICh3aXRoIGZhbGxiYWNrKSB8CnwgWzcuOC4wXShodHRwczovL2dpdGh1Yi5jb20vT3BlbkFQSVRvb2xzL29wZW5hcGktZ2VuZXJhdG9yL3JlbGVhc2VzL3RhZy92Ny44LjApIChsYXRlc3Qgc3RhYmxlIHJlbGVhc2UpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgMTkuMDguMjAyNCAgIHwgTWlub3IgcmVsZWFzZSB3aXRoIGJyZWFraW5nIGNoYW5nZXMgKHdpdGggZmFsbGJhY2spIHwKfCBbNi42LjBdKGh0dHBzOi8vZ2l0aHViLmNvbS9PcGVuQVBJVG9vbHMvb3BlbmFwaS1nZW5lcmF0b3IvcmVsZWFzZXMvdGFnL3Y2LjYuMCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAxMS4wNS4yMDIzICAgfCBNaW5vciByZWxlYXNlIHdpdGggYnJlYWtpbmcgY2hhbmdlcyAod2l0aCBmYWxsYmFjaykgfAp8IFs1LjQuMF0oaHR0cHM6Ly9naXRodWIuY29tL09wZW5BUElUb29scy9vcGVuYXBpLWdlbmVyYXRvci9yZWxlYXNlcy90YWcvdjUuNC4wKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IDMxLjAxLjIwMjIgICB8IE1pbm9yIHJlbGVhc2Ugd2l0aCBicmVha2luZyBjaGFuZ2VzICh3aXRoIGZhbGxiYWNrKSB8CnwgWzQuMy4xXShodHRwczovL2dpdGh1Yi5jb20vT3BlbkFQSVRvb2xzL29wZW5hcGktZ2VuZXJhdG9yL3JlbGVhc2VzL3RhZy92NC4zLjEpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgMDYuMDUuMjAyMCAgIHwgUGF0Y2ggcmVsZWFzZSAoZW5oYW5jZW1lbnRzLCBidWcgZml4ZXMsIGV0YykgICAgICAgICAgICAgICAgICAgICAgIHwKCk9wZW5BUEkgU3BlYyBjb21wYXRpYmlsaXR5OiAxLjAsIDEuMSwgMS4yLCAyLjAsIDMuMCwgMy4xIChiZXRhIHN1cHBvcnQpCgooV2UgZG8gbm90IHB1Ymxpc2ggZGFpbHkvbmlnaHRseSBidWlsZC4gUGxlYXNlIHVzZSBTTkFQU0hPVCBpbnN0ZWFkKQoKRm9yIG9sZCByZWxlYXNlcywgcGxlYXNlIHJlZmVyIHRvIHRoZSBbKipSZWxlYXNlKipdKGh0dHBzOi8vZ2l0aHViLmNvbS9PcGVuQVBJVG9vbHMvb3BlbmFwaS1nZW5lcmF0b3IvcmVsZWFzZXMpIHBhZ2UuCgpGb3IgZGVjb21pc3Npb25lZCBnZW5lcmF0b3JzL2xpYnJhcmllcy9mcmFtZXdvcmtzLCBwbGVhc2UgcmVmZXIgdG8gW3RoZSAiRGVjb21taXNzaW9uIiBsYWJlbF0oaHR0cHM6Ly9naXRodWIuY29tL09wZW5BUElUb29scy9vcGVuYXBpLWdlbmVyYXRvci9pc3N1ZXM/cT1sYWJlbCUzQURlY29tbWlzc2lvbitpcyUzQW1lcmdlZCspIGluIHRoZSBwdWxsIHJlcXVlc3QgcGFnZS4KCiMjIFsxLjIgLSBBcnRpZmFjdHMgb24gTWF2ZW4gQ2VudHJhbF0oI3RhYmxlLW9mLWNvbnRlbnRzKQoKWW91IGNhbiBmaW5kIG91ciByZWxlYXNlZCBhcnRpZmFjdHMgb24gbWF2ZW4gY2VudHJhbDoKCioqQ29yZToqKgpgYGB4bWwKPGRlcGVuZGVuY3k+CiAgICA8Z3JvdXBJZD5vcmcub3BlbmFwaXRvb2xzPC9ncm91cElkPgogICAgPGFydGlmYWN0SWQ+b3BlbmFwaS1nZW5lcmF0b3I8L2FydGlmYWN0SWQ+CiAgICA8dmVyc2lvbj4ke29wZW5hcGktZ2VuZXJhdG9yLXZlcnNpb259PC92ZXJzaW9uPgo8L2RlcGVuZGVuY3k+CmBgYApTZWUgdGhlIGRpZmZlcmVudCB2ZXJzaW9ucyBvZiB0aGUgW29wZW5hcGktZ2VuZXJhdG9yXShodHRwczovL3NlYXJjaC5tYXZlbi5vcmcvYXJ0aWZhY3Qvb3JnLm9wZW5hcGl0b29scy9vcGVuYXBpLWdlbmVyYXRvcikgYXJ0aWZhY3QgYXZhaWxhYmxlIG9uIG1hdmVuIGNlbnRyYWwuCgoqKkNsaToqKgpgYGB4bWwKPGRlcGVuZGVuY3k+CiAgICA8Z3JvdXBJZD5vcmcub3BlbmFwaXRvb2xzPC9ncm91cElkPgogICAgPGFydGlmYWN0SWQ+b3BlbmFwaS1nZW5lcmF0b3ItY2xpPC9hcnRpZmFjdElkPgogICAgPHZlcnNpb24+JHtvcGVuYXBpLWdlbmVyYXRvci12ZXJzaW9ufTwvdmVyc2lvbj4KPC9kZXBlbmRlbmN5PgpgYGAKU2VlIHRoZSBkaWZmZXJlbnQgdmVyc2lvbnMgb2YgdGhlIFtvcGVuYXBpLWdlbmVyYXRvci1jbGldKGh0dHBzOi8vc2VhcmNoLm1hdmVuLm9yZy9hcnRpZmFjdC9vcmcub3BlbmFwaXRvb2xzL29wZW5hcGktZ2VuZXJhdG9yLWNsaSkgYXJ0aWZhY3QgYXZhaWxhYmxlIG9uIG1hdmVuIGNlbnRyYWwuCgoqKk1hdmVuIHBsdWdpbjoqKgpgYGB4bWwKPGRlcGVuZGVuY3k+CiAgICA8Z3JvdXBJZD5vcmcub3BlbmFwaXRvb2xzPC9ncm91cElkPgogICAgPGFydGlmYWN0SWQ+b3BlbmFwaS1nZW5lcmF0b3ItbWF2ZW4tcGx1Z2luPC9hcnRpZmFjdElkPgogICAgPHZlcnNpb24+JHtvcGVuYXBpLWdlbmVyYXRvci12ZXJzaW9ufTwvdmVyc2lvbj4KPC9kZXBlbmRlbmN5PgpgYGAKKiBTZWUgdGhlIGRpZmZlcmVudCB2ZXJzaW9ucyBvZiB0aGUgW29wZW5hcGktZ2VuZXJhdG9yLW1hdmVuLXBsdWdpbl0oaHR0cHM6Ly9zZWFyY2gubWF2ZW4ub3JnL2FydGlmYWN0L29yZy5vcGVuYXBpdG9vbHMvb3BlbmFwaS1nZW5lcmF0b3ItbWF2ZW4tcGx1Z2luKSBhcnRpZmFjdCBhdmFpbGFibGUgb24gbWF2ZW4gY2VudHJhbC4KKiBbUmVhZG1lXShodHRwczovL2dpdGh1Yi5jb20vT3BlbkFQSVRvb2xzL29wZW5hcGktZ2VuZXJhdG9yL2Jsb2IvbWFzdGVyL21vZHVsZXMvb3BlbmFwaS1nZW5lcmF0b3ItbWF2ZW4tcGx1Z2luL1JFQURNRS5tZCkKCioqR3JhZGxlIHBsdWdpbjoqKgpgYGB4bWwKPGRlcGVuZGVuY3k+CiAgICA8Z3JvdXBJZD5vcmcub3BlbmFwaXRvb2xzPC9ncm91cElkPgogICAgPGFydGlmYWN0SWQ+b3BlbmFwaS1nZW5lcmF0b3ItZ3JhZGxlLXBsdWdpbjwvYXJ0aWZhY3RJZD4KICAgIDx2ZXJzaW9uPiR7b3BlbmFwaS1nZW5lcmF0b3ItdmVyc2lvbn08L3ZlcnNpb24+CjwvZGVwZW5kZW5jeT4KYGBgCiogU2VlIHRoZSBkaWZmZXJlbnQgdmVyc2lvbnMgb2YgdGhlIFtvcGVuYXBpLWdlbmVyYXRvci1ncmFkbGUtcGx1Z2luXShodHRwczovL3NlYXJjaC5tYXZlbi5vcmcvYXJ0aWZhY3Qvb3JnLm9wZW5hcGl0b29scy9vcGVuYXBpLWdlbmVyYXRvci1ncmFkbGUtcGx1Z2luKSBhcnRpZmFjdCBhdmFpbGFibGUgb24gbWF2ZW4gY2VudHJhbC4KKiBbUmVhZG1lXShodHRwczovL2dpdGh1Yi5jb20vT3BlbkFQSVRvb2xzL29wZW5hcGktZ2VuZXJhdG9yL2Jsb2IvbWFzdGVyL21vZHVsZXMvb3BlbmFwaS1nZW5lcmF0b3ItZ3JhZGxlLXBsdWdpbi9SRUFETUUuYWRvYykKCiMjIyBbMS4zIC0gRG93bmxvYWQgSkFSXSgjdGFibGUtb2YtY29udGVudHMpCjwhLS0gUkVMRUFTRV9WRVJTSU9OIC0tPgpJZiB5b3UncmUgbG9va2luZyBmb3IgdGhlIGxhdGVzdCBzdGFibGUgdmVyc2lvbiwgeW91IGNhbiBncmFiIGl0IGRpcmVjdGx5IGZyb20gTWF2ZW4ub3JnIChKYXZhIDExIHJ1bnRpbWUgYXQgYSBtaW5pbXVtKToKCkpBUiBsb2NhdGlvbjogYGh0dHBzOi8vcmVwbzEubWF2ZW4ub3JnL21hdmVuMi9vcmcvb3BlbmFwaXRvb2xzL29wZW5hcGktZ2VuZXJhdG9yLWNsaS83LjkuMC9vcGVuYXBpLWdlbmVyYXRvci1jbGktNy45LjAuamFyYAoKRm9yICoqTWFjL0xpbnV4KiogdXNlcnM6CmBgYHNoCndnZXQgaHR0cHM6Ly9yZXBvMS5tYXZlbi5vcmcvbWF2ZW4yL29yZy9vcGVuYXBpdG9vbHMvb3BlbmFwaS1nZW5lcmF0b3ItY2xpLzcuOS4wL29wZW5hcGktZ2VuZXJhdG9yLWNsaS03LjkuMC5qYXIgLU8gb3BlbmFwaS1nZW5lcmF0b3ItY2xpLmphcgpgYGAKCkZvciAqKldpbmRvd3MqKiB1c2VycywgeW91IHdpbGwgbmVlZCB0byBpbnN0YWxsIFt3Z2V0XShodHRwOi8vZ251d2luMzIuc291cmNlZm9yZ2UubmV0L3BhY2thZ2VzL3dnZXQuaHRtKSBvciB5b3UgY2FuIHVzZSBJbnZva2UtV2ViUmVxdWVzdCBpbiBQb3dlclNoZWxsICgzLjArKSwgZS5nLgpgYGAKSW52b2tlLVdlYlJlcXVlc3QgLU91dEZpbGUgb3BlbmFwaS1nZW5lcmF0b3ItY2xpLmphciBodHRwczovL3JlcG8xLm1hdmVuLm9yZy9tYXZlbjIvb3JnL29wZW5hcGl0b29scy9vcGVuYXBpLWdlbmVyYXRvci1jbGkvNy45LjAvb3BlbmFwaS1nZW5lcmF0b3ItY2xpLTcuOS4wLmphcgpgYGAKCkFmdGVyIGRvd25sb2FkaW5nIHRoZSBKQVIsIHJ1biBgamF2YSAtamFyIG9wZW5hcGktZ2VuZXJhdG9yLWNsaS5qYXIgaGVscGAgdG8gc2hvdyB0aGUgdXNhZ2UuCgpGb3IgTWFjIHVzZXJzLCBwbGVhc2UgbWFrZSBzdXJlIEphdmEgMTEgaXMgaW5zdGFsbGVkIChUaXBzOiBydW4gYGphdmEgLXZlcnNpb25gIHRvIGNoZWNrIHRoZSB2ZXJzaW9uKSwgYW5kIGV4cG9ydCBgSkFWQV9IT01FYCBpbiBvcmRlciB0byB1c2UgdGhlIHN1cHBvcnRlZCBKYXZhIHZlcnNpb246CmBgYHNoCmV4cG9ydCBKQVZBX0hPTUU9YC91c3IvbGliZXhlYy9qYXZhX2hvbWUgLXYgMS4xMWAKZXhwb3J0IFBBVEg9JHtKQVZBX0hPTUV9L2JpbjokUEFUSApgYGAKCjwhLS0gL1JFTEVBU0VfVkVSU0lPTiAtLT4KIyMjIExhdW5jaGVyIFNjcmlwdAoKT25lIGRvd25zaWRlIHRvIG1hbnVhbCBqYXIgZG93bmxvYWRzIGlzIHRoYXQgeW91IGRvbid0IGtlZXAgdXAtdG8tZGF0ZSB3aXRoIHRoZSBsYXRlc3QgcmVsZWFzZWQgdmVyc2lvbi4gV2UgaGF2ZSBhIEJhc2ggbGF1bmNoZXIgc2NyaXB0IGF0IFtiaW4vdXRpbHMvb3BlbmFwaS1nZW5lcmF0b3IuY2xpLnNoXSguL2Jpbi91dGlscy9vcGVuYXBpLWdlbmVyYXRvci1jbGkuc2gpIHdoaWNoIHJlc29sdmVzIHRoaXMgaXNzdWUuCgpUbyBpbnN0YWxsIHRoZSBsYXVuY2hlciBzY3JpcHQsIGNvcHkgdGhlIGNvbnRlbnRzIG9mIHRoZSBzY3JpcHQgdG8gYSBsb2NhdGlvbiBvbiB5b3VyIHBhdGggYW5kIG1ha2UgdGhlIHNjcmlwdCBleGVjdXRhYmxlLgoKQW4gZXhhbXBsZSBvZiBzZXR0aW5nIHRoaXMgdXAgKE5PVEU6IEFsd2F5cyBldmFsdWF0ZSBzY3JpcHRzIGN1cmxlZCBmcm9tIGV4dGVybmFsIHN5c3RlbXMgYmVmb3JlIGV4ZWN1dGluZyB0aGVtKS4KCmBgYApta2RpciAtcCB+L2Jpbi9vcGVuYXBpdG9vbHMKY3VybCBodHRwczovL3Jhdy5naXRodWJ1c2VyY29udGVudC5jb20vT3BlbkFQSVRvb2xzL29wZW5hcGktZ2VuZXJhdG9yL21hc3Rlci9iaW4vdXRpbHMvb3BlbmFwaS1nZW5lcmF0b3ItY2xpLnNoID4gfi9iaW4vb3BlbmFwaXRvb2xzL29wZW5hcGktZ2VuZXJhdG9yLWNsaQpjaG1vZCB1K3ggfi9iaW4vb3BlbmFwaXRvb2xzL29wZW5hcGktZ2VuZXJhdG9yLWNsaQpleHBvcnQgUEFUSD0kUEFUSDp+L2Jpbi9vcGVuYXBpdG9vbHMvCmBgYAoKTm93LCBgb3BlbmFwaS1nZW5lcmF0b3ItY2xpYCBpcyAiaW5zdGFsbGVkIi4gT24gaW52b2NhdGlvbiwgaXQgd2lsbCBxdWVyeSB0aGUgR2l0SHViIHJlcG9zaXRvcnkgZm9yIHRoZSBtb3N0IHJlY2VudGx5IHJlbGVhc2VkIHZlcnNpb24uIElmIHRoaXMgbWF0Y2hlcyB0aGUgbGFzdCBkb3dubG9hZGVkIGphciwKaXQgd2lsbCBleGVjdXRlIGFzIG5vcm1hbC4gSWYgYSBuZXdlciB2ZXJzaW9uIGlzIGZvdW5kLCB0aGUgc2NyaXB0IHdpbGwgZG93bmxvYWQgdGhlIGxhdGVzdCByZWxlYXNlIGFuZCBleGVjdXRlIGl0LgoKSWYgeW91IG5lZWQgdG8gaW52b2tlIGFuIG9sZGVyIHZlcnNpb24gb2YgdGhlIGdlbmVyYXRvciwgeW91IGNhbiBkZWZpbmUgdGhlIHZhcmlhYmxlIGBPUEVOQVBJX0dFTkVSQVRPUl9WRVJTSU9OYCBlaXRoZXIgYWQgaG9jIG9yIGdsb2JhbGx5LiBZb3UgY2FuIGV4cG9ydCB0aGlzIHZhcmlhYmxlIGlmIHlvdSdkIGxpa2UgdG8gcGVyc2lzdCBhIHNwZWNpZmljIHJlbGVhc2UgdmVyc2lvbi4KCkV4YW1wbGVzOgoKYGBgCiMgRXhlY3V0ZSBsYXRlc3QgcmVsZWFzZWQgb3BlbmFwaS1nZW5lcmF0b3ItY2xpCm9wZW5hcGktZ2VuZXJhdG9yLWNsaSB2ZXJzaW9uCgojIEV4ZWN1dGUgdmVyc2lvbiA0LjEuMCBmb3IgdGhlIGN1cnJlbnQgaW52b2NhdGlvbiwgcmVnYXJkbGVzcyBvZiB0aGUgbGF0ZXN0IHJlbGVhc2VkIHZlcnNpb24KT1BFTkFQSV9HRU5FUkFUT1JfVkVSU0lPTj00LjEuMCBvcGVuYXBpLWdlbmVyYXRvci1jbGkgdmVyc2lvbgoKIyBFeGVjdXRlIHZlcnNpb24gNC4xLjAtU05BUFNIT1QgZm9yIHRoZSBjdXJyZW50IGludm9jYXRpb24KT1BFTkFQSV9HRU5FUkFUT1JfVkVSU0lPTj00LjEuMC1TTkFQU0hPVCBvcGVuYXBpLWdlbmVyYXRvci1jbGkgdmVyc2lvbgoKIyBFeGVjdXRlIHZlcnNpb24gNC4wLjIgZm9yIGV2ZXJ5IGludm9jYXRpb24gaW4gdGhlIGN1cnJlbnQgc2hlbGwgc2Vzc2lvbgpleHBvcnQgT1BFTkFQSV9HRU5FUkFUT1JfVkVSU0lPTj00LjAuMgpvcGVuYXBpLWdlbmVyYXRvci1jbGkgdmVyc2lvbiAjIGlzIDQuMC4yCm9wZW5hcGktZ2VuZXJhdG9yLWNsaSB2ZXJzaW9uICMgaXMgYWxzbyA0LjAuMgoKIyBUbyAiaW5zdGFsbCIgYSBzcGVjaWZpYyB2ZXJzaW9uLCBzZXQgdGhlIHZhcmlhYmxlIGluIC5iYXNocmMvLmJhc2hfcHJvZmlsZQplY2hvICJleHBvcnQgT1BFTkFQSV9HRU5FUkFUT1JfVkVSU0lPTj00LjAuMiIgPj4gfi8uYmFzaHJjCnNvdXJjZSB+Ly5iYXNocmMKb3BlbmFwaS1nZW5lcmF0b3ItY2xpIHZlcnNpb24gIyBpcyBhbHdheXMgNC4wLjIsIHVubGVzcyBhbnkgb2YgdGhlIGFib3ZlIG92ZXJyaWRlcyBhcmUgZG9uZSBhZCBob2MKYGBgCgojIyMgWzEuNCAtIEJ1aWxkIFByb2plY3RzXSgjdGFibGUtb2YtY29udGVudHMpCgpUbyBidWlsZCBmcm9tIHNvdXJjZSwgeW91IG5lZWQgdGhlIGZvbGxvd2luZyBpbnN0YWxsZWQgYW5kIGF2YWlsYWJsZSBpbiB5b3VyIGAkUEFUSDpgCgoqIFtKYXZhIDExXShodHRwczovL2Fkb3B0aXVtLm5ldC8pCgoqIFtBcGFjaGUgTWF2ZW4gMy44Ljggb3IgZ3JlYXRlcl0oaHR0cHM6Ly9tYXZlbi5hcGFjaGUub3JnLykgKG9wdGlvbmFsKQoKQWZ0ZXIgY2xvbmluZyB0aGUgcHJvamVjdCwgeW91IGNhbiBidWlsZCBpdCBmcm9tIHNvdXJjZSB1c2luZyBbbWF2ZW4gd3JhcHBlcl0oaHR0cHM6Ly9tYXZlbi5hcGFjaGUub3JnL3dyYXBwZXIvKToKCi0gTGludXg6IGAuL212bncgY2xlYW4gaW5zdGFsbGAKLSBXaW5kb3dzOiBgbXZudy5jbWQgY2xlYW4gaW5zdGFsbGAKCiMjIyMgTml4IHVzZXJzCgpJZiB5b3UncmUgYSBuaXggdXNlciwgeW91IGNhbiBlbnRlciBPcGVuQVBJIEdlbmVyYXRvciBzaGVsbCwgYnkgdHlwaW5nOgpgYGBzaApuaXggZGV2ZWxvcApgYGAKSXQgd2lsbCBlbnRlciBhIHNoZWxsIHdpdGggSmF2YSAxMSBpbnN0YWxsZWQuCgpEaXJlbnYgc3VwcG9ydHMgYXV0b21hdGljYWxseSBsb2FkaW5nIG9mIHRoZSBuaXggZGV2ZWxvcGVyIHNoZWxsLCBzbyBpZiB5b3UncmUgdXNpbmcgZGlyZW52IHRvbywgdHlwZToKYGBgc2gKZGlyZW52IGFsbG93CmBgYAphbmQgaGF2ZSBgamF2YWAgYW5kIGBtdm5gIHNldCB1cCB3aXRoIGNvcnJlY3QgdmVyc2lvbnMgZWFjaCB0aW1lIHlvdSBlbnRlciBwcm9qZWN0IGRpcmVjdG9yeS4KClRoZSBkZWZhdWx0IGJ1aWxkIGNvbnRhaW5zIG1pbmltYWwgc3RhdGljIGFuYWx5c2lzICh2aWEgQ2hlY2tTdHlsZSkuIFRvIHJ1biB5b3VyIGJ1aWxkIHdpdGggUE1EIGFuZCBTcG90YnVncywgdXNlIHRoZSBgc3RhdGljLWFuYWx5c2lzYCBwcm9maWxlOgoKLSBMaW51eDogYC4vbXZudyAtUHN0YXRpYy1hbmFseXNpcyBjbGVhbiBpbnN0YWxsYAotIFdpbmRvd3M6IGBtdm53LmNtZCAtUHN0YXRpYy1hbmFseXNpcyBjbGVhbiBpbnN0YWxsYAoKIyMjIFsxLjUgLSBIb21lYnJld10oI3RhYmxlLW9mLWNvbnRlbnRzKQoKVG8gaW5zdGFsbCwgcnVuIGBicmV3IGluc3RhbGwgb3BlbmFwaS1nZW5lcmF0b3JgCgpIZXJlIGlzIGFuIGV4YW1wbGUgdXNhZ2UgdG8gZ2VuZXJhdGUgYSBSdWJ5IGNsaWVudDoKYGBgc2gKb3BlbmFwaS1nZW5lcmF0b3IgZ2VuZXJhdGUgLWkgaHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL29wZW5hcGl0b29scy9vcGVuYXBpLWdlbmVyYXRvci9tYXN0ZXIvbW9kdWxlcy9vcGVuYXBpLWdlbmVyYXRvci9zcmMvdGVzdC9yZXNvdXJjZXMvM18wL3BldHN0b3JlLnlhbWwgLWcgcnVieSAtbyAvdG1wL3Rlc3QvCmBgYAoKVG8gcmVpbnN0YWxsIHdpdGggdGhlIGxhdGVzdCBtYXN0ZXIsIHJ1biBgYnJldyB1bmluc3RhbGwgb3BlbmFwaS1nZW5lcmF0b3IgJiYgYnJldyBpbnN0YWxsIC0tSEVBRCBvcGVuYXBpLWdlbmVyYXRvcmAKClRvIGluc3RhbGwgT3BlbkpESyAocHJlLXJlcXVpc2l0ZXMpLCBwbGVhc2UgcnVuCmBgYHNoCmJyZXcgdGFwIEFkb3B0T3BlbkpESy9vcGVuamRrCmJyZXcgaW5zdGFsbCAtLWNhc2sgYWRvcHRvcGVuamRrMTEKZXhwb3J0IEpBVkFfSE9NRT1gL3Vzci9saWJleGVjL2phdmFfaG9tZSAtdiAxLjExYApgYGAKCm9yIGRvd25sb2FkIGluc3RhbGxlciB2aWEgaHR0cHM6Ly9hZG9wdGl1bS5uZXQvCgpUbyBpbnN0YWxsIE1hdmVuIChvcHRpb25hbCksIHBsZWFzZSBydW4KYGBgc2gKYnJldyBpbnN0YWxsIG1hdmVuCmBgYAoKIyMjIFsxLjYgLSBEb2NrZXJdKCN0YWJsZS1vZi1jb250ZW50cykKCiMjIyMgUHVibGljIFByZS1idWlsdCBEb2NrZXIgaW1hZ2VzCgogLSBbaHR0cHM6Ly9odWIuZG9ja2VyLmNvbS9yL29wZW5hcGl0b29scy9vcGVuYXBpLWdlbmVyYXRvci1jbGkvXShodHRwczovL2h1Yi5kb2NrZXIuY29tL3Ivb3BlbmFwaXRvb2xzL29wZW5hcGktZ2VuZXJhdG9yLWNsaS8pIChvZmZpY2lhbCBDTEkpCiAtIFtodHRwczovL2h1Yi5kb2NrZXIuY29tL3Ivb3BlbmFwaXRvb2xzL29wZW5hcGktZ2VuZXJhdG9yLW9ubGluZS9dKGh0dHBzOi8vaHViLmRvY2tlci5jb20vci9vcGVuYXBpdG9vbHMvb3BlbmFwaS1nZW5lcmF0b3Itb25saW5lLykgKG9mZmljaWFsIHdlYiBzZXJ2aWNlKQoKCiMjIyMgT3BlbkFQSSBHZW5lcmF0b3IgQ0xJIERvY2tlciBJbWFnZQoKVGhlIE9wZW5BUEkgR2VuZXJhdG9yIGltYWdlIGFjdHMgYXMgYSBzdGFuZGFsb25lIGV4ZWN1dGFibGUuIEl0IGNhbiBiZSB1c2VkIGFzIGFuIGFsdGVybmF0aXZlIHRvIGluc3RhbGxpbmcgdmlhIGhvbWVicmV3LCBvciBmb3IgZGV2ZWxvcGVycyB3aG8gYXJlIHVuYWJsZSB0byBpbnN0YWxsIEphdmEgb3IgdXBncmFkZSB0aGUgaW5zdGFsbGVkIHZlcnNpb24uCgpUbyBnZW5lcmF0ZSBjb2RlIHdpdGggdGhpcyBpbWFnZSwgeW91J2xsIG5lZWQgdG8gbW91bnQgYSBsb2NhbCBsb2NhdGlvbiBhcyBhIHZvbHVtZS4KCkV4YW1wbGU6CgpgYGBzaApkb2NrZXIgcnVuIC0tcm0gLXYgIiR7UFdEfTovbG9jYWwiIG9wZW5hcGl0b29scy9vcGVuYXBpLWdlbmVyYXRvci1jbGkgZ2VuZXJhdGUgXAogICAgLWkgaHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL29wZW5hcGl0b29scy9vcGVuYXBpLWdlbmVyYXRvci9tYXN0ZXIvbW9kdWxlcy9vcGVuYXBpLWdlbmVyYXRvci9zcmMvdGVzdC9yZXNvdXJjZXMvM18wL3BldHN0b3JlLnlhbWwgXAogICAgLWcgZ28gXAogICAgLW8gL2xvY2FsL291dC9nbwpgYGAKClRoZSBnZW5lcmF0ZWQgY29kZSB3aWxsIGJlIGxvY2F0ZWQgdW5kZXIgYC4vb3V0L2dvYCBpbiB0aGUgY3VycmVudCBkaXJlY3RvcnkuCgojIyMjIE9wZW5BUEkgR2VuZXJhdG9yIE9ubGluZSBEb2NrZXIgSW1hZ2UKClRoZSBvcGVuYXBpLWdlbmVyYXRvci1vbmxpbmUgaW1hZ2UgY2FuIGFjdCBhcyBhIHNlbGYtaG9zdGVkIHdlYiBhcHBsaWNhdGlvbiBhbmQgQVBJIGZvciBnZW5lcmF0aW5nIGNvZGUuIFRoaXMgY29udGFpbmVyIGNhbiBiZSBpbmNvcnBvcmF0ZWQgaW50byBhIENJIHBpcGVsaW5lLCBhbmQgcmVxdWlyZXMgYXQgbGVhc3QgdHdvIEhUVFAgcmVxdWVzdHMgYW5kIHNvbWUgZG9ja2VyIG9yY2hlc3RyYXRpb24gdG8gYWNjZXNzIGdlbmVyYXRlZCBjb2RlLgoKRXhhbXBsZSB1c2FnZToKCmBgYHNoCiMgU3RhcnQgY29udGFpbmVyIGF0IHBvcnQgODg4OCBhbmQgc2F2ZSB0aGUgY29udGFpbmVyIGlkCj4gQ0lEPSQoZG9ja2VyIHJ1biAtZCAtcCA4ODg4OjgwODAgb3BlbmFwaXRvb2xzL29wZW5hcGktZ2VuZXJhdG9yLW9ubGluZSkKCiMgYWxsb3cgZm9yIHN0YXJ0dXAKPiBzbGVlcCAxMAoKIyBHZXQgdGhlIElQIG9mIHRoZSBydW5uaW5nIGNvbnRhaW5lciAob3B0aW9uYWwpCkdFTl9JUD0kKGRvY2tlciBpbnNwZWN0IC0tZm9ybWF0ICd7ey5OZXR3b3JrU2V0dGluZ3MuSVBBZGRyZXNzfX0nICAkQ0lEKQoKIyBFeGVjdXRlIGFuIEhUVFAgcmVxdWVzdCB0byBnZW5lcmF0ZSBhIFJ1YnkgY2xpZW50Cj4gY3VybCAtWCBQT1NUIC0taGVhZGVyICdDb250ZW50LVR5cGU6IGFwcGxpY2F0aW9uL2pzb24nIC0taGVhZGVyICdBY2NlcHQ6IGFwcGxpY2F0aW9uL2pzb24nIFwKLWQgJ3sib3BlbkFQSVVybCI6ICJodHRwczovL3Jhdy5naXRodWJ1c2VyY29udGVudC5jb20vb3BlbmFwaXRvb2xzL29wZW5hcGktZ2VuZXJhdG9yL21hc3Rlci9tb2R1bGVzL29wZW5hcGktZ2VuZXJhdG9yL3NyYy90ZXN0L3Jlc291cmNlcy8zXzAvcGV0c3RvcmUueWFtbCJ9JyBcCidodHRwOi8vbG9jYWxob3N0Ojg4ODgvYXBpL2dlbi9jbGllbnRzL3J1YnknCgp7ImNvZGUiOiJjMmQ0ODMuMy40NjcyLTQwZTktOTFkZi1iOWZmZDE4ZDIyYjgiLCJsaW5rIjoiaHR0cDovL2xvY2FsaG9zdDo4ODg4L2FwaS9nZW4vZG93bmxvYWQvYzJkNDgzLjMuNDY3Mi00MGU5LTkxZGYtYjlmZmQxOGQyMmI4In0KCiMgRG93bmxvYWQgdGhlIGdlbmVyYXRlZCB6aXAgZmlsZQo+IHdnZXQgaHR0cDovL2xvY2FsaG9zdDo4ODg4L2FwaS9nZW4vZG93bmxvYWQvYzJkNDgzLjMuNDY3Mi00MGU5LTkxZGYtYjlmZmQxOGQyMmI4CgojIFVuemlwIHRoZSBmaWxlCj4gdW56aXAgYzJkNDgzLjMuNDY3Mi00MGU5LTkxZGYtYjlmZmQxOGQyMmI4CgojIFNodXRkb3duIHRoZSBvcGVuYXBpIGdlbmVyYXRvciBpbWFnZQo+IGRvY2tlciBzdG9wICRDSUQgJiYgZG9ja2VyIHJtICRDSUQKYGBgCgojIyMjIERldmVsb3BtZW50IGluIGRvY2tlcgoKWW91IGNhbiB1c2UgYHJ1bi1pbi1kb2NrZXIuc2hgIHRvIGRvIGFsbCBkZXZlbG9wbWVudC4gVGhpcyBzY3JpcHQgbWFwcyB5b3VyIGxvY2FsIHJlcG9zaXRvcnkgdG8gYC9nZW5gCmluIHRoZSBkb2NrZXIgY29udGFpbmVyLiBJdCBhbHNvIG1hcHMgYH4vLm0yL3JlcG9zaXRvcnlgIHRvIHRoZSBhcHByb3ByaWF0ZSBjb250YWluZXIgbG9jYXRpb24uCgpUbyBleGVjdXRlIGBtdm4gcGFja2FnZWA6CgpgYGBzaApnaXQgY2xvbmUgaHR0cHM6Ly9naXRodWIuY29tL29wZW5hcGl0b29scy9vcGVuYXBpLWdlbmVyYXRvcgpjZCBvcGVuYXBpLWdlbmVyYXRvcgouL3J1bi1pbi1kb2NrZXIuc2ggbXZuIHBhY2thZ2UKYGBgCgpCdWlsZCBhcnRpZmFjdHMgYXJlIG5vdyBhY2Nlc3NpYmxlIGluIHlvdXIgd29ya2luZyBkaXJlY3RvcnkuCgpPbmNlIGJ1aWx0LCBgcnVuLWluLWRvY2tlci5zaGAgd2lsbCBhY3QgYXMgYW4gZXhlY3V0YWJsZSBmb3Igb3BlbmFwaS1nZW5lcmF0b3ItY2xpLiBUbyBnZW5lcmF0ZSBjb2RlLCB5b3UnbGwgbmVlZCB0byBvdXRwdXQgdG8gYSBkaXJlY3RvcnkgdW5kZXIgYC9nZW5gIChlLmcuIGAvZ2VuL291dGApLiBGb3IgZXhhbXBsZToKCmBgYHNoCi4vcnVuLWluLWRvY2tlci5zaCBoZWxwICMgRXhlY3V0ZXMgJ2hlbHAnIGNvbW1hbmQgZm9yIG9wZW5hcGktZ2VuZXJhdG9yLWNsaQouL3J1bi1pbi1kb2NrZXIuc2ggbGlzdCAjIEV4ZWN1dGVzICdsaXN0JyBjb21tYW5kIGZvciBvcGVuYXBpLWdlbmVyYXRvci1jbGkKLi9ydW4taW4tZG9ja2VyLnNoIGdlbmVyYXRlIC1pIG1vZHVsZXMvb3BlbmFwaS1nZW5lcmF0b3Ivc3JjL3Rlc3QvcmVzb3VyY2VzLzNfMC9wZXRzdG9yZS55YW1sIFwKICAgIC1nIGdvIC1vIC9nZW4vb3V0L2dvLXBldHN0b3JlIC1wIHBhY2thZ2VOYW1lPXBldHN0b3JlICMgZ2VuZXJhdGVzIGdvIGNsaWVudCwgb3V0cHV0cyBsb2NhbGx5IHRvIC4vb3V0L2dvLXBldHN0b3JlCmBgYAoKIyMjIyMgVHJvdWJsZXNob290aW5nCgpJZiBhbiBlcnJvciBsaWtlIHRoaXMgb2NjdXJzLCBqdXN0IGV4ZWN1dGUgdGhlICoqLi9tdm53IGNsZWFuIGluc3RhbGwgLVUqKiBjb21tYW5kOgoKPiBvcmcuYXBhY2hlLm1hdmVuLmxpZmVjeWNsZS5MaWZlY3ljbGVFeGVjdXRpb25FeGNlcHRpb246IEZhaWxlZCB0byBleGVjdXRlIGdvYWwgb3JnLmFwYWNoZS5tYXZlbi5wbHVnaW5zOm1hdmVuLXN1cmVmaXJlLXBsdWdpbjoyLjE5LjE6dGVzdCAoZGVmYXVsdC10ZXN0KSBvbiBwcm9qZWN0IG9wZW5hcGktZ2VuZXJhdG9yOiBBIHR5cGUgaW5jb21wYXRpYmlsaXR5IG9jY3VycmVkIHdoaWxlIGV4ZWN1dGluZyBvcmcuYXBhY2hlLm1hdmVuLnBsdWdpbnM6bWF2ZW4tc3VyZWZpcmUtcGx1Z2luOjIuMTkuMTp0ZXN0OiBqYXZhLmxhbmcuRXhjZXB0aW9uSW5Jbml0aWFsaXplckVycm9yIGNhbm5vdCBiZSBjYXN0IHRvIGphdmEuaW8uSU9FeGNlcHRpb24KCmBgYHNoCi4vcnVuLWluLWRvY2tlci5zaCAuL212bncgY2xlYW4gaW5zdGFsbCAtVQpgYGAKCj4gRmFpbGVkIHRvIGV4ZWN1dGUgZ29hbCBvcmcuZm9ydGFzb2Z0OmdyYWRsZS1tYXZlbi1wbHVnaW46MS4wLjg6aW52b2tlIChkZWZhdWx0KSBvbiBwcm9qZWN0IG9wZW5hcGktZ2VuZXJhdG9yLWdyYWRsZS1wbHVnaW4tbXZuLXdyYXBwZXI6IG9yZy5ncmFkbGUudG9vbGluZy5CdWlsZEV4Y2VwdGlvbjogQ291bGQgbm90IGV4ZWN1dGUgYnVpbGQgdXNpbmcgR3JhZGxlIGRpc3RyaWJ1dGlvbiAnaHR0cHM6Ly9zZXJ2aWNlcy5ncmFkbGUub3JnL2Rpc3RyaWJ1dGlvbnMvZ3JhZGxlLTQuNy1iaW4uemlwJwoKUmlnaHQgbm93OiBubyBzb2x1dGlvbiBmb3IgdGhpcyBvbmUgOnwKCiMjIyMgUnVuIERvY2tlciBpbiBWYWdyYW50ClByZXJlcXVpc2l0ZTogaW5zdGFsbCBbVmFncmFudF0oaHR0cHM6Ly93d3cudmFncmFudHVwLmNvbS9kb3dubG9hZHMuaHRtbCkgYW5kIFtWaXJ0dWFsQm94XShodHRwczovL3d3dy52aXJ0dWFsYm94Lm9yZy93aWtpL0Rvd25sb2FkcykuCiBgYGBzaApnaXQgY2xvbmUgaHR0cHM6Ly9naXRodWIuY29tL29wZW5hcGl0b29scy9vcGVuYXBpLWdlbmVyYXRvci5naXQKY2Qgb3BlbmFwaS1nZW5lcmF0b3IKdmFncmFudCB1cAp2YWdyYW50IHNzaApjZCAvdmFncmFudAouL3J1bi1pbi1kb2NrZXIuc2ggLi9tdm53IHBhY2thZ2UKYGBgCgojIyMgWzEuNyAtIE5QTV0oI3RhYmxlLW9mLWNvbnRlbnRzKQoKVGhlcmUgaXMgYWxzbyBhbiBbTlBNIHBhY2thZ2Ugd3JhcHBlcl0oaHR0cHM6Ly93d3cubnBtanMuY29tL3BhY2thZ2UvQG9wZW5hcGl0b29scy9vcGVuYXBpLWdlbmVyYXRvci1jbGkpIGF2YWlsYWJsZSBmb3IgZGlmZmVyZW50IHBsYXRmb3JtcyAoZS5nLiBMaW51eCwgTWFjLCBXaW5kb3dzKS4gKEpWTSBpcyBzdGlsbCByZXF1aXJlZCkKUGxlYXNlIHNlZSB0aGUgW3Byb2plY3QncyBSRUFETUVdKGh0dHBzOi8vZ2l0aHViLmNvbS9vcGVuYXBpdG9vbHMvb3BlbmFwaS1nZW5lcmF0b3ItY2xpKSB0aGVyZSBmb3IgbW9yZSBpbmZvcm1hdGlvbi4KCkluc3RhbGwgaXQgZ2xvYmFsbHkgdG8gZ2V0IHRoZSBDTEkgYXZhaWxhYmxlIG9uIHRoZSBjb21tYW5kIGxpbmU6CgpgYGBzaApucG0gaW5zdGFsbCBAb3BlbmFwaXRvb2xzL29wZW5hcGktZ2VuZXJhdG9yLWNsaSAtZwpvcGVuYXBpLWdlbmVyYXRvci1jbGkgdmVyc2lvbgpgYGAKCjwhLS0gUkVMRUFTRV9WRVJTSU9OIC0tPgpUbyB1c2UgYSBzcGVjaWZpYyB2ZXJzaW9uIG9mICJvcGVuYXBpLWdlbmVyYXRvci1jbGkiCgpgYGBzaApvcGVuYXBpLWdlbmVyYXRvci1jbGkgdmVyc2lvbi1tYW5hZ2VyIHNldCA3LjkuMApgYGAKCk9yIGluc3RhbGwgaXQgYXMgZGV2LWRlcGVuZGVuY3k6CgpgYGBzaApucG0gaW5zdGFsbCBAb3BlbmFwaXRvb2xzL29wZW5hcGktZ2VuZXJhdG9yLWNsaSAtRApgYGAKPCEtLSAvUkVMRUFTRV9WRVJTSU9OIC0tPgoKWW91IGNhbiB1c2UgW2xvY2FsbHkgYnVpbHQgSkFSc10oaHR0cHM6Ly9naXRodWIuY29tL09wZW5BUElUb29scy9vcGVuYXBpLWdlbmVyYXRvci1jbGk/dGFiPXJlYWRtZS1vdi1maWxlI3VzZS1sb2NhbGx5LWJ1aWx0LWphcikgb3IgW2BTTkFQU0hPVGAgdmVyc2lvbnNdKGh0dHBzOi8vZ2l0aHViLmNvbS9PcGVuQVBJVG9vbHMvb3BlbmFwaS1nZW5lcmF0b3ItY2xpP3RhYj1yZWFkbWUtb3YtZmlsZSN1c2UtbmlnaHRseS1zbmFwc2hvdC1idWlsZCkgYXMgd2VsbC4KCiMjIFsyIC0gR2V0dGluZyBTdGFydGVkXSgjdGFibGUtb2YtY29udGVudHMpCgpUbyBnZW5lcmF0ZSBhIFBIUCBjbGllbnQgZm9yIFtwZXRzdG9yZS55YW1sXShodHRwczovL3Jhdy5naXRodWJ1c2VyY29udGVudC5jb20vb3BlbmFwaXRvb2xzL29wZW5hcGktZ2VuZXJhdG9yL21hc3Rlci9tb2R1bGVzL29wZW5hcGktZ2VuZXJhdG9yL3NyYy90ZXN0L3Jlc291cmNlcy8zXzAvcGV0c3RvcmUueWFtbCksIHBsZWFzZSBydW4gdGhlIGZvbGxvd2luZwpgYGBzaApnaXQgY2xvbmUgaHR0cHM6Ly9naXRodWIuY29tL29wZW5hcGl0b29scy9vcGVuYXBpLWdlbmVyYXRvcgpjZCBvcGVuYXBpLWdlbmVyYXRvcgouL212bncgY2xlYW4gcGFja2FnZQpqYXZhIC1qYXIgbW9kdWxlcy9vcGVuYXBpLWdlbmVyYXRvci1jbGkvdGFyZ2V0L29wZW5hcGktZ2VuZXJhdG9yLWNsaS5qYXIgZ2VuZXJhdGUgXAogICAtaSBodHRwczovL3Jhdy5naXRodWJ1c2VyY29udGVudC5jb20vb3BlbmFwaXRvb2xzL29wZW5hcGktZ2VuZXJhdG9yL21hc3Rlci9tb2R1bGVzL29wZW5hcGktZ2VuZXJhdG9yL3NyYy90ZXN0L3Jlc291cmNlcy8zXzAvcGV0c3RvcmUueWFtbCBcCiAgIC1nIHBocCBcCiAgIC1vIC92YXIvdG1wL3BocF9hcGlfY2xpZW50CmBgYAooaWYgeW91J3JlIG9uIFdpbmRvd3MsIHJlcGxhY2UgdGhlIGxhc3QgY29tbWFuZCB3aXRoIGBqYXZhIC1qYXIgbW9kdWxlc1xvcGVuYXBpLWdlbmVyYXRvci1jbGlcdGFyZ2V0XG9wZW5hcGktZ2VuZXJhdG9yLWNsaS5qYXIgZ2VuZXJhdGUgLWkgaHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL29wZW5hcGl0b29scy9vcGVuYXBpLWdlbmVyYXRvci9tYXN0ZXIvbW9kdWxlcy9vcGVuYXBpLWdlbmVyYXRvci9zcmMvdGVzdC9yZXNvdXJjZXMvM18wL3BldHN0b3JlLnlhbWwgLWcgcGhwIC1vIGM6XHRlbXBccGhwX2FwaV9jbGllbnRgKQoKPCEtLSBSRUxFQVNFX1ZFUlNJT04gLS0+CllvdSBjYW4gYWxzbyBkb3dubG9hZCB0aGUgSkFSIChsYXRlc3QgcmVsZWFzZSkgZGlyZWN0bHkgZnJvbSBbbWF2ZW4ub3JnXShodHRwczovL3JlcG8xLm1hdmVuLm9yZy9tYXZlbjIvb3JnL29wZW5hcGl0b29scy9vcGVuYXBpLWdlbmVyYXRvci1jbGkvNy45LjAvb3BlbmFwaS1nZW5lcmF0b3ItY2xpLTcuOS4wLmphcikKPCEtLSAvUkVMRUFTRV9WRVJTSU9OIC0tPgoKVG8gZ2V0IGEgbGlzdCBvZiAqKmdlbmVyYWwqKiBvcHRpb25zIGF2YWlsYWJsZSwgcGxlYXNlIHJ1biBgamF2YSAtamFyIG1vZHVsZXMvb3BlbmFwaS1nZW5lcmF0b3ItY2xpL3RhcmdldC9vcGVuYXBpLWdlbmVyYXRvci1jbGkuamFyIGhlbHAgZ2VuZXJhdGVgCgpUbyBnZXQgYSBsaXN0IG9mIFBIUCBzcGVjaWZpZWQgb3B0aW9ucyAod2hpY2ggY2FuIGJlIHBhc3NlZCB0byB0aGUgZ2VuZXJhdG9yIHdpdGggYSBjb25maWcgZmlsZSB2aWEgdGhlIGAtY2Agb3B0aW9uKSwgcGxlYXNlIHJ1biBgamF2YSAtamFyIG1vZHVsZXMvb3BlbmFwaS1nZW5lcmF0b3ItY2xpL3RhcmdldC9vcGVuYXBpLWdlbmVyYXRvci1jbGkuamFyIGNvbmZpZy1oZWxwIC1nIHBocGAKCiMjIFszIC0gVXNhZ2VdKCN0YWJsZS1vZi1jb250ZW50cykKCiMjIyBUbyBnZW5lcmF0ZSBhIHNhbXBsZSBjbGllbnQgbGlicmFyeQpZb3UgY2FuIGJ1aWxkIGEgY2xpZW50IGFnYWluc3QgdGhlIFtQZXRzdG9yZSBBUEldKGh0dHBzOi8vcmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbS9vcGVuYXBpdG9vbHMvb3BlbmFwaS1nZW5lcmF0b3IvbWFzdGVyL21vZHVsZXMvb3BlbmFwaS1nZW5lcmF0b3Ivc3JjL3Rlc3QvcmVzb3VyY2VzLzNfMC9wZXRzdG9yZS55YW1sKSBhcyBmb2xsb3dzOgoKYGBgc2gKLi9iaW4vZ2VuZXJhdGUtc2FtcGxlcy5zaCAuL2Jpbi9jb25maWdzL2phdmEtb2todHRwLWdzb24ueWFtbApgYGAKCihPbiBXaW5kb3dzLCBwbGVhc2UgaW5zdGFsbCBbR0lUIEJhc2ggZm9yIFdpbmRvd3NdKGh0dHBzOi8vZ2l0Zm9yd2luZG93cy5vcmcvKSB0byBydW4gdGhlIGNvbW1hbmQgYWJvdmUpCgpUaGlzIHNjcmlwdCB1c2VzIHRoZSBkZWZhdWx0IGxpYnJhcnksIHdoaWNoIGlzIGBva2h0dHAtZ3NvbmAuIEl0IHdpbGwgcnVuIHRoZSBnZW5lcmF0b3Igd2l0aCB0aGlzIGNvbW1hbmQ6CgpgYGBzaApqYXZhIC1qYXIgbW9kdWxlcy9vcGVuYXBpLWdlbmVyYXRvci1jbGkvdGFyZ2V0L29wZW5hcGktZ2VuZXJhdG9yLWNsaS5qYXIgZ2VuZXJhdGUgXAogIC1pIGh0dHBzOi8vcmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbS9vcGVuYXBpdG9vbHMvb3BlbmFwaS1nZW5lcmF0b3IvbWFzdGVyL21vZHVsZXMvb3BlbmFwaS1nZW5lcmF0b3Ivc3JjL3Rlc3QvcmVzb3VyY2VzLzNfMC9wZXRzdG9yZS55YW1sIFwKICAtZyBqYXZhIFwKICAtdCBtb2R1bGVzL29wZW5hcGktZ2VuZXJhdG9yL3NyYy9tYWluL3Jlc291cmNlcy9KYXZhIFwKICAtLWFkZGl0aW9uYWwtcHJvcGVydGllcyBhcnRpZmFjdElkPXBldHN0b3JlLW9raHR0cC1nc29uLGhpZGVHZW5lcmF0aW9uVGltZXN0YW1wPXRydWUgXAogIC1vIHNhbXBsZXMvY2xpZW50L3BldHN0b3JlL2phdmEvb2todHRwLWdzb24KYGBgCgp3aXRoIGEgbnVtYmVyIG9mIG9wdGlvbnMuIFtUaGUgamF2YSBvcHRpb25zIGFyZSBkb2N1bWVudGVkIGhlcmUuXShkb2NzL2dlbmVyYXRvcnMvamF2YS5tZCkKCllvdSBjYW4gYWxzbyBnZXQgdGhlIG9wdGlvbnMgd2l0aCB0aGUgYGhlbHAgZ2VuZXJhdGVgIGNvbW1hbmQgKGJlbG93IG9ubHkgc2hvd3MgcGFydGlhbCByZXN1bHRzKToKCmBgYApOQU1FCiAgICAgICAgb3BlbmFwaS1nZW5lcmF0b3ItY2xpIGdlbmVyYXRlIC0gR2VuZXJhdGUgY29kZSB3aXRoIHRoZSBzcGVjaWZpZWQKICAgICAgICBnZW5lcmF0b3IuCgpTWU5PUFNJUwogICAgICAgIG9wZW5hcGktZ2VuZXJhdG9yLWNsaSBnZW5lcmF0ZQogICAgICAgICAgICAgICAgWygtYSA8YXV0aG9yaXphdGlvbj4gfCAtLWF1dGggPGF1dGhvcml6YXRpb24+KV0KICAgICAgICAgICAgICAgIFstLWFwaS1uYW1lLXN1ZmZpeCA8YXBpIG5hbWUgc3VmZml4Pl0gWy0tYXBpLXBhY2thZ2UgPGFwaSBwYWNrYWdlPl0KICAgICAgICAgICAgICAgIFstLWFydGlmYWN0LWlkIDxhcnRpZmFjdCBpZD5dIFstLWFydGlmYWN0LXZlcnNpb24gPGFydGlmYWN0IHZlcnNpb24+XQogICAgICAgICAgICAgICAgWygtYyA8Y29uZmlndXJhdGlvbiBmaWxlPiB8IC0tY29uZmlnIDxjb25maWd1cmF0aW9uIGZpbGU+KV0gWy0tZHJ5LXJ1bl0KICAgICAgICAgICAgICAgIFsoLWUgPHRlbXBsYXRpbmcgZW5naW5lPiB8IC0tZW5naW5lIDx0ZW1wbGF0aW5nIGVuZ2luZT4pXQogICAgICAgICAgICAgICAgWy0tZW5hYmxlLXBvc3QtcHJvY2Vzcy1maWxlXQogICAgICAgICAgICAgICAgWygtZyA8Z2VuZXJhdG9yIG5hbWU+IHwgLS1nZW5lcmF0b3ItbmFtZSA8Z2VuZXJhdG9yIG5hbWU+KV0KICAgICAgICAgICAgICAgIFstLWdlbmVyYXRlLWFsaWFzLWFzLW1vZGVsXSBbLS1naXQtaG9zdCA8Z2l0IGhvc3Q+XQogICAgICAgICAgICAgICAgWy0tZ2l0LXJlcG8taWQgPGdpdCByZXBvIGlkPl0gWy0tZ2l0LXVzZXItaWQgPGdpdCB1c2VyIGlkPl0KICAgICAgICAgICAgICAgIFstLWdsb2JhbC1wcm9wZXJ0eSA8Z2xvYmFsIHByb3BlcnRpZXM+Li4uXSBbLS1ncm91cC1pZCA8Z3JvdXAgaWQ+XQogICAgICAgICAgICAgICAgWy0taHR0cC11c2VyLWFnZW50IDxodHRwIHVzZXIgYWdlbnQ+XQogICAgICAgICAgICAgICAgWygtaSA8c3BlYyBmaWxlPiB8IC0taW5wdXQtc3BlYyA8c3BlYyBmaWxlPildCiAgICAgICAgICAgICAgICBbLS1pZ25vcmUtZmlsZS1vdmVycmlkZSA8aWdub3JlIGZpbGUgb3ZlcnJpZGUgbG9jYXRpb24+XQogICAgICAgICAgICAgICAgWy0taW1wb3J0LW1hcHBpbmdzIDxpbXBvcnQgbWFwcGluZ3M+Li4uXQogICAgICAgICAgICAgICAgWy0taW5zdGFudGlhdGlvbi10eXBlcyA8aW5zdGFudGlhdGlvbiB0eXBlcz4uLi5dCiAgICAgICAgICAgICAgICBbLS1pbnZva2VyLXBhY2thZ2UgPGludm9rZXIgcGFja2FnZT5dCiAgICAgICAgICAgICAgICBbLS1sYW5ndWFnZS1zcGVjaWZpYy1wcmltaXRpdmVzIDxsYW5ndWFnZSBzcGVjaWZpYyBwcmltaXRpdmVzPi4uLl0KICAgICAgICAgICAgICAgIFstLWxlZ2FjeS1kaXNjcmltaW5hdG9yLWJlaGF2aW9yXSBbLS1saWJyYXJ5IDxsaWJyYXJ5Pl0KICAgICAgICAgICAgICAgIFstLWxvZy10by1zdGRlcnJdIFstLW1pbmltYWwtdXBkYXRlXQogICAgICAgICAgICAgICAgWy0tbW9kZWwtbmFtZS1wcmVmaXggPG1vZGVsIG5hbWUgcHJlZml4Pl0KICAgICAgICAgICAgICAgIFstLW1vZGVsLW5hbWUtc3VmZml4IDxtb2RlbCBuYW1lIHN1ZmZpeD5dCiAgICAgICAgICAgICAgICBbLS1tb2RlbC1wYWNrYWdlIDxtb2RlbCBwYWNrYWdlPl0KICAgICAgICAgICAgICAgIFsoLW8gPG91dHB1dCBkaXJlY3Rvcnk+IHwgLS1vdXRwdXQgPG91dHB1dCBkaXJlY3Rvcnk+KV0gWygtcCA8YWRkaXRpb25hbCBwcm9wZXJ0aWVzPiB8IC0tYWRkaXRpb25hbC1wcm9wZXJ0aWVzIDxhZGRpdGlvbmFsIHByb3BlcnRpZXM+KS4uLl0KICAgICAgICAgICAgICAgIFstLXBhY2thZ2UtbmFtZSA8cGFja2FnZSBuYW1lPl0gWy0tcmVsZWFzZS1ub3RlIDxyZWxlYXNlIG5vdGU+XQogICAgICAgICAgICAgICAgWy0tcmVtb3ZlLW9wZXJhdGlvbi1pZC1wcmVmaXhdCiAgICAgICAgICAgICAgICBbLS1yZXNlcnZlZC13b3Jkcy1tYXBwaW5ncyA8cmVzZXJ2ZWQgd29yZCBtYXBwaW5ncz4uLi5dCiAgICAgICAgICAgICAgICBbKC1zIHwgLS1za2lwLW92ZXJ3cml0ZSldIFstLXNlcnZlci12YXJpYWJsZXMgPHNlcnZlciB2YXJpYWJsZXM+Li4uXQogICAgICAgICAgICAgICAgWy0tc2tpcC12YWxpZGF0ZS1zcGVjXSBbLS1zdHJpY3Qtc3BlYyA8dHJ1ZS9mYWxzZSBzdHJpY3QgYmVoYXZpb3I+XQogICAgICAgICAgICAgICAgWygtdCA8dGVtcGxhdGUgZGlyZWN0b3J5PiB8IC0tdGVtcGxhdGUtZGlyIDx0ZW1wbGF0ZSBkaXJlY3Rvcnk+KV0KICAgICAgICAgICAgICAgIFstLXR5cGUtbWFwcGluZ3MgPHR5cGUgbWFwcGluZ3M+Li4uXSBbKC12IHwgLS12ZXJib3NlKV0KCk9QVElPTlMKICAgICAgICAtYSA8YXV0aG9yaXphdGlvbj4sIC0tYXV0aCA8YXV0aG9yaXphdGlvbj4KICAgICAgICAgICAgYWRkcyBhdXRob3JpemF0aW9uIGhlYWRlcnMgd2hlbiBmZXRjaGluZyB0aGUgT3BlbkFQSSBkZWZpbml0aW9ucwogICAgICAgICAgICByZW1vdGVseS4gUGFzcyBpbiBhIFVSTC1lbmNvZGVkIHN0cmluZyBvZiBuYW1lOmhlYWRlciB3aXRoIGEgY29tbWEKICAgICAgICAgICAgc2VwYXJhdGluZyBtdWx0aXBsZSB2YWx1ZXMKCi4uLi4uLiAocmVzdWx0cyBvbWl0dGVkKQoKICAgICAgICAtdiwgLS12ZXJib3NlCiAgICAgICAgICAgIHZlcmJvc2UgbW9kZQoKYGBgCgpZb3UgY2FuIHRoZW4gY29tcGlsZSBhbmQgcnVuIHRoZSBjbGllbnQsIGFzIHdlbGwgYXMgdW5pdCB0ZXN0cyBhZ2FpbnN0IGl0OgoKYGBgc2gKY2Qgc2FtcGxlcy9jbGllbnQvcGV0c3RvcmUvamF2YS9va2h0dHAtZ3Nvbgptdm4gcGFja2FnZQpgYGAKCk90aGVyIGdlbmVyYXRvcnMgaGF2ZSBbc2FtcGxlc10oaHR0cHM6Ly9naXRodWIuY29tL09wZW5BUElUb29scy9vcGVuYXBpLWdlbmVyYXRvci90cmVlL21hc3Rlci9zYW1wbGVzKSB0b28uCgojIyMgWzMuMSAtIEN1c3RvbWl6YXRpb25dKCN0YWJsZS1vZi1jb250ZW50cykKClBsZWFzZSByZWZlciB0byBbY3VzdG9taXphdGlvbi5tZF0oZG9jcy9jdXN0b21pemF0aW9uLm1kKSBvbiBob3cgdG8gY3VzdG9taXplIHRoZSBvdXRwdXQgKGUuZy4gcGFja2FnZSBuYW1lLCB2ZXJzaW9uKQoKIyMjIFszLjIgLSBXb3JrZmxvdyBJbnRlZ3JhdGlvbiAoTWF2ZW4sIEdyYWRsZSwgR2l0aHViLCBDSS9DRCldKCN0YWJsZS1vZi1jb250ZW50cykKClBsZWFzZSByZWZlciB0byBbaW50ZWdyYXRpb24ubWRdKGRvY3MvaW50ZWdyYXRpb24ubWQpIG9uIGhvdyB0byBpbnRlZ3JhdGUgT3BlbkFQSSBnZW5lcmF0b3Igd2l0aCBNYXZlbiwgR3JhZGxlLCBzYnQsIEJhemVsLCBHaXRodWIgYW5kIENJL0NELgoKIyMjIFszLjMgLSBPbmxpbmUgT3BlbkFQSSBnZW5lcmF0b3JdKCN0YWJsZS1vZi1jb250ZW50cykKCkhlcmUgYXJlIHRoZSBwdWJsaWMgb25saW5lIHNlcnZpY2VzOgoKLSBsYXRlc3Qgc3RhYmxlIHZlcnNpb246IGh0dHBzOi8vYXBpLm9wZW5hcGktZ2VuZXJhdG9yLnRlY2gKLSBsYXRlc3QgbWFzdGVyOiBodHRwczovL2FwaS1sYXRlc3QtbWFzdGVyLm9wZW5hcGktZ2VuZXJhdG9yLnRlY2ggKHVwZGF0ZWQgd2l0aCBsYXRlc3QgbWFzdGVyIGV2ZXJ5IGhvdXIpCgpUaGUgc2VydmVyIGlzIHNwb25zb3JlZCBieSBbTGlub2RlXShodHRwczovL3d3dy5saW5vZGUuY29tLykgWyFbTGlub2RlIExvZ29dKGh0dHBzOi8vd3d3Lmxpbm9kZS5jb20vbWVkaWEvaW1hZ2VzL2xvZ29zL3N0YW5kYXJkL2xpZ2h0L2xpbm9kZS1sb2dvX3N0YW5kYXJkX2xpZ2h0X3NtYWxsLnBuZyldKGh0dHBzOi8vd3d3Lmxpbm9kZS5jb20vKQoKKFRoZXNlIHNlcnZpY2VzIGFyZSBiZXRhIGFuZCBkbyBub3QgaGF2ZSBhbnkgZ3VhcmFudGVlIG9uIHNlcnZpY2UgbGV2ZWwpCgpQbGVhc2UgcmVmZXIgdG8gW29ubGluZS5tZF0oZG9jcy9vbmxpbmUubWQpIG9uIGhvdyB0byBydW4gYW5kIHVzZSB0aGUgYG9wZW5hcGktZ2VuZXJhdG9yLW9ubGluZWAgLSBhIHdlYiBzZXJ2aWNlIGZvciBgb3BlbmFwaS1nZW5lcmF0b3JgLgoKIyMjIFszLjQgLSBMaWNlbnNlIGluZm9ybWF0aW9uIG9uIEdlbmVyYXRlZCBDb2RlXSgjdGFibGUtb2YtY29udGVudHMpCgpUaGUgT3BlbkFQSSBHZW5lcmF0b3IgcHJvamVjdCBpcyBpbnRlbmRlZCBhcyBhIGJlbmVmaXQgZm9yIHVzZXJzIG9mIHRoZSBPcGVuIEFQSSBTcGVjaWZpY2F0aW9uLiAgVGhlIHByb2plY3QgaXRzZWxmIGhhcyB0aGUgW0xpY2Vuc2VdKCM3LS0tbGljZW5zZSkgYXMgc3BlY2lmaWVkLiBJbiBhZGRpdGlvbiwgcGxlYXNlIHVuZGVyc3RhbmQgdGhlIGZvbGxvd2luZyBwb2ludHM6CgoqIFRoZSB0ZW1wbGF0ZXMgaW5jbHVkZWQgd2l0aCB0aGlzIHByb2plY3QgYXJlIHN1YmplY3QgdG8gdGhlIFtMaWNlbnNlXSgjNy0tLWxpY2Vuc2UpLgoqIEdlbmVyYXRlZCBjb2RlIGlzIGludGVudGlvbmFsbHkgX25vdF8gc3ViamVjdCB0byB0aGUgcGFyZW50IHByb2plY3QgbGljZW5zZQoKV2hlbiBjb2RlIGlzIGdlbmVyYXRlZCBmcm9tIHRoaXMgcHJvamVjdCwgaXQgc2hhbGwgYmUgY29uc2lkZXJlZCAqKkFTIElTKiogYW5kIG93bmVkIGJ5IHRoZSB1c2VyIG9mIHRoZSBzb2Z0d2FyZS4gIFRoZXJlIGFyZSBubyB3YXJyYW50aWVzLS1leHByZXNzZWQgb3IgaW1wbGllZC0tZm9yIGdlbmVyYXRlZCBjb2RlLiAgWW91IGNhbiBkbyB3aGF0IHlvdSB3aXNoIHdpdGggaXQsIGFuZCBvbmNlIGdlbmVyYXRlZCwgdGhlIGNvZGUgaXMgeW91ciByZXNwb25zaWJpbGl0eSBhbmQgc3ViamVjdCB0byB0aGUgbGljZW5zaW5nIHRlcm1zIHRoYXQgeW91IGRlZW0gYXBwcm9wcmlhdGUuCgojIyMgWzMuNSAtIElERSBJbnRlZ3JhdGlvbl0oI3RhYmxlLW9mLWNvbnRlbnRzKQoKSGVyZSBpcyBhIGxpc3Qgb2YgY29tbXVuaXR5LWNvbnRyaWJ1dGVkIElERSBwbHVnLWlucyB0aGF0IGludGVncmF0ZSB3aXRoIE9wZW5BUEkgR2VuZXJhdG9yOgoKLSBFY2xpcHNlOiBbQ29kZXdpbmQgT3BlbkFQSSBUb29scyBmb3IgRWNsaXBzZV0oaHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvY29kZXdpbmQvb3Blbi1hcGktdG9vbHMtZm9yLWVjbGlwc2UuaHRtbCkgYnkgW0lCTV0oaHR0cHM6Ly93d3cuaWJtLmNvbSkKLSBJbnRlbGxpSiBJREVBOiBbT3BlbkFQSSBHZW5lcmF0b3JdKGh0dHBzOi8vcGx1Z2lucy5qZXRicmFpbnMuY29tL3BsdWdpbi84NDMzLW9wZW5hcGktZ2VuZXJhdG9yKSBieSBbSmltIFNjaHViZXJ0XShodHRwczovL2ppbXNjaHViZXJ0LnVzLyMvKQotIEludGVsbGlKIElERUE6IFtTZW55YSBFZGl0b3JdKGh0dHBzOi8vcGx1Z2lucy5qZXRicmFpbnMuY29tL3BsdWdpbi8xMDY5MC1zZW55YS1lZGl0b3IpIGJ5IFtzZW55YS5pb10oaHR0cHM6Ly9zZW55YS5pbykKLSBbUmVwcmVaZW4gQVBJIFN0dWRpb10oaHR0cHM6Ly93d3cucmVwcmV6ZW4uY29tLykKLSBWaXN1YWwgU3R1ZGlvOiBbUkVTVCBBUEkgQ2xpZW50IENvZGUgR2VuZXJhdG9yXShodHRwczovL21hcmtldHBsYWNlLnZpc3VhbHN0dWRpby5jb20vaXRlbXM/aXRlbU5hbWU9Q2hyaXN0aWFuUmVzbWFIZWxsZS5BcGlDbGllbnRDb2RlR2VuZXJhdG9yKSBieSBbQ2hyaXN0aWFuIFJlc21hIEhlbGxlXShodHRwczovL2NocmlzdGlhbi1oZWxsZS5ibG9nc3BvdC5jb20vKQotIFZpc3VhbCBTdHVkaW8gQ29kZTogW0NvZGV3aW5kIE9wZW5BUEkgVG9vbHNdKGh0dHBzOi8vbWFya2V0cGxhY2UudmlzdWFsc3R1ZGlvLmNvbS9pdGVtcz9pdGVtTmFtZT1JQk0uY29kZXdpbmQtb3BlbmFwaS10b29scykgYnkgW0lCTV0oaHR0cHM6Ly9tYXJrZXRwbGFjZS52aXN1YWxzdHVkaW8uY29tL3B1Ymxpc2hlcnMvSUJNKQoKCiMjIFs0IC0gQ29tcGFuaWVzL1Byb2plY3RzIHVzaW5nIE9wZW5BUEkgR2VuZXJhdG9yXSgjdGFibGUtb2YtY29udGVudHMpCkhlcmUgYXJlIHNvbWUgY29tcGFuaWVzL3Byb2plY3RzIChhbHBoYWJldGljYWwgb3JkZXIpIHVzaW5nIE9wZW5BUEkgR2VuZXJhdG9yIGluIHByb2R1Y3Rpb24uIFRvIGFkZCB5b3VyIGNvbXBhbnkvcHJvamVjdCB0byB0aGUgbGlzdCwgcGxlYXNlIHZpc2l0IFtSRUFETUUubWRdKFJFQURNRS5tZCkgYW5kIGNsaWNrIG9uIHRoZSBpY29uIHRvIGVkaXQgdGhlIHBhZ2UuCgotIFtBYWxib3JnIFVuaXZlcnNpdHldKGh0dHBzOi8vd3d3LmFhdS5kaykKLSBbYWN0IGNvZGluZ10oaHR0cHM6Ly9naXRodWIuY29tL2FjdGNvZGluZykKLSBbQWRhcHRhbnQgU29sdXRpb25zIEFHXShodHRwczovL3d3dy5hZGFwdGFudC5pby8pCi0gW2FkZXNzbyBTRV0oaHR0cHM6Ly93d3cuYWRlc3NvLmRlLykKLSBbQWR5ZW5dKGh0dHBzOi8vd3d3LmFkeWVuLmNvbS8pCi0gW0Fnb2RhXShodHRwczovL3d3dy5hZ29kYS5jb20vKQotIFtBaXJ0aGluZ3NdKGh0dHBzOi8vd3d3LmFpcnRoaW5ncy5jb20vKQotIFtBbGVyaSBTb2x1dGlvbnMgR21iaF0oaHR0cHM6Ly93d3cuYWxlcmkuZGUvKQotIFtBbGxpYW56XShodHRwczovL3d3dy5hbGxpYW56LmNvbSkKLSBbQW5ndWxhci5TY2h1bGVdKGh0dHBzOi8vYW5ndWxhci5zY2h1bGUvKQotIFtBcW92aWFdKGh0dHBzOi8vYXFvdmlhLmNvbS8pCi0gW0F1c3RyYWxpYSBhbmQgTmV3IFplYWxhbmQgQmFua2luZyBHcm91cCAoQU5aKV0oaHR0cDovL3d3dy5hbnouY29tLykKLSBbQXJkdWlub10oaHR0cHM6Ly93d3cuYXJkdWluby5jYy8pCi0gW0FTS1VMXShodHRwczovL3d3dy5hc2t1bC5jby5qcCkKLSBbQW1hem9uIFdlYiBTZXJ2aWNlcyAoQVdTKV0oaHR0cHM6Ly9hd3MuYW1hem9uLmNvbS8pCi0gW2I8PmNvbV0oaHR0cHM6Ly9iLWNvbS5jb20vZW4pCi0gW+eZvuW6puiQpemUgF0oaHR0cHM6Ly9lLmJhaWR1LmNvbSkKLSBbQmFuZHdpZHRoXShodHRwczovL2Rldi5iYW5kd2lkdGguY29tKQotIFtCYW56YWkgQ2xvdWRdKGh0dHBzOi8vYmFuemFpY2xvdWQuY29tKQotIFtCSU1EYXRhLmlvXShodHRwczovL2JpbWRhdGEuaW8pCi0gW0JpdGhvc3QgR21iSF0oaHR0cHM6Ly93d3cuYml0aG9zdC5jaCkKLSBbQm9zY2ggQ29ubmVjdGVkIEluZHVzdHJ5XShodHRwczovL3d3dy5ib3NjaC1jb25uZWN0ZWQtaW5kdXN0cnkuY29tKQotIFtCb3hldmVyXShodHRwczovL3d3dy5ib3hldmVyLmNvbS8pCi0gW0JyZXZ5XShodHRwczovL3d3dy5icmV2eS5jb20pCi0gW0J1bmtlciBIb2xkaW5nIEdyb3VwXShodHRwczovL3d3dy5idW5rZXItaG9sZGluZy5jb20vKQotIFtDYWxpZm9ybmlhIFN0YXRlIFVuaXZlcnNpdHksIE5vcnRocmlkZ2VdKGh0dHBzOi8vd3d3LmNzdW4uZWR1KQotIFtDQU1dKGh0dHBzOi8vd3d3LmNhbS1pbmMuY28uanAvKQotIFtDYW1wdG9jYW1wXShodHRwczovL3d3dy5jYW1wdG9jYW1wLmNvbS9lbikKLSBbQ2FybHNiZXJnIEdyb3VwXShodHRwczovL3d3dy5jYXJsc2Jlcmdncm91cC5jb20vKQotIFtDRVJOXShodHRwczovL2hvbWUuY2Vybi8pCi0gW0NocmlzdG9waGVyIFF1ZWVuIENvbnN1bHRpbmddKGh0dHBzOi8vd3d3LmNocmlzdG9waGVycXVlZW5jb25zdWx0aW5nLmNvbS8pCi0gW0Npc2NvXShodHRwczovL3d3dy5jaXNjby5jb20vKQotIFtjb2RlY2VudHJpYyBBR10oaHR0cHM6Ly93d3cuY29kZWNlbnRyaWMuZGUvKQotIFtDb2luQVBJXShodHRwczovL3d3dy5jb2luYXBpLmlvLykKLSBbQ29tbWVuY2lzXShodHRwczovL3d3dy5jb21tZW5jaXMuY29tLykKLSBbQ29uZmlnQ2F0XShodHRwczovL2NvbmZpZ2NhdC5jb20vKQotIFtjcm9ubiBHbWJIXShodHRwczovL3d3dy5jcm9ubi5kZS8pCi0gW0Nyb3Nzb3ZlciBIZWFsdGhdKGh0dHBzOi8vY3Jvc3NvdmVyaGVhbHRoLmNvbS8pCi0gW0N1cGl4XShodHRwczovL3d3dy5jdXBpeC5jb20vKQotIFtEYXRhZG9nXShodHRwczovL3d3dy5kYXRhZG9naHEuY29tKQotIFtEQiBTeXN0ZWxdKGh0dHBzOi8vd3d3LmRic3lzdGVsLmRlKQotIFtEZWVwb3J1dGUuYWldKGh0dHBzOi8vd3d3LmRlZXByb3V0ZS5haS8pCi0gW0RldnN1cHBseV0oaHR0cHM6Ly93d3cuZGV2c3VwcGx5LmNvbS8pCi0gW2RtVEVDSCBHbWJIXShodHRwczovL3d3dy5kbVRFQ0guZGUpCi0gW0RvY1NwcmluZ10oaHR0cHM6Ly9kb2NzcHJpbmcuY29tLykKLSBbZHdhbmdvXShodHRwczovL2R3YW5nby5jby5qcC8pCi0gW0VkZ2UgSW1wdWxzZV0oaHR0cHM6Ly93d3cuZWRnZWltcHVsc2UuY29tLykKLSBbRWxlbWVudCBBSV0oaHR0cHM6Ly93d3cuZWxlbWVudGFpLmNvbS8pCi0gW0VtYm90aWNzXShodHRwczovL3d3dy5lbWJvdGljcy5jb20vKQotIFtlbWluZW9dKGh0dHBzOi8vd3d3LmVtaW5lby5jaCkKLSBbZmFzdGx5XShodHRwczovL3d3dy5mYXN0bHkuY29tLykKLSBbRmVuZXJnb10oaHR0cHM6Ly93d3cuZmVuZXJnby5jb20vKQotIFtmcmVlZV0oaHR0cHM6Ly9jb3JwLmZyZWVlLmNvLmpwL2VuLykKLSBbRnJlc2hDZWxsc10oaHR0cHM6Ly93d3cuZnJlc2hjZWxscy5kZS8pCi0gW0Z1c2VdKGh0dHBzOi8vd3d3LmZ1c2Uubm8vKQotIFtHYW50bmVyXShodHRwczovL3d3dy5nYW50bmVyLmNvbSkKLSBbR2VuRmxvd10oaHR0cHM6Ly9naXRodWIuY29tL1JlcHJlWmVuL0dlbkZsb3cpCi0gW0dldFlvdXJHdWlkZV0oaHR0cHM6Ly93d3cuZ2V0eW91cmd1aWRlLmNvbS8pCi0gW0dsb3ZvXShodHRwczovL2dsb3ZvYXBwLmNvbS8pCi0gW0dNTyBQZXBhYm9dKGh0dHBzOi8vcGVwYWJvLmNvbS9lbi8pCi0gW0dvRGFkZHldKGh0dHBzOi8vZ29kYWRkeS5jb20pCi0gW0d1bXRyZWVdKGh0dHBzOi8vZ3VtdHJlZS5jb20pCi0gW0hlcmVdKGh0dHBzOi8vZGV2ZWxvcGVyLmhlcmUuY29tLykKLSBbSUJNXShodHRwczovL3d3dy5pYm0uY29tLykKLSBbSW5zdGFuYV0oaHR0cHM6Ly93d3cuaW5zdGFuYS5jb20pCi0gW0ludGVyeGlvbl0oaHR0cHM6Ly93d3cuaW50ZXJ4aW9uLmNvbSkKLSBbSW5xdWlzaWNvXShodHRwczovL2lucXVpc2ljby5jb20pCi0gW0p1c3RTdGFyXShodHRwczovL3d3dy5qdXN0c3RhcmluZm8uY29tKQotIFtrNi5pb10oaHR0cHM6Ly9rNi5pby8pCi0gW0tsYXJuYV0oaHR0cHM6Ly93d3cua2xhcm5hLmNvbS8pCi0gW0tyb25zb2Z0IERldmVsb3BtZW50XShodHRwczovL3d3dy5rcm9uc29mdC5yby9ob21lLykKLSBbS3ViZXJuZXRlc10oaHR0cHM6Ly9rdWJlcm5ldGVzLmlvKQotIFtMYW5kZXNoYXVwdHN0YWR0IE3DvG5jaGVuIC0gaXRATV0oaHR0cHM6Ly9tdWVuY2hlbi5kaWdpdGFsL2l0LWF0LW0vKQotIFtMaW5vZGVdKGh0dHBzOi8vd3d3Lmxpbm9kZS5jb20vKQotIFtMb2dpY2Ryb3BdKGh0dHBzOi8vd3d3LmxvZ2ljZHJvcC5jb20pCi0gW0x1bWVyaXNdKGh0dHBzOi8vd3d3Lmx1bWVyaXMuY29tKQotIFtMVk0gVmVyc2ljaGVydW5nZW5dKGh0dHBzOi8vd3d3Lmx2bS5kZSkKLSBbTWFpbFNsdXJwXShodHRwczovL3d3dy5tYWlsc2x1cnAuY29tKQotIFtNYW50aWNvcmUgU2VhcmNoXShodHRwczovL21hbnRpY29yZXNlYXJjaC5jb20pCi0gW01hc3RlcmNhcmRdKGh0dHBzOi8vZGV2ZWxvcGVycy5tYXN0ZXJjYXJkLmNvbSkKLSBbTcOpZGlhdmlzaW9uXShodHRwczovL3d3dy5tZWRpYXZpc2lvbi5mci8pCi0gW01ldGFzd2l0Y2hdKGh0dHBzOi8vd3d3Lm1ldGFzd2l0Y2guY29tLykKLSBbTW9vblZpc2lvbl0oaHR0cHM6Ly93d3cubW9vbnZpc2lvbi5pby8pCi0gW015d29ya291dF0oaHR0cHM6Ly9teXdvcmtvdXQuY29tKQotIFtOYW1Tb3JdKGh0dHBzOi8vd3d3Lm5hbXNvci5jb20vKQotIFtOZXZlcmZhaWxdKGh0dHBzOi8vd3d3Lm5ldmVyZmFpbC5jb20vKQotIFtOZXVlckVuZXJneV0oaHR0cHM6Ly9uZXVlcmVuZXJneS5jb20pCi0gW05va2lhXShodHRwczovL3d3dy5ub2tpYS5jb20vKQotIFtPbmVTaWduYWxdKGh0dHBzOi8vd3d3Lm9uZXNpZ25hbC5jb20vKQotIFtPcHRpb25zIENsZWFyaW5nIENvcnBvcmF0aW9uIChPQ0MpXShodHRwczovL3d3dy50aGVvY2MuY29tLykKLSBbT3BlbmV0XShodHRwczovL3d3dy5vcGVuZXQuY29tLykKLSBbb3BlblZBTElEQVRJT05dKGh0dHBzOi8vb3BlbnZhbGlkYXRpb24uaW8vKQotIFtPcmFjbGVdKGh0dHBzOi8vd3d3Lm9yYWNsZS5jb20vKQotIFtQYXhvc10oaHR0cHM6Ly93d3cucGF4b3MuY29tKQotIFtQbGFpZF0oaHR0cHM6Ly9wbGFpZC5jb20pCi0gW1BMQUlELCBJbmMuXShodHRwczovL3BsYWlkLmNvLmpwLykKLSBbUGludGVyZXN0XShodHRwczovL3d3dy5waW50ZXJlc3QuY29tKQotIFtQb25pY29kZV0oaHR0cHM6Ly9wb25pY29kZS5kZXYvKQotIFtQcmljZWZ4XShodHRwczovL3d3dy5wcmljZWZ4LmNvbS8pCi0gW1ByaW50TmFubnldKGh0dHBzOi8vd3d3LnByaW50LW5hbm55LmNvbS8pCi0gW1Byb21ldGhldXMvQWxlcnRtYW5hZ2VyXShodHRwczovL2dpdGh1Yi5jb20vcHJvbWV0aGV1cy9hbGVydG1hbmFnZXIpCi0gW1FhdmFyXShodHRwczovL3d3dy5xYXZhci5jb20pCi0gW1FFRElUXShodHRwczovL3FlZC1pdC5jb20pCi0gW1FvdmVyeV0oaHR0cHM6Ly9xb3ZlcnkuY29tKQotIFtRdWxpeCBTeXN0ZW1zXShodHRwczovL3d3dy5xdWxpeC5jb20pCi0gW1Jha3N1bF0oaHR0cHM6Ly9jb3JwLnJha3N1bC5jb20pCi0gW1JhaWZmZWlzZW4gU2Nod2VpeiBHZW5vc3NlbnNjaGFmdF0oaHR0cHM6Ly93d3cucmFpZmZlaXNlbi5jaCkKLSBbUmVkSGF0XShodHRwczovL3d3dy5yZWRoYXQuY29tKQotIFtSZXByZVplbiBBUEkgU3R1ZGlvXShodHRwczovL3d3dy5yZXByZXplbi5jb20vc3dhZ2dlci1vcGVuYXBpLWNvZGUtZ2VuZXJhdGlvbi1hcGktZmlyc3QtbWljcm9zZXJ2aWNlcy1lbnRlcnByaXNlLWRldmVsb3BtZW50KQotIFtSRVNUIFVuaXRlZF0oaHR0cHM6Ly9yZXN0dW5pdGVkLmNvbSkKLSBbUm9ib2NvcnBdKGh0dHBzOi8vd3d3LnJvYm9jb3JwLmNvbSkKLSBbUm9ib3RpbmZyYV0oaHR0cHM6Ly93d3cucm9ib3RpbmZyYS5jb20pCi0gW1NlYXJjaEFwaV0oaHR0cHM6Ly93d3cuc2VhcmNoYXBpLmlvLykKLSBbU21hcnRIUl0oaHR0cHM6Ly9zbWFydGhyLmNvLmpwLykKLSBbU29ueSBJbnRlcmFjdGl2ZSBFbnRlcnRhaW5tZW50XShodHRwczovL3d3dy5zaWUuY29tL2VuL2luZGV4Lmh0bWwpCi0gW1NwbGl0aXRdKGh0dHBzOi8vd3d3LnNwbGl0aXQuY29tLykKLSBbU3RpbmdyYXldKGh0dHA6Ly93d3cuc3RpbmdyYXkuY29tKQotIFtTdXZhXShodHRwczovL3d3dy5zdXZhLmNoLykKLSBbU3ZpeF0oaHR0cHM6Ly93d3cuc3ZpeC5jb20vKQotIFtUZWxzdHJhXShodHRwczovL2Rldi50ZWxzdHJhLmNvbSkKLSBbVGVuY2VudF0oaHR0cHM6Ly93d3cudGVuY2VudC5jb20pCi0gW1RoZSBVbml2ZXJzaXR5IG9mIEFpenVdKGh0dHBzOi8vd3d3LnUtYWl6dS5hYy5qcC9lbi8pCi0gW1RJTlFJTl0oaHR0cHM6Ly93d3cudGlucWluLmNvbS8pCi0gW1RyYW5zbHVjZW50IEFwU10oaHR0cHM6Ly93d3cudHJhbnNsdWNlbnQuZGspCi0gW1RyYXZlbFRpbWUgcGxhdGZvcm1dKGh0dHBzOi8vd3d3LnRyYXZlbHRpbWVwbGF0Zm9ybS5jb20vKQotIFtUcmliYWxTY2FsZV0oaHR0cHM6Ly93d3cudHJpYmFsc2NhbGUuY29tKQotIFtUcmlmb3JrXShodHRwczovL3RyaWZvcmsuY29tKQotIFtUVUkgSW5mb1RlYyBHbWJIXShodHRwOi8vd3d3LnR1aS1pbmZvdGVjLmNvbS8pCi0gW1R3aWxpb10oaHR0cHM6Ly93d3cudHdpbGlvLmNvbS8pCi0gW1R3aXR0ZXJdKGh0dHBzOi8vdHdpdHRlci5jb20pCi0gW3VuYmx1IGluYy5dKGh0dHBzOi8vd3d3LnVuYmx1LmNvbS8pCi0gW1ZlYW1seV0oaHR0cHM6Ly93d3cudmVhbWx5LmNvbS8pCi0gW1ZNV2FyZV0oaHR0cHM6Ly93d3cudm13YXJlLmNvbS8pCi0gW3didC1zb2x1dGlvbnNdKGh0dHBzOi8vd3d3LndidC1zb2x1dGlvbnMuZGUvKQotIFtXb2xlZXRdKGh0dHBzOi8vd3d3LndvbGVldC5pby8pCi0gW1dTTzJdKGh0dHBzOi8vd3NvMi5jb20vKQotIFtWb3VjaGVyeS5pb10oaHR0cHM6Ly92b3VjaGVyeS5pbykKLSBbWGVyb10oaHR0cHM6Ly93d3cueGVyby5jb20vKQotIFtZYWhvbyBKYXBhbl0oaHR0cHM6Ly93d3cueWFob28uY28uanAvKQotIFt2aWFkZWVdKGh0dHBzOi8vd3d3LnZpYWRlZS5kZS8pCi0gW1ZvbmFnZV0oaHR0cHM6Ly92b25hZ2UuY29tKQotIFtZSVRVIFRlY2hub2xvZ3ldKGh0dHBzOi8vd3d3LnlpdHV0ZWNoLmNvbS8pCi0gW1llbHBdKGh0dHBzOi8vd3d3LnllbHAuY29tLykKLSBbWmFsYW5kb10oaHR0cHM6Ly93d3cuemFsYW5kby5jb20pCi0gWzNEUyBPdXRzY2FsZV0oaHR0cHM6Ly93d3cub3V0c2NhbGUuY29tLykKCiMjIFs1IC0gUHJlc2VudGF0aW9ucy9WaWRlb3MvVHV0b3JpYWxzL0Jvb2tzXSgjdGFibGUtb2YtY29udGVudHMpCgotIDIwMTgvMDUvMTIgLSBbT3BlbkFQSSBHZW5lcmF0b3IgLSBjb21tdW5pdHkgZHJpdmVu44Gn5oiQ6ZW344GZ44KL44Kz44O844OJ44K444Kn44ON44Os44O844K/XShodHRwczovL2Fja2ludG9zaC5naXRodWIuaW8vYmxvZy8yMDE4LzA1LzEyL29wZW5hcGktZ2VuZXJhdG9yLykgYnkgW+S4remHjuaageS6ul0oaHR0cHM6Ly9naXRodWIuY29tL2Fja2ludG9zaCkKLSAyMDE4LzA1LzE1IC0gW1N0YXJ0aW5nIGEgbmV3IG9wZW4tc291cmNlIHByb2plY3RdKGh0dHA6Ly9qbWluaS5naXRodWIuaW8vYmxvZy8yMDE4LzIwMTgtMDUtMTVfbmV3LW9wZW4tc291cmNlLXByb2plY3QuaHRtbCkgYnkgW0plcmVtaWUgQnJlc3Nvbl0oaHR0cHM6Ly9naXRodWIuY29tL2ptaW5pKQotIDIwMTgvMDUvMTUgLSBbUkVTVCBBUEnku5Xmp5jjgYvjgolBUEnjgq/jg6njgqTjgqLjg7Pjg4jjgoTjgrnjgr/jg5bjgrXjg7zjg5DjgpLoh6rli5XnlJ/miJDjgZnjgovjgIxPcGVuQVBJIEdlbmVyYXRvcuOAjeOCquODvOODl+ODs+OCveODvOOCueOBp+WFrOmWi+OAglN3YWdnZXIgQ29kZWdlbuOBi+OCieOBruODleOCqeODvOOCr10oaHR0cHM6Ly93d3cucHVibGlja2V5MS5qcC9ibG9nLzE4L3Jlc3RfYXBpYXBpb3BlbmFwaV9nZW5lcmF0b3Jzd2FnZ2VyX2dlbmVyYXRvci5odG1sKSBieSBbUHVibGlja2V5XShodHRwczovL3d3dy5wdWJsaWNrZXkxLmpwKQotIDIwMTgvMDYvMDggLSBbU3dhZ2dlciBDb2RlZ2VuIGlzIG5vdyBPcGVuQVBJIEdlbmVyYXRvcl0oaHR0cHM6Ly9hbmd1bGFyLnNjaHVsZS9ibG9nLzIwMTgtMDYtc3dhZ2dlci1jb2RlZ2VuLWlzLW5vdy1vcGVuYXBpLWdlbmVyYXRvcikgYnkgW0pvaGFubmVzSG9wcGVdKGh0dHBzOi8vZ2l0aHViLmNvbS9Kb2hhbm5lc0hvcHBlKQotIDIwMTgvMDYvMjEgLSBbQ29ubmVjdCB5b3VyIEpIaXBzdGVyIGFwcHMgdG8gdGhlIHdvcmxkIG9mIEFQSXMgd2l0aCBPcGVuQVBJIGFuZCBnUlBDXShodHRwczovL2ZyLnNsaWRlc2hhcmUubmV0L2NoYm9ybmV0L2poaXBzdGVyLWNvbmYtMjAxOC1jb25uZWN0LXlvdXItamhpcHN0ZXItYXBwcy10by10aGUtd29ybGQtb2YtYXBpcy13aXRoLW9wZW5hcGktYW5kLWdycGMpIGJ5IFtDaHJpc3RvcGhlIEJvcm5ldF0oaHR0cHM6Ly9naXRodWIuY29tL2Nib3JuZXQpIGF0IFtKSGlwc3RlciBDb25mIDIwMThdKGh0dHBzOi8vamhpcHN0ZXItY29uZi5naXRodWIuaW8vKQotIDIwMTgvMDYvMjIgLSBbT3BlbkFQSSBHZW5lcmF0b3Ig44GnIEdhdGxpbmcgQ2xpZW50IOOCkueUn+aIkOOBl+OBpuOBv+OBn10oaHR0cHM6Ly9yb2hraS5oYXRlbmFibG9nLmNvbS9lbnRyeS8yMDE4LzA2LzIyLzA3MzAwMCkgYXQgW+OCveODouOCteODs10oaHR0cHM6Ly9yb2hraS5oYXRlbmFibG9nLmNvbS8pCi0gMjAxOC8wNi8yNyAtIFtMZXNzb25zIExlYXJuZWQgZnJvbSBMZWFkaW5nIGFuIE9wZW4tU291cmNlIFByb2plY3QgU3VwcG9ydGluZyAzMCsgUHJvZ3JhbW1pbmcgTGFuZ3VhZ2VzXShodHRwczovL3NwZWFrZXJkZWNrLmNvbS93aW5nMzI4L2xlc3NvbnMtbGVhcm5lZC1mcm9tLWxlYWRpbmctYW4tb3Blbi1zb3VyY2UtcHJvamVjdC1zdXBwb3J0aW5nLTMwLXBsdXMtcHJvZ3JhbW1pbmctbGFuZ3VhZ2VzKSAtIFtXaWxsaWFtIENoZW5nXShodHRwczovL2dpdGh1Yi5jb20vd2luZzMyOCkgYXQgW0xpbnV4Q29uICsgQ29udGFpbmVyQ29uICsgQ2xvdWRPcGVuIENoaW5hIDIwMThdKGh0dHA6Ly9iaXQubHkvMndhREtLWCkKLSAyMDE4LzA3LzE5IC0gW09wZW5BUEkgR2VuZXJhdG9yIENvbnRyaWJ1dGlvbiBRdWlja3N0YXJ0IC0gUmluZ0NlbnRyYWwgR28gU0RLXShodHRwczovL21lZGl1bS5jb20vcmluZ2NlbnRyYWwtZGV2ZWxvcGVycy9vcGVuYXBpLWdlbmVyYXRvci1mb3ItZ28tY29udHJpYnV0aW9uLXF1aWNrc3RhcnQtOGNjNzJiZjM3YjUzKSBieSBbSm9obiBXYW5nXShodHRwczovL2dpdGh1Yi5jb20vZ3Jva2lmeSkKLSAyMDE4LzA4LzIyIC0gW09wZW5BUEkgR2VuZXJhdG9y44Gu44OX44Ot44K444Kn44Kv44OI5qeL5oiQ44Gq44Gp44Gu44Oh44OiXShodHRwczovL3lpbm0uaW5mby8yMDE4MDgyMi8pIGJ5IFtZdXN1a2UgSWludW1hXShodHRwczovL2dpdGh1Yi5jb20veWlubSkKLSAyMDE4LzA5LzEyIC0gW1JlcHJlWmVuIGFuZCBPcGVuQVBJIDMuMDogTm93IGlzIHRoZSBUaW1lXShodHRwczovL3d3dy5yZXByZXplbi5jb20vYmxvZy9yZXByZXplbi1vcGVuYXBpLTMuMC11cGdyYWRlLW5vdy1pcy10aGUtdGltZSkgYnkgW01pbGVzIERhZmZpbl0oaHR0cHM6Ly93d3cucmVwcmV6ZW4uY29tL2Jsb2cvYXV0aG9yL21pbGVzLWRhZmZpbikKLSAyMDE4LzEwLzMxIC0gW0Egbm9kZSBwYWNrYWdlIHdyYXBwZXIgZm9yIG9wZW5hcGktZ2VuZXJhdG9yXShodHRwczovL2dpdGh1Yi5jb20vSGFybW9XYXRjaC9vcGVuYXBpLWdlbmVyYXRvci1jbGkpCi0gMjAxOC8xMS8wMyAtIFtPcGVuQVBJIEdlbmVyYXRvciArIGdvbGFuZyArIEZsdXR0ZXIg44Gn44Ki44OX44Oq6ZaL55m6XShodHRwOi8vcnl1aWNoaTExMXN0ZC5oYXRlbmFibG9nLmNvbS9lbnRyeS8yMDE4LzExLzAzLzIxNDAwNSkgYnkgW1J5dWljaGkgRGFpZ29dKGh0dHBzOi8vZ2l0aHViLmNvbS9yeXVpY2hpMTExKQotIDIwMTgvMTEvMTUgLSBb5Z+65LqOb3BlbmFwaTMuMOeahHlhbWzmlofku7bnlJ/miJBqYXZh5Luj56CB55qE5LiA5qyh5a6e6Le1XShodHRwczovL2Jsb2cuY3Nkbi5uZXQveXp5MTk5MzkxL2FydGljbGUvZGV0YWlscy84NDAyMzk4MikgYnkgW+eEsemtlOeOi10oaHR0cHM6Ly9tZS5jc2RuLm5ldC95enkxOTkzOTEpCi0gMjAxOC8xMS8xOCAtIFtHZW5lcmF0aW5nIFBIUCBsaWJyYXJ5IGNvZGUgZnJvbSBPcGVuQVBJXShodHRwczovL2xvcm5hamFuZS5uZXQvcG9zdHMvMjAxOC9nZW5lcmF0aW5nLXBocC1saWJyYXJ5LWNvZGUtZnJvbS1vcGVuYXBpKSBieSBbTG9ybmEgSmFuZV0oaHR0cHM6Ly9sb3JuYWphbmUubmV0LykgYXQgW0xPUk5BSkFORSBCbG9nXShodHRwczovL2xvcm5hamFuZS5uZXQvYmxvZykKLSAyMDE4LzExLzE5IC0gW09wZW5BUElzIGFyZSBldmVyeXdoZXJlXShodHRwczovL3lvdXR1LmJlLy1sRG90NFluN0RnKSBieSBbSmVyZW1pZSBCcmVzc29uIChVbmJsdSldKGh0dHBzOi8vZ2l0aHViLmNvbS9qbWluaSkgYXQgW0VjbGlwc2VDb24gRXVyb3BlIDIwMThdKGh0dHBzOi8vd3d3LmVjbGlwc2Vjb24ub3JnL2V1cm9wZTIwMTgpCi0gMjAxOC8xMi8wOSAtIFtvcGVuYXBpLWdlbmVyYXRvciDjgpLjgqvjgrnjgr/jg57jgqTjgrrjgZnjgovmlrnms5VdKGh0dHBzOi8vcWlpdGEuY29tL3dhdGlrby9pdGVtcy8wOTYxMjg3YzAyZWFjOTIxMTU3MikgYnkgW0B3YXRpa29dKGh0dHBzOi8vcWlpdGEuY29tL3dhdGlrbykKLSAyMDE5LzAxLzAzIC0gW0NhbGxpbmcgYSBTd2FnZ2VyIHNlcnZpY2UgZnJvbSBBcGV4IHVzaW5nIG9wZW5hcGktZ2VuZXJhdG9yXShodHRwczovL2xla2tpbXdvcmxkLmNvbS8yMDE5LzAxLzAzL2NhbGxpbmctYS1zd2FnZ2VyLXNlcnZpY2UtZnJvbS1hcGV4LXVzaW5nLW9wZW5hcGktZ2VuZXJhdG9yLykgYnkgW01pa2tlbCBGbGluZHQgSGVpc3RlcmJlcmddKGh0dHBzOi8vbGVra2ltd29ybGQuY29tKQotIDIwMTkvMDEvMTMgLSBbT3BlbkFQSSBHZW5lcmF0b3LjgadSRVNUZnVsIEFQSeOBruWumue+qeabuOOBi+OCieiJsuOAheiHquWLleeUn+aIkOOBmeOCi10oaHR0cHM6Ly9reS15ay1kLmhhdGVuYWJsb2cuY29tL2VudHJ5LzIwMTkvMDEvMTMvMjM0MTA4KSBieSBbQGt5X3lrX2RdKGh0dHBzOi8vdHdpdHRlci5jb20va3lfeWtfZCkKLSAyMDE5LzAxLzIwIC0gW0NvbnRyYWN0LUZpcnN0IEFQSSBEZXZlbG9wbWVudCB3aXRoIE9wZW5BUEkgR2VuZXJhdG9yIGFuZCBDb25uZXhpb25dKGh0dHBzOi8vbWVkaXVtLmNvbS9jb21tZW5jaXMvY29udHJhY3QtZmlyc3QtYXBpLWRldmVsb3BtZW50LXdpdGgtb3BlbmFwaS1nZW5lcmF0b3ItYW5kLWNvbm5leGlvbi1iMjFiYmYyZjkyNDQpIGJ5IFtBbmlsIENhbiBBeWRpbl0oaHR0cHM6Ly9naXRodWIuY29tL2FubGNueWRuKQotIDIwMTkvMDEvMzAgLSBbUmFwaWQgQXBwbGljYXRpb24gRGV2ZWxvcG1lbnQgV2l0aCBBUEkgRmlyc3QgQXBwcm9hY2ggVXNpbmcgT3Blbi1BUEkgR2VuZXJhdG9yXShodHRwczovL2R6b25lLmNvbS9hcnRpY2xlcy9yYXBpZC1hcGktZGV2ZWxvcG1lbnQtdXNpbmctb3Blbi1hcGktZ2VuZXJhdG9yKSBieSBbTWlsYW4gU29ua2FyXShodHRwczovL2R6b25lLmNvbS91c2Vycy84MjgzMjkvbWlsYW5fc29ua2FyLmh0bWwpCi0gMjAxOS8wMi8wMiAtIFvlubPpnZnjgpLkv53jgaHjgIHjgrPjg7zjg4njgpLnlJ/miJDjgZvjgogg44CcIE9wZW5BUEkgR2VuZXJhdG9y6KqV55Sf44Gu6IOM5pmv44Go6LuM6LehIOOAnF0oaHR0cHM6Ly9zcGVha2VyZGVjay5jb20vYWtpaGl0b19uYWthbm8vZ3VubWF3ZWIzNCkgYnkgW+S4remHjuaageS6ul0oaHR0cHM6Ly9naXRodWIuY29tL2Fja2ludG9zaCkgYXQgW0d1bm1hLndlYiAjMzQg44K544Kt44O844Oe6aeG5YuV6ZaL55m6XShodHRwczovL2d1bm1hd2ViLmNvbm5wYXNzLmNvbS9ldmVudC8xMTM5NzQvKQotIDIwMTkvMDIvMjAgLSBbQW4gYWR2ZW50dXJlIGluIE9wZW5BUEkgVjMgY29kZSBnZW5lcmF0aW9uXShodHRwczovL211eC5jb20vYmxvZy9hbi1hZHZlbnR1cmUtaW4tb3BlbmFwaS12My1hcGktY29kZS1nZW5lcmF0aW9uLykgYnkgW1BoaWwgQ2x1ZmZdKGh0dHBzOi8vbXV4LmNvbS9ibG9nL2F1dGhvci9waGlsYy8pCi0gMjAxOS8wMi8yNiAtIFtCdWlsZGluZyBBUEkgU2VydmljZXM6IEEgQmVnaW5uZXLigJlzIEd1aWRlXShodHRwczovL21lZGl1bS5jb20vZ29vZ2xlLWNsb3VkL2J1aWxkaW5nLWFwaS1zZXJ2aWNlcy1hLWJlZ2lubmVycy1ndWlkZS03Mjc0YWU0YzU0N2YpIGJ5IFtSYXRyb3MgWS5dKGh0dHBzOi8vbWVkaXVtLmNvbS9AcmF0cm9zeSkgaW4gW0dvb2dsZSBDbG91ZCBQbGF0Zm9ybSBCbG9nXShodHRwczovL21lZGl1bS5jb20vZ29vZ2xlLWNsb3VkKQotIDIwMTkvMDIvMjYgLSBbQnVpbGRpbmcgQVBJcyB3aXRoIE9wZW5BUEk6IENvbnRpbnVlZF0oaHR0cHM6Ly9tZWRpdW0uY29tL0ByYXRyb3N5L2J1aWxkaW5nLWFwaXMtd2l0aC1vcGVuYXBpLWNvbnRpbnVlZC01ZDBmYWFlZDMyZWIpIGJ5IFtSYXRyb3MgWS5dKGh0dHBzOi8vbWVkaXVtLmNvbS9AcmF0cm9zeSkgaW4gW0dvb2dsZSBDbG91ZCBQbGF0Zm9ybSBCbG9nXShodHRwczovL21lZGl1bS5jb20vZ29vZ2xlLWNsb3VkKQotIDIwMTktMDMtMDcgLSBbT3BlbkFQSSBHZW5lcmF0b3Ig44GnIFNwcmluZyBCb290IOOBqCBBbmd1bGFyIOOCkuOCv+OCpOODl+OCu+ODvOODleOBq+e5i+OBkF0oaHR0cHM6Ly9xaWl0YS5jb20vY2hpYmF0by9pdGVtcy9lNGE3NDhkYjEyNDA5YjQwYzAyZikgYnkgW1RvbW9mdW1pIENoaWJhXShodHRwczovL2dpdGh1Yi5jb20vY2hpYmF0KQotIDIwMTktMDMtMTYgLSBbQSBRdWljayBpbnRyb2R1Y3Rpb24gdG8gbWFudWFsIE9wZW5BUEkgVjNdKGh0dHBzOi8vdmFkb3N3YXJlLmlvL3Bvc3QvcXVpY2staW50cm8tdG8tbWFudWFsLW9wZW5hcGktdjMvKSBieSBbdmFkb3NdKGh0dHBzOi8vZ2l0aHViLmNvbS90M2htcm1hbikgYXQgW1ZBRE9TV0FSRV0oaHR0cHM6Ly92YWRvc3dhcmUuaW8pCi0gMjAxOS0wMy0yNSAtIFtBY2Nlc3MgYW55IFJFU1Qgc2VydmljZSB3aXRoIHRoZSBTQVAgUy80SEFOQSBDbG91ZCBTREtdKGh0dHBzOi8vYmxvZ3Muc2FwLmNvbS8yMDE5LzAzLzI1L2ludGVncmF0ZS1zYXAtczRoYW5hLWNsb3VkLXNkay13aXRoLW9wZW4tYXBpLykgYnkgW0FsZXhhbmRlciBEdWVtb250XShodHRwczovL3Blb3BsZS5zYXAuY29tL2FsZXhhbmRlci5kdWVtb250KQotIDIwMTktMDMtMjUgLSBbT3BlbkFQSSBnZW5lcmF0b3LjgpLoqabjgZfjgabjgb/jgotdKGh0dHBzOi8vcWlpdGEuY29tL2FtdXlpa2FtL2l0ZW1zL2U4YTQ1ZGFhZTU5YzY4YmUwZmM4KSBieSBbQGFtdXlpa2FtXShodHRwczovL3R3aXR0ZXIuY29tL2FtdXlpa2FtKQotIDIwMTktMDMtMjcgLSBbT3BlbkFQSTPjgpLkvb/jgaPjgabjgb/jgojjgYbvvIFHb+iogOiqnuOBp+OCr+ODqeOCpOOCouODs+ODiOOBqOOCueOCv+ODluOBruiHquWLleeUn+aIkOOBvuOBp++8gV0oaHR0cHM6Ly90ZWNoYmxvZy56b3pvLmNvbS9lbnRyeS9vcGVuYXBpMy9nbykgYnkgW0Bnb2xkX2tvdV0oaHR0cHM6Ly90d2l0dGVyLmNvbS9nb2xkX2tvdSkKLSAyMDE5LTA0LTE3IC0gW09wZW5BUEnjgavjgojjgovjgrnjgq3jg7zjg57jg5XjgqHjg7zjgrnjg4jplovnmbrjga7lrp/mlr3jgrXjg7Pjg5fjg6vjgahDbG91ZCBSdW7jgavjgaTjgYTjgaZdKGh0dHBzOi8vdGVjaC1ibG9nLm9wdGltLmNvLmpwL2VudHJ5LzIwMTkvMDQvMTcvMTc0MDAwKSBieSBbQHl1a2V5MTAzMV0oaHR0cHM6Ly90d2l0dGVyLmNvbS95dWtleTEwMzEpCi0gMjAxOS0wNC0xOCAtIFtIb3cgdG8gdXNlIE9wZW5BUEkzIGZvciBBUEkgZGV2ZWxvcGVyIChSdWJ5S2FpZ2kgMjAxOSldKGh0dHBzOi8vc3BlYWtlcmRlY2suY29tL290YTQyeS9ob3ctdG8tdXNlLW9wZW5hcGkzLWZvci1hcGktZGV2ZWxvcGVyKSBieSBbQG90YTQyeV0oaHR0cHM6Ly90d2l0dGVyLmNvbS9vdGE0MnkpIGF0IFtSdWJ5S2FpZ2kgMjAxOV0oaHR0cHM6Ly9ydWJ5a2FpZ2kub3JnLzIwMTkpCi0gMjAxOS0wNC0yOSAtIFtBIEJlZ2lubmVyJ3MgR3VpZGUgdG8gQ29kZSBHZW5lcmF0aW9uIGZvciBSRVNUIEFQSXMgKE9wZW5BUEkgR2VuZXJhdG9yKV0oaHR0cHM6Ly9ndW0uY28vb3BlbmFwaV9nZW5lcmF0b3JfZWJvb2spIGJ5IFtXaWxsaWFtIENoZW5nXShodHRwczovL3R3aXR0ZXIuY29tL3dpbmczMjgpCi0gMjAxOS0wNS0wMSAtIFtEZXNpZ24gYW5kIGdlbmVyYXRlIGEgUkVTVCBBUEkgZnJvbSBTd2FnZ2VyIC8gT3BlbkFQSSBpbiBKYXZhLCBQeXRob24sIEMjIGFuZCBtb3JlXShodHRwczovL3NpbXBseS1ob3cuY29tL2Rlc2lnbi1hbmQtZ2VuZXJhdGUtYXBpLWNvZGUtZnJvbS1vcGVuYXBpKSBieSBbU2ltcGx5IEhvd10oaHR0cHM6Ly9zaW1wbHktaG93LmNvbS8pCi0gMjAxOS0wNS0xNyAtIFtHZW5lcmF0ZSBTcHJpbmcgQm9vdCBSRVNUIEFQSSB1c2luZyBTd2FnZ2VyL09wZW5BUEldKGh0dHBzOi8vd3d3LjQ3bm9ydGhsYWJzLmNvbS9rbm93bGVkZ2UtYmFzZS9nZW5lcmF0ZS1zcHJpbmctYm9vdC1yZXN0LWFwaS11c2luZy1zd2FnZ2VyLW9wZW5hcGkvKSBieSBbQW50b25pZSBaYWZpcm92XShodHRwczovL3d3dy40N25vcnRobGFicy5jb20vYXV0aG9yL2FudG9uaWUtemFmaXJvdi8pCi0gMjAxOS0wNS0yMiAtIFtSRVNUIEFQSXPku6PnoIHnlJ/miJDmjIfljZcoT3BlbkFQSSBHZW5lcmF0b3IpXShodHRwczovL2d1bS5jby9vcGVuYXBpX2dlbmVyYXRvcl9lYm9va19nYikgYnkgW1dpbGxpYW0gQ2hlbmddKGh0dHBzOi8vdHdpdHRlci5jb20vd2luZzMyOCksIFtYaW4gTWVuZ10oaHR0cHM6Ly9naXRodWIuY29tL3htZW5nMSkKLSAyMDE5LTA1LTI0IC0gW1JFU1QgQVBJIOS7o+eivOeUn+aIkOaMh+WNlyAoT3BlbkFQSSBHZW5lcmF0b3IpXShodHRwczovL2d1bS5jby9vcGVuYXBpX2dlbmVyYXRvcl9lYm9va19iaWc1KSBieSBbV2lsbGlhbSBDaGVuZ10oaHR0cHM6Ly90d2l0dGVyLmNvbS93aW5nMzI4KQotIDIwMTktMDYtMjQgLSBbS3ViZXJuZXRlcyBDbGllbnRzIGFuZCBPcGVuQVBJIEdlbmVyYXRvcl0oaHR0cHM6Ly9zcGVha2VyZGVjay5jb20vd2luZzMyOC9rdWJlcm5ldGVzLWNsaWVudHMtYW5kLW9wZW5hcGktZ2VuZXJhdG9yKSBieSBbV2lsbGlhbSBDaGVuZ10oaHR0cHM6Ly90d2l0dGVyLmNvbS93aW5nMzI4KSBhdCBbS3ViZXJuZXRlcyBDb250cmlidXRvciBTdW1taXRzIFNoYW5naGFpIDIwMTldKGh0dHBzOi8vd3d3LmxmYXNpYWxsYy5jb20vZXZlbnRzL2NvbnRyaWJ1dG9ycy1zdW1taXQtY2hpbmEtMjAxOS8pCi0gMjAxOS0wNi0yOCBbQ29kZXdpbmQgT3BlbkFQSSBUb29sc10oaHR0cHM6Ly9tYXJrZXRwbGFjZS5lY2xpcHNlLm9yZy9jb250ZW50L2NvZGV3aW5kLW9wZW5hcGktdG9vbHMpIGluIFtFY2xpcHNlIE1hcmtldHBsYWNlXShodHRwczovL21hcmtldHBsYWNlLmVjbGlwc2Uub3JnLykgYnkgSUJNCi0gMjAxOS0wNi0yOSBbQ29kZXdpbmQgT3BlbkFQSSBUb29sc10oaHR0cHM6Ly9tYXJrZXRwbGFjZS52aXN1YWxzdHVkaW8uY29tL2l0ZW1zP2l0ZW1OYW1lPUlCTS5jb2Rld2luZC1vcGVuYXBpLXRvb2xzKSBpbiBbVmlzdWFsIFN0dWRpbyBNYXJrZXRwbGFjZV0oaHR0cHM6Ly9tYXJrZXRwbGFjZS52aXN1YWxzdHVkaW8uY29tLykgYnkgSUJNCi0gMjAxOS0wNy0wNCAtIFtSRVNUIEFQSSDjga7jgZ/jgoHjga7jgrPjg7zjg4jjgpnnlJ/miJDlhaXploAgKE9wZW5BUEkgR2VuZXJhdG9yKV0oaHR0cHM6Ly9ndW0uY28vb3BlbmFwaV9nZW5lcmF0b3JfZWJvb2tfYmlnNSkgYnkgW1dpbGxpYW0gQ2hlbmddKGh0dHBzOi8vdHdpdHRlci5jb20vd2luZzMyOCksIFvkuK3ph47mmoHkurpdKGh0dHBzOi8vZ2l0aHViLmNvbS9hY2tpbnRvc2gpLCBb5ZKM55Sw5ouT5pyXXShodHRwczovL2dpdGh1Yi5jb20vdGF4cG9uKQotIDIwMTktMDctMDggLSBbT3BlbkFQSSBHZW5lcmF0b3Ig44Gr44Kz44Oz44OI44Oq44OT44Ol44O844OI44GX44Gf44KJ56S+5ZCN44GM6LyJ44Gj44Gf6Kmx44CCKENBTSkgLSBDQU0gVEVDSCBCTE9HXShodHRwczovL3RlY2guY2FtLWluYy5jby5qcC9lbnRyeS8yMDE5LzA3LzA4LzE0MDAwMCkgYnkgW0NBTSwgSW5jLl0oaHR0cHM6Ly93d3cuY2FtLWluYy5jby5qcC8pCi0gMjAxOS0wNy0xNCAtIFtPcGVuQVBJIEdlbmVyYXRvcuOBp1B5dGhvbuOBruOCr+ODqeOCpOOCouODs+ODiOODqeOCpOODluODqeODquOCkuS9nOaIkOOBl+OBn10oaHR0cHM6Ly9xaWl0YS5jb20veXVqaTM4a3dtdC9pdGVtcy9kZmI5MjkzMTZhMTMzNWExNjFjMCkgYnkgW3l1amkzOGt3bXRdKGh0dHBzOi8vcWlpdGEuY29tL3l1amkzOGt3bXQpCi0gMjAxOS0wNy0xOSAtIFtEZXZlbG9wZXIgRXhwZXJpZW5jZSAoRFgpIGZvciBPcGVuLVNvdXJjZSBQcm9qZWN0czogSG93IHRvIEVuZ2FnZSBEZXZlbG9wZXJzIGFuZCBCdWlsZCBhIEdyb3dpbmcgRGV2ZWxvcGVyIENvbW11bml0eV0oaHR0cHM6Ly9zcGVha2VyZGVjay5jb20vd2luZzMyOC9kZXZlbG9wZXItZXhwZXJpZW5jZS1keC1mb3Itb3Blbi1zb3VyY2UtcHJvamVjdHMtZW5nbGlzaC1qYXBhbmVzZSkgYnkgW1dpbGxpYW0gQ2hlbmddKGh0dHBzOi8vdHdpdHRlci5jb20vd2luZzMyOCksIFvkuK3ph47mmoHkurpdKGh0dHBzOi8vZ2l0aHViLmNvbS9hY2tpbnRvc2gpIGF0IFtPcGVuIFNvdXJjZSBTdW1taXQgSmFwYW4gMjAxOV0oaHR0cHM6Ly9ldmVudHMubGludXhmb3VuZGF0aW9uLm9yZy9ldmVudHMvb3Blbi1zb3VyY2Utc3VtbWl0LWphcGFuLTIwMTkvKQotIDIwMTktMDgtMTQgLSBbT3VyIE9wZW5BUEkgam91cm5leSB3aXRoIFN0YW5kYXJkaXppbmcgU0RLc10oaHR0cHM6Ly9iaXRtb3Zpbi5jb20vb3VyLW9wZW5hcGktam91cm5leS13aXRoLXN0YW5kYXJkaXppbmctc2Rrcy8pIGJ5IFtTZWJhc3RpYW4gQnVyZ3N0YWxsZXJdKGh0dHBzOi8vYml0bW92aW4uY29tL2F1dGhvci9zYnVyZ3N0YWxsZXIvKSBhdCBbQml0bW92aW5dKGh0dHBzOi8vd3d3LmJpdG1vdmluLmNvbSkKLSAyMDE5LTA4LTE1IC0gW0FQSeOBruOCs+ODvOODieOCkuiHquWLleeUn+aIkOOBleOBm+OBn+OBhOOBoOOBkeOBquOCiWdSUEPjgafjgarjgY/jgabjgoLjgojjgY/jgarjgYQ/XShodHRwczovL3d3dy5tM3RlY2guYmxvZy9lbnRyeS8yMDE5LzA4LzE1LzExMDAwMCkgYnkgW00zLCBJbmMuXShodHRwczovL2NvcnBvcmF0ZS5tMy5jb20vKQotIDIwMTktMDgtMjIgLSBb44Oe44Kk44Kv44Ot44K144O844OT44K544Gr44GK44GR44KLV2ViIEFQSeOCueOCreODvOODnuOBrueuoeeQhuKUgCBHcmFwaFFM44CBZ1JQQ+OAgU9wZW5BUEnjga7nibnlvrTjgajkvb/jgYTjganjgZPjgo1dKGh0dHBzOi8vZW1wbG95bWVudC5lbi1qYXBhbi5jb20vZW5naW5lZXJodWIvZW50cnkvMjAxOS8wOC8yMi8xMDMwMDApIGJ5IFtAb3RhNDJ5XShodHRwczovL3R3aXR0ZXIuY29tL290YTQyeSkKLSAyMDE5LTA4LTI0IC0gW1N3YWdnZXLjg4njgq3jg6Xjg6Hjg7Pjg4jjgYvjgolPcGVuQVBJIEdlbmVyYXRvcuOCkuS9v+OBo+OBpuODouODg+OCr+OCteODvOODkOODvOS9nOaIkF0oaHR0cHM6Ly9xaWl0YS5jb20vbWFzYXlvc2hpMDIyMi9pdGVtcy80ODQ1ZTRjNzE1ZDA0NTg3YzEwNCkgYnkgW+WdguacrOato+e+qV0oaHR0cHM6Ly9xaWl0YS5jb20vbWFzYXlvc2hpMDIyMikKLSAyMDE5LTA4LTI5IC0gW09wZW5BUEnliJ3mjqJdKGh0dHBzOi8vY2xvdWQudGVuY2VudC5jb20vZGV2ZWxvcGVyL2FydGljbGUvMTQ5NTk4NikgYnkgW3BlYWt4aWVdKGh0dHBzOi8vY2xvdWQudGVuY2VudC5jb20vZGV2ZWxvcGVyL3VzZXIvMTExMzE1MikgYXQgW+iFvuiur+S6keekvuWMul0oaHR0cHM6Ly9jbG91ZC50ZW5jZW50LmNvbS9kZXZlbG9wZXIpCi0gMjAxOS0wOC0yOSAtIFvlhajpnaLov5vljJbvvJpLdWJlcm5ldGVzIENSRCAxLjE2IEdB5YmN5567XShodHRwczovL3d3dy5zZXJ2aWNlbWVzaGVyLmNvbS9ibG9nL2t1YmVybmV0ZXMtMS4xNi1jcmQtZ2EtcHJldmlldy8pIGJ5IFtNaW4gS2ltXShodHRwczovL2dpdGh1Yi5jb20veXVlOTk0NDg4MikgYXQgW1NlcnZpY2VNZXNoZXIgQmxvZ10oaHR0cHM6Ly93d3cuc2VydmljZW1lc2hlci5jb20vYmxvZy8pCi0gMjAxOS0wOS0wMSAtIFtDcmVhdGluZyBhIFBIUC1TbGltIHNlcnZlciB1c2luZyBPcGVuQVBJIChZb3V0dWJlIHZpZGVvKV0oaHR0cHM6Ly93d3cueW91dHViZS5jb20vd2F0Y2g/dj01Y0p0Yklyc1lrZykgYnkgW0RhbmllbCBQZXJzc29uXShodHRwczovL3d3dy55b3V0dWJlLmNvbS9jaGFubmVsL1VDbkctVE4yM2xzd082UWJ2V2hNdHhwQSkKLSAyMDE5LTA5LTA2IC0gW1ZlcnQueCBhbmQgT3BlbkFQSV0oaHR0cHM6Ly93aXNzZWwubmV0L2Jsb2cvMjAxOS8wOS92ZXJ0eC1hbmQtb3BlbmFwaS5odG1sKSBieSBbU3RlcGhhbiBIIFdpc3NlbF0oaHR0cHM6Ly90d2l0dGVyLmNvbS9ub3Rlc3NlbnNlaSkgYXQgW3dpc3NlbC5uZXQgYmxvZ10oaHR0cHM6Ly93aXNzZWwubmV0KQotIDIwMTktMDktMDkgLSBbQ2xvdWQtbmF0aXZlIGRldmVsb3BtZW50IC0gQ3JlYXRpbmcgUkVTVGZ1bCBtaWNyb3NlcnZpY2VzXShodHRwczovL2Nsb3VkLmlibS5jb20vZG9jcy9jbG91ZC1uYXRpdmU/dG9waWM9Y2xvdWQtbmF0aXZlLXJlc3QtYXBpKSBpbiBbSUJNIENsb3VkIERvY3NdKGh0dHBzOi8vY2xvdWQuaWJtLmNvbS9kb2NzKQotIDIwMTktMDktMTQgLSBbR2VuZXJhdGluZyBhbmQgQ29uZmlndXJpbmcgYSBNYXN0ZXJjYXJkIEFQSSBDbGllbnRdKGh0dHBzOi8vZGV2ZWxvcGVyLm1hc3RlcmNhcmQuY29tL3BsYXRmb3JtL2RvY3VtZW50YXRpb24vZ2VuZXJhdGluZy1hbmQtY29uZmlndXJpbmctYS1tYXN0ZXJjYXJkLWFwaS1jbGllbnQvKSBhdCBbTWFzdGVyY2FyZCBEZXZlbG9wZXJzIFBsYXRmb3JtXShodHRwczovL2RldmVsb3Blci5tYXN0ZXJjYXJkLmNvbS9wbGF0Zm9ybS9kb2N1bWVudGF0aW9uLykKLSAyMDE5LTA5LTE1IC0gW09wZW5BUEkoU3dhZ2dlcinlsI7lhaXkuIvoqr/jgbldKGh0dHBzOi8vcWlpdGEuY29tL1Nob2ljaGlLdXJhb2thL2l0ZW1zL2YxZjdhM2MyMzc2ZjdjZDljNTZhKSBieSBbU2hvaWNoaSBLdXJhb2thXShodHRwczovL3FpaXRhLmNvbS9TaG9pY2hpS3VyYW9rYSkKLSAyMDE5LTA5LTE3IC0gW1R1dG9yaWFsOiBEb2N1bWVudGluZyBodHRwNGsgQVBJcyB3aXRoIE9wZW5BcGkzXShodHRwczovL3d3dy5odHRwNGsub3JnL3R1dG9yaWFscy9kb2N1bWVudGluZ19hcGlzX3dpdGhfb3BlbmFwaS8pIGJ5IFtodHRwNGtdKGh0dHBzOi8vd3d3Lmh0dHA0ay5vcmcvKQotIDIwMTktMDktMjIgLSBbT3BlbkFQSSAz44KS5a6M5YWo44Gr55CG6Kej44Gn44GN44KL5pysXShodHRwczovL2Jvb3RoLnBtL2phL2l0ZW1zLzE1NzE5MDIpIGJ5IFtAb3RhNDJ5XShodHRwczovL3R3aXR0ZXIuY29tL290YTQyeSkKLSAyMDE5LTA5LTIyIC0gW1JFU1RmdWwgQVBJczogVHV0b3JpYWwgb2YgT3BlbkFQSSBTcGVjaWZpY2F0aW9uXShodHRwczovL21lZGl1bS5jb20vQGFtaXJtLmxhdmFzYW5pL3Jlc3RmdWwtYXBpcy10dXRvcmlhbC1vZi1vcGVuYXBpLXNwZWNpZmljYXRpb24tZWVhZGEwZTM5MDFkKSBieSBbQW1pciBMYXZhc2FuaV0oaHR0cHM6Ly9tZWRpdW0uY29tL0BhbWlybS5sYXZhc2FuaSkKLSAyMDE5LTA5LTIyIC0gW1JlZGVmaW5pbmcgU0RLcyBhcyBzb2Z0d2FyZSBkaXZlcnNpdHkga2l0c10oaHR0cHM6Ly9kZXZyZWwubmV0L2Rldi1yZWwvcmVkZWZpbmluZy1zZGtzLWFzLXNvZnR3YXJlLWRpdmVyc2l0eS1raXRzKSBieSBbU2lkIE1hZXN0cmUgKFhlcm8pXShodHRwczovL3R3aXR0ZXIuY29tL3NpZG5leWFsbGVuKSBhdCBbRGV2UmVsQ29uIFNhbiBGcmFuY2lzY28gMjAxOV0oaHR0cHM6Ly9zZjIwMTkuZGV2cmVsLm5ldC8pCi0gMjAxOS0wOS0yMyAtIFtzd2FnZ2Vy44GL44KJT3BlbkFwaSBHZW5lcmF0b3LjgadTcHJpbmfjga7jgrPjg7zjg4njgpLoh6rli5XnlJ/miJBdKGh0dHBzOi8vcWlpdGEuY29tL2xpdHRsZUZlZXQvaXRlbXMvNDkyZGYyYWQ2OGEwNzk5YTVlNWUpIGJ5IFtAbGl0dGxlRmVldF0oaHR0cHM6Ly9xaWl0YS5jb20vbGl0dGxlRmVldCkgYXQgW1FpaXRhXShodHRwczovL3FpaXRhLmNvbS8pCi0gMjAxOS0wOS0yNCAtIFtFaW5lIFN0dW5kZSB3YXMgbWl0IEFwaSBGaXJzdCFdKGh0dHBzOi8vd3d3LnNsaWRlc2hhcmUubmV0L0phbldlaW5zY2hlbmtlci9laW5lLXN0dW5kZS13YXMtbWl0LWFwaS1maXJzdCkgYnkgW0BqYW53ZWluc2NoZW5rZXJdKGh0dHBzOi8vdHdpdHRlci5jb20vamFud2VpbnNjaGVua2VyKSBhdCBbSmF2YSBGb3J1bSBOb3JkXShodHRwczovL2phdmFmb3J1bW5vcmQuZGUvKQotIDIwMTktMTAtMDkgLSBbb3BlbmFwaS1nZW5lcmF0b3Ig44Gn55Sf5oiQ44GX44GfIEdvIOOCr+ODqeOCpOOCouODs+ODiOOBpyBCZWFyZXIg6KqN6Ki844KS44GZ44KLXShodHRwczovL2F1dG9wcC10ZWNoLmhhdGVuYWJsb2cuY29tL2VudHJ5LzIwMTkvMTAvMDkvMjIyMDM5KSBieSBbQWtpcmEgVGFuaW11cmFdKGh0dHBzOi8vZ2l0aHViLmNvbS9hdXRvcHApCi0gMjAxOS0xMC0xMCAtIFtBdXRvbWF0aWMgR2VuZXJhdGlvbiBvZiBSRVNUIENsaWVudHNdKGh0dHBzOi8vd3d3Lm1lZXR1cC5jb20vZnItRlIvQ3JpdGVvLUxhYnMtVGVjaC1UYWxrcy9ldmVudHMvMjY0Nzc1NzY4LykgYnkgVGhvbWFzIFBleXJhcmQsIFNlbmlvciBTb2Z0d2FyZSBFbmdpbmVlciBhdCBDcml0ZW8gaW4gW0Z1bGwtU3RhY2sgVGVjaCBUYWxrcyAoTWVldHVwKV0oaHR0cHM6Ly93d3cubWVldHVwLmNvbS9mci1GUi9Dcml0ZW8tTGFicy1UZWNoLVRhbGtzL2V2ZW50cy8yNjQ3NzU3NjgvKQotIDIwMTktMTAtMTIgLSBbT3BlbkFwaeiHquWKqOeUn+aIkGNsaWVudF0oaHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3d4aWQyNzk4MjI2L2FydGljbGUvZGV0YWlscy8xMDI1Mjc0NjcpIGJ5IFvpg5Hms73mtLJdKGh0dHBzOi8vbWUuY3Nkbi5uZXQvd3hpZDI3OTgyMjYpCi0gMjAxOS0xMC0xNiAtIFtIb3cgdG8gc2hpcCBBUElzIGZhc3Rlcj9dKGh0dHBzOi8vbWVkaXVtLmNvbS9AYWNjb3VudHNfNzYyMjQvaG93LXRvLXNoaXAtYXBpcy1mYXN0ZXItY2FiZWYyZjgxOWU0KSBieSBbU2ltb24gR3VpbGxpYW1zIEAgUG9uaUNvZGVdKGh0dHBzOi8vcG9uaWNvZGUuZGV2KQotIDIwMTktMTAtMjIgLSBbT3BlbkFQSSArIFNwcmluZyBCb290KEtvdGxpbinjgafjg5XjgqHjgqTjg6vjg4Djgqbjg7Pjg63jg7zjg4lBUEnjgpLkvZzmiJDjgZnjgotdKGh0dHBzOi8vcWlpdGEuY29tL2Jvcm9ubmdvL2l0ZW1zLzRiNzhiOTI1MjYyMDlkYWVhZWU5KSBieSBbWXVraSBGdXJ1a2F3YV0oaHR0cHM6Ly90d2l0dGVyLmNvbS95dWtpX2Z1cnVrYXdhNSkKLSAyMDE5LTEwLTI0IC0gW01pY3JvcHJvZmlsZSBPcGVuQVBJIC0gQ29kZSBGaXJzdCBvciBEZXNpZ24gRmlyc3Q/XShodHRwczovL2dpdGh1Yi5jb20vcGUtc3QvYXBpZG9jcy9ibG9iL21hc3Rlci9NaWNyb1Byb2ZpbGUtT3BlbkFQSS1hbGwtc2xpZGVzLnBkZikgYnkgW1BldGVyIFtwyZvKg8mZXSBTdGVpbmVyXShodHRwczovL3R3aXR0ZXIuY29tL3Blc2NoZSkgYXQgW2VjbGlwc2Vjb24gRXVyb3BlIDIwMTldKGh0dHBzOi8vd3d3LmVjbGlwc2Vjb24ub3JnL2V1cm9wZTIwMTkvc2Vzc2lvbnMvbWljcm9wcm9maWxlLW9wZW5hcGktY29kZS1maXJzdC1vci1kZXNpZ24tZmlyc3QpCi0gMjAxOS0xMS0wNiAtIFtHZW5lcmF0aW5nIEFQSSBjbGllbnRzIGJhc2VkIG9uIE9wZW5BUEkgdjMgc3BlY2lmaWNhdGlvbnNdKGh0dHBzOi8vOThlbGVtZW50cy5jb20vYmxvZy9nZW5lcmF0aW5nLWFwaS1jbGllbnRzLWJhc2VkLW9uLW9wZW5hcGktdjMtc3BlY2lmaWNhdGlvbnMpIGJ5IFtEb21pbmlrIEphc3RyesSZYnNraSBAIDk4ZWxlbWVudHNdKGh0dHBzOi8vOThlbGVtZW50cy5jb20pCi0gMjAxOS0xMS0wNiAtIFtPcGVuQVBJ44KS5Yip55So44GX44Gm6Ieq5YmN44GuQVBJ44K144O844OQ44O8KFNpbmF0cmEp44KS56e75qSN44GX44Gf5pmC44Gu44Oh44OiXShodHRwczovL3FpaXRhLmNvbS9ZYXN1aGlyb0FCRS9pdGVtcy9jNzM5MjBlYWIyZDlkNmU5N2ZkOSkgYnkgW1lhc3VoaXJvIEFCRV0oaHR0cHM6Ly90d2l0dGVyLmNvbS9ZYXN1aGlyb0FCRSkKLSAyMDE5LTExLTA3IC0gW0FQSSBGaXJzdCBkZXZlbG9wbWVudCB3aXRoIE9wZW5BUEkgLSBZb3Ugc2hvdWxkIHlvdSBwcmFjdGlzZSBpdCAhP10oaHR0cHM6Ly93d3cueW91dHViZS5jb20vd2F0Y2g/dj1GOWlGM2ExWjhZOCkgYnkgW05pY2sgVmFuIEhvb2ZdKGh0dHBzOi8vd3d3Lm5pY2t2YW5ob29mLmNvbS8pIGF0IFtEZXZveHggQmVsZ2l1bSAyMDE5XShodHRwczovL2Rldm94eC5iZS8pCi0gMjAxOS0xMS0wOCAtIFtKSGlwc3RlciBiZXlvbmQgQ1JVRCAtIEFQSS1GaXJzdCBmb3IgRW50ZXJwcmlzZXMgYnkgRW5yaWNvIENvc3RhbnppXShodHRwczovL3d3dy55b3V0dWJlLmNvbS93YXRjaD92PW0yOEpGb3ZLUTIwKSBieSBbRW5yaWNvIENvc3RhbnppXShodHRwczovL3R3aXR0ZXIuY29tL2Vucmljb2Nvc3RhbnppKSBhdCBbSkhpcHN0ZXIgQ29uZiAyMDE5IGluIFBhcmlzXShodHRwczovL2poaXBzdGVyLWNvbmYuZ2l0aHViLmlvLykKLSAyMDE5LTExLTExIC0gW1R5cGVTY3JpcHQgUkVTVCBBUEnjgq/jg6njgqTjgqLjg7Pjg4hdKGh0dHBzOi8vcWlpdGEuY29tL3VuaHVycmllZC9pdGVtcy83Yjc0ZjdkM2M0MzU0NWRhZGQyYikgYnkgW0B1bmh1cnJpZWRdKGh0dHBzOi8vcWlpdGEuY29tL3VuaHVycmllZCkKLSAyMDE5LTExLTExIC0gW09uZSBTcGVjIHRvIFJ1bGUgdGhlbSBhbGwgLSBPcGVuQVBJIGluIEFjdGlvbl0oaHR0cHM6Ly93d3cueW91dHViZS5jb20vd2F0Y2g/dj1NTWF5X25odDhlYykgYnkgW0FuZHJlYXMgTGl0dF0oaHR0cHM6Ly9naXRodWIuY29tL2xpdHRsZHIpIGF0IFtjb2RlLnRhbGtzIDIwMTldKGh0dHBzOi8vd3d3LmNvZGV0YWxrcy5jb20vKQotIDIwMTktMTEtMTMgLSBbT3BlbkFQSSAzLjAgRWRpdG9yIEFuZCBHZW5lcmF0b3IgV2l0aCBBIFNwcmluZyBCb290IEV4YW1wbGVdKGh0dHBzOi8vc2ltcGx5LWhvdy5jb20vZGVzaWduLWFuZC1nZW5lcmF0ZS1hcGktY29kZS1mcm9tLW9wZW5hcGkpIGF0IFtTaW1wbHkgSG93XShodHRwczovL3NpbXBseS1ob3cuY29tLykKLSAyMDE5LTExLTE3IC0gW09wZW5BUEkgR2VuZXJhdG9yIFlvdVR1YmUgcGxheWxpc3RdKGh0dHBzOi8vd3d3LnlvdXR1YmUuY29tL3BsYXlsaXN0P2xpc3Q9UEx0SnlIVk1kemZGNmZCa09VVjVWRFZFclAyM0NHZ0hJeSkgYXQgW1lvdVR1YmVdKGh0dHBzOi8vd3d3LnlvdXR1YmUuY29tKQotIDIwMTktMTEtMjAgLSBbSW50cm9kdWN0aW9uIHRvIE9wZW5BUEldKGh0dHBzOi8vbm90aS5zdC9sb3JuYWphbmUvSHZESDdVL2ludHJvZHVjdGlvbi10by1vcGVuYXBpKSBieSBbTG9ybmEgTWl0Y2hlbGxdKGh0dHBzOi8vdHdpdHRlci5jb20vbG9ybmFqYW5lKSBhdCBbR09UTyBDb3BlbmhhZ2VuIDIwMTldKGh0dHBzOi8vZ290b2NwaC5jb20vMjAxOS8pCi0gMjAxOS0xMS0yMCAtIFtIb3cgdG8gR2VuZXJhdGUgQW5ndWxhciBjb2RlIGZyb20gT3BlbkFQSSBzcGVjaWZpY2F0aW9uc10oaHR0cHM6Ly9kb3RuZXR0aG91Z2h0cy5uZXQvaG93LXRvLWdlbmVyYXRlLWFuZ3VsYXItY29kZS1mcm9tLW9wZW5hcGktc3BlY2lmaWNhdGlvbnMvKSBieSBBbnVyYWoKLSAyMDE5LTExLTIzIC0gW1N3YWdnZXIg44Gn44Gv44Gq44GEIE9wZW5BUEkgU3BlY2lmaWNhdGlvbiAzLjAg44Gr44KI44KLIEFQSSDjgrXjg7zjg5Djg7zplovnmbpdKGh0dHBzOi8vd3d3LnNsaWRlc2hhcmUubmV0L3RlY2hibG9neWFob28vc3dhZ2dlci1vcGVuYXBpLXNwZWNpZmljYXRpb24tMzAtYXBpKSBieSBbVGV0c3V5YSBNb3JpbW90b10oaHR0cHM6Ly9naXRodWIuY29tL3QyeSkgYXQgW0pKVUcgQ0NDIDIwMTkgRmFsbF0oaHR0cHM6Ly9jY2MyMDE5ZmFsbC5qYXZhLXVzZXJzLmpwLykKLSAyMDE5LTExLTI0IC0gW0FjY2VsZXJhdGUgRmx1dHRlciBkZXZlbG9wbWVudCB3aXRoIE9wZW5BUEkgYW5kIERhcnQgY29kZSBnZW5lcmF0aW9uXShodHRwczovL21lZGl1bS5jb20vQGlyaW5hc291dGh3ZWxsXzIyMC9hY2NlbGVyYXRlLWZsdXR0ZXItZGV2ZWxvcG1lbnQtd2l0aC1vcGVuYXBpLWFuZC1kYXJ0LWNvZGUtZ2VuZXJhdGlvbi0xZjE2ZjgzMjlhNmEpIGJ5IFtJcmluYSBTb3V0aHdlbGxdKGh0dHBzOi8vbWVkaXVtLmNvbS9AaXJpbmFzb3V0aHdlbGxfMjIwKQotIDIwMTktMTEtMjUgLSBbb3BlbmFwaS1nZW5lcmF0b3LjgafmiYvou73jgavjgrnjgr/jg5bjgrXjg7zjg5Djgajjgq/jg6njgqTjgqLjg7Pjg4jjga7nlJ/miJBdKGh0dHBzOi8vcWlpdGEuY29tL3BvY2hvcG9jaG8xMy9pdGVtcy84ZGI2NjJlMTkzNGZiMmI0MDhiOCkgYnkgW0Bwb2Nob3BvY2hvMTNdKGh0dHBzOi8vdHdpdHRlci5jb20vcG9jaG9wb2NobzEzKQotIDIwMTktMTEtMjYgLSBbQ29yZGFDb24gMjAxOSBIaWdobGlnaHRzOiBCcmFpZCBTZXJ2ZXIgYW5kIE9wZW5BUEkgR2VuZXJhdG9yIGZvciBDb3JkYSBDbGllbnQgQVBJ4oCZc10oaHR0cHM6Ly9ibG9nLmI5bGFiLmNvbS9jb3JkYWNvbi0yMDE5LWhpZ2hsaWdodHMtYnJhaWQtc2VydmVyLWFuZC1vcGVuYXBpLWdlbmVyYXRvci1mb3ItY29yZGEtZmxvd3MtYXBpLXMtZDI0MTc5Y2NiMjdjKSBieSBbQWRlbCBSdXN0dW1dKGh0dHBzOi8vYmxvZy5iOWxhYi5jb20vQGFkZWxyZXN0b20pIGF0IFtCOWxhYl0oaHR0cHM6Ly9ibG9nLmI5bGFiLmNvbS8pCi0gMjAxOS0xMi0wMyAtIFtBIFJvYWQgdG8gTGVzcyBDb2Rpbmc6IEF1dG8tR2VuZXJhdGUgQVBJTGlicmFyeV0oaHR0cHM6Ly93d3cuY29yZGEubmV0L2Jsb2cvYS1yb2FkLXRvLWxlc3MtY29kaW5nLWF1dG8tZ2VuZXJhdGUtYXBpbGlicmFyeS8pIGF0IFtDb3JkYSBCbG9nXShodHRwczovL3d3dy5jb3JkYS5uZXQvYmxvZy8pCi0gMjAxOS0xMi0wNCAtIFtBbmd1bGFy77yLTmVzdEpT77yLT3BlbkFQSe+8iFN3YWdnZXLvvInjgafjg57jgqTjgq/jg63jgrXjg7zjg5PjgrnjgpLoppbph47jgavlhaXjgozjgZ/nkrDlooPjgpLogIPjgYjjgotdKGh0dHBzOi8vcWlpdGEuY29tL3RlcmFjeTU1L2l0ZW1zLzAzMjdjN2ExNzBlYzc3Mjk3MGM2KSBieSBb44Gm44KJ44GX44O8XShodHRwczovL3R3aXR0ZXIuY29tL3RlcmFjeTU1KQotIDIwMTktMTItMDUgLSBbQ29kZSBnZW5lcmF0aW9uIG9uIHRoZSBKYXZhIFZNXShodHRwczovL3NwZWFrZXJkZWNrLmNvbS9zdWxsaXMvY29kZS1nZW5lcmF0aW9uLW9uLXRoZS1qYXZhLXZtLTIwMTktMTItMDUpIGJ5IFtTZWFuIFN1bGxpdmFuXShodHRwczovL3NwZWFrZXJkZWNrLmNvbS9zdWxsaXMpCi0gMjAxOS0xMi0xNyAtIFtPcGVuQVBJIEdlbmVyYXRvciDjgacgT0F1dGgyIOOCouOCr+OCu+OCueODiOODvOOCr+ODs+eZuuihjOOBruOCs+ODvOODieOBvuOBp+eUn+aIkOOBl+OBpuOBv+OCi10oaHR0cHM6Ly93d3cudGVjaHNjb3JlLmNvbS9ibG9nLzIwMTkvMTIvMTcvb3BlbmFwaS1nZW5lcmF0b3Itb2F1dGgyLWFjY2Vzc3Rva2VuLykgYnkgW1RFQ0hTQ09SRV0oaHR0cHM6Ly93d3cudGVjaHNjb3JlLmNvbS9ibG9nLykKLSAyMDE5LTEyLTIzIC0gW1VzZSBBZGEgZm9yIFlvdXIgV2ViIERldmVsb3BtZW50XShodHRwczovL3d3dy5lbGVjdHJvbmljZGVzaWduLmNvbS90ZWNobm9sb2dpZXMvZW1iZWRkZWQtcmV2b2x1dGlvbi9hcnRpY2xlLzIxMTE5MTc3L3VzZS1hZGEtZm9yLXlvdXItd2ViLWRldmVsb3BtZW50KSBieSBbU3RlcGhhbmUgQ2FycmV6XShodHRwczovL2dpdGh1Yi5jb20vc3RjYXJyZXopCi0gMjAxOS0xMi0yMyAtIFtPcGVuQVBJ44Gu44K544Kt44O844Oe44KS5YiG5Ymy44O75qeL6YCg5YyW44GX44Gm44GE44GP5pa55rOVXShodHRwczovL2dpZnQtdGVjaC5jby5qcC9hcnRpY2xlcy9zdHJ1Y3R1cmVkLW9wZW5hcGktc2NoZW1hKSBieSBb5bCP6aOv5aGa6YGU5LmfXShodHRwczovL2dpdGh1Yi5jb20vdDJoNSkgYXQgW0dpRlQsIEluY10oaHR0cHM6Ly9naWZ0LXRlY2guY28uanAvKQotIDIwMjAtMDEtMTcgLSBbT3BlbkFQSSBkZW1vIGZvciBQdWxwIDMuMCBHQV0oaHR0cHM6Ly93d3cueW91dHViZS5jb20vd2F0Y2g/dj1tRkJQLU0wWlBmdyZ0PTE3OHMpIGJ5IFtQdWxwXShodHRwczovL3d3dy55b3V0dWJlLmNvbS9jaGFubmVsL1VDSTQzRmZzNFZQRHY3YXdYdnZCSmZSUSkgYXQgW1lvdXR1YmVdKGh0dHBzOi8vd3d3LnlvdXR1YmUuY29tLykKLSAyMDIwLTAxLTE5IC0gW1doeSBkb2N1bWVudCBhIFJFU1QgQVBJIGFzIGNvZGU/XShodHRwczovL2Rldi50by9yb2xmc3RyZWVma2Vyay93aHktZG9jdW1lbnQtYS1yZXN0LWFwaS1hcy1jb2RlLTVlN3ApIGJ5IFtSb2xmIFN0cmVlZmtlcmtdKGh0dHBzOi8vZ2l0aHViLmNvbS9ycHN0cmVlZikgYXQgW0RFViBDb21tdW5pdHldKGh0dHBzOi8vZGV2LnRvKQotIDIwMjAtMDEtMjggLSBbR2V0IFlvdXIgU2VydmVybGVzcyBTd2FnZ2VyIEJhY2sgd2l0aCBPcGVuQVBJXShodHRwczovL2Rldi50by9tYXR0dHlsZXIvZ2V0LXlvdXItc2VydmVybGVzcy1zd2FnZ2VyLWJhY2std2l0aC1vcGVuYXBpLTQ4Z2MpIGJ5IFtNYXR0IFR5bGVyXShodHRwczovL2Rldi50by9tYXR0dHlsZXIpCi0gMjAyMC0wMS0zMCAtIFtPcGVuQVBJIEdlbmVyYXRvcuOBuOOBruOCs+ODs+ODiOODquODk+ODpeODvOODiF0oaHR0cHM6Ly93d3cueXV0YWthMG0ud29yay9lbnRyeS8yMDIwLzAxLzMwLzE2MzkwNSkgYnkgW3l1dGFrYTBtXShodHRwczovL2dpdGh1Yi5jb20veXV0YWthMG0pCi0gMjAyMC0wMi0wMSAtIFtVc2luZyBPcGVuQVBJIHRvIE1heGltaXNlIFlvdXIgUHVscCAzIEV4cGVyaWVuY2VdKGh0dHBzOi8vZm9zZGVtLm9yZy8yMDIwL3NjaGVkdWxlL2V2ZW50L29wZW5hcGkvKSBieSBbRGVubmlzIEtsaWJhbl0oaHR0cHM6Ly9naXRodWIuY29tL2RrbGliYW4vKSBhdCBbRk9TREVNXShodHRwczovL2Zvc2RlbS5vcmcvKQotIDIwMjAtMDItMDcgLSBbV2h5IHlvdSBzaG91bGQgdXNlIE9wZW5BUEkgZm9yIHlvdXIgQVBJIGRlc2lnbl0oaHR0cHM6Ly93d3cueW91dHViZS5jb20vd2F0Y2g/dj16aGI3dlVBcExXOCZ0PTkyN3MpIGJ5IFtOaWNrIFZhbiBIb29mXShodHRwczovL2FwaWNvbmZlcmVuY2UubmV0L3NwZWFrZXIvbmljay12YW4taG9vZi8pIGF0IFtBUEkgQ29uZmVyZW5jZV0oaHR0cHM6Ly9hcGljb25mZXJlbmNlLm5ldC8pCi0gMjAyMC0wMi0xNyAtIFtSdWJ5bmV0ZXM6IHVzaW5nIE9wZW5BUEkgdG8gdmFsaWRhdGUgS3ViZXJuZXRlcyBjb25maWdzXShodHRwczovL3d3dy5icmlnaHRib3guY29tL2Jsb2cvMjAyMC8wMi8xNy91c2luZy1vcGVuYXBpLXRvLXZhbGlkYXRlLWt1YmVybmV0ZXMtY29uZmlncy8pIGJ5IE5laWwgV2lsc29uIGF0IFtCcmlnaHRib3hdKGh0dHBzOi8vd3d3LmJyaWdodGJveC5jb20vKQotIDIwMjAtMDItMjAgLSBbQnVpbGRpbmcgU0RLcyBmb3IgdGhlIGZ1dHVyZV0oaHR0cHM6Ly9kZXZibG9nLnhlcm8uY29tL2J1aWxkaW5nLXNka3MtZm9yLXRoZS1mdXR1cmUtYjc5ZmY3MjZkZmQ2KSBieSBbU2lkIE1hZXN0cmUgKFhlcm8pXShodHRwczovL3R3aXR0ZXIuY29tL3NpZG5leWFsbGVuKQotIDIwMjAtMDItMjcgLSBbTnV4dOWIqeeUqOODl+ODreODgOOCr+ODiOOBp0lFMTHjgajku7Loia/jgY/jgZnjgovjgZ/jgoHjga5FMkVdKGh0dHBzOi8vdGVjaC5tZWRwZWVyLmNvLmpwL2VudHJ5L2UyZS1pZTExKSBhdCBbTWVkcGVlci5jby5qcCBUZWNoIEJsb2ddKGh0dHBzOi8vdGVjaC5tZWRwZWVyLmNvLmpwLykKLSAyMDIwLTAyLTI5IC0gW1Byb3ZpZGluZyBTdXBwb3J0IHRvIElvVCBEZXZpY2VzIERlcGxveWVkIGluIERpc2Nvbm5lY3RlZCBSdXJhbCBFbnZpcm9ubWVudCAoQ29uZmVyZW5jZSBwYXBlcildKGh0dHBzOi8vbGluay5zcHJpbmdlci5jb20vY2hhcHRlci8xMC4xMDA3Lzk3OC0zLTAzMC00MTQ5NC04XzE0KSBieSBTZXJnaW8gTGFzbywgRGFuaWVsIEZsb3Jlcy1NYXJ0w61uLCBKdWFuIEx1aXMgSGVycmVyYUNhcmxvcywgQ2FuYWxKdWFuIE1hbnVlbCwgTXVyaWxsb0phdmllciBCZXJyb2NhbAotIDIwMjAtMDMtMDIgLSBbSG93IFRvIEdlbmVyYXRlIEFuZ3VsYXIgJiBTcHJpbmcgQ29kZSBGcm9tIE9wZW5BUEkgU3BlY2lmaWNhdGlvbl0oaHR0cHM6Ly93d3cubW9ra2FwcHMuZGUvYmxvZy9ob3ctdG8tZ2VuZXJhdGUtYW5ndWxhci1hbmQtc3ByaW5nLWNvZGUtZnJvbS1vcGVuLWFwaS1zcGVjaWZpY2F0aW9uLykgYnkgW01pY2hhZWwgSG9mZm1hbm5dKGh0dHBzOi8vd3d3Lm1va2thcHBzLmRlLykKLSAyMDIwLTAzLTAyIC0gW09wZW5BUEkgR2VuZXJhdG9yICsgVHlwZVNjcmlwdCDjgaflp4vjgoHjgovoh6rli5XnlJ/miJDjga7lnovjgavlrojjgonjgozjgZ/osYrjgYvjgarjgq/jg6njgqTjgqLjg7Pjg4jnlJ/mtLtdKGh0dHBzOi8vZ2lmdC10ZWNoLmNvLmpwL2FydGljbGVzL29wZW5hcGktZ2VuZXJhdG9yLXR5cGVzY3JpcHQpIGJ5IFvkupTnmb7olLUg55u05qi5XShodHRwczovL2dpZnQtdGVjaC5jby5qcC9tZW1iZXJzL25hb2tpaW9yb2kpIGF0IFtHaUZU5qCq5byP5Lya56S+XShodHRwczovL2dpZnQtdGVjaC5jby5qcC8pCi0gMjAyMC0wMy0xMCAtIFtPcGVuQVBJIEdlbmVyYXRvciBNZWV0dXAgIzFdKGh0dHBzOi8vc3BlYWtlcmRlY2suY29tL2FraWhpdG9fbmFrYW5vL29wZW5hcGktZ2VuZXJhdG9yLW1lZXR1cC1udW1iZXItMSkgYnkgW+S4remHjuaageS6ul0oaHR0cHM6Ly9naXRodWIuY29tL2Fja2ludG9zaCkgYXQgW09wZW5BUEkgR2VuZXJhdG9yIE1lZXR1cCAjMV0oaHR0cHM6Ly9vcGVuYXBpLWdlbmVyYXRvci1tZWV0dXAuY29ubnBhc3MuY29tL2V2ZW50LzE2ODE4Ny8pCi0gMjAyMC0wMy0xNSAtIFtMb2FkIFRlc3RpbmcgWW91ciBBUEkgd2l0aCBTd2FnZ2VyL09wZW5BUEkgYW5kIGs2XShodHRwczovL2s2LmlvL2Jsb2cvbG9hZC10ZXN0aW5nLXlvdXItYXBpLXdpdGgtc3dhZ2dlci1vcGVuYXBpLWFuZC1rNikKLSAyMDIwLTA0LTEzIC0gW+S/uueahOOAkE9BU+OAkeOBqOOBruWQkeOBjeWQiOOBhOaWuSAo54iG6YCf44GnT3BlbkFQSeOBqOWPi+mBlOOBq+OBquOCjeOBhildKGh0dHBzOi8vdGVjaC1ibG9nLm9wdGltLmNvLmpwL2VudHJ5LzIwMjAvMDQvMTMvMTAwMDAwKSBpbiBbT1BUaW0gQmxvZ10oaHR0cHM6Ly90ZWNoLWJsb2cub3B0aW0uY28uanAvKQotIDIwMjAtMDQtMjIgLSBbSW50cm9kdWN0aW9uIHRvIE9wZW5BUEkgR2VuZXJhdG9yXShodHRwczovL25vcmRpY2FwaXMuY29tL2ludHJvZHVjdGlvbi10by1vcGVuYXBpLWdlbmVyYXRvci8pIGJ5IFtLcmlzdG9waGVyIFNhbmRvdmFsXShodHRwczovL25vcmRpY2FwaXMuY29tL2F1dGhvci9zYW5kb3ZhbGVmZmVjdC8pIGluIFtOb3JkaWMgQVBJc10oaHR0cHM6Ly9ub3JkaWNhcGlzLmNvbS8pCi0gMjAyMC0wNC0yNyAtIFtIb3cgd2UgdXNlIE9wZW4gQVBJIHYzIHNwZWNpZmljYXRpb24gdG8gYXV0by1nZW5lcmF0ZSBBUEkgZG9jdW1lbnRhdGlvbiwgY29kZS1zbmlwcGV0cyBhbmQgY2xpZW50c10oaHR0cHM6Ly9tZWRpdW0uY29tL3BkZi1nZW5lcmF0b3ItYXBpL2hvdy13ZS11c2Utb3Blbi1hcGktdjMtc3BlY2lmaWNhdGlvbi10by1hdXRvLWdlbmVyYXRlLWFwaS1kb2N1bWVudGF0aW9uLWNvZGUtc25pcHBldHMtYW5kLWNsaWVudHMtZDEyN2EzY2VhNzg0KSBieSBbVGFuZWwgVMOkaGVww7VsZF0oaHR0cHM6Ly9tZWRpdW0uY29tL0B0YW5lbC50YWhlcG9sZCkKLSAyMDIwLTA1LTA5IC0gW09wZW5BUEnjgafjgYrmiYvou73jgavjg6Ljg4Pjgq9BUEnjgrXjg7zjg5Djg7zjgpLli5XjgYvjgZldKGh0dHBzOi8vcWlpdGEuY29tL2thc2FfbGUvaXRlbXMvOTdjYTZhOGRkNDYwNTY5NWMyNWMpIGJ5IFtTYWNoaWUgS2FtYmFdKGh0dHBzOi8vcWlpdGEuY29tL2thc2FfbGUpCi0gMjAyMC0wNS0xOCAtIFtTcHJpbmcgQm9vdCBSRVNUIHdpdGggT3BlbkFQSSAzXShodHRwczovL2Rldi50by9hbGZvbnpqYW5mcml0aHovc3ByaW5nLWJvb3QtcmVzdC13aXRoLW9wZW5hcGktMy01OWptKSBieSBbQWxmb256IEphbiBGcml0aHpdKGh0dHBzOi8vZGV2LnRvL2FsZm9uemphbmZyaXRoeikKLSAyMDIwLTA1LTE5IC0gW0RlYWQgU2ltcGxlIEFQSXMgd2l0aCBPcGVuIEFQSV0oaHR0cHM6Ly93d3cueW91dHViZS5jb20vd2F0Y2g/dj1zSWFYbVI2eFJBdykgYnkgW0NocmlzIFRhbmtlcnNsZXldKGh0dHBzOi8vZ2l0aHViLmNvbS9kcmFnb25tYW50YW5rKSBhdCBbTmV4bW9dKGh0dHBzOi8vZGV2ZWxvcGVyLm5leG1vLmNvbS8pCi0gMjAyMC0wNS0yMiAtIFtUeXBlU2NyaXB0IFJFU1QgQVBJIENsaWVudF0oaHR0cHM6Ly9kZXYudG8vdW5odXJyaWVkL3R5cGVzY3JpcHQtcmVzdC1hcGktY2xpZW50LTRpbjMpIGJ5IFsidW5odXJyaWVkIl0oaHR0cHM6Ly9kZXYudG8vdW5odXJyaWVkKQotIDIwMjAtMDUtMjggLSBb44CQ5L2/55SoIGxvdGlmeSArIFN3YWdnZXIg5bu6572u5Y+v5YWx55So55qEIExJTkUgTm90aWZ5IGJvdOOAkSAtICNOaUppYSBAIENoYXRib3QgRGV2ZWxvcGVyIFRhaXdhbiDnrKwgIzE5IOWwj+iBml0oaHR0cHM6Ly93d3cueW91dHViZS5jb20vd2F0Y2g/dj1hZ1lWejZkemgxSSkgYnkgW0NoYXRib3QgRGV2ZWxvcGVyIFRhaXdhbl0oaHR0cHM6Ly93d3cueW91dHViZS5jb20vY2hhbm5lbC9VQ3hlWVV5Wk5uSG1wWDIzWU5GLWV3dncpCi0gMjAyMC0wNS0yOCAtIFtCdWlsZGluZyBBUElzIHdpdGggTGFyYXZlbCB1c2luZyBPcGVuQVBJXShodHRwczovL3d3dy55b3V0dWJlLmNvbS93YXRjaD92PXhleEx2UXFBaGlBKSBieSBbQ2hyaXMgVGFua2Vyc2xleV0oaHR0cHM6Ly9naXRodWIuY29tL2RyYWdvbm1hbnRhbmspIGF0IFtMYXJhY29uIEVVXShodHRwczovL2xhcmFjb24uZXUvKQotIDIwMjAtMDYtMTIgLSBbSW50ZXJvcGVyYWJpbGl0eSBieSBjb25zdHJ1Y3Rpb246IGNvZGUgZ2VuZXJhdGlvbiBmb3IgQXJyb3doZWFkIENsaWVudHNdKGh0dHBzOi8vaWVlZXhwbG9yZS5pZWVlLm9yZy9kb2N1bWVudC85Mjc0NzQ2KSBieSBNaWNoZWxlIEFsYmFubywgQnJpYW4gTmllbHNlbiBhdCBbMjAyMCBJRUVFIENvbmZlcmVuY2Ugb24gSW5kdXN0cmlhbCBDeWJlcnBoeXNpY2FsIFN5c3RlbXMgKElDUFMpXShodHRwczovL2llZWV4cGxvcmUuaWVlZS5vcmcveHBsL2NvbmhvbWUvOTI3NDU0NC9wcm9jZWVkaW5nKQotIDIwMjAtMDYtMjMgLSBb5paw6KaP44K144O844OQ44O844Ki44OX44Oq44Kx44O844K344On44Oz44GrVHlwZVNjcmlwdOOCkuaOoeeUqOOBl+OBpuOBv+OBn10oaHR0cHM6Ly93d3cuY2FtLWluYy5jby5qcC9uZXdzLzIwMjAwNjIzKSBhdCBbQ0FNIFRlY2ggQmxvZ10oaHR0cHM6Ly93d3cuY2FtLWluYy5jby5qcC9uZXdzL3RlY2gtYmxvZy8pCi0gMjAyMC0wNi0yOSAtIFtBcnRpZmFjdCBBYnN0cmFjdDogRGVwbG95bWVudCBvZiBBUElzIG9uIEFuZHJvaWQgTW9iaWxlIERldmljZXMgYW5kIE1pY3JvY29udHJvbGxlcnNdKGh0dHBzOi8vaWVlZXhwbG9yZS5pZWVlLm9yZy9kb2N1bWVudC85MTI3MzUzKSBieSBbU2VyZ2lvIExhc28gOyBNYXJpbm8gTGluYWplIDsgSm9zZSBHYXJjaWEtQWxvbnNvIDsgSnVhbiBNLiBNdXJpbGxvIDsgSmF2aWVyIEJlcnJvY2FsXShodHRwczovL2llZWV4cGxvcmUuaWVlZS5vcmcvZG9jdW1lbnQvOTEyNzM1My9hdXRob3JzI2F1dGhvcnMpIGF0IFsyMDIwIElFRUUgSW50ZXJuYXRpb25hbCBDb25mZXJlbmNlIG9uIFBlcnZhc2l2ZSBDb21wdXRpbmcgYW5kIENvbW11bmljYXRpb25zIChQZXJDb20pXShodHRwczovL2llZWV4cGxvcmUuaWVlZS5vcmcveHBsL2NvbmhvbWUvOTEyNTQ0OS9wcm9jZWVkaW5nKQotIDIwMjAtMDctMDcgLSBbNSBCZXN0IEFQSSBEb2N1bWVudGF0aW9uIFRvb2xzXShodHRwczovL2Jsb2cuZHJlYW1mYWN0b3J5LmNvbS81LWJlc3QtYXBpLWRvY3VtZW50YXRpb24tdG9vbHMvKSBieSBTdXNhbm5hIEJvdXNlIGF0IFtEcmVhbUZhY3RvcnkgQmxvZ10oaHR0cHM6Ly9ibG9nLmRyZWFtZmFjdG9yeS5jb20vKQotIDIwMjAtMDctMTIgLSBbT3BlbiBBUEkgMy4w44Gu5a6a576p44GL44KJZ29sYW5n44Gu44K144O844OQ44Kz44O844OJ44Gu44K544Kx44Or44OI44Oz44KS5L2c5oiQ44GZ44KLXShodHRwczovL3FpaXRhLmNvbS9wcm9mZXNzb3IvaXRlbXMvNGNiZDA0ZWMwODRkMTMwNTdiYzIpIGJ5IFtAcHJvZmVzc29yIChRaWl0YSBCbG9nKV0oaHR0cHM6Ly9xaWl0YS5jb20vcHJvZmVzc29yKQotIDIwMjAtMDctMjAgLSBbRGF0YWRvZyBBUEkgY2xpZW50IGxpYnJhcmllcyBub3cgYXZhaWxhYmxlIGZvciBKYXZhIGFuZCBHb10oaHR0cHM6Ly93d3cuZGF0YWRvZ2hxLmNvbS9ibG9nL2phdmEtZ28tbGlicmFyaWVzLykgYnkgSm9yZGFuIE9iZXkgYXQgW0RhdGFkb2cgQmxvZ10oaHR0cHM6Ly93d3cuZGF0YWRvZ2hxLmNvbS9ibG9nKQotIDIwMjAtMDctMjMgLSBbR2VuZXJhdGUgQ2xpZW50IFNESyBmb3IgLk5FVCBDb3JlIHVzaW5nIE9wZW4gQXBpXShodHRwczovL2Rldi50by9ubzBsYXcxL2dlbmVyYXRlLWNsaWVudC1zZGstZm9yLW5ldC1jb3JlLXVzaW5nLW9wZW4tYXBpLTJkZ2gpIGJ5IFtOdW5vIFJlaXNdKGh0dHBzOi8vZGV2LnRvL25vMGxhdzEpCi0gMjAyMC0wNy0yNiAtIFtEYXJ044GuaHR0cF9pbnRlcmNlcHRvcuODqeOCpOODluODqeODquOCkuS9v+OBhuOBqOmFjeWIl+OBruOCr+OCqOODquODkeODqeODoeODvOOCv+OBjOa2iOOBiOOBpuOBl+OBvuOBhuS7tuOBruW/nOaApeWHpue9rl0oaHR0cHM6Ly9xaWl0YS5jb20vZ3lhbW90by9pdGVtcy9lZWVmZjgxYjY3NzA0ODczMTllZCkgYnkgW0BneWFtb3RvXShodHRwczovL3FpaXRhLmNvbS9neWFtb3RvKQotIDIwMjAtMDgtMDEgLSBbR2VuZXJhdGUgQW5ndWxhciBSZWFjdGl2ZUZvcm1zIGZyb20gU3dhZ2dlci9PcGVuQVBJXShodHRwczovL2Rldi50by9tYXJ0aW5tY3dob3J0ZXIvZ2VuZXJhdGUtYW5ndWxhci1yZWFjdGl2ZWZvcm1zLWZyb20tc3dhZ2dlci1vcGVuYXBpLTM1aDkpIGJ5IFtNYXJ0aW4gTWNXaG9ydGVyXShodHRwczovL2Rldi50by9tYXJ0aW5tY3dob3J0ZXIpCi0gMjAyMC0wOC0wMyAtIFtDcmlhbmRvIEJpYmxpb3RlY2FzIHBhcmEgQVBJcyBSRVNUZnVsIGNvbSBPcGVuQVBJLCBTd2FnZ2VyIEVkaXRvciBlIE9wZW5BUEkgR2VuZXJhdG9yXShodHRwczovL21lZGl1bS5jb20vQGV2ZXJpc0JyYXNpbC9jcmlhbmRvLWJpYmxpb3RlY2FzLXBhcmEtYXBpcy1yZXN0ZnVsLWNvbS1vcGVuYXBpLXN3YWdnZXItZWRpdG9yLWUtb3BlbmFwaS1nZW5lcmF0b3ItNzUzNDlhNjQyMGZkKSBieSBbZXZlcmlzIEJyYXNpbCAoYW4gTlRUIERBVEEgQ29tcGFueSldKGh0dHBzOi8vbWVkaXVtLmNvbS9AZXZlcmlzQnJhc2lsKQotIDIwMjAtMDgtMTkgLSBb44Oe44Kk44Kv44Ot44K144O844OT44K544KS6YCj5pC644GX44Gm44G/44KI44GGXShodHRwczovL3RoaW5raXQuY28uanAvYXJ0aWNsZS8xNzcwNCkgYnkgW+WyoeS6lSDoo5Xnn6Io44GK44GL44GEIOOChuOBhuOChCldKGh0dHBzOi8vdGhpbmtpdC5jby5qcC9hdXRob3IvMTc1ODgpLCBb5rOJIOWLnSjjgYTjgZrjgb8g44G+44GV44KLKV0oaHR0cHM6Ly90aGlua2l0LmNvLmpwL2F1dGhvci8xNzcwNSkgYXQgW1RoaW5rIElU77yI44K344Oz44Kv44Kk44OD44OI77yJXShodHRwczovL3RoaW5raXQuY28uanAvKQotIDIwMjAtMDgtMjUgLSBbT3BlbkFQSSBHZW5lcmF0b3Ig44GoIFR5cGVTY3JpcHQg44Gn5Z6L5a6J5YWo44Gr44OV44Ot44Oz44OI44Ko44Oz44OJ6ZaL55m644KS44GX44Gm44GE44KL6KmxXShodHRwczovL3RlY2guc21hcnRoci5qcC9lbnRyeS8yMDIwLzA4LzI1LzEzNTYzMSkgYXQgW1NtYXJ0SFIgVGVjaCBCbG9nXShodHRwczovL3RlY2guc21hcnRoci5qcC8pCi0gMjAyMC0wOS0xMCAtIFtJbnRyb2R1Y3Rpb24gdG8gT3BlbkFQSSB3aXRoIEluc3RhbmFdKGh0dHBzOi8vd3d3Lmluc3RhbmEuY29tL2Jsb2cvaW50cm9kdWN0aW9uLXRvLW9wZW5hcGktd2l0aC1pbnN0YW5hLykgYnkgW0NlZHJpYyBaaWVsXShodHRwczovL3d3dy5pbnN0YW5hLmNvbS9ibG9nL2F1dGhvci9jZWRyaWN6aWVsLykgYXQgW0luc3RhbmEgQmxvZ10oaHR0cHM6Ly93d3cuaW5zdGFuYS5jb20vYmxvZy8pCi0gMjAyMC0wOS0xNyAtIFtHZW5lcmF0ZSBQb3dlclNoZWxsU0RLIHVzaW5nIG9wZW5hcGktZ2VuZXJhdG9yXShodHRwczovL21lZGl1bS5jb20vQGdodWZ6LmxlYXJuL2dlbmVyYXRlLXBvd2Vyc2hlbGxzZGstdXNpbmctb3BlbmFwaS1nZW5lcmF0b3ItMzNiNzAwODkxZTMzKSBieSBbR2h1ZnJhbiBaYWhpZGldKGh0dHBzOi8vbWVkaXVtLmNvbS9AZ2h1ZnoubGVhcm4pCi0gMjAyMC0wOS0yNCAtIFtIb3cgdG8gYXV0b21hdGUgQVBJIGNvZGUgZ2VuZXJhdGlvbiAoT3BlbkFQSS9Td2FnZ2VyKSBhbmQgYm9vc3QgcHJvZHVjdGl2aXR5IC0gVHV0b3JpYWwgd2l0aCBSZWFjdCBOYXRpdmUgZmVhdHVyaW5nIFR5cGVTY3JpcHRdKGh0dHBzOi8vbWVkaXVtLmNvbS9Ac2NlbGVza2kvaG93LXRvLWF1dG9tYXRlLWFwaS1jb2RlLWdlbmVyYXRpb24tb3BlbmFwaS1zd2FnZ2VyLWFuZC1ib29zdC1wcm9kdWN0aXZpdHktMTE3NmEwMDU2ZDhhKSBieSBbU2FuamluIENlbGVza2ldKGh0dHBzOi8vbWVkaXVtLmNvbS9Ac2NlbGVza2kpCi0gMjAyMC0wOS0yNSAtIFtHZW5lcmF0ZSBPcGVuQVBJIEFuZ3VsYXIgQ2xpZW50XShodHRwczovL21lZGl1bS5jb20vQHBndXNvL2dlbmVyYXRlLW9wZW5hcGktYW5ndWxhci1jbGllbnQtOGM5Mjg4ZThiYmQ0KSBieSBbUGF0cmljXShodHRwczovL21lZGl1bS5jb20vQHBndXNvKQotIDIwMjAtMTAtMjQgLSBbV29ya2luZyB3aXRoIE1pY3Jvc29mdCBJZGVudGl0eSAtIFJlYWN0IE5hdGl2ZSBDbGllbnRdKGh0dHBzOi8vd3d3Lmpvc2VwaGd1YWRhZ25vLm5ldC8yMDIwLzEwLzI0L3dvcmtpbmctd2l0aC1taWNyb3NvZnQtaWRlbnRpdHktcmVhY3QtbmF0aXZlLWNsaWVudCkgYnkgW0pvc2VwaCBHdWFkYWdub10oaHR0cHM6Ly93d3cuam9zZXBoZ3VhZGFnbm8ubmV0LykKLSAyMDIwLTEwLTMxIC0gW1tCMl0gT3BlbkFQSSBTcGVjaWZpY2F0aW9u7Jy866GcIO2DgOyehS3shLjsnbTtlITtlZjqsowgQVBJIOqwnOuwnO2VmOq4sDog7Z2s66ed7Y64IFZTIOygiOunne2OuF0oaHR0cHM6Ly93d3cueW91dHViZS5jb20vd2F0Y2g/dj1KNEpITEVTQWlGaykgYnkg7LWc7YOc6rG0IGF0IFtGRUNvbmYgMjAyMF0oaHR0cHM6Ly8yMDIwLmZlY29uZi5rci8pCi0gMjAyMC0xMS0wNSAtIFtBdXRvbWF0ZWQgUkVTVC1BcGkgQ29kZSBHZW5lcmF0aW9uOiBXaWUgSVQtU3lzdGVtZSBtaXRlaW5hbmRlciBzcHJlY2hlbl0oaHR0cHM6Ly93d3cubWFzc2l2ZWFydC5jb20vYmxvZy9hdXRvbWF0ZWQtcmVzdC1hcGktY29kZS1nZW5lcmF0aW9uLXdpZS1pdC1zeXN0ZW1lLW1pdGVpbmFuZGVyLXNwcmVjaGVuKSBieSBTdGVmYW4gUm90dGVuc3RlaW5lciBhdCBbTUFTU0lWRSBBUlQgQmxvZ10oaHR0cHM6Ly93d3cubWFzc2l2ZWFydC5jb20vYmxvZykKLSAyMDIwLTEyLTAxIC0gW09wZW5BUEkgR2VuZXJhdG9y44GnR2/jga5BUEnjgrXjg7zjg5Djg7wv44Kv44Op44Kk44Ki44Oz44OI44Kz44O844OJ44KS6Ieq5YuV55Sf5oiQ44GZ44KLXShodHRwczovL3FpaXRhLmNvbS9zYWtpLWVuZ2luZWVyaW5nL2l0ZW1zL2IyMGQ4YjYwNzRjNGRhOTY2NGE1KSBieSBbQHNha2ktZW5naW5lZXJpbmddKGh0dHBzOi8vcWlpdGEuY29tL3Nha2ktZW5naW5lZXJpbmcpCi0gMjAyMC0xMi0wNCAtIFtTY2FsaW5nIHRoZSBUZXN0IENvdmVyYWdlIG9mIE9wZW5BUEkgR2VuZXJhdG9yIGZvciAzMCsgUHJvZ3JhbW1pbmcgTGFuZ3VhZ2VzXShodHRwczovL3d3dy55b3V0dWJlLmNvbS93YXRjaD92PTdMa2U5ZEhScVQwKSBieSBbV2lsbGlhbSBDaGVuZ10oaHR0cHM6Ly9naXRodWIuY29tL3dpbmczMjgpIGF0IFtPcGVuIFNvdXJjZSBTdW1taXQgSmFwYW4gKyBBdXRvbW90aXZlIExpbnV4IFN1bW1pdCAyMDIwXShodHRwczovL2V2ZW50cy5saW51eGZvdW5kYXRpb24ub3JnL2FyY2hpdmUvMjAyMC9vcGVuLXNvdXJjZS1zdW1taXQtamFwYW4vKSAoW1NsaWRlc10oaHR0cHM6Ly9zcGVha2VyZGVjay5jb20vd2luZzMyOC9zY2FsaW5nLXRoZS10ZXN0LWNvdmVyYWdlLW9mLW9wZW5hcGktZ2VuZXJhdG9yLWZvci0zMC1wbHVzLXByb2dyYW1taW5nLWxhbmd1YWdlcykpCi0gMjAyMC0xMi0wOSAtIFvjg5fjg63jgrjjgqfjgq/jg4jjgatPcGVuQVBJIEdlbmVyYXRvcuOBp+iHquWLleeUn+aIkOOBleOCjOOBn+Wei+S7mOOBjUFQSSBDbGllbnTjgpLlsI7lhaXjgZfjgZ/oqbFdKGh0dHBzOi8vcWlpdGEuY29tL3lvc2hpZnVqaVQvaXRlbXMvOTA1YzE4NzAwZWRlMjNmNDA4NDApIGJ5IFtAeW9zaGlmdWppVF0oaHR0cHM6Ly9naXRodWIuY29tL3lvc2hpZnVqaVQpCi0gMjAyMC0xMi0xNSAtIFtOZXh0LmpzICsgTmVzdEpTICsgR3JhcGhRTOOBp+WkieWMluOBq+i/veW+k+OBmeOCi+ODleODreODs+ODiOOCqOODs+ODieOBuCDjgJwg44K344On44OD44OU44Oz44Kw44Kv44O844Od44Oz44Gu5LqL5L6L57S55LuLXShodHRwczovL3RlY2hibG9nLnlhaG9vLmNvLmpwL2VudHJ5LzIwMjAxMjE1MzAwNTI5NTIvKSBieSBb5bCP5YCJIOmZuF0oaHR0cHM6Ly9naXRodWIuY29tL29ndWd1OSkgYXQgW1lhaG9vISBKQVBBTiBUZWNoIEJsb2ddKGh0dHBzOi8vdGVjaGJsb2cueWFob28uY28uanAvKQotIDIwMjEtMDEtMDggLSBbSGVsbG8sIE5ldyBBUEkg4oCTIFBhcnQgMV0oaHR0cHM6Ly93d3cubmdpbnguY29tL2Jsb2cvaGVsbG8tbmV3LWFwaS1wYXJ0LTEvKSBieSBbSmVyZW15IFNjaHVsbWFuXShodHRwczovL3d3dy5uZ2lueC5jb20vcGVvcGxlL2plcmVteS1zY2h1bG1hbi8pIGF0IFtNYWpvciBMZWFndWUgQmFzZWJhbGxdKGh0dHBzOi8vd3d3Lm1sYi5jb20pCi0gMjAyMS0wMS0xOCAtIFvjgIzjgqLjg5fjg6rplovnmbrjgYLjgovjgYLjgovjgI3jgpLnlpHjgYbjgZPjgajjgYvjgonlp4vjgb7jgaPjgZ/jgIFBUEkgQ2xpZW5044Kz44O844OJ44Gu6Ieq5YuV55Sf5oiQ44CQ44OH44OW44K544OIMjAyMOOAkV0oaHR0cHM6Ly9jb2RlemluZS5qcC9hcnRpY2xlL2RldGFpbC8xMzQwNj9wPTIpIGJ5IFtDb2RlWmluZee3qOmbhumDqF0oaHR0cHM6Ly9jb2RlemluZS5qcC9hdXRob3IvMSkKLSAyMDIxLTAyLTA1IC0gW1JFU1QtQVBJLVJvdW5kdHJpcCB3aXRoIFNwcmluZ0RvYyBhbmQgT3BlbkFQSSBHZW5lcmF0b3JdKGh0dHBzOi8vYmxvZy52aWFkZWUuZGUvZW4vcmVzdC1hcGktcm91bmR0cmlwKSBieSBbQmVuamFtaW4gS2xhdHRdKGh0dHBzOi8vdHdpdHRlci5jb20vYmVua2xhdHQpIGF0IFt2aWFkZWVdKGh0dHBzOi8vd3d3LnZpYWRlZS5kZS9lbi8pCi0gMjAyMS0wMi0xNyAtIFtSRVNULUFQSS1Sb3VuZHRyaXAgd2l0aCBTcHJpbmdEb2MgYW5kIE9wZW5BUEkgR2VuZXJhdG9yXShodHRwczovL21lZGl1bS5jb20vbmVyZC1mb3ItdGVjaC9yZXN0LWFwaS1yb3VuZHRyaXAtd2l0aC1zcHJpbmdkb2MtYW5kLW9wZW5hcGktZ2VuZXJhdG9yLTMwYmQyN2NjZjY5OCkgYnkgW2Nsb3VkIEB2aWFkZWVdKGh0dHBzOi8vY2xvdWQtdmlhZGVlLm1lZGl1bS5jb20vKQotIDIwMjEtMDMtMDggLSBbT3BlbkFQSSBHZW5lcmF0b3Ig5bel5YW355qE6Lq65Z2R5bCd6K+VXShodHRwczovL2Jsb2cuY3Nkbi5uZXQvdTAxMzAxOTcwMS9hcnRpY2xlL2RldGFpbHMvMTE0NTMxOTc1KSBieSBb54us5a626Zuo5aSpXShodHRwczovL2Jsb2cuY3Nkbi5uZXQvdTAxMzAxOTcwMSkgYXQgW0NTRE7lrpjmlrnljZrlrqJdKGh0dHBzOi8vYmxvZy5jc2RuLm5ldC8pCi0gMjAyMS0wMy0xNiAtIFvlpoLkvZXln7rkuo4gU3dhZ2dlciDkvb/nlKggT3BlbkFQSSBHZW5lcmF0b3Ig55Sf5oiQIEpNZXRlciDohJrmnKzvvJ9dKGh0dHBzOi8vY2xvdWQudGVuY2VudC5jb20vZGV2ZWxvcGVyL2FydGljbGUvMTgwMjcwNCkgYnkgW+mrmOalvFplZV0oaHR0cHM6Ly9jbG91ZC50ZW5jZW50LmNvbS9kZXZlbG9wZXIvdXNlci81ODM2MjU1KSBhdCBb6IW+6K6v5LqR5LiT5qCPXShodHRwczovL2Nsb3VkLnRlbmNlbnQuY29tL2RldmVsb3Blci9jb2x1bW4pCi0gMjAyMS0wMy0yNCAtIFtvcGVuYXBpLWdlbmVyYXRvci1jbGkg44Gr44KI44KLIFR5cGVTY3JpcHQg5Z6L5a6a576pXShodHRwczovL3plbm4uZGV2L3Rha2VwZXBlL2FydGljbGVzL29wZW5hcGktZ2VuZXJhdG9yLWNsaS10cykgYnkgW1Rha2VmdW1pIFlvc2hpaV0oaHR0cHM6Ly96ZW5uLmRldi90YWtlcGVwZSkKLSAyMDIxLTAzLTI4IC0gW1RyeWluZyBvdXQgTmVzdEpTIHBhcnQgNDogR2VuZXJhdGUgVHlwZXNjcmlwdCBjbGllbnRzIGZyb20gT3BlbkFQSSBkb2N1bWVudHNdKGh0dHBzOi8vZGV2LnRvL2FybmF1ZGNvcnRpc3NlL3RyeWluZy1vdXQtbmVzdGpzLXBhcnQtNC1nZW5lcmF0ZS10eXBlc2NyaXB0LWNsaWVudHMtZnJvbS1vcGVuYXBpLWRvY3VtZW50cy0yOG1rKSBieSBbQXJuYXVkIENvcnRpc3NlXShodHRwczovL2Rldi50by9hcm5hdWRjb3J0aXNzZSkKLSAyMDIxLTAzLTMxIC0gW09wZW4gQVBJIFNlcnZlciBJbXBsZW1lbnRhdGlvbiBVc2luZyBPcGVuQVBJIEdlbmVyYXRvcl0oaHR0cHM6Ly93d3cuYmFlbGR1bmcuY29tL2phdmEtb3BlbmFwaS1nZW5lcmF0b3Itc2VydmVyKSBhdCBbQmFlbGR1bmddKGh0dHBzOi8vd3d3LmJhZWxkdW5nLmNvbS8pCi0gMjAyMS0wMy0zMSAtIFvkvb/nlKhPcGVuQVBJIEdlbmVyYXRvcuWvpuePvk9wZW4gQVBJIFNlcnZlcl0oaHR0cHM6Ly93d3cuMWp1Lm9yZy9hcnRpY2xlL2phdmEtb3BlbmFwaS1nZW5lcmF0b3Itc2VydmVyKSBhdCBb5YSE6IGa57ayXShodHRwczovL3d3dy4xanUub3JnLykKLSAyMDIxLTA0LTE5IC0gW0ludHJvZHVjaW5nIFR3aWxpb+KAmXMgT3BlbkFQSSBTcGVjaWZpY2F0aW9uIEJldGFdKGh0dHBzOi8vd3d3LnR3aWxpby5jb20vYmxvZy9pbnRyb2R1Y2luZy10d2lsaW8tb3Blbi1hcGktc3BlY2lmaWNhdGlvbi1iZXRhKSBieSBbR0FSRVRIIFBBVUwgSk9ORVNdKGh0dHBzOi8vd3d3LnR3aWxpby5jb20vYmxvZy9hdXRob3IvZ3BqKSBhdCBbVHdpbGlvIEJsb2ddKGh0dHBzOi8vd3d3LnR3aWxpby5jb20vYmxvZykKLSAyMDIxLTA0LTIyIC0gW0xldmVyYWdpbmcgT3BlbkFwaSBzdHJlbmd0aHMgaW4gYSBNaWNyby1TZXJ2aWNlIGVudmlyb25tZW50XShodHRwczovL21lZGl1bS5jb20vdW5pYnVkZHktdGVjaG5vbG9neS1ibG9nL2xldmVyYWdpbmctb3BlbmFwaS1zdHJlbmd0aHMtaW4tYS1taWNyby1zZXJ2aWNlLWVudmlyb25tZW50LTNkN2Y5ZTdjMjZmZikgYnkgTmljb2xhcyBKZWxsYWIgYXQgW1VuaWJ1ZGR5IFRlY2hub2xvZ3kgQmxvZ10oaHR0cHM6Ly9tZWRpdW0uY29tL3VuaWJ1ZGR5LXRlY2hub2xvZ3ktYmxvZykKLSAyMDIxLTA0LTI3IC0gW0Zyb20gemVybyB0byBwdWJsaXNoaW5nIFBvd2VyU2hlbGwgQVBJIGNsaWVudHMgaW4gUG93ZXJTaGVsbCBHYWxsZXJ5IHdpdGhpbiBtaW51dGVzXShodHRwczovL3NwZWFrZXJkZWNrLmNvbS93aW5nMzI4L2Zyb20temVyby10by1wdWJsaXNoaW5nLXBvd2Vyc2hlbGwtYXBpLWNsaWVudHMtaW4tcG93ZXJzaGVsbC1nYWxsZXJ5LXdpdGhpbi1taW51dGVzKSBieSBbV2lsbGlhbSBDaGVuZ10oaHR0cHM6Ly9naXRodWIuY29tL3dpbmczMjgpIGF0IFtQb3dlclNoZWxsICsgRGV2T3BzIEdsb2JhbCBTdW1taXQgMjAyMV0oaHR0cHM6Ly9ldmVudHMuZGV2b3BzY29sbGVjdGl2ZS5vcmcvZXZlbnQvcG93ZXJzaGVsbC1kZXZvcHMtZ2xvYmFsLXN1bW1pdC0yMDIxLykKLSAyMDIxLTA1LTMxIC0gW0ZsdXR0ZXLjgadPcGVuIEFwaSBHZW5lcmF0b3IoU3dhZ2dlcinjgpLkvb/jgYZdKGh0dHBzOi8vYWFraXJhLmFwcC9ibG9nLzIwMjEvMDUvZmx1dHRlci1vcGVuLWFwaS8pIGJ5IFtBQWtpcmFdKGh0dHBzOi8vdHdpdHRlci5jb20vX2FfYWtpcmEpCi0gMjAyMS0wNi0yMiAtIFtSZXN0IEFQSSBEb2N1bWVudGF0aW9uIGFuZCBDbGllbnQgR2VuZXJhdGlvbiBXaXRoIE9wZW5BUEldKGh0dHBzOi8vZHpvbmUuY29tL2FydGljbGVzL3Jlc3QtYXBpLWRvY3VtZW50YXRpb24tYW5kLWNsaWVudC1nZW5lcmF0aW9uLXdpdGgpIGJ5IFtQcmFzYW50aCBHdWxsYXBhbGxpXShodHRwczovL2R6b25lLmNvbS91c2Vycy8xMDExNzk3L3ByYXNhbnRobmF0aC5nQGdtYWlsLmNvbS5odG1sKQotIDIwMjEtMDctMTYgLSBb6YqA6KGM5LqL5qWt44Gu44K144O844OQ44O844K144Kk44OJ6ZaL55m644Gr44Gk44GE44GmIC8gTElORSDkuqzpg73plovnmbrlrqQg44Ko44Oz44K444OL44Ki5o6h55So6Kqs5piO5LyaXShodHRwczovL3d3dy55b3V0dWJlLmNvbS93YXRjaD92PVlycktRSHhMUHBRKSBieSDph47nlLDoqqDkurosIFJvYmVydCBNaXRjaGVsbAotIDIwMjEtMDctMTkgLSBbT3BlbkFQSSBjb2RlIGdlbmVyYXRpb24gd2l0aCBrb3RsaW5dKGh0dHBzOi8vc3lsaGFyZS5naXRodWIuaW8vMjAyMS8wNy8xOS9PcGVuYXBpLXN3YWdnZXItY29kZWdlbi13aXRoLWtvdGxpbi5odG1sKSBieSBbc3lsaGFyZV0oaHR0cHM6Ly9naXRodWIuY29tL3N5bGhhcmUpCi0gMjAyMS0wNy0yOSAtIFtIb3cgVG8gUmV3cml0ZSBhIEh1Z2UgQ29kZWJhc2VdKGh0dHBzOi8vZHpvbmUuY29tL2FydGljbGVzL2hvdy10by1yZXdyaXRlLWEtaHVnZS1jb2RlLWJhc2UpIGJ5IFtDdXJ0aXMgUG9lXShodHRwczovL2R6b25lLmNvbS91c2Vycy80NTY1NDQ2L3B1YmxpdXNvdmlkaXVzLmh0bWwpCi0gMjAyMS0wOC0yMSAtIFtHZW5lcmF0aW5nIENsaWVudCBBUElzIHVzaW5nIFN3YWdnZXIgUGFydCAxXShodHRwczovL21lZGl1bS5jb20vQGZsb3dzcXVhZC9nZW5lcmF0aW5nLWNsaWVudC1hcGlzLXVzaW5nLXN3YWdnZXItcGFydC0xLTJkNDZmMTNmNWU5MikgYnkgW0Zsb3dTcXVhZC5pb10oaHR0cHM6Ly9tZWRpdW0uY29tL0BmbG93c3F1YWQpCi0gMjAyMS0wOS0xMSAtIFtJbnZva2luZyBBV1MgUGFyYWxsZWxDbHVzdGVyIEFQSV0oaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL3BhcmFsbGVsY2x1c3Rlci9sYXRlc3QvdWcvYXBpLXJlZmVyZW5jZS12My5odG1sKSBhdCBbQVdTIFBhcmFsbGVsQ2x1c3RlciBBUEkgb2ZmaWNpYWwgZG9jdW1lbnRhdGlvbl0oaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL3BhcmFsbGVsY2x1c3Rlci9sYXRlc3QvdWcvYXBpLXJlZmVyZW5jZS12My5odG1sKQotIDIwMjEtMDktMjAgLSBbT3BlbkFQSSBHZW5lcmF0b3IgLSBUaGUgQmFiZWwgRmlzaCBvZiB0aGUgQVBJIFdvcmxkXShodHRwczovL3d3dy55b3V0dWJlLmNvbS93YXRjaD92PXMyek10d2Q1a2xnKSBieSBbQ2xpZmZhbm8gU3ViYWdpbyAoUHJpbmNpcGFsIEVuZ2luZWVyIGF0IFNoaW5lIFNvbHV0aW9ucyldKGh0dHBzOi8vZ2l0aHViLmNvbS9jbGlmZmFubykgYXQgW0FwaWRheXMgTElWRSBBdXN0cmFsaWEgMjAyMV0oaHR0cHM6Ly93d3cuYXBpZGF5cy5nbG9iYWwvYXVzdHJhbGlhMjAyMS8pCi0gMjAyMS0xMC0wMiAtIFtIb3cgdG8gV3JpdGUgRmV3ZXIgTGluZXMgb2YgQ29kZSB3aXRoIHRoZSBPcGVuQVBJIEdlbmVyYXRvcl0oaHR0cHM6Ly9oYWNrZXJub29uLmNvbS9ob3ctdG8td3JpdGUtZmV3ZXItbGluZXMtb2YtY29kZS13aXRoLXRoZS1vcGVuYXBpLWdlbmVyYXRvcikgYnkgW01pa2hhaWwgQWxmYV0oaHR0cHM6Ly9oYWNrZXJub29uLmNvbS91L2FscGhhbWlrbGUpCi0gMjAyMS0xMC0xMiAtIFtPcGVuQVBJIEdlbmVyYXRvciA6IDQwMDAgw6l0b2lsZXMgc3VyIEdpdEh1YiBldCBkZXMgc3BhZ2hldHRpc10oaHR0cHM6Ly93d3cueW91dHViZS5jb20vd2F0Y2g/dj05aEVzTkJTcVRGaykgYnkgW0rDqXLDqW1pZSBCcmVzc29uXShodHRwczovL2dpdGh1Yi5jb20vam1pbmkpIGF0IFtEZXZveHggRlIgMjAyMV0oaHR0cHM6Ly9jZnAuZGV2b3h4LmZyLzIwMjEvc3BlYWtlci9qZXJlbWllX2JyZXNzb24pCi0gMjAyMS0xMC0xNyAtIFtHZW5lcmF0ZSBhIFR5cGVTY3JpcHQgSFRUUCBDbGllbnQgRnJvbSBBbiBPcGVuQVBJIFNwZWMgSW4gRG90TkVUIDVdKGh0dHBzOi8vcmljaGFyZHdpbGxpcy5pbmZvL2Jsb2cvZ2VuZXJhdGUtYS10eXBlLXNjcmlwdC1odHRwLWNsaWVudC1mcm9tLWFuLW9wZW4tYXBpLXNwZWMtaW4tZG90LW5ldC01KSBieSBbUmljaGFyZCBXaWxsaXNdKGh0dHBzOi8vZ2l0aHViLmNvbS9iYWRzeW50YXgpCi0gMjAyMS0xMS0wNiAtIFvjgrnjgr/jg7zjg4jjgqLjg4Pjg5fjga7plovnmbrjgafmhI/orZjjgZfjgZ/jgZPjgahdKGh0dHBzOi8vemVubi5kZXYvd29vX25vby9hcnRpY2xlcy81Y2IwOWY4ZTI4OTlhZTc4MmFkMSkgYnkgW3dvby1ub29dKGh0dHBzOi8vemVubi5kZXYvd29vX25vbykKLSAyMDIxLTExLTA5IC0gW0VmZmVjdGl2ZSBTb2Z0d2FyZSBEZXZlbG9wbWVudCB1c2luZyBPcGVuQVBJIEdlbmVyYXRvcl0oaHR0cHM6Ly9hcGV4bGFicy5haS9wb3N0L2VmZmVjdGl2ZS1zb2Z0d2FyZS1kZXZlbG9wbWVudC11c2luZy1vcGVuYXBpLWdlbmVyYXRvcikgYnkgQWppbCBPb21tZQotIDIwMjEtMTItMDcgLSBbQW4gSW50cm9kdWN0aW9uIHRvIE9wZW5BUEldKGh0dHBzOi8vYmV0dGVycHJvZ3JhbW1pbmcucHViLzQtdXNlLWNhc2VzLW9mLW9wZW5hcGktd2hpY2gtYXJlLWdvb2QtdG8ta25vdy0xYTA0MWY0YWQ3MWUpIGJ5IFtOYSdhbWFuIEhpcnNjaGZlbGRdKGh0dHBzOi8vbmFhbWFuaGlyc2NoZmVsZC5tZWRpdW0uY29tLykKLSAyMDIyLTAxLTAyIC0gW1Rvd2FyZHMgYSBzZWN1cmUgQVBJIGNsaWVudCBnZW5lcmF0b3IgZm9yIElvVCBkZXZpY2VzXShodHRwczovL2FyeGl2Lm9yZy9hYnMvMjIwMS4wMDI3MCkgYnkgQW5kZXJzIEFhZW4gU3ByaW5nYm9yZywgTWFydGluIEthbGRhaGwgQW5kZXJzZW4sIEthYXJlIEhvbGxhbmQgSGF0dGVsLCBNaWNoZWxlIEFsYmFubwotIDIwMjItMDItMDIgLSBbVXNlIE9wZW5BcGkgZ2VuZXJhdG9yIHRvIHNoYXJlIHlvdXIgbW9kZWxzIGJldHdlZW4gRmx1dHRlciBhbmQgeW91ciBiYWNrZW5kXShodHRwczovL3d3dy55b3V0dWJlLmNvbS93YXRjaD92PWtQVzdjY3U5WXZrKSBieSBbR3VpbGxhdW1lIEJlcm5vc10oaHR0cHM6Ly9mZWIyMDIyLmZsdXR0ZXJ2aWtpbmdzLmNvbS9zcGVha2Vycy9ndWlsbGF1bWVfYmVybm9zKSBhdCBbRmx1dHRlciBWaWtpbmdzIENvbmZlcmVuY2UgMjAyMiAoSHlicmlkKV0oaHR0cHM6Ly9mZWIyMDIyLmZsdXR0ZXJ2aWtpbmdzLmNvbS8pCi0gMjAyMi0wMy0xNSAtIFtPcGVuQVBJIFNwZWPjgafjg4/jgqTjg5Xjg7PljLrliIfjgorjga5FbnVt5YCk44KST3BlbkFQSSBHZW5lcmF0b3Ljgaflh7rlipvjgZnjgovjgajjgIHjg4/jgqTjg5Xjg7PljLrliIfjgorjga7jgb7jgb7lh7rlipvjgZXjgozjgotdKGh0dHBzOi8vcWlpdGEuY29tL3l1amkzOGt3bXQvaXRlbXMvODI0ZDc0ZDQ4ODkwNTVhYjM3ZDgpIGJ5IFt5dWppMzhrd210XShodHRwczovL3FpaXRhLmNvbS95dWppMzhrd210KQotIDIwMjItMDQtMDEgLSBbT3BlbkFQSSBHZW5lcmF0b3Ljga7jgrPjg7zjg4nnlJ/miJDjgahTcHJpbmcgRnJhbWV3b3Jr44Gu44Kr44K544K/44Og44OH44O844K/44OQ44Kk44Oz44OH44Kj44Oz44Kw44KS5YWx5a2Y44GV44Gb44KLXShodHRwczovL3RlY2hibG9nLnpvem8uY29tL2VudHJ5L2NvZXhpc3RlbmNlLW9mLW9wZW5hcGktYW5kLXNwcmluZykgaW4gW1pPWk8gVGVjaCBCbG9nXShodHRwczovL3RlY2hibG9nLnpvem8uY29tLykKLSAyMDIyLTA0LTA2IC0gW0VmZmVjdGl2ZSBTb2Z0d2FyZSBEZXZlbG9wbWVudCB1c2luZyBPcGVuQVBJIEdlbmVyYXRvcl0oaHR0cHM6Ly9hcGV4bGFicy5haS9wb3N0L29wZW5hcGktZ2VuZXJhdG9yKSBieSBBamlsIE9vbW1lbiAoU2VuaW9yIEZsdXR0ZXIgRGV2ZWxvcGVyKQotIDIwMjItMDUtMTMgLSBbQSBQYXRoIEZyb20gYW4gQVBJIFRvIENsaWVudCBMaWJyYXJpZXNdKGh0dHBzOi8vd3d3LnlvdXR1YmUuY29tL3dhdGNoP3Y9WEM4b1ZuX2VmVHcpIGJ5IFtGaWxpcCBTcm5lY10oaHR0cHM6Ly93d3cuZGV2b3h4LmNvLnVrL3RhbGsvP2lkPTExMjExKSBhdCBJbmZvYmlwCi0gMjAyMi0wNi0wMSAtIFtBUEkgRmlyc3QsIHVzaW5nIE9wZW5BUEkgYW5kIFNwcmluZyBCb290XShodHRwczovL21lZGl1bS5jb20veGdlZWtzL2FwaS1maXJzdC11c2luZy1vcGVuYXBpLWFuZC1zcHJpbmctYm9vdC0yNjAyYzA0YmIwZDMpIGJ5IFtNaWNhZWwgRXN0csOhenVsYXMgVmlhbm5hXShodHRwczovL2VzdHJhenVsYXMubWVkaXVtLmNvbS8pCi0gMjAyMi0wNi0xMCAtIFtBdXRvZ2VuZXJhdGluZyBDbGllbnRzIHdpdGggRmFzdEFQSSBhbmQgR2l0aHViIEFjdGlvbnNdKGh0dHBzOi8vd3d3LnByb3BlbGF1dGguY29tL3Bvc3QvYXV0b2dlbmVyYXRpbmctY2xpZW50cy13aXRoLWZhc3RhcGktYW5kLWdpdGh1Yi1hY3Rpb25zKSBieSBbQW5kcmV3IElzcmFlbF0oaHR0cHM6Ly93d3cucHJvcGVsYXV0aC5jb20vYXV0aG9yL2FuZHJldykKLSAyMDIyLTA2LTEyIC0gW011c3RhY2hlIHRlbXBsYXRlcyB3aXRoIE9wZW5BUEkgc3BlY3NdKGh0dHBzOi8vbWVkaXVtLmNvbS9nZWVrY3VsdHVyZS9tdXN0YWNoZS10ZW1wbGF0ZXMtd2l0aC1vcGVuYXBpLXNwZWNzLWYyNDcxMWM2N2RlYykgYnkgW0JlcHBlIENhdGFuZXNlXShodHRwczovL2dpdGh1Yi5jb20vZ2NhdGFuZXNlKQotIDIwMjItMDctMDEgLSBbR2VuZXJhdGUgQVBJIGNvbnRyYWN0IHVzaW5nIE9wZW5BUEkgR2VuZXJhdG9yIE1hdmVuIHBsdWdpbl0oaHR0cHM6Ly9odW9uZ2RhbmphdmEuY29tL2dlbmVyYXRlLWFwaS1jb250cmFjdC11c2luZy1vcGVuYXBpLWdlbmVyYXRvci1tYXZlbi1wbHVnaW4uaHRtbCkgYnkgW0toYW5oIE5ndXllbl0oaHR0cHM6Ly9odW9uZ2RhbmphdmEuY29tLykKLSAyMDIyLTA3LTIyIC0gW+S9v+eUqE9wZW5BUEkgR2VuZXJhdG9yIE1hdmVuIHBsdWdpbuW8gOWPkWFwaeS8mOWFiOeahGphdmHlrqLmiLfnq6/lkozmnI3liqHnq6/ku6PnoIFdKGh0dHBzOi8vYmxvZy5yb2Njb3NoaS50b3AvMjAyMi9qYXZhL29wZW5hcGktZ2VuZXJhdG9yJUU3JTlBJTg0JUU0JUJEJUJGJUU3JTk0JUE4LykgYnkgW0xpbmNlc3RdKGh0dHBzOi8vZ2l0aHViLmNvbS9MaW5jZXN0KQotIDIwMjItMDgtMDEgLSBbVHV0b3JpYWw6IEV0c3kgT3BlbiBBUEkgdjMgKHJ1YnkpXShodHRwczovL2Jsb2cudGpveWFsLmRldi9ldHN5LW9wZW4tYXBpLXYzLykgYnkgW1RoaWVycnkgSm95YWxdKGh0dHBzOi8vZ2l0aHViLmNvbS90am95YWwpCi0gMjAyMi0wOS0wMyAtIFtPcGVuQVBJIEdlbmVyYXRvciBGb3IgR28gV2ViIERldmVsb3BtZW50XShodHRwczovL2Jsb2cua2V2aW5odS5tZS8yMDIyLzA5LzAzLzAzLW9wZW5hcGktZ2VuZXJhdG9yLykgYnkgW0tldmluIEh1XShodHRwczovL3R3aXR0ZXIuY29tL09sZGd1bml4KQotIDIwMjItMTAtMDEgLSBbT3BlbkFQSSBHZW5lcmF0b3LjgpLjgqvjgrnjgr/jg57jgqTjgrrjgZfjgZ/jgrPjg7zjg4njgpLnlJ/miJDjgZnjgovvvIhTd2FnZ2VyIENvZGVnZW7jgajjgbvjgbzlkIzjgZjvvIldKGh0dHBzOi8vbmFpbmFpc3Rhci5oYXRlbmFibG9nLmNvbS9lbnRyeS8yMDIyLzEwLzAzLzEyMDAwMCkgYnkgW+OBjeOCiuS4uF0oaHR0cHM6Ly90d2l0dGVyLmNvbS9uYWluYWlzdGFyKQotIDIwMjItMTAtMjEgLSBbS290bGlu77yIU3ByaW5nIEJvb3TvvInjga4gQVBJIOOCkiBPcGVuQVBJIEdlbmVyYXRvciDjgafoh6rli5XnlJ/miJBdKGh0dHBzOi8vemVubi5kZXYvbXNrc2dtL2FydGljbGVzLzIwMjIxMDIxLWtvdGxpbi1zcHJpbmctb3BlbmFwaS1nZW5lcmF0b3IpIGJ5IFttc2tzZ21dKGh0dHBzOi8vemVubi5kZXYvbXNrc2dtKQotIDIwMjItMTAtMjYgLSBbUXVhcmt1cyBJbnNpZ2h0cyAjMTA2OiBRdWFya2l2ZXJzZSBFeHRlbnNpb24gU3BvdGxpZ2h0OiBPcGVuQXBpIEdlbmVyYXRvcl0oaHR0cHM6Ly93d3cueW91dHViZS5jb20vd2F0Y2g/dj1fc19pZjY5dDJpUSkgYnkgW1F1YXJrdXNpb10oaHR0cHM6Ly93d3cueW91dHViZS5jb20vYy9RdWFya3VzaW8pCi0gMjAyMi0xMS0yOCAtIFtUaGUgUkVTVCBBUEkgaW1wbGVtZW50YXRpb24gZmxvd10oaHR0cHM6Ly90bXN2ci5jb20vb3BlbmFwaS1jb2RlLWdlbmVyYXRpb24tZm9yLXJlc3QtYXBpcy8pIGJ5IFtJbXJlIFTDtm3DtnN2w6FyaV0oaHR0cHM6Ly90bXN2ci5jb20vYXV0aG9yL2ltcmUvKQotIDIwMjItMTItMTMgLSBbQVBJLUZpcnN0IHdpdGggU3ByaW5nIFdlYkZsdXggYW5kIE9wZW5BUEkgR2VuZXJhdG9yXShodHRwczovL2Jvb3R0ZWNobm9sb2dpZXMtY2kubWVkaXVtLmNvbS9hcGktZmlyc3Qtd2l0aC1zcHJpbmctd2ViZmx1eC1hbmQtb3BlbmFwaS1nZW5lcmF0b3ItMzhiNzgwNGM0ZWQ0KSBieSBbRXJpYyBBbmljZXRdKGh0dHBzOi8vYm9vdHRlY2hub2xvZ2llcy1jaS5tZWRpdW0uY29tLykKLSAyMDIzLTAxLTA2IC0gW01ham9yIEltcHJvdmVtZW50cyB3aXRoIEhlbGlkb24gYW5kIE9wZW5BUEldKGh0dHBzOi8vbWVkaXVtLmNvbS9oZWxpZG9uL21ham9yLWltcHJvdmVtZW50cy13aXRoLWhlbGlkb24tYW5kLW9wZW5hcGktZjc2YTA5NTE1MDhlKSBieSBbVGltIFF1aW5uXShodHRwczovL21lZGl1bS5jb20vQHRxdWlubm82MDApCi0gMjAyMy0wMi0wMiAtIFtSZXBsYWNpbmcgUG9zdG1hbiB3aXRoIHRoZSBKZXRicmFpbnMgSFRUUCBDbGllbnRdKGh0dHBzOi8vbGVuZ3JhbmQuZnIvcmVwbGFjaW5nLXBvc3RtYW4taW4tc2Vjb25kcy13aXRoLXRoZS1qZXRicmFpbnMtaHR0cC1jbGllbnQvKSBieSBbanVsaWVuIExlbmdyYW5kLUxhbWJlcnRdKGh0dHBzOi8vZ2l0aHViLmNvbS9qbGVuZ3JhbmQpCi0gMjAyMy0wMy0xNSAtIFtPcGVuQVBJIEdlbmVyYXRvcuOBq+mBqeOBl+OBn09wZW5BUEnjga7mm7jjgY3mlrldKGh0dHBzOi8vdGVjaGJsb2cuem96by5jb20vZW50cnkvaG93LXRvLXdyaXRlLW9wZW5hcGktZm9yLW9wZW5hcGktZ2VuZXJhdG9yKSBieSBbWk9aTyBUZWNoIEJsb2ddKGh0dHBzOi8vdGVjaGJsb2cuem96by5jb20vKQotIDIwMjMtMDMtMTkgLSBbRVhPR0VNOiBFeHRlbmRpbmcgT3BlbkFQSSBHZW5lcmF0b3IgZm9yIE1vbml0b3Jpbmcgb2YgUkVTVGZ1bCBBUElzXShodHRwczovL2xpbmsuc3ByaW5nZXIuY29tL2NoYXB0ZXIvMTAuMTAwNy85NzgtMy0wMzEtMjY1MDctNV8xMCkgYnkgRGFuaWVsIEZyaWlzIEhvbHRlYm8sIEphbm5payBMdWNhcyBTb21tZXIsIE1hZ251cyBNw7hsZ2FhcmQgTHVuZCwgQWxlc3NhbmRybyBUaWJvLCBKdW5pb3IgRG9uZ28gJiBNaWNoZWxlIEFsYmFubyBhdCAiSUNTT0MgMjAyMjogU2VydmljZS1PcmllbnRlZCBDb21wdXRpbmcg4oCTIElDU09DIDIwMjIgV29ya3Nob3BzIgotIDIwMjMtMDMtMjggLSBbQVBJLUZpcnN0IERlc2lnbiB3aXRoIE9wZW5BUEkgR2VuZXJhdG9yXShodHRwczovL3d3dy5saW5rZWRpbi5jb20vcHVsc2UvYXBpLWZpcnN0LWRlc2lnbi1vcGVuYXBpLWdlbmVyYXRvci1qb25hdGhhbi1tYW5lcmEvKSBieSBbSm9uYXRoYW4gTWFuZXJhXShodHRwczovL3d3dy5saW5rZWRpbi5jb20vaW4vbWFuZXJham9uYS8pCi0gMjAyMy0wMy0yOCAtIFvjg4/jg7Pjgrrjgqrjg7PjgaflrabjgbbjgrXjg7zjg5Djg7zjgrXjgqTjg4kgS290bGlu77yIU3ByaW5nIEJvb3QmQXJyb3cmT3BlbkFQSSBHZW5lcmF0b3LvvIl2MS4wLjFdKGh0dHBzOi8vemVubi5kZXYvbXNrc2dtL2Jvb2tzL2ltcGxlbWVudGluZy1zZXJ2ZXItc2lkZS1rb3RsaW4tZGV2ZWxvcG1lbnQpIGJ5IFttc2tdKGh0dHBzOi8vemVubi5kZXYvbXNrc2dtKQotIDIwMjMtMDQtMDEgLSBbT3BlbkFQSSBDbGllbnQgQ29kZSBHZW5lcmF0aW9uXShodHRwczovL3Rlc3Rpbmdib3NzLmNvbS9ibG9nL29wZW5hcGktY2xpZW50LWdlbmVyYXRpb24vKSBieSBLd28gRGluZwotIDIwMjMtMDQtMjcgLSBbQ3JlYXRlIGFuIEFuZ3VsYXIgQ2xpZW50IHVzaW5nIE9wZW5BUEkgU3BlY2lmaWNhdGlvbnNdKENyZWF0ZSBhbiBBbmd1bGFyIENsaWVudCB1c2luZyBPcGVuQVBJIFNwZWNpZmljYXRpb25zKSBieSBbUGF0cmljXShodHRwczovL3BndXNvLm1lZGl1bS5jb20vKQotIDIwMjMtMDUtMTYgLSBbQWR5ZW4gZm9yIEphdmEgZGV2ZWxvcGVyc10oaHR0cHM6Ly93d3cuYWR5ZW4uY29tL2Jsb2cvYWR5ZW4tamF2YS1saWJyYXJ5KSBieSBbQmVwcGUgQ2F0YW5lc2UsIERldmVsb3BlciBBZHZvY2F0ZSwgQWR5ZW5dKGh0dHBzOi8vZ2l0aHViLmNvbS9nY2F0YW5lc2UpCi0gMjAyMy0wNS0xOCAtIFvlpoLkvZXln7rkuo4gU3dhZ2dlciDkvb/nlKggT3BlbkFQSSBHZW5lcmF0b3Ig55Sf5oiQIEpNZXRlciDohJrmnKzvvJ9dKGh0dHBzOi8vYmxvZy41MWN0by5jb20vdV8xNTE4MTU3Mi82Mjk0OTc0KSBieSBb6auY5qW877yIWmVlKV0oaHR0cHM6Ly9ibG9nLjUxY3RvLmNvbS91XzE1MTgxNTcyKQotIDIwMjMtMDYtMjggLSBbR2VuZXJhdGUgQVBJIGNvbnRyYWN0IHVzaW5nIE9wZW5BUEkgR2VuZXJhdG9yIE1hdmVuIHBsdWdpbl0oaHR0cHM6Ly9odW9uZ2RhbmphdmEuY29tL2dlbmVyYXRlLWFwaS1jb250cmFjdC11c2luZy1vcGVuYXBpLWdlbmVyYXRvci1tYXZlbi1wbHVnaW4uaHRtbCkgYnkgW0toYW5oIE5ndXllbl0oaHR0cHM6Ly9odW9uZ2RhbmphdmEuY29tLykKLSAyMDIzLTA2LTMwIC0gW0dlbmVyYXRlIENsaWVudCBTREtzIHdpdGggT3BlbkFwaSBHZW5lcmF0b3IgaW4gU3ByaW5nYm9vdF0oaHR0cHM6Ly9tZWRpdW0uY29tL0ByYW1hdmF0aHZpbmF5YWsvZ2VuZXJhdGUtY2xpZW50LXNka3Mtd2l0aC1vcGVuYXBpLWdlbmVyYXRvci1pbi1zcHJpbmdib290LWY5ZjAxMmU3M2MwYikgYnkgW1ZpbmF5YWsgUmFtYXZhdGhdKGh0dHBzOi8vbWVkaXVtLmNvbS9AcmFtYXZhdGh2aW5heWFrKQotIDIwMjMtMTItMTAgLSBbVW5pdHnjgadPcGVuQVBJIEdlbmVyYXRvcuOCkuS9v+OBhl0oaHR0cHM6Ly93d3cueW91dHViZS5jb20vd2F0Y2g/dj1DYk53S1ZWNUxSTSkgYnkgW1NvdXAgVG9yaV0oaHR0cHM6Ly93d3cueW91dHViZS5jb20vQHNvdXB0b3JpODQxNykKLSAyMDI0LTAxLTI0IC0gW0NvbW1lbnQgZ8OpbsOpcmVyIGRlcyBzdHVicyB3aXJlbW9jayBhdmVjIG9wZW5hcGkgZ2VuZXJhdG9yXShodHRwczovL3d3dy55b3V0dWJlLmNvbS93YXRjaD92PTBqaE9OZkJyY0t3KSBieSBbQWxleGlzIENvdXZyZXVyXShodHRwczovL2dpdGh1Yi5jb20vYWNvdXZyZXVyKQotIDIwMjQtMDMtMDQgLSBbR2VuZXJhdGluZyBUeXBlU2NyaXB0IFR5cGVzIHdpdGggT3BlbkFQSSBmb3IgUkVTVCBBUEkgQ29uc3VtcHRpb25dKGh0dHBzOi8vd3d3LnB1bGxyZXF1ZXN0LmNvbS9ibG9nL2dlbmVyYXRpbmctdHlwZXNjcmlwdC10eXBlcy13aXRoLW9wZW5hcGktZm9yLXJlc3QtYXBpLWNvbnN1bXB0aW9uLykgYnkgW1B1bGxSZXF1ZXN0XShodHRwczovL3d3dy5wdWxscmVxdWVzdC5jb20vKQotIDIwMjQtMDMtMDcgLSBbRnVsbHkgdHlwZWQgV2ViIEFwcHMgd2l0aCBPcGVuQVBJIChQYXJ0IDEpXShodHRwczovL21lZGl1bS5jb20vQGdmb3gxOTg0L2Z1bGx5LXR5cGVkLXdlYi1hcHBzLXdpdGgtb3BlbmFwaS1wYXJ0LTEtNTk1ZDU1NzY2NjcwKSBieSBbR3VpbGxhdW1lIFJlbmFyZF0oaHR0cHM6Ly9tZWRpdW0uY29tL0BnZm94MTk4NCkKLSAyMDI0LTAzLTA4IC0gW0xhcmF2ZWwgT3BlbkFQSeOBq+OCiOOCiyAi6L6b44GP44Gq44GEIiDjgrnjgq3jg7zjg57pp4bli5XplovnmbpdKGh0dHBzOi8vZm9ydGVlLmpwL3BocGVya2FpZ2ktMjAyNC9wcm9wb3NhbC85ZTJlNmMzOC1kMDc4LTRlZmEtOTliNC04M2ViZjkwMzNiMzQpIGJ5IFtLZW50YXJvdVRha2VkYV0oaHR0cHM6Ly90d2l0dGVyLmNvbS9LZW50YXJvdVRha2VkYSkKCiMjIFs2IC0gQWJvdXQgVXNdKCN0YWJsZS1vZi1jb250ZW50cykKCldoYXQncyB0aGUgZGVzaWduIHBoaWxvc29waHkgb3IgcHJpbmNpcGxlIGJlaGluZCBPcGVuQVBJIEdlbmVyYXRvcj8KCldlIGZvY3VzIG9uIGRldmVsb3BlciBleHBlcmllbmNlLiBUaGUgZ2VuZXJhdG9ycyBzaG91bGQgcHJvZHVjZSBjb2RlLCBjb25maWcsIGRvY3VtZW50YXRpb24sIGFuZCBtb3JlIHRoYXQgYXJlIGVhc2lseSB1bmRlcnN0YW5kYWJsZSBhbmQgY29uc3VtYWJsZSBieSB1c2Vycy4gV2UgZm9jdXNlZCBvbiBzaW1wbGUgdXNlIGNhc2VzIHRvIHN0YXJ0IHdpdGggKGJvdHRvbS11cCBhcHByb2FjaCkuIFNpbmNlIHRoZW4gdGhlIHByb2plY3QgYW5kIHRoZSBjb21tdW5pdHkgaGF2ZSBncm93biBhIGxvdDogNjAwayB3ZWVrbHkgZG93bmxvYWRzIHZpYSBOUE0gQ0xJIHdyYXBwZXIsIDMwTSBkb3dubG9hZHMgdmlhIG9wZW5hcGktZ2VuZXJhdG9yLWNsaSBkb2NrZXIgaW1hZ2UganVzdCB0byBoaWdobGlnaHQgYSBmZXcuIFdlJ3ZlIGdyYWR1YWxseSBzdXBwb3J0ZWQgbW9yZSBmZWF0dXJlcyAoZS5nLiBvbmVPZiwgYW55T2YgaW50cm9kdWNlZCBpbiBPcGVuQVBJIDMuMCkgaW4gdmFyaW91cyBnZW5lcmF0b3JzIGFuZCB3ZSB3aWxsIGNvbnRpbnVlIHRoaXMgYXBwcm9hY2ggdG8gZGVsaXZlciBzb21ldGhpbmcgYmFzZWQgb24gb3VyIHVuZGVyc3RhbmRpbmcgb2YgdXNlciBkZW1hbmQgYW5kIHdoYXQgdGhleSB3YW50LCBhbmQgY29udGludWUgdG8gYWRkIHN1cHBvcnQgb2YgbmV3IGZlYXR1cmVzIGludHJvZHVjZWQgaW4gT3BlbkFQSSBzcGVjaWZpY2F0aW9uIChzdWNoIGFzIHYzLjEgYW5kIGZ1dHVyZSB2ZXJzaW9ucyBvZiB0aGUgT3BlbkFQSSBzcGVjaWZpY2F0aW9uKS4KCiMjIyBbNi4xIC0gT3BlbkFQSSBHZW5lcmF0b3IgQ29yZSBUZWFtXSgjdGFibGUtb2YtY29udGVudHMpCgpPcGVuQVBJIEdlbmVyYXRvciBjb3JlIHRlYW0gbWVtYmVycyBhcmUgY29udHJpYnV0b3JzIHdobyBoYXZlIGJlZW4gbWFraW5nIHNpZ25pZmljYW50IGNvbnRyaWJ1dGlvbnMgKHJldmlldyBpc3N1ZXMsIGZpeCBidWdzLCBtYWtlIGVuaGFuY2VtZW50cywgZXRjKSB0byB0aGUgcHJvamVjdCBvbiBhIHJlZ3VsYXIgYmFzaXMuCgojIyMjIENvcmUgVGVhbSBNZW1iZXJzCiogW0B3aW5nMzI4XShodHRwczovL2dpdGh1Yi5jb20vd2luZzMyOCkgKDIwMTUvMDcpIFs6aGVhcnQ6XShodHRwczovL3d3dy5wYXRyZW9uLmNvbS93aW5nMzI4KQoqIFtAamltc2NodWJlcnRdKGh0dHBzOi8vZ2l0aHViLmNvbS9qaW1zY2h1YmVydCkgKDIwMTYvMDUpIFs6aGVhcnQ6XShodHRwczovL3d3dy5wYXRyZW9uLmNvbS9qaW1zY2h1YmVydCkKKiBbQGNib3JuZXRdKGh0dHBzOi8vZ2l0aHViLmNvbS9jYm9ybmV0KSAoMjAxNi8wNSkKKiBbQGptaW5pXShodHRwczovL2dpdGh1Yi5jb20vam1pbmkpICgyMDE4LzA0KSAgWzpoZWFydDpdKGh0dHBzOi8vd3d3LnBhdHJlb24uY29tL2ptaW5pKQoqIFtAZXRoZXJlYWxqb3ldKGh0dHBzOi8vZ2l0aHViLmNvbS9ldGhlcmVhbGpveSkgKDIwMTkvMDYpCgo6aGVhcnQ6ID0gTGluayB0byBzdXBwb3J0IHRoZSBjb250cmlidXRvciBkaXJlY3RseQoKIyMjIyBUZW1wbGF0ZSBDcmVhdG9yCgoqKk5PVEUqKjogRW1iZWRkZWQgdGVtcGxhdGVzIGFyZSBvbmx5IHN1cHBvcnRlZCBpbiBfTXVzdGFjaGVfIGZvcm1hdC4gU3VwcG9ydCBmb3IgYWxsIG90aGVyIGZvcm1hdHMgaXMgZXhwZXJpbWVudGFsIGFuZCBzdWJqZWN0IHRvIGNoYW5nZSBhdCBhbnkgdGltZS4KCkhlcmUgaXMgYSBsaXN0IG9mIHRlbXBsYXRlIGNyZWF0b3JzOgogKiBBUEkgQ2xpZW50czoKICAgKiBBZGE6IEBzdGNhcnJlegogICAqIEFwZXg6IEBhc25lbGxpbmcKICAgKiBCYXNoOiBAYmtyeXphCiAgICogQzogQFBvd2VyT2ZDcmVhdGlvbiBAemhlbWFudCBbOmhlYXJ0Ol0oaHR0cHM6Ly93d3cucGF0cmVvbi5jb20vemhlbWFudCkKICAgKiBDKysgUkVTVDogQERhbmllbGt1MTUKICAgKiBDKysgVGlueTogQEFuZGVyc1NwcmluZ2JvcmcgQGthYXJlSEggQG1pY2hlbGVhbGJhbm8gQG1rYWtiYXMKICAgKiBDKysgVUU0OiBAS2FobmNvZGUKICAgKiBDIyAoLk5FVCAyLjApOiBAd2hvCiAgICogQyMgKC5ORVQgU3RhbmRhcmQgMS4zICk6IEBHcm9uc2FrCiAgICogQyMgKC5ORVQgNC41IHJlZmFjdG9yZWQpOiBAamltc2NodWJlcnQgWzpoZWFydDpdKGh0dHBzOi8vd3d3LnBhdHJlb24uY29tL2ppbXNjaHViZXJ0KQogICAqIEMjIChHZW5lcmljSG9zdCk6IEBkZXZobC1sYWJzCiAgICogQyMgKEh0dHBDbGllbnQpOiBAQmxhY2tjbGF3cwogICAqIENsb2p1cmU6IEB4aGgKICAgKiBDcnlzdGFsOiBAd2luZzMyOAogICAqIERhcnQ6IEB5aXNzYWNoYXIKICAgKiBEYXJ0IChyZWZhY3Rvcik6IEBqb2VybmFocmVucwogICAqIERhcnQgMjogQHN3aXBlc2lnaHQKICAgKiBEYXJ0IChKYWd1YXIpOiBAamF1bWFyZAogICAqIERhcnQgKERpbyk6IEBqb3NoLWJ1cnRvbgogICAqIEVsaXhpcjogQG5pa3UKICAgKiBFbG06IEBlcmlrdGltCiAgICogRWlmZmVsOiBAanZlbGlsbGEKICAgKiBFcmxhbmc6IEB0c2xvdWdodGVyCiAgICogRXJsYW5nIChQcm9wRXIpOiBAamZhY29ycm8gQHJvYmVydG9hbG9pCiAgICogR3Jvb3Z5OiBAdmljdG9yZ2l0CiAgICogR286IEB3aW5nMzI4IFs6aGVhcnQ6XShodHRwczovL3d3dy5wYXRyZW9uLmNvbS93aW5nMzI4KQogICAqIEdvIChyZXdyaXR0ZW4gaW4gMi4zLjApOiBAYW50aWhheAogICAqIEhhc2tlbGwgKGh0dHAtY2xpZW50KTogQGpvbnNjaG9uaW5nCiAgICogSmF2YSAoRmVpZ24pOiBAZGF2aWRraXNzCiAgICogSmF2YSAoUmV0cm9maXQpOiBAMGxlZ2cKICAgKiBKYXZhIChSZXRyb2ZpdDIpOiBAZW1pbGlhbm9ib25hc3NpCiAgICogSmF2YSAoSmVyc2V5Mik6IEB4aGgKICAgKiBKYXZhIChva2h0dHAtZ3Nvbik6IEB4aGgKICAgKiBKYXZhIChSZXN0VGVtcGxhdGUpOiBAbmJydW5vCiAgICogSmF2YSAoU3ByaW5nIDUgV2ViQ2xpZW50KTogQGRhb25vbWljCiAgICogSmF2YSAoU3ByaW5nIDYgUmVzdENsaWVudCk6IEBuaWNrbGFzMjc1MQogICAqIEphdmEgKFJFU1RFYXN5KTogQGdheWF0aHJpZ3MKICAgKiBKYXZhIChWZXJ0eCk6IEBsb3Blc21jYwogICAqIEphdmEgKEdvb2dsZSBBUElzIENsaWVudCBMaWJyYXJ5KTogQGNoYXJsZXNjYXBwcwogICAqIEphdmEgKFJlc3QtYXNzdXJlZCk6IEB2aWNsb3Zza3kKICAgKiBKYXZhIChKYXZhIDExIE5hdGl2ZSBIVFRQIGNsaWVudCk6IEBiYmRvdWdsYXMKICAgKiBKYXZhIChBcGFjaGUgSHR0cENsaWVudCA1LngpOiBAaGFycnl3aGl0ZTQgQGFuZHJldmVnYXMKICAgKiBKYXZhIChIZWxpZG9uKTogQHNwZXJpY2FzIEB0anF1aW5ubyBAdHZhbGxpbgogICAqIEphdmFzY3JpcHQvTm9kZUpTOiBAamZpYWxhCiAgICogSmF2YVNjcmlwdCAoQXBvbGxvIERhdGFTb3VyY2UpOiBAZXJpdGhtZXRpYwogICAqIEphdmFTY3JpcHQgKENsb3N1cmUtYW5ub3RhdGVkIEFuZ3VsYXIpIEBhY2hldzIyCiAgICogSmF2YVNjcmlwdCAoRmxvdyB0eXBlcykgQGpheXBlYQogICAqIEpldGJyYWlucyBIVFRQIENsaWVudCA6IEBqbGVuZ3JhbmQKICAgKiBKTWV0ZXI6IEBkYXZpZGtpc3MKICAgKiBKdWxpYTogQHRhbm1heWttCiAgICogS290bGluOiBAamltc2NodWJlcnQgWzpoZWFydDpdKGh0dHBzOi8vd3d3LnBhdHJlb24uY29tL2ppbXNjaHViZXJ0KQogICAqIEtvdGxpbiAoTXVsdGlQbGF0Zm9ybSk6IEBhbmRyZXdlbWVyeQogICAqIEtvdGxpbiAoVm9sbGV5KTogQGFsaXN0ZXJzCiAgICogS290bGluIChqdm0tc3ByaW5nLXdlYmNsaWVudCk6IEBzdGVmYW5rb3BwaWVyCiAgICogS290bGluIChqdm0tc3ByaW5nLXJlc3RjbGllbnQpOiBAc3RlZmFua29wcGllcgogICAqIEx1YTogQGRhdXJuaW1hdG9yCiAgICogTjRKUzogQG1tZXdzLW40CiAgICogTmltOiBAaG9rYW1vdG8KICAgKiBPQ2FtbDogQGNnZW5zb3VsCiAgICogUGVybDogQHdpbmczMjggWzpoZWFydDpdKGh0dHBzOi8vd3d3LnBhdHJlb24uY29tL3dpbmczMjgpCiAgICogUEhQIChHdXp6bGUpOiBAYmFhcnRvc3oKICAgKiBQSFAgKHdpdGggRGF0YSBUcmFuc2Zlcik6IEBBcnRpY3VzCiAgICogUG93ZXJTaGVsbDogQGJlYXRjcmFja2VyCiAgICogUG93ZXJTaGVsbCAocmVmYWN0b3JlZCBpbiA1LjAuMCk6IEB3aW5nMzI4CiAgICogUHl0aG9uOiBAc3BhY2V0aGVyIFs6aGVhcnQ6XVtzcGFjZXRoZXIgc3BvbnNvcnNoaXBdCiAgICogUHl0aG9uLUV4cGVyaW1lbnRhbDogQHNwYWNldGhlciBbOmhlYXJ0Ol1bc3BhY2V0aGVyIHNwb25zb3JzaGlwXQogICAqIFB5dGhvbiAocmVmYWN0b3JlZCBpbiA3LjAuMCk6IEB3aW5nMzI4CiAgICogUjogQHJhbW5vdgogICAqIFJ1YnkgKEZhcmFkYXkpOiBAbWVnYW5lbXVyYSBAZGtsaWJhbgogICAqIFJ1YnkgKEhUVFBYKTogQGhvbmV5cnlkZXJjaHVjawogICAqIFJ1c3Q6IEBmYXJjYWxsZXIKICAgKiBSdXN0IChydXN0LXNlcnZlcik6IEBtZXRhc3dpdGNoCiAgICogU2NhbGEgKHNjYWxheiAmIGh0dHA0cyk6IEB0YnJvd24xOTc5CiAgICogU2NhbGEgKEFra2EpOiBAY2NoYWZlcgogICAqIFNjYWxhIChzdHRwKTogQGNoYW1lbGVvbjgyCiAgICogU2NhbGEgKHN0dHA0KTogQGZsc2g4NgogICAqIFNjYWxhIChQZWtrbyk6IEBtaWNrYWVsbWFnbmllegogICAqIFNjYWxhIChodHRwNHMpOiBASmVubnlMZWFoeQogICAqIFN3aWZ0OiBAdGtxdWJvCiAgICogU3dpZnQgMzogQGhleGVsb24KICAgKiBTd2lmdCA0OiBAZWh5Y2hlCiAgICogU3dpZnQgNTogQDRicnVudQogICAqIFN3aWZ0IDY6IEA0YnJ1bnUKICAgKiBTd2lmdCBDb21iaW5lOiBAZHlkdXMweDE0CiAgICogVHlwZVNjcmlwdCAoQW5ndWxhcjEpOiBAbWhhcmRvcmYKICAgKiBUeXBlU2NyaXB0IChBbmd1bGFyMik6IEByb25pLWZyYW50Y2hpCiAgICogVHlwZVNjcmlwdCAoQW5ndWxhcjYpOiBAYWtlaGlyCiAgICogVHlwZVNjcmlwdCAoQW5ndWxhcjcpOiBAdG9wY2UKICAgKiBUeXBlU2NyaXB0IChBeGlvcyk6IEBuaWNva29lbmlnCiAgICogVHlwZVNjcmlwdCAoRmV0Y2gpOiBAbGVvbnl1CiAgICogVHlwZVNjcmlwdCAoSW52ZXJzaWZ5KTogQGd1YWx0aWVyaW0KICAgKiBUeXBlU2NyaXB0IChqUXVlcnkpOiBAYmhlcmlsYQogICAqIFR5cGVTY3JpcHQgKE5lc3Rqcyk6IEB2ZnJhbms2NgogICAqIFR5cGVTY3JpcHQgKE5vZGUpOiAgQG1oYXJkb3JmCiAgICogVHlwZVNjcmlwdCAoUnhqcyk6IEBkZW55bwogICAqIFR5cGVTY3JpcHQgKHJlZHV4LXF1ZXJ5KTogQHBldGVqb2hhbnNvbnhvCiAgICogWG9qbzogQFRvcGhlZWUKICAgKiBaYXBpZXI6IEB2YWxtb3osIEBlbWFqbwogKiBTZXJ2ZXIgU3R1YnMKICAgKiBBZGE6IEBzdGNhcnJlegogICAqIEMjIEFTUC5ORVQgNTogQGppbXNjaHViZXJ0IFs6aGVhcnQ6XShodHRwczovL3d3dy5wYXRyZW9uLmNvbS9qaW1zY2h1YmVydCkKICAgKiBDIyBBU1AuTkVUIENvcmUgMy4wOiBAQS1Kb3NoaQogICAqIEMjIEFQUy5ORVQgQ29yZSAzLjE6IEBwaGF0Y2hlcgogICAqIEMjIEF6dXJlIGZ1bmN0aW9uczogQEFicmhtNzc4NgogICAqIEMjIE5hbmN5Rlg6IEBtc3RlZmFuaXVrCiAgICogQysrIChRdDUgUUh0dHBFbmdpbmUpOiBAZXRoZXJlYWxqb3kKICAgKiBDKysgUGlzdGFjaGU6IEBzZWJ5bWlhbm8KICAgKiBDKysgUmVzdGJlZDogQHN0a3J3b3JrCiAgICogRXJsYW5nIFNlcnZlcjogQGdhbGF4aWUgQG5lbHNvbnZpZGVzCiAgICogRiMgKEdpcmFmZmUpIFNlcnZlcjogQG5tZmlzaGVyCiAgICogR28gU2VydmVyOiBAZ3VvaHVhbmcKICAgKiBHbyBTZXJ2ZXIgKHJlZmFjdG9yZWQgaW4gNy4wLjApOiBAbHdqNQogICAqIEdvIChFY2hvKSBTZXJ2ZXI6IEBwaDRyNWg0ZAogICAqIEdvIChHaW4pIFNlcnZlcjogQGtlbW9rZW1vCiAgICogR3JhcGhRTCBFeHByZXNzIFNlcnZlcjogQHJlbmVwYXJkb24KICAgKiBIYXNrZWxsIFNlcnZhbnQ6IEBhbGdhcwogICAqIEhhc2tlbGwgWWVzb2Q6IEB5b3RzdXlhCiAgICogSmF2YSBDYW1lbDogQGNhcm5ldmFsZWdpYWNvbW8KICAgKiBKYXZhIE1TRjRKOiBAc2FuamVld2EtbWFsYWxnb2RhCiAgICogSmF2YSBTcHJpbmcgQm9vdDogQGRpeWZyCiAgICogSmF2YSBVbmRlcnRvdzogQHN0ZXZlaHUKICAgKiBKYXZhIFBsYXkgRnJhbWV3b3JrOiBASkZDb3RlCiAgICogSmF2YSBQS01TVDogQGFuc2h1MjE4NSBAc2Fuc2h1bWFuIEBya3VtYXItcGsgQG5pbm9kcGlsbGFpCiAgICogSmF2YSBWZXJ0Lng6IEBsd2xlZTI2MDgKICAgKiBKYXZhIE1pY3JvbmF1dDogQGFuZHJpeS1kbXl0cnVrCiAgICogSmF2YSBIZWxpZG9uOiBAc3BlcmljYXMgQHRqcXVpbm5vIEB0dmFsbGluCiAgICogSmF2YSBXaXJlTW9jazogW0BhY291dnJldXJdKGh0dHBzOi8vZ2l0aHViLmNvbS9hY291dnJldXIpCiAgICogSkFYLVJTIFJlc3RFYXN5OiBAY2hhbWVsZW9uODIKICAgKiBKQVgtUlMgQ1hGOiBAaGl2ZXNoaXAKICAgKiBKQVgtUlMgQ1hGIChDREkpOiBAbmlja2NtYXluYXJkCiAgICogSkFYLVJTIFJlc3RFYXN5IChKQm9zcyBFQVApOiBAamZpYWxhCiAgICogSnVsaWE6IEB0YW5tYXlrbQogICAqIEtvdGxpbjogQGppbXNjaHViZXJ0IFs6aGVhcnQ6XShodHRwczovL3d3dy5wYXRyZW9uLmNvbS9qaW1zY2h1YmVydCkKICAgKiBLb3RsaW4gKFNwcmluZyBCb290KTogQGRyNGtlNjE2CiAgICogS290bGluIChWZXJ0eCk6IEBXb295bWUKICAgKiBLb3RsaW4gKEpBWC1SUyk6IEBhbnR0aWxlcHBhCiAgICogS290bGluIFdpcmVNb2NrOiBAc3RlZmFua29wcGllcgogICAqIE5vZGVKUyBFeHByZXNzOiBAWWlzaFRpc2gKICAgKiBQSFAgRmxpZ2h0OiBAZGFuaWVsLXNjCiAgICogUEhQIExhcmF2ZWw6IEByZW5lcGFyZG9uCiAgICogUEhQIEx1bWVuOiBAYWJjc3VuCiAgICogUEhQIE1lenppbyAod2l0aCBQYXRoIEhhbmRsZXIpOiBAQXJ0aWN1cwogICAqIFBIUCBTbGltOiBAamZhc3RuYWNodAogICAqIFBIUCBTbGltNDogW0B5YmVsZW5rb10oaHR0cHM6Ly9naXRodWIuY29tL3liZWxlbmtvKQogICAqIFBIUCBTeW1mb255OiBAa3NtMgogICAqIFBIUCBTeW1mb255NjogQEJlbmphbWluSGFlCiAgICogUHl0aG9uIEZhc3RBUEk6IEBrcmpha2JyamFrCiAgICogUHl0aG9uIEFJT0hUVFA6CiAgICogUnVieSBvbiBSYWlscyA1OiBAemx4CiAgICogUnVzdCAocnVzdC1zZXJ2ZXIpOiBAbWV0YXN3aXRjaAogICAqIFNjYWxhIEFra2E6IEBCb3VpbGxpZQogICAqIFNjYWxhIENhc2s6IEBhYXJvbnAKICAgKiBTY2FsYSBGaW5jaDogQGppbXNjaHViZXJ0IFs6aGVhcnQ6XShodHRwczovL3d3dy5wYXRyZW9uLmNvbS9qaW1zY2h1YmVydCkKICAgKiBTY2FsYSBMYWdvbTogQGdta3VtYXIyMDA1CiAgICogU2NhbGEgUGxheTogQGFkaWdlcmJlcgogKiBEb2N1bWVudGF0aW9uCiAgICogQXNjaWlEb2M6IEBtYW4tYXQtaG9tZQogICAqIEhUTUwgRG9jIDI6IEBqaGl0Y2hjb2NrCiAgICogQ29uZmx1ZW5jZSBXaWtpOiBAamhpdGNoY29jawogICAqIFBsYW50VU1MOiBAcGJ1cmxzCiAqIENvbmZpZ3VyYXRpb24KICAgKiBBcGFjaGUyOiBAc3RrcndvcmsKICAgKiBrNjogQG1vc3RhZmEKICogU2NoZW1hCiAgICogQXZybzogQHNnYWRvdWFyCiAgICogR3JhcGhRTDogQHdpbmczMjggWzpoZWFydDpdKGh0dHBzOi8vd3d3LnBhdHJlb24uY29tL3dpbmczMjgpCiAgICogS3Rvcm06IEBMdWl6LU1vbmFkCiAgICogTXlTUUw6IFtAeWJlbGVua29dKGh0dHBzOi8vZ2l0aHViLmNvbS95YmVsZW5rbykKICAgKiBQb3N0bWFuIENvbGxlY3Rpb246IEBnY2F0YW5lc2UKICAgKiBQcm90b2NvbCBCdWZmZXI6IEB3aW5nMzI4CiAgICogV1NETDogQGFkZXNzb0RwZAoKOmhlYXJ0OiA9IExpbmsgdG8gc3VwcG9ydCB0aGUgY29udHJpYnV0b3IgZGlyZWN0bHkKCiMjIyMgSG93IHRvIGpvaW4gdGhlIGNvcmUgdGVhbQoKSGVyZSBhcmUgdGhlIHJlcXVpcmVtZW50cyB0byBiZWNvbWUgYSBjb3JlIHRlYW0gbWVtYmVyOgotIHJhbmsgd2l0aGluIHRvcCA1MCBpbiBodHRwczovL2dpdGh1Yi5jb20vb3BlbmFwaXRvb2xzL29wZW5hcGktZ2VuZXJhdG9yL2dyYXBocy9jb250cmlidXRvcnMKICAtIHRvIGNvbnRyaWJ1dGUsIGhlcmUgYXJlIHNvbWUgZ29vZCBbc3RhcnRpbmcgcG9pbnRzXShodHRwczovL2dpdGh1Yi5jb20vb3BlbmFwaXRvb2xzL29wZW5hcGktZ2VuZXJhdG9yL2lzc3Vlcz9xPWlzJTNBb3BlbitpcyUzQWlzc3VlK2xhYmVsJTNBJTIyaGVscCt3YW50ZWQlMjIpCi0gcmVndWxhciBjb250cmlidXRpb25zIHRvIHRoZSBwcm9qZWN0CiAgLSBhYm91dCAzIGhvdXJzIHBlciB3ZWVrCiAgLSBmb3IgY29udHJpYnV0aW9uLCBpdCBjYW4gYmUgYWRkcmVzc2luZyBpc3N1ZXMsIHJldmlld2luZyBQUnMgc3VibWl0dGVkIGJ5IG90aGVycywgc3VibWl0dGluZyBQUiB0byBmaXggYnVncyBvciBtYWtlIGVuaGFuY2VtZW50cywgZXRjCiAgLSBtdXN0IGJlIGFjdGl2ZSBpbiB0aGUgcGFzdCAzIG1vbnRocyBhdCB0aGUgdGltZSBvZiBhcHBsaWNhdGlvbgoKIFRvIGpvaW4gdGhlIGNvcmUgdGVhbSwgcGxlYXNlIHJlYWNoIG91dCB0byB0ZWFtQG9wZW5hcGl0b29scy5vcmcgZm9yIG1vcmUgaW5mb3JtYXRpb24uCgogVG8gYmVjb21lIGEgVGVtcGxhdGUgQ3JlYXRvciwgc2ltcGx5IHN1Ym1pdCBhIFBSIGZvciBuZXcgQVBJIGNsaWVudCAoZS5nLiBSdXN0LCBFbGl4aXIpIG9yIHNlcnZlciBzdHViIChlLmcuIFJ1YnkgR3JhcGUpIGdlbmVyYXRvci4KCiMjIyBbNi4yIC0gT3BlbkFQSSBHZW5lcmF0b3IgVGVjaG5pY2FsIENvbW1pdHRlZV0oI3RhYmxlLW9mLWNvbnRlbnRzKQoKTWVtYmVycyBvZiB0aGUgT3BlbkFQSSBHZW5lcmF0b3IgdGVjaG5pY2FsIGNvbW1pdHRlZSBzaG91bGRlciB0aGUgZm9sbG93aW5nIHJlc3BvbnNpYmlsaXRpZXM6CgotIFByb3ZpZGVzIGd1aWRhbmNlIGFuZCBkaXJlY3Rpb24gdG8gb3RoZXIgdXNlcnMKLSBSZXZpZXdzIHB1bGwgcmVxdWVzdHMgYW5kIGlzc3VlcwotIEltcHJvdmVzIHRoZSBnZW5lcmF0b3IgYnkgbWFraW5nIGVuaGFuY2VtZW50cywgZml4aW5nIGJ1Z3Mgb3IgdXBkYXRpbmcgZG9jdW1lbnRhdGlvbnMKLSBTZXRzIHRoZSB0ZWNobmljYWwgZGlyZWN0aW9uIG9mIHRoZSBnZW5lcmF0b3IKCldobyBpcyBlbGlnaWJsZT8gVGhvc2Ugd2hvIHdhbnQgdG8gam9pbiBtdXN0IGhhdmUgYXQgbGVhc3QgMyBQUnMgbWVyZ2VkIGludG8gYSBnZW5lcmF0b3IuIChFeGNlcHRpb25zIGNhbiBiZSBncmFudGVkIHRvIHRlbXBsYXRlIGNyZWF0b3JzIG9yIGNvbnRyaWJ1dG9ycyB3aG8gaGF2ZSBtYWRlIGEgbG90IG9mIGNvZGUgY2hhbmdlcyB3aXRoIGxlc3MgdGhhbiAzIG1lcmdlZCBQUnMpCgpJZiB5b3Ugd2FudCB0byBqb2luIHRoZSBjb21taXR0ZWUsIHBsZWFzZSBraW5kbHkgYXBwbHkgYnkgc2VuZGluZyBhbiBlbWFpbCB0byB0ZWFtQG9wZW5hcGl0b29scy5vcmcgd2l0aCB5b3VyIEdpdGh1YiBJRC4KCiMjIyMgTWVtYmVycyBvZiBUZWNobmljYWwgQ29tbWl0dGVlCgp8IExhbmd1YWdlcy9HZW5lcmF0b3JzICB8IE1lbWJlciAoam9pbiBkYXRlKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKfDotLS0tLS0tLS0tLS0tLS0tLS0tLS0tfDotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS18CnwgQWN0aW9uU2NyaXB0ICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAp8IEFkYSAgICAgICAgICAgICAgICAgICB8IEBzdGNhcnJleiAoMjAxOC8wMikgQG1pY2hlbGVhbGJhbm8gKDIwMTgvMDIpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKfCBBbmRyb2lkICAgICAgICAgICAgICAgfCBAamF6LWFoICgyMDE3LzA5KSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8CnwgQXBleCAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAp8IEJhc2ggICAgICAgICAgICAgICAgICB8IEBmcm9sICgyMDE3LzA3KSBAYmtyeXphICgyMDE3LzA4KSBAa2Vuam9uZXMtY2lzY28gKDIwMTcvMDkpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKfCBDICAgICAgICAgICAgICAgICAgICAgfCBAemhlbWFudCAoMjAxOC8xMSkgQGl0eXVodWkgKDIwMTkvMTIpIEBtaWNoZWxlYWxiYW5vICgyMDIwLzAzKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8CnwgQysrICAgICAgICAgICAgICAgICAgIHwgQHJhdmluaWthbSAoMjAxNy8wNykgQHN0a3J3b3JrICgyMDE3LzA3KSBAZXRoZXJlYWxqb3kgKDIwMTgvMDIpIEBtYXJ0aW5kZWxpbGxlICgyMDE4LzAzKSBAbXV0dGxleXhkICgyMDE5LzA4KSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAp8IEMjICAgICAgICAgICAgICAgICAgICB8IEBtYW5kcmVhbiAoMjAxNy8wOCkgQHNoaWJheWFuICgyMDIwLzAyKSBAQmxhY2tjbGF3cyAoMjAyMS8wMykgQGx1Y2FtYXp6YW50aSAoMjAyMS8wNSkgQGlCaWNoYSAoMjAyMy8wNykgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8CnwgQ2xvanVyZSAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAp8IENyeXN0YWwgICAgICAgICAgICAgICB8IEBjeWFuZ2xlICgyMDIxLzAxKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKfCBEYXJ0ICAgICAgICAgICAgICAgICAgfCBAamF1bWFyZCAoMjAxOC8wOSkgQGpvc2gtYnVydG9uICgyMDE5LzEyKSBAYW1vbmRuZXQgKDIwMTkvMTIpIEBzYnUtV0JUICgyMDIwLzEyKSBAa3VobnJveWFsICgyMDIwLzEyKSBAYWdpbG9iICgyMDIwLzEyKSBAYWhtZWRuZndlbGEgKDIwMjEvMDgpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8CnwgRWlmZmVsICAgICAgICAgICAgICAgIHwgQGp2ZWxpbGxhICgyMDE3LzA5KSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAp8IEVsaXhpciAgICAgICAgICAgICAgICB8IEBtcm1zdG4gKDIwMTgvMTIpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKfCBFbG0gICAgICAgICAgICAgICAgICAgfCBAZXJpa3RpbSAoMjAxOC8wOSkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8CnwgRXJsYW5nICAgICAgICAgICAgICAgIHwgQHRzbG91Z2h0ZXIgKDIwMTcvMTEpIEBqZmFjb3JybyAoMjAxOC8xMCkgQHJvYmVydG9hbG9pICgyMDE4LzEwKSBAbmVsc29udmlkZXMgKDIwMjQvMDkpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAp8IEYjICAgICAgICAgICAgICAgICAgICB8IEBubWZpc2hlciAoMjAxOS8wNSkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKfCBHbyAgICAgICAgICAgICAgICAgICAgfCBAYW50aWhheCAoMjAxNy8xMSkgQGdyb2tpZnkgKDIwMTgvMDcpIEBrZW1va2VtbyAoMjAxOC8wOSkgQGppcmlrdW5jYXIgKDIwMjEvMDEpIEBwaDRyNWg0ZCAoMjAyMS8wNCkgQGx3ajUgKDIwMjMvMDQpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAp8IEdyYXBoUUwgICAgICAgICAgICAgICB8IEByZW5lcGFyZG9uICgyMDE4LzEyKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKfCBHcm9vdnkgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8CnwgSGFza2VsbCAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAp8IEphdmEgICAgICAgICAgICAgICAgICB8IEBiYmRvdWdsYXMgKDIwMTcvMDcpIEBzcmVlc2hhcyAoMjAxNy8wOCkgQGpmaWFsYSAoMjAxNy8wOCkgQGx1a295YW5vdiAoMjAxNy8wOSkgQGNib3JuZXQgKDIwMTcvMDkpIEBqZWZmOWZpbmdlciAoMjAxOC8wMSkgQGthcmlzbWFubiAoMjAxOS8wMykgQFpvbXpvZyAoMjAxOS8wNCkgQGx3bGVlMjYwOCAoMjAxOS8xMCkgQG1hcnRpbi1tZmcgKDIwMjMvMDgpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8CnwgSmF2YSBTcHJpbmcgICAgICAgICAgIHwgQGNhY2hlc2NydWJiZXIgKDIwMjIvMDIpIEB3ZWxzaG0gKDIwMjIvMDIpIEBNZWxsZUQgKDIwMjIvMDIpIEBhdGV4dG9yICgyMDIyLzAyKSBAbWFuZWRldjc5ICgyMDIyLzAyKSBAamF2aXNzdCAoMjAyMi8wMikgQGJvcnNjaCAoMjAyMi8wMikgQGJhbmxldmVudGUgKDIwMjIvMDIpIEBab216b2cgKDIwMjIvMDkpIEBtYXJ0aW4tbWZnICgyMDIzLzA4KSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKfCBKTWV0ZXIgICAgICAgICAgICAgICAgfCBAa2Fubmt5byAoMjAyMS8wMSkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8CnwgSmV0YnJhaW5zIEhUVFAgQ2xpZW50IHwgQGpsZW5ncmFuZCAoMjAyMy8wMSkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAp8IEp1bGlhICAgICAgICAgICAgICAgICB8IEB0YW5tYXlrbSAoMjAyMy8wMSkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKfCBLb3RsaW4gICAgICAgICAgICAgICAgfCBAZHI0a2U2MTYgKDIwMTgvMDgpIEBrYXJpc21hbm4gKDIwMTkvMDMpIEBab216b2cgKDIwMTkvMDQpIEBhbmRyZXdlbWVyeSAoMjAxOS8xMCkgQDRicnVudSAoMjAxOS8xMSkgQHl1dGFrYTBtICgyMDIwLzAzKSBAc3RlZmFua29wcGllciAoMjAyMi8wNikgQGU1bCAoMjAyNC8xMCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8CnwgTHVhICAgICAgICAgICAgICAgICAgIHwgQGRhdXJuaW1hdG9yICgyMDE3LzA4KSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAp8IE40SlMgICAgICAgICAgICAgICAgICB8IEBtbWV3cy1uNCAoMjAyMy8wMykgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKfCBOaW0gICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8CnwgTm9kZUpTL0phdmFzY3JpcHQgICAgIHwgQENvZGVOaW5qYWkgKDIwMTcvMDcpIEBmcm9sICgyMDE3LzA3KSBAY2xpZmZhbm8gKDIwMTcvMDcpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAp8IE9iakMgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKfCBPQ2FtbCAgICAgICAgICAgICAgICAgfCBAY2dlbnNvdWwgKDIwMTkvMDgpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8CnwgUGVybCAgICAgICAgICAgICAgICAgIHwgQHdpbmczMjggKDIwMTcvMDcpIFs6aGVhcnQ6XShodHRwczovL3d3dy5wYXRyZW9uLmNvbS93aW5nMzI4KSBAeXVlOTk0NDg4MiAoMjAxOS8wNikgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAp8IFBIUCAgICAgICAgICAgICAgICAgICB8IEBqZWJlbnRpZXIgKDIwMTcvMDcpLCBAZGthcmxvdmkgKDIwMTcvMDcpLCBAbWFuZHJlYW4gKDIwMTcvMDgpLCBAamZhc3RuYWNodCAoMjAxNy8wOSksIFtAeWJlbGVua29dKGh0dHBzOi8vZ2l0aHViLmNvbS95YmVsZW5rbykgKDIwMTgvMDcpLCBAcmVuZXBhcmRvbiAoMjAxOC8xMikgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKfCBQb3dlclNoZWxsICAgICAgICAgICAgfCBAd2luZzMyOCAoMjAyMC8wNSkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8CnwgUHl0aG9uICAgICAgICAgICAgICAgIHwgQGNib3JuZXQgKDIwMTcvMDkpIEB0b21wbHVzICgyMDE4LzEwKSBAa3JqYWticmphayAoMjAyMy8wMikgQGZhMDMxMSAoMjAyMy8xMCkgQG11bHRhbmkgKDIwMjMvMTApIHwKfCBSICAgICAgICAgICAgICAgICAgICAgfCBAUmFtYW50aCAoMjAxOS8wNykgQHNhaWdpcmlkaGFyMjEgKDIwMTkvMDcpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8CnwgUnVieSAgICAgICAgICAgICAgICAgIHwgQGNsaWZmYW5vICgyMDE3LzA3KSBAemx4ICgyMDE3LzA5KSBAYXV0b3BwICgyMDE5LzAyKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAp8IFJ1c3QgICAgICAgICAgICAgICAgICB8IEBmcm9sICgyMDE3LzA3KSBAZmFyY2FsbGVyICgyMDE3LzA4KSBAcmljaGFyZHdoaXVrICgyMDE5LzA3KSBAcGFsYWRpbnpoICgyMDIwLzA1KSBAamFjb2ItcHJvICgyMDIyLzEwKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKfCBTY2FsYSAgICAgICAgICAgICAgICAgfCBAY2xhc25ha2UgKDIwMTcvMDcpLCBAc2hpamlua3VpICAoMjAxOC8wMSksIEByYW16aW1hYWxlaiAoMjAxOC8wMyksIEBjaGFtZWxlb244MiAoMjAyMC8wMyksIEBCb3VpbGxpZSAoMjAyMC8wNCkgQGZpc2g4NiAoMjAyMy8wNikgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8CnwgU3dpZnQgICAgICAgICAgICAgICAgIHwgQGpnYXZyaXMgKDIwMTcvMDcpIEBlaHljaGUgKDIwMTcvMDgpIEBFZHViaXRzICgyMDE3LzA5KSBAamF6LWFoICgyMDE3LzA5KSBANGJydW51ICgyMDE5LzExKSBAZHlkdXMweDE0ICgyMDIzLzA2KSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAp8IFR5cGVTY3JpcHQgICAgICAgICAgICB8IEBUaUZ1ICgyMDE3LzA3KSBAdGF4cG9uICgyMDE3LzA3KSBAc2ViYXN0aWFuaGFhcyAoMjAxNy8wNykgQGtlbmlzdGV3YXJkICgyMDE3LzA3KSBAVnJvbGlqa3ggKDIwMTcvMDkpIEBtYWNqb2hubnkgKDIwMTgvMDEpIEB0b3BjZSAoMjAxOC8xMCkgQGFrZWhpciAoMjAxOS8wNykgQHBldGVqb2hhbnNvbnhvICgyMDE5LzExKSBAYW1ha2hyb3YgKDIwMjAvMDIpIEBkYXZpZGdhbWVybyAoMjAyMi8wMykgQG1rdXNha2EgKDIwMjIvMDQpIEBqb3NjaGEgKDIwMjQvMTApICAgIHwKfCBYb2pvICAgICAgICAgICAgICAgICAgfCBAVG9waGVlZSAoMjAyMy8wNCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8CgoKUGFzdCBNZW1iZXJzIG9mIFRlY2huaWNhbCBDb21taXR0ZWU6CnwgTGFuZ3VhZ2VzL0dlbmVyYXRvcnMgICAgICAgICB8IE1lbWJlciAoam9pbiBkYXRlKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8CnwgOi0tLS0tLS0tLS0tLS0tLS0gfCA6LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gfAp8IFB5dGhvbiAgICAgICAgICAgIHwgQHRheHBvbiAoMjAxNy8wNykgQGZyb2wgKDIwMTcvMDcpIEBtYm9obG9vbCAoMjAxNy8wNykgQGNib3JuZXQgKDIwMTcvMDkpIEBrZW5qb25lcy1jaXNjbyAoMjAxNy8xMSkgQHRvbXBsdXMgKDIwMTgvMTApIEBhcnVuLW5hbGxhICgyMDE5LzExKSAgfAoKCjpoZWFydDogPSBMaW5rIHRvIHN1cHBvcnQgdGhlIGNvbnRyaWJ1dG9yIGRpcmVjdGx5CgojIyMgWzYuMyAtIEhpc3Rvcnkgb2YgT3BlbkFQSSBHZW5lcmF0b3JdKCN0YWJsZS1vZi1jb250ZW50cykKCk9wZW5BUEkgR2VuZXJhdG9yIGlzIGEgZm9yayBvZiBbU3dhZ2dlciBDb2RlZ2VuXShodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb2RlZ2VuKS4gSW4gdmlldyBvZiB0aGUgaXNzdWVzIHdpdGggdGhlIFN3YWdnZXIgQ29kZWdlbiAzLjAuMCAoYmV0YSkgcmVsZWFzZSBhbmQgdGhlIGRpc2FncmVlbWVudCBvbiB0aGUgcHJvamVjdCdzIGRpcmVjdGlvbiwgbW9yZSB0aGFuIDQwIHRvcCBjb250cmlidXRvcnMgYW5kIHRlbXBsYXRlIGNyZWF0b3JzIG9mIFN3YWdnZXIgQ29kZWdlbiBkZWNpZGVkIHRvIGZvcmsgU3dhZ2dlciBDb2RlZ2VuIGFuZCBtYWludGFpbiBhIGNvbW11bml0eS1kcml2ZW4gdmVyc2lvbiBjYWxsZWQgIk9wZW5BUEkgR2VuZXJhdG9yIi4gUGxlYXNlIHJlZmVyIHRvIHRoZSBbUSZBXShkb2NzL3FuYS5tZCkgZm9yIG1vcmUgaW5mb3JtYXRpb24uCgojIyMjIEZvdW5kaW5nIE1lbWJlcnMgKGFscGhhYmV0aWNhbCBvcmRlcik6CgotIFtBa2loaXRvIE5ha2Fub10oaHR0cHM6Ly9naXRodWIuY29tL2Fja2ludG9zaCkKLSBbQXJ0ZW0gT2NoZXJlZGtvXShodHRwczovL2dpdGh1Yi5jb20vZ2FsYXhpZSkKLSBbQXJ0aHVyIE1vZ2xpZXZdKGh0dHBzOi8vZ2l0aHViLmNvbS9BcnRpY3VzKQotIFtCYXJ0ZWsgS3J5emFdKGh0dHBzOi8vZ2l0aHViLmNvbS9ia3J5emEpCi0gW0JlbiBXZWxsc10oaHR0cHM6Ly9naXRodWIuY29tL2J2d2VsbHMpCi0gW0JlbmphbWluIEdpbGxdKGh0dHBzOi8vZ2l0aHViLmNvbS9iamdpbGwpCi0gW0NocmlzdG9waGUgQm9ybmV0XShodHRwczovL2dpdGh1Yi5jb20vY2Jvcm5ldCkKLSBbQ2xpZmZhbm8gU3ViYWdpb10oaHR0cHM6Ly9naXRodWIuY29tL2NsaWZmYW5vKQotIFtEYWlraSBNYXRzdWRhdGVdKGh0dHBzOi8vZ2l0aHViLmNvbS9kLWRhdGUpCi0gW0RhbmllbF0oaHR0cHM6Ly9naXRodWIuY29tL0RhbmllbGt1MTUpCi0gW0VtaWxpYW5vIEJvbmFzc2ldKGh0dHBzOi8vZ2l0aHViLmNvbS9lbWlsaWFub2JvbmFzc2kpCi0gW0VyaWsgVGltbWVyc10oaHR0cHM6Ly9naXRodWIuY29tL2VyaWt0aW0pCi0gW0VzdGViYW4gR2VocmluZ10oaHR0cHM6Ly9naXRodWIuY29tL21hY2pvaG5ueSkKLSBbR3VzdGF2byBQYXpdKGh0dHBzOi8vZ2l0aHViLmNvbS9ndXN0YXZvYXBheikKLSBbSmF2aWVyIFZlbGlsbGFdKGh0dHBzOi8vZ2l0aHViLmNvbS9qdmVsaWxsYSkKLSBbSmVhbi1GcmFuw6dvaXMgQ8O0dMOpXShodHRwczovL2dpdGh1Yi5jb20vSkZDb3RlKQotIFtKaW0gU2NodWJlcnRdKGh0dHBzOi8vZ2l0aHViLmNvbS9qaW1zY2h1YmVydCkKLSBbSm9uIFNjaG9uaW5nXShodHRwczovL2dpdGh1Yi5jb20vam9uc2Nob25pbmcpCi0gW0rDqXLDqW1pZSBCcmVzc29uXShodHRwczovL2dpdGh1Yi5jb20vam1pbmkpIFs6aGVhcnQ6XShodHRwczovL3d3dy5wYXRyZW9uLmNvbS9qbWluaSkKLSBbSsO2cm4gQWhyZW5zXShodHRwczovL2dpdGh1Yi5jb20vamF5ZWFybikKLSBbS2VuaSBTdGV3YXJkXShodHRwczovL2dpdGh1Yi5jb20va2VuaXN0ZXdhcmQpCi0gW01hcmNpbiBTdGVmYW5pdWtdKGh0dHBzOi8vZ2l0aHViLmNvbS9tc3RlZmFuaXVrKQotIFtNYXJ0aW4gRGVsaWxsZV0oaHR0cHM6Ly9naXRodWIuY29tL01hcnRpbkRlbGlsbGUpCi0gW01hc2FoaXJvIFlhbWF1Y2hpXShodHRwczovL2dpdGh1Yi5jb20vYWxnYXMpCi0gW01pY2hlbGUgQWxiYW5vXShodHRwczovL2dpdGh1Yi5jb20vbWljaGVsZWFsYmFubykKLSBbUmFtemkgTWFhbGVqXShodHRwczovL2dpdGh1Yi5jb20vcmFtemltYWFsZWopCi0gW1JhdmluZHJhIE5pa2FtXShodHRwczovL2dpdGh1Yi5jb20vcmF2aW5pa2FtKQotIFtSaWNhcmRvIENhcmRvbmFdKGh0dHBzOi8vZ2l0aHViLmNvbS9yaWNhcmRvbmEpCi0gW1NlYmFzdGlhbiBIYWFzXShodHRwczovL2dpdGh1Yi5jb20vc2ViYXN0aWFuaGFhcykKLSBbU2ViYXN0aWFuIE1hbmRyZWFuXShodHRwczovL2dpdGh1Yi5jb20vbWFuZHJlYW4pCi0gW1NyZWVuaWRoaSBTcmVlc2hhXShodHRwczovL2dpdGh1Yi5jb20vc3JlZXNoYXMpCi0gW1N0ZWZhbiBLcmlzbWFubl0oaHR0cHM6Ly9naXRodWIuY29tL3N0a3J3b3JrKQotIFtTdGVwaGFuZSBDYXJyZXpdKGh0dHBzOi8vZ2l0aHViLmNvbS9zdGNhcnJleikKLSBbVGFrdXJvIFdhZGFdKGh0dHBzOi8vZ2l0aHViLmNvbS90YXhwb24pCi0gW1RvbWFzeiBQcnVzXShodHRwczovL2dpdGh1Yi5jb20vdG9tcGx1cykKLSBbVHJpc3RhbiBTbG91Z2h0ZXJdKGh0dHBzOi8vZ2l0aHViLmNvbS90c2xvdWdodGVyKQotIFtWaWN0b3IgT3Jsb3Zza3ldKGh0dHBzOi8vZ2l0aHViLmNvbS92aWNsb3Zza3kpCi0gW1ZpY3RvciBUcmFraHRlbmJlcmddKGh0dHBzOi8vZ2l0aHViLmNvbS92aWN0b3JnaXQpCi0gW1ZsYWQgRnJvbG92XShodHRwczovL2dpdGh1Yi5jb20vZnJvbCkKLSBbVmxhZGltaXIgUG91emFub3ZdKGh0dHBzOi8vZ2l0aHViLmNvbS9mYXJjYWxsZXIpCi0gW1dpbGxpYW0gQ2hlbmddKGh0dHBzOi8vZ2l0aHViLmNvbS93aW5nMzI4KQotIFtYaW4gTWVuZ10oaHR0cHM6Ly9naXRodWIuY29tL3htZW5nMSkgWzpoZWFydDpdKGh0dHBzOi8vd3d3LnBhdHJlb24uY29tL3VzZXIvb3ZlcnZpZXc/dT0xNjQzNTM4NSkKLSBbWHUgSHVpIEh1aV0oaHR0cHM6Ly9naXRodWIuY29tL3hoaCkKLSBbYW50aWhheF0oaHR0cHM6Ly9naXRodWIuY29tL2FudGloYXgpCi0gW2JlYXRjcmFja2VyXShodHRwczovL2dpdGh1Yi5jb20vYmVhdGNyYWNrZXIpCi0gW2RhdXJuaW1hdG9yXShodHRwczovZ2l0aHViLmNvbS9kYXVybmltYXRvcikKLSBbZXRoZXJlYWxqb3ldKGh0dHBzOi8vZ2l0aHViLmNvbS9ldGhlcmVhbGpveSkKLSBbamZpYWxhXShodHRwczovL2dpdGh1Yi5jb20vamZpYWxhKQotIFtsdWtveWFub3ZdKGh0dHBzOi8vZ2l0aHViLmNvbS9sdWtveWFub3YpCgo6aGVhcnQ6ID0gTGluayB0byBzdXBwb3J0IHRoZSBjb250cmlidXRvciBkaXJlY3RseQoKIyMgWzcgLSBMaWNlbnNlXSgjdGFibGUtb2YtY29udGVudHMpCi0tLS0tLS0KCkNvcHlyaWdodCAyMDE4IE9wZW5BUEktR2VuZXJhdG9yIENvbnRyaWJ1dG9ycyAoaHR0cHM6Ly9vcGVuYXBpLWdlbmVyYXRvci50ZWNoKQpDb3B5cmlnaHQgMjAxOCBTbWFydEJlYXIgU29mdHdhcmUKCkxpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOwp5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCllvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdCBbYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMF0oaHR0cHM6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMCkKClVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuClNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCgotLS0K - readmeEtag: '"e61e2c875b2c564e031876ed4b9b7a5769cf52ab"' - readmeLastModified: Sun, 10 Nov 2024 09:43:19 GMT + PGgxIGFsaWduPSJjZW50ZXIiPk9wZW5BUEkgR2VuZXJhdG9yPC9oMT4KCgo8ZGl2IGFsaWduPSJjZW50ZXIiPgoKWyFbU3RhYmxlIHJlbGVhc2VzIGluIE1hdmVuIENlbnRyYWxdKGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vbWF2ZW4tbWV0YWRhdGEvdi9odHRwcy9yZXBvMS5tYXZlbi5vcmcvbWF2ZW4yL29yZy9vcGVuYXBpdG9vbHMvb3BlbmFwaS1nZW5lcmF0b3IvbWF2ZW4tbWV0YWRhdGEueG1sLnN2ZyldKGh0dHA6Ly9zZWFyY2gubWF2ZW4ub3JnLyNzZWFyY2glN0NnYXYlN0MxJTdDZyUzQSUyMm9yZy5vcGVuYXBpdG9vbHMlMjIlMjBBTkQlMjBhJTNBJTIyb3BlbmFwaS1nZW5lcmF0b3IlMjIpClshW0FwYWNoZSAyLjAgTGljZW5zZV0oaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9iYWRnZS9MaWNlbnNlLUFwYWNoZSUyMDIuMC1vcmFuZ2UpXSguL0xJQ0VOU0UpClshW09wZW4gQ29sbGVjdGl2ZSBiYWNrZXJzXShodHRwczovL2ltZy5zaGllbGRzLmlvL29wZW5jb2xsZWN0aXZlL2JhY2tlcnMvb3BlbmFwaV9nZW5lcmF0b3I/Y29sb3I9b3JhbmdlJmxhYmVsPU9wZW5Db2xsZWN0aXZlJTIwQmFja2VycyldKGh0dHBzOi8vb3BlbmNvbGxlY3RpdmUuY29tL29wZW5hcGlfZ2VuZXJhdG9yKQpbIVtKb2luIHRoZSBTbGFjayBjaGF0IHJvb21dKGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vYmFkZ2UvU2xhY2stSm9pbiUyMHRoZSUyMGNoYXQlMjByb29tLW9yYW5nZSldKGh0dHBzOi8vam9pbi5zbGFjay5jb20vdC9vcGVuYXBpLWdlbmVyYXRvci9zaGFyZWRfaW52aXRlL3p0LTJ1b2VmNXYwZy1YR3dvOH4yb0ozRW96aURTTzFDbWRRKQpbIVtGb2xsb3cgT3BlbkFQSSBHZW5lcmF0b3IgVHdpdHRlciBhY2NvdW50IHRvIGdldCB0aGUgbGF0ZXN0IHVwZGF0ZV0oaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby90d2l0dGVyL2ZvbGxvdy9vYXNfZ2VuZXJhdG9yLnN2Zz9zdHlsZT1zb2NpYWwmbGFiZWw9Rm9sbG93KV0oaHR0cHM6Ly90d2l0dGVyLmNvbS9vYXNfZ2VuZXJhdG9yKQpbIVtDb250cmlidXRlIHdpdGggR2l0cG9kXShodHRwczovL2ltZy5zaGllbGRzLmlvL2JhZGdlL0NvbnRyaWJ1dGUlMjB3aXRoLUdpdHBvZC05MDhhODU/bG9nbz1naXRwb2QpXShodHRwczovL2dpdHBvZC5pby8jaHR0cHM6Ly9naXRodWIuY29tL09wZW5BUElUb29scy9vcGVuYXBpLWdlbmVyYXRvcikKWyFbQ29uYW4gQ2VudGVyXShodHRwczovL3NoaWVsZHMuaW8vY29uYW4vdi9vcGVuYXBpLWdlbmVyYXRvcildKGh0dHBzOi8vY29uYW4uaW8vY2VudGVyL3JlY2lwZXMvb3BlbmFwaS1nZW5lcmF0b3IpClshW1JldnZlZCB1cCBieSBEZXZlbG9jaXR5XShodHRwczovL2ltZy5zaGllbGRzLmlvL2JhZGdlL1JldnZlZCUyMHVwJTIwYnktRGV2ZWxvY2l0eS0wNkEwQ0U/bG9nbz1HcmFkbGUmbGFiZWxDb2xvcj0wMjMwM0EpXShodHRwczovL2dlLm9wZW5hcGktZ2VuZXJhdG9yLnRlY2gvc2NhbnMpCjwvZGl2PgoKPGRpdiBhbGlnbj0iY2VudGVyIj4KCltNYXN0ZXJdKGh0dHBzOi8vZ2l0aHViLmNvbS9PcGVuQVBJVG9vbHMvb3BlbmFwaS1nZW5lcmF0b3IvdHJlZS9tYXN0ZXIpIChgNy4xMC4wYCk6ClshW0J1aWxkIFN0YXR1c10oaHR0cHM6Ly9hcGkudHJhdmlzLWNpLmNvbS9PcGVuQVBJVG9vbHMvb3BlbmFwaS1nZW5lcmF0b3Iuc3ZnP2JyYW5jaD1tYXN0ZXImc3RhdHVzPXBhc3NlZCldKGh0dHBzOi8vYXBwLnRyYXZpcy1jaS5jb20vZ2l0aHViL09wZW5BUElUb29scy9vcGVuYXBpLWdlbmVyYXRvci9idWlsZHMpClshW0ludGVncmF0aW9uIFRlc3QyXShodHRwczovL2NpcmNsZWNpLmNvbS9naC9PcGVuQVBJVG9vbHMvb3BlbmFwaS1nZW5lcmF0b3Iuc3ZnP3N0eWxlPXNoaWVsZCldKGh0dHBzOi8vY2lyY2xlY2kuY29tL2doL09wZW5BUElUb29scy9vcGVuYXBpLWdlbmVyYXRvcikKWyFbV2luZG93cyBUZXN0XShodHRwczovL2NpLmFwcHZleW9yLmNvbS9hcGkvcHJvamVjdHMvc3RhdHVzL2dpdGh1Yi9vcGVuYXBpdG9vbHMvb3BlbmFwaS1nZW5lcmF0b3I/YnJhbmNoPW1hc3RlciZzdmc9dHJ1ZSZwYXNzaW5nVGV4dD1XaW5kb3dzJTIwVGVzdCUyMC0lMjBPSyZmYWlsaW5nVGV4dD1XaW5kb3dzJTIwVGVzdCUyMC0lMjBGYWlscyldKGh0dHBzOi8vY2kuYXBwdmV5b3IuY29tL3Byb2plY3QvV2lsbGlhbUNoZW5nL29wZW5hcGktZ2VuZXJhdG9yKQpbIVtCaXRyaXNlXShodHRwczovL2ltZy5zaGllbGRzLmlvL2JpdHJpc2UvNGEyYjEwYTgxOWQxMmI2Ny9tYXN0ZXI/bGFiZWw9Yml0cmlzZSUzQSUyMFN3aWZ0KzQsNSZ0b2tlbj04NTlGTURSOFFId2FiQ3p3dlpLNnZRKV0oaHR0cHM6Ly9hcHAuYml0cmlzZS5pby9hcHAvNGEyYjEwYTgxOWQxMmI2NykKCjwvZGl2PgoKPGRpdiBhbGlnbj0iY2VudGVyIj4KCjpzdGFyOjpzdGFyOjpzdGFyOiBJZiB5b3Ugd291bGQgbGlrZSB0byBjb250cmlidXRlLCBwbGVhc2UgcmVmZXIgdG8gW2d1aWRlbGluZXNdKENPTlRSSUJVVElORy5tZCkgYW5kIGEgbGlzdCBvZiBbb3BlbiB0YXNrc10oaHR0cHM6Ly9naXRodWIuY29tL29wZW5hcGl0b29scy9vcGVuYXBpLWdlbmVyYXRvci9pc3N1ZXM/cT1pcyUzQW9wZW4raXMlM0Fpc3N1ZStsYWJlbCUzQSUyMmhlbHArd2FudGVkJTIyKS4gOnN0YXI6OnN0YXI6OnN0YXI6Cgo6YmFuZ2Jhbmc6IFRvIG1pZ3JhdGUgZnJvbSBTd2FnZ2VyIENvZGVnZW4gdG8gT3BlbkFQSSBHZW5lcmF0b3IsIHBsZWFzZSByZWZlciB0byB0aGUgW21pZ3JhdGlvbiBndWlkZV0oZG9jcy9taWdyYXRpb24tZnJvbS1zd2FnZ2VyLWNvZGVnZW4ubWQpIDpiYW5nYmFuZzoKCjpub3RlYm9va193aXRoX2RlY29yYXRpdmVfY292ZXI6IEZvciBtb3JlIGluZm9ybWF0aW9uLCBwbGVhc2UgcmVmZXIgdG8gdGhlIFtXaWtpIHBhZ2VdKGh0dHBzOi8vZ2l0aHViLmNvbS9vcGVuYXBpdG9vbHMvb3BlbmFwaS1nZW5lcmF0b3Ivd2lraSkgYW5kIFtGQVFdKGh0dHBzOi8vZ2l0aHViLmNvbS9vcGVuYXBpdG9vbHMvb3BlbmFwaS1nZW5lcmF0b3Ivd2lraS9GQVEpIDpub3RlYm9va193aXRoX2RlY29yYXRpdmVfY292ZXI6Cgo6bm90ZWJvb2tfd2l0aF9kZWNvcmF0aXZlX2NvdmVyOiBUaGUgZUJvb2sgW0EgQmVnaW5uZXIncyBHdWlkZSB0byBDb2RlIEdlbmVyYXRpb24gZm9yIFJFU1QgQVBJc10oaHR0cHM6Ly9ndW0uY28vb3BlbmFwaV9nZW5lcmF0b3JfZWJvb2spIGlzIGEgZ29vZCBzdGFydGluZyBwb2ludCBmb3IgYmVnaW5uZXJzIDpub3RlYm9va193aXRoX2RlY29yYXRpdmVfY292ZXI6Cgo6d2FybmluZzogSWYgdGhlIE9wZW5BUEkgc3BlYywgdGVtcGxhdGVzIG9yIGFueSBpbnB1dCAoZS5nLiBvcHRpb25zLCBlbnZpcm9ubWVudCB2YXJpYWJsZXMpIGlzIG9idGFpbmVkIGZyb20gYW4gdW50cnVzdGVkIHNvdXJjZSBvciBlbnZpcm9ubWVudCwgcGxlYXNlIG1ha2Ugc3VyZSB5b3UndmUgcmV2aWV3ZWQgdGhlc2UgaW5wdXRzIGJlZm9yZSB1c2luZyBPcGVuQVBJIEdlbmVyYXRvciB0byBnZW5lcmF0ZSB0aGUgQVBJIGNsaWVudCwgc2VydmVyIHN0dWIgb3IgZG9jdW1lbnRhdGlvbiB0byBhdm9pZCBwb3RlbnRpYWwgc2VjdXJpdHkgaXNzdWVzIChlLmcuIFtjb2RlIGluamVjdGlvbl0oaHR0cHM6Ly9lbi53aWtpcGVkaWEub3JnL3dpa2kvQ29kZV9pbmplY3Rpb24pKS4gRm9yIHNlY3VyaXR5IHZ1bG5lcmFiaWxpdGllcywgcGxlYXNlIGNvbnRhY3QgW3RlYW1Ab3BlbmFwaXRvb2xzLm9yZ10obWFpbHRvOnRlYW1Ab3BlbmFwaXRvb2xzLm9yZykuIDp3YXJuaW5nOgoKOmJhbmdiYW5nOiBCb3RoICJPcGVuQVBJIFRvb2xzIiAoaHR0cHM6Ly9PcGVuQVBJVG9vbHMub3JnIC0gdGhlIHBhcmVudCBvcmdhbml6YXRpb24gb2YgT3BlbkFQSSBHZW5lcmF0b3IpIGFuZCAiT3BlbkFQSSBHZW5lcmF0b3IiIGFyZSBub3QgYWZmaWxpYXRlZCB3aXRoIE9wZW5BUEkgSW5pdGlhdGl2ZSAoT0FJKSA6YmFuZ2Jhbmc6Cgo8L2Rpdj4KCiMjIFNwb25zb3JzCgpJZiB5b3UgZmluZCBPcGVuQVBJIEdlbmVyYXRvciB1c2VmdWwgZm9yIHdvcmssIHBsZWFzZSBjb25zaWRlciBhc2tpbmcgeW91ciBjb21wYW55IHRvIHN1cHBvcnQgdGhpcyBPcGVuIFNvdXJjZSBwcm9qZWN0IGJ5IFtiZWNvbWluZyBhIHNwb25zb3JdKGh0dHBzOi8vb3BlbmNvbGxlY3RpdmUuY29tL29wZW5hcGlfZ2VuZXJhdG9yKS4gWW91IGNhbiBhbHNvIGluZGl2aWR1YWxseSBzcG9uc29yIHRoZSBwcm9qZWN0IGJ5IFtiZWNvbWluZyBhIGJhY2tlcl0oaHR0cHM6Ly9vcGVuY29sbGVjdGl2ZS5jb20vb3BlbmFwaV9nZW5lcmF0b3IpLgoKIyMjIyBUaGFuayB5b3UgdG8gb3VyIGJyb256ZSBzcG9uc29ycyEKClshW05hbVNvcl0oaHR0cHM6Ly9vcGVuYXBpLWdlbmVyYXRvci50ZWNoL2ltZy9jb21wYW5pZXMvbmFtc29yLnBuZyldKGh0dHBzOi8vd3d3Lm5hbXNvci5jb20vP3V0bV9zb3VyY2U9b3BlbmFwaV9nZW5lcmF0b3ImdXRtX21lZGl1bT1naXRodWJfd2VicGFnZSZ1dG1fY2FtcGFpZ249c3BvbnNvcikKWyFbTGlnaHRCb3ddKGh0dHBzOi8vb3BlbmFwaS1nZW5lcmF0b3IudGVjaC9pbWcvY29tcGFuaWVzL2xpZ2h0Ym93LnBuZyldKGh0dHBzOi8vd3d3LmxpZ2h0Ym93Lm5ldC8/dXRtX3NvdXJjZT1vcGVuYXBpX2dlbmVyYXRvciZ1dG1fbWVkaXVtPWdpdGh1Yl93ZWJwYWdlJnV0bV9jYW1wYWlnbj1zcG9uc29yKQpbPGltZyBzcmM9Imh0dHBzOi8vb3BlbmFwaS1nZW5lcmF0b3IudGVjaC9pbWcvY29tcGFuaWVzL2RvY3NwcmluZy5wbmciIHdpZHRoPSIxMjgiIGhlaWdodD0iMTI4Ij5dKGh0dHBzOi8vZG9jc3ByaW5nLmNvbS8/dXRtX3NvdXJjZT1vcGVuYXBpX2dlbmVyYXRvciZ1dG1fbWVkaXVtPWdpdGh1Yl93ZWJwYWdlJnV0bV9jYW1wYWlnbj1zcG9uc29yKQpbPGltZyBzcmM9Imh0dHBzOi8vb3BlbmFwaS1nZW5lcmF0b3IudGVjaC9pbWcvY29tcGFuaWVzL2RhdGFkb2cucG5nIiB3aWR0aD0iMTI4IiBoZWlnaHQ9IjEyOCI+XShodHRwczovL2RhdGFkb2docS5jb20vP3V0bV9zb3VyY2U9b3BlbmFwaV9nZW5lcmF0b3ImdXRtX21lZGl1bT1naXRodWJfd2VicGFnZSZ1dG1fY2FtcGFpZ249c3BvbnNvcikKWzxpbWcgc3JjPSJodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gvaW1nL2NvbXBhbmllcy90aGFsZXMuanBnIiB3aWR0aD0iMTI4IiBoZWlnaHQ9IjEyOCI+XShodHRwczovL2NwbC50aGFsZXNncm91cC5jb20vP3V0bV9zb3VyY2U9b3BlbmFwaV9nZW5lcmF0b3ImdXRtX21lZGl1bT1naXRodWJfd2VicGFnZSZ1dG1fY2FtcGFpZ249c3BvbnNvcikKWzxpbWcgc3JjPSJodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gvaW1nL2NvbXBhbmllcy9hcGlkZWNrLmpwZyIgd2lkdGg9IjEyOCIgaGVpZ2h0PSIxMjgiPl0oaHR0cHM6Ly93d3cuYXBpZGVjay5jb20vP3V0bV9zb3VyY2U9b3BlbmFwaV9nZW5lcmF0b3ImdXRtX21lZGl1bT1naXRodWJfd2VicGFnZSZ1dG1fY2FtcGFpZ249c3BvbnNvcikKWzxpbWcgc3JjPSJodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gvaW1nL2NvbXBhbmllcy9wZXhhLnBuZyIgd2lkdGg9IjEyOCIgaGVpZ2h0PSIxMjgiPl0oaHR0cHM6Ly93d3cucGV4YS5jb20uYXUvP3V0bV9zb3VyY2U9b3BlbmFwaV9nZW5lcmF0b3ImdXRtX21lZGl1bT1naXRodWJfd2VicGFnZSZ1dG1fY2FtcGFpZ249c3BvbnNvcikKWzxpbWcgc3JjPSJodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gvaW1nL2NvbXBhbmllcy9udW1hcnkucG5nIiB3aWR0aD0iMTI4IiBoZWlnaHQ9IjEyOCI+XShodHRwczovL3d3dy5udW1hcnkuY29tLz91dG1fc291cmNlPW9wZW5hcGlfZ2VuZXJhdG9yJnV0bV9tZWRpdW09Z2l0aHViX3dlYnBhZ2UmdXRtX2NhbXBhaWduPXNwb25zb3IpCls8aW1nIHNyYz0iaHR0cHM6Ly9vcGVuYXBpLWdlbmVyYXRvci50ZWNoL2ltZy9jb21wYW5pZXMvb25lc2lnbmFsLnBuZyIgd2lkdGg9IjEyOCIgaGVpZ2h0PSIxMjgiPl0oaHR0cHM6Ly93d3cub25lc2lnbmFsLmNvbS8/dXRtX3NvdXJjZT1vcGVuYXBpX2dlbmVyYXRvciZ1dG1fbWVkaXVtPWdpdGh1Yl93ZWJwYWdlJnV0bV9jYW1wYWlnbj1zcG9uc29yKQpbPGltZyBzcmM9Imh0dHBzOi8vb3BlbmFwaS1nZW5lcmF0b3IudGVjaC9pbWcvY29tcGFuaWVzL3ZpcnR1YWxhbnNvZnR3YXJlLnBuZyIgd2lkdGg9IjEyOCIgaGVpZ2h0PSIxMjgiPl0oaHR0cHM6Ly93d3cudmlydHVhbGFuc29mdHdhcmUuY29tLz91dG1fc291cmNlPW9wZW5hcGlfZ2VuZXJhdG9yJnV0bV9tZWRpdW09Z2l0aHViX3dlYnBhZ2UmdXRtX2NhbXBhaWduPXNwb25zb3IpCls8aW1nIHNyYz0iaHR0cHM6Ly9vcGVuYXBpLWdlbmVyYXRvci50ZWNoL2ltZy9jb21wYW5pZXMvbWVyZ2VkZXYuanBlZyIgd2lkdGg9IjEyOCIgaGVpZ2h0PSIxMjgiPl0oaHR0cHM6Ly93d3cubWVyZ2UuZGV2Lz91dG1fc291cmNlPW9wZW5hcGlfZ2VuZXJhdG9yJnV0bV9tZWRpdW09Z2l0aHViX3dlYnBhZ2UmdXRtX2NhbXBhaWduPXNwb25zb3IpCls8aW1nIHNyYz0iaHR0cHM6Ly9vcGVuYXBpLWdlbmVyYXRvci50ZWNoL2ltZy9jb21wYW5pZXMvYnVya2VydC5qcGciIHdpZHRoPSIxMjgiIGhlaWdodD0iMTI4Ij5dKGh0dHBzOi8vd3d3LmJ1cmtlcnQuY29tLz91dG1fc291cmNlPW9wZW5hcGlfZ2VuZXJhdG9yJnV0bV9tZWRpdW09Z2l0aHViX3dlYnBhZ2UmdXRtX2NhbXBhaWduPXNwb25zb3IpCls8aW1nIHNyYz0iaHR0cHM6Ly9vcGVuYXBpLWdlbmVyYXRvci50ZWNoL2ltZy9jb21wYW5pZXMvZmluYm91cm5lLnBuZyIgd2lkdGg9IjEyOCIgaGVpZ2h0PSIxMjgiPl0oaHR0cHM6Ly93d3cuZmluYm91cm5lLmNvbS8/dXRtX3NvdXJjZT1vcGVuYXBpX2dlbmVyYXRvciZ1dG1fbWVkaXVtPWdpdGh1Yl93ZWJwYWdlJnV0bV9jYW1wYWlnbj1zcG9uc29yKQpbPGltZyBzcmM9Imh0dHBzOi8vb3BlbmFwaS1nZW5lcmF0b3IudGVjaC9pbWcvY29tcGFuaWVzL2J1bXBzaC5wbmciIHdpZHRoPSIxMjgiIGhlaWdodD0iMTI4Ij5dKGh0dHBzOi8vYnVtcC5zaC8/dXRtX3NvdXJjZT1vcGVuYXBpX2dlbmVyYXRvciZ1dG1fbWVkaXVtPWdpdGh1Yl93ZWJwYWdlJnV0bV9jYW1wYWlnbj1zcG9uc29yKQpbPGltZyBzcmM9Imh0dHBzOi8vb3BlbmFwaS1nZW5lcmF0b3IudGVjaC9pbWcvY29tcGFuaWVzL2JpbGV0by5wbmciIHdpZHRoPSIxMjgiIGhlaWdodD0iMTI4Ij5dKGh0dHBzOi8vd3d3LmJpbGV0by5jb20vP3V0bV9zb3VyY2U9b3BlbmFwaV9nZW5lcmF0b3ImdXRtX21lZGl1bT1naXRodWJfd2VicGFnZSZ1dG1fY2FtcGFpZ249c3BvbnNvcikKWzxpbWcgc3JjPSJodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gvaW1nL2NvbXBhbmllcy9iYWlyZXNkZXYucG5nIiB3aWR0aD0iMTI4IiBoZWlnaHQ9IjEyOCI+XShodHRwczovL3d3dy5iYWlyZXNkZXYuY29tL3Nwb25zb3Jpbmctb3Blbi1zb3VyY2UtcHJvamVjdHMvP3V0bV9zb3VyY2U9b3BlbmFwaV9nZW5lcmF0b3ImdXRtX21lZGl1bT1naXRodWJfd2VicGFnZSZ1dG1fY2FtcGFpZ249c3BvbnNvcikKWzxpbWcgc3JjPSJodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gvaW1nL2NvbXBhbmllcy9kbXRlY2guanBlZyIgd2lkdGg9IjEyOCIgaGVpZ2h0PSIxMjgiPl0oaHR0cHM6Ly93d3cuZG10ZWNoLmRlLz91dG1fc291cmNlPW9wZW5hcGlfZ2VuZXJhdG9yJnV0bV9tZWRpdW09Z2l0aHViX3dlYnBhZ2UmdXRtX2NhbXBhaWduPXNwb25zb3IpCls8aW1nIHNyYz0iaHR0cHM6Ly9vcGVuYXBpLWdlbmVyYXRvci50ZWNoL2ltZy9jb21wYW5pZXMvYWR5ZW4ucG5nIiB3aWR0aD0iMTI4IiBoZWlnaHQ9IjEyOCI+XShodHRwczovL2FkeWVuLmNvbS8/dXRtX3NvdXJjZT1vcGVuYXBpX2dlbmVyYXRvciZ1dG1fbWVkaXVtPWdpdGh1Yl93ZWJwYWdlJnV0bV9jYW1wYWlnbj1zcG9uc29yKQpbPGltZyBzcmM9Imh0dHBzOi8vb3BlbmFwaS1nZW5lcmF0b3IudGVjaC9pbWcvY29tcGFuaWVzL2Zvcm5leC5wbmciIHdpZHRoPSIxMjgiIGhlaWdodD0iMTI4Ij5dKGh0dHBzOi8vZm9ybmV4LmNvbS8/dXRtX3NvdXJjZT1vcGVuYXBpX2dlbmVyYXRvciZ1dG1fbWVkaXVtPWdpdGh1Yl93ZWJwYWdlJnV0bV9jYW1wYWlnbj1zcG9uc29yKQpbPGltZyBzcmM9Imh0dHBzOi8vb3BlbmFwaS1nZW5lcmF0b3IudGVjaC9pbWcvY29tcGFuaWVzL2FsbG95YXV0b21hdGlvbi5wbmciIHdpZHRoPSIxMjgiIGhlaWdodD0iMTI4Ij5dKGh0dHBzOi8vcnVuYWxsb3kuY29tL3NpZ251cD91dG1fc291cmNlPWdpdGh1YiZ1dG1fbWVkaXVtPXJlZmVycmFsJnV0bV9jYW1wYWlnbj0xNTI0X29wZW5hcGlnZW5lcmF0b3IpCls8aW1nIHNyYz0iaHR0cHM6Ly9vcGVuYXBpLWdlbmVyYXRvci50ZWNoL2ltZy9jb21wYW5pZXMvc3NzdHdpdHRlci5wbmciIHdpZHRoPSIxMjgiIGhlaWdodD0iMTI4Ij5dKGh0dHBzOi8vc3NzdHdpdHRlci5jb20vP3V0bV9zb3VyY2U9Z2l0aHViJnV0bV9tZWRpdW09cmVmZXJyYWwmdXRtX2NhbXBhaWduPXNwb25zb3IpCls8aW1nIHNyYz0iaHR0cHM6Ly9vcGVuYXBpLWdlbmVyYXRvci50ZWNoL2ltZy9jb21wYW5pZXMvc3ZpeC5wbmciIHdpZHRoPSIxMjgiIGhlaWdodD0iMTI4Ij5dKGh0dHBzOi8vd3d3LnN2aXguY29tLz91dG1fc291cmNlPW9wZW5hcGktZ2VuZXJhdG9yJnV0bV9tZWRpdW09c3BvbnNvcnNoaXAmdXRtX2NhbXBhaWduPW9zcy1zcG9uc29yc2hpcCkKWzxpbWcgc3JjPSJodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gvaW1nL2NvbXBhbmllcy9saXRzbGluay5wbmciIHdpZHRoPSIxMjgiIGhlaWdodD0iMTI4Ij5dKGh0dHBzOi8vbGl0c2xpbmsuY29tL3NlcnZpY2VzL2FydGlmaWNpYWwtaW50ZWxsaWdlbmNlP3V0bV9zb3VyY2U9b3BlbmFwaS1nZW5lcmF0b3ImdXRtX21lZGl1bT1zcG9uc29yc2hpcCZ1dG1fY2FtcGFpZ249b3NzLXNwb25zb3JzaGlwKQpbPGltZyBzcmM9Imh0dHBzOi8vb3BlbmFwaS1nZW5lcmF0b3IudGVjaC9pbWcvY29tcGFuaWVzL2Rlc2lnbmxpLmpwZyIgd2lkdGg9IjEyOCIgaGVpZ2h0PSIxMjgiPl0oaHR0cHM6Ly9kZXNpZ25saS5jbz91dG1fc291cmNlPW9wZW5hcGktZ2VuZXJhdG9yJnV0bV9tZWRpdW09c3BvbnNvcnNoaXAmdXRtX2NhbXBhaWduPW9zcy1zcG9uc29yc2hpcCkKWzxpbWcgc3JjPSJodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gvaW1nL2NvbXBhbmllcy9pdG0ucG5nIiB3aWR0aD0iMTI4IiBoZWlnaHQ9IjEyOCI+XShodHRwczovL29wZW5zb3VyY2UubXVlbmNoZW4uZGU/dXRtX3NvdXJjZT1vcGVuYXBpLWdlbmVyYXRvciZ1dG1fbWVkaXVtPXNwb25zb3JzaGlwJnV0bV9jYW1wYWlnbj1vc3Mtc3BvbnNvcnNoaXApCls8aW1nIHNyYz0iaHR0cHM6Ly9vcGVuYXBpLWdlbmVyYXRvci50ZWNoL2ltZy9jb21wYW5pZXMva29uZy5wbmciIHdpZHRoPSIxMjgiIGhlaWdodD0iMTI4Ij5dKGh0dHBzOi8va29uZ2hxLmNvbS9wcm9kdWN0cy9rb25nLWtvbm5lY3Q/dXRtX21lZGl1bT1yZWZlcnJhbCZ1dG1fc291cmNlPWdpdGh1YiZ1dG1fY2FtcGFpZ249cGxhdGZvcm0mdXRtX2NvbnRlbnQ9b3BlbmFwaS1nZW5lcmF0b3IpCls8aW1nIHNyYz0iaHR0cHM6Ly9vcGVuYXBpLWdlbmVyYXRvci50ZWNoL2ltZy9jb21wYW5pZXMvcm91dGU0bWUucG5nIiB3aWR0aD0iMTI4IiBoZWlnaHQ9IjEyOCI+XShodHRwczovL3JvdXRlNG1lLmNvbS8/dXRtX3NvdXJjZT1vcGVuYXBpLWdlbmVyYXRvciZ1dG1fbWVkaXVtPXNwb25zb3JzaGlwJnV0bV9jYW1wYWlnbj1vc3Mtc3BvbnNvcnNoaXApCls8aW1nIHNyYz0iaHR0cHM6Ly9vcGVuYXBpLWdlbmVyYXRvci50ZWNoL2ltZy9jb21wYW5pZXMvZG0ucG5nIiB3aWR0aD0iMTI4IiBoZWlnaHQ9IjEyOCI+XShodHRwczovL3d3dy5kb3Rjb20tbW9uaXRvci5jb20vc3BvbnNvcmluZy1vcGVuLXNvdXJjZS1wcm9qZWN0cy8/dXRtX3NvdXJjZT1vcGVuYXBpLWdlbmVyYXRvciZ1dG1fbWVkaXVtPXNwb25zb3JzaGlwJnV0bV9jYW1wYWlnbj1vc3Mtc3BvbnNvcnNoaXApCgojIyMjIFRoYW5rIHlvdSBHb0RhZGR5IGZvciBzcG9uc29yaW5nIHRoZSBkb21haW4gbmFtZXMsIExpbm9kZSBmb3Igc3BvbnNvcmluZyB0aGUgVlBTLCBDaGVja2x5IGZvciBzcG9uc29yaW5nIHRoZSBBUEkgbW9uaXRvcmluZyBhbmQgR3JhZGxlIGZvciBzcG9uc29yaW5nIERldmVsb2NpdHkKCls8aW1nIHNyYz0iaHR0cHM6Ly9vcGVuYXBpLWdlbmVyYXRvci50ZWNoL2ltZy9jb21wYW5pZXMvZ29kYWRkeS5wbmciIHdpZHRoPSIxNTAiPl0oaHR0cHM6Ly93d3cuZ29kYWRkeS5jb20vP3V0bV9zb3VyY2U9b3BlbmFwaV9nZW5lcmF0b3ImdXRtX21lZGl1bT1naXRodWJfd2VicGFnZSZ1dG1fY2FtcGFpZ249c3BvbnNvcikKWyFbTGlub2RlXShodHRwczovL3d3dy5saW5vZGUuY29tL21lZGlhL2ltYWdlcy9sb2dvcy9zdGFuZGFyZC9saWdodC9saW5vZGUtbG9nb19zdGFuZGFyZF9saWdodF9zbWFsbC5wbmcpXShodHRwczovL3d3dy5saW5vZGUuY29tLz91dG1fc291cmNlPW9wZW5hcGlfZ2VuZXJhdG9yJnV0bV9tZWRpdW09Z2l0aHViX3dlYnBhZ2UmdXRtX2NhbXBhaWduPXNwb25zb3IpCls8aW1nIHNyYz0iaHR0cHM6Ly9lbmNyeXB0ZWQtdGJuMC5nc3RhdGljLmNvbS9pbWFnZXM/cT10Ym4lM0FBTmQ5R2NSQWhFWWFkVXlaWXpHVW90WmlTZFhrVk1xcUxHdW9oeWl4TGw0ZVVwVVY2cEFiVVVMTCIgd2lkdGg9IjE1MCI+XShodHRwczovL2NoZWNrbHlocS5jb20vP3V0bV9zb3VyY2U9b3BlbmFwaV9nZW5lcmF0b3ImdXRtX21lZGl1bT1naXRodWJfd2VicGFnZSZ1dG1fY2FtcGFpZ249c3BvbnNvcikKWzxpbWcgc3JjPSJodHRwczovL3VwbG9hZC53aWtpbWVkaWEub3JnL3dpa2lwZWRpYS9jb21tb25zL3RodW1iL2MvY2IvR3JhZGxlX2xvZ28ucG5nLzMyMHB4LUdyYWRsZV9sb2dvLnBuZyIgd2lkdGg9IjE1MCI+XShodHRwczovL2dyYWRsZS5vcmc/dXRtX3NvdXJjZT1vcGVuYXBpX2dlbmVyYXRvciZ1dG1fbWVkaXVtPWdpdGh1Yl93ZWJwYWdlJnV0bV9jYW1wYWlnbj1zcG9uc29yKQoKIyMgT3ZlcnZpZXcKCk9wZW5BUEkgR2VuZXJhdG9yIGFsbG93cyBnZW5lcmF0aW9uIG9mIEFQSSBjbGllbnQgbGlicmFyaWVzIChTREsgZ2VuZXJhdGlvbiksIHNlcnZlciBzdHVicywgIGRvY3VtZW50YXRpb24gYW5kIGNvbmZpZ3VyYXRpb24gYXV0b21hdGljYWxseSBnaXZlbiBhbiBbT3BlbkFQSSBTcGVjXShodHRwczovL2dpdGh1Yi5jb20vT0FJL09wZW5BUEktU3BlY2lmaWNhdGlvbikgKGJvdGggMi4wIGFuZCAzLjAgYXJlIHN1cHBvcnRlZCkuIEN1cnJlbnRseSwgdGhlIGZvbGxvd2luZyBsYW5ndWFnZXMvZnJhbWV3b3JrcyBhcmUgc3VwcG9ydGVkOgoKfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IExhbmd1YWdlcy9GcmFtZXdvcmtzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8CnwgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gfC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tfAp8ICoqQVBJIGNsaWVudHMqKiAgICAgICAgICAgICAgICAgIHwgKipBY3Rpb25TY3JpcHQqKiwgKipBZGEqKiwgKipBcGV4KiosICoqQmFzaCoqLCAqKkMqKiwgKipDIyoqICgubmV0IDIuMCwgMy41IG9yIGxhdGVyLCAuTkVUIFN0YW5kYXJkIDEuMyAtIDIuMSwgLk5FVCBDb3JlIDMuMSwgLk5FVCA1LjAuIExpYnJhcmllczogUmVzdFNoYXJwLCBHZW5lcmljSG9zdCwgSHR0cENsaWVudCksICoqQysrKiogKEFyZHVpbm8sIGNwcC1yZXN0c2RrLCBRdDUsIFRpemVuLCBVbnJlYWwgRW5naW5lIDQpLCAqKkNsb2p1cmUqKiwgKipDcnlzdGFsKiosICoqRGFydCoqLCAqKkVsaXhpcioqLCAqKkVsbSoqLCAqKkVpZmZlbCoqLCAqKkVybGFuZyoqLCAqKkdvKiosICoqR3Jvb3Z5KiosICoqSGFza2VsbCoqIChodHRwLWNsaWVudCwgU2VydmFudCksICoqSmF2YSoqIChBcGFjaGUgSHR0cENsaWVudCA0LngsIEFwYWNoZSBIdHRwQ2xpZW50IDUueCwgSmVyc2V5Mi54LCBPa0h0dHAsIFJldHJvZml0MS54LCBSZXRyb2ZpdDIueCwgRmVpZ24sIFJlc3RUZW1wbGF0ZSwgUkVTVEVhc3ksIFZlcnR4LCBHb29nbGUgQVBJIENsaWVudCBMaWJyYXJ5IGZvciBKYXZhLCBSZXN0LWFzc3VyZWQsIFNwcmluZyA1IFdlYiBDbGllbnQsIFNwcmluZyA2IFJlc3RDbGllbnQsIE1pY3JvUHJvZmlsZSBSZXN0IENsaWVudCwgSGVsaWRvbiksICoqSmV0YnJhaW5zIEhUVFAgQ2xpZW50KiosICoqSnVsaWEqKiwgKiprNioqLCAqKktvdGxpbioqLCAqKkx1YSoqLCAqKk40SlMqKiwgKipOaW0qKiwgKipOb2RlLmpzL0phdmFTY3JpcHQqKiAoRVM1LCBFUzYsIEFuZ3VsYXJKUyB3aXRoIEdvb2dsZSBDbG9zdXJlIENvbXBpbGVyIGFubm90YXRpb25zLCBGbG93IHR5cGVzLCBBcG9sbG8gR3JhcGhRTCBEYXRhU3RvcmUpLCAqKk9iamVjdGl2ZS1DKiosICoqT0NhbWwqKiwgKipQZXJsKiosICoqUEhQKiosICoqUG93ZXJTaGVsbCoqLCAqKlB5dGhvbioqLCAqKlIqKiwgKipSdWJ5KiosICoqUnVzdCoqIChoeXBlciwgcmVxd2VzdCwgcnVzdC1zZXJ2ZXIpLCAqKlNjYWxhKiogKGFra2EsIGh0dHA0cywgc2NhbGF6LCBzdHRwLCBzd2FnZ2VyLWFzeW5jLWh0dHBjbGllbnQsIHBla2tvKSwgKipTd2lmdCoqICgyLngsIDMueCwgNC54LCA1LngsIDYueCksICoqVHlwZXNjcmlwdCoqIChBbmd1bGFySlMsIEFuZ3VsYXIgKDkueCAtIDE4LngpLCBBdXJlbGlhLCBBeGlvcywgRmV0Y2gsIEludmVyc2lmeSwgalF1ZXJ5LCBOZXN0anMsIE5vZGUsIHJlZHV4LXF1ZXJ5LCBSeGpzKSwgKipYb0pvKiosICoqWmFwaWVyKiogfAp8ICoqU2VydmVyIHN0dWJzKiogICAgICAgICAgICAgICAgIHwgKipBZGEqKiwgKipDIyoqIChBU1AuTkVUIENvcmUsIEF6dXJlIEZ1bmN0aW9ucyksICoqQysrKiogKFBpc3RhY2hlLCBSZXN0YmVkLCBRdDUgUUhUVFBFbmdpbmUpLCAqKkVybGFuZyoqLCAqKkYjKiogKEdpcmFmZmUpLCAqKkdvKiogKG5ldC9odHRwLCBHaW4sIEVjaG8pLCAqKkhhc2tlbGwqKiAoU2VydmFudCwgWWVzb2QpLCAqKkphdmEqKiAoTVNGNEosIFNwcmluZywgVW5kZXJ0b3csIEpBWC1SUzogQ0RJLCBDWEYsIEluZmxlY3RvciwgSmVyc2V5LCBSZXN0RWFzeSwgUGxheSBGcmFtZXdvcmssIFtQS01TVF0oaHR0cHM6Ly9naXRodWIuY29tL1Byb0thcm1hLUluYy9wa21zdC1nZXR0aW5nLXN0YXJ0ZWQtZXhhbXBsZXMpLCBbVmVydC54XShodHRwczovL3ZlcnR4LmlvLyksIFtBcGFjaGUgQ2FtZWxdKGh0dHBzOi8vY2FtZWwuYXBhY2hlLm9yZy8pLCBbSGVsaWRvbl0oaHR0cHM6Ly9oZWxpZG9uLmlvLykpLCAqKkp1bGlhKiosICoqS290bGluKiogKFNwcmluZyBCb290LCBbS3Rvcl0oaHR0cHM6Ly9naXRodWIuY29tL2t0b3Jpby9rdG9yKSwgW1ZlcnQueF0oaHR0cHM6Ly92ZXJ0eC5pby8pKSwgKipQSFAqKiAoW0ZsaWdodF0oaHR0cHM6Ly9kb2NzLmZsaWdodHBocC5jb20vKSwgTGFyYXZlbCwgTHVtZW4sIFtNZXp6aW8gKGZrYSBaZW5kIEV4cHJlc3NpdmUpXShodHRwczovL2dpdGh1Yi5jb20vbWV6emlvL21lenppbyksIFNsaW0sIFNpbGV4LCBbU3ltZm9ueV0oaHR0cHM6Ly9zeW1mb255LmNvbS8pKSwgKipQeXRob24qKiAoRmFzdEFQSSwgRmxhc2spLCAqKk5vZGVKUyoqLCAqKlJ1YnkqKiAoU2luYXRyYSwgUmFpbHM1KSwgKipSdXN0KiogKFtydXN0LXNlcnZlcl0oaHR0cHM6Ly9vcGVuYXBpLWdlbmVyYXRvci50ZWNoL2RvY3MvZ2VuZXJhdG9ycy9ydXN0LXNlcnZlci8pKSwgKipTY2FsYSoqIChBa2thLCBbRmluY2hdKGh0dHBzOi8vZ2l0aHViLmNvbS9maW5hZ2xlL2ZpbmNoKSwgW0xhZ29tXShodHRwczovL2dpdGh1Yi5jb20vbGFnb20vbGFnb20pLCBbUGxheV0oaHR0cHM6Ly93d3cucGxheWZyYW1ld29yay5jb20vKSwgW0Nhc2tdKGh0dHBzOi8vZ2l0aHViLmNvbS9jb20tbGloYW95aS9jYXNrKSwgU2NhbGF0cmEpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKfCAqKkFQSSBkb2N1bWVudGF0aW9uIGdlbmVyYXRvcnMqKiB8ICoqSFRNTCoqLCAqKkNvbmZsdWVuY2UgV2lraSoqLCAqKkFzY2lpZG9jKiosICoqTWFya2Rvd24qKiwgKipQbGFudFVNTCoqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8CnwgKipDb25maWd1cmF0aW9uIGZpbGVzKiogICAgICAgICAgfCBbKipBcGFjaGUyKipdKGh0dHBzOi8vaHR0cGQuYXBhY2hlLm9yZy8pICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAp8ICoqT3RoZXJzKiogICAgICAgICAgICAgICAgICAgICAgIHwgKipHcmFwaFFMKiosICoqSk1ldGVyKiosICoqS3Rvcm0qKiwgKipNeVNRTCBTY2hlbWEqKiwgKipQb3N0bWFuIENvbGxlY3Rpb24qKiwgKipQcm90b2NvbCBCdWZmZXIqKiwgKipXU0RMKiogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKCiMjIFRhYmxlIG9mIGNvbnRlbnRzCgogIC0gW09wZW5BUEkgR2VuZXJhdG9yXSgjb3BlbmFwaS1nZW5lcmF0b3IpCiAgLSBbT3ZlcnZpZXddKCNvdmVydmlldykKICAtIFtUYWJsZSBvZiBDb250ZW50c10oI3RhYmxlLW9mLWNvbnRlbnRzKQogIC0gWzEgLSBJbnN0YWxsYXRpb25dKCMxLS0taW5zdGFsbGF0aW9uKQogICAgLSBbMS4xIC0gQ29tcGF0aWJpbGl0eV0oIzExLS0tY29tcGF0aWJpbGl0eSkKICAgIC0gWzEuMiAtIEFydGlmYWN0cyBvbiBNYXZlbiBDZW50cmFsXSgjMTItLS1hcnRpZmFjdHMtb24tbWF2ZW4tY2VudHJhbCkKICAgIC0gWzEuMyAtIERvd25sb2FkIEpBUl0oIzEzLS0tZG93bmxvYWQtamFyKQogICAgLSBbMS40IC0gQnVpbGQgUHJvamVjdHNdKCMxNC0tLWJ1aWxkLXByb2plY3RzKQogICAgLSBbMS41IC0gSG9tZWJyZXddKCMxNS0tLWhvbWVicmV3KQogICAgLSBbMS42IC0gRG9ja2VyXSgjMTYtLS1kb2NrZXIpCiAgICAtIFsxLjcgLSBOUE1dKCMxNy0tLW5wbSkKICAtIFsyIC0gR2V0dGluZyBTdGFydGVkXSgjMi0tLWdldHRpbmctc3RhcnRlZCkKICAtIFszIC0gVXNhZ2VdKCMzLS0tdXNhZ2UpCiAgICAtIFszLjEgLSBDdXN0b21pemF0aW9uXSgjMzEtLS1jdXN0b21pemF0aW9uKQogICAgLSBbMy4yIC0gV29ya2Zsb3cgSW50ZWdyYXRpb25dKCMzMi0tLXdvcmtmbG93LWludGVncmF0aW9uLW1hdmVuLWdyYWRsZS1naXRodWItY2ljZCkKICAgIC0gWzMuMyAtIE9ubGluZSBHZW5lcmF0b3JzXSgjMzMtLS1vbmxpbmUtb3BlbmFwaS1nZW5lcmF0b3IpCiAgICAtIFszLjQgLSBMaWNlbnNlIEluZm9ybWF0aW9uIG9uIEdlbmVyYXRlZCBDb2RlXSgjMzQtLS1saWNlbnNlLWluZm9ybWF0aW9uLW9uLWdlbmVyYXRlZC1jb2RlKQogICAgLSBbMy41IC0gSURFIEludGVncmF0aW9uXSgjMzUtLS1pZGUtaW50ZWdyYXRpb24pCiAgLSBbNCAtIENvbXBhbmllcy9Qcm9qZWN0cyB1c2luZyBPcGVuQVBJIEdlbmVyYXRvcl0oIzQtLS1jb21wYW5pZXNwcm9qZWN0cy11c2luZy1vcGVuYXBpLWdlbmVyYXRvcikKICAtIFs1IC0gUHJlc2VudGF0aW9ucy9WaWRlb3MvVHV0b3JpYWxzL0Jvb2tzXSgjNS0tLXByZXNlbnRhdGlvbnN2aWRlb3N0dXRvcmlhbHNib29rcykKICAtIFs2IC0gQWJvdXQgVXNdKCM2LS0tYWJvdXQtdXMpCiAgICAtIFs2LjEgLSBPcGVuQVBJIEdlbmVyYXRvciBDb3JlIFRlYW1dKCM2MS0tLW9wZW5hcGktZ2VuZXJhdG9yLWNvcmUtdGVhbSkKICAgIC0gWzYuMiAtIE9wZW5BUEkgR2VuZXJhdG9yIFRlY2huaWNhbCBDb21taXR0ZWVdKCM2Mi0tLW9wZW5hcGktZ2VuZXJhdG9yLXRlY2huaWNhbC1jb21taXR0ZWUpCiAgICAtIFs2LjMgLSBIaXN0b3J5IG9mIE9wZW5BUEkgR2VuZXJhdG9yXSgjNjMtLS1oaXN0b3J5LW9mLW9wZW5hcGktZ2VuZXJhdG9yKQogIC0gWzcgLSBMaWNlbnNlXSgjNy0tLWxpY2Vuc2UpCgojIyBbMSAtIEluc3RhbGxhdGlvbl0oI3RhYmxlLW9mLWNvbnRlbnRzKQoKIyMjIFsxLjEgLSBDb21wYXRpYmlsaXR5XSgjdGFibGUtb2YtY29udGVudHMpCgpUaGUgT3BlbkFQSSBTcGVjaWZpY2F0aW9uIGhhcyB1bmRlcmdvbmUgMyByZXZpc2lvbnMgc2luY2UgaW5pdGlhbCBjcmVhdGlvbiBpbiAyMDEwLiAgVGhlIG9wZW5hcGktZ2VuZXJhdG9yIHByb2plY3QgaGFzIHRoZSBmb2xsb3dpbmcgY29tcGF0aWJpbGl0aWVzIHdpdGggdGhlIE9wZW5BUEkgU3BlY2lmaWNhdGlvbjoKCnwgT3BlbkFQSSBHZW5lcmF0b3IgVmVyc2lvbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgUmVsZWFzZSBEYXRlIHwgTm90ZXMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8CnwgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSB8CnwgNy4xMC4wICh1cGNvbWluZyBtaW5vciByZWxlYXNlKSBbU05BUFNIT1RdKGh0dHBzOi8vb3NzLnNvbmF0eXBlLm9yZy9jb250ZW50L3JlcG9zaXRvcmllcy9zbmFwc2hvdHMvb3JnL29wZW5hcGl0b29scy9vcGVuYXBpLWdlbmVyYXRvci1jbGkvNy4xMC4wLVNOQVBTSE9ULykgfCAwNy4xMS4yMDI0ICAgfCBNaW5vciByZWxlYXNlIHdpdGggYnJlYWtpbmcgY2hhbmdlcyAod2l0aCBmYWxsYmFjaykgfAp8IFs3LjkuMF0oaHR0cHM6Ly9naXRodWIuY29tL09wZW5BUElUb29scy9vcGVuYXBpLWdlbmVyYXRvci9yZWxlYXNlcy90YWcvdjcuOS4wKSAobGF0ZXN0IHN0YWJsZSByZWxlYXNlKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IDA3LjEwLjIwMjQgICB8IE1pbm9yIHJlbGVhc2Ugd2l0aCBicmVha2luZyBjaGFuZ2VzICh3aXRoIGZhbGxiYWNrKSB8CnwgWzcuOC4wXShodHRwczovL2dpdGh1Yi5jb20vT3BlbkFQSVRvb2xzL29wZW5hcGktZ2VuZXJhdG9yL3JlbGVhc2VzL3RhZy92Ny44LjApIChsYXRlc3Qgc3RhYmxlIHJlbGVhc2UpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgMTkuMDguMjAyNCAgIHwgTWlub3IgcmVsZWFzZSB3aXRoIGJyZWFraW5nIGNoYW5nZXMgKHdpdGggZmFsbGJhY2spIHwKfCBbNi42LjBdKGh0dHBzOi8vZ2l0aHViLmNvbS9PcGVuQVBJVG9vbHMvb3BlbmFwaS1nZW5lcmF0b3IvcmVsZWFzZXMvdGFnL3Y2LjYuMCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAxMS4wNS4yMDIzICAgfCBNaW5vciByZWxlYXNlIHdpdGggYnJlYWtpbmcgY2hhbmdlcyAod2l0aCBmYWxsYmFjaykgfAp8IFs1LjQuMF0oaHR0cHM6Ly9naXRodWIuY29tL09wZW5BUElUb29scy9vcGVuYXBpLWdlbmVyYXRvci9yZWxlYXNlcy90YWcvdjUuNC4wKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IDMxLjAxLjIwMjIgICB8IE1pbm9yIHJlbGVhc2Ugd2l0aCBicmVha2luZyBjaGFuZ2VzICh3aXRoIGZhbGxiYWNrKSB8CnwgWzQuMy4xXShodHRwczovL2dpdGh1Yi5jb20vT3BlbkFQSVRvb2xzL29wZW5hcGktZ2VuZXJhdG9yL3JlbGVhc2VzL3RhZy92NC4zLjEpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgMDYuMDUuMjAyMCAgIHwgUGF0Y2ggcmVsZWFzZSAoZW5oYW5jZW1lbnRzLCBidWcgZml4ZXMsIGV0YykgICAgICAgICAgICAgICAgICAgICAgIHwKCk9wZW5BUEkgU3BlYyBjb21wYXRpYmlsaXR5OiAxLjAsIDEuMSwgMS4yLCAyLjAsIDMuMCwgMy4xIChiZXRhIHN1cHBvcnQpCgooV2UgZG8gbm90IHB1Ymxpc2ggZGFpbHkvbmlnaHRseSBidWlsZC4gUGxlYXNlIHVzZSBTTkFQU0hPVCBpbnN0ZWFkKQoKRm9yIG9sZCByZWxlYXNlcywgcGxlYXNlIHJlZmVyIHRvIHRoZSBbKipSZWxlYXNlKipdKGh0dHBzOi8vZ2l0aHViLmNvbS9PcGVuQVBJVG9vbHMvb3BlbmFwaS1nZW5lcmF0b3IvcmVsZWFzZXMpIHBhZ2UuCgpGb3IgZGVjb21pc3Npb25lZCBnZW5lcmF0b3JzL2xpYnJhcmllcy9mcmFtZXdvcmtzLCBwbGVhc2UgcmVmZXIgdG8gW3RoZSAiRGVjb21taXNzaW9uIiBsYWJlbF0oaHR0cHM6Ly9naXRodWIuY29tL09wZW5BUElUb29scy9vcGVuYXBpLWdlbmVyYXRvci9pc3N1ZXM/cT1sYWJlbCUzQURlY29tbWlzc2lvbitpcyUzQW1lcmdlZCspIGluIHRoZSBwdWxsIHJlcXVlc3QgcGFnZS4KCiMjIFsxLjIgLSBBcnRpZmFjdHMgb24gTWF2ZW4gQ2VudHJhbF0oI3RhYmxlLW9mLWNvbnRlbnRzKQoKWW91IGNhbiBmaW5kIG91ciByZWxlYXNlZCBhcnRpZmFjdHMgb24gbWF2ZW4gY2VudHJhbDoKCioqQ29yZToqKgpgYGB4bWwKPGRlcGVuZGVuY3k+CiAgICA8Z3JvdXBJZD5vcmcub3BlbmFwaXRvb2xzPC9ncm91cElkPgogICAgPGFydGlmYWN0SWQ+b3BlbmFwaS1nZW5lcmF0b3I8L2FydGlmYWN0SWQ+CiAgICA8dmVyc2lvbj4ke29wZW5hcGktZ2VuZXJhdG9yLXZlcnNpb259PC92ZXJzaW9uPgo8L2RlcGVuZGVuY3k+CmBgYApTZWUgdGhlIGRpZmZlcmVudCB2ZXJzaW9ucyBvZiB0aGUgW29wZW5hcGktZ2VuZXJhdG9yXShodHRwczovL3NlYXJjaC5tYXZlbi5vcmcvYXJ0aWZhY3Qvb3JnLm9wZW5hcGl0b29scy9vcGVuYXBpLWdlbmVyYXRvcikgYXJ0aWZhY3QgYXZhaWxhYmxlIG9uIG1hdmVuIGNlbnRyYWwuCgoqKkNsaToqKgpgYGB4bWwKPGRlcGVuZGVuY3k+CiAgICA8Z3JvdXBJZD5vcmcub3BlbmFwaXRvb2xzPC9ncm91cElkPgogICAgPGFydGlmYWN0SWQ+b3BlbmFwaS1nZW5lcmF0b3ItY2xpPC9hcnRpZmFjdElkPgogICAgPHZlcnNpb24+JHtvcGVuYXBpLWdlbmVyYXRvci12ZXJzaW9ufTwvdmVyc2lvbj4KPC9kZXBlbmRlbmN5PgpgYGAKU2VlIHRoZSBkaWZmZXJlbnQgdmVyc2lvbnMgb2YgdGhlIFtvcGVuYXBpLWdlbmVyYXRvci1jbGldKGh0dHBzOi8vc2VhcmNoLm1hdmVuLm9yZy9hcnRpZmFjdC9vcmcub3BlbmFwaXRvb2xzL29wZW5hcGktZ2VuZXJhdG9yLWNsaSkgYXJ0aWZhY3QgYXZhaWxhYmxlIG9uIG1hdmVuIGNlbnRyYWwuCgoqKk1hdmVuIHBsdWdpbjoqKgpgYGB4bWwKPGRlcGVuZGVuY3k+CiAgICA8Z3JvdXBJZD5vcmcub3BlbmFwaXRvb2xzPC9ncm91cElkPgogICAgPGFydGlmYWN0SWQ+b3BlbmFwaS1nZW5lcmF0b3ItbWF2ZW4tcGx1Z2luPC9hcnRpZmFjdElkPgogICAgPHZlcnNpb24+JHtvcGVuYXBpLWdlbmVyYXRvci12ZXJzaW9ufTwvdmVyc2lvbj4KPC9kZXBlbmRlbmN5PgpgYGAKKiBTZWUgdGhlIGRpZmZlcmVudCB2ZXJzaW9ucyBvZiB0aGUgW29wZW5hcGktZ2VuZXJhdG9yLW1hdmVuLXBsdWdpbl0oaHR0cHM6Ly9zZWFyY2gubWF2ZW4ub3JnL2FydGlmYWN0L29yZy5vcGVuYXBpdG9vbHMvb3BlbmFwaS1nZW5lcmF0b3ItbWF2ZW4tcGx1Z2luKSBhcnRpZmFjdCBhdmFpbGFibGUgb24gbWF2ZW4gY2VudHJhbC4KKiBbUmVhZG1lXShodHRwczovL2dpdGh1Yi5jb20vT3BlbkFQSVRvb2xzL29wZW5hcGktZ2VuZXJhdG9yL2Jsb2IvbWFzdGVyL21vZHVsZXMvb3BlbmFwaS1nZW5lcmF0b3ItbWF2ZW4tcGx1Z2luL1JFQURNRS5tZCkKCioqR3JhZGxlIHBsdWdpbjoqKgpgYGB4bWwKPGRlcGVuZGVuY3k+CiAgICA8Z3JvdXBJZD5vcmcub3BlbmFwaXRvb2xzPC9ncm91cElkPgogICAgPGFydGlmYWN0SWQ+b3BlbmFwaS1nZW5lcmF0b3ItZ3JhZGxlLXBsdWdpbjwvYXJ0aWZhY3RJZD4KICAgIDx2ZXJzaW9uPiR7b3BlbmFwaS1nZW5lcmF0b3ItdmVyc2lvbn08L3ZlcnNpb24+CjwvZGVwZW5kZW5jeT4KYGBgCiogU2VlIHRoZSBkaWZmZXJlbnQgdmVyc2lvbnMgb2YgdGhlIFtvcGVuYXBpLWdlbmVyYXRvci1ncmFkbGUtcGx1Z2luXShodHRwczovL3NlYXJjaC5tYXZlbi5vcmcvYXJ0aWZhY3Qvb3JnLm9wZW5hcGl0b29scy9vcGVuYXBpLWdlbmVyYXRvci1ncmFkbGUtcGx1Z2luKSBhcnRpZmFjdCBhdmFpbGFibGUgb24gbWF2ZW4gY2VudHJhbC4KKiBbUmVhZG1lXShodHRwczovL2dpdGh1Yi5jb20vT3BlbkFQSVRvb2xzL29wZW5hcGktZ2VuZXJhdG9yL2Jsb2IvbWFzdGVyL21vZHVsZXMvb3BlbmFwaS1nZW5lcmF0b3ItZ3JhZGxlLXBsdWdpbi9SRUFETUUuYWRvYykKCiMjIyBbMS4zIC0gRG93bmxvYWQgSkFSXSgjdGFibGUtb2YtY29udGVudHMpCjwhLS0gUkVMRUFTRV9WRVJTSU9OIC0tPgpJZiB5b3UncmUgbG9va2luZyBmb3IgdGhlIGxhdGVzdCBzdGFibGUgdmVyc2lvbiwgeW91IGNhbiBncmFiIGl0IGRpcmVjdGx5IGZyb20gTWF2ZW4ub3JnIChKYXZhIDExIHJ1bnRpbWUgYXQgYSBtaW5pbXVtKToKCkpBUiBsb2NhdGlvbjogYGh0dHBzOi8vcmVwbzEubWF2ZW4ub3JnL21hdmVuMi9vcmcvb3BlbmFwaXRvb2xzL29wZW5hcGktZ2VuZXJhdG9yLWNsaS83LjkuMC9vcGVuYXBpLWdlbmVyYXRvci1jbGktNy45LjAuamFyYAoKRm9yICoqTWFjL0xpbnV4KiogdXNlcnM6CmBgYHNoCndnZXQgaHR0cHM6Ly9yZXBvMS5tYXZlbi5vcmcvbWF2ZW4yL29yZy9vcGVuYXBpdG9vbHMvb3BlbmFwaS1nZW5lcmF0b3ItY2xpLzcuOS4wL29wZW5hcGktZ2VuZXJhdG9yLWNsaS03LjkuMC5qYXIgLU8gb3BlbmFwaS1nZW5lcmF0b3ItY2xpLmphcgpgYGAKCkZvciAqKldpbmRvd3MqKiB1c2VycywgeW91IHdpbGwgbmVlZCB0byBpbnN0YWxsIFt3Z2V0XShodHRwOi8vZ251d2luMzIuc291cmNlZm9yZ2UubmV0L3BhY2thZ2VzL3dnZXQuaHRtKSBvciB5b3UgY2FuIHVzZSBJbnZva2UtV2ViUmVxdWVzdCBpbiBQb3dlclNoZWxsICgzLjArKSwgZS5nLgpgYGAKSW52b2tlLVdlYlJlcXVlc3QgLU91dEZpbGUgb3BlbmFwaS1nZW5lcmF0b3ItY2xpLmphciBodHRwczovL3JlcG8xLm1hdmVuLm9yZy9tYXZlbjIvb3JnL29wZW5hcGl0b29scy9vcGVuYXBpLWdlbmVyYXRvci1jbGkvNy45LjAvb3BlbmFwaS1nZW5lcmF0b3ItY2xpLTcuOS4wLmphcgpgYGAKCkFmdGVyIGRvd25sb2FkaW5nIHRoZSBKQVIsIHJ1biBgamF2YSAtamFyIG9wZW5hcGktZ2VuZXJhdG9yLWNsaS5qYXIgaGVscGAgdG8gc2hvdyB0aGUgdXNhZ2UuCgpGb3IgTWFjIHVzZXJzLCBwbGVhc2UgbWFrZSBzdXJlIEphdmEgMTEgaXMgaW5zdGFsbGVkIChUaXBzOiBydW4gYGphdmEgLXZlcnNpb25gIHRvIGNoZWNrIHRoZSB2ZXJzaW9uKSwgYW5kIGV4cG9ydCBgSkFWQV9IT01FYCBpbiBvcmRlciB0byB1c2UgdGhlIHN1cHBvcnRlZCBKYXZhIHZlcnNpb246CmBgYHNoCmV4cG9ydCBKQVZBX0hPTUU9YC91c3IvbGliZXhlYy9qYXZhX2hvbWUgLXYgMS4xMWAKZXhwb3J0IFBBVEg9JHtKQVZBX0hPTUV9L2JpbjokUEFUSApgYGAKCjwhLS0gL1JFTEVBU0VfVkVSU0lPTiAtLT4KIyMjIExhdW5jaGVyIFNjcmlwdAoKT25lIGRvd25zaWRlIHRvIG1hbnVhbCBqYXIgZG93bmxvYWRzIGlzIHRoYXQgeW91IGRvbid0IGtlZXAgdXAtdG8tZGF0ZSB3aXRoIHRoZSBsYXRlc3QgcmVsZWFzZWQgdmVyc2lvbi4gV2UgaGF2ZSBhIEJhc2ggbGF1bmNoZXIgc2NyaXB0IGF0IFtiaW4vdXRpbHMvb3BlbmFwaS1nZW5lcmF0b3IuY2xpLnNoXSguL2Jpbi91dGlscy9vcGVuYXBpLWdlbmVyYXRvci1jbGkuc2gpIHdoaWNoIHJlc29sdmVzIHRoaXMgaXNzdWUuCgpUbyBpbnN0YWxsIHRoZSBsYXVuY2hlciBzY3JpcHQsIGNvcHkgdGhlIGNvbnRlbnRzIG9mIHRoZSBzY3JpcHQgdG8gYSBsb2NhdGlvbiBvbiB5b3VyIHBhdGggYW5kIG1ha2UgdGhlIHNjcmlwdCBleGVjdXRhYmxlLgoKQW4gZXhhbXBsZSBvZiBzZXR0aW5nIHRoaXMgdXAgKE5PVEU6IEFsd2F5cyBldmFsdWF0ZSBzY3JpcHRzIGN1cmxlZCBmcm9tIGV4dGVybmFsIHN5c3RlbXMgYmVmb3JlIGV4ZWN1dGluZyB0aGVtKS4KCmBgYApta2RpciAtcCB+L2Jpbi9vcGVuYXBpdG9vbHMKY3VybCBodHRwczovL3Jhdy5naXRodWJ1c2VyY29udGVudC5jb20vT3BlbkFQSVRvb2xzL29wZW5hcGktZ2VuZXJhdG9yL21hc3Rlci9iaW4vdXRpbHMvb3BlbmFwaS1nZW5lcmF0b3ItY2xpLnNoID4gfi9iaW4vb3BlbmFwaXRvb2xzL29wZW5hcGktZ2VuZXJhdG9yLWNsaQpjaG1vZCB1K3ggfi9iaW4vb3BlbmFwaXRvb2xzL29wZW5hcGktZ2VuZXJhdG9yLWNsaQpleHBvcnQgUEFUSD0kUEFUSDp+L2Jpbi9vcGVuYXBpdG9vbHMvCmBgYAoKTm93LCBgb3BlbmFwaS1nZW5lcmF0b3ItY2xpYCBpcyAiaW5zdGFsbGVkIi4gT24gaW52b2NhdGlvbiwgaXQgd2lsbCBxdWVyeSB0aGUgR2l0SHViIHJlcG9zaXRvcnkgZm9yIHRoZSBtb3N0IHJlY2VudGx5IHJlbGVhc2VkIHZlcnNpb24uIElmIHRoaXMgbWF0Y2hlcyB0aGUgbGFzdCBkb3dubG9hZGVkIGphciwKaXQgd2lsbCBleGVjdXRlIGFzIG5vcm1hbC4gSWYgYSBuZXdlciB2ZXJzaW9uIGlzIGZvdW5kLCB0aGUgc2NyaXB0IHdpbGwgZG93bmxvYWQgdGhlIGxhdGVzdCByZWxlYXNlIGFuZCBleGVjdXRlIGl0LgoKSWYgeW91IG5lZWQgdG8gaW52b2tlIGFuIG9sZGVyIHZlcnNpb24gb2YgdGhlIGdlbmVyYXRvciwgeW91IGNhbiBkZWZpbmUgdGhlIHZhcmlhYmxlIGBPUEVOQVBJX0dFTkVSQVRPUl9WRVJTSU9OYCBlaXRoZXIgYWQgaG9jIG9yIGdsb2JhbGx5LiBZb3UgY2FuIGV4cG9ydCB0aGlzIHZhcmlhYmxlIGlmIHlvdSdkIGxpa2UgdG8gcGVyc2lzdCBhIHNwZWNpZmljIHJlbGVhc2UgdmVyc2lvbi4KCkV4YW1wbGVzOgoKYGBgCiMgRXhlY3V0ZSBsYXRlc3QgcmVsZWFzZWQgb3BlbmFwaS1nZW5lcmF0b3ItY2xpCm9wZW5hcGktZ2VuZXJhdG9yLWNsaSB2ZXJzaW9uCgojIEV4ZWN1dGUgdmVyc2lvbiA0LjEuMCBmb3IgdGhlIGN1cnJlbnQgaW52b2NhdGlvbiwgcmVnYXJkbGVzcyBvZiB0aGUgbGF0ZXN0IHJlbGVhc2VkIHZlcnNpb24KT1BFTkFQSV9HRU5FUkFUT1JfVkVSU0lPTj00LjEuMCBvcGVuYXBpLWdlbmVyYXRvci1jbGkgdmVyc2lvbgoKIyBFeGVjdXRlIHZlcnNpb24gNC4xLjAtU05BUFNIT1QgZm9yIHRoZSBjdXJyZW50IGludm9jYXRpb24KT1BFTkFQSV9HRU5FUkFUT1JfVkVSU0lPTj00LjEuMC1TTkFQU0hPVCBvcGVuYXBpLWdlbmVyYXRvci1jbGkgdmVyc2lvbgoKIyBFeGVjdXRlIHZlcnNpb24gNC4wLjIgZm9yIGV2ZXJ5IGludm9jYXRpb24gaW4gdGhlIGN1cnJlbnQgc2hlbGwgc2Vzc2lvbgpleHBvcnQgT1BFTkFQSV9HRU5FUkFUT1JfVkVSU0lPTj00LjAuMgpvcGVuYXBpLWdlbmVyYXRvci1jbGkgdmVyc2lvbiAjIGlzIDQuMC4yCm9wZW5hcGktZ2VuZXJhdG9yLWNsaSB2ZXJzaW9uICMgaXMgYWxzbyA0LjAuMgoKIyBUbyAiaW5zdGFsbCIgYSBzcGVjaWZpYyB2ZXJzaW9uLCBzZXQgdGhlIHZhcmlhYmxlIGluIC5iYXNocmMvLmJhc2hfcHJvZmlsZQplY2hvICJleHBvcnQgT1BFTkFQSV9HRU5FUkFUT1JfVkVSU0lPTj00LjAuMiIgPj4gfi8uYmFzaHJjCnNvdXJjZSB+Ly5iYXNocmMKb3BlbmFwaS1nZW5lcmF0b3ItY2xpIHZlcnNpb24gIyBpcyBhbHdheXMgNC4wLjIsIHVubGVzcyBhbnkgb2YgdGhlIGFib3ZlIG92ZXJyaWRlcyBhcmUgZG9uZSBhZCBob2MKYGBgCgojIyMgWzEuNCAtIEJ1aWxkIFByb2plY3RzXSgjdGFibGUtb2YtY29udGVudHMpCgpUbyBidWlsZCBmcm9tIHNvdXJjZSwgeW91IG5lZWQgdGhlIGZvbGxvd2luZyBpbnN0YWxsZWQgYW5kIGF2YWlsYWJsZSBpbiB5b3VyIGAkUEFUSDpgCgoqIFtKYXZhIDExXShodHRwczovL2Fkb3B0aXVtLm5ldC8pCgoqIFtBcGFjaGUgTWF2ZW4gMy44Ljggb3IgZ3JlYXRlcl0oaHR0cHM6Ly9tYXZlbi5hcGFjaGUub3JnLykgKG9wdGlvbmFsKQoKQWZ0ZXIgY2xvbmluZyB0aGUgcHJvamVjdCwgeW91IGNhbiBidWlsZCBpdCBmcm9tIHNvdXJjZSB1c2luZyBbbWF2ZW4gd3JhcHBlcl0oaHR0cHM6Ly9tYXZlbi5hcGFjaGUub3JnL3dyYXBwZXIvKToKCi0gTGludXg6IGAuL212bncgY2xlYW4gaW5zdGFsbGAKLSBXaW5kb3dzOiBgbXZudy5jbWQgY2xlYW4gaW5zdGFsbGAKCiMjIyMgTml4IHVzZXJzCgpJZiB5b3UncmUgYSBuaXggdXNlciwgeW91IGNhbiBlbnRlciBPcGVuQVBJIEdlbmVyYXRvciBzaGVsbCwgYnkgdHlwaW5nOgpgYGBzaApuaXggZGV2ZWxvcApgYGAKSXQgd2lsbCBlbnRlciBhIHNoZWxsIHdpdGggSmF2YSAxMSBpbnN0YWxsZWQuCgpEaXJlbnYgc3VwcG9ydHMgYXV0b21hdGljYWxseSBsb2FkaW5nIG9mIHRoZSBuaXggZGV2ZWxvcGVyIHNoZWxsLCBzbyBpZiB5b3UncmUgdXNpbmcgZGlyZW52IHRvbywgdHlwZToKYGBgc2gKZGlyZW52IGFsbG93CmBgYAphbmQgaGF2ZSBgamF2YWAgYW5kIGBtdm5gIHNldCB1cCB3aXRoIGNvcnJlY3QgdmVyc2lvbnMgZWFjaCB0aW1lIHlvdSBlbnRlciBwcm9qZWN0IGRpcmVjdG9yeS4KClRoZSBkZWZhdWx0IGJ1aWxkIGNvbnRhaW5zIG1pbmltYWwgc3RhdGljIGFuYWx5c2lzICh2aWEgQ2hlY2tTdHlsZSkuIFRvIHJ1biB5b3VyIGJ1aWxkIHdpdGggUE1EIGFuZCBTcG90YnVncywgdXNlIHRoZSBgc3RhdGljLWFuYWx5c2lzYCBwcm9maWxlOgoKLSBMaW51eDogYC4vbXZudyAtUHN0YXRpYy1hbmFseXNpcyBjbGVhbiBpbnN0YWxsYAotIFdpbmRvd3M6IGBtdm53LmNtZCAtUHN0YXRpYy1hbmFseXNpcyBjbGVhbiBpbnN0YWxsYAoKIyMjIFsxLjUgLSBIb21lYnJld10oI3RhYmxlLW9mLWNvbnRlbnRzKQoKVG8gaW5zdGFsbCwgcnVuIGBicmV3IGluc3RhbGwgb3BlbmFwaS1nZW5lcmF0b3JgCgpIZXJlIGlzIGFuIGV4YW1wbGUgdXNhZ2UgdG8gZ2VuZXJhdGUgYSBSdWJ5IGNsaWVudDoKYGBgc2gKb3BlbmFwaS1nZW5lcmF0b3IgZ2VuZXJhdGUgLWkgaHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL29wZW5hcGl0b29scy9vcGVuYXBpLWdlbmVyYXRvci9tYXN0ZXIvbW9kdWxlcy9vcGVuYXBpLWdlbmVyYXRvci9zcmMvdGVzdC9yZXNvdXJjZXMvM18wL3BldHN0b3JlLnlhbWwgLWcgcnVieSAtbyAvdG1wL3Rlc3QvCmBgYAoKVG8gcmVpbnN0YWxsIHdpdGggdGhlIGxhdGVzdCBtYXN0ZXIsIHJ1biBgYnJldyB1bmluc3RhbGwgb3BlbmFwaS1nZW5lcmF0b3IgJiYgYnJldyBpbnN0YWxsIC0tSEVBRCBvcGVuYXBpLWdlbmVyYXRvcmAKClRvIGluc3RhbGwgT3BlbkpESyAocHJlLXJlcXVpc2l0ZXMpLCBwbGVhc2UgcnVuCmBgYHNoCmJyZXcgdGFwIEFkb3B0T3BlbkpESy9vcGVuamRrCmJyZXcgaW5zdGFsbCAtLWNhc2sgYWRvcHRvcGVuamRrMTEKZXhwb3J0IEpBVkFfSE9NRT1gL3Vzci9saWJleGVjL2phdmFfaG9tZSAtdiAxLjExYApgYGAKCm9yIGRvd25sb2FkIGluc3RhbGxlciB2aWEgaHR0cHM6Ly9hZG9wdGl1bS5uZXQvCgpUbyBpbnN0YWxsIE1hdmVuIChvcHRpb25hbCksIHBsZWFzZSBydW4KYGBgc2gKYnJldyBpbnN0YWxsIG1hdmVuCmBgYAoKIyMjIFsxLjYgLSBEb2NrZXJdKCN0YWJsZS1vZi1jb250ZW50cykKCiMjIyMgUHVibGljIFByZS1idWlsdCBEb2NrZXIgaW1hZ2VzCgogLSBbaHR0cHM6Ly9odWIuZG9ja2VyLmNvbS9yL29wZW5hcGl0b29scy9vcGVuYXBpLWdlbmVyYXRvci1jbGkvXShodHRwczovL2h1Yi5kb2NrZXIuY29tL3Ivb3BlbmFwaXRvb2xzL29wZW5hcGktZ2VuZXJhdG9yLWNsaS8pIChvZmZpY2lhbCBDTEkpCiAtIFtodHRwczovL2h1Yi5kb2NrZXIuY29tL3Ivb3BlbmFwaXRvb2xzL29wZW5hcGktZ2VuZXJhdG9yLW9ubGluZS9dKGh0dHBzOi8vaHViLmRvY2tlci5jb20vci9vcGVuYXBpdG9vbHMvb3BlbmFwaS1nZW5lcmF0b3Itb25saW5lLykgKG9mZmljaWFsIHdlYiBzZXJ2aWNlKQoKCiMjIyMgT3BlbkFQSSBHZW5lcmF0b3IgQ0xJIERvY2tlciBJbWFnZQoKVGhlIE9wZW5BUEkgR2VuZXJhdG9yIGltYWdlIGFjdHMgYXMgYSBzdGFuZGFsb25lIGV4ZWN1dGFibGUuIEl0IGNhbiBiZSB1c2VkIGFzIGFuIGFsdGVybmF0aXZlIHRvIGluc3RhbGxpbmcgdmlhIGhvbWVicmV3LCBvciBmb3IgZGV2ZWxvcGVycyB3aG8gYXJlIHVuYWJsZSB0byBpbnN0YWxsIEphdmEgb3IgdXBncmFkZSB0aGUgaW5zdGFsbGVkIHZlcnNpb24uCgpUbyBnZW5lcmF0ZSBjb2RlIHdpdGggdGhpcyBpbWFnZSwgeW91J2xsIG5lZWQgdG8gbW91bnQgYSBsb2NhbCBsb2NhdGlvbiBhcyBhIHZvbHVtZS4KCkV4YW1wbGU6CgpgYGBzaApkb2NrZXIgcnVuIC0tcm0gLXYgIiR7UFdEfTovbG9jYWwiIG9wZW5hcGl0b29scy9vcGVuYXBpLWdlbmVyYXRvci1jbGkgZ2VuZXJhdGUgXAogICAgLWkgaHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL29wZW5hcGl0b29scy9vcGVuYXBpLWdlbmVyYXRvci9tYXN0ZXIvbW9kdWxlcy9vcGVuYXBpLWdlbmVyYXRvci9zcmMvdGVzdC9yZXNvdXJjZXMvM18wL3BldHN0b3JlLnlhbWwgXAogICAgLWcgZ28gXAogICAgLW8gL2xvY2FsL291dC9nbwpgYGAKClRoZSBnZW5lcmF0ZWQgY29kZSB3aWxsIGJlIGxvY2F0ZWQgdW5kZXIgYC4vb3V0L2dvYCBpbiB0aGUgY3VycmVudCBkaXJlY3RvcnkuCgojIyMjIE9wZW5BUEkgR2VuZXJhdG9yIE9ubGluZSBEb2NrZXIgSW1hZ2UKClRoZSBvcGVuYXBpLWdlbmVyYXRvci1vbmxpbmUgaW1hZ2UgY2FuIGFjdCBhcyBhIHNlbGYtaG9zdGVkIHdlYiBhcHBsaWNhdGlvbiBhbmQgQVBJIGZvciBnZW5lcmF0aW5nIGNvZGUuIFRoaXMgY29udGFpbmVyIGNhbiBiZSBpbmNvcnBvcmF0ZWQgaW50byBhIENJIHBpcGVsaW5lLCBhbmQgcmVxdWlyZXMgYXQgbGVhc3QgdHdvIEhUVFAgcmVxdWVzdHMgYW5kIHNvbWUgZG9ja2VyIG9yY2hlc3RyYXRpb24gdG8gYWNjZXNzIGdlbmVyYXRlZCBjb2RlLgoKRXhhbXBsZSB1c2FnZToKCmBgYHNoCiMgU3RhcnQgY29udGFpbmVyIGF0IHBvcnQgODg4OCBhbmQgc2F2ZSB0aGUgY29udGFpbmVyIGlkCj4gQ0lEPSQoZG9ja2VyIHJ1biAtZCAtcCA4ODg4OjgwODAgb3BlbmFwaXRvb2xzL29wZW5hcGktZ2VuZXJhdG9yLW9ubGluZSkKCiMgYWxsb3cgZm9yIHN0YXJ0dXAKPiBzbGVlcCAxMAoKIyBHZXQgdGhlIElQIG9mIHRoZSBydW5uaW5nIGNvbnRhaW5lciAob3B0aW9uYWwpCkdFTl9JUD0kKGRvY2tlciBpbnNwZWN0IC0tZm9ybWF0ICd7ey5OZXR3b3JrU2V0dGluZ3MuSVBBZGRyZXNzfX0nICAkQ0lEKQoKIyBFeGVjdXRlIGFuIEhUVFAgcmVxdWVzdCB0byBnZW5lcmF0ZSBhIFJ1YnkgY2xpZW50Cj4gY3VybCAtWCBQT1NUIC0taGVhZGVyICdDb250ZW50LVR5cGU6IGFwcGxpY2F0aW9uL2pzb24nIC0taGVhZGVyICdBY2NlcHQ6IGFwcGxpY2F0aW9uL2pzb24nIFwKLWQgJ3sib3BlbkFQSVVybCI6ICJodHRwczovL3Jhdy5naXRodWJ1c2VyY29udGVudC5jb20vb3BlbmFwaXRvb2xzL29wZW5hcGktZ2VuZXJhdG9yL21hc3Rlci9tb2R1bGVzL29wZW5hcGktZ2VuZXJhdG9yL3NyYy90ZXN0L3Jlc291cmNlcy8zXzAvcGV0c3RvcmUueWFtbCJ9JyBcCidodHRwOi8vbG9jYWxob3N0Ojg4ODgvYXBpL2dlbi9jbGllbnRzL3J1YnknCgp7ImNvZGUiOiJjMmQ0ODMuMy40NjcyLTQwZTktOTFkZi1iOWZmZDE4ZDIyYjgiLCJsaW5rIjoiaHR0cDovL2xvY2FsaG9zdDo4ODg4L2FwaS9nZW4vZG93bmxvYWQvYzJkNDgzLjMuNDY3Mi00MGU5LTkxZGYtYjlmZmQxOGQyMmI4In0KCiMgRG93bmxvYWQgdGhlIGdlbmVyYXRlZCB6aXAgZmlsZQo+IHdnZXQgaHR0cDovL2xvY2FsaG9zdDo4ODg4L2FwaS9nZW4vZG93bmxvYWQvYzJkNDgzLjMuNDY3Mi00MGU5LTkxZGYtYjlmZmQxOGQyMmI4CgojIFVuemlwIHRoZSBmaWxlCj4gdW56aXAgYzJkNDgzLjMuNDY3Mi00MGU5LTkxZGYtYjlmZmQxOGQyMmI4CgojIFNodXRkb3duIHRoZSBvcGVuYXBpIGdlbmVyYXRvciBpbWFnZQo+IGRvY2tlciBzdG9wICRDSUQgJiYgZG9ja2VyIHJtICRDSUQKYGBgCgojIyMjIERldmVsb3BtZW50IGluIGRvY2tlcgoKWW91IGNhbiB1c2UgYHJ1bi1pbi1kb2NrZXIuc2hgIHRvIGRvIGFsbCBkZXZlbG9wbWVudC4gVGhpcyBzY3JpcHQgbWFwcyB5b3VyIGxvY2FsIHJlcG9zaXRvcnkgdG8gYC9nZW5gCmluIHRoZSBkb2NrZXIgY29udGFpbmVyLiBJdCBhbHNvIG1hcHMgYH4vLm0yL3JlcG9zaXRvcnlgIHRvIHRoZSBhcHByb3ByaWF0ZSBjb250YWluZXIgbG9jYXRpb24uCgpUbyBleGVjdXRlIGBtdm4gcGFja2FnZWA6CgpgYGBzaApnaXQgY2xvbmUgaHR0cHM6Ly9naXRodWIuY29tL29wZW5hcGl0b29scy9vcGVuYXBpLWdlbmVyYXRvcgpjZCBvcGVuYXBpLWdlbmVyYXRvcgouL3J1bi1pbi1kb2NrZXIuc2ggbXZuIHBhY2thZ2UKYGBgCgpCdWlsZCBhcnRpZmFjdHMgYXJlIG5vdyBhY2Nlc3NpYmxlIGluIHlvdXIgd29ya2luZyBkaXJlY3RvcnkuCgpPbmNlIGJ1aWx0LCBgcnVuLWluLWRvY2tlci5zaGAgd2lsbCBhY3QgYXMgYW4gZXhlY3V0YWJsZSBmb3Igb3BlbmFwaS1nZW5lcmF0b3ItY2xpLiBUbyBnZW5lcmF0ZSBjb2RlLCB5b3UnbGwgbmVlZCB0byBvdXRwdXQgdG8gYSBkaXJlY3RvcnkgdW5kZXIgYC9nZW5gIChlLmcuIGAvZ2VuL291dGApLiBGb3IgZXhhbXBsZToKCmBgYHNoCi4vcnVuLWluLWRvY2tlci5zaCBoZWxwICMgRXhlY3V0ZXMgJ2hlbHAnIGNvbW1hbmQgZm9yIG9wZW5hcGktZ2VuZXJhdG9yLWNsaQouL3J1bi1pbi1kb2NrZXIuc2ggbGlzdCAjIEV4ZWN1dGVzICdsaXN0JyBjb21tYW5kIGZvciBvcGVuYXBpLWdlbmVyYXRvci1jbGkKLi9ydW4taW4tZG9ja2VyLnNoIGdlbmVyYXRlIC1pIG1vZHVsZXMvb3BlbmFwaS1nZW5lcmF0b3Ivc3JjL3Rlc3QvcmVzb3VyY2VzLzNfMC9wZXRzdG9yZS55YW1sIFwKICAgIC1nIGdvIC1vIC9nZW4vb3V0L2dvLXBldHN0b3JlIC1wIHBhY2thZ2VOYW1lPXBldHN0b3JlICMgZ2VuZXJhdGVzIGdvIGNsaWVudCwgb3V0cHV0cyBsb2NhbGx5IHRvIC4vb3V0L2dvLXBldHN0b3JlCmBgYAoKIyMjIyMgVHJvdWJsZXNob290aW5nCgpJZiBhbiBlcnJvciBsaWtlIHRoaXMgb2NjdXJzLCBqdXN0IGV4ZWN1dGUgdGhlICoqLi9tdm53IGNsZWFuIGluc3RhbGwgLVUqKiBjb21tYW5kOgoKPiBvcmcuYXBhY2hlLm1hdmVuLmxpZmVjeWNsZS5MaWZlY3ljbGVFeGVjdXRpb25FeGNlcHRpb246IEZhaWxlZCB0byBleGVjdXRlIGdvYWwgb3JnLmFwYWNoZS5tYXZlbi5wbHVnaW5zOm1hdmVuLXN1cmVmaXJlLXBsdWdpbjoyLjE5LjE6dGVzdCAoZGVmYXVsdC10ZXN0KSBvbiBwcm9qZWN0IG9wZW5hcGktZ2VuZXJhdG9yOiBBIHR5cGUgaW5jb21wYXRpYmlsaXR5IG9jY3VycmVkIHdoaWxlIGV4ZWN1dGluZyBvcmcuYXBhY2hlLm1hdmVuLnBsdWdpbnM6bWF2ZW4tc3VyZWZpcmUtcGx1Z2luOjIuMTkuMTp0ZXN0OiBqYXZhLmxhbmcuRXhjZXB0aW9uSW5Jbml0aWFsaXplckVycm9yIGNhbm5vdCBiZSBjYXN0IHRvIGphdmEuaW8uSU9FeGNlcHRpb24KCmBgYHNoCi4vcnVuLWluLWRvY2tlci5zaCAuL212bncgY2xlYW4gaW5zdGFsbCAtVQpgYGAKCj4gRmFpbGVkIHRvIGV4ZWN1dGUgZ29hbCBvcmcuZm9ydGFzb2Z0OmdyYWRsZS1tYXZlbi1wbHVnaW46MS4wLjg6aW52b2tlIChkZWZhdWx0KSBvbiBwcm9qZWN0IG9wZW5hcGktZ2VuZXJhdG9yLWdyYWRsZS1wbHVnaW4tbXZuLXdyYXBwZXI6IG9yZy5ncmFkbGUudG9vbGluZy5CdWlsZEV4Y2VwdGlvbjogQ291bGQgbm90IGV4ZWN1dGUgYnVpbGQgdXNpbmcgR3JhZGxlIGRpc3RyaWJ1dGlvbiAnaHR0cHM6Ly9zZXJ2aWNlcy5ncmFkbGUub3JnL2Rpc3RyaWJ1dGlvbnMvZ3JhZGxlLTQuNy1iaW4uemlwJwoKUmlnaHQgbm93OiBubyBzb2x1dGlvbiBmb3IgdGhpcyBvbmUgOnwKCiMjIyMgUnVuIERvY2tlciBpbiBWYWdyYW50ClByZXJlcXVpc2l0ZTogaW5zdGFsbCBbVmFncmFudF0oaHR0cHM6Ly93d3cudmFncmFudHVwLmNvbS9kb3dubG9hZHMuaHRtbCkgYW5kIFtWaXJ0dWFsQm94XShodHRwczovL3d3dy52aXJ0dWFsYm94Lm9yZy93aWtpL0Rvd25sb2FkcykuCiBgYGBzaApnaXQgY2xvbmUgaHR0cHM6Ly9naXRodWIuY29tL29wZW5hcGl0b29scy9vcGVuYXBpLWdlbmVyYXRvci5naXQKY2Qgb3BlbmFwaS1nZW5lcmF0b3IKdmFncmFudCB1cAp2YWdyYW50IHNzaApjZCAvdmFncmFudAouL3J1bi1pbi1kb2NrZXIuc2ggLi9tdm53IHBhY2thZ2UKYGBgCgojIyMgWzEuNyAtIE5QTV0oI3RhYmxlLW9mLWNvbnRlbnRzKQoKVGhlcmUgaXMgYWxzbyBhbiBbTlBNIHBhY2thZ2Ugd3JhcHBlcl0oaHR0cHM6Ly93d3cubnBtanMuY29tL3BhY2thZ2UvQG9wZW5hcGl0b29scy9vcGVuYXBpLWdlbmVyYXRvci1jbGkpIGF2YWlsYWJsZSBmb3IgZGlmZmVyZW50IHBsYXRmb3JtcyAoZS5nLiBMaW51eCwgTWFjLCBXaW5kb3dzKS4gKEpWTSBpcyBzdGlsbCByZXF1aXJlZCkKUGxlYXNlIHNlZSB0aGUgW3Byb2plY3QncyBSRUFETUVdKGh0dHBzOi8vZ2l0aHViLmNvbS9vcGVuYXBpdG9vbHMvb3BlbmFwaS1nZW5lcmF0b3ItY2xpKSB0aGVyZSBmb3IgbW9yZSBpbmZvcm1hdGlvbi4KCkluc3RhbGwgaXQgZ2xvYmFsbHkgdG8gZ2V0IHRoZSBDTEkgYXZhaWxhYmxlIG9uIHRoZSBjb21tYW5kIGxpbmU6CgpgYGBzaApucG0gaW5zdGFsbCBAb3BlbmFwaXRvb2xzL29wZW5hcGktZ2VuZXJhdG9yLWNsaSAtZwpvcGVuYXBpLWdlbmVyYXRvci1jbGkgdmVyc2lvbgpgYGAKCjwhLS0gUkVMRUFTRV9WRVJTSU9OIC0tPgpUbyB1c2UgYSBzcGVjaWZpYyB2ZXJzaW9uIG9mICJvcGVuYXBpLWdlbmVyYXRvci1jbGkiCgpgYGBzaApvcGVuYXBpLWdlbmVyYXRvci1jbGkgdmVyc2lvbi1tYW5hZ2VyIHNldCA3LjkuMApgYGAKCk9yIGluc3RhbGwgaXQgYXMgZGV2LWRlcGVuZGVuY3k6CgpgYGBzaApucG0gaW5zdGFsbCBAb3BlbmFwaXRvb2xzL29wZW5hcGktZ2VuZXJhdG9yLWNsaSAtRApgYGAKPCEtLSAvUkVMRUFTRV9WRVJTSU9OIC0tPgoKWW91IGNhbiB1c2UgW2xvY2FsbHkgYnVpbHQgSkFSc10oaHR0cHM6Ly9naXRodWIuY29tL09wZW5BUElUb29scy9vcGVuYXBpLWdlbmVyYXRvci1jbGk/dGFiPXJlYWRtZS1vdi1maWxlI3VzZS1sb2NhbGx5LWJ1aWx0LWphcikgb3IgW2BTTkFQU0hPVGAgdmVyc2lvbnNdKGh0dHBzOi8vZ2l0aHViLmNvbS9PcGVuQVBJVG9vbHMvb3BlbmFwaS1nZW5lcmF0b3ItY2xpP3RhYj1yZWFkbWUtb3YtZmlsZSN1c2UtbmlnaHRseS1zbmFwc2hvdC1idWlsZCkgYXMgd2VsbC4KCiMjIFsyIC0gR2V0dGluZyBTdGFydGVkXSgjdGFibGUtb2YtY29udGVudHMpCgpUbyBnZW5lcmF0ZSBhIFBIUCBjbGllbnQgZm9yIFtwZXRzdG9yZS55YW1sXShodHRwczovL3Jhdy5naXRodWJ1c2VyY29udGVudC5jb20vb3BlbmFwaXRvb2xzL29wZW5hcGktZ2VuZXJhdG9yL21hc3Rlci9tb2R1bGVzL29wZW5hcGktZ2VuZXJhdG9yL3NyYy90ZXN0L3Jlc291cmNlcy8zXzAvcGV0c3RvcmUueWFtbCksIHBsZWFzZSBydW4gdGhlIGZvbGxvd2luZwpgYGBzaApnaXQgY2xvbmUgaHR0cHM6Ly9naXRodWIuY29tL29wZW5hcGl0b29scy9vcGVuYXBpLWdlbmVyYXRvcgpjZCBvcGVuYXBpLWdlbmVyYXRvcgouL212bncgY2xlYW4gcGFja2FnZQpqYXZhIC1qYXIgbW9kdWxlcy9vcGVuYXBpLWdlbmVyYXRvci1jbGkvdGFyZ2V0L29wZW5hcGktZ2VuZXJhdG9yLWNsaS5qYXIgZ2VuZXJhdGUgXAogICAtaSBodHRwczovL3Jhdy5naXRodWJ1c2VyY29udGVudC5jb20vb3BlbmFwaXRvb2xzL29wZW5hcGktZ2VuZXJhdG9yL21hc3Rlci9tb2R1bGVzL29wZW5hcGktZ2VuZXJhdG9yL3NyYy90ZXN0L3Jlc291cmNlcy8zXzAvcGV0c3RvcmUueWFtbCBcCiAgIC1nIHBocCBcCiAgIC1vIC92YXIvdG1wL3BocF9hcGlfY2xpZW50CmBgYAooaWYgeW91J3JlIG9uIFdpbmRvd3MsIHJlcGxhY2UgdGhlIGxhc3QgY29tbWFuZCB3aXRoIGBqYXZhIC1qYXIgbW9kdWxlc1xvcGVuYXBpLWdlbmVyYXRvci1jbGlcdGFyZ2V0XG9wZW5hcGktZ2VuZXJhdG9yLWNsaS5qYXIgZ2VuZXJhdGUgLWkgaHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL29wZW5hcGl0b29scy9vcGVuYXBpLWdlbmVyYXRvci9tYXN0ZXIvbW9kdWxlcy9vcGVuYXBpLWdlbmVyYXRvci9zcmMvdGVzdC9yZXNvdXJjZXMvM18wL3BldHN0b3JlLnlhbWwgLWcgcGhwIC1vIGM6XHRlbXBccGhwX2FwaV9jbGllbnRgKQoKPCEtLSBSRUxFQVNFX1ZFUlNJT04gLS0+CllvdSBjYW4gYWxzbyBkb3dubG9hZCB0aGUgSkFSIChsYXRlc3QgcmVsZWFzZSkgZGlyZWN0bHkgZnJvbSBbbWF2ZW4ub3JnXShodHRwczovL3JlcG8xLm1hdmVuLm9yZy9tYXZlbjIvb3JnL29wZW5hcGl0b29scy9vcGVuYXBpLWdlbmVyYXRvci1jbGkvNy45LjAvb3BlbmFwaS1nZW5lcmF0b3ItY2xpLTcuOS4wLmphcikKPCEtLSAvUkVMRUFTRV9WRVJTSU9OIC0tPgoKVG8gZ2V0IGEgbGlzdCBvZiAqKmdlbmVyYWwqKiBvcHRpb25zIGF2YWlsYWJsZSwgcGxlYXNlIHJ1biBgamF2YSAtamFyIG1vZHVsZXMvb3BlbmFwaS1nZW5lcmF0b3ItY2xpL3RhcmdldC9vcGVuYXBpLWdlbmVyYXRvci1jbGkuamFyIGhlbHAgZ2VuZXJhdGVgCgpUbyBnZXQgYSBsaXN0IG9mIFBIUCBzcGVjaWZpZWQgb3B0aW9ucyAod2hpY2ggY2FuIGJlIHBhc3NlZCB0byB0aGUgZ2VuZXJhdG9yIHdpdGggYSBjb25maWcgZmlsZSB2aWEgdGhlIGAtY2Agb3B0aW9uKSwgcGxlYXNlIHJ1biBgamF2YSAtamFyIG1vZHVsZXMvb3BlbmFwaS1nZW5lcmF0b3ItY2xpL3RhcmdldC9vcGVuYXBpLWdlbmVyYXRvci1jbGkuamFyIGNvbmZpZy1oZWxwIC1nIHBocGAKCiMjIFszIC0gVXNhZ2VdKCN0YWJsZS1vZi1jb250ZW50cykKCiMjIyBUbyBnZW5lcmF0ZSBhIHNhbXBsZSBjbGllbnQgbGlicmFyeQpZb3UgY2FuIGJ1aWxkIGEgY2xpZW50IGFnYWluc3QgdGhlIFtQZXRzdG9yZSBBUEldKGh0dHBzOi8vcmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbS9vcGVuYXBpdG9vbHMvb3BlbmFwaS1nZW5lcmF0b3IvbWFzdGVyL21vZHVsZXMvb3BlbmFwaS1nZW5lcmF0b3Ivc3JjL3Rlc3QvcmVzb3VyY2VzLzNfMC9wZXRzdG9yZS55YW1sKSBhcyBmb2xsb3dzOgoKYGBgc2gKLi9iaW4vZ2VuZXJhdGUtc2FtcGxlcy5zaCAuL2Jpbi9jb25maWdzL2phdmEtb2todHRwLWdzb24ueWFtbApgYGAKCihPbiBXaW5kb3dzLCBwbGVhc2UgaW5zdGFsbCBbR0lUIEJhc2ggZm9yIFdpbmRvd3NdKGh0dHBzOi8vZ2l0Zm9yd2luZG93cy5vcmcvKSB0byBydW4gdGhlIGNvbW1hbmQgYWJvdmUpCgpUaGlzIHNjcmlwdCB1c2VzIHRoZSBkZWZhdWx0IGxpYnJhcnksIHdoaWNoIGlzIGBva2h0dHAtZ3NvbmAuIEl0IHdpbGwgcnVuIHRoZSBnZW5lcmF0b3Igd2l0aCB0aGlzIGNvbW1hbmQ6CgpgYGBzaApqYXZhIC1qYXIgbW9kdWxlcy9vcGVuYXBpLWdlbmVyYXRvci1jbGkvdGFyZ2V0L29wZW5hcGktZ2VuZXJhdG9yLWNsaS5qYXIgZ2VuZXJhdGUgXAogIC1pIGh0dHBzOi8vcmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbS9vcGVuYXBpdG9vbHMvb3BlbmFwaS1nZW5lcmF0b3IvbWFzdGVyL21vZHVsZXMvb3BlbmFwaS1nZW5lcmF0b3Ivc3JjL3Rlc3QvcmVzb3VyY2VzLzNfMC9wZXRzdG9yZS55YW1sIFwKICAtZyBqYXZhIFwKICAtdCBtb2R1bGVzL29wZW5hcGktZ2VuZXJhdG9yL3NyYy9tYWluL3Jlc291cmNlcy9KYXZhIFwKICAtLWFkZGl0aW9uYWwtcHJvcGVydGllcyBhcnRpZmFjdElkPXBldHN0b3JlLW9raHR0cC1nc29uLGhpZGVHZW5lcmF0aW9uVGltZXN0YW1wPXRydWUgXAogIC1vIHNhbXBsZXMvY2xpZW50L3BldHN0b3JlL2phdmEvb2todHRwLWdzb24KYGBgCgp3aXRoIGEgbnVtYmVyIG9mIG9wdGlvbnMuIFtUaGUgamF2YSBvcHRpb25zIGFyZSBkb2N1bWVudGVkIGhlcmUuXShkb2NzL2dlbmVyYXRvcnMvamF2YS5tZCkKCllvdSBjYW4gYWxzbyBnZXQgdGhlIG9wdGlvbnMgd2l0aCB0aGUgYGhlbHAgZ2VuZXJhdGVgIGNvbW1hbmQgKGJlbG93IG9ubHkgc2hvd3MgcGFydGlhbCByZXN1bHRzKToKCmBgYApOQU1FCiAgICAgICAgb3BlbmFwaS1nZW5lcmF0b3ItY2xpIGdlbmVyYXRlIC0gR2VuZXJhdGUgY29kZSB3aXRoIHRoZSBzcGVjaWZpZWQKICAgICAgICBnZW5lcmF0b3IuCgpTWU5PUFNJUwogICAgICAgIG9wZW5hcGktZ2VuZXJhdG9yLWNsaSBnZW5lcmF0ZQogICAgICAgICAgICAgICAgWygtYSA8YXV0aG9yaXphdGlvbj4gfCAtLWF1dGggPGF1dGhvcml6YXRpb24+KV0KICAgICAgICAgICAgICAgIFstLWFwaS1uYW1lLXN1ZmZpeCA8YXBpIG5hbWUgc3VmZml4Pl0gWy0tYXBpLXBhY2thZ2UgPGFwaSBwYWNrYWdlPl0KICAgICAgICAgICAgICAgIFstLWFydGlmYWN0LWlkIDxhcnRpZmFjdCBpZD5dIFstLWFydGlmYWN0LXZlcnNpb24gPGFydGlmYWN0IHZlcnNpb24+XQogICAgICAgICAgICAgICAgWygtYyA8Y29uZmlndXJhdGlvbiBmaWxlPiB8IC0tY29uZmlnIDxjb25maWd1cmF0aW9uIGZpbGU+KV0gWy0tZHJ5LXJ1bl0KICAgICAgICAgICAgICAgIFsoLWUgPHRlbXBsYXRpbmcgZW5naW5lPiB8IC0tZW5naW5lIDx0ZW1wbGF0aW5nIGVuZ2luZT4pXQogICAgICAgICAgICAgICAgWy0tZW5hYmxlLXBvc3QtcHJvY2Vzcy1maWxlXQogICAgICAgICAgICAgICAgWygtZyA8Z2VuZXJhdG9yIG5hbWU+IHwgLS1nZW5lcmF0b3ItbmFtZSA8Z2VuZXJhdG9yIG5hbWU+KV0KICAgICAgICAgICAgICAgIFstLWdlbmVyYXRlLWFsaWFzLWFzLW1vZGVsXSBbLS1naXQtaG9zdCA8Z2l0IGhvc3Q+XQogICAgICAgICAgICAgICAgWy0tZ2l0LXJlcG8taWQgPGdpdCByZXBvIGlkPl0gWy0tZ2l0LXVzZXItaWQgPGdpdCB1c2VyIGlkPl0KICAgICAgICAgICAgICAgIFstLWdsb2JhbC1wcm9wZXJ0eSA8Z2xvYmFsIHByb3BlcnRpZXM+Li4uXSBbLS1ncm91cC1pZCA8Z3JvdXAgaWQ+XQogICAgICAgICAgICAgICAgWy0taHR0cC11c2VyLWFnZW50IDxodHRwIHVzZXIgYWdlbnQ+XQogICAgICAgICAgICAgICAgWygtaSA8c3BlYyBmaWxlPiB8IC0taW5wdXQtc3BlYyA8c3BlYyBmaWxlPildCiAgICAgICAgICAgICAgICBbLS1pZ25vcmUtZmlsZS1vdmVycmlkZSA8aWdub3JlIGZpbGUgb3ZlcnJpZGUgbG9jYXRpb24+XQogICAgICAgICAgICAgICAgWy0taW1wb3J0LW1hcHBpbmdzIDxpbXBvcnQgbWFwcGluZ3M+Li4uXQogICAgICAgICAgICAgICAgWy0taW5zdGFudGlhdGlvbi10eXBlcyA8aW5zdGFudGlhdGlvbiB0eXBlcz4uLi5dCiAgICAgICAgICAgICAgICBbLS1pbnZva2VyLXBhY2thZ2UgPGludm9rZXIgcGFja2FnZT5dCiAgICAgICAgICAgICAgICBbLS1sYW5ndWFnZS1zcGVjaWZpYy1wcmltaXRpdmVzIDxsYW5ndWFnZSBzcGVjaWZpYyBwcmltaXRpdmVzPi4uLl0KICAgICAgICAgICAgICAgIFstLWxlZ2FjeS1kaXNjcmltaW5hdG9yLWJlaGF2aW9yXSBbLS1saWJyYXJ5IDxsaWJyYXJ5Pl0KICAgICAgICAgICAgICAgIFstLWxvZy10by1zdGRlcnJdIFstLW1pbmltYWwtdXBkYXRlXQogICAgICAgICAgICAgICAgWy0tbW9kZWwtbmFtZS1wcmVmaXggPG1vZGVsIG5hbWUgcHJlZml4Pl0KICAgICAgICAgICAgICAgIFstLW1vZGVsLW5hbWUtc3VmZml4IDxtb2RlbCBuYW1lIHN1ZmZpeD5dCiAgICAgICAgICAgICAgICBbLS1tb2RlbC1wYWNrYWdlIDxtb2RlbCBwYWNrYWdlPl0KICAgICAgICAgICAgICAgIFsoLW8gPG91dHB1dCBkaXJlY3Rvcnk+IHwgLS1vdXRwdXQgPG91dHB1dCBkaXJlY3Rvcnk+KV0gWygtcCA8YWRkaXRpb25hbCBwcm9wZXJ0aWVzPiB8IC0tYWRkaXRpb25hbC1wcm9wZXJ0aWVzIDxhZGRpdGlvbmFsIHByb3BlcnRpZXM+KS4uLl0KICAgICAgICAgICAgICAgIFstLXBhY2thZ2UtbmFtZSA8cGFja2FnZSBuYW1lPl0gWy0tcmVsZWFzZS1ub3RlIDxyZWxlYXNlIG5vdGU+XQogICAgICAgICAgICAgICAgWy0tcmVtb3ZlLW9wZXJhdGlvbi1pZC1wcmVmaXhdCiAgICAgICAgICAgICAgICBbLS1yZXNlcnZlZC13b3Jkcy1tYXBwaW5ncyA8cmVzZXJ2ZWQgd29yZCBtYXBwaW5ncz4uLi5dCiAgICAgICAgICAgICAgICBbKC1zIHwgLS1za2lwLW92ZXJ3cml0ZSldIFstLXNlcnZlci12YXJpYWJsZXMgPHNlcnZlciB2YXJpYWJsZXM+Li4uXQogICAgICAgICAgICAgICAgWy0tc2tpcC12YWxpZGF0ZS1zcGVjXSBbLS1zdHJpY3Qtc3BlYyA8dHJ1ZS9mYWxzZSBzdHJpY3QgYmVoYXZpb3I+XQogICAgICAgICAgICAgICAgWygtdCA8dGVtcGxhdGUgZGlyZWN0b3J5PiB8IC0tdGVtcGxhdGUtZGlyIDx0ZW1wbGF0ZSBkaXJlY3Rvcnk+KV0KICAgICAgICAgICAgICAgIFstLXR5cGUtbWFwcGluZ3MgPHR5cGUgbWFwcGluZ3M+Li4uXSBbKC12IHwgLS12ZXJib3NlKV0KCk9QVElPTlMKICAgICAgICAtYSA8YXV0aG9yaXphdGlvbj4sIC0tYXV0aCA8YXV0aG9yaXphdGlvbj4KICAgICAgICAgICAgYWRkcyBhdXRob3JpemF0aW9uIGhlYWRlcnMgd2hlbiBmZXRjaGluZyB0aGUgT3BlbkFQSSBkZWZpbml0aW9ucwogICAgICAgICAgICByZW1vdGVseS4gUGFzcyBpbiBhIFVSTC1lbmNvZGVkIHN0cmluZyBvZiBuYW1lOmhlYWRlciB3aXRoIGEgY29tbWEKICAgICAgICAgICAgc2VwYXJhdGluZyBtdWx0aXBsZSB2YWx1ZXMKCi4uLi4uLiAocmVzdWx0cyBvbWl0dGVkKQoKICAgICAgICAtdiwgLS12ZXJib3NlCiAgICAgICAgICAgIHZlcmJvc2UgbW9kZQoKYGBgCgpZb3UgY2FuIHRoZW4gY29tcGlsZSBhbmQgcnVuIHRoZSBjbGllbnQsIGFzIHdlbGwgYXMgdW5pdCB0ZXN0cyBhZ2FpbnN0IGl0OgoKYGBgc2gKY2Qgc2FtcGxlcy9jbGllbnQvcGV0c3RvcmUvamF2YS9va2h0dHAtZ3Nvbgptdm4gcGFja2FnZQpgYGAKCk90aGVyIGdlbmVyYXRvcnMgaGF2ZSBbc2FtcGxlc10oaHR0cHM6Ly9naXRodWIuY29tL09wZW5BUElUb29scy9vcGVuYXBpLWdlbmVyYXRvci90cmVlL21hc3Rlci9zYW1wbGVzKSB0b28uCgojIyMgWzMuMSAtIEN1c3RvbWl6YXRpb25dKCN0YWJsZS1vZi1jb250ZW50cykKClBsZWFzZSByZWZlciB0byBbY3VzdG9taXphdGlvbi5tZF0oZG9jcy9jdXN0b21pemF0aW9uLm1kKSBvbiBob3cgdG8gY3VzdG9taXplIHRoZSBvdXRwdXQgKGUuZy4gcGFja2FnZSBuYW1lLCB2ZXJzaW9uKQoKIyMjIFszLjIgLSBXb3JrZmxvdyBJbnRlZ3JhdGlvbiAoTWF2ZW4sIEdyYWRsZSwgR2l0aHViLCBDSS9DRCldKCN0YWJsZS1vZi1jb250ZW50cykKClBsZWFzZSByZWZlciB0byBbaW50ZWdyYXRpb24ubWRdKGRvY3MvaW50ZWdyYXRpb24ubWQpIG9uIGhvdyB0byBpbnRlZ3JhdGUgT3BlbkFQSSBnZW5lcmF0b3Igd2l0aCBNYXZlbiwgR3JhZGxlLCBzYnQsIEJhemVsLCBHaXRodWIgYW5kIENJL0NELgoKIyMjIFszLjMgLSBPbmxpbmUgT3BlbkFQSSBnZW5lcmF0b3JdKCN0YWJsZS1vZi1jb250ZW50cykKCkhlcmUgYXJlIHRoZSBwdWJsaWMgb25saW5lIHNlcnZpY2VzOgoKLSBsYXRlc3Qgc3RhYmxlIHZlcnNpb246IGh0dHBzOi8vYXBpLm9wZW5hcGktZ2VuZXJhdG9yLnRlY2gKLSBsYXRlc3QgbWFzdGVyOiBodHRwczovL2FwaS1sYXRlc3QtbWFzdGVyLm9wZW5hcGktZ2VuZXJhdG9yLnRlY2ggKHVwZGF0ZWQgd2l0aCBsYXRlc3QgbWFzdGVyIGV2ZXJ5IGhvdXIpCgpUaGUgc2VydmVyIGlzIHNwb25zb3JlZCBieSBbTGlub2RlXShodHRwczovL3d3dy5saW5vZGUuY29tLykgWyFbTGlub2RlIExvZ29dKGh0dHBzOi8vd3d3Lmxpbm9kZS5jb20vbWVkaWEvaW1hZ2VzL2xvZ29zL3N0YW5kYXJkL2xpZ2h0L2xpbm9kZS1sb2dvX3N0YW5kYXJkX2xpZ2h0X3NtYWxsLnBuZyldKGh0dHBzOi8vd3d3Lmxpbm9kZS5jb20vKQoKKFRoZXNlIHNlcnZpY2VzIGFyZSBiZXRhIGFuZCBkbyBub3QgaGF2ZSBhbnkgZ3VhcmFudGVlIG9uIHNlcnZpY2UgbGV2ZWwpCgpQbGVhc2UgcmVmZXIgdG8gW29ubGluZS5tZF0oZG9jcy9vbmxpbmUubWQpIG9uIGhvdyB0byBydW4gYW5kIHVzZSB0aGUgYG9wZW5hcGktZ2VuZXJhdG9yLW9ubGluZWAgLSBhIHdlYiBzZXJ2aWNlIGZvciBgb3BlbmFwaS1nZW5lcmF0b3JgLgoKIyMjIFszLjQgLSBMaWNlbnNlIGluZm9ybWF0aW9uIG9uIEdlbmVyYXRlZCBDb2RlXSgjdGFibGUtb2YtY29udGVudHMpCgpUaGUgT3BlbkFQSSBHZW5lcmF0b3IgcHJvamVjdCBpcyBpbnRlbmRlZCBhcyBhIGJlbmVmaXQgZm9yIHVzZXJzIG9mIHRoZSBPcGVuIEFQSSBTcGVjaWZpY2F0aW9uLiAgVGhlIHByb2plY3QgaXRzZWxmIGhhcyB0aGUgW0xpY2Vuc2VdKCM3LS0tbGljZW5zZSkgYXMgc3BlY2lmaWVkLiBJbiBhZGRpdGlvbiwgcGxlYXNlIHVuZGVyc3RhbmQgdGhlIGZvbGxvd2luZyBwb2ludHM6CgoqIFRoZSB0ZW1wbGF0ZXMgaW5jbHVkZWQgd2l0aCB0aGlzIHByb2plY3QgYXJlIHN1YmplY3QgdG8gdGhlIFtMaWNlbnNlXSgjNy0tLWxpY2Vuc2UpLgoqIEdlbmVyYXRlZCBjb2RlIGlzIGludGVudGlvbmFsbHkgX25vdF8gc3ViamVjdCB0byB0aGUgcGFyZW50IHByb2plY3QgbGljZW5zZQoKV2hlbiBjb2RlIGlzIGdlbmVyYXRlZCBmcm9tIHRoaXMgcHJvamVjdCwgaXQgc2hhbGwgYmUgY29uc2lkZXJlZCAqKkFTIElTKiogYW5kIG93bmVkIGJ5IHRoZSB1c2VyIG9mIHRoZSBzb2Z0d2FyZS4gIFRoZXJlIGFyZSBubyB3YXJyYW50aWVzLS1leHByZXNzZWQgb3IgaW1wbGllZC0tZm9yIGdlbmVyYXRlZCBjb2RlLiAgWW91IGNhbiBkbyB3aGF0IHlvdSB3aXNoIHdpdGggaXQsIGFuZCBvbmNlIGdlbmVyYXRlZCwgdGhlIGNvZGUgaXMgeW91ciByZXNwb25zaWJpbGl0eSBhbmQgc3ViamVjdCB0byB0aGUgbGljZW5zaW5nIHRlcm1zIHRoYXQgeW91IGRlZW0gYXBwcm9wcmlhdGUuCgojIyMgWzMuNSAtIElERSBJbnRlZ3JhdGlvbl0oI3RhYmxlLW9mLWNvbnRlbnRzKQoKSGVyZSBpcyBhIGxpc3Qgb2YgY29tbXVuaXR5LWNvbnRyaWJ1dGVkIElERSBwbHVnLWlucyB0aGF0IGludGVncmF0ZSB3aXRoIE9wZW5BUEkgR2VuZXJhdG9yOgoKLSBFY2xpcHNlOiBbQ29kZXdpbmQgT3BlbkFQSSBUb29scyBmb3IgRWNsaXBzZV0oaHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvY29kZXdpbmQvb3Blbi1hcGktdG9vbHMtZm9yLWVjbGlwc2UuaHRtbCkgYnkgW0lCTV0oaHR0cHM6Ly93d3cuaWJtLmNvbSkKLSBJbnRlbGxpSiBJREVBOiBbT3BlbkFQSSBHZW5lcmF0b3JdKGh0dHBzOi8vcGx1Z2lucy5qZXRicmFpbnMuY29tL3BsdWdpbi84NDMzLW9wZW5hcGktZ2VuZXJhdG9yKSBieSBbSmltIFNjaHViZXJ0XShodHRwczovL2ppbXNjaHViZXJ0LnVzLyMvKQotIEludGVsbGlKIElERUE6IFtTZW55YSBFZGl0b3JdKGh0dHBzOi8vcGx1Z2lucy5qZXRicmFpbnMuY29tL3BsdWdpbi8xMDY5MC1zZW55YS1lZGl0b3IpIGJ5IFtzZW55YS5pb10oaHR0cHM6Ly9zZW55YS5pbykKLSBbUmVwcmVaZW4gQVBJIFN0dWRpb10oaHR0cHM6Ly93d3cucmVwcmV6ZW4uY29tLykKLSBWaXN1YWwgU3R1ZGlvOiBbUkVTVCBBUEkgQ2xpZW50IENvZGUgR2VuZXJhdG9yXShodHRwczovL21hcmtldHBsYWNlLnZpc3VhbHN0dWRpby5jb20vaXRlbXM/aXRlbU5hbWU9Q2hyaXN0aWFuUmVzbWFIZWxsZS5BcGlDbGllbnRDb2RlR2VuZXJhdG9yKSBieSBbQ2hyaXN0aWFuIFJlc21hIEhlbGxlXShodHRwczovL2NocmlzdGlhbi1oZWxsZS5ibG9nc3BvdC5jb20vKQotIFZpc3VhbCBTdHVkaW8gQ29kZTogW0NvZGV3aW5kIE9wZW5BUEkgVG9vbHNdKGh0dHBzOi8vbWFya2V0cGxhY2UudmlzdWFsc3R1ZGlvLmNvbS9pdGVtcz9pdGVtTmFtZT1JQk0uY29kZXdpbmQtb3BlbmFwaS10b29scykgYnkgW0lCTV0oaHR0cHM6Ly9tYXJrZXRwbGFjZS52aXN1YWxzdHVkaW8uY29tL3B1Ymxpc2hlcnMvSUJNKQoKCiMjIFs0IC0gQ29tcGFuaWVzL1Byb2plY3RzIHVzaW5nIE9wZW5BUEkgR2VuZXJhdG9yXSgjdGFibGUtb2YtY29udGVudHMpCkhlcmUgYXJlIHNvbWUgY29tcGFuaWVzL3Byb2plY3RzIChhbHBoYWJldGljYWwgb3JkZXIpIHVzaW5nIE9wZW5BUEkgR2VuZXJhdG9yIGluIHByb2R1Y3Rpb24uIFRvIGFkZCB5b3VyIGNvbXBhbnkvcHJvamVjdCB0byB0aGUgbGlzdCwgcGxlYXNlIHZpc2l0IFtSRUFETUUubWRdKFJFQURNRS5tZCkgYW5kIGNsaWNrIG9uIHRoZSBpY29uIHRvIGVkaXQgdGhlIHBhZ2UuCgotIFtBYWxib3JnIFVuaXZlcnNpdHldKGh0dHBzOi8vd3d3LmFhdS5kaykKLSBbYWN0IGNvZGluZ10oaHR0cHM6Ly9naXRodWIuY29tL2FjdGNvZGluZykKLSBbQWRhcHRhbnQgU29sdXRpb25zIEFHXShodHRwczovL3d3dy5hZGFwdGFudC5pby8pCi0gW2FkZXNzbyBTRV0oaHR0cHM6Ly93d3cuYWRlc3NvLmRlLykKLSBbQWR5ZW5dKGh0dHBzOi8vd3d3LmFkeWVuLmNvbS8pCi0gW0Fnb2RhXShodHRwczovL3d3dy5hZ29kYS5jb20vKQotIFtBaXJ0aGluZ3NdKGh0dHBzOi8vd3d3LmFpcnRoaW5ncy5jb20vKQotIFtBbGVyaSBTb2x1dGlvbnMgR21iaF0oaHR0cHM6Ly93d3cuYWxlcmkuZGUvKQotIFtBbGxpYW56XShodHRwczovL3d3dy5hbGxpYW56LmNvbSkKLSBbQW5ndWxhci5TY2h1bGVdKGh0dHBzOi8vYW5ndWxhci5zY2h1bGUvKQotIFtBcW92aWFdKGh0dHBzOi8vYXFvdmlhLmNvbS8pCi0gW0F1c3RyYWxpYSBhbmQgTmV3IFplYWxhbmQgQmFua2luZyBHcm91cCAoQU5aKV0oaHR0cDovL3d3dy5hbnouY29tLykKLSBbQXJkdWlub10oaHR0cHM6Ly93d3cuYXJkdWluby5jYy8pCi0gW0FTS1VMXShodHRwczovL3d3dy5hc2t1bC5jby5qcCkKLSBbQW1hem9uIFdlYiBTZXJ2aWNlcyAoQVdTKV0oaHR0cHM6Ly9hd3MuYW1hem9uLmNvbS8pCi0gW2I8PmNvbV0oaHR0cHM6Ly9iLWNvbS5jb20vZW4pCi0gW+eZvuW6puiQpemUgF0oaHR0cHM6Ly9lLmJhaWR1LmNvbSkKLSBbQmFuZHdpZHRoXShodHRwczovL2Rldi5iYW5kd2lkdGguY29tKQotIFtCYW56YWkgQ2xvdWRdKGh0dHBzOi8vYmFuemFpY2xvdWQuY29tKQotIFtCSU1EYXRhLmlvXShodHRwczovL2JpbWRhdGEuaW8pCi0gW0JpdGhvc3QgR21iSF0oaHR0cHM6Ly93d3cuYml0aG9zdC5jaCkKLSBbQm9zY2ggQ29ubmVjdGVkIEluZHVzdHJ5XShodHRwczovL3d3dy5ib3NjaC1jb25uZWN0ZWQtaW5kdXN0cnkuY29tKQotIFtCb3hldmVyXShodHRwczovL3d3dy5ib3hldmVyLmNvbS8pCi0gW0JyZXZ5XShodHRwczovL3d3dy5icmV2eS5jb20pCi0gW0J1bmtlciBIb2xkaW5nIEdyb3VwXShodHRwczovL3d3dy5idW5rZXItaG9sZGluZy5jb20vKQotIFtDYWxpZm9ybmlhIFN0YXRlIFVuaXZlcnNpdHksIE5vcnRocmlkZ2VdKGh0dHBzOi8vd3d3LmNzdW4uZWR1KQotIFtDQU1dKGh0dHBzOi8vd3d3LmNhbS1pbmMuY28uanAvKQotIFtDYW1wdG9jYW1wXShodHRwczovL3d3dy5jYW1wdG9jYW1wLmNvbS9lbikKLSBbQ2FybHNiZXJnIEdyb3VwXShodHRwczovL3d3dy5jYXJsc2Jlcmdncm91cC5jb20vKQotIFtDRVJOXShodHRwczovL2hvbWUuY2Vybi8pCi0gW0NocmlzdG9waGVyIFF1ZWVuIENvbnN1bHRpbmddKGh0dHBzOi8vd3d3LmNocmlzdG9waGVycXVlZW5jb25zdWx0aW5nLmNvbS8pCi0gW0Npc2NvXShodHRwczovL3d3dy5jaXNjby5jb20vKQotIFtjb2RlY2VudHJpYyBBR10oaHR0cHM6Ly93d3cuY29kZWNlbnRyaWMuZGUvKQotIFtDb2luQVBJXShodHRwczovL3d3dy5jb2luYXBpLmlvLykKLSBbQ29tbWVuY2lzXShodHRwczovL3d3dy5jb21tZW5jaXMuY29tLykKLSBbQ29uZmlnQ2F0XShodHRwczovL2NvbmZpZ2NhdC5jb20vKQotIFtjcm9ubiBHbWJIXShodHRwczovL3d3dy5jcm9ubi5kZS8pCi0gW0Nyb3Nzb3ZlciBIZWFsdGhdKGh0dHBzOi8vY3Jvc3NvdmVyaGVhbHRoLmNvbS8pCi0gW0N1cGl4XShodHRwczovL3d3dy5jdXBpeC5jb20vKQotIFtEYXRhZG9nXShodHRwczovL3d3dy5kYXRhZG9naHEuY29tKQotIFtEQiBTeXN0ZWxdKGh0dHBzOi8vd3d3LmRic3lzdGVsLmRlKQotIFtEZWVwb3J1dGUuYWldKGh0dHBzOi8vd3d3LmRlZXByb3V0ZS5haS8pCi0gW0RldnN1cHBseV0oaHR0cHM6Ly93d3cuZGV2c3VwcGx5LmNvbS8pCi0gW2RtVEVDSCBHbWJIXShodHRwczovL3d3dy5kbVRFQ0guZGUpCi0gW0RvY1NwcmluZ10oaHR0cHM6Ly9kb2NzcHJpbmcuY29tLykKLSBbZHdhbmdvXShodHRwczovL2R3YW5nby5jby5qcC8pCi0gW0VkZ2UgSW1wdWxzZV0oaHR0cHM6Ly93d3cuZWRnZWltcHVsc2UuY29tLykKLSBbRWxlbWVudCBBSV0oaHR0cHM6Ly93d3cuZWxlbWVudGFpLmNvbS8pCi0gW0VtYm90aWNzXShodHRwczovL3d3dy5lbWJvdGljcy5jb20vKQotIFtlbWluZW9dKGh0dHBzOi8vd3d3LmVtaW5lby5jaCkKLSBbZmFzdGx5XShodHRwczovL3d3dy5mYXN0bHkuY29tLykKLSBbRmVuZXJnb10oaHR0cHM6Ly93d3cuZmVuZXJnby5jb20vKQotIFtmcmVlZV0oaHR0cHM6Ly9jb3JwLmZyZWVlLmNvLmpwL2VuLykKLSBbRnJlc2hDZWxsc10oaHR0cHM6Ly93d3cuZnJlc2hjZWxscy5kZS8pCi0gW0Z1c2VdKGh0dHBzOi8vd3d3LmZ1c2Uubm8vKQotIFtHYW50bmVyXShodHRwczovL3d3dy5nYW50bmVyLmNvbSkKLSBbR2VuRmxvd10oaHR0cHM6Ly9naXRodWIuY29tL1JlcHJlWmVuL0dlbkZsb3cpCi0gW0dldFlvdXJHdWlkZV0oaHR0cHM6Ly93d3cuZ2V0eW91cmd1aWRlLmNvbS8pCi0gW0dsb3ZvXShodHRwczovL2dsb3ZvYXBwLmNvbS8pCi0gW0dNTyBQZXBhYm9dKGh0dHBzOi8vcGVwYWJvLmNvbS9lbi8pCi0gW0dvRGFkZHldKGh0dHBzOi8vZ29kYWRkeS5jb20pCi0gW0d1bXRyZWVdKGh0dHBzOi8vZ3VtdHJlZS5jb20pCi0gW0hlcmVdKGh0dHBzOi8vZGV2ZWxvcGVyLmhlcmUuY29tLykKLSBbSUJNXShodHRwczovL3d3dy5pYm0uY29tLykKLSBbSW5zdGFuYV0oaHR0cHM6Ly93d3cuaW5zdGFuYS5jb20pCi0gW0ludGVyeGlvbl0oaHR0cHM6Ly93d3cuaW50ZXJ4aW9uLmNvbSkKLSBbSW5xdWlzaWNvXShodHRwczovL2lucXVpc2ljby5jb20pCi0gW0p1c3RTdGFyXShodHRwczovL3d3dy5qdXN0c3RhcmluZm8uY29tKQotIFtrNi5pb10oaHR0cHM6Ly9rNi5pby8pCi0gW0tsYXJuYV0oaHR0cHM6Ly93d3cua2xhcm5hLmNvbS8pCi0gW0tyb25zb2Z0IERldmVsb3BtZW50XShodHRwczovL3d3dy5rcm9uc29mdC5yby9ob21lLykKLSBbS3ViZXJuZXRlc10oaHR0cHM6Ly9rdWJlcm5ldGVzLmlvKQotIFtMYW5kZXNoYXVwdHN0YWR0IE3DvG5jaGVuIC0gaXRATV0oaHR0cHM6Ly9tdWVuY2hlbi5kaWdpdGFsL2l0LWF0LW0vKQotIFtMaW5vZGVdKGh0dHBzOi8vd3d3Lmxpbm9kZS5jb20vKQotIFtMb2dpY2Ryb3BdKGh0dHBzOi8vd3d3LmxvZ2ljZHJvcC5jb20pCi0gW0x1bWVyaXNdKGh0dHBzOi8vd3d3Lmx1bWVyaXMuY29tKQotIFtMVk0gVmVyc2ljaGVydW5nZW5dKGh0dHBzOi8vd3d3Lmx2bS5kZSkKLSBbTWFpbFNsdXJwXShodHRwczovL3d3dy5tYWlsc2x1cnAuY29tKQotIFtNYW50aWNvcmUgU2VhcmNoXShodHRwczovL21hbnRpY29yZXNlYXJjaC5jb20pCi0gW01hc3RlcmNhcmRdKGh0dHBzOi8vZGV2ZWxvcGVycy5tYXN0ZXJjYXJkLmNvbSkKLSBbTcOpZGlhdmlzaW9uXShodHRwczovL3d3dy5tZWRpYXZpc2lvbi5mci8pCi0gW01ldGFzd2l0Y2hdKGh0dHBzOi8vd3d3Lm1ldGFzd2l0Y2guY29tLykKLSBbTW9vblZpc2lvbl0oaHR0cHM6Ly93d3cubW9vbnZpc2lvbi5pby8pCi0gW015d29ya291dF0oaHR0cHM6Ly9teXdvcmtvdXQuY29tKQotIFtOYW1Tb3JdKGh0dHBzOi8vd3d3Lm5hbXNvci5jb20vKQotIFtOZXZlcmZhaWxdKGh0dHBzOi8vd3d3Lm5ldmVyZmFpbC5jb20vKQotIFtOZXVlckVuZXJneV0oaHR0cHM6Ly9uZXVlcmVuZXJneS5jb20pCi0gW05va2lhXShodHRwczovL3d3dy5ub2tpYS5jb20vKQotIFtPbmVTaWduYWxdKGh0dHBzOi8vd3d3Lm9uZXNpZ25hbC5jb20vKQotIFtPcHRpb25zIENsZWFyaW5nIENvcnBvcmF0aW9uIChPQ0MpXShodHRwczovL3d3dy50aGVvY2MuY29tLykKLSBbT3BlbmV0XShodHRwczovL3d3dy5vcGVuZXQuY29tLykKLSBbb3BlblZBTElEQVRJT05dKGh0dHBzOi8vb3BlbnZhbGlkYXRpb24uaW8vKQotIFtPcmFjbGVdKGh0dHBzOi8vd3d3Lm9yYWNsZS5jb20vKQotIFtQYXhvc10oaHR0cHM6Ly93d3cucGF4b3MuY29tKQotIFtQbGFpZF0oaHR0cHM6Ly9wbGFpZC5jb20pCi0gW1BMQUlELCBJbmMuXShodHRwczovL3BsYWlkLmNvLmpwLykKLSBbUGludGVyZXN0XShodHRwczovL3d3dy5waW50ZXJlc3QuY29tKQotIFtQb25pY29kZV0oaHR0cHM6Ly9wb25pY29kZS5kZXYvKQotIFtQcmljZWZ4XShodHRwczovL3d3dy5wcmljZWZ4LmNvbS8pCi0gW1ByaW50TmFubnldKGh0dHBzOi8vd3d3LnByaW50LW5hbm55LmNvbS8pCi0gW1Byb21ldGhldXMvQWxlcnRtYW5hZ2VyXShodHRwczovL2dpdGh1Yi5jb20vcHJvbWV0aGV1cy9hbGVydG1hbmFnZXIpCi0gW1FhdmFyXShodHRwczovL3d3dy5xYXZhci5jb20pCi0gW1FFRElUXShodHRwczovL3FlZC1pdC5jb20pCi0gW1FvdmVyeV0oaHR0cHM6Ly9xb3ZlcnkuY29tKQotIFtRdWxpeCBTeXN0ZW1zXShodHRwczovL3d3dy5xdWxpeC5jb20pCi0gW1Jha3N1bF0oaHR0cHM6Ly9jb3JwLnJha3N1bC5jb20pCi0gW1JhaWZmZWlzZW4gU2Nod2VpeiBHZW5vc3NlbnNjaGFmdF0oaHR0cHM6Ly93d3cucmFpZmZlaXNlbi5jaCkKLSBbUmVkSGF0XShodHRwczovL3d3dy5yZWRoYXQuY29tKQotIFtSZXByZVplbiBBUEkgU3R1ZGlvXShodHRwczovL3d3dy5yZXByZXplbi5jb20vc3dhZ2dlci1vcGVuYXBpLWNvZGUtZ2VuZXJhdGlvbi1hcGktZmlyc3QtbWljcm9zZXJ2aWNlcy1lbnRlcnByaXNlLWRldmVsb3BtZW50KQotIFtSRVNUIFVuaXRlZF0oaHR0cHM6Ly9yZXN0dW5pdGVkLmNvbSkKLSBbUm9ib2NvcnBdKGh0dHBzOi8vd3d3LnJvYm9jb3JwLmNvbSkKLSBbUm9ib3RpbmZyYV0oaHR0cHM6Ly93d3cucm9ib3RpbmZyYS5jb20pCi0gW1NlYXJjaEFwaV0oaHR0cHM6Ly93d3cuc2VhcmNoYXBpLmlvLykKLSBbU21hcnRIUl0oaHR0cHM6Ly9zbWFydGhyLmNvLmpwLykKLSBbU29ueSBJbnRlcmFjdGl2ZSBFbnRlcnRhaW5tZW50XShodHRwczovL3d3dy5zaWUuY29tL2VuL2luZGV4Lmh0bWwpCi0gW1NwbGl0aXRdKGh0dHBzOi8vd3d3LnNwbGl0aXQuY29tLykKLSBbU3RpbmdyYXldKGh0dHA6Ly93d3cuc3RpbmdyYXkuY29tKQotIFtTdXZhXShodHRwczovL3d3dy5zdXZhLmNoLykKLSBbU3ZpeF0oaHR0cHM6Ly93d3cuc3ZpeC5jb20vKQotIFtUZWxzdHJhXShodHRwczovL2Rldi50ZWxzdHJhLmNvbSkKLSBbVGVuY2VudF0oaHR0cHM6Ly93d3cudGVuY2VudC5jb20pCi0gW1RoZSBVbml2ZXJzaXR5IG9mIEFpenVdKGh0dHBzOi8vd3d3LnUtYWl6dS5hYy5qcC9lbi8pCi0gW1RJTlFJTl0oaHR0cHM6Ly93d3cudGlucWluLmNvbS8pCi0gW1RyYW5zbHVjZW50IEFwU10oaHR0cHM6Ly93d3cudHJhbnNsdWNlbnQuZGspCi0gW1RyYXZlbFRpbWUgcGxhdGZvcm1dKGh0dHBzOi8vd3d3LnRyYXZlbHRpbWVwbGF0Zm9ybS5jb20vKQotIFtUcmliYWxTY2FsZV0oaHR0cHM6Ly93d3cudHJpYmFsc2NhbGUuY29tKQotIFtUcmlmb3JrXShodHRwczovL3RyaWZvcmsuY29tKQotIFtUVUkgSW5mb1RlYyBHbWJIXShodHRwOi8vd3d3LnR1aS1pbmZvdGVjLmNvbS8pCi0gW1R3aWxpb10oaHR0cHM6Ly93d3cudHdpbGlvLmNvbS8pCi0gW1R3aXR0ZXJdKGh0dHBzOi8vdHdpdHRlci5jb20pCi0gW3VuYmx1IGluYy5dKGh0dHBzOi8vd3d3LnVuYmx1LmNvbS8pCi0gW1ZlYW1seV0oaHR0cHM6Ly93d3cudmVhbWx5LmNvbS8pCi0gW1ZNV2FyZV0oaHR0cHM6Ly93d3cudm13YXJlLmNvbS8pCi0gW3didC1zb2x1dGlvbnNdKGh0dHBzOi8vd3d3LndidC1zb2x1dGlvbnMuZGUvKQotIFtXb2xlZXRdKGh0dHBzOi8vd3d3LndvbGVldC5pby8pCi0gW1dTTzJdKGh0dHBzOi8vd3NvMi5jb20vKQotIFtWb3VjaGVyeS5pb10oaHR0cHM6Ly92b3VjaGVyeS5pbykKLSBbWGVyb10oaHR0cHM6Ly93d3cueGVyby5jb20vKQotIFtZYWhvbyBKYXBhbl0oaHR0cHM6Ly93d3cueWFob28uY28uanAvKQotIFt2aWFkZWVdKGh0dHBzOi8vd3d3LnZpYWRlZS5kZS8pCi0gW1ZvbmFnZV0oaHR0cHM6Ly92b25hZ2UuY29tKQotIFtZSVRVIFRlY2hub2xvZ3ldKGh0dHBzOi8vd3d3LnlpdHV0ZWNoLmNvbS8pCi0gW1llbHBdKGh0dHBzOi8vd3d3LnllbHAuY29tLykKLSBbWmFsYW5kb10oaHR0cHM6Ly93d3cuemFsYW5kby5jb20pCi0gWzNEUyBPdXRzY2FsZV0oaHR0cHM6Ly93d3cub3V0c2NhbGUuY29tLykKCiMjIFs1IC0gUHJlc2VudGF0aW9ucy9WaWRlb3MvVHV0b3JpYWxzL0Jvb2tzXSgjdGFibGUtb2YtY29udGVudHMpCgotIDIwMTgvMDUvMTIgLSBbT3BlbkFQSSBHZW5lcmF0b3IgLSBjb21tdW5pdHkgZHJpdmVu44Gn5oiQ6ZW344GZ44KL44Kz44O844OJ44K444Kn44ON44Os44O844K/XShodHRwczovL2Fja2ludG9zaC5naXRodWIuaW8vYmxvZy8yMDE4LzA1LzEyL29wZW5hcGktZ2VuZXJhdG9yLykgYnkgW+S4remHjuaageS6ul0oaHR0cHM6Ly9naXRodWIuY29tL2Fja2ludG9zaCkKLSAyMDE4LzA1LzE1IC0gW1N0YXJ0aW5nIGEgbmV3IG9wZW4tc291cmNlIHByb2plY3RdKGh0dHA6Ly9qbWluaS5naXRodWIuaW8vYmxvZy8yMDE4LzIwMTgtMDUtMTVfbmV3LW9wZW4tc291cmNlLXByb2plY3QuaHRtbCkgYnkgW0plcmVtaWUgQnJlc3Nvbl0oaHR0cHM6Ly9naXRodWIuY29tL2ptaW5pKQotIDIwMTgvMDUvMTUgLSBbUkVTVCBBUEnku5Xmp5jjgYvjgolBUEnjgq/jg6njgqTjgqLjg7Pjg4jjgoTjgrnjgr/jg5bjgrXjg7zjg5DjgpLoh6rli5XnlJ/miJDjgZnjgovjgIxPcGVuQVBJIEdlbmVyYXRvcuOAjeOCquODvOODl+ODs+OCveODvOOCueOBp+WFrOmWi+OAglN3YWdnZXIgQ29kZWdlbuOBi+OCieOBruODleOCqeODvOOCr10oaHR0cHM6Ly93d3cucHVibGlja2V5MS5qcC9ibG9nLzE4L3Jlc3RfYXBpYXBpb3BlbmFwaV9nZW5lcmF0b3Jzd2FnZ2VyX2dlbmVyYXRvci5odG1sKSBieSBbUHVibGlja2V5XShodHRwczovL3d3dy5wdWJsaWNrZXkxLmpwKQotIDIwMTgvMDYvMDggLSBbU3dhZ2dlciBDb2RlZ2VuIGlzIG5vdyBPcGVuQVBJIEdlbmVyYXRvcl0oaHR0cHM6Ly9hbmd1bGFyLnNjaHVsZS9ibG9nLzIwMTgtMDYtc3dhZ2dlci1jb2RlZ2VuLWlzLW5vdy1vcGVuYXBpLWdlbmVyYXRvcikgYnkgW0pvaGFubmVzSG9wcGVdKGh0dHBzOi8vZ2l0aHViLmNvbS9Kb2hhbm5lc0hvcHBlKQotIDIwMTgvMDYvMjEgLSBbQ29ubmVjdCB5b3VyIEpIaXBzdGVyIGFwcHMgdG8gdGhlIHdvcmxkIG9mIEFQSXMgd2l0aCBPcGVuQVBJIGFuZCBnUlBDXShodHRwczovL2ZyLnNsaWRlc2hhcmUubmV0L2NoYm9ybmV0L2poaXBzdGVyLWNvbmYtMjAxOC1jb25uZWN0LXlvdXItamhpcHN0ZXItYXBwcy10by10aGUtd29ybGQtb2YtYXBpcy13aXRoLW9wZW5hcGktYW5kLWdycGMpIGJ5IFtDaHJpc3RvcGhlIEJvcm5ldF0oaHR0cHM6Ly9naXRodWIuY29tL2Nib3JuZXQpIGF0IFtKSGlwc3RlciBDb25mIDIwMThdKGh0dHBzOi8vamhpcHN0ZXItY29uZi5naXRodWIuaW8vKQotIDIwMTgvMDYvMjIgLSBbT3BlbkFQSSBHZW5lcmF0b3Ig44GnIEdhdGxpbmcgQ2xpZW50IOOCkueUn+aIkOOBl+OBpuOBv+OBn10oaHR0cHM6Ly9yb2hraS5oYXRlbmFibG9nLmNvbS9lbnRyeS8yMDE4LzA2LzIyLzA3MzAwMCkgYXQgW+OCveODouOCteODs10oaHR0cHM6Ly9yb2hraS5oYXRlbmFibG9nLmNvbS8pCi0gMjAxOC8wNi8yNyAtIFtMZXNzb25zIExlYXJuZWQgZnJvbSBMZWFkaW5nIGFuIE9wZW4tU291cmNlIFByb2plY3QgU3VwcG9ydGluZyAzMCsgUHJvZ3JhbW1pbmcgTGFuZ3VhZ2VzXShodHRwczovL3NwZWFrZXJkZWNrLmNvbS93aW5nMzI4L2xlc3NvbnMtbGVhcm5lZC1mcm9tLWxlYWRpbmctYW4tb3Blbi1zb3VyY2UtcHJvamVjdC1zdXBwb3J0aW5nLTMwLXBsdXMtcHJvZ3JhbW1pbmctbGFuZ3VhZ2VzKSAtIFtXaWxsaWFtIENoZW5nXShodHRwczovL2dpdGh1Yi5jb20vd2luZzMyOCkgYXQgW0xpbnV4Q29uICsgQ29udGFpbmVyQ29uICsgQ2xvdWRPcGVuIENoaW5hIDIwMThdKGh0dHA6Ly9iaXQubHkvMndhREtLWCkKLSAyMDE4LzA3LzE5IC0gW09wZW5BUEkgR2VuZXJhdG9yIENvbnRyaWJ1dGlvbiBRdWlja3N0YXJ0IC0gUmluZ0NlbnRyYWwgR28gU0RLXShodHRwczovL21lZGl1bS5jb20vcmluZ2NlbnRyYWwtZGV2ZWxvcGVycy9vcGVuYXBpLWdlbmVyYXRvci1mb3ItZ28tY29udHJpYnV0aW9uLXF1aWNrc3RhcnQtOGNjNzJiZjM3YjUzKSBieSBbSm9obiBXYW5nXShodHRwczovL2dpdGh1Yi5jb20vZ3Jva2lmeSkKLSAyMDE4LzA4LzIyIC0gW09wZW5BUEkgR2VuZXJhdG9y44Gu44OX44Ot44K444Kn44Kv44OI5qeL5oiQ44Gq44Gp44Gu44Oh44OiXShodHRwczovL3lpbm0uaW5mby8yMDE4MDgyMi8pIGJ5IFtZdXN1a2UgSWludW1hXShodHRwczovL2dpdGh1Yi5jb20veWlubSkKLSAyMDE4LzA5LzEyIC0gW1JlcHJlWmVuIGFuZCBPcGVuQVBJIDMuMDogTm93IGlzIHRoZSBUaW1lXShodHRwczovL3d3dy5yZXByZXplbi5jb20vYmxvZy9yZXByZXplbi1vcGVuYXBpLTMuMC11cGdyYWRlLW5vdy1pcy10aGUtdGltZSkgYnkgW01pbGVzIERhZmZpbl0oaHR0cHM6Ly93d3cucmVwcmV6ZW4uY29tL2Jsb2cvYXV0aG9yL21pbGVzLWRhZmZpbikKLSAyMDE4LzEwLzMxIC0gW0Egbm9kZSBwYWNrYWdlIHdyYXBwZXIgZm9yIG9wZW5hcGktZ2VuZXJhdG9yXShodHRwczovL2dpdGh1Yi5jb20vSGFybW9XYXRjaC9vcGVuYXBpLWdlbmVyYXRvci1jbGkpCi0gMjAxOC8xMS8wMyAtIFtPcGVuQVBJIEdlbmVyYXRvciArIGdvbGFuZyArIEZsdXR0ZXIg44Gn44Ki44OX44Oq6ZaL55m6XShodHRwOi8vcnl1aWNoaTExMXN0ZC5oYXRlbmFibG9nLmNvbS9lbnRyeS8yMDE4LzExLzAzLzIxNDAwNSkgYnkgW1J5dWljaGkgRGFpZ29dKGh0dHBzOi8vZ2l0aHViLmNvbS9yeXVpY2hpMTExKQotIDIwMTgvMTEvMTUgLSBb5Z+65LqOb3BlbmFwaTMuMOeahHlhbWzmlofku7bnlJ/miJBqYXZh5Luj56CB55qE5LiA5qyh5a6e6Le1XShodHRwczovL2Jsb2cuY3Nkbi5uZXQveXp5MTk5MzkxL2FydGljbGUvZGV0YWlscy84NDAyMzk4MikgYnkgW+eEsemtlOeOi10oaHR0cHM6Ly9tZS5jc2RuLm5ldC95enkxOTkzOTEpCi0gMjAxOC8xMS8xOCAtIFtHZW5lcmF0aW5nIFBIUCBsaWJyYXJ5IGNvZGUgZnJvbSBPcGVuQVBJXShodHRwczovL2xvcm5hamFuZS5uZXQvcG9zdHMvMjAxOC9nZW5lcmF0aW5nLXBocC1saWJyYXJ5LWNvZGUtZnJvbS1vcGVuYXBpKSBieSBbTG9ybmEgSmFuZV0oaHR0cHM6Ly9sb3JuYWphbmUubmV0LykgYXQgW0xPUk5BSkFORSBCbG9nXShodHRwczovL2xvcm5hamFuZS5uZXQvYmxvZykKLSAyMDE4LzExLzE5IC0gW09wZW5BUElzIGFyZSBldmVyeXdoZXJlXShodHRwczovL3lvdXR1LmJlLy1sRG90NFluN0RnKSBieSBbSmVyZW1pZSBCcmVzc29uIChVbmJsdSldKGh0dHBzOi8vZ2l0aHViLmNvbS9qbWluaSkgYXQgW0VjbGlwc2VDb24gRXVyb3BlIDIwMThdKGh0dHBzOi8vd3d3LmVjbGlwc2Vjb24ub3JnL2V1cm9wZTIwMTgpCi0gMjAxOC8xMi8wOSAtIFtvcGVuYXBpLWdlbmVyYXRvciDjgpLjgqvjgrnjgr/jg57jgqTjgrrjgZnjgovmlrnms5VdKGh0dHBzOi8vcWlpdGEuY29tL3dhdGlrby9pdGVtcy8wOTYxMjg3YzAyZWFjOTIxMTU3MikgYnkgW0B3YXRpa29dKGh0dHBzOi8vcWlpdGEuY29tL3dhdGlrbykKLSAyMDE5LzAxLzAzIC0gW0NhbGxpbmcgYSBTd2FnZ2VyIHNlcnZpY2UgZnJvbSBBcGV4IHVzaW5nIG9wZW5hcGktZ2VuZXJhdG9yXShodHRwczovL2xla2tpbXdvcmxkLmNvbS8yMDE5LzAxLzAzL2NhbGxpbmctYS1zd2FnZ2VyLXNlcnZpY2UtZnJvbS1hcGV4LXVzaW5nLW9wZW5hcGktZ2VuZXJhdG9yLykgYnkgW01pa2tlbCBGbGluZHQgSGVpc3RlcmJlcmddKGh0dHBzOi8vbGVra2ltd29ybGQuY29tKQotIDIwMTkvMDEvMTMgLSBbT3BlbkFQSSBHZW5lcmF0b3LjgadSRVNUZnVsIEFQSeOBruWumue+qeabuOOBi+OCieiJsuOAheiHquWLleeUn+aIkOOBmeOCi10oaHR0cHM6Ly9reS15ay1kLmhhdGVuYWJsb2cuY29tL2VudHJ5LzIwMTkvMDEvMTMvMjM0MTA4KSBieSBbQGt5X3lrX2RdKGh0dHBzOi8vdHdpdHRlci5jb20va3lfeWtfZCkKLSAyMDE5LzAxLzIwIC0gW0NvbnRyYWN0LUZpcnN0IEFQSSBEZXZlbG9wbWVudCB3aXRoIE9wZW5BUEkgR2VuZXJhdG9yIGFuZCBDb25uZXhpb25dKGh0dHBzOi8vbWVkaXVtLmNvbS9jb21tZW5jaXMvY29udHJhY3QtZmlyc3QtYXBpLWRldmVsb3BtZW50LXdpdGgtb3BlbmFwaS1nZW5lcmF0b3ItYW5kLWNvbm5leGlvbi1iMjFiYmYyZjkyNDQpIGJ5IFtBbmlsIENhbiBBeWRpbl0oaHR0cHM6Ly9naXRodWIuY29tL2FubGNueWRuKQotIDIwMTkvMDEvMzAgLSBbUmFwaWQgQXBwbGljYXRpb24gRGV2ZWxvcG1lbnQgV2l0aCBBUEkgRmlyc3QgQXBwcm9hY2ggVXNpbmcgT3Blbi1BUEkgR2VuZXJhdG9yXShodHRwczovL2R6b25lLmNvbS9hcnRpY2xlcy9yYXBpZC1hcGktZGV2ZWxvcG1lbnQtdXNpbmctb3Blbi1hcGktZ2VuZXJhdG9yKSBieSBbTWlsYW4gU29ua2FyXShodHRwczovL2R6b25lLmNvbS91c2Vycy84MjgzMjkvbWlsYW5fc29ua2FyLmh0bWwpCi0gMjAxOS8wMi8wMiAtIFvlubPpnZnjgpLkv53jgaHjgIHjgrPjg7zjg4njgpLnlJ/miJDjgZvjgogg44CcIE9wZW5BUEkgR2VuZXJhdG9y6KqV55Sf44Gu6IOM5pmv44Go6LuM6LehIOOAnF0oaHR0cHM6Ly9zcGVha2VyZGVjay5jb20vYWtpaGl0b19uYWthbm8vZ3VubWF3ZWIzNCkgYnkgW+S4remHjuaageS6ul0oaHR0cHM6Ly9naXRodWIuY29tL2Fja2ludG9zaCkgYXQgW0d1bm1hLndlYiAjMzQg44K544Kt44O844Oe6aeG5YuV6ZaL55m6XShodHRwczovL2d1bm1hd2ViLmNvbm5wYXNzLmNvbS9ldmVudC8xMTM5NzQvKQotIDIwMTkvMDIvMjAgLSBbQW4gYWR2ZW50dXJlIGluIE9wZW5BUEkgVjMgY29kZSBnZW5lcmF0aW9uXShodHRwczovL211eC5jb20vYmxvZy9hbi1hZHZlbnR1cmUtaW4tb3BlbmFwaS12My1hcGktY29kZS1nZW5lcmF0aW9uLykgYnkgW1BoaWwgQ2x1ZmZdKGh0dHBzOi8vbXV4LmNvbS9ibG9nL2F1dGhvci9waGlsYy8pCi0gMjAxOS8wMi8yNiAtIFtCdWlsZGluZyBBUEkgU2VydmljZXM6IEEgQmVnaW5uZXLigJlzIEd1aWRlXShodHRwczovL21lZGl1bS5jb20vZ29vZ2xlLWNsb3VkL2J1aWxkaW5nLWFwaS1zZXJ2aWNlcy1hLWJlZ2lubmVycy1ndWlkZS03Mjc0YWU0YzU0N2YpIGJ5IFtSYXRyb3MgWS5dKGh0dHBzOi8vbWVkaXVtLmNvbS9AcmF0cm9zeSkgaW4gW0dvb2dsZSBDbG91ZCBQbGF0Zm9ybSBCbG9nXShodHRwczovL21lZGl1bS5jb20vZ29vZ2xlLWNsb3VkKQotIDIwMTkvMDIvMjYgLSBbQnVpbGRpbmcgQVBJcyB3aXRoIE9wZW5BUEk6IENvbnRpbnVlZF0oaHR0cHM6Ly9tZWRpdW0uY29tL0ByYXRyb3N5L2J1aWxkaW5nLWFwaXMtd2l0aC1vcGVuYXBpLWNvbnRpbnVlZC01ZDBmYWFlZDMyZWIpIGJ5IFtSYXRyb3MgWS5dKGh0dHBzOi8vbWVkaXVtLmNvbS9AcmF0cm9zeSkgaW4gW0dvb2dsZSBDbG91ZCBQbGF0Zm9ybSBCbG9nXShodHRwczovL21lZGl1bS5jb20vZ29vZ2xlLWNsb3VkKQotIDIwMTktMDMtMDcgLSBbT3BlbkFQSSBHZW5lcmF0b3Ig44GnIFNwcmluZyBCb290IOOBqCBBbmd1bGFyIOOCkuOCv+OCpOODl+OCu+ODvOODleOBq+e5i+OBkF0oaHR0cHM6Ly9xaWl0YS5jb20vY2hpYmF0by9pdGVtcy9lNGE3NDhkYjEyNDA5YjQwYzAyZikgYnkgW1RvbW9mdW1pIENoaWJhXShodHRwczovL2dpdGh1Yi5jb20vY2hpYmF0KQotIDIwMTktMDMtMTYgLSBbQSBRdWljayBpbnRyb2R1Y3Rpb24gdG8gbWFudWFsIE9wZW5BUEkgVjNdKGh0dHBzOi8vdmFkb3N3YXJlLmlvL3Bvc3QvcXVpY2staW50cm8tdG8tbWFudWFsLW9wZW5hcGktdjMvKSBieSBbdmFkb3NdKGh0dHBzOi8vZ2l0aHViLmNvbS90M2htcm1hbikgYXQgW1ZBRE9TV0FSRV0oaHR0cHM6Ly92YWRvc3dhcmUuaW8pCi0gMjAxOS0wMy0yNSAtIFtBY2Nlc3MgYW55IFJFU1Qgc2VydmljZSB3aXRoIHRoZSBTQVAgUy80SEFOQSBDbG91ZCBTREtdKGh0dHBzOi8vYmxvZ3Muc2FwLmNvbS8yMDE5LzAzLzI1L2ludGVncmF0ZS1zYXAtczRoYW5hLWNsb3VkLXNkay13aXRoLW9wZW4tYXBpLykgYnkgW0FsZXhhbmRlciBEdWVtb250XShodHRwczovL3Blb3BsZS5zYXAuY29tL2FsZXhhbmRlci5kdWVtb250KQotIDIwMTktMDMtMjUgLSBbT3BlbkFQSSBnZW5lcmF0b3LjgpLoqabjgZfjgabjgb/jgotdKGh0dHBzOi8vcWlpdGEuY29tL2FtdXlpa2FtL2l0ZW1zL2U4YTQ1ZGFhZTU5YzY4YmUwZmM4KSBieSBbQGFtdXlpa2FtXShodHRwczovL3R3aXR0ZXIuY29tL2FtdXlpa2FtKQotIDIwMTktMDMtMjcgLSBbT3BlbkFQSTPjgpLkvb/jgaPjgabjgb/jgojjgYbvvIFHb+iogOiqnuOBp+OCr+ODqeOCpOOCouODs+ODiOOBqOOCueOCv+ODluOBruiHquWLleeUn+aIkOOBvuOBp++8gV0oaHR0cHM6Ly90ZWNoYmxvZy56b3pvLmNvbS9lbnRyeS9vcGVuYXBpMy9nbykgYnkgW0Bnb2xkX2tvdV0oaHR0cHM6Ly90d2l0dGVyLmNvbS9nb2xkX2tvdSkKLSAyMDE5LTA0LTE3IC0gW09wZW5BUEnjgavjgojjgovjgrnjgq3jg7zjg57jg5XjgqHjg7zjgrnjg4jplovnmbrjga7lrp/mlr3jgrXjg7Pjg5fjg6vjgahDbG91ZCBSdW7jgavjgaTjgYTjgaZdKGh0dHBzOi8vdGVjaC1ibG9nLm9wdGltLmNvLmpwL2VudHJ5LzIwMTkvMDQvMTcvMTc0MDAwKSBieSBbQHl1a2V5MTAzMV0oaHR0cHM6Ly90d2l0dGVyLmNvbS95dWtleTEwMzEpCi0gMjAxOS0wNC0xOCAtIFtIb3cgdG8gdXNlIE9wZW5BUEkzIGZvciBBUEkgZGV2ZWxvcGVyIChSdWJ5S2FpZ2kgMjAxOSldKGh0dHBzOi8vc3BlYWtlcmRlY2suY29tL290YTQyeS9ob3ctdG8tdXNlLW9wZW5hcGkzLWZvci1hcGktZGV2ZWxvcGVyKSBieSBbQG90YTQyeV0oaHR0cHM6Ly90d2l0dGVyLmNvbS9vdGE0MnkpIGF0IFtSdWJ5S2FpZ2kgMjAxOV0oaHR0cHM6Ly9ydWJ5a2FpZ2kub3JnLzIwMTkpCi0gMjAxOS0wNC0yOSAtIFtBIEJlZ2lubmVyJ3MgR3VpZGUgdG8gQ29kZSBHZW5lcmF0aW9uIGZvciBSRVNUIEFQSXMgKE9wZW5BUEkgR2VuZXJhdG9yKV0oaHR0cHM6Ly9ndW0uY28vb3BlbmFwaV9nZW5lcmF0b3JfZWJvb2spIGJ5IFtXaWxsaWFtIENoZW5nXShodHRwczovL3R3aXR0ZXIuY29tL3dpbmczMjgpCi0gMjAxOS0wNS0wMSAtIFtEZXNpZ24gYW5kIGdlbmVyYXRlIGEgUkVTVCBBUEkgZnJvbSBTd2FnZ2VyIC8gT3BlbkFQSSBpbiBKYXZhLCBQeXRob24sIEMjIGFuZCBtb3JlXShodHRwczovL3NpbXBseS1ob3cuY29tL2Rlc2lnbi1hbmQtZ2VuZXJhdGUtYXBpLWNvZGUtZnJvbS1vcGVuYXBpKSBieSBbU2ltcGx5IEhvd10oaHR0cHM6Ly9zaW1wbHktaG93LmNvbS8pCi0gMjAxOS0wNS0xNyAtIFtHZW5lcmF0ZSBTcHJpbmcgQm9vdCBSRVNUIEFQSSB1c2luZyBTd2FnZ2VyL09wZW5BUEldKGh0dHBzOi8vd3d3LjQ3bm9ydGhsYWJzLmNvbS9rbm93bGVkZ2UtYmFzZS9nZW5lcmF0ZS1zcHJpbmctYm9vdC1yZXN0LWFwaS11c2luZy1zd2FnZ2VyLW9wZW5hcGkvKSBieSBbQW50b25pZSBaYWZpcm92XShodHRwczovL3d3dy40N25vcnRobGFicy5jb20vYXV0aG9yL2FudG9uaWUtemFmaXJvdi8pCi0gMjAxOS0wNS0yMiAtIFtSRVNUIEFQSXPku6PnoIHnlJ/miJDmjIfljZcoT3BlbkFQSSBHZW5lcmF0b3IpXShodHRwczovL2d1bS5jby9vcGVuYXBpX2dlbmVyYXRvcl9lYm9va19nYikgYnkgW1dpbGxpYW0gQ2hlbmddKGh0dHBzOi8vdHdpdHRlci5jb20vd2luZzMyOCksIFtYaW4gTWVuZ10oaHR0cHM6Ly9naXRodWIuY29tL3htZW5nMSkKLSAyMDE5LTA1LTI0IC0gW1JFU1QgQVBJIOS7o+eivOeUn+aIkOaMh+WNlyAoT3BlbkFQSSBHZW5lcmF0b3IpXShodHRwczovL2d1bS5jby9vcGVuYXBpX2dlbmVyYXRvcl9lYm9va19iaWc1KSBieSBbV2lsbGlhbSBDaGVuZ10oaHR0cHM6Ly90d2l0dGVyLmNvbS93aW5nMzI4KQotIDIwMTktMDYtMjQgLSBbS3ViZXJuZXRlcyBDbGllbnRzIGFuZCBPcGVuQVBJIEdlbmVyYXRvcl0oaHR0cHM6Ly9zcGVha2VyZGVjay5jb20vd2luZzMyOC9rdWJlcm5ldGVzLWNsaWVudHMtYW5kLW9wZW5hcGktZ2VuZXJhdG9yKSBieSBbV2lsbGlhbSBDaGVuZ10oaHR0cHM6Ly90d2l0dGVyLmNvbS93aW5nMzI4KSBhdCBbS3ViZXJuZXRlcyBDb250cmlidXRvciBTdW1taXRzIFNoYW5naGFpIDIwMTldKGh0dHBzOi8vd3d3LmxmYXNpYWxsYy5jb20vZXZlbnRzL2NvbnRyaWJ1dG9ycy1zdW1taXQtY2hpbmEtMjAxOS8pCi0gMjAxOS0wNi0yOCBbQ29kZXdpbmQgT3BlbkFQSSBUb29sc10oaHR0cHM6Ly9tYXJrZXRwbGFjZS5lY2xpcHNlLm9yZy9jb250ZW50L2NvZGV3aW5kLW9wZW5hcGktdG9vbHMpIGluIFtFY2xpcHNlIE1hcmtldHBsYWNlXShodHRwczovL21hcmtldHBsYWNlLmVjbGlwc2Uub3JnLykgYnkgSUJNCi0gMjAxOS0wNi0yOSBbQ29kZXdpbmQgT3BlbkFQSSBUb29sc10oaHR0cHM6Ly9tYXJrZXRwbGFjZS52aXN1YWxzdHVkaW8uY29tL2l0ZW1zP2l0ZW1OYW1lPUlCTS5jb2Rld2luZC1vcGVuYXBpLXRvb2xzKSBpbiBbVmlzdWFsIFN0dWRpbyBNYXJrZXRwbGFjZV0oaHR0cHM6Ly9tYXJrZXRwbGFjZS52aXN1YWxzdHVkaW8uY29tLykgYnkgSUJNCi0gMjAxOS0wNy0wNCAtIFtSRVNUIEFQSSDjga7jgZ/jgoHjga7jgrPjg7zjg4jjgpnnlJ/miJDlhaXploAgKE9wZW5BUEkgR2VuZXJhdG9yKV0oaHR0cHM6Ly9ndW0uY28vb3BlbmFwaV9nZW5lcmF0b3JfZWJvb2tfYmlnNSkgYnkgW1dpbGxpYW0gQ2hlbmddKGh0dHBzOi8vdHdpdHRlci5jb20vd2luZzMyOCksIFvkuK3ph47mmoHkurpdKGh0dHBzOi8vZ2l0aHViLmNvbS9hY2tpbnRvc2gpLCBb5ZKM55Sw5ouT5pyXXShodHRwczovL2dpdGh1Yi5jb20vdGF4cG9uKQotIDIwMTktMDctMDggLSBbT3BlbkFQSSBHZW5lcmF0b3Ig44Gr44Kz44Oz44OI44Oq44OT44Ol44O844OI44GX44Gf44KJ56S+5ZCN44GM6LyJ44Gj44Gf6Kmx44CCKENBTSkgLSBDQU0gVEVDSCBCTE9HXShodHRwczovL3RlY2guY2FtLWluYy5jby5qcC9lbnRyeS8yMDE5LzA3LzA4LzE0MDAwMCkgYnkgW0NBTSwgSW5jLl0oaHR0cHM6Ly93d3cuY2FtLWluYy5jby5qcC8pCi0gMjAxOS0wNy0xNCAtIFtPcGVuQVBJIEdlbmVyYXRvcuOBp1B5dGhvbuOBruOCr+ODqeOCpOOCouODs+ODiOODqeOCpOODluODqeODquOCkuS9nOaIkOOBl+OBn10oaHR0cHM6Ly9xaWl0YS5jb20veXVqaTM4a3dtdC9pdGVtcy9kZmI5MjkzMTZhMTMzNWExNjFjMCkgYnkgW3l1amkzOGt3bXRdKGh0dHBzOi8vcWlpdGEuY29tL3l1amkzOGt3bXQpCi0gMjAxOS0wNy0xOSAtIFtEZXZlbG9wZXIgRXhwZXJpZW5jZSAoRFgpIGZvciBPcGVuLVNvdXJjZSBQcm9qZWN0czogSG93IHRvIEVuZ2FnZSBEZXZlbG9wZXJzIGFuZCBCdWlsZCBhIEdyb3dpbmcgRGV2ZWxvcGVyIENvbW11bml0eV0oaHR0cHM6Ly9zcGVha2VyZGVjay5jb20vd2luZzMyOC9kZXZlbG9wZXItZXhwZXJpZW5jZS1keC1mb3Itb3Blbi1zb3VyY2UtcHJvamVjdHMtZW5nbGlzaC1qYXBhbmVzZSkgYnkgW1dpbGxpYW0gQ2hlbmddKGh0dHBzOi8vdHdpdHRlci5jb20vd2luZzMyOCksIFvkuK3ph47mmoHkurpdKGh0dHBzOi8vZ2l0aHViLmNvbS9hY2tpbnRvc2gpIGF0IFtPcGVuIFNvdXJjZSBTdW1taXQgSmFwYW4gMjAxOV0oaHR0cHM6Ly9ldmVudHMubGludXhmb3VuZGF0aW9uLm9yZy9ldmVudHMvb3Blbi1zb3VyY2Utc3VtbWl0LWphcGFuLTIwMTkvKQotIDIwMTktMDgtMTQgLSBbT3VyIE9wZW5BUEkgam91cm5leSB3aXRoIFN0YW5kYXJkaXppbmcgU0RLc10oaHR0cHM6Ly9iaXRtb3Zpbi5jb20vb3VyLW9wZW5hcGktam91cm5leS13aXRoLXN0YW5kYXJkaXppbmctc2Rrcy8pIGJ5IFtTZWJhc3RpYW4gQnVyZ3N0YWxsZXJdKGh0dHBzOi8vYml0bW92aW4uY29tL2F1dGhvci9zYnVyZ3N0YWxsZXIvKSBhdCBbQml0bW92aW5dKGh0dHBzOi8vd3d3LmJpdG1vdmluLmNvbSkKLSAyMDE5LTA4LTE1IC0gW0FQSeOBruOCs+ODvOODieOCkuiHquWLleeUn+aIkOOBleOBm+OBn+OBhOOBoOOBkeOBquOCiWdSUEPjgafjgarjgY/jgabjgoLjgojjgY/jgarjgYQ/XShodHRwczovL3d3dy5tM3RlY2guYmxvZy9lbnRyeS8yMDE5LzA4LzE1LzExMDAwMCkgYnkgW00zLCBJbmMuXShodHRwczovL2NvcnBvcmF0ZS5tMy5jb20vKQotIDIwMTktMDgtMjIgLSBb44Oe44Kk44Kv44Ot44K144O844OT44K544Gr44GK44GR44KLV2ViIEFQSeOCueOCreODvOODnuOBrueuoeeQhuKUgCBHcmFwaFFM44CBZ1JQQ+OAgU9wZW5BUEnjga7nibnlvrTjgajkvb/jgYTjganjgZPjgo1dKGh0dHBzOi8vZW1wbG95bWVudC5lbi1qYXBhbi5jb20vZW5naW5lZXJodWIvZW50cnkvMjAxOS8wOC8yMi8xMDMwMDApIGJ5IFtAb3RhNDJ5XShodHRwczovL3R3aXR0ZXIuY29tL290YTQyeSkKLSAyMDE5LTA4LTI0IC0gW1N3YWdnZXLjg4njgq3jg6Xjg6Hjg7Pjg4jjgYvjgolPcGVuQVBJIEdlbmVyYXRvcuOCkuS9v+OBo+OBpuODouODg+OCr+OCteODvOODkOODvOS9nOaIkF0oaHR0cHM6Ly9xaWl0YS5jb20vbWFzYXlvc2hpMDIyMi9pdGVtcy80ODQ1ZTRjNzE1ZDA0NTg3YzEwNCkgYnkgW+WdguacrOato+e+qV0oaHR0cHM6Ly9xaWl0YS5jb20vbWFzYXlvc2hpMDIyMikKLSAyMDE5LTA4LTI5IC0gW09wZW5BUEnliJ3mjqJdKGh0dHBzOi8vY2xvdWQudGVuY2VudC5jb20vZGV2ZWxvcGVyL2FydGljbGUvMTQ5NTk4NikgYnkgW3BlYWt4aWVdKGh0dHBzOi8vY2xvdWQudGVuY2VudC5jb20vZGV2ZWxvcGVyL3VzZXIvMTExMzE1MikgYXQgW+iFvuiur+S6keekvuWMul0oaHR0cHM6Ly9jbG91ZC50ZW5jZW50LmNvbS9kZXZlbG9wZXIpCi0gMjAxOS0wOC0yOSAtIFvlhajpnaLov5vljJbvvJpLdWJlcm5ldGVzIENSRCAxLjE2IEdB5YmN5567XShodHRwczovL3d3dy5zZXJ2aWNlbWVzaGVyLmNvbS9ibG9nL2t1YmVybmV0ZXMtMS4xNi1jcmQtZ2EtcHJldmlldy8pIGJ5IFtNaW4gS2ltXShodHRwczovL2dpdGh1Yi5jb20veXVlOTk0NDg4MikgYXQgW1NlcnZpY2VNZXNoZXIgQmxvZ10oaHR0cHM6Ly93d3cuc2VydmljZW1lc2hlci5jb20vYmxvZy8pCi0gMjAxOS0wOS0wMSAtIFtDcmVhdGluZyBhIFBIUC1TbGltIHNlcnZlciB1c2luZyBPcGVuQVBJIChZb3V0dWJlIHZpZGVvKV0oaHR0cHM6Ly93d3cueW91dHViZS5jb20vd2F0Y2g/dj01Y0p0Yklyc1lrZykgYnkgW0RhbmllbCBQZXJzc29uXShodHRwczovL3d3dy55b3V0dWJlLmNvbS9jaGFubmVsL1VDbkctVE4yM2xzd082UWJ2V2hNdHhwQSkKLSAyMDE5LTA5LTA2IC0gW1ZlcnQueCBhbmQgT3BlbkFQSV0oaHR0cHM6Ly93aXNzZWwubmV0L2Jsb2cvMjAxOS8wOS92ZXJ0eC1hbmQtb3BlbmFwaS5odG1sKSBieSBbU3RlcGhhbiBIIFdpc3NlbF0oaHR0cHM6Ly90d2l0dGVyLmNvbS9ub3Rlc3NlbnNlaSkgYXQgW3dpc3NlbC5uZXQgYmxvZ10oaHR0cHM6Ly93aXNzZWwubmV0KQotIDIwMTktMDktMDkgLSBbQ2xvdWQtbmF0aXZlIGRldmVsb3BtZW50IC0gQ3JlYXRpbmcgUkVTVGZ1bCBtaWNyb3NlcnZpY2VzXShodHRwczovL2Nsb3VkLmlibS5jb20vZG9jcy9jbG91ZC1uYXRpdmU/dG9waWM9Y2xvdWQtbmF0aXZlLXJlc3QtYXBpKSBpbiBbSUJNIENsb3VkIERvY3NdKGh0dHBzOi8vY2xvdWQuaWJtLmNvbS9kb2NzKQotIDIwMTktMDktMTQgLSBbR2VuZXJhdGluZyBhbmQgQ29uZmlndXJpbmcgYSBNYXN0ZXJjYXJkIEFQSSBDbGllbnRdKGh0dHBzOi8vZGV2ZWxvcGVyLm1hc3RlcmNhcmQuY29tL3BsYXRmb3JtL2RvY3VtZW50YXRpb24vZ2VuZXJhdGluZy1hbmQtY29uZmlndXJpbmctYS1tYXN0ZXJjYXJkLWFwaS1jbGllbnQvKSBhdCBbTWFzdGVyY2FyZCBEZXZlbG9wZXJzIFBsYXRmb3JtXShodHRwczovL2RldmVsb3Blci5tYXN0ZXJjYXJkLmNvbS9wbGF0Zm9ybS9kb2N1bWVudGF0aW9uLykKLSAyMDE5LTA5LTE1IC0gW09wZW5BUEkoU3dhZ2dlcinlsI7lhaXkuIvoqr/jgbldKGh0dHBzOi8vcWlpdGEuY29tL1Nob2ljaGlLdXJhb2thL2l0ZW1zL2YxZjdhM2MyMzc2ZjdjZDljNTZhKSBieSBbU2hvaWNoaSBLdXJhb2thXShodHRwczovL3FpaXRhLmNvbS9TaG9pY2hpS3VyYW9rYSkKLSAyMDE5LTA5LTE3IC0gW1R1dG9yaWFsOiBEb2N1bWVudGluZyBodHRwNGsgQVBJcyB3aXRoIE9wZW5BcGkzXShodHRwczovL3d3dy5odHRwNGsub3JnL3R1dG9yaWFscy9kb2N1bWVudGluZ19hcGlzX3dpdGhfb3BlbmFwaS8pIGJ5IFtodHRwNGtdKGh0dHBzOi8vd3d3Lmh0dHA0ay5vcmcvKQotIDIwMTktMDktMjIgLSBbT3BlbkFQSSAz44KS5a6M5YWo44Gr55CG6Kej44Gn44GN44KL5pysXShodHRwczovL2Jvb3RoLnBtL2phL2l0ZW1zLzE1NzE5MDIpIGJ5IFtAb3RhNDJ5XShodHRwczovL3R3aXR0ZXIuY29tL290YTQyeSkKLSAyMDE5LTA5LTIyIC0gW1JFU1RmdWwgQVBJczogVHV0b3JpYWwgb2YgT3BlbkFQSSBTcGVjaWZpY2F0aW9uXShodHRwczovL21lZGl1bS5jb20vQGFtaXJtLmxhdmFzYW5pL3Jlc3RmdWwtYXBpcy10dXRvcmlhbC1vZi1vcGVuYXBpLXNwZWNpZmljYXRpb24tZWVhZGEwZTM5MDFkKSBieSBbQW1pciBMYXZhc2FuaV0oaHR0cHM6Ly9tZWRpdW0uY29tL0BhbWlybS5sYXZhc2FuaSkKLSAyMDE5LTA5LTIyIC0gW1JlZGVmaW5pbmcgU0RLcyBhcyBzb2Z0d2FyZSBkaXZlcnNpdHkga2l0c10oaHR0cHM6Ly9kZXZyZWwubmV0L2Rldi1yZWwvcmVkZWZpbmluZy1zZGtzLWFzLXNvZnR3YXJlLWRpdmVyc2l0eS1raXRzKSBieSBbU2lkIE1hZXN0cmUgKFhlcm8pXShodHRwczovL3R3aXR0ZXIuY29tL3NpZG5leWFsbGVuKSBhdCBbRGV2UmVsQ29uIFNhbiBGcmFuY2lzY28gMjAxOV0oaHR0cHM6Ly9zZjIwMTkuZGV2cmVsLm5ldC8pCi0gMjAxOS0wOS0yMyAtIFtzd2FnZ2Vy44GL44KJT3BlbkFwaSBHZW5lcmF0b3LjgadTcHJpbmfjga7jgrPjg7zjg4njgpLoh6rli5XnlJ/miJBdKGh0dHBzOi8vcWlpdGEuY29tL2xpdHRsZUZlZXQvaXRlbXMvNDkyZGYyYWQ2OGEwNzk5YTVlNWUpIGJ5IFtAbGl0dGxlRmVldF0oaHR0cHM6Ly9xaWl0YS5jb20vbGl0dGxlRmVldCkgYXQgW1FpaXRhXShodHRwczovL3FpaXRhLmNvbS8pCi0gMjAxOS0wOS0yNCAtIFtFaW5lIFN0dW5kZSB3YXMgbWl0IEFwaSBGaXJzdCFdKGh0dHBzOi8vd3d3LnNsaWRlc2hhcmUubmV0L0phbldlaW5zY2hlbmtlci9laW5lLXN0dW5kZS13YXMtbWl0LWFwaS1maXJzdCkgYnkgW0BqYW53ZWluc2NoZW5rZXJdKGh0dHBzOi8vdHdpdHRlci5jb20vamFud2VpbnNjaGVua2VyKSBhdCBbSmF2YSBGb3J1bSBOb3JkXShodHRwczovL2phdmFmb3J1bW5vcmQuZGUvKQotIDIwMTktMTAtMDkgLSBbb3BlbmFwaS1nZW5lcmF0b3Ig44Gn55Sf5oiQ44GX44GfIEdvIOOCr+ODqeOCpOOCouODs+ODiOOBpyBCZWFyZXIg6KqN6Ki844KS44GZ44KLXShodHRwczovL2F1dG9wcC10ZWNoLmhhdGVuYWJsb2cuY29tL2VudHJ5LzIwMTkvMTAvMDkvMjIyMDM5KSBieSBbQWtpcmEgVGFuaW11cmFdKGh0dHBzOi8vZ2l0aHViLmNvbS9hdXRvcHApCi0gMjAxOS0xMC0xMCAtIFtBdXRvbWF0aWMgR2VuZXJhdGlvbiBvZiBSRVNUIENsaWVudHNdKGh0dHBzOi8vd3d3Lm1lZXR1cC5jb20vZnItRlIvQ3JpdGVvLUxhYnMtVGVjaC1UYWxrcy9ldmVudHMvMjY0Nzc1NzY4LykgYnkgVGhvbWFzIFBleXJhcmQsIFNlbmlvciBTb2Z0d2FyZSBFbmdpbmVlciBhdCBDcml0ZW8gaW4gW0Z1bGwtU3RhY2sgVGVjaCBUYWxrcyAoTWVldHVwKV0oaHR0cHM6Ly93d3cubWVldHVwLmNvbS9mci1GUi9Dcml0ZW8tTGFicy1UZWNoLVRhbGtzL2V2ZW50cy8yNjQ3NzU3NjgvKQotIDIwMTktMTAtMTIgLSBbT3BlbkFwaeiHquWKqOeUn+aIkGNsaWVudF0oaHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3d4aWQyNzk4MjI2L2FydGljbGUvZGV0YWlscy8xMDI1Mjc0NjcpIGJ5IFvpg5Hms73mtLJdKGh0dHBzOi8vbWUuY3Nkbi5uZXQvd3hpZDI3OTgyMjYpCi0gMjAxOS0xMC0xNiAtIFtIb3cgdG8gc2hpcCBBUElzIGZhc3Rlcj9dKGh0dHBzOi8vbWVkaXVtLmNvbS9AYWNjb3VudHNfNzYyMjQvaG93LXRvLXNoaXAtYXBpcy1mYXN0ZXItY2FiZWYyZjgxOWU0KSBieSBbU2ltb24gR3VpbGxpYW1zIEAgUG9uaUNvZGVdKGh0dHBzOi8vcG9uaWNvZGUuZGV2KQotIDIwMTktMTAtMjIgLSBbT3BlbkFQSSArIFNwcmluZyBCb290KEtvdGxpbinjgafjg5XjgqHjgqTjg6vjg4Djgqbjg7Pjg63jg7zjg4lBUEnjgpLkvZzmiJDjgZnjgotdKGh0dHBzOi8vcWlpdGEuY29tL2Jvcm9ubmdvL2l0ZW1zLzRiNzhiOTI1MjYyMDlkYWVhZWU5KSBieSBbWXVraSBGdXJ1a2F3YV0oaHR0cHM6Ly90d2l0dGVyLmNvbS95dWtpX2Z1cnVrYXdhNSkKLSAyMDE5LTEwLTI0IC0gW01pY3JvcHJvZmlsZSBPcGVuQVBJIC0gQ29kZSBGaXJzdCBvciBEZXNpZ24gRmlyc3Q/XShodHRwczovL2dpdGh1Yi5jb20vcGUtc3QvYXBpZG9jcy9ibG9iL21hc3Rlci9NaWNyb1Byb2ZpbGUtT3BlbkFQSS1hbGwtc2xpZGVzLnBkZikgYnkgW1BldGVyIFtwyZvKg8mZXSBTdGVpbmVyXShodHRwczovL3R3aXR0ZXIuY29tL3Blc2NoZSkgYXQgW2VjbGlwc2Vjb24gRXVyb3BlIDIwMTldKGh0dHBzOi8vd3d3LmVjbGlwc2Vjb24ub3JnL2V1cm9wZTIwMTkvc2Vzc2lvbnMvbWljcm9wcm9maWxlLW9wZW5hcGktY29kZS1maXJzdC1vci1kZXNpZ24tZmlyc3QpCi0gMjAxOS0xMS0wNiAtIFtHZW5lcmF0aW5nIEFQSSBjbGllbnRzIGJhc2VkIG9uIE9wZW5BUEkgdjMgc3BlY2lmaWNhdGlvbnNdKGh0dHBzOi8vOThlbGVtZW50cy5jb20vYmxvZy9nZW5lcmF0aW5nLWFwaS1jbGllbnRzLWJhc2VkLW9uLW9wZW5hcGktdjMtc3BlY2lmaWNhdGlvbnMpIGJ5IFtEb21pbmlrIEphc3RyesSZYnNraSBAIDk4ZWxlbWVudHNdKGh0dHBzOi8vOThlbGVtZW50cy5jb20pCi0gMjAxOS0xMS0wNiAtIFtPcGVuQVBJ44KS5Yip55So44GX44Gm6Ieq5YmN44GuQVBJ44K144O844OQ44O8KFNpbmF0cmEp44KS56e75qSN44GX44Gf5pmC44Gu44Oh44OiXShodHRwczovL3FpaXRhLmNvbS9ZYXN1aGlyb0FCRS9pdGVtcy9jNzM5MjBlYWIyZDlkNmU5N2ZkOSkgYnkgW1lhc3VoaXJvIEFCRV0oaHR0cHM6Ly90d2l0dGVyLmNvbS9ZYXN1aGlyb0FCRSkKLSAyMDE5LTExLTA3IC0gW0FQSSBGaXJzdCBkZXZlbG9wbWVudCB3aXRoIE9wZW5BUEkgLSBZb3Ugc2hvdWxkIHlvdSBwcmFjdGlzZSBpdCAhP10oaHR0cHM6Ly93d3cueW91dHViZS5jb20vd2F0Y2g/dj1GOWlGM2ExWjhZOCkgYnkgW05pY2sgVmFuIEhvb2ZdKGh0dHBzOi8vd3d3Lm5pY2t2YW5ob29mLmNvbS8pIGF0IFtEZXZveHggQmVsZ2l1bSAyMDE5XShodHRwczovL2Rldm94eC5iZS8pCi0gMjAxOS0xMS0wOCAtIFtKSGlwc3RlciBiZXlvbmQgQ1JVRCAtIEFQSS1GaXJzdCBmb3IgRW50ZXJwcmlzZXMgYnkgRW5yaWNvIENvc3RhbnppXShodHRwczovL3d3dy55b3V0dWJlLmNvbS93YXRjaD92PW0yOEpGb3ZLUTIwKSBieSBbRW5yaWNvIENvc3RhbnppXShodHRwczovL3R3aXR0ZXIuY29tL2Vucmljb2Nvc3RhbnppKSBhdCBbSkhpcHN0ZXIgQ29uZiAyMDE5IGluIFBhcmlzXShodHRwczovL2poaXBzdGVyLWNvbmYuZ2l0aHViLmlvLykKLSAyMDE5LTExLTExIC0gW1R5cGVTY3JpcHQgUkVTVCBBUEnjgq/jg6njgqTjgqLjg7Pjg4hdKGh0dHBzOi8vcWlpdGEuY29tL3VuaHVycmllZC9pdGVtcy83Yjc0ZjdkM2M0MzU0NWRhZGQyYikgYnkgW0B1bmh1cnJpZWRdKGh0dHBzOi8vcWlpdGEuY29tL3VuaHVycmllZCkKLSAyMDE5LTExLTExIC0gW09uZSBTcGVjIHRvIFJ1bGUgdGhlbSBhbGwgLSBPcGVuQVBJIGluIEFjdGlvbl0oaHR0cHM6Ly93d3cueW91dHViZS5jb20vd2F0Y2g/dj1NTWF5X25odDhlYykgYnkgW0FuZHJlYXMgTGl0dF0oaHR0cHM6Ly9naXRodWIuY29tL2xpdHRsZHIpIGF0IFtjb2RlLnRhbGtzIDIwMTldKGh0dHBzOi8vd3d3LmNvZGV0YWxrcy5jb20vKQotIDIwMTktMTEtMTMgLSBbT3BlbkFQSSAzLjAgRWRpdG9yIEFuZCBHZW5lcmF0b3IgV2l0aCBBIFNwcmluZyBCb290IEV4YW1wbGVdKGh0dHBzOi8vc2ltcGx5LWhvdy5jb20vZGVzaWduLWFuZC1nZW5lcmF0ZS1hcGktY29kZS1mcm9tLW9wZW5hcGkpIGF0IFtTaW1wbHkgSG93XShodHRwczovL3NpbXBseS1ob3cuY29tLykKLSAyMDE5LTExLTE3IC0gW09wZW5BUEkgR2VuZXJhdG9yIFlvdVR1YmUgcGxheWxpc3RdKGh0dHBzOi8vd3d3LnlvdXR1YmUuY29tL3BsYXlsaXN0P2xpc3Q9UEx0SnlIVk1kemZGNmZCa09VVjVWRFZFclAyM0NHZ0hJeSkgYXQgW1lvdVR1YmVdKGh0dHBzOi8vd3d3LnlvdXR1YmUuY29tKQotIDIwMTktMTEtMjAgLSBbSW50cm9kdWN0aW9uIHRvIE9wZW5BUEldKGh0dHBzOi8vbm90aS5zdC9sb3JuYWphbmUvSHZESDdVL2ludHJvZHVjdGlvbi10by1vcGVuYXBpKSBieSBbTG9ybmEgTWl0Y2hlbGxdKGh0dHBzOi8vdHdpdHRlci5jb20vbG9ybmFqYW5lKSBhdCBbR09UTyBDb3BlbmhhZ2VuIDIwMTldKGh0dHBzOi8vZ290b2NwaC5jb20vMjAxOS8pCi0gMjAxOS0xMS0yMCAtIFtIb3cgdG8gR2VuZXJhdGUgQW5ndWxhciBjb2RlIGZyb20gT3BlbkFQSSBzcGVjaWZpY2F0aW9uc10oaHR0cHM6Ly9kb3RuZXR0aG91Z2h0cy5uZXQvaG93LXRvLWdlbmVyYXRlLWFuZ3VsYXItY29kZS1mcm9tLW9wZW5hcGktc3BlY2lmaWNhdGlvbnMvKSBieSBBbnVyYWoKLSAyMDE5LTExLTIzIC0gW1N3YWdnZXIg44Gn44Gv44Gq44GEIE9wZW5BUEkgU3BlY2lmaWNhdGlvbiAzLjAg44Gr44KI44KLIEFQSSDjgrXjg7zjg5Djg7zplovnmbpdKGh0dHBzOi8vd3d3LnNsaWRlc2hhcmUubmV0L3RlY2hibG9neWFob28vc3dhZ2dlci1vcGVuYXBpLXNwZWNpZmljYXRpb24tMzAtYXBpKSBieSBbVGV0c3V5YSBNb3JpbW90b10oaHR0cHM6Ly9naXRodWIuY29tL3QyeSkgYXQgW0pKVUcgQ0NDIDIwMTkgRmFsbF0oaHR0cHM6Ly9jY2MyMDE5ZmFsbC5qYXZhLXVzZXJzLmpwLykKLSAyMDE5LTExLTI0IC0gW0FjY2VsZXJhdGUgRmx1dHRlciBkZXZlbG9wbWVudCB3aXRoIE9wZW5BUEkgYW5kIERhcnQgY29kZSBnZW5lcmF0aW9uXShodHRwczovL21lZGl1bS5jb20vQGlyaW5hc291dGh3ZWxsXzIyMC9hY2NlbGVyYXRlLWZsdXR0ZXItZGV2ZWxvcG1lbnQtd2l0aC1vcGVuYXBpLWFuZC1kYXJ0LWNvZGUtZ2VuZXJhdGlvbi0xZjE2ZjgzMjlhNmEpIGJ5IFtJcmluYSBTb3V0aHdlbGxdKGh0dHBzOi8vbWVkaXVtLmNvbS9AaXJpbmFzb3V0aHdlbGxfMjIwKQotIDIwMTktMTEtMjUgLSBbb3BlbmFwaS1nZW5lcmF0b3LjgafmiYvou73jgavjgrnjgr/jg5bjgrXjg7zjg5Djgajjgq/jg6njgqTjgqLjg7Pjg4jjga7nlJ/miJBdKGh0dHBzOi8vcWlpdGEuY29tL3BvY2hvcG9jaG8xMy9pdGVtcy84ZGI2NjJlMTkzNGZiMmI0MDhiOCkgYnkgW0Bwb2Nob3BvY2hvMTNdKGh0dHBzOi8vdHdpdHRlci5jb20vcG9jaG9wb2NobzEzKQotIDIwMTktMTEtMjYgLSBbQ29yZGFDb24gMjAxOSBIaWdobGlnaHRzOiBCcmFpZCBTZXJ2ZXIgYW5kIE9wZW5BUEkgR2VuZXJhdG9yIGZvciBDb3JkYSBDbGllbnQgQVBJ4oCZc10oaHR0cHM6Ly9ibG9nLmI5bGFiLmNvbS9jb3JkYWNvbi0yMDE5LWhpZ2hsaWdodHMtYnJhaWQtc2VydmVyLWFuZC1vcGVuYXBpLWdlbmVyYXRvci1mb3ItY29yZGEtZmxvd3MtYXBpLXMtZDI0MTc5Y2NiMjdjKSBieSBbQWRlbCBSdXN0dW1dKGh0dHBzOi8vYmxvZy5iOWxhYi5jb20vQGFkZWxyZXN0b20pIGF0IFtCOWxhYl0oaHR0cHM6Ly9ibG9nLmI5bGFiLmNvbS8pCi0gMjAxOS0xMi0wMyAtIFtBIFJvYWQgdG8gTGVzcyBDb2Rpbmc6IEF1dG8tR2VuZXJhdGUgQVBJTGlicmFyeV0oaHR0cHM6Ly93d3cuY29yZGEubmV0L2Jsb2cvYS1yb2FkLXRvLWxlc3MtY29kaW5nLWF1dG8tZ2VuZXJhdGUtYXBpbGlicmFyeS8pIGF0IFtDb3JkYSBCbG9nXShodHRwczovL3d3dy5jb3JkYS5uZXQvYmxvZy8pCi0gMjAxOS0xMi0wNCAtIFtBbmd1bGFy77yLTmVzdEpT77yLT3BlbkFQSe+8iFN3YWdnZXLvvInjgafjg57jgqTjgq/jg63jgrXjg7zjg5PjgrnjgpLoppbph47jgavlhaXjgozjgZ/nkrDlooPjgpLogIPjgYjjgotdKGh0dHBzOi8vcWlpdGEuY29tL3RlcmFjeTU1L2l0ZW1zLzAzMjdjN2ExNzBlYzc3Mjk3MGM2KSBieSBb44Gm44KJ44GX44O8XShodHRwczovL3R3aXR0ZXIuY29tL3RlcmFjeTU1KQotIDIwMTktMTItMDUgLSBbQ29kZSBnZW5lcmF0aW9uIG9uIHRoZSBKYXZhIFZNXShodHRwczovL3NwZWFrZXJkZWNrLmNvbS9zdWxsaXMvY29kZS1nZW5lcmF0aW9uLW9uLXRoZS1qYXZhLXZtLTIwMTktMTItMDUpIGJ5IFtTZWFuIFN1bGxpdmFuXShodHRwczovL3NwZWFrZXJkZWNrLmNvbS9zdWxsaXMpCi0gMjAxOS0xMi0xNyAtIFtPcGVuQVBJIEdlbmVyYXRvciDjgacgT0F1dGgyIOOCouOCr+OCu+OCueODiOODvOOCr+ODs+eZuuihjOOBruOCs+ODvOODieOBvuOBp+eUn+aIkOOBl+OBpuOBv+OCi10oaHR0cHM6Ly93d3cudGVjaHNjb3JlLmNvbS9ibG9nLzIwMTkvMTIvMTcvb3BlbmFwaS1nZW5lcmF0b3Itb2F1dGgyLWFjY2Vzc3Rva2VuLykgYnkgW1RFQ0hTQ09SRV0oaHR0cHM6Ly93d3cudGVjaHNjb3JlLmNvbS9ibG9nLykKLSAyMDE5LTEyLTIzIC0gW1VzZSBBZGEgZm9yIFlvdXIgV2ViIERldmVsb3BtZW50XShodHRwczovL3d3dy5lbGVjdHJvbmljZGVzaWduLmNvbS90ZWNobm9sb2dpZXMvZW1iZWRkZWQtcmV2b2x1dGlvbi9hcnRpY2xlLzIxMTE5MTc3L3VzZS1hZGEtZm9yLXlvdXItd2ViLWRldmVsb3BtZW50KSBieSBbU3RlcGhhbmUgQ2FycmV6XShodHRwczovL2dpdGh1Yi5jb20vc3RjYXJyZXopCi0gMjAxOS0xMi0yMyAtIFtPcGVuQVBJ44Gu44K544Kt44O844Oe44KS5YiG5Ymy44O75qeL6YCg5YyW44GX44Gm44GE44GP5pa55rOVXShodHRwczovL2dpZnQtdGVjaC5jby5qcC9hcnRpY2xlcy9zdHJ1Y3R1cmVkLW9wZW5hcGktc2NoZW1hKSBieSBb5bCP6aOv5aGa6YGU5LmfXShodHRwczovL2dpdGh1Yi5jb20vdDJoNSkgYXQgW0dpRlQsIEluY10oaHR0cHM6Ly9naWZ0LXRlY2guY28uanAvKQotIDIwMjAtMDEtMTcgLSBbT3BlbkFQSSBkZW1vIGZvciBQdWxwIDMuMCBHQV0oaHR0cHM6Ly93d3cueW91dHViZS5jb20vd2F0Y2g/dj1tRkJQLU0wWlBmdyZ0PTE3OHMpIGJ5IFtQdWxwXShodHRwczovL3d3dy55b3V0dWJlLmNvbS9jaGFubmVsL1VDSTQzRmZzNFZQRHY3YXdYdnZCSmZSUSkgYXQgW1lvdXR1YmVdKGh0dHBzOi8vd3d3LnlvdXR1YmUuY29tLykKLSAyMDIwLTAxLTE5IC0gW1doeSBkb2N1bWVudCBhIFJFU1QgQVBJIGFzIGNvZGU/XShodHRwczovL2Rldi50by9yb2xmc3RyZWVma2Vyay93aHktZG9jdW1lbnQtYS1yZXN0LWFwaS1hcy1jb2RlLTVlN3ApIGJ5IFtSb2xmIFN0cmVlZmtlcmtdKGh0dHBzOi8vZ2l0aHViLmNvbS9ycHN0cmVlZikgYXQgW0RFViBDb21tdW5pdHldKGh0dHBzOi8vZGV2LnRvKQotIDIwMjAtMDEtMjggLSBbR2V0IFlvdXIgU2VydmVybGVzcyBTd2FnZ2VyIEJhY2sgd2l0aCBPcGVuQVBJXShodHRwczovL2Rldi50by9tYXR0dHlsZXIvZ2V0LXlvdXItc2VydmVybGVzcy1zd2FnZ2VyLWJhY2std2l0aC1vcGVuYXBpLTQ4Z2MpIGJ5IFtNYXR0IFR5bGVyXShodHRwczovL2Rldi50by9tYXR0dHlsZXIpCi0gMjAyMC0wMS0zMCAtIFtPcGVuQVBJIEdlbmVyYXRvcuOBuOOBruOCs+ODs+ODiOODquODk+ODpeODvOODiF0oaHR0cHM6Ly93d3cueXV0YWthMG0ud29yay9lbnRyeS8yMDIwLzAxLzMwLzE2MzkwNSkgYnkgW3l1dGFrYTBtXShodHRwczovL2dpdGh1Yi5jb20veXV0YWthMG0pCi0gMjAyMC0wMi0wMSAtIFtVc2luZyBPcGVuQVBJIHRvIE1heGltaXNlIFlvdXIgUHVscCAzIEV4cGVyaWVuY2VdKGh0dHBzOi8vZm9zZGVtLm9yZy8yMDIwL3NjaGVkdWxlL2V2ZW50L29wZW5hcGkvKSBieSBbRGVubmlzIEtsaWJhbl0oaHR0cHM6Ly9naXRodWIuY29tL2RrbGliYW4vKSBhdCBbRk9TREVNXShodHRwczovL2Zvc2RlbS5vcmcvKQotIDIwMjAtMDItMDcgLSBbV2h5IHlvdSBzaG91bGQgdXNlIE9wZW5BUEkgZm9yIHlvdXIgQVBJIGRlc2lnbl0oaHR0cHM6Ly93d3cueW91dHViZS5jb20vd2F0Y2g/dj16aGI3dlVBcExXOCZ0PTkyN3MpIGJ5IFtOaWNrIFZhbiBIb29mXShodHRwczovL2FwaWNvbmZlcmVuY2UubmV0L3NwZWFrZXIvbmljay12YW4taG9vZi8pIGF0IFtBUEkgQ29uZmVyZW5jZV0oaHR0cHM6Ly9hcGljb25mZXJlbmNlLm5ldC8pCi0gMjAyMC0wMi0xNyAtIFtSdWJ5bmV0ZXM6IHVzaW5nIE9wZW5BUEkgdG8gdmFsaWRhdGUgS3ViZXJuZXRlcyBjb25maWdzXShodHRwczovL3d3dy5icmlnaHRib3guY29tL2Jsb2cvMjAyMC8wMi8xNy91c2luZy1vcGVuYXBpLXRvLXZhbGlkYXRlLWt1YmVybmV0ZXMtY29uZmlncy8pIGJ5IE5laWwgV2lsc29uIGF0IFtCcmlnaHRib3hdKGh0dHBzOi8vd3d3LmJyaWdodGJveC5jb20vKQotIDIwMjAtMDItMjAgLSBbQnVpbGRpbmcgU0RLcyBmb3IgdGhlIGZ1dHVyZV0oaHR0cHM6Ly9kZXZibG9nLnhlcm8uY29tL2J1aWxkaW5nLXNka3MtZm9yLXRoZS1mdXR1cmUtYjc5ZmY3MjZkZmQ2KSBieSBbU2lkIE1hZXN0cmUgKFhlcm8pXShodHRwczovL3R3aXR0ZXIuY29tL3NpZG5leWFsbGVuKQotIDIwMjAtMDItMjcgLSBbTnV4dOWIqeeUqOODl+ODreODgOOCr+ODiOOBp0lFMTHjgajku7Loia/jgY/jgZnjgovjgZ/jgoHjga5FMkVdKGh0dHBzOi8vdGVjaC5tZWRwZWVyLmNvLmpwL2VudHJ5L2UyZS1pZTExKSBhdCBbTWVkcGVlci5jby5qcCBUZWNoIEJsb2ddKGh0dHBzOi8vdGVjaC5tZWRwZWVyLmNvLmpwLykKLSAyMDIwLTAyLTI5IC0gW1Byb3ZpZGluZyBTdXBwb3J0IHRvIElvVCBEZXZpY2VzIERlcGxveWVkIGluIERpc2Nvbm5lY3RlZCBSdXJhbCBFbnZpcm9ubWVudCAoQ29uZmVyZW5jZSBwYXBlcildKGh0dHBzOi8vbGluay5zcHJpbmdlci5jb20vY2hhcHRlci8xMC4xMDA3Lzk3OC0zLTAzMC00MTQ5NC04XzE0KSBieSBTZXJnaW8gTGFzbywgRGFuaWVsIEZsb3Jlcy1NYXJ0w61uLCBKdWFuIEx1aXMgSGVycmVyYUNhcmxvcywgQ2FuYWxKdWFuIE1hbnVlbCwgTXVyaWxsb0phdmllciBCZXJyb2NhbAotIDIwMjAtMDMtMDIgLSBbSG93IFRvIEdlbmVyYXRlIEFuZ3VsYXIgJiBTcHJpbmcgQ29kZSBGcm9tIE9wZW5BUEkgU3BlY2lmaWNhdGlvbl0oaHR0cHM6Ly93d3cubW9ra2FwcHMuZGUvYmxvZy9ob3ctdG8tZ2VuZXJhdGUtYW5ndWxhci1hbmQtc3ByaW5nLWNvZGUtZnJvbS1vcGVuLWFwaS1zcGVjaWZpY2F0aW9uLykgYnkgW01pY2hhZWwgSG9mZm1hbm5dKGh0dHBzOi8vd3d3Lm1va2thcHBzLmRlLykKLSAyMDIwLTAzLTAyIC0gW09wZW5BUEkgR2VuZXJhdG9yICsgVHlwZVNjcmlwdCDjgaflp4vjgoHjgovoh6rli5XnlJ/miJDjga7lnovjgavlrojjgonjgozjgZ/osYrjgYvjgarjgq/jg6njgqTjgqLjg7Pjg4jnlJ/mtLtdKGh0dHBzOi8vZ2lmdC10ZWNoLmNvLmpwL2FydGljbGVzL29wZW5hcGktZ2VuZXJhdG9yLXR5cGVzY3JpcHQpIGJ5IFvkupTnmb7olLUg55u05qi5XShodHRwczovL2dpZnQtdGVjaC5jby5qcC9tZW1iZXJzL25hb2tpaW9yb2kpIGF0IFtHaUZU5qCq5byP5Lya56S+XShodHRwczovL2dpZnQtdGVjaC5jby5qcC8pCi0gMjAyMC0wMy0xMCAtIFtPcGVuQVBJIEdlbmVyYXRvciBNZWV0dXAgIzFdKGh0dHBzOi8vc3BlYWtlcmRlY2suY29tL2FraWhpdG9fbmFrYW5vL29wZW5hcGktZ2VuZXJhdG9yLW1lZXR1cC1udW1iZXItMSkgYnkgW+S4remHjuaageS6ul0oaHR0cHM6Ly9naXRodWIuY29tL2Fja2ludG9zaCkgYXQgW09wZW5BUEkgR2VuZXJhdG9yIE1lZXR1cCAjMV0oaHR0cHM6Ly9vcGVuYXBpLWdlbmVyYXRvci1tZWV0dXAuY29ubnBhc3MuY29tL2V2ZW50LzE2ODE4Ny8pCi0gMjAyMC0wMy0xNSAtIFtMb2FkIFRlc3RpbmcgWW91ciBBUEkgd2l0aCBTd2FnZ2VyL09wZW5BUEkgYW5kIGs2XShodHRwczovL2s2LmlvL2Jsb2cvbG9hZC10ZXN0aW5nLXlvdXItYXBpLXdpdGgtc3dhZ2dlci1vcGVuYXBpLWFuZC1rNikKLSAyMDIwLTA0LTEzIC0gW+S/uueahOOAkE9BU+OAkeOBqOOBruWQkeOBjeWQiOOBhOaWuSAo54iG6YCf44GnT3BlbkFQSeOBqOWPi+mBlOOBq+OBquOCjeOBhildKGh0dHBzOi8vdGVjaC1ibG9nLm9wdGltLmNvLmpwL2VudHJ5LzIwMjAvMDQvMTMvMTAwMDAwKSBpbiBbT1BUaW0gQmxvZ10oaHR0cHM6Ly90ZWNoLWJsb2cub3B0aW0uY28uanAvKQotIDIwMjAtMDQtMjIgLSBbSW50cm9kdWN0aW9uIHRvIE9wZW5BUEkgR2VuZXJhdG9yXShodHRwczovL25vcmRpY2FwaXMuY29tL2ludHJvZHVjdGlvbi10by1vcGVuYXBpLWdlbmVyYXRvci8pIGJ5IFtLcmlzdG9waGVyIFNhbmRvdmFsXShodHRwczovL25vcmRpY2FwaXMuY29tL2F1dGhvci9zYW5kb3ZhbGVmZmVjdC8pIGluIFtOb3JkaWMgQVBJc10oaHR0cHM6Ly9ub3JkaWNhcGlzLmNvbS8pCi0gMjAyMC0wNC0yNyAtIFtIb3cgd2UgdXNlIE9wZW4gQVBJIHYzIHNwZWNpZmljYXRpb24gdG8gYXV0by1nZW5lcmF0ZSBBUEkgZG9jdW1lbnRhdGlvbiwgY29kZS1zbmlwcGV0cyBhbmQgY2xpZW50c10oaHR0cHM6Ly9tZWRpdW0uY29tL3BkZi1nZW5lcmF0b3ItYXBpL2hvdy13ZS11c2Utb3Blbi1hcGktdjMtc3BlY2lmaWNhdGlvbi10by1hdXRvLWdlbmVyYXRlLWFwaS1kb2N1bWVudGF0aW9uLWNvZGUtc25pcHBldHMtYW5kLWNsaWVudHMtZDEyN2EzY2VhNzg0KSBieSBbVGFuZWwgVMOkaGVww7VsZF0oaHR0cHM6Ly9tZWRpdW0uY29tL0B0YW5lbC50YWhlcG9sZCkKLSAyMDIwLTA1LTA5IC0gW09wZW5BUEnjgafjgYrmiYvou73jgavjg6Ljg4Pjgq9BUEnjgrXjg7zjg5Djg7zjgpLli5XjgYvjgZldKGh0dHBzOi8vcWlpdGEuY29tL2thc2FfbGUvaXRlbXMvOTdjYTZhOGRkNDYwNTY5NWMyNWMpIGJ5IFtTYWNoaWUgS2FtYmFdKGh0dHBzOi8vcWlpdGEuY29tL2thc2FfbGUpCi0gMjAyMC0wNS0xOCAtIFtTcHJpbmcgQm9vdCBSRVNUIHdpdGggT3BlbkFQSSAzXShodHRwczovL2Rldi50by9hbGZvbnpqYW5mcml0aHovc3ByaW5nLWJvb3QtcmVzdC13aXRoLW9wZW5hcGktMy01OWptKSBieSBbQWxmb256IEphbiBGcml0aHpdKGh0dHBzOi8vZGV2LnRvL2FsZm9uemphbmZyaXRoeikKLSAyMDIwLTA1LTE5IC0gW0RlYWQgU2ltcGxlIEFQSXMgd2l0aCBPcGVuIEFQSV0oaHR0cHM6Ly93d3cueW91dHViZS5jb20vd2F0Y2g/dj1zSWFYbVI2eFJBdykgYnkgW0NocmlzIFRhbmtlcnNsZXldKGh0dHBzOi8vZ2l0aHViLmNvbS9kcmFnb25tYW50YW5rKSBhdCBbTmV4bW9dKGh0dHBzOi8vZGV2ZWxvcGVyLm5leG1vLmNvbS8pCi0gMjAyMC0wNS0yMiAtIFtUeXBlU2NyaXB0IFJFU1QgQVBJIENsaWVudF0oaHR0cHM6Ly9kZXYudG8vdW5odXJyaWVkL3R5cGVzY3JpcHQtcmVzdC1hcGktY2xpZW50LTRpbjMpIGJ5IFsidW5odXJyaWVkIl0oaHR0cHM6Ly9kZXYudG8vdW5odXJyaWVkKQotIDIwMjAtMDUtMjggLSBb44CQ5L2/55SoIGxvdGlmeSArIFN3YWdnZXIg5bu6572u5Y+v5YWx55So55qEIExJTkUgTm90aWZ5IGJvdOOAkSAtICNOaUppYSBAIENoYXRib3QgRGV2ZWxvcGVyIFRhaXdhbiDnrKwgIzE5IOWwj+iBml0oaHR0cHM6Ly93d3cueW91dHViZS5jb20vd2F0Y2g/dj1hZ1lWejZkemgxSSkgYnkgW0NoYXRib3QgRGV2ZWxvcGVyIFRhaXdhbl0oaHR0cHM6Ly93d3cueW91dHViZS5jb20vY2hhbm5lbC9VQ3hlWVV5Wk5uSG1wWDIzWU5GLWV3dncpCi0gMjAyMC0wNS0yOCAtIFtCdWlsZGluZyBBUElzIHdpdGggTGFyYXZlbCB1c2luZyBPcGVuQVBJXShodHRwczovL3d3dy55b3V0dWJlLmNvbS93YXRjaD92PXhleEx2UXFBaGlBKSBieSBbQ2hyaXMgVGFua2Vyc2xleV0oaHR0cHM6Ly9naXRodWIuY29tL2RyYWdvbm1hbnRhbmspIGF0IFtMYXJhY29uIEVVXShodHRwczovL2xhcmFjb24uZXUvKQotIDIwMjAtMDYtMTIgLSBbSW50ZXJvcGVyYWJpbGl0eSBieSBjb25zdHJ1Y3Rpb246IGNvZGUgZ2VuZXJhdGlvbiBmb3IgQXJyb3doZWFkIENsaWVudHNdKGh0dHBzOi8vaWVlZXhwbG9yZS5pZWVlLm9yZy9kb2N1bWVudC85Mjc0NzQ2KSBieSBNaWNoZWxlIEFsYmFubywgQnJpYW4gTmllbHNlbiBhdCBbMjAyMCBJRUVFIENvbmZlcmVuY2Ugb24gSW5kdXN0cmlhbCBDeWJlcnBoeXNpY2FsIFN5c3RlbXMgKElDUFMpXShodHRwczovL2llZWV4cGxvcmUuaWVlZS5vcmcveHBsL2NvbmhvbWUvOTI3NDU0NC9wcm9jZWVkaW5nKQotIDIwMjAtMDYtMjMgLSBb5paw6KaP44K144O844OQ44O844Ki44OX44Oq44Kx44O844K344On44Oz44GrVHlwZVNjcmlwdOOCkuaOoeeUqOOBl+OBpuOBv+OBn10oaHR0cHM6Ly93d3cuY2FtLWluYy5jby5qcC9uZXdzLzIwMjAwNjIzKSBhdCBbQ0FNIFRlY2ggQmxvZ10oaHR0cHM6Ly93d3cuY2FtLWluYy5jby5qcC9uZXdzL3RlY2gtYmxvZy8pCi0gMjAyMC0wNi0yOSAtIFtBcnRpZmFjdCBBYnN0cmFjdDogRGVwbG95bWVudCBvZiBBUElzIG9uIEFuZHJvaWQgTW9iaWxlIERldmljZXMgYW5kIE1pY3JvY29udHJvbGxlcnNdKGh0dHBzOi8vaWVlZXhwbG9yZS5pZWVlLm9yZy9kb2N1bWVudC85MTI3MzUzKSBieSBbU2VyZ2lvIExhc28gOyBNYXJpbm8gTGluYWplIDsgSm9zZSBHYXJjaWEtQWxvbnNvIDsgSnVhbiBNLiBNdXJpbGxvIDsgSmF2aWVyIEJlcnJvY2FsXShodHRwczovL2llZWV4cGxvcmUuaWVlZS5vcmcvZG9jdW1lbnQvOTEyNzM1My9hdXRob3JzI2F1dGhvcnMpIGF0IFsyMDIwIElFRUUgSW50ZXJuYXRpb25hbCBDb25mZXJlbmNlIG9uIFBlcnZhc2l2ZSBDb21wdXRpbmcgYW5kIENvbW11bmljYXRpb25zIChQZXJDb20pXShodHRwczovL2llZWV4cGxvcmUuaWVlZS5vcmcveHBsL2NvbmhvbWUvOTEyNTQ0OS9wcm9jZWVkaW5nKQotIDIwMjAtMDctMDcgLSBbNSBCZXN0IEFQSSBEb2N1bWVudGF0aW9uIFRvb2xzXShodHRwczovL2Jsb2cuZHJlYW1mYWN0b3J5LmNvbS81LWJlc3QtYXBpLWRvY3VtZW50YXRpb24tdG9vbHMvKSBieSBTdXNhbm5hIEJvdXNlIGF0IFtEcmVhbUZhY3RvcnkgQmxvZ10oaHR0cHM6Ly9ibG9nLmRyZWFtZmFjdG9yeS5jb20vKQotIDIwMjAtMDctMTIgLSBbT3BlbiBBUEkgMy4w44Gu5a6a576p44GL44KJZ29sYW5n44Gu44K144O844OQ44Kz44O844OJ44Gu44K544Kx44Or44OI44Oz44KS5L2c5oiQ44GZ44KLXShodHRwczovL3FpaXRhLmNvbS9wcm9mZXNzb3IvaXRlbXMvNGNiZDA0ZWMwODRkMTMwNTdiYzIpIGJ5IFtAcHJvZmVzc29yIChRaWl0YSBCbG9nKV0oaHR0cHM6Ly9xaWl0YS5jb20vcHJvZmVzc29yKQotIDIwMjAtMDctMjAgLSBbRGF0YWRvZyBBUEkgY2xpZW50IGxpYnJhcmllcyBub3cgYXZhaWxhYmxlIGZvciBKYXZhIGFuZCBHb10oaHR0cHM6Ly93d3cuZGF0YWRvZ2hxLmNvbS9ibG9nL2phdmEtZ28tbGlicmFyaWVzLykgYnkgSm9yZGFuIE9iZXkgYXQgW0RhdGFkb2cgQmxvZ10oaHR0cHM6Ly93d3cuZGF0YWRvZ2hxLmNvbS9ibG9nKQotIDIwMjAtMDctMjMgLSBbR2VuZXJhdGUgQ2xpZW50IFNESyBmb3IgLk5FVCBDb3JlIHVzaW5nIE9wZW4gQXBpXShodHRwczovL2Rldi50by9ubzBsYXcxL2dlbmVyYXRlLWNsaWVudC1zZGstZm9yLW5ldC1jb3JlLXVzaW5nLW9wZW4tYXBpLTJkZ2gpIGJ5IFtOdW5vIFJlaXNdKGh0dHBzOi8vZGV2LnRvL25vMGxhdzEpCi0gMjAyMC0wNy0yNiAtIFtEYXJ044GuaHR0cF9pbnRlcmNlcHRvcuODqeOCpOODluODqeODquOCkuS9v+OBhuOBqOmFjeWIl+OBruOCr+OCqOODquODkeODqeODoeODvOOCv+OBjOa2iOOBiOOBpuOBl+OBvuOBhuS7tuOBruW/nOaApeWHpue9rl0oaHR0cHM6Ly9xaWl0YS5jb20vZ3lhbW90by9pdGVtcy9lZWVmZjgxYjY3NzA0ODczMTllZCkgYnkgW0BneWFtb3RvXShodHRwczovL3FpaXRhLmNvbS9neWFtb3RvKQotIDIwMjAtMDgtMDEgLSBbR2VuZXJhdGUgQW5ndWxhciBSZWFjdGl2ZUZvcm1zIGZyb20gU3dhZ2dlci9PcGVuQVBJXShodHRwczovL2Rldi50by9tYXJ0aW5tY3dob3J0ZXIvZ2VuZXJhdGUtYW5ndWxhci1yZWFjdGl2ZWZvcm1zLWZyb20tc3dhZ2dlci1vcGVuYXBpLTM1aDkpIGJ5IFtNYXJ0aW4gTWNXaG9ydGVyXShodHRwczovL2Rldi50by9tYXJ0aW5tY3dob3J0ZXIpCi0gMjAyMC0wOC0wMyAtIFtDcmlhbmRvIEJpYmxpb3RlY2FzIHBhcmEgQVBJcyBSRVNUZnVsIGNvbSBPcGVuQVBJLCBTd2FnZ2VyIEVkaXRvciBlIE9wZW5BUEkgR2VuZXJhdG9yXShodHRwczovL21lZGl1bS5jb20vQGV2ZXJpc0JyYXNpbC9jcmlhbmRvLWJpYmxpb3RlY2FzLXBhcmEtYXBpcy1yZXN0ZnVsLWNvbS1vcGVuYXBpLXN3YWdnZXItZWRpdG9yLWUtb3BlbmFwaS1nZW5lcmF0b3ItNzUzNDlhNjQyMGZkKSBieSBbZXZlcmlzIEJyYXNpbCAoYW4gTlRUIERBVEEgQ29tcGFueSldKGh0dHBzOi8vbWVkaXVtLmNvbS9AZXZlcmlzQnJhc2lsKQotIDIwMjAtMDgtMTkgLSBb44Oe44Kk44Kv44Ot44K144O844OT44K544KS6YCj5pC644GX44Gm44G/44KI44GGXShodHRwczovL3RoaW5raXQuY28uanAvYXJ0aWNsZS8xNzcwNCkgYnkgW+WyoeS6lSDoo5Xnn6Io44GK44GL44GEIOOChuOBhuOChCldKGh0dHBzOi8vdGhpbmtpdC5jby5qcC9hdXRob3IvMTc1ODgpLCBb5rOJIOWLnSjjgYTjgZrjgb8g44G+44GV44KLKV0oaHR0cHM6Ly90aGlua2l0LmNvLmpwL2F1dGhvci8xNzcwNSkgYXQgW1RoaW5rIElU77yI44K344Oz44Kv44Kk44OD44OI77yJXShodHRwczovL3RoaW5raXQuY28uanAvKQotIDIwMjAtMDgtMjUgLSBbT3BlbkFQSSBHZW5lcmF0b3Ig44GoIFR5cGVTY3JpcHQg44Gn5Z6L5a6J5YWo44Gr44OV44Ot44Oz44OI44Ko44Oz44OJ6ZaL55m644KS44GX44Gm44GE44KL6KmxXShodHRwczovL3RlY2guc21hcnRoci5qcC9lbnRyeS8yMDIwLzA4LzI1LzEzNTYzMSkgYXQgW1NtYXJ0SFIgVGVjaCBCbG9nXShodHRwczovL3RlY2guc21hcnRoci5qcC8pCi0gMjAyMC0wOS0xMCAtIFtJbnRyb2R1Y3Rpb24gdG8gT3BlbkFQSSB3aXRoIEluc3RhbmFdKGh0dHBzOi8vd3d3Lmluc3RhbmEuY29tL2Jsb2cvaW50cm9kdWN0aW9uLXRvLW9wZW5hcGktd2l0aC1pbnN0YW5hLykgYnkgW0NlZHJpYyBaaWVsXShodHRwczovL3d3dy5pbnN0YW5hLmNvbS9ibG9nL2F1dGhvci9jZWRyaWN6aWVsLykgYXQgW0luc3RhbmEgQmxvZ10oaHR0cHM6Ly93d3cuaW5zdGFuYS5jb20vYmxvZy8pCi0gMjAyMC0wOS0xNyAtIFtHZW5lcmF0ZSBQb3dlclNoZWxsU0RLIHVzaW5nIG9wZW5hcGktZ2VuZXJhdG9yXShodHRwczovL21lZGl1bS5jb20vQGdodWZ6LmxlYXJuL2dlbmVyYXRlLXBvd2Vyc2hlbGxzZGstdXNpbmctb3BlbmFwaS1nZW5lcmF0b3ItMzNiNzAwODkxZTMzKSBieSBbR2h1ZnJhbiBaYWhpZGldKGh0dHBzOi8vbWVkaXVtLmNvbS9AZ2h1ZnoubGVhcm4pCi0gMjAyMC0wOS0yNCAtIFtIb3cgdG8gYXV0b21hdGUgQVBJIGNvZGUgZ2VuZXJhdGlvbiAoT3BlbkFQSS9Td2FnZ2VyKSBhbmQgYm9vc3QgcHJvZHVjdGl2aXR5IC0gVHV0b3JpYWwgd2l0aCBSZWFjdCBOYXRpdmUgZmVhdHVyaW5nIFR5cGVTY3JpcHRdKGh0dHBzOi8vbWVkaXVtLmNvbS9Ac2NlbGVza2kvaG93LXRvLWF1dG9tYXRlLWFwaS1jb2RlLWdlbmVyYXRpb24tb3BlbmFwaS1zd2FnZ2VyLWFuZC1ib29zdC1wcm9kdWN0aXZpdHktMTE3NmEwMDU2ZDhhKSBieSBbU2FuamluIENlbGVza2ldKGh0dHBzOi8vbWVkaXVtLmNvbS9Ac2NlbGVza2kpCi0gMjAyMC0wOS0yNSAtIFtHZW5lcmF0ZSBPcGVuQVBJIEFuZ3VsYXIgQ2xpZW50XShodHRwczovL21lZGl1bS5jb20vQHBndXNvL2dlbmVyYXRlLW9wZW5hcGktYW5ndWxhci1jbGllbnQtOGM5Mjg4ZThiYmQ0KSBieSBbUGF0cmljXShodHRwczovL21lZGl1bS5jb20vQHBndXNvKQotIDIwMjAtMTAtMjQgLSBbV29ya2luZyB3aXRoIE1pY3Jvc29mdCBJZGVudGl0eSAtIFJlYWN0IE5hdGl2ZSBDbGllbnRdKGh0dHBzOi8vd3d3Lmpvc2VwaGd1YWRhZ25vLm5ldC8yMDIwLzEwLzI0L3dvcmtpbmctd2l0aC1taWNyb3NvZnQtaWRlbnRpdHktcmVhY3QtbmF0aXZlLWNsaWVudCkgYnkgW0pvc2VwaCBHdWFkYWdub10oaHR0cHM6Ly93d3cuam9zZXBoZ3VhZGFnbm8ubmV0LykKLSAyMDIwLTEwLTMxIC0gW1tCMl0gT3BlbkFQSSBTcGVjaWZpY2F0aW9u7Jy866GcIO2DgOyehS3shLjsnbTtlITtlZjqsowgQVBJIOqwnOuwnO2VmOq4sDog7Z2s66ed7Y64IFZTIOygiOunne2OuF0oaHR0cHM6Ly93d3cueW91dHViZS5jb20vd2F0Y2g/dj1KNEpITEVTQWlGaykgYnkg7LWc7YOc6rG0IGF0IFtGRUNvbmYgMjAyMF0oaHR0cHM6Ly8yMDIwLmZlY29uZi5rci8pCi0gMjAyMC0xMS0wNSAtIFtBdXRvbWF0ZWQgUkVTVC1BcGkgQ29kZSBHZW5lcmF0aW9uOiBXaWUgSVQtU3lzdGVtZSBtaXRlaW5hbmRlciBzcHJlY2hlbl0oaHR0cHM6Ly93d3cubWFzc2l2ZWFydC5jb20vYmxvZy9hdXRvbWF0ZWQtcmVzdC1hcGktY29kZS1nZW5lcmF0aW9uLXdpZS1pdC1zeXN0ZW1lLW1pdGVpbmFuZGVyLXNwcmVjaGVuKSBieSBTdGVmYW4gUm90dGVuc3RlaW5lciBhdCBbTUFTU0lWRSBBUlQgQmxvZ10oaHR0cHM6Ly93d3cubWFzc2l2ZWFydC5jb20vYmxvZykKLSAyMDIwLTEyLTAxIC0gW09wZW5BUEkgR2VuZXJhdG9y44GnR2/jga5BUEnjgrXjg7zjg5Djg7wv44Kv44Op44Kk44Ki44Oz44OI44Kz44O844OJ44KS6Ieq5YuV55Sf5oiQ44GZ44KLXShodHRwczovL3FpaXRhLmNvbS9zYWtpLWVuZ2luZWVyaW5nL2l0ZW1zL2IyMGQ4YjYwNzRjNGRhOTY2NGE1KSBieSBbQHNha2ktZW5naW5lZXJpbmddKGh0dHBzOi8vcWlpdGEuY29tL3Nha2ktZW5naW5lZXJpbmcpCi0gMjAyMC0xMi0wNCAtIFtTY2FsaW5nIHRoZSBUZXN0IENvdmVyYWdlIG9mIE9wZW5BUEkgR2VuZXJhdG9yIGZvciAzMCsgUHJvZ3JhbW1pbmcgTGFuZ3VhZ2VzXShodHRwczovL3d3dy55b3V0dWJlLmNvbS93YXRjaD92PTdMa2U5ZEhScVQwKSBieSBbV2lsbGlhbSBDaGVuZ10oaHR0cHM6Ly9naXRodWIuY29tL3dpbmczMjgpIGF0IFtPcGVuIFNvdXJjZSBTdW1taXQgSmFwYW4gKyBBdXRvbW90aXZlIExpbnV4IFN1bW1pdCAyMDIwXShodHRwczovL2V2ZW50cy5saW51eGZvdW5kYXRpb24ub3JnL2FyY2hpdmUvMjAyMC9vcGVuLXNvdXJjZS1zdW1taXQtamFwYW4vKSAoW1NsaWRlc10oaHR0cHM6Ly9zcGVha2VyZGVjay5jb20vd2luZzMyOC9zY2FsaW5nLXRoZS10ZXN0LWNvdmVyYWdlLW9mLW9wZW5hcGktZ2VuZXJhdG9yLWZvci0zMC1wbHVzLXByb2dyYW1taW5nLWxhbmd1YWdlcykpCi0gMjAyMC0xMi0wOSAtIFvjg5fjg63jgrjjgqfjgq/jg4jjgatPcGVuQVBJIEdlbmVyYXRvcuOBp+iHquWLleeUn+aIkOOBleOCjOOBn+Wei+S7mOOBjUFQSSBDbGllbnTjgpLlsI7lhaXjgZfjgZ/oqbFdKGh0dHBzOi8vcWlpdGEuY29tL3lvc2hpZnVqaVQvaXRlbXMvOTA1YzE4NzAwZWRlMjNmNDA4NDApIGJ5IFtAeW9zaGlmdWppVF0oaHR0cHM6Ly9naXRodWIuY29tL3lvc2hpZnVqaVQpCi0gMjAyMC0xMi0xNSAtIFtOZXh0LmpzICsgTmVzdEpTICsgR3JhcGhRTOOBp+WkieWMluOBq+i/veW+k+OBmeOCi+ODleODreODs+ODiOOCqOODs+ODieOBuCDjgJwg44K344On44OD44OU44Oz44Kw44Kv44O844Od44Oz44Gu5LqL5L6L57S55LuLXShodHRwczovL3RlY2hibG9nLnlhaG9vLmNvLmpwL2VudHJ5LzIwMjAxMjE1MzAwNTI5NTIvKSBieSBb5bCP5YCJIOmZuF0oaHR0cHM6Ly9naXRodWIuY29tL29ndWd1OSkgYXQgW1lhaG9vISBKQVBBTiBUZWNoIEJsb2ddKGh0dHBzOi8vdGVjaGJsb2cueWFob28uY28uanAvKQotIDIwMjEtMDEtMDggLSBbSGVsbG8sIE5ldyBBUEkg4oCTIFBhcnQgMV0oaHR0cHM6Ly93d3cubmdpbnguY29tL2Jsb2cvaGVsbG8tbmV3LWFwaS1wYXJ0LTEvKSBieSBbSmVyZW15IFNjaHVsbWFuXShodHRwczovL3d3dy5uZ2lueC5jb20vcGVvcGxlL2plcmVteS1zY2h1bG1hbi8pIGF0IFtNYWpvciBMZWFndWUgQmFzZWJhbGxdKGh0dHBzOi8vd3d3Lm1sYi5jb20pCi0gMjAyMS0wMS0xOCAtIFvjgIzjgqLjg5fjg6rplovnmbrjgYLjgovjgYLjgovjgI3jgpLnlpHjgYbjgZPjgajjgYvjgonlp4vjgb7jgaPjgZ/jgIFBUEkgQ2xpZW5044Kz44O844OJ44Gu6Ieq5YuV55Sf5oiQ44CQ44OH44OW44K544OIMjAyMOOAkV0oaHR0cHM6Ly9jb2RlemluZS5qcC9hcnRpY2xlL2RldGFpbC8xMzQwNj9wPTIpIGJ5IFtDb2RlWmluZee3qOmbhumDqF0oaHR0cHM6Ly9jb2RlemluZS5qcC9hdXRob3IvMSkKLSAyMDIxLTAyLTA1IC0gW1JFU1QtQVBJLVJvdW5kdHJpcCB3aXRoIFNwcmluZ0RvYyBhbmQgT3BlbkFQSSBHZW5lcmF0b3JdKGh0dHBzOi8vYmxvZy52aWFkZWUuZGUvZW4vcmVzdC1hcGktcm91bmR0cmlwKSBieSBbQmVuamFtaW4gS2xhdHRdKGh0dHBzOi8vdHdpdHRlci5jb20vYmVua2xhdHQpIGF0IFt2aWFkZWVdKGh0dHBzOi8vd3d3LnZpYWRlZS5kZS9lbi8pCi0gMjAyMS0wMi0xNyAtIFtSRVNULUFQSS1Sb3VuZHRyaXAgd2l0aCBTcHJpbmdEb2MgYW5kIE9wZW5BUEkgR2VuZXJhdG9yXShodHRwczovL21lZGl1bS5jb20vbmVyZC1mb3ItdGVjaC9yZXN0LWFwaS1yb3VuZHRyaXAtd2l0aC1zcHJpbmdkb2MtYW5kLW9wZW5hcGktZ2VuZXJhdG9yLTMwYmQyN2NjZjY5OCkgYnkgW2Nsb3VkIEB2aWFkZWVdKGh0dHBzOi8vY2xvdWQtdmlhZGVlLm1lZGl1bS5jb20vKQotIDIwMjEtMDMtMDggLSBbT3BlbkFQSSBHZW5lcmF0b3Ig5bel5YW355qE6Lq65Z2R5bCd6K+VXShodHRwczovL2Jsb2cuY3Nkbi5uZXQvdTAxMzAxOTcwMS9hcnRpY2xlL2RldGFpbHMvMTE0NTMxOTc1KSBieSBb54us5a626Zuo5aSpXShodHRwczovL2Jsb2cuY3Nkbi5uZXQvdTAxMzAxOTcwMSkgYXQgW0NTRE7lrpjmlrnljZrlrqJdKGh0dHBzOi8vYmxvZy5jc2RuLm5ldC8pCi0gMjAyMS0wMy0xNiAtIFvlpoLkvZXln7rkuo4gU3dhZ2dlciDkvb/nlKggT3BlbkFQSSBHZW5lcmF0b3Ig55Sf5oiQIEpNZXRlciDohJrmnKzvvJ9dKGh0dHBzOi8vY2xvdWQudGVuY2VudC5jb20vZGV2ZWxvcGVyL2FydGljbGUvMTgwMjcwNCkgYnkgW+mrmOalvFplZV0oaHR0cHM6Ly9jbG91ZC50ZW5jZW50LmNvbS9kZXZlbG9wZXIvdXNlci81ODM2MjU1KSBhdCBb6IW+6K6v5LqR5LiT5qCPXShodHRwczovL2Nsb3VkLnRlbmNlbnQuY29tL2RldmVsb3Blci9jb2x1bW4pCi0gMjAyMS0wMy0yNCAtIFtvcGVuYXBpLWdlbmVyYXRvci1jbGkg44Gr44KI44KLIFR5cGVTY3JpcHQg5Z6L5a6a576pXShodHRwczovL3plbm4uZGV2L3Rha2VwZXBlL2FydGljbGVzL29wZW5hcGktZ2VuZXJhdG9yLWNsaS10cykgYnkgW1Rha2VmdW1pIFlvc2hpaV0oaHR0cHM6Ly96ZW5uLmRldi90YWtlcGVwZSkKLSAyMDIxLTAzLTI4IC0gW1RyeWluZyBvdXQgTmVzdEpTIHBhcnQgNDogR2VuZXJhdGUgVHlwZXNjcmlwdCBjbGllbnRzIGZyb20gT3BlbkFQSSBkb2N1bWVudHNdKGh0dHBzOi8vZGV2LnRvL2FybmF1ZGNvcnRpc3NlL3RyeWluZy1vdXQtbmVzdGpzLXBhcnQtNC1nZW5lcmF0ZS10eXBlc2NyaXB0LWNsaWVudHMtZnJvbS1vcGVuYXBpLWRvY3VtZW50cy0yOG1rKSBieSBbQXJuYXVkIENvcnRpc3NlXShodHRwczovL2Rldi50by9hcm5hdWRjb3J0aXNzZSkKLSAyMDIxLTAzLTMxIC0gW09wZW4gQVBJIFNlcnZlciBJbXBsZW1lbnRhdGlvbiBVc2luZyBPcGVuQVBJIEdlbmVyYXRvcl0oaHR0cHM6Ly93d3cuYmFlbGR1bmcuY29tL2phdmEtb3BlbmFwaS1nZW5lcmF0b3Itc2VydmVyKSBhdCBbQmFlbGR1bmddKGh0dHBzOi8vd3d3LmJhZWxkdW5nLmNvbS8pCi0gMjAyMS0wMy0zMSAtIFvkvb/nlKhPcGVuQVBJIEdlbmVyYXRvcuWvpuePvk9wZW4gQVBJIFNlcnZlcl0oaHR0cHM6Ly93d3cuMWp1Lm9yZy9hcnRpY2xlL2phdmEtb3BlbmFwaS1nZW5lcmF0b3Itc2VydmVyKSBhdCBb5YSE6IGa57ayXShodHRwczovL3d3dy4xanUub3JnLykKLSAyMDIxLTA0LTE5IC0gW0ludHJvZHVjaW5nIFR3aWxpb+KAmXMgT3BlbkFQSSBTcGVjaWZpY2F0aW9uIEJldGFdKGh0dHBzOi8vd3d3LnR3aWxpby5jb20vYmxvZy9pbnRyb2R1Y2luZy10d2lsaW8tb3Blbi1hcGktc3BlY2lmaWNhdGlvbi1iZXRhKSBieSBbR0FSRVRIIFBBVUwgSk9ORVNdKGh0dHBzOi8vd3d3LnR3aWxpby5jb20vYmxvZy9hdXRob3IvZ3BqKSBhdCBbVHdpbGlvIEJsb2ddKGh0dHBzOi8vd3d3LnR3aWxpby5jb20vYmxvZykKLSAyMDIxLTA0LTIyIC0gW0xldmVyYWdpbmcgT3BlbkFwaSBzdHJlbmd0aHMgaW4gYSBNaWNyby1TZXJ2aWNlIGVudmlyb25tZW50XShodHRwczovL21lZGl1bS5jb20vdW5pYnVkZHktdGVjaG5vbG9neS1ibG9nL2xldmVyYWdpbmctb3BlbmFwaS1zdHJlbmd0aHMtaW4tYS1taWNyby1zZXJ2aWNlLWVudmlyb25tZW50LTNkN2Y5ZTdjMjZmZikgYnkgTmljb2xhcyBKZWxsYWIgYXQgW1VuaWJ1ZGR5IFRlY2hub2xvZ3kgQmxvZ10oaHR0cHM6Ly9tZWRpdW0uY29tL3VuaWJ1ZGR5LXRlY2hub2xvZ3ktYmxvZykKLSAyMDIxLTA0LTI3IC0gW0Zyb20gemVybyB0byBwdWJsaXNoaW5nIFBvd2VyU2hlbGwgQVBJIGNsaWVudHMgaW4gUG93ZXJTaGVsbCBHYWxsZXJ5IHdpdGhpbiBtaW51dGVzXShodHRwczovL3NwZWFrZXJkZWNrLmNvbS93aW5nMzI4L2Zyb20temVyby10by1wdWJsaXNoaW5nLXBvd2Vyc2hlbGwtYXBpLWNsaWVudHMtaW4tcG93ZXJzaGVsbC1nYWxsZXJ5LXdpdGhpbi1taW51dGVzKSBieSBbV2lsbGlhbSBDaGVuZ10oaHR0cHM6Ly9naXRodWIuY29tL3dpbmczMjgpIGF0IFtQb3dlclNoZWxsICsgRGV2T3BzIEdsb2JhbCBTdW1taXQgMjAyMV0oaHR0cHM6Ly9ldmVudHMuZGV2b3BzY29sbGVjdGl2ZS5vcmcvZXZlbnQvcG93ZXJzaGVsbC1kZXZvcHMtZ2xvYmFsLXN1bW1pdC0yMDIxLykKLSAyMDIxLTA1LTMxIC0gW0ZsdXR0ZXLjgadPcGVuIEFwaSBHZW5lcmF0b3IoU3dhZ2dlcinjgpLkvb/jgYZdKGh0dHBzOi8vYWFraXJhLmFwcC9ibG9nLzIwMjEvMDUvZmx1dHRlci1vcGVuLWFwaS8pIGJ5IFtBQWtpcmFdKGh0dHBzOi8vdHdpdHRlci5jb20vX2FfYWtpcmEpCi0gMjAyMS0wNi0yMiAtIFtSZXN0IEFQSSBEb2N1bWVudGF0aW9uIGFuZCBDbGllbnQgR2VuZXJhdGlvbiBXaXRoIE9wZW5BUEldKGh0dHBzOi8vZHpvbmUuY29tL2FydGljbGVzL3Jlc3QtYXBpLWRvY3VtZW50YXRpb24tYW5kLWNsaWVudC1nZW5lcmF0aW9uLXdpdGgpIGJ5IFtQcmFzYW50aCBHdWxsYXBhbGxpXShodHRwczovL2R6b25lLmNvbS91c2Vycy8xMDExNzk3L3ByYXNhbnRobmF0aC5nQGdtYWlsLmNvbS5odG1sKQotIDIwMjEtMDctMTYgLSBb6YqA6KGM5LqL5qWt44Gu44K144O844OQ44O844K144Kk44OJ6ZaL55m644Gr44Gk44GE44GmIC8gTElORSDkuqzpg73plovnmbrlrqQg44Ko44Oz44K444OL44Ki5o6h55So6Kqs5piO5LyaXShodHRwczovL3d3dy55b3V0dWJlLmNvbS93YXRjaD92PVlycktRSHhMUHBRKSBieSDph47nlLDoqqDkurosIFJvYmVydCBNaXRjaGVsbAotIDIwMjEtMDctMTkgLSBbT3BlbkFQSSBjb2RlIGdlbmVyYXRpb24gd2l0aCBrb3RsaW5dKGh0dHBzOi8vc3lsaGFyZS5naXRodWIuaW8vMjAyMS8wNy8xOS9PcGVuYXBpLXN3YWdnZXItY29kZWdlbi13aXRoLWtvdGxpbi5odG1sKSBieSBbc3lsaGFyZV0oaHR0cHM6Ly9naXRodWIuY29tL3N5bGhhcmUpCi0gMjAyMS0wNy0yOSAtIFtIb3cgVG8gUmV3cml0ZSBhIEh1Z2UgQ29kZWJhc2VdKGh0dHBzOi8vZHpvbmUuY29tL2FydGljbGVzL2hvdy10by1yZXdyaXRlLWEtaHVnZS1jb2RlLWJhc2UpIGJ5IFtDdXJ0aXMgUG9lXShodHRwczovL2R6b25lLmNvbS91c2Vycy80NTY1NDQ2L3B1YmxpdXNvdmlkaXVzLmh0bWwpCi0gMjAyMS0wOC0yMSAtIFtHZW5lcmF0aW5nIENsaWVudCBBUElzIHVzaW5nIFN3YWdnZXIgUGFydCAxXShodHRwczovL21lZGl1bS5jb20vQGZsb3dzcXVhZC9nZW5lcmF0aW5nLWNsaWVudC1hcGlzLXVzaW5nLXN3YWdnZXItcGFydC0xLTJkNDZmMTNmNWU5MikgYnkgW0Zsb3dTcXVhZC5pb10oaHR0cHM6Ly9tZWRpdW0uY29tL0BmbG93c3F1YWQpCi0gMjAyMS0wOS0xMSAtIFtJbnZva2luZyBBV1MgUGFyYWxsZWxDbHVzdGVyIEFQSV0oaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL3BhcmFsbGVsY2x1c3Rlci9sYXRlc3QvdWcvYXBpLXJlZmVyZW5jZS12My5odG1sKSBhdCBbQVdTIFBhcmFsbGVsQ2x1c3RlciBBUEkgb2ZmaWNpYWwgZG9jdW1lbnRhdGlvbl0oaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL3BhcmFsbGVsY2x1c3Rlci9sYXRlc3QvdWcvYXBpLXJlZmVyZW5jZS12My5odG1sKQotIDIwMjEtMDktMjAgLSBbT3BlbkFQSSBHZW5lcmF0b3IgLSBUaGUgQmFiZWwgRmlzaCBvZiB0aGUgQVBJIFdvcmxkXShodHRwczovL3d3dy55b3V0dWJlLmNvbS93YXRjaD92PXMyek10d2Q1a2xnKSBieSBbQ2xpZmZhbm8gU3ViYWdpbyAoUHJpbmNpcGFsIEVuZ2luZWVyIGF0IFNoaW5lIFNvbHV0aW9ucyldKGh0dHBzOi8vZ2l0aHViLmNvbS9jbGlmZmFubykgYXQgW0FwaWRheXMgTElWRSBBdXN0cmFsaWEgMjAyMV0oaHR0cHM6Ly93d3cuYXBpZGF5cy5nbG9iYWwvYXVzdHJhbGlhMjAyMS8pCi0gMjAyMS0xMC0wMiAtIFtIb3cgdG8gV3JpdGUgRmV3ZXIgTGluZXMgb2YgQ29kZSB3aXRoIHRoZSBPcGVuQVBJIEdlbmVyYXRvcl0oaHR0cHM6Ly9oYWNrZXJub29uLmNvbS9ob3ctdG8td3JpdGUtZmV3ZXItbGluZXMtb2YtY29kZS13aXRoLXRoZS1vcGVuYXBpLWdlbmVyYXRvcikgYnkgW01pa2hhaWwgQWxmYV0oaHR0cHM6Ly9oYWNrZXJub29uLmNvbS91L2FscGhhbWlrbGUpCi0gMjAyMS0xMC0xMiAtIFtPcGVuQVBJIEdlbmVyYXRvciA6IDQwMDAgw6l0b2lsZXMgc3VyIEdpdEh1YiBldCBkZXMgc3BhZ2hldHRpc10oaHR0cHM6Ly93d3cueW91dHViZS5jb20vd2F0Y2g/dj05aEVzTkJTcVRGaykgYnkgW0rDqXLDqW1pZSBCcmVzc29uXShodHRwczovL2dpdGh1Yi5jb20vam1pbmkpIGF0IFtEZXZveHggRlIgMjAyMV0oaHR0cHM6Ly9jZnAuZGV2b3h4LmZyLzIwMjEvc3BlYWtlci9qZXJlbWllX2JyZXNzb24pCi0gMjAyMS0xMC0xNyAtIFtHZW5lcmF0ZSBhIFR5cGVTY3JpcHQgSFRUUCBDbGllbnQgRnJvbSBBbiBPcGVuQVBJIFNwZWMgSW4gRG90TkVUIDVdKGh0dHBzOi8vcmljaGFyZHdpbGxpcy5pbmZvL2Jsb2cvZ2VuZXJhdGUtYS10eXBlLXNjcmlwdC1odHRwLWNsaWVudC1mcm9tLWFuLW9wZW4tYXBpLXNwZWMtaW4tZG90LW5ldC01KSBieSBbUmljaGFyZCBXaWxsaXNdKGh0dHBzOi8vZ2l0aHViLmNvbS9iYWRzeW50YXgpCi0gMjAyMS0xMS0wNiAtIFvjgrnjgr/jg7zjg4jjgqLjg4Pjg5fjga7plovnmbrjgafmhI/orZjjgZfjgZ/jgZPjgahdKGh0dHBzOi8vemVubi5kZXYvd29vX25vby9hcnRpY2xlcy81Y2IwOWY4ZTI4OTlhZTc4MmFkMSkgYnkgW3dvby1ub29dKGh0dHBzOi8vemVubi5kZXYvd29vX25vbykKLSAyMDIxLTExLTA5IC0gW0VmZmVjdGl2ZSBTb2Z0d2FyZSBEZXZlbG9wbWVudCB1c2luZyBPcGVuQVBJIEdlbmVyYXRvcl0oaHR0cHM6Ly9hcGV4bGFicy5haS9wb3N0L2VmZmVjdGl2ZS1zb2Z0d2FyZS1kZXZlbG9wbWVudC11c2luZy1vcGVuYXBpLWdlbmVyYXRvcikgYnkgQWppbCBPb21tZQotIDIwMjEtMTItMDcgLSBbQW4gSW50cm9kdWN0aW9uIHRvIE9wZW5BUEldKGh0dHBzOi8vYmV0dGVycHJvZ3JhbW1pbmcucHViLzQtdXNlLWNhc2VzLW9mLW9wZW5hcGktd2hpY2gtYXJlLWdvb2QtdG8ta25vdy0xYTA0MWY0YWQ3MWUpIGJ5IFtOYSdhbWFuIEhpcnNjaGZlbGRdKGh0dHBzOi8vbmFhbWFuaGlyc2NoZmVsZC5tZWRpdW0uY29tLykKLSAyMDIyLTAxLTAyIC0gW1Rvd2FyZHMgYSBzZWN1cmUgQVBJIGNsaWVudCBnZW5lcmF0b3IgZm9yIElvVCBkZXZpY2VzXShodHRwczovL2FyeGl2Lm9yZy9hYnMvMjIwMS4wMDI3MCkgYnkgQW5kZXJzIEFhZW4gU3ByaW5nYm9yZywgTWFydGluIEthbGRhaGwgQW5kZXJzZW4sIEthYXJlIEhvbGxhbmQgSGF0dGVsLCBNaWNoZWxlIEFsYmFubwotIDIwMjItMDItMDIgLSBbVXNlIE9wZW5BcGkgZ2VuZXJhdG9yIHRvIHNoYXJlIHlvdXIgbW9kZWxzIGJldHdlZW4gRmx1dHRlciBhbmQgeW91ciBiYWNrZW5kXShodHRwczovL3d3dy55b3V0dWJlLmNvbS93YXRjaD92PWtQVzdjY3U5WXZrKSBieSBbR3VpbGxhdW1lIEJlcm5vc10oaHR0cHM6Ly9mZWIyMDIyLmZsdXR0ZXJ2aWtpbmdzLmNvbS9zcGVha2Vycy9ndWlsbGF1bWVfYmVybm9zKSBhdCBbRmx1dHRlciBWaWtpbmdzIENvbmZlcmVuY2UgMjAyMiAoSHlicmlkKV0oaHR0cHM6Ly9mZWIyMDIyLmZsdXR0ZXJ2aWtpbmdzLmNvbS8pCi0gMjAyMi0wMy0xNSAtIFtPcGVuQVBJIFNwZWPjgafjg4/jgqTjg5Xjg7PljLrliIfjgorjga5FbnVt5YCk44KST3BlbkFQSSBHZW5lcmF0b3Ljgaflh7rlipvjgZnjgovjgajjgIHjg4/jgqTjg5Xjg7PljLrliIfjgorjga7jgb7jgb7lh7rlipvjgZXjgozjgotdKGh0dHBzOi8vcWlpdGEuY29tL3l1amkzOGt3bXQvaXRlbXMvODI0ZDc0ZDQ4ODkwNTVhYjM3ZDgpIGJ5IFt5dWppMzhrd210XShodHRwczovL3FpaXRhLmNvbS95dWppMzhrd210KQotIDIwMjItMDQtMDEgLSBbT3BlbkFQSSBHZW5lcmF0b3Ljga7jgrPjg7zjg4nnlJ/miJDjgahTcHJpbmcgRnJhbWV3b3Jr44Gu44Kr44K544K/44Og44OH44O844K/44OQ44Kk44Oz44OH44Kj44Oz44Kw44KS5YWx5a2Y44GV44Gb44KLXShodHRwczovL3RlY2hibG9nLnpvem8uY29tL2VudHJ5L2NvZXhpc3RlbmNlLW9mLW9wZW5hcGktYW5kLXNwcmluZykgaW4gW1pPWk8gVGVjaCBCbG9nXShodHRwczovL3RlY2hibG9nLnpvem8uY29tLykKLSAyMDIyLTA0LTA2IC0gW0VmZmVjdGl2ZSBTb2Z0d2FyZSBEZXZlbG9wbWVudCB1c2luZyBPcGVuQVBJIEdlbmVyYXRvcl0oaHR0cHM6Ly9hcGV4bGFicy5haS9wb3N0L29wZW5hcGktZ2VuZXJhdG9yKSBieSBBamlsIE9vbW1lbiAoU2VuaW9yIEZsdXR0ZXIgRGV2ZWxvcGVyKQotIDIwMjItMDUtMTMgLSBbQSBQYXRoIEZyb20gYW4gQVBJIFRvIENsaWVudCBMaWJyYXJpZXNdKGh0dHBzOi8vd3d3LnlvdXR1YmUuY29tL3dhdGNoP3Y9WEM4b1ZuX2VmVHcpIGJ5IFtGaWxpcCBTcm5lY10oaHR0cHM6Ly93d3cuZGV2b3h4LmNvLnVrL3RhbGsvP2lkPTExMjExKSBhdCBJbmZvYmlwCi0gMjAyMi0wNi0wMSAtIFtBUEkgRmlyc3QsIHVzaW5nIE9wZW5BUEkgYW5kIFNwcmluZyBCb290XShodHRwczovL21lZGl1bS5jb20veGdlZWtzL2FwaS1maXJzdC11c2luZy1vcGVuYXBpLWFuZC1zcHJpbmctYm9vdC0yNjAyYzA0YmIwZDMpIGJ5IFtNaWNhZWwgRXN0csOhenVsYXMgVmlhbm5hXShodHRwczovL2VzdHJhenVsYXMubWVkaXVtLmNvbS8pCi0gMjAyMi0wNi0xMCAtIFtBdXRvZ2VuZXJhdGluZyBDbGllbnRzIHdpdGggRmFzdEFQSSBhbmQgR2l0aHViIEFjdGlvbnNdKGh0dHBzOi8vd3d3LnByb3BlbGF1dGguY29tL3Bvc3QvYXV0b2dlbmVyYXRpbmctY2xpZW50cy13aXRoLWZhc3RhcGktYW5kLWdpdGh1Yi1hY3Rpb25zKSBieSBbQW5kcmV3IElzcmFlbF0oaHR0cHM6Ly93d3cucHJvcGVsYXV0aC5jb20vYXV0aG9yL2FuZHJldykKLSAyMDIyLTA2LTEyIC0gW011c3RhY2hlIHRlbXBsYXRlcyB3aXRoIE9wZW5BUEkgc3BlY3NdKGh0dHBzOi8vbWVkaXVtLmNvbS9nZWVrY3VsdHVyZS9tdXN0YWNoZS10ZW1wbGF0ZXMtd2l0aC1vcGVuYXBpLXNwZWNzLWYyNDcxMWM2N2RlYykgYnkgW0JlcHBlIENhdGFuZXNlXShodHRwczovL2dpdGh1Yi5jb20vZ2NhdGFuZXNlKQotIDIwMjItMDctMDEgLSBbR2VuZXJhdGUgQVBJIGNvbnRyYWN0IHVzaW5nIE9wZW5BUEkgR2VuZXJhdG9yIE1hdmVuIHBsdWdpbl0oaHR0cHM6Ly9odW9uZ2RhbmphdmEuY29tL2dlbmVyYXRlLWFwaS1jb250cmFjdC11c2luZy1vcGVuYXBpLWdlbmVyYXRvci1tYXZlbi1wbHVnaW4uaHRtbCkgYnkgW0toYW5oIE5ndXllbl0oaHR0cHM6Ly9odW9uZ2RhbmphdmEuY29tLykKLSAyMDIyLTA3LTIyIC0gW+S9v+eUqE9wZW5BUEkgR2VuZXJhdG9yIE1hdmVuIHBsdWdpbuW8gOWPkWFwaeS8mOWFiOeahGphdmHlrqLmiLfnq6/lkozmnI3liqHnq6/ku6PnoIFdKGh0dHBzOi8vYmxvZy5yb2Njb3NoaS50b3AvMjAyMi9qYXZhL29wZW5hcGktZ2VuZXJhdG9yJUU3JTlBJTg0JUU0JUJEJUJGJUU3JTk0JUE4LykgYnkgW0xpbmNlc3RdKGh0dHBzOi8vZ2l0aHViLmNvbS9MaW5jZXN0KQotIDIwMjItMDgtMDEgLSBbVHV0b3JpYWw6IEV0c3kgT3BlbiBBUEkgdjMgKHJ1YnkpXShodHRwczovL2Jsb2cudGpveWFsLmRldi9ldHN5LW9wZW4tYXBpLXYzLykgYnkgW1RoaWVycnkgSm95YWxdKGh0dHBzOi8vZ2l0aHViLmNvbS90am95YWwpCi0gMjAyMi0wOS0wMyAtIFtPcGVuQVBJIEdlbmVyYXRvciBGb3IgR28gV2ViIERldmVsb3BtZW50XShodHRwczovL2Jsb2cua2V2aW5odS5tZS8yMDIyLzA5LzAzLzAzLW9wZW5hcGktZ2VuZXJhdG9yLykgYnkgW0tldmluIEh1XShodHRwczovL3R3aXR0ZXIuY29tL09sZGd1bml4KQotIDIwMjItMTAtMDEgLSBbT3BlbkFQSSBHZW5lcmF0b3LjgpLjgqvjgrnjgr/jg57jgqTjgrrjgZfjgZ/jgrPjg7zjg4njgpLnlJ/miJDjgZnjgovvvIhTd2FnZ2VyIENvZGVnZW7jgajjgbvjgbzlkIzjgZjvvIldKGh0dHBzOi8vbmFpbmFpc3Rhci5oYXRlbmFibG9nLmNvbS9lbnRyeS8yMDIyLzEwLzAzLzEyMDAwMCkgYnkgW+OBjeOCiuS4uF0oaHR0cHM6Ly90d2l0dGVyLmNvbS9uYWluYWlzdGFyKQotIDIwMjItMTAtMjEgLSBbS290bGlu77yIU3ByaW5nIEJvb3TvvInjga4gQVBJIOOCkiBPcGVuQVBJIEdlbmVyYXRvciDjgafoh6rli5XnlJ/miJBdKGh0dHBzOi8vemVubi5kZXYvbXNrc2dtL2FydGljbGVzLzIwMjIxMDIxLWtvdGxpbi1zcHJpbmctb3BlbmFwaS1nZW5lcmF0b3IpIGJ5IFttc2tzZ21dKGh0dHBzOi8vemVubi5kZXYvbXNrc2dtKQotIDIwMjItMTAtMjYgLSBbUXVhcmt1cyBJbnNpZ2h0cyAjMTA2OiBRdWFya2l2ZXJzZSBFeHRlbnNpb24gU3BvdGxpZ2h0OiBPcGVuQXBpIEdlbmVyYXRvcl0oaHR0cHM6Ly93d3cueW91dHViZS5jb20vd2F0Y2g/dj1fc19pZjY5dDJpUSkgYnkgW1F1YXJrdXNpb10oaHR0cHM6Ly93d3cueW91dHViZS5jb20vYy9RdWFya3VzaW8pCi0gMjAyMi0xMS0yOCAtIFtUaGUgUkVTVCBBUEkgaW1wbGVtZW50YXRpb24gZmxvd10oaHR0cHM6Ly90bXN2ci5jb20vb3BlbmFwaS1jb2RlLWdlbmVyYXRpb24tZm9yLXJlc3QtYXBpcy8pIGJ5IFtJbXJlIFTDtm3DtnN2w6FyaV0oaHR0cHM6Ly90bXN2ci5jb20vYXV0aG9yL2ltcmUvKQotIDIwMjItMTItMTMgLSBbQVBJLUZpcnN0IHdpdGggU3ByaW5nIFdlYkZsdXggYW5kIE9wZW5BUEkgR2VuZXJhdG9yXShodHRwczovL2Jvb3R0ZWNobm9sb2dpZXMtY2kubWVkaXVtLmNvbS9hcGktZmlyc3Qtd2l0aC1zcHJpbmctd2ViZmx1eC1hbmQtb3BlbmFwaS1nZW5lcmF0b3ItMzhiNzgwNGM0ZWQ0KSBieSBbRXJpYyBBbmljZXRdKGh0dHBzOi8vYm9vdHRlY2hub2xvZ2llcy1jaS5tZWRpdW0uY29tLykKLSAyMDIzLTAxLTA2IC0gW01ham9yIEltcHJvdmVtZW50cyB3aXRoIEhlbGlkb24gYW5kIE9wZW5BUEldKGh0dHBzOi8vbWVkaXVtLmNvbS9oZWxpZG9uL21ham9yLWltcHJvdmVtZW50cy13aXRoLWhlbGlkb24tYW5kLW9wZW5hcGktZjc2YTA5NTE1MDhlKSBieSBbVGltIFF1aW5uXShodHRwczovL21lZGl1bS5jb20vQHRxdWlubm82MDApCi0gMjAyMy0wMi0wMiAtIFtSZXBsYWNpbmcgUG9zdG1hbiB3aXRoIHRoZSBKZXRicmFpbnMgSFRUUCBDbGllbnRdKGh0dHBzOi8vbGVuZ3JhbmQuZnIvcmVwbGFjaW5nLXBvc3RtYW4taW4tc2Vjb25kcy13aXRoLXRoZS1qZXRicmFpbnMtaHR0cC1jbGllbnQvKSBieSBbanVsaWVuIExlbmdyYW5kLUxhbWJlcnRdKGh0dHBzOi8vZ2l0aHViLmNvbS9qbGVuZ3JhbmQpCi0gMjAyMy0wMy0xNSAtIFtPcGVuQVBJIEdlbmVyYXRvcuOBq+mBqeOBl+OBn09wZW5BUEnjga7mm7jjgY3mlrldKGh0dHBzOi8vdGVjaGJsb2cuem96by5jb20vZW50cnkvaG93LXRvLXdyaXRlLW9wZW5hcGktZm9yLW9wZW5hcGktZ2VuZXJhdG9yKSBieSBbWk9aTyBUZWNoIEJsb2ddKGh0dHBzOi8vdGVjaGJsb2cuem96by5jb20vKQotIDIwMjMtMDMtMTkgLSBbRVhPR0VNOiBFeHRlbmRpbmcgT3BlbkFQSSBHZW5lcmF0b3IgZm9yIE1vbml0b3Jpbmcgb2YgUkVTVGZ1bCBBUElzXShodHRwczovL2xpbmsuc3ByaW5nZXIuY29tL2NoYXB0ZXIvMTAuMTAwNy85NzgtMy0wMzEtMjY1MDctNV8xMCkgYnkgRGFuaWVsIEZyaWlzIEhvbHRlYm8sIEphbm5payBMdWNhcyBTb21tZXIsIE1hZ251cyBNw7hsZ2FhcmQgTHVuZCwgQWxlc3NhbmRybyBUaWJvLCBKdW5pb3IgRG9uZ28gJiBNaWNoZWxlIEFsYmFubyBhdCAiSUNTT0MgMjAyMjogU2VydmljZS1PcmllbnRlZCBDb21wdXRpbmcg4oCTIElDU09DIDIwMjIgV29ya3Nob3BzIgotIDIwMjMtMDMtMjggLSBbQVBJLUZpcnN0IERlc2lnbiB3aXRoIE9wZW5BUEkgR2VuZXJhdG9yXShodHRwczovL3d3dy5saW5rZWRpbi5jb20vcHVsc2UvYXBpLWZpcnN0LWRlc2lnbi1vcGVuYXBpLWdlbmVyYXRvci1qb25hdGhhbi1tYW5lcmEvKSBieSBbSm9uYXRoYW4gTWFuZXJhXShodHRwczovL3d3dy5saW5rZWRpbi5jb20vaW4vbWFuZXJham9uYS8pCi0gMjAyMy0wMy0yOCAtIFvjg4/jg7Pjgrrjgqrjg7PjgaflrabjgbbjgrXjg7zjg5Djg7zjgrXjgqTjg4kgS290bGlu77yIU3ByaW5nIEJvb3QmQXJyb3cmT3BlbkFQSSBHZW5lcmF0b3LvvIl2MS4wLjFdKGh0dHBzOi8vemVubi5kZXYvbXNrc2dtL2Jvb2tzL2ltcGxlbWVudGluZy1zZXJ2ZXItc2lkZS1rb3RsaW4tZGV2ZWxvcG1lbnQpIGJ5IFttc2tdKGh0dHBzOi8vemVubi5kZXYvbXNrc2dtKQotIDIwMjMtMDQtMDEgLSBbT3BlbkFQSSBDbGllbnQgQ29kZSBHZW5lcmF0aW9uXShodHRwczovL3Rlc3Rpbmdib3NzLmNvbS9ibG9nL29wZW5hcGktY2xpZW50LWdlbmVyYXRpb24vKSBieSBLd28gRGluZwotIDIwMjMtMDQtMjcgLSBbQ3JlYXRlIGFuIEFuZ3VsYXIgQ2xpZW50IHVzaW5nIE9wZW5BUEkgU3BlY2lmaWNhdGlvbnNdKENyZWF0ZSBhbiBBbmd1bGFyIENsaWVudCB1c2luZyBPcGVuQVBJIFNwZWNpZmljYXRpb25zKSBieSBbUGF0cmljXShodHRwczovL3BndXNvLm1lZGl1bS5jb20vKQotIDIwMjMtMDUtMTYgLSBbQWR5ZW4gZm9yIEphdmEgZGV2ZWxvcGVyc10oaHR0cHM6Ly93d3cuYWR5ZW4uY29tL2Jsb2cvYWR5ZW4tamF2YS1saWJyYXJ5KSBieSBbQmVwcGUgQ2F0YW5lc2UsIERldmVsb3BlciBBZHZvY2F0ZSwgQWR5ZW5dKGh0dHBzOi8vZ2l0aHViLmNvbS9nY2F0YW5lc2UpCi0gMjAyMy0wNS0xOCAtIFvlpoLkvZXln7rkuo4gU3dhZ2dlciDkvb/nlKggT3BlbkFQSSBHZW5lcmF0b3Ig55Sf5oiQIEpNZXRlciDohJrmnKzvvJ9dKGh0dHBzOi8vYmxvZy41MWN0by5jb20vdV8xNTE4MTU3Mi82Mjk0OTc0KSBieSBb6auY5qW877yIWmVlKV0oaHR0cHM6Ly9ibG9nLjUxY3RvLmNvbS91XzE1MTgxNTcyKQotIDIwMjMtMDYtMjggLSBbR2VuZXJhdGUgQVBJIGNvbnRyYWN0IHVzaW5nIE9wZW5BUEkgR2VuZXJhdG9yIE1hdmVuIHBsdWdpbl0oaHR0cHM6Ly9odW9uZ2RhbmphdmEuY29tL2dlbmVyYXRlLWFwaS1jb250cmFjdC11c2luZy1vcGVuYXBpLWdlbmVyYXRvci1tYXZlbi1wbHVnaW4uaHRtbCkgYnkgW0toYW5oIE5ndXllbl0oaHR0cHM6Ly9odW9uZ2RhbmphdmEuY29tLykKLSAyMDIzLTA2LTMwIC0gW0dlbmVyYXRlIENsaWVudCBTREtzIHdpdGggT3BlbkFwaSBHZW5lcmF0b3IgaW4gU3ByaW5nYm9vdF0oaHR0cHM6Ly9tZWRpdW0uY29tL0ByYW1hdmF0aHZpbmF5YWsvZ2VuZXJhdGUtY2xpZW50LXNka3Mtd2l0aC1vcGVuYXBpLWdlbmVyYXRvci1pbi1zcHJpbmdib290LWY5ZjAxMmU3M2MwYikgYnkgW1ZpbmF5YWsgUmFtYXZhdGhdKGh0dHBzOi8vbWVkaXVtLmNvbS9AcmFtYXZhdGh2aW5heWFrKQotIDIwMjMtMTItMTAgLSBbVW5pdHnjgadPcGVuQVBJIEdlbmVyYXRvcuOCkuS9v+OBhl0oaHR0cHM6Ly93d3cueW91dHViZS5jb20vd2F0Y2g/dj1DYk53S1ZWNUxSTSkgYnkgW1NvdXAgVG9yaV0oaHR0cHM6Ly93d3cueW91dHViZS5jb20vQHNvdXB0b3JpODQxNykKLSAyMDI0LTAxLTI0IC0gW0NvbW1lbnQgZ8OpbsOpcmVyIGRlcyBzdHVicyB3aXJlbW9jayBhdmVjIG9wZW5hcGkgZ2VuZXJhdG9yXShodHRwczovL3d3dy55b3V0dWJlLmNvbS93YXRjaD92PTBqaE9OZkJyY0t3KSBieSBbQWxleGlzIENvdXZyZXVyXShodHRwczovL2dpdGh1Yi5jb20vYWNvdXZyZXVyKQotIDIwMjQtMDMtMDQgLSBbR2VuZXJhdGluZyBUeXBlU2NyaXB0IFR5cGVzIHdpdGggT3BlbkFQSSBmb3IgUkVTVCBBUEkgQ29uc3VtcHRpb25dKGh0dHBzOi8vd3d3LnB1bGxyZXF1ZXN0LmNvbS9ibG9nL2dlbmVyYXRpbmctdHlwZXNjcmlwdC10eXBlcy13aXRoLW9wZW5hcGktZm9yLXJlc3QtYXBpLWNvbnN1bXB0aW9uLykgYnkgW1B1bGxSZXF1ZXN0XShodHRwczovL3d3dy5wdWxscmVxdWVzdC5jb20vKQotIDIwMjQtMDMtMDcgLSBbRnVsbHkgdHlwZWQgV2ViIEFwcHMgd2l0aCBPcGVuQVBJIChQYXJ0IDEpXShodHRwczovL21lZGl1bS5jb20vQGdmb3gxOTg0L2Z1bGx5LXR5cGVkLXdlYi1hcHBzLXdpdGgtb3BlbmFwaS1wYXJ0LTEtNTk1ZDU1NzY2NjcwKSBieSBbR3VpbGxhdW1lIFJlbmFyZF0oaHR0cHM6Ly9tZWRpdW0uY29tL0BnZm94MTk4NCkKLSAyMDI0LTAzLTA4IC0gW0xhcmF2ZWwgT3BlbkFQSeOBq+OCiOOCiyAi6L6b44GP44Gq44GEIiDjgrnjgq3jg7zjg57pp4bli5XplovnmbpdKGh0dHBzOi8vZm9ydGVlLmpwL3BocGVya2FpZ2ktMjAyNC9wcm9wb3NhbC85ZTJlNmMzOC1kMDc4LTRlZmEtOTliNC04M2ViZjkwMzNiMzQpIGJ5IFtLZW50YXJvdVRha2VkYV0oaHR0cHM6Ly90d2l0dGVyLmNvbS9LZW50YXJvdVRha2VkYSkKCiMjIFs2IC0gQWJvdXQgVXNdKCN0YWJsZS1vZi1jb250ZW50cykKCldoYXQncyB0aGUgZGVzaWduIHBoaWxvc29waHkgb3IgcHJpbmNpcGxlIGJlaGluZCBPcGVuQVBJIEdlbmVyYXRvcj8KCldlIGZvY3VzIG9uIGRldmVsb3BlciBleHBlcmllbmNlLiBUaGUgZ2VuZXJhdG9ycyBzaG91bGQgcHJvZHVjZSBjb2RlLCBjb25maWcsIGRvY3VtZW50YXRpb24sIGFuZCBtb3JlIHRoYXQgYXJlIGVhc2lseSB1bmRlcnN0YW5kYWJsZSBhbmQgY29uc3VtYWJsZSBieSB1c2Vycy4gV2UgZm9jdXNlZCBvbiBzaW1wbGUgdXNlIGNhc2VzIHRvIHN0YXJ0IHdpdGggKGJvdHRvbS11cCBhcHByb2FjaCkuIFNpbmNlIHRoZW4gdGhlIHByb2plY3QgYW5kIHRoZSBjb21tdW5pdHkgaGF2ZSBncm93biBhIGxvdDogNjAwayB3ZWVrbHkgZG93bmxvYWRzIHZpYSBOUE0gQ0xJIHdyYXBwZXIsIDMwTSBkb3dubG9hZHMgdmlhIG9wZW5hcGktZ2VuZXJhdG9yLWNsaSBkb2NrZXIgaW1hZ2UganVzdCB0byBoaWdobGlnaHQgYSBmZXcuIFdlJ3ZlIGdyYWR1YWxseSBzdXBwb3J0ZWQgbW9yZSBmZWF0dXJlcyAoZS5nLiBvbmVPZiwgYW55T2YgaW50cm9kdWNlZCBpbiBPcGVuQVBJIDMuMCkgaW4gdmFyaW91cyBnZW5lcmF0b3JzIGFuZCB3ZSB3aWxsIGNvbnRpbnVlIHRoaXMgYXBwcm9hY2ggdG8gZGVsaXZlciBzb21ldGhpbmcgYmFzZWQgb24gb3VyIHVuZGVyc3RhbmRpbmcgb2YgdXNlciBkZW1hbmQgYW5kIHdoYXQgdGhleSB3YW50LCBhbmQgY29udGludWUgdG8gYWRkIHN1cHBvcnQgb2YgbmV3IGZlYXR1cmVzIGludHJvZHVjZWQgaW4gT3BlbkFQSSBzcGVjaWZpY2F0aW9uIChzdWNoIGFzIHYzLjEgYW5kIGZ1dHVyZSB2ZXJzaW9ucyBvZiB0aGUgT3BlbkFQSSBzcGVjaWZpY2F0aW9uKS4KCiMjIyBbNi4xIC0gT3BlbkFQSSBHZW5lcmF0b3IgQ29yZSBUZWFtXSgjdGFibGUtb2YtY29udGVudHMpCgpPcGVuQVBJIEdlbmVyYXRvciBjb3JlIHRlYW0gbWVtYmVycyBhcmUgY29udHJpYnV0b3JzIHdobyBoYXZlIGJlZW4gbWFraW5nIHNpZ25pZmljYW50IGNvbnRyaWJ1dGlvbnMgKHJldmlldyBpc3N1ZXMsIGZpeCBidWdzLCBtYWtlIGVuaGFuY2VtZW50cywgZXRjKSB0byB0aGUgcHJvamVjdCBvbiBhIHJlZ3VsYXIgYmFzaXMuCgojIyMjIENvcmUgVGVhbSBNZW1iZXJzCiogW0B3aW5nMzI4XShodHRwczovL2dpdGh1Yi5jb20vd2luZzMyOCkgKDIwMTUvMDcpIFs6aGVhcnQ6XShodHRwczovL3d3dy5wYXRyZW9uLmNvbS93aW5nMzI4KQoqIFtAamltc2NodWJlcnRdKGh0dHBzOi8vZ2l0aHViLmNvbS9qaW1zY2h1YmVydCkgKDIwMTYvMDUpIFs6aGVhcnQ6XShodHRwczovL3d3dy5wYXRyZW9uLmNvbS9qaW1zY2h1YmVydCkKKiBbQGNib3JuZXRdKGh0dHBzOi8vZ2l0aHViLmNvbS9jYm9ybmV0KSAoMjAxNi8wNSkKKiBbQGptaW5pXShodHRwczovL2dpdGh1Yi5jb20vam1pbmkpICgyMDE4LzA0KSAgWzpoZWFydDpdKGh0dHBzOi8vd3d3LnBhdHJlb24uY29tL2ptaW5pKQoqIFtAZXRoZXJlYWxqb3ldKGh0dHBzOi8vZ2l0aHViLmNvbS9ldGhlcmVhbGpveSkgKDIwMTkvMDYpCgo6aGVhcnQ6ID0gTGluayB0byBzdXBwb3J0IHRoZSBjb250cmlidXRvciBkaXJlY3RseQoKIyMjIyBUZW1wbGF0ZSBDcmVhdG9yCgoqKk5PVEUqKjogRW1iZWRkZWQgdGVtcGxhdGVzIGFyZSBvbmx5IHN1cHBvcnRlZCBpbiBfTXVzdGFjaGVfIGZvcm1hdC4gU3VwcG9ydCBmb3IgYWxsIG90aGVyIGZvcm1hdHMgaXMgZXhwZXJpbWVudGFsIGFuZCBzdWJqZWN0IHRvIGNoYW5nZSBhdCBhbnkgdGltZS4KCkhlcmUgaXMgYSBsaXN0IG9mIHRlbXBsYXRlIGNyZWF0b3JzOgogKiBBUEkgQ2xpZW50czoKICAgKiBBZGE6IEBzdGNhcnJlegogICAqIEFwZXg6IEBhc25lbGxpbmcKICAgKiBCYXNoOiBAYmtyeXphCiAgICogQzogQFBvd2VyT2ZDcmVhdGlvbiBAemhlbWFudCBbOmhlYXJ0Ol0oaHR0cHM6Ly93d3cucGF0cmVvbi5jb20vemhlbWFudCkKICAgKiBDKysgUkVTVDogQERhbmllbGt1MTUKICAgKiBDKysgVGlueTogQEFuZGVyc1NwcmluZ2JvcmcgQGthYXJlSEggQG1pY2hlbGVhbGJhbm8gQG1rYWtiYXMKICAgKiBDKysgVUU0OiBAS2FobmNvZGUKICAgKiBDIyAoLk5FVCAyLjApOiBAd2hvCiAgICogQyMgKC5ORVQgU3RhbmRhcmQgMS4zICk6IEBHcm9uc2FrCiAgICogQyMgKC5ORVQgNC41IHJlZmFjdG9yZWQpOiBAamltc2NodWJlcnQgWzpoZWFydDpdKGh0dHBzOi8vd3d3LnBhdHJlb24uY29tL2ppbXNjaHViZXJ0KQogICAqIEMjIChHZW5lcmljSG9zdCk6IEBkZXZobC1sYWJzCiAgICogQyMgKEh0dHBDbGllbnQpOiBAQmxhY2tjbGF3cwogICAqIENsb2p1cmU6IEB4aGgKICAgKiBDcnlzdGFsOiBAd2luZzMyOAogICAqIERhcnQ6IEB5aXNzYWNoYXIKICAgKiBEYXJ0IChyZWZhY3Rvcik6IEBqb2VybmFocmVucwogICAqIERhcnQgMjogQHN3aXBlc2lnaHQKICAgKiBEYXJ0IChKYWd1YXIpOiBAamF1bWFyZAogICAqIERhcnQgKERpbyk6IEBqb3NoLWJ1cnRvbgogICAqIEVsaXhpcjogQG5pa3UKICAgKiBFbG06IEBlcmlrdGltCiAgICogRWlmZmVsOiBAanZlbGlsbGEKICAgKiBFcmxhbmc6IEB0c2xvdWdodGVyCiAgICogRXJsYW5nIChQcm9wRXIpOiBAamZhY29ycm8gQHJvYmVydG9hbG9pCiAgICogR3Jvb3Z5OiBAdmljdG9yZ2l0CiAgICogR286IEB3aW5nMzI4IFs6aGVhcnQ6XShodHRwczovL3d3dy5wYXRyZW9uLmNvbS93aW5nMzI4KQogICAqIEdvIChyZXdyaXR0ZW4gaW4gMi4zLjApOiBAYW50aWhheAogICAqIEhhc2tlbGwgKGh0dHAtY2xpZW50KTogQGpvbnNjaG9uaW5nCiAgICogSmF2YSAoRmVpZ24pOiBAZGF2aWRraXNzCiAgICogSmF2YSAoUmV0cm9maXQpOiBAMGxlZ2cKICAgKiBKYXZhIChSZXRyb2ZpdDIpOiBAZW1pbGlhbm9ib25hc3NpCiAgICogSmF2YSAoSmVyc2V5Mik6IEB4aGgKICAgKiBKYXZhIChva2h0dHAtZ3Nvbik6IEB4aGgKICAgKiBKYXZhIChSZXN0VGVtcGxhdGUpOiBAbmJydW5vCiAgICogSmF2YSAoU3ByaW5nIDUgV2ViQ2xpZW50KTogQGRhb25vbWljCiAgICogSmF2YSAoU3ByaW5nIDYgUmVzdENsaWVudCk6IEBuaWNrbGFzMjc1MQogICAqIEphdmEgKFJFU1RFYXN5KTogQGdheWF0aHJpZ3MKICAgKiBKYXZhIChWZXJ0eCk6IEBsb3Blc21jYwogICAqIEphdmEgKEdvb2dsZSBBUElzIENsaWVudCBMaWJyYXJ5KTogQGNoYXJsZXNjYXBwcwogICAqIEphdmEgKFJlc3QtYXNzdXJlZCk6IEB2aWNsb3Zza3kKICAgKiBKYXZhIChKYXZhIDExIE5hdGl2ZSBIVFRQIGNsaWVudCk6IEBiYmRvdWdsYXMKICAgKiBKYXZhIChBcGFjaGUgSHR0cENsaWVudCA1LngpOiBAaGFycnl3aGl0ZTQgQGFuZHJldmVnYXMKICAgKiBKYXZhIChIZWxpZG9uKTogQHNwZXJpY2FzIEB0anF1aW5ubyBAdHZhbGxpbgogICAqIEphdmFzY3JpcHQvTm9kZUpTOiBAamZpYWxhCiAgICogSmF2YVNjcmlwdCAoQXBvbGxvIERhdGFTb3VyY2UpOiBAZXJpdGhtZXRpYwogICAqIEphdmFTY3JpcHQgKENsb3N1cmUtYW5ub3RhdGVkIEFuZ3VsYXIpIEBhY2hldzIyCiAgICogSmF2YVNjcmlwdCAoRmxvdyB0eXBlcykgQGpheXBlYQogICAqIEpldGJyYWlucyBIVFRQIENsaWVudCA6IEBqbGVuZ3JhbmQKICAgKiBKTWV0ZXI6IEBkYXZpZGtpc3MKICAgKiBKdWxpYTogQHRhbm1heWttCiAgICogS290bGluOiBAamltc2NodWJlcnQgWzpoZWFydDpdKGh0dHBzOi8vd3d3LnBhdHJlb24uY29tL2ppbXNjaHViZXJ0KQogICAqIEtvdGxpbiAoTXVsdGlQbGF0Zm9ybSk6IEBhbmRyZXdlbWVyeQogICAqIEtvdGxpbiAoVm9sbGV5KTogQGFsaXN0ZXJzCiAgICogS290bGluIChqdm0tc3ByaW5nLXdlYmNsaWVudCk6IEBzdGVmYW5rb3BwaWVyCiAgICogS290bGluIChqdm0tc3ByaW5nLXJlc3RjbGllbnQpOiBAc3RlZmFua29wcGllcgogICAqIEx1YTogQGRhdXJuaW1hdG9yCiAgICogTjRKUzogQG1tZXdzLW40CiAgICogTmltOiBAaG9rYW1vdG8KICAgKiBPQ2FtbDogQGNnZW5zb3VsCiAgICogUGVybDogQHdpbmczMjggWzpoZWFydDpdKGh0dHBzOi8vd3d3LnBhdHJlb24uY29tL3dpbmczMjgpCiAgICogUEhQIChHdXp6bGUpOiBAYmFhcnRvc3oKICAgKiBQSFAgKHdpdGggRGF0YSBUcmFuc2Zlcik6IEBBcnRpY3VzCiAgICogUG93ZXJTaGVsbDogQGJlYXRjcmFja2VyCiAgICogUG93ZXJTaGVsbCAocmVmYWN0b3JlZCBpbiA1LjAuMCk6IEB3aW5nMzI4CiAgICogUHl0aG9uOiBAc3BhY2V0aGVyIFs6aGVhcnQ6XVtzcGFjZXRoZXIgc3BvbnNvcnNoaXBdCiAgICogUHl0aG9uLUV4cGVyaW1lbnRhbDogQHNwYWNldGhlciBbOmhlYXJ0Ol1bc3BhY2V0aGVyIHNwb25zb3JzaGlwXQogICAqIFB5dGhvbiAocmVmYWN0b3JlZCBpbiA3LjAuMCk6IEB3aW5nMzI4CiAgICogUjogQHJhbW5vdgogICAqIFJ1YnkgKEZhcmFkYXkpOiBAbWVnYW5lbXVyYSBAZGtsaWJhbgogICAqIFJ1YnkgKEhUVFBYKTogQGhvbmV5cnlkZXJjaHVjawogICAqIFJ1c3Q6IEBmYXJjYWxsZXIKICAgKiBSdXN0IChydXN0LXNlcnZlcik6IEBtZXRhc3dpdGNoCiAgICogU2NhbGEgKHNjYWxheiAmIGh0dHA0cyk6IEB0YnJvd24xOTc5CiAgICogU2NhbGEgKEFra2EpOiBAY2NoYWZlcgogICAqIFNjYWxhIChzdHRwKTogQGNoYW1lbGVvbjgyCiAgICogU2NhbGEgKHN0dHA0KTogQGZsc2g4NgogICAqIFNjYWxhIChQZWtrbyk6IEBtaWNrYWVsbWFnbmllegogICAqIFNjYWxhIChodHRwNHMpOiBASmVubnlMZWFoeQogICAqIFN3aWZ0OiBAdGtxdWJvCiAgICogU3dpZnQgMzogQGhleGVsb24KICAgKiBTd2lmdCA0OiBAZWh5Y2hlCiAgICogU3dpZnQgNTogQDRicnVudQogICAqIFN3aWZ0IDY6IEA0YnJ1bnUKICAgKiBTd2lmdCBDb21iaW5lOiBAZHlkdXMweDE0CiAgICogVHlwZVNjcmlwdCAoQW5ndWxhcjEpOiBAbWhhcmRvcmYKICAgKiBUeXBlU2NyaXB0IChBbmd1bGFyMik6IEByb25pLWZyYW50Y2hpCiAgICogVHlwZVNjcmlwdCAoQW5ndWxhcjYpOiBAYWtlaGlyCiAgICogVHlwZVNjcmlwdCAoQW5ndWxhcjcpOiBAdG9wY2UKICAgKiBUeXBlU2NyaXB0IChBeGlvcyk6IEBuaWNva29lbmlnCiAgICogVHlwZVNjcmlwdCAoRmV0Y2gpOiBAbGVvbnl1CiAgICogVHlwZVNjcmlwdCAoSW52ZXJzaWZ5KTogQGd1YWx0aWVyaW0KICAgKiBUeXBlU2NyaXB0IChqUXVlcnkpOiBAYmhlcmlsYQogICAqIFR5cGVTY3JpcHQgKE5lc3Rqcyk6IEB2ZnJhbms2NgogICAqIFR5cGVTY3JpcHQgKE5vZGUpOiAgQG1oYXJkb3JmCiAgICogVHlwZVNjcmlwdCAoUnhqcyk6IEBkZW55bwogICAqIFR5cGVTY3JpcHQgKHJlZHV4LXF1ZXJ5KTogQHBldGVqb2hhbnNvbnhvCiAgICogWG9qbzogQFRvcGhlZWUKICAgKiBaYXBpZXI6IEB2YWxtb3osIEBlbWFqbwogKiBTZXJ2ZXIgU3R1YnMKICAgKiBBZGE6IEBzdGNhcnJlegogICAqIEMjIEFTUC5ORVQgNTogQGppbXNjaHViZXJ0IFs6aGVhcnQ6XShodHRwczovL3d3dy5wYXRyZW9uLmNvbS9qaW1zY2h1YmVydCkKICAgKiBDIyBBU1AuTkVUIENvcmUgMy4wOiBAQS1Kb3NoaQogICAqIEMjIEFQUy5ORVQgQ29yZSAzLjE6IEBwaGF0Y2hlcgogICAqIEMjIEF6dXJlIGZ1bmN0aW9uczogQEFicmhtNzc4NgogICAqIEMjIE5hbmN5Rlg6IEBtc3RlZmFuaXVrCiAgICogQysrIChRdDUgUUh0dHBFbmdpbmUpOiBAZXRoZXJlYWxqb3kKICAgKiBDKysgUGlzdGFjaGU6IEBzZWJ5bWlhbm8KICAgKiBDKysgUmVzdGJlZDogQHN0a3J3b3JrCiAgICogRXJsYW5nIFNlcnZlcjogQGdhbGF4aWUgQG5lbHNvbnZpZGVzCiAgICogRiMgKEdpcmFmZmUpIFNlcnZlcjogQG5tZmlzaGVyCiAgICogR28gU2VydmVyOiBAZ3VvaHVhbmcKICAgKiBHbyBTZXJ2ZXIgKHJlZmFjdG9yZWQgaW4gNy4wLjApOiBAbHdqNQogICAqIEdvIChFY2hvKSBTZXJ2ZXI6IEBwaDRyNWg0ZAogICAqIEdvIChHaW4pIFNlcnZlcjogQGtlbW9rZW1vCiAgICogR3JhcGhRTCBFeHByZXNzIFNlcnZlcjogQHJlbmVwYXJkb24KICAgKiBIYXNrZWxsIFNlcnZhbnQ6IEBhbGdhcwogICAqIEhhc2tlbGwgWWVzb2Q6IEB5b3RzdXlhCiAgICogSmF2YSBDYW1lbDogQGNhcm5ldmFsZWdpYWNvbW8KICAgKiBKYXZhIE1TRjRKOiBAc2FuamVld2EtbWFsYWxnb2RhCiAgICogSmF2YSBTcHJpbmcgQm9vdDogQGRpeWZyCiAgICogSmF2YSBVbmRlcnRvdzogQHN0ZXZlaHUKICAgKiBKYXZhIFBsYXkgRnJhbWV3b3JrOiBASkZDb3RlCiAgICogSmF2YSBQS01TVDogQGFuc2h1MjE4NSBAc2Fuc2h1bWFuIEBya3VtYXItcGsgQG5pbm9kcGlsbGFpCiAgICogSmF2YSBWZXJ0Lng6IEBsd2xlZTI2MDgKICAgKiBKYXZhIE1pY3JvbmF1dDogQGFuZHJpeS1kbXl0cnVrCiAgICogSmF2YSBIZWxpZG9uOiBAc3BlcmljYXMgQHRqcXVpbm5vIEB0dmFsbGluCiAgICogSmF2YSBXaXJlTW9jazogW0BhY291dnJldXJdKGh0dHBzOi8vZ2l0aHViLmNvbS9hY291dnJldXIpCiAgICogSkFYLVJTIFJlc3RFYXN5OiBAY2hhbWVsZW9uODIKICAgKiBKQVgtUlMgQ1hGOiBAaGl2ZXNoaXAKICAgKiBKQVgtUlMgQ1hGIChDREkpOiBAbmlja2NtYXluYXJkCiAgICogSkFYLVJTIFJlc3RFYXN5IChKQm9zcyBFQVApOiBAamZpYWxhCiAgICogSnVsaWE6IEB0YW5tYXlrbQogICAqIEtvdGxpbjogQGppbXNjaHViZXJ0IFs6aGVhcnQ6XShodHRwczovL3d3dy5wYXRyZW9uLmNvbS9qaW1zY2h1YmVydCkKICAgKiBLb3RsaW4gKFNwcmluZyBCb290KTogQGRyNGtlNjE2CiAgICogS290bGluIChWZXJ0eCk6IEBXb295bWUKICAgKiBLb3RsaW4gKEpBWC1SUyk6IEBhbnR0aWxlcHBhCiAgICogS290bGluIFdpcmVNb2NrOiBAc3RlZmFua29wcGllcgogICAqIE5vZGVKUyBFeHByZXNzOiBAWWlzaFRpc2gKICAgKiBQSFAgRmxpZ2h0OiBAZGFuaWVsLXNjCiAgICogUEhQIExhcmF2ZWw6IEByZW5lcGFyZG9uCiAgICogUEhQIEx1bWVuOiBAYWJjc3VuCiAgICogUEhQIE1lenppbyAod2l0aCBQYXRoIEhhbmRsZXIpOiBAQXJ0aWN1cwogICAqIFBIUCBTbGltOiBAamZhc3RuYWNodAogICAqIFBIUCBTbGltNDogW0B5YmVsZW5rb10oaHR0cHM6Ly9naXRodWIuY29tL3liZWxlbmtvKQogICAqIFBIUCBTeW1mb255OiBAa3NtMgogICAqIFBIUCBTeW1mb255NjogQEJlbmphbWluSGFlCiAgICogUHl0aG9uIEZhc3RBUEk6IEBrcmpha2JyamFrCiAgICogUHl0aG9uIEFJT0hUVFA6CiAgICogUnVieSBvbiBSYWlscyA1OiBAemx4CiAgICogUnVzdCAocnVzdC1zZXJ2ZXIpOiBAbWV0YXN3aXRjaAogICAqIFNjYWxhIEFra2E6IEBCb3VpbGxpZQogICAqIFNjYWxhIENhc2s6IEBhYXJvbnAKICAgKiBTY2FsYSBGaW5jaDogQGppbXNjaHViZXJ0IFs6aGVhcnQ6XShodHRwczovL3d3dy5wYXRyZW9uLmNvbS9qaW1zY2h1YmVydCkKICAgKiBTY2FsYSBMYWdvbTogQGdta3VtYXIyMDA1CiAgICogU2NhbGEgUGxheTogQGFkaWdlcmJlcgogKiBEb2N1bWVudGF0aW9uCiAgICogQXNjaWlEb2M6IEBtYW4tYXQtaG9tZQogICAqIEhUTUwgRG9jIDI6IEBqaGl0Y2hjb2NrCiAgICogQ29uZmx1ZW5jZSBXaWtpOiBAamhpdGNoY29jawogICAqIFBsYW50VU1MOiBAcGJ1cmxzCiAqIENvbmZpZ3VyYXRpb24KICAgKiBBcGFjaGUyOiBAc3RrcndvcmsKICAgKiBrNjogQG1vc3RhZmEKICogU2NoZW1hCiAgICogQXZybzogQHNnYWRvdWFyCiAgICogR3JhcGhRTDogQHdpbmczMjggWzpoZWFydDpdKGh0dHBzOi8vd3d3LnBhdHJlb24uY29tL3dpbmczMjgpCiAgICogS3Rvcm06IEBMdWl6LU1vbmFkCiAgICogTXlTUUw6IFtAeWJlbGVua29dKGh0dHBzOi8vZ2l0aHViLmNvbS95YmVsZW5rbykKICAgKiBQb3N0bWFuIENvbGxlY3Rpb246IEBnY2F0YW5lc2UKICAgKiBQcm90b2NvbCBCdWZmZXI6IEB3aW5nMzI4CiAgICogV1NETDogQGFkZXNzb0RwZAoKOmhlYXJ0OiA9IExpbmsgdG8gc3VwcG9ydCB0aGUgY29udHJpYnV0b3IgZGlyZWN0bHkKCiMjIyMgSG93IHRvIGpvaW4gdGhlIGNvcmUgdGVhbQoKSGVyZSBhcmUgdGhlIHJlcXVpcmVtZW50cyB0byBiZWNvbWUgYSBjb3JlIHRlYW0gbWVtYmVyOgotIHJhbmsgd2l0aGluIHRvcCA1MCBpbiBodHRwczovL2dpdGh1Yi5jb20vb3BlbmFwaXRvb2xzL29wZW5hcGktZ2VuZXJhdG9yL2dyYXBocy9jb250cmlidXRvcnMKICAtIHRvIGNvbnRyaWJ1dGUsIGhlcmUgYXJlIHNvbWUgZ29vZCBbc3RhcnRpbmcgcG9pbnRzXShodHRwczovL2dpdGh1Yi5jb20vb3BlbmFwaXRvb2xzL29wZW5hcGktZ2VuZXJhdG9yL2lzc3Vlcz9xPWlzJTNBb3BlbitpcyUzQWlzc3VlK2xhYmVsJTNBJTIyaGVscCt3YW50ZWQlMjIpCi0gcmVndWxhciBjb250cmlidXRpb25zIHRvIHRoZSBwcm9qZWN0CiAgLSBhYm91dCAzIGhvdXJzIHBlciB3ZWVrCiAgLSBmb3IgY29udHJpYnV0aW9uLCBpdCBjYW4gYmUgYWRkcmVzc2luZyBpc3N1ZXMsIHJldmlld2luZyBQUnMgc3VibWl0dGVkIGJ5IG90aGVycywgc3VibWl0dGluZyBQUiB0byBmaXggYnVncyBvciBtYWtlIGVuaGFuY2VtZW50cywgZXRjCiAgLSBtdXN0IGJlIGFjdGl2ZSBpbiB0aGUgcGFzdCAzIG1vbnRocyBhdCB0aGUgdGltZSBvZiBhcHBsaWNhdGlvbgoKIFRvIGpvaW4gdGhlIGNvcmUgdGVhbSwgcGxlYXNlIHJlYWNoIG91dCB0byB0ZWFtQG9wZW5hcGl0b29scy5vcmcgZm9yIG1vcmUgaW5mb3JtYXRpb24uCgogVG8gYmVjb21lIGEgVGVtcGxhdGUgQ3JlYXRvciwgc2ltcGx5IHN1Ym1pdCBhIFBSIGZvciBuZXcgQVBJIGNsaWVudCAoZS5nLiBSdXN0LCBFbGl4aXIpIG9yIHNlcnZlciBzdHViIChlLmcuIFJ1YnkgR3JhcGUpIGdlbmVyYXRvci4KCiMjIyBbNi4yIC0gT3BlbkFQSSBHZW5lcmF0b3IgVGVjaG5pY2FsIENvbW1pdHRlZV0oI3RhYmxlLW9mLWNvbnRlbnRzKQoKTWVtYmVycyBvZiB0aGUgT3BlbkFQSSBHZW5lcmF0b3IgdGVjaG5pY2FsIGNvbW1pdHRlZSBzaG91bGRlciB0aGUgZm9sbG93aW5nIHJlc3BvbnNpYmlsaXRpZXM6CgotIFByb3ZpZGVzIGd1aWRhbmNlIGFuZCBkaXJlY3Rpb24gdG8gb3RoZXIgdXNlcnMKLSBSZXZpZXdzIHB1bGwgcmVxdWVzdHMgYW5kIGlzc3VlcwotIEltcHJvdmVzIHRoZSBnZW5lcmF0b3IgYnkgbWFraW5nIGVuaGFuY2VtZW50cywgZml4aW5nIGJ1Z3Mgb3IgdXBkYXRpbmcgZG9jdW1lbnRhdGlvbnMKLSBTZXRzIHRoZSB0ZWNobmljYWwgZGlyZWN0aW9uIG9mIHRoZSBnZW5lcmF0b3IKCldobyBpcyBlbGlnaWJsZT8gVGhvc2Ugd2hvIHdhbnQgdG8gam9pbiBtdXN0IGhhdmUgYXQgbGVhc3QgMyBQUnMgbWVyZ2VkIGludG8gYSBnZW5lcmF0b3IuIChFeGNlcHRpb25zIGNhbiBiZSBncmFudGVkIHRvIHRlbXBsYXRlIGNyZWF0b3JzIG9yIGNvbnRyaWJ1dG9ycyB3aG8gaGF2ZSBtYWRlIGEgbG90IG9mIGNvZGUgY2hhbmdlcyB3aXRoIGxlc3MgdGhhbiAzIG1lcmdlZCBQUnMpCgpJZiB5b3Ugd2FudCB0byBqb2luIHRoZSBjb21taXR0ZWUsIHBsZWFzZSBraW5kbHkgYXBwbHkgYnkgc2VuZGluZyBhbiBlbWFpbCB0byB0ZWFtQG9wZW5hcGl0b29scy5vcmcgd2l0aCB5b3VyIEdpdGh1YiBJRC4KCiMjIyMgTWVtYmVycyBvZiBUZWNobmljYWwgQ29tbWl0dGVlCgp8IExhbmd1YWdlcy9HZW5lcmF0b3JzICB8IE1lbWJlciAoam9pbiBkYXRlKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKfDotLS0tLS0tLS0tLS0tLS0tLS0tLS0tfDotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS18CnwgQWN0aW9uU2NyaXB0ICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAp8IEFkYSAgICAgICAgICAgICAgICAgICB8IEBzdGNhcnJleiAoMjAxOC8wMikgQG1pY2hlbGVhbGJhbm8gKDIwMTgvMDIpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKfCBBbmRyb2lkICAgICAgICAgICAgICAgfCBAamF6LWFoICgyMDE3LzA5KSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8CnwgQXBleCAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAp8IEJhc2ggICAgICAgICAgICAgICAgICB8IEBmcm9sICgyMDE3LzA3KSBAYmtyeXphICgyMDE3LzA4KSBAa2Vuam9uZXMtY2lzY28gKDIwMTcvMDkpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKfCBDICAgICAgICAgICAgICAgICAgICAgfCBAemhlbWFudCAoMjAxOC8xMSkgQGl0eXVodWkgKDIwMTkvMTIpIEBtaWNoZWxlYWxiYW5vICgyMDIwLzAzKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8CnwgQysrICAgICAgICAgICAgICAgICAgIHwgQHJhdmluaWthbSAoMjAxNy8wNykgQHN0a3J3b3JrICgyMDE3LzA3KSBAZXRoZXJlYWxqb3kgKDIwMTgvMDIpIEBtYXJ0aW5kZWxpbGxlICgyMDE4LzAzKSBAbXV0dGxleXhkICgyMDE5LzA4KSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAp8IEMjICAgICAgICAgICAgICAgICAgICB8IEBtYW5kcmVhbiAoMjAxNy8wOCkgQHNoaWJheWFuICgyMDIwLzAyKSBAQmxhY2tjbGF3cyAoMjAyMS8wMykgQGx1Y2FtYXp6YW50aSAoMjAyMS8wNSkgQGlCaWNoYSAoMjAyMy8wNykgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8CnwgQ2xvanVyZSAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAp8IENyeXN0YWwgICAgICAgICAgICAgICB8IEBjeWFuZ2xlICgyMDIxLzAxKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKfCBEYXJ0ICAgICAgICAgICAgICAgICAgfCBAamF1bWFyZCAoMjAxOC8wOSkgQGpvc2gtYnVydG9uICgyMDE5LzEyKSBAYW1vbmRuZXQgKDIwMTkvMTIpIEBzYnUtV0JUICgyMDIwLzEyKSBAa3VobnJveWFsICgyMDIwLzEyKSBAYWdpbG9iICgyMDIwLzEyKSBAYWhtZWRuZndlbGEgKDIwMjEvMDgpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8CnwgRWlmZmVsICAgICAgICAgICAgICAgIHwgQGp2ZWxpbGxhICgyMDE3LzA5KSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAp8IEVsaXhpciAgICAgICAgICAgICAgICB8IEBtcm1zdG4gKDIwMTgvMTIpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKfCBFbG0gICAgICAgICAgICAgICAgICAgfCBAZXJpa3RpbSAoMjAxOC8wOSkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8CnwgRXJsYW5nICAgICAgICAgICAgICAgIHwgQHRzbG91Z2h0ZXIgKDIwMTcvMTEpIEBqZmFjb3JybyAoMjAxOC8xMCkgQHJvYmVydG9hbG9pICgyMDE4LzEwKSBAbmVsc29udmlkZXMgKDIwMjQvMDkpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAp8IEYjICAgICAgICAgICAgICAgICAgICB8IEBubWZpc2hlciAoMjAxOS8wNSkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKfCBHbyAgICAgICAgICAgICAgICAgICAgfCBAYW50aWhheCAoMjAxNy8xMSkgQGdyb2tpZnkgKDIwMTgvMDcpIEBrZW1va2VtbyAoMjAxOC8wOSkgQGppcmlrdW5jYXIgKDIwMjEvMDEpIEBwaDRyNWg0ZCAoMjAyMS8wNCkgQGx3ajUgKDIwMjMvMDQpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAp8IEdyYXBoUUwgICAgICAgICAgICAgICB8IEByZW5lcGFyZG9uICgyMDE4LzEyKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKfCBHcm9vdnkgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8CnwgSGFza2VsbCAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAp8IEphdmEgICAgICAgICAgICAgICAgICB8IEBiYmRvdWdsYXMgKDIwMTcvMDcpIEBzcmVlc2hhcyAoMjAxNy8wOCkgQGpmaWFsYSAoMjAxNy8wOCkgQGx1a295YW5vdiAoMjAxNy8wOSkgQGNib3JuZXQgKDIwMTcvMDkpIEBqZWZmOWZpbmdlciAoMjAxOC8wMSkgQGthcmlzbWFubiAoMjAxOS8wMykgQFpvbXpvZyAoMjAxOS8wNCkgQGx3bGVlMjYwOCAoMjAxOS8xMCkgQG1hcnRpbi1tZmcgKDIwMjMvMDgpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8CnwgSmF2YSBTcHJpbmcgICAgICAgICAgIHwgQGNhY2hlc2NydWJiZXIgKDIwMjIvMDIpIEB3ZWxzaG0gKDIwMjIvMDIpIEBNZWxsZUQgKDIwMjIvMDIpIEBhdGV4dG9yICgyMDIyLzAyKSBAbWFuZWRldjc5ICgyMDIyLzAyKSBAamF2aXNzdCAoMjAyMi8wMikgQGJvcnNjaCAoMjAyMi8wMikgQGJhbmxldmVudGUgKDIwMjIvMDIpIEBab216b2cgKDIwMjIvMDkpIEBtYXJ0aW4tbWZnICgyMDIzLzA4KSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKfCBKTWV0ZXIgICAgICAgICAgICAgICAgfCBAa2Fubmt5byAoMjAyMS8wMSkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8CnwgSmV0YnJhaW5zIEhUVFAgQ2xpZW50IHwgQGpsZW5ncmFuZCAoMjAyMy8wMSkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAp8IEp1bGlhICAgICAgICAgICAgICAgICB8IEB0YW5tYXlrbSAoMjAyMy8wMSkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKfCBLb3RsaW4gICAgICAgICAgICAgICAgfCBAZHI0a2U2MTYgKDIwMTgvMDgpIEBrYXJpc21hbm4gKDIwMTkvMDMpIEBab216b2cgKDIwMTkvMDQpIEBhbmRyZXdlbWVyeSAoMjAxOS8xMCkgQDRicnVudSAoMjAxOS8xMSkgQHl1dGFrYTBtICgyMDIwLzAzKSBAc3RlZmFua29wcGllciAoMjAyMi8wNikgQGU1bCAoMjAyNC8xMCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8CnwgTHVhICAgICAgICAgICAgICAgICAgIHwgQGRhdXJuaW1hdG9yICgyMDE3LzA4KSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAp8IE40SlMgICAgICAgICAgICAgICAgICB8IEBtbWV3cy1uNCAoMjAyMy8wMykgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKfCBOaW0gICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8CnwgTm9kZUpTL0phdmFzY3JpcHQgICAgIHwgQENvZGVOaW5qYWkgKDIwMTcvMDcpIEBmcm9sICgyMDE3LzA3KSBAY2xpZmZhbm8gKDIwMTcvMDcpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAp8IE9iakMgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKfCBPQ2FtbCAgICAgICAgICAgICAgICAgfCBAY2dlbnNvdWwgKDIwMTkvMDgpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8CnwgUGVybCAgICAgICAgICAgICAgICAgIHwgQHdpbmczMjggKDIwMTcvMDcpIFs6aGVhcnQ6XShodHRwczovL3d3dy5wYXRyZW9uLmNvbS93aW5nMzI4KSBAeXVlOTk0NDg4MiAoMjAxOS8wNikgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAp8IFBIUCAgICAgICAgICAgICAgICAgICB8IEBqZWJlbnRpZXIgKDIwMTcvMDcpLCBAZGthcmxvdmkgKDIwMTcvMDcpLCBAbWFuZHJlYW4gKDIwMTcvMDgpLCBAamZhc3RuYWNodCAoMjAxNy8wOSksIFtAeWJlbGVua29dKGh0dHBzOi8vZ2l0aHViLmNvbS95YmVsZW5rbykgKDIwMTgvMDcpLCBAcmVuZXBhcmRvbiAoMjAxOC8xMikgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKfCBQb3dlclNoZWxsICAgICAgICAgICAgfCBAd2luZzMyOCAoMjAyMC8wNSkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8CnwgUHl0aG9uICAgICAgICAgICAgICAgIHwgQGNib3JuZXQgKDIwMTcvMDkpIEB0b21wbHVzICgyMDE4LzEwKSBAa3JqYWticmphayAoMjAyMy8wMikgQGZhMDMxMSAoMjAyMy8xMCkgQG11bHRhbmkgKDIwMjMvMTApIHwKfCBSICAgICAgICAgICAgICAgICAgICAgfCBAUmFtYW50aCAoMjAxOS8wNykgQHNhaWdpcmlkaGFyMjEgKDIwMTkvMDcpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8CnwgUnVieSAgICAgICAgICAgICAgICAgIHwgQGNsaWZmYW5vICgyMDE3LzA3KSBAemx4ICgyMDE3LzA5KSBAYXV0b3BwICgyMDE5LzAyKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAp8IFJ1c3QgICAgICAgICAgICAgICAgICB8IEBmcm9sICgyMDE3LzA3KSBAZmFyY2FsbGVyICgyMDE3LzA4KSBAcmljaGFyZHdoaXVrICgyMDE5LzA3KSBAcGFsYWRpbnpoICgyMDIwLzA1KSBAamFjb2ItcHJvICgyMDIyLzEwKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKfCBTY2FsYSAgICAgICAgICAgICAgICAgfCBAY2xhc25ha2UgKDIwMTcvMDcpLCBAc2hpamlua3VpICAoMjAxOC8wMSksIEByYW16aW1hYWxlaiAoMjAxOC8wMyksIEBjaGFtZWxlb244MiAoMjAyMC8wMyksIEBCb3VpbGxpZSAoMjAyMC8wNCkgQGZpc2g4NiAoMjAyMy8wNikgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8CnwgU3dpZnQgICAgICAgICAgICAgICAgIHwgQGpnYXZyaXMgKDIwMTcvMDcpIEBlaHljaGUgKDIwMTcvMDgpIEBFZHViaXRzICgyMDE3LzA5KSBAamF6LWFoICgyMDE3LzA5KSBANGJydW51ICgyMDE5LzExKSBAZHlkdXMweDE0ICgyMDIzLzA2KSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAp8IFR5cGVTY3JpcHQgICAgICAgICAgICB8IEBUaUZ1ICgyMDE3LzA3KSBAdGF4cG9uICgyMDE3LzA3KSBAc2ViYXN0aWFuaGFhcyAoMjAxNy8wNykgQGtlbmlzdGV3YXJkICgyMDE3LzA3KSBAVnJvbGlqa3ggKDIwMTcvMDkpIEBtYWNqb2hubnkgKDIwMTgvMDEpIEB0b3BjZSAoMjAxOC8xMCkgQGFrZWhpciAoMjAxOS8wNykgQHBldGVqb2hhbnNvbnhvICgyMDE5LzExKSBAYW1ha2hyb3YgKDIwMjAvMDIpIEBkYXZpZGdhbWVybyAoMjAyMi8wMykgQG1rdXNha2EgKDIwMjIvMDQpIEBqb3NjaGEgKDIwMjQvMTApICAgIHwKfCBYb2pvICAgICAgICAgICAgICAgICAgfCBAVG9waGVlZSAoMjAyMy8wNCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8CgoKUGFzdCBNZW1iZXJzIG9mIFRlY2huaWNhbCBDb21taXR0ZWU6CnwgTGFuZ3VhZ2VzL0dlbmVyYXRvcnMgICAgICAgICB8IE1lbWJlciAoam9pbiBkYXRlKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8CnwgOi0tLS0tLS0tLS0tLS0tLS0gfCA6LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gfAp8IFB5dGhvbiAgICAgICAgICAgIHwgQHRheHBvbiAoMjAxNy8wNykgQGZyb2wgKDIwMTcvMDcpIEBtYm9obG9vbCAoMjAxNy8wNykgQGNib3JuZXQgKDIwMTcvMDkpIEBrZW5qb25lcy1jaXNjbyAoMjAxNy8xMSkgQHRvbXBsdXMgKDIwMTgvMTApIEBhcnVuLW5hbGxhICgyMDE5LzExKSAgfAoKCjpoZWFydDogPSBMaW5rIHRvIHN1cHBvcnQgdGhlIGNvbnRyaWJ1dG9yIGRpcmVjdGx5CgojIyMgWzYuMyAtIEhpc3Rvcnkgb2YgT3BlbkFQSSBHZW5lcmF0b3JdKCN0YWJsZS1vZi1jb250ZW50cykKCk9wZW5BUEkgR2VuZXJhdG9yIGlzIGEgZm9yayBvZiBbU3dhZ2dlciBDb2RlZ2VuXShodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb2RlZ2VuKS4gSW4gdmlldyBvZiB0aGUgaXNzdWVzIHdpdGggdGhlIFN3YWdnZXIgQ29kZWdlbiAzLjAuMCAoYmV0YSkgcmVsZWFzZSBhbmQgdGhlIGRpc2FncmVlbWVudCBvbiB0aGUgcHJvamVjdCdzIGRpcmVjdGlvbiwgbW9yZSB0aGFuIDQwIHRvcCBjb250cmlidXRvcnMgYW5kIHRlbXBsYXRlIGNyZWF0b3JzIG9mIFN3YWdnZXIgQ29kZWdlbiBkZWNpZGVkIHRvIGZvcmsgU3dhZ2dlciBDb2RlZ2VuIGFuZCBtYWludGFpbiBhIGNvbW11bml0eS1kcml2ZW4gdmVyc2lvbiBjYWxsZWQgIk9wZW5BUEkgR2VuZXJhdG9yIi4gUGxlYXNlIHJlZmVyIHRvIHRoZSBbUSZBXShkb2NzL3FuYS5tZCkgZm9yIG1vcmUgaW5mb3JtYXRpb24uCgojIyMjIEZvdW5kaW5nIE1lbWJlcnMgKGFscGhhYmV0aWNhbCBvcmRlcik6CgotIFtBa2loaXRvIE5ha2Fub10oaHR0cHM6Ly9naXRodWIuY29tL2Fja2ludG9zaCkKLSBbQXJ0ZW0gT2NoZXJlZGtvXShodHRwczovL2dpdGh1Yi5jb20vZ2FsYXhpZSkKLSBbQXJ0aHVyIE1vZ2xpZXZdKGh0dHBzOi8vZ2l0aHViLmNvbS9BcnRpY3VzKQotIFtCYXJ0ZWsgS3J5emFdKGh0dHBzOi8vZ2l0aHViLmNvbS9ia3J5emEpCi0gW0JlbiBXZWxsc10oaHR0cHM6Ly9naXRodWIuY29tL2J2d2VsbHMpCi0gW0JlbmphbWluIEdpbGxdKGh0dHBzOi8vZ2l0aHViLmNvbS9iamdpbGwpCi0gW0NocmlzdG9waGUgQm9ybmV0XShodHRwczovL2dpdGh1Yi5jb20vY2Jvcm5ldCkKLSBbQ2xpZmZhbm8gU3ViYWdpb10oaHR0cHM6Ly9naXRodWIuY29tL2NsaWZmYW5vKQotIFtEYWlraSBNYXRzdWRhdGVdKGh0dHBzOi8vZ2l0aHViLmNvbS9kLWRhdGUpCi0gW0RhbmllbF0oaHR0cHM6Ly9naXRodWIuY29tL0RhbmllbGt1MTUpCi0gW0VtaWxpYW5vIEJvbmFzc2ldKGh0dHBzOi8vZ2l0aHViLmNvbS9lbWlsaWFub2JvbmFzc2kpCi0gW0VyaWsgVGltbWVyc10oaHR0cHM6Ly9naXRodWIuY29tL2VyaWt0aW0pCi0gW0VzdGViYW4gR2VocmluZ10oaHR0cHM6Ly9naXRodWIuY29tL21hY2pvaG5ueSkKLSBbR3VzdGF2byBQYXpdKGh0dHBzOi8vZ2l0aHViLmNvbS9ndXN0YXZvYXBheikKLSBbSmF2aWVyIFZlbGlsbGFdKGh0dHBzOi8vZ2l0aHViLmNvbS9qdmVsaWxsYSkKLSBbSmVhbi1GcmFuw6dvaXMgQ8O0dMOpXShodHRwczovL2dpdGh1Yi5jb20vSkZDb3RlKQotIFtKaW0gU2NodWJlcnRdKGh0dHBzOi8vZ2l0aHViLmNvbS9qaW1zY2h1YmVydCkKLSBbSm9uIFNjaG9uaW5nXShodHRwczovL2dpdGh1Yi5jb20vam9uc2Nob25pbmcpCi0gW0rDqXLDqW1pZSBCcmVzc29uXShodHRwczovL2dpdGh1Yi5jb20vam1pbmkpIFs6aGVhcnQ6XShodHRwczovL3d3dy5wYXRyZW9uLmNvbS9qbWluaSkKLSBbSsO2cm4gQWhyZW5zXShodHRwczovL2dpdGh1Yi5jb20vamF5ZWFybikKLSBbS2VuaSBTdGV3YXJkXShodHRwczovL2dpdGh1Yi5jb20va2VuaXN0ZXdhcmQpCi0gW01hcmNpbiBTdGVmYW5pdWtdKGh0dHBzOi8vZ2l0aHViLmNvbS9tc3RlZmFuaXVrKQotIFtNYXJ0aW4gRGVsaWxsZV0oaHR0cHM6Ly9naXRodWIuY29tL01hcnRpbkRlbGlsbGUpCi0gW01hc2FoaXJvIFlhbWF1Y2hpXShodHRwczovL2dpdGh1Yi5jb20vYWxnYXMpCi0gW01pY2hlbGUgQWxiYW5vXShodHRwczovL2dpdGh1Yi5jb20vbWljaGVsZWFsYmFubykKLSBbUmFtemkgTWFhbGVqXShodHRwczovL2dpdGh1Yi5jb20vcmFtemltYWFsZWopCi0gW1JhdmluZHJhIE5pa2FtXShodHRwczovL2dpdGh1Yi5jb20vcmF2aW5pa2FtKQotIFtSaWNhcmRvIENhcmRvbmFdKGh0dHBzOi8vZ2l0aHViLmNvbS9yaWNhcmRvbmEpCi0gW1NlYmFzdGlhbiBIYWFzXShodHRwczovL2dpdGh1Yi5jb20vc2ViYXN0aWFuaGFhcykKLSBbU2ViYXN0aWFuIE1hbmRyZWFuXShodHRwczovL2dpdGh1Yi5jb20vbWFuZHJlYW4pCi0gW1NyZWVuaWRoaSBTcmVlc2hhXShodHRwczovL2dpdGh1Yi5jb20vc3JlZXNoYXMpCi0gW1N0ZWZhbiBLcmlzbWFubl0oaHR0cHM6Ly9naXRodWIuY29tL3N0a3J3b3JrKQotIFtTdGVwaGFuZSBDYXJyZXpdKGh0dHBzOi8vZ2l0aHViLmNvbS9zdGNhcnJleikKLSBbVGFrdXJvIFdhZGFdKGh0dHBzOi8vZ2l0aHViLmNvbS90YXhwb24pCi0gW1RvbWFzeiBQcnVzXShodHRwczovL2dpdGh1Yi5jb20vdG9tcGx1cykKLSBbVHJpc3RhbiBTbG91Z2h0ZXJdKGh0dHBzOi8vZ2l0aHViLmNvbS90c2xvdWdodGVyKQotIFtWaWN0b3IgT3Jsb3Zza3ldKGh0dHBzOi8vZ2l0aHViLmNvbS92aWNsb3Zza3kpCi0gW1ZpY3RvciBUcmFraHRlbmJlcmddKGh0dHBzOi8vZ2l0aHViLmNvbS92aWN0b3JnaXQpCi0gW1ZsYWQgRnJvbG92XShodHRwczovL2dpdGh1Yi5jb20vZnJvbCkKLSBbVmxhZGltaXIgUG91emFub3ZdKGh0dHBzOi8vZ2l0aHViLmNvbS9mYXJjYWxsZXIpCi0gW1dpbGxpYW0gQ2hlbmddKGh0dHBzOi8vZ2l0aHViLmNvbS93aW5nMzI4KQotIFtYaW4gTWVuZ10oaHR0cHM6Ly9naXRodWIuY29tL3htZW5nMSkgWzpoZWFydDpdKGh0dHBzOi8vd3d3LnBhdHJlb24uY29tL3VzZXIvb3ZlcnZpZXc/dT0xNjQzNTM4NSkKLSBbWHUgSHVpIEh1aV0oaHR0cHM6Ly9naXRodWIuY29tL3hoaCkKLSBbYW50aWhheF0oaHR0cHM6Ly9naXRodWIuY29tL2FudGloYXgpCi0gW2JlYXRjcmFja2VyXShodHRwczovL2dpdGh1Yi5jb20vYmVhdGNyYWNrZXIpCi0gW2RhdXJuaW1hdG9yXShodHRwczovZ2l0aHViLmNvbS9kYXVybmltYXRvcikKLSBbZXRoZXJlYWxqb3ldKGh0dHBzOi8vZ2l0aHViLmNvbS9ldGhlcmVhbGpveSkKLSBbamZpYWxhXShodHRwczovL2dpdGh1Yi5jb20vamZpYWxhKQotIFtsdWtveWFub3ZdKGh0dHBzOi8vZ2l0aHViLmNvbS9sdWtveWFub3YpCgo6aGVhcnQ6ID0gTGluayB0byBzdXBwb3J0IHRoZSBjb250cmlidXRvciBkaXJlY3RseQoKIyMgWzcgLSBMaWNlbnNlXSgjdGFibGUtb2YtY29udGVudHMpCi0tLS0tLS0KCkNvcHlyaWdodCAyMDE4IE9wZW5BUEktR2VuZXJhdG9yIENvbnRyaWJ1dG9ycyAoaHR0cHM6Ly9vcGVuYXBpLWdlbmVyYXRvci50ZWNoKQpDb3B5cmlnaHQgMjAxOCBTbWFydEJlYXIgU29mdHdhcmUKCkxpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOwp5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCllvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdCBbYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMF0oaHR0cHM6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMCkKClVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuClNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCgotLS0K + readmeEtag: '"35c14a09d50234cb63559a9b2eeb04f12e27aa7e"' + readmeLastModified: Wed, 13 Nov 2024 13:29:29 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-11-13T03:21:09Z' + updated: '2024-11-14T01:48:19Z' language: Java archived: false - stars: 21827 + stars: 21838 watchers: 220 - forks: 6583 + forks: 6587 owner: OpenAPITools logo: https://avatars.githubusercontent.com/u/37325267?v=4 license: Apache-2.0 - repoEtag: '"b421786bfdfce0a39595208019404dbe874e49c156738697c946665738d69c5d"' - repoLastModified: Wed, 13 Nov 2024 03:21:09 GMT + repoEtag: '"c25e16b807221772ca989867869f5397506a5cb6039020089331a9592b3c0043"' + repoLastModified: Thu, 14 Nov 2024 01:48:19 GMT foundInMaster: true id: 0418f8afcd0196c648d1a46c0c5c20d1 v3_1_link: https://github.com/OpenAPITools/openapi-generator/issues/9083 @@ -1121,17 +1121,17 @@ repositoryId: 323665366 description: OpenAPI based HTTP Client code generator created: '2020-12-22T15:35:49Z' - updated: '2024-11-12T17:42:18Z' + updated: '2024-11-14T02:41:40Z' language: C# archived: false - stars: 2969 + stars: 2971 watchers: 45 - forks: 207 + forks: 208 owner: microsoft logo: https://avatars.githubusercontent.com/u/6154722?v=4 license: MIT - repoEtag: '"075eeb5de38b6e921261c9d33895694786b4c605487f697ec286ed753989c2cc"' - repoLastModified: Tue, 12 Nov 2024 17:42:18 GMT + repoEtag: '"a511d84e2b71a5f004b5cef1fcc2ef7aa46d81715526f358d074950e85629fcc"' + repoLastModified: Thu, 14 Nov 2024 02:41:40 GMT foundInMaster: true - source: https://openapi.tools/ name: FabriKt @@ -1295,7 +1295,7 @@ owner: 42Crunch logo: https://avatars.githubusercontent.com/u/25365245?v=4 license: AGPL-3.0 - repoEtag: '"e5d982ca087c1d7d46a47e61fd91eb154008c8ccc476fc5df3f8b0b6a5eee2fc"' + repoEtag: '"879b3e0f440916159a398a391f822eb241c602cbbcc6d3bc5d9af4262f326fb2"' repoLastModified: Tue, 12 Nov 2024 18:00:03 GMT foundInMaster: true id: 782ecbb10f1ff8ac9685e0ed24e52e58 @@ -1361,17 +1361,17 @@ repositoryId: 19390712 description: Swagger Editor created: '2014-05-02T22:47:10Z' - updated: '2024-11-12T19:53:14Z' + updated: '2024-11-13T19:54:56Z' language: JavaScript archived: false - stars: 8934 + stars: 8935 watchers: 260 forks: 2256 owner: swagger-api logo: https://avatars.githubusercontent.com/u/7658037?v=4 license: Apache-2.0 - repoEtag: '"af5b4afa770975b39a86cf07bd27f7bd105548f530d475d30550fa6c832be234"' - repoLastModified: Tue, 12 Nov 2024 19:53:14 GMT + repoEtag: '"f9c7e8cf5f3f3bf6f78600eb5fbd74b492c6fbd56aaac05bf5bac6fa0231a225"' + repoLastModified: Wed, 13 Nov 2024 19:54:56 GMT foundInMaster: true id: 951cf61d12c812ef9b201ad76b5d278d v3_1: true @@ -1515,17 +1515,17 @@ repositoryId: 69595482 description: Open Source API Design created: '2016-09-29T18:22:33Z' - updated: '2024-11-12T19:10:25Z' + updated: '2024-11-13T18:55:36Z' language: TypeScript archived: false stars: 987 watchers: 42 - forks: 498 + forks: 499 owner: Apicurio logo: https://avatars.githubusercontent.com/u/28107283?v=4 license: Apache-2.0 - repoEtag: '"e4a6018c79d4794bc1ee67d99f917111ad890611d897cd44bfd27df4ba364750"' - repoLastModified: Tue, 12 Nov 2024 19:10:25 GMT + repoEtag: '"6681b74badf15817297d8d77f2228b35184ce9269b17e6f53a9c9c558d0e3e89"' + repoLastModified: Wed, 13 Nov 2024 18:55:36 GMT foundInMaster: true homepage: https://github.com/Apicurio/apicurio-studio id: efe9656e80c1bf6304903ca5a60fe5a6 @@ -1731,17 +1731,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-11-12T09:30:01Z' + updated: '2024-11-13T23:37:34Z' language: TypeScript archived: false - stars: 4319 + stars: 4322 watchers: 55 - forks: 349 + forks: 350 owner: stoplightio logo: https://avatars.githubusercontent.com/u/10767217?v=4 license: Apache-2.0 - repoEtag: '"722e646809cbc4feb815fcf43852d2b1166614b704fe4911105c7646c6d35de5"' - repoLastModified: Tue, 12 Nov 2024 09:30:01 GMT + repoEtag: '"a9fde2a619297c74ef99f6bb79ab3803c264f06e8ba5456d192564ac2f76f294"' + repoLastModified: Wed, 13 Nov 2024 23:37:34 GMT foundInMaster: true useMasterProperties: true id: 15aad8cd322242e03733b07f2a37890a @@ -1774,17 +1774,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-11-10T04:17:08Z' + updated: '2024-11-13T21:56:13Z' language: Java archived: false - stars: 1405 + stars: 1406 watchers: 22 forks: 221 owner: microcks logo: https://avatars.githubusercontent.com/u/11051048?v=4 license: Apache-2.0 - repoEtag: '"7789e679d44bf467e12deb7878b571ab025b878916419fd4eb5039931c6efc9b"' - repoLastModified: Sun, 10 Nov 2024 04:17:08 GMT + repoEtag: '"69537bcad4431f2f6a5b3f3234692ce4d06eaee321585bc63867914b555bea46"' + repoLastModified: Wed, 13 Nov 2024 21:56:13 GMT foundInMaster: true id: 1c0e918b5a733b0f1726199e3ea101d6 - source: https://openapi.tools/ @@ -1953,17 +1953,17 @@ repositoryId: 61366800 description: Build OpenAPI-compliant REST APIs using TypeScript and Node created: '2016-06-17T10:42:50Z' - updated: '2024-11-12T11:59:43Z' + updated: '2024-11-14T00:50:27Z' language: TypeScript archived: false - stars: 3566 + stars: 3570 watchers: 28 forks: 503 owner: lukeautry logo: https://avatars.githubusercontent.com/u/8770560?v=4 license: MIT - repoEtag: '"323338b077a17eed56bce1adb6d11ad01594bdda4b4bfdec1614422ff8f50b1d"' - repoLastModified: Tue, 12 Nov 2024 11:59:43 GMT + repoEtag: '"61aa3d5145070ddffdc69a6ecc13a743eb7a9dfb35a303ccdab459224cae73fe"' + repoLastModified: Thu, 14 Nov 2024 00:50:27 GMT foundInMaster: true id: 2529db76d3d9f042b0c624f65b13fc41 - source: @@ -1983,17 +1983,17 @@ 🚀 The OpenAPI to TypeScript codegen. Generate clients, SDKs, validators, and more. Support: @mrlubos created: '2024-01-10T15:19:25Z' - updated: '2024-11-13T00:09:56Z' + updated: '2024-11-14T02:02:24Z' language: TypeScript archived: false - stars: 1333 + stars: 1339 watchers: 6 forks: 103 owner: hey-api logo: https://avatars.githubusercontent.com/u/164436240?v=4 license: NOASSERTION - repoEtag: '"2348ddbac626eb7dfda36ffc515a0c4b1396adb16033f3516527f6afb20da968"' - repoLastModified: Wed, 13 Nov 2024 00:09:56 GMT + repoEtag: '"a6f08111fe0c7a09ee4a6c4baab163ae53c5a9eeaea231755a16b452ad246e8e"' + repoLastModified: Thu, 14 Nov 2024 02:02:24 GMT category: - Converters - SDK @@ -2034,11 +2034,11 @@ archived: false stars: 1113 watchers: 81 - forks: 535 + forks: 536 owner: vert-x3 logo: https://avatars.githubusercontent.com/u/8124623?v=4 license: Apache-2.0 - repoEtag: '"a8993c7daf4223be634c2cb6e9ed6ca46743fd85d99bacd2834f97c14228fcea"' + repoEtag: '"59f1f11475b91696ae0af59548ff5cfe13140e974768a86ec5e7236a7d63e74a"' repoLastModified: Mon, 11 Nov 2024 17:54:34 GMT foundInMaster: true v3_link: https://github.com/vert-x3/vertx-web/issues/1872 @@ -2072,11 +2072,11 @@ archived: false stars: 894 watchers: 13 - forks: 236 + forks: 237 owner: kogosoftwarellc logo: https://avatars.githubusercontent.com/u/15419153?v=4 license: MIT - repoEtag: '"5a825a674d62457cde99f6b1d1057286783131ac6307c3bcd3ee9acbab0177cd"' + repoEtag: '"acd5e005920d3b66dca2098a2e32cb2854d4c57bb3e68950fca93fffa06823b5"' repoLastModified: Thu, 31 Oct 2024 23:23:24 GMT foundInMaster: true - source: https://openapi.tools/ @@ -2140,12 +2140,12 @@ language: JavaScript archived: false stars: 38 - watchers: 23 + watchers: 25 forks: 5 owner: smartrecruiters logo: https://avatars.githubusercontent.com/u/1618540?v=4 license: MIT - repoEtag: '"8fe0ce1245eadba46fbda0e12b6d8728c188c78a1857080db44aff0371fa4719"' + repoEtag: '"143dae75ece554481f653eed34fad840d7dfa772bae901599734728bf8b03965"' repoLastModified: Wed, 07 Aug 2024 14:31:26 GMT foundInMaster: true id: b6882b9c2b3386fd0dac448d07cbcb36 @@ -2170,17 +2170,17 @@ 🕸️ Create REST and GraphQL APIs, scaffold Jamstack webapps, stream changes in real-time. created: '2015-03-06T21:46:05Z' - updated: '2024-11-12T19:33:10Z' + updated: '2024-11-13T20:33:53Z' language: TypeScript archived: false - stars: 8691 + stars: 8692 watchers: 213 forks: 962 owner: api-platform logo: https://avatars.githubusercontent.com/u/13420081?v=4 license: MIT - repoEtag: '"a1a150b28b4d8a3c6402c2448c441ecdecd3edbf25413d5fb9e0008d87470463"' - repoLastModified: Tue, 12 Nov 2024 19:33:10 GMT + repoEtag: '"f1eb0a8a22f8d2a4904c44001a6ab1db3c7313a268b3befce566d3cec297f15b"' + repoLastModified: Wed, 13 Nov 2024 20:33:53 GMT foundInMaster: true id: d14f5904300aabf1ceef4660a6b3d57e - source: https://openapi.tools/ @@ -2352,17 +2352,17 @@ repositoryId: 105440153 description: 'OpenAPI (Swagger) module for Nest framework (node.js) :earth_americas:' created: '2017-10-01T12:20:24Z' - updated: '2024-11-11T21:02:04Z' + updated: '2024-11-13T18:15:09Z' language: TypeScript archived: false - stars: 1694 + stars: 1695 watchers: 30 - forks: 476 + forks: 477 owner: nestjs logo: https://avatars.githubusercontent.com/u/28507035?v=4 license: MIT - repoEtag: '"8e7044d710de4fac7b6f120cb0c524754116019fde1b3b10efb57a479745b4ac"' - repoLastModified: Mon, 11 Nov 2024 21:02:04 GMT + repoEtag: '"d351c15e745509b8c1936a55535ec1e064c07129b6071bc2cbccb74aaa5a0666"' + repoLastModified: Wed, 13 Nov 2024 18:15:09 GMT foundInMaster: true id: 7071babd9853fc901c5decfa9b465b67 - source: @@ -2686,17 +2686,17 @@ baked in support for OpenAPI (v3.1, v3.0, and v2.0), Arazzo v1.0, as well as AsyncAPI v2.x. created: '2018-08-15T18:43:18Z' - updated: '2024-11-12T17:03:26Z' + updated: '2024-11-14T02:36:51Z' language: TypeScript archived: false - stars: 2527 + stars: 2529 watchers: 34 - forks: 240 + forks: 241 owner: stoplightio logo: https://avatars.githubusercontent.com/u/10767217?v=4 license: Apache-2.0 - repoEtag: '"f9d95ef7220d74f3bfff8c1f4c806563aefee5d9de9c7d4ffa6ccbefd1fcb714"' - repoLastModified: Tue, 12 Nov 2024 17:03:26 GMT + repoEtag: '"e74656c1252638a7ca8ace334c4b746b21afd17f6cde10e4c8001013297fe875"' + repoLastModified: Thu, 14 Nov 2024 02:36:51 GMT foundInMaster: true id: fab3cc58898cd8953a30e43cc622e0fe - source: https://openapi.tools/ @@ -2750,17 +2750,17 @@ repositoryId: 153173690 description: Configurable and extensible validator/linter for OpenAPI documents created: '2018-10-15T19:59:22Z' - updated: '2024-11-12T21:39:30Z' + updated: '2024-11-13T10:06:45Z' language: JavaScript archived: false - stars: 500 + stars: 501 watchers: 22 forks: 90 owner: IBM logo: https://avatars.githubusercontent.com/u/1459110?v=4 license: Apache-2.0 - repoEtag: '"865080c06e1afdbc0f238719bd283a4c66b509d13ee374c75b2c90d4c67dc4d7"' - repoLastModified: Tue, 12 Nov 2024 21:39:30 GMT + repoEtag: '"c0ac3a34b6f872512243191c5095df5654beef97b25a0e490cfd246a64327d33"' + repoLastModified: Wed, 13 Nov 2024 10:06:45 GMT foundInMaster: true id: 0bf7dd29a9d07232135bb00764928296 v3_1: true @@ -2782,17 +2782,17 @@ ⚒️ Redocly CLI makes OpenAPI easy. Lint/validate to any standard, generate beautiful docs, and more. created: '2019-09-10T14:56:25Z' - updated: '2024-11-12T17:05:19Z' + updated: '2024-11-13T19:27:21Z' language: TypeScript archived: false - stars: 941 + stars: 943 watchers: 28 forks: 148 owner: Redocly logo: https://avatars.githubusercontent.com/u/32099856?v=4 license: MIT - repoEtag: '"5b7ba98e7ed4864fce7a987ba8ad8d31abd8a9e839af5c49fa1ff0fbf2f2585b"' - repoLastModified: Tue, 12 Nov 2024 17:05:19 GMT + repoEtag: '"98adaec4e7ef3b1355f9c0192577455684766165da4f462bc07e3a59bf55741b"' + repoLastModified: Wed, 13 Nov 2024 19:27:21 GMT category: - Description Validators - Documentation @@ -3174,17 +3174,17 @@ OpenAPI 3.0 (and Swagger v2) implementation for Go (parsing, converting, validation, and more) created: '2017-06-11T20:12:06Z' - updated: '2024-11-12T12:17:46Z' + updated: '2024-11-13T21:06:29Z' language: Go archived: false - stars: 2624 + stars: 2626 watchers: 23 - forks: 429 + forks: 430 owner: getkin logo: https://avatars.githubusercontent.com/u/40365715?v=4 license: MIT - repoEtag: '"75217beed22f94681f4e9c263bdaf647bb2b1ab0721b3ecc789a38dbf28ff88e"' - repoLastModified: Tue, 12 Nov 2024 12:17:46 GMT + repoEtag: '"12644f510b5f85852e3d9dad09a92059c4efa445c93633f9958af4b15c63dd1d"' + repoLastModified: Wed, 13 Nov 2024 21:06:29 GMT foundInMaster: true v2: true id: f6838ce08e87fa4c3dc813c97193ece3 @@ -3221,17 +3221,17 @@ It validates PSR-7 messages (HTTP request/response) against OpenAPI specifications created: '2019-09-19T05:57:05Z' - updated: '2024-11-12T03:23:53Z' + updated: '2024-11-13T20:54:23Z' language: PHP archived: false - stars: 527 + stars: 528 watchers: 23 forks: 93 owner: thephpleague logo: https://avatars.githubusercontent.com/u/527621?v=4 license: MIT - repoEtag: '"1df5aef96fbcd0a6820ce9ba34beebd1076551c62759e9878993205d7425641c"' - repoLastModified: Tue, 12 Nov 2024 03:23:53 GMT + repoEtag: '"2edda1cb9ece0be8d967fe143361c0623fe9491cde10e881aab72be6e737b8ce"' + repoLastModified: Wed, 13 Nov 2024 20:54:23 GMT foundInMaster: true v3_1_link: https://github.com/thephpleague/openapi-psr7-validator/issues/163 id: 5db76a91d3b4f650045f409b9e0f4e9b @@ -3257,17 +3257,17 @@ Read and write OpenAPI yaml/json files and make the content accessible in PHP objects. created: '2018-10-23T10:46:11Z' - updated: '2024-11-12T01:13:05Z' + updated: '2024-11-13T16:13:29Z' language: PHP archived: false stars: 472 - watchers: 22 + watchers: 21 forks: 92 owner: cebe logo: https://avatars.githubusercontent.com/u/189796?v=4 license: MIT - repoEtag: '"ea489e9c7ca115499d9e5f967bbdba31e8e5df2734b137f92bf0090fbe0a8ee3"' - repoLastModified: Tue, 12 Nov 2024 01:13:05 GMT + repoEtag: '"868241d88ae1936696749b0f105d906799930e630035a52fd70d0e08e28b8054"' + repoLastModified: Wed, 13 Nov 2024 16:13:29 GMT foundInMaster: true v3_1_link: https://github.com/cebe/php-openapi/pull/128 id: 3a26d5049f03c42cb9771c179db0f35f @@ -3383,17 +3383,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-11-12T17:37:58Z' + updated: '2024-11-13T22:55:17Z' language: C# archived: false - stars: 1408 + stars: 1409 watchers: 64 forks: 232 owner: microsoft logo: https://avatars.githubusercontent.com/u/6154722?v=4 license: MIT - repoEtag: '"1a264a840fb404df66fa0708fddd8508f0de7edcb568148ea2aa78434a17d8f9"' - repoLastModified: Tue, 12 Nov 2024 17:37:58 GMT + repoEtag: '"558207226ee6bd3196c6a36d277727055670faa45b0fd34535d40be5769012fe"' + repoLastModified: Wed, 13 Nov 2024 22:55:17 GMT foundInMaster: true id: 1066748bb5b1f114a70856a29fee4aa7 - source: @@ -3590,17 +3590,17 @@ repositoryId: 26726495 description: Swagger 2.0 implementation for go created: '2014-11-16T20:13:15Z' - updated: '2024-11-12T23:06:29Z' + updated: '2024-11-14T00:26:55Z' language: Go archived: false - stars: 9545 + stars: 9546 watchers: 120 - forks: 1252 + forks: 1253 owner: go-swagger logo: https://avatars.githubusercontent.com/u/10362650?v=4 license: Apache-2.0 - repoEtag: '"dca21f2b3994c3f16f4abf9534f9c8da312b1a02dcdca4a93e9058775d04d967"' - repoLastModified: Tue, 12 Nov 2024 23:06:29 GMT + repoEtag: '"ef4d9b2d7299cf3d12a3c043160a1de9b397b0a37f970d1ac135d2521cf4d5b8"' + repoLastModified: Thu, 14 Nov 2024 00:26:55 GMT foundInMaster: true id: ef136df9ffb40bb33ccbd76665d8f5b4 - source: https://openapi.tools/ @@ -3693,17 +3693,17 @@ repositoryId: 41822320 description: 'The Swagger/OpenAPI toolchain for .NET, ASP.NET Core and TypeScript. ' created: '2015-09-02T19:11:57Z' - updated: '2024-11-13T03:16:42Z' + updated: '2024-11-14T03:21:15Z' language: C# archived: false - stars: 6783 + stars: 6785 watchers: 167 forks: 1293 owner: RicoSuter logo: https://avatars.githubusercontent.com/u/2603405?v=4 license: MIT - repoEtag: '"cb997591742a4b0434bca96073f3c7394844f62e56b4d8c46e437210e82f0b3b"' - repoLastModified: Wed, 13 Nov 2024 03:16:42 GMT + repoEtag: '"d0ed2beda4f0052425082ffca64ce84f0d8e0c5508d54a9bd1ff90785eab7483"' + repoLastModified: Thu, 14 Nov 2024 03:21:15 GMT foundInMaster: true id: 93636e95435e95198d7d15c9d507f0d3 - source: https://openapi.tools/ @@ -3766,17 +3766,17 @@ documentation, API clients and server stubs in different languages by parsing your OpenAPI / Swagger definition. created: '2011-07-06T14:26:48Z' - updated: '2024-11-12T19:25:29Z' + updated: '2024-11-13T19:54:15Z' language: Mustache archived: false - stars: 17035 + stars: 17040 watchers: 414 - forks: 6029 + forks: 6030 owner: swagger-api logo: https://avatars.githubusercontent.com/u/7658037?v=4 license: Apache-2.0 - repoEtag: '"affc92085a579359c4f339c78db0ff8ba61bb6e134cbb3ebe5dab76dca6691c4"' - repoLastModified: Tue, 12 Nov 2024 19:25:29 GMT + repoEtag: '"9ee87f8855e72a0beade32611ec78040a4a4753152b4cda63c510e7abe9f9c38"' + repoLastModified: Wed, 13 Nov 2024 19:54:15 GMT foundInMaster: true id: eda1e66e1b7805496e42f57851791a32 - source: https://openapi.tools/ @@ -3804,12 +3804,12 @@ language: TypeScript archived: false stars: 4625 - watchers: 911 + watchers: 912 forks: 739 owner: Azure logo: https://avatars.githubusercontent.com/u/6844498?v=4 license: MIT - repoEtag: '"5e168a5c7e10a25aaaa96e7f6a5f4196b769717700143161fd9af4c377b838e5"' + repoEtag: '"c3052567a18c14496e91007cf83effbcb1cb296fbbba94a938577fb00f766071"' repoLastModified: Mon, 11 Nov 2024 16:51:55 GMT foundInMaster: true id: 648d92bca90bf58cd74407e0bcad2936 @@ -4116,17 +4116,17 @@ repositoryId: 32223373 description: A model-based test case generator created: '2015-03-14T17:22:38Z' - updated: '2024-11-04T10:00:23Z' + updated: '2024-11-14T01:36:23Z' language: Java archived: false - stars: 219 + stars: 220 watchers: 20 forks: 54 owner: Cornutum logo: https://avatars.githubusercontent.com/u/11477145?v=4 license: MIT - repoEtag: '"756e905a18bd22b3040762ce22f5d782e6d3f97e1b3f2799c0bbaf5818f52fe9"' - repoLastModified: Mon, 04 Nov 2024 10:00:23 GMT + repoEtag: '"020144ccd7b1870eec611e55c4affa716f011296e4f52ec854df5a843ced43e7"' + repoLastModified: Thu, 14 Nov 2024 01:36:23 GMT foundInMaster: true id: 64dc602f01798a9a39aba18c09d655ae - source: https://openapi.tools/ @@ -4318,17 +4318,17 @@ Due to the OpenAPI v3.0 and JSON Schema discrepancy, you can use this JS library to convert JSON Schema objects to OpenAPI Schema. created: '2019-10-04T15:44:03Z' - updated: '2024-09-02T14:31:00Z' + updated: '2024-11-13T08:35:05Z' language: TypeScript archived: false - stars: 111 + stars: 112 watchers: 4 forks: 16 owner: openapi-contrib logo: https://avatars.githubusercontent.com/u/49447320?v=4 license: MIT - repoEtag: '"addaa73d913bb92da84fdc322c872f2808ad4880d8255cb6269c835c5935f7e2"' - repoLastModified: Mon, 02 Sep 2024 14:31:00 GMT + repoEtag: '"f810ea989dd74cf70ca5d208852ad13b387495f9232e7880a6e32b3c29ebc962"' + repoLastModified: Wed, 13 Nov 2024 08:35:05 GMT foundInMaster: true id: c443b19d564b9a8e21fe8b6192f75f8f - source: @@ -4476,16 +4476,16 @@ repositoryId: 491304964 description: Automagically reverse-engineer REST APIs via capturing traffic created: '2022-05-11T23:48:49Z' - updated: '2024-11-12T10:20:11Z' + updated: '2024-11-13T21:54:27Z' language: HTML archived: false - stars: 5098 + stars: 5099 watchers: 23 forks: 221 owner: alufers logo: https://avatars.githubusercontent.com/u/5400940?v=4 - repoEtag: '"891b1e280f718b59306f7405d49de03237341b11627a31970d7d781380b1c79a"' - repoLastModified: Tue, 12 Nov 2024 10:20:11 GMT + repoEtag: '"a29798c03cc817431065a70555a660761c023b6bb56b75a736ec3fe4bc9cd532"' + repoLastModified: Wed, 13 Nov 2024 21:54:27 GMT foundInMaster: true - source: https://openapi.tools/ name: OpenApiSpecGeneratorPlugin @@ -4511,17 +4511,17 @@ Dev Proxy is an API simulator that helps you effortlessly test your app beyond the happy path. created: '2022-09-09T18:11:29Z' - updated: '2024-11-12T14:57:08Z' + updated: '2024-11-13T20:43:16Z' language: C# archived: false - stars: 528 + stars: 529 watchers: 16 forks: 61 owner: microsoft logo: https://avatars.githubusercontent.com/u/6154722?v=4 license: MIT - repoEtag: '"6dd2899f50ee9eaa8ab61d230c5c917456ab87ef0e70457fe621f425bff6beb8"' - repoLastModified: Tue, 12 Nov 2024 14:57:08 GMT + repoEtag: '"2e26f21ea3485c28b0fa06f54392611a11e94be4dc58a8adff1899510c89d9e2"' + repoLastModified: Wed, 13 Nov 2024 20:43:16 GMT foundInMaster: true - source: https://openapi.tools/ name: har2openapi @@ -4654,17 +4654,17 @@ repositoryId: 709571808 description: Browser extension that generates API specs for any app or website created: '2023-10-25T00:36:06Z' - updated: '2024-11-12T01:25:59Z' + updated: '2024-11-13T22:07:15Z' language: TypeScript archived: false - stars: 3949 + stars: 3952 watchers: 22 forks: 72 owner: AndrewWalsh logo: https://avatars.githubusercontent.com/u/15863952?v=4 license: MIT - repoEtag: '"690ba121161f8627e52c4425e116e6935aa5bd03a9e8faaf0f4c69f4b0067562"' - repoLastModified: Tue, 12 Nov 2024 01:25:59 GMT + repoEtag: '"8428be4024a6e568997b1f640f0327dda2f528874f469128e91d784a4b7f47c7"' + repoLastModified: Wed, 13 Nov 2024 22:07:15 GMT category: - Auto Generators - Documentation @@ -4691,17 +4691,17 @@ repositoryId: 381857226 description: null created: '2021-06-30T23:29:49Z' - updated: '2024-11-13T01:58:56Z' + updated: '2024-11-14T03:24:55Z' language: Java archived: false - stars: 4496 + stars: 4501 watchers: 46 - forks: 214 + forks: 215 owner: microsoft logo: https://avatars.githubusercontent.com/u/6154722?v=4 license: MIT - repoEtag: '"fa4810e05d1783d19d160600081147df2bedf78f714df3457ccd059df3a5479f"' - repoLastModified: Wed, 13 Nov 2024 01:58:56 GMT + repoEtag: '"d25da13499cf94a7b73f60cb505fc5aa9c4e771ad92f3fde0608091a474273ba"' + repoLastModified: Thu, 14 Nov 2024 03:24:55 GMT category: - Auto Generators - Server Implementations @@ -4778,17 +4778,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-11-09T14:32:02Z' + updated: '2024-11-13T21:39:21Z' language: Go archived: false - stars: 919 + stars: 921 watchers: 8 forks: 74 owner: danielgtaylor logo: https://avatars.githubusercontent.com/u/106826?v=4 license: MIT - repoEtag: '"418ba6b79e9875af9ac4d94bfcf77a1a5d25391854fd4901c1a706f3b7486b60"' - repoLastModified: Sat, 09 Nov 2024 14:32:02 GMT + repoEtag: '"517a2f246c8827203871822cc95100741bb68c48dfdb4c39f325f6d5d998049c"' + repoLastModified: Wed, 13 Nov 2024 21:39:21 GMT foundInMaster: true id: 22a8c610015b1b9d89af39221beabe66 v3_1: true @@ -4848,17 +4848,17 @@ Plugin for converting OpenAPI 3.0 specs to the Postman Collection (v2) format created: '2018-12-12T10:13:46Z' - updated: '2024-11-11T09:55:32Z' + updated: '2024-11-13T12:51:50Z' language: JavaScript archived: false - stars: 926 + stars: 927 watchers: 22 forks: 199 owner: postmanlabs logo: https://avatars.githubusercontent.com/u/10251060?v=4 license: Apache-2.0 - repoEtag: '"8b06e941beb2b8abedb3b30c09312c33168c93d697bfdde19d2eb1ba67414157"' - repoLastModified: Mon, 11 Nov 2024 09:55:32 GMT + repoEtag: '"804bd26a2a2c43ea71251906e4a7d7d97dbf7ff86cd9bccbf73d217772005dc5"' + repoLastModified: Wed, 13 Nov 2024 12:51:50 GMT foundInMaster: true id: 31b717a2084e3d92f6cda2c33484c789 v3_link: true @@ -4931,7 +4931,7 @@ owner: github logo: https://avatars.githubusercontent.com/u/9919?v=4 license: MIT - repoEtag: '"d207a4d4623c4058f5c2424da536f9d5cc9614bc7bee72fa780e2cdda97d8bda"' + repoEtag: '"1344b387fc42c0ea48d05077c35a4abe370885b5381821a9fab8f59ea70e7cdc"' repoLastModified: Mon, 11 Nov 2024 01:41:47 GMT foundInMaster: true id: ec6a7a1e4a69a9beeb95bdebb88cb36d @@ -5025,17 +5025,17 @@ repositoryId: 36817565 description: The ZAP by Checkmarx Core project created: '2015-06-03T16:55:01Z' - updated: '2024-11-12T18:37:25Z' + updated: '2024-11-13T21:21:53Z' language: Java archived: false - stars: 12732 + stars: 12737 watchers: 396 forks: 2270 owner: zaproxy logo: https://avatars.githubusercontent.com/u/6716868?v=4 license: Apache-2.0 - repoEtag: '"f2ff4fa917b28d334dc30dc87ab9dc62a9138b1e3689bf8b476659dcfafe62d2"' - repoLastModified: Tue, 12 Nov 2024 18:37:25 GMT + repoEtag: '"a9aca67a175a5910b3041e898435120fd8265d0d660dc60a6db0b65b5faf610b"' + repoLastModified: Wed, 13 Nov 2024 21:21:53 GMT foundInMaster: true id: 9eedc1be44837a65f912bcf562844f39 - source: @@ -5369,17 +5369,17 @@ repositoryId: 1431547 description: Web APIs for Django. 🎸 created: '2011-03-02T17:13:56Z' - updated: '2024-11-12T20:24:02Z' + updated: '2024-11-13T22:40:18Z' language: Python archived: false - stars: 28415 + stars: 28423 watchers: 626 - forks: 6839 + forks: 6841 owner: encode logo: https://avatars.githubusercontent.com/u/19159390?v=4 license: NOASSERTION - repoEtag: '"3d616b210e6a94566b01d89298ca9159cb3e5e5599dc4a8af3a4a14641c85085"' - repoLastModified: Tue, 12 Nov 2024 20:24:02 GMT + repoEtag: '"2833f1ddf999dfcc4582fdf2e68689401c47af228de9330bbf5dfdea416d0a2c"' + repoLastModified: Wed, 13 Nov 2024 22:40:18 GMT foundInMaster: true id: fb8994c078a380cc3510b024f6ed1202 category: Server Implementations @@ -5564,17 +5564,17 @@ repositoryId: 240776275 description: Generate modern Python clients from OpenAPI created: '2020-02-15T19:33:46Z' - updated: '2024-11-12T17:21:39Z' + updated: '2024-11-13T13:52:03Z' language: Python archived: false - stars: 1341 + stars: 1342 watchers: 14 forks: 202 owner: openapi-generators logo: https://avatars.githubusercontent.com/u/84925606?v=4 license: MIT - repoEtag: '"3572e007fc5ac7742ea694f7b2d5c70d352e8806df68b4344c576c59eb2af19f"' - repoLastModified: Tue, 12 Nov 2024 17:21:39 GMT + repoEtag: '"b95e00d19c14a38caa312cb8da9729e949d454fccc3530c481eba8e3b742f7bf"' + repoLastModified: Wed, 13 Nov 2024 13:52:03 GMT foundInMaster: true id: 784ec4adac4e47e4211ea74ef36dd5a5 v3_1: true @@ -5604,17 +5604,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-11-10T11:54:42Z' + updated: '2024-11-13T18:06:54Z' language: TypeScript archived: false - stars: 1800 + stars: 1803 watchers: 19 forks: 205 owner: stoplightio logo: https://avatars.githubusercontent.com/u/10767217?v=4 license: Apache-2.0 - repoEtag: '"8f3b1ed4565b3c1c442e0419d1788ea1159ec7c81c9fde22df8ff398b3088566"' - repoLastModified: Sun, 10 Nov 2024 11:54:42 GMT + repoEtag: '"d84c2d264f5da19ad3d6caee9458fcf8a12d01b17f41c777d6af8eeba945d704"' + repoLastModified: Wed, 13 Nov 2024 18:06:54 GMT foundInMaster: true id: 2f94cc1fc980953b17a9979d4ff2e7ec - source: @@ -6090,7 +6090,7 @@ owner: daveshanley logo: https://avatars.githubusercontent.com/u/187345?v=4 license: MIT - repoEtag: '"c19c8fef9ca264d07ecebfbfab3c9a73e92b8ad03d399aefcfc694c9cee28246"' + repoEtag: '"b491822a624ecf2d7fa823322a9e2ad5aac572fb88a19eff0db7ebbffdb23c9b"' repoLastModified: Mon, 11 Nov 2024 17:22:04 GMT foundInMaster: true category: @@ -6176,17 +6176,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-11-12T13:33:54Z' + updated: '2024-11-13T14:37:39Z' language: Go archived: false - stars: 474 + stars: 475 watchers: 6 forks: 64 owner: pb33f logo: https://avatars.githubusercontent.com/u/104016643?v=4 license: NOASSERTION - repoEtag: '"558872486662b8aa5f9f385d630812729ebd8646bf9729050ec999c52f9ab9b3"' - repoLastModified: Tue, 12 Nov 2024 13:33:54 GMT + repoEtag: '"bea43189c2afc52bdc10a68e88fd215afd5337ea4e00d6a6f7df3367dfb927c0"' + repoLastModified: Wed, 13 Nov 2024 14:37:39 GMT category: Parsers foundInMaster: true name: libopenapi @@ -6481,7 +6481,7 @@ Development - Collaboratively Design & Independently Deploy MicroServices & MicroFrontends. created: '2020-03-16T13:33:07Z' - updated: '2024-11-12T15:59:16Z' + updated: '2024-11-13T11:31:57Z' language: Kotlin archived: false stars: 280 @@ -6490,8 +6490,8 @@ owner: znsio logo: https://avatars.githubusercontent.com/u/75619722?v=4 license: MIT - repoEtag: '"e524a803f664612baceab64b9ace177ff3b1147ffc932883839c38a551338200"' - repoLastModified: Tue, 12 Nov 2024 15:59:16 GMT + repoEtag: '"26b220a44b2b82723de206a6dfe3681486ecdb8a870de6def9da3591461bd529"' + repoLastModified: Wed, 13 Nov 2024 11:31:57 GMT foundInMaster: true - source: - https://openapi.tools/ @@ -6510,17 +6510,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-11-10T23:34:28Z' + updated: '2024-11-13T19:42:13Z' language: Go archived: false - stars: 190 + stars: 192 watchers: 1 forks: 16 owner: pb33f logo: https://avatars.githubusercontent.com/u/104016643?v=4 license: NOASSERTION - repoEtag: '"53d76d58099a800a542d7117476b19bcf7031a4e390a21250a7c4a9150869b63"' - repoLastModified: Sun, 10 Nov 2024 23:34:28 GMT + repoEtag: '"d4ade45577742cbe50424f1b59027ced50497e3d4adc2b04ce31e08ec9445ad8"' + repoLastModified: Wed, 13 Nov 2024 19:42:13 GMT category: - Data Validators - Testing @@ -6615,7 +6615,7 @@ repositoryId: 737526274 description: Serverless API Gateway created: '2023-12-31T11:37:10Z' - updated: '2024-11-12T15:57:11Z' + updated: '2024-11-13T17:13:25Z' language: JavaScript archived: false stars: 62 @@ -6624,8 +6624,8 @@ owner: irensaltali logo: https://avatars.githubusercontent.com/u/6968747?v=4 license: NOASSERTION - repoEtag: '"fa17b3f2ecab371e6aa7efdd266504c55bd934a58a57486a110e28572211d038"' - repoLastModified: Tue, 12 Nov 2024 15:57:11 GMT + repoEtag: '"62906dfdd188f5fea4265f142ce12086c669476403d7689692a0c41a9ef85b95"' + repoLastModified: Wed, 13 Nov 2024 17:13:25 GMT foundInMaster: true - source: https://openapi.tools/ name: Treblle @@ -6805,7 +6805,7 @@ owner: udamir logo: https://avatars.githubusercontent.com/u/29271460?v=4 license: MIT - repoEtag: '"e15fa03568639ea53c8efb5e19b6e9912b1b402b72c560ae37180f495c849bb1"' + repoEtag: '"f6c745a2b0580445d92e01aabb1a142e91e07942fdcff0a805d2e1dd6415d015"' repoLastModified: Wed, 23 Oct 2024 21:15:05 GMT foundInMaster: true - source: https://openapi.tools/ @@ -6831,17 +6831,17 @@ repositoryId: 29151578 description: Seamlessly adds a Swagger to Rails-based API's created: '2015-01-12T19:08:10Z' - updated: '2024-11-12T09:26:29Z' + updated: '2024-11-13T14:19:48Z' language: Ruby archived: false - stars: 2003 + stars: 2005 watchers: 28 - forks: 432 + forks: 433 owner: rswag logo: https://avatars.githubusercontent.com/u/55741034?v=4 license: MIT - repoEtag: '"25e32d164336a1ebe8281d21f60916633958dac9ed3bec60d9c41fdcdbd461fc"' - repoLastModified: Tue, 12 Nov 2024 09:26:29 GMT + repoEtag: '"8740121e39579e0aaf6723dddcb61281ff77f6cbd4cf0b00ab01d554d8e4c5fc"' + repoLastModified: Wed, 13 Nov 2024 14:19:48 GMT foundInMaster: true v3_1_link: https://github.com/rswag/rswag/pull/714 - source: https://openapi.tools/ @@ -6885,17 +6885,17 @@ repositoryId: 476820102 description: Input OpenAPI. Output SDKs and Docs. created: '2022-04-01T17:56:54Z' - updated: '2024-11-13T02:24:47Z' + updated: '2024-11-13T21:12:41Z' language: TypeScript archived: false - stars: 2674 + stars: 2677 watchers: 19 forks: 149 owner: fern-api logo: https://avatars.githubusercontent.com/u/102944815?v=4 license: Apache-2.0 - repoEtag: '"000f46c272308f72db1d184eebb04615e7541921a6fd64aa73c485167bb5aa9c"' - repoLastModified: Wed, 13 Nov 2024 02:24:47 GMT + repoEtag: '"daeef76afb7e141192a3a1b2a422a6f004b0f60f2e2677e34a818e443e352749"' + repoLastModified: Wed, 13 Nov 2024 21:12:41 GMT foundInMaster: true sponsored: true testimonial: > @@ -6945,7 +6945,7 @@ forks: 2 owner: stainless-api logo: https://avatars.githubusercontent.com/u/88061651?v=4 - repoEtag: '"efaebde1fbbc5628316e1c0288b6916f1281907c145dc5fe8bef2628aa9342b0"' + repoEtag: '"52afa8cc73768541834152f086a4be63e4dee0a414da5d32dee1e5fc744aea7a"' repoLastModified: Mon, 28 Oct 2024 21:10:58 GMT foundInMaster: true - source: https://openapi.tools/ @@ -6999,17 +6999,17 @@ repositoryId: 630566794 description: Generate Swift client and server code from an OpenAPI document. created: '2023-04-20T16:50:53Z' - updated: '2024-11-12T20:53:51Z' + updated: '2024-11-13T15:58:50Z' language: Swift archived: false - stars: 1435 - watchers: 114 + stars: 1436 + watchers: 115 forks: 117 owner: apple logo: https://avatars.githubusercontent.com/u/10639145?v=4 license: Apache-2.0 - repoEtag: '"8f5a2b2a30aba610d275d6ba62fc7f2184c57ed19dc88eb8d92efb30a15e5394"' - repoLastModified: Tue, 12 Nov 2024 20:53:51 GMT + repoEtag: '"731ad8ead0bffebbb6bf1f227be90f41df8c13c8e06a46a955c5839e56ad609b"' + repoLastModified: Wed, 13 Nov 2024 15:58:50 GMT foundInMaster: true - source: - https://openapi.tools/ @@ -7027,17 +7027,17 @@ The world's coolest API Validation and compliance tool. Validate APIs against OpenAPI specifications and much more created: '2023-05-01T17:19:15Z' - updated: '2024-11-09T20:21:46Z' + updated: '2024-11-14T03:34:17Z' language: Go archived: false - stars: 123 + stars: 124 watchers: 2 forks: 18 owner: pb33f logo: https://avatars.githubusercontent.com/u/104016643?v=4 license: NOASSERTION - repoEtag: '"80555aa9a54539dc366855cfc5e6ed4bc9145b94bd6462df3c609d7f5fb2663a"' - repoLastModified: Sat, 09 Nov 2024 20:21:46 GMT + repoEtag: '"95e91375cc96b3542cdec80fe005ea35c1dd157002303ea29a56740d65500510"' + repoLastModified: Thu, 14 Nov 2024 03:34:17 GMT category: - Testing Tools - Testing @@ -7066,17 +7066,17 @@ repositoryId: 365588968 description: OpenApi schema validation for OpenApi versions v2, v3.0.x and v3.1.x created: '2021-05-08T18:50:37Z' - updated: '2024-11-12T17:47:28Z' + updated: '2024-11-13T22:02:11Z' language: JavaScript archived: false stars: 44 watchers: 3 - forks: 6 + forks: 7 owner: seriousme logo: https://avatars.githubusercontent.com/u/3322396?v=4 license: MIT - repoEtag: '"5db217b958ece8b032d37ad922642f6a8907e370b102ed23bcdf7a66d8207093"' - repoLastModified: Tue, 12 Nov 2024 17:47:28 GMT + repoEtag: '"1b449c86d12f605833d7605458dba9ff1514ad5a3fd2c53b928fc26e4963b269"' + repoLastModified: Wed, 13 Nov 2024 22:02:11 GMT foundInMaster: true id: 983210df2c4289b2210365de0362ab66 name: openapi-schema-validator @@ -7238,17 +7238,17 @@ repositoryId: 706256859 description: Golang Fuego - web framework generating OpenAPI 3 spec from source code created: '2023-10-17T15:36:43Z' - updated: '2024-11-12T15:29:15Z' + updated: '2024-11-13T21:37:54Z' language: Go archived: false - stars: 900 + stars: 901 watchers: 8 forks: 43 owner: go-fuego logo: https://avatars.githubusercontent.com/u/148255240?v=4 license: MIT - repoEtag: '"5b7f1640c54c08cc78fc66e78b854d5c24e4abe293b2fa56fbb1fbbf8733ac6e"' - repoLastModified: Tue, 12 Nov 2024 15:29:15 GMT + repoEtag: '"d91d1e8aca162a91389d2b4fd5ca6fa46f326d9d92ab9f99bfebd64629e929c1"' + repoLastModified: Wed, 13 Nov 2024 21:37:54 GMT foundInMaster: true - source: - https://openapi.tools/ @@ -7264,17 +7264,17 @@ repositoryId: 245763170 description: Huma REST/HTTP API Framework for Golang with OpenAPI 3.1 created: '2020-03-08T06:19:51Z' - updated: '2024-11-13T00:11:04Z' + updated: '2024-11-14T02:21:16Z' language: Go archived: false - stars: 2115 + stars: 2118 watchers: 27 - forks: 151 + forks: 152 owner: danielgtaylor logo: https://avatars.githubusercontent.com/u/106826?v=4 license: MIT - repoEtag: '"3ad663e142649bc012fdd487a7d14f2bbfe81cfa54f1579b1f23c063ef31ab8f"' - repoLastModified: Wed, 13 Nov 2024 00:11:04 GMT + repoEtag: '"6e468f9ee8247361486218bda9761bd565ac8f995fa822727ee50dd9fb0ef6ae"' + repoLastModified: Thu, 14 Nov 2024 02:21:16 GMT foundInMaster: true category: - Auto Generators @@ -7483,7 +7483,7 @@ repositoryId: 843437350 description: Framework for building high quality, interactive API documentation. created: '2024-08-16T14:09:50Z' - updated: '2024-11-12T14:51:15Z' + updated: '2024-11-13T18:50:16Z' language: TypeScript archived: false stars: 96 @@ -7492,8 +7492,8 @@ owner: zuplo logo: https://avatars.githubusercontent.com/u/85497839?v=4 license: MIT - repoEtag: '"78adf7077dd2fffa54e9076ca5abe047d684670ea2621565d024485498d397a4"' - repoLastModified: Tue, 12 Nov 2024 14:51:15 GMT + repoEtag: '"4af4df82eefcbf38cd8f6aa0cc9dbaa634ab20c1e7d1737a7b03ef3a5e0d8b1e"' + repoLastModified: Wed, 13 Nov 2024 18:50:16 GMT foundInMaster: true - source: openapi3 tags name: FastAPI @@ -7515,17 +7515,17 @@ FastAPI framework, high performance, easy to learn, fast to code, ready for production created: '2018-12-08T08:21:47Z' - updated: '2024-11-13T02:52:31Z' + updated: '2024-11-14T03:17:19Z' language: Python archived: false - stars: 77491 + stars: 77537 watchers: 677 - forks: 6624 + forks: 6629 owner: fastapi logo: https://avatars.githubusercontent.com/u/156354296?v=4 license: MIT - repoEtag: '"e9dec55ce81f7475f02e4f51f1c2372cd261e3229117e681da5015bb3a204056"' - repoLastModified: Wed, 13 Nov 2024 02:52:31 GMT + repoEtag: '"80824ac94ad5e1acc7ad871775144451e4347898f42e541ecfe54a93e406981f"' + repoLastModified: Thu, 14 Nov 2024 03:17:19 GMT foundInMaster: true id: 01f8d446752c39de698f67e8d2352229 oldLocations: @@ -7545,17 +7545,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-11-13T00:17:02Z' + updated: '2024-11-14T02:24:43Z' language: JavaScript archived: false - stars: 26570 + stars: 26575 watchers: 648 - forks: 8960 + forks: 8959 owner: swagger-api logo: https://avatars.githubusercontent.com/u/7658037?v=4 license: Apache-2.0 - repoEtag: '"96da56e4ad7d499d8c401faa69afb124aa891dd7739fe16c276a54fef6f165b2"' - repoLastModified: Wed, 13 Nov 2024 00:17:02 GMT + repoEtag: '"5e02a3f3fd19ddf3b74e3a6601670d160c870023e470a923215d4d1d5cbfc2df"' + repoLastModified: Thu, 14 Nov 2024 02:24:43 GMT foundInMaster: true name: swagger-ui homepage: https://github.com/swagger-api/swagger-UI @@ -7588,17 +7588,17 @@ repositoryId: 45250726 description: 📘 OpenAPI/Swagger-generated API Reference Documentation created: '2015-10-30T12:53:02Z' - updated: '2024-11-12T14:41:29Z' + updated: '2024-11-14T01:59:20Z' language: TypeScript archived: false - stars: 23590 + stars: 23599 watchers: 296 forks: 2301 owner: Redocly logo: https://avatars.githubusercontent.com/u/32099856?v=4 license: MIT - repoEtag: '"b3ee47a36296e89b17a6928bf38d8a0a00deadee00fae067142aefa704926edb"' - repoLastModified: Tue, 12 Nov 2024 14:41:29 GMT + repoEtag: '"3fb439f55a12052f234788348db5eda8cdb6920652138d5a4dbff0fdfa6657b6"' + repoLastModified: Thu, 14 Nov 2024 01:59:20 GMT foundInMaster: true v3_1: true id: 2725d6db6977c1dd12ceaf9701787e07 @@ -7644,17 +7644,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-11-12T21:40:15Z' + updated: '2024-11-13T22:04:13Z' language: TypeScript archived: false - stars: 6540 + stars: 6543 watchers: 59 - forks: 389 + forks: 391 owner: mockoon logo: https://avatars.githubusercontent.com/u/49429147?v=4 license: NOASSERTION - repoEtag: '"e4aa95e3c7ac8b00e18f5b73d2d7c8ec5eec1cf9a09d39d67164ffe57cb630f8"' - repoLastModified: Tue, 12 Nov 2024 21:40:15 GMT + repoEtag: '"2e0e1604b38f7971056fd098421945459d905aa1f8498b3a366258e5efa2c52f"' + repoLastModified: Wed, 13 Nov 2024 22:04:13 GMT foundInMaster: true category: Testing id: 8728dfca2c1908dbecdcddd31597fad4 @@ -7677,17 +7677,17 @@ repositoryId: 173009358 description: Generate Go client and server boilerplate from OpenAPI 3 specifications created: '2019-02-27T23:59:59Z' - updated: '2024-11-12T23:06:42Z' + updated: '2024-11-14T02:18:02Z' language: Go archived: false - stars: 6303 + stars: 6308 watchers: 36 - forks: 865 + forks: 868 owner: oapi-codegen logo: https://avatars.githubusercontent.com/u/142752710?v=4 license: Apache-2.0 - repoEtag: '"85842b7fff2bf15509e78dbb5d79b778c2746b4529878184f28f320320bb4ff8"' - repoLastModified: Tue, 12 Nov 2024 23:06:42 GMT + repoEtag: '"2a894cfa692ee25f38e28f5ef43873a453867bb754ed66dd7fdd4a0430adfc2a"' + repoLastModified: Thu, 14 Nov 2024 02:18:02 GMT foundInMaster: true id: 770a221110cc4ef0e399089f5caf8694 oldLocations: @@ -7716,17 +7716,17 @@ repositoryId: 161691324 description: Generate TypeScript types from OpenAPI 3 specs created: '2018-12-13T20:28:01Z' - updated: '2024-11-13T03:25:14Z' + updated: '2024-11-14T01:57:14Z' language: TypeScript archived: false - stars: 5872 + stars: 5882 watchers: 28 forks: 469 owner: openapi-ts logo: https://avatars.githubusercontent.com/u/172838200?v=4 license: MIT - repoEtag: '"d266859f4a11bbb98be42f6c4656e3975c4b0e01948b03ee96c7d6d8c4689387"' - repoLastModified: Wed, 13 Nov 2024 03:25:14 GMT + repoEtag: '"525e7f9b250dde223be2d355dd24c442be96cc7d40791eb7f8103837bfd6ef78"' + repoLastModified: Thu, 14 Nov 2024 01:57:14 GMT foundInMaster: true oldLocations: - https://github.com/drwpow/openapi-typescript @@ -7742,17 +7742,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-11-12T08:53:38Z' + updated: '2024-11-13T16:53:14Z' language: HTML archived: false - stars: 4136 + stars: 4138 watchers: 75 forks: 622 owner: xiaoymin logo: https://avatars.githubusercontent.com/u/7894406?v=4 license: Apache-2.0 - repoEtag: '"67aa6c00b4bfba8f6850d162862c6a3d0d47cff0e73339ad07b211f22a11937f"' - repoLastModified: Tue, 12 Nov 2024 08:53:38 GMT + repoEtag: '"85b6914422497839cb1346975974710a89a51f689bec20f2b94ac7799073a793"' + repoLastModified: Wed, 13 Nov 2024 16:53:14 GMT category: SDK foundInMaster: true - source: openapi3 tags @@ -7768,17 +7768,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-11-12T17:22:59Z' + updated: '2024-11-13T23:38:58Z' language: null archived: false - stars: 3880 + stars: 3881 watchers: 112 forks: 578 owner: APIs-guru logo: https://avatars.githubusercontent.com/u/10975548?v=4 license: CC0-1.0 - repoEtag: '"4d1b6a47150c2b9d44cbffc6cf600c5cdb9c9bd4b1d39853d56f2001c14d8dd6"' - repoLastModified: Tue, 12 Nov 2024 17:22:59 GMT + repoEtag: '"6a8e3eb69d0f5c28ce721a20940c9dec1fe0935a52f0d593e8522a077c1e1fb9"' + repoLastModified: Wed, 13 Nov 2024 23:38:58 GMT foundInMaster: true category: SDK id: 667f2aef78d9d19418fbd6c0a7835abb @@ -7802,17 +7802,17 @@ repositoryId: 196475719 description: Library for OpenAPI 3 with spring-boot created: '2019-07-11T23:08:20Z' - updated: '2024-11-12T13:00:00Z' + updated: '2024-11-14T03:35:46Z' language: Java archived: false - stars: 3291 + stars: 3292 watchers: 46 forks: 499 owner: springdoc logo: https://avatars.githubusercontent.com/u/52804136?v=4 license: Apache-2.0 - repoEtag: '"b6535793a599e26ef708ab5f07f5da0151dd7dc3d747c73bde6de8b3aa6e2c31"' - repoLastModified: Tue, 12 Nov 2024 13:00:00 GMT + repoEtag: '"8e44c5891b1fab7ea75b0ef38a59cfa9ffe5f09fee32d5d29ad4a5a984009a0d"' + repoLastModified: Thu, 14 Nov 2024 03:35:46 GMT foundInMaster: true id: 901410cec129651fcf7374c79f824f27 - source: openapi3 tags @@ -7828,17 +7828,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-11-12T23:55:35Z' + updated: '2024-11-13T10:58:28Z' language: Python archived: false - stars: 2711 + stars: 2712 watchers: 23 forks: 333 owner: tiangolo logo: https://avatars.githubusercontent.com/u/1326112?v=4 license: MIT - repoEtag: '"ec096f09f8d5622558f319c1cf0c0794d08c80548bf564a4387c8b6d9f3832c9"' - repoLastModified: Tue, 12 Nov 2024 23:55:35 GMT + repoEtag: '"b14b9c2432394b6a5d5142c3c28f8be8e71a5513e5ee5fea834bd39d86379b13"' + repoLastModified: Wed, 13 Nov 2024 10:58:28 GMT foundInMaster: true category: Server Implementations id: d0f3fc0bd35fcadacc8ed2c531780739 @@ -7883,17 +7883,17 @@ repositoryId: 244234763 description: Sane and flexible OpenAPI 3 schema generation for Django REST framework. created: '2020-03-01T22:36:54Z' - updated: '2024-11-11T12:56:22Z' + updated: '2024-11-13T10:00:47Z' language: Python archived: false - stars: 2394 + stars: 2395 watchers: 12 - forks: 265 + forks: 266 owner: tfranzel logo: https://avatars.githubusercontent.com/u/13507857?v=4 license: BSD-3-Clause - repoEtag: '"3988aade10edf4b8f4ba33d4c21d9c292869581e7f626cae2a7c4080924e8211"' - repoLastModified: Mon, 11 Nov 2024 12:56:22 GMT + repoEtag: '"621a9def5738d22280c976c0fecaf7985306f4ec451fe038789b800f26fb70ba"' + repoLastModified: Wed, 13 Nov 2024 10:00:47 GMT foundInMaster: true category: Server Implementations id: 520f5c66c3e42a7b3fbface4f156c1dc @@ -7911,17 +7911,17 @@ A fast serialization and validation library, with builtin support for JSON, MessagePack, YAML, and TOML created: '2021-01-26T02:53:57Z' - updated: '2024-11-11T20:43:28Z' + updated: '2024-11-13T23:31:17Z' language: Python archived: false - stars: 2396 + stars: 2399 watchers: 19 - forks: 72 + forks: 73 owner: jcrist logo: https://avatars.githubusercontent.com/u/2783717?v=4 license: BSD-3-Clause - repoEtag: '"4d390a4a5964c3da1c6e0af0b56d311c8b63a508f97d354b35d2c1cb2d914aee"' - repoLastModified: Mon, 11 Nov 2024 20:43:28 GMT + repoEtag: '"85e9588a67a7a19b67b3d41751c8d6c138db20eb8da7c6654d5936e88f2dfa1a"' + repoLastModified: Wed, 13 Nov 2024 23:31:17 GMT category: Server Implementations foundInMaster: true - source: openapi3 tags @@ -7944,17 +7944,17 @@ repositoryId: 203157084 description: Supercharge your API testing, catch bugs, and ensure compliance created: '2019-08-19T11:13:01Z' - updated: '2024-11-12T18:40:42Z' + updated: '2024-11-13T10:51:56Z' language: Python archived: false - stars: 2294 + stars: 2295 watchers: 21 - forks: 163 + forks: 164 owner: schemathesis logo: https://avatars.githubusercontent.com/u/70383271?v=4 license: MIT - repoEtag: '"d42194dd0af4f546cdd36dc9a7494e4ecabcddcd4eb9186649413a4dcfa45404"' - repoLastModified: Tue, 12 Nov 2024 18:40:42 GMT + repoEtag: '"63895429945933a67f3ddd7c7b6457167826ec2f85f0ed29449c8daf4ad80782"' + repoLastModified: Wed, 13 Nov 2024 10:51:56 GMT foundInMaster: true id: f4032fb371a703acffa691c0f1239d45 oldLocations: @@ -7972,17 +7972,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-11-11T08:05:33Z' + updated: '2024-11-14T03:22:45Z' language: Go archived: false - stars: 2107 + stars: 2108 watchers: 39 forks: 250 owner: google logo: https://avatars.githubusercontent.com/u/1342004?v=4 license: Apache-2.0 - repoEtag: '"dc970dfeb2fd8f041d59c0903835871615927113be5535c21dd7bf1144320db0"' - repoLastModified: Mon, 11 Nov 2024 08:05:33 GMT + repoEtag: '"4e64d9c4b30c95d99238c8146d0c4b8ea3e2bd7c234ffb3fe92b128ecfda587f"' + repoLastModified: Thu, 14 Nov 2024 03:22:45 GMT foundInMaster: true category: Converters id: 46e070512676eb0fd196ee199e6a0b34 @@ -7999,17 +7999,17 @@ repositoryId: 165951750 description: RapiDoc -WebComponent for OpenAPI Spec created: '2019-01-16T01:29:58Z' - updated: '2024-11-10T22:53:05Z' + updated: '2024-11-13T22:56:48Z' language: JavaScript archived: false - stars: 1708 + stars: 1710 watchers: 14 forks: 284 owner: rapi-doc logo: https://avatars.githubusercontent.com/u/104180085?v=4 license: MIT - repoEtag: '"fdcebd7172f72d300beaaa905e3426177a8d1eee439f3fdd5353689f7c55a028"' - repoLastModified: Sun, 10 Nov 2024 22:53:05 GMT + repoEtag: '"22747827b442fddf2aa370629c40b3dbb506db9091efab7d70a9a496e5d46fd5"' + repoLastModified: Wed, 13 Nov 2024 22:56:48 GMT foundInMaster: true category: - Documentation @@ -8030,7 +8030,7 @@ A node package wrapper for https://github.com/OpenAPITools/openapi-generator created: '2018-10-26T10:21:23Z' - updated: '2024-11-12T16:14:41Z' + updated: '2024-11-13T14:40:16Z' language: TypeScript archived: false stars: 1452 @@ -8039,8 +8039,8 @@ owner: OpenAPITools logo: https://avatars.githubusercontent.com/u/37325267?v=4 license: Apache-2.0 - repoEtag: '"2ae2f825b3fa45b5ae4a60b1b49cd0af148a1dbe2d588706ef6870d8894a0e33"' - repoLastModified: Tue, 12 Nov 2024 16:14:41 GMT + repoEtag: '"c71d9aaf59ab7985a66a8a92235277d3bdb23f4e7ca84437dfa2d6eb1f3874f0"' + repoLastModified: Wed, 13 Nov 2024 14:40:16 GMT foundInMaster: true category: - Code Generators @@ -8089,7 +8089,7 @@ repositoryId: 372032505 description: OpenAPI v3 code generator for go created: '2021-05-29T17:25:48Z' - updated: '2024-11-11T23:59:34Z' + updated: '2024-11-13T12:28:03Z' language: Go archived: false stars: 1430 @@ -8098,8 +8098,8 @@ owner: ogen-go logo: https://avatars.githubusercontent.com/u/85122432?v=4 license: Apache-2.0 - repoEtag: '"dc6be1ebf4b382fe4e4a7c19d63e62fe2f7cacdca5a71b0cb3f759be14c79fcf"' - repoLastModified: Mon, 11 Nov 2024 23:59:34 GMT + repoEtag: '"eaabe566d683bc6d9d963f2081fb4a8793c62a92312b55f4e991481848f4e692"' + repoLastModified: Wed, 13 Nov 2024 12:28:03 GMT category: Parsers foundInMaster: true - source: openapi3 tags @@ -8124,7 +8124,7 @@ owner: marshmallow-code logo: https://avatars.githubusercontent.com/u/10334301?v=4 license: MIT - repoEtag: '"f1738d3b7bf54aa56ac92831cfabd765f22fc603471919d22d307dff2c288e08"' + repoEtag: '"30633cfd09f9da8a905d3145d926a1f4b27150e46f2180f1557878d26fba6180"' repoLastModified: Tue, 05 Nov 2024 10:25:52 GMT foundInMaster: true category: Parsers @@ -8141,17 +8141,17 @@ repositoryId: 329190167 description: A lightweight Python web API framework. created: '2021-01-13T04:08:48Z' - updated: '2024-11-11T16:56:47Z' + updated: '2024-11-13T06:49:48Z' language: Python archived: false - stars: 1038 + stars: 1039 watchers: 21 forks: 129 owner: apiflask logo: https://avatars.githubusercontent.com/u/78075725?v=4 license: MIT - repoEtag: '"6462974cf261c0bcbc0aad37e74814fb71d83e0ac5b5d4e2da20c60b71be9afc"' - repoLastModified: Mon, 11 Nov 2024 16:56:47 GMT + repoEtag: '"5b8a9c99debef60e9dda0bd3b562911b40da0951daab145b0dfdeb110a379358"' + repoLastModified: Wed, 13 Nov 2024 06:49:48 GMT category: Server Implementations foundInMaster: true oldLocations: @@ -8168,17 +8168,17 @@ repositoryId: 481579846 description: A library that generates OpenAPI (Swagger) docs from Zod schemas created: '2022-04-14T11:32:57Z' - updated: '2024-11-12T19:06:42Z' + updated: '2024-11-13T22:57:27Z' language: TypeScript archived: false - stars: 962 + stars: 964 watchers: 10 forks: 60 owner: asteasolutions logo: https://avatars.githubusercontent.com/u/5244095?v=4 license: MIT - repoEtag: '"fbfd3d8c07b22bd80c4e568819944f7cba84946629cc420ef406549ced0488ec"' - repoLastModified: Tue, 12 Nov 2024 19:06:42 GMT + repoEtag: '"f4756e1fdcc83ef0eefff84107864266fdd973bf431f9a018e6c49b90544b750"' + repoLastModified: Wed, 13 Nov 2024 22:57:27 GMT category: Parsers foundInMaster: true - source: openapi3 tags @@ -8219,17 +8219,17 @@ repositoryId: 113924383 description: Utility for comparing two OpenAPI specifications. created: '2017-12-12T00:39:30Z' - updated: '2024-11-12T19:28:55Z' + updated: '2024-11-13T10:45:03Z' language: Java archived: false - stars: 830 + stars: 831 watchers: 19 forks: 154 owner: OpenAPITools logo: https://avatars.githubusercontent.com/u/37325267?v=4 license: Apache-2.0 - repoEtag: '"ee38afd9b5b5f0d74a0e03f21e1d0a60fcc89a9d55402cfd7a7f748fecc50a56"' - repoLastModified: Tue, 12 Nov 2024 19:28:55 GMT + repoEtag: '"e5b1e5e3ca61c1c08542a1fc3525f473ec32079b2623028586b416cd87cbd002"' + repoLastModified: Wed, 13 Nov 2024 10:45:03 GMT foundInMaster: true category: Parsers id: c128907e9d949a67c1bda0e0ceda755a @@ -8349,11 +8349,11 @@ archived: false stars: 693 watchers: 30 - forks: 326 + forks: 325 owner: apisyouwonthate logo: https://avatars.githubusercontent.com/u/35378327?v=4 license: MIT - repoEtag: '"f1899ee8d8dab4eb3e954d13e0c2bf3f54b751ee240d3d29f37308a6f6e6e517"' + repoEtag: '"fe5a60cc0ac26cc8587dae7bef1eed46c3992c14146b812055ea18ee4f3240f7"' repoLastModified: Wed, 13 Nov 2024 00:47:23 GMT foundInMaster: true category: Description Validators @@ -8434,7 +8434,7 @@ 😎 A list of awesome projects related to OpenAPI 3.0.x, curated by the community created: '2017-03-02T19:31:41Z' - updated: '2024-11-13T00:01:14Z' + updated: '2024-11-14T00:01:17Z' language: JavaScript archived: false stars: 629 @@ -8443,8 +8443,8 @@ owner: APIs-guru logo: https://avatars.githubusercontent.com/u/10975548?v=4 license: BSD-3-Clause - repoEtag: '"55305d8cec675b5fd2e2231c524d58b21e82901fb24945acfed1e89df7d7c66d"' - repoLastModified: Wed, 13 Nov 2024 00:01:14 GMT + repoEtag: '"f1a4a6fd8f2cd7765e1eb409c01d2f22be0778f1e445361d23b5c26716b0405f"' + repoLastModified: Thu, 14 Nov 2024 00:01:17 GMT foundInMaster: true category: Parsers id: 64d4029fd6b82879b746263cac7ce274 @@ -8514,17 +8514,17 @@ Query, provision and operate Cloud and SaaS resources and APIs using an extensible SQL based framework created: '2022-01-03T08:20:06Z' - updated: '2024-11-12T21:34:23Z' + updated: '2024-11-13T16:35:18Z' language: Go archived: false - stars: 549 + stars: 550 watchers: 14 forks: 49 owner: stackql logo: https://avatars.githubusercontent.com/u/95105302?v=4 license: MIT - repoEtag: '"cf8efd4abcb2fddc968837fbe8d9b8f067fb8d2543e81e29a0680415a0f1bb79"' - repoLastModified: Tue, 12 Nov 2024 21:34:23 GMT + repoEtag: '"b1aafc9d259d43eebbf6c9e32d63a400df1840447a27d26dc510c38f17d0441d"' + repoLastModified: Wed, 13 Nov 2024 16:35:18 GMT category: Server Implementations foundInMaster: true - source: openapi3 tags @@ -8914,17 +8914,17 @@ repositoryId: 222924508 description: FastAPI framework plugins created: '2019-11-20T11:41:50Z' - updated: '2024-11-09T18:00:28Z' + updated: '2024-11-13T21:25:20Z' language: Python archived: false - stars: 367 + stars: 368 watchers: 3 forks: 21 owner: madkote logo: https://avatars.githubusercontent.com/u/4921881?v=4 license: MIT - repoEtag: '"af1496f67e2a1276afdc29303e604fcccf2a8df0ed42b6500ca9ca03481dc8e3"' - repoLastModified: Sat, 09 Nov 2024 18:00:28 GMT + repoEtag: '"3848c086dbfc0ec8db139396f39a633d5e434e6ea814e1e04768d5b9d0745cbc"' + repoLastModified: Wed, 13 Nov 2024 21:25:20 GMT foundInMaster: true category: Server Implementations id: 5b8a96994e594bd26bca9505bbc19018 @@ -9061,17 +9061,17 @@ OpenAPI 3 and 3.1 schema generator and validator for Hono, itty-router and more! created: '2022-11-08T11:43:41Z' - updated: '2024-11-13T00:02:16Z' + updated: '2024-11-13T15:29:04Z' language: TypeScript archived: false - stars: 328 + stars: 330 watchers: 9 - forks: 41 + forks: 42 owner: cloudflare logo: https://avatars.githubusercontent.com/u/314135?v=4 license: MIT - repoEtag: '"0b3e3660c4f823a04eb385859af926518d1c984b01ba8c3630f1455897b4f4bd"' - repoLastModified: Wed, 13 Nov 2024 00:02:16 GMT + repoEtag: '"4f7e7a79128f0ceb107404609428d399a2bd85cffd98777c3fe5892da2b1ca4b"' + repoLastModified: Wed, 13 Nov 2024 15:29:04 GMT category: Server Implementations foundInMaster: true oldLocations: @@ -9090,7 +9090,7 @@ Esmerald framework - Highly scalable, performant, easy to learn, easy to code and for every sizeable and complex application created: '2022-10-18T11:50:26Z' - updated: '2024-11-12T17:47:41Z' + updated: '2024-11-13T10:41:34Z' language: Python archived: false stars: 317 @@ -9099,8 +9099,8 @@ owner: dymmond logo: https://avatars.githubusercontent.com/u/65982469?v=4 license: BSD-3-Clause - repoEtag: '"08a2c169f02b4b174e45bc37b190958b06ed987c142d6e8d68461b24c9ac486f"' - repoLastModified: Tue, 12 Nov 2024 17:47:41 GMT + repoEtag: '"67a0131ae7c355f80e97e501ac1f91b5ac1e4ab994aa7a8182f1a953fa12445c"' + repoLastModified: Wed, 13 Nov 2024 10:41:34 GMT category: Server Implementations foundInMaster: true - source: openapi3 tags @@ -9256,17 +9256,17 @@ OpenAPI React Query Codegen is a code generator for creating React Query (also known as TanStack Query) hooks based on your OpenAPI schema. created: '2022-07-22T00:34:17Z' - updated: '2024-11-12T14:05:23Z' + updated: '2024-11-13T09:21:57Z' language: TypeScript archived: false - stars: 294 + stars: 295 watchers: 3 - forks: 28 + forks: 30 owner: 7nohe logo: https://avatars.githubusercontent.com/u/9207663?v=4 license: MIT - repoEtag: '"28a12a84b9ea8cf6aafa77566552ce560d5540bec888c3e8b83ce2d7bcb54fe6"' - repoLastModified: Tue, 12 Nov 2024 14:05:23 GMT + repoEtag: '"76e85780189f382647caeb3424ba66fdd9368fef3ec34e75e1ff36bd03776ddc"' + repoLastModified: Wed, 13 Nov 2024 09:21:57 GMT category: SDK foundInMaster: true - source: openapi3 tags @@ -9281,17 +9281,17 @@ repositoryId: 628179878 description: Use Zod Schemas to create OpenAPI v3.x documentation created: '2023-04-15T06:28:51Z' - updated: '2024-11-12T15:59:20Z' + updated: '2024-11-13T12:40:55Z' language: TypeScript archived: false - stars: 292 + stars: 293 watchers: 2 forks: 14 owner: samchungy logo: https://avatars.githubusercontent.com/u/18017094?v=4 license: MIT - repoEtag: '"5c5b598ca15f66f3513d4909bf8305a0cc6671b0d46af9c73e5bc2695def8e96"' - repoLastModified: Tue, 12 Nov 2024 15:59:20 GMT + repoEtag: '"981fd910718b934f4c47e0da180d7419ddfc4a8aab58a189e94610f9101d2602"' + repoLastModified: Wed, 13 Nov 2024 12:40:55 GMT category: Parsers foundInMaster: true - source: openapi3 tags @@ -9578,17 +9578,17 @@ repositoryId: 32223373 description: A model-based test case generator created: '2015-03-14T17:22:38Z' - updated: '2024-11-04T10:00:23Z' + updated: '2024-11-14T01:36:23Z' language: Java archived: false - stars: 219 + stars: 220 watchers: 20 forks: 54 owner: Cornutum logo: https://avatars.githubusercontent.com/u/11477145?v=4 license: MIT - repoEtag: '"756e905a18bd22b3040762ce22f5d782e6d3f97e1b3f2799c0bbaf5818f52fe9"' - repoLastModified: Mon, 04 Nov 2024 10:00:23 GMT + repoEtag: '"020144ccd7b1870eec611e55c4affa716f011296e4f52ec854df5a843ced43e7"' + repoLastModified: Thu, 14 Nov 2024 01:36:23 GMT foundInMaster: true category: Testing id: 0843a8b0533f5128a9b0e3cf353e82cd @@ -9680,7 +9680,7 @@ repositoryId: 107572738 description: Generates OpenAPI document from OData CSDL created: '2017-10-19T16:39:13Z' - updated: '2024-11-10T20:49:07Z' + updated: '2024-11-13T19:45:17Z' language: C# archived: false stars: 207 @@ -9689,8 +9689,8 @@ owner: microsoft logo: https://avatars.githubusercontent.com/u/6154722?v=4 license: MIT - repoEtag: '"9450cf9925aae34f5fb904820f820acffb5669eb6517c0fc2a1c3d5ef19f0cfe"' - repoLastModified: Sun, 10 Nov 2024 20:49:07 GMT + repoEtag: '"5beadb33f9f8b4e76f3ca725e225fb158e7b2a987a8ce234b11044f6c7e42596"' + repoLastModified: Wed, 13 Nov 2024 19:45:17 GMT foundInMaster: true category: - Low-level Tooling @@ -9768,17 +9768,17 @@ repositoryId: 673944158 description: This repository contains the specification files for PayPal REST APIs. created: '2023-08-02T19:26:26Z' - updated: '2024-11-10T02:32:12Z' + updated: '2024-11-13T20:16:23Z' language: null archived: false - stars: 205 + stars: 206 watchers: 21 - forks: 140 + forks: 141 owner: paypal logo: https://avatars.githubusercontent.com/u/476675?v=4 license: Apache-2.0 - repoEtag: '"60fe649576125921317182853758da850993e352592005edac8ffa175b282c9d"' - repoLastModified: Sun, 10 Nov 2024 02:32:12 GMT + repoEtag: '"f200f9f11c09f69ecf905e31726312873efc6908f827a195de042f8a6fb56f0d"' + repoLastModified: Wed, 13 Nov 2024 20:16:23 GMT category: Code Generators foundInMaster: true - source: openapi3 tags @@ -9853,7 +9853,7 @@ Build APIs your users love ❤️ with Speakeasy. Polished and type-safe SDKs, terraform providers and contract tests for your API. OpenAPI native. created: '2022-09-29T10:13:15Z' - updated: '2024-11-12T13:59:56Z' + updated: '2024-11-14T00:19:12Z' language: JavaScript archived: false stars: 201 @@ -9862,8 +9862,8 @@ owner: speakeasy-api logo: https://avatars.githubusercontent.com/u/91446104?v=4 license: NOASSERTION - repoEtag: '"dacad7b6af864bb8c984906c9e65fdc76cdd67dc402052b3b13ffc5a569f0981"' - repoLastModified: Tue, 12 Nov 2024 13:59:56 GMT + repoEtag: '"51ac74d450befdab373facb376632b119bd315648ec63dcae3fd70e409d4a0d2"' + repoLastModified: Thu, 14 Nov 2024 00:19:12 GMT category: Parsers foundInMaster: true - source: openapi3 tags @@ -9912,17 +9912,17 @@ A tool for generating Refit interfaces and contracts from OpenAPI specifications created: '2023-02-07T23:18:12Z' - updated: '2024-11-08T14:39:33Z' + updated: '2024-11-13T08:10:00Z' language: C# archived: false - stars: 194 + stars: 195 watchers: 6 forks: 42 owner: christianhelle logo: https://avatars.githubusercontent.com/u/710400?v=4 license: MIT - repoEtag: '"2a9cd9c4d4947d782b1f70a2ff9e088b546b7b1c620e1ac7c274416206457442"' - repoLastModified: Fri, 08 Nov 2024 14:39:33 GMT + repoEtag: '"6f028f9d6bdf006bc99f8054f33e8f6603715827365aca2f468a390336e8d80f"' + repoLastModified: Wed, 13 Nov 2024 08:10:00 GMT category: Parsers foundInMaster: true - source: openapi3 tags @@ -9945,7 +9945,7 @@ owner: luolingchun logo: https://avatars.githubusercontent.com/u/22740403?v=4 license: MIT - repoEtag: '"43404ad4a50234abfec39b3be951fefc94bb8d647553a6f5c2521aa4d7a4b55b"' + repoEtag: '"1fba6e05ed13885bb4d504c51be51574541dd56121353ce435e6ac00a1705753"' repoLastModified: Tue, 12 Nov 2024 06:11:22 GMT foundInMaster: true category: Server Implementations @@ -9999,7 +9999,7 @@ owner: Redocly logo: https://avatars.githubusercontent.com/u/32099856?v=4 license: MIT - repoEtag: '"0cb0dda25b08e3f9d6a79df42feb56015892c965021404763c437ba2f5ce18c0"' + repoEtag: '"00c59199a37744bed9c6b1bb00865c33765789a2de4cccd77dd4e785e4e2a50c"' repoLastModified: Tue, 12 Nov 2024 19:05:45 GMT foundInMaster: true v3_1: true @@ -10080,11 +10080,11 @@ archived: false stars: 177 watchers: 6 - forks: 23 + forks: 24 owner: christianhelle logo: https://avatars.githubusercontent.com/u/710400?v=4 license: GPL-3.0 - repoEtag: '"4372a0e3627eafe2e2207e54ffc0de745eea4eb1ed1e50233b69f7a6a12b7d66"' + repoEtag: '"538e16e4e7c6b2b292fa70e70d52b34a71cbf71e5e4ce3f0dd88bca70b8ec267"' repoLastModified: Thu, 07 Nov 2024 20:42:25 GMT category: SDK foundInMaster: true @@ -10108,7 +10108,7 @@ owner: pace logo: https://avatars.githubusercontent.com/u/16001479?v=4 license: MIT - repoEtag: '"f61c1daed7b10a2f7449fc337ab8cc5bae38d3d497a0f6fa7d539d1a3df8d55d"' + repoEtag: '"db1a33017cc879faf2e8f561beeaefd3d297e1647dc22cf48d5725fc321a9a1e"' repoLastModified: Fri, 25 Oct 2024 09:43:12 GMT foundInMaster: true category: Server @@ -10205,12 +10205,12 @@ language: C# archived: false stars: 161 - watchers: 19 + watchers: 20 forks: 117 owner: Redocly logo: https://avatars.githubusercontent.com/u/32099856?v=4 license: MIT - repoEtag: '"a248f46cd59ce20c1dcf645ad71765120200ed61c68efad8db254e3f9c7d9201"' + repoEtag: '"3b7917e405158813979151d58813a0533a0c094405509cda19770bd1784fcb25"' repoLastModified: Fri, 08 Nov 2024 11:02:40 GMT foundInMaster: true v3_1: true @@ -10308,17 +10308,17 @@ repositoryId: 691100358 description: Actix-web wrapper for automatic OpenAPI 3.0 documentation generation. created: '2023-09-13T13:54:51Z' - updated: '2024-11-11T09:31:22Z' + updated: '2024-11-13T13:32:26Z' language: Rust archived: false - stars: 139 + stars: 141 watchers: 5 forks: 5 owner: netwo-io logo: https://avatars.githubusercontent.com/u/64151169?v=4 license: MIT - repoEtag: '"78449c082c62ae31c182a00d2cd73b07166e775d433577603ad02706d810e3b6"' - repoLastModified: Mon, 11 Nov 2024 09:31:22 GMT + repoEtag: '"f53c577d6e0d6e4ab64d69d77f36f424310f7f08712ddf112973929189af3da9"' + repoLastModified: Wed, 13 Nov 2024 13:32:26 GMT category: Parsers foundInMaster: true - source: openapi3 tags @@ -10421,17 +10421,17 @@ repositoryId: 285621457 description: OpenAPI - Getting started, and the specification explained created: '2020-08-06T16:40:47Z' - updated: '2024-11-10T11:37:00Z' + updated: '2024-11-13T09:23:54Z' language: Markdown archived: false - stars: 122 + stars: 123 watchers: 22 forks: 60 owner: OAI logo: https://avatars.githubusercontent.com/u/16343502?v=4 license: CC-BY-4.0 - repoEtag: '"f4a9b1320156e72158fe5369edd56aa2df4530b94316d56c39f95a18731ca16e"' - repoLastModified: Sun, 10 Nov 2024 11:37:00 GMT + repoEtag: '"c5c785b1df12a3510d1029e9757062a57e50b6b0f62f3d7d208f2e0fd3d2889a"' + repoLastModified: Wed, 13 Nov 2024 09:23:54 GMT category: - Parsers - Server Implementations @@ -10485,7 +10485,7 @@ owner: networknt logo: https://avatars.githubusercontent.com/u/8740739?v=4 license: Apache-2.0 - repoEtag: '"3b1cdad286f8e3ae78355f6e36b328b36f8f405e6f5f56525e44f3864f84e4d4"' + repoEtag: '"08a87edfb5bfaa2daa865a5187e4ea6217d6c50f31fc719aae0e1d3097b9c840"' repoLastModified: Wed, 30 Oct 2024 15:16:13 GMT foundInMaster: true category: @@ -10559,17 +10559,17 @@ repositoryId: 263836606 description: 'OpenAPI (v3) specification schema as pydantic class ' created: '2020-05-14T06:42:49Z' - updated: '2024-11-11T23:25:15Z' + updated: '2024-11-14T01:55:05Z' language: Python archived: false - stars: 116 + stars: 115 watchers: 4 forks: 19 owner: kuimono logo: https://avatars.githubusercontent.com/u/16016416?v=4 license: MIT - repoEtag: '"2a6681c6b67dcc78ffc15df5de244072ca3560b63526262f1370a5c60d5cb381"' - repoLastModified: Mon, 11 Nov 2024 23:25:15 GMT + repoEtag: '"690f5fce8a781d7e3f18d09375027cbc8fe835d3ee6ca5b0b20214f7553b7588"' + repoLastModified: Thu, 14 Nov 2024 01:55:05 GMT foundInMaster: true category: Parsers id: db4e005af8e10dd51fade90218a598f9 @@ -10696,16 +10696,16 @@ repositoryId: 92471764 description: 🤖 API documentation for Kitsu created: '2017-05-26T04:21:01Z' - updated: '2024-10-28T23:34:41Z' + updated: '2024-11-13T08:03:25Z' language: YAML archived: false - stars: 109 + stars: 110 watchers: 12 forks: 188 owner: hummingbird-me logo: https://avatars.githubusercontent.com/u/7648832?v=4 - repoEtag: '"e58b024b3316f766bb5f7417d18d7bc6f948d8c8edcf7e75ed9b2bccb1da3429"' - repoLastModified: Mon, 28 Oct 2024 23:34:41 GMT + repoEtag: '"6fddcac5faf80b62b5271272ae3728f1dbd414579c1ca9355310af89bc4346b6"' + repoLastModified: Wed, 13 Nov 2024 08:03:25 GMT foundInMaster: true category: Low-level Tooling id: 76ad1690754ba6c1e408622d1ed39e6c @@ -10720,17 +10720,17 @@ repositoryId: 264196717 description: The OpenAPI v3 specification for DigitalOcean's public API. created: '2020-05-15T13:10:36Z' - updated: '2024-11-06T21:11:45Z' + updated: '2024-11-13T21:24:55Z' language: JavaScript archived: false stars: 110 watchers: 13 - forks: 74 + forks: 75 owner: digitalocean logo: https://avatars.githubusercontent.com/u/4650108?v=4 license: Apache-2.0 - repoEtag: '"34b6009bb3e3915aa1f2ce191a37a510cb8b7a86641eb4434918402f30a25b1f"' - repoLastModified: Wed, 06 Nov 2024 21:11:45 GMT + repoEtag: '"602a5a2d181f9e53a708982cc459a89bdfcae01dd0bcb5c987f3a73a391d3a0d"' + repoLastModified: Wed, 13 Nov 2024 21:24:55 GMT foundInMaster: true category: - Testing @@ -10829,16 +10829,16 @@ 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-11-12T03:30:24Z' + updated: '2024-11-13T09:25:09Z' language: JavaScript archived: false - stars: 107 + stars: 108 watchers: 13 forks: 30 owner: OAI logo: https://avatars.githubusercontent.com/u/16343502?v=4 - repoEtag: '"8bc30a85e13a37b8c471a027800b877892c51ad3fa6de50d54a151a5b30600ee"' - repoLastModified: Tue, 12 Nov 2024 03:30:24 GMT + repoEtag: '"1654a603c9fa669ed5b5f8947faf3b0fe03866c986cad68d3f855905653755be"' + repoLastModified: Wed, 13 Nov 2024 09:25:09 GMT category: Server Implementations foundInMaster: true oldLocations: @@ -10922,7 +10922,7 @@ Converts OpenAPI 3.0 definitions to Plant UML text for visualisation of your API. created: '2021-02-17T03:47:43Z' - updated: '2024-11-11T11:00:27Z' + updated: '2024-11-13T17:55:16Z' language: Java archived: false stars: 97 @@ -10931,8 +10931,8 @@ owner: davidmoten logo: https://avatars.githubusercontent.com/u/318187?v=4 license: Apache-2.0 - repoEtag: '"bbddcfa1036ec8c93e5ed8df056a1bad35c4aa032de92f857ab1f735df2f3396"' - repoLastModified: Mon, 11 Nov 2024 11:00:27 GMT + repoEtag: '"9d306cf32aaa55706dc0ef9fef051c82a45d51cbee5dd2a5b784b1d2a0b492c0"' + repoLastModified: Wed, 13 Nov 2024 17:55:16 GMT foundInMaster: true category: SDK id: d4f9d833f5a48b843c52f5ec6f582976 @@ -11091,7 +11091,7 @@ owner: jellyfin logo: https://avatars.githubusercontent.com/u/45698031?v=4 license: LGPL-3.0 - repoEtag: '"be256df873dd69d972412178ae279517df110abd118c5ae3afe30158287faa17"' + repoEtag: '"645ab7617cd58a450c60da48b5780858c9cef9551df73e9ab532b337808fc09f"' repoLastModified: Sun, 03 Nov 2024 16:11:54 GMT foundInMaster: true category: Testing @@ -11352,7 +11352,7 @@ 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-10-31T15:08:51Z' + updated: '2024-11-13T21:46:07Z' language: TypeScript archived: false stars: 69 @@ -11360,8 +11360,8 @@ forks: 11 owner: stoplightio logo: https://avatars.githubusercontent.com/u/10767217?v=4 - repoEtag: '"068095c923ce465bc94dd71abef20e5fadaed11ca3f7467d0347b7e3ab9af18b"' - repoLastModified: Thu, 31 Oct 2024 15:08:51 GMT + repoEtag: '"1921efd034ed8087f4a8e50854d193d369695ad9f23f236b293cfe8aad32593f"' + repoLastModified: Wed, 13 Nov 2024 21:46:07 GMT category: Server Implementations foundInMaster: true - source: @@ -11379,7 +11379,7 @@ repositoryId: 249737066 description: Semantic parser for API specifications created: '2020-03-24T14:55:51Z' - updated: '2024-11-12T17:24:46Z' + updated: '2024-11-13T23:49:15Z' language: TypeScript archived: false stars: 69 @@ -11387,8 +11387,8 @@ forks: 18 owner: swagger-api logo: https://avatars.githubusercontent.com/u/7658037?v=4 - repoEtag: '"aa3c6a682013a5d2ca0f2105bf262d2d1ab7e69c5cd4cc0f69e44b04a08e510d"' - repoLastModified: Tue, 12 Nov 2024 17:24:46 GMT + repoEtag: '"54417ad0285326e1802d2fdd54286cb58d3a3786dc9b633f4843b73a11a6fd2e"' + repoLastModified: Wed, 13 Nov 2024 23:49:15 GMT category: Parsers foundInMaster: true - source: openapi3 tags @@ -11741,17 +11741,17 @@ repositoryId: 599199253 description: Generate OpenAPI 3.0 specifications from Go code. created: '2023-02-08T16:53:48Z' - updated: '2024-11-09T21:36:13Z' + updated: '2024-11-13T13:39:28Z' language: Go archived: false - stars: 56 + stars: 57 watchers: 3 forks: 22 owner: a-h logo: https://avatars.githubusercontent.com/u/1029947?v=4 license: MIT - repoEtag: '"0a6c6143adb12e2529d9776ab235cfb766dca5486526df95d69de219110939fa"' - repoLastModified: Sat, 09 Nov 2024 21:36:13 GMT + repoEtag: '"991c59b1bb53b929756d2175ad7d93e8ba481fc77a9c010664acb8190cbe7d14"' + repoLastModified: Wed, 13 Nov 2024 13:39:28 GMT category: Parsers foundInMaster: true - source: openapi3 tags @@ -12048,7 +12048,7 @@ owner: enzonotario logo: https://avatars.githubusercontent.com/u/10469299?v=4 license: MIT - repoEtag: '"1f7bdab63979d40530885b11f9094ef470f4c240eae63e3b225b98b0ebabaa93"' + repoEtag: '"c3b1986b862fdb6d38a838542841343210f44bf9c4674b77038df9628f819793"' repoLastModified: Thu, 07 Nov 2024 10:04:26 GMT category: Parsers foundInMaster: true @@ -12162,7 +12162,7 @@ forks: 26 owner: piomin logo: https://avatars.githubusercontent.com/u/2892502?v=4 - repoEtag: '"9834cc1b9505dd4688bedb21349259a5fbd3aedfbba4c9fce8ecae5d64c7e386"' + repoEtag: '"9c88f5a744d2b5e3159e48f4981c66383afa70b425440166fd20a5bc3cbf04b7"' repoLastModified: Thu, 07 Nov 2024 22:07:36 GMT foundInMaster: true category: SDK @@ -12257,17 +12257,17 @@ repositoryId: 122282653 description: Request and response validator against OpenAPI Specification 3 created: '2018-02-21T02:16:51Z' - updated: '2024-10-30T17:17:06Z' + updated: '2024-11-13T05:42:00Z' language: TypeScript archived: false - stars: 43 + stars: 44 watchers: 3 forks: 26 owner: atlassian logo: https://avatars.githubusercontent.com/u/168166?v=4 license: NOASSERTION - repoEtag: '"98e829ed79aa394647b08cd15bb6b4bed1fd7a8ffb64763fc2e46bf37af8e04f"' - repoLastModified: Wed, 30 Oct 2024 17:17:06 GMT + repoEtag: '"822fdf0370dcdd13d50c954e1da7cb041f53629806e4e02afc527216a2a25835"' + repoLastModified: Wed, 13 Nov 2024 05:42:00 GMT foundInMaster: true id: 70270b46839e1466d6a425a8da6ded65 - source: openapi3 tags @@ -12425,7 +12425,7 @@ owner: Backbase logo: https://avatars.githubusercontent.com/u/1914334?v=4 license: NOASSERTION - repoEtag: '"c41f3a5ae96e1aa9ba10b3a9e498ff2fed90214ca270bf2352f42881faad9469"' + repoEtag: '"36746275a7f930b1c04e9aa915fdcb7831a102ffce02432dfc726499d796ad73"' repoLastModified: Fri, 08 Nov 2024 14:59:17 GMT foundInMaster: true category: SDK @@ -12971,7 +12971,7 @@ owner: data-fair logo: https://avatars.githubusercontent.com/u/83776320?v=4 license: AGPL-3.0 - repoEtag: '"86dc6cb1dd4c292d2e8fb3cf0047810127baba555b667b92def8a3c432ef3953"' + repoEtag: '"756c88d15c37af7f4dfb5bb2a7af89bfa5835505f7702cb320f5c7ab1bfb5143"' repoLastModified: Tue, 12 Nov 2024 15:51:06 GMT foundInMaster: true category: @@ -13175,17 +13175,17 @@ repositoryId: 720201668 description: Scalar API reference from Swagger/OpenAPI files for .NET🔥 created: '2023-11-17T20:04:30Z' - updated: '2024-11-03T12:24:02Z' + updated: '2024-11-13T03:47:38Z' language: C# archived: false - stars: 32 + stars: 33 watchers: 1 forks: 2 owner: benirave logo: https://avatars.githubusercontent.com/u/23312114?v=4 license: MIT - repoEtag: '"f7adf5e4894151fff6923042e51c3eab5c5f12fed8cfe9855de0e8d7d64762f4"' - repoLastModified: Sun, 03 Nov 2024 12:24:02 GMT + repoEtag: '"ffe88b9130fea2c1ad1e08b1386bddee9dd6e129ce8cf4d229f8d70331a9c1da"' + repoLastModified: Wed, 13 Nov 2024 03:47:38 GMT category: Parsers foundInMaster: true - source: openapi3 tags @@ -13302,7 +13302,7 @@ repositoryId: 393620909 description: RESTful API for managing a school created: '2021-08-07T08:06:01Z' - updated: '2024-11-12T06:09:42Z' + updated: '2024-11-13T13:26:19Z' language: Java archived: false stars: 28 @@ -13311,8 +13311,8 @@ owner: hei-school logo: https://avatars.githubusercontent.com/u/88576095?v=4 license: MIT - repoEtag: '"f36ed49293fb358eeae366299ec2fbb58c14fff156e0591e3ff8b1ee4ac3a363"' - repoLastModified: Tue, 12 Nov 2024 06:09:42 GMT + repoEtag: '"9cd97397fef76db7cebb50572b5d3cbc2d4360063d9e05f0d7e16275f857fb92"' + repoLastModified: Wed, 13 Nov 2024 13:26:19 GMT foundInMaster: true category: Code Generators id: bf98240ea893afa32efc180fb73dd5b6 @@ -13810,7 +13810,7 @@ repositoryId: 155577069 description: The official OpenAPI 3.0 definitions for ShipEngine™ created: '2018-10-31T15:06:25Z' - updated: '2024-11-09T01:34:01Z' + updated: '2024-11-13T16:05:42Z' language: null archived: false stars: 22 @@ -13818,8 +13818,8 @@ forks: 16 owner: ShipEngine logo: https://avatars.githubusercontent.com/u/42709242?v=4 - repoEtag: '"63f9b22d9ede76038cd9b6b0195718a5a3717d250676806c3d695aa0c70a1017"' - repoLastModified: Sat, 09 Nov 2024 01:34:01 GMT + repoEtag: '"afec650f7f7c5964fbb69b99724f29e27664465a90008c80c507d27241511cc7"' + repoLastModified: Wed, 13 Nov 2024 16:05:42 GMT foundInMaster: true category: Parsers id: ff407dc64fade9a4275ec5d32f20aab5 @@ -14469,7 +14469,7 @@ repositoryId: 98350934 description: Mockoon application official website repository and documentation created: '2017-07-25T21:19:22Z' - updated: '2024-11-12T10:23:24Z' + updated: '2024-11-13T09:05:32Z' language: TypeScript archived: false stars: 20 @@ -14478,8 +14478,8 @@ owner: mockoon logo: https://avatars.githubusercontent.com/u/49429147?v=4 license: NOASSERTION - repoEtag: '"ad80e97371c94fd1dacebfcd6a7516687ca8a6022f58ee16b737fdcd8023228e"' - repoLastModified: Tue, 12 Nov 2024 10:23:24 GMT + repoEtag: '"befa5bb892e19a289bc36f9e986e02f169bb7ed54750f311e50c7a7089c83207"' + repoLastModified: Wed, 13 Nov 2024 09:05:32 GMT foundInMaster: true category: Testing id: 84d3391fa9deedcd6398666ba504eb78 @@ -15753,17 +15753,17 @@ repositoryId: 346132785 description: API за извличане на информация за продукти от супермаркети в София created: '2021-03-09T20:16:47Z' - updated: '2024-11-12T15:15:33Z' + updated: '2024-11-13T18:55:13Z' language: Kotlin archived: false - stars: 14 + stars: 15 watchers: 3 forks: 2 owner: StefanBratanov logo: https://avatars.githubusercontent.com/u/14827647?v=4 license: Apache-2.0 - repoEtag: '"b9e3092ac9cd16aa683e5c1a040b6057470978ad0d85e56b7b303dfc00431b08"' - repoLastModified: Tue, 12 Nov 2024 15:15:33 GMT + repoEtag: '"6e7fff19d958f83d75488f3b10c779b3d95784a0b5efd7736b28b109e64fd776"' + repoLastModified: Wed, 13 Nov 2024 18:55:13 GMT foundInMaster: true category: SDK id: 04dc35e7b9c33ef61294aaf0e176d771 @@ -15926,7 +15926,7 @@ owner: Jnig logo: https://avatars.githubusercontent.com/u/3729585?v=4 license: MIT - repoEtag: '"72f61d9de3d72bac3d5c847d232505d2afd14a11f030de399f3c29b3b9a0d9fc"' + repoEtag: '"45e5e6f7e3713a131d74e67d6c7c678b3e5fc140263801bd9cc11a366a37bf35"' repoLastModified: Tue, 29 Oct 2024 02:01:59 GMT category: - Data Validators @@ -15949,17 +15949,17 @@ extensions. Ready to build performant and cost-efficient APIs on top of BigQuery or Snowflake for AI Agents and Data Apps created: '2024-09-29T14:06:01Z' - updated: '2024-11-06T12:48:20Z' + updated: '2024-11-13T19:18:38Z' language: C++ archived: false - stars: 14 + stars: 15 watchers: 2 forks: 1 owner: DataZooDE logo: https://avatars.githubusercontent.com/u/136052936?v=4 license: Apache-2.0 - repoEtag: '"f70788abd57a64897db652c6fde9fad745c2ec13560ae23a90e168af5424a0ca"' - repoLastModified: Wed, 06 Nov 2024 12:48:20 GMT + repoEtag: '"293fc1cbb658ef242862c575d2ade33a16aedb0498501607dd2db83ecd2683ac"' + repoLastModified: Wed, 13 Nov 2024 19:18:38 GMT category: Server Implementations foundInMaster: true - source: openapi3 tags @@ -16297,7 +16297,7 @@ repositoryId: 451072524 description: A compact language that compiles to OpenAPI created: '2022-01-23T10:39:17Z' - updated: '2024-11-13T00:32:33Z' + updated: '2024-11-13T12:47:37Z' language: TypeScript archived: false stars: 11 @@ -16305,8 +16305,8 @@ forks: 0 owner: responsibleapi logo: https://avatars.githubusercontent.com/u/119290467?v=4 - repoEtag: '"968f58dba58fe8b25eeb92a3499f49183643c34659595628a245645db392f879"' - repoLastModified: Wed, 13 Nov 2024 00:32:33 GMT + repoEtag: '"838ff439d4e1c4a62191cc4a79db66aacd560dc309a9464ad9bd98fd846b47ce"' + repoLastModified: Wed, 13 Nov 2024 12:47:37 GMT category: Parsers foundInMaster: true oldLocations: @@ -16378,16 +16378,16 @@ repositoryId: 825093329 description: FastAPI for Frappe created: '2024-07-06T18:48:18Z' - updated: '2024-11-12T18:09:50Z' + updated: '2024-11-13T04:36:45Z' language: Python archived: false - stars: 13 + stars: 14 watchers: 2 forks: 0 owner: 0xsirsaif logo: https://avatars.githubusercontent.com/u/55336614?v=4 - repoEtag: '"de86bee837eb28f00f27ea5a37fd64fbdd7194a7db89c85219c5f296d8bf0edb"' - repoLastModified: Tue, 12 Nov 2024 18:09:50 GMT + repoEtag: '"018f983277ad7f38255f5dabf0aeb52709b6c3d21c15a1a0c83eee8761b2343e"' + repoLastModified: Wed, 13 Nov 2024 04:36:45 GMT category: Server Implementations foundInMaster: true - source: openapi3 tags @@ -16777,7 +16777,7 @@ repositoryId: 740729887 description: The easiest way to share OpenAPI files created: '2024-01-09T00:11:59Z' - updated: '2024-11-08T15:48:31Z' + updated: '2024-11-13T15:59:03Z' language: Vue archived: false stars: 10 @@ -16785,8 +16785,8 @@ forks: 4 owner: scalar logo: https://avatars.githubusercontent.com/u/301879?v=4 - repoEtag: '"3ee743a9604e626ae694071d152d508c412dbf92c321bf0201a1ea941058a86c"' - repoLastModified: Fri, 08 Nov 2024 15:48:31 GMT + repoEtag: '"5d679fb83c4754ab4f9c5e21290e7d7a980f6aabcc1265af4f3bd04abd32f08e"' + repoLastModified: Wed, 13 Nov 2024 15:59:03 GMT category: Server Implementations foundInMaster: true - source: openapi3 tags @@ -17418,7 +17418,7 @@ owner: hslatman logo: https://avatars.githubusercontent.com/u/1219780?v=4 license: Apache-2.0 - repoEtag: '"1358ad847c9da62a56ba2522890f37823770086bab2cc4644af368f30bb84b9e"' + repoEtag: '"123f975c2dd1bf36c02b88ecb822a17f3f5943c9a913c6a50fb999701b663156"' repoLastModified: Wed, 28 Aug 2024 06:43:30 GMT foundInMaster: true category: @@ -18267,7 +18267,7 @@ repositoryId: 318430456 description: The OpenAPI specifications for the Apideck APIs. created: '2020-12-04T06:55:12Z' - updated: '2024-11-12T12:22:40Z' + updated: '2024-11-13T06:53:30Z' language: null archived: false stars: 7 @@ -18276,8 +18276,8 @@ owner: apideck-libraries logo: https://avatars.githubusercontent.com/u/73573473?v=4 license: MIT - repoEtag: '"628f2a71f5bbc688dc4fe15c5574e2b792f00d251ea3897733482b3e78dcdcca"' - repoLastModified: Tue, 12 Nov 2024 12:22:40 GMT + repoEtag: '"6efbb406214b5f818ae1084111180af601417e6da1edd5c1de5ae3be5ce3a0e3"' + repoLastModified: Wed, 13 Nov 2024 06:53:30 GMT foundInMaster: true category: Testing id: c977303d84eebe1aa3c23e0a1f6d548d @@ -21166,7 +21166,7 @@ Lightweight API framework using an OpenAPI spec for routing and validation. created: '2022-08-12T17:32:43Z' - updated: '2024-11-05T21:54:05Z' + updated: '2024-11-13T15:13:00Z' language: Python archived: false stars: 3 @@ -21174,8 +21174,8 @@ forks: 0 owner: berislavlopac logo: https://avatars.githubusercontent.com/u/754090?v=4 - repoEtag: '"4ed91305dcefaf9ef67d17568670138bb8072dfb073de3ffce34c6ca117cbf4f"' - repoLastModified: Tue, 05 Nov 2024 21:54:05 GMT + repoEtag: '"c1376210b8c1b6e05db1036f4b1593ae06db404f575d005dbaf5c613c0e8abea"' + repoLastModified: Wed, 13 Nov 2024 15:13:00 GMT category: Server Implementations foundInMaster: true - source: openapi3 tags @@ -21901,15 +21901,15 @@ id: 72f4700c4f5d0e434b9451e77261d6e1 repositoryMetadata: base64Readme: >- - PHAgYWxpZ249ImNlbnRlciI+CiAgPGltZyBzcmM9ImxvZ28va29wZ2VuLndlYnAiIGFsdD0iS29wZ2VuIExvZ28iIHdpZHRoPSI0MDAiLz4KPC9wPgo8aDEgYWxpZ249ImNlbnRlciI+8J+mgCBLb3BnZW4g8J+mgDwvaDE+Cgo8cCBhbGlnbj0iY2VudGVyIj4KPGEgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL2VkZW5yZWljaC9rb3BnZW4vYWN0aW9ucyI+PGltZyBzcmM9Imh0dHBzOi8vZ2l0aHViLmNvbS9lZGVucmVpY2gva29wZ2VuL2FjdGlvbnMvd29ya2Zsb3dzL2NpLnltbC9iYWRnZS5zdmciIGFsdD0iQ0kgU3RhdHVzIi8+PC9hPgo8YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vZWRlbnJlaWNoL2tvcGdlbi9yZWxlYXNlcyI+PGltZyBzcmM9Imh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vZ2l0aHViL3YvcmVsZWFzZS9lZGVucmVpY2gva29wZ2VuP2NvbG9yPWJsdWUmc3R5bGU9ZmxhdC1zcXVhcmUiIGFsdD0iVmVyc2lvbiIvPjwvYT4KPGEgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL2VkZW5yZWljaC9rb3BnZW4vYWN0aW9ucyI+PGltZyBzcmM9Imh0dHBzOi8vZ2l0aHViLmNvbS9lZGVucmVpY2gva29wZ2VuL2FjdGlvbnMvd29ya2Zsb3dzL2RvY3MueW1sL2JhZGdlLnN2ZyIgYWx0PSJEb2N1bWVudGF0aW9uIFN0YXR1cyIvPjwvYT4KPGEgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL2VkZW5yZWljaC9rb3BnZW4vYmxvYi9tYWluL0xJQ0VOU0UiPjxpbWcgc3JjPSJodHRwczovL2ltZy5zaGllbGRzLmlvL2dpdGh1Yi9saWNlbnNlL2VkZW5yZWljaC9rb3BnZW4/Y29sb3I9Ymx1ZSZzdHlsZT1mbGF0LXNxdWFyZSIgYWx0PSJMaWNlbnNlIi8+PC9hPgo8L3A+CgpXZWxjb21lIHRvIHRoZSBLb3BnZW4gdG9vbCEgVGhpcyBwcm9qZWN0IHByb3ZpZGVzIGEgZ2VuZXJhdG9yIGZvciBjcmVhdGluZyBhIENyZWF0ZSwgUmVhZCwgVXBkYXRlIGFuZCBEZWxldGUgKENSVUQpIEt1YmVybmV0ZXMgb3BlcmF0b3IgZnJvbSBhbiBPcGVuQVBJIFNwZWNpZmljYXRpb24gKE9BUyksIGFsbCB3cml0dGVuIGluIHRoZSBwb3dlcmZ1bCBhbmQgZWZmaWNpZW50IFJ1c3QgbGFuZ3VhZ2UuCgpJZiB5b3UgaGF2ZSBhIHJ1bm5pbmcgQVBJIHdpdGggYSB2YWxpZCBPcGVuQVBJIFNwZWNpZmljYXRpb24gYnV0IGxhY2sgYW4gb3BlcmF0b3IgdG8gbWFuYWdlIGl0cyBjb21wbGV4aXR5LCB0aGlzIGdlbmVyYXRvciBpcyB0aGUgcGVyZmVjdCBzb2x1dGlvbi4gS3ViZXJuZXRlcyBvcGVyYXRvcnMgYWxzbyBhbGlnbiBzZWFtbGVzc2x5IHdpdGggdGhlIEdpdE9wcyBtZXRob2RvbG9neSwgZW5oYW5jaW5nIHlvdXIgb3BlcmF0aW9uYWwgZWZmaWNpZW5jeS4KCkl0J3MgYSB3ZWxsLWVzdGFibGlzaGVkIGZhY3QgdGhhdCB1c2luZyBZQU1MIHRvIGRlZmluZSBBUEkgcmVzb3VyY2VzIG5vdCBvbmx5IHNpbXBsaWZpZXMgY29tcGxleGl0eSBidXQgYWxzbyBlbmhhbmNlcyBjb2xsYWJvcmF0aW9uIGJldHdlZW4gZGV2ZWxvcGVycyBhbmQgb3BlcmF0aW9ucyB0ZWFtcy4gVGhpcyBhcHByb2FjaCBhbGxvd3MgdGVhbXMgdG8gY29uY2VudHJhdGUgb24gd2hhdCB0cnVseSBtYXR0ZXJzIC0gZGVsaXZlcmluZyB2YWx1ZS4KCi0gW/CfpoAgS29wZ2VuIPCfpoBdKCMta29wZ2VuLSkKICAtIFtEb2N1bWVudGF0aW9uXSgjZG9jdW1lbnRhdGlvbikKICAtIFtRdWljayBTdGFydCBHdWlkZV0oI3F1aWNrLXN0YXJ0LWd1aWRlKQogIC0gW05lZWQgSGVscD9dKCNuZWVkLWhlbHApCiAgLSBbTW90aXZhdGlvbl0oI21vdGl2YXRpb24pCiAgLSBbV2h5IE9wZW5BUEkgU3BlY2lmaWNhdGlvbj9dKCN3aHktb3BlbmFwaS1zcGVjaWZpY2F0aW9uKQoKIyMgRG9jdW1lbnRhdGlvbgoKVGhlIGRvY3VtZW50YXRpb24gaXMgYXZhaWxhYmxlIGhlcmU6IGh0dHBzOi8vZWRlbnJlaWNoLmdpdGh1Yi5pby9rb3BnZW4vaW50cm9kdWN0aW9uLmh0bWwKCkZvciBkb2N1bWVudGF0aW9uIEdpdGh1Yi1QYWdlcyBpcyBiZWluZyB1c2VkLgpJdCdzIGJ1aWx0IHVzaW5nIHJ1c3QgbWRib29rIHdoaWNoIGFscmVhZHkgY29tZXMgcHJlLWluc3RhbGxlZCBvbiB0aGUgRGV2Q29udGFpbmVyLgoKSWYgeW91IG5lZWQgdG8gbWFrZSBhZGp1c3RtZW50IHRvIHRoZSBkb2N1bWVudGF0aW9uIHlvdSBjYW4gc2VydmUgaXQgbG9jYWxseSwgcnVuOgoKYGBgYmFzaAp0YXNrIGRvY3MKYGBgCgojIyBRdWljayBTdGFydCBHdWlkZQoKQmVmb3JlIHlvdSBwcm9jZWVkLCBlbnN1cmUgdGhhdCBbRG9ja2VyXShodHRwczovL2RvY3MuZG9ja2VyLmNvbS9lbmdpbmUvaW5zdGFsbC8pIGlzIGluc3RhbGxlZCBvbiB5b3VyIHN5c3RlbS4KCkRvd25sb2FkIGFuZCBpbnN0YWxsIHRoZSBsYXRlc3QgYGtvcGdlbiBDTElgIFtmb3IgQVJNNjRdKGh0dHBzOi8vZ2l0aHViLmNvbS9lZGVucmVpY2gva29wZ2VuL3JlbGVhc2VzL2Rvd25sb2FkL2xhdGVzdC9rb3BnZW5fYWFyY2g2NC11bmtub3duLWxpbnV4LW11c2wpIG9yIFtmb3IgeDg2XzY0IEludGVsXShodHRwczovL2dpdGh1Yi5jb20vZWRlbnJlaWNoL2tvcGdlbi9yZWxlYXNlcy9kb3dubG9hZC92MS41LjAva29wZ2VuX3g4Nl82NC11bmtub3duLWxpbnV4LW11c2wpLgoKYGBgYmFzaAojIEZvciBNYWMgdXNlcnMgd2l0aCBBUk0gQ1BVCmN1cmwgLXNTTCBodHRwczovL2dpdGh1Yi5jb20vZWRlbnJlaWNoL2tvcGdlbi9yZWxlYXNlcy9kb3dubG9hZC9sYXRlc3Qva29wZ2VuX2FhcmNoNjQtdW5rbm93bi1saW51eC1tdXNsIC1vIGtvcGdlbgpjaG1vZCAreCBrb3BnZW4KbXYga29wZ2VuIC91c3IvbG9jYWwvYmluLwoKIyBGb3IgYWxsIHRoZSBvdGhlciB1c2VycyBydW5uaW5nIG9uIGludGVsCmN1cmwgLXNTTCBodHRwczovL2dpdGh1Yi5jb20vZWRlbnJlaWNoL2tvcGdlbi9yZWxlYXNlcy9kb3dubG9hZC9sYXRlc3Qva29wZ2VuX3g4Nl82NC11bmtub3duLWxpbnV4LW11c2wgLW8ga29wZ2VuCmNobW9kICt4IGtvcGdlbgptdiBrb3BnZW4gL3Vzci9sb2NhbC9iaW4vCmBgYAoKU3RhcnQgYSBuZXcgcHJvamVjdCBpbiBhbiBlbXB0eSBmb2xkZXI6CgpgYGBiYXNoCmtvcGdlbiBpbml0IC4KYGBgCgpUaGlzIHdpbGwgZ2VuZXJhdGUgdGhlIHByb2plY3QgZm9yIHRoZSBvcGVyYXRvciBpbmNsdWRpbmcgYSBkZXYgY29udGFpbmVyIGVudmlyb25tZW50LCB0aGVyZWZvcmUgaXQgaXMgcmVjb21tZW5kZWQgeW91IHVzZSBWU2NvZGUuCgpPcGVuIHRoZSBwcm9qZWN0IGluIFZTY29kZSwgYSBwcm9tcHQgdG8gb3BlbiB0aGUgcHJvamVjdCBpbnNpZGUgb2YgYSBEZXYgQ29udGFpbmVyIHdpbGwgYmUgc2hvd24sIGNsaWNrIGBvcGVuYC4KCkEgRGV2IENvbnRhaW5lciBpcyBlc3NlbnRpYWxseSBhbiBlbmNhcHN1bGF0ZSBlbnZpcm9ubWVudCB3aXRoIGFsbCB0aGUgbmVjZXNzYXJ5IHRvb2xzIHlvdSB3b3VsZCBuZWVkIGZvciB0aGUgZGV2ZWxvcG1lbnQgb2YgdGhpcyBwcm9qZWN0LgoKVG8gZ2V0IHN0YXJ0ZWQsIGZvbGxvdyB0aGVzZSBzdGVwczoKCjEuICoqQ29uZmlndXJlKio6IFJ1biBgY3AgLmVudi5leGFtcGxlIC5lbnZgIHRvIGxldCB0aGUgVGFza2ZpbGUga25vdyB3aGF0IGVudmlyb25tZW50IHZhcmlhYmxlcyB5b3Ugd291bGQgbGlrZSB0byB1c2UgLSB5b3UgY2FuIGtlZXAgaXQgYXMgaXMsIGJlY2F1c2UgaXQncyBieSBkZWZhdWx0IHNldCB0byBsb2NhbCBlbnZpcm9ubWVudC4KMi4gKipHZW5lcmF0ZSB0aGUgY29kZSoqOiBVc2UgYHRhc2sgZ2VuZXJhdGVgIHRvIGNyZWF0ZSB0aGUgbmVjZXNzYXJ5IHR5cGVzIGFuZCBjb250cm9sbGVycy4KMy4gKipDcmVhdGUgYSBkZXZlbG9wbWVudCBjbHVzdGVyKio6IFVzZSBgdGFzayBjbHVzdGVyLWNyZWF0ZWAgdG8gc2V0IHVwIHlvdXIgbG9jYWwgS3ViZXJuZXRlcyBjbHVzdGVyLgo0LiAqKkRlcGxveSB0aGUgQ1JEcyAob3Igc2V0IElOU1RBTExfQ1JEUyBlbnZpcm9ubWVudCB2YXJpYWJsZSB0byB0cnVlKSoqOiBSdW4gYHRhc2sgZGVwbG95LWNyZHNgIHRvIGRlcGxveSB0aGUgQ3VzdG9tIFJlc291cmNlIERlZmluaXRpb25zIHRvIHlvdXIgY2x1c3Rlci4KNS4gKipSdW4gdGhlIG9wZXJhdG9yKio6IFN0YXJ0IHlvdXIgb3BlcmF0b3Igd2l0aCBgdGFzayBydW5gLgo2LiAqKlRlc3QgaXQgb3V0Kio6IEFwcGx5IHRoZSBleGFtcGxlIG1hbmlmZXN0cyB3aXRoIGBrdWJlY3RsIGFwcGx5IC1mIG1hbmlmZXN0cy9leGFtcGxlcy9gIGFuZCBzZWUgeW91ciBvcGVyYXRvciBpbiBhY3Rpb24hCgojIyBOZWVkIEhlbHA/CgpJZiB5b3UncmUgbm90IHN1cmUgd2hhdCB0byBkbywganVzdCBydW4gYHRhc2sgLS1saXN0LWFsbGAgdG8gc2VlIGEgbGlzdCBvZiBhbGwgYXZhaWxhYmxlIHRhc2tzLgoKIyMgTW90aXZhdGlvbgoKV2h5IGNyZWF0ZSBhIEt1YmVybmV0ZXMgb3BlcmF0b3IgaW4gUnVzdD8gR3JlYXQgcXVlc3Rpb24hIEhlcmUgYXJlIGEgZmV3IHJlYXNvbnM6CgoxLiAqKlBlcmZvcm1hbmNlKio6IFJ1c3QgaXMga25vd24gZm9yIGl0cyBibGF6aW5nIGZhc3QgcGVyZm9ybWFuY2UuIEl0J3MgYSBzeXN0ZW0gcHJvZ3JhbW1pbmcgbGFuZ3VhZ2UgdGhhdCBydW5zIHdpdGhvdXQgYW55IGV4dHJhIHJ1bnRpbWUgb3IgZ2FyYmFnZSBjb2xsZWN0b3IuIFRoaXMgbWFrZXMgUnVzdCBhIGdyZWF0IGNob2ljZSBmb3Igd3JpdGluZyBLdWJlcm5ldGVzIG9wZXJhdG9ycyB3aGVyZSBwZXJmb3JtYW5jZSBpcyBrZXkuCgoyLiAqKk1lbW9yeSBTYWZldHkqKjogUnVzdCdzIHVuaXF1ZSBvd25lcnNoaXAgbW9kZWwgZ3VhcmFudGVlcyBtZW1vcnkgc2FmZXR5IHdpdGhvdXQgbmVlZGluZyBhIGdhcmJhZ2UgY29sbGVjdG9yLiBUaGlzIG1lYW5zIHlvdSBjYW4gd3JpdGUgaGlnaC1wZXJmb3JtYW5jZSBvcGVyYXRvcnMgd2l0aG91dCB3b3JyeWluZyBhYm91dCBtYW51YWwgbWVtb3J5IG1hbmFnZW1lbnQuCgozLiAqKkNvbmN1cnJlbmN5Kio6IFJ1c3QgaGFzIGZpcnN0LWNsYXNzIHN1cHBvcnQgZm9yIGNvbmN1cnJlbnQgcHJvZ3JhbW1pbmcuIFRoaXMgaXMgY3J1Y2lhbCBmb3Igd3JpdGluZyBvcGVyYXRvcnMsIHdoaWNoIG9mdGVuIG5lZWQgdG8gbWFuYWdlIG11bHRpcGxlIHJlc291cmNlcyBjb25jdXJyZW50bHkuCgo0LiAqKkludGVyb3BlcmFiaWxpdHkqKjogUnVzdCBjYW4gZWFzaWx5IGludGVyb3BlcmF0ZSB3aXRoIEMgYW5kIG90aGVyIGxhbmd1YWdlcy4gVGhpcyBtYWtlcyBpdCBlYXN5IHRvIGxldmVyYWdlIGV4aXN0aW5nIGxpYnJhcmllcyB3aGVuIHdyaXRpbmcgeW91ciBvcGVyYXRvci4KCjUuICoqVG9vbGluZyoqOiBSdXN0J3MgdG9vbGluZyBpcyB0b3Atbm90Y2guIFdpdGggQ2FyZ28sIFJ1c3QncyBwYWNrYWdlIG1hbmFnZXIgYW5kIGJ1aWxkIHN5c3RlbSwgbWFuYWdpbmcgZGVwZW5kZW5jaWVzIGFuZCBidWlsZGluZyB5b3VyIHByb2plY3QgaXMgYSBicmVlemUuCgo2LiAqKlN0cm9uZyBDb21tdW5pdHkqKjogVGhlIFJ1c3QgY29tbXVuaXR5IGlzIGtub3duIGZvciBiZWluZyBmcmllbmRseSBhbmQgaGVscGZ1bCwgd2hpY2ggaXMgYWx3YXlzIGEgcGx1cyB3aGVuIGxlYXJuaW5nIGEgbmV3IGxhbmd1YWdlIG9yIHN0YXJ0aW5nIGEgbmV3IHByb2plY3QuCgojIyBXaHkgT3BlbkFQSSBTcGVjaWZpY2F0aW9uPwoKVGhlIE9wZW5BUEkgU3BlY2lmaWNhdGlvbiAoT0FTKSwgZm9ybWVybHkga25vd24gYXMgU3dhZ2dlciwgaXMgYSBzdGFuZGFyZCBmb3IgZGVmaW5pbmcgQVBJcy4gSXQgcHJvdmlkZXMgYSB3YXkgdG8gZGVzY3JpYmUgdGhlIGNhcGFiaWxpdGllcyBvZiB5b3VyIEFQSSBpbiBhIG1hY2hpbmUtcmVhZGFibGUgZm9ybWF0LiBUaGlzIGhhcyBzZXZlcmFsIGJlbmVmaXRzOgoKMS4gKipEb2N1bWVudGF0aW9uKio6IFdpdGggT0FTLCB5b3VyIEFQSSBkb2N1bWVudGF0aW9uIGlzIGFsd2F5cyB1cC10by1kYXRlIGJlY2F1c2UgaXQncyBnZW5lcmF0ZWQgZGlyZWN0bHkgZnJvbSB5b3VyIEFQSSBkZWZpbml0aW9uLiBUaGlzIG1ha2VzIGl0IGVhc2llciBmb3IgZGV2ZWxvcGVycyB0byB1bmRlcnN0YW5kIHdoYXQgeW91ciBBUEkgZG9lcyBhbmQgaG93IHRvIHVzZSBpdC4KCjIuICoqQ2xpZW50IFNESyBHZW5lcmF0aW9uKio6IFRvb2xzIGxpa2UgdGhlIE9wZW5BUEkgR2VuZXJhdG9yIGNhbiBnZW5lcmF0ZSBjbGllbnQgU0RLcyBpbiB2YXJpb3VzIGxhbmd1YWdlcyBmcm9tIGFuIE9BUyBkb2N1bWVudC4gVGhpcyBtZWFucyBkZXZlbG9wZXJzIGNhbiBzdGFydCB1c2luZyB5b3VyIEFQSSBpbiB0aGVpciBsYW5ndWFnZSBvZiBjaG9pY2Ugd2l0aG91dCBoYXZpbmcgdG8gd3JpdGUgYSBsb3Qgb2YgYm9pbGVycGxhdGUgY29kZS4KCjMuICoqU2VydmVyIFN0dWIgR2VuZXJhdGlvbioqOiBTaW1pbGFybHksIHlvdSBjYW4gZ2VuZXJhdGUgc2VydmVyIHN0dWJzIGZyb20gYW4gT0FTIGRvY3VtZW50LiBUaGlzIGNhbiBzcGVlZCB1cCB0aGUgaW5pdGlhbCBkZXZlbG9wbWVudCBvZiB5b3VyIEFQSS4KCjQuICoqVmFsaWRhdGlvbioqOiBZb3UgY2FuIHVzZSB5b3VyIE9BUyBkb2N1bWVudCB0byB2YWxpZGF0ZSBBUEkgcmVxdWVzdHMgYW5kIHJlc3BvbnNlcy4gVGhpcyBoZWxwcyBjYXRjaCBlcnJvcnMgYmVmb3JlIHRoZXkgYmVjb21lIHByb2JsZW1zLgoKNS4gKipJbnRlZ3JhdGlvbioqOiBCZWNhdXNlIE9BUyBpcyBhIHN0YW5kYXJkLCB0aGVyZSBhcmUgbWFueSB0b29scyB0aGF0IGNhbiBpbXBvcnQgT0FTIGRvY3VtZW50cyBhbmQgcHJvdmlkZSBhZGRpdGlvbmFsIGZ1bmN0aW9uYWxpdHksIHN1Y2ggYXMgdGVzdGluZyB0b29scywgQVBJIGdhdGV3YXlzLCBhbmQgbW9yZS4KCkluIHRoaXMgcHJvamVjdCwgd2UgdXNlIHRoZSBPcGVuQVBJIFNwZWNpZmljYXRpb24gdG8gZ2VuZXJhdGUgdGhlIG5lY2Vzc2FyeSB0eXBlcyBhbmQgY29udHJvbGxlcnMgZm9yIG91ciBLdWJlcm5ldGVzIG9wZXJhdG9yLiBUaGlzIGFsbG93cyB1cyB0byBlYXNpbHkga2VlcCBvdXIgb3BlcmF0b3IgaW4gc3luYyB3aXRoIHRoZSBsYXRlc3QgdmVyc2lvbiBvZiBvdXIgQVBJLgo= - readmeEtag: '"d98972b860c54a98fc59de66982a570e2f4888fa"' - readmeLastModified: Tue, 12 Nov 2024 13:50:44 GMT + PHAgYWxpZ249ImNlbnRlciI+CiAgPGltZyBzcmM9ImxvZ28va29wZ2VuLndlYnAiIGFsdD0iS29wZ2VuIExvZ28iIHdpZHRoPSI0MDAiLz4KPC9wPgo8aDEgYWxpZ249ImNlbnRlciI+8J+mgCBLb3BnZW4g8J+mgDwvaDE+Cgo8cCBhbGlnbj0iY2VudGVyIj4KPGEgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL2VkZW5yZWljaC9rb3BnZW4vYWN0aW9ucyI+PGltZyBzcmM9Imh0dHBzOi8vZ2l0aHViLmNvbS9lZGVucmVpY2gva29wZ2VuL2FjdGlvbnMvd29ya2Zsb3dzL2NpLnltbC9iYWRnZS5zdmciIGFsdD0iQ0kgU3RhdHVzIi8+PC9hPgo8YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vZWRlbnJlaWNoL2tvcGdlbi9yZWxlYXNlcyI+PGltZyBzcmM9Imh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vZ2l0aHViL3YvcmVsZWFzZS9lZGVucmVpY2gva29wZ2VuP2NvbG9yPWJsdWUmc3R5bGU9ZmxhdC1zcXVhcmUiIGFsdD0iVmVyc2lvbiIvPjwvYT4KPGEgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL2VkZW5yZWljaC9rb3BnZW4vYWN0aW9ucyI+PGltZyBzcmM9Imh0dHBzOi8vZ2l0aHViLmNvbS9lZGVucmVpY2gva29wZ2VuL2FjdGlvbnMvd29ya2Zsb3dzL2RvY3MueW1sL2JhZGdlLnN2ZyIgYWx0PSJEb2N1bWVudGF0aW9uIFN0YXR1cyIvPjwvYT4KPGEgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL2VkZW5yZWljaC9rb3BnZW4vYmxvYi9tYWluL0xJQ0VOU0UiPjxpbWcgc3JjPSJodHRwczovL2ltZy5zaGllbGRzLmlvL2dpdGh1Yi9saWNlbnNlL2VkZW5yZWljaC9rb3BnZW4/Y29sb3I9Ymx1ZSZzdHlsZT1mbGF0LXNxdWFyZSIgYWx0PSJMaWNlbnNlIi8+PC9hPgo8L3A+CgpXZWxjb21lIHRvIHRoZSBLb3BnZW4gdG9vbCEgVGhpcyBwcm9qZWN0IHByb3ZpZGVzIGEgZ2VuZXJhdG9yIGZvciBjcmVhdGluZyBhIENyZWF0ZSwgUmVhZCwgVXBkYXRlIGFuZCBEZWxldGUgKENSVUQpIEt1YmVybmV0ZXMgb3BlcmF0b3IgZnJvbSBhbiBPcGVuQVBJIFNwZWNpZmljYXRpb24gKE9BUyksIGFsbCB3cml0dGVuIGluIHRoZSBwb3dlcmZ1bCBhbmQgZWZmaWNpZW50IFJ1c3QgbGFuZ3VhZ2UuCgpJZiB5b3UgaGF2ZSBhIHJ1bm5pbmcgQVBJIHdpdGggYSB2YWxpZCBPcGVuQVBJIFNwZWNpZmljYXRpb24gYnV0IGxhY2sgYW4gb3BlcmF0b3IgdG8gbWFuYWdlIGl0cyBjb21wbGV4aXR5LCB0aGlzIGdlbmVyYXRvciBpcyB0aGUgcGVyZmVjdCBzb2x1dGlvbi4gS3ViZXJuZXRlcyBvcGVyYXRvcnMgYWxzbyBhbGlnbiBzZWFtbGVzc2x5IHdpdGggdGhlIEdpdE9wcyBtZXRob2RvbG9neSwgZW5oYW5jaW5nIHlvdXIgb3BlcmF0aW9uYWwgZWZmaWNpZW5jeS4KCkl0J3MgYSB3ZWxsLWVzdGFibGlzaGVkIGZhY3QgdGhhdCB1c2luZyBZQU1MIHRvIGRlZmluZSBBUEkgcmVzb3VyY2VzIG5vdCBvbmx5IHNpbXBsaWZpZXMgY29tcGxleGl0eSBidXQgYWxzbyBlbmhhbmNlcyBjb2xsYWJvcmF0aW9uIGJldHdlZW4gZGV2ZWxvcGVycyBhbmQgb3BlcmF0aW9ucyB0ZWFtcy4gVGhpcyBhcHByb2FjaCBhbGxvd3MgdGVhbXMgdG8gY29uY2VudHJhdGUgb24gd2hhdCB0cnVseSBtYXR0ZXJzIC0gZGVsaXZlcmluZyB2YWx1ZS4KCi0gW/CfpoAgS29wZ2VuIPCfpoBdKCMta29wZ2VuLSkKICAtIFtEb2N1bWVudGF0aW9uXSgjZG9jdW1lbnRhdGlvbikKICAtIFtRdWljayBTdGFydCBHdWlkZV0oI3F1aWNrLXN0YXJ0LWd1aWRlKQogIC0gW05lZWQgSGVscD9dKCNuZWVkLWhlbHApCiAgLSBbTW90aXZhdGlvbl0oI21vdGl2YXRpb24pCiAgLSBbV2h5IE9wZW5BUEkgU3BlY2lmaWNhdGlvbj9dKCN3aHktb3BlbmFwaS1zcGVjaWZpY2F0aW9uKQoKIyMgRG9jdW1lbnRhdGlvbgoKVGhlIGRvY3VtZW50YXRpb24gaXMgYXZhaWxhYmxlIGhlcmU6IGh0dHBzOi8vZWRlbnJlaWNoLmdpdGh1Yi5pby9rb3BnZW4vaW50cm9kdWN0aW9uLmh0bWwKCkZvciBkb2N1bWVudGF0aW9uIEdpdGh1Yi1QYWdlcyBpcyBiZWluZyB1c2VkLgpJdCdzIGJ1aWx0IHVzaW5nIHJ1c3QgbWRib29rIHdoaWNoIGFscmVhZHkgY29tZXMgcHJlLWluc3RhbGxlZCBvbiB0aGUgRGV2Q29udGFpbmVyLgoKSWYgeW91IG5lZWQgdG8gbWFrZSBhZGp1c3RtZW50IHRvIHRoZSBkb2N1bWVudGF0aW9uIHlvdSBjYW4gc2VydmUgaXQgbG9jYWxseSwgcnVuOgoKYGBgYmFzaAp0YXNrIGRvY3MKYGBgCgojIyBRdWljayBTdGFydCBHdWlkZQoKQmVmb3JlIHlvdSBwcm9jZWVkLCBlbnN1cmUgdGhhdCBbRG9ja2VyXShodHRwczovL2RvY3MuZG9ja2VyLmNvbS9lbmdpbmUvaW5zdGFsbC8pIGlzIGluc3RhbGxlZCBvbiB5b3VyIHN5c3RlbS4KCkRvd25sb2FkIGFuZCBpbnN0YWxsIHRoZSBsYXRlc3QgYGtvcGdlbiBDTElgIFtmb3IgQVJNNjRdKGh0dHBzOi8vZ2l0aHViLmNvbS9lZGVucmVpY2gva29wZ2VuL3JlbGVhc2VzL2Rvd25sb2FkL2xhdGVzdC9rb3BnZW5fYWFyY2g2NC11bmtub3duLWxpbnV4LW11c2wpIG9yIFtmb3IgeDg2XzY0IEludGVsXShodHRwczovL2dpdGh1Yi5jb20vZWRlbnJlaWNoL2tvcGdlbi9yZWxlYXNlcy9kb3dubG9hZC92MS42LjAva29wZ2VuX3g4Nl82NC11bmtub3duLWxpbnV4LW11c2wpLgoKYGBgYmFzaAojIEZvciBNYWMgdXNlcnMgd2l0aCBBUk0gQ1BVCmN1cmwgLXNTTCBodHRwczovL2dpdGh1Yi5jb20vZWRlbnJlaWNoL2tvcGdlbi9yZWxlYXNlcy9kb3dubG9hZC9sYXRlc3Qva29wZ2VuX2FhcmNoNjQtdW5rbm93bi1saW51eC1tdXNsIC1vIGtvcGdlbgpjaG1vZCAreCBrb3BnZW4KbXYga29wZ2VuIC91c3IvbG9jYWwvYmluLwoKIyBGb3IgYWxsIHRoZSBvdGhlciB1c2VycyBydW5uaW5nIG9uIGludGVsCmN1cmwgLXNTTCBodHRwczovL2dpdGh1Yi5jb20vZWRlbnJlaWNoL2tvcGdlbi9yZWxlYXNlcy9kb3dubG9hZC9sYXRlc3Qva29wZ2VuX3g4Nl82NC11bmtub3duLWxpbnV4LW11c2wgLW8ga29wZ2VuCmNobW9kICt4IGtvcGdlbgptdiBrb3BnZW4gL3Vzci9sb2NhbC9iaW4vCmBgYAoKU3RhcnQgYSBuZXcgcHJvamVjdCBpbiBhbiBlbXB0eSBmb2xkZXI6CgpgYGBiYXNoCmtvcGdlbiBpbml0IC4KYGBgCgpUaGlzIHdpbGwgZ2VuZXJhdGUgdGhlIHByb2plY3QgZm9yIHRoZSBvcGVyYXRvciBpbmNsdWRpbmcgYSBkZXYgY29udGFpbmVyIGVudmlyb25tZW50LCB0aGVyZWZvcmUgaXQgaXMgcmVjb21tZW5kZWQgeW91IHVzZSBWU2NvZGUuCgpPcGVuIHRoZSBwcm9qZWN0IGluIFZTY29kZSwgYSBwcm9tcHQgdG8gb3BlbiB0aGUgcHJvamVjdCBpbnNpZGUgb2YgYSBEZXYgQ29udGFpbmVyIHdpbGwgYmUgc2hvd24sIGNsaWNrIGBvcGVuYC4KCkEgRGV2IENvbnRhaW5lciBpcyBlc3NlbnRpYWxseSBhbiBlbmNhcHN1bGF0ZSBlbnZpcm9ubWVudCB3aXRoIGFsbCB0aGUgbmVjZXNzYXJ5IHRvb2xzIHlvdSB3b3VsZCBuZWVkIGZvciB0aGUgZGV2ZWxvcG1lbnQgb2YgdGhpcyBwcm9qZWN0LgoKVG8gZ2V0IHN0YXJ0ZWQsIGZvbGxvdyB0aGVzZSBzdGVwczoKCjEuICoqQ29uZmlndXJlKio6IFJ1biBgY3AgLmVudi5leGFtcGxlIC5lbnZgIHRvIGxldCB0aGUgVGFza2ZpbGUga25vdyB3aGF0IGVudmlyb25tZW50IHZhcmlhYmxlcyB5b3Ugd291bGQgbGlrZSB0byB1c2UgLSB5b3UgY2FuIGtlZXAgaXQgYXMgaXMsIGJlY2F1c2UgaXQncyBieSBkZWZhdWx0IHNldCB0byBsb2NhbCBlbnZpcm9ubWVudC4KMi4gKipHZW5lcmF0ZSB0aGUgY29kZSoqOiBVc2UgYHRhc2sgZ2VuZXJhdGVgIHRvIGNyZWF0ZSB0aGUgbmVjZXNzYXJ5IHR5cGVzIGFuZCBjb250cm9sbGVycy4KMy4gKipDcmVhdGUgYSBkZXZlbG9wbWVudCBjbHVzdGVyKio6IFVzZSBgdGFzayBjbHVzdGVyLWNyZWF0ZWAgdG8gc2V0IHVwIHlvdXIgbG9jYWwgS3ViZXJuZXRlcyBjbHVzdGVyLgo0LiAqKkRlcGxveSB0aGUgQ1JEcyAob3Igc2V0IElOU1RBTExfQ1JEUyBlbnZpcm9ubWVudCB2YXJpYWJsZSB0byB0cnVlKSoqOiBSdW4gYHRhc2sgZGVwbG95LWNyZHNgIHRvIGRlcGxveSB0aGUgQ3VzdG9tIFJlc291cmNlIERlZmluaXRpb25zIHRvIHlvdXIgY2x1c3Rlci4KNS4gKipSdW4gdGhlIG9wZXJhdG9yKio6IFN0YXJ0IHlvdXIgb3BlcmF0b3Igd2l0aCBgdGFzayBydW5gLgo2LiAqKlRlc3QgaXQgb3V0Kio6IEFwcGx5IHRoZSBleGFtcGxlIG1hbmlmZXN0cyB3aXRoIGBrdWJlY3RsIGFwcGx5IC1mIG1hbmlmZXN0cy9leGFtcGxlcy9gIGFuZCBzZWUgeW91ciBvcGVyYXRvciBpbiBhY3Rpb24hCgojIyBOZWVkIEhlbHA/CgpJZiB5b3UncmUgbm90IHN1cmUgd2hhdCB0byBkbywganVzdCBydW4gYHRhc2sgLS1saXN0LWFsbGAgdG8gc2VlIGEgbGlzdCBvZiBhbGwgYXZhaWxhYmxlIHRhc2tzLgoKIyMgTW90aXZhdGlvbgoKV2h5IGNyZWF0ZSBhIEt1YmVybmV0ZXMgb3BlcmF0b3IgaW4gUnVzdD8gR3JlYXQgcXVlc3Rpb24hIEhlcmUgYXJlIGEgZmV3IHJlYXNvbnM6CgoxLiAqKlBlcmZvcm1hbmNlKio6IFJ1c3QgaXMga25vd24gZm9yIGl0cyBibGF6aW5nIGZhc3QgcGVyZm9ybWFuY2UuIEl0J3MgYSBzeXN0ZW0gcHJvZ3JhbW1pbmcgbGFuZ3VhZ2UgdGhhdCBydW5zIHdpdGhvdXQgYW55IGV4dHJhIHJ1bnRpbWUgb3IgZ2FyYmFnZSBjb2xsZWN0b3IuIFRoaXMgbWFrZXMgUnVzdCBhIGdyZWF0IGNob2ljZSBmb3Igd3JpdGluZyBLdWJlcm5ldGVzIG9wZXJhdG9ycyB3aGVyZSBwZXJmb3JtYW5jZSBpcyBrZXkuCgoyLiAqKk1lbW9yeSBTYWZldHkqKjogUnVzdCdzIHVuaXF1ZSBvd25lcnNoaXAgbW9kZWwgZ3VhcmFudGVlcyBtZW1vcnkgc2FmZXR5IHdpdGhvdXQgbmVlZGluZyBhIGdhcmJhZ2UgY29sbGVjdG9yLiBUaGlzIG1lYW5zIHlvdSBjYW4gd3JpdGUgaGlnaC1wZXJmb3JtYW5jZSBvcGVyYXRvcnMgd2l0aG91dCB3b3JyeWluZyBhYm91dCBtYW51YWwgbWVtb3J5IG1hbmFnZW1lbnQuCgozLiAqKkNvbmN1cnJlbmN5Kio6IFJ1c3QgaGFzIGZpcnN0LWNsYXNzIHN1cHBvcnQgZm9yIGNvbmN1cnJlbnQgcHJvZ3JhbW1pbmcuIFRoaXMgaXMgY3J1Y2lhbCBmb3Igd3JpdGluZyBvcGVyYXRvcnMsIHdoaWNoIG9mdGVuIG5lZWQgdG8gbWFuYWdlIG11bHRpcGxlIHJlc291cmNlcyBjb25jdXJyZW50bHkuCgo0LiAqKkludGVyb3BlcmFiaWxpdHkqKjogUnVzdCBjYW4gZWFzaWx5IGludGVyb3BlcmF0ZSB3aXRoIEMgYW5kIG90aGVyIGxhbmd1YWdlcy4gVGhpcyBtYWtlcyBpdCBlYXN5IHRvIGxldmVyYWdlIGV4aXN0aW5nIGxpYnJhcmllcyB3aGVuIHdyaXRpbmcgeW91ciBvcGVyYXRvci4KCjUuICoqVG9vbGluZyoqOiBSdXN0J3MgdG9vbGluZyBpcyB0b3Atbm90Y2guIFdpdGggQ2FyZ28sIFJ1c3QncyBwYWNrYWdlIG1hbmFnZXIgYW5kIGJ1aWxkIHN5c3RlbSwgbWFuYWdpbmcgZGVwZW5kZW5jaWVzIGFuZCBidWlsZGluZyB5b3VyIHByb2plY3QgaXMgYSBicmVlemUuCgo2LiAqKlN0cm9uZyBDb21tdW5pdHkqKjogVGhlIFJ1c3QgY29tbXVuaXR5IGlzIGtub3duIGZvciBiZWluZyBmcmllbmRseSBhbmQgaGVscGZ1bCwgd2hpY2ggaXMgYWx3YXlzIGEgcGx1cyB3aGVuIGxlYXJuaW5nIGEgbmV3IGxhbmd1YWdlIG9yIHN0YXJ0aW5nIGEgbmV3IHByb2plY3QuCgojIyBXaHkgT3BlbkFQSSBTcGVjaWZpY2F0aW9uPwoKVGhlIE9wZW5BUEkgU3BlY2lmaWNhdGlvbiAoT0FTKSwgZm9ybWVybHkga25vd24gYXMgU3dhZ2dlciwgaXMgYSBzdGFuZGFyZCBmb3IgZGVmaW5pbmcgQVBJcy4gSXQgcHJvdmlkZXMgYSB3YXkgdG8gZGVzY3JpYmUgdGhlIGNhcGFiaWxpdGllcyBvZiB5b3VyIEFQSSBpbiBhIG1hY2hpbmUtcmVhZGFibGUgZm9ybWF0LiBUaGlzIGhhcyBzZXZlcmFsIGJlbmVmaXRzOgoKMS4gKipEb2N1bWVudGF0aW9uKio6IFdpdGggT0FTLCB5b3VyIEFQSSBkb2N1bWVudGF0aW9uIGlzIGFsd2F5cyB1cC10by1kYXRlIGJlY2F1c2UgaXQncyBnZW5lcmF0ZWQgZGlyZWN0bHkgZnJvbSB5b3VyIEFQSSBkZWZpbml0aW9uLiBUaGlzIG1ha2VzIGl0IGVhc2llciBmb3IgZGV2ZWxvcGVycyB0byB1bmRlcnN0YW5kIHdoYXQgeW91ciBBUEkgZG9lcyBhbmQgaG93IHRvIHVzZSBpdC4KCjIuICoqQ2xpZW50IFNESyBHZW5lcmF0aW9uKio6IFRvb2xzIGxpa2UgdGhlIE9wZW5BUEkgR2VuZXJhdG9yIGNhbiBnZW5lcmF0ZSBjbGllbnQgU0RLcyBpbiB2YXJpb3VzIGxhbmd1YWdlcyBmcm9tIGFuIE9BUyBkb2N1bWVudC4gVGhpcyBtZWFucyBkZXZlbG9wZXJzIGNhbiBzdGFydCB1c2luZyB5b3VyIEFQSSBpbiB0aGVpciBsYW5ndWFnZSBvZiBjaG9pY2Ugd2l0aG91dCBoYXZpbmcgdG8gd3JpdGUgYSBsb3Qgb2YgYm9pbGVycGxhdGUgY29kZS4KCjMuICoqU2VydmVyIFN0dWIgR2VuZXJhdGlvbioqOiBTaW1pbGFybHksIHlvdSBjYW4gZ2VuZXJhdGUgc2VydmVyIHN0dWJzIGZyb20gYW4gT0FTIGRvY3VtZW50LiBUaGlzIGNhbiBzcGVlZCB1cCB0aGUgaW5pdGlhbCBkZXZlbG9wbWVudCBvZiB5b3VyIEFQSS4KCjQuICoqVmFsaWRhdGlvbioqOiBZb3UgY2FuIHVzZSB5b3VyIE9BUyBkb2N1bWVudCB0byB2YWxpZGF0ZSBBUEkgcmVxdWVzdHMgYW5kIHJlc3BvbnNlcy4gVGhpcyBoZWxwcyBjYXRjaCBlcnJvcnMgYmVmb3JlIHRoZXkgYmVjb21lIHByb2JsZW1zLgoKNS4gKipJbnRlZ3JhdGlvbioqOiBCZWNhdXNlIE9BUyBpcyBhIHN0YW5kYXJkLCB0aGVyZSBhcmUgbWFueSB0b29scyB0aGF0IGNhbiBpbXBvcnQgT0FTIGRvY3VtZW50cyBhbmQgcHJvdmlkZSBhZGRpdGlvbmFsIGZ1bmN0aW9uYWxpdHksIHN1Y2ggYXMgdGVzdGluZyB0b29scywgQVBJIGdhdGV3YXlzLCBhbmQgbW9yZS4KCkluIHRoaXMgcHJvamVjdCwgd2UgdXNlIHRoZSBPcGVuQVBJIFNwZWNpZmljYXRpb24gdG8gZ2VuZXJhdGUgdGhlIG5lY2Vzc2FyeSB0eXBlcyBhbmQgY29udHJvbGxlcnMgZm9yIG91ciBLdWJlcm5ldGVzIG9wZXJhdG9yLiBUaGlzIGFsbG93cyB1cyB0byBlYXNpbHkga2VlcCBvdXIgb3BlcmF0b3IgaW4gc3luYyB3aXRoIHRoZSBsYXRlc3QgdmVyc2lvbiBvZiBvdXIgQVBJLgo= + readmeEtag: '"57425a152e56f7d81f9193c47a5f989710301ec1"' + readmeLastModified: Thu, 14 Nov 2024 00:54:38 GMT repositoryId: 631552666 description: >- A generator for creating a CRUD Kubernetes operator from OpenAPI Specification written in Rust. created: '2023-04-23T11:43:16Z' - updated: '2024-11-12T13:50:53Z' + updated: '2024-11-14T00:54:47Z' language: Rust archived: false stars: 3 @@ -21918,8 +21918,8 @@ owner: edenreich logo: https://avatars.githubusercontent.com/u/16985712?v=4 license: Apache-2.0 - repoEtag: '"01a067c9c2a4ad1df6f899ec27c7011370ad1944383551caf9ee86fc9d5c4350"' - repoLastModified: Tue, 12 Nov 2024 13:50:53 GMT + repoEtag: '"b069a624a941e6642a0a31f88c26952f3387c9a86d4dd57ffae7936b090631df"' + repoLastModified: Thu, 14 Nov 2024 00:54:47 GMT category: Server Implementations foundInMaster: true oldLocations: @@ -25612,12 +25612,12 @@ language: JavaScript archived: false stars: 1 - watchers: 22 + watchers: 24 forks: 1 owner: smartrecruiters logo: https://avatars.githubusercontent.com/u/1618540?v=4 license: MIT - repoEtag: '"30b13696e83e09a695371192cb785af1007c5b321baf27cc0079ac0ae5bf8741"' + repoEtag: '"ce62cd6c64da803b3997b0c52db2e26ccb6ec7f8e1751b8d1565c2ffdc62b985"' repoLastModified: Tue, 22 Nov 2022 08:21:22 GMT foundInMaster: true category: @@ -25716,7 +25716,7 @@ repositoryId: 819191357 description: Go的API服务器可以生成开放的API文档 Go's API server can generate open API documents created: '2024-06-24T02:43:37Z' - updated: '2024-11-12T03:09:37Z' + updated: '2024-11-13T09:13:24Z' language: Go archived: false stars: 1 @@ -25725,8 +25725,8 @@ owner: goodluckxu-go logo: https://avatars.githubusercontent.com/u/110141236?v=4 license: MIT - repoEtag: '"b0b9d86b9d4aae335666c78ca720be5afc6b52101e6414d187cbaa332c3622f7"' - repoLastModified: Tue, 12 Nov 2024 03:09:37 GMT + repoEtag: '"87f58f853e4c966d31bb0399669de7c39a369794fb0ce5dbb70f9bc0df341433"' + repoLastModified: Wed, 13 Nov 2024 09:13:24 GMT category: Parsers foundInMaster: true v3_1: true @@ -28976,17 +28976,17 @@ repositoryId: 809563216 description: ' Automatically generated OpenAPI 3/swagger documentation via Go code, without relying on comments' created: '2024-06-03T02:29:55Z' - updated: '2024-11-12T13:56:32Z' + updated: '2024-11-13T06:25:12Z' language: Go archived: false - stars: 4 + stars: 8 watchers: 3 forks: 0 owner: the-pawn-2017 logo: https://avatars.githubusercontent.com/u/115976311?v=4 license: LGPL-3.0 - repoEtag: '"a3dd3d33f9e013d4347ec68ec1245491a1e378cecda4ade491d7ee88b369048c"' - repoLastModified: Tue, 12 Nov 2024 13:56:32 GMT + repoEtag: '"7f94ab17eeaaf0d0f263dcf0458ae53bc8e060639109a18cb0fc2bb11e11ed9e"' + repoLastModified: Wed, 13 Nov 2024 06:25:12 GMT category: Parsers foundInMaster: true - source: openapi3 tags @@ -30008,7 +30008,7 @@ owner: ExpediaGroup logo: https://avatars.githubusercontent.com/u/38541875?v=4 license: Apache-2.0 - repoEtag: '"86a49c61fe2d8b7532997c8f8bfd5e7459ab6ec25a1af049f69bbcb819da85f5"' + repoEtag: '"8096b3baeb3743414c0c81f57c873d09597eb60b4fd3777cf1b2617be1a639d4"' repoLastModified: Tue, 12 Nov 2024 13:42:26 GMT category: Parsers foundInMaster: true @@ -31944,17 +31944,17 @@ Simple, Fast, Code first and Compile time generated OpenAPI documentation for Rust created: '2021-09-30T22:00:31Z' - updated: '2024-11-12T05:32:37Z' + updated: '2024-11-13T22:22:05Z' language: Rust archived: false - stars: 2466 + stars: 2469 watchers: 9 forks: 193 owner: juhaku logo: https://avatars.githubusercontent.com/u/26358664?v=4 license: Apache-2.0 - repoEtag: '"bdc32987fe645a5aba5413bded3575d0a1ccf83155e55e112f285e99682fd713"' - repoLastModified: Tue, 12 Nov 2024 05:32:37 GMT + repoEtag: '"e858c82e63e0bfb4e33440f0734cd231e0246640e0a6a5fad6f1811650da723e"' + repoLastModified: Wed, 13 Nov 2024 22:22:05 GMT foundInMaster: true category: Parsers id: 14269a89115b3be71493769fca4d995e @@ -32971,17 +32971,17 @@ (TypeScript) from any valid OpenAPI v3 or Swagger v2 specification, either in yaml or json formats. 🍺 created: '2020-02-05T08:31:50Z' - updated: '2024-11-12T16:38:53Z' + updated: '2024-11-14T00:08:06Z' language: TypeScript archived: false - stars: 3043 + stars: 3073 watchers: 14 forks: 334 owner: orval-labs logo: https://avatars.githubusercontent.com/u/176128704?v=4 license: MIT - repoEtag: '"3cd497015cf6cc7d0593fa414ad583ce10c8f6b4093fb2439b7db32557bde48a"' - repoLastModified: Tue, 12 Nov 2024 16:38:53 GMT + repoEtag: '"2b23bd9d34642557a50670fac97db2edfe7350c52305789f0912a2e346524ddc"' + repoLastModified: Thu, 14 Nov 2024 00:08:06 GMT foundInMaster: true oldLocations: - https://github.com/anymaniax/orval @@ -33687,17 +33687,17 @@ 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-11-11T05:21:50Z' + updated: '2024-11-13T13:47:14Z' language: Kotlin archived: false - stars: 519 + stars: 520 watchers: 24 forks: 85 owner: WebFuzzing logo: https://avatars.githubusercontent.com/u/29148026?v=4 license: LGPL-3.0 - repoEtag: '"da309044debee16f7373e98811885a04564c0dbcc997b717a0173672677633ee"' - repoLastModified: Mon, 11 Nov 2024 05:21:50 GMT + repoEtag: '"c691ecf6a0eb4af7d1fdf74005fb403051eb9015eaf1bec962ff70ec6806bc9d"' + repoLastModified: Wed, 13 Nov 2024 13:47:14 GMT foundInMaster: true id: d1d3d85149c4a9437dbdbf157cf3d7c7 oldLocations: @@ -34996,11 +34996,11 @@ archived: false stars: 728 watchers: 7 - forks: 67 + forks: 66 owner: kubb-labs logo: https://avatars.githubusercontent.com/u/122118236?v=4 license: MIT - repoEtag: '"22b5f57731025994e0524c2e657505152880fca1f22dd9a27be4e850896f2f5e"' + repoEtag: '"edde0b0afa25494421d95e3b84a52c094416b7998cc9a8826c7b4781ddf31aa1"' repoLastModified: Tue, 12 Nov 2024 22:28:04 GMT foundInMaster: true oldLocations: @@ -35099,17 +35099,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-11-13T02:18:19Z' + updated: '2024-11-14T01:52:20Z' language: TypeScript archived: false - stars: 27615 + stars: 27644 watchers: 265 - forks: 4920 + forks: 4927 owner: fastapi logo: https://avatars.githubusercontent.com/u/156354296?v=4 license: MIT - repoEtag: '"7758c459152765eb2689774abb802e4f2e450c259cc542b9bf8e715f65a73168"' - repoLastModified: Wed, 13 Nov 2024 02:18:19 GMT + repoEtag: '"d54e626cfd1d9a44ff77931a7774f801a71883b3119eedfa464d41e0a3db85e9"' + repoLastModified: Thu, 14 Nov 2024 01:52:20 GMT foundInMaster: true category: Server Implementations id: 0354007b562b4efc3f08ce3da7f03afb @@ -35716,7 +35716,7 @@ A spring boot starter template that includes a docker image, generate helm chart using jkube, and GitHub action CI created: '2023-10-22T19:25:57Z' - updated: '2024-11-11T20:15:41Z' + updated: '2024-11-13T17:19:45Z' language: Java archived: false stars: 0 @@ -35724,8 +35724,8 @@ forks: 0 owner: bryopsida logo: https://avatars.githubusercontent.com/u/8363252?v=4 - repoEtag: '"98a2742d9d305734ec9a6c38998839008466570ec7a14db38ebd643e1aeb0fab"' - repoLastModified: Mon, 11 Nov 2024 20:15:41 GMT + repoEtag: '"2bea10d9d9c2302bb84b04fabac70a467d40bcb0cf8684d479e2b9984fbfc830"' + repoLastModified: Wed, 13 Nov 2024 17:19:45 GMT category: Server Implementations foundInMaster: true - name: Ballerina OpenAPI tool @@ -36896,7 +36896,7 @@ owner: experienced-dev logo: https://avatars.githubusercontent.com/u/61656932?v=4 license: MIT - repoEtag: '"af9ff1b8216f1b4d4943b121018c58990e7bf819a8e7ea6710896a6ac2e854b8"' + repoEtag: '"74c49ff0e66642c52158d97905cf6cfb2f4e214701e57108b668ede93f9a326e"' repoLastModified: Sat, 26 Aug 2023 14:47:42 GMT category: - Parsers @@ -40005,17 +40005,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-11-12T17:37:58Z' + updated: '2024-11-13T22:55:17Z' language: C# archived: false - stars: 1408 + stars: 1409 watchers: 64 forks: 232 owner: microsoft logo: https://avatars.githubusercontent.com/u/6154722?v=4 license: MIT - repoEtag: '"1a264a840fb404df66fa0708fddd8508f0de7edcb568148ea2aa78434a17d8f9"' - repoLastModified: Tue, 12 Nov 2024 17:37:58 GMT + repoEtag: '"558207226ee6bd3196c6a36d277727055670faa45b0fd34535d40be5769012fe"' + repoLastModified: Wed, 13 Nov 2024 22:55:17 GMT id: f3215034d64cfcbcc28a4bdb0205a075 - source: IMPLEMENTATIONS.md name: openapi-validator @@ -40211,17 +40211,17 @@ repositoryId: 32223373 description: A model-based test case generator created: '2015-03-14T17:22:38Z' - updated: '2024-11-04T10:00:23Z' + updated: '2024-11-14T01:36:23Z' language: Java archived: false - stars: 219 + stars: 220 watchers: 20 forks: 54 owner: Cornutum logo: https://avatars.githubusercontent.com/u/11477145?v=4 license: MIT - repoEtag: '"756e905a18bd22b3040762ce22f5d782e6d3f97e1b3f2799c0bbaf5818f52fe9"' - repoLastModified: Mon, 04 Nov 2024 10:00:23 GMT + repoEtag: '"020144ccd7b1870eec611e55c4affa716f011296e4f52ec854df5a843ced43e7"' + repoLastModified: Thu, 14 Nov 2024 01:36:23 GMT id: 14da7572a7632f9a9fb1c1ab2acef586 - source: IMPLEMENTATIONS.md name: Vert.x Web API Contract @@ -41190,7 +41190,7 @@ LoopBack makes it easy to build modern API applications that require complex integrations. created: '2017-01-09T17:27:14Z' - updated: '2024-11-13T02:32:13Z' + updated: '2024-11-13T17:58:14Z' language: TypeScript archived: false stars: 4958 @@ -41199,8 +41199,8 @@ owner: loopbackio logo: https://avatars.githubusercontent.com/u/22173486?v=4 license: NOASSERTION - repoEtag: '"83a869869c954ab4484ec4cf682da6c3e3d88c0b9a4c7003e08895ebd2ac0c69"' - repoLastModified: Wed, 13 Nov 2024 02:32:13 GMT + repoEtag: '"1abb182a4c4a100de42b8d3bb8ffb40e2bd5322c4a0162e9356ac1bb7bc79b37"' + repoLastModified: Wed, 13 Nov 2024 17:58:14 GMT foundInMaster: true id: 9132c25ad468bed25b9dbbe3a352abc2 v3: true @@ -41277,11 +41277,11 @@ archived: false stars: 2607 watchers: 35 - forks: 302 + forks: 303 owner: microsoft logo: https://avatars.githubusercontent.com/u/6154722?v=4 license: MIT - repoEtag: '"835371a28adf67fad8217b93bb368901f849f4216f37c0069c70620dcac84ee6"' + repoEtag: '"460f53efa7521b760c7b8eb02bb7ccc9a21cc866dc54d55c2f5318b7b1a14782"' repoLastModified: Tue, 12 Nov 2024 12:03:50 GMT foundInMaster: true oldLocations: @@ -41961,11 +41961,11 @@ archived: false stars: 1113 watchers: 81 - forks: 535 + forks: 536 owner: vert-x3 logo: https://avatars.githubusercontent.com/u/8124623?v=4 license: Apache-2.0 - repoEtag: '"a8993c7daf4223be634c2cb6e9ed6ca46743fd85d99bacd2834f97c14228fcea"' + repoEtag: '"59f1f11475b91696ae0af59548ff5cfe13140e974768a86ec5e7236a7d63e74a"' repoLastModified: Mon, 11 Nov 2024 17:54:34 GMT foundInMaster: true v3_link: https://github.com/vert-x3/vertx-web/issues/1872