<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<!DOCTYPE bugzilla SYSTEM "https://bugs.webkit.org/page.cgi?id=bugzilla.dtd">

<bugzilla version="5.0.4.1"
          urlbase="https://bugs.webkit.org/"
          
          maintainer="admin@webkit.org"
>

    <bug>
          <bug_id>68824</bug_id>
          
          <creation_ts>2011-09-26 12:05:01 -0700</creation_ts>
          <short_desc>[MutationObservers] implement MutationRecord</short_desc>
          <delta_ts>2011-09-26 18:43:49 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>DOM</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>68729</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Adam Klein">adamk</reporter>
          <assigned_to name="Adam Klein">adamk</assigned_to>
          <cc>ap</cc>
    
    <cc>arv</cc>
    
    <cc>darin</cc>
    
    <cc>mjs</cc>
    
    <cc>ojan</cc>
    
    <cc>sam</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>473276</commentid>
    <comment_count>0</comment_count>
    <who name="Adam Klein">adamk</who>
    <bug_when>2011-09-26 12:05:01 -0700</bug_when>
    <thetext>[MutationObservers] implement MutationRecord</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>473362</commentid>
    <comment_count>1</comment_count>
      <attachid>108719</attachid>
    <who name="Adam Klein">adamk</who>
    <bug_when>2011-09-26 13:59:36 -0700</bug_when>
    <thetext>Created attachment 108719
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>473372</commentid>
    <comment_count>2</comment_count>
      <attachid>108719</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2011-09-26 14:07:49 -0700</bug_when>
    <thetext>Comment on attachment 108719
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=108719&amp;action=review

&gt; Source/WebCore/dom/MutationRecord.h:90
&gt; +    enum MutationTypeFlag {
&gt; +        ChildListFlag = 1 &lt;&lt; 0,
&gt; +        AttributesFlag = 1 &lt;&lt; 1,
&gt; +        CharacterDataFlag = 1 &lt;&lt; 2
&gt; +    };

If these are three mutually exclusive values, then why are we shifting to make them separate bits? It seems this should just be a normal enum.

&gt; Source/WebCore/dom/MutationRecord.h:91
&gt; +    MutationTypeFlag typeFlag() { return m_typeFlag; }

I don’t understand the use of the word “flag” here.

&gt; Source/WebCore/dom/MutationRecord.h:115
&gt; +    void* m_extraData;

Since we’re already paying the cost of an object for this data, seems we should just spend one more pointer in size and have this be OwnPtr&lt;Data&gt; and have all three of the specific classes inherit from a Data (or ExtraData or MutationData) base class with a virtual destructor. If we did that we would not need the code in ~MutationRecord and we would be properly doing adoptPtr next to each new inside the class&apos;s implementation.

&gt; Source/WebCore/dom/MutationRecord.idl:41
&gt; +        readonly attribute DOMString type;
&gt; +        readonly attribute Node      target;
&gt; +
&gt; +        readonly attribute NodeList  addedNodes;
&gt; +        readonly attribute NodeList  removedNodes;
&gt; +        readonly attribute Node      previousSibling;
&gt; +        readonly attribute Node      nextSibling;

These should not be lined up with extra spaces. We don’t do that kind of lining up in new WebKit code, even though some old IDL files have that format.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>473395</commentid>
    <comment_count>3</comment_count>
      <attachid>108719</attachid>
    <who name="Adam Klein">adamk</who>
    <bug_when>2011-09-26 14:38:09 -0700</bug_when>
    <thetext>Comment on attachment 108719
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=108719&amp;action=review

&gt;&gt; Source/WebCore/dom/MutationRecord.h:90
&gt;&gt; +    };
&gt; 
&gt; If these are three mutually exclusive values, then why are we shifting to make them separate bits? It seems this should just be a normal enum.

Though they&apos;re mutually exclusive in their use in this class, they&apos;re not mutually exclusive in other cases (this is one thing that&apos;d be clearer if I sent this all-in-one instead of in pieces):
 When observing a node, a single MutationObserver may be listening to multiple types of changes (say, both &apos;childList&apos; and &apos;attributes&apos;). That registration will store a mask of (ChildListFlag &amp; AttributesFlag), and that mask will be ORed with the MutationRecord::typeFlag() when deciding whether to deliver a given record to a registered observer.

Would it be clearer if I moved this enum out of MutationRecord.h?

&gt;&gt; Source/WebCore/dom/MutationRecord.h:91
&gt;&gt; +    MutationTypeFlag typeFlag() { return m_typeFlag; }
&gt; 
&gt; I don’t understand the use of the word “flag” here.

It&apos;s the same use of &quot;flag&quot; as Node::NodeFlags.  Do you have another suggestion?

&gt;&gt; Source/WebCore/dom/MutationRecord.h:115
&gt;&gt; +    void* m_extraData;
&gt; 
&gt; Since we’re already paying the cost of an object for this data, seems we should just spend one more pointer in size and have this be OwnPtr&lt;Data&gt; and have all three of the specific classes inherit from a Data (or ExtraData or MutationData) base class with a virtual destructor. If we did that we would not need the code in ~MutationRecord and we would be properly doing adoptPtr next to each new inside the class&apos;s implementation.

The &quot;cost&quot; of an object for this data is just the pointer, but if you&apos;re fine with paying a little more memory for a little more type safety (there are still plenty of &quot;unsafe&quot; casts), I agree that providing an ExtraData base class is cleaner.

Done, and added a templated extraData() accessor to avoid putting static_cast&lt;Foo*&gt;(m_foo.get()) everywhere.

&gt;&gt; Source/WebCore/dom/MutationRecord.idl:41
&gt;&gt; +        readonly attribute Node      nextSibling;
&gt; 
&gt; These should not be lined up with extra spaces. We don’t do that kind of lining up in new WebKit code, even though some old IDL files have that format.

Removed extra spaces.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>473397</commentid>
    <comment_count>4</comment_count>
      <attachid>108724</attachid>
    <who name="Adam Klein">adamk</who>
    <bug_when>2011-09-26 14:39:40 -0700</bug_when>
    <thetext>Created attachment 108724
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>473408</commentid>
    <comment_count>5</comment_count>
    <who name="Adam Klein">adamk</who>
    <bug_when>2011-09-26 14:51:00 -0700</bug_when>
    <thetext>See also https://bugs.webkit.org/attachment.cgi?id=106218&amp;action=review for approximately what the usage of this class will be (though there have been some API changes since that patch was written).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>473434</commentid>
    <comment_count>6</comment_count>
      <attachid>108719</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2011-09-26 15:18:16 -0700</bug_when>
    <thetext>Comment on attachment 108719
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=108719&amp;action=review

&gt;&gt;&gt; Source/WebCore/dom/MutationRecord.h:90
&gt;&gt;&gt; +    };
&gt;&gt; 
&gt;&gt; If these are three mutually exclusive values, then why are we shifting to make them separate bits? It seems this should just be a normal enum.
&gt; 
&gt; Though they&apos;re mutually exclusive in their use in this class, they&apos;re not mutually exclusive in other cases (this is one thing that&apos;d be clearer if I sent this all-in-one instead of in pieces):
&gt;  When observing a node, a single MutationObserver may be listening to multiple types of changes (say, both &apos;childList&apos; and &apos;attributes&apos;). That registration will store a mask of (ChildListFlag &amp; AttributesFlag), and that mask will be ORed with the MutationRecord::typeFlag() when deciding whether to deliver a given record to a registered observer.
&gt; 
&gt; Would it be clearer if I moved this enum out of MutationRecord.h?

Yes, I think it would. If this type is a “flags” type because of its use elsewhere, then it should probably not be a member.

&gt;&gt;&gt; Source/WebCore/dom/MutationRecord.h:91
&gt;&gt;&gt; +    MutationTypeFlag typeFlag() { return m_typeFlag; }
&gt;&gt; 
&gt;&gt; I don’t understand the use of the word “flag” here.
&gt; 
&gt; It&apos;s the same use of &quot;flag&quot; as Node::NodeFlags.  Do you have another suggestion?

My confusion here is caused by reusing the flag enum typedef restricted to a single flag to identify the type of a record. That probably merits a “why” comment. The word “flag” alone raises a question about why we have a type flag instead of just a type. If we want to retain this design, it might improve clarity to use the name typeAsFlag.

It’s analogous to using a set to store a single value. Because we have plenty of extra bits, the extra cost of storing a set is not an issue, but the conceptual muddle is still there.

And to be pedantic, it’s not the same as the use in Node, because there it’s “flags” not “flag” and these issues do not arise.

&gt;&gt;&gt; Source/WebCore/dom/MutationRecord.h:115
&gt;&gt;&gt; +    void* m_extraData;
&gt;&gt; 
&gt;&gt; Since we’re already paying the cost of an object for this data, seems we should just spend one more pointer in size and have this be OwnPtr&lt;Data&gt; and have all three of the specific classes inherit from a Data (or ExtraData or MutationData) base class with a virtual destructor. If we did that we would not need the code in ~MutationRecord and we would be properly doing adoptPtr next to each new inside the class&apos;s implementation.
&gt; 
&gt; The &quot;cost&quot; of an object for this data is just the pointer, but if you&apos;re fine with paying a little more memory for a little more type safety (there are still plenty of &quot;unsafe&quot; casts), I agree that providing an ExtraData base class is cleaner.
&gt; 
&gt; Done, and added a templated extraData() accessor to avoid putting static_cast&lt;Foo*&gt;(m_foo.get()) everywhere.

You say it’s “just the pointer”, but that’s not right. The cost of storing data in a separate “extra data field” is both the pointer in the mutation record and the memory allocator overhead for the extra data block. Making the extra data block one pointer larger seems affordable to me. If we really wanted to keep things to the absolute minimum, then I think we’d want to find some way to store the data in line in the main object, analogous to how a StringImpl stores its string data. It&apos;s fairly ugly to do that, though. The class CSSSelector does it and so does the CSSPrimitiveValue class, but neither is quite so complicated as this class.

Hmm, since MutationRecord objects are immutable, why don’t we make MutationRecord itself a polymorphic class? That would clean up the design a lot and save a memory block. It would make the accessor functions slower because they would be virtual function calls, but that seems worthwhile.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>473521</commentid>
    <comment_count>7</comment_count>
      <attachid>108719</attachid>
    <who name="Adam Klein">adamk</who>
    <bug_when>2011-09-26 16:28:36 -0700</bug_when>
    <thetext>Comment on attachment 108719
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=108719&amp;action=review

&gt;&gt;&gt;&gt; Source/WebCore/dom/MutationRecord.h:90
&gt;&gt;&gt;&gt; +    };
&gt;&gt;&gt; 
&gt;&gt;&gt; If these are three mutually exclusive values, then why are we shifting to make them separate bits? It seems this should just be a normal enum.
&gt;&gt; 
&gt;&gt; Though they&apos;re mutually exclusive in their use in this class, they&apos;re not mutually exclusive in other cases (this is one thing that&apos;d be clearer if I sent this all-in-one instead of in pieces):
&gt;&gt;  When observing a node, a single MutationObserver may be listening to multiple types of changes (say, both &apos;childList&apos; and &apos;attributes&apos;). That registration will store a mask of (ChildListFlag &amp; AttributesFlag), and that mask will be ORed with the MutationRecord::typeFlag() when deciding whether to deliver a given record to a registered observer.
&gt;&gt; 
&gt;&gt; Would it be clearer if I moved this enum out of MutationRecord.h?
&gt; 
&gt; Yes, I think it would. If this type is a “flags” type because of its use elsewhere, then it should probably not be a member.

Okay, I&apos;ll move it to its own file.

&gt;&gt;&gt;&gt; Source/WebCore/dom/MutationRecord.h:91

&gt;&gt;&gt; 
&gt;&gt;&gt; I don’t understand the use of the word “flag” here.
&gt;&gt; 
&gt;&gt; It&apos;s the same use of &quot;flag&quot; as Node::NodeFlags.  Do you have another suggestion?
&gt; 
&gt; My confusion here is caused by reusing the flag enum typedef restricted to a single flag to identify the type of a record. That probably merits a “why” comment. The word “flag” alone raises a question about why we have a type flag instead of just a type. If we want to retain this design, it might improve clarity to use the name typeAsFlag.
&gt; 
&gt; It’s analogous to using a set to store a single value. Because we have plenty of extra bits, the extra cost of storing a set is not an issue, but the conceptual muddle is still there.
&gt; 
&gt; And to be pedantic, it’s not the same as the use in Node, because there it’s “flags” not “flag” and these issues do not arise.

I think what I&apos;ll do for now is to avoid exposing this directly for now, and wait to expose it in a later patch that makes use of MutationRecords, leaving this patch to just be the basic implementation of MutationRecord.idl.

&gt;&gt;&gt;&gt; Source/WebCore/dom/MutationRecord.h:115
&gt;&gt;&gt;&gt; +    void* m_extraData;
&gt;&gt;&gt; 
&gt;&gt;&gt; Since we’re already paying the cost of an object for this data, seems we should just spend one more pointer in size and have this be OwnPtr&lt;Data&gt; and have all three of the specific classes inherit from a Data (or ExtraData or MutationData) base class with a virtual destructor. If we did that we would not need the code in ~MutationRecord and we would be properly doing adoptPtr next to each new inside the class&apos;s implementation.
&gt;&gt; 
&gt;&gt; The &quot;cost&quot; of an object for this data is just the pointer, but if you&apos;re fine with paying a little more memory for a little more type safety (there are still plenty of &quot;unsafe&quot; casts), I agree that providing an ExtraData base class is cleaner.
&gt;&gt; 
&gt;&gt; Done, and added a templated extraData() accessor to avoid putting static_cast&lt;Foo*&gt;(m_foo.get()) everywhere.
&gt; 
&gt; You say it’s “just the pointer”, but that’s not right. The cost of storing data in a separate “extra data field” is both the pointer in the mutation record and the memory allocator overhead for the extra data block. Making the extra data block one pointer larger seems affordable to me. If we really wanted to keep things to the absolute minimum, then I think we’d want to find some way to store the data in line in the main object, analogous to how a StringImpl stores its string data. It&apos;s fairly ugly to do that, though. The class CSSSelector does it and so does the CSSPrimitiveValue class, but neither is quite so complicated as this class.
&gt; 
&gt; Hmm, since MutationRecord objects are immutable, why don’t we make MutationRecord itself a polymorphic class? That would clean up the design a lot and save a memory block. It would make the accessor functions slower because they would be virtual function calls, but that seems worthwhile.

I was getting to the same conclusion myself, having made an ExtraData class, and agree that we may as well just make MutationRecord an abstract base class. 

This brings up the code organization question. There shouldn&apos;t be any need to manipulate the subtypes directly (they all have exactly the same interface), so one approach would be to make a MutationRecordFactory that generates each of the subclasses.  Or they could just each have their own header files, and ::create() methods.  Which would you prefer?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>473529</commentid>
    <comment_count>8</comment_count>
    <who name="Adam Klein">adamk</who>
    <bug_when>2011-09-26 16:43:10 -0700</bug_when>
    <thetext>To answer my own question re: code organization, I think I&apos;ll just keep the same interface as before (MutationRecord::createChildList/createCharacterData/createAttributes) and implement the subclasses in an anonymous namespace in MutationRecord.cpp.  Patch coming soon.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>473549</commentid>
    <comment_count>9</comment_count>
      <attachid>108757</attachid>
    <who name="Adam Klein">adamk</who>
    <bug_when>2011-09-26 17:05:06 -0700</bug_when>
    <thetext>Created attachment 108757
Polymorphic, no MutationTypeFlag</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>473553</commentid>
    <comment_count>10</comment_count>
      <attachid>108757</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2011-09-26 17:15:52 -0700</bug_when>
    <thetext>Comment on attachment 108757
Polymorphic, no MutationTypeFlag

View in context: https://bugs.webkit.org/attachment.cgi?id=108757&amp;action=review

&gt; Source/WebCore/dom/MutationRecord.cpp:61
&gt; +    virtual const AtomicString&amp; type();
&gt; +    virtual NodeList* addedNodes() { return m_addedNodes.get(); }
&gt; +    virtual NodeList* removedNodes() { return m_removedNodes.get(); }
&gt; +    virtual Node* previousSibling() { return m_previousSibling.get(); }
&gt; +    virtual Node* nextSibling() { return m_nextSibling.get(); }

These can be private.

&gt; Source/WebCore/dom/MutationRecord.cpp:83
&gt; +    virtual const AtomicString&amp; type();
&gt; +    virtual const AtomicString&amp; attributeName() { return m_attributeName; }
&gt; +    virtual const AtomicString&amp; attributeNamespace() { return m_attributeName; }
&gt; +    virtual String oldValue() { return m_oldValue; }
&gt; +    virtual void setOldValue(const String&amp; val) { m_oldValue = val; }

These can be private.

We normally discourage use of abbreviations that are not words, so prefer value over &quot;val&quot;.

&gt; Source/WebCore/dom/MutationRecord.cpp:100
&gt; +    virtual const AtomicString&amp; type();
&gt; +    virtual String oldValue() { return m_oldValue; }
&gt; +    virtual void setOldValue(const String&amp; val) { m_oldValue = val; }

These can be private.

We normally discourage use of abbreviations that are not words, so prefer value over &quot;val&quot;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>473555</commentid>
    <comment_count>11</comment_count>
      <attachid>108757</attachid>
    <who name="Adam Klein">adamk</who>
    <bug_when>2011-09-26 17:20:05 -0700</bug_when>
    <thetext>Comment on attachment 108757
Polymorphic, no MutationTypeFlag

View in context: https://bugs.webkit.org/attachment.cgi?id=108757&amp;action=review

&gt;&gt; Source/WebCore/dom/MutationRecord.cpp:61
&gt;&gt; +    virtual Node* nextSibling() { return m_nextSibling.get(); }
&gt; 
&gt; These can be private.

Done

&gt;&gt; Source/WebCore/dom/MutationRecord.cpp:83
&gt;&gt; +    virtual void setOldValue(const String&amp; val) { m_oldValue = val; }
&gt; 
&gt; These can be private.
&gt; 
&gt; We normally discourage use of abbreviations that are not words, so prefer value over &quot;val&quot;.

Done

&gt;&gt; Source/WebCore/dom/MutationRecord.cpp:100
&gt;&gt; +    virtual void setOldValue(const String&amp; val) { m_oldValue = val; }
&gt; 
&gt; These can be private.
&gt; 
&gt; We normally discourage use of abbreviations that are not words, so prefer value over &quot;val&quot;.

Done</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>473558</commentid>
    <comment_count>12</comment_count>
      <attachid>108759</attachid>
    <who name="Adam Klein">adamk</who>
    <bug_when>2011-09-26 17:20:22 -0700</bug_when>
    <thetext>Created attachment 108759
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>473623</commentid>
    <comment_count>13</comment_count>
      <attachid>108759</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-09-26 18:43:44 -0700</bug_when>
    <thetext>Comment on attachment 108759
Patch for landing

Clearing flags on attachment: 108759

Committed r96064: &lt;http://trac.webkit.org/changeset/96064&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>473624</commentid>
    <comment_count>14</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-09-26 18:43:49 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>108719</attachid>
            <date>2011-09-26 13:59:36 -0700</date>
            <delta_ts>2011-09-26 16:28:36 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-68824-20110926135935.patch</filename>
            <type>text/plain</type>
            <size>29240</size>
            <attacher name="Adam Klein">adamk</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTU5NjgKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NN
