<?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>26499</bug_id>
          
          <creation_ts>2009-06-17 16:37:24 -0700</creation_ts>
          <short_desc>Support hardware acceleration of &lt;video&gt;</short_desc>
          <delta_ts>2009-06-18 11:53:03 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Layout and Rendering</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Mac</rep_platform>
          <op_sys>OS X 10.5</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Simon Fraser (smfr)">simon.fraser</reporter>
          <assigned_to name="Simon Fraser (smfr)">simon.fraser</assigned_to>
          <cc>dino</cc>
    
    <cc>eric.carlson</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>126597</commentid>
    <comment_count>0</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2009-06-17 16:37:24 -0700</bug_when>
    <thetext>We should support hardware acceleration of &lt;video&gt; presentation, when ACCELERATED_COMPOSITING is enabled.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>126603</commentid>
    <comment_count>1</comment_count>
      <attachid>31468</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2009-06-17 16:57:20 -0700</bug_when>
    <thetext>Created attachment 31468
Step 1 patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>126620</commentid>
    <comment_count>2</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2009-06-17 17:37:26 -0700</bug_when>
    <thetext>&lt;rdar://problem/6978729&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>126624</commentid>
    <comment_count>3</comment_count>
      <attachid>31468</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2009-06-17 17:53:42 -0700</bug_when>
    <thetext>Comment on attachment 31468
Step 1 patch

&gt; +    virtual bool requiresLayer() const { return true; }
&gt; +    virtual bool isVideo() const { return true; }

These should be private. For example, if anyone calls isVideo() on a RenderVideo you want the compile to fail so they don&apos;t create unneeded dead code.

Of course, most of the other virtual functions should be private too for the same reason.

Are those extra virtual calls in isSelfPaintingLayer() getting out of hand?

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>126631</commentid>
    <comment_count>4</comment_count>
      <attachid>31481</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2009-06-17 18:41:49 -0700</bug_when>
    <thetext>Created attachment 31481
Step 2: hook up the MediaPlayer with the layer compositing system</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>126634</commentid>
    <comment_count>5</comment_count>
      <attachid>31468</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2009-06-17 18:50:33 -0700</bug_when>
    <thetext>Comment on attachment 31468
Step 1 patch

Committed in http://trac.webkit.org/changeset/44794</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>126737</commentid>
    <comment_count>6</comment_count>
      <attachid>31481</attachid>
    <who name="Dave Hyatt">hyatt</who>
    <bug_when>2009-06-18 11:12:20 -0700</bug_when>
    <thetext>Comment on attachment 31481
Step 2: hook up the MediaPlayer with the layer compositing system

r=me, make sure the VIDEO ifdefs are properly around everything.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>126744</commentid>
    <comment_count>7</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2009-06-18 11:53:03 -0700</bug_when>
    <thetext>http://trac.webkit.org/changeset/44809</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>31468</attachid>
            <date>2009-06-17 16:57:20 -0700</date>
            <delta_ts>2009-06-17 18:50:33 -0700</delta_ts>
            <desc>Step 1 patch</desc>
            <filename>26499_patch.txt</filename>
            <type>text/plain</type>
            <size>12643</size>
            <attacher name="Simon Fraser (smfr)">simon.fraser</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCA5MWFiMjNhLi4yOTE4ZWJiIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTggQEAKKzIwMDktMDYt
