<?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>104419</bug_id>
          
          <creation_ts>2012-12-07 16:54:57 -0800</creation_ts>
          <short_desc>[CSS Exclusions] shape-inside layout fails to adjust first line correctly for writing-mode: vertical-rl</short_desc>
          <delta_ts>2012-12-18 11:09:51 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>CSS</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Hans Muller">giles_joplin</reporter>
          <assigned_to name="Hans Muller">giles_joplin</assigned_to>
          <cc>eric</cc>
    
    <cc>ojan.autocc</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>786306</commentid>
    <comment_count>0</comment_count>
    <who name="Hans Muller">giles_joplin</who>
    <bug_when>2012-12-07 16:54:57 -0800</bug_when>
    <thetext>See the attached example.  The vertical-rl case fails.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>786309</commentid>
    <comment_count>1</comment_count>
      <attachid>178307</attachid>
    <who name="Hans Muller">giles_joplin</who>
    <bug_when>2012-12-07 16:55:50 -0800</bug_when>
    <thetext>Created attachment 178307
Test case.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>790978</commentid>
    <comment_count>2</comment_count>
      <attachid>179348</attachid>
    <who name="Hans Muller">giles_joplin</who>
    <bug_when>2012-12-13 15:00:18 -0800</bug_when>
    <thetext>Created attachment 179348
Patch

ExclusionShapes no longer maintain a private &quot;internal&quot; coordinate system, they&apos;re now defined in logical coordinates. The createExclusionShape() method now handles the one-time conversion from physical to logical coordinates.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>792757</commentid>
    <comment_count>3</comment_count>
      <attachid>179348</attachid>
    <who name="Dirk Schulze">krit</who>
    <bug_when>2012-12-17 08:46:01 -0800</bug_when>
    <thetext>Comment on attachment 179348
Patch

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

Fix looks ok. Looks like you forgot the ChangeLogs :).

&gt; Source/WebCore/rendering/ExclusionShape.cpp:68
&gt; +static inline FloatRect physicalRectToLogical(const FloatRect&amp; r, float logicalBoxHeight, WritingMode writingMode)

s/r/rect/

&gt; Source/WebCore/rendering/ExclusionShape.cpp:77
&gt; +static inline FloatPoint physicalPointToLogical(const FloatPoint&amp; p, float logicalBoxHeight, WritingMode writingMode)

s/p/point/

&gt; Source/WebCore/rendering/ExclusionShape.cpp:86
&gt; +static inline FloatSize physicalSizeToLogical(const FloatSize&amp; s, WritingMode writingMode)

s/s/size/

&gt; Source/WebCore/rendering/ExclusionShape.cpp:145
&gt; +        exclusionShape-&gt;m_boundingBox = FloatRect(logicalCenter - logicalRadii, logicalRadii + logicalRadii);

logicalRadii + logicalRadii seems to be inconsistent with radius * 2 that you used previously. :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>792765</commentid>
    <comment_count>4</comment_count>
      <attachid>179755</attachid>
    <who name="Hans Muller">giles_joplin</who>
    <bug_when>2012-12-17 09:00:05 -0800</bug_when>
    <thetext>Created attachment 179755
Patch

Added the ChangeLog, made the suggested changes.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>792842</commentid>
    <comment_count>5</comment_count>
      <attachid>179755</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2012-12-17 10:46:59 -0800</bug_when>
    <thetext>Comment on attachment 179755
Patch

Attachment 179755 did not pass mac-ews (mac):
Output: http://queues.webkit.org/results/15366809

New failing tests:
fast/frames/sandboxed-iframe-attribute-parsing.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>793150</commentid>
    <comment_count>6</comment_count>
      <attachid>179830</attachid>
    <who name="Hans Muller">giles_joplin</who>
    <bug_when>2012-12-17 16:34:04 -0800</bug_when>
    <thetext>Created attachment 179830
Patch

Resubmitting original patch since the Mac failure that caused the commit-bot to reject this patch also failed without this patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>793669</commentid>
    <comment_count>7</comment_count>
      <attachid>179830</attachid>
    <who name="Dirk Schulze">krit</who>
    <bug_when>2012-12-18 08:20:23 -0800</bug_when>
    <thetext>Comment on attachment 179830
Patch

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

LGTM. Just a snippet. R=me

&gt; Source/WebCore/rendering/ExclusionShape.cpp:145
&gt; +        exclusionShape-&gt;m_boundingBox = FloatRect(logicalCenter - logicalRadii, logicalRadii + logicalRadii);

2 * radii</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>793844</commentid>
    <comment_count>8</comment_count>
      <attachid>179830</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-12-18 11:09:47 -0800</bug_when>
    <thetext>Comment on attachment 179830
Patch

Clearing flags on attachment: 179830

Committed r138043: &lt;http://trac.webkit.org/changeset/138043&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>793845</commentid>
    <comment_count>9</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-12-18 11:09:51 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>178307</attachid>
            <date>2012-12-07 16:55:50 -0800</date>
            <delta_ts>2012-12-07 16:55:50 -0800</delta_ts>
            <desc>Test case. </desc>
            <filename>writing-modes.html</filename>
            <type>text/html</type>
            <size>1184</size>
            <attacher name="Hans Muller">giles_joplin</attacher>
            
              <data encoding="base64">PCFET0NUWVBFIGh0bWw+CjxodG1sPgo8aGVhZD4KPHN0eWxlPgojc2hhcGUtY29udGFpbmVyIHsK
ICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgIGRpc3BsYXk6IGlubGluZS1ibG9jazsKICAgIHdp
ZHRoOiA0MTBweDsgCiAgICBoZWlnaHQ6IDQxMHB4OwogICAgbWFyZ2luOiAxMHB4Owp9Cgojc2hh
cGUtYmFja2dyb3VuZCB7CiAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICB0b3A6IDBweDsKICAg
IGxlZnQ6IDBweDsKICAgIHdpZHRoOiA0MTBweDsKICAgIGhlaWdodDogNDEwcHg7CiAgICBib3Jk
ZXItcmFkaXVzOiAyMDVweCAvIDIwNXB4OwogICAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDQ3LDUz
LDY0KTsKfQoKI3NoYXBlLWluc2lkZSB7CiAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICB0b3A6
IDVweDsKICAgIGxlZnQ6IDVweDsKICAgIHdpZHRoOiA0MDBweDsKICAgIGhlaWdodDogNDAwcHg7
CiAgICBjb2xvcjogcmdiKDI0MiwyMzcsMjQ4KTsgCiAgICAtd2Via2l0LXNoYXBlLWluc2lkZTog
cmVjdGFuZ2xlKDBweCwgMHB4LCA0MDBweCwgNDAwcHgsIDIwMHB4LCAyMDBweCk7Cn0KPC9zdHls
ZT4KPC9oZWFkPgoKPGJvZHk+CjxkaXYgaWQ9InNoYXBlLWNvbnRhaW5lciI+CiAgPGRpdiBpZD0i
c2hhcGUtYmFja2dyb3VuZCI+PC9kaXY+CiAgPGRpdiBpZD0ic2hhcGUtaW5zaWRlIj5UaGlzX2V4
dHJhX2xvbmdfd29yZF9zaGlmdHNfdGhlX2ZpcnN0X2xpbmUgbG9naWNhbGx5IGRvd253YXJkcy48
L2Rpdj4KPC9kaXY+CjxkaXYgaWQ9InNoYXBlLWNvbnRhaW5lciI+CiAgPGRpdiBpZD0ic2hhcGUt
YmFja2dyb3VuZCI+PC9kaXY+CiAgPGRpdiBpZD0ic2hhcGUtaW5zaWRlIiBzdHlsZT0iLXdlYmtp
dC13cml0aW5nLW1vZGU6IHZlcnRpY2FsLWxyIj5UaGlzX2V4dHJhX2xvbmdfd29yZF9zaGlmdHNf
dGhlX2ZpcnN0X2xpbmUgbG9naWNhbGx5IGRvd253YXJkcy48L2Rpdj4KPC9kaXY+CjxkaXYgaWQ9
InNoYXBlLWNvbnRhaW5lciI+CiAgPGRpdiBpZD0ic2hhcGUtYmFja2dyb3VuZCI+PC9kaXY+CiAg
PGRpdiBpZD0ic2hhcGUtaW5zaWRlIiBzdHlsZT0iLXdlYmtpdC13cml0aW5nLW1vZGU6IHZlcnRp
Y2FsLXJsIj5UaGlzX2V4dHJhX2xvbmdfd29yZF9zaGlmdHNfdGhlX2ZpcnN0X2xpbmUgbG9naWNh
bGx5IGRvd253YXJkcy48L2Rpdj4KPC9kaXY+CjwvYm9keT4KPC9odG1sPgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>179348</attachid>
            <date>2012-12-13 15:00:18 -0800</date>
            <delta_ts>2012-12-17 09:00:05 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>tmp.patch</filename>
            <type>text/plain</type>
            <size>16706</size>
            <attacher name="Hans Muller">giles_joplin</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZXhjbHVzaW9ucy9zaGFwZS1pbnNpZGUvc2hh
