<?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>74692</bug_id>
          
          <creation_ts>2011-12-16 00:20:48 -0800</creation_ts>
          <short_desc>invalidateNodeListsCacheAfterAttributeChanged has too many callers</short_desc>
          <delta_ts>2011-12-16 15:22:50 -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>DOM</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>73853</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Ryosuke Niwa">rniwa</reporter>
          <assigned_to name="Ryosuke Niwa">rniwa</assigned_to>
          <cc>adamk</cc>
    
    <cc>arko</cc>
    
    <cc>arv</cc>
    
    <cc>darin</cc>
    
    <cc>sam</cc>
    
    <cc>tkent</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>522596</commentid>
    <comment_count>0</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2011-12-16 00:20:48 -0800</bug_when>
    <thetext>We shouldn&apos;t have to call invalidateNodeListsCacheAfterAttributeChanged in various places in DOM code.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>522617</commentid>
    <comment_count>1</comment_count>
      <attachid>119581</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2011-12-16 01:02:55 -0800</bug_when>
    <thetext>Created attachment 119581
cleanup and fixes a bug</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>522620</commentid>
    <comment_count>2</comment_count>
      <attachid>119582</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2011-12-16 01:06:46 -0800</bug_when>
    <thetext>Created attachment 119582
Fixed if for MICRODATA</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>522989</commentid>
    <comment_count>3</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2011-12-16 13:37:05 -0800</bug_when>
    <thetext>Ping reviewers.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>523027</commentid>
    <comment_count>4</comment_count>
      <attachid>119582</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2011-12-16 14:26:58 -0800</bug_when>
    <thetext>Comment on attachment 119582
Fixed if for MICRODATA

View in context: https://bugs.webkit.org/attachment.cgi?id=119582&amp;action=review

&gt; Source/WebCore/dom/Node.cpp:1038
&gt; +    if (attrName != classAttr
&gt; +#if ENABLE(MICRODATA)
&gt; +        &amp;&amp; attrName != itemscopeAttr
&gt; +        &amp;&amp; attrName != itempropAttr
&gt; +#endif
&gt; +        &amp;&amp; attrName != nameAttr)
&gt; +        return;

If this needs to be in sync with something, can we extract this logic into a shared function?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>523033</commentid>
    <comment_count>5</comment_count>
      <attachid>119582</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2011-12-16 14:31:40 -0800</bug_when>
    <thetext>Comment on attachment 119582
Fixed if for MICRODATA

View in context: https://bugs.webkit.org/attachment.cgi?id=119582&amp;action=review

Thanks for the review!

&gt;&gt; Source/WebCore/dom/Node.cpp:1038
&gt;&gt; +        return;
&gt; 
&gt; If this needs to be in sync with something, can we extract this logic into a shared function?

It&apos;s hard to do at the moment because information is hidden in NodeListsNodeData but it&apos;ll be straight-forward once we turn NodeListsNodeData into a per-document cache (which I&apos;m planning to do on the next patch).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>523083</commentid>
    <comment_count>6</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2011-12-16 15:15:15 -0800</bug_when>
    <thetext>Committed r103116: &lt;http://trac.webkit.org/changeset/103116&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>119581</attachid>
            <date>2011-12-16 01:02:55 -0800</date>
            <delta_ts>2011-12-16 01:06:42 -0800</delta_ts>
            <desc>cleanup and fixes a bug</desc>
            <filename>bug-74692-20111216010254.patch</filename>
            <type>text/plain</type>
            <size>17612</size>
            <attacher name="Ryosuke Niwa">rniwa</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDEwMzAzOCkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDU2IEBACisyMDExLTEyLTE2ICBSeW9zdWtl