MTcgIFNpbW9uIEZyYXNlciAgPHNpbW9uLmZyYXNlckBhcHBsZS5jb20+CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisgICAgICAgIAorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjY0OTkKKyAgICAgICAgCisgICAgICAgIE5ldyBl
eHBlY3RlZCByZXN1bHRzIGFmdGVyIG1ha2luZyA8dmlkZW8+IGVsZW1lbnRzIGdldCBSZW5kZXJM
YXllcnMuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvbWVkaWEvdmlkZW8tYXNwZWN0LXJhdGlv
LWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvbWVkaWEvdmlkZW8tY29udHJv
bHMtcmVuZGVyaW5nLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvbWVkaWEv
dmlkZW8tZGlzcGxheS10b2dnbGUtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHBsYXRmb3JtL21h
Yy9tZWRpYS92aWRlby1lbXB0eS1zb3VyY2UtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHBsYXRm
b3JtL21hYy9tZWRpYS92aWRlby16b29tLWNvbnRyb2xzLWV4cGVjdGVkLnR4dDoKKyAgICAgICAg
KiBwbGF0Zm9ybS9tYWMvbWVkaWEvdmlkZW8tem9vbS1leHBlY3RlZC50eHQ6CisKIDIwMDktMDYt
MTYgIFhhbiBMb3BleiAgPHhsb3BlekBpZ2FsaWEuY29tPgogCiAgICAgICAgIERpc2FibGUgYW5v
dGhlciBuZXcgdGVzdC4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9tZWRp
YS92aWRlby1hc3BlY3QtcmF0aW8tZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0v
bWFjL21lZGlhL3ZpZGVvLWFzcGVjdC1yYXRpby1leHBlY3RlZC50eHQKaW5kZXggYmVjM2FmZC4u
ZmFhMDc1YSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL21lZGlhL3ZpZGVv
LWFzcGVjdC1yYXRpby1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFj
L21lZGlhL3ZpZGVvLWFzcGVjdC1yYXRpby1leHBlY3RlZC50eHQKQEAgLTcsMTkgKzcsMjUgQEAg
bGF5ZXIgYXQgKDAsMCkgc2l6ZSA4MDB4NjAwCiAgICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBh
dCAoMCwwKSBzaXplIDYyM3gxOAogICAgICAgICAgIHRleHQgcnVuIGF0ICgwLDApIHdpZHRoIDYy
MzogIlRlc3QgdmlkZW8gc2l6aW5nLiBZb3Ugc2hvdWxkIHNlZSBvbmUgYmlnZ2VyIGltYWdlIChw
YXVzZWQgdmlkZW8pIGFuZCA3IHNtYWxsIG9uZXMgb2YgMS80IGl0cyBzaXplLiIKICAgICAgIFJl
bmRlckJsb2NrIChhbm9ueW1vdXMpIGF0ICgwLDM0KSBzaXplIDc4NHg0ODAKLSAgICAgICAgUmVu
ZGVyVmlkZW8ge1ZJREVPfSBhdCAoMCwwKSBzaXplIDMyMHgyNDAKICAgICAgICAgUmVuZGVyQlIg
e0JSfSBhdCAoMzIwLDI0MCkgc2l6ZSAweDAKLSAgICAgICAgUmVuZGVyVmlkZW8ge1ZJREVPfSBh
dCAoMCwyNDApIHNpemUgMTYweDEyMAogICAgICAgICBSZW5kZXJCbG9jayB7RElWfSBhdCAoMTYw
LDI0MCkgc2l6ZSAzMjB4MTIwCi0gICAgICAgICAgUmVuZGVyVmlkZW8ge1ZJREVPfSBhdCAoMCww
KSBzaXplIDE2MHgxMjAKLSAgICAgICAgICBSZW5kZXJWaWRlbyB7VklERU99IGF0ICgxNjAsMCkg
c2l6ZSAxNjB4MTIwCiAgICAgICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICgwLDApIHNpemUg
MHgwCiAgICAgICAgIFJlbmRlckJsb2NrIHtESVZ9IGF0ICgwLDM2MCkgc2l6ZSAzMjB4MTIwCi0g
ICAgICAgICAgUmVuZGVyVmlkZW8ge1ZJREVPfSBhdCAoMCwwKSBzaXplIDE2MHgxMjAKLSAgICAg
ICAgICBSZW5kZXJWaWRlbyB7VklERU99IGF0ICgxNjAsMCkgc2l6ZSAxNjB4MTIwCiAgICAgICAg
ICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICgwLDApIHNpemUgMHgwCiAgICAgICAgIFJlbmRlclRl
eHQgeyN0ZXh0fSBhdCAoMCwwKSBzaXplIDB4MAogICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0g
YXQgKDAsMCkgc2l6ZSAweDAKK2xheWVyIGF0ICg4LDQyKSBzaXplIDMyMHgyNDAKKyAgUmVuZGVy
VmlkZW8ge1ZJREVPfSBhdCAoMCwwKSBzaXplIDMyMHgyNDAKK2xheWVyIGF0ICg4LDI4Mikgc2l6
ZSAxNjB4MTIwCisgIFJlbmRlclZpZGVvIHtWSURFT30gYXQgKDAsMjQwKSBzaXplIDE2MHgxMjAK
K2xheWVyIGF0ICgxNjgsMjgyKSBzaXplIDE2MHgxMjAKKyAgUmVuZGVyVmlkZW8ge1ZJREVPfSBh
dCAoMCwwKSBzaXplIDE2MHgxMjAKK2xheWVyIGF0ICgzMjgsMjgyKSBzaXplIDE2MHgxMjAKKyAg
UmVuZGVyVmlkZW8ge1ZJREVPfSBhdCAoMTYwLDApIHNpemUgMTYweDEyMAorbGF5ZXIgYXQgKDgs
NDAyKSBzaXplIDE2MHgxMjAKKyAgUmVuZGVyVmlkZW8ge1ZJREVPfSBhdCAoMCwwKSBzaXplIDE2
MHgxMjAKK2xheWVyIGF0ICgxNjgsNDAyKSBzaXplIDE2MHgxMjAKKyAgUmVuZGVyVmlkZW8ge1ZJ
REVPfSBhdCAoMTYwLDApIHNpemUgMTYweDEyMAogbGF5ZXIgYXQgKDMyOCw0MDIpIHNpemUgMzIw
eDEyMAogICBSZW5kZXJCbG9jayAocmVsYXRpdmUgcG9zaXRpb25lZCkge0RJVn0gYXQgKDMyMCwz
NjApIHNpemUgMzIweDEyMAogbGF5ZXIgYXQgKDMyOCw0MDIpIHNpemUgMTYweDEyMApkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL21lZGlhL3ZpZGVvLWNvbnRyb2xzLXJlbmRl
cmluZy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvbWVkaWEvdmlkZW8t
Y29udHJvbHMtcmVuZGVyaW5nLWV4cGVjdGVkLnR4dAppbmRleCBiMGI5NDdjLi4xOTI0NTQ2IDEw
MDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvbWVkaWEvdmlkZW8tY29udHJvbHMt
cmVuZGVyaW5nLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvbWVk
aWEvdmlkZW8tY29udHJvbHMtcmVuZGVyaW5nLWV4cGVjdGVkLnR4dApAQCAtNywxMyArNywxNSBA
QCBsYXllciBhdCAoMCwwKSBzaXplIDc4NXg2MDAKICAgICAgICAgUmVuZGVyVGV4dCB7I3RleHR9
IGF0ICgwLDApIHNpemUgMTUzeDE4CiAgICAgICAgICAgdGV4dCBydW4gYXQgKDAsMCkgd2lkdGgg
MTUzOiAiVGVzdCBjb250cm9scyBwbGFjZW1lbnQuIgogICAgICAgUmVuZGVyQmxvY2sge0RJVn0g
YXQgKDAsMzQpIHNpemUgNzY5eDI0MAotICAgICAgICBSZW5kZXJWaWRlbyB7VklERU99IGF0ICgw
LDApIHNpemUgMzIweDI0MAogICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDAsMCkgc2l6
ZSAweDAKICAgICAgIFJlbmRlckJsb2NrIHtESVZ9IGF0ICgwLDI3NCkgc2l6ZSA3Njl4MjQwCi0g
ICAgICAgIFJlbmRlclZpZGVvIHtWSURFT30gYXQgKDAsMCkgc2l6ZSAzMjB4MjQwCiAgICAgICAg
IFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMCwwKSBzaXplIDB4MAogICAgICAgUmVuZGVyQmxvY2sg
e0RJVn0gYXQgKDAsNTE0KSBzaXplIDc2OXgwCiBsYXllciBhdCAoOCw0Mikgc2l6ZSAzMjB4MjQw
CisgIFJlbmRlclZpZGVvIHtWSURFT30gYXQgKDAsMCkgc2l6ZSAzMjB4MjQwCitsYXllciBhdCAo
OCwyODIpIHNpemUgMzIweDI0MAorICBSZW5kZXJWaWRlbyB7VklERU99IGF0ICgwLDApIHNpemUg
MzIweDI0MAorbGF5ZXIgYXQgKDgsNDIpIHNpemUgMzIweDI0MAogICBSZW5kZXJCbG9jayAocmVs
YXRpdmUgcG9zaXRpb25lZCkge0RJVn0gYXQgKDAsMCkgc2l6ZSAzMjB4MjQwCiBsYXllciBhdCAo
OCw0Mikgc2l6ZSAzMjB4MjQwCiAgIFJlbmRlckJsb2NrIChwb3NpdGlvbmVkKSB7RElWfSBhdCAo
MCwwKSBzaXplIDMyMHgyNDAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9t
ZWRpYS92aWRlby1kaXNwbGF5LXRvZ2dsZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9wbGF0
Zm9ybS9tYWMvbWVkaWEvdmlkZW8tZGlzcGxheS10b2dnbGUtZXhwZWN0ZWQudHh0CmluZGV4IDMy
ZGU5NzQuLjgwOGU2N2YgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9tZWRp
YS92aWRlby1kaXNwbGF5LXRvZ2dsZS1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvcGxh
dGZvcm0vbWFjL21lZGlhL3ZpZGVvLWRpc3BsYXktdG9nZ2xlLWV4cGVjdGVkLnR4dApAQCAtNiwx
MSArNiwxMiBAQCBsYXllciBhdCAoMCwwKSBzaXplIDgwMHg2MDAKICAgICAgIFJlbmRlclRleHQg
eyN0ZXh0fSBhdCAoMCwwKSBzaXplIDQ5M3gxOAogICAgICAgICB0ZXh0IHJ1biBhdCAoMCwwKSB3
aWR0aCA0OTM6ICJUaGlzIHRlc3RzIHRoYXQgdG9nZ2xpbmcgdGhlIGRpc3BsYXkgcHJvcGVydHkg
d29uJ3QgbWFrZSB0aGUgY29udHJvbHMgZGlzYXBwZWFyLiIKICAgICAgIFJlbmRlckJSIHtCUn0g
YXQgKDQ5MywxNCkgc2l6ZSAweDAKLSAgICAgIFJlbmRlclZpZGVvIHtWSURFT30gYXQgKDAsMTgp
IHNpemUgMzIweDI0MAogICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICgwLDApIHNpemUgMHgw
CiAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDAsMCkgc2l6ZSAweDAKICAgICAgIFJlbmRl
clRleHQgeyN0ZXh0fSBhdCAoMCwwKSBzaXplIDB4MAogbGF5ZXIgYXQgKDgsMjYpIHNpemUgMzIw
eDI0MAorICBSZW5kZXJWaWRlbyB7VklERU99IGF0ICgwLDE4KSBzaXplIDMyMHgyNDAKK2xheWVy
IGF0ICg4LDI2KSBzaXplIDMyMHgyNDAKICAgUmVuZGVyQmxvY2sgKHJlbGF0aXZlIHBvc2l0aW9u
ZWQpIHtESVZ9IGF0ICgwLDApIHNpemUgMzIweDI0MAogbGF5ZXIgYXQgKDgsMjYpIHNpemUgMzIw
eDI0MAogICBSZW5kZXJCbG9jayAocG9zaXRpb25lZCkge0RJVn0gYXQgKDAsMCkgc2l6ZSAzMjB4
MjQwCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvbWVkaWEvdmlkZW8tZW1w
dHktc291cmNlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9tZWRpYS92
aWRlby1lbXB0eS1zb3VyY2UtZXhwZWN0ZWQudHh0CmluZGV4IDA0NzU0MGYuLjg4Yzk3NDkgMTAw
NjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9tZWRpYS92aWRlby1lbXB0eS1zb3Vy
Y2UtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9tZWRpYS92aWRl
by1lbXB0eS1zb3VyY2UtZXhwZWN0ZWQudHh0CkBAIC03LDEwICs3LDExIEBAIGxheWVyIGF0ICgw
LDApIHNpemUgODAweDYwMAogICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDAsMCkgc2l6
ZSA0MzB4MTgKICAgICAgICAgICB0ZXh0IHJ1biBhdCAoMCwwKSB3aWR0aCA0MzA6ICJTbGlkZXIg
ZHJhd2luZyB3aXRoIG5vIHNvdXJjZS4gVGhlIGNvbnRyb2xzIHNob3VsZCByZW5kZXIgY29ycmVj
dGx5LiIKICAgICAgIFJlbmRlckJsb2NrIChhbm9ueW1vdXMpIGF0ICgwLDM0KSBzaXplIDc4NHgx
NTIKLSAgICAgICAgUmVuZGVyVmlkZW8ge1ZJREVPfSBhdCAoMCwwKSBzaXplIDMwMngxNTIgW2Jv
cmRlcjogKDFweCBzb2xpZCAjMDAwMDAwKV0KICAgICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0
ICgwLDApIHNpemUgMHgwCiAgICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMCwwKSBzaXpl
IDB4MAogICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDAsMCkgc2l6ZSAweDAKK2xheWVy
IGF0ICg4LDQyKSBzaXplIDMwMngxNTIKKyAgUmVuZGVyVmlkZW8ge1ZJREVPfSBhdCAoMCwwKSBz
aXplIDMwMngxNTIgW2JvcmRlcjogKDFweCBzb2xpZCAjMDAwMDAwKV0KIGxheWVyIGF0ICg5LDQz
KSBzaXplIDMwMHgxNTAKICAgUmVuZGVyQmxvY2sgKHJlbGF0aXZlIHBvc2l0aW9uZWQpIHtESVZ9
IGF0ICgxLDEpIHNpemUgMzAweDE1MAogbGF5ZXIgYXQgKDksNDMpIHNpemUgMzAweDE1MApkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL21lZGlhL3ZpZGVvLXpvb20tY29udHJv
bHMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL21lZGlhL3ZpZGVvLXpv
b20tY29udHJvbHMtZXhwZWN0ZWQudHh0CmluZGV4IDg1ZGI5N2UuLjRlMmU3NTIgMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9tZWRpYS92aWRlby16b29tLWNvbnRyb2xzLWV4
cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvbWVkaWEvdmlkZW8tem9v
bS1jb250cm9scy1leHBlY3RlZC50eHQKQEAgLTYsNyArNiw4IEBAIGxheWVyIGF0ICgwLDApIHNp
emUgODAweDYwMAogICAgICAgUmVuZGVyQmxvY2sge1B9IGF0ICgwLDApIHNpemUgNzc2eDI4CiAg
ICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMCwwKSBzaXplIDI4MHgyOAogICAgICAgICAg
IHRleHQgcnVuIGF0ICgwLDApIHdpZHRoIDI4MDogIlpvb21lZCB2aWRlbyB3aXRoIGNvbnRyb2xz
LiIKLSAgICAgIFJlbmRlclZpZGVvIHtWSURFT30gYXQgKDQ1LDczKSBzaXplIDI0MHgxODAKK2xh
eWVyIGF0ICg1Nyw4NSkgc2l6ZSAyNDB4MTgwCisgIFJlbmRlclZpZGVvIHtWSURFT30gYXQgKDQ1
LDczKSBzaXplIDI0MHgxODAKIGxheWVyIGF0ICg1Nyw4NSkgc2l6ZSAyNDB4MTgwCiAgIFJlbmRl
ckJsb2NrIChyZWxhdGl2ZSBwb3NpdGlvbmVkKSB7RElWfSBhdCAoMCwwKSBzaXplIDI0MHgxODAK
IGxheWVyIGF0ICg1Nyw4NSkgc2l6ZSAyNDB4MTgwCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9w
bGF0Zm9ybS9tYWMvbWVkaWEvdmlkZW8tem9vbS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9w
bGF0Zm9ybS9tYWMvbWVkaWEvdmlkZW8tem9vbS1leHBlY3RlZC50eHQKaW5kZXggYTFkZmY0MS4u
MDI1OTM0YSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL21lZGlhL3ZpZGVv
LXpvb20tZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9tZWRpYS92
aWRlby16b29tLWV4cGVjdGVkLnR4dApAQCAtOSw3ICs5LDYgQEAgbGF5ZXIgYXQgKDAsMCkgc2l6
ZSA3ODV4ODQ0CiAgICAgICBSZW5kZXJCbG9jayAoYW5vbnltb3VzKSBhdCAoMCwzNCkgc2l6ZSA3
Njl4MzcyCiAgICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMCwzNTQpIHNpemUgNHgxOAog
ICAgICAgICAgIHRleHQgcnVuIGF0ICgwLDM1NCkgd2lkdGggNDogIiAiCi0gICAgICAgIFJlbmRl
clZpZGVvIHtWSURFT30gYXQgKDQsMCkgc2l6ZSA0ODh4MzY4IFtib3JkZXI6ICg0cHggc29saWQg
I0ZGMDAwMCldCiAgICAgICAgIFJlbmRlckJSIHtCUn0gYXQgKDQ5MiwzNjgpIHNpemUgMHgwCiAg
ICAgICBSZW5kZXJCbG9jayB7UH0gYXQgKDAsNDIyKSBzaXplIDc2OXgxOAogICAgICAgICBSZW5k
ZXJUZXh0IHsjdGV4dH0gYXQgKDAsMCkgc2l6ZSAzMDN4MTgKQEAgLTE3LDUgKzE2LDggQEAgbGF5
ZXIgYXQgKDAsMCkgc2l6ZSA3ODV4ODQ0CiAgICAgICBSZW5kZXJCbG9jayAoYW5vbnltb3VzKSBh
dCAoMCw0NTYpIHNpemUgNzY5eDM3MgogICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDAs
MzU0KSBzaXplIDR4MTgKICAgICAgICAgICB0ZXh0IHJ1biBhdCAoMCwzNTQpIHdpZHRoIDQ6ICIg
IgotICAgICAgICBSZW5kZXJWaWRlbyB7VklERU99IGF0ICg0LDApIHNpemUgNDg4eDM2OCBbYm9y
ZGVyOiAoNHB4IHNvbGlkICNGRjAwMDApXQogICAgICAgICBSZW5kZXJCUiB7QlJ9IGF0ICg0OTIs
MzY4KSBzaXplIDB4MAorbGF5ZXIgYXQgKDEyLDQyKSBzaXplIDQ4OHgzNjgKKyAgUmVuZGVyVmlk
ZW8ge1ZJREVPfSBhdCAoNCwwKSBzaXplIDQ4OHgzNjggW2JvcmRlcjogKDRweCBzb2xpZCAjRkYw
MDAwKV0KK2xheWVyIGF0ICgxMiw0NjQpIHNpemUgNDg4eDM2OAorICBSZW5kZXJWaWRlbyB7VklE
RU99IGF0ICg0LDApIHNpemUgNDg4eDM2OCBbYm9yZGVyOiAoNHB4IHNvbGlkICNGRjAwMDApXQpk
aWZmIC0tZ2l0IGEvV2ViQ29yZS9DaGFuZ2VMb2cgYi9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCBi
YTA5MjI5Li4yMTljYmI2IDEwMDY0NAotLS0gYS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9XZWJD
b3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI2IEBACisyMDA5LTA2LTE3ICBTaW1vbiBGcmFzZXIg
IDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorICAgICAgICAKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTI2NDk5CisgICAgICAgIAorICAgICAgICBGaXJzdCBzdGVwIHRvIG1ha2luZyB2
aWRlbyByZW5kZXJpbmcgYmUgaGFyZHdhcmUtYWNjZWxlcmF0ZWQ6CisgICAgICAgIG1ha2UgPHZp
ZGVvPiBlbGVtZW50cyBnZXQgc2VsZi1wYWludGluZyBSZW5kZXJMYXllcnMsIGFuZCBhZGQKKyAg
ICAgICAgYW4gaXNWaWRlbygpIHZpcnR1YWwgbWV0aG9kIHRvIFJlbmRlck9iamVjdC4KKworICAg
ICAgICAqIGh0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1M
TWVkaWFFbGVtZW50OjpzZXRSZWFkeVN0YXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxNZWRp
YUVsZW1lbnQ6Om1lZGlhUGxheWVyRHVyYXRpb25DaGFuZ2VkKToKKyAgICAgICAgKFdlYkNvcmU6
OkhUTUxNZWRpYUVsZW1lbnQ6Om1lZGlhUGxheWVyU2l6ZUNoYW5nZWQpOgorICAgICAgICAqIHJl
bmRlcmluZy9SZW5kZXJMYXllci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXllcjo6
c2hvdWxkQmVOb3JtYWxGbG93T25seSk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXllcjo6
aXNTZWxmUGFpbnRpbmdMYXllcik6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlck9iamVjdC5o
OgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyT2JqZWN0Ojppc1ZpZGVvKToKKyAgICAgICAgKiBy
ZW5kZXJpbmcvUmVuZGVyVmlkZW8uaDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclZpZGVvOjpy
ZXF1aXJlc0xheWVyKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclZpZGVvOjppc1ZpZGVvKToK
KwogMjAwOS0wNi0xNiAgU2ltb24gRnJhc2VyICA8c2ltb24uZnJhc2VyQGFwcGxlLmNvbT4KIAog
ICAgICAgICBObyBSZXZpZXcKZGlmZiAtLWdpdCBhL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVt
ZW50LmNwcCBiL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcAppbmRleCBiYjc5ODkw
Li43ZjAwZmUwIDEwMDY0NAotLS0gYS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHAK
KysrIGIvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwCkBAIC03MTAsNyArNzEwLDcg
QEAgdm9pZCBIVE1MTWVkaWFFbGVtZW50OjpzZXRSZWFkeVN0YXRlKE1lZGlhUGxheWVyOjpSZWFk
eVN0YXRlIHN0YXRlKQogICAgICAgICBzY2hlZHVsZUV2ZW50KGV2ZW50TmFtZXMoKS5sb2FkZWRt
ZXRhZGF0YUV2ZW50KTsKIAogI2lmICFFTkFCTEUoUExVR0lOX1BST1hZX0ZPUl9WSURFTykKLSAg
ICAgICAgaWYgKHJlbmRlcmVyKCkgJiYgIXJlbmRlcmVyKCktPmlzSW1hZ2UoKSkgeworICAgICAg
ICBpZiAocmVuZGVyZXIoKSAmJiByZW5kZXJlcigpLT5pc1ZpZGVvKCkpIHsKICAgICAgICAgICAg
IHN0YXRpY19jYXN0PFJlbmRlclZpZGVvKj4ocmVuZGVyZXIoKSktPnZpZGVvU2l6ZUNoYW5nZWQo
KTsKICAgICAgICAgfQogI2VuZGlmICAgICAgICAKQEAgLTEyNTYsNyArMTI1Niw3IEBAIHZvaWQg
SFRNTE1lZGlhRWxlbWVudDo6bWVkaWFQbGF5ZXJEdXJhdGlvbkNoYW5nZWQoTWVkaWFQbGF5ZXIq
KQogI2lmICFFTkFCTEUoUExVR0lOX1BST1hZX0ZPUl9WSURFTykKICAgICBpZiAocmVuZGVyZXIo
KSkgewogICAgICAgICByZW5kZXJlcigpLT51cGRhdGVGcm9tRWxlbWVudCgpOwotICAgICAgICBp
ZiAoIXJlbmRlcmVyKCktPmlzSW1hZ2UoKSkKKyAgICAgICAgaWYgKHJlbmRlcmVyKCktPmlzVmlk
ZW8oKSkKICAgICAgICAgICAgIHN0YXRpY19jYXN0PFJlbmRlclZpZGVvKj4ocmVuZGVyZXIoKSkt
PnZpZGVvU2l6ZUNoYW5nZWQoKTsKICAgICB9CiAjZW5kaWYgICAgICAgIApAQCAtMTI3Niw3ICsx
Mjc2LDcgQEAgdm9pZCBIVE1MTWVkaWFFbGVtZW50OjptZWRpYVBsYXllclNpemVDaGFuZ2VkKE1l
ZGlhUGxheWVyKikKIHsKICAgICBiZWdpblByb2Nlc3NpbmdNZWRpYVBsYXllckNhbGxiYWNrKCk7
CiAjaWYgIUVOQUJMRShQTFVHSU5fUFJPWFlfRk9SX1ZJREVPKQotICAgIGlmIChyZW5kZXJlcigp
ICYmICFyZW5kZXJlcigpLT5pc0ltYWdlKCkpCisgICAgaWYgKHJlbmRlcmVyKCkgJiYgcmVuZGVy
ZXIoKS0+aXNWaWRlbygpKQogICAgICAgICBzdGF0aWNfY2FzdDxSZW5kZXJWaWRlbyo+KHJlbmRl
cmVyKCkpLT52aWRlb1NpemVDaGFuZ2VkKCk7CiAjZW5kaWYgICAgICAgIAogICAgIGVuZFByb2Nl
c3NpbmdNZWRpYVBsYXllckNhbGxiYWNrKCk7CmRpZmYgLS1naXQgYS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJMYXllci5jcHAgYi9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5jcHAKaW5k
ZXggODFhZGU5ZS4uNWQ0YjQ3NSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
TGF5ZXIuY3BwCisrKyBiL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyLmNwcApAQCAtMzA0
NSw3ICszMDQ1LDcgQEAgdm9pZCBSZW5kZXJMYXllcjo6cmVwYWludEluY2x1ZGluZ05vbkNvbXBv
c2l0aW5nRGVzY2VuZGFudHMoUmVuZGVyQm94TW9kZWxPYmplY3QKIAogYm9vbCBSZW5kZXJMYXll
cjo6c2hvdWxkQmVOb3JtYWxGbG93T25seSgpIGNvbnN0CiB7Ci0gICAgcmV0dXJuIChyZW5kZXJl
cigpLT5oYXNPdmVyZmxvd0NsaXAoKSB8fCByZW5kZXJlcigpLT5oYXNSZWZsZWN0aW9uKCkgfHwg
cmVuZGVyZXIoKS0+aGFzTWFzaygpKSAmJgorICAgIHJldHVybiAocmVuZGVyZXIoKS0+aGFzT3Zl
cmZsb3dDbGlwKCkgfHwgcmVuZGVyZXIoKS0+aGFzUmVmbGVjdGlvbigpIHx8IHJlbmRlcmVyKCkt
Pmhhc01hc2soKSB8fCByZW5kZXJlcigpLT5pc1ZpZGVvKCkpICYmCiAgICAgICAgICAgICFyZW5k
ZXJlcigpLT5pc1Bvc2l0aW9uZWQoKSAmJgogICAgICAgICAgICAhcmVuZGVyZXIoKS0+aXNSZWxQ
b3NpdGlvbmVkKCkgJiYKICAgICAgICAgICAgIXJlbmRlcmVyKCktPmhhc1RyYW5zZm9ybSgpICYm
CkBAIC0zMDU0LDcgKzMwNTQsNyBAQCBib29sIFJlbmRlckxheWVyOjpzaG91bGRCZU5vcm1hbEZs
b3dPbmx5KCkgY29uc3QKIAogYm9vbCBSZW5kZXJMYXllcjo6aXNTZWxmUGFpbnRpbmdMYXllcigp
IGNvbnN0CiB7Ci0gICAgcmV0dXJuICFpc05vcm1hbEZsb3dPbmx5KCkgfHwgcmVuZGVyZXIoKS0+
aGFzUmVmbGVjdGlvbigpIHx8IHJlbmRlcmVyKCktPmhhc01hc2soKSB8fCByZW5kZXJlcigpLT5p
c1RhYmxlUm93KCk7CisgICAgcmV0dXJuICFpc05vcm1hbEZsb3dPbmx5KCkgfHwgcmVuZGVyZXIo
KS0+aGFzUmVmbGVjdGlvbigpIHx8IHJlbmRlcmVyKCktPmhhc01hc2soKSB8fCByZW5kZXJlcigp
LT5pc1RhYmxlUm93KCkgfHwgcmVuZGVyZXIoKS0+aXNWaWRlbygpOwogfQogCiB2b2lkIFJlbmRl
ckxheWVyOjpzdHlsZUNoYW5nZWQoU3R5bGVEaWZmZXJlbmNlIGRpZmYsIGNvbnN0IFJlbmRlclN0
eWxlKikKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck9iamVjdC5oIGIvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyT2JqZWN0LmgKaW5kZXggMDkwMWJmZi4uNTFlOTM1NSAxMDA2
NDQKLS0tIGEvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyT2JqZWN0LmgKKysrIGIvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyT2JqZWN0LmgKQEAgLTI3Myw2ICsyNzMsNyBAQCBwdWJsaWM6CiAgICAg
dmlydHVhbCBib29sIGlzVGV4dENvbnRyb2woKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQogICAg
IHZpcnR1YWwgYm9vbCBpc1RleHRBcmVhKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KICAgICB2
aXJ0dWFsIGJvb2wgaXNUZXh0RmllbGQoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQorICAgIHZp
cnR1YWwgYm9vbCBpc1ZpZGVvKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KICAgICB2aXJ0dWFs
IGJvb2wgaXNXaWRnZXQoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQogCiAgICAgYm9vbCBpc1Jv
b3QoKSBjb25zdCB7IHJldHVybiBkb2N1bWVudCgpLT5kb2N1bWVudEVsZW1lbnQoKSA9PSBtX25v
ZGU7IH0KZGlmZiAtLWdpdCBhL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclZpZGVvLmggYi9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJWaWRlby5oCmluZGV4IDQzYzFlN2IuLjRjYmIzMjggMTAwNjQ0
Ci0tLSBhL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclZpZGVvLmgKKysrIGIvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyVmlkZW8uaApAQCAtNDEsNiArNDEsOSBAQCBwdWJsaWM6CiAKICAgICB2aXJ0
dWFsIGNvbnN0IGNoYXIqIHJlbmRlck5hbWUoKSBjb25zdCB7IHJldHVybiAiUmVuZGVyVmlkZW8i
OyB9CiAKKyAgICB2aXJ0dWFsIGJvb2wgcmVxdWlyZXNMYXllcigpIGNvbnN0IHsgcmV0dXJuIHRy
dWU7IH0KKyAgICB2aXJ0dWFsIGJvb2wgaXNWaWRlbygpIGNvbnN0IHsgcmV0dXJuIHRydWU7IH0K
KwogICAgIHZpcnR1YWwgdm9pZCBwYWludFJlcGxhY2VkKFBhaW50SW5mbyYgcGFpbnRJbmZvLCBp
bnQgdHgsIGludCB0eSk7CiAKICAgICB2aXJ0dWFsIHZvaWQgbGF5b3V0KCk7Cg==
</data>
<flag name="review"
          id="16123"
          type_id="1"
          status="+"
          setter="darin"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>31481</attachid>
            <date>2009-06-17 18:41:49 -0700</date>
            <delta_ts>2009-06-18 11:12:20 -0700</delta_ts>
            <desc>Step 2: hook up the MediaPlayer with the layer compositing system</desc>
            <filename>26499_patch2.txt</filename>
            <type>text/plain</type>
            <size>32807</size>
            <attacher name="Simon Fraser (smfr)">simon.fraser</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