cGUtaW5zaWRlLXJvdW5kZWQtcmVjdGFuZ2xlLWZpdC0wMDMtZXhwZWN0ZWQuaHRtbCBiL0xheW91
dFRlc3RzL2Zhc3QvZXhjbHVzaW9ucy9zaGFwZS1pbnNpZGUvc2hhcGUtaW5zaWRlLXJvdW5kZWQt
cmVjdGFuZ2xlLWZpdC0wMDMtZXhwZWN0ZWQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwLi42NmY0ZjZmCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9l
eGNsdXNpb25zL3NoYXBlLWluc2lkZS9zaGFwZS1pbnNpZGUtcm91bmRlZC1yZWN0YW5nbGUtZml0
LTAwMy1leHBlY3RlZC5odG1sCkBAIC0wLDAgKzEsNjMgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0
bWw+Cis8aGVhZD4KKzxzY3JpcHQ+CisgICAgaWYgKHdpbmRvdy5pbnRlcm5hbHMpCisgICAgICAg
IHdpbmRvdy5pbnRlcm5hbHMuc2V0dGluZ3Muc2V0Q1NTRXhjbHVzaW9uc0VuYWJsZWQodHJ1ZSk7
Cis8L3NjcmlwdD4KKzxzdHlsZT4KKy5zaGFwZS1jb250YWluZXIgeworICAgIHBvc2l0aW9uOiBy
ZWxhdGl2ZTsKKyAgICB3aWR0aDogNDAwcHg7CisgICAgaGVpZ2h0OiAyMDBweDsKKyAgICBtYXJn
aW46IDEwcHg7Cit9CisKKy5zaGFwZS1iYWNrZ3JvdW5kIHsKKyAgICBwb3NpdGlvbjogYWJzb2x1
dGU7CisgICAgbGVmdDogMHB4OworICAgIHRvcDogMHB4OworICAgIHdpZHRoOiA0MDBweDsKKyAg
ICBoZWlnaHQ6IDIwMHB4OworICAgIGJvcmRlci1yYWRpdXM6IDUwcHggLyA1MHB4OworICAgIGJh
Y2tncm91bmQtY29sb3I6IHJnYigyMDAsMjAwLDIwMCk7Cit9CisKKy5zaGFwZS1pbnNpZGUtdmVy
dGljYWwtcmwgeworICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKKyAgICB0b3A6IDBweDsKKyAgICBs
ZWZ0OiAwcHg7CisgICAgd2lkdGg6IDQwMHB4OworICAgIGhlaWdodDogMjAwcHg7CisgICAgLXdl
YmtpdC13cml0aW5nLW1vZGU6IHZlcnRpY2FsLXJsOworICAgIGZvbnQ6IDUwcHgvMSBBaGVtLCBz
YW5zLXNlcmlmOworICAgIGNvbG9yOiBncmVlbjsKK30KKworLnNoYXBlLWluc2lkZS12ZXJ0aWNh
bC1sciB7CisgICAgcG9zaXRpb246IGFic29sdXRlOworICAgIHRvcDogMHB4OworICAgIGxlZnQ6
IDBweDsKKyAgICB3aWR0aDogNDAwcHg7CisgICAgaGVpZ2h0OiAyMDBweDsKKyAgICAtd2Via2l0
LXdyaXRpbmctbW9kZTogdmVydGljYWwtbHI7CisgICAgZm9udDogNTBweC8xIEFoZW0sIHNhbnMt
c2VyaWY7CisgICAgY29sb3I6IGdyZWVuOworfQorPC9zdHlsZT4KKzwvaGVhZD4KKzxib2R5Pgor
PHA+VGhlIGdyZWVuIHJlY3RhbmdsZSBzaG91bGQgYXBwZWFyIGp1c3QgdG8gdGhlIGxlZnQgb2Yg
dGhlIGdyZXkgcm91bmRlZCByZWN0YW5nbGUncyB1cHBlciBjb3JuZXJzLjwvcD4KKzxkaXYgY2xh
c3M9InNoYXBlLWNvbnRhaW5lciI+CisgIDxkaXYgY2xhc3M9InNoYXBlLWJhY2tncm91bmQiPjwv
ZGl2PgorICA8ZGl2IGNsYXNzPSJzaGFwZS1pbnNpZGUtdmVydGljYWwtcmwiPjxici8+WFhYWDwv
ZGl2PgorPC9kaXY+Cis8L3A+CisKKzxwPlRoZSBncmVlbiByZWN0YW5nbGUgc2hvdWxkIGFwcGVh
ciBqdXN0IHRvIHRoZSBsZWZ0IG9mIHRoZSBncmV5IHJvdW5kZWQgcmVjdGFuZ2xlJ3MgdXBwZXIg
Y29ybmVycy48L3A+Cis8ZGl2IGNsYXNzPSJzaGFwZS1jb250YWluZXIiPgorICA8ZGl2IGNsYXNz
PSJzaGFwZS1iYWNrZ3JvdW5kIj48L2Rpdj4KKyAgPGRpdiBjbGFzcz0ic2hhcGUtaW5zaWRlLXZl
cnRpY2FsLWxyIj48YnIvPlhYWFg8L2Rpdj4KKzwvZGl2PgorPC9ib2R5PgorPC9odG1sPgpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9leGNsdXNpb25zL3NoYXBlLWluc2lkZS9zaGFwZS1p
bnNpZGUtcm91bmRlZC1yZWN0YW5nbGUtZml0LTAwMy5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9l
eGNsdXNpb25zL3NoYXBlLWluc2lkZS9zaGFwZS1pbnNpZGUtcm91bmRlZC1yZWN0YW5nbGUtZml0
LTAwMy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjllOWNlODEKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2V4Y2x1c2lvbnMvc2hhcGUtaW5zaWRl
L3NoYXBlLWluc2lkZS1yb3VuZGVkLXJlY3RhbmdsZS1maXQtMDAzLmh0bWwKQEAgLTAsMCArMSw2
NSBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdD4KKyAgICBpZiAo
d2luZG93LmludGVybmFscykKKyAgICAgICAgd2luZG93LmludGVybmFscy5zZXR0aW5ncy5zZXRD
U1NFeGNsdXNpb25zRW5hYmxlZCh0cnVlKTsKKzwvc2NyaXB0PgorPHN0eWxlPgorLnNoYXBlLWNv
bnRhaW5lciB7CisgICAgcG9zaXRpb246IHJlbGF0aXZlOworICAgIHdpZHRoOiA0MDBweDsKKyAg
ICBoZWlnaHQ6IDIwMHB4OworICAgIG1hcmdpbjogMTBweDsKK30KKworLnNoYXBlLWJhY2tncm91
bmQgeworICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKKyAgICBsZWZ0OiAwcHg7CisgICAgdG9wOiAw
cHg7CisgICAgd2lkdGg6IDQwMHB4OworICAgIGhlaWdodDogMjAwcHg7CisgICAgYm9yZGVyLXJh
ZGl1czogNTBweCAvIDUwcHg7CisgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDIwMCwyMDAsMjAw
KTsKK30KKworLnNoYXBlLWluc2lkZS12ZXJ0aWNhbC1ybCB7CisgICAgcG9zaXRpb246IGFic29s
dXRlOworICAgIHRvcDogMHB4OworICAgIGxlZnQ6IDBweDsKKyAgICB3aWR0aDogNDAwcHg7Cisg
ICAgaGVpZ2h0OiAyMDBweDsKKyAgICAtd2Via2l0LXNoYXBlLWluc2lkZTogcmVjdGFuZ2xlKDBw
eCwgMHB4LCA0MDBweCwgMjAwcHgsIDUwcHgsIDUwcHgpOworICAgIC13ZWJraXQtd3JpdGluZy1t
b2RlOiB2ZXJ0aWNhbC1ybDsKKyAgICBmb250OiA1MHB4LzEgQWhlbSwgc2Fucy1zZXJpZjsKKyAg
ICBjb2xvcjogZ3JlZW47Cit9CisKKy5zaGFwZS1pbnNpZGUtdmVydGljYWwtbHIgeworICAgIHBv
c2l0aW9uOiBhYnNvbHV0ZTsKKyAgICB0b3A6IDBweDsKKyAgICBsZWZ0OiAwcHg7CisgICAgd2lk
dGg6IDQwMHB4OworICAgIGhlaWdodDogMjAwcHg7CisgICAgLXdlYmtpdC1zaGFwZS1pbnNpZGU6
IHJlY3RhbmdsZSgwcHgsIDBweCwgNDAwcHgsIDIwMHB4LCA1MHB4LCA1MHB4KTsKKyAgICAtd2Vi
a2l0LXdyaXRpbmctbW9kZTogdmVydGljYWwtbHI7CisgICAgZm9udDogNTBweC8xIEFoZW0sIHNh
bnMtc2VyaWY7CisgICAgY29sb3I6IGdyZWVuOworfQorPC9zdHlsZT4KKzwvaGVhZD4KKzxib2R5
PgorPHA+VGhlIGdyZWVuIHJlY3RhbmdsZSBzaG91bGQgYXBwZWFyIGp1c3QgdG8gdGhlIGxlZnQg
b2YgdGhlIGdyZXkgcm91bmRlZCByZWN0YW5nbGUncyB1cHBlciBjb3JuZXJzLjwvcD4KKzxkaXYg
Y2xhc3M9InNoYXBlLWNvbnRhaW5lciI+CisgIDxkaXYgY2xhc3M9InNoYXBlLWJhY2tncm91bmQi
PjwvZGl2PgorICA8ZGl2IGNsYXNzPSJzaGFwZS1pbnNpZGUtdmVydGljYWwtcmwiPlhYWFg8L2Rp
dj4KKzwvZGl2PgorPC9wPgorCis8cD5UaGUgZ3JlZW4gcmVjdGFuZ2xlIHNob3VsZCBhcHBlYXIg
anVzdCB0byB0aGUgbGVmdCBvZiB0aGUgZ3JleSByb3VuZGVkIHJlY3RhbmdsZSdzIHVwcGVyIGNv
cm5lcnMuPC9wPgorPGRpdiBjbGFzcz0ic2hhcGUtY29udGFpbmVyIj4KKyAgPGRpdiBjbGFzcz0i
c2hhcGUtYmFja2dyb3VuZCI+PC9kaXY+CisgIDxkaXYgY2xhc3M9InNoYXBlLWluc2lkZS12ZXJ0
aWNhbC1sciI+WFhYWDwvZGl2PgorPC9kaXY+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvRXhjbHVzaW9uUG9seWdvbi5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvRXhjbHVzaW9uUG9seWdvbi5jcHAKaW5kZXggOTRiOTNkYy4uYjZh
ZWMwOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0V4Y2x1c2lvblBvbHln
b24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9FeGNsdXNpb25Qb2x5Z29uLmNw
cApAQCAtMzI3LDggKzMyNyw4IEBAIHZvaWQgRXhjbHVzaW9uUG9seWdvbjo6Z2V0RXhjbHVkZWRJ
bnRlcnZhbHMoZmxvYXQgbG9naWNhbFRvcCwgZmxvYXQgbG9naWNhbEhlaWdoCiAgICAgaWYgKGlz
RW1wdHkoKSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgZmxvYXQgeTEgPSBtaW5ZRm9yTG9naWNh
bExpbmUobG9naWNhbFRvcCwgbG9naWNhbEhlaWdodCk7Ci0gICAgZmxvYXQgeTIgPSBtYXhZRm9y
TG9naWNhbExpbmUobG9naWNhbFRvcCwgbG9naWNhbEhlaWdodCk7CisgICAgZmxvYXQgeTEgPSBs
b2dpY2FsVG9wOworICAgIGZsb2F0IHkyID0geTEgKyBsb2dpY2FsSGVpZ2h0OwogCiAgICAgVmVj
dG9yPEV4Y2x1c2lvbkludGVydmFsPiB5MVhJbnRlcnZhbHMsIHkyWEludGVydmFsczsKICAgICBj
b21wdXRlWEludGVyc2VjdGlvbnMoeTEsIHRydWUsIHkxWEludGVydmFscyk7CkBAIC0zNTQsOCAr
MzU0LDggQEAgdm9pZCBFeGNsdXNpb25Qb2x5Z29uOjpnZXRJbmNsdWRlZEludGVydmFscyhmbG9h
dCBsb2dpY2FsVG9wLCBmbG9hdCBsb2dpY2FsSGVpZ2gKICAgICBpZiAoaXNFbXB0eSgpKQogICAg
ICAgICByZXR1cm47CiAKLSAgICBmbG9hdCB5MSA9IG1pbllGb3JMb2dpY2FsTGluZShsb2dpY2Fs
VG9wLCBsb2dpY2FsSGVpZ2h0KTsKLSAgICBmbG9hdCB5MiA9IG1heFlGb3JMb2dpY2FsTGluZShs
b2dpY2FsVG9wLCBsb2dpY2FsSGVpZ2h0KTsKKyAgICBmbG9hdCB5MSA9IGxvZ2ljYWxUb3A7Cisg
ICAgZmxvYXQgeTIgPSB5MSArIGxvZ2ljYWxIZWlnaHQ7CiAKICAgICBWZWN0b3I8RXhjbHVzaW9u
SW50ZXJ2YWw+IHkxWEludGVydmFscywgeTJYSW50ZXJ2YWxzOwogICAgIGNvbXB1dGVYSW50ZXJz
ZWN0aW9ucyh5MSwgdHJ1ZSwgeTFYSW50ZXJ2YWxzKTsKQEAgLTM4Myw4ICszODMsOCBAQCBib29s
IEV4Y2x1c2lvblBvbHlnb246OmZpcnN0SW5jbHVkZWRJbnRlcnZhbExvZ2ljYWxUb3AoZmxvYXQg
bWluTG9naWNhbEludGVydmFsVAogICAgIGlmIChtaW5Mb2dpY2FsSW50ZXJ2YWxTaXplLndpZHRo
KCkgPiBtX2JvdW5kaW5nQm94LndpZHRoKCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAotICAg
IGZsb2F0IG1pblkgPSBtaW5ZRm9yTG9naWNhbExpbmUobWluTG9naWNhbEludGVydmFsVG9wLCBt
aW5Mb2dpY2FsSW50ZXJ2YWxTaXplLmhlaWdodCgpKTsKLSAgICBmbG9hdCBtYXhZID0gbWF4WUZv
ckxvZ2ljYWxMaW5lKG1pbkxvZ2ljYWxJbnRlcnZhbFRvcCwgbWluTG9naWNhbEludGVydmFsU2l6
ZS5oZWlnaHQoKSk7CisgICAgZmxvYXQgbWluWSA9IHN0ZDo6bWF4KG1fYm91bmRpbmdCb3gueSgp
LCBtaW5Mb2dpY2FsSW50ZXJ2YWxUb3ApOworICAgIGZsb2F0IG1heFkgPSBtaW5ZICsgbWluTG9n
aWNhbEludGVydmFsU2l6ZS5oZWlnaHQoKTsKICAgICBpZiAobWluWSA8IG1fYm91bmRpbmdCb3gu
eSgpIHx8IG1heFkgPiBtX2JvdW5kaW5nQm94Lm1heFkoKSkKICAgICAgICAgcmV0dXJuIGZhbHNl
OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvRXhjbHVzaW9uUG9seWdv
bi5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0V4Y2x1c2lvblBvbHlnb24uaAppbmRleCAy
NWZjNmY3Li5jZTJmYjU1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvRXhj
bHVzaW9uUG9seWdvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9FeGNsdXNpb25Q
b2x5Z29uLmgKQEAgLTYyLDcgKzYyLDcgQEAgcHVibGljOgogICAgIGNvbnN0IEV4Y2x1c2lvblBv
bHlnb25FZGdlJiBlZGdlQXQodW5zaWduZWQgaW5kZXgpIGNvbnN0IHsgcmV0dXJuIG1fZWRnZXNb
aW5kZXhdOyB9CiAgICAgdW5zaWduZWQgbnVtYmVyT2ZFZGdlcygpIGNvbnN0IHsgcmV0dXJuIG1f
ZWRnZXMuc2l6ZSgpOyB9CiAKLSAgICB2aXJ0dWFsIEZsb2F0UmVjdCBzaGFwZUxvZ2ljYWxCb3Vu
ZGluZ0JveCgpIGNvbnN0IE9WRVJSSURFIHsgcmV0dXJuIGludGVybmFsVG9Mb2dpY2FsQm91bmRp
bmdCb3gobV9ib3VuZGluZ0JveCk7IH0KKyAgICB2aXJ0dWFsIEZsb2F0UmVjdCBzaGFwZUxvZ2lj
YWxCb3VuZGluZ0JveCgpIGNvbnN0IE9WRVJSSURFIHsgcmV0dXJuIG1fYm91bmRpbmdCb3g7IH0K
ICAgICB2aXJ0dWFsIGJvb2wgaXNFbXB0eSgpIGNvbnN0IE9WRVJSSURFIHsgcmV0dXJuIG1fZW1w
dHk7IH0KICAgICB2aXJ0dWFsIHZvaWQgZ2V0RXhjbHVkZWRJbnRlcnZhbHMoZmxvYXQgbG9naWNh
bFRvcCwgZmxvYXQgbG9naWNhbEhlaWdodCwgU2VnbWVudExpc3QmKSBjb25zdCBPVkVSUklERTsK
ICAgICB2aXJ0dWFsIHZvaWQgZ2V0SW5jbHVkZWRJbnRlcnZhbHMoZmxvYXQgbG9naWNhbFRvcCwg
ZmxvYXQgbG9naWNhbEhlaWdodCwgU2VnbWVudExpc3QmKSBjb25zdCBPVkVSUklERTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9FeGNsdXNpb25SZWN0YW5nbGUuY3BwIGIv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0V4Y2x1c2lvblJlY3RhbmdsZS5jcHAKaW5kZXggOWJk
MjJkNS4uZWJlNmE4NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0V4Y2x1
c2lvblJlY3RhbmdsZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0V4Y2x1c2lv
blJlY3RhbmdsZS5jcHAKQEAgLTUxLDggKzUxLDggQEAgdm9pZCBFeGNsdXNpb25SZWN0YW5nbGU6
OmdldEV4Y2x1ZGVkSW50ZXJ2YWxzKGZsb2F0IGxvZ2ljYWxUb3AsIGZsb2F0IGxvZ2ljYWxIZWkK
ICAgICBpZiAoaXNFbXB0eSgpKQogICAgICAgICByZXR1cm47CiAKLSAgICBmbG9hdCB5MSA9IG1p
bllGb3JMb2dpY2FsTGluZShsb2dpY2FsVG9wLCBsb2dpY2FsSGVpZ2h0KTsKLSAgICBmbG9hdCB5
MiA9IG1heFlGb3JMb2dpY2FsTGluZShsb2dpY2FsVG9wLCBsb2dpY2FsSGVpZ2h0KTsKKyAgICBm
bG9hdCB5MSA9IGxvZ2ljYWxUb3A7CisgICAgZmxvYXQgeTIgPSB5MSArIGxvZ2ljYWxIZWlnaHQ7
CiAKICAgICBpZiAoeTIgPCBtX3kgfHwgeTEgPj0gbV95ICsgbV9oZWlnaHQpCiAgICAgICAgIHJl
dHVybjsKQEAgLTgyLDggKzgyLDggQEAgdm9pZCBFeGNsdXNpb25SZWN0YW5nbGU6OmdldEluY2x1
ZGVkSW50ZXJ2YWxzKGZsb2F0IGxvZ2ljYWxUb3AsIGZsb2F0IGxvZ2ljYWxIZWkKICAgICBpZiAo
aXNFbXB0eSgpKQogICAgICAgICByZXR1cm47CiAKLSAgICBmbG9hdCB5MSA9IG1pbllGb3JMb2dp
Y2FsTGluZShsb2dpY2FsVG9wLCBsb2dpY2FsSGVpZ2h0KTsKLSAgICBmbG9hdCB5MiA9IG1heFlG
b3JMb2dpY2FsTGluZShsb2dpY2FsVG9wLCBsb2dpY2FsSGVpZ2h0KTsKKyAgICBmbG9hdCB5MSA9
IGxvZ2ljYWxUb3A7CisgICAgZmxvYXQgeTIgPSB5MSArIGxvZ2ljYWxIZWlnaHQ7CiAKICAgICBp
ZiAoeTEgPCBtX3kgfHwgeTIgPiBtX3kgKyBtX2hlaWdodCkKICAgICAgICAgcmV0dXJuOwpAQCAt
MTMzLDggKzEzMyw5IEBAIGJvb2wgRXhjbHVzaW9uUmVjdGFuZ2xlOjpmaXJzdEluY2x1ZGVkSW50
ZXJ2YWxMb2dpY2FsVG9wKGZsb2F0IG1pbkxvZ2ljYWxJbnRlcnZhCiAgICAgaWYgKG1pbkxvZ2lj
YWxJbnRlcnZhbFNpemUud2lkdGgoKSA+IG1fd2lkdGgpCiAgICAgICAgIHJldHVybiBmYWxzZTsK
IAotICAgIGZsb2F0IG1pblkgPSBzdGQ6Om1heChtX3ksIG1pbllGb3JMb2dpY2FsTGluZShtaW5M
b2dpY2FsSW50ZXJ2YWxUb3AsIG1pbkxvZ2ljYWxJbnRlcnZhbFNpemUuaGVpZ2h0KCkpKTsKKyAg
ICBmbG9hdCBtaW5ZID0gc3RkOjptYXgobV95LCBtaW5Mb2dpY2FsSW50ZXJ2YWxUb3ApOwogICAg
IGZsb2F0IG1heFkgPSBtaW5ZICsgbWluTG9naWNhbEludGVydmFsU2l6ZS5oZWlnaHQoKTsKKwog
ICAgIGlmIChtYXhZID4gbV95ICsgbV9oZWlnaHQpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIApA
QCAtMTQyLDcgKzE0Myw3IEBAIGJvb2wgRXhjbHVzaW9uUmVjdGFuZ2xlOjpmaXJzdEluY2x1ZGVk
SW50ZXJ2YWxMb2dpY2FsVG9wKGZsb2F0IG1pbkxvZ2ljYWxJbnRlcnZhCiAgICAgYm9vbCBpbnRl
cnZhbE92ZXJsYXBzTWF4Q29ybmVyID0gbWF4WSA+IG1feSArIG1faGVpZ2h0IC0gbV9yeTsKIAog
ICAgIGlmICghaW50ZXJ2YWxPdmVybGFwc01pbkNvcm5lciAmJiAhaW50ZXJ2YWxPdmVybGFwc01h
eENvcm5lcikgewotICAgICAgICByZXN1bHQgPSBsb2dpY2FsVG9wRm9yTWluWShtaW5ZLCBtaW5M
b2dpY2FsSW50ZXJ2YWxTaXplLmhlaWdodCgpKTsKKyAgICAgICAgcmVzdWx0ID0gbWluWTsKICAg
ICAgICAgcmV0dXJuIHRydWU7CiAgICAgfQogCkBAIC0xNTMsMTggKzE1NCwxOCBAQCBib29sIEV4
Y2x1c2lvblJlY3RhbmdsZTo6Zmlyc3RJbmNsdWRlZEludGVydmFsTG9naWNhbFRvcChmbG9hdCBt
aW5Mb2dpY2FsSW50ZXJ2YQogCiAgICAgaWYgKGludGVydmFsT3ZlcmxhcHNNaW5Db3JuZXIgJiYg
KCFpbnRlcnZhbE92ZXJsYXBzTWF4Q29ybmVyIHx8IG1pbkNvcm5lckRlZmluZXNYKSkgewogICAg
ICAgICBpZiAoaW50ZXJ2YWxGaXRzV2l0aGluQ29ybmVycyB8fCBtX3kgKyBjb3JuZXJJbnRlcmNl
cHQueSgpIDwgbWluWSkgewotICAgICAgICAgICAgcmVzdWx0ID0gbG9naWNhbFRvcEZvck1pblko
bWluWSwgbWluTG9naWNhbEludGVydmFsU2l6ZS5oZWlnaHQoKSk7CisgICAgICAgICAgICByZXN1
bHQgPSBtaW5ZOwogICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgICAgIH0KICAgICAgICAg
aWYgKG1pbkxvZ2ljYWxJbnRlcnZhbFNpemUuaGVpZ2h0KCkgPCBtX2hlaWdodCAtICgyICogY29y
bmVySW50ZXJjZXB0LnkoKSkpIHsKLSAgICAgICAgICAgIHJlc3VsdCA9IGxvZ2ljYWxUb3BGb3JN
aW5ZKG1feSArIGNvcm5lckludGVyY2VwdC55KCksIG1pbkxvZ2ljYWxJbnRlcnZhbFNpemUuaGVp
Z2h0KCkpOworICAgICAgICAgICAgcmVzdWx0ID0gbV95ICsgY29ybmVySW50ZXJjZXB0LnkoKTsK
ICAgICAgICAgICAgIHJldHVybiB0cnVlOwogICAgICAgICB9CiAgICAgfQogCiAgICAgaWYgKGlu
dGVydmFsT3ZlcmxhcHNNYXhDb3JuZXIgJiYgKCFpbnRlcnZhbE92ZXJsYXBzTWluQ29ybmVyIHx8
ICFtaW5Db3JuZXJEZWZpbmVzWCkpIHsKICAgICAgICAgaWYgKGludGVydmFsRml0c1dpdGhpbkNv
cm5lcnMgfHwgbWluWSA8PSAgbV95ICsgbV9oZWlnaHQgLSBjb3JuZXJJbnRlcmNlcHQueSgpIC0g
bWluTG9naWNhbEludGVydmFsU2l6ZS5oZWlnaHQoKSkgewotICAgICAgICAgICAgcmVzdWx0ID0g
bG9naWNhbFRvcEZvck1pblkobWluWSwgbWluTG9naWNhbEludGVydmFsU2l6ZS5oZWlnaHQoKSk7
CisgICAgICAgICAgICByZXN1bHQgPSBtaW5ZOwogICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAg
ICAgICAgIH0KICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvRXhj
bHVzaW9uUmVjdGFuZ2xlLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvRXhjbHVzaW9uUmVj
dGFuZ2xlLmgKaW5kZXggNjYzODJjOC4uYzhhNjUzOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL0V4Y2x1c2lvblJlY3RhbmdsZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9FeGNsdXNpb25SZWN0YW5nbGUuaApAQCAtNTEsNyArNTEsNyBAQCBwdWJsaWM6CiAg
ICAgewogICAgIH0KIAotICAgIHZpcnR1YWwgRmxvYXRSZWN0IHNoYXBlTG9naWNhbEJvdW5kaW5n
Qm94KCkgY29uc3QgT1ZFUlJJREUgeyByZXR1cm4gaW50ZXJuYWxUb0xvZ2ljYWxCb3VuZGluZ0Jv
eChGbG9hdFJlY3QobV94LCBtX3ksIG1fd2lkdGgsIG1faGVpZ2h0KSk7IH0KKyAgICB2aXJ0dWFs
IEZsb2F0UmVjdCBzaGFwZUxvZ2ljYWxCb3VuZGluZ0JveCgpIGNvbnN0IE9WRVJSSURFIHsgcmV0
dXJuIEZsb2F0UmVjdChtX3gsIG1feSwgbV93aWR0aCwgbV9oZWlnaHQpOyB9CiAgICAgdmlydHVh
bCBib29sIGlzRW1wdHkoKSBjb25zdCBPVkVSUklERSB7IHJldHVybiBtX3dpZHRoIDw9IDAgfHwg
bV9oZWlnaHQgPD0gMDsgfQogICAgIHZpcnR1YWwgdm9pZCBnZXRFeGNsdWRlZEludGVydmFscyhm
bG9hdCBsb2dpY2FsVG9wLCBmbG9hdCBsb2dpY2FsSGVpZ2h0LCBTZWdtZW50TGlzdCYpIGNvbnN0
IE9WRVJSSURFOwogICAgIHZpcnR1YWwgdm9pZCBnZXRJbmNsdWRlZEludGVydmFscyhmbG9hdCBs
b2dpY2FsVG9wLCBmbG9hdCBsb2dpY2FsSGVpZ2h0LCBTZWdtZW50TGlzdCYpIGNvbnN0IE9WRVJS
SURFOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0V4Y2x1c2lvblNoYXBl
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9FeGNsdXNpb25TaGFwZS5jcHAKaW5kZXgg
NWUwZWE4Yi4uYmUxMGE3YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0V4
Y2x1c2lvblNoYXBlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvRXhjbHVzaW9u
U2hhcGUuY3BwCkBAIC02NSw4ICs2NSwzMCBAQCBzdGF0aWMgUGFzc093blB0cjxFeGNsdXNpb25T
aGFwZT4gY3JlYXRlRXhjbHVzaW9uUG9seWdvbihQYXNzT3duUHRyPFZlY3RvcjxGbG9hdAogICAg
IHJldHVybiBhZG9wdFB0cihuZXcgRXhjbHVzaW9uUG9seWdvbih2ZXJ0aWNlcywgZmlsbFJ1bGUp
KTsKIH0KIAotLy8gSWYgdGhlIHdyaXRpbmdNb2RlIGlzIHZlcnRpY2FsLCB0aGVuIHRoZSBCYXNp
Y1NoYXBlJ3MgKHBoeXNpY2FsKSB4IGFuZCB5IGNvb3JkaW5hdGVzIGFyZSBzd2FwcGVkLCBzbyB0
aGF0Ci0vLyBsaW5lIHNlZ21lbnRzIGFyZSBwYXJhbGxlbCB0byB0aGUgaW50ZXJuYWwgY29vcmRp
bmF0ZSBzeXN0ZW0ncyBYIGF4aXMuCitzdGF0aWMgaW5saW5lIEZsb2F0UmVjdCBwaHlzaWNhbFJl
Y3RUb0xvZ2ljYWwoY29uc3QgRmxvYXRSZWN0JiByLCBmbG9hdCBsb2dpY2FsQm94SGVpZ2h0LCBX
cml0aW5nTW9kZSB3cml0aW5nTW9kZSkKK3sKKyAgICBpZiAoaXNIb3Jpem9udGFsV3JpdGluZ01v
ZGUod3JpdGluZ01vZGUpKQorICAgICAgICByZXR1cm4gcjsKKyAgICBpZiAoaXNGbGlwcGVkQmxv
Y2tzV3JpdGluZ01vZGUod3JpdGluZ01vZGUpKQorICAgICAgICByZXR1cm4gRmxvYXRSZWN0KHIu
eSgpLCBsb2dpY2FsQm94SGVpZ2h0IC0gci5tYXhYKCksIHIuaGVpZ2h0KCksIHIud2lkdGgoKSk7
CisgICAgcmV0dXJuIHIudHJhbnNwb3NlZFJlY3QoKTsKK30KKworc3RhdGljIGlubGluZSBGbG9h
dFBvaW50IHBoeXNpY2FsUG9pbnRUb0xvZ2ljYWwoY29uc3QgRmxvYXRQb2ludCYgcCwgZmxvYXQg
bG9naWNhbEJveEhlaWdodCwgV3JpdGluZ01vZGUgd3JpdGluZ01vZGUpCit7CisgICAgaWYgKGlz
SG9yaXpvbnRhbFdyaXRpbmdNb2RlKHdyaXRpbmdNb2RlKSkKKyAgICAgICAgcmV0dXJuIHA7Cisg
ICAgaWYgKGlzRmxpcHBlZEJsb2Nrc1dyaXRpbmdNb2RlKHdyaXRpbmdNb2RlKSkKKyAgICAgICAg
cmV0dXJuIEZsb2F0UG9pbnQocC55KCksIGxvZ2ljYWxCb3hIZWlnaHQgLSBwLngoKSk7CisgICAg
cmV0dXJuIHAudHJhbnNwb3NlZFBvaW50KCk7Cit9CisKK3N0YXRpYyBpbmxpbmUgRmxvYXRTaXpl
IHBoeXNpY2FsU2l6ZVRvTG9naWNhbChjb25zdCBGbG9hdFNpemUmIHMsIFdyaXRpbmdNb2RlIHdy
aXRpbmdNb2RlKQoreworICAgIGlmIChpc0hvcml6b250YWxXcml0aW5nTW9kZSh3cml0aW5nTW9k
ZSkpCisgICAgICAgIHJldHVybiBzOworICAgIHJldHVybiBzLnRyYW5zcG9zZWRTaXplKCk7Cit9
CiAKIFBhc3NPd25QdHI8RXhjbHVzaW9uU2hhcGU+IEV4Y2x1c2lvblNoYXBlOjpjcmVhdGVFeGNs
dXNpb25TaGFwZShjb25zdCBCYXNpY1NoYXBlKiBiYXNpY1NoYXBlLCBmbG9hdCBsb2dpY2FsQm94
V2lkdGgsIGZsb2F0IGxvZ2ljYWxCb3hIZWlnaHQsIFdyaXRpbmdNb2RlIHdyaXRpbmdNb2RlKQog
ewpAQCAtOTEsMTEgKzExMywxMCBAQCBQYXNzT3duUHRyPEV4Y2x1c2lvblNoYXBlPiBFeGNsdXNp
b25TaGFwZTo6Y3JlYXRlRXhjbHVzaW9uU2hhcGUoY29uc3QgQmFzaWNTaGFwZQogICAgICAgICBG
bG9hdFNpemUgY29ybmVyUmFkaWkoCiAgICAgICAgICAgICByYWRpdXNYTGVuZ3RoLmlzVW5kZWZp
bmVkKCkgPyAwIDogZmxvYXRWYWx1ZUZvckxlbmd0aChyYWRpdXNYTGVuZ3RoLCBib3hXaWR0aCks
CiAgICAgICAgICAgICByYWRpdXNZTGVuZ3RoLmlzVW5kZWZpbmVkKCkgPyAwIDogZmxvYXRWYWx1
ZUZvckxlbmd0aChyYWRpdXNZTGVuZ3RoLCBib3hIZWlnaHQpKTsKKyAgICAgICAgRmxvYXRSZWN0
IGxvZ2ljYWxCb3VuZHMgPSBwaHlzaWNhbFJlY3RUb0xvZ2ljYWwoYm91bmRzLCBsb2dpY2FsQm94
SGVpZ2h0LCB3cml0aW5nTW9kZSk7CiAKLSAgICAgICAgZXhjbHVzaW9uU2hhcGUgPSBob3Jpem9u
dGFsV3JpdGluZ01vZGUKLSAgICAgICAgICAgID8gY3JlYXRlRXhjbHVzaW9uUmVjdGFuZ2xlKGJv
dW5kcywgY29ybmVyUmFkaWkpCi0gICAgICAgICAgICA6IGNyZWF0ZUV4Y2x1c2lvblJlY3Rhbmds
ZShib3VuZHMudHJhbnNwb3NlZFJlY3QoKSwgY29ybmVyUmFkaWkudHJhbnNwb3NlZFNpemUoKSk7
Ci0gICAgICAgIGV4Y2x1c2lvblNoYXBlLT5tX2JvdW5kaW5nQm94ID0gYm91bmRzOworICAgICAg
ICBleGNsdXNpb25TaGFwZSA9IGNyZWF0ZUV4Y2x1c2lvblJlY3RhbmdsZShsb2dpY2FsQm91bmRz
LCBwaHlzaWNhbFNpemVUb0xvZ2ljYWwoY29ybmVyUmFkaWksIHdyaXRpbmdNb2RlKSk7CisgICAg
ICAgIGV4Y2x1c2lvblNoYXBlLT5tX2JvdW5kaW5nQm94ID0gbG9naWNhbEJvdW5kczsKICAgICAg
ICAgYnJlYWs7CiAgICAgfQogCkBAIC0xMDQsMTEgKzEyNSwxMCBAQCBQYXNzT3duUHRyPEV4Y2x1
c2lvblNoYXBlPiBFeGNsdXNpb25TaGFwZTo6Y3JlYXRlRXhjbHVzaW9uU2hhcGUoY29uc3QgQmFz
aWNTaGFwZQogICAgICAgICBmbG9hdCBjZW50ZXJYID0gZmxvYXRWYWx1ZUZvckxlbmd0aChjaXJj
bGUtPmNlbnRlclgoKSwgYm94V2lkdGgpOwogICAgICAgICBmbG9hdCBjZW50ZXJZID0gZmxvYXRW
YWx1ZUZvckxlbmd0aChjaXJjbGUtPmNlbnRlclkoKSwgYm94SGVpZ2h0KTsKICAgICAgICAgZmxv
YXQgcmFkaXVzID0gIGZsb2F0VmFsdWVGb3JMZW5ndGgoY2lyY2xlLT5yYWRpdXMoKSwgc3RkOjpt
YXgoYm94SGVpZ2h0LCBib3hXaWR0aCkpOworICAgICAgICBGbG9hdFBvaW50IGxvZ2ljYWxDZW50
ZXIgPSBwaHlzaWNhbFBvaW50VG9Mb2dpY2FsKEZsb2F0UG9pbnQoY2VudGVyWCwgY2VudGVyWSks
IGxvZ2ljYWxCb3hIZWlnaHQsIHdyaXRpbmdNb2RlKTsKIAotICAgICAgICBleGNsdXNpb25TaGFw
ZSA9IGhvcml6b250YWxXcml0aW5nTW9kZQotICAgICAgICAgICAgPyBjcmVhdGVFeGNsdXNpb25D
aXJjbGUoRmxvYXRQb2ludChjZW50ZXJYLCBjZW50ZXJZKSwgcmFkaXVzKQotICAgICAgICAgICAg
OiBjcmVhdGVFeGNsdXNpb25DaXJjbGUoRmxvYXRQb2ludChjZW50ZXJZLCBjZW50ZXJYKSwgcmFk
aXVzKTsKLSAgICAgICAgZXhjbHVzaW9uU2hhcGUtPm1fYm91bmRpbmdCb3ggPSBGbG9hdFJlY3Qo
Y2VudGVyWCAtIHJhZGl1cywgY2VudGVyWSAtIHJhZGl1cywgcmFkaXVzICogMiwgcmFkaXVzICog
Mik7CisgICAgICAgIGV4Y2x1c2lvblNoYXBlID0gY3JlYXRlRXhjbHVzaW9uQ2lyY2xlKGxvZ2lj
YWxDZW50ZXIsIHJhZGl1cyk7CisgICAgICAgIGV4Y2x1c2lvblNoYXBlLT5tX2JvdW5kaW5nQm94
ID0gRmxvYXRSZWN0KGxvZ2ljYWxDZW50ZXIueCgpIC0gcmFkaXVzLCBsb2dpY2FsQ2VudGVyLnko
KSAtIHJhZGl1cywgcmFkaXVzICogMiwgcmFkaXVzICogMik7CiAgICAgICAgIGJyZWFrOwogICAg
IH0KIApAQCAtMTE4LDExICsxMzgsMTEgQEAgUGFzc093blB0cjxFeGNsdXNpb25TaGFwZT4gRXhj
bHVzaW9uU2hhcGU6OmNyZWF0ZUV4Y2x1c2lvblNoYXBlKGNvbnN0IEJhc2ljU2hhcGUKICAgICAg
ICAgZmxvYXQgY2VudGVyWSA9IGZsb2F0VmFsdWVGb3JMZW5ndGgoZWxsaXBzZS0+Y2VudGVyWSgp
LCBib3hIZWlnaHQpOwogICAgICAgICBmbG9hdCByYWRpdXNYID0gZmxvYXRWYWx1ZUZvckxlbmd0
aChlbGxpcHNlLT5yYWRpdXNYKCksIGJveFdpZHRoKTsKICAgICAgICAgZmxvYXQgcmFkaXVzWSA9
IGZsb2F0VmFsdWVGb3JMZW5ndGgoZWxsaXBzZS0+cmFkaXVzWSgpLCBib3hIZWlnaHQpOworICAg
ICAgICBGbG9hdFBvaW50IGxvZ2ljYWxDZW50ZXIgPSBwaHlzaWNhbFBvaW50VG9Mb2dpY2FsKEZs
b2F0UG9pbnQoY2VudGVyWCwgY2VudGVyWSksIGxvZ2ljYWxCb3hIZWlnaHQsIHdyaXRpbmdNb2Rl
KTsKKyAgICAgICAgRmxvYXRTaXplIGxvZ2ljYWxSYWRpaSA9IHBoeXNpY2FsU2l6ZVRvTG9naWNh
bChGbG9hdFNpemUocmFkaXVzWCwgcmFkaXVzWSksIHdyaXRpbmdNb2RlKTsKIAotICAgICAgICBl
eGNsdXNpb25TaGFwZSA9IGhvcml6b250YWxXcml0aW5nTW9kZQotICAgICAgICAgICAgPyBjcmVh
dGVFeGNsdXNpb25FbGxpcHNlKEZsb2F0UG9pbnQoY2VudGVyWCwgY2VudGVyWSksIEZsb2F0U2l6
ZShyYWRpdXNYLCByYWRpdXNZKSkKLSAgICAgICAgICAgIDogY3JlYXRlRXhjbHVzaW9uRWxsaXBz
ZShGbG9hdFBvaW50KGNlbnRlclksIGNlbnRlclgpLCBGbG9hdFNpemUocmFkaXVzWSwgcmFkaXVz
WCkpOwotICAgICAgICBleGNsdXNpb25TaGFwZS0+bV9ib3VuZGluZ0JveCA9IEZsb2F0UmVjdChj
ZW50ZXJYIC0gcmFkaXVzWCwgY2VudGVyWSAtIHJhZGl1c1ksIHJhZGl1c1ggKiAyLCByYWRpdXNZ
ICogMik7CisgICAgICAgIGV4Y2x1c2lvblNoYXBlID0gY3JlYXRlRXhjbHVzaW9uRWxsaXBzZShs
b2dpY2FsQ2VudGVyLCBsb2dpY2FsUmFkaWkpOworICAgICAgICBleGNsdXNpb25TaGFwZS0+bV9i
b3VuZGluZ0JveCA9IEZsb2F0UmVjdChsb2dpY2FsQ2VudGVyIC0gbG9naWNhbFJhZGlpLCBsb2dp
Y2FsUmFkaWkgKyBsb2dpY2FsUmFkaWkpOwogICAgICAgICBicmVhazsKICAgICB9CiAKQEAgLTEz
Nyw3ICsxNTcsNyBAQCBQYXNzT3duUHRyPEV4Y2x1c2lvblNoYXBlPiBFeGNsdXNpb25TaGFwZTo6
Y3JlYXRlRXhjbHVzaW9uU2hhcGUoY29uc3QgQmFzaWNTaGFwZQogICAgICAgICAgICAgRmxvYXRQ
b2ludCB2ZXJ0ZXgoCiAgICAgICAgICAgICAgICAgZmxvYXRWYWx1ZUZvckxlbmd0aCh2YWx1ZXMu
YXQoaSksIGJveFdpZHRoKSwKICAgICAgICAgICAgICAgICBmbG9hdFZhbHVlRm9yTGVuZ3RoKHZh
bHVlcy5hdChpICsgMSksIGJveEhlaWdodCkpOwotICAgICAgICAgICAgKCp2ZXJ0aWNlcylbaSAv
IDJdID0gaG9yaXpvbnRhbFdyaXRpbmdNb2RlID8gdmVydGV4IDogdmVydGV4LnRyYW5zcG9zZWRQ
b2ludCgpOworICAgICAgICAgICAgKCp2ZXJ0aWNlcylbaSAvIDJdID0gcGh5c2ljYWxQb2ludFRv
TG9naWNhbCh2ZXJ0ZXgsIGxvZ2ljYWxCb3hIZWlnaHQsIHdyaXRpbmdNb2RlKTsgCiAgICAgICAg
ICAgICBpZiAoIWkpCiAgICAgICAgICAgICAgICAgYm91bmRpbmdCb3guc2V0TG9jYXRpb24odmVy
dGV4KTsKICAgICAgICAgICAgIGVsc2UKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9FeGNsdXNpb25TaGFwZS5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0V4Y2x1c2lv
blNoYXBlLmgKaW5kZXggMzZkYzFiNjMuLmIyZGEzYzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9FeGNsdXNpb25TaGFwZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9FeGNsdXNpb25TaGFwZS5oCkBAIC02OSwxMiArNjksNiBAQCBwdWJsaWM6CiAgICAgdmly
dHVhbCB2b2lkIGdldEV4Y2x1ZGVkSW50ZXJ2YWxzKGZsb2F0IGxvZ2ljYWxUb3AsIGZsb2F0IGxv
Z2ljYWxIZWlnaHQsIFNlZ21lbnRMaXN0JikgY29uc3QgPSAwOwogICAgIHZpcnR1YWwgYm9vbCBm
aXJzdEluY2x1ZGVkSW50ZXJ2YWxMb2dpY2FsVG9wKGZsb2F0IG1pbkxvZ2ljYWxJbnRlcnZhbFRv
cCwgY29uc3QgRmxvYXRTaXplJiBtaW5Mb2dpY2FsSW50ZXJ2YWxTaXplLCBmbG9hdCYgcmVzdWx0
KSBjb25zdCA9IDA7CiAKLXByb3RlY3RlZDoKLSAgICBmbG9hdCBtaW5ZRm9yTG9naWNhbExpbmUo
ZmxvYXQgbG9naWNhbFRvcCwgZmxvYXQgbG9naWNhbEhlaWdodCkgY29uc3QgeyByZXR1cm4gaXNG
bGlwcGVkQmxvY2tzV3JpdGluZ01vZGUobV93cml0aW5nTW9kZSkgPyBtX2xvZ2ljYWxCb3hIZWln
aHQgLSBsb2dpY2FsVG9wIC0gbG9naWNhbEhlaWdodCA6IGxvZ2ljYWxUb3A7IH0KLSAgICBmbG9h
dCBtYXhZRm9yTG9naWNhbExpbmUoZmxvYXQgbG9naWNhbFRvcCwgZmxvYXQgbG9naWNhbEhlaWdo
dCkgY29uc3QgeyByZXR1cm4gIGlzRmxpcHBlZEJsb2Nrc1dyaXRpbmdNb2RlKG1fd3JpdGluZ01v
ZGUpID8gbV9sb2dpY2FsQm94SGVpZ2h0IC0gbG9naWNhbFRvcCA6IGxvZ2ljYWxUb3AgKyBsb2dp
Y2FsSGVpZ2h0OyB9Ci0gICAgRmxvYXRSZWN0IGludGVybmFsVG9Mb2dpY2FsQm91bmRpbmdCb3go
Y29uc3QgRmxvYXRSZWN0JiByKSBjb25zdCB7IHJldHVybiBpc0ZsaXBwZWRCbG9ja3NXcml0aW5n
TW9kZShtX3dyaXRpbmdNb2RlKSA/IEZsb2F0UmVjdChyLngoKSwgbV9sb2dpY2FsQm94SGVpZ2h0
IC0gci5tYXhZKCksIHIud2lkdGgoKSwgci5oZWlnaHQoKSkgOiByOyB9Ci0gICAgZmxvYXQgbG9n
aWNhbFRvcEZvck1pblkoZmxvYXQgbWluWSwgZmxvYXQgbG9naWNhbEhlaWdodCkgY29uc3QgeyBy
ZXR1cm4gaXNGbGlwcGVkQmxvY2tzV3JpdGluZ01vZGUobV93cml0aW5nTW9kZSkgPyBtX2xvZ2lj
YWxCb3hIZWlnaHQgLSBtaW5ZIC0gbG9naWNhbEhlaWdodCA6IG1pblk7IH0KLQogcHJpdmF0ZToK
ICAgICBXcml0aW5nTW9kZSBtX3dyaXRpbmdNb2RlOwogICAgIGZsb2F0IG1fbG9naWNhbEJveFdp
ZHRoOwo=
</data>
<flag name="review"
          id="196373"
          type_id="1"
          status="-"
          setter="krit"
    />
    <flag name="commit-queue"
          id="196374"
          type_id="3"
          status="-"
          setter="krit"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>179755</attachid>
            <date>2012-12-17 09:00:05 -0800</date>
            <delta_ts>2012-12-17 16:34:04 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>tmp.patch</filename>
            <type>text/plain</type>
            <size>19759</size>
            <attacher name="Hans Muller">giles_joplin</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCA1MTU4M2RhLi5iNjhhMDQ1IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMTItMTIt
MTMgIEhhbnMgTXVsbGVyICA8aG11bGxlckBhZG9iZS5jb20+CisKKyAgICAgICAgW0NTUyBFeGNs
dXNpb25zXSBzaGFwZS1pbnNpZGUgbGF5b3V0IGZhaWxzIHRvIGFkanVzdCBmaXJzdCBsaW5lIGNv
cnJlY3RseSBmb3Igd3JpdGluZy1tb2RlOiB2ZXJ0aWNhbC1ybAorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTA0NDE5CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgRm9yIHRoZSB2ZXJ0aWNhbCB3cml0aW5nIG1v
ZGVzLCB2ZXJpZnkgdGhhdCByb3VuZGVkIHJlY3RhbmdsZSBzaGFwZS1pbnNpZGUgY29udGVudCBp
cworICAgICAgICBhZGp1c3RlZCBpbiB0aGUgbG9naWNhbCBkb3duIGRpcmVjdGlvbiB3aGVuIGl0
IHdpbGwgbm90IGZpdCBiZXR3ZW4gdGhlIHJvdW5kZWQgY29ybmVycy4KKworICAgICAgICAqIGZh
c3QvZXhjbHVzaW9ucy9zaGFwZS1pbnNpZGUvc2hhcGUtaW5zaWRlLXJvdW5kZWQtcmVjdGFuZ2xl
LWZpdC0wMDMtZXhwZWN0ZWQuaHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC9leGNsdXNpb25z
L3NoYXBlLWluc2lkZS9zaGFwZS1pbnNpZGUtcm91bmRlZC1yZWN0YW5nbGUtZml0LTAwMy5odG1s
OiBBZGRlZC4KKwogMjAxMi0xMi0xMyAgQmV0aCBEYWtpbiAgPGJkYWtpbkBhcHBsZS5jb20+CiAK
ICAgICAgICAgVGhpcyB0ZXN0IGhhcyBiZWVuIGZhaWxpbmcgb24gdGhlIE1hYyBib3RzIGZvciBh
IHdoaWxlLiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZXhjbHVzaW9ucy9zaGFwZS1p
bnNpZGUvc2hhcGUtaW5zaWRlLXJvdW5kZWQtcmVjdGFuZ2xlLWZpdC0wMDMtZXhwZWN0ZWQuaHRt
bCBiL0xheW91dFRlc3RzL2Zhc3QvZXhjbHVzaW9ucy9zaGFwZS1pbnNpZGUvc2hhcGUtaW5zaWRl
LXJvdW5kZWQtcmVjdGFuZ2xlLWZpdC0wMDMtZXhwZWN0ZWQuaHRtbApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwLi42NmY0ZjZmCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvZmFzdC9leGNsdXNpb25zL3NoYXBlLWluc2lkZS9zaGFwZS1pbnNpZGUtcm91bmRlZC1yZWN0
YW5nbGUtZml0LTAwMy1leHBlY3RlZC5odG1sCkBAIC0wLDAgKzEsNjMgQEAKKzwhRE9DVFlQRSBo
dG1sPgorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQ+CisgICAgaWYgKHdpbmRvdy5pbnRlcm5hbHMp
CisgICAgICAgIHdpbmRvdy5pbnRlcm5hbHMuc2V0dGluZ3Muc2V0Q1NTRXhjbHVzaW9uc0VuYWJs
ZWQodHJ1ZSk7Cis8L3NjcmlwdD4KKzxzdHlsZT4KKy5zaGFwZS1jb250YWluZXIgeworICAgIHBv
c2l0aW9uOiByZWxhdGl2ZTsKKyAgICB3aWR0aDogNDAwcHg7CisgICAgaGVpZ2h0OiAyMDBweDsK
KyAgICBtYXJnaW46IDEwcHg7Cit9CisKKy5zaGFwZS1iYWNrZ3JvdW5kIHsKKyAgICBwb3NpdGlv
bjogYWJzb2x1dGU7CisgICAgbGVmdDogMHB4OworICAgIHRvcDogMHB4OworICAgIHdpZHRoOiA0
MDBweDsKKyAgICBoZWlnaHQ6IDIwMHB4OworICAgIGJvcmRlci1yYWRpdXM6IDUwcHggLyA1MHB4
OworICAgIGJhY2tncm91bmQtY29sb3I6IHJnYigyMDAsMjAwLDIwMCk7Cit9CisKKy5zaGFwZS1p
bnNpZGUtdmVydGljYWwtcmwgeworICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKKyAgICB0b3A6IDBw
eDsKKyAgICBsZWZ0OiAwcHg7CisgICAgd2lkdGg6IDQwMHB4OworICAgIGhlaWdodDogMjAwcHg7
CisgICAgLXdlYmtpdC13cml0aW5nLW1vZGU6IHZlcnRpY2FsLXJsOworICAgIGZvbnQ6IDUwcHgv
MSBBaGVtLCBzYW5zLXNlcmlmOworICAgIGNvbG9yOiBncmVlbjsKK30KKworLnNoYXBlLWluc2lk
ZS12ZXJ0aWNhbC1sciB7CisgICAgcG9zaXRpb246IGFic29sdXRlOworICAgIHRvcDogMHB4Owor
ICAgIGxlZnQ6IDBweDsKKyAgICB3aWR0aDogNDAwcHg7CisgICAgaGVpZ2h0OiAyMDBweDsKKyAg
ICAtd2Via2l0LXdyaXRpbmctbW9kZTogdmVydGljYWwtbHI7CisgICAgZm9udDogNTBweC8xIEFo
ZW0sIHNhbnMtc2VyaWY7CisgICAgY29sb3I6IGdyZWVuOworfQorPC9zdHlsZT4KKzwvaGVhZD4K
Kzxib2R5PgorPHA+VGhlIGdyZWVuIHJlY3RhbmdsZSBzaG91bGQgYXBwZWFyIGp1c3QgdG8gdGhl
IGxlZnQgb2YgdGhlIGdyZXkgcm91bmRlZCByZWN0YW5nbGUncyB1cHBlciBjb3JuZXJzLjwvcD4K
KzxkaXYgY2xhc3M9InNoYXBlLWNvbnRhaW5lciI+CisgIDxkaXYgY2xhc3M9InNoYXBlLWJhY2tn
cm91bmQiPjwvZGl2PgorICA8ZGl2IGNsYXNzPSJzaGFwZS1pbnNpZGUtdmVydGljYWwtcmwiPjxi
ci8+WFhYWDwvZGl2PgorPC9kaXY+Cis8L3A+CisKKzxwPlRoZSBncmVlbiByZWN0YW5nbGUgc2hv
dWxkIGFwcGVhciBqdXN0IHRvIHRoZSBsZWZ0IG9mIHRoZSBncmV5IHJvdW5kZWQgcmVjdGFuZ2xl
J3MgdXBwZXIgY29ybmVycy48L3A+Cis8ZGl2IGNsYXNzPSJzaGFwZS1jb250YWluZXIiPgorICA8
ZGl2IGNsYXNzPSJzaGFwZS1iYWNrZ3JvdW5kIj48L2Rpdj4KKyAgPGRpdiBjbGFzcz0ic2hhcGUt
aW5zaWRlLXZlcnRpY2FsLWxyIj48YnIvPlhYWFg8L2Rpdj4KKzwvZGl2PgorPC9ib2R5PgorPC9o
dG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9leGNsdXNpb25zL3NoYXBlLWluc2lk
ZS9zaGFwZS1pbnNpZGUtcm91bmRlZC1yZWN0YW5nbGUtZml0LTAwMy5odG1sIGIvTGF5b3V0VGVz
dHMvZmFzdC9leGNsdXNpb25zL3NoYXBlLWluc2lkZS9zaGFwZS1pbnNpZGUtcm91bmRlZC1yZWN0
YW5nbGUtZml0LTAwMy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjll
OWNlODEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2V4Y2x1c2lvbnMvc2hh
cGUtaW5zaWRlL3NoYXBlLWluc2lkZS1yb3VuZGVkLXJlY3RhbmdsZS1maXQtMDAzLmh0bWwKQEAg
LTAsMCArMSw2NSBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdD4K
KyAgICBpZiAod2luZG93LmludGVybmFscykKKyAgICAgICAgd2luZG93LmludGVybmFscy5zZXR0
aW5ncy5zZXRDU1NFeGNsdXNpb25zRW5hYmxlZCh0cnVlKTsKKzwvc2NyaXB0PgorPHN0eWxlPgor
LnNoYXBlLWNvbnRhaW5lciB7CisgICAgcG9zaXRpb246IHJlbGF0aXZlOworICAgIHdpZHRoOiA0
MDBweDsKKyAgICBoZWlnaHQ6IDIwMHB4OworICAgIG1hcmdpbjogMTBweDsKK30KKworLnNoYXBl
LWJhY2tncm91bmQgeworICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKKyAgICBsZWZ0OiAwcHg7Cisg
ICAgdG9wOiAwcHg7CisgICAgd2lkdGg6IDQwMHB4OworICAgIGhlaWdodDogMjAwcHg7CisgICAg
Ym9yZGVyLXJhZGl1czogNTBweCAvIDUwcHg7CisgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDIw
MCwyMDAsMjAwKTsKK30KKworLnNoYXBlLWluc2lkZS12ZXJ0aWNhbC1ybCB7CisgICAgcG9zaXRp
b246IGFic29sdXRlOworICAgIHRvcDogMHB4OworICAgIGxlZnQ6IDBweDsKKyAgICB3aWR0aDog
NDAwcHg7CisgICAgaGVpZ2h0OiAyMDBweDsKKyAgICAtd2Via2l0LXNoYXBlLWluc2lkZTogcmVj
dGFuZ2xlKDBweCwgMHB4LCA0MDBweCwgMjAwcHgsIDUwcHgsIDUwcHgpOworICAgIC13ZWJraXQt
d3JpdGluZy1tb2RlOiB2ZXJ0aWNhbC1ybDsKKyAgICBmb250OiA1MHB4LzEgQWhlbSwgc2Fucy1z
ZXJpZjsKKyAgICBjb2xvcjogZ3JlZW47Cit9CisKKy5zaGFwZS1pbnNpZGUtdmVydGljYWwtbHIg
eworICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKKyAgICB0b3A6IDBweDsKKyAgICBsZWZ0OiAwcHg7
CisgICAgd2lkdGg6IDQwMHB4OworICAgIGhlaWdodDogMjAwcHg7CisgICAgLXdlYmtpdC1zaGFw
ZS1pbnNpZGU6IHJlY3RhbmdsZSgwcHgsIDBweCwgNDAwcHgsIDIwMHB4LCA1MHB4LCA1MHB4KTsK
KyAgICAtd2Via2l0LXdyaXRpbmctbW9kZTogdmVydGljYWwtbHI7CisgICAgZm9udDogNTBweC8x
IEFoZW0sIHNhbnMtc2VyaWY7CisgICAgY29sb3I6IGdyZWVuOworfQorPC9zdHlsZT4KKzwvaGVh
ZD4KKzxib2R5PgorPHA+VGhlIGdyZWVuIHJlY3RhbmdsZSBzaG91bGQgYXBwZWFyIGp1c3QgdG8g
dGhlIGxlZnQgb2YgdGhlIGdyZXkgcm91bmRlZCByZWN0YW5nbGUncyB1cHBlciBjb3JuZXJzLjwv
cD4KKzxkaXYgY2xhc3M9InNoYXBlLWNvbnRhaW5lciI+CisgIDxkaXYgY2xhc3M9InNoYXBlLWJh
Y2tncm91bmQiPjwvZGl2PgorICA8ZGl2IGNsYXNzPSJzaGFwZS1pbnNpZGUtdmVydGljYWwtcmwi
PlhYWFg8L2Rpdj4KKzwvZGl2PgorPC9wPgorCis8cD5UaGUgZ3JlZW4gcmVjdGFuZ2xlIHNob3Vs
ZCBhcHBlYXIganVzdCB0byB0aGUgbGVmdCBvZiB0aGUgZ3JleSByb3VuZGVkIHJlY3RhbmdsZSdz
IHVwcGVyIGNvcm5lcnMuPC9wPgorPGRpdiBjbGFzcz0ic2hhcGUtY29udGFpbmVyIj4KKyAgPGRp
diBjbGFzcz0ic2hhcGUtYmFja2dyb3VuZCI+PC9kaXY+CisgIDxkaXYgY2xhc3M9InNoYXBlLWlu
c2lkZS12ZXJ0aWNhbC1sciI+WFhYWDwvZGl2PgorPC9kaXY+Cis8L2JvZHk+Cis8L2h0bWw+CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFu
Z2VMb2cKaW5kZXggM2MxNjc3Mi4uNmVlNTdkYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
Q2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM0IEBA
CisyMDEyLTEyLTEzICBIYW5zIE11bGxlciAgPGhtdWxsZXJAYWRvYmUuY29tPgorCisgICAgICAg
IFtDU1MgRXhjbHVzaW9uc10gc2hhcGUtaW5zaWRlIGxheW91dCBmYWlscyB0byBhZGp1c3QgZmly
c3QgbGluZSBjb3JyZWN0bHkgZm9yIHdyaXRpbmctbW9kZTogdmVydGljYWwtcmwKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwNDQxOQorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEV4Y2x1c2lvblNoYXBlcyBu
byBsb25nZXIgbWFpbnRhaW4gYSBwcml2YXRlICJpbnRlcm5hbCIgY29vcmRpbmF0ZSBzeXN0ZW0s
CisgICAgICAgIHRoZXkncmUgbm93IGRlZmluZWQgaW4gbG9naWNhbCBjb29yZGluYXRlcy4gVGhl
IGNyZWF0ZUV4Y2x1c2lvblNoYXBlKCkgbWV0aG9kCisgICAgICAgIG5vdyBoYW5kbGVzIHRoZSBv
bmUtdGltZSBjb252ZXJzaW9uIGZyb20gcGh5c2ljYWwgdG8gbG9naWNhbCBjb29yZGluYXRlcy4K
KworICAgICAgICBUZXN0OiBmYXN0L2V4Y2x1c2lvbnMvc2hhcGUtaW5zaWRlL3NoYXBlLWluc2lk
ZS1yb3VuZGVkLXJlY3RhbmdsZS1maXQtMDAzLmh0bWwKKworICAgICAgICAqIHJlbmRlcmluZy9F
eGNsdXNpb25Qb2x5Z29uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkV4Y2x1c2lvblBvbHlnb246
OmdldEV4Y2x1ZGVkSW50ZXJ2YWxzKTogUmVtb3ZlZCBsb2dpY2FsIHRvIGludGVybmFsIGNvb3Jk
aW5hdGUgY29udmVyc2lvbnMuCisgICAgICAgIChXZWJDb3JlOjpFeGNsdXNpb25Qb2x5Z29uOjpn
ZXRJbmNsdWRlZEludGVydmFscyk6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6RXhjbHVzaW9u
UG9seWdvbjo6Zmlyc3RJbmNsdWRlZEludGVydmFsTG9naWNhbFRvcCk6IERpdHRvLgorICAgICAg
ICAqIHJlbmRlcmluZy9FeGNsdXNpb25Qb2x5Z29uLmg6CisgICAgICAgICogcmVuZGVyaW5nL0V4
Y2x1c2lvblJlY3RhbmdsZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpFeGNsdXNpb25SZWN0YW5n
bGU6OmdldEV4Y2x1ZGVkSW50ZXJ2YWxzKTogUmVtb3ZlZCBsb2dpY2FsIHRvIGludGVybmFsIGNv
b3JkaW5hdGUgY29udmVyc2lvbnMuCisgICAgICAgIChXZWJDb3JlOjpFeGNsdXNpb25SZWN0YW5n
bGU6OmdldEluY2x1ZGVkSW50ZXJ2YWxzKTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpFeGNs
dXNpb25SZWN0YW5nbGU6OmZpcnN0SW5jbHVkZWRJbnRlcnZhbExvZ2ljYWxUb3ApOiBEaXR0by4K
KyAgICAgICAgKiByZW5kZXJpbmcvRXhjbHVzaW9uUmVjdGFuZ2xlLmg6CisgICAgICAgICogcmVu
ZGVyaW5nL0V4Y2x1c2lvblNoYXBlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OnBoeXNpY2FsUmVj
dFRvTG9naWNhbCk6IENvbnZlcnQgYSBGbG9hdFJlY3QgZGVmaW5lZCB3aXRoIGNvb3JkaW5hdGVz
IHRvIGxvZ2ljYWwgY29vcmRpbmF0ZXMuCisgICAgICAgIChXZWJDb3JlOjpwaHlzaWNhbFBvaW50
VG9Mb2dpY2FsKTogU2ltaWxhci4KKyAgICAgICAgKFdlYkNvcmU6OnBoeXNpY2FsU2l6ZVRvTG9n
aWNhbCk6IFNpbWxhci4KKyAgICAgICAgKFdlYkNvcmU6OkV4Y2x1c2lvblNoYXBlOjpjcmVhdGVF
eGNsdXNpb25TaGFwZSk6IENvbnZlcnQgc2hhcGVzIGZyb20gcGh5c2ljYWwgdG8gbG9naWNhbCBj
b29yZGluYXRlcy4KKyAgICAgICAgKiByZW5kZXJpbmcvRXhjbHVzaW9uU2hhcGUuaDoKKyAgICAg
ICAgKEV4Y2x1c2lvblNoYXBlKTogUmVtb3ZlZCBpbnRlcm5hbCB0byBsb2dpY2FsIGNvb3JkaW5h
dGUgY29udmVyc2lvbiB1dGlsaXR5IG1ldGhvZHMuCisKIDIwMTItMTItMTMgIElhbiBWb2xsaWNr
ICA8dm9sbGlja0BjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgW2Nocm9taXVtXSBBdXRvbWF0aWNh
bGx5IHVzZSBjb21wb3NpdGVkIHNjcm9sbGluZwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL0V4Y2x1c2lvblBvbHlnb24uY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L0V4Y2x1c2lvblBvbHlnb24uY3BwCmluZGV4IDk0YjkzZGMuLmI2YWVjMDggMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9FeGNsdXNpb25Qb2x5Z29uLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvRXhjbHVzaW9uUG9seWdvbi5jcHAKQEAgLTMyNyw4ICszMjcs
OCBAQCB2b2lkIEV4Y2x1c2lvblBvbHlnb246OmdldEV4Y2x1ZGVkSW50ZXJ2YWxzKGZsb2F0IGxv
Z2ljYWxUb3AsIGZsb2F0IGxvZ2ljYWxIZWlnaAogICAgIGlmIChpc0VtcHR5KCkpCiAgICAgICAg
IHJldHVybjsKIAotICAgIGZsb2F0IHkxID0gbWluWUZvckxvZ2ljYWxMaW5lKGxvZ2ljYWxUb3As
IGxvZ2ljYWxIZWlnaHQpOwotICAgIGZsb2F0IHkyID0gbWF4WUZvckxvZ2ljYWxMaW5lKGxvZ2lj
YWxUb3AsIGxvZ2ljYWxIZWlnaHQpOworICAgIGZsb2F0IHkxID0gbG9naWNhbFRvcDsKKyAgICBm
bG9hdCB5MiA9IHkxICsgbG9naWNhbEhlaWdodDsKIAogICAgIFZlY3RvcjxFeGNsdXNpb25JbnRl
cnZhbD4geTFYSW50ZXJ2YWxzLCB5MlhJbnRlcnZhbHM7CiAgICAgY29tcHV0ZVhJbnRlcnNlY3Rp
b25zKHkxLCB0cnVlLCB5MVhJbnRlcnZhbHMpOwpAQCAtMzU0LDggKzM1NCw4IEBAIHZvaWQgRXhj
bHVzaW9uUG9seWdvbjo6Z2V0SW5jbHVkZWRJbnRlcnZhbHMoZmxvYXQgbG9naWNhbFRvcCwgZmxv
YXQgbG9naWNhbEhlaWdoCiAgICAgaWYgKGlzRW1wdHkoKSkKICAgICAgICAgcmV0dXJuOwogCi0g
ICAgZmxvYXQgeTEgPSBtaW5ZRm9yTG9naWNhbExpbmUobG9naWNhbFRvcCwgbG9naWNhbEhlaWdo
dCk7Ci0gICAgZmxvYXQgeTIgPSBtYXhZRm9yTG9naWNhbExpbmUobG9naWNhbFRvcCwgbG9naWNh
bEhlaWdodCk7CisgICAgZmxvYXQgeTEgPSBsb2dpY2FsVG9wOworICAgIGZsb2F0IHkyID0geTEg
KyBsb2dpY2FsSGVpZ2h0OwogCiAgICAgVmVjdG9yPEV4Y2x1c2lvbkludGVydmFsPiB5MVhJbnRl
cnZhbHMsIHkyWEludGVydmFsczsKICAgICBjb21wdXRlWEludGVyc2VjdGlvbnMoeTEsIHRydWUs
IHkxWEludGVydmFscyk7CkBAIC0zODMsOCArMzgzLDggQEAgYm9vbCBFeGNsdXNpb25Qb2x5Z29u
OjpmaXJzdEluY2x1ZGVkSW50ZXJ2YWxMb2dpY2FsVG9wKGZsb2F0IG1pbkxvZ2ljYWxJbnRlcnZh
bFQKICAgICBpZiAobWluTG9naWNhbEludGVydmFsU2l6ZS53aWR0aCgpID4gbV9ib3VuZGluZ0Jv
eC53aWR0aCgpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKLSAgICBmbG9hdCBtaW5ZID0gbWlu
WUZvckxvZ2ljYWxMaW5lKG1pbkxvZ2ljYWxJbnRlcnZhbFRvcCwgbWluTG9naWNhbEludGVydmFs
U2l6ZS5oZWlnaHQoKSk7Ci0gICAgZmxvYXQgbWF4WSA9IG1heFlGb3JMb2dpY2FsTGluZShtaW5M
b2dpY2FsSW50ZXJ2YWxUb3AsIG1pbkxvZ2ljYWxJbnRlcnZhbFNpemUuaGVpZ2h0KCkpOworICAg
IGZsb2F0IG1pblkgPSBzdGQ6Om1heChtX2JvdW5kaW5nQm94LnkoKSwgbWluTG9naWNhbEludGVy
dmFsVG9wKTsKKyAgICBmbG9hdCBtYXhZID0gbWluWSArIG1pbkxvZ2ljYWxJbnRlcnZhbFNpemUu
aGVpZ2h0KCk7CiAgICAgaWYgKG1pblkgPCBtX2JvdW5kaW5nQm94LnkoKSB8fCBtYXhZID4gbV9i
b3VuZGluZ0JveC5tYXhZKCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0V4Y2x1c2lvblBvbHlnb24uaCBiL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9FeGNsdXNpb25Qb2x5Z29uLmgKaW5kZXggMjVmYzZmNy4uY2UyZmI1NSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0V4Y2x1c2lvblBvbHlnb24uaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvRXhjbHVzaW9uUG9seWdvbi5oCkBAIC02Miw3
ICs2Miw3IEBAIHB1YmxpYzoKICAgICBjb25zdCBFeGNsdXNpb25Qb2x5Z29uRWRnZSYgZWRnZUF0
KHVuc2lnbmVkIGluZGV4KSBjb25zdCB7IHJldHVybiBtX2VkZ2VzW2luZGV4XTsgfQogICAgIHVu
c2lnbmVkIG51bWJlck9mRWRnZXMoKSBjb25zdCB7IHJldHVybiBtX2VkZ2VzLnNpemUoKTsgfQog
Ci0gICAgdmlydHVhbCBGbG9hdFJlY3Qgc2hhcGVMb2dpY2FsQm91bmRpbmdCb3goKSBjb25zdCBP
VkVSUklERSB7IHJldHVybiBpbnRlcm5hbFRvTG9naWNhbEJvdW5kaW5nQm94KG1fYm91bmRpbmdC
b3gpOyB9CisgICAgdmlydHVhbCBGbG9hdFJlY3Qgc2hhcGVMb2dpY2FsQm91bmRpbmdCb3goKSBj
b25zdCBPVkVSUklERSB7IHJldHVybiBtX2JvdW5kaW5nQm94OyB9CiAgICAgdmlydHVhbCBib29s
IGlzRW1wdHkoKSBjb25zdCBPVkVSUklERSB7IHJldHVybiBtX2VtcHR5OyB9CiAgICAgdmlydHVh
bCB2b2lkIGdldEV4Y2x1ZGVkSW50ZXJ2YWxzKGZsb2F0IGxvZ2ljYWxUb3AsIGZsb2F0IGxvZ2lj
YWxIZWlnaHQsIFNlZ21lbnRMaXN0JikgY29uc3QgT1ZFUlJJREU7CiAgICAgdmlydHVhbCB2b2lk
IGdldEluY2x1ZGVkSW50ZXJ2YWxzKGZsb2F0IGxvZ2ljYWxUb3AsIGZsb2F0IGxvZ2ljYWxIZWln
aHQsIFNlZ21lbnRMaXN0JikgY29uc3QgT1ZFUlJJREU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvRXhjbHVzaW9uUmVjdGFuZ2xlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9FeGNsdXNpb25SZWN0YW5nbGUuY3BwCmluZGV4IDliZDIyZDUuLmViZTZhODQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9FeGNsdXNpb25SZWN0YW5nbGUuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9FeGNsdXNpb25SZWN0YW5nbGUuY3BwCkBA
IC01MSw4ICs1MSw4IEBAIHZvaWQgRXhjbHVzaW9uUmVjdGFuZ2xlOjpnZXRFeGNsdWRlZEludGVy
dmFscyhmbG9hdCBsb2dpY2FsVG9wLCBmbG9hdCBsb2dpY2FsSGVpCiAgICAgaWYgKGlzRW1wdHko
KSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgZmxvYXQgeTEgPSBtaW5ZRm9yTG9naWNhbExpbmUo
bG9naWNhbFRvcCwgbG9naWNhbEhlaWdodCk7Ci0gICAgZmxvYXQgeTIgPSBtYXhZRm9yTG9naWNh
bExpbmUobG9naWNhbFRvcCwgbG9naWNhbEhlaWdodCk7CisgICAgZmxvYXQgeTEgPSBsb2dpY2Fs
VG9wOworICAgIGZsb2F0IHkyID0geTEgKyBsb2dpY2FsSGVpZ2h0OwogCiAgICAgaWYgKHkyIDwg
bV95IHx8IHkxID49IG1feSArIG1faGVpZ2h0KQogICAgICAgICByZXR1cm47CkBAIC04Miw4ICs4
Miw4IEBAIHZvaWQgRXhjbHVzaW9uUmVjdGFuZ2xlOjpnZXRJbmNsdWRlZEludGVydmFscyhmbG9h
dCBsb2dpY2FsVG9wLCBmbG9hdCBsb2dpY2FsSGVpCiAgICAgaWYgKGlzRW1wdHkoKSkKICAgICAg
ICAgcmV0dXJuOwogCi0gICAgZmxvYXQgeTEgPSBtaW5ZRm9yTG9naWNhbExpbmUobG9naWNhbFRv
cCwgbG9naWNhbEhlaWdodCk7Ci0gICAgZmxvYXQgeTIgPSBtYXhZRm9yTG9naWNhbExpbmUobG9n
aWNhbFRvcCwgbG9naWNhbEhlaWdodCk7CisgICAgZmxvYXQgeTEgPSBsb2dpY2FsVG9wOworICAg
IGZsb2F0IHkyID0geTEgKyBsb2dpY2FsSGVpZ2h0OwogCiAgICAgaWYgKHkxIDwgbV95IHx8IHky
ID4gbV95ICsgbV9oZWlnaHQpCiAgICAgICAgIHJldHVybjsKQEAgLTEzMyw4ICsxMzMsOSBAQCBi
b29sIEV4Y2x1c2lvblJlY3RhbmdsZTo6Zmlyc3RJbmNsdWRlZEludGVydmFsTG9naWNhbFRvcChm
bG9hdCBtaW5Mb2dpY2FsSW50ZXJ2YQogICAgIGlmIChtaW5Mb2dpY2FsSW50ZXJ2YWxTaXplLndp
ZHRoKCkgPiBtX3dpZHRoKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKLSAgICBmbG9hdCBtaW5Z
ID0gc3RkOjptYXgobV95LCBtaW5ZRm9yTG9naWNhbExpbmUobWluTG9naWNhbEludGVydmFsVG9w
LCBtaW5Mb2dpY2FsSW50ZXJ2YWxTaXplLmhlaWdodCgpKSk7CisgICAgZmxvYXQgbWluWSA9IHN0
ZDo6bWF4KG1feSwgbWluTG9naWNhbEludGVydmFsVG9wKTsKICAgICBmbG9hdCBtYXhZID0gbWlu
WSArIG1pbkxvZ2ljYWxJbnRlcnZhbFNpemUuaGVpZ2h0KCk7CisKICAgICBpZiAobWF4WSA+IG1f
eSArIG1faGVpZ2h0KQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKQEAgLTE0Miw3ICsxNDMsNyBA
QCBib29sIEV4Y2x1c2lvblJlY3RhbmdsZTo6Zmlyc3RJbmNsdWRlZEludGVydmFsTG9naWNhbFRv
cChmbG9hdCBtaW5Mb2dpY2FsSW50ZXJ2YQogICAgIGJvb2wgaW50ZXJ2YWxPdmVybGFwc01heENv
cm5lciA9IG1heFkgPiBtX3kgKyBtX2hlaWdodCAtIG1fcnk7CiAKICAgICBpZiAoIWludGVydmFs
T3ZlcmxhcHNNaW5Db3JuZXIgJiYgIWludGVydmFsT3ZlcmxhcHNNYXhDb3JuZXIpIHsKLSAgICAg
ICAgcmVzdWx0ID0gbG9naWNhbFRvcEZvck1pblkobWluWSwgbWluTG9naWNhbEludGVydmFsU2l6
ZS5oZWlnaHQoKSk7CisgICAgICAgIHJlc3VsdCA9IG1pblk7CiAgICAgICAgIHJldHVybiB0cnVl
OwogICAgIH0KIApAQCAtMTUzLDE4ICsxNTQsMTggQEAgYm9vbCBFeGNsdXNpb25SZWN0YW5nbGU6
OmZpcnN0SW5jbHVkZWRJbnRlcnZhbExvZ2ljYWxUb3AoZmxvYXQgbWluTG9naWNhbEludGVydmEK
IAogICAgIGlmIChpbnRlcnZhbE92ZXJsYXBzTWluQ29ybmVyICYmICghaW50ZXJ2YWxPdmVybGFw
c01heENvcm5lciB8fCBtaW5Db3JuZXJEZWZpbmVzWCkpIHsKICAgICAgICAgaWYgKGludGVydmFs
Rml0c1dpdGhpbkNvcm5lcnMgfHwgbV95ICsgY29ybmVySW50ZXJjZXB0LnkoKSA8IG1pblkpIHsK
LSAgICAgICAgICAgIHJlc3VsdCA9IGxvZ2ljYWxUb3BGb3JNaW5ZKG1pblksIG1pbkxvZ2ljYWxJ
bnRlcnZhbFNpemUuaGVpZ2h0KCkpOworICAgICAgICAgICAgcmVzdWx0ID0gbWluWTsKICAgICAg
ICAgICAgIHJldHVybiB0cnVlOwogICAgICAgICB9CiAgICAgICAgIGlmIChtaW5Mb2dpY2FsSW50
ZXJ2YWxTaXplLmhlaWdodCgpIDwgbV9oZWlnaHQgLSAoMiAqIGNvcm5lckludGVyY2VwdC55KCkp
KSB7Ci0gICAgICAgICAgICByZXN1bHQgPSBsb2dpY2FsVG9wRm9yTWluWShtX3kgKyBjb3JuZXJJ
bnRlcmNlcHQueSgpLCBtaW5Mb2dpY2FsSW50ZXJ2YWxTaXplLmhlaWdodCgpKTsKKyAgICAgICAg
ICAgIHJlc3VsdCA9IG1feSArIGNvcm5lckludGVyY2VwdC55KCk7CiAgICAgICAgICAgICByZXR1
cm4gdHJ1ZTsKICAgICAgICAgfQogICAgIH0KIAogICAgIGlmIChpbnRlcnZhbE92ZXJsYXBzTWF4
Q29ybmVyICYmICghaW50ZXJ2YWxPdmVybGFwc01pbkNvcm5lciB8fCAhbWluQ29ybmVyRGVmaW5l
c1gpKSB7CiAgICAgICAgIGlmIChpbnRlcnZhbEZpdHNXaXRoaW5Db3JuZXJzIHx8IG1pblkgPD0g
IG1feSArIG1faGVpZ2h0IC0gY29ybmVySW50ZXJjZXB0LnkoKSAtIG1pbkxvZ2ljYWxJbnRlcnZh
bFNpemUuaGVpZ2h0KCkpIHsKLSAgICAgICAgICAgIHJlc3VsdCA9IGxvZ2ljYWxUb3BGb3JNaW5Z
KG1pblksIG1pbkxvZ2ljYWxJbnRlcnZhbFNpemUuaGVpZ2h0KCkpOworICAgICAgICAgICAgcmVz
dWx0ID0gbWluWTsKICAgICAgICAgICAgIHJldHVybiB0cnVlOwogICAgICAgICB9CiAgICAgfQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0V4Y2x1c2lvblJlY3RhbmdsZS5o
IGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0V4Y2x1c2lvblJlY3RhbmdsZS5oCmluZGV4IDY2
MzgyYzguLmM4YTY1MzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9FeGNs
dXNpb25SZWN0YW5nbGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvRXhjbHVzaW9u
UmVjdGFuZ2xlLmgKQEAgLTUxLDcgKzUxLDcgQEAgcHVibGljOgogICAgIHsKICAgICB9CiAKLSAg
ICB2aXJ0dWFsIEZsb2F0UmVjdCBzaGFwZUxvZ2ljYWxCb3VuZGluZ0JveCgpIGNvbnN0IE9WRVJS
SURFIHsgcmV0dXJuIGludGVybmFsVG9Mb2dpY2FsQm91bmRpbmdCb3goRmxvYXRSZWN0KG1feCwg
bV95LCBtX3dpZHRoLCBtX2hlaWdodCkpOyB9CisgICAgdmlydHVhbCBGbG9hdFJlY3Qgc2hhcGVM
b2dpY2FsQm91bmRpbmdCb3goKSBjb25zdCBPVkVSUklERSB7IHJldHVybiBGbG9hdFJlY3QobV94
LCBtX3ksIG1fd2lkdGgsIG1faGVpZ2h0KTsgfQogICAgIHZpcnR1YWwgYm9vbCBpc0VtcHR5KCkg
Y29uc3QgT1ZFUlJJREUgeyByZXR1cm4gbV93aWR0aCA8PSAwIHx8IG1faGVpZ2h0IDw9IDA7IH0K
ICAgICB2aXJ0dWFsIHZvaWQgZ2V0RXhjbHVkZWRJbnRlcnZhbHMoZmxvYXQgbG9naWNhbFRvcCwg
ZmxvYXQgbG9naWNhbEhlaWdodCwgU2VnbWVudExpc3QmKSBjb25zdCBPVkVSUklERTsKICAgICB2
aXJ0dWFsIHZvaWQgZ2V0SW5jbHVkZWRJbnRlcnZhbHMoZmxvYXQgbG9naWNhbFRvcCwgZmxvYXQg
bG9naWNhbEhlaWdodCwgU2VnbWVudExpc3QmKSBjb25zdCBPVkVSUklERTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9FeGNsdXNpb25TaGFwZS5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvRXhjbHVzaW9uU2hhcGUuY3BwCmluZGV4IDVlMGVhOGIuLjJiMzE1ODEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9FeGNsdXNpb25TaGFwZS5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0V4Y2x1c2lvblNoYXBlLmNwcApAQCAtNjUs
OCArNjUsMzAgQEAgc3RhdGljIFBhc3NPd25QdHI8RXhjbHVzaW9uU2hhcGU+IGNyZWF0ZUV4Y2x1
c2lvblBvbHlnb24oUGFzc093blB0cjxWZWN0b3I8RmxvYXQKICAgICByZXR1cm4gYWRvcHRQdHIo
bmV3IEV4Y2x1c2lvblBvbHlnb24odmVydGljZXMsIGZpbGxSdWxlKSk7CiB9CiAKLS8vIElmIHRo
ZSB3cml0aW5nTW9kZSBpcyB2ZXJ0aWNhbCwgdGhlbiB0aGUgQmFzaWNTaGFwZSdzIChwaHlzaWNh
bCkgeCBhbmQgeSBjb29yZGluYXRlcyBhcmUgc3dhcHBlZCwgc28gdGhhdAotLy8gbGluZSBzZWdt
ZW50cyBhcmUgcGFyYWxsZWwgdG8gdGhlIGludGVybmFsIGNvb3JkaW5hdGUgc3lzdGVtJ3MgWCBh
eGlzLgorc3RhdGljIGlubGluZSBGbG9hdFJlY3QgcGh5c2ljYWxSZWN0VG9Mb2dpY2FsKGNvbnN0
IEZsb2F0UmVjdCYgcmVjdCwgZmxvYXQgbG9naWNhbEJveEhlaWdodCwgV3JpdGluZ01vZGUgd3Jp
dGluZ01vZGUpCit7CisgICAgaWYgKGlzSG9yaXpvbnRhbFdyaXRpbmdNb2RlKHdyaXRpbmdNb2Rl
KSkKKyAgICAgICAgcmV0dXJuIHJlY3Q7CisgICAgaWYgKGlzRmxpcHBlZEJsb2Nrc1dyaXRpbmdN
b2RlKHdyaXRpbmdNb2RlKSkKKyAgICAgICAgcmV0dXJuIEZsb2F0UmVjdChyZWN0LnkoKSwgbG9n
aWNhbEJveEhlaWdodCAtIHJlY3QubWF4WCgpLCByZWN0LmhlaWdodCgpLCByZWN0LndpZHRoKCkp
OworICAgIHJldHVybiByZWN0LnRyYW5zcG9zZWRSZWN0KCk7Cit9CisKK3N0YXRpYyBpbmxpbmUg
RmxvYXRQb2ludCBwaHlzaWNhbFBvaW50VG9Mb2dpY2FsKGNvbnN0IEZsb2F0UG9pbnQmIHBvaW50
LCBmbG9hdCBsb2dpY2FsQm94SGVpZ2h0LCBXcml0aW5nTW9kZSB3cml0aW5nTW9kZSkKK3sKKyAg
ICBpZiAoaXNIb3Jpem9udGFsV3JpdGluZ01vZGUod3JpdGluZ01vZGUpKQorICAgICAgICByZXR1
cm4gcG9pbnQ7CisgICAgaWYgKGlzRmxpcHBlZEJsb2Nrc1dyaXRpbmdNb2RlKHdyaXRpbmdNb2Rl
KSkKKyAgICAgICAgcmV0dXJuIEZsb2F0UG9pbnQocG9pbnQueSgpLCBsb2dpY2FsQm94SGVpZ2h0
IC0gcG9pbnQueCgpKTsKKyAgICByZXR1cm4gcG9pbnQudHJhbnNwb3NlZFBvaW50KCk7Cit9CisK
K3N0YXRpYyBpbmxpbmUgRmxvYXRTaXplIHBoeXNpY2FsU2l6ZVRvTG9naWNhbChjb25zdCBGbG9h
dFNpemUmIHNpemUsIFdyaXRpbmdNb2RlIHdyaXRpbmdNb2RlKQoreworICAgIGlmIChpc0hvcml6
b250YWxXcml0aW5nTW9kZSh3cml0aW5nTW9kZSkpCisgICAgICAgIHJldHVybiBzaXplOworICAg
IHJldHVybiBzaXplLnRyYW5zcG9zZWRTaXplKCk7Cit9CiAKIFBhc3NPd25QdHI8RXhjbHVzaW9u
U2hhcGU+IEV4Y2x1c2lvblNoYXBlOjpjcmVhdGVFeGNsdXNpb25TaGFwZShjb25zdCBCYXNpY1No
YXBlKiBiYXNpY1NoYXBlLCBmbG9hdCBsb2dpY2FsQm94V2lkdGgsIGZsb2F0IGxvZ2ljYWxCb3hI
ZWlnaHQsIFdyaXRpbmdNb2RlIHdyaXRpbmdNb2RlKQogewpAQCAtOTEsMTEgKzExMywxMCBAQCBQ
YXNzT3duUHRyPEV4Y2x1c2lvblNoYXBlPiBFeGNsdXNpb25TaGFwZTo6Y3JlYXRlRXhjbHVzaW9u
U2hhcGUoY29uc3QgQmFzaWNTaGFwZQogICAgICAgICBGbG9hdFNpemUgY29ybmVyUmFkaWkoCiAg
ICAgICAgICAgICByYWRpdXNYTGVuZ3RoLmlzVW5kZWZpbmVkKCkgPyAwIDogZmxvYXRWYWx1ZUZv
ckxlbmd0aChyYWRpdXNYTGVuZ3RoLCBib3hXaWR0aCksCiAgICAgICAgICAgICByYWRpdXNZTGVu
Z3RoLmlzVW5kZWZpbmVkKCkgPyAwIDogZmxvYXRWYWx1ZUZvckxlbmd0aChyYWRpdXNZTGVuZ3Ro
LCBib3hIZWlnaHQpKTsKKyAgICAgICAgRmxvYXRSZWN0IGxvZ2ljYWxCb3VuZHMgPSBwaHlzaWNh
bFJlY3RUb0xvZ2ljYWwoYm91bmRzLCBsb2dpY2FsQm94SGVpZ2h0LCB3cml0aW5nTW9kZSk7CiAK
LSAgICAgICAgZXhjbHVzaW9uU2hhcGUgPSBob3Jpem9udGFsV3JpdGluZ01vZGUKLSAgICAgICAg
ICAgID8gY3JlYXRlRXhjbHVzaW9uUmVjdGFuZ2xlKGJvdW5kcywgY29ybmVyUmFkaWkpCi0gICAg
ICAgICAgICA6IGNyZWF0ZUV4Y2x1c2lvblJlY3RhbmdsZShib3VuZHMudHJhbnNwb3NlZFJlY3Qo
KSwgY29ybmVyUmFkaWkudHJhbnNwb3NlZFNpemUoKSk7Ci0gICAgICAgIGV4Y2x1c2lvblNoYXBl
LT5tX2JvdW5kaW5nQm94ID0gYm91bmRzOworICAgICAgICBleGNsdXNpb25TaGFwZSA9IGNyZWF0
ZUV4Y2x1c2lvblJlY3RhbmdsZShsb2dpY2FsQm91bmRzLCBwaHlzaWNhbFNpemVUb0xvZ2ljYWwo
Y29ybmVyUmFkaWksIHdyaXRpbmdNb2RlKSk7CisgICAgICAgIGV4Y2x1c2lvblNoYXBlLT5tX2Jv
dW5kaW5nQm94ID0gbG9naWNhbEJvdW5kczsKICAgICAgICAgYnJlYWs7CiAgICAgfQogCkBAIC0x
MDQsMTEgKzEyNSwxMCBAQCBQYXNzT3duUHRyPEV4Y2x1c2lvblNoYXBlPiBFeGNsdXNpb25TaGFw
ZTo6Y3JlYXRlRXhjbHVzaW9uU2hhcGUoY29uc3QgQmFzaWNTaGFwZQogICAgICAgICBmbG9hdCBj
ZW50ZXJYID0gZmxvYXRWYWx1ZUZvckxlbmd0aChjaXJjbGUtPmNlbnRlclgoKSwgYm94V2lkdGgp
OwogICAgICAgICBmbG9hdCBjZW50ZXJZID0gZmxvYXRWYWx1ZUZvckxlbmd0aChjaXJjbGUtPmNl
bnRlclkoKSwgYm94SGVpZ2h0KTsKICAgICAgICAgZmxvYXQgcmFkaXVzID0gIGZsb2F0VmFsdWVG
b3JMZW5ndGgoY2lyY2xlLT5yYWRpdXMoKSwgc3RkOjptYXgoYm94SGVpZ2h0LCBib3hXaWR0aCkp
OworICAgICAgICBGbG9hdFBvaW50IGxvZ2ljYWxDZW50ZXIgPSBwaHlzaWNhbFBvaW50VG9Mb2dp
Y2FsKEZsb2F0UG9pbnQoY2VudGVyWCwgY2VudGVyWSksIGxvZ2ljYWxCb3hIZWlnaHQsIHdyaXRp
bmdNb2RlKTsKIAotICAgICAgICBleGNsdXNpb25TaGFwZSA9IGhvcml6b250YWxXcml0aW5nTW9k
ZQotICAgICAgICAgICAgPyBjcmVhdGVFeGNsdXNpb25DaXJjbGUoRmxvYXRQb2ludChjZW50ZXJY
LCBjZW50ZXJZKSwgcmFkaXVzKQotICAgICAgICAgICAgOiBjcmVhdGVFeGNsdXNpb25DaXJjbGUo
RmxvYXRQb2ludChjZW50ZXJZLCBjZW50ZXJYKSwgcmFkaXVzKTsKLSAgICAgICAgZXhjbHVzaW9u
U2hhcGUtPm1fYm91bmRpbmdCb3ggPSBGbG9hdFJlY3QoY2VudGVyWCAtIHJhZGl1cywgY2VudGVy
WSAtIHJhZGl1cywgcmFkaXVzICogMiwgcmFkaXVzICogMik7CisgICAgICAgIGV4Y2x1c2lvblNo
YXBlID0gY3JlYXRlRXhjbHVzaW9uQ2lyY2xlKGxvZ2ljYWxDZW50ZXIsIHJhZGl1cyk7CisgICAg
ICAgIGV4Y2x1c2lvblNoYXBlLT5tX2JvdW5kaW5nQm94ID0gRmxvYXRSZWN0KGxvZ2ljYWxDZW50
ZXIueCgpIC0gcmFkaXVzLCBsb2dpY2FsQ2VudGVyLnkoKSAtIHJhZGl1cywgcmFkaXVzICogMiwg
cmFkaXVzICogMik7CiAgICAgICAgIGJyZWFrOwogICAgIH0KIApAQCAtMTE4LDExICsxMzgsMTEg
QEAgUGFzc093blB0cjxFeGNsdXNpb25TaGFwZT4gRXhjbHVzaW9uU2hhcGU6OmNyZWF0ZUV4Y2x1
c2lvblNoYXBlKGNvbnN0IEJhc2ljU2hhcGUKICAgICAgICAgZmxvYXQgY2VudGVyWSA9IGZsb2F0
VmFsdWVGb3JMZW5ndGgoZWxsaXBzZS0+Y2VudGVyWSgpLCBib3hIZWlnaHQpOwogICAgICAgICBm
bG9hdCByYWRpdXNYID0gZmxvYXRWYWx1ZUZvckxlbmd0aChlbGxpcHNlLT5yYWRpdXNYKCksIGJv
eFdpZHRoKTsKICAgICAgICAgZmxvYXQgcmFkaXVzWSA9IGZsb2F0VmFsdWVGb3JMZW5ndGgoZWxs
aXBzZS0+cmFkaXVzWSgpLCBib3hIZWlnaHQpOworICAgICAgICBGbG9hdFBvaW50IGxvZ2ljYWxD
ZW50ZXIgPSBwaHlzaWNhbFBvaW50VG9Mb2dpY2FsKEZsb2F0UG9pbnQoY2VudGVyWCwgY2VudGVy
WSksIGxvZ2ljYWxCb3hIZWlnaHQsIHdyaXRpbmdNb2RlKTsKKyAgICAgICAgRmxvYXRTaXplIGxv
Z2ljYWxSYWRpaSA9IHBoeXNpY2FsU2l6ZVRvTG9naWNhbChGbG9hdFNpemUocmFkaXVzWCwgcmFk
aXVzWSksIHdyaXRpbmdNb2RlKTsKIAotICAgICAgICBleGNsdXNpb25TaGFwZSA9IGhvcml6b250
YWxXcml0aW5nTW9kZQotICAgICAgICAgICAgPyBjcmVhdGVFeGNsdXNpb25FbGxpcHNlKEZsb2F0
UG9pbnQoY2VudGVyWCwgY2VudGVyWSksIEZsb2F0U2l6ZShyYWRpdXNYLCByYWRpdXNZKSkKLSAg
ICAgICAgICAgIDogY3JlYXRlRXhjbHVzaW9uRWxsaXBzZShGbG9hdFBvaW50KGNlbnRlclksIGNl
bnRlclgpLCBGbG9hdFNpemUocmFkaXVzWSwgcmFkaXVzWCkpOwotICAgICAgICBleGNsdXNpb25T
aGFwZS0+bV9ib3VuZGluZ0JveCA9IEZsb2F0UmVjdChjZW50ZXJYIC0gcmFkaXVzWCwgY2VudGVy
WSAtIHJhZGl1c1ksIHJhZGl1c1ggKiAyLCByYWRpdXNZICogMik7CisgICAgICAgIGV4Y2x1c2lv
blNoYXBlID0gY3JlYXRlRXhjbHVzaW9uRWxsaXBzZShsb2dpY2FsQ2VudGVyLCBsb2dpY2FsUmFk
aWkpOworICAgICAgICBleGNsdXNpb25TaGFwZS0+bV9ib3VuZGluZ0JveCA9IEZsb2F0UmVjdChs
b2dpY2FsQ2VudGVyIC0gbG9naWNhbFJhZGlpLCBsb2dpY2FsUmFkaWkgKyBsb2dpY2FsUmFkaWkp
OwogICAgICAgICBicmVhazsKICAgICB9CiAKQEAgLTEzNyw3ICsxNTcsNyBAQCBQYXNzT3duUHRy
PEV4Y2x1c2lvblNoYXBlPiBFeGNsdXNpb25TaGFwZTo6Y3JlYXRlRXhjbHVzaW9uU2hhcGUoY29u
c3QgQmFzaWNTaGFwZQogICAgICAgICAgICAgRmxvYXRQb2ludCB2ZXJ0ZXgoCiAgICAgICAgICAg
ICAgICAgZmxvYXRWYWx1ZUZvckxlbmd0aCh2YWx1ZXMuYXQoaSksIGJveFdpZHRoKSwKICAgICAg
ICAgICAgICAgICBmbG9hdFZhbHVlRm9yTGVuZ3RoKHZhbHVlcy5hdChpICsgMSksIGJveEhlaWdo
dCkpOwotICAgICAgICAgICAgKCp2ZXJ0aWNlcylbaSAvIDJdID0gaG9yaXpvbnRhbFdyaXRpbmdN
b2RlID8gdmVydGV4IDogdmVydGV4LnRyYW5zcG9zZWRQb2ludCgpOworICAgICAgICAgICAgKCp2
ZXJ0aWNlcylbaSAvIDJdID0gcGh5c2ljYWxQb2ludFRvTG9naWNhbCh2ZXJ0ZXgsIGxvZ2ljYWxC
b3hIZWlnaHQsIHdyaXRpbmdNb2RlKTsKICAgICAgICAgICAgIGlmICghaSkKICAgICAgICAgICAg
ICAgICBib3VuZGluZ0JveC5zZXRMb2NhdGlvbih2ZXJ0ZXgpOwogICAgICAgICAgICAgZWxzZQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0V4Y2x1c2lvblNoYXBlLmggYi9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvRXhjbHVzaW9uU2hhcGUuaAppbmRleCAzNmRjMWI2My4u
YjJkYTNjNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0V4Y2x1c2lvblNo
YXBlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0V4Y2x1c2lvblNoYXBlLmgKQEAg
LTY5LDEyICs2OSw2IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgZ2V0RXhjbHVkZWRJbnRl
cnZhbHMoZmxvYXQgbG9naWNhbFRvcCwgZmxvYXQgbG9naWNhbEhlaWdodCwgU2VnbWVudExpc3Qm
KSBjb25zdCA9IDA7CiAgICAgdmlydHVhbCBib29sIGZpcnN0SW5jbHVkZWRJbnRlcnZhbExvZ2lj
YWxUb3AoZmxvYXQgbWluTG9naWNhbEludGVydmFsVG9wLCBjb25zdCBGbG9hdFNpemUmIG1pbkxv
Z2ljYWxJbnRlcnZhbFNpemUsIGZsb2F0JiByZXN1bHQpIGNvbnN0ID0gMDsKIAotcHJvdGVjdGVk
OgotICAgIGZsb2F0IG1pbllGb3JMb2dpY2FsTGluZShmbG9hdCBsb2dpY2FsVG9wLCBmbG9hdCBs
b2dpY2FsSGVpZ2h0KSBjb25zdCB7IHJldHVybiBpc0ZsaXBwZWRCbG9ja3NXcml0aW5nTW9kZSht
X3dyaXRpbmdNb2RlKSA/IG1fbG9naWNhbEJveEhlaWdodCAtIGxvZ2ljYWxUb3AgLSBsb2dpY2Fs
SGVpZ2h0IDogbG9naWNhbFRvcDsgfQotICAgIGZsb2F0IG1heFlGb3JMb2dpY2FsTGluZShmbG9h
dCBsb2dpY2FsVG9wLCBmbG9hdCBsb2dpY2FsSGVpZ2h0KSBjb25zdCB7IHJldHVybiAgaXNGbGlw
cGVkQmxvY2tzV3JpdGluZ01vZGUobV93cml0aW5nTW9kZSkgPyBtX2xvZ2ljYWxCb3hIZWlnaHQg
LSBsb2dpY2FsVG9wIDogbG9naWNhbFRvcCArIGxvZ2ljYWxIZWlnaHQ7IH0KLSAgICBGbG9hdFJl
Y3QgaW50ZXJuYWxUb0xvZ2ljYWxCb3VuZGluZ0JveChjb25zdCBGbG9hdFJlY3QmIHIpIGNvbnN0
IHsgcmV0dXJuIGlzRmxpcHBlZEJsb2Nrc1dyaXRpbmdNb2RlKG1fd3JpdGluZ01vZGUpID8gRmxv
YXRSZWN0KHIueCgpLCBtX2xvZ2ljYWxCb3hIZWlnaHQgLSByLm1heFkoKSwgci53aWR0aCgpLCBy
LmhlaWdodCgpKSA6IHI7IH0KLSAgICBmbG9hdCBsb2dpY2FsVG9wRm9yTWluWShmbG9hdCBtaW5Z
LCBmbG9hdCBsb2dpY2FsSGVpZ2h0KSBjb25zdCB7IHJldHVybiBpc0ZsaXBwZWRCbG9ja3NXcml0
aW5nTW9kZShtX3dyaXRpbmdNb2RlKSA/IG1fbG9naWNhbEJveEhlaWdodCAtIG1pblkgLSBsb2dp
Y2FsSGVpZ2h0IDogbWluWTsgfQotCiBwcml2YXRlOgogICAgIFdyaXRpbmdNb2RlIG1fd3JpdGlu
Z01vZGU7CiAgICAgZmxvYXQgbV9sb2dpY2FsQm94V2lkdGg7Cg==
</data>
<flag name="commit-queue"
          id="196755"
          type_id="3"
          status="-"
          setter="buildbot"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>179830</attachid>
            <date>2012-12-17 16:34:04 -0800</date>
            <delta_ts>2012-12-18 11:09:47 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>tmp.patch</filename>
            <type>text/plain</type>
            <size>19759</size>
            <attacher name="Hans Muller">giles_joplin</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCA1MTU4M2RhLi5iNjhhMDQ1IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMTItMTIt
MTMgIEhhbnMgTXVsbGVyICA8aG11bGxlckBhZG9iZS5jb20+CisKKyAgICAgICAgW0NTUyBFeGNs
dXNpb25zXSBzaGFwZS1pbnNpZGUgbGF5b3V0IGZhaWxzIHRvIGFkanVzdCBmaXJzdCBsaW5lIGNv
cnJlY3RseSBmb3Igd3JpdGluZy1tb2RlOiB2ZXJ0aWNhbC1ybAorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTA0NDE5CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgRm9yIHRoZSB2ZXJ0aWNhbCB3cml0aW5nIG1v
ZGVzLCB2ZXJpZnkgdGhhdCByb3VuZGVkIHJlY3RhbmdsZSBzaGFwZS1pbnNpZGUgY29udGVudCBp
cworICAgICAgICBhZGp1c3RlZCBpbiB0aGUgbG9naWNhbCBkb3duIGRpcmVjdGlvbiB3aGVuIGl0
IHdpbGwgbm90IGZpdCBiZXR3ZW4gdGhlIHJvdW5kZWQgY29ybmVycy4KKworICAgICAgICAqIGZh
c3QvZXhjbHVzaW9ucy9zaGFwZS1pbnNpZGUvc2hhcGUtaW5zaWRlLXJvdW5kZWQtcmVjdGFuZ2xl
LWZpdC0wMDMtZXhwZWN0ZWQuaHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC9leGNsdXNpb25z
L3NoYXBlLWluc2lkZS9zaGFwZS1pbnNpZGUtcm91bmRlZC1yZWN0YW5nbGUtZml0LTAwMy5odG1s
OiBBZGRlZC4KKwogMjAxMi0xMi0xMyAgQmV0aCBEYWtpbiAgPGJkYWtpbkBhcHBsZS5jb20+CiAK
ICAgICAgICAgVGhpcyB0ZXN0IGhhcyBiZWVuIGZhaWxpbmcgb24gdGhlIE1hYyBib3RzIGZvciBh
IHdoaWxlLiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZXhjbHVzaW9ucy9zaGFwZS1p
bnNpZGUvc2hhcGUtaW5zaWRlLXJvdW5kZWQtcmVjdGFuZ2xlLWZpdC0wMDMtZXhwZWN0ZWQuaHRt
bCBiL0xheW91dFRlc3RzL2Zhc3QvZXhjbHVzaW9ucy9zaGFwZS1pbnNpZGUvc2hhcGUtaW5zaWRl
LXJvdW5kZWQtcmVjdGFuZ2xlLWZpdC0wMDMtZXhwZWN0ZWQuaHRtbApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwLi42NmY0ZjZmCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvZmFzdC9leGNsdXNpb25zL3NoYXBlLWluc2lkZS9zaGFwZS1pbnNpZGUtcm91bmRlZC1yZWN0
YW5nbGUtZml0LTAwMy1leHBlY3RlZC5odG1sCkBAIC0wLDAgKzEsNjMgQEAKKzwhRE9DVFlQRSBo
dG1sPgorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQ+CisgICAgaWYgKHdpbmRvdy5pbnRlcm5hbHMp
CisgICAgICAgIHdpbmRvdy5pbnRlcm5hbHMuc2V0dGluZ3Muc2V0Q1NTRXhjbHVzaW9uc0VuYWJs
ZWQodHJ1ZSk7Cis8L3NjcmlwdD4KKzxzdHlsZT4KKy5zaGFwZS1jb250YWluZXIgeworICAgIHBv
c2l0aW9uOiByZWxhdGl2ZTsKKyAgICB3aWR0aDogNDAwcHg7CisgICAgaGVpZ2h0OiAyMDBweDsK
KyAgICBtYXJnaW46IDEwcHg7Cit9CisKKy5zaGFwZS1iYWNrZ3JvdW5kIHsKKyAgICBwb3NpdGlv
bjogYWJzb2x1dGU7CisgICAgbGVmdDogMHB4OworICAgIHRvcDogMHB4OworICAgIHdpZHRoOiA0
MDBweDsKKyAgICBoZWlnaHQ6IDIwMHB4OworICAgIGJvcmRlci1yYWRpdXM6IDUwcHggLyA1MHB4
OworICAgIGJhY2tncm91bmQtY29sb3I6IHJnYigyMDAsMjAwLDIwMCk7Cit9CisKKy5zaGFwZS1p
bnNpZGUtdmVydGljYWwtcmwgeworICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKKyAgICB0b3A6IDBw
eDsKKyAgICBsZWZ0OiAwcHg7CisgICAgd2lkdGg6IDQwMHB4OworICAgIGhlaWdodDogMjAwcHg7
CisgICAgLXdlYmtpdC13cml0aW5nLW1vZGU6IHZlcnRpY2FsLXJsOworICAgIGZvbnQ6IDUwcHgv
MSBBaGVtLCBzYW5zLXNlcmlmOworICAgIGNvbG9yOiBncmVlbjsKK30KKworLnNoYXBlLWluc2lk
ZS12ZXJ0aWNhbC1sciB7CisgICAgcG9zaXRpb246IGFic29sdXRlOworICAgIHRvcDogMHB4Owor
ICAgIGxlZnQ6IDBweDsKKyAgICB3aWR0aDogNDAwcHg7CisgICAgaGVpZ2h0OiAyMDBweDsKKyAg
ICAtd2Via2l0LXdyaXRpbmctbW9kZTogdmVydGljYWwtbHI7CisgICAgZm9udDogNTBweC8xIEFo
ZW0sIHNhbnMtc2VyaWY7CisgICAgY29sb3I6IGdyZWVuOworfQorPC9zdHlsZT4KKzwvaGVhZD4K
Kzxib2R5PgorPHA+VGhlIGdyZWVuIHJlY3RhbmdsZSBzaG91bGQgYXBwZWFyIGp1c3QgdG8gdGhl
IGxlZnQgb2YgdGhlIGdyZXkgcm91bmRlZCByZWN0YW5nbGUncyB1cHBlciBjb3JuZXJzLjwvcD4K
KzxkaXYgY2xhc3M9InNoYXBlLWNvbnRhaW5lciI+CisgIDxkaXYgY2xhc3M9InNoYXBlLWJhY2tn
cm91bmQiPjwvZGl2PgorICA8ZGl2IGNsYXNzPSJzaGFwZS1pbnNpZGUtdmVydGljYWwtcmwiPjxi
ci8+WFhYWDwvZGl2PgorPC9kaXY+Cis8L3A+CisKKzxwPlRoZSBncmVlbiByZWN0YW5nbGUgc2hv
dWxkIGFwcGVhciBqdXN0IHRvIHRoZSBsZWZ0IG9mIHRoZSBncmV5IHJvdW5kZWQgcmVjdGFuZ2xl
J3MgdXBwZXIgY29ybmVycy48L3A+Cis8ZGl2IGNsYXNzPSJzaGFwZS1jb250YWluZXIiPgorICA8
ZGl2IGNsYXNzPSJzaGFwZS1iYWNrZ3JvdW5kIj48L2Rpdj4KKyAgPGRpdiBjbGFzcz0ic2hhcGUt
aW5zaWRlLXZlcnRpY2FsLWxyIj48YnIvPlhYWFg8L2Rpdj4KKzwvZGl2PgorPC9ib2R5PgorPC9o
dG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9leGNsdXNpb25zL3NoYXBlLWluc2lk
ZS9zaGFwZS1pbnNpZGUtcm91bmRlZC1yZWN0YW5nbGUtZml0LTAwMy5odG1sIGIvTGF5b3V0VGVz
dHMvZmFzdC9leGNsdXNpb25zL3NoYXBlLWluc2lkZS9zaGFwZS1pbnNpZGUtcm91bmRlZC1yZWN0
YW5nbGUtZml0LTAwMy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjll
OWNlODEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2V4Y2x1c2lvbnMvc2hh
cGUtaW5zaWRlL3NoYXBlLWluc2lkZS1yb3VuZGVkLXJlY3RhbmdsZS1maXQtMDAzLmh0bWwKQEAg
LTAsMCArMSw2NSBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdD4K
KyAgICBpZiAod2luZG93LmludGVybmFscykKKyAgICAgICAgd2luZG93LmludGVybmFscy5zZXR0
aW5ncy5zZXRDU1NFeGNsdXNpb25zRW5hYmxlZCh0cnVlKTsKKzwvc2NyaXB0PgorPHN0eWxlPgor
LnNoYXBlLWNvbnRhaW5lciB7CisgICAgcG9zaXRpb246IHJlbGF0aXZlOworICAgIHdpZHRoOiA0
MDBweDsKKyAgICBoZWlnaHQ6IDIwMHB4OworICAgIG1hcmdpbjogMTBweDsKK30KKworLnNoYXBl
LWJhY2tncm91bmQgeworICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKKyAgICBsZWZ0OiAwcHg7Cisg
ICAgdG9wOiAwcHg7CisgICAgd2lkdGg6IDQwMHB4OworICAgIGhlaWdodDogMjAwcHg7CisgICAg
Ym9yZGVyLXJhZGl1czogNTBweCAvIDUwcHg7CisgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDIw
MCwyMDAsMjAwKTsKK30KKworLnNoYXBlLWluc2lkZS12ZXJ0aWNhbC1ybCB7CisgICAgcG9zaXRp
b246IGFic29sdXRlOworICAgIHRvcDogMHB4OworICAgIGxlZnQ6IDBweDsKKyAgICB3aWR0aDog
NDAwcHg7CisgICAgaGVpZ2h0OiAyMDBweDsKKyAgICAtd2Via2l0LXNoYXBlLWluc2lkZTogcmVj
dGFuZ2xlKDBweCwgMHB4LCA0MDBweCwgMjAwcHgsIDUwcHgsIDUwcHgpOworICAgIC13ZWJraXQt
d3JpdGluZy1tb2RlOiB2ZXJ0aWNhbC1ybDsKKyAgICBmb250OiA1MHB4LzEgQWhlbSwgc2Fucy1z
ZXJpZjsKKyAgICBjb2xvcjogZ3JlZW47Cit9CisKKy5zaGFwZS1pbnNpZGUtdmVydGljYWwtbHIg
eworICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKKyAgICB0b3A6IDBweDsKKyAgICBsZWZ0OiAwcHg7
CisgICAgd2lkdGg6IDQwMHB4OworICAgIGhlaWdodDogMjAwcHg7CisgICAgLXdlYmtpdC1zaGFw
ZS1pbnNpZGU6IHJlY3RhbmdsZSgwcHgsIDBweCwgNDAwcHgsIDIwMHB4LCA1MHB4LCA1MHB4KTsK
KyAgICAtd2Via2l0LXdyaXRpbmctbW9kZTogdmVydGljYWwtbHI7CisgICAgZm9udDogNTBweC8x
IEFoZW0sIHNhbnMtc2VyaWY7CisgICAgY29sb3I6IGdyZWVuOworfQorPC9zdHlsZT4KKzwvaGVh
ZD4KKzxib2R5PgorPHA+VGhlIGdyZWVuIHJlY3RhbmdsZSBzaG91bGQgYXBwZWFyIGp1c3QgdG8g
dGhlIGxlZnQgb2YgdGhlIGdyZXkgcm91bmRlZCByZWN0YW5nbGUncyB1cHBlciBjb3JuZXJzLjwv
cD4KKzxkaXYgY2xhc3M9InNoYXBlLWNvbnRhaW5lciI+CisgIDxkaXYgY2xhc3M9InNoYXBlLWJh
Y2tncm91bmQiPjwvZGl2PgorICA8ZGl2IGNsYXNzPSJzaGFwZS1pbnNpZGUtdmVydGljYWwtcmwi
PlhYWFg8L2Rpdj4KKzwvZGl2PgorPC9wPgorCis8cD5UaGUgZ3JlZW4gcmVjdGFuZ2xlIHNob3Vs
ZCBhcHBlYXIganVzdCB0byB0aGUgbGVmdCBvZiB0aGUgZ3JleSByb3VuZGVkIHJlY3RhbmdsZSdz
IHVwcGVyIGNvcm5lcnMuPC9wPgorPGRpdiBjbGFzcz0ic2hhcGUtY29udGFpbmVyIj4KKyAgPGRp
diBjbGFzcz0ic2hhcGUtYmFja2dyb3VuZCI+PC9kaXY+CisgIDxkaXYgY2xhc3M9InNoYXBlLWlu
c2lkZS12ZXJ0aWNhbC1sciI+WFhYWDwvZGl2PgorPC9kaXY+Cis8L2JvZHk+Cis8L2h0bWw+CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFu
Z2VMb2cKaW5kZXggM2MxNjc3Mi4uNmVlNTdkYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
Q2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM0IEBA
CisyMDEyLTEyLTEzICBIYW5zIE11bGxlciAgPGhtdWxsZXJAYWRvYmUuY29tPgorCisgICAgICAg
IFtDU1MgRXhjbHVzaW9uc10gc2hhcGUtaW5zaWRlIGxheW91dCBmYWlscyB0byBhZGp1c3QgZmly
c3QgbGluZSBjb3JyZWN0bHkgZm9yIHdyaXRpbmctbW9kZTogdmVydGljYWwtcmwKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwNDQxOQorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEV4Y2x1c2lvblNoYXBlcyBu
byBsb25nZXIgbWFpbnRhaW4gYSBwcml2YXRlICJpbnRlcm5hbCIgY29vcmRpbmF0ZSBzeXN0ZW0s
CisgICAgICAgIHRoZXkncmUgbm93IGRlZmluZWQgaW4gbG9naWNhbCBjb29yZGluYXRlcy4gVGhl
IGNyZWF0ZUV4Y2x1c2lvblNoYXBlKCkgbWV0aG9kCisgICAgICAgIG5vdyBoYW5kbGVzIHRoZSBv
bmUtdGltZSBjb252ZXJzaW9uIGZyb20gcGh5c2ljYWwgdG8gbG9naWNhbCBjb29yZGluYXRlcy4K
KworICAgICAgICBUZXN0OiBmYXN0L2V4Y2x1c2lvbnMvc2hhcGUtaW5zaWRlL3NoYXBlLWluc2lk
ZS1yb3VuZGVkLXJlY3RhbmdsZS1maXQtMDAzLmh0bWwKKworICAgICAgICAqIHJlbmRlcmluZy9F
eGNsdXNpb25Qb2x5Z29uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkV4Y2x1c2lvblBvbHlnb246
OmdldEV4Y2x1ZGVkSW50ZXJ2YWxzKTogUmVtb3ZlZCBsb2dpY2FsIHRvIGludGVybmFsIGNvb3Jk
aW5hdGUgY29udmVyc2lvbnMuCisgICAgICAgIChXZWJDb3JlOjpFeGNsdXNpb25Qb2x5Z29uOjpn
ZXRJbmNsdWRlZEludGVydmFscyk6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6RXhjbHVzaW9u
UG9seWdvbjo6Zmlyc3RJbmNsdWRlZEludGVydmFsTG9naWNhbFRvcCk6IERpdHRvLgorICAgICAg
ICAqIHJlbmRlcmluZy9FeGNsdXNpb25Qb2x5Z29uLmg6CisgICAgICAgICogcmVuZGVyaW5nL0V4
Y2x1c2lvblJlY3RhbmdsZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpFeGNsdXNpb25SZWN0YW5n
bGU6OmdldEV4Y2x1ZGVkSW50ZXJ2YWxzKTogUmVtb3ZlZCBsb2dpY2FsIHRvIGludGVybmFsIGNv
b3JkaW5hdGUgY29udmVyc2lvbnMuCisgICAgICAgIChXZWJDb3JlOjpFeGNsdXNpb25SZWN0YW5n
bGU6OmdldEluY2x1ZGVkSW50ZXJ2YWxzKTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpFeGNs
dXNpb25SZWN0YW5nbGU6OmZpcnN0SW5jbHVkZWRJbnRlcnZhbExvZ2ljYWxUb3ApOiBEaXR0by4K
KyAgICAgICAgKiByZW5kZXJpbmcvRXhjbHVzaW9uUmVjdGFuZ2xlLmg6CisgICAgICAgICogcmVu
ZGVyaW5nL0V4Y2x1c2lvblNoYXBlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OnBoeXNpY2FsUmVj
dFRvTG9naWNhbCk6IENvbnZlcnQgYSBGbG9hdFJlY3QgZGVmaW5lZCB3aXRoIGNvb3JkaW5hdGVz
IHRvIGxvZ2ljYWwgY29vcmRpbmF0ZXMuCisgICAgICAgIChXZWJDb3JlOjpwaHlzaWNhbFBvaW50
VG9Mb2dpY2FsKTogU2ltaWxhci4KKyAgICAgICAgKFdlYkNvcmU6OnBoeXNpY2FsU2l6ZVRvTG9n
aWNhbCk6IFNpbWxhci4KKyAgICAgICAgKFdlYkNvcmU6OkV4Y2x1c2lvblNoYXBlOjpjcmVhdGVF
eGNsdXNpb25TaGFwZSk6IENvbnZlcnQgc2hhcGVzIGZyb20gcGh5c2ljYWwgdG8gbG9naWNhbCBj
b29yZGluYXRlcy4KKyAgICAgICAgKiByZW5kZXJpbmcvRXhjbHVzaW9uU2hhcGUuaDoKKyAgICAg
ICAgKEV4Y2x1c2lvblNoYXBlKTogUmVtb3ZlZCBpbnRlcm5hbCB0byBsb2dpY2FsIGNvb3JkaW5h
dGUgY29udmVyc2lvbiB1dGlsaXR5IG1ldGhvZHMuCisKIDIwMTItMTItMTMgIElhbiBWb2xsaWNr
ICA8dm9sbGlja0BjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgW2Nocm9taXVtXSBBdXRvbWF0aWNh
bGx5IHVzZSBjb21wb3NpdGVkIHNjcm9sbGluZwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL0V4Y2x1c2lvblBvbHlnb24uY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L0V4Y2x1c2lvblBvbHlnb24uY3BwCmluZGV4IDk0YjkzZGMuLmI2YWVjMDggMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9FeGNsdXNpb25Qb2x5Z29uLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvRXhjbHVzaW9uUG9seWdvbi5jcHAKQEAgLTMyNyw4ICszMjcs
OCBAQCB2b2lkIEV4Y2x1c2lvblBvbHlnb246OmdldEV4Y2x1ZGVkSW50ZXJ2YWxzKGZsb2F0IGxv
Z2ljYWxUb3AsIGZsb2F0IGxvZ2ljYWxIZWlnaAogICAgIGlmIChpc0VtcHR5KCkpCiAgICAgICAg
IHJldHVybjsKIAotICAgIGZsb2F0IHkxID0gbWluWUZvckxvZ2ljYWxMaW5lKGxvZ2ljYWxUb3As
IGxvZ2ljYWxIZWlnaHQpOwotICAgIGZsb2F0IHkyID0gbWF4WUZvckxvZ2ljYWxMaW5lKGxvZ2lj
YWxUb3AsIGxvZ2ljYWxIZWlnaHQpOworICAgIGZsb2F0IHkxID0gbG9naWNhbFRvcDsKKyAgICBm
bG9hdCB5MiA9IHkxICsgbG9naWNhbEhlaWdodDsKIAogICAgIFZlY3RvcjxFeGNsdXNpb25JbnRl
cnZhbD4geTFYSW50ZXJ2YWxzLCB5MlhJbnRlcnZhbHM7CiAgICAgY29tcHV0ZVhJbnRlcnNlY3Rp
b25zKHkxLCB0cnVlLCB5MVhJbnRlcnZhbHMpOwpAQCAtMzU0LDggKzM1NCw4IEBAIHZvaWQgRXhj
bHVzaW9uUG9seWdvbjo6Z2V0SW5jbHVkZWRJbnRlcnZhbHMoZmxvYXQgbG9naWNhbFRvcCwgZmxv
YXQgbG9naWNhbEhlaWdoCiAgICAgaWYgKGlzRW1wdHkoKSkKICAgICAgICAgcmV0dXJuOwogCi0g
ICAgZmxvYXQgeTEgPSBtaW5ZRm9yTG9naWNhbExpbmUobG9naWNhbFRvcCwgbG9naWNhbEhlaWdo
dCk7Ci0gICAgZmxvYXQgeTIgPSBtYXhZRm9yTG9naWNhbExpbmUobG9naWNhbFRvcCwgbG9naWNh
bEhlaWdodCk7CisgICAgZmxvYXQgeTEgPSBsb2dpY2FsVG9wOworICAgIGZsb2F0IHkyID0geTEg
KyBsb2dpY2FsSGVpZ2h0OwogCiAgICAgVmVjdG9yPEV4Y2x1c2lvbkludGVydmFsPiB5MVhJbnRl
cnZhbHMsIHkyWEludGVydmFsczsKICAgICBjb21wdXRlWEludGVyc2VjdGlvbnMoeTEsIHRydWUs
IHkxWEludGVydmFscyk7CkBAIC0zODMsOCArMzgzLDggQEAgYm9vbCBFeGNsdXNpb25Qb2x5Z29u
OjpmaXJzdEluY2x1ZGVkSW50ZXJ2YWxMb2dpY2FsVG9wKGZsb2F0IG1pbkxvZ2ljYWxJbnRlcnZh
bFQKICAgICBpZiAobWluTG9naWNhbEludGVydmFsU2l6ZS53aWR0aCgpID4gbV9ib3VuZGluZ0Jv
eC53aWR0aCgpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKLSAgICBmbG9hdCBtaW5ZID0gbWlu
WUZvckxvZ2ljYWxMaW5lKG1pbkxvZ2ljYWxJbnRlcnZhbFRvcCwgbWluTG9naWNhbEludGVydmFs
U2l6ZS5oZWlnaHQoKSk7Ci0gICAgZmxvYXQgbWF4WSA9IG1heFlGb3JMb2dpY2FsTGluZShtaW5M
b2dpY2FsSW50ZXJ2YWxUb3AsIG1pbkxvZ2ljYWxJbnRlcnZhbFNpemUuaGVpZ2h0KCkpOworICAg
IGZsb2F0IG1pblkgPSBzdGQ6Om1heChtX2JvdW5kaW5nQm94LnkoKSwgbWluTG9naWNhbEludGVy
dmFsVG9wKTsKKyAgICBmbG9hdCBtYXhZID0gbWluWSArIG1pbkxvZ2ljYWxJbnRlcnZhbFNpemUu
aGVpZ2h0KCk7CiAgICAgaWYgKG1pblkgPCBtX2JvdW5kaW5nQm94LnkoKSB8fCBtYXhZID4gbV9i
b3VuZGluZ0JveC5tYXhZKCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0V4Y2x1c2lvblBvbHlnb24uaCBiL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9FeGNsdXNpb25Qb2x5Z29uLmgKaW5kZXggMjVmYzZmNy4uY2UyZmI1NSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0V4Y2x1c2lvblBvbHlnb24uaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvRXhjbHVzaW9uUG9seWdvbi5oCkBAIC02Miw3
ICs2Miw3IEBAIHB1YmxpYzoKICAgICBjb25zdCBFeGNsdXNpb25Qb2x5Z29uRWRnZSYgZWRnZUF0
KHVuc2lnbmVkIGluZGV4KSBjb25zdCB7IHJldHVybiBtX2VkZ2VzW2luZGV4XTsgfQogICAgIHVu
c2lnbmVkIG51bWJlck9mRWRnZXMoKSBjb25zdCB7IHJldHVybiBtX2VkZ2VzLnNpemUoKTsgfQog
Ci0gICAgdmlydHVhbCBGbG9hdFJlY3Qgc2hhcGVMb2dpY2FsQm91bmRpbmdCb3goKSBjb25zdCBP
VkVSUklERSB7IHJldHVybiBpbnRlcm5hbFRvTG9naWNhbEJvdW5kaW5nQm94KG1fYm91bmRpbmdC
b3gpOyB9CisgICAgdmlydHVhbCBGbG9hdFJlY3Qgc2hhcGVMb2dpY2FsQm91bmRpbmdCb3goKSBj
b25zdCBPVkVSUklERSB7IHJldHVybiBtX2JvdW5kaW5nQm94OyB9CiAgICAgdmlydHVhbCBib29s
IGlzRW1wdHkoKSBjb25zdCBPVkVSUklERSB7IHJldHVybiBtX2VtcHR5OyB9CiAgICAgdmlydHVh
bCB2b2lkIGdldEV4Y2x1ZGVkSW50ZXJ2YWxzKGZsb2F0IGxvZ2ljYWxUb3AsIGZsb2F0IGxvZ2lj
YWxIZWlnaHQsIFNlZ21lbnRMaXN0JikgY29uc3QgT1ZFUlJJREU7CiAgICAgdmlydHVhbCB2b2lk
IGdldEluY2x1ZGVkSW50ZXJ2YWxzKGZsb2F0IGxvZ2ljYWxUb3AsIGZsb2F0IGxvZ2ljYWxIZWln
aHQsIFNlZ21lbnRMaXN0JikgY29uc3QgT1ZFUlJJREU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvRXhjbHVzaW9uUmVjdGFuZ2xlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9FeGNsdXNpb25SZWN0YW5nbGUuY3BwCmluZGV4IDliZDIyZDUuLmViZTZhODQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9FeGNsdXNpb25SZWN0YW5nbGUuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9FeGNsdXNpb25SZWN0YW5nbGUuY3BwCkBA
IC01MSw4ICs1MSw4IEBAIHZvaWQgRXhjbHVzaW9uUmVjdGFuZ2xlOjpnZXRFeGNsdWRlZEludGVy
dmFscyhmbG9hdCBsb2dpY2FsVG9wLCBmbG9hdCBsb2dpY2FsSGVpCiAgICAgaWYgKGlzRW1wdHko
KSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgZmxvYXQgeTEgPSBtaW5ZRm9yTG9naWNhbExpbmUo
bG9naWNhbFRvcCwgbG9naWNhbEhlaWdodCk7Ci0gICAgZmxvYXQgeTIgPSBtYXhZRm9yTG9naWNh
bExpbmUobG9naWNhbFRvcCwgbG9naWNhbEhlaWdodCk7CisgICAgZmxvYXQgeTEgPSBsb2dpY2Fs
VG9wOworICAgIGZsb2F0IHkyID0geTEgKyBsb2dpY2FsSGVpZ2h0OwogCiAgICAgaWYgKHkyIDwg
bV95IHx8IHkxID49IG1feSArIG1faGVpZ2h0KQogICAgICAgICByZXR1cm47CkBAIC04Miw4ICs4
Miw4IEBAIHZvaWQgRXhjbHVzaW9uUmVjdGFuZ2xlOjpnZXRJbmNsdWRlZEludGVydmFscyhmbG9h
dCBsb2dpY2FsVG9wLCBmbG9hdCBsb2dpY2FsSGVpCiAgICAgaWYgKGlzRW1wdHkoKSkKICAgICAg
ICAgcmV0dXJuOwogCi0gICAgZmxvYXQgeTEgPSBtaW5ZRm9yTG9naWNhbExpbmUobG9naWNhbFRv
cCwgbG9naWNhbEhlaWdodCk7Ci0gICAgZmxvYXQgeTIgPSBtYXhZRm9yTG9naWNhbExpbmUobG9n
aWNhbFRvcCwgbG9naWNhbEhlaWdodCk7CisgICAgZmxvYXQgeTEgPSBsb2dpY2FsVG9wOworICAg
IGZsb2F0IHkyID0geTEgKyBsb2dpY2FsSGVpZ2h0OwogCiAgICAgaWYgKHkxIDwgbV95IHx8IHky
ID4gbV95ICsgbV9oZWlnaHQpCiAgICAgICAgIHJldHVybjsKQEAgLTEzMyw4ICsxMzMsOSBAQCBi
b29sIEV4Y2x1c2lvblJlY3RhbmdsZTo6Zmlyc3RJbmNsdWRlZEludGVydmFsTG9naWNhbFRvcChm
bG9hdCBtaW5Mb2dpY2FsSW50ZXJ2YQogICAgIGlmIChtaW5Mb2dpY2FsSW50ZXJ2YWxTaXplLndp
ZHRoKCkgPiBtX3dpZHRoKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKLSAgICBmbG9hdCBtaW5Z
ID0gc3RkOjptYXgobV95LCBtaW5ZRm9yTG9naWNhbExpbmUobWluTG9naWNhbEludGVydmFsVG9w
LCBtaW5Mb2dpY2FsSW50ZXJ2YWxTaXplLmhlaWdodCgpKSk7CisgICAgZmxvYXQgbWluWSA9IHN0
ZDo6bWF4KG1feSwgbWluTG9naWNhbEludGVydmFsVG9wKTsKICAgICBmbG9hdCBtYXhZID0gbWlu
WSArIG1pbkxvZ2ljYWxJbnRlcnZhbFNpemUuaGVpZ2h0KCk7CisKICAgICBpZiAobWF4WSA+IG1f
eSArIG1faGVpZ2h0KQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKQEAgLTE0Miw3ICsxNDMsNyBA
QCBib29sIEV4Y2x1c2lvblJlY3RhbmdsZTo6Zmlyc3RJbmNsdWRlZEludGVydmFsTG9naWNhbFRv
cChmbG9hdCBtaW5Mb2dpY2FsSW50ZXJ2YQogICAgIGJvb2wgaW50ZXJ2YWxPdmVybGFwc01heENv
cm5lciA9IG1heFkgPiBtX3kgKyBtX2hlaWdodCAtIG1fcnk7CiAKICAgICBpZiAoIWludGVydmFs
T3ZlcmxhcHNNaW5Db3JuZXIgJiYgIWludGVydmFsT3ZlcmxhcHNNYXhDb3JuZXIpIHsKLSAgICAg
ICAgcmVzdWx0ID0gbG9naWNhbFRvcEZvck1pblkobWluWSwgbWluTG9naWNhbEludGVydmFsU2l6
ZS5oZWlnaHQoKSk7CisgICAgICAgIHJlc3VsdCA9IG1pblk7CiAgICAgICAgIHJldHVybiB0cnVl
OwogICAgIH0KIApAQCAtMTUzLDE4ICsxNTQsMTggQEAgYm9vbCBFeGNsdXNpb25SZWN0YW5nbGU6
OmZpcnN0SW5jbHVkZWRJbnRlcnZhbExvZ2ljYWxUb3AoZmxvYXQgbWluTG9naWNhbEludGVydmEK
IAogICAgIGlmIChpbnRlcnZhbE92ZXJsYXBzTWluQ29ybmVyICYmICghaW50ZXJ2YWxPdmVybGFw
c01heENvcm5lciB8fCBtaW5Db3JuZXJEZWZpbmVzWCkpIHsKICAgICAgICAgaWYgKGludGVydmFs
Rml0c1dpdGhpbkNvcm5lcnMgfHwgbV95ICsgY29ybmVySW50ZXJjZXB0LnkoKSA8IG1pblkpIHsK
LSAgICAgICAgICAgIHJlc3VsdCA9IGxvZ2ljYWxUb3BGb3JNaW5ZKG1pblksIG1pbkxvZ2ljYWxJ
bnRlcnZhbFNpemUuaGVpZ2h0KCkpOworICAgICAgICAgICAgcmVzdWx0ID0gbWluWTsKICAgICAg
ICAgICAgIHJldHVybiB0cnVlOwogICAgICAgICB9CiAgICAgICAgIGlmIChtaW5Mb2dpY2FsSW50
ZXJ2YWxTaXplLmhlaWdodCgpIDwgbV9oZWlnaHQgLSAoMiAqIGNvcm5lckludGVyY2VwdC55KCkp
KSB7Ci0gICAgICAgICAgICByZXN1bHQgPSBsb2dpY2FsVG9wRm9yTWluWShtX3kgKyBjb3JuZXJJ
bnRlcmNlcHQueSgpLCBtaW5Mb2dpY2FsSW50ZXJ2YWxTaXplLmhlaWdodCgpKTsKKyAgICAgICAg
ICAgIHJlc3VsdCA9IG1feSArIGNvcm5lckludGVyY2VwdC55KCk7CiAgICAgICAgICAgICByZXR1
cm4gdHJ1ZTsKICAgICAgICAgfQogICAgIH0KIAogICAgIGlmIChpbnRlcnZhbE92ZXJsYXBzTWF4
Q29ybmVyICYmICghaW50ZXJ2YWxPdmVybGFwc01pbkNvcm5lciB8fCAhbWluQ29ybmVyRGVmaW5l
c1gpKSB7CiAgICAgICAgIGlmIChpbnRlcnZhbEZpdHNXaXRoaW5Db3JuZXJzIHx8IG1pblkgPD0g
IG1feSArIG1faGVpZ2h0IC0gY29ybmVySW50ZXJjZXB0LnkoKSAtIG1pbkxvZ2ljYWxJbnRlcnZh
bFNpemUuaGVpZ2h0KCkpIHsKLSAgICAgICAgICAgIHJlc3VsdCA9IGxvZ2ljYWxUb3BGb3JNaW5Z
KG1pblksIG1pbkxvZ2ljYWxJbnRlcnZhbFNpemUuaGVpZ2h0KCkpOworICAgICAgICAgICAgcmVz
dWx0ID0gbWluWTsKICAgICAgICAgICAgIHJldHVybiB0cnVlOwogICAgICAgICB9CiAgICAgfQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0V4Y2x1c2lvblJlY3RhbmdsZS5o
IGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0V4Y2x1c2lvblJlY3RhbmdsZS5oCmluZGV4IDY2
MzgyYzguLmM4YTY1MzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9FeGNs
dXNpb25SZWN0YW5nbGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvRXhjbHVzaW9u
UmVjdGFuZ2xlLmgKQEAgLTUxLDcgKzUxLDcgQEAgcHVibGljOgogICAgIHsKICAgICB9CiAKLSAg
ICB2aXJ0dWFsIEZsb2F0UmVjdCBzaGFwZUxvZ2ljYWxCb3VuZGluZ0JveCgpIGNvbnN0IE9WRVJS
SURFIHsgcmV0dXJuIGludGVybmFsVG9Mb2dpY2FsQm91bmRpbmdCb3goRmxvYXRSZWN0KG1feCwg
bV95LCBtX3dpZHRoLCBtX2hlaWdodCkpOyB9CisgICAgdmlydHVhbCBGbG9hdFJlY3Qgc2hhcGVM
b2dpY2FsQm91bmRpbmdCb3goKSBjb25zdCBPVkVSUklERSB7IHJldHVybiBGbG9hdFJlY3QobV94
LCBtX3ksIG1fd2lkdGgsIG1faGVpZ2h0KTsgfQogICAgIHZpcnR1YWwgYm9vbCBpc0VtcHR5KCkg
Y29uc3QgT1ZFUlJJREUgeyByZXR1cm4gbV93aWR0aCA8PSAwIHx8IG1faGVpZ2h0IDw9IDA7IH0K
ICAgICB2aXJ0dWFsIHZvaWQgZ2V0RXhjbHVkZWRJbnRlcnZhbHMoZmxvYXQgbG9naWNhbFRvcCwg
ZmxvYXQgbG9naWNhbEhlaWdodCwgU2VnbWVudExpc3QmKSBjb25zdCBPVkVSUklERTsKICAgICB2
aXJ0dWFsIHZvaWQgZ2V0SW5jbHVkZWRJbnRlcnZhbHMoZmxvYXQgbG9naWNhbFRvcCwgZmxvYXQg
bG9naWNhbEhlaWdodCwgU2VnbWVudExpc3QmKSBjb25zdCBPVkVSUklERTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9FeGNsdXNpb25TaGFwZS5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvRXhjbHVzaW9uU2hhcGUuY3BwCmluZGV4IDVlMGVhOGIuLjJiMzE1ODEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9FeGNsdXNpb25TaGFwZS5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0V4Y2x1c2lvblNoYXBlLmNwcApAQCAtNjUs
OCArNjUsMzAgQEAgc3RhdGljIFBhc3NPd25QdHI8RXhjbHVzaW9uU2hhcGU+IGNyZWF0ZUV4Y2x1
c2lvblBvbHlnb24oUGFzc093blB0cjxWZWN0b3I8RmxvYXQKICAgICByZXR1cm4gYWRvcHRQdHIo
bmV3IEV4Y2x1c2lvblBvbHlnb24odmVydGljZXMsIGZpbGxSdWxlKSk7CiB9CiAKLS8vIElmIHRo
ZSB3cml0aW5nTW9kZSBpcyB2ZXJ0aWNhbCwgdGhlbiB0aGUgQmFzaWNTaGFwZSdzIChwaHlzaWNh
bCkgeCBhbmQgeSBjb29yZGluYXRlcyBhcmUgc3dhcHBlZCwgc28gdGhhdAotLy8gbGluZSBzZWdt
ZW50cyBhcmUgcGFyYWxsZWwgdG8gdGhlIGludGVybmFsIGNvb3JkaW5hdGUgc3lzdGVtJ3MgWCBh
eGlzLgorc3RhdGljIGlubGluZSBGbG9hdFJlY3QgcGh5c2ljYWxSZWN0VG9Mb2dpY2FsKGNvbnN0
IEZsb2F0UmVjdCYgcmVjdCwgZmxvYXQgbG9naWNhbEJveEhlaWdodCwgV3JpdGluZ01vZGUgd3Jp
dGluZ01vZGUpCit7CisgICAgaWYgKGlzSG9yaXpvbnRhbFdyaXRpbmdNb2RlKHdyaXRpbmdNb2Rl
KSkKKyAgICAgICAgcmV0dXJuIHJlY3Q7CisgICAgaWYgKGlzRmxpcHBlZEJsb2Nrc1dyaXRpbmdN
b2RlKHdyaXRpbmdNb2RlKSkKKyAgICAgICAgcmV0dXJuIEZsb2F0UmVjdChyZWN0LnkoKSwgbG9n
aWNhbEJveEhlaWdodCAtIHJlY3QubWF4WCgpLCByZWN0LmhlaWdodCgpLCByZWN0LndpZHRoKCkp
OworICAgIHJldHVybiByZWN0LnRyYW5zcG9zZWRSZWN0KCk7Cit9CisKK3N0YXRpYyBpbmxpbmUg
RmxvYXRQb2ludCBwaHlzaWNhbFBvaW50VG9Mb2dpY2FsKGNvbnN0IEZsb2F0UG9pbnQmIHBvaW50
LCBmbG9hdCBsb2dpY2FsQm94SGVpZ2h0LCBXcml0aW5nTW9kZSB3cml0aW5nTW9kZSkKK3sKKyAg
ICBpZiAoaXNIb3Jpem9udGFsV3JpdGluZ01vZGUod3JpdGluZ01vZGUpKQorICAgICAgICByZXR1
cm4gcG9pbnQ7CisgICAgaWYgKGlzRmxpcHBlZEJsb2Nrc1dyaXRpbmdNb2RlKHdyaXRpbmdNb2Rl
KSkKKyAgICAgICAgcmV0dXJuIEZsb2F0UG9pbnQocG9pbnQueSgpLCBsb2dpY2FsQm94SGVpZ2h0
IC0gcG9pbnQueCgpKTsKKyAgICByZXR1cm4gcG9pbnQudHJhbnNwb3NlZFBvaW50KCk7Cit9CisK
K3N0YXRpYyBpbmxpbmUgRmxvYXRTaXplIHBoeXNpY2FsU2l6ZVRvTG9naWNhbChjb25zdCBGbG9h
dFNpemUmIHNpemUsIFdyaXRpbmdNb2RlIHdyaXRpbmdNb2RlKQoreworICAgIGlmIChpc0hvcml6
b250YWxXcml0aW5nTW9kZSh3cml0aW5nTW9kZSkpCisgICAgICAgIHJldHVybiBzaXplOworICAg
IHJldHVybiBzaXplLnRyYW5zcG9zZWRTaXplKCk7Cit9CiAKIFBhc3NPd25QdHI8RXhjbHVzaW9u
U2hhcGU+IEV4Y2x1c2lvblNoYXBlOjpjcmVhdGVFeGNsdXNpb25TaGFwZShjb25zdCBCYXNpY1No
YXBlKiBiYXNpY1NoYXBlLCBmbG9hdCBsb2dpY2FsQm94V2lkdGgsIGZsb2F0IGxvZ2ljYWxCb3hI
ZWlnaHQsIFdyaXRpbmdNb2RlIHdyaXRpbmdNb2RlKQogewpAQCAtOTEsMTEgKzExMywxMCBAQCBQ
YXNzT3duUHRyPEV4Y2x1c2lvblNoYXBlPiBFeGNsdXNpb25TaGFwZTo6Y3JlYXRlRXhjbHVzaW9u
U2hhcGUoY29uc3QgQmFzaWNTaGFwZQogICAgICAgICBGbG9hdFNpemUgY29ybmVyUmFkaWkoCiAg
ICAgICAgICAgICByYWRpdXNYTGVuZ3RoLmlzVW5kZWZpbmVkKCkgPyAwIDogZmxvYXRWYWx1ZUZv
ckxlbmd0aChyYWRpdXNYTGVuZ3RoLCBib3hXaWR0aCksCiAgICAgICAgICAgICByYWRpdXNZTGVu
Z3RoLmlzVW5kZWZpbmVkKCkgPyAwIDogZmxvYXRWYWx1ZUZvckxlbmd0aChyYWRpdXNZTGVuZ3Ro
LCBib3hIZWlnaHQpKTsKKyAgICAgICAgRmxvYXRSZWN0IGxvZ2ljYWxCb3VuZHMgPSBwaHlzaWNh
bFJlY3RUb0xvZ2ljYWwoYm91bmRzLCBsb2dpY2FsQm94SGVpZ2h0LCB3cml0aW5nTW9kZSk7CiAK
LSAgICAgICAgZXhjbHVzaW9uU2hhcGUgPSBob3Jpem9udGFsV3JpdGluZ01vZGUKLSAgICAgICAg
ICAgID8gY3JlYXRlRXhjbHVzaW9uUmVjdGFuZ2xlKGJvdW5kcywgY29ybmVyUmFkaWkpCi0gICAg
ICAgICAgICA6IGNyZWF0ZUV4Y2x1c2lvblJlY3RhbmdsZShib3VuZHMudHJhbnNwb3NlZFJlY3Qo
KSwgY29ybmVyUmFkaWkudHJhbnNwb3NlZFNpemUoKSk7Ci0gICAgICAgIGV4Y2x1c2lvblNoYXBl
LT5tX2JvdW5kaW5nQm94ID0gYm91bmRzOworICAgICAgICBleGNsdXNpb25TaGFwZSA9IGNyZWF0
ZUV4Y2x1c2lvblJlY3RhbmdsZShsb2dpY2FsQm91bmRzLCBwaHlzaWNhbFNpemVUb0xvZ2ljYWwo
Y29ybmVyUmFkaWksIHdyaXRpbmdNb2RlKSk7CisgICAgICAgIGV4Y2x1c2lvblNoYXBlLT5tX2Jv
dW5kaW5nQm94ID0gbG9naWNhbEJvdW5kczsKICAgICAgICAgYnJlYWs7CiAgICAgfQogCkBAIC0x
MDQsMTEgKzEyNSwxMCBAQCBQYXNzT3duUHRyPEV4Y2x1c2lvblNoYXBlPiBFeGNsdXNpb25TaGFw
ZTo6Y3JlYXRlRXhjbHVzaW9uU2hhcGUoY29uc3QgQmFzaWNTaGFwZQogICAgICAgICBmbG9hdCBj
ZW50ZXJYID0gZmxvYXRWYWx1ZUZvckxlbmd0aChjaXJjbGUtPmNlbnRlclgoKSwgYm94V2lkdGgp
OwogICAgICAgICBmbG9hdCBjZW50ZXJZID0gZmxvYXRWYWx1ZUZvckxlbmd0aChjaXJjbGUtPmNl
bnRlclkoKSwgYm94SGVpZ2h0KTsKICAgICAgICAgZmxvYXQgcmFkaXVzID0gIGZsb2F0VmFsdWVG
b3JMZW5ndGgoY2lyY2xlLT5yYWRpdXMoKSwgc3RkOjptYXgoYm94SGVpZ2h0LCBib3hXaWR0aCkp
OworICAgICAgICBGbG9hdFBvaW50IGxvZ2ljYWxDZW50ZXIgPSBwaHlzaWNhbFBvaW50VG9Mb2dp
Y2FsKEZsb2F0UG9pbnQoY2VudGVyWCwgY2VudGVyWSksIGxvZ2ljYWxCb3hIZWlnaHQsIHdyaXRp
bmdNb2RlKTsKIAotICAgICAgICBleGNsdXNpb25TaGFwZSA9IGhvcml6b250YWxXcml0aW5nTW9k
ZQotICAgICAgICAgICAgPyBjcmVhdGVFeGNsdXNpb25DaXJjbGUoRmxvYXRQb2ludChjZW50ZXJY
LCBjZW50ZXJZKSwgcmFkaXVzKQotICAgICAgICAgICAgOiBjcmVhdGVFeGNsdXNpb25DaXJjbGUo
RmxvYXRQb2ludChjZW50ZXJZLCBjZW50ZXJYKSwgcmFkaXVzKTsKLSAgICAgICAgZXhjbHVzaW9u
U2hhcGUtPm1fYm91bmRpbmdCb3ggPSBGbG9hdFJlY3QoY2VudGVyWCAtIHJhZGl1cywgY2VudGVy
WSAtIHJhZGl1cywgcmFkaXVzICogMiwgcmFkaXVzICogMik7CisgICAgICAgIGV4Y2x1c2lvblNo
YXBlID0gY3JlYXRlRXhjbHVzaW9uQ2lyY2xlKGxvZ2ljYWxDZW50ZXIsIHJhZGl1cyk7CisgICAg
ICAgIGV4Y2x1c2lvblNoYXBlLT5tX2JvdW5kaW5nQm94ID0gRmxvYXRSZWN0KGxvZ2ljYWxDZW50
ZXIueCgpIC0gcmFkaXVzLCBsb2dpY2FsQ2VudGVyLnkoKSAtIHJhZGl1cywgcmFkaXVzICogMiwg
cmFkaXVzICogMik7CiAgICAgICAgIGJyZWFrOwogICAgIH0KIApAQCAtMTE4LDExICsxMzgsMTEg
QEAgUGFzc093blB0cjxFeGNsdXNpb25TaGFwZT4gRXhjbHVzaW9uU2hhcGU6OmNyZWF0ZUV4Y2x1
c2lvblNoYXBlKGNvbnN0IEJhc2ljU2hhcGUKICAgICAgICAgZmxvYXQgY2VudGVyWSA9IGZsb2F0
VmFsdWVGb3JMZW5ndGgoZWxsaXBzZS0+Y2VudGVyWSgpLCBib3hIZWlnaHQpOwogICAgICAgICBm
bG9hdCByYWRpdXNYID0gZmxvYXRWYWx1ZUZvckxlbmd0aChlbGxpcHNlLT5yYWRpdXNYKCksIGJv
eFdpZHRoKTsKICAgICAgICAgZmxvYXQgcmFkaXVzWSA9IGZsb2F0VmFsdWVGb3JMZW5ndGgoZWxs
aXBzZS0+cmFkaXVzWSgpLCBib3hIZWlnaHQpOworICAgICAgICBGbG9hdFBvaW50IGxvZ2ljYWxD
ZW50ZXIgPSBwaHlzaWNhbFBvaW50VG9Mb2dpY2FsKEZsb2F0UG9pbnQoY2VudGVyWCwgY2VudGVy
WSksIGxvZ2ljYWxCb3hIZWlnaHQsIHdyaXRpbmdNb2RlKTsKKyAgICAgICAgRmxvYXRTaXplIGxv
Z2ljYWxSYWRpaSA9IHBoeXNpY2FsU2l6ZVRvTG9naWNhbChGbG9hdFNpemUocmFkaXVzWCwgcmFk
aXVzWSksIHdyaXRpbmdNb2RlKTsKIAotICAgICAgICBleGNsdXNpb25TaGFwZSA9IGhvcml6b250
YWxXcml0aW5nTW9kZQotICAgICAgICAgICAgPyBjcmVhdGVFeGNsdXNpb25FbGxpcHNlKEZsb2F0
UG9pbnQoY2VudGVyWCwgY2VudGVyWSksIEZsb2F0U2l6ZShyYWRpdXNYLCByYWRpdXNZKSkKLSAg
ICAgICAgICAgIDogY3JlYXRlRXhjbHVzaW9uRWxsaXBzZShGbG9hdFBvaW50KGNlbnRlclksIGNl
bnRlclgpLCBGbG9hdFNpemUocmFkaXVzWSwgcmFkaXVzWCkpOwotICAgICAgICBleGNsdXNpb25T
aGFwZS0+bV9ib3VuZGluZ0JveCA9IEZsb2F0UmVjdChjZW50ZXJYIC0gcmFkaXVzWCwgY2VudGVy
WSAtIHJhZGl1c1ksIHJhZGl1c1ggKiAyLCByYWRpdXNZICogMik7CisgICAgICAgIGV4Y2x1c2lv
blNoYXBlID0gY3JlYXRlRXhjbHVzaW9uRWxsaXBzZShsb2dpY2FsQ2VudGVyLCBsb2dpY2FsUmFk
aWkpOworICAgICAgICBleGNsdXNpb25TaGFwZS0+bV9ib3VuZGluZ0JveCA9IEZsb2F0UmVjdChs
b2dpY2FsQ2VudGVyIC0gbG9naWNhbFJhZGlpLCBsb2dpY2FsUmFkaWkgKyBsb2dpY2FsUmFkaWkp
OwogICAgICAgICBicmVhazsKICAgICB9CiAKQEAgLTEzNyw3ICsxNTcsNyBAQCBQYXNzT3duUHRy
PEV4Y2x1c2lvblNoYXBlPiBFeGNsdXNpb25TaGFwZTo6Y3JlYXRlRXhjbHVzaW9uU2hhcGUoY29u
c3QgQmFzaWNTaGFwZQogICAgICAgICAgICAgRmxvYXRQb2ludCB2ZXJ0ZXgoCiAgICAgICAgICAg
ICAgICAgZmxvYXRWYWx1ZUZvckxlbmd0aCh2YWx1ZXMuYXQoaSksIGJveFdpZHRoKSwKICAgICAg
ICAgICAgICAgICBmbG9hdFZhbHVlRm9yTGVuZ3RoKHZhbHVlcy5hdChpICsgMSksIGJveEhlaWdo
dCkpOwotICAgICAgICAgICAgKCp2ZXJ0aWNlcylbaSAvIDJdID0gaG9yaXpvbnRhbFdyaXRpbmdN
b2RlID8gdmVydGV4IDogdmVydGV4LnRyYW5zcG9zZWRQb2ludCgpOworICAgICAgICAgICAgKCp2
ZXJ0aWNlcylbaSAvIDJdID0gcGh5c2ljYWxQb2ludFRvTG9naWNhbCh2ZXJ0ZXgsIGxvZ2ljYWxC
b3hIZWlnaHQsIHdyaXRpbmdNb2RlKTsKICAgICAgICAgICAgIGlmICghaSkKICAgICAgICAgICAg
ICAgICBib3VuZGluZ0JveC5zZXRMb2NhdGlvbih2ZXJ0ZXgpOwogICAgICAgICAgICAgZWxzZQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0V4Y2x1c2lvblNoYXBlLmggYi9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvRXhjbHVzaW9uU2hhcGUuaAppbmRleCAzNmRjMWI2My4u
YjJkYTNjNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0V4Y2x1c2lvblNo
YXBlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0V4Y2x1c2lvblNoYXBlLmgKQEAg
LTY5LDEyICs2OSw2IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgZ2V0RXhjbHVkZWRJbnRl
cnZhbHMoZmxvYXQgbG9naWNhbFRvcCwgZmxvYXQgbG9naWNhbEhlaWdodCwgU2VnbWVudExpc3Qm
KSBjb25zdCA9IDA7CiAgICAgdmlydHVhbCBib29sIGZpcnN0SW5jbHVkZWRJbnRlcnZhbExvZ2lj
YWxUb3AoZmxvYXQgbWluTG9naWNhbEludGVydmFsVG9wLCBjb25zdCBGbG9hdFNpemUmIG1pbkxv
Z2ljYWxJbnRlcnZhbFNpemUsIGZsb2F0JiByZXN1bHQpIGNvbnN0ID0gMDsKIAotcHJvdGVjdGVk
OgotICAgIGZsb2F0IG1pbllGb3JMb2dpY2FsTGluZShmbG9hdCBsb2dpY2FsVG9wLCBmbG9hdCBs
b2dpY2FsSGVpZ2h0KSBjb25zdCB7IHJldHVybiBpc0ZsaXBwZWRCbG9ja3NXcml0aW5nTW9kZSht
X3dyaXRpbmdNb2RlKSA/IG1fbG9naWNhbEJveEhlaWdodCAtIGxvZ2ljYWxUb3AgLSBsb2dpY2Fs
SGVpZ2h0IDogbG9naWNhbFRvcDsgfQotICAgIGZsb2F0IG1heFlGb3JMb2dpY2FsTGluZShmbG9h
dCBsb2dpY2FsVG9wLCBmbG9hdCBsb2dpY2FsSGVpZ2h0KSBjb25zdCB7IHJldHVybiAgaXNGbGlw
cGVkQmxvY2tzV3JpdGluZ01vZGUobV93cml0aW5nTW9kZSkgPyBtX2xvZ2ljYWxCb3hIZWlnaHQg
LSBsb2dpY2FsVG9wIDogbG9naWNhbFRvcCArIGxvZ2ljYWxIZWlnaHQ7IH0KLSAgICBGbG9hdFJl
Y3QgaW50ZXJuYWxUb0xvZ2ljYWxCb3VuZGluZ0JveChjb25zdCBGbG9hdFJlY3QmIHIpIGNvbnN0
IHsgcmV0dXJuIGlzRmxpcHBlZEJsb2Nrc1dyaXRpbmdNb2RlKG1fd3JpdGluZ01vZGUpID8gRmxv
YXRSZWN0KHIueCgpLCBtX2xvZ2ljYWxCb3hIZWlnaHQgLSByLm1heFkoKSwgci53aWR0aCgpLCBy
LmhlaWdodCgpKSA6IHI7IH0KLSAgICBmbG9hdCBsb2dpY2FsVG9wRm9yTWluWShmbG9hdCBtaW5Z
LCBmbG9hdCBsb2dpY2FsSGVpZ2h0KSBjb25zdCB7IHJldHVybiBpc0ZsaXBwZWRCbG9ja3NXcml0
aW5nTW9kZShtX3dyaXRpbmdNb2RlKSA/IG1fbG9naWNhbEJveEhlaWdodCAtIG1pblkgLSBsb2dp
Y2FsSGVpZ2h0IDogbWluWTsgfQotCiBwcml2YXRlOgogICAgIFdyaXRpbmdNb2RlIG1fd3JpdGlu
Z01vZGU7CiAgICAgZmxvYXQgbV9sb2dpY2FsQm94V2lkdGg7Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>