IE5pd2EgIDxybml3YUB3ZWJraXQub3JnPgorCisgICAgICAgIGludmFsaWRhdGVOb2RlTGlzdHND
YWNoZUFmdGVyQXR0cmlidXRlQ2hhbmdlZCBoYXMgdG9vIG1hbnkgY2FsbGVycworICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzQ2OTIKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBDYWxsIGludmFsaWRhdGVOb2Rl
TGlzdHNDYWNoZUFmdGVyQXR0cmlidXRlQ2hhbmdlZCBpbiBFbGVtZW50Ojp1cGRhdGVBZnRlckF0
dHJpYnV0ZUNoYW5nZWQgaW5zdGVhZCBvZgorICAgICAgICBwYXJzZWRNYXBwZWRBdHRyaWJ1dGUg
b2YgdmFyaW91cyBlbGVtZW50cy4gQWxzbyBtYWtlIGludmFsaWRhdGVOb2RlTGlzdHNDYWNoZUFm
dGVyQXR0cmlidXRlQ2hhbmdlZCB0YWtlCisgICAgICAgIHRoZSBxdWFsaWZpZWQgbmFtZSBvZiB0
aGUgY2hhbmdlZCBhdHRyaWJ1dGUgc28gdGhhdCB3ZSBjYW4gZXhpdCBlYXJseSB3aGVuIHRoZSBj
aGFuZ2VkIGF0dHJpYnV0ZSBpc24ndAorICAgICAgICBvbmUgb2YgYXR0cmlidXRlcyB3ZSBjYXJl
LgorCisgICAgICAgIEluIGFkZGl0aW9uLCBhZGRlZCBhIG1pc3NpbmcgY2FsbCB0byBpbnZhbGlk
YXRlTm9kZUxpc3RzQ2FjaGVBZnRlckF0dHJpYnV0ZUNoYW5nZWQgaW4gQXR0cjo6c2V0VmFsdWUu
CisKKyAgICAgICAgVGVzdDogZmFzdC9kb20vQXR0ci9pbnZhbGlkYXRlLW5vZGVsaXN0LWFmdGVy
LWF0dHItc2V0dmFsdWUuaHRtbAorCisgICAgICAgICogZG9tL0F0dHIuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6QXR0cjo6Y2hpbGRyZW5DaGFuZ2VkKToKKyAgICAgICAgKiBkb20vRWxlbWVudC5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpFbGVtZW50Ojp1cGRhdGVBZnRlckF0dHJpYnV0ZUNoYW5n
ZWQpOgorICAgICAgICAqIGRvbS9OYW1lZE5vZGVNYXAuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
TmFtZWROb2RlTWFwOjphZGRBdHRyaWJ1dGUpOgorICAgICAgICAoV2ViQ29yZTo6TmFtZWROb2Rl
TWFwOjpyZW1vdmVBdHRyaWJ1dGUpOgorICAgICAgICAqIGRvbS9Ob2RlLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6Ok5vZGU6OmludmFsaWRhdGVOb2RlTGlzdHNDYWNoZUFmdGVyQXR0cmlidXRlQ2hh
bmdlZCk6CisgICAgICAgICogZG9tL05vZGUuaDoKKyAgICAgICAgKiBkb20vU3R5bGVkRWxlbWVu
dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTdHlsZWRFbGVtZW50OjpjbGFzc0F0dHJpYnV0ZUNo
YW5nZWQpOgorICAgICAgICAqIGh0bWwvSFRNTEFuY2hvckVsZW1lbnQuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6SFRNTEFuY2hvckVsZW1lbnQ6OnBhcnNlTWFwcGVkQXR0cmlidXRlKToKKyAgICAg
ICAgKiBodG1sL0hUTUxBcHBsZXRFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxB
cHBsZXRFbGVtZW50OjpwYXJzZU1hcHBlZEF0dHJpYnV0ZSk6CisgICAgICAgICogaHRtbC9IVE1M
RWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MRWxlbWVudDo6cGFyc2VNYXBwZWRB
dHRyaWJ1dGUpOgorICAgICAgICAqIGh0bWwvSFRNTEVtYmVkRWxlbWVudC5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpIVE1MRW1iZWRFbGVtZW50OjpwYXJzZU1hcHBlZEF0dHJpYnV0ZSk6CisgICAg
ICAgICogaHRtbC9IVE1MRm9ybUVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTEZv
cm1FbGVtZW50OjpwYXJzZU1hcHBlZEF0dHJpYnV0ZSk6CisgICAgICAgICogaHRtbC9IVE1MRnJh
bWVFbGVtZW50QmFzZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MRnJhbWVFbGVtZW50QmFz
ZTo6cGFyc2VNYXBwZWRBdHRyaWJ1dGUpOgorICAgICAgICAqIGh0bWwvSFRNTElGcmFtZUVsZW1l
bnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTElGcmFtZUVsZW1lbnQ6OnBhcnNlTWFwcGVk
QXR0cmlidXRlKToKKyAgICAgICAgKiBodG1sL0hUTUxJbWFnZUVsZW1lbnQuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6SFRNTEltYWdlRWxlbWVudDo6cGFyc2VNYXBwZWRBdHRyaWJ1dGUpOgorICAg
ICAgICAqIGh0bWwvSFRNTE1hcEVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTE1h
cEVsZW1lbnQ6OnBhcnNlTWFwcGVkQXR0cmlidXRlKToKKyAgICAgICAgKiBodG1sL0hUTUxNZXRh
RWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MTWV0YUVsZW1lbnQ6OnBhcnNlTWFw
cGVkQXR0cmlidXRlKToKKyAgICAgICAgKiBodG1sL0hUTUxPYmplY3RFbGVtZW50LmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OkhUTUxPYmplY3RFbGVtZW50OjpwYXJzZU1hcHBlZEF0dHJpYnV0ZSk6
CisgICAgICAgICogaHRtbC9IVE1MUGFyYW1FbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OkhUTUxQYXJhbUVsZW1lbnQ6OnBhcnNlTWFwcGVkQXR0cmlidXRlKToKKwogMjAxMS0xMi0xNSAg
TWFydGluIFJvYmluc29uICA8bXJvYmluc29uQGlnYWxpYS5jb20+CiAKICAgICAgICAgRml4ICdt
YWtlIGRpc3QnIGluIHByZXBhcmF0aW9uIGZvciB0aGUgR1RLKyByZWxlYXNlLgpJbmRleDogU291
cmNlL1dlYkNvcmUvZG9tL0F0dHIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2Rv
bS9BdHRyLmNwcAkocmV2aXNpb24gMTAyOTczKQorKysgU291cmNlL1dlYkNvcmUvZG9tL0F0dHIu
Y3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMjYsNiArMTI2LDggQEAgdm9pZCBBdHRyOjpzZXRWYWx1
ZShjb25zdCBBdG9taWNTdHJpbmcmIAogICAgIG1fYXR0cmlidXRlLT5zZXRWYWx1ZSh2YWx1ZSk7
CiAgICAgY3JlYXRlVGV4dENoaWxkKCk7CiAgICAgbV9pZ25vcmVDaGlsZHJlbkNoYW5nZWQtLTsK
KworICAgIGludmFsaWRhdGVOb2RlTGlzdHNDYWNoZUFmdGVyQXR0cmlidXRlQ2hhbmdlZChtX2F0
dHJpYnV0ZS0+bmFtZSgpKTsKIH0KIAogdm9pZCBBdHRyOjpzZXRWYWx1ZShjb25zdCBBdG9taWNT
dHJpbmcmIHZhbHVlLCBFeGNlcHRpb25Db2RlJikKQEAgLTE4MCwxMCArMTgyLDEwIEBAIHZvaWQg
QXR0cjo6Y2hpbGRyZW5DaGFuZ2VkKGJvb2wgY2hhbmdlZEIKIAogICAgIE5vZGU6OmNoaWxkcmVu
Q2hhbmdlZChjaGFuZ2VkQnlQYXJzZXIsIGJlZm9yZUNoYW5nZSwgYWZ0ZXJDaGFuZ2UsIGNoaWxk
Q291bnREZWx0YSk7CiAKLSAgICBpbnZhbGlkYXRlTm9kZUxpc3RzQ2FjaGVBZnRlckF0dHJpYnV0
ZUNoYW5nZWQoKTsKKyAgICBpbnZhbGlkYXRlTm9kZUxpc3RzQ2FjaGVBZnRlckF0dHJpYnV0ZUNo
YW5nZWQobV9hdHRyaWJ1dGUtPm5hbWUoKSk7CiAKICAgICAvLyBGSVhNRTogV2Ugc2hvdWxkIGlu
Y2x1ZGUgZW50aXR5IHJlZmVyZW5jZXMgaW4gdGhlIHZhbHVlCi0gICAgCisKICAgICBTdHJpbmcg
dmFsID0gIiI7CiAgICAgZm9yIChOb2RlICpuID0gZmlyc3RDaGlsZCgpOyBuOyBuID0gbi0+bmV4
dFNpYmxpbmcoKSkgewogICAgICAgICBpZiAobi0+aXNUZXh0Tm9kZSgpKQpJbmRleDogU291cmNl
L1dlYkNvcmUvZG9tL0VsZW1lbnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2Rv
bS9FbGVtZW50LmNwcAkocmV2aXNpb24gMTAyOTczKQorKysgU291cmNlL1dlYkNvcmUvZG9tL0Vs
ZW1lbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC02OTYsNiArNjk2LDggQEAgdm9pZCBFbGVtZW50
OjphdHRyaWJ1dGVDaGFuZ2VkKEF0dHJpYnV0ZQogCiB2b2lkIEVsZW1lbnQ6OnVwZGF0ZUFmdGVy
QXR0cmlidXRlQ2hhbmdlZChBdHRyaWJ1dGUqIGF0dHIpCiB7CisgICAgaW52YWxpZGF0ZU5vZGVM
aXN0c0NhY2hlQWZ0ZXJBdHRyaWJ1dGVDaGFuZ2VkKGF0dHItPm5hbWUoKSk7CisKICAgICBpZiAo
IUFYT2JqZWN0Q2FjaGU6OmFjY2Vzc2liaWxpdHlFbmFibGVkKCkpCiAgICAgICAgIHJldHVybjsK
IApJbmRleDogU291cmNlL1dlYkNvcmUvZG9tL05hbWVkTm9kZU1hcC5jcHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYkNvcmUvZG9tL05hbWVkTm9kZU1hcC5jcHAJKHJldmlzaW9uIDEwMjk3MykK
KysrIFNvdXJjZS9XZWJDb3JlL2RvbS9OYW1lZE5vZGVNYXAuY3BwCSh3b3JraW5nIGNvcHkpCkBA
IC0yNjQsNyArMjY0LDYgQEAgdm9pZCBOYW1lZE5vZGVNYXA6OmFkZEF0dHJpYnV0ZShQYXNzUmVm
UAogICAgICAgICBtX2VsZW1lbnQtPmF0dHJpYnV0ZUNoYW5nZWQoYXR0cmlidXRlLmdldCgpKTsK
ICAgICAgICAgLy8gQmVjYXVzZSBvZiBvdXIgdXBkYXRlU3R5bGVBdHRyaWJ1dGUoKSBzdHlsZSBt
b2RpZmljYXRpb24gZXZlbnRzIGFyZSBuZXZlciBzZW50IGF0IHRoZSByaWdodCB0aW1lLCBzbyBk
b24ndCBib3RoZXIgc2VuZGluZyB0aGVtLgogICAgICAgICBpZiAoYXR0cmlidXRlLT5uYW1lKCkg
IT0gc3R5bGVBdHRyKSB7Ci0gICAgICAgICAgICBtX2VsZW1lbnQtPmludmFsaWRhdGVOb2RlTGlz
dHNDYWNoZUFmdGVyQXR0cmlidXRlQ2hhbmdlZCgpOwogICAgICAgICAgICAgbV9lbGVtZW50LT5k
aXNwYXRjaEF0dHJBZGRpdGlvbkV2ZW50KGF0dHJpYnV0ZS5nZXQoKSk7CiAgICAgICAgICAgICBt
X2VsZW1lbnQtPmRpc3BhdGNoU3VidHJlZU1vZGlmaWVkRXZlbnQoKTsKICAgICAgICAgfQpAQCAt
MzAxLDcgKzMwMCw2IEBAIHZvaWQgTmFtZWROb2RlTWFwOjpyZW1vdmVBdHRyaWJ1dGUoY29uc3QK
ICAgICAgICAgYXR0ci0+bV92YWx1ZSA9IHZhbHVlOwogICAgIH0KICAgICBpZiAobV9lbGVtZW50
KSB7Ci0gICAgICAgIG1fZWxlbWVudC0+aW52YWxpZGF0ZU5vZGVMaXN0c0NhY2hlQWZ0ZXJBdHRy
aWJ1dGVDaGFuZ2VkKCk7CiAgICAgICAgIG1fZWxlbWVudC0+ZGlzcGF0Y2hBdHRyUmVtb3ZhbEV2
ZW50KGF0dHIuZ2V0KCkpOwogICAgICAgICBtX2VsZW1lbnQtPmRpc3BhdGNoU3VidHJlZU1vZGlm
aWVkRXZlbnQoKTsKICAgICB9CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9kb20vTm9kZS5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvZG9tL05vZGUuY3BwCShyZXZpc2lvbiAxMDI5NzMp
CisrKyBTb3VyY2UvV2ViQ29yZS9kb20vTm9kZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEwMjAs
NyArMTAyMCw3IEBAIHZvaWQgTm9kZTo6dW5yZWdpc3RlckR5bmFtaWNTdWJ0cmVlTm9kZUwKICAg
ICByZW1vdmVOb2RlTGlzdENhY2hlSWZQb3NzaWJsZSh0aGlzLCBkYXRhKTsKIH0KIAotdm9pZCBO
b2RlOjppbnZhbGlkYXRlTm9kZUxpc3RzQ2FjaGVBZnRlckF0dHJpYnV0ZUNoYW5nZWQoKQordm9p
ZCBOb2RlOjppbnZhbGlkYXRlTm9kZUxpc3RzQ2FjaGVBZnRlckF0dHJpYnV0ZUNoYW5nZWQoY29u
c3QgUXVhbGlmaWVkTmFtZSYgYXR0ck5hbWUpCiB7CiAgICAgaWYgKGhhc1JhcmVEYXRhKCkgJiYg
aXNBdHRyaWJ1dGVOb2RlKCkpIHsKICAgICAgICAgTm9kZVJhcmVEYXRhKiBkYXRhID0gcmFyZURh
dGEoKTsKQEAgLTEwMjgsNiArMTAyOCwxNSBAQCB2b2lkIE5vZGU6OmludmFsaWRhdGVOb2RlTGlz
dHNDYWNoZUFmdGVyCiAgICAgICAgIGRhdGEtPmNsZWFyQ2hpbGROb2RlTGlzdENhY2hlKCk7CiAg
ICAgfQogCisgICAgLy8gVGhpcyBsaXN0IHNob3VsZCBiZSBzeW5jJ2VkIHdpdGggTm9kZUxpc3Rz
Tm9kZURhdGEuCisgICAgaWYgKGF0dHJOYW1lICE9IGNsYXNzQXR0cgorI2lmbmRlZiBNSUNST0RB
VEEKKyAgICAgICAgJiYgYXR0ck5hbWUgIT0gaXRlbXNjb3BlQXR0cgorICAgICAgICAmJiBhdHRy
TmFtZSAhPSBpdGVtcHJvcEF0dHIKKyNlbmRpZgorICAgICAgICAmJiBhdHRyTmFtZSAhPSBuYW1l
QXR0cikKKyAgICAgICAgcmV0dXJuOworCiAgICAgaWYgKCF0cmVlU2NvcGUoKS0+aGFzTm9kZUxp
c3RDYWNoZXMoKSkKICAgICAgICAgcmV0dXJuOwogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9kb20v
Tm9kZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmgJKHJldmlzaW9u
IDEwMjk3MykKKysrIFNvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmgJKHdvcmtpbmcgY29weSkKQEAg
LTUxOSw3ICs1MTksNyBAQCBwdWJsaWM6CiAKICAgICB2b2lkIHJlZ2lzdGVyRHluYW1pY1N1YnRy
ZWVOb2RlTGlzdChEeW5hbWljU3VidHJlZU5vZGVMaXN0Kik7CiAgICAgdm9pZCB1bnJlZ2lzdGVy
RHluYW1pY1N1YnRyZWVOb2RlTGlzdChEeW5hbWljU3VidHJlZU5vZGVMaXN0Kik7Ci0gICAgdm9p
ZCBpbnZhbGlkYXRlTm9kZUxpc3RzQ2FjaGVBZnRlckF0dHJpYnV0ZUNoYW5nZWQoKTsKKyAgICB2
b2lkIGludmFsaWRhdGVOb2RlTGlzdHNDYWNoZUFmdGVyQXR0cmlidXRlQ2hhbmdlZChjb25zdCBR
dWFsaWZpZWROYW1lJik7CiAgICAgdm9pZCBpbnZhbGlkYXRlTm9kZUxpc3RzQ2FjaGVBZnRlckNo
aWxkcmVuQ2hhbmdlZCgpOwogICAgIHZvaWQgbm90aWZ5TG9jYWxOb2RlTGlzdHNMYWJlbENoYW5n
ZWQoKTsKICAgICB2b2lkIHJlbW92ZUNhY2hlZENsYXNzTm9kZUxpc3QoQ2xhc3NOb2RlTGlzdCos
IGNvbnN0IFN0cmluZyYpOwpJbmRleDogU291cmNlL1dlYkNvcmUvZG9tL1N0eWxlZEVsZW1lbnQu
Y3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2RvbS9TdHlsZWRFbGVtZW50LmNwcAko
cmV2aXNpb24gMTAyOTczKQorKysgU291cmNlL1dlYkNvcmUvZG9tL1N0eWxlZEVsZW1lbnQuY3Bw
CSh3b3JraW5nIGNvcHkpCkBAIC0yMjgsNyArMjI4LDYgQEAgdm9pZCBTdHlsZWRFbGVtZW50Ojpj
bGFzc0F0dHJpYnV0ZUNoYW5nZQogICAgIH0gZWxzZSBpZiAoYXR0cmlidXRlTWFwKCkpCiAgICAg
ICAgIGF0dHJpYnV0ZU1hcCgpLT5jbGVhckNsYXNzKCk7CiAgICAgc2V0TmVlZHNTdHlsZVJlY2Fs
YygpOwotICAgIGludmFsaWRhdGVOb2RlTGlzdHNDYWNoZUFmdGVyQXR0cmlidXRlQ2hhbmdlZCgp
OwogICAgIGRpc3BhdGNoU3VidHJlZU1vZGlmaWVkRXZlbnQoKTsKIH0KIApJbmRleDogU291cmNl
L1dlYkNvcmUvaHRtbC9IVE1MQW5jaG9yRWxlbWVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYkNvcmUvaHRtbC9IVE1MQW5jaG9yRWxlbWVudC5jcHAJKHJldmlzaW9uIDEwMjk3MykKKysr
IFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEFuY2hvckVsZW1lbnQuY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC0yMjMsOSArMjIzLDcgQEAgdm9pZCBIVE1MQW5jaG9yRWxlbWVudDo6cGFyc2VNYXBwZWRB
dHRyaQogICAgICAgICAgICAgfQogICAgICAgICB9CiAgICAgICAgIGludmFsaWRhdGVDYWNoZWRW
aXNpdGVkTGlua0hhc2goKTsKLSAgICB9IGVsc2UgaWYgKGF0dHItPm5hbWUoKSA9PSBuYW1lQXR0
cikgewotICAgICAgICBpbnZhbGlkYXRlTm9kZUxpc3RzQ2FjaGVBZnRlckF0dHJpYnV0ZUNoYW5n
ZWQoKTsKLSAgICB9IGVsc2UgaWYgKGF0dHItPm5hbWUoKSA9PSB0aXRsZUF0dHIpIHsKKyAgICB9
IGVsc2UgaWYgKGF0dHItPm5hbWUoKSA9PSBuYW1lQXR0ciB8fCBhdHRyLT5uYW1lKCkgPT0gdGl0
bGVBdHRyKSB7CiAgICAgICAgIC8vIERvIG5vdGhpbmcuCiAgICAgfSBlbHNlIGlmIChhdHRyLT5u
YW1lKCkgPT0gcmVsQXR0cikKICAgICAgICAgc2V0UmVsKGF0dHItPnZhbHVlKCkpOwpJbmRleDog
U291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQXBwbGV0RWxlbWVudC5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQXBwbGV0RWxlbWVudC5jcHAJKHJldmlzaW9uIDEwMjk3
MykKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEFwcGxldEVsZW1lbnQuY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC02NCw3ICs2NCw2IEBAIHZvaWQgSFRNTEFwcGxldEVsZW1lbnQ6OnBhcnNlTWFw
cGVkQXR0cmkKICAgICAgICAgICAgIGRvY3VtZW50LT5hZGROYW1lZEl0ZW0obmV3TmFtZSk7CiAg
ICAgICAgIH0KICAgICAgICAgbV9uYW1lID0gbmV3TmFtZTsKLSAgICAgICAgaW52YWxpZGF0ZU5v
ZGVMaXN0c0NhY2hlQWZ0ZXJBdHRyaWJ1dGVDaGFuZ2VkKCk7CiAgICAgfSBlbHNlIGlmIChpc0lk
QXR0cmlidXRlTmFtZShhdHRyLT5uYW1lKCkpKSB7CiAgICAgICAgIGNvbnN0IEF0b21pY1N0cmlu
ZyYgbmV3SWQgPSBhdHRyLT52YWx1ZSgpOwogICAgICAgICBpZiAoaW5Eb2N1bWVudCgpICYmIGRv
Y3VtZW50KCktPmlzSFRNTERvY3VtZW50KCkpIHsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwv
SFRNTEVsZW1lbnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEVs
ZW1lbnQuY3BwCShyZXZpc2lvbiAxMDI5NzMpCisrKyBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxF
bGVtZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjEwLDggKzIxMCw2IEBAIHZvaWQgSFRNTEVs
ZW1lbnQ6OnBhcnNlTWFwcGVkQXR0cmlidXRlKEEKICAgICAgICAgICAgIGFkZENTU1Byb3BlcnR5
KGF0dHIsIENTU1Byb3BlcnR5V2Via2l0VXNlclNlbGVjdCwgQ1NTVmFsdWVOb25lKTsKICAgICAg
ICAgfSBlbHNlIGlmIChlcXVhbElnbm9yaW5nQ2FzZSh2YWx1ZSwgImZhbHNlIikpCiAgICAgICAg
ICAgICBhZGRDU1NQcm9wZXJ0eShhdHRyLCBDU1NQcm9wZXJ0eVdlYmtpdFVzZXJEcmFnLCBDU1NW
YWx1ZU5vbmUpOwotICAgIH0gZWxzZSBpZiAoYXR0ci0+bmFtZSgpID09IG5hbWVBdHRyKSB7Ci0g
ICAgICAgIGludmFsaWRhdGVOb2RlTGlzdHNDYWNoZUFmdGVyQXR0cmlidXRlQ2hhbmdlZCgpOwog
I2lmIEVOQUJMRShNSUNST0RBVEEpCiAgICAgfSBlbHNlIGlmIChhdHRyLT5uYW1lKCkgPT0gaXRl
bXByb3BBdHRyKSB7CiAgICAgICAgIHNldEl0ZW1Qcm9wKGF0dHItPnZhbHVlKCkpOwpJbmRleDog
U291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRW1iZWRFbGVtZW50LmNwcAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViQ29yZS9odG1sL0hUTUxFbWJlZEVsZW1lbnQuY3BwCShyZXZpc2lvbiAxMDI5NzMp
CisrKyBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxFbWJlZEVsZW1lbnQuY3BwCSh3b3JraW5nIGNv
cHkpCkBAIC0xMTgsNyArMTE4LDYgQEAgdm9pZCBIVE1MRW1iZWRFbGVtZW50OjpwYXJzZU1hcHBl
ZEF0dHJpYgogICAgICAgICAgICAgZG9jdW1lbnQtPmFkZE5hbWVkSXRlbSh2YWx1ZSk7CiAgICAg
ICAgIH0KICAgICAgICAgbV9uYW1lID0gdmFsdWU7Ci0gICAgICAgIGludmFsaWRhdGVOb2RlTGlz
dHNDYWNoZUFmdGVyQXR0cmlidXRlQ2hhbmdlZCgpOwogICAgIH0gZWxzZQogICAgICAgICBIVE1M
UGx1Z0luSW1hZ2VFbGVtZW50OjpwYXJzZU1hcHBlZEF0dHJpYnV0ZShhdHRyKTsKIH0KSW5kZXg6
IFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEZvcm1FbGVtZW50LmNwcAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViQ29yZS9odG1sL0hUTUxGb3JtRWxlbWVudC5jcHAJKHJldmlzaW9uIDEwMjk3MykK
KysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEZvcm1FbGVtZW50LmNwcAkod29ya2luZyBjb3B5
KQpAQCAtMzkyLDcgKzM5Miw2IEBAIHZvaWQgSFRNTEZvcm1FbGVtZW50OjpwYXJzZU1hcHBlZEF0
dHJpYnUKICAgICAgICAgICAgIGRvY3VtZW50LT5hZGROYW1lZEl0ZW0obmV3TmFtZSk7CiAgICAg
ICAgIH0KICAgICAgICAgbV9uYW1lID0gbmV3TmFtZTsKLSAgICAgICAgaW52YWxpZGF0ZU5vZGVM
aXN0c0NhY2hlQWZ0ZXJBdHRyaWJ1dGVDaGFuZ2VkKCk7CiAgICAgfSBlbHNlCiAgICAgICAgIEhU
TUxFbGVtZW50OjpwYXJzZU1hcHBlZEF0dHJpYnV0ZShhdHRyKTsKIH0KSW5kZXg6IFNvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTEZyYW1lRWxlbWVudEJhc2UuY3BwCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJDb3JlL2h0bWwvSFRNTEZyYW1lRWxlbWVudEJhc2UuY3BwCShyZXZpc2lvbiAxMDI5NzMp
CisrKyBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxGcmFtZUVsZW1lbnRCYXNlLmNwcAkod29ya2lu
ZyBjb3B5KQpAQCAtMTQxLDcgKzE0MSw2IEBAIHZvaWQgSFRNTEZyYW1lRWxlbWVudEJhc2U6OnBh
cnNlTWFwcGVkQXQKICAgICAgICAgbV9mcmFtZU5hbWUgPSBhdHRyLT52YWx1ZSgpOwogICAgIH0g
ZWxzZSBpZiAoYXR0ci0+bmFtZSgpID09IG5hbWVBdHRyKSB7CiAgICAgICAgIG1fZnJhbWVOYW1l
ID0gYXR0ci0+dmFsdWUoKTsKLSAgICAgICAgaW52YWxpZGF0ZU5vZGVMaXN0c0NhY2hlQWZ0ZXJB
dHRyaWJ1dGVDaGFuZ2VkKCk7CiAgICAgICAgIC8vIEZJWE1FOiBJZiB3ZSBhcmUgYWxyZWFkeSBh
dHRhY2hlZCwgdGhpcyBkb2Vzbid0IGFjdHVhbGx5IGNoYW5nZSB0aGUgZnJhbWUncyBuYW1lLgog
ICAgICAgICAvLyBGSVhNRTogSWYgd2UgYXJlIGFscmVhZHkgYXR0YWNoZWQsIHRoaXMgZG9lc24n
dCBjaGVjayBmb3IgZnJhbWUgbmFtZQogICAgICAgICAvLyBjb25mbGljdHMgYW5kIGdlbmVyYXRl
IGEgdW5pcXVlIGZyYW1lIG5hbWUuCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJRnJh
bWVFbGVtZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJRnJh
bWVFbGVtZW50LmNwcAkocmV2aXNpb24gMTAyOTczKQorKysgU291cmNlL1dlYkNvcmUvaHRtbC9I
VE1MSUZyYW1lRWxlbWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTg0LDcgKzg0LDYgQEAgdm9p
ZCBIVE1MSUZyYW1lRWxlbWVudDo6cGFyc2VNYXBwZWRBdHRyaQogICAgICAgICAgICAgZG9jdW1l
bnQtPmFkZEV4dHJhTmFtZWRJdGVtKG5ld05hbWUpOwogICAgICAgICB9CiAgICAgICAgIG1fbmFt
ZSA9IG5ld05hbWU7Ci0gICAgICAgIGludmFsaWRhdGVOb2RlTGlzdHNDYWNoZUFmdGVyQXR0cmli
dXRlQ2hhbmdlZCgpOwogICAgIH0gZWxzZSBpZiAoYXR0ci0+bmFtZSgpID09IGZyYW1lYm9yZGVy
QXR0cikgewogICAgICAgICAvLyBGcmFtZSBib3JkZXIgZG9lc24ndCByZWFsbHkgbWF0Y2ggdGhl
IEhUTUw0IHNwZWMgZGVmaW5pdGlvbiBmb3IgaWZyYW1lcy4gIEl0IHNpbXBseSBhZGRzCiAgICAg
ICAgIC8vIGEgcHJlc2VudGF0aW9uYWwgaGludCB0aGF0IHRoZSBib3JkZXIgc2hvdWxkIGJlIG9m
ZiBpZiBzZXQgdG8gemVyby4KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEltYWdlRWxl
bWVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW1hZ2VFbGVt
ZW50LmNwcAkocmV2aXNpb24gMTAyOTczKQorKysgU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW1h
Z2VFbGVtZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTQxLDcgKzE0MSw2IEBAIHZvaWQgSFRN
TEltYWdlRWxlbWVudDo6cGFyc2VNYXBwZWRBdHRyaWIKICAgICAgICAgICAgIGRvY3VtZW50LT5h
ZGROYW1lZEl0ZW0obmV3TmFtZSk7CiAgICAgICAgIH0KICAgICAgICAgbV9uYW1lID0gbmV3TmFt
ZTsKLSAgICAgICAgaW52YWxpZGF0ZU5vZGVMaXN0c0NhY2hlQWZ0ZXJBdHRyaWJ1dGVDaGFuZ2Vk
KCk7CiAgICAgfSBlbHNlIGlmIChpc0lkQXR0cmlidXRlTmFtZShhdHRyLT5uYW1lKCkpKSB7CiAg
ICAgICAgIGNvbnN0IEF0b21pY1N0cmluZyYgbmV3SWQgPSBhdHRyLT52YWx1ZSgpOwogICAgICAg
ICBpZiAoaW5Eb2N1bWVudCgpICYmIGRvY3VtZW50KCktPmlzSFRNTERvY3VtZW50KCkpIHsKSW5k
ZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1hcEVsZW1lbnQuY3BwCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1hcEVsZW1lbnQuY3BwCShyZXZpc2lvbiAxMDI5NzMp
CisrKyBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNYXBFbGVtZW50LmNwcAkod29ya2luZyBjb3B5
KQpAQCAtMTIwLDggKzEyMCw2IEBAIHZvaWQgSFRNTE1hcEVsZW1lbnQ6OnBhcnNlTWFwcGVkQXR0
cmlidXQKICAgICAgICAgaWYgKGluRG9jdW1lbnQoKSkKICAgICAgICAgICAgIHRyZWVTY29wZSgp
LT5hZGRJbWFnZU1hcCh0aGlzKTsKIAotICAgICAgICBpZiAoYXR0ck5hbWUgPT0gbmFtZUF0dHIp
Ci0gICAgICAgICAgICBpbnZhbGlkYXRlTm9kZUxpc3RzQ2FjaGVBZnRlckF0dHJpYnV0ZUNoYW5n
ZWQoKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIApJbmRleDogU291cmNlL1dlYkNvcmUvaHRt
bC9IVE1MTWV0YUVsZW1lbnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwv
SFRNTE1ldGFFbGVtZW50LmNwcAkocmV2aXNpb24gMTAyOTczKQorKysgU291cmNlL1dlYkNvcmUv
aHRtbC9IVE1MTWV0YUVsZW1lbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00OSw3ICs0OSw3IEBA
IHZvaWQgSFRNTE1ldGFFbGVtZW50OjpwYXJzZU1hcHBlZEF0dHJpYnUKICAgICBlbHNlIGlmIChh
dHRyLT5uYW1lKCkgPT0gY29udGVudEF0dHIpCiAgICAgICAgIHByb2Nlc3MoKTsKICAgICBlbHNl
IGlmIChhdHRyLT5uYW1lKCkgPT0gbmFtZUF0dHIpIHsKLSAgICAgICAgaW52YWxpZGF0ZU5vZGVM
aXN0c0NhY2hlQWZ0ZXJBdHRyaWJ1dGVDaGFuZ2VkKCk7CisgICAgICAgIC8vIERvIG5vdGhpbmcK
ICAgICB9IGVsc2UKICAgICAgICAgSFRNTEVsZW1lbnQ6OnBhcnNlTWFwcGVkQXR0cmlidXRlKGF0
dHIpOwogfQpJbmRleDogU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MT2JqZWN0RWxlbWVudC5jcHAK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MT2JqZWN0RWxlbWVudC5jcHAJ
KHJldmlzaW9uIDEwMjk3MykKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE9iamVjdEVsZW1l
bnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMjIsNyArMTIyLDYgQEAgdm9pZCBIVE1MT2JqZWN0
RWxlbWVudDo6cGFyc2VNYXBwZWRBdHRyaQogICAgICAgICAgICAgZG9jdW1lbnQtPmFkZE5hbWVk
SXRlbShuZXdOYW1lKTsKICAgICAgICAgfQogICAgICAgICBtX25hbWUgPSBuZXdOYW1lOwotICAg
ICAgICBpbnZhbGlkYXRlTm9kZUxpc3RzQ2FjaGVBZnRlckF0dHJpYnV0ZUNoYW5nZWQoKTsKICAg
ICB9IGVsc2UgaWYgKGF0dHItPm5hbWUoKSA9PSBib3JkZXJBdHRyKQogICAgICAgICBhcHBseUJv
cmRlckF0dHJpYnV0ZShhdHRyKTsKICAgICBlbHNlIGlmIChpc0lkQXR0cmlidXRlTmFtZShhdHRy
LT5uYW1lKCkpKSB7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxQYXJhbUVsZW1lbnQu
Y3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFBhcmFtRWxlbWVudC5j
cHAJKHJldmlzaW9uIDEwMjk3MykKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFBhcmFtRWxl
bWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTU3LDcgKzU3LDYgQEAgdm9pZCBIVE1MUGFyYW1F
bGVtZW50OjpwYXJzZU1hcHBlZEF0dHJpYgogICAgICAgICBtX25hbWUgPSBhdHRyLT52YWx1ZSgp
OwogICAgIH0gZWxzZSBpZiAoYXR0ci0+bmFtZSgpID09IG5hbWVBdHRyKSB7CiAgICAgICAgIG1f
bmFtZSA9IGF0dHItPnZhbHVlKCk7Ci0gICAgICAgIGludmFsaWRhdGVOb2RlTGlzdHNDYWNoZUFm
dGVyQXR0cmlidXRlQ2hhbmdlZCgpOwogICAgIH0gZWxzZSBpZiAoYXR0ci0+bmFtZSgpID09IHZh
bHVlQXR0cikgewogICAgICAgICBtX3ZhbHVlID0gYXR0ci0+dmFsdWUoKTsKICAgICB9IGVsc2UK
SW5kZXg6IExheW91dFRlc3RzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9D
aGFuZ2VMb2cJKHJldmlzaW9uIDEwMzA0MykKKysrIExheW91dFRlc3RzL0NoYW5nZUxvZwkod29y
a2luZyBjb3B5KQpAQCAtMSwzICsxLDE1IEBACisyMDExLTEyLTE2ICBSeW9zdWtlIE5pd2EgIDxy
bml3YUB3ZWJraXQub3JnPgorCisgICAgICAgIGludmFsaWRhdGVOb2RlTGlzdHNDYWNoZUFmdGVy
QXR0cmlidXRlQ2hhbmdlZCBoYXMgdG9vIG1hbnkgY2FsbGVycworICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzQ2OTIKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgYSByZWdyZXNzaW9uIHRlc3QgZm9yIHNl
dHRpbmcgQXR0cidzIHZhbHVlLiBXZWJLaXQgc2hvdWxkIGludmFsaWRhdGUgdGhlIGNhY2hlIGFz
IG5lZWRlZC4KKworICAgICAgICAqIGZhc3QvZG9tL0F0dHIvaW52YWxpZGF0ZS1ub2RlbGlzdC1h
ZnRlci1hdHRyLXNldHZhbHVlLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9k
b20vQXR0ci9pbnZhbGlkYXRlLW5vZGVsaXN0LWFmdGVyLWF0dHItc2V0dmFsdWUuaHRtbDogQWRk
ZWQuCisKIDIwMTEtMTItMTYgIEhhamltZSBNb3JyaXRhIDxtb3JyaXRhQGNocm9taXVtLm9yZz4K
IAogICAgICAgICBNYXJraW5nIHNvbWUgYXMgZmFpbC4KSW5kZXg6IExheW91dFRlc3RzL2Zhc3Qv
ZG9tL0F0dHIvaW52YWxpZGF0ZS1ub2RlbGlzdC1hZnRlci1hdHRyLXNldHZhbHVlLWV4cGVjdGVk
LnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2RvbS9BdHRyL2ludmFsaWRhdGUt
bm9kZWxpc3QtYWZ0ZXItYXR0ci1zZXR2YWx1ZS1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCisr
KyBMYXlvdXRUZXN0cy9mYXN0L2RvbS9BdHRyL2ludmFsaWRhdGUtbm9kZWxpc3QtYWZ0ZXItYXR0
ci1zZXR2YWx1ZS1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMTIgQEAKK1Ro
aXMgdGVzdHMgc2V0dGluZyB0aGUgdmFsdWUgb2YgYW4gYXR0cmlidXRlIG5vZGUgYWZ0ZXIgY2Fj
aGluZyBjaGlsZE5vZGVzIG9mIHRoZSBhdHRyaWJ1dGUgbm9kZS4KK1RoZSBjYWNoZSBzaG91bGQg
YmUgY2xlYXJlZCBhbmQgY2hpbGROb2Rlc1swXS5kYXRhIHNob3VsZCByZXR1cm4gdGhlIG5ldyB2
YWx1ZS4KK1lvdSBzaG91bGQgc2VlIFBBU1MgYmVsb3c6CisKK1BBU1MgbmFtZUF0dHJOb2RlLmNo
aWxkTm9kZXMubGVuZ3RoIGlzIDEKK1BBU1MgbmFtZUF0dHJOb2RlLmNoaWxkTm9kZXNbMF0gaXMg
b2xkVmFsdWUKK1BBU1MgbmFtZUF0dHJOb2RlLmNoaWxkTm9kZXNbMF0uZGF0YSBpcyAib2xkTmFt
ZSIKKworUEFTUyBuYW1lQXR0ck5vZGUudmFsdWUgPSAnbmV3TmFtZSc7IG5hbWVBdHRyTm9kZS52
YWx1ZSBpcyAibmV3TmFtZSIKK1BBU1MgbmFtZUF0dHJOb2RlLmNoaWxkTm9kZXNbMF0gaXMgbm90
IG9sZFZhbHVlCitQQVNTIG5hbWVBdHRyTm9kZS5jaGlsZE5vZGVzWzBdLmRhdGEgaXMgIm5ld05h
bWUiCisKSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZG9tL0F0dHIvaW52YWxpZGF0ZS1ub2RlbGlz
dC1hZnRlci1hdHRyLXNldHZhbHVlLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFz
dC9kb20vQXR0ci9pbnZhbGlkYXRlLW5vZGVsaXN0LWFmdGVyLWF0dHItc2V0dmFsdWUuaHRtbAko
cmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2Zhc3QvZG9tL0F0dHIvaW52YWxpZGF0ZS1ub2Rl
bGlzdC1hZnRlci1hdHRyLXNldHZhbHVlLmh0bWwJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMjkg
QEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8Ym9keT4KKzxwPlRoaXMgdGVzdHMgc2V0dGlu
ZyB0aGUgdmFsdWUgb2YgYW4gYXR0cmlidXRlIG5vZGUgYWZ0ZXIgY2FjaGluZyBjaGlsZE5vZGVz
IG9mIHRoZSBhdHRyaWJ1dGUgbm9kZS48YnI+CitUaGUgY2FjaGUgc2hvdWxkIGJlIGNsZWFyZWQg
YW5kIGNoaWxkTm9kZXNbMF0uZGF0YSBzaG91bGQgcmV0dXJuIHRoZSBuZXcgdmFsdWUuPGJyPgor
WW91IHNob3VsZCBzZWUgUEFTUyBiZWxvdzo8L3A+Cis8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4K
KzxzY3JpcHQgc3JjPSIuLi8uLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0
PgorPHNjcmlwdD4KKwordmFyIGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYn
KTsKK3ZhciBuYW1lQXR0ck5vZGUgPSBkb2N1bWVudC5jcmVhdGVBdHRyaWJ1dGUoJ25hbWUnKTsK
K3ZhciBvbGRWYWx1ZSA9IGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKCdvbGROYW1lJyk7CituYW1l
QXR0ck5vZGUuYXBwZW5kQ2hpbGQob2xkVmFsdWUpOworZWxlbWVudC5zZXRBdHRyaWJ1dGVOb2Rl
KG5hbWVBdHRyTm9kZSk7Citkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGVsZW1lbnQpOworCitz
aG91bGRCZSgibmFtZUF0dHJOb2RlLmNoaWxkTm9kZXMubGVuZ3RoIiwgJzEnKTsKK3Nob3VsZEJl
KCduYW1lQXR0ck5vZGUuY2hpbGROb2Rlc1swXScsICdvbGRWYWx1ZScpOworc2hvdWxkQmUoJ25h
bWVBdHRyTm9kZS5jaGlsZE5vZGVzWzBdLmRhdGEnLCAnIm9sZE5hbWUiJyk7CisKK2RlYnVnKCcn
KTsKK3Nob3VsZEJlKCJuYW1lQXR0ck5vZGUudmFsdWUgPSAnbmV3TmFtZSc7IG5hbWVBdHRyTm9k
ZS52YWx1ZSIsICcibmV3TmFtZSInKTsKK3Nob3VsZE5vdEJlKCJuYW1lQXR0ck5vZGUuY2hpbGRO
b2Rlc1swXSIsICdvbGRWYWx1ZScpOworc2hvdWxkQmUoIm5hbWVBdHRyTm9kZS5jaGlsZE5vZGVz
WzBdLmRhdGEiLCAnIm5ld05hbWUiJyk7CisKKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>119582</attachid>
            <date>2011-12-16 01:06:46 -0800</date>
            <delta_ts>2011-12-16 14:31:39 -0800</delta_ts>
            <desc>Fixed if for MICRODATA</desc>
            <filename>bug-74692-20111216010645.patch</filename>
            <type>text/plain</type>
            <size>17616</size>
            <attacher name="Ryosuke Niwa">rniwa</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDEwMzAzOCkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDU2IEBACisyMDExLTEyLTE2ICBSeW9zdWtl
