Leica M Lens Holder

Wed, Jun 27, 2018

Cameras, Craftwork

leica m lens holder

“If I can hold a 250-year-old Italian violin reliably in my hand without a strap over my shoulder, I should do fine without one on my camera…”

Many people have asked me why I do not use straps with my cameras, and especially on all my Leica cameras. My reason is simple. If for any reason the camera should fall to the ground, it should be because I had dropped it, and not because of the failure of the strap or strap lugs on the camera body, or any other points of failure in between. It may sound silly, but there’s a bit of a logic to that. The former is within my control, and the latter is beyond my control. Also from experience, I’ve had bags fall to the ground because the strap buckle broke, but I don’t recall ever having dropped anything precious out of my hands. All the brass in the Leica M Typ 240 and chrome silver version Summilux-M 50mm f/1.4 makes for a seriously hefty load, which adds to another worry about straps and any part in between giving way. Then again, maybe my concerns are unfounded…I mean, how many people have actually dropped their cameras from a worn or broken strap? If you’re one of them, please tell about your experience in the Comment section at the end of this article.

“…it now becomes possible for lens swapping to be accomplished with only one free hand.”

Well, the article today is not about straps and heavy cameras, but the little intro above is mainly the reason why I have designed a custom lens holder to use in my bag. With one hand already holding the camera (instead of hanging around the neck leaving both hands free), I needed a “system” that would enable me to change lenses on the go (read: walking or standing up and not seated somewhere and placing the camera down).

With a block of wood mounted with a couple of rear lens caps to hold your lenses in your bag, it now becomes possible for lens swapping to be accomplished with only one free hand. Below are the steps for making my own lens holder, something which I have found to be very useful shooting concerts and events.

Preparation and Raw Materials

Before we begin, there are a few materials and tools we will need to gather. These materials are necessary to make the lens holder as I have designed it. If you have a different design but something that runs along a similar principle, you may add or subtract from the items listed below. For my lens holder, these were needed:

  1. leica m lens holderBlock of wood
    This will be the foundation of the lens caps and lenses, so you would want something firm but as lightweight as possible. Leica M lenses are already heavy as they are, and we wouldn’t want to introduce any extra weight into our camera bags. As this will be sitting quite securely inside the bag, the block of wood doesn’t really need to be robust. However, with this part being the most variable, you will need to select one depending on how elegant you want your final lens holder to look. The one I will be using isn’t exactly lightweight, but it has been sitting in my home waiting to serve some purpose, plus it is of roughly the right size for my bags.
  2. leica m lensRear lens caps
    You will need to source for a few of these online, because you’d want to avoid using your original Leica rear lens caps for this. I bought a set of 5 on eBay, and it really doesn’t matter where they come from or where they are made, as long as they work. Buy the best quality you can find. Buy the original Leica ones if you want. I realise it is better to have more of these, than just enough. Try and get sets which include the screw-on covers for these rear lens caps as well, instead of just the rear lens cap itself. I will explain why later.
  3. wafer-type screwsSmall wafer-type (flat-top) screws
    You will need at least 3 to 4 wafer-type screws per lens cap for this. So if you’re going to make a lens holder for 3 lenses, you will need 12 screws. The dimensions of the screw will very much depend on the thickness of your block of wood, and any Gauge number between #2 and #6 (2 to 3mm shank diameter) should do fine. The screws must be wafer heads and not pan heads (flat-bottom rounded top).
  4. foam sheetFoam sheet
    This is optional, but recommended as I will also explain in the steps below. I opted for a black foam sheet (which like the block of wood, was lying around at home waiting to serve a purpose), but any stable material that is non-moisture absorbing and doesn’t crumble over time is suitable. The foam will need to be cut out to 43mm diameter, so any other similar material you can find (e.g. cork or felt padding for under chairs and tables) should be ok.
  5. forstner bitTools
    You will need some tools to shape and put all the items above together. In my work below, I used a drill press with a 50mm-Forstner bit, my Milwaukee M12 Fuel Hackzall Recip Saw to saw the wood block to size, the Milwaukee Rotary Tool and some sandpaper to finish the wood surface, and the Milwaukee Drill Driver with a 2mm drill bit and countersunk bit for the holes on the lens cap. Hot glue gun and double-sided tape are optional, which I could have used in this little project as well, but I had opted not to. You will also need a Phillips screwdriver, an awl, a pencil and a pair of scissors.

Once the plan for the design and materials have been acquired, we may start with the crafting.

A. Measurements and Woodwork

leica m lens ONA leica m lens
A1. Before starting, check that the wood block is of suitable dimensions and that it will fit your bag snugly without moving around too much inside. You may want to check this with a few of your camera bags, as the lens holder may find itself in more than just one bag. Here I check it against the insides of my ONA Prince Street and ONA Brixton.
leica m lens leica m lens
A2. Next, measure the centre-to-centre dimensions in between your compartments. Also, the centre point for the lens closer to the edge should be sufficiently spaced and not sit too far from the interior side of the bag, so as not to waste too much space or have too much space between lens body and bag interior side.

leica m lens holder

 
A3. Mark these two points on the wood block with a pencil or awl. Check that these points also sit in the centre on the wood block between the interior front and rear of the bag.

leica m lens holder

A3. To make the crater in which the rear lens caps would sit on, a Forstner bit of 50mm diameter. What Forstner bits do is they carve out a hole with a flat bottom in wood, removing all wood material within its circumference. In comparison, a circular hole saw will not work, as it will only cut the circumference without removing material within. Forstner bits may be hard to come by in certain countries and folks who don’t work regularly with wood may not own these. You can find links to purchase this at the end of this article, or you could omit the crater in the following steps altogether. However, I feel that the crater is quite crucial to keep the lens cap stable, especially if you’re mounting on a large and heavy lens. It also adds a nice aesthetic touch to the overall construction, so it’s both form and function. The steps further below should make this clearer.

leica m lens holder

A4. Attach the Forstner bit to the drill press and adjust the platform level with the wood block on it to ensure that the Forstner bit drilling depth will not exceed the wood block’s thickness…in order words, so that the Forstner bit does not drill all the way through the wood block and leave you with a see-through hole.
leica m lens holder leica m lens holder
A5. If you have only marked the centre points with a pencil in Step A3 above, now is the time to do it with an awl. This will serve as a pilot hole for the Forstner bit during the start of the drilling.

leica m lens holder

A6. Drill into the wood block with the Forstner bit using the pilot hole as a guide.

leica m lens holder

A7. Stop intermittently to clear off wood shavings and allow the Forstner bit to cool down. The Forstner bit will get quite hot after a while,
so be careful not to touch it.

leica m lens holder

A8. You may also want to take this opportunity to check that the rear lens cap sits in nicely within the crater and that all is going well so far.

leica m lens holder

A9. Continue to drill all the way down to the preset depth.

leica m lens holder

A10. After the first crater is done, proceed with the second crater, and on with as many as you plan for the lens holder. I’ve decided to go with a 2-lens holder here, but most messenger bags will take 3 and even 4 lenses if the camera body is kept in another bag. I plan to make another one that holds 3 lenses soon.

leica m lens holder

 
A11. With both craters deeply carved in and completed, we can now start our work on the rear lens caps.

B. Preparing and Mounting the Rear Lens Caps

leica m lens holder

B1. We will now proceed to drill some very small holes on the rear lens caps to allow them to be mounted on the wood block.
Depending on the screw size you will be using, select a suitable drill bit. I used one for a bore size of about 2.0mm.

leica m lens holder

B2. Drill 4 holes on the rear lens cap, as close to the circumference as possible, but with sufficient space for the screw heads to sit. once they are fully screwed in. The screw positions are placed further from the lens cap centre for stability, especially for heavier lenses mounted on later.