YWtlTGlzdHMudHh0IGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKaW5kZXggZTc5ODM4
MGNiNWQxYTcwZDUxYWE0ODg2NmQyMTllNDVkMmEyMzYwZC4uZGNmNmU0MWZlNmM0OWVmZGJlZDU2
ZWIyMzM3YzRjNjk1ZDE0MDVmNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0
cy50eHQKKysrIGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKQEAgLTE2Myw2ICsxNjMs
NyBAQCBTRVQoV2ViQ29yZV9JRExfRklMRVMKICAgICBkb20vTWVzc2FnZVBvcnQuaWRsCiAgICAg
ZG9tL01vdXNlRXZlbnQuaWRsCiAgICAgZG9tL011dGF0aW9uRXZlbnQuaWRsCisgICAgZG9tL011
dGF0aW9uUmVjb3JkLmlkbAogICAgIGRvbS9OYW1lZE5vZGVNYXAuaWRsCiAgICAgZG9tL05vZGVG
aWx0ZXIuaWRsCiAgICAgZG9tL05vZGUuaWRsCkBAIC01NDcsNiArNTQ4LDcgQEAgU0VUKFdlYkNv
cmVfU09VUkNFUwogICAgIGRvbS9Nb3VzZUV2ZW50LmNwcAogICAgIGRvbS9Nb3VzZVJlbGF0ZWRF
dmVudC5jcHAKICAgICBkb20vTXV0YXRpb25FdmVudC5jcHAKKyAgICBkb20vTXV0YXRpb25SZWNv
cmQuY3BwCiAgICAgZG9tL05hbWVkTm9kZU1hcC5jcHAKICAgICBkb20vTmFtZU5vZGVMaXN0LmNw
cAogICAgIGRvbS9Ob2RlLmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9n
IGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IGY3M2VhY2UzYWZjMmFlOGI1MTNhM2M4
ZTBjOTg5MTc5OThiNTU1YmQuLmI2MmFlZmRhMGRjYTY1ODA2M2M4ZWZlZDZhNDExOTVhYzFiYWY4
YjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSw0OCBAQAorMjAxMS0wOS0yNiAgQWRhbSBLbGVpbiAg
PGFkYW1rQGNocm9taXVtLm9yZz4KKworICAgICAgICBbTXV0YXRpb25PYnNlcnZlcnNdIGltcGxl
bWVudCBNdXRhdGlvblJlY29yZAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9Njg4MjQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICBJbXBsZW1lbnRzIE11dGF0aW9uUmVjb3JkIGFzIHNwZWNpZmllZCBpbiB0aGUg
dGhyZWFkIGF0CisgICAgICAgIGh0dHA6Ly9saXN0cy53My5vcmcvQXJjaGl2ZXMvUHVibGljL3B1
YmxpYy13ZWJhcHBzLzIwMTFKdWxTZXAvMTYyMi5odG1sLAorICAgICAgICBpbmNsdWRpbmcgc29t
ZSBtaW5vciBuYW1pbmcgY2hhbmdlcyBmcm9tIHRoZSBvcmlnaW5hbCBwcm9wb3NhbC4KKworICAg
ICAgICBUaGlzIGlzIGEgc21hbGwgcGFydCBvZiB0aGUgTXV0YXRpb25PYnNlcnZlciBBUEksIHNl
ZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Njg3Mjkg
Zm9yIHRoZSBtZXRhYnVnIGNvdmVyaW5nCisgICAgICAgIHRoaXMgZmVhdHVyZS4KKworICAgICAg
ICBObyBuZXcgdGVzdHMgYXMgdGhpcyBpc24ndCB5ZXQgZXhwb3NlZCB0byB0aGUgcGxhdGZvcm0u
CisKKyAgICAgICAgKiBDTWFrZUxpc3RzLnR4dDoKKyAgICAgICAgKiBEZXJpdmVkU291cmNlcy5j
cHA6CisgICAgICAgICogRGVyaXZlZFNvdXJjZXMubWFrZToKKyAgICAgICAgKiBHTlVtYWtlZmls
ZS5saXN0LmFtOgorICAgICAgICAqIFdlYkNvcmUuZ3lwaToKKyAgICAgICAgKiBXZWJDb3JlLnBy
bzoKKyAgICAgICAgKiBXZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvajoKKyAgICAgICAgKiBX
ZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogZG9tL011dGF0aW9u
UmVjb3JkLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpNdXRhdGlvblJlY29yZDo6Y3Jl
YXRlQ2hpbGRMaXN0KToKKyAgICAgICAgKFdlYkNvcmU6Ok11dGF0aW9uUmVjb3JkOjpjcmVhdGVB
dHRyaWJ1dGVzKToKKyAgICAgICAgKFdlYkNvcmU6Ok11dGF0aW9uUmVjb3JkOjpjcmVhdGVDaGFy
YWN0ZXJEYXRhKToKKyAgICAgICAgKFdlYkNvcmU6Ok11dGF0aW9uUmVjb3JkOjp0eXBlKToKKyAg
ICAgICAgKFdlYkNvcmU6Ok11dGF0aW9uUmVjb3JkOjpvbGRWYWx1ZSk6CisgICAgICAgIChXZWJD
b3JlOjpNdXRhdGlvblJlY29yZDo6c2V0T2xkVmFsdWUpOgorICAgICAgICAoV2ViQ29yZTo6TXV0
YXRpb25SZWNvcmQ6Ok11dGF0aW9uUmVjb3JkKToKKyAgICAgICAgKFdlYkNvcmU6Ok11dGF0aW9u
UmVjb3JkOjp+TXV0YXRpb25SZWNvcmQpOgorICAgICAgICAqIGRvbS9NdXRhdGlvblJlY29yZC5o
OiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6Ok11dGF0aW9uUmVjb3JkOjp0YXJnZXQpOgorICAg
ICAgICAoV2ViQ29yZTo6TXV0YXRpb25SZWNvcmQ6OmFkZGVkTm9kZXMpOgorICAgICAgICAoV2Vi
Q29yZTo6TXV0YXRpb25SZWNvcmQ6OnJlbW92ZWROb2Rlcyk6CisgICAgICAgIChXZWJDb3JlOjpN
dXRhdGlvblJlY29yZDo6cHJldmlvdXNTaWJsaW5nKToKKyAgICAgICAgKFdlYkNvcmU6Ok11dGF0
aW9uUmVjb3JkOjpuZXh0U2libGluZyk6CisgICAgICAgIChXZWJDb3JlOjpNdXRhdGlvblJlY29y
ZDo6YXR0cmlidXRlTmFtZSk6CisgICAgICAgIChXZWJDb3JlOjpNdXRhdGlvblJlY29yZDo6YXR0
cmlidXRlTmFtZXNwYWNlKToKKyAgICAgICAgKFdlYkNvcmU6Ok11dGF0aW9uUmVjb3JkOjp0eXBl
RmxhZyk6CisgICAgICAgICogZG9tL011dGF0aW9uUmVjb3JkLmlkbDogQWRkZWQuCisKIDIwMTEt
MDktMjMgIFNpbW9uIEZyYXNlciAgPHNpbW9uLmZyYXNlckBhcHBsZS5jb20+CiAKICAgICAgICAg
UmVwYWludCB0ZXN0cyBkb24ndCB3b3JrIGluIFdlYktpdDIKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2Vz
LmNwcAppbmRleCA4YTQ1OTg2YWZmZWJmNTI0ZTE0YWQ5OGIxMTdkZjgxM2I1MGQxNmJmLi44NGYw
Mjk0N2M5MjA4OTllYTE2NDE5OTU2NGI0ZmYxYWEyOTU0ZjFhIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9EZXJpdmVkU291cmNlcy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNv
dXJjZXMuY3BwCkBAIC0yNDUsNiArMjQ1LDcgQEAKICNpbmNsdWRlICJKU01ldGFkYXRhQ2FsbGJh
Y2suY3BwIgogI2luY2x1ZGUgIkpTTW91c2VFdmVudC5jcHAiCiAjaW5jbHVkZSAiSlNNdXRhdGlv
bkV2ZW50LmNwcCIKKyNpbmNsdWRlICJKU011dGF0aW9uUmVjb3JkLmNwcCIKICNpbmNsdWRlICJK
U05hbWVkTm9kZU1hcC5jcHAiCiAjaW5jbHVkZSAiSlNOYXZpZ2F0b3IuY3BwIgogI2luY2x1ZGUg
IkpTTmF2aWdhdG9yVXNlck1lZGlhRXJyb3IuY3BwIgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvRGVyaXZlZFNvdXJjZXMubWFrZSBiL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1h
a2UKaW5kZXggZGY4MDkxMzYwZDcwNjdmNzNlNGQwMmExOTRiNzdkN2VhYTlkNWE0ZS4uNzJmNDdl
NGZkMTJhODNhMDY4MTliMWJhYWJmODFmMjBkYmU3MzExYSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZQorKysgYi9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291
cmNlcy5tYWtlCkBAIC0yOTgsNiArMjk4LDcgQEAgRE9NX0NMQVNTRVMgPSBcCiAgICAgTWV0YWRh
dGFDYWxsYmFjayBcCiAgICAgTW91c2VFdmVudCBcCiAgICAgTXV0YXRpb25FdmVudCBcCisgICAg
TXV0YXRpb25SZWNvcmQgXAogICAgIE5hbWVkTm9kZU1hcCBcCiAgICAgTmF2aWdhdG9yIFwKICAg
ICBOYXZpZ2F0b3JVc2VyTWVkaWFFcnJvciBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9H
TlVtYWtlZmlsZS5saXN0LmFtIGIvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbQpp
bmRleCA0MTBjYWNmNTA0MDJiYjMyNjY0YTI5NzIyYjQ2ZjJiZjliM2JhYzFiLi5kZDY2OThkZjEw
ZDU0NTc1MjI1NmIzODc0YTQ0OGQxYmEzOTE5ZDJkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9HTlVtYWtlZmlsZS5saXN0LmFtCisrKyBiL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxp
c3QuYW0KQEAgLTM3Niw2ICszNzYsOCBAQCB3ZWJjb3JlX2J1aWx0X3NvdXJjZXMgKz0gXAogCURl
cml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNNb3VzZUV2ZW50LmggXAogCURlcml2ZWRTb3VyY2VzL1dl
YkNvcmUvSlNNdXRhdGlvbkV2ZW50LmNwcCBcCiAJRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU011
dGF0aW9uRXZlbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU011dGF0aW9uUmVjb3Jk
LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU011dGF0aW9uUmVjb3JkLmggXAogCURl
cml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNOYW1lZE5vZGVNYXAuY3BwIFwKIAlEZXJpdmVkU291cmNl
cy9XZWJDb3JlL0pTTmFtZWROb2RlTWFwLmggXAogCURlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNO
YXZpZ2F0b3IuY3BwIFwKQEAgLTEyMjEsNiArMTIyMyw4IEBAIHdlYmNvcmVfc291cmNlcyArPSBc
CiAJU291cmNlL1dlYkNvcmUvZG9tL01vdXNlUmVsYXRlZEV2ZW50LmggXAogCVNvdXJjZS9XZWJD
b3JlL2RvbS9NdXRhdGlvbkV2ZW50LmNwcCBcCiAJU291cmNlL1dlYkNvcmUvZG9tL011dGF0aW9u
RXZlbnQuaCBcCisJU291cmNlL1dlYkNvcmUvZG9tL011dGF0aW9uUmVjb3JkLmNwcCBcCisJU291
cmNlL1dlYkNvcmUvZG9tL011dGF0aW9uUmVjb3JkLmggXAogCVNvdXJjZS9XZWJDb3JlL2RvbS9O
YW1lZE5vZGVNYXAuY3BwIFwKIAlTb3VyY2UvV2ViQ29yZS9kb20vTmFtZWROb2RlTWFwLmggXAog
CVNvdXJjZS9XZWJDb3JlL2RvbS9OYW1lTm9kZUxpc3QuY3BwIFwKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaSBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQppbmRl
eCA3NmY0ZTY1NTcxMjQwYzA2ZTNjNDQyYTk3NzU2NDkzOTE4MzZkNDQ2Li5lMGM5NWJiYWE0NmVi
MDcyMTdkNjVkM2VmNzQzZGM4N2NlMTc1NmU3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9X
ZWJDb3JlLmd5cGkKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCkBAIC0xMTg1LDYg
KzExODUsNyBAQAogICAgICAgICAgICAgJ2RvbS9NZXNzYWdlUG9ydC5pZGwnLAogICAgICAgICAg
ICAgJ2RvbS9Nb3VzZUV2ZW50LmlkbCcsCiAgICAgICAgICAgICAnZG9tL011dGF0aW9uRXZlbnQu
aWRsJywKKyAgICAgICAgICAgICdkb20vTXV0YXRpb25SZWNvcmQuaWRsJywKICAgICAgICAgICAg
ICdkb20vTmFtZWROb2RlTWFwLmlkbCcsCiAgICAgICAgICAgICAnZG9tL05vZGUuaWRsJywKICAg
ICAgICAgICAgICdkb20vTm9kZUZpbHRlci5pZGwnLApAQCAtNTE5OSw2ICs1MjAwLDggQEAKICAg
ICAgICAgICAgICdkb20vTW91c2VSZWxhdGVkRXZlbnQuY3BwJywKICAgICAgICAgICAgICdkb20v
TXV0YXRpb25FdmVudC5jcHAnLAogICAgICAgICAgICAgJ2RvbS9NdXRhdGlvbkV2ZW50LmgnLAor
ICAgICAgICAgICAgJ2RvbS9NdXRhdGlvblJlY29yZC5jcHAnLAorICAgICAgICAgICAgJ2RvbS9N
dXRhdGlvblJlY29yZC5oJywKICAgICAgICAgICAgICdkb20vTmFtZU5vZGVMaXN0LmNwcCcsCiAg
ICAgICAgICAgICAnZG9tL05hbWVOb2RlTGlzdC5oJywKICAgICAgICAgICAgICdkb20vTmFtZWRO
b2RlTWFwLmNwcCcsCkBAIC03NDY1LDYgKzc0NjgsOCBAQAogICAgICAgICAgICAgJzwoUFJPRFVD
VF9ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNNb3VzZUV2ZW50LmgnLAogICAgICAgICAg
ICAgJzwoUFJPRFVDVF9ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNNdXRhdGlvbkV2ZW50
LmNwcCcsCiAgICAgICAgICAgICAnPChQUk9EVUNUX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29y
ZS9KU011dGF0aW9uRXZlbnQuaCcsCisgICAgICAgICAgICAnPChQUk9EVUNUX0RJUikvRGVyaXZl
ZFNvdXJjZXMvV2ViQ29yZS9KU011dGF0aW9uUmVjb3JkLmNwcCcsCisgICAgICAgICAgICAnPChQ
Uk9EVUNUX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU011dGF0aW9uUmVjb3JkLmgnLAog
ICAgICAgICAgICAgJzwoUFJPRFVDVF9ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNOYW1l
ZE5vZGVNYXAuY3BwJywKICAgICAgICAgICAgICc8KFBST0RVQ1RfRElSKS9EZXJpdmVkU291cmNl
cy9XZWJDb3JlL0pTTmFtZWROb2RlTWFwLmgnLAogICAgICAgICAgICAgJzwoUFJPRFVDVF9ESVIp
L0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNOYXZpZ2F0b3IuY3BwJywKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL1dlYkNvcmUucHJvIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5wcm8KaW5k
ZXggNjAyOGU5Njg1OWRhOWM4Y2UzNDJiMGU0OWQ0YzBlOTBiMTVlZmY2NS4uNzc4YmY4YTJmZjlj
YjU1Y2Y1Mjk2YzcxZDI5YzgwMWRmOTUxOGJkYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
V2ViQ29yZS5wcm8KKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5wcm8KQEAgLTUxMCw2ICs1
MTAsNyBAQCBTT1VSQ0VTICs9IFwKICAgICBkb20vTW91c2VFdmVudC5jcHAgXAogICAgIGRvbS9N
b3VzZVJlbGF0ZWRFdmVudC5jcHAgXAogICAgIGRvbS9NdXRhdGlvbkV2ZW50LmNwcCBcCisgICAg
ZG9tL011dGF0aW9uUmVjb3JkLmNwcCBcCiAgICAgZG9tL05hbWVkTm9kZU1hcC5jcHAgXAogICAg
IGRvbS9OYW1lTm9kZUxpc3QuY3BwIFwKICAgICBkb20vTm9kZS5jcHAgXApAQCAtMTUyMyw2ICsx
NTI0LDcgQEAgSEVBREVSUyArPSBcCiAgICAgZG9tL01vdXNlRXZlbnQuaCBcCiAgICAgZG9tL01v
dXNlUmVsYXRlZEV2ZW50LmggXAogICAgIGRvbS9NdXRhdGlvbkV2ZW50LmggXAorICAgIGRvbS9N
dXRhdGlvblJlY29yZC5oIFwKICAgICBkb20vTmFtZWROb2RlTWFwLmggXAogICAgIGRvbS9OYW1l
Tm9kZUxpc3QuaCBcCiAgICAgZG9tL05vZGVGaWx0ZXJDb25kaXRpb24uaCBcCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvaiBiL1NvdXJjZS9X
ZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCmluZGV4IDU4MTUxOGI5NmQ2MjYx
ODhjNTU1YTM3MGVlMjMzZmEzYTUzNWI3OGQuLmRlNGJkNjk4MzFiZjg1YjViZWIxOTVlMzAzYjM5
YWIwZThlMmYyMzYgMTAwNzU1Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dl
YkNvcmUudmNwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUu
dmNwcm9qCkBAIC0xMTY1NCw2ICsxMTY1NCw2MiBAQAogCQkJCT4KIAkJCTwvRmlsZT4KIAkJCTxG
aWxlCisJCQkJUmVsYXRpdmVQYXRoPSIkKENvbmZpZ3VyYXRpb25CdWlsZERpcilcb2JqXCQoUHJv
amVjdE5hbWUpXERlcml2ZWRTb3VyY2VzXEpTTXV0YXRpb25SZWNvcmQuY3BwIgorCQkJCT4KKwkJ
CQk8RmlsZUNvbmZpZ3VyYXRpb24KKwkJCQkJTmFtZT0iRGVidWd8V2luMzIiCisJCQkJCUV4Y2x1
ZGVkRnJvbUJ1aWxkPSJ0cnVlIgorCQkJCQk+CisJCQkJCTxUb29sCisJCQkJCQlOYW1lPSJWQ0NM
Q29tcGlsZXJUb29sIgorCQkJCQkvPgorCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+CisJCQkJPEZp
bGVDb25maWd1cmF0aW9uCisJCQkJCU5hbWU9IlJlbGVhc2V8V2luMzIiCisJCQkJCUV4Y2x1ZGVk
RnJvbUJ1aWxkPSJ0cnVlIgorCQkJCQk+CisJCQkJCTxUb29sCisJCQkJCQlOYW1lPSJWQ0NMQ29t
cGlsZXJUb29sIgorCQkJCQkvPgorCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+CisJCQkJPEZpbGVD
b25maWd1cmF0aW9uCisJCQkJCU5hbWU9IkRlYnVnX0NhaXJvX0NGTGl0ZXxXaW4zMiIKKwkJCQkJ
RXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiCisJCQkJCT4KKwkJCQkJPFRvb2wKKwkJCQkJCU5hbWU9
IlZDQ0xDb21waWxlclRvb2wiCisJCQkJCS8+CisJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4KKwkJ
CQk8RmlsZUNvbmZpZ3VyYXRpb24KKwkJCQkJTmFtZT0iUmVsZWFzZV9DYWlyb19DRkxpdGV8V2lu
MzIiCisJCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIgorCQkJCQk+CisJCQkJCTxUb29sCisJ
CQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIgorCQkJCQkvPgorCQkJCTwvRmlsZUNvbmZpZ3Vy
YXRpb24+CisJCQkJPEZpbGVDb25maWd1cmF0aW9uCisJCQkJCU5hbWU9IkRlYnVnX0FsbHxXaW4z
MiIKKwkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiCisJCQkJCT4KKwkJCQkJPFRvb2wKKwkJ
CQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiCisJCQkJCS8+CisJCQkJPC9GaWxlQ29uZmlndXJh
dGlvbj4KKwkJCQk8RmlsZUNvbmZpZ3VyYXRpb24KKwkJCQkJTmFtZT0iUHJvZHVjdGlvbnxXaW4z
MiIKKwkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiCisJCQkJCT4KKwkJCQkJPFRvb2wKKwkJ
CQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiCisJCQkJCS8+CisJCQkJPC9GaWxlQ29uZmlndXJh
dGlvbj4KKwkJCTwvRmlsZT4KKwkJCTxGaWxlCisJCQkJUmVsYXRpdmVQYXRoPSIkKENvbmZpZ3Vy
YXRpb25CdWlsZERpcilcb2JqXCQoUHJvamVjdE5hbWUpXERlcml2ZWRTb3VyY2VzXEpTTXV0YXRp
b25SZWNvcmQuaCIKKwkJCQk+CisJCQk8L0ZpbGU+CisJCQk8RmlsZQogCQkJCVJlbGF0aXZlUGF0
aD0iJChDb25maWd1cmF0aW9uQnVpbGREaXIpXG9ialwkKFByb2plY3ROYW1lKVxEZXJpdmVkU291
cmNlc1xKU05hbWVkTm9kZU1hcC5jcHAiCiAJCQkJPgogCQkJCTxGaWxlQ29uZmlndXJhdGlvbgpA
QCAtNDY5OTgsNiArNDcwNTQsNjIgQEAKIAkJCQk+CiAJCQk8L0ZpbGU+CiAJCQk8RmlsZQorCQkJ
CVJlbGF0aXZlUGF0aD0iLi5cZG9tXE11dGF0aW9uUmVjb3JkLmNwcCIKKwkJCQk+CisJCQkJPEZp
bGVDb25maWd1cmF0aW9uCisJCQkJCU5hbWU9IkRlYnVnfFdpbjMyIgorCQkJCQlFeGNsdWRlZEZy
b21CdWlsZD0idHJ1ZSIKKwkJCQkJPgorCQkJCQk8VG9vbAorCQkJCQkJTmFtZT0iVkNDTENvbXBp
bGVyVG9vbCIKKwkJCQkJLz4KKwkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPgorCQkJCTxGaWxlQ29u
ZmlndXJhdGlvbgorCQkJCQlOYW1lPSJSZWxlYXNlfFdpbjMyIgorCQkJCQlFeGNsdWRlZEZyb21C
dWlsZD0idHJ1ZSIKKwkJCQkJPgorCQkJCQk8VG9vbAorCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVy
VG9vbCIKKwkJCQkJLz4KKwkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPgorCQkJCTxGaWxlQ29uZmln
dXJhdGlvbgorCQkJCQlOYW1lPSJEZWJ1Z19DYWlyb19DRkxpdGV8V2luMzIiCisJCQkJCUV4Y2x1
ZGVkRnJvbUJ1aWxkPSJ0cnVlIgorCQkJCQk+CisJCQkJCTxUb29sCisJCQkJCQlOYW1lPSJWQ0NM
Q29tcGlsZXJUb29sIgorCQkJCQkvPgorCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+CisJCQkJPEZp
bGVDb25maWd1cmF0aW9uCisJCQkJCU5hbWU9IlJlbGVhc2VfQ2Fpcm9fQ0ZMaXRlfFdpbjMyIgor
CQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIKKwkJCQkJPgorCQkJCQk8VG9vbAorCQkJCQkJ
TmFtZT0iVkNDTENvbXBpbGVyVG9vbCIKKwkJCQkJLz4KKwkJCQk8L0ZpbGVDb25maWd1cmF0aW9u
PgorCQkJCTxGaWxlQ29uZmlndXJhdGlvbgorCQkJCQlOYW1lPSJEZWJ1Z19BbGx8V2luMzIiCisJ
CQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIgorCQkJCQk+CisJCQkJCTxUb29sCisJCQkJCQlO
YW1lPSJWQ0NMQ29tcGlsZXJUb29sIgorCQkJCQkvPgorCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+
CisJCQkJPEZpbGVDb25maWd1cmF0aW9uCisJCQkJCU5hbWU9IlByb2R1Y3Rpb258V2luMzIiCisJ
CQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIgorCQkJCQk+CisJCQkJCTxUb29sCisJCQkJCQlO
YW1lPSJWQ0NMQ29tcGlsZXJUb29sIgorCQkJCQkvPgorCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+
CisJCQk8L0ZpbGU+CisJCQk8RmlsZQorCQkJCVJlbGF0aXZlUGF0aD0iLi5cZG9tXE11dGF0aW9u
UmVjb3JkLmgiCisJCQkJPgorCQkJPC9GaWxlPgorCQkJPEZpbGUKIAkJCQlSZWxhdGl2ZVBhdGg9
Ii4uXGRvbVxOYW1lZE5vZGVNYXAuY3BwIgogCQkJCT4KIAkJCTwvRmlsZT4KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJj
ZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCA3MDA0NGRh
YWM5MmQ0NWJjNzMzNWRhMDY2NTY1YjlkZjU2YTFkMGM0Li42NzYzMTkxZjFhOTAzYjhkMThhZjNk
YWU5NjI3NzZmY2MwYzA1ZTdkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC01NDM3LDYgKzU0MzcsMTAgQEAKIAkJQzVFQkREODQx
MDVFRERFQzAwNTY4MTZGIC8qIFN0b3JhZ2VFdmVudERpc3BhdGNoZXIuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEM1RUJERDgxMTA1RURERUMwMDU2ODE2
RiAvKiBTdG9yYWdlRXZlbnREaXNwYXRjaGVyLmggKi87IH07CiAJCUM2RDc0QUQ1MDlBQTI4MkUw
MDBCMEE1MiAvKiBNb2RpZnlTZWxlY3Rpb25MaXN0TGV2ZWwuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEM2RDc0QUQzMDlBQTI4MkUwMDBCMEE1MiAvKiBN
b2RpZnlTZWxlY3Rpb25MaXN0TGV2ZWwuaCAqLzsgfTsKIAkJQzZENzRBRTQwOUFBMjkwQTAwMEIw
QTUyIC8qIE1vZGlmeVNlbGVjdGlvbkxpc3RMZXZlbC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDNkQ3NEFFMzA5QUEyOTBBMDAwQjBBNTIgLyogTW9k
aWZ5U2VsZWN0aW9uTGlzdExldmVsLmNwcCAqLzsgfTsKKwkJQzZGMDhGQkMxNDMwRkU4RjAwNjg1
ODQ5IC8qIE11dGF0aW9uUmVjb3JkLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IEM2RjA4RkI5MTQzMEZFOEYwMDY4NTg0OSAvKiBNdXRhdGlvblJlY29y
ZC5jcHAgKi87IH07CisJCUM2RjA4RkJEMTQzMEZFOEYwMDY4NTg0OSAvKiBNdXRhdGlvblJlY29y
ZC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQzZGMDhG
QkExNDMwRkU4RjAwNjg1ODQ5IC8qIE11dGF0aW9uUmVjb3JkLmggKi87IH07CisJCUM2RjA4RkM5
MTQzMTAwMEQwMDY4NTg0OSAvKiBKU011dGF0aW9uUmVjb3JkLmNwcCBpbiBTb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEM2RjA4RkM3MTQzMTAwMEQwMDY4NTg0OSAv
KiBKU011dGF0aW9uUmVjb3JkLmNwcCAqLzsgfTsKKwkJQzZGMDhGQ0ExNDMxMDAwRDAwNjg1ODQ5
IC8qIEpTTXV0YXRpb25SZWNvcmQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IEM2RjA4RkM4MTQzMTAwMEQwMDY4NTg0OSAvKiBKU011dGF0aW9uUmVjb3Jk
LmggKi87IH07CiAJCUM2RjQxMDQ3MTMwQzZFODkwMDM5M0RFNCAvKiBFbnRyeUJhc2UuY3BwIGlu
IFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQzZGNDEwNDYxMzBD
NkU4OTAwMzkzREU0IC8qIEVudHJ5QmFzZS5jcHAgKi87IH07CiAJCUNBM0JGNjdDMTBEOTlCQUUw
MEU2Q0U1MyAvKiBTY3JvbGxBbmltYXRvci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSBDQTNCRjY3QjEwRDk5QkFFMDBFNkNFNTMgLyogU2Nyb2xsQW5p
bWF0b3IuY3BwICovOyB9OwogCQlDQTNCRjY3RTEwRDk5QkFFMDBFNkNFNTMgLyogU2Nyb2xsQW5p
bWF0b3IuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENB
M0JGNjdEMTBEOTlCQUUwMEU2Q0U1MyAvKiBTY3JvbGxBbmltYXRvci5oICovOyB9OwpAQCAtMTIy
MDQsNiArMTIyMDgsMTEgQEAKIAkJQzVFQkREODExMDVFRERFQzAwNTY4MTZGIC8qIFN0b3JhZ2VF
dmVudERpc3BhdGNoZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU3RvcmFn
ZUV2ZW50RGlzcGF0Y2hlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDNkQ3NEFE
MzA5QUEyODJFMDAwQjBBNTIgLyogTW9kaWZ5U2VsZWN0aW9uTGlzdExldmVsLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE1vZGlmeVNlbGVjdGlvbkxpc3RMZXZlbC5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDNkQ3NEFFMzA5QUEyOTBBMDAwQjBBNTIgLyogTW9k
aWZ5U2VsZWN0aW9uTGlzdExldmVsLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsg
cGF0aCA9IE1vZGlmeVNlbGVjdGlvbkxpc3RMZXZlbC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CisJCUM2RjA4RkI5MTQzMEZFOEYwMDY4NTg0OSAvKiBNdXRhdGlvblJlY29yZC5jcHAg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBNdXRhdGlvblJlY29yZC5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUM2RjA4RkJBMTQzMEZFOEYwMDY4NTg0OSAv
KiBNdXRhdGlvblJlY29yZC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBNdXRh
dGlvblJlY29yZC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlDNkYwOEZCQjE0MzBG
RThGMDA2ODU4NDkgLyogTXV0YXRpb25SZWNvcmQuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9
IE11dGF0aW9uUmVjb3JkLmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQzZGMDhG
QzcxNDMxMDAwRDAwNjg1ODQ5IC8qIEpTTXV0YXRpb25SZWNvcmQuY3BwICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNNdXRhdGlvblJlY29yZC5jcHA7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CisJCUM2RjA4RkM4MTQzMTAwMEQwMDY4NTg0OSAvKiBKU011dGF0aW9u
UmVjb3JkLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTTXV0YXRpb25SZWNv
cmQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQzZGNDEwNDYxMzBDNkU4OTAwMzkz
REU0IC8qIEVudHJ5QmFzZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUg
PSBFbnRyeUJhc2UuY3BwOyBwYXRoID0gZmlsZWFwaS9FbnRyeUJhc2UuY3BwOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQlDQTNCRjY3QjEwRDk5QkFFMDBFNkNFNTMgLyogU2Nyb2xsQW5p
bWF0b3IuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gU2Nyb2xsQW5p
bWF0b3IuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDQTNCRjY3RDEwRDk5QkFF
MDBFNkNFNTMgLyogU2Nyb2xsQW5pbWF0b3IuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gU2Nyb2xsQW5pbWF0b3IuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTE3
NDE4LDYgKzE3NDI3LDggQEAKIAkJCQk0OUM5RjQ4QjEzRDU3RDMyMDA1MjYwMEEgLyogSlNNZWRp
YVN0cmVhbVRyYWNrLmggKi8sCiAJCQkJNDlDOUY0OEMxM0Q1N0QzMjAwNTI2MDBBIC8qIEpTTWVk
aWFTdHJlYW1UcmFja0xpc3QuY3BwICovLAogCQkJCTQ5QzlGNDhEMTNENTdEMzIwMDUyNjAwQSAv
KiBKU01lZGlhU3RyZWFtVHJhY2tMaXN0LmggKi8sCisJCQkJQzZGMDhGQzcxNDMxMDAwRDAwNjg1
ODQ5IC8qIEpTTXV0YXRpb25SZWNvcmQuY3BwICovLAorCQkJCUM2RjA4RkM4MTQzMTAwMEQwMDY4
NTg0OSAvKiBKU011dGF0aW9uUmVjb3JkLmggKi8sCiAJCQkJQkNEOUMyQkMwQzE3QjY5RTAwNUM5
MEEyIC8qIEpTTmFtZWROb2RlTWFwLmNwcCAqLywKIAkJCQlCQ0Q5QzJCRDBDMTdCNjlFMDA1Qzkw
QTIgLyogSlNOYW1lZE5vZGVNYXAuaCAqLywKIAkJCQkxNERDMEQzNTA5RkVEMDczMDA3QjAyMzUg
LyogSlNOb2RlLmNwcCAqLywKQEAgLTIwMDI0LDYgKzIwMDM1LDkgQEAKIAkJCQk4NTAzMUIzMzBB
NDRFRkM3MDBGOTkyRTAgLyogTXV0YXRpb25FdmVudC5jcHAgKi8sCiAJCQkJODUwMzFCMzQwQTQ0
RUZDNzAwRjk5MkUwIC8qIE11dGF0aW9uRXZlbnQuaCAqLywKIAkJCQk5M0VFQzFGMzA5QzI4Nzc3
MDBDNTE1RDEgLyogTXV0YXRpb25FdmVudC5pZGwgKi8sCisJCQkJQzZGMDhGQjkxNDMwRkU4RjAw
Njg1ODQ5IC8qIE11dGF0aW9uUmVjb3JkLmNwcCAqLywKKwkJCQlDNkYwOEZCQTE0MzBGRThGMDA2
ODU4NDkgLyogTXV0YXRpb25SZWNvcmQuaCAqLywKKwkJCQlDNkYwOEZCQjE0MzBGRThGMDA2ODU4
NDkgLyogTXV0YXRpb25SZWNvcmQuaWRsICovLAogCQkJCUJDRjM0QTM2MTFBMjMxQ0QwMEM3MTgw
NCAvKiBOYW1lZE5vZGVNYXAuY3BwICovLAogCQkJCUE4MTg3MjE4MDk3N0QzQzAwMDU4MjZEOSAv
KiBOYW1lZE5vZGVNYXAuaCAqLywKIAkJCQk4NUFDQTlGOTBBOUI2MzEwMDA2NzFFOTAgLyogTmFt
ZWROb2RlTWFwLmlkbCAqLywKQEAgLTIyMTQ1LDYgKzIyMTU5LDcgQEAKIAkJCQk4OTg3ODVCOTEy
MkNBMkE3MDAzQUFCREEgLyogSlNNZXRhZGF0YUNhbGxiYWNrLmggaW4gSGVhZGVycyAqLywKIAkJ
CQlBODY2MjlEMTA5REEyQjQ4MDA5NjMzQTUgLyogSlNNb3VzZUV2ZW50LmggaW4gSGVhZGVycyAq
LywKIAkJCQk2NURGMzFGQzA5RDFDQzYwMDAwQkUzMjUgLyogSlNNdXRhdGlvbkV2ZW50LmggaW4g
SGVhZGVycyAqLywKKwkJCQlDNkYwOEZDQTE0MzEwMDBEMDA2ODU4NDkgLyogSlNNdXRhdGlvblJl
Y29yZC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkNEOUMyQzEwQzE3QjY5RTAwNUM5MEEyIC8qIEpT
TmFtZWROb2RlTWFwLmggaW4gSGVhZGVycyAqLywKIAkJCQlBOUQyNDdGODBENzU3RTM0MDBGREY5
NTkgLyogSlNOYXZpZ2F0b3IuaCBpbiBIZWFkZXJzICovLAogCQkJCUIxRTU0NUUwMTM0NjJCMEIw
MDkyQTU0NSAvKiBKU05hdmlnYXRvclVzZXJNZWRpYUVycm9yLmggaW4gSGVhZGVycyAqLywKQEAg
LTIyNTE3LDYgKzIyNTMyLDcgQEAKIAkJCQk5MzMwOURGQzA5OUU2NDkyMDA1NkU1ODEgLyogTW92
ZVNlbGVjdGlvbkNvbW1hbmQuaCBpbiBIZWFkZXJzICovLAogCQkJCUIxQUQ0RTYzMTNBMTJBMEIw
MDg0NkIyNyAvKiBNdXRhYmxlVGV4dFRyYWNrLmggaW4gSGVhZGVycyAqLywKIAkJCQk4NTAzMUI0
QTBBNDRFRkM3MDBGOTkyRTAgLyogTXV0YXRpb25FdmVudC5oIGluIEhlYWRlcnMgKi8sCisJCQkJ
QzZGMDhGQkQxNDMwRkU4RjAwNjg1ODQ5IC8qIE11dGF0aW9uUmVjb3JkLmggaW4gSGVhZGVycyAq
LywKIAkJCQlBODE4NzIyMzA5NzdEM0MwMDA1ODI2RDkgLyogTmFtZWROb2RlTWFwLmggaW4gSGVh
ZGVycyAqLywKIAkJCQlBODE4NzIxRTA5NzdEM0MwMDA1ODI2RDkgLyogTmFtZU5vZGVMaXN0Lmgg
aW4gSGVhZGVycyAqLywKIAkJCQlFMTBCOUI2QzBCNzQ3NTk5MDAzRUQ4OTAgLyogTmF0aXZlWFBh
dGhOU1Jlc29sdmVyLmggaW4gSGVhZGVycyAqLywKQEAgLTI1MTY3LDYgKzI1MTgzLDcgQEAKIAkJ
CQk4OTg3ODVCODEyMkNBMkE3MDAzQUFCREEgLyogSlNNZXRhZGF0YUNhbGxiYWNrLmNwcCBpbiBT
b3VyY2VzICovLAogCQkJCUE4NjYyOUQyMDlEQTJCNDgwMDk2MzNBNSAvKiBKU01vdXNlRXZlbnQu
Y3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNjVERjMxRkIwOUQxQ0M2MDAwMEJFMzI1IC8qIEpTTXV0
YXRpb25FdmVudC5jcHAgaW4gU291cmNlcyAqLywKKwkJCQlDNkYwOEZDOTE0MzEwMDBEMDA2ODU4
NDkgLyogSlNNdXRhdGlvblJlY29yZC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlCQ0Q5QzJDMDBD
MTdCNjlFMDA1QzkwQTIgLyogSlNOYW1lZE5vZGVNYXAuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJ
QkNEOUMyNjMwQzE3QUE2NzAwNUM5MEEyIC8qIEpTTmFtZWROb2RlTWFwQ3VzdG9tLmNwcCBpbiBT
b3VyY2VzICovLAogCQkJCUE5RDI0N0Y3MEQ3NTdFMzQwMEZERjk1OSAvKiBKU05hdmlnYXRvci5j
cHAgaW4gU291cmNlcyAqLywKQEAgLTI1NTY2LDYgKzI1NTgzLDcgQEAKIAkJCQk5MzMwOURGQjA5
OUU2NDkyMDA1NkU1ODEgLyogTW92ZVNlbGVjdGlvbkNvbW1hbmQuY3BwIGluIFNvdXJjZXMgKi8s
CiAJCQkJQjFBRDRFNjIxM0ExMkEwQjAwODQ2QjI3IC8qIE11dGFibGVUZXh0VHJhY2suY3BwIGlu
IFNvdXJjZXMgKi8sCiAJCQkJODUwMzFCNDkwQTQ0RUZDNzAwRjk5MkUwIC8qIE11dGF0aW9uRXZl
bnQuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJQzZGMDhGQkMxNDMwRkU4RjAwNjg1ODQ5IC8qIE11
dGF0aW9uUmVjb3JkLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUJDRjM0QTM3MTFBMjMxQ0QwMEM3
MTgwNCAvKiBOYW1lZE5vZGVNYXAuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQTgxODcyMjQwOTc3
RDNDMDAwNTgyNkQ5IC8qIE5hbWVOb2RlTGlzdC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlFMTBC
OUI2RDBCNzQ3NTk5MDAzRUQ4OTAgLyogTmF0aXZlWFBhdGhOU1Jlc29sdmVyLmNwcCBpbiBTb3Vy
Y2VzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL011dGF0aW9uUmVjb3JkLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9NdXRhdGlvblJlY29yZC5jcHAKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNzk4
ZTA4MTFjNGYwZjYxYWVlOTk4MjczZjZjNDc0NmMyMDM1Y2IyNAotLS0gL2Rldi9udWxsCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2RvbS9NdXRhdGlvblJlY29yZC5jcHAKQEAgLTAsMCArMSwxMzAgQEAK
Ky8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTEgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKKyAqIG1ldDoKKyAqCisgKiAg
ICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAorICogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgorICogICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQorICogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgorICogaW4gdGhl
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQor
ICogZGlzdHJpYnV0aW9uLgorICogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5j
LiBub3IgdGhlIG5hbWVzIG9mIGl0cworICogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVu
ZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KKyAqIHRoaXMgc29mdHdhcmUg
d2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJV
VE9SUworICogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgorICogQSBQQVJUSUNVTEFSIFBVUlBP
U0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKKyAqIE9X
TkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLAorICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisgKiBEQVRBLCBPUiBQUk9G
SVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkK
KyAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisj
aW5jbHVkZSAiY29uZmlnLmgiCisKKyNpZiBFTkFCTEUoTVVUQVRJT05fT0JTRVJWRVJTKQorCisj
aW5jbHVkZSAiTXV0YXRpb25SZWNvcmQuaCIKKworI2luY2x1ZGUgIk5vZGUuaCIKKyNpbmNsdWRl
ICJOb2RlTGlzdC5oIgorI2luY2x1ZGUgPHd0Zi9Bc3NlcnRpb25zLmg+CisjaW5jbHVkZSA8d3Rm
L1N0ZExpYkV4dHJhcy5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK1Bhc3NSZWZQdHI8TXV0
YXRpb25SZWNvcmQ+IE11dGF0aW9uUmVjb3JkOjpjcmVhdGVDaGlsZExpc3QoUGFzc1JlZlB0cjxO
b2RlPiB0YXJnZXQsIFBhc3NSZWZQdHI8Tm9kZUxpc3Q+IGFkZGVkLCBQYXNzUmVmUHRyPE5vZGVM
aXN0PiByZW1vdmVkLCBQYXNzUmVmUHRyPE5vZGU+IHByZXZpb3VzU2libGluZywgUGFzc1JlZlB0
cjxOb2RlPiBuZXh0U2libGluZykKK3sKKyAgICBDaGlsZExpc3REYXRhKiBjaGlsZExpc3REYXRh
ID0gbmV3IENoaWxkTGlzdERhdGE7CisgICAgY2hpbGRMaXN0RGF0YS0+YWRkZWROb2RlcyA9IGFk
ZGVkOworICAgIGNoaWxkTGlzdERhdGEtPnJlbW92ZWROb2RlcyA9IHJlbW92ZWQ7CisgICAgY2hp
bGRMaXN0RGF0YS0+cHJldmlvdXNTaWJsaW5nID0gcHJldmlvdXNTaWJsaW5nOworICAgIGNoaWxk
TGlzdERhdGEtPm5leHRTaWJsaW5nID0gbmV4dFNpYmxpbmc7CisgICAgcmV0dXJuIGFkb3B0UmVm
KG5ldyBNdXRhdGlvblJlY29yZChDaGlsZExpc3RGbGFnLCB0YXJnZXQsIGNoaWxkTGlzdERhdGEp
KTsKK30KKworUGFzc1JlZlB0cjxNdXRhdGlvblJlY29yZD4gTXV0YXRpb25SZWNvcmQ6OmNyZWF0
ZUF0dHJpYnV0ZXMoUGFzc1JlZlB0cjxOb2RlPiB0YXJnZXQsIGNvbnN0IEF0b21pY1N0cmluZyYg
YXR0cmlidXRlTmFtZSwgY29uc3QgQXRvbWljU3RyaW5nJiBhdHRyaWJ1dGVOYW1lc3BhY2UpCit7
CisgICAgQXR0cmlidXRlc0RhdGEqIGF0dHJEYXRhID0gbmV3IEF0dHJpYnV0ZXNEYXRhOworICAg
IGF0dHJEYXRhLT5sb2NhbE5hbWUgPSBhdHRyaWJ1dGVOYW1lOworICAgIGF0dHJEYXRhLT5uYW1l
c3BhY2VVUkkgPSBhdHRyaWJ1dGVOYW1lc3BhY2U7CisgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBN
dXRhdGlvblJlY29yZChBdHRyaWJ1dGVzRmxhZywgdGFyZ2V0LCBhdHRyRGF0YSkpOworfQorCitQ
YXNzUmVmUHRyPE11dGF0aW9uUmVjb3JkPiBNdXRhdGlvblJlY29yZDo6Y3JlYXRlQ2hhcmFjdGVy
RGF0YShQYXNzUmVmUHRyPE5vZGU+IHRhcmdldCkKK3sKKyAgICByZXR1cm4gYWRvcHRSZWYobmV3
IE11dGF0aW9uUmVjb3JkKENoYXJhY3RlckRhdGFGbGFnLCB0YXJnZXQsIG5ldyBDaGFyYWN0ZXJE
YXRhRGF0YSkpOworfQorCitjb25zdCBBdG9taWNTdHJpbmcmIE11dGF0aW9uUmVjb3JkOjp0eXBl
KCkKK3sKKyAgICBERUZJTkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0cmluZywgY2hpbGRMaXN0LCAo
ImNoaWxkTGlzdCIpKTsKKyAgICBERUZJTkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0cmluZywgYXR0
cmlidXRlcywgKCJhdHRyaWJ1dGVzIikpOworICAgIERFRklORV9TVEFUSUNfTE9DQUwoQXRvbWlj
U3RyaW5nLCBjaGFyYWN0ZXJEYXRhLCAoImNoYXJhY3RlckRhdGEiKSk7CisKKyAgICBzd2l0Y2gg
KG1fdHlwZUZsYWcpIHsKKyAgICBjYXNlIENoaWxkTGlzdEZsYWc6CisgICAgICAgIHJldHVybiBj
aGlsZExpc3Q7CisgICAgY2FzZSBBdHRyaWJ1dGVzRmxhZzoKKyAgICAgICAgcmV0dXJuIGF0dHJp
YnV0ZXM7CisgICAgY2FzZSBDaGFyYWN0ZXJEYXRhRmxhZzoKKyAgICAgICAgcmV0dXJuIGNoYXJh
Y3RlckRhdGE7CisgICAgfQorICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgIHJldHVybiBl
bXB0eUF0b207Cit9CisKK2NvbnN0IFN0cmluZyYgTXV0YXRpb25SZWNvcmQ6Om9sZFZhbHVlKCkK
K3sKKyAgICBpZiAobV90eXBlRmxhZyA9PSBBdHRyaWJ1dGVzRmxhZykKKyAgICAgICAgcmV0dXJu
IHN0YXRpY19jYXN0PEF0dHJpYnV0ZXNEYXRhKj4obV9leHRyYURhdGEpLT5vbGRWYWx1ZTsKKyAg
ICBpZiAobV90eXBlRmxhZyA9PSBDaGFyYWN0ZXJEYXRhRmxhZykKKyAgICAgICAgcmV0dXJuIHN0
YXRpY19jYXN0PENoYXJhY3RlckRhdGFEYXRhKj4obV9leHRyYURhdGEpLT5vbGRWYWx1ZTsKKyAg
ICByZXR1cm4gbnVsbEF0b207Cit9CisKK3ZvaWQgTXV0YXRpb25SZWNvcmQ6OnNldE9sZFZhbHVl
KGNvbnN0IFN0cmluZyYgdmFsKQoreworICAgIGlmIChtX3R5cGVGbGFnID09IEF0dHJpYnV0ZXNG
bGFnKQorICAgICAgICBzdGF0aWNfY2FzdDxBdHRyaWJ1dGVzRGF0YSo+KG1fZXh0cmFEYXRhKS0+
b2xkVmFsdWUgPSB2YWw7CisgICAgZWxzZSBpZiAobV90eXBlRmxhZyA9PSBDaGFyYWN0ZXJEYXRh
RmxhZykKKyAgICAgICAgc3RhdGljX2Nhc3Q8Q2hhcmFjdGVyRGF0YURhdGEqPihtX2V4dHJhRGF0
YSktPm9sZFZhbHVlID0gdmFsOworfQorCitNdXRhdGlvblJlY29yZDo6TXV0YXRpb25SZWNvcmQo
TXV0YXRpb25UeXBlRmxhZyB0eXBlRmxhZywgUGFzc1JlZlB0cjxOb2RlPiB0YXJnZXQsIHZvaWQq
IGV4dHJhRGF0YSkKKyAgICA6IG1fdHlwZUZsYWcodHlwZUZsYWcpCisgICAgLCBtX3RhcmdldCh0
YXJnZXQpCisgICAgLCBtX2V4dHJhRGF0YShleHRyYURhdGEpCit7Cit9CisKK011dGF0aW9uUmVj
b3JkOjp+TXV0YXRpb25SZWNvcmQoKQoreworICAgIHN3aXRjaCAobV90eXBlRmxhZykgeworICAg
IGNhc2UgQ2hpbGRMaXN0RmxhZzoKKyAgICAgICAgZGVsZXRlIHN0YXRpY19jYXN0PENoaWxkTGlz
dERhdGEqPihtX2V4dHJhRGF0YSk7CisgICAgICAgIG1fZXh0cmFEYXRhID0gMDsKKyAgICAgICAg
YnJlYWs7CisgICAgY2FzZSBBdHRyaWJ1dGVzRmxhZzoKKyAgICAgICAgZGVsZXRlIHN0YXRpY19j
YXN0PEF0dHJpYnV0ZXNEYXRhKj4obV9leHRyYURhdGEpOworICAgICAgICBtX2V4dHJhRGF0YSA9
IDA7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgQ2hhcmFjdGVyRGF0YUZsYWc6CisgICAgICAg
IGRlbGV0ZSBzdGF0aWNfY2FzdDxDaGFyYWN0ZXJEYXRhRGF0YSo+KG1fZXh0cmFEYXRhKTsKKyAg
ICAgICAgbV9leHRyYURhdGEgPSAwOworICAgICAgICBicmVhazsKKyAgICB9CisgICAgQVNTRVJU
KCFtX2V4dHJhRGF0YSk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8v
IEVOQUJMRShNVVRBVElPTl9PQlNFUlZFUlMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9k
b20vTXV0YXRpb25SZWNvcmQuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9NdXRhdGlvblJlY29yZC5o
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLmRlOGQ5ZGRjZWIwNzRhMGRjYjU2NmQ0YjA5Yjg5NzhhMDU5NDE2NTcKLS0t
IC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vTXV0YXRpb25SZWNvcmQuaApAQCAt
MCwwICsxLDEyMiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMSBHb29nbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQorICog
bWV0OgorICoKKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCisgKiBjb3B5cmlnaHQg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyCisgKiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlCisgKiBkaXN0cmlidXRpb24uCisgKiAgICAgKiBOZWl0aGVyIHRoZSBuYW1l
IG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCisgKiBjb250cmlidXRvcnMgbWF5
IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQorICog
dGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4K
KyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVS
UyBBTkQgQ09OVFJJQlVUT1JTCisgKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgVEhFIElNUExJ
RUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCisgKiBBIFBB
UlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENP
UFlSSUdIVAorICogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCisgKiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBQUk9D
VVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKKyAq
IERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWQorICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgorICovCisKKyNpZm5kZWYgTXV0YXRpb25SZWNvcmRfaAorI2RlZmluZSBNdXRhdGlvblJl
Y29yZF9oCisKKyNpZiBFTkFCTEUoTVVUQVRJT05fT0JTRVJWRVJTKQorCisjaW5jbHVkZSAiUGxh
dGZvcm1TdHJpbmcuaCIKKyNpbmNsdWRlIDx3dGYvUGFzc1JlZlB0ci5oPgorI2luY2x1ZGUgPHd0
Zi9SZWZDb3VudGVkLmg+CisjaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgorCituYW1lc3BhY2UgV2Vi
Q29yZSB7CisKK2NsYXNzIE5vZGU7CitjbGFzcyBOb2RlTGlzdDsKKworY2xhc3MgTXV0YXRpb25S
ZWNvcmQgOiBwdWJsaWMgUmVmQ291bnRlZDxNdXRhdGlvblJlY29yZD4geworcHVibGljOgorICAg
IHN0YXRpYyBQYXNzUmVmUHRyPE11dGF0aW9uUmVjb3JkPiBjcmVhdGVDaGlsZExpc3QoUGFzc1Jl
ZlB0cjxOb2RlPiB0YXJnZXQsIFBhc3NSZWZQdHI8Tm9kZUxpc3Q+IGFkZGVkLCBQYXNzUmVmUHRy
PE5vZGVMaXN0PiByZW1vdmVkLCBQYXNzUmVmUHRyPE5vZGU+IHByZXZpb3VzU2libGluZywgUGFz
c1JlZlB0cjxOb2RlPiBuZXh0U2libGluZyk7CisgICAgc3RhdGljIFBhc3NSZWZQdHI8TXV0YXRp
b25SZWNvcmQ+IGNyZWF0ZUF0dHJpYnV0ZXMoUGFzc1JlZlB0cjxOb2RlPiB0YXJnZXQsIGNvbnN0
IEF0b21pY1N0cmluZyYgYXR0cmlidXRlTmFtZSwgY29uc3QgQXRvbWljU3RyaW5nJiBhdHRyaWJ1
dGVOYW1lc3BhY2UpOworICAgIHN0YXRpYyBQYXNzUmVmUHRyPE11dGF0aW9uUmVjb3JkPiBjcmVh
dGVDaGFyYWN0ZXJEYXRhKFBhc3NSZWZQdHI8Tm9kZT4gdGFyZ2V0KTsKKworICAgIHZpcnR1YWwg
fk11dGF0aW9uUmVjb3JkKCk7CisKKyAgICBjb25zdCBBdG9taWNTdHJpbmcmIHR5cGUoKTsKKyAg
ICBOb2RlKiB0YXJnZXQoKSB7IHJldHVybiBtX3RhcmdldC5nZXQoKTsgfQorCisgICAgTm9kZUxp
c3QqIGFkZGVkTm9kZXMoKQorICAgIHsKKyAgICAgICAgcmV0dXJuIG1fdHlwZUZsYWcgPT0gQ2hp
bGRMaXN0RmxhZyA/IHN0YXRpY19jYXN0PENoaWxkTGlzdERhdGEqPihtX2V4dHJhRGF0YSktPmFk
ZGVkTm9kZXMuZ2V0KCkgOiAwOworICAgIH0KKyAgICBOb2RlTGlzdCogcmVtb3ZlZE5vZGVzKCkK
KyAgICB7CisgICAgICAgIHJldHVybiBtX3R5cGVGbGFnID09IENoaWxkTGlzdEZsYWcgPyBzdGF0
aWNfY2FzdDxDaGlsZExpc3REYXRhKj4obV9leHRyYURhdGEpLT5yZW1vdmVkTm9kZXMuZ2V0KCkg
OiAwOworICAgIH0KKyAgICBOb2RlKiBwcmV2aW91c1NpYmxpbmcoKQorICAgIHsKKyAgICAgICAg
cmV0dXJuIG1fdHlwZUZsYWcgPT0gQ2hpbGRMaXN0RmxhZyA/IHN0YXRpY19jYXN0PENoaWxkTGlz
dERhdGEqPihtX2V4dHJhRGF0YSktPnByZXZpb3VzU2libGluZy5nZXQoKSA6IDA7CisgICAgfQor
ICAgIE5vZGUqIG5leHRTaWJsaW5nKCkKKyAgICB7CisgICAgICAgIHJldHVybiBtX3R5cGVGbGFn
ID09IENoaWxkTGlzdEZsYWcgPyBzdGF0aWNfY2FzdDxDaGlsZExpc3REYXRhKj4obV9leHRyYURh
dGEpLT5uZXh0U2libGluZy5nZXQoKSA6IDA7CisgICAgfQorCisgICAgY29uc3QgQXRvbWljU3Ry
aW5nJiBhdHRyaWJ1dGVOYW1lKCkKKyAgICB7CisgICAgICAgIHJldHVybiBtX3R5cGVGbGFnID09
IEF0dHJpYnV0ZXNGbGFnID8gc3RhdGljX2Nhc3Q8QXR0cmlidXRlc0RhdGEqPihtX2V4dHJhRGF0
YSktPmxvY2FsTmFtZSA6IG51bGxBdG9tOworICAgIH0KKyAgICBjb25zdCBBdG9taWNTdHJpbmcm
IGF0dHJpYnV0ZU5hbWVzcGFjZSgpCisgICAgeworICAgICAgICByZXR1cm4gbV90eXBlRmxhZyA9
PSBBdHRyaWJ1dGVzRmxhZyA/IHN0YXRpY19jYXN0PEF0dHJpYnV0ZXNEYXRhKj4obV9leHRyYURh
dGEpLT5uYW1lc3BhY2VVUkkgOiBudWxsQXRvbTsKKyAgICB9CisKKyAgICBjb25zdCBTdHJpbmcm
IG9sZFZhbHVlKCk7CisgICAgdm9pZCBzZXRPbGRWYWx1ZShjb25zdCBTdHJpbmcmKTsKKworICAg
IGVudW0gTXV0YXRpb25UeXBlRmxhZyB7CisgICAgICAgIENoaWxkTGlzdEZsYWcgPSAxIDw8IDAs
CisgICAgICAgIEF0dHJpYnV0ZXNGbGFnID0gMSA8PCAxLAorICAgICAgICBDaGFyYWN0ZXJEYXRh
RmxhZyA9IDEgPDwgMgorICAgIH07CisgICAgTXV0YXRpb25UeXBlRmxhZyB0eXBlRmxhZygpIHsg
cmV0dXJuIG1fdHlwZUZsYWc7IH0KKworcHJpdmF0ZToKKyAgICBNdXRhdGlvblJlY29yZChNdXRh
dGlvblR5cGVGbGFnLCBQYXNzUmVmUHRyPE5vZGU+IHRhcmdldCwgdm9pZCogZXh0cmFEYXRhKTsK
KworICAgIHN0cnVjdCBDaGlsZExpc3REYXRhIHsKKyAgICAgICAgUmVmUHRyPE5vZGVMaXN0PiBh
ZGRlZE5vZGVzOworICAgICAgICBSZWZQdHI8Tm9kZUxpc3Q+IHJlbW92ZWROb2RlczsKKyAgICAg
ICAgUmVmUHRyPE5vZGU+IHByZXZpb3VzU2libGluZzsKKyAgICAgICAgUmVmUHRyPE5vZGU+IG5l
eHRTaWJsaW5nOworICAgIH07CisKKyAgICBzdHJ1Y3QgQXR0cmlidXRlc0RhdGEgeworICAgICAg
ICBBdG9taWNTdHJpbmcgbG9jYWxOYW1lOworICAgICAgICBBdG9taWNTdHJpbmcgbmFtZXNwYWNl
VVJJOworICAgICAgICBTdHJpbmcgb2xkVmFsdWU7CisgICAgfTsKKworICAgIHN0cnVjdCBDaGFy
YWN0ZXJEYXRhRGF0YSB7CisgICAgICAgIFN0cmluZyBvbGRWYWx1ZTsKKyAgICB9OworCisgICAg
TXV0YXRpb25UeXBlRmxhZyBtX3R5cGVGbGFnOworICAgIFJlZlB0cjxOb2RlPiBtX3RhcmdldDsK
KyAgICB2b2lkKiBtX2V4dHJhRGF0YTsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKwor
I2VuZGlmIC8vIEVOQUJMRShNVVRBVElPTl9PQlNFUlZFUlMpCisKKyNlbmRpZiAvLyBNdXRhdGlv
blJlY29yZF9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vTXV0YXRpb25SZWNvcmQu
aWRsIGIvU291cmNlL1dlYkNvcmUvZG9tL011dGF0aW9uUmVjb3JkLmlkbApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5m
YTZiNjY2ZGNlYjA2NWEyNTUwMzczNmM0MzZhYzQ3ZTZlYjhhZjdlCi0tLSAvZGV2L251bGwKKysr
IGIvU291cmNlL1dlYkNvcmUvZG9tL011dGF0aW9uUmVjb3JkLmlkbApAQCAtMCwwICsxLDQ4IEBA
CisvKgorICogQ29weXJpZ2h0IChDKSAyMDExIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCisgKiBtZXQ6CisgKgorICog
ICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyAqIGNvcHlyaWdodCBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKKyAqIGluIHRo
ZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUK
KyAqIGRpc3RyaWJ1dGlvbi4KKyAqICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIElu
Yy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKKyAqIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBl
bmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCisgKiB0aGlzIHNvZnR3YXJl
IHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklC
VVRPUlMKKyAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKyAqIEEgUEFSVElDVUxBUiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCisgKiBP
V05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwKKyAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAorICogREFUQSwgT1IgUFJP
RklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
CisgKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKwor
bW9kdWxlIGNvcmUgeworICAgIGludGVyZmFjZSBbCisgICAgICAgIENvbmRpdGlvbmFsPU1VVEFU
SU9OX09CU0VSVkVSUworICAgIF0gTXV0YXRpb25SZWNvcmQgeworICAgICAgICByZWFkb25seSBh
dHRyaWJ1dGUgRE9NU3RyaW5nIHR5cGU7CisgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBOb2Rl
ICAgICAgdGFyZ2V0OworCisgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBOb2RlTGlzdCAgYWRk
ZWROb2RlczsKKyAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIE5vZGVMaXN0ICByZW1vdmVkTm9k
ZXM7CisgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBOb2RlICAgICAgcHJldmlvdXNTaWJsaW5n
OworICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgTm9kZSAgICAgIG5leHRTaWJsaW5nOworCisg
ICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBET01TdHJpbmcgYXR0cmlidXRlTmFtZTsKKyAgICAg
ICAgcmVhZG9ubHkgYXR0cmlidXRlIERPTVN0cmluZyBhdHRyaWJ1dGVOYW1lc3BhY2U7CisKKyAg
ICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIERPTVN0cmluZyBvbGRWYWx1ZTsKKyAgICB9OworfQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>108724</attachid>
            <date>2011-09-26 14:39:40 -0700</date>
            <delta_ts>2011-09-26 17:05:02 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-68824-20110926143939.patch</filename>
            <type>text/plain</type>
            <size>29120</size>
            <attacher name="Adam Klein">adamk</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTU5NjgKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NN
