<?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>107637</bug_id>
          
          <creation_ts>2013-01-22 23:38:09 -0800</creation_ts>
          <short_desc>BackgroundHTMLParser::sendTokensToMainThread should use bind</short_desc>
          <delta_ts>2013-01-23 14:17:41 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</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>107190</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Adam Barth">abarth</reporter>
          <assigned_to name="Adam Barth">abarth</assigned_to>
          <cc>andersca</cc>
    
    <cc>benjamin</cc>
    
    <cc>eric</cc>
    
    <cc>ojan.autocc</cc>
    
    <cc>tonyg</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>813903</commentid>
    <comment_count>0</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2013-01-22 23:38:09 -0800</bug_when>
    <thetext>BackgroundHTMLParser::sendTokensToMainThread should use bind</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>813908</commentid>
    <comment_count>1</comment_count>
      <attachid>184159</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2013-01-22 23:42:04 -0800</bug_when>
    <thetext>Created attachment 184159
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>813911</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-01-22 23:45:55 -0800</bug_when>
    <thetext>Attachment 184159 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;Source/WTF/ChangeLog&apos;, u&apos;Source/WTF/wtf/We...&quot; exit_code: 1
Source/WTF/wtf/chromium/MainThreadChromium.cpp:60:  Extra space before ( in function call  [whitespace/parens] [4]
Source/WTF/wtf/chromium/MainThreadChromium.cpp:65:  Extra space before ( in function call  [whitespace/parens] [4]
Total errors found: 2 in 8 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>813966</commentid>
    <comment_count>3</comment_count>
      <attachid>184172</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2013-01-23 00:50:16 -0800</bug_when>
    <thetext>Created attachment 184172
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>813970</commentid>
    <comment_count>4</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-01-23 00:56:39 -0800</bug_when>
    <thetext>Attachment 184172 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;Source/WTF/ChangeLog&apos;, u&apos;Source/WTF/wtf/Fu...&quot; exit_code: 1
Source/WTF/wtf/chromium/MainThreadChromium.cpp:60:  Extra space before ( in function call  [whitespace/parens] [4]
Source/WTF/wtf/chromium/MainThreadChromium.cpp:65:  Extra space before ( in function call  [whitespace/parens] [4]
Total errors found: 2 in 9 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>814030</commentid>
    <comment_count>5</comment_count>
      <attachid>184172</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2013-01-23 02:18:23 -0800</bug_when>
    <thetext>Comment on attachment 184172
Patch

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

&gt; Source/WTF/wtf/Functional.h:180
&gt; +        if (!c)
&gt; +            return R();

I don&apos;t understand this part.

&gt; Source/WTF/wtf/Functional.h:346
&gt; +template&lt;typename T, bool shouldValidate&gt; struct ParamStorageTraits {

Booooo.  bool params are ugly.

&gt; Source/WTF/wtf/Functional.h:367
&gt; +template&lt;typename T&gt; struct ParamStorageTraits&lt;WeakPtr&lt;T&gt;, false&gt; {

See!  Confusing bools!

&gt; Source/WTF/wtf/Functional.h:484
&gt; +        , m_p2(ParamStorageTraits&lt;P2, false&gt;::wrap(p2))

Oh the bools!

&gt; Source/WTF/wtf/WeakPtr.h:104
&gt; +        T* ptr = m_ref-&gt;get();
&gt; +        m_ref-&gt;clear();
&gt; +        // We create a new WeakReference so that future calls to createWeakPtr() create nonzero WeakPtrs.
&gt; +        m_ref = Internal::WeakReference&lt;T&gt;::create(ptr);

Can ptr go stale during this?

&gt;&gt; Source/WTF/wtf/chromium/MainThreadChromium.cpp:60
&gt;&gt; +    Function&lt;void ()&gt;* function = static_cast&lt;Function&lt;void ()&gt;*&gt;(context);
&gt; 
&gt; Extra space before ( in function call  [whitespace/parens] [4]

I&apos;m not sure the space helps readability and just seems to make the stylebot mad. :)

We also need a global typedef for Function&lt;void()&gt;, it&apos;s very very common.  There is currently one in HTMLBackgroundThread called Closure (like chromium).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>814032</commentid>
    <comment_count>6</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2013-01-23 02:19:11 -0800</bug_when>
    <thetext>The parser-side changes LGTM.  I&apos;m sure Anders would like to see the Functional bits go by.  Maybe he has naming opinions on a &quot;Function&lt;void()&gt;&quot; (which we desperately need).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>814338</commentid>
    <comment_count>7</comment_count>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2013-01-23 10:37:34 -0800</bug_when>
    <thetext>I agree that the boolean parameters are ugly - maybe we could add special member functions for wrapping and unwrapping/validating the first parameter instead?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>814409</commentid>
    <comment_count>8</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2013-01-23 11:25:35 -0800</bug_when>
    <thetext>(In reply to comment #5)
&gt; (From update of attachment 184172 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=184172&amp;action=review
&gt; 
&gt; &gt; Source/WTF/wtf/Functional.h:180
&gt; &gt; +        if (!c)
&gt; &gt; +            return R();
&gt; 
&gt; I don&apos;t understand this part.

That&apos;s the part that checks whether the WeakPtr has been cleared before the task runs.  If &quot;c&quot; (which is the |this| pointer) is null, we don&apos;t call the member function.  (Calling member functions on a null |this| pointer is undefined in C++ anyway.)

&gt; &gt; Source/WTF/wtf/Functional.h:346
&gt; &gt; +template&lt;typename T, bool shouldValidate&gt; struct ParamStorageTraits {
&gt; 
&gt; Booooo.  bool params are ugly.

I can try to use enums, but I&apos;m not sure if that will freak out the template system.

&gt; &gt; Source/WTF/wtf/WeakPtr.h:104
&gt; &gt; +        T* ptr = m_ref-&gt;get();
&gt; &gt; +        m_ref-&gt;clear();
&gt; &gt; +        // We create a new WeakReference so that future calls to createWeakPtr() create nonzero WeakPtrs.
&gt; &gt; +        m_ref = Internal::WeakReference&lt;T&gt;::create(ptr);
&gt; 
&gt; Can ptr go stale during this?

Nope.  Both get() and clear() ASSERT that they&apos;re called on a given thread (the &quot;bound thread&quot;).

&gt; &gt;&gt; Source/WTF/wtf/chromium/MainThreadChromium.cpp:60
&gt; &gt;&gt; +    Function&lt;void ()&gt;* function = static_cast&lt;Function&lt;void ()&gt;*&gt;(context);
&gt; &gt; 
&gt; &gt; Extra space before ( in function call  [whitespace/parens] [4]
&gt; 
&gt; I&apos;m not sure the space helps readability and just seems to make the stylebot mad. :)

Ok.  I can remove it.

&gt; We also need a global typedef for Function&lt;void()&gt;, it&apos;s very very common.  There is currently one in HTMLBackgroundThread called Closure (like chromium).

Perhaps &quot;thunk&quot;?  :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>814411</commentid>
    <comment_count>9</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2013-01-23 11:27:23 -0800</bug_when>
    <thetext>&gt; I agree that the boolean parameters are ugly - maybe we could add special member functions for wrapping and unwrapping/validating the first parameter instead?

The problem is that you want to use a different unwrapping function (with a different return type) when the argument is the |this| parameter to a member function than when the first argument to a non-member function.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>814422</commentid>
    <comment_count>10</comment_count>
      <attachid>184172</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2013-01-23 11:40:02 -0800</bug_when>
    <thetext>Comment on attachment 184172
Patch

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

&gt;&gt;&gt; Source/WTF/wtf/WeakPtr.h:104
&gt;&gt;&gt; +        m_ref = Internal::WeakReference&lt;T&gt;::create(ptr);
&gt;&gt; 
&gt;&gt; Can ptr go stale during this?
&gt; 
&gt; Nope.  Both get() and clear() ASSERT that they&apos;re called on a given thread (the &quot;bound thread&quot;).

I was wondering more if the cleared WeakReference was the last ref to the object, would it now be deleted. :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>814483</commentid>
    <comment_count>11</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2013-01-23 12:16:33 -0800</bug_when>
    <thetext>(In reply to comment #10)
&gt; (From update of attachment 184172 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=184172&amp;action=review
&gt; 
&gt; &gt;&gt;&gt; Source/WTF/wtf/WeakPtr.h:104
&gt; &gt;&gt;&gt; +        m_ref = Internal::WeakReference&lt;T&gt;::create(ptr);
&gt; &gt;&gt; 
&gt; &gt;&gt; Can ptr go stale during this?
&gt; &gt; 
&gt; &gt; Nope.  Both get() and clear() ASSERT that they&apos;re called on a given thread (the &quot;bound thread&quot;).
&gt; 
&gt; I was wondering more if the cleared WeakReference was the last ref to the object, would it now be deleted. :)

WeakReference does not prevent the object from being deleted.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>814610</commentid>
    <comment_count>12</comment_count>
      <attachid>184306</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2013-01-23 14:08:08 -0800</bug_when>
    <thetext>Created attachment 184306
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>814614</commentid>
    <comment_count>13</comment_count>
      <attachid>184306</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2013-01-23 14:12:18 -0800</bug_when>
    <thetext>Comment on attachment 184306
Patch

Looks great.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>814615</commentid>
    <comment_count>14</comment_count>
      <attachid>184308</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2013-01-23 14:12:45 -0800</bug_when>
    <thetext>Created attachment 184308
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>814616</commentid>
    <comment_count>15</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2013-01-23 14:14:29 -0800</bug_when>
    <thetext>I&apos;ll land manually to avoid the sln issue.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>814622</commentid>
    <comment_count>16</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2013-01-23 14:17:41 -0800</bug_when>
    <thetext>Committed r140589: &lt;http://trac.webkit.org/changeset/140589&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>184159</attachid>
            <date>2013-01-22 23:42:04 -0800</date>
            <delta_ts>2013-01-23 00:50:13 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-107637-20130122233858.patch</filename>
            <type>text/plain</type>
            <size>12770</size>
            <attacher name="Adam Barth">abarth</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQwNTEwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IGUzOTU1M2ZjZTZmODBjMWY5NTk2NTY0
MzQ4NTJjYTcyN2RmNTlkNWQuLjVjZDM0MjU3ZTk4NjM1MzgzOGYyNDVlNGEwZGMyNzg5NjQ5YzE5
OTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMjEgQEAKKzIwMTMtMDEtMjIgIEFkYW0gQmFydGggIDxhYmFydGhA
d2Via2l0Lm9yZz4KKworICAgICAgICBCYWNrZ3JvdW5kSFRNTFBhcnNlcjo6c2VuZFRva2Vuc1Rv
TWFpblRocmVhZCBzaG91bGQgdXNlIGJpbmQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTEwNzYzNworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgICogd3RmL1dlYWtQdHIuaDoKKyAgICAgICAgKFdURjo6V2Vha1B0
ckZhY3Rvcnk6OnJldm9rZUFsbCk6CisgICAgICAgIChXZWFrUHRyRmFjdG9yeSk6CisgICAgICAg
ICAgICAtIExldCBjbGllbnRzIHJldm9rZSBhbGwgb3V0c3RhbmRpbmcgV2Vha1B0cnMgd2l0aG91
dCBuZWVkaW5nIHRvCisgICAgICAgICAgICAgIGRlc3Ryb3kgdGhlIFdlYWtQdHJGYWN0b3J5Lgor
ICAgICAgICAqIHd0Zi9jaHJvbWl1bS9NYWluVGhyZWFkQ2hyb21pdW0uY3BwOgorICAgICAgICAo
V1RGOjpjYWxsRnVuY3Rpb25PYmplY3QpOgorICAgICAgICAoV1RGOjpjYWxsT25NYWluVGhyZWFk
KToKKyAgICAgICAgICAgIC0gSW1wbGVtZW50IGNhbGxPbk1haW5UaHJlYWQgZm9yIEZ1bmN0aW9u
IG9iamVjdHMuIFRoZSBub24tQ2hyb21pdW0KKyAgICAgICAgICAgICAgaW1wbGVtZW50YXRpb24g
b2YgTWFpblRocmVhZC5jcHAgYWxyZWFkeSBpbXBsZW1lbnRzIHRoaXMgZmVhdHVyZS4KKwogMjAx
My0wMS0yMiAgSm9zaHVhIEJlbGwgIDxqc2JlbGxAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFBy
ZXZlbnQgcmFjZSBjb25kaXRpb24gZHVyaW5nIFdvcmtlciBzaHV0ZG93bgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4
IGU3YTlmMTM3Yjk5YTI2MjExNjMyYjRlOGE3MzkwYmM1NDkyMjg1MDIuLmRmZmQ2ZTg4ZTZkNDll
N2U1Y2JiY2E1ODk3MzIwMTU1OTBjNjhhMmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzMCBAQAor
MjAxMy0wMS0yMiAgQWRhbSBCYXJ0aCAgPGFiYXJ0aEB3ZWJraXQub3JnPgorCisgICAgICAgIEJh
Y2tncm91bmRIVE1MUGFyc2VyOjpzZW5kVG9rZW5zVG9NYWluVGhyZWFkIHNob3VsZCB1c2UgYmlu
ZAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTA3NjM3
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhpcyBw
YXRjaCByZXBsYWNlcyBvdXIgaGFuZC13cml0dGVuIGltcGxlbWVudGF0aW9uIG9mIGJpbmQgZm9y
CisgICAgICAgIGRpZFJlY2VpdmVUb2tlbnNGcm9tQmFja2dyb3VuZFBhcnNlciB3aXRoIGJpbmQg
ZnJvbSBGdW5jdGlvbmFsLmguIFRvCisgICAgICAgIHVzZSB0aGUgZ2VuZXJpYyB2ZXJzaW9uIG9m
IGJpbmQsIHdlIG5lZWQgdG8gc3dpdGNoIHRvIHVzaW5nIFdlYWtQdHIgdG8KKyAgICAgICAgaG9s
ZCBhIHJlZmVyZW5jZSB0byB0aGUgbWFpbiB0aHJlYWQgcGFyc2VyIGluIHRoZSBCYWNrZ3JvdW5k
SFRNTFBhcnNlci4KKworICAgICAgICAqIGh0bWwvcGFyc2VyL0JhY2tncm91bmRIVE1MUGFyc2Vy
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkJhY2tncm91bmRIVE1MUGFyc2VyOjpCYWNrZ3JvdW5k
SFRNTFBhcnNlcik6CisgICAgICAgIChXZWJDb3JlOjpCYWNrZ3JvdW5kSFRNTFBhcnNlcjo6c2Vu
ZFRva2Vuc1RvTWFpblRocmVhZCk6CisgICAgICAgIChXZWJDb3JlOjpCYWNrZ3JvdW5kSFRNTFBh
cnNlcjo6Y3JlYXRlUGFydGlhbCk6CisgICAgICAgICogaHRtbC9wYXJzZXIvQmFja2dyb3VuZEhU
TUxQYXJzZXIuaDoKKyAgICAgICAgKFdlYkNvcmU6OkJhY2tncm91bmRIVE1MUGFyc2VyOjpjcmVh
dGUpOgorICAgICAgICAoQmFja2dyb3VuZEhUTUxQYXJzZXIpOgorICAgICAgICAoUGFyc2VyTWFw
KToKKyAgICAgICAgKiBodG1sL3BhcnNlci9IVE1MRG9jdW1lbnRQYXJzZXIuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6SFRNTERvY3VtZW50UGFyc2VyOjpIVE1MRG9jdW1lbnRQYXJzZXIpOgorICAg
ICAgICAoV2ViQ29yZTo6SFRNTERvY3VtZW50UGFyc2VyOjpzdGFydEJhY2tncm91bmRQYXJzZXIp
OgorICAgICAgICAoV2ViQ29yZTo6SFRNTERvY3VtZW50UGFyc2VyOjpzdG9wQmFja2dyb3VuZFBh
cnNlcik6CisgICAgICAgICogaHRtbC9wYXJzZXIvSFRNTERvY3VtZW50UGFyc2VyLmg6CisgICAg
ICAgIChIVE1MRG9jdW1lbnRQYXJzZXIpOgorCiAyMDEzLTAxLTIyICBNYXJrIExhbSAgPG1hcmsu
bGFtQGFwcGxlLmNvbT4KIAogICAgICAgICBDaGFuZ2UgdGhlIFN1cHBsZW1lbnRhYmxlIGNsYXNz
IHRvIG5vdCB1c2UgQXRvbWljU3RyaW5nLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvV2Vh
a1B0ci5oIGIvU291cmNlL1dURi93dGYvV2Vha1B0ci5oCmluZGV4IDBlNjQ1MDYyMDA2ZTc4NGMz
Zjk5MmEzZDM0YjVlMjJjODkxMGM1YmIuLjI4OWExMGMxOGNhZTA4MDhlMzg5NDJkYmM5ZDIwNmIx
ODA2MTFkODggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL1dlYWtQdHIuaAorKysgYi9Tb3Vy
Y2UvV1RGL3d0Zi9XZWFrUHRyLmgKQEAgLTk2LDYgKzk2LDE0IEBAIHB1YmxpYzoKICAgICAvLyBX
ZSBzaG91bGQgY29uc2lkZXIgaGF2aW5nIGNyZWF0ZVdlYWtQdHIgcG9wdWxhdGUgbV9yZWYgdGhl
IGZpcnN0IHRpbWUgY3JlYXRlV2Vha1B0ciBpcyBjYWxsZWQuCiAgICAgV2Vha1B0cjxUPiBjcmVh
dGVXZWFrUHRyKCkgeyByZXR1cm4gV2Vha1B0cjxUPihtX3JlZik7IH0KIAorICAgIHZvaWQgcmV2
b2tlQWxsKCkKKyAgICB7CisgICAgICAgIFQqIHB0ciA9IG1fcmVmLT5nZXQoKTsKKyAgICAgICAg
bV9yZWYtPmNsZWFyKCk7CisgICAgICAgIC8vIFdlIGNyZWF0ZSBhIG5ldyBXZWFrUmVmZXJlbmNl
IHNvIHRoYXQgZnV0dXJlIGNhbGxzIHRvIGNyZWF0ZVdlYWtQdHIoKSBjcmVhdGUgbm9uemVybyBX
ZWFrUHRycy4KKyAgICAgICAgbV9yZWYgPSBJbnRlcm5hbDo6V2Vha1JlZmVyZW5jZTxUPjo6Y3Jl
YXRlKHB0cik7CisgICAgfQorCiBwcml2YXRlOgogICAgIFJlZlB0cjxJbnRlcm5hbDo6V2Vha1Jl
ZmVyZW5jZTxUPiA+IG1fcmVmOwogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL2Nocm9t
aXVtL01haW5UaHJlYWRDaHJvbWl1bS5jcHAgYi9Tb3VyY2UvV1RGL3d0Zi9jaHJvbWl1bS9NYWlu
VGhyZWFkQ2hyb21pdW0uY3BwCmluZGV4IDllNjU5MmI1NzE1Njc5YWUyYmM5YTZkMWEwYjZmM2I4
YzllMThlODEuLjk1N2VhZTcwMWQxOGUzOTczODQ4MTIzNDE1N2YzYTE4ZGU4MmU0MTggMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL2Nocm9taXVtL01haW5UaHJlYWRDaHJvbWl1bS5jcHAKKysr
IGIvU291cmNlL1dURi93dGYvY2hyb21pdW0vTWFpblRocmVhZENocm9taXVtLmNwcApAQCAtMzQs
NiArMzQsNyBAQAogI2luY2x1ZGUgIkFzc2VydGlvbnMuaCIKICNpbmNsdWRlICJDaHJvbWl1bVRo
cmVhZGluZy5oIgogI2luY2x1ZGUgIlRocmVhZGluZy5oIgorI2luY2x1ZGUgPHd0Zi9GdW5jdGlv
bmFsLmg+CiAKIG5hbWVzcGFjZSBXVEYgewogCkBAIC01NCw2ICs1NSwxOCBAQCB2b2lkIGNhbGxP
bk1haW5UaHJlYWQoTWFpblRocmVhZEZ1bmN0aW9uKiBmdW5jdGlvbiwgdm9pZCogY29udGV4dCkK
ICAgICBDaHJvbWl1bVRocmVhZGluZzo6Y2FsbE9uTWFpblRocmVhZChmdW5jdGlvbiwgY29udGV4
dCk7CiB9CiAKK3N0YXRpYyB2b2lkIGNhbGxGdW5jdGlvbk9iamVjdCh2b2lkKiBjb250ZXh0KQor
eworICAgIEZ1bmN0aW9uPHZvaWQgKCk+KiBmdW5jdGlvbiA9IHN0YXRpY19jYXN0PEZ1bmN0aW9u
PHZvaWQgKCk+Kj4oY29udGV4dCk7CisgICAgKCpmdW5jdGlvbikoKTsKKyAgICBkZWxldGUgZnVu
Y3Rpb247Cit9CisKK3ZvaWQgY2FsbE9uTWFpblRocmVhZChjb25zdCBGdW5jdGlvbjx2b2lkICgp
PiYgZnVuY3Rpb24pCit7CisgICAgY2FsbE9uTWFpblRocmVhZChjYWxsRnVuY3Rpb25PYmplY3Qs
IG5ldyBGdW5jdGlvbjx2b2lkICgpPihmdW5jdGlvbikpOworfQorCiB2b2lkIGNhbGxPbk1haW5U
aHJlYWRBbmRXYWl0KE1haW5UaHJlYWRGdW5jdGlvbiosIHZvaWQqKQogewogICAgIEFTU0VSVF9O
T1RfUkVBQ0hFRCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvQmFj
a2dyb3VuZEhUTUxQYXJzZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvQmFja2dy
b3VuZEhUTUxQYXJzZXIuY3BwCmluZGV4IGNmZDM2M2Y0ZDEwZmZiMTBmYmVjZWM3YzkyMDQ1ZTI3
NjhmNzQ5MDkuLmMwZWY0MDQ3Yjk4NmZmMWE2YTNkNzk4NDI0OTBiZTg5MzJhNzY2Y2IgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0JhY2tncm91bmRIVE1MUGFyc2VyLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9CYWNrZ3JvdW5kSFRNTFBhcnNlci5j
cHAKQEAgLTY4LDkgKzY4LDYgQEAgc3RhdGljIGJvb2wgdGhyZWFkU2FmZU1hdGNoKGNvbnN0IFN0
cmluZyYgbG9jYWxOYW1lLCBjb25zdCBRdWFsaWZpZWROYW1lJiBxTmFtZSkKICAgICByZXR1cm4g
dGhyZWFkU2FmZUVxdWFsKGxvY2FsTmFtZS5pbXBsKCksIHFOYW1lLmxvY2FsTmFtZSgpLmltcGwo
KSk7CiB9CiAKLXR5cGVkZWYgY29uc3Qgdm9pZCogUGFyc2VySWRlbnRpZmllcjsKLWNsYXNzIEhU
TUxEb2N1bWVudFBhcnNlcjsKLQogUGFyc2VyTWFwJiBwYXJzZXJNYXAoKQogewogICAgIC8vIFRo
aXMgaW5pdGlhbGl6YXRpb24gYXNzdW1lcyB0aGF0IHRoaXMgd2lsbCBiZSBpbml0aWFsaXplIG9u
IHRoZSBtYWluIHRocmVhZCBiZWZvcmUKQEAgLTg1LDE3ICs4MiwxMSBAQCBQYXJzZXJNYXA6OkJh
Y2tncm91bmRQYXJzZXJNYXAmIFBhcnNlck1hcDo6YmFja2dyb3VuZFBhcnNlcnMoKQogICAgIHJl
dHVybiBtX2JhY2tncm91bmRQYXJzZXJzOwogfQogCi1QYXJzZXJNYXA6Ok1haW5UaHJlYWRQYXJz
ZXJNYXAmIFBhcnNlck1hcDo6bWFpblRocmVhZFBhcnNlcnMoKQotewotICAgIEFTU0VSVChpc01h
aW5UaHJlYWQoKSk7Ci0gICAgcmV0dXJuIG1fbWFpblRocmVhZFBhcnNlcnM7Ci19Ci0KLUJhY2tn
cm91bmRIVE1MUGFyc2VyOjpCYWNrZ3JvdW5kSFRNTFBhcnNlcihjb25zdCBIVE1MUGFyc2VyT3B0
aW9ucyYgb3B0aW9ucywgUGFyc2VySWRlbnRpZmllciBpZGVudGlmaWVyKQorQmFja2dyb3VuZEhU
TUxQYXJzZXI6OkJhY2tncm91bmRIVE1MUGFyc2VyKGNvbnN0IEhUTUxQYXJzZXJPcHRpb25zJiBv
cHRpb25zLCBXZWFrUHRyPEhUTUxEb2N1bWVudFBhcnNlcj4gcGFyc2VyKQogICAgIDogbV9pbkZv
cmVpZ25Db250ZW50KGZhbHNlKQogICAgICwgbV90b2tlbml6ZXIoSFRNTFRva2VuaXplcjo6Y3Jl
YXRlKG9wdGlvbnMpKQogICAgICwgbV9vcHRpb25zKG9wdGlvbnMpCi0gICAgLCBtX3BhcnNlcklk
ZW50aWZlcihpZGVudGlmaWVyKQorICAgICwgbV9wYXJzZXIocGFyc2VyKQogICAgICwgbV9wZW5k
aW5nVG9rZW5zKGFkb3B0UHRyKG5ldyBDb21wYWN0SFRNTFRva2VuU3RyZWFtKSkKIHsKIH0KQEAg
LTE3MywyOSArMTY0LDYgQEAgdm9pZCBCYWNrZ3JvdW5kSFRNTFBhcnNlcjo6cHVtcFRva2VuaXpl
cigpCiAgICAgc2VuZFRva2Vuc1RvTWFpblRocmVhZCgpOwogfQogCi1jbGFzcyBUb2tlbkRlbGl2
ZXJ5IHsKLSAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShUb2tlbkRlbGl2ZXJ5KTsKLXB1YmxpYzoK
LSAgICBUb2tlbkRlbGl2ZXJ5KCkKLSAgICAgICAgOiBpZGVudGlmaWVyKDApCi0gICAgewotICAg
IH0KLQotICAgIFBhcnNlcklkZW50aWZpZXIgaWRlbnRpZmllcjsKLSAgICBPd25QdHI8Q29tcGFj
dEhUTUxUb2tlblN0cmVhbT4gdG9rZW5zOwotICAgIHN0YXRpYyB2b2lkIGV4ZWN1dGUodm9pZCog
Y29udGV4dCkKLSAgICB7Ci0gICAgICAgIFRva2VuRGVsaXZlcnkqIGRlbGl2ZXJ5ID0gc3RhdGlj
X2Nhc3Q8VG9rZW5EZWxpdmVyeSo+KGNvbnRleHQpOwotICAgICAgICBIVE1MRG9jdW1lbnRQYXJz
ZXIqIHBhcnNlciA9IHBhcnNlck1hcCgpLm1haW5UaHJlYWRQYXJzZXJzKCkuZ2V0KGRlbGl2ZXJ5
LT5pZGVudGlmaWVyKTsKLSAgICAgICAgaWYgKHBhcnNlcikKLSAgICAgICAgICAgIHBhcnNlci0+
ZGlkUmVjZWl2ZVRva2Vuc0Zyb21CYWNrZ3JvdW5kUGFyc2VyKGRlbGl2ZXJ5LT50b2tlbnMucmVs
ZWFzZSgpKTsKLSAgICAgICAgLy8gRklYTUU6IElkZWFsbHkgd2Ugd291bGRuJ3QgbmVlZCB0byBj
YWxsIGRlbGV0ZSBtYW51YWxseS4gSW5zdGVhZAotICAgICAgICAvLyB3ZSB3b3VsZCBsaWtlIGFu
IEFQSSB3aGVyZSB0aGUgbWVzc2FnZSBxdWV1ZSBvd25zIHRoZSB0YXNrcyBhbmQKLSAgICAgICAg
Ly8gdGFrZXMgY2FyZSBvZiBkZWxldGluZyB0aGVtLgotICAgICAgICBkZWxldGUgZGVsaXZlcnk7
Ci0gICAgfQotfTsKLQogdm9pZCBCYWNrZ3JvdW5kSFRNTFBhcnNlcjo6c2VuZFRva2Vuc1RvTWFp
blRocmVhZCgpCiB7CiAgICAgaWYgKG1fcGVuZGluZ1Rva2Vucy0+aXNFbXB0eSgpKQpAQCAtMjA1
LDE4ICsxNzMsMTUgQEAgdm9pZCBCYWNrZ3JvdW5kSFRNTFBhcnNlcjo6c2VuZFRva2Vuc1RvTWFp
blRocmVhZCgpCiAgICAgY2hlY2tUaGF0VG9rZW5zQXJlU2FmZVRvU2VuZFRvQW5vdGhlclRocmVh
ZChtX3BlbmRpbmdUb2tlbnMuZ2V0KCkpOwogI2VuZGlmCiAKLSAgICBUb2tlbkRlbGl2ZXJ5KiBk
ZWxpdmVyeSA9IG5ldyBUb2tlbkRlbGl2ZXJ5OwotICAgIGRlbGl2ZXJ5LT5pZGVudGlmaWVyID0g
bV9wYXJzZXJJZGVudGlmZXI7Ci0gICAgZGVsaXZlcnktPnRva2VucyA9IG1fcGVuZGluZ1Rva2Vu
cy5yZWxlYXNlKCk7Ci0gICAgY2FsbE9uTWFpblRocmVhZChUb2tlbkRlbGl2ZXJ5OjpleGVjdXRl
LCBkZWxpdmVyeSk7CisgICAgY2FsbE9uTWFpblRocmVhZChiaW5kKCZIVE1MRG9jdW1lbnRQYXJz
ZXI6OmRpZFJlY2VpdmVUb2tlbnNGcm9tQmFja2dyb3VuZFBhcnNlciwgbV9wYXJzZXIsIG1fcGVu
ZGluZ1Rva2Vucy5yZWxlYXNlKCkpKTsKIAogICAgIG1fcGVuZGluZ1Rva2VucyA9IGFkb3B0UHRy
KG5ldyBDb21wYWN0SFRNTFRva2VuU3RyZWFtKTsKIH0KIAotdm9pZCBCYWNrZ3JvdW5kSFRNTFBh
cnNlcjo6Y3JlYXRlUGFydGlhbChQYXJzZXJJZGVudGlmaWVyIGlkZW50aWZpZXIsIEhUTUxQYXJz
ZXJPcHRpb25zIG9wdGlvbnMpCit2b2lkIEJhY2tncm91bmRIVE1MUGFyc2VyOjpjcmVhdGVQYXJ0
aWFsKFBhcnNlcklkZW50aWZpZXIgaWRlbnRpZmllciwgSFRNTFBhcnNlck9wdGlvbnMgb3B0aW9u
cywgV2Vha1B0cjxIVE1MRG9jdW1lbnRQYXJzZXI+IHBhcnNlcikKIHsKICAgICBBU1NFUlQoIXBh
cnNlck1hcCgpLmJhY2tncm91bmRQYXJzZXJzKCkuZ2V0KGlkZW50aWZpZXIpKTsKLSAgICBwYXJz
ZXJNYXAoKS5iYWNrZ3JvdW5kUGFyc2VycygpLnNldChpZGVudGlmaWVyLCBCYWNrZ3JvdW5kSFRN
TFBhcnNlcjo6Y3JlYXRlKG9wdGlvbnMsIGlkZW50aWZpZXIpKTsKKyAgICBwYXJzZXJNYXAoKS5i
YWNrZ3JvdW5kUGFyc2VycygpLnNldChpZGVudGlmaWVyLCBCYWNrZ3JvdW5kSFRNTFBhcnNlcjo6
Y3JlYXRlKG9wdGlvbnMsIHBhcnNlcikpOwogfQogCiB2b2lkIEJhY2tncm91bmRIVE1MUGFyc2Vy
OjpzdG9wUGFydGlhbChQYXJzZXJJZGVudGlmaWVyIGlkZW50aWZpZXIpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9CYWNrZ3JvdW5kSFRNTFBhcnNlci5oIGIvU291cmNl
L1dlYkNvcmUvaHRtbC9wYXJzZXIvQmFja2dyb3VuZEhUTUxQYXJzZXIuaAppbmRleCAyZTRkYjQx
OWMwZjViZDJkMmExNmRiOTNiY2E0YWNjMTNhOTZkOTFlLi5lZmMwNDk4N2E4MDg3NzExNDkyZDQ1
OGQ4MTAxZDE4Y2JmZGUxNTQ0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNl
ci9CYWNrZ3JvdW5kSFRNTFBhcnNlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2Vy
L0JhY2tncm91bmRIVE1MUGFyc2VyLmgKQEAgLTQ0LDE4ICs0NCwxOCBAQCBwdWJsaWM6CiAgICAg
dm9pZCBhcHBlbmQoY29uc3QgU3RyaW5nJik7CiAgICAgdm9pZCBmaW5pc2goKTsKIAotICAgIHN0
YXRpYyBQYXNzT3duUHRyPEJhY2tncm91bmRIVE1MUGFyc2VyPiBjcmVhdGUoY29uc3QgSFRNTFBh
cnNlck9wdGlvbnMmIG9wdGlvbnMsIFBhcnNlcklkZW50aWZpZXIgaWRlbnRpZmllcikKKyAgICBz
dGF0aWMgUGFzc093blB0cjxCYWNrZ3JvdW5kSFRNTFBhcnNlcj4gY3JlYXRlKGNvbnN0IEhUTUxQ
YXJzZXJPcHRpb25zJiBvcHRpb25zLCBXZWFrUHRyPEhUTUxEb2N1bWVudFBhcnNlcj4gcGFyc2Vy
KQogICAgIHsKLSAgICAgICAgcmV0dXJuIGFkb3B0UHRyKG5ldyBCYWNrZ3JvdW5kSFRNTFBhcnNl
cihvcHRpb25zLCBpZGVudGlmaWVyKSk7CisgICAgICAgIHJldHVybiBhZG9wdFB0cihuZXcgQmFj
a2dyb3VuZEhUTUxQYXJzZXIob3B0aW9ucywgcGFyc2VyKSk7CiAgICAgfQogCi0gICAgc3RhdGlj
IHZvaWQgY3JlYXRlUGFydGlhbChQYXJzZXJJZGVudGlmaWVyLCBIVE1MUGFyc2VyT3B0aW9ucyk7
CisgICAgc3RhdGljIHZvaWQgY3JlYXRlUGFydGlhbChQYXJzZXJJZGVudGlmaWVyLCBIVE1MUGFy
c2VyT3B0aW9ucywgV2Vha1B0cjxIVE1MRG9jdW1lbnRQYXJzZXI+KTsKICAgICBzdGF0aWMgdm9p
ZCBzdG9wUGFydGlhbChQYXJzZXJJZGVudGlmaWVyKTsKICAgICBzdGF0aWMgdm9pZCBhcHBlbmRQ
YXJ0aWFsKFBhcnNlcklkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgaW5wdXQpOwogICAgIHN0YXRp
YyB2b2lkIGZpbmlzaFBhcnRpYWwoUGFyc2VySWRlbnRpZmllcik7CiAKIHByaXZhdGU6Ci0gICAg
ZXhwbGljaXQgQmFja2dyb3VuZEhUTUxQYXJzZXIoY29uc3QgSFRNTFBhcnNlck9wdGlvbnMmLCBQ
YXJzZXJJZGVudGlmaWVyKTsKKyAgICBCYWNrZ3JvdW5kSFRNTFBhcnNlcihjb25zdCBIVE1MUGFy
c2VyT3B0aW9ucyYsIFdlYWtQdHI8SFRNTERvY3VtZW50UGFyc2VyPik7CiAKICAgICB2b2lkIG1h
cmtFbmRPZkZpbGUoKTsKICAgICB2b2lkIHB1bXBUb2tlbml6ZXIoKTsKQEAgLTY4LDcgKzY4LDcg
QEAgcHJpdmF0ZToKICAgICBib29sIG1faW5Gb3JlaWduQ29udGVudDsgLy8gRklYTUU6IFdlIG5l
ZWQgYSBzdGFjayBvZiBmb3JlaWduIGNvbnRlbnQgbWFya2Vycy4KICAgICBPd25QdHI8SFRNTFRv
a2VuaXplcj4gbV90b2tlbml6ZXI7CiAgICAgSFRNTFBhcnNlck9wdGlvbnMgbV9vcHRpb25zOwot
ICAgIFBhcnNlcklkZW50aWZpZXIgbV9wYXJzZXJJZGVudGlmZXI7CisgICAgV2Vha1B0cjxIVE1M
RG9jdW1lbnRQYXJzZXI+IG1fcGFyc2VyOwogICAgIE93blB0cjxDb21wYWN0SFRNTFRva2VuU3Ry
ZWFtPiBtX3BlbmRpbmdUb2tlbnM7CiB9OwogCkBAIC04MCwxNCArODAsMTEgQEAgcHVibGljOgog
ICAgIH0KIAogICAgIHR5cGVkZWYgSGFzaE1hcDxQYXJzZXJJZGVudGlmaWVyLCBPd25QdHI8QmFj
a2dyb3VuZEhUTUxQYXJzZXI+ID4gQmFja2dyb3VuZFBhcnNlck1hcDsKLSAgICB0eXBlZGVmIEhh
c2hNYXA8UGFyc2VySWRlbnRpZmllciwgSFRNTERvY3VtZW50UGFyc2VyKj4gTWFpblRocmVhZFBh
cnNlck1hcDsKIAogICAgIEJhY2tncm91bmRQYXJzZXJNYXAmIGJhY2tncm91bmRQYXJzZXJzKCk7
Ci0gICAgTWFpblRocmVhZFBhcnNlck1hcCYgbWFpblRocmVhZFBhcnNlcnMoKTsKIAogcHJpdmF0
ZToKICAgICBCYWNrZ3JvdW5kUGFyc2VyTWFwIG1fYmFja2dyb3VuZFBhcnNlcnM7Ci0gICAgTWFp
blRocmVhZFBhcnNlck1hcCBtX21haW5UaHJlYWRQYXJzZXJzOwogfTsKIAogUGFyc2VyTWFwJiBw
YXJzZXJNYXAoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxE
b2N1bWVudFBhcnNlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9IVE1MRG9jdW1l
bnRQYXJzZXIuY3BwCmluZGV4IGQ5NGMyYzA0YjQzMWZiODNjMTA5YjBiYjllY2MwMTFkMTYxODAx
YzIuLjY3OGEyM2M2MGNiNzJmMDhmNjAzMGZlZGYyOWQzMDA0Mjc2NjZmMWQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxEb2N1bWVudFBhcnNlci5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvSFRNTERvY3VtZW50UGFyc2VyLmNwcApAQCAtODUs
NiArODUsOSBAQCBIVE1MRG9jdW1lbnRQYXJzZXI6OkhUTUxEb2N1bWVudFBhcnNlcihIVE1MRG9j
dW1lbnQqIGRvY3VtZW50LCBib29sIHJlcG9ydEVycm9ycwogICAgICwgbV9lbmRXYXNEZWxheWVk
KGZhbHNlKQogICAgICwgbV9oYXZlQmFja2dyb3VuZFBhcnNlcihmYWxzZSkKICAgICAsIG1fcHVt
cFNlc3Npb25OZXN0aW5nTGV2ZWwoMCkKKyNpZiBFTkFCTEUoVEhSRUFERURfSFRNTF9QQVJTRVIp
CisgICAgLCBtX3dlYWtGYWN0b3J5KHRoaXMpCisjZW5kaWYKIHsKIH0KIApAQCAtOTksNiArMTAy
LDkgQEAgSFRNTERvY3VtZW50UGFyc2VyOjpIVE1MRG9jdW1lbnRQYXJzZXIoRG9jdW1lbnRGcmFn
bWVudCogZnJhZ21lbnQsIEVsZW1lbnQqIGNvbnQKICAgICAsIG1fZW5kV2FzRGVsYXllZChmYWxz
ZSkKICAgICAsIG1faGF2ZUJhY2tncm91bmRQYXJzZXIoZmFsc2UpCiAgICAgLCBtX3B1bXBTZXNz
aW9uTmVzdGluZ0xldmVsKDApCisjaWYgRU5BQkxFKFRIUkVBREVEX0hUTUxfUEFSU0VSKQorICAg
ICwgbV93ZWFrRmFjdG9yeSh0aGlzKQorI2VuZGlmCiB7CiAgICAgYm9vbCByZXBvcnRFcnJvcnMg
PSBmYWxzZTsgLy8gRm9yIG5vdyBkb2N1bWVudCBmcmFnbWVudCBwYXJzaW5nIG5ldmVyIHJlcG9y
dHMgZXJyb3JzLgogICAgIG1fdG9rZW5pemVyLT5zZXRTdGF0ZSh0b2tlbml6ZXJTdGF0ZUZvckNv
bnRleHRFbGVtZW50KGNvbnRleHRFbGVtZW50LCByZXBvcnRFcnJvcnMsIG1fb3B0aW9ucykpOwpA
QCAtNDU2LDkgKzQ2Miw3IEBAIHZvaWQgSFRNTERvY3VtZW50UGFyc2VyOjpzdGFydEJhY2tncm91
bmRQYXJzZXIoKQogICAgIG1faGF2ZUJhY2tncm91bmRQYXJzZXIgPSB0cnVlOwogCiAgICAgUGFy
c2VySWRlbnRpZmllciBpZGVudGlmaWVyID0gUGFyc2VyTWFwOjppZGVudGlmaWVyRm9yUGFyc2Vy
KHRoaXMpOwotICAgIHBhcnNlck1hcCgpLm1haW5UaHJlYWRQYXJzZXJzKCkuc2V0KGlkZW50aWZp
ZXIsIHRoaXMpOwotCi0gICAgSFRNTFBhcnNlclRocmVhZDo6c2hhcmVkKCktPnBvc3RUYXNrKGJp
bmQoJkJhY2tncm91bmRIVE1MUGFyc2VyOjpjcmVhdGVQYXJ0aWFsLCBpZGVudGlmaWVyLCBtX29w
dGlvbnMpKTsKKyAgICBIVE1MUGFyc2VyVGhyZWFkOjpzaGFyZWQoKS0+cG9zdFRhc2soYmluZCgm
QmFja2dyb3VuZEhUTUxQYXJzZXI6OmNyZWF0ZVBhcnRpYWwsIGlkZW50aWZpZXIsIG1fb3B0aW9u
cywgbV93ZWFrRmFjdG9yeS5jcmVhdGVXZWFrUHRyKCkpKTsKIH0KIAogdm9pZCBIVE1MRG9jdW1l
bnRQYXJzZXI6OnN0b3BCYWNrZ3JvdW5kUGFyc2VyKCkKQEAgLTQ2OSw5ICs0NzMsNyBAQCB2b2lk
IEhUTUxEb2N1bWVudFBhcnNlcjo6c3RvcEJhY2tncm91bmRQYXJzZXIoKQogCiAgICAgUGFyc2Vy
SWRlbnRpZmllciBpZGVudGlmaWVyID0gUGFyc2VyTWFwOjppZGVudGlmaWVyRm9yUGFyc2VyKHRo
aXMpOwogICAgIEhUTUxQYXJzZXJUaHJlYWQ6OnNoYXJlZCgpLT5wb3N0VGFzayhiaW5kKCZCYWNr
Z3JvdW5kSFRNTFBhcnNlcjo6c3RvcFBhcnRpYWwsIGlkZW50aWZpZXIpKTsKLQotICAgIHBhcnNl
ck1hcCgpLm1haW5UaHJlYWRQYXJzZXJzKCkuc2V0KGlkZW50aWZpZXIsIDApOwotICAgIC8vIFdl
IHdpbGwgbm90IHJlY2lldmUgYW55IG1lc3NhZ2VzIGZyb20gdGhlIHBhcnNlciBhZnRlciB0aGlz
IHBvaW50LgorICAgIG1fd2Vha0ZhY3RvcnkucmV2b2tlQWxsKCk7CiB9CiAKICNlbmRpZgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvSFRNTERvY3VtZW50UGFyc2VyLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9IVE1MRG9jdW1lbnRQYXJzZXIuaAppbmRleCBi
N2YwY2FiM2NlZmQ2ZTcyM2U2OTkzZTBiNWE4NGM0MmRmZjVlZTYwLi42M2NjMWNlNjIyMjYzZGJj
ZmUxYTBjYmZiNTFiM2FkMTYwZTVkZWM3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L3BhcnNlci9IVE1MRG9jdW1lbnRQYXJzZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3Bh
cnNlci9IVE1MRG9jdW1lbnRQYXJzZXIuaApAQCAtMzksNiArMzksNyBAQAogI2luY2x1ZGUgIlhT
U0F1ZGl0b3IuaCIKICNpbmNsdWRlIDx3dGYvRGVxdWUuaD4KICNpbmNsdWRlIDx3dGYvT3duUHRy
Lmg+CisjaW5jbHVkZSA8d3RmL1dlYWtQdHIuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9UZXh0UG9z
aXRpb24uaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtMTcxLDYgKzE3Miw3IEBAIHByaXZh
dGU6CiAKICNpZiBFTkFCTEUoVEhSRUFERURfSFRNTF9QQVJTRVIpCiAgICAgRGVxdWU8T3duUHRy
PENvbXBhY3RIVE1MVG9rZW5TdHJlYW0+ID4gbV9wZW5kaW5nVG9rZW5zOworICAgIFdlYWtQdHJG
YWN0b3J5IG1fd2Vha0ZhY3Rvcnk7CiAjZW5kaWYKIAogICAgIGJvb2wgbV9lbmRXYXNEZWxheWVk
Owo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>184172</attachid>
            <date>2013-01-23 00:50:16 -0800</date>
            <delta_ts>2013-01-23 14:08:04 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-107637-20130123004709.patch</filename>
            <type>text/plain</type>
            <size>29812</size>
            <attacher name="Adam Barth">abarth</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQwNTEwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IGUzOTU1M2ZjZTZmODBjMWY5NTk2NTY0
MzQ4NTJjYTcyN2RmNTlkNWQuLjg2ZDNhNWMxMTM0YjJhYzlkMzM1NzhkZDBhYTdlMWQwZWY4ZmFm
MzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMjggQEAKKzIwMTMtMDEtMjIgIEFkYW0gQmFydGggIDxhYmFydGhA
d2Via2l0Lm9yZz4KKworICAgICAgICBCYWNrZ3JvdW5kSFRNTFBhcnNlcjo6c2VuZFRva2Vuc1Rv
TWFpblRocmVhZCBzaG91bGQgdXNlIGJpbmQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTEwNzYzNworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgICogd3RmL0Z1bmN0aW9uYWwuaDoKKyAgICAgICAgICAgIC0gSSBo
YWQgdG8gcmUtd29yayB0aGUgYXBwcm9hY2ggdG8gdmFsaWRhdGluZyBXZWFrUHRyIHx0aGlzfAor
ICAgICAgICAgICAgICBhcmd1bWVudHMgYSBiaXQuIFByZXZpb3VzbHkgeW91IGNvdWxkbid0IHBh
c3MgYSBXZWFrUHRyIGFzIGEKKyAgICAgICAgICAgICAgbm9uLXx0aGlzfCBhcmd1bWVudCB0byBh
IGZ1bmN0aW9uIGJlY2F1c2Ugd2Ugd291bGQgdHJ5IHRvIHVud3JhcAorICAgICAgICAgICAgICBp
dCBpbnRvIGEgcmF3IHBvaW50ZXIuIFRvIHNvbHZlIHRoYXQgcHJvYmxlbSwgSSBpbnRyb2R1Y2Vk
IGEKKyAgICAgICAgICAgICAgQm9vbGVhbiB0ZW1wbGF0ZSBwYXJhbWV0ZXIgdG8gY2hhbmdlIHRo
ZSByZXR1cm4gdHlwZSBvZiB1bndyYXAKKyAgICAgICAgICAgICAgZGVwZW5kaW5nIG9uIHdoZXRo
ZXIgaXQncyBiZWluZyB1c2VkIGFzIGEgfHRoaXN8IHBhcmFtZXRlci4KKyAgICAgICAgKiB3dGYv
V2Vha1B0ci5oOgorICAgICAgICAoV1RGOjpXZWFrUHRyRmFjdG9yeTo6cmV2b2tlQWxsKToKKyAg
ICAgICAgKFdlYWtQdHJGYWN0b3J5KToKKyAgICAgICAgICAgIC0gTGV0IGNsaWVudHMgcmV2b2tl
IGFsbCBvdXRzdGFuZGluZyBXZWFrUHRycyB3aXRob3V0IG5lZWRpbmcgdG8KKyAgICAgICAgICAg
ICAgZGVzdHJveSB0aGUgV2Vha1B0ckZhY3RvcnkuCisgICAgICAgICogd3RmL2Nocm9taXVtL01h
aW5UaHJlYWRDaHJvbWl1bS5jcHA6CisgICAgICAgIChXVEY6OmNhbGxGdW5jdGlvbk9iamVjdCk6
CisgICAgICAgIChXVEY6OmNhbGxPbk1haW5UaHJlYWQpOgorICAgICAgICAgICAgLSBJbXBsZW1l
bnQgY2FsbE9uTWFpblRocmVhZCBmb3IgRnVuY3Rpb24gb2JqZWN0cy4gVGhlIG5vbi1DaHJvbWl1
bQorICAgICAgICAgICAgICBpbXBsZW1lbnRhdGlvbiBvZiBNYWluVGhyZWFkLmNwcCBhbHJlYWR5
IGltcGxlbWVudHMgdGhpcyBmZWF0dXJlLgorCiAyMDEzLTAxLTIyICBKb3NodWEgQmVsbCAgPGpz
YmVsbEBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgUHJldmVudCByYWNlIGNvbmRpdGlvbiBkdXJp
bmcgV29ya2VyIHNodXRkb3duCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cg
Yi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZTdhOWYxMzdiOTlhMjYyMTE2MzJiNGU4
YTczOTBiYzU0OTIyODUwMi4uZGZmZDZlODhlNmQ0OWU3ZTVjYmJjYTU4OTczMjAxNTU5MGM2OGEy
ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJD
b3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMwIEBACisyMDEzLTAxLTIyICBBZGFtIEJhcnRoICA8
YWJhcnRoQHdlYmtpdC5vcmc+CisKKyAgICAgICAgQmFja2dyb3VuZEhUTUxQYXJzZXI6OnNlbmRU
b2tlbnNUb01haW5UaHJlYWQgc2hvdWxkIHVzZSBiaW5kCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDc2MzcKKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGlzIHBhdGNoIHJlcGxhY2VzIG91ciBoYW5kLXdy
aXR0ZW4gaW1wbGVtZW50YXRpb24gb2YgYmluZCBmb3IKKyAgICAgICAgZGlkUmVjZWl2ZVRva2Vu
c0Zyb21CYWNrZ3JvdW5kUGFyc2VyIHdpdGggYmluZCBmcm9tIEZ1bmN0aW9uYWwuaC4gVG8KKyAg
ICAgICAgdXNlIHRoZSBnZW5lcmljIHZlcnNpb24gb2YgYmluZCwgd2UgbmVlZCB0byBzd2l0Y2gg
dG8gdXNpbmcgV2Vha1B0ciB0bworICAgICAgICBob2xkIGEgcmVmZXJlbmNlIHRvIHRoZSBtYWlu
IHRocmVhZCBwYXJzZXIgaW4gdGhlIEJhY2tncm91bmRIVE1MUGFyc2VyLgorCisgICAgICAgICog
aHRtbC9wYXJzZXIvQmFja2dyb3VuZEhUTUxQYXJzZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
QmFja2dyb3VuZEhUTUxQYXJzZXI6OkJhY2tncm91bmRIVE1MUGFyc2VyKToKKyAgICAgICAgKFdl
YkNvcmU6OkJhY2tncm91bmRIVE1MUGFyc2VyOjpzZW5kVG9rZW5zVG9NYWluVGhyZWFkKToKKyAg
ICAgICAgKFdlYkNvcmU6OkJhY2tncm91bmRIVE1MUGFyc2VyOjpjcmVhdGVQYXJ0aWFsKToKKyAg
ICAgICAgKiBodG1sL3BhcnNlci9CYWNrZ3JvdW5kSFRNTFBhcnNlci5oOgorICAgICAgICAoV2Vi
Q29yZTo6QmFja2dyb3VuZEhUTUxQYXJzZXI6OmNyZWF0ZSk6CisgICAgICAgIChCYWNrZ3JvdW5k
SFRNTFBhcnNlcik6CisgICAgICAgIChQYXJzZXJNYXApOgorICAgICAgICAqIGh0bWwvcGFyc2Vy
L0hUTUxEb2N1bWVudFBhcnNlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MRG9jdW1lbnRQ
YXJzZXI6OkhUTUxEb2N1bWVudFBhcnNlcik6CisgICAgICAgIChXZWJDb3JlOjpIVE1MRG9jdW1l
bnRQYXJzZXI6OnN0YXJ0QmFja2dyb3VuZFBhcnNlcik6CisgICAgICAgIChXZWJDb3JlOjpIVE1M
RG9jdW1lbnRQYXJzZXI6OnN0b3BCYWNrZ3JvdW5kUGFyc2VyKToKKyAgICAgICAgKiBodG1sL3Bh
cnNlci9IVE1MRG9jdW1lbnRQYXJzZXIuaDoKKyAgICAgICAgKEhUTUxEb2N1bWVudFBhcnNlcik6
CisKIDIwMTMtMDEtMjIgIE1hcmsgTGFtICA8bWFyay5sYW1AYXBwbGUuY29tPgogCiAgICAgICAg
IENoYW5nZSB0aGUgU3VwcGxlbWVudGFibGUgY2xhc3MgdG8gbm90IHVzZSBBdG9taWNTdHJpbmcu
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9GdW5jdGlvbmFsLmggYi9Tb3VyY2UvV1RGL3d0
Zi9GdW5jdGlvbmFsLmgKaW5kZXggYzViNzEyNGEyYzBhMThkOTAzMmY2MDk1MjM2ZGQ0NWFhZmM1
N2EwZS4uZjVkYzcxOTAwOWNlZGE4NmIyM2Q5NjRkNGQ0OTkzYjgzMTZhMzQ0NiAxMDA2NDQKLS0t
IGEvU291cmNlL1dURi93dGYvRnVuY3Rpb25hbC5oCisrKyBiL1NvdXJjZS9XVEYvd3RmL0Z1bmN0
aW9uYWwuaApAQCAtMTc2LDYgKzE3Niw4IEBAIHB1YmxpYzoKIAogICAgIFIgb3BlcmF0b3IoKShD
KiBjKQogICAgIHsKKyAgICAgICAgaWYgKCFjKQorICAgICAgICAgICAgcmV0dXJuIFIoKTsKICAg
ICAgICAgcmV0dXJuIChjLT4qbV9mdW5jdGlvbikoKTsKICAgICB9CiAKQEAgLTE5Nyw2ICsxOTks
OCBAQCBwdWJsaWM6CiAKICAgICBSIG9wZXJhdG9yKCkoQyogYywgUDEgcDEpCiAgICAgeworICAg
ICAgICBpZiAoIWMpCisgICAgICAgICAgICByZXR1cm4gUigpOwogICAgICAgICByZXR1cm4gKGMt
PiptX2Z1bmN0aW9uKShwMSk7CiAgICAgfQogCkBAIC0yMTgsNiArMjIyLDggQEAgcHVibGljOgog
CiAgICAgUiBvcGVyYXRvcigpKEMqIGMsIFAxIHAxLCBQMiBwMikKICAgICB7CisgICAgICAgIGlm
ICghYykKKyAgICAgICAgICAgIHJldHVybiBSKCk7CiAgICAgICAgIHJldHVybiAoYy0+Km1fZnVu
Y3Rpb24pKHAxLCBwMik7CiAgICAgfQogCkBAIC0yMzksNiArMjQ1LDggQEAgcHVibGljOgogCiAg
ICAgUiBvcGVyYXRvcigpKEMqIGMsIFAxIHAxLCBQMiBwMiwgUDMgcDMpCiAgICAgeworICAgICAg
ICBpZiAoIWMpCisgICAgICAgICAgICByZXR1cm4gUigpOwogICAgICAgICByZXR1cm4gKGMtPipt
X2Z1bmN0aW9uKShwMSwgcDIsIHAzKTsKICAgICB9CiAKQEAgLTI2MCw2ICsyNjgsOCBAQCBwdWJs
aWM6CiAKICAgICBSIG9wZXJhdG9yKCkoQyogYywgUDEgcDEsIFAyIHAyLCBQMyBwMywgUDQgcDQp
CiAgICAgeworICAgICAgICBpZiAoIWMpCisgICAgICAgICAgICByZXR1cm4gUigpOwogICAgICAg
ICByZXR1cm4gKGMtPiptX2Z1bmN0aW9uKShwMSwgcDIsIHAzLCBwNCk7CiAgICAgfQogCkBAIC0y
ODEsNiArMjkxLDggQEAgcHVibGljOgogCiAgICAgUiBvcGVyYXRvcigpKEMqIGMsIFAxIHAxLCBQ
MiBwMiwgUDMgcDMsIFA0IHA0LCBQNSBwNSkKICAgICB7CisgICAgICAgIGlmICghYykKKyAgICAg
ICAgICAgIHJldHVybiBSKCk7CiAgICAgICAgIHJldHVybiAoYy0+Km1fZnVuY3Rpb24pKHAxLCBw
MiwgcDMsIHA0LCBwNSk7CiAgICAgfQogCkBAIC0zMzEsNDYgKzM0Myw0OCBAQCB0ZW1wbGF0ZTx0
eXBlbmFtZSBUPiBzdHJ1Y3QgUmVmQW5kRGVyZWY8VCosIHRydWU+IHsKICAgICBzdGF0aWMgdm9p
ZCBkZXJlZihUKiB0KSB7IHQtPmRlcmVmKCk7IH0KIH07CiAKLXRlbXBsYXRlPHR5cGVuYW1lIFQ+
IHN0cnVjdCBQYXJhbVN0b3JhZ2VUcmFpdHMgewordGVtcGxhdGU8dHlwZW5hbWUgVCwgYm9vbCBz
aG91bGRWYWxpZGF0ZT4gc3RydWN0IFBhcmFtU3RvcmFnZVRyYWl0cyB7CiAgICAgdHlwZWRlZiBU
IFN0b3JhZ2VUeXBlOwogCiAgICAgc3RhdGljIFN0b3JhZ2VUeXBlIHdyYXAoY29uc3QgVCYgdmFs
dWUpIHsgcmV0dXJuIHZhbHVlOyB9Ci0gICAgc3RhdGljIGJvb2wgdmFsaWRhdGUoY29uc3QgU3Rv
cmFnZVR5cGUmKSB7IHJldHVybiB0cnVlOyB9CiAgICAgc3RhdGljIGNvbnN0IFQmIHVud3JhcChj
b25zdCBTdG9yYWdlVHlwZSYgdmFsdWUpIHsgcmV0dXJuIHZhbHVlOyB9CiB9OwogCi10ZW1wbGF0
ZTx0eXBlbmFtZSBUPiBzdHJ1Y3QgUGFyYW1TdG9yYWdlVHJhaXRzPFBhc3NSZWZQdHI8VD4gPiB7
Cit0ZW1wbGF0ZTx0eXBlbmFtZSBULCBib29sIHNob3VsZFZhbGlkYXRlPiBzdHJ1Y3QgUGFyYW1T
dG9yYWdlVHJhaXRzPFBhc3NSZWZQdHI8VD4sIHNob3VsZFZhbGlkYXRlPiB7CiAgICAgdHlwZWRl
ZiBSZWZQdHI8VD4gU3RvcmFnZVR5cGU7CiAKICAgICBzdGF0aWMgU3RvcmFnZVR5cGUgd3JhcChQ
YXNzUmVmUHRyPFQ+IHZhbHVlKSB7IHJldHVybiB2YWx1ZTsgfQotICAgIHN0YXRpYyBib29sIHZh
bGlkYXRlKGNvbnN0IFN0b3JhZ2VUeXBlJikgeyByZXR1cm4gdHJ1ZTsgfQogICAgIHN0YXRpYyBU
KiB1bndyYXAoY29uc3QgU3RvcmFnZVR5cGUmIHZhbHVlKSB7IHJldHVybiB2YWx1ZS5nZXQoKTsg
fQogfTsKIAotdGVtcGxhdGU8dHlwZW5hbWUgVD4gc3RydWN0IFBhcmFtU3RvcmFnZVRyYWl0czxS
ZWZQdHI8VD4gPiB7Cit0ZW1wbGF0ZTx0eXBlbmFtZSBULCBib29sIHNob3VsZFZhbGlkYXRlPiBz
dHJ1Y3QgUGFyYW1TdG9yYWdlVHJhaXRzPFJlZlB0cjxUPiwgc2hvdWxkVmFsaWRhdGU+IHsKICAg
ICB0eXBlZGVmIFJlZlB0cjxUPiBTdG9yYWdlVHlwZTsKIAogICAgIHN0YXRpYyBTdG9yYWdlVHlw
ZSB3cmFwKFJlZlB0cjxUPiB2YWx1ZSkgeyByZXR1cm4gdmFsdWUucmVsZWFzZSgpOyB9Ci0gICAg
c3RhdGljIGJvb2wgdmFsaWRhdGUoY29uc3QgU3RvcmFnZVR5cGUmKSB7IHJldHVybiB0cnVlOyB9
CiAgICAgc3RhdGljIFQqIHVud3JhcChjb25zdCBTdG9yYWdlVHlwZSYgdmFsdWUpIHsgcmV0dXJu
IHZhbHVlLmdldCgpOyB9CiB9OwogCi10ZW1wbGF0ZTx0eXBlbmFtZSBUPiBzdHJ1Y3QgUGFyYW1T
dG9yYWdlVHJhaXRzPFdlYWtQdHI8VD4gPiB7Cit0ZW1wbGF0ZTx0eXBlbmFtZSBUPiBzdHJ1Y3Qg
UGFyYW1TdG9yYWdlVHJhaXRzPFdlYWtQdHI8VD4sIGZhbHNlPiB7CisgICAgdHlwZWRlZiBXZWFr
UHRyPFQ+IFN0b3JhZ2VUeXBlOworCisgICAgc3RhdGljIFN0b3JhZ2VUeXBlIHdyYXAoV2Vha1B0
cjxUPiB2YWx1ZSkgeyByZXR1cm4gdmFsdWU7IH0KKyAgICBzdGF0aWMgV2Vha1B0cjxUPiB1bndy
YXAoY29uc3QgU3RvcmFnZVR5cGUmIHZhbHVlKSB7IHJldHVybiB2YWx1ZTsgfQorfTsKKwordGVt
cGxhdGU8dHlwZW5hbWUgVD4gc3RydWN0IFBhcmFtU3RvcmFnZVRyYWl0czxXZWFrUHRyPFQ+LCB0
cnVlPiB7CiAgICAgdHlwZWRlZiBXZWFrUHRyPFQ+IFN0b3JhZ2VUeXBlOwogCiAgICAgc3RhdGlj
IFN0b3JhZ2VUeXBlIHdyYXAoV2Vha1B0cjxUPiB2YWx1ZSkgeyByZXR1cm4gdmFsdWU7IH0KLSAg
ICBzdGF0aWMgYm9vbCB2YWxpZGF0ZShjb25zdCBTdG9yYWdlVHlwZSYgdmFsdWUpIHsgcmV0dXJu
IHZhbHVlLmdldCgpOyB9CiAgICAgc3RhdGljIFQqIHVud3JhcChjb25zdCBTdG9yYWdlVHlwZSYg
dmFsdWUpIHsgcmV0dXJuIHZhbHVlLmdldCgpOyB9CiB9OwogCiAKIHRlbXBsYXRlPHR5cGVuYW1l
PiBjbGFzcyBSZXRhaW5QdHI7CiAKLXRlbXBsYXRlPHR5cGVuYW1lIFQ+IHN0cnVjdCBQYXJhbVN0
b3JhZ2VUcmFpdHM8UmV0YWluUHRyPFQ+ID4gewordGVtcGxhdGU8dHlwZW5hbWUgVCwgYm9vbCBz
aG91bGRWYWxpZGF0ZT4gc3RydWN0IFBhcmFtU3RvcmFnZVRyYWl0czxSZXRhaW5QdHI8VD4sIHNo
b3VsZFZhbGlkYXRlPiB7CiAgICAgdHlwZWRlZiBSZXRhaW5QdHI8VD4gU3RvcmFnZVR5cGU7CiAK
ICAgICBzdGF0aWMgU3RvcmFnZVR5cGUgd3JhcChjb25zdCBSZXRhaW5QdHI8VD4mIHZhbHVlKSB7
IHJldHVybiB2YWx1ZTsgfQotICAgIHN0YXRpYyBib29sIHZhbGlkYXRlKGNvbnN0IFN0b3JhZ2VU
eXBlJikgeyByZXR1cm4gdHJ1ZTsgfQogICAgIHN0YXRpYyB0eXBlbmFtZSBSZXRhaW5QdHI8VD46
OlB0clR5cGUgdW53cmFwKGNvbnN0IFN0b3JhZ2VUeXBlJiB2YWx1ZSkgeyByZXR1cm4gdmFsdWUu
Z2V0KCk7IH0KIH07CiAKQEAgLTQxMyw3ICs0MjcsNyBAQCBjbGFzcyBCb3VuZEZ1bmN0aW9uSW1w
bDxGdW5jdGlvbldyYXBwZXIsIFIgKFAxKT4gOiBwdWJsaWMgRnVuY3Rpb25JbXBsPHR5cGVuYW1l
CiBwdWJsaWM6CiAgICAgQm91bmRGdW5jdGlvbkltcGwoRnVuY3Rpb25XcmFwcGVyIGZ1bmN0aW9u
V3JhcHBlciwgY29uc3QgUDEmIHAxKQogICAgICAgICA6IG1fZnVuY3Rpb25XcmFwcGVyKGZ1bmN0
aW9uV3JhcHBlcikKLSAgICAgICAgLCBtX3AxKFBhcmFtU3RvcmFnZVRyYWl0czxQMT46OndyYXAo
cDEpKQorICAgICAgICAsIG1fcDEoUGFyYW1TdG9yYWdlVHJhaXRzPFAxLCBGdW5jdGlvbldyYXBw
ZXI6OnNob3VsZFZhbGlkYXRlRmlyc3RQYXJhbWV0ZXI+Ojp3cmFwKHAxKSkKICAgICB7CiAgICAg
ICAgIFJlZkFuZERlcmVmPFAxLCBGdW5jdGlvbldyYXBwZXI6OnNob3VsZFJlZkZpcnN0UGFyYW1l
dGVyPjo6cmVmKG1fcDEpOwogICAgIH0KQEAgLTQyNSwxNCArNDM5LDEyIEBAIHB1YmxpYzoKIAog
ICAgIHZpcnR1YWwgdHlwZW5hbWUgRnVuY3Rpb25XcmFwcGVyOjpSZXN1bHRUeXBlIG9wZXJhdG9y
KCkoKQogICAgIHsKLSAgICAgICAgaWYgKEZ1bmN0aW9uV3JhcHBlcjo6c2hvdWxkVmFsaWRhdGVG
aXJzdFBhcmFtZXRlciAmJiAhUGFyYW1TdG9yYWdlVHJhaXRzPFAxPjo6dmFsaWRhdGUobV9wMSkp
Ci0gICAgICAgICAgICByZXR1cm4gdHlwZW5hbWUgRnVuY3Rpb25XcmFwcGVyOjpSZXN1bHRUeXBl
KCk7Ci0gICAgICAgIHJldHVybiBtX2Z1bmN0aW9uV3JhcHBlcihQYXJhbVN0b3JhZ2VUcmFpdHM8
UDE+Ojp1bndyYXAobV9wMSkpOworICAgICAgICByZXR1cm4gbV9mdW5jdGlvbldyYXBwZXIoUGFy
YW1TdG9yYWdlVHJhaXRzPFAxLCBGdW5jdGlvbldyYXBwZXI6OnNob3VsZFZhbGlkYXRlRmlyc3RQ
YXJhbWV0ZXI+Ojp1bndyYXAobV9wMSkpOwogICAgIH0KIAogcHJpdmF0ZToKICAgICBGdW5jdGlv
bldyYXBwZXIgbV9mdW5jdGlvbldyYXBwZXI7Ci0gICAgdHlwZW5hbWUgUGFyYW1TdG9yYWdlVHJh
aXRzPFAxPjo6U3RvcmFnZVR5cGUgbV9wMTsKKyAgICB0eXBlbmFtZSBQYXJhbVN0b3JhZ2VUcmFp
dHM8UDEsIEZ1bmN0aW9uV3JhcHBlcjo6c2hvdWxkVmFsaWRhdGVGaXJzdFBhcmFtZXRlcj46OlN0
b3JhZ2VUeXBlIG1fcDE7CiB9OwogCiB0ZW1wbGF0ZTx0eXBlbmFtZSBGdW5jdGlvbldyYXBwZXIs
IHR5cGVuYW1lIFIsIHR5cGVuYW1lIFAxLCB0eXBlbmFtZSBQMj4KQEAgLTQ0MCw4ICs0NTIsOCBA
QCBjbGFzcyBCb3VuZEZ1bmN0aW9uSW1wbDxGdW5jdGlvbldyYXBwZXIsIFIgKFAxLCBQMik+IDog
cHVibGljIEZ1bmN0aW9uSW1wbDx0eXBlbgogcHVibGljOgogICAgIEJvdW5kRnVuY3Rpb25JbXBs
KEZ1bmN0aW9uV3JhcHBlciBmdW5jdGlvbldyYXBwZXIsIGNvbnN0IFAxJiBwMSwgY29uc3QgUDIm
IHAyKQogICAgICAgICA6IG1fZnVuY3Rpb25XcmFwcGVyKGZ1bmN0aW9uV3JhcHBlcikKLSAgICAg
ICAgLCBtX3AxKFBhcmFtU3RvcmFnZVRyYWl0czxQMT46OndyYXAocDEpKQotICAgICAgICAsIG1f
cDIoUGFyYW1TdG9yYWdlVHJhaXRzPFAyPjo6d3JhcChwMikpCisgICAgICAgICwgbV9wMShQYXJh
bVN0b3JhZ2VUcmFpdHM8UDEsIEZ1bmN0aW9uV3JhcHBlcjo6c2hvdWxkVmFsaWRhdGVGaXJzdFBh
cmFtZXRlcj46OndyYXAocDEpKQorICAgICAgICAsIG1fcDIoUGFyYW1TdG9yYWdlVHJhaXRzPFAy
LCBmYWxzZT46OndyYXAocDIpKQogICAgIHsKICAgICAgICAgUmVmQW5kRGVyZWY8UDEsIEZ1bmN0
aW9uV3JhcHBlcjo6c2hvdWxkUmVmRmlyc3RQYXJhbWV0ZXI+OjpyZWYobV9wMSk7CiAgICAgfQpA
QCAtNDUzLDE1ICs0NjUsMTQgQEAgcHVibGljOgogCiAgICAgdmlydHVhbCB0eXBlbmFtZSBGdW5j
dGlvbldyYXBwZXI6OlJlc3VsdFR5cGUgb3BlcmF0b3IoKSgpCiAgICAgewotICAgICAgICBpZiAo
RnVuY3Rpb25XcmFwcGVyOjpzaG91bGRWYWxpZGF0ZUZpcnN0UGFyYW1ldGVyICYmICFQYXJhbVN0
b3JhZ2VUcmFpdHM8UDE+Ojp2YWxpZGF0ZShtX3AxKSkKLSAgICAgICAgICAgIHJldHVybiB0eXBl
bmFtZSBGdW5jdGlvbldyYXBwZXI6OlJlc3VsdFR5cGUoKTsKLSAgICAgICAgcmV0dXJuIG1fZnVu
Y3Rpb25XcmFwcGVyKFBhcmFtU3RvcmFnZVRyYWl0czxQMT46OnVud3JhcChtX3AxKSwgUGFyYW1T
dG9yYWdlVHJhaXRzPFAyPjo6dW53cmFwKG1fcDIpKTsKKyAgICAgICAgcmV0dXJuIG1fZnVuY3Rp
b25XcmFwcGVyKFBhcmFtU3RvcmFnZVRyYWl0czxQMSwgRnVuY3Rpb25XcmFwcGVyOjpzaG91bGRW
YWxpZGF0ZUZpcnN0UGFyYW1ldGVyPjo6dW53cmFwKG1fcDEpLAorICAgICAgICAgICAgUGFyYW1T
dG9yYWdlVHJhaXRzPFAyLCBmYWxzZT46OnVud3JhcChtX3AyKSk7CiAgICAgfQogCiBwcml2YXRl
OgogICAgIEZ1bmN0aW9uV3JhcHBlciBtX2Z1bmN0aW9uV3JhcHBlcjsKLSAgICB0eXBlbmFtZSBQ
YXJhbVN0b3JhZ2VUcmFpdHM8UDE+OjpTdG9yYWdlVHlwZSBtX3AxOwotICAgIHR5cGVuYW1lIFBh
cmFtU3RvcmFnZVRyYWl0czxQMj46OlN0b3JhZ2VUeXBlIG1fcDI7CisgICAgdHlwZW5hbWUgUGFy
YW1TdG9yYWdlVHJhaXRzPFAxLCBGdW5jdGlvbldyYXBwZXI6OnNob3VsZFZhbGlkYXRlRmlyc3RQ
YXJhbWV0ZXI+OjpTdG9yYWdlVHlwZSBtX3AxOworICAgIHR5cGVuYW1lIFBhcmFtU3RvcmFnZVRy
YWl0czxQMiwgZmFsc2U+OjpTdG9yYWdlVHlwZSBtX3AyOwogfTsKIAogdGVtcGxhdGU8dHlwZW5h
bWUgRnVuY3Rpb25XcmFwcGVyLCB0eXBlbmFtZSBSLCB0eXBlbmFtZSBQMSwgdHlwZW5hbWUgUDIs
IHR5cGVuYW1lIFAzPgpAQCAtNDY5LDkgKzQ4MCw5IEBAIGNsYXNzIEJvdW5kRnVuY3Rpb25JbXBs
PEZ1bmN0aW9uV3JhcHBlciwgUiAoUDEsIFAyLCBQMyk+IDogcHVibGljIEZ1bmN0aW9uSW1wbDx0
CiBwdWJsaWM6CiAgICAgQm91bmRGdW5jdGlvbkltcGwoRnVuY3Rpb25XcmFwcGVyIGZ1bmN0aW9u
V3JhcHBlciwgY29uc3QgUDEmIHAxLCBjb25zdCBQMiYgcDIsIGNvbnN0IFAzJiBwMykKICAgICAg
ICAgOiBtX2Z1bmN0aW9uV3JhcHBlcihmdW5jdGlvbldyYXBwZXIpCi0gICAgICAgICwgbV9wMShQ
YXJhbVN0b3JhZ2VUcmFpdHM8UDE+Ojp3cmFwKHAxKSkKLSAgICAgICAgLCBtX3AyKFBhcmFtU3Rv
cmFnZVRyYWl0czxQMj46OndyYXAocDIpKQotICAgICAgICAsIG1fcDMoUGFyYW1TdG9yYWdlVHJh
aXRzPFAzPjo6d3JhcChwMykpCisgICAgICAgICwgbV9wMShQYXJhbVN0b3JhZ2VUcmFpdHM8UDEs
IEZ1bmN0aW9uV3JhcHBlcjo6c2hvdWxkVmFsaWRhdGVGaXJzdFBhcmFtZXRlcj46OndyYXAocDEp
KQorICAgICAgICAsIG1fcDIoUGFyYW1TdG9yYWdlVHJhaXRzPFAyLCBmYWxzZT46OndyYXAocDIp
KQorICAgICAgICAsIG1fcDMoUGFyYW1TdG9yYWdlVHJhaXRzPFAzLCBmYWxzZT46OndyYXAocDMp
KQogICAgIHsKICAgICAgICAgUmVmQW5kRGVyZWY8UDEsIEZ1bmN0aW9uV3JhcHBlcjo6c2hvdWxk
UmVmRmlyc3RQYXJhbWV0ZXI+OjpyZWYobV9wMSk7CiAgICAgfQpAQCAtNDgzLDE2ICs0OTQsMTYg
QEAgcHVibGljOgogCiAgICAgdmlydHVhbCB0eXBlbmFtZSBGdW5jdGlvbldyYXBwZXI6OlJlc3Vs
dFR5cGUgb3BlcmF0b3IoKSgpCiAgICAgewotICAgICAgICBpZiAoRnVuY3Rpb25XcmFwcGVyOjpz
aG91bGRWYWxpZGF0ZUZpcnN0UGFyYW1ldGVyICYmICFQYXJhbVN0b3JhZ2VUcmFpdHM8UDE+Ojp2
YWxpZGF0ZShtX3AxKSkKLSAgICAgICAgICAgIHJldHVybiB0eXBlbmFtZSBGdW5jdGlvbldyYXBw
ZXI6OlJlc3VsdFR5cGUoKTsKLSAgICAgICAgcmV0dXJuIG1fZnVuY3Rpb25XcmFwcGVyKFBhcmFt
U3RvcmFnZVRyYWl0czxQMT46OnVud3JhcChtX3AxKSwgUGFyYW1TdG9yYWdlVHJhaXRzPFAyPjo6
dW53cmFwKG1fcDIpLCBQYXJhbVN0b3JhZ2VUcmFpdHM8UDM+Ojp1bndyYXAobV9wMykpOworICAg
ICAgICByZXR1cm4gbV9mdW5jdGlvbldyYXBwZXIoUGFyYW1TdG9yYWdlVHJhaXRzPFAxLCBGdW5j
dGlvbldyYXBwZXI6OnNob3VsZFZhbGlkYXRlRmlyc3RQYXJhbWV0ZXI+Ojp1bndyYXAobV9wMSks
CisgICAgICAgICAgICBQYXJhbVN0b3JhZ2VUcmFpdHM8UDIsIGZhbHNlPjo6dW53cmFwKG1fcDIp
LAorICAgICAgICAgICAgUGFyYW1TdG9yYWdlVHJhaXRzPFAzLCBmYWxzZT46OnVud3JhcChtX3Az
KSk7CiAgICAgfQogCiBwcml2YXRlOgogICAgIEZ1bmN0aW9uV3JhcHBlciBtX2Z1bmN0aW9uV3Jh
cHBlcjsKLSAgICB0eXBlbmFtZSBQYXJhbVN0b3JhZ2VUcmFpdHM8UDE+OjpTdG9yYWdlVHlwZSBt
X3AxOwotICAgIHR5cGVuYW1lIFBhcmFtU3RvcmFnZVRyYWl0czxQMj46OlN0b3JhZ2VUeXBlIG1f
cDI7Ci0gICAgdHlwZW5hbWUgUGFyYW1TdG9yYWdlVHJhaXRzPFAzPjo6U3RvcmFnZVR5cGUgbV9w
MzsKKyAgICB0eXBlbmFtZSBQYXJhbVN0b3JhZ2VUcmFpdHM8UDEsIEZ1bmN0aW9uV3JhcHBlcjo6
c2hvdWxkVmFsaWRhdGVGaXJzdFBhcmFtZXRlcj46OlN0b3JhZ2VUeXBlIG1fcDE7CisgICAgdHlw
ZW5hbWUgUGFyYW1TdG9yYWdlVHJhaXRzPFAyLCBmYWxzZT46OlN0b3JhZ2VUeXBlIG1fcDI7Cisg
ICAgdHlwZW5hbWUgUGFyYW1TdG9yYWdlVHJhaXRzPFAzLCBmYWxzZT46OlN0b3JhZ2VUeXBlIG1f
cDM7CiB9OwogCiB0ZW1wbGF0ZTx0eXBlbmFtZSBGdW5jdGlvbldyYXBwZXIsIHR5cGVuYW1lIFIs
IHR5cGVuYW1lIFAxLCB0eXBlbmFtZSBQMiwgdHlwZW5hbWUgUDMsIHR5cGVuYW1lIFA0PgpAQCAt
NTAwLDEwICs1MTEsMTAgQEAgY2xhc3MgQm91bmRGdW5jdGlvbkltcGw8RnVuY3Rpb25XcmFwcGVy
LCBSIChQMSwgUDIsIFAzLCBQNCk+IDogcHVibGljIEZ1bmN0aW9uSW0KIHB1YmxpYzoKICAgICBC
b3VuZEZ1bmN0aW9uSW1wbChGdW5jdGlvbldyYXBwZXIgZnVuY3Rpb25XcmFwcGVyLCBjb25zdCBQ
MSYgcDEsIGNvbnN0IFAyJiBwMiwgY29uc3QgUDMmIHAzLCBjb25zdCBQNCYgcDQpCiAgICAgICAg
IDogbV9mdW5jdGlvbldyYXBwZXIoZnVuY3Rpb25XcmFwcGVyKQotICAgICAgICAsIG1fcDEoUGFy
YW1TdG9yYWdlVHJhaXRzPFAxPjo6d3JhcChwMSkpCi0gICAgICAgICwgbV9wMihQYXJhbVN0b3Jh
Z2VUcmFpdHM8UDI+Ojp3cmFwKHAyKSkKLSAgICAgICAgLCBtX3AzKFBhcmFtU3RvcmFnZVRyYWl0
czxQMz46OndyYXAocDMpKQotICAgICAgICAsIG1fcDQoUGFyYW1TdG9yYWdlVHJhaXRzPFA0Pjo6
d3JhcChwNCkpCisgICAgICAgICwgbV9wMShQYXJhbVN0b3JhZ2VUcmFpdHM8UDEsIEZ1bmN0aW9u
V3JhcHBlcjo6c2hvdWxkVmFsaWRhdGVGaXJzdFBhcmFtZXRlcj46OndyYXAocDEpKQorICAgICAg
ICAsIG1fcDIoUGFyYW1TdG9yYWdlVHJhaXRzPFAyLCBmYWxzZT46OndyYXAocDIpKQorICAgICAg
ICAsIG1fcDMoUGFyYW1TdG9yYWdlVHJhaXRzPFAzLCBmYWxzZT46OndyYXAocDMpKQorICAgICAg
ICAsIG1fcDQoUGFyYW1TdG9yYWdlVHJhaXRzPFA0LCBmYWxzZT46OndyYXAocDQpKQogICAgIHsK
ICAgICAgICAgUmVmQW5kRGVyZWY8UDEsIEZ1bmN0aW9uV3JhcHBlcjo6c2hvdWxkUmVmRmlyc3RQ
YXJhbWV0ZXI+OjpyZWYobV9wMSk7CiAgICAgfQpAQCAtNTE1LDE3ICs1MjYsMTggQEAgcHVibGlj
OgogCiAgICAgdmlydHVhbCB0eXBlbmFtZSBGdW5jdGlvbldyYXBwZXI6OlJlc3VsdFR5cGUgb3Bl
cmF0b3IoKSgpCiAgICAgewotICAgICAgICBpZiAoRnVuY3Rpb25XcmFwcGVyOjpzaG91bGRWYWxp
ZGF0ZUZpcnN0UGFyYW1ldGVyICYmICFQYXJhbVN0b3JhZ2VUcmFpdHM8UDE+Ojp2YWxpZGF0ZSht
X3AxKSkKLSAgICAgICAgICAgIHJldHVybiB0eXBlbmFtZSBGdW5jdGlvbldyYXBwZXI6OlJlc3Vs
dFR5cGUoKTsKLSAgICAgICAgcmV0dXJuIG1fZnVuY3Rpb25XcmFwcGVyKFBhcmFtU3RvcmFnZVRy
YWl0czxQMT46OnVud3JhcChtX3AxKSwgUGFyYW1TdG9yYWdlVHJhaXRzPFAyPjo6dW53cmFwKG1f
cDIpLCBQYXJhbVN0b3JhZ2VUcmFpdHM8UDM+Ojp1bndyYXAobV9wMyksIFBhcmFtU3RvcmFnZVRy
YWl0czxQND46OnVud3JhcChtX3A0KSk7CisgICAgICAgIHJldHVybiBtX2Z1bmN0aW9uV3JhcHBl
cihQYXJhbVN0b3JhZ2VUcmFpdHM8UDEsIEZ1bmN0aW9uV3JhcHBlcjo6c2hvdWxkVmFsaWRhdGVG
aXJzdFBhcmFtZXRlcj46OnVud3JhcChtX3AxKSwKKyAgICAgICAgICAgIFBhcmFtU3RvcmFnZVRy
YWl0czxQMiwgZmFsc2U+Ojp1bndyYXAobV9wMiksCisgICAgICAgICAgICBQYXJhbVN0b3JhZ2VU
cmFpdHM8UDMsIGZhbHNlPjo6dW53cmFwKG1fcDMpLAorICAgICAgICAgICAgUGFyYW1TdG9yYWdl
VHJhaXRzPFA0LCBmYWxzZT46OnVud3JhcChtX3A0KSk7CiAgICAgfQogCiBwcml2YXRlOgogICAg
IEZ1bmN0aW9uV3JhcHBlciBtX2Z1bmN0aW9uV3JhcHBlcjsKLSAgICB0eXBlbmFtZSBQYXJhbVN0
b3JhZ2VUcmFpdHM8UDE+OjpTdG9yYWdlVHlwZSBtX3AxOwotICAgIHR5cGVuYW1lIFBhcmFtU3Rv
cmFnZVRyYWl0czxQMj46OlN0b3JhZ2VUeXBlIG1fcDI7Ci0gICAgdHlwZW5hbWUgUGFyYW1TdG9y
YWdlVHJhaXRzPFAzPjo6U3RvcmFnZVR5cGUgbV9wMzsKLSAgICB0eXBlbmFtZSBQYXJhbVN0b3Jh
Z2VUcmFpdHM8UDQ+OjpTdG9yYWdlVHlwZSBtX3A0OworICAgIHR5cGVuYW1lIFBhcmFtU3RvcmFn
ZVRyYWl0czxQMSwgRnVuY3Rpb25XcmFwcGVyOjpzaG91bGRWYWxpZGF0ZUZpcnN0UGFyYW1ldGVy
Pjo6U3RvcmFnZVR5cGUgbV9wMTsKKyAgICB0eXBlbmFtZSBQYXJhbVN0b3JhZ2VUcmFpdHM8UDIs
IGZhbHNlPjo6U3RvcmFnZVR5cGUgbV9wMjsKKyAgICB0eXBlbmFtZSBQYXJhbVN0b3JhZ2VUcmFp
dHM8UDMsIGZhbHNlPjo6U3RvcmFnZVR5cGUgbV9wMzsKKyAgICB0eXBlbmFtZSBQYXJhbVN0b3Jh
Z2VUcmFpdHM8UDQsIGZhbHNlPjo6U3RvcmFnZVR5cGUgbV9wNDsKIH07CiAKIHRlbXBsYXRlPHR5
cGVuYW1lIEZ1bmN0aW9uV3JhcHBlciwgdHlwZW5hbWUgUiwgdHlwZW5hbWUgUDEsIHR5cGVuYW1l
IFAyLCB0eXBlbmFtZSBQMywgdHlwZW5hbWUgUDQsIHR5cGVuYW1lIFA1PgpAQCAtNTMzLDExICs1
NDUsMTEgQEAgY2xhc3MgQm91bmRGdW5jdGlvbkltcGw8RnVuY3Rpb25XcmFwcGVyLCBSIChQMSwg
UDIsIFAzLCBQNCwgUDUpPiA6IHB1YmxpYyBGdW5jdGkKIHB1YmxpYzoKICAgICBCb3VuZEZ1bmN0
aW9uSW1wbChGdW5jdGlvbldyYXBwZXIgZnVuY3Rpb25XcmFwcGVyLCBjb25zdCBQMSYgcDEsIGNv
bnN0IFAyJiBwMiwgY29uc3QgUDMmIHAzLCBjb25zdCBQNCYgcDQsIGNvbnN0IFA1JiBwNSkKICAg
ICAgICAgOiBtX2Z1bmN0aW9uV3JhcHBlcihmdW5jdGlvbldyYXBwZXIpCi0gICAgICAgICwgbV9w
MShQYXJhbVN0b3JhZ2VUcmFpdHM8UDE+Ojp3cmFwKHAxKSkKLSAgICAgICAgLCBtX3AyKFBhcmFt
U3RvcmFnZVRyYWl0czxQMj46OndyYXAocDIpKQotICAgICAgICAsIG1fcDMoUGFyYW1TdG9yYWdl
VHJhaXRzPFAzPjo6d3JhcChwMykpCi0gICAgICAgICwgbV9wNChQYXJhbVN0b3JhZ2VUcmFpdHM8
UDQ+Ojp3cmFwKHA0KSkKLSAgICAgICAgLCBtX3A1KFBhcmFtU3RvcmFnZVRyYWl0czxQNT46Ondy
YXAocDUpKQorICAgICAgICAsIG1fcDEoUGFyYW1TdG9yYWdlVHJhaXRzPFAxLCBGdW5jdGlvbldy
YXBwZXI6OnNob3VsZFZhbGlkYXRlRmlyc3RQYXJhbWV0ZXI+Ojp3cmFwKHAxKSkKKyAgICAgICAg
LCBtX3AyKFBhcmFtU3RvcmFnZVRyYWl0czxQMiwgZmFsc2U+Ojp3cmFwKHAyKSkKKyAgICAgICAg
LCBtX3AzKFBhcmFtU3RvcmFnZVRyYWl0czxQMywgZmFsc2U+Ojp3cmFwKHAzKSkKKyAgICAgICAg
LCBtX3A0KFBhcmFtU3RvcmFnZVRyYWl0czxQNCwgZmFsc2U+Ojp3cmFwKHA0KSkKKyAgICAgICAg
LCBtX3A1KFBhcmFtU3RvcmFnZVRyYWl0czxQNSwgZmFsc2U+Ojp3cmFwKHA1KSkKICAgICB7CiAg
ICAgICAgIFJlZkFuZERlcmVmPFAxLCBGdW5jdGlvbldyYXBwZXI6OnNob3VsZFJlZkZpcnN0UGFy
YW1ldGVyPjo6cmVmKG1fcDEpOwogICAgIH0KQEAgLTU0OSwxOCArNTYxLDIwIEBAIHB1YmxpYzoK
IAogICAgIHZpcnR1YWwgdHlwZW5hbWUgRnVuY3Rpb25XcmFwcGVyOjpSZXN1bHRUeXBlIG9wZXJh
dG9yKCkoKQogICAgIHsKLSAgICAgICAgaWYgKEZ1bmN0aW9uV3JhcHBlcjo6c2hvdWxkVmFsaWRh
dGVGaXJzdFBhcmFtZXRlciAmJiAhUGFyYW1TdG9yYWdlVHJhaXRzPFAxPjo6dmFsaWRhdGUobV9w
MSkpCi0gICAgICAgICAgICByZXR1cm4gdHlwZW5hbWUgRnVuY3Rpb25XcmFwcGVyOjpSZXN1bHRU
eXBlKCk7Ci0gICAgICAgIHJldHVybiBtX2Z1bmN0aW9uV3JhcHBlcihQYXJhbVN0b3JhZ2VUcmFp
dHM8UDE+Ojp1bndyYXAobV9wMSksIFBhcmFtU3RvcmFnZVRyYWl0czxQMj46OnVud3JhcChtX3Ay
KSwgUGFyYW1TdG9yYWdlVHJhaXRzPFAzPjo6dW53cmFwKG1fcDMpLCBQYXJhbVN0b3JhZ2VUcmFp
dHM8UDQ+Ojp1bndyYXAobV9wNCksIFBhcmFtU3RvcmFnZVRyYWl0czxQNT46OnVud3JhcChtX3A1
KSk7CisgICAgICAgIHJldHVybiBtX2Z1bmN0aW9uV3JhcHBlcihQYXJhbVN0b3JhZ2VUcmFpdHM8
UDEsIEZ1bmN0aW9uV3JhcHBlcjo6c2hvdWxkVmFsaWRhdGVGaXJzdFBhcmFtZXRlcj46OnVud3Jh
cChtX3AxKSwKKyAgICAgICAgICAgIFBhcmFtU3RvcmFnZVRyYWl0czxQMiwgZmFsc2U+Ojp1bndy
YXAobV9wMiksCisgICAgICAgICAgICBQYXJhbVN0b3JhZ2VUcmFpdHM8UDMsIGZhbHNlPjo6dW53
cmFwKG1fcDMpLAorICAgICAgICAgICAgUGFyYW1TdG9yYWdlVHJhaXRzPFA0LCBmYWxzZT46OnVu
d3JhcChtX3A0KSwKKyAgICAgICAgICAgIFBhcmFtU3RvcmFnZVRyYWl0czxQNSwgZmFsc2U+Ojp1
bndyYXAobV9wNSkpOwogICAgIH0KIAogcHJpdmF0ZToKICAgICBGdW5jdGlvbldyYXBwZXIgbV9m
dW5jdGlvbldyYXBwZXI7Ci0gICAgdHlwZW5hbWUgUGFyYW1TdG9yYWdlVHJhaXRzPFAxPjo6U3Rv
cmFnZVR5cGUgbV9wMTsKLSAgICB0eXBlbmFtZSBQYXJhbVN0b3JhZ2VUcmFpdHM8UDI+OjpTdG9y
YWdlVHlwZSBtX3AyOwotICAgIHR5cGVuYW1lIFBhcmFtU3RvcmFnZVRyYWl0czxQMz46OlN0b3Jh
Z2VUeXBlIG1fcDM7Ci0gICAgdHlwZW5hbWUgUGFyYW1TdG9yYWdlVHJhaXRzPFA0Pjo6U3RvcmFn
ZVR5cGUgbV9wNDsKLSAgICB0eXBlbmFtZSBQYXJhbVN0b3JhZ2VUcmFpdHM8UDU+OjpTdG9yYWdl
VHlwZSBtX3A1OworICAgIHR5cGVuYW1lIFBhcmFtU3RvcmFnZVRyYWl0czxQMSwgRnVuY3Rpb25X
cmFwcGVyOjpzaG91bGRWYWxpZGF0ZUZpcnN0UGFyYW1ldGVyPjo6U3RvcmFnZVR5cGUgbV9wMTsK
KyAgICB0eXBlbmFtZSBQYXJhbVN0b3JhZ2VUcmFpdHM8UDIsIGZhbHNlPjo6U3RvcmFnZVR5cGUg
bV9wMjsKKyAgICB0eXBlbmFtZSBQYXJhbVN0b3JhZ2VUcmFpdHM8UDMsIGZhbHNlPjo6U3RvcmFn
ZVR5cGUgbV9wMzsKKyAgICB0eXBlbmFtZSBQYXJhbVN0b3JhZ2VUcmFpdHM8UDQsIGZhbHNlPjo6
U3RvcmFnZVR5cGUgbV9wNDsKKyAgICB0eXBlbmFtZSBQYXJhbVN0b3JhZ2VUcmFpdHM8UDUsIGZh
bHNlPjo6U3RvcmFnZVR5cGUgbV9wNTsKIH07CiAKIHRlbXBsYXRlPHR5cGVuYW1lIEZ1bmN0aW9u
V3JhcHBlciwgdHlwZW5hbWUgUiwgdHlwZW5hbWUgUDEsIHR5cGVuYW1lIFAyLCB0eXBlbmFtZSBQ
MywgdHlwZW5hbWUgUDQsIHR5cGVuYW1lIFA1LCB0eXBlbmFtZSBQNj4KQEAgLTU2OCwxMiArNTgy
LDEyIEBAIGNsYXNzIEJvdW5kRnVuY3Rpb25JbXBsPEZ1bmN0aW9uV3JhcHBlciwgUiAoUDEsIFAy
LCBQMywgUDQsIFA1LCBQNik+IDogcHVibGljIEZ1CiBwdWJsaWM6CiAgICAgQm91bmRGdW5jdGlv
bkltcGwoRnVuY3Rpb25XcmFwcGVyIGZ1bmN0aW9uV3JhcHBlciwgY29uc3QgUDEmIHAxLCBjb25z
dCBQMiYgcDIsIGNvbnN0IFAzJiBwMywgY29uc3QgUDQmIHA0LCBjb25zdCBQNSYgcDUsIGNvbnN0
IFA2JiBwNikKICAgICAgICAgOiBtX2Z1bmN0aW9uV3JhcHBlcihmdW5jdGlvbldyYXBwZXIpCi0g
ICAgICAgICwgbV9wMShQYXJhbVN0b3JhZ2VUcmFpdHM8UDE+Ojp3cmFwKHAxKSkKLSAgICAgICAg
LCBtX3AyKFBhcmFtU3RvcmFnZVRyYWl0czxQMj46OndyYXAocDIpKQotICAgICAgICAsIG1fcDMo
UGFyYW1TdG9yYWdlVHJhaXRzPFAzPjo6d3JhcChwMykpCi0gICAgICAgICwgbV9wNChQYXJhbVN0
b3JhZ2VUcmFpdHM8UDQ+Ojp3cmFwKHA0KSkKLSAgICAgICAgLCBtX3A1KFBhcmFtU3RvcmFnZVRy
YWl0czxQNT46OndyYXAocDUpKQotICAgICAgICAsIG1fcDYoUGFyYW1TdG9yYWdlVHJhaXRzPFA2
Pjo6d3JhcChwNikpCisgICAgICAgICwgbV9wMShQYXJhbVN0b3JhZ2VUcmFpdHM8UDEsIEZ1bmN0
aW9uV3JhcHBlcjo6c2hvdWxkVmFsaWRhdGVGaXJzdFBhcmFtZXRlcj46OndyYXAocDEpKQorICAg
ICAgICAsIG1fcDIoUGFyYW1TdG9yYWdlVHJhaXRzPFAyLCBmYWxzZT46OndyYXAocDIpKQorICAg
ICAgICAsIG1fcDMoUGFyYW1TdG9yYWdlVHJhaXRzPFAzLCBmYWxzZT46OndyYXAocDMpKQorICAg
ICAgICAsIG1fcDQoUGFyYW1TdG9yYWdlVHJhaXRzPFA0LCBmYWxzZT46OndyYXAocDQpKQorICAg
ICAgICAsIG1fcDUoUGFyYW1TdG9yYWdlVHJhaXRzPFA1LCBmYWxzZT46OndyYXAocDUpKQorICAg
ICAgICAsIG1fcDYoUGFyYW1TdG9yYWdlVHJhaXRzPFA2LCBmYWxzZT46OndyYXAocDYpKQogICAg
IHsKICAgICAgICAgUmVmQW5kRGVyZWY8UDEsIEZ1bmN0aW9uV3JhcHBlcjo6c2hvdWxkUmVmRmly
c3RQYXJhbWV0ZXI+OjpyZWYobV9wMSk7CiAgICAgfQpAQCAtNTg1LDE5ICs1OTksMjIgQEAgcHVi
bGljOgogCiAgICAgdmlydHVhbCB0eXBlbmFtZSBGdW5jdGlvbldyYXBwZXI6OlJlc3VsdFR5cGUg
b3BlcmF0b3IoKSgpCiAgICAgewotICAgICAgICBpZiAoRnVuY3Rpb25XcmFwcGVyOjpzaG91bGRW
YWxpZGF0ZUZpcnN0UGFyYW1ldGVyICYmICFQYXJhbVN0b3JhZ2VUcmFpdHM8UDE+Ojp2YWxpZGF0
ZShtX3AxKSkKLSAgICAgICAgICAgIHJldHVybiB0eXBlbmFtZSBGdW5jdGlvbldyYXBwZXI6OlJl
c3VsdFR5cGUoKTsKLSAgICAgICAgcmV0dXJuIG1fZnVuY3Rpb25XcmFwcGVyKFBhcmFtU3RvcmFn
ZVRyYWl0czxQMT46OnVud3JhcChtX3AxKSwgUGFyYW1TdG9yYWdlVHJhaXRzPFAyPjo6dW53cmFw
KG1fcDIpLCBQYXJhbVN0b3JhZ2VUcmFpdHM8UDM+Ojp1bndyYXAobV9wMyksIFBhcmFtU3RvcmFn
ZVRyYWl0czxQND46OnVud3JhcChtX3A0KSwgUGFyYW1TdG9yYWdlVHJhaXRzPFA1Pjo6dW53cmFw
KG1fcDUpLCBQYXJhbVN0b3JhZ2VUcmFpdHM8UDY+Ojp1bndyYXAobV9wNikpOworICAgICAgICBy
ZXR1cm4gbV9mdW5jdGlvbldyYXBwZXIoUGFyYW1TdG9yYWdlVHJhaXRzPFAxLCBGdW5jdGlvbldy
YXBwZXI6OnNob3VsZFZhbGlkYXRlRmlyc3RQYXJhbWV0ZXI+Ojp1bndyYXAobV9wMSksCisgICAg
ICAgICAgICBQYXJhbVN0b3JhZ2VUcmFpdHM8UDIsIGZhbHNlPjo6dW53cmFwKG1fcDIpLAorICAg
ICAgICAgICAgUGFyYW1TdG9yYWdlVHJhaXRzPFAzLCBmYWxzZT46OnVud3JhcChtX3AzKSwKKyAg
ICAgICAgICAgIFBhcmFtU3RvcmFnZVRyYWl0czxQNCwgZmFsc2U+Ojp1bndyYXAobV9wNCksCisg
ICAgICAgICAgICBQYXJhbVN0b3JhZ2VUcmFpdHM8UDUsIGZhbHNlPjo6dW53cmFwKG1fcDUpLAor
ICAgICAgICAgICAgUGFyYW1TdG9yYWdlVHJhaXRzPFA2LCBmYWxzZT46OnVud3JhcChtX3A2KSk7
CiAgICAgfQogCiBwcml2YXRlOgogICAgIEZ1bmN0aW9uV3JhcHBlciBtX2Z1bmN0aW9uV3JhcHBl
cjsKLSAgICB0eXBlbmFtZSBQYXJhbVN0b3JhZ2VUcmFpdHM8UDE+OjpTdG9yYWdlVHlwZSBtX3Ax
OwotICAgIHR5cGVuYW1lIFBhcmFtU3RvcmFnZVRyYWl0czxQMj46OlN0b3JhZ2VUeXBlIG1fcDI7
Ci0gICAgdHlwZW5hbWUgUGFyYW1TdG9yYWdlVHJhaXRzPFAzPjo6U3RvcmFnZVR5cGUgbV9wMzsK
LSAgICB0eXBlbmFtZSBQYXJhbVN0b3JhZ2VUcmFpdHM8UDQ+OjpTdG9yYWdlVHlwZSBtX3A0Owot
ICAgIHR5cGVuYW1lIFBhcmFtU3RvcmFnZVRyYWl0czxQNT46OlN0b3JhZ2VUeXBlIG1fcDU7Ci0g
ICAgdHlwZW5hbWUgUGFyYW1TdG9yYWdlVHJhaXRzPFA2Pjo6U3RvcmFnZVR5cGUgbV9wNjsKKyAg
ICB0eXBlbmFtZSBQYXJhbVN0b3JhZ2VUcmFpdHM8UDEsIEZ1bmN0aW9uV3JhcHBlcjo6c2hvdWxk
VmFsaWRhdGVGaXJzdFBhcmFtZXRlcj46OlN0b3JhZ2VUeXBlIG1fcDE7CisgICAgdHlwZW5hbWUg
UGFyYW1TdG9yYWdlVHJhaXRzPFAyLCBmYWxzZT46OlN0b3JhZ2VUeXBlIG1fcDI7CisgICAgdHlw
ZW5hbWUgUGFyYW1TdG9yYWdlVHJhaXRzPFAzLCBmYWxzZT46OlN0b3JhZ2VUeXBlIG1fcDM7Cisg
ICAgdHlwZW5hbWUgUGFyYW1TdG9yYWdlVHJhaXRzPFA0LCBmYWxzZT46OlN0b3JhZ2VUeXBlIG1f
cDQ7CisgICAgdHlwZW5hbWUgUGFyYW1TdG9yYWdlVHJhaXRzPFA1LCBmYWxzZT46OlN0b3JhZ2VU
eXBlIG1fcDU7CisgICAgdHlwZW5hbWUgUGFyYW1TdG9yYWdlVHJhaXRzPFA2LCBmYWxzZT46OlN0
b3JhZ2VUeXBlIG1fcDY7CiB9OwogCiBjbGFzcyBGdW5jdGlvbkJhc2UgewpkaWZmIC0tZ2l0IGEv
U291cmNlL1dURi93dGYvV2Vha1B0ci5oIGIvU291cmNlL1dURi93dGYvV2Vha1B0ci5oCmluZGV4
IDBlNjQ1MDYyMDA2ZTc4NGMzZjk5MmEzZDM0YjVlMjJjODkxMGM1YmIuLjI4OWExMGMxOGNhZTA4
MDhlMzg5NDJkYmM5ZDIwNmIxODA2MTFkODggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL1dl
YWtQdHIuaAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9XZWFrUHRyLmgKQEAgLTk2LDYgKzk2LDE0IEBA
IHB1YmxpYzoKICAgICAvLyBXZSBzaG91bGQgY29uc2lkZXIgaGF2aW5nIGNyZWF0ZVdlYWtQdHIg
cG9wdWxhdGUgbV9yZWYgdGhlIGZpcnN0IHRpbWUgY3JlYXRlV2Vha1B0ciBpcyBjYWxsZWQuCiAg
ICAgV2Vha1B0cjxUPiBjcmVhdGVXZWFrUHRyKCkgeyByZXR1cm4gV2Vha1B0cjxUPihtX3JlZik7
IH0KIAorICAgIHZvaWQgcmV2b2tlQWxsKCkKKyAgICB7CisgICAgICAgIFQqIHB0ciA9IG1fcmVm
LT5nZXQoKTsKKyAgICAgICAgbV9yZWYtPmNsZWFyKCk7CisgICAgICAgIC8vIFdlIGNyZWF0ZSBh
IG5ldyBXZWFrUmVmZXJlbmNlIHNvIHRoYXQgZnV0dXJlIGNhbGxzIHRvIGNyZWF0ZVdlYWtQdHIo
KSBjcmVhdGUgbm9uemVybyBXZWFrUHRycy4KKyAgICAgICAgbV9yZWYgPSBJbnRlcm5hbDo6V2Vh
a1JlZmVyZW5jZTxUPjo6Y3JlYXRlKHB0cik7CisgICAgfQorCiBwcml2YXRlOgogICAgIFJlZlB0
cjxJbnRlcm5hbDo6V2Vha1JlZmVyZW5jZTxUPiA+IG1fcmVmOwogfTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XVEYvd3RmL2Nocm9taXVtL01haW5UaHJlYWRDaHJvbWl1bS5jcHAgYi9Tb3VyY2UvV1RG
L3d0Zi9jaHJvbWl1bS9NYWluVGhyZWFkQ2hyb21pdW0uY3BwCmluZGV4IDllNjU5MmI1NzE1Njc5
YWUyYmM5YTZkMWEwYjZmM2I4YzllMThlODEuLjk1N2VhZTcwMWQxOGUzOTczODQ4MTIzNDE1N2Yz
YTE4ZGU4MmU0MTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL2Nocm9taXVtL01haW5UaHJl
YWRDaHJvbWl1bS5jcHAKKysrIGIvU291cmNlL1dURi93dGYvY2hyb21pdW0vTWFpblRocmVhZENo
cm9taXVtLmNwcApAQCAtMzQsNiArMzQsNyBAQAogI2luY2x1ZGUgIkFzc2VydGlvbnMuaCIKICNp
bmNsdWRlICJDaHJvbWl1bVRocmVhZGluZy5oIgogI2luY2x1ZGUgIlRocmVhZGluZy5oIgorI2lu
Y2x1ZGUgPHd0Zi9GdW5jdGlvbmFsLmg+CiAKIG5hbWVzcGFjZSBXVEYgewogCkBAIC01NCw2ICs1
NSwxOCBAQCB2b2lkIGNhbGxPbk1haW5UaHJlYWQoTWFpblRocmVhZEZ1bmN0aW9uKiBmdW5jdGlv
biwgdm9pZCogY29udGV4dCkKICAgICBDaHJvbWl1bVRocmVhZGluZzo6Y2FsbE9uTWFpblRocmVh
ZChmdW5jdGlvbiwgY29udGV4dCk7CiB9CiAKK3N0YXRpYyB2b2lkIGNhbGxGdW5jdGlvbk9iamVj
dCh2b2lkKiBjb250ZXh0KQoreworICAgIEZ1bmN0aW9uPHZvaWQgKCk+KiBmdW5jdGlvbiA9IHN0
YXRpY19jYXN0PEZ1bmN0aW9uPHZvaWQgKCk+Kj4oY29udGV4dCk7CisgICAgKCpmdW5jdGlvbiko
KTsKKyAgICBkZWxldGUgZnVuY3Rpb247Cit9CisKK3ZvaWQgY2FsbE9uTWFpblRocmVhZChjb25z
dCBGdW5jdGlvbjx2b2lkICgpPiYgZnVuY3Rpb24pCit7CisgICAgY2FsbE9uTWFpblRocmVhZChj
YWxsRnVuY3Rpb25PYmplY3QsIG5ldyBGdW5jdGlvbjx2b2lkICgpPihmdW5jdGlvbikpOworfQor
CiB2b2lkIGNhbGxPbk1haW5UaHJlYWRBbmRXYWl0KE1haW5UaHJlYWRGdW5jdGlvbiosIHZvaWQq
KQogewogICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvaHRtbC9wYXJzZXIvQmFja2dyb3VuZEhUTUxQYXJzZXIuY3BwIGIvU291cmNlL1dlYkNvcmUv
aHRtbC9wYXJzZXIvQmFja2dyb3VuZEhUTUxQYXJzZXIuY3BwCmluZGV4IGNmZDM2M2Y0ZDEwZmZi
MTBmYmVjZWM3YzkyMDQ1ZTI3NjhmNzQ5MDkuLmMwZWY0MDQ3Yjk4NmZmMWE2YTNkNzk4NDI0OTBi
ZTg5MzJhNzY2Y2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0JhY2tn
cm91bmRIVE1MUGFyc2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9CYWNr
Z3JvdW5kSFRNTFBhcnNlci5jcHAKQEAgLTY4LDkgKzY4LDYgQEAgc3RhdGljIGJvb2wgdGhyZWFk
U2FmZU1hdGNoKGNvbnN0IFN0cmluZyYgbG9jYWxOYW1lLCBjb25zdCBRdWFsaWZpZWROYW1lJiBx
TmFtZSkKICAgICByZXR1cm4gdGhyZWFkU2FmZUVxdWFsKGxvY2FsTmFtZS5pbXBsKCksIHFOYW1l
LmxvY2FsTmFtZSgpLmltcGwoKSk7CiB9CiAKLXR5cGVkZWYgY29uc3Qgdm9pZCogUGFyc2VySWRl
bnRpZmllcjsKLWNsYXNzIEhUTUxEb2N1bWVudFBhcnNlcjsKLQogUGFyc2VyTWFwJiBwYXJzZXJN
YXAoKQogewogICAgIC8vIFRoaXMgaW5pdGlhbGl6YXRpb24gYXNzdW1lcyB0aGF0IHRoaXMgd2ls
bCBiZSBpbml0aWFsaXplIG9uIHRoZSBtYWluIHRocmVhZCBiZWZvcmUKQEAgLTg1LDE3ICs4Miwx
MSBAQCBQYXJzZXJNYXA6OkJhY2tncm91bmRQYXJzZXJNYXAmIFBhcnNlck1hcDo6YmFja2dyb3Vu
ZFBhcnNlcnMoKQogICAgIHJldHVybiBtX2JhY2tncm91bmRQYXJzZXJzOwogfQogCi1QYXJzZXJN
YXA6Ok1haW5UaHJlYWRQYXJzZXJNYXAmIFBhcnNlck1hcDo6bWFpblRocmVhZFBhcnNlcnMoKQot
ewotICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7Ci0gICAgcmV0dXJuIG1fbWFpblRocmVhZFBh
cnNlcnM7Ci19Ci0KLUJhY2tncm91bmRIVE1MUGFyc2VyOjpCYWNrZ3JvdW5kSFRNTFBhcnNlcihj
b25zdCBIVE1MUGFyc2VyT3B0aW9ucyYgb3B0aW9ucywgUGFyc2VySWRlbnRpZmllciBpZGVudGlm
aWVyKQorQmFja2dyb3VuZEhUTUxQYXJzZXI6OkJhY2tncm91bmRIVE1MUGFyc2VyKGNvbnN0IEhU
TUxQYXJzZXJPcHRpb25zJiBvcHRpb25zLCBXZWFrUHRyPEhUTUxEb2N1bWVudFBhcnNlcj4gcGFy
c2VyKQogICAgIDogbV9pbkZvcmVpZ25Db250ZW50KGZhbHNlKQogICAgICwgbV90b2tlbml6ZXIo
SFRNTFRva2VuaXplcjo6Y3JlYXRlKG9wdGlvbnMpKQogICAgICwgbV9vcHRpb25zKG9wdGlvbnMp
Ci0gICAgLCBtX3BhcnNlcklkZW50aWZlcihpZGVudGlmaWVyKQorICAgICwgbV9wYXJzZXIocGFy
c2VyKQogICAgICwgbV9wZW5kaW5nVG9rZW5zKGFkb3B0UHRyKG5ldyBDb21wYWN0SFRNTFRva2Vu
U3RyZWFtKSkKIHsKIH0KQEAgLTE3MywyOSArMTY0LDYgQEAgdm9pZCBCYWNrZ3JvdW5kSFRNTFBh
cnNlcjo6cHVtcFRva2VuaXplcigpCiAgICAgc2VuZFRva2Vuc1RvTWFpblRocmVhZCgpOwogfQog
Ci1jbGFzcyBUb2tlbkRlbGl2ZXJ5IHsKLSAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShUb2tlbkRl
bGl2ZXJ5KTsKLXB1YmxpYzoKLSAgICBUb2tlbkRlbGl2ZXJ5KCkKLSAgICAgICAgOiBpZGVudGlm
aWVyKDApCi0gICAgewotICAgIH0KLQotICAgIFBhcnNlcklkZW50aWZpZXIgaWRlbnRpZmllcjsK
LSAgICBPd25QdHI8Q29tcGFjdEhUTUxUb2tlblN0cmVhbT4gdG9rZW5zOwotICAgIHN0YXRpYyB2
b2lkIGV4ZWN1dGUodm9pZCogY29udGV4dCkKLSAgICB7Ci0gICAgICAgIFRva2VuRGVsaXZlcnkq
IGRlbGl2ZXJ5ID0gc3RhdGljX2Nhc3Q8VG9rZW5EZWxpdmVyeSo+KGNvbnRleHQpOwotICAgICAg
ICBIVE1MRG9jdW1lbnRQYXJzZXIqIHBhcnNlciA9IHBhcnNlck1hcCgpLm1haW5UaHJlYWRQYXJz
ZXJzKCkuZ2V0KGRlbGl2ZXJ5LT5pZGVudGlmaWVyKTsKLSAgICAgICAgaWYgKHBhcnNlcikKLSAg
ICAgICAgICAgIHBhcnNlci0+ZGlkUmVjZWl2ZVRva2Vuc0Zyb21CYWNrZ3JvdW5kUGFyc2VyKGRl
bGl2ZXJ5LT50b2tlbnMucmVsZWFzZSgpKTsKLSAgICAgICAgLy8gRklYTUU6IElkZWFsbHkgd2Ug
d291bGRuJ3QgbmVlZCB0byBjYWxsIGRlbGV0ZSBtYW51YWxseS4gSW5zdGVhZAotICAgICAgICAv
LyB3ZSB3b3VsZCBsaWtlIGFuIEFQSSB3aGVyZSB0aGUgbWVzc2FnZSBxdWV1ZSBvd25zIHRoZSB0
YXNrcyBhbmQKLSAgICAgICAgLy8gdGFrZXMgY2FyZSBvZiBkZWxldGluZyB0aGVtLgotICAgICAg
ICBkZWxldGUgZGVsaXZlcnk7Ci0gICAgfQotfTsKLQogdm9pZCBCYWNrZ3JvdW5kSFRNTFBhcnNl
cjo6c2VuZFRva2Vuc1RvTWFpblRocmVhZCgpCiB7CiAgICAgaWYgKG1fcGVuZGluZ1Rva2Vucy0+
aXNFbXB0eSgpKQpAQCAtMjA1LDE4ICsxNzMsMTUgQEAgdm9pZCBCYWNrZ3JvdW5kSFRNTFBhcnNl
cjo6c2VuZFRva2Vuc1RvTWFpblRocmVhZCgpCiAgICAgY2hlY2tUaGF0VG9rZW5zQXJlU2FmZVRv
U2VuZFRvQW5vdGhlclRocmVhZChtX3BlbmRpbmdUb2tlbnMuZ2V0KCkpOwogI2VuZGlmCiAKLSAg
ICBUb2tlbkRlbGl2ZXJ5KiBkZWxpdmVyeSA9IG5ldyBUb2tlbkRlbGl2ZXJ5OwotICAgIGRlbGl2
ZXJ5LT5pZGVudGlmaWVyID0gbV9wYXJzZXJJZGVudGlmZXI7Ci0gICAgZGVsaXZlcnktPnRva2Vu
cyA9IG1fcGVuZGluZ1Rva2Vucy5yZWxlYXNlKCk7Ci0gICAgY2FsbE9uTWFpblRocmVhZChUb2tl
bkRlbGl2ZXJ5OjpleGVjdXRlLCBkZWxpdmVyeSk7CisgICAgY2FsbE9uTWFpblRocmVhZChiaW5k
KCZIVE1MRG9jdW1lbnRQYXJzZXI6OmRpZFJlY2VpdmVUb2tlbnNGcm9tQmFja2dyb3VuZFBhcnNl
ciwgbV9wYXJzZXIsIG1fcGVuZGluZ1Rva2Vucy5yZWxlYXNlKCkpKTsKIAogICAgIG1fcGVuZGlu
Z1Rva2VucyA9IGFkb3B0UHRyKG5ldyBDb21wYWN0SFRNTFRva2VuU3RyZWFtKTsKIH0KIAotdm9p
ZCBCYWNrZ3JvdW5kSFRNTFBhcnNlcjo6Y3JlYXRlUGFydGlhbChQYXJzZXJJZGVudGlmaWVyIGlk
ZW50aWZpZXIsIEhUTUxQYXJzZXJPcHRpb25zIG9wdGlvbnMpCit2b2lkIEJhY2tncm91bmRIVE1M
UGFyc2VyOjpjcmVhdGVQYXJ0aWFsKFBhcnNlcklkZW50aWZpZXIgaWRlbnRpZmllciwgSFRNTFBh
cnNlck9wdGlvbnMgb3B0aW9ucywgV2Vha1B0cjxIVE1MRG9jdW1lbnRQYXJzZXI+IHBhcnNlcikK
IHsKICAgICBBU1NFUlQoIXBhcnNlck1hcCgpLmJhY2tncm91bmRQYXJzZXJzKCkuZ2V0KGlkZW50
aWZpZXIpKTsKLSAgICBwYXJzZXJNYXAoKS5iYWNrZ3JvdW5kUGFyc2VycygpLnNldChpZGVudGlm
aWVyLCBCYWNrZ3JvdW5kSFRNTFBhcnNlcjo6Y3JlYXRlKG9wdGlvbnMsIGlkZW50aWZpZXIpKTsK
KyAgICBwYXJzZXJNYXAoKS5iYWNrZ3JvdW5kUGFyc2VycygpLnNldChpZGVudGlmaWVyLCBCYWNr
Z3JvdW5kSFRNTFBhcnNlcjo6Y3JlYXRlKG9wdGlvbnMsIHBhcnNlcikpOwogfQogCiB2b2lkIEJh
Y2tncm91bmRIVE1MUGFyc2VyOjpzdG9wUGFydGlhbChQYXJzZXJJZGVudGlmaWVyIGlkZW50aWZp
ZXIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9CYWNrZ3JvdW5kSFRN
TFBhcnNlci5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvQmFja2dyb3VuZEhUTUxQYXJz
ZXIuaAppbmRleCAyZTRkYjQxOWMwZjViZDJkMmExNmRiOTNiY2E0YWNjMTNhOTZkOTFlLi5lNmU4
Mjc2ZjZmODAyMmVhOGQ1MmY5M2Y0MGNiMWUxY2MwNTY5MTgxIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9odG1sL3BhcnNlci9CYWNrZ3JvdW5kSFRNTFBhcnNlci5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvcGFyc2VyL0JhY2tncm91bmRIVE1MUGFyc2VyLmgKQEAgLTMyLDYgKzMyLDcg
QEAKICNpbmNsdWRlICJIVE1MUGFyc2VyT3B0aW9ucy5oIgogI2luY2x1ZGUgIkhUTUxUb2tlbi5o
IgogI2luY2x1ZGUgIkhUTUxUb2tlbml6ZXIuaCIKKyNpbmNsdWRlIDx3dGYvV2Vha1B0ci5oPgog
CiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKQEAgLTQ0LDE4ICs0NSwxOCBAQCBwdWJsaWM6CiAgICAg
dm9pZCBhcHBlbmQoY29uc3QgU3RyaW5nJik7CiAgICAgdm9pZCBmaW5pc2goKTsKIAotICAgIHN0
YXRpYyBQYXNzT3duUHRyPEJhY2tncm91bmRIVE1MUGFyc2VyPiBjcmVhdGUoY29uc3QgSFRNTFBh
cnNlck9wdGlvbnMmIG9wdGlvbnMsIFBhcnNlcklkZW50aWZpZXIgaWRlbnRpZmllcikKKyAgICBz
dGF0aWMgUGFzc093blB0cjxCYWNrZ3JvdW5kSFRNTFBhcnNlcj4gY3JlYXRlKGNvbnN0IEhUTUxQ
YXJzZXJPcHRpb25zJiBvcHRpb25zLCBXZWFrUHRyPEhUTUxEb2N1bWVudFBhcnNlcj4gcGFyc2Vy
KQogICAgIHsKLSAgICAgICAgcmV0dXJuIGFkb3B0UHRyKG5ldyBCYWNrZ3JvdW5kSFRNTFBhcnNl
cihvcHRpb25zLCBpZGVudGlmaWVyKSk7CisgICAgICAgIHJldHVybiBhZG9wdFB0cihuZXcgQmFj
a2dyb3VuZEhUTUxQYXJzZXIob3B0aW9ucywgcGFyc2VyKSk7CiAgICAgfQogCi0gICAgc3RhdGlj
IHZvaWQgY3JlYXRlUGFydGlhbChQYXJzZXJJZGVudGlmaWVyLCBIVE1MUGFyc2VyT3B0aW9ucyk7
CisgICAgc3RhdGljIHZvaWQgY3JlYXRlUGFydGlhbChQYXJzZXJJZGVudGlmaWVyLCBIVE1MUGFy
c2VyT3B0aW9ucywgV2Vha1B0cjxIVE1MRG9jdW1lbnRQYXJzZXI+KTsKICAgICBzdGF0aWMgdm9p
ZCBzdG9wUGFydGlhbChQYXJzZXJJZGVudGlmaWVyKTsKICAgICBzdGF0aWMgdm9pZCBhcHBlbmRQ
YXJ0aWFsKFBhcnNlcklkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgaW5wdXQpOwogICAgIHN0YXRp
YyB2b2lkIGZpbmlzaFBhcnRpYWwoUGFyc2VySWRlbnRpZmllcik7CiAKIHByaXZhdGU6Ci0gICAg
ZXhwbGljaXQgQmFja2dyb3VuZEhUTUxQYXJzZXIoY29uc3QgSFRNTFBhcnNlck9wdGlvbnMmLCBQ
YXJzZXJJZGVudGlmaWVyKTsKKyAgICBCYWNrZ3JvdW5kSFRNTFBhcnNlcihjb25zdCBIVE1MUGFy
c2VyT3B0aW9ucyYsIFdlYWtQdHI8SFRNTERvY3VtZW50UGFyc2VyPik7CiAKICAgICB2b2lkIG1h
cmtFbmRPZkZpbGUoKTsKICAgICB2b2lkIHB1bXBUb2tlbml6ZXIoKTsKQEAgLTY4LDcgKzY5LDcg
QEAgcHJpdmF0ZToKICAgICBib29sIG1faW5Gb3JlaWduQ29udGVudDsgLy8gRklYTUU6IFdlIG5l
ZWQgYSBzdGFjayBvZiBmb3JlaWduIGNvbnRlbnQgbWFya2Vycy4KICAgICBPd25QdHI8SFRNTFRv
a2VuaXplcj4gbV90b2tlbml6ZXI7CiAgICAgSFRNTFBhcnNlck9wdGlvbnMgbV9vcHRpb25zOwot
ICAgIFBhcnNlcklkZW50aWZpZXIgbV9wYXJzZXJJZGVudGlmZXI7CisgICAgV2Vha1B0cjxIVE1M
RG9jdW1lbnRQYXJzZXI+IG1fcGFyc2VyOwogICAgIE93blB0cjxDb21wYWN0SFRNTFRva2VuU3Ry
ZWFtPiBtX3BlbmRpbmdUb2tlbnM7CiB9OwogCkBAIC04MCwxNCArODEsMTEgQEAgcHVibGljOgog
ICAgIH0KIAogICAgIHR5cGVkZWYgSGFzaE1hcDxQYXJzZXJJZGVudGlmaWVyLCBPd25QdHI8QmFj
a2dyb3VuZEhUTUxQYXJzZXI+ID4gQmFja2dyb3VuZFBhcnNlck1hcDsKLSAgICB0eXBlZGVmIEhh
c2hNYXA8UGFyc2VySWRlbnRpZmllciwgSFRNTERvY3VtZW50UGFyc2VyKj4gTWFpblRocmVhZFBh
cnNlck1hcDsKIAogICAgIEJhY2tncm91bmRQYXJzZXJNYXAmIGJhY2tncm91bmRQYXJzZXJzKCk7
Ci0gICAgTWFpblRocmVhZFBhcnNlck1hcCYgbWFpblRocmVhZFBhcnNlcnMoKTsKIAogcHJpdmF0
ZToKICAgICBCYWNrZ3JvdW5kUGFyc2VyTWFwIG1fYmFja2dyb3VuZFBhcnNlcnM7Ci0gICAgTWFp
blRocmVhZFBhcnNlck1hcCBtX21haW5UaHJlYWRQYXJzZXJzOwogfTsKIAogUGFyc2VyTWFwJiBw
YXJzZXJNYXAoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxE
b2N1bWVudFBhcnNlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9IVE1MRG9jdW1l
bnRQYXJzZXIuY3BwCmluZGV4IGQ5NGMyYzA0YjQzMWZiODNjMTA5YjBiYjllY2MwMTFkMTYxODAx
YzIuLjQ0NDcwODE1NmZlNTkxY2I5MWFmNzRmZTdjZTYzNWNhNzRmNDRmZGEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxEb2N1bWVudFBhcnNlci5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvSFRNTERvY3VtZW50UGFyc2VyLmNwcApAQCAtODIs
NiArODIsOSBAQCBIVE1MRG9jdW1lbnRQYXJzZXI6OkhUTUxEb2N1bWVudFBhcnNlcihIVE1MRG9j
dW1lbnQqIGRvY3VtZW50LCBib29sIHJlcG9ydEVycm9ycwogICAgICwgbV90cmVlQnVpbGRlcihI
VE1MVHJlZUJ1aWxkZXI6OmNyZWF0ZSh0aGlzLCBkb2N1bWVudCwgcmVwb3J0RXJyb3JzLCBtX29w
dGlvbnMpKQogICAgICwgbV9wYXJzZXJTY2hlZHVsZXIoSFRNTFBhcnNlclNjaGVkdWxlcjo6Y3Jl
YXRlKHRoaXMpKQogICAgICwgbV94c3NBdWRpdG9yKHRoaXMpCisjaWYgRU5BQkxFKFRIUkVBREVE
X0hUTUxfUEFSU0VSKQorICAgICwgbV93ZWFrRmFjdG9yeSh0aGlzKQorI2VuZGlmCiAgICAgLCBt
X2VuZFdhc0RlbGF5ZWQoZmFsc2UpCiAgICAgLCBtX2hhdmVCYWNrZ3JvdW5kUGFyc2VyKGZhbHNl
KQogICAgICwgbV9wdW1wU2Vzc2lvbk5lc3RpbmdMZXZlbCgwKQpAQCAtOTYsNiArOTksOSBAQCBI
VE1MRG9jdW1lbnRQYXJzZXI6OkhUTUxEb2N1bWVudFBhcnNlcihEb2N1bWVudEZyYWdtZW50KiBm
cmFnbWVudCwgRWxlbWVudCogY29udAogICAgICwgbV90b2tlbml6ZXIoSFRNTFRva2VuaXplcjo6
Y3JlYXRlKG1fb3B0aW9ucykpCiAgICAgLCBtX3RyZWVCdWlsZGVyKEhUTUxUcmVlQnVpbGRlcjo6
Y3JlYXRlKHRoaXMsIGZyYWdtZW50LCBjb250ZXh0RWxlbWVudCwgc2NyaXB0aW5nUGVybWlzc2lv
biwgbV9vcHRpb25zKSkKICAgICAsIG1feHNzQXVkaXRvcih0aGlzKQorI2lmIEVOQUJMRShUSFJF
QURFRF9IVE1MX1BBUlNFUikKKyAgICAsIG1fd2Vha0ZhY3RvcnkodGhpcykKKyNlbmRpZgogICAg
ICwgbV9lbmRXYXNEZWxheWVkKGZhbHNlKQogICAgICwgbV9oYXZlQmFja2dyb3VuZFBhcnNlcihm
YWxzZSkKICAgICAsIG1fcHVtcFNlc3Npb25OZXN0aW5nTGV2ZWwoMCkKQEAgLTQ1Niw5ICs0NjIs
OCBAQCB2b2lkIEhUTUxEb2N1bWVudFBhcnNlcjo6c3RhcnRCYWNrZ3JvdW5kUGFyc2VyKCkKICAg
ICBtX2hhdmVCYWNrZ3JvdW5kUGFyc2VyID0gdHJ1ZTsKIAogICAgIFBhcnNlcklkZW50aWZpZXIg
aWRlbnRpZmllciA9IFBhcnNlck1hcDo6aWRlbnRpZmllckZvclBhcnNlcih0aGlzKTsKLSAgICBw
YXJzZXJNYXAoKS5tYWluVGhyZWFkUGFyc2VycygpLnNldChpZGVudGlmaWVyLCB0aGlzKTsKLQot
ICAgIEhUTUxQYXJzZXJUaHJlYWQ6OnNoYXJlZCgpLT5wb3N0VGFzayhiaW5kKCZCYWNrZ3JvdW5k
SFRNTFBhcnNlcjo6Y3JlYXRlUGFydGlhbCwgaWRlbnRpZmllciwgbV9vcHRpb25zKSk7CisgICAg
V2Vha1B0cjxIVE1MRG9jdW1lbnRQYXJzZXI+IHBhcnNlciA9IG1fd2Vha0ZhY3RvcnkuY3JlYXRl
V2Vha1B0cigpOworICAgIEhUTUxQYXJzZXJUaHJlYWQ6OnNoYXJlZCgpLT5wb3N0VGFzayhiaW5k
KCZCYWNrZ3JvdW5kSFRNTFBhcnNlcjo6Y3JlYXRlUGFydGlhbCwgaWRlbnRpZmllciwgbV9vcHRp
b25zLCBwYXJzZXIpKTsKIH0KIAogdm9pZCBIVE1MRG9jdW1lbnRQYXJzZXI6OnN0b3BCYWNrZ3Jv
dW5kUGFyc2VyKCkKQEAgLTQ2OSw5ICs0NzQsNyBAQCB2b2lkIEhUTUxEb2N1bWVudFBhcnNlcjo6
c3RvcEJhY2tncm91bmRQYXJzZXIoKQogCiAgICAgUGFyc2VySWRlbnRpZmllciBpZGVudGlmaWVy
ID0gUGFyc2VyTWFwOjppZGVudGlmaWVyRm9yUGFyc2VyKHRoaXMpOwogICAgIEhUTUxQYXJzZXJU
aHJlYWQ6OnNoYXJlZCgpLT5wb3N0VGFzayhiaW5kKCZCYWNrZ3JvdW5kSFRNTFBhcnNlcjo6c3Rv
cFBhcnRpYWwsIGlkZW50aWZpZXIpKTsKLQotICAgIHBhcnNlck1hcCgpLm1haW5UaHJlYWRQYXJz
ZXJzKCkuc2V0KGlkZW50aWZpZXIsIDApOwotICAgIC8vIFdlIHdpbGwgbm90IHJlY2lldmUgYW55
IG1lc3NhZ2VzIGZyb20gdGhlIHBhcnNlciBhZnRlciB0aGlzIHBvaW50LgorICAgIG1fd2Vha0Zh
Y3RvcnkucmV2b2tlQWxsKCk7CiB9CiAKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvaHRtbC9wYXJzZXIvSFRNTERvY3VtZW50UGFyc2VyLmggYi9Tb3VyY2UvV2ViQ29yZS9odG1s
L3BhcnNlci9IVE1MRG9jdW1lbnRQYXJzZXIuaAppbmRleCBiN2YwY2FiM2NlZmQ2ZTcyM2U2OTkz
ZTBiNWE4NGM0MmRmZjVlZTYwLi5mMTljYjEyMjk0NWVmNTk2MWYxN2Y3MGI5NWRlZDMzNDg0YjVi
YzFmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9IVE1MRG9jdW1lbnRQ
YXJzZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9IVE1MRG9jdW1lbnRQYXJz
ZXIuaApAQCAtMzksNiArMzksNyBAQAogI2luY2x1ZGUgIlhTU0F1ZGl0b3IuaCIKICNpbmNsdWRl
IDx3dGYvRGVxdWUuaD4KICNpbmNsdWRlIDx3dGYvT3duUHRyLmg+CisjaW5jbHVkZSA8d3RmL1dl
YWtQdHIuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9UZXh0UG9zaXRpb24uaD4KIAogbmFtZXNwYWNl
IFdlYkNvcmUgewpAQCAtMTcxLDYgKzE3Miw3IEBAIHByaXZhdGU6CiAKICNpZiBFTkFCTEUoVEhS
RUFERURfSFRNTF9QQVJTRVIpCiAgICAgRGVxdWU8T3duUHRyPENvbXBhY3RIVE1MVG9rZW5TdHJl
YW0+ID4gbV9wZW5kaW5nVG9rZW5zOworICAgIFdlYWtQdHJGYWN0b3J5PEhUTUxEb2N1bWVudFBh
cnNlcj4gbV93ZWFrRmFjdG9yeTsKICNlbmRpZgogCiAgICAgYm9vbCBtX2VuZFdhc0RlbGF5ZWQ7
Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>184306</attachid>
            <date>2013-01-23 14:08:08 -0800</date>
            <delta_ts>2013-01-23 14:12:42 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-107637-20130123140501.patch</filename>
            <type>text/plain</type>
            <size>50484</size>
            <attacher name="Adam Barth">abarth</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQwNTc5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDY4NzcxNDlhMWMxMWQzN2ZjM2U0OTQz
ZmRiMDVhOTFiMGZhMGU4MGIuLjFkYmU3M2YzNTgxY2Q4YjJlOTQ5NWE3NTc1MGY3ZDM0MGFmZDVj
Y2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMjYgQEAKKzIwMTMtMDEtMjMgIEFkYW0gQmFydGggIDxhYmFydGhA
d2Via2l0Lm9yZz4KKworICAgICAgICBCYWNrZ3JvdW5kSFRNTFBhcnNlcjo6c2VuZFRva2Vuc1Rv
TWFpblRocmVhZCBzaG91bGQgdXNlIGJpbmQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTEwNzYzNworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgICogd3RmL0Z1bmN0aW9uYWwuaDoKKyAgICAgICAgICAgIC0gSSBo
YWQgdG8gcmUtd29yayB0aGUgYXBwcm9hY2ggdG8gdmFsaWRhdGluZyBXZWFrUHRyIHx0aGlzfAor
ICAgICAgICAgICAgICBhcmd1bWVudHMgYSBiaXQuIFByZXZpb3VzbHkgeW91IGNvdWxkbid0IHBh
c3MgYSBXZWFrUHRyIGFzIGEKKyAgICAgICAgICAgICAgbm9uLXx0aGlzfCBhcmd1bWVudCB0byBh
IGZ1bmN0aW9uIGJlY2F1c2Ugd2Ugd291bGQgdHJ5IHRvIHVud3JhcAorICAgICAgICAgICAgICBp
dCBpbnRvIGEgcmF3IHBvaW50ZXIuCisgICAgICAgICogd3RmL1dlYWtQdHIuaDoKKyAgICAgICAg
KFdURjo6V2Vha1B0ckZhY3Rvcnk6OnJldm9rZUFsbCk6CisgICAgICAgIChXZWFrUHRyRmFjdG9y
eSk6CisgICAgICAgICAgICAtIExldCBjbGllbnRzIHJldm9rZSBhbGwgb3V0c3RhbmRpbmcgV2Vh
a1B0cnMgd2l0aG91dCBuZWVkaW5nIHRvCisgICAgICAgICAgICAgIGRlc3Ryb3kgdGhlIFdlYWtQ
dHJGYWN0b3J5LgorICAgICAgICAqIHd0Zi9jaHJvbWl1bS9NYWluVGhyZWFkQ2hyb21pdW0uY3Bw
OgorICAgICAgICAoV1RGOjpjYWxsRnVuY3Rpb25PYmplY3QpOgorICAgICAgICAoV1RGOjpjYWxs
T25NYWluVGhyZWFkKToKKyAgICAgICAgICAgIC0gSW1wbGVtZW50IGNhbGxPbk1haW5UaHJlYWQg
Zm9yIEZ1bmN0aW9uIG9iamVjdHMuIFRoZSBub24tQ2hyb21pdW0KKyAgICAgICAgICAgICAgaW1w
bGVtZW50YXRpb24gb2YgTWFpblRocmVhZC5jcHAgYWxyZWFkeSBpbXBsZW1lbnRzIHRoaXMgZmVh
dHVyZS4KKwogMjAxMy0wMS0yMyAgSnVzdGluIFNjaHVoICA8anNjaHVoQGNocm9taXVtLm9yZz4K
IAogICAgICAgICBbQ0hST01JVU1dIFN1cHByZXNzIGM0MjY3IGJ1aWxkIHdhcm5pbmdzIGluIFdU
RiBmb3IgV2luNjQgdGFyZ2V0cwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9n
IGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IGZmMTRkYTRkZWRmM2EyY2MwYzM3YzI1
NThhNzc2ZTJmMDgzNTQ0NzcuLmM4ZGIzNDFhZTBhNDQxNzEzOWYwNjcwNzczMTgyZWUyMjYyMjhk
MzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzMCBAQAorMjAxMy0wMS0yMyAgQWRhbSBCYXJ0aCAg
PGFiYXJ0aEB3ZWJraXQub3JnPgorCisgICAgICAgIEJhY2tncm91bmRIVE1MUGFyc2VyOjpzZW5k
VG9rZW5zVG9NYWluVGhyZWFkIHNob3VsZCB1c2UgYmluZAorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTA3NjM3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhpcyBwYXRjaCByZXBsYWNlcyBvdXIgaGFuZC13
cml0dGVuIGltcGxlbWVudGF0aW9uIG9mIGJpbmQgZm9yCisgICAgICAgIGRpZFJlY2VpdmVUb2tl
bnNGcm9tQmFja2dyb3VuZFBhcnNlciB3aXRoIGJpbmQgZnJvbSBGdW5jdGlvbmFsLmguIFRvCisg
ICAgICAgIHVzZSB0aGUgZ2VuZXJpYyB2ZXJzaW9uIG9mIGJpbmQsIHdlIG5lZWQgdG8gc3dpdGNo
IHRvIHVzaW5nIFdlYWtQdHIgdG8KKyAgICAgICAgaG9sZCBhIHJlZmVyZW5jZSB0byB0aGUgbWFp
biB0aHJlYWQgcGFyc2VyIGluIHRoZSBCYWNrZ3JvdW5kSFRNTFBhcnNlci4KKworICAgICAgICAq
IGh0bWwvcGFyc2VyL0JhY2tncm91bmRIVE1MUGFyc2VyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OkJhY2tncm91bmRIVE1MUGFyc2VyOjpCYWNrZ3JvdW5kSFRNTFBhcnNlcik6CisgICAgICAgIChX
ZWJDb3JlOjpCYWNrZ3JvdW5kSFRNTFBhcnNlcjo6c2VuZFRva2Vuc1RvTWFpblRocmVhZCk6Cisg
ICAgICAgIChXZWJDb3JlOjpCYWNrZ3JvdW5kSFRNTFBhcnNlcjo6Y3JlYXRlUGFydGlhbCk6Cisg
ICAgICAgICogaHRtbC9wYXJzZXIvQmFja2dyb3VuZEhUTUxQYXJzZXIuaDoKKyAgICAgICAgKFdl
YkNvcmU6OkJhY2tncm91bmRIVE1MUGFyc2VyOjpjcmVhdGUpOgorICAgICAgICAoQmFja2dyb3Vu
ZEhUTUxQYXJzZXIpOgorICAgICAgICAoUGFyc2VyTWFwKToKKyAgICAgICAgKiBodG1sL3BhcnNl
ci9IVE1MRG9jdW1lbnRQYXJzZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTERvY3VtZW50
UGFyc2VyOjpIVE1MRG9jdW1lbnRQYXJzZXIpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTERvY3Vt
ZW50UGFyc2VyOjpzdGFydEJhY2tncm91bmRQYXJzZXIpOgorICAgICAgICAoV2ViQ29yZTo6SFRN
TERvY3VtZW50UGFyc2VyOjpzdG9wQmFja2dyb3VuZFBhcnNlcik6CisgICAgICAgICogaHRtbC9w
YXJzZXIvSFRNTERvY3VtZW50UGFyc2VyLmg6CisgICAgICAgIChIVE1MRG9jdW1lbnRQYXJzZXIp
OgorCiAyMDEzLTAxLTIzICBUb255IENoYW5nICA8dG9ueUBjaHJvbWl1bS5vcmc+CiAKICAgICAg
ICAgSW5jb3JyZWN0IHNjcm9sbGFibGUgaGVpZ2h0IGR1cmluZyBzaW1wbGlmaWVkIGxheW91dApk
aWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvRnVuY3Rpb25hbC5oIGIvU291cmNlL1dURi93dGYv
RnVuY3Rpb25hbC5oCmluZGV4IGM1YjcxMjRhMmMwYTE4ZDkwMzJmNjA5NTIzNmRkNDVhYWZjNTdh
MGUuLjBkOTE2OWYwOTU1MWMzZjVjNTE3NWM4ZTE5Nzc1OThmMGUxZTgyZjYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XVEYvd3RmL0Z1bmN0aW9uYWwuaAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9GdW5jdGlv
bmFsLmgKQEAgLTgzLDcgKzgzLDYgQEAgY2xhc3MgRnVuY3Rpb25XcmFwcGVyPFIgKCopKCk+IHsK
IHB1YmxpYzoKICAgICB0eXBlZGVmIFIgUmVzdWx0VHlwZTsKICAgICBzdGF0aWMgY29uc3QgYm9v
bCBzaG91bGRSZWZGaXJzdFBhcmFtZXRlciA9IGZhbHNlOwotICAgIHN0YXRpYyBjb25zdCBib29s
IHNob3VsZFZhbGlkYXRlRmlyc3RQYXJhbWV0ZXIgPSBmYWxzZTsKIAogICAgIGV4cGxpY2l0IEZ1
bmN0aW9uV3JhcHBlcihSICgqZnVuY3Rpb24pKCkpCiAgICAgICAgIDogbV9mdW5jdGlvbihmdW5j
dGlvbikKQEAgLTEwNCw3ICsxMDMsNiBAQCBjbGFzcyBGdW5jdGlvbldyYXBwZXI8UiAoKikoUDEp
PiB7CiBwdWJsaWM6CiAgICAgdHlwZWRlZiBSIFJlc3VsdFR5cGU7CiAgICAgc3RhdGljIGNvbnN0
IGJvb2wgc2hvdWxkUmVmRmlyc3RQYXJhbWV0ZXIgPSBmYWxzZTsKLSAgICBzdGF0aWMgY29uc3Qg
Ym9vbCBzaG91bGRWYWxpZGF0ZUZpcnN0UGFyYW1ldGVyID0gZmFsc2U7CiAKICAgICBleHBsaWNp
dCBGdW5jdGlvbldyYXBwZXIoUiAoKmZ1bmN0aW9uKShQMSkpCiAgICAgICAgIDogbV9mdW5jdGlv
bihmdW5jdGlvbikKQEAgLTEyNSw3ICsxMjMsNiBAQCBjbGFzcyBGdW5jdGlvbldyYXBwZXI8UiAo
KikoUDEsIFAyKT4gewogcHVibGljOgogICAgIHR5cGVkZWYgUiBSZXN1bHRUeXBlOwogICAgIHN0
YXRpYyBjb25zdCBib29sIHNob3VsZFJlZkZpcnN0UGFyYW1ldGVyID0gZmFsc2U7Ci0gICAgc3Rh
dGljIGNvbnN0IGJvb2wgc2hvdWxkVmFsaWRhdGVGaXJzdFBhcmFtZXRlciA9IGZhbHNlOwogCiAg
ICAgZXhwbGljaXQgRnVuY3Rpb25XcmFwcGVyKFIgKCpmdW5jdGlvbikoUDEsIFAyKSkKICAgICAg
ICAgOiBtX2Z1bmN0aW9uKGZ1bmN0aW9uKQpAQCAtMTQ2LDcgKzE0Myw2IEBAIGNsYXNzIEZ1bmN0
aW9uV3JhcHBlcjxSICgqKShQMSwgUDIsIFAzKT4gewogcHVibGljOgogICAgIHR5cGVkZWYgUiBS
ZXN1bHRUeXBlOwogICAgIHN0YXRpYyBjb25zdCBib29sIHNob3VsZFJlZkZpcnN0UGFyYW1ldGVy
ID0gZmFsc2U7Ci0gICAgc3RhdGljIGNvbnN0IGJvb2wgc2hvdWxkVmFsaWRhdGVGaXJzdFBhcmFt
ZXRlciA9IGZhbHNlOwogCiAgICAgZXhwbGljaXQgRnVuY3Rpb25XcmFwcGVyKFIgKCpmdW5jdGlv
bikoUDEsIFAyLCBQMykpCiAgICAgICAgIDogbV9mdW5jdGlvbihmdW5jdGlvbikKQEAgLTE2Nyw3
ICsxNjMsNiBAQCBjbGFzcyBGdW5jdGlvbldyYXBwZXI8UiAoQzo6KikoKT4gewogcHVibGljOgog
ICAgIHR5cGVkZWYgUiBSZXN1bHRUeXBlOwogICAgIHN0YXRpYyBjb25zdCBib29sIHNob3VsZFJl
ZkZpcnN0UGFyYW1ldGVyID0gSGFzUmVmQW5kRGVyZWY8Qz46OnZhbHVlOwotICAgIHN0YXRpYyBj
b25zdCBib29sIHNob3VsZFZhbGlkYXRlRmlyc3RQYXJhbWV0ZXIgPSB0cnVlOwogCiAgICAgZXhw
bGljaXQgRnVuY3Rpb25XcmFwcGVyKFIgKEM6OipmdW5jdGlvbikoKSkKICAgICAgICAgOiBtX2Z1
bmN0aW9uKGZ1bmN0aW9uKQpAQCAtMTc5LDYgKzE3NCwxNCBAQCBwdWJsaWM6CiAgICAgICAgIHJl
dHVybiAoYy0+Km1fZnVuY3Rpb24pKCk7CiAgICAgfQogCisgICAgUiBvcGVyYXRvcigpKGNvbnN0
IFdlYWtQdHI8Qz4mIGMpCisgICAgeworICAgICAgICBDKiBvYmogPSBjLmdldCgpOworICAgICAg
ICBpZiAoIW9iaikKKyAgICAgICAgICAgIHJldHVybiBSKCk7CisgICAgICAgIHJldHVybiAob2Jq
LT4qbV9mdW5jdGlvbikoKTsKKyAgICB9CisKIHByaXZhdGU6CiAgICAgUiAoQzo6Km1fZnVuY3Rp
b24pKCk7CiB9OwpAQCAtMTg4LDcgKzE5MSw2IEBAIGNsYXNzIEZ1bmN0aW9uV3JhcHBlcjxSIChD
OjoqKShQMSk+IHsKIHB1YmxpYzoKICAgICB0eXBlZGVmIFIgUmVzdWx0VHlwZTsKICAgICBzdGF0
aWMgY29uc3QgYm9vbCBzaG91bGRSZWZGaXJzdFBhcmFtZXRlciA9IEhhc1JlZkFuZERlcmVmPEM+
Ojp2YWx1ZTsKLSAgICBzdGF0aWMgY29uc3QgYm9vbCBzaG91bGRWYWxpZGF0ZUZpcnN0UGFyYW1l
dGVyID0gdHJ1ZTsKIAogICAgIGV4cGxpY2l0IEZ1bmN0aW9uV3JhcHBlcihSIChDOjoqZnVuY3Rp
b24pKFAxKSkKICAgICAgICAgOiBtX2Z1bmN0aW9uKGZ1bmN0aW9uKQpAQCAtMjAwLDYgKzIwMiwx
NCBAQCBwdWJsaWM6CiAgICAgICAgIHJldHVybiAoYy0+Km1fZnVuY3Rpb24pKHAxKTsKICAgICB9
CiAKKyAgICBSIG9wZXJhdG9yKCkoY29uc3QgV2Vha1B0cjxDPiYgYywgUDEgcDEpCisgICAgewor
ICAgICAgICBDKiBvYmogPSBjLmdldCgpOworICAgICAgICBpZiAoIW9iaikKKyAgICAgICAgICAg
IHJldHVybiBSKCk7CisgICAgICAgIHJldHVybiAob2JqLT4qbV9mdW5jdGlvbikocDEpOworICAg
IH0KKwogcHJpdmF0ZToKICAgICBSIChDOjoqbV9mdW5jdGlvbikoUDEpOwogfTsKQEAgLTIwOSw3
ICsyMTksNiBAQCBjbGFzcyBGdW5jdGlvbldyYXBwZXI8UiAoQzo6KikoUDEsIFAyKT4gewogcHVi
bGljOgogICAgIHR5cGVkZWYgUiBSZXN1bHRUeXBlOwogICAgIHN0YXRpYyBjb25zdCBib29sIHNo
b3VsZFJlZkZpcnN0UGFyYW1ldGVyID0gSGFzUmVmQW5kRGVyZWY8Qz46OnZhbHVlOwotICAgIHN0
YXRpYyBjb25zdCBib29sIHNob3VsZFZhbGlkYXRlRmlyc3RQYXJhbWV0ZXIgPSB0cnVlOwogCiAg
ICAgZXhwbGljaXQgRnVuY3Rpb25XcmFwcGVyKFIgKEM6OipmdW5jdGlvbikoUDEsIFAyKSkKICAg
ICAgICAgOiBtX2Z1bmN0aW9uKGZ1bmN0aW9uKQpAQCAtMjIxLDYgKzIzMCwxNCBAQCBwdWJsaWM6
CiAgICAgICAgIHJldHVybiAoYy0+Km1fZnVuY3Rpb24pKHAxLCBwMik7CiAgICAgfQogCisgICAg
UiBvcGVyYXRvcigpKGNvbnN0IFdlYWtQdHI8Qz4mIGMsIFAxIHAxLCBQMiBwMikKKyAgICB7Cisg
ICAgICAgIEMqIG9iaiA9IGMuZ2V0KCk7CisgICAgICAgIGlmICghb2JqKQorICAgICAgICAgICAg
cmV0dXJuIFIoKTsKKyAgICAgICAgcmV0dXJuIChvYmotPiptX2Z1bmN0aW9uKShwMSwgcDIpOwor
ICAgIH0KKwogcHJpdmF0ZToKICAgICBSIChDOjoqbV9mdW5jdGlvbikoUDEsIFAyKTsKIH07CkBA
IC0yMzAsNyArMjQ3LDYgQEAgY2xhc3MgRnVuY3Rpb25XcmFwcGVyPFIgKEM6OiopKFAxLCBQMiwg
UDMpPiB7CiBwdWJsaWM6CiAgICAgdHlwZWRlZiBSIFJlc3VsdFR5cGU7CiAgICAgc3RhdGljIGNv
bnN0IGJvb2wgc2hvdWxkUmVmRmlyc3RQYXJhbWV0ZXIgPSBIYXNSZWZBbmREZXJlZjxDPjo6dmFs
dWU7Ci0gICAgc3RhdGljIGNvbnN0IGJvb2wgc2hvdWxkVmFsaWRhdGVGaXJzdFBhcmFtZXRlciA9
IHRydWU7CiAKICAgICBleHBsaWNpdCBGdW5jdGlvbldyYXBwZXIoUiAoQzo6KmZ1bmN0aW9uKShQ
MSwgUDIsIFAzKSkKICAgICAgICAgOiBtX2Z1bmN0aW9uKGZ1bmN0aW9uKQpAQCAtMjQyLDYgKzI1
OCwxNCBAQCBwdWJsaWM6CiAgICAgICAgIHJldHVybiAoYy0+Km1fZnVuY3Rpb24pKHAxLCBwMiwg
cDMpOwogICAgIH0KIAorICAgIFIgb3BlcmF0b3IoKShjb25zdCBXZWFrUHRyPEM+JiBjLCBQMSBw
MSwgUDIgcDIsIFAzIHAzKQorICAgIHsKKyAgICAgICAgQyogb2JqID0gYy5nZXQoKTsKKyAgICAg
ICAgaWYgKCFvYmopCisgICAgICAgICAgICByZXR1cm4gUigpOworICAgICAgICByZXR1cm4gKG9i
ai0+Km1fZnVuY3Rpb24pKHAxLCBwMiwgcDMpOworICAgIH0KKwogcHJpdmF0ZToKICAgICBSIChD
OjoqbV9mdW5jdGlvbikoUDEsIFAyLCBQMyk7CiB9OwpAQCAtMjUxLDcgKzI3NSw2IEBAIGNsYXNz
IEZ1bmN0aW9uV3JhcHBlcjxSIChDOjoqKShQMSwgUDIsIFAzLCBQNCk+IHsKIHB1YmxpYzoKICAg
ICB0eXBlZGVmIFIgUmVzdWx0VHlwZTsKICAgICBzdGF0aWMgY29uc3QgYm9vbCBzaG91bGRSZWZG
aXJzdFBhcmFtZXRlciA9IEhhc1JlZkFuZERlcmVmPEM+Ojp2YWx1ZTsKLSAgICBzdGF0aWMgY29u
c3QgYm9vbCBzaG91bGRWYWxpZGF0ZUZpcnN0UGFyYW1ldGVyID0gdHJ1ZTsKIAogICAgIGV4cGxp
Y2l0IEZ1bmN0aW9uV3JhcHBlcihSIChDOjoqZnVuY3Rpb24pKFAxLCBQMiwgUDMsIFA0KSkKICAg
ICAgICAgOiBtX2Z1bmN0aW9uKGZ1bmN0aW9uKQpAQCAtMjYzLDYgKzI4NiwxNCBAQCBwdWJsaWM6
CiAgICAgICAgIHJldHVybiAoYy0+Km1fZnVuY3Rpb24pKHAxLCBwMiwgcDMsIHA0KTsKICAgICB9
CiAKKyAgICBSIG9wZXJhdG9yKCkoY29uc3QgV2Vha1B0cjxDPiYgYywgUDEgcDEsIFAyIHAyLCBQ
MyBwMywgUDQgcDQpCisgICAgeworICAgICAgICBDKiBvYmogPSBjLmdldCgpOworICAgICAgICBp
ZiAoIW9iaikKKyAgICAgICAgICAgIHJldHVybiBSKCk7CisgICAgICAgIHJldHVybiAob2JqLT4q
bV9mdW5jdGlvbikocDEsIHAyLCBwMywgcDQpOworICAgIH0KKwogcHJpdmF0ZToKICAgICBSIChD
OjoqbV9mdW5jdGlvbikoUDEsIFAyLCBQMywgUDQpOwogfTsKQEAgLTI3Miw3ICszMDMsNiBAQCBj
bGFzcyBGdW5jdGlvbldyYXBwZXI8UiAoQzo6KikoUDEsIFAyLCBQMywgUDQsIFA1KT4gewogcHVi
bGljOgogICAgIHR5cGVkZWYgUiBSZXN1bHRUeXBlOwogICAgIHN0YXRpYyBjb25zdCBib29sIHNo
b3VsZFJlZkZpcnN0UGFyYW1ldGVyID0gSGFzUmVmQW5kRGVyZWY8Qz46OnZhbHVlOwotICAgIHN0
YXRpYyBjb25zdCBib29sIHNob3VsZFZhbGlkYXRlRmlyc3RQYXJhbWV0ZXIgPSB0cnVlOwogCiAg
ICAgZXhwbGljaXQgRnVuY3Rpb25XcmFwcGVyKFIgKEM6OipmdW5jdGlvbikoUDEsIFAyLCBQMywg
UDQsIFA1KSkKICAgICAgICAgOiBtX2Z1bmN0aW9uKGZ1bmN0aW9uKQpAQCAtMjg0LDYgKzMxNCwx
NCBAQCBwdWJsaWM6CiAgICAgICAgIHJldHVybiAoYy0+Km1fZnVuY3Rpb24pKHAxLCBwMiwgcDMs
IHA0LCBwNSk7CiAgICAgfQogCisgICAgUiBvcGVyYXRvcigpKGNvbnN0IFdlYWtQdHI8Qz4mIGMs
IFAxIHAxLCBQMiBwMiwgUDMgcDMsIFA0IHA0LCBQNSBwNSkKKyAgICB7CisgICAgICAgIEMqIG9i
aiA9IGMuZ2V0KCk7CisgICAgICAgIGlmICghb2JqKQorICAgICAgICAgICAgcmV0dXJuIFIoKTsK
KyAgICAgICAgcmV0dXJuIChvYmotPiptX2Z1bmN0aW9uKShwMSwgcDIsIHAzLCBwNCwgcDUpOwor
ICAgIH0KKwogcHJpdmF0ZToKICAgICBSIChDOjoqbV9mdW5jdGlvbikoUDEsIFAyLCBQMywgUDQs
IFA1KTsKIH07CkBAIC0yOTQsNyArMzMyLDYgQEAgY2xhc3MgRnVuY3Rpb25XcmFwcGVyPFIgKF4p
KCk+IHsKIHB1YmxpYzoKICAgICB0eXBlZGVmIFIgUmVzdWx0VHlwZTsKICAgICBzdGF0aWMgY29u
c3QgYm9vbCBzaG91bGRSZWZGaXJzdFBhcmFtZXRlciA9IGZhbHNlOwotICAgIHN0YXRpYyBjb25z
dCBib29sIHNob3VsZFZhbGlkYXRlRmlyc3RQYXJhbWV0ZXIgPSBmYWxzZTsKIAogICAgIGV4cGxp
Y2l0IEZ1bmN0aW9uV3JhcHBlcihSICheYmxvY2spKCkpCiAgICAgICAgIDogbV9ibG9jayhCbG9j
a19jb3B5KGJsb2NrKSkKQEAgLTMzNSw3ICszNzIsNiBAQCB0ZW1wbGF0ZTx0eXBlbmFtZSBUPiBz
dHJ1Y3QgUGFyYW1TdG9yYWdlVHJhaXRzIHsKICAgICB0eXBlZGVmIFQgU3RvcmFnZVR5cGU7CiAK
ICAgICBzdGF0aWMgU3RvcmFnZVR5cGUgd3JhcChjb25zdCBUJiB2YWx1ZSkgeyByZXR1cm4gdmFs
dWU7IH0KLSAgICBzdGF0aWMgYm9vbCB2YWxpZGF0ZShjb25zdCBTdG9yYWdlVHlwZSYpIHsgcmV0
dXJuIHRydWU7IH0KICAgICBzdGF0aWMgY29uc3QgVCYgdW53cmFwKGNvbnN0IFN0b3JhZ2VUeXBl
JiB2YWx1ZSkgeyByZXR1cm4gdmFsdWU7IH0KIH07CiAKQEAgLTM0Myw3ICszNzksNiBAQCB0ZW1w
bGF0ZTx0eXBlbmFtZSBUPiBzdHJ1Y3QgUGFyYW1TdG9yYWdlVHJhaXRzPFBhc3NSZWZQdHI8VD4g
PiB7CiAgICAgdHlwZWRlZiBSZWZQdHI8VD4gU3RvcmFnZVR5cGU7CiAKICAgICBzdGF0aWMgU3Rv
cmFnZVR5cGUgd3JhcChQYXNzUmVmUHRyPFQ+IHZhbHVlKSB7IHJldHVybiB2YWx1ZTsgfQotICAg
IHN0YXRpYyBib29sIHZhbGlkYXRlKGNvbnN0IFN0b3JhZ2VUeXBlJikgeyByZXR1cm4gdHJ1ZTsg
fQogICAgIHN0YXRpYyBUKiB1bndyYXAoY29uc3QgU3RvcmFnZVR5cGUmIHZhbHVlKSB7IHJldHVy
biB2YWx1ZS5nZXQoKTsgfQogfTsKIApAQCAtMzUxLDI2ICszODYsMTUgQEAgdGVtcGxhdGU8dHlw
ZW5hbWUgVD4gc3RydWN0IFBhcmFtU3RvcmFnZVRyYWl0czxSZWZQdHI8VD4gPiB7CiAgICAgdHlw
ZWRlZiBSZWZQdHI8VD4gU3RvcmFnZVR5cGU7CiAKICAgICBzdGF0aWMgU3RvcmFnZVR5cGUgd3Jh
cChSZWZQdHI8VD4gdmFsdWUpIHsgcmV0dXJuIHZhbHVlLnJlbGVhc2UoKTsgfQotICAgIHN0YXRp
YyBib29sIHZhbGlkYXRlKGNvbnN0IFN0b3JhZ2VUeXBlJikgeyByZXR1cm4gdHJ1ZTsgfQogICAg
IHN0YXRpYyBUKiB1bndyYXAoY29uc3QgU3RvcmFnZVR5cGUmIHZhbHVlKSB7IHJldHVybiB2YWx1
ZS5nZXQoKTsgfQogfTsKIAotdGVtcGxhdGU8dHlwZW5hbWUgVD4gc3RydWN0IFBhcmFtU3RvcmFn
ZVRyYWl0czxXZWFrUHRyPFQ+ID4gewotICAgIHR5cGVkZWYgV2Vha1B0cjxUPiBTdG9yYWdlVHlw
ZTsKLQotICAgIHN0YXRpYyBTdG9yYWdlVHlwZSB3cmFwKFdlYWtQdHI8VD4gdmFsdWUpIHsgcmV0
dXJuIHZhbHVlOyB9Ci0gICAgc3RhdGljIGJvb2wgdmFsaWRhdGUoY29uc3QgU3RvcmFnZVR5cGUm
IHZhbHVlKSB7IHJldHVybiB2YWx1ZS5nZXQoKTsgfQotICAgIHN0YXRpYyBUKiB1bndyYXAoY29u
c3QgU3RvcmFnZVR5cGUmIHZhbHVlKSB7IHJldHVybiB2YWx1ZS5nZXQoKTsgfQotfTsKLQotCiB0
ZW1wbGF0ZTx0eXBlbmFtZT4gY2xhc3MgUmV0YWluUHRyOwogCiB0ZW1wbGF0ZTx0eXBlbmFtZSBU
PiBzdHJ1Y3QgUGFyYW1TdG9yYWdlVHJhaXRzPFJldGFpblB0cjxUPiA+IHsKICAgICB0eXBlZGVm
IFJldGFpblB0cjxUPiBTdG9yYWdlVHlwZTsKIAogICAgIHN0YXRpYyBTdG9yYWdlVHlwZSB3cmFw
KGNvbnN0IFJldGFpblB0cjxUPiYgdmFsdWUpIHsgcmV0dXJuIHZhbHVlOyB9Ci0gICAgc3RhdGlj
IGJvb2wgdmFsaWRhdGUoY29uc3QgU3RvcmFnZVR5cGUmKSB7IHJldHVybiB0cnVlOyB9CiAgICAg
c3RhdGljIHR5cGVuYW1lIFJldGFpblB0cjxUPjo6UHRyVHlwZSB1bndyYXAoY29uc3QgU3RvcmFn
ZVR5cGUmIHZhbHVlKSB7IHJldHVybiB2YWx1ZS5nZXQoKTsgfQogfTsKIApAQCAtNDI1LDggKzQ0
OSw2IEBAIHB1YmxpYzoKIAogICAgIHZpcnR1YWwgdHlwZW5hbWUgRnVuY3Rpb25XcmFwcGVyOjpS
ZXN1bHRUeXBlIG9wZXJhdG9yKCkoKQogICAgIHsKLSAgICAgICAgaWYgKEZ1bmN0aW9uV3JhcHBl
cjo6c2hvdWxkVmFsaWRhdGVGaXJzdFBhcmFtZXRlciAmJiAhUGFyYW1TdG9yYWdlVHJhaXRzPFAx
Pjo6dmFsaWRhdGUobV9wMSkpCi0gICAgICAgICAgICByZXR1cm4gdHlwZW5hbWUgRnVuY3Rpb25X
cmFwcGVyOjpSZXN1bHRUeXBlKCk7CiAgICAgICAgIHJldHVybiBtX2Z1bmN0aW9uV3JhcHBlcihQ
YXJhbVN0b3JhZ2VUcmFpdHM8UDE+Ojp1bndyYXAobV9wMSkpOwogICAgIH0KIApAQCAtNDUzLDgg
KzQ3NSw2IEBAIHB1YmxpYzoKIAogICAgIHZpcnR1YWwgdHlwZW5hbWUgRnVuY3Rpb25XcmFwcGVy
OjpSZXN1bHRUeXBlIG9wZXJhdG9yKCkoKQogICAgIHsKLSAgICAgICAgaWYgKEZ1bmN0aW9uV3Jh
cHBlcjo6c2hvdWxkVmFsaWRhdGVGaXJzdFBhcmFtZXRlciAmJiAhUGFyYW1TdG9yYWdlVHJhaXRz
PFAxPjo6dmFsaWRhdGUobV9wMSkpCi0gICAgICAgICAgICByZXR1cm4gdHlwZW5hbWUgRnVuY3Rp
b25XcmFwcGVyOjpSZXN1bHRUeXBlKCk7CiAgICAgICAgIHJldHVybiBtX2Z1bmN0aW9uV3JhcHBl
cihQYXJhbVN0b3JhZ2VUcmFpdHM8UDE+Ojp1bndyYXAobV9wMSksIFBhcmFtU3RvcmFnZVRyYWl0
czxQMj46OnVud3JhcChtX3AyKSk7CiAgICAgfQogCkBAIC00ODMsOCArNTAzLDYgQEAgcHVibGlj
OgogCiAgICAgdmlydHVhbCB0eXBlbmFtZSBGdW5jdGlvbldyYXBwZXI6OlJlc3VsdFR5cGUgb3Bl
cmF0b3IoKSgpCiAgICAgewotICAgICAgICBpZiAoRnVuY3Rpb25XcmFwcGVyOjpzaG91bGRWYWxp
ZGF0ZUZpcnN0UGFyYW1ldGVyICYmICFQYXJhbVN0b3JhZ2VUcmFpdHM8UDE+Ojp2YWxpZGF0ZSht
X3AxKSkKLSAgICAgICAgICAgIHJldHVybiB0eXBlbmFtZSBGdW5jdGlvbldyYXBwZXI6OlJlc3Vs
dFR5cGUoKTsKICAgICAgICAgcmV0dXJuIG1fZnVuY3Rpb25XcmFwcGVyKFBhcmFtU3RvcmFnZVRy
YWl0czxQMT46OnVud3JhcChtX3AxKSwgUGFyYW1TdG9yYWdlVHJhaXRzPFAyPjo6dW53cmFwKG1f
cDIpLCBQYXJhbVN0b3JhZ2VUcmFpdHM8UDM+Ojp1bndyYXAobV9wMykpOwogICAgIH0KIApAQCAt
NTE1LDggKzUzMyw2IEBAIHB1YmxpYzoKIAogICAgIHZpcnR1YWwgdHlwZW5hbWUgRnVuY3Rpb25X
cmFwcGVyOjpSZXN1bHRUeXBlIG9wZXJhdG9yKCkoKQogICAgIHsKLSAgICAgICAgaWYgKEZ1bmN0
aW9uV3JhcHBlcjo6c2hvdWxkVmFsaWRhdGVGaXJzdFBhcmFtZXRlciAmJiAhUGFyYW1TdG9yYWdl
VHJhaXRzPFAxPjo6dmFsaWRhdGUobV9wMSkpCi0gICAgICAgICAgICByZXR1cm4gdHlwZW5hbWUg
RnVuY3Rpb25XcmFwcGVyOjpSZXN1bHRUeXBlKCk7CiAgICAgICAgIHJldHVybiBtX2Z1bmN0aW9u
V3JhcHBlcihQYXJhbVN0b3JhZ2VUcmFpdHM8UDE+Ojp1bndyYXAobV9wMSksIFBhcmFtU3RvcmFn
ZVRyYWl0czxQMj46OnVud3JhcChtX3AyKSwgUGFyYW1TdG9yYWdlVHJhaXRzPFAzPjo6dW53cmFw
KG1fcDMpLCBQYXJhbVN0b3JhZ2VUcmFpdHM8UDQ+Ojp1bndyYXAobV9wNCkpOwogICAgIH0KIApA
QCAtNTQ5LDggKzU2NSw2IEBAIHB1YmxpYzoKIAogICAgIHZpcnR1YWwgdHlwZW5hbWUgRnVuY3Rp
b25XcmFwcGVyOjpSZXN1bHRUeXBlIG9wZXJhdG9yKCkoKQogICAgIHsKLSAgICAgICAgaWYgKEZ1
bmN0aW9uV3JhcHBlcjo6c2hvdWxkVmFsaWRhdGVGaXJzdFBhcmFtZXRlciAmJiAhUGFyYW1TdG9y
YWdlVHJhaXRzPFAxPjo6dmFsaWRhdGUobV9wMSkpCi0gICAgICAgICAgICByZXR1cm4gdHlwZW5h
bWUgRnVuY3Rpb25XcmFwcGVyOjpSZXN1bHRUeXBlKCk7CiAgICAgICAgIHJldHVybiBtX2Z1bmN0
aW9uV3JhcHBlcihQYXJhbVN0b3JhZ2VUcmFpdHM8UDE+Ojp1bndyYXAobV9wMSksIFBhcmFtU3Rv
cmFnZVRyYWl0czxQMj46OnVud3JhcChtX3AyKSwgUGFyYW1TdG9yYWdlVHJhaXRzPFAzPjo6dW53
cmFwKG1fcDMpLCBQYXJhbVN0b3JhZ2VUcmFpdHM8UDQ+Ojp1bndyYXAobV9wNCksIFBhcmFtU3Rv
cmFnZVRyYWl0czxQNT46OnVud3JhcChtX3A1KSk7CiAgICAgfQogCkBAIC01ODUsOCArNTk5LDYg
QEAgcHVibGljOgogCiAgICAgdmlydHVhbCB0eXBlbmFtZSBGdW5jdGlvbldyYXBwZXI6OlJlc3Vs
dFR5cGUgb3BlcmF0b3IoKSgpCiAgICAgewotICAgICAgICBpZiAoRnVuY3Rpb25XcmFwcGVyOjpz
aG91bGRWYWxpZGF0ZUZpcnN0UGFyYW1ldGVyICYmICFQYXJhbVN0b3JhZ2VUcmFpdHM8UDE+Ojp2
YWxpZGF0ZShtX3AxKSkKLSAgICAgICAgICAgIHJldHVybiB0eXBlbmFtZSBGdW5jdGlvbldyYXBw
ZXI6OlJlc3VsdFR5cGUoKTsKICAgICAgICAgcmV0dXJuIG1fZnVuY3Rpb25XcmFwcGVyKFBhcmFt
U3RvcmFnZVRyYWl0czxQMT46OnVud3JhcChtX3AxKSwgUGFyYW1TdG9yYWdlVHJhaXRzPFAyPjo6
dW53cmFwKG1fcDIpLCBQYXJhbVN0b3JhZ2VUcmFpdHM8UDM+Ojp1bndyYXAobV9wMyksIFBhcmFt
U3RvcmFnZVRyYWl0czxQND46OnVud3JhcChtX3A0KSwgUGFyYW1TdG9yYWdlVHJhaXRzPFA1Pjo6
dW53cmFwKG1fcDUpLCBQYXJhbVN0b3JhZ2VUcmFpdHM8UDY+Ojp1bndyYXAobV9wNikpOwogICAg
IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvV2Vha1B0ci5oIGIvU291cmNlL1dURi93
dGYvV2Vha1B0ci5oCmluZGV4IDBlNjQ1MDYyMDA2ZTc4NGMzZjk5MmEzZDM0YjVlMjJjODkxMGM1
YmIuLjI4OWExMGMxOGNhZTA4MDhlMzg5NDJkYmM5ZDIwNmIxODA2MTFkODggMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XVEYvd3RmL1dlYWtQdHIuaAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9XZWFrUHRyLmgK
QEAgLTk2LDYgKzk2LDE0IEBAIHB1YmxpYzoKICAgICAvLyBXZSBzaG91bGQgY29uc2lkZXIgaGF2
aW5nIGNyZWF0ZVdlYWtQdHIgcG9wdWxhdGUgbV9yZWYgdGhlIGZpcnN0IHRpbWUgY3JlYXRlV2Vh
a1B0ciBpcyBjYWxsZWQuCiAgICAgV2Vha1B0cjxUPiBjcmVhdGVXZWFrUHRyKCkgeyByZXR1cm4g
V2Vha1B0cjxUPihtX3JlZik7IH0KIAorICAgIHZvaWQgcmV2b2tlQWxsKCkKKyAgICB7CisgICAg
ICAgIFQqIHB0ciA9IG1fcmVmLT5nZXQoKTsKKyAgICAgICAgbV9yZWYtPmNsZWFyKCk7CisgICAg
ICAgIC8vIFdlIGNyZWF0ZSBhIG5ldyBXZWFrUmVmZXJlbmNlIHNvIHRoYXQgZnV0dXJlIGNhbGxz
IHRvIGNyZWF0ZVdlYWtQdHIoKSBjcmVhdGUgbm9uemVybyBXZWFrUHRycy4KKyAgICAgICAgbV9y
ZWYgPSBJbnRlcm5hbDo6V2Vha1JlZmVyZW5jZTxUPjo6Y3JlYXRlKHB0cik7CisgICAgfQorCiBw
cml2YXRlOgogICAgIFJlZlB0cjxJbnRlcm5hbDo6V2Vha1JlZmVyZW5jZTxUPiA+IG1fcmVmOwog
fTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL2Nocm9taXVtL01haW5UaHJlYWRDaHJvbWl1
bS5jcHAgYi9Tb3VyY2UvV1RGL3d0Zi9jaHJvbWl1bS9NYWluVGhyZWFkQ2hyb21pdW0uY3BwCmlu
ZGV4IDllNjU5MmI1NzE1Njc5YWUyYmM5YTZkMWEwYjZmM2I4YzllMThlODEuLjQwYjJmMDhiZGQz
MGU5NzM2ZTcxNjk4YzI2Mzg5NjUwMzEzZDlkMWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3Rm
L2Nocm9taXVtL01haW5UaHJlYWRDaHJvbWl1bS5jcHAKKysrIGIvU291cmNlL1dURi93dGYvY2hy
b21pdW0vTWFpblRocmVhZENocm9taXVtLmNwcApAQCAtMzQsNiArMzQsNyBAQAogI2luY2x1ZGUg
IkFzc2VydGlvbnMuaCIKICNpbmNsdWRlICJDaHJvbWl1bVRocmVhZGluZy5oIgogI2luY2x1ZGUg
IlRocmVhZGluZy5oIgorI2luY2x1ZGUgPHd0Zi9GdW5jdGlvbmFsLmg+CiAKIG5hbWVzcGFjZSBX
VEYgewogCkBAIC01NCw2ICs1NSwxOCBAQCB2b2lkIGNhbGxPbk1haW5UaHJlYWQoTWFpblRocmVh
ZEZ1bmN0aW9uKiBmdW5jdGlvbiwgdm9pZCogY29udGV4dCkKICAgICBDaHJvbWl1bVRocmVhZGlu
Zzo6Y2FsbE9uTWFpblRocmVhZChmdW5jdGlvbiwgY29udGV4dCk7CiB9CiAKK3N0YXRpYyB2b2lk
IGNhbGxGdW5jdGlvbk9iamVjdCh2b2lkKiBjb250ZXh0KQoreworICAgIEZ1bmN0aW9uPHZvaWQo
KT4qIGZ1bmN0aW9uID0gc3RhdGljX2Nhc3Q8RnVuY3Rpb248dm9pZCgpPio+KGNvbnRleHQpOwor
ICAgICgqZnVuY3Rpb24pKCk7CisgICAgZGVsZXRlIGZ1bmN0aW9uOworfQorCit2b2lkIGNhbGxP
bk1haW5UaHJlYWQoY29uc3QgRnVuY3Rpb248dm9pZCgpPiYgZnVuY3Rpb24pCit7CisgICAgY2Fs
bE9uTWFpblRocmVhZChjYWxsRnVuY3Rpb25PYmplY3QsIG5ldyBGdW5jdGlvbjx2b2lkKCk+KGZ1
bmN0aW9uKSk7Cit9CisKIHZvaWQgY2FsbE9uTWFpblRocmVhZEFuZFdhaXQoTWFpblRocmVhZEZ1
bmN0aW9uKiwgdm9pZCopCiB7CiAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9CYWNrZ3JvdW5kSFRNTFBhcnNlci5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9CYWNrZ3JvdW5kSFRNTFBhcnNlci5jcHAKaW5kZXgg
Y2ZkMzYzZjRkMTBmZmIxMGZiZWNlYzdjOTIwNDVlMjc2OGY3NDkwOS4uOWFlM2VhMmQ4ODI3NTk3
NDZiNTJhY2E2ZjFlMTYzZDY4MjBkMTI5MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRt
bC9wYXJzZXIvQmFja2dyb3VuZEhUTUxQYXJzZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0
bWwvcGFyc2VyL0JhY2tncm91bmRIVE1MUGFyc2VyLmNwcApAQCAtNjgsOSArNjgsNiBAQCBzdGF0
aWMgYm9vbCB0aHJlYWRTYWZlTWF0Y2goY29uc3QgU3RyaW5nJiBsb2NhbE5hbWUsIGNvbnN0IFF1
YWxpZmllZE5hbWUmIHFOYW1lKQogICAgIHJldHVybiB0aHJlYWRTYWZlRXF1YWwobG9jYWxOYW1l
LmltcGwoKSwgcU5hbWUubG9jYWxOYW1lKCkuaW1wbCgpKTsKIH0KIAotdHlwZWRlZiBjb25zdCB2
b2lkKiBQYXJzZXJJZGVudGlmaWVyOwotY2xhc3MgSFRNTERvY3VtZW50UGFyc2VyOwotCiBQYXJz
ZXJNYXAmIHBhcnNlck1hcCgpCiB7CiAgICAgLy8gVGhpcyBpbml0aWFsaXphdGlvbiBhc3N1bWVz
IHRoYXQgdGhpcyB3aWxsIGJlIGluaXRpYWxpemUgb24gdGhlIG1haW4gdGhyZWFkIGJlZm9yZQpA
QCAtODUsMTcgKzgyLDExIEBAIFBhcnNlck1hcDo6QmFja2dyb3VuZFBhcnNlck1hcCYgUGFyc2Vy
TWFwOjpiYWNrZ3JvdW5kUGFyc2VycygpCiAgICAgcmV0dXJuIG1fYmFja2dyb3VuZFBhcnNlcnM7
CiB9CiAKLVBhcnNlck1hcDo6TWFpblRocmVhZFBhcnNlck1hcCYgUGFyc2VyTWFwOjptYWluVGhy
ZWFkUGFyc2VycygpCi17Ci0gICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsKLSAgICByZXR1cm4g
bV9tYWluVGhyZWFkUGFyc2VyczsKLX0KLQotQmFja2dyb3VuZEhUTUxQYXJzZXI6OkJhY2tncm91
bmRIVE1MUGFyc2VyKGNvbnN0IEhUTUxQYXJzZXJPcHRpb25zJiBvcHRpb25zLCBQYXJzZXJJZGVu
dGlmaWVyIGlkZW50aWZpZXIpCitCYWNrZ3JvdW5kSFRNTFBhcnNlcjo6QmFja2dyb3VuZEhUTUxQ
YXJzZXIoY29uc3QgSFRNTFBhcnNlck9wdGlvbnMmIG9wdGlvbnMsIFdlYWtQdHI8SFRNTERvY3Vt
ZW50UGFyc2VyPiBwYXJzZXIpCiAgICAgOiBtX2luRm9yZWlnbkNvbnRlbnQoZmFsc2UpCiAgICAg
LCBtX3Rva2VuaXplcihIVE1MVG9rZW5pemVyOjpjcmVhdGUob3B0aW9ucykpCiAgICAgLCBtX29w
dGlvbnMob3B0aW9ucykKLSAgICAsIG1fcGFyc2VySWRlbnRpZmVyKGlkZW50aWZpZXIpCisgICAg
LCBtX3BhcnNlcihwYXJzZXIpCiAgICAgLCBtX3BlbmRpbmdUb2tlbnMoYWRvcHRQdHIobmV3IENv
bXBhY3RIVE1MVG9rZW5TdHJlYW0pKQogewogfQpAQCAtMTczLDI5ICsxNjQsNiBAQCB2b2lkIEJh
Y2tncm91bmRIVE1MUGFyc2VyOjpwdW1wVG9rZW5pemVyKCkKICAgICBzZW5kVG9rZW5zVG9NYWlu
VGhyZWFkKCk7CiB9CiAKLWNsYXNzIFRva2VuRGVsaXZlcnkgewotICAgIFdURl9NQUtFX05PTkNP
UFlBQkxFKFRva2VuRGVsaXZlcnkpOwotcHVibGljOgotICAgIFRva2VuRGVsaXZlcnkoKQotICAg
ICAgICA6IGlkZW50aWZpZXIoMCkKLSAgICB7Ci0gICAgfQotCi0gICAgUGFyc2VySWRlbnRpZmll
ciBpZGVudGlmaWVyOwotICAgIE93blB0cjxDb21wYWN0SFRNTFRva2VuU3RyZWFtPiB0b2tlbnM7
Ci0gICAgc3RhdGljIHZvaWQgZXhlY3V0ZSh2b2lkKiBjb250ZXh0KQotICAgIHsKLSAgICAgICAg
VG9rZW5EZWxpdmVyeSogZGVsaXZlcnkgPSBzdGF0aWNfY2FzdDxUb2tlbkRlbGl2ZXJ5Kj4oY29u
dGV4dCk7Ci0gICAgICAgIEhUTUxEb2N1bWVudFBhcnNlciogcGFyc2VyID0gcGFyc2VyTWFwKCku
bWFpblRocmVhZFBhcnNlcnMoKS5nZXQoZGVsaXZlcnktPmlkZW50aWZpZXIpOwotICAgICAgICBp
ZiAocGFyc2VyKQotICAgICAgICAgICAgcGFyc2VyLT5kaWRSZWNlaXZlVG9rZW5zRnJvbUJhY2tn
cm91bmRQYXJzZXIoZGVsaXZlcnktPnRva2Vucy5yZWxlYXNlKCkpOwotICAgICAgICAvLyBGSVhN
RTogSWRlYWxseSB3ZSB3b3VsZG4ndCBuZWVkIHRvIGNhbGwgZGVsZXRlIG1hbnVhbGx5LiBJbnN0
ZWFkCi0gICAgICAgIC8vIHdlIHdvdWxkIGxpa2UgYW4gQVBJIHdoZXJlIHRoZSBtZXNzYWdlIHF1
ZXVlIG93bnMgdGhlIHRhc2tzIGFuZAotICAgICAgICAvLyB0YWtlcyBjYXJlIG9mIGRlbGV0aW5n
IHRoZW0uCi0gICAgICAgIGRlbGV0ZSBkZWxpdmVyeTsKLSAgICB9Ci19OwotCiB2b2lkIEJhY2tn
cm91bmRIVE1MUGFyc2VyOjpzZW5kVG9rZW5zVG9NYWluVGhyZWFkKCkKIHsKICAgICBpZiAobV9w
ZW5kaW5nVG9rZW5zLT5pc0VtcHR5KCkpCkBAIC0yMDUsMTggKzE3MywxNSBAQCB2b2lkIEJhY2tn
cm91bmRIVE1MUGFyc2VyOjpzZW5kVG9rZW5zVG9NYWluVGhyZWFkKCkKICAgICBjaGVja1RoYXRU
b2tlbnNBcmVTYWZlVG9TZW5kVG9Bbm90aGVyVGhyZWFkKG1fcGVuZGluZ1Rva2Vucy5nZXQoKSk7
CiAjZW5kaWYKIAotICAgIFRva2VuRGVsaXZlcnkqIGRlbGl2ZXJ5ID0gbmV3IFRva2VuRGVsaXZl
cnk7Ci0gICAgZGVsaXZlcnktPmlkZW50aWZpZXIgPSBtX3BhcnNlcklkZW50aWZlcjsKLSAgICBk
ZWxpdmVyeS0+dG9rZW5zID0gbV9wZW5kaW5nVG9rZW5zLnJlbGVhc2UoKTsKLSAgICBjYWxsT25N
YWluVGhyZWFkKFRva2VuRGVsaXZlcnk6OmV4ZWN1dGUsIGRlbGl2ZXJ5KTsKKyAgICBjYWxsT25N
YWluVGhyZWFkKGJpbmQoJkhUTUxEb2N1bWVudFBhcnNlcjo6ZGlkUmVjZWl2ZVRva2Vuc0Zyb21C
YWNrZ3JvdW5kUGFyc2VyLCBtX3BhcnNlci5nZXQoKSwgbV9wZW5kaW5nVG9rZW5zLnJlbGVhc2Uo
KSkpOwogCiAgICAgbV9wZW5kaW5nVG9rZW5zID0gYWRvcHRQdHIobmV3IENvbXBhY3RIVE1MVG9r
ZW5TdHJlYW0pOwogfQogCi12b2lkIEJhY2tncm91bmRIVE1MUGFyc2VyOjpjcmVhdGVQYXJ0aWFs
KFBhcnNlcklkZW50aWZpZXIgaWRlbnRpZmllciwgSFRNTFBhcnNlck9wdGlvbnMgb3B0aW9ucykK
K3ZvaWQgQmFja2dyb3VuZEhUTUxQYXJzZXI6OmNyZWF0ZVBhcnRpYWwoUGFyc2VySWRlbnRpZmll
ciBpZGVudGlmaWVyLCBIVE1MUGFyc2VyT3B0aW9ucyBvcHRpb25zLCBXZWFrUHRyPEhUTUxEb2N1
bWVudFBhcnNlcj4gcGFyc2VyKQogewogICAgIEFTU0VSVCghcGFyc2VyTWFwKCkuYmFja2dyb3Vu
ZFBhcnNlcnMoKS5nZXQoaWRlbnRpZmllcikpOwotICAgIHBhcnNlck1hcCgpLmJhY2tncm91bmRQ
YXJzZXJzKCkuc2V0KGlkZW50aWZpZXIsIEJhY2tncm91bmRIVE1MUGFyc2VyOjpjcmVhdGUob3B0
aW9ucywgaWRlbnRpZmllcikpOworICAgIHBhcnNlck1hcCgpLmJhY2tncm91bmRQYXJzZXJzKCku
c2V0KGlkZW50aWZpZXIsIEJhY2tncm91bmRIVE1MUGFyc2VyOjpjcmVhdGUob3B0aW9ucywgcGFy
c2VyKSk7CiB9CiAKIHZvaWQgQmFja2dyb3VuZEhUTUxQYXJzZXI6OnN0b3BQYXJ0aWFsKFBhcnNl
cklkZW50aWZpZXIgaWRlbnRpZmllcikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwv
cGFyc2VyL0JhY2tncm91bmRIVE1MUGFyc2VyLmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNl
ci9CYWNrZ3JvdW5kSFRNTFBhcnNlci5oCmluZGV4IDJlNGRiNDE5YzBmNWJkMmQyYTE2ZGI5M2Jj
YTRhY2MxM2E5NmQ5MWUuLmU2ZTgyNzZmNmY4MDIyZWE4ZDUyZjkzZjQwY2IxZTFjYzA1NjkxODEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0JhY2tncm91bmRIVE1MUGFy
c2VyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvQmFja2dyb3VuZEhUTUxQYXJz
ZXIuaApAQCAtMzIsNiArMzIsNyBAQAogI2luY2x1ZGUgIkhUTUxQYXJzZXJPcHRpb25zLmgiCiAj
aW5jbHVkZSAiSFRNTFRva2VuLmgiCiAjaW5jbHVkZSAiSFRNTFRva2VuaXplci5oIgorI2luY2x1
ZGUgPHd0Zi9XZWFrUHRyLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApAQCAtNDQsMTggKzQ1
LDE4IEBAIHB1YmxpYzoKICAgICB2b2lkIGFwcGVuZChjb25zdCBTdHJpbmcmKTsKICAgICB2b2lk
IGZpbmlzaCgpOwogCi0gICAgc3RhdGljIFBhc3NPd25QdHI8QmFja2dyb3VuZEhUTUxQYXJzZXI+
IGNyZWF0ZShjb25zdCBIVE1MUGFyc2VyT3B0aW9ucyYgb3B0aW9ucywgUGFyc2VySWRlbnRpZmll
ciBpZGVudGlmaWVyKQorICAgIHN0YXRpYyBQYXNzT3duUHRyPEJhY2tncm91bmRIVE1MUGFyc2Vy
PiBjcmVhdGUoY29uc3QgSFRNTFBhcnNlck9wdGlvbnMmIG9wdGlvbnMsIFdlYWtQdHI8SFRNTERv
Y3VtZW50UGFyc2VyPiBwYXJzZXIpCiAgICAgewotICAgICAgICByZXR1cm4gYWRvcHRQdHIobmV3
IEJhY2tncm91bmRIVE1MUGFyc2VyKG9wdGlvbnMsIGlkZW50aWZpZXIpKTsKKyAgICAgICAgcmV0
dXJuIGFkb3B0UHRyKG5ldyBCYWNrZ3JvdW5kSFRNTFBhcnNlcihvcHRpb25zLCBwYXJzZXIpKTsK
ICAgICB9CiAKLSAgICBzdGF0aWMgdm9pZCBjcmVhdGVQYXJ0aWFsKFBhcnNlcklkZW50aWZpZXIs
IEhUTUxQYXJzZXJPcHRpb25zKTsKKyAgICBzdGF0aWMgdm9pZCBjcmVhdGVQYXJ0aWFsKFBhcnNl
cklkZW50aWZpZXIsIEhUTUxQYXJzZXJPcHRpb25zLCBXZWFrUHRyPEhUTUxEb2N1bWVudFBhcnNl
cj4pOwogICAgIHN0YXRpYyB2b2lkIHN0b3BQYXJ0aWFsKFBhcnNlcklkZW50aWZpZXIpOwogICAg
IHN0YXRpYyB2b2lkIGFwcGVuZFBhcnRpYWwoUGFyc2VySWRlbnRpZmllciwgY29uc3QgU3RyaW5n
JiBpbnB1dCk7CiAgICAgc3RhdGljIHZvaWQgZmluaXNoUGFydGlhbChQYXJzZXJJZGVudGlmaWVy
KTsKIAogcHJpdmF0ZToKLSAgICBleHBsaWNpdCBCYWNrZ3JvdW5kSFRNTFBhcnNlcihjb25zdCBI
VE1MUGFyc2VyT3B0aW9ucyYsIFBhcnNlcklkZW50aWZpZXIpOworICAgIEJhY2tncm91bmRIVE1M
UGFyc2VyKGNvbnN0IEhUTUxQYXJzZXJPcHRpb25zJiwgV2Vha1B0cjxIVE1MRG9jdW1lbnRQYXJz
ZXI+KTsKIAogICAgIHZvaWQgbWFya0VuZE9mRmlsZSgpOwogICAgIHZvaWQgcHVtcFRva2VuaXpl
cigpOwpAQCAtNjgsNyArNjksNyBAQCBwcml2YXRlOgogICAgIGJvb2wgbV9pbkZvcmVpZ25Db250
ZW50OyAvLyBGSVhNRTogV2UgbmVlZCBhIHN0YWNrIG9mIGZvcmVpZ24gY29udGVudCBtYXJrZXJz
LgogICAgIE93blB0cjxIVE1MVG9rZW5pemVyPiBtX3Rva2VuaXplcjsKICAgICBIVE1MUGFyc2Vy
T3B0aW9ucyBtX29wdGlvbnM7Ci0gICAgUGFyc2VySWRlbnRpZmllciBtX3BhcnNlcklkZW50aWZl
cjsKKyAgICBXZWFrUHRyPEhUTUxEb2N1bWVudFBhcnNlcj4gbV9wYXJzZXI7CiAgICAgT3duUHRy
PENvbXBhY3RIVE1MVG9rZW5TdHJlYW0+IG1fcGVuZGluZ1Rva2VuczsKIH07CiAKQEAgLTgwLDE0
ICs4MSwxMSBAQCBwdWJsaWM6CiAgICAgfQogCiAgICAgdHlwZWRlZiBIYXNoTWFwPFBhcnNlcklk
ZW50aWZpZXIsIE93blB0cjxCYWNrZ3JvdW5kSFRNTFBhcnNlcj4gPiBCYWNrZ3JvdW5kUGFyc2Vy
TWFwOwotICAgIHR5cGVkZWYgSGFzaE1hcDxQYXJzZXJJZGVudGlmaWVyLCBIVE1MRG9jdW1lbnRQ
YXJzZXIqPiBNYWluVGhyZWFkUGFyc2VyTWFwOwogCiAgICAgQmFja2dyb3VuZFBhcnNlck1hcCYg
YmFja2dyb3VuZFBhcnNlcnMoKTsKLSAgICBNYWluVGhyZWFkUGFyc2VyTWFwJiBtYWluVGhyZWFk
UGFyc2VycygpOwogCiBwcml2YXRlOgogICAgIEJhY2tncm91bmRQYXJzZXJNYXAgbV9iYWNrZ3Jv
dW5kUGFyc2VyczsKLSAgICBNYWluVGhyZWFkUGFyc2VyTWFwIG1fbWFpblRocmVhZFBhcnNlcnM7
CiB9OwogCiBQYXJzZXJNYXAmIHBhcnNlck1hcCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvaHRtbC9wYXJzZXIvSFRNTERvY3VtZW50UGFyc2VyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0
bWwvcGFyc2VyL0hUTUxEb2N1bWVudFBhcnNlci5jcHAKaW5kZXggYTRkN2MyYWEzNDY3NDYxZGVm
NmNlZDY0OWM3OWEyYWQxNzg0ZDU5Zi4uNDYxNTlmMGM2NzFhOTE1MGUxOTZjOGE4YzVjZTM0Njg3
MzBhN2ZlMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvSFRNTERvY3Vt
ZW50UGFyc2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9IVE1MRG9jdW1l
bnRQYXJzZXIuY3BwCkBAIC04Miw2ICs4Miw5IEBAIEhUTUxEb2N1bWVudFBhcnNlcjo6SFRNTERv
Y3VtZW50UGFyc2VyKEhUTUxEb2N1bWVudCogZG9jdW1lbnQsIGJvb2wgcmVwb3J0RXJyb3JzCiAg
ICAgLCBtX3RyZWVCdWlsZGVyKEhUTUxUcmVlQnVpbGRlcjo6Y3JlYXRlKHRoaXMsIGRvY3VtZW50
LCByZXBvcnRFcnJvcnMsIG1fb3B0aW9ucykpCiAgICAgLCBtX3BhcnNlclNjaGVkdWxlcihIVE1M
UGFyc2VyU2NoZWR1bGVyOjpjcmVhdGUodGhpcykpCiAgICAgLCBtX3hzc0F1ZGl0b3IodGhpcykK
KyNpZiBFTkFCTEUoVEhSRUFERURfSFRNTF9QQVJTRVIpCisgICAgLCBtX3dlYWtGYWN0b3J5KHRo
aXMpCisjZW5kaWYKICAgICAsIG1fZW5kV2FzRGVsYXllZChmYWxzZSkKICAgICAsIG1faGF2ZUJh
Y2tncm91bmRQYXJzZXIoZmFsc2UpCiAgICAgLCBtX3B1bXBTZXNzaW9uTmVzdGluZ0xldmVsKDAp
CkBAIC05Niw2ICs5OSw5IEBAIEhUTUxEb2N1bWVudFBhcnNlcjo6SFRNTERvY3VtZW50UGFyc2Vy
KERvY3VtZW50RnJhZ21lbnQqIGZyYWdtZW50LCBFbGVtZW50KiBjb250CiAgICAgLCBtX3Rva2Vu
aXplcihIVE1MVG9rZW5pemVyOjpjcmVhdGUobV9vcHRpb25zKSkKICAgICAsIG1fdHJlZUJ1aWxk
ZXIoSFRNTFRyZWVCdWlsZGVyOjpjcmVhdGUodGhpcywgZnJhZ21lbnQsIGNvbnRleHRFbGVtZW50
LCBzY3JpcHRpbmdQZXJtaXNzaW9uLCBtX29wdGlvbnMpKQogICAgICwgbV94c3NBdWRpdG9yKHRo
aXMpCisjaWYgRU5BQkxFKFRIUkVBREVEX0hUTUxfUEFSU0VSKQorICAgICwgbV93ZWFrRmFjdG9y
eSh0aGlzKQorI2VuZGlmCiAgICAgLCBtX2VuZFdhc0RlbGF5ZWQoZmFsc2UpCiAgICAgLCBtX2hh
dmVCYWNrZ3JvdW5kUGFyc2VyKGZhbHNlKQogICAgICwgbV9wdW1wU2Vzc2lvbk5lc3RpbmdMZXZl
bCgwKQpAQCAtNDU2LDkgKzQ2Miw4IEBAIHZvaWQgSFRNTERvY3VtZW50UGFyc2VyOjpzdGFydEJh
Y2tncm91bmRQYXJzZXIoKQogICAgIG1faGF2ZUJhY2tncm91bmRQYXJzZXIgPSB0cnVlOwogCiAg
ICAgUGFyc2VySWRlbnRpZmllciBpZGVudGlmaWVyID0gUGFyc2VyTWFwOjppZGVudGlmaWVyRm9y
UGFyc2VyKHRoaXMpOwotICAgIHBhcnNlck1hcCgpLm1haW5UaHJlYWRQYXJzZXJzKCkuc2V0KGlk
ZW50aWZpZXIsIHRoaXMpOwotCi0gICAgSFRNTFBhcnNlclRocmVhZDo6c2hhcmVkKCktPnBvc3RU
YXNrKGJpbmQoJkJhY2tncm91bmRIVE1MUGFyc2VyOjpjcmVhdGVQYXJ0aWFsLCBpZGVudGlmaWVy
LCBtX29wdGlvbnMpKTsKKyAgICBXZWFrUHRyPEhUTUxEb2N1bWVudFBhcnNlcj4gcGFyc2VyID0g
bV93ZWFrRmFjdG9yeS5jcmVhdGVXZWFrUHRyKCk7CisgICAgSFRNTFBhcnNlclRocmVhZDo6c2hh
cmVkKCktPnBvc3RUYXNrKGJpbmQoJkJhY2tncm91bmRIVE1MUGFyc2VyOjpjcmVhdGVQYXJ0aWFs
LCBpZGVudGlmaWVyLCBtX29wdGlvbnMsIHBhcnNlcikpOwogfQogCiB2b2lkIEhUTUxEb2N1bWVu
dFBhcnNlcjo6c3RvcEJhY2tncm91bmRQYXJzZXIoKQpAQCAtNDY5LDkgKzQ3NCw3IEBAIHZvaWQg
SFRNTERvY3VtZW50UGFyc2VyOjpzdG9wQmFja2dyb3VuZFBhcnNlcigpCiAKICAgICBQYXJzZXJJ
ZGVudGlmaWVyIGlkZW50aWZpZXIgPSBQYXJzZXJNYXA6OmlkZW50aWZpZXJGb3JQYXJzZXIodGhp
cyk7CiAgICAgSFRNTFBhcnNlclRocmVhZDo6c2hhcmVkKCktPnBvc3RUYXNrKGJpbmQoJkJhY2tn
cm91bmRIVE1MUGFyc2VyOjpzdG9wUGFydGlhbCwgaWRlbnRpZmllcikpOwotCi0gICAgcGFyc2Vy
TWFwKCkubWFpblRocmVhZFBhcnNlcnMoKS5zZXQoaWRlbnRpZmllciwgMCk7Ci0gICAgLy8gV2Ug
d2lsbCBub3QgcmVjaWV2ZSBhbnkgbWVzc2FnZXMgZnJvbSB0aGUgcGFyc2VyIGFmdGVyIHRoaXMg
cG9pbnQuCisgICAgbV93ZWFrRmFjdG9yeS5yZXZva2VBbGwoKTsKIH0KIAogI2VuZGlmCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9IVE1MRG9jdW1lbnRQYXJzZXIuaCBi
L1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxEb2N1bWVudFBhcnNlci5oCmluZGV4IGI3
ZjBjYWIzY2VmZDZlNzIzZTY5OTNlMGI1YTg0YzQyZGZmNWVlNjAuLmYxOWNiMTIyOTQ1ZWY1OTYx
ZjE3ZjcwYjk1ZGVkMzM0ODRiNWJjMWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwv
cGFyc2VyL0hUTUxEb2N1bWVudFBhcnNlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFy
c2VyL0hUTUxEb2N1bWVudFBhcnNlci5oCkBAIC0zOSw2ICszOSw3IEBACiAjaW5jbHVkZSAiWFNT
QXVkaXRvci5oIgogI2luY2x1ZGUgPHd0Zi9EZXF1ZS5oPgogI2luY2x1ZGUgPHd0Zi9Pd25QdHIu
aD4KKyNpbmNsdWRlIDx3dGYvV2Vha1B0ci5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1RleHRQb3Np
dGlvbi5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBAIC0xNzEsNiArMTcyLDcgQEAgcHJpdmF0
ZToKIAogI2lmIEVOQUJMRShUSFJFQURFRF9IVE1MX1BBUlNFUikKICAgICBEZXF1ZTxPd25QdHI8
Q29tcGFjdEhUTUxUb2tlblN0cmVhbT4gPiBtX3BlbmRpbmdUb2tlbnM7CisgICAgV2Vha1B0ckZh
Y3Rvcnk8SFRNTERvY3VtZW50UGFyc2VyPiBtX3dlYWtGYWN0b3J5OwogI2VuZGlmCiAKICAgICBi
b29sIG1fZW5kV2FzRGVsYXllZDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViS2l0LnZj
eHByb2ovV2ViS2l0LnNsbiBiL1NvdXJjZS9XZWJLaXQvV2ViS2l0LnZjeHByb2ovV2ViS2l0LnNs
bgppbmRleCBkOTNkMjI0YWZlY2Y3MmM4Zjc1OTFlMGEzMTk5ZDM2ZTQwZmQ3NmUxLi4yMTIwNDg4
ZGU5NjM2OTJlMTQxYTQ0ZjU3OWM4ZjQyZWQ5MDhlM2M5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1dlYktpdC52Y3hwcm9qL1dlYktpdC5zbG4KKysrIGIvU291cmNlL1dlYktpdC9XZWJLaXQu
dmN4cHJvai9XZWJLaXQuc2xuCkBAIC0xLDE4NiArMSwxODYgQEAKLe+7vw0KLU1pY3Jvc29mdCBW
aXN1YWwgU3R1ZGlvIFNvbHV0aW9uIEZpbGUsIEZvcm1hdCBWZXJzaW9uIDExLjAwDQotIyBWaXN1
YWwgU3R1ZGlvIDIwMTANCi1Qcm9qZWN0KCJ7MjE1MEUzMzMtOEZEQy00MkEzLTk0NzQtMUEzOTU2
RDQ2REU4fSIpID0gIldURiIsICJXVEYiLCAiezdGOTgyQ0FELTIyNUItNEZDRS05OTM3LTNCNzJD
MTREOTY4RH0iDQotRW5kUHJvamVjdA0KLVByb2plY3QoInsyMTUwRTMzMy04RkRDLTQyQTMtOTQ3
NC0xQTM5NTZENDZERTh9IikgPSAiSmF2YVNjcmlwdENvcmUiLCAiSmF2YVNjcmlwdENvcmUiLCAi
e0Y5RjVFN0ZFLTVDNUYtNENFOS04NjY1LUE4NDYzM0Y0OUUxMn0iDQotRW5kUHJvamVjdA0KLVBy
b2plY3QoInsyMTUwRTMzMy04RkRDLTQyQTMtOTQ3NC0xQTM5NTZENDZERTh9IikgPSAiV2ViQ29y
ZSIsICJXZWJDb3JlIiwgIns0QTg5NDU4OC1BOTUxLTRFNzYtQTA4NS01MEUxMDMwNERDNDB9Ig0K
LUVuZFByb2plY3QNCi1Qcm9qZWN0KCJ7MjE1MEUzMzMtOEZEQy00MkEzLTk0NzQtMUEzOTU2RDQ2
REU4fSIpID0gIldlYktpdFN5c3RlbUludGVyZmFjZSIsICJXZWJLaXRTeXN0ZW1JbnRlcmZhY2Ui
LCAie0MwRjRGMTM4LUNCMzgtNERCNi05RDhFLTI1QkVBMTQ5RTlCNn0iDQotRW5kUHJvamVjdA0K
LVByb2plY3QoIns4QkM5Q0VCOC04QjRBLTExRDAtOEQxMS0wMEEwQzkxQkM5NDJ9IikgPSAiV2Vi
S2l0U3lzdGVtSW50ZXJmYWNlR2VuZXJhdGVkIiwgIi4uXC4uXC4uXC4uXEludGVybmFsXFdlYktp
dFN5c3RlbUludGVyZmFjZVx3aW5cV2ViS2l0U3lzdGVtSW50ZXJmYWNlR2VuZXJhdGVkLnZjeHBy
b2oiLCAie0RGQTBCQzAzLTNENjItNDAzMC04ODEyLUM1QjI5NkM4NDhCMn0iDQotCVByb2plY3RT
ZWN0aW9uKFByb2plY3REZXBlbmRlbmNpZXMpID0gcG9zdFByb2plY3QNCi0JCXsyMjQxM0Q0MS0z
QTE4LTQyQjctOTJBOC1DRURDNkNFODY5MjB9ID0gezIyNDEzRDQxLTNBMTgtNDJCNy05MkE4LUNF
REM2Q0U4NjkyMH0NCi0JRW5kUHJvamVjdFNlY3Rpb24NCi1FbmRQcm9qZWN0DQotUHJvamVjdCgi
ezhCQzlDRUI4LThCNEEtMTFEMC04RDExLTAwQTBDOTFCQzk0Mn0iKSA9ICJXZWJLaXRTeXN0ZW1J
bnRlcmZhY2UiLCAiLi5cLi5cLi5cLi5cSW50ZXJuYWxcV2ViS2l0U3lzdGVtSW50ZXJmYWNlXHdp
blxXZWJLaXRTeXN0ZW1JbnRlcmZhY2UudmN4cHJvaiIsICJ7NUExRERDNEQtMTUxNy00MzE1LUI3
NkEtMzk5MzMxMjNCMjIyfSINCi0JUHJvamVjdFNlY3Rpb24oUHJvamVjdERlcGVuZGVuY2llcykg
PSBwb3N0UHJvamVjdA0KLQkJe0RGQTBCQzAzLTNENjItNDAzMC04ODEyLUM1QjI5NkM4NDhCMn0g
PSB7REZBMEJDMDMtM0Q2Mi00MDMwLTg4MTItQzVCMjk2Qzg0OEIyfQ0KLQlFbmRQcm9qZWN0U2Vj
dGlvbg0KLUVuZFByb2plY3QNCi1Qcm9qZWN0KCJ7MjE1MEUzMzMtOEZEQy00MkEzLTk0NzQtMUEz
OTU2RDQ2REU4fSIpID0gIldlYktpdFF1YXJ0ekNvcmVBZGRpdGlvbnMiLCAiV2ViS2l0UXVhcnR6
Q29yZUFkZGl0aW9ucyIsICJ7MjEzNkQ1QjMtMzkxNS00M0Q4LTlBMkMtMEQ5NkI3QjVGNzlCfSIN
Ci1FbmRQcm9qZWN0DQotUHJvamVjdCgiezhCQzlDRUI4LThCNEEtMTFEMC04RDExLTAwQTBDOTFC
Qzk0Mn0iKSA9ICJXZWJLaXRRdWFydHpDb3JlQWRkaXRpb25zIiwgIi4uXC4uXC4uXC4uXEludGVy
bmFsXFdlYktpdFF1YXJ0ekNvcmVBZGRpdGlvbnNcV2ViS2l0UXVhcnR6Q29yZUFkZGl0aW9ucy52
Y3hwcm9qIiwgIns2RjgwQkI3RC1EQTY2LTQ4REYtODJEMi01MTRCOUM1QTBEMzh9Ig0KLQlQcm9q
ZWN0U2VjdGlvbihQcm9qZWN0RGVwZW5kZW5jaWVzKSA9IHBvc3RQcm9qZWN0DQotCQl7MkMzOTJD
NUMtQ0RCMS00OTY3LTkzQzItOUMwMEU3Rjg2NTE4fSA9IHsyQzM5MkM1Qy1DREIxLTQ5NjctOTND
Mi05QzAwRTdGODY1MTh9DQotCUVuZFByb2plY3RTZWN0aW9uDQotRW5kUHJvamVjdA0KLVByb2pl
Y3QoIns4QkM5Q0VCOC04QjRBLTExRDAtOEQxMS0wMEEwQzkxQkM5NDJ9IikgPSAiV2ViS2l0UXVh
cnR6Q29yZUFkZGl0aW9uc0dlbmVyYXRlZCIsICIuLlwuLlwuLlwuLlxJbnRlcm5hbFxXZWJLaXRR
dWFydHpDb3JlQWRkaXRpb25zXFdlYktpdFF1YXJ0ekNvcmVBZGRpdGlvbnNHZW5lcmF0ZWQudmN4
cHJvaiIsICJ7MkMzOTJDNUMtQ0RCMS00OTY3LTkzQzItOUMwMEU3Rjg2NTE4fSINCi0JUHJvamVj
dFNlY3Rpb24oUHJvamVjdERlcGVuZGVuY2llcykgPSBwb3N0UHJvamVjdA0KLQkJezVBMUREQzRE
LTE1MTctNDMxNS1CNzZBLTM5OTMzMTIzQjIyMn0gPSB7NUExRERDNEQtMTUxNy00MzE1LUI3NkEt
Mzk5MzMxMjNCMjIyfQ0KLQlFbmRQcm9qZWN0U2VjdGlvbg0KLUVuZFByb2plY3QNCi1Qcm9qZWN0
KCJ7MjE1MEUzMzMtOEZEQy00MkEzLTk0NzQtMUEzOTU2RDQ2REU4fSIpID0gIldlYktpdCIsICJX
ZWJLaXQiLCAiezM5Mjg2RjQ2LUJBNzUtNDk5Ny04MDY1LTE5MDkwOTBBNjBGMH0iDQotRW5kUHJv
amVjdA0KLVByb2plY3QoIns4QkM5Q0VCOC04QjRBLTExRDAtOEQxMS0wMEEwQzkxQkM5NDJ9Iikg
PSAiSW50ZXJmYWNlcyIsICJJbnRlcmZhY2VzXEludGVyZmFjZXMudmN4cHJvaiIsICJ7MTY1OUIx
QjYtRjJBMy00NkIzLUFFMDItRkU2NUI0QTYwN0VCfSINCi0JUHJvamVjdFNlY3Rpb24oUHJvamVj
dERlcGVuZGVuY2llcykgPSBwb3N0UHJvamVjdA0KLQkJezFDMTYzMzdCLUFDRjMtNEQwMy1BQTkw
LTg1MUM1QjVFQURBNn0gPSB7MUMxNjMzN0ItQUNGMy00RDAzLUFBOTAtODUxQzVCNUVBREE2fQ0K
LQlFbmRQcm9qZWN0U2VjdGlvbg0KLUVuZFByb2plY3QNCi1Qcm9qZWN0KCJ7OEJDOUNFQjgtOEI0
QS0xMUQwLThEMTEtMDBBMEM5MUJDOTQyfSIpID0gIldURiIsICIuLlwuLlxXVEZcV1RGLnZjeHBy
b2pcV1RGLnZjeHByb2oiLCAiezhFRjczNzc5LUJFRDMtNDVCQi04MTZELTlGRjU4Mzk5QUZBNX0i
DQotCVByb2plY3RTZWN0aW9uKFByb2plY3REZXBlbmRlbmNpZXMpID0gcG9zdFByb2plY3QNCi0J
CXtGNzM2NjU5Ni0wNTIwLTQ0MzMtQjhGRi1EODQzRTMxRTUxOTl9ID0ge0Y3MzY2NTk2LTA1MjAt
NDQzMy1COEZGLUQ4NDNFMzFFNTE5OX0NCi0JRW5kUHJvamVjdFNlY3Rpb24NCi1FbmRQcm9qZWN0
DQotUHJvamVjdCgiezhCQzlDRUI4LThCNEEtMTFEMC04RDExLTAwQTBDOTFCQzk0Mn0iKSA9ICJX
VEZHZW5lcmF0ZWQiLCAiLi5cLi5cV1RGXFdURi52Y3hwcm9qXFdURkdlbmVyYXRlZC52Y3hwcm9q
IiwgIntGNzM2NjU5Ni0wNTIwLTQ0MzMtQjhGRi1EODQzRTMxRTUxOTl9Ig0KLUVuZFByb2plY3QN
Ci1Qcm9qZWN0KCJ7OEJDOUNFQjgtOEI0QS0xMUQwLThEMTEtMDBBMEM5MUJDOTQyfSIpID0gIkph
dmFTY3JpcHRDb3JlR2VuZXJhdGVkIiwgIi4uXC4uXEphdmFTY3JpcHRDb3JlXEphdmFTY3JpcHRD
b3JlLnZjeHByb2pcSmF2YVNjcmlwdENvcmVHZW5lcmF0ZWQudmN4cHJvaiIsICJ7MzY3MEQwMUYt
OTVGMy00NUE4LUI4NzgtOTQ3RUI2Q0YyMTRFfSINCi0JUHJvamVjdFNlY3Rpb24oUHJvamVjdERl
cGVuZGVuY2llcykgPSBwb3N0UHJvamVjdA0KLQkJezhFRjczNzc5LUJFRDMtNDVCQi04MTZELTlG
RjU4Mzk5QUZBNX0gPSB7OEVGNzM3NzktQkVEMy00NUJCLTgxNkQtOUZGNTgzOTlBRkE1fQ0KLQlF
bmRQcm9qZWN0U2VjdGlvbg0KLUVuZFByb2plY3QNCi1Qcm9qZWN0KCJ7OEJDOUNFQjgtOEI0QS0x
MUQwLThEMTEtMDBBMEM5MUJDOTQyfSIpID0gIkphdmFTY3JpcHRDb3JlIiwgIi4uXC4uXEphdmFT
Y3JpcHRDb3JlXEphdmFTY3JpcHRDb3JlLnZjeHByb2pcSmF2YVNjcmlwdENvcmUudmN4cHJvaiIs
ICJ7MjI0MTNENDEtM0ExOC00MkI3LTkyQTgtQ0VEQzZDRTg2OTIwfSINCi0JUHJvamVjdFNlY3Rp
b24oUHJvamVjdERlcGVuZGVuY2llcykgPSBwb3N0UHJvamVjdA0KLQkJezM2NzBEMDFGLTk1RjMt
NDVBOC1CODc4LTk0N0VCNkNGMjE0RX0gPSB7MzY3MEQwMUYtOTVGMy00NUE4LUI4NzgtOTQ3RUI2
Q0YyMTRFfQ0KLQkJezkyMjE3NDRCLTU3MTUtNEY1Ni05NTkwLTQyRjdBQjIzREQ4Qn0gPSB7OTIy
MTc0NEItNTcxNS00RjU2LTk1OTAtNDJGN0FCMjNERDhCfQ0KLQlFbmRQcm9qZWN0U2VjdGlvbg0K
LUVuZFByb2plY3QNCi1Qcm9qZWN0KCJ7OEJDOUNFQjgtOEI0QS0xMUQwLThEMTEtMDBBMEM5MUJD
OTQyfSIpID0gIkxMSW50T2Zmc2V0c0V4dHJhY3RvciIsICIuLlwuLlxKYXZhU2NyaXB0Q29yZVxK
YXZhU2NyaXB0Q29yZS52Y3hwcm9qXExMSW50LnZjcHJvalxMTEludE9mZnNldHNFeHRyYWN0b3Jc
TExJbnRPZmZzZXRzRXh0cmFjdG9yLnZjeHByb2oiLCAie0Q1OTVFM0Y2LTI0RjItNEM2MC05MzVD
LTk1RDUwQzZCM0U5Nn0iDQotCVByb2plY3RTZWN0aW9uKFByb2plY3REZXBlbmRlbmNpZXMpID0g
cG9zdFByb2plY3QNCi0JCXs4NzcxNTBBMC00MUIzLTQ3MzAtOUQ5OC0xQjgyOTgwOThCMTR9ID0g
ezg3NzE1MEEwLTQxQjMtNDczMC05RDk4LTFCODI5ODA5OEIxNH0NCi0JRW5kUHJvamVjdFNlY3Rp
b24NCi1FbmRQcm9qZWN0DQotUHJvamVjdCgiezhCQzlDRUI4LThCNEEtMTFEMC04RDExLTAwQTBD
OTFCQzk0Mn0iKSA9ICJMTEludERlc2lyZWRPZmZzZXRzIiwgIi4uXC4uXEphdmFTY3JpcHRDb3Jl
XEphdmFTY3JpcHRDb3JlLnZjeHByb2pcTExJbnQudmNwcm9qXExMSW50RGVzaXJlZE9mZnNldHNc
TExJbnREZXNpcmVkT2Zmc2V0cy52Y3hwcm9qIiwgIns4NzcxNTBBMC00MUIzLTQ3MzAtOUQ5OC0x
QjgyOTgwOThCMTR9Ig0KLQlQcm9qZWN0U2VjdGlvbihQcm9qZWN0RGVwZW5kZW5jaWVzKSA9IHBv
c3RQcm9qZWN0DQotCQl7MzY3MEQwMUYtOTVGMy00NUE4LUI4NzgtOTQ3RUI2Q0YyMTRFfSA9IHsz
NjcwRDAxRi05NUYzLTQ1QTgtQjg3OC05NDdFQjZDRjIxNEV9DQotCUVuZFByb2plY3RTZWN0aW9u
DQotRW5kUHJvamVjdA0KLVByb2plY3QoIns4QkM5Q0VCOC04QjRBLTExRDAtOEQxMS0wMEEwQzkx
QkM5NDJ9IikgPSAiTExJbnRBc3NlbWJseSIsICIuLlwuLlxKYXZhU2NyaXB0Q29yZVxKYXZhU2Ny
aXB0Q29yZS52Y3hwcm9qXExMSW50LnZjcHJvalxMTEludEFzc2VtYmx5XExMSW50QXNzZW1ibHku
dmN4cHJvaiIsICJ7OTIyMTc0NEItNTcxNS00RjU2LTk1OTAtNDJGN0FCMjNERDhCfSINCi0JUHJv
amVjdFNlY3Rpb24oUHJvamVjdERlcGVuZGVuY2llcykgPSBwb3N0UHJvamVjdA0KLQkJe0Q1OTVF
M0Y2LTI0RjItNEM2MC05MzVDLTk1RDUwQzZCM0U5Nn0gPSB7RDU5NUUzRjYtMjRGMi00QzYwLTkz
NUMtOTVENTBDNkIzRTk2fQ0KLQlFbmRQcm9qZWN0U2VjdGlvbg0KLUVuZFByb2plY3QNCi1Qcm9q
ZWN0KCJ7OEJDOUNFQjgtOEI0QS0xMUQwLThEMTEtMDBBMEM5MUJDOTQyfSIpID0gImpzYyIsICIu
LlwuLlxKYXZhU2NyaXB0Q29yZVxKYXZhU2NyaXB0Q29yZS52Y3hwcm9qXGpzY1xqc2MudmN4cHJv
aiIsICJ7MkJENDM3Q0YtQkRBQy00MTE5LTlFRDYtRTEwRUY0NkM2OUYzfSINCi0JUHJvamVjdFNl
Y3Rpb24oUHJvamVjdERlcGVuZGVuY2llcykgPSBwb3N0UHJvamVjdA0KLQkJezIyNDEzRDQxLTNB
MTgtNDJCNy05MkE4LUNFREM2Q0U4NjkyMH0gPSB7MjI0MTNENDEtM0ExOC00MkI3LTkyQTgtQ0VE
QzZDRTg2OTIwfQ0KLQlFbmRQcm9qZWN0U2VjdGlvbg0KLUVuZFByb2plY3QNCi1Qcm9qZWN0KCJ7
OEJDOUNFQjgtOEI0QS0xMUQwLThEMTEtMDBBMEM5MUJDOTQyfSIpID0gIldlYkNvcmUiLCAiLi5c
Li5cV2ViQ29yZVxXZWJDb3JlLnZjeHByb2pcV2ViQ29yZS52Y3hwcm9qIiwgInsxQzE2MzM3Qi1B
Q0YzLTREMDMtQUE5MC04NTFDNUI1RUFEQTZ9Ig0KLQlQcm9qZWN0U2VjdGlvbihQcm9qZWN0RGVw
ZW5kZW5jaWVzKSA9IHBvc3RQcm9qZWN0DQotCQl7RTQ5OENBOUQtM0JEMi00RDUyLThFMzctQzhE
Qzc2NTI2MzI1fSA9IHtFNDk4Q0E5RC0zQkQyLTRENTItOEUzNy1DOERDNzY1MjYzMjV9DQotCUVu
ZFByb2plY3RTZWN0aW9uDQotRW5kUHJvamVjdA0KLVByb2plY3QoIns4QkM5Q0VCOC04QjRBLTEx
RDAtOEQxMS0wMEEwQzkxQkM5NDJ9IikgPSAiV2ViQ29yZUdlbmVyYXRlZCIsICIuLlwuLlxXZWJD
b3JlXFdlYkNvcmUudmN4cHJvalxXZWJDb3JlR2VuZXJhdGVkLnZjeHByb2oiLCAie0E0MTU5QjZG
LTMxMDYtNEY3NS05RURELTU4MjMwN0JEQjk2QX0iDQotCVByb2plY3RTZWN0aW9uKFByb2plY3RE
ZXBlbmRlbmNpZXMpID0gcG9zdFByb2plY3QNCi0JCXs2RjgwQkI3RC1EQTY2LTQ4REYtODJEMi01
MTRCOUM1QTBEMzh9ID0gezZGODBCQjdELURBNjYtNDhERi04MkQyLTUxNEI5QzVBMEQzOH0NCi0J
RW5kUHJvamVjdFNlY3Rpb24NCi1FbmRQcm9qZWN0DQotUHJvamVjdCgiezhCQzlDRUI4LThCNEEt
MTFEMC04RDExLTAwQTBDOTFCQzk0Mn0iKSA9ICJRVE1vdmllV2luIiwgIi4uXC4uXFdlYkNvcmVc
V2ViQ29yZS52Y3hwcm9qXFFUTW92aWVXaW5cUVRNb3ZpZVdpbi52Y3hwcm9qIiwgIntFNDk4Q0E5
RC0zQkQyLTRENTItOEUzNy1DOERDNzY1MjYzMjV9Ig0KLQlQcm9qZWN0U2VjdGlvbihQcm9qZWN0
RGVwZW5kZW5jaWVzKSA9IHBvc3RQcm9qZWN0DQotCQl7QTQxNTlCNkYtMzEwNi00Rjc1LTlFREQt
NTgyMzA3QkRCOTZBfSA9IHtBNDE1OUI2Ri0zMTA2LTRGNzUtOUVERC01ODIzMDdCREI5NkF9DQot
CUVuZFByb2plY3RTZWN0aW9uDQotRW5kUHJvamVjdA0KLUdsb2JhbA0KLQlHbG9iYWxTZWN0aW9u
KFNvbHV0aW9uQ29uZmlndXJhdGlvblBsYXRmb3JtcykgPSBwcmVTb2x1dGlvbg0KLQkJRGVidWd8
V2luMzIgPSBEZWJ1Z3xXaW4zMg0KLQkJUmVsZWFzZXxXaW4zMiA9IFJlbGVhc2V8V2luMzINCi0J
RW5kR2xvYmFsU2VjdGlvbg0KLQlHbG9iYWxTZWN0aW9uKFByb2plY3RDb25maWd1cmF0aW9uUGxh
dGZvcm1zKSA9IHBvc3RTb2x1dGlvbg0KLQkJe0RGQTBCQzAzLTNENjItNDAzMC04ODEyLUM1QjI5
NkM4NDhCMn0uRGVidWd8V2luMzIuQWN0aXZlQ2ZnID0gRGVidWd8V2luMzINCi0JCXtERkEwQkMw
My0zRDYyLTQwMzAtODgxMi1DNUIyOTZDODQ4QjJ9LkRlYnVnfFdpbjMyLkJ1aWxkLjAgPSBEZWJ1
Z3xXaW4zMg0KLQkJe0RGQTBCQzAzLTNENjItNDAzMC04ODEyLUM1QjI5NkM4NDhCMn0uUmVsZWFz
ZXxXaW4zMi5BY3RpdmVDZmcgPSBSZWxlYXNlfFdpbjMyDQotCQl7REZBMEJDMDMtM0Q2Mi00MDMw
LTg4MTItQzVCMjk2Qzg0OEIyfS5SZWxlYXNlfFdpbjMyLkJ1aWxkLjAgPSBSZWxlYXNlfFdpbjMy
DQotCQl7NUExRERDNEQtMTUxNy00MzE1LUI3NkEtMzk5MzMxMjNCMjIyfS5EZWJ1Z3xXaW4zMi5B
Y3RpdmVDZmcgPSBEZWJ1Z3xXaW4zMg0KLQkJezVBMUREQzRELTE1MTctNDMxNS1CNzZBLTM5OTMz
MTIzQjIyMn0uRGVidWd8V2luMzIuQnVpbGQuMCA9IERlYnVnfFdpbjMyDQotCQl7NUExRERDNEQt
MTUxNy00MzE1LUI3NkEtMzk5MzMxMjNCMjIyfS5SZWxlYXNlfFdpbjMyLkFjdGl2ZUNmZyA9IFJl
bGVhc2V8V2luMzINCi0JCXs1QTFEREM0RC0xNTE3LTQzMTUtQjc2QS0zOTkzMzEyM0IyMjJ9LlJl
bGVhc2V8V2luMzIuQnVpbGQuMCA9IFJlbGVhc2V8V2luMzINCi0JCXs2RjgwQkI3RC1EQTY2LTQ4
REYtODJEMi01MTRCOUM1QTBEMzh9LkRlYnVnfFdpbjMyLkFjdGl2ZUNmZyA9IERlYnVnfFdpbjMy
DQotCQl7NkY4MEJCN0QtREE2Ni00OERGLTgyRDItNTE0QjlDNUEwRDM4fS5EZWJ1Z3xXaW4zMi5C
dWlsZC4wID0gRGVidWd8V2luMzINCi0JCXs2RjgwQkI3RC1EQTY2LTQ4REYtODJEMi01MTRCOUM1
QTBEMzh9LlJlbGVhc2V8V2luMzIuQWN0aXZlQ2ZnID0gUmVsZWFzZXxXaW4zMg0KLQkJezZGODBC
QjdELURBNjYtNDhERi04MkQyLTUxNEI5QzVBMEQzOH0uUmVsZWFzZXxXaW4zMi5CdWlsZC4wID0g
UmVsZWFzZXxXaW4zMg0KLQkJezJDMzkyQzVDLUNEQjEtNDk2Ny05M0MyLTlDMDBFN0Y4NjUxOH0u
RGVidWd8V2luMzIuQWN0aXZlQ2ZnID0gRGVidWd8V2luMzINCi0JCXsyQzM5MkM1Qy1DREIxLTQ5
NjctOTNDMi05QzAwRTdGODY1MTh9LkRlYnVnfFdpbjMyLkJ1aWxkLjAgPSBEZWJ1Z3xXaW4zMg0K
LQkJezJDMzkyQzVDLUNEQjEtNDk2Ny05M0MyLTlDMDBFN0Y4NjUxOH0uUmVsZWFzZXxXaW4zMi5B
Y3RpdmVDZmcgPSBSZWxlYXNlfFdpbjMyDQotCQl7MkMzOTJDNUMtQ0RCMS00OTY3LTkzQzItOUMw
MEU3Rjg2NTE4fS5SZWxlYXNlfFdpbjMyLkJ1aWxkLjAgPSBSZWxlYXNlfFdpbjMyDQotCQl7MTY1
OUIxQjYtRjJBMy00NkIzLUFFMDItRkU2NUI0QTYwN0VCfS5EZWJ1Z3xXaW4zMi5BY3RpdmVDZmcg
PSBEZWJ1Z3xXaW4zMg0KLQkJezE2NTlCMUI2LUYyQTMtNDZCMy1BRTAyLUZFNjVCNEE2MDdFQn0u
RGVidWd8V2luMzIuQnVpbGQuMCA9IERlYnVnfFdpbjMyDQotCQl7MTY1OUIxQjYtRjJBMy00NkIz
LUFFMDItRkU2NUI0QTYwN0VCfS5SZWxlYXNlfFdpbjMyLkFjdGl2ZUNmZyA9IFJlbGVhc2V8V2lu
MzINCi0JCXsxNjU5QjFCNi1GMkEzLTQ2QjMtQUUwMi1GRTY1QjRBNjA3RUJ9LlJlbGVhc2V8V2lu
MzIuQnVpbGQuMCA9IFJlbGVhc2V8V2luMzINCi0JCXs4RUY3Mzc3OS1CRUQzLTQ1QkItODE2RC05
RkY1ODM5OUFGQTV9LkRlYnVnfFdpbjMyLkFjdGl2ZUNmZyA9IERlYnVnfFdpbjMyDQotCQl7OEVG
NzM3NzktQkVEMy00NUJCLTgxNkQtOUZGNTgzOTlBRkE1fS5EZWJ1Z3xXaW4zMi5CdWlsZC4wID0g
RGVidWd8V2luMzINCi0JCXs4RUY3Mzc3OS1CRUQzLTQ1QkItODE2RC05RkY1ODM5OUFGQTV9LlJl
bGVhc2V8V2luMzIuQWN0aXZlQ2ZnID0gUmVsZWFzZXxXaW4zMg0KLQkJezhFRjczNzc5LUJFRDMt
NDVCQi04MTZELTlGRjU4Mzk5QUZBNX0uUmVsZWFzZXxXaW4zMi5CdWlsZC4wID0gUmVsZWFzZXxX
aW4zMg0KLQkJe0Y3MzY2NTk2LTA1MjAtNDQzMy1COEZGLUQ4NDNFMzFFNTE5OX0uRGVidWd8V2lu
MzIuQWN0aXZlQ2ZnID0gRGVidWd8V2luMzINCi0JCXtGNzM2NjU5Ni0wNTIwLTQ0MzMtQjhGRi1E
ODQzRTMxRTUxOTl9LkRlYnVnfFdpbjMyLkJ1aWxkLjAgPSBEZWJ1Z3xXaW4zMg0KLQkJe0Y3MzY2
NTk2LTA1MjAtNDQzMy1COEZGLUQ4NDNFMzFFNTE5OX0uUmVsZWFzZXxXaW4zMi5BY3RpdmVDZmcg
PSBSZWxlYXNlfFdpbjMyDQotCQl7RjczNjY1OTYtMDUyMC00NDMzLUI4RkYtRDg0M0UzMUU1MTk5
fS5SZWxlYXNlfFdpbjMyLkJ1aWxkLjAgPSBSZWxlYXNlfFdpbjMyDQotCQl7MzY3MEQwMUYtOTVG
My00NUE4LUI4NzgtOTQ3RUI2Q0YyMTRFfS5EZWJ1Z3xXaW4zMi5BY3RpdmVDZmcgPSBEZWJ1Z3xX
aW4zMg0KLQkJezM2NzBEMDFGLTk1RjMtNDVBOC1CODc4LTk0N0VCNkNGMjE0RX0uRGVidWd8V2lu
MzIuQnVpbGQuMCA9IERlYnVnfFdpbjMyDQotCQl7MzY3MEQwMUYtOTVGMy00NUE4LUI4NzgtOTQ3
RUI2Q0YyMTRFfS5SZWxlYXNlfFdpbjMyLkFjdGl2ZUNmZyA9IFJlbGVhc2V8V2luMzINCi0JCXsz
NjcwRDAxRi05NUYzLTQ1QTgtQjg3OC05NDdFQjZDRjIxNEV9LlJlbGVhc2V8V2luMzIuQnVpbGQu
MCA9IFJlbGVhc2V8V2luMzINCi0JCXsyMjQxM0Q0MS0zQTE4LTQyQjctOTJBOC1DRURDNkNFODY5
MjB9LkRlYnVnfFdpbjMyLkFjdGl2ZUNmZyA9IERlYnVnfFdpbjMyDQotCQl7MjI0MTNENDEtM0Ex
OC00MkI3LTkyQTgtQ0VEQzZDRTg2OTIwfS5EZWJ1Z3xXaW4zMi5CdWlsZC4wID0gRGVidWd8V2lu
MzINCi0JCXsyMjQxM0Q0MS0zQTE4LTQyQjctOTJBOC1DRURDNkNFODY5MjB9LlJlbGVhc2V8V2lu
MzIuQWN0aXZlQ2ZnID0gUmVsZWFzZXxXaW4zMg0KLQkJezIyNDEzRDQxLTNBMTgtNDJCNy05MkE4
LUNFREM2Q0U4NjkyMH0uUmVsZWFzZXxXaW4zMi5CdWlsZC4wID0gUmVsZWFzZXxXaW4zMg0KLQkJ
e0Q1OTVFM0Y2LTI0RjItNEM2MC05MzVDLTk1RDUwQzZCM0U5Nn0uRGVidWd8V2luMzIuQWN0aXZl
Q2ZnID0gRGVidWd8V2luMzINCi0JCXtENTk1RTNGNi0yNEYyLTRDNjAtOTM1Qy05NUQ1MEM2QjNF
OTZ9LkRlYnVnfFdpbjMyLkJ1aWxkLjAgPSBEZWJ1Z3xXaW4zMg0KLQkJe0Q1OTVFM0Y2LTI0RjIt
NEM2MC05MzVDLTk1RDUwQzZCM0U5Nn0uUmVsZWFzZXxXaW4zMi5BY3RpdmVDZmcgPSBSZWxlYXNl
fFdpbjMyDQotCQl7RDU5NUUzRjYtMjRGMi00QzYwLTkzNUMtOTVENTBDNkIzRTk2fS5SZWxlYXNl
fFdpbjMyLkJ1aWxkLjAgPSBSZWxlYXNlfFdpbjMyDQotCQl7ODc3MTUwQTAtNDFCMy00NzMwLTlE
OTgtMUI4Mjk4MDk4QjE0fS5EZWJ1Z3xXaW4zMi5BY3RpdmVDZmcgPSBEZWJ1Z3xXaW4zMg0KLQkJ
ezg3NzE1MEEwLTQxQjMtNDczMC05RDk4LTFCODI5ODA5OEIxNH0uRGVidWd8V2luMzIuQnVpbGQu
MCA9IERlYnVnfFdpbjMyDQotCQl7ODc3MTUwQTAtNDFCMy00NzMwLTlEOTgtMUI4Mjk4MDk4QjE0
fS5SZWxlYXNlfFdpbjMyLkFjdGl2ZUNmZyA9IFJlbGVhc2V8V2luMzINCi0JCXs4NzcxNTBBMC00
MUIzLTQ3MzAtOUQ5OC0xQjgyOTgwOThCMTR9LlJlbGVhc2V8V2luMzIuQnVpbGQuMCA9IFJlbGVh
c2V8V2luMzINCi0JCXs5MjIxNzQ0Qi01NzE1LTRGNTYtOTU5MC00MkY3QUIyM0REOEJ9LkRlYnVn
fFdpbjMyLkFjdGl2ZUNmZyA9IERlYnVnfFdpbjMyDQotCQl7OTIyMTc0NEItNTcxNS00RjU2LTk1
OTAtNDJGN0FCMjNERDhCfS5EZWJ1Z3xXaW4zMi5CdWlsZC4wID0gRGVidWd8V2luMzINCi0JCXs5
MjIxNzQ0Qi01NzE1LTRGNTYtOTU5MC00MkY3QUIyM0REOEJ9LlJlbGVhc2V8V2luMzIuQWN0aXZl
Q2ZnID0gUmVsZWFzZXxXaW4zMg0KLQkJezkyMjE3NDRCLTU3MTUtNEY1Ni05NTkwLTQyRjdBQjIz
REQ4Qn0uUmVsZWFzZXxXaW4zMi5CdWlsZC4wID0gUmVsZWFzZXxXaW4zMg0KLQkJezJCRDQzN0NG
LUJEQUMtNDExOS05RUQ2LUUxMEVGNDZDNjlGM30uRGVidWd8V2luMzIuQWN0aXZlQ2ZnID0gRGVi
dWd8V2luMzINCi0JCXsyQkQ0MzdDRi1CREFDLTQxMTktOUVENi1FMTBFRjQ2QzY5RjN9LkRlYnVn
fFdpbjMyLkJ1aWxkLjAgPSBEZWJ1Z3xXaW4zMg0KLQkJezJCRDQzN0NGLUJEQUMtNDExOS05RUQ2
LUUxMEVGNDZDNjlGM30uUmVsZWFzZXxXaW4zMi5BY3RpdmVDZmcgPSBSZWxlYXNlfFdpbjMyDQot
CQl7MkJENDM3Q0YtQkRBQy00MTE5LTlFRDYtRTEwRUY0NkM2OUYzfS5SZWxlYXNlfFdpbjMyLkJ1
aWxkLjAgPSBSZWxlYXNlfFdpbjMyDQotCQl7MUMxNjMzN0ItQUNGMy00RDAzLUFBOTAtODUxQzVC
NUVBREE2fS5EZWJ1Z3xXaW4zMi5BY3RpdmVDZmcgPSBEZWJ1Z3xXaW4zMg0KLQkJezFDMTYzMzdC
LUFDRjMtNEQwMy1BQTkwLTg1MUM1QjVFQURBNn0uRGVidWd8V2luMzIuQnVpbGQuMCA9IERlYnVn
fFdpbjMyDQotCQl7MUMxNjMzN0ItQUNGMy00RDAzLUFBOTAtODUxQzVCNUVBREE2fS5SZWxlYXNl
fFdpbjMyLkFjdGl2ZUNmZyA9IFJlbGVhc2V8V2luMzINCi0JCXsxQzE2MzM3Qi1BQ0YzLTREMDMt
QUE5MC04NTFDNUI1RUFEQTZ9LlJlbGVhc2V8V2luMzIuQnVpbGQuMCA9IFJlbGVhc2V8V2luMzIN
Ci0JCXtBNDE1OUI2Ri0zMTA2LTRGNzUtOUVERC01ODIzMDdCREI5NkF9LkRlYnVnfFdpbjMyLkFj
dGl2ZUNmZyA9IERlYnVnfFdpbjMyDQotCQl7QTQxNTlCNkYtMzEwNi00Rjc1LTlFREQtNTgyMzA3
QkRCOTZBfS5EZWJ1Z3xXaW4zMi5CdWlsZC4wID0gRGVidWd8V2luMzINCi0JCXtBNDE1OUI2Ri0z
MTA2LTRGNzUtOUVERC01ODIzMDdCREI5NkF9LlJlbGVhc2V8V2luMzIuQWN0aXZlQ2ZnID0gUmVs
ZWFzZXxXaW4zMg0KLQkJe0E0MTU5QjZGLTMxMDYtNEY3NS05RURELTU4MjMwN0JEQjk2QX0uUmVs
ZWFzZXxXaW4zMi5CdWlsZC4wID0gUmVsZWFzZXxXaW4zMg0KLQkJe0U0OThDQTlELTNCRDItNEQ1
Mi04RTM3LUM4REM3NjUyNjMyNX0uRGVidWd8V2luMzIuQWN0aXZlQ2ZnID0gRGVidWd8V2luMzIN
Ci0JCXtFNDk4Q0E5RC0zQkQyLTRENTItOEUzNy1DOERDNzY1MjYzMjV9LkRlYnVnfFdpbjMyLkJ1
aWxkLjAgPSBEZWJ1Z3xXaW4zMg0KLQkJe0U0OThDQTlELTNCRDItNEQ1Mi04RTM3LUM4REM3NjUy
NjMyNX0uUmVsZWFzZXxXaW4zMi5BY3RpdmVDZmcgPSBSZWxlYXNlfFdpbjMyDQotCQl7RTQ5OENB
OUQtM0JEMi00RDUyLThFMzctQzhEQzc2NTI2MzI1fS5SZWxlYXNlfFdpbjMyLkJ1aWxkLjAgPSBS
ZWxlYXNlfFdpbjMyDQotCUVuZEdsb2JhbFNlY3Rpb24NCi0JR2xvYmFsU2VjdGlvbihTb2x1dGlv
blByb3BlcnRpZXMpID0gcHJlU29sdXRpb24NCi0JCUhpZGVTb2x1dGlvbk5vZGUgPSBGQUxTRQ0K
LQlFbmRHbG9iYWxTZWN0aW9uDQotCUdsb2JhbFNlY3Rpb24oTmVzdGVkUHJvamVjdHMpID0gcHJl
U29sdXRpb24NCi0JCXs4RUY3Mzc3OS1CRUQzLTQ1QkItODE2RC05RkY1ODM5OUFGQTV9ID0gezdG
OTgyQ0FELTIyNUItNEZDRS05OTM3LTNCNzJDMTREOTY4RH0NCi0JCXtGNzM2NjU5Ni0wNTIwLTQ0
MzMtQjhGRi1EODQzRTMxRTUxOTl9ID0gezdGOTgyQ0FELTIyNUItNEZDRS05OTM3LTNCNzJDMTRE
OTY4RH0NCi0JCXszNjcwRDAxRi05NUYzLTQ1QTgtQjg3OC05NDdFQjZDRjIxNEV9ID0ge0Y5RjVF
N0ZFLTVDNUYtNENFOS04NjY1LUE4NDYzM0Y0OUUxMn0NCi0JCXsyMjQxM0Q0MS0zQTE4LTQyQjct
OTJBOC1DRURDNkNFODY5MjB9ID0ge0Y5RjVFN0ZFLTVDNUYtNENFOS04NjY1LUE4NDYzM0Y0OUUx
Mn0NCi0JCXtENTk1RTNGNi0yNEYyLTRDNjAtOTM1Qy05NUQ1MEM2QjNFOTZ9ID0ge0Y5RjVFN0ZF
LTVDNUYtNENFOS04NjY1LUE4NDYzM0Y0OUUxMn0NCi0JCXs4NzcxNTBBMC00MUIzLTQ3MzAtOUQ5
OC0xQjgyOTgwOThCMTR9ID0ge0Y5RjVFN0ZFLTVDNUYtNENFOS04NjY1LUE4NDYzM0Y0OUUxMn0N
Ci0JCXs5MjIxNzQ0Qi01NzE1LTRGNTYtOTU5MC00MkY3QUIyM0REOEJ9ID0ge0Y5RjVFN0ZFLTVD
NUYtNENFOS04NjY1LUE4NDYzM0Y0OUUxMn0NCi0JCXsyQkQ0MzdDRi1CREFDLTQxMTktOUVENi1F
MTBFRjQ2QzY5RjN9ID0ge0Y5RjVFN0ZFLTVDNUYtNENFOS04NjY1LUE4NDYzM0Y0OUUxMn0NCi0J
CXsxQzE2MzM3Qi1BQ0YzLTREMDMtQUE5MC04NTFDNUI1RUFEQTZ9ID0gezRBODk0NTg4LUE5NTEt
NEU3Ni1BMDg1LTUwRTEwMzA0REM0MH0NCi0JCXtBNDE1OUI2Ri0zMTA2LTRGNzUtOUVERC01ODIz
MDdCREI5NkF9ID0gezRBODk0NTg4LUE5NTEtNEU3Ni1BMDg1LTUwRTEwMzA0REM0MH0NCi0JCXtF
NDk4Q0E5RC0zQkQyLTRENTItOEUzNy1DOERDNzY1MjYzMjV9ID0gezRBODk0NTg4LUE5NTEtNEU3
Ni1BMDg1LTUwRTEwMzA0REM0MH0NCi0JCXtERkEwQkMwMy0zRDYyLTQwMzAtODgxMi1DNUIyOTZD
ODQ4QjJ9ID0ge0MwRjRGMTM4LUNCMzgtNERCNi05RDhFLTI1QkVBMTQ5RTlCNn0NCi0JCXs1QTFE
REM0RC0xNTE3LTQzMTUtQjc2QS0zOTkzMzEyM0IyMjJ9ID0ge0MwRjRGMTM4LUNCMzgtNERCNi05
RDhFLTI1QkVBMTQ5RTlCNn0NCi0JCXs2RjgwQkI3RC1EQTY2LTQ4REYtODJEMi01MTRCOUM1QTBE
Mzh9ID0gezIxMzZENUIzLTM5MTUtNDNEOC05QTJDLTBEOTZCN0I1Rjc5Qn0NCi0JCXsyQzM5MkM1
Qy1DREIxLTQ5NjctOTNDMi05QzAwRTdGODY1MTh9ID0gezIxMzZENUIzLTM5MTUtNDNEOC05QTJD
LTBEOTZCN0I1Rjc5Qn0NCi0JCXsxNjU5QjFCNi1GMkEzLTQ2QjMtQUUwMi1GRTY1QjRBNjA3RUJ9
ID0gezM5Mjg2RjQ2LUJBNzUtNDk5Ny04MDY1LTE5MDkwOTBBNjBGMH0NCi0JRW5kR2xvYmFsU2Vj
dGlvbg0KLUVuZEdsb2JhbA0KK++7vworTWljcm9zb2Z0IFZpc3VhbCBTdHVkaW8gU29sdXRpb24g
RmlsZSwgRm9ybWF0IFZlcnNpb24gMTEuMDAKKyMgVmlzdWFsIFN0dWRpbyAyMDEwCitQcm9qZWN0
KCJ7MjE1MEUzMzMtOEZEQy00MkEzLTk0NzQtMUEzOTU2RDQ2REU4fSIpID0gIldURiIsICJXVEYi
LCAiezdGOTgyQ0FELTIyNUItNEZDRS05OTM3LTNCNzJDMTREOTY4RH0iCitFbmRQcm9qZWN0CitQ
cm9qZWN0KCJ7MjE1MEUzMzMtOEZEQy00MkEzLTk0NzQtMUEzOTU2RDQ2REU4fSIpID0gIkphdmFT
Y3JpcHRDb3JlIiwgIkphdmFTY3JpcHRDb3JlIiwgIntGOUY1RTdGRS01QzVGLTRDRTktODY2NS1B
ODQ2MzNGNDlFMTJ9IgorRW5kUHJvamVjdAorUHJvamVjdCgiezIxNTBFMzMzLThGREMtNDJBMy05
NDc0LTFBMzk1NkQ0NkRFOH0iKSA9ICJXZWJDb3JlIiwgIldlYkNvcmUiLCAiezRBODk0NTg4LUE5
NTEtNEU3Ni1BMDg1LTUwRTEwMzA0REM0MH0iCitFbmRQcm9qZWN0CitQcm9qZWN0KCJ7MjE1MEUz
MzMtOEZEQy00MkEzLTk0NzQtMUEzOTU2RDQ2REU4fSIpID0gIldlYktpdFN5c3RlbUludGVyZmFj
ZSIsICJXZWJLaXRTeXN0ZW1JbnRlcmZhY2UiLCAie0MwRjRGMTM4LUNCMzgtNERCNi05RDhFLTI1
QkVBMTQ5RTlCNn0iCitFbmRQcm9qZWN0CitQcm9qZWN0KCJ7OEJDOUNFQjgtOEI0QS0xMUQwLThE
MTEtMDBBMEM5MUJDOTQyfSIpID0gIldlYktpdFN5c3RlbUludGVyZmFjZUdlbmVyYXRlZCIsICIu
LlwuLlwuLlwuLlxJbnRlcm5hbFxXZWJLaXRTeXN0ZW1JbnRlcmZhY2Vcd2luXFdlYktpdFN5c3Rl
bUludGVyZmFjZUdlbmVyYXRlZC52Y3hwcm9qIiwgIntERkEwQkMwMy0zRDYyLTQwMzAtODgxMi1D
NUIyOTZDODQ4QjJ9IgorCVByb2plY3RTZWN0aW9uKFByb2plY3REZXBlbmRlbmNpZXMpID0gcG9z
dFByb2plY3QKKwkJezIyNDEzRDQxLTNBMTgtNDJCNy05MkE4LUNFREM2Q0U4NjkyMH0gPSB7MjI0
MTNENDEtM0ExOC00MkI3LTkyQTgtQ0VEQzZDRTg2OTIwfQorCUVuZFByb2plY3RTZWN0aW9uCitF
bmRQcm9qZWN0CitQcm9qZWN0KCJ7OEJDOUNFQjgtOEI0QS0xMUQwLThEMTEtMDBBMEM5MUJDOTQy
fSIpID0gIldlYktpdFN5c3RlbUludGVyZmFjZSIsICIuLlwuLlwuLlwuLlxJbnRlcm5hbFxXZWJL
aXRTeXN0ZW1JbnRlcmZhY2Vcd2luXFdlYktpdFN5c3RlbUludGVyZmFjZS52Y3hwcm9qIiwgIns1
QTFEREM0RC0xNTE3LTQzMTUtQjc2QS0zOTkzMzEyM0IyMjJ9IgorCVByb2plY3RTZWN0aW9uKFBy
b2plY3REZXBlbmRlbmNpZXMpID0gcG9zdFByb2plY3QKKwkJe0RGQTBCQzAzLTNENjItNDAzMC04
ODEyLUM1QjI5NkM4NDhCMn0gPSB7REZBMEJDMDMtM0Q2Mi00MDMwLTg4MTItQzVCMjk2Qzg0OEIy
fQorCUVuZFByb2plY3RTZWN0aW9uCitFbmRQcm9qZWN0CitQcm9qZWN0KCJ7MjE1MEUzMzMtOEZE
Qy00MkEzLTk0NzQtMUEzOTU2RDQ2REU4fSIpID0gIldlYktpdFF1YXJ0ekNvcmVBZGRpdGlvbnMi
LCAiV2ViS2l0UXVhcnR6Q29yZUFkZGl0aW9ucyIsICJ7MjEzNkQ1QjMtMzkxNS00M0Q4LTlBMkMt
MEQ5NkI3QjVGNzlCfSIKK0VuZFByb2plY3QKK1Byb2plY3QoIns4QkM5Q0VCOC04QjRBLTExRDAt
OEQxMS0wMEEwQzkxQkM5NDJ9IikgPSAiV2ViS2l0UXVhcnR6Q29yZUFkZGl0aW9ucyIsICIuLlwu
LlwuLlwuLlxJbnRlcm5hbFxXZWJLaXRRdWFydHpDb3JlQWRkaXRpb25zXFdlYktpdFF1YXJ0ekNv
cmVBZGRpdGlvbnMudmN4cHJvaiIsICJ7NkY4MEJCN0QtREE2Ni00OERGLTgyRDItNTE0QjlDNUEw
RDM4fSIKKwlQcm9qZWN0U2VjdGlvbihQcm9qZWN0RGVwZW5kZW5jaWVzKSA9IHBvc3RQcm9qZWN0
CisJCXsyQzM5MkM1Qy1DREIxLTQ5NjctOTNDMi05QzAwRTdGODY1MTh9ID0gezJDMzkyQzVDLUNE
QjEtNDk2Ny05M0MyLTlDMDBFN0Y4NjUxOH0KKwlFbmRQcm9qZWN0U2VjdGlvbgorRW5kUHJvamVj
dAorUHJvamVjdCgiezhCQzlDRUI4LThCNEEtMTFEMC04RDExLTAwQTBDOTFCQzk0Mn0iKSA9ICJX
ZWJLaXRRdWFydHpDb3JlQWRkaXRpb25zR2VuZXJhdGVkIiwgIi4uXC4uXC4uXC4uXEludGVybmFs
XFdlYktpdFF1YXJ0ekNvcmVBZGRpdGlvbnNcV2ViS2l0UXVhcnR6Q29yZUFkZGl0aW9uc0dlbmVy
YXRlZC52Y3hwcm9qIiwgInsyQzM5MkM1Qy1DREIxLTQ5NjctOTNDMi05QzAwRTdGODY1MTh9Igor
CVByb2plY3RTZWN0aW9uKFByb2plY3REZXBlbmRlbmNpZXMpID0gcG9zdFByb2plY3QKKwkJezVB
MUREQzRELTE1MTctNDMxNS1CNzZBLTM5OTMzMTIzQjIyMn0gPSB7NUExRERDNEQtMTUxNy00MzE1
LUI3NkEtMzk5MzMxMjNCMjIyfQorCUVuZFByb2plY3RTZWN0aW9uCitFbmRQcm9qZWN0CitQcm9q
ZWN0KCJ7MjE1MEUzMzMtOEZEQy00MkEzLTk0NzQtMUEzOTU2RDQ2REU4fSIpID0gIldlYktpdCIs
ICJXZWJLaXQiLCAiezM5Mjg2RjQ2LUJBNzUtNDk5Ny04MDY1LTE5MDkwOTBBNjBGMH0iCitFbmRQ
cm9qZWN0CitQcm9qZWN0KCJ7OEJDOUNFQjgtOEI0QS0xMUQwLThEMTEtMDBBMEM5MUJDOTQyfSIp
ID0gIkludGVyZmFjZXMiLCAiSW50ZXJmYWNlc1xJbnRlcmZhY2VzLnZjeHByb2oiLCAiezE2NTlC
MUI2LUYyQTMtNDZCMy1BRTAyLUZFNjVCNEE2MDdFQn0iCisJUHJvamVjdFNlY3Rpb24oUHJvamVj
dERlcGVuZGVuY2llcykgPSBwb3N0UHJvamVjdAorCQl7MUMxNjMzN0ItQUNGMy00RDAzLUFBOTAt
ODUxQzVCNUVBREE2fSA9IHsxQzE2MzM3Qi1BQ0YzLTREMDMtQUE5MC04NTFDNUI1RUFEQTZ9CisJ
RW5kUHJvamVjdFNlY3Rpb24KK0VuZFByb2plY3QKK1Byb2plY3QoIns4QkM5Q0VCOC04QjRBLTEx
RDAtOEQxMS0wMEEwQzkxQkM5NDJ9IikgPSAiV1RGIiwgIi4uXC4uXFdURlxXVEYudmN4cHJvalxX
VEYudmN4cHJvaiIsICJ7OEVGNzM3NzktQkVEMy00NUJCLTgxNkQtOUZGNTgzOTlBRkE1fSIKKwlQ
cm9qZWN0U2VjdGlvbihQcm9qZWN0RGVwZW5kZW5jaWVzKSA9IHBvc3RQcm9qZWN0CisJCXtGNzM2
NjU5Ni0wNTIwLTQ0MzMtQjhGRi1EODQzRTMxRTUxOTl9ID0ge0Y3MzY2NTk2LTA1MjAtNDQzMy1C
OEZGLUQ4NDNFMzFFNTE5OX0KKwlFbmRQcm9qZWN0U2VjdGlvbgorRW5kUHJvamVjdAorUHJvamVj
dCgiezhCQzlDRUI4LThCNEEtMTFEMC04RDExLTAwQTBDOTFCQzk0Mn0iKSA9ICJXVEZHZW5lcmF0
ZWQiLCAiLi5cLi5cV1RGXFdURi52Y3hwcm9qXFdURkdlbmVyYXRlZC52Y3hwcm9qIiwgIntGNzM2
NjU5Ni0wNTIwLTQ0MzMtQjhGRi1EODQzRTMxRTUxOTl9IgorRW5kUHJvamVjdAorUHJvamVjdCgi
ezhCQzlDRUI4LThCNEEtMTFEMC04RDExLTAwQTBDOTFCQzk0Mn0iKSA9ICJKYXZhU2NyaXB0Q29y
ZUdlbmVyYXRlZCIsICIuLlwuLlxKYXZhU2NyaXB0Q29yZVxKYXZhU2NyaXB0Q29yZS52Y3hwcm9q
XEphdmFTY3JpcHRDb3JlR2VuZXJhdGVkLnZjeHByb2oiLCAiezM2NzBEMDFGLTk1RjMtNDVBOC1C
ODc4LTk0N0VCNkNGMjE0RX0iCisJUHJvamVjdFNlY3Rpb24oUHJvamVjdERlcGVuZGVuY2llcykg
PSBwb3N0UHJvamVjdAorCQl7OEVGNzM3NzktQkVEMy00NUJCLTgxNkQtOUZGNTgzOTlBRkE1fSA9
IHs4RUY3Mzc3OS1CRUQzLTQ1QkItODE2RC05RkY1ODM5OUFGQTV9CisJRW5kUHJvamVjdFNlY3Rp
b24KK0VuZFByb2plY3QKK1Byb2plY3QoIns4QkM5Q0VCOC04QjRBLTExRDAtOEQxMS0wMEEwQzkx
QkM5NDJ9IikgPSAiSmF2YVNjcmlwdENvcmUiLCAiLi5cLi5cSmF2YVNjcmlwdENvcmVcSmF2YVNj
cmlwdENvcmUudmN4cHJvalxKYXZhU2NyaXB0Q29yZS52Y3hwcm9qIiwgInsyMjQxM0Q0MS0zQTE4
LTQyQjctOTJBOC1DRURDNkNFODY5MjB9IgorCVByb2plY3RTZWN0aW9uKFByb2plY3REZXBlbmRl
bmNpZXMpID0gcG9zdFByb2plY3QKKwkJezM2NzBEMDFGLTk1RjMtNDVBOC1CODc4LTk0N0VCNkNG
MjE0RX0gPSB7MzY3MEQwMUYtOTVGMy00NUE4LUI4NzgtOTQ3RUI2Q0YyMTRFfQorCQl7OTIyMTc0
NEItNTcxNS00RjU2LTk1OTAtNDJGN0FCMjNERDhCfSA9IHs5MjIxNzQ0Qi01NzE1LTRGNTYtOTU5
MC00MkY3QUIyM0REOEJ9CisJRW5kUHJvamVjdFNlY3Rpb24KK0VuZFByb2plY3QKK1Byb2plY3Qo
Ins4QkM5Q0VCOC04QjRBLTExRDAtOEQxMS0wMEEwQzkxQkM5NDJ9IikgPSAiTExJbnRPZmZzZXRz
RXh0cmFjdG9yIiwgIi4uXC4uXEphdmFTY3JpcHRDb3JlXEphdmFTY3JpcHRDb3JlLnZjeHByb2pc
TExJbnQudmNwcm9qXExMSW50T2Zmc2V0c0V4dHJhY3RvclxMTEludE9mZnNldHNFeHRyYWN0b3Iu
dmN4cHJvaiIsICJ7RDU5NUUzRjYtMjRGMi00QzYwLTkzNUMtOTVENTBDNkIzRTk2fSIKKwlQcm9q
ZWN0U2VjdGlvbihQcm9qZWN0RGVwZW5kZW5jaWVzKSA9IHBvc3RQcm9qZWN0CisJCXs4NzcxNTBB
MC00MUIzLTQ3MzAtOUQ5OC0xQjgyOTgwOThCMTR9ID0gezg3NzE1MEEwLTQxQjMtNDczMC05RDk4
LTFCODI5ODA5OEIxNH0KKwlFbmRQcm9qZWN0U2VjdGlvbgorRW5kUHJvamVjdAorUHJvamVjdCgi
ezhCQzlDRUI4LThCNEEtMTFEMC04RDExLTAwQTBDOTFCQzk0Mn0iKSA9ICJMTEludERlc2lyZWRP
ZmZzZXRzIiwgIi4uXC4uXEphdmFTY3JpcHRDb3JlXEphdmFTY3JpcHRDb3JlLnZjeHByb2pcTExJ
bnQudmNwcm9qXExMSW50RGVzaXJlZE9mZnNldHNcTExJbnREZXNpcmVkT2Zmc2V0cy52Y3hwcm9q
IiwgIns4NzcxNTBBMC00MUIzLTQ3MzAtOUQ5OC0xQjgyOTgwOThCMTR9IgorCVByb2plY3RTZWN0
aW9uKFByb2plY3REZXBlbmRlbmNpZXMpID0gcG9zdFByb2plY3QKKwkJezM2NzBEMDFGLTk1RjMt
NDVBOC1CODc4LTk0N0VCNkNGMjE0RX0gPSB7MzY3MEQwMUYtOTVGMy00NUE4LUI4NzgtOTQ3RUI2
Q0YyMTRFfQorCUVuZFByb2plY3RTZWN0aW9uCitFbmRQcm9qZWN0CitQcm9qZWN0KCJ7OEJDOUNF
QjgtOEI0QS0xMUQwLThEMTEtMDBBMEM5MUJDOTQyfSIpID0gIkxMSW50QXNzZW1ibHkiLCAiLi5c
Li5cSmF2YVNjcmlwdENvcmVcSmF2YVNjcmlwdENvcmUudmN4cHJvalxMTEludC52Y3Byb2pcTExJ
bnRBc3NlbWJseVxMTEludEFzc2VtYmx5LnZjeHByb2oiLCAiezkyMjE3NDRCLTU3MTUtNEY1Ni05
NTkwLTQyRjdBQjIzREQ4Qn0iCisJUHJvamVjdFNlY3Rpb24oUHJvamVjdERlcGVuZGVuY2llcykg
PSBwb3N0UHJvamVjdAorCQl7RDU5NUUzRjYtMjRGMi00QzYwLTkzNUMtOTVENTBDNkIzRTk2fSA9
IHtENTk1RTNGNi0yNEYyLTRDNjAtOTM1Qy05NUQ1MEM2QjNFOTZ9CisJRW5kUHJvamVjdFNlY3Rp
b24KK0VuZFByb2plY3QKK1Byb2plY3QoIns4QkM5Q0VCOC04QjRBLTExRDAtOEQxMS0wMEEwQzkx
QkM5NDJ9IikgPSAianNjIiwgIi4uXC4uXEphdmFTY3JpcHRDb3JlXEphdmFTY3JpcHRDb3JlLnZj
eHByb2pcanNjXGpzYy52Y3hwcm9qIiwgInsyQkQ0MzdDRi1CREFDLTQxMTktOUVENi1FMTBFRjQ2
QzY5RjN9IgorCVByb2plY3RTZWN0aW9uKFByb2plY3REZXBlbmRlbmNpZXMpID0gcG9zdFByb2pl
Y3QKKwkJezIyNDEzRDQxLTNBMTgtNDJCNy05MkE4LUNFREM2Q0U4NjkyMH0gPSB7MjI0MTNENDEt
M0ExOC00MkI3LTkyQTgtQ0VEQzZDRTg2OTIwfQorCUVuZFByb2plY3RTZWN0aW9uCitFbmRQcm9q
ZWN0CitQcm9qZWN0KCJ7OEJDOUNFQjgtOEI0QS0xMUQwLThEMTEtMDBBMEM5MUJDOTQyfSIpID0g
IldlYkNvcmUiLCAiLi5cLi5cV2ViQ29yZVxXZWJDb3JlLnZjeHByb2pcV2ViQ29yZS52Y3hwcm9q
IiwgInsxQzE2MzM3Qi1BQ0YzLTREMDMtQUE5MC04NTFDNUI1RUFEQTZ9IgorCVByb2plY3RTZWN0
aW9uKFByb2plY3REZXBlbmRlbmNpZXMpID0gcG9zdFByb2plY3QKKwkJe0U0OThDQTlELTNCRDIt
NEQ1Mi04RTM3LUM4REM3NjUyNjMyNX0gPSB7RTQ5OENBOUQtM0JEMi00RDUyLThFMzctQzhEQzc2
NTI2MzI1fQorCUVuZFByb2plY3RTZWN0aW9uCitFbmRQcm9qZWN0CitQcm9qZWN0KCJ7OEJDOUNF
QjgtOEI0QS0xMUQwLThEMTEtMDBBMEM5MUJDOTQyfSIpID0gIldlYkNvcmVHZW5lcmF0ZWQiLCAi
Li5cLi5cV2ViQ29yZVxXZWJDb3JlLnZjeHByb2pcV2ViQ29yZUdlbmVyYXRlZC52Y3hwcm9qIiwg
IntBNDE1OUI2Ri0zMTA2LTRGNzUtOUVERC01ODIzMDdCREI5NkF9IgorCVByb2plY3RTZWN0aW9u
KFByb2plY3REZXBlbmRlbmNpZXMpID0gcG9zdFByb2plY3QKKwkJezZGODBCQjdELURBNjYtNDhE
Ri04MkQyLTUxNEI5QzVBMEQzOH0gPSB7NkY4MEJCN0QtREE2Ni00OERGLTgyRDItNTE0QjlDNUEw
RDM4fQorCUVuZFByb2plY3RTZWN0aW9uCitFbmRQcm9qZWN0CitQcm9qZWN0KCJ7OEJDOUNFQjgt
OEI0QS0xMUQwLThEMTEtMDBBMEM5MUJDOTQyfSIpID0gIlFUTW92aWVXaW4iLCAiLi5cLi5cV2Vi
Q29yZVxXZWJDb3JlLnZjeHByb2pcUVRNb3ZpZVdpblxRVE1vdmllV2luLnZjeHByb2oiLCAie0U0
OThDQTlELTNCRDItNEQ1Mi04RTM3LUM4REM3NjUyNjMyNX0iCisJUHJvamVjdFNlY3Rpb24oUHJv
amVjdERlcGVuZGVuY2llcykgPSBwb3N0UHJvamVjdAorCQl7QTQxNTlCNkYtMzEwNi00Rjc1LTlF
REQtNTgyMzA3QkRCOTZBfSA9IHtBNDE1OUI2Ri0zMTA2LTRGNzUtOUVERC01ODIzMDdCREI5NkF9
CisJRW5kUHJvamVjdFNlY3Rpb24KK0VuZFByb2plY3QKK0dsb2JhbAorCUdsb2JhbFNlY3Rpb24o
U29sdXRpb25Db25maWd1cmF0aW9uUGxhdGZvcm1zKSA9IHByZVNvbHV0aW9uCisJCURlYnVnfFdp
bjMyID0gRGVidWd8V2luMzIKKwkJUmVsZWFzZXxXaW4zMiA9IFJlbGVhc2V8V2luMzIKKwlFbmRH
bG9iYWxTZWN0aW9uCisJR2xvYmFsU2VjdGlvbihQcm9qZWN0Q29uZmlndXJhdGlvblBsYXRmb3Jt
cykgPSBwb3N0U29sdXRpb24KKwkJe0RGQTBCQzAzLTNENjItNDAzMC04ODEyLUM1QjI5NkM4NDhC
Mn0uRGVidWd8V2luMzIuQWN0aXZlQ2ZnID0gRGVidWd8V2luMzIKKwkJe0RGQTBCQzAzLTNENjIt
NDAzMC04ODEyLUM1QjI5NkM4NDhCMn0uRGVidWd8V2luMzIuQnVpbGQuMCA9IERlYnVnfFdpbjMy
CisJCXtERkEwQkMwMy0zRDYyLTQwMzAtODgxMi1DNUIyOTZDODQ4QjJ9LlJlbGVhc2V8V2luMzIu
QWN0aXZlQ2ZnID0gUmVsZWFzZXxXaW4zMgorCQl7REZBMEJDMDMtM0Q2Mi00MDMwLTg4MTItQzVC
Mjk2Qzg0OEIyfS5SZWxlYXNlfFdpbjMyLkJ1aWxkLjAgPSBSZWxlYXNlfFdpbjMyCisJCXs1QTFE
REM0RC0xNTE3LTQzMTUtQjc2QS0zOTkzMzEyM0IyMjJ9LkRlYnVnfFdpbjMyLkFjdGl2ZUNmZyA9
IERlYnVnfFdpbjMyCisJCXs1QTFEREM0RC0xNTE3LTQzMTUtQjc2QS0zOTkzMzEyM0IyMjJ9LkRl
YnVnfFdpbjMyLkJ1aWxkLjAgPSBEZWJ1Z3xXaW4zMgorCQl7NUExRERDNEQtMTUxNy00MzE1LUI3
NkEtMzk5MzMxMjNCMjIyfS5SZWxlYXNlfFdpbjMyLkFjdGl2ZUNmZyA9IFJlbGVhc2V8V2luMzIK
KwkJezVBMUREQzRELTE1MTctNDMxNS1CNzZBLTM5OTMzMTIzQjIyMn0uUmVsZWFzZXxXaW4zMi5C
dWlsZC4wID0gUmVsZWFzZXxXaW4zMgorCQl7NkY4MEJCN0QtREE2Ni00OERGLTgyRDItNTE0QjlD
NUEwRDM4fS5EZWJ1Z3xXaW4zMi5BY3RpdmVDZmcgPSBEZWJ1Z3xXaW4zMgorCQl7NkY4MEJCN0Qt
REE2Ni00OERGLTgyRDItNTE0QjlDNUEwRDM4fS5EZWJ1Z3xXaW4zMi5CdWlsZC4wID0gRGVidWd8
V2luMzIKKwkJezZGODBCQjdELURBNjYtNDhERi04MkQyLTUxNEI5QzVBMEQzOH0uUmVsZWFzZXxX
aW4zMi5BY3RpdmVDZmcgPSBSZWxlYXNlfFdpbjMyCisJCXs2RjgwQkI3RC1EQTY2LTQ4REYtODJE
Mi01MTRCOUM1QTBEMzh9LlJlbGVhc2V8V2luMzIuQnVpbGQuMCA9IFJlbGVhc2V8V2luMzIKKwkJ
ezJDMzkyQzVDLUNEQjEtNDk2Ny05M0MyLTlDMDBFN0Y4NjUxOH0uRGVidWd8V2luMzIuQWN0aXZl
Q2ZnID0gRGVidWd8V2luMzIKKwkJezJDMzkyQzVDLUNEQjEtNDk2Ny05M0MyLTlDMDBFN0Y4NjUx
OH0uRGVidWd8V2luMzIuQnVpbGQuMCA9IERlYnVnfFdpbjMyCisJCXsyQzM5MkM1Qy1DREIxLTQ5
NjctOTNDMi05QzAwRTdGODY1MTh9LlJlbGVhc2V8V2luMzIuQWN0aXZlQ2ZnID0gUmVsZWFzZXxX
aW4zMgorCQl7MkMzOTJDNUMtQ0RCMS00OTY3LTkzQzItOUMwMEU3Rjg2NTE4fS5SZWxlYXNlfFdp
bjMyLkJ1aWxkLjAgPSBSZWxlYXNlfFdpbjMyCisJCXsxNjU5QjFCNi1GMkEzLTQ2QjMtQUUwMi1G
RTY1QjRBNjA3RUJ9LkRlYnVnfFdpbjMyLkFjdGl2ZUNmZyA9IERlYnVnfFdpbjMyCisJCXsxNjU5
QjFCNi1GMkEzLTQ2QjMtQUUwMi1GRTY1QjRBNjA3RUJ9LkRlYnVnfFdpbjMyLkJ1aWxkLjAgPSBE
ZWJ1Z3xXaW4zMgorCQl7MTY1OUIxQjYtRjJBMy00NkIzLUFFMDItRkU2NUI0QTYwN0VCfS5SZWxl
YXNlfFdpbjMyLkFjdGl2ZUNmZyA9IFJlbGVhc2V8V2luMzIKKwkJezE2NTlCMUI2LUYyQTMtNDZC
My1BRTAyLUZFNjVCNEE2MDdFQn0uUmVsZWFzZXxXaW4zMi5CdWlsZC4wID0gUmVsZWFzZXxXaW4z
MgorCQl7OEVGNzM3NzktQkVEMy00NUJCLTgxNkQtOUZGNTgzOTlBRkE1fS5EZWJ1Z3xXaW4zMi5B
Y3RpdmVDZmcgPSBEZWJ1Z3xXaW4zMgorCQl7OEVGNzM3NzktQkVEMy00NUJCLTgxNkQtOUZGNTgz
OTlBRkE1fS5EZWJ1Z3xXaW4zMi5CdWlsZC4wID0gRGVidWd8V2luMzIKKwkJezhFRjczNzc5LUJF
RDMtNDVCQi04MTZELTlGRjU4Mzk5QUZBNX0uUmVsZWFzZXxXaW4zMi5BY3RpdmVDZmcgPSBSZWxl
YXNlfFdpbjMyCisJCXs4RUY3Mzc3OS1CRUQzLTQ1QkItODE2RC05RkY1ODM5OUFGQTV9LlJlbGVh
c2V8V2luMzIuQnVpbGQuMCA9IFJlbGVhc2V8V2luMzIKKwkJe0Y3MzY2NTk2LTA1MjAtNDQzMy1C
OEZGLUQ4NDNFMzFFNTE5OX0uRGVidWd8V2luMzIuQWN0aXZlQ2ZnID0gRGVidWd8V2luMzIKKwkJ
e0Y3MzY2NTk2LTA1MjAtNDQzMy1COEZGLUQ4NDNFMzFFNTE5OX0uRGVidWd8V2luMzIuQnVpbGQu
MCA9IERlYnVnfFdpbjMyCisJCXtGNzM2NjU5Ni0wNTIwLTQ0MzMtQjhGRi1EODQzRTMxRTUxOTl9
LlJlbGVhc2V8V2luMzIuQWN0aXZlQ2ZnID0gUmVsZWFzZXxXaW4zMgorCQl7RjczNjY1OTYtMDUy
MC00NDMzLUI4RkYtRDg0M0UzMUU1MTk5fS5SZWxlYXNlfFdpbjMyLkJ1aWxkLjAgPSBSZWxlYXNl
fFdpbjMyCisJCXszNjcwRDAxRi05NUYzLTQ1QTgtQjg3OC05NDdFQjZDRjIxNEV9LkRlYnVnfFdp
bjMyLkFjdGl2ZUNmZyA9IERlYnVnfFdpbjMyCisJCXszNjcwRDAxRi05NUYzLTQ1QTgtQjg3OC05
NDdFQjZDRjIxNEV9LkRlYnVnfFdpbjMyLkJ1aWxkLjAgPSBEZWJ1Z3xXaW4zMgorCQl7MzY3MEQw
MUYtOTVGMy00NUE4LUI4NzgtOTQ3RUI2Q0YyMTRFfS5SZWxlYXNlfFdpbjMyLkFjdGl2ZUNmZyA9
IFJlbGVhc2V8V2luMzIKKwkJezM2NzBEMDFGLTk1RjMtNDVBOC1CODc4LTk0N0VCNkNGMjE0RX0u
UmVsZWFzZXxXaW4zMi5CdWlsZC4wID0gUmVsZWFzZXxXaW4zMgorCQl7MjI0MTNENDEtM0ExOC00
MkI3LTkyQTgtQ0VEQzZDRTg2OTIwfS5EZWJ1Z3xXaW4zMi5BY3RpdmVDZmcgPSBEZWJ1Z3xXaW4z
MgorCQl7MjI0MTNENDEtM0ExOC00MkI3LTkyQTgtQ0VEQzZDRTg2OTIwfS5EZWJ1Z3xXaW4zMi5C
dWlsZC4wID0gRGVidWd8V2luMzIKKwkJezIyNDEzRDQxLTNBMTgtNDJCNy05MkE4LUNFREM2Q0U4
NjkyMH0uUmVsZWFzZXxXaW4zMi5BY3RpdmVDZmcgPSBSZWxlYXNlfFdpbjMyCisJCXsyMjQxM0Q0
MS0zQTE4LTQyQjctOTJBOC1DRURDNkNFODY5MjB9LlJlbGVhc2V8V2luMzIuQnVpbGQuMCA9IFJl
bGVhc2V8V2luMzIKKwkJe0Q1OTVFM0Y2LTI0RjItNEM2MC05MzVDLTk1RDUwQzZCM0U5Nn0uRGVi
dWd8V2luMzIuQWN0aXZlQ2ZnID0gRGVidWd8V2luMzIKKwkJe0Q1OTVFM0Y2LTI0RjItNEM2MC05
MzVDLTk1RDUwQzZCM0U5Nn0uRGVidWd8V2luMzIuQnVpbGQuMCA9IERlYnVnfFdpbjMyCisJCXtE
NTk1RTNGNi0yNEYyLTRDNjAtOTM1Qy05NUQ1MEM2QjNFOTZ9LlJlbGVhc2V8V2luMzIuQWN0aXZl
Q2ZnID0gUmVsZWFzZXxXaW4zMgorCQl7RDU5NUUzRjYtMjRGMi00QzYwLTkzNUMtOTVENTBDNkIz
RTk2fS5SZWxlYXNlfFdpbjMyLkJ1aWxkLjAgPSBSZWxlYXNlfFdpbjMyCisJCXs4NzcxNTBBMC00
MUIzLTQ3MzAtOUQ5OC0xQjgyOTgwOThCMTR9LkRlYnVnfFdpbjMyLkFjdGl2ZUNmZyA9IERlYnVn
fFdpbjMyCisJCXs4NzcxNTBBMC00MUIzLTQ3MzAtOUQ5OC0xQjgyOTgwOThCMTR9LkRlYnVnfFdp
bjMyLkJ1aWxkLjAgPSBEZWJ1Z3xXaW4zMgorCQl7ODc3MTUwQTAtNDFCMy00NzMwLTlEOTgtMUI4
Mjk4MDk4QjE0fS5SZWxlYXNlfFdpbjMyLkFjdGl2ZUNmZyA9IFJlbGVhc2V8V2luMzIKKwkJezg3
NzE1MEEwLTQxQjMtNDczMC05RDk4LTFCODI5ODA5OEIxNH0uUmVsZWFzZXxXaW4zMi5CdWlsZC4w
ID0gUmVsZWFzZXxXaW4zMgorCQl7OTIyMTc0NEItNTcxNS00RjU2LTk1OTAtNDJGN0FCMjNERDhC
fS5EZWJ1Z3xXaW4zMi5BY3RpdmVDZmcgPSBEZWJ1Z3xXaW4zMgorCQl7OTIyMTc0NEItNTcxNS00
RjU2LTk1OTAtNDJGN0FCMjNERDhCfS5EZWJ1Z3xXaW4zMi5CdWlsZC4wID0gRGVidWd8V2luMzIK
KwkJezkyMjE3NDRCLTU3MTUtNEY1Ni05NTkwLTQyRjdBQjIzREQ4Qn0uUmVsZWFzZXxXaW4zMi5B
Y3RpdmVDZmcgPSBSZWxlYXNlfFdpbjMyCisJCXs5MjIxNzQ0Qi01NzE1LTRGNTYtOTU5MC00MkY3
QUIyM0REOEJ9LlJlbGVhc2V8V2luMzIuQnVpbGQuMCA9IFJlbGVhc2V8V2luMzIKKwkJezJCRDQz
N0NGLUJEQUMtNDExOS05RUQ2LUUxMEVGNDZDNjlGM30uRGVidWd8V2luMzIuQWN0aXZlQ2ZnID0g
RGVidWd8V2luMzIKKwkJezJCRDQzN0NGLUJEQUMtNDExOS05RUQ2LUUxMEVGNDZDNjlGM30uRGVi
dWd8V2luMzIuQnVpbGQuMCA9IERlYnVnfFdpbjMyCisJCXsyQkQ0MzdDRi1CREFDLTQxMTktOUVE
Ni1FMTBFRjQ2QzY5RjN9LlJlbGVhc2V8V2luMzIuQWN0aXZlQ2ZnID0gUmVsZWFzZXxXaW4zMgor
CQl7MkJENDM3Q0YtQkRBQy00MTE5LTlFRDYtRTEwRUY0NkM2OUYzfS5SZWxlYXNlfFdpbjMyLkJ1
aWxkLjAgPSBSZWxlYXNlfFdpbjMyCisJCXsxQzE2MzM3Qi1BQ0YzLTREMDMtQUE5MC04NTFDNUI1
RUFEQTZ9LkRlYnVnfFdpbjMyLkFjdGl2ZUNmZyA9IERlYnVnfFdpbjMyCisJCXsxQzE2MzM3Qi1B
Q0YzLTREMDMtQUE5MC04NTFDNUI1RUFEQTZ9LkRlYnVnfFdpbjMyLkJ1aWxkLjAgPSBEZWJ1Z3xX
aW4zMgorCQl7MUMxNjMzN0ItQUNGMy00RDAzLUFBOTAtODUxQzVCNUVBREE2fS5SZWxlYXNlfFdp
bjMyLkFjdGl2ZUNmZyA9IFJlbGVhc2V8V2luMzIKKwkJezFDMTYzMzdCLUFDRjMtNEQwMy1BQTkw
LTg1MUM1QjVFQURBNn0uUmVsZWFzZXxXaW4zMi5CdWlsZC4wID0gUmVsZWFzZXxXaW4zMgorCQl7
QTQxNTlCNkYtMzEwNi00Rjc1LTlFREQtNTgyMzA3QkRCOTZBfS5EZWJ1Z3xXaW4zMi5BY3RpdmVD
ZmcgPSBEZWJ1Z3xXaW4zMgorCQl7QTQxNTlCNkYtMzEwNi00Rjc1LTlFREQtNTgyMzA3QkRCOTZB
fS5EZWJ1Z3xXaW4zMi5CdWlsZC4wID0gRGVidWd8V2luMzIKKwkJe0E0MTU5QjZGLTMxMDYtNEY3
NS05RURELTU4MjMwN0JEQjk2QX0uUmVsZWFzZXxXaW4zMi5BY3RpdmVDZmcgPSBSZWxlYXNlfFdp
bjMyCisJCXtBNDE1OUI2Ri0zMTA2LTRGNzUtOUVERC01ODIzMDdCREI5NkF9LlJlbGVhc2V8V2lu
MzIuQnVpbGQuMCA9IFJlbGVhc2V8V2luMzIKKwkJe0U0OThDQTlELTNCRDItNEQ1Mi04RTM3LUM4
REM3NjUyNjMyNX0uRGVidWd8V2luMzIuQWN0aXZlQ2ZnID0gRGVidWd8V2luMzIKKwkJe0U0OThD
QTlELTNCRDItNEQ1Mi04RTM3LUM4REM3NjUyNjMyNX0uRGVidWd8V2luMzIuQnVpbGQuMCA9IERl
YnVnfFdpbjMyCisJCXtFNDk4Q0E5RC0zQkQyLTRENTItOEUzNy1DOERDNzY1MjYzMjV9LlJlbGVh
c2V8V2luMzIuQWN0aXZlQ2ZnID0gUmVsZWFzZXxXaW4zMgorCQl7RTQ5OENBOUQtM0JEMi00RDUy
LThFMzctQzhEQzc2NTI2MzI1fS5SZWxlYXNlfFdpbjMyLkJ1aWxkLjAgPSBSZWxlYXNlfFdpbjMy
CisJRW5kR2xvYmFsU2VjdGlvbgorCUdsb2JhbFNlY3Rpb24oU29sdXRpb25Qcm9wZXJ0aWVzKSA9
IHByZVNvbHV0aW9uCisJCUhpZGVTb2x1dGlvbk5vZGUgPSBGQUxTRQorCUVuZEdsb2JhbFNlY3Rp
b24KKwlHbG9iYWxTZWN0aW9uKE5lc3RlZFByb2plY3RzKSA9IHByZVNvbHV0aW9uCisJCXs4RUY3
Mzc3OS1CRUQzLTQ1QkItODE2RC05RkY1ODM5OUFGQTV9ID0gezdGOTgyQ0FELTIyNUItNEZDRS05
OTM3LTNCNzJDMTREOTY4RH0KKwkJe0Y3MzY2NTk2LTA1MjAtNDQzMy1COEZGLUQ4NDNFMzFFNTE5
OX0gPSB7N0Y5ODJDQUQtMjI1Qi00RkNFLTk5MzctM0I3MkMxNEQ5NjhEfQorCQl7MzY3MEQwMUYt
OTVGMy00NUE4LUI4NzgtOTQ3RUI2Q0YyMTRFfSA9IHtGOUY1RTdGRS01QzVGLTRDRTktODY2NS1B
ODQ2MzNGNDlFMTJ9CisJCXsyMjQxM0Q0MS0zQTE4LTQyQjctOTJBOC1DRURDNkNFODY5MjB9ID0g
e0Y5RjVFN0ZFLTVDNUYtNENFOS04NjY1LUE4NDYzM0Y0OUUxMn0KKwkJe0Q1OTVFM0Y2LTI0RjIt
NEM2MC05MzVDLTk1RDUwQzZCM0U5Nn0gPSB7RjlGNUU3RkUtNUM1Ri00Q0U5LTg2NjUtQTg0NjMz
RjQ5RTEyfQorCQl7ODc3MTUwQTAtNDFCMy00NzMwLTlEOTgtMUI4Mjk4MDk4QjE0fSA9IHtGOUY1
RTdGRS01QzVGLTRDRTktODY2NS1BODQ2MzNGNDlFMTJ9CisJCXs5MjIxNzQ0Qi01NzE1LTRGNTYt
OTU5MC00MkY3QUIyM0REOEJ9ID0ge0Y5RjVFN0ZFLTVDNUYtNENFOS04NjY1LUE4NDYzM0Y0OUUx
Mn0KKwkJezJCRDQzN0NGLUJEQUMtNDExOS05RUQ2LUUxMEVGNDZDNjlGM30gPSB7RjlGNUU3RkUt
NUM1Ri00Q0U5LTg2NjUtQTg0NjMzRjQ5RTEyfQorCQl7MUMxNjMzN0ItQUNGMy00RDAzLUFBOTAt
ODUxQzVCNUVBREE2fSA9IHs0QTg5NDU4OC1BOTUxLTRFNzYtQTA4NS01MEUxMDMwNERDNDB9CisJ
CXtBNDE1OUI2Ri0zMTA2LTRGNzUtOUVERC01ODIzMDdCREI5NkF9ID0gezRBODk0NTg4LUE5NTEt
NEU3Ni1BMDg1LTUwRTEwMzA0REM0MH0KKwkJe0U0OThDQTlELTNCRDItNEQ1Mi04RTM3LUM4REM3
NjUyNjMyNX0gPSB7NEE4OTQ1ODgtQTk1MS00RTc2LUEwODUtNTBFMTAzMDREQzQwfQorCQl7REZB
MEJDMDMtM0Q2Mi00MDMwLTg4MTItQzVCMjk2Qzg0OEIyfSA9IHtDMEY0RjEzOC1DQjM4LTREQjYt
OUQ4RS0yNUJFQTE0OUU5QjZ9CisJCXs1QTFEREM0RC0xNTE3LTQzMTUtQjc2QS0zOTkzMzEyM0Iy
MjJ9ID0ge0MwRjRGMTM4LUNCMzgtNERCNi05RDhFLTI1QkVBMTQ5RTlCNn0KKwkJezZGODBCQjdE
LURBNjYtNDhERi04MkQyLTUxNEI5QzVBMEQzOH0gPSB7MjEzNkQ1QjMtMzkxNS00M0Q4LTlBMkMt
MEQ5NkI3QjVGNzlCfQorCQl7MkMzOTJDNUMtQ0RCMS00OTY3LTkzQzItOUMwMEU3Rjg2NTE4fSA9
IHsyMTM2RDVCMy0zOTE1LTQzRDgtOUEyQy0wRDk2QjdCNUY3OUJ9CisJCXsxNjU5QjFCNi1GMkEz
LTQ2QjMtQUUwMi1GRTY1QjRBNjA3RUJ9ID0gezM5Mjg2RjQ2LUJBNzUtNDk5Ny04MDY1LTE5MDkw
OTBBNjBGMH0KKwlFbmRHbG9iYWxTZWN0aW9uCitFbmRHbG9iYWwK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>184308</attachid>
            <date>2013-01-23 14:12:45 -0800</date>
            <delta_ts>2013-01-23 14:14:06 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-107637-20130123140938.patch</filename>
            <type>text/plain</type>
            <size>50478</size>
            <attacher name="Adam Barth">abarth</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQwNTc5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDY4NzcxNDlhMWMxMWQzN2ZjM2U0OTQz
ZmRiMDVhOTFiMGZhMGU4MGIuLjFkYmU3M2YzNTgxY2Q4YjJlOTQ5NWE3NTc1MGY3ZDM0MGFmZDVj
Y2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMjYgQEAKKzIwMTMtMDEtMjMgIEFkYW0gQmFydGggIDxhYmFydGhA
d2Via2l0Lm9yZz4KKworICAgICAgICBCYWNrZ3JvdW5kSFRNTFBhcnNlcjo6c2VuZFRva2Vuc1Rv
TWFpblRocmVhZCBzaG91bGQgdXNlIGJpbmQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTEwNzYzNworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgICogd3RmL0Z1bmN0aW9uYWwuaDoKKyAgICAgICAgICAgIC0gSSBo
YWQgdG8gcmUtd29yayB0aGUgYXBwcm9hY2ggdG8gdmFsaWRhdGluZyBXZWFrUHRyIHx0aGlzfAor
ICAgICAgICAgICAgICBhcmd1bWVudHMgYSBiaXQuIFByZXZpb3VzbHkgeW91IGNvdWxkbid0IHBh
c3MgYSBXZWFrUHRyIGFzIGEKKyAgICAgICAgICAgICAgbm9uLXx0aGlzfCBhcmd1bWVudCB0byBh
IGZ1bmN0aW9uIGJlY2F1c2Ugd2Ugd291bGQgdHJ5IHRvIHVud3JhcAorICAgICAgICAgICAgICBp
dCBpbnRvIGEgcmF3IHBvaW50ZXIuCisgICAgICAgICogd3RmL1dlYWtQdHIuaDoKKyAgICAgICAg
KFdURjo6V2Vha1B0ckZhY3Rvcnk6OnJldm9rZUFsbCk6CisgICAgICAgIChXZWFrUHRyRmFjdG9y
eSk6CisgICAgICAgICAgICAtIExldCBjbGllbnRzIHJldm9rZSBhbGwgb3V0c3RhbmRpbmcgV2Vh
a1B0cnMgd2l0aG91dCBuZWVkaW5nIHRvCisgICAgICAgICAgICAgIGRlc3Ryb3kgdGhlIFdlYWtQ
dHJGYWN0b3J5LgorICAgICAgICAqIHd0Zi9jaHJvbWl1bS9NYWluVGhyZWFkQ2hyb21pdW0uY3Bw
OgorICAgICAgICAoV1RGOjpjYWxsRnVuY3Rpb25PYmplY3QpOgorICAgICAgICAoV1RGOjpjYWxs
T25NYWluVGhyZWFkKToKKyAgICAgICAgICAgIC0gSW1wbGVtZW50IGNhbGxPbk1haW5UaHJlYWQg
Zm9yIEZ1bmN0aW9uIG9iamVjdHMuIFRoZSBub24tQ2hyb21pdW0KKyAgICAgICAgICAgICAgaW1w
bGVtZW50YXRpb24gb2YgTWFpblRocmVhZC5jcHAgYWxyZWFkeSBpbXBsZW1lbnRzIHRoaXMgZmVh
dHVyZS4KKwogMjAxMy0wMS0yMyAgSnVzdGluIFNjaHVoICA8anNjaHVoQGNocm9taXVtLm9yZz4K
IAogICAgICAgICBbQ0hST01JVU1dIFN1cHByZXNzIGM0MjY3IGJ1aWxkIHdhcm5pbmdzIGluIFdU
RiBmb3IgV2luNjQgdGFyZ2V0cwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9n
IGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IGZmMTRkYTRkZWRmM2EyY2MwYzM3YzI1
NThhNzc2ZTJmMDgzNTQ0NzcuLmM4ZGIzNDFhZTBhNDQxNzEzOWYwNjcwNzczMTgyZWUyMjYyMjhk
MzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzMCBAQAorMjAxMy0wMS0yMyAgQWRhbSBCYXJ0aCAg
PGFiYXJ0aEB3ZWJraXQub3JnPgorCisgICAgICAgIEJhY2tncm91bmRIVE1MUGFyc2VyOjpzZW5k
VG9rZW5zVG9NYWluVGhyZWFkIHNob3VsZCB1c2UgYmluZAorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTA3NjM3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhpcyBwYXRjaCByZXBsYWNlcyBvdXIgaGFuZC13
cml0dGVuIGltcGxlbWVudGF0aW9uIG9mIGJpbmQgZm9yCisgICAgICAgIGRpZFJlY2VpdmVUb2tl
bnNGcm9tQmFja2dyb3VuZFBhcnNlciB3aXRoIGJpbmQgZnJvbSBGdW5jdGlvbmFsLmguIFRvCisg
ICAgICAgIHVzZSB0aGUgZ2VuZXJpYyB2ZXJzaW9uIG9mIGJpbmQsIHdlIG5lZWQgdG8gc3dpdGNo
IHRvIHVzaW5nIFdlYWtQdHIgdG8KKyAgICAgICAgaG9sZCBhIHJlZmVyZW5jZSB0byB0aGUgbWFp
biB0aHJlYWQgcGFyc2VyIGluIHRoZSBCYWNrZ3JvdW5kSFRNTFBhcnNlci4KKworICAgICAgICAq
IGh0bWwvcGFyc2VyL0JhY2tncm91bmRIVE1MUGFyc2VyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OkJhY2tncm91bmRIVE1MUGFyc2VyOjpCYWNrZ3JvdW5kSFRNTFBhcnNlcik6CisgICAgICAgIChX
ZWJDb3JlOjpCYWNrZ3JvdW5kSFRNTFBhcnNlcjo6c2VuZFRva2Vuc1RvTWFpblRocmVhZCk6Cisg
ICAgICAgIChXZWJDb3JlOjpCYWNrZ3JvdW5kSFRNTFBhcnNlcjo6Y3JlYXRlUGFydGlhbCk6Cisg
ICAgICAgICogaHRtbC9wYXJzZXIvQmFja2dyb3VuZEhUTUxQYXJzZXIuaDoKKyAgICAgICAgKFdl
YkNvcmU6OkJhY2tncm91bmRIVE1MUGFyc2VyOjpjcmVhdGUpOgorICAgICAgICAoQmFja2dyb3Vu
ZEhUTUxQYXJzZXIpOgorICAgICAgICAoUGFyc2VyTWFwKToKKyAgICAgICAgKiBodG1sL3BhcnNl
ci9IVE1MRG9jdW1lbnRQYXJzZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTERvY3VtZW50
UGFyc2VyOjpIVE1MRG9jdW1lbnRQYXJzZXIpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTERvY3Vt
ZW50UGFyc2VyOjpzdGFydEJhY2tncm91bmRQYXJzZXIpOgorICAgICAgICAoV2ViQ29yZTo6SFRN
TERvY3VtZW50UGFyc2VyOjpzdG9wQmFja2dyb3VuZFBhcnNlcik6CisgICAgICAgICogaHRtbC9w
YXJzZXIvSFRNTERvY3VtZW50UGFyc2VyLmg6CisgICAgICAgIChIVE1MRG9jdW1lbnRQYXJzZXIp
OgorCiAyMDEzLTAxLTIzICBUb255IENoYW5nICA8dG9ueUBjaHJvbWl1bS5vcmc+CiAKICAgICAg
ICAgSW5jb3JyZWN0IHNjcm9sbGFibGUgaGVpZ2h0IGR1cmluZyBzaW1wbGlmaWVkIGxheW91dApk
aWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvRnVuY3Rpb25hbC5oIGIvU291cmNlL1dURi93dGYv
RnVuY3Rpb25hbC5oCmluZGV4IGM1YjcxMjRhMmMwYTE4ZDkwMzJmNjA5NTIzNmRkNDVhYWZjNTdh
MGUuLjBkOTE2OWYwOTU1MWMzZjVjNTE3NWM4ZTE5Nzc1OThmMGUxZTgyZjYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XVEYvd3RmL0Z1bmN0aW9uYWwuaAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9GdW5jdGlv
bmFsLmgKQEAgLTgzLDcgKzgzLDYgQEAgY2xhc3MgRnVuY3Rpb25XcmFwcGVyPFIgKCopKCk+IHsK
IHB1YmxpYzoKICAgICB0eXBlZGVmIFIgUmVzdWx0VHlwZTsKICAgICBzdGF0aWMgY29uc3QgYm9v
bCBzaG91bGRSZWZGaXJzdFBhcmFtZXRlciA9IGZhbHNlOwotICAgIHN0YXRpYyBjb25zdCBib29s
IHNob3VsZFZhbGlkYXRlRmlyc3RQYXJhbWV0ZXIgPSBmYWxzZTsKIAogICAgIGV4cGxpY2l0IEZ1
bmN0aW9uV3JhcHBlcihSICgqZnVuY3Rpb24pKCkpCiAgICAgICAgIDogbV9mdW5jdGlvbihmdW5j
dGlvbikKQEAgLTEwNCw3ICsxMDMsNiBAQCBjbGFzcyBGdW5jdGlvbldyYXBwZXI8UiAoKikoUDEp
PiB7CiBwdWJsaWM6CiAgICAgdHlwZWRlZiBSIFJlc3VsdFR5cGU7CiAgICAgc3RhdGljIGNvbnN0
IGJvb2wgc2hvdWxkUmVmRmlyc3RQYXJhbWV0ZXIgPSBmYWxzZTsKLSAgICBzdGF0aWMgY29uc3Qg
Ym9vbCBzaG91bGRWYWxpZGF0ZUZpcnN0UGFyYW1ldGVyID0gZmFsc2U7CiAKICAgICBleHBsaWNp
dCBGdW5jdGlvbldyYXBwZXIoUiAoKmZ1bmN0aW9uKShQMSkpCiAgICAgICAgIDogbV9mdW5jdGlv
bihmdW5jdGlvbikKQEAgLTEyNSw3ICsxMjMsNiBAQCBjbGFzcyBGdW5jdGlvbldyYXBwZXI8UiAo
KikoUDEsIFAyKT4gewogcHVibGljOgogICAgIHR5cGVkZWYgUiBSZXN1bHRUeXBlOwogICAgIHN0
YXRpYyBjb25zdCBib29sIHNob3VsZFJlZkZpcnN0UGFyYW1ldGVyID0gZmFsc2U7Ci0gICAgc3Rh
dGljIGNvbnN0IGJvb2wgc2hvdWxkVmFsaWRhdGVGaXJzdFBhcmFtZXRlciA9IGZhbHNlOwogCiAg
ICAgZXhwbGljaXQgRnVuY3Rpb25XcmFwcGVyKFIgKCpmdW5jdGlvbikoUDEsIFAyKSkKICAgICAg
ICAgOiBtX2Z1bmN0aW9uKGZ1bmN0aW9uKQpAQCAtMTQ2LDcgKzE0Myw2IEBAIGNsYXNzIEZ1bmN0
aW9uV3JhcHBlcjxSICgqKShQMSwgUDIsIFAzKT4gewogcHVibGljOgogICAgIHR5cGVkZWYgUiBS
ZXN1bHRUeXBlOwogICAgIHN0YXRpYyBjb25zdCBib29sIHNob3VsZFJlZkZpcnN0UGFyYW1ldGVy
ID0gZmFsc2U7Ci0gICAgc3RhdGljIGNvbnN0IGJvb2wgc2hvdWxkVmFsaWRhdGVGaXJzdFBhcmFt
ZXRlciA9IGZhbHNlOwogCiAgICAgZXhwbGljaXQgRnVuY3Rpb25XcmFwcGVyKFIgKCpmdW5jdGlv
bikoUDEsIFAyLCBQMykpCiAgICAgICAgIDogbV9mdW5jdGlvbihmdW5jdGlvbikKQEAgLTE2Nyw3
ICsxNjMsNiBAQCBjbGFzcyBGdW5jdGlvbldyYXBwZXI8UiAoQzo6KikoKT4gewogcHVibGljOgog
ICAgIHR5cGVkZWYgUiBSZXN1bHRUeXBlOwogICAgIHN0YXRpYyBjb25zdCBib29sIHNob3VsZFJl
ZkZpcnN0UGFyYW1ldGVyID0gSGFzUmVmQW5kRGVyZWY8Qz46OnZhbHVlOwotICAgIHN0YXRpYyBj
b25zdCBib29sIHNob3VsZFZhbGlkYXRlRmlyc3RQYXJhbWV0ZXIgPSB0cnVlOwogCiAgICAgZXhw
bGljaXQgRnVuY3Rpb25XcmFwcGVyKFIgKEM6OipmdW5jdGlvbikoKSkKICAgICAgICAgOiBtX2Z1
bmN0aW9uKGZ1bmN0aW9uKQpAQCAtMTc5LDYgKzE3NCwxNCBAQCBwdWJsaWM6CiAgICAgICAgIHJl
dHVybiAoYy0+Km1fZnVuY3Rpb24pKCk7CiAgICAgfQogCisgICAgUiBvcGVyYXRvcigpKGNvbnN0
IFdlYWtQdHI8Qz4mIGMpCisgICAgeworICAgICAgICBDKiBvYmogPSBjLmdldCgpOworICAgICAg
ICBpZiAoIW9iaikKKyAgICAgICAgICAgIHJldHVybiBSKCk7CisgICAgICAgIHJldHVybiAob2Jq
LT4qbV9mdW5jdGlvbikoKTsKKyAgICB9CisKIHByaXZhdGU6CiAgICAgUiAoQzo6Km1fZnVuY3Rp
b24pKCk7CiB9OwpAQCAtMTg4LDcgKzE5MSw2IEBAIGNsYXNzIEZ1bmN0aW9uV3JhcHBlcjxSIChD
OjoqKShQMSk+IHsKIHB1YmxpYzoKICAgICB0eXBlZGVmIFIgUmVzdWx0VHlwZTsKICAgICBzdGF0
aWMgY29uc3QgYm9vbCBzaG91bGRSZWZGaXJzdFBhcmFtZXRlciA9IEhhc1JlZkFuZERlcmVmPEM+
Ojp2YWx1ZTsKLSAgICBzdGF0aWMgY29uc3QgYm9vbCBzaG91bGRWYWxpZGF0ZUZpcnN0UGFyYW1l
dGVyID0gdHJ1ZTsKIAogICAgIGV4cGxpY2l0IEZ1bmN0aW9uV3JhcHBlcihSIChDOjoqZnVuY3Rp
b24pKFAxKSkKICAgICAgICAgOiBtX2Z1bmN0aW9uKGZ1bmN0aW9uKQpAQCAtMjAwLDYgKzIwMiwx
NCBAQCBwdWJsaWM6CiAgICAgICAgIHJldHVybiAoYy0+Km1fZnVuY3Rpb24pKHAxKTsKICAgICB9
CiAKKyAgICBSIG9wZXJhdG9yKCkoY29uc3QgV2Vha1B0cjxDPiYgYywgUDEgcDEpCisgICAgewor
ICAgICAgICBDKiBvYmogPSBjLmdldCgpOworICAgICAgICBpZiAoIW9iaikKKyAgICAgICAgICAg
IHJldHVybiBSKCk7CisgICAgICAgIHJldHVybiAob2JqLT4qbV9mdW5jdGlvbikocDEpOworICAg
IH0KKwogcHJpdmF0ZToKICAgICBSIChDOjoqbV9mdW5jdGlvbikoUDEpOwogfTsKQEAgLTIwOSw3
ICsyMTksNiBAQCBjbGFzcyBGdW5jdGlvbldyYXBwZXI8UiAoQzo6KikoUDEsIFAyKT4gewogcHVi
bGljOgogICAgIHR5cGVkZWYgUiBSZXN1bHRUeXBlOwogICAgIHN0YXRpYyBjb25zdCBib29sIHNo
b3VsZFJlZkZpcnN0UGFyYW1ldGVyID0gSGFzUmVmQW5kRGVyZWY8Qz46OnZhbHVlOwotICAgIHN0
YXRpYyBjb25zdCBib29sIHNob3VsZFZhbGlkYXRlRmlyc3RQYXJhbWV0ZXIgPSB0cnVlOwogCiAg
ICAgZXhwbGljaXQgRnVuY3Rpb25XcmFwcGVyKFIgKEM6OipmdW5jdGlvbikoUDEsIFAyKSkKICAg
ICAgICAgOiBtX2Z1bmN0aW9uKGZ1bmN0aW9uKQpAQCAtMjIxLDYgKzIzMCwxNCBAQCBwdWJsaWM6
CiAgICAgICAgIHJldHVybiAoYy0+Km1fZnVuY3Rpb24pKHAxLCBwMik7CiAgICAgfQogCisgICAg
UiBvcGVyYXRvcigpKGNvbnN0IFdlYWtQdHI8Qz4mIGMsIFAxIHAxLCBQMiBwMikKKyAgICB7Cisg
ICAgICAgIEMqIG9iaiA9IGMuZ2V0KCk7CisgICAgICAgIGlmICghb2JqKQorICAgICAgICAgICAg
cmV0dXJuIFIoKTsKKyAgICAgICAgcmV0dXJuIChvYmotPiptX2Z1bmN0aW9uKShwMSwgcDIpOwor
ICAgIH0KKwogcHJpdmF0ZToKICAgICBSIChDOjoqbV9mdW5jdGlvbikoUDEsIFAyKTsKIH07CkBA
IC0yMzAsNyArMjQ3LDYgQEAgY2xhc3MgRnVuY3Rpb25XcmFwcGVyPFIgKEM6OiopKFAxLCBQMiwg
UDMpPiB7CiBwdWJsaWM6CiAgICAgdHlwZWRlZiBSIFJlc3VsdFR5cGU7CiAgICAgc3RhdGljIGNv
bnN0IGJvb2wgc2hvdWxkUmVmRmlyc3RQYXJhbWV0ZXIgPSBIYXNSZWZBbmREZXJlZjxDPjo6dmFs
dWU7Ci0gICAgc3RhdGljIGNvbnN0IGJvb2wgc2hvdWxkVmFsaWRhdGVGaXJzdFBhcmFtZXRlciA9
IHRydWU7CiAKICAgICBleHBsaWNpdCBGdW5jdGlvbldyYXBwZXIoUiAoQzo6KmZ1bmN0aW9uKShQ
MSwgUDIsIFAzKSkKICAgICAgICAgOiBtX2Z1bmN0aW9uKGZ1bmN0aW9uKQpAQCAtMjQyLDYgKzI1
OCwxNCBAQCBwdWJsaWM6CiAgICAgICAgIHJldHVybiAoYy0+Km1fZnVuY3Rpb24pKHAxLCBwMiwg
cDMpOwogICAgIH0KIAorICAgIFIgb3BlcmF0b3IoKShjb25zdCBXZWFrUHRyPEM+JiBjLCBQMSBw
MSwgUDIgcDIsIFAzIHAzKQorICAgIHsKKyAgICAgICAgQyogb2JqID0gYy5nZXQoKTsKKyAgICAg
ICAgaWYgKCFvYmopCisgICAgICAgICAgICByZXR1cm4gUigpOworICAgICAgICByZXR1cm4gKG9i
ai0+Km1fZnVuY3Rpb24pKHAxLCBwMiwgcDMpOworICAgIH0KKwogcHJpdmF0ZToKICAgICBSIChD
OjoqbV9mdW5jdGlvbikoUDEsIFAyLCBQMyk7CiB9OwpAQCAtMjUxLDcgKzI3NSw2IEBAIGNsYXNz
IEZ1bmN0aW9uV3JhcHBlcjxSIChDOjoqKShQMSwgUDIsIFAzLCBQNCk+IHsKIHB1YmxpYzoKICAg
ICB0eXBlZGVmIFIgUmVzdWx0VHlwZTsKICAgICBzdGF0aWMgY29uc3QgYm9vbCBzaG91bGRSZWZG
aXJzdFBhcmFtZXRlciA9IEhhc1JlZkFuZERlcmVmPEM+Ojp2YWx1ZTsKLSAgICBzdGF0aWMgY29u
c3QgYm9vbCBzaG91bGRWYWxpZGF0ZUZpcnN0UGFyYW1ldGVyID0gdHJ1ZTsKIAogICAgIGV4cGxp
Y2l0IEZ1bmN0aW9uV3JhcHBlcihSIChDOjoqZnVuY3Rpb24pKFAxLCBQMiwgUDMsIFA0KSkKICAg
ICAgICAgOiBtX2Z1bmN0aW9uKGZ1bmN0aW9uKQpAQCAtMjYzLDYgKzI4NiwxNCBAQCBwdWJsaWM6
CiAgICAgICAgIHJldHVybiAoYy0+Km1fZnVuY3Rpb24pKHAxLCBwMiwgcDMsIHA0KTsKICAgICB9
CiAKKyAgICBSIG9wZXJhdG9yKCkoY29uc3QgV2Vha1B0cjxDPiYgYywgUDEgcDEsIFAyIHAyLCBQ
MyBwMywgUDQgcDQpCisgICAgeworICAgICAgICBDKiBvYmogPSBjLmdldCgpOworICAgICAgICBp
ZiAoIW9iaikKKyAgICAgICAgICAgIHJldHVybiBSKCk7CisgICAgICAgIHJldHVybiAob2JqLT4q
bV9mdW5jdGlvbikocDEsIHAyLCBwMywgcDQpOworICAgIH0KKwogcHJpdmF0ZToKICAgICBSIChD
OjoqbV9mdW5jdGlvbikoUDEsIFAyLCBQMywgUDQpOwogfTsKQEAgLTI3Miw3ICszMDMsNiBAQCBj
bGFzcyBGdW5jdGlvbldyYXBwZXI8UiAoQzo6KikoUDEsIFAyLCBQMywgUDQsIFA1KT4gewogcHVi
bGljOgogICAgIHR5cGVkZWYgUiBSZXN1bHRUeXBlOwogICAgIHN0YXRpYyBjb25zdCBib29sIHNo
b3VsZFJlZkZpcnN0UGFyYW1ldGVyID0gSGFzUmVmQW5kRGVyZWY8Qz46OnZhbHVlOwotICAgIHN0
YXRpYyBjb25zdCBib29sIHNob3VsZFZhbGlkYXRlRmlyc3RQYXJhbWV0ZXIgPSB0cnVlOwogCiAg
ICAgZXhwbGljaXQgRnVuY3Rpb25XcmFwcGVyKFIgKEM6OipmdW5jdGlvbikoUDEsIFAyLCBQMywg
UDQsIFA1KSkKICAgICAgICAgOiBtX2Z1bmN0aW9uKGZ1bmN0aW9uKQpAQCAtMjg0LDYgKzMxNCwx
NCBAQCBwdWJsaWM6CiAgICAgICAgIHJldHVybiAoYy0+Km1fZnVuY3Rpb24pKHAxLCBwMiwgcDMs
IHA0LCBwNSk7CiAgICAgfQogCisgICAgUiBvcGVyYXRvcigpKGNvbnN0IFdlYWtQdHI8Qz4mIGMs
IFAxIHAxLCBQMiBwMiwgUDMgcDMsIFA0IHA0LCBQNSBwNSkKKyAgICB7CisgICAgICAgIEMqIG9i
aiA9IGMuZ2V0KCk7CisgICAgICAgIGlmICghb2JqKQorICAgICAgICAgICAgcmV0dXJuIFIoKTsK
KyAgICAgICAgcmV0dXJuIChvYmotPiptX2Z1bmN0aW9uKShwMSwgcDIsIHAzLCBwNCwgcDUpOwor
ICAgIH0KKwogcHJpdmF0ZToKICAgICBSIChDOjoqbV9mdW5jdGlvbikoUDEsIFAyLCBQMywgUDQs
IFA1KTsKIH07CkBAIC0yOTQsNyArMzMyLDYgQEAgY2xhc3MgRnVuY3Rpb25XcmFwcGVyPFIgKF4p
KCk+IHsKIHB1YmxpYzoKICAgICB0eXBlZGVmIFIgUmVzdWx0VHlwZTsKICAgICBzdGF0aWMgY29u
c3QgYm9vbCBzaG91bGRSZWZGaXJzdFBhcmFtZXRlciA9IGZhbHNlOwotICAgIHN0YXRpYyBjb25z
dCBib29sIHNob3VsZFZhbGlkYXRlRmlyc3RQYXJhbWV0ZXIgPSBmYWxzZTsKIAogICAgIGV4cGxp
Y2l0IEZ1bmN0aW9uV3JhcHBlcihSICheYmxvY2spKCkpCiAgICAgICAgIDogbV9ibG9jayhCbG9j
a19jb3B5KGJsb2NrKSkKQEAgLTMzNSw3ICszNzIsNiBAQCB0ZW1wbGF0ZTx0eXBlbmFtZSBUPiBz
dHJ1Y3QgUGFyYW1TdG9yYWdlVHJhaXRzIHsKICAgICB0eXBlZGVmIFQgU3RvcmFnZVR5cGU7CiAK
ICAgICBzdGF0aWMgU3RvcmFnZVR5cGUgd3JhcChjb25zdCBUJiB2YWx1ZSkgeyByZXR1cm4gdmFs
dWU7IH0KLSAgICBzdGF0aWMgYm9vbCB2YWxpZGF0ZShjb25zdCBTdG9yYWdlVHlwZSYpIHsgcmV0
dXJuIHRydWU7IH0KICAgICBzdGF0aWMgY29uc3QgVCYgdW53cmFwKGNvbnN0IFN0b3JhZ2VUeXBl
JiB2YWx1ZSkgeyByZXR1cm4gdmFsdWU7IH0KIH07CiAKQEAgLTM0Myw3ICszNzksNiBAQCB0ZW1w
bGF0ZTx0eXBlbmFtZSBUPiBzdHJ1Y3QgUGFyYW1TdG9yYWdlVHJhaXRzPFBhc3NSZWZQdHI8VD4g
PiB7CiAgICAgdHlwZWRlZiBSZWZQdHI8VD4gU3RvcmFnZVR5cGU7CiAKICAgICBzdGF0aWMgU3Rv
cmFnZVR5cGUgd3JhcChQYXNzUmVmUHRyPFQ+IHZhbHVlKSB7IHJldHVybiB2YWx1ZTsgfQotICAg
IHN0YXRpYyBib29sIHZhbGlkYXRlKGNvbnN0IFN0b3JhZ2VUeXBlJikgeyByZXR1cm4gdHJ1ZTsg
fQogICAgIHN0YXRpYyBUKiB1bndyYXAoY29uc3QgU3RvcmFnZVR5cGUmIHZhbHVlKSB7IHJldHVy
biB2YWx1ZS5nZXQoKTsgfQogfTsKIApAQCAtMzUxLDI2ICszODYsMTUgQEAgdGVtcGxhdGU8dHlw
ZW5hbWUgVD4gc3RydWN0IFBhcmFtU3RvcmFnZVRyYWl0czxSZWZQdHI8VD4gPiB7CiAgICAgdHlw
ZWRlZiBSZWZQdHI8VD4gU3RvcmFnZVR5cGU7CiAKICAgICBzdGF0aWMgU3RvcmFnZVR5cGUgd3Jh
cChSZWZQdHI8VD4gdmFsdWUpIHsgcmV0dXJuIHZhbHVlLnJlbGVhc2UoKTsgfQotICAgIHN0YXRp
YyBib29sIHZhbGlkYXRlKGNvbnN0IFN0b3JhZ2VUeXBlJikgeyByZXR1cm4gdHJ1ZTsgfQogICAg
IHN0YXRpYyBUKiB1bndyYXAoY29uc3QgU3RvcmFnZVR5cGUmIHZhbHVlKSB7IHJldHVybiB2YWx1
ZS5nZXQoKTsgfQogfTsKIAotdGVtcGxhdGU8dHlwZW5hbWUgVD4gc3RydWN0IFBhcmFtU3RvcmFn
ZVRyYWl0czxXZWFrUHRyPFQ+ID4gewotICAgIHR5cGVkZWYgV2Vha1B0cjxUPiBTdG9yYWdlVHlw
ZTsKLQotICAgIHN0YXRpYyBTdG9yYWdlVHlwZSB3cmFwKFdlYWtQdHI8VD4gdmFsdWUpIHsgcmV0
dXJuIHZhbHVlOyB9Ci0gICAgc3RhdGljIGJvb2wgdmFsaWRhdGUoY29uc3QgU3RvcmFnZVR5cGUm
IHZhbHVlKSB7IHJldHVybiB2YWx1ZS5nZXQoKTsgfQotICAgIHN0YXRpYyBUKiB1bndyYXAoY29u
c3QgU3RvcmFnZVR5cGUmIHZhbHVlKSB7IHJldHVybiB2YWx1ZS5nZXQoKTsgfQotfTsKLQotCiB0
ZW1wbGF0ZTx0eXBlbmFtZT4gY2xhc3MgUmV0YWluUHRyOwogCiB0ZW1wbGF0ZTx0eXBlbmFtZSBU
PiBzdHJ1Y3QgUGFyYW1TdG9yYWdlVHJhaXRzPFJldGFpblB0cjxUPiA+IHsKICAgICB0eXBlZGVm
IFJldGFpblB0cjxUPiBTdG9yYWdlVHlwZTsKIAogICAgIHN0YXRpYyBTdG9yYWdlVHlwZSB3cmFw
KGNvbnN0IFJldGFpblB0cjxUPiYgdmFsdWUpIHsgcmV0dXJuIHZhbHVlOyB9Ci0gICAgc3RhdGlj
IGJvb2wgdmFsaWRhdGUoY29uc3QgU3RvcmFnZVR5cGUmKSB7IHJldHVybiB0cnVlOyB9CiAgICAg
c3RhdGljIHR5cGVuYW1lIFJldGFpblB0cjxUPjo6UHRyVHlwZSB1bndyYXAoY29uc3QgU3RvcmFn
ZVR5cGUmIHZhbHVlKSB7IHJldHVybiB2YWx1ZS5nZXQoKTsgfQogfTsKIApAQCAtNDI1LDggKzQ0
OSw2IEBAIHB1YmxpYzoKIAogICAgIHZpcnR1YWwgdHlwZW5hbWUgRnVuY3Rpb25XcmFwcGVyOjpS
ZXN1bHRUeXBlIG9wZXJhdG9yKCkoKQogICAgIHsKLSAgICAgICAgaWYgKEZ1bmN0aW9uV3JhcHBl
cjo6c2hvdWxkVmFsaWRhdGVGaXJzdFBhcmFtZXRlciAmJiAhUGFyYW1TdG9yYWdlVHJhaXRzPFAx
Pjo6dmFsaWRhdGUobV9wMSkpCi0gICAgICAgICAgICByZXR1cm4gdHlwZW5hbWUgRnVuY3Rpb25X
cmFwcGVyOjpSZXN1bHRUeXBlKCk7CiAgICAgICAgIHJldHVybiBtX2Z1bmN0aW9uV3JhcHBlcihQ
YXJhbVN0b3JhZ2VUcmFpdHM8UDE+Ojp1bndyYXAobV9wMSkpOwogICAgIH0KIApAQCAtNDUzLDgg
KzQ3NSw2IEBAIHB1YmxpYzoKIAogICAgIHZpcnR1YWwgdHlwZW5hbWUgRnVuY3Rpb25XcmFwcGVy
OjpSZXN1bHRUeXBlIG9wZXJhdG9yKCkoKQogICAgIHsKLSAgICAgICAgaWYgKEZ1bmN0aW9uV3Jh
cHBlcjo6c2hvdWxkVmFsaWRhdGVGaXJzdFBhcmFtZXRlciAmJiAhUGFyYW1TdG9yYWdlVHJhaXRz
PFAxPjo6dmFsaWRhdGUobV9wMSkpCi0gICAgICAgICAgICByZXR1cm4gdHlwZW5hbWUgRnVuY3Rp
b25XcmFwcGVyOjpSZXN1bHRUeXBlKCk7CiAgICAgICAgIHJldHVybiBtX2Z1bmN0aW9uV3JhcHBl
cihQYXJhbVN0b3JhZ2VUcmFpdHM8UDE+Ojp1bndyYXAobV9wMSksIFBhcmFtU3RvcmFnZVRyYWl0
czxQMj46OnVud3JhcChtX3AyKSk7CiAgICAgfQogCkBAIC00ODMsOCArNTAzLDYgQEAgcHVibGlj
OgogCiAgICAgdmlydHVhbCB0eXBlbmFtZSBGdW5jdGlvbldyYXBwZXI6OlJlc3VsdFR5cGUgb3Bl
cmF0b3IoKSgpCiAgICAgewotICAgICAgICBpZiAoRnVuY3Rpb25XcmFwcGVyOjpzaG91bGRWYWxp
ZGF0ZUZpcnN0UGFyYW1ldGVyICYmICFQYXJhbVN0b3JhZ2VUcmFpdHM8UDE+Ojp2YWxpZGF0ZSht
X3AxKSkKLSAgICAgICAgICAgIHJldHVybiB0eXBlbmFtZSBGdW5jdGlvbldyYXBwZXI6OlJlc3Vs
dFR5cGUoKTsKICAgICAgICAgcmV0dXJuIG1fZnVuY3Rpb25XcmFwcGVyKFBhcmFtU3RvcmFnZVRy
YWl0czxQMT46OnVud3JhcChtX3AxKSwgUGFyYW1TdG9yYWdlVHJhaXRzPFAyPjo6dW53cmFwKG1f
cDIpLCBQYXJhbVN0b3JhZ2VUcmFpdHM8UDM+Ojp1bndyYXAobV9wMykpOwogICAgIH0KIApAQCAt
NTE1LDggKzUzMyw2IEBAIHB1YmxpYzoKIAogICAgIHZpcnR1YWwgdHlwZW5hbWUgRnVuY3Rpb25X
cmFwcGVyOjpSZXN1bHRUeXBlIG9wZXJhdG9yKCkoKQogICAgIHsKLSAgICAgICAgaWYgKEZ1bmN0
aW9uV3JhcHBlcjo6c2hvdWxkVmFsaWRhdGVGaXJzdFBhcmFtZXRlciAmJiAhUGFyYW1TdG9yYWdl
VHJhaXRzPFAxPjo6dmFsaWRhdGUobV9wMSkpCi0gICAgICAgICAgICByZXR1cm4gdHlwZW5hbWUg
RnVuY3Rpb25XcmFwcGVyOjpSZXN1bHRUeXBlKCk7CiAgICAgICAgIHJldHVybiBtX2Z1bmN0aW9u
V3JhcHBlcihQYXJhbVN0b3JhZ2VUcmFpdHM8UDE+Ojp1bndyYXAobV9wMSksIFBhcmFtU3RvcmFn
ZVRyYWl0czxQMj46OnVud3JhcChtX3AyKSwgUGFyYW1TdG9yYWdlVHJhaXRzPFAzPjo6dW53cmFw
KG1fcDMpLCBQYXJhbVN0b3JhZ2VUcmFpdHM8UDQ+Ojp1bndyYXAobV9wNCkpOwogICAgIH0KIApA
QCAtNTQ5LDggKzU2NSw2IEBAIHB1YmxpYzoKIAogICAgIHZpcnR1YWwgdHlwZW5hbWUgRnVuY3Rp
b25XcmFwcGVyOjpSZXN1bHRUeXBlIG9wZXJhdG9yKCkoKQogICAgIHsKLSAgICAgICAgaWYgKEZ1
bmN0aW9uV3JhcHBlcjo6c2hvdWxkVmFsaWRhdGVGaXJzdFBhcmFtZXRlciAmJiAhUGFyYW1TdG9y
YWdlVHJhaXRzPFAxPjo6dmFsaWRhdGUobV9wMSkpCi0gICAgICAgICAgICByZXR1cm4gdHlwZW5h
bWUgRnVuY3Rpb25XcmFwcGVyOjpSZXN1bHRUeXBlKCk7CiAgICAgICAgIHJldHVybiBtX2Z1bmN0
aW9uV3JhcHBlcihQYXJhbVN0b3JhZ2VUcmFpdHM8UDE+Ojp1bndyYXAobV9wMSksIFBhcmFtU3Rv
cmFnZVRyYWl0czxQMj46OnVud3JhcChtX3AyKSwgUGFyYW1TdG9yYWdlVHJhaXRzPFAzPjo6dW53
cmFwKG1fcDMpLCBQYXJhbVN0b3JhZ2VUcmFpdHM8UDQ+Ojp1bndyYXAobV9wNCksIFBhcmFtU3Rv
cmFnZVRyYWl0czxQNT46OnVud3JhcChtX3A1KSk7CiAgICAgfQogCkBAIC01ODUsOCArNTk5LDYg
QEAgcHVibGljOgogCiAgICAgdmlydHVhbCB0eXBlbmFtZSBGdW5jdGlvbldyYXBwZXI6OlJlc3Vs
dFR5cGUgb3BlcmF0b3IoKSgpCiAgICAgewotICAgICAgICBpZiAoRnVuY3Rpb25XcmFwcGVyOjpz
aG91bGRWYWxpZGF0ZUZpcnN0UGFyYW1ldGVyICYmICFQYXJhbVN0b3JhZ2VUcmFpdHM8UDE+Ojp2
YWxpZGF0ZShtX3AxKSkKLSAgICAgICAgICAgIHJldHVybiB0eXBlbmFtZSBGdW5jdGlvbldyYXBw
ZXI6OlJlc3VsdFR5cGUoKTsKICAgICAgICAgcmV0dXJuIG1fZnVuY3Rpb25XcmFwcGVyKFBhcmFt
U3RvcmFnZVRyYWl0czxQMT46OnVud3JhcChtX3AxKSwgUGFyYW1TdG9yYWdlVHJhaXRzPFAyPjo6
dW53cmFwKG1fcDIpLCBQYXJhbVN0b3JhZ2VUcmFpdHM8UDM+Ojp1bndyYXAobV9wMyksIFBhcmFt
U3RvcmFnZVRyYWl0czxQND46OnVud3JhcChtX3A0KSwgUGFyYW1TdG9yYWdlVHJhaXRzPFA1Pjo6
dW53cmFwKG1fcDUpLCBQYXJhbVN0b3JhZ2VUcmFpdHM8UDY+Ojp1bndyYXAobV9wNikpOwogICAg
IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvV2Vha1B0ci5oIGIvU291cmNlL1dURi93
dGYvV2Vha1B0ci5oCmluZGV4IDBlNjQ1MDYyMDA2ZTc4NGMzZjk5MmEzZDM0YjVlMjJjODkxMGM1
YmIuLjI4OWExMGMxOGNhZTA4MDhlMzg5NDJkYmM5ZDIwNmIxODA2MTFkODggMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XVEYvd3RmL1dlYWtQdHIuaAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9XZWFrUHRyLmgK
QEAgLTk2LDYgKzk2LDE0IEBAIHB1YmxpYzoKICAgICAvLyBXZSBzaG91bGQgY29uc2lkZXIgaGF2
aW5nIGNyZWF0ZVdlYWtQdHIgcG9wdWxhdGUgbV9yZWYgdGhlIGZpcnN0IHRpbWUgY3JlYXRlV2Vh
a1B0ciBpcyBjYWxsZWQuCiAgICAgV2Vha1B0cjxUPiBjcmVhdGVXZWFrUHRyKCkgeyByZXR1cm4g
V2Vha1B0cjxUPihtX3JlZik7IH0KIAorICAgIHZvaWQgcmV2b2tlQWxsKCkKKyAgICB7CisgICAg
ICAgIFQqIHB0ciA9IG1fcmVmLT5nZXQoKTsKKyAgICAgICAgbV9yZWYtPmNsZWFyKCk7CisgICAg
ICAgIC8vIFdlIGNyZWF0ZSBhIG5ldyBXZWFrUmVmZXJlbmNlIHNvIHRoYXQgZnV0dXJlIGNhbGxz
IHRvIGNyZWF0ZVdlYWtQdHIoKSBjcmVhdGUgbm9uemVybyBXZWFrUHRycy4KKyAgICAgICAgbV9y
ZWYgPSBJbnRlcm5hbDo6V2Vha1JlZmVyZW5jZTxUPjo6Y3JlYXRlKHB0cik7CisgICAgfQorCiBw
cml2YXRlOgogICAgIFJlZlB0cjxJbnRlcm5hbDo6V2Vha1JlZmVyZW5jZTxUPiA+IG1fcmVmOwog
fTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL2Nocm9taXVtL01haW5UaHJlYWRDaHJvbWl1
bS5jcHAgYi9Tb3VyY2UvV1RGL3d0Zi9jaHJvbWl1bS9NYWluVGhyZWFkQ2hyb21pdW0uY3BwCmlu
ZGV4IDllNjU5MmI1NzE1Njc5YWUyYmM5YTZkMWEwYjZmM2I4YzllMThlODEuLjQwYjJmMDhiZGQz
MGU5NzM2ZTcxNjk4YzI2Mzg5NjUwMzEzZDlkMWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3Rm
L2Nocm9taXVtL01haW5UaHJlYWRDaHJvbWl1bS5jcHAKKysrIGIvU291cmNlL1dURi93dGYvY2hy
b21pdW0vTWFpblRocmVhZENocm9taXVtLmNwcApAQCAtMzQsNiArMzQsNyBAQAogI2luY2x1ZGUg
IkFzc2VydGlvbnMuaCIKICNpbmNsdWRlICJDaHJvbWl1bVRocmVhZGluZy5oIgogI2luY2x1ZGUg
IlRocmVhZGluZy5oIgorI2luY2x1ZGUgPHd0Zi9GdW5jdGlvbmFsLmg+CiAKIG5hbWVzcGFjZSBX
VEYgewogCkBAIC01NCw2ICs1NSwxOCBAQCB2b2lkIGNhbGxPbk1haW5UaHJlYWQoTWFpblRocmVh
ZEZ1bmN0aW9uKiBmdW5jdGlvbiwgdm9pZCogY29udGV4dCkKICAgICBDaHJvbWl1bVRocmVhZGlu
Zzo6Y2FsbE9uTWFpblRocmVhZChmdW5jdGlvbiwgY29udGV4dCk7CiB9CiAKK3N0YXRpYyB2b2lk
IGNhbGxGdW5jdGlvbk9iamVjdCh2b2lkKiBjb250ZXh0KQoreworICAgIEZ1bmN0aW9uPHZvaWQo
KT4qIGZ1bmN0aW9uID0gc3RhdGljX2Nhc3Q8RnVuY3Rpb248dm9pZCgpPio+KGNvbnRleHQpOwor
ICAgICgqZnVuY3Rpb24pKCk7CisgICAgZGVsZXRlIGZ1bmN0aW9uOworfQorCit2b2lkIGNhbGxP
bk1haW5UaHJlYWQoY29uc3QgRnVuY3Rpb248dm9pZCgpPiYgZnVuY3Rpb24pCit7CisgICAgY2Fs
bE9uTWFpblRocmVhZChjYWxsRnVuY3Rpb25PYmplY3QsIG5ldyBGdW5jdGlvbjx2b2lkKCk+KGZ1
bmN0aW9uKSk7Cit9CisKIHZvaWQgY2FsbE9uTWFpblRocmVhZEFuZFdhaXQoTWFpblRocmVhZEZ1
bmN0aW9uKiwgdm9pZCopCiB7CiAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9CYWNrZ3JvdW5kSFRNTFBhcnNlci5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9CYWNrZ3JvdW5kSFRNTFBhcnNlci5jcHAKaW5kZXgg
Y2ZkMzYzZjRkMTBmZmIxMGZiZWNlYzdjOTIwNDVlMjc2OGY3NDkwOS4uYzBlZjQwNDdiOTg2ZmYx
YTZhM2Q3OTg0MjQ5MGJlODkzMmE3NjZjYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRt
bC9wYXJzZXIvQmFja2dyb3VuZEhUTUxQYXJzZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0
bWwvcGFyc2VyL0JhY2tncm91bmRIVE1MUGFyc2VyLmNwcApAQCAtNjgsOSArNjgsNiBAQCBzdGF0
aWMgYm9vbCB0aHJlYWRTYWZlTWF0Y2goY29uc3QgU3RyaW5nJiBsb2NhbE5hbWUsIGNvbnN0IFF1
YWxpZmllZE5hbWUmIHFOYW1lKQogICAgIHJldHVybiB0aHJlYWRTYWZlRXF1YWwobG9jYWxOYW1l
LmltcGwoKSwgcU5hbWUubG9jYWxOYW1lKCkuaW1wbCgpKTsKIH0KIAotdHlwZWRlZiBjb25zdCB2
b2lkKiBQYXJzZXJJZGVudGlmaWVyOwotY2xhc3MgSFRNTERvY3VtZW50UGFyc2VyOwotCiBQYXJz
ZXJNYXAmIHBhcnNlck1hcCgpCiB7CiAgICAgLy8gVGhpcyBpbml0aWFsaXphdGlvbiBhc3N1bWVz
IHRoYXQgdGhpcyB3aWxsIGJlIGluaXRpYWxpemUgb24gdGhlIG1haW4gdGhyZWFkIGJlZm9yZQpA
QCAtODUsMTcgKzgyLDExIEBAIFBhcnNlck1hcDo6QmFja2dyb3VuZFBhcnNlck1hcCYgUGFyc2Vy
TWFwOjpiYWNrZ3JvdW5kUGFyc2VycygpCiAgICAgcmV0dXJuIG1fYmFja2dyb3VuZFBhcnNlcnM7
CiB9CiAKLVBhcnNlck1hcDo6TWFpblRocmVhZFBhcnNlck1hcCYgUGFyc2VyTWFwOjptYWluVGhy
ZWFkUGFyc2VycygpCi17Ci0gICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsKLSAgICByZXR1cm4g
bV9tYWluVGhyZWFkUGFyc2VyczsKLX0KLQotQmFja2dyb3VuZEhUTUxQYXJzZXI6OkJhY2tncm91
bmRIVE1MUGFyc2VyKGNvbnN0IEhUTUxQYXJzZXJPcHRpb25zJiBvcHRpb25zLCBQYXJzZXJJZGVu
dGlmaWVyIGlkZW50aWZpZXIpCitCYWNrZ3JvdW5kSFRNTFBhcnNlcjo6QmFja2dyb3VuZEhUTUxQ
YXJzZXIoY29uc3QgSFRNTFBhcnNlck9wdGlvbnMmIG9wdGlvbnMsIFdlYWtQdHI8SFRNTERvY3Vt
ZW50UGFyc2VyPiBwYXJzZXIpCiAgICAgOiBtX2luRm9yZWlnbkNvbnRlbnQoZmFsc2UpCiAgICAg
LCBtX3Rva2VuaXplcihIVE1MVG9rZW5pemVyOjpjcmVhdGUob3B0aW9ucykpCiAgICAgLCBtX29w
dGlvbnMob3B0aW9ucykKLSAgICAsIG1fcGFyc2VySWRlbnRpZmVyKGlkZW50aWZpZXIpCisgICAg
LCBtX3BhcnNlcihwYXJzZXIpCiAgICAgLCBtX3BlbmRpbmdUb2tlbnMoYWRvcHRQdHIobmV3IENv
bXBhY3RIVE1MVG9rZW5TdHJlYW0pKQogewogfQpAQCAtMTczLDI5ICsxNjQsNiBAQCB2b2lkIEJh
Y2tncm91bmRIVE1MUGFyc2VyOjpwdW1wVG9rZW5pemVyKCkKICAgICBzZW5kVG9rZW5zVG9NYWlu
VGhyZWFkKCk7CiB9CiAKLWNsYXNzIFRva2VuRGVsaXZlcnkgewotICAgIFdURl9NQUtFX05PTkNP
UFlBQkxFKFRva2VuRGVsaXZlcnkpOwotcHVibGljOgotICAgIFRva2VuRGVsaXZlcnkoKQotICAg
ICAgICA6IGlkZW50aWZpZXIoMCkKLSAgICB7Ci0gICAgfQotCi0gICAgUGFyc2VySWRlbnRpZmll
ciBpZGVudGlmaWVyOwotICAgIE93blB0cjxDb21wYWN0SFRNTFRva2VuU3RyZWFtPiB0b2tlbnM7
Ci0gICAgc3RhdGljIHZvaWQgZXhlY3V0ZSh2b2lkKiBjb250ZXh0KQotICAgIHsKLSAgICAgICAg
VG9rZW5EZWxpdmVyeSogZGVsaXZlcnkgPSBzdGF0aWNfY2FzdDxUb2tlbkRlbGl2ZXJ5Kj4oY29u
dGV4dCk7Ci0gICAgICAgIEhUTUxEb2N1bWVudFBhcnNlciogcGFyc2VyID0gcGFyc2VyTWFwKCku
bWFpblRocmVhZFBhcnNlcnMoKS5nZXQoZGVsaXZlcnktPmlkZW50aWZpZXIpOwotICAgICAgICBp
ZiAocGFyc2VyKQotICAgICAgICAgICAgcGFyc2VyLT5kaWRSZWNlaXZlVG9rZW5zRnJvbUJhY2tn
cm91bmRQYXJzZXIoZGVsaXZlcnktPnRva2Vucy5yZWxlYXNlKCkpOwotICAgICAgICAvLyBGSVhN
RTogSWRlYWxseSB3ZSB3b3VsZG4ndCBuZWVkIHRvIGNhbGwgZGVsZXRlIG1hbnVhbGx5LiBJbnN0
ZWFkCi0gICAgICAgIC8vIHdlIHdvdWxkIGxpa2UgYW4gQVBJIHdoZXJlIHRoZSBtZXNzYWdlIHF1
ZXVlIG93bnMgdGhlIHRhc2tzIGFuZAotICAgICAgICAvLyB0YWtlcyBjYXJlIG9mIGRlbGV0aW5n
IHRoZW0uCi0gICAgICAgIGRlbGV0ZSBkZWxpdmVyeTsKLSAgICB9Ci19OwotCiB2b2lkIEJhY2tn
cm91bmRIVE1MUGFyc2VyOjpzZW5kVG9rZW5zVG9NYWluVGhyZWFkKCkKIHsKICAgICBpZiAobV9w
ZW5kaW5nVG9rZW5zLT5pc0VtcHR5KCkpCkBAIC0yMDUsMTggKzE3MywxNSBAQCB2b2lkIEJhY2tn
cm91bmRIVE1MUGFyc2VyOjpzZW5kVG9rZW5zVG9NYWluVGhyZWFkKCkKICAgICBjaGVja1RoYXRU
b2tlbnNBcmVTYWZlVG9TZW5kVG9Bbm90aGVyVGhyZWFkKG1fcGVuZGluZ1Rva2Vucy5nZXQoKSk7
CiAjZW5kaWYKIAotICAgIFRva2VuRGVsaXZlcnkqIGRlbGl2ZXJ5ID0gbmV3IFRva2VuRGVsaXZl
cnk7Ci0gICAgZGVsaXZlcnktPmlkZW50aWZpZXIgPSBtX3BhcnNlcklkZW50aWZlcjsKLSAgICBk
ZWxpdmVyeS0+dG9rZW5zID0gbV9wZW5kaW5nVG9rZW5zLnJlbGVhc2UoKTsKLSAgICBjYWxsT25N
YWluVGhyZWFkKFRva2VuRGVsaXZlcnk6OmV4ZWN1dGUsIGRlbGl2ZXJ5KTsKKyAgICBjYWxsT25N
YWluVGhyZWFkKGJpbmQoJkhUTUxEb2N1bWVudFBhcnNlcjo6ZGlkUmVjZWl2ZVRva2Vuc0Zyb21C
YWNrZ3JvdW5kUGFyc2VyLCBtX3BhcnNlciwgbV9wZW5kaW5nVG9rZW5zLnJlbGVhc2UoKSkpOwog
CiAgICAgbV9wZW5kaW5nVG9rZW5zID0gYWRvcHRQdHIobmV3IENvbXBhY3RIVE1MVG9rZW5TdHJl
YW0pOwogfQogCi12b2lkIEJhY2tncm91bmRIVE1MUGFyc2VyOjpjcmVhdGVQYXJ0aWFsKFBhcnNl
cklkZW50aWZpZXIgaWRlbnRpZmllciwgSFRNTFBhcnNlck9wdGlvbnMgb3B0aW9ucykKK3ZvaWQg
QmFja2dyb3VuZEhUTUxQYXJzZXI6OmNyZWF0ZVBhcnRpYWwoUGFyc2VySWRlbnRpZmllciBpZGVu
dGlmaWVyLCBIVE1MUGFyc2VyT3B0aW9ucyBvcHRpb25zLCBXZWFrUHRyPEhUTUxEb2N1bWVudFBh
cnNlcj4gcGFyc2VyKQogewogICAgIEFTU0VSVCghcGFyc2VyTWFwKCkuYmFja2dyb3VuZFBhcnNl
cnMoKS5nZXQoaWRlbnRpZmllcikpOwotICAgIHBhcnNlck1hcCgpLmJhY2tncm91bmRQYXJzZXJz
KCkuc2V0KGlkZW50aWZpZXIsIEJhY2tncm91bmRIVE1MUGFyc2VyOjpjcmVhdGUob3B0aW9ucywg
aWRlbnRpZmllcikpOworICAgIHBhcnNlck1hcCgpLmJhY2tncm91bmRQYXJzZXJzKCkuc2V0KGlk
ZW50aWZpZXIsIEJhY2tncm91bmRIVE1MUGFyc2VyOjpjcmVhdGUob3B0aW9ucywgcGFyc2VyKSk7
CiB9CiAKIHZvaWQgQmFja2dyb3VuZEhUTUxQYXJzZXI6OnN0b3BQYXJ0aWFsKFBhcnNlcklkZW50
aWZpZXIgaWRlbnRpZmllcikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2Vy
L0JhY2tncm91bmRIVE1MUGFyc2VyLmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9CYWNr
Z3JvdW5kSFRNTFBhcnNlci5oCmluZGV4IDJlNGRiNDE5YzBmNWJkMmQyYTE2ZGI5M2JjYTRhY2Mx
M2E5NmQ5MWUuLmU2ZTgyNzZmNmY4MDIyZWE4ZDUyZjkzZjQwY2IxZTFjYzA1NjkxODEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0JhY2tncm91bmRIVE1MUGFyc2VyLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvQmFja2dyb3VuZEhUTUxQYXJzZXIuaApA
QCAtMzIsNiArMzIsNyBAQAogI2luY2x1ZGUgIkhUTUxQYXJzZXJPcHRpb25zLmgiCiAjaW5jbHVk
ZSAiSFRNTFRva2VuLmgiCiAjaW5jbHVkZSAiSFRNTFRva2VuaXplci5oIgorI2luY2x1ZGUgPHd0
Zi9XZWFrUHRyLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApAQCAtNDQsMTggKzQ1LDE4IEBA
IHB1YmxpYzoKICAgICB2b2lkIGFwcGVuZChjb25zdCBTdHJpbmcmKTsKICAgICB2b2lkIGZpbmlz
aCgpOwogCi0gICAgc3RhdGljIFBhc3NPd25QdHI8QmFja2dyb3VuZEhUTUxQYXJzZXI+IGNyZWF0
ZShjb25zdCBIVE1MUGFyc2VyT3B0aW9ucyYgb3B0aW9ucywgUGFyc2VySWRlbnRpZmllciBpZGVu
dGlmaWVyKQorICAgIHN0YXRpYyBQYXNzT3duUHRyPEJhY2tncm91bmRIVE1MUGFyc2VyPiBjcmVh
dGUoY29uc3QgSFRNTFBhcnNlck9wdGlvbnMmIG9wdGlvbnMsIFdlYWtQdHI8SFRNTERvY3VtZW50
UGFyc2VyPiBwYXJzZXIpCiAgICAgewotICAgICAgICByZXR1cm4gYWRvcHRQdHIobmV3IEJhY2tn
cm91bmRIVE1MUGFyc2VyKG9wdGlvbnMsIGlkZW50aWZpZXIpKTsKKyAgICAgICAgcmV0dXJuIGFk
b3B0UHRyKG5ldyBCYWNrZ3JvdW5kSFRNTFBhcnNlcihvcHRpb25zLCBwYXJzZXIpKTsKICAgICB9
CiAKLSAgICBzdGF0aWMgdm9pZCBjcmVhdGVQYXJ0aWFsKFBhcnNlcklkZW50aWZpZXIsIEhUTUxQ
YXJzZXJPcHRpb25zKTsKKyAgICBzdGF0aWMgdm9pZCBjcmVhdGVQYXJ0aWFsKFBhcnNlcklkZW50
aWZpZXIsIEhUTUxQYXJzZXJPcHRpb25zLCBXZWFrUHRyPEhUTUxEb2N1bWVudFBhcnNlcj4pOwog
ICAgIHN0YXRpYyB2b2lkIHN0b3BQYXJ0aWFsKFBhcnNlcklkZW50aWZpZXIpOwogICAgIHN0YXRp
YyB2b2lkIGFwcGVuZFBhcnRpYWwoUGFyc2VySWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiBpbnB1
dCk7CiAgICAgc3RhdGljIHZvaWQgZmluaXNoUGFydGlhbChQYXJzZXJJZGVudGlmaWVyKTsKIAog
cHJpdmF0ZToKLSAgICBleHBsaWNpdCBCYWNrZ3JvdW5kSFRNTFBhcnNlcihjb25zdCBIVE1MUGFy
c2VyT3B0aW9ucyYsIFBhcnNlcklkZW50aWZpZXIpOworICAgIEJhY2tncm91bmRIVE1MUGFyc2Vy
KGNvbnN0IEhUTUxQYXJzZXJPcHRpb25zJiwgV2Vha1B0cjxIVE1MRG9jdW1lbnRQYXJzZXI+KTsK
IAogICAgIHZvaWQgbWFya0VuZE9mRmlsZSgpOwogICAgIHZvaWQgcHVtcFRva2VuaXplcigpOwpA
QCAtNjgsNyArNjksNyBAQCBwcml2YXRlOgogICAgIGJvb2wgbV9pbkZvcmVpZ25Db250ZW50OyAv
LyBGSVhNRTogV2UgbmVlZCBhIHN0YWNrIG9mIGZvcmVpZ24gY29udGVudCBtYXJrZXJzLgogICAg
IE93blB0cjxIVE1MVG9rZW5pemVyPiBtX3Rva2VuaXplcjsKICAgICBIVE1MUGFyc2VyT3B0aW9u
cyBtX29wdGlvbnM7Ci0gICAgUGFyc2VySWRlbnRpZmllciBtX3BhcnNlcklkZW50aWZlcjsKKyAg
ICBXZWFrUHRyPEhUTUxEb2N1bWVudFBhcnNlcj4gbV9wYXJzZXI7CiAgICAgT3duUHRyPENvbXBh
Y3RIVE1MVG9rZW5TdHJlYW0+IG1fcGVuZGluZ1Rva2VuczsKIH07CiAKQEAgLTgwLDE0ICs4MSwx
MSBAQCBwdWJsaWM6CiAgICAgfQogCiAgICAgdHlwZWRlZiBIYXNoTWFwPFBhcnNlcklkZW50aWZp
ZXIsIE93blB0cjxCYWNrZ3JvdW5kSFRNTFBhcnNlcj4gPiBCYWNrZ3JvdW5kUGFyc2VyTWFwOwot
ICAgIHR5cGVkZWYgSGFzaE1hcDxQYXJzZXJJZGVudGlmaWVyLCBIVE1MRG9jdW1lbnRQYXJzZXIq
PiBNYWluVGhyZWFkUGFyc2VyTWFwOwogCiAgICAgQmFja2dyb3VuZFBhcnNlck1hcCYgYmFja2dy
b3VuZFBhcnNlcnMoKTsKLSAgICBNYWluVGhyZWFkUGFyc2VyTWFwJiBtYWluVGhyZWFkUGFyc2Vy
cygpOwogCiBwcml2YXRlOgogICAgIEJhY2tncm91bmRQYXJzZXJNYXAgbV9iYWNrZ3JvdW5kUGFy
c2VyczsKLSAgICBNYWluVGhyZWFkUGFyc2VyTWFwIG1fbWFpblRocmVhZFBhcnNlcnM7CiB9Owog
CiBQYXJzZXJNYXAmIHBhcnNlck1hcCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRt
bC9wYXJzZXIvSFRNTERvY3VtZW50UGFyc2VyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFy
c2VyL0hUTUxEb2N1bWVudFBhcnNlci5jcHAKaW5kZXggYTRkN2MyYWEzNDY3NDYxZGVmNmNlZDY0
OWM3OWEyYWQxNzg0ZDU5Zi4uNDYxNTlmMGM2NzFhOTE1MGUxOTZjOGE4YzVjZTM0Njg3MzBhN2Zl
MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvSFRNTERvY3VtZW50UGFy
c2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9IVE1MRG9jdW1lbnRQYXJz
ZXIuY3BwCkBAIC04Miw2ICs4Miw5IEBAIEhUTUxEb2N1bWVudFBhcnNlcjo6SFRNTERvY3VtZW50
UGFyc2VyKEhUTUxEb2N1bWVudCogZG9jdW1lbnQsIGJvb2wgcmVwb3J0RXJyb3JzCiAgICAgLCBt
X3RyZWVCdWlsZGVyKEhUTUxUcmVlQnVpbGRlcjo6Y3JlYXRlKHRoaXMsIGRvY3VtZW50LCByZXBv
cnRFcnJvcnMsIG1fb3B0aW9ucykpCiAgICAgLCBtX3BhcnNlclNjaGVkdWxlcihIVE1MUGFyc2Vy
U2NoZWR1bGVyOjpjcmVhdGUodGhpcykpCiAgICAgLCBtX3hzc0F1ZGl0b3IodGhpcykKKyNpZiBF
TkFCTEUoVEhSRUFERURfSFRNTF9QQVJTRVIpCisgICAgLCBtX3dlYWtGYWN0b3J5KHRoaXMpCisj
ZW5kaWYKICAgICAsIG1fZW5kV2FzRGVsYXllZChmYWxzZSkKICAgICAsIG1faGF2ZUJhY2tncm91
bmRQYXJzZXIoZmFsc2UpCiAgICAgLCBtX3B1bXBTZXNzaW9uTmVzdGluZ0xldmVsKDApCkBAIC05
Niw2ICs5OSw5IEBAIEhUTUxEb2N1bWVudFBhcnNlcjo6SFRNTERvY3VtZW50UGFyc2VyKERvY3Vt
ZW50RnJhZ21lbnQqIGZyYWdtZW50LCBFbGVtZW50KiBjb250CiAgICAgLCBtX3Rva2VuaXplcihI
VE1MVG9rZW5pemVyOjpjcmVhdGUobV9vcHRpb25zKSkKICAgICAsIG1fdHJlZUJ1aWxkZXIoSFRN
TFRyZWVCdWlsZGVyOjpjcmVhdGUodGhpcywgZnJhZ21lbnQsIGNvbnRleHRFbGVtZW50LCBzY3Jp
cHRpbmdQZXJtaXNzaW9uLCBtX29wdGlvbnMpKQogICAgICwgbV94c3NBdWRpdG9yKHRoaXMpCisj
aWYgRU5BQkxFKFRIUkVBREVEX0hUTUxfUEFSU0VSKQorICAgICwgbV93ZWFrRmFjdG9yeSh0aGlz
KQorI2VuZGlmCiAgICAgLCBtX2VuZFdhc0RlbGF5ZWQoZmFsc2UpCiAgICAgLCBtX2hhdmVCYWNr
Z3JvdW5kUGFyc2VyKGZhbHNlKQogICAgICwgbV9wdW1wU2Vzc2lvbk5lc3RpbmdMZXZlbCgwKQpA
QCAtNDU2LDkgKzQ2Miw4IEBAIHZvaWQgSFRNTERvY3VtZW50UGFyc2VyOjpzdGFydEJhY2tncm91
bmRQYXJzZXIoKQogICAgIG1faGF2ZUJhY2tncm91bmRQYXJzZXIgPSB0cnVlOwogCiAgICAgUGFy
c2VySWRlbnRpZmllciBpZGVudGlmaWVyID0gUGFyc2VyTWFwOjppZGVudGlmaWVyRm9yUGFyc2Vy
KHRoaXMpOwotICAgIHBhcnNlck1hcCgpLm1haW5UaHJlYWRQYXJzZXJzKCkuc2V0KGlkZW50aWZp
ZXIsIHRoaXMpOwotCi0gICAgSFRNTFBhcnNlclRocmVhZDo6c2hhcmVkKCktPnBvc3RUYXNrKGJp
bmQoJkJhY2tncm91bmRIVE1MUGFyc2VyOjpjcmVhdGVQYXJ0aWFsLCBpZGVudGlmaWVyLCBtX29w
dGlvbnMpKTsKKyAgICBXZWFrUHRyPEhUTUxEb2N1bWVudFBhcnNlcj4gcGFyc2VyID0gbV93ZWFr
RmFjdG9yeS5jcmVhdGVXZWFrUHRyKCk7CisgICAgSFRNTFBhcnNlclRocmVhZDo6c2hhcmVkKCkt
PnBvc3RUYXNrKGJpbmQoJkJhY2tncm91bmRIVE1MUGFyc2VyOjpjcmVhdGVQYXJ0aWFsLCBpZGVu
dGlmaWVyLCBtX29wdGlvbnMsIHBhcnNlcikpOwogfQogCiB2b2lkIEhUTUxEb2N1bWVudFBhcnNl
cjo6c3RvcEJhY2tncm91bmRQYXJzZXIoKQpAQCAtNDY5LDkgKzQ3NCw3IEBAIHZvaWQgSFRNTERv
Y3VtZW50UGFyc2VyOjpzdG9wQmFja2dyb3VuZFBhcnNlcigpCiAKICAgICBQYXJzZXJJZGVudGlm
aWVyIGlkZW50aWZpZXIgPSBQYXJzZXJNYXA6OmlkZW50aWZpZXJGb3JQYXJzZXIodGhpcyk7CiAg
ICAgSFRNTFBhcnNlclRocmVhZDo6c2hhcmVkKCktPnBvc3RUYXNrKGJpbmQoJkJhY2tncm91bmRI
VE1MUGFyc2VyOjpzdG9wUGFydGlhbCwgaWRlbnRpZmllcikpOwotCi0gICAgcGFyc2VyTWFwKCku
bWFpblRocmVhZFBhcnNlcnMoKS5zZXQoaWRlbnRpZmllciwgMCk7Ci0gICAgLy8gV2Ugd2lsbCBu
b3QgcmVjaWV2ZSBhbnkgbWVzc2FnZXMgZnJvbSB0aGUgcGFyc2VyIGFmdGVyIHRoaXMgcG9pbnQu
CisgICAgbV93ZWFrRmFjdG9yeS5yZXZva2VBbGwoKTsKIH0KIAogI2VuZGlmCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9IVE1MRG9jdW1lbnRQYXJzZXIuaCBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxEb2N1bWVudFBhcnNlci5oCmluZGV4IGI3ZjBjYWIz
Y2VmZDZlNzIzZTY5OTNlMGI1YTg0YzQyZGZmNWVlNjAuLmYxOWNiMTIyOTQ1ZWY1OTYxZjE3Zjcw
Yjk1ZGVkMzM0ODRiNWJjMWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2Vy
L0hUTUxEb2N1bWVudFBhcnNlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hU
TUxEb2N1bWVudFBhcnNlci5oCkBAIC0zOSw2ICszOSw3IEBACiAjaW5jbHVkZSAiWFNTQXVkaXRv
ci5oIgogI2luY2x1ZGUgPHd0Zi9EZXF1ZS5oPgogI2luY2x1ZGUgPHd0Zi9Pd25QdHIuaD4KKyNp
bmNsdWRlIDx3dGYvV2Vha1B0ci5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1RleHRQb3NpdGlvbi5o
PgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBAIC0xNzEsNiArMTcyLDcgQEAgcHJpdmF0ZToKIAog
I2lmIEVOQUJMRShUSFJFQURFRF9IVE1MX1BBUlNFUikKICAgICBEZXF1ZTxPd25QdHI8Q29tcGFj
dEhUTUxUb2tlblN0cmVhbT4gPiBtX3BlbmRpbmdUb2tlbnM7CisgICAgV2Vha1B0ckZhY3Rvcnk8
SFRNTERvY3VtZW50UGFyc2VyPiBtX3dlYWtGYWN0b3J5OwogI2VuZGlmCiAKICAgICBib29sIG1f
ZW5kV2FzRGVsYXllZDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViS2l0LnZjeHByb2ov
V2ViS2l0LnNsbiBiL1NvdXJjZS9XZWJLaXQvV2ViS2l0LnZjeHByb2ovV2ViS2l0LnNsbgppbmRl
eCBkOTNkMjI0YWZlY2Y3MmM4Zjc1OTFlMGEzMTk5ZDM2ZTQwZmQ3NmUxLi4yMTIwNDg4ZGU5NjM2
OTJlMTQxYTQ0ZjU3OWM4ZjQyZWQ5MDhlM2M5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dl
YktpdC52Y3hwcm9qL1dlYktpdC5zbG4KKysrIGIvU291cmNlL1dlYktpdC9XZWJLaXQudmN4cHJv
ai9XZWJLaXQuc2xuCkBAIC0xLDE4NiArMSwxODYgQEAKLe+7vw0KLU1pY3Jvc29mdCBWaXN1YWwg
U3R1ZGlvIFNvbHV0aW9uIEZpbGUsIEZvcm1hdCBWZXJzaW9uIDExLjAwDQotIyBWaXN1YWwgU3R1
ZGlvIDIwMTANCi1Qcm9qZWN0KCJ7MjE1MEUzMzMtOEZEQy00MkEzLTk0NzQtMUEzOTU2RDQ2REU4
fSIpID0gIldURiIsICJXVEYiLCAiezdGOTgyQ0FELTIyNUItNEZDRS05OTM3LTNCNzJDMTREOTY4
RH0iDQotRW5kUHJvamVjdA0KLVByb2plY3QoInsyMTUwRTMzMy04RkRDLTQyQTMtOTQ3NC0xQTM5
NTZENDZERTh9IikgPSAiSmF2YVNjcmlwdENvcmUiLCAiSmF2YVNjcmlwdENvcmUiLCAie0Y5RjVF
N0ZFLTVDNUYtNENFOS04NjY1LUE4NDYzM0Y0OUUxMn0iDQotRW5kUHJvamVjdA0KLVByb2plY3Qo
InsyMTUwRTMzMy04RkRDLTQyQTMtOTQ3NC0xQTM5NTZENDZERTh9IikgPSAiV2ViQ29yZSIsICJX
ZWJDb3JlIiwgIns0QTg5NDU4OC1BOTUxLTRFNzYtQTA4NS01MEUxMDMwNERDNDB9Ig0KLUVuZFBy
b2plY3QNCi1Qcm9qZWN0KCJ7MjE1MEUzMzMtOEZEQy00MkEzLTk0NzQtMUEzOTU2RDQ2REU4fSIp
ID0gIldlYktpdFN5c3RlbUludGVyZmFjZSIsICJXZWJLaXRTeXN0ZW1JbnRlcmZhY2UiLCAie0Mw
RjRGMTM4LUNCMzgtNERCNi05RDhFLTI1QkVBMTQ5RTlCNn0iDQotRW5kUHJvamVjdA0KLVByb2pl
Y3QoIns4QkM5Q0VCOC04QjRBLTExRDAtOEQxMS0wMEEwQzkxQkM5NDJ9IikgPSAiV2ViS2l0U3lz
dGVtSW50ZXJmYWNlR2VuZXJhdGVkIiwgIi4uXC4uXC4uXC4uXEludGVybmFsXFdlYktpdFN5c3Rl
bUludGVyZmFjZVx3aW5cV2ViS2l0U3lzdGVtSW50ZXJmYWNlR2VuZXJhdGVkLnZjeHByb2oiLCAi
e0RGQTBCQzAzLTNENjItNDAzMC04ODEyLUM1QjI5NkM4NDhCMn0iDQotCVByb2plY3RTZWN0aW9u
KFByb2plY3REZXBlbmRlbmNpZXMpID0gcG9zdFByb2plY3QNCi0JCXsyMjQxM0Q0MS0zQTE4LTQy
QjctOTJBOC1DRURDNkNFODY5MjB9ID0gezIyNDEzRDQxLTNBMTgtNDJCNy05MkE4LUNFREM2Q0U4
NjkyMH0NCi0JRW5kUHJvamVjdFNlY3Rpb24NCi1FbmRQcm9qZWN0DQotUHJvamVjdCgiezhCQzlD
RUI4LThCNEEtMTFEMC04RDExLTAwQTBDOTFCQzk0Mn0iKSA9ICJXZWJLaXRTeXN0ZW1JbnRlcmZh
Y2UiLCAiLi5cLi5cLi5cLi5cSW50ZXJuYWxcV2ViS2l0U3lzdGVtSW50ZXJmYWNlXHdpblxXZWJL
aXRTeXN0ZW1JbnRlcmZhY2UudmN4cHJvaiIsICJ7NUExRERDNEQtMTUxNy00MzE1LUI3NkEtMzk5
MzMxMjNCMjIyfSINCi0JUHJvamVjdFNlY3Rpb24oUHJvamVjdERlcGVuZGVuY2llcykgPSBwb3N0
UHJvamVjdA0KLQkJe0RGQTBCQzAzLTNENjItNDAzMC04ODEyLUM1QjI5NkM4NDhCMn0gPSB7REZB
MEJDMDMtM0Q2Mi00MDMwLTg4MTItQzVCMjk2Qzg0OEIyfQ0KLQlFbmRQcm9qZWN0U2VjdGlvbg0K
LUVuZFByb2plY3QNCi1Qcm9qZWN0KCJ7MjE1MEUzMzMtOEZEQy00MkEzLTk0NzQtMUEzOTU2RDQ2
REU4fSIpID0gIldlYktpdFF1YXJ0ekNvcmVBZGRpdGlvbnMiLCAiV2ViS2l0UXVhcnR6Q29yZUFk
ZGl0aW9ucyIsICJ7MjEzNkQ1QjMtMzkxNS00M0Q4LTlBMkMtMEQ5NkI3QjVGNzlCfSINCi1FbmRQ
cm9qZWN0DQotUHJvamVjdCgiezhCQzlDRUI4LThCNEEtMTFEMC04RDExLTAwQTBDOTFCQzk0Mn0i
KSA9ICJXZWJLaXRRdWFydHpDb3JlQWRkaXRpb25zIiwgIi4uXC4uXC4uXC4uXEludGVybmFsXFdl
YktpdFF1YXJ0ekNvcmVBZGRpdGlvbnNcV2ViS2l0UXVhcnR6Q29yZUFkZGl0aW9ucy52Y3hwcm9q
IiwgIns2RjgwQkI3RC1EQTY2LTQ4REYtODJEMi01MTRCOUM1QTBEMzh9Ig0KLQlQcm9qZWN0U2Vj
dGlvbihQcm9qZWN0RGVwZW5kZW5jaWVzKSA9IHBvc3RQcm9qZWN0DQotCQl7MkMzOTJDNUMtQ0RC
MS00OTY3LTkzQzItOUMwMEU3Rjg2NTE4fSA9IHsyQzM5MkM1Qy1DREIxLTQ5NjctOTNDMi05QzAw
RTdGODY1MTh9DQotCUVuZFByb2plY3RTZWN0aW9uDQotRW5kUHJvamVjdA0KLVByb2plY3QoIns4
QkM5Q0VCOC04QjRBLTExRDAtOEQxMS0wMEEwQzkxQkM5NDJ9IikgPSAiV2ViS2l0UXVhcnR6Q29y
ZUFkZGl0aW9uc0dlbmVyYXRlZCIsICIuLlwuLlwuLlwuLlxJbnRlcm5hbFxXZWJLaXRRdWFydHpD
b3JlQWRkaXRpb25zXFdlYktpdFF1YXJ0ekNvcmVBZGRpdGlvbnNHZW5lcmF0ZWQudmN4cHJvaiIs
ICJ7MkMzOTJDNUMtQ0RCMS00OTY3LTkzQzItOUMwMEU3Rjg2NTE4fSINCi0JUHJvamVjdFNlY3Rp
b24oUHJvamVjdERlcGVuZGVuY2llcykgPSBwb3N0UHJvamVjdA0KLQkJezVBMUREQzRELTE1MTct
NDMxNS1CNzZBLTM5OTMzMTIzQjIyMn0gPSB7NUExRERDNEQtMTUxNy00MzE1LUI3NkEtMzk5MzMx
MjNCMjIyfQ0KLQlFbmRQcm9qZWN0U2VjdGlvbg0KLUVuZFByb2plY3QNCi1Qcm9qZWN0KCJ7MjE1
MEUzMzMtOEZEQy00MkEzLTk0NzQtMUEzOTU2RDQ2REU4fSIpID0gIldlYktpdCIsICJXZWJLaXQi
LCAiezM5Mjg2RjQ2LUJBNzUtNDk5Ny04MDY1LTE5MDkwOTBBNjBGMH0iDQotRW5kUHJvamVjdA0K
LVByb2plY3QoIns4QkM5Q0VCOC04QjRBLTExRDAtOEQxMS0wMEEwQzkxQkM5NDJ9IikgPSAiSW50
ZXJmYWNlcyIsICJJbnRlcmZhY2VzXEludGVyZmFjZXMudmN4cHJvaiIsICJ7MTY1OUIxQjYtRjJB
My00NkIzLUFFMDItRkU2NUI0QTYwN0VCfSINCi0JUHJvamVjdFNlY3Rpb24oUHJvamVjdERlcGVu
ZGVuY2llcykgPSBwb3N0UHJvamVjdA0KLQkJezFDMTYzMzdCLUFDRjMtNEQwMy1BQTkwLTg1MUM1
QjVFQURBNn0gPSB7MUMxNjMzN0ItQUNGMy00RDAzLUFBOTAtODUxQzVCNUVBREE2fQ0KLQlFbmRQ
cm9qZWN0U2VjdGlvbg0KLUVuZFByb2plY3QNCi1Qcm9qZWN0KCJ7OEJDOUNFQjgtOEI0QS0xMUQw
LThEMTEtMDBBMEM5MUJDOTQyfSIpID0gIldURiIsICIuLlwuLlxXVEZcV1RGLnZjeHByb2pcV1RG
LnZjeHByb2oiLCAiezhFRjczNzc5LUJFRDMtNDVCQi04MTZELTlGRjU4Mzk5QUZBNX0iDQotCVBy
b2plY3RTZWN0aW9uKFByb2plY3REZXBlbmRlbmNpZXMpID0gcG9zdFByb2plY3QNCi0JCXtGNzM2
NjU5Ni0wNTIwLTQ0MzMtQjhGRi1EODQzRTMxRTUxOTl9ID0ge0Y3MzY2NTk2LTA1MjAtNDQzMy1C
OEZGLUQ4NDNFMzFFNTE5OX0NCi0JRW5kUHJvamVjdFNlY3Rpb24NCi1FbmRQcm9qZWN0DQotUHJv
amVjdCgiezhCQzlDRUI4LThCNEEtMTFEMC04RDExLTAwQTBDOTFCQzk0Mn0iKSA9ICJXVEZHZW5l
cmF0ZWQiLCAiLi5cLi5cV1RGXFdURi52Y3hwcm9qXFdURkdlbmVyYXRlZC52Y3hwcm9qIiwgIntG
NzM2NjU5Ni0wNTIwLTQ0MzMtQjhGRi1EODQzRTMxRTUxOTl9Ig0KLUVuZFByb2plY3QNCi1Qcm9q
ZWN0KCJ7OEJDOUNFQjgtOEI0QS0xMUQwLThEMTEtMDBBMEM5MUJDOTQyfSIpID0gIkphdmFTY3Jp
cHRDb3JlR2VuZXJhdGVkIiwgIi4uXC4uXEphdmFTY3JpcHRDb3JlXEphdmFTY3JpcHRDb3JlLnZj
eHByb2pcSmF2YVNjcmlwdENvcmVHZW5lcmF0ZWQudmN4cHJvaiIsICJ7MzY3MEQwMUYtOTVGMy00
NUE4LUI4NzgtOTQ3RUI2Q0YyMTRFfSINCi0JUHJvamVjdFNlY3Rpb24oUHJvamVjdERlcGVuZGVu
Y2llcykgPSBwb3N0UHJvamVjdA0KLQkJezhFRjczNzc5LUJFRDMtNDVCQi04MTZELTlGRjU4Mzk5
QUZBNX0gPSB7OEVGNzM3NzktQkVEMy00NUJCLTgxNkQtOUZGNTgzOTlBRkE1fQ0KLQlFbmRQcm9q
ZWN0U2VjdGlvbg0KLUVuZFByb2plY3QNCi1Qcm9qZWN0KCJ7OEJDOUNFQjgtOEI0QS0xMUQwLThE
MTEtMDBBMEM5MUJDOTQyfSIpID0gIkphdmFTY3JpcHRDb3JlIiwgIi4uXC4uXEphdmFTY3JpcHRD
b3JlXEphdmFTY3JpcHRDb3JlLnZjeHByb2pcSmF2YVNjcmlwdENvcmUudmN4cHJvaiIsICJ7MjI0
MTNENDEtM0ExOC00MkI3LTkyQTgtQ0VEQzZDRTg2OTIwfSINCi0JUHJvamVjdFNlY3Rpb24oUHJv
amVjdERlcGVuZGVuY2llcykgPSBwb3N0UHJvamVjdA0KLQkJezM2NzBEMDFGLTk1RjMtNDVBOC1C
ODc4LTk0N0VCNkNGMjE0RX0gPSB7MzY3MEQwMUYtOTVGMy00NUE4LUI4NzgtOTQ3RUI2Q0YyMTRF
fQ0KLQkJezkyMjE3NDRCLTU3MTUtNEY1Ni05NTkwLTQyRjdBQjIzREQ4Qn0gPSB7OTIyMTc0NEIt
NTcxNS00RjU2LTk1OTAtNDJGN0FCMjNERDhCfQ0KLQlFbmRQcm9qZWN0U2VjdGlvbg0KLUVuZFBy
b2plY3QNCi1Qcm9qZWN0KCJ7OEJDOUNFQjgtOEI0QS0xMUQwLThEMTEtMDBBMEM5MUJDOTQyfSIp
ID0gIkxMSW50T2Zmc2V0c0V4dHJhY3RvciIsICIuLlwuLlxKYXZhU2NyaXB0Q29yZVxKYXZhU2Ny
aXB0Q29yZS52Y3hwcm9qXExMSW50LnZjcHJvalxMTEludE9mZnNldHNFeHRyYWN0b3JcTExJbnRP
ZmZzZXRzRXh0cmFjdG9yLnZjeHByb2oiLCAie0Q1OTVFM0Y2LTI0RjItNEM2MC05MzVDLTk1RDUw
QzZCM0U5Nn0iDQotCVByb2plY3RTZWN0aW9uKFByb2plY3REZXBlbmRlbmNpZXMpID0gcG9zdFBy
b2plY3QNCi0JCXs4NzcxNTBBMC00MUIzLTQ3MzAtOUQ5OC0xQjgyOTgwOThCMTR9ID0gezg3NzE1
MEEwLTQxQjMtNDczMC05RDk4LTFCODI5ODA5OEIxNH0NCi0JRW5kUHJvamVjdFNlY3Rpb24NCi1F
bmRQcm9qZWN0DQotUHJvamVjdCgiezhCQzlDRUI4LThCNEEtMTFEMC04RDExLTAwQTBDOTFCQzk0
Mn0iKSA9ICJMTEludERlc2lyZWRPZmZzZXRzIiwgIi4uXC4uXEphdmFTY3JpcHRDb3JlXEphdmFT
Y3JpcHRDb3JlLnZjeHByb2pcTExJbnQudmNwcm9qXExMSW50RGVzaXJlZE9mZnNldHNcTExJbnRE
ZXNpcmVkT2Zmc2V0cy52Y3hwcm9qIiwgIns4NzcxNTBBMC00MUIzLTQ3MzAtOUQ5OC0xQjgyOTgw
OThCMTR9Ig0KLQlQcm9qZWN0U2VjdGlvbihQcm9qZWN0RGVwZW5kZW5jaWVzKSA9IHBvc3RQcm9q
ZWN0DQotCQl7MzY3MEQwMUYtOTVGMy00NUE4LUI4NzgtOTQ3RUI2Q0YyMTRFfSA9IHszNjcwRDAx
Ri05NUYzLTQ1QTgtQjg3OC05NDdFQjZDRjIxNEV9DQotCUVuZFByb2plY3RTZWN0aW9uDQotRW5k
UHJvamVjdA0KLVByb2plY3QoIns4QkM5Q0VCOC04QjRBLTExRDAtOEQxMS0wMEEwQzkxQkM5NDJ9
IikgPSAiTExJbnRBc3NlbWJseSIsICIuLlwuLlxKYXZhU2NyaXB0Q29yZVxKYXZhU2NyaXB0Q29y
ZS52Y3hwcm9qXExMSW50LnZjcHJvalxMTEludEFzc2VtYmx5XExMSW50QXNzZW1ibHkudmN4cHJv
aiIsICJ7OTIyMTc0NEItNTcxNS00RjU2LTk1OTAtNDJGN0FCMjNERDhCfSINCi0JUHJvamVjdFNl
Y3Rpb24oUHJvamVjdERlcGVuZGVuY2llcykgPSBwb3N0UHJvamVjdA0KLQkJe0Q1OTVFM0Y2LTI0
RjItNEM2MC05MzVDLTk1RDUwQzZCM0U5Nn0gPSB7RDU5NUUzRjYtMjRGMi00QzYwLTkzNUMtOTVE
NTBDNkIzRTk2fQ0KLQlFbmRQcm9qZWN0U2VjdGlvbg0KLUVuZFByb2plY3QNCi1Qcm9qZWN0KCJ7
OEJDOUNFQjgtOEI0QS0xMUQwLThEMTEtMDBBMEM5MUJDOTQyfSIpID0gImpzYyIsICIuLlwuLlxK
YXZhU2NyaXB0Q29yZVxKYXZhU2NyaXB0Q29yZS52Y3hwcm9qXGpzY1xqc2MudmN4cHJvaiIsICJ7
MkJENDM3Q0YtQkRBQy00MTE5LTlFRDYtRTEwRUY0NkM2OUYzfSINCi0JUHJvamVjdFNlY3Rpb24o
UHJvamVjdERlcGVuZGVuY2llcykgPSBwb3N0UHJvamVjdA0KLQkJezIyNDEzRDQxLTNBMTgtNDJC
Ny05MkE4LUNFREM2Q0U4NjkyMH0gPSB7MjI0MTNENDEtM0ExOC00MkI3LTkyQTgtQ0VEQzZDRTg2
OTIwfQ0KLQlFbmRQcm9qZWN0U2VjdGlvbg0KLUVuZFByb2plY3QNCi1Qcm9qZWN0KCJ7OEJDOUNF
QjgtOEI0QS0xMUQwLThEMTEtMDBBMEM5MUJDOTQyfSIpID0gIldlYkNvcmUiLCAiLi5cLi5cV2Vi
Q29yZVxXZWJDb3JlLnZjeHByb2pcV2ViQ29yZS52Y3hwcm9qIiwgInsxQzE2MzM3Qi1BQ0YzLTRE
MDMtQUE5MC04NTFDNUI1RUFEQTZ9Ig0KLQlQcm9qZWN0U2VjdGlvbihQcm9qZWN0RGVwZW5kZW5j
aWVzKSA9IHBvc3RQcm9qZWN0DQotCQl7RTQ5OENBOUQtM0JEMi00RDUyLThFMzctQzhEQzc2NTI2
MzI1fSA9IHtFNDk4Q0E5RC0zQkQyLTRENTItOEUzNy1DOERDNzY1MjYzMjV9DQotCUVuZFByb2pl
Y3RTZWN0aW9uDQotRW5kUHJvamVjdA0KLVByb2plY3QoIns4QkM5Q0VCOC04QjRBLTExRDAtOEQx
MS0wMEEwQzkxQkM5NDJ9IikgPSAiV2ViQ29yZUdlbmVyYXRlZCIsICIuLlwuLlxXZWJDb3JlXFdl
YkNvcmUudmN4cHJvalxXZWJDb3JlR2VuZXJhdGVkLnZjeHByb2oiLCAie0E0MTU5QjZGLTMxMDYt
NEY3NS05RURELTU4MjMwN0JEQjk2QX0iDQotCVByb2plY3RTZWN0aW9uKFByb2plY3REZXBlbmRl
bmNpZXMpID0gcG9zdFByb2plY3QNCi0JCXs2RjgwQkI3RC1EQTY2LTQ4REYtODJEMi01MTRCOUM1
QTBEMzh9ID0gezZGODBCQjdELURBNjYtNDhERi04MkQyLTUxNEI5QzVBMEQzOH0NCi0JRW5kUHJv
amVjdFNlY3Rpb24NCi1FbmRQcm9qZWN0DQotUHJvamVjdCgiezhCQzlDRUI4LThCNEEtMTFEMC04
RDExLTAwQTBDOTFCQzk0Mn0iKSA9ICJRVE1vdmllV2luIiwgIi4uXC4uXFdlYkNvcmVcV2ViQ29y
ZS52Y3hwcm9qXFFUTW92aWVXaW5cUVRNb3ZpZVdpbi52Y3hwcm9qIiwgIntFNDk4Q0E5RC0zQkQy
LTRENTItOEUzNy1DOERDNzY1MjYzMjV9Ig0KLQlQcm9qZWN0U2VjdGlvbihQcm9qZWN0RGVwZW5k
ZW5jaWVzKSA9IHBvc3RQcm9qZWN0DQotCQl7QTQxNTlCNkYtMzEwNi00Rjc1LTlFREQtNTgyMzA3
QkRCOTZBfSA9IHtBNDE1OUI2Ri0zMTA2LTRGNzUtOUVERC01ODIzMDdCREI5NkF9DQotCUVuZFBy
b2plY3RTZWN0aW9uDQotRW5kUHJvamVjdA0KLUdsb2JhbA0KLQlHbG9iYWxTZWN0aW9uKFNvbHV0
aW9uQ29uZmlndXJhdGlvblBsYXRmb3JtcykgPSBwcmVTb2x1dGlvbg0KLQkJRGVidWd8V2luMzIg
PSBEZWJ1Z3xXaW4zMg0KLQkJUmVsZWFzZXxXaW4zMiA9IFJlbGVhc2V8V2luMzINCi0JRW5kR2xv
YmFsU2VjdGlvbg0KLQlHbG9iYWxTZWN0aW9uKFByb2plY3RDb25maWd1cmF0aW9uUGxhdGZvcm1z
KSA9IHBvc3RTb2x1dGlvbg0KLQkJe0RGQTBCQzAzLTNENjItNDAzMC04ODEyLUM1QjI5NkM4NDhC
Mn0uRGVidWd8V2luMzIuQWN0aXZlQ2ZnID0gRGVidWd8V2luMzINCi0JCXtERkEwQkMwMy0zRDYy
LTQwMzAtODgxMi1DNUIyOTZDODQ4QjJ9LkRlYnVnfFdpbjMyLkJ1aWxkLjAgPSBEZWJ1Z3xXaW4z
Mg0KLQkJe0RGQTBCQzAzLTNENjItNDAzMC04ODEyLUM1QjI5NkM4NDhCMn0uUmVsZWFzZXxXaW4z
Mi5BY3RpdmVDZmcgPSBSZWxlYXNlfFdpbjMyDQotCQl7REZBMEJDMDMtM0Q2Mi00MDMwLTg4MTIt
QzVCMjk2Qzg0OEIyfS5SZWxlYXNlfFdpbjMyLkJ1aWxkLjAgPSBSZWxlYXNlfFdpbjMyDQotCQl7
NUExRERDNEQtMTUxNy00MzE1LUI3NkEtMzk5MzMxMjNCMjIyfS5EZWJ1Z3xXaW4zMi5BY3RpdmVD
ZmcgPSBEZWJ1Z3xXaW4zMg0KLQkJezVBMUREQzRELTE1MTctNDMxNS1CNzZBLTM5OTMzMTIzQjIy
Mn0uRGVidWd8V2luMzIuQnVpbGQuMCA9IERlYnVnfFdpbjMyDQotCQl7NUExRERDNEQtMTUxNy00
MzE1LUI3NkEtMzk5MzMxMjNCMjIyfS5SZWxlYXNlfFdpbjMyLkFjdGl2ZUNmZyA9IFJlbGVhc2V8
V2luMzINCi0JCXs1QTFEREM0RC0xNTE3LTQzMTUtQjc2QS0zOTkzMzEyM0IyMjJ9LlJlbGVhc2V8
V2luMzIuQnVpbGQuMCA9IFJlbGVhc2V8V2luMzINCi0JCXs2RjgwQkI3RC1EQTY2LTQ4REYtODJE
Mi01MTRCOUM1QTBEMzh9LkRlYnVnfFdpbjMyLkFjdGl2ZUNmZyA9IERlYnVnfFdpbjMyDQotCQl7
NkY4MEJCN0QtREE2Ni00OERGLTgyRDItNTE0QjlDNUEwRDM4fS5EZWJ1Z3xXaW4zMi5CdWlsZC4w
ID0gRGVidWd8V2luMzINCi0JCXs2RjgwQkI3RC1EQTY2LTQ4REYtODJEMi01MTRCOUM1QTBEMzh9
LlJlbGVhc2V8V2luMzIuQWN0aXZlQ2ZnID0gUmVsZWFzZXxXaW4zMg0KLQkJezZGODBCQjdELURB
NjYtNDhERi04MkQyLTUxNEI5QzVBMEQzOH0uUmVsZWFzZXxXaW4zMi5CdWlsZC4wID0gUmVsZWFz
ZXxXaW4zMg0KLQkJezJDMzkyQzVDLUNEQjEtNDk2Ny05M0MyLTlDMDBFN0Y4NjUxOH0uRGVidWd8
V2luMzIuQWN0aXZlQ2ZnID0gRGVidWd8V2luMzINCi0JCXsyQzM5MkM1Qy1DREIxLTQ5NjctOTND
Mi05QzAwRTdGODY1MTh9LkRlYnVnfFdpbjMyLkJ1aWxkLjAgPSBEZWJ1Z3xXaW4zMg0KLQkJezJD
MzkyQzVDLUNEQjEtNDk2Ny05M0MyLTlDMDBFN0Y4NjUxOH0uUmVsZWFzZXxXaW4zMi5BY3RpdmVD
ZmcgPSBSZWxlYXNlfFdpbjMyDQotCQl7MkMzOTJDNUMtQ0RCMS00OTY3LTkzQzItOUMwMEU3Rjg2
NTE4fS5SZWxlYXNlfFdpbjMyLkJ1aWxkLjAgPSBSZWxlYXNlfFdpbjMyDQotCQl7MTY1OUIxQjYt
RjJBMy00NkIzLUFFMDItRkU2NUI0QTYwN0VCfS5EZWJ1Z3xXaW4zMi5BY3RpdmVDZmcgPSBEZWJ1
Z3xXaW4zMg0KLQkJezE2NTlCMUI2LUYyQTMtNDZCMy1BRTAyLUZFNjVCNEE2MDdFQn0uRGVidWd8
V2luMzIuQnVpbGQuMCA9IERlYnVnfFdpbjMyDQotCQl7MTY1OUIxQjYtRjJBMy00NkIzLUFFMDIt
RkU2NUI0QTYwN0VCfS5SZWxlYXNlfFdpbjMyLkFjdGl2ZUNmZyA9IFJlbGVhc2V8V2luMzINCi0J
CXsxNjU5QjFCNi1GMkEzLTQ2QjMtQUUwMi1GRTY1QjRBNjA3RUJ9LlJlbGVhc2V8V2luMzIuQnVp
bGQuMCA9IFJlbGVhc2V8V2luMzINCi0JCXs4RUY3Mzc3OS1CRUQzLTQ1QkItODE2RC05RkY1ODM5
OUFGQTV9LkRlYnVnfFdpbjMyLkFjdGl2ZUNmZyA9IERlYnVnfFdpbjMyDQotCQl7OEVGNzM3Nzkt
QkVEMy00NUJCLTgxNkQtOUZGNTgzOTlBRkE1fS5EZWJ1Z3xXaW4zMi5CdWlsZC4wID0gRGVidWd8
V2luMzINCi0JCXs4RUY3Mzc3OS1CRUQzLTQ1QkItODE2RC05RkY1ODM5OUFGQTV9LlJlbGVhc2V8
V2luMzIuQWN0aXZlQ2ZnID0gUmVsZWFzZXxXaW4zMg0KLQkJezhFRjczNzc5LUJFRDMtNDVCQi04
MTZELTlGRjU4Mzk5QUZBNX0uUmVsZWFzZXxXaW4zMi5CdWlsZC4wID0gUmVsZWFzZXxXaW4zMg0K
LQkJe0Y3MzY2NTk2LTA1MjAtNDQzMy1COEZGLUQ4NDNFMzFFNTE5OX0uRGVidWd8V2luMzIuQWN0
aXZlQ2ZnID0gRGVidWd8V2luMzINCi0JCXtGNzM2NjU5Ni0wNTIwLTQ0MzMtQjhGRi1EODQzRTMx
RTUxOTl9LkRlYnVnfFdpbjMyLkJ1aWxkLjAgPSBEZWJ1Z3xXaW4zMg0KLQkJe0Y3MzY2NTk2LTA1
MjAtNDQzMy1COEZGLUQ4NDNFMzFFNTE5OX0uUmVsZWFzZXxXaW4zMi5BY3RpdmVDZmcgPSBSZWxl
YXNlfFdpbjMyDQotCQl7RjczNjY1OTYtMDUyMC00NDMzLUI4RkYtRDg0M0UzMUU1MTk5fS5SZWxl
YXNlfFdpbjMyLkJ1aWxkLjAgPSBSZWxlYXNlfFdpbjMyDQotCQl7MzY3MEQwMUYtOTVGMy00NUE4
LUI4NzgtOTQ3RUI2Q0YyMTRFfS5EZWJ1Z3xXaW4zMi5BY3RpdmVDZmcgPSBEZWJ1Z3xXaW4zMg0K
LQkJezM2NzBEMDFGLTk1RjMtNDVBOC1CODc4LTk0N0VCNkNGMjE0RX0uRGVidWd8V2luMzIuQnVp
bGQuMCA9IERlYnVnfFdpbjMyDQotCQl7MzY3MEQwMUYtOTVGMy00NUE4LUI4NzgtOTQ3RUI2Q0Yy
MTRFfS5SZWxlYXNlfFdpbjMyLkFjdGl2ZUNmZyA9IFJlbGVhc2V8V2luMzINCi0JCXszNjcwRDAx
Ri05NUYzLTQ1QTgtQjg3OC05NDdFQjZDRjIxNEV9LlJlbGVhc2V8V2luMzIuQnVpbGQuMCA9IFJl
bGVhc2V8V2luMzINCi0JCXsyMjQxM0Q0MS0zQTE4LTQyQjctOTJBOC1DRURDNkNFODY5MjB9LkRl
YnVnfFdpbjMyLkFjdGl2ZUNmZyA9IERlYnVnfFdpbjMyDQotCQl7MjI0MTNENDEtM0ExOC00MkI3
LTkyQTgtQ0VEQzZDRTg2OTIwfS5EZWJ1Z3xXaW4zMi5CdWlsZC4wID0gRGVidWd8V2luMzINCi0J
CXsyMjQxM0Q0MS0zQTE4LTQyQjctOTJBOC1DRURDNkNFODY5MjB9LlJlbGVhc2V8V2luMzIuQWN0
aXZlQ2ZnID0gUmVsZWFzZXxXaW4zMg0KLQkJezIyNDEzRDQxLTNBMTgtNDJCNy05MkE4LUNFREM2
Q0U4NjkyMH0uUmVsZWFzZXxXaW4zMi5CdWlsZC4wID0gUmVsZWFzZXxXaW4zMg0KLQkJe0Q1OTVF
M0Y2LTI0RjItNEM2MC05MzVDLTk1RDUwQzZCM0U5Nn0uRGVidWd8V2luMzIuQWN0aXZlQ2ZnID0g
RGVidWd8V2luMzINCi0JCXtENTk1RTNGNi0yNEYyLTRDNjAtOTM1Qy05NUQ1MEM2QjNFOTZ9LkRl
YnVnfFdpbjMyLkJ1aWxkLjAgPSBEZWJ1Z3xXaW4zMg0KLQkJe0Q1OTVFM0Y2LTI0RjItNEM2MC05
MzVDLTk1RDUwQzZCM0U5Nn0uUmVsZWFzZXxXaW4zMi5BY3RpdmVDZmcgPSBSZWxlYXNlfFdpbjMy
DQotCQl7RDU5NUUzRjYtMjRGMi00QzYwLTkzNUMtOTVENTBDNkIzRTk2fS5SZWxlYXNlfFdpbjMy
LkJ1aWxkLjAgPSBSZWxlYXNlfFdpbjMyDQotCQl7ODc3MTUwQTAtNDFCMy00NzMwLTlEOTgtMUI4
Mjk4MDk4QjE0fS5EZWJ1Z3xXaW4zMi5BY3RpdmVDZmcgPSBEZWJ1Z3xXaW4zMg0KLQkJezg3NzE1
MEEwLTQxQjMtNDczMC05RDk4LTFCODI5ODA5OEIxNH0uRGVidWd8V2luMzIuQnVpbGQuMCA9IERl
YnVnfFdpbjMyDQotCQl7ODc3MTUwQTAtNDFCMy00NzMwLTlEOTgtMUI4Mjk4MDk4QjE0fS5SZWxl
YXNlfFdpbjMyLkFjdGl2ZUNmZyA9IFJlbGVhc2V8V2luMzINCi0JCXs4NzcxNTBBMC00MUIzLTQ3
MzAtOUQ5OC0xQjgyOTgwOThCMTR9LlJlbGVhc2V8V2luMzIuQnVpbGQuMCA9IFJlbGVhc2V8V2lu
MzINCi0JCXs5MjIxNzQ0Qi01NzE1LTRGNTYtOTU5MC00MkY3QUIyM0REOEJ9LkRlYnVnfFdpbjMy
LkFjdGl2ZUNmZyA9IERlYnVnfFdpbjMyDQotCQl7OTIyMTc0NEItNTcxNS00RjU2LTk1OTAtNDJG
N0FCMjNERDhCfS5EZWJ1Z3xXaW4zMi5CdWlsZC4wID0gRGVidWd8V2luMzINCi0JCXs5MjIxNzQ0
Qi01NzE1LTRGNTYtOTU5MC00MkY3QUIyM0REOEJ9LlJlbGVhc2V8V2luMzIuQWN0aXZlQ2ZnID0g
UmVsZWFzZXxXaW4zMg0KLQkJezkyMjE3NDRCLTU3MTUtNEY1Ni05NTkwLTQyRjdBQjIzREQ4Qn0u
UmVsZWFzZXxXaW4zMi5CdWlsZC4wID0gUmVsZWFzZXxXaW4zMg0KLQkJezJCRDQzN0NGLUJEQUMt
NDExOS05RUQ2LUUxMEVGNDZDNjlGM30uRGVidWd8V2luMzIuQWN0aXZlQ2ZnID0gRGVidWd8V2lu
MzINCi0JCXsyQkQ0MzdDRi1CREFDLTQxMTktOUVENi1FMTBFRjQ2QzY5RjN9LkRlYnVnfFdpbjMy
LkJ1aWxkLjAgPSBEZWJ1Z3xXaW4zMg0KLQkJezJCRDQzN0NGLUJEQUMtNDExOS05RUQ2LUUxMEVG
NDZDNjlGM30uUmVsZWFzZXxXaW4zMi5BY3RpdmVDZmcgPSBSZWxlYXNlfFdpbjMyDQotCQl7MkJE
NDM3Q0YtQkRBQy00MTE5LTlFRDYtRTEwRUY0NkM2OUYzfS5SZWxlYXNlfFdpbjMyLkJ1aWxkLjAg
PSBSZWxlYXNlfFdpbjMyDQotCQl7MUMxNjMzN0ItQUNGMy00RDAzLUFBOTAtODUxQzVCNUVBREE2
fS5EZWJ1Z3xXaW4zMi5BY3RpdmVDZmcgPSBEZWJ1Z3xXaW4zMg0KLQkJezFDMTYzMzdCLUFDRjMt
NEQwMy1BQTkwLTg1MUM1QjVFQURBNn0uRGVidWd8V2luMzIuQnVpbGQuMCA9IERlYnVnfFdpbjMy
DQotCQl7MUMxNjMzN0ItQUNGMy00RDAzLUFBOTAtODUxQzVCNUVBREE2fS5SZWxlYXNlfFdpbjMy
LkFjdGl2ZUNmZyA9IFJlbGVhc2V8V2luMzINCi0JCXsxQzE2MzM3Qi1BQ0YzLTREMDMtQUE5MC04
NTFDNUI1RUFEQTZ9LlJlbGVhc2V8V2luMzIuQnVpbGQuMCA9IFJlbGVhc2V8V2luMzINCi0JCXtB
NDE1OUI2Ri0zMTA2LTRGNzUtOUVERC01ODIzMDdCREI5NkF9LkRlYnVnfFdpbjMyLkFjdGl2ZUNm
ZyA9IERlYnVnfFdpbjMyDQotCQl7QTQxNTlCNkYtMzEwNi00Rjc1LTlFREQtNTgyMzA3QkRCOTZB
fS5EZWJ1Z3xXaW4zMi5CdWlsZC4wID0gRGVidWd8V2luMzINCi0JCXtBNDE1OUI2Ri0zMTA2LTRG
NzUtOUVERC01ODIzMDdCREI5NkF9LlJlbGVhc2V8V2luMzIuQWN0aXZlQ2ZnID0gUmVsZWFzZXxX
aW4zMg0KLQkJe0E0MTU5QjZGLTMxMDYtNEY3NS05RURELTU4MjMwN0JEQjk2QX0uUmVsZWFzZXxX
aW4zMi5CdWlsZC4wID0gUmVsZWFzZXxXaW4zMg0KLQkJe0U0OThDQTlELTNCRDItNEQ1Mi04RTM3
LUM4REM3NjUyNjMyNX0uRGVidWd8V2luMzIuQWN0aXZlQ2ZnID0gRGVidWd8V2luMzINCi0JCXtF
NDk4Q0E5RC0zQkQyLTRENTItOEUzNy1DOERDNzY1MjYzMjV9LkRlYnVnfFdpbjMyLkJ1aWxkLjAg
PSBEZWJ1Z3xXaW4zMg0KLQkJe0U0OThDQTlELTNCRDItNEQ1Mi04RTM3LUM4REM3NjUyNjMyNX0u
UmVsZWFzZXxXaW4zMi5BY3RpdmVDZmcgPSBSZWxlYXNlfFdpbjMyDQotCQl7RTQ5OENBOUQtM0JE
Mi00RDUyLThFMzctQzhEQzc2NTI2MzI1fS5SZWxlYXNlfFdpbjMyLkJ1aWxkLjAgPSBSZWxlYXNl
fFdpbjMyDQotCUVuZEdsb2JhbFNlY3Rpb24NCi0JR2xvYmFsU2VjdGlvbihTb2x1dGlvblByb3Bl
cnRpZXMpID0gcHJlU29sdXRpb24NCi0JCUhpZGVTb2x1dGlvbk5vZGUgPSBGQUxTRQ0KLQlFbmRH
bG9iYWxTZWN0aW9uDQotCUdsb2JhbFNlY3Rpb24oTmVzdGVkUHJvamVjdHMpID0gcHJlU29sdXRp
b24NCi0JCXs4RUY3Mzc3OS1CRUQzLTQ1QkItODE2RC05RkY1ODM5OUFGQTV9ID0gezdGOTgyQ0FE
LTIyNUItNEZDRS05OTM3LTNCNzJDMTREOTY4RH0NCi0JCXtGNzM2NjU5Ni0wNTIwLTQ0MzMtQjhG
Ri1EODQzRTMxRTUxOTl9ID0gezdGOTgyQ0FELTIyNUItNEZDRS05OTM3LTNCNzJDMTREOTY4RH0N
Ci0JCXszNjcwRDAxRi05NUYzLTQ1QTgtQjg3OC05NDdFQjZDRjIxNEV9ID0ge0Y5RjVFN0ZFLTVD
NUYtNENFOS04NjY1LUE4NDYzM0Y0OUUxMn0NCi0JCXsyMjQxM0Q0MS0zQTE4LTQyQjctOTJBOC1D
RURDNkNFODY5MjB9ID0ge0Y5RjVFN0ZFLTVDNUYtNENFOS04NjY1LUE4NDYzM0Y0OUUxMn0NCi0J
CXtENTk1RTNGNi0yNEYyLTRDNjAtOTM1Qy05NUQ1MEM2QjNFOTZ9ID0ge0Y5RjVFN0ZFLTVDNUYt
NENFOS04NjY1LUE4NDYzM0Y0OUUxMn0NCi0JCXs4NzcxNTBBMC00MUIzLTQ3MzAtOUQ5OC0xQjgy
OTgwOThCMTR9ID0ge0Y5RjVFN0ZFLTVDNUYtNENFOS04NjY1LUE4NDYzM0Y0OUUxMn0NCi0JCXs5
MjIxNzQ0Qi01NzE1LTRGNTYtOTU5MC00MkY3QUIyM0REOEJ9ID0ge0Y5RjVFN0ZFLTVDNUYtNENF
OS04NjY1LUE4NDYzM0Y0OUUxMn0NCi0JCXsyQkQ0MzdDRi1CREFDLTQxMTktOUVENi1FMTBFRjQ2
QzY5RjN9ID0ge0Y5RjVFN0ZFLTVDNUYtNENFOS04NjY1LUE4NDYzM0Y0OUUxMn0NCi0JCXsxQzE2
MzM3Qi1BQ0YzLTREMDMtQUE5MC04NTFDNUI1RUFEQTZ9ID0gezRBODk0NTg4LUE5NTEtNEU3Ni1B
MDg1LTUwRTEwMzA0REM0MH0NCi0JCXtBNDE1OUI2Ri0zMTA2LTRGNzUtOUVERC01ODIzMDdCREI5
NkF9ID0gezRBODk0NTg4LUE5NTEtNEU3Ni1BMDg1LTUwRTEwMzA0REM0MH0NCi0JCXtFNDk4Q0E5
RC0zQkQyLTRENTItOEUzNy1DOERDNzY1MjYzMjV9ID0gezRBODk0NTg4LUE5NTEtNEU3Ni1BMDg1
LTUwRTEwMzA0REM0MH0NCi0JCXtERkEwQkMwMy0zRDYyLTQwMzAtODgxMi1DNUIyOTZDODQ4QjJ9
ID0ge0MwRjRGMTM4LUNCMzgtNERCNi05RDhFLTI1QkVBMTQ5RTlCNn0NCi0JCXs1QTFEREM0RC0x
NTE3LTQzMTUtQjc2QS0zOTkzMzEyM0IyMjJ9ID0ge0MwRjRGMTM4LUNCMzgtNERCNi05RDhFLTI1
QkVBMTQ5RTlCNn0NCi0JCXs2RjgwQkI3RC1EQTY2LTQ4REYtODJEMi01MTRCOUM1QTBEMzh9ID0g
ezIxMzZENUIzLTM5MTUtNDNEOC05QTJDLTBEOTZCN0I1Rjc5Qn0NCi0JCXsyQzM5MkM1Qy1DREIx
LTQ5NjctOTNDMi05QzAwRTdGODY1MTh9ID0gezIxMzZENUIzLTM5MTUtNDNEOC05QTJDLTBEOTZC
N0I1Rjc5Qn0NCi0JCXsxNjU5QjFCNi1GMkEzLTQ2QjMtQUUwMi1GRTY1QjRBNjA3RUJ9ID0gezM5
Mjg2RjQ2LUJBNzUtNDk5Ny04MDY1LTE5MDkwOTBBNjBGMH0NCi0JRW5kR2xvYmFsU2VjdGlvbg0K
LUVuZEdsb2JhbA0KK++7vworTWljcm9zb2Z0IFZpc3VhbCBTdHVkaW8gU29sdXRpb24gRmlsZSwg
Rm9ybWF0IFZlcnNpb24gMTEuMDAKKyMgVmlzdWFsIFN0dWRpbyAyMDEwCitQcm9qZWN0KCJ7MjE1
MEUzMzMtOEZEQy00MkEzLTk0NzQtMUEzOTU2RDQ2REU4fSIpID0gIldURiIsICJXVEYiLCAiezdG
OTgyQ0FELTIyNUItNEZDRS05OTM3LTNCNzJDMTREOTY4RH0iCitFbmRQcm9qZWN0CitQcm9qZWN0
KCJ7MjE1MEUzMzMtOEZEQy00MkEzLTk0NzQtMUEzOTU2RDQ2REU4fSIpID0gIkphdmFTY3JpcHRD
b3JlIiwgIkphdmFTY3JpcHRDb3JlIiwgIntGOUY1RTdGRS01QzVGLTRDRTktODY2NS1BODQ2MzNG
NDlFMTJ9IgorRW5kUHJvamVjdAorUHJvamVjdCgiezIxNTBFMzMzLThGREMtNDJBMy05NDc0LTFB
Mzk1NkQ0NkRFOH0iKSA9ICJXZWJDb3JlIiwgIldlYkNvcmUiLCAiezRBODk0NTg4LUE5NTEtNEU3
Ni1BMDg1LTUwRTEwMzA0REM0MH0iCitFbmRQcm9qZWN0CitQcm9qZWN0KCJ7MjE1MEUzMzMtOEZE
Qy00MkEzLTk0NzQtMUEzOTU2RDQ2REU4fSIpID0gIldlYktpdFN5c3RlbUludGVyZmFjZSIsICJX
ZWJLaXRTeXN0ZW1JbnRlcmZhY2UiLCAie0MwRjRGMTM4LUNCMzgtNERCNi05RDhFLTI1QkVBMTQ5
RTlCNn0iCitFbmRQcm9qZWN0CitQcm9qZWN0KCJ7OEJDOUNFQjgtOEI0QS0xMUQwLThEMTEtMDBB
MEM5MUJDOTQyfSIpID0gIldlYktpdFN5c3RlbUludGVyZmFjZUdlbmVyYXRlZCIsICIuLlwuLlwu
LlwuLlxJbnRlcm5hbFxXZWJLaXRTeXN0ZW1JbnRlcmZhY2Vcd2luXFdlYktpdFN5c3RlbUludGVy
ZmFjZUdlbmVyYXRlZC52Y3hwcm9qIiwgIntERkEwQkMwMy0zRDYyLTQwMzAtODgxMi1DNUIyOTZD
ODQ4QjJ9IgorCVByb2plY3RTZWN0aW9uKFByb2plY3REZXBlbmRlbmNpZXMpID0gcG9zdFByb2pl
Y3QKKwkJezIyNDEzRDQxLTNBMTgtNDJCNy05MkE4LUNFREM2Q0U4NjkyMH0gPSB7MjI0MTNENDEt
M0ExOC00MkI3LTkyQTgtQ0VEQzZDRTg2OTIwfQorCUVuZFByb2plY3RTZWN0aW9uCitFbmRQcm9q
ZWN0CitQcm9qZWN0KCJ7OEJDOUNFQjgtOEI0QS0xMUQwLThEMTEtMDBBMEM5MUJDOTQyfSIpID0g
IldlYktpdFN5c3RlbUludGVyZmFjZSIsICIuLlwuLlwuLlwuLlxJbnRlcm5hbFxXZWJLaXRTeXN0
ZW1JbnRlcmZhY2Vcd2luXFdlYktpdFN5c3RlbUludGVyZmFjZS52Y3hwcm9qIiwgIns1QTFEREM0
RC0xNTE3LTQzMTUtQjc2QS0zOTkzMzEyM0IyMjJ9IgorCVByb2plY3RTZWN0aW9uKFByb2plY3RE
ZXBlbmRlbmNpZXMpID0gcG9zdFByb2plY3QKKwkJe0RGQTBCQzAzLTNENjItNDAzMC04ODEyLUM1
QjI5NkM4NDhCMn0gPSB7REZBMEJDMDMtM0Q2Mi00MDMwLTg4MTItQzVCMjk2Qzg0OEIyfQorCUVu
ZFByb2plY3RTZWN0aW9uCitFbmRQcm9qZWN0CitQcm9qZWN0KCJ7MjE1MEUzMzMtOEZEQy00MkEz
LTk0NzQtMUEzOTU2RDQ2REU4fSIpID0gIldlYktpdFF1YXJ0ekNvcmVBZGRpdGlvbnMiLCAiV2Vi
S2l0UXVhcnR6Q29yZUFkZGl0aW9ucyIsICJ7MjEzNkQ1QjMtMzkxNS00M0Q4LTlBMkMtMEQ5NkI3
QjVGNzlCfSIKK0VuZFByb2plY3QKK1Byb2plY3QoIns4QkM5Q0VCOC04QjRBLTExRDAtOEQxMS0w
MEEwQzkxQkM5NDJ9IikgPSAiV2ViS2l0UXVhcnR6Q29yZUFkZGl0aW9ucyIsICIuLlwuLlwuLlwu
LlxJbnRlcm5hbFxXZWJLaXRRdWFydHpDb3JlQWRkaXRpb25zXFdlYktpdFF1YXJ0ekNvcmVBZGRp
dGlvbnMudmN4cHJvaiIsICJ7NkY4MEJCN0QtREE2Ni00OERGLTgyRDItNTE0QjlDNUEwRDM4fSIK
KwlQcm9qZWN0U2VjdGlvbihQcm9qZWN0RGVwZW5kZW5jaWVzKSA9IHBvc3RQcm9qZWN0CisJCXsy
QzM5MkM1Qy1DREIxLTQ5NjctOTNDMi05QzAwRTdGODY1MTh9ID0gezJDMzkyQzVDLUNEQjEtNDk2
Ny05M0MyLTlDMDBFN0Y4NjUxOH0KKwlFbmRQcm9qZWN0U2VjdGlvbgorRW5kUHJvamVjdAorUHJv
amVjdCgiezhCQzlDRUI4LThCNEEtMTFEMC04RDExLTAwQTBDOTFCQzk0Mn0iKSA9ICJXZWJLaXRR
dWFydHpDb3JlQWRkaXRpb25zR2VuZXJhdGVkIiwgIi4uXC4uXC4uXC4uXEludGVybmFsXFdlYktp
dFF1YXJ0ekNvcmVBZGRpdGlvbnNcV2ViS2l0UXVhcnR6Q29yZUFkZGl0aW9uc0dlbmVyYXRlZC52
Y3hwcm9qIiwgInsyQzM5MkM1Qy1DREIxLTQ5NjctOTNDMi05QzAwRTdGODY1MTh9IgorCVByb2pl
Y3RTZWN0aW9uKFByb2plY3REZXBlbmRlbmNpZXMpID0gcG9zdFByb2plY3QKKwkJezVBMUREQzRE
LTE1MTctNDMxNS1CNzZBLTM5OTMzMTIzQjIyMn0gPSB7NUExRERDNEQtMTUxNy00MzE1LUI3NkEt
Mzk5MzMxMjNCMjIyfQorCUVuZFByb2plY3RTZWN0aW9uCitFbmRQcm9qZWN0CitQcm9qZWN0KCJ7
MjE1MEUzMzMtOEZEQy00MkEzLTk0NzQtMUEzOTU2RDQ2REU4fSIpID0gIldlYktpdCIsICJXZWJL
aXQiLCAiezM5Mjg2RjQ2LUJBNzUtNDk5Ny04MDY1LTE5MDkwOTBBNjBGMH0iCitFbmRQcm9qZWN0
CitQcm9qZWN0KCJ7OEJDOUNFQjgtOEI0QS0xMUQwLThEMTEtMDBBMEM5MUJDOTQyfSIpID0gIklu
dGVyZmFjZXMiLCAiSW50ZXJmYWNlc1xJbnRlcmZhY2VzLnZjeHByb2oiLCAiezE2NTlCMUI2LUYy
QTMtNDZCMy1BRTAyLUZFNjVCNEE2MDdFQn0iCisJUHJvamVjdFNlY3Rpb24oUHJvamVjdERlcGVu
ZGVuY2llcykgPSBwb3N0UHJvamVjdAorCQl7MUMxNjMzN0ItQUNGMy00RDAzLUFBOTAtODUxQzVC
NUVBREE2fSA9IHsxQzE2MzM3Qi1BQ0YzLTREMDMtQUE5MC04NTFDNUI1RUFEQTZ9CisJRW5kUHJv
amVjdFNlY3Rpb24KK0VuZFByb2plY3QKK1Byb2plY3QoIns4QkM5Q0VCOC04QjRBLTExRDAtOEQx
MS0wMEEwQzkxQkM5NDJ9IikgPSAiV1RGIiwgIi4uXC4uXFdURlxXVEYudmN4cHJvalxXVEYudmN4
cHJvaiIsICJ7OEVGNzM3NzktQkVEMy00NUJCLTgxNkQtOUZGNTgzOTlBRkE1fSIKKwlQcm9qZWN0
U2VjdGlvbihQcm9qZWN0RGVwZW5kZW5jaWVzKSA9IHBvc3RQcm9qZWN0CisJCXtGNzM2NjU5Ni0w
NTIwLTQ0MzMtQjhGRi1EODQzRTMxRTUxOTl9ID0ge0Y3MzY2NTk2LTA1MjAtNDQzMy1COEZGLUQ4
NDNFMzFFNTE5OX0KKwlFbmRQcm9qZWN0U2VjdGlvbgorRW5kUHJvamVjdAorUHJvamVjdCgiezhC
QzlDRUI4LThCNEEtMTFEMC04RDExLTAwQTBDOTFCQzk0Mn0iKSA9ICJXVEZHZW5lcmF0ZWQiLCAi
Li5cLi5cV1RGXFdURi52Y3hwcm9qXFdURkdlbmVyYXRlZC52Y3hwcm9qIiwgIntGNzM2NjU5Ni0w
NTIwLTQ0MzMtQjhGRi1EODQzRTMxRTUxOTl9IgorRW5kUHJvamVjdAorUHJvamVjdCgiezhCQzlD
RUI4LThCNEEtMTFEMC04RDExLTAwQTBDOTFCQzk0Mn0iKSA9ICJKYXZhU2NyaXB0Q29yZUdlbmVy
YXRlZCIsICIuLlwuLlxKYXZhU2NyaXB0Q29yZVxKYXZhU2NyaXB0Q29yZS52Y3hwcm9qXEphdmFT
Y3JpcHRDb3JlR2VuZXJhdGVkLnZjeHByb2oiLCAiezM2NzBEMDFGLTk1RjMtNDVBOC1CODc4LTk0
N0VCNkNGMjE0RX0iCisJUHJvamVjdFNlY3Rpb24oUHJvamVjdERlcGVuZGVuY2llcykgPSBwb3N0
UHJvamVjdAorCQl7OEVGNzM3NzktQkVEMy00NUJCLTgxNkQtOUZGNTgzOTlBRkE1fSA9IHs4RUY3
Mzc3OS1CRUQzLTQ1QkItODE2RC05RkY1ODM5OUFGQTV9CisJRW5kUHJvamVjdFNlY3Rpb24KK0Vu
ZFByb2plY3QKK1Byb2plY3QoIns4QkM5Q0VCOC04QjRBLTExRDAtOEQxMS0wMEEwQzkxQkM5NDJ9
IikgPSAiSmF2YVNjcmlwdENvcmUiLCAiLi5cLi5cSmF2YVNjcmlwdENvcmVcSmF2YVNjcmlwdENv
cmUudmN4cHJvalxKYXZhU2NyaXB0Q29yZS52Y3hwcm9qIiwgInsyMjQxM0Q0MS0zQTE4LTQyQjct
OTJBOC1DRURDNkNFODY5MjB9IgorCVByb2plY3RTZWN0aW9uKFByb2plY3REZXBlbmRlbmNpZXMp
ID0gcG9zdFByb2plY3QKKwkJezM2NzBEMDFGLTk1RjMtNDVBOC1CODc4LTk0N0VCNkNGMjE0RX0g
PSB7MzY3MEQwMUYtOTVGMy00NUE4LUI4NzgtOTQ3RUI2Q0YyMTRFfQorCQl7OTIyMTc0NEItNTcx
NS00RjU2LTk1OTAtNDJGN0FCMjNERDhCfSA9IHs5MjIxNzQ0Qi01NzE1LTRGNTYtOTU5MC00MkY3
QUIyM0REOEJ9CisJRW5kUHJvamVjdFNlY3Rpb24KK0VuZFByb2plY3QKK1Byb2plY3QoIns4QkM5
Q0VCOC04QjRBLTExRDAtOEQxMS0wMEEwQzkxQkM5NDJ9IikgPSAiTExJbnRPZmZzZXRzRXh0cmFj
dG9yIiwgIi4uXC4uXEphdmFTY3JpcHRDb3JlXEphdmFTY3JpcHRDb3JlLnZjeHByb2pcTExJbnQu
dmNwcm9qXExMSW50T2Zmc2V0c0V4dHJhY3RvclxMTEludE9mZnNldHNFeHRyYWN0b3IudmN4cHJv
aiIsICJ7RDU5NUUzRjYtMjRGMi00QzYwLTkzNUMtOTVENTBDNkIzRTk2fSIKKwlQcm9qZWN0U2Vj
dGlvbihQcm9qZWN0RGVwZW5kZW5jaWVzKSA9IHBvc3RQcm9qZWN0CisJCXs4NzcxNTBBMC00MUIz
LTQ3MzAtOUQ5OC0xQjgyOTgwOThCMTR9ID0gezg3NzE1MEEwLTQxQjMtNDczMC05RDk4LTFCODI5
ODA5OEIxNH0KKwlFbmRQcm9qZWN0U2VjdGlvbgorRW5kUHJvamVjdAorUHJvamVjdCgiezhCQzlD
RUI4LThCNEEtMTFEMC04RDExLTAwQTBDOTFCQzk0Mn0iKSA9ICJMTEludERlc2lyZWRPZmZzZXRz
IiwgIi4uXC4uXEphdmFTY3JpcHRDb3JlXEphdmFTY3JpcHRDb3JlLnZjeHByb2pcTExJbnQudmNw
cm9qXExMSW50RGVzaXJlZE9mZnNldHNcTExJbnREZXNpcmVkT2Zmc2V0cy52Y3hwcm9qIiwgIns4
NzcxNTBBMC00MUIzLTQ3MzAtOUQ5OC0xQjgyOTgwOThCMTR9IgorCVByb2plY3RTZWN0aW9uKFBy
b2plY3REZXBlbmRlbmNpZXMpID0gcG9zdFByb2plY3QKKwkJezM2NzBEMDFGLTk1RjMtNDVBOC1C
ODc4LTk0N0VCNkNGMjE0RX0gPSB7MzY3MEQwMUYtOTVGMy00NUE4LUI4NzgtOTQ3RUI2Q0YyMTRF
fQorCUVuZFByb2plY3RTZWN0aW9uCitFbmRQcm9qZWN0CitQcm9qZWN0KCJ7OEJDOUNFQjgtOEI0
QS0xMUQwLThEMTEtMDBBMEM5MUJDOTQyfSIpID0gIkxMSW50QXNzZW1ibHkiLCAiLi5cLi5cSmF2
YVNjcmlwdENvcmVcSmF2YVNjcmlwdENvcmUudmN4cHJvalxMTEludC52Y3Byb2pcTExJbnRBc3Nl
bWJseVxMTEludEFzc2VtYmx5LnZjeHByb2oiLCAiezkyMjE3NDRCLTU3MTUtNEY1Ni05NTkwLTQy
RjdBQjIzREQ4Qn0iCisJUHJvamVjdFNlY3Rpb24oUHJvamVjdERlcGVuZGVuY2llcykgPSBwb3N0
UHJvamVjdAorCQl7RDU5NUUzRjYtMjRGMi00QzYwLTkzNUMtOTVENTBDNkIzRTk2fSA9IHtENTk1
RTNGNi0yNEYyLTRDNjAtOTM1Qy05NUQ1MEM2QjNFOTZ9CisJRW5kUHJvamVjdFNlY3Rpb24KK0Vu
ZFByb2plY3QKK1Byb2plY3QoIns4QkM5Q0VCOC04QjRBLTExRDAtOEQxMS0wMEEwQzkxQkM5NDJ9
IikgPSAianNjIiwgIi4uXC4uXEphdmFTY3JpcHRDb3JlXEphdmFTY3JpcHRDb3JlLnZjeHByb2pc
anNjXGpzYy52Y3hwcm9qIiwgInsyQkQ0MzdDRi1CREFDLTQxMTktOUVENi1FMTBFRjQ2QzY5RjN9
IgorCVByb2plY3RTZWN0aW9uKFByb2plY3REZXBlbmRlbmNpZXMpID0gcG9zdFByb2plY3QKKwkJ
ezIyNDEzRDQxLTNBMTgtNDJCNy05MkE4LUNFREM2Q0U4NjkyMH0gPSB7MjI0MTNENDEtM0ExOC00
MkI3LTkyQTgtQ0VEQzZDRTg2OTIwfQorCUVuZFByb2plY3RTZWN0aW9uCitFbmRQcm9qZWN0CitQ
cm9qZWN0KCJ7OEJDOUNFQjgtOEI0QS0xMUQwLThEMTEtMDBBMEM5MUJDOTQyfSIpID0gIldlYkNv
cmUiLCAiLi5cLi5cV2ViQ29yZVxXZWJDb3JlLnZjeHByb2pcV2ViQ29yZS52Y3hwcm9qIiwgInsx
QzE2MzM3Qi1BQ0YzLTREMDMtQUE5MC04NTFDNUI1RUFEQTZ9IgorCVByb2plY3RTZWN0aW9uKFBy
b2plY3REZXBlbmRlbmNpZXMpID0gcG9zdFByb2plY3QKKwkJe0U0OThDQTlELTNCRDItNEQ1Mi04
RTM3LUM4REM3NjUyNjMyNX0gPSB7RTQ5OENBOUQtM0JEMi00RDUyLThFMzctQzhEQzc2NTI2MzI1
fQorCUVuZFByb2plY3RTZWN0aW9uCitFbmRQcm9qZWN0CitQcm9qZWN0KCJ7OEJDOUNFQjgtOEI0
QS0xMUQwLThEMTEtMDBBMEM5MUJDOTQyfSIpID0gIldlYkNvcmVHZW5lcmF0ZWQiLCAiLi5cLi5c
V2ViQ29yZVxXZWJDb3JlLnZjeHByb2pcV2ViQ29yZUdlbmVyYXRlZC52Y3hwcm9qIiwgIntBNDE1
OUI2Ri0zMTA2LTRGNzUtOUVERC01ODIzMDdCREI5NkF9IgorCVByb2plY3RTZWN0aW9uKFByb2pl
Y3REZXBlbmRlbmNpZXMpID0gcG9zdFByb2plY3QKKwkJezZGODBCQjdELURBNjYtNDhERi04MkQy
LTUxNEI5QzVBMEQzOH0gPSB7NkY4MEJCN0QtREE2Ni00OERGLTgyRDItNTE0QjlDNUEwRDM4fQor
CUVuZFByb2plY3RTZWN0aW9uCitFbmRQcm9qZWN0CitQcm9qZWN0KCJ7OEJDOUNFQjgtOEI0QS0x
MUQwLThEMTEtMDBBMEM5MUJDOTQyfSIpID0gIlFUTW92aWVXaW4iLCAiLi5cLi5cV2ViQ29yZVxX
ZWJDb3JlLnZjeHByb2pcUVRNb3ZpZVdpblxRVE1vdmllV2luLnZjeHByb2oiLCAie0U0OThDQTlE
LTNCRDItNEQ1Mi04RTM3LUM4REM3NjUyNjMyNX0iCisJUHJvamVjdFNlY3Rpb24oUHJvamVjdERl
cGVuZGVuY2llcykgPSBwb3N0UHJvamVjdAorCQl7QTQxNTlCNkYtMzEwNi00Rjc1LTlFREQtNTgy
MzA3QkRCOTZBfSA9IHtBNDE1OUI2Ri0zMTA2LTRGNzUtOUVERC01ODIzMDdCREI5NkF9CisJRW5k
UHJvamVjdFNlY3Rpb24KK0VuZFByb2plY3QKK0dsb2JhbAorCUdsb2JhbFNlY3Rpb24oU29sdXRp
b25Db25maWd1cmF0aW9uUGxhdGZvcm1zKSA9IHByZVNvbHV0aW9uCisJCURlYnVnfFdpbjMyID0g
RGVidWd8V2luMzIKKwkJUmVsZWFzZXxXaW4zMiA9IFJlbGVhc2V8V2luMzIKKwlFbmRHbG9iYWxT
ZWN0aW9uCisJR2xvYmFsU2VjdGlvbihQcm9qZWN0Q29uZmlndXJhdGlvblBsYXRmb3JtcykgPSBw
b3N0U29sdXRpb24KKwkJe0RGQTBCQzAzLTNENjItNDAzMC04ODEyLUM1QjI5NkM4NDhCMn0uRGVi
dWd8V2luMzIuQWN0aXZlQ2ZnID0gRGVidWd8V2luMzIKKwkJe0RGQTBCQzAzLTNENjItNDAzMC04
ODEyLUM1QjI5NkM4NDhCMn0uRGVidWd8V2luMzIuQnVpbGQuMCA9IERlYnVnfFdpbjMyCisJCXtE
RkEwQkMwMy0zRDYyLTQwMzAtODgxMi1DNUIyOTZDODQ4QjJ9LlJlbGVhc2V8V2luMzIuQWN0aXZl
Q2ZnID0gUmVsZWFzZXxXaW4zMgorCQl7REZBMEJDMDMtM0Q2Mi00MDMwLTg4MTItQzVCMjk2Qzg0
OEIyfS5SZWxlYXNlfFdpbjMyLkJ1aWxkLjAgPSBSZWxlYXNlfFdpbjMyCisJCXs1QTFEREM0RC0x
NTE3LTQzMTUtQjc2QS0zOTkzMzEyM0IyMjJ9LkRlYnVnfFdpbjMyLkFjdGl2ZUNmZyA9IERlYnVn
fFdpbjMyCisJCXs1QTFEREM0RC0xNTE3LTQzMTUtQjc2QS0zOTkzMzEyM0IyMjJ9LkRlYnVnfFdp
bjMyLkJ1aWxkLjAgPSBEZWJ1Z3xXaW4zMgorCQl7NUExRERDNEQtMTUxNy00MzE1LUI3NkEtMzk5
MzMxMjNCMjIyfS5SZWxlYXNlfFdpbjMyLkFjdGl2ZUNmZyA9IFJlbGVhc2V8V2luMzIKKwkJezVB
MUREQzRELTE1MTctNDMxNS1CNzZBLTM5OTMzMTIzQjIyMn0uUmVsZWFzZXxXaW4zMi5CdWlsZC4w
ID0gUmVsZWFzZXxXaW4zMgorCQl7NkY4MEJCN0QtREE2Ni00OERGLTgyRDItNTE0QjlDNUEwRDM4
fS5EZWJ1Z3xXaW4zMi5BY3RpdmVDZmcgPSBEZWJ1Z3xXaW4zMgorCQl7NkY4MEJCN0QtREE2Ni00
OERGLTgyRDItNTE0QjlDNUEwRDM4fS5EZWJ1Z3xXaW4zMi5CdWlsZC4wID0gRGVidWd8V2luMzIK
KwkJezZGODBCQjdELURBNjYtNDhERi04MkQyLTUxNEI5QzVBMEQzOH0uUmVsZWFzZXxXaW4zMi5B
Y3RpdmVDZmcgPSBSZWxlYXNlfFdpbjMyCisJCXs2RjgwQkI3RC1EQTY2LTQ4REYtODJEMi01MTRC
OUM1QTBEMzh9LlJlbGVhc2V8V2luMzIuQnVpbGQuMCA9IFJlbGVhc2V8V2luMzIKKwkJezJDMzky
QzVDLUNEQjEtNDk2Ny05M0MyLTlDMDBFN0Y4NjUxOH0uRGVidWd8V2luMzIuQWN0aXZlQ2ZnID0g
RGVidWd8V2luMzIKKwkJezJDMzkyQzVDLUNEQjEtNDk2Ny05M0MyLTlDMDBFN0Y4NjUxOH0uRGVi
dWd8V2luMzIuQnVpbGQuMCA9IERlYnVnfFdpbjMyCisJCXsyQzM5MkM1Qy1DREIxLTQ5NjctOTND
Mi05QzAwRTdGODY1MTh9LlJlbGVhc2V8V2luMzIuQWN0aXZlQ2ZnID0gUmVsZWFzZXxXaW4zMgor
CQl7MkMzOTJDNUMtQ0RCMS00OTY3LTkzQzItOUMwMEU3Rjg2NTE4fS5SZWxlYXNlfFdpbjMyLkJ1
aWxkLjAgPSBSZWxlYXNlfFdpbjMyCisJCXsxNjU5QjFCNi1GMkEzLTQ2QjMtQUUwMi1GRTY1QjRB
NjA3RUJ9LkRlYnVnfFdpbjMyLkFjdGl2ZUNmZyA9IERlYnVnfFdpbjMyCisJCXsxNjU5QjFCNi1G
MkEzLTQ2QjMtQUUwMi1GRTY1QjRBNjA3RUJ9LkRlYnVnfFdpbjMyLkJ1aWxkLjAgPSBEZWJ1Z3xX
aW4zMgorCQl7MTY1OUIxQjYtRjJBMy00NkIzLUFFMDItRkU2NUI0QTYwN0VCfS5SZWxlYXNlfFdp
bjMyLkFjdGl2ZUNmZyA9IFJlbGVhc2V8V2luMzIKKwkJezE2NTlCMUI2LUYyQTMtNDZCMy1BRTAy
LUZFNjVCNEE2MDdFQn0uUmVsZWFzZXxXaW4zMi5CdWlsZC4wID0gUmVsZWFzZXxXaW4zMgorCQl7
OEVGNzM3NzktQkVEMy00NUJCLTgxNkQtOUZGNTgzOTlBRkE1fS5EZWJ1Z3xXaW4zMi5BY3RpdmVD
ZmcgPSBEZWJ1Z3xXaW4zMgorCQl7OEVGNzM3NzktQkVEMy00NUJCLTgxNkQtOUZGNTgzOTlBRkE1
fS5EZWJ1Z3xXaW4zMi5CdWlsZC4wID0gRGVidWd8V2luMzIKKwkJezhFRjczNzc5LUJFRDMtNDVC
Qi04MTZELTlGRjU4Mzk5QUZBNX0uUmVsZWFzZXxXaW4zMi5BY3RpdmVDZmcgPSBSZWxlYXNlfFdp
bjMyCisJCXs4RUY3Mzc3OS1CRUQzLTQ1QkItODE2RC05RkY1ODM5OUFGQTV9LlJlbGVhc2V8V2lu
MzIuQnVpbGQuMCA9IFJlbGVhc2V8V2luMzIKKwkJe0Y3MzY2NTk2LTA1MjAtNDQzMy1COEZGLUQ4
NDNFMzFFNTE5OX0uRGVidWd8V2luMzIuQWN0aXZlQ2ZnID0gRGVidWd8V2luMzIKKwkJe0Y3MzY2
NTk2LTA1MjAtNDQzMy1COEZGLUQ4NDNFMzFFNTE5OX0uRGVidWd8V2luMzIuQnVpbGQuMCA9IERl
YnVnfFdpbjMyCisJCXtGNzM2NjU5Ni0wNTIwLTQ0MzMtQjhGRi1EODQzRTMxRTUxOTl9LlJlbGVh
c2V8V2luMzIuQWN0aXZlQ2ZnID0gUmVsZWFzZXxXaW4zMgorCQl7RjczNjY1OTYtMDUyMC00NDMz
LUI4RkYtRDg0M0UzMUU1MTk5fS5SZWxlYXNlfFdpbjMyLkJ1aWxkLjAgPSBSZWxlYXNlfFdpbjMy
CisJCXszNjcwRDAxRi05NUYzLTQ1QTgtQjg3OC05NDdFQjZDRjIxNEV9LkRlYnVnfFdpbjMyLkFj
dGl2ZUNmZyA9IERlYnVnfFdpbjMyCisJCXszNjcwRDAxRi05NUYzLTQ1QTgtQjg3OC05NDdFQjZD
RjIxNEV9LkRlYnVnfFdpbjMyLkJ1aWxkLjAgPSBEZWJ1Z3xXaW4zMgorCQl7MzY3MEQwMUYtOTVG
My00NUE4LUI4NzgtOTQ3RUI2Q0YyMTRFfS5SZWxlYXNlfFdpbjMyLkFjdGl2ZUNmZyA9IFJlbGVh
c2V8V2luMzIKKwkJezM2NzBEMDFGLTk1RjMtNDVBOC1CODc4LTk0N0VCNkNGMjE0RX0uUmVsZWFz
ZXxXaW4zMi5CdWlsZC4wID0gUmVsZWFzZXxXaW4zMgorCQl7MjI0MTNENDEtM0ExOC00MkI3LTky
QTgtQ0VEQzZDRTg2OTIwfS5EZWJ1Z3xXaW4zMi5BY3RpdmVDZmcgPSBEZWJ1Z3xXaW4zMgorCQl7
MjI0MTNENDEtM0ExOC00MkI3LTkyQTgtQ0VEQzZDRTg2OTIwfS5EZWJ1Z3xXaW4zMi5CdWlsZC4w
ID0gRGVidWd8V2luMzIKKwkJezIyNDEzRDQxLTNBMTgtNDJCNy05MkE4LUNFREM2Q0U4NjkyMH0u
UmVsZWFzZXxXaW4zMi5BY3RpdmVDZmcgPSBSZWxlYXNlfFdpbjMyCisJCXsyMjQxM0Q0MS0zQTE4
LTQyQjctOTJBOC1DRURDNkNFODY5MjB9LlJlbGVhc2V8V2luMzIuQnVpbGQuMCA9IFJlbGVhc2V8
V2luMzIKKwkJe0Q1OTVFM0Y2LTI0RjItNEM2MC05MzVDLTk1RDUwQzZCM0U5Nn0uRGVidWd8V2lu
MzIuQWN0aXZlQ2ZnID0gRGVidWd8V2luMzIKKwkJe0Q1OTVFM0Y2LTI0RjItNEM2MC05MzVDLTk1
RDUwQzZCM0U5Nn0uRGVidWd8V2luMzIuQnVpbGQuMCA9IERlYnVnfFdpbjMyCisJCXtENTk1RTNG
Ni0yNEYyLTRDNjAtOTM1Qy05NUQ1MEM2QjNFOTZ9LlJlbGVhc2V8V2luMzIuQWN0aXZlQ2ZnID0g
UmVsZWFzZXxXaW4zMgorCQl7RDU5NUUzRjYtMjRGMi00QzYwLTkzNUMtOTVENTBDNkIzRTk2fS5S
ZWxlYXNlfFdpbjMyLkJ1aWxkLjAgPSBSZWxlYXNlfFdpbjMyCisJCXs4NzcxNTBBMC00MUIzLTQ3
MzAtOUQ5OC0xQjgyOTgwOThCMTR9LkRlYnVnfFdpbjMyLkFjdGl2ZUNmZyA9IERlYnVnfFdpbjMy
CisJCXs4NzcxNTBBMC00MUIzLTQ3MzAtOUQ5OC0xQjgyOTgwOThCMTR9LkRlYnVnfFdpbjMyLkJ1
aWxkLjAgPSBEZWJ1Z3xXaW4zMgorCQl7ODc3MTUwQTAtNDFCMy00NzMwLTlEOTgtMUI4Mjk4MDk4
QjE0fS5SZWxlYXNlfFdpbjMyLkFjdGl2ZUNmZyA9IFJlbGVhc2V8V2luMzIKKwkJezg3NzE1MEEw
LTQxQjMtNDczMC05RDk4LTFCODI5ODA5OEIxNH0uUmVsZWFzZXxXaW4zMi5CdWlsZC4wID0gUmVs
ZWFzZXxXaW4zMgorCQl7OTIyMTc0NEItNTcxNS00RjU2LTk1OTAtNDJGN0FCMjNERDhCfS5EZWJ1
Z3xXaW4zMi5BY3RpdmVDZmcgPSBEZWJ1Z3xXaW4zMgorCQl7OTIyMTc0NEItNTcxNS00RjU2LTk1
OTAtNDJGN0FCMjNERDhCfS5EZWJ1Z3xXaW4zMi5CdWlsZC4wID0gRGVidWd8V2luMzIKKwkJezky
MjE3NDRCLTU3MTUtNEY1Ni05NTkwLTQyRjdBQjIzREQ4Qn0uUmVsZWFzZXxXaW4zMi5BY3RpdmVD
ZmcgPSBSZWxlYXNlfFdpbjMyCisJCXs5MjIxNzQ0Qi01NzE1LTRGNTYtOTU5MC00MkY3QUIyM0RE
OEJ9LlJlbGVhc2V8V2luMzIuQnVpbGQuMCA9IFJlbGVhc2V8V2luMzIKKwkJezJCRDQzN0NGLUJE
QUMtNDExOS05RUQ2LUUxMEVGNDZDNjlGM30uRGVidWd8V2luMzIuQWN0aXZlQ2ZnID0gRGVidWd8
V2luMzIKKwkJezJCRDQzN0NGLUJEQUMtNDExOS05RUQ2LUUxMEVGNDZDNjlGM30uRGVidWd8V2lu
MzIuQnVpbGQuMCA9IERlYnVnfFdpbjMyCisJCXsyQkQ0MzdDRi1CREFDLTQxMTktOUVENi1FMTBF
RjQ2QzY5RjN9LlJlbGVhc2V8V2luMzIuQWN0aXZlQ2ZnID0gUmVsZWFzZXxXaW4zMgorCQl7MkJE
NDM3Q0YtQkRBQy00MTE5LTlFRDYtRTEwRUY0NkM2OUYzfS5SZWxlYXNlfFdpbjMyLkJ1aWxkLjAg
PSBSZWxlYXNlfFdpbjMyCisJCXsxQzE2MzM3Qi1BQ0YzLTREMDMtQUE5MC04NTFDNUI1RUFEQTZ9
LkRlYnVnfFdpbjMyLkFjdGl2ZUNmZyA9IERlYnVnfFdpbjMyCisJCXsxQzE2MzM3Qi1BQ0YzLTRE
MDMtQUE5MC04NTFDNUI1RUFEQTZ9LkRlYnVnfFdpbjMyLkJ1aWxkLjAgPSBEZWJ1Z3xXaW4zMgor
CQl7MUMxNjMzN0ItQUNGMy00RDAzLUFBOTAtODUxQzVCNUVBREE2fS5SZWxlYXNlfFdpbjMyLkFj
dGl2ZUNmZyA9IFJlbGVhc2V8V2luMzIKKwkJezFDMTYzMzdCLUFDRjMtNEQwMy1BQTkwLTg1MUM1
QjVFQURBNn0uUmVsZWFzZXxXaW4zMi5CdWlsZC4wID0gUmVsZWFzZXxXaW4zMgorCQl7QTQxNTlC
NkYtMzEwNi00Rjc1LTlFREQtNTgyMzA3QkRCOTZBfS5EZWJ1Z3xXaW4zMi5BY3RpdmVDZmcgPSBE
ZWJ1Z3xXaW4zMgorCQl7QTQxNTlCNkYtMzEwNi00Rjc1LTlFREQtNTgyMzA3QkRCOTZBfS5EZWJ1
Z3xXaW4zMi5CdWlsZC4wID0gRGVidWd8V2luMzIKKwkJe0E0MTU5QjZGLTMxMDYtNEY3NS05RURE
LTU4MjMwN0JEQjk2QX0uUmVsZWFzZXxXaW4zMi5BY3RpdmVDZmcgPSBSZWxlYXNlfFdpbjMyCisJ
CXtBNDE1OUI2Ri0zMTA2LTRGNzUtOUVERC01ODIzMDdCREI5NkF9LlJlbGVhc2V8V2luMzIuQnVp
bGQuMCA9IFJlbGVhc2V8V2luMzIKKwkJe0U0OThDQTlELTNCRDItNEQ1Mi04RTM3LUM4REM3NjUy
NjMyNX0uRGVidWd8V2luMzIuQWN0aXZlQ2ZnID0gRGVidWd8V2luMzIKKwkJe0U0OThDQTlELTNC
RDItNEQ1Mi04RTM3LUM4REM3NjUyNjMyNX0uRGVidWd8V2luMzIuQnVpbGQuMCA9IERlYnVnfFdp
bjMyCisJCXtFNDk4Q0E5RC0zQkQyLTRENTItOEUzNy1DOERDNzY1MjYzMjV9LlJlbGVhc2V8V2lu
MzIuQWN0aXZlQ2ZnID0gUmVsZWFzZXxXaW4zMgorCQl7RTQ5OENBOUQtM0JEMi00RDUyLThFMzct
QzhEQzc2NTI2MzI1fS5SZWxlYXNlfFdpbjMyLkJ1aWxkLjAgPSBSZWxlYXNlfFdpbjMyCisJRW5k
R2xvYmFsU2VjdGlvbgorCUdsb2JhbFNlY3Rpb24oU29sdXRpb25Qcm9wZXJ0aWVzKSA9IHByZVNv
bHV0aW9uCisJCUhpZGVTb2x1dGlvbk5vZGUgPSBGQUxTRQorCUVuZEdsb2JhbFNlY3Rpb24KKwlH
bG9iYWxTZWN0aW9uKE5lc3RlZFByb2plY3RzKSA9IHByZVNvbHV0aW9uCisJCXs4RUY3Mzc3OS1C
RUQzLTQ1QkItODE2RC05RkY1ODM5OUFGQTV9ID0gezdGOTgyQ0FELTIyNUItNEZDRS05OTM3LTNC
NzJDMTREOTY4RH0KKwkJe0Y3MzY2NTk2LTA1MjAtNDQzMy1COEZGLUQ4NDNFMzFFNTE5OX0gPSB7
N0Y5ODJDQUQtMjI1Qi00RkNFLTk5MzctM0I3MkMxNEQ5NjhEfQorCQl7MzY3MEQwMUYtOTVGMy00
NUE4LUI4NzgtOTQ3RUI2Q0YyMTRFfSA9IHtGOUY1RTdGRS01QzVGLTRDRTktODY2NS1BODQ2MzNG
NDlFMTJ9CisJCXsyMjQxM0Q0MS0zQTE4LTQyQjctOTJBOC1DRURDNkNFODY5MjB9ID0ge0Y5RjVF
N0ZFLTVDNUYtNENFOS04NjY1LUE4NDYzM0Y0OUUxMn0KKwkJe0Q1OTVFM0Y2LTI0RjItNEM2MC05
MzVDLTk1RDUwQzZCM0U5Nn0gPSB7RjlGNUU3RkUtNUM1Ri00Q0U5LTg2NjUtQTg0NjMzRjQ5RTEy
fQorCQl7ODc3MTUwQTAtNDFCMy00NzMwLTlEOTgtMUI4Mjk4MDk4QjE0fSA9IHtGOUY1RTdGRS01
QzVGLTRDRTktODY2NS1BODQ2MzNGNDlFMTJ9CisJCXs5MjIxNzQ0Qi01NzE1LTRGNTYtOTU5MC00
MkY3QUIyM0REOEJ9ID0ge0Y5RjVFN0ZFLTVDNUYtNENFOS04NjY1LUE4NDYzM0Y0OUUxMn0KKwkJ
ezJCRDQzN0NGLUJEQUMtNDExOS05RUQ2LUUxMEVGNDZDNjlGM30gPSB7RjlGNUU3RkUtNUM1Ri00
Q0U5LTg2NjUtQTg0NjMzRjQ5RTEyfQorCQl7MUMxNjMzN0ItQUNGMy00RDAzLUFBOTAtODUxQzVC
NUVBREE2fSA9IHs0QTg5NDU4OC1BOTUxLTRFNzYtQTA4NS01MEUxMDMwNERDNDB9CisJCXtBNDE1
OUI2Ri0zMTA2LTRGNzUtOUVERC01ODIzMDdCREI5NkF9ID0gezRBODk0NTg4LUE5NTEtNEU3Ni1B
MDg1LTUwRTEwMzA0REM0MH0KKwkJe0U0OThDQTlELTNCRDItNEQ1Mi04RTM3LUM4REM3NjUyNjMy
NX0gPSB7NEE4OTQ1ODgtQTk1MS00RTc2LUEwODUtNTBFMTAzMDREQzQwfQorCQl7REZBMEJDMDMt
M0Q2Mi00MDMwLTg4MTItQzVCMjk2Qzg0OEIyfSA9IHtDMEY0RjEzOC1DQjM4LTREQjYtOUQ4RS0y
NUJFQTE0OUU5QjZ9CisJCXs1QTFEREM0RC0xNTE3LTQzMTUtQjc2QS0zOTkzMzEyM0IyMjJ9ID0g
e0MwRjRGMTM4LUNCMzgtNERCNi05RDhFLTI1QkVBMTQ5RTlCNn0KKwkJezZGODBCQjdELURBNjYt
NDhERi04MkQyLTUxNEI5QzVBMEQzOH0gPSB7MjEzNkQ1QjMtMzkxNS00M0Q4LTlBMkMtMEQ5NkI3
QjVGNzlCfQorCQl7MkMzOTJDNUMtQ0RCMS00OTY3LTkzQzItOUMwMEU3Rjg2NTE4fSA9IHsyMTM2
RDVCMy0zOTE1LTQzRDgtOUEyQy0wRDk2QjdCNUY3OUJ9CisJCXsxNjU5QjFCNi1GMkEzLTQ2QjMt
QUUwMi1GRTY1QjRBNjA3RUJ9ID0gezM5Mjg2RjQ2LUJBNzUtNDk5Ny04MDY1LTE5MDkwOTBBNjBG
MH0KKwlFbmRHbG9iYWxTZWN0aW9uCitFbmRHbG9iYWwK
</data>
<flag name="review"
          id="203006"
          type_id="1"
          status="+"
          setter="eric"
    />
    <flag name="commit-queue"
          id="203007"
          type_id="3"
          status="-"
          setter="eric"
    />
          </attachment>
      

    </bug>

</bugzilla>