<?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>200480</bug_id>
          
          <creation_ts>2019-08-06 15:41:42 -0700</creation_ts>
          <short_desc>[JSC] Add &quot;jump if (not) undefined or null&quot; bytecode ops</short_desc>
          <delta_ts>2019-08-08 11:24:21 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>JavaScriptCore</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=200199</see_also>
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Ross Kirsling">ross.kirsling</reporter>
          <assigned_to name="Ross Kirsling">ross.kirsling</assigned_to>
          <cc>chi187</cc>
    
    <cc>commit-queue</cc>
    
    <cc>darin</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>ggaren</cc>
    
    <cc>keith_miller</cc>
    
    <cc>mark.lam</cc>
    
    <cc>msaboff</cc>
    
    <cc>saam</cc>
    
    <cc>tzagallo</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>ysuzuki</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1558952</commentid>
    <comment_count>0</comment_count>
    <who name="Ross Kirsling">ross.kirsling</who>
    <bug_when>2019-08-06 15:41:42 -0700</bug_when>
    <thetext>[JSC] Add &quot;jump if (not) undefined or null&quot; bytecode ops</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1558954</commentid>
    <comment_count>1</comment_count>
      <attachid>375656</attachid>
    <who name="Ross Kirsling">ross.kirsling</who>
    <bug_when>2019-08-06 15:44:03 -0700</bug_when>
    <thetext>Created attachment 375656
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1558957</commentid>
    <comment_count>2</comment_count>
    <who name="Ross Kirsling">ross.kirsling</who>
    <bug_when>2019-08-06 15:49:51 -0700</bug_when>
    <thetext>I did this as an optimization to follow bug 200199, but it turns out that:
 - this patch doesn&apos;t actually conflict with that one
 - adding this functionality simultaneously addresses an existing FIXME in BytecodeGenerator :D</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1558959</commentid>
    <comment_count>3</comment_count>
    <who name="Ross Kirsling">ross.kirsling</who>
    <bug_when>2019-08-06 15:59:08 -0700</bug_when>
    <thetext>Hmm, evidently that FIXME was intentionally added instead of creating new ops back then (see bug 151596 comment 6, say).

However, it&apos;s four years later and the situation is drastically different:
 - we have a new bytecode format now (r237547)
 - we already have OpIsUndefinedOrNull (r239761)
 - we have major use cases for these fused jumps with ?? and ?. landing (r247819, bug 200199)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1559042</commentid>
    <comment_count>4</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2019-08-06 19:42:35 -0700</bug_when>
    <thetext>While I would love to review this patch, given the history I think it should be Geoff or one of the people currently actively working on the JavaScript engineer.

Geoff?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1559055</commentid>
    <comment_count>5</comment_count>
      <attachid>375656</attachid>
    <who name="Saam Barati">saam</who>
    <bug_when>2019-08-06 21:02:56 -0700</bug_when>
    <thetext>Comment on attachment 375656
Patch

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

Seems sensible. Just one question before I r+

&gt; Source/JavaScriptCore/ChangeLog:7
&gt; +

You should say why you’re doing this.

