18 Bitcoin Etfs And Cryptocurrency Funds You Should Know

The company happily accepted my payment of 50% then declined to honor the agreement and demanded payment in full. They said no problem they would process my refund but I would have to wait 16 weeks to get it. I also suspect they are in cahoots with ABRA somehow to make sure there is always another ready excuse not to pay. You can consult with others and read information online but never follow someone’s advice blindly.

  • Signatures of the crypto-currency market decoupling from the Forex.
  • This is a tricky area, so it is advisable to consult with a financial advisor to find out your risk appetite.
  • Even though cryptocurrency is rocky, crypto investors seem to like Bitcoin because they think it has a little more strength and stability than the rest.
  • MicroStrategy, a business analytics firm, has already signed on — perhaps not surprising since its chief executive is a big proponent of Bitcoin and has heavily invested the firm’s money in the digital currency.
  • Reporting for TODAY, NBC’s senior consumer investigative correspondent Vicky Nguyen breaks http://landennnxw167.raidersfanteamshop.com/buy-bitcoin-ethereum down what cryptocurrency is, how to know whether it’s trustworthy, and red flags to be aware of before diving in.

Please note that not all of the investments and services mentioned are available in every state. We believe cryptocurrencies are highly speculative and don't offer a way to purchase or hold cryptocurrencies or future contracts on cryptocurrencies. The other limitation is that as mining becomes more difficult and the network becomes more congested, the amount of computing power needed is amplified.

“I am a holder of ethereum because I believe in the project and the fundamentals,” he says. Blake asks me not to disclose the value of his holdings, because “crypto can make you a target” for hackers; he will only tell me that he has more than £5,000 in investments. His is the year ordinary people discovered financial markets. If it feels as if everyone is talking about their stock options and crypto wallets, it’s because they are. And at the vanguard of this new, online-centred investment community are young people, women and minority groups. She joined an investing group on the ultra-private messenger app Discord.

Cash App makes it easy to invest in stocks and bitcoin, whether you’re just getting started or already a pro. Bitcoin and cryptocurrency trading is relatively young — new coins are becoming mainstream on a daily basis. This newness brings unpredictable swings in price and volatility, which may create opportunities for massive gains. The way Bitcoin and cryptocurrencies are used now — largely for investing — is also a big departure from Bitcoin's original intent as a currency, free from central banks, that people could use to buy things.

Are You Ready To Apply To The World's Largest Pre

Its large community of supporters on Reddit have kept it popular after they helped fuel its surge in market value to nearly $50 billion at the start of 2021. It's a public digital ledger that records every new crypto transaction. With blockchain, every cryptocurrency user has a copy of the registry, creating a single, shared record book.

Elsewhere, there have been issues with two stablecoins, or a cryptocurrency whose value pegged to another asset, like a traditional currency. Stablecoins allows traders to more fluidly trade within the crypto ecosystem. A number of Bitcoin stocks — or companies that have business tied to the cryptocurrency — have followed. Regarding security, the highest level of protection against hacking for the time being is referred to as cold storage. This means the encrypted private key data that permits transacting in bitcoin is stored on a hardware module which is never connected to a routable network.

This method follows similar trading sessions as in the foreign exchange market. On the yield farming side, PancakeSwap, Curve Finance, Uniswap, SushiSwap, and Raydium are just a few services offering the ability to swap tokens, add to liquidity pools, and invest in yield farms. They are typically accessed via crypto wallets that connect to the service and allow you to add and withdraw funds. And, as with any type of digital network, DeFi services are vulnerable to hacking, bad programming, and other glitches and problems beyond your control.

While fees should definitely be a consideration, experts say you also get what you pay for, especially when sticking to the bigger, more established exchanges like Coinbase. If an exchange has more protections, better security, or other important features to you, it may be worth slightly higher fees. Forbes Advisor adheres to strict editorial integrity standards. To the best of our knowledge, all content is accurate as of the date posted, though offers contained herein may no longer be available. The opinions expressed are the author’s alone and have not been provided, approved, or otherwise endorsed by our partners. A cold wallet is a small, encrypted portable device that allows you to download and carry your Bitcoin.

Coinbase And Other Cryptocurrency Stocks

Fund your account, access live pricing and learn more with a knowledge base. Coinbase makes it safe and simple for you to buy, sell and hold bitcoin. You can buy a portion of bitcoin with a $0 account minimum. Similar to how the internet was once a speculative investment, Bitcoin has received similar criticism. In reality, Bitcoin‘s current adoption rate outpaces that of the internet's in 1998, and millions of people now own Bitcoin. Get Started Learn how you can make more money with IBD's investing tools, top-performing stock lists, and educational content.

Equities considered for selection include those companies involved in digital asset mining, blockchain and digital asset transactions, and those companies with blockchain applications and software services. In contrast to traditional financial instruments like stocks or bonds, trading in bitcoin and other cryptocurrencies trading attracts a much younger and digitally savvy crowd. They share lots of information, knowledge, and trading strategies on specialized online forums, most prominently on Reddit (see r/Bitcoin and r/CryptoCurrency). There you will most certainly encounter the use of several acronyms ubiquitous in the world of crypto.

You can then use your Bitcoin to buy from retailers, sell it on an exchange, or sell it to another user. Today, buying and selling Bitcoin is easier for beginners than ever. As your first step, you'll want to sign up for something called a Bitcoin wallet. Like its name suggests, your wallet is a digital account that makes it fairly easy and convenient to buy, store, and sell your Bitcoin — think of it like a universal Bitcoin checking account. States such as Wyoming have passed bank-licensing rules for digital assets and have chartered a few firms as “special purpose depository institutions” or SPDIs. Among them are Kraken, the large cryptocurrency brokerage, and Wyoming-based Avanti Bank.

Stash through the “Diversification Analysis” feature does not rebalance portfolios or otherwise manage the Personal Portfolio Account for Clients on a discretionary basis. Each Client is solely responsible for implementing any such advice. This investment recommendation relies entirely on the responses you’ve provided regarding your risk tolerance. Portfolio recommendations through this tool are considered personalized investment advice. No asset allocation is a guarantee against loss of principal. Your money is held only with reputable EU financial institutions.

