Return-Path: Received: from whitealder.osuosl.org (smtp1.osuosl.org [140.211.166.138]) by lists.linuxfoundation.org (Postfix) with ESMTP id B0DF9C016F for ; Thu, 11 Jun 2020 08:53:25 +0000 (UTC) Received: from localhost (localhost [127.0.0.1]) by whitealder.osuosl.org (Postfix) with ESMTP id 9F0A18865C for ; Thu, 11 Jun 2020 08:53:25 +0000 (UTC) X-Virus-Scanned: amavisd-new at osuosl.org Received: from whitealder.osuosl.org ([127.0.0.1]) by localhost (.osuosl.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id b0jNqDB0rFcv for ; Thu, 11 Jun 2020 08:53:22 +0000 (UTC) X-Greylist: domain auto-whitelisted by SQLgrey-1.7.6 Received: from mail-pj1-f67.google.com (mail-pj1-f67.google.com [209.85.216.67]) by whitealder.osuosl.org (Postfix) with ESMTPS id 375BD8862F for ; Thu, 11 Jun 2020 08:53:22 +0000 (UTC) Received: by mail-pj1-f67.google.com with SMTP id ga6so1984682pjb.1 for ; Thu, 11 Jun 2020 01:53:22 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:from:date:message-id:subject:to; bh=j3kcD147qHuXzw9Xs9iVNFMg5LMP+67pVykcGbRn/g8=; b=kz//FVjwpfposCkLizC+Md7EI4hFr3KJ5NMvCEzTK9Lb3RWhQAI3KkIZbqAeBg91iS NqKoyFbyxgGZSzvcgjV22lEEswET8ENNYodRs4+afroB28U/0PvMaLiifIHYklXwAAB4 cKogTWlWjhcNz3Rsp5ETazYEi2XnnqPCyXjMQcdA7m+dHO7haazRCQG+5J2RYcG4hpOl bgqn7EgLRLJthOgpjAWWMaPusixQQ1q8T7IeYpULAd/vq1rTEB6LLf6jQoa/6L01tuf8 fTdSGDJ/G2gKYsu2D4bqbH9diPAtjXP9d4ahdN3SD+of0tOCQSbkbZ5aF2IRDOEW3RHw H/qA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:from:date:message-id:subject:to; bh=j3kcD147qHuXzw9Xs9iVNFMg5LMP+67pVykcGbRn/g8=; b=uQtSUbdjhA6D0hw4NqxDIEsUmc0Kdc6b50Sdwlflb0vUWuPwMaZ6eEXl9vDWRZWe8w BPNZNZI69E0T+jr8bQHzXuDCFSvt7CtP9WDZj7UWExQW+MxvusG/F/eyosjYYx+6GcUV NTyNrE5I+7JIVMoDPLDBSM5IivkQHod8AWW9MZhjjyEMVx+fVKMKYj6sIfldESNlxae1 mZxALf3j7ZsDqTIwtN9I7fGT6U+Osdj2tq7ARihL9ht3W4M19mYlIYV+JzDM/dsnBXdI aGM30ppbQIN78nI/H4mtGekJSYJiW6TWaXLgwIV5x+QsMGZ40oLCB7TmVRyghMCTw9vV 9FOw== X-Gm-Message-State: AOAM532dc1DQrK1yI0QUkQyHE2VRPPwTQUDICn9qOxjFSVF6ZLGnzI8D xb7QuHE/CX9pLWPgIAP8Iu7IQyN0b3qefsyy5Fdr610QL28= X-Google-Smtp-Source: ABdhPJwUo/m8lBdAMsVs9kzEr545U1lyOjCRr3IUA/aD22LVS6xxoBCDZDQ4RDfvbJx6WrzCB8xOUplU4jPiU70dZIw= X-Received: by 2002:a17:902:b286:: with SMTP id u6mr6238719plr.264.1591865600861; Thu, 11 Jun 2020 01:53:20 -0700 (PDT) MIME-Version: 1.0 From: Antoine Riard Date: Thu, 11 Jun 2020 04:53:08 -0400 Message-ID: To: Bitcoin Protocol Discussion Content-Type: multipart/alternative; boundary="000000000000ab691505a7cb1763" X-Mailman-Approved-At: Thu, 11 Jun 2020 09:23:26 +0000 Subject: [bitcoin-dev] CoinPool, exploring generic payment pools for Fun and Privacy X-BeenThere: bitcoin-dev@lists.linuxfoundation.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: Bitcoin Protocol Discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 11 Jun 2020 08:53:25 -0000 --000000000000ab691505a7cb1763 Content-Type: text/plain; charset="UTF-8" Hi list, We (Gleb Naumenko + I) think that a wide range of second-layer protocols (LN, vaults, inheritance, etc) will be used by average Bitcoin users. We are interested in finding and addressing the privacy issues coming from the unique fingerprints these protocols bring. More specifically, we are interested in answering the following questions: 1. How bad are privacy leaks from on-chain txn of second-layer protocols and how much is leaked via protocol-specific metadatas (LN domain names, watchtowers, ...) ? 2. How to establish a list of Bitcoin fingerprints and their severity to inform protocol designers and clarify threat models ? 3. What kind of sophisticated heuristics spies may use in the future ? 4. How to mitigate privacy leaks ? Should each protocol adopt a common toolbox (scriptless scripts, taproot, ...) in its own way or should we design a confidential-layer to wrap around all of them ? 5. How to make the solution usable (cheaper, easier to integrate, safer) for a daily basis ? We suggest CoinPool: a generic payment pool [0] as a solution to those problems. Although the design we propose is somewhat a scaling solution, we won't focus on this aspect. This work is rather an exploration of *how a pool construction could serve as a TLS for Bitcoin, enhancing both on-chain and off-chain privacy*. ### Motivation: cross-protocols privacy It has always been a challenge to make the on-chain UTXO graph more private. We all know the issues with cleartext amounts, the linkability of inputs/outputs, and other metadatas. Combining with p2p-level spying (transaction-to-IP mapping) or some other patterns leading to real-world identities enable serious spying. Protocols on top of Bitcoin (LN, vaults[1], complicated spending conditions based on Miniscript, DLC [2] are even more vulnerable to spying because: - each of them brings new unique fingerprint/metadata [3] - known spying techniques against second-layer are currently limited to trivial heuristics, but we can't assume spies will always this unsophisticated There is already a wiki list [4] attempting to cover all issues like that, although maintaining it would be challenging considering privacy is a moving target. Let's consider this example: Alice is a well-known LN merchant with a node tied to a domain name. She always directs the output of channel closing to her vault address. If she has another vault address on-chain with the same unique unlocking script (like a CSV timelock with a specific delta) this can be leveraged to cluster her transactions. And since one of her addresses is tied to a domain name, all her funds can now be linked to a real-world identity. In theory, one may use CoinJoin-like solutions to mask cross-protocol on-chain transfers. Unfortunately, robust designs like CoinSwap depend on timelocking coins, extensive use of the on-chain space, and paying fees to provide sufficient privacy, as we explain further. These properties imply we can't expect users to be using strong CoinSwaps by default. That's why instead of specialized high-latency, high-chain-use CoinJoin-style protocols, we propose CoinPool: a low-latency, generic off-chain protocol used to be wrapped around any other protocol. CoinPool is based on shared UTXO ownership. It may reasonably improve on-chain privacy while avoiding latency and locked liquidity issues. CoinPool may also reduce the on-chain use (thus, help to scale Bitcoin) if participants cooperate sufficiently. We do believe that CoinSwap and other CoinJoins are of interest, but we have to consider the trade-offs and choose the best tool for a job to make privacy usable with regards to user resources. We will compare CoinPool to CoinSwap in more detail later in this write-up. ### Extra-motivation: on-chain scalability Even though it's not the main focus of this proposal, we also want to mention that since CoinPool is a payment pool, it helps with on-chain scalability. More specifically: 1. Shared UTXO ownership allows to represent many outputs as one, reducing the UTXO set in size. 2. The CoinPool design enables off-chain transfers within the pool, helping to save the block space by committing fewer transactions on-chain. 3. CoinPool provides decent support for batching activities from different users, also helping to have fewer individual transactions on-chain. Since the CoinPool provides scalability benefits, users will be even incentivized to join CoinPools due to the conservative chain resources usage and such enjoy privacy as a side-effect. ### CoinPool design A CoinPool must satisfy the following *non-interactive any-order withdrawal* property: at any point in time and any possible sequence of previous CoinPool events, a participant should be able to move their funds from the CoinPool to any address the participant wants without cooperation with other CoinPool members. The state of a CoinPool is represented by one on-chain UTXO (a funding multisig of all pool participants) and a set of transactions stored by the participants along with signatures allowing to spend that UTXO. This UTXO is a Taproot output, where the leaves in the Merkle tree represent pool participants. #### Transactions A CoinPool UTXO can be spent by two types: Pool_Tx and Split_Tx. A Pool_Tx enables cooperatives updates of the pool, e.g a participant exiting the pool or off-chain internal transfers. This transaction is used to spend the key branch of the Taproot tree of the CoinPool UTXO. Signatures for a Pool_Tx should be exchanged "on-demand", the moment parties decide to update the CoinPool state collaboratively, In practice, this would happen upon a request of a pool participant. A Split_Tx enables a unilateral exit from the CoinPool, in case it's not possible to use a cooperative Pool_Tx path. This transaction spends the UTXO via the Merkle branch into two outputs: - a _withdraw_ output paying to the pool participant who initiated a transaction - a _recursive_ output paying to the new instance of a CoinPool, which contains all the same participants except the one who just withdrew The design of the unilateral Split_Tx depends on what can be achieved with Bitcoin Script. The main challenge is to enforce the second output of the Split_tx s that the participant who exists can't take all the funds unilaterally. We will talk more about the updates to Bitcoin Script which would allow more advanced pools later (Scaling section). For now, we will *focus on the Script capabilities of today*, per which spending a Split_Tx requires signatures from all pool participants. Since Split_Tx is a unilateral exit, parties are required to exchange signatures for *any possible state of the pool* in advance, to handle the *any-order withdraw* requirement. The exchange should happen when a pool is created. #### Operations There are three types of operations against a CoinPool: create, update, withdraw. Per *creation*, participants agree on a pool policy and commit inputs to a funding transaction by sending a corresponding signature, created in a secure "atomic" way (so that their funds can't be taken if other pool participants are unresponsive). Participants also exchange their signatures which would allow any participant to exit at any given time via a Split_Tx. Per *update*, participants agree on a new coin distribution within the pool tree. They can aggregate and split leaves of the tree, or rotate a target output of a given leaf. E.g, a participant may choose to redirect coins to a new pool right from the old pool and ask all the parties to agree on this update. The previous state should then be revoked either via sequence number (Eltoo) or adding the latest state as a child transaction from any previous Pool_tx. Per *withdraw*, a participant may submit either a Pool_Tx (after asking all the parties for their signatures) or a Split_Tx (unilaterally). After that, a new UTXO of the CoinPool would consist of all the remaining participants. As an optimization, updates and withdrawals may aggregate changes to multiple leaves within one transaction. A CoinPool may also optionality allow new participants to *join* a pool on-the-fly, although trade-offs should be considered. #### Transaction Tree illustrated We illustrate a CoinPool transaction tree with 3 leaves below. We use an obvious optimization: if there are only 2 leaves left, the last transaction doesn't have to commit to a new tree [5]. Funding_Tx | | [Taproot_T] | ___________________ | ______________________________________ | | | | | | [leaf_A] | ^ | | | Split_TxA ___________________ |________________________ / \ | | / \ | | / \ [leaf_B] [leaf_C] [withdraw_A] [Taproot T'] ^ ^ ^ | | | Split_TxB Split_TxC Pool_Tx / \ / \ / \ / \ / \ / \ [withdraw_B] [Taproot T''] [withdraw_C] [Taproot''] / \ ^ ^ [withdraw_B] [withdraw_C] | | Pool_Tx Pool_tx / \ / \ / \ / \ [withdraw_A] [withdraw_C] [withdraw_A] [withdraw_B] ### Scaling the Pool and the Any-Order problem A conservative CoinPool indeed does not scale well: it requires generating pruned Merkle Tree encumbering the _recursive_ output for any combination of withdrawals at pool creation. For a tree of Alice, Bob and Carol, they'd have to build (A,B,C), (A,C,B), (B,A,C), (B,C,A), (C,A,B), (C,B,A) trees. Since the complexity is quasi-factorial, the conservative CoinPool design is impractical for more than 10 leaves. Instead of operating over every possible alternative statically (via pre-signing *every* combination), the protocol may rely on the script interpreter to do it dynamically, only enforcing an effective path among alternatives. A new primitive to enable this behavior can be implemented as an accumulator, i.e a space-efficient cryptographic set representation supporting testing for inclusion and element deletion. Implementation of this delete-only accumulator can be done by introducing or combining already-proposed primitives like a new sighash flag, using a Taproot tree as an accumulator, a committed bitset with templated operations, etc, ... The exact design is left for future research. This primitive would enable re-committing the updated tree on the _recursive_ output, that way preserving balances of other participants, independently of order of withdrawals. Such _recursive_ output needs to be spendable by remaining Split_txn. These transactions are pre-signed and their inputs commit to the parent txid. To alleviate this issue, Split_tx should be signed through SIGHASH_NOINPUT, therefore enabling _recursive_ output. The spending Tapscript must be present among the set of Taproot tree leaves. ### Intra-pool communication and pool policies The CoinPool design assumes participants have to communicate regularly to exchange transaction templates and signatures. It happens almost every time a state of the pools is modified: pool creation, pool update, and cooperative withdrawal. Selecting a communication channel (a mixnet, centralized servers, publication boards, ...) should be done considering the threat model, the cost, the expected latency. Every instance of a CoinPool may be public (available for new participants to join at any time), private (available to join via some out-of-band communication), or something in the middle (based on anti-Sybil measures we will discuss later). ### Protocol rebinding Since the conservative CoinPool design every unilateral exit via Split_Tx should be signed by all the parties in advance, every participant joining the pool should define in advance which address the coins will be directed to in a unilateral case. However, participants may want to use their CoinPool funds to move their pool funds to a new scriptPubkey (for example, to open a new LN channel). To avoid using an intermediate single-address on-chain transaction for these cases, participants should be able to rotate the Split_Tx output. To avoid asking other participants of the CoinPool to sign a new update, a multisig signature covering the Split_Tx and enforcing covenant semantic may be signed with SIGHASH_SINGLE. That way, at any-time Alice can finalize her Split_Tx by adding a new output and signing her with SIGHASH_ALL. Since unilateral withdrawal from CoinPool is time-locked, integration time-sensitive off-chain protocols (e.g, LN or DLC) must be done with extra care. Lastly, the limitations of the current mempool design should be taken into account while using CoinPools, so that issues like mempool pinning [6] are not critical. ### Security/Privacy model Similarly to CoinJoins, CoinPool provides privacy by breaking payment sender/receiver linkability for an on-chain observer. Common-input-ownership, address reuse, change address heuristics can't be leveraged. A spy is forced to commit/lock funds to the pool, and potentially overcome ant-Sybil measures. Internal CoinPool transfers also remain private for an external observer. The exact on-chain privacy efficiency of a given CoinPool depends on two factors: intra-pool activities and exit activities. If the parties are cooperative, intra-pool transfers never leave a footprint on-chain. Exit activities always hit the chain, but if output rebinding is available, the funds can be sent right to the target receiver outside the pool (e.g, cold storage or even another pool), making on-chain analysis much more difficult than what happens with regular transactions today. Since it's possible for an attacker to join a pool, we have to consider extra Sybil-resistance (beyond just depositing coins). Extra Sybil-resistance may include a lock on withdrawal. This lock should not limit intra-pool updates, so that honest users are not limited. Additionally, the solutions suggested for CoinJoins may be used (fidelity bonds, PoDle, etc). ### User Requirements CoinPool introduces two requirements on users: one for security, one for pool performance. It requires persistent storage from the user. Since a unilateral withdrawal assumes transmitting signatures received from other participants beforehand, these signatures, corresponding Taproot output and Merkle branches should not be lost or corrupted, otherwise a participant won't be able to exit the pool without cooperation. It also requires hot access to the signing keys, i.e being online to sign updates which introduces a higher security risk. These requirements are similar to the requirements for LN and vault constructions, so we believe that the burden on a CoinPool participant is reasonable as long as we consider second-layer protocols practical. ### Comparing to CoinSwap A CoinSwap was recently proposed as a next step for on-chain bitcoin privacy [6]. We will compare CoinPool to CoinSwap in terms of high-level properties, because there are no deployed CoinSwaps yet. CoinSwap enables privacy-enhanced (in terms of on-chain footprint) transactions, executed as a non-custodial atomic "trade" between two parties willing to send someone else (not each other) coins at the same time. A CoinSwap between two parties cost at least two on-chain transactions. However, since this minimal design leaks privacy due to the amount correlation, more advanced CoinSwap constructions should be used, and they would be even more costly. The privacy-efficiency of CoinSwaps is thus defined by fees and time-value parameters. For these reasons, the lower security requirements are likely to be most-widely picked-up by thrift users. Participation in a CoinPool, however, costs of a funding transaction fee (shared across all participants), and a cost of the withdrawal (either unilateral or cooperative). Off-chain updates within a pool are free. With regards to linkability, CoinSwap breaks the UTXO ownership graph, CoinPool has similar properties the moment the coins are withdrawn, but the off-chain events inside the pool are likely to obfuscate it even further. Every participant can make direct payments during pool lifetime, breaking mapping between committed inputs and withdrawn outputs. CoinPool output will be part of the broader taproot user set, therefore any single-owned output may be confused as a pool one, hindering further on-chain analysis even for non-CoinPool users. With regards to linkability, CoinSwap completely breaks the link between inputs and outputs, while CoinPool just largely obfuscates the link (similarly to CoinJoins). CoinPool is capable of breaking the link for those payments happening off-chain (e.g, simple transfers within the pool). With regards to requirements, beyond requiring online keys, practical CoinPools require new base layers primitives, namely Taproot, SIGHASH_NOINPUT and delete-only accumulators. CoinSwap is deployable today, although the client software should be built. With regards to malicious participants, CoinPool provides some privacy (in terms of on-chain analysis) if at least one other participant is honest, which is the same assumption as CoinSwap. More specifying spying cost analysis can be made when comparing particular configurations of a CoinSwap and a CoinPools. We invite the community to develop a better model of privacy adversaries, their resources and leverages to refine privacy-enhancing protocols comparisons. Although we claim that different properties of CoinSwaps and CoinPools make them better for different goals, they can benefit from each other: e.g, both of them may rely on Sybil-resistance mechanisms or federated message boards for cooperation. ### Conclusion We propose CoinPool: a payment pool construction to improve privacy against on-chain data analysis. More specifically, it helps to hide the unique footprint associated with the use of second-layer protocols. We attempted to design CoinPools to make them usable for daily activities, as opposed to specialized CoinJoin-style solutions. They usually don't require paying fees and don't use the on-chain space *per-activity*. If they are widely used, they can also help with on-chain scalability, although we don't cover this aspect in detail. CoinPool is a UTXO representing a Taproot tree, in which the leaves represent the spending conditions for coins in the pool. We designed CoinPool around the *non-interactive any-order withdrawal* requirement. In the long-term, CoinPool appears as a good candidate for a scalable, used-by-default privacy-enhancing technology. We emphasize there are several challenges deploying CoinPools, the biggest one being scalability. Making them practical requires introducing new on-chain primitives. Thanks to the wider privacy-community and on which of their work this depends heavily. Thanks to the reviewers. Cheers, Gleb + Antoine [0] AFAIK, payment pools have been suggested by Greg Maxwell, although I couldn't find any written evidence. The only description I know have been made to me by Dave Harding during a BitDevs meetup. Yes I'm old enough to have known when meatspace Bitcoin meetup was a thing. [1] https://lists.linuxfoundation.org/pipermail/bitcoin-dev/2020-April/017793.html [2] https://github.com/discreetlogcontracts/dlcspecs/ [3] On protocol usage leak at the on-chain level see https://lists.linuxfoundation.org/pipermail/bitcoin-dev/2020-February/017633.html, for an illustration see https://b10c.me/mempool-observations/1-locktime-stairs/ [4] https://en.bitcoin.it/Privacy [5] . A gist backup if it doesn't survive formatting : https://gist.github.com/ariard/ab1e4c3a85e4816be21ee0e0f925e86b A common notation to describe transactions tree and their scripts and ease reviewers to verify their correctness would be great. Otherwise it's hard to gauge the correctness of this kind of new protocol. [6] https://bitcoinops.org/en/newsletters/2020/04/29/ --000000000000ab691505a7cb1763 Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: base64 PGRpdiBkaXI9Imx0ciI+PGRpdj48ZGl2PjxkaXY+SGkgbGlzdCw8YnI+PGJyPjwvZGl2PldlIChH bGViIE5hdW1lbmtvICsgSSkgdGhpbmsgdGhhdCBhIHdpZGUgcmFuZ2Ugb2Ygc2Vjb25kLWxheWVy IHByb3RvY29scyAoTE4sIHZhdWx0cywgaW5oZXJpdGFuY2UsIGV0Yykgd2lsbCBiZSB1c2VkIGJ5 IGF2ZXJhZ2UgQml0Y29pbiB1c2Vycy4gV2UgYXJlIGludGVyZXN0ZWQgaW4gZmluZGluZyBhbmQg YWRkcmVzc2luZyB0aGUgcHJpdmFjeSBpc3N1ZXMgY29taW5nIGZyb20gdGhlIHVuaXF1ZSBmaW5n ZXJwcmludHMgdGhlc2UgcHJvdG9jb2xzIGJyaW5nLjxicj48YnI+PC9kaXY+TW9yZSBzcGVjaWZp Y2FsbHksIHdlIGFyZSBpbnRlcmVzdGVkIGluIGFuc3dlcmluZyB0aGUgZm9sbG93aW5nIHF1ZXN0 aW9uczo8YnI+PC9kaXY+PGRpdj4xLiBIb3cgYmFkIGFyZSBwcml2YWN5IGxlYWtzIGZyb20gb24t Y2hhaW4gdHhuIG9mIHNlY29uZC1sYXllciBwcm90b2NvbHMgYW5kIGhvdyBtdWNoIGlzIGxlYWtl ZCB2aWEgcHJvdG9jb2wtc3BlY2lmaWMgbWV0YWRhdGFzIChMTiBkb21haW4gbmFtZXMsIHdhdGNo dG93ZXJzLCAuLi4pID88YnI+PC9kaXY+PGRpdj4gMi4gSG93IHRvIGVzdGFibGlzaCBhIGxpc3Qg b2YgQml0Y29pbiBmaW5nZXJwcmludHMgYW5kIHRoZWlyIHNldmVyaXR5IHRvIGluZm9ybSBwcm90 b2NvbCBkZXNpZ25lcnMgYW5kIGNsYXJpZnkgdGhyZWF0IG1vZGVscyA/PGJyPjwvZGl2PjxkaXY+ My4gV2hhdCBraW5kIG9mIHNvcGhpc3RpY2F0ZWQgaGV1cmlzdGljcyBzcGllcyBtYXkgdXNlIGlu IHRoZSBmdXR1cmUgPzxicj48L2Rpdj48ZGl2PjQuIEhvdyB0byBtaXRpZ2F0ZSBwcml2YWN5IGxl YWtzID8gU2hvdWxkIGVhY2ggcHJvdG9jb2wgYWRvcHQgYSBjb21tb24gdG9vbGJveCAoc2NyaXB0 bGVzcyBzY3JpcHRzLCB0YXByb290LCAuLi4pIGluIGl0cyBvd24gd2F5IG9yIHNob3VsZCB3ZSBk ZXNpZ24gYSBjb25maWRlbnRpYWwtbGF5ZXIgdG8gd3JhcCBhcm91bmQgYWxsIG9mIHRoZW0gPzwv ZGl2PjxkaXY+NS4gSG93IHRvIG1ha2UgdGhlIHNvbHV0aW9uIHVzYWJsZSAoY2hlYXBlciwgZWFz aWVyIHRvIGludGVncmF0ZSwgc2FmZXIpIGZvciBhIGRhaWx5IGJhc2lzID88YnI+PC9kaXY+PGRp dj48YnI+PC9kaXY+PGRpdj5XZSBzdWdnZXN0IENvaW5Qb29sOiBhIGdlbmVyaWMgcGF5bWVudCBw b29sIFswXSBhcyBhIHNvbHV0aW9uIHRvIHRob3NlIHByb2JsZW1zLiBBbHRob3VnaCB0aGUgZGVz aWduIHdlIHByb3Bvc2UgaXMgc29tZXdoYXQgYSBzY2FsaW5nIHNvbHV0aW9uLCB3ZSB3b24mIzM5 O3QgZm9jdXMgb24gdGhpcyBhc3BlY3QuIFRoaXMgd29yayBpcyByYXRoZXIgYW4gZXhwbG9yYXRp b24gb2YgKmhvdyBhIHBvb2wgY29uc3RydWN0aW9uIGNvdWxkIHNlcnZlIGFzIGEgVExTIGZvciBC aXRjb2luLCBlbmhhbmNpbmcgYm90aCBvbi1jaGFpbiBhbmQgb2ZmLWNoYWluIHByaXZhY3kqLjxi cj48YnI+PC9kaXY+PGRpdj4jIyMgTW90aXZhdGlvbjogY3Jvc3MtcHJvdG9jb2xzIHByaXZhY3k8 YnI+PGJyPjwvZGl2PjxkaXY+SXQgaGFzIGFsd2F5cyBiZWVuIGEgY2hhbGxlbmdlIHRvIG1ha2Ug dGhlIG9uLWNoYWluIFVUWE8gZ3JhcGggbW9yZSBwcml2YXRlLiBXZSBhbGwga25vdyB0aGUgaXNz dWVzIHdpdGggY2xlYXJ0ZXh0IGFtb3VudHMsIHRoZSBsaW5rYWJpbGl0eSBvZiBpbnB1dHMvb3V0 cHV0cywgYW5kIG90aGVyIG1ldGFkYXRhcy4gQ29tPHNwYW4+PC9zcGFuPmJpbmluZyB3aXRoIHAy cC1sZXZlbCBzcHlpbmcgKHRyYW5zYWN0aW9uLXRvLUlQIG1hcHBpbmcpIG9yIHNvbWUgb3RoZXIg cGF0dGVybnMgbGVhZGluZyB0byByZWFsLXdvcmxkIGlkZW50aXRpZXMgZW5hYmxlIHNlcmlvdXMg c3B5aW5nLjxicj48YnI+PC9kaXY+PGRpdj5Qcm90b2NvbHMgb24gdG9wIG9mIEJpdGNvaW4gKExO LCB2YXVsdHNbMV0sIGNvbXBsaWNhdGVkIHNwZW5kaW5nIGNvbmRpdGlvbnMgYmFzZWQgb24gTWlu aXNjcmlwdCwgRExDIFsyXSBhcmUgZXZlbiBtb3JlIHZ1bG5lcmFibGUgdG8gc3B5aW5nIGJlY2F1 c2U6PC9kaXY+PGRpdj4tIGVhY2ggb2YgdGhlbSBicmluZ3MgbmV3IHVuaXF1ZSBmaW5nZXJwcmlu dC9tZXRhZGF0YSBbM108YnI+PC9kaXY+PGRpdj4tIGtub3duIHNweWluZyB0ZWNobmlxdWVzIGFn YWluc3Qgc2Vjb25kLWxheWVyIGFyZSBjdXJyZW50bHkgbGltaXRlZCB0byB0cml2aWFsIGhldXJp c3RpY3MsIGJ1dCB3ZSBjYW4mIzM5O3QgYXNzdW1lIHNwaWVzIHdpbGwgYWx3YXlzIHRoaXMgdW5z b3BoaXN0aWNhdGVkPGJyPjxicj48L2Rpdj48ZGl2PlRoZXJlIGlzIGFscmVhZHkgYSB3aWtpIGxp c3QgWzRdIGF0dGVtcHRpbmcgdG8gY292ZXIgYWxsIGlzc3VlcyBsaWtlIHRoYXQsIGFsdGhvdWdo IG1haW50YWluaW5nIGl0IHdvdWxkIGJlIGNoYWxsZW5naW5nIGNvbnNpZGVyaW5nIHByaXZhY3kg aXMgYSBtb3ZpbmcgdGFyZ2V0Ljxicj48YnI+PC9kaXY+PGRpdj5MZXQmIzM5O3MgY29uc2lkZXIg dGhpcyBleGFtcGxlOiBBbGljZSBpcyBhIHdlbGwta25vd24gTE4gbWVyY2hhbnQgd2l0aCBhIG5v ZGUgdGllZCB0byBhIGRvbWFpbiBuYW1lLiBTaGUgYWx3YXlzIGRpcmVjdHMgdGhlIG91dHB1dCBv ZiBjaGFubmVsIGNsb3NpbmcgdG8gaGVyIHZhdWx0IGFkZHJlc3MuIElmIHNoZSBoYXMgYW5vdGhl ciB2YXVsdCBhZGRyZXNzIG9uLWNoYWluIHdpdGggdGhlIHNhbWUgdW5pcXVlIHVubG9ja2luZyBz Y3JpcHQgKGxpa2UgYSBDU1YgdGltZWxvY2sgd2l0aCBhIHNwZWNpZmljIGRlbHRhKSB0aGlzIGNh biBiZSBsZXZlcmFnZWQgdG8gY2x1c3RlciBoZXIgdHJhbnNhY3Rpb25zLiBBbmQgc2luY2Ugb25l IG9mIGhlciBhZGRyZXNzZXMgaXMgdGllZCB0byBhIGRvbWFpbiBuYW1lLCBhbGwgaGVyIGZ1bmRz IGNhbiBub3cgYmUgbGlua2VkIHRvIGEgcmVhbC13b3JsZCBpZGVudGl0eS48YnI+PGJyPjwvZGl2 PjxkaXY+SW4gdGhlb3J5LCBvbmUgbWF5IHVzZSBDb2luSm9pbi1saWtlIHNvbHV0aW9ucyB0byBt YXNrIGNyb3NzLXByb3RvY29sIG9uLWNoYWluIHRyYW5zZmVycy4gVW5mb3J0dW5hdGVseSwgcm9i dXN0IGRlc2lnbnMgbGlrZSBDb2luU3dhcCBkZXBlbmQgb24gdGltZWxvY2tpbmcgY29pbnMsIGV4 dGVuc2l2ZSB1c2Ugb2YgdGhlIG9uLWNoYWluIHNwYWNlLCBhbmQgcGF5aW5nIGZlZXMgdG8gcHJv dmlkZSBzdWZmaWNpZW50IHByaXZhY3ksIGFzIHdlIGV4cGxhaW4gZnVydGhlci4gVGhlc2UgcHJv cGVydGllcyBpbXBseSB3ZSBjYW4mIzM5O3QgZXhwZWN0IHVzZXJzIHRvIGJlIHVzaW5nIHN0cm9u ZyBDb2luU3dhcHMgYnkgZGVmYXVsdC48YnI+PGJyPjwvZGl2PjxkaXY+VGhhdCYjMzk7cyB3aHkg aW5zdGVhZCBvZiBzcGVjaWFsaXplZCBoaWdoLWxhdGVuY3ksIGhpZ2gtY2hhaW4tdXNlIENvaW5K b2luLXN0eWxlIHByb3RvY29scywgd2UgcHJvcG9zZSBDb2luUG9vbDogYSBsb3ctbGF0ZW5jeSwg Z2VuZXJpYyBvZmYtY2hhaW4gcHJvdG9jb2wgdXNlZCB0byBiZSB3cmFwcGVkIGFyb3VuZCBhbnkg b3RoZXIgcHJvdG9jb2wuIENvaW5Qb29sIGlzIGJhc2VkIG9uIHNoYXJlZCBVVFhPIG93bmVyc2hp cC4gSXQgbWF5IHJlYXNvbmFibHkgaW1wcm92ZSBvbi1jaGFpbiBwcml2YWN5IHdoaWxlIGF2b2lk aW5nIGxhdGVuY3kgYW5kIGxvY2tlZCBsaXF1aWRpdHkgaXNzdWVzLiBDb2luUG9vbCBtYXkgYWxz byByZWR1Y2UgdGhlIG9uLWNoYWluIHVzZSAodGh1cywgaGVscCB0byBzY2FsZSBCaXRjb2luKSBp ZiBwYXJ0aWNpcGFudHMgY29vcGVyYXRlIHN1ZmZpY2llbnRseS4gPGJyPjxicj48L2Rpdj48ZGl2 PldlIGRvIGJlbGlldmUgdGhhdCBDb2luU3dhcCBhbmQgb3RoZXIgQ29pbkpvaW5zIGFyZSBvZiBp bnRlcmVzdCwgYnV0IHdlIGhhdmUgdG8gY29uc2lkZXIgdGhlIHRyYWRlLW9mZnMgYW5kIGNob29z ZSB0aGUgYmVzdCB0b29sIGZvciBhIGpvYiB0byBtYWtlIHByaXZhY3kgdXNhYmxlIHdpdGggcmVn YXJkcyB0byB1c2VyIHJlc291cmNlcy4gV2Ugd2lsbCBjb21wYXJlIENvaW5Qb29sIHRvIENvaW5T d2FwIGluIG1vcmUgZGV0YWlsIGxhdGVyIGluIHRoaXMgd3JpdGUtdXAuPGJyPjxicj48L2Rpdj48 ZGl2PiMjIyBFeHRyYS1tb3RpdmF0aW9uOiBvbi1jaGFpbiBzY2FsYWJpbGl0eTxicj48YnI+PC9k aXY+PGRpdj5FdmVuIHRob3VnaCBpdCYjMzk7cyBub3QgdGhlIG1haW4gZm9jdXMgb2YgdGhpcyBw cm9wb3NhbCwgd2UgYWxzbyB3YW50IHRvIG1lbnRpb24gdGhhdCBzaW5jZSBDb2luUG9vbCBpcyBh IHBheW1lbnQgcG9vbCwgaXQgaGVscHMgd2l0aCBvbi1jaGFpbiBzY2FsYWJpbGl0eS4gTW9yZSBz cGVjaWZpY2FsbHk6PGJyPjwvZGl2PjxkaXY+MS4gU2hhcmVkIFVUWE8gb3duZXJzaGlwIGFsbG93 cyB0byByZXByZXNlbnQgbWFueSBvdXRwdXRzIGFzIG9uZSwgcmVkdWNpbmcgdGhlIFVUWE8gc2V0 IGluIHNpemUuPGJyPjwvZGl2PjxkaXY+Mi4gVGhlIENvaW5Qb29sIGRlc2lnbiBlbmFibGVzIG9m Zi1jaGFpbiB0cmFuc2ZlcnMgd2l0aGluIHRoZSBwb29sLCBoZWxwaW5nIHRvIHNhdmUgdGhlIGJs b2NrIHNwYWNlIGJ5IGNvbW1pdHRpbmcgZmV3ZXIgdHJhbnNhY3Rpb25zIG9uLWNoYWluLjxicj48 L2Rpdj48ZGl2PjMuIENvaW5Qb29sIHByb3ZpZGVzIGRlY2VudCBzdXBwb3J0IGZvciBiYXRjaGlu ZyBhY3Rpdml0aWVzIGZyb20gZGlmZmVyZW50IHVzZXJzLCBhbHNvIGhlbHBpbmcgdG8gaGF2ZSBm ZXdlciBpbmRpdmlkdWFsIHRyYW5zYWN0aW9ucyBvbi1jaGFpbi48YnI+PGJyPjwvZGl2PjxkaXY+ U2luY2UgdGhlIENvaW5Qb29sIHByb3ZpZGVzIHNjYWxhYmlsaXR5IGJlbmVmaXRzLCB1c2VycyB3 aWxsIGJlIGV2ZW4gaW5jZW50aXZpemVkIHRvIGpvaW4gQ29pblBvb2xzIGR1ZSB0byB0aGUgY29u c2VydmF0aXZlIGNoYWluIHJlc291cmNlcyB1c2FnZSBhbmQgc3VjaCBlbmpveSBwcml2YWN5IGFz IGEgc2lkZS1lZmZlY3QuPGJyPjxicj48L2Rpdj48ZGl2PiMjIyBDb2luUG9vbCBkZXNpZ248YnI+ PGJyPjwvZGl2PjxkaXY+QSBDb2luUG9vbCBtdXN0IHNhdGlzZnkgdGhlIGZvbGxvd2luZyAqbm9u LWludGVyYWN0aXZlIGFueS1vcmRlciB3aXRoZHJhd2FsKiBwcm9wZXJ0eTogYXQgYW55IHBvaW50 IGluIHRpbWUgYW5kIGFueSBwb3NzaWJsZSBzZXF1ZW5jZSBvZiBwcmV2aW91cyBDb2luUG9vbCBl dmVudHMsIGEgcGFydGljaXBhbnQgc2hvdWxkIGJlIGFibGUgdG8gbW92ZSB0aGVpciBmdW5kcyBm cm9tIHRoZSBDb2luUG9vbCB0byBhbnkgYWRkcmVzcyB0aGUgcGFydGljaXBhbnQgd2FudHMgd2l0 aG91dCBjb29wZXJhdGlvbiB3aXRoIG90aGVyIENvaW5Qb29sIG1lbWJlcnMuPGJyPjxicj48L2Rp dj48ZGl2PlRoZSBzdGF0ZSBvZiBhIENvaW5Qb29sIGlzIHJlcHJlc2VudGVkIGJ5IG9uZSBvbi1j aGFpbiBVVFhPIChhIGZ1bmRpbmcgbXVsdGlzaWcgb2YgYWxsIHBvb2wgcGFydGljaXBhbnRzKSBh bmQgYSBzZXQgb2YgdHJhbnNhY3Rpb25zIHN0b3JlZCBieSB0aGUgcGFydGljaXBhbnRzIGFsb25n IHdpdGggc2lnbmF0dXJlcyBhbGxvd2luZyB0byBzcGVuZCB0aGF0IFVUWE8uIFRoaXMgVVRYTyBp cyBhIFRhcHJvb3Qgb3V0cHV0LCB3aGVyZSB0aGUgbGVhdmVzIGluIHRoZSBNZXJrbGUgdHJlZSBy ZXByZXNlbnQgcG9vbCBwYXJ0aWNpcGFudHMuPGJyPjxicj48L2Rpdj48ZGl2PiMjIyMgVHJhbnNh Y3Rpb25zIDxicj48YnI+PC9kaXY+PGRpdj5BIENvaW5Qb29sIFVUWE8gY2FuIGJlIHNwZW50IGJ5 IHR3byB0eXBlczogUG9vbF9UeCBhbmQgU3BsaXRfVHguPGJyPjxicj48L2Rpdj48ZGl2PkEgUG9v bF9UeCBlbmFibGVzIGNvb3BlcmF0aXZlcyB1cGRhdGVzIG9mIHRoZSBwb29sLCBlLmcgYSBwYXJ0 aWNpcGFudCBleGl0aW5nIHRoZSBwb29sIG9yIG9mZi1jaGFpbiBpbnRlcm5hbCB0cmFuc2ZlcnMu IFRoaXMgdHJhbnNhY3Rpb24gaXMgdXNlZCB0byBzcGVuZCB0aGUga2V5IGJyYW5jaCBvZiB0aGUg VGFwcm9vdCB0cmVlIG9mIHRoZSBDb2luUG9vbCBVVFhPLiBTaWduYXR1cmVzIGZvciBhIFBvb2xf VHggc2hvdWxkIGJlIGV4Y2hhbmdlZCAmcXVvdDtvbi1kZW1hbmQmcXVvdDssIHRoZSBtb21lbnQg cGFydGllcyBkZWNpZGUgdG8gdXBkYXRlIHRoZSBDb2luUG9vbCBzdGF0ZSBjb2xsYWJvcmF0aXZl bHksIEluIHByYWN0aWNlLCB0aGlzIHdvdWxkIGhhcHBlbiB1cG9uIGEgcmVxdWVzdCBvZiBhIHBv b2wgcGFydGljaXBhbnQuPGJyPjxicj48L2Rpdj48ZGl2PkEgU3BsaXRfVHggZW5hYmxlcyBhIHVu aWxhdGVyYWwgZXhpdCBmcm9tIHRoZSBDb2luUG9vbCwgaW4gY2FzZSBpdCYjMzk7cyBub3QgcG9z c2libGUgdG8gdXNlIGEgY29vcGVyYXRpdmUgUG9vbF9UeCBwYXRoLiBUaGlzIHRyYW5zYWN0aW9u IHNwZW5kcyB0aGUgVVRYTyB2aWEgdGhlIE1lcmtsZSBicmFuY2ggaW50byB0d28gb3V0cHV0czo8 YnI+PC9kaXY+PGRpdj4tIGEgX3dpdGhkcmF3XyBvdXRwdXQgcGF5aW5nIHRvIHRoZSBwb29sIHBh cnRpY2lwYW50IHdobyBpbml0aWF0ZWQgYSB0cmFuc2FjdGlvbjwvZGl2PjxkaXY+LSBhIF9yZWN1 cnNpdmVfIG91dHB1dCBwYXlpbmcgdG8gdGhlIG5ldyBpbnN0YW5jZSBvZiBhIENvaW5Qb29sLCB3 aGljaCBjb250YWlucyBhbGwgdGhlIHNhbWUgcGFydGljaXBhbnRzIGV4Y2VwdCB0aGUgb25lIHdo byBqdXN0IHdpdGhkcmV3PGJyPjxicj48L2Rpdj48ZGl2PlRoZSBkZXNpZ24gb2YgdGhlIHVuaWxh dGVyYWwgU3BsaXRfVHggZGVwZW5kcyBvbiB3aGF0IGNhbiBiZSBhY2hpZXZlZCB3aXRoIEJpdGNv aW4gU2NyaXB0LiBUaGUgbWFpbiBjaGFsbGVuZ2UgaXMgdG8gZW5mb3JjZSB0aGUgc2Vjb25kIG91 dHB1dCBvZiB0aGUgU3BsaXRfdHggcyB0aGF0IHRoZSBwYXJ0aWNpcGFudCB3aG8gZXhpc3RzIGNh biYjMzk7dCB0YWtlIGFsbCB0aGUgZnVuZHMgdW5pbGF0ZXJhbGx5LiBXZSB3aWxsIHRhbGsgbW9y ZSBhYm91dCB0aGUgdXBkYXRlcyB0byBCaXRjb2luIFNjcmlwdCB3aGljaCB3b3VsZCBhbGxvdyBt b3JlIGFkdmFuY2VkIHBvb2xzIGxhdGVyIChTY2FsaW5nIHNlY3Rpb24pLjxicj48YnI+PC9kaXY+ PGRpdj5Gb3Igbm93LCB3ZSB3aWxsICpmb2N1cyBvbiB0aGUgU2NyaXB0IGNhcGFiaWxpdGllcyBv ZiB0b2RheSosIHBlciB3aGljaCBzcGVuZGluZyBhIFNwbGl0X1R4IHJlcXVpcmVzIHNpZ25hdHVy ZXMgZnJvbSBhbGwgcG9vbCBwYXJ0aWNpcGFudHMuIFNpbmNlIFNwbGl0X1R4IGlzIGEgdW5pbGF0 ZXJhbCBleGl0LCBwYXJ0aWVzIGFyZSByZXF1aXJlZCB0byBleGNoYW5nZSBzaWduYXR1cmVzIGZv ciAqYW55IHBvc3NpYmxlIHN0YXRlIG9mIHRoZSBwb29sKiBpbiBhZHZhbmNlLCB0byBoYW5kbGUg dGhlICphbnktb3JkZXIgd2l0aGRyYXcqIHJlcXVpcmVtZW50LiBUaGUgZXhjaGFuZ2Ugc2hvdWxk IGhhcHBlbiB3aGVuIGEgcG9vbCBpcyBjcmVhdGVkLjxicj48YnI+PC9kaXY+PGRpdj4jIyMjIE9w ZXJhdGlvbnM8YnI+PGJyPjwvZGl2PjxkaXY+VGhlcmUgYXJlIHRocmVlIHR5cGVzIG9mIG9wZXJh dGlvbnMgYWdhaW5zdCBhIENvaW5Qb29sOiBjcmVhdGUsIHVwZGF0ZSwgd2l0aGRyYXcuPGJyPjxi cj48L2Rpdj48ZGl2PlBlciAqY3JlYXRpb24qLCBwYXJ0aWNpcGFudHMgYWdyZWUgb24gYSBwb29s IHBvbGljeSBhbmQgY29tbWl0IGlucHV0cyB0byBhIGZ1bmRpbmcgdHJhbnNhY3Rpb24gYnkgc2Vu ZGluZyBhIGNvcnJlc3BvbmRpbmcgc2lnbmF0dXJlLCBjcmVhdGVkIGluIGEgc2VjdXJlICZxdW90 O2F0b21pYyZxdW90OyB3YXkgKHNvIHRoYXQgdGhlaXIgZnVuZHMgY2FuJiMzOTt0IGJlIHRha2Vu IGlmIG90aGVyIHBvb2wgcGFydGljaXBhbnRzIGFyZSB1bnJlc3BvbnNpdmUpLiBQYXJ0aWNpcGFu dHMgYWxzbyBleGNoYW5nZSB0aGVpciBzaWduYXR1cmVzIHdoaWNoIHdvdWxkIGFsbG93IGFueSBw YXJ0aWNpcGFudCB0byBleGl0IGF0IGFueSBnaXZlbiB0aW1lIHZpYSBhIFNwbGl0X1R4Ljxicj48 YnI+PC9kaXY+PGRpdj5QZXIgKnVwZGF0ZSosIHBhcnRpY2lwYW50cyBhZ3JlZSBvbiBhIG5ldyBj b2luIGRpc3RyaWJ1dGlvbiB3aXRoaW4gdGhlIHBvb2wgdHJlZS4gVGhleSBjYW4gYWdncmVnYXRl IGFuZCBzcGxpdCBsZWF2ZXMgb2YgdGhlIHRyZWUsIG9yIHJvdGF0ZSBhIHRhcmdldCBvdXRwdXQg b2YgYSBnaXZlbiBsZWFmLiBFLmcsIGEgcGFydGljaXBhbnQgbWF5IGNob29zZSB0byByZWRpcmVj dCBjb2lucyB0byBhIG5ldyBwb29sIHJpZ2h0IGZyb20gdGhlIG9sZCBwb29sIGFuZCBhc2sgYWxs IHRoZSBwYXJ0aWVzIHRvIGFncmVlIG9uIHRoaXMgdXBkYXRlLiBUaGUgcHJldmlvdXMgc3RhdGUg c2hvdWxkIHRoZW4gYmUgcmV2b2tlZCBlaXRoZXIgdmlhIHNlcXVlbmNlIG51bWJlciAoRWx0b28p IG9yIGFkZGluZyB0aGUgbGF0ZXN0IHN0YXRlIGFzIGEgY2hpbGQgdHJhbnNhY3Rpb24gZnJvbSBh bnkgcHJldmlvdXMgUG9vbF90eC48YnI+PGJyPjwvZGl2PjxkaXY+UGVyICp3aXRoZHJhdyosIGEg cGFydGljaXBhbnQgbWF5IHN1Ym1pdCBlaXRoZXIgYSBQb29sX1R4IChhZnRlciBhc2tpbmcgYWxs IHRoZSBwYXJ0aWVzIGZvciB0aGVpciBzaWduYXR1cmVzKSBvciBhIFNwbGl0X1R4ICh1bmlsYXRl cmFsbHkpLiBBZnRlciB0aGF0LCBhIG5ldyBVVFhPIG9mIHRoZSBDb2luUG9vbCB3b3VsZCBjb25z aXN0IG9mIGFsbCB0aGUgcmVtYWluaW5nIHBhcnRpY2lwYW50cy48YnI+PGJyPjwvZGl2PjxkaXY+ QXMgYW4gb3B0aW1pemF0aW9uLCB1cGRhdGVzIGFuZCB3aXRoZHJhd2FscyBtYXkgYWdncmVnYXRl IGNoYW5nZXMgdG8gbXVsdGlwbGUgbGVhdmVzIHdpdGhpbiBvbmUgdHJhbnNhY3Rpb24uIEEgQ29p blBvb2wgbWF5IGFsc28gb3B0aW9uYWxpdHkgYWxsb3cgbmV3IHBhcnRpY2lwYW50cyB0byAqam9p biogYSBwb29sIG9uLXRoZS1mbHksIGFsdGhvdWdoIHRyYWRlLW9mZnMgc2hvdWxkIGJlIGNvbnNp ZGVyZWQuPGJyPjxicj48L2Rpdj48ZGl2PiMjIyMgVHJhbnNhY3Rpb24gVHJlZSBpbGx1c3RyYXRl ZDxicj48YnI+PC9kaXY+PGRpdj5XZSBpbGx1c3RyYXRlIGEgQ29pblBvb2wgdHJhbnNhY3Rpb24g dHJlZSB3aXRoIDMgbGVhdmVzIGJlbG93LiBXZSB1c2UgYW4gb2J2aW91cyBvcHRpbWl6YXRpb246 IGlmIHRoZXJlIGFyZSBvbmx5IDIgbGVhdmVzIGxlZnQsIHRoZSBsYXN0IHRyYW5zYWN0aW9uIGRv ZXNuJiMzOTt0IGhhdmUgdG8gY29tbWl0IHRvIGEgbmV3IHRyZWUgWzVdLjxicj48YnI+PC9kaXY+ PGRpdj7CoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgwqAgwqAgwqAgwqAgwqAg wqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqDCoCDCoCDCoMKgIEZ1bmRpbmdfVHg8YnI+ PC9kaXY+PGRpdj7CoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoCB8PC9kaXY+PGRpdj7CoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDC oCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDC oCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDC oCDCoCDCoCDCoCDCoCDCoMKgIMKgIMKgIMKgIMKgIMKgIMKgwqAgfDxicj48L2Rpdj48ZGl2PsKg IMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKg IMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKg IMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgwqAgwqAgwqDCoCDCoMKgIFtU YXByb290X1RdIMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgPGJyPjwvZGl2Pjxk aXY+wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgwqAgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCDCoCDC oCDCoCDCoCDCoCB8IMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIDxicj48L2Rpdj48 ZGl2PsKgIMKgIMKgIMKgIMKgIMKgIMKgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAg wqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAg wqAgwqAgwqAgwqAgwqAgX19fX19fX19fX19fX19fX19fXyB8IF9fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fPGJyPsKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqAgfMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCDCoCDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoCB8PGJyPjwvZGl2PjxkaXY+wqAgwqAgwqAgwqDCoCDCoCDCoCDC oCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDC oCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCB8wqDCoMKgIMKgIMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCDCoCDCoCDCoCDCoCDCoCDC oCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoMKgwqDCoMKgwqDCoCB8PGJyPjwvZGl2PjxkaXY+wqAg wqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAg wqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAg wqDCoCB8wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAg wqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqDCoMKgwqAgwqAgwqDCoCB8 PGJyPjwvZGl2PjxkaXY+wqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAg wqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAg wqAgwqAgwqDCoCDCoMKgIFtsZWFmX0FdwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIMKgIMKgIMKg IMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgIHw8YnI+PC9kaXY+PGRpdj7CoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDC oCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDC oCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCBeIMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDC oCDCoCDCoMKgwqDCoMKgwqDCoMKgwqAgfDxicj7CoMKgwqDCoMKgwqDCoMKgwqDCoMKgIMKgIMKg IMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKg IMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgwqDCoCB8wqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDC oCDCoCDCoCDCoCDCoCDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgfDxicj48L2Rpdj48ZGl2PsKg IMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKg IMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgwqAgU3Bs aXRfVHhBIMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIF9fX19fX19fX19fX19fX19fX18gfF9f X19fX19fX19fX19fX19fX19fX19fXzxicj48L2Rpdj48ZGl2PsKgIMKgIMKgIMKgIMKgIMKgIMKg IMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKg IMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIC8gwqAgwqAgwqAgwqAgwqAgwqAgwqDCoCBc IMKgIMKgIMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgIHwgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgfDxicj7CoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqAgL8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIFzCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgIMKgIHzCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgIHw8YnI+PC9kaXY+PGRpdj7CoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAvwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBcwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgW2xlYWZfQl3C oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIMKgIFtsZWFmX0NdPGJyPjwv ZGl2PjxkaXY+wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIMKgIMKgwqDCoCBbd2l0aGRyYXdfQV3CoMKg wqDCoMKgwqDCoMKgwqDCoMKgIMKgIMKgIMKgIFtUYXByb290IFQmIzM5O13CoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIF7CoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBePGJyPjwv ZGl2PjxkaXY+wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBewqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgfMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgfDxicj48L2Rp dj48ZGl2PsKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqAgfMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIFNwbGl0X1R4QsKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqAgU3BsaXRfVHhDPGJyPjwvZGl2PjxkaXY+wqDCoCDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgUG9vbF9UeMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgwqAgwqAgLyDCoCDCoCDCoCDCoCDCoMKgIFzCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgL8KgwqDCoMKgwqDCoMKgwqDCoMKgwqAg XDxicj48L2Rpdj48ZGl2PsKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgIC/CoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBcwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIC/CoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqAgXMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoCDCoMKgIMKgIC/CoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqAgXDxicj48L2Rpdj48ZGl2PsKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqAgL8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgXMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oCBbd2l0aGRyYXdfQl3CoMKgwqDCoMKgwqDCoMKgIFtUYXByb290IFQmIzM5OyYjMzk7XcKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqAgW3dpdGhkcmF3X0NdwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIFtUYXBy b290JiMzOTsmIzM5O108YnI+PC9kaXY+PGRpdj7CoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqAgL8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoCBcwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBewqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBePGJyPjwvZGl2PjxkaXY+wqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgwqAgwqAgwqDCoCDCoMKgIFt3aXRo ZHJhd19CXcKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgW3dpdGhkcmF3X0NdwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCDCoCB8IMKgIMKgIMKgIMKg IMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKg IMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKg IMKgIMKgIMKgIHwgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqAgPGJyPjwvZGl2PjxkaXY+wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgUG9vbF9UeMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqAgUG9vbF90eDxicj48L2Rpdj48ZGl2PsKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgL8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBcwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgL8KgwqDCoMKgwqDCoMKgwqDCoMKgwqAg XDxicj7CoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgL8KgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoCBcwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgL8Kg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBcPGJyPjwvZGl2PjxkaXY+wqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoCDCoCDCoCDCoCDCoMKgIMKgIFt3aXRoZHJhd19BXcKgwqDC oMKgwqDCoMKgwqDCoMKgIFt3aXRoZHJhd19DXcKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg IFt3aXRoZHJhd19BXcKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgW3dpdGhkcmF3X0JdPGJyPjwvZGl2 PjxkaXY+PGJyPjxicj4jIyMgU2NhbGluZyB0aGUgUG9vbCBhbmQgdGhlIEFueS1PcmRlciBwcm9i bGVtPC9kaXY+PGRpdj48YnI+PC9kaXY+PGRpdj5BIGNvbnNlcnZhdGl2ZSBDb2luUG9vbCBpbmRl ZWQgZG9lcyBub3Qgc2NhbGUgd2VsbDogaXQgcmVxdWlyZXMgZ2VuZXJhdGluZyBwcnVuZWQgTWVy a2xlIFRyZWUgZW5jdW1iZXJpbmcgdGhlIF9yZWN1cnNpdmVfIG91dHB1dCBmb3IgYW55IGNvbWJp bmF0aW9uIG9mIHdpdGhkcmF3YWxzIGF0IHBvb2wgY3JlYXRpb24uIEZvciBhIHRyZWUgb2YgQWxp Y2UsIEJvYiBhbmQgQ2Fyb2wsIHRoZXkmIzM5O2QgaGF2ZSB0byBidWlsZCAoQSxCLEMpLCAoQSxD LEIpLCAoQixBLEMpLCAoQixDLEEpLCAoQyxBLEIpLCAoQyxCLEEpIHRyZWVzLiBTaW5jZSB0aGUg Y29tcGxleGl0eSBpcyBxdWFzaS1mYWN0b3JpYWwsIHRoZSBjb25zZXJ2YXRpdmUgQ29pblBvb2wg ZGVzaWduIGlzIGltcHJhY3RpY2FsIGZvciBtb3JlIHRoYW4gMTAgbGVhdmVzLjxicj48YnI+PC9k aXY+PGRpdj5JbnN0ZWFkIG9mIG9wZXJhdGluZyBvdmVyIGV2ZXJ5IHBvc3NpYmxlIGFsdGVybmF0 aXZlIHN0YXRpY2FsbHkgKHZpYSBwcmUtc2lnbmluZyAqZXZlcnkqIGNvbWJpbmF0aW9uKSwgdGhl IHByb3RvY29sIG1heSByZWx5IG9uIHRoZSBzY3JpcHQgaW50ZXJwcmV0ZXIgdG8gZG8gaXQgZHlu YW1pY2FsbHksIG9ubHkgZW5mb3JjaW5nIGFuIGVmZmVjdGl2ZSBwYXRoIGFtb25nIGFsdGVybmF0 aXZlcy48YnI+PGJyPjwvZGl2PjxkaXY+QSBuZXcgcHJpbWl0aXZlIHRvIGVuYWJsZSB0aGlzIGJl aGF2aW9yIGNhbiBiZSBpbXBsZW1lbnRlZCBhcyBhbiBhY2N1bXVsYXRvciwgaS5lIGEgc3BhY2Ut ZWZmaWNpZW50IGNyeXB0b2dyYXBoaWMgc2V0IHJlcHJlc2VudGF0aW9uIHN1cHBvcnRpbmcgdGVz dGluZyBmb3IgaW5jbHVzaW9uIGFuZCBlbGVtZW50IGRlbGV0aW9uLjxicj48YnI+PC9kaXY+PGRp dj5JbXBsZW1lbnRhdGlvbiBvZiB0aGlzIGRlbGV0ZS1vbmx5IGFjY3VtdWxhdG9yIGNhbiBiZSBk b25lIGJ5IGludHJvZHVjaW5nIG9yIGNvbWJpbmluZyBhbHJlYWR5LXByb3Bvc2VkIHByaW1pdGl2 ZXMgbGlrZSBhIG5ldyBzaWdoYXNoIGZsYWcsIHVzaW5nIGEgVGFwcm9vdCB0cmVlIGFzIGFuIGFj Y3VtdWxhdG9yLCBhIGNvbW1pdHRlZCBiaXRzZXQgd2l0aCB0ZW1wbGF0ZWQgb3BlcmF0aW9ucywg ZXRjLCAuLi4gVGhlIGV4YWN0IGRlc2lnbiBpcyBsZWZ0IGZvciBmdXR1cmUgcmVzZWFyY2guPGJy Pjxicj48L2Rpdj48ZGl2PlRoaXMgcHJpbWl0aXZlIHdvdWxkIGVuYWJsZSByZS1jb21taXR0aW5n IHRoZSB1cGRhdGVkIHRyZWUgb24gdGhlIF9yZWN1cnNpdmVfIG91dHB1dCwgdGhhdCB3YXkgcHJl c2VydmluZyBiYWxhbmNlcyBvZiBvdGhlciBwYXJ0aWNpcGFudHMsIGluZGVwZW5kZW50bHkgb2Yg b3JkZXIgb2Ygd2l0aGRyYXdhbHMuPGJyPjxicj48L2Rpdj48ZGl2PlN1Y2ggX3JlY3Vyc2l2ZV8g b3V0cHV0IG5lZWRzIHRvIGJlIHNwZW5kYWJsZSBieSByZW1haW5pbmcgU3BsaXRfdHhuLiBUaGVz ZSB0cmFuc2FjdGlvbnMgYXJlIHByZS1zaWduZWQgYW5kIHRoZWlyIGlucHV0cyBjb21taXQgdG8g dGhlIHBhcmVudCB0eGlkLiBUbyBhbGxldmlhdGUgdGhpcyBpc3N1ZSwgU3BsaXRfdHggc2hvdWxk IGJlIHNpZ25lZCB0aHJvdWdoIFNJR0hBU0hfTk9JTlBVVCwgdGhlcmVmb3JlIGVuYWJsaW5nIF9y ZWN1cnNpdmVfIG91dHB1dC4gVGhlIHNwZW5kaW5nIFRhcHNjcmlwdCBtdXN0IGJlIHByZXNlbnQg YW1vbmcgdGhlIHNldCBvZiBUYXByb290IHRyZWUgbGVhdmVzLjxicj48YnI+PC9kaXY+PGRpdj4j IyMgSW50cmEtcG9vbCBjb21tdW5pY2F0aW9uIGFuZCBwb29sIHBvbGljaWVzPGJyPjxicj48L2Rp dj48ZGl2PlRoZSBDb2luUG9vbCBkZXNpZ24gYXNzdW1lcyBwYXJ0aWNpcGFudHMgaGF2ZSB0byBj b21tdW5pY2F0ZSByZWd1bGFybHkgdG8gZXhjaGFuZ2UgdHJhbnNhY3Rpb24gdGVtcGxhdGVzIGFu ZCBzaWduYXR1cmVzLiBJdCBoYXBwZW5zIGFsbW9zdCBldmVyeSB0aW1lIGEgc3RhdGUgb2YgdGhl IHBvb2xzIGlzIG1vZGlmaWVkOiBwb29sIGNyZWF0aW9uLCBwb29sIHVwZGF0ZSwgYW5kIGNvb3Bl cmF0aXZlIHdpdGhkcmF3YWwuIFNlbGVjdGluZyBhIGNvbW11bmljYXRpb24gY2hhbm5lbCAoYSBt aXhuZXQsIGNlbnRyYWxpemVkIHNlcnZlcnMsIHB1YmxpY2F0aW9uIGJvYXJkcywgLi4uKSBzaG91 bGQgYmUgZG9uZSBjb25zaWRlcmluZyB0aGUgdGhyZWF0IG1vZGVsLCB0aGUgY29zdCwgdGhlIGV4 cGVjdGVkIGxhdGVuY3kuPGJyPjxicj48L2Rpdj48ZGl2PkV2ZXJ5IGluc3RhbmNlIG9mIGEgQ29p blBvb2wgbWF5IGJlIHB1YmxpYyAoYXZhaWxhYmxlIGZvciBuZXcgcGFydGljaXBhbnRzIHRvIGpv aW4gYXQgYW55IHRpbWUpLCBwcml2YXRlIChhdmFpbGFibGUgdG8gam9pbiB2aWEgc29tZSBvdXQt b2YtYmFuZCBjb21tdW5pY2F0aW9uKSwgb3Igc29tZXRoaW5nIGluIHRoZSBtaWRkbGUgKGJhc2Vk IG9uIGFudGktU3liaWwgbWVhc3VyZXMgd2Ugd2lsbCBkaXNjdXNzIGxhdGVyKS48YnI+PGJyPjwv ZGl2PjxkaXY+IyMjIFByb3RvY29sIHJlYmluZGluZzxicj48YnI+PC9kaXY+PGRpdj5TaW5jZSB0 aGUgY29uc2VydmF0aXZlIENvaW5Qb29sIGRlc2lnbiBldmVyeSB1bmlsYXRlcmFsIGV4aXQgdmlh IFNwbGl0X1R4IHNob3VsZCBiZSBzaWduZWQgYnkgYWxsIHRoZSBwYXJ0aWVzIGluIGFkdmFuY2Us IGV2ZXJ5IHBhcnRpY2lwYW50IGpvaW5pbmcgdGhlIHBvb2wgc2hvdWxkIGRlZmluZSBpbiBhZHZh bmNlIHdoaWNoIGFkZHJlc3MgdGhlIGNvaW5zIHdpbGwgYmUgZGlyZWN0ZWQgdG8gaW4gYSB1bmls YXRlcmFsIGNhc2UuPGJyPjxicj48L2Rpdj48ZGl2Pkhvd2V2ZXIsIHBhcnRpY2lwYW50cyBtYXkg d2FudCB0byB1c2UgdGhlaXIgQ29pblBvb2wgZnVuZHMgdG8gbW92ZSB0aGVpciBwb29sIGZ1bmRz IHRvIGEgbmV3IHNjcmlwdFB1YmtleSAoZm9yIGV4YW1wbGUsIHRvIG9wZW4gYSBuZXcgTE4gY2hh bm5lbCkuIFRvIGF2b2lkIHVzaW5nIGFuIGludGVybWVkaWF0ZSBzaW5nbGUtYWRkcmVzcyBvbi1j aGFpbiB0cmFuc2FjdGlvbiBmb3IgdGhlc2UgY2FzZXMsIHBhcnRpY2lwYW50cyBzaG91bGQgYmUg YWJsZSB0byByb3RhdGUgdGhlIFNwbGl0X1R4IG91dHB1dC48YnI+PGJyPjwvZGl2PjxkaXY+VG8g YXZvaWQgYXNraW5nIG90aGVyIHBhcnRpY2lwYW50cyBvZiB0aGUgQ29pblBvb2wgdG8gc2lnbiBh IG5ldyB1cGRhdGUsIGEgbXVsdGlzaWcgc2lnbmF0dXJlIGNvdmVyaW5nIHRoZSBTcGxpdF9UeCBh bmQgZW5mb3JjaW5nIGNvdmVuYW50IHNlbWFudGljIG1heSBiZSBzaWduZWQgd2l0aCBTSUdIQVNI X1NJTkdMRS4gVGhhdCB3YXksIGF0IGFueS10aW1lIEFsaWNlIGNhbiBmaW5hbGl6ZSBoZXIgU3Bs aXRfVHggYnkgYWRkaW5nIGEgbmV3IG91dHB1dCBhbmQgc2lnbmluZyBoZXIgd2l0aCBTSUdIQVNI X0FMTC48YnI+PGJyPjwvZGl2PjxkaXY+U2luY2UgdW5pbGF0ZXJhbCB3aXRoZHJhd2FsIGZyb20g Q29pblBvb2wgaXMgdGltZS1sb2NrZWQsIGludGVncmF0aW9uIHRpbWUtc2Vuc2l0aXZlIG9mZi1j aGFpbiBwcm90b2NvbHMgKGUuZywgTE4gb3IgRExDKSBtdXN0IGJlIGRvbmUgd2l0aCBleHRyYSBj YXJlLjxicj48YnI+PC9kaXY+PGRpdj5MYXN0bHksIHRoZSBsaW1pdGF0aW9ucyBvZiB0aGUgY3Vy cmVudCBtZW1wb29sIGRlc2lnbiBzaG91bGQgYmUgdGFrZW4gaW50byBhY2NvdW50IHdoaWxlIHVz aW5nIENvaW5Qb29scywgc28gdGhhdCBpc3N1ZXMgbGlrZSBtZW1wb29swqAgcGlubmluZyBbNl0g YXJlIG5vdCBjcml0aWNhbC48YnI+PGJyPjwvZGl2PjxkaXY+IyMjIFNlY3VyaXR5L1ByaXZhY3kg bW9kZWw8L2Rpdj48ZGl2Pjxicj48L2Rpdj48ZGl2PlNpbWlsYXJseSB0byBDb2luSm9pbnMsIENv aW5Qb29sIHByb3ZpZGVzIHByaXZhY3kgYnkgYnJlYWtpbmcgcGF5bWVudCBzZW5kZXIvcmVjZWl2 ZXIgbGlua2FiaWxpdHkgZm9yIGFuIG9uLWNoYWluIG9ic2VydmVyLiBDb21tb24taW5wdXQtb3du ZXJzaGlwLCBhZGRyZXNzIHJldXNlLCBjaGFuZ2UgYWRkcmVzcyBoZXVyaXN0aWNzIGNhbiYjMzk7 dCBiZSBsZXZlcmFnZWQuIEEgc3B5IGlzIGZvcmNlZCB0byBjb21taXQvbG9jayBmdW5kcyB0byB0 aGUgcG9vbCwgYW5kIHBvdGVudGlhbGx5IG92ZXJjb21lIGFudC1TeWJpbCBtZWFzdXJlcy4gSW50 ZXJuYWwgQ29pblBvb2wgdHJhbnNmZXJzIGFsc28gcmVtYWluIHByaXZhdGUgZm9yIGFuIGV4dGVy bmFsIG9ic2VydmVyLjxicj48YnI+PC9kaXY+PGRpdj5UaGUgZXhhY3Qgb24tY2hhaW4gcHJpdmFj eSBlZmZpY2llbmN5IG9mIGEgZ2l2ZW4gQ29pblBvb2wgZGVwZW5kcyBvbiB0d28gZmFjdG9yczog aW50cmEtcG9vbCBhY3Rpdml0aWVzIGFuZCBleGl0IGFjdGl2aXRpZXMuIElmIHRoZSBwYXJ0aWVz IGFyZSBjb29wZXJhdGl2ZSwgaW50cmEtcG9vbCB0cmFuc2ZlcnMgbmV2ZXIgbGVhdmUgYSBmb290 cHJpbnQgb24tY2hhaW4uIEV4aXQgYWN0aXZpdGllcyBhbHdheXMgaGl0IHRoZSBjaGFpbiwgYnV0 IGlmIG91dHB1dCByZWJpbmRpbmcgaXMgYXZhaWxhYmxlLCB0aGUgZnVuZHMgY2FuIGJlIHNlbnQg cmlnaHQgdG8gdGhlIHRhcmdldCByZWNlaXZlciBvdXRzaWRlIHRoZSBwb29sIChlLmcsIGNvbGQg c3RvcmFnZSBvciBldmVuIGFub3RoZXIgcG9vbCksIG1ha2luZyBvbi1jaGFpbiBhbmFseXNpcyBt dWNoIG1vcmUgZGlmZmljdWx0IHRoYW4gd2hhdCBoYXBwZW5zIHdpdGggcmVndWxhciB0cmFuc2Fj dGlvbnMgdG9kYXkuPGJyPjxicj48L2Rpdj48ZGl2PlNpbmNlIGl0JiMzOTtzIHBvc3NpYmxlIGZv ciBhbiBhdHRhY2tlciB0byBqb2luIGEgcG9vbCwgd2UgaGF2ZSB0byBjb25zaWRlciBleHRyYSBT eWJpbC1yZXNpc3RhbmNlIChiZXlvbmQganVzdCBkZXBvc2l0aW5nIGNvaW5zKS4gRXh0cmEgU3li aWwtcmVzaXN0YW5jZSBtYXkgaW5jbHVkZSBhIGxvY2sgb24gd2l0aGRyYXdhbC4gVGhpcyBsb2Nr IHNob3VsZCBub3QgbGltaXQgaW50cmEtcG9vbCB1cGRhdGVzLCBzbyB0aGF0IGhvbmVzdCB1c2Vy cyBhcmUgbm90IGxpbWl0ZWQuIEFkZGl0aW9uYWxseSwgdGhlIHNvbHV0aW9ucyBzdWdnZXN0ZWQg Zm9yIENvaW5Kb2lucyBtYXkgYmUgdXNlZCAoZmlkZWxpdHkgYm9uZHMsIFBvRGxlLCBldGMpLjxi cj48YnI+PC9kaXY+PGRpdj4jIyMgVXNlciBSZXF1aXJlbWVudHMgPGJyPjxicj48L2Rpdj48ZGl2 PkNvaW5Qb29sIGludHJvZHVjZXMgdHdvIHJlcXVpcmVtZW50cyBvbiB1c2Vyczogb25lIGZvciBz ZWN1cml0eSwgb25lIGZvciBwb29sIHBlcmZvcm1hbmNlLjxicj48YnI+PC9kaXY+PGRpdj5JdCBy ZXF1aXJlcyBwZXJzaXN0ZW50IHN0b3JhZ2UgZnJvbSB0aGUgdXNlci4gU2luY2UgYSB1bmlsYXRl cmFsIHdpdGhkcmF3YWwgYXNzdW1lcyB0cmFuc21pdHRpbmcgc2lnbmF0dXJlcyByZWNlaXZlZCBm cm9tIG90aGVyIHBhcnRpY2lwYW50cyBiZWZvcmVoYW5kLCB0aGVzZSBzaWduYXR1cmVzLCBjb3Jy ZXNwb25kaW5nIFRhcHJvb3Qgb3V0cHV0IGFuZCBNZXJrbGUgYnJhbmNoZXMgc2hvdWxkIG5vdCBi ZSBsb3N0IG9yIGNvcnJ1cHRlZCwgb3RoZXJ3aXNlIGEgcGFydGljaXBhbnQgd29uJiMzOTt0IGJl IGFibGUgdG8gZXhpdCB0aGUgcG9vbCB3aXRob3V0IGNvb3BlcmF0aW9uLjxicj48YnI+PC9kaXY+ PGRpdj5JdCBhbHNvIHJlcXVpcmVzIGhvdCBhY2Nlc3MgdG8gdGhlIHNpZ25pbmcga2V5cywgaS5l IGJlaW5nIG9ubGluZSB0byBzaWduIHVwZGF0ZXMgd2hpY2ggaW50cm9kdWNlcyBhIGhpZ2hlciBz ZWN1cml0eSByaXNrLjxicj48YnI+PC9kaXY+PGRpdj5UaGVzZSByZXF1aXJlbWVudHMgYXJlIHNp bWlsYXIgdG8gdGhlIHJlcXVpcmVtZW50cyBmb3IgTE4gYW5kIHZhdWx0IGNvbnN0cnVjdGlvbnMs IHNvIHdlIGJlbGlldmUgdGhhdCB0aGUgYnVyZGVuIG9uIGEgQ29pblBvb2wgcGFydGljaXBhbnQg aXMgcmVhc29uYWJsZSBhcyBsb25nIGFzIHdlIGNvbnNpZGVyIHNlY29uZC1sYXllciBwcm90b2Nv bHMgcHJhY3RpY2FsLjxicj48YnI+PC9kaXY+PGRpdj4jIyMgQ29tcGFyaW5nIHRvIENvaW5Td2Fw PGJyPjxicj48L2Rpdj48ZGl2PkEgQ29pblN3YXAgd2FzIHJlY2VudGx5IHByb3Bvc2VkIGFzIGEg bmV4dCBzdGVwIGZvciBvbi1jaGFpbiBiaXRjb2luIHByaXZhY3kgWzZdLiBXZSB3aWxsIGNvbXBh cmUgQ29pblBvb2wgdG/CoCBDb2luU3dhcCBpbiB0ZXJtcyBvZiBoaWdoLWxldmVsIHByb3BlcnRp ZXMsIGJlY2F1c2UgdGhlcmUgYXJlIG5vIGRlcGxveWVkIENvaW5Td2FwcyB5ZXQuPGJyPjxicj48 L2Rpdj48ZGl2PkNvaW5Td2FwIGVuYWJsZXMgcHJpdmFjeS1lbmhhbmNlZCAoaW4gdGVybXMgb2Yg b24tY2hhaW4gZm9vdHByaW50KSB0cmFuc2FjdGlvbnMsIGV4ZWN1dGVkIGFzIGEgbm9uLWN1c3Rv ZGlhbCBhdG9taWMgJnF1b3Q7dHJhZGUmcXVvdDsgYmV0d2VlbiB0d28gcGFydGllcyB3aWxsaW5n IHRvIHNlbmQgc29tZW9uZSBlbHNlIChub3QgZWFjaCBvdGhlcikgY29pbnMgYXQgdGhlIHNhbWUg dGltZS48YnI+PGJyPjwvZGl2PjxkaXY+QSBDb2luU3dhcCBiZXR3ZWVuIHR3byBwYXJ0aWVzIGNv c3QgYXQgbGVhc3QgdHdvIG9uLWNoYWluIHRyYW5zYWN0aW9ucy4gSG93ZXZlciwgc2luY2UgdGhp cyBtaW5pbWFsIGRlc2lnbiBsZWFrcyBwcml2YWN5IGR1ZSB0byB0aGUgYW1vdW50IGNvcnJlbGF0 aW9uLCBtb3JlIGFkdmFuY2VkIENvaW5Td2FwIGNvbnN0cnVjdGlvbnMgc2hvdWxkIGJlIHVzZWQs IGFuZCB0aGV5IHdvdWxkIGJlIGV2ZW4gbW9yZSBjb3N0bHkuPGJyPjxicj48L2Rpdj48ZGl2PlRo ZSBwcml2YWN5LWVmZmljaWVuY3kgb2YgQ29pblN3YXBzIGlzIHRodXMgZGVmaW5lZCBieSBmZWVz IGFuZCB0aW1lLXZhbHVlIHBhcmFtZXRlcnMuIEZvciB0aGVzZSByZWFzb25zLCB0aGUgbG93ZXIg c2VjdXJpdHkgcmVxdWlyZW1lbnRzIGFyZSBsaWtlbHkgdG8gYmUgbW9zdC13aWRlbHkgcGlja2Vk LXVwIGJ5IHRocmlmdCB1c2Vycy4gUGFydGljaXBhdGlvbiBpbiBhIENvaW5Qb29sLCBob3dldmVy LCBjb3N0cyBvZiBhIGZ1bmRpbmcgdHJhbnNhY3Rpb24gZmVlIChzaGFyZWQgYWNyb3NzIGFsbCBw YXJ0aWNpcGFudHMpLCBhbmQgYSBjb3N0IG9mIHRoZSB3aXRoZHJhd2FsIChlaXRoZXIgdW5pbGF0 ZXJhbCBvciBjb29wZXJhdGl2ZSkuIE9mZi1jaGFpbiB1cGRhdGVzIHdpdGhpbiBhIHBvb2wgYXJl IGZyZWUuPGJyPjxicj48L2Rpdj48ZGl2PldpdGggcmVnYXJkcyB0byBsaW5rYWJpbGl0eSwgQ29p blN3YXAgYnJlYWtzIHRoZSBVVFhPIG93bmVyc2hpcCBncmFwaCwgQ29pblBvb2wgaGFzIHNpbWls YXIgcHJvcGVydGllcyB0aGUgbW9tZW50IHRoZSBjb2lucyBhcmUgd2l0aGRyYXduLCBidXQgdGhl IG9mZi1jaGFpbiBldmVudHMgaW5zaWRlIHRoZSBwb29sIGFyZSBsaWtlbHkgdG8gb2JmdXNjYXRl IGl0IGV2ZW4gZnVydGhlci4gRXZlcnkgcGFydGljaXBhbnQgY2FuIG1ha2UgZGlyZWN0IHBheW1l bnRzIGR1cmluZyBwb29sIGxpZmV0aW1lLCBicmVha2luZyBtYXBwaW5nIGJldHdlZW4gY29tbWl0 dGVkIGlucHV0cyBhbmQgd2l0aGRyYXduIG91dHB1dHMuPGJyPjxicj48L2Rpdj48ZGl2PkNvaW5Q b29sIG91dHB1dCB3aWxsIGJlIHBhcnQgb2YgdGhlIGJyb2FkZXIgdGFwcm9vdCB1c2VyIHNldCwg dGhlcmVmb3JlIGFueSBzaW5nbGUtb3duZWQgb3V0cHV0IG1heSBiZSBjb25mdXNlZCBhcyBhIHBv b2wgb25lLCBoaW5kZXJpbmcgZnVydGhlciBvbi1jaGFpbiBhbmFseXNpcyBldmVuIGZvciBub24t Q29pblBvb2wgdXNlcnMuPGJyPjxicj48L2Rpdj48ZGl2PldpdGggcmVnYXJkcyB0byBsaW5rYWJp bGl0eSwgQ29pblN3YXAgY29tcGxldGVseSBicmVha3MgdGhlIGxpbmsgYmV0d2VlbiBpbnB1dHMg YW5kIG91dHB1dHMsIHdoaWxlIENvaW5Qb29sIGp1c3QgbGFyZ2VseSBvYmZ1c2NhdGVzIHRoZSBs aW5rIChzaW1pbGFybHkgdG8gQ29pbkpvaW5zKS4gQ29pblBvb2wgaXMgY2FwYWJsZSBvZiBicmVh a2luZyB0aGUgbGluayBmb3IgdGhvc2UgcGF5bWVudHMgaGFwcGVuaW5nIG9mZi1jaGFpbiAoZS5n LCBzaW1wbGUgdHJhbnNmZXJzIHdpdGhpbiB0aGUgcG9vbCkuPGJyPjxicj48L2Rpdj48ZGl2Pldp dGggcmVnYXJkcyB0byByZXF1aXJlbWVudHMsIGJleW9uZCByZXF1aXJpbmcgb25saW5lIGtleXMs IHByYWN0aWNhbCBDb2luUG9vbHMgcmVxdWlyZSBuZXcgYmFzZSBsYXllcnMgcHJpbWl0aXZlcywg bmFtZWx5IFRhcHJvb3QsIFNJR0hBU0hfTk9JTlBVVCBhbmQgZGVsZXRlLW9ubHkgYWNjdW11bGF0 b3JzLiBDb2luU3dhcCBpcyBkZXBsb3lhYmxlIHRvZGF5LCBhbHRob3VnaCB0aGUgY2xpZW50IHNv ZnR3YXJlIHNob3VsZCBiZSBidWlsdC48YnI+PGJyPjwvZGl2PjxkaXY+V2l0aCByZWdhcmRzIHRv IG1hbGljaW91cyBwYXJ0aWNpcGFudHMsIENvaW5Qb29sIHByb3ZpZGVzIHNvbWUgcHJpdmFjeSAo aW4gdGVybXMgb2Ygb24tY2hhaW4gYW5hbHlzaXMpIGlmIGF0IGxlYXN0IG9uZSBvdGhlciBwYXJ0 aWNpcGFudCBpcyBob25lc3QsIHdoaWNoIGlzIHRoZSBzYW1lIGFzc3VtcHRpb24gYXMgQ29pblN3 YXAuIE1vcmUgc3BlY2lmeWluZyBzcHlpbmcgY29zdCBhbmFseXNpcyBjYW4gYmUgbWFkZSB3aGVu IGNvbXBhcmluZyBwYXJ0aWN1bGFyIGNvbmZpZ3VyYXRpb25zIG9mIGEgQ29pblN3YXAgYW5kIGEg Q29pblBvb2xzLiBXZSBpbnZpdGUgdGhlIGNvbW11bml0eSB0byBkZXZlbG9wIGEgYmV0dGVyIG1v ZGVsIG9mIHByaXZhY3kgYWR2ZXJzYXJpZXMsIHRoZWlyIHJlc291cmNlcyBhbmQgbGV2ZXJhZ2Vz IHRvIHJlZmluZSBwcml2YWN5LWVuaGFuY2luZyBwcm90b2NvbHMgY29tcGFyaXNvbnMuPGJyPjxi cj48L2Rpdj48ZGl2PkFsdGhvdWdoIHdlIGNsYWltIHRoYXQgZGlmZmVyZW50IHByb3BlcnRpZXMg b2YgQ29pblN3YXBzIGFuZCBDb2luUG9vbHMgbWFrZSB0aGVtIGJldHRlciBmb3IgZGlmZmVyZW50 IGdvYWxzLCB0aGV5IGNhbiBiZW5lZml0IGZyb20gZWFjaCBvdGhlcjogZS5nLCBib3RoIG9mIHRo ZW0gbWF5IHJlbHkgb24gU3liaWwtcmVzaXN0YW5jZSBtZWNoYW5pc21zIG9yIGZlZGVyYXRlZCBt ZXNzYWdlIGJvYXJkcyBmb3IgY29vcGVyYXRpb24uPGJyPjxicj48L2Rpdj48ZGl2PiMjIyBDb25j bHVzaW9uPGJyPjxicj48L2Rpdj48ZGl2PldlIHByb3Bvc2UgQ29pblBvb2w6IGEgcGF5bWVudCBw b29sIGNvbnN0cnVjdGlvbiB0byBpbXByb3ZlIHByaXZhY3kgYWdhaW5zdCBvbi1jaGFpbiBkYXRh IGFuYWx5c2lzLiBNb3JlIHNwZWNpZmljYWxseSwgaXQgaGVscHMgdG8gaGlkZSB0aGUgdW5pcXVl IGZvb3RwcmludCBhc3NvY2lhdGVkIHdpdGggdGhlIHVzZSBvZiBzZWNvbmQtbGF5ZXIgcHJvdG9j b2xzLjxicj48YnI+PC9kaXY+PGRpdj5XZSBhdHRlbXB0ZWQgdG8gZGVzaWduIENvaW5Qb29scyB0 byBtYWtlIHRoZW0gdXNhYmxlIGZvciBkYWlseSBhY3Rpdml0aWVzLCBhcyBvcHBvc2VkIHRvIHNw ZWNpYWxpemVkIENvaW5Kb2luLXN0eWxlIHNvbHV0aW9ucy4gVGhleSB1c3VhbGx5IGRvbiYjMzk7 dCByZXF1aXJlIHBheWluZyBmZWVzIGFuZCBkb24mIzM5O3QgdXNlIHRoZSBvbi1jaGFpbiBzcGFj ZSAqcGVyLWFjdGl2aXR5Ki4gSWYgdGhleSBhcmUgd2lkZWx5IHVzZWQsIHRoZXkgY2FuIGFsc28g aGVscCB3aXRoIG9uLWNoYWluIHNjYWxhYmlsaXR5LCBhbHRob3VnaCB3ZSBkb24mIzM5O3QgY292 ZXIgdGhpcyBhc3BlY3QgaW4gZGV0YWlsLjxicj48YnI+PC9kaXY+PGRpdj5Db2luUG9vbCBpcyBh IFVUWE8gcmVwcmVzZW50aW5nIGEgVGFwcm9vdCB0cmVlLCBpbiB3aGljaCB0aGUgbGVhdmVzIHJl cHJlc2VudCB0aGUgc3BlbmRpbmcgY29uZGl0aW9ucyBmb3IgY29pbnMgaW4gdGhlIHBvb2wuIFdl IGRlc2lnbmVkIENvaW5Qb29sIGFyb3VuZCB0aGUgKm5vbi1pbnRlcmFjdGl2ZSBhbnktb3JkZXIg d2l0aGRyYXdhbCogcmVxdWlyZW1lbnQuPGJyPjxicj48L2Rpdj48ZGl2PkluIHRoZSBsb25nLXRl cm0sIENvaW5Qb29sIGFwcGVhcnMgYXMgYSBnb29kIGNhbmRpZGF0ZSBmb3IgYSBzY2FsYWJsZSwg dXNlZC1ieS1kZWZhdWx0IHByaXZhY3ktZW5oYW5jaW5nIHRlY2hub2xvZ3kuIFdlIGVtcGhhc2l6 ZSB0aGVyZSBhcmUgc2V2ZXJhbCBjaGFsbGVuZ2VzIGRlcGxveWluZyBDb2luUG9vbHMsIHRoZSBi aWdnZXN0IG9uZSBiZWluZyBzY2FsYWJpbGl0eS4gTWFraW5nIHRoZW0gcHJhY3RpY2FsIHJlcXVp cmVzIGludHJvZHVjaW5nIG5ldyBvbi1jaGFpbiBwcmltaXRpdmVzLjxicj48YnI+PC9kaXY+PGRp dj5UaGFua3MgdG8gdGhlIHdpZGVyIHByaXZhY3ktY29tbXVuaXR5IGFuZCBvbiB3aGljaCBvZiB0 aGVpciB3b3JrIHRoaXMgZGVwZW5kcyBoZWF2aWx5Ljxicj48L2Rpdj48ZGl2Pjxicj48L2Rpdj48 ZGl2PlRoYW5rcyB0byB0aGUgcmV2aWV3ZXJzLjxicj48YnI+PC9kaXY+PGRpdj5DaGVlcnMsPGJy Pjxicj48L2Rpdj48ZGl2PkdsZWIgKyBBbnRvaW5lPGJyPjwvZGl2PjxkaXY+PGJyPjxicj48L2Rp dj48ZGl2PlswXSBBRkFJSywgcGF5bWVudCBwb29scyBoYXZlIGJlZW4gc3VnZ2VzdGVkIGJ5IEdy ZWcgTWF4d2VsbCwgYWx0aG91Z2ggSSBjb3VsZG4mIzM5O3QgZmluZCBhbnkgd3JpdHRlbiBldmlk ZW5jZS4gVGhlIG9ubHkgZGVzY3JpcHRpb24gSSBrbm93IGhhdmUgYmVlbiBtYWRlIHRvIG1lIGJ5 IERhdmUgSGFyZGluZyBkdXJpbmcgYSBCaXREZXZzIG1lZXR1cC4gWWVzIEkmIzM5O20gb2xkIGVu b3VnaCB0byBoYXZlIGtub3duIHdoZW4gbWVhdHNwYWNlIEJpdGNvaW4gbWVldHVwIHdhcyBhIHRo aW5nLjxicj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjExcHQ7Zm9udC1mYW1pbHk6QXJpYWw7Y29s b3I6cmdiKDE3LDg1LDIwNCk7YmFja2dyb3VuZC1jb2xvcjp0cmFuc3BhcmVudDtmb250LXdlaWdo dDo0MDA7Zm9udC1zdHlsZTpub3JtYWw7Zm9udC12YXJpYW50Om5vcm1hbDt0ZXh0LWRlY29yYXRp b246dW5kZXJsaW5lO3ZlcnRpY2FsLWFsaWduOmJhc2VsaW5lO3doaXRlLXNwYWNlOnByZS13cmFw Ij48L3NwYW4+PGEgaHJlZj0iaHR0cHM6Ly9saXN0cy5saW51eGZvdW5kYXRpb24ub3JnL3BpcGVy bWFpbC9iaXRjb2luLWRldi8yMDIwLUFwcmlsLzAxNzc5My5odG1sIiBzdHlsZT0idGV4dC1kZWNv cmF0aW9uOm5vbmUiIGlkPSJtXy02NDEwMzQ5NDM0NTk2NDU3NzQzZ21haWwtZG9jcy1pbnRlcm5h bC1ndWlkLTdlMzE1NGFiLTdmZmYtYzQ1NC1lZGMyLTMyYWZmYmFhMDk5OSIgdGFyZ2V0PSJfYmxh bmsiPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTFwdDtmb250LWZhbWlseTpBcmlhbDtjb2xvcjpy Z2IoMCwwLDApO2JhY2tncm91bmQtY29sb3I6dHJhbnNwYXJlbnQ7Zm9udC13ZWlnaHQ6NDAwO2Zv bnQtc3R5bGU6bm9ybWFsO2ZvbnQtdmFyaWFudDpub3JtYWw7dGV4dC1kZWNvcmF0aW9uOm5vbmU7 dmVydGljYWwtYWxpZ246YmFzZWxpbmU7d2hpdGUtc3BhY2U6cHJlLXdyYXAiPjwvc3Bhbj48L2E+ PC9kaXY+PGRpdj48YnI+PC9kaXY+PGRpdj5bMV0gPGEgaHJlZj0iaHR0cHM6Ly9saXN0cy5saW51 eGZvdW5kYXRpb24ub3JnL3BpcGVybWFpbC9iaXRjb2luLWRldi8yMDIwLUFwcmlsLzAxNzc5My5o dG1sIiB0YXJnZXQ9Il9ibGFuayI+aHR0cHM6Ly9saXN0cy5saW51eGZvdW5kYXRpb24ub3JnL3Bp cGVybWFpbC9iaXRjb2luLWRldi8yMDIwLUFwcmlsLzAxNzc5My5odG1sPC9hPjxicj48YnI+WzJd IDxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS9kaXNjcmVldGxvZ2NvbnRyYWN0cy9kbGNzcGVj cy8iIHRhcmdldD0iX2JsYW5rIj5odHRwczovL2dpdGh1Yi5jb20vZGlzY3JlZXRsb2djb250cmFj dHMvZGxjc3BlY3MvPC9hPjxicj48YnI+PC9kaXY+PGRpdj5bM10gT24gcHJvdG9jb2wgdXNhZ2Ug bGVhayBhdCB0aGUgb24tY2hhaW4gbGV2ZWwgc2VlIDxhIGhyZWY9Imh0dHBzOi8vbGlzdHMubGlu dXhmb3VuZGF0aW9uLm9yZy9waXBlcm1haWwvYml0Y29pbi1kZXYvMjAyMC1GZWJydWFyeS8wMTc2 MzMuaHRtbCIgdGFyZ2V0PSJfYmxhbmsiPmh0dHBzOi8vbGlzdHMubGludXhmb3VuZGF0aW9uLm9y Zy9waXBlcm1haWwvYml0Y29pbi1kZXYvMjAyMC1GZWJydWFyeS8wMTc2MzMuaHRtbDwvYT4sIGZv ciBhbiBpbGx1c3RyYXRpb24gc2VlIDxhIGhyZWY9Imh0dHBzOi8vYjEwYy5tZS9tZW1wb29sLW9i c2VydmF0aW9ucy8xLWxvY2t0aW1lLXN0YWlycy8iIHRhcmdldD0iX2JsYW5rIj5odHRwczovL2Ix MGMubWUvbWVtcG9vbC1vYnNlcnZhdGlvbnMvMS1sb2NrdGltZS1zdGFpcnMvPC9hPjxicj48YnI+ WzRdIDxhIGhyZWY9Imh0dHBzOi8vZW4uYml0Y29pbi5pdC9Qcml2YWN5IiB0YXJnZXQ9Il9ibGFu ayI+aHR0cHM6Ly9lbi5iaXRjb2luLml0L1ByaXZhY3k8L2E+PGJyPjxicj48L2Rpdj48ZGl2Pls1 XSAuIEEgZ2lzdCBiYWNrdXAgaWYgaXQgZG9lc24mIzM5O3Qgc3Vydml2ZSBmb3JtYXR0aW5nIDog PGEgaHJlZj0iaHR0cHM6Ly9naXN0LmdpdGh1Yi5jb20vYXJpYXJkL2FiMWU0YzNhODVlNDgxNmJl MjFlZTBlMGY5MjVlODZiIj5odHRwczovL2dpc3QuZ2l0aHViLmNvbS9hcmlhcmQvYWIxZTRjM2E4 NWU0ODE2YmUyMWVlMGUwZjkyNWU4NmI8L2E+IEEgY29tbW9uIG5vdGF0aW9uIHRvIGRlc2NyaWJl IHRyYW5zYWN0aW9ucyB0cmVlIGFuZCB0aGVpciBzY3JpcHRzIGFuZCBlYXNlIHJldmlld2VycyB0 byB2ZXJpZnkgdGhlaXIgY29ycmVjdG5lc3Mgd291bGQgYmUgZ3JlYXQuIE90aGVyd2lzZSBpdCYj Mzk7cyBoYXJkIHRvIGdhdWdlIHRoZSBjb3JyZWN0bmVzcyBvZiB0aGlzIGtpbmQgb2YgbmV3IHBy b3RvY29sLiA8YnI+PC9kaXY+PGRpdj48YnI+WzZdIDxhIGhyZWY9Imh0dHBzOi8vYml0Y29pbm9w cy5vcmcvZW4vbmV3c2xldHRlcnMvMjAyMC8wNC8yOS8iIHRhcmdldD0iX2JsYW5rIj5odHRwczov L2JpdGNvaW5vcHMub3JnL2VuL25ld3NsZXR0ZXJzLzIwMjAvMDQvMjkvPC9hPjwvZGl2PjxkaXY+ PGJyPjxicj48YnI+wqAgPC9kaXY+PGRpdj48YnI+PC9kaXY+PC9kaXY+DQo= --000000000000ab691505a7cb1763--