leica m lens holder

B3a. The finished holes should look something like this on the inside…

leica m lens holder

B3b. …and like this on the underside of the lens cap.

leica m lens holder

B4. Do the same for the other rear lens cap.

leica m lens holder

B5. Use a countersunk bit to widen the hole on the inside of the lens cap so that the screws will sit as flush as possible to the inside surface once it is fully screwed in. If the screws are not mounted flush, they may come in contact with your lens flange.

ss

B6. Rinse the rear lens caps thoroughly under running tap water to clear off all saw dust and debris, and then wipe completely dry.

leica m lens holder

B7. Once the holes are finished properly, screw them onto the wood block. As an option, you may also use hot glue to fill any gap between the rear lens caps and the wood block, but I have not found this to be necessary. The screws alone hold the lens caps down just fine, provided the crater has sufficient depth and has been done neatly. We will now proceed to finish up some details on the lens caps.

C. Finishing Works on the Lens Caps

leica m lens holder

C1. With the rear lens cap cover, mark a circle on the foam sheet. I found that I was able to get the circle by pressing the cover on the foam sheet. If your foam sheet cannot be imprinted in this manner or if you do not have the cover, you can scribe out a circle of about 43mm in diameter with a pencil.

leica m lens holder

C2. Cut out the circle on the foam sheet with a pair of scissors.

leica m lens holder

C3. Place the circular foam sheet on the inside of the rear lens cap. If your cut-out is accurate, the foam sheet should be able to stay firmly in place without moving around or falling out of the lens cap. I would advise against using any adhesive here as any residual VOC could cause harm to internal lens coatings. If this is not a concern for you, be certain to use VOC-free adhesives.

leica m lens holder

C4. Repeat the steps above for the other lens cap.

D. Completion of the Leica M Lens Holder

leica m lens holder

D1. This is the completed Leica M Lens Holder. The covers are kept on when not in use to keep dust from entering the rear lens caps. One side of the wood block was intentionally designed to be longer, to sit below the camera body compartment in my bags. This would help to keep the wood block more stable when it is placed in my bags. See photos further below.

leica m lens

D2. It works with new 6-bit coded M lenses…

leica m lens

D3. …older non-6-bit coded M lenses and recently 6-bit coded ones…

leica r lens

D4. …as well as R lenses mounted on either the Leica R-Adapter M or the similar Novoflex version, naturally.

ONA Prince Street leica M lens holder

D5. The completed Leica M Lens holder sits snugly at the base of the ONA Prince Street bag. The extended part of the wood block base goes below the compartment for the camera body on the left side.

ONA Leica

D6. The Leica M Typ 240 in its place, with the Summilux-M 50mm f/1.4 ASPH and Summarit-M 90mm f/2.5.

ONA Prince Street Leica M lens

D7. I will usually leave one holder empty – a vacant spot for the lens currently attached to the camera body, before I unscrew the other lens and mount it on the M 240. This is all done with the bag strapped over my shoulder when I am standing or walking.

Conclusion…Will There Be A Version II?

“…all the brass in the Leica M Typ 240 and chrome silver version Summilux-M 50mm f/1.4 makes for a seriously hefty load, which adds to another worry about straps giving way.”

I have used the above Leica M Lens Holder in a number of gigs and have found it to be very useful for quick swapping of lens on my Leica M Typ 240. As mentioned earlier, this is in part more necessary for me than for others as I do not use straps with my cameras and thus have one less free hand to work with on the go. Nevertheless, this may also be a solution for those who use straps on their cameras, and prefer this quick method of lens replacement.

The lens holder solution is not only for Leica, and may be applicable for other brands of interchangeable lens camera. You will just need to get the appropriate rear lens caps for your lenses, and the correct diameter for the Forstner bit. I will be making another one soon to hold three M lenses that will fit into my wider ONA Brixton bag, and maybe another version in the future to hold R lenses without their adapters.

Meanwhile, keep shooting and churning out beautiful images with your fabulous lenses!

SEE ALSO:


 
FORSTNER BIT 50MM


 
LEICA M REAR LENS CAP on AMAZON


 
LEICA M REAR LENS CAP on EBAY

Leica Rear Lens Cap Model #14269 for Leica M Lenses

$9.99
End Date: Wednesday Dec-5-2018 12:42:46 PST
Buy It Now for only: $9.99
Buy It Now | Add to watch list

Metal Silver 1*Rear Lens + Body Cap Cover Screw Mount for Leica M39

$7.99
End Date: Saturday Dec-1-2018 18:21:12 PST
Buy It Now for only: $7.99
Buy It Now | Add to watch list
 
LEICA M LENSES on AMAZON


 
LEICA NOCTILUX LENSES on EBAY

Canon 50mm f/ 0.95 .95 Lens Vintage Dream Lens for m-mount Leica noctilux LM

$2,000.00
End Date: Saturday Dec-1-2018 8:58:50 PST
Buy It Now for only: $2,000.00
Buy It Now | Add to watch list

Leica NOCTILUX-M 50mm f/0.95 ASPH. - 11602 - (Black Anodized Finish) w/ Box #P88

$7,999.99
End Date: Monday Dec-10-2018 14:41:37 PST
Buy It Now for only: $7,999.99
Buy It Now | Add to watch list

Leica Noctilux-M 50mm f/0.95 ASPH Lens, Black, Boxed

$8,399.99
End Date: Sunday Nov-18-2018 4:55:38 PST
Buy It Now for only: $8,399.99
Buy It Now | Add to watch list

LEICA 50MM F/1.0 NOCTILUX SPECIAL EDITION LENS #11603 USA NEW! ONLY 100 MADE!!!!

$15,988.00
End Date: Monday Nov-19-2018 14:50:15 PST
Buy It Now for only: $15,988.00
Buy It Now | Add to watch list
, , ,

Leave a Reply

avatar

This site uses Akismet to reduce spam. Learn how your comment data is processed.

  Subscribe  
