<?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>26430</bug_id>
          
          <creation_ts>2009-06-15 22:12:30 -0700</creation_ts>
          <short_desc>With accelerated compositing, elements can jump when gaining backing</short_desc>
          <delta_ts>2009-07-14 15:46:55 -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>Layout and Rendering</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Mac</rep_platform>
          <op_sys>OS X 10.5</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Simon Fraser (smfr)">simon.fraser</reporter>
          <assigned_to name="Simon Fraser (smfr)">simon.fraser</assigned_to>
          <cc>m</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>126134</commentid>
    <comment_count>0</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2009-06-15 22:12:30 -0700</bug_when>
    <thetext>When RenderLayers become compositing because of a 3d transform or a transition, they sometimes jump around incorrectly. This happens when some other element with backing projects above/to the left of the document.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>126135</commentid>
    <comment_count>1</comment_count>
      <attachid>31332</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2009-06-15 22:12:39 -0700</bug_when>
    <thetext>Created attachment 31332
Testcase</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>126145</commentid>
    <comment_count>2</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2009-06-15 23:14:54 -0700</bug_when>
    <thetext>The bug is that in rebuildCompositingLayerTree() the answer to calculateCompositedBounds() changes as later siblings become composited.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>126215</commentid>
    <comment_count>3</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2009-06-16 09:52:02 -0700</bug_when>
    <thetext>&lt;rdar://problem/6944442&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>127469</commentid>
    <comment_count>4</comment_count>
      <attachid>31680</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2009-06-22 15:39:06 -0700</bug_when>
    <thetext>Created attachment 31680
Patch, testcase, changelog</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>127470</commentid>
    <comment_count>5</comment_count>
      <attachid>31680</attachid>
    <who name="Dave Hyatt">hyatt</who>
    <bug_when>2009-06-22 15:40:43 -0700</bug_when>
    <thetext>Comment on attachment 31680
Patch, testcase, changelog

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>127474</commentid>
    <comment_count>6</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2009-06-22 15:45:41 -0700</bug_when>
    <thetext>http://trac.webkit.org/changeset/44961</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>131716</commentid>
    <comment_count>7</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2009-07-14 15:46:55 -0700</bug_when>
    <thetext>*** Bug 27272 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>31332</attachid>
            <date>2009-06-15 22:12:39 -0700</date>
            <delta_ts>2009-06-15 22:12:39 -0700</delta_ts>
            <desc>Testcase</desc>
            <filename>initial-layer-positions.html</filename>
            <type>text/html</type>
            <size>994</size>
            <attacher name="Simon Fraser (smfr)">simon.fraser</attacher>
            
              <data encoding="base64">PCFET0NUWVBFIGh0bWwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMDEgVHJhbnNpdGlvbmFs
Ly9FTiIKICAgImh0dHA6Ly93d3cudzMub3JnL1RSL2h0bWw0L2xvb3NlLmR0ZCI+Cgo8aHRtbCBs
YW5nPSJlbiI+CjxoZWFkPgogIDxtZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIgY29udGVu
dD0idGV4dC9odG1sOyBjaGFyc2V0PXV0Zi04Ij4KICA8dGl0bGU+SW5pdGlhbCBiYWNraW5nIHBv
c2l0aW9uPC90aXRsZT4KICA8c3R5bGUgdHlwZT0idGV4dC9jc3MiIG1lZGlhPSJzY3JlZW4iPgog
ICAgI3BhcmVudCB7CiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgaGVpZ2h0OiAyMDBw
eDsKICAgICAgd2lkdGg6IDIwMHB4OwogICAgICBib3JkZXI6IDFweCBzb2xpZCBibGFjazsKICAg
IH0KICAgIAogICAgI3BhbmVsIHsKICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICBoZWln
aHQ6IDEwMHB4OwogICAgICB3aWR0aDogMTAwcHg7CiAgICAgIGxlZnQ6IC01MHB4OwogICAgICB0
b3A6IC01MHB4OwogICAgICBvcGFjaXR5OiAwLjI7CiAgICAgIGJhY2tncm91bmQtY29sb3I6IGdy
YXk7CiAgICB9CiAgICAKICAgIC5waWVjZSB7CiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAg
ICAgbGVmdDogNTBweDsKICAgICAgdG9wOiA1MHB4OwogICAgICBoZWlnaHQ6IDYwcHg7CiAgICAg
IHdpZHRoOiA2MHB4OwogICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBncmVlbjsKICAgIH0KICAgIAog
ICAgLnBpZWNlOmhvdmVyIHsKICAgICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAs
IDAsIDApOwogICAgfQoKICA8L3N0eWxlPgo8L2hlYWQ+Cjxib2R5PgoKICA8ZGl2IGlkPSJwYXJl
bnQiPgogICAgICA8ZGl2IGNsYXNzPSJwaWVjZSI+PC9kaXY+CiAgICAgIDxkaXYgaWQ9InBhbmVs
Ij48L2Rpdj4KICA8L2Rpdj4KICA8cD5HcmVlbiBib3ggc2hvdWxkIG5vdCBtb3ZlIHdoZW4gaG92
ZXJlZDwvcD4KPC9ib2R5Pgo8L2h0bWw+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>31680</attachid>
            <date>2009-06-22 15:39:06 -0700</date>
            <delta_ts>2009-06-22 15:40:43 -0700</delta_ts>
            <desc>Patch, testcase, changelog</desc>
            <filename>26430_patch.txt</filename>
            <type>text/plain</type>
            <size>24931</size>
            <attacher name="Simon Fraser (smfr)">simon.fraser</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCA4Y2E4MDFhLi45N2U5NmZiIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMDktMDYt
MjIgIFNpbW9uIEZyYXNlciAgPHNpbW9uLmZyYXNlckBhcHBsZS5jb20+CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisgICAgICAgIAorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjY0MzAKKyAgICAgICAgCisgICAgICAgIFRlc3Rj
YXNlIGZvciBhIGxheWVyJ3MgY29tcG9zaXRlZCBwb3NpdGlvbiBiZWluZyBhZmZlY3RlZCBieSBh
IGxhdGVyIHNpYmxpbmcuCisKKyAgICAgICAgKiBjb21wb3NpdGluZy9zaWJsaW5nLXBvc2l0aW9u
aW5nLmh0bWw6IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3JtL21hYy9jb21wb3NpdGluZy9zaWJs
aW5nLXBvc2l0aW9uaW5nLWV4cGVjdGVkLnR4dDogQWRkZWQuCisKIDIwMDktMDYtMTkgIERhdmlk
IEh5YXR0ICA8aHlhdHRAYXBwbGUuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IEFuZGVycyBD
YXJsc3Nvbi4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2NvbXBvc2l0aW5nL3NpYmxpbmctcG9z
aXRpb25pbmcuaHRtbCBiL0xheW91dFRlc3RzL2NvbXBvc2l0aW5nL3NpYmxpbmctcG9zaXRpb25p
bmcuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wY2FkMTZmCi0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcvc2libGluZy1wb3NpdGlvbmlu
Zy5odG1sCkBAIC0wLDAgKzEsNzQgQEAKKzwhRE9DVFlQRSBodG1sIFBVQkxJQyAiLS8vVzNDLy9E
VEQgSFRNTCA0LjAxIFRyYW5zaXRpb25hbC8vRU4iCisgICAiaHR0cDovL3d3dy53My5vcmcvVFIv
aHRtbDQvbG9vc2UuZHRkIj4KKworPGh0bWwgbGFuZz0iZW4iPgorPGhlYWQ+CisgIDxtZXRhIGh0
dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PXV0Zi04
Ij4KKyAgPHRpdGxlPkluaXRpYWwgYmFja2luZyBwb3NpdGlvbjwvdGl0bGU+CisgIDxzdHlsZSB0
eXBlPSJ0ZXh0L2NzcyIgbWVkaWE9InNjcmVlbiI+CisgICAgI3BhcmVudCB7CisgICAgICBwb3Np
dGlvbjogcmVsYXRpdmU7CisgICAgICBoZWlnaHQ6IDIwMHB4OworICAgICAgd2lkdGg6IDIwMHB4
OworICAgICAgYm9yZGVyOiAxcHggc29saWQgYmxhY2s7CisgICAgfQorICAgIAorICAgICNwYW5l
bCB7CisgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CisgICAgICBoZWlnaHQ6IDEwMHB4OworICAg
ICAgd2lkdGg6IDEwMHB4OworICAgICAgbGVmdDogLTUwcHg7CisgICAgICB0b3A6IC01MHB4Owor
ICAgICAgb3BhY2l0eTogMC4yOworICAgICAgYmFja2dyb3VuZC1jb2xvcjogZ3JheTsKKyAgICB9
CisgICAgCisgICAgI3BpZWNlIHsKKyAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKKyAgICAgIGxl
ZnQ6IDUwcHg7CisgICAgICB0b3A6IDUwcHg7CisgICAgICBoZWlnaHQ6IDYwcHg7CisgICAgICB3
aWR0aDogNjBweDsKKyAgICAgIGJhY2tncm91bmQtY29sb3I6IGdyZWVuOworICAgIH0KKyAgICAK
KyAgICAjcGllY2U6aG92ZXIgeworICAgICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNk
KDAsIDAsIDApOworICAgIH0KKworICAgICNwaWVjZS5tb3ZlZCB7CisgICAgICAtd2Via2l0LXRy
YW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMCwgMCk7CisgICAgfQorCisgIDwvc3R5bGU+CisgIDxz
Y3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBjaGFyc2V0PSJ1dGYtOCI+CisgICAgaWYgKHdp
bmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKKyAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLndh
aXRVbnRpbERvbmUoKTsKKworICAgIGZ1bmN0aW9uIHN0YXJ0VGVzdCgpCisgICAgeworICAgICAg
d2luZG93LnNldFRpbWVvdXQoZnVuY3Rpb24oKSB7CisgICAgICAgIHZhciBtb3ZlciA9IGRvY3Vt
ZW50LmdldEVsZW1lbnRCeUlkKCdwaWVjZScpOworICAgICAgICBtb3Zlci5jbGFzc05hbWUgPSAn
bW92ZWQnOworICAgICAgICAKKyAgICAgICAgd2luZG93LnNldFRpbWVvdXQoZnVuY3Rpb24oKSB7
CisgICAgICAgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKKyAgICAgICAgICAg
IGxheW91dFRlc3RDb250cm9sbGVyLm5vdGlmeURvbmUoKTsKKyAgICAgICAgfSwgMCk7CisgICAg
ICAgIAorICAgICAgfSwgMCk7CisgICAgfQorCisgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIo
J2xvYWQnLCBzdGFydFRlc3QsIGZhbHNlKTsKKyAgPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4K
KworICA8ZGl2IGlkPSJwYXJlbnQiPgorICAgICAgPGRpdiBpZD0icGllY2UiPjwvZGl2PgorICAg
ICAgPGRpdiBpZD0icGFuZWwiPjwvZGl2PgorICA8L2Rpdj4KKyAgPHA+PGEgaHJlZj0iaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTI2NDMwIj5odHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjY0MzA8L2E+PC9wPgorICA8cD5HcmVlbiBib3ggc2hv
dWxkIG5vdCBtb3ZlIHdoZW4gaG92ZXJlZDwvcD4KKzwvYm9keT4KKzwvaHRtbD4KXCBObyBuZXds
aW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMv
Y29tcG9zaXRpbmcvc2libGluZy1wb3NpdGlvbmluZy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0
cy9wbGF0Zm9ybS9tYWMvY29tcG9zaXRpbmcvc2libGluZy1wb3NpdGlvbmluZy1leHBlY3RlZC50
eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYTJjMWIyZgotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9jb21wb3NpdGluZy9zaWJsaW5nLXBv
c2l0aW9uaW5nLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDE4IEBACitsYXllciBhdCAoMCwwKSBz
aXplIDgwMHg2MDAKKyAgUmVuZGVyVmlldyBhdCAoMCwwKSBzaXplIDgwMHg2MDAKK2xheWVyIGF0
ICgwLDApIHNpemUgODAweDI5NAorICBSZW5kZXJCbG9jayB7SFRNTH0gYXQgKDAsMCkgc2l6ZSA4
MDB4Mjk0CisgICAgUmVuZGVyQm9keSB7Qk9EWX0gYXQgKDgsOCkgc2l6ZSA3ODR4MjcwCisgICAg
ICBSZW5kZXJCbG9jayB7UH0gYXQgKDAsMjE4KSBzaXplIDc4NHgxOAorICAgICAgICBSZW5kZXJJ
bmxpbmUge0F9IGF0ICgwLDApIHNpemUgMzA1eDE4IFtjb2xvcj0jMDAwMEVFXQorICAgICAgICAg
IFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMCwwKSBzaXplIDMwNXgxOAorICAgICAgICAgICAgdGV4
dCBydW4gYXQgKDAsMCkgd2lkdGggMzA1OiAiaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTI2NDMwIgorICAgICAgUmVuZGVyQmxvY2sge1B9IGF0ICgwLDI1Mikgc2l6ZSA3
ODR4MTgKKyAgICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICgwLDApIHNpemUgMjcweDE4Cisg
ICAgICAgICAgdGV4dCBydW4gYXQgKDAsMCkgd2lkdGggMjcwOiAiR3JlZW4gYm94IHNob3VsZCBu
b3QgbW92ZSB3aGVuIGhvdmVyZWQiCitsYXllciBhdCAoOCw4KSBzaXplIDIwMngyMDIKKyAgUmVu
ZGVyQmxvY2sgKHJlbGF0aXZlIHBvc2l0aW9uZWQpIHtESVZ9IGF0ICgwLDApIHNpemUgMjAyeDIw
MiBbYm9yZGVyOiAoMXB4IHNvbGlkICMwMDAwMDApXQorbGF5ZXIgYXQgKDU5LDU5KSBzaXplIDYw
eDYwCisgIFJlbmRlckJsb2NrIChwb3NpdGlvbmVkKSB7RElWfSBhdCAoNTEsNTEpIHNpemUgNjB4
NjAgW2JnY29sb3I9IzAwODAwMF0KK2xheWVyIGF0ICgtNDEsLTQxKSBzaXplIDEwMHgxMDAgYmFj
a2dyb3VuZENsaXAgYXQgKDAsMCkgc2l6ZSA4MDB4NjAwIGNsaXAgYXQgKDAsMCkgc2l6ZSA4MDB4
NjAwIG91dGxpbmVDbGlwIGF0ICgwLDApIHNpemUgODAweDYwMAorICBSZW5kZXJCbG9jayAocG9z
aXRpb25lZCkge0RJVn0gYXQgKC00OSwtNDkpIHNpemUgMTAweDEwMCBbYmdjb2xvcj0jODA4MDgw
XQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9DaGFuZ2VMb2cgYi9XZWJDb3JlL0NoYW5nZUxvZwppbmRl
eCA4NjM5MTI4Li44YTRjN2U1IDEwMDY0NAotLS0gYS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9X
ZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ3IEBACisyMDA5LTA2LTIyICBTaW1vbiBGcmFz
ZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0yNjQzMAorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNjk0NDQ0Mj4gRWxlbWVudHMganVt
cCBhcm91bmQgd2hlbiB0aGV5IGJlY29tZSBjb21wb3NpdGVkIChXV0RDIGNoZWNrZXJzIGRlbW8p
CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS82OTg5MDA2PiBMb3RzIG9mIHRpbWUgc3BlbnQgaW4g
UmVuZGVyTGF5ZXJDb21wb3NpdG9yOjpjYWxjdWxhdGVDb21wb3NpdGVkQm91bmRzKCkKKyAgICAg
ICAgICAgIGR1cmluZyB3aW5kb3cgcmVzaXplIHdoZW4gdXNpbmcgaGFyZHdhcmUgbGF5ZXJzCisg
ICAgICAgIAorICAgICAgICBGaXggYW4gb3JkZXJpbmcgZGVwZW5kZW5jeSB3aGljaCBjYXVzZWQg
dGhlIGNvbXBvc2l0aW5nIHBvc2l0aW9uIG9mIGEgbGF5ZXIKKyAgICAgICAgdG8gYmUgYWZmZWN0
ZWQgYnkgc29tZSBsYXRlciBzaWJsaW5nLCB3aGljaCBhZmZlY3RlZCB0aGUgY29tcG9zaXRpbmcg
YW5jZXN0b3IncworICAgICAgICBjb21wb3NpdGVkIGJvdW5kcy4KKyAgICAgICAgCisgICAgICAg
IFRoZSBmaXggaXMgdG8gb25seSB1cGRhdGUgdGhlIGNvbXBvc2l0aW5nIHBvc2l0aW9ucyBvZiBs
YXllcnMgaW4gc29tZSBzdWJ0cmVlCisgICAgICAgIHdoZW4gdXBkYXRlQWZ0ZXJMYXlvdXQoKSBo
YXMgYmVlbiBjYWxsZWQgb24gYWxsIHRoZSBsYXllcnMgaW4gdGhhdCBzdWJ0cmVlLAorICAgICAg
ICBmcm9tIHRoZSBhbmNlc3RvciBkb3duLgorICAgICAgICAKKyAgICAgICAgQWxzbyBjYWNoZSB0
aGUgY29tcG9zaXRlZCBib3VuZHMgb2YgYSBSZW5kZXJMYXllckJhY2tpbmcsIG5vdyB0aGF0IHdl
IGNhbgorICAgICAgICBndWFyYW50ZWUgdGhhdCB0aG9zZSBib3VuZHMgYXJlIGFjY3VyYXRlLgor
ICAgICAgICAKKyAgICAgICAgVGVzdDogY29tcG9zaXRpbmcvc2libGluZy1wb3NpdGlvbmluZy5o
dG1sCisKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyTGF5ZXIuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6UmVuZGVyTGF5ZXI6OnVwZGF0ZUxheWVyUG9zaXRpb25zKToKKyAgICAgICAgKFdlYkNv
cmU6OlJlbmRlckxheWVyOjpoaXRUZXN0TGF5ZXIpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5k
ZXJMYXllckJhY2tpbmcuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXJCYWNraW5n
OjpSZW5kZXJMYXllckJhY2tpbmcpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXJCYWNr
aW5nOjp1cGRhdGVBZnRlckxheW91dCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXllckJh
Y2tpbmc6OnVwZGF0ZUdyYXBoaWNzTGF5ZXJHZW9tZXRyeSk6CisgICAgICAgIChXZWJDb3JlOjpS
ZW5kZXJMYXllckJhY2tpbmc6OmNvbnRlbnRPZmZzZXRJbkNvbXBvc3RpbmdMYXllcik6CisgICAg
ICAgIChXZWJDb3JlOjpSZW5kZXJMYXllckJhY2tpbmc6OnBhaW50Q29udGVudHMpOgorICAgICAg
ICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXJCYWNraW5nOjpjb21wb3NpdGVkQm91bmRzKToKKyAgICAg
ICAgKFdlYkNvcmU6OlJlbmRlckxheWVyQmFja2luZzo6c2V0Q29tcG9zaXRlZEJvdW5kcyk6Cisg
ICAgICAgICogcmVuZGVyaW5nL1JlbmRlckxheWVyQmFja2luZy5oOgorICAgICAgICAqIHJlbmRl
cmluZy9SZW5kZXJMYXllckNvbXBvc2l0b3IuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVy
TGF5ZXJDb21wb3NpdG9yOjp1cGRhdGVCYWNraW5nKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRl
ckxheWVyQ29tcG9zaXRvcjo6dXBkYXRlTGF5ZXJDb21wb3NpdGluZ1N0YXRlKToKKyAgICAgICAg
KFdlYkNvcmU6OlJlbmRlckxheWVyQ29tcG9zaXRvcjo6Y2FsY3VsYXRlQ29tcG9zaXRlZEJvdW5k
cyk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXllckNvbXBvc2l0b3I6OmxheWVyV2lsbEJl
UmVtb3ZlZCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXllckNvbXBvc2l0b3I6OmNvbXB1
dGVDb21wb3NpdGluZ1JlcXVpcmVtZW50cyk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXll
ckNvbXBvc2l0b3I6OnJlYnVpbGRDb21wb3NpdGluZ0xheWVyVHJlZSk6CisgICAgICAgIChXZWJD
b3JlOjpSZW5kZXJMYXllckNvbXBvc2l0b3I6OnVwZGF0ZUNvbXBvc2l0aW5nQ2hpbGRyZW5HZW9t
ZXRyeSk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckxheWVyQ29tcG9zaXRvci5oOgorCiAy
MDA5LTA2LTE5ICBTaW1vbiBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgogCiAgICAg
ICAgIFJldmlld2VkIGJ5IE9saXZlciBIdW50LgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyTGF5ZXIuY3BwIGIvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuY3BwCmlu
ZGV4IDQxZTQ3YjYuLjhjMDliZjMgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
ckxheWVyLmNwcAorKysgYi9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5jcHAKQEAgLTMx
MCw5ICszMTAsNiBAQCB2b2lkIFJlbmRlckxheWVyOjp1cGRhdGVMYXllclBvc2l0aW9ucyhib29s
IGRvRnVsbFJlcGFpbnQsIGJvb2wgY2hlY2tGb3JSZXBhaW50KQogICAgICAgICBjaGlsZC0+dXBk
YXRlTGF5ZXJQb3NpdGlvbnMoZG9GdWxsUmVwYWludCwgY2hlY2tGb3JSZXBhaW50KTsKIAogI2lm
IFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKLSAgICBpZiAoIXBhcmVudCgpKQotICAgICAg
ICBjb21wb3NpdG9yKCktPnVwZGF0ZVJvb3RMYXllclBvc2l0aW9uKCk7Ci0KICAgICBpZiAoaXND
b21wb3NpdGVkKCkpCiAgICAgICAgIGJhY2tpbmcoKS0+dXBkYXRlQWZ0ZXJMYXlvdXQoKTsKICNl
bmRpZgpAQCAtMjMwMSw3ICsyMjk4LDcgQEAgUmVuZGVyTGF5ZXIqIFJlbmRlckxheWVyOjpoaXRU
ZXN0TGF5ZXIoUmVuZGVyTGF5ZXIqIHJvb3RMYXllciwgUmVuZGVyTGF5ZXIqIGNvbnQKICNpZiBV
U0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCiAgICAgICAgIGlmIChpc0NvbXBvc2l0ZWQoKSkg
ewogICAgICAgICAgICAgLy8gSXQgZG9lc24ndCBtYWtlIHNlbnNlIHRvIHByb2plY3QgaGl0VGVz
dFJlY3QgaW50byB0aGUgcGxhbmUgb2YgdGhpcyBsYXllciwgc28gdXNlIHRoZSBzYW1lIGJvdW5k
cyB3ZSB1c2UgZm9yIHBhaW50aW5nLgotICAgICAgICAgICAgbG9jYWxIaXRUZXN0UmVjdCA9IGNv
bXBvc2l0b3IoKS0+Y2FsY3VsYXRlQ29tcG9zaXRlZEJvdW5kcyh0aGlzLCB0aGlzKTsKKyAgICAg
ICAgICAgIGxvY2FsSGl0VGVzdFJlY3QgPSBiYWNraW5nKCktPmNvbXBvc2l0ZWRCb3VuZHMoKTsK
ICAgICAgICAgfSBlbHNlCiAjZW5kaWYKICAgICAgICAgICAgIGxvY2FsSGl0VGVzdFJlY3QgPSBu
ZXdUcmFuc2Zvcm1TdGF0ZS0+bWFwcGVkUXVhZCgpLmVuY2xvc2luZ0JvdW5kaW5nQm94KCk7CmRp
ZmYgLS1naXQgYS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckJhY2tpbmcuY3BwIGIvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJCYWNraW5nLmNwcAppbmRleCBhZDYyYjQ5Li4xYzhl
MjU3IDEwMDY0NAotLS0gYS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckJhY2tpbmcuY3Bw
CisrKyBiL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQmFja2luZy5jcHAKQEAgLTU4LDcg
KzU4LDYgQEAgUmVuZGVyTGF5ZXJCYWNraW5nOjpSZW5kZXJMYXllckJhY2tpbmcoUmVuZGVyTGF5
ZXIqIGxheWVyKQogICAgICwgbV9jb250ZW50c0xheWVyKDApCiAgICAgLCBtX2NsaXBwaW5nTGF5
ZXIoMCkKICAgICAsIG1faGFzRGlyZWN0bHlDb21wb3NpdGVkQ29udGVudChmYWxzZSkKLSAgICAs
IG1fY29tcG9zaXRpbmdDb250ZW50T2Zmc2V0RGlydHkodHJ1ZSkKIHsKICAgICBjcmVhdGVHcmFw
aGljc0xheWVyKCk7CiB9CkBAIC0xMjksOSArMTI4LDIxIEBAIHZvaWQgUmVuZGVyTGF5ZXJCYWNr
aW5nOjp1cGRhdGVMYXllclRyYW5zZm9ybSgpCiAKIHZvaWQgUmVuZGVyTGF5ZXJCYWNraW5nOjp1
cGRhdGVBZnRlckxheW91dCgpCiB7Ci0gICAgLy8gT25seSBuZWVkIHRvIHVwZGF0ZSBnZW9tZXRy
eSBpZiB0aGVyZSBpc24ndCBhIGxheWVyIHVwZGF0ZSBwZW5kaW5nLgotICAgIGlmICghY29tcG9z
aXRvcigpLT5jb21wb3NpdGluZ0xheWVyc05lZWRVcGRhdGUoKSkKLSAgICAgICAgdXBkYXRlR3Jh
cGhpY3NMYXllckdlb21ldHJ5KCk7CisgICAgUmVuZGVyTGF5ZXJDb21wb3NpdG9yKiBsYXllckNv
bXBvc2l0b3IgPSBjb21wb3NpdG9yKCk7CisgICAgaWYgKCFsYXllckNvbXBvc2l0b3ItPmNvbXBv
c2l0aW5nTGF5ZXJzTmVlZFVwZGF0ZSgpKSB7CisgICAgICAgIC8vIENhbGxpbmcgdXBkYXRlR3Jh
cGhpY3NMYXllckdlb21ldHJ5KCkgaGVyZSBnaXZlcyBpbmNvcnJlY3QgcmVzdWx0cywgYmVjYXVz
ZSB0aGUKKyAgICAgICAgLy8gcG9zaXRpb24gb2YgdGhpcyBsYXllcidzIEdyYXBoaWNzTGF5ZXIg
ZGVwZW5kcyBvbiB0aGUgcG9zaXRpb24gb2Ygb3VyIGNvbXBvc2l0aW5nCisgICAgICAgIC8vIGFu
Y2VzdG9yJ3MgR3JhcGhpY3NMYXllci4gVGhhdCBjYW5ub3QgYmUgZGV0ZXJtaW5lZCB1bnRpbCBh
bGwgdGhlIGRlc2NlbmRhbnQgCisgICAgICAgIC8vIFJlbmRlckxheWVycyBvZiB0aGF0IGFuY2Vz
dG9yIGhhdmUgYmVlbiBwcm9jZXNzZWQgdmlhIHVwZGF0ZUxheWVyUG9zaXRpb25zKCkuCisgICAg
ICAgIC8vCisgICAgICAgIC8vIFRoZSBzb2x1dGlvbiBpcyB0byB1cGRhdGUgY29tcG9zaXRpbmcg
Y2hpbGRyZW4gb2YgdGhpcyBsYXllciBoZXJlLAorICAgICAgICAvLyB2aWEgdXBkYXRlQ29tcG9z
aXRpbmdDaGlsZHJlbkdlb21ldHJ5KCkuCisgICAgICAgIHNldENvbXBvc2l0ZWRCb3VuZHMobGF5
ZXJDb21wb3NpdG9yLT5jYWxjdWxhdGVDb21wb3NpdGVkQm91bmRzKG1fb3duaW5nTGF5ZXIsIG1f
b3duaW5nTGF5ZXIpKTsKKyAgICAgICAgbGF5ZXJDb21wb3NpdG9yLT51cGRhdGVDb21wb3NpdGlu
Z0NoaWxkcmVuR2VvbWV0cnkobV9vd25pbmdMYXllciwgbV9vd25pbmdMYXllcik7CisgICAgICAg
IAorICAgICAgICBpZiAoIW1fb3duaW5nTGF5ZXItPnBhcmVudCgpKQorICAgICAgICAgICAgbGF5
ZXJDb21wb3NpdG9yLT51cGRhdGVSb290TGF5ZXJQb3NpdGlvbigpOworICAgIH0KIH0KIAogYm9v
bCBSZW5kZXJMYXllckJhY2tpbmc6OnVwZGF0ZUdyYXBoaWNzTGF5ZXJDb25maWd1cmF0aW9uKCkK
QEAgLTE4MSwxNiArMTkyLDE3IEBAIHZvaWQgUmVuZGVyTGF5ZXJCYWNraW5nOjp1cGRhdGVHcmFw
aGljc0xheWVyR2VvbWV0cnkoKQogICAgIG1fZ3JhcGhpY3NMYXllci0+c2V0UHJlc2VydmVzM0Qo
c3R5bGUtPnRyYW5zZm9ybVN0eWxlM0QoKSA9PSBUcmFuc2Zvcm1TdHlsZTNEUHJlc2VydmUzRCk7
CiAgICAgbV9ncmFwaGljc0xheWVyLT5zZXRCYWNrZmFjZVZpc2liaWxpdHkoc3R5bGUtPmJhY2tm
YWNlVmlzaWJpbGl0eSgpID09IEJhY2tmYWNlVmlzaWJpbGl0eVZpc2libGUpOwogCi0gICAgbV9j
b21wb3NpdGluZ0NvbnRlbnRPZmZzZXREaXJ0eSA9IHRydWU7Ci0gICAgCiAgICAgUmVuZGVyTGF5
ZXIqIGNvbXBBbmNlc3RvciA9IG1fb3duaW5nTGF5ZXItPmFuY2VzdG9yQ29tcG9zaXRpbmdMYXll
cigpOwogICAgIAogICAgIC8vIFdlIGNvbXB1dGUgZXZlcnl0aGluZyByZWxhdGl2ZSB0byB0aGUg
ZW5jbG9zaW5nIGNvbXBvc2l0aW5nIGxheWVyLgogICAgIEludFJlY3QgYW5jZXN0b3JDb21wb3Np
dGluZ0JvdW5kczsKLSAgICBpZiAoY29tcEFuY2VzdG9yKQotICAgICAgICBhbmNlc3RvckNvbXBv
c2l0aW5nQm91bmRzID0gY29tcG9zaXRvcigpLT5jYWxjdWxhdGVDb21wb3NpdGVkQm91bmRzKGNv
bXBBbmNlc3RvciwgY29tcEFuY2VzdG9yKTsKLSAgICAKLSAgICBJbnRSZWN0IGxvY2FsQ29tcG9z
aXRpbmdCb3VuZHMgPSBjb21wb3NpdG9yKCktPmNhbGN1bGF0ZUNvbXBvc2l0ZWRCb3VuZHMobV9v
d25pbmdMYXllciwgbV9vd25pbmdMYXllcik7CisgICAgaWYgKGNvbXBBbmNlc3RvcikgeworICAg
ICAgICBBU1NFUlQoY29tcEFuY2VzdG9yLT5iYWNraW5nKCkpOworICAgICAgICAvLyBGSVhNRTog
ZW5zdXJlIHdlIGNvbXB1dGUgY29tcG9zaXRlZCBib3VuZHMgdG9wLWRvd24sIHdoaWNoIGlzIG5v
dCB0cnVlIGlmIHdlJ3JlIGJlaW5nIHVwZGF0ZWQgdmlhIHVwZGF0ZUxheWVyUG9zaXRpb25zKCku
CisgICAgICAgIGFuY2VzdG9yQ29tcG9zaXRpbmdCb3VuZHMgPSBjb21wQW5jZXN0b3ItPmJhY2tp
bmcoKS0+Y29tcG9zaXRlZEJvdW5kcygpOworICAgIH0KKworICAgIEludFJlY3QgbG9jYWxDb21w
b3NpdGluZ0JvdW5kcyA9IGNvbXBvc2l0ZWRCb3VuZHMoKTsKIAogICAgIEludFJlY3QgcmVsYXRp
dmVDb21wb3NpdGluZ0JvdW5kcyhsb2NhbENvbXBvc2l0aW5nQm91bmRzKTsKICAgICBpbnQgZGVs
dGFYID0gMCwgZGVsdGFZID0gMDsKQEAgLTY0NiwxNCArNjU4LDEwIEBAIEZsb2F0UG9pbnQgUmVu
ZGVyTGF5ZXJCYWNraW5nOjpjb21wdXRlUGVyc3BlY3RpdmVPcmlnaW4oY29uc3QgSW50UmVjdCYg
Ym9yZGVyQm94CiAvLyBSZXR1cm4gdGhlIG9mZnNldCBmcm9tIHRoZSB0b3AtbGVmdCBvZiB0aGlz
IGNvbXBvc2l0aW5nIGxheWVyIGF0IHdoaWNoIHRoZSByZW5kZXJlcidzIGNvbnRlbnRzIGFyZSBw
YWludGVkLgogSW50U2l6ZSBSZW5kZXJMYXllckJhY2tpbmc6OmNvbnRlbnRPZmZzZXRJbkNvbXBv
c3RpbmdMYXllcigpCiB7Ci0gICAgaWYgKCFtX2NvbXBvc2l0aW5nQ29udGVudE9mZnNldERpcnR5
KQotICAgICAgICByZXR1cm4gbV9jb21wb3NpdGluZ0NvbnRlbnRPZmZzZXQ7Ci0KLSAgICBJbnRS
ZWN0IHJlbGF0aXZlQ29tcG9zaXRpbmdCb3VuZHMgPSBjb21wb3NpdG9yKCktPmNhbGN1bGF0ZUNv
bXBvc2l0ZWRCb3VuZHMobV9vd25pbmdMYXllciwgbV9vd25pbmdMYXllcik7Ci0gICAgbV9jb21w
b3NpdGluZ0NvbnRlbnRPZmZzZXQgPSBJbnRTaXplKC1yZWxhdGl2ZUNvbXBvc2l0aW5nQm91bmRz
LngoKSwgLXJlbGF0aXZlQ29tcG9zaXRpbmdCb3VuZHMueSgpKTsKLSAgICBtX2NvbXBvc2l0aW5n
Q29udGVudE9mZnNldERpcnR5ID0gZmFsc2U7CisgICAgaWYgKG1fY29tcG9zaXRlZEJvdW5kcyAh
PSBjb21wb3NpdG9yKCktPmNhbGN1bGF0ZUNvbXBvc2l0ZWRCb3VuZHMobV9vd25pbmdMYXllciwg
bV9vd25pbmdMYXllcikgJiYgIWNvbXBvc2l0b3IoKS0+Y29tcG9zaXRpbmdMYXllcnNOZWVkVXBk
YXRlKCkpCisgICAgICAgIGZwcmludGYoc3RkZXJyLCAiU3RhbGUgY29tcG9zaXRpbmcgb2Zmc2V0
XG4iKTsKIAotICAgIHJldHVybiBtX2NvbXBvc2l0aW5nQ29udGVudE9mZnNldDsKKyAgICByZXR1
cm4gSW50U2l6ZSgtbV9jb21wb3NpdGVkQm91bmRzLngoKSwgLW1fY29tcG9zaXRlZEJvdW5kcy55
KCkpOwogfQogCiBJbnRSZWN0IFJlbmRlckxheWVyQmFja2luZzo6Y29udGVudHNCb3goY29uc3Qg
R3JhcGhpY3NMYXllciopCkBAIC04ODEsNyArODg5LDcgQEAgdm9pZCBSZW5kZXJMYXllckJhY2tp
bmc6OnBhaW50Q29udGVudHMoY29uc3QgR3JhcGhpY3NMYXllciosIEdyYXBoaWNzQ29udGV4dCYg
Y28KIHsKICAgICAvLyBXZSBoYXZlIHRvIHVzZSB0aGUgc2FtZSByb290IGFzIGZvciBoaXQgdGVz
dGluZywgYmVjYXVzZSBib3RoIG1ldGhvZHMKICAgICAvLyBjYW4gY29tcHV0ZSBhbmQgY2FjaGUg
Y2xpcFJlY3RzLgotICAgIEludFJlY3QgZW5jbG9zaW5nQkJveCA9IGNvbXBvc2l0b3IoKS0+Y2Fs
Y3VsYXRlQ29tcG9zaXRlZEJvdW5kcyhtX293bmluZ0xheWVyLCBtX293bmluZ0xheWVyKTsKKyAg
ICBJbnRSZWN0IGVuY2xvc2luZ0JCb3ggPSBjb21wb3NpdGVkQm91bmRzKCk7CiAKICAgICBJbnRS
ZWN0IGNsaXBSZWN0KGNsaXApOwogICAgIApAQCAtMTAwMCw2ICsxMDA4LDE2IEBAIHZvaWQgUmVu
ZGVyTGF5ZXJCYWNraW5nOjpyZXN1bWVBbmltYXRpb25zKCkKICAgICBtX2dyYXBoaWNzTGF5ZXIt
PnJlc3VtZUFuaW1hdGlvbnMoKTsKIH0KIAorSW50UmVjdCBSZW5kZXJMYXllckJhY2tpbmc6OmNv
bXBvc2l0ZWRCb3VuZHMoKSBjb25zdAoreworICAgIHJldHVybiBtX2NvbXBvc2l0ZWRCb3VuZHM7
Cit9CisKK3ZvaWQgUmVuZGVyTGF5ZXJCYWNraW5nOjpzZXRDb21wb3NpdGVkQm91bmRzKGNvbnN0
IEludFJlY3QmIGJvdW5kcykKK3sKKyAgICBtX2NvbXBvc2l0ZWRCb3VuZHMgPSBib3VuZHM7CisK
K30KIGludCBSZW5kZXJMYXllckJhY2tpbmc6OmdyYXBoaWNzTGF5ZXJUb0NTU1Byb3BlcnR5KEFu
aW1hdGVkUHJvcGVydHlJRCBwcm9wZXJ0eSkKIHsKICAgICBpbnQgY3NzUHJvcGVydHkgPSBDU1NQ
cm9wZXJ0eUludmFsaWQ7CmRpZmYgLS1naXQgYS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXll
ckJhY2tpbmcuaCBiL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQmFja2luZy5oCmluZGV4
IGE2YTZjMWYuLjc3OWRjNmUgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxh
eWVyQmFja2luZy5oCisrKyBiL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQmFja2luZy5o
CkBAIC01Nyw4ICs1NywxMCBAQCBwdWJsaWM6CiAgICAgCiAgICAgLy8gUmV0dXJucyB0cnVlIGlm
IGxheWVyIGNvbmZpZ3VyYXRpb24gY2hhbmdlZC4KICAgICBib29sIHVwZGF0ZUdyYXBoaWNzTGF5
ZXJDb25maWd1cmF0aW9uKCk7Ci0gICAgdm9pZCB1cGRhdGVHcmFwaGljc0xheWVyR2VvbWV0cnko
KTsKLSAgICB2b2lkIHVwZGF0ZUludGVybmFsSGllcmFyY2h5KCk7CisgICAgLy8gVXBkYXRlIGdy
YXBoaWNzIGxheWVyIHBvc2l0aW9uIGFuZCBib3VuZHMuCisgICAgdm9pZCB1cGRhdGVHcmFwaGlj
c0xheWVyR2VvbWV0cnkoKTsgLy8gbWFrZSBwcml2YXRlCisgICAgLy8gVXBkYXRlIGNvbnRlbnRz
IGFuZCBjbGlwcGluZyBzdHJ1Y3R1cmUuCisgICAgdm9pZCB1cGRhdGVJbnRlcm5hbEhpZXJhcmNo
eSgpOyAvLyBtYWtlIHByaXZhdGUKICAgICAKICAgICBHcmFwaGljc0xheWVyKiBncmFwaGljc0xh
eWVyKCkgY29uc3QgeyByZXR1cm4gbV9ncmFwaGljc0xheWVyOyB9CiAKQEAgLTEwMCw2ICsxMDIs
OSBAQCBwdWJsaWM6CiAgICAgdm9pZCBzdXNwZW5kQW5pbWF0aW9ucygpOwogICAgIHZvaWQgcmVz
dW1lQW5pbWF0aW9ucygpOwogCisgICAgSW50UmVjdCBjb21wb3NpdGVkQm91bmRzKCkgY29uc3Q7
CisgICAgdm9pZCBzZXRDb21wb3NpdGVkQm91bmRzKGNvbnN0IEludFJlY3QmKTsKKwogICAgIEZs
b2F0UG9pbnQgZ3JhcGhpY3NMYXllclRvQ29udGVudHNDb29yZGluYXRlcyhjb25zdCBHcmFwaGlj
c0xheWVyKiwgY29uc3QgRmxvYXRQb2ludCYpOwogICAgIEZsb2F0UG9pbnQgY29udGVudHNUb0dy
YXBoaWNzTGF5ZXJDb29yZGluYXRlcyhjb25zdCBHcmFwaGljc0xheWVyKiwgY29uc3QgRmxvYXRQ
b2ludCYpOwogCkBAIC0xNTksMTAgKzE2NCw5IEBAIHByaXZhdGU6CiAgICAgR3JhcGhpY3NMYXll
ciogbV9jb250ZW50c0xheWVyOyAgICAgICAgIC8vIG9ubHkgdXNlZCBpbiBjYXNlcyB3aGVyZSB3
ZSBuZWVkIHRvIGRyYXcgdGhlIGZvcmVncm91bmQgc2VwYXJhdGVseQogICAgIEdyYXBoaWNzTGF5
ZXIqIG1fY2xpcHBpbmdMYXllcjsgICAgICAgICAvLyBvbmx5IHVzZWQgaWYgd2UgaGF2ZSBjbGlw
cGluZyBvbiBhIHN0YWNraW5nIGNvbnRleHQsIHdpdGggY29tcG9zaXRpbmcgY2hpbGRyZW4KIAot
ICAgIEludFNpemUgbV9jb21wb3NpdGluZ0NvbnRlbnRPZmZzZXQ7CisgICAgSW50UmVjdCBtX2Nv
bXBvc2l0ZWRCb3VuZHM7CiAKLSAgICBib29sIG1faGFzRGlyZWN0bHlDb21wb3NpdGVkQ29udGVu
dDogMTsKLSAgICBib29sIG1fY29tcG9zaXRpbmdDb250ZW50T2Zmc2V0RGlydHk6IDE7CisgICAg
Ym9vbCBtX2hhc0RpcmVjdGx5Q29tcG9zaXRlZENvbnRlbnQ7CiB9OwogCiB9IC8vIG5hbWVzcGFj
ZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckNvbXBv
c2l0b3IuY3BwIGIvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJDb21wb3NpdG9yLmNwcApp
bmRleCBlYjM2YzYzLi5kMDY2MjliIDEwMDY0NAotLS0gYS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJMYXllckNvbXBvc2l0b3IuY3BwCisrKyBiL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVy
Q29tcG9zaXRvci5jcHAKQEAgLTE3NSwxMiArMTc1LDExIEBAIHZvaWQgUmVuZGVyTGF5ZXJDb21w
b3NpdG9yOjp1cGRhdGVDb21wb3NpdGluZ0xheWVycyhSZW5kZXJMYXllciogdXBkYXRlUm9vdCkK
ICAgICBBU1NFUlQodXBkYXRlUm9vdCB8fCAhbV9jb21wb3NpdGluZ0xheWVyc05lZWRVcGRhdGUp
OwogfQogCi1ib29sIFJlbmRlckxheWVyQ29tcG9zaXRvcjo6dXBkYXRlTGF5ZXJDb21wb3NpdGlu
Z1N0YXRlKFJlbmRlckxheWVyKiBsYXllciwgQ29tcG9zaXRpbmdDaGFuZ2VSZXBhaW50IHNob3Vs
ZFJlcGFpbnQpCitib29sIFJlbmRlckxheWVyQ29tcG9zaXRvcjo6dXBkYXRlQmFja2luZyhSZW5k
ZXJMYXllciogbGF5ZXIsIENvbXBvc2l0aW5nQ2hhbmdlUmVwYWludCBzaG91bGRSZXBhaW50KQog
ewotICAgIGJvb2wgbmVlZHNMYXllciA9IG5lZWRzVG9CZUNvbXBvc2l0ZWQobGF5ZXIpOwogICAg
IGJvb2wgbGF5ZXJDaGFuZ2VkID0gZmFsc2U7CiAKLSAgICBpZiAobmVlZHNMYXllcikgeworICAg
IGlmIChuZWVkc1RvQmVDb21wb3NpdGVkKGxheWVyKSkgewogICAgICAgICBlbmFibGVDb21wb3Np
dGluZ01vZGUoKTsKICAgICAgICAgaWYgKCFsYXllci0+YmFja2luZygpKSB7CiAKQEAgLTIwOSw3
ICsyMDgsMTMgQEAgYm9vbCBSZW5kZXJMYXllckNvbXBvc2l0b3I6OnVwZGF0ZUxheWVyQ29tcG9z
aXRpbmdTdGF0ZShSZW5kZXJMYXllciogbGF5ZXIsIENvbXAKICAgICAgICAgdmlkZW8tPmFjY2Vs
ZXJhdGVkUmVuZGVyaW5nU3RhdGVDaGFuZ2VkKCk7CiAgICAgfQogI2VuZGlmCi0gICAgCisgICAg
cmV0dXJuIGxheWVyQ2hhbmdlZDsKK30KKworYm9vbCBSZW5kZXJMYXllckNvbXBvc2l0b3I6OnVw
ZGF0ZUxheWVyQ29tcG9zaXRpbmdTdGF0ZShSZW5kZXJMYXllciogbGF5ZXIsIENvbXBvc2l0aW5n
Q2hhbmdlUmVwYWludCBzaG91bGRSZXBhaW50KQoreworICAgIGJvb2wgbGF5ZXJDaGFuZ2VkID0g
dXBkYXRlQmFja2luZyhsYXllciwgc2hvdWxkUmVwYWludCk7CisKICAgICAvLyBTZWUgaWYgd2Ug
bmVlZCBjb250ZW50IG9yIGNsaXBwaW5nIGxheWVycy4gTWV0aG9kcyBjYWxsZWQgaGVyZSBzaG91
bGQgYXNzdW1lCiAgICAgLy8gdGhhdCB0aGUgY29tcG9zaXRpbmcgc3RhdGUgb2YgZGVzY2VuZGFu
dCBsYXllcnMgaGFzIG5vdCBiZWVuIHVwZGF0ZWQgeWV0LgogICAgIGlmIChsYXllci0+YmFja2lu
ZygpICYmIGxheWVyLT5iYWNraW5nKCktPnVwZGF0ZUdyYXBoaWNzTGF5ZXJDb25maWd1cmF0aW9u
KCkpCkBAIC0yMzUsNyArMjQwLDcgQEAgdm9pZCBSZW5kZXJMYXllckNvbXBvc2l0b3I6OnJlcGFp
bnRPbkNvbXBvc2l0aW5nQ2hhbmdlKFJlbmRlckxheWVyKiBsYXllcikKIAogLy8gVGhlIGJvdW5k
cyBvZiB0aGUgR3JhcGhpY3NMYXllciBjcmVhdGVkIGZvciBhIGNvbXBvc2l0aW5nIGxheWVyIGlz
IHRoZSB1bmlvbiBvZiB0aGUgYm91bmRzIG9mIGFsbCB0aGUgZGVzY2VuZGFudAogLy8gUmVuZGVy
TGF5ZXJzIHRoYXQgYXJlIHJlbmRlcmVkIGJ5IHRoZSBjb21wb3NpdGVkIFJlbmRlckxheWVyLgot
SW50UmVjdCBSZW5kZXJMYXllckNvbXBvc2l0b3I6OmNhbGN1bGF0ZUNvbXBvc2l0ZWRCb3VuZHMo
Y29uc3QgUmVuZGVyTGF5ZXIqIGxheWVyLCBjb25zdCBSZW5kZXJMYXllciogYW5jZXN0b3JMYXll
ciwgSW50UmVjdCogbGF5ZXJCb3VuZGluZ0JveCkKK0ludFJlY3QgUmVuZGVyTGF5ZXJDb21wb3Np
dG9yOjpjYWxjdWxhdGVDb21wb3NpdGVkQm91bmRzKGNvbnN0IFJlbmRlckxheWVyKiBsYXllciwg
Y29uc3QgUmVuZGVyTGF5ZXIqIGFuY2VzdG9yTGF5ZXIpCiB7CiAgICAgSW50UmVjdCBib3VuZGlu
Z0JveFJlY3QsIHVuaW9uQm91bmRzOwogICAgIGJvdW5kaW5nQm94UmVjdCA9IHVuaW9uQm91bmRz
ID0gbGF5ZXItPmxvY2FsQm91bmRpbmdCb3goKTsKQEAgLTI4NSwxMSArMjkwLDYgQEAgSW50UmVj
dCBSZW5kZXJMYXllckNvbXBvc2l0b3I6OmNhbGN1bGF0ZUNvbXBvc2l0ZWRCb3VuZHMoY29uc3Qg
UmVuZGVyTGF5ZXIqIGxheWUKICAgICBsYXllci0+Y29udmVydFRvTGF5ZXJDb29yZHMoYW5jZXN0
b3JMYXllciwgYW5jZXN0b3JSZWxYLCBhbmNlc3RvclJlbFkpOwogICAgIHVuaW9uQm91bmRzLm1v
dmUoYW5jZXN0b3JSZWxYLCBhbmNlc3RvclJlbFkpOwogCi0gICAgaWYgKGxheWVyQm91bmRpbmdC
b3gpIHsKLSAgICAgICAgYm91bmRpbmdCb3hSZWN0Lm1vdmUoYW5jZXN0b3JSZWxYLCBhbmNlc3Rv
clJlbFkpOwotICAgICAgICAqbGF5ZXJCb3VuZGluZ0JveCA9IGJvdW5kaW5nQm94UmVjdDsKLSAg
ICB9Ci0gICAgCiAgICAgcmV0dXJuIHVuaW9uQm91bmRzOwogfQogCkBAIC0zMDAsMTggKzMwMCwy
MiBAQCB2b2lkIFJlbmRlckxheWVyQ29tcG9zaXRvcjo6bGF5ZXJXYXNBZGRlZChSZW5kZXJMYXll
ciogLypwYXJlbnQqLywgUmVuZGVyTGF5ZXIqCiAKIHZvaWQgUmVuZGVyTGF5ZXJDb21wb3NpdG9y
OjpsYXllcldpbGxCZVJlbW92ZWQoUmVuZGVyTGF5ZXIqIHBhcmVudCwgUmVuZGVyTGF5ZXIqIGNo
aWxkKQogewotICAgIGlmIChjaGlsZC0+aXNDb21wb3NpdGVkKCkpCi0gICAgICAgIHNldENvbXBv
c2l0aW5nUGFyZW50KGNoaWxkLCAwKTsKLSAgICAKLSAgICAvLyBJZiB0aGUgZG9jdW1lbnQgaXMg
YmVpbmcgdG9ybiBkb3duIChkb2N1bWVudCdzIHJlbmRlcmVyKCkgaXMgbnVsbCksIHRoZW4gdGhl
cmUncwotICAgIC8vIG5vIG5lZWQgdG8gZG8gYW55IGxheWVyIHVwZGF0aW5nLgotICAgIGlmIChw
YXJlbnQtPnJlbmRlcmVyKCktPmRvY3VtZW50QmVpbmdEZXN0cm95ZWQoKSkKKyAgICBpZiAoIWNo
aWxkLT5pc0NvbXBvc2l0ZWQoKSB8fCBwYXJlbnQtPnJlbmRlcmVyKCktPmRvY3VtZW50QmVpbmdE
ZXN0cm95ZWQoKSkKICAgICAgICAgcmV0dXJuOwogCisgICAgc2V0Q29tcG9zaXRpbmdQYXJlbnQo
Y2hpbGQsIDApOworICAgIAogICAgIFJlbmRlckxheWVyKiBjb21wTGF5ZXIgPSBwYXJlbnQtPmVu
Y2xvc2luZ0NvbXBvc2l0aW5nTGF5ZXIoKTsKICAgICBpZiAoY29tcExheWVyKSB7Ci0gICAgICAg
IEludFJlY3QgYW5jZXN0b3JSZWN0ID0gY2FsY3VsYXRlQ29tcG9zaXRlZEJvdW5kcyhjaGlsZCwg
Y29tcExheWVyKTsKLSAgICAgICAgY29tcExheWVyLT5zZXRCYWNraW5nTmVlZHNSZXBhaW50SW5S
ZWN0KGFuY2VzdG9yUmVjdCk7CisgICAgICAgIEFTU0VSVChjb21wTGF5ZXItPmJhY2tpbmcoKSk7
CisgICAgICAgIEludFJlY3QgY29tcEJvdW5kcyA9IGNoaWxkLT5iYWNraW5nKCktPmNvbXBvc2l0
ZWRCb3VuZHMoKTsKKworICAgICAgICBpbnQgb2Zmc2V0WCA9IDAsIG9mZnNldFkgPSAwOworICAg
ICAgICBjaGlsZC0+Y29udmVydFRvTGF5ZXJDb29yZHMoY29tcExheWVyLCBvZmZzZXRYLCBvZmZz
ZXRZKTsKKyAgICAgICAgY29tcEJvdW5kcy5tb3ZlKG9mZnNldFgsIG9mZnNldFkpOworCisgICAg
ICAgIGNvbXBMYXllci0+c2V0QmFja2luZ05lZWRzUmVwYWludEluUmVjdChjb21wQm91bmRzKTsK
KwogICAgICAgICAvLyBUaGUgY29udGVudHMgb2YgdGhpcyBsYXllciBtYXkgYmUgbW92aW5nIGZy
b20gYSBHcmFwaGljc0xheWVyIHRvIHRoZSB3aW5kb3csCiAgICAgICAgIC8vIHNvIHdlIG5lZWQg
dG8gbWFrZSBzdXJlIHRoZSB3aW5kb3cgc3lzdGVtIHN5bmNocm9uaXplcyB0aG9zZSBjaGFuZ2Vz
IG9uIHRoZSBzY3JlZW4uCiAgICAgICAgIG1fcmVuZGVyVmlldy0+ZnJhbWVWaWV3KCktPnNldE5l
ZWRzT25lU2hvdERyYXdpbmdTeW5jaHJvbml6YXRpb24oKTsKQEAgLTQzMSw2ICs0MzUsOSBAQCB2
b2lkIFJlbmRlckxheWVyQ29tcG9zaXRvcjo6Y29tcHV0ZUNvbXBvc2l0aW5nUmVxdWlyZW1lbnRz
KFJlbmRlckxheWVyKiBsYXllciwgcwogICAgIC8vIHRoaXMgY2FuIGFmZmVjdCB0aGUgYW5zd2Vy
IHRvIG5lZWRzVG9CZUNvbXBvc2l0ZWQoKSB3aGVuIGNsaXBwaW5nLAogICAgIC8vIGJ1dCB0aGF0
J3Mgb2sgaGVyZS4KICAgICBsYXllci0+c2V0SGFzQ29tcG9zaXRpbmdEZXNjZW5kYW50KGNoaWxk
U3RhdGUubV9zdWJ0cmVlSXNDb21wb3NpdGluZyk7CisKKyAgICAvLyBVcGRhdGUgYmFja2luZyBu
b3csIHNvIHRoYXQgd2UgY2FuIHVzZSBpc0NvbXBvc2l0ZWQoKSByZWxpYWJseSBkdXJpbmcgdHJl
ZSB0cmF2ZXJzYWwgaW4gcmVidWlsZENvbXBvc2l0aW5nTGF5ZXJUcmVlKCkuCisgICAgdXBkYXRl
QmFja2luZyhsYXllciwgQ29tcG9zaXRpbmdDaGFuZ2VSZXBhaW50Tm93KTsKIH0KIAogdm9pZCBS
ZW5kZXJMYXllckNvbXBvc2l0b3I6OnNldENvbXBvc2l0aW5nUGFyZW50KFJlbmRlckxheWVyKiBj
aGlsZExheWVyLCBSZW5kZXJMYXllciogcGFyZW50TGF5ZXIpCkBAIC00ODcsMTIgKzQ5NCwyNCBA
QCBib29sIFJlbmRlckxheWVyQ29tcG9zaXRvcjo6Y2FuQWNjZWxlcmF0ZVZpZGVvUmVuZGVyaW5n
KFJlbmRlclZpZGVvKiBvKSBjb25zdAogCiB2b2lkIFJlbmRlckxheWVyQ29tcG9zaXRvcjo6cmVi
dWlsZENvbXBvc2l0aW5nTGF5ZXJUcmVlKFJlbmRlckxheWVyKiBsYXllciwgc3RydWN0IENvbXBv
c2l0aW5nU3RhdGUmIGlvQ29tcFN0YXRlKQogewotICAgIGJvb2wgd2FzQ29tcG9zaXRlZCA9IGxh
eWVyLT5pc0NvbXBvc2l0ZWQoKTsKLQogICAgIC8vIE1ha2UgdGhlIGxheWVyIGNvbXBvc2l0aW5n
IGlmIG5lY2Vzc2FyeSwgYW5kIHNldCB1cCBjbGlwcGluZyBhbmQgY29udGVudCBsYXllcnMuCiAg
ICAgLy8gTm90ZSB0aGF0IHdlIGNhbiBvbmx5IGRvIHdvcmsgaGVyZSB0aGF0IGlzIGluZGVwZW5k
ZW50IG9mIHdoZXRoZXIgdGhlIGRlc2NlbmRhbnQgbGF5ZXJzCiAgICAgLy8gaGF2ZSBiZWVuIHBy
b2Nlc3NlZC4gY29tcHV0ZUNvbXBvc2l0aW5nUmVxdWlyZW1lbnRzKCkgd2lsbCBhbHJlYWR5IGhh
dmUgZG9uZSB0aGUgcmVwYWludCBpZiBuZWNlc3NhcnkuCi0gICAgdXBkYXRlTGF5ZXJDb21wb3Np
dGluZ1N0YXRlKGxheWVyLCBDb21wb3NpdGluZ0NoYW5nZVdpbGxSZXBhaW50TGF0ZXIpOworICAg
IFJlbmRlckxheWVyQmFja2luZyogbGF5ZXJCYWNraW5nID0gbGF5ZXItPmJhY2tpbmcoKTsKKyAg
ICBpZiAobGF5ZXJCYWNraW5nKSB7CisgICAgICAgIC8vIFRoZSBjb21wb3NpdGluZyBzdGF0ZSBv
ZiBhbGwgb3VyIGNoaWxkcmVuIGhhcyBiZWVuIHVwZGF0ZWQgYWxyZWFkeSwgc28gbm93CisgICAg
ICAgIC8vIHdlIGNhbiBjb21wdXRlIGFuZCBjYWNoZSB0aGUgY29tcG9zaXRlZCBib3VuZHMgZm9y
IHRoaXMgbGF5ZXIuCisgICAgICAgIGxheWVyQmFja2luZy0+c2V0Q29tcG9zaXRlZEJvdW5kcyhj
YWxjdWxhdGVDb21wb3NpdGVkQm91bmRzKGxheWVyLCBsYXllcikpOworCisgICAgICAgIGxheWVy
QmFja2luZy0+dXBkYXRlR3JhcGhpY3NMYXllckNvbmZpZ3VyYXRpb24oKTsKKyAgICAgICAgbGF5
ZXJCYWNraW5nLT51cGRhdGVHcmFwaGljc0xheWVyR2VvbWV0cnkoKTsKKworICAgICAgICBpZiAo
IWxheWVyLT5wYXJlbnQoKSkKKyAgICAgICAgICAgIHVwZGF0ZVJvb3RMYXllclBvc2l0aW9uKCk7
CisKKyAgICAgICAgLy8gRklYTUU6IG1ha2UgdGhpcyBtb3JlIGluY3JlbWVudGFsCisgICAgICAg
IGxheWVyQmFja2luZy0+cGFyZW50Rm9yU3VibGF5ZXJzKCktPnJlbW92ZUFsbENoaWxkcmVuKCk7
CisgICAgfQogCiAgICAgLy8gaG9zdCB0aGUgZG9jdW1lbnQgbGF5ZXIgaW4gdGhlIFJlbmRlclZp
ZXcncyByb290IGxheWVyCiAgICAgaWYgKGxheWVyLT5pc1Jvb3RMYXllcigpKQpAQCAtNTA2LDE0
ICs1MjUsNiBAQCB2b2lkIFJlbmRlckxheWVyQ29tcG9zaXRvcjo6cmVidWlsZENvbXBvc2l0aW5n
TGF5ZXJUcmVlKFJlbmRlckxheWVyKiBsYXllciwgc3RydQogICAgICsrY2hpbGRTdGF0ZS5tX2Rl
cHRoOwogI2VuZGlmCiAKLSAgICBSZW5kZXJMYXllckJhY2tpbmcqIGxheWVyQmFja2luZyA9IGxh
eWVyLT5iYWNraW5nKCk7Ci0gICAgCi0gICAgLy8gRklYTUU6IG1ha2UgdGhpcyBtb3JlIGluY3Jl
bWVudGFsCi0gICAgaWYgKGxheWVyQmFja2luZykgewotICAgICAgICBsYXllckJhY2tpbmctPnBh
cmVudEZvclN1YmxheWVycygpLT5yZW1vdmVBbGxDaGlsZHJlbigpOwotICAgICAgICBsYXllckJh
Y2tpbmctPnVwZGF0ZUludGVybmFsSGllcmFyY2h5KCk7Ci0gICAgfQotICAgIAogICAgIC8vIFRo
ZSBjaGlsZHJlbiBvZiB0aGlzIHN0YWNraW5nIGNvbnRleHQgZG9uJ3QgbmVlZCB0byBjb21wb3Np
dGUsIHVubGVzcyB0aGVyZSBpcwogICAgIC8vIGEgY29tcG9zaXRpbmcgbGF5ZXIgYW1vbmcgdGhl
bSwgc28gc3RhcnQgYnkgYXNzdW1pbmcgZmFsc2UuCiAgICAgY2hpbGRTdGF0ZS5tX3N1YnRyZWVJ
c0NvbXBvc2l0aW5nID0gZmFsc2U7CkBAIC01NjIsMTcgKzU3Myw0NCBAQCB2b2lkIFJlbmRlckxh
eWVyQ29tcG9zaXRvcjo6cmVidWlsZENvbXBvc2l0aW5nTGF5ZXJUcmVlKFJlbmRlckxheWVyKiBs
YXllciwgc3RydQogICAgICAgICAgICAgfQogICAgICAgICB9CiAgICAgfQorfQorCisKKy8vIFJl
Y3VycyBkb3duIHRoZSBSZW5kZXJMYXllciB0cmVlIHVudGlsIGl0cyBmaW5kcyB0aGUgY29tcG9z
aXRpbmcgZGVzY2VuZGFudHMgb2YgY29tcG9zaXRpbmdBbmNlc3RvciBhbmQgdXBkYXRlcyB0aGVp
ciBnZW9tZXRyeS4KK3ZvaWQgUmVuZGVyTGF5ZXJDb21wb3NpdG9yOjp1cGRhdGVDb21wb3NpdGlu
Z0NoaWxkcmVuR2VvbWV0cnkoUmVuZGVyTGF5ZXIqIGNvbXBvc2l0aW5nQW5jZXN0b3IsIFJlbmRl
ckxheWVyKiBsYXllcikKK3sKKyAgICBpZiAobGF5ZXIgIT0gY29tcG9zaXRpbmdBbmNlc3Rvcikg
eworICAgICAgICBpZiAoUmVuZGVyTGF5ZXJCYWNraW5nKiBsYXllckJhY2tpbmcgPSBsYXllci0+
YmFja2luZygpKSB7CisgICAgICAgICAgICBsYXllckJhY2tpbmctPnNldENvbXBvc2l0ZWRCb3Vu
ZHMoY2FsY3VsYXRlQ29tcG9zaXRlZEJvdW5kcyhsYXllciwgbGF5ZXIpKTsKKyAgICAgICAgICAg
IGxheWVyQmFja2luZy0+dXBkYXRlR3JhcGhpY3NMYXllckdlb21ldHJ5KCk7CisgICAgICAgICAg
ICByZXR1cm47CisgICAgICAgIH0KKyAgICB9CisKKyAgICBpZiAoIWxheWVyLT5oYXNDb21wb3Np
dGluZ0Rlc2NlbmRhbnQoKSkKKyAgICAgICAgcmV0dXJuOwogICAgIAotICAgIGlmIChsYXllckJh
Y2tpbmcpIHsKLSAgICAgICAgLy8gRG8gd29yayBoZXJlIHRoYXQgcmVxdWlyZXMgdGhhdCB3ZSd2
ZSBwcm9jZXNzZWQgYWxsIG9mIHRoZSBkZXNjZW5kYW50IGxheWVycwotICAgICAgICBsYXllckJh
Y2tpbmctPnVwZGF0ZUdyYXBoaWNzTGF5ZXJHZW9tZXRyeSgpOwotICAgIH0gZWxzZSBpZiAod2Fz
Q29tcG9zaXRlZCkgewotICAgICAgICAvLyBXZSBzdG9wcGVkIGJlaW5nIGEgY29tcG9zaXRpbmcg
bGF5ZXIuIE5vdyB0aGF0IG91ciBkZXNjZW5kYW50cyBoYXZlIGJlZW4gdWRhdGVkLCB3ZSBjYW4K
LSAgICAgICAgLy8gcmVwYWludCBvdXIgbmV3IHJlbmRlcmluZyBkZXN0aW5hdGlvbi4KLSAgICAg
ICAgcmVwYWludE9uQ29tcG9zaXRpbmdDaGFuZ2UobGF5ZXIpOworICAgIGlmIChsYXllci0+aXNT
dGFja2luZ0NvbnRleHQoKSkgeworICAgICAgICBpZiAoVmVjdG9yPFJlbmRlckxheWVyKj4qIG5l
Z1pPcmRlckxpc3QgPSBsYXllci0+bmVnWk9yZGVyTGlzdCgpKSB7CisgICAgICAgICAgICBmb3Ig
KHNpemVfdCBpID0gMDsgaSA8IG5lZ1pPcmRlckxpc3QtPnNpemUoKTsgKytpKQorICAgICAgICAg
ICAgICAgIHVwZGF0ZUNvbXBvc2l0aW5nQ2hpbGRyZW5HZW9tZXRyeShjb21wb3NpdGluZ0FuY2Vz
dG9yLCBuZWdaT3JkZXJMaXN0LT5hdChpKSk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBpZiAo
VmVjdG9yPFJlbmRlckxheWVyKj4qIG5vcm1hbEZsb3dMaXN0ID0gbGF5ZXItPm5vcm1hbEZsb3dM
aXN0KCkpIHsKKyAgICAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBub3JtYWxGbG93TGlzdC0+
c2l6ZSgpOyArK2kpCisgICAgICAgICAgICB1cGRhdGVDb21wb3NpdGluZ0NoaWxkcmVuR2VvbWV0
cnkoY29tcG9zaXRpbmdBbmNlc3Rvciwgbm9ybWFsRmxvd0xpc3QtPmF0KGkpKTsKKyAgICB9Cisg
ICAgCisgICAgaWYgKGxheWVyLT5pc1N0YWNraW5nQ29udGV4dCgpKSB7CisgICAgICAgIGlmIChW
ZWN0b3I8UmVuZGVyTGF5ZXIqPiogcG9zWk9yZGVyTGlzdCA9IGxheWVyLT5wb3NaT3JkZXJMaXN0
KCkpIHsKKyAgICAgICAgICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgcG9zWk9yZGVyTGlzdC0+
c2l6ZSgpOyArK2kpCisgICAgICAgICAgICAgICAgdXBkYXRlQ29tcG9zaXRpbmdDaGlsZHJlbkdl
b21ldHJ5KGNvbXBvc2l0aW5nQW5jZXN0b3IsIHBvc1pPcmRlckxpc3QtPmF0KGkpKTsKKyAgICAg
ICAgfQogICAgIH0KIH0KIAorCiB2b2lkIFJlbmRlckxheWVyQ29tcG9zaXRvcjo6cmVwYWludENv
bXBvc2l0ZWRMYXllcnNBYnNvbHV0ZVJlY3QoY29uc3QgSW50UmVjdCYgYWJzUmVjdCkKIHsKICAg
ICByZWN1cnNpdmVSZXBhaW50TGF5ZXJSZWN0KHJvb3RSZW5kZXJMYXllcigpLCBhYnNSZWN0KTsK
ZGlmZiAtLWdpdCBhL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQ29tcG9zaXRvci5oIGIv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJDb21wb3NpdG9yLmgKaW5kZXggZjAxY2ExYy4u
YzUyMjE4MCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJDb21wb3Np
dG9yLmgKKysrIGIvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJDb21wb3NpdG9yLmgKQEAg
LTY5LDYgKzY5LDkgQEAgcHVibGljOgogICAgIGVudW0gQ29tcG9zaXRpbmdDaGFuZ2VSZXBhaW50
IHsgQ29tcG9zaXRpbmdDaGFuZ2VSZXBhaW50Tm93LCBDb21wb3NpdGluZ0NoYW5nZVdpbGxSZXBh
aW50TGF0ZXIgfTsKICAgICBib29sIHVwZGF0ZUxheWVyQ29tcG9zaXRpbmdTdGF0ZShSZW5kZXJM
YXllciosIENvbXBvc2l0aW5nQ2hhbmdlUmVwYWludCA9IENvbXBvc2l0aW5nQ2hhbmdlUmVwYWlu
dE5vdyk7CiAKKyAgICAvLyBVcGRhdGUgdGhlIGdlb21ldHJ5IGZvciBjb21wb3NpdGluZyBjaGls
ZHJlbiBvZiBjb21wb3NpdGluZ0FuY2VzdG9yLgorICAgIHZvaWQgdXBkYXRlQ29tcG9zaXRpbmdD
aGlsZHJlbkdlb21ldHJ5KFJlbmRlckxheWVyKiBjb21wb3NpdGluZ0FuY2VzdG9yLCBSZW5kZXJM
YXllciogbGF5ZXIpOworICAgIAogICAgIC8vIFdoZXRoZXIgbGF5ZXIncyBiYWNraW5nIG5lZWRz
IGEgZ3JhcGhpY3MgbGF5ZXIgdG8gZG8gY2xpcHBpbmcgYnkgYW4gYW5jZXN0b3IgKG5vbi1zdGFj
a2luZy1jb250ZXh0IHBhcmVudCB3aXRoIG92ZXJmbG93KS4KICAgICBib29sIGNsaXBwZWRCeUFu
Y2VzdG9yKFJlbmRlckxheWVyKikgY29uc3Q7CiAgICAgLy8gV2hldGhlciBsYXllcidzIGJhY2tp
bmcgbmVlZHMgYSBncmFwaGljcyBsYXllciB0byBjbGlwIHotb3JkZXIgY2hpbGRyZW4gb2YgdGhl
IGdpdmVuIGxheWVyLgpAQCAtNzgsNyArODEsNyBAQCBwdWJsaWM6CiAgICAgYm9vbCBuZWVkc0Nv
bnRlbnRzQ29tcG9zaXRpbmdMYXllcihjb25zdCBSZW5kZXJMYXllciopIGNvbnN0OwogICAgIC8v
IFJldHVybiB0aGUgYm91bmRpbmcgYm94IHJlcXVpcmVkIGZvciBjb21wb3NpdGluZyBsYXllciBh
bmQgaXRzIGNoaWxkZXJuLCByZWxhdGl2ZSB0byBhbmNlc3RvckxheWVyLgogICAgIC8vIElmIGxh
eWVyQm91bmRpbmdCb3ggaXMgbm90IDAsIG9uIHJldHVybiBpdCBjb250YWlucyB0aGUgYm91bmRp
bmcgYm94IG9mIHRoaXMgbGF5ZXIgb25seS4KLSAgICBJbnRSZWN0IGNhbGN1bGF0ZUNvbXBvc2l0
ZWRCb3VuZHMoY29uc3QgUmVuZGVyTGF5ZXIqIGxheWVyLCBjb25zdCBSZW5kZXJMYXllciogYW5j
ZXN0b3JMYXllciwgSW50UmVjdCogbGF5ZXJCb3VuZGluZ0JveCA9IDApOworICAgIEludFJlY3Qg
Y2FsY3VsYXRlQ29tcG9zaXRlZEJvdW5kcyhjb25zdCBSZW5kZXJMYXllciogbGF5ZXIsIGNvbnN0
IFJlbmRlckxheWVyKiBhbmNlc3RvckxheWVyKTsKIAogICAgIC8vIFJlcGFpbnQgdGhlIGFwcHJv
cHJpYXRlIGxheWVycyB3aGVuIHRoZSBnaXZlbiBSZW5kZXJMYXllciBzdGFydHMgb3Igc3RvcHMg
YmVpbmcgY29tcG9zaXRlZC4KICAgICB2b2lkIHJlcGFpbnRPbkNvbXBvc2l0aW5nQ2hhbmdlKFJl
bmRlckxheWVyKik7CkBAIC0xMTYsNiArMTE5LDkgQEAgcHJpdmF0ZToKICAgICAvLyBXaGV0aGVy
IHRoZSBsYXllciBoYXMgYW4gaW50cmluc2ljIG5lZWQgZm9yIGNvbXBvc2l0aW5nIGxheWVyLgog
ICAgIGJvb2wgcmVxdWlyZXNDb21wb3NpdGluZ0xheWVyKGNvbnN0IFJlbmRlckxheWVyKikgY29u
c3Q7CiAKKyAgICAvLyBNYWtlIG9yIGRlc3Ryb3kgdGhlIGJhY2tpbmcgZm9yIHRoaXMgbGF5ZXI7
IHJldHVybnMgdHJ1ZSBpZiBiYWNraW5nIGNoYW5nZWQuCisgICAgYm9vbCB1cGRhdGVCYWNraW5n
KFJlbmRlckxheWVyKiwgQ29tcG9zaXRpbmdDaGFuZ2VSZXBhaW50IHNob3VsZFJlcGFpbnQpOwor
CiAgICAgLy8gUmVwYWludCB0aGUgZ2l2ZW4gcmVjdCAod2hpY2ggaXMgbGF5ZXIncyBjb29yZHMp
LCBhbmQgcmVnaW9ucyBvZiBjaGlsZCBsYXllcnMgdGhhdCBpbnRlcnNlY3QgdGhhdCByZWN0Lgog
ICAgIHZvaWQgcmVjdXJzaXZlUmVwYWludExheWVyUmVjdChSZW5kZXJMYXllciogbGF5ZXIsIGNv
bnN0IEludFJlY3QmIHJlY3QpOwogCg==
</data>
<flag name="review"
          id="16287"
          type_id="1"
          status="+"
          setter="hyatt"
    />
          </attachment>
      

    </bug>

</bugzilla>