<?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>151336</bug_id>
          
          <creation_ts>2015-11-16 20:27:34 -0800</creation_ts>
          <short_desc>[JSC] Make FTLOutput&apos;s load8() and load16() compatible with B3</short_desc>
          <delta_ts>2015-11-17 02:40:08 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>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></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Benjamin Poulain">benjamin</reporter>
          <assigned_to name="Benjamin Poulain">benjamin</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>keith_miller</cc>
    
    <cc>mark.lam</cc>
    
    <cc>msaboff</cc>
    
    <cc>saam</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1142457</commentid>
    <comment_count>0</comment_count>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2015-11-16 20:27:34 -0800</bug_when>
    <thetext>[JSC] Make FTLOutput&apos;s load8() and load16() compatible with B3</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1142459</commentid>
    <comment_count>1</comment_count>
      <attachid>265655</attachid>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2015-11-16 20:33:20 -0800</bug_when>
    <thetext>Created attachment 265655
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1142462</commentid>
    <comment_count>2</comment_count>
      <attachid>265656</attachid>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2015-11-16 20:40:01 -0800</bug_when>
    <thetext>Created attachment 265656
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1142463</commentid>
    <comment_count>3</comment_count>
      <attachid>265656</attachid>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2015-11-16 20:40:49 -0800</bug_when>
    <thetext>Comment on attachment 265656
Patch

Ooops, not for review, just for bots.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1142465</commentid>
    <comment_count>4</comment_count>
      <attachid>265658</attachid>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2015-11-16 21:06:04 -0800</bug_when>
    <thetext>Created attachment 265658
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1142468</commentid>
    <comment_count>5</comment_count>
      <attachid>265658</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2015-11-16 21:15:12 -0800</bug_when>
    <thetext>Comment on attachment 265658
Patch

LGTM</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1142480</commentid>
    <comment_count>6</comment_count>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2015-11-16 22:20:21 -0800</bug_when>
    <thetext>Committed r192508: &lt;http://trac.webkit.org/changeset/192508&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1142507</commentid>
    <comment_count>7</comment_count>
      <attachid>265658</attachid>
    <who name="Csaba Osztrogonác">ossy</who>
    <bug_when>2015-11-17 02:40:08 -0800</bug_when>
    <thetext>Comment on attachment 265658
Patch

Cleared review? from attachment 265658 so that this bug does not appear in http://webkit.org/pending-review.  If you would like this patch reviewed, please attach it to a new bug (or re-open this bug before marking it for review again).</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>265655</attachid>
            <date>2015-11-16 20:33:20 -0800</date>
            <delta_ts>2015-11-16 20:40:00 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-151336-20151116203311.patch</filename>
            <type>text/plain</type>
            <size>25223</size>
            <attacher name="Benjamin Poulain">benjamin</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTkyNDk1CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCAy
MTZiYmRkZDMzOGIyN2Q5MTljOTlkMzYzYzcyOTQ2ODdiYTViMDQzLi4wZGJkNTY0YzA2ZWQyZmU4
M2I3ZDU5NGE0Yzg0ODY1MTZiZmYzOGMxIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw0OSBAQAorMjAxNS0xMS0xNiAgQmVuamFtaW4gUG91bGFpbiAgPGJwb3VsYWluQGFwcGxl
LmNvbT4KKworICAgICAgICBbSlNDXSBNYWtlIEZUTE91dHB1dCdzIGxvYWQ4KCkgYW5kIGxvYWQx
NigpIGNvbXBhdGlibGUgd2l0aCBCMworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MTUxMzM2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgQjMgZG9lcyBub3QgaGF2ZSA4Yml0IGFuZCAxNmJpdCB0eXBlcy4gTWFr
ZSBGVExPdXRwdXQgYWJzdHJhY3QgZW5vdWdoCisgICAgICAgIHRvIGhhbmRsZSBMTFZNIElSIGFu
ZCBCMy4KKworICAgICAgICAqIGZ0bC9GVExMb3dlckRGR1RvTExWTS5jcHA6CisgICAgICAgIChK
U0M6OkZUTDo6REZHOjpMb3dlckRGR1RvTExWTTo6Y29tcGlsZUdldEFycmF5TGVuZ3RoKToKKyAg
ICAgICAgKEpTQzo6RlRMOjpERkc6Okxvd2VyREZHVG9MTFZNOjpjb21waWxlR2V0QnlWYWwpOgor
ICAgICAgICAoSlNDOjpGVEw6OkRGRzo6TG93ZXJERkdUb0xMVk06OmNvbXBpbGVTdHJpbmdDaGFy
QXQpOgorICAgICAgICAoSlNDOjpGVEw6OkRGRzo6TG93ZXJERkdUb0xMVk06OmNvbXBpbGVTdHJp
bmdDaGFyQ29kZUF0KToKKyAgICAgICAgKEpTQzo6RlRMOjpERkc6Okxvd2VyREZHVG9MTFZNOjpj
b21waWxlTm90aWZ5V3JpdGUpOgorICAgICAgICAoSlNDOjpGVEw6OkRGRzo6TG93ZXJERkdUb0xM
Vk06OmNvbXBpbGVTd2l0Y2gpOgorICAgICAgICAoSlNDOjpGVEw6OkRGRzo6TG93ZXJERkdUb0xM
Vk06OmNvbXBpbGVDaGVja0hhc0luc3RhbmNlKToKKyAgICAgICAgKEpTQzo6RlRMOjpERkc6Okxv
d2VyREZHVG9MTFZNOjpjb21waWxlQ2hlY2tXYXRjaGRvZ1RpbWVyKToKKyAgICAgICAgKEpTQzo6
RlRMOjpERkc6Okxvd2VyREZHVG9MTFZNOjpzcGVjdWxhdGVUcnV0aHlPYmplY3QpOgorICAgICAg
ICAoSlNDOjpGVEw6OkRGRzo6TG93ZXJERkdUb0xMVk06OmJvb2xpZnkpOgorICAgICAgICAoSlND
OjpGVEw6OkRGRzo6TG93ZXJERkdUb0xMVk06OmVxdWFsTnVsbE9yVW5kZWZpbmVkKToKKyAgICAg
ICAgKEpTQzo6RlRMOjpERkc6Okxvd2VyREZHVG9MTFZNOjpzd2l0Y2hTdHJpbmdSZWN1cnNlKToK
KyAgICAgICAgKEpTQzo6RlRMOjpERkc6Okxvd2VyREZHVG9MTFZNOjppc09iamVjdCk6CisgICAg
ICAgIChKU0M6OkZUTDo6REZHOjpMb3dlckRGR1RvTExWTTo6aXNOb3RPYmplY3QpOgorICAgICAg
ICAoSlNDOjpGVEw6OkRGRzo6TG93ZXJERkdUb0xMVk06OmlzQXJyYXlUeXBlKToKKyAgICAgICAg
KEpTQzo6RlRMOjpERkc6Okxvd2VyREZHVG9MTFZNOjppc0V4b3RpY0ZvclR5cGVvZik6CisgICAg
ICAgIChKU0M6OkZUTDo6REZHOjpMb3dlckRGR1RvTExWTTo6aXNUeXBlKToKKyAgICAgICAgKEpT
Qzo6RlRMOjpERkc6Okxvd2VyREZHVG9MTFZNOjpzcGVjdWxhdGVOb25OdWxsT2JqZWN0KToKKyAg
ICAgICAgKEpTQzo6RlRMOjpERkc6Okxvd2VyREZHVG9MTFZNOjpsb2FkQ2VsbFN0YXRlKToKKyAg
ICAgICAgKEpTQzo6RlRMOjpERkc6Okxvd2VyREZHVG9MTFZNOjplbWl0U3RvcmVCYXJyaWVyKToK
KyAgICAgICAgKiBmdGwvRlRMT3V0cHV0Lmg6CisgICAgICAgIChKU0M6OkZUTDo6T3V0cHV0Ojps
b2FkOFNpZ25FeHQzMik6CisgICAgICAgIChKU0M6OkZUTDo6T3V0cHV0Ojpsb2FkOFplcm9FeHQz
Mik6CisgICAgICAgIChKU0M6OkZUTDo6T3V0cHV0Ojpsb2FkMTZTaWduRXh0MzIpOgorICAgICAg
ICAoSlNDOjpGVEw6Ok91dHB1dDo6bG9hZDE2WmVyb0V4dDMyKToKKyAgICAgICAgKEpTQzo6RlRM
OjpPdXRwdXQ6OmNvbnN0SW50OCk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkZUTDo6T3V0cHV0
Ojpsb2FkOCk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkZUTDo6T3V0cHV0Ojpsb2FkMTYpOiBE
ZWxldGVkLgorICAgICAgICAoSlNDOjpGVEw6Ok91dHB1dDo6c3RvcmU4KTogRGVsZXRlZC4KKyAg
ICAgICAgKEpTQzo6RlRMOjpPdXRwdXQ6OnN0b3JlRmxvYXQpOiBEZWxldGVkLgorICAgICAgICAo
SlNDOjpGVEw6Ok91dHB1dDo6aXNaZXJvOCk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkZUTDo6
T3V0cHV0Ojpub3RaZXJvOCk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkZUTDo6T3V0cHV0Ojp0
ZXN0SXNaZXJvOCk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkZUTDo6T3V0cHV0Ojp0ZXN0Tm9u
WmVybzgpOiBEZWxldGVkLgorCiAyMDE1LTExLTE2ICBCZW5qYW1pbiBQb3VsYWluICA8YmVuamFt
aW5Ad2Via2l0Lm9yZz4KIAogICAgICAgICBCdWlsZCBmaXggYWZ0ZXIgcjE5MjQ5MgpkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExMb3dlckRGR1RvTExWTS5jcHAgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTExvd2VyREZHVG9MTFZNLmNwcAppbmRleCBjOWE2
ODljZDZjMWNmZDZhNzU5OWNkYWNjMGJlNjVhOTI3OTY1Yzk3Li42MjZmNWMyMGI0NmY5MDNmMDY4
ZWJmYjBkYzk3MjA1YjhiNmQxMGZmIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
ZnRsL0ZUTExvd2VyREZHVG9MTFZNLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRs
L0ZUTExvd2VyREZHVG9MTFZNLmNwcApAQCAtMjUxMSw3ICsyNTExLDcgQEAgcHJpdmF0ZToKICAg
ICAgICAgICAgIExWYWx1ZSBhcmd1bWVudHMgPSBsb3dDZWxsKG1fbm9kZS0+Y2hpbGQxKCkpOwog
ICAgICAgICAgICAgc3BlY3VsYXRlKAogICAgICAgICAgICAgICAgIEV4b3RpY09iamVjdE1vZGUs
IG5vVmFsdWUoKSwgbnVsbHB0ciwKLSAgICAgICAgICAgICAgICBtX291dC5ub3RaZXJvOChtX291
dC5sb2FkOChhcmd1bWVudHMsIG1faGVhcHMuU2NvcGVkQXJndW1lbnRzX292ZXJyb2RlVGhpbmdz
KSkpOworICAgICAgICAgICAgICAgIG1fb3V0Lm5vdFplcm8zMihtX291dC5sb2FkOFplcm9FeHQz
Mihhcmd1bWVudHMsIG1faGVhcHMuU2NvcGVkQXJndW1lbnRzX292ZXJyb2RlVGhpbmdzKSkpOwog
ICAgICAgICAgICAgc2V0SW50MzIobV9vdXQubG9hZDMyTm9uTmVnYXRpdmUoYXJndW1lbnRzLCBt
X2hlYXBzLlNjb3BlZEFyZ3VtZW50c190b3RhbExlbmd0aCkpOwogICAgICAgICAgICAgcmV0dXJu
OwogICAgICAgICB9CkBAIC0yNzUxLDEwICsyNzUxLDEwIEBAIHByaXZhdGU6CiAgICAgICAgICAg
ICAgICAgICAgIExWYWx1ZSByZXN1bHQ7CiAgICAgICAgICAgICAgICAgICAgIHN3aXRjaCAoZWxl
bWVudFNpemUodHlwZSkpIHsKICAgICAgICAgICAgICAgICAgICAgY2FzZSAxOgotICAgICAgICAg
ICAgICAgICAgICAgICAgcmVzdWx0ID0gbV9vdXQubG9hZDgocG9pbnRlcik7CisgICAgICAgICAg
ICAgICAgICAgICAgICByZXN1bHQgPSBpc1NpZ25lZCh0eXBlKSA/IG1fb3V0LmxvYWQ4U2lnbkV4
dDMyKHBvaW50ZXIpIDogIG1fb3V0LmxvYWQ4WmVyb0V4dDMyKHBvaW50ZXIpOwogICAgICAgICAg
ICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICAgICAgIGNhc2UgMjoKLSAgICAg
ICAgICAgICAgICAgICAgICAgIHJlc3VsdCA9IG1fb3V0LmxvYWQxNihwb2ludGVyKTsKKyAgICAg
ICAgICAgICAgICAgICAgICAgIHJlc3VsdCA9IGlzU2lnbmVkKHR5cGUpID8gbV9vdXQubG9hZDE2
U2lnbkV4dDMyKHBvaW50ZXIpIDogIG1fb3V0LmxvYWQxNlplcm9FeHQzMihwb2ludGVyKTsKICAg
ICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgICAgICBjYXNlIDQ6
CiAgICAgICAgICAgICAgICAgICAgICAgICByZXN1bHQgPSBtX291dC5sb2FkMzIocG9pbnRlcik7
CkBAIC0yNzYzLDIwICsyNzYzLDExIEBAIHByaXZhdGU6CiAgICAgICAgICAgICAgICAgICAgICAg
ICBERkdfQ1JBU0gobV9ncmFwaCwgbV9ub2RlLCAiQmFkIGVsZW1lbnQgc2l6ZSIpOwogICAgICAg
ICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgIAotICAgICAgICAgICAgICAgICAg
ICBpZiAoZWxlbWVudFNpemUodHlwZSkgPCA0KSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBp
ZiAoaXNTaWduZWQodHlwZSkpCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzdWx0ID0g
bV9vdXQuc2lnbkV4dChyZXN1bHQsIG1fb3V0LmludDMyKTsKLSAgICAgICAgICAgICAgICAgICAg
ICAgIGVsc2UKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXN1bHQgPSBtX291dC56ZXJv
RXh0KHJlc3VsdCwgbV9vdXQuaW50MzIpOwotICAgICAgICAgICAgICAgICAgICAgICAgc2V0SW50
MzIocmVzdWx0KTsKLSAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgICAg
ICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICAKLSAgICAgICAgICAgICAgICAgICAgaWYg
KGlzU2lnbmVkKHR5cGUpKSB7CisgICAgICAgICAgICAgICAgICAgIGlmIChlbGVtZW50U2l6ZSh0
eXBlKSA8IDQgfHwgaXNTaWduZWQodHlwZSkpIHsKICAgICAgICAgICAgICAgICAgICAgICAgIHNl
dEludDMyKHJlc3VsdCk7CiAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAg
ICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgCisKICAgICAgICAgICAgICAgICAg
ICAgaWYgKG1fbm9kZS0+c2hvdWxkU3BlY3VsYXRlSW50MzIoKSkgewogICAgICAgICAgICAgICAg
ICAgICAgICAgc3BlY3VsYXRlKAogICAgICAgICAgICAgICAgICAgICAgICAgICAgIE92ZXJmbG93
LCBub1ZhbHVlKCksIDAsIG1fb3V0Lmxlc3NUaGFuKHJlc3VsdCwgbV9vdXQuaW50MzJaZXJvKSk7
CkBAIC0zOTk4LDIwICszOTg5LDE4IEBAIHByaXZhdGU6CiAgICAgICAgICAgICAKICAgICAgICAg
bV9vdXQuYXBwZW5kVG8oaXM4Qml0LCBpczE2Qml0KTsKICAgICAgICAgICAgIAotICAgICAgICBW
YWx1ZUZyb21CbG9jayBjaGFyOEJpdCA9IG1fb3V0LmFuY2hvcihtX291dC56ZXJvRXh0KAotICAg
ICAgICAgICAgbV9vdXQubG9hZDgobV9vdXQuYmFzZUluZGV4KAorICAgICAgICBWYWx1ZUZyb21C
bG9jayBjaGFyOEJpdCA9IG1fb3V0LmFuY2hvcigKKyAgICAgICAgICAgIG1fb3V0LmxvYWQ4WmVy
b0V4dDMyKG1fb3V0LmJhc2VJbmRleCgKICAgICAgICAgICAgICAgICBtX2hlYXBzLmNoYXJhY3Rl
cnM4LCBzdG9yYWdlLCBtX291dC56ZXJvRXh0UHRyKGluZGV4KSwKLSAgICAgICAgICAgICAgICBw
cm92ZW5WYWx1ZShtX25vZGUtPmNoaWxkMigpKSkpLAotICAgICAgICAgICAgbV9vdXQuaW50MzIp
KTsKKyAgICAgICAgICAgICAgICBwcm92ZW5WYWx1ZShtX25vZGUtPmNoaWxkMigpKSkpKTsKICAg
ICAgICAgbV9vdXQuanVtcChiaXRzQ29udGludWF0aW9uKTsKICAgICAgICAgICAgIAogICAgICAg
ICBtX291dC5hcHBlbmRUbyhpczE2Qml0LCBiaWdDaGFyYWN0ZXIpOwogICAgICAgICAgICAgCi0g
ICAgICAgIFZhbHVlRnJvbUJsb2NrIGNoYXIxNkJpdCA9IG1fb3V0LmFuY2hvcihtX291dC56ZXJv
RXh0KAotICAgICAgICAgICAgbV9vdXQubG9hZDE2KG1fb3V0LmJhc2VJbmRleCgKKyAgICAgICAg
VmFsdWVGcm9tQmxvY2sgY2hhcjE2Qml0ID0gbV9vdXQuYW5jaG9yKAorICAgICAgICAgICAgbV9v
dXQubG9hZDE2WmVyb0V4dDMyKG1fb3V0LmJhc2VJbmRleCgKICAgICAgICAgICAgICAgICBtX2hl
YXBzLmNoYXJhY3RlcnMxNiwgc3RvcmFnZSwgbV9vdXQuemVyb0V4dFB0cihpbmRleCksCi0gICAg
ICAgICAgICAgICAgcHJvdmVuVmFsdWUobV9ub2RlLT5jaGlsZDIoKSkpKSwKLSAgICAgICAgICAg
IG1fb3V0LmludDMyKSk7CisgICAgICAgICAgICAgICAgcHJvdmVuVmFsdWUobV9ub2RlLT5jaGls
ZDIoKSkpKSk7CiAgICAgICAgIG1fb3V0LmJyYW5jaCgKICAgICAgICAgICAgIG1fb3V0LmFib3Zl
T3JFcXVhbChjaGFyMTZCaXQudmFsdWUoKSwgbV9vdXQuY29uc3RJbnQzMigweDEwMCkpLAogICAg
ICAgICAgICAgcmFyZWx5KGJpZ0NoYXJhY3RlciksIHVzdWFsbHkoYml0c0NvbnRpbnVhdGlvbikp
OwpAQCAtNDA5NiwyMCArNDA4NSwxOCBAQCBwcml2YXRlOgogICAgICAgICAgICAgCiAgICAgICAg
IExCYXNpY0Jsb2NrIGxhc3ROZXh0ID0gbV9vdXQuYXBwZW5kVG8oaXM4Qml0LCBpczE2Qml0KTsK
ICAgICAgICAgICAgIAotICAgICAgICBWYWx1ZUZyb21CbG9jayBjaGFyOEJpdCA9IG1fb3V0LmFu
Y2hvcihtX291dC56ZXJvRXh0KAotICAgICAgICAgICAgbV9vdXQubG9hZDgobV9vdXQuYmFzZUlu
ZGV4KAorICAgICAgICBWYWx1ZUZyb21CbG9jayBjaGFyOEJpdCA9IG1fb3V0LmFuY2hvcigKKyAg
ICAgICAgICAgIG1fb3V0LmxvYWQ4WmVyb0V4dDMyKG1fb3V0LmJhc2VJbmRleCgKICAgICAgICAg
ICAgICAgICBtX2hlYXBzLmNoYXJhY3RlcnM4LCBzdG9yYWdlLCBtX291dC56ZXJvRXh0UHRyKGlu
ZGV4KSwKLSAgICAgICAgICAgICAgICBwcm92ZW5WYWx1ZShtX25vZGUtPmNoaWxkMigpKSkpLAot
ICAgICAgICAgICAgbV9vdXQuaW50MzIpKTsKKyAgICAgICAgICAgICAgICBwcm92ZW5WYWx1ZSht
X25vZGUtPmNoaWxkMigpKSkpKTsKICAgICAgICAgbV9vdXQuanVtcChjb250aW51YXRpb24pOwog
ICAgICAgICAgICAgCiAgICAgICAgIG1fb3V0LmFwcGVuZFRvKGlzMTZCaXQsIGNvbnRpbnVhdGlv
bik7CiAgICAgICAgICAgICAKLSAgICAgICAgVmFsdWVGcm9tQmxvY2sgY2hhcjE2Qml0ID0gbV9v
dXQuYW5jaG9yKG1fb3V0Lnplcm9FeHQoCi0gICAgICAgICAgICBtX291dC5sb2FkMTYobV9vdXQu
YmFzZUluZGV4KAorICAgICAgICBWYWx1ZUZyb21CbG9jayBjaGFyMTZCaXQgPSBtX291dC5hbmNo
b3IoCisgICAgICAgICAgICBtX291dC5sb2FkMTZaZXJvRXh0MzIobV9vdXQuYmFzZUluZGV4KAog
ICAgICAgICAgICAgICAgIG1faGVhcHMuY2hhcmFjdGVyczE2LCBzdG9yYWdlLCBtX291dC56ZXJv
RXh0UHRyKGluZGV4KSwKLSAgICAgICAgICAgICAgICBwcm92ZW5WYWx1ZShtX25vZGUtPmNoaWxk
MigpKSkpLAotICAgICAgICAgICAgbV9vdXQuaW50MzIpKTsKKyAgICAgICAgICAgICAgICBwcm92
ZW5WYWx1ZShtX25vZGUtPmNoaWxkMigpKSkpKTsKICAgICAgICAgbV9vdXQuanVtcChjb250aW51
YXRpb24pOwogICAgICAgICAKICAgICAgICAgbV9vdXQuYXBwZW5kVG8oY29udGludWF0aW9uLCBs
YXN0TmV4dCk7CkBAIC00MzA5LDkgKzQyOTYsOSBAQCBwcml2YXRlOgogICAgICAgICBMQmFzaWNC
bG9jayBpc05vdEludmFsaWRhdGVkID0gRlRMX05FV19CTE9DSyhtX291dCwgKCJOb3RpZnlXcml0
ZSBub3QgaW52YWxpZGF0ZWQgY2FzZSIpKTsKICAgICAgICAgTEJhc2ljQmxvY2sgY29udGludWF0
aW9uID0gRlRMX05FV19CTE9DSyhtX291dCwgKCJOb3RpZnlXcml0ZSBjb250aW51YXRpb24iKSk7
CiAgICAgICAgIAotICAgICAgICBMVmFsdWUgc3RhdGUgPSBtX291dC5sb2FkOChtX291dC5hYnNv
bHV0ZShzZXQtPmFkZHJlc3NPZlN0YXRlKCkpKTsKKyAgICAgICAgTFZhbHVlIHN0YXRlID0gbV9v
dXQubG9hZDhaZXJvRXh0MzIobV9vdXQuYWJzb2x1dGUoc2V0LT5hZGRyZXNzT2ZTdGF0ZSgpKSk7
CiAgICAgICAgIG1fb3V0LmJyYW5jaCgKLSAgICAgICAgICAgIG1fb3V0LmVxdWFsKHN0YXRlLCBt
X291dC5jb25zdEludDgoSXNJbnZhbGlkYXRlZCkpLAorICAgICAgICAgICAgbV9vdXQuZXF1YWwo
c3RhdGUsIG1fb3V0LmNvbnN0SW50MzIoSXNJbnZhbGlkYXRlZCkpLAogICAgICAgICAgICAgdXN1
YWxseShjb250aW51YXRpb24pLCByYXJlbHkoaXNOb3RJbnZhbGlkYXRlZCkpOwogICAgICAgICAK
ICAgICAgICAgTEJhc2ljQmxvY2sgbGFzdE5leHQgPSBtX291dC5hcHBlbmRUbyhpc05vdEludmFs
aWRhdGVkLCBjb250aW51YXRpb24pOwpAQCAtNDk0NCwxNiArNDkzMSwxNSBAQCBwcml2YXRlOgog
ICAgICAgICAgICAgCiAgICAgICAgICAgICBWZWN0b3I8VmFsdWVGcm9tQmxvY2ssIDI+IGNoYXJh
Y3RlcnM7CiAgICAgICAgICAgICBtX291dC5hcHBlbmRUbyhpczhCaXQsIGlzMTZCaXQpOwotICAg
ICAgICAgICAgY2hhcmFjdGVycy5hcHBlbmQobV9vdXQuYW5jaG9yKAotICAgICAgICAgICAgICAg
IG1fb3V0Lnplcm9FeHQobV9vdXQubG9hZDgoY2hhcmFjdGVyRGF0YSwgbV9oZWFwcy5jaGFyYWN0
ZXJzOFswXSksIG1fb3V0LmludDE2KSkpOworICAgICAgICAgICAgY2hhcmFjdGVycy5hcHBlbmQo
bV9vdXQuYW5jaG9yKG1fb3V0LmxvYWQ4WmVyb0V4dDMyKGNoYXJhY3RlckRhdGEsIG1faGVhcHMu
Y2hhcmFjdGVyczhbMF0pKSk7CiAgICAgICAgICAgICBtX291dC5qdW1wKGNvbnRpbnVhdGlvbik7
CiAgICAgICAgICAgICAKICAgICAgICAgICAgIG1fb3V0LmFwcGVuZFRvKGlzMTZCaXQsIGNvbnRp
bnVhdGlvbik7Ci0gICAgICAgICAgICBjaGFyYWN0ZXJzLmFwcGVuZChtX291dC5hbmNob3IobV9v
dXQubG9hZDE2KGNoYXJhY3RlckRhdGEsIG1faGVhcHMuY2hhcmFjdGVyczE2WzBdKSkpOworICAg
ICAgICAgICAgY2hhcmFjdGVycy5hcHBlbmQobV9vdXQuYW5jaG9yKG1fb3V0LmxvYWQxNlplcm9F
eHQzMihjaGFyYWN0ZXJEYXRhLCBtX2hlYXBzLmNoYXJhY3RlcnMxNlswXSkpKTsKICAgICAgICAg
ICAgIG1fb3V0Lmp1bXAoY29udGludWF0aW9uKTsKICAgICAgICAgICAgIAogICAgICAgICAgICAg
bV9vdXQuYXBwZW5kVG8oY29udGludWF0aW9uLCBsYXN0TmV4dCk7Ci0gICAgICAgICAgICBidWls
ZFN3aXRjaChkYXRhLCBtX291dC5pbnQxNiwgbV9vdXQucGhpKG1fb3V0LmludDE2LCBjaGFyYWN0
ZXJzKSk7CisgICAgICAgICAgICBidWlsZFN3aXRjaChkYXRhLCBtX291dC5pbnQzMiwgbV9vdXQu
cGhpKG1fb3V0LmludDMyLCBjaGFyYWN0ZXJzKSk7CiAgICAgICAgICAgICByZXR1cm47CiAgICAg
ICAgIH0KICAgICAgICAgCkBAIC01MjgxLDkgKzUyNjcsOSBAQCBwcml2YXRlOgogICAgIHsKICAg
ICAgICAgc3BlY3VsYXRlKAogICAgICAgICAgICAgVW5jb3VudGFibGUsIG5vVmFsdWUoKSwgMCwK
LSAgICAgICAgICAgIG1fb3V0LnRlc3RJc1plcm84KAotICAgICAgICAgICAgICAgIG1fb3V0Lmxv
YWQ4KGxvd0NlbGwobV9ub2RlLT5jaGlsZDEoKSksIG1faGVhcHMuSlNDZWxsX3R5cGVJbmZvRmxh
Z3MpLAotICAgICAgICAgICAgICAgIG1fb3V0LmNvbnN0SW50OChJbXBsZW1lbnRzRGVmYXVsdEhh
c0luc3RhbmNlKSkpOworICAgICAgICAgICAgbV9vdXQudGVzdElzWmVybzMyKAorICAgICAgICAg
ICAgICAgIG1fb3V0LmxvYWQ4WmVyb0V4dDMyKGxvd0NlbGwobV9ub2RlLT5jaGlsZDEoKSksIG1f
aGVhcHMuSlNDZWxsX3R5cGVJbmZvRmxhZ3MpLAorICAgICAgICAgICAgICAgIG1fb3V0LmNvbnN0
SW50MzIoSW1wbGVtZW50c0RlZmF1bHRIYXNJbnN0YW5jZSkpKTsKICAgICB9CiAgICAgCiAgICAg
dm9pZCBjb21waWxlSW5zdGFuY2VPZigpCkBAIC01Nzc2LDggKzU3NjIsOCBAQCBwcml2YXRlOgog
ICAgICAgICBMQmFzaWNCbG9jayB0aW1lckRpZEZpcmUgPSBGVExfTkVXX0JMT0NLKG1fb3V0LCAo
IkNoZWNrV2F0Y2hkb2dUaW1lciB0aW1lciBkaWQgZmlyZSIpKTsKICAgICAgICAgTEJhc2ljQmxv
Y2sgY29udGludWF0aW9uID0gRlRMX05FV19CTE9DSyhtX291dCwgKCJDaGVja1dhdGNoZG9nVGlt
ZXIgY29udGludWF0aW9uIikpOwogICAgICAgICAKLSAgICAgICAgTFZhbHVlIHN0YXRlID0gbV9v
dXQubG9hZDgobV9vdXQuYWJzb2x1dGUodm0oKS53YXRjaGRvZy0+dGltZXJEaWRGaXJlQWRkcmVz
cygpKSk7Ci0gICAgICAgIG1fb3V0LmJyYW5jaChtX291dC5lcXVhbChzdGF0ZSwgbV9vdXQuY29u
c3RJbnQ4KDApKSwKKyAgICAgICAgTFZhbHVlIHN0YXRlID0gbV9vdXQubG9hZDhaZXJvRXh0MzIo
bV9vdXQuYWJzb2x1dGUodm0oKS53YXRjaGRvZy0+dGltZXJEaWRGaXJlQWRkcmVzcygpKSk7Cisg
ICAgICAgIG1fb3V0LmJyYW5jaChtX291dC5pc1plcm8zMihzdGF0ZSksCiAgICAgICAgICAgICB1
c3VhbGx5KGNvbnRpbnVhdGlvbiksIHJhcmVseSh0aW1lckRpZEZpcmUpKTsKIAogICAgICAgICBM
QmFzaWNCbG9jayBsYXN0TmV4dCA9IG1fb3V0LmFwcGVuZFRvKHRpbWVyRGlkRmlyZSwgY29udGlu
dWF0aW9uKTsKQEAgLTY0NTMsOSArNjQzOSw5IEBAIHByaXZhdGU6CiAgICAgICAgIEZUTF9UWVBF
X0NIRUNLKGpzVmFsdWVWYWx1ZShjZWxsKSwgZWRnZSwgZmlsdGVyLCBpc05vdE9iamVjdChjZWxs
KSk7CiAgICAgICAgIHNwZWN1bGF0ZSgKICAgICAgICAgICAgIEJhZFR5cGUsIGpzVmFsdWVWYWx1
ZShjZWxsKSwgZWRnZS5ub2RlKCksCi0gICAgICAgICAgICBtX291dC50ZXN0Tm9uWmVybzgoCi0g
ICAgICAgICAgICAgICAgbV9vdXQubG9hZDgoY2VsbCwgbV9oZWFwcy5KU0NlbGxfdHlwZUluZm9G
bGFncyksCi0gICAgICAgICAgICAgICAgbV9vdXQuY29uc3RJbnQ4KE1hc3F1ZXJhZGVzQXNVbmRl
ZmluZWQpKSk7CisgICAgICAgICAgICBtX291dC50ZXN0Tm9uWmVybzMyKAorICAgICAgICAgICAg
ICAgIG1fb3V0LmxvYWQ4WmVyb0V4dDMyKGNlbGwsIG1faGVhcHMuSlNDZWxsX3R5cGVJbmZvRmxh
Z3MpLAorICAgICAgICAgICAgICAgIG1fb3V0LmNvbnN0SW50MzIoTWFzcXVlcmFkZXNBc1VuZGVm
aW5lZCkpKTsKICAgICB9CiAgICAgCiAgICAgdm9pZCBub25TcGVjdWxhdGl2ZUNvbXBhcmUoTElu
dFByZWRpY2F0ZSBpbnRDb25kaXRpb24sIFNfSklUT3BlcmF0aW9uX0VKSiBoZWxwZXJGdW5jdGlv
bikKQEAgLTY4MDMsOSArNjc4OSw5IEBAIHByaXZhdGU6CiAgICAgICAgICAgICAgICAgcmVzdWx0
cy5hcHBlbmQobV9vdXQuYW5jaG9yKG1fb3V0LmJvb2xlYW5UcnVlKSk7CiAgICAgICAgICAgICAg
ICAgCiAgICAgICAgICAgICAgICAgbV9vdXQuYnJhbmNoKAotICAgICAgICAgICAgICAgICAgICBt
X291dC50ZXN0SXNaZXJvOCgKLSAgICAgICAgICAgICAgICAgICAgICAgIG1fb3V0LmxvYWQ4KHZh
bHVlLCBtX2hlYXBzLkpTQ2VsbF90eXBlSW5mb0ZsYWdzKSwKLSAgICAgICAgICAgICAgICAgICAg
ICAgIG1fb3V0LmNvbnN0SW50OChNYXNxdWVyYWRlc0FzVW5kZWZpbmVkKSksCisgICAgICAgICAg
ICAgICAgICAgIG1fb3V0LnRlc3RJc1plcm8zMigKKyAgICAgICAgICAgICAgICAgICAgICAgIG1f
b3V0LmxvYWQ4WmVyb0V4dDMyKHZhbHVlLCBtX2hlYXBzLkpTQ2VsbF90eXBlSW5mb0ZsYWdzKSwK
KyAgICAgICAgICAgICAgICAgICAgICAgIG1fb3V0LmNvbnN0SW50MzIoTWFzcXVlcmFkZXNBc1Vu
ZGVmaW5lZCkpLAogICAgICAgICAgICAgICAgICAgICB1c3VhbGx5KGNvbnRpbnVhdGlvbiksIHJh
cmVseShtYXNxdWVyYWRlc0Nhc2UpKTsKICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAg
ICBtX291dC5hcHBlbmRUbyhtYXNxdWVyYWRlc0Nhc2UpOwpAQCAtNjkwMSw5ICs2ODg3LDkgQEAg
cHJpdmF0ZToKICAgICAgICAgICAgIHJlc3VsdHMuYXBwZW5kKG1fb3V0LmFuY2hvcihtX291dC5i
b29sZWFuRmFsc2UpKTsKICAgICAgICAgICAgIAogICAgICAgICAgICAgbV9vdXQuYnJhbmNoKAot
ICAgICAgICAgICAgICAgIG1fb3V0LnRlc3ROb25aZXJvOCgKLSAgICAgICAgICAgICAgICAgICAg
bV9vdXQubG9hZDgodmFsdWUsIG1faGVhcHMuSlNDZWxsX3R5cGVJbmZvRmxhZ3MpLAotICAgICAg
ICAgICAgICAgICAgICBtX291dC5jb25zdEludDgoTWFzcXVlcmFkZXNBc1VuZGVmaW5lZCkpLAor
ICAgICAgICAgICAgICAgIG1fb3V0LnRlc3ROb25aZXJvMzIoCisgICAgICAgICAgICAgICAgICAg
IG1fb3V0LmxvYWQ4WmVyb0V4dDMyKHZhbHVlLCBtX2hlYXBzLkpTQ2VsbF90eXBlSW5mb0ZsYWdz
KSwKKyAgICAgICAgICAgICAgICAgICAgbV9vdXQuY29uc3RJbnQzMihNYXNxdWVyYWRlc0FzVW5k
ZWZpbmVkKSksCiAgICAgICAgICAgICAgICAgcmFyZWx5KG1hc3F1ZXJhZGVzQ2FzZSksIHVzdWFs
bHkoY29udGludWF0aW9uKSk7CiAgICAgICAgICAgICAKICAgICAgICAgICAgIG1fb3V0LmFwcGVu
ZFRvKG1hc3F1ZXJhZGVzQ2FzZSwgcHJpbWl0aXZlQ2FzZSk7CkBAIC03MTU3LDggKzcxNDMsOCBA
QCBwcml2YXRlOgogICAgICAgICBmb3IgKHVuc2lnbmVkIGkgPSBudW1DaGVja2VkOyBpIDwgY29t
bW9uQ2hhcnM7ICsraSkgewogICAgICAgICAgICAgbV9vdXQuY2hlY2soCiAgICAgICAgICAgICAg
ICAgbV9vdXQubm90RXF1YWwoCi0gICAgICAgICAgICAgICAgICAgIG1fb3V0LmxvYWQ4KGJ1ZmZl
ciwgbV9oZWFwcy5jaGFyYWN0ZXJzOFtpXSksCi0gICAgICAgICAgICAgICAgICAgIG1fb3V0LmNv
bnN0SW50OChjYXNlc1tiZWdpbl0uc3RyaW5nLT5hdChpKSkpLAorICAgICAgICAgICAgICAgICAg
ICBtX291dC5sb2FkOFplcm9FeHQzMihidWZmZXIsIG1faGVhcHMuY2hhcmFjdGVyczhbaV0pLAor
ICAgICAgICAgICAgICAgICAgICBtX291dC5jb25zdEludDMyKHN0YXRpY19jYXN0PHVpbnQxNl90
PihjYXNlc1tiZWdpbl0uc3RyaW5nLT5hdChpKSkpKSwKICAgICAgICAgICAgICAgICB1bnN1cmUo
ZmFsbFRocm91Z2gpKTsKICAgICAgICAgfQogICAgICAgICAKQEAgLTcxOTUsNyArNzE4MSw3IEBA
IHByaXZhdGU6CiAgICAgICAgIAogICAgICAgICBERkdfQVNTRVJUKG1fZ3JhcGgsIG1fbm9kZSwg
ZW5kID49IGJlZ2luICsgMik7CiAgICAgICAgIAotICAgICAgICBMVmFsdWUgdW5jaGVja2VkQ2hh
ciA9IG1fb3V0LmxvYWQ4KGJ1ZmZlciwgbV9oZWFwcy5jaGFyYWN0ZXJzOFtjb21tb25DaGFyc10p
OworICAgICAgICBMVmFsdWUgdW5jaGVja2VkQ2hhciA9IG1fb3V0LmxvYWQ4WmVyb0V4dDMyKGJ1
ZmZlciwgbV9oZWFwcy5jaGFyYWN0ZXJzOFtjb21tb25DaGFyc10pOwogICAgICAgICAKICAgICAg
ICAgVmVjdG9yPENoYXJhY3RlckNhc2U+IGNoYXJhY3RlckNhc2VzOwogICAgICAgICBDaGFyYWN0
ZXJDYXNlIGN1cnJlbnRDYXNlKGNhc2VzW2JlZ2luXS5zdHJpbmctPmF0KGNvbW1vbkNoYXJzKSwg
YmVnaW4sIGJlZ2luICsgMSk7CkBAIC03MjE5LDcgKzcyMDUsNyBAQCBwcml2YXRlOgogICAgICAg
ICAgICAgaWYgKGkpCiAgICAgICAgICAgICAgICAgREZHX0FTU0VSVChtX2dyYXBoLCBtX25vZGUs
IGNoYXJhY3RlckNhc2VzW2kgLSAxXS5jaGFyYWN0ZXIgPCBjaGFyYWN0ZXJDYXNlc1tpXS5jaGFy
YWN0ZXIpOwogICAgICAgICAgICAgc3dpdGNoQ2FzZXMuYXBwZW5kKFN3aXRjaENhc2UoCi0gICAg
ICAgICAgICAgICAgbV9vdXQuY29uc3RJbnQ4KGNoYXJhY3RlckNhc2VzW2ldLmNoYXJhY3Rlciks
IGNoYXJhY3RlckJsb2Nrc1tpXSwgV2VpZ2h0KCkpKTsKKyAgICAgICAgICAgICAgICBtX291dC5j
b25zdEludDMyKGNoYXJhY3RlckNhc2VzW2ldLmNoYXJhY3RlciksIGNoYXJhY3RlckJsb2Nrc1tp
XSwgV2VpZ2h0KCkpKTsKICAgICAgICAgfQogICAgICAgICBtX291dC5zd2l0Y2hJbnN0cnVjdGlv
bih1bmNoZWNrZWRDaGFyLCBzd2l0Y2hDYXNlcywgZmFsbFRocm91Z2gsIFdlaWdodCgpKTsKICAg
ICAgICAgCkBAIC04MzEzLDggKzgyOTksOCBAQCBwcml2YXRlOgogICAgICAgICBpZiAoTFZhbHVl
IHByb3ZlbiA9IGlzUHJvdmVuVmFsdWUodHlwZSAmIFNwZWNDZWxsLCBTcGVjT2JqZWN0KSkKICAg
ICAgICAgICAgIHJldHVybiBwcm92ZW47CiAgICAgICAgIHJldHVybiBtX291dC5hYm92ZU9yRXF1
YWwoCi0gICAgICAgICAgICBtX291dC5sb2FkOChjZWxsLCBtX2hlYXBzLkpTQ2VsbF90eXBlSW5m
b1R5cGUpLAotICAgICAgICAgICAgbV9vdXQuY29uc3RJbnQ4KE9iamVjdFR5cGUpKTsKKyAgICAg
ICAgICAgIG1fb3V0LmxvYWQ4WmVyb0V4dDMyKGNlbGwsIG1faGVhcHMuSlNDZWxsX3R5cGVJbmZv
VHlwZSksCisgICAgICAgICAgICBtX291dC5jb25zdEludDMyKE9iamVjdFR5cGUpKTsKICAgICB9
CiAKICAgICBMVmFsdWUgaXNOb3RPYmplY3QoTFZhbHVlIGNlbGwsIFNwZWN1bGF0ZWRUeXBlIHR5
cGUgPSBTcGVjRnVsbFRvcCkKQEAgLTgzMjIsOCArODMwOCw4IEBAIHByaXZhdGU6CiAgICAgICAg
IGlmIChMVmFsdWUgcHJvdmVuID0gaXNQcm92ZW5WYWx1ZSh0eXBlICYgU3BlY0NlbGwsIH5TcGVj
T2JqZWN0KSkKICAgICAgICAgICAgIHJldHVybiBwcm92ZW47CiAgICAgICAgIHJldHVybiBtX291
dC5iZWxvdygKLSAgICAgICAgICAgIG1fb3V0LmxvYWQ4KGNlbGwsIG1faGVhcHMuSlNDZWxsX3R5
cGVJbmZvVHlwZSksCi0gICAgICAgICAgICBtX291dC5jb25zdEludDgoT2JqZWN0VHlwZSkpOwor
ICAgICAgICAgICAgbV9vdXQubG9hZDhaZXJvRXh0MzIoY2VsbCwgbV9oZWFwcy5KU0NlbGxfdHlw
ZUluZm9UeXBlKSwKKyAgICAgICAgICAgIG1fb3V0LmNvbnN0SW50MzIoT2JqZWN0VHlwZSkpOwog
ICAgIH0KIAogICAgIExWYWx1ZSBpc05vdFN0cmluZyhMVmFsdWUgY2VsbCwgU3BlY3VsYXRlZFR5
cGUgdHlwZSA9IFNwZWNGdWxsVG9wKQpAQCAtODM1OSw3ICs4MzQ1LDcgQEAgcHJpdmF0ZToKICAg
ICAgICAgY2FzZSBBcnJheTo6SW50MzI6CiAgICAgICAgIGNhc2UgQXJyYXk6OkRvdWJsZToKICAg
ICAgICAgY2FzZSBBcnJheTo6Q29udGlndW91czogewotICAgICAgICAgICAgTFZhbHVlIGluZGV4
aW5nVHlwZSA9IG1fb3V0LmxvYWQ4KGNlbGwsIG1faGVhcHMuSlNDZWxsX2luZGV4aW5nVHlwZSk7
CisgICAgICAgICAgICBMVmFsdWUgaW5kZXhpbmdUeXBlID0gbV9vdXQubG9hZDhaZXJvRXh0MzIo
Y2VsbCwgbV9oZWFwcy5KU0NlbGxfaW5kZXhpbmdUeXBlKTsKICAgICAgICAgICAgIAogICAgICAg
ICAgICAgc3dpdGNoIChhcnJheU1vZGUuYXJyYXlDbGFzcygpKSB7CiAgICAgICAgICAgICBjYXNl
IEFycmF5OjpPcmlnaW5hbEFycmF5OgpAQCAtODM2OCwxOCArODM1NCwxOCBAQCBwcml2YXRlOgog
ICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgY2FzZSBBcnJheTo6QXJyYXk6CiAgICAgICAg
ICAgICAgICAgcmV0dXJuIG1fb3V0LmVxdWFsKAotICAgICAgICAgICAgICAgICAgICBtX291dC5i
aXRBbmQoaW5kZXhpbmdUeXBlLCBtX291dC5jb25zdEludDgoSXNBcnJheSB8IEluZGV4aW5nU2hh
cGVNYXNrKSksCisgICAgICAgICAgICAgICAgICAgIG1fb3V0LmJpdEFuZChpbmRleGluZ1R5cGUs
IG1fb3V0LmNvbnN0SW50MzIoSXNBcnJheSB8IEluZGV4aW5nU2hhcGVNYXNrKSksCiAgICAgICAg
ICAgICAgICAgICAgIG1fb3V0LmNvbnN0SW50OChJc0FycmF5IHwgYXJyYXlNb2RlLnNoYXBlTWFz
aygpKSk7CiAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICBjYXNlIEFycmF5OjpOb25BcnJh
eToKICAgICAgICAgICAgIGNhc2UgQXJyYXk6Ok9yaWdpbmFsTm9uQXJyYXk6CiAgICAgICAgICAg
ICAgICAgcmV0dXJuIG1fb3V0LmVxdWFsKAotICAgICAgICAgICAgICAgICAgICBtX291dC5iaXRB
bmQoaW5kZXhpbmdUeXBlLCBtX291dC5jb25zdEludDgoSXNBcnJheSB8IEluZGV4aW5nU2hhcGVN
YXNrKSksCisgICAgICAgICAgICAgICAgICAgIG1fb3V0LmJpdEFuZChpbmRleGluZ1R5cGUsIG1f
b3V0LmNvbnN0SW50MzIoSXNBcnJheSB8IEluZGV4aW5nU2hhcGVNYXNrKSksCiAgICAgICAgICAg
ICAgICAgICAgIG1fb3V0LmNvbnN0SW50OChhcnJheU1vZGUuc2hhcGVNYXNrKCkpKTsKICAgICAg
ICAgICAgICAgICAKICAgICAgICAgICAgIGNhc2UgQXJyYXk6OlBvc3NpYmx5QXJyYXk6CiAgICAg
ICAgICAgICAgICAgcmV0dXJuIG1fb3V0LmVxdWFsKAotICAgICAgICAgICAgICAgICAgICBtX291
dC5iaXRBbmQoaW5kZXhpbmdUeXBlLCBtX291dC5jb25zdEludDgoSW5kZXhpbmdTaGFwZU1hc2sp
KSwKKyAgICAgICAgICAgICAgICAgICAgbV9vdXQuYml0QW5kKGluZGV4aW5nVHlwZSwgbV9vdXQu
Y29uc3RJbnQzMihJbmRleGluZ1NoYXBlTWFzaykpLAogICAgICAgICAgICAgICAgICAgICBtX291
dC5jb25zdEludDgoYXJyYXlNb2RlLnNoYXBlTWFzaygpKSk7CiAgICAgICAgICAgICB9CiAgICAg
ICAgICAgICAKQEAgLTgzODgsMTggKzgzNzQsMTggQEAgcHJpdmF0ZToKICAgICAgICAgICAgIAog
ICAgICAgICBjYXNlIEFycmF5OjpEaXJlY3RBcmd1bWVudHM6CiAgICAgICAgICAgICByZXR1cm4g
bV9vdXQuZXF1YWwoCi0gICAgICAgICAgICAgICAgbV9vdXQubG9hZDgoY2VsbCwgbV9oZWFwcy5K
U0NlbGxfdHlwZUluZm9UeXBlKSwKLSAgICAgICAgICAgICAgICBtX291dC5jb25zdEludDgoRGly
ZWN0QXJndW1lbnRzVHlwZSkpOworICAgICAgICAgICAgICAgIG1fb3V0LmxvYWQ4WmVyb0V4dDMy
KGNlbGwsIG1faGVhcHMuSlNDZWxsX3R5cGVJbmZvVHlwZSksCisgICAgICAgICAgICAgICAgbV9v
dXQuY29uc3RJbnQzMihEaXJlY3RBcmd1bWVudHNUeXBlKSk7CiAgICAgICAgICAgICAKICAgICAg
ICAgY2FzZSBBcnJheTo6U2NvcGVkQXJndW1lbnRzOgogICAgICAgICAgICAgcmV0dXJuIG1fb3V0
LmVxdWFsKAotICAgICAgICAgICAgICAgIG1fb3V0LmxvYWQ4KGNlbGwsIG1faGVhcHMuSlNDZWxs
X3R5cGVJbmZvVHlwZSksCi0gICAgICAgICAgICAgICAgbV9vdXQuY29uc3RJbnQ4KFNjb3BlZEFy
Z3VtZW50c1R5cGUpKTsKKyAgICAgICAgICAgICAgICBtX291dC5sb2FkOFplcm9FeHQzMihjZWxs
LCBtX2hlYXBzLkpTQ2VsbF90eXBlSW5mb1R5cGUpLAorICAgICAgICAgICAgICAgIG1fb3V0LmNv
bnN0SW50MzIoU2NvcGVkQXJndW1lbnRzVHlwZSkpOwogICAgICAgICAgICAgCiAgICAgICAgIGRl
ZmF1bHQ6CiAgICAgICAgICAgICByZXR1cm4gbV9vdXQuZXF1YWwoCi0gICAgICAgICAgICAgICAg
bV9vdXQubG9hZDgoY2VsbCwgbV9oZWFwcy5KU0NlbGxfdHlwZUluZm9UeXBlKSwgCi0gICAgICAg
ICAgICAgICAgbV9vdXQuY29uc3RJbnQ4KHR5cGVGb3JUeXBlZEFycmF5VHlwZShhcnJheU1vZGUu
dHlwZWRBcnJheVR5cGUoKSkpKTsKKyAgICAgICAgICAgICAgICBtX291dC5sb2FkOFplcm9FeHQz
MihjZWxsLCBtX2hlYXBzLkpTQ2VsbF90eXBlSW5mb1R5cGUpLAorICAgICAgICAgICAgICAgIG1f
b3V0LmNvbnN0SW50MzIodHlwZUZvclR5cGVkQXJyYXlUeXBlKGFycmF5TW9kZS50eXBlZEFycmF5
VHlwZSgpKSkpOwogICAgICAgICB9CiAgICAgfQogICAgIApAQCAtODQyMCwxNiArODQwNiwxNiBA
QCBwcml2YXRlOgogICAgIHsKICAgICAgICAgaWYgKCEodHlwZSAmIFNwZWNPYmplY3RPdGhlcikp
CiAgICAgICAgICAgICByZXR1cm4gbV9vdXQuYm9vbGVhbkZhbHNlOwotICAgICAgICByZXR1cm4g
bV9vdXQudGVzdE5vblplcm84KAotICAgICAgICAgICAgbV9vdXQubG9hZDgoY2VsbCwgbV9oZWFw
cy5KU0NlbGxfdHlwZUluZm9GbGFncyksCi0gICAgICAgICAgICBtX291dC5jb25zdEludDgoTWFz
cXVlcmFkZXNBc1VuZGVmaW5lZCB8IFR5cGVPZlNob3VsZENhbGxHZXRDYWxsRGF0YSkpOworICAg
ICAgICByZXR1cm4gbV9vdXQudGVzdE5vblplcm8zMigKKyAgICAgICAgICAgIG1fb3V0LmxvYWQ4
WmVyb0V4dDMyKGNlbGwsIG1faGVhcHMuSlNDZWxsX3R5cGVJbmZvRmxhZ3MpLAorICAgICAgICAg
ICAgbV9vdXQuY29uc3RJbnQzMihNYXNxdWVyYWRlc0FzVW5kZWZpbmVkIHwgVHlwZU9mU2hvdWxk
Q2FsbEdldENhbGxEYXRhKSk7CiAgICAgfQogICAgIAogICAgIExWYWx1ZSBpc1R5cGUoTFZhbHVl
IGNlbGwsIEpTVHlwZSB0eXBlKQogICAgIHsKICAgICAgICAgcmV0dXJuIG1fb3V0LmVxdWFsKAot
ICAgICAgICAgICAgbV9vdXQubG9hZDgoY2VsbCwgbV9oZWFwcy5KU0NlbGxfdHlwZUluZm9UeXBl
KSwKLSAgICAgICAgICAgIG1fb3V0LmNvbnN0SW50OCh0eXBlKSk7CisgICAgICAgICAgICBtX291
dC5sb2FkOFplcm9FeHQzMihjZWxsLCBtX2hlYXBzLkpTQ2VsbF90eXBlSW5mb1R5cGUpLAorICAg
ICAgICAgICAgbV9vdXQuY29uc3RJbnQzMih0eXBlKSk7CiAgICAgfQogICAgIAogICAgIExWYWx1
ZSBpc05vdFR5cGUoTFZhbHVlIGNlbGwsIEpTVHlwZSB0eXBlKQpAQCAtODU5NCw5ICs4NTgwLDkg
QEAgcHJpdmF0ZToKICAgICAgICAgCiAgICAgICAgIHNwZWN1bGF0ZSgKICAgICAgICAgICAgIEJh
ZFR5cGUsIGpzVmFsdWVWYWx1ZShjZWxsKSwgZWRnZS5ub2RlKCksCi0gICAgICAgICAgICBtX291
dC50ZXN0Tm9uWmVybzgoCi0gICAgICAgICAgICAgICAgbV9vdXQubG9hZDgoY2VsbCwgbV9oZWFw
cy5KU0NlbGxfdHlwZUluZm9GbGFncyksCi0gICAgICAgICAgICAgICAgbV9vdXQuY29uc3RJbnQ4
KE1hc3F1ZXJhZGVzQXNVbmRlZmluZWQpKSk7CisgICAgICAgICAgICBtX291dC50ZXN0Tm9uWmVy
bzMyKAorICAgICAgICAgICAgICAgIG1fb3V0LmxvYWQ4WmVyb0V4dDMyKGNlbGwsIG1faGVhcHMu
SlNDZWxsX3R5cGVJbmZvRmxhZ3MpLAorICAgICAgICAgICAgICAgIG1fb3V0LmNvbnN0SW50MzIo
TWFzcXVlcmFkZXNBc1VuZGVmaW5lZCkpKTsKICAgICB9CiAgICAgCiAgICAgdm9pZCBzcGVjdWxh
dGVOdW1iZXIoRWRnZSBlZGdlKQpAQCAtODcxMyw3ICs4Njk5LDcgQEAgcHJpdmF0ZToKICAgICAK
ICAgICBMVmFsdWUgbG9hZENlbGxTdGF0ZShMVmFsdWUgYmFzZSkKICAgICB7Ci0gICAgICAgIHJl
dHVybiBtX291dC5sb2FkOChiYXNlLCBtX2hlYXBzLkpTQ2VsbF9jZWxsU3RhdGUpOworICAgICAg
ICByZXR1cm4gbV9vdXQubG9hZDhaZXJvRXh0MzIoYmFzZSwgbV9oZWFwcy5KU0NlbGxfY2VsbFN0
YXRlKTsKICAgICB9CiAKICAgICB2b2lkIGVtaXRTdG9yZUJhcnJpZXIoTFZhbHVlIGJhc2UpCkBA
IC04NzIyLDcgKzg3MDgsNyBAQCBwcml2YXRlOgogICAgICAgICBMQmFzaWNCbG9jayBjb250aW51
YXRpb24gPSBGVExfTkVXX0JMT0NLKG1fb3V0LCAoIlN0b3JlIGJhcnJpZXIgY29udGludWF0aW9u
IikpOwogCiAgICAgICAgIG1fb3V0LmJyYW5jaCgKLSAgICAgICAgICAgIG1fb3V0Lm5vdFplcm84
KGxvYWRDZWxsU3RhdGUoYmFzZSkpLCB1c3VhbGx5KGNvbnRpbnVhdGlvbiksIHJhcmVseShzbG93
UGF0aCkpOworICAgICAgICAgICAgbV9vdXQubm90WmVybzMyKGxvYWRDZWxsU3RhdGUoYmFzZSkp
LCB1c3VhbGx5KGNvbnRpbnVhdGlvbiksIHJhcmVseShzbG93UGF0aCkpOwogCiAgICAgICAgIExC
YXNpY0Jsb2NrIGxhc3ROZXh0ID0gbV9vdXQuYXBwZW5kVG8oc2xvd1BhdGgsIGNvbnRpbnVhdGlv
bik7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMT3V0cHV0Lmgg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTE91dHB1dC5oCmluZGV4IDNjMjNmNDlkMGNk
NzkzODIxNTZlOWRhMWNmNzM2M2ZmMDdlMzExOWYuLjMwYzljYzExNTJkNDE0OWNlN2VjMmI4OTUw
MTBjMWU3ZTlmNzU2Y2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRM
T3V0cHV0LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExPdXRwdXQuaApAQCAt
ODksNyArODksNiBAQCBwdWJsaWM6CiAgICAgCiAgICAgTFZhbHVlIHBhcmFtKHVuc2lnbmVkIGlu
ZGV4KSB7IHJldHVybiBnZXRQYXJhbShtX2Z1bmN0aW9uLCBpbmRleCk7IH0KICAgICBMVmFsdWUg
Y29uc3RCb29sKGJvb2wgdmFsdWUpIHsgcmV0dXJuIGNvbnN0SW50KGJvb2xlYW4sIHZhbHVlKTsg
fQotICAgIExWYWx1ZSBjb25zdEludDgoaW50OF90IHZhbHVlKSB7IHJldHVybiBjb25zdEludChp
bnQ4LCB2YWx1ZSk7IH0KICAgICBMVmFsdWUgY29uc3RJbnQzMihpbnQzMl90IHZhbHVlKSB7IHJl
dHVybiBjb25zdEludChpbnQzMiwgdmFsdWUpOyB9CiAgICAgdGVtcGxhdGU8dHlwZW5hbWUgVD4K
ICAgICBMVmFsdWUgY29uc3RJbnRQdHIoVCogdmFsdWUpIHsgcmV0dXJuIGNvbnN0SW50KGludFB0
ciwgYml0d2lzZV9jYXN0PGludHB0cl90Pih2YWx1ZSkpOyB9CkBAIC0yNDIsMjAgKzI0MSwyMCBA
QCBwdWJsaWM6CiAgICAgCiAgICAgTFZhbHVlIGxvYWQoVHlwZWRQb2ludGVyLCBMVHlwZSByZWZU
eXBlKTsKICAgICB2b2lkIHN0b3JlKExWYWx1ZSwgVHlwZWRQb2ludGVyLCBMVHlwZSByZWZUeXBl
KTsKLSAgICAKLSAgICBMVmFsdWUgbG9hZDgoVHlwZWRQb2ludGVyIHBvaW50ZXIpIHsgcmV0dXJu
IGxvYWQocG9pbnRlciwgcmVmOCk7IH0KLSAgICBMVmFsdWUgbG9hZDE2KFR5cGVkUG9pbnRlciBw
b2ludGVyKSB7IHJldHVybiBsb2FkKHBvaW50ZXIsIHJlZjE2KTsgfQorCisgICAgTFZhbHVlIGxv
YWQ4U2lnbkV4dDMyKFR5cGVkUG9pbnRlcik7CisgICAgTFZhbHVlIGxvYWQ4WmVyb0V4dDMyKFR5
cGVkUG9pbnRlcik7CisgICAgTFZhbHVlIGxvYWQxNlNpZ25FeHQzMihUeXBlZFBvaW50ZXIpOwor
ICAgIExWYWx1ZSBsb2FkMTZaZXJvRXh0MzIoVHlwZWRQb2ludGVyKTsKICAgICBMVmFsdWUgbG9h
ZDMyKFR5cGVkUG9pbnRlciBwb2ludGVyKSB7IHJldHVybiBsb2FkKHBvaW50ZXIsIHJlZjMyKTsg
fQogICAgIExWYWx1ZSBsb2FkNjQoVHlwZWRQb2ludGVyIHBvaW50ZXIpIHsgcmV0dXJuIGxvYWQo
cG9pbnRlciwgcmVmNjQpOyB9CiAgICAgTFZhbHVlIGxvYWRQdHIoVHlwZWRQb2ludGVyIHBvaW50
ZXIpIHsgcmV0dXJuIGxvYWQocG9pbnRlciwgcmVmUHRyKTsgfQogICAgIExWYWx1ZSBsb2FkRmxv
YXQoVHlwZWRQb2ludGVyIHBvaW50ZXIpIHsgcmV0dXJuIGxvYWQocG9pbnRlciwgcmVmRmxvYXQp
OyB9CiAgICAgTFZhbHVlIGxvYWREb3VibGUoVHlwZWRQb2ludGVyIHBvaW50ZXIpIHsgcmV0dXJu
IGxvYWQocG9pbnRlciwgcmVmRG91YmxlKTsgfQotICAgIHZvaWQgc3RvcmU4KExWYWx1ZSB2YWx1
ZSwgVHlwZWRQb2ludGVyIHBvaW50ZXIpIHsgc3RvcmUodmFsdWUsIHBvaW50ZXIsIHJlZjgpOyB9
CiAgICAgdm9pZCBzdG9yZTE2KExWYWx1ZSB2YWx1ZSwgVHlwZWRQb2ludGVyIHBvaW50ZXIpIHsg
c3RvcmUodmFsdWUsIHBvaW50ZXIsIHJlZjE2KTsgfQogICAgIHZvaWQgc3RvcmUzMihMVmFsdWUg
dmFsdWUsIFR5cGVkUG9pbnRlciBwb2ludGVyKSB7IHN0b3JlKHZhbHVlLCBwb2ludGVyLCByZWYz
Mik7IH0KICAgICB2b2lkIHN0b3JlNjQoTFZhbHVlIHZhbHVlLCBUeXBlZFBvaW50ZXIgcG9pbnRl
cikgeyBzdG9yZSh2YWx1ZSwgcG9pbnRlciwgcmVmNjQpOyB9CiAgICAgdm9pZCBzdG9yZVB0cihM
VmFsdWUgdmFsdWUsIFR5cGVkUG9pbnRlciBwb2ludGVyKSB7IHN0b3JlKHZhbHVlLCBwb2ludGVy
LCByZWZQdHIpOyB9Ci0gICAgdm9pZCBzdG9yZUZsb2F0KExWYWx1ZSB2YWx1ZSwgVHlwZWRQb2lu
dGVyIHBvaW50ZXIpIHsgc3RvcmUodmFsdWUsIHBvaW50ZXIsIHJlZkZsb2F0KTsgfQogICAgIHZv
aWQgc3RvcmVEb3VibGUoTFZhbHVlIHZhbHVlLCBUeXBlZFBvaW50ZXIgcG9pbnRlcikgeyBzdG9y
ZSh2YWx1ZSwgcG9pbnRlciwgcmVmRG91YmxlKTsgfQogCiAgICAgTFZhbHVlIGFkZFB0cihMVmFs
dWUgdmFsdWUsIHB0cmRpZmZfdCBpbW1lZGlhdGUgPSAwKQpAQCAtMjk0LDE0ICsyOTMsMTUgQEAg
cHVibGljOgogICAgIHsKICAgICAgICAgcmV0dXJuIFR5cGVkUG9pbnRlcihtX2hlYXBzLT5hYnNv
bHV0ZVthZGRyZXNzXSwgY29uc3RJbnRQdHIoYWRkcmVzcykpOwogICAgIH0KLSAgICAKLSAgICBM
VmFsdWUgbG9hZDgoTFZhbHVlIGJhc2UsIGNvbnN0IEFic3RyYWN0RmllbGQmIGZpZWxkKSB7IHJl
dHVybiBsb2FkOChhZGRyZXNzKGJhc2UsIGZpZWxkKSk7IH0KLSAgICBMVmFsdWUgbG9hZDE2KExW
YWx1ZSBiYXNlLCBjb25zdCBBYnN0cmFjdEZpZWxkJiBmaWVsZCkgeyByZXR1cm4gbG9hZDE2KGFk
ZHJlc3MoYmFzZSwgZmllbGQpKTsgfQorCisgICAgTFZhbHVlIGxvYWQ4U2lnbkV4dDMyKExWYWx1
ZSBiYXNlLCBjb25zdCBBYnN0cmFjdEZpZWxkJiBmaWVsZCkgeyByZXR1cm4gbG9hZDhTaWduRXh0
MzIoYWRkcmVzcyhiYXNlLCBmaWVsZCkpOyB9CisgICAgTFZhbHVlIGxvYWQ4WmVyb0V4dDMyKExW
YWx1ZSBiYXNlLCBjb25zdCBBYnN0cmFjdEZpZWxkJiBmaWVsZCkgeyByZXR1cm4gbG9hZDhaZXJv
RXh0MzIoYWRkcmVzcyhiYXNlLCBmaWVsZCkpOyB9CisgICAgTFZhbHVlIGxvYWQxNlNpZ25FeHQz
MihMVmFsdWUgYmFzZSwgY29uc3QgQWJzdHJhY3RGaWVsZCYgZmllbGQpIHsgcmV0dXJuIGxvYWQx
NlNpZ25FeHQzMihhZGRyZXNzKGJhc2UsIGZpZWxkKSk7IH0KKyAgICBMVmFsdWUgbG9hZDE2WmVy
b0V4dDMyKExWYWx1ZSBiYXNlLCBjb25zdCBBYnN0cmFjdEZpZWxkJiBmaWVsZCkgeyByZXR1cm4g
bG9hZDE2WmVyb0V4dDMyKGFkZHJlc3MoYmFzZSwgZmllbGQpKTsgfQogICAgIExWYWx1ZSBsb2Fk
MzIoTFZhbHVlIGJhc2UsIGNvbnN0IEFic3RyYWN0RmllbGQmIGZpZWxkKSB7IHJldHVybiBsb2Fk
MzIoYWRkcmVzcyhiYXNlLCBmaWVsZCkpOyB9CiAgICAgTFZhbHVlIGxvYWQ2NChMVmFsdWUgYmFz
ZSwgY29uc3QgQWJzdHJhY3RGaWVsZCYgZmllbGQpIHsgcmV0dXJuIGxvYWQ2NChhZGRyZXNzKGJh
c2UsIGZpZWxkKSk7IH0KICAgICBMVmFsdWUgbG9hZFB0cihMVmFsdWUgYmFzZSwgY29uc3QgQWJz
dHJhY3RGaWVsZCYgZmllbGQpIHsgcmV0dXJuIGxvYWRQdHIoYWRkcmVzcyhiYXNlLCBmaWVsZCkp
OyB9CiAgICAgTFZhbHVlIGxvYWREb3VibGUoTFZhbHVlIGJhc2UsIGNvbnN0IEFic3RyYWN0Rmll
bGQmIGZpZWxkKSB7IHJldHVybiBsb2FkRG91YmxlKGFkZHJlc3MoYmFzZSwgZmllbGQpKTsgfQot
ICAgIHZvaWQgc3RvcmU4KExWYWx1ZSB2YWx1ZSwgTFZhbHVlIGJhc2UsIGNvbnN0IEFic3RyYWN0
RmllbGQmIGZpZWxkKSB7IHN0b3JlOCh2YWx1ZSwgYWRkcmVzcyhiYXNlLCBmaWVsZCkpOyB9CiAg
ICAgdm9pZCBzdG9yZTMyKExWYWx1ZSB2YWx1ZSwgTFZhbHVlIGJhc2UsIGNvbnN0IEFic3RyYWN0
RmllbGQmIGZpZWxkKSB7IHN0b3JlMzIodmFsdWUsIGFkZHJlc3MoYmFzZSwgZmllbGQpKTsgfQog
ICAgIHZvaWQgc3RvcmU2NChMVmFsdWUgdmFsdWUsIExWYWx1ZSBiYXNlLCBjb25zdCBBYnN0cmFj
dEZpZWxkJiBmaWVsZCkgeyBzdG9yZTY0KHZhbHVlLCBhZGRyZXNzKGJhc2UsIGZpZWxkKSk7IH0K
ICAgICB2b2lkIHN0b3JlUHRyKExWYWx1ZSB2YWx1ZSwgTFZhbHVlIGJhc2UsIGNvbnN0IEFic3Ry
YWN0RmllbGQmIGZpZWxkKSB7IHN0b3JlUHRyKHZhbHVlLCBhZGRyZXNzKGJhc2UsIGZpZWxkKSk7
IH0KQEAgLTM0Nyw4ICszNDcsNiBAQCBwdWJsaWM6CiAgICAgTFZhbHVlIGRvdWJsZUdyZWF0ZXJU
aGFuT3JVbm9yZGVyZWQoTFZhbHVlIGxlZnQsIExWYWx1ZSByaWdodCkgeyByZXR1cm4gZmNtcChM
TFZNUmVhbFVHVCwgbGVmdCwgcmlnaHQpOyB9CiAgICAgTFZhbHVlIGRvdWJsZUdyZWF0ZXJUaGFu
T3JFcXVhbE9yVW5vcmRlcmVkKExWYWx1ZSBsZWZ0LCBMVmFsdWUgcmlnaHQpIHsgcmV0dXJuIGZj
bXAoTExWTVJlYWxVR0UsIGxlZnQsIHJpZ2h0KTsgfQogICAgIAotICAgIExWYWx1ZSBpc1plcm84
KExWYWx1ZSB2YWx1ZSkgeyByZXR1cm4gZXF1YWwodmFsdWUsIGludDhaZXJvKTsgfQotICAgIExW
YWx1ZSBub3RaZXJvOChMVmFsdWUgdmFsdWUpIHsgcmV0dXJuIG5vdEVxdWFsKHZhbHVlLCBpbnQ4
WmVybyk7IH0KICAgICBMVmFsdWUgaXNaZXJvMzIoTFZhbHVlIHZhbHVlKSB7IHJldHVybiBlcXVh
bCh2YWx1ZSwgaW50MzJaZXJvKTsgfQogICAgIExWYWx1ZSBub3RaZXJvMzIoTFZhbHVlIHZhbHVl
KSB7IHJldHVybiBub3RFcXVhbCh2YWx1ZSwgaW50MzJaZXJvKTsgfQogICAgIExWYWx1ZSBpc1pl
cm82NChMVmFsdWUgdmFsdWUpIHsgcmV0dXJuIGVxdWFsKHZhbHVlLCBpbnQ2NFplcm8pOyB9CkBA
IC0zNTYsOCArMzU0LDYgQEAgcHVibGljOgogICAgIExWYWx1ZSBpc051bGwoTFZhbHVlIHZhbHVl
KSB7IHJldHVybiBlcXVhbCh2YWx1ZSwgaW50UHRyWmVybyk7IH0KICAgICBMVmFsdWUgbm90TnVs
bChMVmFsdWUgdmFsdWUpIHsgcmV0dXJuIG5vdEVxdWFsKHZhbHVlLCBpbnRQdHJaZXJvKTsgfQog
ICAgIAotICAgIExWYWx1ZSB0ZXN0SXNaZXJvOChMVmFsdWUgdmFsdWUsIExWYWx1ZSBtYXNrKSB7
IHJldHVybiBpc1plcm84KGJpdEFuZCh2YWx1ZSwgbWFzaykpOyB9Ci0gICAgTFZhbHVlIHRlc3RO
b25aZXJvOChMVmFsdWUgdmFsdWUsIExWYWx1ZSBtYXNrKSB7IHJldHVybiBub3RaZXJvOChiaXRB
bmQodmFsdWUsIG1hc2spKTsgfQogICAgIExWYWx1ZSB0ZXN0SXNaZXJvMzIoTFZhbHVlIHZhbHVl
LCBMVmFsdWUgbWFzaykgeyByZXR1cm4gaXNaZXJvMzIoYml0QW5kKHZhbHVlLCBtYXNrKSk7IH0K
ICAgICBMVmFsdWUgdGVzdE5vblplcm8zMihMVmFsdWUgdmFsdWUsIExWYWx1ZSBtYXNrKSB7IHJl
dHVybiBub3RaZXJvMzIoYml0QW5kKHZhbHVlLCBtYXNrKSk7IH0KICAgICBMVmFsdWUgdGVzdElz
WmVybzY0KExWYWx1ZSB2YWx1ZSwgTFZhbHVlIG1hc2spIHsgcmV0dXJuIGlzWmVybzY0KGJpdEFu
ZCh2YWx1ZSwgbWFzaykpOyB9CkBAIC00NDMsNiArNDM5LDMwIEBAIHB1YmxpYzoKICAgICBMQmFz
aWNCbG9jayBtX25leHRCbG9jazsKIH07CiAKK0xWYWx1ZSBPdXRwdXQ6OmxvYWQ4U2lnbkV4dDMy
KFR5cGVkUG9pbnRlciBwb2ludGVyKQoreworICAgIExWYWx1ZSB2YWx1ZTggPSBsb2FkKHBvaW50
ZXIsIHJlZjgpOworICAgIHJldHVybiBzaWduRXh0KHZhbHVlOCwgaW50MzIpOworfQorCitMVmFs
dWUgT3V0cHV0Ojpsb2FkOFplcm9FeHQzMihUeXBlZFBvaW50ZXIgcG9pbnRlcikKK3sKKyAgICBM
VmFsdWUgdmFsdWU4ID0gbG9hZChwb2ludGVyLCByZWY4KTsKKyAgICByZXR1cm4gemVyb0V4dCh2
YWx1ZTgsIGludDMyKTsKK30KKworTFZhbHVlIE91dHB1dDo6bG9hZDE2U2lnbkV4dDMyKFR5cGVk
UG9pbnRlciBwb2ludGVyKQoreworICAgIExWYWx1ZSB2YWx1ZTE2ID0gbG9hZChwb2ludGVyLCBy
ZWYxNik7CisgICAgcmV0dXJuIHNpZ25FeHQodmFsdWUxNiwgaW50MzIpOworfQorCitMVmFsdWUg
T3V0cHV0Ojpsb2FkMTZaZXJvRXh0MzIoVHlwZWRQb2ludGVyIHBvaW50ZXIpCit7CisgICAgTFZh
bHVlIHZhbHVlMTYgPSBsb2FkKHBvaW50ZXIsIHJlZjE2KTsKKyAgICByZXR1cm4gemVyb0V4dCh2
YWx1ZTE2LCBpbnQzMik7Cit9CisKICNkZWZpbmUgRlRMX05FV19CTE9DSyhvdXRwdXQsIG5hbWVB
cmd1bWVudHMpIFwKICAgICAoTElLRUxZKCF2ZXJib3NlQ29tcGlsYXRpb25FbmFibGVkKCkpIFwK
ICAgICA/IChvdXRwdXQpLm5ld0Jsb2NrKCkgXAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>265656</attachid>
            <date>2015-11-16 20:40:01 -0800</date>
            <delta_ts>2015-11-16 21:06:00 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-151336-20151116203952.patch</filename>
            <type>text/plain</type>
            <size>25486</size>
            <attacher name="Benjamin Poulain">benjamin</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTkyNDk1CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCAy
MTZiYmRkZDMzOGIyN2Q5MTljOTlkMzYzYzcyOTQ2ODdiYTViMDQzLi4wZGJkNTY0YzA2ZWQyZmU4
M2I3ZDU5NGE0Yzg0ODY1MTZiZmYzOGMxIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw0OSBAQAorMjAxNS0xMS0xNiAgQmVuamFtaW4gUG91bGFpbiAgPGJwb3VsYWluQGFwcGxl
LmNvbT4KKworICAgICAgICBbSlNDXSBNYWtlIEZUTE91dHB1dCdzIGxvYWQ4KCkgYW5kIGxvYWQx
NigpIGNvbXBhdGlibGUgd2l0aCBCMworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MTUxMzM2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgQjMgZG9lcyBub3QgaGF2ZSA4Yml0IGFuZCAxNmJpdCB0eXBlcy4gTWFr
ZSBGVExPdXRwdXQgYWJzdHJhY3QgZW5vdWdoCisgICAgICAgIHRvIGhhbmRsZSBMTFZNIElSIGFu
ZCBCMy4KKworICAgICAgICAqIGZ0bC9GVExMb3dlckRGR1RvTExWTS5jcHA6CisgICAgICAgIChK
U0M6OkZUTDo6REZHOjpMb3dlckRGR1RvTExWTTo6Y29tcGlsZUdldEFycmF5TGVuZ3RoKToKKyAg
ICAgICAgKEpTQzo6RlRMOjpERkc6Okxvd2VyREZHVG9MTFZNOjpjb21waWxlR2V0QnlWYWwpOgor
ICAgICAgICAoSlNDOjpGVEw6OkRGRzo6TG93ZXJERkdUb0xMVk06OmNvbXBpbGVTdHJpbmdDaGFy
QXQpOgorICAgICAgICAoSlNDOjpGVEw6OkRGRzo6TG93ZXJERkdUb0xMVk06OmNvbXBpbGVTdHJp
bmdDaGFyQ29kZUF0KToKKyAgICAgICAgKEpTQzo6RlRMOjpERkc6Okxvd2VyREZHVG9MTFZNOjpj
b21waWxlTm90aWZ5V3JpdGUpOgorICAgICAgICAoSlNDOjpGVEw6OkRGRzo6TG93ZXJERkdUb0xM
Vk06OmNvbXBpbGVTd2l0Y2gpOgorICAgICAgICAoSlNDOjpGVEw6OkRGRzo6TG93ZXJERkdUb0xM
Vk06OmNvbXBpbGVDaGVja0hhc0luc3RhbmNlKToKKyAgICAgICAgKEpTQzo6RlRMOjpERkc6Okxv
d2VyREZHVG9MTFZNOjpjb21waWxlQ2hlY2tXYXRjaGRvZ1RpbWVyKToKKyAgICAgICAgKEpTQzo6
RlRMOjpERkc6Okxvd2VyREZHVG9MTFZNOjpzcGVjdWxhdGVUcnV0aHlPYmplY3QpOgorICAgICAg
ICAoSlNDOjpGVEw6OkRGRzo6TG93ZXJERkdUb0xMVk06OmJvb2xpZnkpOgorICAgICAgICAoSlND
OjpGVEw6OkRGRzo6TG93ZXJERkdUb0xMVk06OmVxdWFsTnVsbE9yVW5kZWZpbmVkKToKKyAgICAg
ICAgKEpTQzo6RlRMOjpERkc6Okxvd2VyREZHVG9MTFZNOjpzd2l0Y2hTdHJpbmdSZWN1cnNlKToK
KyAgICAgICAgKEpTQzo6RlRMOjpERkc6Okxvd2VyREZHVG9MTFZNOjppc09iamVjdCk6CisgICAg
ICAgIChKU0M6OkZUTDo6REZHOjpMb3dlckRGR1RvTExWTTo6aXNOb3RPYmplY3QpOgorICAgICAg
ICAoSlNDOjpGVEw6OkRGRzo6TG93ZXJERkdUb0xMVk06OmlzQXJyYXlUeXBlKToKKyAgICAgICAg
KEpTQzo6RlRMOjpERkc6Okxvd2VyREZHVG9MTFZNOjppc0V4b3RpY0ZvclR5cGVvZik6CisgICAg
ICAgIChKU0M6OkZUTDo6REZHOjpMb3dlckRGR1RvTExWTTo6aXNUeXBlKToKKyAgICAgICAgKEpT
Qzo6RlRMOjpERkc6Okxvd2VyREZHVG9MTFZNOjpzcGVjdWxhdGVOb25OdWxsT2JqZWN0KToKKyAg
ICAgICAgKEpTQzo6RlRMOjpERkc6Okxvd2VyREZHVG9MTFZNOjpsb2FkQ2VsbFN0YXRlKToKKyAg
ICAgICAgKEpTQzo6RlRMOjpERkc6Okxvd2VyREZHVG9MTFZNOjplbWl0U3RvcmVCYXJyaWVyKToK
KyAgICAgICAgKiBmdGwvRlRMT3V0cHV0Lmg6CisgICAgICAgIChKU0M6OkZUTDo6T3V0cHV0Ojps
b2FkOFNpZ25FeHQzMik6CisgICAgICAgIChKU0M6OkZUTDo6T3V0cHV0Ojpsb2FkOFplcm9FeHQz
Mik6CisgICAgICAgIChKU0M6OkZUTDo6T3V0cHV0Ojpsb2FkMTZTaWduRXh0MzIpOgorICAgICAg
ICAoSlNDOjpGVEw6Ok91dHB1dDo6bG9hZDE2WmVyb0V4dDMyKToKKyAgICAgICAgKEpTQzo6RlRM
OjpPdXRwdXQ6OmNvbnN0SW50OCk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkZUTDo6T3V0cHV0
Ojpsb2FkOCk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkZUTDo6T3V0cHV0Ojpsb2FkMTYpOiBE
ZWxldGVkLgorICAgICAgICAoSlNDOjpGVEw6Ok91dHB1dDo6c3RvcmU4KTogRGVsZXRlZC4KKyAg
ICAgICAgKEpTQzo6RlRMOjpPdXRwdXQ6OnN0b3JlRmxvYXQpOiBEZWxldGVkLgorICAgICAgICAo
SlNDOjpGVEw6Ok91dHB1dDo6aXNaZXJvOCk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkZUTDo6
T3V0cHV0Ojpub3RaZXJvOCk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkZUTDo6T3V0cHV0Ojp0
ZXN0SXNaZXJvOCk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkZUTDo6T3V0cHV0Ojp0ZXN0Tm9u
WmVybzgpOiBEZWxldGVkLgorCiAyMDE1LTExLTE2ICBCZW5qYW1pbiBQb3VsYWluICA8YmVuamFt
aW5Ad2Via2l0Lm9yZz4KIAogICAgICAgICBCdWlsZCBmaXggYWZ0ZXIgcjE5MjQ5MgpkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExMb3dlckRGR1RvTExWTS5jcHAgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTExvd2VyREZHVG9MTFZNLmNwcAppbmRleCBjOWE2
ODljZDZjMWNmZDZhNzU5OWNkYWNjMGJlNjVhOTI3OTY1Yzk3Li45ZjdiYjQ0MTBkZWFjYWQ0NGVh
YjI3YmQ0NzNhOGM4MjEwMmUwZmIwIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
ZnRsL0ZUTExvd2VyREZHVG9MTFZNLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRs
L0ZUTExvd2VyREZHVG9MTFZNLmNwcApAQCAtMjUxMSw3ICsyNTExLDcgQEAgcHJpdmF0ZToKICAg
ICAgICAgICAgIExWYWx1ZSBhcmd1bWVudHMgPSBsb3dDZWxsKG1fbm9kZS0+Y2hpbGQxKCkpOwog
ICAgICAgICAgICAgc3BlY3VsYXRlKAogICAgICAgICAgICAgICAgIEV4b3RpY09iamVjdE1vZGUs
IG5vVmFsdWUoKSwgbnVsbHB0ciwKLSAgICAgICAgICAgICAgICBtX291dC5ub3RaZXJvOChtX291
dC5sb2FkOChhcmd1bWVudHMsIG1faGVhcHMuU2NvcGVkQXJndW1lbnRzX292ZXJyb2RlVGhpbmdz
KSkpOworICAgICAgICAgICAgICAgIG1fb3V0Lm5vdFplcm8zMihtX291dC5sb2FkOFplcm9FeHQz
Mihhcmd1bWVudHMsIG1faGVhcHMuU2NvcGVkQXJndW1lbnRzX292ZXJyb2RlVGhpbmdzKSkpOwog
ICAgICAgICAgICAgc2V0SW50MzIobV9vdXQubG9hZDMyTm9uTmVnYXRpdmUoYXJndW1lbnRzLCBt
X2hlYXBzLlNjb3BlZEFyZ3VtZW50c190b3RhbExlbmd0aCkpOwogICAgICAgICAgICAgcmV0dXJu
OwogICAgICAgICB9CkBAIC0yNzUxLDEwICsyNzUxLDEwIEBAIHByaXZhdGU6CiAgICAgICAgICAg
ICAgICAgICAgIExWYWx1ZSByZXN1bHQ7CiAgICAgICAgICAgICAgICAgICAgIHN3aXRjaCAoZWxl
bWVudFNpemUodHlwZSkpIHsKICAgICAgICAgICAgICAgICAgICAgY2FzZSAxOgotICAgICAgICAg
ICAgICAgICAgICAgICAgcmVzdWx0ID0gbV9vdXQubG9hZDgocG9pbnRlcik7CisgICAgICAgICAg
ICAgICAgICAgICAgICByZXN1bHQgPSBpc1NpZ25lZCh0eXBlKSA/IG1fb3V0LmxvYWQ4U2lnbkV4
dDMyKHBvaW50ZXIpIDogIG1fb3V0LmxvYWQ4WmVyb0V4dDMyKHBvaW50ZXIpOwogICAgICAgICAg
ICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICAgICAgIGNhc2UgMjoKLSAgICAg
ICAgICAgICAgICAgICAgICAgIHJlc3VsdCA9IG1fb3V0LmxvYWQxNihwb2ludGVyKTsKKyAgICAg
ICAgICAgICAgICAgICAgICAgIHJlc3VsdCA9IGlzU2lnbmVkKHR5cGUpID8gbV9vdXQubG9hZDE2
U2lnbkV4dDMyKHBvaW50ZXIpIDogIG1fb3V0LmxvYWQxNlplcm9FeHQzMihwb2ludGVyKTsKICAg
ICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgICAgICBjYXNlIDQ6
CiAgICAgICAgICAgICAgICAgICAgICAgICByZXN1bHQgPSBtX291dC5sb2FkMzIocG9pbnRlcik7
CkBAIC0yNzYzLDIwICsyNzYzLDExIEBAIHByaXZhdGU6CiAgICAgICAgICAgICAgICAgICAgICAg
ICBERkdfQ1JBU0gobV9ncmFwaCwgbV9ub2RlLCAiQmFkIGVsZW1lbnQgc2l6ZSIpOwogICAgICAg
ICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgIAotICAgICAgICAgICAgICAgICAg
ICBpZiAoZWxlbWVudFNpemUodHlwZSkgPCA0KSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBp
ZiAoaXNTaWduZWQodHlwZSkpCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzdWx0ID0g
bV9vdXQuc2lnbkV4dChyZXN1bHQsIG1fb3V0LmludDMyKTsKLSAgICAgICAgICAgICAgICAgICAg
ICAgIGVsc2UKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXN1bHQgPSBtX291dC56ZXJv
RXh0KHJlc3VsdCwgbV9vdXQuaW50MzIpOwotICAgICAgICAgICAgICAgICAgICAgICAgc2V0SW50
MzIocmVzdWx0KTsKLSAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgICAg
ICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICAKLSAgICAgICAgICAgICAgICAgICAgaWYg
KGlzU2lnbmVkKHR5cGUpKSB7CisgICAgICAgICAgICAgICAgICAgIGlmIChlbGVtZW50U2l6ZSh0
eXBlKSA8IDQgfHwgaXNTaWduZWQodHlwZSkpIHsKICAgICAgICAgICAgICAgICAgICAgICAgIHNl
dEludDMyKHJlc3VsdCk7CiAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAg
ICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgCisKICAgICAgICAgICAgICAgICAg
ICAgaWYgKG1fbm9kZS0+c2hvdWxkU3BlY3VsYXRlSW50MzIoKSkgewogICAgICAgICAgICAgICAg
ICAgICAgICAgc3BlY3VsYXRlKAogICAgICAgICAgICAgICAgICAgICAgICAgICAgIE92ZXJmbG93
LCBub1ZhbHVlKCksIDAsIG1fb3V0Lmxlc3NUaGFuKHJlc3VsdCwgbV9vdXQuaW50MzJaZXJvKSk7
CkBAIC0zOTk4LDIwICszOTg5LDE4IEBAIHByaXZhdGU6CiAgICAgICAgICAgICAKICAgICAgICAg
bV9vdXQuYXBwZW5kVG8oaXM4Qml0LCBpczE2Qml0KTsKICAgICAgICAgICAgIAotICAgICAgICBW
YWx1ZUZyb21CbG9jayBjaGFyOEJpdCA9IG1fb3V0LmFuY2hvcihtX291dC56ZXJvRXh0KAotICAg
ICAgICAgICAgbV9vdXQubG9hZDgobV9vdXQuYmFzZUluZGV4KAorICAgICAgICBWYWx1ZUZyb21C
bG9jayBjaGFyOEJpdCA9IG1fb3V0LmFuY2hvcigKKyAgICAgICAgICAgIG1fb3V0LmxvYWQ4WmVy
b0V4dDMyKG1fb3V0LmJhc2VJbmRleCgKICAgICAgICAgICAgICAgICBtX2hlYXBzLmNoYXJhY3Rl
cnM4LCBzdG9yYWdlLCBtX291dC56ZXJvRXh0UHRyKGluZGV4KSwKLSAgICAgICAgICAgICAgICBw
cm92ZW5WYWx1ZShtX25vZGUtPmNoaWxkMigpKSkpLAotICAgICAgICAgICAgbV9vdXQuaW50MzIp
KTsKKyAgICAgICAgICAgICAgICBwcm92ZW5WYWx1ZShtX25vZGUtPmNoaWxkMigpKSkpKTsKICAg
ICAgICAgbV9vdXQuanVtcChiaXRzQ29udGludWF0aW9uKTsKICAgICAgICAgICAgIAogICAgICAg
ICBtX291dC5hcHBlbmRUbyhpczE2Qml0LCBiaWdDaGFyYWN0ZXIpOwogICAgICAgICAgICAgCi0g
ICAgICAgIFZhbHVlRnJvbUJsb2NrIGNoYXIxNkJpdCA9IG1fb3V0LmFuY2hvcihtX291dC56ZXJv
RXh0KAotICAgICAgICAgICAgbV9vdXQubG9hZDE2KG1fb3V0LmJhc2VJbmRleCgKKyAgICAgICAg
VmFsdWVGcm9tQmxvY2sgY2hhcjE2Qml0ID0gbV9vdXQuYW5jaG9yKAorICAgICAgICAgICAgbV9v
dXQubG9hZDE2WmVyb0V4dDMyKG1fb3V0LmJhc2VJbmRleCgKICAgICAgICAgICAgICAgICBtX2hl
YXBzLmNoYXJhY3RlcnMxNiwgc3RvcmFnZSwgbV9vdXQuemVyb0V4dFB0cihpbmRleCksCi0gICAg
ICAgICAgICAgICAgcHJvdmVuVmFsdWUobV9ub2RlLT5jaGlsZDIoKSkpKSwKLSAgICAgICAgICAg
IG1fb3V0LmludDMyKSk7CisgICAgICAgICAgICAgICAgcHJvdmVuVmFsdWUobV9ub2RlLT5jaGls
ZDIoKSkpKSk7CiAgICAgICAgIG1fb3V0LmJyYW5jaCgKICAgICAgICAgICAgIG1fb3V0LmFib3Zl
T3JFcXVhbChjaGFyMTZCaXQudmFsdWUoKSwgbV9vdXQuY29uc3RJbnQzMigweDEwMCkpLAogICAg
ICAgICAgICAgcmFyZWx5KGJpZ0NoYXJhY3RlciksIHVzdWFsbHkoYml0c0NvbnRpbnVhdGlvbikp
OwpAQCAtNDA5NiwyMCArNDA4NSwxOCBAQCBwcml2YXRlOgogICAgICAgICAgICAgCiAgICAgICAg
IExCYXNpY0Jsb2NrIGxhc3ROZXh0ID0gbV9vdXQuYXBwZW5kVG8oaXM4Qml0LCBpczE2Qml0KTsK
ICAgICAgICAgICAgIAotICAgICAgICBWYWx1ZUZyb21CbG9jayBjaGFyOEJpdCA9IG1fb3V0LmFu
Y2hvcihtX291dC56ZXJvRXh0KAotICAgICAgICAgICAgbV9vdXQubG9hZDgobV9vdXQuYmFzZUlu
ZGV4KAorICAgICAgICBWYWx1ZUZyb21CbG9jayBjaGFyOEJpdCA9IG1fb3V0LmFuY2hvcigKKyAg
ICAgICAgICAgIG1fb3V0LmxvYWQ4WmVyb0V4dDMyKG1fb3V0LmJhc2VJbmRleCgKICAgICAgICAg
ICAgICAgICBtX2hlYXBzLmNoYXJhY3RlcnM4LCBzdG9yYWdlLCBtX291dC56ZXJvRXh0UHRyKGlu
ZGV4KSwKLSAgICAgICAgICAgICAgICBwcm92ZW5WYWx1ZShtX25vZGUtPmNoaWxkMigpKSkpLAot
ICAgICAgICAgICAgbV9vdXQuaW50MzIpKTsKKyAgICAgICAgICAgICAgICBwcm92ZW5WYWx1ZSht
X25vZGUtPmNoaWxkMigpKSkpKTsKICAgICAgICAgbV9vdXQuanVtcChjb250aW51YXRpb24pOwog
ICAgICAgICAgICAgCiAgICAgICAgIG1fb3V0LmFwcGVuZFRvKGlzMTZCaXQsIGNvbnRpbnVhdGlv
bik7CiAgICAgICAgICAgICAKLSAgICAgICAgVmFsdWVGcm9tQmxvY2sgY2hhcjE2Qml0ID0gbV9v
dXQuYW5jaG9yKG1fb3V0Lnplcm9FeHQoCi0gICAgICAgICAgICBtX291dC5sb2FkMTYobV9vdXQu
YmFzZUluZGV4KAorICAgICAgICBWYWx1ZUZyb21CbG9jayBjaGFyMTZCaXQgPSBtX291dC5hbmNo
b3IoCisgICAgICAgICAgICBtX291dC5sb2FkMTZaZXJvRXh0MzIobV9vdXQuYmFzZUluZGV4KAog
ICAgICAgICAgICAgICAgIG1faGVhcHMuY2hhcmFjdGVyczE2LCBzdG9yYWdlLCBtX291dC56ZXJv
RXh0UHRyKGluZGV4KSwKLSAgICAgICAgICAgICAgICBwcm92ZW5WYWx1ZShtX25vZGUtPmNoaWxk
MigpKSkpLAotICAgICAgICAgICAgbV9vdXQuaW50MzIpKTsKKyAgICAgICAgICAgICAgICBwcm92
ZW5WYWx1ZShtX25vZGUtPmNoaWxkMigpKSkpKTsKICAgICAgICAgbV9vdXQuanVtcChjb250aW51
YXRpb24pOwogICAgICAgICAKICAgICAgICAgbV9vdXQuYXBwZW5kVG8oY29udGludWF0aW9uLCBs
YXN0TmV4dCk7CkBAIC00MzA5LDkgKzQyOTYsOSBAQCBwcml2YXRlOgogICAgICAgICBMQmFzaWNC
bG9jayBpc05vdEludmFsaWRhdGVkID0gRlRMX05FV19CTE9DSyhtX291dCwgKCJOb3RpZnlXcml0
ZSBub3QgaW52YWxpZGF0ZWQgY2FzZSIpKTsKICAgICAgICAgTEJhc2ljQmxvY2sgY29udGludWF0
aW9uID0gRlRMX05FV19CTE9DSyhtX291dCwgKCJOb3RpZnlXcml0ZSBjb250aW51YXRpb24iKSk7
CiAgICAgICAgIAotICAgICAgICBMVmFsdWUgc3RhdGUgPSBtX291dC5sb2FkOChtX291dC5hYnNv
bHV0ZShzZXQtPmFkZHJlc3NPZlN0YXRlKCkpKTsKKyAgICAgICAgTFZhbHVlIHN0YXRlID0gbV9v
dXQubG9hZDhaZXJvRXh0MzIobV9vdXQuYWJzb2x1dGUoc2V0LT5hZGRyZXNzT2ZTdGF0ZSgpKSk7
CiAgICAgICAgIG1fb3V0LmJyYW5jaCgKLSAgICAgICAgICAgIG1fb3V0LmVxdWFsKHN0YXRlLCBt
X291dC5jb25zdEludDgoSXNJbnZhbGlkYXRlZCkpLAorICAgICAgICAgICAgbV9vdXQuZXF1YWwo
c3RhdGUsIG1fb3V0LmNvbnN0SW50MzIoSXNJbnZhbGlkYXRlZCkpLAogICAgICAgICAgICAgdXN1
YWxseShjb250aW51YXRpb24pLCByYXJlbHkoaXNOb3RJbnZhbGlkYXRlZCkpOwogICAgICAgICAK
ICAgICAgICAgTEJhc2ljQmxvY2sgbGFzdE5leHQgPSBtX291dC5hcHBlbmRUbyhpc05vdEludmFs
aWRhdGVkLCBjb250aW51YXRpb24pOwpAQCAtNDk0NCwxNiArNDkzMSwxNSBAQCBwcml2YXRlOgog
ICAgICAgICAgICAgCiAgICAgICAgICAgICBWZWN0b3I8VmFsdWVGcm9tQmxvY2ssIDI+IGNoYXJh
Y3RlcnM7CiAgICAgICAgICAgICBtX291dC5hcHBlbmRUbyhpczhCaXQsIGlzMTZCaXQpOwotICAg
ICAgICAgICAgY2hhcmFjdGVycy5hcHBlbmQobV9vdXQuYW5jaG9yKAotICAgICAgICAgICAgICAg
IG1fb3V0Lnplcm9FeHQobV9vdXQubG9hZDgoY2hhcmFjdGVyRGF0YSwgbV9oZWFwcy5jaGFyYWN0
ZXJzOFswXSksIG1fb3V0LmludDE2KSkpOworICAgICAgICAgICAgY2hhcmFjdGVycy5hcHBlbmQo
bV9vdXQuYW5jaG9yKG1fb3V0LmxvYWQ4WmVyb0V4dDMyKGNoYXJhY3RlckRhdGEsIG1faGVhcHMu
Y2hhcmFjdGVyczhbMF0pKSk7CiAgICAgICAgICAgICBtX291dC5qdW1wKGNvbnRpbnVhdGlvbik7
CiAgICAgICAgICAgICAKICAgICAgICAgICAgIG1fb3V0LmFwcGVuZFRvKGlzMTZCaXQsIGNvbnRp
bnVhdGlvbik7Ci0gICAgICAgICAgICBjaGFyYWN0ZXJzLmFwcGVuZChtX291dC5hbmNob3IobV9v
dXQubG9hZDE2KGNoYXJhY3RlckRhdGEsIG1faGVhcHMuY2hhcmFjdGVyczE2WzBdKSkpOworICAg
ICAgICAgICAgY2hhcmFjdGVycy5hcHBlbmQobV9vdXQuYW5jaG9yKG1fb3V0LmxvYWQxNlplcm9F
eHQzMihjaGFyYWN0ZXJEYXRhLCBtX2hlYXBzLmNoYXJhY3RlcnMxNlswXSkpKTsKICAgICAgICAg
ICAgIG1fb3V0Lmp1bXAoY29udGludWF0aW9uKTsKICAgICAgICAgICAgIAogICAgICAgICAgICAg
bV9vdXQuYXBwZW5kVG8oY29udGludWF0aW9uLCBsYXN0TmV4dCk7Ci0gICAgICAgICAgICBidWls
ZFN3aXRjaChkYXRhLCBtX291dC5pbnQxNiwgbV9vdXQucGhpKG1fb3V0LmludDE2LCBjaGFyYWN0
ZXJzKSk7CisgICAgICAgICAgICBidWlsZFN3aXRjaChkYXRhLCBtX291dC5pbnQzMiwgbV9vdXQu
cGhpKG1fb3V0LmludDMyLCBjaGFyYWN0ZXJzKSk7CiAgICAgICAgICAgICByZXR1cm47CiAgICAg
ICAgIH0KICAgICAgICAgCkBAIC01MjgxLDkgKzUyNjcsOSBAQCBwcml2YXRlOgogICAgIHsKICAg
ICAgICAgc3BlY3VsYXRlKAogICAgICAgICAgICAgVW5jb3VudGFibGUsIG5vVmFsdWUoKSwgMCwK
LSAgICAgICAgICAgIG1fb3V0LnRlc3RJc1plcm84KAotICAgICAgICAgICAgICAgIG1fb3V0Lmxv
YWQ4KGxvd0NlbGwobV9ub2RlLT5jaGlsZDEoKSksIG1faGVhcHMuSlNDZWxsX3R5cGVJbmZvRmxh
Z3MpLAotICAgICAgICAgICAgICAgIG1fb3V0LmNvbnN0SW50OChJbXBsZW1lbnRzRGVmYXVsdEhh
c0luc3RhbmNlKSkpOworICAgICAgICAgICAgbV9vdXQudGVzdElzWmVybzMyKAorICAgICAgICAg
ICAgICAgIG1fb3V0LmxvYWQ4WmVyb0V4dDMyKGxvd0NlbGwobV9ub2RlLT5jaGlsZDEoKSksIG1f
aGVhcHMuSlNDZWxsX3R5cGVJbmZvRmxhZ3MpLAorICAgICAgICAgICAgICAgIG1fb3V0LmNvbnN0
SW50MzIoSW1wbGVtZW50c0RlZmF1bHRIYXNJbnN0YW5jZSkpKTsKICAgICB9CiAgICAgCiAgICAg
dm9pZCBjb21waWxlSW5zdGFuY2VPZigpCkBAIC01Nzc2LDggKzU3NjIsOCBAQCBwcml2YXRlOgog
ICAgICAgICBMQmFzaWNCbG9jayB0aW1lckRpZEZpcmUgPSBGVExfTkVXX0JMT0NLKG1fb3V0LCAo
IkNoZWNrV2F0Y2hkb2dUaW1lciB0aW1lciBkaWQgZmlyZSIpKTsKICAgICAgICAgTEJhc2ljQmxv
Y2sgY29udGludWF0aW9uID0gRlRMX05FV19CTE9DSyhtX291dCwgKCJDaGVja1dhdGNoZG9nVGlt
ZXIgY29udGludWF0aW9uIikpOwogICAgICAgICAKLSAgICAgICAgTFZhbHVlIHN0YXRlID0gbV9v
dXQubG9hZDgobV9vdXQuYWJzb2x1dGUodm0oKS53YXRjaGRvZy0+dGltZXJEaWRGaXJlQWRkcmVz
cygpKSk7Ci0gICAgICAgIG1fb3V0LmJyYW5jaChtX291dC5lcXVhbChzdGF0ZSwgbV9vdXQuY29u
c3RJbnQ4KDApKSwKKyAgICAgICAgTFZhbHVlIHN0YXRlID0gbV9vdXQubG9hZDhaZXJvRXh0MzIo
bV9vdXQuYWJzb2x1dGUodm0oKS53YXRjaGRvZy0+dGltZXJEaWRGaXJlQWRkcmVzcygpKSk7Cisg
ICAgICAgIG1fb3V0LmJyYW5jaChtX291dC5pc1plcm8zMihzdGF0ZSksCiAgICAgICAgICAgICB1
c3VhbGx5KGNvbnRpbnVhdGlvbiksIHJhcmVseSh0aW1lckRpZEZpcmUpKTsKIAogICAgICAgICBM
QmFzaWNCbG9jayBsYXN0TmV4dCA9IG1fb3V0LmFwcGVuZFRvKHRpbWVyRGlkRmlyZSwgY29udGlu
dWF0aW9uKTsKQEAgLTY0NTMsOSArNjQzOSw5IEBAIHByaXZhdGU6CiAgICAgICAgIEZUTF9UWVBF
X0NIRUNLKGpzVmFsdWVWYWx1ZShjZWxsKSwgZWRnZSwgZmlsdGVyLCBpc05vdE9iamVjdChjZWxs
KSk7CiAgICAgICAgIHNwZWN1bGF0ZSgKICAgICAgICAgICAgIEJhZFR5cGUsIGpzVmFsdWVWYWx1
ZShjZWxsKSwgZWRnZS5ub2RlKCksCi0gICAgICAgICAgICBtX291dC50ZXN0Tm9uWmVybzgoCi0g
ICAgICAgICAgICAgICAgbV9vdXQubG9hZDgoY2VsbCwgbV9oZWFwcy5KU0NlbGxfdHlwZUluZm9G
bGFncyksCi0gICAgICAgICAgICAgICAgbV9vdXQuY29uc3RJbnQ4KE1hc3F1ZXJhZGVzQXNVbmRl
ZmluZWQpKSk7CisgICAgICAgICAgICBtX291dC50ZXN0Tm9uWmVybzMyKAorICAgICAgICAgICAg
ICAgIG1fb3V0LmxvYWQ4WmVyb0V4dDMyKGNlbGwsIG1faGVhcHMuSlNDZWxsX3R5cGVJbmZvRmxh
Z3MpLAorICAgICAgICAgICAgICAgIG1fb3V0LmNvbnN0SW50MzIoTWFzcXVlcmFkZXNBc1VuZGVm
aW5lZCkpKTsKICAgICB9CiAgICAgCiAgICAgdm9pZCBub25TcGVjdWxhdGl2ZUNvbXBhcmUoTElu
dFByZWRpY2F0ZSBpbnRDb25kaXRpb24sIFNfSklUT3BlcmF0aW9uX0VKSiBoZWxwZXJGdW5jdGlv
bikKQEAgLTY4MDMsOSArNjc4OSw5IEBAIHByaXZhdGU6CiAgICAgICAgICAgICAgICAgcmVzdWx0
cy5hcHBlbmQobV9vdXQuYW5jaG9yKG1fb3V0LmJvb2xlYW5UcnVlKSk7CiAgICAgICAgICAgICAg
ICAgCiAgICAgICAgICAgICAgICAgbV9vdXQuYnJhbmNoKAotICAgICAgICAgICAgICAgICAgICBt
X291dC50ZXN0SXNaZXJvOCgKLSAgICAgICAgICAgICAgICAgICAgICAgIG1fb3V0LmxvYWQ4KHZh
bHVlLCBtX2hlYXBzLkpTQ2VsbF90eXBlSW5mb0ZsYWdzKSwKLSAgICAgICAgICAgICAgICAgICAg
ICAgIG1fb3V0LmNvbnN0SW50OChNYXNxdWVyYWRlc0FzVW5kZWZpbmVkKSksCisgICAgICAgICAg
ICAgICAgICAgIG1fb3V0LnRlc3RJc1plcm8zMigKKyAgICAgICAgICAgICAgICAgICAgICAgIG1f
b3V0LmxvYWQ4WmVyb0V4dDMyKHZhbHVlLCBtX2hlYXBzLkpTQ2VsbF90eXBlSW5mb0ZsYWdzKSwK
KyAgICAgICAgICAgICAgICAgICAgICAgIG1fb3V0LmNvbnN0SW50MzIoTWFzcXVlcmFkZXNBc1Vu
ZGVmaW5lZCkpLAogICAgICAgICAgICAgICAgICAgICB1c3VhbGx5KGNvbnRpbnVhdGlvbiksIHJh
cmVseShtYXNxdWVyYWRlc0Nhc2UpKTsKICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAg
ICBtX291dC5hcHBlbmRUbyhtYXNxdWVyYWRlc0Nhc2UpOwpAQCAtNjkwMSw5ICs2ODg3LDkgQEAg
cHJpdmF0ZToKICAgICAgICAgICAgIHJlc3VsdHMuYXBwZW5kKG1fb3V0LmFuY2hvcihtX291dC5i
b29sZWFuRmFsc2UpKTsKICAgICAgICAgICAgIAogICAgICAgICAgICAgbV9vdXQuYnJhbmNoKAot
ICAgICAgICAgICAgICAgIG1fb3V0LnRlc3ROb25aZXJvOCgKLSAgICAgICAgICAgICAgICAgICAg
bV9vdXQubG9hZDgodmFsdWUsIG1faGVhcHMuSlNDZWxsX3R5cGVJbmZvRmxhZ3MpLAotICAgICAg
ICAgICAgICAgICAgICBtX291dC5jb25zdEludDgoTWFzcXVlcmFkZXNBc1VuZGVmaW5lZCkpLAor
ICAgICAgICAgICAgICAgIG1fb3V0LnRlc3ROb25aZXJvMzIoCisgICAgICAgICAgICAgICAgICAg
IG1fb3V0LmxvYWQ4WmVyb0V4dDMyKHZhbHVlLCBtX2hlYXBzLkpTQ2VsbF90eXBlSW5mb0ZsYWdz
KSwKKyAgICAgICAgICAgICAgICAgICAgbV9vdXQuY29uc3RJbnQzMihNYXNxdWVyYWRlc0FzVW5k
ZWZpbmVkKSksCiAgICAgICAgICAgICAgICAgcmFyZWx5KG1hc3F1ZXJhZGVzQ2FzZSksIHVzdWFs
bHkoY29udGludWF0aW9uKSk7CiAgICAgICAgICAgICAKICAgICAgICAgICAgIG1fb3V0LmFwcGVu
ZFRvKG1hc3F1ZXJhZGVzQ2FzZSwgcHJpbWl0aXZlQ2FzZSk7CkBAIC03MTU3LDggKzcxNDMsOCBA
QCBwcml2YXRlOgogICAgICAgICBmb3IgKHVuc2lnbmVkIGkgPSBudW1DaGVja2VkOyBpIDwgY29t
bW9uQ2hhcnM7ICsraSkgewogICAgICAgICAgICAgbV9vdXQuY2hlY2soCiAgICAgICAgICAgICAg
ICAgbV9vdXQubm90RXF1YWwoCi0gICAgICAgICAgICAgICAgICAgIG1fb3V0LmxvYWQ4KGJ1ZmZl
ciwgbV9oZWFwcy5jaGFyYWN0ZXJzOFtpXSksCi0gICAgICAgICAgICAgICAgICAgIG1fb3V0LmNv
bnN0SW50OChjYXNlc1tiZWdpbl0uc3RyaW5nLT5hdChpKSkpLAorICAgICAgICAgICAgICAgICAg
ICBtX291dC5sb2FkOFplcm9FeHQzMihidWZmZXIsIG1faGVhcHMuY2hhcmFjdGVyczhbaV0pLAor
ICAgICAgICAgICAgICAgICAgICBtX291dC5jb25zdEludDMyKHN0YXRpY19jYXN0PHVpbnQxNl90
PihjYXNlc1tiZWdpbl0uc3RyaW5nLT5hdChpKSkpKSwKICAgICAgICAgICAgICAgICB1bnN1cmUo
ZmFsbFRocm91Z2gpKTsKICAgICAgICAgfQogICAgICAgICAKQEAgLTcxOTUsNyArNzE4MSw3IEBA
IHByaXZhdGU6CiAgICAgICAgIAogICAgICAgICBERkdfQVNTRVJUKG1fZ3JhcGgsIG1fbm9kZSwg
ZW5kID49IGJlZ2luICsgMik7CiAgICAgICAgIAotICAgICAgICBMVmFsdWUgdW5jaGVja2VkQ2hh
ciA9IG1fb3V0LmxvYWQ4KGJ1ZmZlciwgbV9oZWFwcy5jaGFyYWN0ZXJzOFtjb21tb25DaGFyc10p
OworICAgICAgICBMVmFsdWUgdW5jaGVja2VkQ2hhciA9IG1fb3V0LmxvYWQ4WmVyb0V4dDMyKGJ1
ZmZlciwgbV9oZWFwcy5jaGFyYWN0ZXJzOFtjb21tb25DaGFyc10pOwogICAgICAgICAKICAgICAg
ICAgVmVjdG9yPENoYXJhY3RlckNhc2U+IGNoYXJhY3RlckNhc2VzOwogICAgICAgICBDaGFyYWN0
ZXJDYXNlIGN1cnJlbnRDYXNlKGNhc2VzW2JlZ2luXS5zdHJpbmctPmF0KGNvbW1vbkNoYXJzKSwg
YmVnaW4sIGJlZ2luICsgMSk7CkBAIC03MjE5LDcgKzcyMDUsNyBAQCBwcml2YXRlOgogICAgICAg
ICAgICAgaWYgKGkpCiAgICAgICAgICAgICAgICAgREZHX0FTU0VSVChtX2dyYXBoLCBtX25vZGUs
IGNoYXJhY3RlckNhc2VzW2kgLSAxXS5jaGFyYWN0ZXIgPCBjaGFyYWN0ZXJDYXNlc1tpXS5jaGFy
YWN0ZXIpOwogICAgICAgICAgICAgc3dpdGNoQ2FzZXMuYXBwZW5kKFN3aXRjaENhc2UoCi0gICAg
ICAgICAgICAgICAgbV9vdXQuY29uc3RJbnQ4KGNoYXJhY3RlckNhc2VzW2ldLmNoYXJhY3Rlciks
IGNoYXJhY3RlckJsb2Nrc1tpXSwgV2VpZ2h0KCkpKTsKKyAgICAgICAgICAgICAgICBtX291dC5j
b25zdEludDMyKGNoYXJhY3RlckNhc2VzW2ldLmNoYXJhY3RlciksIGNoYXJhY3RlckJsb2Nrc1tp
XSwgV2VpZ2h0KCkpKTsKICAgICAgICAgfQogICAgICAgICBtX291dC5zd2l0Y2hJbnN0cnVjdGlv
bih1bmNoZWNrZWRDaGFyLCBzd2l0Y2hDYXNlcywgZmFsbFRocm91Z2gsIFdlaWdodCgpKTsKICAg
ICAgICAgCkBAIC04MzEzLDggKzgyOTksOCBAQCBwcml2YXRlOgogICAgICAgICBpZiAoTFZhbHVl
IHByb3ZlbiA9IGlzUHJvdmVuVmFsdWUodHlwZSAmIFNwZWNDZWxsLCBTcGVjT2JqZWN0KSkKICAg
ICAgICAgICAgIHJldHVybiBwcm92ZW47CiAgICAgICAgIHJldHVybiBtX291dC5hYm92ZU9yRXF1
YWwoCi0gICAgICAgICAgICBtX291dC5sb2FkOChjZWxsLCBtX2hlYXBzLkpTQ2VsbF90eXBlSW5m
b1R5cGUpLAotICAgICAgICAgICAgbV9vdXQuY29uc3RJbnQ4KE9iamVjdFR5cGUpKTsKKyAgICAg
ICAgICAgIG1fb3V0LmxvYWQ4WmVyb0V4dDMyKGNlbGwsIG1faGVhcHMuSlNDZWxsX3R5cGVJbmZv
VHlwZSksCisgICAgICAgICAgICBtX291dC5jb25zdEludDMyKE9iamVjdFR5cGUpKTsKICAgICB9
CiAKICAgICBMVmFsdWUgaXNOb3RPYmplY3QoTFZhbHVlIGNlbGwsIFNwZWN1bGF0ZWRUeXBlIHR5
cGUgPSBTcGVjRnVsbFRvcCkKQEAgLTgzMjIsOCArODMwOCw4IEBAIHByaXZhdGU6CiAgICAgICAg
IGlmIChMVmFsdWUgcHJvdmVuID0gaXNQcm92ZW5WYWx1ZSh0eXBlICYgU3BlY0NlbGwsIH5TcGVj
T2JqZWN0KSkKICAgICAgICAgICAgIHJldHVybiBwcm92ZW47CiAgICAgICAgIHJldHVybiBtX291
dC5iZWxvdygKLSAgICAgICAgICAgIG1fb3V0LmxvYWQ4KGNlbGwsIG1faGVhcHMuSlNDZWxsX3R5
cGVJbmZvVHlwZSksCi0gICAgICAgICAgICBtX291dC5jb25zdEludDgoT2JqZWN0VHlwZSkpOwor
ICAgICAgICAgICAgbV9vdXQubG9hZDhaZXJvRXh0MzIoY2VsbCwgbV9oZWFwcy5KU0NlbGxfdHlw
ZUluZm9UeXBlKSwKKyAgICAgICAgICAgIG1fb3V0LmNvbnN0SW50MzIoT2JqZWN0VHlwZSkpOwog
ICAgIH0KIAogICAgIExWYWx1ZSBpc05vdFN0cmluZyhMVmFsdWUgY2VsbCwgU3BlY3VsYXRlZFR5
cGUgdHlwZSA9IFNwZWNGdWxsVG9wKQpAQCAtODM1OSw3ICs4MzQ1LDcgQEAgcHJpdmF0ZToKICAg
ICAgICAgY2FzZSBBcnJheTo6SW50MzI6CiAgICAgICAgIGNhc2UgQXJyYXk6OkRvdWJsZToKICAg
ICAgICAgY2FzZSBBcnJheTo6Q29udGlndW91czogewotICAgICAgICAgICAgTFZhbHVlIGluZGV4
aW5nVHlwZSA9IG1fb3V0LmxvYWQ4KGNlbGwsIG1faGVhcHMuSlNDZWxsX2luZGV4aW5nVHlwZSk7
CisgICAgICAgICAgICBMVmFsdWUgaW5kZXhpbmdUeXBlID0gbV9vdXQubG9hZDhaZXJvRXh0MzIo
Y2VsbCwgbV9oZWFwcy5KU0NlbGxfaW5kZXhpbmdUeXBlKTsKICAgICAgICAgICAgIAogICAgICAg
ICAgICAgc3dpdGNoIChhcnJheU1vZGUuYXJyYXlDbGFzcygpKSB7CiAgICAgICAgICAgICBjYXNl
IEFycmF5OjpPcmlnaW5hbEFycmF5OgpAQCAtODM2OCwxOSArODM1NCwxOSBAQCBwcml2YXRlOgog
ICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgY2FzZSBBcnJheTo6QXJyYXk6CiAgICAgICAg
ICAgICAgICAgcmV0dXJuIG1fb3V0LmVxdWFsKAotICAgICAgICAgICAgICAgICAgICBtX291dC5i
aXRBbmQoaW5kZXhpbmdUeXBlLCBtX291dC5jb25zdEludDgoSXNBcnJheSB8IEluZGV4aW5nU2hh
cGVNYXNrKSksCi0gICAgICAgICAgICAgICAgICAgIG1fb3V0LmNvbnN0SW50OChJc0FycmF5IHwg
YXJyYXlNb2RlLnNoYXBlTWFzaygpKSk7CisgICAgICAgICAgICAgICAgICAgIG1fb3V0LmJpdEFu
ZChpbmRleGluZ1R5cGUsIG1fb3V0LmNvbnN0SW50MzIoSXNBcnJheSB8IEluZGV4aW5nU2hhcGVN
YXNrKSksCisgICAgICAgICAgICAgICAgICAgIG1fb3V0LmNvbnN0SW50MzIoSXNBcnJheSB8IGFy
cmF5TW9kZS5zaGFwZU1hc2soKSkpOwogICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgY2Fz
ZSBBcnJheTo6Tm9uQXJyYXk6CiAgICAgICAgICAgICBjYXNlIEFycmF5OjpPcmlnaW5hbE5vbkFy
cmF5OgogICAgICAgICAgICAgICAgIHJldHVybiBtX291dC5lcXVhbCgKLSAgICAgICAgICAgICAg
ICAgICAgbV9vdXQuYml0QW5kKGluZGV4aW5nVHlwZSwgbV9vdXQuY29uc3RJbnQ4KElzQXJyYXkg
fCBJbmRleGluZ1NoYXBlTWFzaykpLAotICAgICAgICAgICAgICAgICAgICBtX291dC5jb25zdElu
dDgoYXJyYXlNb2RlLnNoYXBlTWFzaygpKSk7CisgICAgICAgICAgICAgICAgICAgIG1fb3V0LmJp
dEFuZChpbmRleGluZ1R5cGUsIG1fb3V0LmNvbnN0SW50MzIoSXNBcnJheSB8IEluZGV4aW5nU2hh
cGVNYXNrKSksCisgICAgICAgICAgICAgICAgICAgIG1fb3V0LmNvbnN0SW50MzIoYXJyYXlNb2Rl
LnNoYXBlTWFzaygpKSk7CiAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICBjYXNlIEFycmF5
OjpQb3NzaWJseUFycmF5OgogICAgICAgICAgICAgICAgIHJldHVybiBtX291dC5lcXVhbCgKLSAg
ICAgICAgICAgICAgICAgICAgbV9vdXQuYml0QW5kKGluZGV4aW5nVHlwZSwgbV9vdXQuY29uc3RJ
bnQ4KEluZGV4aW5nU2hhcGVNYXNrKSksCi0gICAgICAgICAgICAgICAgICAgIG1fb3V0LmNvbnN0
SW50OChhcnJheU1vZGUuc2hhcGVNYXNrKCkpKTsKKyAgICAgICAgICAgICAgICAgICAgbV9vdXQu
Yml0QW5kKGluZGV4aW5nVHlwZSwgbV9vdXQuY29uc3RJbnQzMihJbmRleGluZ1NoYXBlTWFzaykp
LAorICAgICAgICAgICAgICAgICAgICBtX291dC5jb25zdEludDMyKGFycmF5TW9kZS5zaGFwZU1h
c2soKSkpOwogICAgICAgICAgICAgfQogICAgICAgICAgICAgCiAgICAgICAgICAgICBERkdfQ1JB
U0gobV9ncmFwaCwgbV9ub2RlLCAiQ29ycnVwdCBhcnJheSBjbGFzcyIpOwpAQCAtODM4OCwxOCAr
ODM3NCwxOCBAQCBwcml2YXRlOgogICAgICAgICAgICAgCiAgICAgICAgIGNhc2UgQXJyYXk6OkRp
cmVjdEFyZ3VtZW50czoKICAgICAgICAgICAgIHJldHVybiBtX291dC5lcXVhbCgKLSAgICAgICAg
ICAgICAgICBtX291dC5sb2FkOChjZWxsLCBtX2hlYXBzLkpTQ2VsbF90eXBlSW5mb1R5cGUpLAot
ICAgICAgICAgICAgICAgIG1fb3V0LmNvbnN0SW50OChEaXJlY3RBcmd1bWVudHNUeXBlKSk7Cisg
ICAgICAgICAgICAgICAgbV9vdXQubG9hZDhaZXJvRXh0MzIoY2VsbCwgbV9oZWFwcy5KU0NlbGxf
dHlwZUluZm9UeXBlKSwKKyAgICAgICAgICAgICAgICBtX291dC5jb25zdEludDMyKERpcmVjdEFy
Z3VtZW50c1R5cGUpKTsKICAgICAgICAgICAgIAogICAgICAgICBjYXNlIEFycmF5OjpTY29wZWRB
cmd1bWVudHM6CiAgICAgICAgICAgICByZXR1cm4gbV9vdXQuZXF1YWwoCi0gICAgICAgICAgICAg
ICAgbV9vdXQubG9hZDgoY2VsbCwgbV9oZWFwcy5KU0NlbGxfdHlwZUluZm9UeXBlKSwKLSAgICAg
ICAgICAgICAgICBtX291dC5jb25zdEludDgoU2NvcGVkQXJndW1lbnRzVHlwZSkpOworICAgICAg
ICAgICAgICAgIG1fb3V0LmxvYWQ4WmVyb0V4dDMyKGNlbGwsIG1faGVhcHMuSlNDZWxsX3R5cGVJ
bmZvVHlwZSksCisgICAgICAgICAgICAgICAgbV9vdXQuY29uc3RJbnQzMihTY29wZWRBcmd1bWVu
dHNUeXBlKSk7CiAgICAgICAgICAgICAKICAgICAgICAgZGVmYXVsdDoKICAgICAgICAgICAgIHJl
dHVybiBtX291dC5lcXVhbCgKLSAgICAgICAgICAgICAgICBtX291dC5sb2FkOChjZWxsLCBtX2hl
YXBzLkpTQ2VsbF90eXBlSW5mb1R5cGUpLCAKLSAgICAgICAgICAgICAgICBtX291dC5jb25zdElu
dDgodHlwZUZvclR5cGVkQXJyYXlUeXBlKGFycmF5TW9kZS50eXBlZEFycmF5VHlwZSgpKSkpOwor
ICAgICAgICAgICAgICAgIG1fb3V0LmxvYWQ4WmVyb0V4dDMyKGNlbGwsIG1faGVhcHMuSlNDZWxs
X3R5cGVJbmZvVHlwZSksCisgICAgICAgICAgICAgICAgbV9vdXQuY29uc3RJbnQzMih0eXBlRm9y
VHlwZWRBcnJheVR5cGUoYXJyYXlNb2RlLnR5cGVkQXJyYXlUeXBlKCkpKSk7CiAgICAgICAgIH0K
ICAgICB9CiAgICAgCkBAIC04NDIwLDE2ICs4NDA2LDE2IEBAIHByaXZhdGU6CiAgICAgewogICAg
ICAgICBpZiAoISh0eXBlICYgU3BlY09iamVjdE90aGVyKSkKICAgICAgICAgICAgIHJldHVybiBt
X291dC5ib29sZWFuRmFsc2U7Ci0gICAgICAgIHJldHVybiBtX291dC50ZXN0Tm9uWmVybzgoCi0g
ICAgICAgICAgICBtX291dC5sb2FkOChjZWxsLCBtX2hlYXBzLkpTQ2VsbF90eXBlSW5mb0ZsYWdz
KSwKLSAgICAgICAgICAgIG1fb3V0LmNvbnN0SW50OChNYXNxdWVyYWRlc0FzVW5kZWZpbmVkIHwg
VHlwZU9mU2hvdWxkQ2FsbEdldENhbGxEYXRhKSk7CisgICAgICAgIHJldHVybiBtX291dC50ZXN0
Tm9uWmVybzMyKAorICAgICAgICAgICAgbV9vdXQubG9hZDhaZXJvRXh0MzIoY2VsbCwgbV9oZWFw
cy5KU0NlbGxfdHlwZUluZm9GbGFncyksCisgICAgICAgICAgICBtX291dC5jb25zdEludDMyKE1h
c3F1ZXJhZGVzQXNVbmRlZmluZWQgfCBUeXBlT2ZTaG91bGRDYWxsR2V0Q2FsbERhdGEpKTsKICAg
ICB9CiAgICAgCiAgICAgTFZhbHVlIGlzVHlwZShMVmFsdWUgY2VsbCwgSlNUeXBlIHR5cGUpCiAg
ICAgewogICAgICAgICByZXR1cm4gbV9vdXQuZXF1YWwoCi0gICAgICAgICAgICBtX291dC5sb2Fk
OChjZWxsLCBtX2hlYXBzLkpTQ2VsbF90eXBlSW5mb1R5cGUpLAotICAgICAgICAgICAgbV9vdXQu
Y29uc3RJbnQ4KHR5cGUpKTsKKyAgICAgICAgICAgIG1fb3V0LmxvYWQ4WmVyb0V4dDMyKGNlbGws
IG1faGVhcHMuSlNDZWxsX3R5cGVJbmZvVHlwZSksCisgICAgICAgICAgICBtX291dC5jb25zdElu
dDMyKHR5cGUpKTsKICAgICB9CiAgICAgCiAgICAgTFZhbHVlIGlzTm90VHlwZShMVmFsdWUgY2Vs
bCwgSlNUeXBlIHR5cGUpCkBAIC04NTk0LDkgKzg1ODAsOSBAQCBwcml2YXRlOgogICAgICAgICAK
ICAgICAgICAgc3BlY3VsYXRlKAogICAgICAgICAgICAgQmFkVHlwZSwganNWYWx1ZVZhbHVlKGNl
bGwpLCBlZGdlLm5vZGUoKSwKLSAgICAgICAgICAgIG1fb3V0LnRlc3ROb25aZXJvOCgKLSAgICAg
ICAgICAgICAgICBtX291dC5sb2FkOChjZWxsLCBtX2hlYXBzLkpTQ2VsbF90eXBlSW5mb0ZsYWdz
KSwKLSAgICAgICAgICAgICAgICBtX291dC5jb25zdEludDgoTWFzcXVlcmFkZXNBc1VuZGVmaW5l
ZCkpKTsKKyAgICAgICAgICAgIG1fb3V0LnRlc3ROb25aZXJvMzIoCisgICAgICAgICAgICAgICAg
bV9vdXQubG9hZDhaZXJvRXh0MzIoY2VsbCwgbV9oZWFwcy5KU0NlbGxfdHlwZUluZm9GbGFncyks
CisgICAgICAgICAgICAgICAgbV9vdXQuY29uc3RJbnQzMihNYXNxdWVyYWRlc0FzVW5kZWZpbmVk
KSkpOwogICAgIH0KICAgICAKICAgICB2b2lkIHNwZWN1bGF0ZU51bWJlcihFZGdlIGVkZ2UpCkBA
IC04NzEzLDcgKzg2OTksNyBAQCBwcml2YXRlOgogICAgIAogICAgIExWYWx1ZSBsb2FkQ2VsbFN0
YXRlKExWYWx1ZSBiYXNlKQogICAgIHsKLSAgICAgICAgcmV0dXJuIG1fb3V0LmxvYWQ4KGJhc2Us
IG1faGVhcHMuSlNDZWxsX2NlbGxTdGF0ZSk7CisgICAgICAgIHJldHVybiBtX291dC5sb2FkOFpl
cm9FeHQzMihiYXNlLCBtX2hlYXBzLkpTQ2VsbF9jZWxsU3RhdGUpOwogICAgIH0KIAogICAgIHZv
aWQgZW1pdFN0b3JlQmFycmllcihMVmFsdWUgYmFzZSkKQEAgLTg3MjIsNyArODcwOCw3IEBAIHBy
aXZhdGU6CiAgICAgICAgIExCYXNpY0Jsb2NrIGNvbnRpbnVhdGlvbiA9IEZUTF9ORVdfQkxPQ0so
bV9vdXQsICgiU3RvcmUgYmFycmllciBjb250aW51YXRpb24iKSk7CiAKICAgICAgICAgbV9vdXQu
YnJhbmNoKAotICAgICAgICAgICAgbV9vdXQubm90WmVybzgobG9hZENlbGxTdGF0ZShiYXNlKSks
IHVzdWFsbHkoY29udGludWF0aW9uKSwgcmFyZWx5KHNsb3dQYXRoKSk7CisgICAgICAgICAgICBt
X291dC5ub3RaZXJvMzIobG9hZENlbGxTdGF0ZShiYXNlKSksIHVzdWFsbHkoY29udGludWF0aW9u
KSwgcmFyZWx5KHNsb3dQYXRoKSk7CiAKICAgICAgICAgTEJhc2ljQmxvY2sgbGFzdE5leHQgPSBt
X291dC5hcHBlbmRUbyhzbG93UGF0aCwgY29udGludWF0aW9uKTsKIApkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExPdXRwdXQuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9mdGwvRlRMT3V0cHV0LmgKaW5kZXggM2MyM2Y0OWQwY2Q3OTM4MjE1NmU5ZGExY2Y3MzYzZmYw
N2UzMTE5Zi4uMzBjOWNjMTE1MmQ0MTQ5Y2U3ZWMyYjg5NTAxMGMxZTdlOWY3NTZjYyAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExPdXRwdXQuaAorKysgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvZnRsL0ZUTE91dHB1dC5oCkBAIC04OSw3ICs4OSw2IEBAIHB1YmxpYzoK
ICAgICAKICAgICBMVmFsdWUgcGFyYW0odW5zaWduZWQgaW5kZXgpIHsgcmV0dXJuIGdldFBhcmFt
KG1fZnVuY3Rpb24sIGluZGV4KTsgfQogICAgIExWYWx1ZSBjb25zdEJvb2woYm9vbCB2YWx1ZSkg
eyByZXR1cm4gY29uc3RJbnQoYm9vbGVhbiwgdmFsdWUpOyB9Ci0gICAgTFZhbHVlIGNvbnN0SW50
OChpbnQ4X3QgdmFsdWUpIHsgcmV0dXJuIGNvbnN0SW50KGludDgsIHZhbHVlKTsgfQogICAgIExW
YWx1ZSBjb25zdEludDMyKGludDMyX3QgdmFsdWUpIHsgcmV0dXJuIGNvbnN0SW50KGludDMyLCB2
YWx1ZSk7IH0KICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBUPgogICAgIExWYWx1ZSBjb25zdEludFB0
cihUKiB2YWx1ZSkgeyByZXR1cm4gY29uc3RJbnQoaW50UHRyLCBiaXR3aXNlX2Nhc3Q8aW50cHRy
X3Q+KHZhbHVlKSk7IH0KQEAgLTI0MiwyMCArMjQxLDIwIEBAIHB1YmxpYzoKICAgICAKICAgICBM
VmFsdWUgbG9hZChUeXBlZFBvaW50ZXIsIExUeXBlIHJlZlR5cGUpOwogICAgIHZvaWQgc3RvcmUo
TFZhbHVlLCBUeXBlZFBvaW50ZXIsIExUeXBlIHJlZlR5cGUpOwotICAgIAotICAgIExWYWx1ZSBs
b2FkOChUeXBlZFBvaW50ZXIgcG9pbnRlcikgeyByZXR1cm4gbG9hZChwb2ludGVyLCByZWY4KTsg
fQotICAgIExWYWx1ZSBsb2FkMTYoVHlwZWRQb2ludGVyIHBvaW50ZXIpIHsgcmV0dXJuIGxvYWQo
cG9pbnRlciwgcmVmMTYpOyB9CisKKyAgICBMVmFsdWUgbG9hZDhTaWduRXh0MzIoVHlwZWRQb2lu
dGVyKTsKKyAgICBMVmFsdWUgbG9hZDhaZXJvRXh0MzIoVHlwZWRQb2ludGVyKTsKKyAgICBMVmFs
dWUgbG9hZDE2U2lnbkV4dDMyKFR5cGVkUG9pbnRlcik7CisgICAgTFZhbHVlIGxvYWQxNlplcm9F
eHQzMihUeXBlZFBvaW50ZXIpOwogICAgIExWYWx1ZSBsb2FkMzIoVHlwZWRQb2ludGVyIHBvaW50
ZXIpIHsgcmV0dXJuIGxvYWQocG9pbnRlciwgcmVmMzIpOyB9CiAgICAgTFZhbHVlIGxvYWQ2NChU
eXBlZFBvaW50ZXIgcG9pbnRlcikgeyByZXR1cm4gbG9hZChwb2ludGVyLCByZWY2NCk7IH0KICAg
ICBMVmFsdWUgbG9hZFB0cihUeXBlZFBvaW50ZXIgcG9pbnRlcikgeyByZXR1cm4gbG9hZChwb2lu
dGVyLCByZWZQdHIpOyB9CiAgICAgTFZhbHVlIGxvYWRGbG9hdChUeXBlZFBvaW50ZXIgcG9pbnRl
cikgeyByZXR1cm4gbG9hZChwb2ludGVyLCByZWZGbG9hdCk7IH0KICAgICBMVmFsdWUgbG9hZERv
dWJsZShUeXBlZFBvaW50ZXIgcG9pbnRlcikgeyByZXR1cm4gbG9hZChwb2ludGVyLCByZWZEb3Vi
bGUpOyB9Ci0gICAgdm9pZCBzdG9yZTgoTFZhbHVlIHZhbHVlLCBUeXBlZFBvaW50ZXIgcG9pbnRl
cikgeyBzdG9yZSh2YWx1ZSwgcG9pbnRlciwgcmVmOCk7IH0KICAgICB2b2lkIHN0b3JlMTYoTFZh
bHVlIHZhbHVlLCBUeXBlZFBvaW50ZXIgcG9pbnRlcikgeyBzdG9yZSh2YWx1ZSwgcG9pbnRlciwg
cmVmMTYpOyB9CiAgICAgdm9pZCBzdG9yZTMyKExWYWx1ZSB2YWx1ZSwgVHlwZWRQb2ludGVyIHBv
aW50ZXIpIHsgc3RvcmUodmFsdWUsIHBvaW50ZXIsIHJlZjMyKTsgfQogICAgIHZvaWQgc3RvcmU2
NChMVmFsdWUgdmFsdWUsIFR5cGVkUG9pbnRlciBwb2ludGVyKSB7IHN0b3JlKHZhbHVlLCBwb2lu
dGVyLCByZWY2NCk7IH0KICAgICB2b2lkIHN0b3JlUHRyKExWYWx1ZSB2YWx1ZSwgVHlwZWRQb2lu
dGVyIHBvaW50ZXIpIHsgc3RvcmUodmFsdWUsIHBvaW50ZXIsIHJlZlB0cik7IH0KLSAgICB2b2lk
IHN0b3JlRmxvYXQoTFZhbHVlIHZhbHVlLCBUeXBlZFBvaW50ZXIgcG9pbnRlcikgeyBzdG9yZSh2
YWx1ZSwgcG9pbnRlciwgcmVmRmxvYXQpOyB9CiAgICAgdm9pZCBzdG9yZURvdWJsZShMVmFsdWUg
dmFsdWUsIFR5cGVkUG9pbnRlciBwb2ludGVyKSB7IHN0b3JlKHZhbHVlLCBwb2ludGVyLCByZWZE
b3VibGUpOyB9CiAKICAgICBMVmFsdWUgYWRkUHRyKExWYWx1ZSB2YWx1ZSwgcHRyZGlmZl90IGlt
bWVkaWF0ZSA9IDApCkBAIC0yOTQsMTQgKzI5MywxNSBAQCBwdWJsaWM6CiAgICAgewogICAgICAg
ICByZXR1cm4gVHlwZWRQb2ludGVyKG1faGVhcHMtPmFic29sdXRlW2FkZHJlc3NdLCBjb25zdElu
dFB0cihhZGRyZXNzKSk7CiAgICAgfQotICAgIAotICAgIExWYWx1ZSBsb2FkOChMVmFsdWUgYmFz
ZSwgY29uc3QgQWJzdHJhY3RGaWVsZCYgZmllbGQpIHsgcmV0dXJuIGxvYWQ4KGFkZHJlc3MoYmFz
ZSwgZmllbGQpKTsgfQotICAgIExWYWx1ZSBsb2FkMTYoTFZhbHVlIGJhc2UsIGNvbnN0IEFic3Ry
YWN0RmllbGQmIGZpZWxkKSB7IHJldHVybiBsb2FkMTYoYWRkcmVzcyhiYXNlLCBmaWVsZCkpOyB9
CisKKyAgICBMVmFsdWUgbG9hZDhTaWduRXh0MzIoTFZhbHVlIGJhc2UsIGNvbnN0IEFic3RyYWN0
RmllbGQmIGZpZWxkKSB7IHJldHVybiBsb2FkOFNpZ25FeHQzMihhZGRyZXNzKGJhc2UsIGZpZWxk
KSk7IH0KKyAgICBMVmFsdWUgbG9hZDhaZXJvRXh0MzIoTFZhbHVlIGJhc2UsIGNvbnN0IEFic3Ry
YWN0RmllbGQmIGZpZWxkKSB7IHJldHVybiBsb2FkOFplcm9FeHQzMihhZGRyZXNzKGJhc2UsIGZp
ZWxkKSk7IH0KKyAgICBMVmFsdWUgbG9hZDE2U2lnbkV4dDMyKExWYWx1ZSBiYXNlLCBjb25zdCBB
YnN0cmFjdEZpZWxkJiBmaWVsZCkgeyByZXR1cm4gbG9hZDE2U2lnbkV4dDMyKGFkZHJlc3MoYmFz
ZSwgZmllbGQpKTsgfQorICAgIExWYWx1ZSBsb2FkMTZaZXJvRXh0MzIoTFZhbHVlIGJhc2UsIGNv
bnN0IEFic3RyYWN0RmllbGQmIGZpZWxkKSB7IHJldHVybiBsb2FkMTZaZXJvRXh0MzIoYWRkcmVz
cyhiYXNlLCBmaWVsZCkpOyB9CiAgICAgTFZhbHVlIGxvYWQzMihMVmFsdWUgYmFzZSwgY29uc3Qg
QWJzdHJhY3RGaWVsZCYgZmllbGQpIHsgcmV0dXJuIGxvYWQzMihhZGRyZXNzKGJhc2UsIGZpZWxk
KSk7IH0KICAgICBMVmFsdWUgbG9hZDY0KExWYWx1ZSBiYXNlLCBjb25zdCBBYnN0cmFjdEZpZWxk
JiBmaWVsZCkgeyByZXR1cm4gbG9hZDY0KGFkZHJlc3MoYmFzZSwgZmllbGQpKTsgfQogICAgIExW
YWx1ZSBsb2FkUHRyKExWYWx1ZSBiYXNlLCBjb25zdCBBYnN0cmFjdEZpZWxkJiBmaWVsZCkgeyBy
ZXR1cm4gbG9hZFB0cihhZGRyZXNzKGJhc2UsIGZpZWxkKSk7IH0KICAgICBMVmFsdWUgbG9hZERv
dWJsZShMVmFsdWUgYmFzZSwgY29uc3QgQWJzdHJhY3RGaWVsZCYgZmllbGQpIHsgcmV0dXJuIGxv
YWREb3VibGUoYWRkcmVzcyhiYXNlLCBmaWVsZCkpOyB9Ci0gICAgdm9pZCBzdG9yZTgoTFZhbHVl
IHZhbHVlLCBMVmFsdWUgYmFzZSwgY29uc3QgQWJzdHJhY3RGaWVsZCYgZmllbGQpIHsgc3RvcmU4
KHZhbHVlLCBhZGRyZXNzKGJhc2UsIGZpZWxkKSk7IH0KICAgICB2b2lkIHN0b3JlMzIoTFZhbHVl
IHZhbHVlLCBMVmFsdWUgYmFzZSwgY29uc3QgQWJzdHJhY3RGaWVsZCYgZmllbGQpIHsgc3RvcmUz
Mih2YWx1ZSwgYWRkcmVzcyhiYXNlLCBmaWVsZCkpOyB9CiAgICAgdm9pZCBzdG9yZTY0KExWYWx1
ZSB2YWx1ZSwgTFZhbHVlIGJhc2UsIGNvbnN0IEFic3RyYWN0RmllbGQmIGZpZWxkKSB7IHN0b3Jl
NjQodmFsdWUsIGFkZHJlc3MoYmFzZSwgZmllbGQpKTsgfQogICAgIHZvaWQgc3RvcmVQdHIoTFZh
bHVlIHZhbHVlLCBMVmFsdWUgYmFzZSwgY29uc3QgQWJzdHJhY3RGaWVsZCYgZmllbGQpIHsgc3Rv
cmVQdHIodmFsdWUsIGFkZHJlc3MoYmFzZSwgZmllbGQpKTsgfQpAQCAtMzQ3LDggKzM0Nyw2IEBA
IHB1YmxpYzoKICAgICBMVmFsdWUgZG91YmxlR3JlYXRlclRoYW5PclVub3JkZXJlZChMVmFsdWUg
bGVmdCwgTFZhbHVlIHJpZ2h0KSB7IHJldHVybiBmY21wKExMVk1SZWFsVUdULCBsZWZ0LCByaWdo
dCk7IH0KICAgICBMVmFsdWUgZG91YmxlR3JlYXRlclRoYW5PckVxdWFsT3JVbm9yZGVyZWQoTFZh
bHVlIGxlZnQsIExWYWx1ZSByaWdodCkgeyByZXR1cm4gZmNtcChMTFZNUmVhbFVHRSwgbGVmdCwg
cmlnaHQpOyB9CiAgICAgCi0gICAgTFZhbHVlIGlzWmVybzgoTFZhbHVlIHZhbHVlKSB7IHJldHVy
biBlcXVhbCh2YWx1ZSwgaW50OFplcm8pOyB9Ci0gICAgTFZhbHVlIG5vdFplcm84KExWYWx1ZSB2
YWx1ZSkgeyByZXR1cm4gbm90RXF1YWwodmFsdWUsIGludDhaZXJvKTsgfQogICAgIExWYWx1ZSBp
c1plcm8zMihMVmFsdWUgdmFsdWUpIHsgcmV0dXJuIGVxdWFsKHZhbHVlLCBpbnQzMlplcm8pOyB9
CiAgICAgTFZhbHVlIG5vdFplcm8zMihMVmFsdWUgdmFsdWUpIHsgcmV0dXJuIG5vdEVxdWFsKHZh
bHVlLCBpbnQzMlplcm8pOyB9CiAgICAgTFZhbHVlIGlzWmVybzY0KExWYWx1ZSB2YWx1ZSkgeyBy
ZXR1cm4gZXF1YWwodmFsdWUsIGludDY0WmVybyk7IH0KQEAgLTM1Niw4ICszNTQsNiBAQCBwdWJs
aWM6CiAgICAgTFZhbHVlIGlzTnVsbChMVmFsdWUgdmFsdWUpIHsgcmV0dXJuIGVxdWFsKHZhbHVl
LCBpbnRQdHJaZXJvKTsgfQogICAgIExWYWx1ZSBub3ROdWxsKExWYWx1ZSB2YWx1ZSkgeyByZXR1
cm4gbm90RXF1YWwodmFsdWUsIGludFB0clplcm8pOyB9CiAgICAgCi0gICAgTFZhbHVlIHRlc3RJ
c1plcm84KExWYWx1ZSB2YWx1ZSwgTFZhbHVlIG1hc2spIHsgcmV0dXJuIGlzWmVybzgoYml0QW5k
KHZhbHVlLCBtYXNrKSk7IH0KLSAgICBMVmFsdWUgdGVzdE5vblplcm84KExWYWx1ZSB2YWx1ZSwg
TFZhbHVlIG1hc2spIHsgcmV0dXJuIG5vdFplcm84KGJpdEFuZCh2YWx1ZSwgbWFzaykpOyB9CiAg
ICAgTFZhbHVlIHRlc3RJc1plcm8zMihMVmFsdWUgdmFsdWUsIExWYWx1ZSBtYXNrKSB7IHJldHVy
biBpc1plcm8zMihiaXRBbmQodmFsdWUsIG1hc2spKTsgfQogICAgIExWYWx1ZSB0ZXN0Tm9uWmVy
bzMyKExWYWx1ZSB2YWx1ZSwgTFZhbHVlIG1hc2spIHsgcmV0dXJuIG5vdFplcm8zMihiaXRBbmQo
dmFsdWUsIG1hc2spKTsgfQogICAgIExWYWx1ZSB0ZXN0SXNaZXJvNjQoTFZhbHVlIHZhbHVlLCBM
VmFsdWUgbWFzaykgeyByZXR1cm4gaXNaZXJvNjQoYml0QW5kKHZhbHVlLCBtYXNrKSk7IH0KQEAg
LTQ0Myw2ICs0MzksMzAgQEAgcHVibGljOgogICAgIExCYXNpY0Jsb2NrIG1fbmV4dEJsb2NrOwog
fTsKIAorTFZhbHVlIE91dHB1dDo6bG9hZDhTaWduRXh0MzIoVHlwZWRQb2ludGVyIHBvaW50ZXIp
Cit7CisgICAgTFZhbHVlIHZhbHVlOCA9IGxvYWQocG9pbnRlciwgcmVmOCk7CisgICAgcmV0dXJu
IHNpZ25FeHQodmFsdWU4LCBpbnQzMik7Cit9CisKK0xWYWx1ZSBPdXRwdXQ6OmxvYWQ4WmVyb0V4
dDMyKFR5cGVkUG9pbnRlciBwb2ludGVyKQoreworICAgIExWYWx1ZSB2YWx1ZTggPSBsb2FkKHBv
aW50ZXIsIHJlZjgpOworICAgIHJldHVybiB6ZXJvRXh0KHZhbHVlOCwgaW50MzIpOworfQorCitM
VmFsdWUgT3V0cHV0Ojpsb2FkMTZTaWduRXh0MzIoVHlwZWRQb2ludGVyIHBvaW50ZXIpCit7Cisg
ICAgTFZhbHVlIHZhbHVlMTYgPSBsb2FkKHBvaW50ZXIsIHJlZjE2KTsKKyAgICByZXR1cm4gc2ln
bkV4dCh2YWx1ZTE2LCBpbnQzMik7Cit9CisKK0xWYWx1ZSBPdXRwdXQ6OmxvYWQxNlplcm9FeHQz
MihUeXBlZFBvaW50ZXIgcG9pbnRlcikKK3sKKyAgICBMVmFsdWUgdmFsdWUxNiA9IGxvYWQocG9p
bnRlciwgcmVmMTYpOworICAgIHJldHVybiB6ZXJvRXh0KHZhbHVlMTYsIGludDMyKTsKK30KKwog
I2RlZmluZSBGVExfTkVXX0JMT0NLKG91dHB1dCwgbmFtZUFyZ3VtZW50cykgXAogICAgIChMSUtF
TFkoIXZlcmJvc2VDb21waWxhdGlvbkVuYWJsZWQoKSkgXAogICAgID8gKG91dHB1dCkubmV3Qmxv
Y2soKSBcCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>265658</attachid>
            <date>2015-11-16 21:06:04 -0800</date>
            <delta_ts>2015-11-17 02:40:08 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-151336-20151116210555.patch</filename>
            <type>text/plain</type>
            <size>25514</size>
            <attacher name="Benjamin Poulain">benjamin</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTkyNDk1CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCAy
MTZiYmRkZDMzOGIyN2Q5MTljOTlkMzYzYzcyOTQ2ODdiYTViMDQzLi4wZGJkNTY0YzA2ZWQyZmU4
M2I3ZDU5NGE0Yzg0ODY1MTZiZmYzOGMxIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw0OSBAQAorMjAxNS0xMS0xNiAgQmVuamFtaW4gUG91bGFpbiAgPGJwb3VsYWluQGFwcGxl
LmNvbT4KKworICAgICAgICBbSlNDXSBNYWtlIEZUTE91dHB1dCdzIGxvYWQ4KCkgYW5kIGxvYWQx
NigpIGNvbXBhdGlibGUgd2l0aCBCMworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MTUxMzM2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgQjMgZG9lcyBub3QgaGF2ZSA4Yml0IGFuZCAxNmJpdCB0eXBlcy4gTWFr
ZSBGVExPdXRwdXQgYWJzdHJhY3QgZW5vdWdoCisgICAgICAgIHRvIGhhbmRsZSBMTFZNIElSIGFu
ZCBCMy4KKworICAgICAgICAqIGZ0bC9GVExMb3dlckRGR1RvTExWTS5jcHA6CisgICAgICAgIChK
U0M6OkZUTDo6REZHOjpMb3dlckRGR1RvTExWTTo6Y29tcGlsZUdldEFycmF5TGVuZ3RoKToKKyAg
ICAgICAgKEpTQzo6RlRMOjpERkc6Okxvd2VyREZHVG9MTFZNOjpjb21waWxlR2V0QnlWYWwpOgor
ICAgICAgICAoSlNDOjpGVEw6OkRGRzo6TG93ZXJERkdUb0xMVk06OmNvbXBpbGVTdHJpbmdDaGFy
QXQpOgorICAgICAgICAoSlNDOjpGVEw6OkRGRzo6TG93ZXJERkdUb0xMVk06OmNvbXBpbGVTdHJp
bmdDaGFyQ29kZUF0KToKKyAgICAgICAgKEpTQzo6RlRMOjpERkc6Okxvd2VyREZHVG9MTFZNOjpj
b21waWxlTm90aWZ5V3JpdGUpOgorICAgICAgICAoSlNDOjpGVEw6OkRGRzo6TG93ZXJERkdUb0xM
Vk06OmNvbXBpbGVTd2l0Y2gpOgorICAgICAgICAoSlNDOjpGVEw6OkRGRzo6TG93ZXJERkdUb0xM
Vk06OmNvbXBpbGVDaGVja0hhc0luc3RhbmNlKToKKyAgICAgICAgKEpTQzo6RlRMOjpERkc6Okxv
d2VyREZHVG9MTFZNOjpjb21waWxlQ2hlY2tXYXRjaGRvZ1RpbWVyKToKKyAgICAgICAgKEpTQzo6
RlRMOjpERkc6Okxvd2VyREZHVG9MTFZNOjpzcGVjdWxhdGVUcnV0aHlPYmplY3QpOgorICAgICAg
ICAoSlNDOjpGVEw6OkRGRzo6TG93ZXJERkdUb0xMVk06OmJvb2xpZnkpOgorICAgICAgICAoSlND
OjpGVEw6OkRGRzo6TG93ZXJERkdUb0xMVk06OmVxdWFsTnVsbE9yVW5kZWZpbmVkKToKKyAgICAg
ICAgKEpTQzo6RlRMOjpERkc6Okxvd2VyREZHVG9MTFZNOjpzd2l0Y2hTdHJpbmdSZWN1cnNlKToK
KyAgICAgICAgKEpTQzo6RlRMOjpERkc6Okxvd2VyREZHVG9MTFZNOjppc09iamVjdCk6CisgICAg
ICAgIChKU0M6OkZUTDo6REZHOjpMb3dlckRGR1RvTExWTTo6aXNOb3RPYmplY3QpOgorICAgICAg
ICAoSlNDOjpGVEw6OkRGRzo6TG93ZXJERkdUb0xMVk06OmlzQXJyYXlUeXBlKToKKyAgICAgICAg
KEpTQzo6RlRMOjpERkc6Okxvd2VyREZHVG9MTFZNOjppc0V4b3RpY0ZvclR5cGVvZik6CisgICAg
ICAgIChKU0M6OkZUTDo6REZHOjpMb3dlckRGR1RvTExWTTo6aXNUeXBlKToKKyAgICAgICAgKEpT
Qzo6RlRMOjpERkc6Okxvd2VyREZHVG9MTFZNOjpzcGVjdWxhdGVOb25OdWxsT2JqZWN0KToKKyAg
ICAgICAgKEpTQzo6RlRMOjpERkc6Okxvd2VyREZHVG9MTFZNOjpsb2FkQ2VsbFN0YXRlKToKKyAg
ICAgICAgKEpTQzo6RlRMOjpERkc6Okxvd2VyREZHVG9MTFZNOjplbWl0U3RvcmVCYXJyaWVyKToK
KyAgICAgICAgKiBmdGwvRlRMT3V0cHV0Lmg6CisgICAgICAgIChKU0M6OkZUTDo6T3V0cHV0Ojps
b2FkOFNpZ25FeHQzMik6CisgICAgICAgIChKU0M6OkZUTDo6T3V0cHV0Ojpsb2FkOFplcm9FeHQz
Mik6CisgICAgICAgIChKU0M6OkZUTDo6T3V0cHV0Ojpsb2FkMTZTaWduRXh0MzIpOgorICAgICAg
ICAoSlNDOjpGVEw6Ok91dHB1dDo6bG9hZDE2WmVyb0V4dDMyKToKKyAgICAgICAgKEpTQzo6RlRM
OjpPdXRwdXQ6OmNvbnN0SW50OCk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkZUTDo6T3V0cHV0
Ojpsb2FkOCk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkZUTDo6T3V0cHV0Ojpsb2FkMTYpOiBE
ZWxldGVkLgorICAgICAgICAoSlNDOjpGVEw6Ok91dHB1dDo6c3RvcmU4KTogRGVsZXRlZC4KKyAg
ICAgICAgKEpTQzo6RlRMOjpPdXRwdXQ6OnN0b3JlRmxvYXQpOiBEZWxldGVkLgorICAgICAgICAo
SlNDOjpGVEw6Ok91dHB1dDo6aXNaZXJvOCk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkZUTDo6
T3V0cHV0Ojpub3RaZXJvOCk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkZUTDo6T3V0cHV0Ojp0
ZXN0SXNaZXJvOCk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkZUTDo6T3V0cHV0Ojp0ZXN0Tm9u
WmVybzgpOiBEZWxldGVkLgorCiAyMDE1LTExLTE2ICBCZW5qYW1pbiBQb3VsYWluICA8YmVuamFt
aW5Ad2Via2l0Lm9yZz4KIAogICAgICAgICBCdWlsZCBmaXggYWZ0ZXIgcjE5MjQ5MgpkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExMb3dlckRGR1RvTExWTS5jcHAgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTExvd2VyREZHVG9MTFZNLmNwcAppbmRleCBjOWE2
ODljZDZjMWNmZDZhNzU5OWNkYWNjMGJlNjVhOTI3OTY1Yzk3Li45ZjdiYjQ0MTBkZWFjYWQ0NGVh
YjI3YmQ0NzNhOGM4MjEwMmUwZmIwIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
ZnRsL0ZUTExvd2VyREZHVG9MTFZNLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRs
L0ZUTExvd2VyREZHVG9MTFZNLmNwcApAQCAtMjUxMSw3ICsyNTExLDcgQEAgcHJpdmF0ZToKICAg
ICAgICAgICAgIExWYWx1ZSBhcmd1bWVudHMgPSBsb3dDZWxsKG1fbm9kZS0+Y2hpbGQxKCkpOwog
ICAgICAgICAgICAgc3BlY3VsYXRlKAogICAgICAgICAgICAgICAgIEV4b3RpY09iamVjdE1vZGUs
IG5vVmFsdWUoKSwgbnVsbHB0ciwKLSAgICAgICAgICAgICAgICBtX291dC5ub3RaZXJvOChtX291
dC5sb2FkOChhcmd1bWVudHMsIG1faGVhcHMuU2NvcGVkQXJndW1lbnRzX292ZXJyb2RlVGhpbmdz
KSkpOworICAgICAgICAgICAgICAgIG1fb3V0Lm5vdFplcm8zMihtX291dC5sb2FkOFplcm9FeHQz
Mihhcmd1bWVudHMsIG1faGVhcHMuU2NvcGVkQXJndW1lbnRzX292ZXJyb2RlVGhpbmdzKSkpOwog
ICAgICAgICAgICAgc2V0SW50MzIobV9vdXQubG9hZDMyTm9uTmVnYXRpdmUoYXJndW1lbnRzLCBt
X2hlYXBzLlNjb3BlZEFyZ3VtZW50c190b3RhbExlbmd0aCkpOwogICAgICAgICAgICAgcmV0dXJu
OwogICAgICAgICB9CkBAIC0yNzUxLDEwICsyNzUxLDEwIEBAIHByaXZhdGU6CiAgICAgICAgICAg
ICAgICAgICAgIExWYWx1ZSByZXN1bHQ7CiAgICAgICAgICAgICAgICAgICAgIHN3aXRjaCAoZWxl
bWVudFNpemUodHlwZSkpIHsKICAgICAgICAgICAgICAgICAgICAgY2FzZSAxOgotICAgICAgICAg
ICAgICAgICAgICAgICAgcmVzdWx0ID0gbV9vdXQubG9hZDgocG9pbnRlcik7CisgICAgICAgICAg
ICAgICAgICAgICAgICByZXN1bHQgPSBpc1NpZ25lZCh0eXBlKSA/IG1fb3V0LmxvYWQ4U2lnbkV4
dDMyKHBvaW50ZXIpIDogIG1fb3V0LmxvYWQ4WmVyb0V4dDMyKHBvaW50ZXIpOwogICAgICAgICAg
ICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICAgICAgIGNhc2UgMjoKLSAgICAg
ICAgICAgICAgICAgICAgICAgIHJlc3VsdCA9IG1fb3V0LmxvYWQxNihwb2ludGVyKTsKKyAgICAg
ICAgICAgICAgICAgICAgICAgIHJlc3VsdCA9IGlzU2lnbmVkKHR5cGUpID8gbV9vdXQubG9hZDE2
U2lnbkV4dDMyKHBvaW50ZXIpIDogIG1fb3V0LmxvYWQxNlplcm9FeHQzMihwb2ludGVyKTsKICAg
ICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgICAgICBjYXNlIDQ6
CiAgICAgICAgICAgICAgICAgICAgICAgICByZXN1bHQgPSBtX291dC5sb2FkMzIocG9pbnRlcik7
CkBAIC0yNzYzLDIwICsyNzYzLDExIEBAIHByaXZhdGU6CiAgICAgICAgICAgICAgICAgICAgICAg
ICBERkdfQ1JBU0gobV9ncmFwaCwgbV9ub2RlLCAiQmFkIGVsZW1lbnQgc2l6ZSIpOwogICAgICAg
ICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgIAotICAgICAgICAgICAgICAgICAg
ICBpZiAoZWxlbWVudFNpemUodHlwZSkgPCA0KSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBp
ZiAoaXNTaWduZWQodHlwZSkpCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzdWx0ID0g
bV9vdXQuc2lnbkV4dChyZXN1bHQsIG1fb3V0LmludDMyKTsKLSAgICAgICAgICAgICAgICAgICAg
ICAgIGVsc2UKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXN1bHQgPSBtX291dC56ZXJv
RXh0KHJlc3VsdCwgbV9vdXQuaW50MzIpOwotICAgICAgICAgICAgICAgICAgICAgICAgc2V0SW50
MzIocmVzdWx0KTsKLSAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgICAg
ICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICAKLSAgICAgICAgICAgICAgICAgICAgaWYg
KGlzU2lnbmVkKHR5cGUpKSB7CisgICAgICAgICAgICAgICAgICAgIGlmIChlbGVtZW50U2l6ZSh0
eXBlKSA8IDQgfHwgaXNTaWduZWQodHlwZSkpIHsKICAgICAgICAgICAgICAgICAgICAgICAgIHNl
dEludDMyKHJlc3VsdCk7CiAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAg
ICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgCisKICAgICAgICAgICAgICAgICAg
ICAgaWYgKG1fbm9kZS0+c2hvdWxkU3BlY3VsYXRlSW50MzIoKSkgewogICAgICAgICAgICAgICAg
ICAgICAgICAgc3BlY3VsYXRlKAogICAgICAgICAgICAgICAgICAgICAgICAgICAgIE92ZXJmbG93
LCBub1ZhbHVlKCksIDAsIG1fb3V0Lmxlc3NUaGFuKHJlc3VsdCwgbV9vdXQuaW50MzJaZXJvKSk7
CkBAIC0zOTk4LDIwICszOTg5LDE4IEBAIHByaXZhdGU6CiAgICAgICAgICAgICAKICAgICAgICAg
bV9vdXQuYXBwZW5kVG8oaXM4Qml0LCBpczE2Qml0KTsKICAgICAgICAgICAgIAotICAgICAgICBW
YWx1ZUZyb21CbG9jayBjaGFyOEJpdCA9IG1fb3V0LmFuY2hvcihtX291dC56ZXJvRXh0KAotICAg
ICAgICAgICAgbV9vdXQubG9hZDgobV9vdXQuYmFzZUluZGV4KAorICAgICAgICBWYWx1ZUZyb21C
bG9jayBjaGFyOEJpdCA9IG1fb3V0LmFuY2hvcigKKyAgICAgICAgICAgIG1fb3V0LmxvYWQ4WmVy
b0V4dDMyKG1fb3V0LmJhc2VJbmRleCgKICAgICAgICAgICAgICAgICBtX2hlYXBzLmNoYXJhY3Rl
cnM4LCBzdG9yYWdlLCBtX291dC56ZXJvRXh0UHRyKGluZGV4KSwKLSAgICAgICAgICAgICAgICBw
cm92ZW5WYWx1ZShtX25vZGUtPmNoaWxkMigpKSkpLAotICAgICAgICAgICAgbV9vdXQuaW50MzIp
KTsKKyAgICAgICAgICAgICAgICBwcm92ZW5WYWx1ZShtX25vZGUtPmNoaWxkMigpKSkpKTsKICAg
ICAgICAgbV9vdXQuanVtcChiaXRzQ29udGludWF0aW9uKTsKICAgICAgICAgICAgIAogICAgICAg
ICBtX291dC5hcHBlbmRUbyhpczE2Qml0LCBiaWdDaGFyYWN0ZXIpOwogICAgICAgICAgICAgCi0g
ICAgICAgIFZhbHVlRnJvbUJsb2NrIGNoYXIxNkJpdCA9IG1fb3V0LmFuY2hvcihtX291dC56ZXJv
RXh0KAotICAgICAgICAgICAgbV9vdXQubG9hZDE2KG1fb3V0LmJhc2VJbmRleCgKKyAgICAgICAg
VmFsdWVGcm9tQmxvY2sgY2hhcjE2Qml0ID0gbV9vdXQuYW5jaG9yKAorICAgICAgICAgICAgbV9v
dXQubG9hZDE2WmVyb0V4dDMyKG1fb3V0LmJhc2VJbmRleCgKICAgICAgICAgICAgICAgICBtX2hl
YXBzLmNoYXJhY3RlcnMxNiwgc3RvcmFnZSwgbV9vdXQuemVyb0V4dFB0cihpbmRleCksCi0gICAg
ICAgICAgICAgICAgcHJvdmVuVmFsdWUobV9ub2RlLT5jaGlsZDIoKSkpKSwKLSAgICAgICAgICAg
IG1fb3V0LmludDMyKSk7CisgICAgICAgICAgICAgICAgcHJvdmVuVmFsdWUobV9ub2RlLT5jaGls
ZDIoKSkpKSk7CiAgICAgICAgIG1fb3V0LmJyYW5jaCgKICAgICAgICAgICAgIG1fb3V0LmFib3Zl
T3JFcXVhbChjaGFyMTZCaXQudmFsdWUoKSwgbV9vdXQuY29uc3RJbnQzMigweDEwMCkpLAogICAg
ICAgICAgICAgcmFyZWx5KGJpZ0NoYXJhY3RlciksIHVzdWFsbHkoYml0c0NvbnRpbnVhdGlvbikp
OwpAQCAtNDA5NiwyMCArNDA4NSwxOCBAQCBwcml2YXRlOgogICAgICAgICAgICAgCiAgICAgICAg
IExCYXNpY0Jsb2NrIGxhc3ROZXh0ID0gbV9vdXQuYXBwZW5kVG8oaXM4Qml0LCBpczE2Qml0KTsK
ICAgICAgICAgICAgIAotICAgICAgICBWYWx1ZUZyb21CbG9jayBjaGFyOEJpdCA9IG1fb3V0LmFu
Y2hvcihtX291dC56ZXJvRXh0KAotICAgICAgICAgICAgbV9vdXQubG9hZDgobV9vdXQuYmFzZUlu
ZGV4KAorICAgICAgICBWYWx1ZUZyb21CbG9jayBjaGFyOEJpdCA9IG1fb3V0LmFuY2hvcigKKyAg
ICAgICAgICAgIG1fb3V0LmxvYWQ4WmVyb0V4dDMyKG1fb3V0LmJhc2VJbmRleCgKICAgICAgICAg
ICAgICAgICBtX2hlYXBzLmNoYXJhY3RlcnM4LCBzdG9yYWdlLCBtX291dC56ZXJvRXh0UHRyKGlu
ZGV4KSwKLSAgICAgICAgICAgICAgICBwcm92ZW5WYWx1ZShtX25vZGUtPmNoaWxkMigpKSkpLAot
ICAgICAgICAgICAgbV9vdXQuaW50MzIpKTsKKyAgICAgICAgICAgICAgICBwcm92ZW5WYWx1ZSht
X25vZGUtPmNoaWxkMigpKSkpKTsKICAgICAgICAgbV9vdXQuanVtcChjb250aW51YXRpb24pOwog
ICAgICAgICAgICAgCiAgICAgICAgIG1fb3V0LmFwcGVuZFRvKGlzMTZCaXQsIGNvbnRpbnVhdGlv
bik7CiAgICAgICAgICAgICAKLSAgICAgICAgVmFsdWVGcm9tQmxvY2sgY2hhcjE2Qml0ID0gbV9v
dXQuYW5jaG9yKG1fb3V0Lnplcm9FeHQoCi0gICAgICAgICAgICBtX291dC5sb2FkMTYobV9vdXQu
YmFzZUluZGV4KAorICAgICAgICBWYWx1ZUZyb21CbG9jayBjaGFyMTZCaXQgPSBtX291dC5hbmNo
b3IoCisgICAgICAgICAgICBtX291dC5sb2FkMTZaZXJvRXh0MzIobV9vdXQuYmFzZUluZGV4KAog
ICAgICAgICAgICAgICAgIG1faGVhcHMuY2hhcmFjdGVyczE2LCBzdG9yYWdlLCBtX291dC56ZXJv
RXh0UHRyKGluZGV4KSwKLSAgICAgICAgICAgICAgICBwcm92ZW5WYWx1ZShtX25vZGUtPmNoaWxk
MigpKSkpLAotICAgICAgICAgICAgbV9vdXQuaW50MzIpKTsKKyAgICAgICAgICAgICAgICBwcm92
ZW5WYWx1ZShtX25vZGUtPmNoaWxkMigpKSkpKTsKICAgICAgICAgbV9vdXQuanVtcChjb250aW51
YXRpb24pOwogICAgICAgICAKICAgICAgICAgbV9vdXQuYXBwZW5kVG8oY29udGludWF0aW9uLCBs
YXN0TmV4dCk7CkBAIC00MzA5LDkgKzQyOTYsOSBAQCBwcml2YXRlOgogICAgICAgICBMQmFzaWNC
bG9jayBpc05vdEludmFsaWRhdGVkID0gRlRMX05FV19CTE9DSyhtX291dCwgKCJOb3RpZnlXcml0
ZSBub3QgaW52YWxpZGF0ZWQgY2FzZSIpKTsKICAgICAgICAgTEJhc2ljQmxvY2sgY29udGludWF0
aW9uID0gRlRMX05FV19CTE9DSyhtX291dCwgKCJOb3RpZnlXcml0ZSBjb250aW51YXRpb24iKSk7
CiAgICAgICAgIAotICAgICAgICBMVmFsdWUgc3RhdGUgPSBtX291dC5sb2FkOChtX291dC5hYnNv
bHV0ZShzZXQtPmFkZHJlc3NPZlN0YXRlKCkpKTsKKyAgICAgICAgTFZhbHVlIHN0YXRlID0gbV9v
dXQubG9hZDhaZXJvRXh0MzIobV9vdXQuYWJzb2x1dGUoc2V0LT5hZGRyZXNzT2ZTdGF0ZSgpKSk7
CiAgICAgICAgIG1fb3V0LmJyYW5jaCgKLSAgICAgICAgICAgIG1fb3V0LmVxdWFsKHN0YXRlLCBt
X291dC5jb25zdEludDgoSXNJbnZhbGlkYXRlZCkpLAorICAgICAgICAgICAgbV9vdXQuZXF1YWwo
c3RhdGUsIG1fb3V0LmNvbnN0SW50MzIoSXNJbnZhbGlkYXRlZCkpLAogICAgICAgICAgICAgdXN1
YWxseShjb250aW51YXRpb24pLCByYXJlbHkoaXNOb3RJbnZhbGlkYXRlZCkpOwogICAgICAgICAK
ICAgICAgICAgTEJhc2ljQmxvY2sgbGFzdE5leHQgPSBtX291dC5hcHBlbmRUbyhpc05vdEludmFs
aWRhdGVkLCBjb250aW51YXRpb24pOwpAQCAtNDk0NCwxNiArNDkzMSwxNSBAQCBwcml2YXRlOgog
ICAgICAgICAgICAgCiAgICAgICAgICAgICBWZWN0b3I8VmFsdWVGcm9tQmxvY2ssIDI+IGNoYXJh
Y3RlcnM7CiAgICAgICAgICAgICBtX291dC5hcHBlbmRUbyhpczhCaXQsIGlzMTZCaXQpOwotICAg
ICAgICAgICAgY2hhcmFjdGVycy5hcHBlbmQobV9vdXQuYW5jaG9yKAotICAgICAgICAgICAgICAg
IG1fb3V0Lnplcm9FeHQobV9vdXQubG9hZDgoY2hhcmFjdGVyRGF0YSwgbV9oZWFwcy5jaGFyYWN0
ZXJzOFswXSksIG1fb3V0LmludDE2KSkpOworICAgICAgICAgICAgY2hhcmFjdGVycy5hcHBlbmQo
bV9vdXQuYW5jaG9yKG1fb3V0LmxvYWQ4WmVyb0V4dDMyKGNoYXJhY3RlckRhdGEsIG1faGVhcHMu
Y2hhcmFjdGVyczhbMF0pKSk7CiAgICAgICAgICAgICBtX291dC5qdW1wKGNvbnRpbnVhdGlvbik7
CiAgICAgICAgICAgICAKICAgICAgICAgICAgIG1fb3V0LmFwcGVuZFRvKGlzMTZCaXQsIGNvbnRp
bnVhdGlvbik7Ci0gICAgICAgICAgICBjaGFyYWN0ZXJzLmFwcGVuZChtX291dC5hbmNob3IobV9v
dXQubG9hZDE2KGNoYXJhY3RlckRhdGEsIG1faGVhcHMuY2hhcmFjdGVyczE2WzBdKSkpOworICAg
ICAgICAgICAgY2hhcmFjdGVycy5hcHBlbmQobV9vdXQuYW5jaG9yKG1fb3V0LmxvYWQxNlplcm9F
eHQzMihjaGFyYWN0ZXJEYXRhLCBtX2hlYXBzLmNoYXJhY3RlcnMxNlswXSkpKTsKICAgICAgICAg
ICAgIG1fb3V0Lmp1bXAoY29udGludWF0aW9uKTsKICAgICAgICAgICAgIAogICAgICAgICAgICAg
bV9vdXQuYXBwZW5kVG8oY29udGludWF0aW9uLCBsYXN0TmV4dCk7Ci0gICAgICAgICAgICBidWls
ZFN3aXRjaChkYXRhLCBtX291dC5pbnQxNiwgbV9vdXQucGhpKG1fb3V0LmludDE2LCBjaGFyYWN0
ZXJzKSk7CisgICAgICAgICAgICBidWlsZFN3aXRjaChkYXRhLCBtX291dC5pbnQzMiwgbV9vdXQu
cGhpKG1fb3V0LmludDMyLCBjaGFyYWN0ZXJzKSk7CiAgICAgICAgICAgICByZXR1cm47CiAgICAg
ICAgIH0KICAgICAgICAgCkBAIC01MjgxLDkgKzUyNjcsOSBAQCBwcml2YXRlOgogICAgIHsKICAg
ICAgICAgc3BlY3VsYXRlKAogICAgICAgICAgICAgVW5jb3VudGFibGUsIG5vVmFsdWUoKSwgMCwK
LSAgICAgICAgICAgIG1fb3V0LnRlc3RJc1plcm84KAotICAgICAgICAgICAgICAgIG1fb3V0Lmxv
YWQ4KGxvd0NlbGwobV9ub2RlLT5jaGlsZDEoKSksIG1faGVhcHMuSlNDZWxsX3R5cGVJbmZvRmxh
Z3MpLAotICAgICAgICAgICAgICAgIG1fb3V0LmNvbnN0SW50OChJbXBsZW1lbnRzRGVmYXVsdEhh
c0luc3RhbmNlKSkpOworICAgICAgICAgICAgbV9vdXQudGVzdElzWmVybzMyKAorICAgICAgICAg
ICAgICAgIG1fb3V0LmxvYWQ4WmVyb0V4dDMyKGxvd0NlbGwobV9ub2RlLT5jaGlsZDEoKSksIG1f
aGVhcHMuSlNDZWxsX3R5cGVJbmZvRmxhZ3MpLAorICAgICAgICAgICAgICAgIG1fb3V0LmNvbnN0
SW50MzIoSW1wbGVtZW50c0RlZmF1bHRIYXNJbnN0YW5jZSkpKTsKICAgICB9CiAgICAgCiAgICAg
dm9pZCBjb21waWxlSW5zdGFuY2VPZigpCkBAIC01Nzc2LDggKzU3NjIsOCBAQCBwcml2YXRlOgog
ICAgICAgICBMQmFzaWNCbG9jayB0aW1lckRpZEZpcmUgPSBGVExfTkVXX0JMT0NLKG1fb3V0LCAo
IkNoZWNrV2F0Y2hkb2dUaW1lciB0aW1lciBkaWQgZmlyZSIpKTsKICAgICAgICAgTEJhc2ljQmxv
Y2sgY29udGludWF0aW9uID0gRlRMX05FV19CTE9DSyhtX291dCwgKCJDaGVja1dhdGNoZG9nVGlt
ZXIgY29udGludWF0aW9uIikpOwogICAgICAgICAKLSAgICAgICAgTFZhbHVlIHN0YXRlID0gbV9v
dXQubG9hZDgobV9vdXQuYWJzb2x1dGUodm0oKS53YXRjaGRvZy0+dGltZXJEaWRGaXJlQWRkcmVz
cygpKSk7Ci0gICAgICAgIG1fb3V0LmJyYW5jaChtX291dC5lcXVhbChzdGF0ZSwgbV9vdXQuY29u
c3RJbnQ4KDApKSwKKyAgICAgICAgTFZhbHVlIHN0YXRlID0gbV9vdXQubG9hZDhaZXJvRXh0MzIo
bV9vdXQuYWJzb2x1dGUodm0oKS53YXRjaGRvZy0+dGltZXJEaWRGaXJlQWRkcmVzcygpKSk7Cisg
ICAgICAgIG1fb3V0LmJyYW5jaChtX291dC5pc1plcm8zMihzdGF0ZSksCiAgICAgICAgICAgICB1
c3VhbGx5KGNvbnRpbnVhdGlvbiksIHJhcmVseSh0aW1lckRpZEZpcmUpKTsKIAogICAgICAgICBM
QmFzaWNCbG9jayBsYXN0TmV4dCA9IG1fb3V0LmFwcGVuZFRvKHRpbWVyRGlkRmlyZSwgY29udGlu
dWF0aW9uKTsKQEAgLTY0NTMsOSArNjQzOSw5IEBAIHByaXZhdGU6CiAgICAgICAgIEZUTF9UWVBF
X0NIRUNLKGpzVmFsdWVWYWx1ZShjZWxsKSwgZWRnZSwgZmlsdGVyLCBpc05vdE9iamVjdChjZWxs
KSk7CiAgICAgICAgIHNwZWN1bGF0ZSgKICAgICAgICAgICAgIEJhZFR5cGUsIGpzVmFsdWVWYWx1
ZShjZWxsKSwgZWRnZS5ub2RlKCksCi0gICAgICAgICAgICBtX291dC50ZXN0Tm9uWmVybzgoCi0g
ICAgICAgICAgICAgICAgbV9vdXQubG9hZDgoY2VsbCwgbV9oZWFwcy5KU0NlbGxfdHlwZUluZm9G
bGFncyksCi0gICAgICAgICAgICAgICAgbV9vdXQuY29uc3RJbnQ4KE1hc3F1ZXJhZGVzQXNVbmRl
ZmluZWQpKSk7CisgICAgICAgICAgICBtX291dC50ZXN0Tm9uWmVybzMyKAorICAgICAgICAgICAg
ICAgIG1fb3V0LmxvYWQ4WmVyb0V4dDMyKGNlbGwsIG1faGVhcHMuSlNDZWxsX3R5cGVJbmZvRmxh
Z3MpLAorICAgICAgICAgICAgICAgIG1fb3V0LmNvbnN0SW50MzIoTWFzcXVlcmFkZXNBc1VuZGVm
aW5lZCkpKTsKICAgICB9CiAgICAgCiAgICAgdm9pZCBub25TcGVjdWxhdGl2ZUNvbXBhcmUoTElu
dFByZWRpY2F0ZSBpbnRDb25kaXRpb24sIFNfSklUT3BlcmF0aW9uX0VKSiBoZWxwZXJGdW5jdGlv
bikKQEAgLTY4MDMsOSArNjc4OSw5IEBAIHByaXZhdGU6CiAgICAgICAgICAgICAgICAgcmVzdWx0
cy5hcHBlbmQobV9vdXQuYW5jaG9yKG1fb3V0LmJvb2xlYW5UcnVlKSk7CiAgICAgICAgICAgICAg
ICAgCiAgICAgICAgICAgICAgICAgbV9vdXQuYnJhbmNoKAotICAgICAgICAgICAgICAgICAgICBt
X291dC50ZXN0SXNaZXJvOCgKLSAgICAgICAgICAgICAgICAgICAgICAgIG1fb3V0LmxvYWQ4KHZh
bHVlLCBtX2hlYXBzLkpTQ2VsbF90eXBlSW5mb0ZsYWdzKSwKLSAgICAgICAgICAgICAgICAgICAg
ICAgIG1fb3V0LmNvbnN0SW50OChNYXNxdWVyYWRlc0FzVW5kZWZpbmVkKSksCisgICAgICAgICAg
ICAgICAgICAgIG1fb3V0LnRlc3RJc1plcm8zMigKKyAgICAgICAgICAgICAgICAgICAgICAgIG1f
b3V0LmxvYWQ4WmVyb0V4dDMyKHZhbHVlLCBtX2hlYXBzLkpTQ2VsbF90eXBlSW5mb0ZsYWdzKSwK
KyAgICAgICAgICAgICAgICAgICAgICAgIG1fb3V0LmNvbnN0SW50MzIoTWFzcXVlcmFkZXNBc1Vu
ZGVmaW5lZCkpLAogICAgICAgICAgICAgICAgICAgICB1c3VhbGx5KGNvbnRpbnVhdGlvbiksIHJh
cmVseShtYXNxdWVyYWRlc0Nhc2UpKTsKICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAg
ICBtX291dC5hcHBlbmRUbyhtYXNxdWVyYWRlc0Nhc2UpOwpAQCAtNjkwMSw5ICs2ODg3LDkgQEAg
cHJpdmF0ZToKICAgICAgICAgICAgIHJlc3VsdHMuYXBwZW5kKG1fb3V0LmFuY2hvcihtX291dC5i
b29sZWFuRmFsc2UpKTsKICAgICAgICAgICAgIAogICAgICAgICAgICAgbV9vdXQuYnJhbmNoKAot
ICAgICAgICAgICAgICAgIG1fb3V0LnRlc3ROb25aZXJvOCgKLSAgICAgICAgICAgICAgICAgICAg
bV9vdXQubG9hZDgodmFsdWUsIG1faGVhcHMuSlNDZWxsX3R5cGVJbmZvRmxhZ3MpLAotICAgICAg
ICAgICAgICAgICAgICBtX291dC5jb25zdEludDgoTWFzcXVlcmFkZXNBc1VuZGVmaW5lZCkpLAor
ICAgICAgICAgICAgICAgIG1fb3V0LnRlc3ROb25aZXJvMzIoCisgICAgICAgICAgICAgICAgICAg
IG1fb3V0LmxvYWQ4WmVyb0V4dDMyKHZhbHVlLCBtX2hlYXBzLkpTQ2VsbF90eXBlSW5mb0ZsYWdz
KSwKKyAgICAgICAgICAgICAgICAgICAgbV9vdXQuY29uc3RJbnQzMihNYXNxdWVyYWRlc0FzVW5k
ZWZpbmVkKSksCiAgICAgICAgICAgICAgICAgcmFyZWx5KG1hc3F1ZXJhZGVzQ2FzZSksIHVzdWFs
bHkoY29udGludWF0aW9uKSk7CiAgICAgICAgICAgICAKICAgICAgICAgICAgIG1fb3V0LmFwcGVu
ZFRvKG1hc3F1ZXJhZGVzQ2FzZSwgcHJpbWl0aXZlQ2FzZSk7CkBAIC03MTU3LDggKzcxNDMsOCBA
QCBwcml2YXRlOgogICAgICAgICBmb3IgKHVuc2lnbmVkIGkgPSBudW1DaGVja2VkOyBpIDwgY29t
bW9uQ2hhcnM7ICsraSkgewogICAgICAgICAgICAgbV9vdXQuY2hlY2soCiAgICAgICAgICAgICAg
ICAgbV9vdXQubm90RXF1YWwoCi0gICAgICAgICAgICAgICAgICAgIG1fb3V0LmxvYWQ4KGJ1ZmZl
ciwgbV9oZWFwcy5jaGFyYWN0ZXJzOFtpXSksCi0gICAgICAgICAgICAgICAgICAgIG1fb3V0LmNv
bnN0SW50OChjYXNlc1tiZWdpbl0uc3RyaW5nLT5hdChpKSkpLAorICAgICAgICAgICAgICAgICAg
ICBtX291dC5sb2FkOFplcm9FeHQzMihidWZmZXIsIG1faGVhcHMuY2hhcmFjdGVyczhbaV0pLAor
ICAgICAgICAgICAgICAgICAgICBtX291dC5jb25zdEludDMyKHN0YXRpY19jYXN0PHVpbnQxNl90
PihjYXNlc1tiZWdpbl0uc3RyaW5nLT5hdChpKSkpKSwKICAgICAgICAgICAgICAgICB1bnN1cmUo
ZmFsbFRocm91Z2gpKTsKICAgICAgICAgfQogICAgICAgICAKQEAgLTcxOTUsNyArNzE4MSw3IEBA
IHByaXZhdGU6CiAgICAgICAgIAogICAgICAgICBERkdfQVNTRVJUKG1fZ3JhcGgsIG1fbm9kZSwg
ZW5kID49IGJlZ2luICsgMik7CiAgICAgICAgIAotICAgICAgICBMVmFsdWUgdW5jaGVja2VkQ2hh
ciA9IG1fb3V0LmxvYWQ4KGJ1ZmZlciwgbV9oZWFwcy5jaGFyYWN0ZXJzOFtjb21tb25DaGFyc10p
OworICAgICAgICBMVmFsdWUgdW5jaGVja2VkQ2hhciA9IG1fb3V0LmxvYWQ4WmVyb0V4dDMyKGJ1
ZmZlciwgbV9oZWFwcy5jaGFyYWN0ZXJzOFtjb21tb25DaGFyc10pOwogICAgICAgICAKICAgICAg
ICAgVmVjdG9yPENoYXJhY3RlckNhc2U+IGNoYXJhY3RlckNhc2VzOwogICAgICAgICBDaGFyYWN0
ZXJDYXNlIGN1cnJlbnRDYXNlKGNhc2VzW2JlZ2luXS5zdHJpbmctPmF0KGNvbW1vbkNoYXJzKSwg
YmVnaW4sIGJlZ2luICsgMSk7CkBAIC03MjE5LDcgKzcyMDUsNyBAQCBwcml2YXRlOgogICAgICAg
ICAgICAgaWYgKGkpCiAgICAgICAgICAgICAgICAgREZHX0FTU0VSVChtX2dyYXBoLCBtX25vZGUs
IGNoYXJhY3RlckNhc2VzW2kgLSAxXS5jaGFyYWN0ZXIgPCBjaGFyYWN0ZXJDYXNlc1tpXS5jaGFy
YWN0ZXIpOwogICAgICAgICAgICAgc3dpdGNoQ2FzZXMuYXBwZW5kKFN3aXRjaENhc2UoCi0gICAg
ICAgICAgICAgICAgbV9vdXQuY29uc3RJbnQ4KGNoYXJhY3RlckNhc2VzW2ldLmNoYXJhY3Rlciks
IGNoYXJhY3RlckJsb2Nrc1tpXSwgV2VpZ2h0KCkpKTsKKyAgICAgICAgICAgICAgICBtX291dC5j
b25zdEludDMyKGNoYXJhY3RlckNhc2VzW2ldLmNoYXJhY3RlciksIGNoYXJhY3RlckJsb2Nrc1tp
XSwgV2VpZ2h0KCkpKTsKICAgICAgICAgfQogICAgICAgICBtX291dC5zd2l0Y2hJbnN0cnVjdGlv
bih1bmNoZWNrZWRDaGFyLCBzd2l0Y2hDYXNlcywgZmFsbFRocm91Z2gsIFdlaWdodCgpKTsKICAg
ICAgICAgCkBAIC04MzEzLDggKzgyOTksOCBAQCBwcml2YXRlOgogICAgICAgICBpZiAoTFZhbHVl
IHByb3ZlbiA9IGlzUHJvdmVuVmFsdWUodHlwZSAmIFNwZWNDZWxsLCBTcGVjT2JqZWN0KSkKICAg
ICAgICAgICAgIHJldHVybiBwcm92ZW47CiAgICAgICAgIHJldHVybiBtX291dC5hYm92ZU9yRXF1
YWwoCi0gICAgICAgICAgICBtX291dC5sb2FkOChjZWxsLCBtX2hlYXBzLkpTQ2VsbF90eXBlSW5m
b1R5cGUpLAotICAgICAgICAgICAgbV9vdXQuY29uc3RJbnQ4KE9iamVjdFR5cGUpKTsKKyAgICAg
ICAgICAgIG1fb3V0LmxvYWQ4WmVyb0V4dDMyKGNlbGwsIG1faGVhcHMuSlNDZWxsX3R5cGVJbmZv
VHlwZSksCisgICAgICAgICAgICBtX291dC5jb25zdEludDMyKE9iamVjdFR5cGUpKTsKICAgICB9
CiAKICAgICBMVmFsdWUgaXNOb3RPYmplY3QoTFZhbHVlIGNlbGwsIFNwZWN1bGF0ZWRUeXBlIHR5
cGUgPSBTcGVjRnVsbFRvcCkKQEAgLTgzMjIsOCArODMwOCw4IEBAIHByaXZhdGU6CiAgICAgICAg
IGlmIChMVmFsdWUgcHJvdmVuID0gaXNQcm92ZW5WYWx1ZSh0eXBlICYgU3BlY0NlbGwsIH5TcGVj
T2JqZWN0KSkKICAgICAgICAgICAgIHJldHVybiBwcm92ZW47CiAgICAgICAgIHJldHVybiBtX291
dC5iZWxvdygKLSAgICAgICAgICAgIG1fb3V0LmxvYWQ4KGNlbGwsIG1faGVhcHMuSlNDZWxsX3R5
cGVJbmZvVHlwZSksCi0gICAgICAgICAgICBtX291dC5jb25zdEludDgoT2JqZWN0VHlwZSkpOwor
ICAgICAgICAgICAgbV9vdXQubG9hZDhaZXJvRXh0MzIoY2VsbCwgbV9oZWFwcy5KU0NlbGxfdHlw
ZUluZm9UeXBlKSwKKyAgICAgICAgICAgIG1fb3V0LmNvbnN0SW50MzIoT2JqZWN0VHlwZSkpOwog
ICAgIH0KIAogICAgIExWYWx1ZSBpc05vdFN0cmluZyhMVmFsdWUgY2VsbCwgU3BlY3VsYXRlZFR5
cGUgdHlwZSA9IFNwZWNGdWxsVG9wKQpAQCAtODM1OSw3ICs4MzQ1LDcgQEAgcHJpdmF0ZToKICAg
ICAgICAgY2FzZSBBcnJheTo6SW50MzI6CiAgICAgICAgIGNhc2UgQXJyYXk6OkRvdWJsZToKICAg
ICAgICAgY2FzZSBBcnJheTo6Q29udGlndW91czogewotICAgICAgICAgICAgTFZhbHVlIGluZGV4
aW5nVHlwZSA9IG1fb3V0LmxvYWQ4KGNlbGwsIG1faGVhcHMuSlNDZWxsX2luZGV4aW5nVHlwZSk7
CisgICAgICAgICAgICBMVmFsdWUgaW5kZXhpbmdUeXBlID0gbV9vdXQubG9hZDhaZXJvRXh0MzIo
Y2VsbCwgbV9oZWFwcy5KU0NlbGxfaW5kZXhpbmdUeXBlKTsKICAgICAgICAgICAgIAogICAgICAg
ICAgICAgc3dpdGNoIChhcnJheU1vZGUuYXJyYXlDbGFzcygpKSB7CiAgICAgICAgICAgICBjYXNl
IEFycmF5OjpPcmlnaW5hbEFycmF5OgpAQCAtODM2OCwxOSArODM1NCwxOSBAQCBwcml2YXRlOgog
ICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgY2FzZSBBcnJheTo6QXJyYXk6CiAgICAgICAg
ICAgICAgICAgcmV0dXJuIG1fb3V0LmVxdWFsKAotICAgICAgICAgICAgICAgICAgICBtX291dC5i
aXRBbmQoaW5kZXhpbmdUeXBlLCBtX291dC5jb25zdEludDgoSXNBcnJheSB8IEluZGV4aW5nU2hh
cGVNYXNrKSksCi0gICAgICAgICAgICAgICAgICAgIG1fb3V0LmNvbnN0SW50OChJc0FycmF5IHwg
YXJyYXlNb2RlLnNoYXBlTWFzaygpKSk7CisgICAgICAgICAgICAgICAgICAgIG1fb3V0LmJpdEFu
ZChpbmRleGluZ1R5cGUsIG1fb3V0LmNvbnN0SW50MzIoSXNBcnJheSB8IEluZGV4aW5nU2hhcGVN
YXNrKSksCisgICAgICAgICAgICAgICAgICAgIG1fb3V0LmNvbnN0SW50MzIoSXNBcnJheSB8IGFy
cmF5TW9kZS5zaGFwZU1hc2soKSkpOwogICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgY2Fz
ZSBBcnJheTo6Tm9uQXJyYXk6CiAgICAgICAgICAgICBjYXNlIEFycmF5OjpPcmlnaW5hbE5vbkFy
cmF5OgogICAgICAgICAgICAgICAgIHJldHVybiBtX291dC5lcXVhbCgKLSAgICAgICAgICAgICAg
ICAgICAgbV9vdXQuYml0QW5kKGluZGV4aW5nVHlwZSwgbV9vdXQuY29uc3RJbnQ4KElzQXJyYXkg
fCBJbmRleGluZ1NoYXBlTWFzaykpLAotICAgICAgICAgICAgICAgICAgICBtX291dC5jb25zdElu
dDgoYXJyYXlNb2RlLnNoYXBlTWFzaygpKSk7CisgICAgICAgICAgICAgICAgICAgIG1fb3V0LmJp
dEFuZChpbmRleGluZ1R5cGUsIG1fb3V0LmNvbnN0SW50MzIoSXNBcnJheSB8IEluZGV4aW5nU2hh
cGVNYXNrKSksCisgICAgICAgICAgICAgICAgICAgIG1fb3V0LmNvbnN0SW50MzIoYXJyYXlNb2Rl
LnNoYXBlTWFzaygpKSk7CiAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICBjYXNlIEFycmF5
OjpQb3NzaWJseUFycmF5OgogICAgICAgICAgICAgICAgIHJldHVybiBtX291dC5lcXVhbCgKLSAg
ICAgICAgICAgICAgICAgICAgbV9vdXQuYml0QW5kKGluZGV4aW5nVHlwZSwgbV9vdXQuY29uc3RJ
bnQ4KEluZGV4aW5nU2hhcGVNYXNrKSksCi0gICAgICAgICAgICAgICAgICAgIG1fb3V0LmNvbnN0
SW50OChhcnJheU1vZGUuc2hhcGVNYXNrKCkpKTsKKyAgICAgICAgICAgICAgICAgICAgbV9vdXQu
Yml0QW5kKGluZGV4aW5nVHlwZSwgbV9vdXQuY29uc3RJbnQzMihJbmRleGluZ1NoYXBlTWFzaykp
LAorICAgICAgICAgICAgICAgICAgICBtX291dC5jb25zdEludDMyKGFycmF5TW9kZS5zaGFwZU1h
c2soKSkpOwogICAgICAgICAgICAgfQogICAgICAgICAgICAgCiAgICAgICAgICAgICBERkdfQ1JB
U0gobV9ncmFwaCwgbV9ub2RlLCAiQ29ycnVwdCBhcnJheSBjbGFzcyIpOwpAQCAtODM4OCwxOCAr
ODM3NCwxOCBAQCBwcml2YXRlOgogICAgICAgICAgICAgCiAgICAgICAgIGNhc2UgQXJyYXk6OkRp
cmVjdEFyZ3VtZW50czoKICAgICAgICAgICAgIHJldHVybiBtX291dC5lcXVhbCgKLSAgICAgICAg
ICAgICAgICBtX291dC5sb2FkOChjZWxsLCBtX2hlYXBzLkpTQ2VsbF90eXBlSW5mb1R5cGUpLAot
ICAgICAgICAgICAgICAgIG1fb3V0LmNvbnN0SW50OChEaXJlY3RBcmd1bWVudHNUeXBlKSk7Cisg
ICAgICAgICAgICAgICAgbV9vdXQubG9hZDhaZXJvRXh0MzIoY2VsbCwgbV9oZWFwcy5KU0NlbGxf
dHlwZUluZm9UeXBlKSwKKyAgICAgICAgICAgICAgICBtX291dC5jb25zdEludDMyKERpcmVjdEFy
Z3VtZW50c1R5cGUpKTsKICAgICAgICAgICAgIAogICAgICAgICBjYXNlIEFycmF5OjpTY29wZWRB
cmd1bWVudHM6CiAgICAgICAgICAgICByZXR1cm4gbV9vdXQuZXF1YWwoCi0gICAgICAgICAgICAg
ICAgbV9vdXQubG9hZDgoY2VsbCwgbV9oZWFwcy5KU0NlbGxfdHlwZUluZm9UeXBlKSwKLSAgICAg
ICAgICAgICAgICBtX291dC5jb25zdEludDgoU2NvcGVkQXJndW1lbnRzVHlwZSkpOworICAgICAg
ICAgICAgICAgIG1fb3V0LmxvYWQ4WmVyb0V4dDMyKGNlbGwsIG1faGVhcHMuSlNDZWxsX3R5cGVJ
bmZvVHlwZSksCisgICAgICAgICAgICAgICAgbV9vdXQuY29uc3RJbnQzMihTY29wZWRBcmd1bWVu
dHNUeXBlKSk7CiAgICAgICAgICAgICAKICAgICAgICAgZGVmYXVsdDoKICAgICAgICAgICAgIHJl
dHVybiBtX291dC5lcXVhbCgKLSAgICAgICAgICAgICAgICBtX291dC5sb2FkOChjZWxsLCBtX2hl
YXBzLkpTQ2VsbF90eXBlSW5mb1R5cGUpLCAKLSAgICAgICAgICAgICAgICBtX291dC5jb25zdElu
dDgodHlwZUZvclR5cGVkQXJyYXlUeXBlKGFycmF5TW9kZS50eXBlZEFycmF5VHlwZSgpKSkpOwor
ICAgICAgICAgICAgICAgIG1fb3V0LmxvYWQ4WmVyb0V4dDMyKGNlbGwsIG1faGVhcHMuSlNDZWxs
X3R5cGVJbmZvVHlwZSksCisgICAgICAgICAgICAgICAgbV9vdXQuY29uc3RJbnQzMih0eXBlRm9y
VHlwZWRBcnJheVR5cGUoYXJyYXlNb2RlLnR5cGVkQXJyYXlUeXBlKCkpKSk7CiAgICAgICAgIH0K
ICAgICB9CiAgICAgCkBAIC04NDIwLDE2ICs4NDA2LDE2IEBAIHByaXZhdGU6CiAgICAgewogICAg
ICAgICBpZiAoISh0eXBlICYgU3BlY09iamVjdE90aGVyKSkKICAgICAgICAgICAgIHJldHVybiBt
X291dC5ib29sZWFuRmFsc2U7Ci0gICAgICAgIHJldHVybiBtX291dC50ZXN0Tm9uWmVybzgoCi0g
ICAgICAgICAgICBtX291dC5sb2FkOChjZWxsLCBtX2hlYXBzLkpTQ2VsbF90eXBlSW5mb0ZsYWdz
KSwKLSAgICAgICAgICAgIG1fb3V0LmNvbnN0SW50OChNYXNxdWVyYWRlc0FzVW5kZWZpbmVkIHwg
VHlwZU9mU2hvdWxkQ2FsbEdldENhbGxEYXRhKSk7CisgICAgICAgIHJldHVybiBtX291dC50ZXN0
Tm9uWmVybzMyKAorICAgICAgICAgICAgbV9vdXQubG9hZDhaZXJvRXh0MzIoY2VsbCwgbV9oZWFw
cy5KU0NlbGxfdHlwZUluZm9GbGFncyksCisgICAgICAgICAgICBtX291dC5jb25zdEludDMyKE1h
c3F1ZXJhZGVzQXNVbmRlZmluZWQgfCBUeXBlT2ZTaG91bGRDYWxsR2V0Q2FsbERhdGEpKTsKICAg
ICB9CiAgICAgCiAgICAgTFZhbHVlIGlzVHlwZShMVmFsdWUgY2VsbCwgSlNUeXBlIHR5cGUpCiAg
ICAgewogICAgICAgICByZXR1cm4gbV9vdXQuZXF1YWwoCi0gICAgICAgICAgICBtX291dC5sb2Fk
OChjZWxsLCBtX2hlYXBzLkpTQ2VsbF90eXBlSW5mb1R5cGUpLAotICAgICAgICAgICAgbV9vdXQu
Y29uc3RJbnQ4KHR5cGUpKTsKKyAgICAgICAgICAgIG1fb3V0LmxvYWQ4WmVyb0V4dDMyKGNlbGws
IG1faGVhcHMuSlNDZWxsX3R5cGVJbmZvVHlwZSksCisgICAgICAgICAgICBtX291dC5jb25zdElu
dDMyKHR5cGUpKTsKICAgICB9CiAgICAgCiAgICAgTFZhbHVlIGlzTm90VHlwZShMVmFsdWUgY2Vs
bCwgSlNUeXBlIHR5cGUpCkBAIC04NTk0LDkgKzg1ODAsOSBAQCBwcml2YXRlOgogICAgICAgICAK
ICAgICAgICAgc3BlY3VsYXRlKAogICAgICAgICAgICAgQmFkVHlwZSwganNWYWx1ZVZhbHVlKGNl
bGwpLCBlZGdlLm5vZGUoKSwKLSAgICAgICAgICAgIG1fb3V0LnRlc3ROb25aZXJvOCgKLSAgICAg
ICAgICAgICAgICBtX291dC5sb2FkOChjZWxsLCBtX2hlYXBzLkpTQ2VsbF90eXBlSW5mb0ZsYWdz
KSwKLSAgICAgICAgICAgICAgICBtX291dC5jb25zdEludDgoTWFzcXVlcmFkZXNBc1VuZGVmaW5l
ZCkpKTsKKyAgICAgICAgICAgIG1fb3V0LnRlc3ROb25aZXJvMzIoCisgICAgICAgICAgICAgICAg
bV9vdXQubG9hZDhaZXJvRXh0MzIoY2VsbCwgbV9oZWFwcy5KU0NlbGxfdHlwZUluZm9GbGFncyks
CisgICAgICAgICAgICAgICAgbV9vdXQuY29uc3RJbnQzMihNYXNxdWVyYWRlc0FzVW5kZWZpbmVk
KSkpOwogICAgIH0KICAgICAKICAgICB2b2lkIHNwZWN1bGF0ZU51bWJlcihFZGdlIGVkZ2UpCkBA
IC04NzEzLDcgKzg2OTksNyBAQCBwcml2YXRlOgogICAgIAogICAgIExWYWx1ZSBsb2FkQ2VsbFN0
YXRlKExWYWx1ZSBiYXNlKQogICAgIHsKLSAgICAgICAgcmV0dXJuIG1fb3V0LmxvYWQ4KGJhc2Us
IG1faGVhcHMuSlNDZWxsX2NlbGxTdGF0ZSk7CisgICAgICAgIHJldHVybiBtX291dC5sb2FkOFpl
cm9FeHQzMihiYXNlLCBtX2hlYXBzLkpTQ2VsbF9jZWxsU3RhdGUpOwogICAgIH0KIAogICAgIHZv
aWQgZW1pdFN0b3JlQmFycmllcihMVmFsdWUgYmFzZSkKQEAgLTg3MjIsNyArODcwOCw3IEBAIHBy
aXZhdGU6CiAgICAgICAgIExCYXNpY0Jsb2NrIGNvbnRpbnVhdGlvbiA9IEZUTF9ORVdfQkxPQ0so
bV9vdXQsICgiU3RvcmUgYmFycmllciBjb250aW51YXRpb24iKSk7CiAKICAgICAgICAgbV9vdXQu
YnJhbmNoKAotICAgICAgICAgICAgbV9vdXQubm90WmVybzgobG9hZENlbGxTdGF0ZShiYXNlKSks
IHVzdWFsbHkoY29udGludWF0aW9uKSwgcmFyZWx5KHNsb3dQYXRoKSk7CisgICAgICAgICAgICBt
X291dC5ub3RaZXJvMzIobG9hZENlbGxTdGF0ZShiYXNlKSksIHVzdWFsbHkoY29udGludWF0aW9u
KSwgcmFyZWx5KHNsb3dQYXRoKSk7CiAKICAgICAgICAgTEJhc2ljQmxvY2sgbGFzdE5leHQgPSBt
X291dC5hcHBlbmRUbyhzbG93UGF0aCwgY29udGludWF0aW9uKTsKIApkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExPdXRwdXQuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9mdGwvRlRMT3V0cHV0LmgKaW5kZXggM2MyM2Y0OWQwY2Q3OTM4MjE1NmU5ZGExY2Y3MzYzZmYw
N2UzMTE5Zi4uMDVjZjFkMjUyZGJhYWM4MjU1YjRkYWJmY2Y0MmQxNDIwMDBiNTZjOSAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExPdXRwdXQuaAorKysgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvZnRsL0ZUTE91dHB1dC5oCkBAIC04OSw3ICs4OSw2IEBAIHB1YmxpYzoK
ICAgICAKICAgICBMVmFsdWUgcGFyYW0odW5zaWduZWQgaW5kZXgpIHsgcmV0dXJuIGdldFBhcmFt
KG1fZnVuY3Rpb24sIGluZGV4KTsgfQogICAgIExWYWx1ZSBjb25zdEJvb2woYm9vbCB2YWx1ZSkg
eyByZXR1cm4gY29uc3RJbnQoYm9vbGVhbiwgdmFsdWUpOyB9Ci0gICAgTFZhbHVlIGNvbnN0SW50
OChpbnQ4X3QgdmFsdWUpIHsgcmV0dXJuIGNvbnN0SW50KGludDgsIHZhbHVlKTsgfQogICAgIExW
YWx1ZSBjb25zdEludDMyKGludDMyX3QgdmFsdWUpIHsgcmV0dXJuIGNvbnN0SW50KGludDMyLCB2
YWx1ZSk7IH0KICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBUPgogICAgIExWYWx1ZSBjb25zdEludFB0
cihUKiB2YWx1ZSkgeyByZXR1cm4gY29uc3RJbnQoaW50UHRyLCBiaXR3aXNlX2Nhc3Q8aW50cHRy
X3Q+KHZhbHVlKSk7IH0KQEAgLTI0MiwyMCArMjQxLDIwIEBAIHB1YmxpYzoKICAgICAKICAgICBM
VmFsdWUgbG9hZChUeXBlZFBvaW50ZXIsIExUeXBlIHJlZlR5cGUpOwogICAgIHZvaWQgc3RvcmUo
TFZhbHVlLCBUeXBlZFBvaW50ZXIsIExUeXBlIHJlZlR5cGUpOwotICAgIAotICAgIExWYWx1ZSBs
b2FkOChUeXBlZFBvaW50ZXIgcG9pbnRlcikgeyByZXR1cm4gbG9hZChwb2ludGVyLCByZWY4KTsg
fQotICAgIExWYWx1ZSBsb2FkMTYoVHlwZWRQb2ludGVyIHBvaW50ZXIpIHsgcmV0dXJuIGxvYWQo
cG9pbnRlciwgcmVmMTYpOyB9CisKKyAgICBMVmFsdWUgbG9hZDhTaWduRXh0MzIoVHlwZWRQb2lu
dGVyKTsKKyAgICBMVmFsdWUgbG9hZDhaZXJvRXh0MzIoVHlwZWRQb2ludGVyKTsKKyAgICBMVmFs
dWUgbG9hZDE2U2lnbkV4dDMyKFR5cGVkUG9pbnRlcik7CisgICAgTFZhbHVlIGxvYWQxNlplcm9F
eHQzMihUeXBlZFBvaW50ZXIpOwogICAgIExWYWx1ZSBsb2FkMzIoVHlwZWRQb2ludGVyIHBvaW50
ZXIpIHsgcmV0dXJuIGxvYWQocG9pbnRlciwgcmVmMzIpOyB9CiAgICAgTFZhbHVlIGxvYWQ2NChU
eXBlZFBvaW50ZXIgcG9pbnRlcikgeyByZXR1cm4gbG9hZChwb2ludGVyLCByZWY2NCk7IH0KICAg
ICBMVmFsdWUgbG9hZFB0cihUeXBlZFBvaW50ZXIgcG9pbnRlcikgeyByZXR1cm4gbG9hZChwb2lu
dGVyLCByZWZQdHIpOyB9CiAgICAgTFZhbHVlIGxvYWRGbG9hdChUeXBlZFBvaW50ZXIgcG9pbnRl
cikgeyByZXR1cm4gbG9hZChwb2ludGVyLCByZWZGbG9hdCk7IH0KICAgICBMVmFsdWUgbG9hZERv
dWJsZShUeXBlZFBvaW50ZXIgcG9pbnRlcikgeyByZXR1cm4gbG9hZChwb2ludGVyLCByZWZEb3Vi
bGUpOyB9Ci0gICAgdm9pZCBzdG9yZTgoTFZhbHVlIHZhbHVlLCBUeXBlZFBvaW50ZXIgcG9pbnRl
cikgeyBzdG9yZSh2YWx1ZSwgcG9pbnRlciwgcmVmOCk7IH0KICAgICB2b2lkIHN0b3JlMTYoTFZh
bHVlIHZhbHVlLCBUeXBlZFBvaW50ZXIgcG9pbnRlcikgeyBzdG9yZSh2YWx1ZSwgcG9pbnRlciwg
cmVmMTYpOyB9CiAgICAgdm9pZCBzdG9yZTMyKExWYWx1ZSB2YWx1ZSwgVHlwZWRQb2ludGVyIHBv
aW50ZXIpIHsgc3RvcmUodmFsdWUsIHBvaW50ZXIsIHJlZjMyKTsgfQogICAgIHZvaWQgc3RvcmU2
NChMVmFsdWUgdmFsdWUsIFR5cGVkUG9pbnRlciBwb2ludGVyKSB7IHN0b3JlKHZhbHVlLCBwb2lu
dGVyLCByZWY2NCk7IH0KICAgICB2b2lkIHN0b3JlUHRyKExWYWx1ZSB2YWx1ZSwgVHlwZWRQb2lu
dGVyIHBvaW50ZXIpIHsgc3RvcmUodmFsdWUsIHBvaW50ZXIsIHJlZlB0cik7IH0KLSAgICB2b2lk
IHN0b3JlRmxvYXQoTFZhbHVlIHZhbHVlLCBUeXBlZFBvaW50ZXIgcG9pbnRlcikgeyBzdG9yZSh2
YWx1ZSwgcG9pbnRlciwgcmVmRmxvYXQpOyB9CiAgICAgdm9pZCBzdG9yZURvdWJsZShMVmFsdWUg
dmFsdWUsIFR5cGVkUG9pbnRlciBwb2ludGVyKSB7IHN0b3JlKHZhbHVlLCBwb2ludGVyLCByZWZE
b3VibGUpOyB9CiAKICAgICBMVmFsdWUgYWRkUHRyKExWYWx1ZSB2YWx1ZSwgcHRyZGlmZl90IGlt
bWVkaWF0ZSA9IDApCkBAIC0yOTQsMTQgKzI5MywxNSBAQCBwdWJsaWM6CiAgICAgewogICAgICAg
ICByZXR1cm4gVHlwZWRQb2ludGVyKG1faGVhcHMtPmFic29sdXRlW2FkZHJlc3NdLCBjb25zdElu
dFB0cihhZGRyZXNzKSk7CiAgICAgfQotICAgIAotICAgIExWYWx1ZSBsb2FkOChMVmFsdWUgYmFz
ZSwgY29uc3QgQWJzdHJhY3RGaWVsZCYgZmllbGQpIHsgcmV0dXJuIGxvYWQ4KGFkZHJlc3MoYmFz
ZSwgZmllbGQpKTsgfQotICAgIExWYWx1ZSBsb2FkMTYoTFZhbHVlIGJhc2UsIGNvbnN0IEFic3Ry
YWN0RmllbGQmIGZpZWxkKSB7IHJldHVybiBsb2FkMTYoYWRkcmVzcyhiYXNlLCBmaWVsZCkpOyB9
CisKKyAgICBMVmFsdWUgbG9hZDhTaWduRXh0MzIoTFZhbHVlIGJhc2UsIGNvbnN0IEFic3RyYWN0
RmllbGQmIGZpZWxkKSB7IHJldHVybiBsb2FkOFNpZ25FeHQzMihhZGRyZXNzKGJhc2UsIGZpZWxk
KSk7IH0KKyAgICBMVmFsdWUgbG9hZDhaZXJvRXh0MzIoTFZhbHVlIGJhc2UsIGNvbnN0IEFic3Ry
YWN0RmllbGQmIGZpZWxkKSB7IHJldHVybiBsb2FkOFplcm9FeHQzMihhZGRyZXNzKGJhc2UsIGZp
ZWxkKSk7IH0KKyAgICBMVmFsdWUgbG9hZDE2U2lnbkV4dDMyKExWYWx1ZSBiYXNlLCBjb25zdCBB
YnN0cmFjdEZpZWxkJiBmaWVsZCkgeyByZXR1cm4gbG9hZDE2U2lnbkV4dDMyKGFkZHJlc3MoYmFz
ZSwgZmllbGQpKTsgfQorICAgIExWYWx1ZSBsb2FkMTZaZXJvRXh0MzIoTFZhbHVlIGJhc2UsIGNv
bnN0IEFic3RyYWN0RmllbGQmIGZpZWxkKSB7IHJldHVybiBsb2FkMTZaZXJvRXh0MzIoYWRkcmVz
cyhiYXNlLCBmaWVsZCkpOyB9CiAgICAgTFZhbHVlIGxvYWQzMihMVmFsdWUgYmFzZSwgY29uc3Qg
QWJzdHJhY3RGaWVsZCYgZmllbGQpIHsgcmV0dXJuIGxvYWQzMihhZGRyZXNzKGJhc2UsIGZpZWxk
KSk7IH0KICAgICBMVmFsdWUgbG9hZDY0KExWYWx1ZSBiYXNlLCBjb25zdCBBYnN0cmFjdEZpZWxk
JiBmaWVsZCkgeyByZXR1cm4gbG9hZDY0KGFkZHJlc3MoYmFzZSwgZmllbGQpKTsgfQogICAgIExW
YWx1ZSBsb2FkUHRyKExWYWx1ZSBiYXNlLCBjb25zdCBBYnN0cmFjdEZpZWxkJiBmaWVsZCkgeyBy
ZXR1cm4gbG9hZFB0cihhZGRyZXNzKGJhc2UsIGZpZWxkKSk7IH0KICAgICBMVmFsdWUgbG9hZERv
dWJsZShMVmFsdWUgYmFzZSwgY29uc3QgQWJzdHJhY3RGaWVsZCYgZmllbGQpIHsgcmV0dXJuIGxv
YWREb3VibGUoYWRkcmVzcyhiYXNlLCBmaWVsZCkpOyB9Ci0gICAgdm9pZCBzdG9yZTgoTFZhbHVl
IHZhbHVlLCBMVmFsdWUgYmFzZSwgY29uc3QgQWJzdHJhY3RGaWVsZCYgZmllbGQpIHsgc3RvcmU4
KHZhbHVlLCBhZGRyZXNzKGJhc2UsIGZpZWxkKSk7IH0KICAgICB2b2lkIHN0b3JlMzIoTFZhbHVl
IHZhbHVlLCBMVmFsdWUgYmFzZSwgY29uc3QgQWJzdHJhY3RGaWVsZCYgZmllbGQpIHsgc3RvcmUz
Mih2YWx1ZSwgYWRkcmVzcyhiYXNlLCBmaWVsZCkpOyB9CiAgICAgdm9pZCBzdG9yZTY0KExWYWx1
ZSB2YWx1ZSwgTFZhbHVlIGJhc2UsIGNvbnN0IEFic3RyYWN0RmllbGQmIGZpZWxkKSB7IHN0b3Jl
NjQodmFsdWUsIGFkZHJlc3MoYmFzZSwgZmllbGQpKTsgfQogICAgIHZvaWQgc3RvcmVQdHIoTFZh
bHVlIHZhbHVlLCBMVmFsdWUgYmFzZSwgY29uc3QgQWJzdHJhY3RGaWVsZCYgZmllbGQpIHsgc3Rv
cmVQdHIodmFsdWUsIGFkZHJlc3MoYmFzZSwgZmllbGQpKTsgfQpAQCAtMzQ3LDggKzM0Nyw2IEBA
IHB1YmxpYzoKICAgICBMVmFsdWUgZG91YmxlR3JlYXRlclRoYW5PclVub3JkZXJlZChMVmFsdWUg
bGVmdCwgTFZhbHVlIHJpZ2h0KSB7IHJldHVybiBmY21wKExMVk1SZWFsVUdULCBsZWZ0LCByaWdo
dCk7IH0KICAgICBMVmFsdWUgZG91YmxlR3JlYXRlclRoYW5PckVxdWFsT3JVbm9yZGVyZWQoTFZh
bHVlIGxlZnQsIExWYWx1ZSByaWdodCkgeyByZXR1cm4gZmNtcChMTFZNUmVhbFVHRSwgbGVmdCwg
cmlnaHQpOyB9CiAgICAgCi0gICAgTFZhbHVlIGlzWmVybzgoTFZhbHVlIHZhbHVlKSB7IHJldHVy
biBlcXVhbCh2YWx1ZSwgaW50OFplcm8pOyB9Ci0gICAgTFZhbHVlIG5vdFplcm84KExWYWx1ZSB2
YWx1ZSkgeyByZXR1cm4gbm90RXF1YWwodmFsdWUsIGludDhaZXJvKTsgfQogICAgIExWYWx1ZSBp
c1plcm8zMihMVmFsdWUgdmFsdWUpIHsgcmV0dXJuIGVxdWFsKHZhbHVlLCBpbnQzMlplcm8pOyB9
CiAgICAgTFZhbHVlIG5vdFplcm8zMihMVmFsdWUgdmFsdWUpIHsgcmV0dXJuIG5vdEVxdWFsKHZh
bHVlLCBpbnQzMlplcm8pOyB9CiAgICAgTFZhbHVlIGlzWmVybzY0KExWYWx1ZSB2YWx1ZSkgeyBy
ZXR1cm4gZXF1YWwodmFsdWUsIGludDY0WmVybyk7IH0KQEAgLTM1Niw4ICszNTQsNiBAQCBwdWJs
aWM6CiAgICAgTFZhbHVlIGlzTnVsbChMVmFsdWUgdmFsdWUpIHsgcmV0dXJuIGVxdWFsKHZhbHVl
LCBpbnRQdHJaZXJvKTsgfQogICAgIExWYWx1ZSBub3ROdWxsKExWYWx1ZSB2YWx1ZSkgeyByZXR1
cm4gbm90RXF1YWwodmFsdWUsIGludFB0clplcm8pOyB9CiAgICAgCi0gICAgTFZhbHVlIHRlc3RJ
c1plcm84KExWYWx1ZSB2YWx1ZSwgTFZhbHVlIG1hc2spIHsgcmV0dXJuIGlzWmVybzgoYml0QW5k
KHZhbHVlLCBtYXNrKSk7IH0KLSAgICBMVmFsdWUgdGVzdE5vblplcm84KExWYWx1ZSB2YWx1ZSwg
TFZhbHVlIG1hc2spIHsgcmV0dXJuIG5vdFplcm84KGJpdEFuZCh2YWx1ZSwgbWFzaykpOyB9CiAg
ICAgTFZhbHVlIHRlc3RJc1plcm8zMihMVmFsdWUgdmFsdWUsIExWYWx1ZSBtYXNrKSB7IHJldHVy
biBpc1plcm8zMihiaXRBbmQodmFsdWUsIG1hc2spKTsgfQogICAgIExWYWx1ZSB0ZXN0Tm9uWmVy
bzMyKExWYWx1ZSB2YWx1ZSwgTFZhbHVlIG1hc2spIHsgcmV0dXJuIG5vdFplcm8zMihiaXRBbmQo
dmFsdWUsIG1hc2spKTsgfQogICAgIExWYWx1ZSB0ZXN0SXNaZXJvNjQoTFZhbHVlIHZhbHVlLCBM
VmFsdWUgbWFzaykgeyByZXR1cm4gaXNaZXJvNjQoYml0QW5kKHZhbHVlLCBtYXNrKSk7IH0KQEAg
LTQ0Myw2ICs0MzksMzAgQEAgcHVibGljOgogICAgIExCYXNpY0Jsb2NrIG1fbmV4dEJsb2NrOwog
fTsKIAoraW5saW5lIExWYWx1ZSBPdXRwdXQ6OmxvYWQ4U2lnbkV4dDMyKFR5cGVkUG9pbnRlciBw
b2ludGVyKQoreworICAgIExWYWx1ZSB2YWx1ZTggPSBsb2FkKHBvaW50ZXIsIHJlZjgpOworICAg
IHJldHVybiBzaWduRXh0KHZhbHVlOCwgaW50MzIpOworfQorCitpbmxpbmUgTFZhbHVlIE91dHB1
dDo6bG9hZDhaZXJvRXh0MzIoVHlwZWRQb2ludGVyIHBvaW50ZXIpCit7CisgICAgTFZhbHVlIHZh
bHVlOCA9IGxvYWQocG9pbnRlciwgcmVmOCk7CisgICAgcmV0dXJuIHplcm9FeHQodmFsdWU4LCBp
bnQzMik7Cit9CisKK2lubGluZSBMVmFsdWUgT3V0cHV0Ojpsb2FkMTZTaWduRXh0MzIoVHlwZWRQ
b2ludGVyIHBvaW50ZXIpCit7CisgICAgTFZhbHVlIHZhbHVlMTYgPSBsb2FkKHBvaW50ZXIsIHJl
ZjE2KTsKKyAgICByZXR1cm4gc2lnbkV4dCh2YWx1ZTE2LCBpbnQzMik7Cit9CisKK2lubGluZSBM
VmFsdWUgT3V0cHV0Ojpsb2FkMTZaZXJvRXh0MzIoVHlwZWRQb2ludGVyIHBvaW50ZXIpCit7Cisg
ICAgTFZhbHVlIHZhbHVlMTYgPSBsb2FkKHBvaW50ZXIsIHJlZjE2KTsKKyAgICByZXR1cm4gemVy
b0V4dCh2YWx1ZTE2LCBpbnQzMik7Cit9CisKICNkZWZpbmUgRlRMX05FV19CTE9DSyhvdXRwdXQs
IG5hbWVBcmd1bWVudHMpIFwKICAgICAoTElLRUxZKCF2ZXJib3NlQ29tcGlsYXRpb25FbmFibGVk
KCkpIFwKICAgICA/IChvdXRwdXQpLm5ld0Jsb2NrKCkgXAo=
</data>

          </attachment>
      

    </bug>

</bugzilla>