YWtlTGlzdHMudHh0IGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKaW5kZXggZTc5ODM4
MGNiNWQxYTcwZDUxYWE0ODg2NmQyMTllNDVkMmEyMzYwZC4uZGNmNmU0MWZlNmM0OWVmZGJlZDU2
ZWIyMzM3YzRjNjk1ZDE0MDVmNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0
cy50eHQKKysrIGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKQEAgLTE2Myw2ICsxNjMs
NyBAQCBTRVQoV2ViQ29yZV9JRExfRklMRVMKICAgICBkb20vTWVzc2FnZVBvcnQuaWRsCiAgICAg
ZG9tL01vdXNlRXZlbnQuaWRsCiAgICAgZG9tL011dGF0aW9uRXZlbnQuaWRsCisgICAgZG9tL011
dGF0aW9uUmVjb3JkLmlkbAogICAgIGRvbS9OYW1lZE5vZGVNYXAuaWRsCiAgICAgZG9tL05vZGVG
aWx0ZXIuaWRsCiAgICAgZG9tL05vZGUuaWRsCkBAIC01NDcsNiArNTQ4LDcgQEAgU0VUKFdlYkNv
cmVfU09VUkNFUwogICAgIGRvbS9Nb3VzZUV2ZW50LmNwcAogICAgIGRvbS9Nb3VzZVJlbGF0ZWRF
dmVudC5jcHAKICAgICBkb20vTXV0YXRpb25FdmVudC5jcHAKKyAgICBkb20vTXV0YXRpb25SZWNv
cmQuY3BwCiAgICAgZG9tL05hbWVkTm9kZU1hcC5jcHAKICAgICBkb20vTmFtZU5vZGVMaXN0LmNw
cAogICAgIGRvbS9Ob2RlLmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9n
IGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IGY3M2VhY2UzYWZjMmFlOGI1MTNhM2M4
ZTBjOTg5MTc5OThiNTU1YmQuLmYyN2U2YTZiZWU1OTU1ZmY0YTFjNDkwMmJjZDg4OTRmZjQwNWNm
ZTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSw0OSBAQAorMjAxMS0wOS0yNiAgQWRhbSBLbGVpbiAg
PGFkYW1rQGNocm9taXVtLm9yZz4KKworICAgICAgICBbTXV0YXRpb25PYnNlcnZlcnNdIGltcGxl
bWVudCBNdXRhdGlvblJlY29yZAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9Njg4MjQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICBJbXBsZW1lbnRzIE11dGF0aW9uUmVjb3JkIGFzIHNwZWNpZmllZCBpbiB0aGUg
dGhyZWFkIGF0CisgICAgICAgIGh0dHA6Ly9saXN0cy53My5vcmcvQXJjaGl2ZXMvUHVibGljL3B1
YmxpYy13ZWJhcHBzLzIwMTFKdWxTZXAvMTYyMi5odG1sLAorICAgICAgICBpbmNsdWRpbmcgc29t
ZSBtaW5vciBuYW1pbmcgY2hhbmdlcyBmcm9tIHRoZSBvcmlnaW5hbCBwcm9wb3NhbC4KKworICAg
ICAgICBUaGlzIGlzIGEgc21hbGwgcGFydCBvZiB0aGUgTXV0YXRpb25PYnNlcnZlciBBUEksIHNl
ZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Njg3Mjkg
Zm9yIHRoZSBtZXRhYnVnIGNvdmVyaW5nCisgICAgICAgIHRoaXMgZmVhdHVyZS4KKworICAgICAg
ICBObyBuZXcgdGVzdHMgYXMgdGhpcyBpc24ndCB5ZXQgZXhwb3NlZCB0byB0aGUgcGxhdGZvcm0u
CisKKyAgICAgICAgKiBDTWFrZUxpc3RzLnR4dDoKKyAgICAgICAgKiBEZXJpdmVkU291cmNlcy5j
cHA6CisgICAgICAgICogRGVyaXZlZFNvdXJjZXMubWFrZToKKyAgICAgICAgKiBHTlVtYWtlZmls
ZS5saXN0LmFtOgorICAgICAgICAqIFdlYkNvcmUuZ3lwaToKKyAgICAgICAgKiBXZWJDb3JlLnBy
bzoKKyAgICAgICAgKiBXZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvajoKKyAgICAgICAgKiBX
ZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogZG9tL011dGF0aW9u
UmVjb3JkLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpNdXRhdGlvblJlY29yZDo6Y3Jl
YXRlQ2hpbGRMaXN0KToKKyAgICAgICAgKFdlYkNvcmU6Ok11dGF0aW9uUmVjb3JkOjpjcmVhdGVB
dHRyaWJ1dGVzKToKKyAgICAgICAgKFdlYkNvcmU6Ok11dGF0aW9uUmVjb3JkOjpjcmVhdGVDaGFy
YWN0ZXJEYXRhKToKKyAgICAgICAgKFdlYkNvcmU6Ok11dGF0aW9uUmVjb3JkOjp0eXBlKToKKyAg
ICAgICAgKFdlYkNvcmU6Ok11dGF0aW9uUmVjb3JkOjpvbGRWYWx1ZSk6CisgICAgICAgIChXZWJD
b3JlOjpNdXRhdGlvblJlY29yZDo6c2V0T2xkVmFsdWUpOgorICAgICAgICAoV2ViQ29yZTo6TXV0
YXRpb25SZWNvcmQ6Ok11dGF0aW9uUmVjb3JkKToKKyAgICAgICAgKFdlYkNvcmU6Ok11dGF0aW9u
UmVjb3JkOjp+TXV0YXRpb25SZWNvcmQpOgorICAgICAgICAqIGRvbS9NdXRhdGlvblJlY29yZC5o
OiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6Ok11dGF0aW9uUmVjb3JkOjp0YXJnZXQpOgorICAg
ICAgICAoV2ViQ29yZTo6TXV0YXRpb25SZWNvcmQ6OmFkZGVkTm9kZXMpOgorICAgICAgICAoV2Vi
Q29yZTo6TXV0YXRpb25SZWNvcmQ6OnJlbW92ZWROb2Rlcyk6CisgICAgICAgIChXZWJDb3JlOjpN
dXRhdGlvblJlY29yZDo6cHJldmlvdXNTaWJsaW5nKToKKyAgICAgICAgKFdlYkNvcmU6Ok11dGF0
aW9uUmVjb3JkOjpuZXh0U2libGluZyk6CisgICAgICAgIChXZWJDb3JlOjpNdXRhdGlvblJlY29y
ZDo6YXR0cmlidXRlTmFtZSk6CisgICAgICAgIChXZWJDb3JlOjpNdXRhdGlvblJlY29yZDo6YXR0
cmlidXRlTmFtZXNwYWNlKToKKyAgICAgICAgKFdlYkNvcmU6Ok11dGF0aW9uUmVjb3JkOjp0eXBl
RmxhZyk6CisgICAgICAgIChXZWJDb3JlOjpNdXRhdGlvblJlY29yZDo6ZXh0cmFEYXRhKToKKyAg
ICAgICAgKiBkb20vTXV0YXRpb25SZWNvcmQuaWRsOiBBZGRlZC4KKwogMjAxMS0wOS0yMyAgU2lt
b24gRnJhc2VyICA8c2ltb24uZnJhc2VyQGFwcGxlLmNvbT4KIAogICAgICAgICBSZXBhaW50IHRl
c3RzIGRvbid0IHdvcmsgaW4gV2ViS2l0MgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvRGVy
aXZlZFNvdXJjZXMuY3BwIGIvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMuY3BwCmluZGV4
IDhhNDU5ODZhZmZlYmY1MjRlMTRhZDk4YjExN2RmODEzYjUwZDE2YmYuLjg0ZjAyOTQ3YzkyMDg5
OWVhMTY0MTk5NTY0YjRmZjFhYTI5NTRmMWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0Rl
cml2ZWRTb3VyY2VzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5jcHAK
QEAgLTI0NSw2ICsyNDUsNyBAQAogI2luY2x1ZGUgIkpTTWV0YWRhdGFDYWxsYmFjay5jcHAiCiAj
aW5jbHVkZSAiSlNNb3VzZUV2ZW50LmNwcCIKICNpbmNsdWRlICJKU011dGF0aW9uRXZlbnQuY3Bw
IgorI2luY2x1ZGUgIkpTTXV0YXRpb25SZWNvcmQuY3BwIgogI2luY2x1ZGUgIkpTTmFtZWROb2Rl
TWFwLmNwcCIKICNpbmNsdWRlICJKU05hdmlnYXRvci5jcHAiCiAjaW5jbHVkZSAiSlNOYXZpZ2F0
b3JVc2VyTWVkaWFFcnJvci5jcHAiCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVk
U291cmNlcy5tYWtlIGIvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZQppbmRleCBk
ZjgwOTEzNjBkNzA2N2Y3M2U0ZDAyYTE5NGI3N2Q3ZWFhOWQ1YTRlLi43MmY0N2U0ZmQxMmE4M2Ew
NjgxOWIxYmFhYmY4MWYyMGRiZTczMTFhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9EZXJp
dmVkU291cmNlcy5tYWtlCisrKyBiL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UK
QEAgLTI5OCw2ICsyOTgsNyBAQCBET01fQ0xBU1NFUyA9IFwKICAgICBNZXRhZGF0YUNhbGxiYWNr
IFwKICAgICBNb3VzZUV2ZW50IFwKICAgICBNdXRhdGlvbkV2ZW50IFwKKyAgICBNdXRhdGlvblJl
Y29yZCBcCiAgICAgTmFtZWROb2RlTWFwIFwKICAgICBOYXZpZ2F0b3IgXAogICAgIE5hdmlnYXRv
clVzZXJNZWRpYUVycm9yIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxl
Lmxpc3QuYW0gYi9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCmluZGV4IDQxMGNh
Y2Y1MDQwMmJiMzI2NjRhMjk3MjJiNDZmMmJmOWIzYmFjMWIuLmRkNjY5OGRmMTBkNTQ1NzUyMjU2
YjM4NzRhNDQ4ZDFiYTM5MTlkMmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2Vm
aWxlLmxpc3QuYW0KKysrIGIvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbQpAQCAt
Mzc2LDYgKzM3Niw4IEBAIHdlYmNvcmVfYnVpbHRfc291cmNlcyArPSBcCiAJRGVyaXZlZFNvdXJj
ZXMvV2ViQ29yZS9KU01vdXNlRXZlbnQuaCBcCiAJRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU011
dGF0aW9uRXZlbnQuY3BwIFwKIAlEZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTTXV0YXRpb25FdmVu
dC5oIFwKKwlEZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTTXV0YXRpb25SZWNvcmQuY3BwIFwKKwlE
ZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTTXV0YXRpb25SZWNvcmQuaCBcCiAJRGVyaXZlZFNvdXJj
ZXMvV2ViQ29yZS9KU05hbWVkTm9kZU1hcC5jcHAgXAogCURlcml2ZWRTb3VyY2VzL1dlYkNvcmUv
SlNOYW1lZE5vZGVNYXAuaCBcCiAJRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU05hdmlnYXRvci5j
cHAgXApAQCAtMTIyMSw2ICsxMjIzLDggQEAgd2ViY29yZV9zb3VyY2VzICs9IFwKIAlTb3VyY2Uv
V2ViQ29yZS9kb20vTW91c2VSZWxhdGVkRXZlbnQuaCBcCiAJU291cmNlL1dlYkNvcmUvZG9tL011
dGF0aW9uRXZlbnQuY3BwIFwKIAlTb3VyY2UvV2ViQ29yZS9kb20vTXV0YXRpb25FdmVudC5oIFwK
KwlTb3VyY2UvV2ViQ29yZS9kb20vTXV0YXRpb25SZWNvcmQuY3BwIFwKKwlTb3VyY2UvV2ViQ29y
ZS9kb20vTXV0YXRpb25SZWNvcmQuaCBcCiAJU291cmNlL1dlYkNvcmUvZG9tL05hbWVkTm9kZU1h
cC5jcHAgXAogCVNvdXJjZS9XZWJDb3JlL2RvbS9OYW1lZE5vZGVNYXAuaCBcCiAJU291cmNlL1dl
YkNvcmUvZG9tL05hbWVOb2RlTGlzdC5jcHAgXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
V2ViQ29yZS5neXBpIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCmluZGV4IDc2ZjRlNjU1
NzEyNDBjMDZlM2M0NDJhOTc3NTY0OTM5MTgzNmQ0NDYuLmUwYzk1YmJhYTQ2ZWIwNzIxN2Q2NWQz
ZWY3NDNkYzg3Y2UxNzU2ZTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lw
aQorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKQEAgLTExODUsNiArMTE4NSw3IEBA
CiAgICAgICAgICAgICAnZG9tL01lc3NhZ2VQb3J0LmlkbCcsCiAgICAgICAgICAgICAnZG9tL01v
dXNlRXZlbnQuaWRsJywKICAgICAgICAgICAgICdkb20vTXV0YXRpb25FdmVudC5pZGwnLAorICAg
ICAgICAgICAgJ2RvbS9NdXRhdGlvblJlY29yZC5pZGwnLAogICAgICAgICAgICAgJ2RvbS9OYW1l
ZE5vZGVNYXAuaWRsJywKICAgICAgICAgICAgICdkb20vTm9kZS5pZGwnLAogICAgICAgICAgICAg
J2RvbS9Ob2RlRmlsdGVyLmlkbCcsCkBAIC01MTk5LDYgKzUyMDAsOCBAQAogICAgICAgICAgICAg
J2RvbS9Nb3VzZVJlbGF0ZWRFdmVudC5jcHAnLAogICAgICAgICAgICAgJ2RvbS9NdXRhdGlvbkV2
ZW50LmNwcCcsCiAgICAgICAgICAgICAnZG9tL011dGF0aW9uRXZlbnQuaCcsCisgICAgICAgICAg
ICAnZG9tL011dGF0aW9uUmVjb3JkLmNwcCcsCisgICAgICAgICAgICAnZG9tL011dGF0aW9uUmVj
b3JkLmgnLAogICAgICAgICAgICAgJ2RvbS9OYW1lTm9kZUxpc3QuY3BwJywKICAgICAgICAgICAg
ICdkb20vTmFtZU5vZGVMaXN0LmgnLAogICAgICAgICAgICAgJ2RvbS9OYW1lZE5vZGVNYXAuY3Bw
JywKQEAgLTc0NjUsNiArNzQ2OCw4IEBACiAgICAgICAgICAgICAnPChQUk9EVUNUX0RJUikvRGVy
aXZlZFNvdXJjZXMvV2ViQ29yZS9KU01vdXNlRXZlbnQuaCcsCiAgICAgICAgICAgICAnPChQUk9E
VUNUX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU011dGF0aW9uRXZlbnQuY3BwJywKICAg
ICAgICAgICAgICc8KFBST0RVQ1RfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTTXV0YXRp
b25FdmVudC5oJywKKyAgICAgICAgICAgICc8KFBST0RVQ1RfRElSKS9EZXJpdmVkU291cmNlcy9X
ZWJDb3JlL0pTTXV0YXRpb25SZWNvcmQuY3BwJywKKyAgICAgICAgICAgICc8KFBST0RVQ1RfRElS
KS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTTXV0YXRpb25SZWNvcmQuaCcsCiAgICAgICAgICAg
ICAnPChQUk9EVUNUX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU05hbWVkTm9kZU1hcC5j
cHAnLAogICAgICAgICAgICAgJzwoUFJPRFVDVF9ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUv
SlNOYW1lZE5vZGVNYXAuaCcsCiAgICAgICAgICAgICAnPChQUk9EVUNUX0RJUikvRGVyaXZlZFNv
dXJjZXMvV2ViQ29yZS9KU05hdmlnYXRvci5jcHAnLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvV2ViQ29yZS5wcm8gYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnBybwppbmRleCA2MDI4ZTk2
ODU5ZGE5YzhjZTM0MmIwZTQ5ZDRjMGU5MGIxNWVmZjY1Li43NzhiZjhhMmZmOWNiNTVjZjUyOTZj
NzFkMjljODAxZGY5NTE4YmRhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnBy
bworKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnBybwpAQCAtNTEwLDYgKzUxMCw3IEBAIFNP
VVJDRVMgKz0gXAogICAgIGRvbS9Nb3VzZUV2ZW50LmNwcCBcCiAgICAgZG9tL01vdXNlUmVsYXRl
ZEV2ZW50LmNwcCBcCiAgICAgZG9tL011dGF0aW9uRXZlbnQuY3BwIFwKKyAgICBkb20vTXV0YXRp
b25SZWNvcmQuY3BwIFwKICAgICBkb20vTmFtZWROb2RlTWFwLmNwcCBcCiAgICAgZG9tL05hbWVO
b2RlTGlzdC5jcHAgXAogICAgIGRvbS9Ob2RlLmNwcCBcCkBAIC0xNTIzLDYgKzE1MjQsNyBAQCBI
RUFERVJTICs9IFwKICAgICBkb20vTW91c2VFdmVudC5oIFwKICAgICBkb20vTW91c2VSZWxhdGVk
RXZlbnQuaCBcCiAgICAgZG9tL011dGF0aW9uRXZlbnQuaCBcCisgICAgZG9tL011dGF0aW9uUmVj
b3JkLmggXAogICAgIGRvbS9OYW1lZE5vZGVNYXAuaCBcCiAgICAgZG9tL05hbWVOb2RlTGlzdC5o
IFwKICAgICBkb20vTm9kZUZpbHRlckNvbmRpdGlvbi5oIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qIGIvU291cmNlL1dlYkNvcmUvV2Vi
Q29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oKaW5kZXggNTgxNTE4Yjk2ZDYyNjE4OGM1NTVhMzcw
ZWUyMzNmYTNhNTM1Yjc4ZC4uZGU0YmQ2OTgzMWJmODViNWJlYjE5NWUzMDNiMzlhYjBlOGUyZjIz
NiAxMDA3NTUKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3By
b2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oKQEAg
LTExNjU0LDYgKzExNjU0LDYyIEBACiAJCQkJPgogCQkJPC9GaWxlPgogCQkJPEZpbGUKKwkJCQlS
ZWxhdGl2ZVBhdGg9IiQoQ29uZmlndXJhdGlvbkJ1aWxkRGlyKVxvYmpcJChQcm9qZWN0TmFtZSlc
RGVyaXZlZFNvdXJjZXNcSlNNdXRhdGlvblJlY29yZC5jcHAiCisJCQkJPgorCQkJCTxGaWxlQ29u
ZmlndXJhdGlvbgorCQkJCQlOYW1lPSJEZWJ1Z3xXaW4zMiIKKwkJCQkJRXhjbHVkZWRGcm9tQnVp
bGQ9InRydWUiCisJCQkJCT4KKwkJCQkJPFRvb2wKKwkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRv
b2wiCisJCQkJCS8+CisJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4KKwkJCQk8RmlsZUNvbmZpZ3Vy
YXRpb24KKwkJCQkJTmFtZT0iUmVsZWFzZXxXaW4zMiIKKwkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9
InRydWUiCisJCQkJCT4KKwkJCQkJPFRvb2wKKwkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wi
CisJCQkJCS8+CisJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4KKwkJCQk8RmlsZUNvbmZpZ3VyYXRp
b24KKwkJCQkJTmFtZT0iRGVidWdfQ2Fpcm9fQ0ZMaXRlfFdpbjMyIgorCQkJCQlFeGNsdWRlZEZy
b21CdWlsZD0idHJ1ZSIKKwkJCQkJPgorCQkJCQk8VG9vbAorCQkJCQkJTmFtZT0iVkNDTENvbXBp
bGVyVG9vbCIKKwkJCQkJLz4KKwkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPgorCQkJCTxGaWxlQ29u
ZmlndXJhdGlvbgorCQkJCQlOYW1lPSJSZWxlYXNlX0NhaXJvX0NGTGl0ZXxXaW4zMiIKKwkJCQkJ
RXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiCisJCQkJCT4KKwkJCQkJPFRvb2wKKwkJCQkJCU5hbWU9
IlZDQ0xDb21waWxlclRvb2wiCisJCQkJCS8+CisJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4KKwkJ
CQk8RmlsZUNvbmZpZ3VyYXRpb24KKwkJCQkJTmFtZT0iRGVidWdfQWxsfFdpbjMyIgorCQkJCQlF
eGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIKKwkJCQkJPgorCQkJCQk8VG9vbAorCQkJCQkJTmFtZT0i
VkNDTENvbXBpbGVyVG9vbCIKKwkJCQkJLz4KKwkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPgorCQkJ
CTxGaWxlQ29uZmlndXJhdGlvbgorCQkJCQlOYW1lPSJQcm9kdWN0aW9ufFdpbjMyIgorCQkJCQlF
eGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIKKwkJCQkJPgorCQkJCQk8VG9vbAorCQkJCQkJTmFtZT0i
VkNDTENvbXBpbGVyVG9vbCIKKwkJCQkJLz4KKwkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPgorCQkJ
PC9GaWxlPgorCQkJPEZpbGUKKwkJCQlSZWxhdGl2ZVBhdGg9IiQoQ29uZmlndXJhdGlvbkJ1aWxk
RGlyKVxvYmpcJChQcm9qZWN0TmFtZSlcRGVyaXZlZFNvdXJjZXNcSlNNdXRhdGlvblJlY29yZC5o
IgorCQkJCT4KKwkJCTwvRmlsZT4KKwkJCTxGaWxlCiAJCQkJUmVsYXRpdmVQYXRoPSIkKENvbmZp
Z3VyYXRpb25CdWlsZERpcilcb2JqXCQoUHJvamVjdE5hbWUpXERlcml2ZWRTb3VyY2VzXEpTTmFt
ZWROb2RlTWFwLmNwcCIKIAkJCQk+CiAJCQkJPEZpbGVDb25maWd1cmF0aW9uCkBAIC00Njk5OCw2
ICs0NzA1NCw2MiBAQAogCQkJCT4KIAkJCTwvRmlsZT4KIAkJCTxGaWxlCisJCQkJUmVsYXRpdmVQ
YXRoPSIuLlxkb21cTXV0YXRpb25SZWNvcmQuY3BwIgorCQkJCT4KKwkJCQk8RmlsZUNvbmZpZ3Vy
YXRpb24KKwkJCQkJTmFtZT0iRGVidWd8V2luMzIiCisJCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0
cnVlIgorCQkJCQk+CisJCQkJCTxUb29sCisJCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIgor
CQkJCQkvPgorCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+CisJCQkJPEZpbGVDb25maWd1cmF0aW9u
CisJCQkJCU5hbWU9IlJlbGVhc2V8V2luMzIiCisJCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVl
IgorCQkJCQk+CisJCQkJCTxUb29sCisJCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIgorCQkJ
CQkvPgorCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+CisJCQkJPEZpbGVDb25maWd1cmF0aW9uCisJ
CQkJCU5hbWU9IkRlYnVnX0NhaXJvX0NGTGl0ZXxXaW4zMiIKKwkJCQkJRXhjbHVkZWRGcm9tQnVp
bGQ9InRydWUiCisJCQkJCT4KKwkJCQkJPFRvb2wKKwkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRv
b2wiCisJCQkJCS8+CisJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4KKwkJCQk8RmlsZUNvbmZpZ3Vy
YXRpb24KKwkJCQkJTmFtZT0iUmVsZWFzZV9DYWlyb19DRkxpdGV8V2luMzIiCisJCQkJCUV4Y2x1
ZGVkRnJvbUJ1aWxkPSJ0cnVlIgorCQkJCQk+CisJCQkJCTxUb29sCisJCQkJCQlOYW1lPSJWQ0NM
Q29tcGlsZXJUb29sIgorCQkJCQkvPgorCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+CisJCQkJPEZp
bGVDb25maWd1cmF0aW9uCisJCQkJCU5hbWU9IkRlYnVnX0FsbHxXaW4zMiIKKwkJCQkJRXhjbHVk
ZWRGcm9tQnVpbGQ9InRydWUiCisJCQkJCT4KKwkJCQkJPFRvb2wKKwkJCQkJCU5hbWU9IlZDQ0xD
b21waWxlclRvb2wiCisJCQkJCS8+CisJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4KKwkJCQk8Rmls
ZUNvbmZpZ3VyYXRpb24KKwkJCQkJTmFtZT0iUHJvZHVjdGlvbnxXaW4zMiIKKwkJCQkJRXhjbHVk
ZWRGcm9tQnVpbGQ9InRydWUiCisJCQkJCT4KKwkJCQkJPFRvb2wKKwkJCQkJCU5hbWU9IlZDQ0xD
b21waWxlclRvb2wiCisJCQkJCS8+CisJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4KKwkJCTwvRmls
ZT4KKwkJCTxGaWxlCisJCQkJUmVsYXRpdmVQYXRoPSIuLlxkb21cTXV0YXRpb25SZWNvcmQuaCIK
KwkJCQk+CisJCQk8L0ZpbGU+CisJCQk8RmlsZQogCQkJCVJlbGF0aXZlUGF0aD0iLi5cZG9tXE5h
bWVkTm9kZU1hcC5jcHAiCiAJCQkJPgogCQkJPC9GaWxlPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUv
V2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDcwMDQ0ZGFhYzkyZDQ1YmM3
MzM1ZGEwNjY1NjViOWRmNTZhMWQwYzQuLjY3NjMxOTFmMWE5MDNiOGQxOGFmM2RhZTk2Mjc3NmZj
YzBjMDVlN2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2oKQEAgLTU0MzcsNiArNTQzNywxMCBAQAogCQlDNUVCREQ4NDEwNUVEREVDMDA1
NjgxNkYgLyogU3RvcmFnZUV2ZW50RGlzcGF0Y2hlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQzVFQkREODExMDVFRERFQzAwNTY4MTZGIC8qIFN0b3Jh
Z2VFdmVudERpc3BhdGNoZXIuaCAqLzsgfTsKIAkJQzZENzRBRDUwOUFBMjgyRTAwMEIwQTUyIC8q
IE1vZGlmeVNlbGVjdGlvbkxpc3RMZXZlbC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gQzZENzRBRDMwOUFBMjgyRTAwMEIwQTUyIC8qIE1vZGlmeVNlbGVj
dGlvbkxpc3RMZXZlbC5oICovOyB9OwogCQlDNkQ3NEFFNDA5QUEyOTBBMDAwQjBBNTIgLyogTW9k
aWZ5U2VsZWN0aW9uTGlzdExldmVsLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IEM2RDc0QUUzMDlBQTI5MEEwMDBCMEE1MiAvKiBNb2RpZnlTZWxlY3Rp
b25MaXN0TGV2ZWwuY3BwICovOyB9OworCQlDNkYwOEZCQzE0MzBGRThGMDA2ODU4NDkgLyogTXV0
YXRpb25SZWNvcmQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gQzZGMDhGQjkxNDMwRkU4RjAwNjg1ODQ5IC8qIE11dGF0aW9uUmVjb3JkLmNwcCAqLzsg
fTsKKwkJQzZGMDhGQkQxNDMwRkU4RjAwNjg1ODQ5IC8qIE11dGF0aW9uUmVjb3JkLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDNkYwOEZCQTE0MzBGRThG
MDA2ODU4NDkgLyogTXV0YXRpb25SZWNvcmQuaCAqLzsgfTsKKwkJQzZGMDhGQzkxNDMxMDAwRDAw
Njg1ODQ5IC8qIEpTTXV0YXRpb25SZWNvcmQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gQzZGMDhGQzcxNDMxMDAwRDAwNjg1ODQ5IC8qIEpTTXV0YXRp
b25SZWNvcmQuY3BwICovOyB9OworCQlDNkYwOEZDQTE0MzEwMDBEMDA2ODU4NDkgLyogSlNNdXRh
dGlvblJlY29yZC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gQzZGMDhGQzgxNDMxMDAwRDAwNjg1ODQ5IC8qIEpTTXV0YXRpb25SZWNvcmQuaCAqLzsgfTsK
IAkJQzZGNDEwNDcxMzBDNkU4OTAwMzkzREU0IC8qIEVudHJ5QmFzZS5jcHAgaW4gU291cmNlcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDNkY0MTA0NjEzMEM2RTg5MDAzOTNE
RTQgLyogRW50cnlCYXNlLmNwcCAqLzsgfTsKIAkJQ0EzQkY2N0MxMEQ5OUJBRTAwRTZDRTUzIC8q
IFNjcm9sbEFuaW1hdG9yLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IENBM0JGNjdCMTBEOTlCQUUwMEU2Q0U1MyAvKiBTY3JvbGxBbmltYXRvci5jcHAg
Ki87IH07CiAJCUNBM0JGNjdFMTBEOTlCQUUwMEU2Q0U1MyAvKiBTY3JvbGxBbmltYXRvci5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0EzQkY2N0QxMEQ5
OUJBRTAwRTZDRTUzIC8qIFNjcm9sbEFuaW1hdG9yLmggKi87IH07CkBAIC0xMjIwNCw2ICsxMjIw
OCwxMSBAQAogCQlDNUVCREQ4MTEwNUVEREVDMDA1NjgxNkYgLyogU3RvcmFnZUV2ZW50RGlzcGF0
Y2hlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTdG9yYWdlRXZlbnREaXNw
YXRjaGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUM2RDc0QUQzMDlBQTI4MkUw
MDBCMEE1MiAvKiBNb2RpZnlTZWxlY3Rpb25MaXN0TGV2ZWwuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gTW9kaWZ5U2VsZWN0aW9uTGlzdExldmVsLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCUM2RDc0QUUzMDlBQTI5MEEwMDBCMEE1MiAvKiBNb2RpZnlTZWxlY3Rp
b25MaXN0TGV2ZWwuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gTW9k
aWZ5U2VsZWN0aW9uTGlzdExldmVsLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJ
QzZGMDhGQjkxNDMwRkU4RjAwNjg1ODQ5IC8qIE11dGF0aW9uUmVjb3JkLmNwcCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IE11dGF0aW9uUmVjb3JkLmNwcDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQzZGMDhGQkExNDMwRkU4RjAwNjg1ODQ5IC8qIE11dGF0aW9u
UmVjb3JkLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE11dGF0aW9uUmVjb3Jk
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUM2RjA4RkJCMTQzMEZFOEYwMDY4NTg0
OSAvKiBNdXRhdGlvblJlY29yZC5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gTXV0YXRpb25S
ZWNvcmQuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlDNkYwOEZDNzE0MzEwMDBE
MDA2ODU4NDkgLyogSlNNdXRhdGlvblJlY29yZC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IHBhdGggPSBKU011dGF0aW9uUmVjb3JkLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKKwkJQzZGMDhGQzgxNDMxMDAwRDAwNjg1ODQ5IC8qIEpTTXV0YXRpb25SZWNvcmQuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNNdXRhdGlvblJlY29yZC5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDNkY0MTA0NjEzMEM2RTg5MDAzOTNERTQgLyogRW50
cnlCYXNlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IEVudHJ5QmFz
ZS5jcHA7IHBhdGggPSBmaWxlYXBpL0VudHJ5QmFzZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCUNBM0JGNjdCMTBEOTlCQUUwMEU2Q0U1MyAvKiBTY3JvbGxBbmltYXRvci5jcHAg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBTY3JvbGxBbmltYXRvci5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUNBM0JGNjdEMTBEOTlCQUUwMEU2Q0U1MyAv
KiBTY3JvbGxBbmltYXRvci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTY3Jv
bGxBbmltYXRvci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTc0MTgsNiArMTc0
MjcsOCBAQAogCQkJCTQ5QzlGNDhCMTNENTdEMzIwMDUyNjAwQSAvKiBKU01lZGlhU3RyZWFtVHJh
Y2suaCAqLywKIAkJCQk0OUM5RjQ4QzEzRDU3RDMyMDA1MjYwMEEgLyogSlNNZWRpYVN0cmVhbVRy
YWNrTGlzdC5jcHAgKi8sCiAJCQkJNDlDOUY0OEQxM0Q1N0QzMjAwNTI2MDBBIC8qIEpTTWVkaWFT
dHJlYW1UcmFja0xpc3QuaCAqLywKKwkJCQlDNkYwOEZDNzE0MzEwMDBEMDA2ODU4NDkgLyogSlNN
dXRhdGlvblJlY29yZC5jcHAgKi8sCisJCQkJQzZGMDhGQzgxNDMxMDAwRDAwNjg1ODQ5IC8qIEpT
TXV0YXRpb25SZWNvcmQuaCAqLywKIAkJCQlCQ0Q5QzJCQzBDMTdCNjlFMDA1QzkwQTIgLyogSlNO
YW1lZE5vZGVNYXAuY3BwICovLAogCQkJCUJDRDlDMkJEMEMxN0I2OUUwMDVDOTBBMiAvKiBKU05h
bWVkTm9kZU1hcC5oICovLAogCQkJCTE0REMwRDM1MDlGRUQwNzMwMDdCMDIzNSAvKiBKU05vZGUu
Y3BwICovLApAQCAtMjAwMjQsNiArMjAwMzUsOSBAQAogCQkJCTg1MDMxQjMzMEE0NEVGQzcwMEY5
OTJFMCAvKiBNdXRhdGlvbkV2ZW50LmNwcCAqLywKIAkJCQk4NTAzMUIzNDBBNDRFRkM3MDBGOTky
RTAgLyogTXV0YXRpb25FdmVudC5oICovLAogCQkJCTkzRUVDMUYzMDlDMjg3NzcwMEM1MTVEMSAv
KiBNdXRhdGlvbkV2ZW50LmlkbCAqLywKKwkJCQlDNkYwOEZCOTE0MzBGRThGMDA2ODU4NDkgLyog
TXV0YXRpb25SZWNvcmQuY3BwICovLAorCQkJCUM2RjA4RkJBMTQzMEZFOEYwMDY4NTg0OSAvKiBN
dXRhdGlvblJlY29yZC5oICovLAorCQkJCUM2RjA4RkJCMTQzMEZFOEYwMDY4NTg0OSAvKiBNdXRh
dGlvblJlY29yZC5pZGwgKi8sCiAJCQkJQkNGMzRBMzYxMUEyMzFDRDAwQzcxODA0IC8qIE5hbWVk
Tm9kZU1hcC5jcHAgKi8sCiAJCQkJQTgxODcyMTgwOTc3RDNDMDAwNTgyNkQ5IC8qIE5hbWVkTm9k
ZU1hcC5oICovLAogCQkJCTg1QUNBOUY5MEE5QjYzMTAwMDY3MUU5MCAvKiBOYW1lZE5vZGVNYXAu
aWRsICovLApAQCAtMjIxNDUsNiArMjIxNTksNyBAQAogCQkJCTg5ODc4NUI5MTIyQ0EyQTcwMDNB
QUJEQSAvKiBKU01ldGFkYXRhQ2FsbGJhY2suaCBpbiBIZWFkZXJzICovLAogCQkJCUE4NjYyOUQx
MDlEQTJCNDgwMDk2MzNBNSAvKiBKU01vdXNlRXZlbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTY1
REYzMUZDMDlEMUNDNjAwMDBCRTMyNSAvKiBKU011dGF0aW9uRXZlbnQuaCBpbiBIZWFkZXJzICov
LAorCQkJCUM2RjA4RkNBMTQzMTAwMEQwMDY4NTg0OSAvKiBKU011dGF0aW9uUmVjb3JkLmggaW4g
SGVhZGVycyAqLywKIAkJCQlCQ0Q5QzJDMTBDMTdCNjlFMDA1QzkwQTIgLyogSlNOYW1lZE5vZGVN
YXAuaCBpbiBIZWFkZXJzICovLAogCQkJCUE5RDI0N0Y4MEQ3NTdFMzQwMEZERjk1OSAvKiBKU05h
dmlnYXRvci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQjFFNTQ1RTAxMzQ2MkIwQjAwOTJBNTQ1IC8q
IEpTTmF2aWdhdG9yVXNlck1lZGlhRXJyb3IuaCBpbiBIZWFkZXJzICovLApAQCAtMjI1MTcsNiAr
MjI1MzIsNyBAQAogCQkJCTkzMzA5REZDMDk5RTY0OTIwMDU2RTU4MSAvKiBNb3ZlU2VsZWN0aW9u
Q29tbWFuZC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQjFBRDRFNjMxM0ExMkEwQjAwODQ2QjI3IC8q
IE11dGFibGVUZXh0VHJhY2suaCBpbiBIZWFkZXJzICovLAogCQkJCTg1MDMxQjRBMEE0NEVGQzcw
MEY5OTJFMCAvKiBNdXRhdGlvbkV2ZW50LmggaW4gSGVhZGVycyAqLywKKwkJCQlDNkYwOEZCRDE0
MzBGRThGMDA2ODU4NDkgLyogTXV0YXRpb25SZWNvcmQuaCBpbiBIZWFkZXJzICovLAogCQkJCUE4
MTg3MjIzMDk3N0QzQzAwMDU4MjZEOSAvKiBOYW1lZE5vZGVNYXAuaCBpbiBIZWFkZXJzICovLAog
CQkJCUE4MTg3MjFFMDk3N0QzQzAwMDU4MjZEOSAvKiBOYW1lTm9kZUxpc3QuaCBpbiBIZWFkZXJz
ICovLAogCQkJCUUxMEI5QjZDMEI3NDc1OTkwMDNFRDg5MCAvKiBOYXRpdmVYUGF0aE5TUmVzb2x2
ZXIuaCBpbiBIZWFkZXJzICovLApAQCAtMjUxNjcsNiArMjUxODMsNyBAQAogCQkJCTg5ODc4NUI4
MTIyQ0EyQTcwMDNBQUJEQSAvKiBKU01ldGFkYXRhQ2FsbGJhY2suY3BwIGluIFNvdXJjZXMgKi8s
CiAJCQkJQTg2NjI5RDIwOURBMkI0ODAwOTYzM0E1IC8qIEpTTW91c2VFdmVudC5jcHAgaW4gU291
cmNlcyAqLywKIAkJCQk2NURGMzFGQjA5RDFDQzYwMDAwQkUzMjUgLyogSlNNdXRhdGlvbkV2ZW50
LmNwcCBpbiBTb3VyY2VzICovLAorCQkJCUM2RjA4RkM5MTQzMTAwMEQwMDY4NTg0OSAvKiBKU011
dGF0aW9uUmVjb3JkLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUJDRDlDMkMwMEMxN0I2OUUwMDVD
OTBBMiAvKiBKU05hbWVkTm9kZU1hcC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlCQ0Q5QzI2MzBD
MTdBQTY3MDA1QzkwQTIgLyogSlNOYW1lZE5vZGVNYXBDdXN0b20uY3BwIGluIFNvdXJjZXMgKi8s
CiAJCQkJQTlEMjQ3RjcwRDc1N0UzNDAwRkRGOTU5IC8qIEpTTmF2aWdhdG9yLmNwcCBpbiBTb3Vy
Y2VzICovLApAQCAtMjU1NjYsNiArMjU1ODMsNyBAQAogCQkJCTkzMzA5REZCMDk5RTY0OTIwMDU2
RTU4MSAvKiBNb3ZlU2VsZWN0aW9uQ29tbWFuZC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlCMUFE
NEU2MjEzQTEyQTBCMDA4NDZCMjcgLyogTXV0YWJsZVRleHRUcmFjay5jcHAgaW4gU291cmNlcyAq
LywKIAkJCQk4NTAzMUI0OTBBNDRFRkM3MDBGOTkyRTAgLyogTXV0YXRpb25FdmVudC5jcHAgaW4g
U291cmNlcyAqLywKKwkJCQlDNkYwOEZCQzE0MzBGRThGMDA2ODU4NDkgLyogTXV0YXRpb25SZWNv
cmQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQkNGMzRBMzcxMUEyMzFDRDAwQzcxODA0IC8qIE5h
bWVkTm9kZU1hcC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlBODE4NzIyNDA5NzdEM0MwMDA1ODI2
RDkgLyogTmFtZU5vZGVMaXN0LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUUxMEI5QjZEMEI3NDc1
OTkwMDNFRDg5MCAvKiBOYXRpdmVYUGF0aE5TUmVzb2x2ZXIuY3BwIGluIFNvdXJjZXMgKi8sCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vTXV0YXRpb25SZWNvcmQuY3BwIGIvU291cmNl
L1dlYkNvcmUvZG9tL011dGF0aW9uUmVjb3JkLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xMmNmZGFhY2I2ZmJh
NjY2M2Q5NzcyYTQxMzBmODBlOGY0NTM0ZWUzCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dl
YkNvcmUvZG9tL011dGF0aW9uUmVjb3JkLmNwcApAQCAtMCwwICsxLDExNSBAQAorLyoKKyAqIENv
cHlyaWdodCAoQykgMjAxMSBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQorICogbWV0OgorICoKKyAqICAgICAqIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlCisgKiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCisgKiBpbiB0aGUgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCisgKiBkaXN0cmli
dXRpb24uCisgKiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUg
bmFtZXMgb2YgaXRzCisgKiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBw
cm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQorICogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNw
ZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCisgKiAi
QVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVAorICogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCisgKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElT
Q0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAorICogT1dORVIgT1IgQ09O
VFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUws
CisgKiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVE
SU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdP
T0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKKyAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJV
U0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorICogVEhFT1JZ
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1Ig
VE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJj
b25maWcuaCIKKworI2lmIEVOQUJMRShNVVRBVElPTl9PQlNFUlZFUlMpCisKKyNpbmNsdWRlICJN
dXRhdGlvblJlY29yZC5oIgorCisjaW5jbHVkZSAiTm9kZS5oIgorI2luY2x1ZGUgIk5vZGVMaXN0
LmgiCisjaW5jbHVkZSA8d3RmL0Fzc2VydGlvbnMuaD4KKyNpbmNsdWRlIDx3dGYvU3RkTGliRXh0
cmFzLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworUGFzc1JlZlB0cjxNdXRhdGlvblJlY29y
ZD4gTXV0YXRpb25SZWNvcmQ6OmNyZWF0ZUNoaWxkTGlzdChQYXNzUmVmUHRyPE5vZGU+IHRhcmdl
dCwgUGFzc1JlZlB0cjxOb2RlTGlzdD4gYWRkZWQsIFBhc3NSZWZQdHI8Tm9kZUxpc3Q+IHJlbW92
ZWQsIFBhc3NSZWZQdHI8Tm9kZT4gcHJldmlvdXNTaWJsaW5nLCBQYXNzUmVmUHRyPE5vZGU+IG5l
eHRTaWJsaW5nKQoreworICAgIE93blB0cjxDaGlsZExpc3REYXRhPiBjaGlsZExpc3REYXRhID0g
YWRvcHRQdHIobmV3IENoaWxkTGlzdERhdGEpOworICAgIGNoaWxkTGlzdERhdGEtPmFkZGVkTm9k
ZXMgPSBhZGRlZDsKKyAgICBjaGlsZExpc3REYXRhLT5yZW1vdmVkTm9kZXMgPSByZW1vdmVkOwor
ICAgIGNoaWxkTGlzdERhdGEtPnByZXZpb3VzU2libGluZyA9IHByZXZpb3VzU2libGluZzsKKyAg
ICBjaGlsZExpc3REYXRhLT5uZXh0U2libGluZyA9IG5leHRTaWJsaW5nOworICAgIHJldHVybiBh
ZG9wdFJlZihuZXcgTXV0YXRpb25SZWNvcmQoQ2hpbGRMaXN0RmxhZywgdGFyZ2V0LCBjaGlsZExp
c3REYXRhLnJlbGVhc2UoKSkpOworfQorCitQYXNzUmVmUHRyPE11dGF0aW9uUmVjb3JkPiBNdXRh
dGlvblJlY29yZDo6Y3JlYXRlQXR0cmlidXRlcyhQYXNzUmVmUHRyPE5vZGU+IHRhcmdldCwgY29u
c3QgQXRvbWljU3RyaW5nJiBhdHRyaWJ1dGVOYW1lLCBjb25zdCBBdG9taWNTdHJpbmcmIGF0dHJp
YnV0ZU5hbWVzcGFjZSkKK3sKKyAgICBPd25QdHI8QXR0cmlidXRlc0RhdGE+IGF0dHJEYXRhID0g
YWRvcHRQdHIobmV3IEF0dHJpYnV0ZXNEYXRhKTsKKyAgICBhdHRyRGF0YS0+bG9jYWxOYW1lID0g
YXR0cmlidXRlTmFtZTsKKyAgICBhdHRyRGF0YS0+bmFtZXNwYWNlVVJJID0gYXR0cmlidXRlTmFt
ZXNwYWNlOworICAgIHJldHVybiBhZG9wdFJlZihuZXcgTXV0YXRpb25SZWNvcmQoQXR0cmlidXRl
c0ZsYWcsIHRhcmdldCwgYXR0ckRhdGEucmVsZWFzZSgpKSk7Cit9CisKK1Bhc3NSZWZQdHI8TXV0
YXRpb25SZWNvcmQ+IE11dGF0aW9uUmVjb3JkOjpjcmVhdGVDaGFyYWN0ZXJEYXRhKFBhc3NSZWZQ
dHI8Tm9kZT4gdGFyZ2V0KQoreworICAgIHJldHVybiBhZG9wdFJlZihuZXcgTXV0YXRpb25SZWNv
cmQoQ2hhcmFjdGVyRGF0YUZsYWcsIHRhcmdldCwgYWRvcHRQdHIobmV3IENoYXJhY3RlckRhdGFE
YXRhKSkpOworfQorCitjb25zdCBBdG9taWNTdHJpbmcmIE11dGF0aW9uUmVjb3JkOjp0eXBlKCkK
K3sKKyAgICBERUZJTkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0cmluZywgY2hpbGRMaXN0LCAoImNo
aWxkTGlzdCIpKTsKKyAgICBERUZJTkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0cmluZywgYXR0cmli
dXRlcywgKCJhdHRyaWJ1dGVzIikpOworICAgIERFRklORV9TVEFUSUNfTE9DQUwoQXRvbWljU3Ry
aW5nLCBjaGFyYWN0ZXJEYXRhLCAoImNoYXJhY3RlckRhdGEiKSk7CisKKyAgICBzd2l0Y2ggKG1f
dHlwZUZsYWcpIHsKKyAgICBjYXNlIENoaWxkTGlzdEZsYWc6CisgICAgICAgIHJldHVybiBjaGls
ZExpc3Q7CisgICAgY2FzZSBBdHRyaWJ1dGVzRmxhZzoKKyAgICAgICAgcmV0dXJuIGF0dHJpYnV0
ZXM7CisgICAgY2FzZSBDaGFyYWN0ZXJEYXRhRmxhZzoKKyAgICAgICAgcmV0dXJuIGNoYXJhY3Rl
ckRhdGE7CisgICAgfQorICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgIHJldHVybiBlbXB0
eUF0b207Cit9CisKK2NvbnN0IFN0cmluZyYgTXV0YXRpb25SZWNvcmQ6Om9sZFZhbHVlKCkKK3sK
KyAgICBpZiAobV90eXBlRmxhZyA9PSBBdHRyaWJ1dGVzRmxhZykKKyAgICAgICAgcmV0dXJuIGV4
dHJhRGF0YTxBdHRyaWJ1dGVzRGF0YT4oKS0+b2xkVmFsdWU7CisgICAgaWYgKG1fdHlwZUZsYWcg
PT0gQ2hhcmFjdGVyRGF0YUZsYWcpCisgICAgICAgIHJldHVybiBleHRyYURhdGE8Q2hhcmFjdGVy
RGF0YURhdGE+KCktPm9sZFZhbHVlOworICAgIHJldHVybiBudWxsQXRvbTsKK30KKwordm9pZCBN
dXRhdGlvblJlY29yZDo6c2V0T2xkVmFsdWUoY29uc3QgU3RyaW5nJiB2YWwpCit7CisgICAgaWYg
KG1fdHlwZUZsYWcgPT0gQXR0cmlidXRlc0ZsYWcpCisgICAgICAgIGV4dHJhRGF0YTxBdHRyaWJ1
dGVzRGF0YT4oKS0+b2xkVmFsdWUgPSB2YWw7CisgICAgZWxzZSBpZiAobV90eXBlRmxhZyA9PSBD
aGFyYWN0ZXJEYXRhRmxhZykKKyAgICAgICAgZXh0cmFEYXRhPENoYXJhY3RlckRhdGFEYXRhPigp
LT5vbGRWYWx1ZSA9IHZhbDsKK30KKworTXV0YXRpb25SZWNvcmQ6Ok11dGF0aW9uUmVjb3JkKE11
dGF0aW9uVHlwZUZsYWcgdHlwZUZsYWcsIFBhc3NSZWZQdHI8Tm9kZT4gdGFyZ2V0LCBQYXNzT3du
UHRyPEV4dHJhRGF0YT4gZXh0cmFEYXRhKQorICAgIDogbV90eXBlRmxhZyh0eXBlRmxhZykKKyAg
ICAsIG1fdGFyZ2V0KHRhcmdldCkKKyAgICAsIG1fZXh0cmFEYXRhKGV4dHJhRGF0YSkKK3sKK30K
KworTXV0YXRpb25SZWNvcmQ6On5NdXRhdGlvblJlY29yZCgpCit7Cit9CisKK30gLy8gbmFtZXNw
YWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEVOQUJMRShNVVRBVElPTl9PQlNFUlZFUlMpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vTXV0YXRpb25SZWNvcmQuaCBiL1NvdXJjZS9XZWJD
b3JlL2RvbS9NdXRhdGlvblJlY29yZC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmY0NmUwODNkZWZhNTA2YmY5NTM2
ZjNmMWVlYjFjYzlhMzVhNjI2ZDcKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9k
b20vTXV0YXRpb25SZWNvcmQuaApAQCAtMCwwICsxLDEzNiBAQAorLyoKKyAqIENvcHlyaWdodCAo
QykgMjAxMSBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zIGFyZQorICogbWV0OgorICoKKyAqICAgICAqIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
CisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlCisgKiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCisgKiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCisgKiBkaXN0cmlidXRpb24uCisg
KiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2Yg
aXRzCisgKiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHBy
b2R1Y3RzIGRlcml2ZWQgZnJvbQorICogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHBy
aW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVE
IEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCisgKiAiQVMgSVMiIEFO
RCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAor
ICogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SCisgKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
SU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAorICogT1dORVIgT1IgQ09OVFJJQlVUT1JT
IEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCisgKiBTUEVD
SUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQg
Tk9UCisgKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOyBMT1NTIE9GIFVTRSwKKyAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorICogVEhFT1JZIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICog
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgTXV0YXRpb25SZWNv
cmRfaAorI2RlZmluZSBNdXRhdGlvblJlY29yZF9oCisKKyNpZiBFTkFCTEUoTVVUQVRJT05fT0JT
RVJWRVJTKQorCisjaW5jbHVkZSAiUGxhdGZvcm1TdHJpbmcuaCIKKyNpbmNsdWRlIDx3dGYvT3du
UHRyLmg+CisjaW5jbHVkZSA8d3RmL1Bhc3NPd25QdHIuaD4KKyNpbmNsdWRlIDx3dGYvUGFzc1Jl
ZlB0ci5oPgorI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CisjaW5jbHVkZSA8d3RmL1JlZlB0
ci5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIE5vZGU7CitjbGFzcyBOb2RlTGlz
dDsKKworY2xhc3MgTXV0YXRpb25SZWNvcmQgOiBwdWJsaWMgUmVmQ291bnRlZDxNdXRhdGlvblJl
Y29yZD4geworcHVibGljOgorICAgIHN0YXRpYyBQYXNzUmVmUHRyPE11dGF0aW9uUmVjb3JkPiBj
cmVhdGVDaGlsZExpc3QoUGFzc1JlZlB0cjxOb2RlPiB0YXJnZXQsIFBhc3NSZWZQdHI8Tm9kZUxp
c3Q+IGFkZGVkLCBQYXNzUmVmUHRyPE5vZGVMaXN0PiByZW1vdmVkLCBQYXNzUmVmUHRyPE5vZGU+
IHByZXZpb3VzU2libGluZywgUGFzc1JlZlB0cjxOb2RlPiBuZXh0U2libGluZyk7CisgICAgc3Rh
dGljIFBhc3NSZWZQdHI8TXV0YXRpb25SZWNvcmQ+IGNyZWF0ZUF0dHJpYnV0ZXMoUGFzc1JlZlB0
cjxOb2RlPiB0YXJnZXQsIGNvbnN0IEF0b21pY1N0cmluZyYgYXR0cmlidXRlTmFtZSwgY29uc3Qg
QXRvbWljU3RyaW5nJiBhdHRyaWJ1dGVOYW1lc3BhY2UpOworICAgIHN0YXRpYyBQYXNzUmVmUHRy
PE11dGF0aW9uUmVjb3JkPiBjcmVhdGVDaGFyYWN0ZXJEYXRhKFBhc3NSZWZQdHI8Tm9kZT4gdGFy
Z2V0KTsKKworICAgIHZpcnR1YWwgfk11dGF0aW9uUmVjb3JkKCk7CisKKyAgICBjb25zdCBBdG9t
aWNTdHJpbmcmIHR5cGUoKTsKKyAgICBOb2RlKiB0YXJnZXQoKSB7IHJldHVybiBtX3RhcmdldC5n
ZXQoKTsgfQorCisgICAgTm9kZUxpc3QqIGFkZGVkTm9kZXMoKQorICAgIHsKKyAgICAgICAgcmV0
dXJuIG1fdHlwZUZsYWcgPT0gQ2hpbGRMaXN0RmxhZyA/IGV4dHJhRGF0YTxDaGlsZExpc3REYXRh
PigpLT5hZGRlZE5vZGVzLmdldCgpIDogMDsKKyAgICB9CisgICAgTm9kZUxpc3QqIHJlbW92ZWRO
b2RlcygpCisgICAgeworICAgICAgICByZXR1cm4gbV90eXBlRmxhZyA9PSBDaGlsZExpc3RGbGFn
ID8gZXh0cmFEYXRhPENoaWxkTGlzdERhdGE+KCktPnJlbW92ZWROb2Rlcy5nZXQoKSA6IDA7Cisg
ICAgfQorICAgIE5vZGUqIHByZXZpb3VzU2libGluZygpCisgICAgeworICAgICAgICByZXR1cm4g
bV90eXBlRmxhZyA9PSBDaGlsZExpc3RGbGFnID8gZXh0cmFEYXRhPENoaWxkTGlzdERhdGE+KCkt
PnByZXZpb3VzU2libGluZy5nZXQoKSA6IDA7CisgICAgfQorICAgIE5vZGUqIG5leHRTaWJsaW5n
KCkKKyAgICB7CisgICAgICAgIHJldHVybiBtX3R5cGVGbGFnID09IENoaWxkTGlzdEZsYWcgPyBl
eHRyYURhdGE8Q2hpbGRMaXN0RGF0YT4oKS0+bmV4dFNpYmxpbmcuZ2V0KCkgOiAwOworICAgIH0K
KworICAgIGNvbnN0IEF0b21pY1N0cmluZyYgYXR0cmlidXRlTmFtZSgpCisgICAgeworICAgICAg
ICByZXR1cm4gbV90eXBlRmxhZyA9PSBBdHRyaWJ1dGVzRmxhZyA/IGV4dHJhRGF0YTxBdHRyaWJ1
dGVzRGF0YT4oKS0+bG9jYWxOYW1lIDogbnVsbEF0b207CisgICAgfQorICAgIGNvbnN0IEF0b21p
Y1N0cmluZyYgYXR0cmlidXRlTmFtZXNwYWNlKCkKKyAgICB7CisgICAgICAgIHJldHVybiBtX3R5
cGVGbGFnID09IEF0dHJpYnV0ZXNGbGFnID8gZXh0cmFEYXRhPEF0dHJpYnV0ZXNEYXRhPigpLT5u
YW1lc3BhY2VVUkkgOiBudWxsQXRvbTsKKyAgICB9CisKKyAgICBjb25zdCBTdHJpbmcmIG9sZFZh
bHVlKCk7CisgICAgdm9pZCBzZXRPbGRWYWx1ZShjb25zdCBTdHJpbmcmKTsKKworICAgIGVudW0g
TXV0YXRpb25UeXBlRmxhZyB7CisgICAgICAgIENoaWxkTGlzdEZsYWcgPSAxIDw8IDAsCisgICAg
ICAgIEF0dHJpYnV0ZXNGbGFnID0gMSA8PCAxLAorICAgICAgICBDaGFyYWN0ZXJEYXRhRmxhZyA9
IDEgPDwgMgorICAgIH07CisgICAgTXV0YXRpb25UeXBlRmxhZyB0eXBlRmxhZygpIHsgcmV0dXJu
IG1fdHlwZUZsYWc7IH0KKworcHJpdmF0ZToKKyAgICBjbGFzcyBFeHRyYURhdGEgeworICAgIHB1
YmxpYzoKKyAgICAgICAgdmlydHVhbCB+RXh0cmFEYXRhKCkgeyB9CisgICAgcHJvdGVjdGVkOgor
ICAgICAgICBFeHRyYURhdGEoKSB7IH0KKyAgICB9OworCisgICAgc3RydWN0IENoaWxkTGlzdERh
dGEgOiBwdWJsaWMgRXh0cmFEYXRhIHsKKyAgICAgICAgUmVmUHRyPE5vZGVMaXN0PiBhZGRlZE5v
ZGVzOworICAgICAgICBSZWZQdHI8Tm9kZUxpc3Q+IHJlbW92ZWROb2RlczsKKyAgICAgICAgUmVm
UHRyPE5vZGU+IHByZXZpb3VzU2libGluZzsKKyAgICAgICAgUmVmUHRyPE5vZGU+IG5leHRTaWJs
aW5nOworICAgIH07CisKKyAgICBzdHJ1Y3QgQXR0cmlidXRlc0RhdGEgOiBwdWJsaWMgRXh0cmFE
YXRhIHsKKyAgICAgICAgQXRvbWljU3RyaW5nIGxvY2FsTmFtZTsKKyAgICAgICAgQXRvbWljU3Ry
aW5nIG5hbWVzcGFjZVVSSTsKKyAgICAgICAgU3RyaW5nIG9sZFZhbHVlOworICAgIH07CisKKyAg
ICBzdHJ1Y3QgQ2hhcmFjdGVyRGF0YURhdGEgOiBwdWJsaWMgRXh0cmFEYXRhIHsKKyAgICAgICAg
U3RyaW5nIG9sZFZhbHVlOworICAgIH07CisKKyAgICBNdXRhdGlvblJlY29yZChNdXRhdGlvblR5
cGVGbGFnLCBQYXNzUmVmUHRyPE5vZGU+IHRhcmdldCwgUGFzc093blB0cjxFeHRyYURhdGE+KTsK
KworICAgIHRlbXBsYXRlPGNsYXNzIEM+IEMqIGV4dHJhRGF0YSgpCisgICAgeworICAgICAgICBy
ZXR1cm4gc3RhdGljX2Nhc3Q8Qyo+KG1fZXh0cmFEYXRhLmdldCgpKTsKKyAgICB9CisKKyAgICBN
dXRhdGlvblR5cGVGbGFnIG1fdHlwZUZsYWc7CisgICAgUmVmUHRyPE5vZGU+IG1fdGFyZ2V0Owor
ICAgIE93blB0cjxFeHRyYURhdGE+IG1fZXh0cmFEYXRhOworfTsKKworfSAvLyBuYW1lc3BhY2Ug
V2ViQ29yZQorCisjZW5kaWYgLy8gRU5BQkxFKE1VVEFUSU9OX09CU0VSVkVSUykKKworI2VuZGlm
IC8vIE11dGF0aW9uUmVjb3JkX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9NdXRh
dGlvblJlY29yZC5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9kb20vTXV0YXRpb25SZWNvcmQuaWRsCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLjQ2ZTdhMjliYmI4NDUyNmI0MjkwZDkwNDY2ODAwMzhjZTBjYzViMjkKLS0tIC9k
ZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vTXV0YXRpb25SZWNvcmQuaWRsCkBAIC0w
LDAgKzEsNDggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTEgR29vZ2xlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKKyAqIG1l
dDoKKyAqCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogICAgICogUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQorICogY29weXJpZ2h0IG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
cgorICogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZQorICogZGlzdHJpYnV0aW9uLgorICogICAgICogTmVpdGhlciB0aGUgbmFtZSBv
ZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cworICogY29udHJpYnV0b3JzIG1heSBi
ZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KKyAqIHRo
aXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisg
KgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMg
QU5EIENPTlRSSUJVVE9SUworICogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVE
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgorICogQSBQQVJU
SUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZ
UklHSFQKKyAqIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLAorICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFV
RU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgUFJPQ1VS
RU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisgKiBE
QVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTiBBTlkKKyAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KKyAqLworCittb2R1bGUgY29yZSB7CisgICAgaW50ZXJmYWNlIFsKKyAgICAgICAgQ29uZGl0
aW9uYWw9TVVUQVRJT05fT0JTRVJWRVJTCisgICAgXSBNdXRhdGlvblJlY29yZCB7CisgICAgICAg
IHJlYWRvbmx5IGF0dHJpYnV0ZSBET01TdHJpbmcgdHlwZTsKKyAgICAgICAgcmVhZG9ubHkgYXR0
cmlidXRlIE5vZGUgdGFyZ2V0OworCisgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBOb2RlTGlz
dCBhZGRlZE5vZGVzOworICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgTm9kZUxpc3QgcmVtb3Zl
ZE5vZGVzOworICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgTm9kZSBwcmV2aW91c1NpYmxpbmc7
CisgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBOb2RlIG5leHRTaWJsaW5nOworCisgICAgICAg
IHJlYWRvbmx5IGF0dHJpYnV0ZSBET01TdHJpbmcgYXR0cmlidXRlTmFtZTsKKyAgICAgICAgcmVh
ZG9ubHkgYXR0cmlidXRlIERPTVN0cmluZyBhdHRyaWJ1dGVOYW1lc3BhY2U7CisKKyAgICAgICAg
cmVhZG9ubHkgYXR0cmlidXRlIERPTVN0cmluZyBvbGRWYWx1ZTsKKyAgICB9OworfQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>108757</attachid>
            <date>2011-09-26 17:05:06 -0700</date>
            <delta_ts>2011-09-26 17:20:18 -0700</delta_ts>
            <desc>Polymorphic, no MutationTypeFlag</desc>
            <filename>bug-68824-20110926170505.patch</filename>
            <type>text/plain</type>
            <size>28482</size>
            <attacher name="Adam Klein">adamk</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTU5NjgKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NN