Notify of
Do NOT follow this link or you will be banned from the site!
PHVsPjxsaT48c3Ryb25nPndvb19hYm91dDwvc3Ryb25nPiAtIDwvbGk+PGxpPjxzdHJvbmc+d29vX2Fib3V0bGluazwvc3Ryb25nPiAtICM8L2xpPjxsaT48c3Ryb25nPndvb19hZF8zMDBfYWRzZW5zZTwvc3Ryb25nPiAtIDwvbGk+PGxpPjxzdHJvbmc+d29vX2FkXzMwMF9pbWFnZTwvc3Ryb25nPiAtIGh0dHA6Ly93d3cud29vdGhlbWVzLmNvbS9hZHMvd29vdGhlbWVzLTMwMHgyNTAtMi5naWY8L2xpPjxsaT48c3Ryb25nPndvb19hZF8zMDBfdXJsPC9zdHJvbmc+IC0gaHR0cDovL3d3dy53b290aGVtZXMuY29tPC9saT48bGk+PHN0cm9uZz53b29fYWRfaW1hZ2VfMTwvc3Ryb25nPiAtIGh0dHBzOi8vcm92ZXIuZWJheS5jb20vYXIvMS83MTEtNTMyMDAtMTkyNTUtMjAwLzE/Y2FtcGlkPTUzMzc3MjgxNTkmdG9vbGlkPTcxMTUzMjAwMTkyNTUyMDAmY3VzdG9taWQ9Jm1wdD1bQ0FDSEVCVVNURVJdJmFkdHlwZT0xJnNpemU9MTI1eDEyNSZtcHZjPTwvbGk+PGxpPjxzdHJvbmc+d29vX2FkX2ltYWdlXzI8L3N0cm9uZz4gLSBodHRwczovL3d3dy5kZXZvbmJ1eS5jb20vYWRzL2FtYXpvbi1oYXJyeS1wb3R0ZXJfMTI1eDEyNS5naWY8L2xpPjxsaT48c3Ryb25nPndvb19hZF9pbWFnZV8zPC9zdHJvbmc+IC0gaHR0cHM6Ly93d3cuZGV2b25idXkuY29tL2Fkcy9hbWF6b24tb3V0ZG9vci0xMjV4MTI1LmdpZjwvbGk+PGxpPjxzdHJvbmc+d29vX2FkX2ltYWdlXzQ8L3N0cm9uZz4gLSBodHRwczovL3VhLnNpdGVncm91bmQuY29tL2ltZy9iYW5uZXJzL2dlbmVyYWwvY29tZm9ydC8xMjV4MTI1LmdpZjwvbGk+PGxpPjxzdHJvbmc+d29vX2FkX2ltYWdlXzU8L3N0cm9uZz4gLSBodHRwczovL3d3dy5sZWRnZXJ3YWxsZXQuY29tL2ltYWdlcy9wcm9tby9sZWRnZXItMTI1eDEyNS0wMS5qcGc8L2xpPjxsaT48c3Ryb25nPndvb19hZF9pbWFnZV82PC9zdHJvbmc+IC0gaHR0cHM6Ly9yb3Zlci5lYmF5LmNvbS9hci8xLzcxMS01MzIwMC0xOTI1NS0yMDYvMT9jYW1waWQ9NTMzNzcyODE1OSZ0b29saWQ9NzExNTMyMDAxOTI1NTIwNiZjdXN0b21pZD0mbXB0PVtDQUNIRUJVU1RFUl0mYWR0eXBlPTEmc2l6ZT0xMjV4MTI1Jm1wdmM9PC9saT48bGk+PHN0cm9uZz53b29fYWRfcGFnZTwvc3Ryb25nPiAtIDwvbGk+PGxpPjxzdHJvbmc+d29vX2FkX3VybF8xPC9zdHJvbmc+IC0gaHR0cHM6Ly9yb3Zlci5lYmF5LmNvbS9yb3Zlci8xLzcxMS01MzIwMC0xOTI1NS0yMDAvMT9jYW1waWQ9NTMzNzcyODE1OSZ0b29saWQ9NzExNTMyMDAxOTI1NTIwMCZjdXN0b21pZD0mbXB2Yz08L2xpPjxsaT48c3Ryb25nPndvb19hZF91cmxfMjwvc3Ryb25nPiAtIGh0dHBzOi8vcmNtLW5hLmFtYXpvbi1hZHN5c3RlbS5jb20vZS9jbT9vPTEmcD0yMCZsPXVyMSZjYXRlZ29yeT1oYXJyeXBvdHRlciZiYW5uZXI9MFFCS1FZMTFQOTFQQVhQU0Y2UjImZj1pZnImbGlua0lEPTkxNTg0M2IzNTZiMzgxZDBkYjQwMDYyZmY3YmZlNDViJnQ9bW9jYmQtMjAmdHJhY2tpbmdfaWQ9bW9jYmQtMjA8L2xpPjxsaT48c3Ryb25nPndvb19hZF91cmxfMzwvc3Ryb25nPiAtIGh0dHBzOi8vcmNtLW5hLmFtYXpvbi1hZHN5c3RlbS5jb20vZS9jbT90PWh0dHB3d3dkZXZvbmItMjAmbz0xJnA9MjEmbD11cjEmY2F0ZWdvcnk9b3V0ZG9vcnJlY3JlYXRpb24mYmFubmVyPTE2NEpSRDdONEMyVktUQVpERkcyJmY9aWZyJmxpbmtJRD01SEZZWFIzSkpaRFlLT0hFPC9saT48bGk+PHN0cm9uZz53b29fYWRfdXJsXzQ8L3N0cm9uZz4gLSBodHRwczovL3d3dy5zaXRlZ3JvdW5kLmNvbS9pbmRleC5odG0/YWZjb2RlPTc3M2U5MTAxMDBlNTY3ODIyNzBkOGIxMTFhMzVmMTUwPC9saT48bGk+PHN0cm9uZz53b29fYWRfdXJsXzU8L3N0cm9uZz4gLSBodHRwczovL3d3dy5sZWRnZXJ3YWxsZXQuY29tL3IvYmVhYTwvbGk+PGxpPjxzdHJvbmc+d29vX2FkX3VybF82PC9zdHJvbmc+IC0gaHR0cHM6Ly9yb3Zlci5lYmF5LmNvbS9yb3Zlci8xLzcxMS01MzIwMC0xOTI1NS0yMDYvMT9jYW1waWQ9NTMzNzcyODE1OSZ0b29saWQ9NzExNTMyMDAxOTI1NTIwNiZjdXN0b21pZD0mbXB2Yz08L2xpPjxsaT48c3Ryb25nPndvb19hZHNfcm90YXRlPC9zdHJvbmc+IC0gZmFsc2U8L2xpPjxsaT48c3Ryb25nPndvb19hbHRfc3R5bGVzaGVldDwvc3Ryb25nPiAtIDMtZ3JleS5jc3M8L2xpPjxsaT48c3Ryb25nPndvb19hcmNoaXZlczwvc3Ryb25nPiAtIDwvbGk+PGxpPjxzdHJvbmc+d29vX2FzaWRlc19jYXRlZ29yeTwvc3Ryb25nPiAtIFNlbGVjdCBhIGNhdGVnb3J5OjwvbGk+PGxpPjxzdHJvbmc+d29vX2F1dGhvcjwvc3Ryb25nPiAtIGZhbHNlPC9saT48bGk+PHN0cm9uZz53b29fYXV0b19pbWc8L3N0cm9uZz4gLSBmYWxzZTwvbGk+PGxpPjxzdHJvbmc+d29vX2NlbnRlcmVkPC9zdHJvbmc+IC0gZmFsc2U8L2xpPjxsaT48c3Ryb25nPndvb19jb250ZW50PC9zdHJvbmc+IC0gZmFsc2U8L2xpPjxsaT48c3Ryb25nPndvb19jb250ZW50X2ZlYXQ8L3N0cm9uZz4gLSBmYWxzZTwvbGk+PGxpPjxzdHJvbmc+d29vX2NvbnRlbnRfbGVmdDwvc3Ryb25nPiAtIGZhbHNlPC9saT48bGk+PHN0cm9uZz53b29fY3VzdG9tX2Nzczwvc3Ryb25nPiAtIDwvbGk+PGxpPjxzdHJvbmc+d29vX2N1c3RvbV9mYXZpY29uPC9zdHJvbmc+IC0gaHR0cHM6Ly93d3cuZGV2b25idXkuY29tL3dwLWNvbnRlbnQvd29vX3VwbG9hZHMvMjYtZmF2aWNvbi1kYi5wbmc8L2xpPjxsaT48c3Ryb25nPndvb19jdXN0b21fc2VvX3RlbXBsYXRlPC9zdHJvbmc+IC0gYTozOntpOjA7YTo1OntzOjQ6Im5hbWUiO3M6MTA6InNlb19pbmZvXzEiO3M6Mzoic3RkIjtzOjA6IiI7czo1OiJsYWJlbCI7czo0OiJTRU8gIjtzOjQ6InR5cGUiO3M6NDoiaW5mbyI7czo0OiJkZXNjIjtzOjE5MDoiQWRkaXRpb25hbCBTRU8gY3VzdG9tIGZpZWxkcyBhdmFpbGFibGU6IDxzdHJvbmc+Q3VzdG9tIFBhZ2UgVGl0bGVzPC9zdHJvbmc+LiBHbyB0byA8YSBocmVmPSJodHRwczovL3d3dy5kZXZvbmJ1eS5jb20vd3AtYWRtaW4vYWRtaW4ucGhwP3BhZ2U9d29vdGhlbWVzX3NlbyI+U0VPIFNldHRpbmdzPC9hPiBwYWdlIHRvIGFjdGl2YXRlLiI7fWk6MTthOjU6e3M6NDoibmFtZSI7czoxMDoic2VvX2ZvbGxvdyI7czozOiJzdGQiO3M6NToiZmFsc2UiO3M6NToibGFiZWwiO3M6MTY6IlNFTyAtIFNldCBmb2xsb3ciO3M6NDoidHlwZSI7czo4OiJjaGVja2JveCI7czo0OiJkZXNjIjtzOjc3OiJNYWtlIGxpbmtzIGZyb20gdGhpcyBwb3N0L3BhZ2UgPHN0cm9uZz5mb2xsb3dhYmxlPC9zdHJvbmc+IGJ5IHNlYXJjaCBlbmdpbmVzLiI7fWk6MjthOjU6e3M6NDoibmFtZSI7czoxMToic2VvX25vaW5kZXgiO3M6Mzoic3RkIjtzOjU6ImZhbHNlIjtzOjU6ImxhYmVsIjtzOjEzOiJTRU8gLSBOb2luZGV4IjtzOjQ6InR5cGUiO3M6ODoiY2hlY2tib3giO3M6NDoiZGVzYyI7czo1NjoiU2V0IHRoZSBQYWdlL1Bvc3QgdG8gbm90IGJlIGluZGV4ZWQgYnkgYSBzZWFyY2ggZW5naW5lcy4iO319PC9saT48bGk+PHN0cm9uZz53b29fZmVhdF9pbWFnZV9oZWlnaHQ8L3N0cm9uZz4gLSAxOTU8L2xpPjxsaT48c3Ryb25nPndvb19mZWF0X2ltYWdlX3dpZHRoPC9zdHJvbmc+IC0gNTQwPC9saT48bGk+PHN0cm9uZz53b29fZmVhdHVyZWRfY2F0ZWdvcnk8L3N0cm9uZz4gLSBTZWxlY3QgYSBjYXRlZ29yeTo8L2xpPjxsaT48c3Ryb25nPndvb19mZWF0dXJlZF9wb3N0czwvc3Ryb25nPiAtIFNlbGVjdCBhIG51bWJlcjo8L2xpPjxsaT48c3Ryb25nPndvb19mZWVkYnVybmVyX2lkPC9zdHJvbmc+IC0gPC9saT48bGk+PHN0cm9uZz53b29fZmVlZGJ1cm5lcl91cmw8L3N0cm9uZz4gLSA8L2xpPjxsaT48c3Ryb25nPndvb19mbGlja3JfZW50cmllczwvc3Ryb25nPiAtIFNlbGVjdCBhIE51bWJlcjo8L2xpPjxsaT48c3Ryb25nPndvb19mbGlja3JfaWQ8L3N0cm9uZz4gLSA8L2xpPjxsaT48c3Ryb25nPndvb19mbGlja3JfdXJsPC9zdHJvbmc+IC0gPC9saT48bGk+PHN0cm9uZz53b29fZnJhbWV3b3JrX3RlbXBsYXRlPC9zdHJvbmc+IC0gYToxNzp7aTowO2E6Mzp7czo0OiJuYW1lIjtzOjE4OiJGcmFtZXdvcmsgU2V0dGluZ3MiO3M6NDoiaWNvbiI7czo3OiJnZW5lcmFsIjtzOjQ6InR5cGUiO3M6NzoiaGVhZGluZyI7fWk6MTthOjY6e3M6NDoibmFtZSI7czoyMToiU3VwZXIgVXNlciAodXNlcm5hbWUpIjtzOjQ6ImRlc2MiO3M6MjQ1OiJFbnRlciB5b3VyIDxzdHJvbmc+dXNlcm5hbWU8L3N0cm9uZz4gdG8gaGlkZSB0aGUgRnJhbWV3b3JrIFNldHRpbmdzIGFuZCBVcGRhdGUgRnJhbWV3b3JrIGZyb20gb3RoZXIgdXNlcnMuIENhbiBiZSByZXNldCBmcm9tIHRoZSA8YSBocmVmPSdodHRwczovL3d3dy5kZXZvbmJ1eS5jb20vd3AtYWRtaW4vb3B0aW9ucy5waHAnPldQIG9wdGlvbnMgcGFnZTwvYT4gdW5kZXIgPGVtPmZyYW1ld29ya193b29fc3VwZXJfdXNlcjwvZW0+LiI7czoyOiJpZCI7czoyNDoiZnJhbWV3b3JrX3dvb19zdXBlcl91c2VyIjtzOjM6InN0ZCI7czowOiIiO3M6NToiY2xhc3MiO3M6NDoidGV4dCI7czo0OiJ0eXBlIjtzOjQ6InRleHQiO31pOjI7YTo1OntzOjQ6Im5hbWUiO3M6MjE6IkRpc2FibGUgU0VPIE1lbnUgSXRlbSI7czo0OiJkZXNjIjtzOjYxOiJEaXNhYmxlIHRoZSA8c3Ryb25nPlNFTzwvc3Ryb25nPiBtZW51IGl0ZW0gaW4gdGhlIHRoZW1lIG1lbnUuIjtzOjI6ImlkIjtzOjI1OiJmcmFtZXdvcmtfd29vX3Nlb19kaXNhYmxlIjtzOjM6InN0ZCI7czowOiIiO3M6NDoidHlwZSI7czo4OiJjaGVja2JveCI7fWk6MzthOjU6e3M6NDoibmFtZSI7czozMzoiRGlzYWJsZSBTaWRlYmFyIE1hbmFnZXIgTWVudSBJdGVtIjtzOjQ6ImRlc2MiO3M6NzM6IkRpc2FibGUgdGhlIDxzdHJvbmc+U2lkZWJhciBNYW5hZ2VyPC9zdHJvbmc+IG1lbnUgaXRlbSBpbiB0aGUgdGhlbWUgbWVudS4iO3M6MjoiaWQiO3M6MjU6ImZyYW1ld29ya193b29fc2JtX2Rpc2FibGUiO3M6Mzoic3RkIjtzOjA6IiI7czo0OiJ0eXBlIjtzOjg6ImNoZWNrYm94Ijt9aTo0O2E6NTp7czo0OiJuYW1lIjtzOjI4OiJEaXNhYmxlIEJ1eSBUaGVtZXMgTWVudSBJdGVtIjtzOjQ6ImRlc2MiO3M6Njg6IkRpc2FibGUgdGhlIDxzdHJvbmc+QnV5IFRoZW1lczwvc3Ryb25nPiBtZW51IGl0ZW0gaW4gdGhlIHRoZW1lIG1lbnUuIjtzOjI6ImlkIjtzOjMyOiJmcmFtZXdvcmtfd29vX2J1eV90aGVtZXNfZGlzYWJsZSI7czozOiJzdGQiO3M6MDoiIjtzOjQ6InR5cGUiO3M6ODoiY2hlY2tib3giO31pOjU7YTo1OntzOjQ6Im5hbWUiO3M6MjQ6IkVuYWJsZSBDdXN0b20gTmF2aWdhdGlvbiI7czo0OiJkZXNjIjtzOjE4MToiRW5hYmxlIHRoZSBvbGQgPHN0cm9uZz5DdXN0b20gTmF2aWdhdGlvbjwvc3Ryb25nPiBtZW51IGl0ZW0uIFRyeSB0byB1c2UgPGEgaHJlZj0naHR0cHM6Ly93d3cuZGV2b25idXkuY29tL3dwLWFkbWluL25hdi1tZW51cy5waHAnPldQIE1lbnVzPC9hPiBpbnN0ZWFkLCBhcyB0aGlzIGZ1bmN0aW9uIGlzIG91dGRhdGVkLiI7czoyOiJpZCI7czoyMDoiZnJhbWV3b3JrX3dvb193b29uYXYiO3M6Mzoic3RkIjtzOjA6IiI7czo0OiJ0eXBlIjtzOjg6ImNoZWNrYm94Ijt9aTo2O2E6NTp7czo0OiJuYW1lIjtzOjI1OiJUaGVtZSBVcGRhdGUgTm90aWZpY2F0aW9uIjtzOjQ6ImRlc2MiO3M6MTAxOiJUaGlzIHdpbGwgZW5hYmxlIG5vdGljZXMgb24geW91ciB0aGVtZSBvcHRpb25zIHBhZ2UgdGhhdCB0aGVyZSBpcyBhbiB1cGRhdGUgYXZhaWxhYmxlIGZvciB5b3VyIHRoZW1lLiI7czoyOiJpZCI7czozNToiZnJhbWV3b3JrX3dvb190aGVtZV92ZXJzaW9uX2NoZWNrZXIiO3M6Mzoic3RkIjtzOjA6IiI7czo0OiJ0eXBlIjtzOjg6ImNoZWNrYm94Ijt9aTo3O2E6NTp7czo0OiJuYW1lIjtzOjI5OiJEaXNhYmxlIFNob3J0Y29kZXMgU3R5bGVzaGVldCI7czo0OiJkZXNjIjtzOjc2OiJUaGlzIGRpc2FibGVzIHRoZSBvdXRwdXQgb2Ygc2hvcnRjb2Rlcy5jc3MgaW4gdGhlIEhFQUQgc2VjdGlvbiBvZiB5b3VyIHNpdGUuIjtzOjI6ImlkIjtzOjMyOiJmcmFtZXdvcmtfd29vX2Rpc2FibGVfc2hvcnRjb2RlcyI7czozOiJzdGQiO3M6MDoiIjtzOjQ6InR5cGUiO3M6ODoiY2hlY2tib3giO31pOjg7YTo1OntzOjQ6Im5hbWUiO3M6MjY6IlJlbW92ZSBHZW5lcmF0b3IgTWV0YSBUYWdzIjtzOjQ6ImRlc2MiO3M6ODE6IlRoaXMgZGlzYWJsZXMgdGhlIG91dHB1dCBvZiBnZW5lcmF0b3IgbWV0YSB0YWdzIGluIHRoZSBIRUFEIHNlY3Rpb24gb2YgeW91ciBzaXRlLiI7czoyOiJpZCI7czozMToiZnJhbWV3b3JrX3dvb19kaXNhYmxlX2dlbmVyYXRvciI7czozOiJzdGQiO3M6MDoiIjtzOjQ6InR5cGUiO3M6ODoiY2hlY2tib3giO31pOjk7YTo1OntzOjQ6Im5hbWUiO3M6MTc6IkltYWdlIFBsYWNlaG9sZGVyIjtzOjQ6ImRlc2MiO3M6MTUxOiJTZXQgYSBkZWZhdWx0IGltYWdlIHBsYWNlaG9sZGVyIGZvciB5b3VyIHRodW1ibmFpbHMuIFVzZSB0aGlzIGlmIHlvdSB3YW50IGEgZGVmYXVsdCBpbWFnZSB0byBiZSBzaG93biBpZiB5b3UgaGF2ZW4ndCBhZGRlZCBhIGN1c3RvbSBpbWFnZSB0byB5b3VyIHBvc3QuIjtzOjI6ImlkIjtzOjI3OiJmcmFtZXdvcmtfd29vX2RlZmF1bHRfaW1hZ2UiO3M6Mzoic3RkIjtzOjA6IiI7czo0OiJ0eXBlIjtzOjY6InVwbG9hZCI7fWk6MTA7YTozOntzOjQ6Im5hbWUiO3M6ODoiQnJhbmRpbmciO3M6NDoiaWNvbiI7czo0OiJtaXNjIjtzOjQ6InR5cGUiO3M6NzoiaGVhZGluZyI7fWk6MTE7YTo1OntzOjQ6Im5hbWUiO3M6MjA6Ik9wdGlvbnMgcGFuZWwgaGVhZGVyIjtzOjQ6ImRlc2MiO3M6NTA6IkNoYW5nZSB0aGUgaGVhZGVyIGltYWdlIGZvciB0aGUgV29vVGhlbWVzIEJhY2tlbmQuIjtzOjI6ImlkIjtzOjM0OiJmcmFtZXdvcmtfd29vX2JhY2tlbmRfaGVhZGVyX2ltYWdlIjtzOjM6InN0ZCI7czowOiIiO3M6NDoidHlwZSI7czo2OiJ1cGxvYWQiO31pOjEyO2E6NTp7czo0OiJuYW1lIjtzOjE4OiJPcHRpb25zIHBhbmVsIGljb24iO3M6NDoiZGVzYyI7czo1NjoiQ2hhbmdlIHRoZSBpY29uIGltYWdlIGZvciB0aGUgV29yZFByZXNzIGJhY2tlbmQgc2lkZWJhci4iO3M6MjoiaWQiO3M6MjY6ImZyYW1ld29ya193b29fYmFja2VuZF9pY29uIjtzOjM6InN0ZCI7czowOiIiO3M6NDoidHlwZSI7czo2OiJ1cGxvYWQiO31pOjEzO2E6NTp7czo0OiJuYW1lIjtzOjIwOiJXb3JkUHJlc3MgbG9naW4gbG9nbyI7czo0OiJkZXNjIjtzOjUxOiJDaGFuZ2UgdGhlIGxvZ28gaW1hZ2UgZm9yIHRoZSBXb3JkUHJlc3MgbG9naW4gcGFnZS4iO3M6MjoiaWQiO3M6MzE6ImZyYW1ld29ya193b29fY3VzdG9tX2xvZ2luX2xvZ28iO3M6Mzoic3RkIjtzOjA6IiI7czo0OiJ0eXBlIjtzOjY6InVwbG9hZCI7fWk6MTQ7YTozOntzOjQ6Im5hbWUiO3M6MTU6IkltcG9ydCAvIEV4cG9ydCI7czo0OiJpY29uIjtzOjQ6Im1pc2MiO3M6NDoidHlwZSI7czo3OiJoZWFkaW5nIjt9aToxNTthOjU6e3M6NDoibmFtZSI7czoxNDoiSW1wb3J0IE9wdGlvbnMiO3M6NDoiZGVzYyI7czo1OToiSW1wb3J0IHRoZSBvcHRpb25zIGZyb20gYW5vdGhlciBpbnN0YWxsYXRpb24gb2YgdGhpcyB0aGVtZS4iO3M6MjoiaWQiO3M6Mjg6ImZyYW1ld29ya193b29faW1wb3J0X29wdGlvbnMiO3M6Mzoic3RkIjtzOjA6IiI7czo0OiJ0eXBlIjtzOjg6InRleHRhcmVhIjt9aToxNjthOjU6e3M6NDoibmFtZSI7czoxNDoiRXhwb3J0IE9wdGlvbnMiO3M6NDoiZGVzYyI7czo5NDoiRXhwb3J0IHRoZSBvcHRpb25zIHRvIGFub3RoZXIgaW5zdGFsbGF0aW9uIG9mIHRoaXMgdGhlbWUsIG9yIHRvIGtlZXAgYSBiYWNrdXAgb2YgeW91ciBvcHRpb25zLiI7czoyOiJpZCI7czoyODoiZnJhbWV3b3JrX3dvb19leHBvcnRfb3B0aW9ucyI7czozOiJzdGQiO3M6MTUxMjoiWVRveU9EcDdjem81T2lKM2IyOWZZV0p2ZFhRaU8zTTZNRG9pSWp0ek9qRXpPaUozYjI5ZllXSnZkWFJzYVc1cklqdHpPakU2SWlNaU8zTTZNVFE2SW5kdmIxOWhaSE5mY205MFlYUmxJanR6T2pRNkluUnlkV1VpTzNNNk1UUTZJbmR2YjE5aFpGOXBiV0ZuWlY4eElqdHpPalExT2lKb2RIUndPaTh2ZDNkM0xtUmxkbTl1WW5WNUxtTnZiUzloWkhNdlltaGZNVEkxZURFeU5WOHdNaTVuYVdZaU8zTTZNVFE2SW5kdmIxOWhaRjlwYldGblpWOHlJanR6T2pReE9pSm9kSFJ3T2k4dmQzZDNMbmR2YjNSb1pXMWxjeTVqYjIwdllXUnpMekV5TlhneE1qVmlMbXB3WnlJN2N6b3hORG9pZDI5dlgyRmtYMmx0WVdkbFh6TWlPM002TkRFNkltaDBkSEE2THk5M2QzY3VkMjl2ZEdobGJXVnpMbU52YlM5aFpITXZNVEkxZURFeU5XSXVhbkJuSWp0ek9qRTBPaUozYjI5ZllXUmZhVzFoWjJWZk5DSTdjem8wTVRvaWFIUjBjRG92TDNkM2R5NTNiMjkwYUdWdFpYTXVZMjl0TDJGa2N5OHhNalY0TVRJMVlpNXFjR2NpTzNNNk1USTZJbmR2YjE5aFpGOTFjbXhmTVNJN2N6b3pOem9pYUhSMGNEb3ZMM2QzZHk1aWJIVmxhRzl6ZEM1amIyMHZkSEpoWTJzdmFXNWthV2R2ZENJN2N6b3hNam9pZDI5dlgyRmtYM1Z5YkY4eUlqdHpPakkwT2lKb2RIUndPaTh2ZDNkM0xuZHZiM1JvWlcxbGN5NWpiMjBpTzNNNk1USTZJbmR2YjE5aFpGOTFjbXhmTXlJN2N6b3lORG9pYUhSMGNEb3ZMM2QzZHk1M2IyOTBhR1Z0WlhNdVkyOXRJanR6T2pFeU9pSjNiMjlmWVdSZmRYSnNYelFpTzNNNk1qUTZJbWgwZEhBNkx5OTNkM2N1ZDI5dmRHaGxiV1Z6TG1OdmJTSTdjem94T0RvaWQyOXZYMkZzZEY5emRIbHNaWE5vWldWMElqdHpPamc2SW1keVlYa3VZM056SWp0ek9qRTBPaUozYjI5ZlkzVnpkRzl0WDJOemN5STdjem93T2lJaU8zTTZNVGc2SW5kdmIxOWpkWE4wYjIxZlptRjJhV052YmlJN2N6b3dPaUlpTzNNNk1UZzZJbmR2YjE5bVpXVmtZblZ5Ym1WeVgzVnliQ0k3Y3pvd09pSWlPM002TWpBNkluZHZiMTluYjI5bmJHVmZZVzVoYkhsMGFXTnpJanR6T2pBNklpSTdjem80T2lKM2IyOWZhRzl0WlNJN2N6bzFPaUptWVd4elpTSTdjem94TnpvaWQyOXZYMmh2YldWZllYSmphR2wyWlhNaU8zTTZNRG9pSWp0ek9qSXhPaUozYjI5ZmFHOXRaVjltYkdsamEzSmZZMjkxYm5RaU8zTTZNRG9pSWp0ek9qRTVPaUozYjI5ZmFHOXRaVjltYkdsamEzSmZkWEpzSWp0ek9qQTZJaUk3Y3pveU1Eb2lkMjl2WDJodmJXVmZabXhwWTJ0eVgzVnpaWElpTzNNNk1Eb2lJanR6T2pFNU9pSjNiMjlmYUc5dFpWOXNhV1psYzNSeVpXRnRJanR6T2pBNklpSTdjem94TkRvaWQyOXZYMmh2YldWZmNHOXpkSE1pTzNNNk1Eb2lJanR6T2pnNkluZHZiMTlzYjJkdklqdHpPakE2SWlJN2N6b3hNem9pZDI5dlgyMWhhVzV5YVdkb2RDSTdjem8xT2lKbVlXeHpaU0k3Y3pvM09pSjNiMjlmYm1GMklqdHpPalE2SW5SeWRXVWlPM002T0RvaWQyOXZYM1JoWW5NaU8zTTZOVG9pWm1Gc2MyVWlPM002T1RvaWQyOXZYM1pwWkdWdklqdHpPalE2SW5SeWRXVWlPMzA9IjtzOjQ6InR5cGUiO3M6ODoidGV4dGFyZWEiO319PC9saT48bGk+PHN0cm9uZz53b29fZnJhbWV3b3JrX3ZlcnNpb248L3N0cm9uZz4gLSA0LjEuMDwvbGk+PGxpPjxzdHJvbmc+d29vX2dvb2dsZV9hbmFseXRpY3M8L3N0cm9uZz4gLSA8L2xpPjxsaT48c3Ryb25nPndvb19ob21lPC9zdHJvbmc+IC0gZmFsc2U8L2xpPjxsaT48c3Ryb25nPndvb19ob21lX2FyY2hpdmVzPC9zdHJvbmc+IC0gPC9saT48bGk+PHN0cm9uZz53b29faG9tZV9mbGlja3JfY291bnQ8L3N0cm9uZz4gLSA8L2xpPjxsaT48c3Ryb25nPndvb19ob21lX2ZsaWNrcl91cmw8L3N0cm9uZz4gLSA8L2xpPjxsaT48c3Ryb25nPndvb19ob21lX2ZsaWNrcl91c2VyPC9zdHJvbmc+IC0gPC9saT48bGk+PHN0cm9uZz53b29faG9tZV9saWZlc3RyZWFtPC9zdHJvbmc+IC0gPC9saT48bGk+PHN0cm9uZz53b29faG9tZV9vbmVfY29sPC9zdHJvbmc+IC0gZmFsc2U8L2xpPjxsaT48c3Ryb25nPndvb19ob21lX3Bvc3RzPC9zdHJvbmc+IC0gPC9saT48bGk+PHN0cm9uZz53b29faW1hZ2VfZGlzYWJsZTwvc3Ryb25nPiAtIGZhbHNlPC9saT48bGk+PHN0cm9uZz53b29faW1hZ2VfaGVpZ2h0PC9zdHJvbmc+IC0gMTkwPC9saT48bGk+PHN0cm9uZz53b29faW1hZ2Vfc2luZ2xlPC9zdHJvbmc+IC0gdHJ1ZTwvbGk+PGxpPjxzdHJvbmc+d29vX2ltYWdlX3dpZHRoPC9zdHJvbmc+IC0gMzUwPC9saT48bGk+PHN0cm9uZz53b29fbGF5b3V0PC9zdHJvbmc+IC0gZmFsc2U8L2xpPjxsaT48c3Ryb25nPndvb19sb2dvPC9zdHJvbmc+IC0gaHR0cHM6Ly93d3cuZGV2b25idXkuY29tL3dwLWNvbnRlbnQvd29vX3VwbG9hZHMvMzItbG9nby1kZXZvbmJ1eS0yMDE2LnBuZzwvbGk+PGxpPjxzdHJvbmc+d29vX21haW5yaWdodDwvc3Ryb25nPiAtIGZhbHNlPC9saT48bGk+PHN0cm9uZz53b29fbWFudWFsPC9zdHJvbmc+IC0gaHR0cDovL3d3dy53b290aGVtZXMuY29tL3N1cHBvcnQvdGhlbWUtZG9jdW1lbnRhdGlvbi9mcmVzaC1uZXdzLzwvbGk+PGxpPjxzdHJvbmc+d29vX25hdjwvc3Ryb25nPiAtIHRydWU8L2xpPjxsaT48c3Ryb25nPndvb19vcHRpb25zPC9zdHJvbmc+IC0gYToyODp7czoxODoid29vX2FsdF9zdHlsZXNoZWV0IjtzOjEyOiI2LXdoaXRleS5jc3MiO3M6ODoid29vX2xvZ28iO3M6NTg6Imh0dHBzOi8vd3d3LmRldm9uYnV5LmNvbS93cC1jb250ZW50L3dvb191cGxvYWRzLzMtbG9nby5wbmciO3M6MTg6Indvb19jdXN0b21fZmF2aWNvbiI7czowOiIiO3M6MjA6Indvb19nb29nbGVfYW5hbHl0aWNzIjtzOjA6IiI7czoxODoid29vX2ZlZWRidXJuZXJfdXJsIjtzOjA6IiI7czoxNDoid29vX2N1c3RvbV9jc3MiO3M6MDoiIjtzOjg6Indvb19ob21lIjtzOjU6ImZhbHNlIjtzOjE0OiJ3b29faG9tZV9wb3N0cyI7czowOiIiO3M6MTk6Indvb19ob21lX2xpZmVzdHJlYW0iO3M6MDoiIjtzOjIwOiJ3b29faG9tZV9mbGlja3JfdXNlciI7czowOiIiO3M6MjE6Indvb19ob21lX2ZsaWNrcl9jb3VudCI7czowOiIiO3M6MTk6Indvb19ob21lX2ZsaWNrcl91cmwiO3M6MDoiIjtzOjE3OiJ3b29faG9tZV9hcmNoaXZlcyI7czowOiIiO3M6MTM6Indvb19tYWlucmlnaHQiO3M6NToiZmFsc2UiO3M6Nzoid29vX25hdiI7czo0OiJ0cnVlIjtzOjg6Indvb190YWJzIjtzOjU6ImZhbHNlIjtzOjk6Indvb192aWRlbyI7czo0OiJ0cnVlIjtzOjk6Indvb19hYm91dCI7czowOiIiO3M6MTM6Indvb19hYm91dGxpbmsiO3M6MToiIyI7czoxNDoid29vX2Fkc19yb3RhdGUiO3M6NDoidHJ1ZSI7czoxNDoid29vX2FkX2ltYWdlXzEiO3M6NDY6Imh0dHBzOi8vd3d3LmRldm9uYnV5LmNvbS9hZHMvYmhfMTI1eDEyNV8wMi5naWYiO3M6MTI6Indvb19hZF91cmxfMSI7czozNzoiaHR0cDovL3d3dy5ibHVlaG9zdC5jb20vdHJhY2svaW5kaWdvdCI7czoxNDoid29vX2FkX2ltYWdlXzIiO3M6NDY6Imh0dHBzOi8vd3d3LmRldm9uYnV5LmNvbS9hZHMvaWNvb2xzb2Z0aXBhZC5qcGciO3M6MTI6Indvb19hZF91cmxfMiI7czo2ODoiaHR0cHM6Ly93d3cucmVnbm93LmNvbS9jaGVja291dC9jYXJ0L2FkZC8yNzE0OC03P2FmZmlsaWF0ZV9pZD01OTMwMDEiO3M6MTQ6Indvb19hZF9pbWFnZV8zIjtzOjQxOiJodHRwOi8vd3d3Lndvb3RoZW1lcy5jb20vYWRzLzEyNXgxMjViLmpwZyI7czoxMjoid29vX2FkX3VybF8zIjtzOjI0OiJodHRwOi8vd3d3Lndvb3RoZW1lcy5jb20iO3M6MTQ6Indvb19hZF9pbWFnZV80IjtzOjQxOiJodHRwOi8vd3d3Lndvb3RoZW1lcy5jb20vYWRzLzEyNXgxMjViLmpwZyI7czoxMjoid29vX2FkX3VybF80IjtzOjI0OiJodHRwOi8vd3d3Lndvb3RoZW1lcy5jb20iO308L2xpPjxsaT48c3Ryb25nPndvb19vdGhlcl9lbnRyaWVzPC9zdHJvbmc+IC0gNjwvbGk+PGxpPjxzdHJvbmc+d29vX3BvcHVsYXJfcG9zdHM8L3N0cm9uZz4gLSBTZWxlY3QgYSBudW1iZXI6PC9saT48bGk+PHN0cm9uZz53b29fcmVzaXplPC9zdHJvbmc+IC0gZmFsc2U8L2xpPjxsaT48c3Ryb25nPndvb19yc3NfdGh1bWI8L3N0cm9uZz4gLSBmYWxzZTwvbGk+PGxpPjxzdHJvbmc+d29vX3Nob3J0bmFtZTwvc3Ryb25nPiAtIHdvbzwvbGk+PGxpPjxzdHJvbmc+d29vX3Nob3dfdmlkZW88L3N0cm9uZz4gLSBmYWxzZTwvbGk+PGxpPjxzdHJvbmc+d29vX3NpbmdsZV9oZWlnaHQ8L3N0cm9uZz4gLSAxMjA8L2xpPjxsaT48c3Ryb25nPndvb19zaW5nbGVfaW1hZ2VfaGVpZ2h0PC9zdHJvbmc+IC0gMTAwPC9saT48bGk+PHN0cm9uZz53b29fc2luZ2xlX2ltYWdlX3dpZHRoPC9zdHJvbmc+IC0gMTAwPC9saT48bGk+PHN0cm9uZz53b29fc2luZ2xlX3dpZHRoPC9zdHJvbmc+IC0gMjAwPC9saT48bGk+PHN0cm9uZz53b29fc3Vja2VyZmlzaDwvc3Ryb25nPiAtIHRydWU8L2xpPjxsaT48c3Ryb25nPndvb190YWJzPC9zdHJvbmc+IC0gZmFsc2U8L2xpPjxsaT48c3Ryb25nPndvb190aGVtZW5hbWU8L3N0cm9uZz4gLSBGcmVzaCBOZXdzPC9saT48bGk+PHN0cm9uZz53b29fdGh1bWJfaGVpZ2h0PC9zdHJvbmc+IC0gMTAwPC9saT48bGk+PHN0cm9uZz53b29fdGh1bWJfaW1hZ2VfaGVpZ2h0PC9zdHJvbmc+IC0gNzU8L2xpPjxsaT48c3Ryb25nPndvb190aHVtYl9pbWFnZV93aWR0aDwvc3Ryb25nPiAtIDc1PC9saT48bGk+PHN0cm9uZz53b29fdGh1bWJfd2lkdGg8L3N0cm9uZz4gLSAxMDA8L2xpPjxsaT48c3Ryb25nPndvb191cGxvYWRzPC9zdHJvbmc+IC0gYTozMDp7aTowO3M6NzM6Imh0dHBzOi8vd3d3LmRldm9uYnV5LmNvbS93cC1jb250ZW50L3dvb191cGxvYWRzLzMyLWxvZ28tZGV2b25idXktMjAxNi5wbmciO2k6MTtzOjczOiJodHRwczovL3d3dy5kZXZvbmJ1eS5jb20vd3AtY29udGVudC93b29fdXBsb2Fkcy8zMS1sb2dvLWRldm9uYnV5LTIwMTYucG5nIjtpOjI7czo3MzoiaHR0cHM6Ly93d3cuZGV2b25idXkuY29tL3dwLWNvbnRlbnQvd29vX3VwbG9hZHMvMzAtbG9nby1kZXZvbmJ1eS0yMDE1LnBuZyI7aTozO3M6NzM6Imh0dHBzOi8vd3d3LmRldm9uYnV5LmNvbS93cC1jb250ZW50L3dvb191cGxvYWRzLzI5LWxvZ28tZGV2b25idXktMjAxNS5wbmciO2k6NDtzOjczOiJodHRwczovL3d3dy5kZXZvbmJ1eS5jb20vd3AtY29udGVudC93b29fdXBsb2Fkcy8yOC1sb2dvLWRldm9uYnV5LTIwMTUucG5nIjtpOjU7czo3MzoiaHR0cHM6Ly93d3cuZGV2b25idXkuY29tL3dwLWNvbnRlbnQvd29vX3VwbG9hZHMvMjctbG9nby1kZXZvbmJ1eS0yMDE1LnBuZyI7aTo2O3M6NjU6Imh0dHBzOi8vd3d3LmRldm9uYnV5LmNvbS93cC1jb250ZW50L3dvb191cGxvYWRzLzI2LWZhdmljb24tZGIucG5nIjtpOjc7czo2NjoiaHR0cHM6Ly93d3cuZGV2b25idXkuY29tL3dwLWNvbnRlbnQvd29vX3VwbG9hZHMvMjUtZmF2aWNvbjIwMTQucG5nIjtpOjg7czo2NToiaHR0cHM6Ly93d3cuZGV2b25idXkuY29tL3dwLWNvbnRlbnQvd29vX3VwbG9hZHMvMjQtaGVhZGVyMjAxNC5wbmciO2k6OTtzOjY1OiJodHRwczovL3d3dy5kZXZvbmJ1eS5jb20vd3AtY29udGVudC93b29fdXBsb2Fkcy8yMy1oZWFkZXIyMDE0LnBuZyI7aToxMDtzOjY1OiJodHRwczovL3d3dy5kZXZvbmJ1eS5jb20vd3AtY29udGVudC93b29fdXBsb2Fkcy8yMi1oZWFkZXIyMDE0LnBuZyI7aToxMTtzOjY1OiJodHRwczovL3d3dy5kZXZvbmJ1eS5jb20vd3AtY29udGVudC93b29fdXBsb2Fkcy8yMS1oZWFkZXIyMDEzLnBuZyI7aToxMjtzOjcwOiJodHRwczovL3d3dy5kZXZvbmJ1eS5jb20vd3AtY29udGVudC93b29fdXBsb2Fkcy8yMC1oZWFkZXIyMDEzdHlwZTIuanBnIjtpOjEzO3M6NzA6Imh0dHBzOi8vd3d3LmRldm9uYnV5LmNvbS93cC1jb250ZW50L3dvb191cGxvYWRzLzE5LWhlYWRlcjIwMTN0eXBlMi5qcGciO2k6MTQ7czo3MDoiaHR0cHM6Ly93d3cuZGV2b25idXkuY29tL3dwLWNvbnRlbnQvd29vX3VwbG9hZHMvMTgtaGVhZGVyMjAxM3R5cGUyLmpwZyI7aToxNTtzOjcwOiJodHRwczovL3d3dy5kZXZvbmJ1eS5jb20vd3AtY29udGVudC93b29fdXBsb2Fkcy8xNy1oZWFkZXIyMDEzdHlwZTIuanBnIjtpOjE2O3M6NjU6Imh0dHBzOi8vd3d3LmRldm9uYnV5LmNvbS93cC1jb250ZW50L3dvb191cGxvYWRzLzE2LWhlYWRlcjIwMTMuanBnIjtpOjE3O3M6NjQ6Imh0dHBzOi8vd3d3LmRldm9uYnV5LmNvbS93cC1jb250ZW50L3dvb191cGxvYWRzLzE1LWxvZ29fY2FydC5wbmciO2k6MTg7czo2NDoiaHR0cHM6Ly93d3cuZGV2b25idXkuY29tL3dwLWNvbnRlbnQvd29vX3VwbG9hZHMvMTQtbG9nb19jYXJ0LnBuZyI7aToxOTtzOjY0OiJodHRwczovL3d3dy5kZXZvbmJ1eS5jb20vd3AtY29udGVudC93b29fdXBsb2Fkcy8xMy1sb2dvX2NhcnQucG5nIjtpOjIwO3M6NjQ6Imh0dHBzOi8vd3d3LmRldm9uYnV5LmNvbS93cC1jb250ZW50L3dvb191cGxvYWRzLzEyLWxvZ29fY2FydC5wbmciO2k6MjE7czo2NDoiaHR0cHM6Ly93d3cuZGV2b25idXkuY29tL3dwLWNvbnRlbnQvd29vX3VwbG9hZHMvMTEtbG9nb19jYXJ0LnBuZyI7aToyMjtzOjYxOiJodHRwczovL3d3dy5kZXZvbmJ1eS5jb20vd3AtY29udGVudC93b29fdXBsb2Fkcy8xMC1sb2dvXzMucG5nIjtpOjIzO3M6NjA6Imh0dHBzOi8vd3d3LmRldm9uYnV5LmNvbS93cC1jb250ZW50L3dvb191cGxvYWRzLzktbG9nb18zLnBuZyI7aToyNDtzOjYwOiJodHRwczovL3d3dy5kZXZvbmJ1eS5jb20vd3AtY29udGVudC93b29fdXBsb2Fkcy84LWRiLWZhdi5wbmciO2k6MjU7czo2MDoiaHR0cHM6Ly93d3cuZGV2b25idXkuY29tL3dwLWNvbnRlbnQvd29vX3VwbG9hZHMvNy1sb2dvXzIucG5nIjtpOjI2O3M6NjA6Imh0dHBzOi8vd3d3LmRldm9uYnV5LmNvbS93cC1jb250ZW50L3dvb191cGxvYWRzLzYtbG9nb18yLnBuZyI7aToyNztzOjYwOiJodHRwczovL3d3dy5kZXZvbmJ1eS5jb20vd3AtY29udGVudC93b29fdXBsb2Fkcy81LWxvZ29fMi5wbmciO2k6Mjg7czo2MDoiaHR0cHM6Ly93d3cuZGV2b25idXkuY29tL3dwLWNvbnRlbnQvd29vX3VwbG9hZHMvNC1sb2dvXzIucG5nIjtpOjI5O3M6NTg6Imh0dHBzOi8vd3d3LmRldm9uYnV5LmNvbS93cC1jb250ZW50L3dvb191cGxvYWRzLzMtbG9nby5wbmciO308L2xpPjxsaT48c3Ryb25nPndvb192aWRlbzwvc3Ryb25nPiAtIHRydWU8L2xpPjxsaT48c3Ryb25nPndvb192aWRlb19jYXRlZ29yeTwvc3Ryb25nPiAtIFNlbGVjdCBhIGNhdGVnb3J5OjwvbGk+PC91bD4=