<?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>5629</bug_id>
          
          <creation_ts>2005-11-04 13:37:23 -0800</creation_ts>
          <short_desc>REGRESSION: appendChild() does not remove nodes from source nodelist when inserting into destination</short_desc>
          <delta_ts>2005-12-26 14:08:33 -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>420+</version>
          <rep_platform>Mac</rep_platform>
          <op_sys>OS X 10.4</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P1</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Daniel Udey">dan</reporter>
          <assigned_to name="Geoffrey Garen">ggaren</assigned_to>
          <cc>andito</cc>
    
    <cc>jon</cc>
    
    <cc>mitz</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>23741</commentid>
    <comment_count>0</comment_count>
    <who name="Daniel Udey">dan</who>
    <bug_when>2005-11-04 13:37:23 -0800</bug_when>
    <thetext>When the DOM is used to acquire a nodelist (for example, a list of P nodes obtained via 
getElementByTagName()) and appendChild() is used to append those nodes into another node, they are 
not removed from the original nodelist (or at least, the nodelist.length property does not reflect this), and 
any loops that make use of this will loop infinitely.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>23742</commentid>
    <comment_count>1</comment_count>
      <attachid>4600</attachid>
    <who name="Daniel Udey">dan</who>
    <bug_when>2005-11-04 13:38:51 -0800</bug_when>
    <thetext>Created attachment 4600
Reduced testcase for Shipley Beachball bug

Reduced testcase for the bug; beachballs ToT as of November 4th.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>23960</commentid>
    <comment_count>2</comment_count>
    <who name="">mitz</who>
    <bug_when>2005-11-12 14:21:38 -0800</bug_when>
    <thetext>*** Bug 5718 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>23964</commentid>
    <comment_count>3</comment_count>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2005-11-12 17:39:31 -0800</bug_when>
    <thetext>appendChild (w3.org):

Adds the node newChild to the end of the list of children of this node. If the newChild is already in the 
tree, it is first removed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>24204</commentid>
    <comment_count>4</comment_count>
    <who name="">mitz</who>
    <bug_when>2005-11-17 14:32:27 -0800</bug_when>
    <thetext>Here&apos;s the problem: when the node is removed from the tree, its parent doesn&apos;t get the 
subtreeModifiedEvent from removeChild() since event dispatch is forbidden by appendChild() until it&apos;s 
done. Subsequently, the old parent&apos;s nodelists aren&apos;t notified of the change.

Still no idea how to fix this.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>24206</commentid>
    <comment_count>5</comment_count>
      <attachid>4715</attachid>
    <who name="">mitz</who>
    <bug_when>2005-11-17 14:49:25 -0800</bug_when>
    <thetext>Created attachment 4715
Dispatch old parent&apos;s subtree modified event from appendChild()</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>24213</commentid>
    <comment_count>6</comment_count>
      <attachid>4715</attachid>
    <who name="David Harrison">harrison</who>
    <bug_when>2005-11-17 17:22:07 -0800</bug_when>
    <thetext>Comment on attachment 4715
Dispatch old parent&apos;s subtree modified event from appendChild()

Good catch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>24239</commentid>
    <comment_count>7</comment_count>
      <attachid>4715</attachid>
    <who name="David Harrison">harrison</who>
    <bug_when>2005-11-18 10:22:28 -0800</bug_when>
    <thetext>Comment on attachment 4715
Dispatch old parent&apos;s subtree modified event from appendChild()

Actually, there is more to it than this.  Am coming up with a new patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>24240</commentid>
    <comment_count>8</comment_count>
      <attachid>4726</attachid>
    <who name="David Harrison">harrison</who>
    <bug_when>2005-11-18 13:05:28 -0800</bug_when>
    <thetext>Created attachment 4726
Allow dispatch in more places

Attached patch enables event dispatch when calling removeChild() in loops.  
That it was disabled previously was wrong because the DOM is not fragile at
that point.   This makes the event dispatch forbidding a debug-only check
(yay).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>24242</commentid>
    <comment_count>9</comment_count>
      <attachid>4726</attachid>
    <who name="David Harrison">harrison</who>
    <bug_when>2005-11-18 13:27:24 -0800</bug_when>
    <thetext>Comment on attachment 4726
Allow dispatch in more places

r=Darin</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>24243</commentid>
    <comment_count>10</comment_count>
    <who name="David Harrison">harrison</who>
    <bug_when>2005-11-18 13:38:29 -0800</bug_when>
    <thetext>Committed.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>4600</attachid>
            <date>2005-11-04 13:38:51 -0800</date>
            <delta_ts>2005-11-04 13:38:51 -0800</delta_ts>
            <desc>Reduced testcase for Shipley Beachball bug</desc>
            <filename>shipley-beachball-testcase.htm</filename>
            <type>text/html</type>
            <size>904</size>
            <attacher name="Daniel Udey">dan</attacher>
            
              <data encoding="base64">ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwhRE9DVFlQRSBodG1sIFBVQkxJ