&gt; Source/JavaScriptCore/bytecompiler/BytecodeGenerator.cpp:1537
&gt; +        } else if (m_lastOpcodeID == op_is_undefined_or_null &amp;&amp; target.isForward()) {

Do these have the same semantics for document.all?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1559057</commentid>
    <comment_count>6</comment_count>
    <who name="Ross Kirsling">ross.kirsling</who>
    <bug_when>2019-08-06 21:17:12 -0700</bug_when>
    <thetext>(In reply to Saam Barati from comment #5)
&gt; Comment on attachment 375656 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=375656&amp;action=review
&gt; 
&gt; Seems sensible. Just one question before I r+
&gt; 
&gt; &gt; Source/JavaScriptCore/ChangeLog:7
&gt; &gt; +
&gt; 
&gt; You should say why you’re doing this.

Will do.

&gt; &gt; Source/JavaScriptCore/bytecompiler/BytecodeGenerator.cpp:1537
&gt; &gt; +        } else if (m_lastOpcodeID == op_is_undefined_or_null &amp;&amp; target.isForward()) {
&gt; 
&gt; Do these have the same semantics for document.all?

Yeah, that&apos;s the motivation across the board here -- Yusuke introduced op_is_undefined_or_null to address a document.all-related bug in ArraySpeciesCreate and this patch on its own addresses one in RequireObjectCoercible, but my real concern is that ?? and ?. both treat document.all as an object and thus their functionality mostly boils down to op_jnundefined_or_null and op_jundefined_or_null, respectively.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1559069</commentid>
    <comment_count>7</comment_count>
      <attachid>375688</attachid>
    <who name="Ross Kirsling">ross.kirsling</who>
    <bug_when>2019-08-06 22:45:19 -0700</bug_when>
    <thetext>Created attachment 375688
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1559070</commentid>
    <comment_count>8</comment_count>
      <attachid>375688</attachid>
    <who name="Ross Kirsling">ross.kirsling</who>
    <bug_when>2019-08-06 22:46:17 -0700</bug_when>
    <thetext>Comment on attachment 375688
Patch

Filled in ChangeLog.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1559205</commentid>
    <comment_count>9</comment_count>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2019-08-07 11:21:33 -0700</bug_when>
    <thetext>I think enough has changed over the years that adding an opcode in this case is probably the right choice.

I would like to see more tests, including constant arguments, null, undefined, and other truth-y and false-y values.

Are we sure it&apos;s correct for optional chaining to treat document.all as an object? That seems to defeat the purpose of MasqueradesAsUndefined, since it reveals the object-ness of the value to the JS programmer in a direct way. (Not sure this is super important anymore, since document.all is mostly a legacy feature, and optional chaining is a new feature. But it would be good to get our story straight here.)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1559227</commentid>
    <comment_count>10</comment_count>
    <who name="Ross Kirsling">ross.kirsling</who>
    <bug_when>2019-08-07 11:53:57 -0700</bug_when>
    <thetext>(In reply to Geoffrey Garen from comment #9)
&gt; I would like to see more tests, including constant arguments, null,
&gt; undefined, and other truth-y and false-y values.

I&apos;ve aimed to cover these cases in this test file as well as the one in bug 200199:
https://github.com/WebKit/webkit/blob/master/JSTests/stress/nullish-coalescing.js

But none of them are JIT-oriented right now so I should correct that.

&gt; Are we sure it&apos;s correct for optional chaining to treat document.all as an
&gt; object? That seems to defeat the purpose of MasqueradesAsUndefined, since it
&gt; reveals the object-ness of the value to the JS programmer in a direct way.
&gt; (Not sure this is super important anymore, since document.all is mostly a
&gt; legacy feature, and optional chaining is a new feature. But it would be good
&gt; to get our story straight here.)

I had expressed a similar worry as a spec reviewer for the feature, but the counterarguments were:

1. Access/call chains with ?. ought to behave like they do without ?. when nothing nullish is encountered, i.e. document.all?.length should do the same as document.all.length.

2. WHATWG has expressed the goal of &quot;masquerading as undefined&quot; as, effectively, to prevent feature checks for document.all while preserving its functionality, but we would not expect newly-written code to intentionally feature-check document.all, while it would be reasonable for a function which takes an Array-like parameter and uses ?. or ?? to work even if document.all is passed.

If you&apos;re really curious, there&apos;s more discussion at https://github.com/tc39/proposal-optional-chaining/issues/108.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1559312</commentid>
    <comment_count>11</comment_count>
      <attachid>375753</attachid>
    <who name="Ross Kirsling">ross.kirsling</who>
    <bug_when>2019-08-07 14:22:18 -0700</bug_when>
    <thetext>Created attachment 375753
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1559315</commentid>
    <comment_count>12</comment_count>
      <attachid>375753</attachid>
    <who name="Ross Kirsling">ross.kirsling</who>
    <bug_when>2019-08-07 14:25:18 -0700</bug_when>
    <thetext>Comment on attachment 375753
Patch

Made some ?? tests JIT-oriented (and will do similarly for the ?. patch).

Please let me know if I ought to go even further in some fashion.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1559325</commentid>
    <comment_count>13</comment_count>
      <attachid>375753</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2019-08-07 14:44:10 -0700</bug_when>
    <thetext>Comment on attachment 375753
Patch

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

&gt; JSTests/stress/nullish-coalescing.js:25
&gt; +for (let i = 0; i &lt; 1e5; i++) {

I’m not sure whether this idiom of doing things in a loop to make sure the gets JIT compiled is the standard way of making tests in JSTests/stress check JIT correctness. But if it’s not 100% standard then I suggest adding a brief comment explaining the technique and why 1e5 is a big enough number.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1559339</commentid>
    <comment_count>14</comment_count>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2019-08-07 14:58:45 -0700</bug_when>
    <thetext>&gt; 1. Access/call chains with ?. ought to behave like they do without ?. when
&gt; nothing nullish is encountered, i.e. document.all?.length should do the same
&gt; as document.all.length.

I guess I agree with this logic enough not to argue with it. :P</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1559345</commentid>
    <comment_count>15</comment_count>
    <who name="Ross Kirsling">ross.kirsling</who>
    <bug_when>2019-08-07 15:01:27 -0700</bug_when>
    <thetext>(In reply to Darin Adler from comment #13)
&gt; Comment on attachment 375753 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=375753&amp;action=review
&gt; 
&gt; &gt; JSTests/stress/nullish-coalescing.js:25
&gt; &gt; +for (let i = 0; i &lt; 1e5; i++) {
&gt; 
&gt; I’m not sure whether this idiom of doing things in a loop to make sure the
&gt; gets JIT compiled is the standard way of making tests in JSTests/stress
&gt; check JIT correctness. But if it’s not 100% standard then I suggest adding a
&gt; brief comment explaining the technique and why 1e5 is a big enough number.

This is purely mimicry on my part, since I took this to be a ubiquitous idiom in JSTests/stress -- in particular we have:

 55 files using `&lt; 1e3`
221 files using `&lt; 1e4`
101 files using `&lt; 1e5`
 89 files using `&lt; 1e6`
  2 files using `&lt; 1e7`

141 files using `&lt; 1000`
578 files using `&lt; 10000`
339 files using `&lt; 100000`
 61 files using `&lt; 1000000`
  6 files using `&lt; 10000000`

Otherwise I have no commitment to 1e5 whatsoever.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1559461</commentid>
    <comment_count>16</comment_count>
      <attachid>375753</attachid>
    <who name="Saam Barati">saam</who>
    <bug_when>2019-08-08 02:06:28 -0700</bug_when>
    <thetext>Comment on attachment 375753
Patch

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

r=me

&gt;&gt;&gt; JSTests/stress/nullish-coalescing.js:25
&gt;&gt;&gt; +for (let i = 0; i &lt; 1e5; i++) {
&gt;&gt; 
&gt;&gt; I’m not sure whether this idiom of doing things in a loop to make sure the gets JIT compiled is the standard way of making tests in JSTests/stress check JIT correctness. But if it’s not 100% standard then I suggest adding a brief comment explaining the technique and why 1e5 is a big enough number.
&gt; 
&gt; This is purely mimicry on my part, since I took this to be a ubiquitous idiom in JSTests/stress -- in particular we have:
&gt; 
&gt;  55 files using `&lt; 1e3`
&gt; 221 files using `&lt; 1e4`
&gt; 101 files using `&lt; 1e5`
&gt;  89 files using `&lt; 1e6`
&gt;   2 files using `&lt; 1e7`
&gt; 
&gt; 141 files using `&lt; 1000`
&gt; 578 files using `&lt; 10000`
&gt; 339 files using `&lt; 100000`
&gt;  61 files using `&lt; 1000000`
&gt;   6 files using `&lt; 10000000`
&gt; 
&gt; Otherwise I have no commitment to 1e5 whatsoever.

Yeah this is a sensible number for JSC. We run each test in various JIT tier up modes, so this will end up stressing all the tiers. However, if I have one nit, I’d change the body of the loop to a function the loop calls. (That way if we somehow break loop OSR entry we will still test the optimizing JITs.)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1559563</commentid>
    <comment_count>17</comment_count>
      <attachid>375819</attachid>
    <who name="Ross Kirsling">ross.kirsling</who>
    <bug_when>2019-08-08 10:49:42 -0700</bug_when>
    <thetext>Created attachment 375819
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1559583</commentid>
    <comment_count>18</comment_count>
      <attachid>375819</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-08-08 11:23:25 -0700</bug_when>
    <thetext>Comment on attachment 375819
Patch for landing

Clearing flags on attachment: 375819

Committed r248426: &lt;https://trac.webkit.org/changeset/248426&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1559584</commentid>
    <comment_count>19</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-08-08 11:23:27 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1559585</commentid>
    <comment_count>20</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2019-08-08 11:24:21 -0700</bug_when>
    <thetext>&lt;rdar://problem/54088357&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>375656</attachid>
            <date>2019-08-06 15:44:03 -0700</date>
            <delta_ts>2019-08-06 22:45:17 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-200480-20190806154400.patch</filename>
            <type>text/plain</type>
            <size>17100</size>
            <attacher name="Ross Kirsling">ross.kirsling</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQ4MzA4CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA1
MzM1YmY4ZDdjMjY4MGNmY2Y2Mjk2ZjUzMGY2NDhiZWMzOTJiZWEwLi5hYzY2MDQ2OWM4NGEyMWVk
ZTM1MzFkYzE0MzMyOTU0NWVlYzBmZWM4IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwzOCBAQAorMjAxOS0wOC0wNiAgUm9zcyBLaXJzbGluZyAgPHJvc3Mua2lyc2xpbmdAc29u
eS5jb20+CisKKyAgICAgICAgW0pTQ10gQWRkICJqdW1wIGlmIChub3QpIHVuZGVmaW5lZCBvciBu
dWxsIiBieXRlY29kZSBvcHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTIwMDQ4MAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgICogYnl0ZWNvZGUvQnl0ZWNvZGVMaXN0LnJiOgorICAgICAgICAqIGJ5dGVjb2Rl
L0J5dGVjb2RlVXNlRGVmLmg6CisgICAgICAgIChKU0M6OmNvbXB1dGVVc2VzRm9yQnl0ZWNvZGVP
ZmZzZXQpOgorICAgICAgICAoSlNDOjpjb21wdXRlRGVmc0ZvckJ5dGVjb2RlT2Zmc2V0KToKKyAg
ICAgICAgKiBieXRlY29kZS9PcGNvZGUuaDoKKyAgICAgICAgKEpTQzo6aXNCcmFuY2gpOgorICAg
ICAgICAqIGJ5dGVjb2RlL1ByZWNpc2VKdW1wVGFyZ2V0c0lubGluZXMuaDoKKyAgICAgICAgKiBi
eXRlY29tcGlsZXIvQnl0ZWNvZGVHZW5lcmF0b3IuY3BwOgorICAgICAgICAoSlNDOjpMYWJlbDo6
c2V0TG9jYXRpb24pOgorICAgICAgICAoSlNDOjpCeXRlY29kZUdlbmVyYXRvcjo6ZW1pdEp1bXBJ
ZlRydWUpOgorICAgICAgICAoSlNDOjpCeXRlY29kZUdlbmVyYXRvcjo6ZW1pdEp1bXBJZkZhbHNl
KToKKyAgICAgICAgKEpTQzo6Qnl0ZWNvZGVHZW5lcmF0b3I6OmVtaXRSZXF1aXJlT2JqZWN0Q29l
cmNpYmxlKToKKyAgICAgICAgKiBkZmcvREZHQnl0ZUNvZGVQYXJzZXIuY3BwOgorICAgICAgICAo
SlNDOjpERkc6OkJ5dGVDb2RlUGFyc2VyOjpwYXJzZUJsb2NrKToKKyAgICAgICAgKiBkZmcvREZH
Q2FwYWJpbGl0aWVzLmNwcDoKKyAgICAgICAgKEpTQzo6REZHOjpjYXBhYmlsaXR5TGV2ZWwpOgor
ICAgICAgICAqIGppdC9KSVQuY3BwOgorICAgICAgICAoSlNDOjpKSVQ6OnByaXZhdGVDb21waWxl
TWFpblBhc3MpOgorICAgICAgICAqIGppdC9KSVQuaDoKKyAgICAgICAgKiBqaXQvSklUT3Bjb2Rl
cy5jcHA6CisgICAgICAgIChKU0M6OkpJVDo6ZW1pdF9vcF9qdW5kZWZpbmVkX29yX251bGwpOiBB
ZGRlZC4KKyAgICAgICAgKEpTQzo6SklUOjplbWl0X29wX2pudW5kZWZpbmVkX29yX251bGwpOiBB
ZGRlZC4KKyAgICAgICAgKiBqaXQvSklUT3Bjb2RlczMyXzY0LmNwcDoKKyAgICAgICAgKEpTQzo6
SklUOjplbWl0X29wX2p1bmRlZmluZWRfb3JfbnVsbCk6IEFkZGVkLgorICAgICAgICAoSlNDOjpK
SVQ6OmVtaXRfb3Bfam51bmRlZmluZWRfb3JfbnVsbCk6IEFkZGVkLgorICAgICAgICAqIGxsaW50
L0xvd0xldmVsSW50ZXJwcmV0ZXIzMl82NC5hc206CisgICAgICAgICogbGxpbnQvTG93TGV2ZWxJ
bnRlcnByZXRlcjY0LmFzbToKKwogMjAxOS0wOC0wNiAgUGVyIEFybmUgVm9sbGFuICA8cHZvbGxh
bkBhcHBsZS5jb20+CiAKICAgICAgICAgW1dpbl0gRml4IEFwcGxlV2luIGJ1aWxkCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQnl0ZWNvZGVMaXN0LnJiIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0J5dGVjb2RlTGlzdC5yYgppbmRleCAyOWQ3ZTRi
OWVkODQ3MGJlN2QxZWMxZjRjM2JiZTBiMjQ1NjY1ZDM0Li42N2U4YTIwODlmODYwZmJiZDliMTA2
ZTliYTgzYjgxZjk1MzcwMTE1IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0
ZWNvZGUvQnl0ZWNvZGVMaXN0LnJiCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29k
ZS9CeXRlY29kZUxpc3QucmIKQEAgLTYyNSw2ICs2MjUsMTggQEAgb3AgOmpuZXFfbnVsbCwKICAg
ICAgICAgdGFyZ2V0TGFiZWw6IEJvdW5kTGFiZWwsCiAgICAgfQogCitvcCA6anVuZGVmaW5lZF9v
cl9udWxsLAorICAgIGFyZ3M6IHsKKyAgICAgICAgdmFsdWU6IFZpcnR1YWxSZWdpc3RlciwKKyAg
ICAgICAgdGFyZ2V0TGFiZWw6IEJvdW5kTGFiZWwsCisgICAgfQorCitvcCA6am51bmRlZmluZWRf
b3JfbnVsbCwKKyAgICBhcmdzOiB7CisgICAgICAgIHZhbHVlOiBWaXJ0dWFsUmVnaXN0ZXIsCisg
ICAgICAgIHRhcmdldExhYmVsOiBCb3VuZExhYmVsLAorICAgIH0KKwogb3AgOmpuZXFfcHRyLAog
ICAgIGFyZ3M6IHsKICAgICAgICAgdmFsdWU6IFZpcnR1YWxSZWdpc3RlciwKZGlmZiAtLWdpdCBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9CeXRlY29kZVVzZURlZi5oIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0J5dGVjb2RlVXNlRGVmLmgKaW5kZXggNDk2MmM3NjE4
MDQ0YmIxNDdhNjNhMTE4NDczZDEzMjg1MzkxZjJmMS4uOGRlNzVhMWQ5NTYxZjBmYWU1NTJmYmE5
Mzc2MDIyOTNmODI4MGJiOSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVj
b2RlL0J5dGVjb2RlVXNlRGVmLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2Rl
L0J5dGVjb2RlVXNlRGVmLmgKQEAgLTEwNyw2ICsxMDcsOCBAQCB2b2lkIGNvbXB1dGVVc2VzRm9y
Qnl0ZWNvZGVPZmZzZXQoQmxvY2sqIGNvZGVCbG9jaywgT3Bjb2RlSUQgb3Bjb2RlSUQsIGNvbnN0
IElucwogICAgIFVTRVMoT3BKZmFsc2UsIGNvbmRpdGlvbikKICAgICBVU0VTKE9wSmVxTnVsbCwg
dmFsdWUpCiAgICAgVVNFUyhPcEpuZXFOdWxsLCB2YWx1ZSkKKyAgICBVU0VTKE9wSnVuZGVmaW5l
ZE9yTnVsbCwgdmFsdWUpCisgICAgVVNFUyhPcEpudW5kZWZpbmVkT3JOdWxsLCB2YWx1ZSkKICAg
ICBVU0VTKE9wRGVjLCBzcmNEc3QpCiAgICAgVVNFUyhPcEluYywgc3JjRHN0KQogICAgIFVTRVMo
T3BMb2dTaGFkb3dDaGlja2VuUHJvbG9ndWUsIHNjb3BlKQpAQCAtMzA3LDYgKzMwOSw4IEBAIHZv
aWQgY29tcHV0ZURlZnNGb3JCeXRlY29kZU9mZnNldChCbG9jayogY29kZUJsb2NrLCBPcGNvZGVJ
RCBvcGNvZGVJRCwgY29uc3QgSW5zCiAgICAgY2FzZSBvcF9qZmFsc2U6CiAgICAgY2FzZSBvcF9q
ZXFfbnVsbDoKICAgICBjYXNlIG9wX2puZXFfbnVsbDoKKyAgICBjYXNlIG9wX2p1bmRlZmluZWRf
b3JfbnVsbDoKKyAgICBjYXNlIG9wX2pudW5kZWZpbmVkX29yX251bGw6CiAgICAgY2FzZSBvcF9q
bmVxX3B0cjoKICAgICBjYXNlIG9wX2psZXNzOgogICAgIGNhc2Ugb3Bfamxlc3NlcToKZGlmZiAt
LWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9PcGNvZGUuaCBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ieXRlY29kZS9PcGNvZGUuaAppbmRleCA3MGNlMDViNzJkNjk0ZjA3MDU5
ZjgwZGE1OGEwYjY5MWQzMGU0MTliLi45YjRhN2ZhYzVkMmVlYjkyZDZlZWZlM2I4NTg0NGQyZjBh
OTIyMWFlIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvT3Bjb2Rl
LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL09wY29kZS5oCkBAIC0xNzMs
NiArMTczLDggQEAgaW5saW5lIGJvb2wgaXNCcmFuY2goT3Bjb2RlSUQgb3Bjb2RlSUQpCiAgICAg
Y2FzZSBvcF9qZmFsc2U6CiAgICAgY2FzZSBvcF9qZXFfbnVsbDoKICAgICBjYXNlIG9wX2puZXFf
bnVsbDoKKyAgICBjYXNlIG9wX2p1bmRlZmluZWRfb3JfbnVsbDoKKyAgICBjYXNlIG9wX2pudW5k
ZWZpbmVkX29yX251bGw6CiAgICAgY2FzZSBvcF9qbmVxX3B0cjoKICAgICBjYXNlIG9wX2psZXNz
OgogICAgIGNhc2Ugb3Bfamxlc3NlcToKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ieXRlY29kZS9QcmVjaXNlSnVtcFRhcmdldHNJbmxpbmVzLmggYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvYnl0ZWNvZGUvUHJlY2lzZUp1bXBUYXJnZXRzSW5saW5lcy5oCmluZGV4IDRkZDE4OWQ2
NTdkOTJhYzgwYjQzNTNhYmQxOTYwZTRlNzBiZWIwYzIuLjkwMDUyYjViNzMyM2I0NzRhZmFjYjEw
NWMwODFmMzM3Zjk2YTQ5ZDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRl
Y29kZS9QcmVjaXNlSnVtcFRhcmdldHNJbmxpbmVzLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL2J5dGVjb2RlL1ByZWNpc2VKdW1wVGFyZ2V0c0lubGluZXMuaApAQCAtNDAsNiArNDAsOCBA
QCBuYW1lc3BhY2UgSlNDIHsKICAgICBDQVNFX09QKE9wSmZhbHNlKSBcCiAgICAgQ0FTRV9PUChP
cEplcU51bGwpIFwKICAgICBDQVNFX09QKE9wSm5lcU51bGwpIFwKKyAgICBDQVNFX09QKE9wSnVu
ZGVmaW5lZE9yTnVsbCkgXAorICAgIENBU0VfT1AoT3BKbnVuZGVmaW5lZE9yTnVsbCkgXAogICAg
IENBU0VfT1AoT3BKbmVxUHRyKSBcCiAgICAgXAogICAgIENBU0VfT1AoT3BKbGVzcykgXApkaWZm
IC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb21waWxlci9CeXRlY29kZUdlbmVy
YXRvci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvbXBpbGVyL0J5dGVjb2RlR2Vu
ZXJhdG9yLmNwcAppbmRleCA1MTViNTk4M2Y2YTFkNTgwNWQyZmI0ODFlY2MwYTk3Y2Q1OTlkN2I5
Li4yYzMwYTRkOWI0MzFiMGU1NTI3NDFkMzI1YWM4MTQ5YzM4ZTlkNTgwIDEwMDY0NAotLS0gYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvbXBpbGVyL0J5dGVjb2RlR2VuZXJhdG9yLmNwcAor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvbXBpbGVyL0J5dGVjb2RlR2VuZXJhdG9y
LmNwcApAQCAtMTE1LDYgKzExNSw4IEBAIHZvaWQgTGFiZWw6OnNldExvY2F0aW9uKEJ5dGVjb2Rl
R2VuZXJhdG9yJiBnZW5lcmF0b3IsIHVuc2lnbmVkIGxvY2F0aW9uKQogICAgICAgICBDQVNFKE9w
SmZhbHNlKQogICAgICAgICBDQVNFKE9wSmVxTnVsbCkKICAgICAgICAgQ0FTRShPcEpuZXFOdWxs
KQorICAgICAgICBDQVNFKE9wSnVuZGVmaW5lZE9yTnVsbCkKKyAgICAgICAgQ0FTRShPcEpudW5k
ZWZpbmVkT3JOdWxsKQogICAgICAgICBDQVNFKE9wSmVxKQogICAgICAgICBDQVNFKE9wSnN0cmlj
dGVxKQogICAgICAgICBDQVNFKE9wSm5lcSkKQEAgLTE0ODEsNiArMTQ4Myw5IEBAIHZvaWQgQnl0
ZWNvZGVHZW5lcmF0b3I6OmVtaXRKdW1wSWZUcnVlKFJlZ2lzdGVySUQqIGNvbmQsIExhYmVsJiB0
YXJnZXQpCiAgICAgICAgIH0gZWxzZSBpZiAobV9sYXN0T3Bjb2RlSUQgPT0gb3BfbmVxX251bGwg
JiYgdGFyZ2V0LmlzRm9yd2FyZCgpKSB7CiAgICAgICAgICAgICBpZiAoZnVzZVRlc3RBbmRKbXA8
T3BOZXFOdWxsLCBPcEpuZXFOdWxsPihjb25kLCB0YXJnZXQpKQogICAgICAgICAgICAgICAgIHJl
dHVybjsKKyAgICAgICAgfSBlbHNlIGlmIChtX2xhc3RPcGNvZGVJRCA9PSBvcF9pc191bmRlZmlu
ZWRfb3JfbnVsbCAmJiB0YXJnZXQuaXNGb3J3YXJkKCkpIHsKKyAgICAgICAgICAgIGlmIChmdXNl
VGVzdEFuZEptcDxPcElzVW5kZWZpbmVkT3JOdWxsLCBPcEp1bmRlZmluZWRPck51bGw+KGNvbmQs
IHRhcmdldCkpCisgICAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CiAgICAgfQogCkBA
IC0xNTI5LDYgKzE1MzQsOSBAQCB2b2lkIEJ5dGVjb2RlR2VuZXJhdG9yOjplbWl0SnVtcElmRmFs
c2UoUmVnaXN0ZXJJRCogY29uZCwgTGFiZWwmIHRhcmdldCkKICAgICAgICAgfSBlbHNlIGlmICht
X2xhc3RPcGNvZGVJRCA9PSBvcF9uZXFfbnVsbCAmJiB0YXJnZXQuaXNGb3J3YXJkKCkpIHsKICAg
ICAgICAgICAgIGlmIChmdXNlVGVzdEFuZEptcDxPcE5lcU51bGwsIE9wSmVxTnVsbD4oY29uZCwg
dGFyZ2V0KSkKICAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0gZWxzZSBpZiAobV9s
YXN0T3Bjb2RlSUQgPT0gb3BfaXNfdW5kZWZpbmVkX29yX251bGwgJiYgdGFyZ2V0LmlzRm9yd2Fy
ZCgpKSB7CisgICAgICAgICAgICBpZiAoZnVzZVRlc3RBbmRKbXA8T3BJc1VuZGVmaW5lZE9yTnVs
bCwgT3BKbnVuZGVmaW5lZE9yTnVsbD4oY29uZCwgdGFyZ2V0KSkKKyAgICAgICAgICAgICAgICBy
ZXR1cm47CiAgICAgICAgIH0KICAgICB9CiAKQEAgLTQ0NTcsMTAgKzQ0NjUsOCBAQCBSZWdpc3Rl
cklEKiBCeXRlY29kZUdlbmVyYXRvcjo6ZW1pdFJlc3RQYXJhbWV0ZXIoUmVnaXN0ZXJJRCogcmVz
dWx0LCB1bnNpZ25lZCBudQogCiB2b2lkIEJ5dGVjb2RlR2VuZXJhdG9yOjplbWl0UmVxdWlyZU9i
amVjdENvZXJjaWJsZShSZWdpc3RlcklEKiB2YWx1ZSwgY29uc3QgU3RyaW5nJiBlcnJvcikKIHsK
LSAgICAvLyBGSVhNRTogb3Bfam5lcV9udWxsIHRyZWF0cyAidW5kZXRlY3RhYmxlIiBvYmplY3Rz
IGFzIG51bGwvdW5kZWZpbmVkLiBSZXF1aXJlT2JqZWN0Q29lcmNpYmxlCi0gICAgLy8gdGh1cyBp
bmNvcnJlY3RseSB0aHJvd3MgYSBUeXBlRXJyb3IgZm9yIGludGVyZmFjZXMgbGlrZSBIVE1MQWxs
Q29sbGVjdGlvbi4KICAgICBSZWY8TGFiZWw+IHRhcmdldCA9IG5ld0xhYmVsKCk7Ci0gICAgT3BK
bmVxTnVsbDo6ZW1pdCh0aGlzLCB2YWx1ZSwgdGFyZ2V0LT5iaW5kKHRoaXMpKTsKKyAgICBPcEpu
dW5kZWZpbmVkT3JOdWxsOjplbWl0KHRoaXMsIHZhbHVlLCB0YXJnZXQtPmJpbmQodGhpcykpOwog
ICAgIGVtaXRUaHJvd1R5cGVFcnJvcihlcnJvcik7CiAgICAgZW1pdExhYmVsKHRhcmdldC5nZXQo
KSk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0J5dGVDb2Rl
UGFyc2VyLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQnl0ZUNvZGVQYXJzZXIu
Y3BwCmluZGV4IGFlYzU4NzE1MjBmMmY0NzIxODBhMzc5OTY1Mzc0NWU0YTNlYWU0MjMuLmQxMjVj
YzM3MTNiNTRmYmQwYTQ3NDkwNTY3ZjIwODQ2ZjEyNjQ1ZDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9kZmcvREZHQnl0ZUNvZGVQYXJzZXIuY3BwCisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9kZmcvREZHQnl0ZUNvZGVQYXJzZXIuY3BwCkBAIC01NzM1LDYgKzU3MzUsMjQg
QEAgdm9pZCBCeXRlQ29kZVBhcnNlcjo6cGFyc2VCbG9jayh1bnNpZ25lZCBsaW1pdCkKICAgICAg
ICAgICAgIExBU1RfT1BDT0RFKG9wX2puZXFfbnVsbCk7CiAgICAgICAgIH0KIAorICAgICAgICBj
YXNlIG9wX2p1bmRlZmluZWRfb3JfbnVsbDogeworICAgICAgICAgICAgYXV0byBieXRlY29kZSA9
IGN1cnJlbnRJbnN0cnVjdGlvbi0+YXM8T3BKdW5kZWZpbmVkT3JOdWxsPigpOworICAgICAgICAg
ICAgdW5zaWduZWQgcmVsYXRpdmVPZmZzZXQgPSBqdW1wVGFyZ2V0KGJ5dGVjb2RlLm1fdGFyZ2V0
TGFiZWwpOworICAgICAgICAgICAgTm9kZSogdmFsdWUgPSBnZXQoYnl0ZWNvZGUubV92YWx1ZSk7
CisgICAgICAgICAgICBOb2RlKiBjb25kaXRpb24gPSBhZGRUb0dyYXBoKElzVW5kZWZpbmVkT3JO
dWxsLCB2YWx1ZSk7CisgICAgICAgICAgICBhZGRUb0dyYXBoKEJyYW5jaCwgT3BJbmZvKGJyYW5j
aERhdGEobV9jdXJyZW50SW5kZXggKyByZWxhdGl2ZU9mZnNldCwgbV9jdXJyZW50SW5kZXggKyBj
dXJyZW50SW5zdHJ1Y3Rpb24tPnNpemUoKSkpLCBjb25kaXRpb24pOworICAgICAgICAgICAgTEFT
VF9PUENPREUob3BfanVuZGVmaW5lZF9vcl9udWxsKTsKKyAgICAgICAgfQorCisgICAgICAgIGNh
c2Ugb3Bfam51bmRlZmluZWRfb3JfbnVsbDogeworICAgICAgICAgICAgYXV0byBieXRlY29kZSA9
IGN1cnJlbnRJbnN0cnVjdGlvbi0+YXM8T3BKbnVuZGVmaW5lZE9yTnVsbD4oKTsKKyAgICAgICAg
ICAgIHVuc2lnbmVkIHJlbGF0aXZlT2Zmc2V0ID0ganVtcFRhcmdldChieXRlY29kZS5tX3Rhcmdl
dExhYmVsKTsKKyAgICAgICAgICAgIE5vZGUqIHZhbHVlID0gZ2V0KGJ5dGVjb2RlLm1fdmFsdWUp
OworICAgICAgICAgICAgTm9kZSogY29uZGl0aW9uID0gYWRkVG9HcmFwaChJc1VuZGVmaW5lZE9y
TnVsbCwgdmFsdWUpOworICAgICAgICAgICAgYWRkVG9HcmFwaChCcmFuY2gsIE9wSW5mbyhicmFu
Y2hEYXRhKG1fY3VycmVudEluZGV4ICsgY3VycmVudEluc3RydWN0aW9uLT5zaXplKCksIG1fY3Vy
cmVudEluZGV4ICsgcmVsYXRpdmVPZmZzZXQpKSwgY29uZGl0aW9uKTsKKyAgICAgICAgICAgIExB
U1RfT1BDT0RFKG9wX2pudW5kZWZpbmVkX29yX251bGwpOworICAgICAgICB9CisKICAgICAgICAg
Y2FzZSBvcF9qbGVzczogewogICAgICAgICAgICAgYXV0byBieXRlY29kZSA9IGN1cnJlbnRJbnN0
cnVjdGlvbi0+YXM8T3BKbGVzcz4oKTsKICAgICAgICAgICAgIHVuc2lnbmVkIHJlbGF0aXZlT2Zm
c2V0ID0ganVtcFRhcmdldChieXRlY29kZS5tX3RhcmdldExhYmVsKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQ2FwYWJpbGl0aWVzLmNwcCBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9kZmcvREZHQ2FwYWJpbGl0aWVzLmNwcAppbmRleCBkZmU2YzE2ZDUxYTAwY2Fi
MDNhZjk4MDEwNzU0YTk2Yzc5NjllMzQ1Li42ZDNmMjM3MWNkMjY4ZWYxY2FjMDM1MjA4ODBlMjJh
MTNmYWU4Y2JjIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0NhcGFi
aWxpdGllcy5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdDYXBhYmlsaXRp
ZXMuY3BwCkBAIC0xODgsNiArMTg4LDggQEAgQ2FwYWJpbGl0eUxldmVsIGNhcGFiaWxpdHlMZXZl
bChPcGNvZGVJRCBvcGNvZGVJRCwgQ29kZUJsb2NrKiBjb2RlQmxvY2ssIGNvbnN0IEkKICAgICBj
YXNlIG9wX2pmYWxzZToKICAgICBjYXNlIG9wX2plcV9udWxsOgogICAgIGNhc2Ugb3Bfam5lcV9u
dWxsOgorICAgIGNhc2Ugb3BfanVuZGVmaW5lZF9vcl9udWxsOgorICAgIGNhc2Ugb3Bfam51bmRl
ZmluZWRfb3JfbnVsbDoKICAgICBjYXNlIG9wX2psZXNzOgogICAgIGNhc2Ugb3Bfamxlc3NlcToK
ICAgICBjYXNlIG9wX2pncmVhdGVyOgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2ppdC9KSVQuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVQuY3BwCmluZGV4IGYx
OTc1YmZiMDE0YTk2NDE2YjczOWZkYTM3NmMwZThmYjI4YjE4ZTEuLjA1ZjcwZjFhZWFmNGM0ZDlm
NTJjMTA2YWI2NmRiOWVjZDJlYWI4YmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9qaXQvSklULmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVC5jcHAKQEAg
LTM2NCw2ICszNjQsOCBAQCB2b2lkIEpJVDo6cHJpdmF0ZUNvbXBpbGVNYWluUGFzcygpCiAgICAg
ICAgIERFRklORV9PUChvcF9qZmFsc2UpCiAgICAgICAgIERFRklORV9PUChvcF9qbXApCiAgICAg
ICAgIERFRklORV9PUChvcF9qbmVxX251bGwpCisgICAgICAgIERFRklORV9PUChvcF9qdW5kZWZp
bmVkX29yX251bGwpCisgICAgICAgIERFRklORV9PUChvcF9qbnVuZGVmaW5lZF9vcl9udWxsKQog
ICAgICAgICBERUZJTkVfT1Aob3Bfam5lcV9wdHIpCiAgICAgICAgIERFRklORV9PUChvcF9qbGVz
cykKICAgICAgICAgREVGSU5FX09QKG9wX2psZXNzZXEpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvaml0L0pJVC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVQuaApp
bmRleCA2OTg5NjM2MzdmZGZiMTc1NGE3MGNhMGQ3OTZiZjU4Yzg1ZDc0OWEwLi45MWZlNTlhYjk2
MmJkYzgwY2JmMjQ2YjVhZDQ1YTk4MjQwYzUyZTBkIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvaml0L0pJVC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklULmgK
QEAgLTU1NCw2ICs1NTQsOCBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgdm9pZCBlbWl0X29w
X2pmYWxzZShjb25zdCBJbnN0cnVjdGlvbiopOwogICAgICAgICB2b2lkIGVtaXRfb3Bfam1wKGNv
bnN0IEluc3RydWN0aW9uKik7CiAgICAgICAgIHZvaWQgZW1pdF9vcF9qbmVxX251bGwoY29uc3Qg
SW5zdHJ1Y3Rpb24qKTsKKyAgICAgICAgdm9pZCBlbWl0X29wX2p1bmRlZmluZWRfb3JfbnVsbChj
b25zdCBJbnN0cnVjdGlvbiopOworICAgICAgICB2b2lkIGVtaXRfb3Bfam51bmRlZmluZWRfb3Jf
bnVsbChjb25zdCBJbnN0cnVjdGlvbiopOwogICAgICAgICB2b2lkIGVtaXRfb3Bfam5lcV9wdHIo
Y29uc3QgSW5zdHJ1Y3Rpb24qKTsKICAgICAgICAgdm9pZCBlbWl0X29wX2psZXNzKGNvbnN0IElu
c3RydWN0aW9uKik7CiAgICAgICAgIHZvaWQgZW1pdF9vcF9qbGVzc2VxKGNvbnN0IEluc3RydWN0
aW9uKik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVE9wY29kZXMu
Y3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRPcGNvZGVzLmNwcAppbmRleCBmMDVk
YmE5NjRiMmU2NzdhODkzYjFkZDFlZmJhZGMyNGMzZTgzYTQwLi5lY2IxZTExYzQ2YzM0M2M1ZTcx
ZGFiZTA3ZTQ1ZjRjMTE1MDExYjcxIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
aml0L0pJVE9wY29kZXMuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUT3Bj
b2Rlcy5jcHAKQEAgLTQ0Miw2ICs0NDIsMzAgQEAgdm9pZCBKSVQ6OmVtaXRfb3Bfam5lcV9udWxs
KGNvbnN0IEluc3RydWN0aW9uKiBjdXJyZW50SW5zdHJ1Y3Rpb24pCiAgICAgd2FzTm90SW1tZWRp
YXRlLmxpbmsodGhpcyk7CiB9CiAKK3ZvaWQgSklUOjplbWl0X29wX2p1bmRlZmluZWRfb3JfbnVs
bChjb25zdCBJbnN0cnVjdGlvbiogY3VycmVudEluc3RydWN0aW9uKQoreworICAgIGF1dG8gYnl0
ZWNvZGUgPSBjdXJyZW50SW5zdHJ1Y3Rpb24tPmFzPE9wSnVuZGVmaW5lZE9yTnVsbD4oKTsKKyAg
ICBpbnQgdmFsdWUgPSBieXRlY29kZS5tX3ZhbHVlLm9mZnNldCgpOworICAgIHVuc2lnbmVkIHRh
cmdldCA9IGp1bXBUYXJnZXQoY3VycmVudEluc3RydWN0aW9uLCBieXRlY29kZS5tX3RhcmdldExh
YmVsKTsKKworICAgIGVtaXRHZXRWaXJ0dWFsUmVnaXN0ZXIodmFsdWUsIHJlZ1QwKTsKKworICAg
IGFuZDY0KFRydXN0ZWRJbW0zMih+VGFnQml0VW5kZWZpbmVkKSwgcmVnVDApOworICAgIGFkZEp1
bXAoYnJhbmNoNjQoRXF1YWwsIHJlZ1QwLCBUcnVzdGVkSW1tNjQoSlNWYWx1ZTo6ZW5jb2RlKGpz
TnVsbCgpKSkpLCB0YXJnZXQpOworfQorCit2b2lkIEpJVDo6ZW1pdF9vcF9qbnVuZGVmaW5lZF9v
cl9udWxsKGNvbnN0IEluc3RydWN0aW9uKiBjdXJyZW50SW5zdHJ1Y3Rpb24pCit7CisgICAgYXV0
byBieXRlY29kZSA9IGN1cnJlbnRJbnN0cnVjdGlvbi0+YXM8T3BKbnVuZGVmaW5lZE9yTnVsbD4o
KTsKKyAgICBpbnQgdmFsdWUgPSBieXRlY29kZS5tX3ZhbHVlLm9mZnNldCgpOworICAgIHVuc2ln
bmVkIHRhcmdldCA9IGp1bXBUYXJnZXQoY3VycmVudEluc3RydWN0aW9uLCBieXRlY29kZS5tX3Rh
cmdldExhYmVsKTsKKworICAgIGVtaXRHZXRWaXJ0dWFsUmVnaXN0ZXIodmFsdWUsIHJlZ1QwKTsK
KworICAgIGFuZDY0KFRydXN0ZWRJbW0zMih+VGFnQml0VW5kZWZpbmVkKSwgcmVnVDApOworICAg
IGFkZEp1bXAoYnJhbmNoNjQoTm90RXF1YWwsIHJlZ1QwLCBUcnVzdGVkSW1tNjQoSlNWYWx1ZTo6
ZW5jb2RlKGpzTnVsbCgpKSkpLCB0YXJnZXQpOworfQorCiB2b2lkIEpJVDo6ZW1pdF9vcF9qbmVx
X3B0cihjb25zdCBJbnN0cnVjdGlvbiogY3VycmVudEluc3RydWN0aW9uKQogewogICAgIGF1dG8g
Ynl0ZWNvZGUgPSBjdXJyZW50SW5zdHJ1Y3Rpb24tPmFzPE9wSm5lcVB0cj4oKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUT3Bjb2RlczMyXzY0LmNwcCBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUT3Bjb2RlczMyXzY0LmNwcAppbmRleCA5NGEyNjMyN2Iz
YTk4ZDk2YWQ1ZmU3MGI2NmY1YTgwYmU0NGY3NWFiLi43MTMxOTZmNDU3YmFkMGVmN2ZiZWRhMjM0
ZmU3YmQwYTFjMTRmZWYzIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJ
VE9wY29kZXMzMl82NC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRPcGNv
ZGVzMzJfNjQuY3BwCkBAIC00NDksNiArNDQ5LDMwIEBAIHZvaWQgSklUOjplbWl0X29wX2puZXFf
bnVsbChjb25zdCBJbnN0cnVjdGlvbiogY3VycmVudEluc3RydWN0aW9uKQogICAgIHdhc05vdElt
bWVkaWF0ZS5saW5rKHRoaXMpOwogfQogCit2b2lkIEpJVDo6ZW1pdF9vcF9qdW5kZWZpbmVkX29y
X251bGwoY29uc3QgSW5zdHJ1Y3Rpb24qIGN1cnJlbnRJbnN0cnVjdGlvbikKK3sKKyAgICBhdXRv
IGJ5dGVjb2RlID0gY3VycmVudEluc3RydWN0aW9uLT5hczxPcEp1bmRlZmluZWRPck51bGw+KCk7
CisgICAgaW50IHZhbHVlID0gYnl0ZWNvZGUubV92YWx1ZS5vZmZzZXQoKTsKKyAgICB1bnNpZ25l
ZCB0YXJnZXQgPSBqdW1wVGFyZ2V0KGN1cnJlbnRJbnN0cnVjdGlvbiwgYnl0ZWNvZGUubV90YXJn
ZXRMYWJlbCk7CisKKyAgICBlbWl0TG9hZFRhZyh2YWx1ZSwgcmVnVDApOworICAgIHN0YXRpY19h
c3NlcnQoKEpTVmFsdWU6OlVuZGVmaW5lZFRhZyArIDEgPT0gSlNWYWx1ZTo6TnVsbFRhZykgJiYg
KEpTVmFsdWU6Ok51bGxUYWcgJiAweDEpLCAiIik7CisgICAgb3IzMihUcnVzdGVkSW1tMzIoMSks
IHJlZ1QwKTsKKyAgICBhZGRKdW1wKGJyYW5jaElmTnVsbChyZWdUMCksIHRhcmdldCk7Cit9CisK
K3ZvaWQgSklUOjplbWl0X29wX2pudW5kZWZpbmVkX29yX251bGwoY29uc3QgSW5zdHJ1Y3Rpb24q
IGN1cnJlbnRJbnN0cnVjdGlvbikKK3sKKyAgICBhdXRvIGJ5dGVjb2RlID0gY3VycmVudEluc3Ry
dWN0aW9uLT5hczxPcEpudW5kZWZpbmVkT3JOdWxsPigpOworICAgIGludCB2YWx1ZSA9IGJ5dGVj
b2RlLm1fdmFsdWUub2Zmc2V0KCk7CisgICAgdW5zaWduZWQgdGFyZ2V0ID0ganVtcFRhcmdldChj
dXJyZW50SW5zdHJ1Y3Rpb24sIGJ5dGVjb2RlLm1fdGFyZ2V0TGFiZWwpOworCisgICAgZW1pdExv
YWRUYWcodmFsdWUsIHJlZ1QwKTsKKyAgICBzdGF0aWNfYXNzZXJ0KChKU1ZhbHVlOjpVbmRlZmlu
ZWRUYWcgKyAxID09IEpTVmFsdWU6Ok51bGxUYWcpICYmIChKU1ZhbHVlOjpOdWxsVGFnICYgMHgx
KSwgIiIpOworICAgIG9yMzIoVHJ1c3RlZEltbTMyKDEpLCByZWdUMCk7CisgICAgYWRkSnVtcChi
cmFuY2hJZk5vdE51bGwocmVnVDApLCB0YXJnZXQpOworfQorCiB2b2lkIEpJVDo6ZW1pdF9vcF9q
bmVxX3B0cihjb25zdCBJbnN0cnVjdGlvbiogY3VycmVudEluc3RydWN0aW9uKQogewogICAgIGF1
dG8gYnl0ZWNvZGUgPSBjdXJyZW50SW5zdHJ1Y3Rpb24tPmFzPE9wSm5lcVB0cj4oKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9Mb3dMZXZlbEludGVycHJldGVyMzJf
NjQuYXNtIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xvd0xldmVsSW50ZXJwcmV0ZXIz
Ml82NC5hc20KaW5kZXggMzdlZjI3OTFjMTViNjM3MDgxOTZjYTlmYzY5YjFlYzhlNTBhOTE1NS4u
YWM0MTU5YjhhZjVkNzAyMWQ4ODQ2NzY5Mzc4MWEwYjA5MzM2NWJiMCAxMDA2NDQKLS0tIGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xvd0xldmVsSW50ZXJwcmV0ZXIzMl82NC5hc20KKysr
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xvd0xldmVsSW50ZXJwcmV0ZXIzMl82NC5h
c20KQEAgLTE2NzYsNiArMTY3NiwyNCBAQCBlcXVhbE51bGxKdW1wT3Aoam5lcV9udWxsLCBPcEpu
ZXFOdWxsLAogICAgIGVuZCwKICAgICBtYWNybyAodmFsdWUsIHRhcmdldCkgYmluZXEgdmFsdWUs
IE51bGxUYWcsIHRhcmdldCBlbmQpCiAKK21hY3JvIHVuZGVmaW5lZE9yTnVsbEp1bXBPcChvcGNv
ZGVOYW1lLCBvcGNvZGVTdHJ1Y3QsIGZuKQorICAgIGxsaW50T3BXaXRoSnVtcChvcF8lb3Bjb2Rl
TmFtZSUsIG9wY29kZVN0cnVjdCwgbWFjcm8gKHNpemUsIGdldCwganVtcCwgZGlzcGF0Y2gpCisg
ICAgICAgIGdldChtX3ZhbHVlLCB0MSkKKyAgICAgICAgbG9hZENvbnN0YW50T3JWYXJpYWJsZVRh
ZyhzaXplLCB0MSwgdDApCisgICAgICAgIG9yaSAxLCB0MAorICAgICAgICBmbih0MCwgLnRhcmdl
dCkKKyAgICAgICAgZGlzcGF0Y2goKQorCisgICAgLnRhcmdldDoKKyAgICAgICAganVtcChtX3Rh
cmdldExhYmVsKQorICAgIGVuZCkKK2VuZAorCit1bmRlZmluZWRPck51bGxKdW1wT3AoanVuZGVm
aW5lZF9vcl9udWxsLCBPcEp1bmRlZmluZWRPck51bGwsCisgICAgbWFjcm8gKHZhbHVlLCB0YXJn
ZXQpIGJpZXEgdmFsdWUsIE51bGxUYWcsIHRhcmdldCBlbmQpCisKK3VuZGVmaW5lZE9yTnVsbEp1
bXBPcChqbnVuZGVmaW5lZF9vcl9udWxsLCBPcEpudW5kZWZpbmVkT3JOdWxsLAorICAgIG1hY3Jv
ICh2YWx1ZSwgdGFyZ2V0KSBiaW5lcSB2YWx1ZSwgTnVsbFRhZywgdGFyZ2V0IGVuZCkKIAogbGxp
bnRPcFdpdGhNZXRhZGF0YShvcF9qbmVxX3B0ciwgT3BKbmVxUHRyLCBtYWNybyAoc2l6ZSwgZ2V0
LCBkaXNwYXRjaCwgbWV0YWRhdGEsIHJldHVybikKICAgICBnZXQobV92YWx1ZSwgdDApCmRpZmYg
LS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTG93TGV2ZWxJbnRlcnByZXRlcjY0
LmFzbSBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9Mb3dMZXZlbEludGVycHJldGVyNjQu
YXNtCmluZGV4IGUxZWQ3MmYwZWJjMTUxYzMyNjgxZjBhMmYwYjQwOWJkMDU3M2ZhNzIuLmUwOWY4
OTg1ZmU1MzE3YThkZDliYjQ3MWVhOTJiYWRiYjhkNTFjYWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9sbGludC9Mb3dMZXZlbEludGVycHJldGVyNjQuYXNtCisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9sbGludC9Mb3dMZXZlbEludGVycHJldGVyNjQuYXNtCkBAIC0xNzY5
LDYgKzE3NjksMjQgQEAgZXF1YWxOdWxsSnVtcE9wKGpuZXFfbnVsbCwgT3BKbmVxTnVsbCwKICAg
ICBlbmQsCiAgICAgbWFjcm8gKHZhbHVlLCB0YXJnZXQpIGJxbmVxIHZhbHVlLCBWYWx1ZU51bGws
IHRhcmdldCBlbmQpCiAKK21hY3JvIHVuZGVmaW5lZE9yTnVsbEp1bXBPcChvcGNvZGVOYW1lLCBv
cGNvZGVTdHJ1Y3QsIGZuKQorICAgIGxsaW50T3BXaXRoSnVtcChvcF8lb3Bjb2RlTmFtZSUsIG9w
Y29kZVN0cnVjdCwgbWFjcm8gKHNpemUsIGdldCwganVtcCwgZGlzcGF0Y2gpCisgICAgICAgIGdl
dChtX3ZhbHVlLCB0MSkKKyAgICAgICAgbG9hZENvbnN0YW50T3JWYXJpYWJsZShzaXplLCB0MSwg
dDApCisgICAgICAgIGFuZHEgflRhZ0JpdFVuZGVmaW5lZCwgdDAKKyAgICAgICAgZm4odDAsIC50
YXJnZXQpCisgICAgICAgIGRpc3BhdGNoKCkKKworICAgIC50YXJnZXQ6CisgICAgICAgIGp1bXAo
bV90YXJnZXRMYWJlbCkKKyAgICBlbmQpCitlbmQKKwordW5kZWZpbmVkT3JOdWxsSnVtcE9wKGp1
bmRlZmluZWRfb3JfbnVsbCwgT3BKdW5kZWZpbmVkT3JOdWxsLAorICAgIG1hY3JvICh2YWx1ZSwg
dGFyZ2V0KSBicWVxIHZhbHVlLCBWYWx1ZU51bGwsIHRhcmdldCBlbmQpCisKK3VuZGVmaW5lZE9y
TnVsbEp1bXBPcChqbnVuZGVmaW5lZF9vcl9udWxsLCBPcEpudW5kZWZpbmVkT3JOdWxsLAorICAg
IG1hY3JvICh2YWx1ZSwgdGFyZ2V0KSBicW5lcSB2YWx1ZSwgVmFsdWVOdWxsLCB0YXJnZXQgZW5k
KQogCiBsbGludE9wV2l0aE1ldGFkYXRhKG9wX2puZXFfcHRyLCBPcEpuZXFQdHIsIG1hY3JvIChz
aXplLCBnZXQsIGRpc3BhdGNoLCBtZXRhZGF0YSwgcmV0dXJuKQogICAgIGdldChtX3ZhbHVlLCB0
MCkKZGlmZiAtLWdpdCBhL0pTVGVzdHMvQ2hhbmdlTG9nIGIvSlNUZXN0cy9DaGFuZ2VMb2cKaW5k
ZXggYjI0NzMyZDFlMzJmODNjMWM4OThhZDM3YzEwZWFhNzNiM2RjYzNiNC4uZjNjY2M2MWYyZjE0
NGMzNTIyZjdhN2QzZWU3OTQ1MzU4NTkwZTU4NyAxMDA2NDQKLS0tIGEvSlNUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvSlNUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMiBAQAorMjAxOS0wOC0wNiAg
Um9zcyBLaXJzbGluZyAgPHJvc3Mua2lyc2xpbmdAc29ueS5jb20+CisKKyAgICAgICAgW0pTQ10g
QWRkICJqdW1wIGlmIChub3QpIHVuZGVmaW5lZCBvciBudWxsIiBieXRlY29kZSBvcHMKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwMDQ4MAorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogc3RyZXNzL2Rlc3Ry
dWN0dXJpbmctYXNzaWdubWVudC1yZXF1aXJlLW9iamVjdC1jb2VyY2libGUuanM6CisKIDIwMTkt
MDgtMDUgIE1pY2hhZWwgU2Fib2ZmICA8bXNhYm9mZkBhcHBsZS5jb20+CiAKICAgICAgICAgSlND
OiBhc3NlcnRpb24gZmFpbHVyZSBpbiBTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZUdldEJ5VmFsT25J
bnRUeXBlZEFycmF5CmRpZmYgLS1naXQgYS9KU1Rlc3RzL3N0cmVzcy9kZXN0cnVjdHVyaW5nLWFz
c2lnbm1lbnQtcmVxdWlyZS1vYmplY3QtY29lcmNpYmxlLmpzIGIvSlNUZXN0cy9zdHJlc3MvZGVz
dHJ1Y3R1cmluZy1hc3NpZ25tZW50LXJlcXVpcmUtb2JqZWN0LWNvZXJjaWJsZS5qcwppbmRleCBj
MjViYjFiNTcyYmYwYmQwOWE0NTFjYjZjYTQ1OThhMzdiMDljY2NhLi5iNzYxNGViMWMxZGZiNDg2
NzY4ODEwYThmMWM0MmE4MGEyZTRhNmZjIDEwMDY0NAotLS0gYS9KU1Rlc3RzL3N0cmVzcy9kZXN0
cnVjdHVyaW5nLWFzc2lnbm1lbnQtcmVxdWlyZS1vYmplY3QtY29lcmNpYmxlLmpzCisrKyBiL0pT
VGVzdHMvc3RyZXNzL2Rlc3RydWN0dXJpbmctYXNzaWdubWVudC1yZXF1aXJlLW9iamVjdC1jb2Vy
Y2libGUuanMKQEAgLTY2LDMgKzY2LDggQEAgdGVzdE9LKGAoeyB9ID0gLzEvKWApOwogdGVzdE9L
KGAoeyBhIH0gPSAvMS8pYCk7CiB0ZXN0T0soYCh7IGE6IHsgYiB9ID0gLzEvIH0gPSB7IH0pYCk7
CiB0ZXN0T0soYCh7IGE6IHsgYiB9IH0gPSB7IGE6IC8xLyB9KWApOworCit0ZXN0T0soYCh7IH0g
PSBtYWtlTWFzcXVlcmFkZXIoKSlgKTsKK3Rlc3RPSyhgKHsgYSB9ID0gbWFrZU1hc3F1ZXJhZGVy
KCkpYCk7Cit0ZXN0T0soYCh7IGE6IHsgYiB9ID0gbWFrZU1hc3F1ZXJhZGVyKCkgfSA9IHsgfSlg
KTsKK3Rlc3RPSyhgKHsgYTogeyBiIH0gfSA9IHsgYTogbWFrZU1hc3F1ZXJhZGVyKCkgfSlgKTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>375688</attachid>
            <date>2019-08-06 22:45:19 -0700</date>
            <delta_ts>2019-08-07 14:22:16 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-200480-20190806224518.patch</filename>
            <type>text/plain</type>
            <size>17626</size>
            <attacher name="Ross Kirsling">ross.kirsling</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQ4MzM4CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA0
OGM2NDY5N2FhMzRmMmEyNzQyZmFjYWFlMmYxNTg1NzhkMTAyNDUyLi4yMTUxNTM5YWFmNGFmZWQx
NTI3YzliZTVmODY1OGE0NGQ4MjFlMzI5IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw0NCBAQAorMjAxOS0wOC0wNiAgUm9zcyBLaXJzbGluZyAgPHJvc3Mua2lyc2xpbmdAc29u
eS5jb20+CisKKyAgICAgICAgW0pTQ10gQWRkICJqdW1wIGlmIChub3QpIHVuZGVmaW5lZCBvciBu
dWxsIiBieXRlY29kZSBvcHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTIwMDQ4MAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgIFRoaXMgcGF0Y2ggaW50cm9kdWNlcyBmdXNlZCBqdW1wcyBmb3Igb3BfaXNfdW5k
ZWZpbmVkX29yX251bGwsIHdoaWNoIGlnbm9yZXMgIm1hc3F1ZXJhZGUtYXMtdW5kZWZpbmVkIiBi
ZWhhdmlvci4KKworICAgICAgICBUaGlzIGxldHMgdXMgZml4IGEgZWRnZS1jYXNlIGJ1ZyBpbiBS
ZXF1aXJlT2JqZWN0Q29lcmNpYmxlICh3aGVyZSBgKHsgbGVuZ3RoIH0gPSBkb2N1bWVudC5hbGwp
YCB3YXMgYSBUeXBlRXJyb3IpCisgICAgICAgIGFuZCBtb3Jlb3ZlciBwcm92aWRlcyBhIHZlcnkg
dXNlZnVsIG9wdGltaXphdGlvbiBmb3IgdGhlIG5ldyA/LiBhbmQgPz8gb3BlcmF0b3JzLCB3aGlj
aCBoYXZlIHNlbWFudGljcyBjZW50ZXJlZAorICAgICAgICBhcm91bmQgb3BfanVuZGVmaW5lZF9v
cl9udWxsIGFuZCBvcF9qbnVuZGVmaW5lZF9vcl9udWxsLCByZXNwZWN0aXZlbHkuCisKKyAgICAg
ICAgKiBieXRlY29kZS9CeXRlY29kZUxpc3QucmI6CisgICAgICAgICogYnl0ZWNvZGUvQnl0ZWNv
ZGVVc2VEZWYuaDoKKyAgICAgICAgKEpTQzo6Y29tcHV0ZVVzZXNGb3JCeXRlY29kZU9mZnNldCk6
CisgICAgICAgIChKU0M6OmNvbXB1dGVEZWZzRm9yQnl0ZWNvZGVPZmZzZXQpOgorICAgICAgICAq
IGJ5dGVjb2RlL09wY29kZS5oOgorICAgICAgICAoSlNDOjppc0JyYW5jaCk6CisgICAgICAgICog
Ynl0ZWNvZGUvUHJlY2lzZUp1bXBUYXJnZXRzSW5saW5lcy5oOgorICAgICAgICAqIGJ5dGVjb21w
aWxlci9CeXRlY29kZUdlbmVyYXRvci5jcHA6CisgICAgICAgIChKU0M6OkxhYmVsOjpzZXRMb2Nh
dGlvbik6CisgICAgICAgIChKU0M6OkJ5dGVjb2RlR2VuZXJhdG9yOjplbWl0SnVtcElmVHJ1ZSk6
CisgICAgICAgIChKU0M6OkJ5dGVjb2RlR2VuZXJhdG9yOjplbWl0SnVtcElmRmFsc2UpOgorICAg
ICAgICAoSlNDOjpCeXRlY29kZUdlbmVyYXRvcjo6ZW1pdFJlcXVpcmVPYmplY3RDb2VyY2libGUp
OgorICAgICAgICAqIGRmZy9ERkdCeXRlQ29kZVBhcnNlci5jcHA6CisgICAgICAgIChKU0M6OkRG
Rzo6Qnl0ZUNvZGVQYXJzZXI6OnBhcnNlQmxvY2spOgorICAgICAgICAqIGRmZy9ERkdDYXBhYmls
aXRpZXMuY3BwOgorICAgICAgICAoSlNDOjpERkc6OmNhcGFiaWxpdHlMZXZlbCk6CisgICAgICAg
ICogaml0L0pJVC5jcHA6CisgICAgICAgIChKU0M6OkpJVDo6cHJpdmF0ZUNvbXBpbGVNYWluUGFz
cyk6CisgICAgICAgICogaml0L0pJVC5oOgorICAgICAgICAqIGppdC9KSVRPcGNvZGVzLmNwcDoK
KyAgICAgICAgKEpTQzo6SklUOjplbWl0X29wX2p1bmRlZmluZWRfb3JfbnVsbCk6IEFkZGVkLgor
ICAgICAgICAoSlNDOjpKSVQ6OmVtaXRfb3Bfam51bmRlZmluZWRfb3JfbnVsbCk6IEFkZGVkLgor
ICAgICAgICAqIGppdC9KSVRPcGNvZGVzMzJfNjQuY3BwOgorICAgICAgICAoSlNDOjpKSVQ6OmVt
aXRfb3BfanVuZGVmaW5lZF9vcl9udWxsKTogQWRkZWQuCisgICAgICAgIChKU0M6OkpJVDo6ZW1p
dF9vcF9qbnVuZGVmaW5lZF9vcl9udWxsKTogQWRkZWQuCisgICAgICAgICogbGxpbnQvTG93TGV2
ZWxJbnRlcnByZXRlcjMyXzY0LmFzbToKKyAgICAgICAgKiBsbGludC9Mb3dMZXZlbEludGVycHJl
dGVyNjQuYXNtOgorCiAyMDE5LTA4LTA2ICBZdXN1a2UgU3V6dWtpICA8eXN1enVraUBhcHBsZS5j
b20+CiAKICAgICAgICAgW0pTQ10gc2FtcGxpbmctcHJvZmlsZXIgY2FuIHNlZSBnYXJiYWdlIFdh
c206OkNhbGxlZSogcG9pbnRlciB3aGljaCBpcyBIYXNoVGFibGUgZGVsZXRlZCAvIGVtcHR5IHZh
bHVlcwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0J5dGVjb2Rl
TGlzdC5yYiBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9CeXRlY29kZUxpc3QucmIK
aW5kZXggMjlkN2U0YjllZDg0NzBiZTdkMWVjMWY0YzNiYmUwYjI0NTY2NWQzNC4uNjdlOGEyMDg5
Zjg2MGZiYmQ5YjEwNmU5YmE4M2I4MWY5NTM3MDExNSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2J5dGVjb2RlL0J5dGVjb2RlTGlzdC5yYgorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvYnl0ZWNvZGUvQnl0ZWNvZGVMaXN0LnJiCkBAIC02MjUsNiArNjI1LDE4IEBAIG9wIDpq
bmVxX251bGwsCiAgICAgICAgIHRhcmdldExhYmVsOiBCb3VuZExhYmVsLAogICAgIH0KIAorb3Ag
Omp1bmRlZmluZWRfb3JfbnVsbCwKKyAgICBhcmdzOiB7CisgICAgICAgIHZhbHVlOiBWaXJ0dWFs
UmVnaXN0ZXIsCisgICAgICAgIHRhcmdldExhYmVsOiBCb3VuZExhYmVsLAorICAgIH0KKworb3Ag
OmpudW5kZWZpbmVkX29yX251bGwsCisgICAgYXJnczogeworICAgICAgICB2YWx1ZTogVmlydHVh
bFJlZ2lzdGVyLAorICAgICAgICB0YXJnZXRMYWJlbDogQm91bmRMYWJlbCwKKyAgICB9CisKIG9w
IDpqbmVxX3B0ciwKICAgICBhcmdzOiB7CiAgICAgICAgIHZhbHVlOiBWaXJ0dWFsUmVnaXN0ZXIs
CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQnl0ZWNvZGVVc2VE
ZWYuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9CeXRlY29kZVVzZURlZi5oCmlu
ZGV4IDQ5NjJjNzYxODA0NGJiMTQ3YTYzYTExODQ3M2QxMzI4NTM5MWYyZjEuLjhkZTc1YTFkOTU2
MWYwZmFlNTUyZmJhOTM3NjAyMjkzZjgyODBiYjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ieXRlY29kZS9CeXRlY29kZVVzZURlZi5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ieXRlY29kZS9CeXRlY29kZVVzZURlZi5oCkBAIC0xMDcsNiArMTA3LDggQEAgdm9pZCBj
b21wdXRlVXNlc0ZvckJ5dGVjb2RlT2Zmc2V0KEJsb2NrKiBjb2RlQmxvY2ssIE9wY29kZUlEIG9w
Y29kZUlELCBjb25zdCBJbnMKICAgICBVU0VTKE9wSmZhbHNlLCBjb25kaXRpb24pCiAgICAgVVNF
UyhPcEplcU51bGwsIHZhbHVlKQogICAgIFVTRVMoT3BKbmVxTnVsbCwgdmFsdWUpCisgICAgVVNF
UyhPcEp1bmRlZmluZWRPck51bGwsIHZhbHVlKQorICAgIFVTRVMoT3BKbnVuZGVmaW5lZE9yTnVs
bCwgdmFsdWUpCiAgICAgVVNFUyhPcERlYywgc3JjRHN0KQogICAgIFVTRVMoT3BJbmMsIHNyY0Rz
dCkKICAgICBVU0VTKE9wTG9nU2hhZG93Q2hpY2tlblByb2xvZ3VlLCBzY29wZSkKQEAgLTMwNyw2
ICszMDksOCBAQCB2b2lkIGNvbXB1dGVEZWZzRm9yQnl0ZWNvZGVPZmZzZXQoQmxvY2sqIGNvZGVC
bG9jaywgT3Bjb2RlSUQgb3Bjb2RlSUQsIGNvbnN0IElucwogICAgIGNhc2Ugb3BfamZhbHNlOgog
ICAgIGNhc2Ugb3BfamVxX251bGw6CiAgICAgY2FzZSBvcF9qbmVxX251bGw6CisgICAgY2FzZSBv
cF9qdW5kZWZpbmVkX29yX251bGw6CisgICAgY2FzZSBvcF9qbnVuZGVmaW5lZF9vcl9udWxsOgog
ICAgIGNhc2Ugb3Bfam5lcV9wdHI6CiAgICAgY2FzZSBvcF9qbGVzczoKICAgICBjYXNlIG9wX2ps
ZXNzZXE6CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvT3Bjb2Rl
LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvT3Bjb2RlLmgKaW5kZXggNzBjZTA1
YjcyZDY5NGYwNzA1OWY4MGRhNThhMGI2OTFkMzBlNDE5Yi4uOWI0YTdmYWM1ZDJlZWI5MmQ2ZWVm
ZTNiODU4NDRkMmYwYTkyMjFhZSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5
dGVjb2RlL09wY29kZS5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9PcGNv
ZGUuaApAQCAtMTczLDYgKzE3Myw4IEBAIGlubGluZSBib29sIGlzQnJhbmNoKE9wY29kZUlEIG9w
Y29kZUlEKQogICAgIGNhc2Ugb3BfamZhbHNlOgogICAgIGNhc2Ugb3BfamVxX251bGw6CiAgICAg
Y2FzZSBvcF9qbmVxX251bGw6CisgICAgY2FzZSBvcF9qdW5kZWZpbmVkX29yX251bGw6CisgICAg
Y2FzZSBvcF9qbnVuZGVmaW5lZF9vcl9udWxsOgogICAgIGNhc2Ugb3Bfam5lcV9wdHI6CiAgICAg
Y2FzZSBvcF9qbGVzczoKICAgICBjYXNlIG9wX2psZXNzZXE6CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvUHJlY2lzZUp1bXBUYXJnZXRzSW5saW5lcy5oIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1ByZWNpc2VKdW1wVGFyZ2V0c0lubGluZXMuaApp
bmRleCA0ZGQxODlkNjU3ZDkyYWM4MGI0MzUzYWJkMTk2MGU0ZTcwYmViMGMyLi45MDA1MmI1Yjcz
MjNiNDc0YWZhY2IxMDVjMDgxZjMzN2Y5NmE0OWQ2IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvYnl0ZWNvZGUvUHJlY2lzZUp1bXBUYXJnZXRzSW5saW5lcy5oCisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9QcmVjaXNlSnVtcFRhcmdldHNJbmxpbmVzLmgKQEAg
LTQwLDYgKzQwLDggQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgQ0FTRV9PUChPcEpmYWxzZSkgXAog
ICAgIENBU0VfT1AoT3BKZXFOdWxsKSBcCiAgICAgQ0FTRV9PUChPcEpuZXFOdWxsKSBcCisgICAg
Q0FTRV9PUChPcEp1bmRlZmluZWRPck51bGwpIFwKKyAgICBDQVNFX09QKE9wSm51bmRlZmluZWRP
ck51bGwpIFwKICAgICBDQVNFX09QKE9wSm5lcVB0cikgXAogICAgIFwKICAgICBDQVNFX09QKE9w
Smxlc3MpIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29tcGlsZXIv
Qnl0ZWNvZGVHZW5lcmF0b3IuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb21waWxl
ci9CeXRlY29kZUdlbmVyYXRvci5jcHAKaW5kZXggNTE1YjU5ODNmNmExZDU4MDVkMmZiNDgxZWNj
MGE5N2NkNTk5ZDdiOS4uMmMzMGE0ZDliNDMxYjBlNTUyNzQxZDMyNWFjODE0OWMzOGU5ZDU4MCAx
MDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb21waWxlci9CeXRlY29kZUdl
bmVyYXRvci5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb21waWxlci9CeXRl
Y29kZUdlbmVyYXRvci5jcHAKQEAgLTExNSw2ICsxMTUsOCBAQCB2b2lkIExhYmVsOjpzZXRMb2Nh
dGlvbihCeXRlY29kZUdlbmVyYXRvciYgZ2VuZXJhdG9yLCB1bnNpZ25lZCBsb2NhdGlvbikKICAg
ICAgICAgQ0FTRShPcEpmYWxzZSkKICAgICAgICAgQ0FTRShPcEplcU51bGwpCiAgICAgICAgIENB
U0UoT3BKbmVxTnVsbCkKKyAgICAgICAgQ0FTRShPcEp1bmRlZmluZWRPck51bGwpCisgICAgICAg
IENBU0UoT3BKbnVuZGVmaW5lZE9yTnVsbCkKICAgICAgICAgQ0FTRShPcEplcSkKICAgICAgICAg
Q0FTRShPcEpzdHJpY3RlcSkKICAgICAgICAgQ0FTRShPcEpuZXEpCkBAIC0xNDgxLDYgKzE0ODMs
OSBAQCB2b2lkIEJ5dGVjb2RlR2VuZXJhdG9yOjplbWl0SnVtcElmVHJ1ZShSZWdpc3RlcklEKiBj
b25kLCBMYWJlbCYgdGFyZ2V0KQogICAgICAgICB9IGVsc2UgaWYgKG1fbGFzdE9wY29kZUlEID09
IG9wX25lcV9udWxsICYmIHRhcmdldC5pc0ZvcndhcmQoKSkgewogICAgICAgICAgICAgaWYgKGZ1
c2VUZXN0QW5kSm1wPE9wTmVxTnVsbCwgT3BKbmVxTnVsbD4oY29uZCwgdGFyZ2V0KSkKICAgICAg
ICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0gZWxzZSBpZiAobV9sYXN0T3Bjb2RlSUQgPT0g
b3BfaXNfdW5kZWZpbmVkX29yX251bGwgJiYgdGFyZ2V0LmlzRm9yd2FyZCgpKSB7CisgICAgICAg
ICAgICBpZiAoZnVzZVRlc3RBbmRKbXA8T3BJc1VuZGVmaW5lZE9yTnVsbCwgT3BKdW5kZWZpbmVk
T3JOdWxsPihjb25kLCB0YXJnZXQpKQorICAgICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAg
fQogICAgIH0KIApAQCAtMTUyOSw2ICsxNTM0LDkgQEAgdm9pZCBCeXRlY29kZUdlbmVyYXRvcjo6
ZW1pdEp1bXBJZkZhbHNlKFJlZ2lzdGVySUQqIGNvbmQsIExhYmVsJiB0YXJnZXQpCiAgICAgICAg
IH0gZWxzZSBpZiAobV9sYXN0T3Bjb2RlSUQgPT0gb3BfbmVxX251bGwgJiYgdGFyZ2V0LmlzRm9y
d2FyZCgpKSB7CiAgICAgICAgICAgICBpZiAoZnVzZVRlc3RBbmRKbXA8T3BOZXFOdWxsLCBPcEpl
cU51bGw+KGNvbmQsIHRhcmdldCkpCiAgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9
IGVsc2UgaWYgKG1fbGFzdE9wY29kZUlEID09IG9wX2lzX3VuZGVmaW5lZF9vcl9udWxsICYmIHRh
cmdldC5pc0ZvcndhcmQoKSkgeworICAgICAgICAgICAgaWYgKGZ1c2VUZXN0QW5kSm1wPE9wSXNV
bmRlZmluZWRPck51bGwsIE9wSm51bmRlZmluZWRPck51bGw+KGNvbmQsIHRhcmdldCkpCisgICAg
ICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CiAgICAgfQogCkBAIC00NDU3LDEwICs0NDY1
LDggQEAgUmVnaXN0ZXJJRCogQnl0ZWNvZGVHZW5lcmF0b3I6OmVtaXRSZXN0UGFyYW1ldGVyKFJl
Z2lzdGVySUQqIHJlc3VsdCwgdW5zaWduZWQgbnUKIAogdm9pZCBCeXRlY29kZUdlbmVyYXRvcjo6
ZW1pdFJlcXVpcmVPYmplY3RDb2VyY2libGUoUmVnaXN0ZXJJRCogdmFsdWUsIGNvbnN0IFN0cmlu
ZyYgZXJyb3IpCiB7Ci0gICAgLy8gRklYTUU6IG9wX2puZXFfbnVsbCB0cmVhdHMgInVuZGV0ZWN0
YWJsZSIgb2JqZWN0cyBhcyBudWxsL3VuZGVmaW5lZC4gUmVxdWlyZU9iamVjdENvZXJjaWJsZQot
ICAgIC8vIHRodXMgaW5jb3JyZWN0bHkgdGhyb3dzIGEgVHlwZUVycm9yIGZvciBpbnRlcmZhY2Vz
IGxpa2UgSFRNTEFsbENvbGxlY3Rpb24uCiAgICAgUmVmPExhYmVsPiB0YXJnZXQgPSBuZXdMYWJl
bCgpOwotICAgIE9wSm5lcU51bGw6OmVtaXQodGhpcywgdmFsdWUsIHRhcmdldC0+YmluZCh0aGlz
KSk7CisgICAgT3BKbnVuZGVmaW5lZE9yTnVsbDo6ZW1pdCh0aGlzLCB2YWx1ZSwgdGFyZ2V0LT5i
aW5kKHRoaXMpKTsKICAgICBlbWl0VGhyb3dUeXBlRXJyb3IoZXJyb3IpOwogICAgIGVtaXRMYWJl
bCh0YXJnZXQuZ2V0KCkpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Rm
Zy9ERkdCeXRlQ29kZVBhcnNlci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0J5
dGVDb2RlUGFyc2VyLmNwcAppbmRleCBhZWM1ODcxNTIwZjJmNDcyMTgwYTM3OTk2NTM3NDVlNGEz
ZWFlNDIzLi5kMTI1Y2MzNzEzYjU0ZmJkMGE0NzQ5MDU2N2YyMDg0NmYxMjY0NWQ2IDEwMDY0NAot
LS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0J5dGVDb2RlUGFyc2VyLmNwcAorKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0J5dGVDb2RlUGFyc2VyLmNwcApAQCAtNTcz
NSw2ICs1NzM1LDI0IEBAIHZvaWQgQnl0ZUNvZGVQYXJzZXI6OnBhcnNlQmxvY2sodW5zaWduZWQg
bGltaXQpCiAgICAgICAgICAgICBMQVNUX09QQ09ERShvcF9qbmVxX251bGwpOwogICAgICAgICB9
CiAKKyAgICAgICAgY2FzZSBvcF9qdW5kZWZpbmVkX29yX251bGw6IHsKKyAgICAgICAgICAgIGF1
dG8gYnl0ZWNvZGUgPSBjdXJyZW50SW5zdHJ1Y3Rpb24tPmFzPE9wSnVuZGVmaW5lZE9yTnVsbD4o
KTsKKyAgICAgICAgICAgIHVuc2lnbmVkIHJlbGF0aXZlT2Zmc2V0ID0ganVtcFRhcmdldChieXRl
Y29kZS5tX3RhcmdldExhYmVsKTsKKyAgICAgICAgICAgIE5vZGUqIHZhbHVlID0gZ2V0KGJ5dGVj
b2RlLm1fdmFsdWUpOworICAgICAgICAgICAgTm9kZSogY29uZGl0aW9uID0gYWRkVG9HcmFwaChJ
c1VuZGVmaW5lZE9yTnVsbCwgdmFsdWUpOworICAgICAgICAgICAgYWRkVG9HcmFwaChCcmFuY2gs
IE9wSW5mbyhicmFuY2hEYXRhKG1fY3VycmVudEluZGV4ICsgcmVsYXRpdmVPZmZzZXQsIG1fY3Vy
cmVudEluZGV4ICsgY3VycmVudEluc3RydWN0aW9uLT5zaXplKCkpKSwgY29uZGl0aW9uKTsKKyAg
ICAgICAgICAgIExBU1RfT1BDT0RFKG9wX2p1bmRlZmluZWRfb3JfbnVsbCk7CisgICAgICAgIH0K
KworICAgICAgICBjYXNlIG9wX2pudW5kZWZpbmVkX29yX251bGw6IHsKKyAgICAgICAgICAgIGF1
dG8gYnl0ZWNvZGUgPSBjdXJyZW50SW5zdHJ1Y3Rpb24tPmFzPE9wSm51bmRlZmluZWRPck51bGw+
KCk7CisgICAgICAgICAgICB1bnNpZ25lZCByZWxhdGl2ZU9mZnNldCA9IGp1bXBUYXJnZXQoYnl0
ZWNvZGUubV90YXJnZXRMYWJlbCk7CisgICAgICAgICAgICBOb2RlKiB2YWx1ZSA9IGdldChieXRl
Y29kZS5tX3ZhbHVlKTsKKyAgICAgICAgICAgIE5vZGUqIGNvbmRpdGlvbiA9IGFkZFRvR3JhcGgo
SXNVbmRlZmluZWRPck51bGwsIHZhbHVlKTsKKyAgICAgICAgICAgIGFkZFRvR3JhcGgoQnJhbmNo
LCBPcEluZm8oYnJhbmNoRGF0YShtX2N1cnJlbnRJbmRleCArIGN1cnJlbnRJbnN0cnVjdGlvbi0+
c2l6ZSgpLCBtX2N1cnJlbnRJbmRleCArIHJlbGF0aXZlT2Zmc2V0KSksIGNvbmRpdGlvbik7Cisg
ICAgICAgICAgICBMQVNUX09QQ09ERShvcF9qbnVuZGVmaW5lZF9vcl9udWxsKTsKKyAgICAgICAg
fQorCiAgICAgICAgIGNhc2Ugb3Bfamxlc3M6IHsKICAgICAgICAgICAgIGF1dG8gYnl0ZWNvZGUg
PSBjdXJyZW50SW5zdHJ1Y3Rpb24tPmFzPE9wSmxlc3M+KCk7CiAgICAgICAgICAgICB1bnNpZ25l
ZCByZWxhdGl2ZU9mZnNldCA9IGp1bXBUYXJnZXQoYnl0ZWNvZGUubV90YXJnZXRMYWJlbCk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0NhcGFiaWxpdGllcy5jcHAg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0NhcGFiaWxpdGllcy5jcHAKaW5kZXggZGZl
NmMxNmQ1MWEwMGNhYjAzYWY5ODAxMDc1NGE5NmM3OTY5ZTM0NS4uNmQzZjIzNzFjZDI2OGVmMWNh
YzAzNTIwODgwZTIyYTEzZmFlOGNiYyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2RmZy9ERkdDYXBhYmlsaXRpZXMuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcv
REZHQ2FwYWJpbGl0aWVzLmNwcApAQCAtMTg4LDYgKzE4OCw4IEBAIENhcGFiaWxpdHlMZXZlbCBj
YXBhYmlsaXR5TGV2ZWwoT3Bjb2RlSUQgb3Bjb2RlSUQsIENvZGVCbG9jayogY29kZUJsb2NrLCBj
b25zdCBJCiAgICAgY2FzZSBvcF9qZmFsc2U6CiAgICAgY2FzZSBvcF9qZXFfbnVsbDoKICAgICBj
YXNlIG9wX2puZXFfbnVsbDoKKyAgICBjYXNlIG9wX2p1bmRlZmluZWRfb3JfbnVsbDoKKyAgICBj
YXNlIG9wX2pudW5kZWZpbmVkX29yX251bGw6CiAgICAgY2FzZSBvcF9qbGVzczoKICAgICBjYXNl
IG9wX2psZXNzZXE6CiAgICAgY2FzZSBvcF9qZ3JlYXRlcjoKZGlmZiAtLWdpdCBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9qaXQvSklULmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklU
LmNwcAppbmRleCBmMTk3NWJmYjAxNGE5NjQxNmI3MzlmZGEzNzZjMGU4ZmIyOGIxOGUxLi4wNWY3
MGYxYWVhZjRjNGQ5ZjUyYzEwNmFiNjZkYjllY2QyZWFiOGJlIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvaml0L0pJVC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2pp
dC9KSVQuY3BwCkBAIC0zNjQsNiArMzY0LDggQEAgdm9pZCBKSVQ6OnByaXZhdGVDb21waWxlTWFp
blBhc3MoKQogICAgICAgICBERUZJTkVfT1Aob3BfamZhbHNlKQogICAgICAgICBERUZJTkVfT1Ao
b3Bfam1wKQogICAgICAgICBERUZJTkVfT1Aob3Bfam5lcV9udWxsKQorICAgICAgICBERUZJTkVf
T1Aob3BfanVuZGVmaW5lZF9vcl9udWxsKQorICAgICAgICBERUZJTkVfT1Aob3Bfam51bmRlZmlu
ZWRfb3JfbnVsbCkKICAgICAgICAgREVGSU5FX09QKG9wX2puZXFfcHRyKQogICAgICAgICBERUZJ
TkVfT1Aob3Bfamxlc3MpCiAgICAgICAgIERFRklORV9PUChvcF9qbGVzc2VxKQpkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVQuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9qaXQvSklULmgKaW5kZXggNjk4OTYzNjM3ZmRmYjE3NTRhNzBjYTBkNzk2YmY1OGM4NWQ3NDlh
MC4uOTFmZTU5YWI5NjJiZGM4MGNiZjI0NmI1YWQ0NWE5ODI0MGM1MmUwZCAxMDA2NDQKLS0tIGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVQuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvaml0L0pJVC5oCkBAIC01NTQsNiArNTU0LDggQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAg
IHZvaWQgZW1pdF9vcF9qZmFsc2UoY29uc3QgSW5zdHJ1Y3Rpb24qKTsKICAgICAgICAgdm9pZCBl
bWl0X29wX2ptcChjb25zdCBJbnN0cnVjdGlvbiopOwogICAgICAgICB2b2lkIGVtaXRfb3Bfam5l
cV9udWxsKGNvbnN0IEluc3RydWN0aW9uKik7CisgICAgICAgIHZvaWQgZW1pdF9vcF9qdW5kZWZp
bmVkX29yX251bGwoY29uc3QgSW5zdHJ1Y3Rpb24qKTsKKyAgICAgICAgdm9pZCBlbWl0X29wX2pu
dW5kZWZpbmVkX29yX251bGwoY29uc3QgSW5zdHJ1Y3Rpb24qKTsKICAgICAgICAgdm9pZCBlbWl0
X29wX2puZXFfcHRyKGNvbnN0IEluc3RydWN0aW9uKik7CiAgICAgICAgIHZvaWQgZW1pdF9vcF9q
bGVzcyhjb25zdCBJbnN0cnVjdGlvbiopOwogICAgICAgICB2b2lkIGVtaXRfb3Bfamxlc3NlcShj
b25zdCBJbnN0cnVjdGlvbiopOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2pp
dC9KSVRPcGNvZGVzLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUT3Bjb2Rlcy5j
cHAKaW5kZXggZjA1ZGJhOTY0YjJlNjc3YTg5M2IxZGQxZWZiYWRjMjRjM2U4M2E0MC4uZWNiMWUx
MWM0NmMzNDNjNWU3MWRhYmUwN2U0NWY0YzExNTAxMWI3MSAxMDA2NDQKLS0tIGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2ppdC9KSVRPcGNvZGVzLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvaml0L0pJVE9wY29kZXMuY3BwCkBAIC00NDIsNiArNDQyLDMwIEBAIHZvaWQgSklUOjplbWl0
X29wX2puZXFfbnVsbChjb25zdCBJbnN0cnVjdGlvbiogY3VycmVudEluc3RydWN0aW9uKQogICAg
IHdhc05vdEltbWVkaWF0ZS5saW5rKHRoaXMpOwogfQogCit2b2lkIEpJVDo6ZW1pdF9vcF9qdW5k
ZWZpbmVkX29yX251bGwoY29uc3QgSW5zdHJ1Y3Rpb24qIGN1cnJlbnRJbnN0cnVjdGlvbikKK3sK
KyAgICBhdXRvIGJ5dGVjb2RlID0gY3VycmVudEluc3RydWN0aW9uLT5hczxPcEp1bmRlZmluZWRP
ck51bGw+KCk7CisgICAgaW50IHZhbHVlID0gYnl0ZWNvZGUubV92YWx1ZS5vZmZzZXQoKTsKKyAg
ICB1bnNpZ25lZCB0YXJnZXQgPSBqdW1wVGFyZ2V0KGN1cnJlbnRJbnN0cnVjdGlvbiwgYnl0ZWNv
ZGUubV90YXJnZXRMYWJlbCk7CisKKyAgICBlbWl0R2V0VmlydHVhbFJlZ2lzdGVyKHZhbHVlLCBy
ZWdUMCk7CisKKyAgICBhbmQ2NChUcnVzdGVkSW1tMzIoflRhZ0JpdFVuZGVmaW5lZCksIHJlZ1Qw
KTsKKyAgICBhZGRKdW1wKGJyYW5jaDY0KEVxdWFsLCByZWdUMCwgVHJ1c3RlZEltbTY0KEpTVmFs
dWU6OmVuY29kZShqc051bGwoKSkpKSwgdGFyZ2V0KTsKK30KKwordm9pZCBKSVQ6OmVtaXRfb3Bf
am51bmRlZmluZWRfb3JfbnVsbChjb25zdCBJbnN0cnVjdGlvbiogY3VycmVudEluc3RydWN0aW9u
KQoreworICAgIGF1dG8gYnl0ZWNvZGUgPSBjdXJyZW50SW5zdHJ1Y3Rpb24tPmFzPE9wSm51bmRl
ZmluZWRPck51bGw+KCk7CisgICAgaW50IHZhbHVlID0gYnl0ZWNvZGUubV92YWx1ZS5vZmZzZXQo
KTsKKyAgICB1bnNpZ25lZCB0YXJnZXQgPSBqdW1wVGFyZ2V0KGN1cnJlbnRJbnN0cnVjdGlvbiwg
Ynl0ZWNvZGUubV90YXJnZXRMYWJlbCk7CisKKyAgICBlbWl0R2V0VmlydHVhbFJlZ2lzdGVyKHZh
bHVlLCByZWdUMCk7CisKKyAgICBhbmQ2NChUcnVzdGVkSW1tMzIoflRhZ0JpdFVuZGVmaW5lZCks
IHJlZ1QwKTsKKyAgICBhZGRKdW1wKGJyYW5jaDY0KE5vdEVxdWFsLCByZWdUMCwgVHJ1c3RlZElt
bTY0KEpTVmFsdWU6OmVuY29kZShqc051bGwoKSkpKSwgdGFyZ2V0KTsKK30KKwogdm9pZCBKSVQ6
OmVtaXRfb3Bfam5lcV9wdHIoY29uc3QgSW5zdHJ1Y3Rpb24qIGN1cnJlbnRJbnN0cnVjdGlvbikK
IHsKICAgICBhdXRvIGJ5dGVjb2RlID0gY3VycmVudEluc3RydWN0aW9uLT5hczxPcEpuZXFQdHI+
KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVE9wY29kZXMzMl82
NC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVE9wY29kZXMzMl82NC5jcHAKaW5k
ZXggOTRhMjYzMjdiM2E5OGQ5NmFkNWZlNzBiNjZmNWE4MGJlNDRmNzVhYi4uNzEzMTk2ZjQ1N2Jh
ZDBlZjdmYmVkYTIzNGZlN2JkMGExYzE0ZmVmMyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2ppdC9KSVRPcGNvZGVzMzJfNjQuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9qaXQvSklUT3Bjb2RlczMyXzY0LmNwcApAQCAtNDQ5LDYgKzQ0OSwzMCBAQCB2b2lkIEpJVDo6
ZW1pdF9vcF9qbmVxX251bGwoY29uc3QgSW5zdHJ1Y3Rpb24qIGN1cnJlbnRJbnN0cnVjdGlvbikK
ICAgICB3YXNOb3RJbW1lZGlhdGUubGluayh0aGlzKTsKIH0KIAordm9pZCBKSVQ6OmVtaXRfb3Bf
anVuZGVmaW5lZF9vcl9udWxsKGNvbnN0IEluc3RydWN0aW9uKiBjdXJyZW50SW5zdHJ1Y3Rpb24p
Cit7CisgICAgYXV0byBieXRlY29kZSA9IGN1cnJlbnRJbnN0cnVjdGlvbi0+YXM8T3BKdW5kZWZp
bmVkT3JOdWxsPigpOworICAgIGludCB2YWx1ZSA9IGJ5dGVjb2RlLm1fdmFsdWUub2Zmc2V0KCk7
CisgICAgdW5zaWduZWQgdGFyZ2V0ID0ganVtcFRhcmdldChjdXJyZW50SW5zdHJ1Y3Rpb24sIGJ5
dGVjb2RlLm1fdGFyZ2V0TGFiZWwpOworCisgICAgZW1pdExvYWRUYWcodmFsdWUsIHJlZ1QwKTsK
KyAgICBzdGF0aWNfYXNzZXJ0KChKU1ZhbHVlOjpVbmRlZmluZWRUYWcgKyAxID09IEpTVmFsdWU6
Ok51bGxUYWcpICYmIChKU1ZhbHVlOjpOdWxsVGFnICYgMHgxKSwgIiIpOworICAgIG9yMzIoVHJ1
c3RlZEltbTMyKDEpLCByZWdUMCk7CisgICAgYWRkSnVtcChicmFuY2hJZk51bGwocmVnVDApLCB0
YXJnZXQpOworfQorCit2b2lkIEpJVDo6ZW1pdF9vcF9qbnVuZGVmaW5lZF9vcl9udWxsKGNvbnN0
IEluc3RydWN0aW9uKiBjdXJyZW50SW5zdHJ1Y3Rpb24pCit7CisgICAgYXV0byBieXRlY29kZSA9
IGN1cnJlbnRJbnN0cnVjdGlvbi0+YXM8T3BKbnVuZGVmaW5lZE9yTnVsbD4oKTsKKyAgICBpbnQg
dmFsdWUgPSBieXRlY29kZS5tX3ZhbHVlLm9mZnNldCgpOworICAgIHVuc2lnbmVkIHRhcmdldCA9
IGp1bXBUYXJnZXQoY3VycmVudEluc3RydWN0aW9uLCBieXRlY29kZS5tX3RhcmdldExhYmVsKTsK
KworICAgIGVtaXRMb2FkVGFnKHZhbHVlLCByZWdUMCk7CisgICAgc3RhdGljX2Fzc2VydCgoSlNW
YWx1ZTo6VW5kZWZpbmVkVGFnICsgMSA9PSBKU1ZhbHVlOjpOdWxsVGFnKSAmJiAoSlNWYWx1ZTo6
TnVsbFRhZyAmIDB4MSksICIiKTsKKyAgICBvcjMyKFRydXN0ZWRJbW0zMigxKSwgcmVnVDApOwor
ICAgIGFkZEp1bXAoYnJhbmNoSWZOb3ROdWxsKHJlZ1QwKSwgdGFyZ2V0KTsKK30KKwogdm9pZCBK
SVQ6OmVtaXRfb3Bfam5lcV9wdHIoY29uc3QgSW5zdHJ1Y3Rpb24qIGN1cnJlbnRJbnN0cnVjdGlv
bikKIHsKICAgICBhdXRvIGJ5dGVjb2RlID0gY3VycmVudEluc3RydWN0aW9uLT5hczxPcEpuZXFQ
dHI+KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTG93TGV2ZWxJ
bnRlcnByZXRlcjMyXzY0LmFzbSBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9Mb3dMZXZl
bEludGVycHJldGVyMzJfNjQuYXNtCmluZGV4IDM3ZWYyNzkxYzE1YjYzNzA4MTk2Y2E5ZmM2OWIx
ZWM4ZTUwYTkxNTUuLmFjNDE1OWI4YWY1ZDcwMjFkODg0Njc2OTM3ODFhMGIwOTMzNjViYjAgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9Mb3dMZXZlbEludGVycHJldGVy
MzJfNjQuYXNtCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9Mb3dMZXZlbEludGVy
cHJldGVyMzJfNjQuYXNtCkBAIC0xNjc2LDYgKzE2NzYsMjQgQEAgZXF1YWxOdWxsSnVtcE9wKGpu
ZXFfbnVsbCwgT3BKbmVxTnVsbCwKICAgICBlbmQsCiAgICAgbWFjcm8gKHZhbHVlLCB0YXJnZXQp
IGJpbmVxIHZhbHVlLCBOdWxsVGFnLCB0YXJnZXQgZW5kKQogCittYWNybyB1bmRlZmluZWRPck51
bGxKdW1wT3Aob3Bjb2RlTmFtZSwgb3Bjb2RlU3RydWN0LCBmbikKKyAgICBsbGludE9wV2l0aEp1
bXAob3BfJW9wY29kZU5hbWUlLCBvcGNvZGVTdHJ1Y3QsIG1hY3JvIChzaXplLCBnZXQsIGp1bXAs
IGRpc3BhdGNoKQorICAgICAgICBnZXQobV92YWx1ZSwgdDEpCisgICAgICAgIGxvYWRDb25zdGFu
dE9yVmFyaWFibGVUYWcoc2l6ZSwgdDEsIHQwKQorICAgICAgICBvcmkgMSwgdDAKKyAgICAgICAg
Zm4odDAsIC50YXJnZXQpCisgICAgICAgIGRpc3BhdGNoKCkKKworICAgIC50YXJnZXQ6CisgICAg
ICAgIGp1bXAobV90YXJnZXRMYWJlbCkKKyAgICBlbmQpCitlbmQKKwordW5kZWZpbmVkT3JOdWxs
SnVtcE9wKGp1bmRlZmluZWRfb3JfbnVsbCwgT3BKdW5kZWZpbmVkT3JOdWxsLAorICAgIG1hY3Jv
ICh2YWx1ZSwgdGFyZ2V0KSBiaWVxIHZhbHVlLCBOdWxsVGFnLCB0YXJnZXQgZW5kKQorCit1bmRl
ZmluZWRPck51bGxKdW1wT3Aoam51bmRlZmluZWRfb3JfbnVsbCwgT3BKbnVuZGVmaW5lZE9yTnVs
bCwKKyAgICBtYWNybyAodmFsdWUsIHRhcmdldCkgYmluZXEgdmFsdWUsIE51bGxUYWcsIHRhcmdl
dCBlbmQpCiAKIGxsaW50T3BXaXRoTWV0YWRhdGEob3Bfam5lcV9wdHIsIE9wSm5lcVB0ciwgbWFj
cm8gKHNpemUsIGdldCwgZGlzcGF0Y2gsIG1ldGFkYXRhLCByZXR1cm4pCiAgICAgZ2V0KG1fdmFs
dWUsIHQwKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xvd0xldmVs
SW50ZXJwcmV0ZXI2NC5hc20gYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTG93TGV2ZWxJ
bnRlcnByZXRlcjY0LmFzbQppbmRleCBlMWVkNzJmMGViYzE1MWMzMjY4MWYwYTJmMGI0MDliZDA1
NzNmYTcyLi5lMDlmODk4NWZlNTMxN2E4ZGQ5YmI0NzFlYTkyYmFkYmI4ZDUxY2FjIDEwMDY0NAot
LS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTG93TGV2ZWxJbnRlcnByZXRlcjY0LmFz
bQorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTG93TGV2ZWxJbnRlcnByZXRlcjY0
LmFzbQpAQCAtMTc2OSw2ICsxNzY5LDI0IEBAIGVxdWFsTnVsbEp1bXBPcChqbmVxX251bGwsIE9w
Sm5lcU51bGwsCiAgICAgZW5kLAogICAgIG1hY3JvICh2YWx1ZSwgdGFyZ2V0KSBicW5lcSB2YWx1
ZSwgVmFsdWVOdWxsLCB0YXJnZXQgZW5kKQogCittYWNybyB1bmRlZmluZWRPck51bGxKdW1wT3Ao
b3Bjb2RlTmFtZSwgb3Bjb2RlU3RydWN0LCBmbikKKyAgICBsbGludE9wV2l0aEp1bXAob3BfJW9w
Y29kZU5hbWUlLCBvcGNvZGVTdHJ1Y3QsIG1hY3JvIChzaXplLCBnZXQsIGp1bXAsIGRpc3BhdGNo
KQorICAgICAgICBnZXQobV92YWx1ZSwgdDEpCisgICAgICAgIGxvYWRDb25zdGFudE9yVmFyaWFi
bGUoc2l6ZSwgdDEsIHQwKQorICAgICAgICBhbmRxIH5UYWdCaXRVbmRlZmluZWQsIHQwCisgICAg
ICAgIGZuKHQwLCAudGFyZ2V0KQorICAgICAgICBkaXNwYXRjaCgpCisKKyAgICAudGFyZ2V0Ogor
ICAgICAgICBqdW1wKG1fdGFyZ2V0TGFiZWwpCisgICAgZW5kKQorZW5kCisKK3VuZGVmaW5lZE9y
TnVsbEp1bXBPcChqdW5kZWZpbmVkX29yX251bGwsIE9wSnVuZGVmaW5lZE9yTnVsbCwKKyAgICBt
YWNybyAodmFsdWUsIHRhcmdldCkgYnFlcSB2YWx1ZSwgVmFsdWVOdWxsLCB0YXJnZXQgZW5kKQor
Cit1bmRlZmluZWRPck51bGxKdW1wT3Aoam51bmRlZmluZWRfb3JfbnVsbCwgT3BKbnVuZGVmaW5l
ZE9yTnVsbCwKKyAgICBtYWNybyAodmFsdWUsIHRhcmdldCkgYnFuZXEgdmFsdWUsIFZhbHVlTnVs
bCwgdGFyZ2V0IGVuZCkKIAogbGxpbnRPcFdpdGhNZXRhZGF0YShvcF9qbmVxX3B0ciwgT3BKbmVx
UHRyLCBtYWNybyAoc2l6ZSwgZ2V0LCBkaXNwYXRjaCwgbWV0YWRhdGEsIHJldHVybikKICAgICBn
ZXQobV92YWx1ZSwgdDApCmRpZmYgLS1naXQgYS9KU1Rlc3RzL0NoYW5nZUxvZyBiL0pTVGVzdHMv
Q2hhbmdlTG9nCmluZGV4IGIyNDczMmQxZTMyZjgzYzFjODk4YWQzN2MxMGVhYTczYjNkY2MzYjQu
LmYzY2NjNjFmMmYxNDRjMzUyMmY3YTdkM2VlNzk0NTM1ODU5MGU1ODcgMTAwNjQ0Ci0tLSBhL0pT
VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0pTVGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTIgQEAK
KzIwMTktMDgtMDYgIFJvc3MgS2lyc2xpbmcgIDxyb3NzLmtpcnNsaW5nQHNvbnkuY29tPgorCisg
ICAgICAgIFtKU0NdIEFkZCAianVtcCBpZiAobm90KSB1bmRlZmluZWQgb3IgbnVsbCIgYnl0ZWNv
ZGUgb3BzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0y
MDA0ODAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAq
IHN0cmVzcy9kZXN0cnVjdHVyaW5nLWFzc2lnbm1lbnQtcmVxdWlyZS1vYmplY3QtY29lcmNpYmxl
LmpzOgorCiAyMDE5LTA4LTA1ICBNaWNoYWVsIFNhYm9mZiAgPG1zYWJvZmZAYXBwbGUuY29tPgog
CiAgICAgICAgIEpTQzogYXNzZXJ0aW9uIGZhaWx1cmUgaW4gU3BlY3VsYXRpdmVKSVQ6OmNvbXBp
bGVHZXRCeVZhbE9uSW50VHlwZWRBcnJheQpkaWZmIC0tZ2l0IGEvSlNUZXN0cy9zdHJlc3MvZGVz
dHJ1Y3R1cmluZy1hc3NpZ25tZW50LXJlcXVpcmUtb2JqZWN0LWNvZXJjaWJsZS5qcyBiL0pTVGVz
dHMvc3RyZXNzL2Rlc3RydWN0dXJpbmctYXNzaWdubWVudC1yZXF1aXJlLW9iamVjdC1jb2VyY2li
bGUuanMKaW5kZXggYzI1YmIxYjU3MmJmMGJkMDlhNDUxY2I2Y2E0NTk4YTM3YjA5Y2NjYS4uYjc2
MTRlYjFjMWRmYjQ4Njc2ODgxMGE4ZjFjNDJhODBhMmU0YTZmYyAxMDA2NDQKLS0tIGEvSlNUZXN0
cy9zdHJlc3MvZGVzdHJ1Y3R1cmluZy1hc3NpZ25tZW50LXJlcXVpcmUtb2JqZWN0LWNvZXJjaWJs
ZS5qcworKysgYi9KU1Rlc3RzL3N0cmVzcy9kZXN0cnVjdHVyaW5nLWFzc2lnbm1lbnQtcmVxdWly
ZS1vYmplY3QtY29lcmNpYmxlLmpzCkBAIC02NiwzICs2Niw4IEBAIHRlc3RPSyhgKHsgfSA9IC8x
LylgKTsKIHRlc3RPSyhgKHsgYSB9ID0gLzEvKWApOwogdGVzdE9LKGAoeyBhOiB7IGIgfSA9IC8x
LyB9ID0geyB9KWApOwogdGVzdE9LKGAoeyBhOiB7IGIgfSB9ID0geyBhOiAvMS8gfSlgKTsKKwor
dGVzdE9LKGAoeyB9ID0gbWFrZU1hc3F1ZXJhZGVyKCkpYCk7Cit0ZXN0T0soYCh7IGEgfSA9IG1h
a2VNYXNxdWVyYWRlcigpKWApOwordGVzdE9LKGAoeyBhOiB7IGIgfSA9IG1ha2VNYXNxdWVyYWRl
cigpIH0gPSB7IH0pYCk7Cit0ZXN0T0soYCh7IGE6IHsgYiB9IH0gPSB7IGE6IG1ha2VNYXNxdWVy
YWRlcigpIH0pYCk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>375753</attachid>
            <date>2019-08-07 14:22:18 -0700</date>
            <delta_ts>2019-08-08 10:49:40 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-200480-20190807142214.patch</filename>
            <type>text/plain</type>
            <size>19215</size>
            <attacher name="Ross Kirsling">ross.kirsling</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQ4Mzg2CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBm
NzgwZmRlNDRjOWFhZTVmODEwNTIzM2E3YjAxN2FmNzQzZDk2ODczLi5hZDU4OTJjOGU2YTkxNDgx
OTRjNmIwZDRiNDE2NzRkZmU5ZGE5OWFmIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw0NCBAQAorMjAxOS0wOC0wNyAgUm9zcyBLaXJzbGluZyAgPHJvc3Mua2lyc2xpbmdAc29u
eS5jb20+CisKKyAgICAgICAgW0pTQ10gQWRkICJqdW1wIGlmIChub3QpIHVuZGVmaW5lZCBvciBu
dWxsIiBieXRlY29kZSBvcHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTIwMDQ4MAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgIFRoaXMgcGF0Y2ggaW50cm9kdWNlcyBmdXNlZCBqdW1wcyBmb3Igb3BfaXNfdW5k
ZWZpbmVkX29yX251bGwsIHdoaWNoIGlnbm9yZXMgIm1hc3F1ZXJhZGUgYXMgdW5kZWZpbmVkIiBi
ZWhhdmlvci4KKworICAgICAgICBUaGlzIGxldHMgdXMgZml4IGEgZWRnZS1jYXNlIGJ1ZyBpbiBS
ZXF1aXJlT2JqZWN0Q29lcmNpYmxlICh3aGVyZSBgKHsgbGVuZ3RoIH0gPSBkb2N1bWVudC5hbGwp
YCB3YXMgYSBUeXBlRXJyb3IpCisgICAgICAgIGFuZCBtb3Jlb3ZlciBwcm92aWRlcyBhIHZlcnkg
dXNlZnVsIG9wdGltaXphdGlvbiBmb3IgdGhlIG5ldyA/LiBhbmQgPz8gb3BlcmF0b3JzLCB3aGlj
aCBoYXZlIHNlbWFudGljcyBjZW50ZXJlZAorICAgICAgICBhcm91bmQgb3BfanVuZGVmaW5lZF9v
cl9udWxsIGFuZCBvcF9qbnVuZGVmaW5lZF9vcl9udWxsLCByZXNwZWN0aXZlbHkuCisKKyAgICAg
ICAgKiBieXRlY29kZS9CeXRlY29kZUxpc3QucmI6CisgICAgICAgICogYnl0ZWNvZGUvQnl0ZWNv
ZGVVc2VEZWYuaDoKKyAgICAgICAgKEpTQzo6Y29tcHV0ZVVzZXNGb3JCeXRlY29kZU9mZnNldCk6
CisgICAgICAgIChKU0M6OmNvbXB1dGVEZWZzRm9yQnl0ZWNvZGVPZmZzZXQpOgorICAgICAgICAq
IGJ5dGVjb2RlL09wY29kZS5oOgorICAgICAgICAoSlNDOjppc0JyYW5jaCk6CisgICAgICAgICog
Ynl0ZWNvZGUvUHJlY2lzZUp1bXBUYXJnZXRzSW5saW5lcy5oOgorICAgICAgICAqIGJ5dGVjb21w
aWxlci9CeXRlY29kZUdlbmVyYXRvci5jcHA6CisgICAgICAgIChKU0M6OkxhYmVsOjpzZXRMb2Nh
dGlvbik6CisgICAgICAgIChKU0M6OkJ5dGVjb2RlR2VuZXJhdG9yOjplbWl0SnVtcElmVHJ1ZSk6
CisgICAgICAgIChKU0M6OkJ5dGVjb2RlR2VuZXJhdG9yOjplbWl0SnVtcElmRmFsc2UpOgorICAg
ICAgICAoSlNDOjpCeXRlY29kZUdlbmVyYXRvcjo6ZW1pdFJlcXVpcmVPYmplY3RDb2VyY2libGUp
OgorICAgICAgICAqIGRmZy9ERkdCeXRlQ29kZVBhcnNlci5jcHA6CisgICAgICAgIChKU0M6OkRG
Rzo6Qnl0ZUNvZGVQYXJzZXI6OnBhcnNlQmxvY2spOgorICAgICAgICAqIGRmZy9ERkdDYXBhYmls
aXRpZXMuY3BwOgorICAgICAgICAoSlNDOjpERkc6OmNhcGFiaWxpdHlMZXZlbCk6CisgICAgICAg
ICogaml0L0pJVC5jcHA6CisgICAgICAgIChKU0M6OkpJVDo6cHJpdmF0ZUNvbXBpbGVNYWluUGFz
cyk6CisgICAgICAgICogaml0L0pJVC5oOgorICAgICAgICAqIGppdC9KSVRPcGNvZGVzLmNwcDoK
KyAgICAgICAgKEpTQzo6SklUOjplbWl0X29wX2p1bmRlZmluZWRfb3JfbnVsbCk6IEFkZGVkLgor
ICAgICAgICAoSlNDOjpKSVQ6OmVtaXRfb3Bfam51bmRlZmluZWRfb3JfbnVsbCk6IEFkZGVkLgor
ICAgICAgICAqIGppdC9KSVRPcGNvZGVzMzJfNjQuY3BwOgorICAgICAgICAoSlNDOjpKSVQ6OmVt
aXRfb3BfanVuZGVmaW5lZF9vcl9udWxsKTogQWRkZWQuCisgICAgICAgIChKU0M6OkpJVDo6ZW1p
dF9vcF9qbnVuZGVmaW5lZF9vcl9udWxsKTogQWRkZWQuCisgICAgICAgICogbGxpbnQvTG93TGV2
ZWxJbnRlcnByZXRlcjMyXzY0LmFzbToKKyAgICAgICAgKiBsbGludC9Mb3dMZXZlbEludGVycHJl
dGVyNjQuYXNtOgorCiAyMDE5LTA4LTA3ICBEZXZpbiBSb3Vzc28gIDxkcm91c3NvQGFwcGxlLmNv
bT4KIAogICAgICAgICBSZWJhc2UgaW5zcGVjdG9yIGdlbmVyYXRvciB0ZXN0cy4KZGlmZiAtLWdp
dCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9CeXRlY29kZUxpc3QucmIgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQnl0ZWNvZGVMaXN0LnJiCmluZGV4IDI5ZDdlNGI5
ZWQ4NDcwYmU3ZDFlYzFmNGMzYmJlMGIyNDU2NjVkMzQuLjY3ZThhMjA4OWY4NjBmYmJkOWIxMDZl
OWJhODNiODFmOTUzNzAxMTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRl
Y29kZS9CeXRlY29kZUxpc3QucmIKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2Rl
L0J5dGVjb2RlTGlzdC5yYgpAQCAtNjI1LDYgKzYyNSwxOCBAQCBvcCA6am5lcV9udWxsLAogICAg
ICAgICB0YXJnZXRMYWJlbDogQm91bmRMYWJlbCwKICAgICB9CiAKK29wIDpqdW5kZWZpbmVkX29y
X251bGwsCisgICAgYXJnczogeworICAgICAgICB2YWx1ZTogVmlydHVhbFJlZ2lzdGVyLAorICAg
ICAgICB0YXJnZXRMYWJlbDogQm91bmRMYWJlbCwKKyAgICB9CisKK29wIDpqbnVuZGVmaW5lZF9v
cl9udWxsLAorICAgIGFyZ3M6IHsKKyAgICAgICAgdmFsdWU6IFZpcnR1YWxSZWdpc3RlciwKKyAg
ICAgICAgdGFyZ2V0TGFiZWw6IEJvdW5kTGFiZWwsCisgICAgfQorCiBvcCA6am5lcV9wdHIsCiAg
ICAgYXJnczogewogICAgICAgICB2YWx1ZTogVmlydHVhbFJlZ2lzdGVyLApkaWZmIC0tZ2l0IGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0J5dGVjb2RlVXNlRGVmLmggYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQnl0ZWNvZGVVc2VEZWYuaAppbmRleCA0OTYyYzc2MTgw
NDRiYjE0N2E2M2ExMTg0NzNkMTMyODUzOTFmMmYxLi44ZGU3NWExZDk1NjFmMGZhZTU1MmZiYTkz
NzYwMjI5M2Y4MjgwYmI5IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNv
ZGUvQnl0ZWNvZGVVc2VEZWYuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUv
Qnl0ZWNvZGVVc2VEZWYuaApAQCAtMTA3LDYgKzEwNyw4IEBAIHZvaWQgY29tcHV0ZVVzZXNGb3JC
eXRlY29kZU9mZnNldChCbG9jayogY29kZUJsb2NrLCBPcGNvZGVJRCBvcGNvZGVJRCwgY29uc3Qg
SW5zCiAgICAgVVNFUyhPcEpmYWxzZSwgY29uZGl0aW9uKQogICAgIFVTRVMoT3BKZXFOdWxsLCB2
YWx1ZSkKICAgICBVU0VTKE9wSm5lcU51bGwsIHZhbHVlKQorICAgIFVTRVMoT3BKdW5kZWZpbmVk
T3JOdWxsLCB2YWx1ZSkKKyAgICBVU0VTKE9wSm51bmRlZmluZWRPck51bGwsIHZhbHVlKQogICAg
IFVTRVMoT3BEZWMsIHNyY0RzdCkKICAgICBVU0VTKE9wSW5jLCBzcmNEc3QpCiAgICAgVVNFUyhP
cExvZ1NoYWRvd0NoaWNrZW5Qcm9sb2d1ZSwgc2NvcGUpCkBAIC0zMDcsNiArMzA5LDggQEAgdm9p
ZCBjb21wdXRlRGVmc0ZvckJ5dGVjb2RlT2Zmc2V0KEJsb2NrKiBjb2RlQmxvY2ssIE9wY29kZUlE
IG9wY29kZUlELCBjb25zdCBJbnMKICAgICBjYXNlIG9wX2pmYWxzZToKICAgICBjYXNlIG9wX2pl
cV9udWxsOgogICAgIGNhc2Ugb3Bfam5lcV9udWxsOgorICAgIGNhc2Ugb3BfanVuZGVmaW5lZF9v
cl9udWxsOgorICAgIGNhc2Ugb3Bfam51bmRlZmluZWRfb3JfbnVsbDoKICAgICBjYXNlIG9wX2pu
ZXFfcHRyOgogICAgIGNhc2Ugb3Bfamxlc3M6CiAgICAgY2FzZSBvcF9qbGVzc2VxOgpkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL09wY29kZS5oIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2J5dGVjb2RlL09wY29kZS5oCmluZGV4IDcwY2UwNWI3MmQ2OTRmMDcwNTlm
ODBkYTU4YTBiNjkxZDMwZTQxOWIuLjliNGE3ZmFjNWQyZWViOTJkNmVlZmUzYjg1ODQ0ZDJmMGE5
MjIxYWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9PcGNvZGUu
aAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvT3Bjb2RlLmgKQEAgLTE3Myw2
ICsxNzMsOCBAQCBpbmxpbmUgYm9vbCBpc0JyYW5jaChPcGNvZGVJRCBvcGNvZGVJRCkKICAgICBj
YXNlIG9wX2pmYWxzZToKICAgICBjYXNlIG9wX2plcV9udWxsOgogICAgIGNhc2Ugb3Bfam5lcV9u
dWxsOgorICAgIGNhc2Ugb3BfanVuZGVmaW5lZF9vcl9udWxsOgorICAgIGNhc2Ugb3Bfam51bmRl
ZmluZWRfb3JfbnVsbDoKICAgICBjYXNlIG9wX2puZXFfcHRyOgogICAgIGNhc2Ugb3Bfamxlc3M6
CiAgICAgY2FzZSBvcF9qbGVzc2VxOgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2J5dGVjb2RlL1ByZWNpc2VKdW1wVGFyZ2V0c0lubGluZXMuaCBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ieXRlY29kZS9QcmVjaXNlSnVtcFRhcmdldHNJbmxpbmVzLmgKaW5kZXggNGRkMTg5ZDY1
N2Q5MmFjODBiNDM1M2FiZDE5NjBlNGU3MGJlYjBjMi4uOTAwNTJiNWI3MzIzYjQ3NGFmYWNiMTA1
YzA4MWYzMzdmOTZhNDlkNiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVj
b2RlL1ByZWNpc2VKdW1wVGFyZ2V0c0lubGluZXMuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvYnl0ZWNvZGUvUHJlY2lzZUp1bXBUYXJnZXRzSW5saW5lcy5oCkBAIC00MCw2ICs0MCw4IEBA
IG5hbWVzcGFjZSBKU0MgewogICAgIENBU0VfT1AoT3BKZmFsc2UpIFwKICAgICBDQVNFX09QKE9w
SmVxTnVsbCkgXAogICAgIENBU0VfT1AoT3BKbmVxTnVsbCkgXAorICAgIENBU0VfT1AoT3BKdW5k
ZWZpbmVkT3JOdWxsKSBcCisgICAgQ0FTRV9PUChPcEpudW5kZWZpbmVkT3JOdWxsKSBcCiAgICAg
Q0FTRV9PUChPcEpuZXFQdHIpIFwKICAgICBcCiAgICAgQ0FTRV9PUChPcEpsZXNzKSBcCmRpZmYg
LS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvbXBpbGVyL0J5dGVjb2RlR2VuZXJh
dG9yLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29tcGlsZXIvQnl0ZWNvZGVHZW5l
cmF0b3IuY3BwCmluZGV4IDUxNWI1OTgzZjZhMWQ1ODA1ZDJmYjQ4MWVjYzBhOTdjZDU5OWQ3Yjku
LjJjMzBhNGQ5YjQzMWIwZTU1Mjc0MWQzMjVhYzgxNDljMzhlOWQ1ODAgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29tcGlsZXIvQnl0ZWNvZGVHZW5lcmF0b3IuY3BwCisr
KyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29tcGlsZXIvQnl0ZWNvZGVHZW5lcmF0b3Iu
Y3BwCkBAIC0xMTUsNiArMTE1LDggQEAgdm9pZCBMYWJlbDo6c2V0TG9jYXRpb24oQnl0ZWNvZGVH
ZW5lcmF0b3ImIGdlbmVyYXRvciwgdW5zaWduZWQgbG9jYXRpb24pCiAgICAgICAgIENBU0UoT3BK
ZmFsc2UpCiAgICAgICAgIENBU0UoT3BKZXFOdWxsKQogICAgICAgICBDQVNFKE9wSm5lcU51bGwp
CisgICAgICAgIENBU0UoT3BKdW5kZWZpbmVkT3JOdWxsKQorICAgICAgICBDQVNFKE9wSm51bmRl
ZmluZWRPck51bGwpCiAgICAgICAgIENBU0UoT3BKZXEpCiAgICAgICAgIENBU0UoT3BKc3RyaWN0
ZXEpCiAgICAgICAgIENBU0UoT3BKbmVxKQpAQCAtMTQ4MSw2ICsxNDgzLDkgQEAgdm9pZCBCeXRl
Y29kZUdlbmVyYXRvcjo6ZW1pdEp1bXBJZlRydWUoUmVnaXN0ZXJJRCogY29uZCwgTGFiZWwmIHRh
cmdldCkKICAgICAgICAgfSBlbHNlIGlmIChtX2xhc3RPcGNvZGVJRCA9PSBvcF9uZXFfbnVsbCAm
JiB0YXJnZXQuaXNGb3J3YXJkKCkpIHsKICAgICAgICAgICAgIGlmIChmdXNlVGVzdEFuZEptcDxP
cE5lcU51bGwsIE9wSm5lcU51bGw+KGNvbmQsIHRhcmdldCkpCiAgICAgICAgICAgICAgICAgcmV0
dXJuOworICAgICAgICB9IGVsc2UgaWYgKG1fbGFzdE9wY29kZUlEID09IG9wX2lzX3VuZGVmaW5l
ZF9vcl9udWxsICYmIHRhcmdldC5pc0ZvcndhcmQoKSkgeworICAgICAgICAgICAgaWYgKGZ1c2VU
ZXN0QW5kSm1wPE9wSXNVbmRlZmluZWRPck51bGwsIE9wSnVuZGVmaW5lZE9yTnVsbD4oY29uZCwg
dGFyZ2V0KSkKKyAgICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0KICAgICB9CiAKQEAg
LTE1MjksNiArMTUzNCw5IEBAIHZvaWQgQnl0ZWNvZGVHZW5lcmF0b3I6OmVtaXRKdW1wSWZGYWxz
ZShSZWdpc3RlcklEKiBjb25kLCBMYWJlbCYgdGFyZ2V0KQogICAgICAgICB9IGVsc2UgaWYgKG1f
bGFzdE9wY29kZUlEID09IG9wX25lcV9udWxsICYmIHRhcmdldC5pc0ZvcndhcmQoKSkgewogICAg
ICAgICAgICAgaWYgKGZ1c2VUZXN0QW5kSm1wPE9wTmVxTnVsbCwgT3BKZXFOdWxsPihjb25kLCB0
YXJnZXQpKQogICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfSBlbHNlIGlmIChtX2xh
c3RPcGNvZGVJRCA9PSBvcF9pc191bmRlZmluZWRfb3JfbnVsbCAmJiB0YXJnZXQuaXNGb3J3YXJk
KCkpIHsKKyAgICAgICAgICAgIGlmIChmdXNlVGVzdEFuZEptcDxPcElzVW5kZWZpbmVkT3JOdWxs
LCBPcEpudW5kZWZpbmVkT3JOdWxsPihjb25kLCB0YXJnZXQpKQorICAgICAgICAgICAgICAgIHJl
dHVybjsKICAgICAgICAgfQogICAgIH0KIApAQCAtNDQ1NywxMCArNDQ2NSw4IEBAIFJlZ2lzdGVy
SUQqIEJ5dGVjb2RlR2VuZXJhdG9yOjplbWl0UmVzdFBhcmFtZXRlcihSZWdpc3RlcklEKiByZXN1
bHQsIHVuc2lnbmVkIG51CiAKIHZvaWQgQnl0ZWNvZGVHZW5lcmF0b3I6OmVtaXRSZXF1aXJlT2Jq
ZWN0Q29lcmNpYmxlKFJlZ2lzdGVySUQqIHZhbHVlLCBjb25zdCBTdHJpbmcmIGVycm9yKQogewot
ICAgIC8vIEZJWE1FOiBvcF9qbmVxX251bGwgdHJlYXRzICJ1bmRldGVjdGFibGUiIG9iamVjdHMg
YXMgbnVsbC91bmRlZmluZWQuIFJlcXVpcmVPYmplY3RDb2VyY2libGUKLSAgICAvLyB0aHVzIGlu
Y29ycmVjdGx5IHRocm93cyBhIFR5cGVFcnJvciBmb3IgaW50ZXJmYWNlcyBsaWtlIEhUTUxBbGxD
b2xsZWN0aW9uLgogICAgIFJlZjxMYWJlbD4gdGFyZ2V0ID0gbmV3TGFiZWwoKTsKLSAgICBPcEpu
ZXFOdWxsOjplbWl0KHRoaXMsIHZhbHVlLCB0YXJnZXQtPmJpbmQodGhpcykpOworICAgIE9wSm51
bmRlZmluZWRPck51bGw6OmVtaXQodGhpcywgdmFsdWUsIHRhcmdldC0+YmluZCh0aGlzKSk7CiAg
ICAgZW1pdFRocm93VHlwZUVycm9yKGVycm9yKTsKICAgICBlbWl0TGFiZWwodGFyZ2V0LmdldCgp
KTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQnl0ZUNvZGVQ
YXJzZXIuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdCeXRlQ29kZVBhcnNlci5j
cHAKaW5kZXggYWVjNTg3MTUyMGYyZjQ3MjE4MGEzNzk5NjUzNzQ1ZTRhM2VhZTQyMy4uZDEyNWNj
MzcxM2I1NGZiZDBhNDc0OTA1NjdmMjA4NDZmMTI2NDVkNiAxMDA2NDQKLS0tIGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2RmZy9ERkdCeXRlQ29kZVBhcnNlci5jcHAKKysrIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2RmZy9ERkdCeXRlQ29kZVBhcnNlci5jcHAKQEAgLTU3MzUsNiArNTczNSwyNCBA
QCB2b2lkIEJ5dGVDb2RlUGFyc2VyOjpwYXJzZUJsb2NrKHVuc2lnbmVkIGxpbWl0KQogICAgICAg
ICAgICAgTEFTVF9PUENPREUob3Bfam5lcV9udWxsKTsKICAgICAgICAgfQogCisgICAgICAgIGNh
c2Ugb3BfanVuZGVmaW5lZF9vcl9udWxsOiB7CisgICAgICAgICAgICBhdXRvIGJ5dGVjb2RlID0g
Y3VycmVudEluc3RydWN0aW9uLT5hczxPcEp1bmRlZmluZWRPck51bGw+KCk7CisgICAgICAgICAg
ICB1bnNpZ25lZCByZWxhdGl2ZU9mZnNldCA9IGp1bXBUYXJnZXQoYnl0ZWNvZGUubV90YXJnZXRM
YWJlbCk7CisgICAgICAgICAgICBOb2RlKiB2YWx1ZSA9IGdldChieXRlY29kZS5tX3ZhbHVlKTsK
KyAgICAgICAgICAgIE5vZGUqIGNvbmRpdGlvbiA9IGFkZFRvR3JhcGgoSXNVbmRlZmluZWRPck51
bGwsIHZhbHVlKTsKKyAgICAgICAgICAgIGFkZFRvR3JhcGgoQnJhbmNoLCBPcEluZm8oYnJhbmNo
RGF0YShtX2N1cnJlbnRJbmRleCArIHJlbGF0aXZlT2Zmc2V0LCBtX2N1cnJlbnRJbmRleCArIGN1
cnJlbnRJbnN0cnVjdGlvbi0+c2l6ZSgpKSksIGNvbmRpdGlvbik7CisgICAgICAgICAgICBMQVNU
X09QQ09ERShvcF9qdW5kZWZpbmVkX29yX251bGwpOworICAgICAgICB9CisKKyAgICAgICAgY2Fz
ZSBvcF9qbnVuZGVmaW5lZF9vcl9udWxsOiB7CisgICAgICAgICAgICBhdXRvIGJ5dGVjb2RlID0g
Y3VycmVudEluc3RydWN0aW9uLT5hczxPcEpudW5kZWZpbmVkT3JOdWxsPigpOworICAgICAgICAg
ICAgdW5zaWduZWQgcmVsYXRpdmVPZmZzZXQgPSBqdW1wVGFyZ2V0KGJ5dGVjb2RlLm1fdGFyZ2V0
TGFiZWwpOworICAgICAgICAgICAgTm9kZSogdmFsdWUgPSBnZXQoYnl0ZWNvZGUubV92YWx1ZSk7
CisgICAgICAgICAgICBOb2RlKiBjb25kaXRpb24gPSBhZGRUb0dyYXBoKElzVW5kZWZpbmVkT3JO
dWxsLCB2YWx1ZSk7CisgICAgICAgICAgICBhZGRUb0dyYXBoKEJyYW5jaCwgT3BJbmZvKGJyYW5j
aERhdGEobV9jdXJyZW50SW5kZXggKyBjdXJyZW50SW5zdHJ1Y3Rpb24tPnNpemUoKSwgbV9jdXJy
ZW50SW5kZXggKyByZWxhdGl2ZU9mZnNldCkpLCBjb25kaXRpb24pOworICAgICAgICAgICAgTEFT
VF9PUENPREUob3Bfam51bmRlZmluZWRfb3JfbnVsbCk7CisgICAgICAgIH0KKwogICAgICAgICBj
YXNlIG9wX2psZXNzOiB7CiAgICAgICAgICAgICBhdXRvIGJ5dGVjb2RlID0gY3VycmVudEluc3Ry
dWN0aW9uLT5hczxPcEpsZXNzPigpOwogICAgICAgICAgICAgdW5zaWduZWQgcmVsYXRpdmVPZmZz
ZXQgPSBqdW1wVGFyZ2V0KGJ5dGVjb2RlLm1fdGFyZ2V0TGFiZWwpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdDYXBhYmlsaXRpZXMuY3BwIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2RmZy9ERkdDYXBhYmlsaXRpZXMuY3BwCmluZGV4IGRmZTZjMTZkNTFhMDBjYWIw
M2FmOTgwMTA3NTRhOTZjNzk2OWUzNDUuLjZkM2YyMzcxY2QyNjhlZjFjYWMwMzUyMDg4MGUyMmEx
M2ZhZThjYmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQ2FwYWJp
bGl0aWVzLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0NhcGFiaWxpdGll
cy5jcHAKQEAgLTE4OCw2ICsxODgsOCBAQCBDYXBhYmlsaXR5TGV2ZWwgY2FwYWJpbGl0eUxldmVs
KE9wY29kZUlEIG9wY29kZUlELCBDb2RlQmxvY2sqIGNvZGVCbG9jaywgY29uc3QgSQogICAgIGNh
c2Ugb3BfamZhbHNlOgogICAgIGNhc2Ugb3BfamVxX251bGw6CiAgICAgY2FzZSBvcF9qbmVxX251
bGw6CisgICAgY2FzZSBvcF9qdW5kZWZpbmVkX29yX251bGw6CisgICAgY2FzZSBvcF9qbnVuZGVm
aW5lZF9vcl9udWxsOgogICAgIGNhc2Ugb3Bfamxlc3M6CiAgICAgY2FzZSBvcF9qbGVzc2VxOgog
ICAgIGNhc2Ugb3BfamdyZWF0ZXI6CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
aml0L0pJVC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVC5jcHAKaW5kZXggZjE5
NzViZmIwMTRhOTY0MTZiNzM5ZmRhMzc2YzBlOGZiMjhiMThlMS4uMDVmNzBmMWFlYWY0YzRkOWY1
MmMxMDZhYjY2ZGI5ZWNkMmVhYjhiZSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2ppdC9KSVQuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklULmNwcApAQCAt
MzY0LDYgKzM2NCw4IEBAIHZvaWQgSklUOjpwcml2YXRlQ29tcGlsZU1haW5QYXNzKCkKICAgICAg
ICAgREVGSU5FX09QKG9wX2pmYWxzZSkKICAgICAgICAgREVGSU5FX09QKG9wX2ptcCkKICAgICAg
ICAgREVGSU5FX09QKG9wX2puZXFfbnVsbCkKKyAgICAgICAgREVGSU5FX09QKG9wX2p1bmRlZmlu
ZWRfb3JfbnVsbCkKKyAgICAgICAgREVGSU5FX09QKG9wX2pudW5kZWZpbmVkX29yX251bGwpCiAg
ICAgICAgIERFRklORV9PUChvcF9qbmVxX3B0cikKICAgICAgICAgREVGSU5FX09QKG9wX2psZXNz
KQogICAgICAgICBERUZJTkVfT1Aob3Bfamxlc3NlcSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9qaXQvSklULmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVC5oCmlu
ZGV4IDY5ODk2MzYzN2ZkZmIxNzU0YTcwY2EwZDc5NmJmNThjODVkNzQ5YTAuLjkxZmU1OWFiOTYy
YmRjODBjYmYyNDZiNWFkNDVhOTgyNDBjNTJlMGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9qaXQvSklULmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVQuaApA
QCAtNTU0LDYgKzU1NCw4IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICB2b2lkIGVtaXRfb3Bf
amZhbHNlKGNvbnN0IEluc3RydWN0aW9uKik7CiAgICAgICAgIHZvaWQgZW1pdF9vcF9qbXAoY29u
c3QgSW5zdHJ1Y3Rpb24qKTsKICAgICAgICAgdm9pZCBlbWl0X29wX2puZXFfbnVsbChjb25zdCBJ
bnN0cnVjdGlvbiopOworICAgICAgICB2b2lkIGVtaXRfb3BfanVuZGVmaW5lZF9vcl9udWxsKGNv
bnN0IEluc3RydWN0aW9uKik7CisgICAgICAgIHZvaWQgZW1pdF9vcF9qbnVuZGVmaW5lZF9vcl9u
dWxsKGNvbnN0IEluc3RydWN0aW9uKik7CiAgICAgICAgIHZvaWQgZW1pdF9vcF9qbmVxX3B0cihj
b25zdCBJbnN0cnVjdGlvbiopOwogICAgICAgICB2b2lkIGVtaXRfb3Bfamxlc3MoY29uc3QgSW5z
dHJ1Y3Rpb24qKTsKICAgICAgICAgdm9pZCBlbWl0X29wX2psZXNzZXEoY29uc3QgSW5zdHJ1Y3Rp
b24qKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUT3Bjb2Rlcy5j
cHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVE9wY29kZXMuY3BwCmluZGV4IGYwNWRi
YTk2NGIyZTY3N2E4OTNiMWRkMWVmYmFkYzI0YzNlODNhNDAuLmVjYjFlMTFjNDZjMzQzYzVlNzFk
YWJlMDdlNDVmNGMxMTUwMTFiNzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9q
aXQvSklUT3Bjb2Rlcy5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRPcGNv
ZGVzLmNwcApAQCAtNDQyLDYgKzQ0MiwzMCBAQCB2b2lkIEpJVDo6ZW1pdF9vcF9qbmVxX251bGwo
Y29uc3QgSW5zdHJ1Y3Rpb24qIGN1cnJlbnRJbnN0cnVjdGlvbikKICAgICB3YXNOb3RJbW1lZGlh
dGUubGluayh0aGlzKTsKIH0KIAordm9pZCBKSVQ6OmVtaXRfb3BfanVuZGVmaW5lZF9vcl9udWxs
KGNvbnN0IEluc3RydWN0aW9uKiBjdXJyZW50SW5zdHJ1Y3Rpb24pCit7CisgICAgYXV0byBieXRl
Y29kZSA9IGN1cnJlbnRJbnN0cnVjdGlvbi0+YXM8T3BKdW5kZWZpbmVkT3JOdWxsPigpOworICAg
IGludCB2YWx1ZSA9IGJ5dGVjb2RlLm1fdmFsdWUub2Zmc2V0KCk7CisgICAgdW5zaWduZWQgdGFy
Z2V0ID0ganVtcFRhcmdldChjdXJyZW50SW5zdHJ1Y3Rpb24sIGJ5dGVjb2RlLm1fdGFyZ2V0TGFi
ZWwpOworCisgICAgZW1pdEdldFZpcnR1YWxSZWdpc3Rlcih2YWx1ZSwgcmVnVDApOworCisgICAg
YW5kNjQoVHJ1c3RlZEltbTMyKH5UYWdCaXRVbmRlZmluZWQpLCByZWdUMCk7CisgICAgYWRkSnVt
cChicmFuY2g2NChFcXVhbCwgcmVnVDAsIFRydXN0ZWRJbW02NChKU1ZhbHVlOjplbmNvZGUoanNO
dWxsKCkpKSksIHRhcmdldCk7Cit9CisKK3ZvaWQgSklUOjplbWl0X29wX2pudW5kZWZpbmVkX29y
X251bGwoY29uc3QgSW5zdHJ1Y3Rpb24qIGN1cnJlbnRJbnN0cnVjdGlvbikKK3sKKyAgICBhdXRv
IGJ5dGVjb2RlID0gY3VycmVudEluc3RydWN0aW9uLT5hczxPcEpudW5kZWZpbmVkT3JOdWxsPigp
OworICAgIGludCB2YWx1ZSA9IGJ5dGVjb2RlLm1fdmFsdWUub2Zmc2V0KCk7CisgICAgdW5zaWdu
ZWQgdGFyZ2V0ID0ganVtcFRhcmdldChjdXJyZW50SW5zdHJ1Y3Rpb24sIGJ5dGVjb2RlLm1fdGFy
Z2V0TGFiZWwpOworCisgICAgZW1pdEdldFZpcnR1YWxSZWdpc3Rlcih2YWx1ZSwgcmVnVDApOwor
CisgICAgYW5kNjQoVHJ1c3RlZEltbTMyKH5UYWdCaXRVbmRlZmluZWQpLCByZWdUMCk7CisgICAg
YWRkSnVtcChicmFuY2g2NChOb3RFcXVhbCwgcmVnVDAsIFRydXN0ZWRJbW02NChKU1ZhbHVlOjpl
bmNvZGUoanNOdWxsKCkpKSksIHRhcmdldCk7Cit9CisKIHZvaWQgSklUOjplbWl0X29wX2puZXFf
cHRyKGNvbnN0IEluc3RydWN0aW9uKiBjdXJyZW50SW5zdHJ1Y3Rpb24pCiB7CiAgICAgYXV0byBi
eXRlY29kZSA9IGN1cnJlbnRJbnN0cnVjdGlvbi0+YXM8T3BKbmVxUHRyPigpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRPcGNvZGVzMzJfNjQuY3BwIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL2ppdC9KSVRPcGNvZGVzMzJfNjQuY3BwCmluZGV4IDk0YTI2MzI3YjNh
OThkOTZhZDVmZTcwYjY2ZjVhODBiZTQ0Zjc1YWIuLjcxMzE5NmY0NTdiYWQwZWY3ZmJlZGEyMzRm
ZTdiZDBhMWMxNGZlZjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklU
T3Bjb2RlczMyXzY0LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVE9wY29k
ZXMzMl82NC5jcHAKQEAgLTQ0OSw2ICs0NDksMzAgQEAgdm9pZCBKSVQ6OmVtaXRfb3Bfam5lcV9u
dWxsKGNvbnN0IEluc3RydWN0aW9uKiBjdXJyZW50SW5zdHJ1Y3Rpb24pCiAgICAgd2FzTm90SW1t
ZWRpYXRlLmxpbmsodGhpcyk7CiB9CiAKK3ZvaWQgSklUOjplbWl0X29wX2p1bmRlZmluZWRfb3Jf
bnVsbChjb25zdCBJbnN0cnVjdGlvbiogY3VycmVudEluc3RydWN0aW9uKQoreworICAgIGF1dG8g
Ynl0ZWNvZGUgPSBjdXJyZW50SW5zdHJ1Y3Rpb24tPmFzPE9wSnVuZGVmaW5lZE9yTnVsbD4oKTsK
KyAgICBpbnQgdmFsdWUgPSBieXRlY29kZS5tX3ZhbHVlLm9mZnNldCgpOworICAgIHVuc2lnbmVk
IHRhcmdldCA9IGp1bXBUYXJnZXQoY3VycmVudEluc3RydWN0aW9uLCBieXRlY29kZS5tX3Rhcmdl
dExhYmVsKTsKKworICAgIGVtaXRMb2FkVGFnKHZhbHVlLCByZWdUMCk7CisgICAgc3RhdGljX2Fz
c2VydCgoSlNWYWx1ZTo6VW5kZWZpbmVkVGFnICsgMSA9PSBKU1ZhbHVlOjpOdWxsVGFnKSAmJiAo
SlNWYWx1ZTo6TnVsbFRhZyAmIDB4MSksICIiKTsKKyAgICBvcjMyKFRydXN0ZWRJbW0zMigxKSwg
cmVnVDApOworICAgIGFkZEp1bXAoYnJhbmNoSWZOdWxsKHJlZ1QwKSwgdGFyZ2V0KTsKK30KKwor
dm9pZCBKSVQ6OmVtaXRfb3Bfam51bmRlZmluZWRfb3JfbnVsbChjb25zdCBJbnN0cnVjdGlvbiog
Y3VycmVudEluc3RydWN0aW9uKQoreworICAgIGF1dG8gYnl0ZWNvZGUgPSBjdXJyZW50SW5zdHJ1
Y3Rpb24tPmFzPE9wSm51bmRlZmluZWRPck51bGw+KCk7CisgICAgaW50IHZhbHVlID0gYnl0ZWNv
ZGUubV92YWx1ZS5vZmZzZXQoKTsKKyAgICB1bnNpZ25lZCB0YXJnZXQgPSBqdW1wVGFyZ2V0KGN1
cnJlbnRJbnN0cnVjdGlvbiwgYnl0ZWNvZGUubV90YXJnZXRMYWJlbCk7CisKKyAgICBlbWl0TG9h
ZFRhZyh2YWx1ZSwgcmVnVDApOworICAgIHN0YXRpY19hc3NlcnQoKEpTVmFsdWU6OlVuZGVmaW5l
ZFRhZyArIDEgPT0gSlNWYWx1ZTo6TnVsbFRhZykgJiYgKEpTVmFsdWU6Ok51bGxUYWcgJiAweDEp
LCAiIik7CisgICAgb3IzMihUcnVzdGVkSW1tMzIoMSksIHJlZ1QwKTsKKyAgICBhZGRKdW1wKGJy
YW5jaElmTm90TnVsbChyZWdUMCksIHRhcmdldCk7Cit9CisKIHZvaWQgSklUOjplbWl0X29wX2pu
ZXFfcHRyKGNvbnN0IEluc3RydWN0aW9uKiBjdXJyZW50SW5zdHJ1Y3Rpb24pCiB7CiAgICAgYXV0
byBieXRlY29kZSA9IGN1cnJlbnRJbnN0cnVjdGlvbi0+YXM8T3BKbmVxUHRyPigpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xvd0xldmVsSW50ZXJwcmV0ZXIzMl82
NC5hc20gYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTG93TGV2ZWxJbnRlcnByZXRlcjMy
XzY0LmFzbQppbmRleCAzN2VmMjc5MWMxNWI2MzcwODE5NmNhOWZjNjliMWVjOGU1MGE5MTU1Li5h
YzQxNTliOGFmNWQ3MDIxZDg4NDY3NjkzNzgxYTBiMDkzMzY1YmIwIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTG93TGV2ZWxJbnRlcnByZXRlcjMyXzY0LmFzbQorKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTG93TGV2ZWxJbnRlcnByZXRlcjMyXzY0LmFz
bQpAQCAtMTY3Niw2ICsxNjc2LDI0IEBAIGVxdWFsTnVsbEp1bXBPcChqbmVxX251bGwsIE9wSm5l
cU51bGwsCiAgICAgZW5kLAogICAgIG1hY3JvICh2YWx1ZSwgdGFyZ2V0KSBiaW5lcSB2YWx1ZSwg
TnVsbFRhZywgdGFyZ2V0IGVuZCkKIAorbWFjcm8gdW5kZWZpbmVkT3JOdWxsSnVtcE9wKG9wY29k
ZU5hbWUsIG9wY29kZVN0cnVjdCwgZm4pCisgICAgbGxpbnRPcFdpdGhKdW1wKG9wXyVvcGNvZGVO
YW1lJSwgb3Bjb2RlU3RydWN0LCBtYWNybyAoc2l6ZSwgZ2V0LCBqdW1wLCBkaXNwYXRjaCkKKyAg
ICAgICAgZ2V0KG1fdmFsdWUsIHQxKQorICAgICAgICBsb2FkQ29uc3RhbnRPclZhcmlhYmxlVGFn
KHNpemUsIHQxLCB0MCkKKyAgICAgICAgb3JpIDEsIHQwCisgICAgICAgIGZuKHQwLCAudGFyZ2V0
KQorICAgICAgICBkaXNwYXRjaCgpCisKKyAgICAudGFyZ2V0OgorICAgICAgICBqdW1wKG1fdGFy
Z2V0TGFiZWwpCisgICAgZW5kKQorZW5kCisKK3VuZGVmaW5lZE9yTnVsbEp1bXBPcChqdW5kZWZp
bmVkX29yX251bGwsIE9wSnVuZGVmaW5lZE9yTnVsbCwKKyAgICBtYWNybyAodmFsdWUsIHRhcmdl
dCkgYmllcSB2YWx1ZSwgTnVsbFRhZywgdGFyZ2V0IGVuZCkKKwordW5kZWZpbmVkT3JOdWxsSnVt
cE9wKGpudW5kZWZpbmVkX29yX251bGwsIE9wSm51bmRlZmluZWRPck51bGwsCisgICAgbWFjcm8g
KHZhbHVlLCB0YXJnZXQpIGJpbmVxIHZhbHVlLCBOdWxsVGFnLCB0YXJnZXQgZW5kKQogCiBsbGlu
dE9wV2l0aE1ldGFkYXRhKG9wX2puZXFfcHRyLCBPcEpuZXFQdHIsIG1hY3JvIChzaXplLCBnZXQs
IGRpc3BhdGNoLCBtZXRhZGF0YSwgcmV0dXJuKQogICAgIGdldChtX3ZhbHVlLCB0MCkKZGlmZiAt
LWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9Mb3dMZXZlbEludGVycHJldGVyNjQu
YXNtIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xvd0xldmVsSW50ZXJwcmV0ZXI2NC5h
c20KaW5kZXggZTFlZDcyZjBlYmMxNTFjMzI2ODFmMGEyZjBiNDA5YmQwNTczZmE3Mi4uZTA5Zjg5
ODVmZTUzMTdhOGRkOWJiNDcxZWE5MmJhZGJiOGQ1MWNhYyAxMDA2NDQKLS0tIGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2xsaW50L0xvd0xldmVsSW50ZXJwcmV0ZXI2NC5hc20KKysrIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL2xsaW50L0xvd0xldmVsSW50ZXJwcmV0ZXI2NC5hc20KQEAgLTE3Njks
NiArMTc2OSwyNCBAQCBlcXVhbE51bGxKdW1wT3Aoam5lcV9udWxsLCBPcEpuZXFOdWxsLAogICAg
IGVuZCwKICAgICBtYWNybyAodmFsdWUsIHRhcmdldCkgYnFuZXEgdmFsdWUsIFZhbHVlTnVsbCwg
dGFyZ2V0IGVuZCkKIAorbWFjcm8gdW5kZWZpbmVkT3JOdWxsSnVtcE9wKG9wY29kZU5hbWUsIG9w
Y29kZVN0cnVjdCwgZm4pCisgICAgbGxpbnRPcFdpdGhKdW1wKG9wXyVvcGNvZGVOYW1lJSwgb3Bj
b2RlU3RydWN0LCBtYWNybyAoc2l6ZSwgZ2V0LCBqdW1wLCBkaXNwYXRjaCkKKyAgICAgICAgZ2V0
KG1fdmFsdWUsIHQxKQorICAgICAgICBsb2FkQ29uc3RhbnRPclZhcmlhYmxlKHNpemUsIHQxLCB0
MCkKKyAgICAgICAgYW5kcSB+VGFnQml0VW5kZWZpbmVkLCB0MAorICAgICAgICBmbih0MCwgLnRh
cmdldCkKKyAgICAgICAgZGlzcGF0Y2goKQorCisgICAgLnRhcmdldDoKKyAgICAgICAganVtcCht
X3RhcmdldExhYmVsKQorICAgIGVuZCkKK2VuZAorCit1bmRlZmluZWRPck51bGxKdW1wT3AoanVu
ZGVmaW5lZF9vcl9udWxsLCBPcEp1bmRlZmluZWRPck51bGwsCisgICAgbWFjcm8gKHZhbHVlLCB0
YXJnZXQpIGJxZXEgdmFsdWUsIFZhbHVlTnVsbCwgdGFyZ2V0IGVuZCkKKwordW5kZWZpbmVkT3JO
dWxsSnVtcE9wKGpudW5kZWZpbmVkX29yX251bGwsIE9wSm51bmRlZmluZWRPck51bGwsCisgICAg
bWFjcm8gKHZhbHVlLCB0YXJnZXQpIGJxbmVxIHZhbHVlLCBWYWx1ZU51bGwsIHRhcmdldCBlbmQp
CiAKIGxsaW50T3BXaXRoTWV0YWRhdGEob3Bfam5lcV9wdHIsIE9wSm5lcVB0ciwgbWFjcm8gKHNp
emUsIGdldCwgZGlzcGF0Y2gsIG1ldGFkYXRhLCByZXR1cm4pCiAgICAgZ2V0KG1fdmFsdWUsIHQw
KQpkaWZmIC0tZ2l0IGEvSlNUZXN0cy9DaGFuZ2VMb2cgYi9KU1Rlc3RzL0NoYW5nZUxvZwppbmRl
eCBiMjQ3MzJkMWUzMmY4M2MxYzg5OGFkMzdjMTBlYWE3M2IzZGNjM2I0Li40MDFjZGE4MDQ3NWUw
OTQ4NTJjMzRkZWMyZTQ5M2U4ODg0NTFhMDNiIDEwMDY0NAotLS0gYS9KU1Rlc3RzL0NoYW5nZUxv
ZworKysgYi9KU1Rlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEzIEBACisyMDE5LTA4LTA3ICBS
b3NzIEtpcnNsaW5nICA8cm9zcy5raXJzbGluZ0Bzb255LmNvbT4KKworICAgICAgICBbSlNDXSBB
ZGQgImp1bXAgaWYgKG5vdCkgdW5kZWZpbmVkIG9yIG51bGwiIGJ5dGVjb2RlIG9wcworICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjAwNDgwCisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBzdHJlc3MvZGVzdHJ1
Y3R1cmluZy1hc3NpZ25tZW50LXJlcXVpcmUtb2JqZWN0LWNvZXJjaWJsZS5qczoKKyAgICAgICAg
KiBzdHJlc3MvbnVsbGlzaC1jb2FsZXNjaW5nLmpzOgorCiAyMDE5LTA4LTA1ICBNaWNoYWVsIFNh
Ym9mZiAgPG1zYWJvZmZAYXBwbGUuY29tPgogCiAgICAgICAgIEpTQzogYXNzZXJ0aW9uIGZhaWx1
cmUgaW4gU3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVHZXRCeVZhbE9uSW50VHlwZWRBcnJheQpkaWZm
IC0tZ2l0IGEvSlNUZXN0cy9zdHJlc3MvZGVzdHJ1Y3R1cmluZy1hc3NpZ25tZW50LXJlcXVpcmUt
b2JqZWN0LWNvZXJjaWJsZS5qcyBiL0pTVGVzdHMvc3RyZXNzL2Rlc3RydWN0dXJpbmctYXNzaWdu
bWVudC1yZXF1aXJlLW9iamVjdC1jb2VyY2libGUuanMKaW5kZXggYzI1YmIxYjU3MmJmMGJkMDlh
NDUxY2I2Y2E0NTk4YTM3YjA5Y2NjYS4uYjc2MTRlYjFjMWRmYjQ4Njc2ODgxMGE4ZjFjNDJhODBh
MmU0YTZmYyAxMDA2NDQKLS0tIGEvSlNUZXN0cy9zdHJlc3MvZGVzdHJ1Y3R1cmluZy1hc3NpZ25t
ZW50LXJlcXVpcmUtb2JqZWN0LWNvZXJjaWJsZS5qcworKysgYi9KU1Rlc3RzL3N0cmVzcy9kZXN0
cnVjdHVyaW5nLWFzc2lnbm1lbnQtcmVxdWlyZS1vYmplY3QtY29lcmNpYmxlLmpzCkBAIC02Niwz
ICs2Niw4IEBAIHRlc3RPSyhgKHsgfSA9IC8xLylgKTsKIHRlc3RPSyhgKHsgYSB9ID0gLzEvKWAp
OwogdGVzdE9LKGAoeyBhOiB7IGIgfSA9IC8xLyB9ID0geyB9KWApOwogdGVzdE9LKGAoeyBhOiB7
IGIgfSB9ID0geyBhOiAvMS8gfSlgKTsKKwordGVzdE9LKGAoeyB9ID0gbWFrZU1hc3F1ZXJhZGVy
KCkpYCk7Cit0ZXN0T0soYCh7IGEgfSA9IG1ha2VNYXNxdWVyYWRlcigpKWApOwordGVzdE9LKGAo
eyBhOiB7IGIgfSA9IG1ha2VNYXNxdWVyYWRlcigpIH0gPSB7IH0pYCk7Cit0ZXN0T0soYCh7IGE6
IHsgYiB9IH0gPSB7IGE6IG1ha2VNYXNxdWVyYWRlcigpIH0pYCk7CmRpZmYgLS1naXQgYS9KU1Rl
c3RzL3N0cmVzcy9udWxsaXNoLWNvYWxlc2NpbmcuanMgYi9KU1Rlc3RzL3N0cmVzcy9udWxsaXNo
LWNvYWxlc2NpbmcuanMKaW5kZXggNTk1OGYxMjczYWIxNjQ3MTMwYTZlZDZlMWI4NmU1ZTFmNDRh
N2M0ZS4uYzMzMTQ4NjU1NDliYjBiZTEwYzYwZmQ5NWFhMTM0ZjdmMjhlZTY5MCAxMDA2NDQKLS0t
IGEvSlNUZXN0cy9zdHJlc3MvbnVsbGlzaC1jb2FsZXNjaW5nLmpzCisrKyBiL0pTVGVzdHMvc3Ry
ZXNzL251bGxpc2gtY29hbGVzY2luZy5qcwpAQCAtNCw2ICs0LDcgQEAgZnVuY3Rpb24gc2hvdWxk
QmUoYWN0dWFsLCBleHBlY3RlZCkgewogICAgIGlmIChhY3R1YWwgIT09IGV4cGVjdGVkKQogICAg
ICAgICB0aHJvdyBuZXcgRXJyb3IoYGV4cGVjdGVkICR7ZXhwZWN0ZWR9IGJ1dCBnb3QgJHthY3R1
YWx9YCk7CiB9Citub0lubGluZShzaG91bGRCZSk7CiAKIGZ1bmN0aW9uIHNob3VsZE5vdFRocm93
KHNjcmlwdCkgewogICAgIGV2YWwoc2NyaXB0KTsKQEAgLTIxLDE5ICsyMiwyMSBAQCBmdW5jdGlv
biBzaG91bGRUaHJvd1N5bnRheEVycm9yKHNjcmlwdCkgewogICAgICAgICB0aHJvdyBuZXcgRXJy
b3IoJ0V4cGVjdGVkIFN5bnRheEVycm9yIScpOwogfQogCi1zaG91bGRCZSh1bmRlZmluZWQgPz8g
MywgMyk7Ci1zaG91bGRCZShudWxsID8/IDMsIDMpOwotc2hvdWxkQmUodHJ1ZSA/PyAzLCB0cnVl
KTsKLXNob3VsZEJlKGZhbHNlID8/IDMsIGZhbHNlKTsKLXNob3VsZEJlKDAgPz8gMywgMCk7Ci1z
aG91bGRCZSgxID8/IDMsIDEpOwotc2hvdWxkQmUoJycgPz8gMywgJycpOwotc2hvdWxkQmUoJ2hp
JyA/PyAzLCAnaGknKTsKLXNob3VsZEJlKCh7fSA/PyAzKSBpbnN0YW5jZW9mIE9iamVjdCwgdHJ1
ZSk7Ci1zaG91bGRCZSgoeyB4OiAnaGknIH0gPz8gMykueCwgJ2hpJyk7Ci1zaG91bGRCZSgoW10g
Pz8gMykgaW5zdGFuY2VvZiBBcnJheSwgdHJ1ZSk7Ci1zaG91bGRCZSgoWydoaSddID8/IDMpWzBd
LCAnaGknKTsKLXNob3VsZEJlKChtYWtlTWFzcXVlcmFkZXIoKSA/PyAzKSA9PSBudWxsLCB0cnVl
KTsKK2ZvciAobGV0IGkgPSAwOyBpIDwgMWU1OyBpKyspIHsKKyAgICBzaG91bGRCZSh1bmRlZmlu
ZWQgPz8gMywgMyk7CisgICAgc2hvdWxkQmUobnVsbCA/PyAzLCAzKTsKKyAgICBzaG91bGRCZSh0
cnVlID8/IDMsIHRydWUpOworICAgIHNob3VsZEJlKGZhbHNlID8/IDMsIGZhbHNlKTsKKyAgICBz
aG91bGRCZSgwID8/IDMsIDApOworICAgIHNob3VsZEJlKDEgPz8gMywgMSk7CisgICAgc2hvdWxk
QmUoJycgPz8gMywgJycpOworICAgIHNob3VsZEJlKCdoaScgPz8gMywgJ2hpJyk7CisgICAgc2hv
dWxkQmUoKHt9ID8/IDMpIGluc3RhbmNlb2YgT2JqZWN0LCB0cnVlKTsKKyAgICBzaG91bGRCZSgo
eyB4OiAnaGknIH0gPz8gMykueCwgJ2hpJyk7CisgICAgc2hvdWxkQmUoKFtdID8/IDMpIGluc3Rh
bmNlb2YgQXJyYXksIHRydWUpOworICAgIHNob3VsZEJlKChbJ2hpJ10gPz8gMylbMF0sICdoaScp
OworICAgIHNob3VsZEJlKChtYWtlTWFzcXVlcmFkZXIoKSA/PyAzKSA9PSBudWxsLCB0cnVlKTsK
K30KIAogc2hvdWxkQmUoMSB8IG51bGwgPz8gMywgMSk7CiBzaG91bGRCZSgxIF4gbnVsbCA/PyAz
LCAxKTsK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>375819</attachid>
            <date>2019-08-08 10:49:42 -0700</date>
            <delta_ts>2019-08-08 11:23:25 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-200480-20190808104941.patch</filename>
            <type>text/plain</type>
            <size>19056</size>
            <attacher name="Ross Kirsling">ross.kirsling</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQ4Mzg2CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBm
NzgwZmRlNDRjOWFhZTVmODEwNTIzM2E3YjAxN2FmNzQzZDk2ODczLi5kZTgyMzFiODBiMmQ1ZWVm
NDQ3MTNjZWNiZjU5MTg1ZGFkYzUyY2Y3IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw0NCBAQAorMjAxOS0wOC0wNyAgUm9zcyBLaXJzbGluZyAgPHJvc3Mua2lyc2xpbmdAc29u
eS5jb20+CisKKyAgICAgICAgW0pTQ10gQWRkICJqdW1wIGlmIChub3QpIHVuZGVmaW5lZCBvciBu
dWxsIiBieXRlY29kZSBvcHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTIwMDQ4MAorCisgICAgICAgIFJldmlld2VkIGJ5IFNhYW0gQmFyYXRpLgorCisg
ICAgICAgIFRoaXMgcGF0Y2ggaW50cm9kdWNlcyBmdXNlZCBqdW1wcyBmb3Igb3BfaXNfdW5kZWZp
bmVkX29yX251bGwsIHdoaWNoIGlnbm9yZXMgIm1hc3F1ZXJhZGUgYXMgdW5kZWZpbmVkIiBiZWhh
dmlvci4KKworICAgICAgICBUaGlzIGxldHMgdXMgZml4IGEgZWRnZS1jYXNlIGJ1ZyBpbiBSZXF1
aXJlT2JqZWN0Q29lcmNpYmxlICh3aGVyZSBgKHsgbGVuZ3RoIH0gPSBkb2N1bWVudC5hbGwpYCB3
YXMgYSBUeXBlRXJyb3IpCisgICAgICAgIGFuZCBtb3Jlb3ZlciBwcm92aWRlcyBhIHZlcnkgdXNl
ZnVsIG9wdGltaXphdGlvbiBmb3IgdGhlIG5ldyA/LiBhbmQgPz8gb3BlcmF0b3JzLCB3aGljaCBo
YXZlIHNlbWFudGljcyBjZW50ZXJlZAorICAgICAgICBhcm91bmQgb3BfanVuZGVmaW5lZF9vcl9u
dWxsIGFuZCBvcF9qbnVuZGVmaW5lZF9vcl9udWxsLCByZXNwZWN0aXZlbHkuCisKKyAgICAgICAg
KiBieXRlY29kZS9CeXRlY29kZUxpc3QucmI6CisgICAgICAgICogYnl0ZWNvZGUvQnl0ZWNvZGVV
c2VEZWYuaDoKKyAgICAgICAgKEpTQzo6Y29tcHV0ZVVzZXNGb3JCeXRlY29kZU9mZnNldCk6Cisg
ICAgICAgIChKU0M6OmNvbXB1dGVEZWZzRm9yQnl0ZWNvZGVPZmZzZXQpOgorICAgICAgICAqIGJ5
dGVjb2RlL09wY29kZS5oOgorICAgICAgICAoSlNDOjppc0JyYW5jaCk6CisgICAgICAgICogYnl0
ZWNvZGUvUHJlY2lzZUp1bXBUYXJnZXRzSW5saW5lcy5oOgorICAgICAgICAqIGJ5dGVjb21waWxl
ci9CeXRlY29kZUdlbmVyYXRvci5jcHA6CisgICAgICAgIChKU0M6OkxhYmVsOjpzZXRMb2NhdGlv
bik6CisgICAgICAgIChKU0M6OkJ5dGVjb2RlR2VuZXJhdG9yOjplbWl0SnVtcElmVHJ1ZSk6Cisg
ICAgICAgIChKU0M6OkJ5dGVjb2RlR2VuZXJhdG9yOjplbWl0SnVtcElmRmFsc2UpOgorICAgICAg
ICAoSlNDOjpCeXRlY29kZUdlbmVyYXRvcjo6ZW1pdFJlcXVpcmVPYmplY3RDb2VyY2libGUpOgor
ICAgICAgICAqIGRmZy9ERkdCeXRlQ29kZVBhcnNlci5jcHA6CisgICAgICAgIChKU0M6OkRGRzo6
Qnl0ZUNvZGVQYXJzZXI6OnBhcnNlQmxvY2spOgorICAgICAgICAqIGRmZy9ERkdDYXBhYmlsaXRp
ZXMuY3BwOgorICAgICAgICAoSlNDOjpERkc6OmNhcGFiaWxpdHlMZXZlbCk6CisgICAgICAgICog
aml0L0pJVC5jcHA6CisgICAgICAgIChKU0M6OkpJVDo6cHJpdmF0ZUNvbXBpbGVNYWluUGFzcyk6
CisgICAgICAgICogaml0L0pJVC5oOgorICAgICAgICAqIGppdC9KSVRPcGNvZGVzLmNwcDoKKyAg
ICAgICAgKEpTQzo6SklUOjplbWl0X29wX2p1bmRlZmluZWRfb3JfbnVsbCk6IEFkZGVkLgorICAg
ICAgICAoSlNDOjpKSVQ6OmVtaXRfb3Bfam51bmRlZmluZWRfb3JfbnVsbCk6IEFkZGVkLgorICAg
ICAgICAqIGppdC9KSVRPcGNvZGVzMzJfNjQuY3BwOgorICAgICAgICAoSlNDOjpKSVQ6OmVtaXRf
b3BfanVuZGVmaW5lZF9vcl9udWxsKTogQWRkZWQuCisgICAgICAgIChKU0M6OkpJVDo6ZW1pdF9v
cF9qbnVuZGVmaW5lZF9vcl9udWxsKTogQWRkZWQuCisgICAgICAgICogbGxpbnQvTG93TGV2ZWxJ
bnRlcnByZXRlcjMyXzY0LmFzbToKKyAgICAgICAgKiBsbGludC9Mb3dMZXZlbEludGVycHJldGVy
NjQuYXNtOgorCiAyMDE5LTA4LTA3ICBEZXZpbiBSb3Vzc28gIDxkcm91c3NvQGFwcGxlLmNvbT4K
IAogICAgICAgICBSZWJhc2UgaW5zcGVjdG9yIGdlbmVyYXRvciB0ZXN0cy4KZGlmZiAtLWdpdCBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9CeXRlY29kZUxpc3QucmIgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQnl0ZWNvZGVMaXN0LnJiCmluZGV4IDI5ZDdlNGI5ZWQ4
NDcwYmU3ZDFlYzFmNGMzYmJlMGIyNDU2NjVkMzQuLjY3ZThhMjA4OWY4NjBmYmJkOWIxMDZlOWJh
ODNiODFmOTUzNzAxMTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29k
ZS9CeXRlY29kZUxpc3QucmIKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0J5
dGVjb2RlTGlzdC5yYgpAQCAtNjI1LDYgKzYyNSwxOCBAQCBvcCA6am5lcV9udWxsLAogICAgICAg
ICB0YXJnZXRMYWJlbDogQm91bmRMYWJlbCwKICAgICB9CiAKK29wIDpqdW5kZWZpbmVkX29yX251
bGwsCisgICAgYXJnczogeworICAgICAgICB2YWx1ZTogVmlydHVhbFJlZ2lzdGVyLAorICAgICAg
ICB0YXJnZXRMYWJlbDogQm91bmRMYWJlbCwKKyAgICB9CisKK29wIDpqbnVuZGVmaW5lZF9vcl9u
dWxsLAorICAgIGFyZ3M6IHsKKyAgICAgICAgdmFsdWU6IFZpcnR1YWxSZWdpc3RlciwKKyAgICAg
ICAgdGFyZ2V0TGFiZWw6IEJvdW5kTGFiZWwsCisgICAgfQorCiBvcCA6am5lcV9wdHIsCiAgICAg
YXJnczogewogICAgICAgICB2YWx1ZTogVmlydHVhbFJlZ2lzdGVyLApkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0J5dGVjb2RlVXNlRGVmLmggYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvYnl0ZWNvZGUvQnl0ZWNvZGVVc2VEZWYuaAppbmRleCA0OTYyYzc2MTgwNDRi
YjE0N2E2M2ExMTg0NzNkMTMyODUzOTFmMmYxLi44ZGU3NWExZDk1NjFmMGZhZTU1MmZiYTkzNzYw
MjI5M2Y4MjgwYmI5IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUv
Qnl0ZWNvZGVVc2VEZWYuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQnl0
ZWNvZGVVc2VEZWYuaApAQCAtMTA3LDYgKzEwNyw4IEBAIHZvaWQgY29tcHV0ZVVzZXNGb3JCeXRl
Y29kZU9mZnNldChCbG9jayogY29kZUJsb2NrLCBPcGNvZGVJRCBvcGNvZGVJRCwgY29uc3QgSW5z
CiAgICAgVVNFUyhPcEpmYWxzZSwgY29uZGl0aW9uKQogICAgIFVTRVMoT3BKZXFOdWxsLCB2YWx1
ZSkKICAgICBVU0VTKE9wSm5lcU51bGwsIHZhbHVlKQorICAgIFVTRVMoT3BKdW5kZWZpbmVkT3JO
dWxsLCB2YWx1ZSkKKyAgICBVU0VTKE9wSm51bmRlZmluZWRPck51bGwsIHZhbHVlKQogICAgIFVT
RVMoT3BEZWMsIHNyY0RzdCkKICAgICBVU0VTKE9wSW5jLCBzcmNEc3QpCiAgICAgVVNFUyhPcExv
Z1NoYWRvd0NoaWNrZW5Qcm9sb2d1ZSwgc2NvcGUpCkBAIC0zMDcsNiArMzA5LDggQEAgdm9pZCBj
b21wdXRlRGVmc0ZvckJ5dGVjb2RlT2Zmc2V0KEJsb2NrKiBjb2RlQmxvY2ssIE9wY29kZUlEIG9w
Y29kZUlELCBjb25zdCBJbnMKICAgICBjYXNlIG9wX2pmYWxzZToKICAgICBjYXNlIG9wX2plcV9u
dWxsOgogICAgIGNhc2Ugb3Bfam5lcV9udWxsOgorICAgIGNhc2Ugb3BfanVuZGVmaW5lZF9vcl9u
dWxsOgorICAgIGNhc2Ugb3Bfam51bmRlZmluZWRfb3JfbnVsbDoKICAgICBjYXNlIG9wX2puZXFf
cHRyOgogICAgIGNhc2Ugb3Bfamxlc3M6CiAgICAgY2FzZSBvcF9qbGVzc2VxOgpkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL09wY29kZS5oIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2J5dGVjb2RlL09wY29kZS5oCmluZGV4IDcwY2UwNWI3MmQ2OTRmMDcwNTlmODBk
YTU4YTBiNjkxZDMwZTQxOWIuLjliNGE3ZmFjNWQyZWViOTJkNmVlZmUzYjg1ODQ0ZDJmMGE5MjIx
YWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9PcGNvZGUuaAor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvT3Bjb2RlLmgKQEAgLTE3Myw2ICsx
NzMsOCBAQCBpbmxpbmUgYm9vbCBpc0JyYW5jaChPcGNvZGVJRCBvcGNvZGVJRCkKICAgICBjYXNl
IG9wX2pmYWxzZToKICAgICBjYXNlIG9wX2plcV9udWxsOgogICAgIGNhc2Ugb3Bfam5lcV9udWxs
OgorICAgIGNhc2Ugb3BfanVuZGVmaW5lZF9vcl9udWxsOgorICAgIGNhc2Ugb3Bfam51bmRlZmlu
ZWRfb3JfbnVsbDoKICAgICBjYXNlIG9wX2puZXFfcHRyOgogICAgIGNhc2Ugb3Bfamxlc3M6CiAg
ICAgY2FzZSBvcF9qbGVzc2VxOgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5
dGVjb2RlL1ByZWNpc2VKdW1wVGFyZ2V0c0lubGluZXMuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ieXRlY29kZS9QcmVjaXNlSnVtcFRhcmdldHNJbmxpbmVzLmgKaW5kZXggNGRkMTg5ZDY1N2Q5
MmFjODBiNDM1M2FiZDE5NjBlNGU3MGJlYjBjMi4uOTAwNTJiNWI3MzIzYjQ3NGFmYWNiMTA1YzA4
MWYzMzdmOTZhNDlkNiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2Rl
L1ByZWNpc2VKdW1wVGFyZ2V0c0lubGluZXMuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
Ynl0ZWNvZGUvUHJlY2lzZUp1bXBUYXJnZXRzSW5saW5lcy5oCkBAIC00MCw2ICs0MCw4IEBAIG5h
bWVzcGFjZSBKU0MgewogICAgIENBU0VfT1AoT3BKZmFsc2UpIFwKICAgICBDQVNFX09QKE9wSmVx
TnVsbCkgXAogICAgIENBU0VfT1AoT3BKbmVxTnVsbCkgXAorICAgIENBU0VfT1AoT3BKdW5kZWZp
bmVkT3JOdWxsKSBcCisgICAgQ0FTRV9PUChPcEpudW5kZWZpbmVkT3JOdWxsKSBcCiAgICAgQ0FT
RV9PUChPcEpuZXFQdHIpIFwKICAgICBcCiAgICAgQ0FTRV9PUChPcEpsZXNzKSBcCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvbXBpbGVyL0J5dGVjb2RlR2VuZXJhdG9y
LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29tcGlsZXIvQnl0ZWNvZGVHZW5lcmF0
b3IuY3BwCmluZGV4IDUxNWI1OTgzZjZhMWQ1ODA1ZDJmYjQ4MWVjYzBhOTdjZDU5OWQ3YjkuLjJj
MzBhNGQ5YjQzMWIwZTU1Mjc0MWQzMjVhYzgxNDljMzhlOWQ1ODAgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29tcGlsZXIvQnl0ZWNvZGVHZW5lcmF0b3IuY3BwCisrKyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29tcGlsZXIvQnl0ZWNvZGVHZW5lcmF0b3IuY3Bw
CkBAIC0xMTUsNiArMTE1LDggQEAgdm9pZCBMYWJlbDo6c2V0TG9jYXRpb24oQnl0ZWNvZGVHZW5l
cmF0b3ImIGdlbmVyYXRvciwgdW5zaWduZWQgbG9jYXRpb24pCiAgICAgICAgIENBU0UoT3BKZmFs
c2UpCiAgICAgICAgIENBU0UoT3BKZXFOdWxsKQogICAgICAgICBDQVNFKE9wSm5lcU51bGwpCisg
ICAgICAgIENBU0UoT3BKdW5kZWZpbmVkT3JOdWxsKQorICAgICAgICBDQVNFKE9wSm51bmRlZmlu
ZWRPck51bGwpCiAgICAgICAgIENBU0UoT3BKZXEpCiAgICAgICAgIENBU0UoT3BKc3RyaWN0ZXEp
CiAgICAgICAgIENBU0UoT3BKbmVxKQpAQCAtMTQ4MSw2ICsxNDgzLDkgQEAgdm9pZCBCeXRlY29k
ZUdlbmVyYXRvcjo6ZW1pdEp1bXBJZlRydWUoUmVnaXN0ZXJJRCogY29uZCwgTGFiZWwmIHRhcmdl
dCkKICAgICAgICAgfSBlbHNlIGlmIChtX2xhc3RPcGNvZGVJRCA9PSBvcF9uZXFfbnVsbCAmJiB0
YXJnZXQuaXNGb3J3YXJkKCkpIHsKICAgICAgICAgICAgIGlmIChmdXNlVGVzdEFuZEptcDxPcE5l
cU51bGwsIE9wSm5lcU51bGw+KGNvbmQsIHRhcmdldCkpCiAgICAgICAgICAgICAgICAgcmV0dXJu
OworICAgICAgICB9IGVsc2UgaWYgKG1fbGFzdE9wY29kZUlEID09IG9wX2lzX3VuZGVmaW5lZF9v
cl9udWxsICYmIHRhcmdldC5pc0ZvcndhcmQoKSkgeworICAgICAgICAgICAgaWYgKGZ1c2VUZXN0
QW5kSm1wPE9wSXNVbmRlZmluZWRPck51bGwsIE9wSnVuZGVmaW5lZE9yTnVsbD4oY29uZCwgdGFy
Z2V0KSkKKyAgICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0KICAgICB9CiAKQEAgLTE1
MjksNiArMTUzNCw5IEBAIHZvaWQgQnl0ZWNvZGVHZW5lcmF0b3I6OmVtaXRKdW1wSWZGYWxzZShS
ZWdpc3RlcklEKiBjb25kLCBMYWJlbCYgdGFyZ2V0KQogICAgICAgICB9IGVsc2UgaWYgKG1fbGFz
dE9wY29kZUlEID09IG9wX25lcV9udWxsICYmIHRhcmdldC5pc0ZvcndhcmQoKSkgewogICAgICAg
ICAgICAgaWYgKGZ1c2VUZXN0QW5kSm1wPE9wTmVxTnVsbCwgT3BKZXFOdWxsPihjb25kLCB0YXJn
ZXQpKQogICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfSBlbHNlIGlmIChtX2xhc3RP
cGNvZGVJRCA9PSBvcF9pc191bmRlZmluZWRfb3JfbnVsbCAmJiB0YXJnZXQuaXNGb3J3YXJkKCkp
IHsKKyAgICAgICAgICAgIGlmIChmdXNlVGVzdEFuZEptcDxPcElzVW5kZWZpbmVkT3JOdWxsLCBP
cEpudW5kZWZpbmVkT3JOdWxsPihjb25kLCB0YXJnZXQpKQorICAgICAgICAgICAgICAgIHJldHVy
bjsKICAgICAgICAgfQogICAgIH0KIApAQCAtNDQ1NywxMCArNDQ2NSw4IEBAIFJlZ2lzdGVySUQq
IEJ5dGVjb2RlR2VuZXJhdG9yOjplbWl0UmVzdFBhcmFtZXRlcihSZWdpc3RlcklEKiByZXN1bHQs
IHVuc2lnbmVkIG51CiAKIHZvaWQgQnl0ZWNvZGVHZW5lcmF0b3I6OmVtaXRSZXF1aXJlT2JqZWN0
Q29lcmNpYmxlKFJlZ2lzdGVySUQqIHZhbHVlLCBjb25zdCBTdHJpbmcmIGVycm9yKQogewotICAg
IC8vIEZJWE1FOiBvcF9qbmVxX251bGwgdHJlYXRzICJ1bmRldGVjdGFibGUiIG9iamVjdHMgYXMg
bnVsbC91bmRlZmluZWQuIFJlcXVpcmVPYmplY3RDb2VyY2libGUKLSAgICAvLyB0aHVzIGluY29y
cmVjdGx5IHRocm93cyBhIFR5cGVFcnJvciBmb3IgaW50ZXJmYWNlcyBsaWtlIEhUTUxBbGxDb2xs
ZWN0aW9uLgogICAgIFJlZjxMYWJlbD4gdGFyZ2V0ID0gbmV3TGFiZWwoKTsKLSAgICBPcEpuZXFO
dWxsOjplbWl0KHRoaXMsIHZhbHVlLCB0YXJnZXQtPmJpbmQodGhpcykpOworICAgIE9wSm51bmRl
ZmluZWRPck51bGw6OmVtaXQodGhpcywgdmFsdWUsIHRhcmdldC0+YmluZCh0aGlzKSk7CiAgICAg
ZW1pdFRocm93VHlwZUVycm9yKGVycm9yKTsKICAgICBlbWl0TGFiZWwodGFyZ2V0LmdldCgpKTsK
IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQnl0ZUNvZGVQYXJz
ZXIuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdCeXRlQ29kZVBhcnNlci5jcHAK
aW5kZXggYWVjNTg3MTUyMGYyZjQ3MjE4MGEzNzk5NjUzNzQ1ZTRhM2VhZTQyMy4uZDEyNWNjMzcx
M2I1NGZiZDBhNDc0OTA1NjdmMjA4NDZmMTI2NDVkNiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2RmZy9ERkdCeXRlQ29kZVBhcnNlci5jcHAKKysrIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2RmZy9ERkdCeXRlQ29kZVBhcnNlci5jcHAKQEAgLTU3MzUsNiArNTczNSwyNCBAQCB2
b2lkIEJ5dGVDb2RlUGFyc2VyOjpwYXJzZUJsb2NrKHVuc2lnbmVkIGxpbWl0KQogICAgICAgICAg
ICAgTEFTVF9PUENPREUob3Bfam5lcV9udWxsKTsKICAgICAgICAgfQogCisgICAgICAgIGNhc2Ug
b3BfanVuZGVmaW5lZF9vcl9udWxsOiB7CisgICAgICAgICAgICBhdXRvIGJ5dGVjb2RlID0gY3Vy
cmVudEluc3RydWN0aW9uLT5hczxPcEp1bmRlZmluZWRPck51bGw+KCk7CisgICAgICAgICAgICB1
bnNpZ25lZCByZWxhdGl2ZU9mZnNldCA9IGp1bXBUYXJnZXQoYnl0ZWNvZGUubV90YXJnZXRMYWJl
bCk7CisgICAgICAgICAgICBOb2RlKiB2YWx1ZSA9IGdldChieXRlY29kZS5tX3ZhbHVlKTsKKyAg
ICAgICAgICAgIE5vZGUqIGNvbmRpdGlvbiA9IGFkZFRvR3JhcGgoSXNVbmRlZmluZWRPck51bGws
IHZhbHVlKTsKKyAgICAgICAgICAgIGFkZFRvR3JhcGgoQnJhbmNoLCBPcEluZm8oYnJhbmNoRGF0
YShtX2N1cnJlbnRJbmRleCArIHJlbGF0aXZlT2Zmc2V0LCBtX2N1cnJlbnRJbmRleCArIGN1cnJl
bnRJbnN0cnVjdGlvbi0+c2l6ZSgpKSksIGNvbmRpdGlvbik7CisgICAgICAgICAgICBMQVNUX09Q
Q09ERShvcF9qdW5kZWZpbmVkX29yX251bGwpOworICAgICAgICB9CisKKyAgICAgICAgY2FzZSBv
cF9qbnVuZGVmaW5lZF9vcl9udWxsOiB7CisgICAgICAgICAgICBhdXRvIGJ5dGVjb2RlID0gY3Vy
cmVudEluc3RydWN0aW9uLT5hczxPcEpudW5kZWZpbmVkT3JOdWxsPigpOworICAgICAgICAgICAg
dW5zaWduZWQgcmVsYXRpdmVPZmZzZXQgPSBqdW1wVGFyZ2V0KGJ5dGVjb2RlLm1fdGFyZ2V0TGFi
ZWwpOworICAgICAgICAgICAgTm9kZSogdmFsdWUgPSBnZXQoYnl0ZWNvZGUubV92YWx1ZSk7Cisg
ICAgICAgICAgICBOb2RlKiBjb25kaXRpb24gPSBhZGRUb0dyYXBoKElzVW5kZWZpbmVkT3JOdWxs
LCB2YWx1ZSk7CisgICAgICAgICAgICBhZGRUb0dyYXBoKEJyYW5jaCwgT3BJbmZvKGJyYW5jaERh
dGEobV9jdXJyZW50SW5kZXggKyBjdXJyZW50SW5zdHJ1Y3Rpb24tPnNpemUoKSwgbV9jdXJyZW50
SW5kZXggKyByZWxhdGl2ZU9mZnNldCkpLCBjb25kaXRpb24pOworICAgICAgICAgICAgTEFTVF9P
UENPREUob3Bfam51bmRlZmluZWRfb3JfbnVsbCk7CisgICAgICAgIH0KKwogICAgICAgICBjYXNl
IG9wX2psZXNzOiB7CiAgICAgICAgICAgICBhdXRvIGJ5dGVjb2RlID0gY3VycmVudEluc3RydWN0
aW9uLT5hczxPcEpsZXNzPigpOwogICAgICAgICAgICAgdW5zaWduZWQgcmVsYXRpdmVPZmZzZXQg
PSBqdW1wVGFyZ2V0KGJ5dGVjb2RlLm1fdGFyZ2V0TGFiZWwpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL2RmZy9ERkdDYXBhYmlsaXRpZXMuY3BwIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2RmZy9ERkdDYXBhYmlsaXRpZXMuY3BwCmluZGV4IGRmZTZjMTZkNTFhMDBjYWIwM2Fm
OTgwMTA3NTRhOTZjNzk2OWUzNDUuLjZkM2YyMzcxY2QyNjhlZjFjYWMwMzUyMDg4MGUyMmExM2Zh
ZThjYmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQ2FwYWJpbGl0
aWVzLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0NhcGFiaWxpdGllcy5j
cHAKQEAgLTE4OCw2ICsxODgsOCBAQCBDYXBhYmlsaXR5TGV2ZWwgY2FwYWJpbGl0eUxldmVsKE9w
Y29kZUlEIG9wY29kZUlELCBDb2RlQmxvY2sqIGNvZGVCbG9jaywgY29uc3QgSQogICAgIGNhc2Ug
b3BfamZhbHNlOgogICAgIGNhc2Ugb3BfamVxX251bGw6CiAgICAgY2FzZSBvcF9qbmVxX251bGw6
CisgICAgY2FzZSBvcF9qdW5kZWZpbmVkX29yX251bGw6CisgICAgY2FzZSBvcF9qbnVuZGVmaW5l
ZF9vcl9udWxsOgogICAgIGNhc2Ugb3Bfamxlc3M6CiAgICAgY2FzZSBvcF9qbGVzc2VxOgogICAg
IGNhc2Ugb3BfamdyZWF0ZXI6CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0
L0pJVC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVC5jcHAKaW5kZXggZjE5NzVi
ZmIwMTRhOTY0MTZiNzM5ZmRhMzc2YzBlOGZiMjhiMThlMS4uMDVmNzBmMWFlYWY0YzRkOWY1MmMx
MDZhYjY2ZGI5ZWNkMmVhYjhiZSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2pp
dC9KSVQuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklULmNwcApAQCAtMzY0
LDYgKzM2NCw4IEBAIHZvaWQgSklUOjpwcml2YXRlQ29tcGlsZU1haW5QYXNzKCkKICAgICAgICAg
REVGSU5FX09QKG9wX2pmYWxzZSkKICAgICAgICAgREVGSU5FX09QKG9wX2ptcCkKICAgICAgICAg
REVGSU5FX09QKG9wX2puZXFfbnVsbCkKKyAgICAgICAgREVGSU5FX09QKG9wX2p1bmRlZmluZWRf
b3JfbnVsbCkKKyAgICAgICAgREVGSU5FX09QKG9wX2pudW5kZWZpbmVkX29yX251bGwpCiAgICAg
ICAgIERFRklORV9PUChvcF9qbmVxX3B0cikKICAgICAgICAgREVGSU5FX09QKG9wX2psZXNzKQog
ICAgICAgICBERUZJTkVfT1Aob3Bfamxlc3NlcSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9qaXQvSklULmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVC5oCmluZGV4
IDY5ODk2MzYzN2ZkZmIxNzU0YTcwY2EwZDc5NmJmNThjODVkNzQ5YTAuLjkxZmU1OWFiOTYyYmRj
ODBjYmYyNDZiNWFkNDVhOTgyNDBjNTJlMGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9qaXQvSklULmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVQuaApAQCAt
NTU0LDYgKzU1NCw4IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICB2b2lkIGVtaXRfb3BfamZh
bHNlKGNvbnN0IEluc3RydWN0aW9uKik7CiAgICAgICAgIHZvaWQgZW1pdF9vcF9qbXAoY29uc3Qg
SW5zdHJ1Y3Rpb24qKTsKICAgICAgICAgdm9pZCBlbWl0X29wX2puZXFfbnVsbChjb25zdCBJbnN0
cnVjdGlvbiopOworICAgICAgICB2b2lkIGVtaXRfb3BfanVuZGVmaW5lZF9vcl9udWxsKGNvbnN0
IEluc3RydWN0aW9uKik7CisgICAgICAgIHZvaWQgZW1pdF9vcF9qbnVuZGVmaW5lZF9vcl9udWxs
KGNvbnN0IEluc3RydWN0aW9uKik7CiAgICAgICAgIHZvaWQgZW1pdF9vcF9qbmVxX3B0cihjb25z
dCBJbnN0cnVjdGlvbiopOwogICAgICAgICB2b2lkIGVtaXRfb3Bfamxlc3MoY29uc3QgSW5zdHJ1
Y3Rpb24qKTsKICAgICAgICAgdm9pZCBlbWl0X29wX2psZXNzZXEoY29uc3QgSW5zdHJ1Y3Rpb24q
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUT3Bjb2Rlcy5jcHAg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVE9wY29kZXMuY3BwCmluZGV4IGYwNWRiYTk2
NGIyZTY3N2E4OTNiMWRkMWVmYmFkYzI0YzNlODNhNDAuLmVjYjFlMTFjNDZjMzQzYzVlNzFkYWJl
MDdlNDVmNGMxMTUwMTFiNzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQv
SklUT3Bjb2Rlcy5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRPcGNvZGVz
LmNwcApAQCAtNDQyLDYgKzQ0MiwzMCBAQCB2b2lkIEpJVDo6ZW1pdF9vcF9qbmVxX251bGwoY29u
c3QgSW5zdHJ1Y3Rpb24qIGN1cnJlbnRJbnN0cnVjdGlvbikKICAgICB3YXNOb3RJbW1lZGlhdGUu
bGluayh0aGlzKTsKIH0KIAordm9pZCBKSVQ6OmVtaXRfb3BfanVuZGVmaW5lZF9vcl9udWxsKGNv
bnN0IEluc3RydWN0aW9uKiBjdXJyZW50SW5zdHJ1Y3Rpb24pCit7CisgICAgYXV0byBieXRlY29k
ZSA9IGN1cnJlbnRJbnN0cnVjdGlvbi0+YXM8T3BKdW5kZWZpbmVkT3JOdWxsPigpOworICAgIGlu
dCB2YWx1ZSA9IGJ5dGVjb2RlLm1fdmFsdWUub2Zmc2V0KCk7CisgICAgdW5zaWduZWQgdGFyZ2V0
ID0ganVtcFRhcmdldChjdXJyZW50SW5zdHJ1Y3Rpb24sIGJ5dGVjb2RlLm1fdGFyZ2V0TGFiZWwp
OworCisgICAgZW1pdEdldFZpcnR1YWxSZWdpc3Rlcih2YWx1ZSwgcmVnVDApOworCisgICAgYW5k
NjQoVHJ1c3RlZEltbTMyKH5UYWdCaXRVbmRlZmluZWQpLCByZWdUMCk7CisgICAgYWRkSnVtcChi
cmFuY2g2NChFcXVhbCwgcmVnVDAsIFRydXN0ZWRJbW02NChKU1ZhbHVlOjplbmNvZGUoanNOdWxs
KCkpKSksIHRhcmdldCk7Cit9CisKK3ZvaWQgSklUOjplbWl0X29wX2pudW5kZWZpbmVkX29yX251
bGwoY29uc3QgSW5zdHJ1Y3Rpb24qIGN1cnJlbnRJbnN0cnVjdGlvbikKK3sKKyAgICBhdXRvIGJ5
dGVjb2RlID0gY3VycmVudEluc3RydWN0aW9uLT5hczxPcEpudW5kZWZpbmVkT3JOdWxsPigpOwor
ICAgIGludCB2YWx1ZSA9IGJ5dGVjb2RlLm1fdmFsdWUub2Zmc2V0KCk7CisgICAgdW5zaWduZWQg
dGFyZ2V0ID0ganVtcFRhcmdldChjdXJyZW50SW5zdHJ1Y3Rpb24sIGJ5dGVjb2RlLm1fdGFyZ2V0
TGFiZWwpOworCisgICAgZW1pdEdldFZpcnR1YWxSZWdpc3Rlcih2YWx1ZSwgcmVnVDApOworCisg
ICAgYW5kNjQoVHJ1c3RlZEltbTMyKH5UYWdCaXRVbmRlZmluZWQpLCByZWdUMCk7CisgICAgYWRk
SnVtcChicmFuY2g2NChOb3RFcXVhbCwgcmVnVDAsIFRydXN0ZWRJbW02NChKU1ZhbHVlOjplbmNv
ZGUoanNOdWxsKCkpKSksIHRhcmdldCk7Cit9CisKIHZvaWQgSklUOjplbWl0X29wX2puZXFfcHRy
KGNvbnN0IEluc3RydWN0aW9uKiBjdXJyZW50SW5zdHJ1Y3Rpb24pCiB7CiAgICAgYXV0byBieXRl
Y29kZSA9IGN1cnJlbnRJbnN0cnVjdGlvbi0+YXM8T3BKbmVxUHRyPigpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRPcGNvZGVzMzJfNjQuY3BwIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2ppdC9KSVRPcGNvZGVzMzJfNjQuY3BwCmluZGV4IDk0YTI2MzI3YjNhOThk
OTZhZDVmZTcwYjY2ZjVhODBiZTQ0Zjc1YWIuLjcxMzE5NmY0NTdiYWQwZWY3ZmJlZGEyMzRmZTdi
ZDBhMWMxNGZlZjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUT3Bj
b2RlczMyXzY0LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVE9wY29kZXMz
Ml82NC5jcHAKQEAgLTQ0OSw2ICs0NDksMzAgQEAgdm9pZCBKSVQ6OmVtaXRfb3Bfam5lcV9udWxs
KGNvbnN0IEluc3RydWN0aW9uKiBjdXJyZW50SW5zdHJ1Y3Rpb24pCiAgICAgd2FzTm90SW1tZWRp
YXRlLmxpbmsodGhpcyk7CiB9CiAKK3ZvaWQgSklUOjplbWl0X29wX2p1bmRlZmluZWRfb3JfbnVs
bChjb25zdCBJbnN0cnVjdGlvbiogY3VycmVudEluc3RydWN0aW9uKQoreworICAgIGF1dG8gYnl0
ZWNvZGUgPSBjdXJyZW50SW5zdHJ1Y3Rpb24tPmFzPE9wSnVuZGVmaW5lZE9yTnVsbD4oKTsKKyAg
ICBpbnQgdmFsdWUgPSBieXRlY29kZS5tX3ZhbHVlLm9mZnNldCgpOworICAgIHVuc2lnbmVkIHRh
cmdldCA9IGp1bXBUYXJnZXQoY3VycmVudEluc3RydWN0aW9uLCBieXRlY29kZS5tX3RhcmdldExh
YmVsKTsKKworICAgIGVtaXRMb2FkVGFnKHZhbHVlLCByZWdUMCk7CisgICAgc3RhdGljX2Fzc2Vy
dCgoSlNWYWx1ZTo6VW5kZWZpbmVkVGFnICsgMSA9PSBKU1ZhbHVlOjpOdWxsVGFnKSAmJiAoSlNW
YWx1ZTo6TnVsbFRhZyAmIDB4MSksICIiKTsKKyAgICBvcjMyKFRydXN0ZWRJbW0zMigxKSwgcmVn
VDApOworICAgIGFkZEp1bXAoYnJhbmNoSWZOdWxsKHJlZ1QwKSwgdGFyZ2V0KTsKK30KKwordm9p
ZCBKSVQ6OmVtaXRfb3Bfam51bmRlZmluZWRfb3JfbnVsbChjb25zdCBJbnN0cnVjdGlvbiogY3Vy
cmVudEluc3RydWN0aW9uKQoreworICAgIGF1dG8gYnl0ZWNvZGUgPSBjdXJyZW50SW5zdHJ1Y3Rp
b24tPmFzPE9wSm51bmRlZmluZWRPck51bGw+KCk7CisgICAgaW50IHZhbHVlID0gYnl0ZWNvZGUu
bV92YWx1ZS5vZmZzZXQoKTsKKyAgICB1bnNpZ25lZCB0YXJnZXQgPSBqdW1wVGFyZ2V0KGN1cnJl
bnRJbnN0cnVjdGlvbiwgYnl0ZWNvZGUubV90YXJnZXRMYWJlbCk7CisKKyAgICBlbWl0TG9hZFRh
Zyh2YWx1ZSwgcmVnVDApOworICAgIHN0YXRpY19hc3NlcnQoKEpTVmFsdWU6OlVuZGVmaW5lZFRh
ZyArIDEgPT0gSlNWYWx1ZTo6TnVsbFRhZykgJiYgKEpTVmFsdWU6Ok51bGxUYWcgJiAweDEpLCAi
Iik7CisgICAgb3IzMihUcnVzdGVkSW1tMzIoMSksIHJlZ1QwKTsKKyAgICBhZGRKdW1wKGJyYW5j
aElmTm90TnVsbChyZWdUMCksIHRhcmdldCk7Cit9CisKIHZvaWQgSklUOjplbWl0X29wX2puZXFf
cHRyKGNvbnN0IEluc3RydWN0aW9uKiBjdXJyZW50SW5zdHJ1Y3Rpb24pCiB7CiAgICAgYXV0byBi
eXRlY29kZSA9IGN1cnJlbnRJbnN0cnVjdGlvbi0+YXM8T3BKbmVxUHRyPigpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xvd0xldmVsSW50ZXJwcmV0ZXIzMl82NC5h
c20gYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTG93TGV2ZWxJbnRlcnByZXRlcjMyXzY0
LmFzbQppbmRleCAzN2VmMjc5MWMxNWI2MzcwODE5NmNhOWZjNjliMWVjOGU1MGE5MTU1Li5hYzQx
NTliOGFmNWQ3MDIxZDg4NDY3NjkzNzgxYTBiMDkzMzY1YmIwIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvbGxpbnQvTG93TGV2ZWxJbnRlcnByZXRlcjMyXzY0LmFzbQorKysgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTG93TGV2ZWxJbnRlcnByZXRlcjMyXzY0LmFzbQpA
QCAtMTY3Niw2ICsxNjc2LDI0IEBAIGVxdWFsTnVsbEp1bXBPcChqbmVxX251bGwsIE9wSm5lcU51
bGwsCiAgICAgZW5kLAogICAgIG1hY3JvICh2YWx1ZSwgdGFyZ2V0KSBiaW5lcSB2YWx1ZSwgTnVs
bFRhZywgdGFyZ2V0IGVuZCkKIAorbWFjcm8gdW5kZWZpbmVkT3JOdWxsSnVtcE9wKG9wY29kZU5h
bWUsIG9wY29kZVN0cnVjdCwgZm4pCisgICAgbGxpbnRPcFdpdGhKdW1wKG9wXyVvcGNvZGVOYW1l
JSwgb3Bjb2RlU3RydWN0LCBtYWNybyAoc2l6ZSwgZ2V0LCBqdW1wLCBkaXNwYXRjaCkKKyAgICAg
ICAgZ2V0KG1fdmFsdWUsIHQxKQorICAgICAgICBsb2FkQ29uc3RhbnRPclZhcmlhYmxlVGFnKHNp
emUsIHQxLCB0MCkKKyAgICAgICAgb3JpIDEsIHQwCisgICAgICAgIGZuKHQwLCAudGFyZ2V0KQor
ICAgICAgICBkaXNwYXRjaCgpCisKKyAgICAudGFyZ2V0OgorICAgICAgICBqdW1wKG1fdGFyZ2V0
TGFiZWwpCisgICAgZW5kKQorZW5kCisKK3VuZGVmaW5lZE9yTnVsbEp1bXBPcChqdW5kZWZpbmVk
X29yX251bGwsIE9wSnVuZGVmaW5lZE9yTnVsbCwKKyAgICBtYWNybyAodmFsdWUsIHRhcmdldCkg
YmllcSB2YWx1ZSwgTnVsbFRhZywgdGFyZ2V0IGVuZCkKKwordW5kZWZpbmVkT3JOdWxsSnVtcE9w
KGpudW5kZWZpbmVkX29yX251bGwsIE9wSm51bmRlZmluZWRPck51bGwsCisgICAgbWFjcm8gKHZh
bHVlLCB0YXJnZXQpIGJpbmVxIHZhbHVlLCBOdWxsVGFnLCB0YXJnZXQgZW5kKQogCiBsbGludE9w
V2l0aE1ldGFkYXRhKG9wX2puZXFfcHRyLCBPcEpuZXFQdHIsIG1hY3JvIChzaXplLCBnZXQsIGRp
c3BhdGNoLCBtZXRhZGF0YSwgcmV0dXJuKQogICAgIGdldChtX3ZhbHVlLCB0MCkKZGlmZiAtLWdp
dCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9Mb3dMZXZlbEludGVycHJldGVyNjQuYXNt
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xvd0xldmVsSW50ZXJwcmV0ZXI2NC5hc20K
aW5kZXggZTFlZDcyZjBlYmMxNTFjMzI2ODFmMGEyZjBiNDA5YmQwNTczZmE3Mi4uZTA5Zjg5ODVm
ZTUzMTdhOGRkOWJiNDcxZWE5MmJhZGJiOGQ1MWNhYyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2xsaW50L0xvd0xldmVsSW50ZXJwcmV0ZXI2NC5hc20KKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2xsaW50L0xvd0xldmVsSW50ZXJwcmV0ZXI2NC5hc20KQEAgLTE3NjksNiAr
MTc2OSwyNCBAQCBlcXVhbE51bGxKdW1wT3Aoam5lcV9udWxsLCBPcEpuZXFOdWxsLAogICAgIGVu
ZCwKICAgICBtYWNybyAodmFsdWUsIHRhcmdldCkgYnFuZXEgdmFsdWUsIFZhbHVlTnVsbCwgdGFy
Z2V0IGVuZCkKIAorbWFjcm8gdW5kZWZpbmVkT3JOdWxsSnVtcE9wKG9wY29kZU5hbWUsIG9wY29k
ZVN0cnVjdCwgZm4pCisgICAgbGxpbnRPcFdpdGhKdW1wKG9wXyVvcGNvZGVOYW1lJSwgb3Bjb2Rl
U3RydWN0LCBtYWNybyAoc2l6ZSwgZ2V0LCBqdW1wLCBkaXNwYXRjaCkKKyAgICAgICAgZ2V0KG1f
dmFsdWUsIHQxKQorICAgICAgICBsb2FkQ29uc3RhbnRPclZhcmlhYmxlKHNpemUsIHQxLCB0MCkK
KyAgICAgICAgYW5kcSB+VGFnQml0VW5kZWZpbmVkLCB0MAorICAgICAgICBmbih0MCwgLnRhcmdl
dCkKKyAgICAgICAgZGlzcGF0Y2goKQorCisgICAgLnRhcmdldDoKKyAgICAgICAganVtcChtX3Rh
cmdldExhYmVsKQorICAgIGVuZCkKK2VuZAorCit1bmRlZmluZWRPck51bGxKdW1wT3AoanVuZGVm
aW5lZF9vcl9udWxsLCBPcEp1bmRlZmluZWRPck51bGwsCisgICAgbWFjcm8gKHZhbHVlLCB0YXJn
ZXQpIGJxZXEgdmFsdWUsIFZhbHVlTnVsbCwgdGFyZ2V0IGVuZCkKKwordW5kZWZpbmVkT3JOdWxs
SnVtcE9wKGpudW5kZWZpbmVkX29yX251bGwsIE9wSm51bmRlZmluZWRPck51bGwsCisgICAgbWFj
cm8gKHZhbHVlLCB0YXJnZXQpIGJxbmVxIHZhbHVlLCBWYWx1ZU51bGwsIHRhcmdldCBlbmQpCiAK
IGxsaW50T3BXaXRoTWV0YWRhdGEob3Bfam5lcV9wdHIsIE9wSm5lcVB0ciwgbWFjcm8gKHNpemUs
IGdldCwgZGlzcGF0Y2gsIG1ldGFkYXRhLCByZXR1cm4pCiAgICAgZ2V0KG1fdmFsdWUsIHQwKQpk
aWZmIC0tZ2l0IGEvSlNUZXN0cy9DaGFuZ2VMb2cgYi9KU1Rlc3RzL0NoYW5nZUxvZwppbmRleCBi
MjQ3MzJkMWUzMmY4M2MxYzg5OGFkMzdjMTBlYWE3M2IzZGNjM2I0Li4xNWU0YmI0N2MxYjRmMWNk
OTgyMzc2ZWMwNDExNzAzNGE0NjEzZjhjIDEwMDY0NAotLS0gYS9KU1Rlc3RzL0NoYW5nZUxvZwor
KysgYi9KU1Rlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEzIEBACisyMDE5LTA4LTA3ICBSb3Nz
IEtpcnNsaW5nICA8cm9zcy5raXJzbGluZ0Bzb255LmNvbT4KKworICAgICAgICBbSlNDXSBBZGQg
Imp1bXAgaWYgKG5vdCkgdW5kZWZpbmVkIG9yIG51bGwiIGJ5dGVjb2RlIG9wcworICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjAwNDgwCisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgU2FhbSBCYXJhdGkuCisKKyAgICAgICAgKiBzdHJlc3MvZGVzdHJ1Y3R1cmlu
Zy1hc3NpZ25tZW50LXJlcXVpcmUtb2JqZWN0LWNvZXJjaWJsZS5qczoKKyAgICAgICAgKiBzdHJl
c3MvbnVsbGlzaC1jb2FsZXNjaW5nLmpzOgorCiAyMDE5LTA4LTA1ICBNaWNoYWVsIFNhYm9mZiAg
PG1zYWJvZmZAYXBwbGUuY29tPgogCiAgICAgICAgIEpTQzogYXNzZXJ0aW9uIGZhaWx1cmUgaW4g
U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVHZXRCeVZhbE9uSW50VHlwZWRBcnJheQpkaWZmIC0tZ2l0
IGEvSlNUZXN0cy9zdHJlc3MvZGVzdHJ1Y3R1cmluZy1hc3NpZ25tZW50LXJlcXVpcmUtb2JqZWN0
LWNvZXJjaWJsZS5qcyBiL0pTVGVzdHMvc3RyZXNzL2Rlc3RydWN0dXJpbmctYXNzaWdubWVudC1y
ZXF1aXJlLW9iamVjdC1jb2VyY2libGUuanMKaW5kZXggYzI1YmIxYjU3MmJmMGJkMDlhNDUxY2I2
Y2E0NTk4YTM3YjA5Y2NjYS4uYjc2MTRlYjFjMWRmYjQ4Njc2ODgxMGE4ZjFjNDJhODBhMmU0YTZm
YyAxMDA2NDQKLS0tIGEvSlNUZXN0cy9zdHJlc3MvZGVzdHJ1Y3R1cmluZy1hc3NpZ25tZW50LXJl
cXVpcmUtb2JqZWN0LWNvZXJjaWJsZS5qcworKysgYi9KU1Rlc3RzL3N0cmVzcy9kZXN0cnVjdHVy
aW5nLWFzc2lnbm1lbnQtcmVxdWlyZS1vYmplY3QtY29lcmNpYmxlLmpzCkBAIC02NiwzICs2Niw4
IEBAIHRlc3RPSyhgKHsgfSA9IC8xLylgKTsKIHRlc3RPSyhgKHsgYSB9ID0gLzEvKWApOwogdGVz
dE9LKGAoeyBhOiB7IGIgfSA9IC8xLyB9ID0geyB9KWApOwogdGVzdE9LKGAoeyBhOiB7IGIgfSB9
ID0geyBhOiAvMS8gfSlgKTsKKwordGVzdE9LKGAoeyB9ID0gbWFrZU1hc3F1ZXJhZGVyKCkpYCk7
Cit0ZXN0T0soYCh7IGEgfSA9IG1ha2VNYXNxdWVyYWRlcigpKWApOwordGVzdE9LKGAoeyBhOiB7
IGIgfSA9IG1ha2VNYXNxdWVyYWRlcigpIH0gPSB7IH0pYCk7Cit0ZXN0T0soYCh7IGE6IHsgYiB9
IH0gPSB7IGE6IG1ha2VNYXNxdWVyYWRlcigpIH0pYCk7CmRpZmYgLS1naXQgYS9KU1Rlc3RzL3N0
cmVzcy9udWxsaXNoLWNvYWxlc2NpbmcuanMgYi9KU1Rlc3RzL3N0cmVzcy9udWxsaXNoLWNvYWxl
c2NpbmcuanMKaW5kZXggNTk1OGYxMjczYWIxNjQ3MTMwYTZlZDZlMWI4NmU1ZTFmNDRhN2M0ZS4u
ZjNkZGNhNzA1YmQzMTQ1MmNhNmE0NTU1MTM5NjBhOWQxMWFlMzE5ZCAxMDA2NDQKLS0tIGEvSlNU
ZXN0cy9zdHJlc3MvbnVsbGlzaC1jb2FsZXNjaW5nLmpzCisrKyBiL0pTVGVzdHMvc3RyZXNzL251
bGxpc2gtY29hbGVzY2luZy5qcwpAQCAtMjEsMTkgKzIxLDI1IEBAIGZ1bmN0aW9uIHNob3VsZFRo
cm93U3ludGF4RXJyb3Ioc2NyaXB0KSB7CiAgICAgICAgIHRocm93IG5ldyBFcnJvcignRXhwZWN0
ZWQgU3ludGF4RXJyb3IhJyk7CiB9CiAKLXNob3VsZEJlKHVuZGVmaW5lZCA/PyAzLCAzKTsKLXNo
b3VsZEJlKG51bGwgPz8gMywgMyk7Ci1zaG91bGRCZSh0cnVlID8/IDMsIHRydWUpOwotc2hvdWxk
QmUoZmFsc2UgPz8gMywgZmFsc2UpOwotc2hvdWxkQmUoMCA/PyAzLCAwKTsKLXNob3VsZEJlKDEg
Pz8gMywgMSk7Ci1zaG91bGRCZSgnJyA/PyAzLCAnJyk7Ci1zaG91bGRCZSgnaGknID8/IDMsICdo
aScpOwotc2hvdWxkQmUoKHt9ID8/IDMpIGluc3RhbmNlb2YgT2JqZWN0LCB0cnVlKTsKLXNob3Vs
ZEJlKCh7IHg6ICdoaScgfSA/PyAzKS54LCAnaGknKTsKLXNob3VsZEJlKChbXSA/PyAzKSBpbnN0
YW5jZW9mIEFycmF5LCB0cnVlKTsKLXNob3VsZEJlKChbJ2hpJ10gPz8gMylbMF0sICdoaScpOwot
c2hvdWxkQmUoKG1ha2VNYXNxdWVyYWRlcigpID8/IDMpID09IG51bGwsIHRydWUpOworZnVuY3Rp
b24gdGVzdEJhc2ljQ2FzZXMoKSB7CisgICAgc2hvdWxkQmUodW5kZWZpbmVkID8/IDMsIDMpOwor
ICAgIHNob3VsZEJlKG51bGwgPz8gMywgMyk7CisgICAgc2hvdWxkQmUodHJ1ZSA/PyAzLCB0cnVl
KTsKKyAgICBzaG91bGRCZShmYWxzZSA/PyAzLCBmYWxzZSk7CisgICAgc2hvdWxkQmUoMCA/PyAz
LCAwKTsKKyAgICBzaG91bGRCZSgxID8/IDMsIDEpOworICAgIHNob3VsZEJlKCcnID8/IDMsICcn
KTsKKyAgICBzaG91bGRCZSgnaGknID8/IDMsICdoaScpOworICAgIHNob3VsZEJlKCh7fSA/PyAz
KSBpbnN0YW5jZW9mIE9iamVjdCwgdHJ1ZSk7CisgICAgc2hvdWxkQmUoKHsgeDogJ2hpJyB9ID8/
IDMpLngsICdoaScpOworICAgIHNob3VsZEJlKChbXSA/PyAzKSBpbnN0YW5jZW9mIEFycmF5LCB0
cnVlKTsKKyAgICBzaG91bGRCZSgoWydoaSddID8/IDMpWzBdLCAnaGknKTsKKyAgICBzaG91bGRC
ZSgobWFrZU1hc3F1ZXJhZGVyKCkgPz8gMykgPT0gbnVsbCwgdHJ1ZSk7Cit9Citub0lubGluZSh0
ZXN0QmFzaWNDYXNlcyk7CisKK2ZvciAobGV0IGkgPSAwOyBpIDwgMWU1OyBpKyspCisgICAgdGVz
dEJhc2ljQ2FzZXMoKTsKIAogc2hvdWxkQmUoMSB8IG51bGwgPz8gMywgMSk7CiBzaG91bGRCZSgx
IF4gbnVsbCA/PyAzLCAxKTsK
</data>

          </attachment>
      

    </bug>

</bugzilla>