<?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>197186</bug_id>
          
          <creation_ts>2019-04-22 21:56:57 -0700</creation_ts>
          <short_desc>[JSC] Use node index as DFG::MinifiedID</short_desc>
          <delta_ts>2019-04-23 18:50:54 -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>New Bugs</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Yusuke Suzuki">ysuzuki</reporter>
          <assigned_to name="Yusuke Suzuki">ysuzuki</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>keith_miller</cc>
    
    <cc>mark.lam</cc>
    
    <cc>msaboff</cc>
    
    <cc>rmorisset</cc>
    
    <cc>saam</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1529518</commentid>
    <comment_count>0</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2019-04-22 21:56:57 -0700</bug_when>
    <thetext>[JSC] Use node index as DFG::MinifiedID</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1529519</commentid>
    <comment_count>1</comment_count>
      <attachid>368011</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2019-04-22 21:59:25 -0700</bug_when>
    <thetext>Created attachment 368011
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1529520</commentid>
    <comment_count>2</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2019-04-22 21:59:58 -0700</bug_when>
    <thetext>&lt;rdar://problem/50118963&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1529521</commentid>
    <comment_count>3</comment_count>
    <who name="EWS Watchlist">ews-watchlist</who>
    <bug_when>2019-04-22 22:01:45 -0700</bug_when>
    <thetext>Attachment 368011 did not pass style-queue:


ERROR: Source/JavaScriptCore/dfg/DFGMinifiedID.h:42:  Should be indented on a separate line, with the colon or comma first on that line.  [whitespace/indent] [4]
ERROR: Source/JavaScriptCore/dfg/DFGMinifiedID.h:43:  Should be indented on a separate line, with the colon or comma first on that line.  [whitespace/indent] [4]
ERROR: Source/JavaScriptCore/dfg/DFGMinifiedID.h:44:  Should be indented on a separate line, with the colon or comma first on that line.  [whitespace/indent] [4]
Total errors found: 3 in 6 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1529523</commentid>
    <comment_count>4</comment_count>
      <attachid>368013</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2019-04-22 22:16:12 -0700</bug_when>
    <thetext>Created attachment 368013
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1529525</commentid>
    <comment_count>5</comment_count>
    <who name="EWS Watchlist">ews-watchlist</who>
    <bug_when>2019-04-22 22:19:13 -0700</bug_when>
    <thetext>Attachment 368013 did not pass style-queue:


ERROR: Source/JavaScriptCore/dfg/DFGMinifiedID.h:41:  Should be indented on a separate line, with the colon or comma first on that line.  [whitespace/indent] [4]
ERROR: Source/JavaScriptCore/dfg/DFGMinifiedID.h:42:  Should be indented on a separate line, with the colon or comma first on that line.  [whitespace/indent] [4]
ERROR: Source/JavaScriptCore/dfg/DFGMinifiedID.h:43:  The parameter name &quot;node&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
Total errors found: 3 in 9 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1529589</commentid>
    <comment_count>6</comment_count>
      <attachid>368013</attachid>
    <who name="Saam Barati">saam</who>
    <bug_when>2019-04-23 08:21:29 -0700</bug_when>
    <thetext>Comment on attachment 368013
Patch

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

&gt; Source/JavaScriptCore/dfg/DFGMinifiedID.h:67
&gt; +    uintptr_t bits() const { return m_index; }

What is this used for? Why still return uintptr?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1529699</commentid>
    <comment_count>7</comment_count>
      <attachid>368013</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2019-04-23 13:08:47 -0700</bug_when>
    <thetext>Comment on attachment 368013
Patch

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

&gt;&gt; Source/JavaScriptCore/dfg/DFGMinifiedID.h:67
&gt;&gt; +    uintptr_t bits() const { return m_index; }
&gt; 
&gt; What is this used for? Why still return uintptr?

Nice catch. It is originally introduced to make MinifiedID uintptr_t or some integer types to be included one member of union. But now, C++11 allows us to put this class directly in the union. So, we do not need to have this.
I&apos;ll remove it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1529718</commentid>
    <comment_count>8</comment_count>
      <attachid>368013</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2019-04-23 13:30:16 -0700</bug_when>
    <thetext>Comment on attachment 368013
Patch

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

&gt;&gt;&gt; Source/JavaScriptCore/dfg/DFGMinifiedID.h:67
&gt;&gt;&gt; +    uintptr_t bits() const { return m_index; }
&gt;&gt; 
&gt;&gt; What is this used for? Why still return uintptr?
&gt; 
&gt; Nice catch. It is originally introduced to make MinifiedID uintptr_t or some integer types to be included one member of union. But now, C++11 allows us to put this class directly in the union. So, we do not need to have this.
&gt; I&apos;ll remove it.

Ah, no. Having non-trivial constructor makes putting it in union difficult. I&apos;ll just continue using this bits / fromBits mechanism in this patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1529727</commentid>
    <comment_count>9</comment_count>
      <attachid>368013</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2019-04-23 13:33:50 -0700</bug_when>
    <thetext>Comment on attachment 368013
Patch

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

&gt;&gt;&gt;&gt; Source/JavaScriptCore/dfg/DFGMinifiedID.h:67
&gt;&gt;&gt;&gt; +    uintptr_t bits() const { return m_index; }
&gt;&gt;&gt; 
&gt;&gt;&gt; What is this used for? Why still return uintptr?
&gt;&gt; 
&gt;&gt; Nice catch. It is originally introduced to make MinifiedID uintptr_t or some integer types to be included one member of union. But now, C++11 allows us to put this class directly in the union. So, we do not need to have this.
&gt;&gt; I&apos;ll remove it.
&gt; 
&gt; Ah, no. Having non-trivial constructor makes putting it in union difficult. I&apos;ll just continue using this bits / fromBits mechanism in this patch.

And I fixed this, using unsigned instead of uintptr_t.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1529728</commentid>
    <comment_count>10</comment_count>
      <attachid>368058</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2019-04-23 13:34:50 -0700</bug_when>
    <thetext>Created attachment 368058
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1529731</commentid>
    <comment_count>11</comment_count>
    <who name="EWS Watchlist">ews-watchlist</who>
    <bug_when>2019-04-23 13:37:56 -0700</bug_when>
    <thetext>Attachment 368058 did not pass style-queue:


ERROR: Source/JavaScriptCore/dfg/DFGMinifiedID.h:42:  Should be indented on a separate line, with the colon or comma first on that line.  [whitespace/indent] [4]
ERROR: Source/JavaScriptCore/dfg/DFGMinifiedID.h:43:  The parameter name &quot;node&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
Total errors found: 2 in 10 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1529737</commentid>
    <comment_count>12</comment_count>
      <attachid>368058</attachid>
    <who name="Robin Morisset">rmorisset</who>
    <bug_when>2019-04-23 13:45:05 -0700</bug_when>
    <thetext>Comment on attachment 368058
Patch

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

Lgtm overall

&gt; Source/JavaScriptCore/dfg/DFGMinifiedIDInlines.h:35
&gt; +inline MinifiedID::MinifiedID(Node* node)

What is the point of putting this function in its own file?
Considering how trivial it is, I doubt it has any impact on compile time.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1529768</commentid>
    <comment_count>13</comment_count>
      <attachid>368058</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2019-04-23 14:42:10 -0700</bug_when>
    <thetext>Comment on attachment 368058
Patch

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

&gt;&gt; Source/JavaScriptCore/dfg/DFGMinifiedIDInlines.h:35
&gt;&gt; +inline MinifiedID::MinifiedID(Node* node)
&gt; 
&gt; What is the point of putting this function in its own file?
&gt; Considering how trivial it is, I doubt it has any impact on compile time.

This is because we do not put DFGNode.h as Private header (exposed to the rest of the WebKit), while DFGMinifiedID.h is included by ValueRecovery and it is included by some headers that is annotated as Private exposed.
We do not want to make DFGNode.h and dependent headers Private-exposed. To avoid this, we have two choices,

1. Put MinifiedID::MinifiedID implementation in DFGMinifiedID.cpp
2. Add DFGMinifiedIDInlines.h