YWtlTGlzdHMudHh0IGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKaW5kZXggZTc5ODM4
MGNiNWQxYTcwZDUxYWE0ODg2NmQyMTllNDVkMmEyMzYwZC4uZGNmNmU0MWZlNmM0OWVmZGJlZDU2
ZWIyMzM3YzRjNjk1ZDE0MDVmNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0
cy50eHQKKysrIGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKQEAgLTE2Myw2ICsxNjMs
NyBAQCBTRVQoV2ViQ29yZV9JRExfRklMRVMKICAgICBkb20vTWVzc2FnZVBvcnQuaWRsCiAgICAg
ZG9tL01vdXNlRXZlbnQuaWRsCiAgICAgZG9tL011dGF0aW9uRXZlbnQuaWRsCisgICAgZG9tL011
dGF0aW9uUmVjb3JkLmlkbAogICAgIGRvbS9OYW1lZE5vZGVNYXAuaWRsCiAgICAgZG9tL05vZGVG
aWx0ZXIuaWRsCiAgICAgZG9tL05vZGUuaWRsCkBAIC01NDcsNiArNTQ4LDcgQEAgU0VUKFdlYkNv
cmVfU09VUkNFUwogICAgIGRvbS9Nb3VzZUV2ZW50LmNwcAogICAgIGRvbS9Nb3VzZVJlbGF0ZWRF
dmVudC5jcHAKICAgICBkb20vTXV0YXRpb25FdmVudC5jcHAKKyAgICBkb20vTXV0YXRpb25SZWNv
cmQuY3BwCiAgICAgZG9tL05hbWVkTm9kZU1hcC5jcHAKICAgICBkb20vTmFtZU5vZGVMaXN0LmNw
cAogICAgIGRvbS9Ob2RlLmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9n
IGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IGY3M2VhY2UzYWZjMmFlOGI1MTNhM2M4
ZTBjOTg5MTc5OThiNTU1YmQuLmNkYmI5NDQxODE1ODI4NWUyMWIxNWViZjZlODIwYTE0OTAwZDZj
YWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSw0NiBAQAorMjAxMS0wOS0yNiAgQWRhbSBLbGVpbiAg
PGFkYW1rQGNocm9taXVtLm9yZz4KKworICAgICAgICBbTXV0YXRpb25PYnNlcnZlcnNdIGltcGxl
bWVudCBNdXRhdGlvblJlY29yZAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9Njg4MjQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICBJbXBsZW1lbnRzIE11dGF0aW9uUmVjb3JkIGFzIHNwZWNpZmllZCBpbiB0aGUg
dGhyZWFkIGF0CisgICAgICAgIGh0dHA6Ly9saXN0cy53My5vcmcvQXJjaGl2ZXMvUHVibGljL3B1
YmxpYy13ZWJhcHBzLzIwMTFKdWxTZXAvMTYyMi5odG1sLAorICAgICAgICBpbmNsdWRpbmcgc29t
ZSBtaW5vciBuYW1pbmcgY2hhbmdlcyBmcm9tIHRoZSBvcmlnaW5hbCBwcm9wb3NhbC4KKworICAg
ICAgICBUaGlzIGlzIGEgc21hbGwgcGFydCBvZiB0aGUgTXV0YXRpb25PYnNlcnZlciBBUEksIHNl
ZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Njg3Mjkg
Zm9yIHRoZSBtZXRhYnVnIGNvdmVyaW5nCisgICAgICAgIHRoaXMgZmVhdHVyZS4KKworICAgICAg
ICBObyBuZXcgdGVzdHMgYXMgdGhpcyBpc24ndCB5ZXQgZXhwb3NlZCB0byB0aGUgcGxhdGZvcm0u
CisKKyAgICAgICAgKiBDTWFrZUxpc3RzLnR4dDoKKyAgICAgICAgKiBEZXJpdmVkU291cmNlcy5j
cHA6CisgICAgICAgICogRGVyaXZlZFNvdXJjZXMubWFrZToKKyAgICAgICAgKiBHTlVtYWtlZmls
ZS5saXN0LmFtOgorICAgICAgICAqIFdlYkNvcmUuZ3lwaToKKyAgICAgICAgKiBXZWJDb3JlLnBy
bzoKKyAgICAgICAgKiBXZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvajoKKyAgICAgICAgKiBX
ZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogZG9tL011dGF0aW9u
UmVjb3JkLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpNdXRhdGlvblJlY29yZDo6Y3Jl
YXRlQ2hpbGRMaXN0KToKKyAgICAgICAgKFdlYkNvcmU6Ok11dGF0aW9uUmVjb3JkOjpjcmVhdGVB
dHRyaWJ1dGVzKToKKyAgICAgICAgKFdlYkNvcmU6Ok11dGF0aW9uUmVjb3JkOjpjcmVhdGVDaGFy
YWN0ZXJEYXRhKToKKyAgICAgICAgKFdlYkNvcmU6Ok11dGF0aW9uUmVjb3JkOjpNdXRhdGlvblJl
Y29yZCk6CisgICAgICAgIChXZWJDb3JlOjpNdXRhdGlvblJlY29yZDo6fk11dGF0aW9uUmVjb3Jk
KToKKyAgICAgICAgKiBkb20vTXV0YXRpb25SZWNvcmQuaDogQWRkZWQuCisgICAgICAgIChXZWJD
b3JlOjpNdXRhdGlvblJlY29yZDo6dGFyZ2V0KToKKyAgICAgICAgKFdlYkNvcmU6Ok11dGF0aW9u
UmVjb3JkOjphZGRlZE5vZGVzKToKKyAgICAgICAgKFdlYkNvcmU6Ok11dGF0aW9uUmVjb3JkOjpy
ZW1vdmVkTm9kZXMpOgorICAgICAgICAoV2ViQ29yZTo6TXV0YXRpb25SZWNvcmQ6OnByZXZpb3Vz
U2libGluZyk6CisgICAgICAgIChXZWJDb3JlOjpNdXRhdGlvblJlY29yZDo6bmV4dFNpYmxpbmcp
OgorICAgICAgICAoV2ViQ29yZTo6TXV0YXRpb25SZWNvcmQ6OmF0dHJpYnV0ZU5hbWUpOgorICAg
ICAgICAoV2ViQ29yZTo6TXV0YXRpb25SZWNvcmQ6OmF0dHJpYnV0ZU5hbWVzcGFjZSk6CisgICAg
ICAgIChXZWJDb3JlOjpNdXRhdGlvblJlY29yZDo6b2xkVmFsdWUpOgorICAgICAgICAoV2ViQ29y
ZTo6TXV0YXRpb25SZWNvcmQ6OnNldE9sZFZhbHVlKToKKyAgICAgICAgKiBkb20vTXV0YXRpb25S
ZWNvcmQuaWRsOiBBZGRlZC4KKwogMjAxMS0wOS0yMyAgU2ltb24gRnJhc2VyICA8c2ltb24uZnJh
c2VyQGFwcGxlLmNvbT4KIAogICAgICAgICBSZXBhaW50IHRlc3RzIGRvbid0IHdvcmsgaW4gV2Vi
S2l0MgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMuY3BwIGIvU291
cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMuY3BwCmluZGV4IDhhNDU5ODZhZmZlYmY1MjRlMTRh
ZDk4YjExN2RmODEzYjUwZDE2YmYuLjg0ZjAyOTQ3YzkyMDg5OWVhMTY0MTk5NTY0YjRmZjFhYTI5
NTRmMWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5jcHAKQEAgLTI0NSw2ICsyNDUsNyBAQAog
I2luY2x1ZGUgIkpTTWV0YWRhdGFDYWxsYmFjay5jcHAiCiAjaW5jbHVkZSAiSlNNb3VzZUV2ZW50
LmNwcCIKICNpbmNsdWRlICJKU011dGF0aW9uRXZlbnQuY3BwIgorI2luY2x1ZGUgIkpTTXV0YXRp
b25SZWNvcmQuY3BwIgogI2luY2x1ZGUgIkpTTmFtZWROb2RlTWFwLmNwcCIKICNpbmNsdWRlICJK
U05hdmlnYXRvci5jcHAiCiAjaW5jbHVkZSAiSlNOYXZpZ2F0b3JVc2VyTWVkaWFFcnJvci5jcHAi
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtlIGIvU291cmNl
L1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZQppbmRleCBkZjgwOTEzNjBkNzA2N2Y3M2U0ZDAy
YTE5NGI3N2Q3ZWFhOWQ1YTRlLi43MmY0N2U0ZmQxMmE4M2EwNjgxOWIxYmFhYmY4MWYyMGRiZTcz
MTFhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtlCisrKyBi
L1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UKQEAgLTI5OCw2ICsyOTgsNyBAQCBE
T01fQ0xBU1NFUyA9IFwKICAgICBNZXRhZGF0YUNhbGxiYWNrIFwKICAgICBNb3VzZUV2ZW50IFwK
ICAgICBNdXRhdGlvbkV2ZW50IFwKKyAgICBNdXRhdGlvblJlY29yZCBcCiAgICAgTmFtZWROb2Rl
TWFwIFwKICAgICBOYXZpZ2F0b3IgXAogICAgIE5hdmlnYXRvclVzZXJNZWRpYUVycm9yIFwKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0gYi9Tb3VyY2UvV2Vi
Q29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCmluZGV4IDQxMGNhY2Y1MDQwMmJiMzI2NjRhMjk3MjJi
NDZmMmJmOWIzYmFjMWIuLmRkNjY5OGRmMTBkNTQ1NzUyMjU2YjM4NzRhNDQ4ZDFiYTM5MTlkMmQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0KKysrIGIvU291
cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbQpAQCAtMzc2LDYgKzM3Niw4IEBAIHdlYmNv
cmVfYnVpbHRfc291cmNlcyArPSBcCiAJRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU01vdXNlRXZl
bnQuaCBcCiAJRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU011dGF0aW9uRXZlbnQuY3BwIFwKIAlE
ZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTTXV0YXRpb25FdmVudC5oIFwKKwlEZXJpdmVkU291cmNl
cy9XZWJDb3JlL0pTTXV0YXRpb25SZWNvcmQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9XZWJDb3Jl
L0pTTXV0YXRpb25SZWNvcmQuaCBcCiAJRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU05hbWVkTm9k
ZU1hcC5jcHAgXAogCURlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNOYW1lZE5vZGVNYXAuaCBcCiAJ
RGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU05hdmlnYXRvci5jcHAgXApAQCAtMTIyMSw2ICsxMjIz
LDggQEAgd2ViY29yZV9zb3VyY2VzICs9IFwKIAlTb3VyY2UvV2ViQ29yZS9kb20vTW91c2VSZWxh
dGVkRXZlbnQuaCBcCiAJU291cmNlL1dlYkNvcmUvZG9tL011dGF0aW9uRXZlbnQuY3BwIFwKIAlT
b3VyY2UvV2ViQ29yZS9kb20vTXV0YXRpb25FdmVudC5oIFwKKwlTb3VyY2UvV2ViQ29yZS9kb20v
TXV0YXRpb25SZWNvcmQuY3BwIFwKKwlTb3VyY2UvV2ViQ29yZS9kb20vTXV0YXRpb25SZWNvcmQu
aCBcCiAJU291cmNlL1dlYkNvcmUvZG9tL05hbWVkTm9kZU1hcC5jcHAgXAogCVNvdXJjZS9XZWJD
b3JlL2RvbS9OYW1lZE5vZGVNYXAuaCBcCiAJU291cmNlL1dlYkNvcmUvZG9tL05hbWVOb2RlTGlz
dC5jcHAgXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpIGIvU291cmNl
L1dlYkNvcmUvV2ViQ29yZS5neXBpCmluZGV4IDc2ZjRlNjU1NzEyNDBjMDZlM2M0NDJhOTc3NTY0
OTM5MTgzNmQ0NDYuLmUwYzk1YmJhYTQ2ZWIwNzIxN2Q2NWQzZWY3NDNkYzg3Y2UxNzU2ZTcgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9XZWJDb3JlLmd5cGkKQEAgLTExODUsNiArMTE4NSw3IEBACiAgICAgICAgICAgICAnZG9tL01l
c3NhZ2VQb3J0LmlkbCcsCiAgICAgICAgICAgICAnZG9tL01vdXNlRXZlbnQuaWRsJywKICAgICAg
ICAgICAgICdkb20vTXV0YXRpb25FdmVudC5pZGwnLAorICAgICAgICAgICAgJ2RvbS9NdXRhdGlv
blJlY29yZC5pZGwnLAogICAgICAgICAgICAgJ2RvbS9OYW1lZE5vZGVNYXAuaWRsJywKICAgICAg
ICAgICAgICdkb20vTm9kZS5pZGwnLAogICAgICAgICAgICAgJ2RvbS9Ob2RlRmlsdGVyLmlkbCcs
CkBAIC01MTk5LDYgKzUyMDAsOCBAQAogICAgICAgICAgICAgJ2RvbS9Nb3VzZVJlbGF0ZWRFdmVu
dC5jcHAnLAogICAgICAgICAgICAgJ2RvbS9NdXRhdGlvbkV2ZW50LmNwcCcsCiAgICAgICAgICAg
ICAnZG9tL011dGF0aW9uRXZlbnQuaCcsCisgICAgICAgICAgICAnZG9tL011dGF0aW9uUmVjb3Jk
LmNwcCcsCisgICAgICAgICAgICAnZG9tL011dGF0aW9uUmVjb3JkLmgnLAogICAgICAgICAgICAg
J2RvbS9OYW1lTm9kZUxpc3QuY3BwJywKICAgICAgICAgICAgICdkb20vTmFtZU5vZGVMaXN0Lmgn
LAogICAgICAgICAgICAgJ2RvbS9OYW1lZE5vZGVNYXAuY3BwJywKQEAgLTc0NjUsNiArNzQ2OCw4
IEBACiAgICAgICAgICAgICAnPChQUk9EVUNUX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9K
U01vdXNlRXZlbnQuaCcsCiAgICAgICAgICAgICAnPChQUk9EVUNUX0RJUikvRGVyaXZlZFNvdXJj
ZXMvV2ViQ29yZS9KU011dGF0aW9uRXZlbnQuY3BwJywKICAgICAgICAgICAgICc8KFBST0RVQ1Rf
RElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTTXV0YXRpb25FdmVudC5oJywKKyAgICAgICAg
ICAgICc8KFBST0RVQ1RfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTTXV0YXRpb25SZWNv
cmQuY3BwJywKKyAgICAgICAgICAgICc8KFBST0RVQ1RfRElSKS9EZXJpdmVkU291cmNlcy9XZWJD
b3JlL0pTTXV0YXRpb25SZWNvcmQuaCcsCiAgICAgICAgICAgICAnPChQUk9EVUNUX0RJUikvRGVy
aXZlZFNvdXJjZXMvV2ViQ29yZS9KU05hbWVkTm9kZU1hcC5jcHAnLAogICAgICAgICAgICAgJzwo
UFJPRFVDVF9ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNOYW1lZE5vZGVNYXAuaCcsCiAg
ICAgICAgICAgICAnPChQUk9EVUNUX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU05hdmln
YXRvci5jcHAnLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5wcm8gYi9Tb3Vy
Y2UvV2ViQ29yZS9XZWJDb3JlLnBybwppbmRleCA2MDI4ZTk2ODU5ZGE5YzhjZTM0MmIwZTQ5ZDRj
MGU5MGIxNWVmZjY1Li43NzhiZjhhMmZmOWNiNTVjZjUyOTZjNzFkMjljODAxZGY5NTE4YmRhIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnBybworKysgYi9Tb3VyY2UvV2ViQ29y
ZS9XZWJDb3JlLnBybwpAQCAtNTEwLDYgKzUxMCw3IEBAIFNPVVJDRVMgKz0gXAogICAgIGRvbS9N
b3VzZUV2ZW50LmNwcCBcCiAgICAgZG9tL01vdXNlUmVsYXRlZEV2ZW50LmNwcCBcCiAgICAgZG9t
L011dGF0aW9uRXZlbnQuY3BwIFwKKyAgICBkb20vTXV0YXRpb25SZWNvcmQuY3BwIFwKICAgICBk
b20vTmFtZWROb2RlTWFwLmNwcCBcCiAgICAgZG9tL05hbWVOb2RlTGlzdC5jcHAgXAogICAgIGRv
bS9Ob2RlLmNwcCBcCkBAIC0xNTIzLDYgKzE1MjQsNyBAQCBIRUFERVJTICs9IFwKICAgICBkb20v
TW91c2VFdmVudC5oIFwKICAgICBkb20vTW91c2VSZWxhdGVkRXZlbnQuaCBcCiAgICAgZG9tL011
dGF0aW9uRXZlbnQuaCBcCisgICAgZG9tL011dGF0aW9uUmVjb3JkLmggXAogICAgIGRvbS9OYW1l
ZE5vZGVNYXAuaCBcCiAgICAgZG9tL05hbWVOb2RlTGlzdC5oIFwKICAgICBkb20vTm9kZUZpbHRl
ckNvbmRpdGlvbi5oIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9q
L1dlYkNvcmUudmNwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52
Y3Byb2oKaW5kZXggNTgxNTE4Yjk2ZDYyNjE4OGM1NTVhMzcwZWUyMzNmYTNhNTM1Yjc4ZC4uZGU0
YmQ2OTgzMWJmODViNWJlYjE5NWUzMDNiMzlhYjBlOGUyZjIzNiAxMDA3NTUKLS0tIGEvU291cmNl
L1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oKKysrIGIvU291cmNlL1dlYkNv
cmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oKQEAgLTExNjU0LDYgKzExNjU0LDYyIEBA
CiAJCQkJPgogCQkJPC9GaWxlPgogCQkJPEZpbGUKKwkJCQlSZWxhdGl2ZVBhdGg9IiQoQ29uZmln
dXJhdGlvbkJ1aWxkRGlyKVxvYmpcJChQcm9qZWN0TmFtZSlcRGVyaXZlZFNvdXJjZXNcSlNNdXRh
dGlvblJlY29yZC5jcHAiCisJCQkJPgorCQkJCTxGaWxlQ29uZmlndXJhdGlvbgorCQkJCQlOYW1l
PSJEZWJ1Z3xXaW4zMiIKKwkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiCisJCQkJCT4KKwkJ
CQkJPFRvb2wKKwkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiCisJCQkJCS8+CisJCQkJPC9G
aWxlQ29uZmlndXJhdGlvbj4KKwkJCQk8RmlsZUNvbmZpZ3VyYXRpb24KKwkJCQkJTmFtZT0iUmVs
ZWFzZXxXaW4zMiIKKwkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiCisJCQkJCT4KKwkJCQkJ
PFRvb2wKKwkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiCisJCQkJCS8+CisJCQkJPC9GaWxl
Q29uZmlndXJhdGlvbj4KKwkJCQk8RmlsZUNvbmZpZ3VyYXRpb24KKwkJCQkJTmFtZT0iRGVidWdf
Q2Fpcm9fQ0ZMaXRlfFdpbjMyIgorCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIKKwkJCQkJ
PgorCQkJCQk8VG9vbAorCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIKKwkJCQkJLz4KKwkJ
CQk8L0ZpbGVDb25maWd1cmF0aW9uPgorCQkJCTxGaWxlQ29uZmlndXJhdGlvbgorCQkJCQlOYW1l
PSJSZWxlYXNlX0NhaXJvX0NGTGl0ZXxXaW4zMiIKKwkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRy
dWUiCisJCQkJCT4KKwkJCQkJPFRvb2wKKwkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiCisJ
CQkJCS8+CisJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4KKwkJCQk8RmlsZUNvbmZpZ3VyYXRpb24K
KwkJCQkJTmFtZT0iRGVidWdfQWxsfFdpbjMyIgorCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1
ZSIKKwkJCQkJPgorCQkJCQk8VG9vbAorCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIKKwkJ
CQkJLz4KKwkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPgorCQkJCTxGaWxlQ29uZmlndXJhdGlvbgor
CQkJCQlOYW1lPSJQcm9kdWN0aW9ufFdpbjMyIgorCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1
ZSIKKwkJCQkJPgorCQkJCQk8VG9vbAorCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIKKwkJ
CQkJLz4KKwkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPgorCQkJPC9GaWxlPgorCQkJPEZpbGUKKwkJ
CQlSZWxhdGl2ZVBhdGg9IiQoQ29uZmlndXJhdGlvbkJ1aWxkRGlyKVxvYmpcJChQcm9qZWN0TmFt
ZSlcRGVyaXZlZFNvdXJjZXNcSlNNdXRhdGlvblJlY29yZC5oIgorCQkJCT4KKwkJCTwvRmlsZT4K
KwkJCTxGaWxlCiAJCQkJUmVsYXRpdmVQYXRoPSIkKENvbmZpZ3VyYXRpb25CdWlsZERpcilcb2Jq
XCQoUHJvamVjdE5hbWUpXERlcml2ZWRTb3VyY2VzXEpTTmFtZWROb2RlTWFwLmNwcCIKIAkJCQk+
CiAJCQkJPEZpbGVDb25maWd1cmF0aW9uCkBAIC00Njk5OCw2ICs0NzA1NCw2MiBAQAogCQkJCT4K
IAkJCTwvRmlsZT4KIAkJCTxGaWxlCisJCQkJUmVsYXRpdmVQYXRoPSIuLlxkb21cTXV0YXRpb25S
ZWNvcmQuY3BwIgorCQkJCT4KKwkJCQk8RmlsZUNvbmZpZ3VyYXRpb24KKwkJCQkJTmFtZT0iRGVi
dWd8V2luMzIiCisJCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIgorCQkJCQk+CisJCQkJCTxU
b29sCisJCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIgorCQkJCQkvPgorCQkJCTwvRmlsZUNv
bmZpZ3VyYXRpb24+CisJCQkJPEZpbGVDb25maWd1cmF0aW9uCisJCQkJCU5hbWU9IlJlbGVhc2V8
V2luMzIiCisJCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIgorCQkJCQk+CisJCQkJCTxUb29s
CisJCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIgorCQkJCQkvPgorCQkJCTwvRmlsZUNvbmZp
Z3VyYXRpb24+CisJCQkJPEZpbGVDb25maWd1cmF0aW9uCisJCQkJCU5hbWU9IkRlYnVnX0NhaXJv
X0NGTGl0ZXxXaW4zMiIKKwkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiCisJCQkJCT4KKwkJ
CQkJPFRvb2wKKwkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiCisJCQkJCS8+CisJCQkJPC9G
aWxlQ29uZmlndXJhdGlvbj4KKwkJCQk8RmlsZUNvbmZpZ3VyYXRpb24KKwkJCQkJTmFtZT0iUmVs
ZWFzZV9DYWlyb19DRkxpdGV8V2luMzIiCisJCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIgor
CQkJCQk+CisJCQkJCTxUb29sCisJCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIgorCQkJCQkv
PgorCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+CisJCQkJPEZpbGVDb25maWd1cmF0aW9uCisJCQkJ
CU5hbWU9IkRlYnVnX0FsbHxXaW4zMiIKKwkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiCisJ
CQkJCT4KKwkJCQkJPFRvb2wKKwkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiCisJCQkJCS8+
CisJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4KKwkJCQk8RmlsZUNvbmZpZ3VyYXRpb24KKwkJCQkJ
TmFtZT0iUHJvZHVjdGlvbnxXaW4zMiIKKwkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiCisJ
CQkJCT4KKwkJCQkJPFRvb2wKKwkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiCisJCQkJCS8+
CisJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4KKwkJCTwvRmlsZT4KKwkJCTxGaWxlCisJCQkJUmVs
YXRpdmVQYXRoPSIuLlxkb21cTXV0YXRpb25SZWNvcmQuaCIKKwkJCQk+CisJCQk8L0ZpbGU+CisJ
CQk8RmlsZQogCQkJCVJlbGF0aXZlUGF0aD0iLi5cZG9tXE5hbWVkTm9kZU1hcC5jcHAiCiAJCQkJ
PgogCQkJPC9GaWxlPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qCmluZGV4IDcwMDQ0ZGFhYzkyZDQ1YmM3MzM1ZGEwNjY1NjViOWRmNTZhMWQw
YzQuLjY3NjMxOTFmMWE5MDNiOGQxOGFmM2RhZTk2Mjc3NmZjYzBjMDVlN2QgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9T
b3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTU0Mzcs
NiArNTQzNywxMCBAQAogCQlDNUVCREQ4NDEwNUVEREVDMDA1NjgxNkYgLyogU3RvcmFnZUV2ZW50
RGlzcGF0Y2hlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gQzVFQkREODExMDVFRERFQzAwNTY4MTZGIC8qIFN0b3JhZ2VFdmVudERpc3BhdGNoZXIuaCAq
LzsgfTsKIAkJQzZENzRBRDUwOUFBMjgyRTAwMEIwQTUyIC8qIE1vZGlmeVNlbGVjdGlvbkxpc3RM
ZXZlbC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQzZE
NzRBRDMwOUFBMjgyRTAwMEIwQTUyIC8qIE1vZGlmeVNlbGVjdGlvbkxpc3RMZXZlbC5oICovOyB9
OwogCQlDNkQ3NEFFNDA5QUEyOTBBMDAwQjBBNTIgLyogTW9kaWZ5U2VsZWN0aW9uTGlzdExldmVs
LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEM2RDc0
QUUzMDlBQTI5MEEwMDBCMEE1MiAvKiBNb2RpZnlTZWxlY3Rpb25MaXN0TGV2ZWwuY3BwICovOyB9
OworCQlDNkYwOEZCQzE0MzBGRThGMDA2ODU4NDkgLyogTXV0YXRpb25SZWNvcmQuY3BwIGluIFNv
dXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQzZGMDhGQjkxNDMwRkU4
RjAwNjg1ODQ5IC8qIE11dGF0aW9uUmVjb3JkLmNwcCAqLzsgfTsKKwkJQzZGMDhGQkQxNDMwRkU4
RjAwNjg1ODQ5IC8qIE11dGF0aW9uUmVjb3JkLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSBDNkYwOEZCQTE0MzBGRThGMDA2ODU4NDkgLyogTXV0YXRpb25S
ZWNvcmQuaCAqLzsgfTsKKwkJQzZGMDhGQzkxNDMxMDAwRDAwNjg1ODQ5IC8qIEpTTXV0YXRpb25S
ZWNvcmQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
QzZGMDhGQzcxNDMxMDAwRDAwNjg1ODQ5IC8qIEpTTXV0YXRpb25SZWNvcmQuY3BwICovOyB9Owor
CQlDNkYwOEZDQTE0MzEwMDBEMDA2ODU4NDkgLyogSlNNdXRhdGlvblJlY29yZC5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQzZGMDhGQzgxNDMxMDAwRDAw
Njg1ODQ5IC8qIEpTTXV0YXRpb25SZWNvcmQuaCAqLzsgfTsKIAkJQzZGNDEwNDcxMzBDNkU4OTAw
MzkzREU0IC8qIEVudHJ5QmFzZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSBDNkY0MTA0NjEzMEM2RTg5MDAzOTNERTQgLyogRW50cnlCYXNlLmNwcCAq
LzsgfTsKIAkJQ0EzQkY2N0MxMEQ5OUJBRTAwRTZDRTUzIC8qIFNjcm9sbEFuaW1hdG9yLmNwcCBp
biBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENBM0JGNjdCMTBE
OTlCQUUwMEU2Q0U1MyAvKiBTY3JvbGxBbmltYXRvci5jcHAgKi87IH07CiAJCUNBM0JGNjdFMTBE
OTlCQUUwMEU2Q0U1MyAvKiBTY3JvbGxBbmltYXRvci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0EzQkY2N0QxMEQ5OUJBRTAwRTZDRTUzIC8qIFNjcm9s
bEFuaW1hdG9yLmggKi87IH07CkBAIC0xMjIwNCw2ICsxMjIwOCwxMSBAQAogCQlDNUVCREQ4MTEw
NUVEREVDMDA1NjgxNkYgLyogU3RvcmFnZUV2ZW50RGlzcGF0Y2hlci5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBTdG9yYWdlRXZlbnREaXNwYXRjaGVyLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCUM2RDc0QUQzMDlBQTI4MkUwMDBCMEE1MiAvKiBNb2RpZnlTZWxl
Y3Rpb25MaXN0TGV2ZWwuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTW9kaWZ5
U2VsZWN0aW9uTGlzdExldmVsLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUM2RDc0
QUUzMDlBQTI5MEEwMDBCMEE1MiAvKiBNb2RpZnlTZWxlY3Rpb25MaXN0TGV2ZWwuY3BwICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gTW9kaWZ5U2VsZWN0aW9uTGlzdExldmVs
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQzZGMDhGQjkxNDMwRkU4RjAwNjg1
ODQ5IC8qIE11dGF0aW9uUmVjb3JkLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsg
cGF0aCA9IE11dGF0aW9uUmVjb3JkLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJ
QzZGMDhGQkExNDMwRkU4RjAwNjg1ODQ5IC8qIE11dGF0aW9uUmVjb3JkLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE11dGF0aW9uUmVjb3JkLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CisJCUM2RjA4RkJCMTQzMEZFOEYwMDY4NTg0OSAvKiBNdXRhdGlvblJlY29yZC5p
ZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gTXV0YXRpb25SZWNvcmQuaWRsOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OworCQlDNkYwOEZDNzE0MzEwMDBEMDA2ODU4NDkgLyogSlNNdXRhdGlv
blJlY29yZC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU011dGF0
aW9uUmVjb3JkLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQzZGMDhGQzgxNDMx
MDAwRDAwNjg1ODQ5IC8qIEpTTXV0YXRpb25SZWNvcmQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gSlNNdXRhdGlvblJlY29yZC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQlDNkY0MTA0NjEzMEM2RTg5MDAzOTNERTQgLyogRW50cnlCYXNlLmNwcCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IEVudHJ5QmFzZS5jcHA7IHBhdGggPSBmaWxlYXBp
L0VudHJ5QmFzZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUNBM0JGNjdCMTBE
OTlCQUUwMEU2Q0U1MyAvKiBTY3JvbGxBbmltYXRvci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5jcHA7IHBhdGggPSBTY3JvbGxBbmltYXRvci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCUNBM0JGNjdEMTBEOTlCQUUwMEU2Q0U1MyAvKiBTY3JvbGxBbmltYXRvci5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTY3JvbGxBbmltYXRvci5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTc0MTgsNiArMTc0MjcsOCBAQAogCQkJCTQ5QzlGNDhC
MTNENTdEMzIwMDUyNjAwQSAvKiBKU01lZGlhU3RyZWFtVHJhY2suaCAqLywKIAkJCQk0OUM5RjQ4
QzEzRDU3RDMyMDA1MjYwMEEgLyogSlNNZWRpYVN0cmVhbVRyYWNrTGlzdC5jcHAgKi8sCiAJCQkJ
NDlDOUY0OEQxM0Q1N0QzMjAwNTI2MDBBIC8qIEpTTWVkaWFTdHJlYW1UcmFja0xpc3QuaCAqLywK
KwkJCQlDNkYwOEZDNzE0MzEwMDBEMDA2ODU4NDkgLyogSlNNdXRhdGlvblJlY29yZC5jcHAgKi8s
CisJCQkJQzZGMDhGQzgxNDMxMDAwRDAwNjg1ODQ5IC8qIEpTTXV0YXRpb25SZWNvcmQuaCAqLywK
IAkJCQlCQ0Q5QzJCQzBDMTdCNjlFMDA1QzkwQTIgLyogSlNOYW1lZE5vZGVNYXAuY3BwICovLAog
CQkJCUJDRDlDMkJEMEMxN0I2OUUwMDVDOTBBMiAvKiBKU05hbWVkTm9kZU1hcC5oICovLAogCQkJ
CTE0REMwRDM1MDlGRUQwNzMwMDdCMDIzNSAvKiBKU05vZGUuY3BwICovLApAQCAtMjAwMjQsNiAr
MjAwMzUsOSBAQAogCQkJCTg1MDMxQjMzMEE0NEVGQzcwMEY5OTJFMCAvKiBNdXRhdGlvbkV2ZW50
LmNwcCAqLywKIAkJCQk4NTAzMUIzNDBBNDRFRkM3MDBGOTkyRTAgLyogTXV0YXRpb25FdmVudC5o
ICovLAogCQkJCTkzRUVDMUYzMDlDMjg3NzcwMEM1MTVEMSAvKiBNdXRhdGlvbkV2ZW50LmlkbCAq
LywKKwkJCQlDNkYwOEZCOTE0MzBGRThGMDA2ODU4NDkgLyogTXV0YXRpb25SZWNvcmQuY3BwICov
LAorCQkJCUM2RjA4RkJBMTQzMEZFOEYwMDY4NTg0OSAvKiBNdXRhdGlvblJlY29yZC5oICovLAor
CQkJCUM2RjA4RkJCMTQzMEZFOEYwMDY4NTg0OSAvKiBNdXRhdGlvblJlY29yZC5pZGwgKi8sCiAJ
CQkJQkNGMzRBMzYxMUEyMzFDRDAwQzcxODA0IC8qIE5hbWVkTm9kZU1hcC5jcHAgKi8sCiAJCQkJ
QTgxODcyMTgwOTc3RDNDMDAwNTgyNkQ5IC8qIE5hbWVkTm9kZU1hcC5oICovLAogCQkJCTg1QUNB
OUY5MEE5QjYzMTAwMDY3MUU5MCAvKiBOYW1lZE5vZGVNYXAuaWRsICovLApAQCAtMjIxNDUsNiAr
MjIxNTksNyBAQAogCQkJCTg5ODc4NUI5MTIyQ0EyQTcwMDNBQUJEQSAvKiBKU01ldGFkYXRhQ2Fs
bGJhY2suaCBpbiBIZWFkZXJzICovLAogCQkJCUE4NjYyOUQxMDlEQTJCNDgwMDk2MzNBNSAvKiBK
U01vdXNlRXZlbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTY1REYzMUZDMDlEMUNDNjAwMDBCRTMy
NSAvKiBKU011dGF0aW9uRXZlbnQuaCBpbiBIZWFkZXJzICovLAorCQkJCUM2RjA4RkNBMTQzMTAw
MEQwMDY4NTg0OSAvKiBKU011dGF0aW9uUmVjb3JkLmggaW4gSGVhZGVycyAqLywKIAkJCQlCQ0Q5
QzJDMTBDMTdCNjlFMDA1QzkwQTIgLyogSlNOYW1lZE5vZGVNYXAuaCBpbiBIZWFkZXJzICovLAog
CQkJCUE5RDI0N0Y4MEQ3NTdFMzQwMEZERjk1OSAvKiBKU05hdmlnYXRvci5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJQjFFNTQ1RTAxMzQ2MkIwQjAwOTJBNTQ1IC8qIEpTTmF2aWdhdG9yVXNlck1lZGlh
RXJyb3IuaCBpbiBIZWFkZXJzICovLApAQCAtMjI1MTcsNiArMjI1MzIsNyBAQAogCQkJCTkzMzA5
REZDMDk5RTY0OTIwMDU2RTU4MSAvKiBNb3ZlU2VsZWN0aW9uQ29tbWFuZC5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJQjFBRDRFNjMxM0ExMkEwQjAwODQ2QjI3IC8qIE11dGFibGVUZXh0VHJhY2suaCBp
biBIZWFkZXJzICovLAogCQkJCTg1MDMxQjRBMEE0NEVGQzcwMEY5OTJFMCAvKiBNdXRhdGlvbkV2
ZW50LmggaW4gSGVhZGVycyAqLywKKwkJCQlDNkYwOEZCRDE0MzBGRThGMDA2ODU4NDkgLyogTXV0
YXRpb25SZWNvcmQuaCBpbiBIZWFkZXJzICovLAogCQkJCUE4MTg3MjIzMDk3N0QzQzAwMDU4MjZE
OSAvKiBOYW1lZE5vZGVNYXAuaCBpbiBIZWFkZXJzICovLAogCQkJCUE4MTg3MjFFMDk3N0QzQzAw
MDU4MjZEOSAvKiBOYW1lTm9kZUxpc3QuaCBpbiBIZWFkZXJzICovLAogCQkJCUUxMEI5QjZDMEI3
NDc1OTkwMDNFRDg5MCAvKiBOYXRpdmVYUGF0aE5TUmVzb2x2ZXIuaCBpbiBIZWFkZXJzICovLApA
QCAtMjUxNjcsNiArMjUxODMsNyBAQAogCQkJCTg5ODc4NUI4MTIyQ0EyQTcwMDNBQUJEQSAvKiBK
U01ldGFkYXRhQ2FsbGJhY2suY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQTg2NjI5RDIwOURBMkI0
ODAwOTYzM0E1IC8qIEpTTW91c2VFdmVudC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk2NURGMzFG
QjA5RDFDQzYwMDAwQkUzMjUgLyogSlNNdXRhdGlvbkV2ZW50LmNwcCBpbiBTb3VyY2VzICovLAor
CQkJCUM2RjA4RkM5MTQzMTAwMEQwMDY4NTg0OSAvKiBKU011dGF0aW9uUmVjb3JkLmNwcCBpbiBT
b3VyY2VzICovLAogCQkJCUJDRDlDMkMwMEMxN0I2OUUwMDVDOTBBMiAvKiBKU05hbWVkTm9kZU1h
cC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlCQ0Q5QzI2MzBDMTdBQTY3MDA1QzkwQTIgLyogSlNO
YW1lZE5vZGVNYXBDdXN0b20uY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQTlEMjQ3RjcwRDc1N0Uz
NDAwRkRGOTU5IC8qIEpTTmF2aWdhdG9yLmNwcCBpbiBTb3VyY2VzICovLApAQCAtMjU1NjYsNiAr
MjU1ODMsNyBAQAogCQkJCTkzMzA5REZCMDk5RTY0OTIwMDU2RTU4MSAvKiBNb3ZlU2VsZWN0aW9u
Q29tbWFuZC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlCMUFENEU2MjEzQTEyQTBCMDA4NDZCMjcg
LyogTXV0YWJsZVRleHRUcmFjay5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk4NTAzMUI0OTBBNDRF
RkM3MDBGOTkyRTAgLyogTXV0YXRpb25FdmVudC5jcHAgaW4gU291cmNlcyAqLywKKwkJCQlDNkYw
OEZCQzE0MzBGRThGMDA2ODU4NDkgLyogTXV0YXRpb25SZWNvcmQuY3BwIGluIFNvdXJjZXMgKi8s
CiAJCQkJQkNGMzRBMzcxMUEyMzFDRDAwQzcxODA0IC8qIE5hbWVkTm9kZU1hcC5jcHAgaW4gU291
cmNlcyAqLywKIAkJCQlBODE4NzIyNDA5NzdEM0MwMDA1ODI2RDkgLyogTmFtZU5vZGVMaXN0LmNw
cCBpbiBTb3VyY2VzICovLAogCQkJCUUxMEI5QjZEMEI3NDc1OTkwMDNFRDg5MCAvKiBOYXRpdmVY
UGF0aE5TUmVzb2x2ZXIuY3BwIGluIFNvdXJjZXMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9kb20vTXV0YXRpb25SZWNvcmQuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL011dGF0aW9u
UmVjb3JkLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kMjE2MDg2MGJkNDRlZTUyZThkNDg2MGMxNmMwMzk3OGQz
YjYxYzRiCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL011dGF0aW9uUmVj
b3JkLmNwcApAQCAtMCwwICsxLDE1MiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMSBHb29n
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zIGFyZQorICogbWV0OgorICoKKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAgICAgKiBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCisg
KiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyCisgKiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCisgKiBkaXN0cmlidXRpb24uCisgKiAgICAgKiBOZWl0
aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCisgKiBjb250
cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2
ZWQgZnJvbQorICogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4g
cGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZ
UklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCisgKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBU
TywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1Mg
Rk9SCisgKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQg
U0hBTEwgVEhFIENPUFlSSUdIVAorICogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBG
T1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCisgKiBTUEVDSUFMLCBFWEVNUExB
UlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1J
VEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NT
IE9GIFVTRSwKKyAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikg
SE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
CisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKworI2lmIEVOQUJM
RShNVVRBVElPTl9PQlNFUlZFUlMpCisKKyNpbmNsdWRlICJNdXRhdGlvblJlY29yZC5oIgorCisj
aW5jbHVkZSAiTm9kZS5oIgorI2luY2x1ZGUgIk5vZGVMaXN0LmgiCisjaW5jbHVkZSA8d3RmL0Fz
c2VydGlvbnMuaD4KKyNpbmNsdWRlIDx3dGYvU3RkTGliRXh0cmFzLmg+CisKK25hbWVzcGFjZSBX
ZWJDb3JlIHsKKworbmFtZXNwYWNlIHsKKworY2xhc3MgQ2hpbGRMaXN0UmVjb3JkIDogcHVibGlj
IE11dGF0aW9uUmVjb3JkIHsKK3B1YmxpYzoKKyAgICBDaGlsZExpc3RSZWNvcmQoUGFzc1JlZlB0
cjxOb2RlPiB0YXJnZXQsIFBhc3NSZWZQdHI8Tm9kZUxpc3Q+IGFkZGVkLCBQYXNzUmVmUHRyPE5v
ZGVMaXN0PiByZW1vdmVkLCBQYXNzUmVmUHRyPE5vZGU+IHByZXZpb3VzU2libGluZywgUGFzc1Jl
ZlB0cjxOb2RlPiBuZXh0U2libGluZykKKyAgICAgICAgOiBNdXRhdGlvblJlY29yZCh0YXJnZXQp
CisgICAgICAgICwgbV9hZGRlZE5vZGVzKGFkZGVkKQorICAgICAgICAsIG1fcmVtb3ZlZE5vZGVz
KHJlbW92ZWQpCisgICAgICAgICwgbV9wcmV2aW91c1NpYmxpbmcocHJldmlvdXNTaWJsaW5nKQor
ICAgICAgICAsIG1fbmV4dFNpYmxpbmcobmV4dFNpYmxpbmcpCisgICAgeworICAgIH0KKworICAg
IHZpcnR1YWwgY29uc3QgQXRvbWljU3RyaW5nJiB0eXBlKCk7CisgICAgdmlydHVhbCBOb2RlTGlz
dCogYWRkZWROb2RlcygpIHsgcmV0dXJuIG1fYWRkZWROb2Rlcy5nZXQoKTsgfQorICAgIHZpcnR1
YWwgTm9kZUxpc3QqIHJlbW92ZWROb2RlcygpIHsgcmV0dXJuIG1fcmVtb3ZlZE5vZGVzLmdldCgp
OyB9CisgICAgdmlydHVhbCBOb2RlKiBwcmV2aW91c1NpYmxpbmcoKSB7IHJldHVybiBtX3ByZXZp
b3VzU2libGluZy5nZXQoKTsgfQorICAgIHZpcnR1YWwgTm9kZSogbmV4dFNpYmxpbmcoKSB7IHJl
dHVybiBtX25leHRTaWJsaW5nLmdldCgpOyB9CisKK3ByaXZhdGU6CisgICAgUmVmUHRyPE5vZGVM
aXN0PiBtX2FkZGVkTm9kZXM7CisgICAgUmVmUHRyPE5vZGVMaXN0PiBtX3JlbW92ZWROb2RlczsK
KyAgICBSZWZQdHI8Tm9kZT4gbV9wcmV2aW91c1NpYmxpbmc7CisgICAgUmVmUHRyPE5vZGU+IG1f
bmV4dFNpYmxpbmc7Cit9OworCitjbGFzcyBBdHRyaWJ1dGVzUmVjb3JkIDogcHVibGljIE11dGF0
aW9uUmVjb3JkIHsKK3B1YmxpYzoKKyAgICBBdHRyaWJ1dGVzUmVjb3JkKFBhc3NSZWZQdHI8Tm9k
ZT4gdGFyZ2V0LCBjb25zdCBBdG9taWNTdHJpbmcmIGF0dHJpYnV0ZU5hbWUsIGNvbnN0IEF0b21p
Y1N0cmluZyYgYXR0cmlidXRlTmFtZXNwYWNlKQorICAgICAgICA6IE11dGF0aW9uUmVjb3JkKHRh
cmdldCkKKyAgICAgICAgLCBtX2F0dHJpYnV0ZU5hbWUoYXR0cmlidXRlTmFtZSkKKyAgICAgICAg
LCBtX2F0dHJpYnV0ZU5hbWVzcGFjZShhdHRyaWJ1dGVOYW1lc3BhY2UpCisgICAgeworICAgIH0K
KworICAgIHZpcnR1YWwgY29uc3QgQXRvbWljU3RyaW5nJiB0eXBlKCk7CisgICAgdmlydHVhbCBj
b25zdCBBdG9taWNTdHJpbmcmIGF0dHJpYnV0ZU5hbWUoKSB7IHJldHVybiBtX2F0dHJpYnV0ZU5h
bWU7IH0KKyAgICB2aXJ0dWFsIGNvbnN0IEF0b21pY1N0cmluZyYgYXR0cmlidXRlTmFtZXNwYWNl
KCkgeyByZXR1cm4gbV9hdHRyaWJ1dGVOYW1lOyB9CisgICAgdmlydHVhbCBTdHJpbmcgb2xkVmFs
dWUoKSB7IHJldHVybiBtX29sZFZhbHVlOyB9CisgICAgdmlydHVhbCB2b2lkIHNldE9sZFZhbHVl
KGNvbnN0IFN0cmluZyYgdmFsKSB7IG1fb2xkVmFsdWUgPSB2YWw7IH0KKworcHJpdmF0ZToKKyAg
ICBBdG9taWNTdHJpbmcgbV9hdHRyaWJ1dGVOYW1lOworICAgIEF0b21pY1N0cmluZyBtX2F0dHJp
YnV0ZU5hbWVzcGFjZTsKKyAgICBTdHJpbmcgbV9vbGRWYWx1ZTsKK307CisKK2NsYXNzIENoYXJh
Y3RlckRhdGFSZWNvcmQgOiBwdWJsaWMgTXV0YXRpb25SZWNvcmQgeworcHVibGljOgorICAgIENo
YXJhY3RlckRhdGFSZWNvcmQoUGFzc1JlZlB0cjxOb2RlPiB0YXJnZXQpCisgICAgICAgIDogTXV0
YXRpb25SZWNvcmQodGFyZ2V0KQorICAgIHsKKyAgICB9CisKKyAgICB2aXJ0dWFsIGNvbnN0IEF0
b21pY1N0cmluZyYgdHlwZSgpOworICAgIHZpcnR1YWwgU3RyaW5nIG9sZFZhbHVlKCkgeyByZXR1
cm4gbV9vbGRWYWx1ZTsgfQorICAgIHZpcnR1YWwgdm9pZCBzZXRPbGRWYWx1ZShjb25zdCBTdHJp
bmcmIHZhbCkgeyBtX29sZFZhbHVlID0gdmFsOyB9CisKK3ByaXZhdGU6CisgICAgU3RyaW5nIG1f
b2xkVmFsdWU7Cit9OworCitjb25zdCBBdG9taWNTdHJpbmcmIENoaWxkTGlzdFJlY29yZDo6dHlw
ZSgpCit7CisgICAgREVGSU5FX1NUQVRJQ19MT0NBTChBdG9taWNTdHJpbmcsIGNoaWxkTGlzdCwg
KCJjaGlsZExpc3QiKSk7CisgICAgcmV0dXJuIGNoaWxkTGlzdDsKK30KKworY29uc3QgQXRvbWlj
U3RyaW5nJiBBdHRyaWJ1dGVzUmVjb3JkOjp0eXBlKCkKK3sKKyAgICBERUZJTkVfU1RBVElDX0xP
Q0FMKEF0b21pY1N0cmluZywgYXR0cmlidXRlcywgKCJhdHRyaWJ1dGVzIikpOworICAgIHJldHVy
biBhdHRyaWJ1dGVzOworfQorCitjb25zdCBBdG9taWNTdHJpbmcmIENoYXJhY3RlckRhdGFSZWNv
cmQ6OnR5cGUoKQoreworICAgIERFRklORV9TVEFUSUNfTE9DQUwoQXRvbWljU3RyaW5nLCBjaGFy
YWN0ZXJEYXRhLCAoImNoYXJhY3RlckRhdGEiKSk7CisgICAgcmV0dXJuIGNoYXJhY3RlckRhdGE7
Cit9CisKK30gLy8gbmFtZXNwYWNlCisKK1Bhc3NSZWZQdHI8TXV0YXRpb25SZWNvcmQ+IE11dGF0
aW9uUmVjb3JkOjpjcmVhdGVDaGlsZExpc3QoUGFzc1JlZlB0cjxOb2RlPiB0YXJnZXQsIFBhc3NS
ZWZQdHI8Tm9kZUxpc3Q+IGFkZGVkLCBQYXNzUmVmUHRyPE5vZGVMaXN0PiByZW1vdmVkLCBQYXNz
UmVmUHRyPE5vZGU+IHByZXZpb3VzU2libGluZywgUGFzc1JlZlB0cjxOb2RlPiBuZXh0U2libGlu
ZykKK3sKKyAgICByZXR1cm4gYWRvcHRSZWYoc3RhdGljX2Nhc3Q8TXV0YXRpb25SZWNvcmQqPihu
ZXcgQ2hpbGRMaXN0UmVjb3JkKHRhcmdldCwgYWRkZWQsIHJlbW92ZWQsIHByZXZpb3VzU2libGlu
ZywgbmV4dFNpYmxpbmcpKSk7Cit9CisKK1Bhc3NSZWZQdHI8TXV0YXRpb25SZWNvcmQ+IE11dGF0
aW9uUmVjb3JkOjpjcmVhdGVBdHRyaWJ1dGVzKFBhc3NSZWZQdHI8Tm9kZT4gdGFyZ2V0LCBjb25z
dCBBdG9taWNTdHJpbmcmIGF0dHJpYnV0ZU5hbWUsIGNvbnN0IEF0b21pY1N0cmluZyYgYXR0cmli
dXRlTmFtZXNwYWNlKQoreworICAgIHJldHVybiBhZG9wdFJlZihzdGF0aWNfY2FzdDxNdXRhdGlv
blJlY29yZCo+KG5ldyBBdHRyaWJ1dGVzUmVjb3JkKHRhcmdldCwgYXR0cmlidXRlTmFtZSwgYXR0
cmlidXRlTmFtZXNwYWNlKSkpOworfQorCitQYXNzUmVmUHRyPE11dGF0aW9uUmVjb3JkPiBNdXRh
dGlvblJlY29yZDo6Y3JlYXRlQ2hhcmFjdGVyRGF0YShQYXNzUmVmUHRyPE5vZGU+IHRhcmdldCkK
K3sKKyAgICByZXR1cm4gYWRvcHRSZWYoc3RhdGljX2Nhc3Q8TXV0YXRpb25SZWNvcmQqPihuZXcg
Q2hhcmFjdGVyRGF0YVJlY29yZCh0YXJnZXQpKSk7Cit9CisKK011dGF0aW9uUmVjb3JkOjpNdXRh
dGlvblJlY29yZChQYXNzUmVmUHRyPE5vZGU+IHRhcmdldCkKKyAgICA6IG1fdGFyZ2V0KHRhcmdl
dCkKK3sKK30KKworTXV0YXRpb25SZWNvcmQ6On5NdXRhdGlvblJlY29yZCgpCit7Cit9CisKK30g
Ly8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEVOQUJMRShNVVRBVElPTl9PQlNFUlZF
UlMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vTXV0YXRpb25SZWNvcmQuaCBiL1Nv
dXJjZS9XZWJDb3JlL2RvbS9NdXRhdGlvblJlY29yZC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmYwY2VjNjA2Njg3
ZGVmYTIxNWVkZWNjNDhmMzJlNWRjZGQ1NzJlOTkKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9kb20vTXV0YXRpb25SZWNvcmQuaApAQCAtMCwwICsxLDgwIEBACisvKgorICogQ29w
eXJpZ2h0IChDKSAyMDExIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCisgKiBtZXQ6CisgKgorICogICAgICogUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUKKyAqIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKKyAqIGluIHRoZSBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKKyAqIGRpc3RyaWJ1
dGlvbi4KKyAqICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBu
YW1lcyBvZiBpdHMKKyAqIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHBy
b21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCisgKiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3Bl
Y2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKKyAqICJB
UyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBC
VVQgTk9UCisgKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKyAqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVND
TEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCisgKiBPV05FUiBPUiBDT05U
UklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwK
KyAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJ
TkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAorICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVT
SU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisgKiBUSEVPUlkg
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBNdXRh
dGlvblJlY29yZF9oCisjZGVmaW5lIE11dGF0aW9uUmVjb3JkX2gKKworI2lmIEVOQUJMRShNVVRB
VElPTl9PQlNFUlZFUlMpCisKKyNpbmNsdWRlICJQbGF0Zm9ybVN0cmluZy5oIgorI2luY2x1ZGUg
PHd0Zi9QYXNzUmVmUHRyLmg+CisjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KKyNpbmNsdWRl
IDx3dGYvUmVmUHRyLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgTm9kZTsKK2Ns
YXNzIE5vZGVMaXN0OworCitjbGFzcyBNdXRhdGlvblJlY29yZCA6IHB1YmxpYyBSZWZDb3VudGVk
PE11dGF0aW9uUmVjb3JkPiB7CitwdWJsaWM6CisgICAgc3RhdGljIFBhc3NSZWZQdHI8TXV0YXRp
b25SZWNvcmQ+IGNyZWF0ZUNoaWxkTGlzdChQYXNzUmVmUHRyPE5vZGU+IHRhcmdldCwgUGFzc1Jl
ZlB0cjxOb2RlTGlzdD4gYWRkZWQsIFBhc3NSZWZQdHI8Tm9kZUxpc3Q+IHJlbW92ZWQsIFBhc3NS
ZWZQdHI8Tm9kZT4gcHJldmlvdXNTaWJsaW5nLCBQYXNzUmVmUHRyPE5vZGU+IG5leHRTaWJsaW5n
KTsKKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxNdXRhdGlvblJlY29yZD4gY3JlYXRlQXR0cmlidXRl
cyhQYXNzUmVmUHRyPE5vZGU+IHRhcmdldCwgY29uc3QgQXRvbWljU3RyaW5nJiBhdHRyaWJ1dGVO
YW1lLCBjb25zdCBBdG9taWNTdHJpbmcmIGF0dHJpYnV0ZU5hbWVzcGFjZSk7CisgICAgc3RhdGlj
IFBhc3NSZWZQdHI8TXV0YXRpb25SZWNvcmQ+IGNyZWF0ZUNoYXJhY3RlckRhdGEoUGFzc1JlZlB0
cjxOb2RlPiB0YXJnZXQpOworCisgICAgdmlydHVhbCB+TXV0YXRpb25SZWNvcmQoKTsKKworICAg
IHZpcnR1YWwgY29uc3QgQXRvbWljU3RyaW5nJiB0eXBlKCkgPSAwOworICAgIE5vZGUqIHRhcmdl
dCgpIHsgcmV0dXJuIG1fdGFyZ2V0LmdldCgpOyB9CisKKyAgICB2aXJ0dWFsIE5vZGVMaXN0KiBh
ZGRlZE5vZGVzKCkgeyByZXR1cm4gMDsgfQorICAgIHZpcnR1YWwgTm9kZUxpc3QqIHJlbW92ZWRO
b2RlcygpIHsgcmV0dXJuIDA7IH0KKyAgICB2aXJ0dWFsIE5vZGUqIHByZXZpb3VzU2libGluZygp
IHsgcmV0dXJuIDA7IH0KKyAgICB2aXJ0dWFsIE5vZGUqIG5leHRTaWJsaW5nKCkgeyByZXR1cm4g
MDsgfQorCisgICAgdmlydHVhbCBjb25zdCBBdG9taWNTdHJpbmcmIGF0dHJpYnV0ZU5hbWUoKSB7
IHJldHVybiBudWxsQXRvbTsgfQorICAgIHZpcnR1YWwgY29uc3QgQXRvbWljU3RyaW5nJiBhdHRy
aWJ1dGVOYW1lc3BhY2UoKSB7IHJldHVybiBudWxsQXRvbTsgfQorCisgICAgdmlydHVhbCBTdHJp
bmcgb2xkVmFsdWUoKSB7IHJldHVybiBTdHJpbmcoKTsgfQorICAgIHZpcnR1YWwgdm9pZCBzZXRP
bGRWYWx1ZShjb25zdCBTdHJpbmcmKSB7IH0KKworcHJvdGVjdGVkOgorICAgIGV4cGxpY2l0IE11
dGF0aW9uUmVjb3JkKFBhc3NSZWZQdHI8Tm9kZT4gdGFyZ2V0KTsKKworcHJpdmF0ZToKKyAgICBS
ZWZQdHI8Tm9kZT4gbV90YXJnZXQ7Cit9OworCisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKwor
I2VuZGlmIC8vIEVOQUJMRShNVVRBVElPTl9PQlNFUlZFUlMpCisKKyNlbmRpZiAvLyBNdXRhdGlv
blJlY29yZF9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vTXV0YXRpb25SZWNvcmQu
aWRsIGIvU291cmNlL1dlYkNvcmUvZG9tL011dGF0aW9uUmVjb3JkLmlkbApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40
NmU3YTI5YmJiODQ1MjZiNDI5MGQ5MDQ2NjgwMDM4Y2UwY2M1YjI5Ci0tLSAvZGV2L251bGwKKysr
IGIvU291cmNlL1dlYkNvcmUvZG9tL011dGF0aW9uUmVjb3JkLmlkbApAQCAtMCwwICsxLDQ4IEBA
CisvKgorICogQ29weXJpZ2h0IChDKSAyMDExIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCisgKiBtZXQ6CisgKgorICog
ICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyAqIGNvcHlyaWdodCBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKKyAqIGluIHRo
ZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUK
KyAqIGRpc3RyaWJ1dGlvbi4KKyAqICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIElu
Yy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKKyAqIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBl
bmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCisgKiB0aGlzIHNvZnR3YXJl
IHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklC
VVRPUlMKKyAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKyAqIEEgUEFSVElDVUxBUiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCisgKiBP
V05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwKKyAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAorICogREFUQSwgT1IgUFJP
RklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
CisgKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKwor
bW9kdWxlIGNvcmUgeworICAgIGludGVyZmFjZSBbCisgICAgICAgIENvbmRpdGlvbmFsPU1VVEFU
SU9OX09CU0VSVkVSUworICAgIF0gTXV0YXRpb25SZWNvcmQgeworICAgICAgICByZWFkb25seSBh
dHRyaWJ1dGUgRE9NU3RyaW5nIHR5cGU7CisgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBOb2Rl
IHRhcmdldDsKKworICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgTm9kZUxpc3QgYWRkZWROb2Rl
czsKKyAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIE5vZGVMaXN0IHJlbW92ZWROb2RlczsKKyAg
ICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIE5vZGUgcHJldmlvdXNTaWJsaW5nOworICAgICAgICBy
ZWFkb25seSBhdHRyaWJ1dGUgTm9kZSBuZXh0U2libGluZzsKKworICAgICAgICByZWFkb25seSBh
dHRyaWJ1dGUgRE9NU3RyaW5nIGF0dHJpYnV0ZU5hbWU7CisgICAgICAgIHJlYWRvbmx5IGF0dHJp
YnV0ZSBET01TdHJpbmcgYXR0cmlidXRlTmFtZXNwYWNlOworCisgICAgICAgIHJlYWRvbmx5IGF0
dHJpYnV0ZSBET01TdHJpbmcgb2xkVmFsdWU7CisgICAgfTsKK30K
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>108759</attachid>
            <date>2011-09-26 17:20:22 -0700</date>
            <delta_ts>2011-09-26 18:43:44 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-68824-20110926172020.patch</filename>
            <type>text/plain</type>
            <size>28487</size>
            <attacher name="Adam Klein">adamk</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTU5NjgKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NN
