<?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>25268</bug_id>
          
          <creation_ts>2009-04-17 09:55:15 -0700</creation_ts>
          <short_desc>Move RenderPath and RenderSVGContainer onto a unified clippedOverflowRectForRepaint on RenderSVGModelObject</short_desc>
          <delta_ts>2009-04-17 10:43:29 -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>SVG</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></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>20769</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Eric Seidel (no email)">eric</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>aglenning</cc>
    
    <cc>deanm</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>zimmermann</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>117919</commentid>
    <comment_count>0</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2009-04-17 09:55:15 -0700</bug_when>
    <thetext>Move RenderPath and RenderSVGContainer onto a unified clippedOverflowRectForRepaint on RenderSVGModelObject

Surprisingly this caused improvements in 3 test cases!  I love fixing bugs w/o trying!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>117921</commentid>
    <comment_count>1</comment_count>
      <attachid>29579</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2009-04-17 09:56:00 -0700</bug_when>
    <thetext>Created attachment 29579
        Reviewed by Simon Fraser.


        Remove more dead code from RenderSVGHiddenContainer.

        lineHeight and baselinePosition used to be on RenderSVGContainer
        (of which this is a subclass) because RenderSVGContainer used
        to be a RenderBox and always the renderer for &lt;svg&gt;
        Now &lt;svg&gt; uses RenderSVGRoot when needing a RenderBox (inside HTML)
        and RenderSVGViewportContainer (when inside SVG content)
        so there is no need for RenderSVGHiddenContainer to have these HTML-specific methods.

        * rendering/RenderSVGHiddenContainer.cpp:
        * rendering/RenderSVGHiddenContainer.h:

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@42555 268f45cc-cd09-0410-ab3c-d52691b4dbfc
---
 1 files changed, 16 insertions(+), 0 deletions(-)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>117922</commentid>
    <comment_count>2</comment_count>
      <attachid>29580</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2009-04-17 09:56:02 -0700</bug_when>
    <thetext>Created attachment 29580
Move RenderPath and RenderSVGContainer onto a unified clippedOverflowRectForRepaint

 15 files changed, 111 insertions(+), 57 deletions(-)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>117923</commentid>
    <comment_count>3</comment_count>
      <attachid>29579</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2009-04-17 09:57:24 -0700</bug_when>
    <thetext>Comment on attachment 29579
        Reviewed by Simon Fraser.

Git is confused.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>117924</commentid>
    <comment_count>4</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2009-04-17 10:00:37 -0700</bug_when>
    <thetext>I think this also has caused a small improvement to bug 14015.  However, bug 14015 will be fixed (very easily) once all this refactoring is done. :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>117927</commentid>
    <comment_count>5</comment_count>
      <attachid>29581</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2009-04-17 10:06:51 -0700</bug_when>
    <thetext>Created attachment 29581
Move RenderPath and RenderSVGContainer onto a unified clippedOverflowRectForRepaint

 15 files changed, 121 insertions(+), 57 deletions(-)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>117930</commentid>
    <comment_count>6</comment_count>
      <attachid>29581</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2009-04-17 10:17:06 -0700</bug_when>
    <thetext>Comment on attachment 29581
Move RenderPath and RenderSVGContainer onto a unified clippedOverflowRectForRepaint

r=me with renaming of m_maximumPaintedRect to something more informative</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>117937</commentid>
    <comment_count>7</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2009-04-17 10:28:48 -0700</bug_when>
    <thetext>*** Bug 21968 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>117939</commentid>
    <comment_count>8</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2009-04-17 10:29:46 -0700</bug_when>
    <thetext>*** Bug 20769 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>117942</commentid>
    <comment_count>9</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2009-04-17 10:43:29 -0700</bug_when>
    <thetext>Committing to http://svn.webkit.org/repository/webkit/trunk ...
	M	LayoutTests/ChangeLog
	M	LayoutTests/platform/mac/svg/custom/focus-ring-expected.checksum
	M	LayoutTests/platform/mac/svg/custom/focus-ring-expected.png
	M	LayoutTests/platform/mac/svg/custom/marker-overflow-clip-expected.txt
	M	LayoutTests/platform/mac/svg/custom/scroll-hit-test-expected.checksum
	M	LayoutTests/platform/mac/svg/custom/scroll-hit-test-expected.png
	M	WebCore/ChangeLog
	M	WebCore/rendering/RenderPath.cpp
	M	WebCore/rendering/RenderPath.h
	M	WebCore/rendering/RenderSVGContainer.cpp
	M	WebCore/rendering/RenderSVGContainer.h
	M	WebCore/rendering/RenderSVGModelObject.cpp
	M	WebCore/rendering/RenderSVGModelObject.h
	M	WebCore/rendering/RenderSVGRoot.cpp
	M	WebCore/rendering/RenderSVGRoot.h
Committed r42613

YAY!</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>29579</attachid>
            <date>2009-04-17 09:56:00 -0700</date>
            <delta_ts>2009-04-17 09:57:24 -0700</delta_ts>
            <desc>        Reviewed by Simon Fraser.</desc>
            <filename>-Reviewed-by-Simon-Fraser..patch</filename>
            <type>text/plain</type>
            <size>1040</size>
            <attacher name="Eric Seidel (no email)">eric</attacher>
            
              <data encoding="base64">ZjY1NWRmYTZhNTIxYTEzMDVkYzU0M2RkMzZlYjRjNWYwNDRmNjBjMwpkaWZmIC0tZ2l0IGEvV2Vi
Q29yZS9DaGFuZ2VMb2cgYi9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCA4NDE3OWVkLi4xMmQ0NzMw
IDEwMDY0NAotLS0gYS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9XZWJDb3JlL0NoYW5nZUxvZwpA
QCAtNjY4LDYgKzY2OCwyMiBAQAogCiAgICAgICAgIFJldmlld2VkIGJ5IFNpbW9uIEZyYXNlci4K
IAorICAgICAgICBSZW1vdmUgbW9yZSBkZWFkIGNvZGUgZnJvbSBSZW5kZXJTVkdIaWRkZW5Db250
YWluZXIuCisKKyAgICAgICAgbGluZUhlaWdodCBhbmQgYmFzZWxpbmVQb3NpdGlvbiB1c2VkIHRv
IGJlIG9uIFJlbmRlclNWR0NvbnRhaW5lcgorICAgICAgICAob2Ygd2hpY2ggdGhpcyBpcyBhIHN1
YmNsYXNzKSBiZWNhdXNlIFJlbmRlclNWR0NvbnRhaW5lciB1c2VkCisgICAgICAgIHRvIGJlIGEg
UmVuZGVyQm94IGFuZCBhbHdheXMgdGhlIHJlbmRlcmVyIGZvciA8c3ZnPgorICAgICAgICBOb3cg
PHN2Zz4gdXNlcyBSZW5kZXJTVkdSb290IHdoZW4gbmVlZGluZyBhIFJlbmRlckJveCAoaW5zaWRl
IEhUTUwpCisgICAgICAgIGFuZCBSZW5kZXJTVkdWaWV3cG9ydENvbnRhaW5lciAod2hlbiBpbnNp
ZGUgU1ZHIGNvbnRlbnQpCisgICAgICAgIHNvIHRoZXJlIGlzIG5vIG5lZWQgZm9yIFJlbmRlclNW
R0hpZGRlbkNvbnRhaW5lciB0byBoYXZlIHRoZXNlIEhUTUwtc3BlY2lmaWMgbWV0aG9kcy4KKwor
ICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJTVkdIaWRkZW5Db250YWluZXIuY3BwOgorICAgICAg
ICAqIHJlbmRlcmluZy9SZW5kZXJTVkdIaWRkZW5Db250YWluZXIuaDoKKworMjAwOS0wNC0xNSAg
RXJpYyBTZWlkZWwgIDxlcmljQHdlYmtpdC5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgU2lt
b24gRnJhc2VyLgorCiAgICAgICAgIFJlbW92ZSB1bm5lZWRlZCAoYnJva2VuKSBjb2RlIGZyb20g
U1ZHIHJlbmRlcmVycwogICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MjUyMTQKIAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>29580</attachid>
            <date>2009-04-17 09:56:02 -0700</date>
            <delta_ts>2009-04-17 10:07:01 -0700</delta_ts>
            <desc>Move RenderPath and RenderSVGContainer onto a unified clippedOverflowRectForRepaint</desc>
            <filename>Move-RenderPath-and-RenderSVGContainer-onto-a-unified-clippedOverflowRectForRepaint.patch</filename>
            <type>text/plain</type>
            <size>16953</size>
            <attacher name="Eric Seidel (no email)">eric</attacher>
            
              <data encoding="base64">NmY1MTI4MjliNWM0OTY3NjA2MWQ4YjZmMjkyNjFmYTdmMzhiNDRhMQpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDdmZWJlMmIu
LjAyYzIxNzMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRU
ZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNiBAQAorMjAwOS0wNC0xNyAgRXJpYyBTZWlkZWwg
IDxlcmljQHdlYmtpdC5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgTW92ZSBSZW5kZXJQYXRoIGFuZCBSZW5kZXJTVkdDb250YWluZXIgb250byBh
IHVuaWZpZWQgY2xpcHBlZE92ZXJmbG93UmVjdEZvclJlcGFpbnQKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTI1MjY4CisKKyAgICAgICAgKiBwbGF0Zm9y
bS9tYWMvc3ZnL2N1c3RvbS9mb2N1cy1yaW5nLWV4cGVjdGVkLmNoZWNrc3VtOgorICAgICAgICAq
IHBsYXRmb3JtL21hYy9zdmcvY3VzdG9tL2ZvY3VzLXJpbmctZXhwZWN0ZWQucG5nOgorICAgICAg
ICAqIHBsYXRmb3JtL21hYy9zdmcvY3VzdG9tL21hcmtlci1vdmVyZmxvdy1jbGlwLWV4cGVjdGVk
LnR4dDoKKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvc3ZnL2N1c3RvbS9zY3JvbGwtaGl0LXRlc3Qt
ZXhwZWN0ZWQuY2hlY2tzdW06CisgICAgICAgICogcGxhdGZvcm0vbWFjL3N2Zy9jdXN0b20vc2Ny
b2xsLWhpdC10ZXN0LWV4cGVjdGVkLnBuZzoKKwogMjAwOS0wNC0xNyAgQ2hyaXMgRmxlaXphY2gg
IDxjZmxlaXphY2hAYXBwbGUuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSBEYXJp
biBBZGxlci4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9zdmcvY3VzdG9t
L2ZvY3VzLXJpbmctZXhwZWN0ZWQuY2hlY2tzdW0gYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMv
c3ZnL2N1c3RvbS9mb2N1cy1yaW5nLWV4cGVjdGVkLmNoZWNrc3VtCmluZGV4IDNiOTY2M2MuLjIw
MjdjNmIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9zdmcvY3VzdG9tL2Zv
Y3VzLXJpbmctZXhwZWN0ZWQuY2hlY2tzdW0KKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFj
L3N2Zy9jdXN0b20vZm9jdXMtcmluZy1leHBlY3RlZC5jaGVja3N1bQpAQCAtMSArMSBAQAotYmM0
ZDJjYzg0OWQ4MWExZGI2OGZhZTFhYzdlOWYyZmUKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxl
CitiMDI3MWJhMzYyNzQ2NjY4YWE2OThiMWRjMTJkMzM5MwpcIE5vIG5ld2xpbmUgYXQgZW5kIG9m
IGZpbGUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9zdmcvY3VzdG9tL2Zv
Y3VzLXJpbmctZXhwZWN0ZWQucG5nIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL3N2Zy9jdXN0
b20vZm9jdXMtcmluZy1leHBlY3RlZC5wbmcKaW5kZXggOTFiOWEwYi4uM2EyMDUzZSAxMDA2NDQK
QmluYXJ5IGZpbGVzIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL3N2Zy9jdXN0b20vZm9jdXMt
cmluZy1leHBlY3RlZC5wbmcgYW5kIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL3N2Zy9jdXN0
b20vZm9jdXMtcmluZy1leHBlY3RlZC5wbmcgZGlmZmVyCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9wbGF0Zm9ybS9tYWMvc3ZnL2N1c3RvbS9tYXJrZXItb3ZlcmZsb3ctY2xpcC1leHBlY3RlZC50
eHQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvc3ZnL2N1c3RvbS9tYXJrZXItb3ZlcmZsb3ct
Y2xpcC1leHBlY3RlZC50eHQKaW5kZXggYzQyOTRjNy4uYWU0MGFjNSAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvcGxhdGZvcm0vbWFjL3N2Zy9jdXN0b20vbWFya2VyLW92ZXJmbG93LWNsaXAtZXhw
ZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9zdmcvY3VzdG9tL21hcmtl
ci1vdmVyZmxvdy1jbGlwLWV4cGVjdGVkLnR4dApAQCAtMiwxMiArMiwxMiBAQCBLQ2FudmFzUmVz
b3VyY2Uge2lkPSJtYXJrZXIiIFt0eXBlPU1BUktFUl0gW2FuZ2xlPWF1dG9dIFtyZWYgeD01MC4w
MCB5PTUwLjAwXX0KIGxheWVyIGF0ICgwLDApIHNpemUgODAweDYwMAogICBSZW5kZXJWaWV3IGF0
ICgwLDApIHNpemUgODAweDYwMAogbGF5ZXIgYXQgKDAsMCkgc2l6ZSA4MDB4NjAwCi0gIFJlbmRl
clNWR1Jvb3Qge3N2Z30gYXQgKC0yNSwtMjUpIHNpemUgMzUzeDEwMAorICBSZW5kZXJTVkdSb290
IHtzdmd9IGF0ICgtNTAsLTUwKSBzaXplIDM3OHgzMDAKICAgICBSZW5kZXJTVkdWaWV3cG9ydENv
bnRhaW5lciB7bWFya2VyfSBhdCAoLTI1LC0yNSkgc2l6ZSAxMDB4MTAwCiAgICAgICBSZW5kZXJQ
YXRoIHtyZWN0fSBhdCAoLTI1LC0yNSkgc2l6ZSAxMDB4MTAwIFtmaWxsPXtbdHlwZT1TT0xJRF0g
W2NvbG9yPSNGRjAwMDBdfV0gW2RhdGE9Ik0tNTAuMDAsLTUwLjAwIEwxNTAuMDAsLTUwLjAwIEwx
NTAuMDAsMTUwLjAwIEwtNTAuMDAsMTUwLjAwIFoiXQogICAgICAgUmVuZGVyUGF0aCB7cmVjdH0g
YXQgKDAsMCkgc2l6ZSA1MHg1MCBbZmlsbD17W3R5cGU9U09MSURdIFtjb2xvcj0jMDA4MDAwXX1d
IFtkYXRhPSJNMC4wMCwwLjAwIEwxMDAuMDAsMC4wMCBMMTAwLjAwLDEwMC4wMCBMMC4wMCwxMDAu
MDAgWiJdCiAgICAgUmVuZGVyUGF0aCB7cmVjdH0gYXQgKDAsMCkgc2l6ZSAyNXgyNSBbZmlsbD17
W3R5cGU9U09MSURdIFtjb2xvcj0jMDAwMDAwXX1dIFtkYXRhPSJNMC4wMCwwLjAwIEwyNS4wMCww
LjAwIEwyNS4wMCwyNS4wMCBMMC4wMCwyNS4wMCBaIl0KLSAgICBSZW5kZXJQYXRoIHtwYXRofSBh
dCAoMTAwLDEwMCkgc2l6ZSAweDAgW3N0YXJ0IG1hcmtlcj1tYXJrZXJdIFtkYXRhPSJNMTAwLjAw
LDEwMC4wMCBMMTAwLjAwLDEwMC4wMCJdCisgICAgUmVuZGVyUGF0aCB7cGF0aH0gYXQgKC01MCwt
NTApIHNpemUgMzAweDMwMCBbc3RhcnQgbWFya2VyPW1hcmtlcl0gW2RhdGE9Ik0xMDAuMDAsMTAw
LjAwIEwxMDAuMDAsMTAwLjAwIl0KICAgICBSZW5kZXJTVkdUZXh0IHt0ZXh0fSBhdCAoMzAsMjAp
IHNpemUgMjk4eDE4IGNvbnRhaW5zIDEgY2h1bmsocykKICAgICAgIFJlbmRlclNWR0lubGluZVRl
eHQgeyN0ZXh0fSBhdCAoMCwtMTQpIHNpemUgMjk4eDE4CiAgICAgICAgIGNodW5rIDEgdGV4dCBy
dW4gMSBhdCAoMzAuMDAsMjAuMDApIHN0YXJ0T2Zmc2V0IDAgZW5kT2Zmc2V0IDQ1IHdpZHRoIDI5
OC4wMDogIlRoZXJlIHNob3VsZCBiZSBhIDE1MHgxNTAgZ3JlZW4gcmVjdCBhdCAyNXgyNSIKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9zdmcvY3VzdG9tL3Njcm9sbC1oaXQt
dGVzdC1leHBlY3RlZC5jaGVja3N1bSBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9zdmcvY3Vz
dG9tL3Njcm9sbC1oaXQtdGVzdC1leHBlY3RlZC5jaGVja3N1bQppbmRleCA4NmRhZDFmLi43MzYz
ODQxIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvc3ZnL2N1c3RvbS9zY3Jv
bGwtaGl0LXRlc3QtZXhwZWN0ZWQuY2hlY2tzdW0KKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0v
bWFjL3N2Zy9jdXN0b20vc2Nyb2xsLWhpdC10ZXN0LWV4cGVjdGVkLmNoZWNrc3VtCkBAIC0xICsx
IEBACi1lZjlkZTNmOTQzMjcyZWQ1MzBjZTU3NjI3MTZiODI4NApcIE5vIG5ld2xpbmUgYXQgZW5k
IG9mIGZpbGUKKzc3ODgwM2RmMGE4MjRlZDhmMmM3ZGZhMDdjNTY4MzJlClwgTm8gbmV3bGluZSBh
dCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL3N2Zy9j
dXN0b20vc2Nyb2xsLWhpdC10ZXN0LWV4cGVjdGVkLnBuZyBiL0xheW91dFRlc3RzL3BsYXRmb3Jt
L21hYy9zdmcvY3VzdG9tL3Njcm9sbC1oaXQtdGVzdC1leHBlY3RlZC5wbmcKaW5kZXggMjU4Njgy
Yi4uYTU2ZTM4YyAxMDA2NDQKQmluYXJ5IGZpbGVzIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFj
L3N2Zy9jdXN0b20vc2Nyb2xsLWhpdC10ZXN0LWV4cGVjdGVkLnBuZyBhbmQgYi9MYXlvdXRUZXN0
cy9wbGF0Zm9ybS9tYWMvc3ZnL2N1c3RvbS9zY3JvbGwtaGl0LXRlc3QtZXhwZWN0ZWQucG5nIGRp
ZmZlcgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9DaGFuZ2VMb2cgYi9XZWJDb3JlL0NoYW5nZUxvZwpp
bmRleCAxMmQ0NzMwLi5hMjQ1MjcyIDEwMDY0NAotLS0gYS9XZWJDb3JlL0NoYW5nZUxvZworKysg
Yi9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMwIEBACisyMDA5LTA0LTE3ICBFcmljIFNl
aWRlbCAgPGVyaWNAd2Via2l0Lm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBNb3ZlIFJlbmRlclBhdGggYW5kIFJlbmRlclNWR0NvbnRhaW5lciBv
bnRvIGEgdW5pZmllZCBjbGlwcGVkT3ZlcmZsb3dSZWN0Rm9yUmVwYWludAorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjUyNjgKKworICAgICAgICBUaGlz
IGZpeGVzIHN2Zy9jdXN0b20vc2Nyb2xsLWhpdC10ZXN0ICh1bmV4cGVjdGVkbHkpCisgICAgICAg
IGFzIHdlbGwgYXMgaW1wcm92ZXMgb3VyIGZvY3VzIHJpbmcgZHJhd2luZyBzZWVuIGluIHN2Zy9j
dXN0b20vZm9jdXMtcmluZworICAgICAgICBmb2N1cyByaW5ncyBhcmUgbm93IGNsb3NlciB0byB0
cmFuc2Zvcm1lZCBjb250ZW50IGJ5IGEgY291cGxlIHBpeGVscyAodGhleSB3ZXJlIG5lZWRsZXNz
bHkgb3V0c2V0IGJlZm9yZSkKKyAgICAgICAgQWxzbywgaXQgZml4ZXMgdGhlIGR1bXBlZCByZWN0
cyBmb3IgbWFya2VycywgY2F1c2luZyBhIHByb2dyZXNzaW9uIGluIHN2Zy9jdXN0b20vbWFya2Vy
LW92ZXJmbG93LWNsaXAKKworICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJQYXRoLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OlJlbmRlclBhdGg6OnJlcGFpbnRSZWN0SW5Mb2NhbENvb3JkaW5hdGVz
KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclBhdGg6OnNldFBhdGgpOgorICAgICAgICAqIHJl
bmRlcmluZy9SZW5kZXJQYXRoLmg6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlclNWR0NvbnRh
aW5lci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJTVkdDb250YWluZXI6OnJlcGFpbnRS
ZWN0SW5Mb2NhbENvb3JkaW5hdGVzKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyU1ZHQ29u
dGFpbmVyLmg6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlclNWR01vZGVsT2JqZWN0LmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclNWR01vZGVsT2JqZWN0OjpjbGlwcGVkT3ZlcmZsb3dS
ZWN0Rm9yUmVwYWludCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJTVkdNb2RlbE9iamVjdDo6
Y29tcHV0ZVJlY3RGb3JSZXBhaW50KToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyU1ZHTW9k
ZWxPYmplY3QuaDoKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyU1ZHUm9vdC5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpSZW5kZXJTVkdSb290Ojpjb21wdXRlUmVjdEZvclJlcGFpbnQpOgorICAg
ICAgICAqIHJlbmRlcmluZy9SZW5kZXJTVkdSb290Lmg6CisKIDIwMDktMDQtMTcgIENocmlzIEZs
ZWl6YWNoICA8Y2ZsZWl6YWNoQGFwcGxlLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBEYXJp
biBBZGxlci4KZGlmZiAtLWdpdCBhL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclBhdGguY3BwIGIv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyUGF0aC5jcHAKaW5kZXggYzEwYjg3NC4uNzk3NTMyMyAx
MDA2NDQKLS0tIGEvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyUGF0aC5jcHAKKysrIGIvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyUGF0aC5jcHAKQEAgLTIsOCArMiw3IEBACiAgICAgQ29weXJpZ2h0
IChDKSAyMDA0LCAyMDA1LCAyMDA3IE5pa29sYXMgWmltbWVybWFubiA8emltbWVybWFubkBrZGUu
b3JnPgogICAgICAgICAgICAgICAgICAgMjAwNCwgMjAwNSwgMjAwOCBSb2IgQnVpcyA8YnVpc0Br
ZGUub3JnPgogICAgICAgICAgICAgICAgICAgMjAwNSwgMjAwNyBFcmljIFNlaWRlbCA8ZXJpY0B3
ZWJraXQub3JnPgotCi0gICAgVGhpcyBmaWxlIGlzIHBhcnQgb2YgdGhlIEtERSBwcm9qZWN0Cisg
ICAgICAgICAgICAgICAgICAyMDA5IEdvb2dsZSwgSW5jLgogCiAgICAgVGhpcyBsaWJyYXJ5IGlz
IGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgogICAgIG1vZGlm
eSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCkBA
IC0xMjMsMjIgKzEyMiwyOCBAQCBGbG9hdFJlY3QgUmVuZGVyUGF0aDo6cmVwYWludFJlY3RJbkxv
Y2FsQ29vcmRpbmF0ZXMoKSBjb25zdAogICAgIGlmIChtX3BhdGguaXNFbXB0eSgpKQogICAgICAg
ICByZXR1cm4gRmxvYXRSZWN0KCk7CiAKLSAgICBpZiAobV9zdHJva2VCYm94LmlzRW1wdHkoKSkg
ewotICAgICAgICBpZiAoIXN0eWxlKCktPnN2Z1N0eWxlKCktPmhhc1N0cm9rZSgpKQotICAgICAg
ICAgICAgcmV0dXJuIG9iamVjdEJvdW5kaW5nQm94KCk7CisgICAgLy8gSWYgd2UgYWxyZWFkeSBo
YXZlIGEgY2FjaGVkIHJlcGFpbnQgcmVjdCwgcmV0dXJuIHRoYXQKKyAgICBpZiAoIW1fbWF4aW11
bVBhaW50ZWRSZWN0LmlzRW1wdHkoKSkKKyAgICAgICAgcmV0dXJuIG1fbWF4aW11bVBhaW50ZWRS
ZWN0OwogCisgICAgaWYgKCFzdHlsZSgpLT5zdmdTdHlsZSgpLT5oYXNTdHJva2UoKSkKKyAgICAg
ICAgbV9tYXhpbXVtUGFpbnRlZFJlY3QgPSBvYmplY3RCb3VuZGluZ0JveCgpOworICAgIGVsc2Ug
ewogICAgICAgICBCb3VuZGluZ1JlY3RTdHJva2VTdHlsZUFwcGxpZXIgc3Ryb2tlU3R5bGUodGhp
cywgc3R5bGUoKSk7Ci0gICAgICAgIG1fc3Ryb2tlQmJveCA9IG1fcGF0aC5zdHJva2VCb3VuZGlu
Z1JlY3QoJnN0cm9rZVN0eWxlKTsKKyAgICAgICAgbV9tYXhpbXVtUGFpbnRlZFJlY3QgPSBtX3Bh
dGguc3Ryb2tlQm91bmRpbmdSZWN0KCZzdHJva2VTdHlsZSk7CiAgICAgfQotICAgIC8vIEZJWE1F
OiBUaGlzIHNob3VsZCBpbmNsdWRlIGZpbHRlciBhbmQgbWFya2VyIGNvbnRlbnQgdG9vLgogCi0g
ICAgcmV0dXJuIG1fc3Ryb2tlQmJveDsKKyAgICAvLyBNYXJrZXJzIGFuZCBmaWx0ZXJzIGNhbiBw
YWludCBvdXRzaWRlIG9mIHRoZSBzdHJva2UgcGF0aAorICAgIG1fbWF4aW11bVBhaW50ZWRSZWN0
LnVuaXRlKG1fbWFya2VyQm91bmRzKTsKKyAgICBtX21heGltdW1QYWludGVkUmVjdC51bml0ZShm
aWx0ZXJCb3VuZGluZ0JveCgpKTsKKworICAgIHJldHVybiBtX21heGltdW1QYWludGVkUmVjdDsK
IH0KIAogdm9pZCBSZW5kZXJQYXRoOjpzZXRQYXRoKGNvbnN0IFBhdGgmIG5ld1BhdGgpCiB7CiAg
ICAgbV9wYXRoID0gbmV3UGF0aDsKLSAgICBtX3N0cm9rZUJib3ggPSBGbG9hdFJlY3QoKTsKKyAg
ICBtX21heGltdW1QYWludGVkUmVjdCA9IEZsb2F0UmVjdCgpOwogICAgIG1fZmlsbEJCb3ggPSBG
bG9hdFJlY3QoKTsKIH0KIApAQCAtMTcwLDIzICsxNzUsNiBAQCB2b2lkIFJlbmRlclBhdGg6Omxh
eW91dCgpCiAgICAgc2V0TmVlZHNMYXlvdXQoZmFsc2UpOwogfQogCi1JbnRSZWN0IFJlbmRlclBh
dGg6OmNsaXBwZWRPdmVyZmxvd1JlY3RGb3JSZXBhaW50KFJlbmRlckJveE1vZGVsT2JqZWN0KiAv
KnJlcGFpbnRDb250YWluZXIqLykKLXsKLSAgICAvLyBGSVhNRTogaGFuZGxlIG5vbi1yb290IHJl
cGFpbnRDb250YWluZXIKLSAgICBGbG9hdFJlY3QgcmVwYWludFJlY3QgPSBhYnNvbHV0ZVRyYW5z
Zm9ybSgpLm1hcFJlY3QocmVwYWludFJlY3RJbkxvY2FsQ29vcmRpbmF0ZXMoKSk7Ci0KLSAgICAv
LyBNYXJrZXJzIGNhbiBleHBhbmQgdGhlIGJvdW5kaW5nIGJveAotICAgIHJlcGFpbnRSZWN0LnVu
aXRlKG1fbWFya2VyQm91bmRzKTsKLQotICAgIC8vIEZpbHRlcnMgY2FuIHBhaW50IGFueXdoZXJl
LiAgSWYgd2UgaGF2ZSBvbmUsIGV4cGFuZCBvdXIgcmVjdCBzbyB3ZSBhcmUgc3VyZSB0byByZXBh
aW50IGl0LgotICAgIHJlcGFpbnRSZWN0LnVuaXRlKGZpbHRlckJvdW5kaW5nQm94KCkpOwotCi0g
ICAgaWYgKCFyZXBhaW50UmVjdC5pc0VtcHR5KCkpCi0gICAgICAgIHJlcGFpbnRSZWN0LmluZmxh
dGUoMSk7IC8vIGluZmxhdGUgMSBwaXhlbCBmb3IgYW50aWFsaWFzaW5nCi0KLSAgICByZXR1cm4g
ZW5jbG9zaW5nSW50UmVjdChyZXBhaW50UmVjdCk7Ci19Ci0KIGludCBSZW5kZXJQYXRoOjpsaW5l
SGVpZ2h0KGJvb2wsIGJvb2wpIGNvbnN0CiB7CiAgICAgcmV0dXJuIHJlcGFpbnRSZWN0SW5Mb2Nh
bENvb3JkaW5hdGVzKCkuaGVpZ2h0KCk7CmRpZmYgLS1naXQgYS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJQYXRoLmggYi9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJQYXRoLmgKaW5kZXggNDY4ODM0
NC4uZjdiNzEwZCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyUGF0aC5oCisr
KyBiL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclBhdGguaApAQCAtMyw4ICszLDcgQEAKICAgICAg
ICAgICAgICAgICAgIDIwMDQsIDIwMDUgUm9iIEJ1aXMgPGJ1aXNAa2RlLm9yZz4KICAgICAgICAg
ICAgICAgICAgIDIwMDUgRXJpYyBTZWlkZWwgPGVyaWNAd2Via2l0Lm9yZz4KICAgICAgICAgICAg
ICAgICAgIDIwMDYgQXBwbGUgQ29tcHV0ZXIsIEluYwotCi0gICAgVGhpcyBmaWxlIGlzIHBhcnQg
b2YgdGhlIEtERSBwcm9qZWN0CisgICAgICAgICAgICAgICAgICAyMDA5IEdvb2dsZSwgSW5jLgog
CiAgICAgVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRl
IGl0IGFuZC9vcgogICAgIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJy
YXJ5IEdlbmVyYWwgUHVibGljCkBAIC01OCw3ICs1Nyw2IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFs
IFRyYW5zZm9ybWF0aW9uTWF0cml4IGxvY2FsVHJhbnNmb3JtKCkgY29uc3Q7CiAgICAgCiAgICAg
dmlydHVhbCB2b2lkIGxheW91dCgpOwotICAgIHZpcnR1YWwgSW50UmVjdCBjbGlwcGVkT3ZlcmZs
b3dSZWN0Rm9yUmVwYWludChSZW5kZXJCb3hNb2RlbE9iamVjdCogcmVwYWludENvbnRhaW5lcik7
CiAgICAgdmlydHVhbCBib29sIHJlcXVpcmVzTGF5ZXIoKSBjb25zdCB7IHJldHVybiBmYWxzZTsg
fQogICAgIHZpcnR1YWwgaW50IGxpbmVIZWlnaHQoYm9vbCBiLCBib29sIGlzUm9vdExpbmVCb3gg
PSBmYWxzZSkgY29uc3Q7CiAgICAgdmlydHVhbCBpbnQgYmFzZWxpbmVQb3NpdGlvbihib29sIGIs
IGJvb2wgaXNSb290TGluZUJveCA9IGZhbHNlKSBjb25zdDsKQEAgLTc4LDcgKzc2LDcgQEAgcHJp
dmF0ZToKIAogICAgIG11dGFibGUgUGF0aCBtX3BhdGg7CiAgICAgbXV0YWJsZSBGbG9hdFJlY3Qg
bV9maWxsQkJveDsKLSAgICBtdXRhYmxlIEZsb2F0UmVjdCBtX3N0cm9rZUJib3g7CisgICAgbXV0
YWJsZSBGbG9hdFJlY3QgbV9tYXhpbXVtUGFpbnRlZFJlY3Q7CiAgICAgRmxvYXRSZWN0IG1fbWFy
a2VyQm91bmRzOwogICAgIFRyYW5zZm9ybWF0aW9uTWF0cml4IG1fbG9jYWxUcmFuc2Zvcm07CiAg
ICAgSW50UmVjdCBtX2Fic29sdXRlQm91bmRzOwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyU1ZHQ29udGFpbmVyLmNwcCBiL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclNWR0Nv
bnRhaW5lci5jcHAKaW5kZXggZmE5MzdkNi4uZGMxNzA0ZSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyU1ZHQ29udGFpbmVyLmNwcAorKysgYi9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJTVkdDb250YWluZXIuY3BwCkBAIC0xNTIsMjIgKzE1Miw2IEBAIHZvaWQgUmVuZGVyU1ZH
Q29udGFpbmVyOjpwYWludChQYWludEluZm8mIHBhaW50SW5mbywgaW50LCBpbnQpCiAgICAgICAg
IHBhaW50T3V0bGluZShwYWludEluZm8uY29udGV4dCwgbV9hYnNvbHV0ZUJvdW5kcy54KCksIG1f
YWJzb2x1dGVCb3VuZHMueSgpLCBtX2Fic29sdXRlQm91bmRzLndpZHRoKCksIG1fYWJzb2x1dGVC
b3VuZHMuaGVpZ2h0KCksIHN0eWxlKCkpOwogfQogCi1JbnRSZWN0IFJlbmRlclNWR0NvbnRhaW5l
cjo6Y2xpcHBlZE92ZXJmbG93UmVjdEZvclJlcGFpbnQoUmVuZGVyQm94TW9kZWxPYmplY3QqIHJl
cGFpbnRDb250YWluZXIpCi17Ci0gICAgRmxvYXRSZWN0IHJlcGFpbnRSZWN0OwotCi0gICAgZm9y
IChSZW5kZXJPYmplY3QqIGN1cnJlbnQgPSBmaXJzdENoaWxkKCk7IGN1cnJlbnQgIT0gMDsgY3Vy
cmVudCA9IGN1cnJlbnQtPm5leHRTaWJsaW5nKCkpCi0gICAgICAgIHJlcGFpbnRSZWN0LnVuaXRl
KGN1cnJlbnQtPmNsaXBwZWRPdmVyZmxvd1JlY3RGb3JSZXBhaW50KHJlcGFpbnRDb250YWluZXIp
KTsKLQotICAgIC8vIEZpbHRlcnMgY2FuIHBhaW50IGFueXdoZXJlLiAgSWYgd2UgaGF2ZSBvbmUs
IGV4cGFuZCBvdXIgcmVjdCBzbyB3ZSBhcmUgc3VyZSB0byByZXBhaW50IGl0LgotICAgIHJlcGFp
bnRSZWN0LnVuaXRlKGZpbHRlckJvdW5kaW5nQm94KCkpOwotCi0gICAgaWYgKCFyZXBhaW50UmVj
dC5pc0VtcHR5KCkpCi0gICAgICAgIHJlcGFpbnRSZWN0LmluZmxhdGUoMSk7IC8vIGluZmxhdGUg
MSBwaXhlbCBmb3IgYW50aWFsaWFzaW5nCi0KLSAgICByZXR1cm4gZW5jbG9zaW5nSW50UmVjdChy
ZXBhaW50UmVjdCk7Ci19Ci0KIHZvaWQgUmVuZGVyU1ZHQ29udGFpbmVyOjphZGRGb2N1c1JpbmdS
ZWN0cyhHcmFwaGljc0NvbnRleHQqIGdyYXBoaWNzQ29udGV4dCwgaW50LCBpbnQpCiB7CiAgICAg
Z3JhcGhpY3NDb250ZXh0LT5hZGRGb2N1c1JpbmdSZWN0KG1fYWJzb2x1dGVCb3VuZHMpOwpAQCAt
MTkyLDcgKzE3NiwxMiBAQCBGbG9hdFJlY3QgUmVuZGVyU1ZHQ29udGFpbmVyOjpvYmplY3RCb3Vu
ZGluZ0JveCgpIGNvbnN0CiAvLyB3aWR0aCBvciBoZWlnaHQsIHNvIHdlIHVuaW9uIGFsbCBvZiBv
dXIgY2hpbGQgcmVjdHMgYXMgb3VyIHJlcGFpbnQgcmVjdC4KIEZsb2F0UmVjdCBSZW5kZXJTVkdD
b250YWluZXI6OnJlcGFpbnRSZWN0SW5Mb2NhbENvb3JkaW5hdGVzKCkgY29uc3QKIHsKLSAgICBy
ZXR1cm4gY29tcHV0ZUNvbnRhaW5lckJvdW5kaW5nQm94KHRoaXMsIHRydWUpOworICAgIEZsb2F0
UmVjdCByZXBhaW50UmVjdCA9IGNvbXB1dGVDb250YWluZXJCb3VuZGluZ0JveCh0aGlzLCB0cnVl
KTsKKworICAgIC8vIEEgZmlsdGVyIG9uIHRoaXMgY29udGFpbmVyIGNhbiBwYWludCBvdXRzaWRl
IG9mIHRoZSB1bmlvbiBvZiB0aGUgY2hpbGQgcmVwYWludCByZWN0cworICAgIHJlcGFpbnRSZWN0
LnVuaXRlKGZpbHRlckJvdW5kaW5nQm94KCkpOworCisgICAgcmV0dXJuIHJlcGFpbnRSZWN0Owog
fQogCiBib29sIFJlbmRlclNWR0NvbnRhaW5lcjo6bm9kZUF0UG9pbnQoY29uc3QgSGl0VGVzdFJl
cXVlc3QmIHJlcXVlc3QsIEhpdFRlc3RSZXN1bHQmIHJlc3VsdCwgaW50IF94LCBpbnQgX3ksIGlu
dCBfdHgsIGludCBfdHksIEhpdFRlc3RBY3Rpb24gaGl0VGVzdEFjdGlvbikKZGlmZiAtLWdpdCBh
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclNWR0NvbnRhaW5lci5oIGIvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyU1ZHQ29udGFpbmVyLmgKaW5kZXggOWMxZTIxZC4uYjI2MGNiZiAxMDA2NDQKLS0t
IGEvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyU1ZHQ29udGFpbmVyLmgKKysrIGIvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyU1ZHQ29udGFpbmVyLmgKQEAgLTUyLDcgKzUyLDYgQEAgcHVibGljOgog
ICAgIHZpcnR1YWwgdm9pZCBsYXlvdXQoKTsKICAgICB2aXJ0dWFsIHZvaWQgcGFpbnQoUGFpbnRJ
bmZvJiwgaW50IHBhcmVudFgsIGludCBwYXJlbnRZKTsKIAotICAgIHZpcnR1YWwgSW50UmVjdCBj
bGlwcGVkT3ZlcmZsb3dSZWN0Rm9yUmVwYWludChSZW5kZXJCb3hNb2RlbE9iamVjdCogcmVwYWlu
dENvbnRhaW5lcik7CiAgICAgdmlydHVhbCB2b2lkIGFic29sdXRlUmVjdHMoVmVjdG9yPEludFJl
Y3Q+JiByZWN0cywgaW50IHR4LCBpbnQgdHksIGJvb2wgdG9wTGV2ZWwgPSB0cnVlKTsKICAgICB2
aXJ0dWFsIHZvaWQgYWJzb2x1dGVRdWFkcyhWZWN0b3I8RmxvYXRRdWFkPiYsIGJvb2wgdG9wTGV2
ZWwgPSB0cnVlKTsKICAgICB2aXJ0dWFsIHZvaWQgYWRkRm9jdXNSaW5nUmVjdHMoR3JhcGhpY3ND
b250ZXh0KiwgaW50IHR4LCBpbnQgdHkpOwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyU1ZHTW9kZWxPYmplY3QuY3BwIGIvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyU1ZHTW9k
ZWxPYmplY3QuY3BwCmluZGV4IGM3YzFhNjAuLjZmMTBhMzggMTAwNjQ0Ci0tLSBhL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlclNWR01vZGVsT2JqZWN0LmNwcAorKysgYi9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJTVkdNb2RlbE9iamVjdC5jcHAKQEAgLTMzLDEwICszMywxMiBAQAogI2lmIEVOQUJM
RShTVkcpCiAjaW5jbHVkZSAiUmVuZGVyU1ZHTW9kZWxPYmplY3QuaCIKIAorI2luY2x1ZGUgIlJl
bmRlckxheWVyLmgiCisjaW5jbHVkZSAiU1ZHU3R5bGVkRWxlbWVudC5oIgorCiAjaWYgRU5BQkxF
KFNWR19GSUxURVJTKQogI2luY2x1ZGUgIlNWR1Jlc291cmNlRmlsdGVyLmgiCiAjZW5kaWYKLSNp
bmNsdWRlICJTVkdTdHlsZWRFbGVtZW50LmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApAQCAt
NDUsNiArNDcsMjYgQEAgUmVuZGVyU1ZHTW9kZWxPYmplY3Q6OlJlbmRlclNWR01vZGVsT2JqZWN0
KFNWR1N0eWxlZEVsZW1lbnQqIG5vZGUpCiB7CiB9CiAKK0ludFJlY3QgUmVuZGVyU1ZHTW9kZWxP
YmplY3Q6OmNsaXBwZWRPdmVyZmxvd1JlY3RGb3JSZXBhaW50KFJlbmRlckJveE1vZGVsT2JqZWN0
KiByZXBhaW50Q29udGFpbmVyKQoreworICAgIC8vIFJldHVybiBlYXJseSBmb3IgYW55IGNhc2Vz
IHdoZXJlIHdlIGRvbid0IGFjdHVhbGx5IHBhaW50CisgICAgaWYgKHN0eWxlKCktPnZpc2liaWxp
dHkoKSAhPSBWSVNJQkxFICYmICFlbmNsb3NpbmdMYXllcigpLT5oYXNWaXNpYmxlQ29udGVudCgp
KQorICAgICAgICByZXR1cm4gSW50UmVjdCgpOworCisgICAgLy8gUGFzcyBvdXIgbG9jYWwgcGFp
bnQgcmVjdCB0byBjb21wdXRlUmVjdEZvclJlcGFpbnQoKSB3aGljaCB3aWxsCisgICAgLy8gbWFw
IHRvIHBhcmVudCBjb29yZHMgYW5kIHJlY3Vyc2UgdXAgdGhlIHBhcmVudCBjaGFpbi4KKyAgICBJ
bnRSZWN0IHJlcGFpbnRSZWN0ID0gZW5jbG9zaW5nSW50UmVjdChyZXBhaW50UmVjdEluTG9jYWxD
b29yZGluYXRlcygpKTsKKyAgICBjb21wdXRlUmVjdEZvclJlcGFpbnQocmVwYWludENvbnRhaW5l
ciwgcmVwYWludFJlY3QpOworICAgIHJldHVybiByZXBhaW50UmVjdDsKK30KKwordm9pZCBSZW5k
ZXJTVkdNb2RlbE9iamVjdDo6Y29tcHV0ZVJlY3RGb3JSZXBhaW50KFJlbmRlckJveE1vZGVsT2Jq
ZWN0KiByZXBhaW50Q29udGFpbmVyLCBJbnRSZWN0JiByZXBhaW50UmVjdCwgYm9vbCBmaXhlZCkK
K3sKKyAgICAvLyBUcmFuc2xhdGUgdG8gY29vcmRzIGluIG91ciBwYXJlbnQgcmVuZGVyZXIsIGFu
ZCB0aGVuIGNhbGwgY29tcHV0ZVJlY3RGb3JSZXBhaW50IG9uIG91ciBwYXJlbnQKKyAgICByZXBh
aW50UmVjdCA9IGxvY2FsVG9QYXJlbnRUcmFuc2Zvcm0oKS5tYXBSZWN0KHJlcGFpbnRSZWN0KTsK
KyAgICBwYXJlbnQoKS0+Y29tcHV0ZVJlY3RGb3JSZXBhaW50KHJlcGFpbnRDb250YWluZXIsIHJl
cGFpbnRSZWN0LCBmaXhlZCk7Cit9CisKIEZsb2F0UmVjdCBSZW5kZXJTVkdNb2RlbE9iamVjdDo6
ZmlsdGVyQm91bmRpbmdCb3goKSBjb25zdAogewogI2lmIEVOQUJMRShTVkdfRklMVEVSUykKZGlm
ZiAtLWdpdCBhL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclNWR01vZGVsT2JqZWN0LmggYi9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJTVkdNb2RlbE9iamVjdC5oCmluZGV4IDhhZDkyY2YuLjcyZmQ1
OTcgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclNWR01vZGVsT2JqZWN0LmgK
KysrIGIvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyU1ZHTW9kZWxPYmplY3QuaApAQCAtNTAsNiAr
NTAsOSBAQCBwdWJsaWM6CiAKICAgICB2aXJ0dWFsIGJvb2wgcmVxdWlyZXNMYXllcigpIGNvbnN0
IHsgcmV0dXJuIGZhbHNlOyB9CiAKKyAgICB2aXJ0dWFsIEludFJlY3QgY2xpcHBlZE92ZXJmbG93
UmVjdEZvclJlcGFpbnQoUmVuZGVyQm94TW9kZWxPYmplY3QqIHJlcGFpbnRDb250YWluZXIpOwor
ICAgIHZpcnR1YWwgdm9pZCBjb21wdXRlUmVjdEZvclJlcGFpbnQoUmVuZGVyQm94TW9kZWxPYmpl
Y3QqIHJlcGFpbnRDb250YWluZXIsIEludFJlY3QmLCBib29sIGZpeGVkID0gZmFsc2UpOworCiBw
cm90ZWN0ZWQ6CiAgICAgLy8gUmV0dXJucyB0aGUgYm91bmRpbmcgYm94IGZvciB0aGUgZmlsdGVy
IGFzc29jaWF0ZWQgd2l0aCB0aGlzIG9iamVjdCAoaWYgYW55KQogICAgIEZsb2F0UmVjdCBmaWx0
ZXJCb3VuZGluZ0JveCgpIGNvbnN0OwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyU1ZHUm9vdC5jcHAgYi9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJTVkdSb290LmNwcAppbmRl
eCA5NDRjYWMzLi4xMzdjOGQxIDEwMDY0NAotLS0gYS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJT
VkdSb290LmNwcAorKysgYi9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJTVkdSb290LmNwcApAQCAt
Miw4ICsyLDcgQEAKICAgICBDb3B5cmlnaHQgKEMpIDIwMDQsIDIwMDUsIDIwMDcgTmlrb2xhcyBa
aW1tZXJtYW5uIDx6aW1tZXJtYW5uQGtkZS5vcmc+CiAgICAgICAgICAgICAgICAgICAyMDA0LCAy
MDA1LCAyMDA3LCAyMDA4LCAyMDA5IFJvYiBCdWlzIDxidWlzQGtkZS5vcmc+CiAgICAgICAgICAg
ICAgICAgICAyMDA3IEVyaWMgU2VpZGVsIDxlcmljQHdlYmtpdC5vcmc+Ci0KLSAgICBUaGlzIGZp
bGUgaXMgcGFydCBvZiB0aGUgS0RFIHByb2plY3QKKyAgICAgICAgICAgICAgICAgIDIwMDkgR29v
Z2xlLCBJbmMuCiAKICAgICBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiBy
ZWRpc3RyaWJ1dGUgaXQgYW5kL29yCiAgICAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0
aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKQEAgLTI1Myw2ICsyNTIsMjAgQEAgVHJhbnNm
b3JtYXRpb25NYXRyaXggUmVuZGVyU1ZHUm9vdDo6bG9jYWxUcmFuc2Zvcm0oKSBjb25zdAogICAg
IHJldHVybiBUcmFuc2Zvcm1hdGlvbk1hdHJpeCgpOwogfQogCit2b2lkIFJlbmRlclNWR1Jvb3Q6
OmNvbXB1dGVSZWN0Rm9yUmVwYWludChSZW5kZXJCb3hNb2RlbE9iamVjdCogcmVwYWludENvbnRh
aW5lciwgSW50UmVjdCYgcmVwYWludFJlY3QsIGJvb2wgZml4ZWQpCit7CisgICAgLy8gQXBwbHkg
b3VyIHZpZXdib3ggdHJhbnNmb3JtLCBhbmQgdGhlbiBjYWxsIFJlbmRlckJveCdzIG1ldGhvZCB0
byBoYW5kbGUgYWxsIHRoZSBub3JtYWwgQ1NTIEJveCBtb2RlbCBiaXRzCisgICAgVHJhbnNmb3Jt
YXRpb25NYXRyaXggbG9jYWxUb1BhcmVudCA9IGxvY2FsVG9QYXJlbnRUcmFuc2Zvcm0oKTsKKwor
ICAgIC8vIFVuZG8gdGhlIHgoKSx5KCkgdHJhbnNsYXRpb24gaW5jbHVkZWQgaW4gbG9jYWxUb1Bh
cmVudFRyYW5zZm9ybSgpIGJlY2F1c2UKKyAgICAvLyBSZW5kZXJCb3g6OmNvbXB1dGVSZWN0Rm9y
UmVwYWludCgpIGV4cGVjdHMgaXQgdG8gYmUgaW5jbHVkZWQgaW4gcmVwYWludFJlY3QKKyAgICBs
b2NhbFRvUGFyZW50LnRyYW5zbGF0ZVJpZ2h0KC14KCksIC15KCkpOworCisgICAgLy8gQXBwbHkg
b3VyIGxvY2FsVG9QYXJlbnQgdHJhbnNmb3JtIGFuZCBwYXNzIHRoZSByZWN0IG9mZiB0byBvdXIg
UmVuZGVyQm94CisgICAgcmVwYWludFJlY3QgPSBsb2NhbFRvUGFyZW50Lm1hcFJlY3QocmVwYWlu
dFJlY3QpOworICAgIFJlbmRlckJveDo6Y29tcHV0ZVJlY3RGb3JSZXBhaW50KHJlcGFpbnRDb250
YWluZXIsIHJlcGFpbnRSZWN0LCBmaXhlZCk7Cit9CisKIGJvb2wgUmVuZGVyU1ZHUm9vdDo6bm9k
ZUF0UG9pbnQoY29uc3QgSGl0VGVzdFJlcXVlc3QmIHJlcXVlc3QsIEhpdFRlc3RSZXN1bHQmIHJl
c3VsdCwgaW50IF94LCBpbnQgX3ksIGludCBfdHgsIGludCBfdHksIEhpdFRlc3RBY3Rpb24gaGl0
VGVzdEFjdGlvbikKIHsKICAgICBUcmFuc2Zvcm1hdGlvbk1hdHJpeCBjdG0gPSBSZW5kZXJCb3g6
OmFic29sdXRlVHJhbnNmb3JtKCk7CmRpZmYgLS1naXQgYS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJTVkdSb290LmggYi9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJTVkdSb290LmgKaW5kZXggNzky
YjhjNC4uMzU3MjUzYiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyU1ZHUm9v
dC5oCisrKyBiL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclNWR1Jvb3QuaApAQCAtNDcsNyArNDcs
NyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBpbnQgbGluZUhlaWdodChib29sIGIsIGJvb2wgaXNS
b290TGluZUJveCA9IGZhbHNlKSBjb25zdDsKICAgICB2aXJ0dWFsIGludCBiYXNlbGluZVBvc2l0
aW9uKGJvb2wgYiwgYm9vbCBpc1Jvb3RMaW5lQm94ID0gZmFsc2UpIGNvbnN0OwogICAgIHZpcnR1
YWwgdm9pZCBjYWxjUHJlZldpZHRocygpOwotICAgIAorCiAgICAgdmlydHVhbCB2b2lkIGxheW91
dCgpOwogICAgIHZpcnR1YWwgdm9pZCBwYWludChQYWludEluZm8mLCBpbnQgcGFyZW50WCwgaW50
IHBhcmVudFkpOwogCkBAIC02Niw3ICs2Niw5IEBAIHB1YmxpYzoKICAgICBGbG9hdFJlY3Qgdmll
d3BvcnQoKSBjb25zdDsKIAogICAgIHZpcnR1YWwgYm9vbCBub2RlQXRQb2ludChjb25zdCBIaXRU
ZXN0UmVxdWVzdCYsIEhpdFRlc3RSZXN1bHQmLCBpbnQgeCwgaW50IHksIGludCB0eCwgaW50IHR5
LCBIaXRUZXN0QWN0aW9uKTsKLSAgICAKKworICAgIHZpcnR1YWwgdm9pZCBjb21wdXRlUmVjdEZv
clJlcGFpbnQoUmVuZGVyQm94TW9kZWxPYmplY3QqIHJlcGFpbnRDb250YWluZXIsIEludFJlY3Qm
IHJlcGFpbnRSZWN0LCBib29sIGZpeGVkKTsKKwogcHJpdmF0ZToKICAgICB2b2lkIGNhbGNWaWV3
cG9ydCgpOyAKICAgICB2b2lkIGFwcGx5Q29udGVudFRyYW5zZm9ybXMoUGFpbnRJbmZvJiwgaW50
IHBhcmVudFgsIGludCBwYXJlbnRZKTsK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>29581</attachid>
            <date>2009-04-17 10:06:51 -0700</date>
            <delta_ts>2009-04-17 10:17:06 -0700</delta_ts>
            <desc>Move RenderPath and RenderSVGContainer onto a unified clippedOverflowRectForRepaint</desc>
            <filename>Move-RenderPath-and-RenderSVGContainer-onto-a-unified-clippedOverflowRectForRepaint.patch</filename>
            <type>text/plain</type>
            <size>17484</size>
            <attacher name="Eric Seidel (no email)">eric</attacher>
            
              <data encoding="base64">ZDUyMjUzZTA5YTA2NDMxNmJlYTRlMGE0YmEyMDJmMjc5MDhhZTkyMgpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IGYzYzJjMzYu
