<?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>118935</bug_id>
          
          <creation_ts>2013-07-19 20:52:35 -0700</creation_ts>
          <short_desc>fourthTier: String GetByVal out-of-bounds handling is so wrong</short_desc>
          <delta_ts>2013-07-20 10:57:56 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>JavaScriptCore</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>118910</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Filip Pizlo">fpizlo</reporter>
          <assigned_to name="Filip Pizlo">fpizlo</assigned_to>
          <cc>barraclough</cc>
    
    <cc>ggaren</cc>
    
    <cc>mark.lam</cc>
    
    <cc>mhahnenberg</cc>
    
    <cc>msaboff</cc>
    
    <cc>oliver</cc>
    
    <cc>sam</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>910416</commentid>
    <comment_count>0</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2013-07-19 20:52:35 -0700</bug_when>
    <thetext>Patch forthcoming.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>910417</commentid>
    <comment_count>1</comment_count>
      <attachid>207178</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2013-07-19 20:53:34 -0700</bug_when>
    <thetext>Created attachment 207178
work in progress

This adds test, and some test support that I needed, when building them.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>910420</commentid>
    <comment_count>2</comment_count>
      <attachid>207180</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2013-07-19 21:43:48 -0700</bug_when>
    <thetext>Created attachment 207180
the patch

I&apos;ll have -expected files shortly.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>910429</commentid>
    <comment_count>3</comment_count>
      <attachid>207185</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2013-07-19 22:21:45 -0700</bug_when>
    <thetext>Created attachment 207185
the patch

and now, with tests!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>910481</commentid>
    <comment_count>4</comment_count>
      <attachid>207185</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2013-07-20 09:29:49 -0700</bug_when>
    <thetext>Comment on attachment 207185
the patch

JavaScript is the best.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>910483</commentid>
    <comment_count>5</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2013-07-20 10:57:56 -0700</bug_when>
    <thetext>Landed in http://trac.webkit.org/changeset/152944</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>207178</attachid>
            <date>2013-07-19 20:53:34 -0700</date>
            <delta_ts>2013-07-19 21:43:48 -0700</delta_ts>
            <desc>work in progress</desc>
            <filename>blah.patch</filename>
            <type>text/plain</type>
            <size>9312</size>
            <attacher name="Filip Pizlo">fpizlo</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNDVGVzdFJ1bm5lclV0aWxzLmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTQ1Rlc3RSdW5uZXJVdGls
cy5jcHAJKHJldmlzaW9uIDE1MjkzNykKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlND
VGVzdFJ1bm5lclV0aWxzLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDgsMTcgKzQ4LDIzIEBAIHN0
YXRpYyBGdW5jdGlvbkV4ZWN1dGFibGUqIGdldEV4ZWN1dGFibGUKIAogSlNWYWx1ZVJlZiBudW1i
ZXJPZkRGR0NvbXBpbGVzKEpTQ29udGV4dFJlZiBjb250ZXh0LCBKU1ZhbHVlUmVmIHRoZUZ1bmN0
aW9uVmFsdWVSZWYpCiB7CisgICAgYm9vbCBwcmV0ZW5kVG9IYXZlTWFueUNvbXBpbGVzID0gZmFs
c2U7CisjaWYgRU5BQkxFKERGR19KSVQpCisgICAgaWYgKCFPcHRpb25zOjp1c2VKSVQoKSB8fCAh
T3B0aW9uczo6dXNlREZHSklUKCkpCisgICAgICAgIHByZXRlbmRUb0hhdmVNYW55Q29tcGlsZXMg
PSB0cnVlOworI2Vsc2UKKyAgICBwcmV0ZW5kVG9IYXZlTWFueUNvbXBpbGVzID0gdHJ1ZTsKKyNl
bmRpZgorICAgIAogICAgIGlmIChGdW5jdGlvbkV4ZWN1dGFibGUqIGV4ZWN1dGFibGUgPSBnZXRF
eGVjdXRhYmxlKGNvbnRleHQsIHRoZUZ1bmN0aW9uVmFsdWVSZWYpKSB7CiAgICAgICAgIENvZGVC
bG9jayogYmFzZWxpbmVDb2RlQmxvY2sgPSBleGVjdXRhYmxlLT5iYXNlbGluZUNvZGVCbG9ja0Zv
cihDb2RlRm9yQ2FsbCk7CiAgICAgICAgIAogICAgICAgICBpZiAoIWJhc2VsaW5lQ29kZUJsb2Nr
KQogICAgICAgICAgICAgcmV0dXJuIEpTVmFsdWVNYWtlTnVtYmVyKGNvbnRleHQsIDApOwogCi0j
aWYgRU5BQkxFKERGR19KSVQpICAgICAgICAKKyAgICAgICAgaWYgKHByZXRlbmRUb0hhdmVNYW55
Q29tcGlsZXMpCisgICAgICAgICAgICByZXR1cm4gSlNWYWx1ZU1ha2VOdW1iZXIoY29udGV4dCwg
MTAwMDAwMC4wKTsKICAgICAgICAgcmV0dXJuIEpTVmFsdWVNYWtlTnVtYmVyKGNvbnRleHQsIGJh
c2VsaW5lQ29kZUJsb2NrLT5udW1iZXJPZkRGR0NvbXBpbGVzKCkpOwotI2Vsc2UKLSAgICAgICAg
cmV0dXJuIEpTVmFsdWVNYWtlTnVtYmVyKGNvbnRleHQsIDEwMDAwMDAuMCk7Ci0jZW5kaWYKICAg
ICB9CiAgICAgCiAgICAgcmV0dXJuIEpTVmFsdWVNYWtlVW5kZWZpbmVkKGNvbnRleHQpOwpJbmRl
eDogU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdBYnN0cmFjdEludGVycHJldGVySW5saW5l
cy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQWJzdHJhY3RJ
bnRlcnByZXRlcklubGluZXMuaAkocmV2aXNpb24gMTUyOTM3KQorKysgU291cmNlL0phdmFTY3Jp
cHRDb3JlL2RmZy9ERkdBYnN0cmFjdEludGVycHJldGVySW5saW5lcy5oCSh3b3JraW5nIGNvcHkp
CkBAIC03NzYsNyArNzc2LDkgQEAgYm9vbCBBYnN0cmFjdEludGVycHJldGVyPEFic3RyYWN0U3Rh
dGVUeQogICAgICAgICAgICAgICAgIC8vIEdldEJ5VmFsIG9wZXJhdGlvbiB0aGUgZmFjdCB0aGF0
IHdlJ3JlIHVzaW5nIGEgd2F0Y2hwb2ludCwgdXNpbmcKICAgICAgICAgICAgICAgICAvLyBzb21l
dGhpbmcgbGlrZSBBcnJheTo6U2FuZUNoYWluIChleGNlcHQgbm90IHF1aXRlLCBiZWNhdXNlIHRo
YXQKICAgICAgICAgICAgICAgICAvLyBpbXBsaWVzIGFuIGluLWJvdW5kcyBhY2Nlc3MpLiBOb25l
IG9mIHRoaXMgZmVlbHMgbGlrZSBpdCdzIHdvcnRoIGl0LAotICAgICAgICAgICAgICAgIC8vIHNv
IHdlJ3JlIGdvaW5nIHdpdGggVE9QIGZvciBub3cuCisgICAgICAgICAgICAgICAgLy8gc28gd2Un
cmUgZ29pbmcgd2l0aCBUT1AgZm9yIG5vdy4gVGhlIHNhbWUgdGhpbmcgYXBwbGllcyB0bworICAg
ICAgICAgICAgICAgIC8vIGNsb2JiZXJpbmcgdGhlIHdvcmxkLgorICAgICAgICAgICAgICAgIC8v
Y2xvYmJlcldvcmxkKG5vZGUtPmNvZGVPcmlnaW4sIGluZGV4SW5CbG9jayk7CiAgICAgICAgICAg
ICAgICAgZm9yTm9kZShub2RlKS5tYWtlVG9wKCk7CiAgICAgICAgICAgICB9IGVsc2UKICAgICAg
ICAgICAgICAgICBmb3JOb2RlKG5vZGUpLnNldChtX2dyYXBoLCBtX2dyYXBoLm1fdm0uc3RyaW5n
U3RydWN0dXJlLmdldCgpKTsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHRGlz
YXNzZW1ibGVyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RG
R0Rpc2Fzc2VtYmxlci5jcHAJKHJldmlzaW9uIDE1MjkzNykKKysrIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9kZmcvREZHRGlzYXNzZW1ibGVyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNjksNyArNjks
OCBAQCB2b2lkIERpc2Fzc2VtYmxlcjo6ZHVtcEhlYWRlcihQcmludFN0cmVhCiB7CiAgICAgb3V0
LnByaW50KCJHZW5lcmF0ZWQgREZHIEpJVCBjb2RlIGZvciAiLCBDb2RlQmxvY2tXaXRoSklUVHlw
ZShtX2dyYXBoLm1fY29kZUJsb2NrLCBKSVRDb2RlOjpERkdKSVQpLCAiLCBpbnN0cnVjdGlvbiBj
b3VudCA9ICIsIG1fZ3JhcGgubV9jb2RlQmxvY2stPmluc3RydWN0aW9uQ291bnQoKSwgIjpcbiIp
OwogICAgIG91dC5wcmludCgiICAgIE9wdGltaXplZCB3aXRoIGV4ZWN1dGlvbiBjb3VudGVyID0g
IiwgbV9ncmFwaC5tX3Byb2ZpbGVkQmxvY2stPmppdEV4ZWN1dGVDb3VudGVyKCksICJcbiIpOwot
ICAgIG91dC5wcmludCgiICAgIFNvdXJjZTogIiwgbV9ncmFwaC5tX2NvZGVCbG9jay0+c291cmNl
Q29kZU9uT25lTGluZSgpLCAiXG4iKTsKKyAgICBpZiAoZW5hYmxlQ29uY3VycmVudEpJVCgpKQor
ICAgICAgICBvdXQucHJpbnQoIiAgICBTb3VyY2U6ICIsIG1fZ3JhcGgubV9jb2RlQmxvY2stPnNv
dXJjZUNvZGVPbk9uZUxpbmUoKSwgIlxuIik7CiAgICAgb3V0LnByaW50KCIgICAgQ29kZSBhdCBb
IiwgUmF3UG9pbnRlcihsaW5rQnVmZmVyLmRlYnVnQWRkcmVzcygpKSwgIiwgIiwgUmF3UG9pbnRl
cihzdGF0aWNfY2FzdDxjaGFyKj4obGlua0J1ZmZlci5kZWJ1Z0FkZHJlc3MoKSkgKyBsaW5rQnVm
ZmVyLmRlYnVnU2l6ZSgpKSwgIik6XG4iKTsKIH0KIApJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9q
cy9kZmctc3RyaW5nLW91dC1vZi1ib3VuZHMtY2hlY2stc3RydWN0dXJlLmh0bWwKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9qcy9kZmctc3RyaW5nLW91dC1vZi1ib3VuZHMtY2hlY2st
c3RydWN0dXJlLmh0bWwJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9mYXN0L2pzL2RmZy1z
dHJpbmctb3V0LW9mLWJvdW5kcy1jaGVjay1zdHJ1Y3R1cmUuaHRtbAkod29ya2luZyBjb3B5KQpA
QCAtMCwwICsxLDEwIEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL0lFVEYvL0RURCBIVE1M
Ly9FTiI+Cis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9qcy10ZXN0LXBy
ZS5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxzY3JpcHQgc3JjPSJzY3JpcHQtdGVz
dHMvZGZnLXN0cmluZy1vdXQtb2YtYm91bmRzLWNoZWNrLXN0cnVjdHVyZS5qcyI+PC9zY3JpcHQ+
Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2Jv
ZHk+Cis8L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2pzL2RmZy1zdHJpbmctb3V0LW9m
LWJvdW5kcy1jc2UuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2pzL2RmZy1z
dHJpbmctb3V0LW9mLWJvdW5kcy1jc2UuaHRtbAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3Rz
L2Zhc3QvanMvZGZnLXN0cmluZy1vdXQtb2YtYm91bmRzLWNzZS5odG1sCSh3b3JraW5nIGNvcHkp
CkBAIC0wLDAgKzEsMTAgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vSUVURi8vRFREIEhU
TUwvL0VOIj4KKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL2pzLXRlc3Qt
cHJlLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHNjcmlwdCBzcmM9InNjcmlwdC10
ZXN0cy9kZmctc3RyaW5nLW91dC1vZi1ib3VuZHMtY3NlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQg
c3JjPSJyZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRt
bD4KSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvanMvZGZnLXN0cmluZy1vdXQtb2YtYm91bmRzLW5l
Z2F0aXZlLWNoZWNrLXN0cnVjdHVyZS5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zh
c3QvanMvZGZnLXN0cmluZy1vdXQtb2YtYm91bmRzLW5lZ2F0aXZlLWNoZWNrLXN0cnVjdHVyZS5o
dG1sCShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvZmFzdC9qcy9kZmctc3RyaW5nLW91dC1v
Zi1ib3VuZHMtbmVnYXRpdmUtY2hlY2stc3RydWN0dXJlLmh0bWwJKHdvcmtpbmcgY29weSkKQEAg
LTAsMCArMSwxMCBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9JRVRGLy9EVEQgSFRNTC8v
RU4iPgorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvanMtdGVzdC1wcmUu
anMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8c2NyaXB0IHNyYz0ic2NyaXB0LXRlc3Rz
L2RmZy1zdHJpbmctb3V0LW9mLWJvdW5kcy1uZWdhdGl2ZS1jaGVjay1zdHJ1Y3R1cmUuanMiPjwv
c2NyaXB0PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0
PgorPC9ib2R5PgorPC9odG1sPgpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9qcy9kZmctc3RyaW5n
LW91dC1vZi1ib3VuZHMtbmVnYXRpdmUtcHJvdG8tdmFsdWUuaHRtbAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBM
YXlvdXRUZXN0cy9mYXN0L2pzL2RmZy1zdHJpbmctb3V0LW9mLWJvdW5kcy1uZWdhdGl2ZS1wcm90
by12YWx1ZS5odG1sCShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvZmFzdC9qcy9kZmctc3Ry
aW5nLW91dC1vZi1ib3VuZHMtbmVnYXRpdmUtcHJvdG8tdmFsdWUuaHRtbAkod29ya2luZyBjb3B5
KQpAQCAtMCwwICsxLDEwIEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL0lFVEYvL0RURCBI
VE1MLy9FTiI+Cis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9qcy10ZXN0
LXByZS5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxzY3JpcHQgc3JjPSJzY3JpcHQt
dGVzdHMvZGZnLXN0cmluZy1vdXQtb2YtYm91bmRzLW5lZ2F0aXZlLXByb3RvLXZhbHVlLmpzIj48
L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3Njcmlw
dD4KKzwvYm9keT4KKzwvaHRtbD4KSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvanMvc2NyaXB0LXRl
c3RzL2RmZy1zdHJpbmctb3V0LW9mLWJvdW5kcy1jaGVjay1zdHJ1Y3R1cmUuanMKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9qcy9zY3JpcHQtdGVzdHMvZGZnLXN0cmluZy1vdXQtb2Yt
Ym91bmRzLWNoZWNrLXN0cnVjdHVyZS5qcwkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2Zh
c3QvanMvc2NyaXB0LXRlc3RzL2RmZy1zdHJpbmctb3V0LW9mLWJvdW5kcy1jaGVjay1zdHJ1Y3R1
cmUuanMJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwyOSBAQAorZGVzY3JpcHRpb24oCisiVGVz
dHMgd2hhdCBoYXBwZW5zIHdoZW4geW91IGRvIGEgb3V0LW9mLWJvdW5kcyBhY2Nlc3Mgb24gYSBz
dHJpbmcgYW5kIHVzZSB0aGF0IHRvIGluc3RhbGwgYSBnZXR0ZXIgdGhhdCBjbG9iYmVycyBhIHN0
cnVjdHVyZS4iCispOworCitmdW5jdGlvbiBmb28ocywgbykgeworICAgIHZhciB4ID0gby5mOwor
ICAgIHNbNDJdOworICAgIHZhciB5ID0gby5nOworICAgIHJldHVybiB4ICsgeTsKK30KKworbm9J
bmxpbmUoZm9vKTsKK3NpbGVudFRlc3RQYXNzID0gdHJ1ZTsKKwordmFyIHRoZU9iamVjdCA9IHt9
OworCit2YXIgZGlkR2V0Q2FsbGVkID0gZmFsc2U7CitTdHJpbmcucHJvdG90eXBlLl9fZGVmaW5l
R2V0dGVyX18oIjQyIiwgZnVuY3Rpb24oKSB7IGRpZEdldENhbGxlZCA9IHRydWU7IGRlbGV0ZSB0
aGVPYmplY3QuZzsgdGhlT2JqZWN0LmggPSA0MiB9KTsKKword2hpbGUgKHRlc3RSdW5uZXIubnVt
YmVyT2ZERkdDb21waWxlcyhmb28pIDwgMSkgeworICAgIGRpZEdldENhbGxlZCA9IGZhbHNlOwor
ICAgIHNob3VsZEJlKCJmb28oXCJoZWxsb1wiLCB7ZjoxLCBnOjJ9KSIsICIzIik7CisgICAgc2hv
dWxkQmUoImRpZEdldENhbGxlZCIsICJ0cnVlIik7Cit9CisKK3RoZU9iamVjdCA9IHtmOjEsIGc6
Mn07CitkaWRHZXRDYWxsZWQgPSBmYWxzZTsKK3Nob3VsZEJlKCJmb28oXCJoZWxsb1wiLCB0aGVP
YmplY3QpIiwgIjAvMCIpOworc2hvdWxkQmUoImRpZEdldENhbGxlZCIsICJ0cnVlIik7CkluZGV4
OiBMYXlvdXRUZXN0cy9mYXN0L2pzL3NjcmlwdC10ZXN0cy9kZmctc3RyaW5nLW91dC1vZi1ib3Vu
ZHMtY3NlLmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvanMvc2NyaXB0LXRlc3Rz
L2RmZy1zdHJpbmctb3V0LW9mLWJvdW5kcy1jc2UuanMJKHJldmlzaW9uIDApCisrKyBMYXlvdXRU
ZXN0cy9mYXN0L2pzL3NjcmlwdC10ZXN0cy9kZmctc3RyaW5nLW91dC1vZi1ib3VuZHMtY3NlLmpz
CSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMjMgQEAKK2Rlc2NyaXB0aW9uKAorIlRlc3RzIHdo
YXQgaGFwcGVucyB3aGVuIHlvdSBwcmVzZW50IGEgQ1NFIG9wcG9ydHVuaXR5IGFjcm9zcyBhbiBv
dXQtb2YtYm91bmRzIHN0cmluZyBhY2Nlc3MuIgorKTsKKworZnVuY3Rpb24gZm9vKHMsIG8pIHsK
KyAgICB2YXIgeCA9IG8uZjsKKyAgICBzWzBdOworICAgIHZhciB5ID0gby5mOworICAgIHJldHVy
biB4ICsgeTsKK30KKworbm9JbmxpbmUoZm9vKTsKK3NpbGVudFRlc3RQYXNzID0gdHJ1ZTsKKwor
dmFyIHRoZU9iamVjdCA9IHt9OworCitTdHJpbmcucHJvdG90eXBlLl9fZGVmaW5lR2V0dGVyX18o
IjAiLCBmdW5jdGlvbigpIHsgdGhlT2JqZWN0LmYgPSA0MjsgfSk7CisKK3doaWxlICghZGZnQ29t
cGlsZWQoe2Y6Zm9vfSkpCisgICAgc2hvdWxkQmUoImZvbyhcIlwiLCB7ZjoxfSkiLCAiMiIpOwor
Cit0aGVPYmplY3QgPSB7ZjoxfTsKK3Nob3VsZEJlKCJmb28oXCJcIiwgdGhlT2JqZWN0KSIsICI0
MyIpOwpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9qcy9zY3JpcHQtdGVzdHMvZGZnLXN0cmluZy1v
dXQtb2YtYm91bmRzLW5lZ2F0aXZlLWNoZWNrLXN0cnVjdHVyZS5qcwo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBM
YXlvdXRUZXN0cy9mYXN0L2pzL3NjcmlwdC10ZXN0cy9kZmctc3RyaW5nLW91dC1vZi1ib3VuZHMt
bmVnYXRpdmUtY2hlY2stc3RydWN0dXJlLmpzCShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMv
ZmFzdC9qcy9zY3JpcHQtdGVzdHMvZGZnLXN0cmluZy1vdXQtb2YtYm91bmRzLW5lZ2F0aXZlLWNo
ZWNrLXN0cnVjdHVyZS5qcwkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDIzIEBACitkZXNjcmlw
dGlvbigKKyJUZXN0cyB3aGF0IGhhcHBlbnMgd2hlbiB5b3UgZG8gYSBuZWdhdGl2ZSBvdXQtb2Yt
Ym91bmRzIGFjY2VzcyBvbiBhIHN0cmluZyBhbmQgdXNlIHRoYXQgdG8gaW5zdGFsbCBhIGdldHRl
ciB0aGF0IGNsb2JiZXJzIGEgc3RydWN0dXJlLiIKKyk7CisKK2Z1bmN0aW9uIGZvbyhzLCBvKSB7
CisgICAgdmFyIHggPSBvLmY7CisgICAgc1stMV07CisgICAgdmFyIHkgPSBvLmc7CisgICAgcmV0
dXJuIHggKyB5OworfQorCitub0lubGluZShmb28pOworc2lsZW50VGVzdFBhc3MgPSB0cnVlOwor
Cit2YXIgdGhlT2JqZWN0ID0ge307CisKK1N0cmluZy5wcm90b3R5cGUuX19kZWZpbmVHZXR0ZXJf
XygiLTEiLCBmdW5jdGlvbigpIHsgZGVsZXRlIHRoZU9iamVjdC5nOyB9KTsKKword2hpbGUgKHRl
c3RSdW5uZXIubnVtYmVyT2ZERkdDb21waWxlcyhmb28pIDwgMSkKKyAgICBzaG91bGRCZSgiZm9v
KFwiaGVsbG9cIiwge2Y6MSwgZzoyfSkiLCAiMyIpOworCit0aGVPYmplY3QgPSB7ZjoxLCBnOjJ9
Oworc2hvdWxkQmUoImZvbyhcImhlbGxvXCIsIHRoZU9iamVjdCkiLCAiMC8wIik7CkluZGV4OiBM
YXlvdXRUZXN0cy9mYXN0L2pzL3NjcmlwdC10ZXN0cy9kZmctc3RyaW5nLW91dC1vZi1ib3VuZHMt
bmVnYXRpdmUtcHJvdG8tdmFsdWUuanMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9q
cy9zY3JpcHQtdGVzdHMvZGZnLXN0cmluZy1vdXQtb2YtYm91bmRzLW5lZ2F0aXZlLXByb3RvLXZh
bHVlLmpzCShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvZmFzdC9qcy9zY3JpcHQtdGVzdHMv
ZGZnLXN0cmluZy1vdXQtb2YtYm91bmRzLW5lZ2F0aXZlLXByb3RvLXZhbHVlLmpzCSh3b3JraW5n
IGNvcHkpCkBAIC0wLDAgKzEsMTYgQEAKK2Rlc2NyaXB0aW9uKAorIlRlc3RzIHdoYXQgaGFwcGVu
cyB3aGVuIHlvdSBkbyBhIG5lZ2F0aXZlIG91dC1vZi1ib3VuZHMgYWNjZXNzIG9uIGEgc3RyaW5n
IHdoaWxlIHRoZSBwcm90b3R5cGUgaGFzIGEgbmVnYXRpdmUgaW5kZXhlZCBwcm9wZXJ0eS4iCisp
OworCitmdW5jdGlvbiBmb28ocykgeworICAgIHJldHVybiBzWy0xXTsKK30KKworbm9JbmxpbmUo
Zm9vKTsKK3NpbGVudFRlc3RQYXNzID0gdHJ1ZTsKKworU3RyaW5nLnByb3RvdHlwZVstMV0gPSAi
aGVsbG8iOworCitmb3IgKHZhciBpID0gMDsgaSA8IDI7IGkgPSBkZmdJbmNyZW1lbnQoe2Y6Zm9v
LCBpOmkgKyAxLCBuOjEsIGNvbXBpbGVzOjJ9KSkKKyAgICBzaG91bGRCZSgiZm9vKFwiaGVsbG9c
IikiLCAiXCJoZWxsb1wiIik7CisK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>207180</attachid>
            <date>2013-07-19 21:43:48 -0700</date>
            <delta_ts>2013-07-19 22:21:45 -0700</delta_ts>
            <desc>the patch</desc>
            <filename>blah.patch</filename>
            <type>text/plain</type>
            <size>28984</size>
            <attacher name="Filip Pizlo">fpizlo</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTUyOTM5KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDQ5IEBA