QyAiLS8vVzNDLy9EVEQgWEhUTUwgMS4wIFN0cmljdC8vRU4iICJodHRwOi8vd3d3LnczLm9yZy9U
Ui94aHRtbDEvRFREL3hodG1sMS1zdHJpY3QuZHRkIj4KPGh0bWw+CjxoZWFkPgo8dGl0bGU+Qmxv
Z2dlcjogUG9zdCBhIENvbW1lbnQ8L3RpdGxlPgo8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlw
dCI+CmZ1bmN0aW9uIGQocykge3JldHVybiBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChzKTt9CgoK
d2luZG93Lm9ubG9hZCA9IGZ1bmN0aW9uKCkgewoKICB2YXIgbmV3Y29udGFpbmVyID0gZCgnaWRl
bnRpdHktb3B0aW9ucy1ob3JpeicpOwogIHZhciBvbGRjb250YWluZXIgPSBkKCdpZGVudGl0eS1v
cHRpb25zJyk7CgogIGlmIChvbGRjb250YWluZXIpIHsKICAgIHZhciBwYXJhbm9kZXMgPSBvbGRj
b250YWluZXIuZ2V0RWxlbWVudHNCeVRhZ05hbWUoIlAiKTsKCiAgICAvLyBtb3ZlIGFsbCB0aGUg
c3BhbnMgdG8gbmV3IGNvbnRhaW5lcgogICAgd2hpbGUgKHBhcmFub2Rlcy5sZW5ndGggPiAwKSB7
CiAgICAgIG5ld2NvbnRhaW5lci5hcHBlbmRDaGlsZChwYXJhbm9kZXNbMF0pOwogICAgfSAgCiAg
fQp9Cgo8L3NjcmlwdD4KPC9oZWFkPgo8Ym9keT4KCjxkaXYgaWQ9ImlkZW50aXR5LW9wdGlvbnMt
aG9yaXoiPjwvZGl2Pgo8ZGl2IGlkPSJpZGVudGl0eS1vcHRpb25zIj4KPHAgY2xhc3M9ImxhYmVs
Ij48L3A+CjxwIGNsYXNzPSJsYWJlbCI+PC9wPgo8L2Rpdj4KCjwvYm9keT4KPC9odG1sPiAKPCEt
LSBUaGlzIGRvY3VtZW50IHNhdmVkIGZyb20gaHR0cDovL3d3dy5ibG9nZ2VyLmNvbS9jb21tZW50
Lmc/YmxvZ0lEPTExMDQ5MjgxJnBvc3RJRD0xMTMxMDg2NDkxNjcyNTczOTQgLS0+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>4715</attachid>
            <date>2005-11-17 14:49:25 -0800</date>
            <delta_ts>2005-11-18 13:05:28 -0800</delta_ts>
            <desc>Dispatch old parent&apos;s subtree modified event from appendChild()</desc>
            <filename>5629_r1.patch</filename>
            <type>text/plain</type>
            <size>728</size>
            <attacher>mitz</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUva2h0bWwveG1sL2RvbV9ub2RlaW1wbC5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpSQ1Mg
ZmlsZTogL2N2cy9yb290L1dlYkNvcmUva2h0bWwveG1sL2RvbV9ub2RlaW1wbC5jcHAsdgpyZXRy
aWV2aW5nIHJldmlzaW9uIDEuMjExCmRpZmYgLXAgLXUgLXIxLjIxMSBXZWJDb3JlL2todG1sL3ht
bC9kb21fbm9kZWltcGwuY3BwCi0tLSBXZWJDb3JlL2todG1sL3htbC9kb21fbm9kZWltcGwuY3Bw
CTE3IE5vdiAyMDA1IDAwOjMyOjMyIC0wMDAwCTEuMjExCisrKyBXZWJDb3JlL2todG1sL3htbC9k
b21fbm9kZWltcGwuY3BwCTE3IE5vdiAyMDA1IDIyOjUwOjMzIC0wMDAwCkBAIC0yNDM3LDYgKzI0
MzcsOCBAQCBOb2RlSW1wbCAqQ29udGFpbmVyTm9kZUltcGw6OmFwcGVuZENoaWxkCiAgICAgICAg
ICAgICBjaGlsZC0+YXR0YWNoKCk7CiAgICAgICAgIAogICAgICAgICBnZXREb2N1bWVudCgpLT5h
bGxvd0V2ZW50RGlzcGF0Y2goKTsKKyAgICAgICAgaWYgKG9sZFBhcmVudCkKKyAgICAgICAgICAg
IG9sZFBhcmVudC0+ZGlzcGF0Y2hTdWJ0cmVlTW9kaWZpZWRFdmVudCh0cnVlKTsKICAgICAgICAg
CiAgICAgICAgIC8vIERpc3BhdGNoIHRoZSBtdXRhdGlvbiBldmVudHMKICAgICAgICAgZGlzcGF0
Y2hDaGlsZEluc2VydGVkRXZlbnRzKGNoaWxkLGV4Y2VwdGlvbmNvZGUpOwo=
</data>
<flag name="review"
          id="864"
          type_id="1"
          status="-"
          setter="harrison"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>4726</attachid>
            <date>2005-11-18 13:05:28 -0800</date>
            <delta_ts>2005-11-18 13:27:24 -0800</delta_ts>
            <desc>Allow dispatch in more places</desc>
            <filename>patch_5629.txt</filename>
            <type>text/plain</type>
            <size>12421</size>
            <attacher name="David Harrison">harrison</attacher>
            
              <data encoding="base64">SW5kZXg6IGtodG1sL3htbC9kb21fZG9jaW1wbC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpSQ1MgZmlsZTogL2N2
