<?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>190659</bug_id>
          
          <creation_ts>2018-10-17 00:57:50 -0700</creation_ts>
          <short_desc>[JSC] More aggressively use `constexpr` in LowLevelInterpreter.asm for constant values</short_desc>
          <delta_ts>2018-10-17 08:50:43 -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>ews-watchlist</cc>
    
    <cc>keith_miller</cc>
    
    <cc>mark.lam</cc>
    
    <cc>msaboff</cc>
    
    <cc>saam</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1470051</commentid>
    <comment_count>0</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2018-10-17 00:57:50 -0700</bug_when>
    <thetext>[JSC] More aggressively use `constexpr` in LowLevelInterpreter.asm for constant values</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1470052</commentid>
    <comment_count>1</comment_count>
      <attachid>352556</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2018-10-17 01:08:12 -0700</bug_when>
    <thetext>Created attachment 352556
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1470053</commentid>
    <comment_count>2</comment_count>
    <who name="EWS Watchlist">ews-watchlist</who>
    <bug_when>2018-10-17 01:11:37 -0700</bug_when>
    <thetext>Attachment 352556 did not pass style-queue:


ERROR: Source/JavaScriptCore/llint/LLIntData.cpp:101:  Tests for true/false, null/non-null, and zero/non-zero should all be done without equality comparisons.  [readability/comparison_to_zero] [5]
ERROR: Source/JavaScriptCore/llint/LLIntData.cpp:105:  Tests for true/false, null/non-null, and zero/non-zero should all be done without equality comparisons.  [readability/comparison_to_zero] [5]
Total errors found: 2 in 8 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1470099</commentid>
    <comment_count>3</comment_count>
      <attachid>352556</attachid>
    <who name="Keith Miller">keith_miller</who>
    <bug_when>2018-10-17 07:23:13 -0700</bug_when>
    <thetext>Comment on attachment 352556
Patch

r=me. I could have sworn I did some of these already... Oh well. Nice patch!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1470100</commentid>
    <comment_count>4</comment_count>
      <attachid>352566</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2018-10-17 08:00:00 -0700</bug_when>
    <thetext>Created attachment 352566
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1470101</commentid>
    <comment_count>5</comment_count>
    <who name="EWS Watchlist">ews-watchlist</who>
    <bug_when>2018-10-17 08:02:20 -0700</bug_when>
    <thetext>Attachment 352566 did not pass style-queue:


ERROR: Source/JavaScriptCore/llint/LLIntData.cpp:101:  Tests for true/false, null/non-null, and zero/non-zero should all be done without equality comparisons.  [readability/comparison_to_zero] [5]
ERROR: Source/JavaScriptCore/llint/LLIntData.cpp:105:  Tests for true/false, null/non-null, and zero/non-zero should all be done without equality comparisons.  [readability/comparison_to_zero] [5]
Total errors found: 2 in 8 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1470113</commentid>
    <comment_count>6</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2018-10-17 08:49:02 -0700</bug_when>
    <thetext>Committed r237220: &lt;https://trac.webkit.org/changeset/237220&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1470114</commentid>
    <comment_count>7</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2018-10-17 08:50:43 -0700</bug_when>
    <thetext>&lt;rdar://problem/45339486&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>352556</attachid>
            <date>2018-10-17 01:08:12 -0700</date>
            <delta_ts>2018-10-17 07:23:13 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-190659-20181017170811.patch</filename>
            <type>text/plain</type>
            <size>36132</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjM3MjE1CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCAx
Y2U0YzgwMWQ3ODY3ZDc0MTViZjAzMjI0NGU4YWY5ZDNhOGUxZjE3Li5mZDQyMDk0MDU3MjcyZWEz
M2UzZTU3OTJjYzJlNmQ1YTAxNzBkMjdlIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw4OSBAQAorMjAxOC0xMC0xNyAgWXVzdWtlIFN1enVraSAgPHl1c3VrZXN1enVraUBzbG93
c3RhcnQub3JnPgorCisgICAgICAgIFtKU0NdIE1vcmUgYWdncmVzc2l2ZWx5IHVzZSBgY29uc3Rl
eHByYCBpbiBMb3dMZXZlbEludGVycHJldGVyLmFzbSBmb3IgY29uc3RhbnQgdmFsdWVzCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xOTA2NTkKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBc2tpbmcgdGhlIGFj
dHVhbCBjb25zdGFudCB2YWx1ZSB0byB0aGUgSlNDIGJpbmFyeSBpcyBhbHdheXMgdGhlIGJlc3Qg
d2F5IHRvIGdldCB0aGUgY29ycmVjdCB2YWx1ZS4KKyAgICAgICAgVGhlIHZhbHVlIGlzIGNvcnJl
Y3RseSB1cGRhdGVkIG9uY2UgdGhlIG9yaWdpbmFsIHZhbHVlIGlzIGNoYW5nZWQuIFdlIHdvdWxk
IGxpa2UgdG8gZW5jb3VyYWdlIHRoaXMKKyAgICAgICAgYXBwcm9hY2ggbW9yZSBpbiBMb3dMZXZl
bEludGVycHJldGVyLmFzbS4KKworICAgICAgICBUaGlzIHBhdGNoIGV4cGFuZHMgdGhlIGNvdmVy
YWdlIG9mIHRoaXMgYXBwcm9hY2guIFdlIG1ha2UgT2JzZXJ2ZWRUeXBlLCBSZXN1bHRUeXBlLCBh
bmQgQXJpdGhQcm9maWxlCisgICAgICAgIGNvbnN0ZXhwci1mcmllbmRseSB0byBwcm9kdWNlIHRo
ZSBtYWdpYyB2YWx1ZSB1c2VkIGluIExvd0xldmVsSW50ZXJwcmV0ZXIuYXNtIGF0IGNvbXBpbGlu
ZyB0aW1lLgorICAgICAgICBUaGlzIGNoYW5nZSBhbGxvd3MgdXMgdG8gZWFzaWx5IGV4dGVuZCBB
cml0aFByb2ZpbGUgaW4gdGhlIGZ1dHVyZSB0byBhZG9wdCBCaWdJbnQgZWZmaWNpZW50bHkuCisK
KyAgICAgICAgV2UgYWRkaXRpb25hbGx5IHVzZSBgY29uc3RleHByYCBmb3Igc2V2ZXJhbCBjb25z
dGFudCB2YWx1ZXMgaW4gTG93TGV2ZWxJbnRlcnByZXRlci5hc20uCisKKyAgICAgICAgKiBhc3Nl
bWJsZXIvTWF4RnJhbWVFeHRlbnRGb3JTbG93UGF0aENhbGwuaDoKKyAgICAgICAgVXNlIHRoaXMg
dmFsdWUgaW4gTG93TGV2ZWxJbnRlcnByZXRlci5hc20gZGlyZWN0bHkuIFdlIGFsc28gbWFrZSB0
aGVtIGNvbnN0ZXhwci4gQW5kIHdlIGFkZCBDUFUoQVJNNjRFKS4KKworICAgICAgICAqIGJ5dGVj
b2RlL0FyaXRoUHJvZmlsZS5oOgorICAgICAgICAoSlNDOjpPYnNlcnZlZFR5cGU6Ok9ic2VydmVk
VHlwZSk6CisgICAgICAgIChKU0M6Ok9ic2VydmVkVHlwZTo6c2F3SW50MzIgY29uc3QpOgorICAg
ICAgICAoSlNDOjpPYnNlcnZlZFR5cGU6OmlzT25seUludDMyIGNvbnN0KToKKyAgICAgICAgKEpT
Qzo6T2JzZXJ2ZWRUeXBlOjpzYXdOdW1iZXIgY29uc3QpOgorICAgICAgICAoSlNDOjpPYnNlcnZl
ZFR5cGU6OmlzT25seU51bWJlciBjb25zdCk6CisgICAgICAgIChKU0M6Ok9ic2VydmVkVHlwZTo6
c2F3Tm9uTnVtYmVyIGNvbnN0KToKKyAgICAgICAgKEpTQzo6T2JzZXJ2ZWRUeXBlOjppc09ubHlO
b25OdW1iZXIgY29uc3QpOgorICAgICAgICAoSlNDOjpPYnNlcnZlZFR5cGU6OmlzRW1wdHkgY29u
c3QpOgorICAgICAgICAoSlNDOjpPYnNlcnZlZFR5cGU6OmJpdHMgY29uc3QpOgorICAgICAgICAo
SlNDOjpPYnNlcnZlZFR5cGU6OndpdGhJbnQzMiBjb25zdCk6CisgICAgICAgIChKU0M6Ok9ic2Vy
dmVkVHlwZTo6d2l0aE51bWJlciBjb25zdCk6CisgICAgICAgIChKU0M6Ok9ic2VydmVkVHlwZTo6
d2l0aE5vbk51bWJlciBjb25zdCk6CisgICAgICAgIChKU0M6Ok9ic2VydmVkVHlwZTo6d2l0aG91
dE5vbk51bWJlciBjb25zdCk6CisgICAgICAgIChKU0M6Ok9ic2VydmVkVHlwZTo6b3BlcmF0b3I9
PSBjb25zdCk6CisgICAgICAgIChKU0M6OkFyaXRoUHJvZmlsZTo6QXJpdGhQcm9maWxlKToKKyAg
ICAgICAgKEpTQzo6QXJpdGhQcm9maWxlOjpmcm9tSW50KToKKyAgICAgICAgKEpTQzo6QXJpdGhQ
cm9maWxlOjpvYnNlcnZlZFVuYXJ5SW50KToKKyAgICAgICAgKEpTQzo6QXJpdGhQcm9maWxlOjpv
YnNlcnZlZFVuYXJ5TnVtYmVyKToKKyAgICAgICAgKEpTQzo6QXJpdGhQcm9maWxlOjpvYnNlcnZl
ZEJpbmFyeUludEludCk6CisgICAgICAgIChKU0M6OkFyaXRoUHJvZmlsZTo6b2JzZXJ2ZWRCaW5h
cnlOdW1iZXJJbnQpOgorICAgICAgICAoSlNDOjpBcml0aFByb2ZpbGU6Om9ic2VydmVkQmluYXJ5
SW50TnVtYmVyKToKKyAgICAgICAgKEpTQzo6QXJpdGhQcm9maWxlOjpvYnNlcnZlZEJpbmFyeU51
bWJlck51bWJlcik6CisgICAgICAgIChKU0M6OkFyaXRoUHJvZmlsZTo6bGhzT2JzZXJ2ZWRUeXBl
IGNvbnN0KToKKyAgICAgICAgKEpTQzo6QXJpdGhQcm9maWxlOjpyaHNPYnNlcnZlZFR5cGUgY29u
c3QpOgorICAgICAgICAoSlNDOjpBcml0aFByb2ZpbGU6OmJpdHMgY29uc3QpOgorICAgICAgICBN
YWtlIE9ic2VydmVkVHlwZSBhbmQgQXJpdGhQcm9maWxlIGNvbnN0ZXhwci1mcmllbmRseS4KKwor
ICAgICAgICAqIGxsaW50L0xMSW50RGF0YS5jcHA6CisgICAgICAgIChKU0M6OkxMSW50OjpEYXRh
OjpwZXJmb3JtQXNzZXJ0aW9ucyk6CisgICAgICAgIE1ha2Ugc2V2ZXJhbCBBU1NFUlRzIHRvIFNU
QVRJQ19BU1NFUlRzLiBSZW1vdmUgc29tZSB1bm5lY2Vzc2FyeSBjaGVja3MuCisgICAgICAgICog
bGxpbnQvTExJbnRPZmZzZXRzRXh0cmFjdG9yLmNwcDoKKyAgICAgICAgKiBsbGludC9Mb3dMZXZl
bEludGVycHJldGVyLmFzbToKKyAgICAgICAgUmVtb3ZlIHVudXNlZCBjb25zdGFudCB2YWx1ZXMu
IFVzZSBjb25zdGV4cHIgbW9yZSBhbmQgbW9yZSBhZ2dyZXNzaXZlbHkuCisKKyAgICAgICAgKiBw
YXJzZXIvUmVzdWx0VHlwZS5oOgorICAgICAgICAoSlNDOjpSZXN1bHRUeXBlOjpSZXN1bHRUeXBl
KToKKyAgICAgICAgKEpTQzo6UmVzdWx0VHlwZTo6aXNJbnQzMiBjb25zdCk6CisgICAgICAgIChK
U0M6OlJlc3VsdFR5cGU6OmRlZmluaXRlbHlJc051bWJlciBjb25zdCk6CisgICAgICAgIChKU0M6
OlJlc3VsdFR5cGU6OmRlZmluaXRlbHlJc1N0cmluZyBjb25zdCk6CisgICAgICAgIChKU0M6OlJl
c3VsdFR5cGU6OmRlZmluaXRlbHlJc0Jvb2xlYW4gY29uc3QpOgorICAgICAgICAoSlNDOjpSZXN1
bHRUeXBlOjpkZWZpbml0ZWx5SXNCaWdJbnQgY29uc3QpOgorICAgICAgICAoSlNDOjpSZXN1bHRU
eXBlOjptaWdodEJlTnVtYmVyIGNvbnN0KToKKyAgICAgICAgKEpTQzo6UmVzdWx0VHlwZTo6aXNO
b3ROdW1iZXIgY29uc3QpOgorICAgICAgICAoSlNDOjpSZXN1bHRUeXBlOjptaWdodEJlQmlnSW50
IGNvbnN0KToKKyAgICAgICAgKEpTQzo6UmVzdWx0VHlwZTo6aXNOb3RCaWdJbnQgY29uc3QpOgor
ICAgICAgICAoSlNDOjpSZXN1bHRUeXBlOjpudWxsVHlwZSk6CisgICAgICAgIChKU0M6OlJlc3Vs
dFR5cGU6OmJvb2xlYW5UeXBlKToKKyAgICAgICAgKEpTQzo6UmVzdWx0VHlwZTo6bnVtYmVyVHlw
ZSk6CisgICAgICAgIChKU0M6OlJlc3VsdFR5cGU6Om51bWJlclR5cGVJc0ludDMyKToKKyAgICAg
ICAgKEpTQzo6UmVzdWx0VHlwZTo6c3RyaW5nT3JOdW1iZXJUeXBlKToKKyAgICAgICAgKEpTQzo6
UmVzdWx0VHlwZTo6YWRkUmVzdWx0VHlwZSk6CisgICAgICAgIChKU0M6OlJlc3VsdFR5cGU6OnN0
cmluZ1R5cGUpOgorICAgICAgICAoSlNDOjpSZXN1bHRUeXBlOjpiaWdJbnRUeXBlKToKKyAgICAg
ICAgKEpTQzo6UmVzdWx0VHlwZTo6dW5rbm93blR5cGUpOgorICAgICAgICAoSlNDOjpSZXN1bHRU
eXBlOjpmb3JBZGQpOgorICAgICAgICAoSlNDOjpSZXN1bHRUeXBlOjpmb3JMb2dpY2FsT3ApOgor
ICAgICAgICAoSlNDOjpSZXN1bHRUeXBlOjpmb3JCaXRPcCk6CisgICAgICAgIChKU0M6OlJlc3Vs
dFR5cGU6OmJpdHMgY29uc3QpOgorICAgICAgICBNYWtlIFJlc3VsdFR5cGUgY29uc3RleHByLWZy
aWVuZGx5LgorCisgICAgICAgICogcnVudGltZS9KU0NKU1ZhbHVlLmg6CisgICAgICAgIFVzZSBv
ZmZzZXRvZiBpbnN0ZWFkIG9mIE9CSkVDVF9PRkZTRVRPRi4gSXQgaXMgT0sgc2luY2UgRW5jb2Rl
ZFZhbHVlRGVzY3JpcHRvciBpcyBQT0QuCisgICAgICAgIFRoaXMgY2hhbmdlIG1ha2VzIFRhZ09m
ZnNldCBhbmQgUGF5bG9hZE9mZnNldCBtYWNyb3MgY29uc3RleHByLWZyaWVuZGx5IHdoaWxlIE9C
SkVDVF9PRkZTRVRPRgorICAgICAgICBjYW5ub3QgYmUgdXNlZCBpbiBjb25zdGV4cHIgc2luY2Ug
aXQgdXNlcyByZWludGVycHJldF9jYXN0LgorCiAyMDE4LTEwLTE2ICBNYXJrIExhbSAgPG1hcmsu
bGFtQGFwcGxlLmNvbT4KIAogICAgICAgICBHZXRJbmRleGVkUHJvcGVydHlTdG9yYWdlIGNhbiBH
Qy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvTWF4RnJhbWVF
eHRlbnRGb3JTbG93UGF0aENhbGwuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIv
TWF4RnJhbWVFeHRlbnRGb3JTbG93UGF0aENhbGwuaAppbmRleCA0MzIxMzA1YzY4ZTRkYWY2Mjgy
M2Y2ZWVmNzU5NTFmYTI3YTkzNmJlLi42ZGFjMDljMmM5MTNlYTA5YWU0YzViMGE2OTBjNTk2NTgx
OTQ0NzgwIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL01heEZy
YW1lRXh0ZW50Rm9yU2xvd1BhdGhDYWxsLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Fz
c2VtYmxlci9NYXhGcmFtZUV4dGVudEZvclNsb3dQYXRoQ2FsbC5oCkBAIC0zNiw0NCArMzYsNDQg
QEAgbmFtZXNwYWNlIEpTQyB7CiAvLyBmcm9tIEpTIGNvZGUuCiAKICNpZiAhRU5BQkxFKEFTU0VN
QkxFUikKLXN0YXRpYyBjb25zdCBzaXplX3QgbWF4RnJhbWVFeHRlbnRGb3JTbG93UGF0aENhbGwg
PSAwOworc3RhdGljIGNvbnN0ZXhwciBzaXplX3QgbWF4RnJhbWVFeHRlbnRGb3JTbG93UGF0aENh
bGwgPSAwOwogCiAjZWxpZiBDUFUoWDg2XzY0KSAmJiBPUyhXSU5ET1dTKQogLy8gNCBhcmdzIGlu
IHJlZ2lzdGVycywgYnV0IHN0YWNrIHNwYWNlIG5lZWRzIHRvIGJlIGFsbG9jYXRlZCBmb3IgYWxs
IGFyZ3MuCi1zdGF0aWMgY29uc3Qgc2l6ZV90IG1heEZyYW1lRXh0ZW50Rm9yU2xvd1BhdGhDYWxs
ID0gNjQ7CitzdGF0aWMgY29uc3RleHByIHNpemVfdCBtYXhGcmFtZUV4dGVudEZvclNsb3dQYXRo
Q2FsbCA9IDY0OwogCiAjZWxpZiBDUFUoWDg2XzY0KQogLy8gQWxsIGFyZ3MgaW4gcmVnaXN0ZXJz
Lgotc3RhdGljIGNvbnN0IHNpemVfdCBtYXhGcmFtZUV4dGVudEZvclNsb3dQYXRoQ2FsbCA9IDA7
CitzdGF0aWMgY29uc3RleHByIHNpemVfdCBtYXhGcmFtZUV4dGVudEZvclNsb3dQYXRoQ2FsbCA9
IDA7CiAKICNlbGlmIENQVShYODYpCiAvLyA3IGFyZ3Mgb24gc3RhY2sgKDI4IGJ5dGVzKS4KLXN0
YXRpYyBjb25zdCBzaXplX3QgbWF4RnJhbWVFeHRlbnRGb3JTbG93UGF0aENhbGwgPSA0MDsKK3N0
YXRpYyBjb25zdGV4cHIgc2l6ZV90IG1heEZyYW1lRXh0ZW50Rm9yU2xvd1BhdGhDYWxsID0gNDA7
CiAKLSNlbGlmIENQVShBUk02NCkKKyNlbGlmIENQVShBUk02NCkgfHwgQ1BVKEFSTTY0RSkKIC8v
IEFsbCBhcmdzIGluIHJlZ2lzdGVycy4KLXN0YXRpYyBjb25zdCBzaXplX3QgbWF4RnJhbWVFeHRl
bnRGb3JTbG93UGF0aENhbGwgPSAwOworc3RhdGljIGNvbnN0ZXhwciBzaXplX3QgbWF4RnJhbWVF
eHRlbnRGb3JTbG93UGF0aENhbGwgPSAwOwogCiAjZWxpZiBDUFUoQVJNKQogLy8gRmlyc3QgZm91
ciBhcmdzIGluIHJlZ2lzdGVycywgcmVtYWluaW5nIDQgYXJncyBvbiBzdGFjay4KLXN0YXRpYyBj
b25zdCBzaXplX3QgbWF4RnJhbWVFeHRlbnRGb3JTbG93UGF0aENhbGwgPSAyNDsKK3N0YXRpYyBj
b25zdGV4cHIgc2l6ZV90IG1heEZyYW1lRXh0ZW50Rm9yU2xvd1BhdGhDYWxsID0gMjQ7CiAKICNl
bGlmIENQVShNSVBTKQogLy8gVGhvdWdoIGFyZ3MgYXJlIGluIHJlZ2lzdGVycywgdGhlcmUgbmVl
ZCB0byBiZSBzcGFjZSBvbiB0aGUgc3RhY2sgZm9yIGFsbCBhcmdzLgotc3RhdGljIGNvbnN0IHNp
emVfdCBtYXhGcmFtZUV4dGVudEZvclNsb3dQYXRoQ2FsbCA9IDQwOworc3RhdGljIGNvbnN0ZXhw
ciBzaXplX3QgbWF4RnJhbWVFeHRlbnRGb3JTbG93UGF0aENhbGwgPSA0MDsKIAogI2Vsc2UKICNl
cnJvciAiVW5zdXBwb3J0ZWQgQ1BVOiBuZWVkIHZhbHVlIGZvciBtYXhGcmFtZUV4dGVudEZvclNs
b3dQYXRoQ2FsbCIKIAogI2VuZGlmCiAKLUNPTVBJTEVfQVNTRVJUKCEobWF4RnJhbWVFeHRlbnRG
b3JTbG93UGF0aENhbGwgJSBzaXplb2YoUmVnaXN0ZXIpKSwgZXh0ZW50X211c3RfYmVfaW5fbXVs
dGlwbGVzX29mX3JlZ2lzdGVycyk7CitzdGF0aWNfYXNzZXJ0KCEobWF4RnJhbWVFeHRlbnRGb3JT
bG93UGF0aENhbGwgJSBzaXplb2YoUmVnaXN0ZXIpKSwgIkV4dGVudCBtdXN0IGJlIGluIG11bHRp
cGxlcyBvZiByZWdpc3RlcnMiKTsKIAogI2lmIEVOQUJMRShBU1NFTUJMRVIpCiAvLyBNYWtlIHN1
cmUgdGhhdCBjZnIgLSBtYXhGcmFtZUV4dGVudEZvclNsb3dQYXRoQ2FsbCBieXRlcyB3aWxsIG1h
a2UgdGhlIHN0YWNrIHBvaW50ZXIgYWxpZ25lZAotQ09NUElMRV9BU1NFUlQoKG1heEZyYW1lRXh0
ZW50Rm9yU2xvd1BhdGhDYWxsICUgMTYpID09IDE2IC0gc2l6ZW9mKENhbGxlckZyYW1lQW5kUEMp
LCBleHRlbnRfbXVzdF9hbGlnbl9zdGFja19mcm9tX2NhbGxmcmFtZV9wb2ludGVyKTsKK3N0YXRp
Y19hc3NlcnQoKG1heEZyYW1lRXh0ZW50Rm9yU2xvd1BhdGhDYWxsICUgMTYpID09IDE2IC0gc2l6
ZW9mKENhbGxlckZyYW1lQW5kUEMpLCAiRXh0ZW50IG11c3QgYWxpZ24gc3RhY2sgZnJvbSBjYWxs
ZnJhbWUgcG9pbnRlciIpOwogI2VuZGlmCiAKLXN0YXRpYyBjb25zdCBzaXplX3QgbWF4RnJhbWVF
eHRlbnRGb3JTbG93UGF0aENhbGxJblJlZ2lzdGVycyA9IG1heEZyYW1lRXh0ZW50Rm9yU2xvd1Bh
dGhDYWxsIC8gc2l6ZW9mKFJlZ2lzdGVyKTsKK3N0YXRpYyBjb25zdGV4cHIgc2l6ZV90IG1heEZy
YW1lRXh0ZW50Rm9yU2xvd1BhdGhDYWxsSW5SZWdpc3RlcnMgPSBtYXhGcmFtZUV4dGVudEZvclNs
b3dQYXRoQ2FsbCAvIHNpemVvZihSZWdpc3Rlcik7CiAKIH0gLy8gbmFtZXNwYWNlIEpTQwpkaWZm
IC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0FyaXRoUHJvZmlsZS5oIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0FyaXRoUHJvZmlsZS5oCmluZGV4IDQwZmFk
MWJlM2JhYTQzNDg2ZTk4YTAzY2QwNGQ1NTQ4NzZlZDRkYzcuLjRhMzYxMjYzZTIxMGE5NGYwZTVm
OTA3OWFhYzY0MjBjMDI5ZGMyZGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9i
eXRlY29kZS9Bcml0aFByb2ZpbGUuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNv
ZGUvQXJpdGhQcm9maWxlLmgKQEAgLTM1LDgwICszNSwxMjYgQEAgbmFtZXNwYWNlIEpTQyB7CiBj
bGFzcyBDQ2FsbEhlbHBlcnM7CiAKIHN0cnVjdCBPYnNlcnZlZFR5cGUgewotICAgIE9ic2VydmVk
VHlwZSh1aW50OF90IGJpdHMgPSBUeXBlRW1wdHkpCisgICAgY29uc3RleHByIE9ic2VydmVkVHlw
ZSh1aW50OF90IGJpdHMgPSBUeXBlRW1wdHkpCiAgICAgICAgIDogbV9iaXRzKGJpdHMpCiAgICAg
eyB9CiAKLSAgICBib29sIHNhd0ludDMyKCkgY29uc3QgeyByZXR1cm4gbV9iaXRzICYgVHlwZUlu
dDMyOyB9Ci0gICAgYm9vbCBpc09ubHlJbnQzMigpIGNvbnN0IHsgcmV0dXJuIG1fYml0cyA9PSBU
eXBlSW50MzI7IH0KLSAgICBib29sIHNhd051bWJlcigpIGNvbnN0IHsgcmV0dXJuIG1fYml0cyAm
IFR5cGVOdW1iZXI7IH0KLSAgICBib29sIGlzT25seU51bWJlcigpIGNvbnN0IHsgcmV0dXJuIG1f
Yml0cyA9PSBUeXBlTnVtYmVyOyB9Ci0gICAgYm9vbCBzYXdOb25OdW1iZXIoKSBjb25zdCB7IHJl
dHVybiBtX2JpdHMgJiBUeXBlTm9uTnVtYmVyOyB9Ci0gICAgYm9vbCBpc09ubHlOb25OdW1iZXIo
KSBjb25zdCB7IHJldHVybiBtX2JpdHMgPT0gVHlwZU5vbk51bWJlcjsgfQotICAgIGJvb2wgaXNF
bXB0eSgpIGNvbnN0IHsgcmV0dXJuICFtX2JpdHM7IH0KLSAgICB1aW50OF90IGJpdHMoKSBjb25z
dCB7IHJldHVybiBtX2JpdHM7IH0KKyAgICBjb25zdGV4cHIgYm9vbCBzYXdJbnQzMigpIGNvbnN0
IHsgcmV0dXJuIG1fYml0cyAmIFR5cGVJbnQzMjsgfQorICAgIGNvbnN0ZXhwciBib29sIGlzT25s
eUludDMyKCkgY29uc3QgeyByZXR1cm4gbV9iaXRzID09IFR5cGVJbnQzMjsgfQorICAgIGNvbnN0
ZXhwciBib29sIHNhd051bWJlcigpIGNvbnN0IHsgcmV0dXJuIG1fYml0cyAmIFR5cGVOdW1iZXI7
IH0KKyAgICBjb25zdGV4cHIgYm9vbCBpc09ubHlOdW1iZXIoKSBjb25zdCB7IHJldHVybiBtX2Jp
dHMgPT0gVHlwZU51bWJlcjsgfQorICAgIGNvbnN0ZXhwciBib29sIHNhd05vbk51bWJlcigpIGNv
bnN0IHsgcmV0dXJuIG1fYml0cyAmIFR5cGVOb25OdW1iZXI7IH0KKyAgICBjb25zdGV4cHIgYm9v
bCBpc09ubHlOb25OdW1iZXIoKSBjb25zdCB7IHJldHVybiBtX2JpdHMgPT0gVHlwZU5vbk51bWJl
cjsgfQorICAgIGNvbnN0ZXhwciBib29sIGlzRW1wdHkoKSBjb25zdCB7IHJldHVybiAhbV9iaXRz
OyB9CisgICAgY29uc3RleHByIHVpbnQ4X3QgYml0cygpIGNvbnN0IHsgcmV0dXJuIG1fYml0czsg
fQogCi0gICAgT2JzZXJ2ZWRUeXBlIHdpdGhJbnQzMigpIGNvbnN0IHsgcmV0dXJuIE9ic2VydmVk
VHlwZShtX2JpdHMgfCBUeXBlSW50MzIpOyB9Ci0gICAgT2JzZXJ2ZWRUeXBlIHdpdGhOdW1iZXIo
KSBjb25zdCB7IHJldHVybiBPYnNlcnZlZFR5cGUobV9iaXRzIHwgVHlwZU51bWJlcik7IH0KLSAg
ICBPYnNlcnZlZFR5cGUgd2l0aE5vbk51bWJlcigpIGNvbnN0IHsgcmV0dXJuIE9ic2VydmVkVHlw
ZShtX2JpdHMgfCBUeXBlTm9uTnVtYmVyKTsgfQotICAgIE9ic2VydmVkVHlwZSB3aXRob3V0Tm9u
TnVtYmVyKCkgY29uc3QgeyByZXR1cm4gT2JzZXJ2ZWRUeXBlKG1fYml0cyAmIH5UeXBlTm9uTnVt
YmVyKTsgfQorICAgIGNvbnN0ZXhwciBPYnNlcnZlZFR5cGUgd2l0aEludDMyKCkgY29uc3QgeyBy
ZXR1cm4gT2JzZXJ2ZWRUeXBlKG1fYml0cyB8IFR5cGVJbnQzMik7IH0KKyAgICBjb25zdGV4cHIg
T2JzZXJ2ZWRUeXBlIHdpdGhOdW1iZXIoKSBjb25zdCB7IHJldHVybiBPYnNlcnZlZFR5cGUobV9i
aXRzIHwgVHlwZU51bWJlcik7IH0KKyAgICBjb25zdGV4cHIgT2JzZXJ2ZWRUeXBlIHdpdGhOb25O
dW1iZXIoKSBjb25zdCB7IHJldHVybiBPYnNlcnZlZFR5cGUobV9iaXRzIHwgVHlwZU5vbk51bWJl
cik7IH0KKyAgICBjb25zdGV4cHIgT2JzZXJ2ZWRUeXBlIHdpdGhvdXROb25OdW1iZXIoKSBjb25z
dCB7IHJldHVybiBPYnNlcnZlZFR5cGUobV9iaXRzICYgflR5cGVOb25OdW1iZXIpOyB9CiAKLSAg
ICBib29sIG9wZXJhdG9yPT0oY29uc3QgT2JzZXJ2ZWRUeXBlJiBvdGhlcikgY29uc3QgeyByZXR1
cm4gbV9iaXRzID09IG90aGVyLm1fYml0czsgfQorICAgIGNvbnN0ZXhwciBib29sIG9wZXJhdG9y
PT0oY29uc3QgT2JzZXJ2ZWRUeXBlJiBvdGhlcikgY29uc3QgeyByZXR1cm4gbV9iaXRzID09IG90
aGVyLm1fYml0czsgfQogCi0gICAgc3RhdGljIGNvbnN0IHVpbnQ4X3QgVHlwZUVtcHR5ID0gMHgw
OwotICAgIHN0YXRpYyBjb25zdCB1aW50OF90IFR5cGVJbnQzMiA9IDB4MTsKLSAgICBzdGF0aWMg
Y29uc3QgdWludDhfdCBUeXBlTnVtYmVyID0gMHgwMjsKLSAgICBzdGF0aWMgY29uc3QgdWludDhf
dCBUeXBlTm9uTnVtYmVyID0gMHgwNDsKKyAgICBzdGF0aWMgY29uc3RleHByIHVpbnQ4X3QgVHlw
ZUVtcHR5ID0gMHgwOworICAgIHN0YXRpYyBjb25zdGV4cHIgdWludDhfdCBUeXBlSW50MzIgPSAw
eDE7CisgICAgc3RhdGljIGNvbnN0ZXhwciB1aW50OF90IFR5cGVOdW1iZXIgPSAweDAyOworICAg
IHN0YXRpYyBjb25zdGV4cHIgdWludDhfdCBUeXBlTm9uTnVtYmVyID0gMHgwNDsKIAotICAgIHN0
YXRpYyBjb25zdCB1aW50MzJfdCBudW1CaXRzTmVlZGVkID0gMzsKKyAgICBzdGF0aWMgY29uc3Rl
eHByIHVpbnQzMl90IG51bUJpdHNOZWVkZWQgPSAzOwogCiBwcml2YXRlOgotICAgIHVpbnQ4X3Qg
bV9iaXRzOworICAgIHVpbnQ4X3QgbV9iaXRzIHsgMCB9OwogfTsKIAogc3RydWN0IEFyaXRoUHJv
ZmlsZSB7CiBwcml2YXRlOgotICAgIHN0YXRpYyBjb25zdCB1aW50MzJfdCBudW1iZXJPZkZsYWdC
aXRzID0gNTsKLSAgICBzdGF0aWMgY29uc3QgdWludDMyX3QgcmhzUmVzdWx0VHlwZVNoaWZ0ID0g
bnVtYmVyT2ZGbGFnQml0czsKLSAgICBzdGF0aWMgY29uc3QgdWludDMyX3QgbGhzUmVzdWx0VHlw
ZVNoaWZ0ID0gcmhzUmVzdWx0VHlwZVNoaWZ0ICsgUmVzdWx0VHlwZTo6bnVtQml0c05lZWRlZDsK
LSAgICBzdGF0aWMgY29uc3QgdWludDMyX3QgcmhzT2JzZXJ2ZWRUeXBlU2hpZnQgPSBsaHNSZXN1
bHRUeXBlU2hpZnQgKyBSZXN1bHRUeXBlOjpudW1CaXRzTmVlZGVkOwotICAgIHN0YXRpYyBjb25z
dCB1aW50MzJfdCBsaHNPYnNlcnZlZFR5cGVTaGlmdCA9IHJoc09ic2VydmVkVHlwZVNoaWZ0ICsg
T2JzZXJ2ZWRUeXBlOjpudW1CaXRzTmVlZGVkOworICAgIHN0YXRpYyBjb25zdGV4cHIgdWludDMy
X3QgbnVtYmVyT2ZGbGFnQml0cyA9IDU7CisgICAgc3RhdGljIGNvbnN0ZXhwciB1aW50MzJfdCBy
aHNSZXN1bHRUeXBlU2hpZnQgPSBudW1iZXJPZkZsYWdCaXRzOworICAgIHN0YXRpYyBjb25zdGV4
cHIgdWludDMyX3QgbGhzUmVzdWx0VHlwZVNoaWZ0ID0gcmhzUmVzdWx0VHlwZVNoaWZ0ICsgUmVz
dWx0VHlwZTo6bnVtQml0c05lZWRlZDsKKyAgICBzdGF0aWMgY29uc3RleHByIHVpbnQzMl90IHJo
c09ic2VydmVkVHlwZVNoaWZ0ID0gbGhzUmVzdWx0VHlwZVNoaWZ0ICsgUmVzdWx0VHlwZTo6bnVt
Qml0c05lZWRlZDsKKyAgICBzdGF0aWMgY29uc3RleHByIHVpbnQzMl90IGxoc09ic2VydmVkVHlw
ZVNoaWZ0ID0gcmhzT2JzZXJ2ZWRUeXBlU2hpZnQgKyBPYnNlcnZlZFR5cGU6Om51bUJpdHNOZWVk
ZWQ7CiAKICAgICBzdGF0aWNfYXNzZXJ0KE9ic2VydmVkVHlwZTo6bnVtQml0c05lZWRlZCA9PSAz
LCAiV2UgbWFrZSBhIGhhcmQgYXNzdW1wdGlvbiBhYm91dCB0aGF0IGhlcmUuIik7Ci0gICAgc3Rh
dGljIGNvbnN0IHVpbnQzMl90IGNsZWFyUmhzT2JzZXJ2ZWRUeXBlQml0TWFzayA9IHN0YXRpY19j
YXN0PHVpbnQzMl90Pih+KCgxIDw8IHJoc09ic2VydmVkVHlwZVNoaWZ0KSB8ICgxIDw8IChyaHNP
YnNlcnZlZFR5cGVTaGlmdCArIDEpKSB8ICgxIDw8IChyaHNPYnNlcnZlZFR5cGVTaGlmdCArIDIp
KSkpOwotICAgIHN0YXRpYyBjb25zdCB1aW50MzJfdCBjbGVhckxoc09ic2VydmVkVHlwZUJpdE1h
c2sgPSBzdGF0aWNfY2FzdDx1aW50MzJfdD4ofigoMSA8PCBsaHNPYnNlcnZlZFR5cGVTaGlmdCkg
fCAoMSA8PCAobGhzT2JzZXJ2ZWRUeXBlU2hpZnQgKyAxKSkgfCAoMSA8PCAobGhzT2JzZXJ2ZWRU
eXBlU2hpZnQgKyAyKSkpKTsKKyAgICBzdGF0aWMgY29uc3RleHByIHVpbnQzMl90IGNsZWFyUmhz
T2JzZXJ2ZWRUeXBlQml0TWFzayA9IHN0YXRpY19jYXN0PHVpbnQzMl90Pih+KCgxIDw8IHJoc09i
c2VydmVkVHlwZVNoaWZ0KSB8ICgxIDw8IChyaHNPYnNlcnZlZFR5cGVTaGlmdCArIDEpKSB8ICgx
IDw8IChyaHNPYnNlcnZlZFR5cGVTaGlmdCArIDIpKSkpOworICAgIHN0YXRpYyBjb25zdGV4cHIg
dWludDMyX3QgY2xlYXJMaHNPYnNlcnZlZFR5cGVCaXRNYXNrID0gc3RhdGljX2Nhc3Q8dWludDMy
X3Q+KH4oKDEgPDwgbGhzT2JzZXJ2ZWRUeXBlU2hpZnQpIHwgKDEgPDwgKGxoc09ic2VydmVkVHlw
ZVNoaWZ0ICsgMSkpIHwgKDEgPDwgKGxoc09ic2VydmVkVHlwZVNoaWZ0ICsgMikpKSk7CisKKyAg
ICBzdGF0aWMgY29uc3RleHByIHVpbnQzMl90IHJlc3VsdFR5cGVNYXNrID0gKDEgPDwgUmVzdWx0
VHlwZTo6bnVtQml0c05lZWRlZCkgLSAxOworICAgIHN0YXRpYyBjb25zdGV4cHIgdWludDMyX3Qg
b2JzZXJ2ZWRUeXBlTWFzayA9ICgxIDw8IE9ic2VydmVkVHlwZTo6bnVtQml0c05lZWRlZCkgLSAx
OworCisgICAgZW51bSBjbGFzcyBDb25zdGFudFRhZyB7IENvbnN0YW50IH07CiAKLSAgICBzdGF0
aWMgY29uc3QgdWludDMyX3QgcmVzdWx0VHlwZU1hc2sgPSAoMSA8PCBSZXN1bHRUeXBlOjpudW1C
aXRzTmVlZGVkKSAtIDE7Ci0gICAgc3RhdGljIGNvbnN0IHVpbnQzMl90IG9ic2VydmVkVHlwZU1h
c2sgPSAoMSA8PCBPYnNlcnZlZFR5cGU6Om51bUJpdHNOZWVkZWQpIC0gMTsKIHB1YmxpYzoKLSAg
ICBzdGF0aWMgY29uc3QgdWludDMyX3Qgc3BlY2lhbEZhc3RQYXRoQml0ID0gMSA8PCAobGhzT2Jz
ZXJ2ZWRUeXBlU2hpZnQgKyBPYnNlcnZlZFR5cGU6Om51bUJpdHNOZWVkZWQpOworICAgIHN0YXRp
YyBjb25zdGV4cHIgdWludDMyX3Qgc3BlY2lhbEZhc3RQYXRoQml0ID0gMSA8PCAobGhzT2JzZXJ2
ZWRUeXBlU2hpZnQgKyBPYnNlcnZlZFR5cGU6Om51bUJpdHNOZWVkZWQpOwogICAgIHN0YXRpY19h
c3NlcnQoKGxoc09ic2VydmVkVHlwZVNoaWZ0ICsgT2JzZXJ2ZWRUeXBlOjpudW1CaXRzTmVlZGVk
KSA8PSAoc2l6ZW9mKHVpbnQzMl90KSAqIDgpIC0gMSwgIlNob3VsZCBmaXQgaW4gYSB1aW50MzJf
dC4iKTsKICAgICBzdGF0aWNfYXNzZXJ0KCEoc3BlY2lhbEZhc3RQYXRoQml0ICYgfmNsZWFyTGhz
T2JzZXJ2ZWRUeXBlQml0TWFzayksICJUaGVzZSBiaXRzIHNob3VsZCBub3QgaW50ZXJzZWN0LiIp
OwogICAgIHN0YXRpY19hc3NlcnQoc3BlY2lhbEZhc3RQYXRoQml0ICYgY2xlYXJMaHNPYnNlcnZl
ZFR5cGVCaXRNYXNrLCAiVGhlc2UgYml0cyBzaG91bGQgaW50ZXJzZWN0LiIpOwogICAgIHN0YXRp
Y19hc3NlcnQoc3BlY2lhbEZhc3RQYXRoQml0ID4gfmNsZWFyTGhzT2JzZXJ2ZWRUeXBlQml0TWFz
aywgIlRoZXNlIGJpdHMgc2hvdWxkIG5vdCBpbnRlcnNlY3QgYW5kIHNwZWNpYWxGYXN0UGF0aEJp
dCBzaG91bGQgYmUgYSBoaWdoZXIgYml0LiIpOwogCiAgICAgQXJpdGhQcm9maWxlKFJlc3VsdFR5
cGUgYXJnKQorICAgICAgICA6IEFyaXRoUHJvZmlsZShDb25zdGFudFRhZzo6Q29uc3RhbnQsIGFy
ZykKICAgICB7Ci0gICAgICAgIG1fYml0cyA9IChhcmcuYml0cygpIDw8IGxoc1Jlc3VsdFR5cGVT
aGlmdCk7CiAgICAgICAgIEFTU0VSVChsaHNSZXN1bHRUeXBlKCkuYml0cygpID09IGFyZy5iaXRz
KCkpOwogICAgICAgICBBU1NFUlQobGhzT2JzZXJ2ZWRUeXBlKCkuaXNFbXB0eSgpKTsKICAgICAg
ICAgQVNTRVJUKHJoc09ic2VydmVkVHlwZSgpLmlzRW1wdHkoKSk7CiAgICAgfQogCiAgICAgQXJp
dGhQcm9maWxlKFJlc3VsdFR5cGUgbGhzLCBSZXN1bHRUeXBlIHJocykKKyAgICAgICAgOiBBcml0
aFByb2ZpbGUoQ29uc3RhbnRUYWc6OkNvbnN0YW50LCBsaHMsIHJocykKICAgICB7Ci0gICAgICAg
IG1fYml0cyA9IChsaHMuYml0cygpIDw8IGxoc1Jlc3VsdFR5cGVTaGlmdCkgfCAocmhzLmJpdHMo
KSA8PCByaHNSZXN1bHRUeXBlU2hpZnQpOwogICAgICAgICBBU1NFUlQobGhzUmVzdWx0VHlwZSgp
LmJpdHMoKSA9PSBsaHMuYml0cygpICYmIHJoc1Jlc3VsdFR5cGUoKS5iaXRzKCkgPT0gcmhzLmJp
dHMoKSk7CiAgICAgICAgIEFTU0VSVChsaHNPYnNlcnZlZFR5cGUoKS5pc0VtcHR5KCkpOwogICAg
ICAgICBBU1NFUlQocmhzT2JzZXJ2ZWRUeXBlKCkuaXNFbXB0eSgpKTsKICAgICB9CiAgICAgQXJp
dGhQcm9maWxlKCkgPSBkZWZhdWx0OwogCi0gICAgc3RhdGljIEFyaXRoUHJvZmlsZSBmcm9tSW50
KHVpbnQzMl90IGJpdHMpCisgICAgc3RhdGljIGNvbnN0ZXhwciBBcml0aFByb2ZpbGUgZnJvbUlu
dCh1aW50MzJfdCBiaXRzKQogICAgIHsKLSAgICAgICAgQXJpdGhQcm9maWxlIHJlc3VsdDsKLSAg
ICAgICAgcmVzdWx0Lm1fYml0cyA9IGJpdHM7Ci0gICAgICAgIHJldHVybiByZXN1bHQ7CisgICAg
ICAgIHJldHVybiBBcml0aFByb2ZpbGUgeyBDb25zdGFudFRhZzo6Q29uc3RhbnQsIGJpdHMgfTsK
KyAgICB9CisKKyAgICBzdGF0aWMgY29uc3RleHByIEFyaXRoUHJvZmlsZSBvYnNlcnZlZFVuYXJ5
SW50KCkKKyAgICB7CisgICAgICAgIGNvbnN0ZXhwciBPYnNlcnZlZFR5cGUgb2JzZXJ2ZWRJbnQz
MiB7IE9ic2VydmVkVHlwZSgpLndpdGhJbnQzMigpIH07CisgICAgICAgIGNvbnN0ZXhwciB1aW50
MzJfdCBiaXRzIHsgb2JzZXJ2ZWRJbnQzMi5iaXRzKCkgPDwgbGhzT2JzZXJ2ZWRUeXBlU2hpZnQg
fTsKKyAgICAgICAgc3RhdGljX2Fzc2VydChiaXRzID09IDB4NDAwMDAwLCAiIik7CisgICAgICAg
IHJldHVybiBmcm9tSW50KGJpdHMpOworICAgIH0KKyAgICBzdGF0aWMgY29uc3RleHByIEFyaXRo
UHJvZmlsZSBvYnNlcnZlZFVuYXJ5TnVtYmVyKCkKKyAgICB7CisgICAgICAgIGNvbnN0ZXhwciBP
YnNlcnZlZFR5cGUgb2JzZXJ2ZWROdW1iZXIgeyBPYnNlcnZlZFR5cGUoKS53aXRoTnVtYmVyKCkg
fTsKKyAgICAgICAgY29uc3RleHByIHVpbnQzMl90IGJpdHMgeyBvYnNlcnZlZE51bWJlci5iaXRz
KCkgPDwgbGhzT2JzZXJ2ZWRUeXBlU2hpZnQgfTsKKyAgICAgICAgc3RhdGljX2Fzc2VydChiaXRz
ID09IDB4ODAwMDAwLCAiIik7CisgICAgICAgIHJldHVybiBmcm9tSW50KGJpdHMpOworICAgIH0K
KyAgICBzdGF0aWMgY29uc3RleHByIEFyaXRoUHJvZmlsZSBvYnNlcnZlZEJpbmFyeUludEludCgp
CisgICAgeworICAgICAgICBjb25zdGV4cHIgT2JzZXJ2ZWRUeXBlIG9ic2VydmVkSW50MzIgeyBP
YnNlcnZlZFR5cGUoKS53aXRoSW50MzIoKSB9OworICAgICAgICBjb25zdGV4cHIgdWludDMyX3Qg
Yml0cyB7IChvYnNlcnZlZEludDMyLmJpdHMoKSA8PCBsaHNPYnNlcnZlZFR5cGVTaGlmdCkgfCAo
b2JzZXJ2ZWRJbnQzMi5iaXRzKCkgPDwgcmhzT2JzZXJ2ZWRUeXBlU2hpZnQpIH07CisgICAgICAg
IHN0YXRpY19hc3NlcnQoYml0cyA9PSAweDQ4MDAwMCwgIiIpOworICAgICAgICByZXR1cm4gZnJv
bUludChiaXRzKTsKKyAgICB9CisgICAgc3RhdGljIGNvbnN0ZXhwciBBcml0aFByb2ZpbGUgb2Jz
ZXJ2ZWRCaW5hcnlOdW1iZXJJbnQoKQorICAgIHsKKyAgICAgICAgY29uc3RleHByIE9ic2VydmVk
VHlwZSBvYnNlcnZlZE51bWJlciB7IE9ic2VydmVkVHlwZSgpLndpdGhOdW1iZXIoKSB9OworICAg
ICAgICBjb25zdGV4cHIgT2JzZXJ2ZWRUeXBlIG9ic2VydmVkSW50MzIgeyBPYnNlcnZlZFR5cGUo
KS53aXRoSW50MzIoKSB9OworICAgICAgICBjb25zdGV4cHIgdWludDMyX3QgYml0cyB7IChvYnNl
cnZlZE51bWJlci5iaXRzKCkgPDwgbGhzT2JzZXJ2ZWRUeXBlU2hpZnQpIHwgKG9ic2VydmVkSW50
MzIuYml0cygpIDw8IHJoc09ic2VydmVkVHlwZVNoaWZ0KSB9OworICAgICAgICBzdGF0aWNfYXNz
ZXJ0KGJpdHMgPT0gMHg4ODAwMDAsICIiKTsKKyAgICAgICAgcmV0dXJuIGZyb21JbnQoYml0cyk7
CisgICAgfQorICAgIHN0YXRpYyBjb25zdGV4cHIgQXJpdGhQcm9maWxlIG9ic2VydmVkQmluYXJ5
SW50TnVtYmVyKCkKKyAgICB7CisgICAgICAgIGNvbnN0ZXhwciBPYnNlcnZlZFR5cGUgb2JzZXJ2
ZWROdW1iZXIgeyBPYnNlcnZlZFR5cGUoKS53aXRoTnVtYmVyKCkgfTsKKyAgICAgICAgY29uc3Rl
eHByIE9ic2VydmVkVHlwZSBvYnNlcnZlZEludDMyIHsgT2JzZXJ2ZWRUeXBlKCkud2l0aEludDMy
KCkgfTsKKyAgICAgICAgY29uc3RleHByIHVpbnQzMl90IGJpdHMgeyAob2JzZXJ2ZWRJbnQzMi5i
aXRzKCkgPDwgbGhzT2JzZXJ2ZWRUeXBlU2hpZnQpIHwgKG9ic2VydmVkTnVtYmVyLmJpdHMoKSA8
PCByaHNPYnNlcnZlZFR5cGVTaGlmdCkgfTsKKyAgICAgICAgc3RhdGljX2Fzc2VydChiaXRzID09
IDB4NTAwMDAwLCAiIik7CisgICAgICAgIHJldHVybiBmcm9tSW50KGJpdHMpOworICAgIH0KKyAg
ICBzdGF0aWMgY29uc3RleHByIEFyaXRoUHJvZmlsZSBvYnNlcnZlZEJpbmFyeU51bWJlck51bWJl
cigpCisgICAgeworICAgICAgICBjb25zdGV4cHIgT2JzZXJ2ZWRUeXBlIG9ic2VydmVkTnVtYmVy
IHsgT2JzZXJ2ZWRUeXBlKCkud2l0aE51bWJlcigpIH07CisgICAgICAgIGNvbnN0ZXhwciB1aW50
MzJfdCBiaXRzIHsgKG9ic2VydmVkTnVtYmVyLmJpdHMoKSA8PCBsaHNPYnNlcnZlZFR5cGVTaGlm
dCkgfCAob2JzZXJ2ZWROdW1iZXIuYml0cygpIDw8IHJoc09ic2VydmVkVHlwZVNoaWZ0KSB9Owor
ICAgICAgICBzdGF0aWNfYXNzZXJ0KGJpdHMgPT0gMHg5MDAwMDAsICIiKTsKKyAgICAgICAgcmV0
dXJuIGZyb21JbnQoYml0cyk7CiAgICAgfQogCiAgICAgZW51bSBPYnNlcnZlZFJlc3VsdHMgewpA
QCAtMTIyLDggKzE2OCw4IEBAIHN0cnVjdCBBcml0aFByb2ZpbGUgewogICAgIFJlc3VsdFR5cGUg
bGhzUmVzdWx0VHlwZSgpIGNvbnN0IHsgcmV0dXJuIFJlc3VsdFR5cGUoKG1fYml0cyA+PiBsaHNS
ZXN1bHRUeXBlU2hpZnQpICYgcmVzdWx0VHlwZU1hc2spOyB9CiAgICAgUmVzdWx0VHlwZSByaHNS
ZXN1bHRUeXBlKCkgY29uc3QgeyByZXR1cm4gUmVzdWx0VHlwZSgobV9iaXRzID4+IHJoc1Jlc3Vs
dFR5cGVTaGlmdCkgJiByZXN1bHRUeXBlTWFzayk7IH0KIAotICAgIE9ic2VydmVkVHlwZSBsaHNP
YnNlcnZlZFR5cGUoKSBjb25zdCB7IHJldHVybiBPYnNlcnZlZFR5cGUoKG1fYml0cyA+PiBsaHNP
YnNlcnZlZFR5cGVTaGlmdCkgJiBvYnNlcnZlZFR5cGVNYXNrKTsgfQotICAgIE9ic2VydmVkVHlw
ZSByaHNPYnNlcnZlZFR5cGUoKSBjb25zdCB7IHJldHVybiBPYnNlcnZlZFR5cGUoKG1fYml0cyA+
PiByaHNPYnNlcnZlZFR5cGVTaGlmdCkgJiBvYnNlcnZlZFR5cGVNYXNrKTsgfQorICAgIGNvbnN0
ZXhwciBPYnNlcnZlZFR5cGUgbGhzT2JzZXJ2ZWRUeXBlKCkgY29uc3QgeyByZXR1cm4gT2JzZXJ2
ZWRUeXBlKChtX2JpdHMgPj4gbGhzT2JzZXJ2ZWRUeXBlU2hpZnQpICYgb2JzZXJ2ZWRUeXBlTWFz
ayk7IH0KKyAgICBjb25zdGV4cHIgT2JzZXJ2ZWRUeXBlIHJoc09ic2VydmVkVHlwZSgpIGNvbnN0
IHsgcmV0dXJuIE9ic2VydmVkVHlwZSgobV9iaXRzID4+IHJoc09ic2VydmVkVHlwZVNoaWZ0KSAm
IG9ic2VydmVkVHlwZU1hc2spOyB9CiAgICAgdm9pZCBzZXRMaHNPYnNlcnZlZFR5cGUoT2JzZXJ2
ZWRUeXBlIHR5cGUpCiAgICAgewogICAgICAgICB1aW50MzJfdCBiaXRzID0gbV9iaXRzOwpAQCAt
MjIyLDkgKzI2OCwyNCBAQCBzdHJ1Y3QgQXJpdGhQcm9maWxlIHsKICAgICBib29sIHNob3VsZEVt
aXRTZXROb25OdW1iZXIoKSBjb25zdDsKICNlbmRpZiAvLyBFTkFCTEUoSklUKQogCi0gICAgdWlu
dDMyX3QgYml0cygpIGNvbnN0IHsgcmV0dXJuIG1fYml0czsgfQorICAgIGNvbnN0ZXhwciB1aW50
MzJfdCBiaXRzKCkgY29uc3QgeyByZXR1cm4gbV9iaXRzOyB9CiAKIHByaXZhdGU6CisgICAgY29u
c3RleHByIGV4cGxpY2l0IEFyaXRoUHJvZmlsZShDb25zdGFudFRhZywgdWludDMyX3QgYml0cykK
KyAgICAgICAgOiBtX2JpdHMoYml0cykKKyAgICB7CisgICAgfQorCisgICAgY29uc3RleHByIEFy
aXRoUHJvZmlsZShDb25zdGFudFRhZywgUmVzdWx0VHlwZSBhcmcpCisgICAgICAgIDogbV9iaXRz
KGFyZy5iaXRzKCkgPDwgbGhzUmVzdWx0VHlwZVNoaWZ0KQorICAgIHsKKyAgICB9CisKKyAgICBj
b25zdGV4cHIgQXJpdGhQcm9maWxlKENvbnN0YW50VGFnLCBSZXN1bHRUeXBlIGxocywgUmVzdWx0
VHlwZSByaHMpCisgICAgICAgIDogbV9iaXRzKChsaHMuYml0cygpIDw8IGxoc1Jlc3VsdFR5cGVT
aGlmdCkgfCAocmhzLmJpdHMoKSA8PCByaHNSZXN1bHRUeXBlU2hpZnQpKQorICAgIHsKKyAgICB9
CisKICAgICBib29sIGhhc0JpdHMoaW50IG1hc2spIGNvbnN0IHsgcmV0dXJuIG1fYml0cyAmIG1h
c2s7IH0KICAgICB2b2lkIHNldEJpdChpbnQgbWFzaykgeyBtX2JpdHMgfD0gbWFzazsgfQogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTExJbnREYXRhLmNwcCBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9MTEludERhdGEuY3BwCmluZGV4IGQwNjFiNjNkZDRk
Zjc3YmU2YmYwOWE4OTA5YmEyNmFmNDAyOWNlYTQuLjMxZWE2MTc5YzllMWQ1NTdlZjZlZWFhODU5
ZjE0ZjE5NzhiNWVjNDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9M
TEludERhdGEuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9MTEludERhdGEu
Y3BwCkBAIC05OCwxMSArOTgsMTEgQEAgdm9pZCBEYXRhOjpwZXJmb3JtQXNzZXJ0aW9ucyhWTSYg
dm0pCiAgICAgQVNTRVJUKENhbGxGcmFtZTo6YXJndW1lbnRPZmZzZXRJbmNsdWRpbmdUaGlzKDAp
ID09IENhbGxGcmFtZVNsb3Q6OnRoaXNBcmd1bWVudCk7CiAKICNpZiBDUFUoQklHX0VORElBTikK
LSAgICBBU1NFUlQoT0JKRUNUX09GRlNFVE9GKEVuY29kZWRWYWx1ZURlc2NyaXB0b3IsIGFzQml0
cy50YWcpID09IDApOwotICAgIEFTU0VSVChPQkpFQ1RfT0ZGU0VUT0YoRW5jb2RlZFZhbHVlRGVz
Y3JpcHRvciwgYXNCaXRzLnBheWxvYWQpID09IDQpOworICAgIFNUQVRJQ19BU1NFUlQoVGFnT2Zm
c2V0ID09IDApOworICAgIFNUQVRJQ19BU1NFUlQoUGF5bG9hZE9mZnNldCA9PSA0KTsKICNlbHNl
Ci0gICAgQVNTRVJUKE9CSkVDVF9PRkZTRVRPRihFbmNvZGVkVmFsdWVEZXNjcmlwdG9yLCBhc0Jp
dHMudGFnKSA9PSA0KTsKLSAgICBBU1NFUlQoT0JKRUNUX09GRlNFVE9GKEVuY29kZWRWYWx1ZURl
c2NyaXB0b3IsIGFzQml0cy5wYXlsb2FkKSA9PSAwKTsKKyAgICBTVEFUSUNfQVNTRVJUKFRhZ09m
ZnNldCA9PSA0KTsKKyAgICBTVEFUSUNfQVNTRVJUKFBheWxvYWRPZmZzZXQgPT0gMCk7CiAjZW5k
aWYKICNpZiBVU0UoSlNWQUxVRTMyXzY0KQogICAgIFNUQVRJQ19BU1NFUlQoSlNWYWx1ZTo6SW50
MzJUYWcgPT0gc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KC0xKSk7CkBAIC0xMjMsMTUgKzEyMyw2IEBA
IHZvaWQgRGF0YTo6cGVyZm9ybUFzc2VydGlvbnMoVk0mIHZtKQogICAgIFNUQVRJQ19BU1NFUlQo
VmFsdWVVbmRlZmluZWQgPT0gKFRhZ0JpdFR5cGVPdGhlciB8IFRhZ0JpdFVuZGVmaW5lZCkpOwog
ICAgIFNUQVRJQ19BU1NFUlQoVmFsdWVOdWxsID09IFRhZ0JpdFR5cGVPdGhlcik7CiAjZW5kaWYK
LSNpZiAoQ1BVKFg4Nl82NCkgJiYgIU9TKFdJTkRPV1MpKSB8fCBDUFUoQVJNNjQpIHx8ICFFTkFC
TEUoQVNTRU1CTEVSKQotICAgIFNUQVRJQ19BU1NFUlQoIW1heEZyYW1lRXh0ZW50Rm9yU2xvd1Bh
dGhDYWxsKTsKLSNlbGlmIENQVShBUk0pCi0gICAgU1RBVElDX0FTU0VSVChtYXhGcmFtZUV4dGVu
dEZvclNsb3dQYXRoQ2FsbCA9PSAyNCk7Ci0jZWxpZiBDUFUoWDg2KSB8fCBDUFUoTUlQUykKLSAg
ICBTVEFUSUNfQVNTRVJUKG1heEZyYW1lRXh0ZW50Rm9yU2xvd1BhdGhDYWxsID09IDQwKTsKLSNl
bGlmIENQVShYODZfNjQpICYmIE9TKFdJTkRPV1MpCi0gICAgU1RBVElDX0FTU0VSVChtYXhGcmFt
ZUV4dGVudEZvclNsb3dQYXRoQ2FsbCA9PSA2NCk7Ci0jZW5kaWYKIAogI2lmIEVOQUJMRShDX0xP
T1ApIHx8IFVTRShKU1ZBTFVFMzJfNjQpCiAgICAgQVNTRVJUKCFDb2RlQmxvY2s6OmxsaW50QmFz
ZWxpbmVDYWxsZWVTYXZlU3BhY2VBc1ZpcnR1YWxSZWdpc3RlcnMoKSk7CkBAIC0xNTEsNDcgKzE0
MiwzNyBAQCB2b2lkIERhdGE6OnBlcmZvcm1Bc3NlcnRpb25zKFZNJiB2bSkKICAgICBBU1NFUlQo
Yml0d2lzZV9jYXN0PGludCoqPigmdGVzdFZlY3RvcilbMF0gPT0gdGVzdFZlY3Rvci5iZWdpbigp
KTsKICNlbmRpZgogCi0gICAgQVNTRVJUKFN0cmluZ0ltcGw6OnNfaGFzaEZsYWc4Qml0QnVmZmVy
ID09IDgpOwotCiAgICAgewotICAgICAgICB1aW50MzJfdCBiaXRzID0gMHg0ODAwMDA7Ci0gICAg
ICAgIFVOVVNFRF9QQVJBTShiaXRzKTsKICAgICAgICAgQXJpdGhQcm9maWxlIGFyaXRoUHJvZmls
ZTsKICAgICAgICAgYXJpdGhQcm9maWxlLmxoc1Nhd0ludDMyKCk7CiAgICAgICAgIGFyaXRoUHJv
ZmlsZS5yaHNTYXdJbnQzMigpOwotICAgICAgICBBU1NFUlQoYXJpdGhQcm9maWxlLmJpdHMoKSA9
PSBiaXRzKTsKLSAgICAgICAgQVNTRVJUKEFyaXRoUHJvZmlsZTo6ZnJvbUludChiaXRzKS5saHNP
YnNlcnZlZFR5cGUoKS5pc09ubHlJbnQzMigpKTsKLSAgICAgICAgQVNTRVJUKEFyaXRoUHJvZmls
ZTo6ZnJvbUludChiaXRzKS5yaHNPYnNlcnZlZFR5cGUoKS5pc09ubHlJbnQzMigpKTsKKyAgICAg
ICAgQVNTRVJUKGFyaXRoUHJvZmlsZS5iaXRzKCkgPT0gQXJpdGhQcm9maWxlOjpvYnNlcnZlZEJp
bmFyeUludEludCgpLmJpdHMoKSk7CisgICAgICAgIFNUQVRJQ19BU1NFUlQoQXJpdGhQcm9maWxl
OjpvYnNlcnZlZEJpbmFyeUludEludCgpLmxoc09ic2VydmVkVHlwZSgpLmlzT25seUludDMyKCkp
OworICAgICAgICBTVEFUSUNfQVNTRVJUKEFyaXRoUHJvZmlsZTo6b2JzZXJ2ZWRCaW5hcnlJbnRJ
bnQoKS5yaHNPYnNlcnZlZFR5cGUoKS5pc09ubHlJbnQzMigpKTsKICAgICB9CiAgICAgewotICAg
ICAgICB1aW50MzJfdCBiaXRzID0gMHg4ODAwMDA7Ci0gICAgICAgIFVOVVNFRF9QQVJBTShiaXRz
KTsKICAgICAgICAgQXJpdGhQcm9maWxlIGFyaXRoUHJvZmlsZTsKICAgICAgICAgYXJpdGhQcm9m
aWxlLmxoc1Nhd051bWJlcigpOwogICAgICAgICBhcml0aFByb2ZpbGUucmhzU2F3SW50MzIoKTsK
LSAgICAgICAgQVNTRVJUKGFyaXRoUHJvZmlsZS5iaXRzKCkgPT0gYml0cyk7Ci0gICAgICAgIEFT
U0VSVChBcml0aFByb2ZpbGU6OmZyb21JbnQoYml0cykubGhzT2JzZXJ2ZWRUeXBlKCkuaXNPbmx5
TnVtYmVyKCkpOwotICAgICAgICBBU1NFUlQoQXJpdGhQcm9maWxlOjpmcm9tSW50KGJpdHMpLnJo
c09ic2VydmVkVHlwZSgpLmlzT25seUludDMyKCkpOworICAgICAgICBBU1NFUlQoYXJpdGhQcm9m
aWxlLmJpdHMoKSA9PSBBcml0aFByb2ZpbGU6Om9ic2VydmVkQmluYXJ5TnVtYmVySW50KCkuYml0
cygpKTsKKyAgICAgICAgU1RBVElDX0FTU0VSVChBcml0aFByb2ZpbGU6Om9ic2VydmVkQmluYXJ5
TnVtYmVySW50KCkubGhzT2JzZXJ2ZWRUeXBlKCkuaXNPbmx5TnVtYmVyKCkpOworICAgICAgICBT
VEFUSUNfQVNTRVJUKEFyaXRoUHJvZmlsZTo6b2JzZXJ2ZWRCaW5hcnlOdW1iZXJJbnQoKS5yaHNP
YnNlcnZlZFR5cGUoKS5pc09ubHlJbnQzMigpKTsKICAgICB9CiAgICAgewotICAgICAgICB1aW50
MzJfdCBiaXRzID0gMHg5MDAwMDA7Ci0gICAgICAgIFVOVVNFRF9QQVJBTShiaXRzKTsKICAgICAg
ICAgQXJpdGhQcm9maWxlIGFyaXRoUHJvZmlsZTsKICAgICAgICAgYXJpdGhQcm9maWxlLmxoc1Nh
d051bWJlcigpOwogICAgICAgICBhcml0aFByb2ZpbGUucmhzU2F3TnVtYmVyKCk7Ci0gICAgICAg
IEFTU0VSVChhcml0aFByb2ZpbGUuYml0cygpID09IGJpdHMpOwotICAgICAgICBBU1NFUlQoQXJp
dGhQcm9maWxlOjpmcm9tSW50KGJpdHMpLmxoc09ic2VydmVkVHlwZSgpLmlzT25seU51bWJlcigp
KTsKLSAgICAgICAgQVNTRVJUKEFyaXRoUHJvZmlsZTo6ZnJvbUludChiaXRzKS5yaHNPYnNlcnZl
ZFR5cGUoKS5pc09ubHlOdW1iZXIoKSk7CisgICAgICAgIEFTU0VSVChhcml0aFByb2ZpbGUuYml0
cygpID09IEFyaXRoUHJvZmlsZTo6b2JzZXJ2ZWRCaW5hcnlOdW1iZXJOdW1iZXIoKS5iaXRzKCkp
OworICAgICAgICBTVEFUSUNfQVNTRVJUKEFyaXRoUHJvZmlsZTo6b2JzZXJ2ZWRCaW5hcnlOdW1i
ZXJOdW1iZXIoKS5saHNPYnNlcnZlZFR5cGUoKS5pc09ubHlOdW1iZXIoKSk7CisgICAgICAgIFNU
QVRJQ19BU1NFUlQoQXJpdGhQcm9maWxlOjpvYnNlcnZlZEJpbmFyeU51bWJlck51bWJlcigpLnJo
c09ic2VydmVkVHlwZSgpLmlzT25seU51bWJlcigpKTsKICAgICB9CiAgICAgewotICAgICAgICB1
aW50MzJfdCBiaXRzID0gMHg1MDAwMDA7Ci0gICAgICAgIFVOVVNFRF9QQVJBTShiaXRzKTsKICAg
ICAgICAgQXJpdGhQcm9maWxlIGFyaXRoUHJvZmlsZTsKICAgICAgICAgYXJpdGhQcm9maWxlLmxo
c1Nhd0ludDMyKCk7CiAgICAgICAgIGFyaXRoUHJvZmlsZS5yaHNTYXdOdW1iZXIoKTsKLSAgICAg
ICAgQVNTRVJUKGFyaXRoUHJvZmlsZS5iaXRzKCkgPT0gYml0cyk7Ci0gICAgICAgIEFTU0VSVChB
cml0aFByb2ZpbGU6OmZyb21JbnQoYml0cykubGhzT2JzZXJ2ZWRUeXBlKCkuaXNPbmx5SW50MzIo
KSk7Ci0gICAgICAgIEFTU0VSVChBcml0aFByb2ZpbGU6OmZyb21JbnQoYml0cykucmhzT2JzZXJ2
ZWRUeXBlKCkuaXNPbmx5TnVtYmVyKCkpOworICAgICAgICBBU1NFUlQoYXJpdGhQcm9maWxlLmJp
dHMoKSA9PSBBcml0aFByb2ZpbGU6Om9ic2VydmVkQmluYXJ5SW50TnVtYmVyKCkpOworICAgICAg
ICBTVEFUSUNfQVNTRVJUKEFyaXRoUHJvZmlsZTo6b2JzZXJ2ZWRCaW5hcnlJbnROdW1iZXIoKS5s
aHNPYnNlcnZlZFR5cGUoKS5pc09ubHlJbnQzMigpKTsKKyAgICAgICAgU1RBVElDX0FTU0VSVChB
cml0aFByb2ZpbGU6Om9ic2VydmVkQmluYXJ5SW50TnVtYmVyKCkucmhzT2JzZXJ2ZWRUeXBlKCku
aXNPbmx5TnVtYmVyKCkpOwogICAgIH0KIH0KIElHTk9SRV9DTEFOR19XQVJOSU5HU19FTkQKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9MTEludE9mZnNldHNFeHRyYWN0
b3IuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xMSW50T2Zmc2V0c0V4dHJhY3Rv
ci5jcHAKaW5kZXggNGJmZDZlOTgyZDRhMDQ1MDAzMmUzNjk5ODkxOTczZjg0ZTVkOWMwNC4uYTU1
YzdlZmViYjc4NzNkYzUzODM3YzNlYTg5ZTMwYjE1NGFlNjExMyAxMDA2NDQKLS0tIGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL2xsaW50L0xMSW50T2Zmc2V0c0V4dHJhY3Rvci5jcHAKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xMSW50T2Zmc2V0c0V4dHJhY3Rvci5jcHAKQEAgLTI1
LDYgKzI1LDcgQEAKIAogI2luY2x1ZGUgImNvbmZpZy5oIgogCisjaW5jbHVkZSAiQXJpdGhQcm9m
aWxlLmgiCiAjaW5jbHVkZSAiQXJyYXlQcm9maWxlLmgiCiAjaW5jbHVkZSAiQnl0ZWNvZGVTdHJ1
Y3RzLmgiCiAjaW5jbHVkZSAiQ29kZUJsb2NrLmgiCkBAIC01MCw2ICs1MSw3IEBACiAjaW5jbHVk
ZSAiSnVtcFRhYmxlLmgiCiAjaW5jbHVkZSAiTExJbnRPZmZsaW5lQXNtQ29uZmlnLmgiCiAjaW5j
bHVkZSAiTWFya2VkU3BhY2UuaCIKKyNpbmNsdWRlICJNYXhGcmFtZUV4dGVudEZvclNsb3dQYXRo
Q2FsbC5oIgogI2luY2x1ZGUgIk5hdGl2ZUV4ZWN1dGFibGUuaCIKICNpbmNsdWRlICJQcm90b0Nh
bGxGcmFtZS5oIgogI2luY2x1ZGUgIlNoYWRvd0NoaWNrZW4uaCIKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9sbGludC9Mb3dMZXZlbEludGVycHJldGVyLmFzbSBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9sbGludC9Mb3dMZXZlbEludGVycHJldGVyLmFzbQppbmRleCBlOGFhMzAw
NGIxOTNmOGQ0NGNmOTQxNjhlYjYyMjZhNTA2NDI1ZWMzLi42NTA3ZWI4ZGYwOGI4MjU1MjY5MDcy
ZGY5M2E5Y2Q0MDQ2NDQ1M2U2IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxp
bnQvTG93TGV2ZWxJbnRlcnByZXRlci5hc20KKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2xs
aW50L0xvd0xldmVsSW50ZXJwcmV0ZXIuYXNtCkBAIC0xNTQsMjIgKzE1NCwyMSBAQCBlbmQKICMg
VGhlc2UgZGVjbGFyYXRpb25zIG11c3QgbWF0Y2ggaW50ZXJwcmV0ZXIvSlNTdGFjay5oLgogCiBj
b25zdCBQdHJTaXplID0gY29uc3RleHByIChzaXplb2Yodm9pZCopKQorY29uc3QgTWFjaGluZVJl
Z2lzdGVyU2l6ZSA9IGNvbnN0ZXhwciAoc2l6ZW9mKENQVVJlZ2lzdGVyKSkKK2NvbnN0IFNsb3RT
aXplID0gY29uc3RleHByIChzaXplb2YoUmVnaXN0ZXIpKQogCiBpZiBKU1ZBTFVFNjQKICAgICBj
b25zdCBDYWxsRnJhbWVIZWFkZXJTbG90cyA9IDUKLSAgICBjb25zdCBNYWNoaW5lUmVnaXN0ZXJT
aXplID0gOAogZWxzZQogICAgIGNvbnN0IENhbGxGcmFtZUhlYWRlclNsb3RzID0gNAogICAgIGNv
bnN0IENhbGxGcmFtZUFsaWduU2xvdHMgPSAxCi0gICAgY29uc3QgTWFjaGluZVJlZ2lzdGVyU2l6
ZSA9IDQKIGVuZAotY29uc3QgU2xvdFNpemUgPSA4CiAKIGNvbnN0IEpTTGV4aWNhbEVudmlyb25t
ZW50X3ZhcmlhYmxlcyA9IChzaXplb2YgSlNMZXhpY2FsRW52aXJvbm1lbnQgKyBTbG90U2l6ZSAt
IDEpICYgfihTbG90U2l6ZSAtIDEpCiBjb25zdCBEaXJlY3RBcmd1bWVudHNfc3RvcmFnZSA9IChz
aXplb2YgRGlyZWN0QXJndW1lbnRzICsgU2xvdFNpemUgLSAxKSAmIH4oU2xvdFNpemUgLSAxKQog
Ci1jb25zdCBTdGFja0FsaWdubWVudCA9IDE2Ci1jb25zdCBTdGFja0FsaWdubWVudFNsb3RzID0g
MgorY29uc3QgU3RhY2tBbGlnbm1lbnQgPSBjb25zdGV4cHIgKHN0YWNrQWxpZ25tZW50Qnl0ZXMo
KSkKK2NvbnN0IFN0YWNrQWxpZ25tZW50U2xvdHMgPSBjb25zdGV4cHIgKHN0YWNrQWxpZ25tZW50
UmVnaXN0ZXJzKCkpCiBjb25zdCBTdGFja0FsaWdubWVudE1hc2sgPSBTdGFja0FsaWdubWVudCAt
IDEKIAogY29uc3QgQ2FsbGVyRnJhbWVBbmRQQ1NpemUgPSBjb25zdGV4cHIgKHNpemVvZihDYWxs
ZXJGcmFtZUFuZFBDKSkKQEAgLTE4NSwyNSArMTg0LDI1IEBAIGNvbnN0IENhbGxGcmFtZUhlYWRl
clNpemUgPSBUaGlzQXJndW1lbnRPZmZzZXQKIAogIyBTb21lIHZhbHVlIHJlcHJlc2VudGF0aW9u
IGNvbnN0YW50cy4KIGlmIEpTVkFMVUU2NAotICAgIGNvbnN0IFRhZ0JpdFR5cGVPdGhlciA9IDB4
MgotICAgIGNvbnN0IFRhZ0JpdEJvb2wgICAgICA9IDB4NAotICAgIGNvbnN0IFRhZ0JpdFVuZGVm
aW5lZCA9IDB4OAotICAgIGNvbnN0IFZhbHVlRW1wdHkgICAgICA9IDB4MAotICAgIGNvbnN0IFZh
bHVlRmFsc2UgICAgICA9IFRhZ0JpdFR5cGVPdGhlciB8IFRhZ0JpdEJvb2wKLSAgICBjb25zdCBW
YWx1ZVRydWUgICAgICAgPSBUYWdCaXRUeXBlT3RoZXIgfCBUYWdCaXRCb29sIHwgMQotICAgIGNv
bnN0IFZhbHVlVW5kZWZpbmVkICA9IFRhZ0JpdFR5cGVPdGhlciB8IFRhZ0JpdFVuZGVmaW5lZAot
ICAgIGNvbnN0IFZhbHVlTnVsbCAgICAgICA9IFRhZ0JpdFR5cGVPdGhlcgotICAgIGNvbnN0IFRh
Z1R5cGVOdW1iZXIgICA9IDB4ZmZmZjAwMDAwMDAwMDAwMAotICAgIGNvbnN0IFRhZ01hc2sgICAg
ICAgICA9IFRhZ1R5cGVOdW1iZXIgfCBUYWdCaXRUeXBlT3RoZXIKKyAgICBjb25zdCBUYWdCaXRU
eXBlT3RoZXIgPSBjb25zdGV4cHIgVGFnQml0VHlwZU90aGVyCisgICAgY29uc3QgVGFnQml0Qm9v
bCAgICAgID0gY29uc3RleHByIFRhZ0JpdEJvb2wKKyAgICBjb25zdCBUYWdCaXRVbmRlZmluZWQg
PSBjb25zdGV4cHIgVGFnQml0VW5kZWZpbmVkCisgICAgY29uc3QgVmFsdWVFbXB0eSAgICAgID0g
Y29uc3RleHByIFZhbHVlRW1wdHkKKyAgICBjb25zdCBWYWx1ZUZhbHNlICAgICAgPSBjb25zdGV4
cHIgVmFsdWVGYWxzZQorICAgIGNvbnN0IFZhbHVlVHJ1ZSAgICAgICA9IGNvbnN0ZXhwciBWYWx1
ZVRydWUKKyAgICBjb25zdCBWYWx1ZVVuZGVmaW5lZCAgPSBjb25zdGV4cHIgVmFsdWVVbmRlZmlu
ZWQKKyAgICBjb25zdCBWYWx1ZU51bGwgICAgICAgPSBjb25zdGV4cHIgVmFsdWVOdWxsCisgICAg
Y29uc3QgVGFnVHlwZU51bWJlciAgID0gY29uc3RleHByIFRhZ1R5cGVOdW1iZXIKKyAgICBjb25z
dCBUYWdNYXNrICAgICAgICAgPSBjb25zdGV4cHIgVGFnTWFzawogZWxzZQotICAgIGNvbnN0IElu
dDMyVGFnID0gLTEKLSAgICBjb25zdCBCb29sZWFuVGFnID0gLTIKLSAgICBjb25zdCBOdWxsVGFn
ID0gLTMKLSAgICBjb25zdCBVbmRlZmluZWRUYWcgPSAtNAotICAgIGNvbnN0IENlbGxUYWcgPSAt
NQotICAgIGNvbnN0IEVtcHR5VmFsdWVUYWcgPSAtNgotICAgIGNvbnN0IERlbGV0ZWRWYWx1ZVRh
ZyA9IC03Ci0gICAgY29uc3QgTG93ZXN0VGFnID0gRGVsZXRlZFZhbHVlVGFnCisgICAgY29uc3Qg
SW50MzJUYWcgPSBjb25zdGV4cHIgSlNWYWx1ZTo6SW50MzJUYWcKKyAgICBjb25zdCBCb29sZWFu
VGFnID0gY29uc3RleHByIEpTVmFsdWU6OkJvb2xlYW5UYWcKKyAgICBjb25zdCBOdWxsVGFnID0g
Y29uc3RleHByIEpTVmFsdWU6Ok51bGxUYWcKKyAgICBjb25zdCBVbmRlZmluZWRUYWcgPSBjb25z
dGV4cHIgSlNWYWx1ZTo6VW5kZWZpbmVkVGFnCisgICAgY29uc3QgQ2VsbFRhZyA9IGNvbnN0ZXhw
ciBKU1ZhbHVlOjpDZWxsVGFnCisgICAgY29uc3QgRW1wdHlWYWx1ZVRhZyA9IGNvbnN0ZXhwciBK
U1ZhbHVlOjpFbXB0eVZhbHVlVGFnCisgICAgY29uc3QgRGVsZXRlZFZhbHVlVGFnID0gY29uc3Rl
eHByIEpTVmFsdWU6OkRlbGV0ZWRWYWx1ZVRhZworICAgIGNvbnN0IExvd2VzdFRhZyA9IGNvbnN0
ZXhwciBKU1ZhbHVlOjpMb3dlc3RUYWcKIGVuZAogCiAjIFB1dEJ5SWRGbGFncyBkYXRhCkBAIC0y
MjMsMTkgKzIyMiw5IEBAIGNvbnN0IFB1dEJ5SWRTZWNvbmRhcnlUeXBlT2JqZWN0ID0gY29uc3Rl
eHByIFB1dEJ5SWRTZWNvbmRhcnlUeXBlT2JqZWN0CiBjb25zdCBQdXRCeUlkU2Vjb25kYXJ5VHlw
ZU9iamVjdE9yT3RoZXIgPSBjb25zdGV4cHIgUHV0QnlJZFNlY29uZGFyeVR5cGVPYmplY3RPck90
aGVyCiBjb25zdCBQdXRCeUlkU2Vjb25kYXJ5VHlwZVRvcCA9IGNvbnN0ZXhwciBQdXRCeUlkU2Vj
b25kYXJ5VHlwZVRvcAogCi1jb25zdCBDYWxsT3BDb2RlU2l6ZSA9IDkKK2NvbnN0IENhbGxPcENv
ZGVTaXplID0gY29uc3RleHByIG9wX2NhbGxfbGVuZ3RoCiAKLWlmIFg4Nl82NCBvciBBUk02NCBv
ciBBUk02NEUgb3IgQ19MT09QCi0gICAgY29uc3QgbWF4RnJhbWVFeHRlbnRGb3JTbG93UGF0aENh
bGwgPSAwCi1lbHNpZiBBUk0gb3IgQVJNdjdfVFJBRElUSU9OQUwgb3IgQVJNdjcKLSAgICBjb25z
dCBtYXhGcmFtZUV4dGVudEZvclNsb3dQYXRoQ2FsbCA9IDI0Ci1lbHNpZiBYODYgb3IgWDg2X1dJ
TgotICAgIGNvbnN0IG1heEZyYW1lRXh0ZW50Rm9yU2xvd1BhdGhDYWxsID0gNDAKLWVsc2lmIE1J
UFMKLSAgICBjb25zdCBtYXhGcmFtZUV4dGVudEZvclNsb3dQYXRoQ2FsbCA9IDQwCi1lbHNpZiBY
ODZfNjRfV0lOCi0gICAgY29uc3QgbWF4RnJhbWVFeHRlbnRGb3JTbG93UGF0aENhbGwgPSA2NAot
ZW5kCitjb25zdCBtYXhGcmFtZUV4dGVudEZvclNsb3dQYXRoQ2FsbCA9IGNvbnN0ZXhwciBtYXhG
cmFtZUV4dGVudEZvclNsb3dQYXRoQ2FsbAogCiBpZiBYODZfNjQgb3IgWDg2XzY0X1dJTiBvciBB
Uk02NCBvciBBUk02NEUKICAgICBjb25zdCBDYWxsZWVTYXZlU3BhY2VBc1ZpcnR1YWxSZWdpc3Rl
cnMgPSAzCkBAIC0yNTUsMTIgKzI0NCwxMiBAQCBjb25zdCBJc0ludmFsaWRhdGVkID0gY29uc3Rl
eHByIElzSW52YWxpZGF0ZWQKIGNvbnN0IFNoYWRvd0NoaWNrZW5UYWlsTWFya2VyID0gY29uc3Rl
eHByIFNoYWRvd0NoaWNrZW46OlBhY2tldDo6dGFpbE1hcmtlclZhbHVlCiAKICMgQXJpdGhQcm9m
aWxlIGRhdGEKLWNvbnN0IEFyaXRoUHJvZmlsZUludCA9IDB4NDAwMDAwCi1jb25zdCBBcml0aFBy
b2ZpbGVJbnRJbnQgPSAweDQ4MDAwMAotY29uc3QgQXJpdGhQcm9maWxlTnVtYmVyID0gMHg4MDAw
MDAKLWNvbnN0IEFyaXRoUHJvZmlsZU51bWJlckludCA9IDB4ODgwMDAwCi1jb25zdCBBcml0aFBy
b2ZpbGVOdW1iZXJOdW1iZXIgPSAweDkwMDAwMAotY29uc3QgQXJpdGhQcm9maWxlSW50TnVtYmVy
ID0gMHg1MDAwMDAKK2NvbnN0IEFyaXRoUHJvZmlsZUludCA9IGNvbnN0ZXhwciAoQXJpdGhQcm9m
aWxlOjpvYnNlcnZlZFVuYXJ5SW50KCkuYml0cygpKQorY29uc3QgQXJpdGhQcm9maWxlTnVtYmVy
ID0gY29uc3RleHByIChBcml0aFByb2ZpbGU6Om9ic2VydmVkVW5hcnlOdW1iZXIoKS5iaXRzKCkp
Citjb25zdCBBcml0aFByb2ZpbGVJbnRJbnQgPSBjb25zdGV4cHIgKEFyaXRoUHJvZmlsZTo6b2Jz
ZXJ2ZWRCaW5hcnlJbnRJbnQoKS5iaXRzKCkpCitjb25zdCBBcml0aFByb2ZpbGVOdW1iZXJJbnQg
PSBjb25zdGV4cHIgKEFyaXRoUHJvZmlsZTo6b2JzZXJ2ZWRCaW5hcnlOdW1iZXJJbnQoKS5iaXRz
KCkpCitjb25zdCBBcml0aFByb2ZpbGVJbnROdW1iZXIgPSBjb25zdGV4cHIgKEFyaXRoUHJvZmls
ZTo6b2JzZXJ2ZWRCaW5hcnlJbnROdW1iZXIoKS5iaXRzKCkpCitjb25zdCBBcml0aFByb2ZpbGVO
dW1iZXJOdW1iZXIgPSBjb25zdGV4cHIgKEFyaXRoUHJvZmlsZTo6b2JzZXJ2ZWRCaW5hcnlOdW1i
ZXJOdW1iZXIoKS5iaXRzKCkpCiAKICMgUG9pbnRlciBUYWdzCiBjb25zdCBCeXRlY29kZVB0clRh
ZyA9IGNvbnN0ZXhwciBCeXRlY29kZVB0clRhZwpAQCAtMzYxLDEzICszNTAsOCBAQCBlbHNlCiBl
bmQKIAogIyBDb25zdGFudHMgZm9yIHJlYXNvbmluZyBhYm91dCB2YWx1ZSByZXByZXNlbnRhdGlv
bi4KLWlmIEJJR19FTkRJQU4KLSAgICBjb25zdCBUYWdPZmZzZXQgPSAwCi0gICAgY29uc3QgUGF5
bG9hZE9mZnNldCA9IDQKLWVsc2UKLSAgICBjb25zdCBUYWdPZmZzZXQgPSA0Ci0gICAgY29uc3Qg
UGF5bG9hZE9mZnNldCA9IDAKLWVuZAorY29uc3QgVGFnT2Zmc2V0ID0gY29uc3RleHByIFRhZ09m
ZnNldAorY29uc3QgUGF5bG9hZE9mZnNldCA9IGNvbnN0ZXhwciBQYXlsb2FkT2Zmc2V0CiAKICMg
Q29uc3RhbnQgZm9yIHJlYXNvbmluZyBhYm91dCBidXR0ZXJmbGllcy4KIGNvbnN0IElzQXJyYXkg
ICAgICAgICAgICAgICAgICA9IGNvbnN0ZXhwciBJc0FycmF5CkBAIC00MjIsMTAgKzQwNiwxMCBA
QCBjb25zdCBNb2R1bGVDb2RlID0gY29uc3RleHByIE1vZHVsZUNvZGUKIGNvbnN0IExMSW50UmV0
dXJuUEMgPSBBcmd1bWVudENvdW50ICsgVGFnT2Zmc2V0CiAKICMgU3RyaW5nIGZsYWdzLgotY29u
c3QgSGFzaEZsYWdzOEJpdEJ1ZmZlciA9IDgKK2NvbnN0IEhhc2hGbGFnczhCaXRCdWZmZXIgPSBj
b25zdGV4cHIgU3RyaW5nSW1wbDo6c19oYXNoRmxhZzhCaXRCdWZmZXIKIAogIyBDb3BpZWQgZnJv
bSBQcm9wZXJ0eU9mZnNldC5oCi1jb25zdCBmaXJzdE91dE9mTGluZU9mZnNldCA9IDEwMAorY29u
c3QgZmlyc3RPdXRPZkxpbmVPZmZzZXQgPSBjb25zdGV4cHIgZmlyc3RPdXRPZkxpbmVPZmZzZXQK
IAogIyBSZXNvbHZlVHlwZQogY29uc3QgR2xvYmFsUHJvcGVydHkgPSBjb25zdGV4cHIgR2xvYmFs
UHJvcGVydHkKQEAgLTQ1MCwxMyArNDM0LDYgQEAgY29uc3QgTWFya2VkQmxvY2tGb290ZXJPZmZz
ZXQgPSBjb25zdGV4cHIgTWFya2VkQmxvY2s6Om9mZnNldE9mRm9vdGVyCiAKIGNvbnN0IEJsYWNr
VGhyZXNob2xkID0gY29uc3RleHByIGJsYWNrVGhyZXNob2xkCiAKLSMgQWxsb2NhdGlvbiBjb25z
dGFudHMKLWlmIEpTVkFMVUU2NAotICAgIGNvbnN0IEpTRmluYWxPYmplY3RTaXplQ2xhc3NJbmRl
eCA9IDEKLWVsc2UKLSAgICBjb25zdCBKU0ZpbmFsT2JqZWN0U2l6ZUNsYXNzSW5kZXggPSAzCi1l
bmQKLQogIyBUaGlzIG11c3QgbWF0Y2ggd3RmL1ZlY3Rvci5oCiBjb25zdCBWZWN0b3JCdWZmZXJP
ZmZzZXQgPSAwCiBpZiBKU1ZBTFVFNjQKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9wYXJzZXIvUmVzdWx0VHlwZS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9SZXN1
bHRUeXBlLmgKaW5kZXggMDNjYWUyYTQ3ZjkwM2I2ZDJkZmU3ZDc3NTIwNWFhZDg4ZjUyMDJmZS4u
N2Q0NjkyOWZhZWQwNDQzNWRhNjAzM2IzNWQzODRmMzE1OTZjM2FhMiAxMDA2NDQKLS0tIGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9SZXN1bHRUeXBlLmgKKysrIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3BhcnNlci9SZXN1bHRUeXBlLmgKQEAgLTMyLDExNiArMzIsMTE2IEBAIG5hbWVz
cGFjZSBKU0MgewogICAgICAgICBmcmllbmQgc3RydWN0IE9wZXJhbmRUeXBlczsKIAogICAgICAg
ICB1c2luZyBUeXBlID0gdWludDhfdDsKLSAgICAgICAgc3RhdGljIGNvbnN0IFR5cGUgVHlwZUlu
dDMyID0gMTsKLSAgICAgICAgc3RhdGljIGNvbnN0IFR5cGUgVHlwZU1heWJlTnVtYmVyID0gMHgw
MjsKLSAgICAgICAgc3RhdGljIGNvbnN0IFR5cGUgVHlwZU1heWJlU3RyaW5nID0gMHgwNDsKLSAg
ICAgICAgc3RhdGljIGNvbnN0IFR5cGUgVHlwZU1heWJlTnVsbCAgID0gMHgwODsKLSAgICAgICAg
c3RhdGljIGNvbnN0IFR5cGUgVHlwZU1heWJlQm9vbCAgID0gMHgxMDsKLSAgICAgICAgc3RhdGlj
IGNvbnN0IFR5cGUgVHlwZU1heWJlQmlnSW50ID0gMHgyMDsKLSAgICAgICAgc3RhdGljIGNvbnN0
IFR5cGUgVHlwZU1heWJlT3RoZXIgID0gMHg0MDsKKyAgICAgICAgc3RhdGljIGNvbnN0ZXhwciBU
eXBlIFR5cGVJbnQzMiA9IDE7CisgICAgICAgIHN0YXRpYyBjb25zdGV4cHIgVHlwZSBUeXBlTWF5
YmVOdW1iZXIgPSAweDAyOworICAgICAgICBzdGF0aWMgY29uc3RleHByIFR5cGUgVHlwZU1heWJl
U3RyaW5nID0gMHgwNDsKKyAgICAgICAgc3RhdGljIGNvbnN0ZXhwciBUeXBlIFR5cGVNYXliZU51
bGwgICA9IDB4MDg7CisgICAgICAgIHN0YXRpYyBjb25zdGV4cHIgVHlwZSBUeXBlTWF5YmVCb29s
ICAgPSAweDEwOworICAgICAgICBzdGF0aWMgY29uc3RleHByIFR5cGUgVHlwZU1heWJlQmlnSW50
ID0gMHgyMDsKKyAgICAgICAgc3RhdGljIGNvbnN0ZXhwciBUeXBlIFR5cGVNYXliZU90aGVyICA9
IDB4NDA7CiAKLSAgICAgICAgc3RhdGljIGNvbnN0IFR5cGUgVHlwZUJpdHMgPSBUeXBlTWF5YmVO
dW1iZXIgfCBUeXBlTWF5YmVTdHJpbmcgfCBUeXBlTWF5YmVOdWxsIHwgVHlwZU1heWJlQm9vbCB8
IFR5cGVNYXliZUJpZ0ludCB8IFR5cGVNYXliZU90aGVyOworICAgICAgICBzdGF0aWMgY29uc3Rl
eHByIFR5cGUgVHlwZUJpdHMgPSBUeXBlTWF5YmVOdW1iZXIgfCBUeXBlTWF5YmVTdHJpbmcgfCBU
eXBlTWF5YmVOdWxsIHwgVHlwZU1heWJlQm9vbCB8IFR5cGVNYXliZUJpZ0ludCB8IFR5cGVNYXli
ZU90aGVyOwogCiAgICAgcHVibGljOgotICAgICAgICBzdGF0aWMgY29uc3QgaW50IG51bUJpdHNO
ZWVkZWQgPSA3OworICAgICAgICBzdGF0aWMgY29uc3RleHByIGludCBudW1CaXRzTmVlZGVkID0g
NzsKICAgICAgICAgc3RhdGljX2Fzc2VydCgoVHlwZUJpdHMgJiAoKDEgPDwgbnVtQml0c05lZWRl
ZCkgLSAxKSkgPT0gVHlwZUJpdHMsICJUaGlzIGlzIG5lY2Vzc2FyeSBmb3IgY29ycmVjdG5lc3Mu
Iik7CiAKLSAgICAgICAgZXhwbGljaXQgUmVzdWx0VHlwZShUeXBlIHR5cGUpCisgICAgICAgIGNv
bnN0ZXhwciBleHBsaWNpdCBSZXN1bHRUeXBlKFR5cGUgdHlwZSkKICAgICAgICAgICAgIDogbV9i
aXRzKHR5cGUpCiAgICAgICAgIHsKICAgICAgICAgfQogCi0gICAgICAgIGJvb2wgaXNJbnQzMigp
IGNvbnN0CisgICAgICAgIGNvbnN0ZXhwciBib29sIGlzSW50MzIoKSBjb25zdAogICAgICAgICB7
CiAgICAgICAgICAgICByZXR1cm4gbV9iaXRzICYgVHlwZUludDMyOwogICAgICAgICB9CiAKLSAg
ICAgICAgYm9vbCBkZWZpbml0ZWx5SXNOdW1iZXIoKSBjb25zdAorICAgICAgICBjb25zdGV4cHIg
Ym9vbCBkZWZpbml0ZWx5SXNOdW1iZXIoKSBjb25zdAogICAgICAgICB7CiAgICAgICAgICAgICBy
ZXR1cm4gKG1fYml0cyAmIFR5cGVCaXRzKSA9PSBUeXBlTWF5YmVOdW1iZXI7CiAgICAgICAgIH0K
ICAgICAgICAgCi0gICAgICAgIGJvb2wgZGVmaW5pdGVseUlzU3RyaW5nKCkgY29uc3QKKyAgICAg
ICAgY29uc3RleHByIGJvb2wgZGVmaW5pdGVseUlzU3RyaW5nKCkgY29uc3QKICAgICAgICAgewog
ICAgICAgICAgICAgcmV0dXJuIChtX2JpdHMgJiBUeXBlQml0cykgPT0gVHlwZU1heWJlU3RyaW5n
OwogICAgICAgICB9CiAKLSAgICAgICAgYm9vbCBkZWZpbml0ZWx5SXNCb29sZWFuKCkgY29uc3QK
KyAgICAgICAgY29uc3RleHByIGJvb2wgZGVmaW5pdGVseUlzQm9vbGVhbigpIGNvbnN0CiAgICAg
ICAgIHsKICAgICAgICAgICAgIHJldHVybiAobV9iaXRzICYgVHlwZUJpdHMpID09IFR5cGVNYXli
ZUJvb2w7CiAgICAgICAgIH0KIAotICAgICAgICBib29sIGRlZmluaXRlbHlJc0JpZ0ludCgpIGNv
bnN0CisgICAgICAgIGNvbnN0ZXhwciBib29sIGRlZmluaXRlbHlJc0JpZ0ludCgpIGNvbnN0CiAg
ICAgICAgIHsKICAgICAgICAgICAgIHJldHVybiAobV9iaXRzICYgVHlwZUJpdHMpID09IFR5cGVN
YXliZUJpZ0ludDsKICAgICAgICAgfQogCi0gICAgICAgIGJvb2wgbWlnaHRCZU51bWJlcigpIGNv
bnN0CisgICAgICAgIGNvbnN0ZXhwciBib29sIG1pZ2h0QmVOdW1iZXIoKSBjb25zdAogICAgICAg
ICB7CiAgICAgICAgICAgICByZXR1cm4gbV9iaXRzICYgVHlwZU1heWJlTnVtYmVyOwogICAgICAg
ICB9CiAKLSAgICAgICAgYm9vbCBpc05vdE51bWJlcigpIGNvbnN0CisgICAgICAgIGNvbnN0ZXhw
ciBib29sIGlzTm90TnVtYmVyKCkgY29uc3QKICAgICAgICAgewogICAgICAgICAgICAgcmV0dXJu
ICFtaWdodEJlTnVtYmVyKCk7CiAgICAgICAgIH0KICAgICAgICAgCi0gICAgICAgIGJvb2wgbWln
aHRCZUJpZ0ludCgpIGNvbnN0CisgICAgICAgIGNvbnN0ZXhwciBib29sIG1pZ2h0QmVCaWdJbnQo
KSBjb25zdAogICAgICAgICB7CiAgICAgICAgICAgICByZXR1cm4gbV9iaXRzICYgVHlwZU1heWJl
QmlnSW50OwogICAgICAgICB9CiAKLSAgICAgICAgYm9vbCBpc05vdEJpZ0ludCgpIGNvbnN0Cisg
ICAgICAgIGNvbnN0ZXhwciBib29sIGlzTm90QmlnSW50KCkgY29uc3QKICAgICAgICAgewogICAg
ICAgICAgICAgcmV0dXJuICFtaWdodEJlQmlnSW50KCk7CiAgICAgICAgIH0KICAgICAgICAgCi0g
ICAgICAgIHN0YXRpYyBSZXN1bHRUeXBlIG51bGxUeXBlKCkKKyAgICAgICAgc3RhdGljIGNvbnN0
ZXhwciBSZXN1bHRUeXBlIG51bGxUeXBlKCkKICAgICAgICAgewogICAgICAgICAgICAgcmV0dXJu
IFJlc3VsdFR5cGUoVHlwZU1heWJlTnVsbCk7CiAgICAgICAgIH0KICAgICAgICAgCi0gICAgICAg
IHN0YXRpYyBSZXN1bHRUeXBlIGJvb2xlYW5UeXBlKCkKKyAgICAgICAgc3RhdGljIGNvbnN0ZXhw
ciBSZXN1bHRUeXBlIGJvb2xlYW5UeXBlKCkKICAgICAgICAgewogICAgICAgICAgICAgcmV0dXJu
IFJlc3VsdFR5cGUoVHlwZU1heWJlQm9vbCk7CiAgICAgICAgIH0KICAgICAgICAgCi0gICAgICAg
IHN0YXRpYyBSZXN1bHRUeXBlIG51bWJlclR5cGUoKQorICAgICAgICBzdGF0aWMgY29uc3RleHBy
IFJlc3VsdFR5cGUgbnVtYmVyVHlwZSgpCiAgICAgICAgIHsKICAgICAgICAgICAgIHJldHVybiBS
ZXN1bHRUeXBlKFR5cGVNYXliZU51bWJlcik7CiAgICAgICAgIH0KICAgICAgICAgCi0gICAgICAg
IHN0YXRpYyBSZXN1bHRUeXBlIG51bWJlclR5cGVJc0ludDMyKCkKKyAgICAgICAgc3RhdGljIGNv
bnN0ZXhwciBSZXN1bHRUeXBlIG51bWJlclR5cGVJc0ludDMyKCkKICAgICAgICAgewogICAgICAg
ICAgICAgcmV0dXJuIFJlc3VsdFR5cGUoVHlwZUludDMyIHwgVHlwZU1heWJlTnVtYmVyKTsKICAg
ICAgICAgfQogICAgICAgICAKLSAgICAgICAgc3RhdGljIFJlc3VsdFR5cGUgc3RyaW5nT3JOdW1i
ZXJUeXBlKCkKKyAgICAgICAgc3RhdGljIGNvbnN0ZXhwciBSZXN1bHRUeXBlIHN0cmluZ09yTnVt
YmVyVHlwZSgpCiAgICAgICAgIHsKICAgICAgICAgICAgIHJldHVybiBSZXN1bHRUeXBlKFR5cGVN
YXliZU51bWJlciB8IFR5cGVNYXliZVN0cmluZyk7CiAgICAgICAgIH0KICAgICAgICAgCi0gICAg
ICAgIHN0YXRpYyBSZXN1bHRUeXBlIGFkZFJlc3VsdFR5cGUoKQorICAgICAgICBzdGF0aWMgY29u
c3RleHByIFJlc3VsdFR5cGUgYWRkUmVzdWx0VHlwZSgpCiAgICAgICAgIHsKICAgICAgICAgICAg
IHJldHVybiBSZXN1bHRUeXBlKFR5cGVNYXliZU51bWJlciB8IFR5cGVNYXliZVN0cmluZyB8IFR5
cGVNYXliZUJpZ0ludCk7CiAgICAgICAgIH0KICAgICAgICAgCi0gICAgICAgIHN0YXRpYyBSZXN1
bHRUeXBlIHN0cmluZ1R5cGUoKQorICAgICAgICBzdGF0aWMgY29uc3RleHByIFJlc3VsdFR5cGUg
c3RyaW5nVHlwZSgpCiAgICAgICAgIHsKICAgICAgICAgICAgIHJldHVybiBSZXN1bHRUeXBlKFR5
cGVNYXliZVN0cmluZyk7CiAgICAgICAgIH0KICAgICAgICAgCi0gICAgICAgIHN0YXRpYyBSZXN1
bHRUeXBlIGJpZ0ludFR5cGUoKQorICAgICAgICBzdGF0aWMgY29uc3RleHByIFJlc3VsdFR5cGUg
YmlnSW50VHlwZSgpCiAgICAgICAgIHsKICAgICAgICAgICAgIHJldHVybiBSZXN1bHRUeXBlKFR5
cGVNYXliZUJpZ0ludCk7CiAgICAgICAgIH0KICAgICAgICAgCi0gICAgICAgIHN0YXRpYyBSZXN1
bHRUeXBlIHVua25vd25UeXBlKCkKKyAgICAgICAgc3RhdGljIGNvbnN0ZXhwciBSZXN1bHRUeXBl
IHVua25vd25UeXBlKCkKICAgICAgICAgewogICAgICAgICAgICAgcmV0dXJuIFJlc3VsdFR5cGUo
VHlwZUJpdHMpOwogICAgICAgICB9CiAgICAgICAgIAotICAgICAgICBzdGF0aWMgUmVzdWx0VHlw
ZSBmb3JBZGQoUmVzdWx0VHlwZSBvcDEsIFJlc3VsdFR5cGUgb3AyKQorICAgICAgICBzdGF0aWMg
Y29uc3RleHByIFJlc3VsdFR5cGUgZm9yQWRkKFJlc3VsdFR5cGUgb3AxLCBSZXN1bHRUeXBlIG9w
MikKICAgICAgICAgewogICAgICAgICAgICAgaWYgKG9wMS5kZWZpbml0ZWx5SXNOdW1iZXIoKSAm
JiBvcDIuZGVmaW5pdGVseUlzTnVtYmVyKCkpCiAgICAgICAgICAgICAgICAgcmV0dXJuIG51bWJl
clR5cGUoKTsKQEAgLTE1NCw3ICsxNTQsNyBAQCBuYW1lc3BhY2UgSlNDIHsKIAogICAgICAgICAv
LyBVbmxpa2UgaW4gQywgYSBsb2dpY2FsIG9wIHByb2R1Y2VzIHRoZSB2YWx1ZSBvZiB0aGUKICAg
ICAgICAgLy8gbGFzdCBleHByZXNzaW9uIGV2YWx1YXRlZCAoYW5kIG5vdCB0cnVlIG9yIGZhbHNl
KS4KLSAgICAgICAgc3RhdGljIFJlc3VsdFR5cGUgZm9yTG9naWNhbE9wKFJlc3VsdFR5cGUgb3Ax
LCBSZXN1bHRUeXBlIG9wMikKKyAgICAgICAgc3RhdGljIGNvbnN0ZXhwciBSZXN1bHRUeXBlIGZv
ckxvZ2ljYWxPcChSZXN1bHRUeXBlIG9wMSwgUmVzdWx0VHlwZSBvcDIpCiAgICAgICAgIHsKICAg
ICAgICAgICAgIGlmIChvcDEuZGVmaW5pdGVseUlzQm9vbGVhbigpICYmIG9wMi5kZWZpbml0ZWx5
SXNCb29sZWFuKCkpCiAgICAgICAgICAgICAgICAgcmV0dXJuIGJvb2xlYW5UeXBlKCk7CkBAIC0x
NjcsMTIgKzE2NywxMiBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgICAgIHJldHVybiB1bmtu
b3duVHlwZSgpOwogICAgICAgICB9CiAKLSAgICAgICAgc3RhdGljIFJlc3VsdFR5cGUgZm9yQml0
T3AoKQorICAgICAgICBzdGF0aWMgY29uc3RleHByIFJlc3VsdFR5cGUgZm9yQml0T3AoKQogICAg
ICAgICB7CiAgICAgICAgICAgICByZXR1cm4gbnVtYmVyVHlwZUlzSW50MzIoKTsKICAgICAgICAg
fQogCi0gICAgICAgIFR5cGUgYml0cygpIGNvbnN0IHsgcmV0dXJuIG1fYml0czsgfQorICAgICAg
ICBjb25zdGV4cHIgVHlwZSBiaXRzKCkgY29uc3QgeyByZXR1cm4gbV9iaXRzOyB9CiAKICAgICBw
cml2YXRlOgogICAgICAgICBUeXBlIG1fYml0czsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL0pTQ0pTVmFsdWUuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL0pTQ0pTVmFsdWUuaAppbmRleCA3YzdlOGMzZWNmY2MyZWE0Yzc2ODZhNzc4NzIwYjYyMTdk
MWQ5MDU0Li45MGQ4ZjlmOTY5MzAzMWM3M2UzMzMxZjJmNDlmNGM4MGZjZTIwZTM1IDEwMDY0NAot
LS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0NKU1ZhbHVlLmgKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNDSlNWYWx1ZS5oCkBAIC0xMDgsOCArMTA4LDgg
QEAgdW5pb24gRW5jb2RlZFZhbHVlRGVzY3JpcHRvciB7CiAjZW5kaWYKIH07CiAKLSNkZWZpbmUg
VGFnT2Zmc2V0IChPQkpFQ1RfT0ZGU0VUT0YoRW5jb2RlZFZhbHVlRGVzY3JpcHRvciwgYXNCaXRz
LnRhZykpCi0jZGVmaW5lIFBheWxvYWRPZmZzZXQgKE9CSkVDVF9PRkZTRVRPRihFbmNvZGVkVmFs
dWVEZXNjcmlwdG9yLCBhc0JpdHMucGF5bG9hZCkpCisjZGVmaW5lIFRhZ09mZnNldCAob2Zmc2V0
b2YoRW5jb2RlZFZhbHVlRGVzY3JpcHRvciwgYXNCaXRzLnRhZykpCisjZGVmaW5lIFBheWxvYWRP
ZmZzZXQgKG9mZnNldG9mKEVuY29kZWRWYWx1ZURlc2NyaXB0b3IsIGFzQml0cy5wYXlsb2FkKSkK
IAogI2lmIFVTRShKU1ZBTFVFNjQpCiAjZGVmaW5lIENlbGxQYXlsb2FkT2Zmc2V0IDAK
</data>
<flag name="review"
          id="369829"
          type_id="1"
          status="+"
          setter="keith_miller"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>352566</attachid>
            <date>2018-10-17 08:00:00 -0700</date>
            <delta_ts>2018-10-17 08:00:00 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-190659-20181017235959.patch</filename>
            <type>text/plain</type>
            <size>36174</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjM3MjE5CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBm
ZTgyNDQ5YTRjMzMxY2JlMmIzZWY1ZDNmYzA5NGViYTBmNDE5Y2MxLi5jNDI0YTJkMWY2NzVkMjI1
OWFkMGM2ZThhODljNmVkNDM2YjMwMDQ5IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw4OSBAQAorMjAxOC0xMC0xNyAgWXVzdWtlIFN1enVraSAgPHl1c3VrZXN1enVraUBzbG93
c3RhcnQub3JnPgorCisgICAgICAgIFtKU0NdIE1vcmUgYWdncmVzc2l2ZWx5IHVzZSBgY29uc3Rl
eHByYCBpbiBMb3dMZXZlbEludGVycHJldGVyLmFzbSBmb3IgY29uc3RhbnQgdmFsdWVzCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xOTA2NTkKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBc2tpbmcgdGhlIGFj
dHVhbCBjb25zdGFudCB2YWx1ZSB0byB0aGUgSlNDIGJpbmFyeSBpcyBhbHdheXMgdGhlIGJlc3Qg
d2F5IHRvIGdldCB0aGUgY29ycmVjdCB2YWx1ZS4KKyAgICAgICAgVGhlIHZhbHVlIGlzIGNvcnJl
Y3RseSB1cGRhdGVkIG9uY2UgdGhlIG9yaWdpbmFsIHZhbHVlIGlzIGNoYW5nZWQuIFdlIHdvdWxk
IGxpa2UgdG8gZW5jb3VyYWdlIHRoaXMKKyAgICAgICAgYXBwcm9hY2ggbW9yZSBpbiBMb3dMZXZl
bEludGVycHJldGVyLmFzbS4KKworICAgICAgICBUaGlzIHBhdGNoIGV4cGFuZHMgdGhlIGNvdmVy
YWdlIG9mIHRoaXMgYXBwcm9hY2guIFdlIG1ha2UgT2JzZXJ2ZWRUeXBlLCBSZXN1bHRUeXBlLCBh
bmQgQXJpdGhQcm9maWxlCisgICAgICAgIGNvbnN0ZXhwci1mcmllbmRseSB0byBwcm9kdWNlIHRo
ZSBtYWdpYyB2YWx1ZSB1c2VkIGluIExvd0xldmVsSW50ZXJwcmV0ZXIuYXNtIGF0IGNvbXBpbGlu
ZyB0aW1lLgorICAgICAgICBUaGlzIGNoYW5nZSBhbGxvd3MgdXMgdG8gZWFzaWx5IGV4dGVuZCBB
cml0aFByb2ZpbGUgaW4gdGhlIGZ1dHVyZSB0byBhZG9wdCBCaWdJbnQgZWZmaWNpZW50bHkuCisK
KyAgICAgICAgV2UgYWRkaXRpb25hbGx5IHVzZSBgY29uc3RleHByYCBmb3Igc2V2ZXJhbCBjb25z
dGFudCB2YWx1ZXMgaW4gTG93TGV2ZWxJbnRlcnByZXRlci5hc20uCisKKyAgICAgICAgKiBhc3Nl
bWJsZXIvTWF4RnJhbWVFeHRlbnRGb3JTbG93UGF0aENhbGwuaDoKKyAgICAgICAgVXNlIHRoaXMg
dmFsdWUgaW4gTG93TGV2ZWxJbnRlcnByZXRlci5hc20gZGlyZWN0bHkuIFdlIGFsc28gbWFrZSB0
aGVtIGNvbnN0ZXhwci4gQW5kIHdlIGFkZCBDUFUoQVJNNjRFKS4KKworICAgICAgICAqIGJ5dGVj
b2RlL0FyaXRoUHJvZmlsZS5oOgorICAgICAgICAoSlNDOjpPYnNlcnZlZFR5cGU6Ok9ic2VydmVk
VHlwZSk6CisgICAgICAgIChKU0M6Ok9ic2VydmVkVHlwZTo6c2F3SW50MzIgY29uc3QpOgorICAg
ICAgICAoSlNDOjpPYnNlcnZlZFR5cGU6OmlzT25seUludDMyIGNvbnN0KToKKyAgICAgICAgKEpT
Qzo6T2JzZXJ2ZWRUeXBlOjpzYXdOdW1iZXIgY29uc3QpOgorICAgICAgICAoSlNDOjpPYnNlcnZl
ZFR5cGU6OmlzT25seU51bWJlciBjb25zdCk6CisgICAgICAgIChKU0M6Ok9ic2VydmVkVHlwZTo6
c2F3Tm9uTnVtYmVyIGNvbnN0KToKKyAgICAgICAgKEpTQzo6T2JzZXJ2ZWRUeXBlOjppc09ubHlO
b25OdW1iZXIgY29uc3QpOgorICAgICAgICAoSlNDOjpPYnNlcnZlZFR5cGU6OmlzRW1wdHkgY29u
c3QpOgorICAgICAgICAoSlNDOjpPYnNlcnZlZFR5cGU6OmJpdHMgY29uc3QpOgorICAgICAgICAo
SlNDOjpPYnNlcnZlZFR5cGU6OndpdGhJbnQzMiBjb25zdCk6CisgICAgICAgIChKU0M6Ok9ic2Vy
dmVkVHlwZTo6d2l0aE51bWJlciBjb25zdCk6CisgICAgICAgIChKU0M6Ok9ic2VydmVkVHlwZTo6
d2l0aE5vbk51bWJlciBjb25zdCk6CisgICAgICAgIChKU0M6Ok9ic2VydmVkVHlwZTo6d2l0aG91
dE5vbk51bWJlciBjb25zdCk6CisgICAgICAgIChKU0M6Ok9ic2VydmVkVHlwZTo6b3BlcmF0b3I9
PSBjb25zdCk6CisgICAgICAgIChKU0M6OkFyaXRoUHJvZmlsZTo6QXJpdGhQcm9maWxlKToKKyAg
ICAgICAgKEpTQzo6QXJpdGhQcm9maWxlOjpmcm9tSW50KToKKyAgICAgICAgKEpTQzo6QXJpdGhQ
cm9maWxlOjpvYnNlcnZlZFVuYXJ5SW50KToKKyAgICAgICAgKEpTQzo6QXJpdGhQcm9maWxlOjpv
YnNlcnZlZFVuYXJ5TnVtYmVyKToKKyAgICAgICAgKEpTQzo6QXJpdGhQcm9maWxlOjpvYnNlcnZl
ZEJpbmFyeUludEludCk6CisgICAgICAgIChKU0M6OkFyaXRoUHJvZmlsZTo6b2JzZXJ2ZWRCaW5h
cnlOdW1iZXJJbnQpOgorICAgICAgICAoSlNDOjpBcml0aFByb2ZpbGU6Om9ic2VydmVkQmluYXJ5
SW50TnVtYmVyKToKKyAgICAgICAgKEpTQzo6QXJpdGhQcm9maWxlOjpvYnNlcnZlZEJpbmFyeU51
bWJlck51bWJlcik6CisgICAgICAgIChKU0M6OkFyaXRoUHJvZmlsZTo6bGhzT2JzZXJ2ZWRUeXBl
IGNvbnN0KToKKyAgICAgICAgKEpTQzo6QXJpdGhQcm9maWxlOjpyaHNPYnNlcnZlZFR5cGUgY29u
c3QpOgorICAgICAgICAoSlNDOjpBcml0aFByb2ZpbGU6OmJpdHMgY29uc3QpOgorICAgICAgICBN
YWtlIE9ic2VydmVkVHlwZSBhbmQgQXJpdGhQcm9maWxlIGNvbnN0ZXhwci1mcmllbmRseS4KKwor
ICAgICAgICAqIGxsaW50L0xMSW50RGF0YS5jcHA6CisgICAgICAgIChKU0M6OkxMSW50OjpEYXRh
OjpwZXJmb3JtQXNzZXJ0aW9ucyk6CisgICAgICAgIE1ha2Ugc2V2ZXJhbCBBU1NFUlRzIHRvIFNU
QVRJQ19BU1NFUlRzLiBSZW1vdmUgc29tZSB1bm5lY2Vzc2FyeSBjaGVja3MuCisgICAgICAgICog
bGxpbnQvTExJbnRPZmZzZXRzRXh0cmFjdG9yLmNwcDoKKyAgICAgICAgKiBsbGludC9Mb3dMZXZl
bEludGVycHJldGVyLmFzbToKKyAgICAgICAgUmVtb3ZlIHVudXNlZCBjb25zdGFudCB2YWx1ZXMu
IFVzZSBjb25zdGV4cHIgbW9yZSBhbmQgbW9yZSBhZ2dyZXNzaXZlbHkuCisKKyAgICAgICAgKiBw
YXJzZXIvUmVzdWx0VHlwZS5oOgorICAgICAgICAoSlNDOjpSZXN1bHRUeXBlOjpSZXN1bHRUeXBl
KToKKyAgICAgICAgKEpTQzo6UmVzdWx0VHlwZTo6aXNJbnQzMiBjb25zdCk6CisgICAgICAgIChK
U0M6OlJlc3VsdFR5cGU6OmRlZmluaXRlbHlJc051bWJlciBjb25zdCk6CisgICAgICAgIChKU0M6
OlJlc3VsdFR5cGU6OmRlZmluaXRlbHlJc1N0cmluZyBjb25zdCk6CisgICAgICAgIChKU0M6OlJl
c3VsdFR5cGU6OmRlZmluaXRlbHlJc0Jvb2xlYW4gY29uc3QpOgorICAgICAgICAoSlNDOjpSZXN1
bHRUeXBlOjpkZWZpbml0ZWx5SXNCaWdJbnQgY29uc3QpOgorICAgICAgICAoSlNDOjpSZXN1bHRU
eXBlOjptaWdodEJlTnVtYmVyIGNvbnN0KToKKyAgICAgICAgKEpTQzo6UmVzdWx0VHlwZTo6aXNO
b3ROdW1iZXIgY29uc3QpOgorICAgICAgICAoSlNDOjpSZXN1bHRUeXBlOjptaWdodEJlQmlnSW50
IGNvbnN0KToKKyAgICAgICAgKEpTQzo6UmVzdWx0VHlwZTo6aXNOb3RCaWdJbnQgY29uc3QpOgor
ICAgICAgICAoSlNDOjpSZXN1bHRUeXBlOjpudWxsVHlwZSk6CisgICAgICAgIChKU0M6OlJlc3Vs
dFR5cGU6OmJvb2xlYW5UeXBlKToKKyAgICAgICAgKEpTQzo6UmVzdWx0VHlwZTo6bnVtYmVyVHlw
ZSk6CisgICAgICAgIChKU0M6OlJlc3VsdFR5cGU6Om51bWJlclR5cGVJc0ludDMyKToKKyAgICAg
ICAgKEpTQzo6UmVzdWx0VHlwZTo6c3RyaW5nT3JOdW1iZXJUeXBlKToKKyAgICAgICAgKEpTQzo6
UmVzdWx0VHlwZTo6YWRkUmVzdWx0VHlwZSk6CisgICAgICAgIChKU0M6OlJlc3VsdFR5cGU6OnN0
cmluZ1R5cGUpOgorICAgICAgICAoSlNDOjpSZXN1bHRUeXBlOjpiaWdJbnRUeXBlKToKKyAgICAg
ICAgKEpTQzo6UmVzdWx0VHlwZTo6dW5rbm93blR5cGUpOgorICAgICAgICAoSlNDOjpSZXN1bHRU
eXBlOjpmb3JBZGQpOgorICAgICAgICAoSlNDOjpSZXN1bHRUeXBlOjpmb3JMb2dpY2FsT3ApOgor
ICAgICAgICAoSlNDOjpSZXN1bHRUeXBlOjpmb3JCaXRPcCk6CisgICAgICAgIChKU0M6OlJlc3Vs
dFR5cGU6OmJpdHMgY29uc3QpOgorICAgICAgICBNYWtlIFJlc3VsdFR5cGUgY29uc3RleHByLWZy
aWVuZGx5LgorCisgICAgICAgICogcnVudGltZS9KU0NKU1ZhbHVlLmg6CisgICAgICAgIFVzZSBv
ZmZzZXRvZiBpbnN0ZWFkIG9mIE9CSkVDVF9PRkZTRVRPRi4gSXQgaXMgT0sgc2luY2UgRW5jb2Rl
ZFZhbHVlRGVzY3JpcHRvciBpcyBQT0QuCisgICAgICAgIFRoaXMgY2hhbmdlIG1ha2VzIFRhZ09m
ZnNldCBhbmQgUGF5bG9hZE9mZnNldCBtYWNyb3MgY29uc3RleHByLWZyaWVuZGx5IHdoaWxlIE9C
SkVDVF9PRkZTRVRPRgorICAgICAgICBjYW5ub3QgYmUgdXNlZCBpbiBjb25zdGV4cHIgc2luY2Ug
aXQgdXNlcyByZWludGVycHJldF9jYXN0LgorCiAyMDE4LTEwLTE3ICBLZWl0aCBNaWxsZXIgIDxr
ZWl0aF9taWxsZXJAYXBwbGUuY29tPgogCiAgICAgICAgIFVucmV2aWV3ZWQgcmV2ZXJ0IEZ1amlp
J3MgcmV2ZXJ0IGluIHIyMzcyMTQgd2l0aCBuZXcgV2luQ2Fpcm8gYnVpbGQgZml4LgpkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9NYXhGcmFtZUV4dGVudEZvclNs
b3dQYXRoQ2FsbC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9NYXhGcmFtZUV4
dGVudEZvclNsb3dQYXRoQ2FsbC5oCmluZGV4IDQzMjEzMDVjNjhlNGRhZjYyODIzZjZlZWY3NTk1
MWZhMjdhOTM2YmUuLjZkYWMwOWMyYzkxM2VhMDlhZTRjNWIwYTY5MGM1OTY1ODE5NDQ3ODAgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvTWF4RnJhbWVFeHRlbnRG
b3JTbG93UGF0aENhbGwuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL01h
eEZyYW1lRXh0ZW50Rm9yU2xvd1BhdGhDYWxsLmgKQEAgLTM2LDQ0ICszNiw0NCBAQCBuYW1lc3Bh
Y2UgSlNDIHsKIC8vIGZyb20gSlMgY29kZS4KIAogI2lmICFFTkFCTEUoQVNTRU1CTEVSKQotc3Rh
dGljIGNvbnN0IHNpemVfdCBtYXhGcmFtZUV4dGVudEZvclNsb3dQYXRoQ2FsbCA9IDA7CitzdGF0
aWMgY29uc3RleHByIHNpemVfdCBtYXhGcmFtZUV4dGVudEZvclNsb3dQYXRoQ2FsbCA9IDA7CiAK
ICNlbGlmIENQVShYODZfNjQpICYmIE9TKFdJTkRPV1MpCiAvLyA0IGFyZ3MgaW4gcmVnaXN0ZXJz
LCBidXQgc3RhY2sgc3BhY2UgbmVlZHMgdG8gYmUgYWxsb2NhdGVkIGZvciBhbGwgYXJncy4KLXN0
YXRpYyBjb25zdCBzaXplX3QgbWF4RnJhbWVFeHRlbnRGb3JTbG93UGF0aENhbGwgPSA2NDsKK3N0
YXRpYyBjb25zdGV4cHIgc2l6ZV90IG1heEZyYW1lRXh0ZW50Rm9yU2xvd1BhdGhDYWxsID0gNjQ7
CiAKICNlbGlmIENQVShYODZfNjQpCiAvLyBBbGwgYXJncyBpbiByZWdpc3RlcnMuCi1zdGF0aWMg
Y29uc3Qgc2l6ZV90IG1heEZyYW1lRXh0ZW50Rm9yU2xvd1BhdGhDYWxsID0gMDsKK3N0YXRpYyBj
b25zdGV4cHIgc2l6ZV90IG1heEZyYW1lRXh0ZW50Rm9yU2xvd1BhdGhDYWxsID0gMDsKIAogI2Vs
aWYgQ1BVKFg4NikKIC8vIDcgYXJncyBvbiBzdGFjayAoMjggYnl0ZXMpLgotc3RhdGljIGNvbnN0
IHNpemVfdCBtYXhGcmFtZUV4dGVudEZvclNsb3dQYXRoQ2FsbCA9IDQwOworc3RhdGljIGNvbnN0
ZXhwciBzaXplX3QgbWF4RnJhbWVFeHRlbnRGb3JTbG93UGF0aENhbGwgPSA0MDsKIAotI2VsaWYg
Q1BVKEFSTTY0KQorI2VsaWYgQ1BVKEFSTTY0KSB8fCBDUFUoQVJNNjRFKQogLy8gQWxsIGFyZ3Mg
aW4gcmVnaXN0ZXJzLgotc3RhdGljIGNvbnN0IHNpemVfdCBtYXhGcmFtZUV4dGVudEZvclNsb3dQ
YXRoQ2FsbCA9IDA7CitzdGF0aWMgY29uc3RleHByIHNpemVfdCBtYXhGcmFtZUV4dGVudEZvclNs
b3dQYXRoQ2FsbCA9IDA7CiAKICNlbGlmIENQVShBUk0pCiAvLyBGaXJzdCBmb3VyIGFyZ3MgaW4g
cmVnaXN0ZXJzLCByZW1haW5pbmcgNCBhcmdzIG9uIHN0YWNrLgotc3RhdGljIGNvbnN0IHNpemVf
dCBtYXhGcmFtZUV4dGVudEZvclNsb3dQYXRoQ2FsbCA9IDI0Oworc3RhdGljIGNvbnN0ZXhwciBz
aXplX3QgbWF4RnJhbWVFeHRlbnRGb3JTbG93UGF0aENhbGwgPSAyNDsKIAogI2VsaWYgQ1BVKE1J
UFMpCiAvLyBUaG91Z2ggYXJncyBhcmUgaW4gcmVnaXN0ZXJzLCB0aGVyZSBuZWVkIHRvIGJlIHNw
YWNlIG9uIHRoZSBzdGFjayBmb3IgYWxsIGFyZ3MuCi1zdGF0aWMgY29uc3Qgc2l6ZV90IG1heEZy
YW1lRXh0ZW50Rm9yU2xvd1BhdGhDYWxsID0gNDA7CitzdGF0aWMgY29uc3RleHByIHNpemVfdCBt
YXhGcmFtZUV4dGVudEZvclNsb3dQYXRoQ2FsbCA9IDQwOwogCiAjZWxzZQogI2Vycm9yICJVbnN1
cHBvcnRlZCBDUFU6IG5lZWQgdmFsdWUgZm9yIG1heEZyYW1lRXh0ZW50Rm9yU2xvd1BhdGhDYWxs
IgogCiAjZW5kaWYKIAotQ09NUElMRV9BU1NFUlQoIShtYXhGcmFtZUV4dGVudEZvclNsb3dQYXRo
Q2FsbCAlIHNpemVvZihSZWdpc3RlcikpLCBleHRlbnRfbXVzdF9iZV9pbl9tdWx0aXBsZXNfb2Zf
cmVnaXN0ZXJzKTsKK3N0YXRpY19hc3NlcnQoIShtYXhGcmFtZUV4dGVudEZvclNsb3dQYXRoQ2Fs
bCAlIHNpemVvZihSZWdpc3RlcikpLCAiRXh0ZW50IG11c3QgYmUgaW4gbXVsdGlwbGVzIG9mIHJl
Z2lzdGVycyIpOwogCiAjaWYgRU5BQkxFKEFTU0VNQkxFUikKIC8vIE1ha2Ugc3VyZSB0aGF0IGNm
ciAtIG1heEZyYW1lRXh0ZW50Rm9yU2xvd1BhdGhDYWxsIGJ5dGVzIHdpbGwgbWFrZSB0aGUgc3Rh
Y2sgcG9pbnRlciBhbGlnbmVkCi1DT01QSUxFX0FTU0VSVCgobWF4RnJhbWVFeHRlbnRGb3JTbG93
UGF0aENhbGwgJSAxNikgPT0gMTYgLSBzaXplb2YoQ2FsbGVyRnJhbWVBbmRQQyksIGV4dGVudF9t
dXN0X2FsaWduX3N0YWNrX2Zyb21fY2FsbGZyYW1lX3BvaW50ZXIpOworc3RhdGljX2Fzc2VydCgo
bWF4RnJhbWVFeHRlbnRGb3JTbG93UGF0aENhbGwgJSAxNikgPT0gMTYgLSBzaXplb2YoQ2FsbGVy
RnJhbWVBbmRQQyksICJFeHRlbnQgbXVzdCBhbGlnbiBzdGFjayBmcm9tIGNhbGxmcmFtZSBwb2lu
dGVyIik7CiAjZW5kaWYKIAotc3RhdGljIGNvbnN0IHNpemVfdCBtYXhGcmFtZUV4dGVudEZvclNs
b3dQYXRoQ2FsbEluUmVnaXN0ZXJzID0gbWF4RnJhbWVFeHRlbnRGb3JTbG93UGF0aENhbGwgLyBz
aXplb2YoUmVnaXN0ZXIpOworc3RhdGljIGNvbnN0ZXhwciBzaXplX3QgbWF4RnJhbWVFeHRlbnRG
b3JTbG93UGF0aENhbGxJblJlZ2lzdGVycyA9IG1heEZyYW1lRXh0ZW50Rm9yU2xvd1BhdGhDYWxs
IC8gc2l6ZW9mKFJlZ2lzdGVyKTsKIAogfSAvLyBuYW1lc3BhY2UgSlNDCmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQXJpdGhQcm9maWxlLmggYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvYnl0ZWNvZGUvQXJpdGhQcm9maWxlLmgKaW5kZXggNDBmYWQxYmUzYmFhNDM0
ODZlOThhMDNjZDA0ZDU1NDg3NmVkNGRjNy4uNTJlZWY4MjhiNWYzMTk5YTJkZTM3NTZjOTUwNTgw
MGI2YjU4NDEwNiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0Fy
aXRoUHJvZmlsZS5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9Bcml0aFBy
b2ZpbGUuaApAQCAtMzUsODAgKzM1LDEyNiBAQCBuYW1lc3BhY2UgSlNDIHsKIGNsYXNzIENDYWxs
SGVscGVyczsKIAogc3RydWN0IE9ic2VydmVkVHlwZSB7Ci0gICAgT2JzZXJ2ZWRUeXBlKHVpbnQ4
X3QgYml0cyA9IFR5cGVFbXB0eSkKKyAgICBjb25zdGV4cHIgT2JzZXJ2ZWRUeXBlKHVpbnQ4X3Qg
Yml0cyA9IFR5cGVFbXB0eSkKICAgICAgICAgOiBtX2JpdHMoYml0cykKICAgICB7IH0KIAotICAg
IGJvb2wgc2F3SW50MzIoKSBjb25zdCB7IHJldHVybiBtX2JpdHMgJiBUeXBlSW50MzI7IH0KLSAg
ICBib29sIGlzT25seUludDMyKCkgY29uc3QgeyByZXR1cm4gbV9iaXRzID09IFR5cGVJbnQzMjsg
fQotICAgIGJvb2wgc2F3TnVtYmVyKCkgY29uc3QgeyByZXR1cm4gbV9iaXRzICYgVHlwZU51bWJl
cjsgfQotICAgIGJvb2wgaXNPbmx5TnVtYmVyKCkgY29uc3QgeyByZXR1cm4gbV9iaXRzID09IFR5
cGVOdW1iZXI7IH0KLSAgICBib29sIHNhd05vbk51bWJlcigpIGNvbnN0IHsgcmV0dXJuIG1fYml0
cyAmIFR5cGVOb25OdW1iZXI7IH0KLSAgICBib29sIGlzT25seU5vbk51bWJlcigpIGNvbnN0IHsg
cmV0dXJuIG1fYml0cyA9PSBUeXBlTm9uTnVtYmVyOyB9Ci0gICAgYm9vbCBpc0VtcHR5KCkgY29u
c3QgeyByZXR1cm4gIW1fYml0czsgfQotICAgIHVpbnQ4X3QgYml0cygpIGNvbnN0IHsgcmV0dXJu
IG1fYml0czsgfQorICAgIGNvbnN0ZXhwciBib29sIHNhd0ludDMyKCkgY29uc3QgeyByZXR1cm4g
bV9iaXRzICYgVHlwZUludDMyOyB9CisgICAgY29uc3RleHByIGJvb2wgaXNPbmx5SW50MzIoKSBj
b25zdCB7IHJldHVybiBtX2JpdHMgPT0gVHlwZUludDMyOyB9CisgICAgY29uc3RleHByIGJvb2wg
c2F3TnVtYmVyKCkgY29uc3QgeyByZXR1cm4gbV9iaXRzICYgVHlwZU51bWJlcjsgfQorICAgIGNv
bnN0ZXhwciBib29sIGlzT25seU51bWJlcigpIGNvbnN0IHsgcmV0dXJuIG1fYml0cyA9PSBUeXBl
TnVtYmVyOyB9CisgICAgY29uc3RleHByIGJvb2wgc2F3Tm9uTnVtYmVyKCkgY29uc3QgeyByZXR1
cm4gbV9iaXRzICYgVHlwZU5vbk51bWJlcjsgfQorICAgIGNvbnN0ZXhwciBib29sIGlzT25seU5v
bk51bWJlcigpIGNvbnN0IHsgcmV0dXJuIG1fYml0cyA9PSBUeXBlTm9uTnVtYmVyOyB9CisgICAg
Y29uc3RleHByIGJvb2wgaXNFbXB0eSgpIGNvbnN0IHsgcmV0dXJuICFtX2JpdHM7IH0KKyAgICBj
b25zdGV4cHIgdWludDhfdCBiaXRzKCkgY29uc3QgeyByZXR1cm4gbV9iaXRzOyB9CiAKLSAgICBP
YnNlcnZlZFR5cGUgd2l0aEludDMyKCkgY29uc3QgeyByZXR1cm4gT2JzZXJ2ZWRUeXBlKG1fYml0
cyB8IFR5cGVJbnQzMik7IH0KLSAgICBPYnNlcnZlZFR5cGUgd2l0aE51bWJlcigpIGNvbnN0IHsg
cmV0dXJuIE9ic2VydmVkVHlwZShtX2JpdHMgfCBUeXBlTnVtYmVyKTsgfQotICAgIE9ic2VydmVk
VHlwZSB3aXRoTm9uTnVtYmVyKCkgY29uc3QgeyByZXR1cm4gT2JzZXJ2ZWRUeXBlKG1fYml0cyB8
IFR5cGVOb25OdW1iZXIpOyB9Ci0gICAgT2JzZXJ2ZWRUeXBlIHdpdGhvdXROb25OdW1iZXIoKSBj
b25zdCB7IHJldHVybiBPYnNlcnZlZFR5cGUobV9iaXRzICYgflR5cGVOb25OdW1iZXIpOyB9Cisg
ICAgY29uc3RleHByIE9ic2VydmVkVHlwZSB3aXRoSW50MzIoKSBjb25zdCB7IHJldHVybiBPYnNl
cnZlZFR5cGUobV9iaXRzIHwgVHlwZUludDMyKTsgfQorICAgIGNvbnN0ZXhwciBPYnNlcnZlZFR5
cGUgd2l0aE51bWJlcigpIGNvbnN0IHsgcmV0dXJuIE9ic2VydmVkVHlwZShtX2JpdHMgfCBUeXBl
TnVtYmVyKTsgfQorICAgIGNvbnN0ZXhwciBPYnNlcnZlZFR5cGUgd2l0aE5vbk51bWJlcigpIGNv
bnN0IHsgcmV0dXJuIE9ic2VydmVkVHlwZShtX2JpdHMgfCBUeXBlTm9uTnVtYmVyKTsgfQorICAg
IGNvbnN0ZXhwciBPYnNlcnZlZFR5cGUgd2l0aG91dE5vbk51bWJlcigpIGNvbnN0IHsgcmV0dXJu
IE9ic2VydmVkVHlwZShtX2JpdHMgJiB+VHlwZU5vbk51bWJlcik7IH0KIAotICAgIGJvb2wgb3Bl
cmF0b3I9PShjb25zdCBPYnNlcnZlZFR5cGUmIG90aGVyKSBjb25zdCB7IHJldHVybiBtX2JpdHMg
PT0gb3RoZXIubV9iaXRzOyB9CisgICAgY29uc3RleHByIGJvb2wgb3BlcmF0b3I9PShjb25zdCBP
YnNlcnZlZFR5cGUmIG90aGVyKSBjb25zdCB7IHJldHVybiBtX2JpdHMgPT0gb3RoZXIubV9iaXRz
OyB9CiAKLSAgICBzdGF0aWMgY29uc3QgdWludDhfdCBUeXBlRW1wdHkgPSAweDA7Ci0gICAgc3Rh
dGljIGNvbnN0IHVpbnQ4X3QgVHlwZUludDMyID0gMHgxOwotICAgIHN0YXRpYyBjb25zdCB1aW50
OF90IFR5cGVOdW1iZXIgPSAweDAyOwotICAgIHN0YXRpYyBjb25zdCB1aW50OF90IFR5cGVOb25O
dW1iZXIgPSAweDA0OworICAgIHN0YXRpYyBjb25zdGV4cHIgdWludDhfdCBUeXBlRW1wdHkgPSAw
eDA7CisgICAgc3RhdGljIGNvbnN0ZXhwciB1aW50OF90IFR5cGVJbnQzMiA9IDB4MTsKKyAgICBz
dGF0aWMgY29uc3RleHByIHVpbnQ4X3QgVHlwZU51bWJlciA9IDB4MDI7CisgICAgc3RhdGljIGNv
bnN0ZXhwciB1aW50OF90IFR5cGVOb25OdW1iZXIgPSAweDA0OwogCi0gICAgc3RhdGljIGNvbnN0
IHVpbnQzMl90IG51bUJpdHNOZWVkZWQgPSAzOworICAgIHN0YXRpYyBjb25zdGV4cHIgdWludDMy
X3QgbnVtQml0c05lZWRlZCA9IDM7CiAKIHByaXZhdGU6Ci0gICAgdWludDhfdCBtX2JpdHM7Cisg
ICAgdWludDhfdCBtX2JpdHMgeyAwIH07CiB9OwogCiBzdHJ1Y3QgQXJpdGhQcm9maWxlIHsKIHBy
aXZhdGU6Ci0gICAgc3RhdGljIGNvbnN0IHVpbnQzMl90IG51bWJlck9mRmxhZ0JpdHMgPSA1Owot
ICAgIHN0YXRpYyBjb25zdCB1aW50MzJfdCByaHNSZXN1bHRUeXBlU2hpZnQgPSBudW1iZXJPZkZs
YWdCaXRzOwotICAgIHN0YXRpYyBjb25zdCB1aW50MzJfdCBsaHNSZXN1bHRUeXBlU2hpZnQgPSBy
aHNSZXN1bHRUeXBlU2hpZnQgKyBSZXN1bHRUeXBlOjpudW1CaXRzTmVlZGVkOwotICAgIHN0YXRp
YyBjb25zdCB1aW50MzJfdCByaHNPYnNlcnZlZFR5cGVTaGlmdCA9IGxoc1Jlc3VsdFR5cGVTaGlm
dCArIFJlc3VsdFR5cGU6Om51bUJpdHNOZWVkZWQ7Ci0gICAgc3RhdGljIGNvbnN0IHVpbnQzMl90
IGxoc09ic2VydmVkVHlwZVNoaWZ0ID0gcmhzT2JzZXJ2ZWRUeXBlU2hpZnQgKyBPYnNlcnZlZFR5
cGU6Om51bUJpdHNOZWVkZWQ7CisgICAgc3RhdGljIGNvbnN0ZXhwciB1aW50MzJfdCBudW1iZXJP
ZkZsYWdCaXRzID0gNTsKKyAgICBzdGF0aWMgY29uc3RleHByIHVpbnQzMl90IHJoc1Jlc3VsdFR5
cGVTaGlmdCA9IG51bWJlck9mRmxhZ0JpdHM7CisgICAgc3RhdGljIGNvbnN0ZXhwciB1aW50MzJf
dCBsaHNSZXN1bHRUeXBlU2hpZnQgPSByaHNSZXN1bHRUeXBlU2hpZnQgKyBSZXN1bHRUeXBlOjpu
dW1CaXRzTmVlZGVkOworICAgIHN0YXRpYyBjb25zdGV4cHIgdWludDMyX3QgcmhzT2JzZXJ2ZWRU
eXBlU2hpZnQgPSBsaHNSZXN1bHRUeXBlU2hpZnQgKyBSZXN1bHRUeXBlOjpudW1CaXRzTmVlZGVk
OworICAgIHN0YXRpYyBjb25zdGV4cHIgdWludDMyX3QgbGhzT2JzZXJ2ZWRUeXBlU2hpZnQgPSBy
aHNPYnNlcnZlZFR5cGVTaGlmdCArIE9ic2VydmVkVHlwZTo6bnVtQml0c05lZWRlZDsKIAogICAg
IHN0YXRpY19hc3NlcnQoT2JzZXJ2ZWRUeXBlOjpudW1CaXRzTmVlZGVkID09IDMsICJXZSBtYWtl
IGEgaGFyZCBhc3N1bXB0aW9uIGFib3V0IHRoYXQgaGVyZS4iKTsKLSAgICBzdGF0aWMgY29uc3Qg
dWludDMyX3QgY2xlYXJSaHNPYnNlcnZlZFR5cGVCaXRNYXNrID0gc3RhdGljX2Nhc3Q8dWludDMy
X3Q+KH4oKDEgPDwgcmhzT2JzZXJ2ZWRUeXBlU2hpZnQpIHwgKDEgPDwgKHJoc09ic2VydmVkVHlw
ZVNoaWZ0ICsgMSkpIHwgKDEgPDwgKHJoc09ic2VydmVkVHlwZVNoaWZ0ICsgMikpKSk7Ci0gICAg
c3RhdGljIGNvbnN0IHVpbnQzMl90IGNsZWFyTGhzT2JzZXJ2ZWRUeXBlQml0TWFzayA9IHN0YXRp
Y19jYXN0PHVpbnQzMl90Pih+KCgxIDw8IGxoc09ic2VydmVkVHlwZVNoaWZ0KSB8ICgxIDw8IChs
aHNPYnNlcnZlZFR5cGVTaGlmdCArIDEpKSB8ICgxIDw8IChsaHNPYnNlcnZlZFR5cGVTaGlmdCAr
IDIpKSkpOworICAgIHN0YXRpYyBjb25zdGV4cHIgdWludDMyX3QgY2xlYXJSaHNPYnNlcnZlZFR5
cGVCaXRNYXNrID0gc3RhdGljX2Nhc3Q8dWludDMyX3Q+KH4oKDEgPDwgcmhzT2JzZXJ2ZWRUeXBl
U2hpZnQpIHwgKDEgPDwgKHJoc09ic2VydmVkVHlwZVNoaWZ0ICsgMSkpIHwgKDEgPDwgKHJoc09i
c2VydmVkVHlwZVNoaWZ0ICsgMikpKSk7CisgICAgc3RhdGljIGNvbnN0ZXhwciB1aW50MzJfdCBj
bGVhckxoc09ic2VydmVkVHlwZUJpdE1hc2sgPSBzdGF0aWNfY2FzdDx1aW50MzJfdD4ofigoMSA8
PCBsaHNPYnNlcnZlZFR5cGVTaGlmdCkgfCAoMSA8PCAobGhzT2JzZXJ2ZWRUeXBlU2hpZnQgKyAx
KSkgfCAoMSA8PCAobGhzT2JzZXJ2ZWRUeXBlU2hpZnQgKyAyKSkpKTsKKworICAgIHN0YXRpYyBj
b25zdGV4cHIgdWludDMyX3QgcmVzdWx0VHlwZU1hc2sgPSAoMSA8PCBSZXN1bHRUeXBlOjpudW1C
aXRzTmVlZGVkKSAtIDE7CisgICAgc3RhdGljIGNvbnN0ZXhwciB1aW50MzJfdCBvYnNlcnZlZFR5
cGVNYXNrID0gKDEgPDwgT2JzZXJ2ZWRUeXBlOjpudW1CaXRzTmVlZGVkKSAtIDE7CisKKyAgICBl
bnVtIGNsYXNzIENvbnN0YW50VGFnIHsgQ29uc3RhbnQgfTsKIAotICAgIHN0YXRpYyBjb25zdCB1
aW50MzJfdCByZXN1bHRUeXBlTWFzayA9ICgxIDw8IFJlc3VsdFR5cGU6Om51bUJpdHNOZWVkZWQp
IC0gMTsKLSAgICBzdGF0aWMgY29uc3QgdWludDMyX3Qgb2JzZXJ2ZWRUeXBlTWFzayA9ICgxIDw8
IE9ic2VydmVkVHlwZTo6bnVtQml0c05lZWRlZCkgLSAxOwogcHVibGljOgotICAgIHN0YXRpYyBj
b25zdCB1aW50MzJfdCBzcGVjaWFsRmFzdFBhdGhCaXQgPSAxIDw8IChsaHNPYnNlcnZlZFR5cGVT
aGlmdCArIE9ic2VydmVkVHlwZTo6bnVtQml0c05lZWRlZCk7CisgICAgc3RhdGljIGNvbnN0ZXhw
ciB1aW50MzJfdCBzcGVjaWFsRmFzdFBhdGhCaXQgPSAxIDw8IChsaHNPYnNlcnZlZFR5cGVTaGlm
dCArIE9ic2VydmVkVHlwZTo6bnVtQml0c05lZWRlZCk7CiAgICAgc3RhdGljX2Fzc2VydCgobGhz
T2JzZXJ2ZWRUeXBlU2hpZnQgKyBPYnNlcnZlZFR5cGU6Om51bUJpdHNOZWVkZWQpIDw9IChzaXpl
b2YodWludDMyX3QpICogOCkgLSAxLCAiU2hvdWxkIGZpdCBpbiBhIHVpbnQzMl90LiIpOwogICAg
IHN0YXRpY19hc3NlcnQoIShzcGVjaWFsRmFzdFBhdGhCaXQgJiB+Y2xlYXJMaHNPYnNlcnZlZFR5
cGVCaXRNYXNrKSwgIlRoZXNlIGJpdHMgc2hvdWxkIG5vdCBpbnRlcnNlY3QuIik7CiAgICAgc3Rh
dGljX2Fzc2VydChzcGVjaWFsRmFzdFBhdGhCaXQgJiBjbGVhckxoc09ic2VydmVkVHlwZUJpdE1h
c2ssICJUaGVzZSBiaXRzIHNob3VsZCBpbnRlcnNlY3QuIik7CiAgICAgc3RhdGljX2Fzc2VydChz
cGVjaWFsRmFzdFBhdGhCaXQgPiB+Y2xlYXJMaHNPYnNlcnZlZFR5cGVCaXRNYXNrLCAiVGhlc2Ug
Yml0cyBzaG91bGQgbm90IGludGVyc2VjdCBhbmQgc3BlY2lhbEZhc3RQYXRoQml0IHNob3VsZCBi
ZSBhIGhpZ2hlciBiaXQuIik7CiAKICAgICBBcml0aFByb2ZpbGUoUmVzdWx0VHlwZSBhcmcpCisg
ICAgICAgIDogQXJpdGhQcm9maWxlKENvbnN0YW50VGFnOjpDb25zdGFudCwgYXJnKQogICAgIHsK
LSAgICAgICAgbV9iaXRzID0gKGFyZy5iaXRzKCkgPDwgbGhzUmVzdWx0VHlwZVNoaWZ0KTsKICAg
ICAgICAgQVNTRVJUKGxoc1Jlc3VsdFR5cGUoKS5iaXRzKCkgPT0gYXJnLmJpdHMoKSk7CiAgICAg
ICAgIEFTU0VSVChsaHNPYnNlcnZlZFR5cGUoKS5pc0VtcHR5KCkpOwogICAgICAgICBBU1NFUlQo
cmhzT2JzZXJ2ZWRUeXBlKCkuaXNFbXB0eSgpKTsKICAgICB9CiAKICAgICBBcml0aFByb2ZpbGUo
UmVzdWx0VHlwZSBsaHMsIFJlc3VsdFR5cGUgcmhzKQorICAgICAgICA6IEFyaXRoUHJvZmlsZShD
b25zdGFudFRhZzo6Q29uc3RhbnQsIGxocywgcmhzKQogICAgIHsKLSAgICAgICAgbV9iaXRzID0g
KGxocy5iaXRzKCkgPDwgbGhzUmVzdWx0VHlwZVNoaWZ0KSB8IChyaHMuYml0cygpIDw8IHJoc1Jl
c3VsdFR5cGVTaGlmdCk7CiAgICAgICAgIEFTU0VSVChsaHNSZXN1bHRUeXBlKCkuYml0cygpID09
IGxocy5iaXRzKCkgJiYgcmhzUmVzdWx0VHlwZSgpLmJpdHMoKSA9PSByaHMuYml0cygpKTsKICAg
ICAgICAgQVNTRVJUKGxoc09ic2VydmVkVHlwZSgpLmlzRW1wdHkoKSk7CiAgICAgICAgIEFTU0VS
VChyaHNPYnNlcnZlZFR5cGUoKS5pc0VtcHR5KCkpOwogICAgIH0KICAgICBBcml0aFByb2ZpbGUo
KSA9IGRlZmF1bHQ7CiAKLSAgICBzdGF0aWMgQXJpdGhQcm9maWxlIGZyb21JbnQodWludDMyX3Qg
Yml0cykKKyAgICBzdGF0aWMgY29uc3RleHByIEFyaXRoUHJvZmlsZSBmcm9tSW50KHVpbnQzMl90
IGJpdHMpCiAgICAgewotICAgICAgICBBcml0aFByb2ZpbGUgcmVzdWx0OwotICAgICAgICByZXN1
bHQubV9iaXRzID0gYml0czsKLSAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICAgICAgcmV0dXJu
IEFyaXRoUHJvZmlsZSB7IENvbnN0YW50VGFnOjpDb25zdGFudCwgYml0cyB9OworICAgIH0KKwor
ICAgIHN0YXRpYyBjb25zdGV4cHIgQXJpdGhQcm9maWxlIG9ic2VydmVkVW5hcnlJbnQoKQorICAg
IHsKKyAgICAgICAgY29uc3RleHByIE9ic2VydmVkVHlwZSBvYnNlcnZlZEludDMyIHsgT2JzZXJ2
ZWRUeXBlKCkud2l0aEludDMyKCkgfTsKKyAgICAgICAgY29uc3RleHByIHVpbnQzMl90IGJpdHMg
PSBvYnNlcnZlZEludDMyLmJpdHMoKSA8PCBsaHNPYnNlcnZlZFR5cGVTaGlmdDsKKyAgICAgICAg
c3RhdGljX2Fzc2VydChiaXRzID09IDB4NDAwMDAwLCAiIik7CisgICAgICAgIHJldHVybiBmcm9t
SW50KGJpdHMpOworICAgIH0KKyAgICBzdGF0aWMgY29uc3RleHByIEFyaXRoUHJvZmlsZSBvYnNl
cnZlZFVuYXJ5TnVtYmVyKCkKKyAgICB7CisgICAgICAgIGNvbnN0ZXhwciBPYnNlcnZlZFR5cGUg
b2JzZXJ2ZWROdW1iZXIgeyBPYnNlcnZlZFR5cGUoKS53aXRoTnVtYmVyKCkgfTsKKyAgICAgICAg
Y29uc3RleHByIHVpbnQzMl90IGJpdHMgPSBvYnNlcnZlZE51bWJlci5iaXRzKCkgPDwgbGhzT2Jz
ZXJ2ZWRUeXBlU2hpZnQ7CisgICAgICAgIHN0YXRpY19hc3NlcnQoYml0cyA9PSAweDgwMDAwMCwg
IiIpOworICAgICAgICByZXR1cm4gZnJvbUludChiaXRzKTsKKyAgICB9CisgICAgc3RhdGljIGNv
bnN0ZXhwciBBcml0aFByb2ZpbGUgb2JzZXJ2ZWRCaW5hcnlJbnRJbnQoKQorICAgIHsKKyAgICAg
ICAgY29uc3RleHByIE9ic2VydmVkVHlwZSBvYnNlcnZlZEludDMyIHsgT2JzZXJ2ZWRUeXBlKCku
d2l0aEludDMyKCkgfTsKKyAgICAgICAgY29uc3RleHByIHVpbnQzMl90IGJpdHMgPSAob2JzZXJ2
ZWRJbnQzMi5iaXRzKCkgPDwgbGhzT2JzZXJ2ZWRUeXBlU2hpZnQpIHwgKG9ic2VydmVkSW50MzIu
Yml0cygpIDw8IHJoc09ic2VydmVkVHlwZVNoaWZ0KTsKKyAgICAgICAgc3RhdGljX2Fzc2VydChi
aXRzID09IDB4NDgwMDAwLCAiIik7CisgICAgICAgIHJldHVybiBmcm9tSW50KGJpdHMpOworICAg
IH0KKyAgICBzdGF0aWMgY29uc3RleHByIEFyaXRoUHJvZmlsZSBvYnNlcnZlZEJpbmFyeU51bWJl
ckludCgpCisgICAgeworICAgICAgICBjb25zdGV4cHIgT2JzZXJ2ZWRUeXBlIG9ic2VydmVkTnVt
YmVyIHsgT2JzZXJ2ZWRUeXBlKCkud2l0aE51bWJlcigpIH07CisgICAgICAgIGNvbnN0ZXhwciBP
YnNlcnZlZFR5cGUgb2JzZXJ2ZWRJbnQzMiB7IE9ic2VydmVkVHlwZSgpLndpdGhJbnQzMigpIH07
CisgICAgICAgIGNvbnN0ZXhwciB1aW50MzJfdCBiaXRzID0gKG9ic2VydmVkTnVtYmVyLmJpdHMo
KSA8PCBsaHNPYnNlcnZlZFR5cGVTaGlmdCkgfCAob2JzZXJ2ZWRJbnQzMi5iaXRzKCkgPDwgcmhz
T2JzZXJ2ZWRUeXBlU2hpZnQpOworICAgICAgICBzdGF0aWNfYXNzZXJ0KGJpdHMgPT0gMHg4ODAw
MDAsICIiKTsKKyAgICAgICAgcmV0dXJuIGZyb21JbnQoYml0cyk7CisgICAgfQorICAgIHN0YXRp
YyBjb25zdGV4cHIgQXJpdGhQcm9maWxlIG9ic2VydmVkQmluYXJ5SW50TnVtYmVyKCkKKyAgICB7
CisgICAgICAgIGNvbnN0ZXhwciBPYnNlcnZlZFR5cGUgb2JzZXJ2ZWROdW1iZXIgeyBPYnNlcnZl
ZFR5cGUoKS53aXRoTnVtYmVyKCkgfTsKKyAgICAgICAgY29uc3RleHByIE9ic2VydmVkVHlwZSBv
YnNlcnZlZEludDMyIHsgT2JzZXJ2ZWRUeXBlKCkud2l0aEludDMyKCkgfTsKKyAgICAgICAgY29u
c3RleHByIHVpbnQzMl90IGJpdHMgPSAob2JzZXJ2ZWRJbnQzMi5iaXRzKCkgPDwgbGhzT2JzZXJ2
ZWRUeXBlU2hpZnQpIHwgKG9ic2VydmVkTnVtYmVyLmJpdHMoKSA8PCByaHNPYnNlcnZlZFR5cGVT
aGlmdCk7CisgICAgICAgIHN0YXRpY19hc3NlcnQoYml0cyA9PSAweDUwMDAwMCwgIiIpOworICAg
ICAgICByZXR1cm4gZnJvbUludChiaXRzKTsKKyAgICB9CisgICAgc3RhdGljIGNvbnN0ZXhwciBB
cml0aFByb2ZpbGUgb2JzZXJ2ZWRCaW5hcnlOdW1iZXJOdW1iZXIoKQorICAgIHsKKyAgICAgICAg
Y29uc3RleHByIE9ic2VydmVkVHlwZSBvYnNlcnZlZE51bWJlciB7IE9ic2VydmVkVHlwZSgpLndp
dGhOdW1iZXIoKSB9OworICAgICAgICBjb25zdGV4cHIgdWludDMyX3QgYml0cyA9IChvYnNlcnZl
ZE51bWJlci5iaXRzKCkgPDwgbGhzT2JzZXJ2ZWRUeXBlU2hpZnQpIHwgKG9ic2VydmVkTnVtYmVy
LmJpdHMoKSA8PCByaHNPYnNlcnZlZFR5cGVTaGlmdCk7CisgICAgICAgIHN0YXRpY19hc3NlcnQo
Yml0cyA9PSAweDkwMDAwMCwgIiIpOworICAgICAgICByZXR1cm4gZnJvbUludChiaXRzKTsKICAg
ICB9CiAKICAgICBlbnVtIE9ic2VydmVkUmVzdWx0cyB7CkBAIC0xMjIsOCArMTY4LDggQEAgc3Ry
dWN0IEFyaXRoUHJvZmlsZSB7CiAgICAgUmVzdWx0VHlwZSBsaHNSZXN1bHRUeXBlKCkgY29uc3Qg
eyByZXR1cm4gUmVzdWx0VHlwZSgobV9iaXRzID4+IGxoc1Jlc3VsdFR5cGVTaGlmdCkgJiByZXN1
bHRUeXBlTWFzayk7IH0KICAgICBSZXN1bHRUeXBlIHJoc1Jlc3VsdFR5cGUoKSBjb25zdCB7IHJl
dHVybiBSZXN1bHRUeXBlKChtX2JpdHMgPj4gcmhzUmVzdWx0VHlwZVNoaWZ0KSAmIHJlc3VsdFR5
cGVNYXNrKTsgfQogCi0gICAgT2JzZXJ2ZWRUeXBlIGxoc09ic2VydmVkVHlwZSgpIGNvbnN0IHsg
cmV0dXJuIE9ic2VydmVkVHlwZSgobV9iaXRzID4+IGxoc09ic2VydmVkVHlwZVNoaWZ0KSAmIG9i
c2VydmVkVHlwZU1hc2spOyB9Ci0gICAgT2JzZXJ2ZWRUeXBlIHJoc09ic2VydmVkVHlwZSgpIGNv
bnN0IHsgcmV0dXJuIE9ic2VydmVkVHlwZSgobV9iaXRzID4+IHJoc09ic2VydmVkVHlwZVNoaWZ0
KSAmIG9ic2VydmVkVHlwZU1hc2spOyB9CisgICAgY29uc3RleHByIE9ic2VydmVkVHlwZSBsaHNP
YnNlcnZlZFR5cGUoKSBjb25zdCB7IHJldHVybiBPYnNlcnZlZFR5cGUoKG1fYml0cyA+PiBsaHNP
YnNlcnZlZFR5cGVTaGlmdCkgJiBvYnNlcnZlZFR5cGVNYXNrKTsgfQorICAgIGNvbnN0ZXhwciBP
YnNlcnZlZFR5cGUgcmhzT2JzZXJ2ZWRUeXBlKCkgY29uc3QgeyByZXR1cm4gT2JzZXJ2ZWRUeXBl
KChtX2JpdHMgPj4gcmhzT2JzZXJ2ZWRUeXBlU2hpZnQpICYgb2JzZXJ2ZWRUeXBlTWFzayk7IH0K
ICAgICB2b2lkIHNldExoc09ic2VydmVkVHlwZShPYnNlcnZlZFR5cGUgdHlwZSkKICAgICB7CiAg
ICAgICAgIHVpbnQzMl90IGJpdHMgPSBtX2JpdHM7CkBAIC0yMjIsOSArMjY4LDI0IEBAIHN0cnVj
dCBBcml0aFByb2ZpbGUgewogICAgIGJvb2wgc2hvdWxkRW1pdFNldE5vbk51bWJlcigpIGNvbnN0
OwogI2VuZGlmIC8vIEVOQUJMRShKSVQpCiAKLSAgICB1aW50MzJfdCBiaXRzKCkgY29uc3QgeyBy
ZXR1cm4gbV9iaXRzOyB9CisgICAgY29uc3RleHByIHVpbnQzMl90IGJpdHMoKSBjb25zdCB7IHJl
dHVybiBtX2JpdHM7IH0KIAogcHJpdmF0ZToKKyAgICBjb25zdGV4cHIgZXhwbGljaXQgQXJpdGhQ
cm9maWxlKENvbnN0YW50VGFnLCB1aW50MzJfdCBiaXRzKQorICAgICAgICA6IG1fYml0cyhiaXRz
KQorICAgIHsKKyAgICB9CisKKyAgICBjb25zdGV4cHIgQXJpdGhQcm9maWxlKENvbnN0YW50VGFn
LCBSZXN1bHRUeXBlIGFyZykKKyAgICAgICAgOiBtX2JpdHMoYXJnLmJpdHMoKSA8PCBsaHNSZXN1
bHRUeXBlU2hpZnQpCisgICAgeworICAgIH0KKworICAgIGNvbnN0ZXhwciBBcml0aFByb2ZpbGUo
Q29uc3RhbnRUYWcsIFJlc3VsdFR5cGUgbGhzLCBSZXN1bHRUeXBlIHJocykKKyAgICAgICAgOiBt
X2JpdHMoKGxocy5iaXRzKCkgPDwgbGhzUmVzdWx0VHlwZVNoaWZ0KSB8IChyaHMuYml0cygpIDw8
IHJoc1Jlc3VsdFR5cGVTaGlmdCkpCisgICAgeworICAgIH0KKwogICAgIGJvb2wgaGFzQml0cyhp
bnQgbWFzaykgY29uc3QgeyByZXR1cm4gbV9iaXRzICYgbWFzazsgfQogICAgIHZvaWQgc2V0Qml0
KGludCBtYXNrKSB7IG1fYml0cyB8PSBtYXNrOyB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9sbGludC9MTEludERhdGEuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2xs
aW50L0xMSW50RGF0YS5jcHAKaW5kZXggZDA2MWI2M2RkNGRmNzdiZTZiZjA5YTg5MDliYTI2YWY0
MDI5Y2VhNC4uYTk4MWY0YWVmNTYxYWNlYjk5OTk2ZWU5NzcyOTRjZDZlYjhhNWRiNSAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xMSW50RGF0YS5jcHAKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xMSW50RGF0YS5jcHAKQEAgLTk4LDExICs5OCwxMSBA
QCB2b2lkIERhdGE6OnBlcmZvcm1Bc3NlcnRpb25zKFZNJiB2bSkKICAgICBBU1NFUlQoQ2FsbEZy
YW1lOjphcmd1bWVudE9mZnNldEluY2x1ZGluZ1RoaXMoMCkgPT0gQ2FsbEZyYW1lU2xvdDo6dGhp
c0FyZ3VtZW50KTsKIAogI2lmIENQVShCSUdfRU5ESUFOKQotICAgIEFTU0VSVChPQkpFQ1RfT0ZG
U0VUT0YoRW5jb2RlZFZhbHVlRGVzY3JpcHRvciwgYXNCaXRzLnRhZykgPT0gMCk7Ci0gICAgQVNT
RVJUKE9CSkVDVF9PRkZTRVRPRihFbmNvZGVkVmFsdWVEZXNjcmlwdG9yLCBhc0JpdHMucGF5bG9h
ZCkgPT0gNCk7CisgICAgU1RBVElDX0FTU0VSVChUYWdPZmZzZXQgPT0gMCk7CisgICAgU1RBVElD
X0FTU0VSVChQYXlsb2FkT2Zmc2V0ID09IDQpOwogI2Vsc2UKLSAgICBBU1NFUlQoT0JKRUNUX09G
RlNFVE9GKEVuY29kZWRWYWx1ZURlc2NyaXB0b3IsIGFzQml0cy50YWcpID09IDQpOwotICAgIEFT
U0VSVChPQkpFQ1RfT0ZGU0VUT0YoRW5jb2RlZFZhbHVlRGVzY3JpcHRvciwgYXNCaXRzLnBheWxv
YWQpID09IDApOworICAgIFNUQVRJQ19BU1NFUlQoVGFnT2Zmc2V0ID09IDQpOworICAgIFNUQVRJ
Q19BU1NFUlQoUGF5bG9hZE9mZnNldCA9PSAwKTsKICNlbmRpZgogI2lmIFVTRShKU1ZBTFVFMzJf
NjQpCiAgICAgU1RBVElDX0FTU0VSVChKU1ZhbHVlOjpJbnQzMlRhZyA9PSBzdGF0aWNfY2FzdDx1
bnNpZ25lZD4oLTEpKTsKQEAgLTEyMywxNSArMTIzLDYgQEAgdm9pZCBEYXRhOjpwZXJmb3JtQXNz
ZXJ0aW9ucyhWTSYgdm0pCiAgICAgU1RBVElDX0FTU0VSVChWYWx1ZVVuZGVmaW5lZCA9PSAoVGFn
Qml0VHlwZU90aGVyIHwgVGFnQml0VW5kZWZpbmVkKSk7CiAgICAgU1RBVElDX0FTU0VSVChWYWx1
ZU51bGwgPT0gVGFnQml0VHlwZU90aGVyKTsKICNlbmRpZgotI2lmIChDUFUoWDg2XzY0KSAmJiAh
T1MoV0lORE9XUykpIHx8IENQVShBUk02NCkgfHwgIUVOQUJMRShBU1NFTUJMRVIpCi0gICAgU1RB
VElDX0FTU0VSVCghbWF4RnJhbWVFeHRlbnRGb3JTbG93UGF0aENhbGwpOwotI2VsaWYgQ1BVKEFS
TSkKLSAgICBTVEFUSUNfQVNTRVJUKG1heEZyYW1lRXh0ZW50Rm9yU2xvd1BhdGhDYWxsID09IDI0
KTsKLSNlbGlmIENQVShYODYpIHx8IENQVShNSVBTKQotICAgIFNUQVRJQ19BU1NFUlQobWF4RnJh
bWVFeHRlbnRGb3JTbG93UGF0aENhbGwgPT0gNDApOwotI2VsaWYgQ1BVKFg4Nl82NCkgJiYgT1Mo
V0lORE9XUykKLSAgICBTVEFUSUNfQVNTRVJUKG1heEZyYW1lRXh0ZW50Rm9yU2xvd1BhdGhDYWxs
ID09IDY0KTsKLSNlbmRpZgogCiAjaWYgRU5BQkxFKENfTE9PUCkgfHwgVVNFKEpTVkFMVUUzMl82
NCkKICAgICBBU1NFUlQoIUNvZGVCbG9jazo6bGxpbnRCYXNlbGluZUNhbGxlZVNhdmVTcGFjZUFz
VmlydHVhbFJlZ2lzdGVycygpKTsKQEAgLTE1MSw0NyArMTQyLDM3IEBAIHZvaWQgRGF0YTo6cGVy
Zm9ybUFzc2VydGlvbnMoVk0mIHZtKQogICAgIEFTU0VSVChiaXR3aXNlX2Nhc3Q8aW50Kio+KCZ0
ZXN0VmVjdG9yKVswXSA9PSB0ZXN0VmVjdG9yLmJlZ2luKCkpOwogI2VuZGlmCiAKLSAgICBBU1NF
UlQoU3RyaW5nSW1wbDo6c19oYXNoRmxhZzhCaXRCdWZmZXIgPT0gOCk7Ci0KICAgICB7Ci0gICAg
ICAgIHVpbnQzMl90IGJpdHMgPSAweDQ4MDAwMDsKLSAgICAgICAgVU5VU0VEX1BBUkFNKGJpdHMp
OwogICAgICAgICBBcml0aFByb2ZpbGUgYXJpdGhQcm9maWxlOwogICAgICAgICBhcml0aFByb2Zp
bGUubGhzU2F3SW50MzIoKTsKICAgICAgICAgYXJpdGhQcm9maWxlLnJoc1Nhd0ludDMyKCk7Ci0g
ICAgICAgIEFTU0VSVChhcml0aFByb2ZpbGUuYml0cygpID09IGJpdHMpOwotICAgICAgICBBU1NF
UlQoQXJpdGhQcm9maWxlOjpmcm9tSW50KGJpdHMpLmxoc09ic2VydmVkVHlwZSgpLmlzT25seUlu
dDMyKCkpOwotICAgICAgICBBU1NFUlQoQXJpdGhQcm9maWxlOjpmcm9tSW50KGJpdHMpLnJoc09i
c2VydmVkVHlwZSgpLmlzT25seUludDMyKCkpOworICAgICAgICBBU1NFUlQoYXJpdGhQcm9maWxl
LmJpdHMoKSA9PSBBcml0aFByb2ZpbGU6Om9ic2VydmVkQmluYXJ5SW50SW50KCkuYml0cygpKTsK
KyAgICAgICAgU1RBVElDX0FTU0VSVChBcml0aFByb2ZpbGU6Om9ic2VydmVkQmluYXJ5SW50SW50
KCkubGhzT2JzZXJ2ZWRUeXBlKCkuaXNPbmx5SW50MzIoKSk7CisgICAgICAgIFNUQVRJQ19BU1NF
UlQoQXJpdGhQcm9maWxlOjpvYnNlcnZlZEJpbmFyeUludEludCgpLnJoc09ic2VydmVkVHlwZSgp
LmlzT25seUludDMyKCkpOwogICAgIH0KICAgICB7Ci0gICAgICAgIHVpbnQzMl90IGJpdHMgPSAw
eDg4MDAwMDsKLSAgICAgICAgVU5VU0VEX1BBUkFNKGJpdHMpOwogICAgICAgICBBcml0aFByb2Zp
bGUgYXJpdGhQcm9maWxlOwogICAgICAgICBhcml0aFByb2ZpbGUubGhzU2F3TnVtYmVyKCk7CiAg
ICAgICAgIGFyaXRoUHJvZmlsZS5yaHNTYXdJbnQzMigpOwotICAgICAgICBBU1NFUlQoYXJpdGhQ
cm9maWxlLmJpdHMoKSA9PSBiaXRzKTsKLSAgICAgICAgQVNTRVJUKEFyaXRoUHJvZmlsZTo6ZnJv
bUludChiaXRzKS5saHNPYnNlcnZlZFR5cGUoKS5pc09ubHlOdW1iZXIoKSk7Ci0gICAgICAgIEFT
U0VSVChBcml0aFByb2ZpbGU6OmZyb21JbnQoYml0cykucmhzT2JzZXJ2ZWRUeXBlKCkuaXNPbmx5
SW50MzIoKSk7CisgICAgICAgIEFTU0VSVChhcml0aFByb2ZpbGUuYml0cygpID09IEFyaXRoUHJv
ZmlsZTo6b2JzZXJ2ZWRCaW5hcnlOdW1iZXJJbnQoKS5iaXRzKCkpOworICAgICAgICBTVEFUSUNf
QVNTRVJUKEFyaXRoUHJvZmlsZTo6b2JzZXJ2ZWRCaW5hcnlOdW1iZXJJbnQoKS5saHNPYnNlcnZl
ZFR5cGUoKS5pc09ubHlOdW1iZXIoKSk7CisgICAgICAgIFNUQVRJQ19BU1NFUlQoQXJpdGhQcm9m
aWxlOjpvYnNlcnZlZEJpbmFyeU51bWJlckludCgpLnJoc09ic2VydmVkVHlwZSgpLmlzT25seUlu
dDMyKCkpOwogICAgIH0KICAgICB7Ci0gICAgICAgIHVpbnQzMl90IGJpdHMgPSAweDkwMDAwMDsK
LSAgICAgICAgVU5VU0VEX1BBUkFNKGJpdHMpOwogICAgICAgICBBcml0aFByb2ZpbGUgYXJpdGhQ
cm9maWxlOwogICAgICAgICBhcml0aFByb2ZpbGUubGhzU2F3TnVtYmVyKCk7CiAgICAgICAgIGFy
aXRoUHJvZmlsZS5yaHNTYXdOdW1iZXIoKTsKLSAgICAgICAgQVNTRVJUKGFyaXRoUHJvZmlsZS5i
aXRzKCkgPT0gYml0cyk7Ci0gICAgICAgIEFTU0VSVChBcml0aFByb2ZpbGU6OmZyb21JbnQoYml0
cykubGhzT2JzZXJ2ZWRUeXBlKCkuaXNPbmx5TnVtYmVyKCkpOwotICAgICAgICBBU1NFUlQoQXJp
dGhQcm9maWxlOjpmcm9tSW50KGJpdHMpLnJoc09ic2VydmVkVHlwZSgpLmlzT25seU51bWJlcigp
KTsKKyAgICAgICAgQVNTRVJUKGFyaXRoUHJvZmlsZS5iaXRzKCkgPT0gQXJpdGhQcm9maWxlOjpv
YnNlcnZlZEJpbmFyeU51bWJlck51bWJlcigpLmJpdHMoKSk7CisgICAgICAgIFNUQVRJQ19BU1NF
UlQoQXJpdGhQcm9maWxlOjpvYnNlcnZlZEJpbmFyeU51bWJlck51bWJlcigpLmxoc09ic2VydmVk
VHlwZSgpLmlzT25seU51bWJlcigpKTsKKyAgICAgICAgU1RBVElDX0FTU0VSVChBcml0aFByb2Zp
bGU6Om9ic2VydmVkQmluYXJ5TnVtYmVyTnVtYmVyKCkucmhzT2JzZXJ2ZWRUeXBlKCkuaXNPbmx5
TnVtYmVyKCkpOwogICAgIH0KICAgICB7Ci0gICAgICAgIHVpbnQzMl90IGJpdHMgPSAweDUwMDAw
MDsKLSAgICAgICAgVU5VU0VEX1BBUkFNKGJpdHMpOwogICAgICAgICBBcml0aFByb2ZpbGUgYXJp
dGhQcm9maWxlOwogICAgICAgICBhcml0aFByb2ZpbGUubGhzU2F3SW50MzIoKTsKICAgICAgICAg
YXJpdGhQcm9maWxlLnJoc1Nhd051bWJlcigpOwotICAgICAgICBBU1NFUlQoYXJpdGhQcm9maWxl
LmJpdHMoKSA9PSBiaXRzKTsKLSAgICAgICAgQVNTRVJUKEFyaXRoUHJvZmlsZTo6ZnJvbUludChi
aXRzKS5saHNPYnNlcnZlZFR5cGUoKS5pc09ubHlJbnQzMigpKTsKLSAgICAgICAgQVNTRVJUKEFy
aXRoUHJvZmlsZTo6ZnJvbUludChiaXRzKS5yaHNPYnNlcnZlZFR5cGUoKS5pc09ubHlOdW1iZXIo
KSk7CisgICAgICAgIEFTU0VSVChhcml0aFByb2ZpbGUuYml0cygpID09IEFyaXRoUHJvZmlsZTo6
b2JzZXJ2ZWRCaW5hcnlJbnROdW1iZXIoKS5iaXRzKCkpOworICAgICAgICBTVEFUSUNfQVNTRVJU
KEFyaXRoUHJvZmlsZTo6b2JzZXJ2ZWRCaW5hcnlJbnROdW1iZXIoKS5saHNPYnNlcnZlZFR5cGUo
KS5pc09ubHlJbnQzMigpKTsKKyAgICAgICAgU1RBVElDX0FTU0VSVChBcml0aFByb2ZpbGU6Om9i
c2VydmVkQmluYXJ5SW50TnVtYmVyKCkucmhzT2JzZXJ2ZWRUeXBlKCkuaXNPbmx5TnVtYmVyKCkp
OwogICAgIH0KIH0KIElHTk9SRV9DTEFOR19XQVJOSU5HU19FTkQKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9sbGludC9MTEludE9mZnNldHNFeHRyYWN0b3IuY3BwIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL2xsaW50L0xMSW50T2Zmc2V0c0V4dHJhY3Rvci5jcHAKaW5kZXggNjE3
NGI5NGZlOGUzMGM3NDk4OWU0MWY0MmI4ZDkxMDczZDliMzg3MC4uNGZkOTA1MDM5Zjg3OWVhNDU4
OGIxZGI1NGJiYWFlNTY2ODQ5ODFjNiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2xsaW50L0xMSW50T2Zmc2V0c0V4dHJhY3Rvci5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL2xsaW50L0xMSW50T2Zmc2V0c0V4dHJhY3Rvci5jcHAKQEAgLTI1LDYgKzI1LDcgQEAKIAog
I2luY2x1ZGUgImNvbmZpZy5oIgogCisjaW5jbHVkZSAiQXJpdGhQcm9maWxlLmgiCiAjaW5jbHVk
ZSAiQXJyYXlQcm9maWxlLmgiCiAjaW5jbHVkZSAiQnl0ZWNvZGVTdHJ1Y3RzLmgiCiAjaW5jbHVk
ZSAiQ29kZUJsb2NrLmgiCkBAIC01MCw2ICs1MSw3IEBACiAjaW5jbHVkZSAiSnVtcFRhYmxlLmgi
CiAjaW5jbHVkZSAiTExJbnRPZmZsaW5lQXNtQ29uZmlnLmgiCiAjaW5jbHVkZSAiTWFya2VkU3Bh
Y2UuaCIKKyNpbmNsdWRlICJNYXhGcmFtZUV4dGVudEZvclNsb3dQYXRoQ2FsbC5oIgogI2luY2x1
ZGUgIk5hdGl2ZUV4ZWN1dGFibGUuaCIKICNpbmNsdWRlICJQcm90b0NhbGxGcmFtZS5oIgogI2lu
Y2x1ZGUgIlNoYWRvd0NoaWNrZW4uaCIKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9sbGludC9Mb3dMZXZlbEludGVycHJldGVyLmFzbSBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9s
bGludC9Mb3dMZXZlbEludGVycHJldGVyLmFzbQppbmRleCBlOGFhMzAwNGIxOTNmOGQ0NGNmOTQx
NjhlYjYyMjZhNTA2NDI1ZWMzLi42NTA3ZWI4ZGYwOGI4MjU1MjY5MDcyZGY5M2E5Y2Q0MDQ2NDQ1
M2U2IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTG93TGV2ZWxJbnRl
cnByZXRlci5hc20KKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xvd0xldmVsSW50
ZXJwcmV0ZXIuYXNtCkBAIC0xNTQsMjIgKzE1NCwyMSBAQCBlbmQKICMgVGhlc2UgZGVjbGFyYXRp
b25zIG11c3QgbWF0Y2ggaW50ZXJwcmV0ZXIvSlNTdGFjay5oLgogCiBjb25zdCBQdHJTaXplID0g
Y29uc3RleHByIChzaXplb2Yodm9pZCopKQorY29uc3QgTWFjaGluZVJlZ2lzdGVyU2l6ZSA9IGNv
bnN0ZXhwciAoc2l6ZW9mKENQVVJlZ2lzdGVyKSkKK2NvbnN0IFNsb3RTaXplID0gY29uc3RleHBy
IChzaXplb2YoUmVnaXN0ZXIpKQogCiBpZiBKU1ZBTFVFNjQKICAgICBjb25zdCBDYWxsRnJhbWVI
ZWFkZXJTbG90cyA9IDUKLSAgICBjb25zdCBNYWNoaW5lUmVnaXN0ZXJTaXplID0gOAogZWxzZQog
ICAgIGNvbnN0IENhbGxGcmFtZUhlYWRlclNsb3RzID0gNAogICAgIGNvbnN0IENhbGxGcmFtZUFs
aWduU2xvdHMgPSAxCi0gICAgY29uc3QgTWFjaGluZVJlZ2lzdGVyU2l6ZSA9IDQKIGVuZAotY29u
c3QgU2xvdFNpemUgPSA4CiAKIGNvbnN0IEpTTGV4aWNhbEVudmlyb25tZW50X3ZhcmlhYmxlcyA9
IChzaXplb2YgSlNMZXhpY2FsRW52aXJvbm1lbnQgKyBTbG90U2l6ZSAtIDEpICYgfihTbG90U2l6
ZSAtIDEpCiBjb25zdCBEaXJlY3RBcmd1bWVudHNfc3RvcmFnZSA9IChzaXplb2YgRGlyZWN0QXJn
dW1lbnRzICsgU2xvdFNpemUgLSAxKSAmIH4oU2xvdFNpemUgLSAxKQogCi1jb25zdCBTdGFja0Fs
aWdubWVudCA9IDE2Ci1jb25zdCBTdGFja0FsaWdubWVudFNsb3RzID0gMgorY29uc3QgU3RhY2tB
bGlnbm1lbnQgPSBjb25zdGV4cHIgKHN0YWNrQWxpZ25tZW50Qnl0ZXMoKSkKK2NvbnN0IFN0YWNr
QWxpZ25tZW50U2xvdHMgPSBjb25zdGV4cHIgKHN0YWNrQWxpZ25tZW50UmVnaXN0ZXJzKCkpCiBj
b25zdCBTdGFja0FsaWdubWVudE1hc2sgPSBTdGFja0FsaWdubWVudCAtIDEKIAogY29uc3QgQ2Fs
bGVyRnJhbWVBbmRQQ1NpemUgPSBjb25zdGV4cHIgKHNpemVvZihDYWxsZXJGcmFtZUFuZFBDKSkK
QEAgLTE4NSwyNSArMTg0LDI1IEBAIGNvbnN0IENhbGxGcmFtZUhlYWRlclNpemUgPSBUaGlzQXJn
dW1lbnRPZmZzZXQKIAogIyBTb21lIHZhbHVlIHJlcHJlc2VudGF0aW9uIGNvbnN0YW50cy4KIGlm
IEpTVkFMVUU2NAotICAgIGNvbnN0IFRhZ0JpdFR5cGVPdGhlciA9IDB4MgotICAgIGNvbnN0IFRh
Z0JpdEJvb2wgICAgICA9IDB4NAotICAgIGNvbnN0IFRhZ0JpdFVuZGVmaW5lZCA9IDB4OAotICAg
IGNvbnN0IFZhbHVlRW1wdHkgICAgICA9IDB4MAotICAgIGNvbnN0IFZhbHVlRmFsc2UgICAgICA9
IFRhZ0JpdFR5cGVPdGhlciB8IFRhZ0JpdEJvb2wKLSAgICBjb25zdCBWYWx1ZVRydWUgICAgICAg
PSBUYWdCaXRUeXBlT3RoZXIgfCBUYWdCaXRCb29sIHwgMQotICAgIGNvbnN0IFZhbHVlVW5kZWZp
bmVkICA9IFRhZ0JpdFR5cGVPdGhlciB8IFRhZ0JpdFVuZGVmaW5lZAotICAgIGNvbnN0IFZhbHVl
TnVsbCAgICAgICA9IFRhZ0JpdFR5cGVPdGhlcgotICAgIGNvbnN0IFRhZ1R5cGVOdW1iZXIgICA9
IDB4ZmZmZjAwMDAwMDAwMDAwMAotICAgIGNvbnN0IFRhZ01hc2sgICAgICAgICA9IFRhZ1R5cGVO
dW1iZXIgfCBUYWdCaXRUeXBlT3RoZXIKKyAgICBjb25zdCBUYWdCaXRUeXBlT3RoZXIgPSBjb25z
dGV4cHIgVGFnQml0VHlwZU90aGVyCisgICAgY29uc3QgVGFnQml0Qm9vbCAgICAgID0gY29uc3Rl
eHByIFRhZ0JpdEJvb2wKKyAgICBjb25zdCBUYWdCaXRVbmRlZmluZWQgPSBjb25zdGV4cHIgVGFn
Qml0VW5kZWZpbmVkCisgICAgY29uc3QgVmFsdWVFbXB0eSAgICAgID0gY29uc3RleHByIFZhbHVl
RW1wdHkKKyAgICBjb25zdCBWYWx1ZUZhbHNlICAgICAgPSBjb25zdGV4cHIgVmFsdWVGYWxzZQor
ICAgIGNvbnN0IFZhbHVlVHJ1ZSAgICAgICA9IGNvbnN0ZXhwciBWYWx1ZVRydWUKKyAgICBjb25z
dCBWYWx1ZVVuZGVmaW5lZCAgPSBjb25zdGV4cHIgVmFsdWVVbmRlZmluZWQKKyAgICBjb25zdCBW
YWx1ZU51bGwgICAgICAgPSBjb25zdGV4cHIgVmFsdWVOdWxsCisgICAgY29uc3QgVGFnVHlwZU51
bWJlciAgID0gY29uc3RleHByIFRhZ1R5cGVOdW1iZXIKKyAgICBjb25zdCBUYWdNYXNrICAgICAg
ICAgPSBjb25zdGV4cHIgVGFnTWFzawogZWxzZQotICAgIGNvbnN0IEludDMyVGFnID0gLTEKLSAg
ICBjb25zdCBCb29sZWFuVGFnID0gLTIKLSAgICBjb25zdCBOdWxsVGFnID0gLTMKLSAgICBjb25z
dCBVbmRlZmluZWRUYWcgPSAtNAotICAgIGNvbnN0IENlbGxUYWcgPSAtNQotICAgIGNvbnN0IEVt
cHR5VmFsdWVUYWcgPSAtNgotICAgIGNvbnN0IERlbGV0ZWRWYWx1ZVRhZyA9IC03Ci0gICAgY29u
c3QgTG93ZXN0VGFnID0gRGVsZXRlZFZhbHVlVGFnCisgICAgY29uc3QgSW50MzJUYWcgPSBjb25z
dGV4cHIgSlNWYWx1ZTo6SW50MzJUYWcKKyAgICBjb25zdCBCb29sZWFuVGFnID0gY29uc3RleHBy
IEpTVmFsdWU6OkJvb2xlYW5UYWcKKyAgICBjb25zdCBOdWxsVGFnID0gY29uc3RleHByIEpTVmFs
dWU6Ok51bGxUYWcKKyAgICBjb25zdCBVbmRlZmluZWRUYWcgPSBjb25zdGV4cHIgSlNWYWx1ZTo6
VW5kZWZpbmVkVGFnCisgICAgY29uc3QgQ2VsbFRhZyA9IGNvbnN0ZXhwciBKU1ZhbHVlOjpDZWxs
VGFnCisgICAgY29uc3QgRW1wdHlWYWx1ZVRhZyA9IGNvbnN0ZXhwciBKU1ZhbHVlOjpFbXB0eVZh
bHVlVGFnCisgICAgY29uc3QgRGVsZXRlZFZhbHVlVGFnID0gY29uc3RleHByIEpTVmFsdWU6OkRl
bGV0ZWRWYWx1ZVRhZworICAgIGNvbnN0IExvd2VzdFRhZyA9IGNvbnN0ZXhwciBKU1ZhbHVlOjpM
b3dlc3RUYWcKIGVuZAogCiAjIFB1dEJ5SWRGbGFncyBkYXRhCkBAIC0yMjMsMTkgKzIyMiw5IEBA
IGNvbnN0IFB1dEJ5SWRTZWNvbmRhcnlUeXBlT2JqZWN0ID0gY29uc3RleHByIFB1dEJ5SWRTZWNv
bmRhcnlUeXBlT2JqZWN0CiBjb25zdCBQdXRCeUlkU2Vjb25kYXJ5VHlwZU9iamVjdE9yT3RoZXIg
PSBjb25zdGV4cHIgUHV0QnlJZFNlY29uZGFyeVR5cGVPYmplY3RPck90aGVyCiBjb25zdCBQdXRC
eUlkU2Vjb25kYXJ5VHlwZVRvcCA9IGNvbnN0ZXhwciBQdXRCeUlkU2Vjb25kYXJ5VHlwZVRvcAog
Ci1jb25zdCBDYWxsT3BDb2RlU2l6ZSA9IDkKK2NvbnN0IENhbGxPcENvZGVTaXplID0gY29uc3Rl
eHByIG9wX2NhbGxfbGVuZ3RoCiAKLWlmIFg4Nl82NCBvciBBUk02NCBvciBBUk02NEUgb3IgQ19M
T09QCi0gICAgY29uc3QgbWF4RnJhbWVFeHRlbnRGb3JTbG93UGF0aENhbGwgPSAwCi1lbHNpZiBB
Uk0gb3IgQVJNdjdfVFJBRElUSU9OQUwgb3IgQVJNdjcKLSAgICBjb25zdCBtYXhGcmFtZUV4dGVu
dEZvclNsb3dQYXRoQ2FsbCA9IDI0Ci1lbHNpZiBYODYgb3IgWDg2X1dJTgotICAgIGNvbnN0IG1h
eEZyYW1lRXh0ZW50Rm9yU2xvd1BhdGhDYWxsID0gNDAKLWVsc2lmIE1JUFMKLSAgICBjb25zdCBt
YXhGcmFtZUV4dGVudEZvclNsb3dQYXRoQ2FsbCA9IDQwCi1lbHNpZiBYODZfNjRfV0lOCi0gICAg
Y29uc3QgbWF4RnJhbWVFeHRlbnRGb3JTbG93UGF0aENhbGwgPSA2NAotZW5kCitjb25zdCBtYXhG
cmFtZUV4dGVudEZvclNsb3dQYXRoQ2FsbCA9IGNvbnN0ZXhwciBtYXhGcmFtZUV4dGVudEZvclNs
b3dQYXRoQ2FsbAogCiBpZiBYODZfNjQgb3IgWDg2XzY0X1dJTiBvciBBUk02NCBvciBBUk02NEUK
ICAgICBjb25zdCBDYWxsZWVTYXZlU3BhY2VBc1ZpcnR1YWxSZWdpc3RlcnMgPSAzCkBAIC0yNTUs
MTIgKzI0NCwxMiBAQCBjb25zdCBJc0ludmFsaWRhdGVkID0gY29uc3RleHByIElzSW52YWxpZGF0
ZWQKIGNvbnN0IFNoYWRvd0NoaWNrZW5UYWlsTWFya2VyID0gY29uc3RleHByIFNoYWRvd0NoaWNr
ZW46OlBhY2tldDo6dGFpbE1hcmtlclZhbHVlCiAKICMgQXJpdGhQcm9maWxlIGRhdGEKLWNvbnN0
IEFyaXRoUHJvZmlsZUludCA9IDB4NDAwMDAwCi1jb25zdCBBcml0aFByb2ZpbGVJbnRJbnQgPSAw
eDQ4MDAwMAotY29uc3QgQXJpdGhQcm9maWxlTnVtYmVyID0gMHg4MDAwMDAKLWNvbnN0IEFyaXRo
UHJvZmlsZU51bWJlckludCA9IDB4ODgwMDAwCi1jb25zdCBBcml0aFByb2ZpbGVOdW1iZXJOdW1i
ZXIgPSAweDkwMDAwMAotY29uc3QgQXJpdGhQcm9maWxlSW50TnVtYmVyID0gMHg1MDAwMDAKK2Nv
bnN0IEFyaXRoUHJvZmlsZUludCA9IGNvbnN0ZXhwciAoQXJpdGhQcm9maWxlOjpvYnNlcnZlZFVu
YXJ5SW50KCkuYml0cygpKQorY29uc3QgQXJpdGhQcm9maWxlTnVtYmVyID0gY29uc3RleHByIChB
cml0aFByb2ZpbGU6Om9ic2VydmVkVW5hcnlOdW1iZXIoKS5iaXRzKCkpCitjb25zdCBBcml0aFBy
b2ZpbGVJbnRJbnQgPSBjb25zdGV4cHIgKEFyaXRoUHJvZmlsZTo6b2JzZXJ2ZWRCaW5hcnlJbnRJ
bnQoKS5iaXRzKCkpCitjb25zdCBBcml0aFByb2ZpbGVOdW1iZXJJbnQgPSBjb25zdGV4cHIgKEFy
aXRoUHJvZmlsZTo6b2JzZXJ2ZWRCaW5hcnlOdW1iZXJJbnQoKS5iaXRzKCkpCitjb25zdCBBcml0
aFByb2ZpbGVJbnROdW1iZXIgPSBjb25zdGV4cHIgKEFyaXRoUHJvZmlsZTo6b2JzZXJ2ZWRCaW5h
cnlJbnROdW1iZXIoKS5iaXRzKCkpCitjb25zdCBBcml0aFByb2ZpbGVOdW1iZXJOdW1iZXIgPSBj
b25zdGV4cHIgKEFyaXRoUHJvZmlsZTo6b2JzZXJ2ZWRCaW5hcnlOdW1iZXJOdW1iZXIoKS5iaXRz
KCkpCiAKICMgUG9pbnRlciBUYWdzCiBjb25zdCBCeXRlY29kZVB0clRhZyA9IGNvbnN0ZXhwciBC
eXRlY29kZVB0clRhZwpAQCAtMzYxLDEzICszNTAsOCBAQCBlbHNlCiBlbmQKIAogIyBDb25zdGFu
dHMgZm9yIHJlYXNvbmluZyBhYm91dCB2YWx1ZSByZXByZXNlbnRhdGlvbi4KLWlmIEJJR19FTkRJ
QU4KLSAgICBjb25zdCBUYWdPZmZzZXQgPSAwCi0gICAgY29uc3QgUGF5bG9hZE9mZnNldCA9IDQK
LWVsc2UKLSAgICBjb25zdCBUYWdPZmZzZXQgPSA0Ci0gICAgY29uc3QgUGF5bG9hZE9mZnNldCA9
IDAKLWVuZAorY29uc3QgVGFnT2Zmc2V0ID0gY29uc3RleHByIFRhZ09mZnNldAorY29uc3QgUGF5
bG9hZE9mZnNldCA9IGNvbnN0ZXhwciBQYXlsb2FkT2Zmc2V0CiAKICMgQ29uc3RhbnQgZm9yIHJl
YXNvbmluZyBhYm91dCBidXR0ZXJmbGllcy4KIGNvbnN0IElzQXJyYXkgICAgICAgICAgICAgICAg
ICA9IGNvbnN0ZXhwciBJc0FycmF5CkBAIC00MjIsMTAgKzQwNiwxMCBAQCBjb25zdCBNb2R1bGVD
b2RlID0gY29uc3RleHByIE1vZHVsZUNvZGUKIGNvbnN0IExMSW50UmV0dXJuUEMgPSBBcmd1bWVu
dENvdW50ICsgVGFnT2Zmc2V0CiAKICMgU3RyaW5nIGZsYWdzLgotY29uc3QgSGFzaEZsYWdzOEJp
dEJ1ZmZlciA9IDgKK2NvbnN0IEhhc2hGbGFnczhCaXRCdWZmZXIgPSBjb25zdGV4cHIgU3RyaW5n
SW1wbDo6c19oYXNoRmxhZzhCaXRCdWZmZXIKIAogIyBDb3BpZWQgZnJvbSBQcm9wZXJ0eU9mZnNl
dC5oCi1jb25zdCBmaXJzdE91dE9mTGluZU9mZnNldCA9IDEwMAorY29uc3QgZmlyc3RPdXRPZkxp
bmVPZmZzZXQgPSBjb25zdGV4cHIgZmlyc3RPdXRPZkxpbmVPZmZzZXQKIAogIyBSZXNvbHZlVHlw
ZQogY29uc3QgR2xvYmFsUHJvcGVydHkgPSBjb25zdGV4cHIgR2xvYmFsUHJvcGVydHkKQEAgLTQ1
MCwxMyArNDM0LDYgQEAgY29uc3QgTWFya2VkQmxvY2tGb290ZXJPZmZzZXQgPSBjb25zdGV4cHIg
TWFya2VkQmxvY2s6Om9mZnNldE9mRm9vdGVyCiAKIGNvbnN0IEJsYWNrVGhyZXNob2xkID0gY29u
c3RleHByIGJsYWNrVGhyZXNob2xkCiAKLSMgQWxsb2NhdGlvbiBjb25zdGFudHMKLWlmIEpTVkFM
VUU2NAotICAgIGNvbnN0IEpTRmluYWxPYmplY3RTaXplQ2xhc3NJbmRleCA9IDEKLWVsc2UKLSAg
ICBjb25zdCBKU0ZpbmFsT2JqZWN0U2l6ZUNsYXNzSW5kZXggPSAzCi1lbmQKLQogIyBUaGlzIG11
c3QgbWF0Y2ggd3RmL1ZlY3Rvci5oCiBjb25zdCBWZWN0b3JCdWZmZXJPZmZzZXQgPSAwCiBpZiBK
U1ZBTFVFNjQKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvUmVzdWx0
VHlwZS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9SZXN1bHRUeXBlLmgKaW5kZXgg
MDNjYWUyYTQ3ZjkwM2I2ZDJkZmU3ZDc3NTIwNWFhZDg4ZjUyMDJmZS4uN2Q0NjkyOWZhZWQwNDQz
NWRhNjAzM2IzNWQzODRmMzE1OTZjM2FhMiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL3BhcnNlci9SZXN1bHRUeXBlLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNl
ci9SZXN1bHRUeXBlLmgKQEAgLTMyLDExNiArMzIsMTE2IEBAIG5hbWVzcGFjZSBKU0MgewogICAg
ICAgICBmcmllbmQgc3RydWN0IE9wZXJhbmRUeXBlczsKIAogICAgICAgICB1c2luZyBUeXBlID0g
dWludDhfdDsKLSAgICAgICAgc3RhdGljIGNvbnN0IFR5cGUgVHlwZUludDMyID0gMTsKLSAgICAg
ICAgc3RhdGljIGNvbnN0IFR5cGUgVHlwZU1heWJlTnVtYmVyID0gMHgwMjsKLSAgICAgICAgc3Rh
dGljIGNvbnN0IFR5cGUgVHlwZU1heWJlU3RyaW5nID0gMHgwNDsKLSAgICAgICAgc3RhdGljIGNv
bnN0IFR5cGUgVHlwZU1heWJlTnVsbCAgID0gMHgwODsKLSAgICAgICAgc3RhdGljIGNvbnN0IFR5
cGUgVHlwZU1heWJlQm9vbCAgID0gMHgxMDsKLSAgICAgICAgc3RhdGljIGNvbnN0IFR5cGUgVHlw
ZU1heWJlQmlnSW50ID0gMHgyMDsKLSAgICAgICAgc3RhdGljIGNvbnN0IFR5cGUgVHlwZU1heWJl
T3RoZXIgID0gMHg0MDsKKyAgICAgICAgc3RhdGljIGNvbnN0ZXhwciBUeXBlIFR5cGVJbnQzMiA9
IDE7CisgICAgICAgIHN0YXRpYyBjb25zdGV4cHIgVHlwZSBUeXBlTWF5YmVOdW1iZXIgPSAweDAy
OworICAgICAgICBzdGF0aWMgY29uc3RleHByIFR5cGUgVHlwZU1heWJlU3RyaW5nID0gMHgwNDsK
KyAgICAgICAgc3RhdGljIGNvbnN0ZXhwciBUeXBlIFR5cGVNYXliZU51bGwgICA9IDB4MDg7Cisg
ICAgICAgIHN0YXRpYyBjb25zdGV4cHIgVHlwZSBUeXBlTWF5YmVCb29sICAgPSAweDEwOworICAg
ICAgICBzdGF0aWMgY29uc3RleHByIFR5cGUgVHlwZU1heWJlQmlnSW50ID0gMHgyMDsKKyAgICAg
ICAgc3RhdGljIGNvbnN0ZXhwciBUeXBlIFR5cGVNYXliZU90aGVyICA9IDB4NDA7CiAKLSAgICAg
ICAgc3RhdGljIGNvbnN0IFR5cGUgVHlwZUJpdHMgPSBUeXBlTWF5YmVOdW1iZXIgfCBUeXBlTWF5
YmVTdHJpbmcgfCBUeXBlTWF5YmVOdWxsIHwgVHlwZU1heWJlQm9vbCB8IFR5cGVNYXliZUJpZ0lu
dCB8IFR5cGVNYXliZU90aGVyOworICAgICAgICBzdGF0aWMgY29uc3RleHByIFR5cGUgVHlwZUJp
dHMgPSBUeXBlTWF5YmVOdW1iZXIgfCBUeXBlTWF5YmVTdHJpbmcgfCBUeXBlTWF5YmVOdWxsIHwg
VHlwZU1heWJlQm9vbCB8IFR5cGVNYXliZUJpZ0ludCB8IFR5cGVNYXliZU90aGVyOwogCiAgICAg
cHVibGljOgotICAgICAgICBzdGF0aWMgY29uc3QgaW50IG51bUJpdHNOZWVkZWQgPSA3OworICAg
ICAgICBzdGF0aWMgY29uc3RleHByIGludCBudW1CaXRzTmVlZGVkID0gNzsKICAgICAgICAgc3Rh
dGljX2Fzc2VydCgoVHlwZUJpdHMgJiAoKDEgPDwgbnVtQml0c05lZWRlZCkgLSAxKSkgPT0gVHlw
ZUJpdHMsICJUaGlzIGlzIG5lY2Vzc2FyeSBmb3IgY29ycmVjdG5lc3MuIik7CiAKLSAgICAgICAg
ZXhwbGljaXQgUmVzdWx0VHlwZShUeXBlIHR5cGUpCisgICAgICAgIGNvbnN0ZXhwciBleHBsaWNp
dCBSZXN1bHRUeXBlKFR5cGUgdHlwZSkKICAgICAgICAgICAgIDogbV9iaXRzKHR5cGUpCiAgICAg
ICAgIHsKICAgICAgICAgfQogCi0gICAgICAgIGJvb2wgaXNJbnQzMigpIGNvbnN0CisgICAgICAg
IGNvbnN0ZXhwciBib29sIGlzSW50MzIoKSBjb25zdAogICAgICAgICB7CiAgICAgICAgICAgICBy
ZXR1cm4gbV9iaXRzICYgVHlwZUludDMyOwogICAgICAgICB9CiAKLSAgICAgICAgYm9vbCBkZWZp
bml0ZWx5SXNOdW1iZXIoKSBjb25zdAorICAgICAgICBjb25zdGV4cHIgYm9vbCBkZWZpbml0ZWx5
SXNOdW1iZXIoKSBjb25zdAogICAgICAgICB7CiAgICAgICAgICAgICByZXR1cm4gKG1fYml0cyAm
IFR5cGVCaXRzKSA9PSBUeXBlTWF5YmVOdW1iZXI7CiAgICAgICAgIH0KICAgICAgICAgCi0gICAg
ICAgIGJvb2wgZGVmaW5pdGVseUlzU3RyaW5nKCkgY29uc3QKKyAgICAgICAgY29uc3RleHByIGJv
b2wgZGVmaW5pdGVseUlzU3RyaW5nKCkgY29uc3QKICAgICAgICAgewogICAgICAgICAgICAgcmV0
dXJuIChtX2JpdHMgJiBUeXBlQml0cykgPT0gVHlwZU1heWJlU3RyaW5nOwogICAgICAgICB9CiAK
LSAgICAgICAgYm9vbCBkZWZpbml0ZWx5SXNCb29sZWFuKCkgY29uc3QKKyAgICAgICAgY29uc3Rl
eHByIGJvb2wgZGVmaW5pdGVseUlzQm9vbGVhbigpIGNvbnN0CiAgICAgICAgIHsKICAgICAgICAg
ICAgIHJldHVybiAobV9iaXRzICYgVHlwZUJpdHMpID09IFR5cGVNYXliZUJvb2w7CiAgICAgICAg
IH0KIAotICAgICAgICBib29sIGRlZmluaXRlbHlJc0JpZ0ludCgpIGNvbnN0CisgICAgICAgIGNv
bnN0ZXhwciBib29sIGRlZmluaXRlbHlJc0JpZ0ludCgpIGNvbnN0CiAgICAgICAgIHsKICAgICAg
ICAgICAgIHJldHVybiAobV9iaXRzICYgVHlwZUJpdHMpID09IFR5cGVNYXliZUJpZ0ludDsKICAg
ICAgICAgfQogCi0gICAgICAgIGJvb2wgbWlnaHRCZU51bWJlcigpIGNvbnN0CisgICAgICAgIGNv
bnN0ZXhwciBib29sIG1pZ2h0QmVOdW1iZXIoKSBjb25zdAogICAgICAgICB7CiAgICAgICAgICAg
ICByZXR1cm4gbV9iaXRzICYgVHlwZU1heWJlTnVtYmVyOwogICAgICAgICB9CiAKLSAgICAgICAg
Ym9vbCBpc05vdE51bWJlcigpIGNvbnN0CisgICAgICAgIGNvbnN0ZXhwciBib29sIGlzTm90TnVt
YmVyKCkgY29uc3QKICAgICAgICAgewogICAgICAgICAgICAgcmV0dXJuICFtaWdodEJlTnVtYmVy
KCk7CiAgICAgICAgIH0KICAgICAgICAgCi0gICAgICAgIGJvb2wgbWlnaHRCZUJpZ0ludCgpIGNv
bnN0CisgICAgICAgIGNvbnN0ZXhwciBib29sIG1pZ2h0QmVCaWdJbnQoKSBjb25zdAogICAgICAg
ICB7CiAgICAgICAgICAgICByZXR1cm4gbV9iaXRzICYgVHlwZU1heWJlQmlnSW50OwogICAgICAg
ICB9CiAKLSAgICAgICAgYm9vbCBpc05vdEJpZ0ludCgpIGNvbnN0CisgICAgICAgIGNvbnN0ZXhw
ciBib29sIGlzTm90QmlnSW50KCkgY29uc3QKICAgICAgICAgewogICAgICAgICAgICAgcmV0dXJu
ICFtaWdodEJlQmlnSW50KCk7CiAgICAgICAgIH0KICAgICAgICAgCi0gICAgICAgIHN0YXRpYyBS
ZXN1bHRUeXBlIG51bGxUeXBlKCkKKyAgICAgICAgc3RhdGljIGNvbnN0ZXhwciBSZXN1bHRUeXBl
IG51bGxUeXBlKCkKICAgICAgICAgewogICAgICAgICAgICAgcmV0dXJuIFJlc3VsdFR5cGUoVHlw
ZU1heWJlTnVsbCk7CiAgICAgICAgIH0KICAgICAgICAgCi0gICAgICAgIHN0YXRpYyBSZXN1bHRU
eXBlIGJvb2xlYW5UeXBlKCkKKyAgICAgICAgc3RhdGljIGNvbnN0ZXhwciBSZXN1bHRUeXBlIGJv
b2xlYW5UeXBlKCkKICAgICAgICAgewogICAgICAgICAgICAgcmV0dXJuIFJlc3VsdFR5cGUoVHlw
ZU1heWJlQm9vbCk7CiAgICAgICAgIH0KICAgICAgICAgCi0gICAgICAgIHN0YXRpYyBSZXN1bHRU
eXBlIG51bWJlclR5cGUoKQorICAgICAgICBzdGF0aWMgY29uc3RleHByIFJlc3VsdFR5cGUgbnVt
YmVyVHlwZSgpCiAgICAgICAgIHsKICAgICAgICAgICAgIHJldHVybiBSZXN1bHRUeXBlKFR5cGVN
YXliZU51bWJlcik7CiAgICAgICAgIH0KICAgICAgICAgCi0gICAgICAgIHN0YXRpYyBSZXN1bHRU
eXBlIG51bWJlclR5cGVJc0ludDMyKCkKKyAgICAgICAgc3RhdGljIGNvbnN0ZXhwciBSZXN1bHRU
eXBlIG51bWJlclR5cGVJc0ludDMyKCkKICAgICAgICAgewogICAgICAgICAgICAgcmV0dXJuIFJl
c3VsdFR5cGUoVHlwZUludDMyIHwgVHlwZU1heWJlTnVtYmVyKTsKICAgICAgICAgfQogICAgICAg
ICAKLSAgICAgICAgc3RhdGljIFJlc3VsdFR5cGUgc3RyaW5nT3JOdW1iZXJUeXBlKCkKKyAgICAg
ICAgc3RhdGljIGNvbnN0ZXhwciBSZXN1bHRUeXBlIHN0cmluZ09yTnVtYmVyVHlwZSgpCiAgICAg
ICAgIHsKICAgICAgICAgICAgIHJldHVybiBSZXN1bHRUeXBlKFR5cGVNYXliZU51bWJlciB8IFR5
cGVNYXliZVN0cmluZyk7CiAgICAgICAgIH0KICAgICAgICAgCi0gICAgICAgIHN0YXRpYyBSZXN1
bHRUeXBlIGFkZFJlc3VsdFR5cGUoKQorICAgICAgICBzdGF0aWMgY29uc3RleHByIFJlc3VsdFR5
cGUgYWRkUmVzdWx0VHlwZSgpCiAgICAgICAgIHsKICAgICAgICAgICAgIHJldHVybiBSZXN1bHRU
eXBlKFR5cGVNYXliZU51bWJlciB8IFR5cGVNYXliZVN0cmluZyB8IFR5cGVNYXliZUJpZ0ludCk7
CiAgICAgICAgIH0KICAgICAgICAgCi0gICAgICAgIHN0YXRpYyBSZXN1bHRUeXBlIHN0cmluZ1R5
cGUoKQorICAgICAgICBzdGF0aWMgY29uc3RleHByIFJlc3VsdFR5cGUgc3RyaW5nVHlwZSgpCiAg
ICAgICAgIHsKICAgICAgICAgICAgIHJldHVybiBSZXN1bHRUeXBlKFR5cGVNYXliZVN0cmluZyk7
CiAgICAgICAgIH0KICAgICAgICAgCi0gICAgICAgIHN0YXRpYyBSZXN1bHRUeXBlIGJpZ0ludFR5
cGUoKQorICAgICAgICBzdGF0aWMgY29uc3RleHByIFJlc3VsdFR5cGUgYmlnSW50VHlwZSgpCiAg
ICAgICAgIHsKICAgICAgICAgICAgIHJldHVybiBSZXN1bHRUeXBlKFR5cGVNYXliZUJpZ0ludCk7
CiAgICAgICAgIH0KICAgICAgICAgCi0gICAgICAgIHN0YXRpYyBSZXN1bHRUeXBlIHVua25vd25U
eXBlKCkKKyAgICAgICAgc3RhdGljIGNvbnN0ZXhwciBSZXN1bHRUeXBlIHVua25vd25UeXBlKCkK
ICAgICAgICAgewogICAgICAgICAgICAgcmV0dXJuIFJlc3VsdFR5cGUoVHlwZUJpdHMpOwogICAg
ICAgICB9CiAgICAgICAgIAotICAgICAgICBzdGF0aWMgUmVzdWx0VHlwZSBmb3JBZGQoUmVzdWx0
VHlwZSBvcDEsIFJlc3VsdFR5cGUgb3AyKQorICAgICAgICBzdGF0aWMgY29uc3RleHByIFJlc3Vs
dFR5cGUgZm9yQWRkKFJlc3VsdFR5cGUgb3AxLCBSZXN1bHRUeXBlIG9wMikKICAgICAgICAgewog
ICAgICAgICAgICAgaWYgKG9wMS5kZWZpbml0ZWx5SXNOdW1iZXIoKSAmJiBvcDIuZGVmaW5pdGVs
eUlzTnVtYmVyKCkpCiAgICAgICAgICAgICAgICAgcmV0dXJuIG51bWJlclR5cGUoKTsKQEAgLTE1
NCw3ICsxNTQsNyBAQCBuYW1lc3BhY2UgSlNDIHsKIAogICAgICAgICAvLyBVbmxpa2UgaW4gQywg
YSBsb2dpY2FsIG9wIHByb2R1Y2VzIHRoZSB2YWx1ZSBvZiB0aGUKICAgICAgICAgLy8gbGFzdCBl
eHByZXNzaW9uIGV2YWx1YXRlZCAoYW5kIG5vdCB0cnVlIG9yIGZhbHNlKS4KLSAgICAgICAgc3Rh
dGljIFJlc3VsdFR5cGUgZm9yTG9naWNhbE9wKFJlc3VsdFR5cGUgb3AxLCBSZXN1bHRUeXBlIG9w
MikKKyAgICAgICAgc3RhdGljIGNvbnN0ZXhwciBSZXN1bHRUeXBlIGZvckxvZ2ljYWxPcChSZXN1
bHRUeXBlIG9wMSwgUmVzdWx0VHlwZSBvcDIpCiAgICAgICAgIHsKICAgICAgICAgICAgIGlmIChv
cDEuZGVmaW5pdGVseUlzQm9vbGVhbigpICYmIG9wMi5kZWZpbml0ZWx5SXNCb29sZWFuKCkpCiAg
ICAgICAgICAgICAgICAgcmV0dXJuIGJvb2xlYW5UeXBlKCk7CkBAIC0xNjcsMTIgKzE2NywxMiBA
QCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgICAgIHJldHVybiB1bmtub3duVHlwZSgpOwogICAg
ICAgICB9CiAKLSAgICAgICAgc3RhdGljIFJlc3VsdFR5cGUgZm9yQml0T3AoKQorICAgICAgICBz
dGF0aWMgY29uc3RleHByIFJlc3VsdFR5cGUgZm9yQml0T3AoKQogICAgICAgICB7CiAgICAgICAg
ICAgICByZXR1cm4gbnVtYmVyVHlwZUlzSW50MzIoKTsKICAgICAgICAgfQogCi0gICAgICAgIFR5
cGUgYml0cygpIGNvbnN0IHsgcmV0dXJuIG1fYml0czsgfQorICAgICAgICBjb25zdGV4cHIgVHlw
ZSBiaXRzKCkgY29uc3QgeyByZXR1cm4gbV9iaXRzOyB9CiAKICAgICBwcml2YXRlOgogICAgICAg
ICBUeXBlIG1fYml0czsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0pTQ0pTVmFsdWUuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQ0pTVmFsdWUu
aAppbmRleCA3YzdlOGMzZWNmY2MyZWE0Yzc2ODZhNzc4NzIwYjYyMTdkMWQ5MDU0Li45MGQ4Zjlm
OTY5MzAzMWM3M2UzMzMxZjJmNDlmNGM4MGZjZTIwZTM1IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9KU0NKU1ZhbHVlLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvSlNDSlNWYWx1ZS5oCkBAIC0xMDgsOCArMTA4LDggQEAgdW5pb24gRW5jb2Rl
ZFZhbHVlRGVzY3JpcHRvciB7CiAjZW5kaWYKIH07CiAKLSNkZWZpbmUgVGFnT2Zmc2V0IChPQkpF
Q1RfT0ZGU0VUT0YoRW5jb2RlZFZhbHVlRGVzY3JpcHRvciwgYXNCaXRzLnRhZykpCi0jZGVmaW5l
IFBheWxvYWRPZmZzZXQgKE9CSkVDVF9PRkZTRVRPRihFbmNvZGVkVmFsdWVEZXNjcmlwdG9yLCBh
c0JpdHMucGF5bG9hZCkpCisjZGVmaW5lIFRhZ09mZnNldCAob2Zmc2V0b2YoRW5jb2RlZFZhbHVl
RGVzY3JpcHRvciwgYXNCaXRzLnRhZykpCisjZGVmaW5lIFBheWxvYWRPZmZzZXQgKG9mZnNldG9m
KEVuY29kZWRWYWx1ZURlc2NyaXB0b3IsIGFzQml0cy5wYXlsb2FkKSkKIAogI2lmIFVTRShKU1ZB
TFVFNjQpCiAjZGVmaW5lIENlbGxQYXlsb2FkT2Zmc2V0IDAK
</data>

          </attachment>
      

    </bug>

</bugzilla>