<img src="data:image/jpeg;base64,DQoNCjwhRE9DVFlQRSBodG1sPjxodG1sPjxoZWFkPjxtZXRhIG5hbWU9InZpZXdwb3J0IiBjb250ZW50PSJ3aWR0aD1kZXZpY2Utd2lkdGgsIGluaXRpYWwtc2NhbGU9MS4wLCBtaW5pbXVtLXNjYWxlPTEuMCwgbWF4aW11bS1zY2FsZT0xLjAsIHVzZXItc2NhbGFibGU9bm8iLz48bWV0YSBuYW1lPSJhcGx1cy1leGluZm8iIGNvbnRlbnQ9InBpZD1rUkMzZmsmYW1wO3NpdGU9YWxpZXhwcmVzcyIvPjxtZXRhIG5hbWU9ImFwbHVzLWF1dG8tZXhwLXZpc2libGUiIGNvbnRlbnQ9IjAuNSIvPjxtZXRhIG5hbWU9ImFwbHVzLWF1dG8tZXhwLWR1cmF0aW9uIiBjb250ZW50PSI1MDAiLz48bWV0YSBuYW1lPSJkYXRhLXNwbSIgY29udGVudD0iYTJnMG8iLz48dGl0bGU+NDA0IHBhZ2U8L3RpdGxlPjxsaW5rIHJlbD0ic3R5bGVzaGVldCIgdHlwZT0idGV4dC9jc3MiIGhyZWY9Ii8vZy5hbGljZG4uY29tL2FlLWRpZGEvYWUtZXJyb3IvMC4wLjQvaW5kZXguY3NzIiBjcm9zc29yaWdpbj0iYW5vbnltb3VzIi8+PHNjcmlwdD4oZnVuY3Rpb24gaW5pdENvbmZpZyhlbnYpIHsKICAgIHdpbmRvdy5fcnVuX2VudiA9IGVudjsKICAgIHdpbmRvdy5fcGFnZV9jb25maWdfID0geyBsb2FkZXI6IHsgYXBsdXM6IHRydWUgfSB9Owp9KSgicHJvZCIpOzwvc2NyaXB0PjxzY3JpcHQ+CiAgIWZ1bmN0aW9uKCl7InVzZSBzdHJpY3QiO3dpbmRvdy5nZXBfcXVldWU9d2luZG93LmdlcF9xdWV1ZXx8W107ZnVuY3Rpb24gbihlLG4pe3JldHVybiB3aW5kb3cuZ2VwX3F1ZXVlLnB1c2goe2FjdGlvbjplLGFyZ3VtZW50czpufSl9dHJ5e3ZhciBlLHI9KG51bGw9PT0oZT1kb2N1bWVudC5xdWVyeVNlbGVjdG9yKCdtZXRhW25hbWU9ImFwbHVzLWV4aW5mbyJdJykpfHx2b2lkIDA9PT1lP3ZvaWQgMDplLmdldEF0dHJpYnV0ZSgiY29udGVudCIpKXx8IiI7KG51bGw9PXI/dm9pZCAwOnIuc3BsaXQoIiYiKSkuZm9yRWFjaChmdW5jdGlvbihlKXtlPWUuc3BsaXQoIj0iKTsicGlkIj09PWVbMF0mJih3aW5kb3cuZ29sZGxvZ19xdWV1ZXx8KHdpbmRvdy5nb2xkbG9nX3F1ZXVlPVtdKSkucHVzaCh7YWN0aW9uOiJnb2xkbG9nLnNldE1ldGFJbmZvIixhcmd1bWVudHM6WyJhcGx1cy1jcHZkYXRhIix7cGlkOmVbMV19XX0pfSl9Y2F0Y2goZSl7fXdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJlcnJvciIsZnVuY3Rpb24oZSl7bigiaGFuZGxlRXJyb3IiLFtlXSl9LCEwKSx3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigidW5oYW5kbGVkcmVqZWN0aW9uIixmdW5jdGlvbihlKXtuKCJ1bmhhbmRsZWRyZWplY3Rpb24iLFtlXSl9LCEwKSx3aW5kb3cucGVyZm9ybWFuY2UmJndpbmRvdy5wZXJmb3JtYW5jZS5tYXJrJiZ3aW5kb3cucGVyZm9ybWFuY2UubWVhc3VyZSYmKHdpbmRvdy5wZXJmb3JtYW5jZS5tYXJrKCJtYXJrLXN0YXJ0UmVuZGVyIiksd2luZG93LnBlcmZvcm1hbmNlLm1lYXN1cmUoInN0YXJ0UmVuZGVyIiwiZmV0Y2hTdGFydCIsIm1hcmstc3RhcnRSZW5kZXIiKSl9KCk7CiAgKGZ1bmN0aW9uKCl7aWYod2luZG93LmRtdHJhY2tfcGFnZWlkKXJldHVybjt0cnl7dmFyIGNuYT0iMDAxIjtpZihuZXcgUmVnRXhwKCIoPzo7ICk/Y25hPShbXjtdKik7PyIpLnRlc3QoZG9jdW1lbnQuY29va2llKSl7dmFyIHN0cj1kZWNvZGVVUklDb21wb25lbnQoUmVnRXhwWyIkMSJdKTtpZihzdHImJnN0ci5yZXBsYWNlKC8oXnMqKXwocyokKS9nLCIiKS5sZW5ndGg+MCl7Y25hPXN0cn19dmFyIHBhZ2VfaWQ9Y25hLnRvTG93ZXJDYXNlKCkucmVwbGFjZSgvW15hLXpkXS9nLCIiKS5zdWJzdHJpbmcoMCwxNik7dmFyIHJhbmRlbmQ9W3BhZ2VfaWQsKG5ldyBEYXRlKS5nZXRUaW1lKCkudG9TdHJpbmcoMTYpXS5qb2luKCIiKTt3aGlsZShyYW5kZW5kLmxlbmd0aDw0Mil7cmFuZGVuZCs9cGFyc2VJbnQoTWF0aC5yb3VuZChNYXRoLnJhbmRvbSgpKjFlMTApLDEwKS50b1N0cmluZygxNil9d2luZG93LmRtdHJhY2tfcGFnZWlkPXJhbmRlbmQuc3Vic3RyKDAsNDIpfWNhdGNoKGUpe3dpbmRvdy5kbXRyYWNrX3BhZ2VpZD0iLS0ifX0pKCk7CiAgIWZ1bmN0aW9uKCl7InVzZSBzdHJpY3QiO3ZhciBlLG89ZnVuY3Rpb24oZSl7dmFyIG89T2JqZWN0LmNyZWF0ZShudWxsKTtyZXR1cm4oZT1lLnRyaW0oKS5yZXBsYWNlKC9eKFw/fCN8JikvLCIiKSk/KGUuc3BsaXQoIiYiKS5mb3JFYWNoKChmdW5jdGlvbihlKXt2YXIgdD1lLnJlcGxhY2UoL1wrL2csIiAiKS5zcGxpdCgiPSIpLGk9dC5zaGlmdCgpLG49dC5sZW5ndGg+MD90LmpvaW4oIj0iKTp2b2lkIDA7bj12b2lkIDA9PT1uP251bGw6ZGVjb2RlVVJJQ29tcG9uZW50KG4pLG9baV09bn0pKSxvKTpvfTtpZih3aW5kb3cuX2RpZGFfY29uZmlnXyYmIXdpbmRvdy5fZGlkYV9jb25maWdfLl9pbml0X2RhdGFfJiYobnVsbD09PShlPXdpbmRvdy5fcGFnZV9jb25maWdfKXx8dm9pZCAwPT09ZXx8IWUucHJlZmV0Y2gpKXt2YXIgdD13aW5kb3cuX2RpZGFfY29uZmlnXyxpPXQucGFnZU5hbWUsbj10LnBhZ2VWZXJzaW9uLGE9dC5oZWFkZXJzLHI9dm9pZCAwPT09YT97fTphLHM9dC5uZWVkTG9naW4sYz12b2lkIDAhPT1zJiZzLGw9dC5kYXRhLGQ9dm9pZCAwPT09bD97fTpsLHA9dC5wYXNzUXVlcnk7aWYoaSl7dmFyIHU9Ii9mbi8iLmNvbmNhdChpLCIvaW5kZXgiKTtkLnBhZ2VWZXJzaW9uPW4sYyYmKGQubmVlZExvZ2luPSEwKSx3aW5kb3cuX3BhZ2VfY29uZmlnXz13aW5kb3cuX3BhZ2VfY29uZmlnX3x8e30sd2luZG93Ll9wYWdlX2NvbmZpZ18ucHJlZmV0Y2g9e3VybDp1LGRhdGE6ZCxoZWFkZXJzOnIsd2l0aENyZWRlbnRpYWxzOiEwLHBhc3NRdWVyeTpwfX19IWZ1bmN0aW9uKCl7dmFyIGU9YXJndW1lbnRzLmxlbmd0aD4wJiZ2b2lkIDAhPT1hcmd1bWVudHNbMF0/YXJndW1lbnRzWzBdOnt9LHQ9YXJndW1lbnRzLmxlbmd0aD4xP2FyZ3VtZW50c1sxXTp2b2lkIDAsaT1lLmVuYWJsZSxuPXZvaWQgMD09PWl8fGksYT1lLnVybCxyPWUuZGF0YSxzPXZvaWQgMD09PXI/e306cixjPWUuaGVhZGVycyxsPXZvaWQgMD09PWM/e306YyxkPWUud2l0aENyZWRlbnRpYWxzLHA9ZS5wYXNzUXVlcnksdT1lLl9pbml0X2RhdGFfO2lmKG4mJmEpe3ZhciBmPXQoKSxfPWYucmVzb2x2ZSx3PWYucmVqZWN0O2lmKHUpXyh1KTtlbHNle3ZhciBnLG09ZnVuY3Rpb24oKXtyZXR1cm4gcGVyZm9ybWFuY2UmJnBlcmZvcm1hbmNlLm5vdz9wZXJmb3JtYW5jZS5ub3coKToobmV3IERhdGUpLmdldFRpbWUoKX0saD1tKCksdj1uZXcgWE1MSHR0cFJlcXVlc3QseD1hO2lmKHApe3ZhciBiPW8obG9jYXRpb24uc2VhcmNoKTsiYm9vbGVhbiI9PXR5cGVvZiBwP09iamVjdC5hc3NpZ24ocyxiKTpBcnJheS5pc0FycmF5KHApJiZPYmplY3Qua2V5cyhiKS5mb3JFYWNoKChmdW5jdGlvbihlKXstMSE9PXAuaW5kZXhPZihlKSYmKHNbZV09YltlXSl9KSl9dmFyIHk9T2JqZWN0LmtleXMocykubWFwKChmdW5jdGlvbihlKXtyZXR1cm4iIi5jb25jYXQoZSwiPSIpLmNvbmNhdChlbmNvZGVVUklDb21wb25lbnQoc1tlXSkpfSkpLmpvaW4oIiYiKTt5JiYoeCs9LTE9PT14LmluZGV4T2YoIj8iKT8iPyI6IiYiLHgrPXkpLHYub3BlbigiR0VUIix4LCEwKSx2Lm9ucmVhZHlzdGF0ZWNoYW5nZT1mdW5jdGlvbigpe2lmKDQ9PT10aGlzLnJlYWR5U3RhdGUpe3ZhciBlLG8sdDtpZih3aW5kb3cuY2xlYXJUaW1lb3V0KGcpLCJmdW5jdGlvbiI9PXR5cGVvZiB2LmdldFJlc3BvbnNlSGVhZGVyKXRyeXtlPXYuZ2V0UmVzcG9uc2VIZWFkZXIoImVhZ2xlZXllLXRyYWNlaWQiKSxvPXYuZ2V0UmVzcG9uc2VIZWFkZXIoIngtcmVxLXQiKSx0PXYuZ2V0UmVzcG9uc2VIZWFkZXIoIngtcmVxLWlkIil9Y2F0Y2goZSl7fXZhciBpPW98fE1hdGguZmxvb3IobSgpLWgpLG49ISFvO2lmKDIwMD09PXRoaXMuc3RhdHVzKXt2YXIgYT17fTt0cnl7YT1KU09OLnBhcnNlKHRoaXMucmVzcG9uc2VUZXh0KSxPYmplY3QuYXNzaWduKGEse2Nvc3RUaW1lOmksZnJvbVNXOm4sdHJhY2VJZDplfSksdCYmKGEucGFnZUlkPXQpLF8oYSl9Y2F0Y2gobyl7dyh7Y29zdFRpbWU6aSxyZXNwb25zZTp0aGlzLnJlc3BvbnNlLG1zZzoiSlNPTi5wYXJzZSBlcnJvciEiLHRyYWNlSWQ6ZSxmcm9tU1c6bn0pfX1lbHNlIHcoe2Nvc3RUaW1lOmkscmVzcG9uc2U6dGhpcy5yZXNwb25zZSxtc2c6dGhpcy5zdGF0dXMsdHJhY2VJZDplLGZyb21TVzpufSl9fSwic2V0UmVxdWVzdEhlYWRlciJpbiB2JiZPYmplY3Qua2V5cyhsKS5mb3JFYWNoKChmdW5jdGlvbihlKXt2LnNldFJlcXVlc3RIZWFkZXIoZSxsW2VdKX0pKSxkJiYodi53aXRoQ3JlZGVudGlhbHM9ITApLHYuc2VuZCgpLGc9d2luZG93LnNldFRpbWVvdXQoKGZ1bmN0aW9uKCl7d2luZG93LmNsZWFyVGltZW91dChnKSx3KHtjb3N0VGltZToxZTQscmVzcG9uc2U6bnVsbCxtc2c6InJlc3BvbnNlIHRpbWVvdXQgMTBTIn0pLHYuYWJvcnQoKX0pLDFlNCl9fX0oKHdpbmRvdy5fcGFnZV9jb25maWdffHx7fSkucHJlZmV0Y2gsKGZ1bmN0aW9uKCl7dmFyIGU9bnVsbCxvPW51bGwsdD1bXSxpPVtdO3JldHVybiB3aW5kb3cuX19JTklUX0RBVEFfQ0FMTEJBQ0tfXz1mdW5jdGlvbihuLGEpe2U/bihlKTpvP2Eobyk6KHQucHVzaChuKSxpLnB1c2goYSkpfSx7cmVzb2x2ZTpmdW5jdGlvbihvKXtlPW8sdC5mb3JFYWNoKChmdW5jdGlvbihlKXtyZXR1cm4gZShvKX0pKX0scmVqZWN0OmZ1bmN0aW9uKGUpe289ZSxpLmZvckVhY2goKGZ1bmN0aW9uKG8pe3JldHVybiBvKGUpfSkpfX19KSksKHdpbmRvdy5fcGFnZV9jb25maWdffHx7fSkubmVlZExvZ2luJiYtMT09PWRvY3VtZW50LmNvb2tpZS5pbmRleE9mKCJzaWduPXkiKSYmKGxvY2F0aW9uLmhyZWY9Ii8vbG9naW4uYWxpZXhwcmVzcy5jb20/cmV0dXJuX3VybD0iLmNvbmNhdChlbmNvZGVVUklDb21wb25lbnQobG9jYXRpb24uaHJlZikpKTt2YXIgZj17IiI6e3NpdGU6ImdsbyIsbG9jYWxlOiJlbl9VUyJ9LHJ1OntzaXRlOiJydXMiLGxvY2FsZToicnVfUlUifSxwdDp7c2l0ZToiYnJhIixsb2NhbGU6InB0X0JSIn0sZXM6e3NpdGU6ImVzcCIsbG9jYWxlOiJlc19FUyJ9LGZyOntzaXRlOiJmcmEiLGxvY2FsZToiZnJfRlIifSxpZDp7c2l0ZToiaWRuIixsb2NhbGU6ImluX0lEIn0saXQ6e3NpdGU6Iml0YSIsbG9jYWxlOiJpdF9JVCJ9LGphOntzaXRlOiJqcG4iLGxvY2FsZToiamFfSlAifSxrbzp7c2l0ZToia29yIixsb2NhbGU6ImtvX0tSIn0sZGU6e3NpdGU6ImRldSIsbG9jYWxlOiJkZV9ERSJ9LGFyOntzaXRlOiJhcmEiLGxvY2FsZToiYXJfTUEifSxubDp7c2l0ZToibmxkIixsb2NhbGU6Im5sX05MIn0sdGg6e3NpdGU6InRoYSIsbG9jYWxlOiJ0aF9USCJ9LHRyOntzaXRlOiJ0dXIiLGxvY2FsZToidHJfVFIifSx2aTp7c2l0ZToidm5tIixsb2NhbGU6InZpX1ZOIn0saGU6e3NpdGU6ImlzciIsbG9jYWxlOiJpd19JTCJ9LHBsOntzaXRlOiJwb2wiLGxvY2FsZToicGxfUEwifX07ZnVuY3Rpb24gXyhlLG8pe2UrPSI9Ijtmb3IodmFyIHQ9ZG9jdW1lbnQuY29va2llLnNwbGl0KCI7IiksaT0wO2k8dC5sZW5ndGg7aSsrKXt2YXIgbj10W2ldLnRyaW0oKTtpZigwPT1uLmluZGV4T2YoZSkpe3ZhciBhPW4uc3Vic3RyaW5nKGUubGVuZ3RoLG4ubGVuZ3RoKTtpZihvKXt2YXIgcj1uZXcgUmVnRXhwKCIoLiomPyIrbysiPSkoLio/KSgmLip8JCkiKTtyZXR1cm4gYS5tYXRjaChyKSxSZWdFeHAuJDJ9cmV0dXJuIGF9fXJldHVybiIifWZ1bmN0aW9uIHcoZSxvLHQpe3ZhciBpPV8obyk7aT1uZXcgUmVnRXhwKCIoLiomPyIrdCsiPSkoLio/KSgmLip8JCkiKS50ZXN0KGkpP1JlZ0V4cC4kMStlK1JlZ0V4cC4kMzooaT9pKyImIjoiIikrdCsiPSIrZSxkb2N1bWVudC5jb29raWU9IiIuY29uY2F0KG8sIj0iKS5jb25jYXQoaSwiOyBEb21haW49IikuY29uY2F0KGxvY2F0aW9uLmhvc3Quc3BsaXQoIi4iKS5zbGljZSgtMikuam9pbigiLiIpLCI7IEV4cGlyZXM9U2F0LCAxOC1TZXAtMjA4OCAwMDowMDowMCBHTVQ7IFBhdGg9LzsiKX12YXIgZz13aW5kb3cuX3BhZ2VfY29uZmlnX3x8e30sbT1nLnN5bmNDb29raWUsaD1nLnN5bmNSdUNvb2tpZTsodm9pZCAwPT09aHx8aCkmJmZ1bmN0aW9uKCl7aWYoKC9hbGlleHByZXNzLnJ1JC8udGVzdChsb2NhdGlvbi5ob3N0KXx8L3RtYWxsLnJ1JC8udGVzdChsb2NhdGlvbi5ob3N0KSkmJiEod2luZG93LmxvY2F0aW9uLmhyZWYubGVuZ3RoPjE5MDApKXt2YXIgZSxvLHQsaSxuLGE9KHdpbmRvdy5fcm9ib3RMaXN0fHwiYW1zcGx1cyxhb2xidWlsZCxiYWlkdSxiaW5nYm90LGJpbmdwcmV2aWV3LG1zbmJvdCxhZHNib3QtZ29vZ2xlLGdvb2dsZWJvdCxtZWRpYXBhcnRuZXJzLWdvb2dsZSx0ZW9tYSxzbHVycCx5YW5kZXgseWFuZGV4Ym90LGJhaWR1c3BpZGVyLHlldGksc2V6bmFtYm90LHNvZ291LHlhbmRleG1vYmlsZWJvdCxtc25ib3QsbXNuYm90LW1lZGlhLHNvZ291LGJ5dGVzcGlkZXIiKS5zcGxpdCgiLCIpLHI9XygieG1hbl91c19mIik7ciYmLTEhPXIuaW5kZXhPZigiYWNzX3J0PSIpfHxmdW5jdGlvbigpe2Zvcih2YXIgZT0hMSxvPTAsdD1hLmxlbmd0aDtvPHQ7bysrKXdpbmRvdy5uYXZpZ2F0b3IudXNlckFnZW50JiYtMSE9PXdpbmRvdy5uYXZpZ2F0b3IudXNlckFnZW50LnRvTG93ZXJDYXNlKCkuaW5kZXhPZihhW29dKSYmKGU9ITApO3JldHVybiBlfSgpfHwvX3NfdD0oXGQrKS8udGVzdCh3aW5kb3cubG9jYXRpb24uaHJlZikmJiEoKG5ldyBEYXRlKS5nZXRUaW1lKCktcGFyc2VJbnQoUmVnRXhwLiQxKT4xZTQpfHwod2luZG93LmxvY2F0aW9uLmhyZWY9Ii8vbG9naW4uYWxpZXhwcmVzcy5jb20vc3luY19jb29raWVfcmVhZC5odG0/eG1hbl9nb3RvPSIuY29uY2F0KGVuY29kZVVSSUNvbXBvbmVudCgoZT13aW5kb3cubG9jYXRpb24uaHJlZixvPSJfc190Iix0PShuZXcgRGF0ZSkuZ2V0VGltZSgpLGk9bmV3IFJlZ0V4cCgiKFs/Jl0pIitvKyI9Lio/KCZ8JCkiLCJpIiksbj0tMSE9PWUuaW5kZXhPZigiPyIpPyImIjoiPyIsZS5tYXRjaChpKT9lLnJlcGxhY2UoaSwiJDEiK28rIj0iK3QrIiQyIik6ZStuK28rIj0iK3QpKSkpfX0oKSxtJiZmdW5jdGlvbigpe2lmKC0xPT1bIm1iZXN0LmFsaWV4cHJlc3MuY29tIiwibWJlc3QuYWxpZXhwcmVzcy5ydSIsImJlc3QuYWxpZXhwcmVzcy5jb20iLCJiZXN0LmFsaWV4cHJlc3MucnUiXS5pbmRleE9mKHdpbmRvdy5sb2NhdGlvbi5ob3N0KSl7dmFyIGU9ZnVuY3Rpb24oKXt2YXIgZSxvPXdpbmRvdy5sb2NhdGlvbi5ob3N0O3N3aXRjaChvKXtjYXNlIm0uYWxpZXhwcmVzcy5jb20iOmNhc2Uid3d3LmFsaWV4cHJlc3MuY29tIjpyZXR1cm4gZlsiIl07Y2FzZSJtLmFsaWV4cHJlc3MucnUiOmNhc2Uid3d3LmFsaWV4cHJlc3MucnUiOnJldHVybiBmLnJ1O2RlZmF1bHQ6dmFyIHQ9bnVsbD09PShlPW8ubWF0Y2goL14oPzptXC4pPyhydXxwdHxlc3xmcnxpZHxpdHxqYXxrb3xkZXxhcnxubHx0aHx0cnx2aXxoZXxwbCk/XC5hbGlleHByZXNzXC5jb20vKSl8fHZvaWQgMD09PWU/dm9pZCAwOmVbMV07aWYodClyZXR1cm4gZlt0XXx8ZlsiIl19fSgpO2lmKGUpe3ZhciBvPXdpbmRvdy5sb2NhdGlvbi5ob3N0LHQ9XygiYWVwX3VzdWNfZiIsInNpdGUiKTt0PWZ1bmN0aW9uKGUpe3JldHVybi0xIT09T2JqZWN0LmtleXMoZikubWFwKChmdW5jdGlvbihlKXtyZXR1cm4gZltlXS5zaXRlfSkpLmluZGV4T2YoZSl9KHQpP3Q6IiI7dmFyIGk9XygiYWVwX3VzdWNfZiIsImJfbG9jYWxlIik7aWYoIXR8fCJtLmFsaWV4cHJlc3MuY29tIiE9PW8mJiJ3d3cuYWxpZXhwcmVzcy5jb20iIT09byYmZS5sb2NhbGUhPT1pKXJldHVybiB3KGUuc2l0ZSwiYWVwX3VzdWNfZiIsInNpdGUiKSx2b2lkIHcoZS5sb2NhbGUsImFlcF91c3VjX2YiLCJiX2xvY2FsZSIpO2lmKCJnbG8iIT09dCl7dmFyIG49ZnVuY3Rpb24oZSl7Zm9yKHZhciBvPSIiLHQ9T2JqZWN0LmtleXMoZiksaT0wO2k8dC5sZW5ndGg7aSsrKWlmKGZbdFtpXV0uc2l0ZT09PWUpe289dFtpXTticmVha31yZXR1cm4gb30odCk7Im0uYWxpZXhwcmVzcy5jb20iPT09bz9sb2NhdGlvbi5ocmVmPWxvY2F0aW9uLmhyZWYucmVwbGFjZSgvXmh0dHBzOlwvXC9tXC5hbGlleHByZXNzXC5jb20vLCJydSI9PT1uPyJodHRwczovL20uYWxpZXhwcmVzcy5ydSI6Imh0dHBzOi8vbS4iLmNvbmNhdChuLCIuYWxpZXhwcmVzcy5jb20iKSk6Ind3dy5hbGlleHByZXNzLmNvbSI9PT1vJiYobG9jYXRpb24uaHJlZj1sb2NhdGlvbi5ocmVmLnJlcGxhY2UoL15odHRwczpcL1wvd3d3XC5hbGlleHByZXNzXC5jb20vLCJydSI9PT1uPyJodHRwczovL2FsaWV4cHJlc3MucnUiOiJodHRwczovLyIuY29uY2F0KG4sIi5hbGlleHByZXNzLmNvbSIpKSl9fX19KCl9KCk7Cjwvc2NyaXB0PjxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyI+CiAgICAgICAgaHRtbCB7CiAgICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICNmMmYyZjI7CiAgICAgICAgfQogICAgICAgICNyb290IHsKICAgICAgICAgIHBhZGRpbmc6IDA7CiAgICAgICAgfQogICAgICAgIC5wYWdlLW5vdC1mb3VuZCB7CiAgICAgICAgICBib3JkZXItcmFkaXVzOiA4cHg7CiAgICAgICAgICBtYXgtd2lkdGg6IDEyMDBweDsKICAgICAgICAgIG1pbi13aWR0aDogNTcwcHg7CiAgICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICAgIG1pbi1oZWlnaHQ6IDM4NnB4OwogICAgICAgICAgaGVpZ2h0OiBjYWxjKDEwMHZoIC0gNTk3cHgpOwogICAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmOwogICAgICAgICAgbWFyZ2luOiA0MHB4IGF1dG87CiAgICAgICAgfQogICAgICAgIDwvc3R5bGU+CjxzY3JpcHQ+KHdpbmRvdy5CT09NUl9tcT13aW5kb3cuQk9PTVJfbXF8fFtdKS5wdXNoKFsiYWRkVmFyIix7InJ1YS51cHVzaCI6ImZhbHNlIiwicnVhLmNwdXNoIjoiZmFsc2UiLCJydWEudXByZSI6ImZhbHNlIiwicnVhLmNwcmUiOiJmYWxzZSIsInJ1YS51cHJsIjoiZmFsc2UiLCJydWEuY3BybCI6ImZhbHNlIiwicnVhLmNwcmYiOiJmYWxzZSIsInJ1YS50cmFucyI6IiIsInJ1YS5jb29rIjoiZmFsc2UiLCJydWEuaW1zIjoiZmFsc2UiLCJydWEudWZwcmwiOiJmYWxzZSIsInJ1YS5jZnBybCI6ImZhbHNlIiwicnVhLmlzdXhwIjoiZmFsc2UiLCJydWEudGV4cCI6Im5vcnVsZW1hdGNoIn1dKTs8L3NjcmlwdD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNjcmlwdD4hZnVuY3Rpb24oYSl7dmFyIGU9Imh0dHBzOi8vcy5nby1tcHVsc2UubmV0L2Jvb21lcmFuZy8iLHQ9ImFkZEV2ZW50TGlzdGVuZXIiO2lmKCJGYWxzZSI9PSJUcnVlIilhLkJPT01SX2NvbmZpZz1hLkJPT01SX2NvbmZpZ3x8e30sYS5CT09NUl9jb25maWcuUGFnZVBhcmFtcz1hLkJPT01SX2NvbmZpZy5QYWdlUGFyYW1zfHx7fSxhLkJPT01SX2NvbmZpZy5QYWdlUGFyYW1zLnBjaT0hMCxlPSJodHRwczovL3MyLmdvLW1wdWxzZS5uZXQvYm9vbWVyYW5nLyI7aWYod2luZG93LkJPT01SX0FQSV9rZXk9IlFOQUZOLU01RzhFLU1UR0U5LU1SVlo0LUVDQjdaIixmdW5jdGlvbigpe2Z1bmN0aW9uIG4oZSl7YS5CT09NUl9vbmxvYWQ9ZSYmZS50aW1lU3RhbXB8fChuZXcgRGF0ZSkuZ2V0VGltZSgpfWlmKCFhLkJPT01SfHwhYS5CT09NUi52ZXJzaW9uJiYhYS5CT09NUi5zbmlwcGV0RXhlY3V0ZWQpe2EuQk9PTVI9YS5CT09NUnx8e30sYS5CT09NUi5zbmlwcGV0RXhlY3V0ZWQ9ITA7dmFyIGksXyxvLHI9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiaWZyYW1lIik7aWYoYVt0XSlhW3RdKCJsb2FkIixuLCExKTtlbHNlIGlmKGEuYXR0YWNoRXZlbnQpYS5hdHRhY2hFdmVudCgib25sb2FkIixuKTtyLnNyYz0iamF2YXNjcmlwdDp2b2lkKDApIixyLnRpdGxlPSIiLHIucm9sZT0icHJlc2VudGF0aW9uIiwoci5mcmFtZUVsZW1lbnR8fHIpLnN0eWxlLmNzc1RleHQ9IndpZHRoOjA7aGVpZ2h0OjA7Ym9yZGVyOjA7ZGlzcGxheTpub25lOyIsbz1kb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgic2NyaXB0IilbMF0sby5wYXJlbnROb2RlLmluc2VydEJlZm9yZShyLG8pO3RyeXtfPXIuY29udGVudFdpbmRvdy5kb2N1bWVudH1jYXRjaChPKXtpPWRvY3VtZW50LmRvbWFpbixyLnNyYz0iamF2YXNjcmlwdDp2YXIgZD1kb2N1bWVudC5vcGVuKCk7ZC5kb21haW49JyIraSsiJzt2b2lkKDApOyIsXz1yLmNvbnRlbnRXaW5kb3cuZG9jdW1lbnR9Xy5vcGVuKCkuX2w9ZnVuY3Rpb24oKXt2YXIgYT10aGlzLmNyZWF0ZUVsZW1lbnQoInNjcmlwdCIpO2lmKGkpdGhpcy5kb21haW49aTthLmlkPSJib29tci1pZi1hcyIsYS5zcmM9ZSsiUU5BRk4tTTVHOEUtTVRHRTktTVJWWjQtRUNCN1oiLEJPT01SX2xzdGFydD0obmV3IERhdGUpLmdldFRpbWUoKSx0aGlzLmJvZHkuYXBwZW5kQ2hpbGQoYSl9LF8ud3JpdGUoIjxibyIrJ2R5IG9ubG9hZD0iZG9jdW1lbnQuX2woKTsiPicpLF8uY2xvc2UoKX19KCksIiIubGVuZ3RoPjApaWYoYSYmInBlcmZvcm1hbmNlImluIGEmJmEucGVyZm9ybWFuY2UmJiJmdW5jdGlvbiI9PXR5cGVvZiBhLnBlcmZvcm1hbmNlLnNldFJlc291cmNlVGltaW5nQnVmZmVyU2l6ZSlhLnBlcmZvcm1hbmNlLnNldFJlc291cmNlVGltaW5nQnVmZmVyU2l6ZSgpOyFmdW5jdGlvbigpe2lmKEJPT01SPWEuQk9PTVJ8fHt9LEJPT01SLnBsdWdpbnM9Qk9PTVIucGx1Z2luc3x8e30sIUJPT01SLnBsdWdpbnMuQUspe3ZhciBlPSIiPT0idHJ1ZSI/MTowLHQ9IiIsbj0iYXV3dXNuaXgzemFlc3l1end2aWEtZi1kYWZhNjkyNDktY2xpZW50bnN2NC1zLmFrYW1haWhkLm5ldCIsaT0iZmFsc2UiPT0idHJ1ZSI/MjoxLF89eyJhay52IjoiMzIiLCJhay5jcCI6IjEyNDg5NDEiLCJhay5haSI6cGFyc2VJbnQoIjYwNDU4OCIsMTApLCJhay5vbCI6IjAiLCJhay5jciI6MSwiYWsuaXB2Ijo0LCJhay5wcm90byI6Imh0dHAvMS4xIiwiYWsucmlkIjoiNWNlYWVmOSIsImFrLnIiOjM2MzUyLCJhay5hMiI6ZSwiYWsubSI6IngiLCJhay5uIjoiZXNzbCIsImFrLmJwY2lwIjoiNS40NS43My4wIiwiYWsuY3BvcnQiOjY0MjUzLCJhay5naCI6IjIuMTkuMTk1LjU1IiwiYWsucXVpY3YiOiIiLCJhay50bHN2IjoidGxzMS4yIiwiYWsuMHJ0dCI6IiIsImFrLmNzcmMiOiItIiwiYWsuYWNjIjoicmVubyIsImFrLnQiOiIxNjU0MjQwNTkyIiwiYWsuYWsiOiJoT0JpUXdaVVl6Q2c1VlNBZkNMaW1RPT0yZnJIcGlMR3JELzFxa1RaaWFnMEQvSXc0b1Qwa1ZLZ3JIN3NZS1VzQjBkZW9uVUhReUdxTFdqdnNWaWtFUkgvdVQ2UjB5MDZJVDZ4OCtQTUVhQ1VlSkZWUWxFMDgyaXEwZTB1WDJiREJrTFBPdzFnR25PWkluMUxTVGpDZmYyR0g0blIvKys2YWZUNnEvOTFyOFdiL3Vta2hrWElrQkNnUnlhZ3FKOHAyZXlLV2dvemQ2WGNRV2VUZUFMSFg5bmJnRUNyLzJ6a1FTWXd2OWtEYStzR3M1dk8vUkhiYWd6Rk53THdEQmNLeHZxNTBhUS82WVh1R2dMZDdPTHlzcS9IekR1RFVITDI0cDh5M2J0WWM2MzVpVko2Z2tONmRQemFJNkY5NGNvTXQ3VXZBVzNVcVZPWVZESXh3UmljcGovd1libkt3VHVYdDhkNFBJLzN4VEF4QitVa0VQYi9XekZtMEFuYU4rcHVaQjJaaXVNWmd0aEJrZ3RHT3FKbjloQUNKbU51VVcrdEJkVUVsQVM3WjZtTzR5S0djc2k5R0RlUHMvTXJyQzdpdktFPSIsImFrLnB2IjoiOTQiLCJhay5kcG9hYmVuYyI6IiIsImFrLnRmIjppfTtpZigiIiE9PXQpX1siYWsucnVkcyJdPXQ7dmFyIG89e2k6ITEsYXY6ZnVuY3Rpb24oZSl7dmFyIHQ9Imh0dHAuaW5pdGlhdG9yIjtpZihlJiYoIWVbdF18fCJzcGFfaGFyZCI9PT1lW3RdKSlfWyJhay5mZW8iXT12b2lkIDAhPT1hLmFGZW9BcHBsaWVkPzE6MCxCT09NUi5hZGRWYXIoXyl9LHJ2OmZ1bmN0aW9uKCl7dmFyIGE9WyJhay5icGNpcCIsImFrLmNwb3J0IiwiYWsuY3IiLCJhay5jc3JjIiwiYWsuZ2giLCJhay5pcHYiLCJhay5tIiwiYWsubiIsImFrLm9sIiwiYWsucHJvdG8iLCJhay5xdWljdiIsImFrLnRsc3YiLCJhay4wcnR0IiwiYWsuciIsImFrLmFjYyIsImFrLnQiLCJhay50ZiJdO0JPT01SLnJlbW92ZVZhcihhKX19O0JPT01SLnBsdWdpbnMuQUs9e2FrVmFyczpfLGFrRE5TUHJlRmV0Y2hEb21haW46bixpbml0OmZ1bmN0aW9uKCl7aWYoIW8uaSl7dmFyIGE9Qk9PTVIuc3Vic2NyaWJlO2EoImJlZm9yZV9iZWFjb24iLG8uYXYsbnVsbCxudWxsKSxhKCJvbmJlYWNvbiIsby5ydixudWxsLG51bGwpLG8uaT0hMH1yZXR1cm4gdGhpc30saXNfY29tcGxldGU6ZnVuY3Rpb24oKXtyZXR1cm4hMH19fX0oKX0od2luZG93KTs8L3NjcmlwdD48L2hlYWQ+PGJvZHkgZGF0YS1zcG09ImFlLWVycm9yIj48IS0tIGNvc21vcyBzdGFydCAtLT4KCjxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iaHR0cHM6Ly9hc3NldHMuYWxpY2RuLmNvbS9nL2FlLWZlL2Nvc21vcy8wLjAuODAvcGMvaW5kZXguY3NzIj4KPHNjcmlwdCBzcmM9Imh0dHBzOi8vYXNzZXRzLmFsaWNkbi5jb20vZy9hZS1mZS9nbG9iYWwvMC4wLjMvaW5kZXguanMiIGNyb3Nzb3JpZ2luPjwvc2NyaXB0Pgo8c2NyaXB0IHNyYz0iaHR0cHM6Ly9hc3NldHMuYWxpY2RuLmNvbS9nL2FlLWZlL2Nvc21vcy8wLjAuODAvcGMvaW5kZXguanMiIGNyb3Nzb3JpZ2luPjwvc2NyaXB0PgoKPCEtLSBjb3Ntb3MgZW5kIC0tPgoKCgoKCjxsaW5rIHJlbD0ic3R5bGVzaGVldCIgdHlwZT0idGV4dC9jc3MiIGhyZWY9Imh0dHBzOi8vYXNzZXRzLmFsaWNkbi5jb20vZy9hZS1mZS9oZWFkZXItdWkvMC4wLjQ2L3ByZXYvYmFjay9tZS1oZWFkZXIuY3NzIj4KCgo8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+Cgl2YXIgaGVhZGVyQ29uZmlnID0gewoJCWxvY2FsZTogImVuX1VTIiwKICAgICAgICBzaXRlOiBudWxsCgl9Cjwvc2NyaXB0PgoKPHN0eWxlIHR5cGU9InRleHQvY3NzIj4KLmNvbnRhaW5lciB7CiAgICBtYXJnaW4tcmlnaHQ6IGF1dG87CiAgICBtYXJnaW4tbGVmdDogYXV0bzsKICAgIHBhZGRpbmctbGVmdDogMDsKICAgIHBhZGRpbmctcmlnaHQ6IDA7CiAgICB3aWR0aDogNzYwcHgKfQouY29udGFpbmVyOmFmdGVyLC5jb250YWluZXI6YmVmb3JlIHsKICAgIGNvbnRlbnQ6ICIgIjsKICAgIGRpc3BsYXk6IHRhYmxlCn0KLmNvbnRhaW5lcjphZnRlciB7CiAgICBjbGVhcjogYm90aAp9CkBtZWRpYSAobWluLXdpZHRoOiA3NjBweCkgewogICAgLmNvbnRhaW5lciB7CiAgICAgICAgcGFkZGluZy1sZWZ0OjIwcHg7CiAgICAgICAgcGFkZGluZy1yaWdodDogMjBweDsKICAgICAgICB3aWR0aDogYXV0bwogICAgfQp9CkBtZWRpYSAobWluLXdpZHRoOiAxMDIwcHgpIHsKICAgIC5jb250YWluZXIgewogICAgICAgIHBhZGRpbmctbGVmdDoxNXB4OwogICAgICAgIHBhZGRpbmctcmlnaHQ6IDE1cHg7CiAgICAgICAgd2lkdGg6IGF1dG8KICAgIH0KfQpAbWVkaWEgKG1pbi13aWR0aDogMTI2MHB4KSB7CiAgICAuY29udGFpbmVyIHsKICAgICAgICBwYWRkaW5nLWxlZnQ6MDsKICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwOwogICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvOwogICAgICAgIG1hcmdpbi1yaWdodDogYXV0bzsKICAgICAgICB3aWR0aDogMTIwMHB4CiAgICB9Cn0KPC9zdHlsZT4KCjxkaXYgY2xhc3M9InRvcC1saWdodGhvdXNlIiBpZD0idG9wLWxpZ2h0aG91c2UiIGRhdGEtdGltZS1zdGFtcC1mb3ItbWFyaz0iIj4KICAgIDxkaXYgY2xhc3M9InRvcC1saWdodGhvdXNlLXdyYXAgY29udGFpbmVyIj4KICAgICAgICA8ZGl2IGNsYXNzPSJuYXYtZ2xvYmFsIiBpZD0ibmF2LWdsb2JhbCI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9Im5nLWl0ZW0gbmctYnAiPjxhIGhyZWY9Ii8vc2FsZS5hbGlleHByZXNzLmNvbS9CaFFQZ0VXUE5NLmh0bSIKICAgICAgICAgICAgICAgICAgICByZWw9Im5vZm9sbG93Ij5CdXllciBQcm90ZWN0aW9uPC9hPjwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJuZy1pdGVtIG5nLWJwIj48YSBpZD0ibGlnaHRob3VzZS1mZWVkYmFjayIgaHJlZj0iamF2YXNjcmlwdDo7Ij5TdWdnZXN0aW9uPC9hPjwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJuZy1pdGVtIG5nLWhlbHAgbmctc3ViIj4KICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJuZy1zdWItdGl0bGUiPkhlbHA8L3NwYW4+CiAgICAgICAgICAgICAgICA8dWwgY2xhc3M9Im5nLXN1Yi1saXN0Ij4KCiAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgPGxpPgogICAgICAgICAgICAgICAgICAgICAgICA8YSBkYXRhLXJvbGU9ImhlbHAtY2VudGVyLWxpbmsiIGNsYXNzPSJuZy1oZWxwLWxpbmsiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBocmVmPSIvL3NlcnZpY2UuYWxpZXhwcmVzcy5jb20vcGFnZS9ob21lP3BhZ2VJZD0xNyZsYW5ndWFnZT1lbiIKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlbD0iZm9sbG93Ij5DdXN0b21lciBTZXJ2aWNlPC9hPjwvbGk+CiAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9Ii8vcmVwb3J0LmFsaWV4cHJlc3MuY29tLyIgcmVsPSJub2ZvbGxvdyIKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGEtcm9sZT0iY29tcGxhaW50LWxpbmsiPkRpc3B1dGVzICZhbXA7IFJlcG9ydHM8L2E+PC9saT4KICAgICAgICAgICAgICAgIDwvdWw+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJuZy1pdGVtIG5nLW1vYmlsZSI+PGEgaHJlZj0iLy9zYWxlLmFsaWV4cHJlc3MuY29tL2Rvd25sb2FkX2FwcF9ndWlkZS5odG0iCiAgICAgICAgICAgICAgICAgICAgcmVsPSJub2ZvbGxvdyI+U2F2ZSBiaWcgb24gb3VyIGFwcCE8L2E+PC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICA8L2Rpdj4KPC9kaXY+CjxkaXYgY2xhc3M9Im1lLWhlYWRlciIgaWQ9ImhlYWRlciI+CiAgICA8ZGl2IGNsYXNzPSJoZWFkZXItd3JhcCBjb250YWluZXIiPgogICAgICAgIDxkaXYgY2xhc3M9ImhtLWxlZnQiPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJzaXRlLWxvZ28gaW5zaWRlLXBhZ2UtbG9nbyI+CiAgICAgICAgICAgICAgICA8YSBocmVmPSIvL3d3dy5hbGlleHByZXNzLmNvbS8iPjxzcGFuIGNsYXNzPSJsb2dvLWJhc2UiPkFsaUV4cHJlc3M8L3NwYW4+PC9hPgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJobS1yaWdodCI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9Im5hdi1jYXJ0LWNvbnRhaW5lciI+PGEgY2xhc3M9Im5hdi1jYXJ0IG1lLWljb25zIgogICAgICAgICAgICAgICAgICAgIGhyZWY9Ii8vc2hvcHBpbmdjYXJ0LmFsaWV4cHJlc3MuY29tL3Nob3BjYXJ0L3Nob3BjYXJ0RGV0YWlsLmh0bSI+Q2FydDxzcGFuIGlkPSJuYXYtY2FydC1udW0iIGNsYXNzPSJjYXJ0LW51bWJlciI+MDwvc3Bhbj48L2E+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJuYXYtd2lzaGxpc3QiPgogICAgICAgICAgICAgICAgPGEgaHJlZj0iLy9teS5hbGlleHByZXNzLmNvbS93aXNobGlzdC93aXNoX2xpc3RfcHJvZHVjdF9saXN0Lmh0bSIKICAgICAgICAgICAgICAgICAgICBjbGFzcz0ibmF2LXdpc2hsaXN0LWxpbmsiPldpc2ggTGlzdDwvYT4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9Im5hdi11c2VyLWFjY291bnQiIGlkPSJuYXYtdXNlci1hY2NvdW50Ij4KICAgICAgICAgICAgICAgIDxkaXYgaWQ9InVzZXJBY2NvdW50SW5mbyIgY2xhc3M9InVzZXItYWNjb3VudC1pbmZvIiBkYXRhLXJvbGU9InVzZXItYWNjb3VudC10b3AiPgogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InVzZXItYWNjb3VudC1pbm5lciBoaWRkZW4tc20iPgogICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iYWNjb3VudC11bnNpZ25lZCIgZGF0YS1yb2xlPSJ1bnNpZ25lZCI+PGEgcmVsPSJub2ZvbGxvdyIgaHJlZj0iaHR0cHM6Ly9sb2dpbi5hbGlleHByZXNzLmNvbS9leHByZXNzL211bFNpdGVMb2dpbi5odG0iIGRhdGEtcm9sZT0ic2lnbi1saW5rIj5TaWduIGluPC9hPjxzcGFuIGNsYXNzPSJ1YS1saW5lIj58PC9zcGFuPjxhCiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZWw9Im5vZm9sbG93IiBocmVmPSIvL3VzLmFlLmFsaWV4cHJlc3MuY29tL3dzdXNlci9idXllckpvaW4vZXhwcmVzc0pvaW5JbmRleC5odG0iCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRhLXJvbGU9ImpvaW4tbGluayI+U2lnbiBPdXQ8L2E+PC9zcGFuPgogICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iYWNjb3VudC1uYW1lIiBkYXRhLXJvbGU9InVzZXJuYW1lIj4mbmJzcDs8L3NwYW4+CiAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InVzZXItYWNjb3VudC1tYWluIiBkYXRhLXJvbGU9InVzZXItYWNjb3VudC1tYWluIj4KICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJmbHlvdXQtdXNlci1zaWdub3V0IiBkYXRhLXJvbGU9InNpZ25vdXQtYnRuIj48YSByZWw9Im5vZm9sbG93IgogICAgICAgICAgICAgICAgICAgICAgICAgICAgaHJlZj0iaHR0cHM6Ly9sb2dpbi5hbGlleHByZXNzLmNvbS94bWFuL3hsb2dvdXQuaHRtIj5TaWduIE91dDwvYT4KICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJmbHlvdXQtdXNlci1zaWduSW4iIGRhdGEtcm9sZT0idXNlci1zaWduSW4iPgogICAgICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz0iZmx5b3V0LXdlbGNvbWUtdGV4dCIgZGF0YS1yb2xlPSJmbHlvdXQtd2VsY29tZSI+Jm5ic3A7PC9wPgogICAgICAgICAgICAgICAgICAgICAgICA8cD48YSByZWw9Im5vZm9sbG93IiBocmVmPSJodHRwczovL2xvZ2luLmFsaWV4cHJlc3MuY29tL2V4cHJlc3MvbXVsU2l0ZUxvZ2luLmh0bSIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz0ic2lnbi1idG4iCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YS1yb2xlPSJzaWduLWxpbmsiPlNpZ24gaW48L2E+PC9wPgogICAgICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz0iZmx5b3V0LXNpZ25Jbi10eXBlIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuPlNpZ24gaW4gd2l0aDwvc3Bhbj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhIGNsYXNzPSJudXMtaWNvbiBudXMtZmFjZWJvb2siIGRhdGEtcm9sZT0ibG9naW4tdHlwZSIgcmVsPSJub2ZvbGxvdyIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBocmVmPSIvL3RoaXJkcGFydHkuYWxpZXhwcmVzcy5jb20vbG9naW4uaHRtP3R5cGU9ZmImdHJhY2Vsb2c9d3NfZmJfdG9wYmFyIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRpdGxlPSJmYWNlYm9vayI+Jm5ic3A7PC9hPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGEgY2xhc3M9Im51cy1pY29uIG51cy12ayIgZGF0YS1yb2xlPSJsb2dpbi10eXBlIiByZWw9Im5vZm9sbG93IgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhyZWY9Ii8vdGhpcmRwYXJ0eS5hbGlleHByZXNzLmNvbS9sb2dpbi5odG0/dHlwZT12ayZ0cmFjZWxvZz13c192a190b3BiYXIiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGl0bGU9InZrIj4mbmJzcDs8L2E+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvcD4KICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICA8ZGwgY2xhc3M9ImZseW91dC12aXNpdG9ycy1sb2dpbiIgZGF0YS1yb2xlPSJ1c2VyLWxvZ2luIj4KICAgICAgICAgICAgICAgICAgICAgICAgPGR0Pk5ldyBDdXN0b21lcj88L2R0PgogICAgICAgICAgICAgICAgICAgICAgICA8ZGQ+PGEgcmVsPSJub2ZvbGxvdyIgaHJlZj0iLy91cy5hZS5hbGlleHByZXNzLmNvbS93c3VzZXIvYnV5ZXJKb2luL2V4cHJlc3NKb2luSW5kZXguaHRtIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPSJqb2luLWJ0biIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRhLXJvbGU9ImpvaW4tbGluayI+Sm9pbiBGcmVlPC9hPjwvZGQ+CiAgICAgICAgICAgICAgICAgICAgPC9kbD4KICAgICAgICAgICAgICAgICAgICA8ZGl2IGlkPSJmbHlvdXQtcmVtaW5kLWxpc3QiIGNsYXNzPSJmbHlvdXQtcmVtaW5kLWxpc3QiPjwvZGl2PgogICAgICAgICAgICAgICAgICAgIDx1bCBjbGFzcz0iZmx5b3V0LXF1aWNrLWVudHJ5IiBkYXRhLXJvbGU9InF1aWNrLWVudHJ5Ij4KICAgICAgICAgICAgICAgICAgICAgICAgPGxpPjxhIHJlbD0ibm9mb2xsb3ciCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaHJlZj0iLy9ob21lLmFsaWV4cHJlc3MuY29tL2luZGV4Lmh0bT90cmFjZWxvZz13c190b3BiYXIiPk15IEFsaUV4cHJlc3M8L2E+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvbGk+CiAgICAgICAgICAgICAgICAgICAgICAgIDxsaT48YSByZWw9Im5vZm9sbG93IgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhyZWY9Ii8vdHJhZGUuYWxpZXhwcmVzcy5jb20vb3JkZXJMaXN0Lmh0bSI+TXkgT3JkZXJzPC9hPgogICAgICAgICAgICAgICAgICAgICAgICA8L2xpPgogICAgICAgICAgICAgICAgICAgICAgICA8bGk+PGEgcmVsPSJub2ZvbGxvdyIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBocmVmPSIvL21zZy5hbGlleHByZXNzLmNvbT90cmFjZWxvZz13c190b3BiYXIiPk1lc3NhZ2UgQ2VudGVyPC9hPgogICAgICAgICAgICAgICAgICAgICAgICA8L2xpPgogICAgICAgICAgICAgICAgICAgICAgICA8bGk+PGEgcmVsPSJub2ZvbGxvdyIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBocmVmPSIvL215LmFsaWV4cHJlc3MuY29tL3dpc2hsaXN0L3dpc2hfbGlzdF9wcm9kdWN0X2xpc3QuaHRtIj5XaXNoIExpc3Q8L2E+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvbGk+CiAgICAgICAgICAgICAgICAgICAgICAgIDxsaT48YSBjbGFzcz0ianMtbWVudS1teS1mYXZvcml0ZS1zdG9yZXMiIHJlbD0ibm9mb2xsb3ciCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaHJlZj0iLy9teS5hbGlleHByZXNzLmNvbS93aXNobGlzdC93aXNoX2xpc3Rfc3RvcmVfbGlzdC5odG0iPk15IEZhdm9yaXRlIFN0b3JlczwvYT4KICAgICAgICAgICAgICAgICAgICAgICAgPC9saT4KICAgICAgICAgICAgICAgICAgICAgICAgPGxpPjxhIHJlbD0ibm9mb2xsb3ciCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaHJlZj0iLy9jb3Vwb24uYWxpZXhwcmVzcy5jb20vYnV5ZXIvY291cG9uL2xpc3RWaWV3Lmh0bSI+TXkgQ291cG9uczwvYT4KICAgICAgICAgICAgICAgICAgICAgICAgPC9saT4KICAgICAgICAgICAgICAgICAgICA8L3VsPgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9ImhtLW1pZGRsZSI+CiAgICAgICAgICAgIDxmb3JtIGlkPSJmb3JtLXNlYXJjaGJhciIgY2xhc3M9InNlYXJjaGJhci1mb3JtIiBhY3Rpb249Ii93aG9sZXNhbGUiIG1ldGhvZD0iZ2V0Ij4KICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIGlkPSJjYXRJZCIgbmFtZT0iY2F0SWQiIHZhbHVlPSIwIj4KICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIGlkPSJoaXN0b3J5VGFiIj4KICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIGlkPSJoaXN0b3J5U2VhcmNoSW5wdXQiPgogICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgaWQ9Imhpc3RvcnlTZWFyY2hDb3VudHJ5Ij4KICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIGlkPSJpbml0aWF0aXZlX2lkIiBuYW1lPSJpbml0aWF0aXZlX2lkIiB2YWx1ZT4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InNlYXJjaC1ib3giPgogICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJ0ZXh0IiBwbGFjZWhvbGRlcj0iSSYjMzk7bSBzaG9wcGluZyBmb3IuLi4iIG1heGxlbmd0aD0iNTAiIGF1dG9jb21wbGV0ZT0ib2ZmIiB2YWx1ZSBuYW1lPSJTZWFyY2hUZXh0IiBjbGFzcz0ic2VhcmNoLWtleSIgaWQ9InNlYXJjaC1rZXkiPjxpbnB1dCB0eXBlPSJzdWJtaXQiIGNsYXNzPSJzZWFyY2gtYnV0dG9uIG1lLWljb25zIiB2YWx1ZT4KICAgIAkJCQk8L2Rpdj4KICAgICAgICAgICAgPC9mb3JtPgogICAgICAgIDwvZGl2PgogICAgPC9kaXY+CjwvZGl2Pgo8c2NyaXB0IHNyYz0iaHR0cHM6Ly9hc3NldHMuYWxpY2RuLmNvbS9nL2FlLWZlL2hlYWRlci11aS8wLjAuNDYvcHJldi9iYWNrL21lLWhlYWRlci5qcyIgYXN5bmMgZGVmZXIgY3Jvc3NvcmlnaW49ImFub255bW91cyI+PC9zY3JpcHQ+PGRpdiBpZD0icm9vdCI+PGRpdiBjbGFzcz0icGFnZS1ub3QtZm91bmQiPjxkaXYgY2xhc3M9ImNtLXJlc3VsdCI+PGRpdiBjbGFzcz0iY20tcmVzdWx0LWljb24iPjxpbWcgc3JjPSJodHRwczovL2FlMDEuYWxpY2RuLmNvbS9rZi9IVEIxZzdWcmF4RDFnSzBqU1pGSzVqY0pyVlhhdy5naWYiLz48L2Rpdj48ZGl2IGNsYXNzPSJjbS1yZXN1bHQtdGl0bGUiPlNvcnJ5LCB3ZSBjYW4ndCBmaW5kIHRoYXQgcGFnZTwvZGl2PjxkaXYgY2xhc3M9ImNtLXJlc3VsdC1zdWJ0aXRsZSI+QnV0IHdlIHN0aWxsIGhhdmUgbG90cyBmb3IgeW91IHRvIGRpc2NvdmVyIH48L2Rpdj48ZGl2IGNsYXNzPSJjbS1yZXN1bHQtZXh0cmEiPjxhIGhyZWY9Ii8iIGNsYXNzPSJidXR0b24tcHJpbWFyeSI+YmFjayB0byBob21lcGFnZTwvYT48L2Rpdj48L2Rpdj48L2Rpdj48L2Rpdj48c2NyaXB0PndpbmRvdy5faGVhZGVyX2xvY2FsZV8gPSB7ImNhbm5vdF9maW5kX3BhZ2VfcmVtaW5kZXIiOiJTb3JyeSwgd2UgY2FuJ3QgZmluZCB0aGF0IHBhZ2UiLCJjYW5ub3RfZmluZF9wYWdlX2RlYyI6IkJ1dCB3ZSBzdGlsbCBoYXZlIGxvdHMgZm9yIHlvdSB0byBkaXNjb3ZlciB+IiwiYmFja1RvSG9tZSI6ImJhY2sgdG8gaG9tZXBhZ2UifTwvc2NyaXB0PjxkaXY+PCEtLSB0ZXN0IDAuMC40IC0tPjwvZGl2PjwhLS1nYmYgYmxvY2sgc3RhcnQgLS0+CjxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyI+CiAgICAuc2l0ZS1mb290ZXIgewogICAgICAgIGNsZWFyOiBib3RoOwogICAgICAgIGJhY2tncm91bmQtY29sb3I6ICNlOGU4ZTg7CiAgICAgICAgcGFkZGluZy10b3A6IDMwcHg7CiAgICAgICAgbWFyZ2luLXRvcDogMzBweAogICAgfQoKICAgIC5zaXRlLWZvb3RlciBkbCB7CiAgICAgICAgcGFkZGluZzogMCAwIDI1cHggMAogICAgfQoKICAgIC5zaXRlLWZvb3RlciBkdCB7CiAgICAgICAgZm9udC1zaXplOiAxNnB4OwogICAgICAgIGNvbG9yOiAjMzMzOwogICAgICAgIGxpbmUtaGVpZ2h0OiAyOHB4OwogICAgICAgIG1hcmdpbi1ib3R0b206IDVweAogICAgfQoKICAgIC5zaXRlLWZvb3RlciBkZCB7CiAgICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgICAgIGNvbG9yOiAjOTk5OwogICAgICAgIGxpbmUtaGVpZ2h0OiAxOHB4OwogICAgICAgIG1hcmdpbi1sZWZ0OiAwCiAgICB9CgogICAgLnNpdGUtZm9vdGVyIGRkIGEgewogICAgICAgIGNvbG9yOiAjOTk5CiAgICB9CgogICAgLnNpdGUtZm9vdGVyIGRkIGE6aG92ZXIgewogICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTsKICAgICAgICBjb2xvcjogI2Y5MAogICAgfQoKICAgIC5zaXRlLWZvb3RlciAuc2Ytc2l0ZUludHJvIHsKICAgICAgICBmbG9hdDogbGVmdDsKICAgICAgICB3aWR0aDogNTAlCiAgICB9CgogICAgLnNpdGUtZm9vdGVyIC5zZi1zaXRlSW50cm8gZGwgewogICAgICAgIHBhZGRpbmctcmlnaHQ6IDQwcHgKICAgIH0KCiAgICAuc2l0ZS1mb290ZXIgLnNmLU11bHRpTGFuZ3VhZ2VTaXRlIHsKICAgICAgICBmbG9hdDogbGVmdDsKICAgICAgICB3aWR0aDogNTAlCiAgICB9CgogICAgLnNpdGUtZm9vdGVyIC5zZi1zZW9LZXl3b3JkIHsKICAgICAgICBmbG9hdDogbGVmdDsKICAgICAgICB3aWR0aDogNTAlCiAgICB9CgogICAgLnNpdGUtZm9vdGVyIC5zZi1zZW9LZXl3b3JkIGRsIHsKICAgICAgICBwYWRkaW5nOiAwIDQwcHggMCAwCiAgICB9CgogICAgLnNpdGUtZm9vdGVyIC5zZi1kb3dubG9hZC1hcHAgewogICAgICAgIHBhZGRpbmc6IDEwcHggMCA0MHB4OwogICAgICAgIGZsb2F0OiBsZWZ0CiAgICB9CgogICAgLnNpdGUtZm9vdGVyIC5zZi1kb3dubG9hZC1hcHAgYSB7CiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jazsKICAgICAgICBwYWRkaW5nOiAwIDEwcHggMCAzMHB4OwogICAgICAgIG1hcmdpbi1yaWdodDogMTBweDsKICAgICAgICBsaW5lLWhlaWdodDogMzBweDsKICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjYTRjNzM5OwogICAgICAgIGNvbG9yOiAjZmZmOwogICAgICAgIGZvbnQtd2VpZ2h0OiA3MDA7CiAgICAgICAgZm9udC1zaXplOiAxNnB4OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDNweAogICAgfQoKICAgIC5zaXRlLWZvb3RlciAuc2YtZG93bmxvYWQtYXBwIGE6YmVmb3JlIHsKICAgICAgICBjb250ZW50OiAnJzsKICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgdG9wOiA0cHg7CiAgICAgICAgbGVmdDogNnB4OwogICAgICAgIHdpZHRoOiAyMHB4OwogICAgICAgIGhlaWdodDogMjFweDsKICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybCgvL2FlMDEuYWxpY2RuLmNvbS9rZi9IOTA3NzU3ZmRhZDE4NGUzMWExYjU4YmQ2NTA3NjY2ZGVvLnBuZyk7CiAgICAgICAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdAogICAgfQoKICAgIC5zaXRlLWZvb3RlciAuc2YtZG93bmxvYWQtYXBwIGE6aG92ZXIgewogICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZQogICAgfQoKICAgIC5zaXRlLWZvb3RlciAuc2YtZG93bmxvYWQtYXBwIGEuaXBob25lLWxpbmsgewogICAgICAgIGJhY2tncm91bmQtY29sb3I6ICM4YzhjOGMKICAgIH0KCiAgICAuc2l0ZS1mb290ZXIgLnNmLWRvd25sb2FkLWFwcCBhLmlwaG9uZS1saW5rOmJlZm9yZSB7CiAgICAgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKC8vYWUwMS5hbGljZG4uY29tL2tmL0g2ZGVhNTJhN2MwZGY0YmQ0ODQ2Y2VjNmFkZDAwNjBhY00ucG5nKTsKICAgICAgICBsZWZ0OiA3cHgKICAgIH0KCiAgICAuc2l0ZS1mb290ZXIgLnNmLWFsaWJhYmFHcm91cCB7CiAgICAgICAgZmxvYXQ6IGxlZnQ7CiAgICAgICAgd2lkdGg6IDUwJQogICAgfQoKICAgIC5zaXRlLWZvb3RlciAuc2YtYWxpYmFiYUdyb3VwIGRsIHsKICAgICAgICBwYWRkaW5nLWJvdHRvbTogMAogICAgfQoKICAgIC5zaXRlLWZvb3RlciAuY2xlYXJmaXg6YWZ0ZXIgewogICAgICAgIHZpc2liaWxpdHk6IGhpZGRlbjsKICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgICBoZWlnaHQ6IDA7CiAgICAgICAgZm9udC1zaXplOiAwOwogICAgICAgIGNvbnRlbnQ6ICJcMDAyMCI7CiAgICAgICAgY2xlYXI6IGJvdGgKICAgIH0KICAgIC5zaXRlLWZvb3RlciAuY2xlYXJmaXggeyB6b29tOjE7fQoKICAgIC5mb290ZXItY29weXdyaXRlIHsKICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMzMzOwogICAgICAgIGNvbG9yOiAjZmZmOwogICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgICBsaW5lLWhlaWdodDogMThweDsKICAgICAgICBwYWRkaW5nOiA4cHggMAogICAgfQoKICAgIC5mb290ZXItY29weXdyaXRlIC5jb250YWluZXIgewogICAgICAgIG9wYWNpdHk6IC42OwogICAgICAgIGxpbmUtaGVpZ2h0OiAyMHB4OwogICAgfQoKICAgIC5mb290ZXItY29weXdyaXRlIGEgewogICAgICAgIGNvbG9yOiAjZmZmOwogICAgICAgIG1hcmdpbjogMCAycHgKICAgIH0KCiAgICAuZm9vdGVyLWNvcHl3cml0ZSBpbWd7CiAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTsKICAgIH0KCiAgICBAbWVkaWEobWF4LXdpZHRoOjEwMTlweCkgewoKICAgICAgICAuc2l0ZS1mb290ZXIgLnNmLXNpdGVJbnRybywKICAgICAgICAuc2l0ZS1mb290ZXIgLnNmLXNpdGVJbnRybywKICAgICAgICAuc2l0ZS1mb290ZXIgLnNmLXNlb0tleXdvcmQsCiAgICAgICAgLnNpdGUtZm9vdGVyIC5zZi1kb3dubG9hZC1hcHAgewogICAgICAgICAgICB3aWR0aDogMTAwJQogICAgICAgIH0KCiAgICAgICAgLnNpdGUtZm9vdGVyIC5zZi1zZW9LZXl3b3JkIGRsLAogICAgICAgIC5zaXRlLWZvb3RlciAuc2Ytc2l0ZUludHJvIGRsIHsKICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMAogICAgICAgIH0KCiAgICAgICAgLnNpdGUtZm9vdGVyIC5zZi1hbGliYWJhR3JvdXAgZGwsCiAgICAgICAgLnNpdGUtZm9vdGVyIC5zZi1zZW9LZXl3b3JkIGRsIHsKICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDI1cHgKICAgICAgICB9CiAgICB9Cjwvc3R5bGU+CgoKCgo8ZGl2IGNsYXNzPSJzaXRlLWZvb3RlciI+CiAgICA8ZGl2IGNsYXNzPSJjb250YWluZXIgY2xlYXJmaXgiPgogICAgICAgIDxkaXYgY2xhc3M9InNmLWFsaWV4cHJlc3NJbmZvIGNsZWFyZml4Ij4KICAgICAgICAgICAgPGRpdiBjbGFzcz0ic2Ytc2l0ZUludHJvIGNvbC1sZy0zMCBjb2wtbWQtMzAgY29sLXNtLTYwIj4KICAgICAgICAgICAgICAgIDxkbD4KICAgICAgICAgICAgICAgICAgICA8ZHQ+SGVscDwvZHQ+CiAgICAgICAgICAgICAgICAgICAgPGRkPjxhIGhyZWY9Ii8vc2FsZS5hbGlleHByZXNzLmNvbS9rcl9oZWxwY2VudGVyLmh0bSI+Q3VzdG9tZXIgU2VydmljZTwvYT4sCiAgICAgICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9Ii8vcmVwb3J0LmFsaWV4cHJlc3MuY29tIj5EaXNwdXRlcyAmYW1wOyBSZXBvcnRzPC9hPiwgCiAgICAgICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9Ii8vc2FsZS5hbGlleHByZXNzLmNvbS92OFlyOGY2MjlELmh0bSIgcmVmPSJub2ZvbGxvdyI+QnV5ZXIgUHJvdGVjdGlvbjwvYT4sIAogICAgICAgICAgICAgICAgICAgICAgICA8YSBocmVmPSJodHRwOi8vaXBwLmFsaWJhYmFncm91cC5jb20iIHJlZj0ibm9mb2xsb3ciPlJlcG9ydCBJUFIgaW5mcmluZ2VtZW50PC9hPgogICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICA8L2RkPgogICAgICAgICAgICAgICAgPC9kbD4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InNmLU11bHRpTGFuZ3VhZ2VTaXRlIGNvbC1sZy0zMCBjb2wtbWQtMzAgY29sLXNtLTYwIj4KICAgICAgICAgICAgICAgIDxkbD4KICAgICAgICAgICAgICAgICAgICA8ZHQ+QWxpRXhwcmVzcyBNdWx0aS1MYW5ndWFnZSBTaXRlczwvZHQ+CiAgICAgICAgICAgICAgICAgICAgPGRkPgogICAgICAgICAgICAgICAgICAgICAgICA8YSBocmVmPSIvL3J1LmFsaWV4cHJlc3MuY29tIj5SdXNzaWFuPC9hPiwgCiAgICAgICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9Ii8vcHQuYWxpZXhwcmVzcy5jb20iPlBvcnR1Z3Vlc2U8L2E+LCAKICAgICAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iLy9lcy5hbGlleHByZXNzLmNvbSI+U3BhbmlzaDwvYT4sIAogICAgICAgICAgICAgICAgICAgICAgICA8YSBocmVmPSIvL2ZyLmFsaWV4cHJlc3MuY29tIj5GcmVuY2g8L2E+LCAKICAgICAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iLy9kZS5hbGlleHByZXNzLmNvbSI+R2VybWFuPC9hPiwgCiAgICAgICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9Ii8vaXQuYWxpZXhwcmVzcy5jb20iPkl0YWxpYW48L2E+LCAKICAgICAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iLy9ubC5hbGlleHByZXNzLmNvbSI+RHV0Y2g8L2E+LCAKICAgICAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iLy90ci5hbGlleHByZXNzLmNvbSI+VHVya2lzaDwvYT4sIAogICAgICAgICAgICAgICAgICAgICAgICA8YSBocmVmPSIvL2phLmFsaWV4cHJlc3MuY29tIj5KYXBhbmVzZTwvYT4sIAogICAgICAgICAgICAgICAgICAgICAgICA8YSBocmVmPSIvL2tvLmFsaWV4cHJlc3MuY29tIj5Lb3JlYW48L2E+LCAKICAgICAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iLy90aC5hbGlleHByZXNzLmNvbSI+VGhhaTwvYT4sIAogICAgICAgICAgICAgICAgICAgICAgICA8YSBocmVmPSIvL3ZpLmFsaWV4cHJlc3MuY29tIj5WaWV0bmFtZXNlPC9hPiwgCiAgICAgICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9Ii8vYXIuYWxpZXhwcmVzcy5jb20iPkFyYWJpYzwvYT4sIAogICAgICAgICAgICAgICAgICAgICAgICA8YSBocmVmPSIvL2hlLmFsaWV4cHJlc3MuY29tIj5IZWJyZXc8L2E+LCAKICAgICAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iLy9wbC5hbGlleHByZXNzLmNvbSI+UG9saXNoPC9hPgogICAgICAgICAgICAgICAgICAgIDwvZGQ+CiAgICAgICAgICAgICAgICA8L2RsPgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJzZi1zZW9LZXl3b3JkIGNvbC1sZy0zMCBjb2wtbWQtMzAgY29sLXNtLTYwIj4KICAgICAgICAgICAgPGRsPgogICAgICAgICAgICAgICAgPGR0PkJyb3dzZSBieSBDYXRlZ29yeTwvZHQ+CiAgICAgICAgICAgICAgICA8ZGQ+CiAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iLy93d3cuYWxpZXhwcmVzcy5jb20vcG9wdWxhci5odG1sIj5BbGwgUG9wdWxhcjwvYT4sIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iLy93d3cuYWxpZXhwcmVzcy5jb20vd2hvbGVzYWxlLmh0bWwiPlByb2R1Y3Q8L2E+LCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9Ii8vd3d3LmFsaWV4cHJlc3MuY29tL3Byb21vdGlvbi5odG1sIj5Qcm9tb3Rpb248L2E+LCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9Ii8vd3d3LmFsaWV4cHJlc3MuY29tL3ByaWNlLmh0bWwiPkxvdyBQcmljZTwvYT4sIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iLy93d3cuYWxpZXhwcmVzcy5jb20vY2hlYXAuaHRtbCI+R3JlYXQgVmFsdWU8L2E+LCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9Ii8vd3d3LmFsaWV4cHJlc3MuY29tL3Jldmlld3MuaHRtbCI+UmV2aWV3czwvYT4sIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iLy9zYWxlLmFsaWV4cHJlc3MuY29tL2Jsb2cuaHRtIj5CbG9nPC9hPiwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YSBocmVmPSIvL3NlbGwuYWxpZXhwcmVzcy5jb20vNERZVEZzU2tWMC5odG0iPlNlbGxlciBQb3J0YWw8L2E+LCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9Imh0dHBzOi8vc2FsZS5hbGlleHByZXNzLmNvbS9CbGFja0ZyaWRheS5odG0iPkJMQUNLIEZSSURBWTwvYT4sIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iaHR0cHM6Ly93d3cuYWxpZXhwcmVzcy5jb20vYXNzaXN0YW50P2lzZGw9eSZhZmZfc2hvcnRfa2V5PV9iWG1FRlBNJmFmPWhvbWUmYWZmX3BsYXRmcm9tPXRydWUiPkFsaUV4cHJlc3MgQXNzaXN0YW50PC9hPgogICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+CiAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICA8L2RkPgogICAgICAgICAgICA8L2RsPgogICAgICAgIDwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9InNmLWFsaWJhYmFHcm91cCBjb2wtbGctMzAgY29sLW1kLTMwIGNvbC1zbS02MCI+CiAgICAgICAgICAgIDxkbD4KICAgICAgICAgICAgICAgIDxkdD5BbGliYWJhIEdyb3VwPC9kdD4KICAgICAgICAgICAgICAgIDxkZD4KICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICA8YSBocmVmPSJodHRwOi8vd3d3LmFsaWJhYmFncm91cC5jb20vZW4vZ2xvYmFsL2hvbWUiIHJlZj0ibm9mb2xsb3ciPkFsaWJhYmEgR3JvdXAgV2Vic2l0ZTwvYT4sIAogICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9Ii8vd3d3LmFsaWV4cHJlc3MuY29tLyIgcmVmPSJub2ZvbGxvdyI+QWxpRXhwcmVzczwvYT4sIAogICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9Imh0dHA6Ly93d3cuYWxpbWFtYS5jb20vIiByZWY9Im5vZm9sbG93Ij5BbGltYW1hPC9hPiwgCiAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iaHR0cHM6Ly9pbnRsLmFsaXBheS5jb20vaW5kZXguaHRtIiByZWY9Im5vZm9sbG93Ij5BbGlwYXk8L2E+LCAKICAgICAgICAgICAgICAgICAgICA8YSBocmVmPSJodHRwOi8vd3d3LmZsaWdneS5jb20vIiByZWY9Im5vZm9sbG93Ij5GbGlnZ3k8L2E+LCAKICAgICAgICAgICAgICAgICAgICA8YSBocmVmPSJodHRwOi8vd3d3LmFsaWJhYmFjbG91ZC5jb20iIHJlZj0ibm9mb2xsb3ciPkFsaWJhYmEgQ2xvdWQ8L2E+LCAKICAgICAgICAgICAgICAgICAgICA8YSBocmVmPSJodHRwOi8vd3d3LmFsaWJhYmEuY29tLyIgcmVmPSJub2ZvbGxvdyI+QWxpYmFiYSBJbnRlcm5hdGlvbmFsPC9hPiwgCiAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iaHR0cDovL2FsaXFpbi50bWFsbC5jb20vIiByZWY9Im5vZm9sbG93Ij5BbGlUZWxlY29tPC9hPiwgCiAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iaHR0cDovL3d3dy5kaW5ndGFsay5jb20vIiByZWY9Im5vZm9sbG93Ij5EaW5nVGFsazwvYT4sIAogICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9Imh0dHA6Ly9qdS50YW9iYW8uY29tLyIgcmVmPSJub2ZvbGxvdyI+SnVodWFzdWFuPC9hPiwgCiAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iaHR0cDovL3d3dy50YW9iYW8uY29tLyIgcmVmPSJub2ZvbGxvdyI+VGFvYmFvIE1hcmtldHBsYWNlPC9hPiwgCiAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iaHR0cDovL3d3dy50bWFsbC5jb20vIiByZWY9Im5vZm9sbG93Ij5UbWFsbDwvYT4sIAogICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9Imh0dHBzOi8vd29ybGQudGFvYmFvLmNvbS8iIHJlZj0ibm9mb2xsb3ciPlRhb2JhbyBHbG9iYWw8L2E+LCAKICAgICAgICAgICAgICAgICAgICA8YSBocmVmPSJodHRwOi8vd3d3LmFsaW9zLmNuLyIgcmVmPSJub2ZvbGxvdyI+QWxpT1M8L2E+LCAKICAgICAgICAgICAgICAgICAgICA8YSBocmVmPSJodHRwOi8vd3d3LjE2ODguY29tLyIgcmVmPSJub2ZvbGxvdyI+MTY4ODwvYT48L2RkPgogICAgICAgICAgICA8L2RsPgogICAgICAgIDwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9InNmLWRvd25sb2FkLWFwcCI+CiAgICAgICAgICAgIDxhIGNsYXNzPSJhbmRyb2lkLWxpbmsiCiAgICAgICAgICAgICAgICBocmVmPSJodHRwczovL3BsYXkuZ29vZ2xlLmNvbS9zdG9yZS9hcHBzL2RldGFpbHM/aWQ9Y29tLmFsaWJhYmEuYWxpZXhwcmVzc2hkIgogICAgICAgICAgICAgICAgcmVmPSJub2ZvbGxvdyIKICAgICAgICAgICAgICAgIHRhcmdldD0iX2JsYW5rIj4KICAgICAgICAgICAgICAgIEdvb2dsZSBQbGF5CiAgICAgICAgICAgIDwvYT4gCiAgICAgICAgICAgIDxhIGNsYXNzPSJpcGhvbmUtbGluayIKICAgICAgICAgICAgICAgIGhyZWY9Imh0dHBzOi8vaXR1bmVzLmFwcGxlLmNvbS91cy9hcHAvYWxpZXhwcmVzcy9pZDQzNjY3MjAyOSIKICAgICAgICAgICAgICAgIHJlZj0ibm9mb2xsb3ciCiAgICAgICAgICAgICAgICB0YXJnZXQ9Il9ibGFuayI+CiAgICAgICAgICAgICAgICBBcHAgU3RvcmUKICAgICAgICAgICAgPC9hPgogICAgICAgIDwvZGl2PgogICAgPC9kaXY+CjwvZGl2PgoKCgogICAgPGRpdiBjbGFzcz0iZm9vdGVyLWNvcHl3cml0ZSI+CiAgICAgICAgPGRpdiBjbGFzcz0iY29udGFpbmVyIj4KICAgICAgICAgICAgPGEgaHJlZj0iaHR0cHM6Ly9pcHAuYWxpYmFiYWdyb3VwLmNvbSIgcmVmPSJub2ZvbGxvdyI+SW50ZWxsZWN0dWFsIFByb3BlcnR5IFByb3RlY3Rpb248L2E+IC0KICAgICAgICAgICAgPGEgaHJlZj0iaHR0cHM6Ly9jYW1wYWlnbi5hbGlleHByZXNzLmNvbS93b3cvZ2NwL2FwcC1yZWRpcmVjdC10ZXJtcy9pbmRleCIgcmVmPSJub2ZvbGxvdyI+UHJpdmFjeSBQb2xpY3k8L2E+IC0gCiAgICAgICAgICAgIDxhIGhyZWY9Imh0dHBzOi8vd3d3LmFsaWV4cHJlc3MuY29tL3NpdGVtYXAuaHRtbCI+U2l0ZW1hcDwvYT4gLSAKICAgICAgICAgICAgPGEgaHJlZj0iaHR0cHM6Ly9ydWxlLmFsaWJhYmEuY29tL3J1bGUvZGV0YWlsLzIwNDEuaHRtIiByZWY9Im5vZm9sbG93Ij5UZXJtcyBvZiBVc2U8L2E+IC0gCiAgICAgICAgICAgIDxhIGhyZWY9Imh0dHBzOi8vc2FsZS5hbGlleHByZXNzLmNvbS9fX3BjL1Fub0xGQlZmcVkuaHRtIiByZWY9Im5vZm9sbG93Ij5JbmZvcm1hdGlvbiBmb3IgRVUgY29uc3VtZXJzPC9hPiAtIAogICAgICAgICAgICA8YSBocmVmPSJodHRwczovL3Rlcm1zLmFsaWNkbi5jb20vbGVnYWwtYWdyZWVtZW50L3Rlcm1zL3N1aXRfYnUxX2FsaWV4cHJlc3Mvc3VpdF9idTFfYWxpZXhwcmVzczIwMjEwOTI5MTg1Nl8zNTk0MC5odG1sIiByZWY9Im5vZm9sbG93Ij5UcmFuc2FjdGlvbiBTZXJ2aWNlcyBBZ3JlZW1lbnQgZm9yIEVVIGNvbnN1bWVyczwvYT4gLSAKICAgICAgICAgICAgPGEgaHJlZj0iaHR0cHM6Ly9ydWxlLmFsaWJhYmEuY29tL3J1bGUvZGV0YWlsLzUwMzguaHRtIiByZWY9Im5vZm9sbG93Ij5Vc2VyIEluZm9ybWF0aW9uIExlZ2FsIEVucXVpcnkgR3VpZGU8L2E+IAogICAgICAgICAgICDCqe+4jzIwMTAtMjAyMiBBbGlFeHByZXNzLmNvbS4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAgICAgICAgICAgPGEgaHJlZj0iaHR0cDovL2lkaW5mby56amFtci56ai5nb3YuY24vL2JzY3guZG8/c3BtPTUyNjEuMTEzMzM1NTUuMDA2LjQuNmZkNDJmZTBMcmxZZXUmbWV0aG9kPWx6eHgmaWQ9MzMwMTA4MzMwMTA4MDAwMDAyMjE2OSIgcmVmPSJub2ZvbGxvdyI+PGltZyBzdHlsZT0id2lkdGg6MjJweDsiIHNyYz0iaHR0cHM6Ly9hZTAxLmFsaWNkbi5jb20va2YvSGZmZjUyY2Y3MWY3ODRkOTlhZDkzYzczYTMzNGU3ZTM3YS82NXg3MC5naWYiIC8+PC9hPgogICAgICAgICAgICA8YSBocmVmPSJodHRwczovL2JlaWFuLm1paXQuZ292LmNuLyI+IOWinuWAvOeUteS/oeS4muWKoee7j+iQpeiuuOWPr+ivgSDmtZlCMi0yMDEyMDA5MS04PC9hPiAKICAgICAgICAgICAgPGEgaHJlZj0iaHR0cDovL3d3dy5iZWlhbi5nb3YuY24vcG9ydGFsL3JlZ2lzdGVyU3lzdGVtSW5mbz9zcG09YTI2MGsuZGFjdWdlbmVyYWwuaG9tZTIwMTlmb290ZXIuMzIuNjYzMzQzNmM4aDEwOGUmcmVjb3JkY29kZT0zMzAxMDgwMjAwMjI0OCIgcmVmPSJub2ZvbGxvdyI+PGltZyBzcmM9Ii8vYWUwMS5hbGljZG4uY29tL2tmL0gxMDczMTNjMTQ1YTI0ZWVjOTQyODdjMTlmZDJhYTVjMGUvMjB4MjAucG5nIiAvPiDmtZnlhaznvZHlronlpIcgMzMwMTA4MDIwMDIyNDjlj7c8L2E+CiAgICAgICAgPC9kaXY+CiAgICA8L2Rpdj4KCgoKCgoKCgo8c2NyaXB0PgogICAgLyogPCFbQ0RBVEFbICovCiAgdHJ5ewogICAgKGZ1bmN0aW9uKCkgewogICAgICAgIHZhciB1cmwgPSB3aW5kb3cubG9jYXRpb24uaHJlZixzZWFyY2ggPSB3aW5kb3cubG9jYXRpb24uc2VhcmNoLHJlZ3gxID0gL2lzZGw9eS8scmVneDQgPSAvYWZmX3Nob3J0X2tleT0vOyAgCiAgICAgICAgaWYgKCFyZWd4MS50ZXN0KHNlYXJjaCkgJiYgIXJlZ3g0LnRlc3Qoc2VhcmNoKSkgcmV0dXJuOwogICAgICAgIHZhciBpbWcgPSBuZXcgSW1hZ2UoKTsKICAgICAgICBpbWcub25sb2FkPWZ1bmN0aW9uKCl7CiAgICAgICAgICAgIGltZz1udWxsOwogICAgICAgIH07CiAgICAgICAgaW1nLnNyYz0iLy9zLmNsaWNrLmFsaWV4cHJlc3MuY29tL2RpcmVjdF9sYW5kaW5nLmh0bSIrIHNlYXJjaCArICImdmVyc2lvbj0xLjEiOwogIH0pKCk7CiAgfWNhdGNoKGUpewogIH0KLyogXV0+ICovCjwvc2NyaXB0PgoKCjxzY3JpcHQ+CiAgICBpZiAoIXdpbmRvdy5yZWNlbnRseXZpZXdlZGkxOG4pIHsKICAgICAgICB3aW5kb3cucmVjZW50bHl2aWV3ZWRpMThuID0ge307CiAgICB9CgogICAgd2luZG93LnJlY2VudGx5dmlld2VkaTE4bi5yZWNlbnRseXZpZXdlZENvbnRlbnQgPSAiUmVjZW50bHkgVmlld2VkIjsKICAgIHdpbmRvdy5yZWNlbnRseXZpZXdlZGkxOG4udmlld01vcmVBY3Rpb24gPSAiVmlldyBNb3JlIjsKICAgIHdpbmRvdy5yZWNlbnRseXZpZXdlZGkxOG4ubm90aGluZ3ZpZXdlZENvbnRlbnQgPSAiUmVjZW50bHkgVmlld2VkIFByb2R1Y3RzIGlzIGEgZnVuY3Rpb24gd2hpY2ggaGVscHMgeW91IGtlZXAgdHJhY2sgb2YgeW91ciByZWNlbnQgdmlld2luZyBoaXN0b3J5LiI7CiAgICB3aW5kb3cucmVjZW50bHl2aWV3ZWRpMThuLnNob3Bub3dBY3Rpb24gPSAiU2hvcCBOb3ciOwogICAgd2luZG93LnJlY2VudGx5dmlld2VkaTE4bi50dXJub2ZmY29udGVudCA9ICJSZWNlbnRseSBWaWV3ZWQgUHJvZHVjdHMgaGFzIGJlZW4gdHVybmVkIG9mZi4iOwogICAgd2luZG93LnJlY2VudGx5dmlld2VkaTE4bi50dW5vbkFjdGlvbiA9ICJDbGljayBoZXJlIHRvIHR1cm4gaXQgYmFjayBvbi4iOwogICAgCiAgICBpZiAoIXdpbmRvdy5hZXBsdXNpMThuKSB7CiAgICAgICAgd2luZG93LmFlcGx1c2kxOG4gPSB7fTsKICAgIH0KCiAgICB3aW5kb3cuYWVwbHVzaTE4bi5hZGRpdGlvbmFsVGV4dENvbnRlbnQgPSAn0K3RgtC+0YIg0YLQvtCy0LDRgCDQv9C+0YfRgtCwINC/0YDQuNCy0LXQt9GR0YIg0LTQvtC80L7QuSA8c3Ryb25nPtCx0LXRgdC/0LvQsNGC0L3Qvjwvc3Ryb25nPiDRgSDQtNC+0YHRgtCw0LLQutC+0LkgQWxpRXhwcmVzcyBTdGFuZGFyZCA8c3BhbiBzdHlsZT0iY29sb3I6ICM5NDk0OTQiID4j0YHQuNC00LjQvNC00L7QvNCwPC9zcGFuPic7Cjwvc2NyaXB0Pgo8IS0tZ2JmIGJsb2NrIGVuZCAtLT48L2JvZHk+PC9odG1sPg=="