<?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>110535</bug_id>
          
          <creation_ts>2013-02-21 17:16:46 -0800</creation_ts>
          <short_desc>The DFG special case checks for isCreatedThisArgument are fragile</short_desc>
          <delta_ts>2013-02-25 12:25:59 -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>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>110433</blocked>
    
    <blocked>110536</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Filip Pizlo">fpizlo</reporter>
          <assigned_to name="Filip Pizlo">fpizlo</assigned_to>
          <cc>barraclough</cc>
    
    <cc>ggaren</cc>
    
    <cc>mark.lam</cc>
    
    <cc>mhahnenberg</cc>
    
    <cc>msaboff</cc>
    
    <cc>oliver</cc>
    
    <cc>sam</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>839050</commentid>
    <comment_count>0</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2013-02-21 17:16:46 -0800</bug_when>
    <thetext>They&apos;re all over the place.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>840258</commentid>
    <comment_count>1</comment_count>
      <attachid>189896</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2013-02-22 19:22:51 -0800</bug_when>
    <thetext>Created attachment 189896
the patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>841186</commentid>
    <comment_count>2</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2013-02-25 12:25:59 -0800</bug_when>
    <thetext>Landed in http://trac.webkit.org/changeset/143955</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>189896</attachid>
            <date>2013-02-22 19:22:51 -0800</date>
            <delta_ts>2013-02-23 11:09:53 -0800</delta_ts>
            <desc>the patch</desc>
            <filename>blah.patch</filename>
            <type>text/plain</type>
            <size>31469</size>
            <attacher name="Filip Pizlo">fpizlo</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTQzODI4KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDQ5IEBA