CisyMDEzLTA3LTE5ICBGaWxpcCBQaXpsbyAgPGZwaXpsb0BhcHBsZS5jb20+CisKKyAgICAgICAg
Zm91cnRoVGllcjogU3RyaW5nIEdldEJ5VmFsIG91dC1vZi1ib3VuZHMgaGFuZGxpbmcgaXMgc28g
d3JvbmcKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEx
ODkzNQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorICAgICAgICAKKyAg
ICAgICAgQnVuY2ggb2YgU3RyaW5nIEdldEJ5VmFsIG91dC1vZi1ib3VuZHMgZml4ZXM6CisgICAg
ICAgIAorICAgICAgICAtIEV2ZW4gaWYgdGhlIHN0cmluZyBwcm90byBjaGFpbiBpcyBzYW5lLCB3
ZSBuZWVkIHRvIHdhdGNoIG91dCBmb3IgbmVnYXRpdmUKKyAgICAgICAgICBpbmRpY2VzLiBUaGV5
IG1heSBnZXQgdmFsdWVzIG9yIGNhbGwgZ2V0dGVycyBpbiB0aGUgcHJvdG90eXBlcywgc2luY2Ug
cHJvdG8KKyAgICAgICAgICBzYW5pdHkgZG9lc24ndCBjaGVjayBmb3IgbmVnYXRpdmUgaW5kZXhl
ZCBwcm9wZXJ0aWVzLCBhcyB0aGV5IGFyZSBub3QKKyAgICAgICAgICB0ZWNobmljYWxseSBpbmRl
eGVkIHByb3BlcnRpZXMuCisgICAgICAgIAorICAgICAgICAtIEdldEJ5VmFsIFN0cmluZyBvdXQt
b2YtYm91bmRzIGRvZXMgaW4gZmFjdCBjbG9iYmVyV29ybGQoKS4gQ1NFIHNob3VsZCBiZQorICAg
ICAgICAgIGdpdmVuIHRoaXMgaW5mb3JtYXRpb24uCisgICAgICAgIAorICAgICAgICAtIEdldEJ5
VmFsIFN0cmluZyBvdXQtb2YtYm91bmRzIGRvZXMgaW4gZmFjdCBjbG9iYmVyV29ybGQoKS4gQ0ZB
IHNob3VsZCBiZQorICAgICAgICAgIGdpdmVuIHRoaXMgaW5mb3JtYXRpb24uCisgICAgICAgIAor
ICAgICAgICBBbHNvIGZpeGVkIHNvbWUgb3RoZXIgdGhpbmdzOgorICAgICAgICAKKyAgICAgICAg
LSBJZiB0aGUgREZHIGlzIGRpc2FibGVkLCB0aGUgdGVzdFJ1bm5lciBzaG91bGQgcHJldGVuZCB0
aGF0IHdlJ3ZlIGRvbmUgYQorICAgICAgICAgIGJ1bmNoIG9mIERGRyBjb21waWxlcy4gVGhhdCdz
IG5lY2Vzc2FyeSB0byBwcmV2ZW50IHRoZSB0ZXN0cyBmcm9tIHRpbWluZworICAgICAgICAgIG91
dC4KKyAgICAgICAgCisgICAgICAgIC0gRGlzYXNzZW1ibGVyIHNob3VsZG4ndCB0cnkgdG8gZHVt
cCBzb3VyY2UgY29kZSBzaW5jZSBpdCdzIG5vdCBzYWZlIGluIHRoZQorICAgICAgICAgIGNvbmN1
cnJlbnQgSklULgorCisgICAgICAgICogQVBJL0pTQ1Rlc3RSdW5uZXJVdGlscy5jcHA6CisgICAg
ICAgIChKU0M6Om51bWJlck9mREZHQ29tcGlsZXMpOgorICAgICAgICAqIEphdmFTY3JpcHRDb3Jl
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogZGZnL0RGR0Fic3RyYWN0SW50
ZXJwcmV0ZXJJbmxpbmVzLmg6CisgICAgICAgIChKU0M6OkRGRzo6OjpleGVjdXRlRWZmZWN0cyk6
CisgICAgICAgICogZGZnL0RGR0Rpc2Fzc2VtYmxlci5jcHA6CisgICAgICAgIChKU0M6OkRGRzo6
RGlzYXNzZW1ibGVyOjpkdW1wSGVhZGVyKToKKyAgICAgICAgKiBkZmcvREZHR3JhcGguaDoKKyAg
ICAgICAgKEpTQzo6REZHOjpHcmFwaDo6YnlWYWxJc1B1cmUpOgorICAgICAgICAqIGRmZy9ERkdT
YW5lU3RyaW5nR2V0QnlWYWxTbG93UGF0aEdlbmVyYXRvci5oOiBBZGRlZC4KKyAgICAgICAgKERG
Ryk6CisgICAgICAgIChTYW5lU3RyaW5nR2V0QnlWYWxTbG93UGF0aEdlbmVyYXRvcik6CisgICAg
ICAgIChKU0M6OkRGRzo6U2FuZVN0cmluZ0dldEJ5VmFsU2xvd1BhdGhHZW5lcmF0b3I6OlNhbmVT
dHJpbmdHZXRCeVZhbFNsb3dQYXRoR2VuZXJhdG9yKToKKyAgICAgICAgKEpTQzo6REZHOjpTYW5l
U3RyaW5nR2V0QnlWYWxTbG93UGF0aEdlbmVyYXRvcjo6Z2VuZXJhdGVJbnRlcm5hbCk6CisgICAg
ICAgICogZGZnL0RGR1NwZWN1bGF0aXZlSklULmNwcDoKKyAgICAgICAgKEpTQzo6REZHOjpTcGVj
dWxhdGl2ZUpJVDo6Y29tcGlsZUdldEJ5VmFsT25TdHJpbmcpOgorCiAyMDEzLTA3LTE5ICBGaWxp
cCBQaXpsbyAgPGZwaXpsb0BhcHBsZS5jb20+CiAKICAgICAgICAgZm91cnRoVGllcjogU3RydWN0
dXJlOjppc1ZhbGlkT2Zmc2V0KCkgc2hvdWxkIGJlIGFibGUgdG8gdGVsbCB5b3UgaWYgeW91J3Jl
IGxvYWRpbmcgYSB2YWxpZCBKU1ZhbHVlLCBhbmQgbm90IGp1c3Qgbm90IGNyYXNoaW5nCkluZGV4
OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTQ1Rlc3RSdW5uZXJVdGlscy5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU0NUZXN0UnVubmVyVXRpbHMuY3Bw
CShyZXZpc2lvbiAxNTI5MzcpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTQ1Rlc3RS
dW5uZXJVdGlscy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQ4LDE3ICs0OCwyMyBAQCBzdGF0aWMg
RnVuY3Rpb25FeGVjdXRhYmxlKiBnZXRFeGVjdXRhYmxlCiAKIEpTVmFsdWVSZWYgbnVtYmVyT2ZE
RkdDb21waWxlcyhKU0NvbnRleHRSZWYgY29udGV4dCwgSlNWYWx1ZVJlZiB0aGVGdW5jdGlvblZh
bHVlUmVmKQogeworICAgIGJvb2wgcHJldGVuZFRvSGF2ZU1hbnlDb21waWxlcyA9IGZhbHNlOwor
I2lmIEVOQUJMRShERkdfSklUKQorICAgIGlmICghT3B0aW9uczo6dXNlSklUKCkgfHwgIU9wdGlv
bnM6OnVzZURGR0pJVCgpKQorICAgICAgICBwcmV0ZW5kVG9IYXZlTWFueUNvbXBpbGVzID0gdHJ1
ZTsKKyNlbHNlCisgICAgcHJldGVuZFRvSGF2ZU1hbnlDb21waWxlcyA9IHRydWU7CisjZW5kaWYK
KyAgICAKICAgICBpZiAoRnVuY3Rpb25FeGVjdXRhYmxlKiBleGVjdXRhYmxlID0gZ2V0RXhlY3V0
YWJsZShjb250ZXh0LCB0aGVGdW5jdGlvblZhbHVlUmVmKSkgewogICAgICAgICBDb2RlQmxvY2sq
IGJhc2VsaW5lQ29kZUJsb2NrID0gZXhlY3V0YWJsZS0+YmFzZWxpbmVDb2RlQmxvY2tGb3IoQ29k
ZUZvckNhbGwpOwogICAgICAgICAKICAgICAgICAgaWYgKCFiYXNlbGluZUNvZGVCbG9jaykKICAg
ICAgICAgICAgIHJldHVybiBKU1ZhbHVlTWFrZU51bWJlcihjb250ZXh0LCAwKTsKIAotI2lmIEVO
QUJMRShERkdfSklUKSAgICAgICAgCisgICAgICAgIGlmIChwcmV0ZW5kVG9IYXZlTWFueUNvbXBp
bGVzKQorICAgICAgICAgICAgcmV0dXJuIEpTVmFsdWVNYWtlTnVtYmVyKGNvbnRleHQsIDEwMDAw
MDAuMCk7CiAgICAgICAgIHJldHVybiBKU1ZhbHVlTWFrZU51bWJlcihjb250ZXh0LCBiYXNlbGlu
ZUNvZGVCbG9jay0+bnVtYmVyT2ZERkdDb21waWxlcygpKTsKLSNlbHNlCi0gICAgICAgIHJldHVy
biBKU1ZhbHVlTWFrZU51bWJlcihjb250ZXh0LCAxMDAwMDAwLjApOwotI2VuZGlmCiAgICAgfQog
ICAgIAogICAgIHJldHVybiBKU1ZhbHVlTWFrZVVuZGVmaW5lZChjb250ZXh0KTsKSW5kZXg6IFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS54
Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCShyZXZpc2lvbiAxNTI5MzcpCisrKyBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagkod29y
a2luZyBjb3B5KQpAQCAtMzY2LDEzICszNjYsMTQgQEAKIAkJMEZFNTA1N0IxNzhGNUI1MzAwQjM1
RjhDIC8qIERGR09TUkF2YWlsYWJpbGl0eUFuYWx5c2lzUGhhc2UuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGRTUwNTZFMTc4RjVCNTMwMEIzNUY4QyAv
KiBERkdPU1JBdmFpbGFiaWxpdHlBbmFseXNpc1BoYXNlLmggKi87IHNldHRpbmdzID0ge0FUVFJJ
QlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJMEZFNTA1N0MxNzhGNUI1MzAwQjM1RjhDIC8q
IERGR1NTQUNvbnZlcnNpb25QaGFzZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSAwRkU1MDU2RjE3OEY1QjUzMDBCMzVGOEMgLyogREZHU1NBQ29udmVy
c2lvblBoYXNlLmNwcCAqLzsgfTsKIAkJMEZFNTA1N0QxNzhGNUI1MzAwQjM1RjhDIC8qIERGR1NT
QUNvbnZlcnNpb25QaGFzZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gMEZFNTA1NzAxNzhGNUI1MzAwQjM1RjhDIC8qIERGR1NTQUNvbnZlcnNpb25QaGFz
ZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCTBG
RTUwNTgyMTc5NjVDM0QwMEIzNUY4QyAvKiBERkdMb29wUHJlSGVhZGVyQ3JlYXRpb25QaGFzZS5j
cHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRkU1MDU4
MDE3OTY1QzNEMDBCMzVGOEMgLyogREZHTG9vcFByZUhlYWRlckNyZWF0aW9uUGhhc2UuY3BwICov
OyB9OworCQkwRkU1MDU4MzE3OTY1QzNEMDBCMzVGOEMgLyogREZHTG9vcFByZUhlYWRlckNyZWF0
aW9uUGhhc2UuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDBGRTUwNTgxMTc5NjVDM0QwMEIzNUY4QyAvKiBERkdMb29wUHJlSGVhZGVyQ3JlYXRpb25QaGFz
ZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTBG
RTUwNThBMTc5OEFCRjUwMEIzNUY4QyAvKiBERkdBYnN0cmFjdEludGVycHJldGVyLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRkU1MDU4NjE3OThBQkY1
MDBCMzVGOEMgLyogREZHQWJzdHJhY3RJbnRlcnByZXRlci5oICovOyBzZXR0aW5ncyA9IHtBVFRS
SUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTBGRTUwNThCMTc5OEFCRjUwMEIzNUY4QyAv
KiBERkdBYnN0cmFjdEludGVycHJldGVySW5saW5lcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEZFNTA1ODcxNzk4QUJGNTAwQjM1RjhDIC8qIERGR0Fi
c3RyYWN0SW50ZXJwcmV0ZXJJbmxpbmVzLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAo
UHJpdmF0ZSwgKTsgfTsgfTsKIAkJMEZFNTA1OEMxNzk4QUJGNTAwQjM1RjhDIC8qIERGR0luUGxh
Y2VBYnN0cmFjdFN0YXRlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDBGRTUwNTg4MTc5OEFCRjUwMEIzNUY4QyAvKiBERkdJblBsYWNlQWJzdHJhY3RT
dGF0ZS5jcHAgKi87IH07CiAJCTBGRTUwNThEMTc5OEFCRjUwMEIzNUY4QyAvKiBERkdJblBsYWNl
QWJzdHJhY3RTdGF0ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gMEZFNTA1ODkxNzk4QUJGNTAwQjM1RjhDIC8qIERGR0luUGxhY2VBYnN0cmFjdFN0YXRl
LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJMEZF
NTA1OEYxNzk4QUU3MTAwQjM1RjhDIC8qIERGR01lcmdlTW9kZS5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEZFNTA1OEUxNzk4QUU2RjAwQjM1RjhDIC8q
IERGR01lcmdlTW9kZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7
IH07IH07Ci0JCTBGRTUwNTgyMTc5NjVDM0QwMEIzNUY4QyAvKiBERkdMb29wUHJlSGVhZGVyQ3Jl
YXRpb25QaGFzZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSAwRkU1MDU4MDE3OTY1QzNEMDBCMzVGOEMgLyogREZHTG9vcFByZUhlYWRlckNyZWF0aW9u
UGhhc2UuY3BwICovOyB9OwotCQkwRkU1MDU4MzE3OTY1QzNEMDBCMzVGOEMgLyogREZHTG9vcFBy
ZUhlYWRlckNyZWF0aW9uUGhhc2UuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDBGRTUwNTgxMTc5NjVDM0QwMEIzNUY4QyAvKiBERkdMb29wUHJlSGVhZGVy
Q3JlYXRpb25QaGFzZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7
IH07IH07CisJCTBGRTUwNTkxMTc5QTQ5MjQwMEIzNUY4QyAvKiBERkdTYW5lU3RyaW5nR2V0QnlW
YWxTbG93UGF0aEdlbmVyYXRvci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gMEZFNTA1OTAxNzlBNDkyNDAwQjM1RjhDIC8qIERGR1NhbmVTdHJpbmdHZXRC
eVZhbFNsb3dQYXRoR2VuZXJhdG9yLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJp
dmF0ZSwgKTsgfTsgfTsKIAkJMEZFODUzNEIxNzIzQ0RBNTAwQjYxOEY1IC8qIERGR0Rlc2lyZWRX
YXRjaHBvaW50cy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSAwRkU4NTM0OTE3MjNDREE1MDBCNjE4RjUgLyogREZHRGVzaXJlZFdhdGNocG9pbnRzLmNw
cCAqLzsgfTsKIAkJMEZFODUzNEMxNzIzQ0RBNTAwQjYxOEY1IC8qIERGR0Rlc2lyZWRXYXRjaHBv
aW50cy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEZF
ODUzNEExNzIzQ0RBNTAwQjYxOEY1IC8qIERGR0Rlc2lyZWRXYXRjaHBvaW50cy5oICovOyBzZXR0
aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTBGRUEwQTA4MTcwNTEz
REIwMEJCNzIyQyAvKiBGVExBYmJyZXZpYXRpb25zLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRkVBMDlGRDE3MDUxM0RCMDBCQjcyMkMgLyogRlRMQWJi
cmV2aWF0aW9ucy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07
IH07CkBAIC0xNDE3LDEzICsxNDE4LDE0IEBACiAJCTBGRTUwNTZFMTc4RjVCNTMwMEIzNUY4QyAv
KiBERkdPU1JBdmFpbGFiaWxpdHlBbmFseXNpc1BoYXNlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgbmFtZSA9IERGR09TUkF2YWlsYWJpbGl0eUFuYWx5c2lzUGhhc2UuaDsgcGF0aCA9IGRm
Zy9ERkdPU1JBdmFpbGFiaWxpdHlBbmFseXNpc1BoYXNlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTBGRTUwNTZGMTc4RjVCNTMwMEIzNUY4QyAvKiBERkdTU0FDb252ZXJzaW9uUGhh
c2UuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gREZHU1NBQ29udmVy
c2lvblBoYXNlLmNwcDsgcGF0aCA9IGRmZy9ERkdTU0FDb252ZXJzaW9uUGhhc2UuY3BwOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwRkU1MDU3MDE3OEY1QjUzMDBCMzVGOEMgLyogREZH
U1NBQ29udmVyc2lvblBoYXNlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IERG
R1NTQUNvbnZlcnNpb25QaGFzZS5oOyBwYXRoID0gZGZnL0RGR1NTQUNvbnZlcnNpb25QaGFzZS5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkwRkU1MDU4MDE3OTY1QzNEMDBCMzVGOEMg
LyogREZHTG9vcFByZUhlYWRlckNyZWF0aW9uUGhhc2UuY3BwICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAuY3BwOyBuYW1lID0gREZHTG9vcFByZUhlYWRlckNyZWF0aW9uUGhhc2UuY3BwOyBwYXRo
ID0gZGZnL0RGR0xvb3BQcmVIZWFkZXJDcmVhdGlvblBoYXNlLmNwcDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKKwkJMEZFNTA1ODExNzk2NUMzRDAwQjM1RjhDIC8qIERGR0xvb3BQcmVIZWFk
ZXJDcmVhdGlvblBoYXNlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IERGR0xv
b3BQcmVIZWFkZXJDcmVhdGlvblBoYXNlLmg7IHBhdGggPSBkZmcvREZHTG9vcFByZUhlYWRlckNy
ZWF0aW9uUGhhc2UuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMEZFNTA1ODYxNzk4
QUJGNTAwQjM1RjhDIC8qIERGR0Fic3RyYWN0SW50ZXJwcmV0ZXIuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBuYW1lID0gREZHQWJzdHJhY3RJbnRlcnByZXRlci5oOyBwYXRoID0gZGZnL0RG
R0Fic3RyYWN0SW50ZXJwcmV0ZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMEZF
NTA1ODcxNzk4QUJGNTAwQjM1RjhDIC8qIERGR0Fic3RyYWN0SW50ZXJwcmV0ZXJJbmxpbmVzLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IERGR0Fic3RyYWN0SW50ZXJwcmV0ZXJJ
bmxpbmVzLmg7IHBhdGggPSBkZmcvREZHQWJzdHJhY3RJbnRlcnByZXRlcklubGluZXMuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMEZFNTA1ODgxNzk4QUJGNTAwQjM1RjhDIC8qIERG
R0luUGxhY2VBYnN0cmFjdFN0YXRlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsg
bmFtZSA9IERGR0luUGxhY2VBYnN0cmFjdFN0YXRlLmNwcDsgcGF0aCA9IGRmZy9ERkdJblBsYWNl
QWJzdHJhY3RTdGF0ZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBGRTUwNTg5
MTc5OEFCRjUwMEIzNUY4QyAvKiBERkdJblBsYWNlQWJzdHJhY3RTdGF0ZS5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IG5hbWUgPSBERkdJblBsYWNlQWJzdHJhY3RTdGF0ZS5oOyBwYXRoID0g
ZGZnL0RGR0luUGxhY2VBYnN0cmFjdFN0YXRlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTBGRTUwNThFMTc5OEFFNkYwMEIzNUY4QyAvKiBERkdNZXJnZU1vZGUuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBu
YW1lID0gREZHTWVyZ2VNb2RlLmg7IHBhdGggPSBkZmcvREZHTWVyZ2VNb2RlLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTBGRTUwNTgwMTc5NjVDM0QwMEIzNUY4QyAvKiBERkdMb29w
UHJlSGVhZGVyQ3JlYXRpb25QaGFzZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7
IG5hbWUgPSBERkdMb29wUHJlSGVhZGVyQ3JlYXRpb25QaGFzZS5jcHA7IHBhdGggPSBkZmcvREZH
TG9vcFByZUhlYWRlckNyZWF0aW9uUGhhc2UuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwotCQkwRkU1MDU4MTE3OTY1QzNEMDBCMzVGOEMgLyogREZHTG9vcFByZUhlYWRlckNyZWF0aW9u
UGhhc2UuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gREZHTG9vcFByZUhlYWRl
ckNyZWF0aW9uUGhhc2UuaDsgcGF0aCA9IGRmZy9ERkdMb29wUHJlSGVhZGVyQ3JlYXRpb25QaGFz
ZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkwRkU1MDU5MDE3OUE0OTI0MDBCMzVG
OEMgLyogREZHU2FuZVN0cmluZ0dldEJ5VmFsU2xvd1BhdGhHZW5lcmF0b3IuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gREZHU2FuZVN0cmluZ0dldEJ5VmFsU2xvd1BhdGhHZW5l
cmF0b3IuaDsgcGF0aCA9IGRmZy9ERkdTYW5lU3RyaW5nR2V0QnlWYWxTbG93UGF0aEdlbmVyYXRv
ci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwRkU4NTM0OTE3MjNDREE1MDBCNjE4
RjUgLyogREZHRGVzaXJlZFdhdGNocG9pbnRzLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
LmNwcDsgbmFtZSA9IERGR0Rlc2lyZWRXYXRjaHBvaW50cy5jcHA7IHBhdGggPSBkZmcvREZHRGVz
aXJlZFdhdGNocG9pbnRzLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMEZFODUz
NEExNzIzQ0RBNTAwQjYxOEY1IC8qIERGR0Rlc2lyZWRXYXRjaHBvaW50cy5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IG5hbWUgPSBERkdEZXNpcmVkV2F0Y2hwb2ludHMuaDsgcGF0aCA9IGRm
Zy9ERkdEZXNpcmVkV2F0Y2hwb2ludHMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
MEZFQTA5RkQxNzA1MTNEQjAwQkI3MjJDIC8qIEZUTEFiYnJldmlhdGlvbnMuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gRlRMQWJicmV2aWF0aW9ucy5oOyBwYXRoID0gZnRsL0ZU
TEFiYnJldmlhdGlvbnMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTI5ODUsNyAr
Mjk4Nyw2IEBACiAJCTg2RUM5REIzMTMyOERGNDQwMDJCMkFENyAvKiBkZmcgKi8gPSB7CiAJCQlp
c2EgPSBQQlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKAotCQkJCTBGRTUwNThFMTc5OEFFNkYwMEIz
NUY4QyAvKiBERkdNZXJnZU1vZGUuaCAqLywKIAkJCQkwRkU1MDU4NjE3OThBQkY1MDBCMzVGOEMg
LyogREZHQWJzdHJhY3RJbnRlcnByZXRlci5oICovLAogCQkJCTBGRTUwNTg3MTc5OEFCRjUwMEIz
NUY4QyAvKiBERkdBYnN0cmFjdEludGVycHJldGVySW5saW5lcy5oICovLAogCQkJCTBGNTVDMTkz
MTcyNzZFNDYwMENFQUJGRCAvKiBERkdBYnN0cmFjdFZhbHVlLmNwcCAqLywKQEAgLTMwODMsNiAr
MzA4NCw3IEBACiAJCQkJMEZCNEI1MUQxNkI2Mjc3MjAwM0Y2OTZCIC8qIERGR0xvbmdMaXZlZFN0
YXRlLmggKi8sCiAJCQkJMEZFNTA1ODAxNzk2NUMzRDAwQjM1RjhDIC8qIERGR0xvb3BQcmVIZWFk
ZXJDcmVhdGlvblBoYXNlLmNwcCAqLywKIAkJCQkwRkU1MDU4MTE3OTY1QzNEMDBCMzVGOEMgLyog
REZHTG9vcFByZUhlYWRlckNyZWF0aW9uUGhhc2UuaCAqLywKKwkJCQkwRkU1MDU4RTE3OThBRTZG
MDBCMzVGOEMgLyogREZHTWVyZ2VNb2RlLmggKi8sCiAJCQkJMEYyQkRDM0QxNTIyODAxNzAwQ0Q4
OTEwIC8qIERGR01pbmlmaWVkR3JhcGguaCAqLywKIAkJCQkwRkI0QjUxMDE2QjNBOTY0MDAzRjY5
NkIgLyogREZHTWluaWZpZWRJRC5oICovLAogCQkJCTBGMkJEQzRDMTUyMjgxODMwMENEODkxMCAv
KiBERkdNaW5pZmllZE5vZGUuY3BwICovLApAQCAtMzEyOCw2ICszMTMwLDcgQEAKIAkJCQkwRjc2
NkQ0MjE1QjJBM0JEMDA4RjM2M0UgLyogREZHUmVnaXN0ZXJTZXQuaCAqLywKIAkJCQk4NkJCMDlC
RTEzOEUzODFCMDA1NjcwMkYgLyogREZHUmVwYXRjaC5jcHAgKi8sCiAJCQkJODZCQjA5QkYxMzhF
MzgxQjAwNTY3MDJGIC8qIERGR1JlcGF0Y2guaCAqLywKKwkJCQkwRkU1MDU5MDE3OUE0OTI0MDBC
MzVGOEMgLyogREZHU2FuZVN0cmluZ0dldEJ5VmFsU2xvd1BhdGhHZW5lcmF0b3IuaCAqLywKIAkJ
CQk4NkVDQTNGOTEzMkRGMjVBMDAyQjJBRDcgLyogREZHU2NvcmVCb2FyZC5oICovLAogCQkJCTBG
NzY2RDQ1MTVCMzcwMUQwMDhGMzYzRSAvKiBERkdTY3JhdGNoUmVnaXN0ZXJBbGxvY2F0b3IuaCAq
LywKIAkJCQkwRjFFM0E2NTE1M0EyMURGMDAwRjk0NTYgLyogREZHU2lsZW50UmVnaXN0ZXJTYXZl
UGxhbi5oICovLApAQCAtMzUwNyw2ICszNTEwLDcgQEAKIAkJCQkwRkMwOTdBMjE0NkIyOENDMDBD
RjI0NDIgLyogREZHVGh1bmtzLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRjNCM0EyQzE1NDc1MDAy
MDAzRUQwRkYgLyogREZHVmFsaWRhdGUuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGMkJEQzQ3MTUy
MjgwMjUwMENEODkxMCAvKiBERkdWYWx1ZVJlY292ZXJ5T3ZlcnJpZGUuaCBpbiBIZWFkZXJzICov
LAorCQkJCTBGRTUwNTkxMTc5QTQ5MjQwMEIzNUY4QyAvKiBERkdTYW5lU3RyaW5nR2V0QnlWYWxT
bG93UGF0aEdlbmVyYXRvci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRkVEOTRGMkYxNzFFM0UyMzAw
QkU3N0E0IC8qIFdhdGNoZG9nLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRkU1MDU1RDE3ODdCMENG
MDBCMzVGOEMgLyogREZHQ3JpdGljYWxFZGdlQnJlYWtpbmdQaGFzZS5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJMEYyQkRDNDgxNTIyODAyOTAwQ0Q4OTEwIC8qIERGR1ZhbHVlU291cmNlLmggaW4gSGVh
ZGVycyAqLywKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQWJzdHJhY3RJbnRl
cnByZXRlcklubGluZXMuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZn
L0RGR0Fic3RyYWN0SW50ZXJwcmV0ZXJJbmxpbmVzLmgJKHJldmlzaW9uIDE1MjkzNykKKysrIFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQWJzdHJhY3RJbnRlcnByZXRlcklubGluZXMuaAko
d29ya2luZyBjb3B5KQpAQCAtNzc2LDcgKzc3Niw5IEBAIGJvb2wgQWJzdHJhY3RJbnRlcnByZXRl
cjxBYnN0cmFjdFN0YXRlVHkKICAgICAgICAgICAgICAgICAvLyBHZXRCeVZhbCBvcGVyYXRpb24g
dGhlIGZhY3QgdGhhdCB3ZSdyZSB1c2luZyBhIHdhdGNocG9pbnQsIHVzaW5nCiAgICAgICAgICAg
ICAgICAgLy8gc29tZXRoaW5nIGxpa2UgQXJyYXk6OlNhbmVDaGFpbiAoZXhjZXB0IG5vdCBxdWl0
ZSwgYmVjYXVzZSB0aGF0CiAgICAgICAgICAgICAgICAgLy8gaW1wbGllcyBhbiBpbi1ib3VuZHMg
YWNjZXNzKS4gTm9uZSBvZiB0aGlzIGZlZWxzIGxpa2UgaXQncyB3b3J0aCBpdCwKLSAgICAgICAg
ICAgICAgICAvLyBzbyB3ZSdyZSBnb2luZyB3aXRoIFRPUCBmb3Igbm93LgorICAgICAgICAgICAg
ICAgIC8vIHNvIHdlJ3JlIGdvaW5nIHdpdGggVE9QIGZvciBub3cuIFRoZSBzYW1lIHRoaW5nIGFw
cGxpZXMgdG8KKyAgICAgICAgICAgICAgICAvLyBjbG9iYmVyaW5nIHRoZSB3b3JsZC4KKyAgICAg
ICAgICAgICAgICBjbG9iYmVyV29ybGQobm9kZS0+Y29kZU9yaWdpbiwgaW5kZXhJbkJsb2NrKTsK
ICAgICAgICAgICAgICAgICBmb3JOb2RlKG5vZGUpLm1ha2VUb3AoKTsKICAgICAgICAgICAgIH0g
ZWxzZQogICAgICAgICAgICAgICAgIGZvck5vZGUobm9kZSkuc2V0KG1fZ3JhcGgsIG1fZ3JhcGgu
bV92bS5zdHJpbmdTdHJ1Y3R1cmUuZ2V0KCkpOwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3Jl
L2RmZy9ERkdEaXNhc3NlbWJsZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9kZmcvREZHRGlzYXNzZW1ibGVyLmNwcAkocmV2aXNpb24gMTUyOTM3KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL2RmZy9ERkdEaXNhc3NlbWJsZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBA
IC02OSw3ICs2OSw2IEBAIHZvaWQgRGlzYXNzZW1ibGVyOjpkdW1wSGVhZGVyKFByaW50U3RyZWEK
IHsKICAgICBvdXQucHJpbnQoIkdlbmVyYXRlZCBERkcgSklUIGNvZGUgZm9yICIsIENvZGVCbG9j
a1dpdGhKSVRUeXBlKG1fZ3JhcGgubV9jb2RlQmxvY2ssIEpJVENvZGU6OkRGR0pJVCksICIsIGlu
c3RydWN0aW9uIGNvdW50ID0gIiwgbV9ncmFwaC5tX2NvZGVCbG9jay0+aW5zdHJ1Y3Rpb25Db3Vu
dCgpLCAiOlxuIik7CiAgICAgb3V0LnByaW50KCIgICAgT3B0aW1pemVkIHdpdGggZXhlY3V0aW9u
IGNvdW50ZXIgPSAiLCBtX2dyYXBoLm1fcHJvZmlsZWRCbG9jay0+aml0RXhlY3V0ZUNvdW50ZXIo
KSwgIlxuIik7Ci0gICAgb3V0LnByaW50KCIgICAgU291cmNlOiAiLCBtX2dyYXBoLm1fY29kZUJs
b2NrLT5zb3VyY2VDb2RlT25PbmVMaW5lKCksICJcbiIpOwogICAgIG91dC5wcmludCgiICAgIENv
ZGUgYXQgWyIsIFJhd1BvaW50ZXIobGlua0J1ZmZlci5kZWJ1Z0FkZHJlc3MoKSksICIsICIsIFJh
d1BvaW50ZXIoc3RhdGljX2Nhc3Q8Y2hhcio+KGxpbmtCdWZmZXIuZGVidWdBZGRyZXNzKCkpICsg
bGlua0J1ZmZlci5kZWJ1Z1NpemUoKSksICIpOlxuIik7CiB9CiAKSW5kZXg6IFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9kZmcvREZHR3JhcGguaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvZGZnL0RGR0dyYXBoLmgJKHJldmlzaW9uIDE1MjkzNykKKysrIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9kZmcvREZHR3JhcGguaAkod29ya2luZyBjb3B5KQpAQCAtNDkyLDcgKzQ5Miw3IEBA
IHB1YmxpYzoKICAgICAgICAgY2FzZSBBcnJheTo6U2xvd1B1dEFycmF5U3RvcmFnZToKICAgICAg
ICAgICAgIHJldHVybiAhbm9kZS0+YXJyYXlNb2RlKCkubWF5U3RvcmVUb0hvbGUoKTsKICAgICAg
ICAgY2FzZSBBcnJheTo6U3RyaW5nOgotICAgICAgICAgICAgcmV0dXJuIG5vZGUtPm9wKCkgPT0g
R2V0QnlWYWw7CisgICAgICAgICAgICByZXR1cm4gbm9kZS0+b3AoKSA9PSBHZXRCeVZhbCAmJiBu
b2RlLT5hcnJheU1vZGUoKS5pc0luQm91bmRzKCk7CiAjaWYgVVNFKEpTVkFMVUUzMl82NCkKICAg
ICAgICAgY2FzZSBBcnJheTo6QXJndW1lbnRzOgogICAgICAgICAgICAgaWYgKG5vZGUtPm9wKCkg
PT0gR2V0QnlWYWwpCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NhbmVTdHJp
bmdHZXRCeVZhbFNsb3dQYXRoR2VuZXJhdG9yLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFT
Y3JpcHRDb3JlL2RmZy9ERkdTYW5lU3RyaW5nR2V0QnlWYWxTbG93UGF0aEdlbmVyYXRvci5oCShy
ZXZpc2lvbiAwKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTYW5lU3RyaW5nR2V0
QnlWYWxTbG93UGF0aEdlbmVyYXRvci5oCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsOTcgQEAK
Ky8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlz
dHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5D
LiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9T
RSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENP
TlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBC
VVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisg
KiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKworI2lmbmRlZiBE
RkdTYW5lU3RyaW5nR2V0QnlWYWxTbG93UGF0aEdlbmVyYXRvcl9oCisjZGVmaW5lIERGR1NhbmVT
dHJpbmdHZXRCeVZhbFNsb3dQYXRoR2VuZXJhdG9yX2gKKworI2luY2x1ZGUgPHd0Zi9QbGF0Zm9y
bS5oPgorCisjaWYgRU5BQkxFKERGR19KSVQpCisKKyNpbmNsdWRlICJERkdDb21tb24uaCIKKyNp
bmNsdWRlICJERkdPcGVyYXRpb25zLmgiCisjaW5jbHVkZSAiREZHU2xvd1BhdGhHZW5lcmF0b3Iu
aCIKKyNpbmNsdWRlICJERkdTcGVjdWxhdGl2ZUpJVC5oIgorI2luY2x1ZGUgPHd0Zi9WZWN0b3Iu
aD4KKworbmFtZXNwYWNlIEpTQyB7IG5hbWVzcGFjZSBERkcgeworCitjbGFzcyBTYW5lU3RyaW5n
R2V0QnlWYWxTbG93UGF0aEdlbmVyYXRvciA6IHB1YmxpYyBKdW1waW5nU2xvd1BhdGhHZW5lcmF0
b3I8TWFjcm9Bc3NlbWJsZXI6Okp1bXA+IHsKK3B1YmxpYzoKKyAgICBTYW5lU3RyaW5nR2V0QnlW
YWxTbG93UGF0aEdlbmVyYXRvcigKKyAgICAgICAgY29uc3QgTWFjcm9Bc3NlbWJsZXI6Okp1bXAm
IGZyb20sIFNwZWN1bGF0aXZlSklUKiBqaXQsIEpTVmFsdWVSZWdzIHJlc3VsdFJlZ3MsCisgICAg
ICAgIEdQUlJlZyBiYXNlUmVnLCBHUFJSZWcgcHJvcGVydHlSZWcpCisgICAgICAgIDogSnVtcGlu
Z1Nsb3dQYXRoR2VuZXJhdG9yPE1hY3JvQXNzZW1ibGVyOjpKdW1wPihmcm9tLCBqaXQpCisgICAg
ICAgICwgbV9yZXN1bHRSZWdzKHJlc3VsdFJlZ3MpCisgICAgICAgICwgbV9iYXNlUmVnKGJhc2VS
ZWcpCisgICAgICAgICwgbV9wcm9wZXJ0eVJlZyhwcm9wZXJ0eVJlZykKKyAgICB7CisgICAgICAg
IGppdC0+c2lsZW50U3BpbGxBbGxSZWdpc3RlcnNJbXBsKGZhbHNlLCBtX3BsYW5zLCBleHRyYWN0
UmVzdWx0KHJlc3VsdFJlZ3MpKTsKKyAgICB9CisgICAgCitwcm90ZWN0ZWQ6CisgICAgdm9pZCBn
ZW5lcmF0ZUludGVybmFsKFNwZWN1bGF0aXZlSklUKiBqaXQpCisgICAgeworICAgICAgICBsaW5r
RnJvbShqaXQpOworICAgICAgICAKKyAgICAgICAgTWFjcm9Bc3NlbWJsZXI6Okp1bXAgaXNOZWcg
PSBqaXQtPm1faml0LmJyYW5jaDMyKAorICAgICAgICAgICAgTWFjcm9Bc3NlbWJsZXI6Okxlc3NU
aGFuLCBtX3Byb3BlcnR5UmVnLCBNYWNyb0Fzc2VtYmxlcjo6VHJ1c3RlZEltbTMyKDApKTsKKyAg
ICAgICAgCisjaWYgVVNFKEpTVkFMVUU2NCkKKyAgICAgICAgaml0LT5tX2ppdC5tb3ZlKAorICAg
ICAgICAgICAgTWFjcm9Bc3NlbWJsZXI6OlRydXN0ZWRJbW02NChKU1ZhbHVlOjplbmNvZGUoanNV
bmRlZmluZWQoKSkpLCBtX3Jlc3VsdFJlZ3MuZ3ByKCkpOworI2Vsc2UKKyAgICAgICAgaml0LT5t
X2ppdC5tb3ZlKAorICAgICAgICAgICAgTWFjcm9Bc3NlbWJsZXI6OlRydXN0ZWRJbW0zMihKU1Zh
bHVlOjpVbmRlZmluZWRUYWcpLCBtX3Jlc3VsdFJlZ3MudGFnR1BSKCkpOworICAgICAgICBqaXQt
Pm1faml0Lm1vdmUoCisgICAgICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6VHJ1c3RlZEltbTMyKDAp
LCBtX3Jlc3VsdFJlZ3MucGF5bG9hZEdQUigpKTsKKyNlbmRpZgorICAgICAgICBqdW1wVG8oaml0
KTsKKyAgICAgICAgCisgICAgICAgIGlzTmVnLmxpbmsoJmppdC0+bV9qaXQpOworCisgICAgICAg
IGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBtX3BsYW5zLnNpemUoKTsgKytpKQorICAgICAgICAg
ICAgaml0LT5zaWxlbnRTcGlsbChtX3BsYW5zW2ldKTsKKyAgICAgICAgaml0LT5jYWxsT3BlcmF0
aW9uKG9wZXJhdGlvbkdldEJ5VmFsU3RyaW5nSW50LCBleHRyYWN0UmVzdWx0KG1fcmVzdWx0UmVn
cyksIG1fYmFzZVJlZywgbV9wcm9wZXJ0eVJlZyk7CisgICAgICAgIEdQUlJlZyBjYW5UcmFtcGxl
ID0gU3BlY3VsYXRpdmVKSVQ6OnBpY2tDYW5UcmFtcGxlKGV4dHJhY3RSZXN1bHQobV9yZXN1bHRS
ZWdzKSk7CisgICAgICAgIGZvciAodW5zaWduZWQgaSA9IG1fcGxhbnMuc2l6ZSgpOyBpLS07KQor
ICAgICAgICAgICAgaml0LT5zaWxlbnRGaWxsKG1fcGxhbnNbaV0sIGNhblRyYW1wbGUpOworICAg
ICAgICAKKyAgICAgICAganVtcFRvKGppdCk7CisgICAgfQorICAgIAorcHJpdmF0ZToKKyAgICBK
U1ZhbHVlUmVncyBtX3Jlc3VsdFJlZ3M7CisgICAgR1BSUmVnIG1fYmFzZVJlZzsKKyAgICBHUFJS
ZWcgbV9wcm9wZXJ0eVJlZzsKKyAgICBWZWN0b3I8U2lsZW50UmVnaXN0ZXJTYXZlUGxhbiwgMj4g
bV9wbGFuczsKK307CisKK30gfSAvLyBuYW1lc3BhY2UgSlNDOjpERkcKKworI2VuZGlmIC8vIEVO
QUJMRShERkdfSklUKQorCisjZW5kaWYgLy8gREZHU2FuZVN0cmluZ0dldEJ5VmFsU2xvd1BhdGhH
ZW5lcmF0b3JfaAorCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0
aXZlSklULmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1Nw
ZWN1bGF0aXZlSklULmNwcAkocmV2aXNpb24gMTUyOTM3KQorKysgU291cmNlL0phdmFTY3JpcHRD
b3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTMzLDYgKzMz
LDcgQEAKICNpbmNsdWRlICJERkdBcnJheWlmeVNsb3dQYXRoR2VuZXJhdG9yLmgiCiAjaW5jbHVk
ZSAiREZHQmluYXJ5U3dpdGNoLmgiCiAjaW5jbHVkZSAiREZHQ2FsbEFycmF5QWxsb2NhdG9yU2xv
d1BhdGhHZW5lcmF0b3IuaCIKKyNpbmNsdWRlICJERkdTYW5lU3RyaW5nR2V0QnlWYWxTbG93UGF0
aEdlbmVyYXRvci5oIgogI2luY2x1ZGUgIkRGR1Nsb3dQYXRoR2VuZXJhdG9yLmgiCiAjaW5jbHVk
ZSAiSlNDSlNWYWx1ZUlubGluZXMuaCIKICNpbmNsdWRlICJMaW5rQnVmZmVyLmgiCkBAIC0yMTE0
LDE2ICsyMTE1LDEyIEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVHZXRCeVZhbE9uU3QK
ICAgICAgICAgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCA9IG1faml0Lmdsb2JhbE9iamVj
dEZvcihub2RlLT5jb2RlT3JpZ2luKTsKICAgICAgICAgaWYgKGdsb2JhbE9iamVjdC0+c3RyaW5n
UHJvdG90eXBlQ2hhaW5Jc1NhbmUoKSkgewogI2lmIFVTRShKU1ZBTFVFNjQpCi0gICAgICAgICAg
ICBhZGRTbG93UGF0aEdlbmVyYXRvcigKLSAgICAgICAgICAgICAgICBzbG93UGF0aE1vdmUoCi0g
ICAgICAgICAgICAgICAgICAgIG91dE9mQm91bmRzLCB0aGlzLCBUcnVzdGVkSW1tNjQoSlNWYWx1
ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpKSwKLSAgICAgICAgICAgICAgICAgICAgc2NyYXRjaFJl
ZykpOworICAgICAgICAgICAgYWRkU2xvd1BhdGhHZW5lcmF0b3IoYWRvcHRQdHIobmV3IFNhbmVT
dHJpbmdHZXRCeVZhbFNsb3dQYXRoR2VuZXJhdG9yKAorICAgICAgICAgICAgICAgIG91dE9mQm91
bmRzLCB0aGlzLCBKU1ZhbHVlUmVncyhzY3JhdGNoUmVnKSwgYmFzZVJlZywgcHJvcGVydHlSZWcp
KSk7CiAjZWxzZQotICAgICAgICAgICAgYWRkU2xvd1BhdGhHZW5lcmF0b3IoCi0gICAgICAgICAg
ICAgICAgc2xvd1BhdGhNb3ZlKAotICAgICAgICAgICAgICAgICAgICBvdXRPZkJvdW5kcywgdGhp
cywKLSAgICAgICAgICAgICAgICAgICAgVHJ1c3RlZEltbTMyKEpTVmFsdWU6OlVuZGVmaW5lZFRh
ZyksIHJlc3VsdFRhZ1JlZywKLSAgICAgICAgICAgICAgICAgICAgVHJ1c3RlZEltbTMyKDApLCBz
Y3JhdGNoUmVnKSk7CisgICAgICAgICAgICBhZGRTbG93UGF0aEdlbmVyYXRvcihhZG9wdFB0cihu
ZXcgU2FuZVN0cmluZ0dldEJ5VmFsU2xvd1BhdGhHZW5lcmF0b3IoCisgICAgICAgICAgICAgICAg
b3V0T2ZCb3VuZHMsIHRoaXMsIEpTVmFsdWVSZWdzKHJlc3VsdFRhZ1JlZywgc2NyYXRjaFJlZyks
CisgICAgICAgICAgICAgICAgYmFzZVJlZywgcHJvcGVydHlSZWcpKSk7CiAjZW5kaWYKICAgICAg
ICAgfSBlbHNlIHsKICNpZiBVU0UoSlNWQUxVRTY0KQpJbmRleDogTGF5b3V0VGVzdHMvQ2hhbmdl
TG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL0NoYW5nZUxvZwkocmV2aXNpb24gMTUyOTM5
KQorKysgTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMjUg
QEAKKzIwMTMtMDctMTkgIEZpbGlwIFBpemxvICA8ZnBpemxvQGFwcGxlLmNvbT4KKworICAgICAg
ICBmb3VydGhUaWVyOiBTdHJpbmcgR2V0QnlWYWwgb3V0LW9mLWJvdW5kcyBoYW5kbGluZyBpcyBz
byB3cm9uZworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MTE4OTM1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
KiBmYXN0L2pzL2RmZy1zdHJpbmctb3V0LW9mLWJvdW5kcy1jaGVjay1zdHJ1Y3R1cmUuaHRtbDog
QWRkZWQuCisgICAgICAgICogZmFzdC9qcy9kZmctc3RyaW5nLW91dC1vZi1ib3VuZHMtY3NlLmh0
bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvanMvZGZnLXN0cmluZy1vdXQtb2YtYm91bmRzLW5l
Z2F0aXZlLWNoZWNrLXN0cnVjdHVyZS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2pzL2Rm
Zy1zdHJpbmctb3V0LW9mLWJvdW5kcy1uZWdhdGl2ZS1wcm90by12YWx1ZS5odG1sOiBBZGRlZC4K
KyAgICAgICAgKiBmYXN0L2pzL2pzYy10ZXN0LWxpc3Q6CisgICAgICAgICogZmFzdC9qcy9zY3Jp
cHQtdGVzdHMvZGZnLXN0cmluZy1vdXQtb2YtYm91bmRzLWNoZWNrLXN0cnVjdHVyZS5qczogQWRk
ZWQuCisgICAgICAgIChmb28pOgorICAgICAgICAqIGZhc3QvanMvc2NyaXB0LXRlc3RzL2RmZy1z
dHJpbmctb3V0LW9mLWJvdW5kcy1jc2UuanM6IEFkZGVkLgorICAgICAgICAoZm9vKToKKyAgICAg
ICAgKiBmYXN0L2pzL3NjcmlwdC10ZXN0cy9kZmctc3RyaW5nLW91dC1vZi1ib3VuZHMtbmVnYXRp
dmUtY2hlY2stc3RydWN0dXJlLmpzOiBBZGRlZC4KKyAgICAgICAgKGZvbyk6CisgICAgICAgICh3
aGlsZSk6CisgICAgICAgICogZmFzdC9qcy9zY3JpcHQtdGVzdHMvZGZnLXN0cmluZy1vdXQtb2Yt
Ym91bmRzLW5lZ2F0aXZlLXByb3RvLXZhbHVlLmpzOiBBZGRlZC4KKyAgICAgICAgKGZvbyk6CisK
IDIwMTMtMDYtMjUgIEZpbGlwIFBpemxvICA8ZnBpemxvQGFwcGxlLmNvbT4KIAogICAgICAgICBm
b3VydGhUaWVyOiBERkcgc2hvdWxkIHN1cHBvcnQgc3dpdGNoX3N0cmluZwpJbmRleDogTGF5b3V0
VGVzdHMvZmFzdC9qcy9kZmctc3RyaW5nLW91dC1vZi1ib3VuZHMtY2hlY2stc3RydWN0dXJlLmh0
bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9qcy9kZmctc3RyaW5nLW91dC1vZi1i
b3VuZHMtY2hlY2stc3RydWN0dXJlLmh0bWwJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9m
YXN0L2pzL2RmZy1zdHJpbmctb3V0LW9mLWJvdW5kcy1jaGVjay1zdHJ1Y3R1cmUuaHRtbAkod29y
a2luZyBjb3B5KQpAQCAtMCwwICsxLDEwIEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL0lF
VEYvL0RURCBIVE1MLy9FTiI+Cis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9InJlc291cmNl
cy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxzY3JpcHQgc3Jj
PSJzY3JpcHQtdGVzdHMvZGZnLXN0cmluZy1vdXQtb2YtYm91bmRzLWNoZWNrLXN0cnVjdHVyZS5q
cyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9z
Y3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2pzL2RmZy1z
dHJpbmctb3V0LW9mLWJvdW5kcy1jc2UuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9m
YXN0L2pzL2RmZy1zdHJpbmctb3V0LW9mLWJvdW5kcy1jc2UuaHRtbAkocmV2aXNpb24gMCkKKysr
IExheW91dFRlc3RzL2Zhc3QvanMvZGZnLXN0cmluZy1vdXQtb2YtYm91bmRzLWNzZS5odG1sCSh3
b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMTAgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8v
SUVURi8vRFREIEhUTUwvL0VOIj4KKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0icmVzb3Vy
Y2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHNjcmlwdCBz
cmM9InNjcmlwdC10ZXN0cy9kZmctc3RyaW5nLW91dC1vZi1ib3VuZHMtY3NlLmpzIj48L3Njcmlw
dD4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwv
Ym9keT4KKzwvaHRtbD4KSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvanMvZGZnLXN0cmluZy1vdXQt
b2YtYm91bmRzLW5lZ2F0aXZlLWNoZWNrLXN0cnVjdHVyZS5odG1sCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExh
eW91dFRlc3RzL2Zhc3QvanMvZGZnLXN0cmluZy1vdXQtb2YtYm91bmRzLW5lZ2F0aXZlLWNoZWNr
LXN0cnVjdHVyZS5odG1sCShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvZmFzdC9qcy9kZmct
c3RyaW5nLW91dC1vZi1ib3VuZHMtbmVnYXRpdmUtY2hlY2stc3RydWN0dXJlLmh0bWwJKHdvcmtp
bmcgY29weSkKQEAgLTAsMCArMSwxMCBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9JRVRG
Ly9EVEQgSFRNTC8vRU4iPgorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMv
anMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8c2NyaXB0IHNyYz0i
c2NyaXB0LXRlc3RzL2RmZy1zdHJpbmctb3V0LW9mLWJvdW5kcy1uZWdhdGl2ZS1jaGVjay1zdHJ1
Y3R1cmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9qcy10ZXN0LXBvc3Qu
anMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9q
cy9kZmctc3RyaW5nLW91dC1vZi1ib3VuZHMtbmVnYXRpdmUtcHJvdG8tdmFsdWUuaHRtbAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2pzL2RmZy1zdHJpbmctb3V0LW9mLWJvdW5kcy1u
ZWdhdGl2ZS1wcm90by12YWx1ZS5odG1sCShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvZmFz
dC9qcy9kZmctc3RyaW5nLW91dC1vZi1ib3VuZHMtbmVnYXRpdmUtcHJvdG8tdmFsdWUuaHRtbAko
d29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDEwIEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0v
L0lFVEYvL0RURCBIVE1MLy9FTiI+Cis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9InJlc291
cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxzY3JpcHQg
c3JjPSJzY3JpcHQtdGVzdHMvZGZnLXN0cmluZy1vdXQtb2YtYm91bmRzLW5lZ2F0aXZlLXByb3Rv
LXZhbHVlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvanMtdGVzdC1wb3N0
LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KSW5kZXg6IExheW91dFRlc3RzL2Zhc3Qv
anMvanNjLXRlc3QtbGlzdAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2pzL2pzYy10
ZXN0LWxpc3QJKHJldmlzaW9uIDE1MjkzNykKKysrIExheW91dFRlc3RzL2Zhc3QvanMvanNjLXRl
c3QtbGlzdAkod29ya2luZyBjb3B5KQpAQCAtMTk5LDYgKzE5OSwxMCBAQCBmYXN0L2pzL2RmZy1w
dXRieXZhbC1jZmEtY2xvYmJlcgogZmFzdC9qcy9kZmctcmVkdW5kYW50LWxvYWQtb2YtY2FwdHVy
ZWQtdmFyaWFibGUtcHJvdmVuLWNvbnN0YW50CiBmYXN0L2pzL2RmZy1zaWRlLWVmZmVjdC1hc3Np
Z25tZW50LW9zci1leGl0CiBmYXN0L2pzL2RmZy1zcXJ0LWJhY2t3YXJkcy1wcm9wYWdhdGlvbgor
ZmFzdC9qcy9kZmctc3RyaW5nLW91dC1vZi1ib3VuZHMtY2hlY2stc3RydWN0dXJlCitmYXN0L2pz
L2RmZy1zdHJpbmctb3V0LW9mLWJvdW5kcy1jc2UKK2Zhc3QvanMvZGZnLXN0cmluZy1vdXQtb2Yt
Ym91bmRzLW5lZ2F0aXZlLWNoZWNrLXN0cnVjdHVyZQorZmFzdC9qcy9kZmctc3RyaW5nLW91dC1v
Zi1ib3VuZHMtbmVnYXRpdmUtcHJvdG8tdmFsdWUKIGZhc3QvanMvZGZnLXN0cmluZy1zdHJpY3Rl
cQogZmFzdC9qcy9kZmctdGVhci1vZmYtYXJndW1lbnRzLW5vdC1hY3RpdmF0aW9uCiBmYXN0L2pz
L2RmZy10by1zdHJpbmctYmFkLXRvU3RyaW5nCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2pzL3Nj
cmlwdC10ZXN0cy9kZmctc3RyaW5nLW91dC1vZi1ib3VuZHMtY2hlY2stc3RydWN0dXJlLmpzCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvanMvc2NyaXB0LXRlc3RzL2RmZy1zdHJpbmct
b3V0LW9mLWJvdW5kcy1jaGVjay1zdHJ1Y3R1cmUuanMJKHJldmlzaW9uIDApCisrKyBMYXlvdXRU
ZXN0cy9mYXN0L2pzL3NjcmlwdC10ZXN0cy9kZmctc3RyaW5nLW91dC1vZi1ib3VuZHMtY2hlY2st
c3RydWN0dXJlLmpzCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMjkgQEAKK2Rlc2NyaXB0aW9u
KAorIlRlc3RzIHdoYXQgaGFwcGVucyB3aGVuIHlvdSBkbyBhIG91dC1vZi1ib3VuZHMgYWNjZXNz
IG9uIGEgc3RyaW5nIGFuZCB1c2UgdGhhdCB0byBpbnN0YWxsIGEgZ2V0dGVyIHRoYXQgY2xvYmJl
cnMgYSBzdHJ1Y3R1cmUuIgorKTsKKworZnVuY3Rpb24gZm9vKHMsIG8pIHsKKyAgICB2YXIgeCA9
IG8uZjsKKyAgICBzWzQyXTsKKyAgICB2YXIgeSA9IG8uZzsKKyAgICByZXR1cm4geCArIHk7Cit9
CisKK25vSW5saW5lKGZvbyk7CitzaWxlbnRUZXN0UGFzcyA9IHRydWU7CisKK3ZhciB0aGVPYmpl
Y3QgPSB7fTsKKwordmFyIGRpZEdldENhbGxlZCA9IGZhbHNlOworU3RyaW5nLnByb3RvdHlwZS5f
X2RlZmluZUdldHRlcl9fKCI0MiIsIGZ1bmN0aW9uKCkgeyBkaWRHZXRDYWxsZWQgPSB0cnVlOyBk
ZWxldGUgdGhlT2JqZWN0Lmc7IHRoZU9iamVjdC5oID0gNDIgfSk7CisKK3doaWxlICh0ZXN0UnVu
bmVyLm51bWJlck9mREZHQ29tcGlsZXMoZm9vKSA8IDEpIHsKKyAgICBkaWRHZXRDYWxsZWQgPSBm
YWxzZTsKKyAgICBzaG91bGRCZSgiZm9vKFwiaGVsbG9cIiwge2Y6MSwgZzoyfSkiLCAiMyIpOwor
ICAgIHNob3VsZEJlKCJkaWRHZXRDYWxsZWQiLCAidHJ1ZSIpOworfQorCit0aGVPYmplY3QgPSB7
ZjoxLCBnOjJ9OworZGlkR2V0Q2FsbGVkID0gZmFsc2U7CitzaG91bGRCZSgiZm9vKFwiaGVsbG9c
IiwgdGhlT2JqZWN0KSIsICIwLzAiKTsKK3Nob3VsZEJlKCJkaWRHZXRDYWxsZWQiLCAidHJ1ZSIp
OwpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9qcy9zY3JpcHQtdGVzdHMvZGZnLXN0cmluZy1vdXQt
b2YtYm91bmRzLWNzZS5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2pzL3Njcmlw
dC10ZXN0cy9kZmctc3RyaW5nLW91dC1vZi1ib3VuZHMtY3NlLmpzCShyZXZpc2lvbiAwKQorKysg
TGF5b3V0VGVzdHMvZmFzdC9qcy9zY3JpcHQtdGVzdHMvZGZnLXN0cmluZy1vdXQtb2YtYm91bmRz
LWNzZS5qcwkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDIzIEBACitkZXNjcmlwdGlvbigKKyJU
ZXN0cyB3aGF0IGhhcHBlbnMgd2hlbiB5b3UgcHJlc2VudCBhIENTRSBvcHBvcnR1bml0eSBhY3Jv
c3MgYW4gb3V0LW9mLWJvdW5kcyBzdHJpbmcgYWNjZXNzLiIKKyk7CisKK2Z1bmN0aW9uIGZvbyhz
LCBvKSB7CisgICAgdmFyIHggPSBvLmY7CisgICAgc1swXTsKKyAgICB2YXIgeSA9IG8uZjsKKyAg
ICByZXR1cm4geCArIHk7Cit9CisKK25vSW5saW5lKGZvbyk7CitzaWxlbnRUZXN0UGFzcyA9IHRy
dWU7CisKK3ZhciB0aGVPYmplY3QgPSB7fTsKKworU3RyaW5nLnByb3RvdHlwZS5fX2RlZmluZUdl
dHRlcl9fKCIwIiwgZnVuY3Rpb24oKSB7IHRoZU9iamVjdC5mID0gNDI7IH0pOworCit3aGlsZSAo
IWRmZ0NvbXBpbGVkKHtmOmZvb30pKQorICAgIHNob3VsZEJlKCJmb28oXCJcIiwge2Y6MX0pIiwg
IjIiKTsKKwordGhlT2JqZWN0ID0ge2Y6MX07CitzaG91bGRCZSgiZm9vKFwiXCIsIHRoZU9iamVj
dCkiLCAiNDMiKTsKSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvanMvc2NyaXB0LXRlc3RzL2RmZy1z
dHJpbmctb3V0LW9mLWJvdW5kcy1uZWdhdGl2ZS1jaGVjay1zdHJ1Y3R1cmUuanMKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9qcy9zY3JpcHQtdGVzdHMvZGZnLXN0cmluZy1vdXQtb2Yt
Ym91bmRzLW5lZ2F0aXZlLWNoZWNrLXN0cnVjdHVyZS5qcwkocmV2aXNpb24gMCkKKysrIExheW91
dFRlc3RzL2Zhc3QvanMvc2NyaXB0LXRlc3RzL2RmZy1zdHJpbmctb3V0LW9mLWJvdW5kcy1uZWdh
dGl2ZS1jaGVjay1zdHJ1Y3R1cmUuanMJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwyMyBAQAor
ZGVzY3JpcHRpb24oCisiVGVzdHMgd2hhdCBoYXBwZW5zIHdoZW4geW91IGRvIGEgbmVnYXRpdmUg
b3V0LW9mLWJvdW5kcyBhY2Nlc3Mgb24gYSBzdHJpbmcgYW5kIHVzZSB0aGF0IHRvIGluc3RhbGwg
YSBnZXR0ZXIgdGhhdCBjbG9iYmVycyBhIHN0cnVjdHVyZS4iCispOworCitmdW5jdGlvbiBmb28o
cywgbykgeworICAgIHZhciB4ID0gby5mOworICAgIHNbLTFdOworICAgIHZhciB5ID0gby5nOwor
ICAgIHJldHVybiB4ICsgeTsKK30KKworbm9JbmxpbmUoZm9vKTsKK3NpbGVudFRlc3RQYXNzID0g
dHJ1ZTsKKwordmFyIHRoZU9iamVjdCA9IHt9OworCitTdHJpbmcucHJvdG90eXBlLl9fZGVmaW5l
R2V0dGVyX18oIi0xIiwgZnVuY3Rpb24oKSB7IGRlbGV0ZSB0aGVPYmplY3QuZzsgfSk7CisKK3do
aWxlICh0ZXN0UnVubmVyLm51bWJlck9mREZHQ29tcGlsZXMoZm9vKSA8IDEpCisgICAgc2hvdWxk
QmUoImZvbyhcImhlbGxvXCIsIHtmOjEsIGc6Mn0pIiwgIjMiKTsKKwordGhlT2JqZWN0ID0ge2Y6
MSwgZzoyfTsKK3Nob3VsZEJlKCJmb28oXCJoZWxsb1wiLCB0aGVPYmplY3QpIiwgIjAvMCIpOwpJ
bmRleDogTGF5b3V0VGVzdHMvZmFzdC9qcy9zY3JpcHQtdGVzdHMvZGZnLXN0cmluZy1vdXQtb2Yt
Ym91bmRzLW5lZ2F0aXZlLXByb3RvLXZhbHVlLmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3Rz
L2Zhc3QvanMvc2NyaXB0LXRlc3RzL2RmZy1zdHJpbmctb3V0LW9mLWJvdW5kcy1uZWdhdGl2ZS1w
cm90by12YWx1ZS5qcwkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2Zhc3QvanMvc2NyaXB0
LXRlc3RzL2RmZy1zdHJpbmctb3V0LW9mLWJvdW5kcy1uZWdhdGl2ZS1wcm90by12YWx1ZS5qcwko
d29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDE2IEBACitkZXNjcmlwdGlvbigKKyJUZXN0cyB3aGF0
IGhhcHBlbnMgd2hlbiB5b3UgZG8gYSBuZWdhdGl2ZSBvdXQtb2YtYm91bmRzIGFjY2VzcyBvbiBh
IHN0cmluZyB3aGlsZSB0aGUgcHJvdG90eXBlIGhhcyBhIG5lZ2F0aXZlIGluZGV4ZWQgcHJvcGVy
dHkuIgorKTsKKworZnVuY3Rpb24gZm9vKHMpIHsKKyAgICByZXR1cm4gc1stMV07Cit9CisKK25v
SW5saW5lKGZvbyk7CitzaWxlbnRUZXN0UGFzcyA9IHRydWU7CisKK1N0cmluZy5wcm90b3R5cGVb
LTFdID0gImhlbGxvIjsKKworZm9yICh2YXIgaSA9IDA7IGkgPCAyOyBpID0gZGZnSW5jcmVtZW50
KHtmOmZvbywgaTppICsgMSwgbjoxLCBjb21waWxlczoyfSkpCisgICAgc2hvdWxkQmUoImZvbyhc
ImhlbGxvXCIpIiwgIlwiaGVsbG9cIiIpOworCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>207185</attachid>
            <date>2013-07-19 22:21:45 -0700</date>
            <delta_ts>2013-07-20 09:29:49 -0700</delta_ts>
            <desc>the patch</desc>
            <filename>blah.patch</filename>
            <type>text/plain</type>
            <size>31750</size>
            <attacher name="Filip Pizlo">fpizlo</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTUyOTM5KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDQ5IEBA