cy9yb290L1dlYkNvcmUva2h0bWwveG1sL2RvbV9kb2NpbXBsLmNwcCx2CnJldHJpZXZpbmcgcmV2
aXNpb24gMS4yNzEKZGlmZiAtdSAtcCAtcjEuMjcxIGRvbV9kb2NpbXBsLmNwcAotLS0ga2h0bWwv
eG1sL2RvbV9kb2NpbXBsLmNwcAkxNSBOb3YgMjAwNSAwMjowNTo0MyAtMDAwMAkxLjI3MQorKysg
a2h0bWwveG1sL2RvbV9kb2NpbXBsLmNwcAkxOCBOb3YgMjAwNSAyMTowMDoxMCAtMDAwMApAQCAt
MjM5NiwyOCArMjM5NiwxMCBAQCBBYnN0cmFjdFZpZXdJbXBsICpEb2N1bWVudEltcGw6OmRlZmF1
bHRWCiAgICAgcmV0dXJuIG1fZGVmYXVsdFZpZXc7CiB9CiAKLXZvaWQgRG9jdW1lbnRJbXBsOjpm
b3JiaWRFdmVudERpc3BhdGNoKCkKLXsKLSAgICBtX2V2ZW50RGlzcGF0Y2hGb3JiaWRkZW4gKz0g
MTsKLX0KLQotdm9pZCBEb2N1bWVudEltcGw6OmFsbG93RXZlbnREaXNwYXRjaCgpCi17Ci0gICAg
QVNTRVJUKG1fZXZlbnREaXNwYXRjaEZvcmJpZGRlbiA+IDApOwotICAgIG1fZXZlbnREaXNwYXRj
aEZvcmJpZGRlbiAtPSAxOwotfQotCi1ib29sIERvY3VtZW50SW1wbDo6ZXZlbnREaXNwYXRjaEZv
cmJpZGRlbigpCi17Ci0gICAgcmV0dXJuIG1fZXZlbnREaXNwYXRjaEZvcmJpZGRlbiA+IDA7Ci19
Ci0KIEV2ZW50SW1wbCAqRG9jdW1lbnRJbXBsOjpjcmVhdGVFdmVudChjb25zdCBET01TdHJpbmcg
JmV2ZW50VHlwZSwgaW50ICZleGNlcHRpb25jb2RlKQogewogICAgIC8vIGNyZWF0ZUV2ZW50IG91
Z2h0IHRvIGJlIGF0IGEgdGltZSBjb21wbGV0ZWx5IHNlcGFyYXRlIGZyb20gRE9NIG1vZGlmaWNh
dGlvbnMgdGhhdCBmb3JiaWRFdmVudERpc3BhdGNoCiAgICAgLy8gKG9mIGNvdXJzZSwgdGhlIGV2
ZW50IF9jb3VsZF8gYmUgc2VudCBsYXRlciwgYnV0IHRoaXMgc2VlbXMgbGlrZSBhIGdvb2QgYm90
dGxlbmVjaykKLSAgICBBU1NFUlQoIWV2ZW50RGlzcGF0Y2hGb3JiaWRkZW4oKSk7Ci0gICAgCiAg
ICAgaWYgKGV2ZW50VHlwZSA9PSAiVUlFdmVudHMiIHx8IGV2ZW50VHlwZSA9PSAiVUlFdmVudCIp
CiAgICAgICAgIHJldHVybiBuZXcgVUlFdmVudEltcGwoKTsKICAgICBlbHNlIGlmIChldmVudFR5
cGUgPT0gIk1vdXNlRXZlbnRzIiB8fCBldmVudFR5cGUgPT0gIk1vdXNlRXZlbnQiKQpJbmRleDog
a2h0bWwveG1sL2RvbV9kb2NpbXBsLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpSQ1MgZmlsZTogL2N2cy9yb290L1dl
YkNvcmUva2h0bWwveG1sL2RvbV9kb2NpbXBsLmgsdgpyZXRyaWV2aW5nIHJldmlzaW9uIDEuMTM3
CmRpZmYgLXUgLXAgLXIxLjEzNyBkb21fZG9jaW1wbC5oCi0tLSBraHRtbC94bWwvZG9tX2RvY2lt
cGwuaAkxNSBOb3YgMjAwNSAwMjowNTo0MyAtMDAwMAkxLjEzNworKysga2h0bWwveG1sL2RvbV9k
b2NpbXBsLmgJMTggTm92IDIwMDUgMjE6MDA6MTAgLTAwMDAKQEAgLTQ0NCw5ICs0NDQsNiBAQCBw
dWJsaWM6CiAgICAgdm9pZCBkZXRhY2hOb2RlSXRlcmF0b3IoTm9kZUl0ZXJhdG9ySW1wbCAqbmkp
OwogICAgIHZvaWQgbm90aWZ5QmVmb3JlTm9kZVJlbW92YWwoTm9kZUltcGwgKm4pOwogICAgIEFi
c3RyYWN0Vmlld0ltcGwgKmRlZmF1bHRWaWV3KCkgY29uc3Q7Ci0gICAgdm9pZCBmb3JiaWRFdmVu
dERpc3BhdGNoKCk7Ci0gICAgdm9pZCBhbGxvd0V2ZW50RGlzcGF0Y2goKTsKLSAgICBib29sIGV2
ZW50RGlzcGF0Y2hGb3JiaWRkZW4oKTsKICAgICBFdmVudEltcGwgKmNyZWF0ZUV2ZW50KGNvbnN0
IERPTVN0cmluZyAmZXZlbnRUeXBlLCBpbnQgJmV4Y2VwdGlvbmNvZGUpOwogCiAgICAgLy8ga2Vl
cCB0cmFjayBvZiB3aGF0IHR5cGVzIG9mIGV2ZW50IGxpc3RlbmVycyBhcmUgcmVnaXN0ZXJlZCwg
c28gd2UgZG9uJ3QKSW5kZXg6IGtodG1sL3htbC9kb21fbm9kZWltcGwuY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
UkNTIGZpbGU6IC9jdnMvcm9vdC9XZWJDb3JlL2todG1sL3htbC9kb21fbm9kZWltcGwuY3BwLHYK
cmV0cmlldmluZyByZXZpc2lvbiAxLjIxMQpkaWZmIC11IC1wIC1yMS4yMTEgZG9tX25vZGVpbXBs
LmNwcAotLS0ga2h0bWwveG1sL2RvbV9ub2RlaW1wbC5jcHAJMTcgTm92IDIwMDUgMDA6MzI6MzIg
LTAwMDAJMS4yMTEKKysrIGtodG1sL3htbC9kb21fbm9kZWltcGwuY3BwCTE4IE5vdiAyMDA1IDIx
OjAwOjEwIC0wMDAwCkBAIC0xMDEsNiArMTAxLDE2IEBAIHN0cnVjdCBOb2RlSW1wbENvdW50ZXIg
eyAKIH07CiBpbnQgTm9kZUltcGxDb3VudGVyOjpjb3VudCA9IDA7CiBzdGF0aWMgTm9kZUltcGxD
b3VudGVyIG5vZGVJbXBsQ291bnRlcjsKKworc3RhdGljIGludCBnRXZlbnREaXNwYXRjaEZvcmJp
ZGRlbjsKKyNkZWZpbmUgZm9yYmlkRXZlbnREaXNwYXRjaCgpIGdFdmVudERpc3BhdGNoRm9yYmlk
ZGVuICs9IDEKKyNkZWZpbmUgYWxsb3dFdmVudERpc3BhdGNoKCkgYXNzZXJ0KGdFdmVudERpc3Bh
dGNoRm9yYmlkZGVuID4gMCk7IGdFdmVudERpc3BhdGNoRm9yYmlkZGVuIC09IDEKKyNkZWZpbmUg
ZXZlbnREaXNwYXRjaEZvcmJpZGRlbigpIChnRXZlbnREaXNwYXRjaEZvcmJpZGRlbiA+IDApCisj
ZWxzZQorCisjZGVmaW5lIGZvcmJpZEV2ZW50RGlzcGF0Y2goKQorI2RlZmluZSBhbGxvd0V2ZW50
RGlzcGF0Y2goKQorI2RlZmluZSBldmVudERpc3BhdGNoRm9yYmlkZGVuKCkKICNlbmRpZiBOREVC
VUcKIAogTm9kZUltcGw6Ok5vZGVJbXBsKERvY3VtZW50SW1wbCAqZG9jKQpAQCAtNDk3LDcgKzUw
Nyw3IEBAIEV2ZW50TGlzdGVuZXIgKk5vZGVJbXBsOjpnZXRIVE1MRXZlbnRMaXMKIAogYm9vbCBO
b2RlSW1wbDo6ZGlzcGF0Y2hFdmVudChFdmVudEltcGwgKmV2dCwgaW50ICZleGNlcHRpb25jb2Rl
LCBib29sIHRlbXBFdmVudCkKIHsKLSAgICBhc3NlcnQoIWdldERvY3VtZW50KCktPmV2ZW50RGlz
cGF0Y2hGb3JiaWRkZW4oKSk7CisgICAgYXNzZXJ0KCFldmVudERpc3BhdGNoRm9yYmlkZGVuKCkp
OwogICAgIGlmICghZXZ0IHx8IGV2dC0+dHlwZSgpLmlzRW1wdHkoKSkgeyAKICAgICAgICAgZXhj
ZXB0aW9uY29kZSA9IEV2ZW50RXhjZXB0aW9uOjpfRVhDRVBUSU9OX09GRlNFVCArIEV2ZW50RXhj
ZXB0aW9uOjpVTlNQRUNJRklFRF9FVkVOVF9UWVBFX0VSUjsKICAgICAgICAgcmV0dXJuIGZhbHNl
OwpAQCAtNTQxLDcgKzU1MSw3IEBAIGJvb2wgTm9kZUltcGw6OmRpc3BhdGNoRXZlbnQoRXZlbnRJ
bXBsICoKIAogYm9vbCBOb2RlSW1wbDo6ZGlzcGF0Y2hHZW5lcmljRXZlbnQoIEV2ZW50SW1wbCAq
ZXZ0LCBpbnQgJi8qZXhjZXB0aW9uY29kZSAqLykKIHsKLSAgICBhc3NlcnQoIWdldERvY3VtZW50
KCktPmV2ZW50RGlzcGF0Y2hGb3JiaWRkZW4oKSk7CisgICAgYXNzZXJ0KCFldmVudERpc3BhdGNo
Rm9yYmlkZGVuKCkpOwogICAgIGFzc2VydChldnQtPnRhcmdldCgpKTsKIAogICAgIGV2dC0+cmVm
KCk7CkBAIC02MzQsMTQgKzY0NCwxNCBAQCBib29sIE5vZGVJbXBsOjpkaXNwYXRjaEdlbmVyaWNF
dmVudCggRXZlCiAKIGJvb2wgTm9kZUltcGw6OmRpc3BhdGNoSFRNTEV2ZW50KGNvbnN0IEF0b21p
Y1N0cmluZyAmZXZlbnRUeXBlLCBib29sIGNhbkJ1YmJsZUFyZywgYm9vbCBjYW5jZWxhYmxlQXJn
KQogewotICAgIGFzc2VydCghZ2V0RG9jdW1lbnQoKS0+ZXZlbnREaXNwYXRjaEZvcmJpZGRlbigp
KTsKKyAgICBhc3NlcnQoIWV2ZW50RGlzcGF0Y2hGb3JiaWRkZW4oKSk7CiAgICAgaW50IGV4Y2Vw
dGlvbmNvZGUgPSAwOwogICAgIHJldHVybiBkaXNwYXRjaEV2ZW50KG5ldyBFdmVudEltcGwoZXZl
bnRUeXBlLCBjYW5CdWJibGVBcmcsIGNhbmNlbGFibGVBcmcpLCBleGNlcHRpb25jb2RlLCB0cnVl
KTsKIH0KIAogYm9vbCBOb2RlSW1wbDo6ZGlzcGF0Y2hXaW5kb3dFdmVudChjb25zdCBBdG9taWNT
dHJpbmcgJmV2ZW50VHlwZSwgYm9vbCBjYW5CdWJibGVBcmcsIGJvb2wgY2FuY2VsYWJsZUFyZykK
IHsKLSAgICBhc3NlcnQoIWdldERvY3VtZW50KCktPmV2ZW50RGlzcGF0Y2hGb3JiaWRkZW4oKSk7
CisgICAgYXNzZXJ0KCFldmVudERpc3BhdGNoRm9yYmlkZGVuKCkpOwogICAgIGludCBleGNlcHRp
b25jb2RlID0gMDsKICAgICBTaGFyZWRQdHI8RXZlbnRJbXBsPiBldnQgPSBuZXcgRXZlbnRJbXBs
KGV2ZW50VHlwZSwgY2FuQnViYmxlQXJnLCBjYW5jZWxhYmxlQXJnKTsKICAgICBTaGFyZWRQdHI8
RG9jdW1lbnRJbXBsPiBkb2MgPSBnZXREb2N1bWVudCgpOwpAQCAtNjc3LDcgKzY4Nyw3IEBAIGJv
b2wgTm9kZUltcGw6OmRpc3BhdGNoV2luZG93RXZlbnQoY29uc3QKIAogYm9vbCBOb2RlSW1wbDo6
ZGlzcGF0Y2hNb3VzZUV2ZW50KFFNb3VzZUV2ZW50ICpfbW91c2UsIGNvbnN0IEF0b21pY1N0cmlu
ZyAmb3ZlcnJpZGVUeXBlLCBpbnQgb3ZlcnJpZGVEZXRhaWwpCiB7Ci0gICAgYXNzZXJ0KCFnZXRE
b2N1bWVudCgpLT5ldmVudERpc3BhdGNoRm9yYmlkZGVuKCkpOworICAgIGFzc2VydCghZXZlbnRE
aXNwYXRjaEZvcmJpZGRlbigpKTsKICAgICBpbnQgZGV0YWlsID0gb3ZlcnJpZGVEZXRhaWw7IC8v
IGRlZmF1bHRzIHRvIDAKICAgICBBdG9taWNTdHJpbmcgZXZlbnRUeXBlOwogICAgIGlmICghb3Zl
cnJpZGVUeXBlLmlzRW1wdHkoKSkgewpAQCAtNzM2LDcgKzc0Niw3IEBAIGJvb2wgTm9kZUltcGw6
OmRpc3BhdGNoTW91c2VFdmVudChRTW91c2UKIAogYm9vbCBOb2RlSW1wbDo6ZGlzcGF0Y2hTaW11
bGF0ZWRNb3VzZUV2ZW50KGNvbnN0IEF0b21pY1N0cmluZyAmZXZlbnRUeXBlKQogewotICAgIGFz
c2VydCghZ2V0RG9jdW1lbnQoKS0+ZXZlbnREaXNwYXRjaEZvcmJpZGRlbigpKTsKKyAgICBhc3Nl
cnQoIWV2ZW50RGlzcGF0Y2hGb3JiaWRkZW4oKSk7CiAgICAgLy8gTGlrZSBHZWNrbywgd2UganVz
dCBwYXNzIDAgZm9yIGV2ZXJ5dGhpbmcgd2hlbiB3ZSBtYWtlIGEgZmFrZSBtb3VzZSBldmVudC4K
ICAgICAvLyBJbnRlcm5ldCBFeHBsb3JlciBpbnN0ZWFkIGdpdmVzIHRoZSBjdXJyZW50IG1vdXNl
IHBvc2l0aW9uIGFuZCBzdGF0ZS4KICAgICByZXR1cm4gZGlzcGF0Y2hNb3VzZUV2ZW50KGV2ZW50
VHlwZSwgMCwgMCwgMCwgMCwgMCwgMCwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UpOwpAQCAt
NzQ2LDcgKzc1Niw3IEBAIGJvb2wgTm9kZUltcGw6OmRpc3BhdGNoTW91c2VFdmVudChjb25zdCAK
ICAgICBpbnQgY2xpZW50WCwgaW50IGNsaWVudFksIGludCBzY3JlZW5YLCBpbnQgc2NyZWVuWSwK
ICAgICBib29sIGN0cmxLZXksIGJvb2wgYWx0S2V5LCBib29sIHNoaWZ0S2V5LCBib29sIG1ldGFL
ZXkpCiB7Ci0gICAgYXNzZXJ0KCFnZXREb2N1bWVudCgpLT5ldmVudERpc3BhdGNoRm9yYmlkZGVu
KCkpOworICAgIGFzc2VydCghZXZlbnREaXNwYXRjaEZvcmJpZGRlbigpKTsKICAgICBpZiAoZGlz
YWJsZWQoKSkgLy8gRG9uJ3QgZXZlbiBzZW5kIERPTSBldmVudHMgZm9yIGRpc2FibGVkIGNvbnRy
b2xzLi4KICAgICAgICAgcmV0dXJuIHRydWU7CiAKQEAgLTgwMiw3ICs4MTIsNyBAQCBib29sIE5v
ZGVJbXBsOjpkaXNwYXRjaE1vdXNlRXZlbnQoY29uc3QgCiAKIGJvb2wgTm9kZUltcGw6OmRpc3Bh
dGNoVUlFdmVudChjb25zdCBBdG9taWNTdHJpbmcgJmV2ZW50VHlwZSwgaW50IGRldGFpbCkKIHsK
LSAgICBhc3NlcnQoIWdldERvY3VtZW50KCktPmV2ZW50RGlzcGF0Y2hGb3JiaWRkZW4oKSk7Cisg
ICAgYXNzZXJ0KCFldmVudERpc3BhdGNoRm9yYmlkZGVuKCkpOwogICAgIGFzc2VydCAoISggKGV2
ZW50VHlwZSAhPSBET01Gb2N1c0luRXZlbnQgJiYKICAgICAgICAgICAgICAgICBldmVudFR5cGUg
IT0gRE9NRm9jdXNPdXRFdmVudCAmJgogICAgICAgICAgICAgICAgIGV2ZW50VHlwZSAhPSBET01B
Y3RpdmF0ZUV2ZW50KSkpOwpAQCAtODc5LDEwICs4ODksOCBAQCB2b2lkIE5vZGVJbXBsOjpub3Rp
ZnlOb2RlTGlzdHNDaGlsZHJlbkNoCiAKIGJvb2wgTm9kZUltcGw6OmRpc3BhdGNoU3VidHJlZU1v
ZGlmaWVkRXZlbnQoYm9vbCBzZW5kQ2hpbGRyZW5DaGFuZ2VkKQogewotICAgIC8vIGZvcmJpZGRl
ciB3aWxsIHNlbmQgdGhpcyBldmVudCBsYXRlcgotICAgIGlmIChnZXREb2N1bWVudCgpLT5ldmVu
dERpc3BhdGNoRm9yYmlkZGVuKCkpCi0gICAgICAgIHJldHVybiB0cnVlOwotCisgICAgYXNzZXJ0
KCFldmVudERpc3BhdGNoRm9yYmlkZGVuKCkpOworICAgIAogICAgIC8vIEZJWE1FOiBQdWxsIHRo
aXMgd2hvbGUgaWYgY2xhdXNlIG91dCBvZiB0aGlzIGZ1bmN0aW9uLgogICAgIGlmIChzZW5kQ2hp
bGRyZW5DaGFuZ2VkKSB7CiAgICAgICAgIG5vdGlmeU5vZGVMaXN0c0NoaWxkcmVuQ2hhbmdlZCgp
OwpAQCAtODk5LDcgKzkwNyw3IEBAIGJvb2wgTm9kZUltcGw6OmRpc3BhdGNoU3VidHJlZU1vZGlm
aWVkRXYKIAogYm9vbCBOb2RlSW1wbDo6ZGlzcGF0Y2hLZXlFdmVudChRS2V5RXZlbnQgKmtleSkK
IHsKLSAgICBhc3NlcnQoIWdldERvY3VtZW50KCktPmV2ZW50RGlzcGF0Y2hGb3JiaWRkZW4oKSk7
CisgICAgYXNzZXJ0KCFldmVudERpc3BhdGNoRm9yYmlkZGVuKCkpOwogICAgIGludCBleGNlcHRp
b25jb2RlID0gMDsKICAgICAvL2tkRGVidWcoNjAxMCkgPDwgIkRPTTo6Tm9kZUltcGw6IGRpc3Bh
dGNoaW5nIGtleWJvYXJkIGV2ZW50IiA8PCBlbmRsOwogICAgIEtleWJvYXJkRXZlbnRJbXBsICpr
ZXlib2FyZEV2ZW50SW1wbCA9IG5ldyBLZXlib2FyZEV2ZW50SW1wbChrZXksIGdldERvY3VtZW50
KCktPmRlZmF1bHRWaWV3KCkpOwpAQCAtOTI1LDcgKzkzMyw3IEBAIGJvb2wgTm9kZUltcGw6OmRp
c3BhdGNoS2V5RXZlbnQoUUtleUV2ZW4KIAogdm9pZCBOb2RlSW1wbDo6ZGlzcGF0Y2hXaGVlbEV2
ZW50KFFXaGVlbEV2ZW50ICplKQogewotICAgIGFzc2VydCghZ2V0RG9jdW1lbnQoKS0+ZXZlbnRE
aXNwYXRjaEZvcmJpZGRlbigpKTsKKyAgICBhc3NlcnQoIWV2ZW50RGlzcGF0Y2hGb3JiaWRkZW4o
KSk7CiAgICAgaWYgKGUtPmRlbHRhKCkgPT0gMCkKICAgICAgICAgcmV0dXJuOwogCkBAIC0yMTQ0
LDEzICsyMTUyLDEzIEBAIE5vZGVJbXBsICpDb250YWluZXJOb2RlSW1wbDo6aW5zZXJ0QmVmb3IK
IAogICAgICAgICAvLyBJZiBjaGlsZCBpcyBhbHJlYWR5IHByZXNlbnQgaW4gdGhlIHRyZWUsIGZp
cnN0IHJlbW92ZSBpdAogICAgICAgICBOb2RlSW1wbCAqbmV3UGFyZW50ID0gY2hpbGQtPnBhcmVu
dE5vZGUoKTsKLSAgICAgICAgaWYobmV3UGFyZW50KQorICAgICAgICBpZiAobmV3UGFyZW50KQog
ICAgICAgICAgICAgbmV3UGFyZW50LT5yZW1vdmVDaGlsZCggY2hpbGQsIGV4Y2VwdGlvbmNvZGUg
KTsKLSAgICAgICAgaWYgKCBleGNlcHRpb25jb2RlICkKKyAgICAgICAgaWYgKGV4Y2VwdGlvbmNv
ZGUpCiAgICAgICAgICAgICByZXR1cm4gMDsKIAogICAgICAgICAvLyBBZGQgY2hpbGQgaW4gdGhl
IGNvcnJlY3QgcG9zaXRpb24KLSAgICAgICAgZ2V0RG9jdW1lbnQoKS0+Zm9yYmlkRXZlbnREaXNw
YXRjaCgpOworICAgICAgICBmb3JiaWRFdmVudERpc3BhdGNoKCk7CiAgICAgICAgIGlmIChwcmV2
KQogICAgICAgICAgICAgcHJldi0+c2V0TmV4dFNpYmxpbmcoY2hpbGQpOwogICAgICAgICBlbHNl
CkBAIC0yMTY0LDcgKzIxNzIsNyBAQCBOb2RlSW1wbCAqQ29udGFpbmVyTm9kZUltcGw6Omluc2Vy
dEJlZm9yCiAgICAgICAgIC8vICMjIyBzaG91bGQgd2UgZGV0YWNoKCkgaXQgZmlyc3QgaWYgaXQn
cyBhbHJlYWR5IGF0dGFjaGVkPwogICAgICAgICBpZiAoYXR0YWNoZWQoKSAmJiAhY2hpbGQtPmF0
dGFjaGVkKCkpCiAgICAgICAgICAgICBjaGlsZC0+YXR0YWNoKCk7Ci0gICAgICAgIGdldERvY3Vt
ZW50KCktPmFsbG93RXZlbnREaXNwYXRjaCgpOworICAgICAgICBhbGxvd0V2ZW50RGlzcGF0Y2go
KTsKICAgICAgICAgCiAgICAgICAgIC8vIERpc3BhdGNoIHRoZSBtdXRhdGlvbiBldmVudHMKICAg
ICAgICAgZGlzcGF0Y2hDaGlsZEluc2VydGVkRXZlbnRzKGNoaWxkLGV4Y2VwdGlvbmNvZGUpOwpA
QCAtMjIxMiwxNiArMjIyMCwxNyBAQCBOb2RlSW1wbCAqQ29udGFpbmVyTm9kZUltcGw6OnJlcGxh
Y2VDaGlsCiAKICAgICAvLyBBZGQgdGhlIG5ldyBjaGlsZChyZW4pCiAgICAgd2hpbGUgKGNoaWxk
KSB7Ci0gICAgICAgIGdldERvY3VtZW50KCktPmZvcmJpZEV2ZW50RGlzcGF0Y2goKTsKICAgICAg
ICAgbmV4dENoaWxkID0gaXNGcmFnbWVudCA/IGNoaWxkLT5uZXh0U2libGluZygpIDogMDsKIAog
ICAgICAgICAvLyBJZiBjaGlsZCBpcyBhbHJlYWR5IHByZXNlbnQgaW4gdGhlIHRyZWUsIGZpcnN0
IHJlbW92ZSBpdAogICAgICAgICBOb2RlSW1wbCAqbmV3UGFyZW50ID0gY2hpbGQtPnBhcmVudE5v
ZGUoKTsKLSAgICAgICAgaWYobmV3UGFyZW50KQorICAgICAgICBpZiAobmV3UGFyZW50KQogICAg
ICAgICAgICAgbmV3UGFyZW50LT5yZW1vdmVDaGlsZCggY2hpbGQsIGV4Y2VwdGlvbmNvZGUgKTsK
ICAgICAgICAgaWYgKGV4Y2VwdGlvbmNvZGUpCiAgICAgICAgICAgICByZXR1cm4gMDsKIAorICAg
ICAgICBmb3JiaWRFdmVudERpc3BhdGNoKCk7CisKICAgICAgICAgLy8gQWRkIGNoaWxkIGluIHRo
ZSBjb3JyZWN0IHBvc2l0aW9uCiAgICAgICAgIGlmIChwcmV2KSBwcmV2LT5zZXROZXh0U2libGlu
ZyhjaGlsZCk7CiAgICAgICAgIGlmIChuZXh0KSBuZXh0LT5zZXRQcmV2aW91c1NpYmxpbmcoY2hp
bGQpOwpAQCAtMjIzNSw3ICsyMjQ0LDcgQEAgTm9kZUltcGwgKkNvbnRhaW5lck5vZGVJbXBsOjpy
ZXBsYWNlQ2hpbAogICAgICAgICAvLyAjIyMgc2hvdWxkIHdlIGRldGFjaCgpIGl0IGZpcnN0IGlm
IGl0J3MgYWxyZWFkeSBhdHRhY2hlZD8KICAgICAgICAgaWYgKGF0dGFjaGVkKCkgJiYgIWNoaWxk
LT5hdHRhY2hlZCgpKQogICAgICAgICAgICAgY2hpbGQtPmF0dGFjaCgpOwotICAgICAgICBnZXRE
b2N1bWVudCgpLT5hbGxvd0V2ZW50RGlzcGF0Y2goKTsKKyAgICAgICAgYWxsb3dFdmVudERpc3Bh
dGNoKCk7CiAKICAgICAgICAgLy8gRGlzcGF0Y2ggdGhlIG11dGF0aW9uIGV2ZW50cwogICAgICAg
ICBkaXNwYXRjaENoaWxkSW5zZXJ0ZWRFdmVudHMoY2hpbGQsZXhjZXB0aW9uY29kZSk7CkBAIC0y
MzA0LDcgKzIzMTMsNyBAQCBOb2RlSW1wbCAqQ29udGFpbmVyTm9kZUltcGw6OnJlbW92ZUNoaWxk
CiAgICAgaWYgKGV4Y2VwdGlvbmNvZGUpCiAgICAgICAgIHJldHVybiAwOwogCi0gICAgZ2V0RG9j
dW1lbnQoKS0+Zm9yYmlkRXZlbnREaXNwYXRjaCgpOworICAgIGZvcmJpZEV2ZW50RGlzcGF0Y2go
KTsKIAogICAgIC8vIFJlbW92ZSBmcm9tIHJlbmRlcmluZyB0cmVlCiAgICAgaWYgKG9sZENoaWxk
LT5hdHRhY2hlZCgpKQpAQCAtMjMyNiw3ICsyMzM1LDcgQEAgTm9kZUltcGwgKkNvbnRhaW5lck5v
ZGVJbXBsOjpyZW1vdmVDaGlsZAogCiAgICAgZ2V0RG9jdW1lbnQoKS0+c2V0RG9jdW1lbnRDaGFu
Z2VkKHRydWUpOwogCi0gICAgZ2V0RG9jdW1lbnQoKS0+YWxsb3dFdmVudERpc3BhdGNoKCk7Cisg
ICAgYWxsb3dFdmVudERpc3BhdGNoKCk7CiAKICAgICAvLyBEaXNwYXRjaCBwb3N0LXJlbW92YWwg
bXV0YXRpb24gZXZlbnRzCiAgICAgZGlzcGF0Y2hTdWJ0cmVlTW9kaWZpZWRFdmVudCgpOwpAQCAt
MjM1Myw3ICsyMzYyLDcgQEAgdm9pZCBDb250YWluZXJOb2RlSW1wbDo6cmVtb3ZlQ2hpbGRyZW4o
KQogICAgIGZvciAobiA9IF9maXJzdDsgbiAhPSAwOyBuID0gbi0+bmV4dFNpYmxpbmcoKSkKICAg
ICAgICAgd2lsbFJlbW92ZUNoaWxkKG4pOwogICAgIAotICAgIGdldERvY3VtZW50KCktPmZvcmJp
ZEV2ZW50RGlzcGF0Y2goKTsKKyAgICBmb3JiaWRFdmVudERpc3BhdGNoKCk7CiAgICAgd2hpbGUg
KChuID0gX2ZpcnN0KSAhPSAwKSB7CiAgICAgICAgIE5vZGVJbXBsICpuZXh0ID0gbi0+bmV4dFNp
YmxpbmcoKTsKICAgICAgICAgCkBAIC0yMzczLDcgKzIzODIsNyBAQCB2b2lkIENvbnRhaW5lck5v
ZGVJbXBsOjpyZW1vdmVDaGlsZHJlbigpCiAgICAgICAgIF9maXJzdCA9IG5leHQ7CiAgICAgfQog
ICAgIF9sYXN0ID0gMDsKLSAgICBnZXREb2N1bWVudCgpLT5hbGxvd0V2ZW50RGlzcGF0Y2goKTsK
KyAgICBhbGxvd0V2ZW50RGlzcGF0Y2goKTsKICAgICAKICAgICAvLyBEaXNwYXRjaCBhIHNpbmds
ZSBwb3N0LXJlbW92YWwgbXV0YXRpb24gZXZlbnQgZGVub3RpbmcgYSBtb2RpZmllZCBzdWJ0cmVl
LgogICAgIGRpc3BhdGNoU3VidHJlZU1vZGlmaWVkRXZlbnQoKTsKQEAgLTI0MDYsNyArMjQxNSw2
IEBAIE5vZGVJbXBsICpDb250YWluZXJOb2RlSW1wbDo6YXBwZW5kQ2hpbGQKICAgICBOb2RlSW1w
bCAqY2hpbGQgPSBpc0ZyYWdtZW50ID8gbmV3Q2hpbGQtPmZpcnN0Q2hpbGQoKSA6IG5ld0NoaWxk
OwogCiAgICAgd2hpbGUgKGNoaWxkKSB7Ci0gICAgICAgIGdldERvY3VtZW50KCktPmZvcmJpZEV2
ZW50RGlzcGF0Y2goKTsKICAgICAgICAgbmV4dENoaWxkID0gaXNGcmFnbWVudCA/IGNoaWxkLT5u
ZXh0U2libGluZygpIDogMDsKIAogICAgICAgICAvLyBJZiBjaGlsZCBpcyBhbHJlYWR5IHByZXNl
bnQgaW4gdGhlIHRyZWUsIGZpcnN0IHJlbW92ZSBpdApAQCAtMjQxNyw2ICsyNDI1LDggQEAgTm9k
ZUltcGwgKkNvbnRhaW5lck5vZGVJbXBsOjphcHBlbmRDaGlsZAogICAgICAgICAgICAgICAgIHJl
dHVybiAwOwogICAgICAgICB9CiAKKyAgICAgICAgZm9yYmlkRXZlbnREaXNwYXRjaCgpOworCiAg
ICAgICAgIC8vIEFwcGVuZCBjaGlsZCB0byB0aGUgZW5kIG9mIHRoZSBsaXN0CiAgICAgICAgIGNo
aWxkLT5zZXRQYXJlbnQodGhpcyk7CiAKQEAgLTI0MjUsMTggKzI0MzUsMTUgQEAgTm9kZUltcGwg
KkNvbnRhaW5lck5vZGVJbXBsOjphcHBlbmRDaGlsZAogICAgICAgICAgICAgY2hpbGQtPnNldFBy
ZXZpb3VzU2libGluZyhfbGFzdCk7CiAgICAgICAgICAgICBfbGFzdC0+c2V0TmV4dFNpYmxpbmco
Y2hpbGQpOwogICAgICAgICAgICAgX2xhc3QgPSBjaGlsZDsKLSAgICAgICAgfQotICAgICAgICBl
bHNlCi0gICAgICAgIHsKKyAgICAgICAgfSBlbHNlCiAgICAgICAgICAgICBfZmlyc3QgPSBfbGFz
dCA9IGNoaWxkOwotICAgICAgICB9CiAKICAgICAgICAgLy8gQWRkIGNoaWxkIHRvIHRoZSByZW5k
ZXJpbmcgdHJlZQogICAgICAgICAvLyAjIyMgc2hvdWxkIHdlIGRldGFjaCgpIGl0IGZpcnN0IGlm
IGl0J3MgYWxyZWFkeSBhdHRhY2hlZD8KICAgICAgICAgaWYgKGF0dGFjaGVkKCkgJiYgIWNoaWxk
LT5hdHRhY2hlZCgpKQogICAgICAgICAgICAgY2hpbGQtPmF0dGFjaCgpOwogICAgICAgICAKLSAg
ICAgICAgZ2V0RG9jdW1lbnQoKS0+YWxsb3dFdmVudERpc3BhdGNoKCk7CisgICAgICAgIGFsbG93
RXZlbnREaXNwYXRjaCgpOwogICAgICAgICAKICAgICAgICAgLy8gRGlzcGF0Y2ggdGhlIG11dGF0
aW9uIGV2ZW50cwogICAgICAgICBkaXNwYXRjaENoaWxkSW5zZXJ0ZWRFdmVudHMoY2hpbGQsZXhj
ZXB0aW9uY29kZSk7CkBAIC0yNTAxLDcgKzI1MDgsNyBAQCBOb2RlSW1wbCAqQ29udGFpbmVyTm9k
ZUltcGw6OmFkZENoaWxkKE5vCiAgICAgaWYgKGdldERvY3VtZW50KCktPmlzSFRNTERvY3VtZW50
KCkgJiYgIWNoaWxkQWxsb3dlZChuZXdDaGlsZCkpCiAgICAgICAgIHJldHVybiAwOwogCi0gICAg
Z2V0RG9jdW1lbnQoKS0+Zm9yYmlkRXZlbnREaXNwYXRjaCgpOworICAgIGZvcmJpZEV2ZW50RGlz
cGF0Y2goKTsKIAogICAgIC8vIGp1c3QgYWRkIGl0Li4uCiAgICAgbmV3Q2hpbGQtPnNldFBhcmVu
dCh0aGlzKTsKQEAgLTI1MjEsNyArMjUyOCw3IEBAIE5vZGVJbXBsICpDb250YWluZXJOb2RlSW1w
bDo6YWRkQ2hpbGQoTm8KICAgICAgICAgbmV3Q2hpbGQtPmluc2VydGVkSW50b0RvY3VtZW50KCk7
CiAgICAgY2hpbGRyZW5DaGFuZ2VkKCk7CiAKLSAgICBnZXREb2N1bWVudCgpLT5hbGxvd0V2ZW50
RGlzcGF0Y2goKTsKKyAgICBhbGxvd0V2ZW50RGlzcGF0Y2goKTsKICAgICAKICAgICBpZihuZXdD
aGlsZC0+bm9kZVR5cGUoKSA9PSBOb2RlOjpFTEVNRU5UX05PREUpCiAgICAgICAgIHJldHVybiBu
ZXdDaGlsZDsKQEAgLTI4MDcsNyArMjgxNCw3IEBAIE5vZGVJbXBsICpDb250YWluZXJOb2RlSW1w
bDo6Y2hpbGROb2RlKHUKIAogdm9pZCBDb250YWluZXJOb2RlSW1wbDo6ZGlzcGF0Y2hDaGlsZElu
c2VydGVkRXZlbnRzKCBOb2RlSW1wbCAqY2hpbGQsIGludCAmZXhjZXB0aW9uY29kZSApCiB7Ci0g
ICAgYXNzZXJ0KCFnZXREb2N1bWVudCgpLT5ldmVudERpc3BhdGNoRm9yYmlkZGVuKCkpOworICAg
IGFzc2VydCghZXZlbnREaXNwYXRjaEZvcmJpZGRlbigpKTsKICAgICBpZiAoaW5Eb2N1bWVudCgp
KQogICAgICAgICBjaGlsZC0+aW5zZXJ0ZWRJbnRvRG9jdW1lbnQoKTsKICAgICBlbHNlCg==
</data>
<flag name="review"
          id="867"
          type_id="1"
          status="+"
          setter="harrison"
    />
          </attachment>
      

    </bug>

</bugzilla>