CisyMDEzLTAyLTIyICBGaWxpcCBQaXpsbyAgPGZwaXpsb0BhcHBsZS5jb20+CisKKyAgICAgICAg
VGhlIERGRyBzcGVjaWFsIGNhc2UgY2hlY2tzIGZvciBpc0NyZWF0ZWRUaGlzQXJndW1lbnQgYXJl
IGZyYWdpbGUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTExMDUzNQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorICAgICAgICAK
KyAgICAgICAgVGhlcmUgbWF5IGJlIG1hbnkgc2l0dWF0aW9ucyBpbiB3aGljaCB3ZSB3YW50IHRv
IGZvcmNlIGEgdmFyaWFibGUgdG8gbmV2ZXIgYmUKKyAgICAgICAgdW5ib3hlZC4gQ2FwdHVyaW5n
IGlzIG9uZSBzdWNoIGNhc2UsIGFuZCB0aGUgY3JlYXRlZCB0aGlzIGFyZ3VtZW50IGlzIGFub3Ro
ZXIuCisgICAgICAgIFByZXZpb3VzbHkgYWxsIGNvZGUgdGhhdCBkZWFsdCB3aXRoIHRoaXMgaXNz
dWUgaGFkIHRvIHF1ZXJ5IGJvdGggc2NlbmFyaW9zLgorICAgICAgICAKKyAgICAgICAgTm93IERG
Rzo6VmFyaWFibGVBY2Nlc3NEYXRhIGtub3dzIHRoZXNlIHRoaW5ncy4gWW91IGp1c3QgaGF2ZSB0
byBhc2sKKyAgICAgICAgVmFyaWFibGVBY2Nlc3NEYXRhIGZvciB3aGV0aGVyIGEgdmFyaWFibGUg
c2hvdWxkIGJlIHVuYm94ZWQuIEFueW9uZSB3aXNoaW5nIHRvCisgICAgICAgIGZvcmNlIGEgdmFy
aWFibGUgdG8gbmV2ZXIgYmUgdW5ib3hlZCBqdXN0IHRlbGxzIFZhcmlhYmxlQWNjZXNzRGF0YS4K
KworICAgICAgICAqIGRmZy9ERkdBYnN0cmFjdFN0YXRlLmNwcDoKKyAgICAgICAgKEpTQzo6REZH
OjpBYnN0cmFjdFN0YXRlOjppbml0aWFsaXplKToKKyAgICAgICAgKiBkZmcvREZHQnl0ZUNvZGVQ
YXJzZXIuY3BwOgorICAgICAgICAoSlNDOjpERkc6OkJ5dGVDb2RlUGFyc2VyOjpwYXJzZUJsb2Nr
KToKKyAgICAgICAgKERGRyk6CisgICAgICAgICogZGZnL0RGR0NGR1NpbXBsaWZpY2F0aW9uUGhh
c2UuY3BwOgorICAgICAgICAoQ0ZHU2ltcGxpZmljYXRpb25QaGFzZSk6CisgICAgICAgICogZGZn
L0RGR0ZpeHVwUGhhc2UuY3BwOgorICAgICAgICAoSlNDOjpERkc6OkZpeHVwUGhhc2U6OmZpeHVw
Tm9kZSk6CisgICAgICAgICogZGZnL0RGR0dyYXBoLmg6CisgICAgICAgIChHcmFwaCk6CisgICAg
ICAgICogZGZnL0RGR1ByZWRpY3Rpb25Qcm9wYWdhdGlvblBoYXNlLmNwcDoKKyAgICAgICAgKEpT
Qzo6REZHOjpQcmVkaWN0aW9uUHJvcGFnYXRpb25QaGFzZTo6ZG9Sb3VuZE9mRG91YmxlVm90aW5n
KToKKyAgICAgICAgKiBkZmcvREZHU3BlY3VsYXRpdmVKSVQuY3BwOgorICAgICAgICAoSlNDOjpE
Rkc6OlNwZWN1bGF0aXZlSklUOjpjb21waWxlKToKKyAgICAgICAgKiBkZmcvREZHU3BlY3VsYXRp
dmVKSVQzMl82NC5jcHA6CisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBp
bGUpOgorICAgICAgICAqIGRmZy9ERkdTcGVjdWxhdGl2ZUpJVDY0LmNwcDoKKyAgICAgICAgKEpT
Qzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZSk6CisgICAgICAgICogZGZnL0RGR1VuaWZp
Y2F0aW9uUGhhc2UuY3BwOgorICAgICAgICAoSlNDOjpERkc6OlVuaWZpY2F0aW9uUGhhc2U6OnJ1
bik6CisgICAgICAgICogZGZnL0RGR1ZhcmlhYmxlQWNjZXNzRGF0YS5oOgorICAgICAgICAoSlND
OjpERkc6OlZhcmlhYmxlQWNjZXNzRGF0YTo6VmFyaWFibGVBY2Nlc3NEYXRhKToKKyAgICAgICAg
KEpTQzo6REZHOjpWYXJpYWJsZUFjY2Vzc0RhdGE6Om1lcmdlSXNDYXB0dXJlZCk6CisgICAgICAg
IChKU0M6OkRGRzo6VmFyaWFibGVBY2Nlc3NEYXRhOjptZXJnZVNob3VsZE5ldmVyVW5ib3gpOgor
ICAgICAgICAoVmFyaWFibGVBY2Nlc3NEYXRhKToKKyAgICAgICAgKEpTQzo6REZHOjpWYXJpYWJs
ZUFjY2Vzc0RhdGE6OnNob3VsZE5ldmVyVW5ib3gpOgorICAgICAgICAoSlNDOjpERkc6OlZhcmlh
YmxlQWNjZXNzRGF0YTo6c2hvdWxkVW5ib3hJZlBvc3NpYmxlKToKKyAgICAgICAgKEpTQzo6REZH
OjpWYXJpYWJsZUFjY2Vzc0RhdGE6OnNob3VsZFVzZURvdWJsZUZvcm1hdCk6CisgICAgICAgIChK
U0M6OkRGRzo6VmFyaWFibGVBY2Nlc3NEYXRhOjp0YWxseVZvdGVzRm9yU2hvdWxkVXNlRG91Ymxl
Rm9ybWF0KToKKwogMjAxMy0wMi0yMiAgRmlsaXAgUGl6bG8gIDxmcGl6bG9AYXBwbGUuY29tPgog
CiAgICAgICAgIERGRzo6U3BlY3VsYXRpdmVKSVQ6OnNwZWN1bGF0ZU51bWJlcigpIHNob3VsZCBq
dXN0IHVzZSBTcGVjdWxhdGVEb3VibGVPcGVyYW5kIGluc3RlYWQgb2YgZG9pbmcgaXRzIG93biB0
aGluZwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdBYnN0cmFjdFN0YXRlLmNw
cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0Fic3RyYWN0U3Rh
dGUuY3BwCShyZXZpc2lvbiAxNDM4MTYpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RG
R0Fic3RyYWN0U3RhdGUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC05Niw3ICs5Niw3IEBAIHZvaWQg
QWJzdHJhY3RTdGF0ZTo6aW5pdGlhbGl6ZShHcmFwaCYgZ3IKICAgICAgICAgICAgIGNvbnRpbnVl
OwogICAgICAgICB9CiAgICAgICAgIAotICAgICAgICBpZiAobm9kZS0+dmFyaWFibGVBY2Nlc3NE
YXRhKCktPmlzQ2FwdHVyZWQoKSkgeworICAgICAgICBpZiAoIW5vZGUtPnZhcmlhYmxlQWNjZXNz
RGF0YSgpLT5zaG91bGRVbmJveElmUG9zc2libGUoKSkgewogICAgICAgICAgICAgcm9vdC0+dmFs
dWVzQXRIZWFkLmFyZ3VtZW50KGkpLm1ha2VUb3AoKTsKICAgICAgICAgICAgIGNvbnRpbnVlOwog
ICAgICAgICB9CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0J5dGVDb2RlUGFy
c2VyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0J5dGVD
b2RlUGFyc2VyLmNwcAkocmV2aXNpb24gMTQzODE2KQorKysgU291cmNlL0phdmFTY3JpcHRDb3Jl
L2RmZy9ERkdCeXRlQ29kZVBhcnNlci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE5OSwxMCArMTk5
LDYgQEAgcHJpdmF0ZToKICAgICB0ZW1wbGF0ZTxQaGlTdGFja1R5cGUgc3RhY2tUeXBlPgogICAg
IHZvaWQgcHJvY2Vzc1BoaVN0YWNrKCk7CiAgICAgCi0gICAgdm9pZCBmaXhWYXJpYWJsZUFjY2Vz
c1ByZWRpY3Rpb25zKCk7Ci0gICAgLy8gQWRkIHNwaWxsIGxvY2F0aW9ucyB0byBub2Rlcy4KLSAg
ICB2b2lkIGFsbG9jYXRlVmlydHVhbFJlZ2lzdGVycygpOwotICAgIAogICAgIFZhcmlhYmxlQWNj
ZXNzRGF0YSogbmV3VmFyaWFibGVBY2Nlc3NEYXRhKGludCBvcGVyYW5kLCBib29sIGlzQ2FwdHVy
ZWQpCiAgICAgewogICAgICAgICBBU1NFUlQob3BlcmFuZCA8IEZpcnN0Q29uc3RhbnRSZWdpc3Rl
ckluZGV4KTsKQEAgLTE5NTEsNiArMTk0NywxMSBAQCBib29sIEJ5dGVDb2RlUGFyc2VyOjpwYXJz
ZUJsb2NrKHVuc2lnbmVkCiAgICAgICAgICAgICAgICAgYXJndW1lbnRUb09wZXJhbmQoYXJndW1l
bnQpLCBtX2NvZGVCbG9jay0+aXNDYXB0dXJlZChhcmd1bWVudFRvT3BlcmFuZChhcmd1bWVudCkp
KTsKICAgICAgICAgICAgIHZhcmlhYmxlLT5tZXJnZVN0cnVjdHVyZUNoZWNrSG9pc3RpbmdGYWls
ZWQoCiAgICAgICAgICAgICAgICAgbV9pbmxpbmVTdGFja1RvcC0+bV9leGl0UHJvZmlsZS5oYXNF
eGl0U2l0ZShtX2N1cnJlbnRJbmRleCwgQmFkQ2FjaGUpKTsKKyAgICAgICAgICAgIAorICAgICAg
ICAgICAgLy8gTmV2ZXIgdW5ib3ggdGhlIGNyZWF0ZWQgdGhpcyBhcmd1bWVudC4KKyAgICAgICAg
ICAgIGlmICghYXJndW1lbnQgJiYgbV9jb2RlQmxvY2stPnNwZWNpYWxpemF0aW9uS2luZCgpID09
IENvZGVGb3JDb25zdHJ1Y3QpCisgICAgICAgICAgICAgICAgdmFyaWFibGUtPm1lcmdlU2hvdWxk
TmV2ZXJVbmJveCh0cnVlKTsKKyAgICAgICAgICAgIAogICAgICAgICAgICAgTm9kZSogc2V0QXJn
dW1lbnQgPSBhZGRUb0dyYXBoKFNldEFyZ3VtZW50LCBPcEluZm8odmFyaWFibGUpKTsKICAgICAg
ICAgICAgIG1fZ3JhcGgubV9hcmd1bWVudHNbYXJndW1lbnRdID0gc2V0QXJndW1lbnQ7CiAgICAg
ICAgICAgICBtX2N1cnJlbnRCbG9jay0+dmFyaWFibGVzQXRUYWlsLnNldEFyZ3VtZW50Rmlyc3RU
aW1lKGFyZ3VtZW50LCBzZXRBcmd1bWVudCk7CkBAIC0zMzQyLDE2ICszMzQzLDYgQEAgYm9vbCBC
eXRlQ29kZVBhcnNlcjo6cGFyc2VCbG9jayh1bnNpZ25lZAogICAgIH0KIH0KIAotdm9pZCBCeXRl
Q29kZVBhcnNlcjo6Zml4VmFyaWFibGVBY2Nlc3NQcmVkaWN0aW9ucygpCi17Ci0gICAgZm9yICh1
bnNpZ25lZCBpID0gMDsgaSA8IG1fZ3JhcGgubV92YXJpYWJsZUFjY2Vzc0RhdGEuc2l6ZSgpOyAr
K2kpIHsKLSAgICAgICAgVmFyaWFibGVBY2Nlc3NEYXRhKiBkYXRhID0gJm1fZ3JhcGgubV92YXJp
YWJsZUFjY2Vzc0RhdGFbaV07Ci0gICAgICAgIGRhdGEtPmZpbmQoKS0+cHJlZGljdChkYXRhLT5u
b25VbmlmaWVkUHJlZGljdGlvbigpKTsKLSAgICAgICAgZGF0YS0+ZmluZCgpLT5tZXJnZUlzQ2Fw
dHVyZWQoZGF0YS0+aXNDYXB0dXJlZCgpKTsKLSAgICAgICAgZGF0YS0+ZmluZCgpLT5tZXJnZVN0
cnVjdHVyZUNoZWNrSG9pc3RpbmdGYWlsZWQoZGF0YS0+c3RydWN0dXJlQ2hlY2tIb2lzdGluZ0Zh
aWxlZCgpKTsKLSAgICB9Ci19Ci0KIHZvaWQgQnl0ZUNvZGVQYXJzZXI6OmxpbmtCbG9jayhCYXNp
Y0Jsb2NrKiBibG9jaywgVmVjdG9yPEJsb2NrSW5kZXg+JiBwb3NzaWJsZVRhcmdldHMpCiB7CiAg
ICAgQVNTRVJUKCFibG9jay0+aXNMaW5rZWQpOwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3Jl
L2RmZy9ERkdDRkdTaW1wbGlmaWNhdGlvblBoYXNlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvZGZnL0RGR0NGR1NpbXBsaWZpY2F0aW9uUGhhc2UuY3BwCShyZXZpc2lv
biAxNDM4MTYpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0NGR1NpbXBsaWZpY2F0
aW9uUGhhc2UuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zMDUsMTQxICszMDUsNiBAQCBwcml2YXRl
OgogICAgICAgICB9CiAgICAgfQogICAgIAotICAgIHZvaWQgcmVtb3ZlUG90ZW50aWFsbHlEZWFk
UGhpUmVmZXJlbmNlKE5vZGUqIG15Tm9kZSwgTm9kZSogcGhpTm9kZSwgdW5zaWduZWQgZWRnZUlu
ZGV4LCBib29sIGNoYW5nZVJlZikKLSAgICB7Ci0gICAgICAgIGlmIChwaGlOb2RlLT5jaGlsZHJl
bi5jaGlsZChlZGdlSW5kZXgpLm5vZGUoKSAhPSBteU5vZGUpCi0gICAgICAgICAgICByZXR1cm47
Ci0jaWYgREZHX0VOQUJMRShERUJVR19QUk9QQUdBVElPTl9WRVJCT1NFKQotICAgICAgICBkYXRh
TG9nRigiIFJlbW92aW5nIHJlZmVyZW5jZSBhdCBjaGlsZCAldS4iLCBlZGdlSW5kZXgpOwotI2Vu
ZGlmCi0gICAgICAgIGlmIChjaGFuZ2VSZWYgJiYgcGhpTm9kZS0+c2hvdWxkR2VuZXJhdGUoKSkK
LSAgICAgICAgICAgIG1fZ3JhcGguZGVyZWYobXlOb2RlKTsKLSAgICAgICAgcGhpTm9kZS0+Y2hp
bGRyZW4ucmVtb3ZlRWRnZUZyb21CYWcoZWRnZUluZGV4KTsKLSAgICB9Ci0gICAgCi0gICAgc3Ry
dWN0IE9wZXJhbmRTdWJzdGl0dXRpb24gewotICAgICAgICBPcGVyYW5kU3Vic3RpdHV0aW9uKCkK
LSAgICAgICAgICAgIDogb2xkQ2hpbGQoMCkKLSAgICAgICAgICAgICwgbmV3Q2hpbGQoMCkKLSAg
ICAgICAgewotICAgICAgICB9Ci0gICAgICAgIAotICAgICAgICBleHBsaWNpdCBPcGVyYW5kU3Vi
c3RpdHV0aW9uKE5vZGUqIG9sZENoaWxkKQotICAgICAgICAgICAgOiBvbGRDaGlsZChvbGRDaGls
ZCkKLSAgICAgICAgICAgICwgbmV3Q2hpbGQob2xkQ2hpbGQpCi0gICAgICAgIHsKLSAgICAgICAg
fQotICAgICAgICAKLSAgICAgICAgT3BlcmFuZFN1YnN0aXR1dGlvbihOb2RlKiBvbGRDaGlsZCwg
Tm9kZSogbmV3Q2hpbGQpCi0gICAgICAgICAgICA6IG9sZENoaWxkKG9sZENoaWxkKQotICAgICAg
ICAgICAgLCBuZXdDaGlsZChuZXdDaGlsZCkKLSAgICAgICAgewotICAgICAgICAgICAgQVNTRVJU
KCghb2xkQ2hpbGQpID09ICghbmV3Q2hpbGQpKTsKLSAgICAgICAgfQotICAgICAgICAKLSAgICAg
ICAgdm9pZCBkdW1wKFByaW50U3RyZWFtJiBvdXQpIGNvbnN0Ci0gICAgICAgIHsKLSAgICAgICAg
ICAgIGlmICghb2xkQ2hpbGQpCi0gICAgICAgICAgICAgICAgb3V0LnByaW50ZigiLSIpOwotICAg
ICAgICAgICAgZWxzZQotICAgICAgICAgICAgICAgIG91dC5wcmludGYoIkAldSAtPiBAJXUiLCBv
bGRDaGlsZC0+aW5kZXgoKSwgbmV3Q2hpbGQtPmluZGV4KCkpOwotICAgICAgICB9Ci0gICAgICAg
IAotICAgICAgICBOb2RlKiBvbGRDaGlsZDsKLSAgICAgICAgTm9kZSogbmV3Q2hpbGQ7Ci0gICAg
fTsKLSAgICAKLSAgICBOb2RlKiBza2lwR2V0TG9jYWwoTm9kZSogbm9kZSkKLSAgICB7Ci0gICAg
ICAgIGlmICghbm9kZSkKLSAgICAgICAgICAgIHJldHVybiAwOwotICAgICAgICBpZiAobm9kZS0+
b3AoKSA9PSBHZXRMb2NhbCkKLSAgICAgICAgICAgIHJldHVybiBub2RlLT5jaGlsZDEoKS5ub2Rl
KCk7Ci0gICAgICAgIHJldHVybiBub2RlOwotICAgIH0KLSAgICAKLSAgICB2b2lkIHJlY29yZFBv
c3NpYmxlSW5jb21pbmdSZWZlcmVuY2UoCi0gICAgICAgIEJhc2ljQmxvY2sqIHNlY29uZEJsb2Nr
LCBPcGVyYW5kczxPcGVyYW5kU3Vic3RpdHV0aW9uPiYgc3Vic3RpdHV0aW9ucywgaW50IG9wZXJh
bmQpCi0gICAgewotICAgICAgICBzdWJzdGl0dXRpb25zLm9wZXJhbmQob3BlcmFuZCkgPSBPcGVy
YW5kU3Vic3RpdHV0aW9uKAotICAgICAgICAgICAgc2tpcEdldExvY2FsKHNlY29uZEJsb2NrLT52
YXJpYWJsZXNBdFRhaWwub3BlcmFuZChvcGVyYW5kKSkpOwotICAgIH0KLSAgICAKLSAgICB2b2lk
IHJlY29yZE5ld1RhcmdldChPcGVyYW5kczxPcGVyYW5kU3Vic3RpdHV0aW9uPiYgc3Vic3RpdHV0
aW9ucywgaW50IG9wZXJhbmQsIE5vZGUqIG5vZGUpCi0gICAgewotICAgICAgICBBU1NFUlQoCi0g
ICAgICAgICAgICBub2RlLT5vcCgpID09IFNldExvY2FsCi0gICAgICAgICAgICB8fCBub2RlLT5v
cCgpID09IFNldEFyZ3VtZW50Ci0gICAgICAgICAgICB8fCBub2RlLT5vcCgpID09IEZsdXNoCi0g
ICAgICAgICAgICB8fCBub2RlLT5vcCgpID09IFBoaSk7Ci0gICAgICAgIHN1YnN0aXR1dGlvbnMu
b3BlcmFuZChvcGVyYW5kKS5uZXdDaGlsZCA9IG5vZGU7Ci0gICAgfQotICAgIAotICAgIHZvaWQg
Zml4VGFpbE9wZXJhbmQoCi0gICAgICAgIEJhc2ljQmxvY2sqIGZpcnN0QmxvY2ssIEJhc2ljQmxv
Y2sqIHNlY29uZEJsb2NrLCBpbnQgb3BlcmFuZCwKLSAgICAgICAgT3BlcmFuZHM8T3BlcmFuZFN1
YnN0aXR1dGlvbj4mIHN1YnN0aXR1dGlvbnMpCi0gICAgewotICAgICAgICBOb2RlKiBhdFNlY29u
ZFRhaWwgPSBzZWNvbmRCbG9jay0+dmFyaWFibGVzQXRUYWlsLm9wZXJhbmQob3BlcmFuZCk7Ci0g
ICAgICAgIAotICAgICAgICBpZiAoIWF0U2Vjb25kVGFpbCkgewotICAgICAgICAgICAgLy8gSWYg
dGhlIHZhcmlhYmxlIGlzIGRlYWQgYXQgdGhlIGVuZCBvZiB0aGUgc2Vjb25kIGJsb2NrLCB0aGVu
IGRvIG5vdGhpbmc7IGVzc2VudGlhbGx5Ci0gICAgICAgICAgICAvLyB0aGlzIG1lYW5zIHRoYXQg
d2Ugd2FudCB0aGUgdGFpbCBzdGF0ZSB0byByZWZsZWN0IHdoYXRldmVyIHRoZSBmaXJzdCBibG9j
ayBkaWQuCi0gICAgICAgICAgICByZXR1cm47Ci0gICAgICAgIH0KLQotICAgICAgICBzd2l0Y2gg
KGF0U2Vjb25kVGFpbC0+b3AoKSkgewotICAgICAgICBjYXNlIFNldExvY2FsOgotICAgICAgICBj
YXNlIEZsdXNoOiB7Ci0gICAgICAgICAgICAvLyBUaGUgc2Vjb25kIGJsb2NrIGRpZCBpbnRlcmVz
dGluZyB0aGluZ3MgdG8gdGhlIHZhcmlhYmxlcywgc28gdXBkYXRlIHRoZSB0YWlsCi0gICAgICAg
ICAgICAvLyBhY2NvcmRpbmdseS4KLSAgICAgICAgICAgIGZpcnN0QmxvY2stPnZhcmlhYmxlc0F0
VGFpbC5vcGVyYW5kKG9wZXJhbmQpID0gYXRTZWNvbmRUYWlsOwotICAgICAgICAgICAgYnJlYWs7
Ci0gICAgICAgIH0KLSAgICAgICAgICAgIAotICAgICAgICBjYXNlIFBoaTogewotICAgICAgICAg
ICAgLy8gS2VlcCB3aGF0IHdhcyBpbiB0aGUgZmlyc3QgYmxvY2suCi0gICAgICAgICAgICBBU1NF
UlQoZmlyc3RCbG9jay0+dmFyaWFibGVzQXRUYWlsLm9wZXJhbmQob3BlcmFuZCkpOwotICAgICAg
ICAgICAgcmVjb3JkTmV3VGFyZ2V0KHN1YnN0aXR1dGlvbnMsIG9wZXJhbmQsIHNraXBHZXRMb2Nh
bChmaXJzdEJsb2NrLT52YXJpYWJsZXNBdFRhaWwub3BlcmFuZChvcGVyYW5kKSkpOwotICAgICAg
ICAgICAgYnJlYWs7Ci0gICAgICAgIH0KLQotICAgICAgICBjYXNlIEdldExvY2FsOiB7Ci0gICAg
ICAgICAgICAvLyBJZiBpdCdzIGEgR2V0TG9jYWwgb24gYSBjYXB0dXJlZCB2YXIsIHRoZW4gZGVm
aW5pdGVseSBrZWVwIHdoYXQgd2FzCi0gICAgICAgICAgICAvLyBpbiB0aGUgc2Vjb25kIGJsb2Nr
LiBJbiBwYXJ0aWN1bGFyLCBpdCdzIHBvc3NpYmxlIHRoYXQgdGhlIGZpcnN0Ci0gICAgICAgICAg
ICAvLyBibG9jayBkb2Vzbid0IGV2ZW4ga25vdyBhYm91dCB0aGlzIHZhcmlhYmxlLgotICAgICAg
ICAgICAgaWYgKGF0U2Vjb25kVGFpbC0+dmFyaWFibGVBY2Nlc3NEYXRhKCktPmlzQ2FwdHVyZWQo
KSkgewotICAgICAgICAgICAgICAgIGZpcnN0QmxvY2stPnZhcmlhYmxlc0F0VGFpbC5vcGVyYW5k
KG9wZXJhbmQpID0gYXRTZWNvbmRUYWlsOwotICAgICAgICAgICAgICAgIHJlY29yZE5ld1Rhcmdl
dChzdWJzdGl0dXRpb25zLCBvcGVyYW5kLCBhdFNlY29uZFRhaWwtPmNoaWxkMSgpLm5vZGUoKSk7
Ci0gICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICAKLSAg
ICAgICAgICAgIC8vIEl0J3MgcG9zc2libGUgdGhhdCB0aGUgc2Vjb25kIGJsb2NrIGhhZCBhIEdl
dExvY2FsIGFuZCB0aGUgZmlyc3QgYmxvY2sKLSAgICAgICAgICAgIC8vIGhhZCBhIFNldEFyZ3Vt
ZW50IG9yIGEgUGhpLiBUaGVuIHVwZGF0ZSB0aGUgdGFpbC4gT3RoZXJ3aXNlIGtlZXAgd2hhdCB3
YXMgaW4gdGhlCi0gICAgICAgICAgICAvLyBmaXJzdCBibG9jay4KLSAgICAgICAgICAgIE5vZGUq
IGF0Rmlyc3RUYWlsID0gZmlyc3RCbG9jay0+dmFyaWFibGVzQXRUYWlsLm9wZXJhbmQob3BlcmFu
ZCk7Ci0gICAgICAgICAgICBBU1NFUlQoYXRGaXJzdFRhaWwpOwotICAgICAgICAgICAgc3dpdGNo
IChhdEZpcnN0VGFpbC0+b3AoKSkgewotICAgICAgICAgICAgY2FzZSBTZXRBcmd1bWVudDoKLSAg
ICAgICAgICAgIGNhc2UgUGhpOgotICAgICAgICAgICAgICAgIGZpcnN0QmxvY2stPnZhcmlhYmxl
c0F0VGFpbC5vcGVyYW5kKG9wZXJhbmQpID0gYXRTZWNvbmRUYWlsOwotICAgICAgICAgICAgICAg
IHJlY29yZE5ld1RhcmdldChzdWJzdGl0dXRpb25zLCBvcGVyYW5kLCBhdFNlY29uZFRhaWwtPmNo
aWxkMSgpLm5vZGUoKSk7Ci0gICAgICAgICAgICAgICAgYnJlYWs7Ci0KLSAgICAgICAgICAgIGRl
ZmF1bHQ6Ci0gICAgICAgICAgICAgICAgLy8gS2VlcCB3aGF0IHdhcyBpbiB0aGUgZmlyc3QgYmxv
Y2ssIGFuZCBhZGp1c3QgdGhlIHN1YnN0aXR1dGlvbiB0byBhY2NvdW50IGZvcgotICAgICAgICAg
ICAgICAgIC8vIHRoZSBmYWN0IHRoYXQgc3VjY2Vzc29ycyB3aWxsIHJlZmVyIHRvIHRoZSBjaGls
ZCBvZiB0aGUgR2V0TG9jYWwuCi0gICAgICAgICAgICAgICAgQVNTRVJUKGZpcnN0QmxvY2stPnZh
cmlhYmxlc0F0VGFpbC5vcGVyYW5kKG9wZXJhbmQpKTsKLSAgICAgICAgICAgICAgICByZWNvcmRO
ZXdUYXJnZXQoc3Vic3RpdHV0aW9ucywgb3BlcmFuZCwgc2tpcEdldExvY2FsKGZpcnN0QmxvY2st
PnZhcmlhYmxlc0F0VGFpbC5vcGVyYW5kKG9wZXJhbmQpKSk7Ci0gICAgICAgICAgICAgICAgYnJl
YWs7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgfQotICAgICAg
ICAgICAgCi0gICAgICAgIGRlZmF1bHQ6Ci0gICAgICAgICAgICBSRUxFQVNFX0FTU0VSVF9OT1Rf
UkVBQ0hFRCgpOwotICAgICAgICB9Ci0gICAgfQotICAgIAogICAgIHZvaWQgbWVyZ2VCbG9ja3Mo
CiAgICAgICAgIEJsb2NrSW5kZXggZmlyc3RCbG9ja0luZGV4LCBCbG9ja0luZGV4IHNlY29uZEJs
b2NrSW5kZXgsIEJsb2NrSW5kZXggamV0dGlzb25lZEJsb2NrSW5kZXgpCiAgICAgewpJbmRleDog
U291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdGaXh1cFBoYXNlLmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0ZpeHVwUGhhc2UuY3BwCShyZXZpc2lvbiAx
NDM4MTcpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0ZpeHVwUGhhc2UuY3BwCSh3
b3JraW5nIGNvcHkpCkBAIC04Miw4ICs4Miw3IEBAIHByaXZhdGU6CiAgICAgICAgIGNhc2UgU2V0
TG9jYWw6IHsKICAgICAgICAgICAgIFZhcmlhYmxlQWNjZXNzRGF0YSogdmFyaWFibGUgPSBub2Rl
LT52YXJpYWJsZUFjY2Vzc0RhdGEoKTsKICAgICAgICAgICAgIAotICAgICAgICAgICAgaWYgKHZh
cmlhYmxlLT5pc0NhcHR1cmVkKCkKLSAgICAgICAgICAgICAgICB8fCBtX2dyYXBoLmlzQ3JlYXRl
ZFRoaXNBcmd1bWVudCh2YXJpYWJsZS0+bG9jYWwoKSkpCisgICAgICAgICAgICBpZiAoIXZhcmlh
YmxlLT5zaG91bGRVbmJveElmUG9zc2libGUoKSkKICAgICAgICAgICAgICAgICBicmVhazsKICAg
ICAgICAgICAgIAogICAgICAgICAgICAgaWYgKHZhcmlhYmxlLT5zaG91bGRVc2VEb3VibGVGb3Jt
YXQoKSkgewpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdHcmFwaC5oCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHR3JhcGguaAkocmV2aXNpb24g
MTQzODE2KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdHcmFwaC5oCSh3b3JraW5n
IGNvcHkpCkBAIC01MTQsMTUgKzUxNCw2IEBAIHB1YmxpYzoKICAgICAgICAgcmV0dXJuIG1fY29k
ZUJsb2NrLT51c2VzQXJndW1lbnRzKCk7CiAgICAgfQogICAgIAotICAgIGJvb2wgaXNDcmVhdGVk
VGhpc0FyZ3VtZW50KGludCBvcGVyYW5kKQotICAgIHsKLSAgICAgICAgaWYgKCFvcGVyYW5kSXNB
cmd1bWVudChvcGVyYW5kKSkKLSAgICAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAgICAgaWYg
KG9wZXJhbmRUb0FyZ3VtZW50KG9wZXJhbmQpKQotICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwot
ICAgICAgICByZXR1cm4gbV9jb2RlQmxvY2stPnNwZWNpYWxpemF0aW9uS2luZCgpID09IENvZGVG
b3JDb25zdHJ1Y3Q7Ci0gICAgfQotICAgIAogICAgIHVuc2lnbmVkIG51bVN1Y2Nlc3NvcnMoQmFz
aWNCbG9jayogYmxvY2spCiAgICAgewogICAgICAgICByZXR1cm4gYmxvY2stPmxhc3QoKS0+bnVt
U3VjY2Vzc29ycygpOwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdQcmVkaWN0
aW9uUHJvcGFnYXRpb25QaGFzZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRD
b3JlL2RmZy9ERkdQcmVkaWN0aW9uUHJvcGFnYXRpb25QaGFzZS5jcHAJKHJldmlzaW9uIDE0Mzgx
NikKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHUHJlZGljdGlvblByb3BhZ2F0aW9u
UGhhc2UuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMDIyLDkgKzEwMjIsNiBAQCBwcml2YXRlOgog
ICAgICAgICAgICAgVmFyaWFibGVBY2Nlc3NEYXRhKiB2YXJpYWJsZUFjY2Vzc0RhdGEgPSAmbV9n
cmFwaC5tX3ZhcmlhYmxlQWNjZXNzRGF0YVtpXTsKICAgICAgICAgICAgIGlmICghdmFyaWFibGVB
Y2Nlc3NEYXRhLT5pc1Jvb3QoKSkKICAgICAgICAgICAgICAgICBjb250aW51ZTsKLSAgICAgICAg
ICAgIGlmIChvcGVyYW5kSXNBcmd1bWVudCh2YXJpYWJsZUFjY2Vzc0RhdGEtPmxvY2FsKCkpCi0g
ICAgICAgICAgICAgICAgfHwgdmFyaWFibGVBY2Nlc3NEYXRhLT5pc0NhcHR1cmVkKCkpCi0gICAg
ICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgICAgICBtX2NoYW5nZWQgfD0gdmFyaWFibGVB
Y2Nlc3NEYXRhLT50YWxseVZvdGVzRm9yU2hvdWxkVXNlRG91YmxlRm9ybWF0KCk7CiAgICAgICAg
IH0KICAgICAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IG1fZ3JhcGgubV9hcmd1bWVudFBv
c2l0aW9ucy5zaXplKCk7ICsraSkKQEAgLTEwMzMsOSArMTAzMCw2IEBAIHByaXZhdGU6CiAgICAg
ICAgICAgICBWYXJpYWJsZUFjY2Vzc0RhdGEqIHZhcmlhYmxlQWNjZXNzRGF0YSA9ICZtX2dyYXBo
Lm1fdmFyaWFibGVBY2Nlc3NEYXRhW2ldOwogICAgICAgICAgICAgaWYgKCF2YXJpYWJsZUFjY2Vz
c0RhdGEtPmlzUm9vdCgpKQogICAgICAgICAgICAgICAgIGNvbnRpbnVlOwotICAgICAgICAgICAg
aWYgKG9wZXJhbmRJc0FyZ3VtZW50KHZhcmlhYmxlQWNjZXNzRGF0YS0+bG9jYWwoKSkKLSAgICAg
ICAgICAgICAgICB8fCB2YXJpYWJsZUFjY2Vzc0RhdGEtPmlzQ2FwdHVyZWQoKSkKLSAgICAgICAg
ICAgICAgICBjb250aW51ZTsKICAgICAgICAgICAgIG1fY2hhbmdlZCB8PSB2YXJpYWJsZUFjY2Vz
c0RhdGEtPm1ha2VQcmVkaWN0aW9uRm9yRG91YmxlRm9ybWF0KCk7CiAgICAgICAgIH0KICAgICB9
CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklUMzJfNjQu
Y3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRp
dmVKSVQzMl82NC5jcHAJKHJldmlzaW9uIDE0MzgxNikKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQzMl82NC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE5MzYs
NyArMTkzNiw3IEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGUoTm9kZSogbm9kZSkKIAog
ICAgIGNhc2UgR2V0TG9jYWw6IHsKICAgICAgICAgU3BlY3VsYXRlZFR5cGUgcHJlZGljdGlvbiA9
IG5vZGUtPnZhcmlhYmxlQWNjZXNzRGF0YSgpLT5wcmVkaWN0aW9uKCk7Ci0gICAgICAgIEFic3Ry
YWN0VmFsdWUmIHZhbHVlID0gYmxvY2soKS0+dmFsdWVzQXRIZWFkLm9wZXJhbmQobm9kZS0+bG9j
YWwoKSk7CisgICAgICAgIEFic3RyYWN0VmFsdWUmIHZhbHVlID0gbV9zdGF0ZS52YXJpYWJsZXMo
KS5vcGVyYW5kKG5vZGUtPmxvY2FsKCkpOwogCiAgICAgICAgIC8vIElmIHdlIGhhdmUgbm8gcHJl
ZGljdGlvbiBmb3IgdGhpcyBsb2NhbCwgdGhlbiBkb24ndCBhdHRlbXB0IHRvIGNvbXBpbGUuCiAg
ICAgICAgIGlmIChwcmVkaWN0aW9uID09IFNwZWNOb25lKSB7CkBAIC0xOTQ0LDYwICsxOTQ0LDU4
IEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGUoTm9kZSogbm9kZSkKICAgICAgICAgICAg
IGJyZWFrOwogICAgICAgICB9CiAgICAgICAgIAotICAgICAgICBpZiAoIW5vZGUtPnZhcmlhYmxl
QWNjZXNzRGF0YSgpLT5pc0NhcHR1cmVkKCkpIHsKLSAgICAgICAgICAgIC8vIElmIHRoZSBDRkEg
aXMgdHJhY2tpbmcgdGhpcyB2YXJpYWJsZSBhbmQgaXQgZm91bmQgdGhhdCB0aGUgdmFyaWFibGUK
LSAgICAgICAgICAgIC8vIGNhbm5vdCBoYXZlIGJlZW4gYXNzaWduZWQsIHRoZW4gZG9uJ3QgYXR0
ZW1wdCB0byBwcm9jZWVkLgotICAgICAgICAgICAgaWYgKHZhbHVlLmlzQ2xlYXIoKSkgewotICAg
ICAgICAgICAgICAgIC8vIEZJWE1FOiBXZSBzaG91bGQgdHJhcCBpbnN0ZWFkLgotICAgICAgICAg
ICAgICAgIC8vIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMTAzODMK
LSAgICAgICAgICAgICAgICB0ZXJtaW5hdGVTcGVjdWxhdGl2ZUV4ZWN1dGlvbihJbmFkZXF1YXRl
Q292ZXJhZ2UsIEpTVmFsdWVSZWdzKCksIDApOwotICAgICAgICAgICAgICAgIGJyZWFrOwotICAg
ICAgICAgICAgfQorICAgICAgICAvLyBJZiB0aGUgQ0ZBIGlzIHRyYWNraW5nIHRoaXMgdmFyaWFi
bGUgYW5kIGl0IGZvdW5kIHRoYXQgdGhlIHZhcmlhYmxlCisgICAgICAgIC8vIGNhbm5vdCBoYXZl
IGJlZW4gYXNzaWduZWQsIHRoZW4gZG9uJ3QgYXR0ZW1wdCB0byBwcm9jZWVkLgorICAgICAgICBp
ZiAodmFsdWUuaXNDbGVhcigpKSB7CisgICAgICAgICAgICAvLyBGSVhNRTogV2Ugc2hvdWxkIHRy
YXAgaW5zdGVhZC4KKyAgICAgICAgICAgIC8vIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0xMTAzODMKKyAgICAgICAgICAgIHRlcm1pbmF0ZVNwZWN1bGF0aXZlRXhlY3V0
aW9uKEluYWRlcXVhdGVDb3ZlcmFnZSwgSlNWYWx1ZVJlZ3MoKSwgMCk7CisgICAgICAgICAgICBi
cmVhazsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgaWYgKG5vZGUtPnZhcmlhYmxlQWNj
ZXNzRGF0YSgpLT5zaG91bGRVc2VEb3VibGVGb3JtYXQoKSkgeworICAgICAgICAgICAgRlBSVGVt
cG9yYXJ5IHJlc3VsdCh0aGlzKTsKKyAgICAgICAgICAgIG1faml0LmxvYWREb3VibGUoSklUQ29t
cGlsZXI6OmFkZHJlc3NGb3Iobm9kZS0+bG9jYWwoKSksIHJlc3VsdC5mcHIoKSk7CisgICAgICAg
ICAgICBWaXJ0dWFsUmVnaXN0ZXIgdmlydHVhbFJlZ2lzdGVyID0gbm9kZS0+dmlydHVhbFJlZ2lz
dGVyKCk7CisgICAgICAgICAgICBtX2ZwcnMucmV0YWluKHJlc3VsdC5mcHIoKSwgdmlydHVhbFJl
Z2lzdGVyLCBTcGlsbE9yZGVyRG91YmxlKTsKKyAgICAgICAgICAgIG1fZ2VuZXJhdGlvbkluZm9b
dmlydHVhbFJlZ2lzdGVyXS5pbml0RG91YmxlKG5vZGUsIG5vZGUtPnJlZkNvdW50KCksIHJlc3Vs
dC5mcHIoKSk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAg
ICAgaWYgKGlzSW50MzJTcGVjdWxhdGlvbih2YWx1ZS5tX3R5cGUpKSB7CisgICAgICAgICAgICBH
UFJUZW1wb3JhcnkgcmVzdWx0KHRoaXMpOworICAgICAgICAgICAgbV9qaXQubG9hZDMyKEpJVENv
bXBpbGVyOjpwYXlsb2FkRm9yKG5vZGUtPmxvY2FsKCkpLCByZXN1bHQuZ3ByKCkpOwogICAgICAg
ICAgICAgCi0gICAgICAgICAgICBpZiAobm9kZS0+dmFyaWFibGVBY2Nlc3NEYXRhKCktPnNob3Vs
ZFVzZURvdWJsZUZvcm1hdCgpKSB7Ci0gICAgICAgICAgICAgICAgRlBSVGVtcG9yYXJ5IHJlc3Vs
dCh0aGlzKTsKLSAgICAgICAgICAgICAgICBtX2ppdC5sb2FkRG91YmxlKEpJVENvbXBpbGVyOjph
ZGRyZXNzRm9yKG5vZGUtPmxvY2FsKCkpLCByZXN1bHQuZnByKCkpOwotICAgICAgICAgICAgICAg
IFZpcnR1YWxSZWdpc3RlciB2aXJ0dWFsUmVnaXN0ZXIgPSBub2RlLT52aXJ0dWFsUmVnaXN0ZXIo
KTsKLSAgICAgICAgICAgICAgICBtX2ZwcnMucmV0YWluKHJlc3VsdC5mcHIoKSwgdmlydHVhbFJl
Z2lzdGVyLCBTcGlsbE9yZGVyRG91YmxlKTsKLSAgICAgICAgICAgICAgICBtX2dlbmVyYXRpb25J
bmZvW3ZpcnR1YWxSZWdpc3Rlcl0uaW5pdERvdWJsZShub2RlLCBub2RlLT5yZWZDb3VudCgpLCBy
ZXN1bHQuZnByKCkpOwotICAgICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAgfQorICAg
ICAgICAgICAgLy8gTGlrZSBpbnRlZ2VyUmVzdWx0LCBidXQgZG9uJ3QgdXNlQ2hpbGRyZW4gLSBv
dXIgY2hpbGRyZW4gYXJlIHBoaSBub2RlcywKKyAgICAgICAgICAgIC8vIGFuZCBkb24ndCByZXBy
ZXNlbnQgdmFsdWVzIHdpdGhpbiB0aGlzIGRhdGFmbG93IHdpdGggdmlydHVhbCByZWdpc3RlcnMu
CisgICAgICAgICAgICBWaXJ0dWFsUmVnaXN0ZXIgdmlydHVhbFJlZ2lzdGVyID0gbm9kZS0+dmly
dHVhbFJlZ2lzdGVyKCk7CisgICAgICAgICAgICBtX2dwcnMucmV0YWluKHJlc3VsdC5ncHIoKSwg
dmlydHVhbFJlZ2lzdGVyLCBTcGlsbE9yZGVySW50ZWdlcik7CisgICAgICAgICAgICBtX2dlbmVy
YXRpb25JbmZvW3ZpcnR1YWxSZWdpc3Rlcl0uaW5pdEludGVnZXIobm9kZSwgbm9kZS0+cmVmQ291
bnQoKSwgcmVzdWx0LmdwcigpKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CiAgICAg
ICAgIAotICAgICAgICAgICAgaWYgKGlzSW50MzJTcGVjdWxhdGlvbih2YWx1ZS5tX3R5cGUpKSB7
Ci0gICAgICAgICAgICAgICAgR1BSVGVtcG9yYXJ5IHJlc3VsdCh0aGlzKTsKLSAgICAgICAgICAg
ICAgICBtX2ppdC5sb2FkMzIoSklUQ29tcGlsZXI6OnBheWxvYWRGb3Iobm9kZS0+bG9jYWwoKSks
IHJlc3VsdC5ncHIoKSk7Ci0KLSAgICAgICAgICAgICAgICAvLyBMaWtlIGludGVnZXJSZXN1bHQs
IGJ1dCBkb24ndCB1c2VDaGlsZHJlbiAtIG91ciBjaGlsZHJlbiBhcmUgcGhpIG5vZGVzLAotICAg
ICAgICAgICAgICAgIC8vIGFuZCBkb24ndCByZXByZXNlbnQgdmFsdWVzIHdpdGhpbiB0aGlzIGRh
dGFmbG93IHdpdGggdmlydHVhbCByZWdpc3RlcnMuCi0gICAgICAgICAgICAgICAgVmlydHVhbFJl
Z2lzdGVyIHZpcnR1YWxSZWdpc3RlciA9IG5vZGUtPnZpcnR1YWxSZWdpc3RlcigpOwotICAgICAg
ICAgICAgICAgIG1fZ3Bycy5yZXRhaW4ocmVzdWx0LmdwcigpLCB2aXJ0dWFsUmVnaXN0ZXIsIFNw
aWxsT3JkZXJJbnRlZ2VyKTsKLSAgICAgICAgICAgICAgICBtX2dlbmVyYXRpb25JbmZvW3ZpcnR1
YWxSZWdpc3Rlcl0uaW5pdEludGVnZXIobm9kZSwgbm9kZS0+cmVmQ291bnQoKSwgcmVzdWx0Lmdw
cigpKTsKLSAgICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAgIH0KLQotICAgICAgICAg
ICAgaWYgKGlzQ2VsbFNwZWN1bGF0aW9uKHZhbHVlLm1fdHlwZSkpIHsKLSAgICAgICAgICAgICAg
ICBHUFJUZW1wb3JhcnkgcmVzdWx0KHRoaXMpOwotICAgICAgICAgICAgICAgIG1faml0LmxvYWQz
MihKSVRDb21waWxlcjo6cGF5bG9hZEZvcihub2RlLT5sb2NhbCgpKSwgcmVzdWx0LmdwcigpKTsK
LQotICAgICAgICAgICAgICAgIC8vIExpa2UgY2VsbFJlc3VsdCwgYnV0IGRvbid0IHVzZUNoaWxk
cmVuIC0gb3VyIGNoaWxkcmVuIGFyZSBwaGkgbm9kZXMsCi0gICAgICAgICAgICAgICAgLy8gYW5k
IGRvbid0IHJlcHJlc2VudCB2YWx1ZXMgd2l0aGluIHRoaXMgZGF0YWZsb3cgd2l0aCB2aXJ0dWFs
IHJlZ2lzdGVycy4KLSAgICAgICAgICAgICAgICBWaXJ0dWFsUmVnaXN0ZXIgdmlydHVhbFJlZ2lz
dGVyID0gbm9kZS0+dmlydHVhbFJlZ2lzdGVyKCk7Ci0gICAgICAgICAgICAgICAgbV9ncHJzLnJl
dGFpbihyZXN1bHQuZ3ByKCksIHZpcnR1YWxSZWdpc3RlciwgU3BpbGxPcmRlckNlbGwpOwotICAg
ICAgICAgICAgICAgIG1fZ2VuZXJhdGlvbkluZm9bdmlydHVhbFJlZ2lzdGVyXS5pbml0Q2VsbChu
b2RlLCBub2RlLT5yZWZDb3VudCgpLCByZXN1bHQuZ3ByKCkpOwotICAgICAgICAgICAgICAgIGJy
ZWFrOwotICAgICAgICAgICAgfQotCi0gICAgICAgICAgICBpZiAoaXNCb29sZWFuU3BlY3VsYXRp
b24odmFsdWUubV90eXBlKSkgewotICAgICAgICAgICAgICAgIEdQUlRlbXBvcmFyeSByZXN1bHQo
dGhpcyk7Ci0gICAgICAgICAgICAgICAgbV9qaXQubG9hZDMyKEpJVENvbXBpbGVyOjpwYXlsb2Fk
Rm9yKG5vZGUtPmxvY2FsKCkpLCByZXN1bHQuZ3ByKCkpOwotCi0gICAgICAgICAgICAgICAgLy8g
TGlrZSBib29sZWFuUmVzdWx0LCBidXQgZG9uJ3QgdXNlQ2hpbGRyZW4gLSBvdXIgY2hpbGRyZW4g
YXJlIHBoaSBub2RlcywKLSAgICAgICAgICAgICAgICAvLyBhbmQgZG9uJ3QgcmVwcmVzZW50IHZh
bHVlcyB3aXRoaW4gdGhpcyBkYXRhZmxvdyB3aXRoIHZpcnR1YWwgcmVnaXN0ZXJzLgotICAgICAg
ICAgICAgICAgIFZpcnR1YWxSZWdpc3RlciB2aXJ0dWFsUmVnaXN0ZXIgPSBub2RlLT52aXJ0dWFs
UmVnaXN0ZXIoKTsKLSAgICAgICAgICAgICAgICBtX2dwcnMucmV0YWluKHJlc3VsdC5ncHIoKSwg
dmlydHVhbFJlZ2lzdGVyLCBTcGlsbE9yZGVyQm9vbGVhbik7Ci0gICAgICAgICAgICAgICAgbV9n
ZW5lcmF0aW9uSW5mb1t2aXJ0dWFsUmVnaXN0ZXJdLmluaXRCb29sZWFuKG5vZGUsIG5vZGUtPnJl
ZkNvdW50KCksIHJlc3VsdC5ncHIoKSk7Ci0gICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAg
ICAgICB9CisgICAgICAgIGlmIChpc0NlbGxTcGVjdWxhdGlvbih2YWx1ZS5tX3R5cGUpKSB7Cisg
ICAgICAgICAgICBHUFJUZW1wb3JhcnkgcmVzdWx0KHRoaXMpOworICAgICAgICAgICAgbV9qaXQu
bG9hZDMyKEpJVENvbXBpbGVyOjpwYXlsb2FkRm9yKG5vZGUtPmxvY2FsKCkpLCByZXN1bHQuZ3By
KCkpOworICAgICAgICAgICAgCisgICAgICAgICAgICAvLyBMaWtlIGNlbGxSZXN1bHQsIGJ1dCBk
b24ndCB1c2VDaGlsZHJlbiAtIG91ciBjaGlsZHJlbiBhcmUgcGhpIG5vZGVzLAorICAgICAgICAg
ICAgLy8gYW5kIGRvbid0IHJlcHJlc2VudCB2YWx1ZXMgd2l0aGluIHRoaXMgZGF0YWZsb3cgd2l0
aCB2aXJ0dWFsIHJlZ2lzdGVycy4KKyAgICAgICAgICAgIFZpcnR1YWxSZWdpc3RlciB2aXJ0dWFs
UmVnaXN0ZXIgPSBub2RlLT52aXJ0dWFsUmVnaXN0ZXIoKTsKKyAgICAgICAgICAgIG1fZ3Bycy5y
ZXRhaW4ocmVzdWx0LmdwcigpLCB2aXJ0dWFsUmVnaXN0ZXIsIFNwaWxsT3JkZXJDZWxsKTsKKyAg
ICAgICAgICAgIG1fZ2VuZXJhdGlvbkluZm9bdmlydHVhbFJlZ2lzdGVyXS5pbml0Q2VsbChub2Rl
LCBub2RlLT5yZWZDb3VudCgpLCByZXN1bHQuZ3ByKCkpOworICAgICAgICAgICAgYnJlYWs7Cisg
ICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIGlmIChpc0Jvb2xlYW5TcGVjdWxhdGlvbih2YWx1
ZS5tX3R5cGUpKSB7CisgICAgICAgICAgICBHUFJUZW1wb3JhcnkgcmVzdWx0KHRoaXMpOworICAg
ICAgICAgICAgbV9qaXQubG9hZDMyKEpJVENvbXBpbGVyOjpwYXlsb2FkRm9yKG5vZGUtPmxvY2Fs
KCkpLCByZXN1bHQuZ3ByKCkpOworICAgICAgICAgICAgCisgICAgICAgICAgICAvLyBMaWtlIGJv
b2xlYW5SZXN1bHQsIGJ1dCBkb24ndCB1c2VDaGlsZHJlbiAtIG91ciBjaGlsZHJlbiBhcmUgcGhp
IG5vZGVzLAorICAgICAgICAgICAgLy8gYW5kIGRvbid0IHJlcHJlc2VudCB2YWx1ZXMgd2l0aGlu
IHRoaXMgZGF0YWZsb3cgd2l0aCB2aXJ0dWFsIHJlZ2lzdGVycy4KKyAgICAgICAgICAgIFZpcnR1
YWxSZWdpc3RlciB2aXJ0dWFsUmVnaXN0ZXIgPSBub2RlLT52aXJ0dWFsUmVnaXN0ZXIoKTsKKyAg
ICAgICAgICAgIG1fZ3Bycy5yZXRhaW4ocmVzdWx0LmdwcigpLCB2aXJ0dWFsUmVnaXN0ZXIsIFNw
aWxsT3JkZXJCb29sZWFuKTsKKyAgICAgICAgICAgIG1fZ2VuZXJhdGlvbkluZm9bdmlydHVhbFJl
Z2lzdGVyXS5pbml0Qm9vbGVhbihub2RlLCBub2RlLT5yZWZDb3VudCgpLCByZXN1bHQuZ3ByKCkp
OworICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KIAogICAgICAgICBHUFJUZW1wb3Jhcnkg
cmVzdWx0KHRoaXMpOwpAQCAtMjAxMSwxMyArMjAwOSw3IEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6
OmNvbXBpbGUoTm9kZSogbm9kZSkKICAgICAgICAgbV9ncHJzLnJldGFpbihyZXN1bHQuZ3ByKCks
IHZpcnR1YWxSZWdpc3RlciwgU3BpbGxPcmRlckpTKTsKICAgICAgICAgbV9ncHJzLnJldGFpbih0
YWcuZ3ByKCksIHZpcnR1YWxSZWdpc3RlciwgU3BpbGxPcmRlckpTKTsKIAotICAgICAgICBEYXRh
Rm9ybWF0IGZvcm1hdDsKLSAgICAgICAgaWYgKGlzQ2VsbFNwZWN1bGF0aW9uKHZhbHVlLm1fdHlw
ZSkKLSAgICAgICAgICAgICYmICFub2RlLT52YXJpYWJsZUFjY2Vzc0RhdGEoKS0+aXNDYXB0dXJl
ZCgpKQotICAgICAgICAgICAgZm9ybWF0ID0gRGF0YUZvcm1hdEpTQ2VsbDsKLSAgICAgICAgZWxz
ZQotICAgICAgICAgICAgZm9ybWF0ID0gRGF0YUZvcm1hdEpTOwotICAgICAgICBtX2dlbmVyYXRp
b25JbmZvW3ZpcnR1YWxSZWdpc3Rlcl0uaW5pdEpTVmFsdWUobm9kZSwgbm9kZS0+cmVmQ291bnQo
KSwgdGFnLmdwcigpLCByZXN1bHQuZ3ByKCksIGZvcm1hdCk7CisgICAgICAgIG1fZ2VuZXJhdGlv
bkluZm9bdmlydHVhbFJlZ2lzdGVyXS5pbml0SlNWYWx1ZShub2RlLCBub2RlLT5yZWZDb3VudCgp
LCB0YWcuZ3ByKCksIHJlc3VsdC5ncHIoKSwgRGF0YUZvcm1hdEpTKTsKICAgICAgICAgYnJlYWs7
CiAgICAgfQogICAgICAgICAKQEAgLTIwMzcsNyArMjAyOSw3IEBAIHZvaWQgU3BlY3VsYXRpdmVK
SVQ6OmNvbXBpbGUoTm9kZSogbm9kZSkKICAgICAgICAgLy8gc3RhY2suCiAgICAgICAgIGNvbXBp
bGVNb3ZIaW50KG5vZGUpOwogICAgICAgICAKLSAgICAgICAgaWYgKCFub2RlLT52YXJpYWJsZUFj
Y2Vzc0RhdGEoKS0+aXNDYXB0dXJlZCgpICYmICFtX2ppdC5ncmFwaCgpLmlzQ3JlYXRlZFRoaXNB
cmd1bWVudChub2RlLT5sb2NhbCgpKSkgeworICAgICAgICBpZiAobm9kZS0+dmFyaWFibGVBY2Nl
c3NEYXRhKCktPnNob3VsZFVuYm94SWZQb3NzaWJsZSgpKSB7CiAgICAgICAgICAgICBpZiAobm9k
ZS0+dmFyaWFibGVBY2Nlc3NEYXRhKCktPnNob3VsZFVzZURvdWJsZUZvcm1hdCgpKSB7CiAgICAg
ICAgICAgICAgICAgU3BlY3VsYXRlRG91YmxlT3BlcmFuZCB2YWx1ZSh0aGlzLCBub2RlLT5jaGls
ZDEoKSwgRm9yd2FyZFNwZWN1bGF0aW9uKTsKICAgICAgICAgICAgICAgICBtX2ppdC5zdG9yZURv
dWJsZSh2YWx1ZS5mcHIoKSwgSklUQ29tcGlsZXI6OmFkZHJlc3NGb3Iobm9kZS0+bG9jYWwoKSkp
OwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVDY0LmNw
cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZl
SklUNjQuY3BwCShyZXZpc2lvbiAxNDM4MTYpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZn
L0RGR1NwZWN1bGF0aXZlSklUNjQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xOTAyLDcgKzE5MDIs
NyBAQCB2b2lkIFNwZWN1bGF0aXZlSklUOjpjb21waWxlKE5vZGUqIG5vZGUpCiAKICAgICBjYXNl
IEdldExvY2FsOiB7CiAgICAgICAgIFNwZWN1bGF0ZWRUeXBlIHByZWRpY3Rpb24gPSBub2RlLT52
YXJpYWJsZUFjY2Vzc0RhdGEoKS0+cHJlZGljdGlvbigpOwotICAgICAgICBBYnN0cmFjdFZhbHVl
JiB2YWx1ZSA9IGJsb2NrKCktPnZhbHVlc0F0SGVhZC5vcGVyYW5kKG5vZGUtPmxvY2FsKCkpOwor
ICAgICAgICBBYnN0cmFjdFZhbHVlJiB2YWx1ZSA9IG1fc3RhdGUudmFyaWFibGVzKCkub3BlcmFu
ZChub2RlLT5sb2NhbCgpKTsKIAogICAgICAgICAvLyBJZiB3ZSBoYXZlIG5vIHByZWRpY3Rpb24g
Zm9yIHRoaXMgbG9jYWwsIHRoZW4gZG9uJ3QgYXR0ZW1wdCB0byBjb21waWxlLgogICAgICAgICBp
ZiAocHJlZGljdGlvbiA9PSBTcGVjTm9uZSkgewpAQCAtMTkxMCwzNiArMTkxMCwzNCBAQCB2b2lk
IFNwZWN1bGF0aXZlSklUOjpjb21waWxlKE5vZGUqIG5vZGUpCiAgICAgICAgICAgICBicmVhazsK
ICAgICAgICAgfQogICAgICAgICAKLSAgICAgICAgaWYgKCFub2RlLT52YXJpYWJsZUFjY2Vzc0Rh
dGEoKS0+aXNDYXB0dXJlZCgpKSB7Ci0gICAgICAgICAgICAvLyBJZiB0aGUgQ0ZBIGlzIHRyYWNr
aW5nIHRoaXMgdmFyaWFibGUgYW5kIGl0IGZvdW5kIHRoYXQgdGhlIHZhcmlhYmxlCi0gICAgICAg
ICAgICAvLyBjYW5ub3QgaGF2ZSBiZWVuIGFzc2lnbmVkLCB0aGVuIGRvbid0IGF0dGVtcHQgdG8g
cHJvY2VlZC4KLSAgICAgICAgICAgIGlmICh2YWx1ZS5pc0NsZWFyKCkpIHsKLSAgICAgICAgICAg
ICAgICAvLyBGSVhNRTogV2Ugc2hvdWxkIHRyYXAgaW5zdGVhZC4KLSAgICAgICAgICAgICAgICAv
LyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTEwMzgzCi0gICAgICAg
ICAgICAgICAgdGVybWluYXRlU3BlY3VsYXRpdmVFeGVjdXRpb24oSW5hZGVxdWF0ZUNvdmVyYWdl
LCBKU1ZhbHVlUmVncygpLCAwKTsKLSAgICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAg
IH0KLSAgICAgICAgICAgIAotICAgICAgICAgICAgaWYgKG5vZGUtPnZhcmlhYmxlQWNjZXNzRGF0
YSgpLT5zaG91bGRVc2VEb3VibGVGb3JtYXQoKSkgewotICAgICAgICAgICAgICAgIEZQUlRlbXBv
cmFyeSByZXN1bHQodGhpcyk7Ci0gICAgICAgICAgICAgICAgbV9qaXQubG9hZERvdWJsZShKSVRD
b21waWxlcjo6YWRkcmVzc0Zvcihub2RlLT5sb2NhbCgpKSwgcmVzdWx0LmZwcigpKTsKLSAgICAg
ICAgICAgICAgICBWaXJ0dWFsUmVnaXN0ZXIgdmlydHVhbFJlZ2lzdGVyID0gbm9kZS0+dmlydHVh
bFJlZ2lzdGVyKCk7Ci0gICAgICAgICAgICAgICAgbV9mcHJzLnJldGFpbihyZXN1bHQuZnByKCks
IHZpcnR1YWxSZWdpc3RlciwgU3BpbGxPcmRlckRvdWJsZSk7Ci0gICAgICAgICAgICAgICAgbV9n
ZW5lcmF0aW9uSW5mb1t2aXJ0dWFsUmVnaXN0ZXJdLmluaXREb3VibGUobm9kZSwgbm9kZS0+cmVm
Q291bnQoKSwgcmVzdWx0LmZwcigpKTsKLSAgICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAg
ICAgIH0KKyAgICAgICAgLy8gSWYgdGhlIENGQSBpcyB0cmFja2luZyB0aGlzIHZhcmlhYmxlIGFu
ZCBpdCBmb3VuZCB0aGF0IHRoZSB2YXJpYWJsZQorICAgICAgICAvLyBjYW5ub3QgaGF2ZSBiZWVu
IGFzc2lnbmVkLCB0aGVuIGRvbid0IGF0dGVtcHQgdG8gcHJvY2VlZC4KKyAgICAgICAgaWYgKHZh
bHVlLmlzQ2xlYXIoKSkgeworICAgICAgICAgICAgLy8gRklYTUU6IFdlIHNob3VsZCB0cmFwIGlu
c3RlYWQuCisgICAgICAgICAgICAvLyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MTEwMzgzCisgICAgICAgICAgICB0ZXJtaW5hdGVTcGVjdWxhdGl2ZUV4ZWN1dGlvbihJ
bmFkZXF1YXRlQ292ZXJhZ2UsIEpTVmFsdWVSZWdzKCksIDApOworICAgICAgICAgICAgYnJlYWs7
CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIGlmIChub2RlLT52YXJpYWJsZUFjY2Vzc0Rh
dGEoKS0+c2hvdWxkVXNlRG91YmxlRm9ybWF0KCkpIHsKKyAgICAgICAgICAgIEZQUlRlbXBvcmFy
eSByZXN1bHQodGhpcyk7CisgICAgICAgICAgICBtX2ppdC5sb2FkRG91YmxlKEpJVENvbXBpbGVy
OjphZGRyZXNzRm9yKG5vZGUtPmxvY2FsKCkpLCByZXN1bHQuZnByKCkpOworICAgICAgICAgICAg
VmlydHVhbFJlZ2lzdGVyIHZpcnR1YWxSZWdpc3RlciA9IG5vZGUtPnZpcnR1YWxSZWdpc3Rlcigp
OworICAgICAgICAgICAgbV9mcHJzLnJldGFpbihyZXN1bHQuZnByKCksIHZpcnR1YWxSZWdpc3Rl
ciwgU3BpbGxPcmRlckRvdWJsZSk7CisgICAgICAgICAgICBtX2dlbmVyYXRpb25JbmZvW3ZpcnR1
YWxSZWdpc3Rlcl0uaW5pdERvdWJsZShub2RlLCBub2RlLT5yZWZDb3VudCgpLCByZXN1bHQuZnBy
KCkpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIGlm
IChpc0ludDMyU3BlY3VsYXRpb24odmFsdWUubV90eXBlKSkgeworICAgICAgICAgICAgR1BSVGVt
cG9yYXJ5IHJlc3VsdCh0aGlzKTsKKyAgICAgICAgICAgIG1faml0LmxvYWQzMihKSVRDb21waWxl
cjo6cGF5bG9hZEZvcihub2RlLT5sb2NhbCgpKSwgcmVzdWx0LmdwcigpKTsKICAgICAgICAgICAg
IAotICAgICAgICAgICAgaWYgKGlzSW50MzJTcGVjdWxhdGlvbih2YWx1ZS5tX3R5cGUpKSB7Ci0g
ICAgICAgICAgICAgICAgR1BSVGVtcG9yYXJ5IHJlc3VsdCh0aGlzKTsKLSAgICAgICAgICAgICAg
ICBtX2ppdC5sb2FkMzIoSklUQ29tcGlsZXI6OnBheWxvYWRGb3Iobm9kZS0+bG9jYWwoKSksIHJl
c3VsdC5ncHIoKSk7Ci0gICAgICAgICAgICAgICAgCi0gICAgICAgICAgICAgICAgLy8gTGlrZSBp
bnRlZ2VyUmVzdWx0LCBidXQgZG9uJ3QgdXNlQ2hpbGRyZW4gLSBvdXIgY2hpbGRyZW4gYXJlIHBo
aSBub2RlcywKLSAgICAgICAgICAgICAgICAvLyBhbmQgZG9uJ3QgcmVwcmVzZW50IHZhbHVlcyB3
aXRoaW4gdGhpcyBkYXRhZmxvdyB3aXRoIHZpcnR1YWwgcmVnaXN0ZXJzLgotICAgICAgICAgICAg
ICAgIFZpcnR1YWxSZWdpc3RlciB2aXJ0dWFsUmVnaXN0ZXIgPSBub2RlLT52aXJ0dWFsUmVnaXN0
ZXIoKTsKLSAgICAgICAgICAgICAgICBtX2dwcnMucmV0YWluKHJlc3VsdC5ncHIoKSwgdmlydHVh
bFJlZ2lzdGVyLCBTcGlsbE9yZGVySW50ZWdlcik7Ci0gICAgICAgICAgICAgICAgbV9nZW5lcmF0
aW9uSW5mb1t2aXJ0dWFsUmVnaXN0ZXJdLmluaXRJbnRlZ2VyKG5vZGUsIG5vZGUtPnJlZkNvdW50
KCksIHJlc3VsdC5ncHIoKSk7Ci0gICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgICB9
CisgICAgICAgICAgICAvLyBMaWtlIGludGVnZXJSZXN1bHQsIGJ1dCBkb24ndCB1c2VDaGlsZHJl
biAtIG91ciBjaGlsZHJlbiBhcmUgcGhpIG5vZGVzLAorICAgICAgICAgICAgLy8gYW5kIGRvbid0
IHJlcHJlc2VudCB2YWx1ZXMgd2l0aGluIHRoaXMgZGF0YWZsb3cgd2l0aCB2aXJ0dWFsIHJlZ2lz
dGVycy4KKyAgICAgICAgICAgIFZpcnR1YWxSZWdpc3RlciB2aXJ0dWFsUmVnaXN0ZXIgPSBub2Rl
LT52aXJ0dWFsUmVnaXN0ZXIoKTsKKyAgICAgICAgICAgIG1fZ3Bycy5yZXRhaW4ocmVzdWx0Lmdw
cigpLCB2aXJ0dWFsUmVnaXN0ZXIsIFNwaWxsT3JkZXJJbnRlZ2VyKTsKKyAgICAgICAgICAgIG1f
Z2VuZXJhdGlvbkluZm9bdmlydHVhbFJlZ2lzdGVyXS5pbml0SW50ZWdlcihub2RlLCBub2RlLT5y
ZWZDb3VudCgpLCByZXN1bHQuZ3ByKCkpOworICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0K
IAogICAgICAgICBHUFJUZW1wb3JhcnkgcmVzdWx0KHRoaXMpOwpAQCAtMTk1MSw5ICsxOTQ5LDcg
QEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZShOb2RlKiBub2RlKQogICAgICAgICBtX2dw
cnMucmV0YWluKHJlc3VsdC5ncHIoKSwgdmlydHVhbFJlZ2lzdGVyLCBTcGlsbE9yZGVySlMpOwog
CiAgICAgICAgIERhdGFGb3JtYXQgZm9ybWF0OwotICAgICAgICBpZiAobm9kZS0+dmFyaWFibGVB
Y2Nlc3NEYXRhKCktPmlzQ2FwdHVyZWQoKSkKLSAgICAgICAgICAgIGZvcm1hdCA9IERhdGFGb3Jt
YXRKUzsKLSAgICAgICAgZWxzZSBpZiAoaXNDZWxsU3BlY3VsYXRpb24odmFsdWUubV90eXBlKSkK
KyAgICAgICAgaWYgKGlzQ2VsbFNwZWN1bGF0aW9uKHZhbHVlLm1fdHlwZSkpCiAgICAgICAgICAg
ICBmb3JtYXQgPSBEYXRhRm9ybWF0SlNDZWxsOwogICAgICAgICBlbHNlIGlmIChpc0Jvb2xlYW5T
cGVjdWxhdGlvbih2YWx1ZS5tX3R5cGUpKQogICAgICAgICAgICAgZm9ybWF0ID0gRGF0YUZvcm1h
dEpTQm9vbGVhbjsKQEAgLTE5ODAsNyArMTk3Niw3IEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNv
bXBpbGUoTm9kZSogbm9kZSkKICAgICAgICAgLy8gc3RhY2suCiAgICAgICAgIGNvbXBpbGVNb3ZI
aW50KG5vZGUpOwogICAgICAgICAKLSAgICAgICAgaWYgKCFub2RlLT52YXJpYWJsZUFjY2Vzc0Rh
dGEoKS0+aXNDYXB0dXJlZCgpICYmICFtX2ppdC5ncmFwaCgpLmlzQ3JlYXRlZFRoaXNBcmd1bWVu
dChub2RlLT5sb2NhbCgpKSkgeworICAgICAgICBpZiAobm9kZS0+dmFyaWFibGVBY2Nlc3NEYXRh
KCktPnNob3VsZFVuYm94SWZQb3NzaWJsZSgpKSB7CiAgICAgICAgICAgICBpZiAobm9kZS0+dmFy
aWFibGVBY2Nlc3NEYXRhKCktPnNob3VsZFVzZURvdWJsZUZvcm1hdCgpKSB7CiAgICAgICAgICAg
ICAgICAgU3BlY3VsYXRlRG91YmxlT3BlcmFuZCB2YWx1ZSh0aGlzLCBub2RlLT5jaGlsZDEoKSwg
Rm9yd2FyZFNwZWN1bGF0aW9uKTsKICAgICAgICAgICAgICAgICBtX2ppdC5zdG9yZURvdWJsZSh2
YWx1ZS5mcHIoKSwgSklUQ29tcGlsZXI6OmFkZHJlc3NGb3Iobm9kZS0+bG9jYWwoKSkpOwpJbmRl
eDogU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVC5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVC5jcHAJ
KHJldmlzaW9uIDE0MzgxNikKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3Vs
YXRpdmVKSVQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xNjQ2LDcgKzE2NDYsNyBAQCB2b2lkIFNw
ZWN1bGF0aXZlSklUOjpjb21waWxlKEJhc2ljQmxvY2smCiAgICAgICAgICAgICB2YWx1ZVNvdXJj
ZSA9IFZhbHVlU291cmNlKFNvdXJjZUlzRGVhZCk7CiAgICAgICAgIGVsc2UgaWYgKG5vZGUtPnZh
cmlhYmxlQWNjZXNzRGF0YSgpLT5pc0FyZ3VtZW50c0FsaWFzKCkpCiAgICAgICAgICAgICB2YWx1
ZVNvdXJjZSA9IFZhbHVlU291cmNlKEFyZ3VtZW50c1NvdXJjZSk7Ci0gICAgICAgIGVsc2UgaWYg
KG5vZGUtPnZhcmlhYmxlQWNjZXNzRGF0YSgpLT5pc0NhcHR1cmVkKCkpCisgICAgICAgIGVsc2Ug
aWYgKCFub2RlLT52YXJpYWJsZUFjY2Vzc0RhdGEoKS0+c2hvdWxkVW5ib3hJZlBvc3NpYmxlKCkp
CiAgICAgICAgICAgICB2YWx1ZVNvdXJjZSA9IFZhbHVlU291cmNlKFZhbHVlSW5KU1N0YWNrKTsK
ICAgICAgICAgZWxzZSBpZiAoIW5vZGUtPnJlZkNvdW50KCkpCiAgICAgICAgICAgICB2YWx1ZVNv
dXJjZSA9IFZhbHVlU291cmNlKFNvdXJjZUlzRGVhZCk7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvZGZnL0RGR1VuaWZpY2F0aW9uUGhhc2UuY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9kZmcvREZHVW5pZmljYXRpb25QaGFzZS5jcHAJKHJldmlzaW9uIDE0Mzgx
NikKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHVW5pZmljYXRpb25QaGFzZS5jcHAJ
KHdvcmtpbmcgY29weSkKQEAgLTcyLDYgKzcyLDcgQEAgcHVibGljOgogICAgICAgICAgICAgZGF0
YS0+ZmluZCgpLT5wcmVkaWN0KGRhdGEtPm5vblVuaWZpZWRQcmVkaWN0aW9uKCkpOwogICAgICAg
ICAgICAgZGF0YS0+ZmluZCgpLT5tZXJnZUlzQ2FwdHVyZWQoZGF0YS0+aXNDYXB0dXJlZCgpKTsK
ICAgICAgICAgICAgIGRhdGEtPmZpbmQoKS0+bWVyZ2VTdHJ1Y3R1cmVDaGVja0hvaXN0aW5nRmFp
bGVkKGRhdGEtPnN0cnVjdHVyZUNoZWNrSG9pc3RpbmdGYWlsZWQoKSk7CisgICAgICAgICAgICBk
YXRhLT5maW5kKCktPm1lcmdlU2hvdWxkTmV2ZXJVbmJveChkYXRhLT5zaG91bGROZXZlclVuYm94
KCkpOwogICAgICAgICB9CiAgICAgICAgIAogICAgICAgICBtX2dyYXBoLm1fdW5pZmljYXRpb25T
dGF0ZSA9IEdsb2JhbGx5VW5pZmllZDsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcv
REZHVmFyaWFibGVBY2Nlc3NEYXRhLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRD
b3JlL2RmZy9ERkdWYXJpYWJsZUFjY2Vzc0RhdGEuaAkocmV2aXNpb24gMTQzODE2KQorKysgU291
cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdWYXJpYWJsZUFjY2Vzc0RhdGEuaAkod29ya2luZyBj
b3B5KQpAQCAtNDYsMTAgKzQ2LDExIEBAIHB1YmxpYzoKICAgICAgICAgLCBtX3ByZWRpY3Rpb24o
U3BlY05vbmUpCiAgICAgICAgICwgbV9hcmd1bWVudEF3YXJlUHJlZGljdGlvbihTcGVjTm9uZSkK
ICAgICAgICAgLCBtX2ZsYWdzKDApCi0gICAgICAgICwgbV9kb3VibGVGb3JtYXRTdGF0ZShFbXB0
eURvdWJsZUZvcm1hdFN0YXRlKQogICAgICAgICAsIG1faXNDYXB0dXJlZChmYWxzZSkKKyAgICAg
ICAgLCBtX3Nob3VsZE5ldmVyVW5ib3goZmFsc2UpCiAgICAgICAgICwgbV9pc0FyZ3VtZW50c0Fs
aWFzKGZhbHNlKQogICAgICAgICAsIG1fc3RydWN0dXJlQ2hlY2tIb2lzdGluZ0ZhaWxlZChmYWxz
ZSkKKyAgICAgICAgLCBtX2RvdWJsZUZvcm1hdFN0YXRlKEVtcHR5RG91YmxlRm9ybWF0U3RhdGUp
CiAgICAgewogICAgICAgICBjbGVhclZvdGVzKCk7CiAgICAgfQpAQCAtNTksMTAgKzYwLDExIEBA
IHB1YmxpYzoKICAgICAgICAgLCBtX3ByZWRpY3Rpb24oU3BlY05vbmUpCiAgICAgICAgICwgbV9h
cmd1bWVudEF3YXJlUHJlZGljdGlvbihTcGVjTm9uZSkKICAgICAgICAgLCBtX2ZsYWdzKDApCi0g
ICAgICAgICwgbV9kb3VibGVGb3JtYXRTdGF0ZShFbXB0eURvdWJsZUZvcm1hdFN0YXRlKQogICAg
ICAgICAsIG1faXNDYXB0dXJlZChpc0NhcHR1cmVkKQorICAgICAgICAsIG1fc2hvdWxkTmV2ZXJV
bmJveChpc0NhcHR1cmVkKQogICAgICAgICAsIG1faXNBcmd1bWVudHNBbGlhcyhmYWxzZSkKICAg
ICAgICAgLCBtX3N0cnVjdHVyZUNoZWNrSG9pc3RpbmdGYWlsZWQoZmFsc2UpCisgICAgICAgICwg
bV9kb3VibGVGb3JtYXRTdGF0ZShFbXB0eURvdWJsZUZvcm1hdFN0YXRlKQogICAgIHsKICAgICAg
ICAgY2xlYXJWb3RlcygpOwogICAgIH0KQEAgLTgwLDYgKzgyLDcgQEAgcHVibGljOgogICAgIAog
ICAgIGJvb2wgbWVyZ2VJc0NhcHR1cmVkKGJvb2wgaXNDYXB0dXJlZCkKICAgICB7CisgICAgICAg
IG1fc2hvdWxkTmV2ZXJVbmJveCB8PSBpc0NhcHR1cmVkOwogICAgICAgICBib29sIG5ld0lzQ2Fw
dHVyZWQgPSBtX2lzQ2FwdHVyZWQgfCBpc0NhcHR1cmVkOwogICAgICAgICBpZiAobmV3SXNDYXB0
dXJlZCA9PSBtX2lzQ2FwdHVyZWQpCiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CkBAIC05Miw2
ICs5NSwzMiBAQCBwdWJsaWM6CiAgICAgICAgIHJldHVybiBtX2lzQ2FwdHVyZWQ7CiAgICAgfQog
ICAgIAorICAgIGJvb2wgbWVyZ2VTaG91bGROZXZlclVuYm94KGJvb2wgc2hvdWxkTmV2ZXJVbmJv
eCkKKyAgICB7CisgICAgICAgIGJvb2wgbmV3U2hvdWxkTmV2ZXJVbmJveCA9IG1fc2hvdWxkTmV2
ZXJVbmJveCB8IHNob3VsZE5ldmVyVW5ib3g7CisgICAgICAgIGlmIChuZXdTaG91bGROZXZlclVu
Ym94ID09IG1fc2hvdWxkTmV2ZXJVbmJveCkKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAg
ICAgICAgbV9zaG91bGROZXZlclVuYm94ID0gbmV3U2hvdWxkTmV2ZXJVbmJveDsKKyAgICAgICAg
cmV0dXJuIHRydWU7CisgICAgfQorICAgIAorICAgIC8vIFJldHVybnMgdHJ1ZSBpZiBpdCB3b3Vs
ZCBiZSB1bnNvdW5kIHRvIHN0b3JlIHRoZSB2YWx1ZSBpbiBhbiB1bmJveGVkIGZhc2hpb24uCisg
ICAgLy8gSWYgdGhpcyByZXR1cm5zIGZhbHNlLCBpdCBzaW1wbHkgbWVhbnMgdGhhdCBpdCBpcyBz
b3VuZCB0byB1bmJveDsgaXQgZG9lc24ndAorICAgIC8vIG1lYW4gdGhhdCB3ZSBoYXZlIGFjdHVh
bGx5IGRvbmUgc28uCisgICAgYm9vbCBzaG91bGROZXZlclVuYm94KCkKKyAgICB7CisgICAgICAg
IEFTU0VSVCghKG1faXNDYXB0dXJlZCAmJiAhbV9zaG91bGROZXZlclVuYm94KSk7CisgICAgICAg
IHJldHVybiBtX3Nob3VsZE5ldmVyVW5ib3g7CisgICAgfQorICAgIAorICAgIC8vIFJldHVybnMg
dHJ1ZSBpZiB3ZSBzaG91bGQgYmUgdW5ib3hpbmcgdGhlIHZhbHVlIHByb3ZpZGVkIHRoYXQgdGhl
IHByZWRpY3Rpb25zCisgICAgLy8gYW5kIGRvdWJsZSBmb3JtYXQgdm90ZSBzYXkgc28uIFRoaXMg
bWF5IHJldHVybiBmYWxzZSBldmVuIGlmIHNob3VsZE5ldmVyVW5ib3goKQorICAgIC8vIHJldHVy
bnMgZmFsc2UsIHNpbmNlIHRoaXMgaW5jb3Jwb3JhdGVzIGhldXJpc3RpY3Mgb2YgcHJvZml0YWJp
bGl0eS4KKyAgICBib29sIHNob3VsZFVuYm94SWZQb3NzaWJsZSgpCisgICAgeworICAgICAgICBy
ZXR1cm4gIXNob3VsZE5ldmVyVW5ib3goKTsKKyAgICB9CisgICAgCiAgICAgYm9vbCBtZXJnZVN0
cnVjdHVyZUNoZWNrSG9pc3RpbmdGYWlsZWQoYm9vbCBmYWlsZWQpCiAgICAgewogICAgICAgICBi
b29sIG5ld0ZhaWxlZCA9IG1fc3RydWN0dXJlQ2hlY2tIb2lzdGluZ0ZhaWxlZCB8IGZhaWxlZDsK
QEAgLTIxMCwxMyArMjM5LDE5IEBAIHB1YmxpYzoKICAgICBib29sIHNob3VsZFVzZURvdWJsZUZv
cm1hdCgpCiAgICAgewogICAgICAgICBBU1NFUlQoaXNSb290KCkpOwotICAgICAgICByZXR1cm4g
bV9kb3VibGVGb3JtYXRTdGF0ZSA9PSBVc2luZ0RvdWJsZUZvcm1hdDsKKyAgICAgICAgYm9vbCBy
ZXN1bHQgPSBtX2RvdWJsZUZvcm1hdFN0YXRlID09IFVzaW5nRG91YmxlRm9ybWF0OworICAgICAg
ICBBU1NFUlQoIShyZXN1bHQgJiYgc2hvdWxkTmV2ZXJVbmJveCgpKSk7CisgICAgICAgIEFTU0VS
VCghKHJlc3VsdCAmJiBpc0NhcHR1cmVkKCkpKTsKKyAgICAgICAgcmV0dXJuIHJlc3VsdDsKICAg
ICB9CiAgICAgCiAgICAgYm9vbCB0YWxseVZvdGVzRm9yU2hvdWxkVXNlRG91YmxlRm9ybWF0KCkK
ICAgICB7CiAgICAgICAgIEFTU0VSVChpc1Jvb3QoKSk7CiAgICAgICAgIAorICAgICAgICBpZiAo
b3BlcmFuZElzQXJndW1lbnQobG9jYWwoKSkgfHwgc2hvdWxkTmV2ZXJVbmJveCgpKQorICAgICAg
ICAgICAgcmV0dXJuIERGRzo6bWVyZ2VEb3VibGVGb3JtYXRTdGF0ZShtX2RvdWJsZUZvcm1hdFN0
YXRlLCBOb3RVc2luZ0RvdWJsZUZvcm1hdCk7CisgICAgICAgIAogICAgICAgICBpZiAobV9kb3Vi
bGVGb3JtYXRTdGF0ZSA9PSBDYW50VXNlRG91YmxlRm9ybWF0KQogICAgICAgICAgICAgcmV0dXJu
IGZhbHNlOwogICAgICAgICAKQEAgLTI3MCwxMiArMzA1LDEzIEBAIHByaXZhdGU6CiAgICAgU3Bl
Y3VsYXRlZFR5cGUgbV9hcmd1bWVudEF3YXJlUHJlZGljdGlvbjsKICAgICBOb2RlRmxhZ3MgbV9m
bGFnczsKICAgICAKLSAgICBmbG9hdCBtX3ZvdGVzWzJdOyAvLyBVc2VkIHByaW1hcmlseSBmb3Ig
ZG91YmxlIHZvdGluZyBidXQgbWF5IGJlIHJldXNlZCBmb3Igb3RoZXIgcHVycG9zZXMuCi0gICAg
RG91YmxlRm9ybWF0U3RhdGUgbV9kb3VibGVGb3JtYXRTdGF0ZTsKLSAgICAKICAgICBib29sIG1f
aXNDYXB0dXJlZDsKKyAgICBib29sIG1fc2hvdWxkTmV2ZXJVbmJveDsKICAgICBib29sIG1faXNB
cmd1bWVudHNBbGlhczsKICAgICBib29sIG1fc3RydWN0dXJlQ2hlY2tIb2lzdGluZ0ZhaWxlZDsK
KworICAgIGZsb2F0IG1fdm90ZXNbMl07IC8vIFVzZWQgcHJpbWFyaWx5IGZvciBkb3VibGUgdm90
aW5nIGJ1dCBtYXkgYmUgcmV1c2VkIGZvciBvdGhlciBwdXJwb3Nlcy4KKyAgICBEb3VibGVGb3Jt
YXRTdGF0ZSBtX2RvdWJsZUZvcm1hdFN0YXRlOwogfTsKIAogfSB9IC8vIG5hbWVzcGFjZSBKU0M6
OkRGRwo=
</data>
<flag name="review"
          id="210448"
          type_id="1"
          status="+"
          setter="oliver"
    />
          </attachment>
      

    </bug>

</bugzilla>