IE5pd2EgIDxybml3YUB3ZWJraXQub3JnPgorCisgICAgICAgIGludmFsaWRhdGVOb2RlTGlzdHND
YWNoZUFmdGVyQXR0cmlidXRlQ2hhbmdlZCBoYXMgdG9vIG1hbnkgY2FsbGVycworICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzQ2OTIKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBDYWxsIGludmFsaWRhdGVOb2Rl
TGlzdHNDYWNoZUFmdGVyQXR0cmlidXRlQ2hhbmdlZCBpbiBFbGVtZW50Ojp1cGRhdGVBZnRlckF0
dHJpYnV0ZUNoYW5nZWQgaW5zdGVhZCBvZgorICAgICAgICBwYXJzZWRNYXBwZWRBdHRyaWJ1dGUg
b2YgdmFyaW91cyBlbGVtZW50cy4gQWxzbyBtYWtlIGludmFsaWRhdGVOb2RlTGlzdHNDYWNoZUFm
dGVyQXR0cmlidXRlQ2hhbmdlZCB0YWtlCisgICAgICAgIHRoZSBxdWFsaWZpZWQgbmFtZSBvZiB0
aGUgY2hhbmdlZCBhdHRyaWJ1dGUgc28gdGhhdCB3ZSBjYW4gZXhpdCBlYXJseSB3aGVuIHRoZSBj
aGFuZ2VkIGF0dHJpYnV0ZSBpc24ndAorICAgICAgICBvbmUgb2YgYXR0cmlidXRlcyB3ZSBjYXJl
LgorCisgICAgICAgIEluIGFkZGl0aW9uLCBhZGRlZCBhIG1pc3NpbmcgY2FsbCB0byBpbnZhbGlk
YXRlTm9kZUxpc3RzQ2FjaGVBZnRlckF0dHJpYnV0ZUNoYW5nZWQgaW4gQXR0cjo6c2V0VmFsdWUu
CisKKyAgICAgICAgVGVzdDogZmFzdC9kb20vQXR0ci9pbnZhbGlkYXRlLW5vZGVsaXN0LWFmdGVy
LWF0dHItc2V0dmFsdWUuaHRtbAorCisgICAgICAgICogZG9tL0F0dHIuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6QXR0cjo6Y2hpbGRyZW5DaGFuZ2VkKToKKyAgICAgICAgKiBkb20vRWxlbWVudC5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpFbGVtZW50Ojp1cGRhdGVBZnRlckF0dHJpYnV0ZUNoYW5n
ZWQpOgorICAgICAgICAqIGRvbS9OYW1lZE5vZGVNYXAuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
TmFtZWROb2RlTWFwOjphZGRBdHRyaWJ1dGUpOgorICAgICAgICAoV2ViQ29yZTo6TmFtZWROb2Rl
TWFwOjpyZW1vdmVBdHRyaWJ1dGUpOgorICAgICAgICAqIGRvbS9Ob2RlLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6Ok5vZGU6OmludmFsaWRhdGVOb2RlTGlzdHNDYWNoZUFmdGVyQXR0cmlidXRlQ2hh
bmdlZCk6CisgICAgICAgICogZG9tL05vZGUuaDoKKyAgICAgICAgKiBkb20vU3R5bGVkRWxlbWVu
dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTdHlsZWRFbGVtZW50OjpjbGFzc0F0dHJpYnV0ZUNo
YW5nZWQpOgorICAgICAgICAqIGh0bWwvSFRNTEFuY2hvckVsZW1lbnQuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6SFRNTEFuY2hvckVsZW1lbnQ6OnBhcnNlTWFwcGVkQXR0cmlidXRlKToKKyAgICAg
ICAgKiBodG1sL0hUTUxBcHBsZXRFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxB
cHBsZXRFbGVtZW50OjpwYXJzZU1hcHBlZEF0dHJpYnV0ZSk6CisgICAgICAgICogaHRtbC9IVE1M
RWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MRWxlbWVudDo6cGFyc2VNYXBwZWRB
dHRyaWJ1dGUpOgorICAgICAgICAqIGh0bWwvSFRNTEVtYmVkRWxlbWVudC5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpIVE1MRW1iZWRFbGVtZW50OjpwYXJzZU1hcHBlZEF0dHJpYnV0ZSk6CisgICAg
ICAgICogaHRtbC9IVE1MRm9ybUVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTEZv
cm1FbGVtZW50OjpwYXJzZU1hcHBlZEF0dHJpYnV0ZSk6CisgICAgICAgICogaHRtbC9IVE1MRnJh
bWVFbGVtZW50QmFzZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MRnJhbWVFbGVtZW50QmFz
ZTo6cGFyc2VNYXBwZWRBdHRyaWJ1dGUpOgorICAgICAgICAqIGh0bWwvSFRNTElGcmFtZUVsZW1l
bnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTElGcmFtZUVsZW1lbnQ6OnBhcnNlTWFwcGVk
QXR0cmlidXRlKToKKyAgICAgICAgKiBodG1sL0hUTUxJbWFnZUVsZW1lbnQuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6SFRNTEltYWdlRWxlbWVudDo6cGFyc2VNYXBwZWRBdHRyaWJ1dGUpOgorICAg
ICAgICAqIGh0bWwvSFRNTE1hcEVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTE1h
cEVsZW1lbnQ6OnBhcnNlTWFwcGVkQXR0cmlidXRlKToKKyAgICAgICAgKiBodG1sL0hUTUxNZXRh
RWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MTWV0YUVsZW1lbnQ6OnBhcnNlTWFw
cGVkQXR0cmlidXRlKToKKyAgICAgICAgKiBodG1sL0hUTUxPYmplY3RFbGVtZW50LmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OkhUTUxPYmplY3RFbGVtZW50OjpwYXJzZU1hcHBlZEF0dHJpYnV0ZSk6
CisgICAgICAgICogaHRtbC9IVE1MUGFyYW1FbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OkhUTUxQYXJhbUVsZW1lbnQ6OnBhcnNlTWFwcGVkQXR0cmlidXRlKToKKwogMjAxMS0xMi0xNSAg
TWFydGluIFJvYmluc29uICA8bXJvYmluc29uQGlnYWxpYS5jb20+CiAKICAgICAgICAgRml4ICdt
YWtlIGRpc3QnIGluIHByZXBhcmF0aW9uIGZvciB0aGUgR1RLKyByZWxlYXNlLgpJbmRleDogU291
cmNlL1dlYkNvcmUvZG9tL0F0dHIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2Rv
bS9BdHRyLmNwcAkocmV2aXNpb24gMTAyOTczKQorKysgU291cmNlL1dlYkNvcmUvZG9tL0F0dHIu
Y3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMjYsNiArMTI2LDggQEAgdm9pZCBBdHRyOjpzZXRWYWx1
ZShjb25zdCBBdG9taWNTdHJpbmcmIAogICAgIG1fYXR0cmlidXRlLT5zZXRWYWx1ZSh2YWx1ZSk7
CiAgICAgY3JlYXRlVGV4dENoaWxkKCk7CiAgICAgbV9pZ25vcmVDaGlsZHJlbkNoYW5nZWQtLTsK
KworICAgIGludmFsaWRhdGVOb2RlTGlzdHNDYWNoZUFmdGVyQXR0cmlidXRlQ2hhbmdlZChtX2F0
dHJpYnV0ZS0+bmFtZSgpKTsKIH0KIAogdm9pZCBBdHRyOjpzZXRWYWx1ZShjb25zdCBBdG9taWNT
dHJpbmcmIHZhbHVlLCBFeGNlcHRpb25Db2RlJikKQEAgLTE4MCwxMCArMTgyLDEwIEBAIHZvaWQg
QXR0cjo6Y2hpbGRyZW5DaGFuZ2VkKGJvb2wgY2hhbmdlZEIKIAogICAgIE5vZGU6OmNoaWxkcmVu
Q2hhbmdlZChjaGFuZ2VkQnlQYXJzZXIsIGJlZm9yZUNoYW5nZSwgYWZ0ZXJDaGFuZ2UsIGNoaWxk
Q291bnREZWx0YSk7CiAKLSAgICBpbnZhbGlkYXRlTm9kZUxpc3RzQ2FjaGVBZnRlckF0dHJpYnV0
ZUNoYW5nZWQoKTsKKyAgICBpbnZhbGlkYXRlTm9kZUxpc3RzQ2FjaGVBZnRlckF0dHJpYnV0ZUNo
YW5nZWQobV9hdHRyaWJ1dGUtPm5hbWUoKSk7CiAKICAgICAvLyBGSVhNRTogV2Ugc2hvdWxkIGlu
Y2x1ZGUgZW50aXR5IHJlZmVyZW5jZXMgaW4gdGhlIHZhbHVlCi0gICAgCisKICAgICBTdHJpbmcg
dmFsID0gIiI7CiAgICAgZm9yIChOb2RlICpuID0gZmlyc3RDaGlsZCgpOyBuOyBuID0gbi0+bmV4
dFNpYmxpbmcoKSkgewogICAgICAgICBpZiAobi0+aXNUZXh0Tm9kZSgpKQpJbmRleDogU291cmNl
L1dlYkNvcmUvZG9tL0VsZW1lbnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2Rv
bS9FbGVtZW50LmNwcAkocmV2aXNpb24gMTAyOTczKQorKysgU291cmNlL1dlYkNvcmUvZG9tL0Vs
ZW1lbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC02OTYsNiArNjk2LDggQEAgdm9pZCBFbGVtZW50
OjphdHRyaWJ1dGVDaGFuZ2VkKEF0dHJpYnV0ZQogCiB2b2lkIEVsZW1lbnQ6OnVwZGF0ZUFmdGVy
QXR0cmlidXRlQ2hhbmdlZChBdHRyaWJ1dGUqIGF0dHIpCiB7CisgICAgaW52YWxpZGF0ZU5vZGVM
aXN0c0NhY2hlQWZ0ZXJBdHRyaWJ1dGVDaGFuZ2VkKGF0dHItPm5hbWUoKSk7CisKICAgICBpZiAo
IUFYT2JqZWN0Q2FjaGU6OmFjY2Vzc2liaWxpdHlFbmFibGVkKCkpCiAgICAgICAgIHJldHVybjsK
IApJbmRleDogU291cmNlL1dlYkNvcmUvZG9tL05hbWVkTm9kZU1hcC5jcHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYkNvcmUvZG9tL05hbWVkTm9kZU1hcC5jcHAJKHJldmlzaW9uIDEwMjk3MykK
KysrIFNvdXJjZS9XZWJDb3JlL2RvbS9OYW1lZE5vZGVNYXAuY3BwCSh3b3JraW5nIGNvcHkpCkBA
IC0yNjQsNyArMjY0LDYgQEAgdm9pZCBOYW1lZE5vZGVNYXA6OmFkZEF0dHJpYnV0ZShQYXNzUmVm
UAogICAgICAgICBtX2VsZW1lbnQtPmF0dHJpYnV0ZUNoYW5nZWQoYXR0cmlidXRlLmdldCgpKTsK
ICAgICAgICAgLy8gQmVjYXVzZSBvZiBvdXIgdXBkYXRlU3R5bGVBdHRyaWJ1dGUoKSBzdHlsZSBt
b2RpZmljYXRpb24gZXZlbnRzIGFyZSBuZXZlciBzZW50IGF0IHRoZSByaWdodCB0aW1lLCBzbyBk
b24ndCBib3RoZXIgc2VuZGluZyB0aGVtLgogICAgICAgICBpZiAoYXR0cmlidXRlLT5uYW1lKCkg
IT0gc3R5bGVBdHRyKSB7Ci0gICAgICAgICAgICBtX2VsZW1lbnQtPmludmFsaWRhdGVOb2RlTGlz
dHNDYWNoZUFmdGVyQXR0cmlidXRlQ2hhbmdlZCgpOwogICAgICAgICAgICAgbV9lbGVtZW50LT5k
aXNwYXRjaEF0dHJBZGRpdGlvbkV2ZW50KGF0dHJpYnV0ZS5nZXQoKSk7CiAgICAgICAgICAgICBt
X2VsZW1lbnQtPmRpc3BhdGNoU3VidHJlZU1vZGlmaWVkRXZlbnQoKTsKICAgICAgICAgfQpAQCAt
MzAxLDcgKzMwMCw2IEBAIHZvaWQgTmFtZWROb2RlTWFwOjpyZW1vdmVBdHRyaWJ1dGUoY29uc3QK
ICAgICAgICAgYXR0ci0+bV92YWx1ZSA9IHZhbHVlOwogICAgIH0KICAgICBpZiAobV9lbGVtZW50
KSB7Ci0gICAgICAgIG1fZWxlbWVudC0+aW52YWxpZGF0ZU5vZGVMaXN0c0NhY2hlQWZ0ZXJBdHRy
aWJ1dGVDaGFuZ2VkKCk7CiAgICAgICAgIG1fZWxlbWVudC0+ZGlzcGF0Y2hBdHRyUmVtb3ZhbEV2
ZW50KGF0dHIuZ2V0KCkpOwogICAgICAgICBtX2VsZW1lbnQtPmRpc3BhdGNoU3VidHJlZU1vZGlm
aWVkRXZlbnQoKTsKICAgICB9CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9kb20vTm9kZS5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvZG9tL05vZGUuY3BwCShyZXZpc2lvbiAxMDI5NzMp
CisrKyBTb3VyY2UvV2ViQ29yZS9kb20vTm9kZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEwMjAs
NyArMTAyMCw3IEBAIHZvaWQgTm9kZTo6dW5yZWdpc3RlckR5bmFtaWNTdWJ0cmVlTm9kZUwKICAg
ICByZW1vdmVOb2RlTGlzdENhY2hlSWZQb3NzaWJsZSh0aGlzLCBkYXRhKTsKIH0KIAotdm9pZCBO
b2RlOjppbnZhbGlkYXRlTm9kZUxpc3RzQ2FjaGVBZnRlckF0dHJpYnV0ZUNoYW5nZWQoKQordm9p
ZCBOb2RlOjppbnZhbGlkYXRlTm9kZUxpc3RzQ2FjaGVBZnRlckF0dHJpYnV0ZUNoYW5nZWQoY29u
c3QgUXVhbGlmaWVkTmFtZSYgYXR0ck5hbWUpCiB7CiAgICAgaWYgKGhhc1JhcmVEYXRhKCkgJiYg
aXNBdHRyaWJ1dGVOb2RlKCkpIHsKICAgICAgICAgTm9kZVJhcmVEYXRhKiBkYXRhID0gcmFyZURh
dGEoKTsKQEAgLTEwMjgsNiArMTAyOCwxNSBAQCB2b2lkIE5vZGU6OmludmFsaWRhdGVOb2RlTGlz
dHNDYWNoZUFmdGVyCiAgICAgICAgIGRhdGEtPmNsZWFyQ2hpbGROb2RlTGlzdENhY2hlKCk7CiAg
ICAgfQogCisgICAgLy8gVGhpcyBsaXN0IHNob3VsZCBiZSBzeW5jJ2VkIHdpdGggTm9kZUxpc3Rz
Tm9kZURhdGEuCisgICAgaWYgKGF0dHJOYW1lICE9IGNsYXNzQXR0cgorI2lmIEVOQUJMRShNSUNS
T0RBVEEpCisgICAgICAgICYmIGF0dHJOYW1lICE9IGl0ZW1zY29wZUF0dHIKKyAgICAgICAgJiYg
YXR0ck5hbWUgIT0gaXRlbXByb3BBdHRyCisjZW5kaWYKKyAgICAgICAgJiYgYXR0ck5hbWUgIT0g
bmFtZUF0dHIpCisgICAgICAgIHJldHVybjsKKwogICAgIGlmICghdHJlZVNjb3BlKCktPmhhc05v
ZGVMaXN0Q2FjaGVzKCkpCiAgICAgICAgIHJldHVybjsKIApJbmRleDogU291cmNlL1dlYkNvcmUv
ZG9tL05vZGUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9kb20vTm9kZS5oCShyZXZp
c2lvbiAxMDI5NzMpCisrKyBTb3VyY2UvV2ViQ29yZS9kb20vTm9kZS5oCSh3b3JraW5nIGNvcHkp
CkBAIC01MTksNyArNTE5LDcgQEAgcHVibGljOgogCiAgICAgdm9pZCByZWdpc3RlckR5bmFtaWNT
dWJ0cmVlTm9kZUxpc3QoRHluYW1pY1N1YnRyZWVOb2RlTGlzdCopOwogICAgIHZvaWQgdW5yZWdp
c3RlckR5bmFtaWNTdWJ0cmVlTm9kZUxpc3QoRHluYW1pY1N1YnRyZWVOb2RlTGlzdCopOwotICAg
IHZvaWQgaW52YWxpZGF0ZU5vZGVMaXN0c0NhY2hlQWZ0ZXJBdHRyaWJ1dGVDaGFuZ2VkKCk7Cisg
ICAgdm9pZCBpbnZhbGlkYXRlTm9kZUxpc3RzQ2FjaGVBZnRlckF0dHJpYnV0ZUNoYW5nZWQoY29u
c3QgUXVhbGlmaWVkTmFtZSYpOwogICAgIHZvaWQgaW52YWxpZGF0ZU5vZGVMaXN0c0NhY2hlQWZ0
ZXJDaGlsZHJlbkNoYW5nZWQoKTsKICAgICB2b2lkIG5vdGlmeUxvY2FsTm9kZUxpc3RzTGFiZWxD
aGFuZ2VkKCk7CiAgICAgdm9pZCByZW1vdmVDYWNoZWRDbGFzc05vZGVMaXN0KENsYXNzTm9kZUxp
c3QqLCBjb25zdCBTdHJpbmcmKTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2RvbS9TdHlsZWRFbGVt
ZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9kb20vU3R5bGVkRWxlbWVudC5j
cHAJKHJldmlzaW9uIDEwMjk3MykKKysrIFNvdXJjZS9XZWJDb3JlL2RvbS9TdHlsZWRFbGVtZW50
LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjI4LDcgKzIyOCw2IEBAIHZvaWQgU3R5bGVkRWxlbWVu
dDo6Y2xhc3NBdHRyaWJ1dGVDaGFuZ2UKICAgICB9IGVsc2UgaWYgKGF0dHJpYnV0ZU1hcCgpKQog
ICAgICAgICBhdHRyaWJ1dGVNYXAoKS0+Y2xlYXJDbGFzcygpOwogICAgIHNldE5lZWRzU3R5bGVS
ZWNhbGMoKTsKLSAgICBpbnZhbGlkYXRlTm9kZUxpc3RzQ2FjaGVBZnRlckF0dHJpYnV0ZUNoYW5n
ZWQoKTsKICAgICBkaXNwYXRjaFN1YnRyZWVNb2RpZmllZEV2ZW50KCk7CiB9CiAKSW5kZXg6IFNv
dXJjZS9XZWJDb3JlL2h0bWwvSFRNTEFuY2hvckVsZW1lbnQuY3BwCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJDb3JlL2h0bWwvSFRNTEFuY2hvckVsZW1lbnQuY3BwCShyZXZpc2lvbiAxMDI5NzMp
CisrKyBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxBbmNob3JFbGVtZW50LmNwcAkod29ya2luZyBj
b3B5KQpAQCAtMjIzLDkgKzIyMyw3IEBAIHZvaWQgSFRNTEFuY2hvckVsZW1lbnQ6OnBhcnNlTWFw
cGVkQXR0cmkKICAgICAgICAgICAgIH0KICAgICAgICAgfQogICAgICAgICBpbnZhbGlkYXRlQ2Fj
aGVkVmlzaXRlZExpbmtIYXNoKCk7Ci0gICAgfSBlbHNlIGlmIChhdHRyLT5uYW1lKCkgPT0gbmFt
ZUF0dHIpIHsKLSAgICAgICAgaW52YWxpZGF0ZU5vZGVMaXN0c0NhY2hlQWZ0ZXJBdHRyaWJ1dGVD
aGFuZ2VkKCk7Ci0gICAgfSBlbHNlIGlmIChhdHRyLT5uYW1lKCkgPT0gdGl0bGVBdHRyKSB7Cisg
ICAgfSBlbHNlIGlmIChhdHRyLT5uYW1lKCkgPT0gbmFtZUF0dHIgfHwgYXR0ci0+bmFtZSgpID09
IHRpdGxlQXR0cikgewogICAgICAgICAvLyBEbyBub3RoaW5nLgogICAgIH0gZWxzZSBpZiAoYXR0
ci0+bmFtZSgpID09IHJlbEF0dHIpCiAgICAgICAgIHNldFJlbChhdHRyLT52YWx1ZSgpKTsKSW5k
ZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEFwcGxldEVsZW1lbnQuY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEFwcGxldEVsZW1lbnQuY3BwCShyZXZpc2lvbiAx
MDI5NzMpCisrKyBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxBcHBsZXRFbGVtZW50LmNwcAkod29y
a2luZyBjb3B5KQpAQCAtNjQsNyArNjQsNiBAQCB2b2lkIEhUTUxBcHBsZXRFbGVtZW50OjpwYXJz
ZU1hcHBlZEF0dHJpCiAgICAgICAgICAgICBkb2N1bWVudC0+YWRkTmFtZWRJdGVtKG5ld05hbWUp
OwogICAgICAgICB9CiAgICAgICAgIG1fbmFtZSA9IG5ld05hbWU7Ci0gICAgICAgIGludmFsaWRh
dGVOb2RlTGlzdHNDYWNoZUFmdGVyQXR0cmlidXRlQ2hhbmdlZCgpOwogICAgIH0gZWxzZSBpZiAo
aXNJZEF0dHJpYnV0ZU5hbWUoYXR0ci0+bmFtZSgpKSkgewogICAgICAgICBjb25zdCBBdG9taWNT
dHJpbmcmIG5ld0lkID0gYXR0ci0+dmFsdWUoKTsKICAgICAgICAgaWYgKGluRG9jdW1lbnQoKSAm
JiBkb2N1bWVudCgpLT5pc0hUTUxEb2N1bWVudCgpKSB7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9o
dG1sL0hUTUxFbGVtZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1sL0hU
TUxFbGVtZW50LmNwcAkocmV2aXNpb24gMTAyOTczKQorKysgU291cmNlL1dlYkNvcmUvaHRtbC9I
VE1MRWxlbWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTIxMCw4ICsyMTAsNiBAQCB2b2lkIEhU
TUxFbGVtZW50OjpwYXJzZU1hcHBlZEF0dHJpYnV0ZShBCiAgICAgICAgICAgICBhZGRDU1NQcm9w
ZXJ0eShhdHRyLCBDU1NQcm9wZXJ0eVdlYmtpdFVzZXJTZWxlY3QsIENTU1ZhbHVlTm9uZSk7CiAg
ICAgICAgIH0gZWxzZSBpZiAoZXF1YWxJZ25vcmluZ0Nhc2UodmFsdWUsICJmYWxzZSIpKQogICAg
ICAgICAgICAgYWRkQ1NTUHJvcGVydHkoYXR0ciwgQ1NTUHJvcGVydHlXZWJraXRVc2VyRHJhZywg
Q1NTVmFsdWVOb25lKTsKLSAgICB9IGVsc2UgaWYgKGF0dHItPm5hbWUoKSA9PSBuYW1lQXR0cikg
ewotICAgICAgICBpbnZhbGlkYXRlTm9kZUxpc3RzQ2FjaGVBZnRlckF0dHJpYnV0ZUNoYW5nZWQo
KTsKICNpZiBFTkFCTEUoTUlDUk9EQVRBKQogICAgIH0gZWxzZSBpZiAoYXR0ci0+bmFtZSgpID09
IGl0ZW1wcm9wQXR0cikgewogICAgICAgICBzZXRJdGVtUHJvcChhdHRyLT52YWx1ZSgpKTsKSW5k
ZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEVtYmVkRWxlbWVudC5jcHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRW1iZWRFbGVtZW50LmNwcAkocmV2aXNpb24gMTAy
OTczKQorKysgU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRW1iZWRFbGVtZW50LmNwcAkod29ya2lu
ZyBjb3B5KQpAQCAtMTE4LDcgKzExOCw2IEBAIHZvaWQgSFRNTEVtYmVkRWxlbWVudDo6cGFyc2VN
YXBwZWRBdHRyaWIKICAgICAgICAgICAgIGRvY3VtZW50LT5hZGROYW1lZEl0ZW0odmFsdWUpOwog
ICAgICAgICB9CiAgICAgICAgIG1fbmFtZSA9IHZhbHVlOwotICAgICAgICBpbnZhbGlkYXRlTm9k
ZUxpc3RzQ2FjaGVBZnRlckF0dHJpYnV0ZUNoYW5nZWQoKTsKICAgICB9IGVsc2UKICAgICAgICAg
SFRNTFBsdWdJbkltYWdlRWxlbWVudDo6cGFyc2VNYXBwZWRBdHRyaWJ1dGUoYXR0cik7CiB9Cklu
ZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxGb3JtRWxlbWVudC5jcHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRm9ybUVsZW1lbnQuY3BwCShyZXZpc2lvbiAxMDI5
NzMpCisrKyBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxGb3JtRWxlbWVudC5jcHAJKHdvcmtpbmcg
Y29weSkKQEAgLTM5Miw3ICszOTIsNiBAQCB2b2lkIEhUTUxGb3JtRWxlbWVudDo6cGFyc2VNYXBw
ZWRBdHRyaWJ1CiAgICAgICAgICAgICBkb2N1bWVudC0+YWRkTmFtZWRJdGVtKG5ld05hbWUpOwog
ICAgICAgICB9CiAgICAgICAgIG1fbmFtZSA9IG5ld05hbWU7Ci0gICAgICAgIGludmFsaWRhdGVO
b2RlTGlzdHNDYWNoZUFmdGVyQXR0cmlidXRlQ2hhbmdlZCgpOwogICAgIH0gZWxzZQogICAgICAg
ICBIVE1MRWxlbWVudDo6cGFyc2VNYXBwZWRBdHRyaWJ1dGUoYXR0cik7CiB9CkluZGV4OiBTb3Vy
Y2UvV2ViQ29yZS9odG1sL0hUTUxGcmFtZUVsZW1lbnRCYXNlLmNwcAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViQ29yZS9odG1sL0hUTUxGcmFtZUVsZW1lbnRCYXNlLmNwcAkocmV2aXNpb24gMTAy
OTczKQorKysgU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRnJhbWVFbGVtZW50QmFzZS5jcHAJKHdv
cmtpbmcgY29weSkKQEAgLTE0MSw3ICsxNDEsNiBAQCB2b2lkIEhUTUxGcmFtZUVsZW1lbnRCYXNl
OjpwYXJzZU1hcHBlZEF0CiAgICAgICAgIG1fZnJhbWVOYW1lID0gYXR0ci0+dmFsdWUoKTsKICAg
ICB9IGVsc2UgaWYgKGF0dHItPm5hbWUoKSA9PSBuYW1lQXR0cikgewogICAgICAgICBtX2ZyYW1l
TmFtZSA9IGF0dHItPnZhbHVlKCk7Ci0gICAgICAgIGludmFsaWRhdGVOb2RlTGlzdHNDYWNoZUFm
dGVyQXR0cmlidXRlQ2hhbmdlZCgpOwogICAgICAgICAvLyBGSVhNRTogSWYgd2UgYXJlIGFscmVh
ZHkgYXR0YWNoZWQsIHRoaXMgZG9lc24ndCBhY3R1YWxseSBjaGFuZ2UgdGhlIGZyYW1lJ3MgbmFt
ZS4KICAgICAgICAgLy8gRklYTUU6IElmIHdlIGFyZSBhbHJlYWR5IGF0dGFjaGVkLCB0aGlzIGRv
ZXNuJ3QgY2hlY2sgZm9yIGZyYW1lIG5hbWUKICAgICAgICAgLy8gY29uZmxpY3RzIGFuZCBnZW5l
cmF0ZSBhIHVuaXF1ZSBmcmFtZSBuYW1lLgpJbmRleDogU291cmNlL1dlYkNvcmUvaHRtbC9IVE1M
SUZyYW1lRWxlbWVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvaHRtbC9IVE1M
SUZyYW1lRWxlbWVudC5jcHAJKHJldmlzaW9uIDEwMjk3MykKKysrIFNvdXJjZS9XZWJDb3JlL2h0
bWwvSFRNTElGcmFtZUVsZW1lbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC04NCw3ICs4NCw2IEBA
IHZvaWQgSFRNTElGcmFtZUVsZW1lbnQ6OnBhcnNlTWFwcGVkQXR0cmkKICAgICAgICAgICAgIGRv
Y3VtZW50LT5hZGRFeHRyYU5hbWVkSXRlbShuZXdOYW1lKTsKICAgICAgICAgfQogICAgICAgICBt
X25hbWUgPSBuZXdOYW1lOwotICAgICAgICBpbnZhbGlkYXRlTm9kZUxpc3RzQ2FjaGVBZnRlckF0
dHJpYnV0ZUNoYW5nZWQoKTsKICAgICB9IGVsc2UgaWYgKGF0dHItPm5hbWUoKSA9PSBmcmFtZWJv
cmRlckF0dHIpIHsKICAgICAgICAgLy8gRnJhbWUgYm9yZGVyIGRvZXNuJ3QgcmVhbGx5IG1hdGNo
IHRoZSBIVE1MNCBzcGVjIGRlZmluaXRpb24gZm9yIGlmcmFtZXMuICBJdCBzaW1wbHkgYWRkcwog
ICAgICAgICAvLyBhIHByZXNlbnRhdGlvbmFsIGhpbnQgdGhhdCB0aGUgYm9yZGVyIHNob3VsZCBi
ZSBvZmYgaWYgc2V0IHRvIHplcm8uCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbWFn
ZUVsZW1lbnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEltYWdl
RWxlbWVudC5jcHAJKHJldmlzaW9uIDEwMjk3MykKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRN
TEltYWdlRWxlbWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE0MSw3ICsxNDEsNiBAQCB2b2lk
IEhUTUxJbWFnZUVsZW1lbnQ6OnBhcnNlTWFwcGVkQXR0cmliCiAgICAgICAgICAgICBkb2N1bWVu
dC0+YWRkTmFtZWRJdGVtKG5ld05hbWUpOwogICAgICAgICB9CiAgICAgICAgIG1fbmFtZSA9IG5l
d05hbWU7Ci0gICAgICAgIGludmFsaWRhdGVOb2RlTGlzdHNDYWNoZUFmdGVyQXR0cmlidXRlQ2hh
bmdlZCgpOwogICAgIH0gZWxzZSBpZiAoaXNJZEF0dHJpYnV0ZU5hbWUoYXR0ci0+bmFtZSgpKSkg
ewogICAgICAgICBjb25zdCBBdG9taWNTdHJpbmcmIG5ld0lkID0gYXR0ci0+dmFsdWUoKTsKICAg
ICAgICAgaWYgKGluRG9jdW1lbnQoKSAmJiBkb2N1bWVudCgpLT5pc0hUTUxEb2N1bWVudCgpKSB7
CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNYXBFbGVtZW50LmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNYXBFbGVtZW50LmNwcAkocmV2aXNpb24gMTAy
OTczKQorKysgU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWFwRWxlbWVudC5jcHAJKHdvcmtpbmcg
Y29weSkKQEAgLTEyMCw4ICsxMjAsNiBAQCB2b2lkIEhUTUxNYXBFbGVtZW50OjpwYXJzZU1hcHBl
ZEF0dHJpYnV0CiAgICAgICAgIGlmIChpbkRvY3VtZW50KCkpCiAgICAgICAgICAgICB0cmVlU2Nv
cGUoKS0+YWRkSW1hZ2VNYXAodGhpcyk7CiAKLSAgICAgICAgaWYgKGF0dHJOYW1lID09IG5hbWVB
dHRyKQotICAgICAgICAgICAgaW52YWxpZGF0ZU5vZGVMaXN0c0NhY2hlQWZ0ZXJBdHRyaWJ1dGVD
aGFuZ2VkKCk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKSW5kZXg6IFNvdXJjZS9XZWJDb3Jl
L2h0bWwvSFRNTE1ldGFFbGVtZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9o
dG1sL0hUTUxNZXRhRWxlbWVudC5jcHAJKHJldmlzaW9uIDEwMjk3MykKKysrIFNvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTE1ldGFFbGVtZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDksNyArNDks
NyBAQCB2b2lkIEhUTUxNZXRhRWxlbWVudDo6cGFyc2VNYXBwZWRBdHRyaWJ1CiAgICAgZWxzZSBp
ZiAoYXR0ci0+bmFtZSgpID09IGNvbnRlbnRBdHRyKQogICAgICAgICBwcm9jZXNzKCk7CiAgICAg
ZWxzZSBpZiAoYXR0ci0+bmFtZSgpID09IG5hbWVBdHRyKSB7Ci0gICAgICAgIGludmFsaWRhdGVO
b2RlTGlzdHNDYWNoZUFmdGVyQXR0cmlidXRlQ2hhbmdlZCgpOworICAgICAgICAvLyBEbyBub3Ro
aW5nCiAgICAgfSBlbHNlCiAgICAgICAgIEhUTUxFbGVtZW50OjpwYXJzZU1hcHBlZEF0dHJpYnV0
ZShhdHRyKTsKIH0KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE9iamVjdEVsZW1lbnQu
Y3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE9iamVjdEVsZW1lbnQu
Y3BwCShyZXZpc2lvbiAxMDI5NzMpCisrKyBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxPYmplY3RF
bGVtZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTIyLDcgKzEyMiw2IEBAIHZvaWQgSFRNTE9i
amVjdEVsZW1lbnQ6OnBhcnNlTWFwcGVkQXR0cmkKICAgICAgICAgICAgIGRvY3VtZW50LT5hZGRO
YW1lZEl0ZW0obmV3TmFtZSk7CiAgICAgICAgIH0KICAgICAgICAgbV9uYW1lID0gbmV3TmFtZTsK
LSAgICAgICAgaW52YWxpZGF0ZU5vZGVMaXN0c0NhY2hlQWZ0ZXJBdHRyaWJ1dGVDaGFuZ2VkKCk7
CiAgICAgfSBlbHNlIGlmIChhdHRyLT5uYW1lKCkgPT0gYm9yZGVyQXR0cikKICAgICAgICAgYXBw
bHlCb3JkZXJBdHRyaWJ1dGUoYXR0cik7CiAgICAgZWxzZSBpZiAoaXNJZEF0dHJpYnV0ZU5hbWUo
YXR0ci0+bmFtZSgpKSkgewpJbmRleDogU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MUGFyYW1FbGVt
ZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxQYXJhbUVsZW1l
bnQuY3BwCShyZXZpc2lvbiAxMDI5NzMpCisrKyBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxQYXJh
bUVsZW1lbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC01Nyw3ICs1Nyw2IEBAIHZvaWQgSFRNTFBh
cmFtRWxlbWVudDo6cGFyc2VNYXBwZWRBdHRyaWIKICAgICAgICAgbV9uYW1lID0gYXR0ci0+dmFs
dWUoKTsKICAgICB9IGVsc2UgaWYgKGF0dHItPm5hbWUoKSA9PSBuYW1lQXR0cikgewogICAgICAg
ICBtX25hbWUgPSBhdHRyLT52YWx1ZSgpOwotICAgICAgICBpbnZhbGlkYXRlTm9kZUxpc3RzQ2Fj
aGVBZnRlckF0dHJpYnV0ZUNoYW5nZWQoKTsKICAgICB9IGVsc2UgaWYgKGF0dHItPm5hbWUoKSA9
PSB2YWx1ZUF0dHIpIHsKICAgICAgICAgbV92YWx1ZSA9IGF0dHItPnZhbHVlKCk7CiAgICAgfSBl
bHNlCkluZGV4OiBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVz
dHMvQ2hhbmdlTG9nCShyZXZpc2lvbiAxMDMwNDMpCisrKyBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJ
KHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwxNSBAQAorMjAxMS0xMi0xNiAgUnlvc3VrZSBOaXdh
ICA8cm5pd2FAd2Via2l0Lm9yZz4KKworICAgICAgICBpbnZhbGlkYXRlTm9kZUxpc3RzQ2FjaGVB
ZnRlckF0dHJpYnV0ZUNoYW5nZWQgaGFzIHRvbyBtYW55IGNhbGxlcnMKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTc0NjkyCisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIGEgcmVncmVzc2lvbiB0ZXN0IGZv
ciBzZXR0aW5nIEF0dHIncyB2YWx1ZS4gV2ViS2l0IHNob3VsZCBpbnZhbGlkYXRlIHRoZSBjYWNo
ZSBhcyBuZWVkZWQuCisKKyAgICAgICAgKiBmYXN0L2RvbS9BdHRyL2ludmFsaWRhdGUtbm9kZWxp
c3QtYWZ0ZXItYXR0ci1zZXR2YWx1ZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZh
c3QvZG9tL0F0dHIvaW52YWxpZGF0ZS1ub2RlbGlzdC1hZnRlci1hdHRyLXNldHZhbHVlLmh0bWw6
IEFkZGVkLgorCiAyMDExLTEyLTE2ICBIYWppbWUgTW9ycml0YSA8bW9ycml0YUBjaHJvbWl1bS5v
cmc+CiAKICAgICAgICAgTWFya2luZyBzb21lIGFzIGZhaWwuCkluZGV4OiBMYXlvdXRUZXN0cy9m
YXN0L2RvbS9BdHRyL2ludmFsaWRhdGUtbm9kZWxpc3QtYWZ0ZXItYXR0ci1zZXR2YWx1ZS1leHBl
Y3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9kb20vQXR0ci9pbnZhbGlk
YXRlLW5vZGVsaXN0LWFmdGVyLWF0dHItc2V0dmFsdWUtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAw
KQorKysgTGF5b3V0VGVzdHMvZmFzdC9kb20vQXR0ci9pbnZhbGlkYXRlLW5vZGVsaXN0LWFmdGVy
LWF0dHItc2V0dmFsdWUtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDEyIEBA
CitUaGlzIHRlc3RzIHNldHRpbmcgdGhlIHZhbHVlIG9mIGFuIGF0dHJpYnV0ZSBub2RlIGFmdGVy
IGNhY2hpbmcgY2hpbGROb2RlcyBvZiB0aGUgYXR0cmlidXRlIG5vZGUuCitUaGUgY2FjaGUgc2hv
dWxkIGJlIGNsZWFyZWQgYW5kIGNoaWxkTm9kZXNbMF0uZGF0YSBzaG91bGQgcmV0dXJuIHRoZSBu
ZXcgdmFsdWUuCitZb3Ugc2hvdWxkIHNlZSBQQVNTIGJlbG93OgorCitQQVNTIG5hbWVBdHRyTm9k
ZS5jaGlsZE5vZGVzLmxlbmd0aCBpcyAxCitQQVNTIG5hbWVBdHRyTm9kZS5jaGlsZE5vZGVzWzBd
IGlzIG9sZFZhbHVlCitQQVNTIG5hbWVBdHRyTm9kZS5jaGlsZE5vZGVzWzBdLmRhdGEgaXMgIm9s
ZE5hbWUiCisKK1BBU1MgbmFtZUF0dHJOb2RlLnZhbHVlID0gJ25ld05hbWUnOyBuYW1lQXR0ck5v
ZGUudmFsdWUgaXMgIm5ld05hbWUiCitQQVNTIG5hbWVBdHRyTm9kZS5jaGlsZE5vZGVzWzBdIGlz
IG5vdCBvbGRWYWx1ZQorUEFTUyBuYW1lQXR0ck5vZGUuY2hpbGROb2Rlc1swXS5kYXRhIGlzICJu
ZXdOYW1lIgorCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2RvbS9BdHRyL2ludmFsaWRhdGUtbm9k
ZWxpc3QtYWZ0ZXItYXR0ci1zZXR2YWx1ZS5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3Rz
L2Zhc3QvZG9tL0F0dHIvaW52YWxpZGF0ZS1ub2RlbGlzdC1hZnRlci1hdHRyLXNldHZhbHVlLmh0
bWwJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9mYXN0L2RvbS9BdHRyL2ludmFsaWRhdGUt
bm9kZWxpc3QtYWZ0ZXItYXR0ci1zZXR2YWx1ZS5odG1sCShyZXZpc2lvbiAwKQpAQCAtMCwwICsx
LDI5IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGJvZHk+Cis8cD5UaGlzIHRlc3RzIHNl
dHRpbmcgdGhlIHZhbHVlIG9mIGFuIGF0dHJpYnV0ZSBub2RlIGFmdGVyIGNhY2hpbmcgY2hpbGRO
b2RlcyBvZiB0aGUgYXR0cmlidXRlIG5vZGUuPGJyPgorVGhlIGNhY2hlIHNob3VsZCBiZSBjbGVh
cmVkIGFuZCBjaGlsZE5vZGVzWzBdLmRhdGEgc2hvdWxkIHJldHVybiB0aGUgbmV3IHZhbHVlLjxi
cj4KK1lvdSBzaG91bGQgc2VlIFBBU1MgYmVsb3c6PC9wPgorPGRpdiBpZD0iY29uc29sZSI+PC9k
aXY+Cis8c2NyaXB0IHNyYz0iLi4vLi4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3Nj
cmlwdD4KKzxzY3JpcHQ+CisKK3ZhciBlbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgn
ZGl2Jyk7Cit2YXIgbmFtZUF0dHJOb2RlID0gZG9jdW1lbnQuY3JlYXRlQXR0cmlidXRlKCduYW1l
Jyk7Cit2YXIgb2xkVmFsdWUgPSBkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZSgnb2xkTmFtZScpOwor
bmFtZUF0dHJOb2RlLmFwcGVuZENoaWxkKG9sZFZhbHVlKTsKK2VsZW1lbnQuc2V0QXR0cmlidXRl
Tm9kZShuYW1lQXR0ck5vZGUpOworZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChlbGVtZW50KTsK
Kworc2hvdWxkQmUoIm5hbWVBdHRyTm9kZS5jaGlsZE5vZGVzLmxlbmd0aCIsICcxJyk7CitzaG91
bGRCZSgnbmFtZUF0dHJOb2RlLmNoaWxkTm9kZXNbMF0nLCAnb2xkVmFsdWUnKTsKK3Nob3VsZEJl
KCduYW1lQXR0ck5vZGUuY2hpbGROb2Rlc1swXS5kYXRhJywgJyJvbGROYW1lIicpOworCitkZWJ1
ZygnJyk7CitzaG91bGRCZSgibmFtZUF0dHJOb2RlLnZhbHVlID0gJ25ld05hbWUnOyBuYW1lQXR0
ck5vZGUudmFsdWUiLCAnIm5ld05hbWUiJyk7CitzaG91bGROb3RCZSgibmFtZUF0dHJOb2RlLmNo
aWxkTm9kZXNbMF0iLCAnb2xkVmFsdWUnKTsKK3Nob3VsZEJlKCJuYW1lQXR0ck5vZGUuY2hpbGRO
b2Rlc1swXS5kYXRhIiwgJyJuZXdOYW1lIicpOworCis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRt
bD4K
</data>
<flag name="review"
          id="119658"
          type_id="1"
          status="+"
          setter="sam"
    />
          </attachment>
      

    </bug>

</bugzilla>