CisyMDEzLTA3LTE5ICBGaWxpcCBQaXpsbyAgPGZwaXpsb0BhcHBsZS5jb20+CisKKyAgICAgICAg
Zm91cnRoVGllcjogU3RyaW5nIEdldEJ5VmFsIG91dC1vZi1ib3VuZHMgaGFuZGxpbmcgaXMgc28g
d3JvbmcKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEx
ODkzNQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorICAgICAgICAKKyAg
ICAgICAgQnVuY2ggb2YgU3RyaW5nIEdldEJ5VmFsIG91dC1vZi1ib3VuZHMgZml4ZXM6CisgICAg
ICAgIAorICAgICAgICAtIEV2ZW4gaWYgdGhlIHN0cmluZyBwcm90byBjaGFpbiBpcyBzYW5lLCB3
ZSBuZWVkIHRvIHdhdGNoIG91dCBmb3IgbmVnYXRpdmUKKyAgICAgICAgICBpbmRpY2VzLiBUaGV5
IG1heSBnZXQgdmFsdWVzIG9yIGNhbGwgZ2V0dGVycyBpbiB0aGUgcHJvdG90eXBlcywgc2luY2Ug
cHJvdG8KKyAgICAgICAgICBzYW5pdHkgZG9lc24ndCBjaGVjayBmb3IgbmVnYXRpdmUgaW5kZXhl
ZCBwcm9wZXJ0aWVzLCBhcyB0aGV5IGFyZSBub3QKKyAgICAgICAgICB0ZWNobmljYWxseSBpbmRl
eGVkIHByb3BlcnRpZXMuCisgICAgICAgIAorICAgICAgICAtIEdldEJ5VmFsIFN0cmluZyBvdXQt
b2YtYm91bmRzIGRvZXMgaW4gZmFjdCBjbG9iYmVyV29ybGQoKS4gQ1NFIHNob3VsZCBiZQorICAg
ICAgICAgIGdpdmVuIHRoaXMgaW5mb3JtYXRpb24uCisgICAgICAgIAorICAgICAgICAtIEdldEJ5
VmFsIFN0cmluZyBvdXQtb2YtYm91bmRzIGRvZXMgaW4gZmFjdCBjbG9iYmVyV29ybGQoKS4gQ0ZB
IHNob3VsZCBiZQorICAgICAgICAgIGdpdmVuIHRoaXMgaW5mb3JtYXRpb24uCisgICAgICAgIAor
ICAgICAgICBBbHNvIGZpeGVkIHNvbWUgb3RoZXIgdGhpbmdzOgorICAgICAgICAKKyAgICAgICAg
LSBJZiB0aGUgREZHIGlzIGRpc2FibGVkLCB0aGUgdGVzdFJ1bm5lciBzaG91bGQgcHJldGVuZCB0
aGF0IHdlJ3ZlIGRvbmUgYQorICAgICAgICAgIGJ1bmNoIG9mIERGRyBjb21waWxlcy4gVGhhdCdz
IG5lY2Vzc2FyeSB0byBwcmV2ZW50IHRoZSB0ZXN0cyBmcm9tIHRpbWluZworICAgICAgICAgIG91
dC4KKyAgICAgICAgCisgICAgICAgIC0gRGlzYXNzZW1ibGVyIHNob3VsZG4ndCB0cnkgdG8gZHVt
cCBzb3VyY2UgY29kZSBzaW5jZSBpdCdzIG5vdCBzYWZlIGluIHRoZQorICAgICAgICAgIGNvbmN1
cnJlbnQgSklULgorCisgICAgICAgICogQVBJL0pTQ1Rlc3RSdW5uZXJVdGlscy5jcHA6CisgICAg
ICAgIChKU0M6Om51bWJlck9mREZHQ29tcGlsZXMpOgorICAgICAgICAqIEphdmFTY3JpcHRDb3Jl
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogZGZnL0RGR0Fic3RyYWN0SW50
ZXJwcmV0ZXJJbmxpbmVzLmg6CisgICAgICAgIChKU0M6OkRGRzo6OjpleGVjdXRlRWZmZWN0cyk6
CisgICAgICAgICogZGZnL0RGR0Rpc2Fzc2VtYmxlci5jcHA6CisgICAgICAgIChKU0M6OkRGRzo6
RGlzYXNzZW1ibGVyOjpkdW1wSGVhZGVyKToKKyAgICAgICAgKiBkZmcvREZHR3JhcGguaDoKKyAg
ICAgICAgKEpTQzo6REZHOjpHcmFwaDo6YnlWYWxJc1B1cmUpOgorICAgICAgICAqIGRmZy9ERkdT
YW5lU3RyaW5nR2V0QnlWYWxTbG93UGF0aEdlbmVyYXRvci5oOiBBZGRlZC4KKyAgICAgICAgKERG
Ryk6CisgICAgICAgIChTYW5lU3RyaW5nR2V0QnlWYWxTbG93UGF0aEdlbmVyYXRvcik6CisgICAg
ICAgIChKU0M6OkRGRzo6U2FuZVN0cmluZ0dldEJ5VmFsU2xvd1BhdGhHZW5lcmF0b3I6OlNhbmVT
dHJpbmdHZXRCeVZhbFNsb3dQYXRoR2VuZXJhdG9yKToKKyAgICAgICAgKEpTQzo6REZHOjpTYW5l
U3RyaW5nR2V0QnlWYWxTbG93UGF0aEdlbmVyYXRvcjo6Z2VuZXJhdGVJbnRlcm5hbCk6CisgICAg
ICAgICogZGZnL0RGR1NwZWN1bGF0aXZlSklULmNwcDoKKyAgICAgICAgKEpTQzo6REZHOjpTcGVj
dWxhdGl2ZUpJVDo6Y29tcGlsZUdldEJ5VmFsT25TdHJpbmcpOgorCiAyMDEzLTA3LTE5ICBGaWxp
cCBQaXpsbyAgPGZwaXpsb0BhcHBsZS5jb20+CiAKICAgICAgICAgZm91cnRoVGllcjogU3RydWN0
dXJlOjppc1ZhbGlkT2Zmc2V0KCkgc2hvdWxkIGJlIGFibGUgdG8gdGVsbCB5b3UgaWYgeW91J3Jl
IGxvYWRpbmcgYSB2YWxpZCBKU1ZhbHVlLCBhbmQgbm90IGp1c3Qgbm90IGNyYXNoaW5nCkluZGV4
OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTQ1Rlc3RSdW5uZXJVdGlscy5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU0NUZXN0UnVubmVyVXRpbHMuY3Bw
CShyZXZpc2lvbiAxNTI5MzcpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTQ1Rlc3RS
dW5uZXJVdGlscy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQ4LDE3ICs0OCwyMyBAQCBzdGF0aWMg
RnVuY3Rpb25FeGVjdXRhYmxlKiBnZXRFeGVjdXRhYmxlCiAKIEpTVmFsdWVSZWYgbnVtYmVyT2ZE
RkdDb21waWxlcyhKU0NvbnRleHRSZWYgY29udGV4dCwgSlNWYWx1ZVJlZiB0aGVGdW5jdGlvblZh
bHVlUmVmKQogeworICAgIGJvb2wgcHJldGVuZFRvSGF2ZU1hbnlDb21waWxlcyA9IGZhbHNlOwor
I2lmIEVOQUJMRShERkdfSklUKQorICAgIGlmICghT3B0aW9uczo6dXNlSklUKCkgfHwgIU9wdGlv
bnM6OnVzZURGR0pJVCgpKQorICAgICAgICBwcmV0ZW5kVG9IYXZlTWFueUNvbXBpbGVzID0gdHJ1
ZTsKKyNlbHNlCisgICAgcHJldGVuZFRvSGF2ZU1hbnlDb21waWxlcyA9IHRydWU7CisjZW5kaWYK
KyAgICAKICAgICBpZiAoRnVuY3Rpb25FeGVjdXRhYmxlKiBleGVjdXRhYmxlID0gZ2V0RXhlY3V0
YWJsZShjb250ZXh0LCB0aGVGdW5jdGlvblZhbHVlUmVmKSkgewogICAgICAgICBDb2RlQmxvY2sq
IGJhc2VsaW5lQ29kZUJsb2NrID0gZXhlY3V0YWJsZS0+YmFzZWxpbmVDb2RlQmxvY2tGb3IoQ29k
ZUZvckNhbGwpOwogICAgICAgICAKICAgICAgICAgaWYgKCFiYXNlbGluZUNvZGVCbG9jaykKICAg
ICAgICAgICAgIHJldHVybiBKU1ZhbHVlTWFrZU51bWJlcihjb250ZXh0LCAwKTsKIAotI2lmIEVO
QUJMRShERkdfSklUKSAgICAgICAgCisgICAgICAgIGlmIChwcmV0ZW5kVG9IYXZlTWFueUNvbXBp
bGVzKQorICAgICAgICAgICAgcmV0dXJuIEpTVmFsdWVNYWtlTnVtYmVyKGNvbnRleHQsIDEwMDAw
MDAuMCk7CiAgICAgICAgIHJldHVybiBKU1ZhbHVlTWFrZU51bWJlcihjb250ZXh0LCBiYXNlbGlu
ZUNvZGVCbG9jay0+bnVtYmVyT2ZERkdDb21waWxlcygpKTsKLSNlbHNlCi0gICAgICAgIHJldHVy
biBKU1ZhbHVlTWFrZU51bWJlcihjb250ZXh0LCAxMDAwMDAwLjApOwotI2VuZGlmCiAgICAgfQog
ICAgIAogICAgIHJldHVybiBKU1ZhbHVlTWFrZVVuZGVmaW5lZChjb250ZXh0KTsKSW5kZXg6IFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS54
Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCShyZXZpc2lvbiAxNTI5MzcpCisrKyBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagkod29y
a2luZyBjb3B5KQpAQCAtMzY2LDEzICszNjYsMTQgQEAKIAkJMEZFNTA1N0IxNzhGNUI1MzAwQjM1
RjhDIC8qIERGR09TUkF2YWlsYWJpbGl0eUFuYWx5c2lzUGhhc2UuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGRTUwNTZFMTc4RjVCNTMwMEIzNUY4QyAv
KiBERkdPU1JBdmFpbGFiaWxpdHlBbmFseXNpc1BoYXNlLmggKi87IHNldHRpbmdzID0ge0FUVFJJ
QlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJMEZFNTA1N0MxNzhGNUI1MzAwQjM1RjhDIC8q
IERGR1NTQUNvbnZlcnNpb25QaGFzZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSAwRkU1MDU2RjE3OEY1QjUzMDBCMzVGOEMgLyogREZHU1NBQ29udmVy
c2lvblBoYXNlLmNwcCAqLzsgfTsKIAkJMEZFNTA1N0QxNzhGNUI1MzAwQjM1RjhDIC8qIERGR1NT
QUNvbnZlcnNpb25QaGFzZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gMEZFNTA1NzAxNzhGNUI1MzAwQjM1RjhDIC8qIERGR1NTQUNvbnZlcnNpb25QaGFz
ZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCTBG
RTUwNTgyMTc5NjVDM0QwMEIzNUY4QyAvKiBERkdMb29wUHJlSGVhZGVyQ3JlYXRpb25QaGFzZS5j
cHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRkU1MDU4
MDE3OTY1QzNEMDBCMzVGOEMgLyogREZHTG9vcFByZUhlYWRlckNyZWF0aW9uUGhhc2UuY3BwICov
OyB9OworCQkwRkU1MDU4MzE3OTY1QzNEMDBCMzVGOEMgLyogREZHTG9vcFByZUhlYWRlckNyZWF0
aW9uUGhhc2UuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDBGRTUwNTgxMTc5NjVDM0QwMEIzNUY4QyAvKiBERkdMb29wUHJlSGVhZGVyQ3JlYXRpb25QaGFz
ZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTBG
RTUwNThBMTc5OEFCRjUwMEIzNUY4QyAvKiBERkdBYnN0cmFjdEludGVycHJldGVyLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRkU1MDU4NjE3OThBQkY1
MDBCMzVGOEMgLyogREZHQWJzdHJhY3RJbnRlcnByZXRlci5oICovOyBzZXR0aW5ncyA9IHtBVFRS
SUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTBGRTUwNThCMTc5OEFCRjUwMEIzNUY4QyAv
KiBERkdBYnN0cmFjdEludGVycHJldGVySW5saW5lcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEZFNTA1ODcxNzk4QUJGNTAwQjM1RjhDIC8qIERGR0Fi
c3RyYWN0SW50ZXJwcmV0ZXJJbmxpbmVzLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAo
UHJpdmF0ZSwgKTsgfTsgfTsKIAkJMEZFNTA1OEMxNzk4QUJGNTAwQjM1RjhDIC8qIERGR0luUGxh
Y2VBYnN0cmFjdFN0YXRlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDBGRTUwNTg4MTc5OEFCRjUwMEIzNUY4QyAvKiBERkdJblBsYWNlQWJzdHJhY3RT
dGF0ZS5jcHAgKi87IH07CiAJCTBGRTUwNThEMTc5OEFCRjUwMEIzNUY4QyAvKiBERkdJblBsYWNl
QWJzdHJhY3RTdGF0ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gMEZFNTA1ODkxNzk4QUJGNTAwQjM1RjhDIC8qIERGR0luUGxhY2VBYnN0cmFjdFN0YXRl
LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJMEZF
NTA1OEYxNzk4QUU3MTAwQjM1RjhDIC8qIERGR01lcmdlTW9kZS5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEZFNTA1OEUxNzk4QUU2RjAwQjM1RjhDIC8q
IERGR01lcmdlTW9kZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7
IH07IH07Ci0JCTBGRTUwNTgyMTc5NjVDM0QwMEIzNUY4QyAvKiBERkdMb29wUHJlSGVhZGVyQ3Jl
YXRpb25QaGFzZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSAwRkU1MDU4MDE3OTY1QzNEMDBCMzVGOEMgLyogREZHTG9vcFByZUhlYWRlckNyZWF0aW9u
UGhhc2UuY3BwICovOyB9OwotCQkwRkU1MDU4MzE3OTY1QzNEMDBCMzVGOEMgLyogREZHTG9vcFBy
ZUhlYWRlckNyZWF0aW9uUGhhc2UuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDBGRTUwNTgxMTc5NjVDM0QwMEIzNUY4QyAvKiBERkdMb29wUHJlSGVhZGVy
Q3JlYXRpb25QaGFzZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7
IH07IH07CisJCTBGRTUwNTkxMTc5QTQ5MjQwMEIzNUY4QyAvKiBERkdTYW5lU3RyaW5nR2V0QnlW
YWxTbG93UGF0aEdlbmVyYXRvci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gMEZFNTA1OTAxNzlBNDkyNDAwQjM1RjhDIC8qIERGR1NhbmVTdHJpbmdHZXRC
eVZhbFNsb3dQYXRoR2VuZXJhdG9yLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJp
dmF0ZSwgKTsgfTsgfTsKIAkJMEZFODUzNEIxNzIzQ0RBNTAwQjYxOEY1IC8qIERGR0Rlc2lyZWRX
YXRjaHBvaW50cy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSAwRkU4NTM0OTE3MjNDREE1MDBCNjE4RjUgLyogREZHRGVzaXJlZFdhdGNocG9pbnRzLmNw
cCAqLzsgfTsKIAkJMEZFODUzNEMxNzIzQ0RBNTAwQjYxOEY1IC8qIERGR0Rlc2lyZWRXYXRjaHBv
aW50cy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEZF
ODUzNEExNzIzQ0RBNTAwQjYxOEY1IC8qIERGR0Rlc2lyZWRXYXRjaHBvaW50cy5oICovOyBzZXR0
aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTBGRUEwQTA4MTcwNTEz
REIwMEJCNzIyQyAvKiBGVExBYmJyZXZpYXRpb25zLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRkVBMDlGRDE3MDUxM0RCMDBCQjcyMkMgLyogRlRMQWJi
cmV2aWF0aW9ucy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07
IH07CkBAIC0xNDE3LDEzICsxNDE4LDE0IEBACiAJCTBGRTUwNTZFMTc4RjVCNTMwMEIzNUY4QyAv
KiBERkdPU1JBdmFpbGFiaWxpdHlBbmFseXNpc1BoYXNlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgbmFtZSA9IERGR09TUkF2YWlsYWJpbGl0eUFuYWx5c2lzUGhhc2UuaDsgcGF0aCA9IGRm
Zy9ERkdPU1JBdmFpbGFiaWxpdHlBbmFseXNpc1BoYXNlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTBGRTUwNTZGMTc4RjVCNTMwMEIzNUY4QyAvKiBERkdTU0FDb252ZXJzaW9uUGhh
c2UuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gREZHU1NBQ29udmVy
c2lvblBoYXNlLmNwcDsgcGF0aCA9IGRmZy9ERkdTU0FDb252ZXJzaW9uUGhhc2UuY3BwOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwRkU1MDU3MDE3OEY1QjUzMDBCMzVGOEMgLyogREZH
U1NBQ29udmVyc2lvblBoYXNlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IERG
R1NTQUNvbnZlcnNpb25QaGFzZS5oOyBwYXRoID0gZGZnL0RGR1NTQUNvbnZlcnNpb25QaGFzZS5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkwRkU1MDU4MDE3OTY1QzNEMDBCMzVGOEMg
LyogREZHTG9vcFByZUhlYWRlckNyZWF0aW9uUGhhc2UuY3BwICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAuY3BwOyBuYW1lID0gREZHTG9vcFByZUhlYWRlckNyZWF0aW9uUGhhc2UuY3BwOyBwYXRo
ID0gZGZnL0RGR0xvb3BQcmVIZWFkZXJDcmVhdGlvblBoYXNlLmNwcDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKKwkJMEZFNTA1ODExNzk2NUMzRDAwQjM1RjhDIC8qIERGR0xvb3BQcmVIZWFk
ZXJDcmVhdGlvblBoYXNlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IERGR0xv
b3BQcmVIZWFkZXJDcmVhdGlvblBoYXNlLmg7IHBhdGggPSBkZmcvREZHTG9vcFByZUhlYWRlckNy
ZWF0aW9uUGhhc2UuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMEZFNTA1ODYxNzk4
QUJGNTAwQjM1RjhDIC8qIERGR0Fic3RyYWN0SW50ZXJwcmV0ZXIuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBuYW1lID0gREZHQWJzdHJhY3RJbnRlcnByZXRlci5oOyBwYXRoID0gZGZnL0RG
R0Fic3RyYWN0SW50ZXJwcmV0ZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMEZF
NTA1ODcxNzk4QUJGNTAwQjM1RjhDIC8qIERGR0Fic3RyYWN0SW50ZXJwcmV0ZXJJbmxpbmVzLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IERGR0Fic3RyYWN0SW50ZXJwcmV0ZXJJ
bmxpbmVzLmg7IHBhdGggPSBkZmcvREZHQWJzdHJhY3RJbnRlcnByZXRlcklubGluZXMuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMEZFNTA1ODgxNzk4QUJGNTAwQjM1RjhDIC8qIERG
R0luUGxhY2VBYnN0cmFjdFN0YXRlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsg
bmFtZSA9IERGR0luUGxhY2VBYnN0cmFjdFN0YXRlLmNwcDsgcGF0aCA9IGRmZy9ERkdJblBsYWNl
QWJzdHJhY3RTdGF0ZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBGRTUwNTg5
MTc5OEFCRjUwMEIzNUY4QyAvKiBERkdJblBsYWNlQWJzdHJhY3RTdGF0ZS5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IG5hbWUgPSBERkdJblBsYWNlQWJzdHJhY3RTdGF0ZS5oOyBwYXRoID0g
ZGZnL0RGR0luUGxhY2VBYnN0cmFjdFN0YXRlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTBGRTUwNThFMTc5OEFFNkYwMEIzNUY4QyAvKiBERkdNZXJnZU1vZGUuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBu
YW1lID0gREZHTWVyZ2VNb2RlLmg7IHBhdGggPSBkZmcvREZHTWVyZ2VNb2RlLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTBGRTUwNTgwMTc5NjVDM0QwMEIzNUY4QyAvKiBERkdMb29w
UHJlSGVhZGVyQ3JlYXRpb25QaGFzZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7
IG5hbWUgPSBERkdMb29wUHJlSGVhZGVyQ3JlYXRpb25QaGFzZS5jcHA7IHBhdGggPSBkZmcvREZH
TG9vcFByZUhlYWRlckNyZWF0aW9uUGhhc2UuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwotCQkwRkU1MDU4MTE3OTY1QzNEMDBCMzVGOEMgLyogREZHTG9vcFByZUhlYWRlckNyZWF0aW9u
UGhhc2UuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gREZHTG9vcFByZUhlYWRl
ckNyZWF0aW9uUGhhc2UuaDsgcGF0aCA9IGRmZy9ERkdMb29wUHJlSGVhZGVyQ3JlYXRpb25QaGFz
ZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkwRkU1MDU5MDE3OUE0OTI0MDBCMzVG
OEMgLyogREZHU2FuZVN0cmluZ0dldEJ5VmFsU2xvd1BhdGhHZW5lcmF0b3IuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gREZHU2FuZVN0cmluZ0dldEJ5VmFsU2xvd1BhdGhHZW5l
cmF0b3IuaDsgcGF0aCA9IGRmZy9ERkdTYW5lU3RyaW5nR2V0QnlWYWxTbG93UGF0aEdlbmVyYXRv
ci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwRkU4NTM0OTE3MjNDREE1MDBCNjE4
RjUgLyogREZHRGVzaXJlZFdhdGNocG9pbnRzLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
LmNwcDsgbmFtZSA9IERGR0Rlc2lyZWRXYXRjaHBvaW50cy5jcHA7IHBhdGggPSBkZmcvREZHRGVz
aXJlZFdhdGNocG9pbnRzLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMEZFODUz
NEExNzIzQ0RBNTAwQjYxOEY1IC8qIERGR0Rlc2lyZWRXYXRjaHBvaW50cy5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IG5hbWUgPSBERkdEZXNpcmVkV2F0Y2hwb2ludHMuaDsgcGF0aCA9IGRm
Zy9ERkdEZXNpcmVkV2F0Y2hwb2ludHMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
MEZFQTA5RkQxNzA1MTNEQjAwQkI3MjJDIC8qIEZUTEFiYnJldmlhdGlvbnMuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gRlRMQWJicmV2aWF0aW9ucy5oOyBwYXRoID0gZnRsL0ZU
TEFiYnJldmlhdGlvbnMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTI5ODUsNyAr
Mjk4Nyw2IEBACiAJCTg2RUM5REIzMTMyOERGNDQwMDJCMkFENyAvKiBkZmcgKi8gPSB7CiAJCQlp
c2EgPSBQQlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKAotCQkJCTBGRTUwNThFMTc5OEFFNkYwMEIz
NUY4QyAvKiBERkdNZXJnZU1vZGUuaCAqLywKIAkJCQkwRkU1MDU4NjE3OThBQkY1MDBCMzVGOEMg
LyogREZHQWJzdHJhY3RJbnRlcnByZXRlci5oICovLAogCQkJCTBGRTUwNTg3MTc5OEFCRjUwMEIz
NUY4QyAvKiBERkdBYnN0cmFjdEludGVycHJldGVySW5saW5lcy5oICovLAogCQkJCTBGNTVDMTkz
MTcyNzZFNDYwMENFQUJGRCAvKiBERkdBYnN0cmFjdFZhbHVlLmNwcCAqLywKQEAgLTMwODMsNiAr
MzA4NCw3IEBACiAJCQkJMEZCNEI1MUQxNkI2Mjc3MjAwM0Y2OTZCIC8qIERGR0xvbmdMaXZlZFN0
YXRlLmggKi8sCiAJCQkJMEZFNTA1ODAxNzk2NUMzRDAwQjM1RjhDIC8qIERGR0xvb3BQcmVIZWFk
ZXJDcmVhdGlvblBoYXNlLmNwcCAqLywKIAkJCQkwRkU1MDU4MTE3OTY1QzNEMDBCMzVGOEMgLyog
REZHTG9vcFByZUhlYWRlckNyZWF0aW9uUGhhc2UuaCAqLywKKwkJCQkwRkU1MDU4RTE3OThBRTZG
MDBCMzVGOEMgLyogREZHTWVyZ2VNb2RlLmggKi8sCiAJCQkJMEYyQkRDM0QxNTIyODAxNzAwQ0Q4
OTEwIC8qIERGR01pbmlmaWVkR3JhcGguaCAqLywKIAkJCQkwRkI0QjUxMDE2QjNBOTY0MDAzRjY5
NkIgLyogREZHTWluaWZpZWRJRC5oICovLAogCQkJCTBGMkJEQzRDMTUyMjgxODMwMENEODkxMCAv
KiBERkdNaW5pZmllZE5vZGUuY3BwICovLApAQCAtMzEyOCw2ICszMTMwLDcgQEAKIAkJCQkwRjc2
NkQ0MjE1QjJBM0JEMDA4RjM2M0UgLyogREZHUmVnaXN0ZXJTZXQuaCAqLywKIAkJCQk4NkJCMDlC
RTEzOEUzODFCMDA1NjcwMkYgLyogREZHUmVwYXRjaC5jcHAgKi8sCiAJCQkJODZCQjA5QkYxMzhF
MzgxQjAwNTY3MDJGIC8qIERGR1JlcGF0Y2guaCAqLywKKwkJCQkwRkU1MDU5MDE3OUE0OTI0MDBC
MzVGOEMgLyogREZHU2FuZVN0cmluZ0dldEJ5VmFsU2xvd1BhdGhHZW5lcmF0b3IuaCAqLywKIAkJ
CQk4NkVDQTNGOTEzMkRGMjVBMDAyQjJBRDcgLyogREZHU2NvcmVCb2FyZC5oICovLAogCQkJCTBG
NzY2RDQ1MTVCMzcwMUQwMDhGMzYzRSAvKiBERkdTY3JhdGNoUmVnaXN0ZXJBbGxvY2F0b3IuaCAq
LywKIAkJCQkwRjFFM0E2NTE1M0EyMURGMDAwRjk0NTYgLyogREZHU2lsZW50UmVnaXN0ZXJTYXZl
UGxhbi5oICovLApAQCAtMzUwNyw2ICszNTEwLDcgQEAKIAkJCQkwRkMwOTdBMjE0NkIyOENDMDBD
RjI0NDIgLyogREZHVGh1bmtzLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRjNCM0EyQzE1NDc1MDAy
MDAzRUQwRkYgLyogREZHVmFsaWRhdGUuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGMkJEQzQ3MTUy
MjgwMjUwMENEODkxMCAvKiBERkdWYWx1ZVJlY292ZXJ5T3ZlcnJpZGUuaCBpbiBIZWFkZXJzICov
LAorCQkJCTBGRTUwNTkxMTc5QTQ5MjQwMEIzNUY4QyAvKiBERkdTYW5lU3RyaW5nR2V0QnlWYWxT
bG93UGF0aEdlbmVyYXRvci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRkVEOTRGMkYxNzFFM0UyMzAw
QkU3N0E0IC8qIFdhdGNoZG9nLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRkU1MDU1RDE3ODdCMENG
MDBCMzVGOEMgLyogREZHQ3JpdGljYWxFZGdlQnJlYWtpbmdQaGFzZS5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJMEYyQkRDNDgxNTIyODAyOTAwQ0Q4OTEwIC8qIERGR1ZhbHVlU291cmNlLmggaW4gSGVh
ZGVycyAqLywKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQWJzdHJhY3RJbnRl
cnByZXRlcklubGluZXMuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZn
L0RGR0Fic3RyYWN0SW50ZXJwcmV0ZXJJbmxpbmVzLmgJKHJldmlzaW9uIDE1MjkzNykKKysrIFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQWJzdHJhY3RJbnRlcnByZXRlcklubGluZXMuaAko
d29ya2luZyBjb3B5KQpAQCAtNzc2LDcgKzc3Niw5IEBAIGJvb2wgQWJzdHJhY3RJbnRlcnByZXRl
cjxBYnN0cmFjdFN0YXRlVHkKICAgICAgICAgICAgICAgICAvLyBHZXRCeVZhbCBvcGVyYXRpb24g
dGhlIGZhY3QgdGhhdCB3ZSdyZSB1c2luZyBhIHdhdGNocG9pbnQsIHVzaW5nCiAgICAgICAgICAg
ICAgICAgLy8gc29tZXRoaW5nIGxpa2UgQXJyYXk6OlNhbmVDaGFpbiAoZXhjZXB0IG5vdCBxdWl0
ZSwgYmVjYXVzZSB0aGF0CiAgICAgICAgICAgICAgICAgLy8gaW1wbGllcyBhbiBpbi1ib3VuZHMg
YWNjZXNzKS4gTm9uZSBvZiB0aGlzIGZlZWxzIGxpa2UgaXQncyB3b3J0aCBpdCwKLSAgICAgICAg
ICAgICAgICAvLyBzbyB3ZSdyZSBnb2luZyB3aXRoIFRPUCBmb3Igbm93LgorICAgICAgICAgICAg
ICAgIC8vIHNvIHdlJ3JlIGdvaW5nIHdpdGggVE9QIGZvciBub3cuIFRoZSBzYW1lIHRoaW5nIGFw
cGxpZXMgdG8KKyAgICAgICAgICAgICAgICAvLyBjbG9iYmVyaW5nIHRoZSB3b3JsZC4KKyAgICAg
ICAgICAgICAgICBjbG9iYmVyV29ybGQobm9kZS0+Y29kZU9yaWdpbiwgaW5kZXhJbkJsb2NrKTsK
ICAgICAgICAgICAgICAgICBmb3JOb2RlKG5vZGUpLm1ha2VUb3AoKTsKICAgICAgICAgICAgIH0g
ZWxzZQogICAgICAgICAgICAgICAgIGZvck5vZGUobm9kZSkuc2V0KG1fZ3JhcGgsIG1fZ3JhcGgu
bV92bS5zdHJpbmdTdHJ1Y3R1cmUuZ2V0KCkpOwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3Jl
L2RmZy9ERkdEaXNhc3NlbWJsZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9kZmcvREZHRGlzYXNzZW1ibGVyLmNwcAkocmV2aXNpb24gMTUyOTM3KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL2RmZy9ERkdEaXNhc3NlbWJsZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBA
IC02OSw3ICs2OSw2IEBAIHZvaWQgRGlzYXNzZW1ibGVyOjpkdW1wSGVhZGVyKFByaW50U3RyZWEK
IHsKICAgICBvdXQucHJpbnQoIkdlbmVyYXRlZCBERkcgSklUIGNvZGUgZm9yICIsIENvZGVCbG9j
a1dpdGhKSVRUeXBlKG1fZ3JhcGgubV9jb2RlQmxvY2ssIEpJVENvZGU6OkRGR0pJVCksICIsIGlu
c3RydWN0aW9uIGNvdW50ID0gIiwgbV9ncmFwaC5tX2NvZGVCbG9jay0+aW5zdHJ1Y3Rpb25Db3Vu
dCgpLCAiOlxuIik7CiAgICAgb3V0LnByaW50KCIgICAgT3B0aW1pemVkIHdpdGggZXhlY3V0aW9u
IGNvdW50ZXIgPSAiLCBtX2dyYXBoLm1fcHJvZmlsZWRCbG9jay0+aml0RXhlY3V0ZUNvdW50ZXIo
KSwgIlxuIik7Ci0gICAgb3V0LnByaW50KCIgICAgU291cmNlOiAiLCBtX2dyYXBoLm1fY29kZUJs
b2NrLT5zb3VyY2VDb2RlT25PbmVMaW5lKCksICJcbiIpOwogICAgIG91dC5wcmludCgiICAgIENv
ZGUgYXQgWyIsIFJhd1BvaW50ZXIobGlua0J1ZmZlci5kZWJ1Z0FkZHJlc3MoKSksICIsICIsIFJh
d1BvaW50ZXIoc3RhdGljX2Nhc3Q8Y2hhcio+KGxpbmtCdWZmZXIuZGVidWdBZGRyZXNzKCkpICsg
bGlua0J1ZmZlci5kZWJ1Z1NpemUoKSksICIpOlxuIik7CiB9CiAKSW5kZXg6IFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9kZmcvREZHR3JhcGguaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvZGZnL0RGR0dyYXBoLmgJKHJldmlzaW9uIDE1MjkzNykKKysrIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9kZmcvREZHR3JhcGguaAkod29ya2luZyBjb3B5KQpAQCAtNDkyLDcgKzQ5Miw3IEBA
IHB1YmxpYzoKICAgICAgICAgY2FzZSBBcnJheTo6U2xvd1B1dEFycmF5U3RvcmFnZToKICAgICAg
ICAgICAgIHJldHVybiAhbm9kZS0+YXJyYXlNb2RlKCkubWF5U3RvcmVUb0hvbGUoKTsKICAgICAg
ICAgY2FzZSBBcnJheTo6U3RyaW5nOgotICAgICAgICAgICAgcmV0dXJuIG5vZGUtPm9wKCkgPT0g
R2V0QnlWYWw7CisgICAgICAgICAgICByZXR1cm4gbm9kZS0+b3AoKSA9PSBHZXRCeVZhbCAmJiBu
b2RlLT5hcnJheU1vZGUoKS5pc0luQm91bmRzKCk7CiAjaWYgVVNFKEpTVkFMVUUzMl82NCkKICAg
ICAgICAgY2FzZSBBcnJheTo6QXJndW1lbnRzOgogICAgICAgICAgICAgaWYgKG5vZGUtPm9wKCkg
PT0gR2V0QnlWYWwpCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NhbmVTdHJp
bmdHZXRCeVZhbFNsb3dQYXRoR2VuZXJhdG9yLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFT
Y3JpcHRDb3JlL2RmZy9ERkdTYW5lU3RyaW5nR2V0QnlWYWxTbG93UGF0aEdlbmVyYXRvci5oCShy
ZXZpc2lvbiAwKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTYW5lU3RyaW5nR2V0
QnlWYWxTbG93UGF0aEdlbmVyYXRvci5oCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsOTcgQEAK
Ky8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlz
dHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5D
LiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9T
RSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENP
TlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBC
VVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisg
KiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKworI2lmbmRlZiBE
RkdTYW5lU3RyaW5nR2V0QnlWYWxTbG93UGF0aEdlbmVyYXRvcl9oCisjZGVmaW5lIERGR1NhbmVT
dHJpbmdHZXRCeVZhbFNsb3dQYXRoR2VuZXJhdG9yX2gKKworI2luY2x1ZGUgPHd0Zi9QbGF0Zm9y
bS5oPgorCisjaWYgRU5BQkxFKERGR19KSVQpCisKKyNpbmNsdWRlICJERkdDb21tb24uaCIKKyNp
bmNsdWRlICJERkdPcGVyYXRpb25zLmgiCisjaW5jbHVkZSAiREZHU2xvd1BhdGhHZW5lcmF0b3Iu
aCIKKyNpbmNsdWRlICJERkdTcGVjdWxhdGl2ZUpJVC5oIgorI2luY2x1ZGUgPHd0Zi9WZWN0b3Iu
aD4KKworbmFtZXNwYWNlIEpTQyB7IG5hbWVzcGFjZSBERkcgeworCitjbGFzcyBTYW5lU3RyaW5n
R2V0QnlWYWxTbG93UGF0aEdlbmVyYXRvciA6IHB1YmxpYyBKdW1waW5nU2xvd1BhdGhHZW5lcmF0
b3I8TWFjcm9Bc3NlbWJsZXI6Okp1bXA+IHsKK3B1YmxpYzoKKyAgICBTYW5lU3RyaW5nR2V0QnlW
YWxTbG93UGF0aEdlbmVyYXRvcigKKyAgICAgICAgY29uc3QgTWFjcm9Bc3NlbWJsZXI6Okp1bXAm
IGZyb20sIFNwZWN1bGF0aXZlSklUKiBqaXQsIEpTVmFsdWVSZWdzIHJlc3VsdFJlZ3MsCisgICAg
ICAgIEdQUlJlZyBiYXNlUmVnLCBHUFJSZWcgcHJvcGVydHlSZWcpCisgICAgICAgIDogSnVtcGlu
Z1Nsb3dQYXRoR2VuZXJhdG9yPE1hY3JvQXNzZW1ibGVyOjpKdW1wPihmcm9tLCBqaXQpCisgICAg
ICAgICwgbV9yZXN1bHRSZWdzKHJlc3VsdFJlZ3MpCisgICAgICAgICwgbV9iYXNlUmVnKGJhc2VS
ZWcpCisgICAgICAgICwgbV9wcm9wZXJ0eVJlZyhwcm9wZXJ0eVJlZykKKyAgICB7CisgICAgICAg
IGppdC0+c2lsZW50U3BpbGxBbGxSZWdpc3RlcnNJbXBsKGZhbHNlLCBtX3BsYW5zLCBleHRyYWN0
UmVzdWx0KHJlc3VsdFJlZ3MpKTsKKyAgICB9CisgICAgCitwcm90ZWN0ZWQ6CisgICAgdm9pZCBn
ZW5lcmF0ZUludGVybmFsKFNwZWN1bGF0aXZlSklUKiBqaXQpCisgICAgeworICAgICAgICBsaW5r
RnJvbShqaXQpOworICAgICAgICAKKyAgICAgICAgTWFjcm9Bc3NlbWJsZXI6Okp1bXAgaXNOZWcg
PSBqaXQtPm1faml0LmJyYW5jaDMyKAorICAgICAgICAgICAgTWFjcm9Bc3NlbWJsZXI6Okxlc3NU
aGFuLCBtX3Byb3BlcnR5UmVnLCBNYWNyb0Fzc2VtYmxlcjo6VHJ1c3RlZEltbTMyKDApKTsKKyAg
ICAgICAgCisjaWYgVVNFKEpTVkFMVUU2NCkKKyAgICAgICAgaml0LT5tX2ppdC5tb3ZlKAorICAg
ICAgICAgICAgTWFjcm9Bc3NlbWJsZXI6OlRydXN0ZWRJbW02NChKU1ZhbHVlOjplbmNvZGUoanNV
bmRlZmluZWQoKSkpLCBtX3Jlc3VsdFJlZ3MuZ3ByKCkpOworI2Vsc2UKKyAgICAgICAgaml0LT5t
X2ppdC5tb3ZlKAorICAgICAgICAgICAgTWFjcm9Bc3NlbWJsZXI6OlRydXN0ZWRJbW0zMihKU1Zh
bHVlOjpVbmRlZmluZWRUYWcpLCBtX3Jlc3VsdFJlZ3MudGFnR1BSKCkpOworICAgICAgICBqaXQt
Pm1faml0Lm1vdmUoCisgICAgICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6VHJ1c3RlZEltbTMyKDAp
LCBtX3Jlc3VsdFJlZ3MucGF5bG9hZEdQUigpKTsKKyNlbmRpZgorICAgICAgICBqdW1wVG8oaml0
KTsKKyAgICAgICAgCisgICAgICAgIGlzTmVnLmxpbmsoJmppdC0+bV9qaXQpOworCisgICAgICAg
IGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBtX3BsYW5zLnNpemUoKTsgKytpKQorICAgICAgICAg
ICAgaml0LT5zaWxlbnRTcGlsbChtX3BsYW5zW2ldKTsKKyAgICAgICAgaml0LT5jYWxsT3BlcmF0
aW9uKG9wZXJhdGlvbkdldEJ5VmFsU3RyaW5nSW50LCBleHRyYWN0UmVzdWx0KG1fcmVzdWx0UmVn
cyksIG1fYmFzZVJlZywgbV9wcm9wZXJ0eVJlZyk7CisgICAgICAgIEdQUlJlZyBjYW5UcmFtcGxl
ID0gU3BlY3VsYXRpdmVKSVQ6OnBpY2tDYW5UcmFtcGxlKGV4dHJhY3RSZXN1bHQobV9yZXN1bHRS
ZWdzKSk7CisgICAgICAgIGZvciAodW5zaWduZWQgaSA9IG1fcGxhbnMuc2l6ZSgpOyBpLS07KQor
ICAgICAgICAgICAgaml0LT5zaWxlbnRGaWxsKG1fcGxhbnNbaV0sIGNhblRyYW1wbGUpOworICAg
ICAgICAKKyAgICAgICAganVtcFRvKGppdCk7CisgICAgfQorICAgIAorcHJpdmF0ZToKKyAgICBK
U1ZhbHVlUmVncyBtX3Jlc3VsdFJlZ3M7CisgICAgR1BSUmVnIG1fYmFzZVJlZzsKKyAgICBHUFJS
ZWcgbV9wcm9wZXJ0eVJlZzsKKyAgICBWZWN0b3I8U2lsZW50UmVnaXN0ZXJTYXZlUGxhbiwgMj4g
bV9wbGFuczsKK307CisKK30gfSAvLyBuYW1lc3BhY2UgSlNDOjpERkcKKworI2VuZGlmIC8vIEVO
QUJMRShERkdfSklUKQorCisjZW5kaWYgLy8gREZHU2FuZVN0cmluZ0dldEJ5VmFsU2xvd1BhdGhH
ZW5lcmF0b3JfaAorCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0
aXZlSklULmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1Nw
ZWN1bGF0aXZlSklULmNwcAkocmV2aXNpb24gMTUyOTM3KQorKysgU291cmNlL0phdmFTY3JpcHRD
b3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTMzLDYgKzMz
LDcgQEAKICNpbmNsdWRlICJERkdBcnJheWlmeVNsb3dQYXRoR2VuZXJhdG9yLmgiCiAjaW5jbHVk
ZSAiREZHQmluYXJ5U3dpdGNoLmgiCiAjaW5jbHVkZSAiREZHQ2FsbEFycmF5QWxsb2NhdG9yU2xv
d1BhdGhHZW5lcmF0b3IuaCIKKyNpbmNsdWRlICJERkdTYW5lU3RyaW5nR2V0QnlWYWxTbG93UGF0
aEdlbmVyYXRvci5oIgogI2luY2x1ZGUgIkRGR1Nsb3dQYXRoR2VuZXJhdG9yLmgiCiAjaW5jbHVk
ZSAiSlNDSlNWYWx1ZUlubGluZXMuaCIKICNpbmNsdWRlICJMaW5rQnVmZmVyLmgiCkBAIC0yMTE0
LDE2ICsyMTE1LDEyIEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVHZXRCeVZhbE9uU3QK
ICAgICAgICAgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCA9IG1faml0Lmdsb2JhbE9iamVj
dEZvcihub2RlLT5jb2RlT3JpZ2luKTsKICAgICAgICAgaWYgKGdsb2JhbE9iamVjdC0+c3RyaW5n
UHJvdG90eXBlQ2hhaW5Jc1NhbmUoKSkgewogI2lmIFVTRShKU1ZBTFVFNjQpCi0gICAgICAgICAg
ICBhZGRTbG93UGF0aEdlbmVyYXRvcigKLSAgICAgICAgICAgICAgICBzbG93UGF0aE1vdmUoCi0g
ICAgICAgICAgICAgICAgICAgIG91dE9mQm91bmRzLCB0aGlzLCBUcnVzdGVkSW1tNjQoSlNWYWx1
ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpKSwKLSAgICAgICAgICAgICAgICAgICAgc2NyYXRjaFJl
ZykpOworICAgICAgICAgICAgYWRkU2xvd1BhdGhHZW5lcmF0b3IoYWRvcHRQdHIobmV3IFNhbmVT
dHJpbmdHZXRCeVZhbFNsb3dQYXRoR2VuZXJhdG9yKAorICAgICAgICAgICAgICAgIG91dE9mQm91
bmRzLCB0aGlzLCBKU1ZhbHVlUmVncyhzY3JhdGNoUmVnKSwgYmFzZVJlZywgcHJvcGVydHlSZWcp
KSk7CiAjZWxzZQotICAgICAgICAgICAgYWRkU2xvd1BhdGhHZW5lcmF0b3IoCi0gICAgICAgICAg
ICAgICAgc2xvd1BhdGhNb3ZlKAotICAgICAgICAgICAgICAgICAgICBvdXRPZkJvdW5kcywgdGhp
cywKLSAgICAgICAgICAgICAgICAgICAgVHJ1c3RlZEltbTMyKEpTVmFsdWU6OlVuZGVmaW5lZFRh
ZyksIHJlc3VsdFRhZ1JlZywKLSAgICAgICAgICAgICAgICAgICAgVHJ1c3RlZEltbTMyKDApLCBz
Y3JhdGNoUmVnKSk7CisgICAgICAgICAgICBhZGRTbG93UGF0aEdlbmVyYXRvcihhZG9wdFB0cihu
ZXcgU2FuZVN0cmluZ0dldEJ5VmFsU2xvd1BhdGhHZW5lcmF0b3IoCisgICAgICAgICAgICAgICAg
b3V0T2ZCb3VuZHMsIHRoaXMsIEpTVmFsdWVSZWdzKHJlc3VsdFRhZ1JlZywgc2NyYXRjaFJlZyks
CisgICAgICAgICAgICAgICAgYmFzZVJlZywgcHJvcGVydHlSZWcpKSk7CiAjZW5kaWYKICAgICAg
ICAgfSBlbHNlIHsKICNpZiBVU0UoSlNWQUxVRTY0KQpJbmRleDogTGF5b3V0VGVzdHMvQ2hhbmdl
TG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL0NoYW5nZUxvZwkocmV2aXNpb24gMTUyOTM5
KQorKysgTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMjkg
QEAKKzIwMTMtMDctMTkgIEZpbGlwIFBpemxvICA8ZnBpemxvQGFwcGxlLmNvbT4KKworICAgICAg
ICBmb3VydGhUaWVyOiBTdHJpbmcgR2V0QnlWYWwgb3V0LW9mLWJvdW5kcyBoYW5kbGluZyBpcyBz
byB3cm9uZworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MTE4OTM1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
KiBmYXN0L2pzL2RmZy1zdHJpbmctb3V0LW9mLWJvdW5kcy1jaGVjay1zdHJ1Y3R1cmUtZXhwZWN0
ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2pzL2RmZy1zdHJpbmctb3V0LW9mLWJvdW5k
cy1jaGVjay1zdHJ1Y3R1cmUuaHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC9qcy9kZmctc3Ry
aW5nLW91dC1vZi1ib3VuZHMtY3NlLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFz
dC9qcy9kZmctc3RyaW5nLW91dC1vZi1ib3VuZHMtY3NlLmh0bWw6IEFkZGVkLgorICAgICAgICAq
IGZhc3QvanMvZGZnLXN0cmluZy1vdXQtb2YtYm91bmRzLW5lZ2F0aXZlLWNoZWNrLXN0cnVjdHVy
ZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvanMvZGZnLXN0cmluZy1vdXQt
b2YtYm91bmRzLW5lZ2F0aXZlLWNoZWNrLXN0cnVjdHVyZS5odG1sOiBBZGRlZC4KKyAgICAgICAg
KiBmYXN0L2pzL2RmZy1zdHJpbmctb3V0LW9mLWJvdW5kcy1uZWdhdGl2ZS1wcm90by12YWx1ZS1l
eHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvanMvZGZnLXN0cmluZy1vdXQtb2Yt
Ym91bmRzLW5lZ2F0aXZlLXByb3RvLXZhbHVlLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3Qv
anMvanNjLXRlc3QtbGlzdDoKKyAgICAgICAgKiBmYXN0L2pzL3NjcmlwdC10ZXN0cy9kZmctc3Ry
aW5nLW91dC1vZi1ib3VuZHMtY2hlY2stc3RydWN0dXJlLmpzOiBBZGRlZC4KKyAgICAgICAgKGZv
byk6CisgICAgICAgICogZmFzdC9qcy9zY3JpcHQtdGVzdHMvZGZnLXN0cmluZy1vdXQtb2YtYm91
bmRzLWNzZS5qczogQWRkZWQuCisgICAgICAgIChmb28pOgorICAgICAgICAqIGZhc3QvanMvc2Ny
aXB0LXRlc3RzL2RmZy1zdHJpbmctb3V0LW9mLWJvdW5kcy1uZWdhdGl2ZS1jaGVjay1zdHJ1Y3R1
cmUuanM6IEFkZGVkLgorICAgICAgICAoZm9vKToKKyAgICAgICAgKHdoaWxlKToKKyAgICAgICAg
KiBmYXN0L2pzL3NjcmlwdC10ZXN0cy9kZmctc3RyaW5nLW91dC1vZi1ib3VuZHMtbmVnYXRpdmUt
cHJvdG8tdmFsdWUuanM6IEFkZGVkLgorICAgICAgICAoZm9vKToKKwogMjAxMy0wNi0yNSAgRmls
aXAgUGl6bG8gIDxmcGl6bG9AYXBwbGUuY29tPgogCiAgICAgICAgIGZvdXJ0aFRpZXI6IERGRyBz
aG91bGQgc3VwcG9ydCBzd2l0Y2hfc3RyaW5nCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2pzL2Rm
Zy1zdHJpbmctb3V0LW9mLWJvdW5kcy1jaGVjay1zdHJ1Y3R1cmUtZXhwZWN0ZWQudHh0Cj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvanMvZGZnLXN0cmluZy1vdXQtb2YtYm91bmRzLWNo
ZWNrLXN0cnVjdHVyZS1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9m
YXN0L2pzL2RmZy1zdHJpbmctb3V0LW9mLWJvdW5kcy1jaGVjay1zdHJ1Y3R1cmUtZXhwZWN0ZWQu
dHh0CSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsOSBAQAorVGVzdHMgd2hhdCBoYXBwZW5zIHdo
ZW4geW91IGRvIGEgb3V0LW9mLWJvdW5kcyBhY2Nlc3Mgb24gYSBzdHJpbmcgYW5kIHVzZSB0aGF0
IHRvIGluc3RhbGwgYSBnZXR0ZXIgdGhhdCBjbG9iYmVycyBhIHN0cnVjdHVyZS4KKworT24gc3Vj
Y2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQg
YnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1Bhc3NlZCBzb21lIHRlc3RzIHNpbGVudGx5LgorCitU
RVNUIENPTVBMRVRFCisKSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvanMvZGZnLXN0cmluZy1vdXQt
b2YtYm91bmRzLWNoZWNrLXN0cnVjdHVyZS5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3Rz
L2Zhc3QvanMvZGZnLXN0cmluZy1vdXQtb2YtYm91bmRzLWNoZWNrLXN0cnVjdHVyZS5odG1sCShy
ZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvZmFzdC9qcy9kZmctc3RyaW5nLW91dC1vZi1ib3Vu
ZHMtY2hlY2stc3RydWN0dXJlLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwxMCBAQAor
PCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9JRVRGLy9EVEQgSFRNTC8vRU4iPgorPGh0bWw+Cis8
aGVhZD4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0Pgor
PC9oZWFkPgorPGJvZHk+Cis8c2NyaXB0IHNyYz0ic2NyaXB0LXRlc3RzL2RmZy1zdHJpbmctb3V0
LW9mLWJvdW5kcy1jaGVjay1zdHJ1Y3R1cmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InJl
c291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpJbmRl
eDogTGF5b3V0VGVzdHMvZmFzdC9qcy9kZmctc3RyaW5nLW91dC1vZi1ib3VuZHMtY3NlLWV4cGVj
dGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2pzL2RmZy1zdHJpbmctb3V0
LW9mLWJvdW5kcy1jc2UtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMv
ZmFzdC9qcy9kZmctc3RyaW5nLW91dC1vZi1ib3VuZHMtY3NlLWV4cGVjdGVkLnR4dAkod29ya2lu
ZyBjb3B5KQpAQCAtMCwwICsxLDkgQEAKK1Rlc3RzIHdoYXQgaGFwcGVucyB3aGVuIHlvdSBwcmVz
ZW50IGEgQ1NFIG9wcG9ydHVuaXR5IGFjcm9zcyBhbiBvdXQtb2YtYm91bmRzIHN0cmluZyBhY2Nl
c3MuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2Fn
ZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQYXNzZWQgc29tZSB0ZXN0cyBz
aWxlbnRseS4KKworVEVTVCBDT01QTEVURQorCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2pzL2Rm
Zy1zdHJpbmctb3V0LW9mLWJvdW5kcy1jc2UuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0
cy9mYXN0L2pzL2RmZy1zdHJpbmctb3V0LW9mLWJvdW5kcy1jc2UuaHRtbAkocmV2aXNpb24gMCkK
KysrIExheW91dFRlc3RzL2Zhc3QvanMvZGZnLXN0cmluZy1vdXQtb2YtYm91bmRzLWNzZS5odG1s
CSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMTAgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAi
LS8vSUVURi8vRFREIEhUTUwvL0VOIj4KKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0icmVz
b3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHNjcmlw
dCBzcmM9InNjcmlwdC10ZXN0cy9kZmctc3RyaW5nLW91dC1vZi1ib3VuZHMtY3NlLmpzIj48L3Nj
cmlwdD4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4K
KzwvYm9keT4KKzwvaHRtbD4KSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvanMvZGZnLXN0cmluZy1v
dXQtb2YtYm91bmRzLW5lZ2F0aXZlLWNoZWNrLXN0cnVjdHVyZS1leHBlY3RlZC50eHQKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9qcy9kZmctc3RyaW5nLW91dC1vZi1ib3VuZHMtbmVn
YXRpdmUtY2hlY2stc3RydWN0dXJlLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKKysrIExheW91
dFRlc3RzL2Zhc3QvanMvZGZnLXN0cmluZy1vdXQtb2YtYm91bmRzLW5lZ2F0aXZlLWNoZWNrLXN0
cnVjdHVyZS1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSw5IEBACitUZXN0
cyB3aGF0IGhhcHBlbnMgd2hlbiB5b3UgZG8gYSBuZWdhdGl2ZSBvdXQtb2YtYm91bmRzIGFjY2Vz
cyBvbiBhIHN0cmluZyBhbmQgdXNlIHRoYXQgdG8gaW5zdGFsbCBhIGdldHRlciB0aGF0IGNsb2Ji
ZXJzIGEgc3RydWN0dXJlLgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2Yg
IlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUGFzc2Vk
IHNvbWUgdGVzdHMgc2lsZW50bHkuCisKK1RFU1QgQ09NUExFVEUKKwpJbmRleDogTGF5b3V0VGVz
dHMvZmFzdC9qcy9kZmctc3RyaW5nLW91dC1vZi1ib3VuZHMtbmVnYXRpdmUtY2hlY2stc3RydWN0
dXJlLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9qcy9kZmctc3RyaW5nLW91
dC1vZi1ib3VuZHMtbmVnYXRpdmUtY2hlY2stc3RydWN0dXJlLmh0bWwJKHJldmlzaW9uIDApCisr
KyBMYXlvdXRUZXN0cy9mYXN0L2pzL2RmZy1zdHJpbmctb3V0LW9mLWJvdW5kcy1uZWdhdGl2ZS1j
aGVjay1zdHJ1Y3R1cmUuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDEwIEBACis8IURP
Q1RZUEUgSFRNTCBQVUJMSUMgIi0vL0lFVEYvL0RURCBIVE1MLy9FTiI+Cis8aHRtbD4KKzxoZWFk
PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8L2hl
YWQ+Cis8Ym9keT4KKzxzY3JpcHQgc3JjPSJzY3JpcHQtdGVzdHMvZGZnLXN0cmluZy1vdXQtb2Yt
Ym91bmRzLW5lZ2F0aXZlLWNoZWNrLXN0cnVjdHVyZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNy
Yz0icmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+
CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2pzL2RmZy1zdHJpbmctb3V0LW9mLWJvdW5kcy1uZWdh
dGl2ZS1wcm90by12YWx1ZS1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMv
ZmFzdC9qcy9kZmctc3RyaW5nLW91dC1vZi1ib3VuZHMtbmVnYXRpdmUtcHJvdG8tdmFsdWUtZXhw
ZWN0ZWQudHh0CShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvZmFzdC9qcy9kZmctc3RyaW5n
LW91dC1vZi1ib3VuZHMtbmVnYXRpdmUtcHJvdG8tdmFsdWUtZXhwZWN0ZWQudHh0CSh3b3JraW5n
IGNvcHkpCkBAIC0wLDAgKzEsOSBAQAorVGVzdHMgd2hhdCBoYXBwZW5zIHdoZW4geW91IGRvIGEg
bmVnYXRpdmUgb3V0LW9mLWJvdW5kcyBhY2Nlc3Mgb24gYSBzdHJpbmcgd2hpbGUgdGhlIHByb3Rv
dHlwZSBoYXMgYSBuZWdhdGl2ZSBpbmRleGVkIHByb3BlcnR5LgorCitPbiBzdWNjZXNzLCB5b3Ug
d2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBD
T01QTEVURSIuCisKKworUGFzc2VkIHNvbWUgdGVzdHMgc2lsZW50bHkuCisKK1RFU1QgQ09NUExF
VEUKKwpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9qcy9kZmctc3RyaW5nLW91dC1vZi1ib3VuZHMt
bmVnYXRpdmUtcHJvdG8tdmFsdWUuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0
L2pzL2RmZy1zdHJpbmctb3V0LW9mLWJvdW5kcy1uZWdhdGl2ZS1wcm90by12YWx1ZS5odG1sCShy
ZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvZmFzdC9qcy9kZmctc3RyaW5nLW91dC1vZi1ib3Vu
ZHMtbmVnYXRpdmUtcHJvdG8tdmFsdWUuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDEw
IEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL0lFVEYvL0RURCBIVE1MLy9FTiI+Cis8aHRt
bD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3Jp
cHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxzY3JpcHQgc3JjPSJzY3JpcHQtdGVzdHMvZGZnLXN0cmlu
Zy1vdXQtb2YtYm91bmRzLW5lZ2F0aXZlLXByb3RvLXZhbHVlLmpzIj48L3NjcmlwdD4KKzxzY3Jp
cHQgc3JjPSJyZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwv
aHRtbD4KSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvanMvanNjLXRlc3QtbGlzdAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2pzL2pzYy10ZXN0LWxpc3QJKHJldmlzaW9uIDE1MjkzNykK
KysrIExheW91dFRlc3RzL2Zhc3QvanMvanNjLXRlc3QtbGlzdAkod29ya2luZyBjb3B5KQpAQCAt
MTk5LDYgKzE5OSwxMCBAQCBmYXN0L2pzL2RmZy1wdXRieXZhbC1jZmEtY2xvYmJlcgogZmFzdC9q
cy9kZmctcmVkdW5kYW50LWxvYWQtb2YtY2FwdHVyZWQtdmFyaWFibGUtcHJvdmVuLWNvbnN0YW50
CiBmYXN0L2pzL2RmZy1zaWRlLWVmZmVjdC1hc3NpZ25tZW50LW9zci1leGl0CiBmYXN0L2pzL2Rm
Zy1zcXJ0LWJhY2t3YXJkcy1wcm9wYWdhdGlvbgorZmFzdC9qcy9kZmctc3RyaW5nLW91dC1vZi1i
b3VuZHMtY2hlY2stc3RydWN0dXJlCitmYXN0L2pzL2RmZy1zdHJpbmctb3V0LW9mLWJvdW5kcy1j
c2UKK2Zhc3QvanMvZGZnLXN0cmluZy1vdXQtb2YtYm91bmRzLW5lZ2F0aXZlLWNoZWNrLXN0cnVj
dHVyZQorZmFzdC9qcy9kZmctc3RyaW5nLW91dC1vZi1ib3VuZHMtbmVnYXRpdmUtcHJvdG8tdmFs
dWUKIGZhc3QvanMvZGZnLXN0cmluZy1zdHJpY3RlcQogZmFzdC9qcy9kZmctdGVhci1vZmYtYXJn
dW1lbnRzLW5vdC1hY3RpdmF0aW9uCiBmYXN0L2pzL2RmZy10by1zdHJpbmctYmFkLXRvU3RyaW5n
CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2pzL3NjcmlwdC10ZXN0cy9kZmctc3RyaW5nLW91dC1v
Zi1ib3VuZHMtY2hlY2stc3RydWN0dXJlLmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zh
c3QvanMvc2NyaXB0LXRlc3RzL2RmZy1zdHJpbmctb3V0LW9mLWJvdW5kcy1jaGVjay1zdHJ1Y3R1
cmUuanMJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9mYXN0L2pzL3NjcmlwdC10ZXN0cy9k
Zmctc3RyaW5nLW91dC1vZi1ib3VuZHMtY2hlY2stc3RydWN0dXJlLmpzCSh3b3JraW5nIGNvcHkp
CkBAIC0wLDAgKzEsMjkgQEAKK2Rlc2NyaXB0aW9uKAorIlRlc3RzIHdoYXQgaGFwcGVucyB3aGVu
IHlvdSBkbyBhIG91dC1vZi1ib3VuZHMgYWNjZXNzIG9uIGEgc3RyaW5nIGFuZCB1c2UgdGhhdCB0
byBpbnN0YWxsIGEgZ2V0dGVyIHRoYXQgY2xvYmJlcnMgYSBzdHJ1Y3R1cmUuIgorKTsKKworZnVu
Y3Rpb24gZm9vKHMsIG8pIHsKKyAgICB2YXIgeCA9IG8uZjsKKyAgICBzWzQyXTsKKyAgICB2YXIg
eSA9IG8uZzsKKyAgICByZXR1cm4geCArIHk7Cit9CisKK25vSW5saW5lKGZvbyk7CitzaWxlbnRU
ZXN0UGFzcyA9IHRydWU7CisKK3ZhciB0aGVPYmplY3QgPSB7fTsKKwordmFyIGRpZEdldENhbGxl
ZCA9IGZhbHNlOworU3RyaW5nLnByb3RvdHlwZS5fX2RlZmluZUdldHRlcl9fKCI0MiIsIGZ1bmN0
aW9uKCkgeyBkaWRHZXRDYWxsZWQgPSB0cnVlOyBkZWxldGUgdGhlT2JqZWN0Lmc7IHRoZU9iamVj
dC5oID0gNDIgfSk7CisKK3doaWxlICh0ZXN0UnVubmVyLm51bWJlck9mREZHQ29tcGlsZXMoZm9v
KSA8IDEpIHsKKyAgICBkaWRHZXRDYWxsZWQgPSBmYWxzZTsKKyAgICBzaG91bGRCZSgiZm9vKFwi
aGVsbG9cIiwge2Y6MSwgZzoyfSkiLCAiMyIpOworICAgIHNob3VsZEJlKCJkaWRHZXRDYWxsZWQi
LCAidHJ1ZSIpOworfQorCit0aGVPYmplY3QgPSB7ZjoxLCBnOjJ9OworZGlkR2V0Q2FsbGVkID0g
ZmFsc2U7CitzaG91bGRCZSgiZm9vKFwiaGVsbG9cIiwgdGhlT2JqZWN0KSIsICIwLzAiKTsKK3No
b3VsZEJlKCJkaWRHZXRDYWxsZWQiLCAidHJ1ZSIpOwpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9q
cy9zY3JpcHQtdGVzdHMvZGZnLXN0cmluZy1vdXQtb2YtYm91bmRzLWNzZS5qcwo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2pzL3NjcmlwdC10ZXN0cy9kZmctc3RyaW5nLW91dC1vZi1i
b3VuZHMtY3NlLmpzCShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvZmFzdC9qcy9zY3JpcHQt
dGVzdHMvZGZnLXN0cmluZy1vdXQtb2YtYm91bmRzLWNzZS5qcwkod29ya2luZyBjb3B5KQpAQCAt
MCwwICsxLDIzIEBACitkZXNjcmlwdGlvbigKKyJUZXN0cyB3aGF0IGhhcHBlbnMgd2hlbiB5b3Ug
cHJlc2VudCBhIENTRSBvcHBvcnR1bml0eSBhY3Jvc3MgYW4gb3V0LW9mLWJvdW5kcyBzdHJpbmcg
YWNjZXNzLiIKKyk7CisKK2Z1bmN0aW9uIGZvbyhzLCBvKSB7CisgICAgdmFyIHggPSBvLmY7Cisg
ICAgc1swXTsKKyAgICB2YXIgeSA9IG8uZjsKKyAgICByZXR1cm4geCArIHk7Cit9CisKK25vSW5s
aW5lKGZvbyk7CitzaWxlbnRUZXN0UGFzcyA9IHRydWU7CisKK3ZhciB0aGVPYmplY3QgPSB7fTsK
KworU3RyaW5nLnByb3RvdHlwZS5fX2RlZmluZUdldHRlcl9fKCIwIiwgZnVuY3Rpb24oKSB7IHRo
ZU9iamVjdC5mID0gNDI7IH0pOworCit3aGlsZSAoIWRmZ0NvbXBpbGVkKHtmOmZvb30pKQorICAg
IHNob3VsZEJlKCJmb28oXCJcIiwge2Y6MX0pIiwgIjIiKTsKKwordGhlT2JqZWN0ID0ge2Y6MX07
CitzaG91bGRCZSgiZm9vKFwiXCIsIHRoZU9iamVjdCkiLCAiNDMiKTsKSW5kZXg6IExheW91dFRl
c3RzL2Zhc3QvanMvc2NyaXB0LXRlc3RzL2RmZy1zdHJpbmctb3V0LW9mLWJvdW5kcy1uZWdhdGl2
ZS1jaGVjay1zdHJ1Y3R1cmUuanMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9qcy9z
Y3JpcHQtdGVzdHMvZGZnLXN0cmluZy1vdXQtb2YtYm91bmRzLW5lZ2F0aXZlLWNoZWNrLXN0cnVj
dHVyZS5qcwkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2Zhc3QvanMvc2NyaXB0LXRlc3Rz
L2RmZy1zdHJpbmctb3V0LW9mLWJvdW5kcy1uZWdhdGl2ZS1jaGVjay1zdHJ1Y3R1cmUuanMJKHdv
cmtpbmcgY29weSkKQEAgLTAsMCArMSwyMyBAQAorZGVzY3JpcHRpb24oCisiVGVzdHMgd2hhdCBo
YXBwZW5zIHdoZW4geW91IGRvIGEgbmVnYXRpdmUgb3V0LW9mLWJvdW5kcyBhY2Nlc3Mgb24gYSBz
dHJpbmcgYW5kIHVzZSB0aGF0IHRvIGluc3RhbGwgYSBnZXR0ZXIgdGhhdCBjbG9iYmVycyBhIHN0
cnVjdHVyZS4iCispOworCitmdW5jdGlvbiBmb28ocywgbykgeworICAgIHZhciB4ID0gby5mOwor
ICAgIHNbLTFdOworICAgIHZhciB5ID0gby5nOworICAgIHJldHVybiB4ICsgeTsKK30KKworbm9J
bmxpbmUoZm9vKTsKK3NpbGVudFRlc3RQYXNzID0gdHJ1ZTsKKwordmFyIHRoZU9iamVjdCA9IHt9
OworCitTdHJpbmcucHJvdG90eXBlLl9fZGVmaW5lR2V0dGVyX18oIi0xIiwgZnVuY3Rpb24oKSB7
IGRlbGV0ZSB0aGVPYmplY3QuZzsgfSk7CisKK3doaWxlICh0ZXN0UnVubmVyLm51bWJlck9mREZH
Q29tcGlsZXMoZm9vKSA8IDEpCisgICAgc2hvdWxkQmUoImZvbyhcImhlbGxvXCIsIHtmOjEsIGc6
Mn0pIiwgIjMiKTsKKwordGhlT2JqZWN0ID0ge2Y6MSwgZzoyfTsKK3Nob3VsZEJlKCJmb28oXCJo
ZWxsb1wiLCB0aGVPYmplY3QpIiwgIjAvMCIpOwpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9qcy9z
Y3JpcHQtdGVzdHMvZGZnLXN0cmluZy1vdXQtb2YtYm91bmRzLW5lZ2F0aXZlLXByb3RvLXZhbHVl
LmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvanMvc2NyaXB0LXRlc3RzL2RmZy1z
dHJpbmctb3V0LW9mLWJvdW5kcy1uZWdhdGl2ZS1wcm90by12YWx1ZS5qcwkocmV2aXNpb24gMCkK
KysrIExheW91dFRlc3RzL2Zhc3QvanMvc2NyaXB0LXRlc3RzL2RmZy1zdHJpbmctb3V0LW9mLWJv
dW5kcy1uZWdhdGl2ZS1wcm90by12YWx1ZS5qcwkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDE2
IEBACitkZXNjcmlwdGlvbigKKyJUZXN0cyB3aGF0IGhhcHBlbnMgd2hlbiB5b3UgZG8gYSBuZWdh
dGl2ZSBvdXQtb2YtYm91bmRzIGFjY2VzcyBvbiBhIHN0cmluZyB3aGlsZSB0aGUgcHJvdG90eXBl
IGhhcyBhIG5lZ2F0aXZlIGluZGV4ZWQgcHJvcGVydHkuIgorKTsKKworZnVuY3Rpb24gZm9vKHMp
IHsKKyAgICByZXR1cm4gc1stMV07Cit9CisKK25vSW5saW5lKGZvbyk7CitzaWxlbnRUZXN0UGFz
cyA9IHRydWU7CisKK1N0cmluZy5wcm90b3R5cGVbLTFdID0gImhlbGxvIjsKKworZm9yICh2YXIg
aSA9IDA7IGkgPCAyOyBpID0gZGZnSW5jcmVtZW50KHtmOmZvbywgaTppICsgMSwgbjoxLCBjb21w
aWxlczoyfSkpCisgICAgc2hvdWxkQmUoImZvbyhcImhlbGxvXCIpIiwgIlwiaGVsbG9cIiIpOwor
Cg==
</data>
<flag name="review"
          id="228948"
          type_id="1"
          status="+"
          setter="ggaren"
    />
          </attachment>
      

    </bug>

</bugzilla>