<?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>91277</bug_id>
          
          <creation_ts>2012-07-13 14:06:25 -0700</creation_ts>
          <short_desc>NodeLists should not invalidate on irreleavnt attribute changes</short_desc>
          <delta_ts>2012-07-13 17:44:38 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</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>89919</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Ryosuke Niwa">rniwa</reporter>
          <assigned_to name="Ryosuke Niwa">rniwa</assigned_to>
          <cc>andersca</cc>
    
    <cc>arko</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>kling</cc>
    
    <cc>koivisto</cc>
    
    <cc>ojan</cc>
    
    <cc>sam</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>669400</commentid>
    <comment_count>0</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2012-07-13 14:06:25 -0700</bug_when>
    <thetext>Merge invalidateNodeListsCacheAfterAttributeChanged and invalidateNodeListsCacheAfterChildrenChanged</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>669421</commentid>
    <comment_count>1</comment_count>
      <attachid>152330</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2012-07-13 14:33:29 -0700</bug_when>
    <thetext>Created attachment 152330
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>669470</commentid>
    <comment_count>2</comment_count>
      <attachid>152330</attachid>
    <who name="Ojan Vafai">ojan</who>
    <bug_when>2012-07-13 15:04:10 -0700</bug_when>
    <thetext>Comment on attachment 152330
Patch

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

&gt; Source/WebCore/dom/ContainerNode.cpp:683
&gt; +    invalidateNodeListCachesInAncestors(0, 0);

Can you create local variables for these 0&apos;s so that it&apos;s clear what the arguments are?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>669475</commentid>
    <comment_count>3</comment_count>
      <attachid>152330</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2012-07-13 15:06:44 -0700</bug_when>
    <thetext>Comment on attachment 152330
Patch

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

Thanks for the review!

&gt;&gt; Source/WebCore/dom/ContainerNode.cpp:683
&gt;&gt; +    invalidateNodeListCachesInAncestors(0, 0);
&gt; 
&gt; Can you create local variables for these 0&apos;s so that it&apos;s clear what the arguments are?

Oh oops, I meant to add default values of 0 so that we can omit those 0s. Will fix before landing it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>669516</commentid>
    <comment_count>4</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2012-07-13 15:44:50 -0700</bug_when>
    <thetext>Committed r122637: &lt;http://trac.webkit.org/changeset/122637&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>669629</commentid>
    <comment_count>5</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2012-07-13 17:44:38 -0700</bug_when>
    <thetext>Removed an erroneous assertion in http://trac.webkit.org/changeset/122649.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>152330</attachid>
            <date>2012-07-13 14:33:29 -0700</date>
            <delta_ts>2012-07-13 15:06:44 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-91277-20120713143656.patch</filename>
            <type>text/plain</type>
            <size>17698</size>
            <attacher name="Ryosuke Niwa">rniwa</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDEyMjYzMSkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDUzIEBACisyMDEyLTA3LTEzICBSeW9zdWtl