YWtlTGlzdHMudHh0IGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKaW5kZXggZTc5ODM4
MGNiNWQxYTcwZDUxYWE0ODg2NmQyMTllNDVkMmEyMzYwZC4uZGNmNmU0MWZlNmM0OWVmZGJlZDU2
ZWIyMzM3YzRjNjk1ZDE0MDVmNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0
cy50eHQKKysrIGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKQEAgLTE2Myw2ICsxNjMs
NyBAQCBTRVQoV2ViQ29yZV9JRExfRklMRVMKICAgICBkb20vTWVzc2FnZVBvcnQuaWRsCiAgICAg
ZG9tL01vdXNlRXZlbnQuaWRsCiAgICAgZG9tL011dGF0aW9uRXZlbnQuaWRsCisgICAgZG9tL011
dGF0aW9uUmVjb3JkLmlkbAogICAgIGRvbS9OYW1lZE5vZGVNYXAuaWRsCiAgICAgZG9tL05vZGVG
aWx0ZXIuaWRsCiAgICAgZG9tL05vZGUuaWRsCkBAIC01NDcsNiArNTQ4LDcgQEAgU0VUKFdlYkNv
cmVfU09VUkNFUwogICAgIGRvbS9Nb3VzZUV2ZW50LmNwcAogICAgIGRvbS9Nb3VzZVJlbGF0ZWRF
dmVudC5jcHAKICAgICBkb20vTXV0YXRpb25FdmVudC5jcHAKKyAgICBkb20vTXV0YXRpb25SZWNv
cmQuY3BwCiAgICAgZG9tL05hbWVkTm9kZU1hcC5jcHAKICAgICBkb20vTmFtZU5vZGVMaXN0LmNw
cAogICAgIGRvbS9Ob2RlLmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9n
IGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IGY3M2VhY2UzYWZjMmFlOGI1MTNhM2M4
ZTBjOTg5MTc5OThiNTU1YmQuLjY5ZjliMjcyMjhkYjU2YzQxYjkxZjY3NDQ1NmI4OWMwMmRmYjc5
MmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSw0NiBAQAorMjAxMS0wOS0yNiAgQWRhbSBLbGVpbiAg
PGFkYW1rQGNocm9taXVtLm9yZz4KKworICAgICAgICBbTXV0YXRpb25PYnNlcnZlcnNdIGltcGxl
bWVudCBNdXRhdGlvblJlY29yZAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9Njg4MjQKKworICAgICAgICBSZXZpZXdlZCBieSBEYXJpbiBBZGxlci4KKwor
ICAgICAgICBJbXBsZW1lbnRzIE11dGF0aW9uUmVjb3JkIGFzIHNwZWNpZmllZCBpbiB0aGUgdGhy
ZWFkIGF0CisgICAgICAgIGh0dHA6Ly9saXN0cy53My5vcmcvQXJjaGl2ZXMvUHVibGljL3B1Ymxp
Yy13ZWJhcHBzLzIwMTFKdWxTZXAvMTYyMi5odG1sLAorICAgICAgICBpbmNsdWRpbmcgc29tZSBt
aW5vciBuYW1pbmcgY2hhbmdlcyBmcm9tIHRoZSBvcmlnaW5hbCBwcm9wb3NhbC4KKworICAgICAg
ICBUaGlzIGlzIGEgc21hbGwgcGFydCBvZiB0aGUgTXV0YXRpb25PYnNlcnZlciBBUEksIHNlZQor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Njg3MjkgZm9y
IHRoZSBtZXRhYnVnIGNvdmVyaW5nCisgICAgICAgIHRoaXMgZmVhdHVyZS4KKworICAgICAgICBO
byBuZXcgdGVzdHMgYXMgdGhpcyBpc24ndCB5ZXQgZXhwb3NlZCB0byB0aGUgcGxhdGZvcm0uCisK
KyAgICAgICAgKiBDTWFrZUxpc3RzLnR4dDoKKyAgICAgICAgKiBEZXJpdmVkU291cmNlcy5jcHA6
CisgICAgICAgICogRGVyaXZlZFNvdXJjZXMubWFrZToKKyAgICAgICAgKiBHTlVtYWtlZmlsZS5s
aXN0LmFtOgorICAgICAgICAqIFdlYkNvcmUuZ3lwaToKKyAgICAgICAgKiBXZWJDb3JlLnBybzoK
KyAgICAgICAgKiBXZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvajoKKyAgICAgICAgKiBXZWJD
b3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogZG9tL011dGF0aW9uUmVj
b3JkLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpNdXRhdGlvblJlY29yZDo6Y3JlYXRl
Q2hpbGRMaXN0KToKKyAgICAgICAgKFdlYkNvcmU6Ok11dGF0aW9uUmVjb3JkOjpjcmVhdGVBdHRy
aWJ1dGVzKToKKyAgICAgICAgKFdlYkNvcmU6Ok11dGF0aW9uUmVjb3JkOjpjcmVhdGVDaGFyYWN0
ZXJEYXRhKToKKyAgICAgICAgKFdlYkNvcmU6Ok11dGF0aW9uUmVjb3JkOjpNdXRhdGlvblJlY29y
ZCk6CisgICAgICAgIChXZWJDb3JlOjpNdXRhdGlvblJlY29yZDo6fk11dGF0aW9uUmVjb3JkKToK
KyAgICAgICAgKiBkb20vTXV0YXRpb25SZWNvcmQuaDogQWRkZWQuCisgICAgICAgIChXZWJDb3Jl
OjpNdXRhdGlvblJlY29yZDo6dGFyZ2V0KToKKyAgICAgICAgKFdlYkNvcmU6Ok11dGF0aW9uUmVj
b3JkOjphZGRlZE5vZGVzKToKKyAgICAgICAgKFdlYkNvcmU6Ok11dGF0aW9uUmVjb3JkOjpyZW1v
dmVkTm9kZXMpOgorICAgICAgICAoV2ViQ29yZTo6TXV0YXRpb25SZWNvcmQ6OnByZXZpb3VzU2li
bGluZyk6CisgICAgICAgIChXZWJDb3JlOjpNdXRhdGlvblJlY29yZDo6bmV4dFNpYmxpbmcpOgor
ICAgICAgICAoV2ViQ29yZTo6TXV0YXRpb25SZWNvcmQ6OmF0dHJpYnV0ZU5hbWUpOgorICAgICAg
ICAoV2ViQ29yZTo6TXV0YXRpb25SZWNvcmQ6OmF0dHJpYnV0ZU5hbWVzcGFjZSk6CisgICAgICAg
IChXZWJDb3JlOjpNdXRhdGlvblJlY29yZDo6b2xkVmFsdWUpOgorICAgICAgICAoV2ViQ29yZTo6
TXV0YXRpb25SZWNvcmQ6OnNldE9sZFZhbHVlKToKKyAgICAgICAgKiBkb20vTXV0YXRpb25SZWNv
cmQuaWRsOiBBZGRlZC4KKwogMjAxMS0wOS0yMyAgU2ltb24gRnJhc2VyICA8c2ltb24uZnJhc2Vy
QGFwcGxlLmNvbT4KIAogICAgICAgICBSZXBhaW50IHRlc3RzIGRvbid0IHdvcmsgaW4gV2ViS2l0
MgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMuY3BwIGIvU291cmNl
L1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMuY3BwCmluZGV4IDhhNDU5ODZhZmZlYmY1MjRlMTRhZDk4
YjExN2RmODEzYjUwZDE2YmYuLjg0ZjAyOTQ3YzkyMDg5OWVhMTY0MTk5NTY0YjRmZjFhYTI5NTRm
MWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5jcHAKQEAgLTI0NSw2ICsyNDUsNyBAQAogI2lu
Y2x1ZGUgIkpTTWV0YWRhdGFDYWxsYmFjay5jcHAiCiAjaW5jbHVkZSAiSlNNb3VzZUV2ZW50LmNw
cCIKICNpbmNsdWRlICJKU011dGF0aW9uRXZlbnQuY3BwIgorI2luY2x1ZGUgIkpTTXV0YXRpb25S
ZWNvcmQuY3BwIgogI2luY2x1ZGUgIkpTTmFtZWROb2RlTWFwLmNwcCIKICNpbmNsdWRlICJKU05h
dmlnYXRvci5jcHAiCiAjaW5jbHVkZSAiSlNOYXZpZ2F0b3JVc2VyTWVkaWFFcnJvci5jcHAiCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtlIGIvU291cmNlL1dl
YkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZQppbmRleCBkZjgwOTEzNjBkNzA2N2Y3M2U0ZDAyYTE5
NGI3N2Q3ZWFhOWQ1YTRlLi43MmY0N2U0ZmQxMmE4M2EwNjgxOWIxYmFhYmY4MWYyMGRiZTczMTFh
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtlCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UKQEAgLTI5OCw2ICsyOTgsNyBAQCBET01f
Q0xBU1NFUyA9IFwKICAgICBNZXRhZGF0YUNhbGxiYWNrIFwKICAgICBNb3VzZUV2ZW50IFwKICAg
ICBNdXRhdGlvbkV2ZW50IFwKKyAgICBNdXRhdGlvblJlY29yZCBcCiAgICAgTmFtZWROb2RlTWFw
IFwKICAgICBOYXZpZ2F0b3IgXAogICAgIE5hdmlnYXRvclVzZXJNZWRpYUVycm9yIFwKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0gYi9Tb3VyY2UvV2ViQ29y
ZS9HTlVtYWtlZmlsZS5saXN0LmFtCmluZGV4IDQxMGNhY2Y1MDQwMmJiMzI2NjRhMjk3MjJiNDZm
MmJmOWIzYmFjMWIuLmRkNjY5OGRmMTBkNTQ1NzUyMjU2YjM4NzRhNDQ4ZDFiYTM5MTlkMmQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0KKysrIGIvU291cmNl
L1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbQpAQCAtMzc2LDYgKzM3Niw4IEBAIHdlYmNvcmVf
YnVpbHRfc291cmNlcyArPSBcCiAJRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU01vdXNlRXZlbnQu
aCBcCiAJRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU011dGF0aW9uRXZlbnQuY3BwIFwKIAlEZXJp
dmVkU291cmNlcy9XZWJDb3JlL0pTTXV0YXRpb25FdmVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9X
ZWJDb3JlL0pTTXV0YXRpb25SZWNvcmQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9XZWJDb3JlL0pT
TXV0YXRpb25SZWNvcmQuaCBcCiAJRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU05hbWVkTm9kZU1h
cC5jcHAgXAogCURlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNOYW1lZE5vZGVNYXAuaCBcCiAJRGVy
aXZlZFNvdXJjZXMvV2ViQ29yZS9KU05hdmlnYXRvci5jcHAgXApAQCAtMTIyMSw2ICsxMjIzLDgg
QEAgd2ViY29yZV9zb3VyY2VzICs9IFwKIAlTb3VyY2UvV2ViQ29yZS9kb20vTW91c2VSZWxhdGVk
RXZlbnQuaCBcCiAJU291cmNlL1dlYkNvcmUvZG9tL011dGF0aW9uRXZlbnQuY3BwIFwKIAlTb3Vy
Y2UvV2ViQ29yZS9kb20vTXV0YXRpb25FdmVudC5oIFwKKwlTb3VyY2UvV2ViQ29yZS9kb20vTXV0
YXRpb25SZWNvcmQuY3BwIFwKKwlTb3VyY2UvV2ViQ29yZS9kb20vTXV0YXRpb25SZWNvcmQuaCBc
CiAJU291cmNlL1dlYkNvcmUvZG9tL05hbWVkTm9kZU1hcC5jcHAgXAogCVNvdXJjZS9XZWJDb3Jl
L2RvbS9OYW1lZE5vZGVNYXAuaCBcCiAJU291cmNlL1dlYkNvcmUvZG9tL05hbWVOb2RlTGlzdC5j
cHAgXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpIGIvU291cmNlL1dl
YkNvcmUvV2ViQ29yZS5neXBpCmluZGV4IDc2ZjRlNjU1NzEyNDBjMDZlM2M0NDJhOTc3NTY0OTM5
MTgzNmQ0NDYuLmUwYzk1YmJhYTQ2ZWIwNzIxN2Q2NWQzZWY3NDNkYzg3Y2UxNzU2ZTcgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQorKysgYi9Tb3VyY2UvV2ViQ29yZS9X
ZWJDb3JlLmd5cGkKQEAgLTExODUsNiArMTE4NSw3IEBACiAgICAgICAgICAgICAnZG9tL01lc3Nh
Z2VQb3J0LmlkbCcsCiAgICAgICAgICAgICAnZG9tL01vdXNlRXZlbnQuaWRsJywKICAgICAgICAg
ICAgICdkb20vTXV0YXRpb25FdmVudC5pZGwnLAorICAgICAgICAgICAgJ2RvbS9NdXRhdGlvblJl
Y29yZC5pZGwnLAogICAgICAgICAgICAgJ2RvbS9OYW1lZE5vZGVNYXAuaWRsJywKICAgICAgICAg
ICAgICdkb20vTm9kZS5pZGwnLAogICAgICAgICAgICAgJ2RvbS9Ob2RlRmlsdGVyLmlkbCcsCkBA
IC01MTk5LDYgKzUyMDAsOCBAQAogICAgICAgICAgICAgJ2RvbS9Nb3VzZVJlbGF0ZWRFdmVudC5j
cHAnLAogICAgICAgICAgICAgJ2RvbS9NdXRhdGlvbkV2ZW50LmNwcCcsCiAgICAgICAgICAgICAn
ZG9tL011dGF0aW9uRXZlbnQuaCcsCisgICAgICAgICAgICAnZG9tL011dGF0aW9uUmVjb3JkLmNw
cCcsCisgICAgICAgICAgICAnZG9tL011dGF0aW9uUmVjb3JkLmgnLAogICAgICAgICAgICAgJ2Rv
bS9OYW1lTm9kZUxpc3QuY3BwJywKICAgICAgICAgICAgICdkb20vTmFtZU5vZGVMaXN0LmgnLAog
ICAgICAgICAgICAgJ2RvbS9OYW1lZE5vZGVNYXAuY3BwJywKQEAgLTc0NjUsNiArNzQ2OCw4IEBA
CiAgICAgICAgICAgICAnPChQUk9EVUNUX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU01v
dXNlRXZlbnQuaCcsCiAgICAgICAgICAgICAnPChQUk9EVUNUX0RJUikvRGVyaXZlZFNvdXJjZXMv
V2ViQ29yZS9KU011dGF0aW9uRXZlbnQuY3BwJywKICAgICAgICAgICAgICc8KFBST0RVQ1RfRElS
KS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTTXV0YXRpb25FdmVudC5oJywKKyAgICAgICAgICAg
ICc8KFBST0RVQ1RfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTTXV0YXRpb25SZWNvcmQu
Y3BwJywKKyAgICAgICAgICAgICc8KFBST0RVQ1RfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3Jl
L0pTTXV0YXRpb25SZWNvcmQuaCcsCiAgICAgICAgICAgICAnPChQUk9EVUNUX0RJUikvRGVyaXZl
ZFNvdXJjZXMvV2ViQ29yZS9KU05hbWVkTm9kZU1hcC5jcHAnLAogICAgICAgICAgICAgJzwoUFJP
RFVDVF9ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNOYW1lZE5vZGVNYXAuaCcsCiAgICAg
ICAgICAgICAnPChQUk9EVUNUX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU05hdmlnYXRv
ci5jcHAnLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5wcm8gYi9Tb3VyY2Uv
V2ViQ29yZS9XZWJDb3JlLnBybwppbmRleCA2MDI4ZTk2ODU5ZGE5YzhjZTM0MmIwZTQ5ZDRjMGU5
MGIxNWVmZjY1Li43NzhiZjhhMmZmOWNiNTVjZjUyOTZjNzFkMjljODAxZGY5NTE4YmRhIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnBybworKysgYi9Tb3VyY2UvV2ViQ29yZS9X
ZWJDb3JlLnBybwpAQCAtNTEwLDYgKzUxMCw3IEBAIFNPVVJDRVMgKz0gXAogICAgIGRvbS9Nb3Vz
ZUV2ZW50LmNwcCBcCiAgICAgZG9tL01vdXNlUmVsYXRlZEV2ZW50LmNwcCBcCiAgICAgZG9tL011
dGF0aW9uRXZlbnQuY3BwIFwKKyAgICBkb20vTXV0YXRpb25SZWNvcmQuY3BwIFwKICAgICBkb20v
TmFtZWROb2RlTWFwLmNwcCBcCiAgICAgZG9tL05hbWVOb2RlTGlzdC5jcHAgXAogICAgIGRvbS9O
b2RlLmNwcCBcCkBAIC0xNTIzLDYgKzE1MjQsNyBAQCBIRUFERVJTICs9IFwKICAgICBkb20vTW91
c2VFdmVudC5oIFwKICAgICBkb20vTW91c2VSZWxhdGVkRXZlbnQuaCBcCiAgICAgZG9tL011dGF0
aW9uRXZlbnQuaCBcCisgICAgZG9tL011dGF0aW9uUmVjb3JkLmggXAogICAgIGRvbS9OYW1lZE5v
ZGVNYXAuaCBcCiAgICAgZG9tL05hbWVOb2RlTGlzdC5oIFwKICAgICBkb20vTm9kZUZpbHRlckNv
bmRpdGlvbi5oIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dl
YkNvcmUudmNwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3By
b2oKaW5kZXggNTgxNTE4Yjk2ZDYyNjE4OGM1NTVhMzcwZWUyMzNmYTNhNTM1Yjc4ZC4uZGU0YmQ2
OTgzMWJmODViNWJlYjE5NWUzMDNiMzlhYjBlOGUyZjIzNiAxMDA3NTUKLS0tIGEvU291cmNlL1dl
YkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oKKysrIGIvU291cmNlL1dlYkNvcmUv
V2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oKQEAgLTExNjU0LDYgKzExNjU0LDYyIEBACiAJ
CQkJPgogCQkJPC9GaWxlPgogCQkJPEZpbGUKKwkJCQlSZWxhdGl2ZVBhdGg9IiQoQ29uZmlndXJh
dGlvbkJ1aWxkRGlyKVxvYmpcJChQcm9qZWN0TmFtZSlcRGVyaXZlZFNvdXJjZXNcSlNNdXRhdGlv
blJlY29yZC5jcHAiCisJCQkJPgorCQkJCTxGaWxlQ29uZmlndXJhdGlvbgorCQkJCQlOYW1lPSJE
ZWJ1Z3xXaW4zMiIKKwkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiCisJCQkJCT4KKwkJCQkJ
PFRvb2wKKwkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiCisJCQkJCS8+CisJCQkJPC9GaWxl
Q29uZmlndXJhdGlvbj4KKwkJCQk8RmlsZUNvbmZpZ3VyYXRpb24KKwkJCQkJTmFtZT0iUmVsZWFz
ZXxXaW4zMiIKKwkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiCisJCQkJCT4KKwkJCQkJPFRv
b2wKKwkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiCisJCQkJCS8+CisJCQkJPC9GaWxlQ29u
ZmlndXJhdGlvbj4KKwkJCQk8RmlsZUNvbmZpZ3VyYXRpb24KKwkJCQkJTmFtZT0iRGVidWdfQ2Fp
cm9fQ0ZMaXRlfFdpbjMyIgorCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIKKwkJCQkJPgor
CQkJCQk8VG9vbAorCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIKKwkJCQkJLz4KKwkJCQk8
L0ZpbGVDb25maWd1cmF0aW9uPgorCQkJCTxGaWxlQ29uZmlndXJhdGlvbgorCQkJCQlOYW1lPSJS
ZWxlYXNlX0NhaXJvX0NGTGl0ZXxXaW4zMiIKKwkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUi
CisJCQkJCT4KKwkJCQkJPFRvb2wKKwkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiCisJCQkJ
CS8+CisJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4KKwkJCQk8RmlsZUNvbmZpZ3VyYXRpb24KKwkJ
CQkJTmFtZT0iRGVidWdfQWxsfFdpbjMyIgorCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIK
KwkJCQkJPgorCQkJCQk8VG9vbAorCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIKKwkJCQkJ
Lz4KKwkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPgorCQkJCTxGaWxlQ29uZmlndXJhdGlvbgorCQkJ
CQlOYW1lPSJQcm9kdWN0aW9ufFdpbjMyIgorCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIK
KwkJCQkJPgorCQkJCQk8VG9vbAorCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIKKwkJCQkJ
Lz4KKwkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPgorCQkJPC9GaWxlPgorCQkJPEZpbGUKKwkJCQlS
ZWxhdGl2ZVBhdGg9IiQoQ29uZmlndXJhdGlvbkJ1aWxkRGlyKVxvYmpcJChQcm9qZWN0TmFtZSlc
RGVyaXZlZFNvdXJjZXNcSlNNdXRhdGlvblJlY29yZC5oIgorCQkJCT4KKwkJCTwvRmlsZT4KKwkJ
CTxGaWxlCiAJCQkJUmVsYXRpdmVQYXRoPSIkKENvbmZpZ3VyYXRpb25CdWlsZERpcilcb2JqXCQo
UHJvamVjdE5hbWUpXERlcml2ZWRTb3VyY2VzXEpTTmFtZWROb2RlTWFwLmNwcCIKIAkJCQk+CiAJ
CQkJPEZpbGVDb25maWd1cmF0aW9uCkBAIC00Njk5OCw2ICs0NzA1NCw2MiBAQAogCQkJCT4KIAkJ
CTwvRmlsZT4KIAkJCTxGaWxlCisJCQkJUmVsYXRpdmVQYXRoPSIuLlxkb21cTXV0YXRpb25SZWNv
cmQuY3BwIgorCQkJCT4KKwkJCQk8RmlsZUNvbmZpZ3VyYXRpb24KKwkJCQkJTmFtZT0iRGVidWd8
V2luMzIiCisJCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIgorCQkJCQk+CisJCQkJCTxUb29s
CisJCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIgorCQkJCQkvPgorCQkJCTwvRmlsZUNvbmZp
Z3VyYXRpb24+CisJCQkJPEZpbGVDb25maWd1cmF0aW9uCisJCQkJCU5hbWU9IlJlbGVhc2V8V2lu
MzIiCisJCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIgorCQkJCQk+CisJCQkJCTxUb29sCisJ
CQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIgorCQkJCQkvPgorCQkJCTwvRmlsZUNvbmZpZ3Vy
YXRpb24+CisJCQkJPEZpbGVDb25maWd1cmF0aW9uCisJCQkJCU5hbWU9IkRlYnVnX0NhaXJvX0NG
TGl0ZXxXaW4zMiIKKwkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiCisJCQkJCT4KKwkJCQkJ
PFRvb2wKKwkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiCisJCQkJCS8+CisJCQkJPC9GaWxl
Q29uZmlndXJhdGlvbj4KKwkJCQk8RmlsZUNvbmZpZ3VyYXRpb24KKwkJCQkJTmFtZT0iUmVsZWFz
ZV9DYWlyb19DRkxpdGV8V2luMzIiCisJCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIgorCQkJ
CQk+CisJCQkJCTxUb29sCisJCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIgorCQkJCQkvPgor
CQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+CisJCQkJPEZpbGVDb25maWd1cmF0aW9uCisJCQkJCU5h
bWU9IkRlYnVnX0FsbHxXaW4zMiIKKwkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiCisJCQkJ
CT4KKwkJCQkJPFRvb2wKKwkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiCisJCQkJCS8+CisJ
CQkJPC9GaWxlQ29uZmlndXJhdGlvbj4KKwkJCQk8RmlsZUNvbmZpZ3VyYXRpb24KKwkJCQkJTmFt
ZT0iUHJvZHVjdGlvbnxXaW4zMiIKKwkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiCisJCQkJ
CT4KKwkJCQkJPFRvb2wKKwkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiCisJCQkJCS8+CisJ
CQkJPC9GaWxlQ29uZmlndXJhdGlvbj4KKwkJCTwvRmlsZT4KKwkJCTxGaWxlCisJCQkJUmVsYXRp
dmVQYXRoPSIuLlxkb21cTXV0YXRpb25SZWNvcmQuaCIKKwkJCQk+CisJCQk8L0ZpbGU+CisJCQk8
RmlsZQogCQkJCVJlbGF0aXZlUGF0aD0iLi5cZG9tXE5hbWVkTm9kZU1hcC5jcHAiCiAJCQkJPgog
CQkJPC9GaWxlPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qCmluZGV4IDcwMDQ0ZGFhYzkyZDQ1YmM3MzM1ZGEwNjY1NjViOWRmNTZhMWQwYzQu
LjY3NjMxOTFmMWE5MDNiOGQxOGFmM2RhZTk2Mjc3NmZjYzBjMDVlN2QgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTU0MzcsNiAr
NTQzNywxMCBAQAogCQlDNUVCREQ4NDEwNUVEREVDMDA1NjgxNkYgLyogU3RvcmFnZUV2ZW50RGlz
cGF0Y2hlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
QzVFQkREODExMDVFRERFQzAwNTY4MTZGIC8qIFN0b3JhZ2VFdmVudERpc3BhdGNoZXIuaCAqLzsg
fTsKIAkJQzZENzRBRDUwOUFBMjgyRTAwMEIwQTUyIC8qIE1vZGlmeVNlbGVjdGlvbkxpc3RMZXZl
bC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQzZENzRB
RDMwOUFBMjgyRTAwMEIwQTUyIC8qIE1vZGlmeVNlbGVjdGlvbkxpc3RMZXZlbC5oICovOyB9Owog
CQlDNkQ3NEFFNDA5QUEyOTBBMDAwQjBBNTIgLyogTW9kaWZ5U2VsZWN0aW9uTGlzdExldmVsLmNw
cCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEM2RDc0QUUz
MDlBQTI5MEEwMDBCMEE1MiAvKiBNb2RpZnlTZWxlY3Rpb25MaXN0TGV2ZWwuY3BwICovOyB9Owor
CQlDNkYwOEZCQzE0MzBGRThGMDA2ODU4NDkgLyogTXV0YXRpb25SZWNvcmQuY3BwIGluIFNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQzZGMDhGQjkxNDMwRkU4RjAw
Njg1ODQ5IC8qIE11dGF0aW9uUmVjb3JkLmNwcCAqLzsgfTsKKwkJQzZGMDhGQkQxNDMwRkU4RjAw
Njg1ODQ5IC8qIE11dGF0aW9uUmVjb3JkLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBDNkYwOEZCQTE0MzBGRThGMDA2ODU4NDkgLyogTXV0YXRpb25SZWNv
cmQuaCAqLzsgfTsKKwkJQzZGMDhGQzkxNDMxMDAwRDAwNjg1ODQ5IC8qIEpTTXV0YXRpb25SZWNv
cmQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQzZG
MDhGQzcxNDMxMDAwRDAwNjg1ODQ5IC8qIEpTTXV0YXRpb25SZWNvcmQuY3BwICovOyB9OworCQlD
NkYwOEZDQTE0MzEwMDBEMDA2ODU4NDkgLyogSlNNdXRhdGlvblJlY29yZC5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQzZGMDhGQzgxNDMxMDAwRDAwNjg1
ODQ5IC8qIEpTTXV0YXRpb25SZWNvcmQuaCAqLzsgfTsKIAkJQzZGNDEwNDcxMzBDNkU4OTAwMzkz
REU0IC8qIEVudHJ5QmFzZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBDNkY0MTA0NjEzMEM2RTg5MDAzOTNERTQgLyogRW50cnlCYXNlLmNwcCAqLzsg
fTsKIAkJQ0EzQkY2N0MxMEQ5OUJBRTAwRTZDRTUzIC8qIFNjcm9sbEFuaW1hdG9yLmNwcCBpbiBT
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENBM0JGNjdCMTBEOTlC
QUUwMEU2Q0U1MyAvKiBTY3JvbGxBbmltYXRvci5jcHAgKi87IH07CiAJCUNBM0JGNjdFMTBEOTlC
QUUwMEU2Q0U1MyAvKiBTY3JvbGxBbmltYXRvci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gQ0EzQkY2N0QxMEQ5OUJBRTAwRTZDRTUzIC8qIFNjcm9sbEFu
aW1hdG9yLmggKi87IH07CkBAIC0xMjIwNCw2ICsxMjIwOCwxMSBAQAogCQlDNUVCREQ4MTEwNUVE
REVDMDA1NjgxNkYgLyogU3RvcmFnZUV2ZW50RGlzcGF0Y2hlci5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBTdG9yYWdlRXZlbnREaXNwYXRjaGVyLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCUM2RDc0QUQzMDlBQTI4MkUwMDBCMEE1MiAvKiBNb2RpZnlTZWxlY3Rp
b25MaXN0TGV2ZWwuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTW9kaWZ5U2Vs
ZWN0aW9uTGlzdExldmVsLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUM2RDc0QUUz
MDlBQTI5MEEwMDBCMEE1MiAvKiBNb2RpZnlTZWxlY3Rpb25MaXN0TGV2ZWwuY3BwICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gTW9kaWZ5U2VsZWN0aW9uTGlzdExldmVsLmNw
cDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQzZGMDhGQjkxNDMwRkU4RjAwNjg1ODQ5
IC8qIE11dGF0aW9uUmVjb3JkLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0
aCA9IE11dGF0aW9uUmVjb3JkLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQzZG
MDhGQkExNDMwRkU4RjAwNjg1ODQ5IC8qIE11dGF0aW9uUmVjb3JkLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IE11dGF0aW9uUmVjb3JkLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CisJCUM2RjA4RkJCMTQzMEZFOEYwMDY4NTg0OSAvKiBNdXRhdGlvblJlY29yZC5pZGwg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gTXV0YXRpb25SZWNvcmQuaWRsOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OworCQlDNkYwOEZDNzE0MzEwMDBEMDA2ODU4NDkgLyogSlNNdXRhdGlvblJl
Y29yZC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU011dGF0aW9u
UmVjb3JkLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQzZGMDhGQzgxNDMxMDAw
RDAwNjg1ODQ5IC8qIEpTTXV0YXRpb25SZWNvcmQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gSlNNdXRhdGlvblJlY29yZC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQlDNkY0MTA0NjEzMEM2RTg5MDAzOTNERTQgLyogRW50cnlCYXNlLmNwcCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IEVudHJ5QmFzZS5jcHA7IHBhdGggPSBmaWxlYXBpL0Vu
dHJ5QmFzZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUNBM0JGNjdCMTBEOTlC
QUUwMEU2Q0U1MyAvKiBTY3JvbGxBbmltYXRvci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IHBhdGggPSBTY3JvbGxBbmltYXRvci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCUNBM0JGNjdEMTBEOTlCQUUwMEU2Q0U1MyAvKiBTY3JvbGxBbmltYXRvci5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTY3JvbGxBbmltYXRvci5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwpAQCAtMTc0MTgsNiArMTc0MjcsOCBAQAogCQkJCTQ5QzlGNDhCMTNE
NTdEMzIwMDUyNjAwQSAvKiBKU01lZGlhU3RyZWFtVHJhY2suaCAqLywKIAkJCQk0OUM5RjQ4QzEz
RDU3RDMyMDA1MjYwMEEgLyogSlNNZWRpYVN0cmVhbVRyYWNrTGlzdC5jcHAgKi8sCiAJCQkJNDlD
OUY0OEQxM0Q1N0QzMjAwNTI2MDBBIC8qIEpTTWVkaWFTdHJlYW1UcmFja0xpc3QuaCAqLywKKwkJ
CQlDNkYwOEZDNzE0MzEwMDBEMDA2ODU4NDkgLyogSlNNdXRhdGlvblJlY29yZC5jcHAgKi8sCisJ
CQkJQzZGMDhGQzgxNDMxMDAwRDAwNjg1ODQ5IC8qIEpTTXV0YXRpb25SZWNvcmQuaCAqLywKIAkJ
CQlCQ0Q5QzJCQzBDMTdCNjlFMDA1QzkwQTIgLyogSlNOYW1lZE5vZGVNYXAuY3BwICovLAogCQkJ
CUJDRDlDMkJEMEMxN0I2OUUwMDVDOTBBMiAvKiBKU05hbWVkTm9kZU1hcC5oICovLAogCQkJCTE0
REMwRDM1MDlGRUQwNzMwMDdCMDIzNSAvKiBKU05vZGUuY3BwICovLApAQCAtMjAwMjQsNiArMjAw
MzUsOSBAQAogCQkJCTg1MDMxQjMzMEE0NEVGQzcwMEY5OTJFMCAvKiBNdXRhdGlvbkV2ZW50LmNw
cCAqLywKIAkJCQk4NTAzMUIzNDBBNDRFRkM3MDBGOTkyRTAgLyogTXV0YXRpb25FdmVudC5oICov
LAogCQkJCTkzRUVDMUYzMDlDMjg3NzcwMEM1MTVEMSAvKiBNdXRhdGlvbkV2ZW50LmlkbCAqLywK
KwkJCQlDNkYwOEZCOTE0MzBGRThGMDA2ODU4NDkgLyogTXV0YXRpb25SZWNvcmQuY3BwICovLAor
CQkJCUM2RjA4RkJBMTQzMEZFOEYwMDY4NTg0OSAvKiBNdXRhdGlvblJlY29yZC5oICovLAorCQkJ
CUM2RjA4RkJCMTQzMEZFOEYwMDY4NTg0OSAvKiBNdXRhdGlvblJlY29yZC5pZGwgKi8sCiAJCQkJ
QkNGMzRBMzYxMUEyMzFDRDAwQzcxODA0IC8qIE5hbWVkTm9kZU1hcC5jcHAgKi8sCiAJCQkJQTgx
ODcyMTgwOTc3RDNDMDAwNTgyNkQ5IC8qIE5hbWVkTm9kZU1hcC5oICovLAogCQkJCTg1QUNBOUY5
MEE5QjYzMTAwMDY3MUU5MCAvKiBOYW1lZE5vZGVNYXAuaWRsICovLApAQCAtMjIxNDUsNiArMjIx
NTksNyBAQAogCQkJCTg5ODc4NUI5MTIyQ0EyQTcwMDNBQUJEQSAvKiBKU01ldGFkYXRhQ2FsbGJh
Y2suaCBpbiBIZWFkZXJzICovLAogCQkJCUE4NjYyOUQxMDlEQTJCNDgwMDk2MzNBNSAvKiBKU01v
dXNlRXZlbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTY1REYzMUZDMDlEMUNDNjAwMDBCRTMyNSAv
KiBKU011dGF0aW9uRXZlbnQuaCBpbiBIZWFkZXJzICovLAorCQkJCUM2RjA4RkNBMTQzMTAwMEQw
MDY4NTg0OSAvKiBKU011dGF0aW9uUmVjb3JkLmggaW4gSGVhZGVycyAqLywKIAkJCQlCQ0Q5QzJD
MTBDMTdCNjlFMDA1QzkwQTIgLyogSlNOYW1lZE5vZGVNYXAuaCBpbiBIZWFkZXJzICovLAogCQkJ
CUE5RDI0N0Y4MEQ3NTdFMzQwMEZERjk1OSAvKiBKU05hdmlnYXRvci5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJQjFFNTQ1RTAxMzQ2MkIwQjAwOTJBNTQ1IC8qIEpTTmF2aWdhdG9yVXNlck1lZGlhRXJy
b3IuaCBpbiBIZWFkZXJzICovLApAQCAtMjI1MTcsNiArMjI1MzIsNyBAQAogCQkJCTkzMzA5REZD
MDk5RTY0OTIwMDU2RTU4MSAvKiBNb3ZlU2VsZWN0aW9uQ29tbWFuZC5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJQjFBRDRFNjMxM0ExMkEwQjAwODQ2QjI3IC8qIE11dGFibGVUZXh0VHJhY2suaCBpbiBI
ZWFkZXJzICovLAogCQkJCTg1MDMxQjRBMEE0NEVGQzcwMEY5OTJFMCAvKiBNdXRhdGlvbkV2ZW50
LmggaW4gSGVhZGVycyAqLywKKwkJCQlDNkYwOEZCRDE0MzBGRThGMDA2ODU4NDkgLyogTXV0YXRp
b25SZWNvcmQuaCBpbiBIZWFkZXJzICovLAogCQkJCUE4MTg3MjIzMDk3N0QzQzAwMDU4MjZEOSAv
KiBOYW1lZE5vZGVNYXAuaCBpbiBIZWFkZXJzICovLAogCQkJCUE4MTg3MjFFMDk3N0QzQzAwMDU4
MjZEOSAvKiBOYW1lTm9kZUxpc3QuaCBpbiBIZWFkZXJzICovLAogCQkJCUUxMEI5QjZDMEI3NDc1
OTkwMDNFRDg5MCAvKiBOYXRpdmVYUGF0aE5TUmVzb2x2ZXIuaCBpbiBIZWFkZXJzICovLApAQCAt
MjUxNjcsNiArMjUxODMsNyBAQAogCQkJCTg5ODc4NUI4MTIyQ0EyQTcwMDNBQUJEQSAvKiBKU01l
dGFkYXRhQ2FsbGJhY2suY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQTg2NjI5RDIwOURBMkI0ODAw
OTYzM0E1IC8qIEpTTW91c2VFdmVudC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk2NURGMzFGQjA5
RDFDQzYwMDAwQkUzMjUgLyogSlNNdXRhdGlvbkV2ZW50LmNwcCBpbiBTb3VyY2VzICovLAorCQkJ
CUM2RjA4RkM5MTQzMTAwMEQwMDY4NTg0OSAvKiBKU011dGF0aW9uUmVjb3JkLmNwcCBpbiBTb3Vy
Y2VzICovLAogCQkJCUJDRDlDMkMwMEMxN0I2OUUwMDVDOTBBMiAvKiBKU05hbWVkTm9kZU1hcC5j
cHAgaW4gU291cmNlcyAqLywKIAkJCQlCQ0Q5QzI2MzBDMTdBQTY3MDA1QzkwQTIgLyogSlNOYW1l
ZE5vZGVNYXBDdXN0b20uY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQTlEMjQ3RjcwRDc1N0UzNDAw
RkRGOTU5IC8qIEpTTmF2aWdhdG9yLmNwcCBpbiBTb3VyY2VzICovLApAQCAtMjU1NjYsNiArMjU1
ODMsNyBAQAogCQkJCTkzMzA5REZCMDk5RTY0OTIwMDU2RTU4MSAvKiBNb3ZlU2VsZWN0aW9uQ29t
bWFuZC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlCMUFENEU2MjEzQTEyQTBCMDA4NDZCMjcgLyog
TXV0YWJsZVRleHRUcmFjay5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk4NTAzMUI0OTBBNDRFRkM3
MDBGOTkyRTAgLyogTXV0YXRpb25FdmVudC5jcHAgaW4gU291cmNlcyAqLywKKwkJCQlDNkYwOEZC
QzE0MzBGRThGMDA2ODU4NDkgLyogTXV0YXRpb25SZWNvcmQuY3BwIGluIFNvdXJjZXMgKi8sCiAJ
CQkJQkNGMzRBMzcxMUEyMzFDRDAwQzcxODA0IC8qIE5hbWVkTm9kZU1hcC5jcHAgaW4gU291cmNl
cyAqLywKIAkJCQlBODE4NzIyNDA5NzdEM0MwMDA1ODI2RDkgLyogTmFtZU5vZGVMaXN0LmNwcCBp
biBTb3VyY2VzICovLAogCQkJCUUxMEI5QjZEMEI3NDc1OTkwMDNFRDg5MCAvKiBOYXRpdmVYUGF0
aE5TUmVzb2x2ZXIuY3BwIGluIFNvdXJjZXMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9kb20vTXV0YXRpb25SZWNvcmQuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL011dGF0aW9uUmVj
b3JkLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi44NGIyOThiMGY3OTM5NDY2N2NmNDkyNmRlNjY5YTM0YzBkODI4
MmI1Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL011dGF0aW9uUmVjb3Jk
LmNwcApAQCAtMCwwICsxLDE1MiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMSBHb29nbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
IGFyZQorICogbWV0OgorICoKKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAgICAgKiBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCisgKiBj
b3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyCisgKiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlCisgKiBkaXN0cmlidXRpb24uCisgKiAgICAgKiBOZWl0aGVy
IHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCisgKiBjb250cmli
dXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQg
ZnJvbQorICogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVy
bWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklH
SFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCisgKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywg
VEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
CisgKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hB
TEwgVEhFIENPUFlSSUdIVAorICogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCisgKiBTUEVDSUFMLCBFWEVNUExBUlks
IE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVE
IFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwKKyAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisg
KiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKworI2lmIEVOQUJMRShN
VVRBVElPTl9PQlNFUlZFUlMpCisKKyNpbmNsdWRlICJNdXRhdGlvblJlY29yZC5oIgorCisjaW5j
bHVkZSAiTm9kZS5oIgorI2luY2x1ZGUgIk5vZGVMaXN0LmgiCisjaW5jbHVkZSA8d3RmL0Fzc2Vy
dGlvbnMuaD4KKyNpbmNsdWRlIDx3dGYvU3RkTGliRXh0cmFzLmg+CisKK25hbWVzcGFjZSBXZWJD
b3JlIHsKKworbmFtZXNwYWNlIHsKKworY2xhc3MgQ2hpbGRMaXN0UmVjb3JkIDogcHVibGljIE11
dGF0aW9uUmVjb3JkIHsKK3B1YmxpYzoKKyAgICBDaGlsZExpc3RSZWNvcmQoUGFzc1JlZlB0cjxO
b2RlPiB0YXJnZXQsIFBhc3NSZWZQdHI8Tm9kZUxpc3Q+IGFkZGVkLCBQYXNzUmVmUHRyPE5vZGVM
aXN0PiByZW1vdmVkLCBQYXNzUmVmUHRyPE5vZGU+IHByZXZpb3VzU2libGluZywgUGFzc1JlZlB0
cjxOb2RlPiBuZXh0U2libGluZykKKyAgICAgICAgOiBNdXRhdGlvblJlY29yZCh0YXJnZXQpCisg
ICAgICAgICwgbV9hZGRlZE5vZGVzKGFkZGVkKQorICAgICAgICAsIG1fcmVtb3ZlZE5vZGVzKHJl
bW92ZWQpCisgICAgICAgICwgbV9wcmV2aW91c1NpYmxpbmcocHJldmlvdXNTaWJsaW5nKQorICAg
ICAgICAsIG1fbmV4dFNpYmxpbmcobmV4dFNpYmxpbmcpCisgICAgeworICAgIH0KKworcHJpdmF0
ZToKKyAgICB2aXJ0dWFsIGNvbnN0IEF0b21pY1N0cmluZyYgdHlwZSgpOworICAgIHZpcnR1YWwg
Tm9kZUxpc3QqIGFkZGVkTm9kZXMoKSB7IHJldHVybiBtX2FkZGVkTm9kZXMuZ2V0KCk7IH0KKyAg
ICB2aXJ0dWFsIE5vZGVMaXN0KiByZW1vdmVkTm9kZXMoKSB7IHJldHVybiBtX3JlbW92ZWROb2Rl
cy5nZXQoKTsgfQorICAgIHZpcnR1YWwgTm9kZSogcHJldmlvdXNTaWJsaW5nKCkgeyByZXR1cm4g
bV9wcmV2aW91c1NpYmxpbmcuZ2V0KCk7IH0KKyAgICB2aXJ0dWFsIE5vZGUqIG5leHRTaWJsaW5n
KCkgeyByZXR1cm4gbV9uZXh0U2libGluZy5nZXQoKTsgfQorCisgICAgUmVmUHRyPE5vZGVMaXN0
PiBtX2FkZGVkTm9kZXM7CisgICAgUmVmUHRyPE5vZGVMaXN0PiBtX3JlbW92ZWROb2RlczsKKyAg
ICBSZWZQdHI8Tm9kZT4gbV9wcmV2aW91c1NpYmxpbmc7CisgICAgUmVmUHRyPE5vZGU+IG1fbmV4
dFNpYmxpbmc7Cit9OworCitjbGFzcyBBdHRyaWJ1dGVzUmVjb3JkIDogcHVibGljIE11dGF0aW9u
UmVjb3JkIHsKK3B1YmxpYzoKKyAgICBBdHRyaWJ1dGVzUmVjb3JkKFBhc3NSZWZQdHI8Tm9kZT4g
dGFyZ2V0LCBjb25zdCBBdG9taWNTdHJpbmcmIGF0dHJpYnV0ZU5hbWUsIGNvbnN0IEF0b21pY1N0
cmluZyYgYXR0cmlidXRlTmFtZXNwYWNlKQorICAgICAgICA6IE11dGF0aW9uUmVjb3JkKHRhcmdl
dCkKKyAgICAgICAgLCBtX2F0dHJpYnV0ZU5hbWUoYXR0cmlidXRlTmFtZSkKKyAgICAgICAgLCBt
X2F0dHJpYnV0ZU5hbWVzcGFjZShhdHRyaWJ1dGVOYW1lc3BhY2UpCisgICAgeworICAgIH0KKwor
cHJpdmF0ZToKKyAgICB2aXJ0dWFsIGNvbnN0IEF0b21pY1N0cmluZyYgdHlwZSgpOworICAgIHZp
cnR1YWwgY29uc3QgQXRvbWljU3RyaW5nJiBhdHRyaWJ1dGVOYW1lKCkgeyByZXR1cm4gbV9hdHRy
aWJ1dGVOYW1lOyB9CisgICAgdmlydHVhbCBjb25zdCBBdG9taWNTdHJpbmcmIGF0dHJpYnV0ZU5h
bWVzcGFjZSgpIHsgcmV0dXJuIG1fYXR0cmlidXRlTmFtZTsgfQorICAgIHZpcnR1YWwgU3RyaW5n
IG9sZFZhbHVlKCkgeyByZXR1cm4gbV9vbGRWYWx1ZTsgfQorICAgIHZpcnR1YWwgdm9pZCBzZXRP
bGRWYWx1ZShjb25zdCBTdHJpbmcmIHZhbHVlKSB7IG1fb2xkVmFsdWUgPSB2YWx1ZTsgfQorCisg
ICAgQXRvbWljU3RyaW5nIG1fYXR0cmlidXRlTmFtZTsKKyAgICBBdG9taWNTdHJpbmcgbV9hdHRy
aWJ1dGVOYW1lc3BhY2U7CisgICAgU3RyaW5nIG1fb2xkVmFsdWU7Cit9OworCitjbGFzcyBDaGFy
YWN0ZXJEYXRhUmVjb3JkIDogcHVibGljIE11dGF0aW9uUmVjb3JkIHsKK3B1YmxpYzoKKyAgICBD
aGFyYWN0ZXJEYXRhUmVjb3JkKFBhc3NSZWZQdHI8Tm9kZT4gdGFyZ2V0KQorICAgICAgICA6IE11
dGF0aW9uUmVjb3JkKHRhcmdldCkKKyAgICB7CisgICAgfQorCitwcml2YXRlOgorICAgIHZpcnR1
YWwgY29uc3QgQXRvbWljU3RyaW5nJiB0eXBlKCk7CisgICAgdmlydHVhbCBTdHJpbmcgb2xkVmFs
dWUoKSB7IHJldHVybiBtX29sZFZhbHVlOyB9CisgICAgdmlydHVhbCB2b2lkIHNldE9sZFZhbHVl
KGNvbnN0IFN0cmluZyYgdmFsdWUpIHsgbV9vbGRWYWx1ZSA9IHZhbHVlOyB9CisKKyAgICBTdHJp
bmcgbV9vbGRWYWx1ZTsKK307CisKK2NvbnN0IEF0b21pY1N0cmluZyYgQ2hpbGRMaXN0UmVjb3Jk
Ojp0eXBlKCkKK3sKKyAgICBERUZJTkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0cmluZywgY2hpbGRM
aXN0LCAoImNoaWxkTGlzdCIpKTsKKyAgICByZXR1cm4gY2hpbGRMaXN0OworfQorCitjb25zdCBB
dG9taWNTdHJpbmcmIEF0dHJpYnV0ZXNSZWNvcmQ6OnR5cGUoKQoreworICAgIERFRklORV9TVEFU
SUNfTE9DQUwoQXRvbWljU3RyaW5nLCBhdHRyaWJ1dGVzLCAoImF0dHJpYnV0ZXMiKSk7CisgICAg
cmV0dXJuIGF0dHJpYnV0ZXM7Cit9CisKK2NvbnN0IEF0b21pY1N0cmluZyYgQ2hhcmFjdGVyRGF0
YVJlY29yZDo6dHlwZSgpCit7CisgICAgREVGSU5FX1NUQVRJQ19MT0NBTChBdG9taWNTdHJpbmcs
IGNoYXJhY3RlckRhdGEsICgiY2hhcmFjdGVyRGF0YSIpKTsKKyAgICByZXR1cm4gY2hhcmFjdGVy
RGF0YTsKK30KKworfSAvLyBuYW1lc3BhY2UKKworUGFzc1JlZlB0cjxNdXRhdGlvblJlY29yZD4g
TXV0YXRpb25SZWNvcmQ6OmNyZWF0ZUNoaWxkTGlzdChQYXNzUmVmUHRyPE5vZGU+IHRhcmdldCwg
UGFzc1JlZlB0cjxOb2RlTGlzdD4gYWRkZWQsIFBhc3NSZWZQdHI8Tm9kZUxpc3Q+IHJlbW92ZWQs
IFBhc3NSZWZQdHI8Tm9kZT4gcHJldmlvdXNTaWJsaW5nLCBQYXNzUmVmUHRyPE5vZGU+IG5leHRT
aWJsaW5nKQoreworICAgIHJldHVybiBhZG9wdFJlZihzdGF0aWNfY2FzdDxNdXRhdGlvblJlY29y
ZCo+KG5ldyBDaGlsZExpc3RSZWNvcmQodGFyZ2V0LCBhZGRlZCwgcmVtb3ZlZCwgcHJldmlvdXNT
aWJsaW5nLCBuZXh0U2libGluZykpKTsKK30KKworUGFzc1JlZlB0cjxNdXRhdGlvblJlY29yZD4g
TXV0YXRpb25SZWNvcmQ6OmNyZWF0ZUF0dHJpYnV0ZXMoUGFzc1JlZlB0cjxOb2RlPiB0YXJnZXQs
IGNvbnN0IEF0b21pY1N0cmluZyYgYXR0cmlidXRlTmFtZSwgY29uc3QgQXRvbWljU3RyaW5nJiBh
dHRyaWJ1dGVOYW1lc3BhY2UpCit7CisgICAgcmV0dXJuIGFkb3B0UmVmKHN0YXRpY19jYXN0PE11
dGF0aW9uUmVjb3JkKj4obmV3IEF0dHJpYnV0ZXNSZWNvcmQodGFyZ2V0LCBhdHRyaWJ1dGVOYW1l
LCBhdHRyaWJ1dGVOYW1lc3BhY2UpKSk7Cit9CisKK1Bhc3NSZWZQdHI8TXV0YXRpb25SZWNvcmQ+
IE11dGF0aW9uUmVjb3JkOjpjcmVhdGVDaGFyYWN0ZXJEYXRhKFBhc3NSZWZQdHI8Tm9kZT4gdGFy
Z2V0KQoreworICAgIHJldHVybiBhZG9wdFJlZihzdGF0aWNfY2FzdDxNdXRhdGlvblJlY29yZCo+
KG5ldyBDaGFyYWN0ZXJEYXRhUmVjb3JkKHRhcmdldCkpKTsKK30KKworTXV0YXRpb25SZWNvcmQ6
Ok11dGF0aW9uUmVjb3JkKFBhc3NSZWZQdHI8Tm9kZT4gdGFyZ2V0KQorICAgIDogbV90YXJnZXQo
dGFyZ2V0KQoreworfQorCitNdXRhdGlvblJlY29yZDo6fk11dGF0aW9uUmVjb3JkKCkKK3sKK30K
KworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gRU5BQkxFKE1VVEFUSU9OX09C
U0VSVkVSUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9NdXRhdGlvblJlY29yZC5o
IGIvU291cmNlL1dlYkNvcmUvZG9tL011dGF0aW9uUmVjb3JkLmgKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZjBjZWM2
MDY2ODdkZWZhMjE1ZWRlY2M0OGYzMmU1ZGNkZDU3MmU5OQotLS0gL2Rldi9udWxsCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2RvbS9NdXRhdGlvblJlY29yZC5oCkBAIC0wLDAgKzEsODAgQEAKKy8qCisg
KiBDb3B5cmlnaHQgKEMpIDIwMTEgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAq
CisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKKyAqIG1ldDoKKyAqCisgKiAgICAgKiBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAorICogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgorICogICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQorICogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgorICogaW4gdGhlIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQorICogZGlz
dHJpYnV0aW9uLgorICogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3Ig
dGhlIG5hbWVzIG9mIGl0cworICogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ug
b3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KKyAqIHRoaXMgc29mdHdhcmUgd2l0aG91
dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUwor
ICogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgorICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJF
IERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKKyAqIE9XTkVSIE9S
IENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLAorICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisgKiBEQVRBLCBPUiBQUk9GSVRTOyBP
UiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKyAqIFRI
RU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVm
IE11dGF0aW9uUmVjb3JkX2gKKyNkZWZpbmUgTXV0YXRpb25SZWNvcmRfaAorCisjaWYgRU5BQkxF
KE1VVEFUSU9OX09CU0VSVkVSUykKKworI2luY2x1ZGUgIlBsYXRmb3JtU3RyaW5nLmgiCisjaW5j
bHVkZSA8d3RmL1Bhc3NSZWZQdHIuaD4KKyNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgorI2lu
Y2x1ZGUgPHd0Zi9SZWZQdHIuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBOb2Rl
OworY2xhc3MgTm9kZUxpc3Q7CisKK2NsYXNzIE11dGF0aW9uUmVjb3JkIDogcHVibGljIFJlZkNv
dW50ZWQ8TXV0YXRpb25SZWNvcmQ+IHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxN
dXRhdGlvblJlY29yZD4gY3JlYXRlQ2hpbGRMaXN0KFBhc3NSZWZQdHI8Tm9kZT4gdGFyZ2V0LCBQ
YXNzUmVmUHRyPE5vZGVMaXN0PiBhZGRlZCwgUGFzc1JlZlB0cjxOb2RlTGlzdD4gcmVtb3ZlZCwg
UGFzc1JlZlB0cjxOb2RlPiBwcmV2aW91c1NpYmxpbmcsIFBhc3NSZWZQdHI8Tm9kZT4gbmV4dFNp
YmxpbmcpOworICAgIHN0YXRpYyBQYXNzUmVmUHRyPE11dGF0aW9uUmVjb3JkPiBjcmVhdGVBdHRy
aWJ1dGVzKFBhc3NSZWZQdHI8Tm9kZT4gdGFyZ2V0LCBjb25zdCBBdG9taWNTdHJpbmcmIGF0dHJp
YnV0ZU5hbWUsIGNvbnN0IEF0b21pY1N0cmluZyYgYXR0cmlidXRlTmFtZXNwYWNlKTsKKyAgICBz
dGF0aWMgUGFzc1JlZlB0cjxNdXRhdGlvblJlY29yZD4gY3JlYXRlQ2hhcmFjdGVyRGF0YShQYXNz
UmVmUHRyPE5vZGU+IHRhcmdldCk7CisKKyAgICB2aXJ0dWFsIH5NdXRhdGlvblJlY29yZCgpOwor
CisgICAgdmlydHVhbCBjb25zdCBBdG9taWNTdHJpbmcmIHR5cGUoKSA9IDA7CisgICAgTm9kZSog
dGFyZ2V0KCkgeyByZXR1cm4gbV90YXJnZXQuZ2V0KCk7IH0KKworICAgIHZpcnR1YWwgTm9kZUxp
c3QqIGFkZGVkTm9kZXMoKSB7IHJldHVybiAwOyB9CisgICAgdmlydHVhbCBOb2RlTGlzdCogcmVt
b3ZlZE5vZGVzKCkgeyByZXR1cm4gMDsgfQorICAgIHZpcnR1YWwgTm9kZSogcHJldmlvdXNTaWJs
aW5nKCkgeyByZXR1cm4gMDsgfQorICAgIHZpcnR1YWwgTm9kZSogbmV4dFNpYmxpbmcoKSB7IHJl
dHVybiAwOyB9CisKKyAgICB2aXJ0dWFsIGNvbnN0IEF0b21pY1N0cmluZyYgYXR0cmlidXRlTmFt
ZSgpIHsgcmV0dXJuIG51bGxBdG9tOyB9CisgICAgdmlydHVhbCBjb25zdCBBdG9taWNTdHJpbmcm
IGF0dHJpYnV0ZU5hbWVzcGFjZSgpIHsgcmV0dXJuIG51bGxBdG9tOyB9CisKKyAgICB2aXJ0dWFs
IFN0cmluZyBvbGRWYWx1ZSgpIHsgcmV0dXJuIFN0cmluZygpOyB9CisgICAgdmlydHVhbCB2b2lk
IHNldE9sZFZhbHVlKGNvbnN0IFN0cmluZyYpIHsgfQorCitwcm90ZWN0ZWQ6CisgICAgZXhwbGlj
aXQgTXV0YXRpb25SZWNvcmQoUGFzc1JlZlB0cjxOb2RlPiB0YXJnZXQpOworCitwcml2YXRlOgor
ICAgIFJlZlB0cjxOb2RlPiBtX3RhcmdldDsKK307CisKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29y
ZQorCisjZW5kaWYgLy8gRU5BQkxFKE1VVEFUSU9OX09CU0VSVkVSUykKKworI2VuZGlmIC8vIE11
dGF0aW9uUmVjb3JkX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9NdXRhdGlvblJl
Y29yZC5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9kb20vTXV0YXRpb25SZWNvcmQuaWRsCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjQ2ZTdhMjliYmI4NDUyNmI0MjkwZDkwNDY2ODAwMzhjZTBjYzViMjkKLS0tIC9kZXYvbnVs
bAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vTXV0YXRpb25SZWNvcmQuaWRsCkBAIC0wLDAgKzEs
NDggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTEgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKKyAqIG1ldDoKKyAq
CisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAorICogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogICAgICogUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQorICogY29weXJpZ2h0IG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgorICog
aW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZQorICogZGlzdHJpYnV0aW9uLgorICogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29n
bGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cworICogY29udHJpYnV0b3JzIG1heSBiZSB1c2Vk
IHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KKyAqIHRoaXMgc29m
dHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgorICog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENP
TlRSSUJVVE9SUworICogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgorICogQSBQQVJUSUNVTEFS
IFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQK
KyAqIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLAorICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFM
IERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQg
T0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisgKiBEQVRBLCBP
UiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBP
TiBBTlkKKyAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAq
LworCittb2R1bGUgY29yZSB7CisgICAgaW50ZXJmYWNlIFsKKyAgICAgICAgQ29uZGl0aW9uYWw9
TVVUQVRJT05fT0JTRVJWRVJTCisgICAgXSBNdXRhdGlvblJlY29yZCB7CisgICAgICAgIHJlYWRv
bmx5IGF0dHJpYnV0ZSBET01TdHJpbmcgdHlwZTsKKyAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRl
IE5vZGUgdGFyZ2V0OworCisgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBOb2RlTGlzdCBhZGRl
ZE5vZGVzOworICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgTm9kZUxpc3QgcmVtb3ZlZE5vZGVz
OworICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgTm9kZSBwcmV2aW91c1NpYmxpbmc7CisgICAg
ICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBOb2RlIG5leHRTaWJsaW5nOworCisgICAgICAgIHJlYWRv
bmx5IGF0dHJpYnV0ZSBET01TdHJpbmcgYXR0cmlidXRlTmFtZTsKKyAgICAgICAgcmVhZG9ubHkg
YXR0cmlidXRlIERPTVN0cmluZyBhdHRyaWJ1dGVOYW1lc3BhY2U7CisKKyAgICAgICAgcmVhZG9u
bHkgYXR0cmlidXRlIERPTVN0cmluZyBvbGRWYWx1ZTsKKyAgICB9OworfQo=
</data>

          </attachment>
      

    </bug>

</bugzilla>