<?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>155003</bug_id>
          
          <creation_ts>2016-03-03 19:22:05 -0800</creation_ts>
          <short_desc>DFG/FTL should inline accesses to RegExpObject::m_lastIndex</short_desc>
          <delta_ts>2016-03-03 22:36:46 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>JavaScriptCore</component>
          <version>WebKit 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>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Filip Pizlo">fpizlo</reporter>
          <assigned_to name="Filip Pizlo">fpizlo</assigned_to>
          <cc>benjamin</cc>
    
    <cc>commit-queue</cc>
    
    <cc>ggaren</cc>
    
    <cc>keith_miller</cc>
    
    <cc>mark.lam</cc>
    
    <cc>msaboff</cc>
    
    <cc>saam</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1170463</commentid>
    <comment_count>0</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2016-03-03 19:22:05 -0800</bug_when>
    <thetext>Patch forthcoming.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1170464</commentid>
    <comment_count>1</comment_count>
      <attachid>272818</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2016-03-03 19:23:12 -0800</bug_when>
    <thetext>Created attachment 272818
work in progress</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1170496</commentid>
    <comment_count>2</comment_count>
      <attachid>272827</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2016-03-03 21:00:02 -0800</bug_when>
    <thetext>Created attachment 272827
the patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1170514</commentid>
    <comment_count>3</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2016-03-03 21:29:30 -0800</bug_when>
    <thetext>I have a fix for the debug build.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1170517</commentid>
    <comment_count>4</comment_count>
      <attachid>272831</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2016-03-03 21:52:21 -0800</bug_when>
    <thetext>Created attachment 272831
the patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1170526</commentid>
    <comment_count>5</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2016-03-03 22:36:46 -0800</bug_when>
    <thetext>Landed in http://trac.webkit.org/changeset/197549</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>272818</attachid>
            <date>2016-03-03 19:23:12 -0800</date>
            <delta_ts>2016-03-03 21:00:02 -0800</delta_ts>
            <desc>work in progress</desc>
            <filename>blah.patch</filename>
            <type>text/plain</type>
            <size>18801</size>
            <attacher name="Filip Pizlo">fpizlo</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTk3NTQzKQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDUyIEBA
CisyMDE2LTAzLTAzICBGaWxpcCBQaXpsbyAgPGZwaXpsb0BhcHBsZS5jb20+CisKKyAgICAgICAg
REZHL0ZUTCBzaG91bGQgaW5saW5lIGFjY2Vzc2VzIHRvIFJlZ0V4cE9iamVjdDo6bV9sYXN0SW5k
ZXgKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1NTAw
MworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFdvcmsg
aW4gcHJvZ3Jlc3MuCisKKyAgICAgICAgKiBkZmcvREZHQWJzdHJhY3RIZWFwLmg6CisgICAgICAg
ICogZGZnL0RGR0Fic3RyYWN0SW50ZXJwcmV0ZXJJbmxpbmVzLmg6CisgICAgICAgIChKU0M6OkRG
Rzo6QWJzdHJhY3RJbnRlcnByZXRlcjxBYnN0cmFjdFN0YXRlVHlwZT46OmV4ZWN1dGVFZmZlY3Rz
KToKKyAgICAgICAgKiBkZmcvREZHQ2xvYmJlcml6ZS5oOgorICAgICAgICAoSlNDOjpERkc6OmNs
b2JiZXJpemUpOgorICAgICAgICAqIGRmZy9ERkdEb2VzR0MuY3BwOgorICAgICAgICAoSlNDOjpE
Rkc6OmRvZXNHQyk6CisgICAgICAgICogZGZnL0RGR0ZpeHVwUGhhc2UuY3BwOgorICAgICAgICAo
SlNDOjpERkc6OkZpeHVwUGhhc2U6OmZpeHVwTm9kZSk6CisgICAgICAgICogZGZnL0RGR0hlYXBM
b2NhdGlvbi5oOgorICAgICAgICAqIGRmZy9ERkdOb2RlVHlwZS5oOgorICAgICAgICAqIGRmZy9E
RkdTYWZlVG9FeGVjdXRlLmg6CisgICAgICAgIChKU0M6OkRGRzo6c2FmZVRvRXhlY3V0ZSk6Cisg
ICAgICAgICogZGZnL0RGR1NwZWN1bGF0aXZlSklULmNwcDoKKyAgICAgICAgKEpTQzo6REZHOjpT
cGVjdWxhdGl2ZUpJVDo6Y29tcGlsZVB1dEFjY2Vzc29yQnlWYWwpOgorICAgICAgICAoSlNDOjpE
Rkc6OlNwZWN1bGF0aXZlSklUOjpjb21waWxlR2V0UmVnRXhwT2JqZWN0TGFzdEluZGV4KToKKyAg
ICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZVNldFJlZ0V4cE9iamVjdExh
c3RJbmRleCk6CisgICAgICAgICogZGZnL0RGR1NwZWN1bGF0aXZlSklULmg6CisgICAgICAgICog
ZGZnL0RGR1NwZWN1bGF0aXZlSklUMzJfNjQuY3BwOgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1
bGF0aXZlSklUOjpjb21waWxlKToKKyAgICAgICAgKiBkZmcvREZHU3BlY3VsYXRpdmVKSVQ2NC5j
cHA6CisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGUpOgorICAgICAg
ICAqIGRmZy9ERkdTdG9yZUJhcnJpZXJJbnNlcnRpb25QaGFzZS5jcHA6CisgICAgICAgICogZnRs
L0ZUTEFic3RyYWN0SGVhcFJlcG9zaXRvcnkuY3BwOgorICAgICAgICAqIGZ0bC9GVExBYnN0cmFj
dEhlYXBSZXBvc2l0b3J5Lmg6CisgICAgICAgICogZnRsL0ZUTENhcGFiaWxpdGllcy5jcHA6Cisg
ICAgICAgIChKU0M6OkZUTDo6Y2FuQ29tcGlsZSk6CisgICAgICAgICogZnRsL0ZUTExvd2VyREZH
VG9CMy5jcHA6CisgICAgICAgIChKU0M6OkZUTDo6REZHOjpMb3dlckRGR1RvQjM6OmNvbXBpbGVO
b2RlKToKKyAgICAgICAgKEpTQzo6RlRMOjpERkc6Okxvd2VyREZHVG9CMzo6Y29tcGlsZVN0cmlu
Z1JlcGxhY2UpOgorICAgICAgICAoSlNDOjpGVEw6OkRGRzo6TG93ZXJERkdUb0IzOjpjb21waWxl
R2V0UmVnRXhwT2JqZWN0TGFzdEluZGV4KToKKyAgICAgICAgKEpTQzo6RlRMOjpERkc6Okxvd2Vy
REZHVG9CMzo6Y29tcGlsZVNldFJlZ0V4cE9iamVjdExhc3RJbmRleCk6CisgICAgICAgIChKU0M6
OkZUTDo6REZHOjpMb3dlckRGR1RvQjM6OmRpZE92ZXJmbG93U3RhY2spOgorICAgICAgICAoSlND
OjpGVEw6OkRGRzo6TG93ZXJERkdUb0IzOjpsb3dPYmplY3QpOgorICAgICAgICAoSlNDOjpGVEw6
OkRGRzo6TG93ZXJERkdUb0IzOjpsb3dSZWdFeHBPYmplY3QpOgorICAgICAgICAoSlNDOjpGVEw6
OkRGRzo6TG93ZXJERkdUb0IzOjpsb3dTdHJpbmcpOgorICAgICAgICAqIHJ1bnRpbWUvUmVnRXhw
T2JqZWN0Lmg6CisgICAgICAgIChKU0M6OlJlZ0V4cE9iamVjdDo6Y3JlYXRlU3RydWN0dXJlKToK
KyAgICAgICAgKEpTQzo6UmVnRXhwT2JqZWN0OjpvZmZzZXRPZkxhc3RJbmRleCk6CisKIDIwMTYt
MDMtMDMgIEtlaXRoIE1pbGxlciAgPGtlaXRoX21pbGxlckBhcHBsZS5jb20+CiAKICAgICAgICAg
SlNBcnJheUJ1ZmZlcnMgc2hvdWxkIGJlIGNvbGxlY3RlZCBsZXNzIGFnZ3Jlc3NpdmVseQpJbmRl
eDogU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdBYnN0cmFjdEhlYXAuaAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0Fic3RyYWN0SGVhcC5oCShyZXZpc2lv
biAxOTc1NDIpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0Fic3RyYWN0SGVhcC5o
CSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAx
My0yMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykg
MjAxMy0yMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucwpAQCAtNTgsNiArNTgsNyBAQCBuYW1lc3BhY2UgSlNDIHsgbmFtZXNw
YWNlIERGRyB7CiAgICAgbWFjcm8oSlNDZWxsX3R5cGVJbmZvVHlwZSkgXAogICAgIG1hY3JvKEpT
T2JqZWN0X2J1dHRlcmZseSkgXAogICAgIG1hY3JvKEpTUHJvcGVydHlOYW1lRW51bWVyYXRvcl9j
YWNoZWRQcm9wZXJ0eU5hbWVzKSBcCisgICAgbWFjcm8oUmVnRXhwT2JqZWN0X2xhc3RJbmRleCkg
XAogICAgIG1hY3JvKE5hbWVkUHJvcGVydGllcykgXAogICAgIG1hY3JvKEluZGV4ZWRJbnQzMlBy
b3BlcnRpZXMpIFwKICAgICBtYWNybyhJbmRleGVkRG91YmxlUHJvcGVydGllcykgXApJbmRleDog
U291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdBYnN0cmFjdEludGVycHJldGVySW5saW5lcy5o
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQWJzdHJhY3RJbnRl
cnByZXRlcklubGluZXMuaAkocmV2aXNpb24gMTk3NTQyKQorKysgU291cmNlL0phdmFTY3JpcHRD
b3JlL2RmZy9ERkdBYnN0cmFjdEludGVycHJldGVySW5saW5lcy5oCSh3b3JraW5nIGNvcHkpCkBA
IC0xODgyLDYgKzE4ODIsMTMgQEAgYm9vbCBBYnN0cmFjdEludGVycHJldGVyPEFic3RyYWN0U3Rh
dGVUeQogICAgICAgICAgICAgCiAgICAgY2FzZSBQdXRDbG9zdXJlVmFyOgogICAgICAgICBicmVh
azsKKworICAgIGNhc2UgR2V0UmVnRXhwT2JqZWN0TGFzdEluZGV4OgorICAgICAgICBmb3JOb2Rl
KG5vZGUpLm1ha2VIZWFwVG9wKCk7CisgICAgICAgIGJyZWFrOworCisgICAgY2FzZSBTZXRSZWdF
eHBPYmplY3RMYXN0SW5kZXg6CisgICAgICAgIGJyZWFrOwogICAgICAgICAKICAgICBjYXNlIEdl
dEZyb21Bcmd1bWVudHM6CiAgICAgICAgIGZvck5vZGUobm9kZSkubWFrZUhlYXBUb3AoKTsKSW5k
ZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQ2xvYmJlcml6ZS5oCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQ2xvYmJlcml6ZS5oCShyZXZpc2lvbiAx
OTc1NDIpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0Nsb2JiZXJpemUuaAkod29y
a2luZyBjb3B5KQpAQCAtOTA4LDYgKzkwOCwxNiBAQCB2b2lkIGNsb2JiZXJpemUoR3JhcGgmIGdy
YXBoLCBOb2RlKiBub2RlCiAgICAgICAgIHdyaXRlKEFic3RyYWN0SGVhcChTY29wZVByb3BlcnRp
ZXMsIG5vZGUtPnNjb3BlT2Zmc2V0KCkub2Zmc2V0KCkpKTsKICAgICAgICAgZGVmKEhlYXBMb2Nh
dGlvbihDbG9zdXJlVmFyaWFibGVMb2MsIEFic3RyYWN0SGVhcChTY29wZVByb3BlcnRpZXMsIG5v
ZGUtPnNjb3BlT2Zmc2V0KCkub2Zmc2V0KCkpLCBub2RlLT5jaGlsZDEoKSksIExhenlOb2RlKG5v
ZGUtPmNoaWxkMigpLm5vZGUoKSkpOwogICAgICAgICByZXR1cm47CisKKyAgICBjYXNlIEdldFJl
Z0V4cE9iamVjdExhc3RJbmRleDoKKyAgICAgICAgcmVhZChSZWdFeHBPYmplY3RfbGFzdEluZGV4
KTsKKyAgICAgICAgZGVmKEhlYXBMb2NhdGlvbihSZWdFeHBPYmplY3RMYXN0SW5kZXhMb2MsIFJl
Z0V4cE9iamVjdF9sYXN0SW5kZXgsIG5vZGUtPmNoaWxkMSgpLCBMYXp5Tm9kZShub2RlKSkpOwor
ICAgICAgICByZXR1cm47CisKKyAgICBjYXNlIFNldFJlZ0V4cE9iamVjdExhc3RJbmRleDoKKyAg
ICAgICAgd3JpdGUoUmVnRXhwT2JqZWN0X2xhc3RJbmRleCk7CisgICAgICAgIGRlZihIZWFwTG9j
YXRpb24oUmVnRXhwT2JqZWN0TGFzdEluZGV4TG9jLCBSZWdFeHBPYmplY3RfbGFzdEluZGV4LCBu
b2RlLT5jaGlsZDEoKSwgTGF6eU5vZGUobm9kZS0+Y2hpbGQyKCkubm9kZSgpKSkpOworICAgICAg
ICByZXR1cm47CiAgICAgICAgIAogICAgIGNhc2UgR2V0RnJvbUFyZ3VtZW50czogewogICAgICAg
ICBBYnN0cmFjdEhlYXAgaGVhcChEaXJlY3RBcmd1bWVudHNQcm9wZXJ0aWVzLCBub2RlLT5jYXB0
dXJlZEFyZ3VtZW50c09mZnNldCgpLm9mZnNldCgpKTsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9kZmcvREZHRG9lc0dDLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvZGZnL0RGR0RvZXNHQy5jcHAJKHJldmlzaW9uIDE5NzU0MikKKysrIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9kZmcvREZHRG9lc0dDLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTEzLDYgKzExMyw4
IEBAIGJvb2wgZG9lc0dDKEdyYXBoJiBncmFwaCwgTm9kZSogbm9kZSkKICAgICBjYXNlIFNraXBT
Y29wZToKICAgICBjYXNlIEdldENsb3N1cmVWYXI6CiAgICAgY2FzZSBQdXRDbG9zdXJlVmFyOgor
ICAgIGNhc2UgR2V0UmVnRXhwT2JqZWN0TGFzdEluZGV4OgorICAgIGNhc2UgU2V0UmVnRXhwT2Jq
ZWN0TGFzdEluZGV4OgogICAgIGNhc2UgR2V0R2xvYmFsVmFyOgogICAgIGNhc2UgR2V0R2xvYmFs
TGV4aWNhbFZhcmlhYmxlOgogICAgIGNhc2UgUHV0R2xvYmFsVmFyaWFibGU6CkluZGV4OiBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0ZpeHVwUGhhc2UuY3BwCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHRml4dXBQaGFzZS5jcHAJKHJldmlzaW9uIDE5NzU0
MikKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHRml4dXBQaGFzZS5jcHAJKHdvcmtp
bmcgY29weSkKQEAgLTEwNzIsMTEgKzEwNzIsMjEgQEAgcHJpdmF0ZToKICAgICAgICAgICAgICAg
ICAmJiAhbV9ncmFwaC5oYXNFeGl0U2l0ZShub2RlLT5vcmlnaW4uc2VtYW50aWMsIEJhZENhY2hl
KQogICAgICAgICAgICAgICAgICYmICFtX2dyYXBoLmhhc0V4aXRTaXRlKG5vZGUtPm9yaWdpbi5z
ZW1hbnRpYywgQmFkSW5kZXhpbmdUeXBlKQogICAgICAgICAgICAgICAgICYmICFtX2dyYXBoLmhh
c0V4aXRTaXRlKG5vZGUtPm9yaWdpbi5zZW1hbnRpYywgRXhvdGljT2JqZWN0TW9kZSkpIHsKKyAg
ICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICBhdXRvIHVpZCA9IG1fZ3JhcGguaWRlbnRp
ZmllcnMoKVtub2RlLT5pZGVudGlmaWVyTnVtYmVyKCldOworICAgICAgICAgICAgICAgIAogICAg
ICAgICAgICAgICAgIGlmICh1aWQgPT0gdm0oKS5wcm9wZXJ0eU5hbWVzLT5sZW5ndGguaW1wbCgp
KSB7CiAgICAgICAgICAgICAgICAgICAgIGF0dGVtcHRUb01ha2VHZXRBcnJheUxlbmd0aChub2Rl
KTsKICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICAgfQorCisgICAg
ICAgICAgICAgICAgaWYgKHVpZCA9PSB2bSgpLnByb3BlcnR5TmFtZXMtPmxhc3RJbmRleC5pbXBs
KCkKKyAgICAgICAgICAgICAgICAgICAgJiYgbm9kZS0+Y2hpbGQxKCktPnNob3VsZFNwZWN1bGF0
ZVJlZ0V4cE9iamVjdCgpKSB7CisgICAgICAgICAgICAgICAgICAgIG5vZGUtPnNldE9wKEdldFJl
Z0V4cE9iamVjdExhc3RJbmRleCk7CisgICAgICAgICAgICAgICAgICAgIG5vZGUtPmNsZWFyRmxh
Z3MoTm9kZU11c3RHZW5lcmF0ZSk7CisgICAgICAgICAgICAgICAgICAgIGZpeEVkZ2U8UmVnRXhw
T2JqZWN0VXNlPihub2RlLT5jaGlsZDEoKSk7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOwor
ICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgIH0KIAogICAgICAgICAgICAgaWYgKG5vZGUt
PmNoaWxkMSgpLT5zaG91bGRTcGVjdWxhdGVDZWxsKCkpCkBAIC0xMDg3LDYgKzEwOTcsMjMgQEAg
cHJpdmF0ZToKICAgICAgICAgY2FzZSBQdXRCeUlkOgogICAgICAgICBjYXNlIFB1dEJ5SWRGbHVz
aDoKICAgICAgICAgY2FzZSBQdXRCeUlkRGlyZWN0OiB7CisgICAgICAgICAgICBpZiAobm9kZS0+
Y2hpbGQxKCktPnNob3VsZFNwZWN1bGF0ZUNlbGxPck90aGVyKCkKKyAgICAgICAgICAgICAgICAm
JiAhbV9ncmFwaC5oYXNFeGl0U2l0ZShub2RlLT5vcmlnaW4uc2VtYW50aWMsIEJhZFR5cGUpCisg
ICAgICAgICAgICAgICAgJiYgIW1fZ3JhcGguaGFzRXhpdFNpdGUobm9kZS0+b3JpZ2luLnNlbWFu
dGljLCBCYWRDYWNoZSkKKyAgICAgICAgICAgICAgICAmJiAhbV9ncmFwaC5oYXNFeGl0U2l0ZShu
b2RlLT5vcmlnaW4uc2VtYW50aWMsIEJhZEluZGV4aW5nVHlwZSkKKyAgICAgICAgICAgICAgICAm
JiAhbV9ncmFwaC5oYXNFeGl0U2l0ZShub2RlLT5vcmlnaW4uc2VtYW50aWMsIEV4b3RpY09iamVj
dE1vZGUpKSB7CisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgYXV0byB1aWQgPSBt
X2dyYXBoLmlkZW50aWZpZXJzKClbbm9kZS0+aWRlbnRpZmllck51bWJlcigpXTsKKyAgICAgICAg
ICAgICAgICAKKyAgICAgICAgICAgICAgICBpZiAodWlkID09IHZtKCkucHJvcGVydHlOYW1lcy0+
bGFzdEluZGV4LmltcGwoKQorICAgICAgICAgICAgICAgICAgICAmJiBub2RlLT5jaGlsZDEoKS0+
c2hvdWxkU3BlY3VsYXRlUmVnRXhwT2JqZWN0KCkpIHsKKyAgICAgICAgICAgICAgICAgICAgbm9k
ZS0+c2V0T3AoU2V0UmVnRXhwT2JqZWN0TGFzdEluZGV4KTsKKyAgICAgICAgICAgICAgICAgICAg
Zml4RWRnZTxSZWdFeHBPYmplY3RVc2U+KG5vZGUtPmNoaWxkMSgpKTsKKyAgICAgICAgICAgICAg
ICAgICAgc3BlY3VsYXRlRm9yQmFycmllcihub2RlLT5jaGlsZDIoKSk7CisgICAgICAgICAgICAg
ICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAg
ICAgIAogICAgICAgICAgICAgZml4RWRnZTxDZWxsVXNlPihub2RlLT5jaGlsZDEoKSk7CiAgICAg
ICAgICAgICBicmVhazsKICAgICAgICAgfQpAQCAtMTI2Nyw2ICsxMjk0LDggQEAgcHJpdmF0ZToK
ICAgICAgICAgY2FzZSBLaWxsU3RhY2s6CiAgICAgICAgIGNhc2UgR2V0U3RhY2s6CiAgICAgICAg
IGNhc2UgU3RvcmVCYXJyaWVyOgorICAgICAgICBjYXNlIEdldFJlZ0V4cE9iamVjdExhc3RJbmRl
eDoKKyAgICAgICAgY2FzZSBTZXRSZWdFeHBPYmplY3RMYXN0SW5kZXg6CiAgICAgICAgICAgICAv
LyBUaGVzZSBhcmUganVzdCBub2RlcyB0aGF0IHdlIGRvbid0IGN1cnJlbnRseSBleHBlY3QgdG8g
c2VlIGR1cmluZyBmaXh1cC4KICAgICAgICAgICAgIC8vIElmIHdlIGV2ZXIgd2FudGVkIHRvIGlu
c2VydCB0aGVtIHByaW9yIHRvIGZpeHVwLCB0aGVuIHdlIGp1c3QgaGF2ZSB0byBjcmVhdGUKICAg
ICAgICAgICAgIC8vIGZpeHVwIHJ1bGVzIGZvciB0aGVtLgpJbmRleDogU291cmNlL0phdmFTY3Jp
cHRDb3JlL2RmZy9ERkdIZWFwTG9jYXRpb24uaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvZGZnL0RGR0hlYXBMb2NhdGlvbi5oCShyZXZpc2lvbiAxOTc1NDIpCisrKyBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0hlYXBMb2NhdGlvbi5oCSh3b3JraW5nIGNvcHkpCkBA
IC01NCw2ICs1NCw3IEBAIGVudW0gTG9jYXRpb25LaW5kIHsKICAgICBJc0Z1bmN0aW9uTG9jLAog
ICAgIElzT2JqZWN0T3JOdWxsTG9jLAogICAgIE5hbWVkUHJvcGVydHlMb2MsCisgICAgUmVnRXhw
T2JqZWN0TGFzdEluZGV4TG9jLAogICAgIFNldHRlckxvYywKICAgICBTdHJ1Y3R1cmVMb2MsCiAg
ICAgVHlwZWRBcnJheUJ5dGVPZmZzZXRMb2MsCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
ZGZnL0RGR05vZGVUeXBlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2Rm
Zy9ERkdOb2RlVHlwZS5oCShyZXZpc2lvbiAxOTc1NDIpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvZGZnL0RGR05vZGVUeXBlLmgJKHdvcmtpbmcgY29weSkKQEAgLTIxOSw2ICsyMTksOCBAQCBu
YW1lc3BhY2UgSlNDIHsgbmFtZXNwYWNlIERGRyB7CiAgICAgbWFjcm8oUHV0R2xvYmFsVmFyaWFi
bGUsIE5vZGVNdXN0R2VuZXJhdGUpIFwKICAgICBtYWNybyhOb3RpZnlXcml0ZSwgTm9kZU11c3RH
ZW5lcmF0ZSkgXAogICAgIG1hY3JvKFZhckluamVjdGlvbldhdGNocG9pbnQsIE5vZGVNdXN0R2Vu
ZXJhdGUpIFwKKyAgICBtYWNybyhHZXRSZWdFeHBPYmplY3RMYXN0SW5kZXgsIE5vZGVSZXN1bHRK
UykgXAorICAgIG1hY3JvKFNldFJlZ0V4cE9iamVjdExhc3RJbmRleCwgTm9kZU11c3RHZW5lcmF0
ZSkgXAogICAgIG1hY3JvKENoZWNrQ2VsbCwgTm9kZU11c3RHZW5lcmF0ZSkgXAogICAgIG1hY3Jv
KENoZWNrTm90RW1wdHksIE5vZGVNdXN0R2VuZXJhdGUpIFwKICAgICBtYWNybyhDaGVja0JhZENl
bGwsIE5vZGVNdXN0R2VuZXJhdGUpIFwKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcv
REZHU2FmZVRvRXhlY3V0ZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9k
ZmcvREZHU2FmZVRvRXhlY3V0ZS5oCShyZXZpc2lvbiAxOTc1NDIpCisrKyBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvZGZnL0RGR1NhZmVUb0V4ZWN1dGUuaAkod29ya2luZyBjb3B5KQpAQCAtMzMyLDYg
KzMzMiw4IEBAIGJvb2wgc2FmZVRvRXhlY3V0ZShBYnN0cmFjdFN0YXRlVHlwZSYgc3QKICAgICBj
YXNlIEZvcndhcmRWYXJhcmdzOgogICAgIGNhc2UgQ29weVJlc3Q6CiAgICAgY2FzZSBTdHJpbmdS
ZXBsYWNlOgorICAgIGNhc2UgR2V0UmVnRXhwT2JqZWN0TGFzdEluZGV4OgorICAgIGNhc2UgU2V0
UmVnRXhwT2JqZWN0TGFzdEluZGV4OgogICAgICAgICByZXR1cm4gdHJ1ZTsKIAogICAgIGNhc2Ug
Qm90dG9tVmFsdWU6CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0
aXZlSklUMzJfNjQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcv
REZHU3BlY3VsYXRpdmVKSVQzMl82NC5jcHAJKHJldmlzaW9uIDE5NzU0MikKKysrIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQzMl82NC5jcHAJKHdvcmtpbmcgY29w
eSkKQEAgLTI5NzAsNiArMjk3MCwxNiBAQCB2b2lkIFNwZWN1bGF0aXZlSklUOjpjb21waWxlKE5v
ZGUqIG5vZGUpCiAgICAgICAgIGNlbGxSZXN1bHQocmVzdWx0UGF5bG9hZC5ncHIoKSwgbm9kZSk7
CiAgICAgICAgIGJyZWFrOwogICAgIH0KKworICAgIGNhc2UgR2V0UmVnRXhwT2JqZWN0TGFzdElu
ZGV4OiB7CisgICAgICAgIGNvbXBpbGVHZXRSZWdFeHBPYmplY3RMYXN0SW5kZXgobm9kZSk7Cisg
ICAgICAgIGJyZWFrOworICAgIH0KKyAgICAgICAgCisgICAgY2FzZSBTZXRSZWdFeHBPYmplY3RM
YXN0SW5kZXg6IHsKKyAgICAgICAgY29tcGlsZVNldFJlZ0V4cE9iamVjdExhc3RJbmRleChub2Rl
KTsKKyAgICAgICAgYnJlYWs7CisgICAgfQogICAgICAgICAKICAgICBjYXNlIEFycmF5UHVzaDog
ewogICAgICAgICBBU1NFUlQobm9kZS0+YXJyYXlNb2RlKCkuaXNKU0FycmF5KCkpOwpJbmRleDog
U291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVDY0LmNwcAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklUNjQuY3Bw
CShyZXZpc2lvbiAxOTc1NDIpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1
bGF0aXZlSklUNjQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zMDg4LDYgKzMwODgsMTYgQEAgdm9p
ZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZShOb2RlKiBub2RlKQogICAgICAgICBicmVhazsKICAg
ICB9CiAgICAgICAgIAorICAgIGNhc2UgR2V0UmVnRXhwT2JqZWN0TGFzdEluZGV4OiB7CisgICAg
ICAgIGNvbXBpbGVHZXRSZWdFeHBPYmplY3RMYXN0SW5kZXgobm9kZSk7CisgICAgICAgIGJyZWFr
OworICAgIH0KKyAgICAgICAgCisgICAgY2FzZSBTZXRSZWdFeHBPYmplY3RMYXN0SW5kZXg6IHsK
KyAgICAgICAgY29tcGlsZVNldFJlZ0V4cE9iamVjdExhc3RJbmRleChub2RlKTsKKyAgICAgICAg
YnJlYWs7CisgICAgfQorICAgICAgICAKICAgICBjYXNlIEFycmF5UHVzaDogewogICAgICAgICBB
U1NFUlQobm9kZS0+YXJyYXlNb2RlKCkuaXNKU0FycmF5KCkpOwogICAgICAgICAKSW5kZXg6IFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQuY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQuY3BwCShyZXZp
c2lvbiAxOTc1NDIpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZl
SklULmNwcAkod29ya2luZyBjb3B5KQpAQCAtNzUxOCw2ICs3NTE4LDI4IEBAIHZvaWQgU3BlY3Vs
YXRpdmVKSVQ6OmNvbXBpbGVQdXRBY2Nlc3NvckIKICAgICBub1Jlc3VsdChub2RlKTsKIH0KIAor
dm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZUdldFJlZ0V4cE9iamVjdExhc3RJbmRleChOb2Rl
KiBub2RlKQoreworICAgIFNwZWN1bGF0ZUNlbGxPcGVyYW5kIHJlZ0V4cCh0aGlzLCBub2RlLT5j
aGlsZDEoKSk7CisgICAgSlNWYWx1ZVJlZ3NUZW1wb3JhcnkgcmVzdWx0KHRoaXMpOworICAgIEdQ
UlJlZyByZWdFeHBHUFIgPSByZWdFeHAuZ3ByKCk7CisgICAgSlNWYWx1ZVJlZ3MgcmVzdWx0UmVn
cyA9IHJlc3VsdC5yZWdzKCk7CisgICAgc3BlY3VsYXRlUmVnRXhwT2JqZWN0KG5vZGUtPmNoaWxk
MSgpLCByZWdFeHBHUFIpOworICAgIG1faml0LmxvYWRWYWx1ZShKSVRDb21waWxlcjo6QWRkcmVz
cyhyZWdFeHBHUFIsIFJlZ0V4cE9iamVjdDo6b2Zmc2V0T2ZMYXN0SW5kZXgoKSksIHJlc3VsdFJl
Z3MpOworICAgIGpzVmFsdWVSZXN1bHQocmVzdWx0UmVncywgdGhpcyk7Cit9CisKK3ZvaWQgU3Bl
Y3VsYXRpdmVKSVQ6OmNvbXBpbGVTZXRSZWdFeHBPYmplY3RMYXN0SW5kZXgoTm9kZSogbm9kZSkK
K3sKKyAgICBTcGVjdWxhdGVDZWxsT3BlcmFuZCByZWdFeHAodGhpcywgbm9kZS0+Y2hpbGQxKCkp
OworICAgIEpTVmFsdWVPcGVyYW5kIHZhbHVlKHRoaXMsIG5vZGUtPmNoaWxkMigpKTsKKyAgICBH
UFJSZWcgcmVnRXhwR1BSID0gcmVnRXhwLmdwcigpOworICAgIEpTVmFsdWVSZWdzIHZhbHVlUmVn
cyA9IHZhbHVlLmpzVmFsdWVSZWdzKCk7CisgICAgc3BlY3VsYXRlUmVnRXhwT2JqZWN0KG5vZGUt
PmNoaWxkMSgpLCByZWdFeHBHUFIpOworICAgIG1faml0LnN0b3JlVmFsdWUodmFsdWVSZWdzLCBK
SVRDb21waWxlcjo6QWRkcmVzcyhyZWdFeHBHUFIsIFJlZ0V4cE9iamVjdDo6b2Zmc2V0T2ZMYXN0
SW5kZXgoKSkpOworICAgIG5vUmVzdWx0KHRoaXMpOworfQorCiB9IH0gLy8gbmFtZXNwYWNlIEpT
Qzo6REZHCiAKICNlbmRpZgpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVj
dWxhdGl2ZUpJVC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZH
U3BlY3VsYXRpdmVKSVQuaAkocmV2aXNpb24gMTk3NTQyKQorKysgU291cmNlL0phdmFTY3JpcHRD
b3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVC5oCSh3b3JraW5nIGNvcHkpCkBAIC0yMzMzLDYgKzIz
MzMsOCBAQCBwdWJsaWM6CiAgICAgdm9pZCBjb21waWxlUHV0QWNjZXNzb3JCeUlkKE5vZGUqKTsK
ICAgICB2b2lkIGNvbXBpbGVQdXRHZXR0ZXJTZXR0ZXJCeUlkKE5vZGUqKTsKICAgICB2b2lkIGNv
bXBpbGVQdXRBY2Nlc3NvckJ5VmFsKE5vZGUqKTsKKyAgICB2b2lkIGNvbXBpbGVHZXRSZWdFeHBP
YmplY3RMYXN0SW5kZXgoTm9kZSopOworICAgIHZvaWQgY29tcGlsZVNldFJlZ0V4cE9iamVjdExh
c3RJbmRleChOb2RlKik7CiAgICAgCiAgICAgdm9pZCBtb3ZlVHJ1ZVRvKEdQUlJlZyk7CiAgICAg
dm9pZCBtb3ZlRmFsc2VUbyhHUFJSZWcpOwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2Rm
Zy9ERkdTdG9yZUJhcnJpZXJJbnNlcnRpb25QaGFzZS5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTdG9yZUJhcnJpZXJJbnNlcnRpb25QaGFzZS5jcHAJKHJl
dmlzaW9uIDE5NzU0MikKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3RvcmVCYXJy
aWVySW5zZXJ0aW9uUGhhc2UuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yNjAsNiArMjYwLDcgQEAg
cHJpdmF0ZToKICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgIGNhc2UgUHV0Q2xvc3VyZVZh
cjoKICAgICAgICAgICAgIGNhc2UgUHV0VG9Bcmd1bWVudHM6CisgICAgICAgICAgICBjYXNlIFNl
dFJlZ0V4cE9iamVjdExhc3RJbmRleDoKICAgICAgICAgICAgIGNhc2UgTXVsdGlQdXRCeU9mZnNl
dDogewogICAgICAgICAgICAgICAgIGNvbnNpZGVyQmFycmllcihtX25vZGUtPmNoaWxkMSgpLCBt
X25vZGUtPmNoaWxkMigpKTsKICAgICAgICAgICAgICAgICBicmVhazsKSW5kZXg6IFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9mdGwvRlRMQWJzdHJhY3RIZWFwUmVwb3NpdG9yeS5jcHAKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExBYnN0cmFjdEhlYXBSZXBvc2l0b3J5
LmNwcAkocmV2aXNpb24gMTk3NTQyKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExB
YnN0cmFjdEhlYXBSZXBvc2l0b3J5LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzksNiArMzksNyBA
QAogI2luY2x1ZGUgIkpTUHJvcGVydHlOYW1lRW51bWVyYXRvci5oIgogI2luY2x1ZGUgIkpTU2Nv
cGUuaCIKICNpbmNsdWRlICJKU0NJbmxpbmVzLmgiCisjaW5jbHVkZSAiUmVnRXhwT2JqZWN0Lmgi
CiAjaW5jbHVkZSAiU2NvcGVkQXJndW1lbnRzLmgiCiAjaW5jbHVkZSAiU2NvcGVkQXJndW1lbnRz
VGFibGUuaCIKIApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExBYnN0cmFjdEhl
YXBSZXBvc2l0b3J5LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9G
VExBYnN0cmFjdEhlYXBSZXBvc2l0b3J5LmgJKHJldmlzaW9uIDE5NzU0MikKKysrIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9mdGwvRlRMQWJzdHJhY3RIZWFwUmVwb3NpdG9yeS5oCSh3b3JraW5nIGNv
cHkpCkBAIC03Nyw2ICs3Nyw3IEBAIG5hbWVzcGFjZSBKU0MgeyBuYW1lc3BhY2UgRlRMIHsKICAg
ICBtYWNybyhKU1N5bWJvbFRhYmxlT2JqZWN0X3N5bWJvbFRhYmxlLCBKU1N5bWJvbFRhYmxlT2Jq
ZWN0OjpvZmZzZXRPZlN5bWJvbFRhYmxlKCkpIFwKICAgICBtYWNybyhKU1dyYXBwZXJPYmplY3Rf
aW50ZXJuYWxWYWx1ZSwgSlNXcmFwcGVyT2JqZWN0OjppbnRlcm5hbFZhbHVlT2Zmc2V0KCkpIFwK
ICAgICBtYWNybyhNYXJrZWRBbGxvY2F0b3JfZnJlZUxpc3RIZWFkLCBNYXJrZWRBbGxvY2F0b3I6
Om9mZnNldE9mRnJlZUxpc3RIZWFkKCkpIFwKKyAgICBtYWNybyhSZWdFeHBPYmplY3RfbGFzdElu
ZGV4LCBSZWdFeHBPYmplY3Q6Om9mZnNldE9mTGFzdEluZGV4KCkpIFwKICAgICBtYWNybyhTY29w
ZWRBcmd1bWVudHNfb3ZlcnJvZGVUaGluZ3MsIFNjb3BlZEFyZ3VtZW50czo6b2Zmc2V0T2ZPdmVy
cm9kZVRoaW5ncygpKSBcCiAgICAgbWFjcm8oU2NvcGVkQXJndW1lbnRzX3Njb3BlLCBTY29wZWRB
cmd1bWVudHM6Om9mZnNldE9mU2NvcGUoKSkgXAogICAgIG1hY3JvKFNjb3BlZEFyZ3VtZW50c190
YWJsZSwgU2NvcGVkQXJndW1lbnRzOjpvZmZzZXRPZlRhYmxlKCkpIFwKSW5kZXg6IFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9mdGwvRlRMQ2FwYWJpbGl0aWVzLmNwcAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTENhcGFiaWxpdGllcy5jcHAJKHJldmlzaW9uIDE5NzU0
MikKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMQ2FwYWJpbGl0aWVzLmNwcAkod29y
a2luZyBjb3B5KQpAQCAtMjI0LDYgKzIyNCw4IEBAIGlubGluZSBDYXBhYmlsaXR5TGV2ZWwgY2Fu
Q29tcGlsZShOb2RlKiAKICAgICBjYXNlIFJlZ0V4cFRlc3Q6CiAgICAgY2FzZSBOZXdSZWdleHA6
CiAgICAgY2FzZSBTdHJpbmdSZXBsYWNlOgorICAgIGNhc2UgR2V0UmVnRXhwT2JqZWN0TGFzdElu
ZGV4OgorICAgIGNhc2UgU2V0UmVnRXhwT2JqZWN0TGFzdEluZGV4OgogICAgICAgICAvLyBUaGVz
ZSBhcmUgT0suCiAgICAgICAgIGJyZWFrOwogCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
ZnRsL0ZUTExvd2VyREZHVG9CMy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRD
b3JlL2Z0bC9GVExMb3dlckRGR1RvQjMuY3BwCShyZXZpc2lvbiAxOTc1NDIpCisrKyBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvZnRsL0ZUTExvd2VyREZHVG9CMy5jcHAJKHdvcmtpbmcgY29weSkKQEAg
LTkyNiw2ICs5MjYsMTIgQEAgcHJpdmF0ZToKICAgICAgICAgY2FzZSBTdHJpbmdSZXBsYWNlOgog
ICAgICAgICAgICAgY29tcGlsZVN0cmluZ1JlcGxhY2UoKTsKICAgICAgICAgICAgIGJyZWFrOwor
ICAgICAgICBjYXNlIEdldFJlZ0V4cE9iamVjdExhc3RJbmRleDoKKyAgICAgICAgICAgIGNvbXBp
bGVHZXRSZWdFeHBPYmplY3RMYXN0SW5kZXgoKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAg
ICBjYXNlIFNldFJlZ0V4cE9iamVjdExhc3RJbmRleDoKKyAgICAgICAgICAgIGNvbXBpbGVTZXRS
ZWdFeHBPYmplY3RMYXN0SW5kZXgoKTsKKyAgICAgICAgICAgIGJyZWFrOwogCiAgICAgICAgIGNh
c2UgUGhhbnRvbUxvY2FsOgogICAgICAgICBjYXNlIExvb3BIaW50OgpAQCAtNjQ4OSw4ICs2NDk1
LDcgQEAgcHJpdmF0ZToKICAgICAgICAgICAgIGlmIChKU1N0cmluZyogcmVwbGFjZSA9IG1fbm9k
ZS0+Y2hpbGQzKCktPmR5bmFtaWNDYXN0Q29uc3RhbnQ8SlNTdHJpbmcqPigpKSB7CiAgICAgICAg
ICAgICAgICAgaWYgKCFyZXBsYWNlLT5sZW5ndGgoKSkgewogICAgICAgICAgICAgICAgICAgICBM
VmFsdWUgc3RyaW5nID0gbG93U3RyaW5nKG1fbm9kZS0+Y2hpbGQxKCkpOwotICAgICAgICAgICAg
ICAgICAgICBMVmFsdWUgcmVnRXhwID0gbG93Q2VsbChtX25vZGUtPmNoaWxkMigpKTsKLSAgICAg
ICAgICAgICAgICAgICAgc3BlY3VsYXRlUmVnRXhwT2JqZWN0KG1fbm9kZS0+Y2hpbGQyKCksIHJl
Z0V4cCk7CisgICAgICAgICAgICAgICAgICAgIExWYWx1ZSByZWdFeHAgPSBsb3dSZWdFeHBPYmpl
Y3QobV9ub2RlLT5jaGlsZDIoKSk7CiAKICAgICAgICAgICAgICAgICAgICAgTFZhbHVlIHJlc3Vs
dCA9IHZtQ2FsbCgKICAgICAgICAgICAgICAgICAgICAgICAgIEludDY0LCBtX291dC5vcGVyYXRp
b24ob3BlcmF0aW9uU3RyaW5nUHJvdG9GdW5jUmVwbGFjZVJlZ0V4cEVtcHR5U3RyKSwKQEAgLTY1
MDIsOCArNjUwNyw3IEBAIHByaXZhdGU6CiAgICAgICAgICAgICB9CiAgICAgICAgICAgICAKICAg
ICAgICAgICAgIExWYWx1ZSBzdHJpbmcgPSBsb3dTdHJpbmcobV9ub2RlLT5jaGlsZDEoKSk7Ci0g
ICAgICAgICAgICBMVmFsdWUgcmVnRXhwID0gbG93Q2VsbChtX25vZGUtPmNoaWxkMigpKTsKLSAg
ICAgICAgICAgIHNwZWN1bGF0ZVJlZ0V4cE9iamVjdChtX25vZGUtPmNoaWxkMigpLCByZWdFeHAp
OworICAgICAgICAgICAgTFZhbHVlIHJlZ0V4cCA9IGxvd1JlZ0V4cE9iamVjdChtX25vZGUtPmNo
aWxkMigpKTsKICAgICAgICAgICAgIExWYWx1ZSByZXBsYWNlID0gbG93U3RyaW5nKG1fbm9kZS0+
Y2hpbGQzKCkpOwogCiAgICAgICAgICAgICBMVmFsdWUgcmVzdWx0ID0gdm1DYWxsKApAQCAtNjUy
Miw2ICs2NTI2LDE5IEBAIHByaXZhdGU6CiAgICAgICAgIHNldEpTVmFsdWUocmVzdWx0KTsKICAg
ICB9CiAKKyAgICB2b2lkIGNvbXBpbGVHZXRSZWdFeHBPYmplY3RMYXN0SW5kZXgoKQorICAgIHsK
KyAgICAgICAgc2V0SlNWYWx1ZShtX291dC5sb2FkNjQobG93UmVnRXhwT2JqZWN0KG1fbm9kZS0+
Y2hpbGQxKCkpLCBtX2hlYXBzLlJlZ0V4cE9iamVjdF9sYXN0SW5kZXgpKTsKKyAgICB9CisKKyAg
ICB2b2lkIGNvbXBpbGVTZXRSZWdFeHBPYmplY3RMYXN0SW5kZXgoKQorICAgIHsKKyAgICAgICAg
bV9vdXQuc3RvcmU2NCgKKyAgICAgICAgICAgIGxvd0pTVmFsdWUobV9ub2RlLT5jaGlsZDIoKSks
CisgICAgICAgICAgICBsb3dSZWdFeHBPYmplY3QobV9ub2RlLT5jaGlsZDEoKSksCisgICAgICAg
ICAgICBtX2hlYXBzLlJlZ0V4cE9iamVjdF9sYXN0SW5kZXgpOworICAgIH0KKwogICAgIExWYWx1
ZSBkaWRPdmVyZmxvd1N0YWNrKCkKICAgICB7CiAgICAgICAgIC8vIFRoaXMgZG9lcyBhIHZlcnkg
c2ltcGxlIGxlYWYgZnVuY3Rpb24gYW5hbHlzaXMuIFRoZSBpbnZhcmlhbnQgb2YgRlRMIGNhbGwK
QEAgLTg5MjUsNiArODk0MiwxMyBAQCBwcml2YXRlOgogICAgICAgICBzcGVjdWxhdGVPYmplY3Qo
ZWRnZSwgcmVzdWx0KTsKICAgICAgICAgcmV0dXJuIHJlc3VsdDsKICAgICB9CisKKyAgICBMVmFs
dWUgbG93UmVnRXhwT2JqZWN0KEVkZ2UgZWRnZSkKKyAgICB7CisgICAgICAgIExWYWx1ZSByZXN1
bHQgPSBsb3dDZWxsKGVkZ2UpOworICAgICAgICBzcGVjdWxhdGVSZWdFeHBPYmplY3QoZWRnZSwg
cmVzdWx0KTsKKyAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICB9CiAgICAgCiAgICAgTFZhbHVl
IGxvd1N0cmluZyhFZGdlIGVkZ2UsIE9wZXJhbmRTcGVjdWxhdGlvbk1vZGUgbW9kZSA9IEF1dG9t
YXRpY09wZXJhbmRTcGVjdWxhdGlvbikKICAgICB7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9SZWdFeHBPYmplY3QuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9SZWdFeHBPYmplY3QuaAkocmV2aXNpb24gMTk3NTQyKQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhwT2JqZWN0LmgJKHdvcmtpbmcgY29weSkKQEAg
LTc0LDYgKzc0LDExIEBAIHB1YmxpYzoKICAgICAgICAgcmV0dXJuIFN0cnVjdHVyZTo6Y3JlYXRl
KHZtLCBnbG9iYWxPYmplY3QsIHByb3RvdHlwZSwgVHlwZUluZm8oUmVnRXhwT2JqZWN0VHlwZSwg
U3RydWN0dXJlRmxhZ3MpLCBpbmZvKCkpOwogICAgIH0KIAorICAgIHN0YXRpYyBpbnRwdHJfdCBv
ZmZzZXRPZkxhc3RJbmRleCgpCisgICAgeworICAgICAgICByZXR1cm4gT0JKRUNUX09GRlNFVE9G
KFJlZ0V4cE9iamVjdCwgbV9sYXN0SW5kZXgpOworICAgIH0KKwogcHJvdGVjdGVkOgogICAgIEpT
X0VYUE9SVF9QUklWQVRFIFJlZ0V4cE9iamVjdChWTSYsIFN0cnVjdHVyZSosIFJlZ0V4cCopOwog
ICAgIEpTX0VYUE9SVF9QUklWQVRFIHZvaWQgZmluaXNoQ3JlYXRpb24oVk0mKTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>272827</attachid>
            <date>2016-03-03 21:00:02 -0800</date>
            <delta_ts>2016-03-03 21:52:21 -0800</delta_ts>
            <desc>the patch</desc>
            <filename>blah.patch</filename>
            <type>text/plain</type>
            <size>20615</size>
            <attacher name="Filip Pizlo">fpizlo</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTk3NTQzKQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDU5IEBA