IE5pd2EgIDxybml3YUB3ZWJraXQub3JnPgorCisgICAgICAgIE5vZGVMaXN0cyBzaG91bGQgbm90
IGludmFsaWRhdGUgb24gaXJyZWxlYXZudCBhdHRyaWJ1dGUgY2hhbmdlcworICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTEyNzcKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBFeHBsaWNpdGVseSBjaGVjayB0aGUg
aW52YWxpZGF0aW9uIHR5cGUgYW5kIHRoZSBjaGFuZ2VkIGF0dHJpYnV0ZSBpbiBOb2RlTGlzdE5v
ZGVEYXRhOjppbnZhbGlkYXRlQ2FjaGVzCisgICAgICAgIGFuZCBFbGVtZW50UmFyZURhdGE6OmNs
ZWFySFRNTENvbGxlY3Rpb25DYWNoZXMgdG8gb25seSBpbnZhbGlkYXRlIG5vZGUgbGlzdHMgYWZm
ZWN0ZWQgYnkgdGhlIGNoYW5nZS4KKworICAgICAgICBBbHNvIG1lcmdlZCBpbnZhbGlkYXRlTm9k
ZUxpc3RzQ2FjaGVBZnRlckF0dHJpYnV0ZUNoYW5nZWQgYW5kIGludmFsaWRhdGVOb2RlTGlzdHND
YWNoZUFmdGVyQ2hpbGRyZW5DaGFuZ2VkCisgICAgICAgIGFzIGludmFsaWRhdGVOb2RlTGlzdENh
Y2hlc0luQW5jZXN0b3JzIHNpbmNlIHRoZXkncmUgYWxtb3N0IGlkZW50aWNhbCBhZnRlciByMTIy
NDk4LgorCisgICAgICAgIEluIGFkZGl0aW9uLCBtb3ZlZCBzaG91bGRJbnZhbGlkYXRlTm9kZUxp
c3RGb3JUeXBlIGZyb20gRG9jdW1lbnQuY3BwIHRvIER5bmFtaWNOb2RlTGlzdC5oIGFuZCByZW5h
bWVkIGl0IHRvCisgICAgICAgIHNob3VsZEludmFsaWRhdGVUeXBlT25BdHRyaWJ1dGVDaGFuZ2Ug
c2luY2UgaXQgbmVlZHMgdG8gY2FsbGVkIGluIE5vZGUuY3BwIGFuZCBFbGVtZW50UmFyZURhdGEu
aC4KKworICAgICAgICAqIGRvbS9BdHRyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkF0dHI6OnNl
dFZhbHVlKToKKyAgICAgICAgKFdlYkNvcmU6OkF0dHI6OmNoaWxkcmVuQ2hhbmdlZCk6CisgICAg
ICAgICogZG9tL0NvbnRhaW5lck5vZGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q29udGFpbmVy
Tm9kZTo6Y2hpbGRyZW5DaGFuZ2VkKToKKyAgICAgICAgKiBkb20vRG9jdW1lbnQuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6OnJlZ2lzdGVyTm9kZUxpc3RDYWNoZSk6IENhbGxzIGlz
Um9vdGVkQXREb2N1bWVudCgpIGluc3RlYWQgb2YgZGlyZWN0bHkgY29tcGFyaW5nCisgICAgICAg
IHRoZSB2YWx1ZSBvZiBOb2RlTGlzdFJvb3RUeXBlIGluIG9yZGVyIHRvIHByZXBhcmUgZm9yIHRo
ZSBidWcgODAyNjkuCisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6dW5yZWdpc3Rlck5vZGVM
aXN0Q2FjaGUpOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmUpOiBzaG91bGRJbnZhbGlkYXRlTm9k
ZUxpc3RGb3JUeXBlIGlzIG1vdmVkIHRvIER5bmFtaWNOb2RlTGlzdC5oCisgICAgICAgIChXZWJD
b3JlOjpEb2N1bWVudDo6c2hvdWxkSW52YWxpZGF0ZU5vZGVMaXN0Q2FjaGVzKToKKyAgICAgICAg
KiBkb20vRHluYW1pY05vZGVMaXN0Lmg6CisgICAgICAgIChEeW5hbWljTm9kZUxpc3RDYWNoZUJh
c2UpOgorICAgICAgICAoV2ViQ29yZTo6RHluYW1pY05vZGVMaXN0Q2FjaGVCYXNlOjpzaG91bGRJ
bnZhbGlkYXRlVHlwZU9uQXR0cmlidXRlQ2hhbmdlKTogTW92ZWQgZnJvbSBEb2N1bWVudC5jcHAu
CisgICAgICAgICogZG9tL0VsZW1lbnQuY3BwOiAKKyAgICAgICAgKFdlYkNvcmU6OkVsZW1lbnQ6
OmF0dHJpYnV0ZUNoYW5nZWQpOgorICAgICAgICAqIGRvbS9FbGVtZW50UmFyZURhdGEuaDoKKyAg
ICAgICAgKFdlYkNvcmU6OkVsZW1lbnRSYXJlRGF0YTo6Y2xlYXJIVE1MQ29sbGVjdGlvbkNhY2hl
cyk6IFRha2VzIGNvbnN0IFF1YWxpZmllZE5hbWUqIHRvIGNvbXBhcmUgYWdhaW5zdAorICAgICAg
ICB0aGUgaW52YWxpZGF0aW9uIHR5cGUgb2YgSFRNTCBjb2xsZWN0aW9ucyB2aWEgc2hvdWxkSW52
YWxpZGF0ZVR5cGVPbkF0dHJpYnV0ZUNoYW5nZS4KKyAgICAgICAgKiBkb20vTm9kZS5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpOb2RlOjppbnZhbGlkYXRlTm9kZUxpc3RDYWNoZXNJbkFuY2VzdG9y
cyk6IE1lcmdlZCBpbnZhbGlkYXRlTm9kZUxpc3RDYWNoZXNJbkFuY2VzdG9ycyBhbmQKKyAgICAg
ICAgaW52YWxpZGF0ZU5vZGVMaXN0c0NhY2hlQWZ0ZXJDaGlsZHJlbkNoYW5nZWQuIEFsc28gcGFz
cyBhdHRyTmFtZSB0byBjbGVhckhUTUxDb2xsZWN0aW9uQ2FjaGVzLgorICAgICAgICAoV2ViQ29y
ZTo6Tm9kZUxpc3RzTm9kZURhdGE6OmludmFsaWRhdGVDYWNoZXMpOiBDb21wYXJlcyBhdHRyTmFt
ZSBhZ2FpbnN0IHRoZSBpbnZhbGlkYXRpb24gdHlwZSBvZgorICAgICAgICBub2RlIGxpc3RzIHZp
YSBzaG91bGRJbnZhbGlkYXRlVHlwZU9uQXR0cmlidXRlQ2hhbmdlLgorICAgICAgICAoV2ViQ29y
ZSk6CisgICAgICAgICogZG9tL05vZGUuaDoKKyAgICAgICAgKE5vZGUpOgorICAgICAgICAqIGRv
bS9Ob2RlUmFyZURhdGEuaDoKKyAgICAgICAgKFdlYkNvcmU6Ok5vZGVSYXJlRGF0YTo6ZW5zdXJl
Tm9kZUxpc3RzKTogTWVyZ2VkIE5vZGVSYXJlRGF0YTo6Y3JlYXRlTm9kZUxpc3RzLgorICAgICAg
ICAoV2ViQ29yZTo6Tm9kZVJhcmVEYXRhOjpjbGVhckNoaWxkTm9kZUxpc3RDYWNoZSk6IE1vdmVk
IGZyb20gTm9kZS5jcHAuCisgICAgICAgIChOb2RlUmFyZURhdGEpOgorICAgICAgICAqIGh0bWwv
SFRNTENvbGxlY3Rpb24uaDoKKyAgICAgICAgKEhUTUxDb2xsZWN0aW9uQ2FjaGVCYXNlKToKKwog
MjAxMi0wNy0xMyAgUmF5bW9uZCBUb3kgIDxydG95QGdvb2dsZS5jb20+CiAKICAgICAgICAgRGVs
YXlOb2RlIGRvZXNuJ3Qgd29yayBpZiBkZWxheVRpbWUudmFsdWUgPT0gZGVsYXlUaW1lLm1heFZh
bHVlCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9kb20vQXR0ci5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYkNvcmUvZG9tL0F0dHIuY3BwCShyZXZpc2lvbiAxMjI2MjMpCisrKyBTb3VyY2UvV2Vi
Q29yZS9kb20vQXR0ci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTExOSw3ICsxMTksNyBAQCB2b2lk
IEF0dHI6OnNldFZhbHVlKGNvbnN0IEF0b21pY1N0cmluZyYgCiAgICAgY3JlYXRlVGV4dENoaWxk
KCk7CiAgICAgbV9pZ25vcmVDaGlsZHJlbkNoYW5nZWQtLTsKIAotICAgIGludmFsaWRhdGVOb2Rl
TGlzdHNDYWNoZUFmdGVyQXR0cmlidXRlQ2hhbmdlZChtX25hbWUsIG1fZWxlbWVudCk7CisgICAg
aW52YWxpZGF0ZU5vZGVMaXN0Q2FjaGVzSW5BbmNlc3RvcnMoJm1fbmFtZSwgbV9lbGVtZW50KTsK
IH0KIAogdm9pZCBBdHRyOjpzZXRWYWx1ZShjb25zdCBBdG9taWNTdHJpbmcmIHZhbHVlLCBFeGNl
cHRpb25Db2RlJikKQEAgLTE2Miw3ICsxNjIsNyBAQCB2b2lkIEF0dHI6OmNoaWxkcmVuQ2hhbmdl
ZChib29sLCBOb2RlKiwgCiAgICAgaWYgKG1faWdub3JlQ2hpbGRyZW5DaGFuZ2VkID4gMCkKICAg
ICAgICAgcmV0dXJuOwogCi0gICAgaW52YWxpZGF0ZU5vZGVMaXN0c0NhY2hlQWZ0ZXJBdHRyaWJ1
dGVDaGFuZ2VkKHF1YWxpZmllZE5hbWUoKSwgbV9lbGVtZW50KTsKKyAgICBpbnZhbGlkYXRlTm9k
ZUxpc3RDYWNoZXNJbkFuY2VzdG9ycygmcXVhbGlmaWVkTmFtZSgpLCBtX2VsZW1lbnQpOwogCiAg
ICAgLy8gRklYTUU6IFdlIHNob3VsZCBpbmNsdWRlIGVudGl0eSByZWZlcmVuY2VzIGluIHRoZSB2
YWx1ZQogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9kb20vQ29udGFpbmVyTm9kZS5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYkNvcmUvZG9tL0NvbnRhaW5lck5vZGUuY3BwCShyZXZpc2lvbiAx
MjI2MjMpCisrKyBTb3VyY2UvV2ViQ29yZS9kb20vQ29udGFpbmVyTm9kZS5jcHAJKHdvcmtpbmcg
Y29weSkKQEAgLTY4MCw3ICs2ODAsNyBAQCB2b2lkIENvbnRhaW5lck5vZGU6OmNoaWxkcmVuQ2hh
bmdlZChib29sCiAgICAgZG9jdW1lbnQoKS0+aW5jRE9NVHJlZVZlcnNpb24oKTsKICAgICBpZiAo
IWNoYW5nZWRCeVBhcnNlciAmJiBjaGlsZENvdW50RGVsdGEpCiAgICAgICAgIGRvY3VtZW50KCkt
PnVwZGF0ZVJhbmdlc0FmdGVyQ2hpbGRyZW5DaGFuZ2VkKHRoaXMpOwotICAgIGludmFsaWRhdGVO
b2RlTGlzdHNDYWNoZUFmdGVyQ2hpbGRyZW5DaGFuZ2VkKCk7CisgICAgaW52YWxpZGF0ZU5vZGVM
aXN0Q2FjaGVzSW5BbmNlc3RvcnMoMCwgMCk7CiB9CiAKIHZvaWQgQ29udGFpbmVyTm9kZTo6Y2xv
bmVDaGlsZE5vZGVzKENvbnRhaW5lck5vZGUgKmNsb25lKQpJbmRleDogU291cmNlL1dlYkNvcmUv
ZG9tL0RvY3VtZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1l
bnQuY3BwCShyZXZpc2lvbiAxMjI2MjMpCisrKyBTb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQu
Y3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zODY2LDcgKzM4NjYsNyBAQCB2b2lkIERvY3VtZW50Ojpy
ZWdpc3Rlck5vZGVMaXN0Q2FjaGUoRHluCiAgICAgaWYgKGxpc3QtPnR5cGUoKSAhPSBJbnZhbGlk
Q29sbGVjdGlvblR5cGUpCiAgICAgICAgIG1fbm9kZUxpc3RDb3VudHNbSW52YWxpZGF0ZU9uSWRO
YW1lQXR0ckNoYW5nZV0rKzsKICAgICBtX25vZGVMaXN0Q291bnRzW2xpc3QtPmludmFsaWRhdGlv
blR5cGUoKV0rKzsKLSAgICBpZiAobGlzdC0+cm9vdFR5cGUoKSA9PSBOb2RlTGlzdElzUm9vdGVk
QXREb2N1bWVudCkKKyAgICBpZiAobGlzdC0+aXNSb290ZWRBdERvY3VtZW50KCkpCiAgICAgICAg
IG1fbGlzdHNJbnZhbGlkYXRlZEF0RG9jdW1lbnQuYWRkKGxpc3QpOwogfQogCkBAIC0zODc1LDQ1
ICszODc1LDE3IEBAIHZvaWQgRG9jdW1lbnQ6OnVucmVnaXN0ZXJOb2RlTGlzdENhY2hlKEQKICAg
ICBpZiAobGlzdC0+dHlwZSgpICE9IEludmFsaWRDb2xsZWN0aW9uVHlwZSkKICAgICAgICAgbV9u
b2RlTGlzdENvdW50c1tJbnZhbGlkYXRlT25JZE5hbWVBdHRyQ2hhbmdlXS0tOwogICAgIG1fbm9k
ZUxpc3RDb3VudHNbbGlzdC0+aW52YWxpZGF0aW9uVHlwZSgpXS0tOwotICAgIGlmIChsaXN0LT5y
b290VHlwZSgpID09IE5vZGVMaXN0SXNSb290ZWRBdERvY3VtZW50KSB7CisgICAgaWYgKGxpc3Qt
PmlzUm9vdGVkQXREb2N1bWVudCgpKSB7CiAgICAgICAgIEFTU0VSVChtX2xpc3RzSW52YWxpZGF0
ZWRBdERvY3VtZW50LmNvbnRhaW5zKGxpc3QpKTsKICAgICAgICAgbV9saXN0c0ludmFsaWRhdGVk
QXREb2N1bWVudC5yZW1vdmUobGlzdCk7CiAgICAgfQogfQogCi1zdGF0aWMgQUxXQVlTX0lOTElO
RSBib29sIHNob3VsZEludmFsaWRhdGVOb2RlTGlzdEZvclR5cGUoTm9kZUxpc3RJbnZhbGlkYXRp
b25UeXBlIHR5cGUsIGNvbnN0IFF1YWxpZmllZE5hbWUmIGF0dHJOYW1lKQotewotICAgIHN3aXRj
aCAodHlwZSkgewotICAgIGNhc2UgSW52YWxpZGF0ZU9uQ2xhc3NBdHRyQ2hhbmdlOgotICAgICAg
ICByZXR1cm4gYXR0ck5hbWUgPT0gY2xhc3NBdHRyOwotICAgIGNhc2UgSW52YWxpZGF0ZU9uTmFt
ZUF0dHJDaGFuZ2U6Ci0gICAgICAgIHJldHVybiBhdHRyTmFtZSA9PSBuYW1lQXR0cjsKLSAgICBj
YXNlIEludmFsaWRhdGVPbklkTmFtZUF0dHJDaGFuZ2U6Ci0gICAgICAgIHJldHVybiBhdHRyTmFt
ZSA9PSBpZEF0dHIgfHwgYXR0ck5hbWUgPT0gbmFtZUF0dHI7Ci0gICAgY2FzZSBJbnZhbGlkYXRl
T25Gb3JBdHRyQ2hhbmdlOgotICAgICAgICByZXR1cm4gYXR0ck5hbWUgPT0gZm9yQXR0cjsKLSAg
ICBjYXNlIEludmFsaWRhdGVGb3JGb3JtQ29udHJvbHM6Ci0gICAgICAgIHJldHVybiBhdHRyTmFt
ZSA9PSBuYW1lQXR0ciB8fCBhdHRyTmFtZSA9PSBpZEF0dHIgfHwgYXR0ck5hbWUgPT0gZm9yQXR0
ciB8fCBhdHRyTmFtZSA9PSB0eXBlQXR0cjsKLSAgICBjYXNlIEludmFsaWRhdGVPbkhSZWZBdHRy
Q2hhbmdlOgotICAgICAgICByZXR1cm4gYXR0ck5hbWUgPT0gaHJlZkF0dHI7Ci0gICAgY2FzZSBJ
bnZhbGlkYXRlT25JdGVtQXR0ckNoYW5nZToKLSNpZiBFTkFCTEUoTUlDUk9EQVRBKQotICAgICAg
ICByZXR1cm4gYXR0ck5hbWUgPT0gaXRlbXNjb3BlQXR0ciB8fCBhdHRyTmFtZSA9PSBpdGVtcHJv
cEF0dHIgfHwgYXR0ck5hbWUgPT0gaXRlbXR5cGVBdHRyOwotI2VuZGlmIC8vIEludGVudGlvbmFs
bHkgZmFsbCB0aHJvdWdoCi0gICAgY2FzZSBEb05vdEludmFsaWRhdGVPbkF0dHJpYnV0ZUNoYW5n
ZXM6Ci0gICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwotICAgICAgICByZXR1cm4gZmFsc2U7
Ci0gICAgY2FzZSBJbnZhbGlkYXRlT25BbnlBdHRyQ2hhbmdlOgotICAgICAgICByZXR1cm4gdHJ1
ZTsKLSAgICB9Ci0gICAgcmV0dXJuIGZhbHNlOwotfQotCiBib29sIERvY3VtZW50OjpzaG91bGRJ
bnZhbGlkYXRlTm9kZUxpc3RDYWNoZXMoY29uc3QgUXVhbGlmaWVkTmFtZSogYXR0ck5hbWUpIGNv
bnN0CiB7CiAgICAgaWYgKGF0dHJOYW1lKSB7CiAgICAgICAgIGZvciAoaW50IHR5cGUgPSBEb05v
dEludmFsaWRhdGVPbkF0dHJpYnV0ZUNoYW5nZXMgKyAxOyB0eXBlIDwgbnVtTm9kZUxpc3RJbnZh
bGlkYXRpb25UeXBlczsgdHlwZSsrKSB7Ci0gICAgICAgICAgICBpZiAobV9ub2RlTGlzdENvdW50
c1t0eXBlXSAmJiBzaG91bGRJbnZhbGlkYXRlTm9kZUxpc3RGb3JUeXBlKHN0YXRpY19jYXN0PE5v
ZGVMaXN0SW52YWxpZGF0aW9uVHlwZT4odHlwZSksICphdHRyTmFtZSkpCisgICAgICAgICAgICBp
ZiAobV9ub2RlTGlzdENvdW50c1t0eXBlXSAmJiBEeW5hbWljTm9kZUxpc3RDYWNoZUJhc2U6OnNo
b3VsZEludmFsaWRhdGVUeXBlT25BdHRyaWJ1dGVDaGFuZ2Uoc3RhdGljX2Nhc3Q8Tm9kZUxpc3RJ
bnZhbGlkYXRpb25UeXBlPih0eXBlKSwgKmF0dHJOYW1lKSkKICAgICAgICAgICAgICAgICByZXR1
cm4gdHJ1ZTsKICAgICAgICAgfQogICAgICAgICByZXR1cm4gZmFsc2U7CkluZGV4OiBTb3VyY2Uv
V2ViQ29yZS9kb20vRHluYW1pY05vZGVMaXN0LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNv
cmUvZG9tL0R5bmFtaWNOb2RlTGlzdC5oCShyZXZpc2lvbiAxMjI2MjMpCisrKyBTb3VyY2UvV2Vi
Q29yZS9kb20vRHluYW1pY05vZGVMaXN0LmgJKHdvcmtpbmcgY29weSkKQEAgLTI2LDYgKzI2LDcg
QEAKIAogI2luY2x1ZGUgIkNvbGxlY3Rpb25UeXBlLmgiCiAjaW5jbHVkZSAiRG9jdW1lbnQuaCIK
KyNpbmNsdWRlICJIVE1MTmFtZXMuaCIKICNpbmNsdWRlICJOb2RlTGlzdC5oIgogI2luY2x1ZGUg
PHd0Zi9Gb3J3YXJkLmg+CiAjaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgpAQCAtNTcsMTMgKzU4LDEz
IEBAIHB1YmxpYzoKIAogcHVibGljOgogICAgIEFMV0FZU19JTkxJTkUgYm9vbCBpc1Jvb3RlZEF0
RG9jdW1lbnQoKSBjb25zdCB7IHJldHVybiBtX3Jvb3RlZEF0RG9jdW1lbnQ7IH0KLSAgICBBTFdB
WVNfSU5MSU5FIGJvb2wgc2hvdWxkSW52YWxpZGF0ZU9uQXR0cmlidXRlQ2hhbmdlKCkgY29uc3Qg
eyByZXR1cm4gbV9pbnZhbGlkYXRpb25UeXBlICE9IERvTm90SW52YWxpZGF0ZU9uQXR0cmlidXRl
Q2hhbmdlczsgfQotICAgIEFMV0FZU19JTkxJTkUgTm9kZUxpc3RSb290VHlwZSByb290VHlwZSgp
IHsgcmV0dXJuIG1fcm9vdGVkQXREb2N1bWVudCA/IE5vZGVMaXN0SXNSb290ZWRBdERvY3VtZW50
IDogTm9kZUxpc3RJc1Jvb3RlZEF0Tm9kZTsgfQogICAgIEFMV0FZU19JTkxJTkUgTm9kZUxpc3RJ
bnZhbGlkYXRpb25UeXBlIGludmFsaWRhdGlvblR5cGUoKSBjb25zdCB7IHJldHVybiBzdGF0aWNf
Y2FzdDxOb2RlTGlzdEludmFsaWRhdGlvblR5cGU+KG1faW52YWxpZGF0aW9uVHlwZSk7IH0KICAg
ICBBTFdBWVNfSU5MSU5FIENvbGxlY3Rpb25UeXBlIHR5cGUoKSBjb25zdCB7IHJldHVybiBzdGF0
aWNfY2FzdDxDb2xsZWN0aW9uVHlwZT4obV9jb2xsZWN0aW9uVHlwZSk7IH0KIAogICAgIHZvaWQg
aW52YWxpZGF0ZUNhY2hlKCkgY29uc3Q7CiAKKyAgICBzdGF0aWMgYm9vbCBzaG91bGRJbnZhbGlk
YXRlVHlwZU9uQXR0cmlidXRlQ2hhbmdlKE5vZGVMaXN0SW52YWxpZGF0aW9uVHlwZSwgY29uc3Qg
UXVhbGlmaWVkTmFtZSYpOworCiBwcm90ZWN0ZWQ6CiAgICAgQUxXQVlTX0lOTElORSBib29sIGlz
SXRlbUNhY2hlVmFsaWQoKSBjb25zdCB7IHJldHVybiBtX2lzSXRlbUNhY2hlVmFsaWQ7IH0KICAg
ICBBTFdBWVNfSU5MSU5FIE5vZGUqIGNhY2hlZEl0ZW0oKSBjb25zdCB7IHJldHVybiBtX2NhY2hl
ZEl0ZW07IH0KQEAgLTEwMSw2ICsxMDIsMzQgQEAgcHJpdmF0ZToKICAgICBjb25zdCB1bnNpZ25l
ZCBtX2NvbGxlY3Rpb25UeXBlIDogNTsKIH07CiAKK0FMV0FZU19JTkxJTkUgYm9vbCBEeW5hbWlj
Tm9kZUxpc3RDYWNoZUJhc2U6OnNob3VsZEludmFsaWRhdGVUeXBlT25BdHRyaWJ1dGVDaGFuZ2Uo
Tm9kZUxpc3RJbnZhbGlkYXRpb25UeXBlIHR5cGUsIGNvbnN0IFF1YWxpZmllZE5hbWUmIGF0dHJO
YW1lKQoreworICAgIHN3aXRjaCAodHlwZSkgeworICAgIGNhc2UgSW52YWxpZGF0ZU9uQ2xhc3NB
dHRyQ2hhbmdlOgorICAgICAgICByZXR1cm4gYXR0ck5hbWUgPT0gSFRNTE5hbWVzOjpjbGFzc0F0
dHI7CisgICAgY2FzZSBJbnZhbGlkYXRlT25OYW1lQXR0ckNoYW5nZToKKyAgICAgICAgcmV0dXJu
IGF0dHJOYW1lID09IEhUTUxOYW1lczo6bmFtZUF0dHI7CisgICAgY2FzZSBJbnZhbGlkYXRlT25J
ZE5hbWVBdHRyQ2hhbmdlOgorICAgICAgICByZXR1cm4gYXR0ck5hbWUgPT0gSFRNTE5hbWVzOjpp
ZEF0dHIgfHwgYXR0ck5hbWUgPT0gSFRNTE5hbWVzOjpuYW1lQXR0cjsKKyAgICBjYXNlIEludmFs
aWRhdGVPbkZvckF0dHJDaGFuZ2U6CisgICAgICAgIHJldHVybiBhdHRyTmFtZSA9PSBIVE1MTmFt
ZXM6OmZvckF0dHI7CisgICAgY2FzZSBJbnZhbGlkYXRlRm9yRm9ybUNvbnRyb2xzOgorICAgICAg
ICByZXR1cm4gYXR0ck5hbWUgPT0gSFRNTE5hbWVzOjpuYW1lQXR0ciB8fCBhdHRyTmFtZSA9PSBI
VE1MTmFtZXM6OmlkQXR0ciB8fCBhdHRyTmFtZSA9PSBIVE1MTmFtZXM6OmZvckF0dHIgfHwgYXR0
ck5hbWUgPT0gSFRNTE5hbWVzOjp0eXBlQXR0cjsKKyAgICBjYXNlIEludmFsaWRhdGVPbkhSZWZB
dHRyQ2hhbmdlOgorICAgICAgICByZXR1cm4gYXR0ck5hbWUgPT0gSFRNTE5hbWVzOjpocmVmQXR0
cjsKKyAgICBjYXNlIEludmFsaWRhdGVPbkl0ZW1BdHRyQ2hhbmdlOgorI2lmIEVOQUJMRShNSUNS
T0RBVEEpCisgICAgICAgIHJldHVybiBhdHRyTmFtZSA9PSBIVE1MTmFtZXM6Oml0ZW1zY29wZUF0
dHIgfHwgYXR0ck5hbWUgPT0gSFRNTE5hbWVzOjppdGVtcHJvcEF0dHIgfHwgYXR0ck5hbWUgPT0g
SFRNTE5hbWVzOjppdGVtdHlwZUF0dHI7CisjZW5kaWYgLy8gSW50ZW50aW9uYWxseSBmYWxsIHRo
cm91Z2gKKyAgICBjYXNlIERvTm90SW52YWxpZGF0ZU9uQXR0cmlidXRlQ2hhbmdlczoKKyAgICAg
ICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICBjYXNl
IEludmFsaWRhdGVPbkFueUF0dHJDaGFuZ2U6CisgICAgICAgIHJldHVybiB0cnVlOworICAgIH0K
KyAgICByZXR1cm4gZmFsc2U7Cit9CisKIGNsYXNzIER5bmFtaWNOb2RlTGlzdCA6IHB1YmxpYyBO
b2RlTGlzdCwgcHVibGljIER5bmFtaWNOb2RlTGlzdENhY2hlQmFzZSB7CiBwdWJsaWM6CiAgICAg
ZW51bSBOb2RlTGlzdFR5cGUgewpJbmRleDogU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuY3Bw
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmNwcAkocmV2aXNpb24g
MTIyNjIzKQorKysgU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC03MDUsNyArNzA1LDcgQEAgdm9pZCBFbGVtZW50OjphdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0
IEF0dAogICAgICAgICAgICAgc2V0TmVlZHNTdHlsZVJlY2FsYygpOwogICAgIH0KIAotICAgIGlu
dmFsaWRhdGVOb2RlTGlzdHNDYWNoZUFmdGVyQXR0cmlidXRlQ2hhbmdlZChhdHRyaWJ1dGUubmFt
ZSgpLCB0aGlzKTsKKyAgICBpbnZhbGlkYXRlTm9kZUxpc3RDYWNoZXNJbkFuY2VzdG9ycygmYXR0
cmlidXRlLm5hbWUoKSwgdGhpcyk7CiAKICAgICBpZiAoIUFYT2JqZWN0Q2FjaGU6OmFjY2Vzc2li
aWxpdHlFbmFibGVkKCkpCiAgICAgICAgIHJldHVybjsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2Rv
bS9FbGVtZW50UmFyZURhdGEuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9kb20vRWxl
bWVudFJhcmVEYXRhLmgJKHJldmlzaW9uIDEyMjYyMykKKysrIFNvdXJjZS9XZWJDb3JlL2RvbS9F
bGVtZW50UmFyZURhdGEuaAkod29ya2luZyBjb3B5KQpAQCAtNjYsMTQgKzY2LDE4IEBAIHB1Ymxp
YzoKICAgICAgICAgKCptX2NhY2hlZENvbGxlY3Rpb25zKVt0eXBlIC0gRmlyc3ROb2RlQ29sbGVj
dGlvblR5cGVdID0gMDsKICAgICB9CiAKLSAgICB2b2lkIGNsZWFySFRNTENvbGxlY3Rpb25DYWNo
ZXMoKQorICAgIHZvaWQgY2xlYXJIVE1MQ29sbGVjdGlvbkNhY2hlcyhjb25zdCBRdWFsaWZpZWRO
YW1lKiBhdHRyTmFtZSkKICAgICB7CiAgICAgICAgIGlmICghbV9jYWNoZWRDb2xsZWN0aW9ucykK
ICAgICAgICAgICAgIHJldHVybjsKIAorICAgICAgICBib29sIHNob3VsZElnbm9yZVR5cGUgPSAh
YXR0ck5hbWUgfHwgKmF0dHJOYW1lID09IEhUTUxOYW1lczo6aWRBdHRyIHx8ICphdHRyTmFtZSA9
PSBIVE1MTmFtZXM6Om5hbWVBdHRyOworCiAgICAgICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkg
PCAoKm1fY2FjaGVkQ29sbGVjdGlvbnMpLnNpemUoKTsgaSsrKSB7Ci0gICAgICAgICAgICBpZiAo
KCptX2NhY2hlZENvbGxlY3Rpb25zKVtpXSkKLSAgICAgICAgICAgICAgICAoKm1fY2FjaGVkQ29s
bGVjdGlvbnMpW2ldLT5pbnZhbGlkYXRlQ2FjaGUoKTsKKyAgICAgICAgICAgIGlmIChIVE1MQ29s
bGVjdGlvbiogY29sbGVjdGlvbiA9ICgqbV9jYWNoZWRDb2xsZWN0aW9ucylbaV0pIHsKKyAgICAg
ICAgICAgICAgICBpZiAoc2hvdWxkSWdub3JlVHlwZSB8fCBEeW5hbWljTm9kZUxpc3RDYWNoZUJh
c2U6OnNob3VsZEludmFsaWRhdGVUeXBlT25BdHRyaWJ1dGVDaGFuZ2UoY29sbGVjdGlvbi0+aW52
YWxpZGF0aW9uVHlwZSgpLCAqYXR0ck5hbWUpKQorICAgICAgICAgICAgICAgICAgICBjb2xsZWN0
aW9uLT5pbnZhbGlkYXRlQ2FjaGUoKTsKKyAgICAgICAgICAgIH0KICAgICAgICAgfQogICAgIH0K
IApJbmRleDogU291cmNlL1dlYkNvcmUvZG9tL05vZGUuY3BwCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJDb3JlL2RvbS9Ob2RlLmNwcAkocmV2aXNpb24gMTIyNjIzKQorKysgU291cmNlL1dlYkNv
cmUvZG9tL05vZGUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC05NjIsNDAgKzk2MiwxNSBAQCB1bnNp
Z25lZCBOb2RlOjpub2RlSW5kZXgoKSBjb25zdAogICAgIHJldHVybiBjb3VudDsKIH0KIAotdm9p
ZCBOb2RlOjppbnZhbGlkYXRlTm9kZUxpc3RzQ2FjaGVBZnRlckF0dHJpYnV0ZUNoYW5nZWQoY29u
c3QgUXVhbGlmaWVkTmFtZSYgYXR0ck5hbWUsIEVsZW1lbnQqIGF0dHJpYnV0ZU93bmVyRWxlbWVu
dCkKK3ZvaWQgTm9kZTo6aW52YWxpZGF0ZU5vZGVMaXN0Q2FjaGVzSW5BbmNlc3RvcnMoY29uc3Qg
UXVhbGlmaWVkTmFtZSogYXR0ck5hbWUsIEVsZW1lbnQqIGF0dHJpYnV0ZU93bmVyRWxlbWVudCkK
IHsKLSAgICBpZiAoaGFzUmFyZURhdGEoKSAmJiBpc0F0dHJpYnV0ZU5vZGUoKSkgewotICAgICAg
ICBOb2RlUmFyZURhdGEqIGRhdGEgPSByYXJlRGF0YSgpOwotICAgICAgICBBU1NFUlQoIWRhdGEt
Pm5vZGVMaXN0cygpKTsKLSAgICAgICAgZGF0YS0+Y2xlYXJDaGlsZE5vZGVMaXN0Q2FjaGUoKTsK
LSAgICB9CisgICAgaWYgKGhhc1JhcmVEYXRhKCkgJiYgKCFhdHRyTmFtZSB8fCBpc0F0dHJpYnV0
ZU5vZGUoKSkpCisgICAgICAgIHJhcmVEYXRhKCktPmNsZWFyQ2hpbGROb2RlTGlzdENhY2hlKCk7
CiAKICAgICAvLyBNb2RpZmljYXRpb25zIHRvIGF0dHJpYnV0ZXMgdGhhdCBhcmUgbm90IGFzc29j
aWF0ZWQgd2l0aCBhbiBFbGVtZW50IGNhbid0IGludmFsaWRhdGUgTm9kZUxpc3QgY2FjaGVzLgot
ICAgIGlmICghYXR0cmlidXRlT3duZXJFbGVtZW50KQotICAgICAgICByZXR1cm47Ci0KLSAgICBp
ZiAoIWRvY3VtZW50KCktPnNob3VsZEludmFsaWRhdGVOb2RlTGlzdENhY2hlcygmYXR0ck5hbWUp
KQorICAgIGlmIChhdHRyTmFtZSAmJiAhYXR0cmlidXRlT3duZXJFbGVtZW50KQogICAgICAgICBy
ZXR1cm47CiAKLSAgICBkb2N1bWVudCgpLT5jbGVhck5vZGVMaXN0Q2FjaGVzKCk7Ci0KLSAgICBm
b3IgKE5vZGUqIG5vZGUgPSB0aGlzOyBub2RlOyBub2RlID0gbm9kZS0+cGFyZW50Tm9kZSgpKSB7
Ci0gICAgICAgIEFTU0VSVCh0aGlzID09IG5vZGUgfHwgIW5vZGUtPmlzQXR0cmlidXRlTm9kZSgp
KTsKLSAgICAgICAgaWYgKCFub2RlLT5oYXNSYXJlRGF0YSgpKQotICAgICAgICAgICAgY29udGlu
dWU7Ci0gICAgICAgIE5vZGVSYXJlRGF0YSogZGF0YSA9IG5vZGUtPnJhcmVEYXRhKCk7Ci0gICAg
ICAgIGlmIChkYXRhLT5ub2RlTGlzdHMoKSkKLSAgICAgICAgICAgIGRhdGEtPm5vZGVMaXN0cygp
LT5pbnZhbGlkYXRlQ2FjaGVzKCZhdHRyTmFtZSk7Ci0gICAgICAgIGlmIChub2RlLT5pc0VsZW1l
bnROb2RlKCkpCi0gICAgICAgICAgICBzdGF0aWNfY2FzdDxFbGVtZW50UmFyZURhdGEqPihkYXRh
KS0+Y2xlYXJIVE1MQ29sbGVjdGlvbkNhY2hlcygpOwotICAgIH0KLX0KLQotdm9pZCBOb2RlOjpp
bnZhbGlkYXRlTm9kZUxpc3RzQ2FjaGVBZnRlckNoaWxkcmVuQ2hhbmdlZCgpCi17Ci0gICAgaWYg
KGhhc1JhcmVEYXRhKCkpCi0gICAgICAgIHJhcmVEYXRhKCktPmNsZWFyQ2hpbGROb2RlTGlzdENh
Y2hlKCk7Ci0KICAgICBpZiAoIWRvY3VtZW50KCktPnNob3VsZEludmFsaWRhdGVOb2RlTGlzdENh
Y2hlcygpKQogICAgICAgICByZXR1cm47CiAKQEAgLTEwMDYsOSArOTgxLDkgQEAgdm9pZCBOb2Rl
OjppbnZhbGlkYXRlTm9kZUxpc3RzQ2FjaGVBZnRlcgogICAgICAgICAgICAgY29udGludWU7CiAg
ICAgICAgIE5vZGVSYXJlRGF0YSogZGF0YSA9IG5vZGUtPnJhcmVEYXRhKCk7CiAgICAgICAgIGlm
IChkYXRhLT5ub2RlTGlzdHMoKSkKLSAgICAgICAgICAgIGRhdGEtPm5vZGVMaXN0cygpLT5pbnZh
bGlkYXRlQ2FjaGVzKCk7CisgICAgICAgICAgICBkYXRhLT5ub2RlTGlzdHMoKS0+aW52YWxpZGF0
ZUNhY2hlcyhhdHRyTmFtZSk7CiAgICAgICAgIGlmIChub2RlLT5pc0VsZW1lbnROb2RlKCkpCi0g
ICAgICAgICAgICBzdGF0aWNfY2FzdDxFbGVtZW50UmFyZURhdGEqPihkYXRhKS0+Y2xlYXJIVE1M
Q29sbGVjdGlvbkNhY2hlcygpOworICAgICAgICAgICAgc3RhdGljX2Nhc3Q8RWxlbWVudFJhcmVE
YXRhKj4oZGF0YSktPmNsZWFySFRNTENvbGxlY3Rpb25DYWNoZXMoYXR0ck5hbWUpOwogICAgIH0K
IH0KIApAQCAtMjI0OSwxNCArMjIyNCwxNiBAQCB2b2lkIE5vZGVMaXN0c05vZGVEYXRhOjppbnZh
bGlkYXRlQ2FjaGVzCiB7CiAgICAgTm9kZUxpc3RBdG9taWNOYW1lQ2FjaGVNYXA6OmNvbnN0X2l0
ZXJhdG9yIGF0b21pY05hbWVDYWNoZUVuZCA9IG1fYXRvbWljTmFtZUNhY2hlcy5lbmQoKTsKICAg
ICBmb3IgKE5vZGVMaXN0QXRvbWljTmFtZUNhY2hlTWFwOjpjb25zdF9pdGVyYXRvciBpdCA9IG1f
YXRvbWljTmFtZUNhY2hlcy5iZWdpbigpOyBpdCAhPSBhdG9taWNOYW1lQ2FjaGVFbmQ7ICsraXQp
IHsKLSAgICAgICAgaWYgKCFhdHRyTmFtZSB8fCBpdC0+c2Vjb25kLT5zaG91bGRJbnZhbGlkYXRl
T25BdHRyaWJ1dGVDaGFuZ2UoKSkKLSAgICAgICAgICAgIGl0LT5zZWNvbmQtPmludmFsaWRhdGVD
YWNoZSgpOworICAgICAgICBEeW5hbWljTm9kZUxpc3QqIGxpc3QgPSBpdC0+c2Vjb25kOworICAg
ICAgICBpZiAoIWF0dHJOYW1lIHx8IER5bmFtaWNOb2RlTGlzdENhY2hlQmFzZTo6c2hvdWxkSW52
YWxpZGF0ZVR5cGVPbkF0dHJpYnV0ZUNoYW5nZShsaXN0LT5pbnZhbGlkYXRpb25UeXBlKCksICph
dHRyTmFtZSkpCisgICAgICAgICAgICBsaXN0LT5pbnZhbGlkYXRlQ2FjaGUoKTsKICAgICB9CiAK
ICAgICBOb2RlTGlzdE5hbWVDYWNoZU1hcDo6Y29uc3RfaXRlcmF0b3IgbmFtZUNhY2hlRW5kID0g
bV9uYW1lQ2FjaGVzLmVuZCgpOwogICAgIGZvciAoTm9kZUxpc3ROYW1lQ2FjaGVNYXA6OmNvbnN0
X2l0ZXJhdG9yIGl0ID0gbV9uYW1lQ2FjaGVzLmJlZ2luKCk7IGl0ICE9IG5hbWVDYWNoZUVuZDsg
KytpdCkgewotICAgICAgICBpZiAoIWF0dHJOYW1lIHx8IGl0LT5zZWNvbmQtPnNob3VsZEludmFs
aWRhdGVPbkF0dHJpYnV0ZUNoYW5nZSgpKQotICAgICAgICAgICAgaXQtPnNlY29uZC0+aW52YWxp
ZGF0ZUNhY2hlKCk7CisgICAgICAgIER5bmFtaWNOb2RlTGlzdCogbGlzdCA9IGl0LT5zZWNvbmQ7
CisgICAgICAgIGlmICghYXR0ck5hbWUgfHwgRHluYW1pY05vZGVMaXN0Q2FjaGVCYXNlOjpzaG91
bGRJbnZhbGlkYXRlVHlwZU9uQXR0cmlidXRlQ2hhbmdlKGxpc3QtPmludmFsaWRhdGlvblR5cGUo
KSwgKmF0dHJOYW1lKSkKKyAgICAgICAgICAgIGxpc3QtPmludmFsaWRhdGVDYWNoZSgpOwogICAg
IH0KIAogICAgIGlmICghYXR0ck5hbWUpCkBAIC0yNzcyLDE3ICsyNzQ5LDYgQEAgdm9pZCBOb2Rl
OjpzZXRJdGVtVHlwZShjb25zdCBTdHJpbmcmIHZhbAogCiAjZW5kaWYKIAotdm9pZCBOb2RlUmFy
ZURhdGE6OmNyZWF0ZU5vZGVMaXN0cygpCi17Ci0gICAgc2V0Tm9kZUxpc3RzKE5vZGVMaXN0c05v
ZGVEYXRhOjpjcmVhdGUoKSk7Ci19Ci0KLXZvaWQgTm9kZVJhcmVEYXRhOjpjbGVhckNoaWxkTm9k
ZUxpc3RDYWNoZSgpCi17Ci0gICAgaWYgKG1fY2hpbGROb2RlTGlzdCkKLSAgICAgICAgbV9jaGls
ZE5vZGVMaXN0LT5pbnZhbGlkYXRlQ2FjaGUoKTsKLX0KLQogLy8gSXQncyBpbXBvcnRhbnQgbm90
IHRvIGlubGluZSByZW1vdmVkTGFzdFJlZiwgYmVjYXVzZSB3ZSBkb24ndCB3YW50IHRvIGlubGlu
ZSB0aGUgY29kZSB0bwogLy8gZGVsZXRlIGEgTm9kZSBhdCBlYWNoIGRlcmVmIGNhbGwgc2l0ZS4K
IHZvaWQgTm9kZTo6cmVtb3ZlZExhc3RSZWYoKQpJbmRleDogU291cmNlL1dlYkNvcmUvZG9tL05v
ZGUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9kb20vTm9kZS5oCShyZXZpc2lvbiAx
MjI2MjMpCisrKyBTb3VyY2UvV2ViQ29yZS9kb20vTm9kZS5oCSh3b3JraW5nIGNvcHkpCkBAIC01
NTgsOCArNTU4LDcgQEAgcHVibGljOgogICAgIHZvaWQgc2hvd1RyZWVGb3JUaGlzQWNyb3NzRnJh
bWUoKSBjb25zdDsKICNlbmRpZgogCi0gICAgdm9pZCBpbnZhbGlkYXRlTm9kZUxpc3RzQ2FjaGVB
ZnRlckF0dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYsIEVsZW1lbnQqIGF0dHJp
YnV0ZU93bmVyRWxlbWVudCk7Ci0gICAgdm9pZCBpbnZhbGlkYXRlTm9kZUxpc3RzQ2FjaGVBZnRl
ckNoaWxkcmVuQ2hhbmdlZCgpOworICAgIHZvaWQgaW52YWxpZGF0ZU5vZGVMaXN0Q2FjaGVzSW5B
bmNlc3RvcnMoY29uc3QgUXVhbGlmaWVkTmFtZSogYXR0ck5hbWUsIEVsZW1lbnQqIGF0dHJpYnV0
ZU93bmVyRWxlbWVudCk7CiAgICAgTm9kZUxpc3RzTm9kZURhdGEqIG5vZGVMaXN0cygpOwogICAg
IHZvaWQgcmVtb3ZlQ2FjaGVkQ2hpbGROb2RlTGlzdCgpOwogCkluZGV4OiBTb3VyY2UvV2ViQ29y
ZS9kb20vTm9kZVJhcmVEYXRhLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvZG9tL05v
ZGVSYXJlRGF0YS5oCShyZXZpc2lvbiAxMjI2MjMpCisrKyBTb3VyY2UvV2ViQ29yZS9kb20vTm9k
ZVJhcmVEYXRhLmgJKHdvcmtpbmcgY29weSkKQEAgLTIyMiwxMCArMjIyLDE0IEBAIHB1YmxpYzog
ICAgCiAgICAgTm9kZUxpc3RzTm9kZURhdGEqIGVuc3VyZU5vZGVMaXN0cygpCiAgICAgewogICAg
ICAgICBpZiAoIW1fbm9kZUxpc3RzKQotICAgICAgICAgICAgY3JlYXRlTm9kZUxpc3RzKCk7Cisg
ICAgICAgICAgICBzZXROb2RlTGlzdHMoTm9kZUxpc3RzTm9kZURhdGE6OmNyZWF0ZSgpKTsKICAg
ICAgICAgcmV0dXJuIG1fbm9kZUxpc3RzLmdldCgpOwogICAgIH0KLSAgICB2b2lkIGNsZWFyQ2hp
bGROb2RlTGlzdENhY2hlKCk7CisgICAgdm9pZCBjbGVhckNoaWxkTm9kZUxpc3RDYWNoZSgpCisg
ICAgeworICAgICAgICBpZiAobV9jaGlsZE5vZGVMaXN0KQorICAgICAgICAgICAgbV9jaGlsZE5v
ZGVMaXN0LT5pbnZhbGlkYXRlQ2FjaGUoKTsKKyAgICB9CiAKICAgICBDaGlsZE5vZGVMaXN0KiBj
aGlsZE5vZGVMaXN0KCkgY29uc3QgeyByZXR1cm4gbV9jaGlsZE5vZGVMaXN0OyB9CiAgICAgdm9p
ZCBzZXRDaGlsZE5vZGVMaXN0KENoaWxkTm9kZUxpc3QqIGxpc3QpIHsgbV9jaGlsZE5vZGVMaXN0
ID0gbGlzdDsgfQpAQCAtMzQ0LDcgKzM0OCw2IEBAIHByb3RlY3RlZDoKICAgICB2b2lkIHNldE5l
ZWRzRm9jdXNBcHBlYXJhbmNlVXBkYXRlU29vbkFmdGVyQXR0YWNoKGJvb2wgbmVlZHMpIHsgbV9u
ZWVkc0ZvY3VzQXBwZWFyYW5jZVVwZGF0ZVNvb25BZnRlckF0dGFjaCA9IG5lZWRzOyB9CiAKIHBy
aXZhdGU6Ci0gICAgdm9pZCBjcmVhdGVOb2RlTGlzdHMoKTsKIAogICAgIFRyZWVTY29wZSogbV90
cmVlU2NvcGU7CiAgICAgT3duUHRyPE5vZGVMaXN0c05vZGVEYXRhPiBtX25vZGVMaXN0czsKSW5k
ZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTENvbGxlY3Rpb24uaAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViQ29yZS9odG1sL0hUTUxDb2xsZWN0aW9uLmgJKHJldmlzaW9uIDEyMjYyMykKKysr
IFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTENvbGxlY3Rpb24uaAkod29ya2luZyBjb3B5KQpAQCAt
NjMsNyArNjMsNiBAQCBwcm90ZWN0ZWQ6CiAKIHByaXZhdGU6CiAgICAgdXNpbmcgRHluYW1pY05v
ZGVMaXN0Q2FjaGVCYXNlOjppc1Jvb3RlZEF0RG9jdW1lbnQ7Ci0gICAgdXNpbmcgRHluYW1pY05v
ZGVMaXN0Q2FjaGVCYXNlOjpzaG91bGRJbnZhbGlkYXRlT25BdHRyaWJ1dGVDaGFuZ2U7CiAgICAg
dXNpbmcgRHluYW1pY05vZGVMaXN0Q2FjaGVCYXNlOjpzZXRJdGVtQ2FjaGU7CiAKICAgICBtdXRh
YmxlIE5vZGVDYWNoZU1hcCBtX2lkQ2FjaGU7Cg==
</data>
<flag name="review"
          id="161005"
          type_id="1"
          status="+"
          setter="ojan"
    />
          </attachment>
      

    </bug>

</bugzilla>