Here I took (2) option because the implementation of MinifiedID::MinifiedID is small.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1529780</commentid>
    <comment_count>14</comment_count>
    <who name="Robin Morisset">rmorisset</who>
    <bug_when>2019-04-23 15:11:47 -0700</bug_when>
    <thetext>(In reply to Yusuke Suzuki from comment #13)
&gt; Comment on attachment 368058 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=368058&amp;action=review
&gt; 
&gt; &gt;&gt; Source/JavaScriptCore/dfg/DFGMinifiedIDInlines.h:35
&gt; &gt;&gt; +inline MinifiedID::MinifiedID(Node* node)
&gt; &gt; 
&gt; &gt; What is the point of putting this function in its own file?
&gt; &gt; Considering how trivial it is, I doubt it has any impact on compile time.
&gt; 
&gt; This is because we do not put DFGNode.h as Private header (exposed to the
&gt; rest of the WebKit), while DFGMinifiedID.h is included by ValueRecovery and
&gt; it is included by some headers that is annotated as Private exposed.
&gt; We do not want to make DFGNode.h and dependent headers Private-exposed. To
&gt; avoid this, we have two choices,
&gt; 
&gt; 1. Put MinifiedID::MinifiedID implementation in DFGMinifiedID.cpp
&gt; 2. Add DFGMinifiedIDInlines.h
&gt; 
&gt; Here I took (2) option because the implementation of MinifiedID::MinifiedID
&gt; is small.

That makes sense, thanks for the answer.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1529816</commentid>
    <comment_count>15</comment_count>
      <attachid>368058</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2019-04-23 16:48:37 -0700</bug_when>
    <thetext>Comment on attachment 368058
Patch

Thanks Saam and Robin!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1529828</commentid>
    <comment_count>16</comment_count>
      <attachid>368058</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-04-23 17:16:50 -0700</bug_when>
    <thetext>Comment on attachment 368058
Patch

Rejecting attachment 368058 from commit-queue.

Failed to run &quot;[&apos;/Volumes/Data/EWS/WebKit/Tools/Scripts/webkit-patch&apos;, &apos;--status-host=webkit-queues.webkit.org&apos;, &apos;--bot-id=webkit-cq-02&apos;, &apos;land-attachment&apos;, &apos;--force-clean&apos;, &apos;--non-interactive&apos;, &apos;--parent-command=commit-queue&apos;, 368058, &apos;--port=mac&apos;]&quot; exit_code: 2 cwd: /Volumes/Data/EWS/WebKit

Logging in as commit-queue@webkit.org...
Fetching: https://bugs.webkit.org/attachment.cgi?id=368058&amp;action=edit
Fetching: https://bugs.webkit.org/show_bug.cgi?id=197186&amp;ctype=xml&amp;excludefield=attachmentdata
Processing 1 patch from 1 bug.
Updating working directory
Processing patch 368058 from bug 197186.
Fetching: https://bugs.webkit.org/attachment.cgi?id=368058
Failed to run &quot;[&apos;git&apos;, &apos;svn&apos;, &apos;dcommit&apos;, &apos;--rmdir&apos;]&quot; exit_code: 1 cwd: /Volumes/Data/EWS/WebKit

Committing to http://svn.webkit.org/repository/webkit/trunk ...
Can&apos;t create session: Unable to connect to a repository at URL &apos;http://svn.webkit.org/repository/webkit/trunk&apos;: Error running context: The server unexpectedly closed the connection. at /Applications/Xcode.app/Contents/Developer/usr/libexec/git-core/git-svn line 1033.


Failed to run &quot;[&apos;git&apos;, &apos;svn&apos;, &apos;dcommit&apos;, &apos;--rmdir&apos;]&quot; exit_code: 1 cwd: /Volumes/Data/EWS/WebKit

Committing to http://svn.webkit.org/repository/webkit/trunk ...
Can&apos;t create session: Unable to connect to a repository at URL &apos;http://svn.webkit.org/repository/webkit/trunk&apos;: Error running context: The server unexpectedly closed the connection. at /Applications/Xcode.app/Contents/Developer/usr/libexec/git-core/git-svn line 1033.


Failed to run &quot;[&apos;git&apos;, &apos;svn&apos;, &apos;dcommit&apos;, &apos;--rmdir&apos;]&quot; exit_code: 1 cwd: /Volumes/Data/EWS/WebKit
Updating OpenSource
From https://git.webkit.org/git/WebKit
   165bf4efab5..908452fed98  master     -&gt; origin/master
Partial-rebuilding .git/svn/refs/remotes/origin/master/.rev_map.268f45cc-cd09-0410-ab3c-d52691b4dbfc ...
Currently at 244570 = 165bf4efab5cfcf64ee0183401b1003be50e82f5
r244571 = fd4abbc1ad1f0f8c99119c1d366e7c04bf46d69b
r244572 = 908452fed98f80ee058f1b2535fc24e5a6efa3da
Done rebuilding .git/svn/refs/remotes/origin/master/.rev_map.268f45cc-cd09-0410-ab3c-d52691b4dbfc
First, rewinding head to replay your work on top of it...
Fast-forwarded master to refs/remotes/origin/master.

Full output: https://webkit-queues.webkit.org/results/11976964</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1529878</commentid>
    <comment_count>17</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2019-04-23 18:50:54 -0700</bug_when>
    <thetext>Committed r244578: &lt;https://trac.webkit.org/changeset/244578&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>368011</attachid>
            <date>2019-04-22 21:59:25 -0700</date>
            <delta_ts>2019-04-22 22:16:11 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-197186-20190422215925.patch</filename>
            <type>text/plain</type>
            <size>9085</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQ0NTM3CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBm
MWFlMjJiZGFhZjllNjhkMzliNDQyYTI0Mzg0NmYwNzdmNDdkYjk5Li45ODY3MDY4YzRjMWQ4ZTcy
NzUyZmRlMGMxZTZlNDI0NzZiYjlhYjNmIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw0MCBAQAorMjAxOS0wNC0yMiAgWXVzdWtlIFN1enVraSAgPHlzdXp1a2lAYXBwbGUuY29t
PgorCisgICAgICAgIFtKU0NdIFVzZSBub2RlIGluZGV4IGFzIERGRzo6TWluaWZpZWRJRAorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTk3MTg2CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgREZHIE5vZGVzIGNh
biBiZSBpZGVudGlmaWVkIHdpdGggaW5kZXggaWYgdGhlIGdyYXBoIGlzIGdpdmVuLiBXZSBzaG91
bGQgdXNlIHVuc2lnbmVkIGluZGV4IGFzIGEgREZHOjpNaW5pZmllZElEJ3MgdW5kZXJseWluZwor
ICAgICAgICBzb3VyY2UgaW5zdGVhZCBvZiBOb2RlKiB0byByZWR1Y2UgdGhlIHNpemUgb2YgVmFy
aWFibGVFdmVudCBmcm9tIDE2IHRvIDEyLiBWZWN0b3I8VmFyaWFibGVFdmVudD4gaXMgdGhlIG1h
aW4gZGF0YSBpbiBERkcncyBPU1IKKyAgICAgICAgdHJhY2tpbmcuIEl0IGlzIGtlcHQgYWZ0ZXIg
REZHIGNvbXBpbGF0aW9uIGlzIGRvbmUgdG8gbWFrZSBPU1Igd29yay4gV2Ugc2F3IHRoYXQgdGhp
cyBpcyBhbGxvY2F0ZWQgd2l0aCBsYXJnZSBzaXplIGluIEdNYWlsLgorCisgICAgICAgICogYnl0
ZWNvZGUvRGF0YUZvcm1hdC5oOgorICAgICAgICAqIGJ5dGVjb2RlL1ZhbHVlUmVjb3ZlcnkuaDoK
KyAgICAgICAgKiBkZmcvREZHTWluaWZpZWRJRC5oOgorICAgICAgICAoSlNDOjpERkc6Ok1pbmlm
aWVkSUQ6Ok1pbmlmaWVkSUQpOgorICAgICAgICAoSlNDOjpERkc6Ok1pbmlmaWVkSUQ6Om9wZXJh
dG9yISBjb25zdCk6CisgICAgICAgIChKU0M6OkRGRzo6TWluaWZpZWRJRDo6b3BlcmF0b3I9PSBj
b25zdCk6CisgICAgICAgIChKU0M6OkRGRzo6TWluaWZpZWRJRDo6b3BlcmF0b3IhPSBjb25zdCk6
CisgICAgICAgIChKU0M6OkRGRzo6TWluaWZpZWRJRDo6b3BlcmF0b3I8IGNvbnN0KToKKyAgICAg
ICAgKEpTQzo6REZHOjpNaW5pZmllZElEOjpvcGVyYXRvcj4gY29uc3QpOgorICAgICAgICAoSlND
OjpERkc6Ok1pbmlmaWVkSUQ6Om9wZXJhdG9yPD0gY29uc3QpOgorICAgICAgICAoSlNDOjpERkc6
Ok1pbmlmaWVkSUQ6Om9wZXJhdG9yPj0gY29uc3QpOgorICAgICAgICAoSlNDOjpERkc6Ok1pbmlm
aWVkSUQ6Omhhc2ggY29uc3QpOgorICAgICAgICAoSlNDOjpERkc6Ok1pbmlmaWVkSUQ6OmR1bXAg
Y29uc3QpOgorICAgICAgICAoSlNDOjpERkc6Ok1pbmlmaWVkSUQ6OmlzSGFzaFRhYmxlRGVsZXRl
ZFZhbHVlIGNvbnN0KToKKyAgICAgICAgKEpTQzo6REZHOjpNaW5pZmllZElEOjpmcm9tQml0cyk6
CisgICAgICAgIChKU0M6OkRGRzo6TWluaWZpZWRJRDo6Yml0cyBjb25zdCk6CisgICAgICAgIChK
U0M6OkRGRzo6TWluaWZpZWRJRDo6aW52YWxpZEluZGV4KToKKyAgICAgICAgKEpTQzo6REZHOjpN
aW5pZmllZElEOjpvdGhlckludmFsaWRJbmRleCk6CisgICAgICAgIChKU0M6OkRGRzo6TWluaWZp
ZWRJRDo6bm9kZSBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkRGRzo6TWluaWZpZWRJ
RDo6aW52YWxpZElEKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6REZHOjpNaW5pZmllZElEOjpv
dGhlckludmFsaWRJRCk6IERlbGV0ZWQuCisgICAgICAgICogZGZnL0RGR1ZhbHVlU291cmNlLmg6
CisgICAgICAgIChKU0M6OkRGRzo6VmFsdWVTb3VyY2U6OlZhbHVlU291cmNlKToKKyAgICAgICAg
KiBkZmcvREZHVmFyaWFibGVFdmVudC5oOgorICAgICAgICAoSlNDOjpERkc6OlZhcmlhYmxlRXZl
bnQ6OmRhdGFGb3JtYXQgY29uc3QpOgorCiAyMDE5LTA0LTIyICBZdXN1a2UgU3V6dWtpICA8eXN1
enVraUBhcHBsZS5jb20+CiAKICAgICAgICAgW0pTQ10gVXNlIHZvbGF0aWxlIGxvYWQgdG8gcG9w
dWxhdGUgYmFja2luZyBwYWdlIGluIE1hcmtlZEJsb2NrOjpGb290ZXIgaW5zdGVhZCBvZiB1c2lu
ZyBob2xkTG9jawpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0Rh
dGFGb3JtYXQuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9EYXRhRm9ybWF0LmgK
aW5kZXggZmMyZGI1OTY4ODlhZjE3YzFlMTY1ZDRkYWU2NmViMDM4OWQ1NDY5NC4uMzJmNTg4ZGJm
ZjY4YjkzOTA3MThiY2QxNTlmNWNiZDRmZGRlYWZiNSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2J5dGVjb2RlL0RhdGFGb3JtYXQuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvYnl0ZWNvZGUvRGF0YUZvcm1hdC5oCkBAIC0zNSw3ICszNSw3IEBAIG5hbWVzcGFjZSBKU0Mg
ewogLy8gVmFsdWVzIG1heSBiZSB1bmJveGVkIHByaW1pdGl2ZXMgKGludDMyLCBkb3VibGUsIG9y
IGNlbGwpLCBvciBib3hlZCBhcyBhIEpTVmFsdWUuCiAvLyBGb3IgYm94ZWQgdmFsdWVzLCB3ZSBt
YXkga25vdyB0aGUgdHlwZSBvZiBib3hpbmcgdGhhdCBoYXMgdGFrZW4gcGxhY2UuCiAvLyAoTWF5
IGFsc28gbmVlZCBib29sLCBhcnJheSwgb2JqZWN0LCBzdHJpbmcgdHlwZXMhKQotZW51bSBEYXRh
Rm9ybWF0IHsKK2VudW0gRGF0YUZvcm1hdCA6IHVpbnQ4X3QgewogICAgIERhdGFGb3JtYXROb25l
ID0gMCwKICAgICBEYXRhRm9ybWF0SW50MzIgPSAxLAogICAgIERhdGFGb3JtYXRJbnQ1MiA9IDIs
IC8vIEludDUyJ3MgYXJlIGxlZnQtc2hpZnRlZCBieSAxMiBieSBkZWZhdWx0LgpkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1ZhbHVlUmVjb3ZlcnkuaCBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9WYWx1ZVJlY292ZXJ5LmgKaW5kZXggYzk4ZmQyMDc1
YWI3OTljOTcyZjVmYWYyNGNjNWQ2OWY1YTEyZjk3ZC4uNGU5OTU2N2YxNzk4MmUwZmQ0YTM1YTA5
MWUzMzcxNDlkZDlmMTI2YiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVj
b2RlL1ZhbHVlUmVjb3ZlcnkuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUv
VmFsdWVSZWNvdmVyeS5oCkBAIC00MTksNyArNDE5LDcgQEAgY2xhc3MgVmFsdWVSZWNvdmVyeSB7
CiAjZW5kaWYKICAgICAgICAgaW50IHZpcnR1YWxSZWc7CiAgICAgICAgIEVuY29kZWRKU1ZhbHVl
IGNvbnN0YW50OwotICAgICAgICB1aW50cHRyX3Qgbm9kZUlEOworICAgICAgICB1bnNpZ25lZCBu
b2RlSUQ7CiAgICAgfSBtX3NvdXJjZTsKIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9kZmcvREZHTWluaWZpZWRJRC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9E
RkdNaW5pZmllZElELmgKaW5kZXggZjc0MWU3ZTFmZGVjMTY1ODQ2ODcyN2Y3OGZjZGI0MmUwMTJh
MjhlZS4uZjBlY2QwYTNiYTVmZDFlYTA1ZTc3ZmI1MzFjZTlmNTlmMDgyMWI3NSAxMDA2NDQKLS0t
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdNaW5pZmllZElELmgKKysrIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL2RmZy9ERkdNaW5pZmllZElELmgKQEAgLTI2LDYgKzI2LDcgQEAKICNw
cmFnbWEgb25jZQogCiAjaW5jbHVkZSAiREZHQ29tbW9uLmgiCisjaW5jbHVkZSAiREZHTm9kZS5o
IgogI2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+CiAjaW5jbHVkZSA8d3RmL1ByaW50U3RyZWFtLmg+
CiAKQEAgLTM4LDQ2ICszOSw0NCBAQCBzdHJ1Y3QgTm9kZTsKIAogY2xhc3MgTWluaWZpZWRJRCB7
CiBwdWJsaWM6Ci0gICAgTWluaWZpZWRJRCgpIDogbV9pZChpbnZhbGlkSUQoKSkgeyB9Ci0gICAg
TWluaWZpZWRJRChXVEY6Okhhc2hUYWJsZURlbGV0ZWRWYWx1ZVR5cGUpIDogbV9pZChvdGhlcklu
dmFsaWRJRCgpKSB7IH0KLSAgICBleHBsaWNpdCBNaW5pZmllZElEKE5vZGUqIG5vZGUpIDogbV9p
ZChiaXR3aXNlX2Nhc3Q8dWludHB0cl90Pihub2RlKSkgeyB9Ci0gICAgCi0gICAgYm9vbCBvcGVy
YXRvciEoKSBjb25zdCB7IHJldHVybiBtX2lkID09IGludmFsaWRJRCgpOyB9CisgICAgTWluaWZp
ZWRJRCgpIDogbV9pbmRleChpbnZhbGlkSW5kZXgoKSkgeyB9CisgICAgTWluaWZpZWRJRChXVEY6
Okhhc2hUYWJsZURlbGV0ZWRWYWx1ZVR5cGUpIDogbV9pbmRleChvdGhlckludmFsaWRJbmRleCgp
KSB7IH0KKyAgICBleHBsaWNpdCBNaW5pZmllZElEKE5vZGUqIG5vZGUpIDogbV9pbmRleChub2Rl
LT5pbmRleCgpKQorICAgIHsKKyAgICAgICAgUkVMRUFTRV9BU1NFUlQobV9pbmRleCAhPSBpbnZh
bGlkSW5kZXgoKSAmJiBtX2luZGV4ICE9IG90aGVySW52YWxpZEluZGV4KCkpOworICAgIH0KICAg
ICAKLSAgICAvLyBUaGlzIHRha2VzIEdyYXBoJiB0byByZW1pbmQgeW91LCB0aGF0IHlvdSBzaG91
bGQgb25seSBiZSBjYWxsaW5nIHRoaXMgbWV0aG9kCi0gICAgLy8gd2hlbiB5b3UncmUgaW4gdGhl
IG1haW4gY29tcGlsYXRpb24gcGFzcyAoaS5lLiB5b3UgaGF2ZSBhIGdyYXBoKSBhbmQgbm90IGxh
dGVyLAotICAgIC8vIGxpa2UgZHVyaW5nIE9TUiBleGl0IGNvbXBpbGF0aW9uLgotICAgIE5vZGUq
IG5vZGUoY29uc3QgR3JhcGgmKSBjb25zdCB7IHJldHVybiBiaXR3aXNlX2Nhc3Q8Tm9kZSo+KG1f
aWQpOyB9CisgICAgYm9vbCBvcGVyYXRvciEoKSBjb25zdCB7IHJldHVybiBtX2luZGV4ID09IGlu
dmFsaWRJbmRleCgpOyB9CiAgICAgCi0gICAgYm9vbCBvcGVyYXRvcj09KGNvbnN0IE1pbmlmaWVk
SUQmIG90aGVyKSBjb25zdCB7IHJldHVybiBtX2lkID09IG90aGVyLm1faWQ7IH0KLSAgICBib29s
IG9wZXJhdG9yIT0oY29uc3QgTWluaWZpZWRJRCYgb3RoZXIpIGNvbnN0IHsgcmV0dXJuIG1faWQg
IT0gb3RoZXIubV9pZDsgfQotICAgIGJvb2wgb3BlcmF0b3I8KGNvbnN0IE1pbmlmaWVkSUQmIG90
aGVyKSBjb25zdCB7IHJldHVybiBtX2lkIDwgb3RoZXIubV9pZDsgfQotICAgIGJvb2wgb3BlcmF0
b3I+KGNvbnN0IE1pbmlmaWVkSUQmIG90aGVyKSBjb25zdCB7IHJldHVybiBtX2lkID4gb3RoZXIu
bV9pZDsgfQotICAgIGJvb2wgb3BlcmF0b3I8PShjb25zdCBNaW5pZmllZElEJiBvdGhlcikgY29u
c3QgeyByZXR1cm4gbV9pZCA8PSBvdGhlci5tX2lkOyB9Ci0gICAgYm9vbCBvcGVyYXRvcj49KGNv
bnN0IE1pbmlmaWVkSUQmIG90aGVyKSBjb25zdCB7IHJldHVybiBtX2lkID49IG90aGVyLm1faWQ7
IH0KKyAgICBib29sIG9wZXJhdG9yPT0oY29uc3QgTWluaWZpZWRJRCYgb3RoZXIpIGNvbnN0IHsg
cmV0dXJuIG1faW5kZXggPT0gb3RoZXIubV9pbmRleDsgfQorICAgIGJvb2wgb3BlcmF0b3IhPShj
b25zdCBNaW5pZmllZElEJiBvdGhlcikgY29uc3QgeyByZXR1cm4gbV9pbmRleCAhPSBvdGhlci5t
X2luZGV4OyB9CisgICAgYm9vbCBvcGVyYXRvcjwoY29uc3QgTWluaWZpZWRJRCYgb3RoZXIpIGNv
bnN0IHsgcmV0dXJuIG1faW5kZXggPCBvdGhlci5tX2luZGV4OyB9CisgICAgYm9vbCBvcGVyYXRv
cj4oY29uc3QgTWluaWZpZWRJRCYgb3RoZXIpIGNvbnN0IHsgcmV0dXJuIG1faW5kZXggPiBvdGhl
ci5tX2luZGV4OyB9CisgICAgYm9vbCBvcGVyYXRvcjw9KGNvbnN0IE1pbmlmaWVkSUQmIG90aGVy
KSBjb25zdCB7IHJldHVybiBtX2luZGV4IDw9IG90aGVyLm1faW5kZXg7IH0KKyAgICBib29sIG9w
ZXJhdG9yPj0oY29uc3QgTWluaWZpZWRJRCYgb3RoZXIpIGNvbnN0IHsgcmV0dXJuIG1faW5kZXgg
Pj0gb3RoZXIubV9pbmRleDsgfQogICAgIAotICAgIHVuc2lnbmVkIGhhc2goKSBjb25zdCB7IHJl
dHVybiBXVEY6OkludEhhc2g8dWludHB0cl90Pjo6aGFzaChtX2lkKTsgfQorICAgIHVuc2lnbmVk
IGhhc2goKSBjb25zdCB7IHJldHVybiBXVEY6OkludEhhc2g8dW5zaWduZWQ+OjpoYXNoKG1faW5k
ZXgpOyB9CiAgICAgCi0gICAgdm9pZCBkdW1wKFByaW50U3RyZWFtJiBvdXQpIGNvbnN0IHsgb3V0
LnByaW50KFJhd1BvaW50ZXIocmVpbnRlcnByZXRfY2FzdDx2b2lkKj4obV9pZCkpKTsgfQorICAg
IHZvaWQgZHVtcChQcmludFN0cmVhbSYgb3V0KSBjb25zdCB7IG91dC5wcmludChtX2luZGV4KTsg
fQogICAgIAotICAgIGJvb2wgaXNIYXNoVGFibGVEZWxldGVkVmFsdWUoKSBjb25zdCB7IHJldHVy
biBtX2lkID09IG90aGVySW52YWxpZElEKCk7IH0KKyAgICBib29sIGlzSGFzaFRhYmxlRGVsZXRl
ZFZhbHVlKCkgY29uc3QgeyByZXR1cm4gbV9pbmRleCA9PSBvdGhlckludmFsaWRJbmRleCgpOyB9
CiAgICAgCi0gICAgc3RhdGljIE1pbmlmaWVkSUQgZnJvbUJpdHModWludHB0cl90IHZhbHVlKQor
ICAgIHN0YXRpYyBNaW5pZmllZElEIGZyb21CaXRzKHVuc2lnbmVkIHZhbHVlKQogICAgIHsKICAg
ICAgICAgTWluaWZpZWRJRCByZXN1bHQ7Ci0gICAgICAgIHJlc3VsdC5tX2lkID0gdmFsdWU7Cisg
ICAgICAgIHJlc3VsdC5tX2luZGV4ID0gdmFsdWU7CiAgICAgICAgIHJldHVybiByZXN1bHQ7CiAg
ICAgfQogICAgIAotICAgIHVpbnRwdHJfdCBiaXRzKCkgY29uc3QgeyByZXR1cm4gbV9pZDsgfQor
ICAgIHVpbnRwdHJfdCBiaXRzKCkgY29uc3QgeyByZXR1cm4gbV9pbmRleDsgfQogCiBwcml2YXRl
OgogICAgIGZyaWVuZCBjbGFzcyBNaW5pZmllZE5vZGU7CiAgICAgCi0gICAgc3RhdGljIHVpbnRw
dHJfdCBpbnZhbGlkSUQoKSB7IHJldHVybiBzdGF0aWNfY2FzdDx1aW50cHRyX3Q+KHN0YXRpY19j
YXN0PGludHB0cl90PigtMSkpOyB9Ci0gICAgc3RhdGljIHVpbnRwdHJfdCBvdGhlckludmFsaWRJ
RCgpIHsgcmV0dXJuIHN0YXRpY19jYXN0PHVpbnRwdHJfdD4oc3RhdGljX2Nhc3Q8aW50cHRyX3Q+
KC0yKSk7IH0KKyAgICBzdGF0aWMgdW5zaWduZWQgaW52YWxpZEluZGV4KCkgeyByZXR1cm4gc3Rh
dGljX2Nhc3Q8dW5zaWduZWQ+KHN0YXRpY19jYXN0PGludHB0cl90PigtMSkpOyB9CisgICAgc3Rh
dGljIHVuc2lnbmVkIG90aGVySW52YWxpZEluZGV4KCkgeyByZXR1cm4gc3RhdGljX2Nhc3Q8dW5z
aWduZWQ+KHN0YXRpY19jYXN0PGludHB0cl90PigtMikpOyB9CiAgICAgCi0gICAgdWludHB0cl90
IG1faWQ7CisgICAgdW5zaWduZWQgbV9pbmRleDsKIH07CiAKIHN0cnVjdCBNaW5pZmllZElESGFz
aCB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1ZhbHVlU291cmNl
LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1ZhbHVlU291cmNlLmgKaW5kZXggYzA1
ODRkNjlhMzlmM2I4NTJmODYwNDYxNzQ4NDIzYWNiZDY1Y2Y3NC4uYjVjM2M5ZGJlOTFjZGIxZTVm
N2FlN2MxOWRhMGEwNjEzYmY5MmRjZCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2RmZy9ERkdWYWx1ZVNvdXJjZS5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZH
VmFsdWVTb3VyY2UuaApAQCAtMTI1LDcgKzEyNSw3IEBAIGNsYXNzIFZhbHVlU291cmNlIHsKICAg
ICAKICAgICBWYWx1ZVNvdXJjZShWYWx1ZVNvdXJjZUtpbmQgdmFsdWVTb3VyY2VLaW5kLCBWaXJ0
dWFsUmVnaXN0ZXIgd2hlcmUpCiAgICAgICAgIDogbV9raW5kKHZhbHVlU291cmNlS2luZCkKLSAg
ICAgICAgLCBtX3ZhbHVlKHN0YXRpY19jYXN0PGludHB0cl90Pih3aGVyZS5vZmZzZXQoKSkpCisg
ICAgICAgICwgbV92YWx1ZSh3aGVyZS5vZmZzZXQoKSkKICAgICB7CiAgICAgICAgIEFTU0VSVChr
aW5kKCkgIT0gU291cmNlTm90U2V0KTsKICAgICAgICAgQVNTRVJUKGtpbmQoKSAhPSBIYXZlTm9k
ZSk7CkBAIC0yMDgsNyArMjA4LDcgQEAgY2xhc3MgVmFsdWVTb3VyY2UgewogICAgIAogcHJpdmF0
ZToKICAgICBWYWx1ZVNvdXJjZUtpbmQgbV9raW5kOwotICAgIHVpbnRwdHJfdCBtX3ZhbHVlOwor
ICAgIHVuc2lnbmVkIG1fdmFsdWU7CiB9OwogCiB9IH0gLy8gbmFtZXNwYWNlIEpTQzo6REZHCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1ZhcmlhYmxlRXZlbnQuaCBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHVmFyaWFibGVFdmVudC5oCmluZGV4IGVkNWQ2
NjA4NjBjNmNiZDNlZjA3ZjJlMDU0YzA0YjI3ZjY1OGQ5ZTMuLmFjMjUzMjdkMTRlMWMwOGQ3ZTRi
MTQ1NzJhN2ExMDZiMjJjMzUzOWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9k
ZmcvREZHVmFyaWFibGVFdmVudC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZH
VmFyaWFibGVFdmVudC5oCkBAIC0xOTgsNyArMTk4LDcgQEAgY2xhc3MgVmFyaWFibGVFdmVudCB7
CiAgICAgICAgIEFTU0VSVCgKICAgICAgICAgICAgIG1fa2luZCA9PSBCaXJ0aFRvRmlsbCB8fCBt
X2tpbmQgPT0gRmlsbCB8fCBtX2tpbmQgPT0gQmlydGhUb1NwaWxsIHx8IG1fa2luZCA9PSBTcGls
bAogICAgICAgICAgICAgfHwgbV9raW5kID09IFNldExvY2FsRXZlbnQpOwotICAgICAgICByZXR1
cm4gc3RhdGljX2Nhc3Q8RGF0YUZvcm1hdD4obV9kYXRhRm9ybWF0KTsKKyAgICAgICAgcmV0dXJu
IG1fZGF0YUZvcm1hdDsKICAgICB9CiAgICAgCiAgICAgTWFjcm9Bc3NlbWJsZXI6OlJlZ2lzdGVy
SUQgZ3ByKCkgY29uc3QKQEAgLTI2Miw3ICsyNjIsNyBAQCBjbGFzcyBWYXJpYWJsZUV2ZW50IHsK
ICAgICAKICAgICB1bmlvbiB7CiAgICAgICAgIGludCB2aXJ0dWFsUmVnOwotICAgICAgICB1aW50
cHRyX3QgaWQ7CisgICAgICAgIHVuc2lnbmVkIGlkOwogICAgIH0gbV93aGljaDsKICAgICAKICAg
ICAvLyBGb3IgQmlydGhUb0ZpbGwsIEZpbGw6CkBAIC0yNzYsNyArMjc2LDcgQEAgY2xhc3MgVmFy
aWFibGVFdmVudCB7CiAgICAgVmFyaWFibGVSZXByZXNlbnRhdGlvbiBtX3JlcHJlc2VudGF0aW9u
OwogICAgIAogICAgIGludDhfdCBtX2tpbmQ7Ci0gICAgaW50OF90IG1fZGF0YUZvcm1hdDsKKyAg
ICBEYXRhRm9ybWF0IG1fZGF0YUZvcm1hdCB7IERhdGFGb3JtYXROb25lIH07CiB9OwogCiB9IH0g
Ly8gbmFtZXNwYWNlIEpTQzo6REZHCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>368013</attachid>
            <date>2019-04-22 22:16:12 -0700</date>
            <delta_ts>2019-04-23 13:34:48 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-197186-20190422221612.patch</filename>
            <type>text/plain</type>
            <size>18094</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQ0NTM3CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBm
MWFlMjJiZGFhZjllNjhkMzliNDQyYTI0Mzg0NmYwNzdmNDdkYjk5Li5lNTI5MmYxZmQ4YmQzYjA4
YjU4N2MyN2M1Y2JkMTQzNTUyOGFhZjQ0IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw0NCBAQAorMjAxOS0wNC0yMiAgWXVzdWtlIFN1enVraSAgPHlzdXp1a2lAYXBwbGUuY29t
PgorCisgICAgICAgIFtKU0NdIFVzZSBub2RlIGluZGV4IGFzIERGRzo6TWluaWZpZWRJRAorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTk3MTg2CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgREZHIE5vZGVzIGNh
biBiZSBpZGVudGlmaWVkIHdpdGggaW5kZXggaWYgdGhlIGdyYXBoIGlzIGdpdmVuLiBXZSBzaG91
bGQgdXNlIHVuc2lnbmVkIGluZGV4IGFzIGEgREZHOjpNaW5pZmllZElEJ3MgdW5kZXJseWluZwor
ICAgICAgICBzb3VyY2UgaW5zdGVhZCBvZiBOb2RlKiB0byByZWR1Y2UgdGhlIHNpemUgb2YgVmFy
aWFibGVFdmVudCBmcm9tIDE2IHRvIDEyLiBWZWN0b3I8VmFyaWFibGVFdmVudD4gaXMgdGhlIG1h
aW4gZGF0YSBpbiBERkcncyBPU1IKKyAgICAgICAgdHJhY2tpbmcuIEl0IGlzIGtlcHQgYWZ0ZXIg
REZHIGNvbXBpbGF0aW9uIGlzIGRvbmUgdG8gbWFrZSBPU1Igd29yay4gV2Ugc2F3IHRoYXQgdGhp
cyBpcyBhbGxvY2F0ZWQgd2l0aCBsYXJnZSBzaXplIGluIEdNYWlsLgorCisgICAgICAgICogSmF2
YVNjcmlwdENvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBieXRlY29k
ZS9EYXRhRm9ybWF0Lmg6CisgICAgICAgICogYnl0ZWNvZGUvVmFsdWVSZWNvdmVyeS5oOgorICAg
ICAgICAqIGRmZy9ERkdHZW5lcmF0aW9uSW5mby5oOgorICAgICAgICAqIGRmZy9ERkdNaW5pZmll
ZElELmg6CisgICAgICAgIChKU0M6OkRGRzo6TWluaWZpZWRJRDo6TWluaWZpZWRJRCk6CisgICAg
ICAgIChKU0M6OkRGRzo6TWluaWZpZWRJRDo6b3BlcmF0b3IhIGNvbnN0KToKKyAgICAgICAgKEpT
Qzo6REZHOjpNaW5pZmllZElEOjpvcGVyYXRvcj09IGNvbnN0KToKKyAgICAgICAgKEpTQzo6REZH
OjpNaW5pZmllZElEOjpvcGVyYXRvciE9IGNvbnN0KToKKyAgICAgICAgKEpTQzo6REZHOjpNaW5p
ZmllZElEOjpvcGVyYXRvcjwgY29uc3QpOgorICAgICAgICAoSlNDOjpERkc6Ok1pbmlmaWVkSUQ6
Om9wZXJhdG9yPiBjb25zdCk6CisgICAgICAgIChKU0M6OkRGRzo6TWluaWZpZWRJRDo6b3BlcmF0
b3I8PSBjb25zdCk6CisgICAgICAgIChKU0M6OkRGRzo6TWluaWZpZWRJRDo6b3BlcmF0b3I+PSBj
b25zdCk6CisgICAgICAgIChKU0M6OkRGRzo6TWluaWZpZWRJRDo6aGFzaCBjb25zdCk6CisgICAg
ICAgIChKU0M6OkRGRzo6TWluaWZpZWRJRDo6ZHVtcCBjb25zdCk6CisgICAgICAgIChKU0M6OkRG
Rzo6TWluaWZpZWRJRDo6aXNIYXNoVGFibGVEZWxldGVkVmFsdWUgY29uc3QpOgorICAgICAgICAo
SlNDOjpERkc6Ok1pbmlmaWVkSUQ6OmZyb21CaXRzKToKKyAgICAgICAgKEpTQzo6REZHOjpNaW5p
ZmllZElEOjpiaXRzIGNvbnN0KToKKyAgICAgICAgKEpTQzo6REZHOjpNaW5pZmllZElEOjppbnZh
bGlkSW5kZXgpOgorICAgICAgICAoSlNDOjpERkc6Ok1pbmlmaWVkSUQ6Om90aGVySW52YWxpZElu
ZGV4KToKKyAgICAgICAgKEpTQzo6REZHOjpNaW5pZmllZElEOjpub2RlIGNvbnN0KTogRGVsZXRl
ZC4KKyAgICAgICAgKEpTQzo6REZHOjpNaW5pZmllZElEOjppbnZhbGlkSUQpOiBEZWxldGVkLgor
ICAgICAgICAoSlNDOjpERkc6Ok1pbmlmaWVkSUQ6Om90aGVySW52YWxpZElEKTogRGVsZXRlZC4K
KyAgICAgICAgKiBkZmcvREZHTWluaWZpZWRJRElubGluZXMuaDogQWRkZWQuCisgICAgICAgIChK
U0M6OkRGRzo6TWluaWZpZWRJRDo6TWluaWZpZWRJRCk6CisgICAgICAgICogZGZnL0RGR1ZhbHVl
U291cmNlLmg6CisgICAgICAgIChKU0M6OkRGRzo6VmFsdWVTb3VyY2U6OlZhbHVlU291cmNlKToK
KyAgICAgICAgKiBkZmcvREZHVmFyaWFibGVFdmVudC5oOgorICAgICAgICAoSlNDOjpERkc6OlZh
cmlhYmxlRXZlbnQ6OmRhdGFGb3JtYXQgY29uc3QpOgorCiAyMDE5LTA0LTIyICBZdXN1a2UgU3V6
dWtpICA8eXN1enVraUBhcHBsZS5jb20+CiAKICAgICAgICAgW0pTQ10gVXNlIHZvbGF0aWxlIGxv
YWQgdG8gcG9wdWxhdGUgYmFja2luZyBwYWdlIGluIE1hcmtlZEJsb2NrOjpGb290ZXIgaW5zdGVh
ZCBvZiB1c2luZyBob2xkTG9jawpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0ph
dmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvSmF2YVNjcmlwdENvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCBlMGVm
MzAxN2MwODI0OTMxMDljNzgxM2RlZDIzZGNhNjllZDlkMGYyLi45MTc0YmZlOTExZjg0YmMwYWQ5
YTMyMTJjNTRlMTkyNmY4OTQ2MTRjIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
SmF2YVNjcmlwdENvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAt
MTc4Myw2ICsxNzgzLDcgQEAKIAkJRTM1RTAzNjAxQjdBQjQzRTAwNzNBRDJBIC8qIEluc3BlY3Rv
ckluc3RydW1lbnRhdGlvbk9iamVjdC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gRTM1RTAzNUUxQjdBQjQzRTAwNzNBRDJBIC8qIEluc3BlY3Rvckluc3Ry
dW1lbnRhdGlvbk9iamVjdC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUs
ICk7IH07IH07CiAJCUUzNkNDOTQ3MjA4NjMxNEYwMDUxRkZENiAvKiBXYXNtQ3JlYXRpb25Nb2Rl
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMzZDQzk0
NjIwODYzMTRGMDA1MUZGRDYgLyogV2FzbUNyZWF0aW9uTW9kZS5oICovOyBzZXR0aW5ncyA9IHtB
VFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUUzNzk0RTc2MUI3N0VCOTcwMDU1NDNB
RSAvKiBNb2R1bGVBbmFseXplci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gRTM3OTRFNzQxQjc3RUI5NzAwNTU0M0FFIC8qIE1vZHVsZUFuYWx5emVyLmgg
Ki87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJRTM4NTBC
MTUyMjZFRDY0MTAwOUFCRjlDIC8qIERGR01pbmlmaWVkSURJbmxpbmVzLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMzg1MEIxNDIyNkVENjNFMDA5QUJG
OUMgLyogREZHTWluaWZpZWRJRElubGluZXMuaCAqLzsgfTsKIAkJRTM4OTNBMUQyMjAzQTdDNjAw
RTc5QTc0IC8qIEFzeW5jRnJvbVN5bmNJdGVyYXRvclByb3RvdHlwZS5sdXQuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUzODkzQTFDMjIwM0E3QzYwMEU3
OUE3NCAvKiBBc3luY0Zyb21TeW5jSXRlcmF0b3JQcm90b3R5cGUubHV0LmggKi87IH07CiAJCUUz
OEQ5OTlDMjIxQjc4QkIwMEQ1MDQ3NCAvKiBKU05vbkRlc3RydWN0aWJsZVByb3h5LmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMzhEOTk5QTIyMUI3ODlG
MDBENTA0NzQgLyogSlNOb25EZXN0cnVjdGlibGVQcm94eS5oICovOyBzZXR0aW5ncyA9IHtBVFRS
SUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUUzOTAwNjIxMjIwOEJGQzQwMDEwMTlDRiAv
KiBTdWJzcGFjZUFjY2Vzcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gRTM5MDA2MjAyMjA4QkZDMzAwMTAxOUNGIC8qIFN1YnNwYWNlQWNjZXNzLmggKi87
IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKQEAgLTQ3ODEsNiAr
NDc4Miw3IEBACiAJCUUzNzk0RTc0MUI3N0VCOTcwMDU1NDNBRSAvKiBNb2R1bGVBbmFseXplci5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBNb2R1bGVBbmFseXplci5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFMzgwQTc2QjFEQ0Q3MTk1MDAwRjg5RTYgLyogTWFj
cm9Bc3NlbWJsZXJIZWxwZXJzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE1h
Y3JvQXNzZW1ibGVySGVscGVycy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFMzgw
RDY2QjFGMTkyNDlEMDBBNTkwOTUgLyogQnVpbHRpbk5hbWVzLmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEJ1aWx0aW5OYW1lcy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CisJCUUzODUwQjE0MjI2RUQ2M0UwMDlBQkY5QyAvKiBERkdNaW5pZmllZElESW5s
aW5lcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IG5hbWUgPSBERkdNaW5pZmllZElESW5saW5lcy5oOyBwYXRoID0gZGZn
L0RGR01pbmlmaWVkSURJbmxpbmVzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUUz
ODkzQTFDMjIwM0E3QzYwMEU3OUE3NCAvKiBBc3luY0Zyb21TeW5jSXRlcmF0b3JQcm90b3R5cGUu
bHV0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEFzeW5jRnJvbVN5bmNJdGVy
YXRvclByb3RvdHlwZS5sdXQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTM4RDA2
MEIxRjhFODE0MTAwNjQ5Q0YyIC8qIEpTU2NyaXB0RmV0Y2hQYXJhbWV0ZXJzLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTU2NyaXB0RmV0Y2hQYXJhbWV0ZXJzLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUUzOEQwNjBDMUY4RTgxNDEwMDY0OUNGMiAvKiBTY3Jp
cHRGZXRjaFBhcmFtZXRlcnMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU2Ny
aXB0RmV0Y2hQYXJhbWV0ZXJzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC02MDAy
LDkgKzYwMDQsOSBAQAogCQkJCTE0MkQ2RjA3MTM1MzlBMjgwMEIwMkU4NiAvKiBNYXJrZWRCbG9j
ay5oICovLAogCQkJCTBGN0M1RkI3MUQ4ODhBMDEwMDQ0RjVFMiAvKiBNYXJrZWRCbG9ja0lubGlu
ZXMuaCAqLywKIAkJCQkxNDE0NDhDQTEzQTE3NkVDMDBGNUJBMUEgLyogTWFya2VkQmxvY2tTZXQu
aCAqLywKKwkJCQkzM0IyQTU0NTIyNjUxRDUzMDA1QTBGNzkgLyogTWFya2VkU3BhY2UuY3BwICov
LAogCQkJCTE0RDJGM0Q5MTM5RjRCRTIwMDQ5MTAzMSAvKiBNYXJrZWRTcGFjZS5oICovLAogCQkJ
CTBGN0RGMTMwMUUyOTcwRDUwMDk1OTUxQiAvKiBNYXJrZWRTcGFjZUlubGluZXMuaCAqLywKLQkJ
CQkzM0IyQTU0NTIyNjUxRDUzMDA1QTBGNzkgLyogTWFya2VkU3BhY2UuY3BwICovLAogCQkJCTBG
NjYwRTMzMUUwNTE3QjcwMDMxNDYyQyAvKiBNYXJraW5nQ29uc3RyYWludC5jcHAgKi8sCiAJCQkJ
MEY2NjBFMzQxRTA1MTdCNzAwMzE0NjJDIC8qIE1hcmtpbmdDb25zdHJhaW50LmggKi8sCiAJCQkJ
MEY2NjBFMzUxRTA1MTdCNzAwMzE0NjJDIC8qIE1hcmtpbmdDb25zdHJhaW50U2V0LmNwcCAqLywK
QEAgLTc1OTgsNiArNzYwMCw3IEBACiAJCQkJMEYxNzI1RkUxQjQ4NzE5QTAwQUMzQTU1IC8qIERG
R01pbmlmaWVkR3JhcGguY3BwICovLAogCQkJCTBGMkJEQzNEMTUyMjgwMTcwMENEODkxMCAvKiBE
RkdNaW5pZmllZEdyYXBoLmggKi8sCiAJCQkJMEZCNEI1MTAxNkIzQTk2NDAwM0Y2OTZCIC8qIERG
R01pbmlmaWVkSUQuaCAqLywKKwkJCQlFMzg1MEIxNDIyNkVENjNFMDA5QUJGOUMgLyogREZHTWlu
aWZpZWRJRElubGluZXMuaCAqLywKIAkJCQkwRjJCREM0QzE1MjI4MTgzMDBDRDg5MTAgLyogREZH
TWluaWZpZWROb2RlLmNwcCAqLywKIAkJCQkwRjJCREMzRTE1MjI4MDE3MDBDRDg5MTAgLyogREZH
TWluaWZpZWROb2RlLmggKi8sCiAJCQkJMEY4RjE0MzExQURGMDkwMTAwRUQ3OTJDIC8qIERGR01v
dkhpbnRSZW1vdmFsUGhhc2UuY3BwICovLApAQCAtODUyMSw3ICs4NTI0LDYgQEAKIAkJCQkwRjJD
NjNCQzFFNjM0NDBDMDBDMTM4MzkgLyogQWlyQmxvY2tJbnNlcnRpb25TZXQuaCBpbiBIZWFkZXJz
ICovLAogCQkJCTBGQjM4NzhFMUJGQkM0NEQwMEUzQUIxRSAvKiBBaXJCbG9ja1dvcmtsaXN0Lmgg
aW4gSGVhZGVycyAqLywKIAkJCQkwRjc5QzdDQTFFNzRDOTNCMDBFQjM0RDEgLyogQWlyQnJlYWtD
cml0aWNhbEVkZ2VzLmggaW4gSGVhZGVycyAqLywKLQkJCQkzM0IyQTU0NzIyNjUzNDgxMDA1QTBG
NzkgLyogQjNWYWx1ZUlubGluZXMuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGNjE4MzJBMUM0NUJG
MDcwMDcyNDUwQiAvKiBBaXJDQ2FsbGluZ0NvbnZlbnRpb24uaCBpbiBIZWFkZXJzICovLAogCQkJ
CTBGRUM4NTc0MUJEQUNEQzcwMDgwRkY3NCAvKiBBaXJDQ2FsbFNwZWNpYWwuaCBpbiBIZWFkZXJz
ICovLAogCQkJCTBGRjRCNEM3MUU4ODkzQzUwMERCQkU4NiAvKiBBaXJDRkcuaCBpbiBIZWFkZXJz
ICovLApAQCAtODcxNCw2ICs4NzE2LDcgQEAKIAkJCQkwRkVDODU0MDFCREFDREFDMDA4MEZGNzQg
LyogQjNVc2VDb3VudHMuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGRUM4NTQyMUJEQUNEQUMwMDgw
RkY3NCAvKiBCM1ZhbGlkYXRlLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRkVDODU0NDFCREFDREFD
MDA4MEZGNzQgLyogQjNWYWx1ZS5oIGluIEhlYWRlcnMgKi8sCisJCQkJMzNCMkE1NDcyMjY1MzQ4
MTAwNUEwRjc5IC8qIEIzVmFsdWVJbmxpbmVzLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRjMzOEUx
NTFCRjAyNzZDMDAxM0M4OEYgLyogQjNWYWx1ZUtleS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEYz
MzhFMTYxQkYwMjc2QzAwMTNDODhGIC8qIEIzVmFsdWVLZXlJbmxpbmVzLmggaW4gSGVhZGVycyAq
LywKIAkJCQkwRkVDODU0NzFCREFDREFDMDA4MEZGNzQgLyogQjNWYWx1ZVJlcC5oIGluIEhlYWRl
cnMgKi8sCkBAIC04OTY3LDYgKzg5NzAsNyBAQAogCQkJCTBGNTg3NEVFMTk0RkVCMTIwMEFBQjJD
MSAvKiBERkdNYXlFeGl0LmggaW4gSGVhZGVycyAqLywKIAkJCQkwRjJCREM0NTE1MjI4MDFCMDBD
RDg5MTAgLyogREZHTWluaWZpZWRHcmFwaC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEYyRTg5MkQx
NkQwMkJBRjAwOUU0RkQyIC8qIERGR01pbmlmaWVkSUQuaCBpbiBIZWFkZXJzICovLAorCQkJCUUz
ODUwQjE1MjI2RUQ2NDEwMDlBQkY5QyAvKiBERkdNaW5pZmllZElESW5saW5lcy5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJMEYyQkRDNDYxNTIyODAyMDAwQ0Q4OTEwIC8qIERGR01pbmlmaWVkTm9kZS5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJMEY4RjE0MzYxQURGMDkwMTAwRUQ3OTJDIC8qIERGR01vdkhp
bnRSZW1vdmFsUGhhc2UuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGRjJDRDVDMUI2MUE0RjgwMDQ5
NTVBOCAvKiBERkdNdWx0aUdldEJ5T2Zmc2V0RGF0YS5oIGluIEhlYWRlcnMgKi8sCkBAIC0xMDcx
OCw2ICsxMDcyMiw3IEBACiAJCQkJNTMzM0JCREMyMTEwRjdEOTAwNzYxOEVDIC8qIERGR1NwZWN1
bGF0aXZlSklULmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTUzMzNCQkRCMjExMEY3RDIwMDc2MThF
QyAvKiBERkdTcGVjdWxhdGl2ZUpJVDMyXzY0LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTUzMzNC
QkREMjExMEY3RTEwMDc2MThFQyAvKiBERkdTcGVjdWxhdGl2ZUpJVDY0LmNwcCBpbiBTb3VyY2Vz
ICovLAorCQkJCTMzQjJBNTQ4MjI2NTQzQkYwMDVBMEY3OSAvKiBGVExMb3dlckRGR1RvQjMuY3Bw
IGluIFNvdXJjZXMgKi8sCiAJCQkJNTM2QjMxOUUxRjczNUYxNjAwMzdGQzMzIC8qIExvd0xldmVs
SW50ZXJwcmV0ZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMEZGNDI3NEExNThFQkU5MTAwNENC
OUZGIC8qIHVkaXM4Ni5jIGluIFNvdXJjZXMgKi8sCiAJCQkJMEZGNDI3NDAxNThFQkU4QjAwNENC
OUZGIC8qIHVkaXM4Nl9kZWNvZGUuYyBpbiBTb3VyY2VzICovLApAQCAtMTA4NTEsNyArMTA4NTYs
NiBAQAogCQkJCTUzNkIzMTBDMUY3MUM1OTkwMDM3RkMzMyAvKiBVbmlmaWVkU291cmNlMTE5LmNw
cCBpbiBTb3VyY2VzICovLAogCQkJCTUzNkIzMTI2MUY3MUM1OTkwMDM3RkMzMyAvKiBVbmlmaWVk
U291cmNlMTIwLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTUzNkIzMTJEMUY3MUM1OTkwMDM3RkMz
MyAvKiBVbmlmaWVkU291cmNlMTIxLmNwcCBpbiBTb3VyY2VzICovLAotCQkJCTMzQjJBNTQ4MjI2
NTQzQkYwMDVBMEY3OSAvKiBGVExMb3dlckRGR1RvQjMuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJ
NTM2QjMxMjUxRjcxQzU5OTAwMzdGQzMzIC8qIFVuaWZpZWRTb3VyY2UxMjIuY3BwIGluIFNvdXJj
ZXMgKi8sCiAJCQkJNTM2QjMxMUUxRjcxQzU5OTAwMzdGQzMzIC8qIFVuaWZpZWRTb3VyY2UxMjMu
Y3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNTM2QjMxMTQxRjcxQzU5OTAwMzdGQzMzIC8qIFVuaWZp
ZWRTb3VyY2UxMjQuY3BwIGluIFNvdXJjZXMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvYnl0ZWNvZGUvRGF0YUZvcm1hdC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5
dGVjb2RlL0RhdGFGb3JtYXQuaAppbmRleCBmYzJkYjU5Njg4OWFmMTdjMWUxNjVkNGRhZTY2ZWIw
Mzg5ZDU0Njk0Li4zMmY1ODhkYmZmNjhiOTM5MDcxOGJjZDE1OWY1Y2JkNGZkZGVhZmI1IDEwMDY0
NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvRGF0YUZvcm1hdC5oCisrKyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9EYXRhRm9ybWF0LmgKQEAgLTM1LDcgKzM1
LDcgQEAgbmFtZXNwYWNlIEpTQyB7CiAvLyBWYWx1ZXMgbWF5IGJlIHVuYm94ZWQgcHJpbWl0aXZl
cyAoaW50MzIsIGRvdWJsZSwgb3IgY2VsbCksIG9yIGJveGVkIGFzIGEgSlNWYWx1ZS4KIC8vIEZv
ciBib3hlZCB2YWx1ZXMsIHdlIG1heSBrbm93IHRoZSB0eXBlIG9mIGJveGluZyB0aGF0IGhhcyB0
YWtlbiBwbGFjZS4KIC8vIChNYXkgYWxzbyBuZWVkIGJvb2wsIGFycmF5LCBvYmplY3QsIHN0cmlu
ZyB0eXBlcyEpCi1lbnVtIERhdGFGb3JtYXQgeworZW51bSBEYXRhRm9ybWF0IDogdWludDhfdCB7
CiAgICAgRGF0YUZvcm1hdE5vbmUgPSAwLAogICAgIERhdGFGb3JtYXRJbnQzMiA9IDEsCiAgICAg
RGF0YUZvcm1hdEludDUyID0gMiwgLy8gSW50NTIncyBhcmUgbGVmdC1zaGlmdGVkIGJ5IDEyIGJ5
IGRlZmF1bHQuCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvVmFs
dWVSZWNvdmVyeS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1ZhbHVlUmVjb3Zl
cnkuaAppbmRleCBjOThmZDIwNzVhYjc5OWM5NzJmNWZhZjI0Y2M1ZDY5ZjVhMTJmOTdkLi40ZTk5
NTY3ZjE3OTgyZTBmZDRhMzVhMDkxZTMzNzE0OWRkOWYxMjZiIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvVmFsdWVSZWNvdmVyeS5oCisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ieXRlY29kZS9WYWx1ZVJlY292ZXJ5LmgKQEAgLTQxOSw3ICs0MTksNyBAQCBj
bGFzcyBWYWx1ZVJlY292ZXJ5IHsKICNlbmRpZgogICAgICAgICBpbnQgdmlydHVhbFJlZzsKICAg
ICAgICAgRW5jb2RlZEpTVmFsdWUgY29uc3RhbnQ7Ci0gICAgICAgIHVpbnRwdHJfdCBub2RlSUQ7
CisgICAgICAgIHVuc2lnbmVkIG5vZGVJRDsKICAgICB9IG1fc291cmNlOwogfTsKIApkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdHZW5lcmF0aW9uSW5mby5oIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdHZW5lcmF0aW9uSW5mby5oCmluZGV4IGNkODEyMDdi
N2NjNTAyODgyZGZjZmI0MWY5YmY2ZjgyNDBiY2ExNWYuLmFkZjJiZGFlNTM3MTQ2MTMzYWVjODI5
ODM5ZTRjZTgzYzUyNWJmNWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcv
REZHR2VuZXJhdGlvbkluZm8uaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0dl
bmVyYXRpb25JbmZvLmgKQEAgLTI3LDcgKzI3LDcgQEAKIAogI2lmIEVOQUJMRShERkdfSklUKQog
Ci0jaW5jbHVkZSAiREZHTWluaWZpZWRJRC5oIgorI2luY2x1ZGUgIkRGR01pbmlmaWVkSURJbmxp
bmVzLmgiCiAjaW5jbHVkZSAiREZHVmFyaWFibGVFdmVudC5oIgogI2luY2x1ZGUgIkRGR1Zhcmlh
YmxlRXZlbnRTdHJlYW0uaCIKICNpbmNsdWRlICJEYXRhRm9ybWF0LmgiCmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR01pbmlmaWVkSUQuaCBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9kZmcvREZHTWluaWZpZWRJRC5oCmluZGV4IGY3NDFlN2UxZmRlYzE2NTg0Njg3Mjdm
NzhmY2RiNDJlMDEyYTI4ZWUuLjMzNDFkNjdlNDBjMDdjMTdhZDAxYzVhMjc1MTQ5ZDllYzYyMTc3
YmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHTWluaWZpZWRJRC5o
CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHTWluaWZpZWRJRC5oCkBAIC0zOCw0
NiArMzgsNDEgQEAgc3RydWN0IE5vZGU7CiAKIGNsYXNzIE1pbmlmaWVkSUQgewogcHVibGljOgot
ICAgIE1pbmlmaWVkSUQoKSA6IG1faWQoaW52YWxpZElEKCkpIHsgfQotICAgIE1pbmlmaWVkSUQo
V1RGOjpIYXNoVGFibGVEZWxldGVkVmFsdWVUeXBlKSA6IG1faWQob3RoZXJJbnZhbGlkSUQoKSkg
eyB9Ci0gICAgZXhwbGljaXQgTWluaWZpZWRJRChOb2RlKiBub2RlKSA6IG1faWQoYml0d2lzZV9j
YXN0PHVpbnRwdHJfdD4obm9kZSkpIHsgfQorICAgIE1pbmlmaWVkSUQoKSA6IG1faW5kZXgoaW52
YWxpZEluZGV4KCkpIHsgfQorICAgIE1pbmlmaWVkSUQoV1RGOjpIYXNoVGFibGVEZWxldGVkVmFs
dWVUeXBlKSA6IG1faW5kZXgob3RoZXJJbnZhbGlkSW5kZXgoKSkgeyB9CisgICAgZXhwbGljaXQg
TWluaWZpZWRJRChOb2RlKiBub2RlKTsKICAgICAKLSAgICBib29sIG9wZXJhdG9yISgpIGNvbnN0
IHsgcmV0dXJuIG1faWQgPT0gaW52YWxpZElEKCk7IH0KKyAgICBib29sIG9wZXJhdG9yISgpIGNv
bnN0IHsgcmV0dXJuIG1faW5kZXggPT0gaW52YWxpZEluZGV4KCk7IH0KICAgICAKLSAgICAvLyBU
aGlzIHRha2VzIEdyYXBoJiB0byByZW1pbmQgeW91LCB0aGF0IHlvdSBzaG91bGQgb25seSBiZSBj
YWxsaW5nIHRoaXMgbWV0aG9kCi0gICAgLy8gd2hlbiB5b3UncmUgaW4gdGhlIG1haW4gY29tcGls
YXRpb24gcGFzcyAoaS5lLiB5b3UgaGF2ZSBhIGdyYXBoKSBhbmQgbm90IGxhdGVyLAotICAgIC8v
IGxpa2UgZHVyaW5nIE9TUiBleGl0IGNvbXBpbGF0aW9uLgotICAgIE5vZGUqIG5vZGUoY29uc3Qg
R3JhcGgmKSBjb25zdCB7IHJldHVybiBiaXR3aXNlX2Nhc3Q8Tm9kZSo+KG1faWQpOyB9CisgICAg
Ym9vbCBvcGVyYXRvcj09KGNvbnN0IE1pbmlmaWVkSUQmIG90aGVyKSBjb25zdCB7IHJldHVybiBt
X2luZGV4ID09IG90aGVyLm1faW5kZXg7IH0KKyAgICBib29sIG9wZXJhdG9yIT0oY29uc3QgTWlu
aWZpZWRJRCYgb3RoZXIpIGNvbnN0IHsgcmV0dXJuIG1faW5kZXggIT0gb3RoZXIubV9pbmRleDsg
fQorICAgIGJvb2wgb3BlcmF0b3I8KGNvbnN0IE1pbmlmaWVkSUQmIG90aGVyKSBjb25zdCB7IHJl
dHVybiBtX2luZGV4IDwgb3RoZXIubV9pbmRleDsgfQorICAgIGJvb2wgb3BlcmF0b3I+KGNvbnN0
IE1pbmlmaWVkSUQmIG90aGVyKSBjb25zdCB7IHJldHVybiBtX2luZGV4ID4gb3RoZXIubV9pbmRl
eDsgfQorICAgIGJvb2wgb3BlcmF0b3I8PShjb25zdCBNaW5pZmllZElEJiBvdGhlcikgY29uc3Qg
eyByZXR1cm4gbV9pbmRleCA8PSBvdGhlci5tX2luZGV4OyB9CisgICAgYm9vbCBvcGVyYXRvcj49
KGNvbnN0IE1pbmlmaWVkSUQmIG90aGVyKSBjb25zdCB7IHJldHVybiBtX2luZGV4ID49IG90aGVy
Lm1faW5kZXg7IH0KICAgICAKLSAgICBib29sIG9wZXJhdG9yPT0oY29uc3QgTWluaWZpZWRJRCYg
b3RoZXIpIGNvbnN0IHsgcmV0dXJuIG1faWQgPT0gb3RoZXIubV9pZDsgfQotICAgIGJvb2wgb3Bl
cmF0b3IhPShjb25zdCBNaW5pZmllZElEJiBvdGhlcikgY29uc3QgeyByZXR1cm4gbV9pZCAhPSBv
dGhlci5tX2lkOyB9Ci0gICAgYm9vbCBvcGVyYXRvcjwoY29uc3QgTWluaWZpZWRJRCYgb3RoZXIp
IGNvbnN0IHsgcmV0dXJuIG1faWQgPCBvdGhlci5tX2lkOyB9Ci0gICAgYm9vbCBvcGVyYXRvcj4o
Y29uc3QgTWluaWZpZWRJRCYgb3RoZXIpIGNvbnN0IHsgcmV0dXJuIG1faWQgPiBvdGhlci5tX2lk
OyB9Ci0gICAgYm9vbCBvcGVyYXRvcjw9KGNvbnN0IE1pbmlmaWVkSUQmIG90aGVyKSBjb25zdCB7
IHJldHVybiBtX2lkIDw9IG90aGVyLm1faWQ7IH0KLSAgICBib29sIG9wZXJhdG9yPj0oY29uc3Qg
TWluaWZpZWRJRCYgb3RoZXIpIGNvbnN0IHsgcmV0dXJuIG1faWQgPj0gb3RoZXIubV9pZDsgfQor
ICAgIHVuc2lnbmVkIGhhc2goKSBjb25zdCB7IHJldHVybiBXVEY6OkludEhhc2g8dW5zaWduZWQ+
OjpoYXNoKG1faW5kZXgpOyB9CiAgICAgCi0gICAgdW5zaWduZWQgaGFzaCgpIGNvbnN0IHsgcmV0
dXJuIFdURjo6SW50SGFzaDx1aW50cHRyX3Q+OjpoYXNoKG1faWQpOyB9CisgICAgdm9pZCBkdW1w
KFByaW50U3RyZWFtJiBvdXQpIGNvbnN0IHsgb3V0LnByaW50KG1faW5kZXgpOyB9CiAgICAgCi0g
ICAgdm9pZCBkdW1wKFByaW50U3RyZWFtJiBvdXQpIGNvbnN0IHsgb3V0LnByaW50KFJhd1BvaW50
ZXIocmVpbnRlcnByZXRfY2FzdDx2b2lkKj4obV9pZCkpKTsgfQorICAgIGJvb2wgaXNIYXNoVGFi
bGVEZWxldGVkVmFsdWUoKSBjb25zdCB7IHJldHVybiBtX2luZGV4ID09IG90aGVySW52YWxpZElu
ZGV4KCk7IH0KICAgICAKLSAgICBib29sIGlzSGFzaFRhYmxlRGVsZXRlZFZhbHVlKCkgY29uc3Qg
eyByZXR1cm4gbV9pZCA9PSBvdGhlckludmFsaWRJRCgpOyB9Ci0gICAgCi0gICAgc3RhdGljIE1p
bmlmaWVkSUQgZnJvbUJpdHModWludHB0cl90IHZhbHVlKQorICAgIHN0YXRpYyBNaW5pZmllZElE
IGZyb21CaXRzKHVuc2lnbmVkIHZhbHVlKQogICAgIHsKICAgICAgICAgTWluaWZpZWRJRCByZXN1
bHQ7Ci0gICAgICAgIHJlc3VsdC5tX2lkID0gdmFsdWU7CisgICAgICAgIHJlc3VsdC5tX2luZGV4
ID0gdmFsdWU7CiAgICAgICAgIHJldHVybiByZXN1bHQ7CiAgICAgfQogICAgIAotICAgIHVpbnRw
dHJfdCBiaXRzKCkgY29uc3QgeyByZXR1cm4gbV9pZDsgfQorICAgIHVpbnRwdHJfdCBiaXRzKCkg
Y29uc3QgeyByZXR1cm4gbV9pbmRleDsgfQogCiBwcml2YXRlOgogICAgIGZyaWVuZCBjbGFzcyBN
aW5pZmllZE5vZGU7CiAgICAgCi0gICAgc3RhdGljIHVpbnRwdHJfdCBpbnZhbGlkSUQoKSB7IHJl
dHVybiBzdGF0aWNfY2FzdDx1aW50cHRyX3Q+KHN0YXRpY19jYXN0PGludHB0cl90PigtMSkpOyB9
Ci0gICAgc3RhdGljIHVpbnRwdHJfdCBvdGhlckludmFsaWRJRCgpIHsgcmV0dXJuIHN0YXRpY19j
YXN0PHVpbnRwdHJfdD4oc3RhdGljX2Nhc3Q8aW50cHRyX3Q+KC0yKSk7IH0KKyAgICBzdGF0aWMg
dW5zaWduZWQgaW52YWxpZEluZGV4KCkgeyByZXR1cm4gc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KHN0
YXRpY19jYXN0PGludHB0cl90PigtMSkpOyB9CisgICAgc3RhdGljIHVuc2lnbmVkIG90aGVySW52
YWxpZEluZGV4KCkgeyByZXR1cm4gc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KHN0YXRpY19jYXN0PGlu
dHB0cl90PigtMikpOyB9CiAgICAgCi0gICAgdWludHB0cl90IG1faWQ7CisgICAgdW5zaWduZWQg
bV9pbmRleDsKIH07CiAKIHN0cnVjdCBNaW5pZmllZElESGFzaCB7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR01pbmlmaWVkSURJbmxpbmVzLmggYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvZGZnL0RGR01pbmlmaWVkSURJbmxpbmVzLmgKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMzg2OWNm
NzEyZGVlNTA2MjIxODY1OWU2ZmU2ZWM3NWQ0MjNmOWU3YQotLS0gL2Rldi9udWxsCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHTWluaWZpZWRJRElubGluZXMuaApAQCAtMCwwICsx
LDQxIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAq
IDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQor
ICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQ
UExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAq
IFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9S
CisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklU
UzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRI
RU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3By
YWdtYSBvbmNlCisKKyNpbmNsdWRlICJERkdNaW5pZmllZElELmgiCisKKyNpbmNsdWRlICJERkdO
b2RlLmgiCisKK25hbWVzcGFjZSBKU0MgeworbmFtZXNwYWNlIERGRyB7CisKK2lubGluZSBNaW5p
ZmllZElEOjpNaW5pZmllZElEKE5vZGUqIG5vZGUpCisgICAgOiBtX2luZGV4KG5vZGUtPmluZGV4
KCkpCit7CisgICAgUkVMRUFTRV9BU1NFUlQobV9pbmRleCAhPSBpbnZhbGlkSW5kZXgoKSAmJiBt
X2luZGV4ICE9IG90aGVySW52YWxpZEluZGV4KCkpOworfQorCit9IH0gLy8gbmFtZXNwYWNlIEpT
Qzo6REZHCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1ZhbHVlU291
cmNlLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1ZhbHVlU291cmNlLmgKaW5kZXgg
YzA1ODRkNjlhMzlmM2I4NTJmODYwNDYxNzQ4NDIzYWNiZDY1Y2Y3NC4uYjVjM2M5ZGJlOTFjZGIx
ZTVmN2FlN2MxOWRhMGEwNjEzYmY5MmRjZCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL2RmZy9ERkdWYWx1ZVNvdXJjZS5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcv
REZHVmFsdWVTb3VyY2UuaApAQCAtMTI1LDcgKzEyNSw3IEBAIGNsYXNzIFZhbHVlU291cmNlIHsK
ICAgICAKICAgICBWYWx1ZVNvdXJjZShWYWx1ZVNvdXJjZUtpbmQgdmFsdWVTb3VyY2VLaW5kLCBW
aXJ0dWFsUmVnaXN0ZXIgd2hlcmUpCiAgICAgICAgIDogbV9raW5kKHZhbHVlU291cmNlS2luZCkK
LSAgICAgICAgLCBtX3ZhbHVlKHN0YXRpY19jYXN0PGludHB0cl90Pih3aGVyZS5vZmZzZXQoKSkp
CisgICAgICAgICwgbV92YWx1ZSh3aGVyZS5vZmZzZXQoKSkKICAgICB7CiAgICAgICAgIEFTU0VS
VChraW5kKCkgIT0gU291cmNlTm90U2V0KTsKICAgICAgICAgQVNTRVJUKGtpbmQoKSAhPSBIYXZl
Tm9kZSk7CkBAIC0yMDgsNyArMjA4LDcgQEAgY2xhc3MgVmFsdWVTb3VyY2UgewogICAgIAogcHJp
dmF0ZToKICAgICBWYWx1ZVNvdXJjZUtpbmQgbV9raW5kOwotICAgIHVpbnRwdHJfdCBtX3ZhbHVl
OworICAgIHVuc2lnbmVkIG1fdmFsdWU7CiB9OwogCiB9IH0gLy8gbmFtZXNwYWNlIEpTQzo6REZH
CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1ZhcmlhYmxlRXZlbnQu
aCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHVmFyaWFibGVFdmVudC5oCmluZGV4IGVk
NWQ2NjA4NjBjNmNiZDNlZjA3ZjJlMDU0YzA0YjI3ZjY1OGQ5ZTMuLmFjMjUzMjdkMTRlMWMwOGQ3
ZTRiMTQ1NzJhN2ExMDZiMjJjMzUzOWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9kZmcvREZHVmFyaWFibGVFdmVudC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcv
REZHVmFyaWFibGVFdmVudC5oCkBAIC0xOTgsNyArMTk4LDcgQEAgY2xhc3MgVmFyaWFibGVFdmVu
dCB7CiAgICAgICAgIEFTU0VSVCgKICAgICAgICAgICAgIG1fa2luZCA9PSBCaXJ0aFRvRmlsbCB8
fCBtX2tpbmQgPT0gRmlsbCB8fCBtX2tpbmQgPT0gQmlydGhUb1NwaWxsIHx8IG1fa2luZCA9PSBT
cGlsbAogICAgICAgICAgICAgfHwgbV9raW5kID09IFNldExvY2FsRXZlbnQpOwotICAgICAgICBy
ZXR1cm4gc3RhdGljX2Nhc3Q8RGF0YUZvcm1hdD4obV9kYXRhRm9ybWF0KTsKKyAgICAgICAgcmV0
dXJuIG1fZGF0YUZvcm1hdDsKICAgICB9CiAgICAgCiAgICAgTWFjcm9Bc3NlbWJsZXI6OlJlZ2lz
dGVySUQgZ3ByKCkgY29uc3QKQEAgLTI2Miw3ICsyNjIsNyBAQCBjbGFzcyBWYXJpYWJsZUV2ZW50
IHsKICAgICAKICAgICB1bmlvbiB7CiAgICAgICAgIGludCB2aXJ0dWFsUmVnOwotICAgICAgICB1
aW50cHRyX3QgaWQ7CisgICAgICAgIHVuc2lnbmVkIGlkOwogICAgIH0gbV93aGljaDsKICAgICAK
ICAgICAvLyBGb3IgQmlydGhUb0ZpbGwsIEZpbGw6CkBAIC0yNzYsNyArMjc2LDcgQEAgY2xhc3Mg
VmFyaWFibGVFdmVudCB7CiAgICAgVmFyaWFibGVSZXByZXNlbnRhdGlvbiBtX3JlcHJlc2VudGF0
aW9uOwogICAgIAogICAgIGludDhfdCBtX2tpbmQ7Ci0gICAgaW50OF90IG1fZGF0YUZvcm1hdDsK
KyAgICBEYXRhRm9ybWF0IG1fZGF0YUZvcm1hdCB7IERhdGFGb3JtYXROb25lIH07CiB9OwogCiB9
IH0gLy8gbmFtZXNwYWNlIEpTQzo6REZHCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>368058</attachid>
            <date>2019-04-23 13:34:50 -0700</date>
            <delta_ts>2019-04-23 17:16:50 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-197186-20190423133448.patch</filename>
            <type>text/plain</type>
            <size>18589</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQ0NTM3CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBm
MWFlMjJiZGFhZjllNjhkMzliNDQyYTI0Mzg0NmYwNzdmNDdkYjk5Li4zYmNiMjNjNGRiMjgwN2Ex
NDY5NjA0YzcyZjg3ZGEwYjA0MmFkMzEzIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw0NSBAQAorMjAxOS0wNC0yMyAgWXVzdWtlIFN1enVraSAgPHlzdXp1a2lAYXBwbGUuY29t
PgorCisgICAgICAgIFtKU0NdIFVzZSBub2RlIGluZGV4IGFzIERGRzo6TWluaWZpZWRJRAorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTk3MTg2CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgREZHIE5vZGVzIGNh
biBiZSBpZGVudGlmaWVkIHdpdGggaW5kZXggaWYgdGhlIGdyYXBoIGlzIGdpdmVuLiBXZSBzaG91
bGQgdXNlIHVuc2lnbmVkIGluZGV4IGFzIGEgREZHOjpNaW5pZmllZElEJ3MgdW5kZXJseWluZwor
ICAgICAgICBzb3VyY2UgaW5zdGVhZCBvZiBOb2RlKiB0byByZWR1Y2UgdGhlIHNpemUgb2YgVmFy
aWFibGVFdmVudCBmcm9tIDE2IHRvIDEyLiBWZWN0b3I8VmFyaWFibGVFdmVudD4gaXMgdGhlIG1h
aW4gZGF0YSBpbiBERkcncyBPU1IKKyAgICAgICAgdHJhY2tpbmcuIEl0IGlzIGtlcHQgYWZ0ZXIg
REZHIGNvbXBpbGF0aW9uIGlzIGRvbmUgdG8gbWFrZSBPU1Igd29yay4gV2Ugc2F3IHRoYXQgdGhp
cyBpcyBhbGxvY2F0ZWQgd2l0aCBsYXJnZSBzaXplIGluIEdNYWlsLgorCisgICAgICAgICogSmF2
YVNjcmlwdENvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBieXRlY29k
ZS9EYXRhRm9ybWF0Lmg6CisgICAgICAgICogYnl0ZWNvZGUvVmFsdWVSZWNvdmVyeS5oOgorICAg
ICAgICAqIGRmZy9ERkdHZW5lcmF0aW9uSW5mby5oOgorICAgICAgICAqIGRmZy9ERkdNaW5pZmll
ZElELmg6CisgICAgICAgIChKU0M6OkRGRzo6TWluaWZpZWRJRDo6TWluaWZpZWRJRCk6CisgICAg
ICAgIChKU0M6OkRGRzo6TWluaWZpZWRJRDo6b3BlcmF0b3IhIGNvbnN0KToKKyAgICAgICAgKEpT
Qzo6REZHOjpNaW5pZmllZElEOjpvcGVyYXRvcj09IGNvbnN0KToKKyAgICAgICAgKEpTQzo6REZH
OjpNaW5pZmllZElEOjpvcGVyYXRvciE9IGNvbnN0KToKKyAgICAgICAgKEpTQzo6REZHOjpNaW5p
ZmllZElEOjpvcGVyYXRvcjwgY29uc3QpOgorICAgICAgICAoSlNDOjpERkc6Ok1pbmlmaWVkSUQ6
Om9wZXJhdG9yPiBjb25zdCk6CisgICAgICAgIChKU0M6OkRGRzo6TWluaWZpZWRJRDo6b3BlcmF0
b3I8PSBjb25zdCk6CisgICAgICAgIChKU0M6OkRGRzo6TWluaWZpZWRJRDo6b3BlcmF0b3I+PSBj
b25zdCk6CisgICAgICAgIChKU0M6OkRGRzo6TWluaWZpZWRJRDo6aGFzaCBjb25zdCk6CisgICAg
ICAgIChKU0M6OkRGRzo6TWluaWZpZWRJRDo6ZHVtcCBjb25zdCk6CisgICAgICAgIChKU0M6OkRG
Rzo6TWluaWZpZWRJRDo6aXNIYXNoVGFibGVEZWxldGVkVmFsdWUgY29uc3QpOgorICAgICAgICAo
SlNDOjpERkc6Ok1pbmlmaWVkSUQ6OmZyb21CaXRzKToKKyAgICAgICAgKEpTQzo6REZHOjpNaW5p
ZmllZElEOjpiaXRzIGNvbnN0KToKKyAgICAgICAgKEpTQzo6REZHOjpNaW5pZmllZElEOjppbnZh
bGlkSW5kZXgpOgorICAgICAgICAoSlNDOjpERkc6Ok1pbmlmaWVkSUQ6Om90aGVySW52YWxpZElu
ZGV4KToKKyAgICAgICAgKEpTQzo6REZHOjpNaW5pZmllZElEOjpub2RlIGNvbnN0KTogRGVsZXRl
ZC4KKyAgICAgICAgKEpTQzo6REZHOjpNaW5pZmllZElEOjppbnZhbGlkSUQpOiBEZWxldGVkLgor
ICAgICAgICAoSlNDOjpERkc6Ok1pbmlmaWVkSUQ6Om90aGVySW52YWxpZElEKTogRGVsZXRlZC4K
KyAgICAgICAgKiBkZmcvREZHTWluaWZpZWRJRElubGluZXMuaDogQ29waWVkIGZyb20gU291cmNl
L0phdmFTY3JpcHRDb3JlL2RmZy9ERkdNaW5pZmllZE5vZGUuY3BwLgorICAgICAgICAoSlNDOjpE
Rkc6Ok1pbmlmaWVkSUQ6Ok1pbmlmaWVkSUQpOgorICAgICAgICAqIGRmZy9ERkdNaW5pZmllZE5v
ZGUuY3BwOgorICAgICAgICAqIGRmZy9ERkdWYWx1ZVNvdXJjZS5oOgorICAgICAgICAoSlNDOjpE
Rkc6OlZhbHVlU291cmNlOjpWYWx1ZVNvdXJjZSk6CisgICAgICAgICogZGZnL0RGR1ZhcmlhYmxl
RXZlbnQuaDoKKyAgICAgICAgKEpTQzo6REZHOjpWYXJpYWJsZUV2ZW50OjpkYXRhRm9ybWF0IGNv
bnN0KToKKwogMjAxOS0wNC0yMiAgWXVzdWtlIFN1enVraSAgPHlzdXp1a2lAYXBwbGUuY29tPgog
CiAgICAgICAgIFtKU0NdIFVzZSB2b2xhdGlsZSBsb2FkIHRvIHBvcHVsYXRlIGJhY2tpbmcgcGFn
ZSBpbiBNYXJrZWRCbG9jazo6Rm9vdGVyIGluc3RlYWQgb2YgdXNpbmcgaG9sZExvY2sKZGlmZiAt
LWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggZTBlZjMwMTdjMDgyNDkzMTA5Yzc4MTNkZWQyM2Rj
YTY5ZWQ5ZDBmMi4uOTE3NGJmZTkxMWY4NGJjMGFkOWEzMjEyYzU0ZTE5MjZmODk0NjE0YyAxMDA2
NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3Jl
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTE3ODMsNiArMTc4Myw3IEBACiAJCUUzNUUw
MzYwMUI3QUI0M0UwMDczQUQyQSAvKiBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb25PYmplY3QuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUzNUUwMzVFMUI3
QUI0M0UwMDczQUQyQSAvKiBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb25PYmplY3QuaCAqLzsgc2V0
dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlFMzZDQzk0NzIwODYz
MTRGMDA1MUZGRDYgLyogV2FzbUNyZWF0aW9uTW9kZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTM2Q0M5NDYyMDg2MzE0RjAwNTFGRkQ2IC8qIFdhc21D
cmVhdGlvbk1vZGUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9
OyB9OwogCQlFMzc5NEU3NjFCNzdFQjk3MDA1NTQzQUUgLyogTW9kdWxlQW5hbHl6ZXIuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUzNzk0RTc0MUI3N0VC
OTcwMDU1NDNBRSAvKiBNb2R1bGVBbmFseXplci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVT
ID0gKFByaXZhdGUsICk7IH07IH07CisJCUUzODUwQjE1MjI2RUQ2NDEwMDlBQkY5QyAvKiBERkdN
aW5pZmllZElESW5saW5lcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gRTM4NTBCMTQyMjZFRDYzRTAwOUFCRjlDIC8qIERGR01pbmlmaWVkSURJbmxpbmVz
LmggKi87IH07CiAJCUUzODkzQTFEMjIwM0E3QzYwMEU3OUE3NCAvKiBBc3luY0Zyb21TeW5jSXRl
cmF0b3JQcm90b3R5cGUubHV0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBFMzg5M0ExQzIyMDNBN0M2MDBFNzlBNzQgLyogQXN5bmNGcm9tU3luY0l0ZXJh
dG9yUHJvdG90eXBlLmx1dC5oICovOyB9OwogCQlFMzhEOTk5QzIyMUI3OEJCMDBENTA0NzQgLyog
SlNOb25EZXN0cnVjdGlibGVQcm94eS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gRTM4RDk5OUEyMjFCNzg5RjAwRDUwNDc0IC8qIEpTTm9uRGVzdHJ1Y3Rp
YmxlUHJveHkuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9
OwogCQlFMzkwMDYyMTIyMDhCRkM0MDAxMDE5Q0YgLyogU3Vic3BhY2VBY2Nlc3MuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUzOTAwNjIwMjIwOEJGQzMw
MDEwMTlDRiAvKiBTdWJzcGFjZUFjY2Vzcy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0g
KFByaXZhdGUsICk7IH07IH07CkBAIC00NzgxLDYgKzQ3ODIsNyBAQAogCQlFMzc5NEU3NDFCNzdF
Qjk3MDA1NTQzQUUgLyogTW9kdWxlQW5hbHl6ZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gTW9kdWxlQW5hbHl6ZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
RTM4MEE3NkIxRENENzE5NTAwMEY4OUU2IC8qIE1hY3JvQXNzZW1ibGVySGVscGVycy5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBNYWNyb0Fzc2VtYmxlckhlbHBlcnMuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTM4MEQ2NkIxRjE5MjQ5RDAwQTU5MDk1IC8qIEJ1
aWx0aW5OYW1lcy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBCdWls
dGluTmFtZXMuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlFMzg1MEIxNDIyNkVE
NjNFMDA5QUJGOUMgLyogREZHTWluaWZpZWRJRElubGluZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gREZH
TWluaWZpZWRJRElubGluZXMuaDsgcGF0aCA9IGRmZy9ERkdNaW5pZmllZElESW5saW5lcy5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFMzg5M0ExQzIyMDNBN0M2MDBFNzlBNzQgLyog
QXN5bmNGcm9tU3luY0l0ZXJhdG9yUHJvdG90eXBlLmx1dC5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBBc3luY0Zyb21TeW5jSXRlcmF0b3JQcm90b3R5cGUubHV0Lmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUUzOEQwNjBCMUY4RTgxNDEwMDY0OUNGMiAvKiBKU1Nj
cmlwdEZldGNoUGFyYW1ldGVycy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBK
U1NjcmlwdEZldGNoUGFyYW1ldGVycy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlF
MzhEMDYwQzFGOEU4MTQxMDA2NDlDRjIgLyogU2NyaXB0RmV0Y2hQYXJhbWV0ZXJzLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNjcmlwdEZldGNoUGFyYW1ldGVycy5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtNjAwMiw5ICs2MDA0LDkgQEAKIAkJCQkxNDJENkYw
NzEzNTM5QTI4MDBCMDJFODYgLyogTWFya2VkQmxvY2suaCAqLywKIAkJCQkwRjdDNUZCNzFEODg4
QTAxMDA0NEY1RTIgLyogTWFya2VkQmxvY2tJbmxpbmVzLmggKi8sCiAJCQkJMTQxNDQ4Q0ExM0Ex
NzZFQzAwRjVCQTFBIC8qIE1hcmtlZEJsb2NrU2V0LmggKi8sCisJCQkJMzNCMkE1NDUyMjY1MUQ1
MzAwNUEwRjc5IC8qIE1hcmtlZFNwYWNlLmNwcCAqLywKIAkJCQkxNEQyRjNEOTEzOUY0QkUyMDA0
OTEwMzEgLyogTWFya2VkU3BhY2UuaCAqLywKIAkJCQkwRjdERjEzMDFFMjk3MEQ1MDA5NTk1MUIg
LyogTWFya2VkU3BhY2VJbmxpbmVzLmggKi8sCi0JCQkJMzNCMkE1NDUyMjY1MUQ1MzAwNUEwRjc5
IC8qIE1hcmtlZFNwYWNlLmNwcCAqLywKIAkJCQkwRjY2MEUzMzFFMDUxN0I3MDAzMTQ2MkMgLyog
TWFya2luZ0NvbnN0cmFpbnQuY3BwICovLAogCQkJCTBGNjYwRTM0MUUwNTE3QjcwMDMxNDYyQyAv
KiBNYXJraW5nQ29uc3RyYWludC5oICovLAogCQkJCTBGNjYwRTM1MUUwNTE3QjcwMDMxNDYyQyAv
KiBNYXJraW5nQ29uc3RyYWludFNldC5jcHAgKi8sCkBAIC03NTk4LDYgKzc2MDAsNyBAQAogCQkJ
CTBGMTcyNUZFMUI0ODcxOUEwMEFDM0E1NSAvKiBERkdNaW5pZmllZEdyYXBoLmNwcCAqLywKIAkJ
CQkwRjJCREMzRDE1MjI4MDE3MDBDRDg5MTAgLyogREZHTWluaWZpZWRHcmFwaC5oICovLAogCQkJ
CTBGQjRCNTEwMTZCM0E5NjQwMDNGNjk2QiAvKiBERkdNaW5pZmllZElELmggKi8sCisJCQkJRTM4
NTBCMTQyMjZFRDYzRTAwOUFCRjlDIC8qIERGR01pbmlmaWVkSURJbmxpbmVzLmggKi8sCiAJCQkJ
MEYyQkRDNEMxNTIyODE4MzAwQ0Q4OTEwIC8qIERGR01pbmlmaWVkTm9kZS5jcHAgKi8sCiAJCQkJ
MEYyQkRDM0UxNTIyODAxNzAwQ0Q4OTEwIC8qIERGR01pbmlmaWVkTm9kZS5oICovLAogCQkJCTBG
OEYxNDMxMUFERjA5MDEwMEVENzkyQyAvKiBERkdNb3ZIaW50UmVtb3ZhbFBoYXNlLmNwcCAqLywK
QEAgLTg1MjEsNyArODUyNCw2IEBACiAJCQkJMEYyQzYzQkMxRTYzNDQwQzAwQzEzODM5IC8qIEFp
ckJsb2NrSW5zZXJ0aW9uU2V0LmggaW4gSGVhZGVycyAqLywKIAkJCQkwRkIzODc4RTFCRkJDNDRE
MDBFM0FCMUUgLyogQWlyQmxvY2tXb3JrbGlzdC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEY3OUM3
Q0ExRTc0QzkzQjAwRUIzNEQxIC8qIEFpckJyZWFrQ3JpdGljYWxFZGdlcy5oIGluIEhlYWRlcnMg
Ki8sCi0JCQkJMzNCMkE1NDcyMjY1MzQ4MTAwNUEwRjc5IC8qIEIzVmFsdWVJbmxpbmVzLmggaW4g
SGVhZGVycyAqLywKIAkJCQkwRjYxODMyQTFDNDVCRjA3MDA3MjQ1MEIgLyogQWlyQ0NhbGxpbmdD
b252ZW50aW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRkVDODU3NDFCREFDREM3MDA4MEZGNzQg
LyogQWlyQ0NhbGxTcGVjaWFsLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRkY0QjRDNzFFODg5M0M1
MDBEQkJFODYgLyogQWlyQ0ZHLmggaW4gSGVhZGVycyAqLywKQEAgLTg3MTQsNiArODcxNiw3IEBA
CiAJCQkJMEZFQzg1NDAxQkRBQ0RBQzAwODBGRjc0IC8qIEIzVXNlQ291bnRzLmggaW4gSGVhZGVy
cyAqLywKIAkJCQkwRkVDODU0MjFCREFDREFDMDA4MEZGNzQgLyogQjNWYWxpZGF0ZS5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJMEZFQzg1NDQxQkRBQ0RBQzAwODBGRjc0IC8qIEIzVmFsdWUuaCBpbiBI
ZWFkZXJzICovLAorCQkJCTMzQjJBNTQ3MjI2NTM0ODEwMDVBMEY3OSAvKiBCM1ZhbHVlSW5saW5l
cy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEYzMzhFMTUxQkYwMjc2QzAwMTNDODhGIC8qIEIzVmFs
dWVLZXkuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGMzM4RTE2MUJGMDI3NkMwMDEzQzg4RiAvKiBC
M1ZhbHVlS2V5SW5saW5lcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEZFQzg1NDcxQkRBQ0RBQzAw
ODBGRjc0IC8qIEIzVmFsdWVSZXAuaCBpbiBIZWFkZXJzICovLApAQCAtODk2Nyw2ICs4OTcwLDcg
QEAKIAkJCQkwRjU4NzRFRTE5NEZFQjEyMDBBQUIyQzEgLyogREZHTWF5RXhpdC5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJMEYyQkRDNDUxNTIyODAxQjAwQ0Q4OTEwIC8qIERGR01pbmlmaWVkR3JhcGgu
aCBpbiBIZWFkZXJzICovLAogCQkJCTBGMkU4OTJEMTZEMDJCQUYwMDlFNEZEMiAvKiBERkdNaW5p
ZmllZElELmggaW4gSGVhZGVycyAqLywKKwkJCQlFMzg1MEIxNTIyNkVENjQxMDA5QUJGOUMgLyog
REZHTWluaWZpZWRJRElubGluZXMuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGMkJEQzQ2MTUyMjgw
MjAwMENEODkxMCAvKiBERkdNaW5pZmllZE5vZGUuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGOEYx
NDM2MUFERjA5MDEwMEVENzkyQyAvKiBERkdNb3ZIaW50UmVtb3ZhbFBoYXNlLmggaW4gSGVhZGVy
cyAqLywKIAkJCQkwRkYyQ0Q1QzFCNjFBNEY4MDA0OTU1QTggLyogREZHTXVsdGlHZXRCeU9mZnNl
dERhdGEuaCBpbiBIZWFkZXJzICovLApAQCAtMTA3MTgsNiArMTA3MjIsNyBAQAogCQkJCTUzMzNC
QkRDMjExMEY3RDkwMDc2MThFQyAvKiBERkdTcGVjdWxhdGl2ZUpJVC5jcHAgaW4gU291cmNlcyAq
LywKIAkJCQk1MzMzQkJEQjIxMTBGN0QyMDA3NjE4RUMgLyogREZHU3BlY3VsYXRpdmVKSVQzMl82
NC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk1MzMzQkJERDIxMTBGN0UxMDA3NjE4RUMgLyogREZH
U3BlY3VsYXRpdmVKSVQ2NC5jcHAgaW4gU291cmNlcyAqLywKKwkJCQkzM0IyQTU0ODIyNjU0M0JG
MDA1QTBGNzkgLyogRlRMTG93ZXJERkdUb0IzLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTUzNkIz
MTlFMUY3MzVGMTYwMDM3RkMzMyAvKiBMb3dMZXZlbEludGVycHJldGVyLmNwcCBpbiBTb3VyY2Vz
ICovLAogCQkJCTBGRjQyNzRBMTU4RUJFOTEwMDRDQjlGRiAvKiB1ZGlzODYuYyBpbiBTb3VyY2Vz
ICovLAogCQkJCTBGRjQyNzQwMTU4RUJFOEIwMDRDQjlGRiAvKiB1ZGlzODZfZGVjb2RlLmMgaW4g
U291cmNlcyAqLywKQEAgLTEwODUxLDcgKzEwODU2LDYgQEAKIAkJCQk1MzZCMzEwQzFGNzFDNTk5
MDAzN0ZDMzMgLyogVW5pZmllZFNvdXJjZTExOS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk1MzZC
MzEyNjFGNzFDNTk5MDAzN0ZDMzMgLyogVW5pZmllZFNvdXJjZTEyMC5jcHAgaW4gU291cmNlcyAq
LywKIAkJCQk1MzZCMzEyRDFGNzFDNTk5MDAzN0ZDMzMgLyogVW5pZmllZFNvdXJjZTEyMS5jcHAg
aW4gU291cmNlcyAqLywKLQkJCQkzM0IyQTU0ODIyNjU0M0JGMDA1QTBGNzkgLyogRlRMTG93ZXJE
RkdUb0IzLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTUzNkIzMTI1MUY3MUM1OTkwMDM3RkMzMyAv
KiBVbmlmaWVkU291cmNlMTIyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTUzNkIzMTFFMUY3MUM1
OTkwMDM3RkMzMyAvKiBVbmlmaWVkU291cmNlMTIzLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTUz
NkIzMTE0MUY3MUM1OTkwMDM3RkMzMyAvKiBVbmlmaWVkU291cmNlMTI0LmNwcCBpbiBTb3VyY2Vz
ICovLApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0RhdGFGb3Jt
YXQuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9EYXRhRm9ybWF0LmgKaW5kZXgg
ZmMyZGI1OTY4ODlhZjE3YzFlMTY1ZDRkYWU2NmViMDM4OWQ1NDY5NC4uMzJmNTg4ZGJmZjY4Yjkz
OTA3MThiY2QxNTlmNWNiZDRmZGRlYWZiNSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL2J5dGVjb2RlL0RhdGFGb3JtYXQuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0
ZWNvZGUvRGF0YUZvcm1hdC5oCkBAIC0zNSw3ICszNSw3IEBAIG5hbWVzcGFjZSBKU0MgewogLy8g
VmFsdWVzIG1heSBiZSB1bmJveGVkIHByaW1pdGl2ZXMgKGludDMyLCBkb3VibGUsIG9yIGNlbGwp
LCBvciBib3hlZCBhcyBhIEpTVmFsdWUuCiAvLyBGb3IgYm94ZWQgdmFsdWVzLCB3ZSBtYXkga25v
dyB0aGUgdHlwZSBvZiBib3hpbmcgdGhhdCBoYXMgdGFrZW4gcGxhY2UuCiAvLyAoTWF5IGFsc28g
bmVlZCBib29sLCBhcnJheSwgb2JqZWN0LCBzdHJpbmcgdHlwZXMhKQotZW51bSBEYXRhRm9ybWF0
IHsKK2VudW0gRGF0YUZvcm1hdCA6IHVpbnQ4X3QgewogICAgIERhdGFGb3JtYXROb25lID0gMCwK
ICAgICBEYXRhRm9ybWF0SW50MzIgPSAxLAogICAgIERhdGFGb3JtYXRJbnQ1MiA9IDIsIC8vIElu
dDUyJ3MgYXJlIGxlZnQtc2hpZnRlZCBieSAxMiBieSBkZWZhdWx0LgpkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1ZhbHVlUmVjb3ZlcnkuaCBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ieXRlY29kZS9WYWx1ZVJlY292ZXJ5LmgKaW5kZXggYzk4ZmQyMDc1YWI3OTlj
OTcyZjVmYWYyNGNjNWQ2OWY1YTEyZjk3ZC4uNGU5OTU2N2YxNzk4MmUwZmQ0YTM1YTA5MWUzMzcx
NDlkZDlmMTI2YiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1Zh
bHVlUmVjb3ZlcnkuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvVmFsdWVS
ZWNvdmVyeS5oCkBAIC00MTksNyArNDE5LDcgQEAgY2xhc3MgVmFsdWVSZWNvdmVyeSB7CiAjZW5k
aWYKICAgICAgICAgaW50IHZpcnR1YWxSZWc7CiAgICAgICAgIEVuY29kZWRKU1ZhbHVlIGNvbnN0
YW50OwotICAgICAgICB1aW50cHRyX3Qgbm9kZUlEOworICAgICAgICB1bnNpZ25lZCBub2RlSUQ7
CiAgICAgfSBtX3NvdXJjZTsKIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9kZmcvREZHR2VuZXJhdGlvbkluZm8uaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZH
R2VuZXJhdGlvbkluZm8uaAppbmRleCBjZDgxMjA3YjdjYzUwMjg4MmRmY2ZiNDFmOWJmNmY4MjQw
YmNhMTVmLi5hZGYyYmRhZTUzNzE0NjEzM2FlYzgyOTgzOWU0Y2U4M2M1MjViZjVmIDEwMDY0NAot
LS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0dlbmVyYXRpb25JbmZvLmgKKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdHZW5lcmF0aW9uSW5mby5oCkBAIC0yNyw3ICsy
Nyw3IEBACiAKICNpZiBFTkFCTEUoREZHX0pJVCkKIAotI2luY2x1ZGUgIkRGR01pbmlmaWVkSUQu
aCIKKyNpbmNsdWRlICJERkdNaW5pZmllZElESW5saW5lcy5oIgogI2luY2x1ZGUgIkRGR1Zhcmlh
YmxlRXZlbnQuaCIKICNpbmNsdWRlICJERkdWYXJpYWJsZUV2ZW50U3RyZWFtLmgiCiAjaW5jbHVk
ZSAiRGF0YUZvcm1hdC5oIgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9E
RkdNaW5pZmllZElELmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR01pbmlmaWVkSUQu
aAppbmRleCBmNzQxZTdlMWZkZWMxNjU4NDY4NzI3Zjc4ZmNkYjQyZTAxMmEyOGVlLi5hNjQ1Y2Zh
N2I3NDI5MmY5Y2NiZjBiMTk4YmViNzlmMzdmODc0MjQ2IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvZGZnL0RGR01pbmlmaWVkSUQuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvZGZnL0RGR01pbmlmaWVkSUQuaApAQCAtMzgsNDYgKzM4LDQxIEBAIHN0cnVjdCBOb2RlOwog
CiBjbGFzcyBNaW5pZmllZElEIHsKIHB1YmxpYzoKLSAgICBNaW5pZmllZElEKCkgOiBtX2lkKGlu
dmFsaWRJRCgpKSB7IH0KLSAgICBNaW5pZmllZElEKFdURjo6SGFzaFRhYmxlRGVsZXRlZFZhbHVl
VHlwZSkgOiBtX2lkKG90aGVySW52YWxpZElEKCkpIHsgfQotICAgIGV4cGxpY2l0IE1pbmlmaWVk
SUQoTm9kZSogbm9kZSkgOiBtX2lkKGJpdHdpc2VfY2FzdDx1aW50cHRyX3Q+KG5vZGUpKSB7IH0K
KyAgICBNaW5pZmllZElEKCkgPSBkZWZhdWx0OworICAgIE1pbmlmaWVkSUQoV1RGOjpIYXNoVGFi
bGVEZWxldGVkVmFsdWVUeXBlKSA6IG1faW5kZXgob3RoZXJJbnZhbGlkSW5kZXgoKSkgeyB9Cisg
ICAgZXhwbGljaXQgTWluaWZpZWRJRChOb2RlKiBub2RlKTsKICAgICAKLSAgICBib29sIG9wZXJh
dG9yISgpIGNvbnN0IHsgcmV0dXJuIG1faWQgPT0gaW52YWxpZElEKCk7IH0KKyAgICBib29sIG9w
ZXJhdG9yISgpIGNvbnN0IHsgcmV0dXJuIG1faW5kZXggPT0gaW52YWxpZEluZGV4KCk7IH0KICAg
ICAKLSAgICAvLyBUaGlzIHRha2VzIEdyYXBoJiB0byByZW1pbmQgeW91LCB0aGF0IHlvdSBzaG91
bGQgb25seSBiZSBjYWxsaW5nIHRoaXMgbWV0aG9kCi0gICAgLy8gd2hlbiB5b3UncmUgaW4gdGhl
IG1haW4gY29tcGlsYXRpb24gcGFzcyAoaS5lLiB5b3UgaGF2ZSBhIGdyYXBoKSBhbmQgbm90IGxh
dGVyLAotICAgIC8vIGxpa2UgZHVyaW5nIE9TUiBleGl0IGNvbXBpbGF0aW9uLgotICAgIE5vZGUq
IG5vZGUoY29uc3QgR3JhcGgmKSBjb25zdCB7IHJldHVybiBiaXR3aXNlX2Nhc3Q8Tm9kZSo+KG1f
aWQpOyB9CisgICAgYm9vbCBvcGVyYXRvcj09KGNvbnN0IE1pbmlmaWVkSUQmIG90aGVyKSBjb25z
dCB7IHJldHVybiBtX2luZGV4ID09IG90aGVyLm1faW5kZXg7IH0KKyAgICBib29sIG9wZXJhdG9y
IT0oY29uc3QgTWluaWZpZWRJRCYgb3RoZXIpIGNvbnN0IHsgcmV0dXJuIG1faW5kZXggIT0gb3Ro
ZXIubV9pbmRleDsgfQorICAgIGJvb2wgb3BlcmF0b3I8KGNvbnN0IE1pbmlmaWVkSUQmIG90aGVy
KSBjb25zdCB7IHJldHVybiBtX2luZGV4IDwgb3RoZXIubV9pbmRleDsgfQorICAgIGJvb2wgb3Bl
cmF0b3I+KGNvbnN0IE1pbmlmaWVkSUQmIG90aGVyKSBjb25zdCB7IHJldHVybiBtX2luZGV4ID4g
b3RoZXIubV9pbmRleDsgfQorICAgIGJvb2wgb3BlcmF0b3I8PShjb25zdCBNaW5pZmllZElEJiBv
dGhlcikgY29uc3QgeyByZXR1cm4gbV9pbmRleCA8PSBvdGhlci5tX2luZGV4OyB9CisgICAgYm9v
bCBvcGVyYXRvcj49KGNvbnN0IE1pbmlmaWVkSUQmIG90aGVyKSBjb25zdCB7IHJldHVybiBtX2lu
ZGV4ID49IG90aGVyLm1faW5kZXg7IH0KICAgICAKLSAgICBib29sIG9wZXJhdG9yPT0oY29uc3Qg
TWluaWZpZWRJRCYgb3RoZXIpIGNvbnN0IHsgcmV0dXJuIG1faWQgPT0gb3RoZXIubV9pZDsgfQot
ICAgIGJvb2wgb3BlcmF0b3IhPShjb25zdCBNaW5pZmllZElEJiBvdGhlcikgY29uc3QgeyByZXR1
cm4gbV9pZCAhPSBvdGhlci5tX2lkOyB9Ci0gICAgYm9vbCBvcGVyYXRvcjwoY29uc3QgTWluaWZp
ZWRJRCYgb3RoZXIpIGNvbnN0IHsgcmV0dXJuIG1faWQgPCBvdGhlci5tX2lkOyB9Ci0gICAgYm9v
bCBvcGVyYXRvcj4oY29uc3QgTWluaWZpZWRJRCYgb3RoZXIpIGNvbnN0IHsgcmV0dXJuIG1faWQg
PiBvdGhlci5tX2lkOyB9Ci0gICAgYm9vbCBvcGVyYXRvcjw9KGNvbnN0IE1pbmlmaWVkSUQmIG90
aGVyKSBjb25zdCB7IHJldHVybiBtX2lkIDw9IG90aGVyLm1faWQ7IH0KLSAgICBib29sIG9wZXJh
dG9yPj0oY29uc3QgTWluaWZpZWRJRCYgb3RoZXIpIGNvbnN0IHsgcmV0dXJuIG1faWQgPj0gb3Ro
ZXIubV9pZDsgfQorICAgIHVuc2lnbmVkIGhhc2goKSBjb25zdCB7IHJldHVybiBXVEY6OkludEhh
c2g8dW5zaWduZWQ+OjpoYXNoKG1faW5kZXgpOyB9CiAgICAgCi0gICAgdW5zaWduZWQgaGFzaCgp
IGNvbnN0IHsgcmV0dXJuIFdURjo6SW50SGFzaDx1aW50cHRyX3Q+OjpoYXNoKG1faWQpOyB9Cisg
ICAgdm9pZCBkdW1wKFByaW50U3RyZWFtJiBvdXQpIGNvbnN0IHsgb3V0LnByaW50KG1faW5kZXgp
OyB9CiAgICAgCi0gICAgdm9pZCBkdW1wKFByaW50U3RyZWFtJiBvdXQpIGNvbnN0IHsgb3V0LnBy
aW50KFJhd1BvaW50ZXIocmVpbnRlcnByZXRfY2FzdDx2b2lkKj4obV9pZCkpKTsgfQorICAgIGJv
b2wgaXNIYXNoVGFibGVEZWxldGVkVmFsdWUoKSBjb25zdCB7IHJldHVybiBtX2luZGV4ID09IG90
aGVySW52YWxpZEluZGV4KCk7IH0KICAgICAKLSAgICBib29sIGlzSGFzaFRhYmxlRGVsZXRlZFZh
bHVlKCkgY29uc3QgeyByZXR1cm4gbV9pZCA9PSBvdGhlckludmFsaWRJRCgpOyB9Ci0gICAgCi0g
ICAgc3RhdGljIE1pbmlmaWVkSUQgZnJvbUJpdHModWludHB0cl90IHZhbHVlKQorICAgIHN0YXRp
YyBNaW5pZmllZElEIGZyb21CaXRzKHVuc2lnbmVkIHZhbHVlKQogICAgIHsKICAgICAgICAgTWlu
aWZpZWRJRCByZXN1bHQ7Ci0gICAgICAgIHJlc3VsdC5tX2lkID0gdmFsdWU7CisgICAgICAgIHJl
c3VsdC5tX2luZGV4ID0gdmFsdWU7CiAgICAgICAgIHJldHVybiByZXN1bHQ7CiAgICAgfQogICAg
IAotICAgIHVpbnRwdHJfdCBiaXRzKCkgY29uc3QgeyByZXR1cm4gbV9pZDsgfQorICAgIHVuc2ln
bmVkIGJpdHMoKSBjb25zdCB7IHJldHVybiBtX2luZGV4OyB9CiAKIHByaXZhdGU6CiAgICAgZnJp
ZW5kIGNsYXNzIE1pbmlmaWVkTm9kZTsKICAgICAKLSAgICBzdGF0aWMgdWludHB0cl90IGludmFs
aWRJRCgpIHsgcmV0dXJuIHN0YXRpY19jYXN0PHVpbnRwdHJfdD4oc3RhdGljX2Nhc3Q8aW50cHRy
X3Q+KC0xKSk7IH0KLSAgICBzdGF0aWMgdWludHB0cl90IG90aGVySW52YWxpZElEKCkgeyByZXR1
cm4gc3RhdGljX2Nhc3Q8dWludHB0cl90PihzdGF0aWNfY2FzdDxpbnRwdHJfdD4oLTIpKTsgfQor
ICAgIHN0YXRpYyBjb25zdGV4cHIgdW5zaWduZWQgaW52YWxpZEluZGV4KCkgeyByZXR1cm4gc3Rh
dGljX2Nhc3Q8dW5zaWduZWQ+KC0xKTsgfQorICAgIHN0YXRpYyBjb25zdGV4cHIgdW5zaWduZWQg
b3RoZXJJbnZhbGlkSW5kZXgoKSB7IHJldHVybiBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oLTIpOyB9
CiAgICAgCi0gICAgdWludHB0cl90IG1faWQ7CisgICAgdW5zaWduZWQgbV9pbmRleCB7IGludmFs
aWRJbmRleCgpIH07CiB9OwogCiBzdHJ1Y3QgTWluaWZpZWRJREhhc2ggewpkaWZmIC0tZ2l0IGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdNaW5pZmllZElESW5saW5lcy5oIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL2RmZy9ERkdNaW5pZmllZElESW5saW5lcy5oCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjM4
NjljZjcxMmRlZTUwNjIyMTg2NTllNmZlNmVjNzVkNDIzZjllN2EKLS0tIC9kZXYvbnVsbAorKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR01pbmlmaWVkSURJbmxpbmVzLmgKQEAgLTAs
MCArMSw0MSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6
CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0
aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
CisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5D
LiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFN
QUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBS
T0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFO
WSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkg
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisK
KyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSAiREZHTWluaWZpZWRJRC5oIgorCisjaW5jbHVkZSAi
REZHTm9kZS5oIgorCituYW1lc3BhY2UgSlNDIHsKK25hbWVzcGFjZSBERkcgeworCitpbmxpbmUg
TWluaWZpZWRJRDo6TWluaWZpZWRJRChOb2RlKiBub2RlKQorICAgIDogbV9pbmRleChub2RlLT5p
bmRleCgpKQoreworICAgIFJFTEVBU0VfQVNTRVJUKG1faW5kZXggIT0gaW52YWxpZEluZGV4KCkg
JiYgbV9pbmRleCAhPSBvdGhlckludmFsaWRJbmRleCgpKTsKK30KKworfSB9IC8vIG5hbWVzcGFj
ZSBKU0M6OkRGRwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdNaW5p
ZmllZE5vZGUuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdNaW5pZmllZE5vZGUu
Y3BwCmluZGV4IDU3ZmI2YTExYTcwNmUyNDNlNTkzYmU4ZTE1Y2M4MDY1MDBjMGU0NzUuLjlhMmZm
OTkxYjMzY2MwOTJhOTI3ZGRmNjg4OTkzZjM4NTViZGQ1MmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9kZmcvREZHTWluaWZpZWROb2RlLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvZGZnL0RGR01pbmlmaWVkTm9kZS5jcHAKQEAgLTI4LDYgKzI4LDcgQEAKIAogI2lm
IEVOQUJMRShERkdfSklUKQogCisjaW5jbHVkZSAiREZHTWluaWZpZWRJRElubGluZXMuaCIKICNp
bmNsdWRlICJERkdOb2RlLmgiCiAjaW5jbHVkZSAiSlNDSW5saW5lcy5oIgogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1ZhbHVlU291cmNlLmggYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvZGZnL0RGR1ZhbHVlU291cmNlLmgKaW5kZXggYzA1ODRkNjlhMzlmM2I4NTJm
ODYwNDYxNzQ4NDIzYWNiZDY1Y2Y3NC4uYjVjM2M5ZGJlOTFjZGIxZTVmN2FlN2MxOWRhMGEwNjEz
YmY5MmRjZCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdWYWx1ZVNv
dXJjZS5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHVmFsdWVTb3VyY2UuaApA
QCAtMTI1LDcgKzEyNSw3IEBAIGNsYXNzIFZhbHVlU291cmNlIHsKICAgICAKICAgICBWYWx1ZVNv
dXJjZShWYWx1ZVNvdXJjZUtpbmQgdmFsdWVTb3VyY2VLaW5kLCBWaXJ0dWFsUmVnaXN0ZXIgd2hl
cmUpCiAgICAgICAgIDogbV9raW5kKHZhbHVlU291cmNlS2luZCkKLSAgICAgICAgLCBtX3ZhbHVl
KHN0YXRpY19jYXN0PGludHB0cl90Pih3aGVyZS5vZmZzZXQoKSkpCisgICAgICAgICwgbV92YWx1
ZSh3aGVyZS5vZmZzZXQoKSkKICAgICB7CiAgICAgICAgIEFTU0VSVChraW5kKCkgIT0gU291cmNl
Tm90U2V0KTsKICAgICAgICAgQVNTRVJUKGtpbmQoKSAhPSBIYXZlTm9kZSk7CkBAIC0yMDgsNyAr
MjA4LDcgQEAgY2xhc3MgVmFsdWVTb3VyY2UgewogICAgIAogcHJpdmF0ZToKICAgICBWYWx1ZVNv
dXJjZUtpbmQgbV9raW5kOwotICAgIHVpbnRwdHJfdCBtX3ZhbHVlOworICAgIHVuc2lnbmVkIG1f
dmFsdWU7CiB9OwogCiB9IH0gLy8gbmFtZXNwYWNlIEpTQzo6REZHCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1ZhcmlhYmxlRXZlbnQuaCBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9kZmcvREZHVmFyaWFibGVFdmVudC5oCmluZGV4IGVkNWQ2NjA4NjBjNmNiZDNlZjA3
ZjJlMDU0YzA0YjI3ZjY1OGQ5ZTMuLmFjMjUzMjdkMTRlMWMwOGQ3ZTRiMTQ1NzJhN2ExMDZiMjJj
MzUzOWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHVmFyaWFibGVF
dmVudC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHVmFyaWFibGVFdmVudC5o
CkBAIC0xOTgsNyArMTk4LDcgQEAgY2xhc3MgVmFyaWFibGVFdmVudCB7CiAgICAgICAgIEFTU0VS
VCgKICAgICAgICAgICAgIG1fa2luZCA9PSBCaXJ0aFRvRmlsbCB8fCBtX2tpbmQgPT0gRmlsbCB8
fCBtX2tpbmQgPT0gQmlydGhUb1NwaWxsIHx8IG1fa2luZCA9PSBTcGlsbAogICAgICAgICAgICAg
fHwgbV9raW5kID09IFNldExvY2FsRXZlbnQpOwotICAgICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8
RGF0YUZvcm1hdD4obV9kYXRhRm9ybWF0KTsKKyAgICAgICAgcmV0dXJuIG1fZGF0YUZvcm1hdDsK
ICAgICB9CiAgICAgCiAgICAgTWFjcm9Bc3NlbWJsZXI6OlJlZ2lzdGVySUQgZ3ByKCkgY29uc3QK
QEAgLTI2Miw3ICsyNjIsNyBAQCBjbGFzcyBWYXJpYWJsZUV2ZW50IHsKICAgICAKICAgICB1bmlv
biB7CiAgICAgICAgIGludCB2aXJ0dWFsUmVnOwotICAgICAgICB1aW50cHRyX3QgaWQ7CisgICAg
ICAgIHVuc2lnbmVkIGlkOwogICAgIH0gbV93aGljaDsKICAgICAKICAgICAvLyBGb3IgQmlydGhU
b0ZpbGwsIEZpbGw6CkBAIC0yNzYsNyArMjc2LDcgQEAgY2xhc3MgVmFyaWFibGVFdmVudCB7CiAg
ICAgVmFyaWFibGVSZXByZXNlbnRhdGlvbiBtX3JlcHJlc2VudGF0aW9uOwogICAgIAogICAgIGlu
dDhfdCBtX2tpbmQ7Ci0gICAgaW50OF90IG1fZGF0YUZvcm1hdDsKKyAgICBEYXRhRm9ybWF0IG1f
ZGF0YUZvcm1hdCB7IERhdGFGb3JtYXROb25lIH07CiB9OwogCiB9IH0gLy8gbmFtZXNwYWNlIEpT
Qzo6REZHCg==
</data>
<flag name="review"
          id="384374"
          type_id="1"
          status="+"
          setter="saam"
    />
    <flag name="commit-queue"
          id="384393"
          type_id="3"
          status="-"
          setter="commit-queue"
    />
          </attachment>
      

    </bug>

</bugzilla>