LmU3N2RlMzUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRU
ZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNiBAQAorMjAwOS0wNC0xNyAgRXJpYyBTZWlkZWwg
IDxlcmljQHdlYmtpdC5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgTW92ZSBSZW5kZXJQYXRoIGFuZCBSZW5kZXJTVkdDb250YWluZXIgb250byBh
IHVuaWZpZWQgY2xpcHBlZE92ZXJmbG93UmVjdEZvclJlcGFpbnQKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTI1MjY4CisKKyAgICAgICAgKiBwbGF0Zm9y
bS9tYWMvc3ZnL2N1c3RvbS9mb2N1cy1yaW5nLWV4cGVjdGVkLmNoZWNrc3VtOgorICAgICAgICAq
IHBsYXRmb3JtL21hYy9zdmcvY3VzdG9tL2ZvY3VzLXJpbmctZXhwZWN0ZWQucG5nOgorICAgICAg
ICAqIHBsYXRmb3JtL21hYy9zdmcvY3VzdG9tL21hcmtlci1vdmVyZmxvdy1jbGlwLWV4cGVjdGVk
LnR4dDoKKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvc3ZnL2N1c3RvbS9zY3JvbGwtaGl0LXRlc3Qt
ZXhwZWN0ZWQuY2hlY2tzdW06CisgICAgICAgICogcGxhdGZvcm0vbWFjL3N2Zy9jdXN0b20vc2Ny
b2xsLWhpdC10ZXN0LWV4cGVjdGVkLnBuZzoKKwogMjAwOS0wNC0xNyAgRGFuIEJlcm5zdGVpbiAg
PG1pdHpAYXBwbGUuY29tPgogCiAgICAgICAgIFJ1YmJlci1zdGFtcGVkIGJ5IEFuZGVycyBDYXJs
c3Nvbi4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9zdmcvY3VzdG9tL2Zv
Y3VzLXJpbmctZXhwZWN0ZWQuY2hlY2tzdW0gYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvc3Zn
L2N1c3RvbS9mb2N1cy1yaW5nLWV4cGVjdGVkLmNoZWNrc3VtCmluZGV4IDNiOTY2M2MuLjIwMjdj
NmIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9zdmcvY3VzdG9tL2ZvY3Vz
LXJpbmctZXhwZWN0ZWQuY2hlY2tzdW0KKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL3N2
Zy9jdXN0b20vZm9jdXMtcmluZy1leHBlY3RlZC5jaGVja3N1bQpAQCAtMSArMSBAQAotYmM0ZDJj
Yzg0OWQ4MWExZGI2OGZhZTFhYzdlOWYyZmUKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCiti
MDI3MWJhMzYyNzQ2NjY4YWE2OThiMWRjMTJkMzM5MwpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZp
bGUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9zdmcvY3VzdG9tL2ZvY3Vz
LXJpbmctZXhwZWN0ZWQucG5nIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL3N2Zy9jdXN0b20v
Zm9jdXMtcmluZy1leHBlY3RlZC5wbmcKaW5kZXggOTFiOWEwYi4uM2EyMDUzZSAxMDA2NDQKQmlu
YXJ5IGZpbGVzIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL3N2Zy9jdXN0b20vZm9jdXMtcmlu
Zy1leHBlY3RlZC5wbmcgYW5kIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL3N2Zy9jdXN0b20v
Zm9jdXMtcmluZy1leHBlY3RlZC5wbmcgZGlmZmVyCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9w
bGF0Zm9ybS9tYWMvc3ZnL2N1c3RvbS9tYXJrZXItb3ZlcmZsb3ctY2xpcC1leHBlY3RlZC50eHQg
Yi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvc3ZnL2N1c3RvbS9tYXJrZXItb3ZlcmZsb3ctY2xp
cC1leHBlY3RlZC50eHQKaW5kZXggYzQyOTRjNy4uYWU0MGFjNSAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvcGxhdGZvcm0vbWFjL3N2Zy9jdXN0b20vbWFya2VyLW92ZXJmbG93LWNsaXAtZXhwZWN0
ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9zdmcvY3VzdG9tL21hcmtlci1v
dmVyZmxvdy1jbGlwLWV4cGVjdGVkLnR4dApAQCAtMiwxMiArMiwxMiBAQCBLQ2FudmFzUmVzb3Vy
Y2Uge2lkPSJtYXJrZXIiIFt0eXBlPU1BUktFUl0gW2FuZ2xlPWF1dG9dIFtyZWYgeD01MC4wMCB5
PTUwLjAwXX0KIGxheWVyIGF0ICgwLDApIHNpemUgODAweDYwMAogICBSZW5kZXJWaWV3IGF0ICgw
LDApIHNpemUgODAweDYwMAogbGF5ZXIgYXQgKDAsMCkgc2l6ZSA4MDB4NjAwCi0gIFJlbmRlclNW
R1Jvb3Qge3N2Z30gYXQgKC0yNSwtMjUpIHNpemUgMzUzeDEwMAorICBSZW5kZXJTVkdSb290IHtz
dmd9IGF0ICgtNTAsLTUwKSBzaXplIDM3OHgzMDAKICAgICBSZW5kZXJTVkdWaWV3cG9ydENvbnRh
aW5lciB7bWFya2VyfSBhdCAoLTI1LC0yNSkgc2l6ZSAxMDB4MTAwCiAgICAgICBSZW5kZXJQYXRo
IHtyZWN0fSBhdCAoLTI1LC0yNSkgc2l6ZSAxMDB4MTAwIFtmaWxsPXtbdHlwZT1TT0xJRF0gW2Nv
bG9yPSNGRjAwMDBdfV0gW2RhdGE9Ik0tNTAuMDAsLTUwLjAwIEwxNTAuMDAsLTUwLjAwIEwxNTAu
MDAsMTUwLjAwIEwtNTAuMDAsMTUwLjAwIFoiXQogICAgICAgUmVuZGVyUGF0aCB7cmVjdH0gYXQg
KDAsMCkgc2l6ZSA1MHg1MCBbZmlsbD17W3R5cGU9U09MSURdIFtjb2xvcj0jMDA4MDAwXX1dIFtk
YXRhPSJNMC4wMCwwLjAwIEwxMDAuMDAsMC4wMCBMMTAwLjAwLDEwMC4wMCBMMC4wMCwxMDAuMDAg
WiJdCiAgICAgUmVuZGVyUGF0aCB7cmVjdH0gYXQgKDAsMCkgc2l6ZSAyNXgyNSBbZmlsbD17W3R5
cGU9U09MSURdIFtjb2xvcj0jMDAwMDAwXX1dIFtkYXRhPSJNMC4wMCwwLjAwIEwyNS4wMCwwLjAw
IEwyNS4wMCwyNS4wMCBMMC4wMCwyNS4wMCBaIl0KLSAgICBSZW5kZXJQYXRoIHtwYXRofSBhdCAo
MTAwLDEwMCkgc2l6ZSAweDAgW3N0YXJ0IG1hcmtlcj1tYXJrZXJdIFtkYXRhPSJNMTAwLjAwLDEw
MC4wMCBMMTAwLjAwLDEwMC4wMCJdCisgICAgUmVuZGVyUGF0aCB7cGF0aH0gYXQgKC01MCwtNTAp
IHNpemUgMzAweDMwMCBbc3RhcnQgbWFya2VyPW1hcmtlcl0gW2RhdGE9Ik0xMDAuMDAsMTAwLjAw
IEwxMDAuMDAsMTAwLjAwIl0KICAgICBSZW5kZXJTVkdUZXh0IHt0ZXh0fSBhdCAoMzAsMjApIHNp
emUgMjk4eDE4IGNvbnRhaW5zIDEgY2h1bmsocykKICAgICAgIFJlbmRlclNWR0lubGluZVRleHQg
eyN0ZXh0fSBhdCAoMCwtMTQpIHNpemUgMjk4eDE4CiAgICAgICAgIGNodW5rIDEgdGV4dCBydW4g
MSBhdCAoMzAuMDAsMjAuMDApIHN0YXJ0T2Zmc2V0IDAgZW5kT2Zmc2V0IDQ1IHdpZHRoIDI5OC4w
MDogIlRoZXJlIHNob3VsZCBiZSBhIDE1MHgxNTAgZ3JlZW4gcmVjdCBhdCAyNXgyNSIKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9zdmcvY3VzdG9tL3Njcm9sbC1oaXQtdGVz
dC1leHBlY3RlZC5jaGVja3N1bSBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9zdmcvY3VzdG9t
L3Njcm9sbC1oaXQtdGVzdC1leHBlY3RlZC5jaGVja3N1bQppbmRleCA4NmRhZDFmLi43MzYzODQx
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvc3ZnL2N1c3RvbS9zY3JvbGwt
aGl0LXRlc3QtZXhwZWN0ZWQuY2hlY2tzdW0KKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFj
L3N2Zy9jdXN0b20vc2Nyb2xsLWhpdC10ZXN0LWV4cGVjdGVkLmNoZWNrc3VtCkBAIC0xICsxIEBA
Ci1lZjlkZTNmOTQzMjcyZWQ1MzBjZTU3NjI3MTZiODI4NApcIE5vIG5ld2xpbmUgYXQgZW5kIG9m
IGZpbGUKKzc3ODgwM2RmMGE4MjRlZDhmMmM3ZGZhMDdjNTY4MzJlClwgTm8gbmV3bGluZSBhdCBl
bmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL3N2Zy9jdXN0
b20vc2Nyb2xsLWhpdC10ZXN0LWV4cGVjdGVkLnBuZyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21h
Yy9zdmcvY3VzdG9tL3Njcm9sbC1oaXQtdGVzdC1leHBlY3RlZC5wbmcKaW5kZXggMjU4NjgyYi4u
YTU2ZTM4YyAxMDA2NDQKQmluYXJ5IGZpbGVzIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL3N2
Zy9jdXN0b20vc2Nyb2xsLWhpdC10ZXN0LWV4cGVjdGVkLnBuZyBhbmQgYi9MYXlvdXRUZXN0cy9w
bGF0Zm9ybS9tYWMvc3ZnL2N1c3RvbS9zY3JvbGwtaGl0LXRlc3QtZXhwZWN0ZWQucG5nIGRpZmZl
cgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9DaGFuZ2VMb2cgYi9XZWJDb3JlL0NoYW5nZUxvZwppbmRl
eCA4NDE3OWVkLi5lNmU3ZGFhIDEwMDY0NAotLS0gYS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9X
ZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQwIEBACisyMDA5LTA0LTE3ICBFcmljIFNlaWRl
bCAgPGVyaWNAd2Via2l0Lm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBNb3ZlIFJlbmRlclBhdGggYW5kIFJlbmRlclNWR0NvbnRhaW5lciBvbnRv
IGEgdW5pZmllZCBjbGlwcGVkT3ZlcmZsb3dSZWN0Rm9yUmVwYWludAorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjUyNjgKKworICAgICAgICBMb3RzIG9m
IG1pbnVzIGxpbmVzLiAgTm93IHdlJ3JlIHNoYXJpbmcgbW9yZSBzYW5lIGNvZGUKKyAgICAgICAg
KHdoaWNoIHdpbGwgcmVzcGVjdCAtd2Via2l0LXRyYW5zZm9ybXMhIGFuZCBzY3JvbGwgb2Zmc2V0
cyBjb3JyZWN0bHkpCisKKyAgICAgICAgV2hpY2ggbWVhbnMgdGhpcyBmaXhlczoKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwNzY5IHRvbyEKKworICAg
ICAgICBXZSdyZSBubyBsb25nZXIgZXhwYW5kaW5nIHRoZSBwYWludCByZWN0ICJmb3IgYW50aS1h
bGlhc2luZyIsIHNpbmNlCisgICAgICAgIEkgY2FuJ3QgZmluZCBhIGNhc2Ugd2hlcmUgdGhhdCdz
IHJlcXVpcmVkLiAgSWYgaXQgaXMsIHJlcGFpbnRSZWN0SW5Mb2NhbENvb3JkaW5hdGVzKCkKKyAg
ICAgICAgc2hvdWxkIGJlIGZpeGVkIHRvIGhhbmRsZSB0aG9zZSBjYXNlcyBpbnN0ZWFkIG9mIGhl
cmUuCisKKyAgICAgICAgVGhpcyBmaXhlcyBzdmcvY3VzdG9tL3Njcm9sbC1oaXQtdGVzdCAobm93
IHRoYXQgd2UgcmVzcGVjdCBzY3JvbGwgb2Zmc2V0cyB3aGVuIHJlcGFpbnRpbmcpCisgICAgICAg
IGFzIHdlbGwgYXMgaW1wcm92ZXMgb3VyIGZvY3VzIHJpbmcgZHJhd2luZyBzZWVuIGluIHN2Zy9j
dXN0b20vZm9jdXMtcmluZworICAgICAgICBmb2N1cyByaW5ncyBhcmUgbm93IGNsb3NlciB0byB0
cmFuc2Zvcm1lZCBjb250ZW50IGJ5IGEgY291cGxlIHBpeGVscyAodGhleSB3ZXJlIG5lZWRsZXNz
bHkgb3V0c2V0IGJ5IHRoZSBhbnRpYWxpYXNpbmcgaGFjaykKKyAgICAgICAgQWxzbywgaXQgZml4
ZXMgdGhlIGR1bXBlZCByZWN0cyBmb3IgbWFya2VycywgY2F1c2luZyBhIHByb2dyZXNzaW9uIGlu
IHN2Zy9jdXN0b20vbWFya2VyLW92ZXJmbG93LWNsaXAKKworICAgICAgICAqIHJlbmRlcmluZy9S
ZW5kZXJQYXRoLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclBhdGg6OnJlcGFpbnRSZWN0
SW5Mb2NhbENvb3JkaW5hdGVzKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclBhdGg6OnNldFBh
dGgpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJQYXRoLmg6CisgICAgICAgICogcmVuZGVy
aW5nL1JlbmRlclNWR0NvbnRhaW5lci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJTVkdD
b250YWluZXI6OnJlcGFpbnRSZWN0SW5Mb2NhbENvb3JkaW5hdGVzKToKKyAgICAgICAgKiByZW5k
ZXJpbmcvUmVuZGVyU1ZHQ29udGFpbmVyLmg6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlclNW
R01vZGVsT2JqZWN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclNWR01vZGVsT2JqZWN0
OjpjbGlwcGVkT3ZlcmZsb3dSZWN0Rm9yUmVwYWludCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5k
ZXJTVkdNb2RlbE9iamVjdDo6Y29tcHV0ZVJlY3RGb3JSZXBhaW50KToKKyAgICAgICAgKiByZW5k
ZXJpbmcvUmVuZGVyU1ZHTW9kZWxPYmplY3QuaDoKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVy
U1ZHUm9vdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJTVkdSb290Ojpjb21wdXRlUmVj
dEZvclJlcGFpbnQpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJTVkdSb290Lmg6CisKIDIw
MDktMDQtMTcgIENocmlzIEZsZWl6YWNoICA8Y2ZsZWl6YWNoQGFwcGxlLmNvbT4KIAogICAgICAg
ICBSZXZpZXdlZCBieSBEYXJpbiBBZGxlci4KZGlmZiAtLWdpdCBhL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlclBhdGguY3BwIGIvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyUGF0aC5jcHAKaW5kZXgg
YzEwYjg3NC4uNzk3NTMyMyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyUGF0
aC5jcHAKKysrIGIvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyUGF0aC5jcHAKQEAgLTIsOCArMiw3
IEBACiAgICAgQ29weXJpZ2h0IChDKSAyMDA0LCAyMDA1LCAyMDA3IE5pa29sYXMgWmltbWVybWFu
biA8emltbWVybWFubkBrZGUub3JnPgogICAgICAgICAgICAgICAgICAgMjAwNCwgMjAwNSwgMjAw
OCBSb2IgQnVpcyA8YnVpc0BrZGUub3JnPgogICAgICAgICAgICAgICAgICAgMjAwNSwgMjAwNyBF
cmljIFNlaWRlbCA8ZXJpY0B3ZWJraXQub3JnPgotCi0gICAgVGhpcyBmaWxlIGlzIHBhcnQgb2Yg
dGhlIEtERSBwcm9qZWN0CisgICAgICAgICAgICAgICAgICAyMDA5IEdvb2dsZSwgSW5jLgogCiAg
ICAgVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0
IGFuZC9vcgogICAgIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5
IEdlbmVyYWwgUHVibGljCkBAIC0xMjMsMjIgKzEyMiwyOCBAQCBGbG9hdFJlY3QgUmVuZGVyUGF0
aDo6cmVwYWludFJlY3RJbkxvY2FsQ29vcmRpbmF0ZXMoKSBjb25zdAogICAgIGlmIChtX3BhdGgu
aXNFbXB0eSgpKQogICAgICAgICByZXR1cm4gRmxvYXRSZWN0KCk7CiAKLSAgICBpZiAobV9zdHJv
a2VCYm94LmlzRW1wdHkoKSkgewotICAgICAgICBpZiAoIXN0eWxlKCktPnN2Z1N0eWxlKCktPmhh
c1N0cm9rZSgpKQotICAgICAgICAgICAgcmV0dXJuIG9iamVjdEJvdW5kaW5nQm94KCk7CisgICAg
Ly8gSWYgd2UgYWxyZWFkeSBoYXZlIGEgY2FjaGVkIHJlcGFpbnQgcmVjdCwgcmV0dXJuIHRoYXQK
KyAgICBpZiAoIW1fbWF4aW11bVBhaW50ZWRSZWN0LmlzRW1wdHkoKSkKKyAgICAgICAgcmV0dXJu
IG1fbWF4aW11bVBhaW50ZWRSZWN0OwogCisgICAgaWYgKCFzdHlsZSgpLT5zdmdTdHlsZSgpLT5o
YXNTdHJva2UoKSkKKyAgICAgICAgbV9tYXhpbXVtUGFpbnRlZFJlY3QgPSBvYmplY3RCb3VuZGlu
Z0JveCgpOworICAgIGVsc2UgewogICAgICAgICBCb3VuZGluZ1JlY3RTdHJva2VTdHlsZUFwcGxp
ZXIgc3Ryb2tlU3R5bGUodGhpcywgc3R5bGUoKSk7Ci0gICAgICAgIG1fc3Ryb2tlQmJveCA9IG1f
cGF0aC5zdHJva2VCb3VuZGluZ1JlY3QoJnN0cm9rZVN0eWxlKTsKKyAgICAgICAgbV9tYXhpbXVt
UGFpbnRlZFJlY3QgPSBtX3BhdGguc3Ryb2tlQm91bmRpbmdSZWN0KCZzdHJva2VTdHlsZSk7CiAg
ICAgfQotICAgIC8vIEZJWE1FOiBUaGlzIHNob3VsZCBpbmNsdWRlIGZpbHRlciBhbmQgbWFya2Vy
IGNvbnRlbnQgdG9vLgogCi0gICAgcmV0dXJuIG1fc3Ryb2tlQmJveDsKKyAgICAvLyBNYXJrZXJz
IGFuZCBmaWx0ZXJzIGNhbiBwYWludCBvdXRzaWRlIG9mIHRoZSBzdHJva2UgcGF0aAorICAgIG1f
bWF4aW11bVBhaW50ZWRSZWN0LnVuaXRlKG1fbWFya2VyQm91bmRzKTsKKyAgICBtX21heGltdW1Q
YWludGVkUmVjdC51bml0ZShmaWx0ZXJCb3VuZGluZ0JveCgpKTsKKworICAgIHJldHVybiBtX21h
eGltdW1QYWludGVkUmVjdDsKIH0KIAogdm9pZCBSZW5kZXJQYXRoOjpzZXRQYXRoKGNvbnN0IFBh
dGgmIG5ld1BhdGgpCiB7CiAgICAgbV9wYXRoID0gbmV3UGF0aDsKLSAgICBtX3N0cm9rZUJib3gg
PSBGbG9hdFJlY3QoKTsKKyAgICBtX21heGltdW1QYWludGVkUmVjdCA9IEZsb2F0UmVjdCgpOwog
ICAgIG1fZmlsbEJCb3ggPSBGbG9hdFJlY3QoKTsKIH0KIApAQCAtMTcwLDIzICsxNzUsNiBAQCB2
b2lkIFJlbmRlclBhdGg6OmxheW91dCgpCiAgICAgc2V0TmVlZHNMYXlvdXQoZmFsc2UpOwogfQog
Ci1JbnRSZWN0IFJlbmRlclBhdGg6OmNsaXBwZWRPdmVyZmxvd1JlY3RGb3JSZXBhaW50KFJlbmRl
ckJveE1vZGVsT2JqZWN0KiAvKnJlcGFpbnRDb250YWluZXIqLykKLXsKLSAgICAvLyBGSVhNRTog
aGFuZGxlIG5vbi1yb290IHJlcGFpbnRDb250YWluZXIKLSAgICBGbG9hdFJlY3QgcmVwYWludFJl
Y3QgPSBhYnNvbHV0ZVRyYW5zZm9ybSgpLm1hcFJlY3QocmVwYWludFJlY3RJbkxvY2FsQ29vcmRp
bmF0ZXMoKSk7Ci0KLSAgICAvLyBNYXJrZXJzIGNhbiBleHBhbmQgdGhlIGJvdW5kaW5nIGJveAot
ICAgIHJlcGFpbnRSZWN0LnVuaXRlKG1fbWFya2VyQm91bmRzKTsKLQotICAgIC8vIEZpbHRlcnMg
Y2FuIHBhaW50IGFueXdoZXJlLiAgSWYgd2UgaGF2ZSBvbmUsIGV4cGFuZCBvdXIgcmVjdCBzbyB3
ZSBhcmUgc3VyZSB0byByZXBhaW50IGl0LgotICAgIHJlcGFpbnRSZWN0LnVuaXRlKGZpbHRlckJv
dW5kaW5nQm94KCkpOwotCi0gICAgaWYgKCFyZXBhaW50UmVjdC5pc0VtcHR5KCkpCi0gICAgICAg
IHJlcGFpbnRSZWN0LmluZmxhdGUoMSk7IC8vIGluZmxhdGUgMSBwaXhlbCBmb3IgYW50aWFsaWFz
aW5nCi0KLSAgICByZXR1cm4gZW5jbG9zaW5nSW50UmVjdChyZXBhaW50UmVjdCk7Ci19Ci0KIGlu
dCBSZW5kZXJQYXRoOjpsaW5lSGVpZ2h0KGJvb2wsIGJvb2wpIGNvbnN0CiB7CiAgICAgcmV0dXJu
IHJlcGFpbnRSZWN0SW5Mb2NhbENvb3JkaW5hdGVzKCkuaGVpZ2h0KCk7CmRpZmYgLS1naXQgYS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJQYXRoLmggYi9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJQ
YXRoLmgKaW5kZXggNDY4ODM0NC4uZjdiNzEwZCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyUGF0aC5oCisrKyBiL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclBhdGguaApAQCAt
Myw4ICszLDcgQEAKICAgICAgICAgICAgICAgICAgIDIwMDQsIDIwMDUgUm9iIEJ1aXMgPGJ1aXNA
a2RlLm9yZz4KICAgICAgICAgICAgICAgICAgIDIwMDUgRXJpYyBTZWlkZWwgPGVyaWNAd2Via2l0
Lm9yZz4KICAgICAgICAgICAgICAgICAgIDIwMDYgQXBwbGUgQ29tcHV0ZXIsIEluYwotCi0gICAg
VGhpcyBmaWxlIGlzIHBhcnQgb2YgdGhlIEtERSBwcm9qZWN0CisgICAgICAgICAgICAgICAgICAy
MDA5IEdvb2dsZSwgSW5jLgogCiAgICAgVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlv
dSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgogICAgIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVy
bXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCkBAIC01OCw3ICs1Nyw2IEBAIHB1
YmxpYzoKICAgICB2aXJ0dWFsIFRyYW5zZm9ybWF0aW9uTWF0cml4IGxvY2FsVHJhbnNmb3JtKCkg
Y29uc3Q7CiAgICAgCiAgICAgdmlydHVhbCB2b2lkIGxheW91dCgpOwotICAgIHZpcnR1YWwgSW50
UmVjdCBjbGlwcGVkT3ZlcmZsb3dSZWN0Rm9yUmVwYWludChSZW5kZXJCb3hNb2RlbE9iamVjdCog
cmVwYWludENvbnRhaW5lcik7CiAgICAgdmlydHVhbCBib29sIHJlcXVpcmVzTGF5ZXIoKSBjb25z
dCB7IHJldHVybiBmYWxzZTsgfQogICAgIHZpcnR1YWwgaW50IGxpbmVIZWlnaHQoYm9vbCBiLCBi
b29sIGlzUm9vdExpbmVCb3ggPSBmYWxzZSkgY29uc3Q7CiAgICAgdmlydHVhbCBpbnQgYmFzZWxp
bmVQb3NpdGlvbihib29sIGIsIGJvb2wgaXNSb290TGluZUJveCA9IGZhbHNlKSBjb25zdDsKQEAg
LTc4LDcgKzc2LDcgQEAgcHJpdmF0ZToKIAogICAgIG11dGFibGUgUGF0aCBtX3BhdGg7CiAgICAg
bXV0YWJsZSBGbG9hdFJlY3QgbV9maWxsQkJveDsKLSAgICBtdXRhYmxlIEZsb2F0UmVjdCBtX3N0
cm9rZUJib3g7CisgICAgbXV0YWJsZSBGbG9hdFJlY3QgbV9tYXhpbXVtUGFpbnRlZFJlY3Q7CiAg
ICAgRmxvYXRSZWN0IG1fbWFya2VyQm91bmRzOwogICAgIFRyYW5zZm9ybWF0aW9uTWF0cml4IG1f
bG9jYWxUcmFuc2Zvcm07CiAgICAgSW50UmVjdCBtX2Fic29sdXRlQm91bmRzOwpkaWZmIC0tZ2l0
IGEvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyU1ZHQ29udGFpbmVyLmNwcCBiL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlclNWR0NvbnRhaW5lci5jcHAKaW5kZXggZmE5MzdkNi4uZGMxNzA0ZSAxMDA2
NDQKLS0tIGEvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyU1ZHQ29udGFpbmVyLmNwcAorKysgYi9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJTVkdDb250YWluZXIuY3BwCkBAIC0xNTIsMjIgKzE1Miw2
IEBAIHZvaWQgUmVuZGVyU1ZHQ29udGFpbmVyOjpwYWludChQYWludEluZm8mIHBhaW50SW5mbywg
aW50LCBpbnQpCiAgICAgICAgIHBhaW50T3V0bGluZShwYWludEluZm8uY29udGV4dCwgbV9hYnNv
bHV0ZUJvdW5kcy54KCksIG1fYWJzb2x1dGVCb3VuZHMueSgpLCBtX2Fic29sdXRlQm91bmRzLndp
ZHRoKCksIG1fYWJzb2x1dGVCb3VuZHMuaGVpZ2h0KCksIHN0eWxlKCkpOwogfQogCi1JbnRSZWN0
IFJlbmRlclNWR0NvbnRhaW5lcjo6Y2xpcHBlZE92ZXJmbG93UmVjdEZvclJlcGFpbnQoUmVuZGVy
Qm94TW9kZWxPYmplY3QqIHJlcGFpbnRDb250YWluZXIpCi17Ci0gICAgRmxvYXRSZWN0IHJlcGFp
bnRSZWN0OwotCi0gICAgZm9yIChSZW5kZXJPYmplY3QqIGN1cnJlbnQgPSBmaXJzdENoaWxkKCk7
IGN1cnJlbnQgIT0gMDsgY3VycmVudCA9IGN1cnJlbnQtPm5leHRTaWJsaW5nKCkpCi0gICAgICAg
IHJlcGFpbnRSZWN0LnVuaXRlKGN1cnJlbnQtPmNsaXBwZWRPdmVyZmxvd1JlY3RGb3JSZXBhaW50
KHJlcGFpbnRDb250YWluZXIpKTsKLQotICAgIC8vIEZpbHRlcnMgY2FuIHBhaW50IGFueXdoZXJl
LiAgSWYgd2UgaGF2ZSBvbmUsIGV4cGFuZCBvdXIgcmVjdCBzbyB3ZSBhcmUgc3VyZSB0byByZXBh
aW50IGl0LgotICAgIHJlcGFpbnRSZWN0LnVuaXRlKGZpbHRlckJvdW5kaW5nQm94KCkpOwotCi0g
ICAgaWYgKCFyZXBhaW50UmVjdC5pc0VtcHR5KCkpCi0gICAgICAgIHJlcGFpbnRSZWN0LmluZmxh
dGUoMSk7IC8vIGluZmxhdGUgMSBwaXhlbCBmb3IgYW50aWFsaWFzaW5nCi0KLSAgICByZXR1cm4g
ZW5jbG9zaW5nSW50UmVjdChyZXBhaW50UmVjdCk7Ci19Ci0KIHZvaWQgUmVuZGVyU1ZHQ29udGFp
bmVyOjphZGRGb2N1c1JpbmdSZWN0cyhHcmFwaGljc0NvbnRleHQqIGdyYXBoaWNzQ29udGV4dCwg
aW50LCBpbnQpCiB7CiAgICAgZ3JhcGhpY3NDb250ZXh0LT5hZGRGb2N1c1JpbmdSZWN0KG1fYWJz
b2x1dGVCb3VuZHMpOwpAQCAtMTkyLDcgKzE3NiwxMiBAQCBGbG9hdFJlY3QgUmVuZGVyU1ZHQ29u
dGFpbmVyOjpvYmplY3RCb3VuZGluZ0JveCgpIGNvbnN0CiAvLyB3aWR0aCBvciBoZWlnaHQsIHNv
IHdlIHVuaW9uIGFsbCBvZiBvdXIgY2hpbGQgcmVjdHMgYXMgb3VyIHJlcGFpbnQgcmVjdC4KIEZs
b2F0UmVjdCBSZW5kZXJTVkdDb250YWluZXI6OnJlcGFpbnRSZWN0SW5Mb2NhbENvb3JkaW5hdGVz
KCkgY29uc3QKIHsKLSAgICByZXR1cm4gY29tcHV0ZUNvbnRhaW5lckJvdW5kaW5nQm94KHRoaXMs
IHRydWUpOworICAgIEZsb2F0UmVjdCByZXBhaW50UmVjdCA9IGNvbXB1dGVDb250YWluZXJCb3Vu
ZGluZ0JveCh0aGlzLCB0cnVlKTsKKworICAgIC8vIEEgZmlsdGVyIG9uIHRoaXMgY29udGFpbmVy
IGNhbiBwYWludCBvdXRzaWRlIG9mIHRoZSB1bmlvbiBvZiB0aGUgY2hpbGQgcmVwYWludCByZWN0
cworICAgIHJlcGFpbnRSZWN0LnVuaXRlKGZpbHRlckJvdW5kaW5nQm94KCkpOworCisgICAgcmV0
dXJuIHJlcGFpbnRSZWN0OwogfQogCiBib29sIFJlbmRlclNWR0NvbnRhaW5lcjo6bm9kZUF0UG9p
bnQoY29uc3QgSGl0VGVzdFJlcXVlc3QmIHJlcXVlc3QsIEhpdFRlc3RSZXN1bHQmIHJlc3VsdCwg
aW50IF94LCBpbnQgX3ksIGludCBfdHgsIGludCBfdHksIEhpdFRlc3RBY3Rpb24gaGl0VGVzdEFj
dGlvbikKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclNWR0NvbnRhaW5lci5o
IGIvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyU1ZHQ29udGFpbmVyLmgKaW5kZXggOWMxZTIxZC4u
YjI2MGNiZiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyU1ZHQ29udGFpbmVy
LmgKKysrIGIvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyU1ZHQ29udGFpbmVyLmgKQEAgLTUyLDcg
KzUyLDYgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBsYXlvdXQoKTsKICAgICB2aXJ0dWFs
IHZvaWQgcGFpbnQoUGFpbnRJbmZvJiwgaW50IHBhcmVudFgsIGludCBwYXJlbnRZKTsKIAotICAg
IHZpcnR1YWwgSW50UmVjdCBjbGlwcGVkT3ZlcmZsb3dSZWN0Rm9yUmVwYWludChSZW5kZXJCb3hN
b2RlbE9iamVjdCogcmVwYWludENvbnRhaW5lcik7CiAgICAgdmlydHVhbCB2b2lkIGFic29sdXRl
UmVjdHMoVmVjdG9yPEludFJlY3Q+JiByZWN0cywgaW50IHR4LCBpbnQgdHksIGJvb2wgdG9wTGV2
ZWwgPSB0cnVlKTsKICAgICB2aXJ0dWFsIHZvaWQgYWJzb2x1dGVRdWFkcyhWZWN0b3I8RmxvYXRR
dWFkPiYsIGJvb2wgdG9wTGV2ZWwgPSB0cnVlKTsKICAgICB2aXJ0dWFsIHZvaWQgYWRkRm9jdXNS
aW5nUmVjdHMoR3JhcGhpY3NDb250ZXh0KiwgaW50IHR4LCBpbnQgdHkpOwpkaWZmIC0tZ2l0IGEv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyU1ZHTW9kZWxPYmplY3QuY3BwIGIvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyU1ZHTW9kZWxPYmplY3QuY3BwCmluZGV4IGM3YzFhNjAuLjZmMTBhMzggMTAw
NjQ0Ci0tLSBhL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclNWR01vZGVsT2JqZWN0LmNwcAorKysg
Yi9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJTVkdNb2RlbE9iamVjdC5jcHAKQEAgLTMzLDEwICsz
MywxMiBAQAogI2lmIEVOQUJMRShTVkcpCiAjaW5jbHVkZSAiUmVuZGVyU1ZHTW9kZWxPYmplY3Qu
aCIKIAorI2luY2x1ZGUgIlJlbmRlckxheWVyLmgiCisjaW5jbHVkZSAiU1ZHU3R5bGVkRWxlbWVu
dC5oIgorCiAjaWYgRU5BQkxFKFNWR19GSUxURVJTKQogI2luY2x1ZGUgIlNWR1Jlc291cmNlRmls
dGVyLmgiCiAjZW5kaWYKLSNpbmNsdWRlICJTVkdTdHlsZWRFbGVtZW50LmgiCiAKIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKIApAQCAtNDUsNiArNDcsMjYgQEAgUmVuZGVyU1ZHTW9kZWxPYmplY3Q6OlJl
bmRlclNWR01vZGVsT2JqZWN0KFNWR1N0eWxlZEVsZW1lbnQqIG5vZGUpCiB7CiB9CiAKK0ludFJl
Y3QgUmVuZGVyU1ZHTW9kZWxPYmplY3Q6OmNsaXBwZWRPdmVyZmxvd1JlY3RGb3JSZXBhaW50KFJl
bmRlckJveE1vZGVsT2JqZWN0KiByZXBhaW50Q29udGFpbmVyKQoreworICAgIC8vIFJldHVybiBl
YXJseSBmb3IgYW55IGNhc2VzIHdoZXJlIHdlIGRvbid0IGFjdHVhbGx5IHBhaW50CisgICAgaWYg
KHN0eWxlKCktPnZpc2liaWxpdHkoKSAhPSBWSVNJQkxFICYmICFlbmNsb3NpbmdMYXllcigpLT5o
YXNWaXNpYmxlQ29udGVudCgpKQorICAgICAgICByZXR1cm4gSW50UmVjdCgpOworCisgICAgLy8g
UGFzcyBvdXIgbG9jYWwgcGFpbnQgcmVjdCB0byBjb21wdXRlUmVjdEZvclJlcGFpbnQoKSB3aGlj
aCB3aWxsCisgICAgLy8gbWFwIHRvIHBhcmVudCBjb29yZHMgYW5kIHJlY3Vyc2UgdXAgdGhlIHBh
cmVudCBjaGFpbi4KKyAgICBJbnRSZWN0IHJlcGFpbnRSZWN0ID0gZW5jbG9zaW5nSW50UmVjdChy
ZXBhaW50UmVjdEluTG9jYWxDb29yZGluYXRlcygpKTsKKyAgICBjb21wdXRlUmVjdEZvclJlcGFp
bnQocmVwYWludENvbnRhaW5lciwgcmVwYWludFJlY3QpOworICAgIHJldHVybiByZXBhaW50UmVj
dDsKK30KKwordm9pZCBSZW5kZXJTVkdNb2RlbE9iamVjdDo6Y29tcHV0ZVJlY3RGb3JSZXBhaW50
KFJlbmRlckJveE1vZGVsT2JqZWN0KiByZXBhaW50Q29udGFpbmVyLCBJbnRSZWN0JiByZXBhaW50
UmVjdCwgYm9vbCBmaXhlZCkKK3sKKyAgICAvLyBUcmFuc2xhdGUgdG8gY29vcmRzIGluIG91ciBw
YXJlbnQgcmVuZGVyZXIsIGFuZCB0aGVuIGNhbGwgY29tcHV0ZVJlY3RGb3JSZXBhaW50IG9uIG91
ciBwYXJlbnQKKyAgICByZXBhaW50UmVjdCA9IGxvY2FsVG9QYXJlbnRUcmFuc2Zvcm0oKS5tYXBS
ZWN0KHJlcGFpbnRSZWN0KTsKKyAgICBwYXJlbnQoKS0+Y29tcHV0ZVJlY3RGb3JSZXBhaW50KHJl
cGFpbnRDb250YWluZXIsIHJlcGFpbnRSZWN0LCBmaXhlZCk7Cit9CisKIEZsb2F0UmVjdCBSZW5k
ZXJTVkdNb2RlbE9iamVjdDo6ZmlsdGVyQm91bmRpbmdCb3goKSBjb25zdAogewogI2lmIEVOQUJM
RShTVkdfRklMVEVSUykKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclNWR01v
ZGVsT2JqZWN0LmggYi9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJTVkdNb2RlbE9iamVjdC5oCmlu
ZGV4IDhhZDkyY2YuLjcyZmQ1OTcgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
clNWR01vZGVsT2JqZWN0LmgKKysrIGIvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyU1ZHTW9kZWxP
YmplY3QuaApAQCAtNTAsNiArNTAsOSBAQCBwdWJsaWM6CiAKICAgICB2aXJ0dWFsIGJvb2wgcmVx
dWlyZXNMYXllcigpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CiAKKyAgICB2aXJ0dWFsIEludFJl
Y3QgY2xpcHBlZE92ZXJmbG93UmVjdEZvclJlcGFpbnQoUmVuZGVyQm94TW9kZWxPYmplY3QqIHJl
cGFpbnRDb250YWluZXIpOworICAgIHZpcnR1YWwgdm9pZCBjb21wdXRlUmVjdEZvclJlcGFpbnQo
UmVuZGVyQm94TW9kZWxPYmplY3QqIHJlcGFpbnRDb250YWluZXIsIEludFJlY3QmLCBib29sIGZp
eGVkID0gZmFsc2UpOworCiBwcm90ZWN0ZWQ6CiAgICAgLy8gUmV0dXJucyB0aGUgYm91bmRpbmcg
Ym94IGZvciB0aGUgZmlsdGVyIGFzc29jaWF0ZWQgd2l0aCB0aGlzIG9iamVjdCAoaWYgYW55KQog
ICAgIEZsb2F0UmVjdCBmaWx0ZXJCb3VuZGluZ0JveCgpIGNvbnN0OwpkaWZmIC0tZ2l0IGEvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyU1ZHUm9vdC5jcHAgYi9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJTVkdSb290LmNwcAppbmRleCA5NDRjYWMzLi4xMzdjOGQxIDEwMDY0NAotLS0gYS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJTVkdSb290LmNwcAorKysgYi9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJTVkdSb290LmNwcApAQCAtMiw4ICsyLDcgQEAKICAgICBDb3B5cmlnaHQgKEMpIDIwMDQsIDIw
MDUsIDIwMDcgTmlrb2xhcyBaaW1tZXJtYW5uIDx6aW1tZXJtYW5uQGtkZS5vcmc+CiAgICAgICAg
ICAgICAgICAgICAyMDA0LCAyMDA1LCAyMDA3LCAyMDA4LCAyMDA5IFJvYiBCdWlzIDxidWlzQGtk
ZS5vcmc+CiAgICAgICAgICAgICAgICAgICAyMDA3IEVyaWMgU2VpZGVsIDxlcmljQHdlYmtpdC5v
cmc+Ci0KLSAgICBUaGlzIGZpbGUgaXMgcGFydCBvZiB0aGUgS0RFIHByb2plY3QKKyAgICAgICAg
ICAgICAgICAgIDIwMDkgR29vZ2xlLCBJbmMuCiAKICAgICBUaGlzIGxpYnJhcnkgaXMgZnJlZSBz
b2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCiAgICAgbW9kaWZ5IGl0IHVu
ZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKQEAgLTI1Myw2
ICsyNTIsMjAgQEAgVHJhbnNmb3JtYXRpb25NYXRyaXggUmVuZGVyU1ZHUm9vdDo6bG9jYWxUcmFu
c2Zvcm0oKSBjb25zdAogICAgIHJldHVybiBUcmFuc2Zvcm1hdGlvbk1hdHJpeCgpOwogfQogCit2
b2lkIFJlbmRlclNWR1Jvb3Q6OmNvbXB1dGVSZWN0Rm9yUmVwYWludChSZW5kZXJCb3hNb2RlbE9i
amVjdCogcmVwYWludENvbnRhaW5lciwgSW50UmVjdCYgcmVwYWludFJlY3QsIGJvb2wgZml4ZWQp
Cit7CisgICAgLy8gQXBwbHkgb3VyIHZpZXdib3ggdHJhbnNmb3JtLCBhbmQgdGhlbiBjYWxsIFJl
bmRlckJveCdzIG1ldGhvZCB0byBoYW5kbGUgYWxsIHRoZSBub3JtYWwgQ1NTIEJveCBtb2RlbCBi
aXRzCisgICAgVHJhbnNmb3JtYXRpb25NYXRyaXggbG9jYWxUb1BhcmVudCA9IGxvY2FsVG9QYXJl
bnRUcmFuc2Zvcm0oKTsKKworICAgIC8vIFVuZG8gdGhlIHgoKSx5KCkgdHJhbnNsYXRpb24gaW5j
bHVkZWQgaW4gbG9jYWxUb1BhcmVudFRyYW5zZm9ybSgpIGJlY2F1c2UKKyAgICAvLyBSZW5kZXJC
b3g6OmNvbXB1dGVSZWN0Rm9yUmVwYWludCgpIGV4cGVjdHMgaXQgdG8gYmUgaW5jbHVkZWQgaW4g
cmVwYWludFJlY3QKKyAgICBsb2NhbFRvUGFyZW50LnRyYW5zbGF0ZVJpZ2h0KC14KCksIC15KCkp
OworCisgICAgLy8gQXBwbHkgb3VyIGxvY2FsVG9QYXJlbnQgdHJhbnNmb3JtIGFuZCBwYXNzIHRo
ZSByZWN0IG9mZiB0byBvdXIgUmVuZGVyQm94CisgICAgcmVwYWludFJlY3QgPSBsb2NhbFRvUGFy
ZW50Lm1hcFJlY3QocmVwYWludFJlY3QpOworICAgIFJlbmRlckJveDo6Y29tcHV0ZVJlY3RGb3JS
ZXBhaW50KHJlcGFpbnRDb250YWluZXIsIHJlcGFpbnRSZWN0LCBmaXhlZCk7Cit9CisKIGJvb2wg
UmVuZGVyU1ZHUm9vdDo6bm9kZUF0UG9pbnQoY29uc3QgSGl0VGVzdFJlcXVlc3QmIHJlcXVlc3Qs
IEhpdFRlc3RSZXN1bHQmIHJlc3VsdCwgaW50IF94LCBpbnQgX3ksIGludCBfdHgsIGludCBfdHks
IEhpdFRlc3RBY3Rpb24gaGl0VGVzdEFjdGlvbikKIHsKICAgICBUcmFuc2Zvcm1hdGlvbk1hdHJp
eCBjdG0gPSBSZW5kZXJCb3g6OmFic29sdXRlVHJhbnNmb3JtKCk7CmRpZmYgLS1naXQgYS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJTVkdSb290LmggYi9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJT
VkdSb290LmgKaW5kZXggNzkyYjhjNC4uMzU3MjUzYiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyU1ZHUm9vdC5oCisrKyBiL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclNWR1Jv
b3QuaApAQCAtNDcsNyArNDcsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBpbnQgbGluZUhlaWdo
dChib29sIGIsIGJvb2wgaXNSb290TGluZUJveCA9IGZhbHNlKSBjb25zdDsKICAgICB2aXJ0dWFs
IGludCBiYXNlbGluZVBvc2l0aW9uKGJvb2wgYiwgYm9vbCBpc1Jvb3RMaW5lQm94ID0gZmFsc2Up
IGNvbnN0OwogICAgIHZpcnR1YWwgdm9pZCBjYWxjUHJlZldpZHRocygpOwotICAgIAorCiAgICAg
dmlydHVhbCB2b2lkIGxheW91dCgpOwogICAgIHZpcnR1YWwgdm9pZCBwYWludChQYWludEluZm8m
LCBpbnQgcGFyZW50WCwgaW50IHBhcmVudFkpOwogCkBAIC02Niw3ICs2Niw5IEBAIHB1YmxpYzoK
ICAgICBGbG9hdFJlY3Qgdmlld3BvcnQoKSBjb25zdDsKIAogICAgIHZpcnR1YWwgYm9vbCBub2Rl
QXRQb2ludChjb25zdCBIaXRUZXN0UmVxdWVzdCYsIEhpdFRlc3RSZXN1bHQmLCBpbnQgeCwgaW50
IHksIGludCB0eCwgaW50IHR5LCBIaXRUZXN0QWN0aW9uKTsKLSAgICAKKworICAgIHZpcnR1YWwg
dm9pZCBjb21wdXRlUmVjdEZvclJlcGFpbnQoUmVuZGVyQm94TW9kZWxPYmplY3QqIHJlcGFpbnRD
b250YWluZXIsIEludFJlY3QmIHJlcGFpbnRSZWN0LCBib29sIGZpeGVkKTsKKwogcHJpdmF0ZToK
ICAgICB2b2lkIGNhbGNWaWV3cG9ydCgpOyAKICAgICB2b2lkIGFwcGx5Q29udGVudFRyYW5zZm9y
bXMoUGFpbnRJbmZvJiwgaW50IHBhcmVudFgsIGludCBwYXJlbnRZKTsK
</data>
<flag name="review"
          id="14765"
          type_id="1"
          status="+"
          setter="koivisto"
    />
          </attachment>
      

    </bug>

</bugzilla>