From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from silver.osuosl.org (smtp3.osuosl.org [140.211.166.136]) by lists.linuxfoundation.org (Postfix) with ESMTP id 06BF0C0051 for ; Fri, 25 Sep 2020 15:27:53 +0000 (UTC) Received: from localhost (localhost [127.0.0.1]) by silver.osuosl.org (Postfix) with ESMTP id 87AFA2E181 for ; Fri, 25 Sep 2020 15:27:52 +0000 (UTC) X-Virus-Scanned: amavisd-new at osuosl.org Received: from silver.osuosl.org ([127.0.0.1]) by localhost (.osuosl.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 6k5c6Pi7R1WJ for ; Fri, 25 Sep 2020 15:27:44 +0000 (UTC) X-Greylist: delayed 00:09:09 by SQLgrey-1.7.6 Received: from mail.thomaskerin.io (mail.thomaskerin.io [5.196.75.231]) by silver.osuosl.org (Postfix) with ESMTPS id F197E2047A for ; Fri, 25 Sep 2020 15:27:43 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=thomaskerin.io; s=2017; t=1601047110; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: in-reply-to:in-reply-to:references:references; bh=dce0gjPjHiyE6PN9437Plnp5zpW2yVsRLNaWuGnSzZo=; b=pgc6eabmf8OcdoX9xiLJN8/ACG85KDM/FZ4ERJjVkLMgD2OFreH1WqZEaxur//0LXpOY4p 2ORyIvOY0csPfFplNDSEFgDyra7hIty4Ed1R9vBR5RjMyFI1GewofYIiIRLCGCPqqF+08m q5wsR6zUUqqOHk64+r6sJKi1tQNbfyMVijv74OWYiquudlqo0UMxgf5fQGF7SStaOiY7H2 iUXKMYlZJr5bhszLrkCu0t/zImslR2pGlPUtdfYRFvtIhnf93/IzR2Ruh5jTp0N1GRYBIW hp0SxoXLcndfJczqUgNrZRcyWc+X+Yda5dJWGuTsBWia12RHOrtQgIvOS+0byA== To: Mike Brooks via bitcoin-dev References: From: bitcoin ml Message-ID: Date: Fri, 25 Sep 2020 16:18:17 +0100 MIME-Version: 1.0 In-Reply-To: Content-Type: multipart/alternative; boundary="------------3FCAF818CF8B3F72DE2CF89D" Content-Language: en-US Authentication-Results: ORIGINATING; auth=pass smtp.auth=bitcoin.ml@thomaskerin.io smtp.mailfrom=bitcoin.ml@thomaskerin.io X-Mailman-Approved-At: Fri, 25 Sep 2020 15:56:56 +0000 Subject: Re: [bitcoin-dev] Floating-Point Nakamoto Consensus 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: Fri, 25 Sep 2020 15:27:53 -0000 This is a multi-part message in MIME format. --------------3FCAF818CF8B3F72DE2CF89D Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 8bit Hi, This is a pretty big departure from cumulative POW. Could you explain to me what you see happening if a node with this patch and no history starts to sync, and some random node gives it a block with a better fitness test for say height 250,000? No other solution will have a better fitness test at that height, so from my understanding its going to stop syncing. How about even later - say this proposal is activated at block 750,000. At 850,000, someone decides it'd be fun to publish a new block 800,000 with a better fitness test. What happens the 50,000 blocks? I can imagine the miners not being particularly happy about it - their previously 50:50 chance (well, sort of, it's based on resources- connectivity, validation overheads, etc) their tied block would succeed, vs the situation with this change - blocks that are inherently more or less valid than others. I think these days people are more focused on improving defences at the networking layer than in the consensus layer - especially when it affects mining incentives. I don't see how people will take this seriously - especially when you regard how often consensus changes are made to _fix_ something as opposed to add something new. Best regards, Thomas On 9/24/20 8:40 PM, Mike Brooks via bitcoin-dev wrote: >   Hey Everyone, > >  A lot of work has gone into this paper, and the current revision has > been well received and there is a lot of excitement on this side to be > sharing it with you today. There are so few people that truly > understand this topic, but we are all pulling in the same direction to > make Bitcoin better and it shows.  It is wildly underrated that future > proofing was never really a consideration in the initial design - but > here we are a decade later with amazing solutions like SegWit > which gives us a real future-proofing framework.  The fact that > future-proofing was added to Bitcoin with a softfork gives me > goosebumps. I'd just like to take the time to thank the people who > worked on SegWit and it is an appreciation that comes up in > conversation of how difficult and necessary that process was, and this > appreciation may not be vocalized to the great people who worked on > it. The fact that Bitcoin keeps improving and is able to respond to > new threats is nothing short of amazing - thank you everyone for a > great project. > > This current proposal really has nothing to do with SegWit - but it is > an update that will make the network a little better for the future, > and we hope you enjoy the paper. > > PDF: > https://github.com/in-st/Floating-Point-Nakamoto-Consensus/blob/master/Floating-Point%20Nakamoto%20Consensus.pdf > Pull Request: > https://github.com/bitcoin/bitcoin/pull/19665/files > > --- > > > Floating-Point Nakamoto Consensus > > > Abstract — It has been shown that Nakamoto Consensus is very useful in > the formation of long-term global agreement — and has issues with > short-term disagreement which can lead to re-organization (“or-org”) > of the blockchain.  A malicious miner with knowledge of a specific > kind of denial-of-service (DoS) vulnerability can gain an unfair > advantage in the current Bitcoin network, and can be used to undermine > the security guarantees that developers rely upon.  Floating-Point > Nakamoto consensu makes it more expensive to replace an already mined > block vs. creation of a new block, and by resolving ambiguity of > competition solutions it helps achieve global consumers more quickly.  > A floating-point fitness test strongly incentivises the correct > network behavior, and prevents disagreement from ever forming in the > first place. > > > Introduction > > The Bitcoin protocol was created to provide a decentralized consensus > on a fully distributed p2p network.  A problem arises when more than > one proof-of-work is presented as the next solution block in the > blockchain.  Two solutions of the same height are seen as > authoritative equals which is the basis of a growing disagreement. A > node will adopt the first solution seen, as both solutions propagate > across the network a race condition of disagreement is formed. This > race condition can be controlled by byzentiene fault injection > commonly referred to as an “eclipsing” attack.  When two segments of > the network disagree it creates a moment of weakness in which less > than 51% of the network’s computational resources are required to keep > the network balanced against itself. > > > Nakamoto Consensus > > Nakamoto Consensus is the process of proving computational resources > in order to determine eligibility to participate in the decision > making process.  If the outcome of an election were based on one node > (or one-IP-address-one-vote), then representation could be subverted > by anyone able to allocate many IPs. A consensus is only formed when > the prevailing decision has the greatest proof-of-work effort invested > in it. In order for a Nakamoto Consensus to operate, the network must > ensure that incentives are aligned such that the resources needed to > subvert a proof-of-work based consensus outweigh the resources gained > through its exploitation. In this consensus model, the proof-of-work > requirements for the creation of the next valid solution has the exact > same cost as replacing the current solution. There is no penalty for > dishonesty, and this has worked well in practice because the majority > of the nodes on the network are honest and transparent, which is a > substantial barrier for a single dishonest node to overcome. > > > A minimal network peer-to-peer structure is required to support > Nakamoto Conesus, and for our purposes this is entirely decentralized. > Messages are broadcast on a best-effort basis, and nodes can leave and > rejoin the network at will, accepting the longest proof-of-work chain > as proof of what happened while they were gone.  This design makes no > guarantees that the peers connected do not misrepresent the network or > so called “dishonest nodes.” Without a central authority or central > view - all peers depend on the data provided by neighboring peers - > therefore a dishonest node can continue until a peer is able to make > contact an honest node. > > > Security > > In this threat model let us assume a malicious miner possesses > knowledge of an unpatched DoS vulnerability (“0-day”) which will > strictly prevent honest nodes from communicating to new members of the > network - a so-called “total eclipse.”  The kind of DoS vulnerability > needed to conduct an eclipse does not need to consume all CPU or > computaitly ability of target nodes - but rather prevent target nodes > from forming new connections that would undermine the eclipsing > effect. These kinds of DoS vulnerabilities are somewhat less > substional than actually knocking a powerful-mining node offline.  > This class of attacks are valuable to an adversary because in order > for an honest node to prove that a dishonest node is lying - they > would need to form a connection to a segment of the network that isn’t > entirely suppressed. Let us assume a defense-in-depth strategy and > plan on this kind of failure. > > > Let us now consider that the C++ Bitcoind has a finite number of > worker threads and a finite number of connections that can be serviced > by these workers.  When a rude client occupies all connections - then > a pidgin-hole principle comes into play. If a network's maximum > capacity for connection handlers ‘k’, is the sum of all available > worker threads for all nodes in the network, establishing ‘k+1’ > connections by the pidgin-hole principle will prevent any new > connections from being formed by honest nodes - thereby creating a > perfect eclipse for any new miners joining the network would only be > able to form connections with dishonest nodes. > > > Now let’s assume a dishonest node is modified in two ways - it > increases the maximum connection handles to hundreds of thousands > instead of the current value which is about 10. Then this node is > modified to ignore any solution blocks found by honest nodes - thus > forcing the dishonest side of the network to keep searching for a > competitive-solution to split the network in two sides that disagree > about which tip of the chain to use.  Any new solution propagates > through nodes one hop at a time. This propagation can be predicted and > shaped by dishonest non-voting nodes that are being used to pass > messages for honest nodes. > > > At this point an attacker can expedite the transmission of one > solution, while slowing another. If ever a competing proof-of-work is > broadcasted to the network, the adversary will use their network > influence to split knowledge of the proof-of-work as close to ½ as > possible. If the network eclipse is perfect then an adversary can > leverage an eigen-vector of computational effort to keep the > disagreement in balance for as long as it is needed. No mechanism is > stopping the attacker from adding additional computation resources or > adjusting the eclipsing effect to make sure the system is in balance. >   As long as two sides of the network are perfectly in disagreement > and generating new blocks - the attacker has intentionally created a > hard-fork against the will of the network architects and operators. > The disagreement needs to be kept open until the adversary’s > transactions have been validated on the honest chain - at which point > the attacker will add more nodes to the dishonest chain to make sure > it is the ultimate winner - thus replacing out the honest chain with > the one generated by dishonest miners. > > > This attack is convenient from the adversary’s perspective,  Bitcoin > being a broadcast network advertises the IP addresses of all active > nodes - and Shodan and the internet scanning project can find all > passive nodes responding on TCP 8333.  This should illuminate all > honest nodes on the network, and even honest nodes that are trying to > obscure themselves by not announcing their presence.  This means that > the attacker doesn’t need to know exactly which node is used by a > targeted exchange - if the attacker has subdued all nodes then the > targeted exchange must be operating a node within this set of targeted > honest nodes. > > > During a split in the blockchain, each side of the network will honor > a separate merkel-tree formation and therefore a separate ledger of > transactions. An adversary will then broadcast currency deposits to > public exchanges, but only on the weaker side, leaving the stronger > side with no transaction from the adversary. Any exchange that > confirms one of these deposits is relying upon nodes that have been > entirely eclipsed so that they cannot see the competing chain - at > this point anyone looking to confirm a transaction is vulnerable to a > double-spend. With this currency deposited on a chain that will become > ephemeral, the attacker can wire out the account balance on a > different blockchain - such as Tether which is an erc20 token on the > Ethereum network which would be unaffected by this attack.  When the > weaker chain collapses, the transaction that the exchange acted upon > is no longer codified in Bitcoin blockchain's global ledger, and will > be replaced with a version of the that did not contain these deposits. > > > Nakamoto Consensus holds no guarantees that it’s process is > deterministic.  In the short term, we can observe that the Nakamoto > Consensus is empirically non-deterministic which is evident by > re-organizations (re-org) as a method of resolving disagreements > within the network.   During a reorganization a blockchain network is > at its weakest point, and a 51% attack to take the network becomes > unnecessary. An adversary who can eclipse honest hosts on the network > can use this as a means of byzantine fault-injection to disrupt the > normal flow of messages on the network which creates disagreement > between miners. > > > DeFi (Decentralized Finance) and smart-contract obligations depend on > network stability and determinism.  Failure to pay contracts, such as > what happened on “black thursday” resulted in secured loans > accidentally falling into redemption.  The transactions used by a > smart contract are intended to be completed quickly and the outcome is > irreversible.  However, if the blockchain network has split then a > contract may fire and have it’s side-effects execute only to have the > transaction on the ledger to be replaced.  Another example is that a > hard-fork might cause the payer of a smart contract to default - as > the transaction that they broadcasted ended up being on the weaker > chain that lost. Some smart contracts, such as collateral backed loans > have a redemption clause which would force the borrower on the loan to > lose their deposit entirely. > > > With two sides of the network balanced against each other - an > attacker has split the blockchain and this hard-fork can last for as > long as the attacker is able to exert the computational power to > ensure that proof-of-work blocks are regularly found on both sides of > the network.  The amount of resources needed to balance the network > against itself is far less than a 51% attack - thereby undermining the > security guarantees needed for a decentralized untrusted payment > network to function.  An adversary with a sufficiently large network > of dishonest bots could use this to take a tally of which miners are > participating in which side of the network split. This will create an > attacker-controlled hard fork of the network with two mutually > exclusive merkle trees. Whereby the duration of this split is > arbitrary, and the decision in which chain to collapse is up to the > individual with the most IP address, not the most computation. > > > In Satoshi Nakamoto’s original paper it was stated that the electorate > should be represented by computational effort in the form of a > proof-of-work, and only these nodes can participate in the consues > process.  However, the electorate can be misled by non-voting nodes > which can reshape the network to benefit an individual adversary. > > > Chain Fitness > > Any solution to byzantine fault-injection or the intentional formation > of disagreements must be fully decentralized. A blockchain is allowed > to split because there is ambiguity in the Nakamoto proof-of-work, > which creates the environment for a race-condition to form. To resolve > this, Floating-Point Nakamoto Consensus makes it increasingly more > expensive to replace the current winning block. This added cost comes > from a method of disagreement resolution where not every solution > block is the same value, and a more-fit solution is always chosen over > a weaker solution. Any adversary attempting to have a weaker chain to > win out would have to overcome a kind of relay-race, whereby the > winning team’s strength is carried forward and the loser will have to > work harder and harder to maintain the disagreement.  In most cases > Floating-Point Nakamoto Consensus will prevent a re-org blockchain > from ever going past a single block thereby expediting the formation > of a global consensus.  Floating-Point Nakamoto Consensus cements the > lead of the winner and to greatly incentivize the network to adopt the > dominant chain no matter how many valid solutions are advertised, or > what order they arrive. > > > The first step in Floating-Point Nakamoto Consensus is that all nodes > in the network should continue to conduct traditional Nakamoto > Consensus and the formation of new blocks is dictated by the same > zero-prefix proof-of-work requirements.  If at any point there are two > solution blocks advertised for the same height - then a floating-point > fitness value is calculated and the solution with the higher fitness > value is the winner which is then propagated to all neighbors. Any > time two solutions are advertised then a re-org is inevitable and it > is in the best interest of all miners to adopt the most-fit block, > failing to do so risks wasting resources on a mining of a block that > would be discarded.  To make sure that incentives are aligned, any > zero-prefix proof of work could be the next solution, but now in order > to replace the current winning solution an adversary would need a > zero-prefix block that is also more fit that the current solution - > which is much more computationally expensive to produce. > > Any changes to the current tip of the blockchain must be avoided as > much as possible. To avoid thrashing between two or more competitive > solutions, each replacement can only be done if it is more fit, > thereby proving that it has an increased expense.  If at any point two > solutions of the same height are found it means that eventually some > node will have to replace their tip - and it is better to have it done > as quickly as possible so that consensus is maintained. > > > In order to have a purely decentralized solution, this kind of > agreement must be empirically derived from the existing proof-of-work > so that it is universally and identically verifiable by all nodes on > the network.  Additionally, this fitness-test evaluation needs to > ensure that no two competing solutions can be numerically equivalent. > > > Let us suppose that two or more valid solutions will be proposed for > the same block.  To weigh the value of a given solution, let's > consider a solution for block 639254, in which the following hash was > proposed: > >     00000000000000000008e33faa94d30cc73aa4fd819e58ce55970e7db82e10f8 > > > There are 19 zeros, and the remaining hash in base 16 starts with 9e3 > and ends with f8.  This can value can be represented in floating point as: > >     19.847052573336114130069196154809453027792121882588614904 > > > To simplify further lets give this block a single whole number to > represent one complete solution, and use a rounded floating-point > value to represent some fraction of additional work exerted by the miner. > >    1.847 > > > Now let us suppose that a few minutes later another solution is > advertised to the network shown in base16 below: > >     000000000000000000028285ed9bd2c774136af8e8b90ca1bbb0caa36544fbc2 > > > The solution above also has 19 prefixed zeros, and is being broadcast > for the same blockheight value of 639254 - and a fitness score of > 1.282.  With Nakamoto Consensus both of these solutions would be > equivalent and a given node would adopt the one that it received > first.  In Floating-Post Nakamoto Consensus, we compare the fitness > scores and keep the highest.  In this case no matter what happens - > some nodes will have to change their tip and a fitness test makes sure > this happens immediately. > > > With both solutions circulating in the network - any node who has > received both proof-of-works should know 1.847 is the current highest > value, and shouldn’t need to validate any lower-valued solution.  In > fact this fitness value has a high degree of confidence that it won’t > be unseated by a larger value - being able to produce a proof-of-work > with 19 0’s and a decimal component greater than 0.847 is > non-trivial.  As time passes any nodes that received a proof-of-work > with a value 1.204 - their view of the network should erode as these > nodes adopt the 1.847 version of the blockchain. > > All nodes are incentivized to support the solution with the highest > fitness value - irregardless of which order these proof-of-work were > validated. Miners are incentivized to support the dominant chain which > helps preserve the global consensus. > > > Let us assume that the underlying cryptographic hash-function used to > generate a proof-of-work is an ideal primitive, and therefore a node > cannot force the outcome of the non-zero component of their > proof-of-work.  Additionally if we assume an ideal cipher then the > fitness of all possible solutions is gaussian-random. With these > assumptions then on average a new solution would split the keyspace of > remaining solutions in half.  Given that the work needed to form a  > new block remains a constant at 19 blocks for this period - it is > cheaper to produce a N+1 block that has any floating point value as > this is guaranteed to be adopted by all nodes if it is the first > solution.  To leverage a chain replacement on nodes conducting > Floating-Point Nakamoto Consensus a malicious miner would have to > expend significantly more resources. > > > Each successive n+1 solution variant of the same block-height must > therefore on average consume half of the remaining finite keyspace. > Resulting in a the n+1 value not only needed to overcome the 19 zero > prefix, but also the non-zero fitness test.   It is possible for an > adversary to waste their time making a 19 where n+1 was not greater, > at which point the entire network will have had a chance to move on > with the next solution.  With inductive reasoning, we can see that a > demissiniong keyspace increases the amount of work needed to find a > solution that also meets this new criteria. > > > Now let us assume a heavily-fragmented network where some nodes have > gotten one or both of the solutions.  In the case of nodes that > received the proof-of-work solution with a fitness of 1.847, they will > be happily mining on this version of the blockchain. The nodes that > have gotten both 1.847 and .240 will still be mining for the 1.847 > domainite version, ensuring a dominant chain.  However, we must assume > some parts of the network never got the message about 1.847 proof of > work, and instead continued to mine using a value of 1.240 as the > previous block.   Now, let’s say this group of isolated miners manages > to present a new conflicting proof-of-work solution for 639255: > > >      000000000000000000058d8ebeb076584bb5853c80111bc06b5ada35463091a6 > > > The above base16 block has a fitness score of 1.532  The fitness value > for the previous block 639254 is added together: > > >      2.772 = 1.240 + 1.532 > > > In this specific case, no other solution has been broadcast for block > height 639255 - putting the weaker branch in the lead.  If the weaker > branch is sufficiently lucky, and finds a solution before the dominant > branch then this solution will have a higher overall fitness score, > and this solution will propagate as it has the higher value.  This is > also important for transactions on the network as they benefit from > using the most recently formed block - which will have the highest > local fitness score at the time of its discovery.  At this junction, > the weaker branch has an opportunity to prevail enterally thus ending > the split. > > > Now let us return to the DoS threat model and explore the worst-case > scenario created by byzantine fault injection. Let us assume that both > the weaker group and the dominant group have produced competing > proof-of-work solutions for blocks 639254 and 639255 respectively.  > Let’s assume that the dominant group that went with the 1.847 fitness > score - also produces a solution with a similar fitness value and > advertises the following solution to the network: > > > 0000000000000000000455207e375bf1dac0d483a7442239f1ef2c70d050c113 > > 19.414973649464574877549198290879237036867705594421756179 > > or > > 3.262 = 1.847 + 1.415 > > > A total of 3.262 is still dominant over the lesser 2.772 - in order to > overcome this - the 2nd winning block needs to make up for all of the > losses in the previous block.  In this scenario, in order for the > weaker chain to supplant the dominant chain it must overcome a -0.49 > point deficit. In traditional Nakamoto Consensus the nodes would see > both forks as authoritative equals which creates a divide in mining > capacity while two groups of miners search for the next block.  In > Floating-Point Nakamoto Consensus any nodes receiving both forks, > would prefer to mine on the chain with an overall fitness score of > +3.262 - making it even harder for the weaker chain to find miners to > compete in any future disagreement, thereby eroding support for the > weaker chain. This kind of comparison requires an empirical method for > determining fitness by miners following the same same system of rules > will insure a self-fulfilled outcome.  After all nodes adopt the > dominant chain normal Nakamoto Consuess can resume without having to > take into consideration block fitness. This example shows how > disagreement can be resolved more quickly if the network has a > mechanism to resolve ambiguity and de-incentivise dissent. > > > Soft Fork > > Blockchain networks that would like to improve the consensus > generation method by adding a fitness test should be able to do so > using a “Soft Fork” otherwise known as a compatible software update.  > By contrast a “Hard-Fork” is a separate incompatible network that does > not form the same consensus.  Floating-Point Nakamoto Consensus can be > implemented as a soft-fork because both patched, and non-patched nodes > can co-exist and non-patched nodes will benefit from a kind of herd > immunity in overall network stability.  This is because once a small > number of nodes start following the same rules then they will become > the deciding factor in which chain is chosen.  Clients that are using > only traditional Nakamoto Consensus will still agree with new clients > over the total chain length. Miners that adopt the new strategy early, > will be less likely to lose out on mining invalid solutions. > > > Conclusion > > Floating-Point Nakamoto consensus allows the network to form a > consensus more quickly by avoiding ambiguity allowing for determinism > to take hold. Bitcoin has become an essential utility, and attacks > against our networks must be avoided and adapting, patching and > protecting the network is a constant effort. An organized attack > against a cryptocurrency network will undermine the guarantees that > blockchain developers are depending on. > > > Any blockchain using Nakamoto Consensus can be modified to use a > fitness constraint such as the one used by a Floating-Point Nakamoto > Consensus.  An example implementation has been written and submitted > as a PR to the bitcoin core which is free to be adapted by other networks. > > > > > > > A complete implementation of Floating-Point Nakamoto consensus is in > the following pull request: > > https://github.com/bitcoin/bitcoin/pull/19665/files > > > Paper: > > https://github.com/in-st/Floating-Point-Nakamoto-Consensus > > https://in.st.capital > > > > _______________________________________________ > bitcoin-dev mailing list > bitcoin-dev@lists.linuxfoundation.org > https://lists.linuxfoundation.org/mailman/listinfo/bitcoin-dev --------------3FCAF818CF8B3F72DE2CF89D Content-Type: text/html; charset=utf-8 Content-Transfer-Encoding: base64 PGh0bWw+CiAgPGhlYWQ+CiAgICA8bWV0YSBodHRwLWVxdWl2PSJDb250ZW50LVR5cGUiIGNv bnRlbnQ9InRleHQvaHRtbDsgY2hhcnNldD1VVEYtOCI+CiAgPC9oZWFkPgogIDxib2R5Pgog ICAgPHA+SGksPC9wPgogICAgPHA+VGhpcyBpcyBhIHByZXR0eSBiaWcgZGVwYXJ0dXJlIGZy b20gY3VtdWxhdGl2ZSBQT1cuPGJyPgogICAgPC9wPgogICAgPHA+Q291bGQgeW91IGV4cGxh aW4gdG8gbWUgd2hhdCB5b3Ugc2VlIGhhcHBlbmluZyBpZiBhIG5vZGUgd2l0aAogICAgICB0 aGlzIHBhdGNoIGFuZCBubyBoaXN0b3J5IHN0YXJ0cyB0byBzeW5jLCBhbmQgc29tZSByYW5k b20gbm9kZQogICAgICBnaXZlcyBpdCBhIGJsb2NrIHdpdGggYSBiZXR0ZXIgZml0bmVzcyB0 ZXN0IGZvciBzYXkgaGVpZ2h0CiAgICAgIDI1MCwwMDA/IE5vIG90aGVyIHNvbHV0aW9uIHdp bGwgaGF2ZSBhIGJldHRlciBmaXRuZXNzIHRlc3QgYXQgdGhhdAogICAgICBoZWlnaHQsIHNv IGZyb20gbXkgdW5kZXJzdGFuZGluZyBpdHMgZ29pbmcgdG8gc3RvcCBzeW5jaW5nLiBIb3cK ICAgICAgYWJvdXQgZXZlbiBsYXRlciAtIHNheSB0aGlzIHByb3Bvc2FsIGlzIGFjdGl2YXRl ZCBhdCBibG9jawogICAgICA3NTAsMDAwLiBBdCA4NTAsMDAwLCBzb21lb25lIGRlY2lkZXMg aXQnZCBiZSBmdW4gdG8gcHVibGlzaCBhIG5ldwogICAgICBibG9jayA4MDAsMDAwIHdpdGgg YSBiZXR0ZXIgZml0bmVzcyB0ZXN0LiBXaGF0IGhhcHBlbnMgdGhlIDUwLDAwMAogICAgICBi bG9ja3M/PGJyPgogICAgPC9wPgogICAgPHA+SSBjYW4gaW1hZ2luZSB0aGUgbWluZXJzIG5v dCBiZWluZyBwYXJ0aWN1bGFybHkgaGFwcHkgYWJvdXQgaXQgLQogICAgICB0aGVpciBwcmV2 aW91c2x5IDUwOjUwIGNoYW5jZSAod2VsbCwgc29ydCBvZiwgaXQncyBiYXNlZCBvbgogICAg ICByZXNvdXJjZXMtIGNvbm5lY3Rpdml0eSwgdmFsaWRhdGlvbiBvdmVyaGVhZHMsIGV0Yykg dGhlaXIgdGllZAogICAgICBibG9jayB3b3VsZCBzdWNjZWVkLCB2cyB0aGUgc2l0dWF0aW9u IHdpdGggdGhpcyBjaGFuZ2UgLSBibG9ja3MKICAgICAgdGhhdCBhcmUgaW5oZXJlbnRseSBt b3JlIG9yIGxlc3MgdmFsaWQgdGhhbiBvdGhlcnMuPGJyPgogICAgPC9wPgogICAgPHA+SSB0 aGluayB0aGVzZSBkYXlzIHBlb3BsZSBhcmUgbW9yZSBmb2N1c2VkIG9uIGltcHJvdmluZyBk ZWZlbmNlcwogICAgICBhdCB0aGUgbmV0d29ya2luZyBsYXllciB0aGFuIGluIHRoZSBjb25z ZW5zdXMgbGF5ZXIgLSBlc3BlY2lhbGx5CiAgICAgIHdoZW4gaXQgYWZmZWN0cyBtaW5pbmcg aW5jZW50aXZlcy4gSSBkb24ndCBzZWUgaG93IHBlb3BsZSB3aWxsCiAgICAgIHRha2UgdGhp cyBzZXJpb3VzbHkgLSBlc3BlY2lhbGx5IHdoZW4geW91IHJlZ2FyZCBob3cgb2Z0ZW4KICAg ICAgY29uc2Vuc3VzIGNoYW5nZXMgYXJlIG1hZGUgdG8gX2ZpeF8gc29tZXRoaW5nIGFzIG9w cG9zZWQgdG8gYWRkCiAgICAgIHNvbWV0aGluZyBuZXcuIDxicj4KICAgIDwvcD4KICAgIDxw PkJlc3QgcmVnYXJkcyw8L3A+CiAgICA8cD5UaG9tYXM8YnI+CiAgICA8L3A+CiAgICA8ZGl2 IGNsYXNzPSJtb3otY2l0ZS1wcmVmaXgiPk9uIDkvMjQvMjAgODo0MCBQTSwgTWlrZSBCcm9v a3MgdmlhCiAgICAgIGJpdGNvaW4tZGV2IHdyb3RlOjxicj4KICAgIDwvZGl2PgogICAgPGJs b2NrcXVvdGUgdHlwZT0iY2l0ZSIKY2l0ZT0ibWlkOkNBUGFNSGZUU3F5RERCZm1kTT16LUZ0 TFJUVXhlZDJwTm1vT0Z4LXQydzBNeVpfbWdDZ0BtYWlsLmdtYWlsLmNvbSI+CiAgICAgIDxt ZXRhIGh0dHAtZXF1aXY9ImNvbnRlbnQtdHlwZSIgY29udGVudD0idGV4dC9odG1sOyBjaGFy c2V0PVVURi04Ij4KICAgICAgPGRpdiBkaXI9Imx0ciI+wqAgSGV5IEV2ZXJ5b25lLAogICAg ICAgIDxkaXY+PGJyPgogICAgICAgIDwvZGl2PgogICAgICAgIDxkaXY+wqBBIGxvdCBvZiB3 b3JrIGhhcyBnb25lIGludG8gdGhpcyBwYXBlciwgYW5kIHRoZSBjdXJyZW50CiAgICAgICAg ICByZXZpc2lvbiBoYXMgYmVlbiB3ZWxsIHJlY2VpdmVkIGFuZCB0aGVyZSBpcyBhIGxvdCBv ZgogICAgICAgICAgZXhjaXRlbWVudCBvbiB0aGlzIHNpZGUgdG/CoGJlIHNoYXJpbmcgaXQg d2l0aCB5b3UgdG9kYXkuIFRoZXJlCiAgICAgICAgICBhcmUgc28gZmV3IHBlb3BsZSB0aGF0 IHRydWx5IHVuZGVyc3RhbmQgdGhpcyB0b3BpYywgYnV0IHdlIGFyZQogICAgICAgICAgYWxs IHB1bGxpbmcgaW4gdGhlIHNhbWUgZGlyZWN0aW9uIHRvIG1ha2UgQml0Y29pbiBiZXR0ZXIg YW5kCiAgICAgICAgICBpdCBzaG93cy7CoCBJdCBpcyB3aWxkbHkgdW5kZXJyYXRlZCB0aGF0 IGZ1dHVyZSBwcm9vZmluZyB3YXMKICAgICAgICAgIG5ldmVyIHJlYWxseSBhIGNvbnNpZGVy YXRpb27CoGluIHRoZSBpbml0aWFswqBkZXNpZ24gLSBidXQgaGVyZQogICAgICAgICAgd2Ug YXJlIGEgZGVjYWRlIGxhdGVyIHdpdGggYW1hemluZyBzb2x1dGlvbnMgbGlrZSBTZWdXaXQK ICAgICAgICAgIHdoaWNowqBnaXZlcyB1cyBhIHJlYWwgZnV0dXJlLXByb29maW5nIGZyYW1l d29yay7CoCBUaGUgZmFjdAogICAgICAgICAgdGhhdCBmdXR1cmUtcHJvb2Zpbmcgd2FzIGFk ZGVkIHRvIEJpdGNvaW4gd2l0aCBhIHNvZnRmb3JrCiAgICAgICAgICBnaXZlcyBtZSBnb29z ZWJ1bXBzLsKgSSdkIGp1c3QgbGlrZSB0byB0YWtlIHRoZSB0aW1lIHRvIHRoYW5rCiAgICAg ICAgICB0aGUgcGVvcGxlIHdobyB3b3JrZWQgb24gU2VnV2l0IGFuZCBpdCBpcyBhbiBhcHBy ZWNpYXRpb27CoHRoYXQKICAgICAgICAgIGNvbWVzIHVwIGluIGNvbnZlcnNhdGlvbiBvZiBo b3cgZGlmZmljdWx0IGFuZCBuZWNlc3NhcnkgdGhhdAogICAgICAgICAgcHJvY2VzcyB3YXMs wqBhbmQgdGhpcyBhcHByZWNpYXRpb24gbWF5IG5vdCBiZSB2b2NhbGl6ZWQgdG8gdGhlCiAg ICAgICAgICBncmVhdCBwZW9wbGUgd2hvIHdvcmtlZCBvbiBpdC4gVGhlIGZhY3QgdGhhdCBC aXRjb2luIGtlZXBzCiAgICAgICAgICBpbXByb3ZpbmcgYW5kIGlzIGFibGUgdG8gcmVzcG9u ZCB0byBuZXcgdGhyZWF0cyBpcyBub3RoaW5nCiAgICAgICAgICBzaG9ydCBvZiBhbWF6aW5n IC0gdGhhbmsgeW91IGV2ZXJ5b25lIGZvciBhIGdyZWF0IHByb2plY3QuPC9kaXY+CiAgICAg ICAgPGRpdj48YnI+CiAgICAgICAgPC9kaXY+CiAgICAgICAgPGRpdj5UaGlzIGN1cnJlbnQg cHJvcG9zYWwgcmVhbGx5IGhhcyBub3RoaW5nIHRvIGRvIHdpdGjCoFNlZ1dpdAogICAgICAg ICAgLSBidXQgaXQgaXMgYW4gdXBkYXRlIHRoYXQgd2lsbCBtYWtlIHRoZSBuZXR3b3JrIGEg bGl0dGxlCiAgICAgICAgICBiZXR0ZXIgZm9yIHRoZSBmdXR1cmUsIGFuZCB3ZSBob3BlIHlv dSBlbmpveSB0aGUgcGFwZXIuwqA8L2Rpdj4KICAgICAgICA8ZGl2Pjxicj4KICAgICAgICA8 L2Rpdj4KICAgICAgICA8ZGl2PlBERjo8YnI+CiAgICAgICAgICA8YQpocmVmPSJodHRwczov L2dpdGh1Yi5jb20vaW4tc3QvRmxvYXRpbmctUG9pbnQtTmFrYW1vdG8tQ29uc2Vuc3VzL2Js b2IvbWFzdGVyL0Zsb2F0aW5nLVBvaW50JTIwTmFrYW1vdG8lMjBDb25zZW5zdXMucGRmIgog ICAgICAgICAgICB0YXJnZXQ9Il9ibGFuayIgbW96LWRvLW5vdC1zZW5kPSJ0cnVlIj5odHRw czovL2dpdGh1Yi5jb20vaW4tc3QvRmxvYXRpbmctUG9pbnQtTmFrYW1vdG8tQ29uc2Vuc3Vz L2Jsb2IvbWFzdGVyL0Zsb2F0aW5nLVBvaW50JTIwTmFrYW1vdG8lMjBDb25zZW5zdXMucGRm PC9hPjwvZGl2PgogICAgICAgIDxkaXY+wqA8L2Rpdj4KICAgICAgICA8ZGl2PlB1bGwgUmVx dWVzdDo8YnI+CiAgICAgICAgICA8c3BhbgppZD0iZ21haWwtbV8yNzY2MjA5MzUwNDA1NTEz MTE2Z21haWwtZG9jcy1pbnRlcm5hbC1ndWlkLWUwOGQ0MjAzLTdmZmYtMTE0MC03MDIyLThl Y2ZlODBlOWZlYSI+PGEKICAgICAgICAgICAgICBocmVmPSJodHRwczovL2dpdGh1Yi5jb20v Yml0Y29pbi9iaXRjb2luL3B1bGwvMTk2NjUvZmlsZXMiCiAgICAgICAgICAgICAgdGFyZ2V0 PSJfYmxhbmsiIHN0eWxlPSJ0ZXh0LWRlY29yYXRpb24tbGluZTpub25lIgogICAgICAgICAg ICAgIG1vei1kby1ub3Qtc2VuZD0idHJ1ZSI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMXB0 O2ZvbnQtZmFtaWx5OkFyaWFsO2JhY2tncm91bmQtY29sb3I6dHJhbnNwYXJlbnQ7Zm9udC12 YXJpYW50LW51bWVyaWM6bm9ybWFsO2ZvbnQtdmFyaWFudC1lYXN0LWFzaWFuOm5vcm1hbDt0 ZXh0LWRlY29yYXRpb24tbGluZTp1bmRlcmxpbmU7dmVydGljYWwtYWxpZ246YmFzZWxpbmU7 d2hpdGUtc3BhY2U6cHJlLXdyYXAiPmh0dHBzOi8vZ2l0aHViLmNvbS9iaXRjb2luL2JpdGNv aW4vcHVsbC8xOTY2NS9maWxlczwvc3Bhbj48L2E+PC9zcGFuPsKgwqA8YnI+CiAgICAgICAg PC9kaXY+CiAgICAgICAgPGRpdj48YnI+CiAgICAgICAgPC9kaXY+CiAgICAgICAgPGRpdj4t LS08L2Rpdj4KICAgICAgICA8ZGl2Pjxicj4KICAgICAgICA8L2Rpdj4KICAgICAgICA8ZGl2 PjxzcGFuCmlkPSJnbWFpbC1tXzI3NjYyMDkzNTA0MDU1MTMxMTZnbWFpbC1kb2NzLWludGVy bmFsLWd1aWQtNzdhMjQzMmItN2ZmZi02MmMzLTA3NTMtZmU5MzY1MmNhNTEyIj48YnI+CiAg ICAgICAgICAgIDxwIGRpcj0ibHRyIgpzdHlsZT0ibGluZS1oZWlnaHQ6MS4zODt0ZXh0LWFs aWduOmNlbnRlcjttYXJnaW4tdG9wOjBwdDttYXJnaW4tYm90dG9tOjBwdCI+PHNwYW4gc3R5 bGU9ImZvbnQtc2l6ZToxNHB0O2ZvbnQtZmFtaWx5OkFyaWFsO2NvbG9yOnJnYigwLDAsMCk7 YmFja2dyb3VuZC1jb2xvcjp0cmFuc3BhcmVudDtmb250LXZhcmlhbnQtbnVtZXJpYzpub3Jt YWw7Zm9udC12YXJpYW50LWVhc3QtYXNpYW46bm9ybWFsO3ZlcnRpY2FsLWFsaWduOmJhc2Vs aW5lO3doaXRlLXNwYWNlOnByZS13cmFwIj5GbG9hdGluZy1Qb2ludCBOYWthbW90byBDb25z ZW5zdXM8L3NwYW4+PC9wPgogICAgICAgICAgICA8YnI+CiAgICAgICAgICAgIDxwIGRpcj0i bHRyIgpzdHlsZT0ibGluZS1oZWlnaHQ6MS4zODttYXJnaW4tbGVmdDozNnB0O21hcmdpbi10 b3A6MHB0O21hcmdpbi1ib3R0b206MHB0Ij48c3BhbiBzdHlsZT0iZm9udC1zaXplOjlwdDtm b250LWZhbWlseTpBcmlhbDtjb2xvcjpyZ2IoMCwwLDApO2JhY2tncm91bmQtY29sb3I6dHJh bnNwYXJlbnQ7Zm9udC13ZWlnaHQ6NzAwO2ZvbnQtdmFyaWFudC1udW1lcmljOm5vcm1hbDtm b250LXZhcmlhbnQtZWFzdC1hc2lhbjpub3JtYWw7dmVydGljYWwtYWxpZ246YmFzZWxpbmU7 d2hpdGUtc3BhY2U6cHJlLXdyYXAiPkFic3RyYWN0IOKAlCA8L3NwYW4+PHNwYW4gc3R5bGU9 ImZvbnQtc2l6ZTo5cHQ7Zm9udC1mYW1pbHk6QXJpYWw7Y29sb3I6cmdiKDAsMCwwKTtiYWNr Z3JvdW5kLWNvbG9yOnRyYW5zcGFyZW50O2ZvbnQtdmFyaWFudC1udW1lcmljOm5vcm1hbDtm b250LXZhcmlhbnQtZWFzdC1hc2lhbjpub3JtYWw7dmVydGljYWwtYWxpZ246YmFzZWxpbmU7 d2hpdGUtc3BhY2U6cHJlLXdyYXAiPkl0IGhhcyBiZWVuIHNob3duIHRoYXQgTmFrYW1vdG8g Q29uc2Vuc3VzIGlzIHZlcnkgdXNlZnVsIGluIHRoZSBmb3JtYXRpb24gb2YgbG9uZy10ZXJt IGdsb2JhbCBhZ3JlZW1lbnQg4oCUIGFuZCBoYXMgaXNzdWVzIHdpdGggc2hvcnQtdGVybSBk aXNhZ3JlZW1lbnQgd2hpY2ggY2FuIGxlYWQgdG8gcmUtb3JnYW5pemF0aW9uICjigJxvci1v cmfigJ0pIG9mIHRoZSBibG9ja2NoYWluLsKgIEEgbWFsaWNpb3VzIG1pbmVyIHdpdGgga25v d2xlZGdlIG9mIGEgc3BlY2lmaWMga2luZCBvZiBkZW5pYWwtb2Ytc2VydmljZSAoRG9TKSB2 dWxuZXJhYmlsaXR5IGNhbiBnYWluIGFuIHVuZmFpciBhZHZhbnRhZ2UgaW4gdGhlIGN1cnJl bnQgQml0Y29pbiBuZXR3b3JrLCBhbmQgY2FuIGJlIHVzZWQgdG8gdW5kZXJtaW5lIHRoZSBz ZWN1cml0eSBndWFyYW50ZWVzIHRoYXQgZGV2ZWxvcGVycyByZWx5IHVwb24uwqAgRmxvYXRp bmctUG9pbnQgTmFrYW1vdG8gY29uc2Vuc3UgbWFrZXMgaXQgbW9yZSBleHBlbnNpdmUgdG8g cmVwbGFjZSBhbiBhbHJlYWR5IG1pbmVkIGJsb2NrIHZzLiBjcmVhdGlvbiBvZiBhIG5ldyBi bG9jaywgYW5kIGJ5IHJlc29sdmluZyBhbWJpZ3VpdHkgb2YgY29tcGV0aXRpb24gc29sdXRp b25zIGl0IGhlbHBzIGFjaGlldmUgZ2xvYmFsIGNvbnN1bWVycyBtb3JlIHF1aWNrbHkuwqAg QSBmbG9hdGluZy1wb2ludCBmaXRuZXNzIHRlc3Qgc3Ryb25nbHkgaW5jZW50aXZpc2VzIHRo ZSBjb3JyZWN0IG5ldHdvcmsgYmVoYXZpb3IsIGFuZCBwcmV2ZW50cyBkaXNhZ3JlZW1lbnQg ZnJvbSBldmVyIGZvcm1pbmcgaW4gdGhlIGZpcnN0IHBsYWNlLjwvc3Bhbj48L3A+CiAgICAg ICAgICAgIDxoNCBkaXI9Imx0ciIKICAgICAgICAgICAgICBzdHlsZT0ibGluZS1oZWlnaHQ6 MS4zODttYXJnaW4tdG9wOjE0cHQ7bWFyZ2luLWJvdHRvbTo0cHQiPjxzcGFuIHN0eWxlPSJm b250LXNpemU6MTJwdDtmb250LWZhbWlseTpBcmlhbDtjb2xvcjpyZ2IoMTAyLDEwMiwxMDIp O2JhY2tncm91bmQtY29sb3I6dHJhbnNwYXJlbnQ7Zm9udC13ZWlnaHQ6NDAwO2ZvbnQtdmFy aWFudC1udW1lcmljOm5vcm1hbDtmb250LXZhcmlhbnQtZWFzdC1hc2lhbjpub3JtYWw7dmVy dGljYWwtYWxpZ246YmFzZWxpbmU7d2hpdGUtc3BhY2U6cHJlLXdyYXAiPkludHJvZHVjdGlv bjwvc3Bhbj48L2g0PgogICAgICAgICAgICA8cCBkaXI9Imx0ciIKICAgICAgICAgICAgICBz dHlsZT0ibGluZS1oZWlnaHQ6MS4zODttYXJnaW4tdG9wOjBwdDttYXJnaW4tYm90dG9tOjBw dCI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMXB0O2ZvbnQtZmFtaWx5OkFyaWFsO2NvbG9y OnJnYigwLDAsMCk7YmFja2dyb3VuZC1jb2xvcjp0cmFuc3BhcmVudDtmb250LXZhcmlhbnQt bnVtZXJpYzpub3JtYWw7Zm9udC12YXJpYW50LWVhc3QtYXNpYW46bm9ybWFsO3ZlcnRpY2Fs LWFsaWduOmJhc2VsaW5lO3doaXRlLXNwYWNlOnByZS13cmFwIj5UaGUgQml0Y29pbiBwcm90 b2NvbCB3YXMgY3JlYXRlZCB0byBwcm92aWRlIGEgZGVjZW50cmFsaXplZCBjb25zZW5zdXMg b24gYSBmdWxseSBkaXN0cmlidXRlZCBwMnAgbmV0d29yay7CoCBBIHByb2JsZW0gYXJpc2Vz IHdoZW4gbW9yZSB0aGFuIG9uZSBwcm9vZi1vZi13b3JrIGlzIHByZXNlbnRlZCBhcyB0aGUg bmV4dCBzb2x1dGlvbiBibG9jayBpbiB0aGUgYmxvY2tjaGFpbi7CoCBUd28gc29sdXRpb25z IG9mIHRoZSBzYW1lIGhlaWdodCBhcmUgc2VlbiBhcyBhdXRob3JpdGF0aXZlIGVxdWFscyB3 aGljaCBpcyB0aGUgYmFzaXMgb2YgYSBncm93aW5nIGRpc2FncmVlbWVudC4gQSBub2RlIHdp bGwgYWRvcHQgdGhlIGZpcnN0IHNvbHV0aW9uIHNlZW4sIGFzIGJvdGggc29sdXRpb25zIHBy b3BhZ2F0ZSBhY3Jvc3MgdGhlIG5ldHdvcmsgYSByYWNlIGNvbmRpdGlvbiBvZiBkaXNhZ3Jl ZW1lbnQgaXMgZm9ybWVkLiBUaGlzIHJhY2UgY29uZGl0aW9uIGNhbiBiZSBjb250cm9sbGVk IGJ5IGJ5emVudGllbmUgZmF1bHQgaW5qZWN0aW9uIGNvbW1vbmx5IHJlZmVycmVkIHRvIGFz IGFuIOKAnGVjbGlwc2luZ+KAnSBhdHRhY2suwqAgV2hlbiB0d28gc2VnbWVudHMgb2YgdGhl IG5ldHdvcmsgZGlzYWdyZWUgaXQgY3JlYXRlcyBhIG1vbWVudCBvZiB3ZWFrbmVzcyBpbiB3 aGljaCBsZXNzIHRoYW4gNTElIG9mIHRoZSBuZXR3b3Jr4oCZcyBjb21wdXRhdGlvbmFsIHJl c291cmNlcyBhcmUgcmVxdWlyZWQgdG8ga2VlcCB0aGUgbmV0d29yayBiYWxhbmNlZCBhZ2Fp bnN0IGl0c2VsZi7CoDwvc3Bhbj48L3A+CiAgICAgICAgICAgIDxoNCBkaXI9Imx0ciIKICAg ICAgICAgICAgICBzdHlsZT0ibGluZS1oZWlnaHQ6MS4zODttYXJnaW4tdG9wOjE0cHQ7bWFy Z2luLWJvdHRvbTo0cHQiPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTJwdDtmb250LWZhbWls eTpBcmlhbDtjb2xvcjpyZ2IoMTAyLDEwMiwxMDIpO2JhY2tncm91bmQtY29sb3I6dHJhbnNw YXJlbnQ7Zm9udC13ZWlnaHQ6NDAwO2ZvbnQtdmFyaWFudC1udW1lcmljOm5vcm1hbDtmb250 LXZhcmlhbnQtZWFzdC1hc2lhbjpub3JtYWw7dmVydGljYWwtYWxpZ246YmFzZWxpbmU7d2hp dGUtc3BhY2U6cHJlLXdyYXAiPk5ha2Ftb3RvIENvbnNlbnN1czwvc3Bhbj48L2g0PgogICAg ICAgICAgICA8cCBkaXI9Imx0ciIKICAgICAgICAgICAgICBzdHlsZT0ibGluZS1oZWlnaHQ6 MS4zODttYXJnaW4tdG9wOjBwdDttYXJnaW4tYm90dG9tOjBwdCI+PHNwYW4gc3R5bGU9ImZv bnQtc2l6ZToxMXB0O2ZvbnQtZmFtaWx5OkFyaWFsO2NvbG9yOnJnYigwLDAsMCk7YmFja2dy b3VuZC1jb2xvcjp0cmFuc3BhcmVudDtmb250LXZhcmlhbnQtbnVtZXJpYzpub3JtYWw7Zm9u dC12YXJpYW50LWVhc3QtYXNpYW46bm9ybWFsO3ZlcnRpY2FsLWFsaWduOmJhc2VsaW5lO3do aXRlLXNwYWNlOnByZS13cmFwIj5OYWthbW90byBDb25zZW5zdXMgaXMgdGhlIHByb2Nlc3Mg b2YgcHJvdmluZyBjb21wdXRhdGlvbmFsIHJlc291cmNlcyBpbiBvcmRlciB0byBkZXRlcm1p bmUgZWxpZ2liaWxpdHkgdG8gcGFydGljaXBhdGUgaW4gdGhlIGRlY2lzaW9uIG1ha2luZyBw cm9jZXNzLsKgIElmIHRoZSBvdXRjb21lIG9mIGFuIGVsZWN0aW9uIHdlcmUgYmFzZWQgb24g b25lIG5vZGUgKG9yIG9uZS1JUC1hZGRyZXNzLW9uZS12b3RlKSwgdGhlbiByZXByZXNlbnRh dGlvbiBjb3VsZCBiZSBzdWJ2ZXJ0ZWQgYnkgYW55b25lIGFibGUgdG8gYWxsb2NhdGUgbWFu eSBJUHMuIEEgY29uc2Vuc3VzIGlzIG9ubHkgZm9ybWVkIHdoZW4gdGhlIHByZXZhaWxpbmcg ZGVjaXNpb24gaGFzIHRoZSBncmVhdGVzdCBwcm9vZi1vZi13b3JrIGVmZm9ydCBpbnZlc3Rl ZCBpbiBpdC4gSW4gb3JkZXIgZm9yIGEgTmFrYW1vdG8gQ29uc2Vuc3VzIHRvIG9wZXJhdGUs IHRoZSBuZXR3b3JrIG11c3QgZW5zdXJlIHRoYXQgaW5jZW50aXZlcyBhcmUgYWxpZ25lZCBz dWNoIHRoYXQgdGhlIHJlc291cmNlcyBuZWVkZWQgdG8gc3VidmVydCBhIHByb29mLW9mLXdv cmsgYmFzZWQgY29uc2Vuc3VzIG91dHdlaWdoIHRoZSByZXNvdXJjZXMgZ2FpbmVkIHRocm91 Z2ggaXRzIGV4cGxvaXRhdGlvbi4gSW4gdGhpcyBjb25zZW5zdXMgbW9kZWwsIHRoZSBwcm9v Zi1vZi13b3JrIHJlcXVpcmVtZW50cyBmb3IgdGhlIGNyZWF0aW9uIG9mIHRoZSBuZXh0IHZh bGlkIHNvbHV0aW9uIGhhcyB0aGUgZXhhY3Qgc2FtZSBjb3N0IGFzIHJlcGxhY2luZyB0aGUg Y3VycmVudCBzb2x1dGlvbi4gVGhlcmUgaXMgbm8gcGVuYWx0eSBmb3IgZGlzaG9uZXN0eSwg YW5kIHRoaXMgaGFzIHdvcmtlZCB3ZWxsIGluIHByYWN0aWNlIGJlY2F1c2UgdGhlIG1ham9y aXR5IG9mIHRoZSBub2RlcyBvbiB0aGUgbmV0d29yayBhcmUgaG9uZXN0IGFuZCB0cmFuc3Bh cmVudCwgd2hpY2ggaXMgYSBzdWJzdGFudGlhbCBiYXJyaWVyIGZvciBhIHNpbmdsZSBkaXNo b25lc3Qgbm9kZSB0byBvdmVyY29tZS48L3NwYW4+PC9wPgogICAgICAgICAgICA8YnI+CiAg ICAgICAgICAgIDxwIGRpcj0ibHRyIgogICAgICAgICAgICAgIHN0eWxlPSJsaW5lLWhlaWdo dDoxLjM4O21hcmdpbi10b3A6MHB0O21hcmdpbi1ib3R0b206MHB0Ij48c3BhbiBzdHlsZT0i Zm9udC1zaXplOjExcHQ7Zm9udC1mYW1pbHk6QXJpYWw7Y29sb3I6cmdiKDAsMCwwKTtiYWNr Z3JvdW5kLWNvbG9yOnRyYW5zcGFyZW50O2ZvbnQtdmFyaWFudC1udW1lcmljOm5vcm1hbDtm b250LXZhcmlhbnQtZWFzdC1hc2lhbjpub3JtYWw7dmVydGljYWwtYWxpZ246YmFzZWxpbmU7 d2hpdGUtc3BhY2U6cHJlLXdyYXAiPkEgbWluaW1hbCBuZXR3b3JrIHBlZXItdG8tcGVlciBz dHJ1Y3R1cmUgaXMgcmVxdWlyZWQgdG8gc3VwcG9ydCBOYWthbW90byBDb25lc3VzLCBhbmQg Zm9yIG91ciBwdXJwb3NlcyB0aGlzIGlzIGVudGlyZWx5IGRlY2VudHJhbGl6ZWQuIE1lc3Nh Z2VzIGFyZSBicm9hZGNhc3Qgb24gYSBiZXN0LWVmZm9ydCBiYXNpcywgYW5kIG5vZGVzIGNh biBsZWF2ZSBhbmQgcmVqb2luIHRoZSBuZXR3b3JrIGF0IHdpbGwsIGFjY2VwdGluZyB0aGUg bG9uZ2VzdCBwcm9vZi1vZi13b3JrIGNoYWluIGFzIHByb29mIG9mIHdoYXQgaGFwcGVuZWQg d2hpbGUgdGhleSB3ZXJlIGdvbmUuwqAgVGhpcyBkZXNpZ24gbWFrZXMgbm8gZ3VhcmFudGVl cyB0aGF0IHRoZSBwZWVycyBjb25uZWN0ZWQgZG8gbm90IG1pc3JlcHJlc2VudCB0aGUgbmV0 d29yayBvciBzbyBjYWxsZWQg4oCcZGlzaG9uZXN0IG5vZGVzLuKAnSBXaXRob3V0IGEgY2Vu dHJhbCBhdXRob3JpdHkgb3IgY2VudHJhbCB2aWV3IC0gYWxsIHBlZXJzIGRlcGVuZCBvbiB0 aGUgZGF0YSBwcm92aWRlZCBieSBuZWlnaGJvcmluZyBwZWVycyAtIHRoZXJlZm9yZSBhIGRp c2hvbmVzdCBub2RlIGNhbiBjb250aW51ZSB1bnRpbCBhIHBlZXIgaXMgYWJsZSB0byBtYWtl IGNvbnRhY3QgYW4gaG9uZXN0IG5vZGUuPC9zcGFuPjwvcD4KICAgICAgICAgICAgPGg0IGRp cj0ibHRyIgogICAgICAgICAgICAgIHN0eWxlPSJsaW5lLWhlaWdodDoxLjM4O21hcmdpbi10 b3A6MTRwdDttYXJnaW4tYm90dG9tOjRwdCI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMnB0 O2ZvbnQtZmFtaWx5OkFyaWFsO2NvbG9yOnJnYigxMDIsMTAyLDEwMik7YmFja2dyb3VuZC1j b2xvcjp0cmFuc3BhcmVudDtmb250LXdlaWdodDo0MDA7Zm9udC12YXJpYW50LW51bWVyaWM6 bm9ybWFsO2ZvbnQtdmFyaWFudC1lYXN0LWFzaWFuOm5vcm1hbDt2ZXJ0aWNhbC1hbGlnbjpi YXNlbGluZTt3aGl0ZS1zcGFjZTpwcmUtd3JhcCI+U2VjdXJpdHnCoDwvc3Bhbj48L2g0Pgog ICAgICAgICAgICA8cCBkaXI9Imx0ciIKICAgICAgICAgICAgICBzdHlsZT0ibGluZS1oZWln aHQ6MS4zODttYXJnaW4tdG9wOjBwdDttYXJnaW4tYm90dG9tOjBwdCI+PHNwYW4gc3R5bGU9 ImZvbnQtc2l6ZToxMXB0O2ZvbnQtZmFtaWx5OkFyaWFsO2NvbG9yOnJnYigwLDAsMCk7YmFj a2dyb3VuZC1jb2xvcjp0cmFuc3BhcmVudDtmb250LXZhcmlhbnQtbnVtZXJpYzpub3JtYWw7 Zm9udC12YXJpYW50LWVhc3QtYXNpYW46bm9ybWFsO3ZlcnRpY2FsLWFsaWduOmJhc2VsaW5l O3doaXRlLXNwYWNlOnByZS13cmFwIj5JbiB0aGlzIHRocmVhdCBtb2RlbCBsZXQgdXMgYXNz dW1lIGEgbWFsaWNpb3VzIG1pbmVyIHBvc3Nlc3NlcyBrbm93bGVkZ2Ugb2YgYW4gdW5wYXRj aGVkIERvUyB2dWxuZXJhYmlsaXR5ICjigJwwLWRheeKAnSkgd2hpY2ggd2lsbCBzdHJpY3Rs eSBwcmV2ZW50IGhvbmVzdCBub2RlcyBmcm9tIGNvbW11bmljYXRpbmcgdG8gbmV3IG1lbWJl cnMgb2YgdGhlIG5ldHdvcmsgLSBhIHNvLWNhbGxlZCDigJx0b3RhbCBlY2xpcHNlLuKAncKg IFRoZSBraW5kIG9mIERvUyB2dWxuZXJhYmlsaXR5IG5lZWRlZCB0byBjb25kdWN0IGFuIGVj bGlwc2UgZG9lcyBub3QgbmVlZCB0byBjb25zdW1lIGFsbCBDUFUgb3IgY29tcHV0YWl0bHkg YWJpbGl0eSBvZiB0YXJnZXQgbm9kZXMgLSBidXQgcmF0aGVyIHByZXZlbnQgdGFyZ2V0IG5v ZGVzIGZyb20gZm9ybWluZyBuZXcgY29ubmVjdGlvbnMgdGhhdCB3b3VsZCB1bmRlcm1pbmUg dGhlIGVjbGlwc2luZyBlZmZlY3QuIFRoZXNlIGtpbmRzIG9mIERvUyB2dWxuZXJhYmlsaXRp ZXMgYXJlIHNvbWV3aGF0IGxlc3Mgc3Vic3Rpb25hbCB0aGFuIGFjdHVhbGx5IGtub2NraW5n IGEgcG93ZXJmdWwtbWluaW5nIG5vZGUgb2ZmbGluZS7CoCBUaGlzIGNsYXNzIG9mIGF0dGFj a3MgYXJlIHZhbHVhYmxlIHRvIGFuIGFkdmVyc2FyeSBiZWNhdXNlIGluIG9yZGVyIGZvciBh biBob25lc3Qgbm9kZSB0byBwcm92ZSB0aGF0IGEgZGlzaG9uZXN0IG5vZGUgaXMgbHlpbmcg LSB0aGV5IHdvdWxkIG5lZWQgdG8gZm9ybSBhIGNvbm5lY3Rpb24gdG8gYSBzZWdtZW50IG9m IHRoZSBuZXR3b3JrIHRoYXQgaXNu4oCZdCBlbnRpcmVseSBzdXBwcmVzc2VkLiBMZXQgdXMg YXNzdW1lIGEgZGVmZW5zZS1pbi1kZXB0aCBzdHJhdGVneSBhbmQgcGxhbiBvbiB0aGlzIGtp bmQgb2YgZmFpbHVyZS48L3NwYW4+PC9wPgogICAgICAgICAgICA8YnI+CiAgICAgICAgICAg IDxwIGRpcj0ibHRyIgogICAgICAgICAgICAgIHN0eWxlPSJsaW5lLWhlaWdodDoxLjM4O21h cmdpbi10b3A6MHB0O21hcmdpbi1ib3R0b206MHB0Ij48c3BhbiBzdHlsZT0iZm9udC1zaXpl OjExcHQ7Zm9udC1mYW1pbHk6QXJpYWw7Y29sb3I6cmdiKDAsMCwwKTtiYWNrZ3JvdW5kLWNv bG9yOnRyYW5zcGFyZW50O2ZvbnQtdmFyaWFudC1udW1lcmljOm5vcm1hbDtmb250LXZhcmlh bnQtZWFzdC1hc2lhbjpub3JtYWw7dmVydGljYWwtYWxpZ246YmFzZWxpbmU7d2hpdGUtc3Bh Y2U6cHJlLXdyYXAiPkxldCB1cyBub3cgY29uc2lkZXIgdGhhdCB0aGUgQysrIEJpdGNvaW5k IGhhcyBhIGZpbml0ZSBudW1iZXIgb2Ygd29ya2VyIHRocmVhZHMgYW5kIGEgZmluaXRlIG51 bWJlciBvZiBjb25uZWN0aW9ucyB0aGF0IGNhbiBiZSBzZXJ2aWNlZCBieSB0aGVzZSB3b3Jr ZXJzLsKgIFdoZW4gYSBydWRlIGNsaWVudCBvY2N1cGllcyBhbGwgY29ubmVjdGlvbnMgLSB0 aGVuIGEgcGlkZ2luLWhvbGUgcHJpbmNpcGxlIGNvbWVzIGludG8gcGxheS4gSWYgYSBuZXR3 b3JrJ3MgbWF4aW11bSBjYXBhY2l0eSBmb3IgY29ubmVjdGlvbiBoYW5kbGVycyDigJhr4oCZ LCBpcyB0aGUgc3VtIG9mIGFsbCBhdmFpbGFibGUgd29ya2VyIHRocmVhZHMgZm9yIGFsbCBu b2RlcyBpbiB0aGUgbmV0d29yaywgZXN0YWJsaXNoaW5nIOKAmGsrMeKAmSBjb25uZWN0aW9u cyBieSB0aGUgcGlkZ2luLWhvbGUgcHJpbmNpcGxlIHdpbGwgcHJldmVudCBhbnkgbmV3IGNv bm5lY3Rpb25zIGZyb20gYmVpbmcgZm9ybWVkIGJ5IGhvbmVzdCBub2RlcyAtIHRoZXJlYnkg Y3JlYXRpbmcgYSBwZXJmZWN0IGVjbGlwc2UgZm9yIGFueSBuZXcgbWluZXJzIGpvaW5pbmcg dGhlIG5ldHdvcmsgd291bGQgb25seSBiZSBhYmxlIHRvIGZvcm0gY29ubmVjdGlvbnMgd2l0 aCBkaXNob25lc3Qgbm9kZXMuPC9zcGFuPjwvcD4KICAgICAgICAgICAgPGJyPgogICAgICAg ICAgICA8cCBkaXI9Imx0ciIKICAgICAgICAgICAgICBzdHlsZT0ibGluZS1oZWlnaHQ6MS4z ODttYXJnaW4tdG9wOjBwdDttYXJnaW4tYm90dG9tOjBwdCI+PHNwYW4gc3R5bGU9ImZvbnQt c2l6ZToxMXB0O2ZvbnQtZmFtaWx5OkFyaWFsO2NvbG9yOnJnYigwLDAsMCk7YmFja2dyb3Vu ZC1jb2xvcjp0cmFuc3BhcmVudDtmb250LXZhcmlhbnQtbnVtZXJpYzpub3JtYWw7Zm9udC12 YXJpYW50LWVhc3QtYXNpYW46bm9ybWFsO3ZlcnRpY2FsLWFsaWduOmJhc2VsaW5lO3doaXRl LXNwYWNlOnByZS13cmFwIj5Ob3cgbGV04oCZcyBhc3N1bWUgYSBkaXNob25lc3Qgbm9kZSBp cyBtb2RpZmllZCBpbiB0d28gd2F5cyAtIGl0IGluY3JlYXNlcyB0aGUgbWF4aW11bSBjb25u ZWN0aW9uIGhhbmRsZXMgdG8gaHVuZHJlZHMgb2YgdGhvdXNhbmRzIGluc3RlYWQgb2YgdGhl IGN1cnJlbnQgdmFsdWUgd2hpY2ggaXMgYWJvdXQgMTAuIFRoZW4gdGhpcyBub2RlIGlzIG1v ZGlmaWVkIHRvIGlnbm9yZSBhbnkgc29sdXRpb24gYmxvY2tzIGZvdW5kIGJ5IGhvbmVzdCBu b2RlcyAtIHRodXMgZm9yY2luZyB0aGUgZGlzaG9uZXN0IHNpZGUgb2YgdGhlIG5ldHdvcmsg dG8ga2VlcCBzZWFyY2hpbmcgZm9yIGEgY29tcGV0aXRpdmUtc29sdXRpb24gdG8gc3BsaXQg dGhlIG5ldHdvcmsgaW4gdHdvIHNpZGVzIHRoYXQgZGlzYWdyZWUgYWJvdXQgd2hpY2ggdGlw IG9mIHRoZSBjaGFpbiB0byB1c2UuwqAgQW55IG5ldyBzb2x1dGlvbiBwcm9wYWdhdGVzIHRo cm91Z2ggbm9kZXMgb25lIGhvcCBhdCBhIHRpbWUuIFRoaXMgcHJvcGFnYXRpb24gY2FuIGJl IHByZWRpY3RlZCBhbmQgc2hhcGVkIGJ5IGRpc2hvbmVzdCBub24tdm90aW5nIG5vZGVzIHRo YXQgYXJlIGJlaW5nIHVzZWQgdG8gcGFzcyBtZXNzYWdlcyBmb3IgaG9uZXN0IG5vZGVzLjwv c3Bhbj48L3A+CiAgICAgICAgICAgIDxicj4KICAgICAgICAgICAgPHAgZGlyPSJsdHIiCiAg ICAgICAgICAgICAgc3R5bGU9ImxpbmUtaGVpZ2h0OjEuMzg7bWFyZ2luLXRvcDowcHQ7bWFy Z2luLWJvdHRvbTowcHQiPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTFwdDtmb250LWZhbWls eTpBcmlhbDtjb2xvcjpyZ2IoMCwwLDApO2JhY2tncm91bmQtY29sb3I6dHJhbnNwYXJlbnQ7 Zm9udC12YXJpYW50LW51bWVyaWM6bm9ybWFsO2ZvbnQtdmFyaWFudC1lYXN0LWFzaWFuOm5v cm1hbDt2ZXJ0aWNhbC1hbGlnbjpiYXNlbGluZTt3aGl0ZS1zcGFjZTpwcmUtd3JhcCI+QXQg dGhpcyBwb2ludCBhbiBhdHRhY2tlciBjYW4gZXhwZWRpdGUgdGhlIHRyYW5zbWlzc2lvbiBv ZiBvbmUgc29sdXRpb24sIHdoaWxlIHNsb3dpbmcgYW5vdGhlci4gSWYgZXZlciBhIGNvbXBl dGluZyBwcm9vZi1vZi13b3JrIGlzIGJyb2FkY2FzdGVkIHRvIHRoZSBuZXR3b3JrLCB0aGUg YWR2ZXJzYXJ5IHdpbGwgdXNlIHRoZWlyIG5ldHdvcmsgaW5mbHVlbmNlIHRvIHNwbGl0IGtu b3dsZWRnZSBvZiB0aGUgcHJvb2Ytb2Ytd29yayBhcyBjbG9zZSB0byDCvSBhcyBwb3NzaWJs ZS4gSWYgdGhlIG5ldHdvcmsgZWNsaXBzZSBpcyBwZXJmZWN0IHRoZW4gYW4gYWR2ZXJzYXJ5 IGNhbiBsZXZlcmFnZSBhbiBlaWdlbi12ZWN0b3Igb2YgY29tcHV0YXRpb25hbCBlZmZvcnQg dG8ga2VlcCB0aGUgZGlzYWdyZWVtZW50IGluIGJhbGFuY2UgZm9yIGFzIGxvbmcgYXMgaXQg aXMgbmVlZGVkLiBObyBtZWNoYW5pc20gaXMgc3RvcHBpbmcgdGhlIGF0dGFja2VyIGZyb20g YWRkaW5nIGFkZGl0aW9uYWwgY29tcHV0YXRpb24gcmVzb3VyY2VzIG9yIGFkanVzdGluZyB0 aGUgZWNsaXBzaW5nIGVmZmVjdCB0byBtYWtlIHN1cmUgdGhlIHN5c3RlbSBpcyBpbiBiYWxh bmNlLiDCoCBBcyBsb25nIGFzIHR3byBzaWRlcyBvZiB0aGUgbmV0d29yayBhcmUgcGVyZmVj dGx5IGluIGRpc2FncmVlbWVudCBhbmQgZ2VuZXJhdGluZyBuZXcgYmxvY2tzIC0gdGhlIGF0 dGFja2VyIGhhcyBpbnRlbnRpb25hbGx5IGNyZWF0ZWQgYSBoYXJkLWZvcmsgYWdhaW5zdCB0 aGUgd2lsbCBvZiB0aGUgbmV0d29yayBhcmNoaXRlY3RzIGFuZCBvcGVyYXRvcnMuIFRoZSBk aXNhZ3JlZW1lbnQgbmVlZHMgdG8gYmUga2VwdCBvcGVuIHVudGlsIHRoZSBhZHZlcnNhcnni gJlzIHRyYW5zYWN0aW9ucyBoYXZlIGJlZW4gdmFsaWRhdGVkIG9uIHRoZSBob25lc3QgY2hh aW4gLSBhdCB3aGljaCBwb2ludCB0aGUgYXR0YWNrZXIgd2lsbCBhZGQgbW9yZSBub2RlcyB0 byB0aGUgZGlzaG9uZXN0IGNoYWluIHRvIG1ha2Ugc3VyZSBpdCBpcyB0aGUgdWx0aW1hdGUg d2lubmVyIC0gdGh1cyByZXBsYWNpbmcgb3V0IHRoZSBob25lc3QgY2hhaW4gd2l0aCB0aGUg b25lIGdlbmVyYXRlZCBieSBkaXNob25lc3QgbWluZXJzLjwvc3Bhbj48L3A+CiAgICAgICAg ICAgIDxicj4KICAgICAgICAgICAgPHAgZGlyPSJsdHIiCiAgICAgICAgICAgICAgc3R5bGU9 ImxpbmUtaGVpZ2h0OjEuMzg7bWFyZ2luLXRvcDowcHQ7bWFyZ2luLWJvdHRvbTowcHQiPjxz cGFuIHN0eWxlPSJmb250LXNpemU6MTFwdDtmb250LWZhbWlseTpBcmlhbDtjb2xvcjpyZ2Io MCwwLDApO2JhY2tncm91bmQtY29sb3I6dHJhbnNwYXJlbnQ7Zm9udC12YXJpYW50LW51bWVy aWM6bm9ybWFsO2ZvbnQtdmFyaWFudC1lYXN0LWFzaWFuOm5vcm1hbDt2ZXJ0aWNhbC1hbGln bjpiYXNlbGluZTt3aGl0ZS1zcGFjZTpwcmUtd3JhcCI+VGhpcyBhdHRhY2sgaXMgY29udmVu aWVudCBmcm9tIHRoZSBhZHZlcnNhcnnigJlzIHBlcnNwZWN0aXZlLMKgIEJpdGNvaW4gYmVp bmcgYSBicm9hZGNhc3QgbmV0d29yayBhZHZlcnRpc2VzIHRoZSBJUCBhZGRyZXNzZXMgb2Yg YWxsIGFjdGl2ZSBub2RlcyAtIGFuZCBTaG9kYW4gYW5kIHRoZSBpbnRlcm5ldCBzY2Fubmlu ZyBwcm9qZWN0IGNhbiBmaW5kIGFsbCBwYXNzaXZlIG5vZGVzIHJlc3BvbmRpbmcgb24gVENQ IDgzMzMuwqAgVGhpcyBzaG91bGQgaWxsdW1pbmF0ZSBhbGwgaG9uZXN0IG5vZGVzIG9uIHRo ZSBuZXR3b3JrLCBhbmQgZXZlbiBob25lc3Qgbm9kZXMgdGhhdCBhcmUgdHJ5aW5nIHRvIG9i c2N1cmUgdGhlbXNlbHZlcyBieSBub3QgYW5ub3VuY2luZyB0aGVpciBwcmVzZW5jZS7CoCBU aGlzIG1lYW5zIHRoYXQgdGhlIGF0dGFja2VyIGRvZXNu4oCZdCBuZWVkIHRvIGtub3cgZXhh Y3RseSB3aGljaCBub2RlIGlzIHVzZWQgYnkgYSB0YXJnZXRlZCBleGNoYW5nZSAtIGlmIHRo ZSBhdHRhY2tlciBoYXMgc3ViZHVlZCBhbGwgbm9kZXMgdGhlbiB0aGUgdGFyZ2V0ZWQgZXhj aGFuZ2UgbXVzdCBiZSBvcGVyYXRpbmcgYSBub2RlIHdpdGhpbiB0aGlzIHNldCBvZiB0YXJn ZXRlZCBob25lc3Qgbm9kZXMuPC9zcGFuPjwvcD4KICAgICAgICAgICAgPGJyPgogICAgICAg ICAgICA8cCBkaXI9Imx0ciIKICAgICAgICAgICAgICBzdHlsZT0ibGluZS1oZWlnaHQ6MS4z ODttYXJnaW4tdG9wOjBwdDttYXJnaW4tYm90dG9tOjBwdCI+PHNwYW4gc3R5bGU9ImZvbnQt c2l6ZToxMXB0O2ZvbnQtZmFtaWx5OkFyaWFsO2NvbG9yOnJnYigwLDAsMCk7YmFja2dyb3Vu ZC1jb2xvcjp0cmFuc3BhcmVudDtmb250LXZhcmlhbnQtbnVtZXJpYzpub3JtYWw7Zm9udC12 YXJpYW50LWVhc3QtYXNpYW46bm9ybWFsO3ZlcnRpY2FsLWFsaWduOmJhc2VsaW5lO3doaXRl LXNwYWNlOnByZS13cmFwIj5EdXJpbmcgYSBzcGxpdCBpbiB0aGUgYmxvY2tjaGFpbiwgZWFj aCBzaWRlIG9mIHRoZSBuZXR3b3JrIHdpbGwgaG9ub3IgYSBzZXBhcmF0ZSBtZXJrZWwtdHJl ZSBmb3JtYXRpb24gYW5kIHRoZXJlZm9yZSBhIHNlcGFyYXRlIGxlZGdlciBvZiB0cmFuc2Fj dGlvbnMuIEFuIGFkdmVyc2FyeSB3aWxsIHRoZW4gYnJvYWRjYXN0IGN1cnJlbmN5IGRlcG9z aXRzIHRvIHB1YmxpYyBleGNoYW5nZXMsIGJ1dCBvbmx5IG9uIHRoZSB3ZWFrZXIgc2lkZSwg bGVhdmluZyB0aGUgc3Ryb25nZXIgc2lkZSB3aXRoIG5vIHRyYW5zYWN0aW9uIGZyb20gdGhl IGFkdmVyc2FyeS4gQW55IGV4Y2hhbmdlIHRoYXQgY29uZmlybXMgb25lIG9mIHRoZXNlIGRl cG9zaXRzIGlzIHJlbHlpbmcgdXBvbiBub2RlcyB0aGF0IGhhdmUgYmVlbiBlbnRpcmVseSBl Y2xpcHNlZCBzbyB0aGF0IHRoZXkgY2Fubm90IHNlZSB0aGUgY29tcGV0aW5nIGNoYWluIC0g YXQgdGhpcyBwb2ludCBhbnlvbmUgbG9va2luZyB0byBjb25maXJtIGEgdHJhbnNhY3Rpb24g aXMgdnVsbmVyYWJsZSB0byBhIGRvdWJsZS1zcGVuZC4gV2l0aCB0aGlzIGN1cnJlbmN5IGRl cG9zaXRlZCBvbiBhIGNoYWluIHRoYXQgd2lsbCBiZWNvbWUgZXBoZW1lcmFsLCB0aGUgYXR0 YWNrZXIgY2FuIHdpcmUgb3V0IHRoZSBhY2NvdW50IGJhbGFuY2Ugb24gYSBkaWZmZXJlbnQg YmxvY2tjaGFpbiAtIHN1Y2ggYXMgVGV0aGVyIHdoaWNoIGlzIGFuIGVyYzIwIHRva2VuIG9u IHRoZSBFdGhlcmV1bSBuZXR3b3JrIHdoaWNoIHdvdWxkIGJlIHVuYWZmZWN0ZWQgYnkgdGhp cyBhdHRhY2suwqAgV2hlbiB0aGUgd2Vha2VyIGNoYWluIGNvbGxhcHNlcywgdGhlIHRyYW5z YWN0aW9uIHRoYXQgdGhlIGV4Y2hhbmdlIGFjdGVkIHVwb24gaXMgbm8gbG9uZ2VyIGNvZGlm aWVkIGluIEJpdGNvaW4gYmxvY2tjaGFpbidzIGdsb2JhbCBsZWRnZXIsIGFuZCB3aWxsIGJl IHJlcGxhY2VkIHdpdGggYSB2ZXJzaW9uIG9mIHRoZSB0aGF0IGRpZCBub3QgY29udGFpbiB0 aGVzZSBkZXBvc2l0cy48L3NwYW4+PC9wPgogICAgICAgICAgICA8YnI+CiAgICAgICAgICAg IDxwIGRpcj0ibHRyIgogICAgICAgICAgICAgIHN0eWxlPSJsaW5lLWhlaWdodDoxLjM4O21h cmdpbi10b3A6MHB0O21hcmdpbi1ib3R0b206MHB0Ij48c3BhbiBzdHlsZT0iZm9udC1zaXpl OjExcHQ7Zm9udC1mYW1pbHk6QXJpYWw7Y29sb3I6cmdiKDAsMCwwKTtiYWNrZ3JvdW5kLWNv bG9yOnRyYW5zcGFyZW50O2ZvbnQtdmFyaWFudC1udW1lcmljOm5vcm1hbDtmb250LXZhcmlh bnQtZWFzdC1hc2lhbjpub3JtYWw7dmVydGljYWwtYWxpZ246YmFzZWxpbmU7d2hpdGUtc3Bh Y2U6cHJlLXdyYXAiPk5ha2Ftb3RvIENvbnNlbnN1cyBob2xkcyBubyBndWFyYW50ZWVzIHRo YXQgaXTigJlzIHByb2Nlc3MgaXMgZGV0ZXJtaW5pc3RpYy7CoCBJbiB0aGUgc2hvcnQgdGVy bSwgd2UgY2FuIG9ic2VydmUgdGhhdCB0aGUgTmFrYW1vdG8gQ29uc2Vuc3VzIGlzIGVtcGly aWNhbGx5IG5vbi1kZXRlcm1pbmlzdGljIHdoaWNoIGlzIGV2aWRlbnQgYnkgcmUtb3JnYW5p emF0aW9ucyAocmUtb3JnKSBhcyBhIG1ldGhvZCBvZiByZXNvbHZpbmcgZGlzYWdyZWVtZW50 cyB3aXRoaW4gdGhlIG5ldHdvcmsuIMKgIER1cmluZyBhIHJlb3JnYW5pemF0aW9uIGEgYmxv Y2tjaGFpbiBuZXR3b3JrIGlzIGF0IGl0cyB3ZWFrZXN0IHBvaW50LCBhbmQgYSA1MSUgYXR0 YWNrIHRvIHRha2UgdGhlIG5ldHdvcmsgYmVjb21lcyB1bm5lY2Vzc2FyeS4gQW4gYWR2ZXJz YXJ5IHdobyBjYW4gZWNsaXBzZSBob25lc3QgaG9zdHMgb24gdGhlIG5ldHdvcmsgY2FuIHVz ZSB0aGlzIGFzIGEgbWVhbnMgb2YgYnl6YW50aW5lIGZhdWx0LWluamVjdGlvbiB0byBkaXNy dXB0IHRoZSBub3JtYWwgZmxvdyBvZiBtZXNzYWdlcyBvbiB0aGUgbmV0d29yayB3aGljaCBj cmVhdGVzIGRpc2FncmVlbWVudCBiZXR3ZWVuIG1pbmVycy7CoDwvc3Bhbj48L3A+CiAgICAg ICAgICAgIDxicj4KICAgICAgICAgICAgPHAgZGlyPSJsdHIiCiAgICAgICAgICAgICAgc3R5 bGU9ImxpbmUtaGVpZ2h0OjEuMzg7bWFyZ2luLXRvcDowcHQ7bWFyZ2luLWJvdHRvbTowcHQi PjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTFwdDtmb250LWZhbWlseTpBcmlhbDtjb2xvcjpy Z2IoMCwwLDApO2JhY2tncm91bmQtY29sb3I6dHJhbnNwYXJlbnQ7Zm9udC12YXJpYW50LW51 bWVyaWM6bm9ybWFsO2ZvbnQtdmFyaWFudC1lYXN0LWFzaWFuOm5vcm1hbDt2ZXJ0aWNhbC1h bGlnbjpiYXNlbGluZTt3aGl0ZS1zcGFjZTpwcmUtd3JhcCI+RGVGaSAoRGVjZW50cmFsaXpl ZCBGaW5hbmNlKSBhbmQgc21hcnQtY29udHJhY3Qgb2JsaWdhdGlvbnMgZGVwZW5kIG9uIG5l dHdvcmsgc3RhYmlsaXR5IGFuZCBkZXRlcm1pbmlzbS7CoCBGYWlsdXJlIHRvIHBheSBjb250 cmFjdHMsIHN1Y2ggYXMgd2hhdCBoYXBwZW5lZCBvbiDigJxibGFjayB0aHVyc2RheeKAnSBy ZXN1bHRlZCBpbiBzZWN1cmVkIGxvYW5zIGFjY2lkZW50YWxseSBmYWxsaW5nIGludG8gcmVk ZW1wdGlvbi7CoCBUaGUgdHJhbnNhY3Rpb25zIHVzZWQgYnkgYSBzbWFydCBjb250cmFjdCBh cmUgaW50ZW5kZWQgdG8gYmUgY29tcGxldGVkIHF1aWNrbHkgYW5kIHRoZSBvdXRjb21lIGlz IGlycmV2ZXJzaWJsZS7CoCBIb3dldmVyLCBpZiB0aGUgYmxvY2tjaGFpbiBuZXR3b3JrIGhh cyBzcGxpdCB0aGVuIGEgY29udHJhY3QgbWF5IGZpcmUgYW5kIGhhdmUgaXTigJlzIHNpZGUt ZWZmZWN0cyBleGVjdXRlIG9ubHkgdG8gaGF2ZSB0aGUgdHJhbnNhY3Rpb24gb24gdGhlIGxl ZGdlciB0byBiZSByZXBsYWNlZC7CoCBBbm90aGVyIGV4YW1wbGUgaXMgdGhhdCBhIGhhcmQt Zm9yayBtaWdodCBjYXVzZSB0aGUgcGF5ZXIgb2YgYSBzbWFydCBjb250cmFjdCB0byBkZWZh dWx0IC0gYXMgdGhlIHRyYW5zYWN0aW9uIHRoYXQgdGhleSBicm9hZGNhc3RlZCBlbmRlZCB1 cCBiZWluZyBvbiB0aGUgd2Vha2VyIGNoYWluIHRoYXQgbG9zdC4gU29tZSBzbWFydCBjb250 cmFjdHMsIHN1Y2ggYXMgY29sbGF0ZXJhbCBiYWNrZWQgbG9hbnMgaGF2ZSBhIHJlZGVtcHRp b24gY2xhdXNlIHdoaWNoIHdvdWxkIGZvcmNlIHRoZSBib3Jyb3dlciBvbiB0aGUgbG9hbiB0 byBsb3NlIHRoZWlyIGRlcG9zaXQgZW50aXJlbHkuwqA8L3NwYW4+PC9wPgogICAgICAgICAg ICA8YnI+CiAgICAgICAgICAgIDxwIGRpcj0ibHRyIgogICAgICAgICAgICAgIHN0eWxlPSJs aW5lLWhlaWdodDoxLjM4O21hcmdpbi10b3A6MHB0O21hcmdpbi1ib3R0b206MHB0Ij48c3Bh biBzdHlsZT0iZm9udC1zaXplOjExcHQ7Zm9udC1mYW1pbHk6QXJpYWw7Y29sb3I6cmdiKDAs MCwwKTtiYWNrZ3JvdW5kLWNvbG9yOnRyYW5zcGFyZW50O2ZvbnQtdmFyaWFudC1udW1lcmlj Om5vcm1hbDtmb250LXZhcmlhbnQtZWFzdC1hc2lhbjpub3JtYWw7dmVydGljYWwtYWxpZ246 YmFzZWxpbmU7d2hpdGUtc3BhY2U6cHJlLXdyYXAiPldpdGggdHdvIHNpZGVzIG9mIHRoZSBu ZXR3b3JrIGJhbGFuY2VkIGFnYWluc3QgZWFjaCBvdGhlciAtIGFuIGF0dGFja2VyIGhhcyBz cGxpdCB0aGUgYmxvY2tjaGFpbiBhbmQgdGhpcyBoYXJkLWZvcmsgY2FuIGxhc3QgZm9yIGFz IGxvbmcgYXMgdGhlIGF0dGFja2VyIGlzIGFibGUgdG8gZXhlcnQgdGhlIGNvbXB1dGF0aW9u YWwgcG93ZXIgdG8gZW5zdXJlIHRoYXQgcHJvb2Ytb2Ytd29yayBibG9ja3MgYXJlIHJlZ3Vs YXJseSBmb3VuZCBvbiBib3RoIHNpZGVzIG9mIHRoZSBuZXR3b3JrLsKgIFRoZSBhbW91bnQg b2YgcmVzb3VyY2VzIG5lZWRlZCB0byBiYWxhbmNlIHRoZSBuZXR3b3JrIGFnYWluc3QgaXRz ZWxmIGlzIGZhciBsZXNzIHRoYW4gYSA1MSUgYXR0YWNrIC0gdGhlcmVieSB1bmRlcm1pbmlu ZyB0aGUgc2VjdXJpdHkgZ3VhcmFudGVlcyBuZWVkZWQgZm9yIGEgZGVjZW50cmFsaXplZCB1 bnRydXN0ZWQgcGF5bWVudCBuZXR3b3JrIHRvIGZ1bmN0aW9uLsKgIEFuIGFkdmVyc2FyeSB3 aXRoIGEgc3VmZmljaWVudGx5IGxhcmdlIG5ldHdvcmsgb2YgZGlzaG9uZXN0IGJvdHMgY291 bGQgdXNlIHRoaXMgdG8gdGFrZSBhIHRhbGx5IG9mIHdoaWNoIG1pbmVycyBhcmUgcGFydGlj aXBhdGluZyBpbiB3aGljaCBzaWRlIG9mIHRoZSBuZXR3b3JrIHNwbGl0LiBUaGlzIHdpbGwg Y3JlYXRlIGFuIGF0dGFja2VyLWNvbnRyb2xsZWQgaGFyZCBmb3JrIG9mIHRoZSBuZXR3b3Jr IHdpdGggdHdvIG11dHVhbGx5IGV4Y2x1c2l2ZSBtZXJrbGUgdHJlZXMuIFdoZXJlYnkgdGhl IGR1cmF0aW9uIG9mIHRoaXMgc3BsaXQgaXMgYXJiaXRyYXJ5LCBhbmQgdGhlIGRlY2lzaW9u IGluIHdoaWNoIGNoYWluIHRvIGNvbGxhcHNlIGlzIHVwIHRvIHRoZSBpbmRpdmlkdWFsIHdp dGggdGhlIG1vc3QgSVAgYWRkcmVzcywgbm90IHRoZSBtb3N0IGNvbXB1dGF0aW9uLjwvc3Bh bj48L3A+CiAgICAgICAgICAgIDxicj4KICAgICAgICAgICAgPHAgZGlyPSJsdHIiCiAgICAg ICAgICAgICAgc3R5bGU9ImxpbmUtaGVpZ2h0OjEuMzg7bWFyZ2luLXRvcDowcHQ7bWFyZ2lu LWJvdHRvbTowcHQiPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTFwdDtmb250LWZhbWlseTpB cmlhbDtjb2xvcjpyZ2IoMCwwLDApO2JhY2tncm91bmQtY29sb3I6dHJhbnNwYXJlbnQ7Zm9u dC12YXJpYW50LW51bWVyaWM6bm9ybWFsO2ZvbnQtdmFyaWFudC1lYXN0LWFzaWFuOm5vcm1h bDt2ZXJ0aWNhbC1hbGlnbjpiYXNlbGluZTt3aGl0ZS1zcGFjZTpwcmUtd3JhcCI+SW4gU2F0 b3NoaSBOYWthbW90b+KAmXMgb3JpZ2luYWwgcGFwZXIgaXQgd2FzIHN0YXRlZCB0aGF0IHRo ZSBlbGVjdG9yYXRlIHNob3VsZCBiZSByZXByZXNlbnRlZCBieSBjb21wdXRhdGlvbmFsIGVm Zm9ydCBpbiB0aGUgZm9ybSBvZiBhIHByb29mLW9mLXdvcmssIGFuZCBvbmx5IHRoZXNlIG5v ZGVzIGNhbiBwYXJ0aWNpcGF0ZSBpbiB0aGUgY29uc3VlcyBwcm9jZXNzLsKgIEhvd2V2ZXIs IHRoZSBlbGVjdG9yYXRlIGNhbiBiZSBtaXNsZWQgYnkgbm9uLXZvdGluZyBub2RlcyB3aGlj aCBjYW4gcmVzaGFwZSB0aGUgbmV0d29yayB0byBiZW5lZml0IGFuIGluZGl2aWR1YWwgYWR2 ZXJzYXJ5Ljwvc3Bhbj48L3A+CiAgICAgICAgICAgIDxoNCBkaXI9Imx0ciIKICAgICAgICAg ICAgICBzdHlsZT0ibGluZS1oZWlnaHQ6MS4zODttYXJnaW4tdG9wOjE0cHQ7bWFyZ2luLWJv dHRvbTo0cHQiPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTJwdDtmb250LWZhbWlseTpBcmlh bDtjb2xvcjpyZ2IoMTAyLDEwMiwxMDIpO2JhY2tncm91bmQtY29sb3I6dHJhbnNwYXJlbnQ7 Zm9udC13ZWlnaHQ6NDAwO2ZvbnQtdmFyaWFudC1udW1lcmljOm5vcm1hbDtmb250LXZhcmlh bnQtZWFzdC1hc2lhbjpub3JtYWw7dmVydGljYWwtYWxpZ246YmFzZWxpbmU7d2hpdGUtc3Bh Y2U6cHJlLXdyYXAiPkNoYWluIEZpdG5lc3M8L3NwYW4+PC9oND4KICAgICAgICAgICAgPHAg ZGlyPSJsdHIiCiAgICAgICAgICAgICAgc3R5bGU9ImxpbmUtaGVpZ2h0OjEuMzg7bWFyZ2lu LXRvcDowcHQ7bWFyZ2luLWJvdHRvbTowcHQiPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTFw dDtmb250LWZhbWlseTpBcmlhbDtjb2xvcjpyZ2IoMCwwLDApO2JhY2tncm91bmQtY29sb3I6 dHJhbnNwYXJlbnQ7Zm9udC12YXJpYW50LW51bWVyaWM6bm9ybWFsO2ZvbnQtdmFyaWFudC1l YXN0LWFzaWFuOm5vcm1hbDt2ZXJ0aWNhbC1hbGlnbjpiYXNlbGluZTt3aGl0ZS1zcGFjZTpw cmUtd3JhcCI+QW55IHNvbHV0aW9uIHRvIGJ5emFudGluZSBmYXVsdC1pbmplY3Rpb24gb3Ig dGhlIGludGVudGlvbmFsIGZvcm1hdGlvbiBvZiBkaXNhZ3JlZW1lbnRzIG11c3QgYmUgZnVs bHkgZGVjZW50cmFsaXplZC4gQSBibG9ja2NoYWluIGlzIGFsbG93ZWQgdG8gc3BsaXQgYmVj YXVzZSB0aGVyZSBpcyBhbWJpZ3VpdHkgaW4gdGhlIE5ha2Ftb3RvIHByb29mLW9mLXdvcmss IHdoaWNoIGNyZWF0ZXMgdGhlIGVudmlyb25tZW50IGZvciBhIHJhY2UtY29uZGl0aW9uIHRv IGZvcm0uIFRvIHJlc29sdmUgdGhpcywgRmxvYXRpbmctUG9pbnQgTmFrYW1vdG8gQ29uc2Vu c3VzIG1ha2VzIGl0IGluY3JlYXNpbmdseSBtb3JlIGV4cGVuc2l2ZSB0byByZXBsYWNlIHRo ZSBjdXJyZW50IHdpbm5pbmcgYmxvY2suIFRoaXMgYWRkZWQgY29zdCBjb21lcyBmcm9tIGEg bWV0aG9kIG9mIGRpc2FncmVlbWVudCByZXNvbHV0aW9uIHdoZXJlIG5vdCBldmVyeSBzb2x1 dGlvbiBibG9jayBpcyB0aGUgc2FtZSB2YWx1ZSwgYW5kIGEgbW9yZS1maXQgc29sdXRpb24g aXMgYWx3YXlzIGNob3NlbiBvdmVyIGEgd2Vha2VyIHNvbHV0aW9uLiBBbnkgYWR2ZXJzYXJ5 IGF0dGVtcHRpbmcgdG8gaGF2ZSBhIHdlYWtlciBjaGFpbiB0byB3aW4gb3V0IHdvdWxkIGhh dmUgdG8gb3ZlcmNvbWUgYSBraW5kIG9mIHJlbGF5LXJhY2UsIHdoZXJlYnkgdGhlIHdpbm5p bmcgdGVhbeKAmXMgc3RyZW5ndGggaXMgY2FycmllZCBmb3J3YXJkIGFuZCB0aGUgbG9zZXIg d2lsbCBoYXZlIHRvIHdvcmsgaGFyZGVyIGFuZCBoYXJkZXIgdG8gbWFpbnRhaW4gdGhlIGRp c2FncmVlbWVudC7CoCBJbiBtb3N0IGNhc2VzIEZsb2F0aW5nLVBvaW50IE5ha2Ftb3RvIENv bnNlbnN1cyB3aWxsIHByZXZlbnQgYSByZS1vcmcgYmxvY2tjaGFpbiBmcm9tIGV2ZXIgZ29p bmcgcGFzdCBhIHNpbmdsZSBibG9jayB0aGVyZWJ5IGV4cGVkaXRpbmcgdGhlIGZvcm1hdGlv biBvZiBhIGdsb2JhbCBjb25zZW5zdXMuwqAgRmxvYXRpbmctUG9pbnQgTmFrYW1vdG8gQ29u c2Vuc3VzIGNlbWVudHMgdGhlIGxlYWQgb2YgdGhlIHdpbm5lciBhbmQgdG8gZ3JlYXRseSBp bmNlbnRpdml6ZSB0aGUgbmV0d29yayB0byBhZG9wdCB0aGUgZG9taW5hbnQgY2hhaW4gbm8g bWF0dGVyIGhvdyBtYW55IHZhbGlkIHNvbHV0aW9ucyBhcmUgYWR2ZXJ0aXNlZCwgb3Igd2hh dCBvcmRlciB0aGV5IGFycml2ZS48L3NwYW4+PC9wPgogICAgICAgICAgICA8YnI+CiAgICAg ICAgICAgIDxwIGRpcj0ibHRyIgogICAgICAgICAgICAgIHN0eWxlPSJsaW5lLWhlaWdodDox LjM4O21hcmdpbi10b3A6MHB0O21hcmdpbi1ib3R0b206MHB0Ij48c3BhbiBzdHlsZT0iZm9u dC1zaXplOjExcHQ7Zm9udC1mYW1pbHk6QXJpYWw7Y29sb3I6cmdiKDAsMCwwKTtiYWNrZ3Jv dW5kLWNvbG9yOnRyYW5zcGFyZW50O2ZvbnQtdmFyaWFudC1udW1lcmljOm5vcm1hbDtmb250 LXZhcmlhbnQtZWFzdC1hc2lhbjpub3JtYWw7dmVydGljYWwtYWxpZ246YmFzZWxpbmU7d2hp dGUtc3BhY2U6cHJlLXdyYXAiPlRoZSBmaXJzdCBzdGVwIGluIEZsb2F0aW5nLVBvaW50IE5h a2Ftb3RvIENvbnNlbnN1cyBpcyB0aGF0IGFsbCBub2RlcyBpbiB0aGUgbmV0d29yayBzaG91 bGQgY29udGludWUgdG8gY29uZHVjdCB0cmFkaXRpb25hbCBOYWthbW90byBDb25zZW5zdXMg YW5kIHRoZSBmb3JtYXRpb24gb2YgbmV3IGJsb2NrcyBpcyBkaWN0YXRlZCBieSB0aGUgc2Ft ZSB6ZXJvLXByZWZpeCBwcm9vZi1vZi13b3JrIHJlcXVpcmVtZW50cy7CoCBJZiBhdCBhbnkg cG9pbnQgdGhlcmUgYXJlIHR3byBzb2x1dGlvbiBibG9ja3MgYWR2ZXJ0aXNlZCBmb3IgdGhl IHNhbWUgaGVpZ2h0IC0gdGhlbiBhIGZsb2F0aW5nLXBvaW50IGZpdG5lc3MgdmFsdWUgaXMg Y2FsY3VsYXRlZCBhbmQgdGhlIHNvbHV0aW9uIHdpdGggdGhlIGhpZ2hlciBmaXRuZXNzIHZh bHVlIGlzIHRoZSB3aW5uZXIgd2hpY2ggaXMgdGhlbiBwcm9wYWdhdGVkIHRvIGFsbCBuZWln aGJvcnMuIEFueSB0aW1lIHR3byBzb2x1dGlvbnMgYXJlIGFkdmVydGlzZWQgdGhlbiBhIHJl LW9yZyBpcyBpbmV2aXRhYmxlIGFuZCBpdCBpcyBpbiB0aGUgYmVzdCBpbnRlcmVzdCBvZiBh bGwgbWluZXJzIHRvIGFkb3B0IHRoZSBtb3N0LWZpdCBibG9jaywgZmFpbGluZyB0byBkbyBz byByaXNrcyB3YXN0aW5nIHJlc291cmNlcyBvbiBhIG1pbmluZyBvZiBhIGJsb2NrIHRoYXQg d291bGQgYmUgZGlzY2FyZGVkLsKgIFRvIG1ha2Ugc3VyZSB0aGF0IGluY2VudGl2ZXMgYXJl IGFsaWduZWQsIGFueSB6ZXJvLXByZWZpeCBwcm9vZiBvZiB3b3JrIGNvdWxkIGJlIHRoZSBu ZXh0IHNvbHV0aW9uLCBidXQgbm93IGluIG9yZGVyIHRvIHJlcGxhY2UgdGhlIGN1cnJlbnQg d2lubmluZyBzb2x1dGlvbiBhbiBhZHZlcnNhcnkgd291bGQgbmVlZCBhIHplcm8tcHJlZml4 IGJsb2NrIHRoYXQgaXMgYWxzbyBtb3JlIGZpdCB0aGF0IHRoZSBjdXJyZW50IHNvbHV0aW9u IC0gd2hpY2ggaXMgbXVjaCBtb3JlIGNvbXB1dGF0aW9uYWxseSBleHBlbnNpdmUgdG8gcHJv ZHVjZS48L3NwYW4+PC9wPgogICAgICAgICAgICA8cCBkaXI9Imx0ciIKICAgICAgICAgICAg ICBzdHlsZT0ibGluZS1oZWlnaHQ6MS4zODttYXJnaW4tdG9wOjBwdDttYXJnaW4tYm90dG9t OjBwdCI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMXB0O2ZvbnQtZmFtaWx5OkFyaWFsO2Nv bG9yOnJnYigwLDAsMCk7YmFja2dyb3VuZC1jb2xvcjp0cmFuc3BhcmVudDtmb250LXZhcmlh bnQtbnVtZXJpYzpub3JtYWw7Zm9udC12YXJpYW50LWVhc3QtYXNpYW46bm9ybWFsO3ZlcnRp Y2FsLWFsaWduOmJhc2VsaW5lO3doaXRlLXNwYWNlOnByZS13cmFwIj5BbnkgY2hhbmdlcyB0 byB0aGUgY3VycmVudCB0aXAgb2YgdGhlIGJsb2NrY2hhaW4gbXVzdCBiZSBhdm9pZGVkIGFz IG11Y2ggYXMgcG9zc2libGUuIFRvIGF2b2lkIHRocmFzaGluZyBiZXR3ZWVuIHR3byBvciBt b3JlIGNvbXBldGl0aXZlIHNvbHV0aW9ucywgZWFjaCByZXBsYWNlbWVudCBjYW4gb25seSBi ZSBkb25lIGlmIGl0IGlzIG1vcmUgZml0LCB0aGVyZWJ5IHByb3ZpbmcgdGhhdCBpdCBoYXMg YW4gaW5jcmVhc2VkIGV4cGVuc2UuwqAgSWYgYXQgYW55IHBvaW50IHR3byBzb2x1dGlvbnMg b2YgdGhlIHNhbWUgaGVpZ2h0IGFyZSBmb3VuZCBpdCBtZWFucyB0aGF0IGV2ZW50dWFsbHkg c29tZSBub2RlIHdpbGwgaGF2ZSB0byByZXBsYWNlIHRoZWlyIHRpcCAtIGFuZCBpdCBpcyBi ZXR0ZXIgdG8gaGF2ZSBpdCBkb25lIGFzIHF1aWNrbHkgYXMgcG9zc2libGUgc28gdGhhdCBj b25zZW5zdXMgaXMgbWFpbnRhaW5lZC48L3NwYW4+PC9wPgogICAgICAgICAgICA8YnI+CiAg ICAgICAgICAgIDxwIGRpcj0ibHRyIgogICAgICAgICAgICAgIHN0eWxlPSJsaW5lLWhlaWdo dDoxLjM4O21hcmdpbi10b3A6MHB0O21hcmdpbi1ib3R0b206MHB0Ij48c3BhbiBzdHlsZT0i Zm9udC1zaXplOjExcHQ7Zm9udC1mYW1pbHk6QXJpYWw7Y29sb3I6cmdiKDAsMCwwKTtiYWNr Z3JvdW5kLWNvbG9yOnRyYW5zcGFyZW50O2ZvbnQtdmFyaWFudC1udW1lcmljOm5vcm1hbDtm b250LXZhcmlhbnQtZWFzdC1hc2lhbjpub3JtYWw7dmVydGljYWwtYWxpZ246YmFzZWxpbmU7 d2hpdGUtc3BhY2U6cHJlLXdyYXAiPkluIG9yZGVyIHRvIGhhdmUgYSBwdXJlbHkgZGVjZW50 cmFsaXplZCBzb2x1dGlvbiwgdGhpcyBraW5kIG9mIGFncmVlbWVudCBtdXN0IGJlIGVtcGly aWNhbGx5IGRlcml2ZWQgZnJvbSB0aGUgZXhpc3RpbmcgcHJvb2Ytb2Ytd29yayBzbyB0aGF0 IGl0IGlzIHVuaXZlcnNhbGx5IGFuZCBpZGVudGljYWxseSB2ZXJpZmlhYmxlIGJ5IGFsbCBu b2RlcyBvbiB0aGUgbmV0d29yay7CoCBBZGRpdGlvbmFsbHksIHRoaXMgZml0bmVzcy10ZXN0 IGV2YWx1YXRpb24gbmVlZHMgdG8gZW5zdXJlIHRoYXQgbm8gdHdvIGNvbXBldGluZyBzb2x1 dGlvbnMgY2FuIGJlIG51bWVyaWNhbGx5IGVxdWl2YWxlbnQuPC9zcGFuPjwvcD4KICAgICAg ICAgICAgPGJyPgogICAgICAgICAgICA8cCBkaXI9Imx0ciIKICAgICAgICAgICAgICBzdHls ZT0ibGluZS1oZWlnaHQ6MS4zODttYXJnaW4tdG9wOjBwdDttYXJnaW4tYm90dG9tOjBwdCI+ PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMXB0O2ZvbnQtZmFtaWx5OkFyaWFsO2NvbG9yOnJn YigwLDAsMCk7YmFja2dyb3VuZC1jb2xvcjp0cmFuc3BhcmVudDtmb250LXZhcmlhbnQtbnVt ZXJpYzpub3JtYWw7Zm9udC12YXJpYW50LWVhc3QtYXNpYW46bm9ybWFsO3ZlcnRpY2FsLWFs aWduOmJhc2VsaW5lO3doaXRlLXNwYWNlOnByZS13cmFwIj5MZXQgdXMgc3VwcG9zZSB0aGF0 IHR3byBvciBtb3JlIHZhbGlkIHNvbHV0aW9ucyB3aWxsIGJlIHByb3Bvc2VkIGZvciB0aGUg c2FtZSBibG9jay7CoCBUbyB3ZWlnaCB0aGUgdmFsdWUgb2YgYSBnaXZlbiBzb2x1dGlvbiwg bGV0J3MgY29uc2lkZXIgYSBzb2x1dGlvbiBmb3IgYmxvY2sgNjM5MjU0LCBpbiB3aGljaCB0 aGUgZm9sbG93aW5nIGhhc2ggd2FzIHByb3Bvc2VkOjwvc3Bhbj48L3A+CiAgICAgICAgICAg IDxwIGRpcj0ibHRyIgogICAgICAgICAgICAgIHN0eWxlPSJsaW5lLWhlaWdodDoxLjM4O21h cmdpbi10b3A6MHB0O21hcmdpbi1ib3R0b206MHB0Ij48c3BhbiBzdHlsZT0iZm9udC1zaXpl OjExcHQ7Zm9udC1mYW1pbHk6QXJpYWw7Y29sb3I6cmdiKDAsMCwwKTtiYWNrZ3JvdW5kLWNv bG9yOnRyYW5zcGFyZW50O2ZvbnQtdmFyaWFudC1udW1lcmljOm5vcm1hbDtmb250LXZhcmlh bnQtZWFzdC1hc2lhbjpub3JtYWw7dmVydGljYWwtYWxpZ246YmFzZWxpbmU7d2hpdGUtc3Bh Y2U6cHJlLXdyYXAiPsKgwqDCoMKgMDAwMDAwMDAwMDAwMDAwMDAwMDhlMzNmYWE5NGQzMGNj NzNhYTRmZDgxOWU1OGNlNTU5NzBlN2RiODJlMTBmODwvc3Bhbj48L3A+CiAgICAgICAgICAg IDxicj4KICAgICAgICAgICAgPHAgZGlyPSJsdHIiCiAgICAgICAgICAgICAgc3R5bGU9Imxp bmUtaGVpZ2h0OjEuMzg7bWFyZ2luLXRvcDowcHQ7bWFyZ2luLWJvdHRvbTowcHQiPjxzcGFu IHN0eWxlPSJmb250LXNpemU6MTFwdDtmb250LWZhbWlseTpBcmlhbDtjb2xvcjpyZ2IoMCww LDApO2JhY2tncm91bmQtY29sb3I6dHJhbnNwYXJlbnQ7Zm9udC12YXJpYW50LW51bWVyaWM6 bm9ybWFsO2ZvbnQtdmFyaWFudC1lYXN0LWFzaWFuOm5vcm1hbDt2ZXJ0aWNhbC1hbGlnbjpi YXNlbGluZTt3aGl0ZS1zcGFjZTpwcmUtd3JhcCI+VGhlcmUgYXJlIDE5IHplcm9zLCBhbmQg dGhlIHJlbWFpbmluZyBoYXNoIGluIGJhc2UgMTYgc3RhcnRzIHdpdGggOWUzIGFuZCBlbmRz IHdpdGggZjguwqAgVGhpcyBjYW4gdmFsdWUgY2FuIGJlIHJlcHJlc2VudGVkIGluIGZsb2F0 aW5nIHBvaW50IGFzOjwvc3Bhbj48L3A+CiAgICAgICAgICAgIDxwIGRpcj0ibHRyIgogICAg ICAgICAgICAgIHN0eWxlPSJsaW5lLWhlaWdodDoxLjM4O21hcmdpbi10b3A6MHB0O21hcmdp bi1ib3R0b206MHB0Ij48c3BhbiBzdHlsZT0iZm9udC1zaXplOjExcHQ7Zm9udC1mYW1pbHk6 QXJpYWw7Y29sb3I6cmdiKDAsMCwwKTtiYWNrZ3JvdW5kLWNvbG9yOnRyYW5zcGFyZW50O2Zv bnQtdmFyaWFudC1udW1lcmljOm5vcm1hbDtmb250LXZhcmlhbnQtZWFzdC1hc2lhbjpub3Jt YWw7dmVydGljYWwtYWxpZ246YmFzZWxpbmU7d2hpdGUtc3BhY2U6cHJlLXdyYXAiPsKgwqDC oMKgMTkuODQ3MDUyNTczMzM2MTE0MTMwMDY5MTk2MTU0ODA5NDUzMDI3NzkyMTIxODgyNTg4 NjE0OTA0PC9zcGFuPjwvcD4KICAgICAgICAgICAgPGJyPgogICAgICAgICAgICA8cCBkaXI9 Imx0ciIKICAgICAgICAgICAgICBzdHlsZT0ibGluZS1oZWlnaHQ6MS4zODttYXJnaW4tdG9w OjBwdDttYXJnaW4tYm90dG9tOjBwdCI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMXB0O2Zv bnQtZmFtaWx5OkFyaWFsO2NvbG9yOnJnYigwLDAsMCk7YmFja2dyb3VuZC1jb2xvcjp0cmFu c3BhcmVudDtmb250LXZhcmlhbnQtbnVtZXJpYzpub3JtYWw7Zm9udC12YXJpYW50LWVhc3Qt YXNpYW46bm9ybWFsO3ZlcnRpY2FsLWFsaWduOmJhc2VsaW5lO3doaXRlLXNwYWNlOnByZS13 cmFwIj5UbyBzaW1wbGlmeSBmdXJ0aGVyIGxldHMgZ2l2ZSB0aGlzIGJsb2NrIGEgc2luZ2xl IHdob2xlIG51bWJlciB0byByZXByZXNlbnQgb25lIGNvbXBsZXRlIHNvbHV0aW9uLCBhbmQg dXNlIGEgcm91bmRlZCBmbG9hdGluZy1wb2ludCB2YWx1ZSB0byByZXByZXNlbnQgc29tZSBm cmFjdGlvbiBvZiBhZGRpdGlvbmFsIHdvcmsgZXhlcnRlZCBieSB0aGUgbWluZXIuwqA8L3Nw YW4+PC9wPgogICAgICAgICAgICA8cCBkaXI9Imx0ciIKICAgICAgICAgICAgICBzdHlsZT0i bGluZS1oZWlnaHQ6MS4zODttYXJnaW4tdG9wOjBwdDttYXJnaW4tYm90dG9tOjBwdCI+PHNw YW4gc3R5bGU9ImZvbnQtc2l6ZToxMXB0O2ZvbnQtZmFtaWx5OkFyaWFsO2NvbG9yOnJnYigw LDAsMCk7YmFja2dyb3VuZC1jb2xvcjp0cmFuc3BhcmVudDtmb250LXZhcmlhbnQtbnVtZXJp Yzpub3JtYWw7Zm9udC12YXJpYW50LWVhc3QtYXNpYW46bm9ybWFsO3ZlcnRpY2FsLWFsaWdu OmJhc2VsaW5lO3doaXRlLXNwYWNlOnByZS13cmFwIj7CoMKgwqAxLjg0Nzwvc3Bhbj48L3A+ CiAgICAgICAgICAgIDxicj4KICAgICAgICAgICAgPHAgZGlyPSJsdHIiCiAgICAgICAgICAg ICAgc3R5bGU9ImxpbmUtaGVpZ2h0OjEuMzg7bWFyZ2luLXRvcDowcHQ7bWFyZ2luLWJvdHRv bTowcHQiPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTFwdDtmb250LWZhbWlseTpBcmlhbDtj b2xvcjpyZ2IoMCwwLDApO2JhY2tncm91bmQtY29sb3I6dHJhbnNwYXJlbnQ7Zm9udC12YXJp YW50LW51bWVyaWM6bm9ybWFsO2ZvbnQtdmFyaWFudC1lYXN0LWFzaWFuOm5vcm1hbDt2ZXJ0 aWNhbC1hbGlnbjpiYXNlbGluZTt3aGl0ZS1zcGFjZTpwcmUtd3JhcCI+Tm93IGxldCB1cyBz dXBwb3NlIHRoYXQgYSBmZXcgbWludXRlcyBsYXRlciBhbm90aGVyIHNvbHV0aW9uIGlzIGFk dmVydGlzZWQgdG8gdGhlIG5ldHdvcmsgc2hvd24gaW4gYmFzZTE2IGJlbG93Ojwvc3Bhbj48 L3A+CiAgICAgICAgICAgIDxwIGRpcj0ibHRyIgogICAgICAgICAgICAgIHN0eWxlPSJsaW5l LWhlaWdodDoxLjM4O21hcmdpbi10b3A6MHB0O21hcmdpbi1ib3R0b206MHB0Ij48c3BhbiBz dHlsZT0iZm9udC1zaXplOjExcHQ7Zm9udC1mYW1pbHk6QXJpYWw7Y29sb3I6cmdiKDAsMCww KTtiYWNrZ3JvdW5kLWNvbG9yOnRyYW5zcGFyZW50O2ZvbnQtdmFyaWFudC1udW1lcmljOm5v cm1hbDtmb250LXZhcmlhbnQtZWFzdC1hc2lhbjpub3JtYWw7dmVydGljYWwtYWxpZ246YmFz ZWxpbmU7d2hpdGUtc3BhY2U6cHJlLXdyYXAiPsKgwqDCoMKgMDAwMDAwMDAwMDAwMDAwMDAw MDI4Mjg1ZWQ5YmQyYzc3NDEzNmFmOGU4YjkwY2ExYmJiMGNhYTM2NTQ0ZmJjMjwvc3Bhbj48 L3A+CiAgICAgICAgICAgIDxicj4KICAgICAgICAgICAgPHAgZGlyPSJsdHIiCiAgICAgICAg ICAgICAgc3R5bGU9ImxpbmUtaGVpZ2h0OjEuMzg7bWFyZ2luLXRvcDowcHQ7bWFyZ2luLWJv dHRvbTowcHQiPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTFwdDtmb250LWZhbWlseTpBcmlh bDtjb2xvcjpyZ2IoMCwwLDApO2JhY2tncm91bmQtY29sb3I6dHJhbnNwYXJlbnQ7Zm9udC12 YXJpYW50LW51bWVyaWM6bm9ybWFsO2ZvbnQtdmFyaWFudC1lYXN0LWFzaWFuOm5vcm1hbDt2 ZXJ0aWNhbC1hbGlnbjpiYXNlbGluZTt3aGl0ZS1zcGFjZTpwcmUtd3JhcCI+VGhlIHNvbHV0 aW9uIGFib3ZlIGFsc28gaGFzIDE5IHByZWZpeGVkIHplcm9zLCBhbmQgaXMgYmVpbmcgYnJv YWRjYXN0IGZvciB0aGUgc2FtZSBibG9ja2hlaWdodCB2YWx1ZSBvZiA2MzkyNTQgLSBhbmQg YSBmaXRuZXNzIHNjb3JlIG9mIDEuMjgyLsKgIFdpdGggTmFrYW1vdG8gQ29uc2Vuc3VzIGJv dGggb2YgdGhlc2Ugc29sdXRpb25zIHdvdWxkIGJlIGVxdWl2YWxlbnQgYW5kIGEgZ2l2ZW4g bm9kZSB3b3VsZCBhZG9wdCB0aGUgb25lIHRoYXQgaXQgcmVjZWl2ZWQgZmlyc3QuwqAgSW4g RmxvYXRpbmctUG9zdCBOYWthbW90byBDb25zZW5zdXMsIHdlIGNvbXBhcmUgdGhlIGZpdG5l c3Mgc2NvcmVzIGFuZCBrZWVwIHRoZSBoaWdoZXN0LsKgIEluIHRoaXMgY2FzZSBubyBtYXR0 ZXIgd2hhdCBoYXBwZW5zIC0gc29tZSBub2RlcyB3aWxsIGhhdmUgdG8gY2hhbmdlIHRoZWly IHRpcCBhbmQgYSBmaXRuZXNzIHRlc3QgbWFrZXMgc3VyZSB0aGlzIGhhcHBlbnMgaW1tZWRp YXRlbHkuwqA8L3NwYW4+PC9wPgogICAgICAgICAgICA8YnI+CiAgICAgICAgICAgIDxwIGRp cj0ibHRyIgogICAgICAgICAgICAgIHN0eWxlPSJsaW5lLWhlaWdodDoxLjM4O21hcmdpbi10 b3A6MHB0O21hcmdpbi1ib3R0b206MHB0Ij48c3BhbiBzdHlsZT0iZm9udC1zaXplOjExcHQ7 Zm9udC1mYW1pbHk6QXJpYWw7Y29sb3I6cmdiKDAsMCwwKTtiYWNrZ3JvdW5kLWNvbG9yOnRy YW5zcGFyZW50O2ZvbnQtdmFyaWFudC1udW1lcmljOm5vcm1hbDtmb250LXZhcmlhbnQtZWFz dC1hc2lhbjpub3JtYWw7dmVydGljYWwtYWxpZ246YmFzZWxpbmU7d2hpdGUtc3BhY2U6cHJl LXdyYXAiPldpdGggYm90aCBzb2x1dGlvbnMgY2lyY3VsYXRpbmcgaW4gdGhlIG5ldHdvcmsg LSBhbnkgbm9kZSB3aG8gaGFzIHJlY2VpdmVkIGJvdGggcHJvb2Ytb2Ytd29ya3Mgc2hvdWxk IGtub3cgMS44NDcgaXMgdGhlIGN1cnJlbnQgaGlnaGVzdCB2YWx1ZSwgYW5kIHNob3VsZG7i gJl0IG5lZWQgdG8gdmFsaWRhdGUgYW55IGxvd2VyLXZhbHVlZCBzb2x1dGlvbi7CoCBJbiBm YWN0IHRoaXMgZml0bmVzcyB2YWx1ZSBoYXMgYSBoaWdoIGRlZ3JlZSBvZiBjb25maWRlbmNl IHRoYXQgaXQgd29u4oCZdCBiZSB1bnNlYXRlZCBieSBhIGxhcmdlciB2YWx1ZSAtIGJlaW5n IGFibGUgdG8gcHJvZHVjZSBhIHByb29mLW9mLXdvcmsgd2l0aCAxOSAw4oCZcyBhbmQgYSBk ZWNpbWFsIGNvbXBvbmVudCBncmVhdGVyIHRoYW4gMC44NDcgaXMgbm9uLXRyaXZpYWwuwqAg QXMgdGltZSBwYXNzZXMgYW55IG5vZGVzIHRoYXQgcmVjZWl2ZWQgYSBwcm9vZi1vZi13b3Jr IHdpdGggYSB2YWx1ZSAxLjIwNCAtIHRoZWlyIHZpZXcgb2YgdGhlIG5ldHdvcmsgc2hvdWxk IGVyb2RlIGFzIHRoZXNlIG5vZGVzIGFkb3B0IHRoZSAxLjg0NyB2ZXJzaW9uIG9mIHRoZSBi bG9ja2NoYWluLsKgPC9zcGFuPjwvcD4KICAgICAgICAgICAgPHAgZGlyPSJsdHIiCiAgICAg ICAgICAgICAgc3R5bGU9ImxpbmUtaGVpZ2h0OjEuMzg7bWFyZ2luLXRvcDowcHQ7bWFyZ2lu LWJvdHRvbTowcHQiPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTFwdDtmb250LWZhbWlseTpB cmlhbDtjb2xvcjpyZ2IoMCwwLDApO2JhY2tncm91bmQtY29sb3I6dHJhbnNwYXJlbnQ7Zm9u dC12YXJpYW50LW51bWVyaWM6bm9ybWFsO2ZvbnQtdmFyaWFudC1lYXN0LWFzaWFuOm5vcm1h bDt2ZXJ0aWNhbC1hbGlnbjpiYXNlbGluZTt3aGl0ZS1zcGFjZTpwcmUtd3JhcCI+QWxsIG5v ZGVzIGFyZSBpbmNlbnRpdml6ZWQgdG8gc3VwcG9ydCB0aGUgc29sdXRpb24gd2l0aCB0aGUg aGlnaGVzdCBmaXRuZXNzIHZhbHVlIC0gaXJyZWdhcmRsZXNzIG9mIHdoaWNoIG9yZGVyIHRo ZXNlIHByb29mLW9mLXdvcmsgd2VyZSB2YWxpZGF0ZWQuIE1pbmVycyBhcmUgaW5jZW50aXZp emVkIHRvIHN1cHBvcnQgdGhlIGRvbWluYW50IGNoYWluIHdoaWNoIGhlbHBzIHByZXNlcnZl IHRoZSBnbG9iYWwgY29uc2Vuc3VzLjwvc3Bhbj48L3A+CiAgICAgICAgICAgIDxicj4KICAg ICAgICAgICAgPHAgZGlyPSJsdHIiCiAgICAgICAgICAgICAgc3R5bGU9ImxpbmUtaGVpZ2h0 OjEuMzg7bWFyZ2luLXRvcDowcHQ7bWFyZ2luLWJvdHRvbTowcHQiPjxzcGFuIHN0eWxlPSJm b250LXNpemU6MTFwdDtmb250LWZhbWlseTpBcmlhbDtjb2xvcjpyZ2IoMCwwLDApO2JhY2tn cm91bmQtY29sb3I6dHJhbnNwYXJlbnQ7Zm9udC12YXJpYW50LW51bWVyaWM6bm9ybWFsO2Zv bnQtdmFyaWFudC1lYXN0LWFzaWFuOm5vcm1hbDt2ZXJ0aWNhbC1hbGlnbjpiYXNlbGluZTt3 aGl0ZS1zcGFjZTpwcmUtd3JhcCI+TGV0IHVzIGFzc3VtZSB0aGF0IHRoZSB1bmRlcmx5aW5n IGNyeXB0b2dyYXBoaWMgaGFzaC1mdW5jdGlvbiB1c2VkIHRvIGdlbmVyYXRlIGEgcHJvb2Yt b2Ytd29yayBpcyBhbiBpZGVhbCBwcmltaXRpdmUsIGFuZCB0aGVyZWZvcmUgYSBub2RlIGNh bm5vdCBmb3JjZSB0aGUgb3V0Y29tZSBvZiB0aGUgbm9uLXplcm8gY29tcG9uZW50IG9mIHRo ZWlyIHByb29mLW9mLXdvcmsuwqAgQWRkaXRpb25hbGx5IGlmIHdlIGFzc3VtZSBhbiBpZGVh bCBjaXBoZXIgdGhlbiB0aGUgZml0bmVzcyBvZiBhbGwgcG9zc2libGUgc29sdXRpb25zIGlz IGdhdXNzaWFuLXJhbmRvbS4gV2l0aCB0aGVzZSBhc3N1bXB0aW9ucyB0aGVuIG9uIGF2ZXJh Z2UgYSBuZXcgc29sdXRpb24gd291bGQgc3BsaXQgdGhlIGtleXNwYWNlIG9mIHJlbWFpbmlu ZyBzb2x1dGlvbnMgaW4gaGFsZi7CoCBHaXZlbiB0aGF0IHRoZSB3b3JrIG5lZWRlZCB0byBm b3JtIGHCoCBuZXcgYmxvY2sgcmVtYWlucyBhIGNvbnN0YW50IGF0IDE5IGJsb2NrcyBmb3Ig dGhpcyBwZXJpb2QgLSBpdCBpcyBjaGVhcGVyIHRvIHByb2R1Y2UgYSBOKzEgYmxvY2sgdGhh dCBoYXMgYW55IGZsb2F0aW5nIHBvaW50IHZhbHVlIGFzIHRoaXMgaXMgZ3VhcmFudGVlZCB0 byBiZSBhZG9wdGVkIGJ5IGFsbCBub2RlcyBpZiBpdCBpcyB0aGUgZmlyc3Qgc29sdXRpb24u wqAgVG8gbGV2ZXJhZ2UgYSBjaGFpbiByZXBsYWNlbWVudCBvbiBub2RlcyBjb25kdWN0aW5n IEZsb2F0aW5nLVBvaW50IE5ha2Ftb3RvIENvbnNlbnN1cyBhIG1hbGljaW91cyBtaW5lciB3 b3VsZCBoYXZlIHRvIGV4cGVuZCBzaWduaWZpY2FudGx5IG1vcmUgcmVzb3VyY2VzLjwvc3Bh bj48L3A+CiAgICAgICAgICAgIDxicj4KICAgICAgICAgICAgPHAgZGlyPSJsdHIiCiAgICAg ICAgICAgICAgc3R5bGU9ImxpbmUtaGVpZ2h0OjEuMzg7bWFyZ2luLXRvcDowcHQ7bWFyZ2lu LWJvdHRvbTowcHQiPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTFwdDtmb250LWZhbWlseTpB cmlhbDtjb2xvcjpyZ2IoMCwwLDApO2JhY2tncm91bmQtY29sb3I6dHJhbnNwYXJlbnQ7Zm9u dC12YXJpYW50LW51bWVyaWM6bm9ybWFsO2ZvbnQtdmFyaWFudC1lYXN0LWFzaWFuOm5vcm1h bDt2ZXJ0aWNhbC1hbGlnbjpiYXNlbGluZTt3aGl0ZS1zcGFjZTpwcmUtd3JhcCI+RWFjaCBz dWNjZXNzaXZlIG4rMSBzb2x1dGlvbiB2YXJpYW50IG9mIHRoZSBzYW1lIGJsb2NrLWhlaWdo dCBtdXN0IHRoZXJlZm9yZSBvbiBhdmVyYWdlIGNvbnN1bWUgaGFsZiBvZiB0aGUgcmVtYWlu aW5nIGZpbml0ZSBrZXlzcGFjZS4gUmVzdWx0aW5nIGluIGEgdGhlIG4rMSB2YWx1ZSBub3Qg b25seSBuZWVkZWQgdG8gb3ZlcmNvbWUgdGhlIDE5IHplcm8gcHJlZml4LCBidXQgYWxzbyB0 aGUgbm9uLXplcm8gZml0bmVzcyB0ZXN0LiDCoCBJdCBpcyBwb3NzaWJsZSBmb3IgYW4gYWR2 ZXJzYXJ5IHRvIHdhc3RlIHRoZWlyIHRpbWUgbWFraW5nIGEgMTkgd2hlcmUgbisxIHdhcyBu b3QgZ3JlYXRlciwgYXQgd2hpY2ggcG9pbnQgdGhlIGVudGlyZSBuZXR3b3JrIHdpbGwgaGF2 ZSBoYWQgYSBjaGFuY2UgdG8gbW92ZSBvbiB3aXRoIHRoZSBuZXh0IHNvbHV0aW9uLsKgIFdp dGggaW5kdWN0aXZlIHJlYXNvbmluZywgd2UgY2FuIHNlZSB0aGF0IGEgZGVtaXNzaW5pb25n IGtleXNwYWNlIGluY3JlYXNlcyB0aGUgYW1vdW50IG9mIHdvcmsgbmVlZGVkIHRvIGZpbmQg YSBzb2x1dGlvbiB0aGF0IGFsc28gbWVldHMgdGhpcyBuZXcgY3JpdGVyaWEuPC9zcGFuPjwv cD4KICAgICAgICAgICAgPGJyPgogICAgICAgICAgICA8cCBkaXI9Imx0ciIKICAgICAgICAg ICAgICBzdHlsZT0ibGluZS1oZWlnaHQ6MS4zODttYXJnaW4tdG9wOjBwdDttYXJnaW4tYm90 dG9tOjBwdCI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMXB0O2ZvbnQtZmFtaWx5OkFyaWFs O2NvbG9yOnJnYigwLDAsMCk7YmFja2dyb3VuZC1jb2xvcjp0cmFuc3BhcmVudDtmb250LXZh cmlhbnQtbnVtZXJpYzpub3JtYWw7Zm9udC12YXJpYW50LWVhc3QtYXNpYW46bm9ybWFsO3Zl cnRpY2FsLWFsaWduOmJhc2VsaW5lO3doaXRlLXNwYWNlOnByZS13cmFwIj5Ob3cgbGV0IHVz IGFzc3VtZSBhIGhlYXZpbHktZnJhZ21lbnRlZCBuZXR3b3JrIHdoZXJlIHNvbWUgbm9kZXMg aGF2ZSBnb3R0ZW4gb25lIG9yIGJvdGggb2YgdGhlIHNvbHV0aW9ucy7CoCBJbiB0aGUgY2Fz ZSBvZiBub2RlcyB0aGF0IHJlY2VpdmVkIHRoZSBwcm9vZi1vZi13b3JrIHNvbHV0aW9uIHdp dGggYSBmaXRuZXNzIG9mIDEuODQ3LCB0aGV5IHdpbGwgYmUgaGFwcGlseSBtaW5pbmcgb24g dGhpcyB2ZXJzaW9uIG9mIHRoZSBibG9ja2NoYWluLiBUaGUgbm9kZXMgdGhhdCBoYXZlIGdv dHRlbiBib3RoIDEuODQ3IGFuZCAuMjQwIHdpbGwgc3RpbGwgYmUgbWluaW5nIGZvciB0aGUg MS44NDcgZG9tYWluaXRlIHZlcnNpb24sIGVuc3VyaW5nIGEgZG9taW5hbnQgY2hhaW4uwqAg SG93ZXZlciwgd2UgbXVzdCBhc3N1bWUgc29tZSBwYXJ0cyBvZiB0aGUgbmV0d29yayBuZXZl ciBnb3QgdGhlIG1lc3NhZ2UgYWJvdXQgMS44NDcgcHJvb2Ygb2Ygd29yaywgYW5kIGluc3Rl YWQgY29udGludWVkIHRvIG1pbmUgdXNpbmcgYSB2YWx1ZSBvZiAxLjI0MCBhcyB0aGUgcHJl dmlvdXMgYmxvY2suIMKgIE5vdywgbGV04oCZcyBzYXkgdGhpcyBncm91cCBvZiBpc29sYXRl ZCBtaW5lcnMgbWFuYWdlcyB0byBwcmVzZW50IGEgbmV3IGNvbmZsaWN0aW5nIHByb29mLW9m LXdvcmsgc29sdXRpb24gZm9yIDYzOTI1NTo8L3NwYW4+PC9wPgogICAgICAgICAgICA8YnI+ CiAgICAgICAgICAgIDxwIGRpcj0ibHRyIgogICAgICAgICAgICAgIHN0eWxlPSJsaW5lLWhl aWdodDoxLjM4O21hcmdpbi10b3A6MHB0O21hcmdpbi1ib3R0b206MHB0Ij48c3BhbiBzdHls ZT0iZm9udC1zaXplOjExcHQ7Zm9udC1mYW1pbHk6QXJpYWw7Y29sb3I6cmdiKDAsMCwwKTti YWNrZ3JvdW5kLWNvbG9yOnRyYW5zcGFyZW50O2ZvbnQtdmFyaWFudC1udW1lcmljOm5vcm1h bDtmb250LXZhcmlhbnQtZWFzdC1hc2lhbjpub3JtYWw7dmVydGljYWwtYWxpZ246YmFzZWxp bmU7d2hpdGUtc3BhY2U6cHJlLXdyYXAiPsKgwqDCoMKgwqAwMDAwMDAwMDAwMDAwMDAwMDAw NThkOGViZWIwNzY1ODRiYjU4NTNjODAxMTFiYzA2YjVhZGEzNTQ2MzA5MWE2PC9zcGFuPjwv cD4KICAgICAgICAgICAgPGJyPgogICAgICAgICAgICA8cCBkaXI9Imx0ciIKICAgICAgICAg ICAgICBzdHlsZT0ibGluZS1oZWlnaHQ6MS4zODttYXJnaW4tdG9wOjBwdDttYXJnaW4tYm90 dG9tOjBwdCI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMXB0O2ZvbnQtZmFtaWx5OkFyaWFs O2NvbG9yOnJnYigwLDAsMCk7YmFja2dyb3VuZC1jb2xvcjp0cmFuc3BhcmVudDtmb250LXZh cmlhbnQtbnVtZXJpYzpub3JtYWw7Zm9udC12YXJpYW50LWVhc3QtYXNpYW46bm9ybWFsO3Zl cnRpY2FsLWFsaWduOmJhc2VsaW5lO3doaXRlLXNwYWNlOnByZS13cmFwIj5UaGUgYWJvdmUg YmFzZTE2IGJsb2NrIGhhcyBhIGZpdG5lc3Mgc2NvcmUgb2YgMS41MzLCoCBUaGUgZml0bmVz cyB2YWx1ZSBmb3IgdGhlIHByZXZpb3VzIGJsb2NrIDYzOTI1NCBpcyBhZGRlZCB0b2dldGhl cjo8L3NwYW4+PC9wPgogICAgICAgICAgICA8YnI+CiAgICAgICAgICAgIDxwIGRpcj0ibHRy IgogICAgICAgICAgICAgIHN0eWxlPSJsaW5lLWhlaWdodDoxLjM4O21hcmdpbi10b3A6MHB0 O21hcmdpbi1ib3R0b206MHB0Ij48c3BhbiBzdHlsZT0iZm9udC1zaXplOjExcHQ7Zm9udC1m YW1pbHk6QXJpYWw7Y29sb3I6cmdiKDAsMCwwKTtiYWNrZ3JvdW5kLWNvbG9yOnRyYW5zcGFy ZW50O2ZvbnQtdmFyaWFudC1udW1lcmljOm5vcm1hbDtmb250LXZhcmlhbnQtZWFzdC1hc2lh bjpub3JtYWw7dmVydGljYWwtYWxpZ246YmFzZWxpbmU7d2hpdGUtc3BhY2U6cHJlLXdyYXAi PsKgwqDCoMKgwqAyLjc3MiA9IDEuMjQwICsgMS41MzI8L3NwYW4+PC9wPgogICAgICAgICAg ICA8YnI+CiAgICAgICAgICAgIDxwIGRpcj0ibHRyIgogICAgICAgICAgICAgIHN0eWxlPSJs aW5lLWhlaWdodDoxLjM4O21hcmdpbi10b3A6MHB0O21hcmdpbi1ib3R0b206MHB0Ij48c3Bh biBzdHlsZT0iZm9udC1zaXplOjExcHQ7Zm9udC1mYW1pbHk6QXJpYWw7Y29sb3I6cmdiKDAs MCwwKTtiYWNrZ3JvdW5kLWNvbG9yOnRyYW5zcGFyZW50O2ZvbnQtdmFyaWFudC1udW1lcmlj Om5vcm1hbDtmb250LXZhcmlhbnQtZWFzdC1hc2lhbjpub3JtYWw7dmVydGljYWwtYWxpZ246 YmFzZWxpbmU7d2hpdGUtc3BhY2U6cHJlLXdyYXAiPkluIHRoaXMgc3BlY2lmaWMgY2FzZSwg bm8gb3RoZXIgc29sdXRpb24gaGFzIGJlZW4gYnJvYWRjYXN0IGZvciBibG9jayBoZWlnaHQg NjM5MjU1IC0gcHV0dGluZyB0aGUgd2Vha2VyIGJyYW5jaCBpbiB0aGUgbGVhZC7CoCBJZiB0 aGUgd2Vha2VyIGJyYW5jaCBpcyBzdWZmaWNpZW50bHkgbHVja3ksIGFuZCBmaW5kcyBhIHNv bHV0aW9uIGJlZm9yZSB0aGUgZG9taW5hbnQgYnJhbmNoIHRoZW4gdGhpcyBzb2x1dGlvbiB3 aWxsIGhhdmUgYSBoaWdoZXIgb3ZlcmFsbCBmaXRuZXNzIHNjb3JlLCBhbmQgdGhpcyBzb2x1 dGlvbiB3aWxsIHByb3BhZ2F0ZSBhcyBpdCBoYXMgdGhlIGhpZ2hlciB2YWx1ZS7CoCBUaGlz IGlzIGFsc28gaW1wb3J0YW50IGZvciB0cmFuc2FjdGlvbnMgb24gdGhlIG5ldHdvcmsgYXMg dGhleSBiZW5lZml0IGZyb20gdXNpbmcgdGhlIG1vc3QgcmVjZW50bHkgZm9ybWVkIGJsb2Nr IC0gd2hpY2ggd2lsbCBoYXZlIHRoZSBoaWdoZXN0IGxvY2FsIGZpdG5lc3Mgc2NvcmUgYXQg dGhlIHRpbWUgb2YgaXRzIGRpc2NvdmVyeS7CoCBBdCB0aGlzIGp1bmN0aW9uLCB0aGUgd2Vh a2VyIGJyYW5jaCBoYXMgYW4gb3Bwb3J0dW5pdHkgdG8gcHJldmFpbCBlbnRlcmFsbHkgdGh1 cyBlbmRpbmcgdGhlIHNwbGl0Ljwvc3Bhbj48L3A+CiAgICAgICAgICAgIDxicj4KICAgICAg ICAgICAgPHAgZGlyPSJsdHIiCiAgICAgICAgICAgICAgc3R5bGU9ImxpbmUtaGVpZ2h0OjEu Mzg7bWFyZ2luLXRvcDowcHQ7bWFyZ2luLWJvdHRvbTowcHQiPjxzcGFuIHN0eWxlPSJmb250 LXNpemU6MTFwdDtmb250LWZhbWlseTpBcmlhbDtjb2xvcjpyZ2IoMCwwLDApO2JhY2tncm91 bmQtY29sb3I6dHJhbnNwYXJlbnQ7Zm9udC12YXJpYW50LW51bWVyaWM6bm9ybWFsO2ZvbnQt dmFyaWFudC1lYXN0LWFzaWFuOm5vcm1hbDt2ZXJ0aWNhbC1hbGlnbjpiYXNlbGluZTt3aGl0 ZS1zcGFjZTpwcmUtd3JhcCI+Tm93IGxldCB1cyByZXR1cm4gdG8gdGhlIERvUyB0aHJlYXQg bW9kZWwgYW5kIGV4cGxvcmUgdGhlIHdvcnN0LWNhc2Ugc2NlbmFyaW8gY3JlYXRlZCBieSBi eXphbnRpbmUgZmF1bHQgaW5qZWN0aW9uLiBMZXQgdXMgYXNzdW1lIHRoYXQgYm90aCB0aGUg d2Vha2VyIGdyb3VwIGFuZCB0aGUgZG9taW5hbnQgZ3JvdXAgaGF2ZSBwcm9kdWNlZCBjb21w ZXRpbmcgcHJvb2Ytb2Ytd29yayBzb2x1dGlvbnMgZm9yIGJsb2NrcyA2MzkyNTQgYW5kIDYz OTI1NSByZXNwZWN0aXZlbHkuwqAgTGV04oCZcyBhc3N1bWUgdGhhdCB0aGUgZG9taW5hbnQg Z3JvdXAgdGhhdCB3ZW50IHdpdGggdGhlIDEuODQ3IGZpdG5lc3Mgc2NvcmUgLSBhbHNvIHBy b2R1Y2VzIGEgc29sdXRpb24gd2l0aCBhIHNpbWlsYXIgZml0bmVzcyB2YWx1ZSBhbmQgYWR2 ZXJ0aXNlcyB0aGUgZm9sbG93aW5nIHNvbHV0aW9uIHRvIHRoZSBuZXR3b3JrOjwvc3Bhbj48 L3A+CiAgICAgICAgICAgIDxicj4KICAgICAgICAgICAgPHAgZGlyPSJsdHIiCnN0eWxlPSJs aW5lLWhlaWdodDoxLjM4O21hcmdpbi1sZWZ0OjM2cHQ7bWFyZ2luLXRvcDowcHQ7bWFyZ2lu LWJvdHRvbTowcHQiPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTFwdDtmb250LWZhbWlseTpB cmlhbDtjb2xvcjpyZ2IoMCwwLDApO2JhY2tncm91bmQtY29sb3I6dHJhbnNwYXJlbnQ7Zm9u dC12YXJpYW50LW51bWVyaWM6bm9ybWFsO2ZvbnQtdmFyaWFudC1lYXN0LWFzaWFuOm5vcm1h bDt2ZXJ0aWNhbC1hbGlnbjpiYXNlbGluZTt3aGl0ZS1zcGFjZTpwcmUtd3JhcCI+MDAwMDAw MDAwMDAwMDAwMDAwMDQ1NTIwN2UzNzViZjFkYWMwZDQ4M2E3NDQyMjM5ZjFlZjJjNzBkMDUw YzExMzwvc3Bhbj48L3A+CiAgICAgICAgICAgIDxwIGRpcj0ibHRyIgpzdHlsZT0ibGluZS1o ZWlnaHQ6MS4zODttYXJnaW4tbGVmdDozNnB0O21hcmdpbi10b3A6MHB0O21hcmdpbi1ib3R0 b206MHB0Ij48c3BhbiBzdHlsZT0iZm9udC1zaXplOjExcHQ7Zm9udC1mYW1pbHk6QXJpYWw7 Y29sb3I6cmdiKDAsMCwwKTtiYWNrZ3JvdW5kLWNvbG9yOnRyYW5zcGFyZW50O2ZvbnQtdmFy aWFudC1udW1lcmljOm5vcm1hbDtmb250LXZhcmlhbnQtZWFzdC1hc2lhbjpub3JtYWw7dmVy dGljYWwtYWxpZ246YmFzZWxpbmU7d2hpdGUtc3BhY2U6cHJlLXdyYXAiPjE5LjQxNDk3MzY0 OTQ2NDU3NDg3NzU0OTE5ODI5MDg3OTIzNzAzNjg2NzcwNTU5NDQyMTc1NjE3OTwvc3Bhbj48 L3A+CiAgICAgICAgICAgIDxwIGRpcj0ibHRyIgpzdHlsZT0ibGluZS1oZWlnaHQ6MS4zODtt YXJnaW4tbGVmdDozNnB0O21hcmdpbi10b3A6MHB0O21hcmdpbi1ib3R0b206MHB0Ij48c3Bh biBzdHlsZT0iZm9udC1zaXplOjExcHQ7Zm9udC1mYW1pbHk6QXJpYWw7Y29sb3I6cmdiKDAs MCwwKTtiYWNrZ3JvdW5kLWNvbG9yOnRyYW5zcGFyZW50O2ZvbnQtdmFyaWFudC1udW1lcmlj Om5vcm1hbDtmb250LXZhcmlhbnQtZWFzdC1hc2lhbjpub3JtYWw7dmVydGljYWwtYWxpZ246 YmFzZWxpbmU7d2hpdGUtc3BhY2U6cHJlLXdyYXAiPm9yPC9zcGFuPjwvcD4KICAgICAgICAg ICAgPHAgZGlyPSJsdHIiCnN0eWxlPSJsaW5lLWhlaWdodDoxLjM4O21hcmdpbi1sZWZ0OjM2 cHQ7bWFyZ2luLXRvcDowcHQ7bWFyZ2luLWJvdHRvbTowcHQiPjxzcGFuIHN0eWxlPSJmb250 LXNpemU6MTFwdDtmb250LWZhbWlseTpBcmlhbDtjb2xvcjpyZ2IoMCwwLDApO2JhY2tncm91 bmQtY29sb3I6dHJhbnNwYXJlbnQ7Zm9udC12YXJpYW50LW51bWVyaWM6bm9ybWFsO2ZvbnQt dmFyaWFudC1lYXN0LWFzaWFuOm5vcm1hbDt2ZXJ0aWNhbC1hbGlnbjpiYXNlbGluZTt3aGl0 ZS1zcGFjZTpwcmUtd3JhcCI+My4yNjIgPSAxLjg0NyArIDEuNDE1PC9zcGFuPjwvcD4KICAg ICAgICAgICAgPGJyPgogICAgICAgICAgICA8cCBkaXI9Imx0ciIKICAgICAgICAgICAgICBz dHlsZT0ibGluZS1oZWlnaHQ6MS4zODttYXJnaW4tdG9wOjBwdDttYXJnaW4tYm90dG9tOjBw dCI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMXB0O2ZvbnQtZmFtaWx5OkFyaWFsO2NvbG9y OnJnYigwLDAsMCk7YmFja2dyb3VuZC1jb2xvcjp0cmFuc3BhcmVudDtmb250LXZhcmlhbnQt bnVtZXJpYzpub3JtYWw7Zm9udC12YXJpYW50LWVhc3QtYXNpYW46bm9ybWFsO3ZlcnRpY2Fs LWFsaWduOmJhc2VsaW5lO3doaXRlLXNwYWNlOnByZS13cmFwIj5BIHRvdGFsIG9mIDMuMjYy IGlzIHN0aWxsIGRvbWluYW50IG92ZXIgdGhlIGxlc3NlciAyLjc3MiAtIGluIG9yZGVyIHRv IG92ZXJjb21lIHRoaXMgLSB0aGUgMm5kIHdpbm5pbmcgYmxvY2sgbmVlZHMgdG8gbWFrZSB1 cCBmb3IgYWxsIG9mIHRoZSBsb3NzZXMgaW4gdGhlIHByZXZpb3VzIGJsb2NrLsKgIEluIHRo aXMgc2NlbmFyaW8sIGluIG9yZGVyIGZvciB0aGUgd2Vha2VyIGNoYWluIHRvIHN1cHBsYW50 IHRoZSBkb21pbmFudCBjaGFpbiBpdCBtdXN0IG92ZXJjb21lIGEgLTAuNDkgcG9pbnQgZGVm aWNpdC4gSW4gdHJhZGl0aW9uYWwgTmFrYW1vdG8gQ29uc2Vuc3VzIHRoZSBub2RlcyB3b3Vs ZCBzZWUgYm90aCBmb3JrcyBhcyBhdXRob3JpdGF0aXZlIGVxdWFscyB3aGljaCBjcmVhdGVz IGEgZGl2aWRlIGluIG1pbmluZyBjYXBhY2l0eSB3aGlsZSB0d28gZ3JvdXBzIG9mIG1pbmVy cyBzZWFyY2ggZm9yIHRoZSBuZXh0IGJsb2NrLsKgIEluIEZsb2F0aW5nLVBvaW50IE5ha2Ft b3RvIENvbnNlbnN1cyBhbnkgbm9kZXMgcmVjZWl2aW5nIGJvdGggZm9ya3MsIHdvdWxkIHBy ZWZlciB0byBtaW5lIG9uIHRoZSBjaGFpbiB3aXRoIGFuIG92ZXJhbGwgZml0bmVzcyBzY29y ZSBvZiArMy4yNjIgLSBtYWtpbmcgaXQgZXZlbiBoYXJkZXIgZm9yIHRoZSB3ZWFrZXIgY2hh aW4gdG8gZmluZCBtaW5lcnMgdG8gY29tcGV0ZSBpbiBhbnkgZnV0dXJlIGRpc2FncmVlbWVu dCwgdGhlcmVieSBlcm9kaW5nIHN1cHBvcnQgZm9yIHRoZSB3ZWFrZXIgY2hhaW4uIFRoaXMg a2luZCBvZiBjb21wYXJpc29uIHJlcXVpcmVzIGFuIGVtcGlyaWNhbCBtZXRob2QgZm9yIGRl dGVybWluaW5nIGZpdG5lc3MgYnkgbWluZXJzIGZvbGxvd2luZyB0aGUgc2FtZSBzYW1lIHN5 c3RlbSBvZiBydWxlcyB3aWxsIGluc3VyZSBhIHNlbGYtZnVsZmlsbGVkIG91dGNvbWUuwqAg QWZ0ZXIgYWxsIG5vZGVzIGFkb3B0IHRoZSBkb21pbmFudCBjaGFpbiBub3JtYWwgTmFrYW1v dG8gQ29uc3Vlc3MgY2FuIHJlc3VtZSB3aXRob3V0IGhhdmluZyB0byB0YWtlIGludG8gY29u c2lkZXJhdGlvbiBibG9jayBmaXRuZXNzLiBUaGlzIGV4YW1wbGUgc2hvd3MgaG93IGRpc2Fn cmVlbWVudCBjYW4gYmUgcmVzb2x2ZWQgbW9yZSBxdWlja2x5IGlmIHRoZSBuZXR3b3JrIGhh cyBhIG1lY2hhbmlzbSB0byByZXNvbHZlIGFtYmlndWl0eSBhbmQgZGUtaW5jZW50aXZpc2Ug ZGlzc2VudC48L3NwYW4+PC9wPgogICAgICAgICAgICA8aDQgZGlyPSJsdHIiCiAgICAgICAg ICAgICAgc3R5bGU9ImxpbmUtaGVpZ2h0OjEuMzg7bWFyZ2luLXRvcDoxNHB0O21hcmdpbi1i b3R0b206NHB0Ij48c3BhbiBzdHlsZT0iZm9udC1zaXplOjEycHQ7Zm9udC1mYW1pbHk6QXJp YWw7Y29sb3I6cmdiKDEwMiwxMDIsMTAyKTtiYWNrZ3JvdW5kLWNvbG9yOnRyYW5zcGFyZW50 O2ZvbnQtd2VpZ2h0OjQwMDtmb250LXZhcmlhbnQtbnVtZXJpYzpub3JtYWw7Zm9udC12YXJp YW50LWVhc3QtYXNpYW46bm9ybWFsO3ZlcnRpY2FsLWFsaWduOmJhc2VsaW5lO3doaXRlLXNw YWNlOnByZS13cmFwIj5Tb2Z0IEZvcms8L3NwYW4+PC9oND4KICAgICAgICAgICAgPHAgZGly PSJsdHIiCiAgICAgICAgICAgICAgc3R5bGU9ImxpbmUtaGVpZ2h0OjEuMzg7bWFyZ2luLXRv cDowcHQ7bWFyZ2luLWJvdHRvbTowcHQiPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTFwdDtm b250LWZhbWlseTpBcmlhbDtjb2xvcjpyZ2IoMCwwLDApO2JhY2tncm91bmQtY29sb3I6dHJh bnNwYXJlbnQ7Zm9udC12YXJpYW50LW51bWVyaWM6bm9ybWFsO2ZvbnQtdmFyaWFudC1lYXN0 LWFzaWFuOm5vcm1hbDt2ZXJ0aWNhbC1hbGlnbjpiYXNlbGluZTt3aGl0ZS1zcGFjZTpwcmUt d3JhcCI+QmxvY2tjaGFpbiBuZXR3b3JrcyB0aGF0IHdvdWxkIGxpa2UgdG8gaW1wcm92ZSB0 aGUgY29uc2Vuc3VzIGdlbmVyYXRpb24gbWV0aG9kIGJ5IGFkZGluZyBhIGZpdG5lc3MgdGVz dCBzaG91bGQgYmUgYWJsZSB0byBkbyBzbyB1c2luZyBhIOKAnFNvZnQgRm9ya+KAnSBvdGhl cndpc2Uga25vd24gYXMgYSBjb21wYXRpYmxlIHNvZnR3YXJlIHVwZGF0ZS7CoCBCeSBjb250 cmFzdCBhIOKAnEhhcmQtRm9ya+KAnSBpcyBhIHNlcGFyYXRlIGluY29tcGF0aWJsZSBuZXR3 b3JrIHRoYXQgZG9lcyBub3QgZm9ybSB0aGUgc2FtZSBjb25zZW5zdXMuwqAgRmxvYXRpbmct UG9pbnQgTmFrYW1vdG8gQ29uc2Vuc3VzIGNhbiBiZSBpbXBsZW1lbnRlZCBhcyBhIHNvZnQt Zm9yayBiZWNhdXNlIGJvdGggcGF0Y2hlZCwgYW5kIG5vbi1wYXRjaGVkIG5vZGVzIGNhbiBj by1leGlzdCBhbmQgbm9uLXBhdGNoZWQgbm9kZXMgd2lsbCBiZW5lZml0IGZyb20gYSBraW5k IG9mIGhlcmQgaW1tdW5pdHkgaW4gb3ZlcmFsbCBuZXR3b3JrIHN0YWJpbGl0eS7CoCBUaGlz IGlzIGJlY2F1c2Ugb25jZSBhIHNtYWxsIG51bWJlciBvZiBub2RlcyBzdGFydCBmb2xsb3dp bmcgdGhlIHNhbWUgcnVsZXMgdGhlbiB0aGV5IHdpbGwgYmVjb21lIHRoZSBkZWNpZGluZyBm YWN0b3IgaW4gd2hpY2ggY2hhaW4gaXMgY2hvc2VuLsKgIENsaWVudHMgdGhhdCBhcmUgdXNp bmcgb25seSB0cmFkaXRpb25hbCBOYWthbW90byBDb25zZW5zdXMgd2lsbCBzdGlsbCBhZ3Jl ZSB3aXRoIG5ldyBjbGllbnRzIG92ZXIgdGhlIHRvdGFsIGNoYWluIGxlbmd0aC4gTWluZXJz IHRoYXQgYWRvcHQgdGhlIG5ldyBzdHJhdGVneSBlYXJseSwgd2lsbCBiZSBsZXNzIGxpa2Vs eSB0byBsb3NlIG91dCBvbiBtaW5pbmcgaW52YWxpZCBzb2x1dGlvbnMuPC9zcGFuPjwvcD4K ICAgICAgICAgICAgPGg0IGRpcj0ibHRyIgogICAgICAgICAgICAgIHN0eWxlPSJsaW5lLWhl aWdodDoxLjM4O21hcmdpbi10b3A6MTRwdDttYXJnaW4tYm90dG9tOjRwdCI+PHNwYW4gc3R5 bGU9ImZvbnQtc2l6ZToxMnB0O2ZvbnQtZmFtaWx5OkFyaWFsO2NvbG9yOnJnYigxMDIsMTAy LDEwMik7YmFja2dyb3VuZC1jb2xvcjp0cmFuc3BhcmVudDtmb250LXdlaWdodDo0MDA7Zm9u dC12YXJpYW50LW51bWVyaWM6bm9ybWFsO2ZvbnQtdmFyaWFudC1lYXN0LWFzaWFuOm5vcm1h bDt2ZXJ0aWNhbC1hbGlnbjpiYXNlbGluZTt3aGl0ZS1zcGFjZTpwcmUtd3JhcCI+Q29uY2x1 c2lvbjwvc3Bhbj48L2g0PgogICAgICAgICAgICA8cCBkaXI9Imx0ciIKICAgICAgICAgICAg ICBzdHlsZT0ibGluZS1oZWlnaHQ6MS4zODttYXJnaW4tdG9wOjBwdDttYXJnaW4tYm90dG9t OjBwdCI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMXB0O2ZvbnQtZmFtaWx5OkFyaWFsO2Nv bG9yOnJnYigwLDAsMCk7YmFja2dyb3VuZC1jb2xvcjp0cmFuc3BhcmVudDtmb250LXZhcmlh bnQtbnVtZXJpYzpub3JtYWw7Zm9udC12YXJpYW50LWVhc3QtYXNpYW46bm9ybWFsO3ZlcnRp Y2FsLWFsaWduOmJhc2VsaW5lO3doaXRlLXNwYWNlOnByZS13cmFwIj5GbG9hdGluZy1Qb2lu dCBOYWthbW90byBjb25zZW5zdXMgYWxsb3dzIHRoZSBuZXR3b3JrIHRvIGZvcm0gYSBjb25z ZW5zdXMgbW9yZSBxdWlja2x5IGJ5IGF2b2lkaW5nIGFtYmlndWl0eSBhbGxvd2luZyBmb3Ig ZGV0ZXJtaW5pc20gdG8gdGFrZSBob2xkLiBCaXRjb2luIGhhcyBiZWNvbWUgYW4gZXNzZW50 aWFsIHV0aWxpdHksIGFuZCBhdHRhY2tzIGFnYWluc3Qgb3VyIG5ldHdvcmtzIG11c3QgYmUg YXZvaWRlZCBhbmQgYWRhcHRpbmcsIHBhdGNoaW5nIGFuZCBwcm90ZWN0aW5nIHRoZSBuZXR3 b3JrIGlzIGEgY29uc3RhbnQgZWZmb3J0LiBBbiBvcmdhbml6ZWQgYXR0YWNrIGFnYWluc3Qg YSBjcnlwdG9jdXJyZW5jeSBuZXR3b3JrIHdpbGwgdW5kZXJtaW5lIHRoZSBndWFyYW50ZWVz IHRoYXQgYmxvY2tjaGFpbiBkZXZlbG9wZXJzIGFyZSBkZXBlbmRpbmcgb24uPC9zcGFuPjwv cD4KICAgICAgICAgICAgPGJyPgogICAgICAgICAgICA8cCBkaXI9Imx0ciIKICAgICAgICAg ICAgICBzdHlsZT0ibGluZS1oZWlnaHQ6MS4zODttYXJnaW4tdG9wOjBwdDttYXJnaW4tYm90 dG9tOjBwdCI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMXB0O2ZvbnQtZmFtaWx5OkFyaWFs O2NvbG9yOnJnYigwLDAsMCk7YmFja2dyb3VuZC1jb2xvcjp0cmFuc3BhcmVudDtmb250LXZh cmlhbnQtbnVtZXJpYzpub3JtYWw7Zm9udC12YXJpYW50LWVhc3QtYXNpYW46bm9ybWFsO3Zl cnRpY2FsLWFsaWduOmJhc2VsaW5lO3doaXRlLXNwYWNlOnByZS13cmFwIj5BbnkgYmxvY2tj aGFpbiB1c2luZyBOYWthbW90byBDb25zZW5zdXMgY2FuIGJlIG1vZGlmaWVkIHRvIHVzZSBh IGZpdG5lc3MgY29uc3RyYWludCBzdWNoIGFzIHRoZSBvbmUgdXNlZCBieSBhIEZsb2F0aW5n LVBvaW50IE5ha2Ftb3RvIENvbnNlbnN1cy7CoCBBbiBleGFtcGxlIGltcGxlbWVudGF0aW9u IGhhcyBiZWVuIHdyaXR0ZW4gYW5kIHN1Ym1pdHRlZCBhcyBhIFBSIHRvIHRoZSBiaXRjb2lu IGNvcmUgd2hpY2ggaXMgZnJlZSB0byBiZSBhZGFwdGVkIGJ5IG90aGVyIG5ldHdvcmtzLjwv c3Bhbj48L3A+CiAgICAgICAgICAgIDxicj4KICAgICAgICAgICAgPGJyPgogICAgICAgICAg ICA8YnI+CiAgICAgICAgICAgIDxicj4KICAgICAgICAgICAgPGJyPgogICAgICAgICAgICA8 cCBkaXI9Imx0ciIKc3R5bGU9ImxpbmUtaGVpZ2h0OjEuMzg7bWFyZ2luLWxlZnQ6MzZwdDtt YXJnaW4tdG9wOjBwdDttYXJnaW4tYm90dG9tOjBwdCI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6 ZToxMXB0O2ZvbnQtZmFtaWx5OkFyaWFsO2NvbG9yOnJnYigwLDAsMCk7YmFja2dyb3VuZC1j b2xvcjp0cmFuc3BhcmVudDtmb250LXZhcmlhbnQtbnVtZXJpYzpub3JtYWw7Zm9udC12YXJp YW50LWVhc3QtYXNpYW46bm9ybWFsO3ZlcnRpY2FsLWFsaWduOmJhc2VsaW5lO3doaXRlLXNw YWNlOnByZS13cmFwIj5BIGNvbXBsZXRlIGltcGxlbWVudGF0aW9uIG9mIEZsb2F0aW5nLVBv aW50IE5ha2Ftb3RvIGNvbnNlbnN1cyBpcyBpbiB0aGUgZm9sbG93aW5nIHB1bGwgcmVxdWVz dDo8L3NwYW4+PC9wPgogICAgICAgICAgICA8cCBkaXI9Imx0ciIKc3R5bGU9ImxpbmUtaGVp Z2h0OjEuMzg7bWFyZ2luLWxlZnQ6MzZwdDttYXJnaW4tdG9wOjBwdDttYXJnaW4tYm90dG9t OjBwdCI+PGEKaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL2JpdGNvaW4vYml0Y29pbi9wdWxs LzE5NjY1L2ZpbGVzIgogICAgICAgICAgICAgICAgdGFyZ2V0PSJfYmxhbmsiIHN0eWxlPSJ0 ZXh0LWRlY29yYXRpb24tbGluZTpub25lIgogICAgICAgICAgICAgICAgbW96LWRvLW5vdC1z ZW5kPSJ0cnVlIj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjExcHQ7Zm9udC1mYW1pbHk6QXJp YWw7YmFja2dyb3VuZC1jb2xvcjp0cmFuc3BhcmVudDtmb250LXZhcmlhbnQtbnVtZXJpYzpu b3JtYWw7Zm9udC12YXJpYW50LWVhc3QtYXNpYW46bm9ybWFsO3RleHQtZGVjb3JhdGlvbi1s aW5lOnVuZGVybGluZTt2ZXJ0aWNhbC1hbGlnbjpiYXNlbGluZTt3aGl0ZS1zcGFjZTpwcmUt d3JhcCI+aHR0cHM6Ly9naXRodWIuY29tL2JpdGNvaW4vYml0Y29pbi9wdWxsLzE5NjY1L2Zp bGVzPC9zcGFuPjwvYT48L3A+CiAgICAgICAgICAgIDxicj4KICAgICAgICAgICAgPHAgZGly PSJsdHIiCnN0eWxlPSJsaW5lLWhlaWdodDoxLjM4O21hcmdpbi1sZWZ0OjM2cHQ7bWFyZ2lu LXRvcDowcHQ7bWFyZ2luLWJvdHRvbTowcHQiPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTFw dDtmb250LWZhbWlseTpBcmlhbDtjb2xvcjpyZ2IoMCwwLDApO2JhY2tncm91bmQtY29sb3I6 dHJhbnNwYXJlbnQ7Zm9udC12YXJpYW50LW51bWVyaWM6bm9ybWFsO2ZvbnQtdmFyaWFudC1l YXN0LWFzaWFuOm5vcm1hbDt2ZXJ0aWNhbC1hbGlnbjpiYXNlbGluZTt3aGl0ZS1zcGFjZTpw cmUtd3JhcCI+UGFwZXI6PC9zcGFuPjwvcD4KICAgICAgICAgICAgPHAgZGlyPSJsdHIiCnN0 eWxlPSJsaW5lLWhlaWdodDoxLjM4O21hcmdpbi1sZWZ0OjM2cHQ7bWFyZ2luLXRvcDowcHQ7 bWFyZ2luLWJvdHRvbTowcHQiPjxhCmhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS9pbi1zdC9G bG9hdGluZy1Qb2ludC1OYWthbW90by1Db25zZW5zdXMiCiAgICAgICAgICAgICAgICB0YXJn ZXQ9Il9ibGFuayIgc3R5bGU9InRleHQtZGVjb3JhdGlvbi1saW5lOm5vbmUiCiAgICAgICAg ICAgICAgICBtb3otZG8tbm90LXNlbmQ9InRydWUiPjxzcGFuIHN0eWxlPSJmb250LXNpemU6 MTFwdDtmb250LWZhbWlseTpBcmlhbDtiYWNrZ3JvdW5kLWNvbG9yOnRyYW5zcGFyZW50O2Zv bnQtdmFyaWFudC1udW1lcmljOm5vcm1hbDtmb250LXZhcmlhbnQtZWFzdC1hc2lhbjpub3Jt YWw7dGV4dC1kZWNvcmF0aW9uLWxpbmU6dW5kZXJsaW5lO3ZlcnRpY2FsLWFsaWduOmJhc2Vs aW5lO3doaXRlLXNwYWNlOnByZS13cmFwIj5odHRwczovL2dpdGh1Yi5jb20vaW4tc3QvRmxv YXRpbmctUG9pbnQtTmFrYW1vdG8tQ29uc2Vuc3VzPC9zcGFuPjwvYT48L3A+CiAgICAgICAg ICAgIDxwIGRpcj0ibHRyIgpzdHlsZT0ibGluZS1oZWlnaHQ6MS4zODttYXJnaW4tbGVmdDoz NnB0O21hcmdpbi10b3A6MHB0O21hcmdpbi1ib3R0b206MHB0Ij48YQogICAgICAgICAgICAg ICAgaHJlZj0iaHR0cHM6Ly9pbi5zdC5jYXBpdGFsLyIgdGFyZ2V0PSJfYmxhbmsiCiAgICAg ICAgICAgICAgICBzdHlsZT0idGV4dC1kZWNvcmF0aW9uLWxpbmU6bm9uZSIgbW96LWRvLW5v dC1zZW5kPSJ0cnVlIj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjExcHQ7Zm9udC1mYW1pbHk6 QXJpYWw7YmFja2dyb3VuZC1jb2xvcjp0cmFuc3BhcmVudDtmb250LXZhcmlhbnQtbnVtZXJp Yzpub3JtYWw7Zm9udC12YXJpYW50LWVhc3QtYXNpYW46bm9ybWFsO3RleHQtZGVjb3JhdGlv bi1saW5lOnVuZGVybGluZTt2ZXJ0aWNhbC1hbGlnbjpiYXNlbGluZTt3aGl0ZS1zcGFjZTpw cmUtd3JhcCI+aHR0cHM6Ly9pbi5zdC5jYXBpdGFsPC9zcGFuPjwvYT48L3A+CiAgICAgICAg ICAgIDxiciBjbGFzcz0iZ21haWwtQXBwbGUtaW50ZXJjaGFuZ2UtbmV3bGluZSI+CiAgICAg ICAgICA8L3NwYW4+PC9kaXY+CiAgICAgIDwvZGl2PgogICAgICA8YnI+CiAgICAgIDxmaWVs ZHNldCBjbGFzcz0ibWltZUF0dGFjaG1lbnRIZWFkZXIiPjwvZmllbGRzZXQ+CiAgICAgIDxw cmUgY2xhc3M9Im1vei1xdW90ZS1wcmUiIHdyYXA9IiI+X19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX18KYml0Y29pbi1kZXYgbWFpbGluZyBsaXN0Cjxh IGNsYXNzPSJtb3otdHh0LWxpbmstYWJicmV2aWF0ZWQiIGhyZWY9Im1haWx0bzpiaXRjb2lu LWRldkBsaXN0cy5saW51eGZvdW5kYXRpb24ub3JnIj5iaXRjb2luLWRldkBsaXN0cy5saW51 eGZvdW5kYXRpb24ub3JnPC9hPgo8YSBjbGFzcz0ibW96LXR4dC1saW5rLWZyZWV0ZXh0IiBo cmVmPSJodHRwczovL2xpc3RzLmxpbnV4Zm91bmRhdGlvbi5vcmcvbWFpbG1hbi9saXN0aW5m by9iaXRjb2luLWRldiI+aHR0cHM6Ly9saXN0cy5saW51eGZvdW5kYXRpb24ub3JnL21haWxt YW4vbGlzdGluZm8vYml0Y29pbi1kZXY8L2E+CjwvcHJlPgogICAgPC9ibG9ja3F1b3RlPgog IDwvYm9keT4KPC9odG1sPgo= --------------3FCAF818CF8B3F72DE2CF89D--