MjE5Y2JiNi4uMzJjNzhlMyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvV2Vi
Q29yZS9DaGFuZ2VMb2cKQEAgLTQsNiArNCwxMjQgQEAKICAgICAgICAgCiAgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yNjQ5OQogICAgICAgICAKKyAgICAg
ICAgU3VwcG9ydCBoYXJkd2FyZS1hY2NlbGVyYXRpb25lZCByZW5kZXJpbmcgb2YgdmlkZW8gZWxl
bWVudHMuCisKKyAgICAgICAgKiBodG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6SFRNTE1lZGlhRWxlbWVudDo6bWVkaWFQbGF5ZXJTYXdVbnN1cHBvcnRlZFRyYWNr
cyk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50OjptZWRpYVBsYXllclJlcGFp
bnQpOgorICAgICAgICBKdXN0IG1vdmUgdGhlc2UgbWV0aG9kcyB0byBncm91cCB0aGUgcmVuZGVy
LXJlbGF0ZWQgbWV0aG9kcyB0b2dldGhlci4KKyAgICAgICAgCisgICAgICAgIChXZWJDb3JlOjpI
VE1MTWVkaWFFbGVtZW50OjptZWRpYVBsYXllclJlbmRlcmluZ0NhbkJlQWNjZWxlcmF0ZWQpOgor
ICAgICAgICBDYWxsIG91dCBtZXRob2QgdG8gYXNrIHRoZSBSZW5kZXJMYXllckNvbXBvc2l0b3Ig
aWYgcHJlc2VudGF0aW9uIG9mIHRoaXMgdmlkZW8KKyAgICAgICAgY2FuIGJlIGFjY2xlcmF0ZWQu
IEl0IG1pZ2h0IHNheSBubywgaWYsIGZvciBleGFtcGxlLCB0aGUgdmlkZW8gaGFzIGEgcmVmbGVj
dGlvbi4KKyAgICAgICAgCisgICAgICAgIChXZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50OjptZWRp
YVBsYXllckdyYXBoaWNzTGF5ZXIpOgorICAgICAgICBGZXRjaCB0aGUgR3JhcGhpY3NMYXllciBm
cm9tIHRoZSBSZW5kZXJWaWRlbyB0aGF0IHdpbGwgaG9zdCB0aGUgbW92aWUgbGF5ZXIuCisgICAg
ICAgIAorICAgICAgICAqIGh0bWwvSFRNTE1lZGlhRWxlbWVudC5oOgorICAgICAgICBSZW9yZGVy
ZWQgdGhlIHJlbmRlcmluZy1yZWxhdGVkIG1ldGhvZHMsIGFuZCBhZGRlZCB0d28gbWV0aG9kcyBy
ZWxhdGVkIHRvIHZpZGVvCisgICAgICAgIGFjY2VsZXJhdGlvbi4KKyAgICAgICAgCisgICAgICAg
ICogcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
TWVkaWFQbGF5ZXI6OmFjY2VsZXJhdGVkUmVuZGVyaW5nU3RhdGVDaGFuZ2VkKToKKyAgICAgICAg
Q2FsbGVkIGJ5IHRoZSByZW5kZXJpbmcgc3lzdGVtIHdoZW4gaXQgZGV0ZXJtaW5lcyB0aGF0IHRo
ZSB2aWRlbyBtdXN0IGdvIGludG8sIG9yCisgICAgICAgIGZhbGwgb2ZmIG9mIHRoZSBoYXJkd2Fy
ZS1hY2NlbGVyYXRlZCBwYXRoLgorICAgICAgICAKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxh
eWVyOjpzdXBwb3J0c0FjY2VsZXJhdGVkUmVuZGVyaW5nKToKKyAgICAgICAgTWV0aG9kIHRvIHNh
eSB3aGV0aGVyIHRoZSBtZWRpYSBlbmdpbmUgc3VwcG9ydHMgYWNjZWxlcmF0ZWQgcmVuZGVyaW5n
LgorICAgICAgICAKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllci5oOgor
ICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJDbGllbnQ6Om1lZGlhUGxheWVyUmVwYWludCk6
CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllckNsaWVudDo6bWVkaWFQbGF5ZXJTaXplQ2hh
bmdlZCk6CisgICAgICAgIE1vdmVkLgorICAgICAgICAKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlh
UGxheWVyQ2xpZW50OjptZWRpYVBsYXllclJlbmRlcmluZ0NhbkJlQWNjZWxlcmF0ZWQpOgorICAg
ICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJDbGllbnQ6Om1lZGlhUGxheWVyR3JhcGhpY3NMYXll
cik6CisgICAgICAgIE5ldyBtZXRob2RzIHRvIGFzayB0aGUgY2xpZW50IGlmIHRoZSByZW5kZXJp
bmcgc3lzdGVtIGNhbiBzdXBwb3J0IGFjY2VsZXJhdGVkCisgICAgICAgIHJlbmRlcmluZywgYW5k
IHRvIGdldCBhIEdyYXBoaWNzTGF5ZXIgdG8gcGx1ZyB0aGUgbW92aWUgbGF5ZXIgaW50by4KKyAg
ICAgICAgCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXJQcml2YXRlLmg6
CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVJbnRlcmZhY2U6OnN1cHBvcnRz
QWNjZWxlcmF0ZWRSZW5kZXJpbmcpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2
YXRlSW50ZXJmYWNlOjphY2NlbGVyYXRlZFJlbmRlcmluZ1N0YXRlQ2hhbmdlZCk6CisgICAgICAg
IEZvcndhcmRpbmcgbWV0aG9kcyBmcm9tIE1lZGlhUGxheWVyLgorICAgICAgICAKKyAgICAgICAg
KiBwbGF0Zm9ybS9ncmFwaGljcy9tYWMvTWVkaWFQbGF5ZXJQcml2YXRlUVRLaXQuaDoKKyAgICAg
ICAgU29tZSBuZXcgbWV0aG9kcyByZWxhdGVkIHRvIHVzaW5nIGEgUVRNb3ZpZUxheWVyLCBhbmQg
dG8gc2ltcGxpZnkgdGhlIHJlbmRlcmluZyBtb2RlIGxvZ2ljLgorCisgICAgICAgICogcGxhdGZv
cm0vZ3JhcGhpY3MvbWFjL01lZGlhUGxheWVyUHJpdmF0ZVFUS2l0Lm1tOgorICAgICAgICAoV2Vi
Q29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlOjpjcmVhdGVRVE1vdmllTGF5ZXIpOgorICAgICAgICAo
V2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlOjpkZXN0cm95UVRNb3ZpZUxheWVyKToKKyAgICAg
ICAgTWV0aG9kcyB0byBjcmVhdGUgYW5kIGRlc3Ryb3kgdGhlIFFUTW92aWVMYXllci4KKyAgICAg
ICAgCisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGU6OmN1cnJlbnRSZW5kZXJp
bmdNb2RlKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZTo6cHJlZmVycmVk
UmVuZGVyaW5nTW9kZSk6CisgICAgICAgIE1ldGhvZHMgdG8gY2xhcmlmeSB0aGUgY29kZSB0aGF0
IGRlY2lkZXMgd2hpY2ggb2YgdGhlIDMgcmVuZGVyaW5nIG1vZGVzIHRvIHVzZS4KKyAgICAgICAg
CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGU6OnNldFVwVmlkZW9SZW5kZXJp
bmcpOgorICAgICAgICBDaGFuZ2VkIHRvIHVzZSB0aGUgbmV3IHJlbmRlcmluZyBtb2RlIG1ldGhv
ZHMuCisgICAgICAgIAorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlOjp0ZWFy
RG93blZpZGVvUmVuZGVyaW5nKToKKyAgICAgICAgRGVzdHJveSB0aGUgbGF5ZXIgaWYgd2UgaGF2
ZSBvbmUuCisgICAgICAgIAorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlOjpo
YXNTZXRVcFZpZGVvUmVuZGVyaW5nKToKKyAgICAgICAgU21hbGwgdXRpbGl0eSBtZXRob2QuCisg
ICAgICAgIAorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlOjp1cGRhdGVTdGF0
ZXMpOgorICAgICAgICBNb3ZlIHRoZSBjYWxsIHRvIHNldFVwVmlkZW9SZW5kZXJpbmcoKSB0byBi
ZWZvcmUgd2Ugc2VuZCBvdXQgdGhlIHN0YXRlIG5vdGlmaWNhdGlvbnMsCisgICAgICAgIHNvIHRo
YXQgd2Ugd2lsbCBoYXZlIGNyZWF0ZWQgdGhlIHJlbmRlcmluZyBvYmplY3RzIGFscmVhZHkuCisg
ICAgICAgIAorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlOjpzdXBwb3J0c0Fj
Y2VsZXJhdGVkUmVuZGVyaW5nKToKKyAgICAgICAgUmV0dXJuIHRydWUgaWYgd2UgaGF2ZSBRVE1v
dmllTGF5ZXIuCisgICAgICAgIAorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRl
OjphY2NlbGVyYXRlZFJlbmRlcmluZ1N0YXRlQ2hhbmdlZCk6CisgICAgICAgIFdlJ3ZlIGJlZW4g
dG9sZCB0aGF0IHdlIHdlbnQgaW50byBvciBvdXQgb2YgYWNjZWxlcmF0ZWQgbW9kZTsgbWF5YmUg
cmVzZXQKKyAgICAgICAgdGhlIHJlbmRlcmVyLCBhbmQgc2V0IHRoZSBsYXllciBpZiB3ZSBoYXZl
IHRvLgorICAgICAgICAKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyTGF5ZXIuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXI6OnJlbmRlcmVyQ29udGVudENoYW5nZWQpOgorICAg
ICAgICBXZSBtYXkgbmVlZCB0byB1ZHBhdGUgY29tcG9zaXRpbmcgbGF5ZXJzIGlmIHRoZSB2aWRl
byB3ZW50IGludG8gYWNjZWxlcmF0ZWQgbW9kZS4KKyAgICAgICAgCisgICAgICAgICogcmVuZGVy
aW5nL1JlbmRlckxheWVyQmFja2luZy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXll
ckJhY2tpbmc6OmNhblVzZURpcmVjdENvbXBvc2l0aW5nKToKKyAgICAgICAgQWRkIHNtYXJ0cyB0
byBkZWFsIHdpdGggdmlkZW8sIHdoaWNoIGFsbG93cyB1cyB0byBhdm9pZCBleHRyYSBiYWNraW5n
IHN0b3JlLgorICAgICAgICAKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyQmFja2luZzo6
Y29udGVudHNCb3gpOgorICAgICAgICBVc2UgdGhlIHZpZGVvQm94IHRvIHVzZSB0aGUgY29udGVu
dCBsYXllciBmb3IgdmlkZW8gbGF5ZXJzLgorICAgICAgICAKKyAgICAgICAgKiByZW5kZXJpbmcv
UmVuZGVyTGF5ZXJDb21wb3NpdG9yLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVy
Q29tcG9zaXRvcjo6dXBkYXRlTGF5ZXJDb21wb3NpdGluZ1N0YXRlKToKKyAgICAgICAgUG9rZSB0
aGUgUmVuZGVyVmlkZW8gaWYgdGhlIHN0YXRlIGNoYW5nZWQuCisgICAgICAgIAorICAgICAgICAo
V2ViQ29yZTo6UmVuZGVyTGF5ZXJDb21wb3NpdG9yOjpjb21wdXRlQ29tcG9zaXRpbmdSZXF1aXJl
bWVudHMpOgorICAgICAgICBIYW5kbGUgYW4gZWRnZSBjYXNlIHdoZW4gdGhlIHZpZGVvIGVsZW1l
bnQgaXRzZWxmIGlzIGEgc3RhY2tpbmcgY29udGV4dAorICAgICAgICBiZWNhdXNlIG9mIG9wYWNp
dHkgb3IgdHJhbnNmb3JtLgorICAgICAgICAKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVy
Q29tcG9zaXRvcjo6Y2FuQWNjZWxlcmF0ZVZpZGVvUmVuZGVyaW5nKToKKyAgICAgICAgKFdlYkNv
cmU6OlJlbmRlckxheWVyQ29tcG9zaXRvcjo6cmVxdWlyZXNDb21wb3NpdGluZ0xheWVyKToKKyAg
ICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyQ29tcG9zaXRvcjo6cmVxdWlyZXNDb21wb3NpdGlu
Z0ZvclZpZGVvKToKKyAgICAgICAgQWxsb3cgdmlkZW8gdG8gdGhyb3cgdXMgaW50byBjb21wb3Np
dGluZyBtb2RlIGlmIHRoZSBtZWRpYSBlbmdpbmUgc3VwcG9ydHMgaXQuCisgICAgICAgIAorICAg
ICAgICAqIHJlbmRlcmluZy9SZW5kZXJMYXllckNvbXBvc2l0b3IuaDoKKyAgICAgICAgTmV3IG1l
dGhvZHMgcmVsYXRlZCB0byB2aWRlby4KKyAgICAgICAgCisgICAgICAgICogcmVuZGVyaW5nL1Jl
bmRlclZpZGVvLmg6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlclZpZGVvLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OlJlbmRlclZpZGVvOjp1cGRhdGVQbGF5ZXIpOgorICAgICAgICBDYWxsIHJl
bmRlcmVyQ29udGVudENoYW5nZWQoKSB0byBnaXZlIHRoZSBjb21wb3NpdG9yIGEgY2hhbmdlIHRv
IHRocm93IHRoZSB2aWRlbyBpbnRvCisgICAgICAgIGNvbXBvc2l0aW5nIG1vZGUuCisgICAgICAg
IAorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVmlkZW86OnN1cHBvcnRzQWNjZWxlcmF0ZWRSZW5k
ZXJpbmcpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVmlkZW86OmFjY2VsZXJhdGVkUmVuZGVy
aW5nU3RhdGVDaGFuZ2VkKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclZpZGVvOjp2aWRlb0dy
YXBoaWNzTGF5ZXIpOgorICAgICAgICBNZXRob2RzIHRvIGFsbG93IHRoZSBNZWRpYVBsYXllciB0
byBkbyByZW5kZXJpbmctcmVsYXRlZCBzdHVmZiB2aWEgdGhlIG1lZGlhIGVsZW1lbnQuCisgICAg
ICAgIAorCisyMDA5LTA2LTE3ICBTaW1vbiBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29t
PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorICAgICAgICAKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTI2NDk5CisgICAgICAg
IAogICAgICAgICBGaXJzdCBzdGVwIHRvIG1ha2luZyB2aWRlbyByZW5kZXJpbmcgYmUgaGFyZHdh
cmUtYWNjZWxlcmF0ZWQ6CiAgICAgICAgIG1ha2UgPHZpZGVvPiBlbGVtZW50cyBnZXQgc2VsZi1w
YWludGluZyBSZW5kZXJMYXllcnMsIGFuZCBhZGQKICAgICAgICAgYW4gaXNWaWRlbygpIHZpcnR1
YWwgbWV0aG9kIHRvIFJlbmRlck9iamVjdC4KZGlmZiAtLWdpdCBhL1dlYkNvcmUvV2ViQ29yZS54
Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2oKZGlmZiAtLWdpdCBhL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNw
cCBiL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcAppbmRleCA3ZjAwZmUwLi41YmZm
YzkwIDEwMDY0NAotLS0gYS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHAKKysrIGIv
V2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwCkBAIC01Nyw2ICs1NywxMSBAQAogI2lu
Y2x1ZGUgPHd0Zi9DdXJyZW50VGltZS5oPgogI2luY2x1ZGUgPHd0Zi9NYXRoRXh0cmFzLmg+CiAK
KyNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCisjaW5jbHVkZSAiUmVuZGVyVmlldy5o
IgorI2luY2x1ZGUgIlJlbmRlckxheWVyQ29tcG9zaXRvci5oIgorI2VuZGlmCisKICNpZiBFTkFC
TEUoUExVR0lOX1BST1hZX0ZPUl9WSURFTykKICNpbmNsdWRlICJSZW5kZXJQYXJ0T2JqZWN0Lmgi
CiAjaW5jbHVkZSAiV2lkZ2V0LmgiCkBAIC0xMjM0LDE0ICsxMjM5LDYgQEAgdm9pZCBIVE1MTWVk
aWFFbGVtZW50OjptZWRpYVBsYXllclRpbWVDaGFuZ2VkKE1lZGlhUGxheWVyKikKICAgICBlbmRQ
cm9jZXNzaW5nTWVkaWFQbGF5ZXJDYWxsYmFjaygpOwogfQogCi12b2lkIEhUTUxNZWRpYUVsZW1l
bnQ6Om1lZGlhUGxheWVyUmVwYWludChNZWRpYVBsYXllciopCi17Ci0gICAgYmVnaW5Qcm9jZXNz
aW5nTWVkaWFQbGF5ZXJDYWxsYmFjaygpOwotICAgIGlmIChyZW5kZXJlcigpKQotICAgICAgICBy
ZW5kZXJlcigpLT5yZXBhaW50KCk7Ci0gICAgZW5kUHJvY2Vzc2luZ01lZGlhUGxheWVyQ2FsbGJh
Y2soKTsKLX0KLQogdm9pZCBIVE1MTWVkaWFFbGVtZW50OjptZWRpYVBsYXllclZvbHVtZUNoYW5n
ZWQoTWVkaWFQbGF5ZXIqKQogewogICAgIGJlZ2luUHJvY2Vzc2luZ01lZGlhUGxheWVyQ2FsbGJh
Y2soKTsKQEAgLTEyNzIsNiArMTI2OSwyNiBAQCB2b2lkIEhUTUxNZWRpYUVsZW1lbnQ6Om1lZGlh
UGxheWVyUmF0ZUNoYW5nZWQoTWVkaWFQbGF5ZXIqKQogICAgIGVuZFByb2Nlc3NpbmdNZWRpYVBs
YXllckNhbGxiYWNrKCk7CiB9CiAKK3ZvaWQgSFRNTE1lZGlhRWxlbWVudDo6bWVkaWFQbGF5ZXJT
YXdVbnN1cHBvcnRlZFRyYWNrcyhNZWRpYVBsYXllciopCit7CisgICAgLy8gVGhlIE1lZGlhUGxh
eWVyIGNhbWUgYWNyb3NzIGNvbnRlbnQgaXQgY2Fubm90IGNvbXBsZXRlbHkgaGFuZGxlLgorICAg
IC8vIFRoaXMgaXMgbm9ybWFsbHkgYWNjZXB0YWJsZSBleGNlcHQgd2hlbiB3ZSBhcmUgaW4gYSBz
dGFuZGFsb25lCisgICAgLy8gTWVkaWFEb2N1bWVudC4gSWYgc28sIHRlbGwgdGhlIGRvY3VtZW50
IHdoYXQgaGFzIGhhcHBlbmVkLgorICAgIGlmIChvd25lckRvY3VtZW50KCktPmlzTWVkaWFEb2N1
bWVudCgpKSB7CisgICAgICAgIE1lZGlhRG9jdW1lbnQqIG1lZGlhRG9jdW1lbnQgPSBzdGF0aWNf
Y2FzdDxNZWRpYURvY3VtZW50Kj4ob3duZXJEb2N1bWVudCgpKTsKKyAgICAgICAgbWVkaWFEb2N1
bWVudC0+bWVkaWFFbGVtZW50U2F3VW5zdXBwb3J0ZWRUcmFja3MoKTsKKyAgICB9Cit9CisKKy8v
IE1lZGlhUGxheWVyUHJlc2VudGF0aW9uIG1ldGhvZHMKK3ZvaWQgSFRNTE1lZGlhRWxlbWVudDo6
bWVkaWFQbGF5ZXJSZXBhaW50KE1lZGlhUGxheWVyKikKK3sKKyAgICBiZWdpblByb2Nlc3NpbmdN
ZWRpYVBsYXllckNhbGxiYWNrKCk7CisgICAgaWYgKHJlbmRlcmVyKCkpCisgICAgICAgIHJlbmRl
cmVyKCktPnJlcGFpbnQoKTsKKyAgICBlbmRQcm9jZXNzaW5nTWVkaWFQbGF5ZXJDYWxsYmFjaygp
OworfQorCiB2b2lkIEhUTUxNZWRpYUVsZW1lbnQ6Om1lZGlhUGxheWVyU2l6ZUNoYW5nZWQoTWVk
aWFQbGF5ZXIqKQogewogICAgIGJlZ2luUHJvY2Vzc2luZ01lZGlhUGxheWVyQ2FsbGJhY2soKTsK
QEAgLTEyODIsMTcgKzEyOTksMjQgQEAgdm9pZCBIVE1MTWVkaWFFbGVtZW50OjptZWRpYVBsYXll
clNpemVDaGFuZ2VkKE1lZGlhUGxheWVyKikKICAgICBlbmRQcm9jZXNzaW5nTWVkaWFQbGF5ZXJD
YWxsYmFjaygpOwogfQogCi12b2lkIEhUTUxNZWRpYUVsZW1lbnQ6Om1lZGlhUGxheWVyU2F3VW5z
dXBwb3J0ZWRUcmFja3MoTWVkaWFQbGF5ZXIqKQorI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJ
VElORykKK2Jvb2wgSFRNTE1lZGlhRWxlbWVudDo6bWVkaWFQbGF5ZXJSZW5kZXJpbmdDYW5CZUFj
Y2VsZXJhdGVkKE1lZGlhUGxheWVyKikKIHsKLSAgICAvLyBUaGUgTWVkaWFQbGF5ZXIgY2FtZSBh
Y3Jvc3MgY29udGVudCBpdCBjYW5ub3QgY29tcGxldGVseSBoYW5kbGUuCi0gICAgLy8gVGhpcyBp
cyBub3JtYWxseSBhY2NlcHRhYmxlIGV4Y2VwdCB3aGVuIHdlIGFyZSBpbiBhIHN0YW5kYWxvbmUK
LSAgICAvLyBNZWRpYURvY3VtZW50LiBJZiBzbywgdGVsbCB0aGUgZG9jdW1lbnQgd2hhdCBoYXMg
aGFwcGVuZWQuCi0gICAgaWYgKG93bmVyRG9jdW1lbnQoKS0+aXNNZWRpYURvY3VtZW50KCkpIHsK
LSAgICAgICAgTWVkaWFEb2N1bWVudCogbWVkaWFEb2N1bWVudCA9IHN0YXRpY19jYXN0PE1lZGlh
RG9jdW1lbnQqPihvd25lckRvY3VtZW50KCkpOwotICAgICAgICBtZWRpYURvY3VtZW50LT5tZWRp
YUVsZW1lbnRTYXdVbnN1cHBvcnRlZFRyYWNrcygpOworICAgIGlmIChyZW5kZXJlcigpICYmIHJl
bmRlcmVyKCktPmlzVmlkZW8oKSkgeworICAgICAgICBBU1NFUlQocmVuZGVyZXIoKS0+dmlldygp
KTsKKyAgICAgICAgcmV0dXJuIHJlbmRlcmVyKCktPnZpZXcoKS0+Y29tcG9zaXRvcigpLT5jYW5B
Y2NlbGVyYXRlVmlkZW9SZW5kZXJpbmcoc3RhdGljX2Nhc3Q8UmVuZGVyVmlkZW8qPihyZW5kZXJl
cigpKSk7CiAgICAgfQorICAgIHJldHVybiBmYWxzZTsKIH0KIAorR3JhcGhpY3NMYXllciogSFRN
TE1lZGlhRWxlbWVudDo6bWVkaWFQbGF5ZXJHcmFwaGljc0xheWVyKE1lZGlhUGxheWVyKikKK3sK
KyAgICBpZiAocmVuZGVyZXIoKSAmJiByZW5kZXJlcigpLT5pc1ZpZGVvKCkpCisgICAgICAgIHJl
dHVybiBzdGF0aWNfY2FzdDxSZW5kZXJWaWRlbyo+KHJlbmRlcmVyKCkpLT52aWRlb0dyYXBoaWNz
TGF5ZXIoKTsKKyAgICByZXR1cm4gMDsKK30KKyNlbmRpZgorCiBQYXNzUmVmUHRyPFRpbWVSYW5n
ZXM+IEhUTUxNZWRpYUVsZW1lbnQ6OmJ1ZmZlcmVkKCkgY29uc3QKIHsKICAgICAvLyBGSVhNRSBy
ZWFsIHJhbmdlcyBzdXBwb3J0CmRpZmYgLS1naXQgYS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxl
bWVudC5oIGIvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuaAppbmRleCA1NzZjYmE2Li4y
YTA4ZTNjIDEwMDY0NAotLS0gYS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5oCisrKyBi
L1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmgKQEAgLTE1MiwxNiArMTUyLDIwIEBAIHBy
b3RlY3RlZDoKICAgICB2b2lkIHNldFJlYWR5U3RhdGUoTWVkaWFQbGF5ZXI6OlJlYWR5U3RhdGUp
OwogICAgIHZvaWQgc2V0TmV0d29ya1N0YXRlKE1lZGlhUGxheWVyOjpOZXR3b3JrU3RhdGUpOwog
ICAgIAotcHJpdmF0ZTogLy8gTWVkaWFQbGF5ZXJPYnNlcnZlcgorcHJpdmF0ZTogLy8gTWVkaWFQ
bGF5ZXJDbGllbnQKICAgICB2aXJ0dWFsIHZvaWQgbWVkaWFQbGF5ZXJOZXR3b3JrU3RhdGVDaGFu
Z2VkKE1lZGlhUGxheWVyKik7CiAgICAgdmlydHVhbCB2b2lkIG1lZGlhUGxheWVyUmVhZHlTdGF0
ZUNoYW5nZWQoTWVkaWFQbGF5ZXIqKTsKICAgICB2aXJ0dWFsIHZvaWQgbWVkaWFQbGF5ZXJUaW1l
Q2hhbmdlZChNZWRpYVBsYXllciopOwotICAgIHZpcnR1YWwgdm9pZCBtZWRpYVBsYXllclJlcGFp
bnQoTWVkaWFQbGF5ZXIqKTsKICAgICB2aXJ0dWFsIHZvaWQgbWVkaWFQbGF5ZXJWb2x1bWVDaGFu
Z2VkKE1lZGlhUGxheWVyKik7CiAgICAgdmlydHVhbCB2b2lkIG1lZGlhUGxheWVyRHVyYXRpb25D
aGFuZ2VkKE1lZGlhUGxheWVyKik7CiAgICAgdmlydHVhbCB2b2lkIG1lZGlhUGxheWVyUmF0ZUNo
YW5nZWQoTWVkaWFQbGF5ZXIqKTsKLSAgICB2aXJ0dWFsIHZvaWQgbWVkaWFQbGF5ZXJTaXplQ2hh
bmdlZChNZWRpYVBsYXllciopOwogICAgIHZpcnR1YWwgdm9pZCBtZWRpYVBsYXllclNhd1Vuc3Vw
cG9ydGVkVHJhY2tzKE1lZGlhUGxheWVyKik7CisgICAgdmlydHVhbCB2b2lkIG1lZGlhUGxheWVy
UmVwYWludChNZWRpYVBsYXllciopOworICAgIHZpcnR1YWwgdm9pZCBtZWRpYVBsYXllclNpemVD
aGFuZ2VkKE1lZGlhUGxheWVyKik7CisjaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQor
ICAgIHZpcnR1YWwgYm9vbCBtZWRpYVBsYXllclJlbmRlcmluZ0NhbkJlQWNjZWxlcmF0ZWQoTWVk
aWFQbGF5ZXIqKTsKKyAgICB2aXJ0dWFsIEdyYXBoaWNzTGF5ZXIqIG1lZGlhUGxheWVyR3JhcGhp
Y3NMYXllcihNZWRpYVBsYXllciopOworI2VuZGlmCiAKIHByaXZhdGU6CiAgICAgdm9pZCBsb2Fk
VGltZXJGaXJlZChUaW1lcjxIVE1MTWVkaWFFbGVtZW50PiopOwpkaWZmIC0tZ2l0IGEvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllci5jcHAgYi9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL01lZGlhUGxheWVyLmNwcAppbmRleCBiNTgwNDc0Li42Nzk2OWE2IDEwMDY0NAotLS0g
YS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyLmNwcAorKysgYi9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyLmNwcApAQCAtNDU2LDYgKzQ1NiwxOCBAQCB2
b2lkIE1lZGlhUGxheWVyOjpzZXRNZWRpYVBsYXllclByb3h5KFdlYk1lZGlhUGxheWVyUHJveHkq
IHByb3h5KQogfQogI2VuZGlmCiAKKyNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCit2
b2lkIE1lZGlhUGxheWVyOjphY2NlbGVyYXRlZFJlbmRlcmluZ1N0YXRlQ2hhbmdlZCgpCit7Cisg
ICAgbV9wcml2YXRlLT5hY2NlbGVyYXRlZFJlbmRlcmluZ1N0YXRlQ2hhbmdlZCgpOworfQorCiti
b29sIE1lZGlhUGxheWVyOjpzdXBwb3J0c0FjY2VsZXJhdGVkUmVuZGVyaW5nKCkgY29uc3QKK3sK
KyAgICByZXR1cm4gbV9wcml2YXRlLT5zdXBwb3J0c0FjY2VsZXJhdGVkUmVuZGVyaW5nKCk7Cit9
CisjZW5kaWYgLy8gVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQorCiB2b2lkIE1lZGlhUGxh
eWVyOjpuZXR3b3JrU3RhdGVDaGFuZ2VkKCkKIHsKICAgICBpZiAobV9tZWRpYVBsYXllckNsaWVu
dCkKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIuaCBi
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIuaAppbmRleCA5YjJmNjg1Li5j
MTQyYmFkIDEwMDY0NAotLS0gYS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVy
LmgKKysrIGIvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllci5oCkBAIC00OSw2
ICs0OSwxMCBAQCBjbGFzcyBNZWRpYVBsYXllcjsKIGNsYXNzIE1lZGlhUGxheWVyUHJpdmF0ZUlu
dGVyZmFjZTsKIGNsYXNzIFN0cmluZzsKIAorI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElO
RykKK2NsYXNzIEdyYXBoaWNzTGF5ZXI7CisjZW5kaWYKKwogY2xhc3MgTWVkaWFQbGF5ZXJDbGll
bnQgewogcHVibGljOgogICAgIHZpcnR1YWwgfk1lZGlhUGxheWVyQ2xpZW50KCkgeyB9CkBAIC02
NSwyMiArNjksMzEgQEAgcHVibGljOgogICAgIC8vIHRpbWUgaGFzIGp1bXBlZCwgZWcuIG5vdCBh
cyBhIHJlc3VsdCBvZiBub3JtYWwgcGxheWJhY2sKICAgICB2aXJ0dWFsIHZvaWQgbWVkaWFQbGF5
ZXJUaW1lQ2hhbmdlZChNZWRpYVBsYXllciopIHsgfQogICAgIAotICAgIC8vIGEgbmV3IGZyYW1l
IG9mIHZpZGVvIGlzIGF2YWlsYWJsZQotICAgIHZpcnR1YWwgdm9pZCBtZWRpYVBsYXllclJlcGFp
bnQoTWVkaWFQbGF5ZXIqKSB7IH0KLQogICAgIC8vIHRoZSBtZWRpYSBmaWxlIGR1cmF0aW9uIGhh
cyBjaGFuZ2VkLCBvciBpcyBub3cga25vd24KICAgICB2aXJ0dWFsIHZvaWQgbWVkaWFQbGF5ZXJE
dXJhdGlvbkNoYW5nZWQoTWVkaWFQbGF5ZXIqKSB7IH0KICAgICAKICAgICAvLyB0aGUgcGxheWJh
Y2sgcmF0ZSBoYXMgY2hhbmdlZAogICAgIHZpcnR1YWwgdm9pZCBtZWRpYVBsYXllclJhdGVDaGFu
Z2VkKE1lZGlhUGxheWVyKikgeyB9CiAKLSAgICAvLyB0aGUgbW92aWUgc2l6ZSBoYXMgY2hhbmdl
ZAotICAgIHZpcnR1YWwgdm9pZCBtZWRpYVBsYXllclNpemVDaGFuZ2VkKE1lZGlhUGxheWVyKikg
eyB9Ci0KICAgICAvLyBUaGUgTWVkaWFQbGF5ZXIgaGFzIGZvdW5kIHBvdGVudGlhbGx5IHByb2Js
ZW1hdGljIG1lZGlhIGNvbnRlbnQuCiAgICAgLy8gVGhpcyBpcyB1c2VkIGludGVybmFsbHkgdG8g
dHJpZ2dlciBzd2FwcGluZyBmcm9tIGEgPHZpZGVvPgogICAgIC8vIGVsZW1lbnQgdG8gYW4gPGVt
YmVkPiBpbiBzdGFuZGFsb25lIGRvY3VtZW50cwogICAgIHZpcnR1YWwgdm9pZCBtZWRpYVBsYXll
clNhd1Vuc3VwcG9ydGVkVHJhY2tzKE1lZGlhUGxheWVyKikgeyB9CisKKy8vIFByZXNlbnRhdGlv
bi1yZWxhdGVkIG1ldGhvZHMKKyAgICAvLyBhIG5ldyBmcmFtZSBvZiB2aWRlbyBpcyBhdmFpbGFi
bGUKKyAgICB2aXJ0dWFsIHZvaWQgbWVkaWFQbGF5ZXJSZXBhaW50KE1lZGlhUGxheWVyKikgeyB9
CisKKyAgICAvLyB0aGUgbW92aWUgc2l6ZSBoYXMgY2hhbmdlZAorICAgIHZpcnR1YWwgdm9pZCBt
ZWRpYVBsYXllclNpemVDaGFuZ2VkKE1lZGlhUGxheWVyKikgeyB9CisKKyNpZiBVU0UoQUNDRUxF
UkFURURfQ09NUE9TSVRJTkcpCisgICAgLy8gd2hldGhlciB0aGUgcmVuZGVyaW5nIHN5c3RlbSBj
YW4gYWNjZWxlcmF0ZSB0aGUgZGlzcGxheSBvZiB0aGlzIE1lZGlhUGxheWVyLgorICAgIHZpcnR1
YWwgYm9vbCBtZWRpYVBsYXllclJlbmRlcmluZ0NhbkJlQWNjZWxlcmF0ZWQoTWVkaWFQbGF5ZXIq
KSB7IHJldHVybiBmYWxzZTsgfQorCisgICAgLy8gcmV0dXJuIHRoZSBHcmFwaGljc0xheWVyIHRo
YXQgd2lsbCBob3N0IHRoZSBwcmVzZW50YXRpb24gZm9yIHRoaXMgTWVkaWFQbGF5ZXIuCisgICAg
dmlydHVhbCBHcmFwaGljc0xheWVyKiBtZWRpYVBsYXllckdyYXBoaWNzTGF5ZXIoTWVkaWFQbGF5
ZXIqKSB7IHJldHVybiAwOyB9CisjZW5kaWYKIH07CiAKIGNsYXNzIE1lZGlhUGxheWVyIDogTm9u
Y29weWFibGUgewpAQCAtMTY4LDYgKzE4MSwxMyBAQCBwdWJsaWM6CiAgICAgdm9pZCBzZXRNZWRp
YVBsYXllclByb3h5KFdlYk1lZGlhUGxheWVyUHJveHkqIHByb3h5KTsKICNlbmRpZgogCisjaWYg
VVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQorICAgIC8vIHdoZXRoZXIgYWNjZWxlcmF0ZWQg
cmVuZGVyaW5nIGlzIHN1cHBvcnRlZCBieSB0aGUgbWVkaWEgZW5naW5lIGZvciB0aGUgY3VycmVu
dCBtZWRpYS4KKyAgICBib29sIHN1cHBvcnRzQWNjZWxlcmF0ZWRSZW5kZXJpbmcoKSBjb25zdDsK
KyAgICAvLyBjYWxsZWQgd2hlbiB0aGUgcmVuZGVyaW5nIHN5c3RlbSBmbGlwcyB0aGUgaW50byBv
ciBvdXQgb2YgYWNjZWxlcmF0ZWQgcmVuZGVyaW5nIG1vZGUuCisgICAgdm9pZCBhY2NlbGVyYXRl
ZFJlbmRlcmluZ1N0YXRlQ2hhbmdlZCgpOworI2VuZGlmCisKIHByaXZhdGU6CiAgICAgc3RhdGlj
IHZvaWQgaW5pdGlhbGl6ZU1lZGlhRW5naW5lcygpOwogCmRpZmYgLS1naXQgYS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyUHJpdmF0ZS5oIGIvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9NZWRpYVBsYXllclByaXZhdGUuaAppbmRleCBlMTcyNTljLi4xYjVmNzM3IDEwMDY0
NAotLS0gYS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyUHJpdmF0ZS5oCisr
KyBiL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXJQcml2YXRlLmgKQEAgLTkw
LDYgKzkwLDEzIEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgZGVsaXZlck5vdGlmaWNhdGlv
bihNZWRpYVBsYXllclByb3h5Tm90aWZpY2F0aW9uVHlwZSkgPSAwOwogICAgIHZpcnR1YWwgdm9p
ZCBzZXRNZWRpYVBsYXllclByb3h5KFdlYk1lZGlhUGxheWVyUHJveHkqKSA9IDA7CiAjZW5kaWYK
KworI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKKyAgICAvLyB3aGV0aGVyIGFjY2Vs
ZXJhdGVkIHJlbmRlcmluZyBpcyBzdXBwb3J0ZWQgYnkgdGhlIG1lZGlhIGVuZ2luZSBmb3IgdGhl
IGN1cnJlbnQgbWVkaWEuCisgICAgdmlydHVhbCBib29sIHN1cHBvcnRzQWNjZWxlcmF0ZWRSZW5k
ZXJpbmcoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQorICAgIC8vIGNhbGxlZCB3aGVuIHRoZSBy
ZW5kZXJpbmcgc3lzdGVtIGZsaXBzIHRoZSBpbnRvIG9yIG91dCBvZiBhY2NlbGVyYXRlZCByZW5k
ZXJpbmcgbW9kZS4KKyAgICB2aXJ0dWFsIHZvaWQgYWNjZWxlcmF0ZWRSZW5kZXJpbmdTdGF0ZUNo
YW5nZWQoKSB7IH0KKyNlbmRpZgogfTsKIAogfQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9tYWMvTWVkaWFQbGF5ZXJQcml2YXRlUVRLaXQuaCBiL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvbWFjL01lZGlhUGxheWVyUHJpdmF0ZVFUS2l0LmgKaW5kZXggZjkwZjI1OC4u
YmFkZjA1OCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9tYWMvTWVkaWFQ
bGF5ZXJQcml2YXRlUVRLaXQuaAorKysgYi9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL21hYy9N
ZWRpYVBsYXllclByaXZhdGVRVEtpdC5oCkBAIC0zNywxMiArMzcsMTQgQEAKICNpbXBvcnQgPFFU
S2l0L1FUVGltZS5oPgogQGNsYXNzIFFUTW92aWU7CiBAY2xhc3MgUVRNb3ZpZVZpZXc7CitAY2xh
c3MgUVRNb3ZpZUxheWVyOwogQGNsYXNzIFFUVmlkZW9SZW5kZXJlcldlYktpdE9ubHk7CiBAY2xh
c3MgV2ViQ29yZU1vdmllT2JzZXJ2ZXI7CiAjZWxzZQogY2xhc3MgUVRNb3ZpZTsKIGNsYXNzIFFU
TW92aWVWaWV3OwogY2xhc3MgUVRUaW1lOworY2xhc3MgUVRNb3ZpZUxheWVyOwogY2xhc3MgUVRW
aWRlb1JlbmRlcmVyV2ViS2l0T25seTsKIGNsYXNzIFdlYkNvcmVNb3ZpZU9ic2VydmVyOwogI2Vu
ZGlmCkBAIC0xMTIsMTMgKzExNCwzMSBAQCBwcml2YXRlOgogICAgIAogICAgIHZvaWQgcGFpbnQo
R3JhcGhpY3NDb250ZXh0KiwgY29uc3QgSW50UmVjdCYpOwogCisjaWYgVVNFKEFDQ0VMRVJBVEVE
X0NPTVBPU0lUSU5HKQorICAgIGJvb2wgc3VwcG9ydHNBY2NlbGVyYXRlZFJlbmRlcmluZygpIGNv
bnN0OworICAgIHZvaWQgYWNjZWxlcmF0ZWRSZW5kZXJpbmdTdGF0ZUNoYW5nZWQoKTsKKyNlbmRp
ZgorCiAgICAgdm9pZCBjcmVhdGVRVE1vdmllKGNvbnN0IFN0cmluZyYgdXJsKTsKKworICAgIGVu
dW0gTWVkaWFSZW5kZXJpbmdNb2RlIHsgTWVkaWFSZW5kZXJpbmdOb25lLCBNZWRpYVJlbmRlcmlu
Z01vdmllVmlldywgTWVkaWFSZW5kZXJpbmdTb2Z0d2FyZVJlbmRlcmVyLCBNZWRpYVJlbmRlcmlu
Z01vdmllTGF5ZXIgfTsKKyAgICBNZWRpYVJlbmRlcmluZ01vZGUgY3VycmVudFJlbmRlcmluZ01v
ZGUoKSBjb25zdDsKKyAgICBNZWRpYVJlbmRlcmluZ01vZGUgcHJlZmVycmVkUmVuZGVyaW5nTW9k
ZSgpIGNvbnN0OworICAgIAogICAgIHZvaWQgc2V0VXBWaWRlb1JlbmRlcmluZygpOwogICAgIHZv
aWQgdGVhckRvd25WaWRlb1JlbmRlcmluZygpOworICAgIGJvb2wgaGFzU2V0VXBWaWRlb1JlbmRl
cmluZygpIGNvbnN0OworICAgIAogICAgIHZvaWQgY3JlYXRlUVRNb3ZpZVZpZXcoKTsKICAgICB2
b2lkIGRldGFjaFFUTW92aWVWaWV3KCk7CisgICAgCiAgICAgdm9pZCBjcmVhdGVRVFZpZGVvUmVu
ZGVyZXIoKTsKICAgICB2b2lkIGRlc3Ryb3lRVFZpZGVvUmVuZGVyZXIoKTsKKyAgICAKKyNpZiBV
U0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCisgICAgdm9pZCBjcmVhdGVRVE1vdmllTGF5ZXIo
KTsKKyAgICB2b2lkIGRlc3Ryb3lRVE1vdmllTGF5ZXIoKTsKKyNlbmRpZgogICAgIFFUVGltZSBj
cmVhdGVRVFRpbWUoZmxvYXQgdGltZSkgY29uc3Q7CiAgICAgCiAgICAgdm9pZCB1cGRhdGVTdGF0
ZXMoKTsKQEAgLTE1MCw2ICsxNzAsOSBAQCBwcml2YXRlOgogICAgIHVuc2lnbmVkIG1fdG90YWxU
cmFja0NvdW50OwogICAgIGJvb2wgbV9oYXNVbnN1cHBvcnRlZFRyYWNrczsKICAgICBmbG9hdCBt
X2R1cmF0aW9uOworI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKKyAgICBSZXRhaW5Q
dHI8UVRNb3ZpZUxheWVyPiBtX3F0VmlkZW9MYXllcjsKKyNlbmRpZgogI2lmIERSQVdfRlJBTUVf
UkFURQogICAgIGludCAgbV9mcmFtZUNvdW50V2hpbGVQbGF5aW5nOwogICAgIGRvdWJsZSBtX3Rp
bWVTdGFydGVkUGxheWluZzsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
bWFjL01lZGlhUGxheWVyUHJpdmF0ZVFUS2l0Lm1tIGIvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9tYWMvTWVkaWFQbGF5ZXJQcml2YXRlUVRLaXQubW0KaW5kZXggYWI5Y2QzZC4uNjI3OTIyYiAx
MDA2NDQKLS0tIGEvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9tYWMvTWVkaWFQbGF5ZXJQcml2
YXRlUVRLaXQubW0KKysrIGIvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9tYWMvTWVkaWFQbGF5
ZXJQcml2YXRlUVRLaXQubW0KQEAgLTQ0LDYgKzQ0LDEwIEBACiAjaW1wb3J0IDxvYmpjL29iamMt
cnVudGltZS5oPgogI2ltcG9ydCA8d3RmL1VudXNlZFBhcmFtLmg+CiAKKyNpZiBVU0UoQUNDRUxF
UkFURURfQ09NUE9TSVRJTkcpCisjaW5jbHVkZSAiR3JhcGhpY3NMYXllci5oIgorI2VuZGlmCisK
ICNpZiBEUkFXX0ZSQU1FX1JBVEUKICNpbXBvcnQgIkZvbnQuaCIKICNpbXBvcnQgIkZyYW1lLmgi
CkBAIC02Nyw2ICs3MSw3IEBAIFNPRlRfTElOSyhRVEtpdCwgUVRNYWtlVGltZSwgUVRUaW1lLCAo
bG9uZyBsb25nIHRpbWVWYWx1ZSwgbG9uZyB0aW1lU2NhbGUpLCAodGltCiAKIFNPRlRfTElOS19D
TEFTUyhRVEtpdCwgUVRNb3ZpZSkKIFNPRlRfTElOS19DTEFTUyhRVEtpdCwgUVRNb3ZpZVZpZXcp
CitTT0ZUX0xJTktfQ0xBU1MoUVRLaXQsIFFUTW92aWVMYXllcikKIAogU09GVF9MSU5LX1BPSU5U
RVIoUVRLaXQsIFFUVHJhY2tNZWRpYVR5cGVBdHRyaWJ1dGUsIE5TU3RyaW5nICopCiBTT0ZUX0xJ
TktfUE9JTlRFUihRVEtpdCwgUVRNZWRpYVR5cGVBdHRyaWJ1dGUsIE5TU3RyaW5nICopCkBAIC0x
MDAsNiArMTA1LDcgQEAgU09GVF9MSU5LX1BPSU5URVIoUVRLaXQsIFFUTW92aWVBcGVydHVyZU1v
ZGVBdHRyaWJ1dGUsIE5TU3RyaW5nICopCiAKICNkZWZpbmUgUVRNb3ZpZSBnZXRRVE1vdmllQ2xh
c3MoKQogI2RlZmluZSBRVE1vdmllVmlldyBnZXRRVE1vdmllVmlld0NsYXNzKCkKKyNkZWZpbmUg
UVRNb3ZpZUxheWVyIGdldFFUTW92aWVMYXllckNsYXNzKCkKIAogI2RlZmluZSBRVFRyYWNrTWVk
aWFUeXBlQXR0cmlidXRlIGdldFFUVHJhY2tNZWRpYVR5cGVBdHRyaWJ1dGUoKQogI2RlZmluZSBR
VE1lZGlhVHlwZUF0dHJpYnV0ZSBnZXRRVE1lZGlhVHlwZUF0dHJpYnV0ZSgpCkBAIC00MDQsMjMg
KzQxMCwxMTUgQEAgdm9pZCBNZWRpYVBsYXllclByaXZhdGU6OmRlc3Ryb3lRVFZpZGVvUmVuZGVy
ZXIoKQogICAgIG1fcXRWaWRlb1JlbmRlcmVyID0gbmlsOwogfQogCi12b2lkIE1lZGlhUGxheWVy
UHJpdmF0ZTo6c2V0VXBWaWRlb1JlbmRlcmluZygpCisjaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBP
U0lUSU5HKQordm9pZCBNZWRpYVBsYXllclByaXZhdGU6OmNyZWF0ZVFUTW92aWVMYXllcigpCit7
CisgICAgaWYgKCFtX3F0TW92aWUpCisgICAgICAgIHJldHVybjsKKworICAgIEFTU0VSVChzdXBw
b3J0c0FjY2VsZXJhdGVkUmVuZGVyaW5nKCkpOworICAgIAorICAgIGlmICghbV9xdFZpZGVvTGF5
ZXIpIHsKKyAgICAgICAgbV9xdFZpZGVvTGF5ZXIuYWRvcHROUyhbW1FUTW92aWVMYXllciBhbGxv
Y10gaW5pdF0pOworICAgICAgICBpZiAoIW1fcXRWaWRlb0xheWVyKQorICAgICAgICAgICAgcmV0
dXJuOworCisgICAgICAgIFttX3F0VmlkZW9MYXllci5nZXQoKSBzZXRNb3ZpZTptX3F0TW92aWUu
Z2V0KCldOworI2lmbmRlZiBOREVCVUcKKyAgICAgICAgWyhDQUxheWVyICopbV9xdFZpZGVvTGF5
ZXIuZ2V0KCkgc2V0TmFtZTpAIlZpZGVvIGxheWVyIl07CisjZW5kaWYKKworICAgICAgICAvLyBI
YW5nIHRoZSB2aWRlbyBsYXllciBmcm9tIHRoZSByZW5kZXIgbGF5ZXIsIGlmIHdlIGhhdmUgb25l
IHlldC4gSWYgbm90LCB3ZSdsbCBkbyB0aGlzCisgICAgICAgIC8vIGxhdGVyIHZpYSBhY2NlbGVy
YXRlZFJlbmRlcmluZ1N0YXRlQ2hhbmdlZCgpLgorICAgICAgICBHcmFwaGljc0xheWVyKiB2aWRl
b0dyYXBoaWNzTGF5ZXIgPSBtX3BsYXllci0+bWVkaWFQbGF5ZXJDbGllbnQoKS0+bWVkaWFQbGF5
ZXJHcmFwaGljc0xheWVyKG1fcGxheWVyKTsKKyAgICAgICAgaWYgKHZpZGVvR3JhcGhpY3NMYXll
cikKKyAgICAgICAgICAgIHZpZGVvR3JhcGhpY3NMYXllci0+c2V0Q29udGVudHNUb1ZpZGVvKChQ
bGF0Zm9ybUxheWVyICopbV9xdFZpZGVvTGF5ZXIuZ2V0KCkpOworICAgIH0KK30KKwordm9pZCBN
ZWRpYVBsYXllclByaXZhdGU6OmRlc3Ryb3lRVE1vdmllTGF5ZXIoKQoreworICAgIGlmICghbV9x
dFZpZGVvTGF5ZXIpCisgICAgICAgIHJldHVybjsKKworICAgIC8vIGRpc2Fzc29jaWF0ZSBvdXIg
bW92aWUgZnJvbSBvdXIgaW5zdGFuY2Ugb2YgUVRNb3ZpZUxheWVyCisgICAgW21fcXRWaWRlb0xh
eWVyLmdldCgpIHNldE1vdmllOm5pbF07ICAgIAorICAgIG1fcXRWaWRlb0xheWVyID0gbmlsOwor
fQorI2VuZGlmCisKK01lZGlhUGxheWVyUHJpdmF0ZTo6TWVkaWFSZW5kZXJpbmdNb2RlIE1lZGlh
UGxheWVyUHJpdmF0ZTo6Y3VycmVudFJlbmRlcmluZ01vZGUoKSBjb25zdAoreworICAgIGlmICht
X3F0TW92aWVWaWV3KQorICAgICAgICByZXR1cm4gTWVkaWFSZW5kZXJpbmdNb3ZpZVZpZXc7Cisg
ICAgCisgICAgaWYgKG1fcXRWaWRlb1JlbmRlcmVyKQorICAgICAgICByZXR1cm4gTWVkaWFSZW5k
ZXJpbmdTb2Z0d2FyZVJlbmRlcmVyOworICAgIAorICAgIGlmIChtX3F0VmlkZW9MYXllcikKKyAg
ICAgICAgcmV0dXJuIE1lZGlhUmVuZGVyaW5nTW92aWVMYXllcjsKKyAgICAKKyAgICByZXR1cm4g
TWVkaWFSZW5kZXJpbmdOb25lOworfQorCitNZWRpYVBsYXllclByaXZhdGU6Ok1lZGlhUmVuZGVy
aW5nTW9kZSBNZWRpYVBsYXllclByaXZhdGU6OnByZWZlcnJlZFJlbmRlcmluZ01vZGUoKSBjb25z
dAogewogICAgIGlmICghbV9wbGF5ZXItPmZyYW1lVmlldygpIHx8ICFtX3F0TW92aWUpCisgICAg
ICAgIHJldHVybiBNZWRpYVJlbmRlcmluZ05vbmU7CisKKyAgICBpZiAobV9wbGF5ZXItPmluTWVk
aWFEb2N1bWVudCgpIHx8ICFRVFZpZGVvUmVuZGVyZXJDbGFzcygpKQorICAgICAgICByZXR1cm4g
TWVkaWFSZW5kZXJpbmdNb3ZpZVZpZXc7CisKKyNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJ
TkcpCisgICAgaWYgKHN1cHBvcnRzQWNjZWxlcmF0ZWRSZW5kZXJpbmcoKSAmJiBtX3BsYXllci0+
bWVkaWFQbGF5ZXJDbGllbnQoKS0+bWVkaWFQbGF5ZXJSZW5kZXJpbmdDYW5CZUFjY2VsZXJhdGVk
KG1fcGxheWVyKSkKKyAgICAgICAgcmV0dXJuIE1lZGlhUmVuZGVyaW5nTW92aWVMYXllcjsKKyNl
bmRpZgorCisgICAgcmV0dXJuIE1lZGlhUmVuZGVyaW5nU29mdHdhcmVSZW5kZXJlcjsKK30KKwor
dm9pZCBNZWRpYVBsYXllclByaXZhdGU6OnNldFVwVmlkZW9SZW5kZXJpbmcoKQoreworICAgIE1l
ZGlhUmVuZGVyaW5nTW9kZSBjdXJyZW50TW9kZSA9IGN1cnJlbnRSZW5kZXJpbmdNb2RlKCk7Cisg
ICAgTWVkaWFSZW5kZXJpbmdNb2RlIHByZWZlcnJlZE1vZGUgPSBwcmVmZXJyZWRSZW5kZXJpbmdN
b2RlKCk7CisgICAgaWYgKGN1cnJlbnRNb2RlID09IHByZWZlcnJlZE1vZGUpCiAgICAgICAgIHJl
dHVybjsKIAotICAgIGlmIChtX3BsYXllci0+aW5NZWRpYURvY3VtZW50KCkgfHwgIVFUVmlkZW9S
ZW5kZXJlckNsYXNzKCkgKQorICAgIGlmIChjdXJyZW50TW9kZSAhPSBNZWRpYVJlbmRlcmluZ05v
bmUpICAKKyAgICAgICAgdGVhckRvd25WaWRlb1JlbmRlcmluZygpOworCisgICAgc3dpdGNoIChw
cmVmZXJyZWRNb2RlKSB7CisgICAgY2FzZSBNZWRpYVJlbmRlcmluZ05vbmU6CisgICAgICAgIGJy
ZWFrOworICAgIGNhc2UgTWVkaWFSZW5kZXJpbmdNb3ZpZVZpZXc6CiAgICAgICAgIGNyZWF0ZVFU
TW92aWVWaWV3KCk7Ci0gICAgZWxzZQorICAgICAgICBicmVhazsKKyAgICBjYXNlIE1lZGlhUmVu
ZGVyaW5nU29mdHdhcmVSZW5kZXJlcjoKICAgICAgICAgY3JlYXRlUVRWaWRlb1JlbmRlcmVyKCk7
CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgTWVkaWFSZW5kZXJpbmdNb3ZpZUxheWVyOgorICAg
ICAgICBjcmVhdGVRVE1vdmllTGF5ZXIoKTsKKyAgICAgICAgYnJlYWs7CisgICAgfQogfQogCiB2
b2lkIE1lZGlhUGxheWVyUHJpdmF0ZTo6dGVhckRvd25WaWRlb1JlbmRlcmluZygpCiB7CiAgICAg
aWYgKG1fcXRNb3ZpZVZpZXcpCiAgICAgICAgIGRldGFjaFFUTW92aWVWaWV3KCk7Ci0gICAgZWxz
ZQorICAgIGVsc2UgaWYgKG1fcXRWaWRlb1JlbmRlcmVyKQogICAgICAgICBkZXN0cm95UVRWaWRl
b1JlbmRlcmVyKCk7CisgICAgZWxzZQorICAgICAgICBkZXN0cm95UVRNb3ZpZUxheWVyKCk7Cit9
CisKK2Jvb2wgTWVkaWFQbGF5ZXJQcml2YXRlOjpoYXNTZXRVcFZpZGVvUmVuZGVyaW5nKCkgY29u
c3QKK3sKKyAgICByZXR1cm4gbV9xdE1vdmllVmlldworI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01Q
T1NJVElORykKKyAgICAgICAgfHwgbV9xdFZpZGVvTGF5ZXIKKyNlbmRpZgorICAgICAgICB8fCBt
X3F0VmlkZW9SZW5kZXJlcjsKIH0KIAogUVRUaW1lIE1lZGlhUGxheWVyUHJpdmF0ZTo6Y3JlYXRl
UVRUaW1lKGZsb2F0IHRpbWUpIGNvbnN0CkBAIC03NzYsMTQgKzg3NCwxNSBAQCB2b2lkIE1lZGlh
UGxheWVyUHJpdmF0ZTo6dXBkYXRlU3RhdGVzKCkKICAgICBpZiAoc2Vla2luZygpKQogICAgICAg
ICBtX3JlYWR5U3RhdGUgPSBNZWRpYVBsYXllcjo6SGF2ZU5vdGhpbmc7CiAKKyAgICBpZiAobG9h
ZFN0YXRlID49IFFUTW92aWVMb2FkU3RhdGVMb2FkZWQgJiYgIWhhc1NldFVwVmlkZW9SZW5kZXJp
bmcoKSAmJiBtX3BsYXllci0+dmlzaWJsZSgpKQorICAgICAgICBzZXRVcFZpZGVvUmVuZGVyaW5n
KCk7CisKICAgICBpZiAobV9uZXR3b3JrU3RhdGUgIT0gb2xkTmV0d29ya1N0YXRlKQogICAgICAg
ICBtX3BsYXllci0+bmV0d29ya1N0YXRlQ2hhbmdlZCgpOworCiAgICAgaWYgKG1fcmVhZHlTdGF0
ZSAhPSBvbGRSZWFkeVN0YXRlKQogICAgICAgICBtX3BsYXllci0+cmVhZHlTdGF0ZUNoYW5nZWQo
KTsKIAotICAgIGlmIChsb2FkU3RhdGUgPj0gUVRNb3ZpZUxvYWRTdGF0ZUxvYWRlZCAmJiAoIW1f
cXRNb3ZpZVZpZXcgJiYgIW1fcXRWaWRlb1JlbmRlcmVyKSAmJiBtX3BsYXllci0+dmlzaWJsZSgp
KQotICAgICAgICBzZXRVcFZpZGVvUmVuZGVyaW5nKCk7Ci0KICAgICBpZiAobG9hZFN0YXRlID49
IFFUTW92aWVMb2FkU3RhdGVMb2FkZWQpIHsKICAgICAgICAgZmxvYXQgZHVyID0gZHVyYXRpb24o
KTsKICAgICAgICAgaWYgKGR1ciAhPSBtX2R1cmF0aW9uKSB7CkBAIC0xMTQ1LDcgKzEyNDQsMjYg
QEAgdm9pZCBNZWRpYVBsYXllclByaXZhdGU6OnNhd1Vuc3VwcG9ydGVkVHJhY2tzKCkKICAgICBt
X3BsYXllci0+bWVkaWFQbGF5ZXJDbGllbnQoKS0+bWVkaWFQbGF5ZXJTYXdVbnN1cHBvcnRlZFRy
YWNrcyhtX3BsYXllcik7CiB9CiAKKyNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCiti
b29sIE1lZGlhUGxheWVyUHJpdmF0ZTo6c3VwcG9ydHNBY2NlbGVyYXRlZFJlbmRlcmluZygpIGNv
bnN0Cit7CisgICAgcmV0dXJuIGdldFFUTW92aWVMYXllckNsYXNzKCkgIT0gTmlsOworfQorCit2
b2lkIE1lZGlhUGxheWVyUHJpdmF0ZTo6YWNjZWxlcmF0ZWRSZW5kZXJpbmdTdGF0ZUNoYW5nZWQo
KQoreworICAgIC8vIFNldCB1cCBvciBjaGFuZ2UgdGhlIHJlbmRlcmluZyBwYXRoIGlmIG5lY2Vz
c2FyeS4KKyAgICBzZXRVcFZpZGVvUmVuZGVyaW5nKCk7CisKKyAgICBpZiAoY3VycmVudFJlbmRl
cmluZ01vZGUoKSA9PSBNZWRpYVJlbmRlcmluZ01vdmllTGF5ZXIpIHsKKyAgICAgICAgR3JhcGhp
Y3NMYXllciogdmlkZW9HcmFwaGljc0xheWVyID0gbV9wbGF5ZXItPm1lZGlhUGxheWVyQ2xpZW50
KCktPm1lZGlhUGxheWVyR3JhcGhpY3NMYXllcihtX3BsYXllcik7CisgICAgICAgIGlmICh2aWRl
b0dyYXBoaWNzTGF5ZXIpCisgICAgICAgICAgICB2aWRlb0dyYXBoaWNzTGF5ZXItPnNldENvbnRl
bnRzVG9WaWRlbygoUGxhdGZvcm1MYXllciAqKW1fcXRWaWRlb0xheWVyLmdldCgpKTsKKyAgICB9
CiB9CisjZW5kaWYKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiBAaW1wbGVtZW50YXRpb24g
V2ViQ29yZU1vdmllT2JzZXJ2ZXIKIApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyTGF5ZXIuY3BwIGIvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuY3BwCmluZGV4IDVk
NGI0NzUuLjQxZTQ3YjYgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVy
LmNwcAorKysgYi9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5jcHAKQEAgLTIyOSw2ICsy
MjksMTAgQEAgUmVuZGVyTGF5ZXJDb21wb3NpdG9yKiBSZW5kZXJMYXllcjo6Y29tcG9zaXRvcigp
IGNvbnN0CiAKIHZvaWQgUmVuZGVyTGF5ZXI6OnJlbmRlcmVyQ29udGVudENoYW5nZWQoKQogewor
ICAgIC8vIFRoaXMgY2FuIGdldCBjYWxsZWQgd2hlbiB2aWRlbyBiZWNvbWVzIGFjY2VsZXJhdGVk
LCBzbyB0aGUgbGF5ZXJzIG1heSBjaGFuZ2UuCisgICAgaWYgKGNvbXBvc2l0b3IoKS0+dXBkYXRl
TGF5ZXJDb21wb3NpdGluZ1N0YXRlKHRoaXMpKQorICAgICAgICBjb21wb3NpdG9yKCktPnNldENv
bXBvc2l0aW5nTGF5ZXJzTmVlZFVwZGF0ZSgpOworCiAgICAgaWYgKG1fYmFja2luZykKICAgICAg
ICAgbV9iYWNraW5nLT5yZW5kZXJlckNvbnRlbnRDaGFuZ2VkKCk7CiB9CmRpZmYgLS1naXQgYS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckJhY2tpbmcuY3BwIGIvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyTGF5ZXJCYWNraW5nLmNwcAppbmRleCAzMjE4ZmZlLi43ZjA5YmViIDEwMDY0NAot
LS0gYS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckJhY2tpbmcuY3BwCisrKyBiL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQmFja2luZy5jcHAKQEAgLTU3MCwxMSArNTcwLDE1IEBA
IGJvb2wgUmVuZGVyTGF5ZXJCYWNraW5nOjpjYW5Vc2VEaXJlY3RDb21wb3NpdGluZygpIGNvbnN0
CiAgICAgUmVuZGVyT2JqZWN0KiByZW5kZXJPYmplY3QgPSByZW5kZXJlcigpOwogICAgIAogICAg
IC8vIFJlamVjdCBhbnl0aGluZyB0aGF0IGlzbid0IGFuIGltYWdlCi0gICAgaWYgKCFyZW5kZXJP
YmplY3QtPmlzSW1hZ2UoKSkKKyAgICBpZiAoIXJlbmRlck9iamVjdC0+aXNJbWFnZSgpICYmICFy
ZW5kZXJPYmplY3QtPmlzVmlkZW8oKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIAogICAg
IGlmIChyZW5kZXJPYmplY3QtPmhhc01hc2soKSB8fCByZW5kZXJPYmplY3QtPmhhc1JlZmxlY3Rp
b24oKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgLy8gVmlkZW8gY2FuIHVzZSBhbiBp
bm5lciBsYXllciBldmVuIGlmIGl0IGhhcyBib3ggZGVjb3JhdGlvbnM7IHdlIGRyYXcgdGhvc2Ug
aW50byBhbm90aGVyIGxheWVyLgorICAgIGlmIChyZW5kZXJPYmplY3QtPmlzVmlkZW8oKSkKKyAg
ICAgICAgcmV0dXJuIHRydWU7CiAgICAgCiAgICAgLy8gUmVqZWN0IGFueXRoaW5nIHRoYXQgd291
bGQgcmVxdWlyZSB0aGUgaW1hZ2UgdG8gYmUgZHJhd24gdmlhIHRoZSBHcmFwaGljc0NvbnRleHQs
CiAgICAgLy8gbGlrZSBib3JkZXIsIHNoYWRvd3MgZXRjLiBTb2xpZCBiYWNrZ3JvdW5kIGNvbG9y
IGlzIE9LLgpAQCAtNjU3LDcgKzY2MSwxMyBAQCBJbnRSZWN0IFJlbmRlckxheWVyQmFja2luZzo6
Y29udGVudHNCb3goY29uc3QgR3JhcGhpY3NMYXllciopCiAgICAgaWYgKCFyZW5kZXJlcigpLT5p
c0JveCgpKQogICAgICAgICByZXR1cm4gSW50UmVjdCgpOwogCi0gICAgSW50UmVjdCBjb250ZW50
c1JlY3QgPSB0b1JlbmRlckJveChyZW5kZXJlcigpKS0+Y29udGVudEJveFJlY3QoKTsKKyAgICBJ
bnRSZWN0IGNvbnRlbnRzUmVjdDsKKyAgICBpZiAocmVuZGVyZXIoKS0+aXNWaWRlbygpKSB7Cisg
ICAgICAgIFJlbmRlclZpZGVvKiB2aWRlb1JlbmRlcmVyID0gc3RhdGljX2Nhc3Q8UmVuZGVyVmlk
ZW8qPihyZW5kZXJlcigpKTsKKyAgICAgICAgY29udGVudHNSZWN0ID0gdmlkZW9SZW5kZXJlci0+
dmlkZW9Cb3goKTsKKyAgICB9IGVsc2UKKyAgICAgICAgY29udGVudHNSZWN0ID0gdG9SZW5kZXJC
b3gocmVuZGVyZXIoKSktPmNvbnRlbnRCb3hSZWN0KCk7CisKICAgICBJbnRTaXplIGNvbnRlbnRP
ZmZzZXQgPSBjb250ZW50T2Zmc2V0SW5Db21wb3N0aW5nTGF5ZXIoKTsKICAgICBjb250ZW50c1Jl
Y3QubW92ZShjb250ZW50T2Zmc2V0KTsKICAgICByZXR1cm4gY29udGVudHNSZWN0OwpkaWZmIC0t
Z2l0IGEvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJDb21wb3NpdG9yLmNwcCBiL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQ29tcG9zaXRvci5jcHAKaW5kZXggZGM4YTJiNC4uMGQ2
NGFmNyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJDb21wb3NpdG9y
LmNwcAorKysgYi9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckNvbXBvc2l0b3IuY3BwCkBA
IC0zOCw2ICszOCw3IEBACiAjaW5jbHVkZSAiSGl0VGVzdFJlc3VsdC5oIgogI2luY2x1ZGUgIlBh
Z2UuaCIKICNpbmNsdWRlICJSZW5kZXJMYXllckJhY2tpbmcuaCIKKyNpbmNsdWRlICJSZW5kZXJW
aWRlby5oIgogI2luY2x1ZGUgIlJlbmRlclZpZXcuaCIKIAogI2lmIFBST0ZJTEVfTEFZRVJfUkVC
VUlMRApAQCAtMjAxLDYgKzIwMiwxMiBAQCBib29sIFJlbmRlckxheWVyQ29tcG9zaXRvcjo6dXBk
YXRlTGF5ZXJDb21wb3NpdGluZ1N0YXRlKFJlbmRlckxheWVyKiBsYXllciwgQ29tcAogICAgICAg
ICB9CiAgICAgfQogICAgIAorICAgIGlmIChsYXllckNoYW5nZWQgJiYgbGF5ZXItPnJlbmRlcmVy
KCktPmlzVmlkZW8oKSkgeworICAgICAgICAvLyBJZiBpdCdzIGEgdmlkZW8sIGdpdmUgdGhlIG1l
ZGlhIHBsYXllciBhIGNoYW5jZSB0byBob29rIHVwIHRvIHRoZSBsYXllci4KKyAgICAgICAgUmVu
ZGVyVmlkZW8qIHZpZGVvID0gc3RhdGljX2Nhc3Q8UmVuZGVyVmlkZW8qPihsYXllci0+cmVuZGVy
ZXIoKSk7CisgICAgICAgIHZpZGVvLT5hY2NlbGVyYXRlZFJlbmRlcmluZ1N0YXRlQ2hhbmdlZCgp
OworICAgIH0KKyAgICAKICAgICAvLyBTZWUgaWYgd2UgbmVlZCBjb250ZW50IG9yIGNsaXBwaW5n
IGxheWVycy4gTWV0aG9kcyBjYWxsZWQgaGVyZSBzaG91bGQgYXNzdW1lCiAgICAgLy8gdGhhdCB0
aGUgY29tcG9zaXRpbmcgc3RhdGUgb2YgZGVzY2VuZGFudCBsYXllcnMgaGFzIG5vdCBiZWVuIHVw
ZGF0ZWQgeWV0LgogICAgIGlmIChsYXllci0+YmFja2luZygpICYmIGxheWVyLT5iYWNraW5nKCkt
PnVwZGF0ZUdyYXBoaWNzTGF5ZXJDb25maWd1cmF0aW9uKCkpCkBAIC0zNTcsNiArMzY0LDE0IEBA
IHZvaWQgUmVuZGVyTGF5ZXJDb21wb3NpdG9yOjpjb21wdXRlQ29tcG9zaXRpbmdSZXF1aXJlbWVu
dHMoUmVuZGVyTGF5ZXIqIGxheWVyLCBzCiAgICAgLy8gYSBjb21wb3NpdGluZyBsYXllciBhbW9u
ZyB0aGVtLCBzbyBzdGFydCBieSBhc3N1bWluZyBmYWxzZS4KICAgICBjaGlsZFN0YXRlLm1fc3Vi
dHJlZUlzQ29tcG9zaXRpbmcgPSBmYWxzZTsKIAorI2lmIEVOQUJMRShWSURFTykKKyAgICAvLyBW
aWRlbyBpcyBzcGVjaWFsLiBJdCdzIGEgcmVwbGFjZWQgZWxlbWVudCB3aXRoIGEgY29udGVudCBs
YXllciwgYnV0IGhhcyBzaGFkb3cgY29udGVudAorICAgIC8vIGZvciB0aGUgY29udHJvbGxlciB0
aGF0IG11c3QgcmVuZGVyIGluIGZyb250LiBXaXRob3V0IHRoaXMsIHRoZSBjb250cm9scyBmYWls
IHRvIHNob3cKKyAgICAvLyB3aGVuIHRoZSB2aWRlbyBlbGVtZW50IGlzIGEgc3RhY2tpbmcgY29u
dGV4dCAoZS5nLiBkdWUgdG8gb3BhY2l0eSBvciB0cmFuc2Zvcm0pLgorICAgIGlmICh3aWxsQmVD
b21wb3NpdGVkICYmIGxheWVyLT5yZW5kZXJlcigpLT5pc1ZpZGVvKCkpCisgICAgICAgIGNoaWxk
U3RhdGUubV9zdWJ0cmVlSXNDb21wb3NpdGluZyA9IHRydWU7CisjZW5kaWYKKwogI2lmbmRlZiBO
REVCVUcKICAgICArK2NoaWxkU3RhdGUubV9kZXB0aDsKICNlbmRpZgpAQCAtNDUxLDYgKzQ2Niwx
OCBAQCB2b2lkIFJlbmRlckxheWVyQ29tcG9zaXRvcjo6cGFyZW50SW5Sb290TGF5ZXIoUmVuZGVy
TGF5ZXIqIGxheWVyKQogICAgIH0KIH0KIAorI2lmIEVOQUJMRShWSURFTykKK2Jvb2wgUmVuZGVy
TGF5ZXJDb21wb3NpdG9yOjpjYW5BY2NlbGVyYXRlVmlkZW9SZW5kZXJpbmcoUmVuZGVyVmlkZW8q
IG8pIGNvbnN0Cit7CisgICAgLy8gRklYTUU6IGlkZWFsbHkgd2UgbmVlZCB0byBsb29rIGF0IGFs
bCBhbmNlc3RvcnMgZm9yIG1hc2sgb3IgdmlkZW8uIEJ1dCBmb3Igbm93LAorICAgIC8vIGp1c3Qg
YmFpbCBvbiB0aGUgb2J2aW91cyBjYXNlcy4KKyAgICBpZiAoby0+aGFzTWFzaygpIHx8IG8tPmhh
c1JlZmxlY3Rpb24oKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgcmV0dXJuIG8tPnN1
cHBvcnRzQWNjZWxlcmF0ZWRSZW5kZXJpbmcoKTsKK30KKyNlbmRpZgorCiB2b2lkIFJlbmRlckxh
eWVyQ29tcG9zaXRvcjo6cmVidWlsZENvbXBvc2l0aW5nTGF5ZXJUcmVlKFJlbmRlckxheWVyKiBs
YXllciwgc3RydWN0IENvbXBvc2l0aW5nU3RhdGUmIGlvQ29tcFN0YXRlKQogewogICAgIGJvb2wg
d2FzQ29tcG9zaXRlZCA9IGxheWVyLT5pc0NvbXBvc2l0ZWQoKTsKQEAgLTY1OSw3ICs2ODYsMTIg
QEAgYm9vbCBSZW5kZXJMYXllckNvbXBvc2l0b3I6OnJlcXVpcmVzQ29tcG9zaXRpbmdMYXllcihj
b25zdCBSZW5kZXJMYXllciogbGF5ZXIpIGMKICAgICB9CiAgICAgCiAgICAgaWYgKCFnb3RSZWFz
b24gJiYgcmVxdWlyZXNDb21wb3NpdGluZ0ZvclRyYW5zZm9ybShsYXllci0+cmVuZGVyZXIoKSkp
IHsKLSAgICAgICAgZnByaW50ZihzdGRlcnIsICJSZW5kZXJMYXllciAlcCByZXF1aXJlcyBjb21w
b3NpdGluZyBsYXllciBiZWNhdXNlOiBpdCBoYXMgM2QgdHJhbnNmb3JtLCBwZXJzcGVjdGl2ZSwg
YmFja2ZhY2UsIG9yIGFuaW1hdGluZyB0cmFuc2Zvcm1cbiIsIGxheWVyKTsKKyAgICAgICAgZnBy
aW50ZihzdGRlcnIsICJSZW5kZXJMYXllciAlcCByZXF1aXJlcyBjb21wb3NpdGluZyBsYXllciBi
ZWNhdXNlOiBpdCBoYXMgM2QgdHJhbnNmb3JtLCBwZXJzcGVjdGl2ZSBvciBiYWNrZmFjZS1oaWRk
ZW5cbiIsIGxheWVyKTsKKyAgICAgICAgZ290UmVhc29uID0gdHJ1ZTsKKyAgICB9CisKKyAgICBp
ZiAoIWdvdFJlYXNvbiAmJiByZXF1aXJlc0NvbXBvc2l0aW5nRm9yVmlkZW8obGF5ZXItPnJlbmRl
cmVyKCkpKSB7CisgICAgICAgIGZwcmludGYoc3RkZXJyLCAiUmVuZGVyTGF5ZXIgJXAgcmVxdWly
ZXMgY29tcG9zaXRpbmcgbGF5ZXIgYmVjYXVzZTogaXQgaXMgdmlkZW9cbiIsIGxheWVyKTsKICAg
ICAgICAgZ290UmVhc29uID0gdHJ1ZTsKICAgICB9CiAKQEAgLTY4NSw2ICs3MTcsNyBAQCBib29s
IFJlbmRlckxheWVyQ29tcG9zaXRvcjo6cmVxdWlyZXNDb21wb3NpdGluZ0xheWVyKGNvbnN0IFJl
bmRlckxheWVyKiBsYXllcikgYwogICAgIC8vIFRoZSByb290IGxheWVyIGFsd2F5cyBoYXMgYSBj
b21wb3NpdGluZyBsYXllciwgYnV0IGl0IG1heSBub3QgaGF2ZSBiYWNraW5nLgogICAgIHJldHVy
biAoaW5Db21wb3NpdGluZ01vZGUoKSAmJiBsYXllci0+aXNSb290TGF5ZXIoKSkgfHwKICAgICAg
ICAgICAgICByZXF1aXJlc0NvbXBvc2l0aW5nRm9yVHJhbnNmb3JtKGxheWVyLT5yZW5kZXJlcigp
KSB8fAorICAgICAgICAgICAgIHJlcXVpcmVzQ29tcG9zaXRpbmdGb3JWaWRlbyhsYXllci0+cmVu
ZGVyZXIoKSkgfHwKICAgICAgICAgICAgICBsYXllci0+cmVuZGVyZXIoKS0+c3R5bGUoKS0+YmFj
a2ZhY2VWaXNpYmlsaXR5KCkgPT0gQmFja2ZhY2VWaXNpYmlsaXR5SGlkZGVuIHx8CiAgICAgICAg
ICAgICAgY2xpcHNDb21wb3NpdGluZ0Rlc2NlbmRhbnRzKGxheWVyKSB8fAogICAgICAgICAgICAg
IHJlcXVpcmVzQ29tcG9zaXRpbmdGb3JBbmltYXRpb24obGF5ZXItPnJlbmRlcmVyKCkpOwpAQCAt
NzQ1LDYgKzc3OCwxNyBAQCBib29sIFJlbmRlckxheWVyQ29tcG9zaXRvcjo6cmVxdWlyZXNDb21w
b3NpdGluZ0ZvclRyYW5zZm9ybShSZW5kZXJPYmplY3QqIHJlbmRlcgogICAgIHJldHVybiByZW5k
ZXJlci0+aGFzVHJhbnNmb3JtKCkgJiYgKHN0eWxlLT50cmFuc2Zvcm0oKS5oYXMzRE9wZXJhdGlv
bigpIHx8IHN0eWxlLT50cmFuc2Zvcm1TdHlsZTNEKCkgPT0gVHJhbnNmb3JtU3R5bGUzRFByZXNl
cnZlM0QgfHwgc3R5bGUtPmhhc1BlcnNwZWN0aXZlKCkpOwogfQogCitib29sIFJlbmRlckxheWVy
Q29tcG9zaXRvcjo6cmVxdWlyZXNDb21wb3NpdGluZ0ZvclZpZGVvKFJlbmRlck9iamVjdCogcmVu
ZGVyZXIpIGNvbnN0Cit7CisjaWYgRU5BQkxFKFZJREVPKQorICAgIGlmIChyZW5kZXJlci0+aXNW
aWRlbygpKSB7CisgICAgICAgIFJlbmRlclZpZGVvKiB2aWRlbyA9IHN0YXRpY19jYXN0PFJlbmRl
clZpZGVvKj4ocmVuZGVyZXIpOworICAgICAgICByZXR1cm4gY2FuQWNjZWxlcmF0ZVZpZGVvUmVu
ZGVyaW5nKHZpZGVvKTsKKyAgICB9CisjZW5kaWYKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKIGJv
b2wgUmVuZGVyTGF5ZXJDb21wb3NpdG9yOjpyZXF1aXJlc0NvbXBvc2l0aW5nRm9yQW5pbWF0aW9u
KFJlbmRlck9iamVjdCogcmVuZGVyZXIpCiB7CiAgICAgQW5pbWF0aW9uQ29udHJvbGxlciogYW5p
bUNvbnRyb2xsZXIgPSByZW5kZXJlci0+YW5pbWF0aW9uKCk7CmRpZmYgLS1naXQgYS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJMYXllckNvbXBvc2l0b3IuaCBiL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlckxheWVyQ29tcG9zaXRvci5oCmluZGV4IDc2Y2IzNWYuLmYwMWNhMWMgMTAwNjQ0Ci0tLSBh
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQ29tcG9zaXRvci5oCisrKyBiL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlckxheWVyQ29tcG9zaXRvci5oCkBAIC0zMyw2ICszMyw5IEBAIG5hbWVz
cGFjZSBXZWJDb3JlIHsKICNkZWZpbmUgUFJPRklMRV9MQVlFUl9SRUJVSUxEIDAKIAogY2xhc3Mg
R3JhcGhpY3NMYXllcjsKKyNpZiBFTkFCTEUoVklERU8pCitjbGFzcyBSZW5kZXJWaWRlbzsKKyNl
bmRpZgogCiAvLyBSZW5kZXJMYXllckNvbXBvc2l0b3IgbWFuYWdlcyB0aGUgaGllcmFyY2h5IG9m
CiAvLyBjb21wb3NpdGVkIFJlbmRlckxheWVycy4gSXQgZGV0ZXJtaW5lcyB3aGljaCBSZW5kZXJM
YXllcnMKQEAgLTk3LDYgKzEwMCwxMSBAQCBwdWJsaWM6CiAgICAgdm9pZCB3aWxsTW92ZU9mZnNj
cmVlbigpOwogCiAgICAgdm9pZCB1cGRhdGVSb290TGF5ZXJQb3NpdGlvbigpOworICAgIAorI2lm
IEVOQUJMRShWSURFTykKKyAgICAvLyBVc2UgYnkgUmVuZGVyVmlkZW8gdG8gYXNrIGlmIGl0IHNo
b3VsZCB0cnkgdG8gdXNlIGFjY2VsZXJhdGVkIGNvbXBvc2l0aW5nLgorICAgIGJvb2wgY2FuQWNj
ZWxlcmF0ZVZpZGVvUmVuZGVyaW5nKFJlbmRlclZpZGVvKikgY29uc3Q7CisjZW5kaWYKIAogICAg
IC8vIFdhbGsgdGhlIHRyZWUgbG9va2luZyBmb3IgbGF5ZXJzIHdpdGggM2QgdHJhbnNmb3Jtcy4g
VXNlZnVsIGluIGNhc2UgeW91IG5lZWQKICAgICAvLyB0byBrbm93IGlmIHRoZXJlIGlzIG5vbi1h
ZmZpbmUgY29udGVudCwgZS5nLiBmb3IgZHJhd2luZyBpbnRvIGFuIGltYWdlLgpAQCAtMTI3LDYg
KzEzNSw3IEBAIHByaXZhdGU6CiAgICAgLy8gV2hldGhlciBhIHJ1bm5pbmcgdHJhbnNpdGlvbiBv
ciBhbmltYXRpb24gZW5mb3JjZXMgdGhlIG5lZWQgZm9yIGEgY29tcG9zaXRpbmcgbGF5ZXIuCiAg
ICAgc3RhdGljIGJvb2wgcmVxdWlyZXNDb21wb3NpdGluZ0ZvckFuaW1hdGlvbihSZW5kZXJPYmpl
Y3QqKTsKICAgICBzdGF0aWMgYm9vbCByZXF1aXJlc0NvbXBvc2l0aW5nRm9yVHJhbnNmb3JtKFJl
bmRlck9iamVjdCopOworICAgIGJvb2wgcmVxdWlyZXNDb21wb3NpdGluZ0ZvclZpZGVvKFJlbmRl
ck9iamVjdCopIGNvbnN0OwogCiBwcml2YXRlOgogICAgIFJlbmRlclZpZXcqIG1fcmVuZGVyVmll
dzsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclZpZGVvLmNwcCBiL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlclZpZGVvLmNwcAppbmRleCBkNDdlMmYzLi4yNDZkMGMwIDEwMDY0
NAotLS0gYS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJWaWRlby5jcHAKKysrIGIvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyVmlkZW8uY3BwCkBAIC0zNSw2ICszNSwxMSBAQAogI2luY2x1ZGUgIkhU
TUxWaWRlb0VsZW1lbnQuaCIKICNpbmNsdWRlICJNZWRpYVBsYXllci5oIgogCisjaWYgVVNFKEFD
Q0VMRVJBVEVEX0NPTVBPU0lUSU5HKQorI2luY2x1ZGUgIlJlbmRlckxheWVyLmgiCisjaW5jbHVk
ZSAiUmVuZGVyTGF5ZXJCYWNraW5nLmgiCisjZW5kaWYKKwogdXNpbmcgbmFtZXNwYWNlIHN0ZDsK
IAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtMTM5LDYgKzE0NCwxMCBAQCB2b2lkIFJlbmRlclZp
ZGVvOjp1cGRhdGVQbGF5ZXIoKQogICAgICAgICBtZWRpYVBsYXllci0+c2V0VmlzaWJsZShmYWxz
ZSk7CiAgICAgICAgIHJldHVybjsKICAgICB9CisKKyNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9T
SVRJTkcpCisgICAgbGF5ZXIoKS0+cmVuZGVyZXJDb250ZW50Q2hhbmdlZCgpOworI2VuZGlmCiAg
ICAgCiAgICAgSW50UmVjdCB2aWRlb0JvdW5kcyA9IHZpZGVvQm94KCk7IAogICAgIG1lZGlhUGxh
eWVyLT5zZXRGcmFtZVZpZXcoZG9jdW1lbnQoKS0+dmlldygpKTsKQEAgLTI0Niw2ICsyNTUsMzIg
QEAgdm9pZCBSZW5kZXJWaWRlbzo6Y2FsY1ByZWZXaWR0aHMoKQogICAgIHNldFByZWZXaWR0aHNE
aXJ0eShmYWxzZSk7CiB9CiAKKyNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCitib29s
IFJlbmRlclZpZGVvOjpzdXBwb3J0c0FjY2VsZXJhdGVkUmVuZGVyaW5nKCkgY29uc3QKK3sKKyAg
ICBNZWRpYVBsYXllciogcCA9IHBsYXllcigpOworICAgIGlmIChwKQorICAgICAgICByZXR1cm4g
cC0+c3VwcG9ydHNBY2NlbGVyYXRlZFJlbmRlcmluZygpOworCisgICAgcmV0dXJuIGZhbHNlOwor
fQorCit2b2lkIFJlbmRlclZpZGVvOjphY2NlbGVyYXRlZFJlbmRlcmluZ1N0YXRlQ2hhbmdlZCgp
Cit7CisgICAgTWVkaWFQbGF5ZXIqIHAgPSBwbGF5ZXIoKTsKKyAgICBpZiAocCkKKyAgICAgICAg
cC0+YWNjZWxlcmF0ZWRSZW5kZXJpbmdTdGF0ZUNoYW5nZWQoKTsKK30KKworR3JhcGhpY3NMYXll
ciogUmVuZGVyVmlkZW86OnZpZGVvR3JhcGhpY3NMYXllcigpIGNvbnN0Cit7CisgICAgaWYgKGhh
c0xheWVyKCkgJiYgbGF5ZXIoKS0+aXNDb21wb3NpdGVkKCkpCisgICAgICAgIHJldHVybiBsYXll
cigpLT5iYWNraW5nKCktPmdyYXBoaWNzTGF5ZXIoKTsKKworICAgIHJldHVybiAwOworfQorI2Vu
ZGlmICAvLyBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCisKIH0gLy8gbmFtZXNwYWNlIFdl
YkNvcmUKIAogI2VuZGlmCmRpZmYgLS1naXQgYS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJWaWRl
by5oIGIvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVmlkZW8uaAppbmRleCA0Y2JiMzI4Li4xYzdi
MjU5IDEwMDY0NAotLS0gYS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJWaWRlby5oCisrKyBiL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlclZpZGVvLmgKQEAgLTMzLDYgKzMzLDkgQEAKIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKICAgICAKIGNsYXNzIEhUTUxNZWRpYUVsZW1lbnQ7CisjaWYgVVNFKEFDQ0VM
RVJBVEVEX0NPTVBPU0lUSU5HKQorY2xhc3MgR3JhcGhpY3NMYXllcjsKKyNlbmRpZgogCiBjbGFz
cyBSZW5kZXJWaWRlbyA6IHB1YmxpYyBSZW5kZXJNZWRpYSB7CiBwdWJsaWM6CkBAIC01NCw5ICs1
NywxNiBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIGNhbGNQcmVmV2lkdGhzKCk7CiAgICAg
CiAgICAgdm9pZCB2aWRlb1NpemVDaGFuZ2VkKCk7CisgICAgSW50UmVjdCB2aWRlb0JveCgpIGNv
bnN0OwogICAgIAogICAgIHZvaWQgdXBkYXRlRnJvbUVsZW1lbnQoKTsKIAorI2lmIFVTRShBQ0NF
TEVSQVRFRF9DT01QT1NJVElORykKKyAgICBib29sIHN1cHBvcnRzQWNjZWxlcmF0ZWRSZW5kZXJp
bmcoKSBjb25zdDsKKyAgICB2aXJ0dWFsIHZvaWQgYWNjZWxlcmF0ZWRSZW5kZXJpbmdTdGF0ZUNo
YW5nZWQoKTsKKyAgICBHcmFwaGljc0xheWVyKiB2aWRlb0dyYXBoaWNzTGF5ZXIoKSBjb25zdDsK
KyNlbmRpZgorCiBwcm90ZWN0ZWQ6CiAgICAgdmlydHVhbCB2b2lkIGludHJpbnNpY1NpemVDaGFu
Z2VkKCkgeyB2aWRlb1NpemVDaGFuZ2VkKCk7IH0KIApAQCAtNjcsOCArNzcsNiBAQCBwcml2YXRl
OgogICAgIGJvb2wgaXNXaWR0aFNwZWNpZmllZCgpIGNvbnN0OwogICAgIGJvb2wgaXNIZWlnaHRT
cGVjaWZpZWQoKSBjb25zdDsKICAgICAKLSAgICBJbnRSZWN0IHZpZGVvQm94KCkgY29uc3Q7Ci0K
ICAgICB2b2lkIHVwZGF0ZVBsYXllcigpOwogfTsKIAo=
</data>
<flag name="review"
          id="16134"
          type_id="1"
          status="+"
          setter="hyatt"
    />
          </attachment>
      

    </bug>

</bugzilla>