Federal tax law attempts to delineate a very clear distinction between tax avoidance, which can at worst only expose the Tax Practitioner and his or her client to potential civil penalties, and tax evasion, for which criminal penalties may apply to all parties concerned. The Supreme Court in Gregory v. Helvering, 293 U.S. 465 (1935) defined permissible tax avoidance as actions that “reduce, avoid, minimize, or alleviate taxes through wholly legitimate means”. In stark contrast, evasion involves tax avoidance that is ordinarily accomplished via an element of deceit or concealment and at times patently illegal means. Taxpayers are thus legally entitled to choose the most tax efficient alternative to structure a transaction. The court in Helvering stated “he legal right of a taxpayer to decrease the amount of what otherwise would be his taxes, or altogether avoid them, by means which the law permits, cannot be doubted”…
While it is well settled that taxpayers are entitled to avoid taxes, the historical controversy stems from the fact that in order for the structuring of a tax avoidance transaction (or transactions) to withstand governmental scrutiny and thus fend off being recharacterized or simply disregarded, the transaction structure must comply with the totality of tax law as currently enacted which includes statutory and common-law requirements such as the Economic Substance, Sham Transaction, Step Transaction, and Substance Over Form Doctrines, and the Business Purpose Test
Statutory and Judicial Restraints on Tax Avoidance:
left
The judicial and statutory constraints on tax reduction strategies of general application including the Economic Substance, Sham Transaction, Step Transaction, and Substance over Form Doctrines, and the Business Purpose Test can all be traced back to the Supreme Court’s holding in Gregory v. Helvering. This case concerned a taxpayer who formed a corporation mainly for the purpose of exploiting the tax free reorganization provisions in order to avoid gain recognition on a planned subsequent sale of stock to be transferred to the newly formed Corporation. The Court in Gregory v. Helvering found that the taxpayer was in compliance with every element required by statute and thus a statutory reorganization was achieved. The court held that the motive of the taxpayer to avoid tax in and of itself did not render impermissible what the reorganization statute clearly allowed, but went on to focus on whether what was done, apart from the tax motive, was the thing which the statute intended. The court answered that question in the negative holding that reorganization was not accomplished, but it was merely “a transfer of assets by one corporation to another in pursuance of a plan having no relation to the business of either”.
Step Transaction Doctrine:
left
The step transaction doctrine dictates that the tax consequences of tax planning transactions turn on their substance rather than solely on their form. This is accomplished by collapsing a series of separate steps into a single transaction in order for the government to obtain a clear view of what the separate steps are accomplishing in substance. The import of the step transaction doctrine is that a statutorily prohibited transaction must not be accomplished by breaking it down into seemingly allowable independent steps and that in determining the legality of the series of transactions the government will weigh the series of steps together in determining the associated tax consequence. The doctrine further dictates that the time interval between related transactional steps is not determinative, but is merely a factor, of whether the transactions will be collapsed for analysis under the step transaction doctrine.
Unfortunately for practitioners and taxpayers, No single judicial standard has been universally accepted by the federal courts in applying the step transaction doctrine. However, the three most commonly invoked types of “step testing” utilized by the federal courts are:
- the binding commitment test;
- the interdependence test; and
- the end result test;
The Supreme Court first used the binding commitment test in Commissioner V Gordon where the Court refused to treat stock distributions taking place over several tax years as a single transaction for tax purposes. The Court held that if a transaction is to be characterized as a first step there must be a binding commitment to take the later steps. The binding commitment test as currently applied requires collapsing several transaction steps into a single transaction solely where a binding commitment existed as to the subsequent steps at the time the first step was taken. Subsequent judicial use of the binding commitment test has been sparse, and post Gordon court decisions have tended to confine the test to the facts of that case. On balance, when binding commitments are present, the subsequent steps will be collapsed into a single transaction for analysis purposes. Where they are not present courts have tended to apply the other two tests.
1. Interdependence test focuses on the relationship between the individual steps of a series of transactions and analyzes whether the steps have independent significance or whether they have meaning only as part of the larger planned transaction. A judgment is made as to whether the steps are so interdependent that the legal ramifications of each intermediate transaction would be nil without the completion of the entire series of transactions. When it is apparent that any single step would not have been undertaken except in contemplation of the totality of the associated transactions, the step transaction doctrine will be applied. If the foregoing analysis does not establish that the first step would not have been taken without contemplation of the later ones, the steps are not integrated.
2. Under the frequently applied end result test, related but separate transactions are collapsed into a single transaction when the government is of the opinion that they are really related component parts of a single overarching transaction.
The end result test is used when it is clear that a planned tax result is achieved via a series of related transactions that could not be achieved via a single transaction. However, where a business engages in a series of related transactions that appear to be designed and executed as part of a unitary plan to achieve an intended result, the plan may be viewed in the aggregate regardless of whether the effect of doing so increases or decreases the combined tax effect.The end result test focuses on intent and where the separate transactions are viewed as a single overarching scheme, they will be collapsed into a single transaction. On the other hand, where is required intent is deemed absent, the steps analyzed are treated as separate.
Sham Transaction Doctrine:
left
The “sham transaction” doctrine is “judge made law” which will deny advantageous tax treatment where transactions are carried out primarily for tax avoidance purposes and they lack a bonafide business purpose. This doctrine tends to be applied where a taxpayer attempts to disguise a transaction and make it appear to be something that, in reality, it is not, in which case the courts will ignore the form of the transaction and declare it to be a sham and then ascertain the tax impact based upon the courts view of the substantive nature of the transaction. A transaction that is labeled as a sham where it is deemed to not be motivated by a legitimate business purpose other than its anticipated tax benefits, will be deemed to lack economic substance because there is no reasonable expectation of profit and thus will be disregarded for tax purposes.
Case Law Based Factors Indicative of Sham Transactions
Transactions are at risk of being recharacterized by the taxing authorities as a sham if no non tax business or investment motive can be identified and the buyer is seen to be under the common control of the seller. For example, the sale of an asset to a LLC at a price well in excess of the asset’s fair market value will not be respected where the seller and the LLC are under common control. Likewise when a sole shareholder or group of controlling shareholders sells an asset to their corporation at an inflated price and then retain control over the asset, the transaction is at risk of being disregarded as a sham because the service can argue the transaction is lacking in good faith or finality.
The following factors from case law are what the government will consider in deeming whether a valid sale transaction or a sham has taken place:
- Is the price associated with the transaction reasonable or overstated?
- Has common control over the property been retained?
- Was there a genuine intent to pay the full purchase price by the buyer?
- Is the seller receiving a real economic benefit from the sale of the property other than purely tax benefits?
Case law has shown that the IRS generally is the sole party that benefits from this substance over form type analysis in deeming if a transaction is a sham. Taxpayers have had to bear a heavy burden in attempting to persuade a court to disregard the form of their own sham transaction and thus have on balance not been successful in doing so.
Another methodology the government has used successfully to set aside a transaction it deems to have been entered into for the sole purpose of creating a tax loss is where it finds the parties have sufficient influence over the transaction as to remove any substantial risk of being unable to return to their previous position by labeling the transaction an accommodation rather than an arm’s length sale, and thus having grounds to disregard it for tax purposes. Alternatively, the same transaction may be characterized as a sale, but not between the parties involved in the taxpayer’s transaction.
Case Law Examples:
In D.M. Fender v US, CA-5,78-2 USTC 9617, 577 F2d 934, a sale of bonds to a bank where the taxpayers owned the controlling block of stock was disregarded as non bonafide because they did not in the government’s opinion suffer a genuine economic loss which is a requirement for a loss deduction.
In T.F. Abbott, Jr. v Commr, 23 TCM 445, Dec. 26,696(M), TC Memo. 1964-65, aff’d, per curiam, CA-5,65-1 USTC 9331, 342 F2d 997; the Court of Appeals in the 5th circuit affirmed the Tax Court in holding that a major stockholder of a corporation, and not his related corporation, in reality realized a gain from the sale of stock. The major stockholder purportedly transferred stock to the corporation as a capital contribution and then his related corporation turned around and immediately sold the stock at a gain. The Tax Court justified setting aside the form of the transaction by holding that the stockholder in substance had sold stock as an individual using the corporation as a conduit and then contributed the proceeds to the corporation as a capital contribution.
In the Est. of S. Ravetti v Commr, 67 TCM 3064, Dec. 49,893(M), TC Memo. 1994-260, Losses flowing to a limited partner related to a purchase of a film by a partnership were disallowed because the acquisition was held to lack economic substance. Factors that the court focused on to justify the disallowance were over-inflated purchase price for the film in order to support tax benefits, the lack of personal liability of the limited partner and the transaction was held to not be the result of a true arms-length negotiation.
In H.J. Smith, Jr. v Commr, 50 TCM 1444, Dec. 42,488(M), TC Memo. 1985-567 a sale of stock at auction was held to be invalid where the seller’s son purchased the stock with money given to him by the seller (his father) because the father in economic terms did not receive anything for the stock.
In P.J. Batastini v Commr, 53 TCM 1500,Dec. 44,086(M), TC Memo. 1987-378; Milbrew, Inc. v Commr, 42 TCM 1467, Dec. 38,363(M), TC Memo. 1981-80, aff’d, CA-7, 83-2 USTC 9467, 710 F2d 1302; F.C. LaGrange v Commr, 26 TC 191, Dec. 21,699 (1956) a series of sale-leaseback transactions were disallowed because the court believed the transactions were entered into solely to inflate the value of the assets used in a school bus business. In reality title to the asset of the business were never transferred to the buyers and the agreed upon purchase price greatly exceeded the true value of the underlying assets. These factors along with others led to the disallowance under the transaction lacked economic substance by the court.
In W.G. Hock v Commr, 54 TCM 407, Dec. 44,167(M), TC Memo 1987-444, the limited partners in a mining operation’s expenses and losses were disallowed because the investment in the mining operation was held to not be motivated by a valid business purpose. The transactions as a whole lacked economic substance because of the relationship and lack of knowledge or experience in the mining industry of the parties and the overstated purchase price. Moreover, no ore was ever mined or sold and no payments were actually made to the seller, and factors were apparent that indicated the mine was never a profitable business venture.
Business Purpose Test::
left
The business purpose test requires that a transaction, to be respected, must have a business purpose separate and apart from any associated tax advantages. The business purpose test may be viewed as having two elements that, if satisfied, should prevent government scrutiny and adjustment of a transaction under the doctrine.
The acquisition was motivated by a nontax business purpose; and
The method of the acquisition was motivated by a nontax business purpose.
The business purpose requirement came out of case law surrounding government challenges to corporate reorganizations, but as presently applied is not limited to corporate reorgs today. The most common application of the business purpose test currently, is where a group of corporations can be denied affiliated group status and thus be prohibited from including a corporation on its consolidated return if a business purpose is lacking surrounding the acquisition of the target corporation. Corporate divisions are also closely scrutinized as tax free reorganizations under the business purpose test because they can easily be used in an attempt to convert dividend distributions into capital gain distributions.
The business purpose test judicial doctrine was the predecessor of specific code provisions which exist today that deny the use of the net losses of a target corporation if the major reason of its acquisition was to secure the benefits of the net losses. This series of code provisions prevents the acquiring corporation from utilizing pre-acquisition net operating losses to reduce the taxable income on the associated consolidated group return.
https://klasing-associates.com/wp-content/uploads/2015/11/business-entity-selection-decision-attorney.jpg
The policy behind the reorganization provisions is to enable the continuation of an ongoing business under modified corporate form without a current tax impact. In the absence of a valid business purpose underlying a modification to corporate form the government perceives abuses where these provisions are used to improperly achieve non-taxable sale or dividend distributions. To complicate matters, strict literal compliance with the letter of the law surrounding the reorganization statutes may none the less be insufficient to achieve tax-free treatment. The courts have consistently required that the underlying business purpose of the reorganization provisions be complied with as well and have used the business purpose test as a sword to disallow transactions deemed abusive on multiple occasions where they believe taxpayers have not done so.
In reality whenever an exchange, which is intended to be tax free, results in the exchange of materially different properties, realization of gain or loss occurs and this ordinarily has to be recognized for tax purposes unless a tax free exchange non-recognition provision applies. To qualify as tax free, the reorganization has to be driven by business circumstances rather than solely a desire to lower a company’s tax burden.
Economic Substance Doctrine:
left
The economic substance doctrine or sham in substance doctrine led to the recent codification found in § 7701 (o), which basically dictates that any transaction where the economic substance doctrine is applicable shall be treated as having economic substance only where:
(A) Entering into the transaction changes in a meaningful way the taxpayer’s economic position, (apart from its Federal income tax effects) and
(B) The taxpayer has a substantial business purpose for entering into such transaction (apart from its Federal income tax effects).
The genesis of the “economic substance doctrine” is a common law doctrine that disallowed the tax benefits associated with a transaction if the transaction was deemed to lack economic substance a business purpose which in 2010 was codified under IRC §7701(o)(5)(A). IRC §7701(o)(5) specifically states that the prior existing precedent stemming from federal case law on the subject of economic substance is still relevant to the determination of whether §7701 is relevant to a fact pattern and when the application of the doctrine is called for, but it expressly overrules any prior case law which only required one “prong” of the economic substance test to satisfy the doctrine. Prior case law that held that a meaningful change in economic position a substantial, non-tax business purpose satisfied the economic substance doctrine was expressly overruled with the enactment of §7701(o)(5). The current codification of the economic substance doctrine requires that both prongs be satisfied (i.e. both a meaningful change and a non-tax purpose is required to satisfy §7701), and consequently any prior case law which only required one prong of the test be satisfied, has limited applicability for tax years subsequent to the enactment of §7701 in 2010.
In applying the §7701 codification standard, the profit generation potential of a transaction is only sufficient if the present value of the reasonably expected pre-tax profit from the transaction is substantial when compared to the present value of the expected federal tax benefits that would be thrown off by the transaction if it were respected for tax purposes. In estimating these benefits, the Service will rely on all available relevant case law precedent and other relevant primary authority. The statue does not provide a safe harbor minimum pretax profit or percentage ratio between the expected profits and expected benefits to satisfy the profit potential test described above.
The following examples of tax shelters were attacked under the economic substance doctrine and helped lead to the drafting of §7701;
- (BEDS) – Basis-enhancing derivatives structures which are essentially a series of transactions entered into for the purpose of increasing the basis of corporate stock in order to reduce any capital gain on the sale of that stock.
- (CARDS) – Custom Adjustable Rate Debt Structure transactions, in which the loss from a cross-currency swap is offset against the gain from the sale of an unrelated business.
- (BLISS) – Basis Leveraged Investment Swap Spread transactions, where a series of connected transactions are executed involving the sale by a subsidiary of substantially all of its assets at a sizeable gain followed by a series of purchases and sales of both long and short options in foreign currency through a method called a digital option spread which the subsidiary then contributes the options to a wholly owned partnership. Simultaneously, the partnership purchases shares of unrelated corporate stock from the open stock market. As a result of the capital contribution of the digital option spread transactions, the subsidiary increases its outside basis in the partnership interest to the point where when the partnership held by the subsidiary liquidates the resulting stock distribution back up to the subsidiary has a basis which will generate a loss when the stock is sold that will offsets the gain from the prior sale of the subsidiary’s assets.
- (DAD) – A distressed asset/debt transaction, where a foreign retailer in bankruptcy reorganization contributes distressed receivables related to its bankruptcy estate to an American LLC, which is specifically formed to collect the receivables, in exchange for a majority interest in the LLC. The foreign retailer subsequently redeems its interest in the LLC for cash and then the LLC contributes a portion of the receivables in exchange for majority interests in several other newly created LLCs. American investors then are sold membership interests in the LLCs through an additional layer of LLCs, which function as holding companies. The series of related LLCs claim a carryover basis in the receivables based on their face value at contribution and then write off the basis in those receivables as bad debt which generates losses to the American investors. The original top level LLC than claims losses on the subsequent sale of the layered membership interests in the holding companies.
Substance Over From Doctrine:
left
Similar to the sham transaction analysis, the substance over form doctrine requires that the associated tax liability stemming from a transaction is required to be determined based on the economic substance of the transaction, and not the particular form the transaction utilized. This doctrine has been historically utilized by the government to target schemes where taxpayers have purposely mischaracterized a transaction in order to derive beneficial tax treatment. Under the justification found under this doctrine, courts have been known to ignore the form of the transaction utilized and then focus on the underlying economic substance of the transaction in determining what the court deems to be the proper tax consequences of a transaction.
Section 269:
left
Code section 269 was implemented to halt various perceived tax avoidance abuses during World War II. Because of extremely high surtaxes and excess profit taxes that existed at the time it become very popular for a profitable corporation to acquire a loss corporation. Consequently, § 269(a) provides that if an individual acquires control of a corporation, or if a corporation acquires the property of a non controlled (at the stockholder and corporate levels) third party target corporation or its stockholders, if the principal purpose for the acquisition is the evasion or avoidance of income tax via the securing of a deduction, credit, or other allowance which the acquiring individual or corporation would not otherwise benefit from, the government may disallow such deduction, credit, or other allowance.
Passive Losses:
Generally, a passive activity is any activity that may be considered a trade or business where the taxpayer does not materially participate. Material participation means that a taxpayer is involved in the operations of the activity on a regular, continuous and substantial basis. The participation level is determined on an annual basis.
Passive activity expenses and losses are those attributable to passive activities that generate income. Such expenses and losses can only be used to offset income from passive activities with one exception. Expenses and losses that exceed passive activity gross income may be applied retroactively or carried forward until such excess is used up. Passive activity gross income includes gain from the disposition of property used in a passive activity at the time of the disposition. Passive activity rules apply to individuals, trusts, estates, personal service corporations, and closely held C corporations, but not S corporations or partnerships although they apply to partners and shareholders at the individual level respectively. Note: a taxpayer who owns an interest in an activity as a limited partner is not treated as materially participating in the activity by definition.
Passive Losses:
Generally, a passive activity is any activity that may be considered a trade or business where the taxpayer does not materially participate. Material participation means that a taxpayer is involved in the operations of the activity on a regular, continuous and substantial basis. The participation level is determined on an annual basis.
Passive activity expenses and losses are those attributable to passive activities that generate income. Such expenses and losses can only be used to offset income from passive activities with one exception. Expenses and losses that exceed passive activity gross income may be applied retroactively or carried forward until such excess is used up. Passive activity gross income includes gain from the disposition of property used in a passive activity at the time of the disposition. Passive activity rules apply to individuals, trusts, estates, personal service corporations, and closely held C corporations, but not S corporations or partnerships although they apply to partners and shareholders at the individual level respectively. Note: a taxpayer who owns an interest in an activity as a limited partner is not treated as materially participating in the activity by definition.
At Risk Rules:
Individuals, partners, S corporation shareholders, estates, trusts and certain closely held C corporations are subject to the at-risk rules. Under the at risk rules, deductions for losses stemming from a trade or business, or an activity for the production of income are limited to the amount at risk. The amount at risk is basically the amount of capital and the adjusted basis of property contributed to the activity. A taxpayer generally is also at risk for amounts borrowed to fund the business or investment activity if the taxpayer is personally liable for repayment or has pledged property unrelated to the activity under consideration as collateral to securitize borrowed funds unless the taxpayer is in reality insulated against losses. A taxpayer may additionally be at risk where qualified nonrecourse financing for real estate is utilized.
Reportable Transactions:
Reportable transactions are transactions that:
- Are the same or substantially similar to transactions identified as tax avoidance transactions and periodically published by the IRS as “listed transactions”.
- Transactions that are offered to a taxpayer under conditions of confidentiality and for which the taxpayer has paid an advisor a minimum fee.
- A transaction that contains a contractual protection entitling the taxpayer to a full or partial refund of fees if all or part of the projected tax consequences flowing from the transaction are not sustained if challenged.
- Loss transactions resulting in the taxpayer claiming a loss under § 165 (Wagering, theft, capital and disaster losses) of $10 million or greater in any single taxable year or $20 million in total in any combination of taxable years for corporations.
- Transactions that are the same as or substantially similar to one of the types of transactions that the IRS has identified and labeled a “transaction of interest”.
See IRS website at: https://www.irs.gov/instructions/i8886/ch01.html
A transaction of interest is a transaction that is the same as or substantially similar to one of the types of transactions that the IRS has identified by notice, regulation, or other form of published guidance as a transaction of interest. It is a transaction that the IRS and Treasury Department believe has a potential for tax avoidance or evasion, but for which there is not enough information to determine if the transaction should be identified as a tax avoidance transaction. The requirement to disclose transactions of interest applies to transactions of interest entered into after November 1, 2006. For existing guidance, see Notice 2009-55, 2009-31 I.R.B. 170, available at https://www.irs.gov/pub/irs-irbs/irb09-31.pdf. The IRS may issue a new, or update the existing, notice, regulation, or other form of guidance that identifies a transaction as a transaction of interest.
Listed Transactions
The IRS keeps a current listing of tax shelters that it has deemed to be tax avoidance transactions. Practitioners and taxpayers are not prohibited from participating in listed transactions but civil and criminal career ending consequences can be imposed on taxpayers, practitioners and promoters that do not disclose their participation in a listed transaction where they are required to. Note: The IRS requires that all participation in any tax shelter that has the potential for tax evasion or avoidance, listed or unlisted, however the most draconian penalties surround non-disclosure of participation in listed transactions.
Tax Shelters
The Tax Court has consistently disallowed losses, deductions and credits from transactions it deems to be tax shelters via attack as a sham transaction, or by not respecting the form the transactions takes and determines the associated income tax consequences accordingly. To be respected, transactions are required to be motivated by business considerations rather than by attractive tax avoidance benefits obtained via the use of meaningless labels.
The Tax Court has adopted a unified test to identify generic tax shelters based on the economic substance doctrine and factors associated with the not for profit regulations.
- The tax court defines a generic tax shelter as a tax shelter that lacks statutory authority and has the following qualities:
- The main focus of the associated promotional materials surrounded tax benefits.
- The taxpayers utilizing the shelter accepted the terms of purchase without price negotiation.
- The assets purchased consist of prepackaged property rights that are difficult to value in the thin air environment in which they are sold and, invariably, are substantially overvalued in relation to the property rights actually purchased.
- The property rights were acquired or created at a comparatively low cost shortly before the transactions under scrutiny.
- The consideration is deferred via promissory notes that are often nonrecourse in form or in substance.
- Transactions identified as generic tax shelters in the past have included investments in the cable television industry, master music recordings, inventions, mining activities, films rights, art packages, videotape recordings, and luxury yacht leasing arrangements.
Reportable Transactions Civil Penalty Regimes:
left
The Code provides for several civil penalty regimes that were implemented in an attempt to generate accurate reporting of transactions by taxpayers and practitioners. Under section 6662(a) a 20% penalty is imposed on any portion of an underpayment that is attributable to negligence surrounding the application of codified rules or regulations. It also applies to substantial understatements of income tax, or a substantial valuation overstatement. This penalty is increased to 40% where a gross valuation misstatement occurs and is calculated on 40% of the valuation understatement. The 40% penalty also applies to undisclosed transaction deemed to lack economic substance and to undisclosed foreign financial asset understatements. There is a penalty regime surrounding reportable transaction understatements that increase when the underreporting is coupled with non-disclosure and where fraud is deemed to have occurred.
Potential Tax Practitioner Criminal Liability:
left
It is important to emphasize the obvious, that tax evasion is a very different concept than tax avoidance is. Tax avoidance involves the careful, legal structuring of one’s affairs so his or her tax liability is legally reduced or minimized. Tax avoidance is legal. As one famous judge put it, “one may so arrange his affairs that his taxes shall be as low as possible; he is not bound to choose that pattern which will best pay the Treasury; there is not even a patriotic duty to increase one’s taxes.” Helvering v. Gregory, 69 F.2d 809, 810-11 (2d Cir. 1934). Tax evasion, by contrast, is not legal and it involves the willful attempt to avoid paying one’s tax liability after it has been incurred.
A tax practitioner can be found guilty to the same extent as the taxpayer who actually owes the taxes. This is because the scope of tax evasion is defined broadly in Section 7201. Specifically, Section 7201 provides that tax evasion includes a person’s attempt “in any manner”—including helping another—“to evade or defeat any tax” or its payment (emphasis added). Thus, the statute allows the IRS to prosecute any person for the evasion of another’s tax liability. The defendant need not be the taxpayer in question.
To successfully prosecute a violation of the aiding or assisting provisions for aiding or assisting another to file a false form, the government must prove beyond a reasonable doubt that:
- The defendant aided, assisted, procured, counseled, or advised the preparation or presentation of a document;
- The document was false as to a material matter; and
- The defendant acted willfully.
Charges under this provision are most often brought against, accountants, bookkeepers and others (including an entity’s employees) who prepare or assist in the preparation of tax returns. However, the statute is not limited solely to the direct preparation of a return, but is actually much broader in that the statute reaches any intentional conduct that contributes to the presentation of a false document to the IRS.
To be charged under these provisions, one need only assist in the preparation of, and need not sign or file, the actual false document. The statute has thus been applied to individuals who communicate false information to their return preparers, thereby causing the tax preparer to file a false return. On the other hand, the statute specifically provides that the taxpayer who signs and files the return or document need not know of, or consent to, the false statement for the aiding and abetting statue to be brought against the preparer. For example, a tax preparer who inflates deductions understates income, or claims false credits on a client’s return may be charged with aiding and abetting even if the taxpayer for whom the return is prepared is unaware of the falsity of the return he signed and filed. Moreover, a tax preparer who utilizes information provided by a client that the preparer knows to be false, in the preparation of a return can be criminally charged with assisting in the preparation of a false return.
The courts that have ruled on what constitutes a material matter have held materiality to be a matter of law to be decided by the court and not a factual issue to be decided by the jury.
To establish willfulness in the delivery or disclosure of a false document, the government need only show that the accused knew that the law required a truthful document to be submitted and that he or she intentionally violated the duty to be truthful. The crime of aiding or assisting in the preparation or presentation of a false return or document requires that the defendant’s actions be willful in that the defendant knew or believed that his or her actions were likely to lead to the filing of a false return. The Ninth Circuit has held that the government must prove not only that the accused knew that the conduct would result in a false return, but must additionally establish that tax fraud was in fact the objective of the allegedly criminal conduct.
The statute of limitations for the crime of aiding or assisting the preparation or presentation of a false return or other document is six years. The statute of limitations for charges involving delivery or disclosure of a false document starts to run from the date the document is disclosed or submitted to the IRS.
Examples of evasion of assessment type convictions of practitioners:
In R.J. Ruble, DC N.Y., 2009-2 ustc, a well-known attorney was convicted of income tax evasion for designing and marketing a tax shelter. The government proved that attorney either knew or alternatively consciously disregarded the fact that the tax shelter he designed and marketed lacked economic substance. There was no business purpose to employ the shelter other than to obtain a tax benefit, and that there was no reasonable probability that the shelter would result in any profit apart from the anticipated tax benefits.
Exposure of Tax Practitioners to “aiding or assisting a false return” under IRC § 7206(2):
The crime known as “aiding or assisting a false return” is codified in IRC § 7206(2), which essentially makes it a felony for someone to “willfully aid . . . assist, procure, counsel, or advise” someone in the preparation of a document (e.g. a tax document) that is “materially” false.
Broken up into its elements, the government must prove five things, each one beyond a reasonable doubt: (1) the defendant aided, assisted, procured, counseled, or advised another in the preparation of a tax return (or another document in connection with a matter arising under the tax laws); (2) that tax return (or other document) falsely stated something; (3) the defendant knew that the statement was false; (4) the false statement was regarding a “material” matter; and (5) the defendant aided, assisted etc. another willfully (that is, with the intent to violate a known legal duty).
One thinks here of a CPA, enrolled agent, or other tax preparer who is trying to help his or her client pay less tax, but that person (the taxpayer himself or herself) was not involved in the tax preparation process. But the tax crime of aiding another to prepare a false document captures more than just CPAs and enrolled agents. It includes anyone who prepares false documents—for example, an appraiser who values a business interest for tax purposes, or a tax shelter promoter. An appraiser might have to discern the value of a partial interest in a business or other asset contributed to a charity. An inflated value would achieve a higher charitable deduction to the taxpayer, but if that value is not defensible, the appraiser could be charged with “aiding in the preparation of a false return” under § 7206(2).YToxOntpOjA7YToyOntzOjQ6ImF0dHIiO2E6MTU6e3M6NToidGl0bGUiO3M6MDoiIjtzOjg6ImJnX2NvbG9yIjtzOjA6IiI7czo4OiJiZ19pbWFnZSI7czowOiIiO3M6MTE6ImJnX3Bvc2l0aW9uIjtzOjIyOiJuby1yZXBlYXQ7Y2VudGVyIHRvcDs7IjtzOjEyOiJiZ192aWRlb19tcDQiO3M6MDoiIjtzOjEyOiJiZ192aWRlb19vZ3YiO3M6MDoiIjtzOjExOiJwYWRkaW5nX3RvcCI7czoxOiIwIjtzOjE0OiJwYWRkaW5nX2JvdHRvbSI7czoxOiIwIjtzOjc6ImRpdmlkZXIiO3M6MDoiIjtzOjEwOiJuYXZpZ2F0aW9uIjtzOjA6IiI7czo1OiJzdHlsZSI7czowOiIiO3M6NToiY2xhc3MiO3M6MDoiIjtzOjEwOiJzZWN0aW9uX2lkIjtzOjA6IiI7czoxMDoidmlzaWJpbGl0eSI7czowOiIiO3M6NDoiaGlkZSI7czowOiIiO31zOjU6IndyYXBzIjthOjk6e2k6MDthOjM6e3M6NDoic2l6ZSI7czozOiIxLzEiO3M6NToiaXRlbXMiO2E6Mzp7aTowO2E6Mzp7czo0OiJ0eXBlIjtzOjY6InZpc3VhbCI7czo0OiJzaXplIjtzOjM6IjEvMSI7czo2OiJmaWVsZHMiO2E6Mzp7czo1OiJ0aXRsZSI7czowOiIiO3M6NzoiY29udGVudCI7czoyMjI6IjxoMT48c3Ryb25nPlRheCBBdm9pZGFuY2U8L3N0cm9uZz48YnIgLz4gVGF4IEF2b2lkYW5jZSB2cyBUYXggRXZhc2lvbjwvaDE+PHA+PGlmcmFtZSBzcmM9Imh0dHBzOi8vd3d3LnlvdXR1YmUuY29tL2VtYmVkL2ZlcFkwLVpIWk44IiB3aWR0aD0iMTI4MCIgaGVpZ2h0PSI2NTAiIGZyYW1lYm9yZGVyPSIwIiBhbGxvd2Z1bGxzY3JlZW49ImFsbG93ZnVsbHNjcmVlbiI+PC9pZnJhbWU+PC9wPiI7czo3OiJjbGFzc2VzIjtzOjA6IiI7fX1pOjE7YTozOntzOjQ6InR5cGUiO3M6NjoiY29sdW1uIjtzOjQ6InNpemUiO3M6MzoiMS8yIjtzOjY6ImZpZWxkcyI7YTo4OntzOjU6InRpdGxlIjtzOjA6IiI7czo3OiJjb250ZW50IjtzOjE1MjM6IjxwPkZlZGVyYWwgdGF4IGxhdyBhdHRlbXB0cyB0byBkZWxpbmVhdGUgYSB2ZXJ5IGNsZWFyIGRpc3RpbmN0aW9uIGJldHdlZW4gdGF4IGF2b2lkYW5jZSwgd2hpY2ggY2FuIGF0IHdvcnN0IG9ubHkgZXhwb3NlIHRoZSBUYXggUHJhY3RpdGlvbmVyIGFuZCBoaXMgb3IgaGVyIGNsaWVudCB0byBwb3RlbnRpYWwgY2l2aWwgcGVuYWx0aWVzLCBhbmQgdGF4IGV2YXNpb24sIGZvciB3aGljaCBjcmltaW5hbCBwZW5hbHRpZXMgbWF5IGFwcGx5IHRvIGFsbCBwYXJ0aWVzIGNvbmNlcm5lZC4gVGhlIFN1cHJlbWUgQ291cnQgaW4gR3JlZ29yeSB2LiBIZWx2ZXJpbmcsIDI5MyBVLlMuIDQ2NSAoMTkzNSkgZGVmaW5lZCBwZXJtaXNzaWJsZSB0YXggYXZvaWRhbmNlIGFzIGFjdGlvbnMgdGhhdCDigJxyZWR1Y2UsIGF2b2lkLCBtaW5pbWl6ZSwgb3IgYWxsZXZpYXRlIHRheGVzIHRocm91Z2ggd2hvbGx5IGxlZ2l0aW1hdGUgbWVhbnPigJ0uIEluIHN0YXJrIGNvbnRyYXN0LCBldmFzaW9uIGludm9sdmVzIHRheCBhdm9pZGFuY2UgdGhhdCBpcyBvcmRpbmFyaWx5IGFjY29tcGxpc2hlZCB2aWEgYW4gZWxlbWVudCBvZiBkZWNlaXQgb3IgY29uY2VhbG1lbnQgYW5kIGF0IHRpbWVzIHBhdGVudGx5IGlsbGVnYWwgbWVhbnMuIFRheHBheWVycyBhcmUgdGh1cyBsZWdhbGx5IGVudGl0bGVkIHRvIGNob29zZSB0aGUgbW9zdCB0YXggZWZmaWNpZW50IGFsdGVybmF0aXZlIHRvIHN0cnVjdHVyZSBhIHRyYW5zYWN0aW9uLiBUaGUgY291cnQgaW4gSGVsdmVyaW5nIHN0YXRlZCDigJxbdF1oZSBsZWdhbCByaWdodCBvZiBhIHRheHBheWVyIHRvIGRlY3JlYXNlIHRoZSBhbW91bnQgb2Ygd2hhdCBvdGhlcndpc2Ugd291bGQgYmUgaGlzIHRheGVzLCBvciBhbHRvZ2V0aGVyIGF2b2lkIHRoZW0sIGJ5IG1lYW5zIHdoaWNoIHRoZSBsYXcgcGVybWl0cywgY2Fubm90IGJlIGRvdWJ0ZWTigJ3igKYNCg0KPHA+V2hpbGUgaXQgaXMgd2VsbCBzZXR0bGVkIHRoYXQgdGF4cGF5ZXJzIGFyZSBlbnRpdGxlZCB0byBhdm9pZCB0YXhlcywgdGhlIGhpc3RvcmljYWwgY29udHJvdmVyc3kgc3RlbXMgZnJvbSB0aGUgZmFjdCB0aGF0IGluIG9yZGVyIGZvciB0aGUgc3RydWN0dXJpbmcgb2YgYSB0YXggYXZvaWRhbmNlIHRyYW5zYWN0aW9uIChvciB0cmFuc2FjdGlvbnMpIHRvIHdpdGhzdGFuZCBnb3Zlcm5tZW50YWwgc2NydXRpbnkgYW5kIHRodXMgZmVuZCBvZmYgYmVpbmcgcmVjaGFyYWN0ZXJpemVkIG9yIHNpbXBseSBkaXNyZWdhcmRlZCwgdGhlIHRyYW5zYWN0aW9uIHN0cnVjdHVyZSBtdXN0IGNvbXBseSB3aXRoIHRoZSB0b3RhbGl0eSBvZiB0YXggbGF3IGFzIGN1cnJlbnRseSBlbmFjdGVkIHdoaWNoIGluY2x1ZGVzIHN0YXR1dG9yeSBhbmQgY29tbW9uLWxhdyByZXF1aXJlbWVudHMgc3VjaCBhcyB0aGUgRWNvbm9taWMgU3Vic3RhbmNlLCBTaGFtIFRyYW5zYWN0aW9uLCBTdGVwIFRyYW5zYWN0aW9uLCBhbmQgU3Vic3RhbmNlIE92ZXIgRm9ybSBEb2N0cmluZXMsIGFuZCB0aGUgQnVzaW5lc3MgUHVycG9zZSBUZXN0IjtzOjU6ImFsaWduIjtzOjA6IiI7czo5OiJjb2x1bW5fYmciO3M6MDoiIjtzOjEzOiJtYXJnaW5fYm90dG9tIjtzOjA6IiI7czo3OiJwYWRkaW5nIjtzOjA6IiI7czo3OiJhbmltYXRlIjtzOjA6IiI7czo3OiJjbGFzc2VzIjtzOjA6IiI7fX1pOjI7YTozOntzOjQ6InR5cGUiO3M6NjoidmlzdWFsIjtzOjQ6InNpemUiO3M6MzoiMS8yIjtzOjY6ImZpZWxkcyI7YTozOntzOjU6InRpdGxlIjtzOjA6IiI7czo3OiJjb250ZW50IjtzOjEyMjoiPGlmcmFtZSB3aWR0aD0iNTYwIiBoZWlnaHQ9IjMxNSIgc3JjPSJodHRwczovL3d3dy55b3V0dWJlLmNvbS9lbWJlZC9BMVhDQnppcWM5TSIgZnJhbWVib3JkZXI9IjAiIGFsbG93ZnVsbHNjcmVlbj48L2lmcmFtZT4iO3M6NzoiY2xhc3NlcyI7czowOiIiO319fXM6NDoiYXR0ciI7YTo2OntzOjg6ImJnX2NvbG9yIjtzOjA6IiI7czo4OiJiZ19pbWFnZSI7czowOiIiO3M6MTE6ImJnX3Bvc2l0aW9uIjtzOjIyOiJuby1yZXBlYXQ7Y2VudGVyIHRvcDs7IjtzOjEzOiJjb2x1bW5fbWFyZ2luIjtzOjA6IiI7czo3OiJwYWRkaW5nIjtzOjA6IiI7czo1OiJjbGFzcyI7czowOiIiO319aToxO2E6Mzp7czo0OiJzaXplIjtzOjM6IjEvMSI7czo1OiJpdGVtcyI7YTozOntpOjA7YTozOntzOjQ6InR5cGUiO3M6NjoiY29sdW1uIjtzOjQ6InNpemUiO3M6MzoiMy81IjtzOjY6ImZpZWxkcyI7YTo4OntzOjU6InRpdGxlIjtzOjA6IiI7czo3OiJjb250ZW50IjtzOjYwOiI8aDI+U3RhdHV0b3J5IGFuZCBKdWRpY2lhbCBSZXN0cmFpbnRzIG9uIFRheCBBdm9pZGFuY2U6PC9oMj4iO3M6NToiYWxpZ24iO3M6NDoibGVmdCI7czo5OiJjb2x1bW5fYmciO3M6MDoiIjtzOjEzOiJtYXJnaW5fYm90dG9tIjtzOjA6IiI7czo3OiJwYWRkaW5nIjtzOjA6IiI7czo3OiJhbmltYXRlIjtzOjA6IiI7czo3OiJjbGFzc2VzIjtzOjA6IiI7fX1pOjE7YTozOntzOjQ6InR5cGUiO3M6NjoidmlzdWFsIjtzOjQ6InNpemUiO3M6MzoiMS8yIjtzOjY6ImZpZWxkcyI7YTozOntzOjU6InRpdGxlIjtzOjA6IiI7czo3OiJjb250ZW50IjtzOjE0NzoiPHA+PGlmcmFtZSBzcmM9Imh0dHBzOi8vd3d3LnlvdXR1YmUuY29tL2VtYmVkL09WZ200X05pVDBnIiB3aWR0aD0iNTYwIiBoZWlnaHQ9IjMxNSIgZnJhbWVib3JkZXI9IjAiIGFsbG93ZnVsbHNjcmVlbj0iYWxsb3dmdWxsc2NyZWVuIj48L2lmcmFtZT48L3A+IjtzOjc6ImNsYXNzZXMiO3M6MDoiIjt9fWk6MjthOjM6e3M6NDoidHlwZSI7czo2OiJjb2x1bW4iO3M6NDoic2l6ZSI7czozOiIxLzIiO3M6NjoiZmllbGRzIjthOjg6e3M6NToidGl0bGUiO3M6MDoiIjtzOjc6ImNvbnRlbnQiO3M6MTI0MzoiPHA+VGhlIGp1ZGljaWFsIGFuZCBzdGF0dXRvcnkgY29uc3RyYWludHMgb24gdGF4IHJlZHVjdGlvbiBzdHJhdGVnaWVzIG9mIGdlbmVyYWwgYXBwbGljYXRpb24gaW5jbHVkaW5nIHRoZSBFY29ub21pYyBTdWJzdGFuY2UsIFNoYW0gVHJhbnNhY3Rpb24sIFN0ZXAgVHJhbnNhY3Rpb24sIGFuZCBTdWJzdGFuY2Ugb3ZlciBGb3JtIERvY3RyaW5lcywgYW5kIHRoZSBCdXNpbmVzcyBQdXJwb3NlIFRlc3QgY2FuIGFsbCBiZSB0cmFjZWQgYmFjayB0byB0aGUgU3VwcmVtZSBDb3VydOKAmXMgaG9sZGluZyBpbiBHcmVnb3J5IHYuIEhlbHZlcmluZy4gVGhpcyBjYXNlIGNvbmNlcm5lZCBhIHRheHBheWVyIHdobyBmb3JtZWQgYSBjb3Jwb3JhdGlvbiBtYWlubHkgZm9yIHRoZSBwdXJwb3NlIG9mIGV4cGxvaXRpbmcgdGhlIHRheCBmcmVlIHJlb3JnYW5pemF0aW9uIHByb3Zpc2lvbnMgaW4gb3JkZXIgdG8gYXZvaWQgZ2FpbiByZWNvZ25pdGlvbiBvbiBhIHBsYW5uZWQgc3Vic2VxdWVudCBzYWxlIG9mIHN0b2NrIHRvIGJlIHRyYW5zZmVycmVkIHRvIHRoZSBuZXdseSBmb3JtZWQgQ29ycG9yYXRpb24uIFRoZSBDb3VydCBpbiBHcmVnb3J5IHYuIEhlbHZlcmluZyBmb3VuZCB0aGF0IHRoZSB0YXhwYXllciB3YXMgaW4gY29tcGxpYW5jZSB3aXRoIGV2ZXJ5IGVsZW1lbnQgcmVxdWlyZWQgYnkgc3RhdHV0ZSBhbmQgdGh1cyBhIHN0YXR1dG9yeSByZW9yZ2FuaXphdGlvbiB3YXMgYWNoaWV2ZWQuIFRoZSBjb3VydCBoZWxkIHRoYXQgdGhlIG1vdGl2ZSBvZiB0aGUgdGF4cGF5ZXIgdG8gYXZvaWQgdGF4IGluIGFuZCBvZiBpdHNlbGYgZGlkIG5vdCByZW5kZXIgaW1wZXJtaXNzaWJsZSB3aGF0IHRoZSByZW9yZ2FuaXphdGlvbiBzdGF0dXRlIGNsZWFybHkgYWxsb3dlZCwgYnV0IHdlbnQgb24gdG8gZm9jdXMgb24gd2hldGhlciB3aGF0IHdhcyBkb25lLCBhcGFydCBmcm9tIHRoZSB0YXggbW90aXZlLCB3YXMgdGhlIHRoaW5nIHdoaWNoIHRoZSBzdGF0dXRlIGludGVuZGVkLiBUaGUgY291cnQgYW5zd2VyZWQgdGhhdCBxdWVzdGlvbiBpbiB0aGUgbmVnYXRpdmUgaG9sZGluZyB0aGF0IHJlb3JnYW5pemF0aW9uIHdhcyBub3QgYWNjb21wbGlzaGVkLCBidXQgaXQgd2FzIG1lcmVseSDigJxhIHRyYW5zZmVyIG9mIGFzc2V0cyBieSBvbmUgY29ycG9yYXRpb24gdG8gYW5vdGhlciBpbiBwdXJzdWFuY2Ugb2YgYSBwbGFuIGhhdmluZyBubyByZWxhdGlvbiB0byB0aGUgYnVzaW5lc3Mgb2YgZWl0aGVy4oCdLiI7czo1OiJhbGlnbiI7czowOiIiO3M6OToiY29sdW1uX2JnIjtzOjA6IiI7czoxMzoibWFyZ2luX2JvdHRvbSI7czowOiIiO3M6NzoicGFkZGluZyI7czowOiIiO3M6NzoiYW5pbWF0ZSI7czowOiIiO3M6NzoiY2xhc3NlcyI7czowOiIiO319fXM6NDoiYXR0ciI7YTo2OntzOjg6ImJnX2NvbG9yIjtzOjA6IiI7czo4OiJiZ19pbWFnZSI7czowOiIiO3M6MTE6ImJnX3Bvc2l0aW9uIjtzOjIyOiJuby1yZXBlYXQ7Y2VudGVyIHRvcDs7IjtzOjEzOiJjb2x1bW5fbWFyZ2luIjtzOjA6IiI7czo3OiJwYWRkaW5nIjtzOjA6IiI7czo1OiJjbGFzcyI7czowOiIiO319aToyO2E6Mzp7czo0OiJzaXplIjtzOjM6IjEvMSI7czo1OiJpdGVtcyI7YTo0OntpOjA7YTozOntzOjQ6InR5cGUiO3M6NjoiY29sdW1uIjtzOjQ6InNpemUiO3M6MzoiMy81IjtzOjY6ImZpZWxkcyI7YTo4OntzOjU6InRpdGxlIjtzOjA6IiI7czo3OiJjb250ZW50IjtzOjM1OiI8aDI+U3RlcCB
UcmFuc2FjdGlvbiBEb2N0cmluZTo8L2gyPiI7czo1OiJhbGlnbiI7czo0OiJsZWZ0IjtzOjk6ImNvbHVtbl9iZyI7czowOiIiO3M6MTM6Im1hcmdpbl9ib3R0b20iO3M6MDoiIjtzOjc6InBhZGRpbmciO3M6MDoiIjtzOjc6ImFuaW1hdGUiO3M6MDoiIjtzOjc6ImNsYXNzZXMiO3M6MDoiIjt9fWk6MTthOjM6e3M6NDoidHlwZSI7czo2OiJjb2x1bW4iO3M6NDoic2l6ZSI7czozOiIxLzIiO3M6NjoiZmllbGRzIjthOjg6e3M6NToidGl0bGUiO3M6MDoiIjtzOjc6ImNvbnRlbnQiO3M6MTM0NToiPHA+VGhlIHN0ZXAgdHJhbnNhY3Rpb24gZG9jdHJpbmUgZGljdGF0ZXMgdGhhdCB0aGUgdGF4IGNvbnNlcXVlbmNlcyBvZiB0YXggcGxhbm5pbmcgdHJhbnNhY3Rpb25zIHR1cm4gb24gdGhlaXIgc3Vic3RhbmNlIHJhdGhlciB0aGFuIHNvbGVseSBvbiB0aGVpciBmb3JtLiBUaGlzIGlzIGFjY29tcGxpc2hlZCBieSBjb2xsYXBzaW5nIGEgc2VyaWVzIG9mIHNlcGFyYXRlIHN0ZXBzIGludG8gYSBzaW5nbGUgdHJhbnNhY3Rpb24gaW4gb3JkZXIgZm9yIHRoZSBnb3Zlcm5tZW50IHRvIG9idGFpbiBhIGNsZWFyIHZpZXcgb2Ygd2hhdCB0aGUgc2VwYXJhdGUgc3RlcHMgYXJlIGFjY29tcGxpc2hpbmcgaW4gc3Vic3RhbmNlLiAgIFRoZSBpbXBvcnQgb2YgdGhlIHN0ZXAgdHJhbnNhY3Rpb24gZG9jdHJpbmUgaXMgdGhhdCBhIHN0YXR1dG9yaWx5IHByb2hpYml0ZWQgdHJhbnNhY3Rpb24gbXVzdCBub3QgYmUgYWNjb21wbGlzaGVkIGJ5IGJyZWFraW5nIGl0IGRvd24gaW50byBzZWVtaW5nbHkgYWxsb3dhYmxlIGluZGVwZW5kZW50IHN0ZXBzIGFuZCB0aGF0IGluIGRldGVybWluaW5nIHRoZSBsZWdhbGl0eSBvZiB0aGUgc2VyaWVzIG9mIHRyYW5zYWN0aW9ucyB0aGUgZ292ZXJubWVudCB3aWxsIHdlaWdoIHRoZSBzZXJpZXMgb2Ygc3RlcHMgdG9nZXRoZXIgaW4gZGV0ZXJtaW5pbmcgdGhlIGFzc29jaWF0ZWQgdGF4IGNvbnNlcXVlbmNlLiBUaGUgZG9jdHJpbmUgZnVydGhlciBkaWN0YXRlcyB0aGF0IHRoZSB0aW1lIGludGVydmFsIGJldHdlZW4gcmVsYXRlZCB0cmFuc2FjdGlvbmFsIHN0ZXBzIGlzIG5vdCBkZXRlcm1pbmF0aXZlLCBidXQgaXMgbWVyZWx5IGEgZmFjdG9yLCBvZiB3aGV0aGVyIHRoZSB0cmFuc2FjdGlvbnMgd2lsbCBiZSBjb2xsYXBzZWQgZm9yIGFuYWx5c2lzIHVuZGVyIHRoZSBzdGVwIHRyYW5zYWN0aW9uIGRvY3RyaW5lLg0KDQo8cD5VbmZvcnR1bmF0ZWx5IGZvciBwcmFjdGl0aW9uZXJzIGFuZCB0YXhwYXllcnMsIE5vIHNpbmdsZSBqdWRpY2lhbCBzdGFuZGFyZCBoYXMgYmVlbiB1bml2ZXJzYWxseSBhY2NlcHRlZCBieSB0aGUgZmVkZXJhbCBjb3VydHMgaW4gYXBwbHlpbmcgdGhlIHN0ZXAgdHJhbnNhY3Rpb24gZG9jdHJpbmUuICAgSG93ZXZlciwgdGhlIHRocmVlIG1vc3QgY29tbW9ubHkgaW52b2tlZCB0eXBlcyBvZiDigJxzdGVwIHRlc3RpbmfigJ0gdXRpbGl6ZWQgYnkgdGhlIGZlZGVyYWwgY291cnRzIGFyZToNCjx1bD4NCiAgPGxpPnRoZSBiaW5kaW5nIGNvbW1pdG1lbnQgdGVzdDsgIDwvbGk+DQogIDxsaT50aGUgaW50ZXJkZXBlbmRlbmNlIHRlc3Q7IGFuZDwvbGk+DQogIDxsaT50aGUgZW5kIHJlc3VsdCB0ZXN0OzwvbGk+DQo8L3VsPiI7czo1OiJhbGlnbiI7czowOiIiO3M6OToiY29sdW1uX2JnIjtzOjA6IiI7czoxMzoibWFyZ2luX2JvdHRvbSI7czowOiIiO3M6NzoicGFkZGluZyI7czowOiIiO3M6NzoiYW5pbWF0ZSI7czowOiIiO3M6NzoiY2xhc3NlcyI7czowOiIiO319aToyO2E6Mzp7czo0OiJ0eXBlIjtzOjY6InZpc3VhbCI7czo0OiJzaXplIjtzOjM6IjEvMiI7czo2OiJmaWVsZHMiO2E6Mzp7czo1OiJ0aXRsZSI7czowOiIiO3M6NzoiY29udGVudCI7czoxNTM6IjxwPjxpZnJhbWUgc3JjPSJodHRwczovL3d3dy55b3V0dWJlLmNvbS9lbWJlZC9ORHdjNEdVZkJYOD9yZWw9MCIgd2lkdGg9IjU2MCIgaGVpZ2h0PSIzMTUiIGZyYW1lYm9yZGVyPSIwIiBhbGxvd2Z1bGxzY3JlZW49ImFsbG93ZnVsbHNjcmVlbiI+PC9pZnJhbWU+PC9wPiI7czo3OiJjbGFzc2VzIjtzOjA6IiI7fX1pOjM7YTozOntzOjQ6InR5cGUiO3M6NjoiY29sdW1uIjtzOjQ6InNpemUiO3M6MzoiMS8xIjtzOjY6ImZpZWxkcyI7YTo4OntzOjU6InRpdGxlIjtzOjA6IiI7czo3OiJjb250ZW50IjtzOjI3NjU6IjxwPlRoZSBTdXByZW1lIENvdXJ0IGZpcnN0IHVzZWQgdGhlIGJpbmRpbmcgY29tbWl0bWVudCB0ZXN0IGluIENvbW1pc3Npb25lciBWIEdvcmRvbiB3aGVyZSB0aGUgQ291cnQgcmVmdXNlZCB0byB0cmVhdCBzdG9jayBkaXN0cmlidXRpb25zIHRha2luZyBwbGFjZSBvdmVyIHNldmVyYWwgdGF4IHllYXJzIGFzIGEgc2luZ2xlIHRyYW5zYWN0aW9uIGZvciB0YXggcHVycG9zZXMuIFRoZSBDb3VydCBoZWxkIHRoYXQgaWYgYSB0cmFuc2FjdGlvbiBpcyB0byBiZSBjaGFyYWN0ZXJpemVkIGFzIGEgZmlyc3Qgc3RlcCB0aGVyZSBtdXN0IGJlIGEgYmluZGluZyBjb21taXRtZW50IHRvIHRha2UgdGhlIGxhdGVyIHN0ZXBzLiAgVGhlIGJpbmRpbmcgY29tbWl0bWVudCB0ZXN0IGFzIGN1cnJlbnRseSBhcHBsaWVkIHJlcXVpcmVzIGNvbGxhcHNpbmcgc2V2ZXJhbCB0cmFuc2FjdGlvbiBzdGVwcyBpbnRvIGEgc2luZ2xlIHRyYW5zYWN0aW9uIHNvbGVseSB3aGVyZSBhIGJpbmRpbmcgY29tbWl0bWVudCBleGlzdGVkIGFzIHRvIHRoZSBzdWJzZXF1ZW50IHN0ZXBzIGF0IHRoZSB0aW1lIHRoZSBmaXJzdCBzdGVwIHdhcyB0YWtlbi4gU3Vic2VxdWVudCBqdWRpY2lhbCB1c2Ugb2YgdGhlIGJpbmRpbmcgY29tbWl0bWVudCB0ZXN0IGhhcyBiZWVuIHNwYXJzZSwgYW5kIHBvc3QgR29yZG9uIGNvdXJ0IGRlY2lzaW9ucyBoYXZlIHRlbmRlZCB0byBjb25maW5lIHRoZSB0ZXN0IHRvIHRoZSBmYWN0cyBvZiB0aGF0IGNhc2UuIE9uIGJhbGFuY2UsIHdoZW4gYmluZGluZyBjb21taXRtZW50cyBhcmUgcHJlc2VudCwgdGhlIHN1YnNlcXVlbnQgc3RlcHMgd2lsbCBiZSBjb2xsYXBzZWQgaW50byBhIHNpbmdsZSB0cmFuc2FjdGlvbiBmb3IgYW5hbHlzaXMgcHVycG9zZXMuIFdoZXJlIHRoZXkgYXJlIG5vdCBwcmVzZW50IGNvdXJ0cyBoYXZlIHRlbmRlZCB0byBhcHBseSB0aGUgb3RoZXIgdHdvIHRlc3RzLg0KDQo8cD4xLiBJbnRlcmRlcGVuZGVuY2UgdGVzdCBmb2N1c2VzIG9uIHRoZSByZWxhdGlvbnNoaXAgYmV0d2VlbiB0aGUgaW5kaXZpZHVhbCBzdGVwcyBvZiBhIHNlcmllcyBvZiB0cmFuc2FjdGlvbnMgYW5kIGFuYWx5emVzIHdoZXRoZXIgdGhlIHN0ZXBzIGhhdmUgaW5kZXBlbmRlbnQgc2lnbmlmaWNhbmNlIG9yIHdoZXRoZXIgdGhleSBoYXZlIG1lYW5pbmcgb25seSBhcyBwYXJ0IG9mIHRoZSBsYXJnZXIgcGxhbm5lZCB0cmFuc2FjdGlvbi4gQSBqdWRnbWVudCBpcyBtYWRlIGFzIHRvIHdoZXRoZXIgdGhlIHN0ZXBzIGFyZSBzbyBpbnRlcmRlcGVuZGVudCB0aGF0IHRoZSBsZWdhbCByYW1pZmljYXRpb25zIG9mIGVhY2ggaW50ZXJtZWRpYXRlIHRyYW5zYWN0aW9uIHdvdWxkIGJlIG5pbCB3aXRob3V0IHRoZSBjb21wbGV0aW9uIG9mIHRoZSBlbnRpcmUgc2VyaWVzIG9mIHRyYW5zYWN0aW9ucy4gV2hlbiBpdCBpcyBhcHBhcmVudCB0aGF0IGFueSBzaW5nbGUgc3RlcCB3b3VsZCBub3QgaGF2ZSBiZWVuIHVuZGVydGFrZW4gZXhjZXB0IGluIGNvbnRlbXBsYXRpb24gb2YgdGhlIHRvdGFsaXR5IG9mIHRoZSBhc3NvY2lhdGVkIHRyYW5zYWN0aW9ucywgdGhlIHN0ZXAgdHJhbnNhY3Rpb24gZG9jdHJpbmUgd2lsbCBiZSBhcHBsaWVkLiAgSWYgdGhlIGZvcmVnb2luZyBhbmFseXNpcyBkb2VzIG5vdCBlc3RhYmxpc2ggdGhhdCB0aGUgZmlyc3Qgc3RlcCB3b3VsZCBub3QgaGF2ZSBiZWVuIHRha2VuIHdpdGhvdXQgY29udGVtcGxhdGlvbiBvZiB0aGUgbGF0ZXIgb25lcywgdGhlIHN0ZXBzIGFyZSBub3QgaW50ZWdyYXRlZC4NCg0KPHA+Mi4gVW5kZXIgdGhlIGZyZXF1ZW50bHkgYXBwbGllZCBlbmQgcmVzdWx0IHRlc3QsIHJlbGF0ZWQgYnV0IHNlcGFyYXRlIHRyYW5zYWN0aW9ucyBhcmUgY29sbGFwc2VkIGludG8gYSBzaW5nbGUgdHJhbnNhY3Rpb24gd2hlbiB0aGUgZ292ZXJubWVudCBpcyBvZiB0aGUgb3BpbmlvbiB0aGF0IHRoZXkgYXJlIHJlYWxseSByZWxhdGVkIGNvbXBvbmVudCBwYXJ0cyBvZiBhIHNpbmdsZSBvdmVyYXJjaGluZyB0cmFuc2FjdGlvbi4NCg0KPHA+VGhlIGVuZCByZXN1bHQgdGVzdCBpcyB1c2VkIHdoZW4gaXQgaXMgY2xlYXIgdGhhdCBhIHBsYW5uZWQgdGF4IHJlc3VsdCBpcyBhY2hpZXZlZCB2aWEgYSBzZXJpZXMgb2YgcmVsYXRlZCB0cmFuc2FjdGlvbnMgdGhhdCBjb3VsZCBub3QgYmUgYWNoaWV2ZWQgdmlhIGEgc2luZ2xlIHRyYW5zYWN0aW9uLiBIb3dldmVyLCB3aGVyZSBhIGJ1c2luZXNzIGVuZ2FnZXMgaW4gYSBzZXJpZXMgb2YgcmVsYXRlZCB0cmFuc2FjdGlvbnMgdGhhdCBhcHBlYXIgdG8gYmUgZGVzaWduZWQgYW5kIGV4ZWN1dGVkIGFzIHBhcnQgb2YgYSB1bml0YXJ5IHBsYW4gdG8gYWNoaWV2ZSBhbiBpbnRlbmRlZCByZXN1bHQsIHRoZSBwbGFuIG1heSBiZSB2aWV3ZWQgaW4gdGhlIGFnZ3JlZ2F0ZSByZWdhcmRsZXNzIG9mIHdoZXRoZXIgdGhlIGVmZmVjdCBvZiBkb2luZyBzbyBpbmNyZWFzZXMgb3IgZGVjcmVhc2VzIHRoZSBjb21iaW5lZCB0YXggZWZmZWN0LlRoZSBlbmQgcmVzdWx0IHRlc3QgZm9jdXNlcyBvbiBpbnRlbnQgYW5kIHdoZXJlIHRoZSBzZXBhcmF0ZSB0cmFuc2FjdGlvbnMgYXJlIHZpZXdlZCBhcyBhIHNpbmdsZSBvdmVyYXJjaGluZyBzY2hlbWUsIHRoZXkgd2lsbCBiZSBjb2xsYXBzZWQgaW50byBhIHNpbmdsZSB0cmFuc2FjdGlvbi4gT24gdGhlIG90aGVyIGhhbmQsIHdoZXJlIGlzIHJlcXVpcmVkIGludGVudCBpcyBkZWVtZWQgYWJzZW50LCB0aGUgc3RlcHMgYW5hbHl6ZWQgYXJlIHRyZWF0ZWQgYXMgc2VwYXJhdGUuIjtzOjU6ImFsaWduIjtzOjA6IiI7czo5OiJjb2x1bW5fYmciO3M6MDoiIjtzOjEzOiJtYXJnaW5fYm90dG9tIjtzOjA6IiI7czo3OiJwYWRkaW5nIjtzOjA6IiI7czo3OiJhbmltYXRlIjtzOjA6IiI7czo3OiJjbGFzc2VzIjtzOjA6IiI7fX19czo0OiJhdHRyIjthOjY6e3M6ODoiYmdfY29sb3IiO3M6MDoiIjtzOjg6ImJnX2ltYWdlIjtzOjA6IiI7czoxMToiYmdfcG9zaXRpb24iO3M6MjI6Im5vLXJlcGVhdDtjZW50ZXIgdG9wOzsiO3M6MTM6ImNvbHVtbl9tYXJnaW4iO3M6MDoiIjtzOjc6InBhZGRpbmciO3M6MDoiIjtzOjU6ImNsYXNzIjtzOjA6IiI7fX1pOjM7YTozOntzOjQ6InNpemUiO3M6MzoiMS8xIjtzOjU6Iml0ZW1zIjthOjE6e2k6MDthOjM6e3M6NDoidHlwZSI7czo2OiJ2aXN1YWwiO3M6NDoic2l6ZSI7czozOiIxLzEiO3M6NjoiZmllbGRzIjthOjM6e3M6NToidGl0bGUiO3M6MDoiIjtzOjc6ImNvbnRlbnQiO3M6MTQ0OiI8cD5bZmFuY3lfbGluayB0aXRsZT0iTmVlZCBoZWxwIG9yIGhhdmUgYSB0YXggYXZvaWRhbmNlIHF1ZXN0aW9uPyBDb250YWN0IHVzISIgbGluaz0iL2NvbnRhY3QtdXMvIiB0YXJnZXQ9IiIgc3R5bGU9IjIiIGNsYXNzPSIiIGRvd25sb2FkPSIiXTwvcD4iO3M6NzoiY2xhc3NlcyI7czowOiIiO319fXM6NDoiYXR0ciI7YTo2OntzOjg6ImJnX2NvbG9yIjtzOjA6IiI7czo4OiJiZ19pbWFnZSI7czowOiIiO3M6MTE6ImJnX3Bvc2l0aW9uIjtzOjIyOiJuby1yZXBlYXQ7Y2VudGVyIHRvcDs7IjtzOjEzOiJjb2x1bW5fbWFyZ2luIjtzOjA6IiI7czo3OiJwYWRkaW5nIjtzOjA6IiI7czo1OiJjbGFzcyI7czowOiIiO319aTo0O2E6Mzp7czo0OiJzaXplIjtzOjM6IjEvMSI7czo1OiJpdGVtcyI7YTo1OntpOjA7YTozOntzOjQ6InR5cGUiO3M6NjoiY29sdW1uIjtzOjQ6InNpemUiO3M6MzoiMy81IjtzOjY6ImZpZWxkcyI7YTo4OntzOjU6InRpdGxlIjtzOjA6IiI7czo3OiJjb250ZW50IjtzOjM1OiI8aDI+U2hhbSBUcmFuc2FjdGlvbiBEb2N0cmluZTo8L2gyPiI7czo1OiJhbGlnbiI7czo0OiJsZWZ0IjtzOjk6ImNvbHVtbl9iZyI7czowOiIiO3M6MTM6Im1hcmdpbl9ib3R0b20iO3M6MDoiIjtzOjc6InBhZGRpbmciO3M6MDoiIjtzOjc6ImFuaW1hdGUiO3M6MDoiIjtzOjc6ImNsYXNzZXMiO3M6MDoiIjt9fWk6MTthOjM6e3M6NDoidHlwZSI7czo2OiJjb2x1bW4iO3M6NDoic2l6ZSI7czozOiIxLzEiO3
M6NjoiZmllbGRzIjthOjg6e3M6NToidGl0bGUiO3M6MDoiIjtzOjc6ImNvbnRlbnQiO3M6MzExMToiPHA+VGhlIOKAnHNoYW0gdHJhbnNhY3Rpb27igJ0gZG9jdHJpbmUgaXMg4oCcanVkZ2UgbWFkZSBsYXfigJ0gd2hpY2ggd2lsbCBkZW55IGFkdmFudGFnZW91cyB0YXggdHJlYXRtZW50IHdoZXJlIHRyYW5zYWN0aW9ucyBhcmUgY2FycmllZCBvdXQgcHJpbWFyaWx5IGZvciB0YXggYXZvaWRhbmNlIHB1cnBvc2VzIGFuZCB0aGV5IGxhY2sgYSBib25hZmlkZSBidXNpbmVzcyBwdXJwb3NlLiBUaGlzIGRvY3RyaW5lIHRlbmRzIHRvIGJlIGFwcGxpZWQgd2hlcmUgYSB0YXhwYXllciBhdHRlbXB0cyB0byBkaXNndWlzZSBhIHRyYW5zYWN0aW9uIGFuZCBtYWtlIGl0IGFwcGVhciB0byBiZSBzb21ldGhpbmcgdGhhdCwgaW4gcmVhbGl0eSwgaXQgaXMgbm90LCBpbiB3aGljaCBjYXNlIHRoZSBjb3VydHMgd2lsbCBpZ25vcmUgdGhlIGZvcm0gb2YgdGhlIHRyYW5zYWN0aW9uIGFuZCBkZWNsYXJlIGl0IHRvIGJlIGEgc2hhbSBhbmQgdGhlbiBhc2NlcnRhaW4gdGhlIHRheCBpbXBhY3QgYmFzZWQgdXBvbiB0aGUgY291cnRzIHZpZXcgb2YgdGhlIHN1YnN0YW50aXZlIG5hdHVyZSBvZiB0aGUgdHJhbnNhY3Rpb24uICBBIHRyYW5zYWN0aW9uIHRoYXQgaXMgbGFiZWxlZCBhcyBhIHNoYW0gd2hlcmUgaXQgaXMgZGVlbWVkIHRvIG5vdCBiZSBtb3RpdmF0ZWQgYnkgYSBsZWdpdGltYXRlIGJ1c2luZXNzIHB1cnBvc2Ugb3RoZXIgdGhhbiBpdHMgYW50aWNpcGF0ZWQgdGF4IGJlbmVmaXRzLCB3aWxsIGJlIGRlZW1lZCB0byBsYWNrIGVjb25vbWljIHN1YnN0YW5jZSBiZWNhdXNlIHRoZXJlIGlzIG5vIHJlYXNvbmFibGUgZXhwZWN0YXRpb24gb2YgcHJvZml0IGFuZCB0aHVzIHdpbGwgYmUgZGlzcmVnYXJkZWQgZm9yIHRheCBwdXJwb3Nlcy4NCg0KPHA+Q2FzZSBMYXcgQmFzZWQgRmFjdG9ycyBJbmRpY2F0aXZlIG9mIFNoYW0gVHJhbnNhY3Rpb25zDQpUcmFuc2FjdGlvbnMgYXJlIGF0IHJpc2sgb2YgYmVpbmcgcmVjaGFyYWN0ZXJpemVkIGJ5IHRoZSB0YXhpbmcgYXV0aG9yaXRpZXMgYXMgYSBzaGFtIGlmIG5vIG5vbiB0YXggYnVzaW5lc3Mgb3IgaW52ZXN0bWVudCBtb3RpdmUgY2FuIGJlIGlkZW50aWZpZWQgYW5kIHRoZSBidXllciBpcyBzZWVuIHRvIGJlIHVuZGVyIHRoZSBjb21tb24gY29udHJvbCBvZiB0aGUgc2VsbGVyLiBGb3IgZXhhbXBsZSwgdGhlIHNhbGUgb2YgYW4gYXNzZXQgdG8gYSBMTEMgYXQgYSBwcmljZSB3ZWxsIGluIGV4Y2VzcyBvZiB0aGUgYXNzZXTigJlzIGZhaXIgbWFya2V0IHZhbHVlIHdpbGwgbm90IGJlIHJlc3BlY3RlZCB3aGVyZSB0aGUgc2VsbGVyIGFuZCB0aGUgTExDIGFyZSB1bmRlciBjb21tb24gY29udHJvbC4gTGlrZXdpc2Ugd2hlbiBhIHNvbGUgc2hhcmVob2xkZXIgb3IgZ3JvdXAgb2YgY29udHJvbGxpbmcgc2hhcmVob2xkZXJzIHNlbGxzIGFuIGFzc2V0IHRvIHRoZWlyIGNvcnBvcmF0aW9uIGF0IGFuIGluZmxhdGVkIHByaWNlIGFuZCB0aGVuIHJldGFpbiBjb250cm9sIG92ZXIgdGhlIGFzc2V0LCB0aGUgdHJhbnNhY3Rpb24gaXMgYXQgcmlzayBvZiBiZWluZyBkaXNyZWdhcmRlZCBhcyBhIHNoYW0gYmVjYXVzZSB0aGUgc2VydmljZSBjYW4gYXJndWUgdGhlIHRyYW5zYWN0aW9uIGlzIGxhY2tpbmcgaW4gZ29vZCBmYWl0aCBvciBmaW5hbGl0eS4NCg0KVGhlIGZvbGxvd2luZyBmYWN0b3JzIGZyb20gY2FzZSBsYXcgYXJlIHdoYXQgdGhlIGdvdmVybm1lbnQgd2lsbCBjb25zaWRlciBpbiBkZWVtaW5nIHdoZXRoZXIgYSB2YWxpZCBzYWxlIHRyYW5zYWN0aW9uIG9yIGEgc2hhbSBoYXMgdGFrZW4gcGxhY2U6DQoNCjx1bD4NCiAgPGxpPklzIHRoZSBwcmljZSBhc3NvY2lhdGVkIHdpdGggdGhlIHRyYW5zYWN0aW9uIHJlYXNvbmFibGUgb3Igb3ZlcnN0YXRlZD88L2xpPg0KICA8bGk+SGFzIGNvbW1vbiBjb250cm9sIG92ZXIgdGhlIHByb3BlcnR5IGJlZW4gcmV0YWluZWQ/PC9saT4NCiAgPGxpPldhcyB0aGVyZSBhIGdlbnVpbmUgaW50ZW50IHRvIHBheSB0aGUgZnVsbCBwdXJjaGFzZSBwcmljZSBieSB0aGUgYnV5ZXI/PC9saT4NCiAgPGxpPklzIHRoZSBzZWxsZXIgcmVjZWl2aW5nIGEgcmVhbCBlY29ub21pYyBiZW5lZml0IGZyb20gdGhlIHNhbGUgb2YgdGhlIHByb3BlcnR5IG90aGVyIHRoYW4gcHVyZWx5IHRheCBiZW5lZml0cz88L2xpPg0KPC91bD4NCg0KPHA+Q2FzZSBsYXcgaGFzIHNob3duIHRoYXQgdGhlIElSUyBnZW5lcmFsbHkgaXMgdGhlIHNvbGUgcGFydHkgdGhhdCBiZW5lZml0cyBmcm9tIHRoaXMgc3Vic3RhbmNlIG92ZXIgZm9ybSB0eXBlIGFuYWx5c2lzIGluIGRlZW1pbmcgaWYgYSB0cmFuc2FjdGlvbiBpcyBhIHNoYW0uIFRheHBheWVycyBoYXZlIGhhZCB0byBiZWFyIGEgaGVhdnkgYnVyZGVuIGluIGF0dGVtcHRpbmcgdG8gcGVyc3VhZGUgYSBjb3VydCB0byBkaXNyZWdhcmQgdGhlIGZvcm0gb2YgdGhlaXIgb3duIHNoYW0gdHJhbnNhY3Rpb24gYW5kIHRodXMgaGF2ZSBvbiBiYWxhbmNlIG5vdCBiZWVuIHN1Y2Nlc3NmdWwgaW4gZG9pbmcgc28uDQoNCjxwPkFub3RoZXIgbWV0aG9kb2xvZ3kgdGhlIGdvdmVybm1lbnQgaGFzIHVzZWQgc3VjY2Vzc2Z1bGx5IHRvIHNldCBhc2lkZSBhIHRyYW5zYWN0aW9uIGl0IGRlZW1zIHRvIGhhdmUgYmVlbiBlbnRlcmVkIGludG8gZm9yIHRoZSBzb2xlIHB1cnBvc2Ugb2YgY3JlYXRpbmcgYSB0YXggbG9zcyBpcyB3aGVyZSBpdCBmaW5kcyB0aGUgcGFydGllcyBoYXZlIHN1ZmZpY2llbnQgaW5mbHVlbmNlIG92ZXIgdGhlIHRyYW5zYWN0aW9uIGFzIHRvIHJlbW92ZSBhbnkgc3Vic3RhbnRpYWwgcmlzayBvZiBiZWluZyB1bmFibGUgdG8gcmV0dXJuIHRvIHRoZWlyIHByZXZpb3VzIHBvc2l0aW9uIGJ5IGxhYmVsaW5nIHRoZSB0cmFuc2FjdGlvbiBhbiBhY2NvbW1vZGF0aW9uIHJhdGhlciB0aGFuIGFuIGFybeKAmXMgbGVuZ3RoIHNhbGUsIGFuZCB0aHVzIGhhdmluZyBncm91bmRzIHRvIGRpc3JlZ2FyZCBpdCBmb3IgdGF4IHB1cnBvc2VzLiAgIEFsdGVybmF0aXZlbHksIHRoZSBzYW1lIHRyYW5zYWN0aW9uIG1heSBiZSBjaGFyYWN0ZXJpemVkIGFzIGEgc2FsZSwgYnV0IG5vdCBiZXR3ZWVuIHRoZSBwYXJ0aWVzIGludm9sdmVkIGluIHRoZSB0YXhwYXllcuKAmXMgdHJhbnNhY3Rpb24uIjtzOjU6ImFsaWduIjtzOjA6IiI7czo5OiJjb2x1bW5fYmciO3M6MDoiIjtzOjEzOiJtYXJnaW5fYm90dG9tIjtzOjA6IiI7czo3OiJwYWRkaW5nIjtzOjA6IiI7czo3OiJhbmltYXRlIjtzOjA6IiI7czo3OiJjbGFzc2VzIjtzOjA6IiI7fX1pOjI7YTozOntzOjQ6InR5cGUiO3M6NjoidmlzdWFsIjtzOjQ6InNpemUiO3M6MzoiMS8yIjtzOjY6ImZpZWxkcyI7YTozOntzOjU6InRpdGxlIjtzOjA6IiI7czo3OiJjb250ZW50IjtzOjE1MzoiPHA+PGlmcmFtZSBzcmM9Imh0dHBzOi8vd3d3LnlvdXR1YmUuY29tL2VtYmVkL0ZaY2U0anFRSnBJP3JlbD0wIiB3aWR0aD0iNTYwIiBoZWlnaHQ9IjMxNSIgZnJhbWVib3JkZXI9IjAiIGFsbG93ZnVsbHNjcmVlbj0iYWxsb3dmdWxsc2NyZWVuIj48L2lmcmFtZT48L3A+IjtzOjc6ImNsYXNzZXMiO3M6MDoiIjt9fWk6MzthOjM6e3M6NDoidHlwZSI7czo2OiJ2aXN1YWwiO3M6NDoic2l6ZSI7czozOiIxLzIiO3M6NjoiZmllbGRzIjthOjM6e3M6NToidGl0bGUiO3M6MDoiIjtzOjc6ImNvbnRlbnQiO3M6MTQ2OiI8aWZyYW1lIHNyYz0iaHR0cHM6Ly93d3cueW91dHViZS5jb20vZW1iZWQvN3FpeFBxV1R0dkE/cmVsPTAiIHdpZHRoPSI1NjAiIGhlaWdodD0iMzE1IiBmcmFtZWJvcmRlcj0iMCIgYWxsb3dmdWxsc2NyZWVuPSJhbGxvd2Z1bGxzY3JlZW4iPjwvaWZyYW1lPiI7czo3OiJjbGFzc2VzIjtzOjA6IiI7fX1pOjQ7YTozOntzOjQ6InR5cGUiO3M6NjoiY29sdW1uIjtzOjQ6InNpemUiO3M6MzoiMS8xIjtzOjY6ImZpZWxkcyI7YTo4OntzOjU6InRpdGxlIjtzOjA6IiI7czo3OiJjb250ZW50IjtzOjQ0OTE6IkNhc2UgTGF3IEV4YW1wbGVzOg0KDQo8cD5JbiBELk0uIEZlbmRlciB2IFVTLCBDQS01LDxhIGhyZWY9Imh0dHA6Ly9wcm9kLnJlc291cmNlLmNjaC5jb20vcmVzb3VyY2Uvc2Npb24vY2l0YXRpb24vcGl0Lzc4LTJVU1RDUDk2MTcvVVNUQ0xJTks/Y2Z1PVRBQSZjcGlkPVdLVVMtVEFBLUlDJnVBcHBDdHg9UldJIj43OC0yIFVTVEMgOTYxNzwvYT4sIDU3NyBGMmQgOTM0LCBhIHNhbGUgb2YgYm9uZHMgdG8gYSBiYW5rIHdoZXJlIHRoZSB0YXhwYXllcnMgb3duZWQgdGhlIGNvbnRyb2xsaW5nIGJsb2NrIG9mIHN0b2NrIHdhcyBkaXNyZWdhcmRlZCBhcyBub24gYm9uYWZpZGUgYmVjYXVzZSB0aGV5IGRpZCBub3QgaW4gdGhlIGdvdmVybm1lbnTigJlzIG9waW5pb24gc3VmZmVyIGEgZ2VudWluZSBlY29ub21pYyBsb3NzIHdoaWNoIGlzIGEgcmVxdWlyZW1lbnQgZm9yIGEgbG9zcyBkZWR1Y3Rpb24uDQoNCjxwPkluIFQuRi4gQWJib3R0LCBKci4gdiBDb21tciwgMjMgVENNIDQ0NSwgPGEgaHJlZj0iaHR0cDovL3Byb2QucmVzb3VyY2UuY2NoLmNvbS9yZXNvdXJjZS9zY2lvbi9jaXRhdGlvbi9waXQvREVDMjY2OTYlMjhNJTI5L0xJTktUQ00/Y2Z1PVRBQSZjcGlkPVdLVVMtVEFBLUlDJnVBcHBDdHg9UldJIj5EZWMuIDI2LDY5NihNKTwvYT4sIFRDIE1lbW8uIDE5NjQtNjUsIGFmZuKAmWQsIHBlciBjdXJpYW0sIENBLTUsPGEgaHJlZj0iaHR0cDovL3Byb2QucmVzb3VyY2UuY2NoLmNvbS9yZXNvdXJjZS9zY2lvbi9jaXRhdGlvbi9waXQvNjUtMVVTVENQOTMzMS9VU1RDTElOSz9jZnU9VEFBJmNwaWQ9V0tVUy1UQUEtSUMmdUFwcEN0eD1SV0kiPjY1LTEgVVNUQyA5MzMxPC9hPiwgMzQyIEYyZCA5OTc7IHRoZSBDb3VydCBvZiBBcHBlYWxzIGluIHRoZSA1dGggY2lyY3VpdCBhZmZpcm1lZCB0aGUgVGF4IENvdXJ0IGluIGhvbGRpbmcgdGhhdCBhIG1ham9yIHN0b2NraG9sZGVyIG9mIGEgY29ycG9yYXRpb24sIGFuZCBub3QgaGlzIHJlbGF0ZWQgY29ycG9yYXRpb24sIGluIHJlYWxpdHkgcmVhbGl6ZWQgYSBnYWluIGZyb20gdGhlIHNhbGUgb2Ygc3RvY2suIFRoZSBtYWpvciBzdG9ja2hvbGRlciBwdXJwb3J0ZWRseSB0cmFuc2ZlcnJlZCBzdG9jayB0byB0aGUgY29ycG9yYXRpb24gYXMgYSBjYXBpdGFsIGNvbnRyaWJ1dGlvbiBhbmQgdGhlbiBoaXMgcmVsYXRlZCBjb3Jwb3JhdGlvbiB0dXJuZWQgYXJvdW5kIGFuZCBpbW1lZGlhdGVseSBzb2xkIHRoZSBzdG9jayBhdCBhIGdhaW4uIFRoZSBUYXggQ291cnQganVzdGlmaWVkIHNldHRpbmcgYXNpZGUgdGhlIGZvcm0gb2YgdGhlIHRyYW5zYWN0aW9uIGJ5IGhvbGRpbmcgdGhhdCB0aGUgc3RvY2tob2xkZXIgaW4gc3Vic3RhbmNlIGhhZCBzb2xkIHN0b2NrIGFzIGFuIGluZGl2aWR1YWwgdXNpbmcgdGhlIGNvcnBvcmF0aW9uIGFzIGEgY29uZHVpdCBhbmQgdGhlbiBjb250cmlidXRlZCB0aGUgcHJvY2VlZHMgdG8gdGhlIGNvcnBvcmF0aW9uIGFzIGEgY2FwaXRhbCBjb250cmlidXRpb24uDQoNCjxwPkluIHRoZSBFc3QuIG9mIFMuIFJhdmV0dGkgdiBDb21tciwgNjcgVENNIDMwNjQsIDxhIGhyZWY9Imh0dHA6Ly9wcm9kLnJlc291cmNlLmNjaC5jb20vcmVzb3VyY2Uvc2Npb24vY2l0YXRpb24vcGl0L0RFQzQ5ODkzJTI4TSUyOS9MSU5LVENNP2NmdT1UQUEmY3BpZD1XS1VTLVRBQS1JQyZ1QXBwQ3R4PVJXSSI+RGVjLiA0OSw4OTMoTSk8L2E+LCBUQyBNZW1vLiAxOTk0LTI2MCwgTG9zc2VzIGZsb3dpbmcgdG8gYSBsaW1pdGVkIHBhcnRuZXIgcmVsYXRlZCB0byBhIHB1cmNoYXNlIG9mIGEgZmlsbSBieSBhIHBhcnRuZXJzaGlwIHdlcmUgZGlzYWxsb3dlZCBiZWNhdXNlIHRoZSBhY3F1aXNpdGlvbiB3YXMgaGVsZCB0byBsYWNrIGVjb25vbWljIHN1YnN0YW5jZS4gRmFjdG9ycyB0aGF0IHRoZSBjb3VydCBmb2N1c2VkIG9uIHRvIGp1c3RpZnkgdGhlIGRpc2FsbG93YW5jZSB3ZXJlIG92ZXItaW5mbGF0ZWQgcHVyY2hhc2UgcHJpY2UgZm9yIHRoZSBmaWxtIGluIG9yZGVyIHRvIHN1cHBvcnQgdGF4IGJlbmVmaXRzLCB0aGUgbGFjayBvZiBwZXJzb25hbCBsaWFiaWxpdHkgb2YgdGhlIGxpbWl0ZWQgcGFydG5lciBhbmQgdGhlIHRyYW5zYWN0aW9uIHdhcyBoZWxkIHRvIG5vdCBiZSB0aGUgcmVzdWx0IG9mIGEgdHJ1ZSBhcm1zLWxlbmd0aCBuZ
WdvdGlhdGlvbi4NCg0KPHA+SW4gSC5KLiBTbWl0aCwgSnIuIHYgQ29tbXIsIDUwIFRDTSAxNDQ0LCA8YSBocmVmPSJodHRwOi8vcHJvZC5yZXNvdXJjZS5jY2guY29tL3Jlc291cmNlL3NjaW9uL2NpdGF0aW9uL3BpdC9ERUM0MjQ4OCUyOE0lMjkvTElOS1RDTT9jZnU9VEFBJmNwaWQ9V0tVUy1UQUEtSUMmdUFwcEN0eD1SV0kiPkRlYy4gNDIsNDg4KE0pPC9hPiwgVEMgTWVtby4gMTk4NS01NjcgYSBzYWxlIG9mIHN0b2NrIGF0IGF1Y3Rpb24gd2FzIGhlbGQgdG8gYmUgaW52YWxpZCB3aGVyZSB0aGUgc2VsbGVy4oCZcyBzb24gcHVyY2hhc2VkIHRoZSBzdG9jayB3aXRoIG1vbmV5IGdpdmVuIHRvIGhpbSBieSB0aGUgc2VsbGVyIChoaXMgZmF0aGVyKSBiZWNhdXNlIHRoZSBmYXRoZXIgaW4gZWNvbm9taWMgdGVybXMgZGlkIG5vdCByZWNlaXZlIGFueXRoaW5nIGZvciB0aGUgc3RvY2suDQoNCjxwPkluIFAuSi4gQmF0YXN0aW5pIHYgQ29tbXIsIDUzIFRDTSAxNTAwLDxhIGhyZWY9Imh0dHA6Ly9wcm9kLnJlc291cmNlLmNjaC5jb20vcmVzb3VyY2Uvc2Npb24vY2l0YXRpb24vcGl0L0RFQzQ0MDg2JTI4TSUyOS9MSU5LVENNP2NmdT1UQUEmY3BpZD1XS1VTLVRBQS1JQyZ1QXBwQ3R4PVJXSSI+RGVjLiA0NCwwODYoTSk8L2E+LCBUQyBNZW1vLiAxOTg3LTM3ODsgTWlsYnJldywgSW5jLiB2IENvbW1yLCA0MiBUQ00gMTQ2NywgPGEgaHJlZj0iaHR0cDovL3Byb2QucmVzb3VyY2UuY2NoLmNvbS9yZXNvdXJjZS9zY2lvbi9jaXRhdGlvbi9waXQvREVDMzgzNjMlMjhNJTI5L0xJTktUQ00/Y2Z1PVRBQSZjcGlkPVdLVVMtVEFBLUlDJnVBcHBDdHg9UldJIj5EZWMuIDM4LDM2MyhNKTwvYT4sIFRDIE1lbW8uIDE5ODEtODAsIGFmZuKAmWQsIENBLTcsIDxhIGhyZWY9Imh0dHA6Ly9wcm9kLnJlc291cmNlLmNjaC5jb20vcmVzb3VyY2Uvc2Npb24vY2l0YXRpb24vcGl0LzgzLTJVU1RDUDk0NjcvVVNUQ0xJTks/Y2Z1PVRBQSZjcGlkPVdLVVMtVEFBLUlDJnVBcHBDdHg9UldJIj44My0yIFVTVEMgOTQ2NzwvYT4sIDcxMCBGMmQgMTMwMjsgRi5DLiBMYUdyYW5nZSB2IENvbW1yLCAyNiBUQyAxOTEsIERlYy4gMjEsNjk5ICgxOTU2KSBhIHNlcmllcyBvZiBzYWxlLWxlYXNlYmFjayB0cmFuc2FjdGlvbnMgd2VyZSBkaXNhbGxvd2VkIGJlY2F1c2UgdGhlIGNvdXJ0IGJlbGlldmVkIHRoZSB0cmFuc2FjdGlvbnMgd2VyZSBlbnRlcmVkIGludG8gc29sZWx5IHRvIGluZmxhdGUgdGhlIHZhbHVlIG9mIHRoZSBhc3NldHMgdXNlZCBpbiBhIHNjaG9vbCBidXMgYnVzaW5lc3MuIEluIHJlYWxpdHkgdGl0bGUgdG8gdGhlIGFzc2V0IG9mIHRoZSBidXNpbmVzcyB3ZXJlIG5ldmVyIHRyYW5zZmVycmVkIHRvIHRoZSBidXllcnMgYW5kIHRoZSBhZ3JlZWQgdXBvbiBwdXJjaGFzZSBwcmljZSBncmVhdGx5IGV4Y2VlZGVkIHRoZSB0cnVlIHZhbHVlIG9mIHRoZSB1bmRlcmx5aW5nIGFzc2V0cy4gVGhlc2UgZmFjdG9ycyBhbG9uZyB3aXRoIG90aGVycyBsZWQgdG8gdGhlIGRpc2FsbG93YW5jZSB1bmRlciB0aGUgdHJhbnNhY3Rpb24gbGFja2VkIGVjb25vbWljIHN1YnN0YW5jZSBieSB0aGUgY291cnQuDQoNCjxwPkluIFcuRy4gSG9jayB2IENvbW1yLCA1NCBUQ00gNDA3LCA8YSBocmVmPSJodHRwOi8vcHJvZC5yZXNvdXJjZS5jY2guY29tL3Jlc291cmNlL3NjaW9uL2NpdGF0aW9uL3BpdC9ERUM0NDE2NyUyOE0lMjkvTElOS1RDTT9jZnU9VEFBJmNwaWQ9V0tVUy1UQUEtSUMmdUFwcEN0eD1SV0kiPkRlYy4gNDQsMTY3KE0pPC9hPiwgVEMgTWVtbyAxOTg3LTQ0NCwgdGhlIGxpbWl0ZWQgcGFydG5lcnMgaW4gYSBtaW5pbmcgb3BlcmF0aW9u4oCZcyBleHBlbnNlcyBhbmQgbG9zc2VzIHdlcmUgZGlzYWxsb3dlZCBiZWNhdXNlIHRoZSBpbnZlc3RtZW50IGluIHRoZSBtaW5pbmcgb3BlcmF0aW9uIHdhcyBoZWxkIHRvIG5vdCBiZSBtb3RpdmF0ZWQgYnkgYSB2YWxpZCBidXNpbmVzcyBwdXJwb3NlLiBUaGUgdHJhbnNhY3Rpb25zIGFzIGEgd2hvbGUgbGFja2VkIGVjb25vbWljIHN1YnN0YW5jZSBiZWNhdXNlIG9mIHRoZSByZWxhdGlvbnNoaXAgYW5kIGxhY2sgb2Yga25vd2xlZGdlIG9yIGV4cGVyaWVuY2UgaW4gdGhlIG1pbmluZyBpbmR1c3RyeSBvZiB0aGUgcGFydGllcyBhbmQgdGhlIG92ZXJzdGF0ZWQgcHVyY2hhc2UgcHJpY2UuIE1vcmVvdmVyLCBubyBvcmUgd2FzIGV2ZXIgbWluZWQgb3Igc29sZCBhbmQgbm8gcGF5bWVudHMgd2VyZSBhY3R1YWxseSBtYWRlIHRvIHRoZSBzZWxsZXIsIGFuZCBmYWN0b3JzIHdlcmUgYXBwYXJlbnQgdGhhdCBpbmRpY2F0ZWQgdGhlIG1pbmUgd2FzIG5ldmVyIGEgcHJvZml0YWJsZSBidXNpbmVzcyB2ZW50dXJlLiI7czo1OiJhbGlnbiI7czowOiIiO3M6OToiY29sdW1uX2JnIjtzOjA6IiI7czoxMzoibWFyZ2luX2JvdHRvbSI7czowOiIiO3M6NzoicGFkZGluZyI7czowOiIiO3M6NzoiYW5pbWF0ZSI7czowOiIiO3M6NzoiY2xhc3NlcyI7czowOiIiO319fXM6NDoiYXR0ciI7YTo2OntzOjg6ImJnX2NvbG9yIjtzOjA6IiI7czo4OiJiZ19pbWFnZSI7czowOiIiO3M6MTE6ImJnX3Bvc2l0aW9uIjtzOjIyOiJuby1yZXBlYXQ7Y2VudGVyIHRvcDs7IjtzOjEzOiJjb2x1bW5fbWFyZ2luIjtzOjA6IiI7czo3OiJwYWRkaW5nIjtzOjA6IiI7czo1OiJjbGFzcyI7czowOiIiO319aTo1O2E6Mzp7czo0OiJzaXplIjtzOjM6IjEvMSI7czo1OiJpdGVtcyI7YTo0OntpOjA7YTozOntzOjQ6InR5cGUiO3M6NjoiY29sdW1uIjtzOjQ6InNpemUiO3M6MzoiMy81IjtzOjY6ImZpZWxkcyI7YTo4OntzOjU6InRpdGxlIjtzOjA6IiI7czo3OiJjb250ZW50IjtzOjMyOiI8aDI+QnVzaW5lc3MgUHVycG9zZSBUZXN0Ojo8L2gyPiI7czo1OiJhbGlnbiI7czo0OiJsZWZ0IjtzOjk6ImNvbHVtbl9iZyI7czowOiIiO3M6MTM6Im1hcmdpbl9ib3R0b20iO3M6MDoiIjtzOjc6InBhZGRpbmciO3M6MDoiIjtzOjc6ImFuaW1hdGUiO3M6MDoiIjtzOjc6ImNsYXNzZXMiO3M6MDoiIjt9fWk6MTthOjM6e3M6NDoidHlwZSI7czo2OiJjb2x1bW4iO3M6NDoic2l6ZSI7czozOiIxLzIiO3M6NjoiZmllbGRzIjthOjg6e3M6NToidGl0bGUiO3M6MDoiIjtzOjc6ImNvbnRlbnQiO3M6MTY0MjoiPHA+VGhlIGJ1c2luZXNzIHB1cnBvc2UgdGVzdCByZXF1aXJlcyB0aGF0IGEgdHJhbnNhY3Rpb24sIHRvIGJlIHJlc3BlY3RlZCwgbXVzdCBoYXZlIGEgYnVzaW5lc3MgcHVycG9zZSBzZXBhcmF0ZSBhbmQgYXBhcnQgZnJvbSBhbnkgYXNzb2NpYXRlZCB0YXggYWR2YW50YWdlcy4gVGhlIGJ1c2luZXNzIHB1cnBvc2UgdGVzdCBtYXkgYmUgdmlld2VkIGFzIGhhdmluZyB0d28gZWxlbWVudHMgdGhhdCwgaWYgc2F0aXNmaWVkLCBzaG91bGQgcHJldmVudCBnb3Zlcm5tZW50IHNjcnV0aW55IGFuZCBhZGp1c3RtZW50IG9mIGEgdHJhbnNhY3Rpb24gdW5kZXIgdGhlIGRvY3RyaW5lLg0KDQo8cD5UaGUgYWNxdWlzaXRpb24gd2FzIG1vdGl2YXRlZCBieSBhIG5vbnRheCBidXNpbmVzcyBwdXJwb3NlOyBhbmQNClRoZSBtZXRob2Qgb2YgdGhlIGFjcXVpc2l0aW9uIHdhcyBtb3RpdmF0ZWQgYnkgYSBub250YXggYnVzaW5lc3MgcHVycG9zZS4NClRoZSBidXNpbmVzcyBwdXJwb3NlIHJlcXVpcmVtZW50IGNhbWUgb3V0IG9mIGNhc2UgbGF3IHN1cnJvdW5kaW5nIGdvdmVybm1lbnQgY2hhbGxlbmdlcyB0byBjb3Jwb3JhdGUgcmVvcmdhbml6YXRpb25zLCBidXQgYXMgcHJlc2VudGx5IGFwcGxpZWQgaXMgbm90IGxpbWl0ZWQgdG8gY29ycG9yYXRlIHJlb3JncyB0b2RheS4gICBUaGUgbW9zdCBjb21tb24gYXBwbGljYXRpb24gb2YgdGhlIGJ1c2luZXNzIHB1cnBvc2UgdGVzdCBjdXJyZW50bHksIGlzIHdoZXJlIGEgZ3JvdXAgb2YgY29ycG9yYXRpb25zIGNhbiBiZSBkZW5pZWQgYWZmaWxpYXRlZCBncm91cCBzdGF0dXMgYW5kIHRodXMgYmUgcHJvaGliaXRlZCBmcm9tIGluY2x1ZGluZyBhIGNvcnBvcmF0aW9uIG9uIGl0cyBjb25zb2xpZGF0ZWQgcmV0dXJuIGlmIGEgYnVzaW5lc3MgcHVycG9zZSBpcyBsYWNraW5nIHN1cnJvdW5kaW5nIHRoZSBhY3F1aXNpdGlvbiBvZiB0aGUgdGFyZ2V0IGNvcnBvcmF0aW9uLiBDb3Jwb3JhdGUgZGl2aXNpb25zIGFyZSBhbHNvIGNsb3NlbHkgc2NydXRpbml6ZWQgYXMgdGF4IGZyZWUgcmVvcmdhbml6YXRpb25zIHVuZGVyIHRoZSBidXNpbmVzcyBwdXJwb3NlIHRlc3QgYmVjYXVzZSB0aGV5IGNhbiBlYXNpbHkgYmUgdXNlZCBpbiBhbiBhdHRlbXB0IHRvIGNvbnZlcnQgZGl2aWRlbmQgZGlzdHJpYnV0aW9ucyBpbnRvIGNhcGl0YWwgZ2FpbiBkaXN0cmlidXRpb25zLg0KDQo8cD5UaGUgYnVzaW5lc3MgcHVycG9zZSB0ZXN0IGp1ZGljaWFsIGRvY3RyaW5lIHdhcyB0aGUgcHJlZGVjZXNzb3Igb2Ygc3BlY2lmaWMgY29kZSBwcm92aXNpb25zIHdoaWNoIGV4aXN0IHRvZGF5IHRoYXQgZGVueSB0aGUgdXNlIG9mIHRoZSBuZXQgbG9zc2VzIG9mIGEgdGFyZ2V0IGNvcnBvcmF0aW9uIGlmIHRoZSBtYWpvciByZWFzb24gb2YgaXRzIGFjcXVpc2l0aW9uIHdhcyB0byBzZWN1cmUgdGhlIGJlbmVmaXRzIG9mIHRoZSBuZXQgbG9zc2VzLiBUaGlzIHNlcmllcyBvZiBjb2RlIHByb3Zpc2lvbnMgcHJldmVudHMgdGhlIGFjcXVpcmluZyBjb3Jwb3JhdGlvbiBmcm9tIHV0aWxpemluZyBwcmUtYWNxdWlzaXRpb24gbmV0IG9wZXJhdGluZyBsb3NzZXMgdG8gcmVkdWNlIHRoZSB0YXhhYmxlIGluY29tZSBvbiB0aGUgYXNzb2NpYXRlZCBjb25zb2xpZGF0ZWQgZ3JvdXAgcmV0dXJuLiI7czo1OiJhbGlnbiI7czowOiIiO3M6OToiY29sdW1uX2JnIjtzOjA6IiI7czoxMzoibWFyZ2luX2JvdHRvbSI7czowOiIiO3M6NzoicGFkZGluZyI7czowOiIiO3M6NzoiYW5pbWF0ZSI7czowOiIiO3M6NzoiY2xhc3NlcyI7czowOiIiO319aToyO2E6Mzp7czo0OiJ0eXBlIjtzOjU6ImltYWdlIjtzOjQ6InNpemUiO3M6MzoiMS8yIjtzOjY6ImZpZWxkcyI7YToxNDp7czozOiJzcmMiO3M6MTA1OiJodHRwczovL2tsYXNpbmctYXNzb2NpYXRlcy5jb20vd3AtY29udGVudC91cGxvYWRzLzIwMTUvMTEvYnVzaW5lc3MtZW50aXR5LXNlbGVjdGlvbi1kZWNpc2lvbi1hdHRvcm5leS5qcGciO3M6NToid2lkdGgiO3M6MDoiIjtzOjY6ImhlaWdodCI7czowOiIiO3M6NjoiYm9yZGVyIjtzOjE6IjAiO3M6NToiYWxpZ24iO3M6MDoiIjtzOjY6Im1hcmdpbiI7czowOiIiO3M6MzoiYWx0IjtzOjA6IiI7czo3OiJjYXB0aW9uIjtzOjA6IiI7czoxMDoibGlua19pbWFnZSI7czowOiIiO3M6NDoibGluayI7czowOiIiO3M6NjoidGFyZ2V0IjtzOjE6IjAiO3M6OToiZ3JleXNjYWxlIjtzOjE6IjAiO3M6NzoiYW5pbWF0ZSI7czowOiIiO3M6NzoiY2xhc3NlcyI7czowOiIiO319aTozO2E6Mzp7czo0OiJ0eXBlIjtzOjY6ImNvbHVtbiI7czo0OiJzaXplIjtzOjM6IjEvMSI7czo2OiJmaWVsZHMiO2E6ODp7czo1OiJ0aXRsZSI7czowOiIiO3M6NzoiY29udGVudCI7czoxMjkxOiI8cD5UaGUgcG9saWN5IGJlaGluZCB0aGUgcmVvcmdhbml6YXRpb24gcHJvdmlzaW9ucyBpcyB0byBlbmFibGUgdGhlIGNvbnRpbnVhdGlvbiBvZiBhbiBvbmdvaW5nIGJ1c2luZXNzIHVuZGVyIG1vZGlmaWVkIGNvcnBvcmF0ZSBmb3JtIHdpdGhvdXQgYSBjdXJyZW50IHRheCBpbXBhY3QuIEluIHRoZSBhYnNlbmNlIG9mIGEgdmFsaWQgYnVzaW5lc3MgcHVycG9zZSB1bmRlcmx5aW5nIGEgbW9kaWZpY2F0aW9uIHRvIGNvcnBvcmF0ZSBmb3JtIHRoZSBnb3Zlcm5tZW50IHBlcmNlaXZlcyBhYnVzZXMgd2hlcmUgdGhlc2UgcHJvdmlzaW9ucyBhcmUgdXNlZCB0byBpbXByb3Blcmx5IGFjaGlldmUgbm9uLXRheGFibGUgc2FsZSBvciBkaXZpZGVuZCBkaXN0cmlidXRpb25zLiBUbyBjb21wbGljYXRlIG1hdHRlcnMsIHN0cmljdCBsaXRlcmFsIGNvbXBsaWFuY2Ugd2l0aCB0aGUgbGV0dGVyIG9mIHRoZSBsYXcgc3Vycm91bmRpbmcgdGhlIHJlb3JnYW5pemF0aW9uIHN0YXR1dGVzIG1heSBub25lIHRoZSBsZXNzIGJlIGluc3VmZmljaWVudCB0byBhY2hpZXZlIHRheC1mcmVlIHRyZWF0bWVudC4gVGhlIGNvdXJ0cyBoYXZlIGNvbnNpc3RlbnRseSByZXF1aXJlZCB0aGF0IHRoZSB1bmRlcmx5aW5nIGJ1c2luZXNzIHB1cnBvc2Ugb2YgdGhlIHJlb3JnYW5pemF0aW9uIHByb3Zpc2lvbnMgYmUgY29tcGxpZWQgd2l0
aCBhcyB3ZWxsIGFuZCBoYXZlIHVzZWQgdGhlIGJ1c2luZXNzIHB1cnBvc2UgdGVzdCBhcyBhIHN3b3JkIHRvIGRpc2FsbG93IHRyYW5zYWN0aW9ucyBkZWVtZWQgYWJ1c2l2ZSBvbiBtdWx0aXBsZSBvY2Nhc2lvbnMgd2hlcmUgdGhleSBiZWxpZXZlIHRheHBheWVycyBoYXZlIG5vdCBkb25lIHNvLg0KDQo8cD5JbiByZWFsaXR5IHdoZW5ldmVyIGFuIGV4Y2hhbmdlLCB3aGljaCBpcyBpbnRlbmRlZCB0byBiZSB0YXggZnJlZSwgcmVzdWx0cyBpbiB0aGUgZXhjaGFuZ2Ugb2YgbWF0ZXJpYWxseSBkaWZmZXJlbnQgcHJvcGVydGllcywgcmVhbGl6YXRpb24gb2YgZ2FpbiBvciBsb3NzIG9jY3VycyBhbmQgdGhpcyBvcmRpbmFyaWx5IGhhcyB0byBiZSByZWNvZ25pemVkIGZvciB0YXggcHVycG9zZXMgdW5sZXNzIGEgdGF4IGZyZWUgZXhjaGFuZ2Ugbm9uLXJlY29nbml0aW9uIHByb3Zpc2lvbiBhcHBsaWVzLiBUbyBxdWFsaWZ5IGFzIHRheCBmcmVlLCB0aGUgcmVvcmdhbml6YXRpb24gaGFzIHRvIGJlIGRyaXZlbiBieSBidXNpbmVzcyBjaXJjdW1zdGFuY2VzIHJhdGhlciB0aGFuIHNvbGVseSBhIGRlc2lyZSB0byBsb3dlciBhIGNvbXBhbnnigJlzIHRheCBidXJkZW4uIjtzOjU6ImFsaWduIjtzOjA6IiI7czo5OiJjb2x1bW5fYmciO3M6MDoiIjtzOjEzOiJtYXJnaW5fYm90dG9tIjtzOjA6IiI7czo3OiJwYWRkaW5nIjtzOjA6IiI7czo3OiJhbmltYXRlIjtzOjA6IiI7czo3OiJjbGFzc2VzIjtzOjA6IiI7fX19czo0OiJhdHRyIjthOjY6e3M6ODoiYmdfY29sb3IiO3M6MDoiIjtzOjg6ImJnX2ltYWdlIjtzOjA6IiI7czoxMToiYmdfcG9zaXRpb24iO3M6MjI6Im5vLXJlcGVhdDtjZW50ZXIgdG9wOzsiO3M6MTM6ImNvbHVtbl9tYXJnaW4iO3M6MDoiIjtzOjc6InBhZGRpbmciO3M6MDoiIjtzOjU6ImNsYXNzIjtzOjA6IiI7fX1pOjY7YTozOntzOjQ6InNpemUiO3M6MzoiMS8xIjtzOjU6Iml0ZW1zIjthOjg6e2k6MDthOjM6e3M6NDoidHlwZSI7czo2OiJjb2x1bW4iO3M6NDoic2l6ZSI7czozOiIzLzUiO3M6NjoiZmllbGRzIjthOjg6e3M6NToidGl0bGUiO3M6MDoiIjtzOjc6ImNvbnRlbnQiO3M6Mzc6IjxoMj5FY29ub21pYyBTdWJzdGFuY2UgRG9jdHJpbmU6PC9oMj4iO3M6NToiYWxpZ24iO3M6NDoibGVmdCI7czo5OiJjb2x1bW5fYmciO3M6MDoiIjtzOjEzOiJtYXJnaW5fYm90dG9tIjtzOjA6IiI7czo3OiJwYWRkaW5nIjtzOjA6IiI7czo3OiJhbmltYXRlIjtzOjA6IiI7czo3OiJjbGFzc2VzIjtzOjA6IiI7fX1pOjE7YTozOntzOjQ6InR5cGUiO3M6NjoiY29sdW1uIjtzOjQ6InNpemUiO3M6MzoiMS8xIjtzOjY6ImZpZWxkcyI7YTo4OntzOjU6InRpdGxlIjtzOjA6IiI7czo3OiJjb250ZW50IjtzOjUxMDU6IjxwPlRoZSBlY29ub21pYyBzdWJzdGFuY2UgZG9jdHJpbmUgb3Igc2hhbSBpbiBzdWJzdGFuY2UgZG9jdHJpbmUgbGVkIHRvIHRoZSByZWNlbnQgY29kaWZpY2F0aW9uIGZvdW5kIGluIMKnIDc3MDEgKG8pLCB3aGljaCBiYXNpY2FsbHkgZGljdGF0ZXMgdGhhdCBhbnkgdHJhbnNhY3Rpb24gd2hlcmUgdGhlIGVjb25vbWljIHN1YnN0YW5jZSBkb2N0cmluZSBpcyBhcHBsaWNhYmxlIHNoYWxsIGJlIHRyZWF0ZWQgYXMgaGF2aW5nIGVjb25vbWljIHN1YnN0YW5jZSBvbmx5IHdoZXJlOg0KDQo8cD4oQSkgRW50ZXJpbmcgaW50byB0aGUgdHJhbnNhY3Rpb24gY2hhbmdlcyBpbiBhIG1lYW5pbmdmdWwgd2F5IHRoZSB0YXhwYXllcuKAmXMgZWNvbm9taWMgcG9zaXRpb24sIChhcGFydCBmcm9tIGl0cyBGZWRlcmFsIGluY29tZSB0YXggZWZmZWN0cykgYW5kDQoNCjxwPihCKSBUaGUgdGF4cGF5ZXIgaGFzIGEgc3Vic3RhbnRpYWwgYnVzaW5lc3MgcHVycG9zZSBmb3IgZW50ZXJpbmcgaW50byBzdWNoIHRyYW5zYWN0aW9uIChhcGFydCBmcm9tIGl0cyBGZWRlcmFsIGluY29tZSB0YXggZWZmZWN0cykuDQoNCjxwPlRoZSBnZW5lc2lzIG9mIHRoZSDigJxlY29ub21pYyBzdWJzdGFuY2UgZG9jdHJpbmXigJ0gaXMgYSBjb21tb24gbGF3IGRvY3RyaW5lIHRoYXQgZGlzYWxsb3dlZCB0aGUgdGF4IGJlbmVmaXRzIGFzc29jaWF0ZWQgd2l0aCBhIHRyYW5zYWN0aW9uIGlmIHRoZSB0cmFuc2FjdGlvbiB3YXMgZGVlbWVkIHRvIGxhY2sgZWNvbm9taWMgc3Vic3RhbmNlIGEgYnVzaW5lc3MgcHVycG9zZSB3aGljaCBpbiAyMDEwIHdhcyBjb2RpZmllZCB1bmRlciBJUkMgwqc3NzAxKG8pKDUpKEEpLiBJUkMgwqc3NzAxKG8pKDUpIHNwZWNpZmljYWxseSBzdGF0ZXMgdGhhdCB0aGUgcHJpb3IgZXhpc3RpbmcgcHJlY2VkZW50IHN0ZW1taW5nIGZyb20gZmVkZXJhbCBjYXNlIGxhdyBvbiB0aGUgc3ViamVjdCBvZiBlY29ub21pYyBzdWJzdGFuY2UgaXMgc3RpbGwgcmVsZXZhbnQgdG8gdGhlIGRldGVybWluYXRpb24gb2Ygd2hldGhlciDCpzc3MDEgaXMgcmVsZXZhbnQgdG8gYSBmYWN0IHBhdHRlcm4gYW5kIHdoZW4gdGhlIGFwcGxpY2F0aW9uIG9mIHRoZSBkb2N0cmluZSBpcyBjYWxsZWQgZm9yLCBidXQgaXQgZXhwcmVzc2x5IG92ZXJydWxlcyBhbnkgcHJpb3IgY2FzZSBsYXcgd2hpY2ggb25seSByZXF1aXJlZCBvbmUg4oCccHJvbmfigJ0gb2YgdGhlIGVjb25vbWljIHN1YnN0YW5jZSB0ZXN0IHRvIHNhdGlzZnkgdGhlIGRvY3RyaW5lLiBQcmlvciBjYXNlIGxhdyB0aGF0IGhlbGQgdGhhdCBhIG1lYW5pbmdmdWwgY2hhbmdlIGluIGVjb25vbWljIHBvc2l0aW9uIGEgc3Vic3RhbnRpYWwsIG5vbi10YXggYnVzaW5lc3MgcHVycG9zZSBzYXRpc2ZpZWQgdGhlIGVjb25vbWljIHN1YnN0YW5jZSBkb2N0cmluZSB3YXMgZXhwcmVzc2x5IG92ZXJydWxlZCB3aXRoIHRoZSBlbmFjdG1lbnQgb2Ygwqc3NzAxKG8pKDUpLiBUaGUgY3VycmVudCBjb2RpZmljYXRpb24gb2YgdGhlIGVjb25vbWljIHN1YnN0YW5jZSBkb2N0cmluZSByZXF1aXJlcyB0aGF0IGJvdGggcHJvbmdzIGJlIHNhdGlzZmllZCAoaS5lLiBib3RoIGEgbWVhbmluZ2Z1bCBjaGFuZ2UgYW5kIGEgbm9uLXRheCBwdXJwb3NlIGlzIHJlcXVpcmVkIHRvIHNhdGlzZnkgwqc3NzAxKSwgYW5kIGNvbnNlcXVlbnRseSBhbnkgcHJpb3IgY2FzZSBsYXcgd2hpY2ggb25seSByZXF1aXJlZCBvbmUgcHJvbmcgb2YgdGhlIHRlc3QgYmUgc2F0aXNmaWVkLCBoYXMgbGltaXRlZCBhcHBsaWNhYmlsaXR5IGZvciB0YXggeWVhcnMgc3Vic2VxdWVudCB0byB0aGUgZW5hY3RtZW50IG9mIMKnNzcwMSBpbiAyMDEwLg0KDQo8cD5JbiBhcHBseWluZyB0aGUgwqc3NzAxIGNvZGlmaWNhdGlvbiBzdGFuZGFyZCwgdGhlIHByb2ZpdCBnZW5lcmF0aW9uIHBvdGVudGlhbCBvZiBhIHRyYW5zYWN0aW9uIGlzIG9ubHkgc3VmZmljaWVudCBpZiB0aGUgcHJlc2VudCB2YWx1ZSBvZiB0aGUgcmVhc29uYWJseSBleHBlY3RlZCBwcmUtdGF4IHByb2ZpdCBmcm9tIHRoZSB0cmFuc2FjdGlvbiBpcyBzdWJzdGFudGlhbCB3aGVuIGNvbXBhcmVkIHRvIHRoZSBwcmVzZW50IHZhbHVlIG9mIHRoZSBleHBlY3RlZCBmZWRlcmFsIHRheCBiZW5lZml0cyB0aGF0IHdvdWxkIGJlIHRocm93biBvZmYgYnkgdGhlIHRyYW5zYWN0aW9uIGlmIGl0IHdlcmUgcmVzcGVjdGVkIGZvciB0YXggcHVycG9zZXMuIEluIGVzdGltYXRpbmcgdGhlc2UgYmVuZWZpdHMsIHRoZSBTZXJ2aWNlIHdpbGwgcmVseSBvbiBhbGwgYXZhaWxhYmxlIHJlbGV2YW50IGNhc2UgbGF3IHByZWNlZGVudCBhbmQgb3RoZXIgcmVsZXZhbnQgcHJpbWFyeSBhdXRob3JpdHkuIFRoZSBzdGF0dWUgZG9lcyBub3QgcHJvdmlkZSBhIHNhZmUgaGFyYm9yIG1pbmltdW0gcHJldGF4IHByb2ZpdCBvciBwZXJjZW50YWdlIHJhdGlvIGJldHdlZW4gdGhlIGV4cGVjdGVkIHByb2ZpdHMgYW5kIGV4cGVjdGVkIGJlbmVmaXRzIHRvIHNhdGlzZnkgdGhlIHByb2ZpdCBwb3RlbnRpYWwgdGVzdCBkZXNjcmliZWQgYWJvdmUuDQoNCjxwPlRoZSBmb2xsb3dpbmcgZXhhbXBsZXMgb2YgdGF4IHNoZWx0ZXJzIHdlcmUgYXR0YWNrZWQgdW5kZXIgdGhlIGVjb25vbWljIHN1YnN0YW5jZSBkb2N0cmluZSBhbmQgaGVscGVkIGxlYWQgdG8gdGhlIGRyYWZ0aW5nIG9mIMKnNzcwMTsNCg0KPHVsPg0KICA8bGk+KEJFRFMpIOKAkyBCYXNpcy1lbmhhbmNpbmcgZGVyaXZhdGl2ZXMgc3RydWN0dXJlcyB3aGljaCBhcmUgZXNzZW50aWFsbHkgYSBzZXJpZXMgb2YgdHJhbnNhY3Rpb25zIGVudGVyZWQgaW50byBmb3IgdGhlIHB1cnBvc2Ugb2YgaW5jcmVhc2luZyB0aGUgYmFzaXMgb2YgY29ycG9yYXRlIHN0b2NrIGluIG9yZGVyIHRvIHJlZHVjZSBhbnkgY2FwaXRhbCBnYWluIG9uIHRoZSBzYWxlIG9mIHRoYXQgc3RvY2suICA8L2xpPg0KICA8bGk+KENBUkRTKSDigJMgQ3VzdG9tIEFkanVzdGFibGUgUmF0ZSBEZWJ0IFN0cnVjdHVyZSB0cmFuc2FjdGlvbnMsIGluIHdoaWNoIHRoZSBsb3NzIGZyb20gYSBjcm9zcy1jdXJyZW5jeSBzd2FwIGlzIG9mZnNldCBhZ2FpbnN0IHRoZSBnYWluIGZyb20gdGhlIHNhbGUgb2YgYW4gdW5yZWxhdGVkIGJ1c2luZXNzLjwvbGk+DQogIDxsaT4oQkxJU1MpIOKAkyBCYXNpcyBMZXZlcmFnZWQgSW52ZXN0bWVudCBTd2FwIFNwcmVhZCB0cmFuc2FjdGlvbnMsIHdoZXJlIGEgc2VyaWVzIG9mIGNvbm5lY3RlZCB0cmFuc2FjdGlvbnMgYXJlIGV4ZWN1dGVkIGludm9sdmluZyB0aGUgc2FsZSBieSBhIHN1YnNpZGlhcnkgb2Ygc3Vic3RhbnRpYWxseSBhbGwgb2YgaXRzIGFzc2V0cyBhdCBhIHNpemVhYmxlIGdhaW4gZm9sbG93ZWQgYnkgYSBzZXJpZXMgb2YgcHVyY2hhc2VzIGFuZCBzYWxlcyBvZiBib3RoIGxvbmcgYW5kIHNob3J0IG9wdGlvbnMgaW4gZm9yZWlnbiBjdXJyZW5jeSB0aHJvdWdoIGEgbWV0aG9kIGNhbGxlZCBhIGRpZ2l0YWwgb3B0aW9uIHNwcmVhZCB3aGljaCB0aGUgc3Vic2lkaWFyeSB0aGVuIGNvbnRyaWJ1dGVzIHRoZSBvcHRpb25zIHRvIGEgd2hvbGx5IG93bmVkIHBhcnRuZXJzaGlwLiBTaW11bHRhbmVvdXNseSwgdGhlIHBhcnRuZXJzaGlwIHB1cmNoYXNlcyBzaGFyZXMgb2YgdW5yZWxhdGVkIGNvcnBvcmF0ZSBzdG9jayBmcm9tIHRoZSBvcGVuIHN0b2NrIG1hcmtldC4gQXMgYSByZXN1bHQgb2YgdGhlIGNhcGl0YWwgY29udHJpYnV0aW9uIG9mIHRoZSBkaWdpdGFsIG9wdGlvbiBzcHJlYWQgdHJhbnNhY3Rpb25zLCB0aGUgc3Vic2lkaWFyeSBpbmNyZWFzZXMgaXRzIG91dHNpZGUgYmFzaXMgaW4gdGhlIHBhcnRuZXJzaGlwIGludGVyZXN0IHRvIHRoZSBwb2ludCB3aGVyZSB3aGVuIHRoZSBwYXJ0bmVyc2hpcCBoZWxkIGJ5IHRoZSBzdWJzaWRpYXJ5IGxpcXVpZGF0ZXMgdGhlIHJlc3VsdGluZyBzdG9jayBkaXN0cmlidXRpb24gYmFjayB1cCB0byB0aGUgc3Vic2lkaWFyeSBoYXMgYSBiYXNpcyB3aGljaCB3aWxsIGdlbmVyYXRlIGEgbG9zcyB3aGVuIHRoZSBzdG9jayBpcyBzb2xkIHRoYXQgd2lsbCBvZmZzZXRzIHRoZSBnYWluIGZyb20gdGhlIHByaW9yIHNhbGUgb2YgdGhlIHN1YnNpZGlhcnnigJlzIGFzc2V0cy48L2xpPg0KICA8bGk+KERBRCkg4oCTIEEgZGlzdHJlc3NlZCBhc3NldC9kZWJ0IHRyYW5zYWN0aW9uLCB3aGVyZSBhIGZvcmVpZ24gcmV0YWlsZXIgaW4gYmFua3J1cHRjeSByZW9yZ2FuaXphdGlvbiBjb250cmlidXRlcyBkaXN0cmVzc2VkIHJlY2VpdmFibGVzIHJlbGF0ZWQgdG8gaXRzIGJhbmtydXB0Y3kgZXN0YXRlIHRvIGFuIEFtZXJpY2FuIExMQywgd2hpY2ggaXMgc3BlY2lmaWNhbGx5IGZvcm1lZCB0byBjb2xsZWN0IHRoZSByZWNlaXZhYmxlcywgaW4gZXhjaGFuZ2UgZm9yIGEgbWFqb3JpdHkgaW50ZXJlc3QgaW4gdGhlIExMQy4gVGhlIGZvcmVpZ24gcmV0YWlsZXIgc3Vic2VxdWVudGx5IHJlZGVlbXMgaXRzIGludGVyZXN0IGluIHRoZSBMTEMgZm9yIGNhc2ggYW5kIHRoZW4gdGhlIExMQyBjb250cmlidXRlcyBhIHBvcnRpb24gb2YgdGhlIHJlY2VpdmFibGVzIGluIGV4Y2hhbmdlIGZvciBtYWpvcml0eSBpbnRlcmVzdHMgaW4gc2V2ZXJhbCBvdGhlciBuZXdseSBjcmVhdGVkIExMQ3MuIEFtZXJpY2FuIGludmVzdG9ycyB0aGVuIGFyZSBzb2xkIG1lbWJlcnNoaXAgaW50ZXJlc3RzIGluIHRoZSBMTENzIHRocm91Z2ggYW4gYWRkaXRpb25hbCBsYXllciBvZiBMTENzLCB3aGljaCBmdW5jdGlvbiBhcyBob2xkaW5nIGNvbXBhbmllcy4gVGhlIHNlcmllcyBvZiByZWxhdGVkIExMQ3MgY2xhaW0
gYSBjYXJyeW92ZXIgYmFzaXMgaW4gdGhlIHJlY2VpdmFibGVzIGJhc2VkIG9uIHRoZWlyIGZhY2UgdmFsdWUgYXQgY29udHJpYnV0aW9uIGFuZCB0aGVuIHdyaXRlIG9mZiB0aGUgYmFzaXMgaW4gdGhvc2UgcmVjZWl2YWJsZXMgYXMgYmFkIGRlYnQgd2hpY2ggZ2VuZXJhdGVzIGxvc3NlcyB0byB0aGUgQW1lcmljYW4gaW52ZXN0b3JzLiBUaGUgb3JpZ2luYWwgdG9wIGxldmVsIExMQyB0aGFuIGNsYWltcyBsb3NzZXMgb24gdGhlIHN1YnNlcXVlbnQgc2FsZSBvZiB0aGUgbGF5ZXJlZCBtZW1iZXJzaGlwIGludGVyZXN0cyBpbiB0aGUgaG9sZGluZyBjb21wYW5pZXMuPC9saT4NCjwvdWw+IjtzOjU6ImFsaWduIjtzOjA6IiI7czo5OiJjb2x1bW5fYmciO3M6MDoiIjtzOjEzOiJtYXJnaW5fYm90dG9tIjtzOjA6IiI7czo3OiJwYWRkaW5nIjtzOjA6IiI7czo3OiJhbmltYXRlIjtzOjA6IiI7czo3OiJjbGFzc2VzIjtzOjA6IiI7fX1pOjI7YTozOntzOjQ6InR5cGUiO3M6NjoiY29sdW1uIjtzOjQ6InNpemUiO3M6MzoiMy81IjtzOjY6ImZpZWxkcyI7YTo4OntzOjU6InRpdGxlIjtzOjA6IiI7czo3OiJjb250ZW50IjtzOjM4OiI8aDI+U3Vic3RhbmNlIE92ZXIgRnJvbSBEb2N0cmluZTo8L2gyPiI7czo1OiJhbGlnbiI7czo0OiJsZWZ0IjtzOjk6ImNvbHVtbl9iZyI7czowOiIiO3M6MTM6Im1hcmdpbl9ib3R0b20iO3M6MDoiIjtzOjc6InBhZGRpbmciO3M6MDoiIjtzOjc6ImFuaW1hdGUiO3M6MDoiIjtzOjc6ImNsYXNzZXMiO3M6MDoiIjt9fWk6MzthOjM6e3M6NDoidHlwZSI7czo2OiJjb2x1bW4iO3M6NDoic2l6ZSI7czozOiIxLzEiO3M6NjoiZmllbGRzIjthOjg6e3M6NToidGl0bGUiO3M6MDoiIjtzOjc6ImNvbnRlbnQiO3M6NzQ4OiJTaW1pbGFyIHRvIHRoZSBzaGFtIHRyYW5zYWN0aW9uIGFuYWx5c2lzLCB0aGUgc3Vic3RhbmNlIG92ZXIgZm9ybSBkb2N0cmluZSByZXF1aXJlcyB0aGF0IHRoZSBhc3NvY2lhdGVkIHRheCBsaWFiaWxpdHkgc3RlbW1pbmcgZnJvbSBhIHRyYW5zYWN0aW9uIGlzIHJlcXVpcmVkIHRvIGJlIGRldGVybWluZWQgYmFzZWQgb24gdGhlIGVjb25vbWljIHN1YnN0YW5jZSBvZiB0aGUgdHJhbnNhY3Rpb24sIGFuZCBub3QgdGhlIHBhcnRpY3VsYXIgZm9ybSB0aGUgdHJhbnNhY3Rpb24gdXRpbGl6ZWQuIFRoaXMgZG9jdHJpbmUgaGFzIGJlZW4gaGlzdG9yaWNhbGx5IHV0aWxpemVkIGJ5IHRoZSBnb3Zlcm5tZW50IHRvIHRhcmdldCBzY2hlbWVzIHdoZXJlIHRheHBheWVycyBoYXZlIHB1cnBvc2VseSBtaXNjaGFyYWN0ZXJpemVkIGEgdHJhbnNhY3Rpb24gaW4gb3JkZXIgdG8gZGVyaXZlIGJlbmVmaWNpYWwgdGF4IHRyZWF0bWVudC4gVW5kZXIgdGhlIGp1c3RpZmljYXRpb24gZm91bmQgdW5kZXIgdGhpcyBkb2N0cmluZSwgY291cnRzIGhhdmUgYmVlbiBrbm93biB0byBpZ25vcmUgdGhlIGZvcm0gb2YgdGhlIHRyYW5zYWN0aW9uIHV0aWxpemVkIGFuZCB0aGVuIGZvY3VzIG9uIHRoZSB1bmRlcmx5aW5nIGVjb25vbWljIHN1YnN0YW5jZSBvZiB0aGUgdHJhbnNhY3Rpb24gaW4gZGV0ZXJtaW5pbmcgd2hhdCB0aGUgY291cnQgZGVlbXMgdG8gYmUgdGhlIHByb3BlciB0YXggY29uc2VxdWVuY2VzIG9mIGEgdHJhbnNhY3Rpb24uIjtzOjU6ImFsaWduIjtzOjA6IiI7czo5OiJjb2x1bW5fYmciO3M6MDoiIjtzOjEzOiJtYXJnaW5fYm90dG9tIjtzOjA6IiI7czo3OiJwYWRkaW5nIjtzOjA6IiI7czo3OiJhbmltYXRlIjtzOjA6IiI7czo3OiJjbGFzc2VzIjtzOjA6IiI7fX1pOjQ7YTozOntzOjQ6InR5cGUiO3M6NjoiY29sdW1uIjtzOjQ6InNpemUiO3M6MzoiMy81IjtzOjY6ImZpZWxkcyI7YTo4OntzOjU6InRpdGxlIjtzOjA6IiI7czo3OiJjb250ZW50IjtzOjIxOiI8aDI+U2VjdGlvbiAyNjk6PC9oMj4iO3M6NToiYWxpZ24iO3M6NDoibGVmdCI7czo5OiJjb2x1bW5fYmciO3M6MDoiIjtzOjEzOiJtYXJnaW5fYm90dG9tIjtzOjA6IiI7czo3OiJwYWRkaW5nIjtzOjA6IiI7czo3OiJhbmltYXRlIjtzOjA6IiI7czo3OiJjbGFzc2VzIjtzOjA6IiI7fX1pOjU7YTozOntzOjQ6InR5cGUiO3M6NjoiY29sdW1uIjtzOjQ6InNpemUiO3M6MzoiMS8xIjtzOjY6ImZpZWxkcyI7YTo4OntzOjU6InRpdGxlIjtzOjA6IiI7czo3OiJjb250ZW50IjtzOjgxMjoiQ29kZSBzZWN0aW9uIDI2OSB3YXMgaW1wbGVtZW50ZWQgdG8gaGFsdCB2YXJpb3VzIHBlcmNlaXZlZCB0YXggYXZvaWRhbmNlIGFidXNlcyBkdXJpbmcgV29ybGQgV2FyIElJLiBCZWNhdXNlIG9mIGV4dHJlbWVseSBoaWdoIHN1cnRheGVzIGFuZCBleGNlc3MgcHJvZml0IHRheGVzIHRoYXQgZXhpc3RlZCBhdCB0aGUgdGltZSBpdCBiZWNvbWUgdmVyeSBwb3B1bGFyIGZvciBhIHByb2ZpdGFibGUgY29ycG9yYXRpb24gdG8gYWNxdWlyZSBhIGxvc3MgY29ycG9yYXRpb24uIENvbnNlcXVlbnRseSwgwqcgMjY5KGEpIHByb3ZpZGVzIHRoYXQgaWYgYW4gaW5kaXZpZHVhbCBhY3F1aXJlcyBjb250cm9sIG9mIGEgY29ycG9yYXRpb24sIG9yIGlmIGEgY29ycG9yYXRpb24gYWNxdWlyZXMgdGhlIHByb3BlcnR5IG9mIGEgbm9uIGNvbnRyb2xsZWQgKGF0IHRoZSBzdG9ja2hvbGRlciBhbmQgY29ycG9yYXRlIGxldmVscykgdGhpcmQgcGFydHkgdGFyZ2V0IGNvcnBvcmF0aW9uIG9yIGl0cyBzdG9ja2hvbGRlcnMsIGlmIHRoZSBwcmluY2lwYWwgcHVycG9zZSBmb3IgdGhlIGFjcXVpc2l0aW9uIGlzIHRoZSBldmFzaW9uIG9yIGF2b2lkYW5jZSBvZiBpbmNvbWUgdGF4IHZpYSB0aGUgc2VjdXJpbmcgb2YgYSBkZWR1Y3Rpb24sIGNyZWRpdCwgb3Igb3RoZXIgYWxsb3dhbmNlIHdoaWNoIHRoZSBhY3F1aXJpbmcgaW5kaXZpZHVhbCBvciBjb3Jwb3JhdGlvbiB3b3VsZCBub3Qgb3RoZXJ3aXNlIGJlbmVmaXQgZnJvbSwgdGhlIGdvdmVybm1lbnQgbWF5IGRpc2FsbG93IHN1Y2ggZGVkdWN0aW9uLCBjcmVkaXQsIG9yIG90aGVyIGFsbG93YW5jZS4iO3M6NToiYWxpZ24iO3M6MDoiIjtzOjk6ImNvbHVtbl9iZyI7czowOiIiO3M6MTM6Im1hcmdpbl9ib3R0b20iO3M6MDoiIjtzOjc6InBhZGRpbmciO3M6MDoiIjtzOjc6ImFuaW1hdGUiO3M6MDoiIjtzOjc6ImNsYXNzZXMiO3M6MDoiIjt9fWk6NjthOjM6e3M6NDoidHlwZSI7czo2OiJjb2x1bW4iO3M6NDoic2l6ZSI7czozOiIxLzEiO3M6NjoiZmllbGRzIjthOjg6e3M6NToidGl0bGUiO3M6MDoiIjtzOjc6ImNvbnRlbnQiO3M6MTI1OToiPGgyPlBhc3NpdmUgTG9zc2VzOjwvaDI+DQoNCjxwPkdlbmVyYWxseSwgYSBwYXNzaXZlIGFjdGl2aXR5IGlzIGFueSBhY3Rpdml0eSB0aGF0IG1heSBiZSBjb25zaWRlcmVkIGEgdHJhZGUgb3IgYnVzaW5lc3Mgd2hlcmUgdGhlIHRheHBheWVyIGRvZXMgbm90IG1hdGVyaWFsbHkgcGFydGljaXBhdGUuIE1hdGVyaWFsIHBhcnRpY2lwYXRpb24gbWVhbnMgdGhhdCBhIHRheHBheWVyIGlzIGludm9sdmVkIGluIHRoZSBvcGVyYXRpb25zIG9mIHRoZSBhY3Rpdml0eSBvbiBhIHJlZ3VsYXIsIGNvbnRpbnVvdXMgYW5kIHN1YnN0YW50aWFsIGJhc2lzLiBUaGUgcGFydGljaXBhdGlvbiBsZXZlbCBpcyBkZXRlcm1pbmVkIG9uIGFuIGFubnVhbCBiYXNpcy4NCg0KPHA+UGFzc2l2ZSBhY3Rpdml0eSBleHBlbnNlcyBhbmQgbG9zc2VzIGFyZSB0aG9zZSBhdHRyaWJ1dGFibGUgdG8gcGFzc2l2ZSBhY3Rpdml0aWVzIHRoYXQgZ2VuZXJhdGUgaW5jb21lLiBTdWNoIGV4cGVuc2VzIGFuZCBsb3NzZXMgY2FuIG9ubHkgYmUgdXNlZCB0byBvZmZzZXQgaW5jb21lIGZyb20gcGFzc2l2ZSBhY3Rpdml0aWVzIHdpdGggb25lIGV4Y2VwdGlvbi4gRXhwZW5zZXMgYW5kIGxvc3NlcyB0aGF0IGV4Y2VlZCBwYXNzaXZlIGFjdGl2aXR5IGdyb3NzIGluY29tZSBtYXkgYmUgYXBwbGllZCByZXRyb2FjdGl2ZWx5IG9yIGNhcnJpZWQgZm9yd2FyZCB1bnRpbCBzdWNoIGV4Y2VzcyBpcyB1c2VkIHVwLiBQYXNzaXZlIGFjdGl2aXR5IGdyb3NzIGluY29tZSBpbmNsdWRlcyBnYWluIGZyb20gdGhlIGRpc3Bvc2l0aW9uIG9mIHByb3BlcnR5IHVzZWQgaW4gYSBwYXNzaXZlIGFjdGl2aXR5IGF0IHRoZSB0aW1lIG9mIHRoZSBkaXNwb3NpdGlvbi4gUGFzc2l2ZSBhY3Rpdml0eSBydWxlcyBhcHBseSB0byBpbmRpdmlkdWFscywgdHJ1c3RzLCBlc3RhdGVzLCBwZXJzb25hbCBzZXJ2aWNlIGNvcnBvcmF0aW9ucywgYW5kIGNsb3NlbHkgaGVsZCBDIGNvcnBvcmF0aW9ucywgYnV0IG5vdCBTIGNvcnBvcmF0aW9ucyBvciBwYXJ0bmVyc2hpcHMgYWx0aG91Z2ggdGhleSBhcHBseSB0byBwYXJ0bmVycyBhbmQgc2hhcmVob2xkZXJzIGF0IHRoZSBpbmRpdmlkdWFsIGxldmVsIHJlc3BlY3RpdmVseS4gTm90ZTogYSB0YXhwYXllciB3aG8gb3ducyBhbiBpbnRlcmVzdCBpbiBhbiBhY3Rpdml0eSBhcyBhIGxpbWl0ZWQgcGFydG5lciBpcyBub3QgdHJlYXRlZCBhcyBtYXRlcmlhbGx5IHBhcnRpY2lwYXRpbmcgaW4gdGhlIGFjdGl2aXR5IGJ5IGRlZmluaXRpb24uDQoiO3M6NToiYWxpZ24iO3M6MDoiIjtzOjk6ImNvbHVtbl9iZyI7czowOiIiO3M6MTM6Im1hcmdpbl9ib3R0b20iO3M6MDoiIjtzOjc6InBhZGRpbmciO3M6MDoiIjtzOjc6ImFuaW1hdGUiO3M6MDoiIjtzOjc6ImNsYXNzZXMiO3M6MDoiIjt9fWk6NzthOjM6e3M6NDoidHlwZSI7czo2OiJjb2x1bW4iO3M6NDoic2l6ZSI7czozOiIxLzEiO3M6NjoiZmllbGRzIjthOjg6e3M6NToidGl0bGUiO3M6MDoiIjtzOjc6ImNvbnRlbnQiO3M6NzA4NjoiPGgyPlBhc3NpdmUgTG9zc2VzOjwvaDI+DQoNCjxwPkdlbmVyYWxseSwgYSBwYXNzaXZlIGFjdGl2aXR5IGlzIGFueSBhY3Rpdml0eSB0aGF0IG1heSBiZSBjb25zaWRlcmVkIGEgdHJhZGUgb3IgYnVzaW5lc3Mgd2hlcmUgdGhlIHRheHBheWVyIGRvZXMgbm90IG1hdGVyaWFsbHkgcGFydGljaXBhdGUuIE1hdGVyaWFsIHBhcnRpY2lwYXRpb24gbWVhbnMgdGhhdCBhIHRheHBheWVyIGlzIGludm9sdmVkIGluIHRoZSBvcGVyYXRpb25zIG9mIHRoZSBhY3Rpdml0eSBvbiBhIHJlZ3VsYXIsIGNvbnRpbnVvdXMgYW5kIHN1YnN0YW50aWFsIGJhc2lzLiBUaGUgcGFydGljaXBhdGlvbiBsZXZlbCBpcyBkZXRlcm1pbmVkIG9uIGFuIGFubnVhbCBiYXNpcy4NCg0KPHA+UGFzc2l2ZSBhY3Rpdml0eSBleHBlbnNlcyBhbmQgbG9zc2VzIGFyZSB0aG9zZSBhdHRyaWJ1dGFibGUgdG8gcGFzc2l2ZSBhY3Rpdml0aWVzIHRoYXQgZ2VuZXJhdGUgaW5jb21lLiBTdWNoIGV4cGVuc2VzIGFuZCBsb3NzZXMgY2FuIG9ubHkgYmUgdXNlZCB0byBvZmZzZXQgaW5jb21lIGZyb20gcGFzc2l2ZSBhY3Rpdml0aWVzIHdpdGggb25lIGV4Y2VwdGlvbi4gRXhwZW5zZXMgYW5kIGxvc3NlcyB0aGF0IGV4Y2VlZCBwYXNzaXZlIGFjdGl2aXR5IGdyb3NzIGluY29tZSBtYXkgYmUgYXBwbGllZCByZXRyb2FjdGl2ZWx5IG9yIGNhcnJpZWQgZm9yd2FyZCB1bnRpbCBzdWNoIGV4Y2VzcyBpcyB1c2VkIHVwLiBQYXNzaXZlIGFjdGl2aXR5IGdyb3NzIGluY29tZSBpbmNsdWRlcyBnYWluIGZyb20gdGhlIGRpc3Bvc2l0aW9uIG9mIHByb3BlcnR5IHVzZWQgaW4gYSBwYXNzaXZlIGFjdGl2aXR5IGF0IHRoZSB0aW1lIG9mIHRoZSBkaXNwb3NpdGlvbi4gUGFzc2l2ZSBhY3Rpdml0eSBydWxlcyBhcHBseSB0byBpbmRpdmlkdWFscywgdHJ1c3RzLCBlc3RhdGVzLCBwZXJzb25hbCBzZXJ2aWNlIGNvcnBvcmF0aW9ucywgYW5kIGNsb3NlbHkgaGVsZCBDIGNvcnBvcmF0aW9ucywgYnV0IG5vdCBTIGNvcnBvcmF0aW9ucyBvciBwYXJ0bmVyc2hpcHMgYWx0aG91Z2ggdGhleSBhcHBseSB0byBwYXJ0bmVycyBhbmQgc2hhcmVob2xkZXJzIGF0IHRoZSBpbmRpdmlkdWFsIGxldmVsIHJlc3BlY3RpdmVseS4gTm90ZTogYSB0YXhwYXllciB3aG8gb3ducyBhbiBpbnRlcmVzdCBpbiBhbiBhY3Rpdml0eSBhcyBhIGxpbWl0ZWQgcGFydG5lciBpcyBub3QgdHJlYXRlZCBhcyBtYXRlcmlhbGx5IHBhcnRpY2lwYXRpbmcgaW4gdGhlIGFjdGl2aXR5IGJ5IGRlZmluaXRpb24uDQoNCjxoMj5BdCBSaXNrIFJ1bGVzOjwvaDI+DQo8cD5JbmRpdmlkdWFscywgcGFydG5lcnMsIFMgY29ycG9yYXRpb24gc2hhcmVob2xkZXJzLCBlc3RhdGVzLCB0cnVzdHMgYW5kIGNlcnRhaW4gY2xvc2VseSBoZWxkIEMgY29ycG9yYXRpb25zIGFyZSBzdWJqZWN0IHRvIHRoZSBhdC1yaXNrIHJ1bGVzLi
BVbmRlciB0aGUgYXQgcmlzayBydWxlcywgZGVkdWN0aW9ucyBmb3IgbG9zc2VzIHN0ZW1taW5nIGZyb20gYSB0cmFkZSBvciBidXNpbmVzcywgb3IgYW4gYWN0aXZpdHkgZm9yIHRoZSBwcm9kdWN0aW9uIG9mIGluY29tZSBhcmUgbGltaXRlZCB0byB0aGUgYW1vdW50IGF0IHJpc2suIFRoZSBhbW91bnQgYXQgcmlzayBpcyBiYXNpY2FsbHkgdGhlIGFtb3VudCBvZiBjYXBpdGFsIGFuZCB0aGUgYWRqdXN0ZWQgYmFzaXMgb2YgcHJvcGVydHkgY29udHJpYnV0ZWQgdG8gdGhlIGFjdGl2aXR5LiBBIHRheHBheWVyIGdlbmVyYWxseSBpcyBhbHNvIGF0IHJpc2sgZm9yIGFtb3VudHMgYm9ycm93ZWQgdG8gZnVuZCB0aGUgYnVzaW5lc3Mgb3IgaW52ZXN0bWVudCBhY3Rpdml0eSBpZiB0aGUgdGF4cGF5ZXIgaXMgcGVyc29uYWxseSBsaWFibGUgZm9yIHJlcGF5bWVudCBvciBoYXMgcGxlZGdlZCBwcm9wZXJ0eSB1bnJlbGF0ZWQgdG8gdGhlIGFjdGl2aXR5IHVuZGVyIGNvbnNpZGVyYXRpb24gYXMgY29sbGF0ZXJhbCB0byBzZWN1cml0aXplIGJvcnJvd2VkIGZ1bmRzIHVubGVzcyB0aGUgdGF4cGF5ZXIgaXMgaW4gcmVhbGl0eSBpbnN1bGF0ZWQgYWdhaW5zdCBsb3NzZXMuIEEgdGF4cGF5ZXIgbWF5IGFkZGl0aW9uYWxseSBiZSBhdCByaXNrIHdoZXJlIHF1YWxpZmllZCBub25yZWNvdXJzZSBmaW5hbmNpbmcgZm9yIHJlYWwgZXN0YXRlIGlzIHV0aWxpemVkLg0KDQo8aDI+UmVwb3J0YWJsZSBUcmFuc2FjdGlvbnM6PC9oMj4NClJlcG9ydGFibGUgdHJhbnNhY3Rpb25zIGFyZSB0cmFuc2FjdGlvbnMgdGhhdDoNCg0KPHVsPg0KICA8bGk+QXJlIHRoZSBzYW1lIG9yIHN1YnN0YW50aWFsbHkgc2ltaWxhciB0byB0cmFuc2FjdGlvbnMgaWRlbnRpZmllZCBhcyB0YXggYXZvaWRhbmNlIHRyYW5zYWN0aW9ucyBhbmQgcGVyaW9kaWNhbGx5IHB1Ymxpc2hlZCBieSB0aGUgSVJTIGFzIOKAnGxpc3RlZCB0cmFuc2FjdGlvbnPigJ0uPC9saT4NCiAgPGxpPlRyYW5zYWN0aW9ucyB0aGF0IGFyZSBvZmZlcmVkIHRvIGEgdGF4cGF5ZXIgdW5kZXIgY29uZGl0aW9ucyBvZiBjb25maWRlbnRpYWxpdHkgYW5kIGZvciB3aGljaCB0aGUgdGF4cGF5ZXIgaGFzIHBhaWQgYW4gYWR2aXNvciBhIG1pbmltdW0gZmVlLjwvbGk+DQogIDxsaT5BIHRyYW5zYWN0aW9uIHRoYXQgY29udGFpbnMgYSBjb250cmFjdHVhbCBwcm90ZWN0aW9uIGVudGl0bGluZyB0aGUgdGF4cGF5ZXIgdG8gYSBmdWxsIG9yIHBhcnRpYWwgcmVmdW5kIG9mIGZlZXMgaWYgYWxsIG9yIHBhcnQgb2YgdGhlIHByb2plY3RlZCB0YXggY29uc2VxdWVuY2VzIGZsb3dpbmcgZnJvbSB0aGUgdHJhbnNhY3Rpb24gYXJlIG5vdCBzdXN0YWluZWQgaWYgY2hhbGxlbmdlZC48L2xpPg0KICA8bGk+TG9zcyB0cmFuc2FjdGlvbnMgcmVzdWx0aW5nIGluIHRoZSB0YXhwYXllciBjbGFpbWluZyBhIGxvc3MgdW5kZXIgwqcgMTY1IChXYWdlcmluZywgdGhlZnQsIGNhcGl0YWwgYW5kIGRpc2FzdGVyIGxvc3Nlcykgb2YgJDEwIG1pbGxpb24gb3IgZ3JlYXRlciBpbiBhbnkgc2luZ2xlIHRheGFibGUgeWVhciBvciAkMjAgbWlsbGlvbiBpbiB0b3RhbCBpbiBhbnkgY29tYmluYXRpb24gb2YgdGF4YWJsZSB5ZWFycyBmb3IgY29ycG9yYXRpb25zLjwvbGk+DQogPGxpPlRyYW5zYWN0aW9ucyB0aGF0IGFyZSB0aGUgc2FtZSBhcyBvciBzdWJzdGFudGlhbGx5IHNpbWlsYXIgdG8gb25lIG9mIHRoZSB0eXBlcyBvZiB0cmFuc2FjdGlvbnMgdGhhdCB0aGUgSVJTIGhhcyBpZGVudGlmaWVkIGFuZCBsYWJlbGVkIGEg4oCcdHJhbnNhY3Rpb24gb2YgaW50ZXJlc3TigJ0uPC9saT4NCjwvdWw+DQoNCjxwPlNlZSBJUlMgd2Vic2l0ZSBhdDogPGEgaHJlZj0iaHR0cDovL3d3dy5pcnMuZ292L2luc3RydWN0aW9ucy9pODg4Ni9jaDAxLmh0bWwiPmh0dHA6Ly93d3cuaXJzLmdvdi9pbnN0cnVjdGlvbnMvaTg4ODYvY2gwMS5odG1sPC9hPg0KDQo8cD5BIHRyYW5zYWN0aW9uIG9mIGludGVyZXN0IGlzIGEgdHJhbnNhY3Rpb24gdGhhdCBpcyB0aGUgc2FtZSBhcyBvciBzdWJzdGFudGlhbGx5IHNpbWlsYXIgdG8gb25lIG9mIHRoZSB0eXBlcyBvZiB0cmFuc2FjdGlvbnMgdGhhdCB0aGUgSVJTIGhhcyBpZGVudGlmaWVkIGJ5IG5vdGljZSwgcmVndWxhdGlvbiwgb3Igb3RoZXIgZm9ybSBvZiBwdWJsaXNoZWQgZ3VpZGFuY2UgYXMgYSB0cmFuc2FjdGlvbiBvZiBpbnRlcmVzdC4gSXQgaXMgYSB0cmFuc2FjdGlvbiB0aGF0IHRoZSBJUlMgYW5kIFRyZWFzdXJ5IERlcGFydG1lbnQgYmVsaWV2ZSBoYXMgYSBwb3RlbnRpYWwgZm9yIHRheCBhdm9pZGFuY2Ugb3IgZXZhc2lvbiwgYnV0IGZvciB3aGljaCB0aGVyZSBpcyBub3QgZW5vdWdoIGluZm9ybWF0aW9uIHRvIGRldGVybWluZSBpZiB0aGUgdHJhbnNhY3Rpb24gc2hvdWxkIGJlIGlkZW50aWZpZWQgYXMgYSB0YXggYXZvaWRhbmNlIHRyYW5zYWN0aW9uLiBUaGUgcmVxdWlyZW1lbnQgdG8gZGlzY2xvc2UgdHJhbnNhY3Rpb25zIG9mIGludGVyZXN0IGFwcGxpZXMgdG8gdHJhbnNhY3Rpb25zIG9mIGludGVyZXN0IGVudGVyZWQgaW50byBhZnRlciBOb3ZlbWJlciAxLCAyMDA2LiBGb3IgZXhpc3RpbmcgZ3VpZGFuY2UsIHNlZSBOb3RpY2UgMjAwOS01NSwgMjAwOS0zMSBJLlIuQi4gMTcwLCBhdmFpbGFibGUgYXQgPGEgaHJlZj0iaHR0cDovL3d3dy5pcnMuZ292L3B1Yi9pcnMtaXJicy9pcmIwOS0zMS5wZGYiPmh0dHA6Ly93d3cuaXJzLmdvdi9wdWIvaXJzLWlyYnMvaXJiMDktMzEucGRmPC9hPi4gVGhlIElSUyBtYXkgaXNzdWUgYSBuZXcsIG9yIHVwZGF0ZSB0aGUgZXhpc3RpbmcsIG5vdGljZSwgcmVndWxhdGlvbiwgb3Igb3RoZXIgZm9ybSBvZiBndWlkYW5jZSB0aGF0IGlkZW50aWZpZXMgYSB0cmFuc2FjdGlvbiBhcyBhIHRyYW5zYWN0aW9uIG9mIGludGVyZXN0Lg0KDQo8aDI+TGlzdGVkIFRyYW5zYWN0aW9uczwvaDI+DQo8cD5UaGUgSVJTIGtlZXBzIGEgY3VycmVudCBsaXN0aW5nIG9mIHRheCBzaGVsdGVycyB0aGF0IGl0IGhhcyBkZWVtZWQgdG8gYmUgdGF4IGF2b2lkYW5jZSB0cmFuc2FjdGlvbnMuIFByYWN0aXRpb25lcnMgYW5kIHRheHBheWVycyBhcmUgbm90IHByb2hpYml0ZWQgZnJvbSBwYXJ0aWNpcGF0aW5nIGluIGxpc3RlZCB0cmFuc2FjdGlvbnMgYnV0IGNpdmlsIGFuZCBjcmltaW5hbCBjYXJlZXIgZW5kaW5nIGNvbnNlcXVlbmNlcyBjYW4gYmUgaW1wb3NlZCBvbiB0YXhwYXllcnMsIHByYWN0aXRpb25lcnMgYW5kIHByb21vdGVycyB0aGF0IGRvIG5vdCBkaXNjbG9zZSB0aGVpciBwYXJ0aWNpcGF0aW9uIGluIGEgbGlzdGVkIHRyYW5zYWN0aW9uIHdoZXJlIHRoZXkgYXJlIHJlcXVpcmVkIHRvLiBOb3RlOiBUaGUgSVJTIHJlcXVpcmVzIHRoYXQgYWxsIHBhcnRpY2lwYXRpb24gaW4gYW55IHRheCBzaGVsdGVyIHRoYXQgaGFzIHRoZSBwb3RlbnRpYWwgZm9yIHRheCBldmFzaW9uIG9yIGF2b2lkYW5jZSwgbGlzdGVkIG9yIHVubGlzdGVkLCBob3dldmVyIHRoZSBtb3N0IGRyYWNvbmlhbiBwZW5hbHRpZXMgc3Vycm91bmQgbm9uLWRpc2Nsb3N1cmUgb2YgcGFydGljaXBhdGlvbiBpbiBsaXN0ZWQgdHJhbnNhY3Rpb25zLiBUaGUgSVJTIGtlZXBzIGEgcmVhbCB0aW1lIGxpc3Qgb2Yg4oCcbGlzdGVkIHRyYW5zYWN0aW9ucyBvbiBpdHMgd2Vic2l0ZSB0aGF0IGNhbiBiZSBhY2Nlc3NlZCBoZXJlOiA8YSBocmVmPSJodHRwOi8vd3d3Lmlycy5nb3YvQnVzaW5lc3Nlcy9Db3Jwb3JhdGlvbnMvTGlzdGVkLVRyYW5zYWN0aW9uc+KAlExCJkktVGllci1JLUlzc3VlcyI+aHR0cDovL3d3dy5pcnMuZ292L0J1c2luZXNzZXMvQ29ycG9yYXRpb25zL0xpc3RlZC1UcmFuc2FjdGlvbnPigJRMQiZJLVRpZXItSS1Jc3N1ZXM8L2E+DQoNCjxoMj5UYXggU2hlbHRlcnM8L2gyPg0KPHA+VGhlIFRheCBDb3VydCBoYXMgY29uc2lzdGVudGx5IGRpc2FsbG93ZWQgbG9zc2VzLCBkZWR1Y3Rpb25zIGFuZCBjcmVkaXRzIGZyb20gdHJhbnNhY3Rpb25zIGl0IGRlZW1zIHRvIGJlIHRheCBzaGVsdGVycyB2aWEgYXR0YWNrIGFzIGEgc2hhbSB0cmFuc2FjdGlvbiwgb3IgYnkgbm90IHJlc3BlY3RpbmcgdGhlIGZvcm0gdGhlIHRyYW5zYWN0aW9ucyB0YWtlcyBhbmQgZGV0ZXJtaW5lcyB0aGUgYXNzb2NpYXRlZCBpbmNvbWUgdGF4IGNvbnNlcXVlbmNlcyBhY2NvcmRpbmdseS4gIFRvIGJlIHJlc3BlY3RlZCwgdHJhbnNhY3Rpb25zIGFyZSByZXF1aXJlZCB0byBiZSBtb3RpdmF0ZWQgYnkgYnVzaW5lc3MgY29uc2lkZXJhdGlvbnMgcmF0aGVyIHRoYW4gYnkgYXR0cmFjdGl2ZSB0YXggYXZvaWRhbmNlIGJlbmVmaXRzIG9idGFpbmVkIHZpYSB0aGUgdXNlIG9mIG1lYW5pbmdsZXNzIGxhYmVscy4NCg0KPHA+VGhlIFRheCBDb3VydCBoYXMgYWRvcHRlZCBhIHVuaWZpZWQgdGVzdCB0byBpZGVudGlmeSBnZW5lcmljIHRheCBzaGVsdGVycyBiYXNlZCBvbiB0aGUgZWNvbm9taWMgc3Vic3RhbmNlIGRvY3RyaW5lIGFuZCBmYWN0b3JzIGFzc29jaWF0ZWQgd2l0aCB0aGUgbm90IGZvciBwcm9maXQgcmVndWxhdGlvbnMuDQoNCjx1bD4NCiAgPGxpPlRoZSB0YXggY291cnQgZGVmaW5lcyBhIGdlbmVyaWMgdGF4IHNoZWx0ZXIgYXMgYSB0YXggc2hlbHRlciB0aGF0IGxhY2tzIHN0YXR1dG9yeSBhdXRob3JpdHkgYW5kIGhhcyB0aGUgZm9sbG93aW5nIHF1YWxpdGllczoNCjwvbGk+DQogIDxsaT5UaGUgbWFpbiBmb2N1cyBvZiB0aGUgYXNzb2NpYXRlZCBwcm9tb3Rpb25hbCBtYXRlcmlhbHMgc3Vycm91bmRlZCB0YXggYmVuZWZpdHMuDQo8L2xpPg0KICA8bGk+VGhlIHRheHBheWVycyB1dGlsaXppbmcgdGhlIHNoZWx0ZXIgYWNjZXB0ZWQgdGhlIHRlcm1zIG9mIHB1cmNoYXNlIHdpdGhvdXQgcHJpY2UgbmVnb3RpYXRpb24uDQo8L2xpPg0KICA8bGk+VGhlIGFzc2V0cyBwdXJjaGFzZWQgY29uc2lzdCBvZiBwcmVwYWNrYWdlZCBwcm9wZXJ0eSByaWdodHMgdGhhdCBhcmUgZGlmZmljdWx0IHRvIHZhbHVlIGluIHRoZSB0aGluIGFpciBlbnZpcm9ubWVudCBpbiB3aGljaCB0aGV5IGFyZSBzb2xkIGFuZCwgaW52YXJpYWJseSwgYXJlIHN1YnN0YW50aWFsbHkgb3ZlcnZhbHVlZCBpbiByZWxhdGlvbiB0byB0aGUgcHJvcGVydHkgcmlnaHRzIGFjdHVhbGx5IHB1cmNoYXNlZC4NCjwvbGk+DQogIDxsaT5UaGUgcHJvcGVydHkgcmlnaHRzIHdlcmUgYWNxdWlyZWQgb3IgY3JlYXRlZCBhdCBhIGNvbXBhcmF0aXZlbHkgbG93IGNvc3Qgc2hvcnRseSBiZWZvcmUgdGhlIHRyYW5zYWN0aW9ucyB1bmRlciBzY3J1dGlueS4NCjwvbGk+DQogIDxsaT5UaGUgY29uc2lkZXJhdGlvbiBpcyBkZWZlcnJlZCB2aWEgcHJvbWlzc29yeSBub3RlcyB0aGF0IGFyZSBvZnRlbiBub25yZWNvdXJzZSBpbiBmb3JtIG9yIGluIHN1YnN0YW5jZS4gIA0KPC9saT4NCiAgPGxpPlRyYW5zYWN0aW9ucyBpZGVudGlmaWVkIGFzIGdlbmVyaWMgdGF4IHNoZWx0ZXJzIGluIHRoZSBwYXN0IGhhdmUgaW5jbHVkZWQgaW52ZXN0bWVudHMgaW4gdGhlIGNhYmxlIHRlbGV2aXNpb24gaW5kdXN0cnksIG1hc3RlciBtdXNpYyByZWNvcmRpbmdzLCBpbnZlbnRpb25zLCBtaW5pbmcgYWN0aXZpdGllcywgZmlsbXMgcmlnaHRzLCBhcnQgcGFja2FnZXMsIHZpZGVvdGFwZSByZWNvcmRpbmdzLCBhbmQgbHV4dXJ5IHlhY2h0IGxlYXNpbmcgYXJyYW5nZW1lbnRzLg0KPC9saT4NCjwvdWw+IjtzOjU6ImFsaWduIjtzOjA6IiI7czo5OiJjb2x1bW5fYmciO3M6MDoiIjtzOjEzOiJtYXJnaW5fYm90dG9tIjtzOjA6IiI7czo3OiJwYWRkaW5nIjtzOjA6IiI7czo3OiJhbmltYXRlIjtzOjA6IiI7czo3OiJjbGFzc2VzIjtzOjA6IiI7fX19czo0OiJhdHRyIjthOjY6e3M6ODoiYmdfY29sb3IiO3M6MDoiIjtzOjg6ImJnX2ltYWdlIjtzOjA6IiI7czoxMToiYmdfcG9zaXRpb24iO3M6MjI6Im5vLXJlcGVhdDtjZW50ZXIgdG9wOzsiO3M6MTM6ImNvbHVtbl9tYXJnaW4iO3M6MDoiIjtzOjc6InBhZGRpbmciO3M6MDoiIjtzOjU6ImNsYXNzIjtzOjA6IiI7fX1pOjc7YTozOntzOjQ6InNpemUiO3M6MzoiMS8xIjtzOjU6Iml0ZW1zIjthOjM6e2k6MDthOjM6e3M6NDoidHlwZSI7czo2OiJjb2x1bW4iO3M6NDoic2l6ZSI7czozOiIzLzUiO3M6NjoiZmllbGRzIjthOjg6e3M6NToidGl0bGUiO3M6MDoiIjtzOjc6ImNvbnRlbnQiO3M6NTU6IjxoMj5SZXBvcnRhY
mxlIFRyYW5zYWN0aW9ucyBDaXZpbCBQZW5hbHR5IFJlZ2ltZXM6PC9oMj4iO3M6NToiYWxpZ24iO3M6NDoibGVmdCI7czo5OiJjb2x1bW5fYmciO3M6MDoiIjtzOjEzOiJtYXJnaW5fYm90dG9tIjtzOjA6IiI7czo3OiJwYWRkaW5nIjtzOjA6IiI7czo3OiJhbmltYXRlIjtzOjA6IiI7czo3OiJjbGFzc2VzIjtzOjA6IiI7fX1pOjE7YTozOntzOjQ6InR5cGUiO3M6NjoiY29sdW1uIjtzOjQ6InNpemUiO3M6MzoiMS8yIjtzOjY6ImZpZWxkcyI7YTo4OntzOjU6InRpdGxlIjtzOjA6IiI7czo3OiJjb250ZW50IjtzOjkyNjoiPHA+VGhlIENvZGUgcHJvdmlkZXMgZm9yIHNldmVyYWwgY2l2aWwgcGVuYWx0eSByZWdpbWVzIHRoYXQgd2VyZSBpbXBsZW1lbnRlZCBpbiBhbiBhdHRlbXB0IHRvIGdlbmVyYXRlIGFjY3VyYXRlIHJlcG9ydGluZyBvZiB0cmFuc2FjdGlvbnMgYnkgdGF4cGF5ZXJzIGFuZCBwcmFjdGl0aW9uZXJzLiBVbmRlciBzZWN0aW9uIDY2NjIoYSkgYSAyMCUgcGVuYWx0eSBpcyBpbXBvc2VkIG9uIGFueSBwb3J0aW9uIG9mIGFuIHVuZGVycGF5bWVudCB0aGF0IGlzIGF0dHJpYnV0YWJsZSB0byBuZWdsaWdlbmNlIHN1cnJvdW5kaW5nIHRoZSBhcHBsaWNhdGlvbiBvZiBjb2RpZmllZCBydWxlcyBvciByZWd1bGF0aW9ucy4gSXQgYWxzbyBhcHBsaWVzIHRvIHN1YnN0YW50aWFsIHVuZGVyc3RhdGVtZW50cyBvZiBpbmNvbWUgdGF4LCBvciBhIHN1YnN0YW50aWFsIHZhbHVhdGlvbiBvdmVyc3RhdGVtZW50LiBUaGlzIHBlbmFsdHkgaXMgaW5jcmVhc2VkIHRvIDQwJSB3aGVyZSBhIGdyb3NzIHZhbHVhdGlvbiBtaXNzdGF0ZW1lbnQgb2NjdXJzIGFuZCBpcyBjYWxjdWxhdGVkIG9uIDQwJSBvZiB0aGUgdmFsdWF0aW9uIHVuZGVyc3RhdGVtZW50LiBUaGUgNDAlIHBlbmFsdHkgYWxzbyBhcHBsaWVzIHRvIHVuZGlzY2xvc2VkIHRyYW5zYWN0aW9uIGRlZW1lZCB0byBsYWNrIGVjb25vbWljIHN1YnN0YW5jZSBhbmQgdG8gdW5kaXNjbG9zZWQgZm9yZWlnbiBmaW5hbmNpYWwgYXNzZXQgdW5kZXJzdGF0ZW1lbnRzLiBUaGVyZSBpcyBhIHBlbmFsdHkgcmVnaW1lIHN1cnJvdW5kaW5nIHJlcG9ydGFibGUgdHJhbnNhY3Rpb24gdW5kZXJzdGF0ZW1lbnRzIHRoYXQgaW5jcmVhc2Ugd2hlbiB0aGUgdW5kZXJyZXBvcnRpbmcgaXMgY291cGxlZCB3aXRoIG5vbi1kaXNjbG9zdXJlIGFuZCB3aGVyZSBmcmF1ZCBpcyBkZWVtZWQgdG8gaGF2ZSBvY2N1cnJlZC4iO3M6NToiYWxpZ24iO3M6MDoiIjtzOjk6ImNvbHVtbl9iZyI7czowOiIiO3M6MTM6Im1hcmdpbl9ib3R0b20iO3M6MDoiIjtzOjc6InBhZGRpbmciO3M6MDoiIjtzOjc6ImFuaW1hdGUiO3M6MDoiIjtzOjc6ImNsYXNzZXMiO3M6MDoiIjt9fWk6MjthOjM6e3M6NDoidHlwZSI7czo2OiJ2aXN1YWwiO3M6NDoic2l6ZSI7czozOiIxLzIiO3M6NjoiZmllbGRzIjthOjM6e3M6NToidGl0bGUiO3M6MDoiIjtzOjc6ImNvbnRlbnQiO3M6MTQ3OiI8cD48aWZyYW1lIHNyYz0iaHR0cHM6Ly93d3cueW91dHViZS5jb20vZW1iZWQvczdIRjFBTGFzcWciIHdpZHRoPSI1NjAiIGhlaWdodD0iMzE1IiBmcmFtZWJvcmRlcj0iMCIgYWxsb3dmdWxsc2NyZWVuPSJhbGxvd2Z1bGxzY3JlZW4iPjwvaWZyYW1lPjwvcD4iO3M6NzoiY2xhc3NlcyI7czowOiIiO319fXM6NDoiYXR0ciI7YTo2OntzOjg6ImJnX2NvbG9yIjtzOjA6IiI7czo4OiJiZ19pbWFnZSI7czowOiIiO3M6MTE6ImJnX3Bvc2l0aW9uIjtzOjIyOiJuby1yZXBlYXQ7Y2VudGVyIHRvcDs7IjtzOjEzOiJjb2x1bW5fbWFyZ2luIjtzOjA6IiI7czo3OiJwYWRkaW5nIjtzOjA6IiI7czo1OiJjbGFzcyI7czowOiIiO319aTo4O2E6Mzp7czo0OiJzaXplIjtzOjM6IjEvMSI7czo1OiJpdGVtcyI7YTo3OntpOjA7YTozOntzOjQ6InR5cGUiO3M6NjoiY29sdW1uIjtzOjQ6InNpemUiO3M6MzoiMy81IjtzOjY6ImZpZWxkcyI7YTo4OntzOjU6InRpdGxlIjtzOjA6IiI7czo3OiJjb250ZW50IjtzOjU1OiI8aDI+UG90ZW50aWFsIFRheCBQcmFjdGl0aW9uZXIgQ3JpbWluYWwgTGlhYmlsaXR5OjwvaDI+IjtzOjU6ImFsaWduIjtzOjQ6ImxlZnQiO3M6OToiY29sdW1uX2JnIjtzOjA6IiI7czoxMzoibWFyZ2luX2JvdHRvbSI7czowOiIiO3M6NzoicGFkZGluZyI7czowOiIiO3M6NzoiYW5pbWF0ZSI7czowOiIiO3M6NzoiY2xhc3NlcyI7czowOiIiO319aToxO2E6Mzp7czo0OiJ0eXBlIjtzOjY6InZpc3VhbCI7czo0OiJzaXplIjtzOjM6IjEvMiI7czo2OiJmaWVsZHMiO2E6Mzp7czo1OiJ0aXRsZSI7czowOiIiO3M6NzoiY29udGVudCI7czoxNDc6IjxwPjxpZnJhbWUgc3JjPSJodHRwczovL3d3dy55b3V0dWJlLmNvbS9lbWJlZC80RjFoT1pnaVJubyIgd2lkdGg9IjU2MCIgaGVpZ2h0PSIzMTUiIGZyYW1lYm9yZGVyPSIwIiBhbGxvd2Z1bGxzY3JlZW49ImFsbG93ZnVsbHNjcmVlbiI+PC9pZnJhbWU+PC9wPiI7czo3OiJjbGFzc2VzIjtzOjA6IiI7fX1pOjI7YTozOntzOjQ6InR5cGUiO3M6NjoiY29sdW1uIjtzOjQ6InNpemUiO3M6MzoiMS8yIjtzOjY6ImZpZWxkcyI7YTo4OntzOjU6InRpdGxlIjtzOjA6IiI7czo3OiJjb250ZW50IjtzOjEyNTM6IjxwPkl0IGlzIGltcG9ydGFudCB0byBlbXBoYXNpemUgdGhlIG9idmlvdXMsIHRoYXQgdGF4IGV2YXNpb24gaXMgYSB2ZXJ5IGRpZmZlcmVudCBjb25jZXB0IHRoYW4gdGF4IGF2b2lkYW5jZSBpcy4gVGF4IGF2b2lkYW5jZSBpbnZvbHZlcyB0aGUgY2FyZWZ1bCwgbGVnYWwgc3RydWN0dXJpbmcgb2Ygb25l4oCZcyBhZmZhaXJzIHNvIGhpcyBvciBoZXIgdGF4IGxpYWJpbGl0eSBpcyBsZWdhbGx5IHJlZHVjZWQgb3IgbWluaW1pemVkLiBUYXggYXZvaWRhbmNlIGlzIGxlZ2FsLiBBcyBvbmUgZmFtb3VzIGp1ZGdlIHB1dCBpdCwg4oCcb25lIG1heSBzbyBhcnJhbmdlIGhpcyBhZmZhaXJzIHRoYXQgaGlzIHRheGVzIHNoYWxsIGJlIGFzIGxvdyBhcyBwb3NzaWJsZTsgaGUgaXMgbm90IGJvdW5kIHRvIGNob29zZSB0aGF0IHBhdHRlcm4gd2hpY2ggd2lsbCBiZXN0IHBheSB0aGUgVHJlYXN1cnk7IHRoZXJlIGlzIG5vdCBldmVuIGEgcGF0cmlvdGljIGR1dHkgdG8gaW5jcmVhc2Ugb25l4oCZcyB0YXhlcy7igJ0gSGVsdmVyaW5nIHYuIEdyZWdvcnksIDY5IEYuMmQgODA5LCA4MTAtMTEgKDJkIENpci4gMTkzNCkuIFRheCBldmFzaW9uLCBieSBjb250cmFzdCwgaXMgbm90IGxlZ2FsIGFuZCBpdCBpbnZvbHZlcyB0aGUgd2lsbGZ1bCBhdHRlbXB0IHRvIGF2b2lkIHBheWluZyBvbmXigJlzIHRheCBsaWFiaWxpdHkgYWZ0ZXIgaXQgaGFzIGJlZW4gaW5jdXJyZWQuDQoNCjxwPkEgdGF4IHByYWN0aXRpb25lciBjYW4gYmUgZm91bmQgZ3VpbHR5IHRvIHRoZSBzYW1lIGV4dGVudCBhcyB0aGUgdGF4cGF5ZXIgd2hvIGFjdHVhbGx5IG93ZXMgdGhlIHRheGVzLiBUaGlzIGlzIGJlY2F1c2UgdGhlIHNjb3BlIG9mIHRheCBldmFzaW9uIGlzIGRlZmluZWQgYnJvYWRseSBpbiBTZWN0aW9uIDcyMDEuIFNwZWNpZmljYWxseSwgU2VjdGlvbiA3MjAxIHByb3ZpZGVzIHRoYXQgdGF4IGV2YXNpb24gaW5jbHVkZXMgYSBwZXJzb27igJlzIGF0dGVtcHQg4oCcaW4gYW55IG1hbm5lcuKAneKAlGluY2x1ZGluZyBoZWxwaW5nIGFub3RoZXLigJTigJx0byBldmFkZSBvciBkZWZlYXQgYW55IHRheOKAnSBvciBpdHMgcGF5bWVudCAoZW1waGFzaXMgYWRkZWQpLiBUaHVzLCB0aGUgc3RhdHV0ZSBhbGxvd3MgdGhlIElSUyB0byBwcm9zZWN1dGUgYW55IHBlcnNvbiBmb3IgdGhlIGV2YXNpb24gb2YgYW5vdGhlcuKAmXMgdGF4IGxpYWJpbGl0eS4gVGhlIGRlZmVuZGFudCBuZWVkIG5vdCBiZSB0aGUgdGF4cGF5ZXIgaW4gcXVlc3Rpb24uIjtzOjU6ImFsaWduIjtzOjA6IiI7czo5OiJjb2x1bW5fYmciO3M6MDoiIjtzOjEzOiJtYXJnaW5fYm90dG9tIjtzOjA6IiI7czo3OiJwYWRkaW5nIjtzOjA6IiI7czo3OiJhbmltYXRlIjtzOjA6IiI7czo3OiJjbGFzc2VzIjtzOjA6IiI7fX1pOjM7YTozOntzOjQ6InR5cGUiO3M6NjoiY29sdW1uIjtzOjQ6InNpemUiO3M6MzoiMS8xIjtzOjY6ImZpZWxkcyI7YTo4OntzOjU6InRpdGxlIjtzOjA6IiI7czo3OiJjb250ZW50IjtzOjMxOTA6IjxwPlRvIHN1Y2Nlc3NmdWxseSBwcm9zZWN1dGUgYSB2aW9sYXRpb24gb2YgdGhlIGFpZGluZyBvciBhc3Npc3RpbmcgcHJvdmlzaW9ucyBmb3IgYWlkaW5nIG9yIGFzc2lzdGluZyBhbm90aGVyIHRvIGZpbGUgYSBmYWxzZSBmb3JtLCB0aGUgZ292ZXJubWVudCBtdXN0IHByb3ZlIGJleW9uZCBhIHJlYXNvbmFibGUgZG91YnQgdGhhdDoNCjx1bD4NCiAgPGxpPlRoZSBkZWZlbmRhbnQgYWlkZWQsIGFzc2lzdGVkLCBwcm9jdXJlZCwgY291bnNlbGVkLCBvciBhZHZpc2VkIHRoZSBwcmVwYXJhdGlvbiBvciBwcmVzZW50YXRpb24gb2YgYSBkb2N1bWVudDsNCjwvbGk+DQogIDxsaT5UaGUgZG9jdW1lbnQgd2FzIGZhbHNlIGFzIHRvIGEgbWF0ZXJpYWwgbWF0dGVyOyBhbmQNCjwvbGk+DQogIDxsaT5UaGUgZGVmZW5kYW50IGFjdGVkIHdpbGxmdWxseS4NCjwvbGk+DQo8L3VsPg0KDQo8cD5DaGFyZ2VzIHVuZGVyIHRoaXMgcHJvdmlzaW9uIGFyZSBtb3N0IG9mdGVuIGJyb3VnaHQgYWdhaW5zdCwgYWNjb3VudGFudHMsIGJvb2trZWVwZXJzIGFuZCBvdGhlcnMgKGluY2x1ZGluZyBhbiBlbnRpdHnigJlzIGVtcGxveWVlcykgd2hvIHByZXBhcmUgb3IgYXNzaXN0IGluIHRoZSBwcmVwYXJhdGlvbiBvZiB0YXggcmV0dXJucy4gSG93ZXZlciwgdGhlIHN0YXR1dGUgaXMgbm90IGxpbWl0ZWQgc29sZWx5IHRvIHRoZSBkaXJlY3QgcHJlcGFyYXRpb24gb2YgYSByZXR1cm4sIGJ1dCBpcyBhY3R1YWxseSBtdWNoIGJyb2FkZXIgaW4gdGhhdCB0aGUgc3RhdHV0ZSByZWFjaGVzIGFueSBpbnRlbnRpb25hbCBjb25kdWN0IHRoYXQgY29udHJpYnV0ZXMgdG8gdGhlIHByZXNlbnRhdGlvbiBvZiBhIGZhbHNlIGRvY3VtZW50IHRvIHRoZSBJUlMuDQoNCjxwPlRvIGJlIGNoYXJnZWQgdW5kZXIgdGhlc2UgcHJvdmlzaW9ucywgb25lIG5lZWQgb25seSBhc3Npc3QgaW4gdGhlIHByZXBhcmF0aW9uIG9mLCBhbmQgbmVlZCBub3Qgc2lnbiBvciBmaWxlLCB0aGUgYWN0dWFsIGZhbHNlIGRvY3VtZW50LiBUaGUgc3RhdHV0ZSBoYXMgdGh1cyBiZWVuIGFwcGxpZWQgdG8gaW5kaXZpZHVhbHMgd2hvIGNvbW11bmljYXRlIGZhbHNlIGluZm9ybWF0aW9uIHRvIHRoZWlyIHJldHVybiBwcmVwYXJlcnMsIHRoZXJlYnkgY2F1c2luZyB0aGUgdGF4IHByZXBhcmVyIHRvIGZpbGUgYSBmYWxzZSByZXR1cm4uIE9uIHRoZSBvdGhlciBoYW5kLCB0aGUgc3RhdHV0ZSBzcGVjaWZpY2FsbHkgcHJvdmlkZXMgdGhhdCB0aGUgdGF4cGF5ZXIgd2hvIHNpZ25zIGFuZCBmaWxlcyB0aGUgcmV0dXJuIG9yIGRvY3VtZW50IG5lZWQgbm90IGtub3cgb2YsIG9yIGNvbnNlbnQgdG8sIHRoZSBmYWxzZSBzdGF0ZW1lbnQgZm9yIHRoZSBhaWRpbmcgYW5kIGFiZXR0aW5nIHN0YXR1ZSB0byBiZSBicm91Z2h0IGFnYWluc3QgdGhlIHByZXBhcmVyLiBGb3IgZXhhbXBsZSwgYSB0YXggcHJlcGFyZXIgd2hvIGluZmxhdGVzIGRlZHVjdGlvbnMgdW5kZXJzdGF0ZXMgaW5jb21lLCBvciBjbGFpbXMgZmFsc2UgY3JlZGl0cyBvbiBhIGNsaWVudOKAmXMgcmV0dXJuIG1heSBiZSBjaGFyZ2VkIHdpdGggYWlkaW5nIGFuZCBhYmV0dGluZyBldmVuIGlmIHRoZSB0YXhwYXllciBmb3Igd2hvbSB0aGUgcmV0dXJuIGlzIHByZXBhcmVkIGlzIHVuYXdhcmUgb2YgdGhlIGZhbHNpdHkgb2YgdGhlIHJldHVybiBoZSBzaWduZWQgYW5kIGZpbGVkLiBNb3Jlb3ZlciwgYSB0YXggcHJlcGFyZXIgd2hvIHV0aWxpemVzIGluZm9ybWF0aW9uIHByb3ZpZGVkIGJ5IGEgY2xpZW50IHRoYXQgdGhlIHByZXBhcmVyIGtub3dzIHRvIGJlIGZhbHNlLCBpbiB0aGUgcHJlcGFyYXRpb24gb2YgYSByZXR1cm4gY2FuIGJlIGNyaW1pbmFsbHkgY2hhcmdlZCB3aXRoIGFzc2lzdGluZyBpbiB0aGUgcHJlcGFyYXRpb24gb2YgYSBmYWxzZSByZXR1cm4uDQoNCjxwPlRoZSBjb3VydHMgdGhhdCBoYXZlIHJ1bGVkIG9uIHdoYXQgY29uc3RpdHV0ZXMgYSBtYXRlcmlhbCBtYXR0ZXIgaGF2ZSBoZWxkIG1hdGVyaWFsaXR5IHRvIGJlIGEgbWF0dGVyIG9mIGxhdyB0byBiZSBkZWNpZGVkIGJ5IHRoZSBjb3VydCBhbmQgbm90IGEgZmFjdHVhbCBp
c3N1ZSB0byBiZSBkZWNpZGVkIGJ5IHRoZSBqdXJ5Lg0KDQo8cD5UbyBlc3RhYmxpc2ggd2lsbGZ1bG5lc3MgaW4gdGhlIGRlbGl2ZXJ5IG9yIGRpc2Nsb3N1cmUgb2YgYSBmYWxzZSBkb2N1bWVudCwgdGhlIGdvdmVybm1lbnQgbmVlZCBvbmx5IHNob3cgdGhhdCB0aGUgYWNjdXNlZCBrbmV3IHRoYXQgdGhlIGxhdyByZXF1aXJlZCBhIHRydXRoZnVsIGRvY3VtZW50IHRvIGJlIHN1Ym1pdHRlZCBhbmQgdGhhdCBoZSBvciBzaGUgaW50ZW50aW9uYWxseSB2aW9sYXRlZCB0aGUgZHV0eSB0byBiZSB0cnV0aGZ1bC4gVGhlIGNyaW1lIG9mIGFpZGluZyBvciBhc3Npc3RpbmcgaW4gdGhlIHByZXBhcmF0aW9uIG9yIHByZXNlbnRhdGlvbiBvZiBhIGZhbHNlIHJldHVybiBvciBkb2N1bWVudCByZXF1aXJlcyB0aGF0IHRoZSBkZWZlbmRhbnTigJlzIGFjdGlvbnMgYmUgd2lsbGZ1bCBpbiB0aGF0IHRoZSBkZWZlbmRhbnQga25ldyBvciBiZWxpZXZlZCB0aGF0IGhpcyBvciBoZXIgYWN0aW9ucyB3ZXJlIGxpa2VseSB0byBsZWFkIHRvIHRoZSBmaWxpbmcgb2YgYSBmYWxzZSByZXR1cm4uIFRoZSBOaW50aCBDaXJjdWl0IGhhcyBoZWxkIHRoYXQgdGhlIGdvdmVybm1lbnQgbXVzdCBwcm92ZSBub3Qgb25seSB0aGF0IHRoZSBhY2N1c2VkIGtuZXcgdGhhdCB0aGUgY29uZHVjdCB3b3VsZCByZXN1bHQgaW4gYSBmYWxzZSByZXR1cm4sIGJ1dCBtdXN0IGFkZGl0aW9uYWxseSBlc3RhYmxpc2ggdGhhdCB0YXggZnJhdWQgd2FzIGluIGZhY3QgdGhlIG9iamVjdGl2ZSBvZiB0aGUgYWxsZWdlZGx5IGNyaW1pbmFsIGNvbmR1Y3QuDQoNCjxwPlRoZSBzdGF0dXRlIG9mIGxpbWl0YXRpb25zIGZvciB0aGUgY3JpbWUgb2YgYWlkaW5nIG9yIGFzc2lzdGluZyB0aGUgcHJlcGFyYXRpb24gb3IgcHJlc2VudGF0aW9uIG9mIGEgZmFsc2UgcmV0dXJuIG9yIG90aGVyIGRvY3VtZW50IGlzIHNpeCB5ZWFycy4gVGhlIHN0YXR1dGUgb2YgbGltaXRhdGlvbnMgZm9yIGNoYXJnZXMgaW52b2x2aW5nIGRlbGl2ZXJ5IG9yIGRpc2Nsb3N1cmUgb2YgYSBmYWxzZSBkb2N1bWVudCBzdGFydHMgdG8gcnVuIGZyb20gdGhlIGRhdGUgdGhlIGRvY3VtZW50IGlzIGRpc2Nsb3NlZCBvciBzdWJtaXR0ZWQgdG8gdGhlIElSUy4iO3M6NToiYWxpZ24iO3M6MDoiIjtzOjk6ImNvbHVtbl9iZyI7czowOiIiO3M6MTM6Im1hcmdpbl9ib3R0b20iO3M6MDoiIjtzOjc6InBhZGRpbmciO3M6MDoiIjtzOjc6ImFuaW1hdGUiO3M6MDoiIjtzOjc6ImNsYXNzZXMiO3M6MDoiIjt9fWk6NDthOjM6e3M6NDoidHlwZSI7czo2OiJjb2x1bW4iO3M6NDoic2l6ZSI7czozOiIxLzIiO3M6NjoiZmllbGRzIjthOjg6e3M6NToidGl0bGUiO3M6MDoiIjtzOjc6ImNvbnRlbnQiO3M6MTAxNDoiPGg1PkV4YW1wbGVzIG9mIGV2YXNpb24gb2YgYXNzZXNzbWVudCB0eXBlIGNvbnZpY3Rpb25zIG9mIHByYWN0aXRpb25lcnM6PC9oNT4NCg0KPHA+SW4gUi5KLiBSdWJsZSwgREMgTi5ZLiwgMjAwOS0yIHVzdGMsIGEgd2VsbC1rbm93biBhdHRvcm5leSB3YXMgY29udmljdGVkIG9mIGluY29tZSB0YXggZXZhc2lvbiBmb3IgZGVzaWduaW5nIGFuZCBtYXJrZXRpbmcgYSB0YXggc2hlbHRlci4gVGhlIGdvdmVybm1lbnQgcHJvdmVkIHRoYXQgYXR0b3JuZXkgZWl0aGVyIGtuZXcgb3IgYWx0ZXJuYXRpdmVseSBjb25zY2lvdXNseSBkaXNyZWdhcmRlZCB0aGUgZmFjdCB0aGF0IHRoZSB0YXggc2hlbHRlciBoZSBkZXNpZ25lZCBhbmQgbWFya2V0ZWQgbGFja2VkIGVjb25vbWljIHN1YnN0YW5jZS4gVGhlcmUgd2FzIG5vIGJ1c2luZXNzIHB1cnBvc2UgdG8gZW1wbG95IHRoZSBzaGVsdGVyIG90aGVyIHRoYW4gdG8gb2J0YWluIGEgdGF4IGJlbmVmaXQsIGFuZCB0aGF0IHRoZXJlIHdhcyBubyByZWFzb25hYmxlIHByb2JhYmlsaXR5IHRoYXQgdGhlIHNoZWx0ZXIgd291bGQgcmVzdWx0IGluIGFueSBwcm9maXQgYXBhcnQgZnJvbSB0aGUgYW50aWNpcGF0ZWQgdGF4IGJlbmVmaXRzLg0KDQo8cD5FeHBvc3VyZSBvZiBUYXggUHJhY3RpdGlvbmVycyB0byDigJxhaWRpbmcgb3IgYXNzaXN0aW5nIGEgZmFsc2UgcmV0dXJu4oCdIHVuZGVyIElSQyDCpyA3MjA2KDIpOg0KDQpUaGUgY3JpbWUga25vd24gYXMg4oCcYWlkaW5nIG9yIGFzc2lzdGluZyBhIGZhbHNlIHJldHVybuKAnSBpcyBjb2RpZmllZCBpbiBJUkMgwqcgNzIwNigyKSwgd2hpY2ggZXNzZW50aWFsbHkgbWFrZXMgaXQgYSBmZWxvbnkgZm9yIHNvbWVvbmUgdG8g4oCcd2lsbGZ1bGx5IGFpZCAuIC4gLiBhc3Npc3QsIHByb2N1cmUsIGNvdW5zZWwsIG9yIGFkdmlzZeKAnSBzb21lb25lIGluIHRoZSBwcmVwYXJhdGlvbiBvZiBhIGRvY3VtZW50IChlLmcuIGEgdGF4IGRvY3VtZW50KSB0aGF0IGlzIOKAnG1hdGVyaWFsbHnigJ0gZmFsc2UuIjtzOjU6ImFsaWduIjtzOjA6IiI7czo5OiJjb2x1bW5fYmciO3M6MDoiIjtzOjEzOiJtYXJnaW5fYm90dG9tIjtzOjA6IiI7czo3OiJwYWRkaW5nIjtzOjA6IiI7czo3OiJhbmltYXRlIjtzOjA6IiI7czo3OiJjbGFzc2VzIjtzOjA6IiI7fX1pOjU7YTozOntzOjQ6InR5cGUiO3M6NjoidmlzdWFsIjtzOjQ6InNpemUiO3M6MzoiMS8yIjtzOjY6ImZpZWxkcyI7YTozOntzOjU6InRpdGxlIjtzOjA6IiI7czo3OiJjb250ZW50IjtzOjE0NzoiPHA+PGlmcmFtZSBzcmM9Imh0dHBzOi8vd3d3LnlvdXR1YmUuY29tL2VtYmVkL2hUOU5IR3hsbDFZIiB3aWR0aD0iNTYwIiBoZWlnaHQ9IjMxNSIgZnJhbWVib3JkZXI9IjAiIGFsbG93ZnVsbHNjcmVlbj0iYWxsb3dmdWxsc2NyZWVuIj48L2lmcmFtZT48L3A+IjtzOjc6ImNsYXNzZXMiO3M6MDoiIjt9fWk6NjthOjM6e3M6NDoidHlwZSI7czo2OiJjb2x1bW4iO3M6NDoic2l6ZSI7czozOiIxLzEiO3M6NjoiZmllbGRzIjthOjg6e3M6NToidGl0bGUiO3M6MDoiIjtzOjc6ImNvbnRlbnQiO3M6MTQyNjoiPHA+QnJva2VuIHVwIGludG8gaXRzIGVsZW1lbnRzLCB0aGUgZ292ZXJubWVudCBtdXN0IHByb3ZlIGZpdmUgdGhpbmdzLCBlYWNoIG9uZSBiZXlvbmQgYSByZWFzb25hYmxlIGRvdWJ0OiAoMSkgdGhlIGRlZmVuZGFudCBhaWRlZCwgYXNzaXN0ZWQsIHByb2N1cmVkLCBjb3Vuc2VsZWQsIG9yIGFkdmlzZWQgYW5vdGhlciBpbiB0aGUgcHJlcGFyYXRpb24gb2YgYSB0YXggcmV0dXJuIChvciBhbm90aGVyIGRvY3VtZW50IGluIGNvbm5lY3Rpb24gd2l0aCBhIG1hdHRlciBhcmlzaW5nIHVuZGVyIHRoZSB0YXggbGF3cyk7ICgyKSB0aGF0IHRheCByZXR1cm4gKG9yIG90aGVyIGRvY3VtZW50KSBmYWxzZWx5IHN0YXRlZCBzb21ldGhpbmc7ICgzKSB0aGUgZGVmZW5kYW50IGtuZXcgdGhhdCB0aGUgc3RhdGVtZW50IHdhcyBmYWxzZTsgKDQpIHRoZSBmYWxzZSBzdGF0ZW1lbnQgd2FzIHJlZ2FyZGluZyBhIOKAnG1hdGVyaWFs4oCdIG1hdHRlcjsgYW5kICg1KSB0aGUgZGVmZW5kYW50IGFpZGVkLCBhc3Npc3RlZCBldGMuIGFub3RoZXIgd2lsbGZ1bGx5ICh0aGF0IGlzLCB3aXRoIHRoZSBpbnRlbnQgdG8gdmlvbGF0ZSBhIGtub3duIGxlZ2FsIGR1dHkpLg0KDQo8cD5PbmUgdGhpbmtzIGhlcmUgb2YgYSBDUEEsIGVucm9sbGVkIGFnZW50LCBvciBvdGhlciB0YXggcHJlcGFyZXIgd2hvIGlzIHRyeWluZyB0byBoZWxwIGhpcyBvciBoZXIgY2xpZW50IHBheSBsZXNzIHRheCwgYnV0IHRoYXQgcGVyc29uICh0aGUgdGF4cGF5ZXIgaGltc2VsZiBvciBoZXJzZWxmKSB3YXMgbm90IGludm9sdmVkIGluIHRoZSB0YXggcHJlcGFyYXRpb24gcHJvY2Vzcy4gQnV0IHRoZSB0YXggY3JpbWUgb2YgYWlkaW5nIGFub3RoZXIgdG8gcHJlcGFyZSBhIGZhbHNlIGRvY3VtZW50IGNhcHR1cmVzIG1vcmUgdGhhbiBqdXN0IENQQXMgYW5kIGVucm9sbGVkIGFnZW50cy4gSXQgaW5jbHVkZXMgYW55b25lIHdobyBwcmVwYXJlcyBmYWxzZSBkb2N1bWVudHPigJRmb3IgZXhhbXBsZSwgYW4gYXBwcmFpc2VyIHdobyB2YWx1ZXMgYSBidXNpbmVzcyBpbnRlcmVzdCBmb3IgdGF4IHB1cnBvc2VzLCBvciBhIHRheCBzaGVsdGVyIHByb21vdGVyLiBBbiBhcHByYWlzZXIgbWlnaHQgaGF2ZSB0byBkaXNjZXJuIHRoZSB2YWx1ZSBvZiBhIHBhcnRpYWwgaW50ZXJlc3QgaW4gYSBidXNpbmVzcyBvciBvdGhlciBhc3NldCBjb250cmlidXRlZCB0byBhIGNoYXJpdHkuIEFuIGluZmxhdGVkIHZhbHVlIHdvdWxkIGFjaGlldmUgYSBoaWdoZXIgY2hhcml0YWJsZSBkZWR1Y3Rpb24gdG8gdGhlIHRheHBheWVyLCBidXQgaWYgdGhhdCB2YWx1ZSBpcyBub3QgZGVmZW5zaWJsZSwgdGhlIGFwcHJhaXNlciBjb3VsZCBiZSBjaGFyZ2VkIHdpdGgg4oCcYWlkaW5nIGluIHRoZSBwcmVwYXJhdGlvbiBvZiBhIGZhbHNlIHJldHVybuKAnSB1bmRlciDCpyA3MjA2KDIpLiI7czo1OiJhbGlnbiI7czowOiIiO3M6OToiY29sdW1uX2JnIjtzOjA6IiI7czoxMzoibWFyZ2luX2JvdHRvbSI7czowOiIiO3M6NzoicGFkZGluZyI7czowOiIiO3M6NzoiYW5pbWF0ZSI7czowOiIiO3M6NzoiY2xhc3NlcyI7czowOiIiO319fXM6NDoiYXR0ciI7YTo2OntzOjg6ImJnX2NvbG9yIjtzOjA6IiI7czo4OiJiZ19pbWFnZSI7czowOiIiO3M6MTE6ImJnX3Bvc2l0aW9uIjtzOjIyOiJuby1yZXBlYXQ7Y2VudGVyIHRvcDs7IjtzOjEzOiJjb2x1bW5fbWFyZ2luIjtzOjA6IiI7czo3OiJwYWRkaW5nIjtzOjA6IiI7czo1OiJjbGFzcyI7czowOiIiO319fX19