CisyMDE2LTAzLTAzICBGaWxpcCBQaXpsbyAgPGZwaXpsb0BhcHBsZS5jb20+CisKKyAgICAgICAg
REZHL0ZUTCBzaG91bGQgaW5saW5lIGFjY2Vzc2VzIHRvIFJlZ0V4cE9iamVjdDo6bV9sYXN0SW5k
ZXgKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1NTAw
MworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoZSBP
Y3RhbmUvcmVnZXhwIGJlbmNobWFyayBzZXRzIFJlZ0V4cHMnIGxhc3RJbmRleCBhIGxvdC4gSSBj
b3VsZCBpbWFnaW5lIHRoaXMgYmVpbmcKKyAgICAgICAgc29tZXRoaW5nIHRoYXQgcGVvcGxlIHdh
bnQgdG8gZG8uIFJpZ2h0IG5vdywgSSdtIG5vdCBjb252aW5jZWQgdGhhdCBtYWtpbmcgdGhlIFJl
Z0V4cCBvYmplY3QKKyAgICAgICAgYmUgbW9yZSBwbGFpbi1KUyB3b3VsZCBiZSBhIGdvb2QgaWRl
YSBjb25zaWRlcmluZyB0aGF0IHByZXR0eSBtdWNoIGFsbCB1c2VzIG9mIGl0IHdpbGwKKyAgICAg
ICAgcmVxdWlyZSBzb21lIHNwZWNpYWwgY29tcGlsZXIgbWFnaWMuIEFsc28sIGl0J3MgZ29vZCB0
aGF0IHRoaXMgcGF0Y2ggdGVhY2hlcyB0aGUgY29tcGlsZXIKKyAgICAgICAgaG93IHRvIHJlYXNv
biBhYm91dCBsYXN0SW5kZXggc2luY2Ugc29tZSBvZiBteSBvdGhlciBwbGFucyBmb3IgcmVnZXhw
IGludm9sdmUgaGF2aW5nIHRoZQorICAgICAgICBjb21waWxlciB0cmVhdCBtb3JlIHJlZ2V4cCBz
dHVmZiBhcyBpbnRyaW5zaWMuCisKKyAgICAgICAgVGhpcyBpcyBhIHNtYWxsZXIgT2N0YW5lL3Jl
Z2V4cCBzcGVlZC11cCB0aGFuIEkgaG9wZWQgLSBtYXliZSBhcm91bmQgMSUuCisKKyAgICAgICAg
KiBkZmcvREZHQWJzdHJhY3RIZWFwLmg6CisgICAgICAgICogZGZnL0RGR0Fic3RyYWN0SW50ZXJw
cmV0ZXJJbmxpbmVzLmg6CisgICAgICAgIChKU0M6OkRGRzo6QWJzdHJhY3RJbnRlcnByZXRlcjxB
YnN0cmFjdFN0YXRlVHlwZT46OmV4ZWN1dGVFZmZlY3RzKToKKyAgICAgICAgKiBkZmcvREZHQ2xv
YmJlcml6ZS5oOgorICAgICAgICAoSlNDOjpERkc6OmNsb2JiZXJpemUpOgorICAgICAgICAqIGRm
Zy9ERkdEb2VzR0MuY3BwOgorICAgICAgICAoSlNDOjpERkc6OmRvZXNHQyk6CisgICAgICAgICog
ZGZnL0RGR0ZpeHVwUGhhc2UuY3BwOgorICAgICAgICAoSlNDOjpERkc6OkZpeHVwUGhhc2U6OmZp
eHVwTm9kZSk6CisgICAgICAgICogZGZnL0RGR0hlYXBMb2NhdGlvbi5oOgorICAgICAgICAqIGRm
Zy9ERkdOb2RlVHlwZS5oOgorICAgICAgICAqIGRmZy9ERkdTYWZlVG9FeGVjdXRlLmg6CisgICAg
ICAgIChKU0M6OkRGRzo6c2FmZVRvRXhlY3V0ZSk6CisgICAgICAgICogZGZnL0RGR1NwZWN1bGF0
aXZlSklULmNwcDoKKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZVB1
dEFjY2Vzc29yQnlWYWwpOgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpjb21w
aWxlR2V0UmVnRXhwT2JqZWN0TGFzdEluZGV4KToKKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxh
dGl2ZUpJVDo6Y29tcGlsZVNldFJlZ0V4cE9iamVjdExhc3RJbmRleCk6CisgICAgICAgICogZGZn
L0RGR1NwZWN1bGF0aXZlSklULmg6CisgICAgICAgICogZGZnL0RGR1NwZWN1bGF0aXZlSklUMzJf
NjQuY3BwOgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpjb21waWxlKToKKyAg
ICAgICAgKiBkZmcvREZHU3BlY3VsYXRpdmVKSVQ2NC5jcHA6CisgICAgICAgIChKU0M6OkRGRzo6
U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGUpOgorICAgICAgICAqIGRmZy9ERkdTdG9yZUJhcnJpZXJJ
bnNlcnRpb25QaGFzZS5jcHA6CisgICAgICAgICogZnRsL0ZUTEFic3RyYWN0SGVhcFJlcG9zaXRv
cnkuY3BwOgorICAgICAgICAqIGZ0bC9GVExBYnN0cmFjdEhlYXBSZXBvc2l0b3J5Lmg6CisgICAg
ICAgICogZnRsL0ZUTENhcGFiaWxpdGllcy5jcHA6CisgICAgICAgIChKU0M6OkZUTDo6Y2FuQ29t
cGlsZSk6CisgICAgICAgICogZnRsL0ZUTExvd2VyREZHVG9CMy5jcHA6CisgICAgICAgIChKU0M6
OkZUTDo6REZHOjpMb3dlckRGR1RvQjM6OmNvbXBpbGVOb2RlKToKKyAgICAgICAgKEpTQzo6RlRM
OjpERkc6Okxvd2VyREZHVG9CMzo6Y29tcGlsZVN0cmluZ1JlcGxhY2UpOgorICAgICAgICAoSlND
OjpGVEw6OkRGRzo6TG93ZXJERkdUb0IzOjpjb21waWxlR2V0UmVnRXhwT2JqZWN0TGFzdEluZGV4
KToKKyAgICAgICAgKEpTQzo6RlRMOjpERkc6Okxvd2VyREZHVG9CMzo6Y29tcGlsZVNldFJlZ0V4
cE9iamVjdExhc3RJbmRleCk6CisgICAgICAgIChKU0M6OkZUTDo6REZHOjpMb3dlckRGR1RvQjM6
OmRpZE92ZXJmbG93U3RhY2spOgorICAgICAgICAoSlNDOjpGVEw6OkRGRzo6TG93ZXJERkdUb0Iz
Ojpsb3dPYmplY3QpOgorICAgICAgICAoSlNDOjpGVEw6OkRGRzo6TG93ZXJERkdUb0IzOjpsb3dS
ZWdFeHBPYmplY3QpOgorICAgICAgICAoSlNDOjpGVEw6OkRGRzo6TG93ZXJERkdUb0IzOjpsb3dT
dHJpbmcpOgorICAgICAgICAqIHJ1bnRpbWUvUmVnRXhwT2JqZWN0Lmg6CisgICAgICAgIChKU0M6
OlJlZ0V4cE9iamVjdDo6Y3JlYXRlU3RydWN0dXJlKToKKyAgICAgICAgKEpTQzo6UmVnRXhwT2Jq
ZWN0OjpvZmZzZXRPZkxhc3RJbmRleCk6CisKIDIwMTYtMDMtMDMgIEtlaXRoIE1pbGxlciAgPGtl
aXRoX21pbGxlckBhcHBsZS5jb20+CiAKICAgICAgICAgSlNBcnJheUJ1ZmZlcnMgc2hvdWxkIGJl
IGNvbGxlY3RlZCBsZXNzIGFnZ3Jlc3NpdmVseQpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3Jl
L2RmZy9ERkdBYnN0cmFjdEhlYXAuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvZGZnL0RGR0Fic3RyYWN0SGVhcC5oCShyZXZpc2lvbiAxOTc1NDIpCisrKyBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvZGZnL0RGR0Fic3RyYWN0SGVhcC5oCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUg
KzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMy0yMDE1IEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMy0yMDE2IEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtNTgs
NiArNTgsNyBAQCBuYW1lc3BhY2UgSlNDIHsgbmFtZXNwYWNlIERGRyB7CiAgICAgbWFjcm8oSlND
ZWxsX3R5cGVJbmZvVHlwZSkgXAogICAgIG1hY3JvKEpTT2JqZWN0X2J1dHRlcmZseSkgXAogICAg
IG1hY3JvKEpTUHJvcGVydHlOYW1lRW51bWVyYXRvcl9jYWNoZWRQcm9wZXJ0eU5hbWVzKSBcCisg
ICAgbWFjcm8oUmVnRXhwT2JqZWN0X2xhc3RJbmRleCkgXAogICAgIG1hY3JvKE5hbWVkUHJvcGVy
dGllcykgXAogICAgIG1hY3JvKEluZGV4ZWRJbnQzMlByb3BlcnRpZXMpIFwKICAgICBtYWNybyhJ
bmRleGVkRG91YmxlUHJvcGVydGllcykgXApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2Rm
Zy9ERkdBYnN0cmFjdEludGVycHJldGVySW5saW5lcy5oCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9kZmcvREZHQWJzdHJhY3RJbnRlcnByZXRlcklubGluZXMuaAkocmV2aXNp
b24gMTk3NTQyKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdBYnN0cmFjdEludGVy
cHJldGVySW5saW5lcy5oCSh3b3JraW5nIGNvcHkpCkBAIC0xODgyLDYgKzE4ODIsMTMgQEAgYm9v
bCBBYnN0cmFjdEludGVycHJldGVyPEFic3RyYWN0U3RhdGVUeQogICAgICAgICAgICAgCiAgICAg
Y2FzZSBQdXRDbG9zdXJlVmFyOgogICAgICAgICBicmVhazsKKworICAgIGNhc2UgR2V0UmVnRXhw
T2JqZWN0TGFzdEluZGV4OgorICAgICAgICBmb3JOb2RlKG5vZGUpLm1ha2VIZWFwVG9wKCk7Cisg
ICAgICAgIGJyZWFrOworCisgICAgY2FzZSBTZXRSZWdFeHBPYmplY3RMYXN0SW5kZXg6CisgICAg
ICAgIGJyZWFrOwogICAgICAgICAKICAgICBjYXNlIEdldEZyb21Bcmd1bWVudHM6CiAgICAgICAg
IGZvck5vZGUobm9kZSkubWFrZUhlYXBUb3AoKTsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9kZmcvREZHQ2xvYmJlcml6ZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9kZmcvREZHQ2xvYmJlcml6ZS5oCShyZXZpc2lvbiAxOTc1NDIpCisrKyBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvZGZnL0RGR0Nsb2JiZXJpemUuaAkod29ya2luZyBjb3B5KQpAQCAtOTA4LDYgKzkw
OCwxNiBAQCB2b2lkIGNsb2JiZXJpemUoR3JhcGgmIGdyYXBoLCBOb2RlKiBub2RlCiAgICAgICAg
IHdyaXRlKEFic3RyYWN0SGVhcChTY29wZVByb3BlcnRpZXMsIG5vZGUtPnNjb3BlT2Zmc2V0KCku
b2Zmc2V0KCkpKTsKICAgICAgICAgZGVmKEhlYXBMb2NhdGlvbihDbG9zdXJlVmFyaWFibGVMb2Ms
IEFic3RyYWN0SGVhcChTY29wZVByb3BlcnRpZXMsIG5vZGUtPnNjb3BlT2Zmc2V0KCkub2Zmc2V0
KCkpLCBub2RlLT5jaGlsZDEoKSksIExhenlOb2RlKG5vZGUtPmNoaWxkMigpLm5vZGUoKSkpOwog
ICAgICAgICByZXR1cm47CisKKyAgICBjYXNlIEdldFJlZ0V4cE9iamVjdExhc3RJbmRleDoKKyAg
ICAgICAgcmVhZChSZWdFeHBPYmplY3RfbGFzdEluZGV4KTsKKyAgICAgICAgZGVmKEhlYXBMb2Nh
dGlvbihSZWdFeHBPYmplY3RMYXN0SW5kZXhMb2MsIFJlZ0V4cE9iamVjdF9sYXN0SW5kZXgsIG5v
ZGUtPmNoaWxkMSgpKSwgTGF6eU5vZGUobm9kZSkpOworICAgICAgICByZXR1cm47CisKKyAgICBj
YXNlIFNldFJlZ0V4cE9iamVjdExhc3RJbmRleDoKKyAgICAgICAgd3JpdGUoUmVnRXhwT2JqZWN0
X2xhc3RJbmRleCk7CisgICAgICAgIGRlZihIZWFwTG9jYXRpb24oUmVnRXhwT2JqZWN0TGFzdElu
ZGV4TG9jLCBSZWdFeHBPYmplY3RfbGFzdEluZGV4LCBub2RlLT5jaGlsZDEoKSksIExhenlOb2Rl
KG5vZGUtPmNoaWxkMigpLm5vZGUoKSkpOworICAgICAgICByZXR1cm47CiAgICAgICAgIAogICAg
IGNhc2UgR2V0RnJvbUFyZ3VtZW50czogewogICAgICAgICBBYnN0cmFjdEhlYXAgaGVhcChEaXJl
Y3RBcmd1bWVudHNQcm9wZXJ0aWVzLCBub2RlLT5jYXB0dXJlZEFyZ3VtZW50c09mZnNldCgpLm9m
ZnNldCgpKTsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHRG9lc0dDLmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0RvZXNHQy5jcHAJKHJl
dmlzaW9uIDE5NzU0MikKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHRG9lc0dDLmNw
cAkod29ya2luZyBjb3B5KQpAQCAtMTEzLDYgKzExMyw4IEBAIGJvb2wgZG9lc0dDKEdyYXBoJiBn
cmFwaCwgTm9kZSogbm9kZSkKICAgICBjYXNlIFNraXBTY29wZToKICAgICBjYXNlIEdldENsb3N1
cmVWYXI6CiAgICAgY2FzZSBQdXRDbG9zdXJlVmFyOgorICAgIGNhc2UgR2V0UmVnRXhwT2JqZWN0
TGFzdEluZGV4OgorICAgIGNhc2UgU2V0UmVnRXhwT2JqZWN0TGFzdEluZGV4OgogICAgIGNhc2Ug
R2V0R2xvYmFsVmFyOgogICAgIGNhc2UgR2V0R2xvYmFsTGV4aWNhbFZhcmlhYmxlOgogICAgIGNh
c2UgUHV0R2xvYmFsVmFyaWFibGU6CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RG
R0ZpeHVwUGhhc2UuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcv
REZHRml4dXBQaGFzZS5jcHAJKHJldmlzaW9uIDE5NzU0MikKKysrIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9kZmcvREZHRml4dXBQaGFzZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEwNzIsMTEgKzEw
NzIsMjEgQEAgcHJpdmF0ZToKICAgICAgICAgICAgICAgICAmJiAhbV9ncmFwaC5oYXNFeGl0U2l0
ZShub2RlLT5vcmlnaW4uc2VtYW50aWMsIEJhZENhY2hlKQogICAgICAgICAgICAgICAgICYmICFt
X2dyYXBoLmhhc0V4aXRTaXRlKG5vZGUtPm9yaWdpbi5zZW1hbnRpYywgQmFkSW5kZXhpbmdUeXBl
KQogICAgICAgICAgICAgICAgICYmICFtX2dyYXBoLmhhc0V4aXRTaXRlKG5vZGUtPm9yaWdpbi5z
ZW1hbnRpYywgRXhvdGljT2JqZWN0TW9kZSkpIHsKKyAgICAgICAgICAgICAgICAKICAgICAgICAg
ICAgICAgICBhdXRvIHVpZCA9IG1fZ3JhcGguaWRlbnRpZmllcnMoKVtub2RlLT5pZGVudGlmaWVy
TnVtYmVyKCldOworICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgIGlmICh1aWQgPT0g
dm0oKS5wcm9wZXJ0eU5hbWVzLT5sZW5ndGguaW1wbCgpKSB7CiAgICAgICAgICAgICAgICAgICAg
IGF0dGVtcHRUb01ha2VHZXRBcnJheUxlbmd0aChub2RlKTsKICAgICAgICAgICAgICAgICAgICAg
YnJlYWs7CiAgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgaWYgKHVpZCA9PSB2
bSgpLnByb3BlcnR5TmFtZXMtPmxhc3RJbmRleC5pbXBsKCkKKyAgICAgICAgICAgICAgICAgICAg
JiYgbm9kZS0+Y2hpbGQxKCktPnNob3VsZFNwZWN1bGF0ZVJlZ0V4cE9iamVjdCgpKSB7CisgICAg
ICAgICAgICAgICAgICAgIG5vZGUtPnNldE9wKEdldFJlZ0V4cE9iamVjdExhc3RJbmRleCk7Cisg
ICAgICAgICAgICAgICAgICAgIG5vZGUtPmNsZWFyRmxhZ3MoTm9kZU11c3RHZW5lcmF0ZSk7Cisg
ICAgICAgICAgICAgICAgICAgIGZpeEVkZ2U8UmVnRXhwT2JqZWN0VXNlPihub2RlLT5jaGlsZDEo
KSk7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIH0KICAgICAg
ICAgICAgIH0KIAogICAgICAgICAgICAgaWYgKG5vZGUtPmNoaWxkMSgpLT5zaG91bGRTcGVjdWxh
dGVDZWxsKCkpCkBAIC0xMDg3LDYgKzEwOTcsMjMgQEAgcHJpdmF0ZToKICAgICAgICAgY2FzZSBQ
dXRCeUlkOgogICAgICAgICBjYXNlIFB1dEJ5SWRGbHVzaDoKICAgICAgICAgY2FzZSBQdXRCeUlk
RGlyZWN0OiB7CisgICAgICAgICAgICBpZiAobm9kZS0+Y2hpbGQxKCktPnNob3VsZFNwZWN1bGF0
ZUNlbGxPck90aGVyKCkKKyAgICAgICAgICAgICAgICAmJiAhbV9ncmFwaC5oYXNFeGl0U2l0ZShu
b2RlLT5vcmlnaW4uc2VtYW50aWMsIEJhZFR5cGUpCisgICAgICAgICAgICAgICAgJiYgIW1fZ3Jh
cGguaGFzRXhpdFNpdGUobm9kZS0+b3JpZ2luLnNlbWFudGljLCBCYWRDYWNoZSkKKyAgICAgICAg
ICAgICAgICAmJiAhbV9ncmFwaC5oYXNFeGl0U2l0ZShub2RlLT5vcmlnaW4uc2VtYW50aWMsIEJh
ZEluZGV4aW5nVHlwZSkKKyAgICAgICAgICAgICAgICAmJiAhbV9ncmFwaC5oYXNFeGl0U2l0ZShu
b2RlLT5vcmlnaW4uc2VtYW50aWMsIEV4b3RpY09iamVjdE1vZGUpKSB7CisgICAgICAgICAgICAg
ICAgCisgICAgICAgICAgICAgICAgYXV0byB1aWQgPSBtX2dyYXBoLmlkZW50aWZpZXJzKClbbm9k
ZS0+aWRlbnRpZmllck51bWJlcigpXTsKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAg
ICBpZiAodWlkID09IHZtKCkucHJvcGVydHlOYW1lcy0+bGFzdEluZGV4LmltcGwoKQorICAgICAg
ICAgICAgICAgICAgICAmJiBub2RlLT5jaGlsZDEoKS0+c2hvdWxkU3BlY3VsYXRlUmVnRXhwT2Jq
ZWN0KCkpIHsKKyAgICAgICAgICAgICAgICAgICAgbm9kZS0+c2V0T3AoU2V0UmVnRXhwT2JqZWN0
TGFzdEluZGV4KTsKKyAgICAgICAgICAgICAgICAgICAgZml4RWRnZTxSZWdFeHBPYmplY3RVc2U+
KG5vZGUtPmNoaWxkMSgpKTsKKyAgICAgICAgICAgICAgICAgICAgc3BlY3VsYXRlRm9yQmFycmll
cihub2RlLT5jaGlsZDIoKSk7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAg
ICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIAogICAgICAgICAgICAgZml4RWRn
ZTxDZWxsVXNlPihub2RlLT5jaGlsZDEoKSk7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAg
fQpAQCAtMTI2Nyw2ICsxMjk0LDggQEAgcHJpdmF0ZToKICAgICAgICAgY2FzZSBLaWxsU3RhY2s6
CiAgICAgICAgIGNhc2UgR2V0U3RhY2s6CiAgICAgICAgIGNhc2UgU3RvcmVCYXJyaWVyOgorICAg
ICAgICBjYXNlIEdldFJlZ0V4cE9iamVjdExhc3RJbmRleDoKKyAgICAgICAgY2FzZSBTZXRSZWdF
eHBPYmplY3RMYXN0SW5kZXg6CiAgICAgICAgICAgICAvLyBUaGVzZSBhcmUganVzdCBub2RlcyB0
aGF0IHdlIGRvbid0IGN1cnJlbnRseSBleHBlY3QgdG8gc2VlIGR1cmluZyBmaXh1cC4KICAgICAg
ICAgICAgIC8vIElmIHdlIGV2ZXIgd2FudGVkIHRvIGluc2VydCB0aGVtIHByaW9yIHRvIGZpeHVw
LCB0aGVuIHdlIGp1c3QgaGF2ZSB0byBjcmVhdGUKICAgICAgICAgICAgIC8vIGZpeHVwIHJ1bGVz
IGZvciB0aGVtLgpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdIZWFwTG9jYXRp
b24uY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHSGVhcExv
Y2F0aW9uLmNwcAkocmV2aXNpb24gMTk3NTQyKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2Rm
Zy9ERkdIZWFwTG9jYXRpb24uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xNDcsNiArMTQ3LDEwIEBA
IHZvaWQgcHJpbnRJbnRlcm5hbChQcmludFN0cmVhbSYgb3V0LCBMb2MKICAgICBjYXNlIFN0cnVj
dHVyZUxvYzoKICAgICAgICAgb3V0LnByaW50KCJTdHJ1Y3R1cmVMb2MiKTsKICAgICAgICAgcmV0
dXJuOworCisgICAgY2FzZSBSZWdFeHBPYmplY3RMYXN0SW5kZXhMb2M6CisgICAgICAgIG91dC5w
cmludCgiUmVnRXhwT2JqZWN0TGFzdEluZGV4TG9jIik7CisgICAgICAgIHJldHVybjsKICAgICB9
CiAgICAgCiAgICAgUkVMRUFTRV9BU1NFUlRfTk9UX1JFQUNIRUQoKTsKSW5kZXg6IFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9kZmcvREZHSGVhcExvY2F0aW9uLmgKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L0phdmFTY3JpcHRDb3JlL2RmZy9ERkdIZWFwTG9jYXRpb24uaAkocmV2aXNpb24gMTk3NTQyKQor
KysgU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdIZWFwTG9jYXRpb24uaAkod29ya2luZyBj
b3B5KQpAQCAtNTQsNiArNTQsNyBAQCBlbnVtIExvY2F0aW9uS2luZCB7CiAgICAgSXNGdW5jdGlv
bkxvYywKICAgICBJc09iamVjdE9yTnVsbExvYywKICAgICBOYW1lZFByb3BlcnR5TG9jLAorICAg
IFJlZ0V4cE9iamVjdExhc3RJbmRleExvYywKICAgICBTZXR0ZXJMb2MsCiAgICAgU3RydWN0dXJl
TG9jLAogICAgIFR5cGVkQXJyYXlCeXRlT2Zmc2V0TG9jLApJbmRleDogU291cmNlL0phdmFTY3Jp
cHRDb3JlL2RmZy9ERkdOb2RlVHlwZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9kZmcvREZHTm9kZVR5cGUuaAkocmV2aXNpb24gMTk3NTQyKQorKysgU291cmNlL0phdmFT
Y3JpcHRDb3JlL2RmZy9ERkdOb2RlVHlwZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0yMTksNiArMjE5
LDggQEAgbmFtZXNwYWNlIEpTQyB7IG5hbWVzcGFjZSBERkcgewogICAgIG1hY3JvKFB1dEdsb2Jh
bFZhcmlhYmxlLCBOb2RlTXVzdEdlbmVyYXRlKSBcCiAgICAgbWFjcm8oTm90aWZ5V3JpdGUsIE5v
ZGVNdXN0R2VuZXJhdGUpIFwKICAgICBtYWNybyhWYXJJbmplY3Rpb25XYXRjaHBvaW50LCBOb2Rl
TXVzdEdlbmVyYXRlKSBcCisgICAgbWFjcm8oR2V0UmVnRXhwT2JqZWN0TGFzdEluZGV4LCBOb2Rl
UmVzdWx0SlMpIFwKKyAgICBtYWNybyhTZXRSZWdFeHBPYmplY3RMYXN0SW5kZXgsIE5vZGVNdXN0
R2VuZXJhdGUpIFwKICAgICBtYWNybyhDaGVja0NlbGwsIE5vZGVNdXN0R2VuZXJhdGUpIFwKICAg
ICBtYWNybyhDaGVja05vdEVtcHR5LCBOb2RlTXVzdEdlbmVyYXRlKSBcCiAgICAgbWFjcm8oQ2hl
Y2tCYWRDZWxsLCBOb2RlTXVzdEdlbmVyYXRlKSBcCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvZGZnL0RGR1NhZmVUb0V4ZWN1dGUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvZGZnL0RGR1NhZmVUb0V4ZWN1dGUuaAkocmV2aXNpb24gMTk3NTQyKQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTYWZlVG9FeGVjdXRlLmgJKHdvcmtpbmcgY29weSkKQEAg
LTMzMiw2ICszMzIsOCBAQCBib29sIHNhZmVUb0V4ZWN1dGUoQWJzdHJhY3RTdGF0ZVR5cGUmIHN0
CiAgICAgY2FzZSBGb3J3YXJkVmFyYXJnczoKICAgICBjYXNlIENvcHlSZXN0OgogICAgIGNhc2Ug
U3RyaW5nUmVwbGFjZToKKyAgICBjYXNlIEdldFJlZ0V4cE9iamVjdExhc3RJbmRleDoKKyAgICBj
YXNlIFNldFJlZ0V4cE9iamVjdExhc3RJbmRleDoKICAgICAgICAgcmV0dXJuIHRydWU7CiAKICAg
ICBjYXNlIEJvdHRvbVZhbHVlOgpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdT
cGVjdWxhdGl2ZUpJVDMyXzY0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvZGZnL0RGR1NwZWN1bGF0aXZlSklUMzJfNjQuY3BwCShyZXZpc2lvbiAxOTc1NDIpCisrKyBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklUMzJfNjQuY3BwCSh3b3Jr
aW5nIGNvcHkpCkBAIC0yOTcwLDYgKzI5NzAsMTYgQEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29t
cGlsZShOb2RlKiBub2RlKQogICAgICAgICBjZWxsUmVzdWx0KHJlc3VsdFBheWxvYWQuZ3ByKCks
IG5vZGUpOwogICAgICAgICBicmVhazsKICAgICB9CisKKyAgICBjYXNlIEdldFJlZ0V4cE9iamVj
dExhc3RJbmRleDogeworICAgICAgICBjb21waWxlR2V0UmVnRXhwT2JqZWN0TGFzdEluZGV4KG5v
ZGUpOworICAgICAgICBicmVhazsKKyAgICB9CisgICAgICAgIAorICAgIGNhc2UgU2V0UmVnRXhw
T2JqZWN0TGFzdEluZGV4OiB7CisgICAgICAgIGNvbXBpbGVTZXRSZWdFeHBPYmplY3RMYXN0SW5k
ZXgobm9kZSk7CisgICAgICAgIGJyZWFrOworICAgIH0KICAgICAgICAgCiAgICAgY2FzZSBBcnJh
eVB1c2g6IHsKICAgICAgICAgQVNTRVJUKG5vZGUtPmFycmF5TW9kZSgpLmlzSlNBcnJheSgpKTsK
SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQ2NC5jcHAK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJ
VDY0LmNwcAkocmV2aXNpb24gMTk3NTQyKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9E
RkdTcGVjdWxhdGl2ZUpJVDY0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzA4OCw2ICszMDg4LDE2
IEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGUoTm9kZSogbm9kZSkKICAgICAgICAgYnJl
YWs7CiAgICAgfQogICAgICAgICAKKyAgICBjYXNlIEdldFJlZ0V4cE9iamVjdExhc3RJbmRleDog
eworICAgICAgICBjb21waWxlR2V0UmVnRXhwT2JqZWN0TGFzdEluZGV4KG5vZGUpOworICAgICAg
ICBicmVhazsKKyAgICB9CisgICAgICAgIAorICAgIGNhc2UgU2V0UmVnRXhwT2JqZWN0TGFzdElu
ZGV4OiB7CisgICAgICAgIGNvbXBpbGVTZXRSZWdFeHBPYmplY3RMYXN0SW5kZXgobm9kZSk7Cisg
ICAgICAgIGJyZWFrOworICAgIH0KKyAgICAgICAgCiAgICAgY2FzZSBBcnJheVB1c2g6IHsKICAg
ICAgICAgQVNTRVJUKG5vZGUtPmFycmF5TW9kZSgpLmlzSlNBcnJheSgpKTsKICAgICAgICAgCklu
ZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklULmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklULmNw
cAkocmV2aXNpb24gMTk3NTQyKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVj
dWxhdGl2ZUpJVC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTc1MTgsNiArNzUxOCwzMyBAQCB2b2lk
IFNwZWN1bGF0aXZlSklUOjpjb21waWxlUHV0QWNjZXNzb3JCCiAgICAgbm9SZXN1bHQobm9kZSk7
CiB9CiAKK3ZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVHZXRSZWdFeHBPYmplY3RMYXN0SW5k
ZXgoTm9kZSogbm9kZSkKK3sKKyAgICBTcGVjdWxhdGVDZWxsT3BlcmFuZCByZWdFeHAodGhpcywg
bm9kZS0+Y2hpbGQxKCkpOworICAgIEpTVmFsdWVSZWdzVGVtcG9yYXJ5IHJlc3VsdCh0aGlzKTsK
KyAgICBHUFJSZWcgcmVnRXhwR1BSID0gcmVnRXhwLmdwcigpOworICAgIEpTVmFsdWVSZWdzIHJl
c3VsdFJlZ3MgPSByZXN1bHQucmVncygpOworICAgIHNwZWN1bGF0ZVJlZ0V4cE9iamVjdChub2Rl
LT5jaGlsZDEoKSwgcmVnRXhwR1BSKTsKKyAgICBtX2ppdC5sb2FkVmFsdWUoSklUQ29tcGlsZXI6
OkFkZHJlc3MocmVnRXhwR1BSLCBSZWdFeHBPYmplY3Q6Om9mZnNldE9mTGFzdEluZGV4KCkpLCBy
ZXN1bHRSZWdzKTsKKyAgICBqc1ZhbHVlUmVzdWx0KHJlc3VsdFJlZ3MsIG5vZGUpOworfQorCit2
b2lkIFNwZWN1bGF0aXZlSklUOjpjb21waWxlU2V0UmVnRXhwT2JqZWN0TGFzdEluZGV4KE5vZGUq
IG5vZGUpCit7CisgICAgU3BlY3VsYXRlQ2VsbE9wZXJhbmQgcmVnRXhwKHRoaXMsIG5vZGUtPmNo
aWxkMSgpKTsKKyAgICBKU1ZhbHVlT3BlcmFuZCB2YWx1ZSh0aGlzLCBub2RlLT5jaGlsZDIoKSk7
CisgICAgR1BSUmVnIHJlZ0V4cEdQUiA9IHJlZ0V4cC5ncHIoKTsKKyAgICBKU1ZhbHVlUmVncyB2
YWx1ZVJlZ3MgPSB2YWx1ZS5qc1ZhbHVlUmVncygpOworICAgIHNwZWN1bGF0ZVJlZ0V4cE9iamVj
dChub2RlLT5jaGlsZDEoKSwgcmVnRXhwR1BSKTsKKyAgICBzcGVjdWxhdGlvbkNoZWNrKAorICAg
ICAgICBFeG90aWNPYmplY3RNb2RlLCBKU1ZhbHVlUmVncygpLCBudWxscHRyLAorICAgICAgICBt
X2ppdC5icmFuY2hUZXN0OCgKKyAgICAgICAgICAgIEpJVENvbXBpbGVyOjpaZXJvLAorICAgICAg
ICAgICAgSklUQ29tcGlsZXI6OkFkZHJlc3MocmVnRXhwR1BSLCBSZWdFeHBPYmplY3Q6Om9mZnNl
dE9mTGFzdEluZGV4SXNXcml0YWJsZSgpKSkpOworICAgIG1faml0LnN0b3JlVmFsdWUodmFsdWVS
ZWdzLCBKSVRDb21waWxlcjo6QWRkcmVzcyhyZWdFeHBHUFIsIFJlZ0V4cE9iamVjdDo6b2Zmc2V0
T2ZMYXN0SW5kZXgoKSkpOworICAgIG5vUmVzdWx0KG5vZGUpOworfQorCiB9IH0gLy8gbmFtZXNw
YWNlIEpTQzo6REZHCiAKICNlbmRpZgpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9E
RkdTcGVjdWxhdGl2ZUpJVC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9k
ZmcvREZHU3BlY3VsYXRpdmVKSVQuaAkocmV2aXNpb24gMTk3NTQyKQorKysgU291cmNlL0phdmFT
Y3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVC5oCSh3b3JraW5nIGNvcHkpCkBAIC0yMzMz
LDYgKzIzMzMsOCBAQCBwdWJsaWM6CiAgICAgdm9pZCBjb21waWxlUHV0QWNjZXNzb3JCeUlkKE5v
ZGUqKTsKICAgICB2b2lkIGNvbXBpbGVQdXRHZXR0ZXJTZXR0ZXJCeUlkKE5vZGUqKTsKICAgICB2
b2lkIGNvbXBpbGVQdXRBY2Nlc3NvckJ5VmFsKE5vZGUqKTsKKyAgICB2b2lkIGNvbXBpbGVHZXRS
ZWdFeHBPYmplY3RMYXN0SW5kZXgoTm9kZSopOworICAgIHZvaWQgY29tcGlsZVNldFJlZ0V4cE9i
amVjdExhc3RJbmRleChOb2RlKik7CiAgICAgCiAgICAgdm9pZCBtb3ZlVHJ1ZVRvKEdQUlJlZyk7
CiAgICAgdm9pZCBtb3ZlRmFsc2VUbyhHUFJSZWcpOwpJbmRleDogU291cmNlL0phdmFTY3JpcHRD
b3JlL2RmZy9ERkdTdG9yZUJhcnJpZXJJbnNlcnRpb25QaGFzZS5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTdG9yZUJhcnJpZXJJbnNlcnRpb25QaGFzZS5j
cHAJKHJldmlzaW9uIDE5NzU0MikKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3Rv
cmVCYXJyaWVySW5zZXJ0aW9uUGhhc2UuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yNjAsNiArMjYw
LDcgQEAgcHJpdmF0ZToKICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgIGNhc2UgUHV0Q2xv
c3VyZVZhcjoKICAgICAgICAgICAgIGNhc2UgUHV0VG9Bcmd1bWVudHM6CisgICAgICAgICAgICBj
YXNlIFNldFJlZ0V4cE9iamVjdExhc3RJbmRleDoKICAgICAgICAgICAgIGNhc2UgTXVsdGlQdXRC
eU9mZnNldDogewogICAgICAgICAgICAgICAgIGNvbnNpZGVyQmFycmllcihtX25vZGUtPmNoaWxk
MSgpLCBtX25vZGUtPmNoaWxkMigpKTsKICAgICAgICAgICAgICAgICBicmVhazsKSW5kZXg6IFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMQWJzdHJhY3RIZWFwUmVwb3NpdG9yeS5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExBYnN0cmFjdEhlYXBSZXBv
c2l0b3J5LmNwcAkocmV2aXNpb24gMTk3NTQyKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0
bC9GVExBYnN0cmFjdEhlYXBSZXBvc2l0b3J5LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzksNiAr
MzksNyBAQAogI2luY2x1ZGUgIkpTUHJvcGVydHlOYW1lRW51bWVyYXRvci5oIgogI2luY2x1ZGUg
IkpTU2NvcGUuaCIKICNpbmNsdWRlICJKU0NJbmxpbmVzLmgiCisjaW5jbHVkZSAiUmVnRXhwT2Jq
ZWN0LmgiCiAjaW5jbHVkZSAiU2NvcGVkQXJndW1lbnRzLmgiCiAjaW5jbHVkZSAiU2NvcGVkQXJn
dW1lbnRzVGFibGUuaCIKIApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExBYnN0
cmFjdEhlYXBSZXBvc2l0b3J5LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3Jl
L2Z0bC9GVExBYnN0cmFjdEhlYXBSZXBvc2l0b3J5LmgJKHJldmlzaW9uIDE5NzU0MikKKysrIFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMQWJzdHJhY3RIZWFwUmVwb3NpdG9yeS5oCSh3b3Jr
aW5nIGNvcHkpCkBAIC03Nyw2ICs3Nyw4IEBAIG5hbWVzcGFjZSBKU0MgeyBuYW1lc3BhY2UgRlRM
IHsKICAgICBtYWNybyhKU1N5bWJvbFRhYmxlT2JqZWN0X3N5bWJvbFRhYmxlLCBKU1N5bWJvbFRh
YmxlT2JqZWN0OjpvZmZzZXRPZlN5bWJvbFRhYmxlKCkpIFwKICAgICBtYWNybyhKU1dyYXBwZXJP
YmplY3RfaW50ZXJuYWxWYWx1ZSwgSlNXcmFwcGVyT2JqZWN0OjppbnRlcm5hbFZhbHVlT2Zmc2V0
KCkpIFwKICAgICBtYWNybyhNYXJrZWRBbGxvY2F0b3JfZnJlZUxpc3RIZWFkLCBNYXJrZWRBbGxv
Y2F0b3I6Om9mZnNldE9mRnJlZUxpc3RIZWFkKCkpIFwKKyAgICBtYWNybyhSZWdFeHBPYmplY3Rf
bGFzdEluZGV4LCBSZWdFeHBPYmplY3Q6Om9mZnNldE9mTGFzdEluZGV4KCkpIFwKKyAgICBtYWNy
byhSZWdFeHBPYmplY3RfbGFzdEluZGV4SXNXcml0YWJsZSwgUmVnRXhwT2JqZWN0OjpvZmZzZXRP
Zkxhc3RJbmRleElzV3JpdGFibGUoKSkgXAogICAgIG1hY3JvKFNjb3BlZEFyZ3VtZW50c19vdmVy
cm9kZVRoaW5ncywgU2NvcGVkQXJndW1lbnRzOjpvZmZzZXRPZk92ZXJyb2RlVGhpbmdzKCkpIFwK
ICAgICBtYWNybyhTY29wZWRBcmd1bWVudHNfc2NvcGUsIFNjb3BlZEFyZ3VtZW50czo6b2Zmc2V0
T2ZTY29wZSgpKSBcCiAgICAgbWFjcm8oU2NvcGVkQXJndW1lbnRzX3RhYmxlLCBTY29wZWRBcmd1
bWVudHM6Om9mZnNldE9mVGFibGUoKSkgXApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0
bC9GVExDYXBhYmlsaXRpZXMuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9mdGwvRlRMQ2FwYWJpbGl0aWVzLmNwcAkocmV2aXNpb24gMTk3NTQyKQorKysgU291cmNlL0ph
dmFTY3JpcHRDb3JlL2Z0bC9GVExDYXBhYmlsaXRpZXMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0y
MjQsNiArMjI0LDggQEAgaW5saW5lIENhcGFiaWxpdHlMZXZlbCBjYW5Db21waWxlKE5vZGUqIAog
ICAgIGNhc2UgUmVnRXhwVGVzdDoKICAgICBjYXNlIE5ld1JlZ2V4cDoKICAgICBjYXNlIFN0cmlu
Z1JlcGxhY2U6CisgICAgY2FzZSBHZXRSZWdFeHBPYmplY3RMYXN0SW5kZXg6CisgICAgY2FzZSBT
ZXRSZWdFeHBPYmplY3RMYXN0SW5kZXg6CiAgICAgICAgIC8vIFRoZXNlIGFyZSBPSy4KICAgICAg
ICAgYnJlYWs7CiAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMTG93ZXJERkdU
b0IzLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTExvd2Vy
REZHVG9CMy5jcHAJKHJldmlzaW9uIDE5NzU0MikKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9m
dGwvRlRMTG93ZXJERkdUb0IzLmNwcAkod29ya2luZyBjb3B5KQpAQCAtOTI2LDYgKzkyNiwxMiBA
QCBwcml2YXRlOgogICAgICAgICBjYXNlIFN0cmluZ1JlcGxhY2U6CiAgICAgICAgICAgICBjb21w
aWxlU3RyaW5nUmVwbGFjZSgpOwogICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgR2V0
UmVnRXhwT2JqZWN0TGFzdEluZGV4OgorICAgICAgICAgICAgY29tcGlsZUdldFJlZ0V4cE9iamVj
dExhc3RJbmRleCgpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgU2V0UmVnRXhw
T2JqZWN0TGFzdEluZGV4OgorICAgICAgICAgICAgY29tcGlsZVNldFJlZ0V4cE9iamVjdExhc3RJ
bmRleCgpOworICAgICAgICAgICAgYnJlYWs7CiAKICAgICAgICAgY2FzZSBQaGFudG9tTG9jYWw6
CiAgICAgICAgIGNhc2UgTG9vcEhpbnQ6CkBAIC02NDg5LDggKzY0OTUsNyBAQCBwcml2YXRlOgog
ICAgICAgICAgICAgaWYgKEpTU3RyaW5nKiByZXBsYWNlID0gbV9ub2RlLT5jaGlsZDMoKS0+ZHlu
YW1pY0Nhc3RDb25zdGFudDxKU1N0cmluZyo+KCkpIHsKICAgICAgICAgICAgICAgICBpZiAoIXJl
cGxhY2UtPmxlbmd0aCgpKSB7CiAgICAgICAgICAgICAgICAgICAgIExWYWx1ZSBzdHJpbmcgPSBs
b3dTdHJpbmcobV9ub2RlLT5jaGlsZDEoKSk7Ci0gICAgICAgICAgICAgICAgICAgIExWYWx1ZSBy
ZWdFeHAgPSBsb3dDZWxsKG1fbm9kZS0+Y2hpbGQyKCkpOwotICAgICAgICAgICAgICAgICAgICBz
cGVjdWxhdGVSZWdFeHBPYmplY3QobV9ub2RlLT5jaGlsZDIoKSwgcmVnRXhwKTsKKyAgICAgICAg
ICAgICAgICAgICAgTFZhbHVlIHJlZ0V4cCA9IGxvd1JlZ0V4cE9iamVjdChtX25vZGUtPmNoaWxk
MigpKTsKIAogICAgICAgICAgICAgICAgICAgICBMVmFsdWUgcmVzdWx0ID0gdm1DYWxsKAogICAg
ICAgICAgICAgICAgICAgICAgICAgSW50NjQsIG1fb3V0Lm9wZXJhdGlvbihvcGVyYXRpb25TdHJp
bmdQcm90b0Z1bmNSZXBsYWNlUmVnRXhwRW1wdHlTdHIpLApAQCAtNjUwMiw4ICs2NTA3LDcgQEAg
cHJpdmF0ZToKICAgICAgICAgICAgIH0KICAgICAgICAgICAgIAogICAgICAgICAgICAgTFZhbHVl
IHN0cmluZyA9IGxvd1N0cmluZyhtX25vZGUtPmNoaWxkMSgpKTsKLSAgICAgICAgICAgIExWYWx1
ZSByZWdFeHAgPSBsb3dDZWxsKG1fbm9kZS0+Y2hpbGQyKCkpOwotICAgICAgICAgICAgc3BlY3Vs
YXRlUmVnRXhwT2JqZWN0KG1fbm9kZS0+Y2hpbGQyKCksIHJlZ0V4cCk7CisgICAgICAgICAgICBM
VmFsdWUgcmVnRXhwID0gbG93UmVnRXhwT2JqZWN0KG1fbm9kZS0+Y2hpbGQyKCkpOwogICAgICAg
ICAgICAgTFZhbHVlIHJlcGxhY2UgPSBsb3dTdHJpbmcobV9ub2RlLT5jaGlsZDMoKSk7CiAKICAg
ICAgICAgICAgIExWYWx1ZSByZXN1bHQgPSB2bUNhbGwoCkBAIC02NTIyLDYgKzY1MjYsMjMgQEAg
cHJpdmF0ZToKICAgICAgICAgc2V0SlNWYWx1ZShyZXN1bHQpOwogICAgIH0KIAorICAgIHZvaWQg
Y29tcGlsZUdldFJlZ0V4cE9iamVjdExhc3RJbmRleCgpCisgICAgeworICAgICAgICBzZXRKU1Zh
bHVlKG1fb3V0LmxvYWQ2NChsb3dSZWdFeHBPYmplY3QobV9ub2RlLT5jaGlsZDEoKSksIG1faGVh
cHMuUmVnRXhwT2JqZWN0X2xhc3RJbmRleCkpOworICAgIH0KKworICAgIHZvaWQgY29tcGlsZVNl
dFJlZ0V4cE9iamVjdExhc3RJbmRleCgpCisgICAgeworICAgICAgICBMVmFsdWUgcmVnRXhwID0g
bG93UmVnRXhwT2JqZWN0KG1fbm9kZS0+Y2hpbGQxKCkpOworICAgICAgICBMVmFsdWUgdmFsdWUg
PSBsb3dKU1ZhbHVlKG1fbm9kZS0+Y2hpbGQyKCkpOworCisgICAgICAgIHNwZWN1bGF0ZSgKKyAg
ICAgICAgICAgIEV4b3RpY09iamVjdE1vZGUsIG5vVmFsdWUoKSwgbnVsbHB0ciwKKyAgICAgICAg
ICAgIG1fb3V0LmlzWmVybzMyKG1fb3V0LmxvYWQ4WmVyb0V4dDMyKHJlZ0V4cCwgbV9oZWFwcy5S
ZWdFeHBPYmplY3RfbGFzdEluZGV4SXNXcml0YWJsZSkpKTsKKyAgICAgICAgCisgICAgICAgIG1f
b3V0LnN0b3JlNjQodmFsdWUsIHJlZ0V4cCwgbV9oZWFwcy5SZWdFeHBPYmplY3RfbGFzdEluZGV4
KTsKKyAgICB9CisKICAgICBMVmFsdWUgZGlkT3ZlcmZsb3dTdGFjaygpCiAgICAgewogICAgICAg
ICAvLyBUaGlzIGRvZXMgYSB2ZXJ5IHNpbXBsZSBsZWFmIGZ1bmN0aW9uIGFuYWx5c2lzLiBUaGUg
aW52YXJpYW50IG9mIEZUTCBjYWxsCkBAIC04OTI1LDYgKzg5NDYsMTMgQEAgcHJpdmF0ZToKICAg
ICAgICAgc3BlY3VsYXRlT2JqZWN0KGVkZ2UsIHJlc3VsdCk7CiAgICAgICAgIHJldHVybiByZXN1
bHQ7CiAgICAgfQorCisgICAgTFZhbHVlIGxvd1JlZ0V4cE9iamVjdChFZGdlIGVkZ2UpCisgICAg
eworICAgICAgICBMVmFsdWUgcmVzdWx0ID0gbG93Q2VsbChlZGdlKTsKKyAgICAgICAgc3BlY3Vs
YXRlUmVnRXhwT2JqZWN0KGVkZ2UsIHJlc3VsdCk7CisgICAgICAgIHJldHVybiByZXN1bHQ7Cisg
ICAgfQogICAgIAogICAgIExWYWx1ZSBsb3dTdHJpbmcoRWRnZSBlZGdlLCBPcGVyYW5kU3BlY3Vs
YXRpb25Nb2RlIG1vZGUgPSBBdXRvbWF0aWNPcGVyYW5kU3BlY3VsYXRpb24pCiAgICAgewpJbmRl
eDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhwT2JqZWN0LmgKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhwT2JqZWN0LmgJKHJldmlz
aW9uIDE5NzU0MikKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4cE9iamVj
dC5oCSh3b3JraW5nIGNvcHkpCkBAIC03NCw2ICs3NCwxNiBAQCBwdWJsaWM6CiAgICAgICAgIHJl
dHVybiBTdHJ1Y3R1cmU6OmNyZWF0ZSh2bSwgZ2xvYmFsT2JqZWN0LCBwcm90b3R5cGUsIFR5cGVJ
bmZvKFJlZ0V4cE9iamVjdFR5cGUsIFN0cnVjdHVyZUZsYWdzKSwgaW5mbygpKTsKICAgICB9CiAK
KyAgICBzdGF0aWMgcHRyZGlmZl90IG9mZnNldE9mTGFzdEluZGV4KCkKKyAgICB7CisgICAgICAg
IHJldHVybiBPQkpFQ1RfT0ZGU0VUT0YoUmVnRXhwT2JqZWN0LCBtX2xhc3RJbmRleCk7CisgICAg
fQorCisgICAgc3RhdGljIHB0cmRpZmZfdCBvZmZzZXRPZkxhc3RJbmRleElzV3JpdGFibGUoKQor
ICAgIHsKKyAgICAgICAgcmV0dXJuIE9CSkVDVF9PRkZTRVRPRihSZWdFeHBPYmplY3QsIG1fbGFz
dEluZGV4SXNXcml0YWJsZSk7CisgICAgfQorCiBwcm90ZWN0ZWQ6CiAgICAgSlNfRVhQT1JUX1BS
SVZBVEUgUmVnRXhwT2JqZWN0KFZNJiwgU3RydWN0dXJlKiwgUmVnRXhwKik7CiAgICAgSlNfRVhQ
T1JUX1BSSVZBVEUgdm9pZCBmaW5pc2hDcmVhdGlvbihWTSYpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>272831</attachid>
            <date>2016-03-03 21:52:21 -0800</date>
            <delta_ts>2016-03-03 22:13:46 -0800</delta_ts>
            <desc>the patch</desc>
            <filename>blah.patch</filename>
            <type>text/plain</type>
            <size>26798</size>
            <attacher name="Filip Pizlo">fpizlo</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTk3NTQzKQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDYyIEBA
CisyMDE2LTAzLTAzICBGaWxpcCBQaXpsbyAgPGZwaXpsb0BhcHBsZS5jb20+CisKKyAgICAgICAg
REZHL0ZUTCBzaG91bGQgaW5saW5lIGFjY2Vzc2VzIHRvIFJlZ0V4cE9iamVjdDo6bV9sYXN0SW5k
ZXgKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1NTAw
MworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoZSBP
Y3RhbmUvcmVnZXhwIGJlbmNobWFyayBzZXRzIFJlZ0V4cHMnIGxhc3RJbmRleCBhIGxvdC4gSSBj
b3VsZCBpbWFnaW5lIHRoaXMgYmVpbmcKKyAgICAgICAgc29tZXRoaW5nIHRoYXQgcGVvcGxlIHdh
bnQgdG8gZG8uIFJpZ2h0IG5vdywgSSdtIG5vdCBjb252aW5jZWQgdGhhdCBtYWtpbmcgdGhlIFJl
Z0V4cCBvYmplY3QKKyAgICAgICAgYmUgbW9yZSBwbGFpbi1KUyB3b3VsZCBiZSBhIGdvb2QgaWRl
YSBjb25zaWRlcmluZyB0aGF0IHByZXR0eSBtdWNoIGFsbCB1c2VzIG9mIGl0IHdpbGwKKyAgICAg
ICAgcmVxdWlyZSBzb21lIHNwZWNpYWwgY29tcGlsZXIgbWFnaWMuIEFsc28sIGl0J3MgZ29vZCB0
aGF0IHRoaXMgcGF0Y2ggdGVhY2hlcyB0aGUgY29tcGlsZXIKKyAgICAgICAgaG93IHRvIHJlYXNv
biBhYm91dCBsYXN0SW5kZXggc2luY2Ugc29tZSBvZiBteSBvdGhlciBwbGFucyBmb3IgcmVnZXhw
IGludm9sdmUgaGF2aW5nIHRoZQorICAgICAgICBjb21waWxlciB0cmVhdCBtb3JlIHJlZ2V4cCBz
dHVmZiBhcyBpbnRyaW5zaWMuCisKKyAgICAgICAgVGhpcyBpcyBhIHNtYWxsZXIgT2N0YW5lL3Jl
Z2V4cCBzcGVlZC11cCB0aGFuIEkgaG9wZWQgLSBtYXliZSBhcm91bmQgMSUuIEl0J3MgYW4gZW5v
cm1vdXMKKyAgICAgICAgc3BlZWQtdXAgb24gdGhlIG1pY3JvYmVuY2htYXJrcyBhdHRhY2hlZCB0
byB0aGlzIHBhdGNoLgorCisgICAgICAgICogZGZnL0RGR0Fic3RyYWN0SGVhcC5oOgorICAgICAg
ICAqIGRmZy9ERkdBYnN0cmFjdEludGVycHJldGVySW5saW5lcy5oOgorICAgICAgICAoSlNDOjpE
Rkc6OkFic3RyYWN0SW50ZXJwcmV0ZXI8QWJzdHJhY3RTdGF0ZVR5cGU+OjpleGVjdXRlRWZmZWN0
cyk6CisgICAgICAgICogZGZnL0RGR0Nsb2JiZXJpemUuaDoKKyAgICAgICAgKEpTQzo6REZHOjpj
bG9iYmVyaXplKToKKyAgICAgICAgKiBkZmcvREZHRG9lc0dDLmNwcDoKKyAgICAgICAgKEpTQzo6
REZHOjpkb2VzR0MpOgorICAgICAgICAqIGRmZy9ERkdGaXh1cFBoYXNlLmNwcDoKKyAgICAgICAg
KEpTQzo6REZHOjpGaXh1cFBoYXNlOjpmaXh1cE5vZGUpOgorICAgICAgICAqIGRmZy9ERkdIZWFw
TG9jYXRpb24uaDoKKyAgICAgICAgKiBkZmcvREZHTm9kZVR5cGUuaDoKKyAgICAgICAgKiBkZmcv
REZHUHJlZGljdGlvblByb3BhZ2F0aW9uUGhhc2UuY3BwOgorICAgICAgICAoSlNDOjpERkc6OlBy
ZWRpY3Rpb25Qcm9wYWdhdGlvblBoYXNlOjpwcm9wYWdhdGUpOgorICAgICAgICAqIGRmZy9ERkdT
YWZlVG9FeGVjdXRlLmg6CisgICAgICAgIChKU0M6OkRGRzo6c2FmZVRvRXhlY3V0ZSk6CisgICAg
ICAgICogZGZnL0RGR1NwZWN1bGF0aXZlSklULmNwcDoKKyAgICAgICAgKEpTQzo6REZHOjpTcGVj
dWxhdGl2ZUpJVDo6Y29tcGlsZVB1dEFjY2Vzc29yQnlWYWwpOgorICAgICAgICAoSlNDOjpERkc6
OlNwZWN1bGF0aXZlSklUOjpjb21waWxlR2V0UmVnRXhwT2JqZWN0TGFzdEluZGV4KToKKyAgICAg
ICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZVNldFJlZ0V4cE9iamVjdExhc3RJ
bmRleCk6CisgICAgICAgICogZGZnL0RGR1NwZWN1bGF0aXZlSklULmg6CisgICAgICAgICogZGZn
L0RGR1NwZWN1bGF0aXZlSklUMzJfNjQuY3BwOgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0
aXZlSklUOjpjb21waWxlKToKKyAgICAgICAgKiBkZmcvREZHU3BlY3VsYXRpdmVKSVQ2NC5jcHA6
CisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGUpOgorICAgICAgICAq
IGRmZy9ERkdTdG9yZUJhcnJpZXJJbnNlcnRpb25QaGFzZS5jcHA6CisgICAgICAgICogZnRsL0ZU
TEFic3RyYWN0SGVhcFJlcG9zaXRvcnkuY3BwOgorICAgICAgICAqIGZ0bC9GVExBYnN0cmFjdEhl
YXBSZXBvc2l0b3J5Lmg6CisgICAgICAgICogZnRsL0ZUTENhcGFiaWxpdGllcy5jcHA6CisgICAg
ICAgIChKU0M6OkZUTDo6Y2FuQ29tcGlsZSk6CisgICAgICAgICogZnRsL0ZUTExvd2VyREZHVG9C
My5jcHA6CisgICAgICAgIChKU0M6OkZUTDo6REZHOjpMb3dlckRGR1RvQjM6OmNvbXBpbGVOb2Rl
KToKKyAgICAgICAgKEpTQzo6RlRMOjpERkc6Okxvd2VyREZHVG9CMzo6Y29tcGlsZVN0cmluZ1Jl
cGxhY2UpOgorICAgICAgICAoSlNDOjpGVEw6OkRGRzo6TG93ZXJERkdUb0IzOjpjb21waWxlR2V0
UmVnRXhwT2JqZWN0TGFzdEluZGV4KToKKyAgICAgICAgKEpTQzo6RlRMOjpERkc6Okxvd2VyREZH
VG9CMzo6Y29tcGlsZVNldFJlZ0V4cE9iamVjdExhc3RJbmRleCk6CisgICAgICAgIChKU0M6OkZU
TDo6REZHOjpMb3dlckRGR1RvQjM6OmRpZE92ZXJmbG93U3RhY2spOgorICAgICAgICAoSlNDOjpG
VEw6OkRGRzo6TG93ZXJERkdUb0IzOjpsb3dPYmplY3QpOgorICAgICAgICAoSlNDOjpGVEw6OkRG
Rzo6TG93ZXJERkdUb0IzOjpsb3dSZWdFeHBPYmplY3QpOgorICAgICAgICAoSlNDOjpGVEw6OkRG
Rzo6TG93ZXJERkdUb0IzOjpsb3dTdHJpbmcpOgorICAgICAgICAqIHJ1bnRpbWUvUmVnRXhwT2Jq
ZWN0Lmg6CisgICAgICAgIChKU0M6OlJlZ0V4cE9iamVjdDo6Y3JlYXRlU3RydWN0dXJlKToKKyAg
ICAgICAgKEpTQzo6UmVnRXhwT2JqZWN0OjpvZmZzZXRPZkxhc3RJbmRleCk6CisKIDIwMTYtMDMt
MDMgIEtlaXRoIE1pbGxlciAgPGtlaXRoX21pbGxlckBhcHBsZS5jb20+CiAKICAgICAgICAgSlNB
cnJheUJ1ZmZlcnMgc2hvdWxkIGJlIGNvbGxlY3RlZCBsZXNzIGFnZ3Jlc3NpdmVseQpJbmRleDog
U291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdBYnN0cmFjdEhlYXAuaAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0Fic3RyYWN0SGVhcC5oCShyZXZpc2lvbiAx
OTc1NDIpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0Fic3RyYWN0SGVhcC5oCSh3
b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMy0y
MDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAx
My0yMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
ICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucwpAQCAtNTgsNiArNTgsNyBAQCBuYW1lc3BhY2UgSlNDIHsgbmFtZXNwYWNl
IERGRyB7CiAgICAgbWFjcm8oSlNDZWxsX3R5cGVJbmZvVHlwZSkgXAogICAgIG1hY3JvKEpTT2Jq
ZWN0X2J1dHRlcmZseSkgXAogICAgIG1hY3JvKEpTUHJvcGVydHlOYW1lRW51bWVyYXRvcl9jYWNo
ZWRQcm9wZXJ0eU5hbWVzKSBcCisgICAgbWFjcm8oUmVnRXhwT2JqZWN0X2xhc3RJbmRleCkgXAog
ICAgIG1hY3JvKE5hbWVkUHJvcGVydGllcykgXAogICAgIG1hY3JvKEluZGV4ZWRJbnQzMlByb3Bl
cnRpZXMpIFwKICAgICBtYWNybyhJbmRleGVkRG91YmxlUHJvcGVydGllcykgXApJbmRleDogU291
cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdBYnN0cmFjdEludGVycHJldGVySW5saW5lcy5oCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQWJzdHJhY3RJbnRlcnBy
ZXRlcklubGluZXMuaAkocmV2aXNpb24gMTk3NTQyKQorKysgU291cmNlL0phdmFTY3JpcHRDb3Jl
L2RmZy9ERkdBYnN0cmFjdEludGVycHJldGVySW5saW5lcy5oCSh3b3JraW5nIGNvcHkpCkBAIC0x
ODgyLDYgKzE4ODIsMTMgQEAgYm9vbCBBYnN0cmFjdEludGVycHJldGVyPEFic3RyYWN0U3RhdGVU
eQogICAgICAgICAgICAgCiAgICAgY2FzZSBQdXRDbG9zdXJlVmFyOgogICAgICAgICBicmVhazsK
KworICAgIGNhc2UgR2V0UmVnRXhwT2JqZWN0TGFzdEluZGV4OgorICAgICAgICBmb3JOb2RlKG5v
ZGUpLm1ha2VIZWFwVG9wKCk7CisgICAgICAgIGJyZWFrOworCisgICAgY2FzZSBTZXRSZWdFeHBP
YmplY3RMYXN0SW5kZXg6CisgICAgICAgIGJyZWFrOwogICAgICAgICAKICAgICBjYXNlIEdldEZy
b21Bcmd1bWVudHM6CiAgICAgICAgIGZvck5vZGUobm9kZSkubWFrZUhlYXBUb3AoKTsKSW5kZXg6
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQ2xvYmJlcml6ZS5oCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQ2xvYmJlcml6ZS5oCShyZXZpc2lvbiAxOTc1
NDIpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0Nsb2JiZXJpemUuaAkod29ya2lu
ZyBjb3B5KQpAQCAtOTA4LDYgKzkwOCwxNiBAQCB2b2lkIGNsb2JiZXJpemUoR3JhcGgmIGdyYXBo
LCBOb2RlKiBub2RlCiAgICAgICAgIHdyaXRlKEFic3RyYWN0SGVhcChTY29wZVByb3BlcnRpZXMs
IG5vZGUtPnNjb3BlT2Zmc2V0KCkub2Zmc2V0KCkpKTsKICAgICAgICAgZGVmKEhlYXBMb2NhdGlv
bihDbG9zdXJlVmFyaWFibGVMb2MsIEFic3RyYWN0SGVhcChTY29wZVByb3BlcnRpZXMsIG5vZGUt
PnNjb3BlT2Zmc2V0KCkub2Zmc2V0KCkpLCBub2RlLT5jaGlsZDEoKSksIExhenlOb2RlKG5vZGUt
PmNoaWxkMigpLm5vZGUoKSkpOwogICAgICAgICByZXR1cm47CisKKyAgICBjYXNlIEdldFJlZ0V4
cE9iamVjdExhc3RJbmRleDoKKyAgICAgICAgcmVhZChSZWdFeHBPYmplY3RfbGFzdEluZGV4KTsK
KyAgICAgICAgZGVmKEhlYXBMb2NhdGlvbihSZWdFeHBPYmplY3RMYXN0SW5kZXhMb2MsIFJlZ0V4
cE9iamVjdF9sYXN0SW5kZXgsIG5vZGUtPmNoaWxkMSgpKSwgTGF6eU5vZGUobm9kZSkpOworICAg
ICAgICByZXR1cm47CisKKyAgICBjYXNlIFNldFJlZ0V4cE9iamVjdExhc3RJbmRleDoKKyAgICAg
ICAgd3JpdGUoUmVnRXhwT2JqZWN0X2xhc3RJbmRleCk7CisgICAgICAgIGRlZihIZWFwTG9jYXRp
b24oUmVnRXhwT2JqZWN0TGFzdEluZGV4TG9jLCBSZWdFeHBPYmplY3RfbGFzdEluZGV4LCBub2Rl
LT5jaGlsZDEoKSksIExhenlOb2RlKG5vZGUtPmNoaWxkMigpLm5vZGUoKSkpOworICAgICAgICBy
ZXR1cm47CiAgICAgICAgIAogICAgIGNhc2UgR2V0RnJvbUFyZ3VtZW50czogewogICAgICAgICBB
YnN0cmFjdEhlYXAgaGVhcChEaXJlY3RBcmd1bWVudHNQcm9wZXJ0aWVzLCBub2RlLT5jYXB0dXJl
ZEFyZ3VtZW50c09mZnNldCgpLm9mZnNldCgpKTsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9kZmcvREZHRG9lc0dDLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
ZGZnL0RGR0RvZXNHQy5jcHAJKHJldmlzaW9uIDE5NzU0MikKKysrIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9kZmcvREZHRG9lc0dDLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTEzLDYgKzExMyw4IEBA
IGJvb2wgZG9lc0dDKEdyYXBoJiBncmFwaCwgTm9kZSogbm9kZSkKICAgICBjYXNlIFNraXBTY29w
ZToKICAgICBjYXNlIEdldENsb3N1cmVWYXI6CiAgICAgY2FzZSBQdXRDbG9zdXJlVmFyOgorICAg
IGNhc2UgR2V0UmVnRXhwT2JqZWN0TGFzdEluZGV4OgorICAgIGNhc2UgU2V0UmVnRXhwT2JqZWN0
TGFzdEluZGV4OgogICAgIGNhc2UgR2V0R2xvYmFsVmFyOgogICAgIGNhc2UgR2V0R2xvYmFsTGV4
aWNhbFZhcmlhYmxlOgogICAgIGNhc2UgUHV0R2xvYmFsVmFyaWFibGU6CkluZGV4OiBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvZGZnL0RGR0ZpeHVwUGhhc2UuY3BwCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHRml4dXBQaGFzZS5jcHAJKHJldmlzaW9uIDE5NzU0MikK
KysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHRml4dXBQaGFzZS5jcHAJKHdvcmtpbmcg
Y29weSkKQEAgLTEwNzIsMTEgKzEwNzIsMjEgQEAgcHJpdmF0ZToKICAgICAgICAgICAgICAgICAm
JiAhbV9ncmFwaC5oYXNFeGl0U2l0ZShub2RlLT5vcmlnaW4uc2VtYW50aWMsIEJhZENhY2hlKQog
ICAgICAgICAgICAgICAgICYmICFtX2dyYXBoLmhhc0V4aXRTaXRlKG5vZGUtPm9yaWdpbi5zZW1h
bnRpYywgQmFkSW5kZXhpbmdUeXBlKQogICAgICAgICAgICAgICAgICYmICFtX2dyYXBoLmhhc0V4
aXRTaXRlKG5vZGUtPm9yaWdpbi5zZW1hbnRpYywgRXhvdGljT2JqZWN0TW9kZSkpIHsKKyAgICAg
ICAgICAgICAgICAKICAgICAgICAgICAgICAgICBhdXRvIHVpZCA9IG1fZ3JhcGguaWRlbnRpZmll
cnMoKVtub2RlLT5pZGVudGlmaWVyTnVtYmVyKCldOworICAgICAgICAgICAgICAgIAogICAgICAg
ICAgICAgICAgIGlmICh1aWQgPT0gdm0oKS5wcm9wZXJ0eU5hbWVzLT5sZW5ndGguaW1wbCgpKSB7
CiAgICAgICAgICAgICAgICAgICAgIGF0dGVtcHRUb01ha2VHZXRBcnJheUxlbmd0aChub2RlKTsK
ICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICAgfQorCisgICAgICAg
ICAgICAgICAgaWYgKHVpZCA9PSB2bSgpLnByb3BlcnR5TmFtZXMtPmxhc3RJbmRleC5pbXBsKCkK
KyAgICAgICAgICAgICAgICAgICAgJiYgbm9kZS0+Y2hpbGQxKCktPnNob3VsZFNwZWN1bGF0ZVJl
Z0V4cE9iamVjdCgpKSB7CisgICAgICAgICAgICAgICAgICAgIG5vZGUtPnNldE9wKEdldFJlZ0V4
cE9iamVjdExhc3RJbmRleCk7CisgICAgICAgICAgICAgICAgICAgIG5vZGUtPmNsZWFyRmxhZ3Mo
Tm9kZU11c3RHZW5lcmF0ZSk7CisgICAgICAgICAgICAgICAgICAgIGZpeEVkZ2U8UmVnRXhwT2Jq
ZWN0VXNlPihub2RlLT5jaGlsZDEoKSk7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAg
ICAgICAgICAgICAgIH0KICAgICAgICAgICAgIH0KIAogICAgICAgICAgICAgaWYgKG5vZGUtPmNo
aWxkMSgpLT5zaG91bGRTcGVjdWxhdGVDZWxsKCkpCkBAIC0xMDg3LDYgKzEwOTcsMjMgQEAgcHJp
dmF0ZToKICAgICAgICAgY2FzZSBQdXRCeUlkOgogICAgICAgICBjYXNlIFB1dEJ5SWRGbHVzaDoK
ICAgICAgICAgY2FzZSBQdXRCeUlkRGlyZWN0OiB7CisgICAgICAgICAgICBpZiAobm9kZS0+Y2hp
bGQxKCktPnNob3VsZFNwZWN1bGF0ZUNlbGxPck90aGVyKCkKKyAgICAgICAgICAgICAgICAmJiAh
bV9ncmFwaC5oYXNFeGl0U2l0ZShub2RlLT5vcmlnaW4uc2VtYW50aWMsIEJhZFR5cGUpCisgICAg
ICAgICAgICAgICAgJiYgIW1fZ3JhcGguaGFzRXhpdFNpdGUobm9kZS0+b3JpZ2luLnNlbWFudGlj
LCBCYWRDYWNoZSkKKyAgICAgICAgICAgICAgICAmJiAhbV9ncmFwaC5oYXNFeGl0U2l0ZShub2Rl
LT5vcmlnaW4uc2VtYW50aWMsIEJhZEluZGV4aW5nVHlwZSkKKyAgICAgICAgICAgICAgICAmJiAh
bV9ncmFwaC5oYXNFeGl0U2l0ZShub2RlLT5vcmlnaW4uc2VtYW50aWMsIEV4b3RpY09iamVjdE1v
ZGUpKSB7CisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgYXV0byB1aWQgPSBtX2dy
YXBoLmlkZW50aWZpZXJzKClbbm9kZS0+aWRlbnRpZmllck51bWJlcigpXTsKKyAgICAgICAgICAg
ICAgICAKKyAgICAgICAgICAgICAgICBpZiAodWlkID09IHZtKCkucHJvcGVydHlOYW1lcy0+bGFz
dEluZGV4LmltcGwoKQorICAgICAgICAgICAgICAgICAgICAmJiBub2RlLT5jaGlsZDEoKS0+c2hv
dWxkU3BlY3VsYXRlUmVnRXhwT2JqZWN0KCkpIHsKKyAgICAgICAgICAgICAgICAgICAgbm9kZS0+
c2V0T3AoU2V0UmVnRXhwT2JqZWN0TGFzdEluZGV4KTsKKyAgICAgICAgICAgICAgICAgICAgZml4
RWRnZTxSZWdFeHBPYmplY3RVc2U+KG5vZGUtPmNoaWxkMSgpKTsKKyAgICAgICAgICAgICAgICAg
ICAgc3BlY3VsYXRlRm9yQmFycmllcihub2RlLT5jaGlsZDIoKSk7CisgICAgICAgICAgICAgICAg
ICAgIGJyZWFrOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAg
IAogICAgICAgICAgICAgZml4RWRnZTxDZWxsVXNlPihub2RlLT5jaGlsZDEoKSk7CiAgICAgICAg
ICAgICBicmVhazsKICAgICAgICAgfQpAQCAtMTI2Nyw2ICsxMjk0LDggQEAgcHJpdmF0ZToKICAg
ICAgICAgY2FzZSBLaWxsU3RhY2s6CiAgICAgICAgIGNhc2UgR2V0U3RhY2s6CiAgICAgICAgIGNh
c2UgU3RvcmVCYXJyaWVyOgorICAgICAgICBjYXNlIEdldFJlZ0V4cE9iamVjdExhc3RJbmRleDoK
KyAgICAgICAgY2FzZSBTZXRSZWdFeHBPYmplY3RMYXN0SW5kZXg6CiAgICAgICAgICAgICAvLyBU
aGVzZSBhcmUganVzdCBub2RlcyB0aGF0IHdlIGRvbid0IGN1cnJlbnRseSBleHBlY3QgdG8gc2Vl
IGR1cmluZyBmaXh1cC4KICAgICAgICAgICAgIC8vIElmIHdlIGV2ZXIgd2FudGVkIHRvIGluc2Vy
dCB0aGVtIHByaW9yIHRvIGZpeHVwLCB0aGVuIHdlIGp1c3QgaGF2ZSB0byBjcmVhdGUKICAgICAg
ICAgICAgIC8vIGZpeHVwIHJ1bGVzIGZvciB0aGVtLgpJbmRleDogU291cmNlL0phdmFTY3JpcHRD
b3JlL2RmZy9ERkdIZWFwTG9jYXRpb24uY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9kZmcvREZHSGVhcExvY2F0aW9uLmNwcAkocmV2aXNpb24gMTk3NTQyKQorKysgU291
cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdIZWFwTG9jYXRpb24uY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxNCwgMjAxNSBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTQtMjAxNiBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKQEAgLTE0Nyw2ICsxNDcsMTAgQEAgdm9pZCBwcmludEludGVybmFsKFByaW50U3RyZWFtJiBv
dXQsIExvYwogICAgIGNhc2UgU3RydWN0dXJlTG9jOgogICAgICAgICBvdXQucHJpbnQoIlN0cnVj
dHVyZUxvYyIpOwogICAgICAgICByZXR1cm47CisKKyAgICBjYXNlIFJlZ0V4cE9iamVjdExhc3RJ
bmRleExvYzoKKyAgICAgICAgb3V0LnByaW50KCJSZWdFeHBPYmplY3RMYXN0SW5kZXhMb2MiKTsK
KyAgICAgICAgcmV0dXJuOwogICAgIH0KICAgICAKICAgICBSRUxFQVNFX0FTU0VSVF9OT1RfUkVB
Q0hFRCgpOwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdIZWFwTG9jYXRpb24u
aAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0hlYXBMb2NhdGlv
bi5oCShyZXZpc2lvbiAxOTc1NDIpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0hl
YXBMb2NhdGlvbi5oCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHly
aWdodCAoQykgMjAxNCwgMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBD
b3B5cmlnaHQgKEMpIDIwMTQtMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAg
KgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTU0LDYgKzU0LDcgQEAgZW51bSBMb2Nh
dGlvbktpbmQgewogICAgIElzRnVuY3Rpb25Mb2MsCiAgICAgSXNPYmplY3RPck51bGxMb2MsCiAg
ICAgTmFtZWRQcm9wZXJ0eUxvYywKKyAgICBSZWdFeHBPYmplY3RMYXN0SW5kZXhMb2MsCiAgICAg
U2V0dGVyTG9jLAogICAgIFN0cnVjdHVyZUxvYywKICAgICBUeXBlZEFycmF5Qnl0ZU9mZnNldExv
YywKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHTm9kZVR5cGUuaAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR05vZGVUeXBlLmgJKHJldmlzaW9u
IDE5NzU0MikKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHTm9kZVR5cGUuaAkod29y
a2luZyBjb3B5KQpAQCAtMjE5LDYgKzIxOSw4IEBAIG5hbWVzcGFjZSBKU0MgeyBuYW1lc3BhY2Ug
REZHIHsKICAgICBtYWNybyhQdXRHbG9iYWxWYXJpYWJsZSwgTm9kZU11c3RHZW5lcmF0ZSkgXAog
ICAgIG1hY3JvKE5vdGlmeVdyaXRlLCBOb2RlTXVzdEdlbmVyYXRlKSBcCiAgICAgbWFjcm8oVmFy
SW5qZWN0aW9uV2F0Y2hwb2ludCwgTm9kZU11c3RHZW5lcmF0ZSkgXAorICAgIG1hY3JvKEdldFJl
Z0V4cE9iamVjdExhc3RJbmRleCwgTm9kZVJlc3VsdEpTKSBcCisgICAgbWFjcm8oU2V0UmVnRXhw
T2JqZWN0TGFzdEluZGV4LCBOb2RlTXVzdEdlbmVyYXRlKSBcCiAgICAgbWFjcm8oQ2hlY2tDZWxs
LCBOb2RlTXVzdEdlbmVyYXRlKSBcCiAgICAgbWFjcm8oQ2hlY2tOb3RFbXB0eSwgTm9kZU11c3RH
ZW5lcmF0ZSkgXAogICAgIG1hY3JvKENoZWNrQmFkQ2VsbCwgTm9kZU11c3RHZW5lcmF0ZSkgXApJ
bmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdQcmVkaWN0aW9uUHJvcGFnYXRpb25Q
aGFzZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdQcmVk
aWN0aW9uUHJvcGFnYXRpb25QaGFzZS5jcHAJKHJldmlzaW9uIDE5NzU0MikKKysrIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9kZmcvREZHUHJlZGljdGlvblByb3BhZ2F0aW9uUGhhc2UuY3BwCSh3b3Jr
aW5nIGNvcHkpCkBAIC02NjUsNyArNjY1LDkgQEAgcHJpdmF0ZToKICAgICAgICAgY2FzZSBQdXRT
dGFjazoKICAgICAgICAgY2FzZSBLaWxsU3RhY2s6CiAgICAgICAgIGNhc2UgU3RvcmVCYXJyaWVy
OgotICAgICAgICBjYXNlIEdldFN0YWNrOiB7CisgICAgICAgIGNhc2UgR2V0U3RhY2s6CisgICAg
ICAgIGNhc2UgR2V0UmVnRXhwT2JqZWN0TGFzdEluZGV4OgorICAgICAgICBjYXNlIFNldFJlZ0V4
cE9iamVjdExhc3RJbmRleDogewogICAgICAgICAgICAgLy8gVGhpcyBub2RlIHNob3VsZCBuZXZl
ciBiZSB2aXNpYmxlIGF0IHRoaXMgc3RhZ2Ugb2YgY29tcGlsYXRpb24uIEl0IGlzCiAgICAgICAg
ICAgICAvLyBpbnNlcnRlZCBieSBmaXh1cCgpLCB3aGljaCBmb2xsb3dzIHRoaXMgcGhhc2UuCiAg
ICAgICAgICAgICBERkdfQ1JBU0gobV9ncmFwaCwgbm9kZSwgIlVuZXhwZWN0ZWQgbm9kZSBkdXJp
bmcgcHJlZGljdGlvbiBwcm9wYWdhdGlvbiIpOwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3Jl
L2RmZy9ERkdTYWZlVG9FeGVjdXRlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRD
b3JlL2RmZy9ERkdTYWZlVG9FeGVjdXRlLmgJKHJldmlzaW9uIDE5NzU0MikKKysrIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9kZmcvREZHU2FmZVRvRXhlY3V0ZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0z
MzIsNiArMzMyLDggQEAgYm9vbCBzYWZlVG9FeGVjdXRlKEFic3RyYWN0U3RhdGVUeXBlJiBzdAog
ICAgIGNhc2UgRm9yd2FyZFZhcmFyZ3M6CiAgICAgY2FzZSBDb3B5UmVzdDoKICAgICBjYXNlIFN0
cmluZ1JlcGxhY2U6CisgICAgY2FzZSBHZXRSZWdFeHBPYmplY3RMYXN0SW5kZXg6CisgICAgY2Fz
ZSBTZXRSZWdFeHBPYmplY3RMYXN0SW5kZXg6CiAgICAgICAgIHJldHVybiB0cnVlOwogCiAgICAg
Y2FzZSBCb3R0b21WYWx1ZToKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3Bl
Y3VsYXRpdmVKSVQzMl82NC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3Jl
L2RmZy9ERkdTcGVjdWxhdGl2ZUpJVDMyXzY0LmNwcAkocmV2aXNpb24gMTk3NTQyKQorKysgU291
cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVDMyXzY0LmNwcAkod29ya2lu
ZyBjb3B5KQpAQCAtMjk3MCw2ICsyOTcwLDE2IEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNvbXBp
bGUoTm9kZSogbm9kZSkKICAgICAgICAgY2VsbFJlc3VsdChyZXN1bHRQYXlsb2FkLmdwcigpLCBu
b2RlKTsKICAgICAgICAgYnJlYWs7CiAgICAgfQorCisgICAgY2FzZSBHZXRSZWdFeHBPYmplY3RM
YXN0SW5kZXg6IHsKKyAgICAgICAgY29tcGlsZUdldFJlZ0V4cE9iamVjdExhc3RJbmRleChub2Rl
KTsKKyAgICAgICAgYnJlYWs7CisgICAgfQorICAgICAgICAKKyAgICBjYXNlIFNldFJlZ0V4cE9i
amVjdExhc3RJbmRleDogeworICAgICAgICBjb21waWxlU2V0UmVnRXhwT2JqZWN0TGFzdEluZGV4
KG5vZGUpOworICAgICAgICBicmVhazsKKyAgICB9CiAgICAgICAgIAogICAgIGNhc2UgQXJyYXlQ
dXNoOiB7CiAgICAgICAgIEFTU0VSVChub2RlLT5hcnJheU1vZGUoKS5pc0pTQXJyYXkoKSk7Cklu
ZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklUNjQuY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQ2
NC5jcHAJKHJldmlzaW9uIDE5NzU0MikKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZH
U3BlY3VsYXRpdmVKSVQ2NC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTMwODgsNiArMzA4OCwxNiBA
QCB2b2lkIFNwZWN1bGF0aXZlSklUOjpjb21waWxlKE5vZGUqIG5vZGUpCiAgICAgICAgIGJyZWFr
OwogICAgIH0KICAgICAgICAgCisgICAgY2FzZSBHZXRSZWdFeHBPYmplY3RMYXN0SW5kZXg6IHsK
KyAgICAgICAgY29tcGlsZUdldFJlZ0V4cE9iamVjdExhc3RJbmRleChub2RlKTsKKyAgICAgICAg
YnJlYWs7CisgICAgfQorICAgICAgICAKKyAgICBjYXNlIFNldFJlZ0V4cE9iamVjdExhc3RJbmRl
eDogeworICAgICAgICBjb21waWxlU2V0UmVnRXhwT2JqZWN0TGFzdEluZGV4KG5vZGUpOworICAg
ICAgICBicmVhazsKKyAgICB9CisgICAgICAgIAogICAgIGNhc2UgQXJyYXlQdXNoOiB7CiAgICAg
ICAgIEFTU0VSVChub2RlLT5hcnJheU1vZGUoKS5pc0pTQXJyYXkoKSk7CiAgICAgICAgIApJbmRl
eDogU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVC5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVC5jcHAJ
KHJldmlzaW9uIDE5NzU0MikKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3Vs
YXRpdmVKSVQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC03NTE4LDYgKzc1MTgsMzMgQEAgdm9pZCBT
cGVjdWxhdGl2ZUpJVDo6Y29tcGlsZVB1dEFjY2Vzc29yQgogICAgIG5vUmVzdWx0KG5vZGUpOwog
fQogCit2b2lkIFNwZWN1bGF0aXZlSklUOjpjb21waWxlR2V0UmVnRXhwT2JqZWN0TGFzdEluZGV4
KE5vZGUqIG5vZGUpCit7CisgICAgU3BlY3VsYXRlQ2VsbE9wZXJhbmQgcmVnRXhwKHRoaXMsIG5v
ZGUtPmNoaWxkMSgpKTsKKyAgICBKU1ZhbHVlUmVnc1RlbXBvcmFyeSByZXN1bHQodGhpcyk7Cisg
ICAgR1BSUmVnIHJlZ0V4cEdQUiA9IHJlZ0V4cC5ncHIoKTsKKyAgICBKU1ZhbHVlUmVncyByZXN1
bHRSZWdzID0gcmVzdWx0LnJlZ3MoKTsKKyAgICBzcGVjdWxhdGVSZWdFeHBPYmplY3Qobm9kZS0+
Y2hpbGQxKCksIHJlZ0V4cEdQUik7CisgICAgbV9qaXQubG9hZFZhbHVlKEpJVENvbXBpbGVyOjpB
ZGRyZXNzKHJlZ0V4cEdQUiwgUmVnRXhwT2JqZWN0OjpvZmZzZXRPZkxhc3RJbmRleCgpKSwgcmVz
dWx0UmVncyk7CisgICAganNWYWx1ZVJlc3VsdChyZXN1bHRSZWdzLCBub2RlKTsKK30KKwordm9p
ZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZVNldFJlZ0V4cE9iamVjdExhc3RJbmRleChOb2RlKiBu
b2RlKQoreworICAgIFNwZWN1bGF0ZUNlbGxPcGVyYW5kIHJlZ0V4cCh0aGlzLCBub2RlLT5jaGls
ZDEoKSk7CisgICAgSlNWYWx1ZU9wZXJhbmQgdmFsdWUodGhpcywgbm9kZS0+Y2hpbGQyKCkpOwor
ICAgIEdQUlJlZyByZWdFeHBHUFIgPSByZWdFeHAuZ3ByKCk7CisgICAgSlNWYWx1ZVJlZ3MgdmFs
dWVSZWdzID0gdmFsdWUuanNWYWx1ZVJlZ3MoKTsKKyAgICBzcGVjdWxhdGVSZWdFeHBPYmplY3Qo
bm9kZS0+Y2hpbGQxKCksIHJlZ0V4cEdQUik7CisgICAgc3BlY3VsYXRpb25DaGVjaygKKyAgICAg
ICAgRXhvdGljT2JqZWN0TW9kZSwgSlNWYWx1ZVJlZ3MoKSwgbnVsbHB0ciwKKyAgICAgICAgbV9q
aXQuYnJhbmNoVGVzdDgoCisgICAgICAgICAgICBKSVRDb21waWxlcjo6WmVybywKKyAgICAgICAg
ICAgIEpJVENvbXBpbGVyOjpBZGRyZXNzKHJlZ0V4cEdQUiwgUmVnRXhwT2JqZWN0OjpvZmZzZXRP
Zkxhc3RJbmRleElzV3JpdGFibGUoKSkpKTsKKyAgICBtX2ppdC5zdG9yZVZhbHVlKHZhbHVlUmVn
cywgSklUQ29tcGlsZXI6OkFkZHJlc3MocmVnRXhwR1BSLCBSZWdFeHBPYmplY3Q6Om9mZnNldE9m
TGFzdEluZGV4KCkpKTsKKyAgICBub1Jlc3VsdChub2RlKTsKK30KKwogfSB9IC8vIG5hbWVzcGFj
ZSBKU0M6OkRGRwogCiAjZW5kaWYKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZH
U3BlY3VsYXRpdmVKSVQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZn
L0RGR1NwZWN1bGF0aXZlSklULmgJKHJldmlzaW9uIDE5NzU0MikKKysrIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQuaAkod29ya2luZyBjb3B5KQpAQCAtMjMzMyw2
ICsyMzMzLDggQEAgcHVibGljOgogICAgIHZvaWQgY29tcGlsZVB1dEFjY2Vzc29yQnlJZChOb2Rl
Kik7CiAgICAgdm9pZCBjb21waWxlUHV0R2V0dGVyU2V0dGVyQnlJZChOb2RlKik7CiAgICAgdm9p
ZCBjb21waWxlUHV0QWNjZXNzb3JCeVZhbChOb2RlKik7CisgICAgdm9pZCBjb21waWxlR2V0UmVn
RXhwT2JqZWN0TGFzdEluZGV4KE5vZGUqKTsKKyAgICB2b2lkIGNvbXBpbGVTZXRSZWdFeHBPYmpl
Y3RMYXN0SW5kZXgoTm9kZSopOwogICAgIAogICAgIHZvaWQgbW92ZVRydWVUbyhHUFJSZWcpOwog
ICAgIHZvaWQgbW92ZUZhbHNlVG8oR1BSUmVnKTsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9kZmcvREZHU3RvcmVCYXJyaWVySW5zZXJ0aW9uUGhhc2UuY3BwCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3RvcmVCYXJyaWVySW5zZXJ0aW9uUGhhc2UuY3Bw
CShyZXZpc2lvbiAxOTc1NDIpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1N0b3Jl
QmFycmllckluc2VydGlvblBoYXNlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAK
IC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgorICogQ29weXJpZ2h0IChDKSAyMDE1LTIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0yNjAsNiArMjYwLDcgQEAg
cHJpdmF0ZToKICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgIGNhc2UgUHV0Q2xvc3VyZVZh
cjoKICAgICAgICAgICAgIGNhc2UgUHV0VG9Bcmd1bWVudHM6CisgICAgICAgICAgICBjYXNlIFNl
dFJlZ0V4cE9iamVjdExhc3RJbmRleDoKICAgICAgICAgICAgIGNhc2UgTXVsdGlQdXRCeU9mZnNl
dDogewogICAgICAgICAgICAgICAgIGNvbnNpZGVyQmFycmllcihtX25vZGUtPmNoaWxkMSgpLCBt
X25vZGUtPmNoaWxkMigpKTsKICAgICAgICAgICAgICAgICBicmVhazsKSW5kZXg6IFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9mdGwvRlRMQWJzdHJhY3RIZWFwUmVwb3NpdG9yeS5jcHAKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExBYnN0cmFjdEhlYXBSZXBvc2l0b3J5
LmNwcAkocmV2aXNpb24gMTk3NTQyKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExB
YnN0cmFjdEhlYXBSZXBvc2l0b3J5LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzksNiArMzksNyBA
QAogI2luY2x1ZGUgIkpTUHJvcGVydHlOYW1lRW51bWVyYXRvci5oIgogI2luY2x1ZGUgIkpTU2Nv
cGUuaCIKICNpbmNsdWRlICJKU0NJbmxpbmVzLmgiCisjaW5jbHVkZSAiUmVnRXhwT2JqZWN0Lmgi
CiAjaW5jbHVkZSAiU2NvcGVkQXJndW1lbnRzLmgiCiAjaW5jbHVkZSAiU2NvcGVkQXJndW1lbnRz
VGFibGUuaCIKIApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExBYnN0cmFjdEhl
YXBSZXBvc2l0b3J5LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9G
VExBYnN0cmFjdEhlYXBSZXBvc2l0b3J5LmgJKHJldmlzaW9uIDE5NzU0MikKKysrIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9mdGwvRlRMQWJzdHJhY3RIZWFwUmVwb3NpdG9yeS5oCSh3b3JraW5nIGNv
cHkpCkBAIC03Nyw2ICs3Nyw4IEBAIG5hbWVzcGFjZSBKU0MgeyBuYW1lc3BhY2UgRlRMIHsKICAg
ICBtYWNybyhKU1N5bWJvbFRhYmxlT2JqZWN0X3N5bWJvbFRhYmxlLCBKU1N5bWJvbFRhYmxlT2Jq
ZWN0OjpvZmZzZXRPZlN5bWJvbFRhYmxlKCkpIFwKICAgICBtYWNybyhKU1dyYXBwZXJPYmplY3Rf
aW50ZXJuYWxWYWx1ZSwgSlNXcmFwcGVyT2JqZWN0OjppbnRlcm5hbFZhbHVlT2Zmc2V0KCkpIFwK
ICAgICBtYWNybyhNYXJrZWRBbGxvY2F0b3JfZnJlZUxpc3RIZWFkLCBNYXJrZWRBbGxvY2F0b3I6
Om9mZnNldE9mRnJlZUxpc3RIZWFkKCkpIFwKKyAgICBtYWNybyhSZWdFeHBPYmplY3RfbGFzdElu
ZGV4LCBSZWdFeHBPYmplY3Q6Om9mZnNldE9mTGFzdEluZGV4KCkpIFwKKyAgICBtYWNybyhSZWdF
eHBPYmplY3RfbGFzdEluZGV4SXNXcml0YWJsZSwgUmVnRXhwT2JqZWN0OjpvZmZzZXRPZkxhc3RJ
bmRleElzV3JpdGFibGUoKSkgXAogICAgIG1hY3JvKFNjb3BlZEFyZ3VtZW50c19vdmVycm9kZVRo
aW5ncywgU2NvcGVkQXJndW1lbnRzOjpvZmZzZXRPZk92ZXJyb2RlVGhpbmdzKCkpIFwKICAgICBt
YWNybyhTY29wZWRBcmd1bWVudHNfc2NvcGUsIFNjb3BlZEFyZ3VtZW50czo6b2Zmc2V0T2ZTY29w
ZSgpKSBcCiAgICAgbWFjcm8oU2NvcGVkQXJndW1lbnRzX3RhYmxlLCBTY29wZWRBcmd1bWVudHM6
Om9mZnNldE9mVGFibGUoKSkgXApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExD
YXBhYmlsaXRpZXMuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwv
RlRMQ2FwYWJpbGl0aWVzLmNwcAkocmV2aXNpb24gMTk3NTQyKQorKysgU291cmNlL0phdmFTY3Jp
cHRDb3JlL2Z0bC9GVExDYXBhYmlsaXRpZXMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yMjQsNiAr
MjI0LDggQEAgaW5saW5lIENhcGFiaWxpdHlMZXZlbCBjYW5Db21waWxlKE5vZGUqIAogICAgIGNh
c2UgUmVnRXhwVGVzdDoKICAgICBjYXNlIE5ld1JlZ2V4cDoKICAgICBjYXNlIFN0cmluZ1JlcGxh
Y2U6CisgICAgY2FzZSBHZXRSZWdFeHBPYmplY3RMYXN0SW5kZXg6CisgICAgY2FzZSBTZXRSZWdF
eHBPYmplY3RMYXN0SW5kZXg6CiAgICAgICAgIC8vIFRoZXNlIGFyZSBPSy4KICAgICAgICAgYnJl
YWs7CiAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMTG93ZXJERkdUb0IzLmNw
cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTExvd2VyREZHVG9C
My5jcHAJKHJldmlzaW9uIDE5NzU0MikKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRM
TG93ZXJERkdUb0IzLmNwcAkod29ya2luZyBjb3B5KQpAQCAtOTI2LDYgKzkyNiwxMiBAQCBwcml2
YXRlOgogICAgICAgICBjYXNlIFN0cmluZ1JlcGxhY2U6CiAgICAgICAgICAgICBjb21waWxlU3Ry
aW5nUmVwbGFjZSgpOwogICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgR2V0UmVnRXhw
T2JqZWN0TGFzdEluZGV4OgorICAgICAgICAgICAgY29tcGlsZUdldFJlZ0V4cE9iamVjdExhc3RJ
bmRleCgpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgU2V0UmVnRXhwT2JqZWN0
TGFzdEluZGV4OgorICAgICAgICAgICAgY29tcGlsZVNldFJlZ0V4cE9iamVjdExhc3RJbmRleCgp
OworICAgICAgICAgICAgYnJlYWs7CiAKICAgICAgICAgY2FzZSBQaGFudG9tTG9jYWw6CiAgICAg
ICAgIGNhc2UgTG9vcEhpbnQ6CkBAIC02NDg5LDggKzY0OTUsNyBAQCBwcml2YXRlOgogICAgICAg
ICAgICAgaWYgKEpTU3RyaW5nKiByZXBsYWNlID0gbV9ub2RlLT5jaGlsZDMoKS0+ZHluYW1pY0Nh
c3RDb25zdGFudDxKU1N0cmluZyo+KCkpIHsKICAgICAgICAgICAgICAgICBpZiAoIXJlcGxhY2Ut
Pmxlbmd0aCgpKSB7CiAgICAgICAgICAgICAgICAgICAgIExWYWx1ZSBzdHJpbmcgPSBsb3dTdHJp
bmcobV9ub2RlLT5jaGlsZDEoKSk7Ci0gICAgICAgICAgICAgICAgICAgIExWYWx1ZSByZWdFeHAg
PSBsb3dDZWxsKG1fbm9kZS0+Y2hpbGQyKCkpOwotICAgICAgICAgICAgICAgICAgICBzcGVjdWxh
dGVSZWdFeHBPYmplY3QobV9ub2RlLT5jaGlsZDIoKSwgcmVnRXhwKTsKKyAgICAgICAgICAgICAg
ICAgICAgTFZhbHVlIHJlZ0V4cCA9IGxvd1JlZ0V4cE9iamVjdChtX25vZGUtPmNoaWxkMigpKTsK
IAogICAgICAgICAgICAgICAgICAgICBMVmFsdWUgcmVzdWx0ID0gdm1DYWxsKAogICAgICAgICAg
ICAgICAgICAgICAgICAgSW50NjQsIG1fb3V0Lm9wZXJhdGlvbihvcGVyYXRpb25TdHJpbmdQcm90
b0Z1bmNSZXBsYWNlUmVnRXhwRW1wdHlTdHIpLApAQCAtNjUwMiw4ICs2NTA3LDcgQEAgcHJpdmF0
ZToKICAgICAgICAgICAgIH0KICAgICAgICAgICAgIAogICAgICAgICAgICAgTFZhbHVlIHN0cmlu
ZyA9IGxvd1N0cmluZyhtX25vZGUtPmNoaWxkMSgpKTsKLSAgICAgICAgICAgIExWYWx1ZSByZWdF
eHAgPSBsb3dDZWxsKG1fbm9kZS0+Y2hpbGQyKCkpOwotICAgICAgICAgICAgc3BlY3VsYXRlUmVn
RXhwT2JqZWN0KG1fbm9kZS0+Y2hpbGQyKCksIHJlZ0V4cCk7CisgICAgICAgICAgICBMVmFsdWUg
cmVnRXhwID0gbG93UmVnRXhwT2JqZWN0KG1fbm9kZS0+Y2hpbGQyKCkpOwogICAgICAgICAgICAg
TFZhbHVlIHJlcGxhY2UgPSBsb3dTdHJpbmcobV9ub2RlLT5jaGlsZDMoKSk7CiAKICAgICAgICAg
ICAgIExWYWx1ZSByZXN1bHQgPSB2bUNhbGwoCkBAIC02NTIyLDYgKzY1MjYsMjMgQEAgcHJpdmF0
ZToKICAgICAgICAgc2V0SlNWYWx1ZShyZXN1bHQpOwogICAgIH0KIAorICAgIHZvaWQgY29tcGls
ZUdldFJlZ0V4cE9iamVjdExhc3RJbmRleCgpCisgICAgeworICAgICAgICBzZXRKU1ZhbHVlKG1f
b3V0LmxvYWQ2NChsb3dSZWdFeHBPYmplY3QobV9ub2RlLT5jaGlsZDEoKSksIG1faGVhcHMuUmVn
RXhwT2JqZWN0X2xhc3RJbmRleCkpOworICAgIH0KKworICAgIHZvaWQgY29tcGlsZVNldFJlZ0V4
cE9iamVjdExhc3RJbmRleCgpCisgICAgeworICAgICAgICBMVmFsdWUgcmVnRXhwID0gbG93UmVn
RXhwT2JqZWN0KG1fbm9kZS0+Y2hpbGQxKCkpOworICAgICAgICBMVmFsdWUgdmFsdWUgPSBsb3dK
U1ZhbHVlKG1fbm9kZS0+Y2hpbGQyKCkpOworCisgICAgICAgIHNwZWN1bGF0ZSgKKyAgICAgICAg
ICAgIEV4b3RpY09iamVjdE1vZGUsIG5vVmFsdWUoKSwgbnVsbHB0ciwKKyAgICAgICAgICAgIG1f
b3V0LmlzWmVybzMyKG1fb3V0LmxvYWQ4WmVyb0V4dDMyKHJlZ0V4cCwgbV9oZWFwcy5SZWdFeHBP
YmplY3RfbGFzdEluZGV4SXNXcml0YWJsZSkpKTsKKyAgICAgICAgCisgICAgICAgIG1fb3V0LnN0
b3JlNjQodmFsdWUsIHJlZ0V4cCwgbV9oZWFwcy5SZWdFeHBPYmplY3RfbGFzdEluZGV4KTsKKyAg
ICB9CisKICAgICBMVmFsdWUgZGlkT3ZlcmZsb3dTdGFjaygpCiAgICAgewogICAgICAgICAvLyBU
aGlzIGRvZXMgYSB2ZXJ5IHNpbXBsZSBsZWFmIGZ1bmN0aW9uIGFuYWx5c2lzLiBUaGUgaW52YXJp
YW50IG9mIEZUTCBjYWxsCkBAIC04OTI1LDYgKzg5NDYsMTMgQEAgcHJpdmF0ZToKICAgICAgICAg
c3BlY3VsYXRlT2JqZWN0KGVkZ2UsIHJlc3VsdCk7CiAgICAgICAgIHJldHVybiByZXN1bHQ7CiAg
ICAgfQorCisgICAgTFZhbHVlIGxvd1JlZ0V4cE9iamVjdChFZGdlIGVkZ2UpCisgICAgeworICAg
ICAgICBMVmFsdWUgcmVzdWx0ID0gbG93Q2VsbChlZGdlKTsKKyAgICAgICAgc3BlY3VsYXRlUmVn
RXhwT2JqZWN0KGVkZ2UsIHJlc3VsdCk7CisgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgfQog
ICAgIAogICAgIExWYWx1ZSBsb3dTdHJpbmcoRWRnZSBlZGdlLCBPcGVyYW5kU3BlY3VsYXRpb25N
b2RlIG1vZGUgPSBBdXRvbWF0aWNPcGVyYW5kU3BlY3VsYXRpb24pCiAgICAgewpJbmRleDogU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhwT2JqZWN0LmgKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhwT2JqZWN0LmgJKHJldmlzaW9uIDE5
NzU0MikKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4cE9iamVjdC5oCSh3
b3JraW5nIGNvcHkpCkBAIC03NCw2ICs3NCwxNiBAQCBwdWJsaWM6CiAgICAgICAgIHJldHVybiBT
dHJ1Y3R1cmU6OmNyZWF0ZSh2bSwgZ2xvYmFsT2JqZWN0LCBwcm90b3R5cGUsIFR5cGVJbmZvKFJl
Z0V4cE9iamVjdFR5cGUsIFN0cnVjdHVyZUZsYWdzKSwgaW5mbygpKTsKICAgICB9CiAKKyAgICBz
dGF0aWMgcHRyZGlmZl90IG9mZnNldE9mTGFzdEluZGV4KCkKKyAgICB7CisgICAgICAgIHJldHVy
biBPQkpFQ1RfT0ZGU0VUT0YoUmVnRXhwT2JqZWN0LCBtX2xhc3RJbmRleCk7CisgICAgfQorCisg
ICAgc3RhdGljIHB0cmRpZmZfdCBvZmZzZXRPZkxhc3RJbmRleElzV3JpdGFibGUoKQorICAgIHsK
KyAgICAgICAgcmV0dXJuIE9CSkVDVF9PRkZTRVRPRihSZWdFeHBPYmplY3QsIG1fbGFzdEluZGV4
SXNXcml0YWJsZSk7CisgICAgfQorCiBwcm90ZWN0ZWQ6CiAgICAgSlNfRVhQT1JUX1BSSVZBVEUg
UmVnRXhwT2JqZWN0KFZNJiwgU3RydWN0dXJlKiwgUmVnRXhwKik7CiAgICAgSlNfRVhQT1JUX1BS
SVZBVEUgdm9pZCBmaW5pc2hDcmVhdGlvbihWTSYpOwpJbmRleDogTGF5b3V0VGVzdHMvQ2hhbmdl
TG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL0NoYW5nZUxvZwkocmV2aXNpb24gMTk3NTQ3
KQorKysgTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTcg
QEAKKzIwMTYtMDMtMDMgIEZpbGlwIFBpemxvICA8ZnBpemxvQGFwcGxlLmNvbT4KKworICAgICAg
ICBERkcvRlRMIHNob3VsZCBpbmxpbmUgYWNjZXNzZXMgdG8gUmVnRXhwT2JqZWN0OjptX2xhc3RJ
bmRleAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTU1
MDAzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBq
cy9yZWdyZXNzL3JlZ2V4cC1sYXN0LWluZGV4LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAg
ICoganMvcmVncmVzcy9yZWdleHAtbGFzdC1pbmRleC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBq
cy9yZWdyZXNzL3JlZ2V4cC1zZXQtbGFzdC1pbmRleC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAg
ICAgICAqIGpzL3JlZ3Jlc3MvcmVnZXhwLXNldC1sYXN0LWluZGV4Lmh0bWw6IEFkZGVkLgorICAg
ICAgICAqIGpzL3JlZ3Jlc3Mvc2NyaXB0LXRlc3RzL3JlZ2V4cC1sYXN0LWluZGV4LmpzOiBBZGRl
ZC4KKyAgICAgICAgKiBqcy9yZWdyZXNzL3NjcmlwdC10ZXN0cy9yZWdleHAtc2V0LWxhc3QtaW5k
ZXguanM6IEFkZGVkLgorCiAyMDE2LTAzLTAzICBGaWxpcCBQaXpsbyAgPGZwaXpsb0BhcHBsZS5j
b20+CiAKICAgICAgICAgVW5yZXZpZXdlZCwgcmVtb3ZlIHRlc3Qgd2l0aCBmbGFreSB0aW1lb3V0
IHRoYXQgZG9lc24ndCB0ZXN0IGFueXRoaW5nIGFueW1vcmUuIFRoaXMgdGVzdApJbmRleDogTGF5
b3V0VGVzdHMvanMvcmVncmVzcy9yZWdleHAtbGFzdC1pbmRleC1leHBlY3RlZC50eHQKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gTGF5b3V0VGVzdHMvanMvcmVncmVzcy9yZWdleHAtbGFzdC1pbmRleC1leHBlY3Rl
ZC50eHQJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9qcy9yZWdyZXNzL3JlZ2V4cC1sYXN0
LWluZGV4LWV4cGVjdGVkLnR4dAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDEwIEBACitKU1Jl
Z3Jlc3MvcmVnZXhwLWxhc3QtaW5kZXgKKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2Vy
aWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisK
K1BBU1Mgbm8gZXhjZXB0aW9uIHRocm93bgorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1
ZQorCitURVNUIENPTVBMRVRFCisKSW5kZXg6IExheW91dFRlc3RzL2pzL3JlZ3Jlc3MvcmVnZXhw
LWxhc3QtaW5kZXguaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9qcy9yZWdyZXNzL3Jl
Z2V4cC1sYXN0LWluZGV4Lmh0bWwJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9qcy9yZWdy
ZXNzL3JlZ2V4cC1sYXN0LWluZGV4Lmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwxMiBA
QAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9JRVRGLy9EVEQgSFRNTC8vRU4iPgorPGh0bWw+
Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwv
c2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL3Jl
Z3Jlc3MtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJzY3JpcHQtdGVzdHMvcmVnZXhw
LWxhc3QtaW5kZXguanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9y
ZWdyZXNzLXBvc3QuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9q
cy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpJbmRleDogTGF5b3V0
VGVzdHMvanMvcmVncmVzcy9yZWdleHAtc2V0LWxhc3QtaW5kZXgtZXhwZWN0ZWQudHh0Cj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIExheW91dFRlc3RzL2pzL3JlZ3Jlc3MvcmVnZXhwLXNldC1sYXN0LWluZGV4LWV4
cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2pzL3JlZ3Jlc3MvcmVnZXhw
LXNldC1sYXN0LWluZGV4LWV4cGVjdGVkLnR4dAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDEw
IEBACitKU1JlZ3Jlc3MvcmVnZXhwLXNldC1sYXN0LWluZGV4CisKK09uIHN1Y2Nlc3MsIHlvdSB3
aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENP
TVBMRVRFIi4KKworCitQQVNTIG5vIGV4Y2VwdGlvbiB0aHJvd24KK1BBU1Mgc3VjY2Vzc2Z1bGx5
UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCkluZGV4OiBMYXlvdXRUZXN0cy9qcy9y
ZWdyZXNzL3JlZ2V4cC1zZXQtbGFzdC1pbmRleC5odG1sCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRl
c3RzL2pzL3JlZ3Jlc3MvcmVnZXhwLXNldC1sYXN0LWluZGV4Lmh0bWwJKHJldmlzaW9uIDApCisr
KyBMYXlvdXRUZXN0cy9qcy9yZWdyZXNzL3JlZ2V4cC1zZXQtbGFzdC1pbmRleC5odG1sCSh3b3Jr
aW5nIGNvcHkpCkBAIC0wLDAgKzEsMTIgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vSUVU
Ri8vRFREIEhUTUwvL0VOIj4KKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVz
b3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHNjcmlw
dCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9yZWdyZXNzLXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0
IHNyYz0ic2NyaXB0LXRlc3RzL3JlZ2V4cC1zZXQtbGFzdC1pbmRleC5qcyI+PC9zY3JpcHQ+Cis8
c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL3JlZ3Jlc3MtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8
c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8
L2JvZHk+Cis8L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0cy9qcy9yZWdyZXNzL3NjcmlwdC10ZXN0
cy9yZWdleHAtbGFzdC1pbmRleC5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9qcy9yZWdy
ZXNzL3NjcmlwdC10ZXN0cy9yZWdleHAtbGFzdC1pbmRleC5qcwkocmV2aXNpb24gMCkKKysrIExh
eW91dFRlc3RzL2pzL3JlZ3Jlc3Mvc2NyaXB0LXRlc3RzL3JlZ2V4cC1sYXN0LWluZGV4LmpzCSh3
b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMTAgQEAKKyhmdW5jdGlvbigpIHsKKyAgICB2YXIgcmUg
PSAvZm9vL2c7CisgICAgcmUuZXhlYygiYmFyIGZvbyBiYXIiKTsKKyAgICB2YXIgcmVzdWx0ID0g
MDsKKyAgICB2YXIgbiA9IDEwMDAwMDAwOworICAgIGZvciAodmFyIGkgPSAwOyBpIDwgbjsgKytp
KQorICAgICAgICByZXN1bHQgKz0gcmUubGFzdEluZGV4OworICAgIGlmIChyZXN1bHQgIT0gNyAq
IG4pCisgICAgICAgIHRocm93ICJFcnJvcjogYmFkIHJlc3VsdDogIiArIHJlc3VsdDsKK30pKCk7
CkluZGV4OiBMYXlvdXRUZXN0cy9qcy9yZWdyZXNzL3NjcmlwdC10ZXN0cy9yZWdleHAtc2V0LWxh
c3QtaW5kZXguanMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvanMvcmVncmVzcy9zY3JpcHQt
dGVzdHMvcmVnZXhwLXNldC1sYXN0LWluZGV4LmpzCShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVz
dHMvanMvcmVncmVzcy9zY3JpcHQtdGVzdHMvcmVnZXhwLXNldC1sYXN0LWluZGV4LmpzCSh3b3Jr
aW5nIGNvcHkpCkBAIC0wLDAgKzEsOSBAQAorKGZ1bmN0aW9uKCkgeworICAgIHZhciByZSA9IC9m
b28vZzsKKyAgICB2YXIgbiA9IDEwMDAwMDAwOworICAgIGZvciAodmFyIGkgPSAwOyBpIDwgbjsg
KytpKQorICAgICAgICByZS5sYXN0SW5kZXggPSA1OworICAgIHJlLmV4ZWMoImZvbyBiYXIgZm9v
Iik7CisgICAgaWYgKHJlLmxhc3RJbmRleCAhPSAiZm9vIGJhciBmb28iLmxlbmd0aCkKKyAgICAg
ICAgdGhyb3cgIkVycm9yOiBiYWQgdmFsdWUgb2YgbGFzdEluZHg6ICIgKyByZS5sYXN0SW5kZXg7
Cit9KSgpOwo=
</data>
<flag name="review"
          id="297599"
          type_id="1"
          status="+"
          setter="benjamin"
    />
          </attachment>
      

    </bug>

</bugzilla>