<?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>74047</bug_id>
          
          <creation_ts>2011-12-07 18:53:29 -0800</creation_ts>
          <short_desc>[chromium] Move NonCompositedContentHost to WebKit</short_desc>
          <delta_ts>2011-12-08 16:42:23 -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>New Bugs</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="James Robinson">jamesr</reporter>
          <assigned_to name="James Robinson">jamesr</assigned_to>
          <cc>cc-bugs</cc>
    
    <cc>enne</cc>
    
    <cc>fishd</cc>
    
    <cc>kbr</cc>
    
    <cc>nduca</cc>
    
    <cc>shawnsingh</cc>
    
    <cc>vangelis</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>517099</commentid>
    <comment_count>0</comment_count>
    <who name="James Robinson">jamesr</who>
    <bug_when>2011-12-07 18:53:29 -0800</bug_when>
    <thetext>[chromium] Move NonCompositedContentHost to WebKit</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>517102</commentid>
    <comment_count>1</comment_count>
      <attachid>118308</attachid>
    <who name="James Robinson">jamesr</who>
    <bug_when>2011-12-07 18:56:32 -0800</bug_when>
    <thetext>Created attachment 118308
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>517103</commentid>
    <comment_count>2</comment_count>
    <who name="James Robinson">jamesr</who>
    <bug_when>2011-12-07 18:56:54 -0800</bug_when>
    <thetext>Pretty simple one.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>517117</commentid>
    <comment_count>3</comment_count>
    <who name="Adrienne Walker">enne</who>
    <bug_when>2011-12-07 19:25:17 -0800</bug_when>
    <thetext>Looks good to me.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>517682</commentid>
    <comment_count>4</comment_count>
    <who name="James Robinson">jamesr</who>
    <bug_when>2011-12-08 12:26:49 -0800</bug_when>
    <thetext>Would some kind WebKit reviewer like to officially r+ this before it bitrots?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>517845</commentid>
    <comment_count>5</comment_count>
      <attachid>118308</attachid>
    <who name="Kenneth Russell">kbr</who>
    <bug_when>2011-12-08 15:31:54 -0800</bug_when>
    <thetext>Comment on attachment 118308
Patch

rs=me based on enne&apos;s review.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>517879</commentid>
    <comment_count>6</comment_count>
      <attachid>118308</attachid>
    <who name="James Robinson">jamesr</who>
    <bug_when>2011-12-08 16:11:16 -0800</bug_when>
    <thetext>Comment on attachment 118308
Patch

Thanks Ken. Let&apos;s see if the bot can handle this...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>517910</commentid>
    <comment_count>7</comment_count>
      <attachid>118308</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-12-08 16:42:19 -0800</bug_when>
    <thetext>Comment on attachment 118308
Patch

Clearing flags on attachment: 118308

Committed r102397: &lt;http://trac.webkit.org/changeset/102397&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>517911</commentid>
    <comment_count>8</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-12-08 16:42:23 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>118308</attachid>
            <date>2011-12-07 18:56:32 -0800</date>
            <delta_ts>2011-12-08 16:42:19 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-74047-20111207185631.patch</filename>
            <type>text/plain</type>
            <size>26901</size>
            <attacher name="James Robinson">jamesr</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTAyMjk4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNWZmZjNhNzBjNjYyYmQ1
MDE2NzY3NDBkNzAwMzI0MTU0OWExYzdkZi4uNGU3MzZlNzM0NWE1ODdiMzI4YWJkZmZhYzFiMTJl
ZjYzYzQzODZjOCAxMDA3NTUKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3IEBACisyMDExLTEyLTA3ICBKYW1l
cyBSb2JpbnNvbiAgPGphbWVzckBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgW2Nocm9taXVtXSBN
b3ZlIE5vbkNvbXBvc2l0ZWRDb250ZW50SG9zdCB0byBXZWJLaXQKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTc0MDQ3CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVXBkYXRlcyBXZWJDb3JlLmd5cGkgdG8gcmVt
b3ZlIGZpbGVzIG5vIGxvbmdlciB3aXRoaW4gV2ViQ29yZSBhbmQgcmVtb3ZlcyB1bnVzZWQgZm9y
d2FyZCBkZWNsYXJhdGlvbiBhbmQgaW5jbHVkZQorICAgICAgICBmcm9tIExheWVyUmVuZGVyZXJD
aHJvbWl1bS4KKworICAgICAgICAqIFdlYkNvcmUuZ3lwaToKKyAgICAgICAgKiBwbGF0Zm9ybS9n
cmFwaGljcy9jaHJvbWl1bS9MYXllclJlbmRlcmVyQ2hyb21pdW0uY3BwOgorICAgICAgICAqIHBs
YXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0xheWVyUmVuZGVyZXJDaHJvbWl1bS5oOgorCiAyMDEx
LTEyLTA3ICBSeXVhbiBDaG9pICA8cnl1YW4uY2hvaUBzYW1zdW5nLmNvbT4KIAogICAgICAgICBb
RUZMXSBJbnRyb2R1Y2UgQXNzZXJ0TWF0Y2hpbmdFbnVtcy5jcHAuCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hh
bmdlTG9nCmluZGV4IGY4ZGVjMjI5MGViZjNmZWMzNGVjYzZkZDZmZTZmZDk0YzI5ZGRmZWMuLjJh
NjUzNzE2YTA2NzM3ZDI1MTRhNzkwZjNhNDE3OWE2NTcxNTRiMWQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0v
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsNDMgQEAKKzIwMTEtMTItMDcgIEphbWVzIFJvYmluc29uICA8
amFtZXNyQGNocm9taXVtLm9yZz4KKworICAgICAgICBbY2hyb21pdW1dIE1vdmUgTm9uQ29tcG9z
aXRlZENvbnRlbnRIb3N0IHRvIFdlYktpdAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9NzQwNDcKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBNb3ZlcyBOb25Db21wb3NpdGVkQ29udGVudEhvc3QgaW50byBXZWJL
aXQvY2hyb21pdW0vc3JjLiBUaGlzIGNsYXNzIGlzIGEgaGVscGVyIGNsYXNzIGRlc2lnbmVkIHRv
IG1ha2UgaXQgZWFzaWVyCisgICAgICAgIGZvciBXZWJWaWV3SW1wbCB0byBpbnRlcmZhY2Ugd2l0
aCB0aGUgY29tcG9zaXRvci4gVGhlIGNvbXBvc2l0b3IgcHJvcGVyIHNob3VsZCBub3QgZGVwZW5k
IG9uIHRoaXMgY2xhc3MsIGFuZAorICAgICAgICBvdGhlciBjbGllbnRzIG9mIHRoZSBjb21wb3Np
dG9yIGRvIG5vdCBuZWVkIHRoaXMgZnVuY3Rpb25hbGl0eS4KKworICAgICAgICBGb2xsb3ctdXAg
cGF0Y2hlcyB3aWxsIHRyYW5zaXRpb24gdGhpcyBjb2RlIGZyb20gdXNpbmcgY29tcG9zaXRvci1p
bnRlcm5hbCBpbnRlcmZhY2VzIGRpcmVjdGx5IHRvIHVzaW5nCisgICAgICAgIGhpZ2hlci1sZXZl
bCBpbnRlcmZhY2VzIGxpa2UgdGhlIFdlYktpdCBwbGF0Zm9ybSBBUElzLiBUaGlzIHBhdGNoIHNp
bXBseSBkb2VzIGEgZmlsZSBtdiBhbmQgdXBkYXRlcyBuYW1lc3BhY2VzCisgICAgICAgIHRvIGtl
ZXAgdGhpbmdzIHNpbXBsZXIuCisKKyAgICAgICAgUmVmYWN0b3Igb25seSBhbmQgY292ZXJlZCBi
eSBzZXZlcmFsIHVuaXQgdGVzdHMuCisKKyAgICAgICAgKiBXZWJLaXQuZ3lwOgorICAgICAgICAq
IHNyYy9Ob25Db21wb3NpdGVkQ29udGVudEhvc3QuY3BwOiBSZW5hbWVkIGZyb20gU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vTm9uQ29tcG9zaXRlZENvbnRlbnRIb3N0
LmNwcC4KKyAgICAgICAgKFdlYktpdDo6Tm9uQ29tcG9zaXRlZENvbnRlbnRIb3N0OjpOb25Db21w
b3NpdGVkQ29udGVudEhvc3QpOgorICAgICAgICAoV2ViS2l0OjpOb25Db21wb3NpdGVkQ29udGVu
dEhvc3Q6On5Ob25Db21wb3NpdGVkQ29udGVudEhvc3QpOgorICAgICAgICAoV2ViS2l0OjpOb25D
b21wb3NpdGVkQ29udGVudEhvc3Q6OnNldEJhY2tncm91bmRDb2xvcik6CisgICAgICAgIChXZWJL
aXQ6Ok5vbkNvbXBvc2l0ZWRDb250ZW50SG9zdDo6c2V0U2Nyb2xsTGF5ZXIpOgorICAgICAgICAo
V2ViS2l0OjpOb25Db21wb3NpdGVkQ29udGVudEhvc3Q6OnNldFZpZXdwb3J0KToKKyAgICAgICAg
KFdlYktpdDo6Tm9uQ29tcG9zaXRlZENvbnRlbnRIb3N0OjpzY3JvbGxMYXllcik6CisgICAgICAg
IChXZWJLaXQ6Ok5vbkNvbXBvc2l0ZWRDb250ZW50SG9zdDo6cHJvdGVjdFZpc2libGVUaWxlVGV4
dHVyZXMpOgorICAgICAgICAoV2ViS2l0OjpOb25Db21wb3NpdGVkQ29udGVudEhvc3Q6OmludmFs
aWRhdGVSZWN0KToKKyAgICAgICAgKFdlYktpdDo6Tm9uQ29tcG9zaXRlZENvbnRlbnRIb3N0Ojpu
b3RpZnlBbmltYXRpb25TdGFydGVkKToKKyAgICAgICAgKFdlYktpdDo6Tm9uQ29tcG9zaXRlZENv
bnRlbnRIb3N0Ojpub3RpZnlTeW5jUmVxdWlyZWQpOgorICAgICAgICAoV2ViS2l0OjpOb25Db21w
b3NpdGVkQ29udGVudEhvc3Q6OnBhaW50Q29udGVudHMpOgorICAgICAgICAoV2ViS2l0OjpOb25D
b21wb3NpdGVkQ29udGVudEhvc3Q6OnNob3dEZWJ1Z0JvcmRlcnMpOgorICAgICAgICAoV2ViS2l0
OjpOb25Db21wb3NpdGVkQ29udGVudEhvc3Q6OnNob3dSZXBhaW50Q291bnRlcik6CisgICAgICAg
ICogc3JjL05vbkNvbXBvc2l0ZWRDb250ZW50SG9zdC5oOiBSZW5hbWVkIGZyb20gU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vTm9uQ29tcG9zaXRlZENvbnRlbnRIb3N0
LmguCisgICAgICAgIChXZWJLaXQ6Ok5vbkNvbXBvc2l0ZWRDb250ZW50SG9zdDo6Y3JlYXRlKToK
KyAgICAgICAgKFdlYktpdDo6Tm9uQ29tcG9zaXRlZENvbnRlbnRIb3N0Ojp0b3BMZXZlbFJvb3RM
YXllcik6CisgICAgICAgICogc3JjL1dlYlZpZXdJbXBsLmNwcDoKKyAgICAgICAgKFdlYktpdDo6
V2ViVmlld0ltcGw6Om5vbkNvbXBvc2l0ZWRDb250ZW50SG9zdCk6CisgICAgICAgICogc3JjL1dl
YlZpZXdJbXBsLmg6CisgICAgICAgICogdGVzdHMvTGF5ZXJDaHJvbWl1bVRlc3QuY3BwOgorCiAy
MDExLTEyLTA3ICBBbGV4YW5kcmUgRWxpYXMgIDxhZWxpYXNAZ29vZ2xlLmNvbT4KIAogICAgICAg
ICBbY2hyb21pdW1dIFByZXNlcnZlIG9yaWdpbmFsIHBhZ2VTY2FsZSBsaW1pdHMgaW4gV2ViVmll
d0ltcGwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaSBiL1NvdXJjZS9X
ZWJDb3JlL1dlYkNvcmUuZ3lwaQppbmRleCBiM2ZiMThhNjgzOTg0MWMxYjI0YTkyMzdhOGYyY2Mw
ZjYyZTlkZDIwLi4yYzM5NjlkYjdiMTRhMzM1ZTM5ODU1MDVjYzA0YjY3NmUwZjA5ZjU5IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKKysrIGIvU291cmNlL1dlYkNvcmUv
V2ViQ29yZS5neXBpCkBAIC0zNTQwLDggKzM1NDAsNiBAQAogICAgICAgICAgICAgJ3BsYXRmb3Jt
L2dyYXBoaWNzL2Nocm9taXVtL0xheWVyVGV4dHVyZVN1YkltYWdlLmNwcCcsCiAgICAgICAgICAg
ICAncGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vTGF5ZXJUZXh0dXJlU3ViSW1hZ2UuaCcsCiAg
ICAgICAgICAgICAncGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vTGF5ZXJUZXh0dXJlVXBkYXRl
ci5oJywKLSAgICAgICAgICAgICdwbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9Ob25Db21wb3Np
dGVkQ29udGVudEhvc3QuY3BwJywKLSAgICAgICAgICAgICdwbGF0Zm9ybS9ncmFwaGljcy9jaHJv
bWl1bS9Ob25Db21wb3NpdGVkQ29udGVudEhvc3QuaCcsCiAgICAgICAgICAgICAncGxhdGZvcm0v
Z3JhcGhpY3MvY2hyb21pdW0vTWVkaWFQbGF5ZXJQcml2YXRlQ2hyb21pdW0uaCcsCiAgICAgICAg
ICAgICAncGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vUGxhdGZvcm1DYW52YXMuY3BwJywKICAg
ICAgICAgICAgICdwbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9QbGF0Zm9ybUNhbnZhcy5oJywK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0xh
eWVyUmVuZGVyZXJDaHJvbWl1bS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9jaHJvbWl1bS9MYXllclJlbmRlcmVyQ2hyb21pdW0uY3BwCmluZGV4IGI3YTZkMzA2MGM2MTU2
YmE5Yzg1M2U2ZjAyY2Y5MzUzMWYzNThlY2QuLjQ5ZDcxOTYyZTJhZjkwZDJkYWRlODY4NGNlZTM1
ZTIwN2YwYmVlOGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2Nocm9taXVtL0xheWVyUmVuZGVyZXJDaHJvbWl1bS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vTGF5ZXJSZW5kZXJlckNocm9taXVtLmNwcApAQCAt
NDMsNyArNDMsNiBAQAogI2luY2x1ZGUgIkxheWVyQ2hyb21pdW0uaCIKICNpbmNsdWRlICJMYXll
clBhaW50ZXJDaHJvbWl1bS5oIgogI2luY2x1ZGUgIk1hbmFnZWRUZXh0dXJlLmgiCi0jaW5jbHVk
ZSAiTm9uQ29tcG9zaXRlZENvbnRlbnRIb3N0LmgiCiAjaW5jbHVkZSAiTm90SW1wbGVtZW50ZWQu
aCIKICNpbmNsdWRlICJQbGF0Zm9ybUNvbG9yLmgiCiAjaW5jbHVkZSAiUmVuZGVyU3VyZmFjZUNo
cm9taXVtLmgiCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9j
aHJvbWl1bS9MYXllclJlbmRlcmVyQ2hyb21pdW0uaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2Nocm9taXVtL0xheWVyUmVuZGVyZXJDaHJvbWl1bS5oCmluZGV4IGZjMmE3YWIx
OTY5NmU0MjE3N2U5MmE1MmFhNzRhYTkyYjUyODdmZDIuLjgwNGVhZTYwYTBkZjdhNDdjNDNkNzZl
ODE3Y2M0ZTdlNmI1OTg1MTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2Nocm9taXVtL0xheWVyUmVuZGVyZXJDaHJvbWl1bS5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0xheWVyUmVuZGVyZXJDaHJvbWl1bS5oCkBA
IC02OCw3ICs2OCw2IEBAIGNsYXNzIENDTGF5ZXJJbXBsOwogY2xhc3MgQ0NMYXllclRyZWVIb3N0
SW1wbDsKIGNsYXNzIEdlb21ldHJ5QmluZGluZzsKIGNsYXNzIEdyYXBoaWNzQ29udGV4dDNEOwot
Y2xhc3MgTm9uQ29tcG9zaXRlZENvbnRlbnRIb3N0OwogY2xhc3MgVHJhY2tpbmdUZXh0dXJlQWxs
b2NhdG9yOwogY2xhc3MgTGF5ZXJSZW5kZXJlclN3YXBCdWZmZXJzQ29tcGxldGVDYWxsYmFja0Fk
YXB0ZXI7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2No
cm9taXVtL05vbkNvbXBvc2l0ZWRDb250ZW50SG9zdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9Ob25Db21wb3NpdGVkQ29udGVudEhvc3QuY3BwCmRlbGV0
ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwOTNlYTY4Y2EzMzNhNmEyNGI4MWFmMzIwMGNiNTMx
NDg0ODIwOWY3Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL05vbkNvbXBvc2l0ZWRD
b250ZW50SG9zdC5jcHAKKysrIC9kZXYvbnVsbApAQCAtMSwxNDQgKzAsMCBAQAotLyoKLSAqIENv
cHlyaWdodCAoQykgMjAxMSBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICoKLSAqIDEuICBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAot
ICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KLSAqIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgICBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlz
dHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQU5E
IElUUyBDT05UUklCVVRPUlMgIkFTIElTIiBBTkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECi0g
KiBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSIFBVUlBPU0UgQVJFCi0gKiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBP
UiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZCi0gKiBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdF
UwotICogKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJT
VElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOwotICogTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJ
VFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5ECi0gKiBPTiBB
TlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJ
TElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJ
U0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GCi0gKiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNp
bmNsdWRlICJjb25maWcuaCIKLQotI2luY2x1ZGUgIk5vbkNvbXBvc2l0ZWRDb250ZW50SG9zdC5o
IgotCi0jaW5jbHVkZSAiRmxvYXRSZWN0LmgiCi0jaW5jbHVkZSAiR3JhcGhpY3NMYXllci5oIgot
I2luY2x1ZGUgIkxheWVyQ2hyb21pdW0uaCIKLSNpbmNsdWRlICJMYXllclBhaW50ZXJDaHJvbWl1
bS5oIgotI2luY2x1ZGUgImNjL0NDTGF5ZXJUcmVlSG9zdC5oIgotCi1uYW1lc3BhY2UgV2ViQ29y
ZSB7Ci0KLU5vbkNvbXBvc2l0ZWRDb250ZW50SG9zdDo6Tm9uQ29tcG9zaXRlZENvbnRlbnRIb3N0
KFBhc3NPd25QdHI8TGF5ZXJQYWludGVyQ2hyb21pdW0+IGNvbnRlbnRQYWludCkKLSAgICA6IG1f
Y29udGVudFBhaW50KGNvbnRlbnRQYWludCkKLXsKLSAgICBtX2dyYXBoaWNzTGF5ZXIgPSBHcmFw
aGljc0xheWVyOjpjcmVhdGUodGhpcyk7Ci0jaWZuZGVmIE5ERUJVRwotICAgIG1fZ3JhcGhpY3NM
YXllci0+c2V0TmFtZSgibm9uLWNvbXBvc2l0ZWQgY29udGVudCIpOwotI2VuZGlmCi0gICAgbV9n
cmFwaGljc0xheWVyLT5zZXREcmF3c0NvbnRlbnQodHJ1ZSk7Ci0gICAgbV9ncmFwaGljc0xheWVy
LT5wbGF0Zm9ybUxheWVyKCktPnNldElzTm9uQ29tcG9zaXRlZENvbnRlbnQodHJ1ZSk7Ci0gICAg
bV9ncmFwaGljc0xheWVyLT5wbGF0Zm9ybUxheWVyKCktPnNldE9wYXF1ZSh0cnVlKTsKLX0KLQot
Tm9uQ29tcG9zaXRlZENvbnRlbnRIb3N0Ojp+Tm9uQ29tcG9zaXRlZENvbnRlbnRIb3N0KCkKLXsK
LX0KLQotdm9pZCBOb25Db21wb3NpdGVkQ29udGVudEhvc3Q6OnNldEJhY2tncm91bmRDb2xvcihj
b25zdCBDb2xvciYgY29sb3IpCi17Ci0gICAgaWYgKGNvbG9yLmlzVmFsaWQoKSkKLSAgICAgICAg
bV9ncmFwaGljc0xheWVyLT5wbGF0Zm9ybUxheWVyKCktPnNldEJhY2tncm91bmRDb2xvcihjb2xv
cik7Ci0gICAgZWxzZQotICAgICAgICBtX2dyYXBoaWNzTGF5ZXItPnBsYXRmb3JtTGF5ZXIoKS0+
c2V0QmFja2dyb3VuZENvbG9yKENvbG9yOjp3aGl0ZSk7Ci19Ci0KLXZvaWQgTm9uQ29tcG9zaXRl
ZENvbnRlbnRIb3N0OjpzZXRTY3JvbGxMYXllcihHcmFwaGljc0xheWVyKiBsYXllcikKLXsKLSAg
ICBtX2dyYXBoaWNzTGF5ZXItPnNldE5lZWRzRGlzcGxheSgpOwotCi0gICAgaWYgKCFsYXllcikg
ewotICAgICAgICBtX2dyYXBoaWNzTGF5ZXItPnJlbW92ZUZyb21QYXJlbnQoKTsKLSAgICAgICAg
bV9ncmFwaGljc0xheWVyLT5wbGF0Zm9ybUxheWVyKCktPnNldExheWVyVHJlZUhvc3QoMCk7Ci0g
ICAgICAgIHJldHVybjsKLSAgICB9Ci0KLSAgICBpZiAobGF5ZXItPnBsYXRmb3JtTGF5ZXIoKSA9
PSBzY3JvbGxMYXllcigpKQotICAgICAgICByZXR1cm47Ci0KLSAgICBsYXllci0+YWRkQ2hpbGRB
dEluZGV4KG1fZ3JhcGhpY3NMYXllci5nZXQoKSwgMCk7Ci0gICAgQVNTRVJUKHNjcm9sbExheWVy
KCkpOwotfQotCi12b2lkIE5vbkNvbXBvc2l0ZWRDb250ZW50SG9zdDo6c2V0Vmlld3BvcnQoY29u
c3QgSW50U2l6ZSYgdmlld3BvcnRTaXplLCBjb25zdCBJbnRTaXplJiBjb250ZW50c1NpemUsIGNv
bnN0IEludFBvaW50JiBzY3JvbGxQb3NpdGlvbiwgZmxvYXQgcGFnZVNjYWxlKQotewotICAgIGlm
ICghc2Nyb2xsTGF5ZXIoKSkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgYm9vbCB2aXNpYmxlUmVj
dENoYW5nZWQgPSBtX3ZpZXdwb3J0U2l6ZSAhPSB2aWV3cG9ydFNpemU7Ci0KLSAgICBtX3ZpZXdw
b3J0U2l6ZSA9IHZpZXdwb3J0U2l6ZTsKLSAgICBzY3JvbGxMYXllcigpLT5zZXRTY3JvbGxQb3Np
dGlvbihzY3JvbGxQb3NpdGlvbik7Ci0gICAgLy8gRHVlIHRvIHRoZSBwb3NzaWJpbGl0eSBvZiBw
aW5jaCB6b29tLCB0aGUgbm9uY29tcG9zaXRlZCBsYXllciBpcyBhbHdheXMKLSAgICAvLyBhc3N1
bWVkIHRvIGJlIHNjcm9sbGFibGUuCi0gICAgc2Nyb2xsTGF5ZXIoKS0+c2V0U2Nyb2xsYWJsZSh0
cnVlKTsKLSAgICBtX2dyYXBoaWNzTGF5ZXItPnNldFNpemUoY29udGVudHNTaXplKTsKLQotICAg
IGlmICh2aXNpYmxlUmVjdENoYW5nZWQpCi0gICAgICAgIG1fZ3JhcGhpY3NMYXllci0+c2V0TmVl
ZHNEaXNwbGF5KCk7Ci0KLSAgICBpZiAobV9ncmFwaGljc0xheWVyLT5wYWdlU2NhbGVGYWN0b3Io
KSAhPSBwYWdlU2NhbGUpCi0gICAgICAgIG1fZ3JhcGhpY3NMYXllci0+ZGV2aWNlT3JQYWdlU2Nh
bGVGYWN0b3JDaGFuZ2VkKCk7Ci19Ci0KLUxheWVyQ2hyb21pdW0qIE5vbkNvbXBvc2l0ZWRDb250
ZW50SG9zdDo6c2Nyb2xsTGF5ZXIoKQotewotICAgIGlmICghbV9ncmFwaGljc0xheWVyLT5wYXJl
bnQoKSkKLSAgICAgICAgcmV0dXJuIDA7Ci0gICAgcmV0dXJuIG1fZ3JhcGhpY3NMYXllci0+cGFy
ZW50KCktPnBsYXRmb3JtTGF5ZXIoKTsKLX0KLQotdm9pZCBOb25Db21wb3NpdGVkQ29udGVudEhv
c3Q6OnByb3RlY3RWaXNpYmxlVGlsZVRleHR1cmVzKCkKLXsKLSAgICBtX2dyYXBoaWNzTGF5ZXIt
PnBsYXRmb3JtTGF5ZXIoKS0+cHJvdGVjdFZpc2libGVUaWxlVGV4dHVyZXMoKTsKLX0KLQotdm9p
ZCBOb25Db21wb3NpdGVkQ29udGVudEhvc3Q6OmludmFsaWRhdGVSZWN0KGNvbnN0IEludFJlY3Qm
IHJlY3QpCi17Ci0gICAgbV9ncmFwaGljc0xheWVyLT5zZXROZWVkc0Rpc3BsYXlJblJlY3QoRmxv
YXRSZWN0KHJlY3QpKTsKLX0KLQotdm9pZCBOb25Db21wb3NpdGVkQ29udGVudEhvc3Q6Om5vdGlm
eUFuaW1hdGlvblN0YXJ0ZWQoY29uc3QgR3JhcGhpY3NMYXllciosIGRvdWJsZSAvKiB0aW1lICov
KQotewotICAgIC8vIEludGVudGlvbmFsbHkgbGVmdCBlbXB0eSBzaW5jZSB3ZSBkb24ndCBzdXBw
b3J0IGFuaW1hdGlvbnMgb24gdGhlIG5vbi1jb21wb3NpdGVkIGNvbnRlbnQuCi19Ci0KLXZvaWQg
Tm9uQ29tcG9zaXRlZENvbnRlbnRIb3N0Ojpub3RpZnlTeW5jUmVxdWlyZWQoY29uc3QgR3JhcGhp
Y3NMYXllciopCi17Ci0gICAgQ0NMYXllclRyZWVIb3N0KiBsYXllclRyZWVIb3N0ID0gbV9ncmFw
aGljc0xheWVyLT5wbGF0Zm9ybUxheWVyKCktPmxheWVyVHJlZUhvc3QoKTsKLSAgICBpZiAobGF5
ZXJUcmVlSG9zdCkKLSAgICAgICAgbGF5ZXJUcmVlSG9zdC0+c2V0TmVlZHNDb21taXQoKTsKLX0K
LQotdm9pZCBOb25Db21wb3NpdGVkQ29udGVudEhvc3Q6OnBhaW50Q29udGVudHMoY29uc3QgR3Jh
cGhpY3NMYXllciosIEdyYXBoaWNzQ29udGV4dCYgY29udGV4dCwgR3JhcGhpY3NMYXllclBhaW50
aW5nUGhhc2UsIGNvbnN0IEludFJlY3QmIGNsaXBSZWN0KQotewotICAgIG1fY29udGVudFBhaW50
LT5wYWludChjb250ZXh0LCBjbGlwUmVjdCk7Ci19Ci0KLWJvb2wgTm9uQ29tcG9zaXRlZENvbnRl
bnRIb3N0OjpzaG93RGVidWdCb3JkZXJzKCkgY29uc3QKLXsKLSAgICByZXR1cm4gZmFsc2U7Ci19
Ci0KLWJvb2wgTm9uQ29tcG9zaXRlZENvbnRlbnRIb3N0OjpzaG93UmVwYWludENvdW50ZXIoKSBj
b25zdAotewotICAgIHJldHVybiBmYWxzZTsKLX0KLQotfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vTm9u
Q29tcG9zaXRlZENvbnRlbnRIb3N0LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9jaHJvbWl1bS9Ob25Db21wb3NpdGVkQ29udGVudEhvc3QuaApkZWxldGVkIGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMjNhOWExYjE3OTcyNjBjZDk0MzM3NjU2ODI4NTA0ODM3OThmNzUwNy4uMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9Ob25Db21wb3NpdGVkQ29udGVudEhvc3QuaAor
KysgL2Rldi9udWxsCkBAIC0xLDgyICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTEg
R29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucwotICogYXJlIG1ldDoKLSAqCi0gKiAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAy
LiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKLSAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICAgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0g
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIEFORCBJVFMgQ09OVFJJQlVUT1JT
ICJBUyBJUyIgQU5EIEFOWQotICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAotICogV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQot
ICogRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgT1IgSVRTIENPTlRSSUJVVE9S
UyBCRSBMSUFCTEUgRk9SIEFOWQotICogRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BF
Q0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMKLSAqIChJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsKLSAqIExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORAotICogT04gQU5ZIFRIRU9SWSBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAq
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRSBPRgotICogVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaWZuZGVmIE5vbkNvbXBvc2l0
ZWRDb250ZW50SG9zdF9oCi0jZGVmaW5lIE5vbkNvbXBvc2l0ZWRDb250ZW50SG9zdF9oCi0KLSNp
bmNsdWRlICJHcmFwaGljc0xheWVyQ2xpZW50LmgiCi0jaW5jbHVkZSAiSW50U2l6ZS5oIgotCi0j
aW5jbHVkZSA8d3RmL05vbmNvcHlhYmxlLmg+Ci0jaW5jbHVkZSA8d3RmL093blB0ci5oPgotI2lu
Y2x1ZGUgPHd0Zi9QYXNzT3duUHRyLmg+Ci0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLQotY2xhc3Mg
Q29sb3I7Ci1jbGFzcyBHcmFwaGljc0xheWVyOwotY2xhc3MgR3JhcGhpY3NDb250ZXh0OwotY2xh
c3MgSW50UG9pbnQ7Ci1jbGFzcyBJbnRSZWN0OwotY2xhc3MgTGF5ZXJDaHJvbWl1bTsKLWNsYXNz
IExheWVyUGFpbnRlckNocm9taXVtOwotCi1jbGFzcyBOb25Db21wb3NpdGVkQ29udGVudEhvc3Qg
OiBwdWJsaWMgR3JhcGhpY3NMYXllckNsaWVudCB7Ci1XVEZfTUFLRV9OT05DT1BZQUJMRShOb25D
b21wb3NpdGVkQ29udGVudEhvc3QpOwotcHVibGljOgotICAgIHN0YXRpYyBQYXNzT3duUHRyPE5v
bkNvbXBvc2l0ZWRDb250ZW50SG9zdD4gY3JlYXRlKFBhc3NPd25QdHI8TGF5ZXJQYWludGVyQ2hy
b21pdW0+IGNvbnRlbnRQYWludCkKLSAgICB7Ci0gICAgICAgIHJldHVybiBhZG9wdFB0cihuZXcg
Tm9uQ29tcG9zaXRlZENvbnRlbnRIb3N0KGNvbnRlbnRQYWludCkpOwotICAgIH0KLSAgICB2aXJ0
dWFsIH5Ob25Db21wb3NpdGVkQ29udGVudEhvc3QoKTsKLQotICAgIHZvaWQgaW52YWxpZGF0ZVJl
Y3QoY29uc3QgSW50UmVjdCYpOwotICAgIHZvaWQgc2V0QmFja2dyb3VuZENvbG9yKGNvbnN0IENv
bG9yJik7Ci0gICAgdm9pZCBzZXRTY3JvbGxMYXllcihHcmFwaGljc0xheWVyKik7Ci0gICAgdm9p
ZCBzZXRWaWV3cG9ydChjb25zdCBJbnRTaXplJiB2aWV3cG9ydFNpemUsIGNvbnN0IEludFNpemUm
IGNvbnRlbnRzU2l6ZSwgY29uc3QgSW50UG9pbnQmIHNjcm9sbFBvc2l0aW9uLCBmbG9hdCBwYWdl
U2NhbGUpOwotICAgIHZvaWQgcHJvdGVjdFZpc2libGVUaWxlVGV4dHVyZXMoKTsKLSAgICBHcmFw
aGljc0xheWVyKiB0b3BMZXZlbFJvb3RMYXllcigpIGNvbnN0IHsgcmV0dXJuIG1fZ3JhcGhpY3NM
YXllci5nZXQoKTsgfQotCi1wcm90ZWN0ZWQ6Ci0gICAgZXhwbGljaXQgTm9uQ29tcG9zaXRlZENv
bnRlbnRIb3N0KFBhc3NPd25QdHI8TGF5ZXJQYWludGVyQ2hyb21pdW0+IGNvbnRlbnRQYWludCk7
Ci0KLXByaXZhdGU6Ci0gICAgLy8gR3JhcGhpY3NMYXllckNsaWVudAotICAgIHZpcnR1YWwgdm9p
ZCBub3RpZnlBbmltYXRpb25TdGFydGVkKGNvbnN0IEdyYXBoaWNzTGF5ZXIqLCBkb3VibGUgdGlt
ZSk7Ci0gICAgdmlydHVhbCB2b2lkIG5vdGlmeVN5bmNSZXF1aXJlZChjb25zdCBHcmFwaGljc0xh
eWVyKik7Ci0gICAgdmlydHVhbCB2b2lkIHBhaW50Q29udGVudHMoY29uc3QgR3JhcGhpY3NMYXll
ciosIEdyYXBoaWNzQ29udGV4dCYsIEdyYXBoaWNzTGF5ZXJQYWludGluZ1BoYXNlLCBjb25zdCBJ
bnRSZWN0JiBjbGlwUmVjdCk7Ci0gICAgdmlydHVhbCBib29sIHNob3dEZWJ1Z0JvcmRlcnMoKSBj
b25zdDsKLSAgICB2aXJ0dWFsIGJvb2wgc2hvd1JlcGFpbnRDb3VudGVyKCkgY29uc3Q7Ci0KLSAg
ICBMYXllckNocm9taXVtKiBzY3JvbGxMYXllcigpOwotCi0gICAgT3duUHRyPEdyYXBoaWNzTGF5
ZXI+IG1fZ3JhcGhpY3NMYXllcjsKLSAgICBPd25QdHI8TGF5ZXJQYWludGVyQ2hyb21pdW0+IG1f
Y29udGVudFBhaW50OwotICAgIEludFNpemUgbV92aWV3cG9ydFNpemU7Ci19OwotCi19IC8vIG5h
bWVzcGFjZSBXZWJDb3JlCi0KLSNlbmRpZiAvLyBOb25Db21wb3NpdGVkQ29udGVudEhvc3RfaApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9XZWJLaXQuZ3lwIGIvU291cmNlL1dl
YktpdC9jaHJvbWl1bS9XZWJLaXQuZ3lwCmluZGV4IDkyNDk2Nzk4NWU0YjJiMmJkMTVlYTk1YmI5
MjU5MDM5M2Y3NzFhZTAuLmM4MzA3ODFlOGQwZDMxN2VhYWFiOWI4Njc1OTY0NDA0MTZhOGUwYzcg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vV2ViS2l0Lmd5cAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L2Nocm9taXVtL1dlYktpdC5neXAKQEAgLTQzNiw2ICs0MzYsOCBAQAogICAgICAg
ICAgICAgICAgICdzcmMvSW5zcGVjdG9yQ2xpZW50SW1wbC5oJywKICAgICAgICAgICAgICAgICAn
c3JjL0luc3BlY3RvckZyb250ZW5kQ2xpZW50SW1wbC5jcHAnLAogICAgICAgICAgICAgICAgICdz
cmMvSW5zcGVjdG9yRnJvbnRlbmRDbGllbnRJbXBsLmgnLAorICAgICAgICAgICAgICAgICdzcmMv
Tm9uQ29tcG9zaXRlZENvbnRlbnRIb3N0LmNwcCcsCisgICAgICAgICAgICAgICAgJ3NyYy9Ob25D
b21wb3NpdGVkQ29udGVudEhvc3QuaCcsCiAgICAgICAgICAgICAgICAgJ3NyYy9hbmRyb2lkL1dl
YklucHV0RXZlbnRGYWN0b3J5LmNwcCcsCiAgICAgICAgICAgICAgICAgJ3NyYy9saW51eC9XZWJG
b250SW5mby5jcHAnLAogICAgICAgICAgICAgICAgICdzcmMvbGludXgvV2ViRm9udFJlbmRlcmlu
Zy5jcHAnLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvTm9uQ29tcG9z
aXRlZENvbnRlbnRIb3N0LmNwcCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL05vbkNvbXBv
c2l0ZWRDb250ZW50SG9zdC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYzcwNWY2YTcxYTI5N2Y4NGExMzBmODc2
OGJhMzA1NmYyYTRmNmY4NwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21p
dW0vc3JjL05vbkNvbXBvc2l0ZWRDb250ZW50SG9zdC5jcHAKQEAgLTAsMCArMSwxNDQgQEAKKy8q
CisgKiBDb3B5cmlnaHQgKEMpIDIwMTEgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqCisgKiAxLiAg
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisg
KiAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQ
UExFIEFORCBJVFMgQ09OVFJJQlVUT1JTICJBUyBJUyIgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1Q
TElFRAorICogV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUiBQVVJQT1NFIEFSRQorICogRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwg
QVBQTEUgT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWQorICogRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFM
IERBTUFHRVMKKyAqIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQg
T0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsKKyAqIExPU1MgT0YgVVNFLCBEQVRBLCBP
UiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORAor
ICogT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRgorICogVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAq
LworCisjaW5jbHVkZSAiY29uZmlnLmgiCisKKyNpbmNsdWRlICJOb25Db21wb3NpdGVkQ29udGVu
dEhvc3QuaCIKKworI2luY2x1ZGUgIkZsb2F0UmVjdC5oIgorI2luY2x1ZGUgIkdyYXBoaWNzTGF5
ZXIuaCIKKyNpbmNsdWRlICJMYXllckNocm9taXVtLmgiCisjaW5jbHVkZSAiTGF5ZXJQYWludGVy
Q2hyb21pdW0uaCIKKyNpbmNsdWRlICJjYy9DQ0xheWVyVHJlZUhvc3QuaCIKKworbmFtZXNwYWNl
IFdlYktpdCB7CisKK05vbkNvbXBvc2l0ZWRDb250ZW50SG9zdDo6Tm9uQ29tcG9zaXRlZENvbnRl
bnRIb3N0KFBhc3NPd25QdHI8V2ViQ29yZTo6TGF5ZXJQYWludGVyQ2hyb21pdW0+IGNvbnRlbnRQ
YWludCkKKyAgICA6IG1fY29udGVudFBhaW50KGNvbnRlbnRQYWludCkKK3sKKyAgICBtX2dyYXBo
aWNzTGF5ZXIgPSBXZWJDb3JlOjpHcmFwaGljc0xheWVyOjpjcmVhdGUodGhpcyk7CisjaWZuZGVm
IE5ERUJVRworICAgIG1fZ3JhcGhpY3NMYXllci0+c2V0TmFtZSgibm9uLWNvbXBvc2l0ZWQgY29u
dGVudCIpOworI2VuZGlmCisgICAgbV9ncmFwaGljc0xheWVyLT5zZXREcmF3c0NvbnRlbnQodHJ1
ZSk7CisgICAgbV9ncmFwaGljc0xheWVyLT5wbGF0Zm9ybUxheWVyKCktPnNldElzTm9uQ29tcG9z
aXRlZENvbnRlbnQodHJ1ZSk7CisgICAgbV9ncmFwaGljc0xheWVyLT5wbGF0Zm9ybUxheWVyKCkt
PnNldE9wYXF1ZSh0cnVlKTsKK30KKworTm9uQ29tcG9zaXRlZENvbnRlbnRIb3N0Ojp+Tm9uQ29t
cG9zaXRlZENvbnRlbnRIb3N0KCkKK3sKK30KKwordm9pZCBOb25Db21wb3NpdGVkQ29udGVudEhv
c3Q6OnNldEJhY2tncm91bmRDb2xvcihjb25zdCBXZWJDb3JlOjpDb2xvciYgY29sb3IpCit7Cisg
ICAgaWYgKGNvbG9yLmlzVmFsaWQoKSkKKyAgICAgICAgbV9ncmFwaGljc0xheWVyLT5wbGF0Zm9y
bUxheWVyKCktPnNldEJhY2tncm91bmRDb2xvcihjb2xvcik7CisgICAgZWxzZQorICAgICAgICBt
X2dyYXBoaWNzTGF5ZXItPnBsYXRmb3JtTGF5ZXIoKS0+c2V0QmFja2dyb3VuZENvbG9yKFdlYkNv
cmU6OkNvbG9yOjp3aGl0ZSk7Cit9CisKK3ZvaWQgTm9uQ29tcG9zaXRlZENvbnRlbnRIb3N0Ojpz
ZXRTY3JvbGxMYXllcihXZWJDb3JlOjpHcmFwaGljc0xheWVyKiBsYXllcikKK3sKKyAgICBtX2dy
YXBoaWNzTGF5ZXItPnNldE5lZWRzRGlzcGxheSgpOworCisgICAgaWYgKCFsYXllcikgeworICAg
ICAgICBtX2dyYXBoaWNzTGF5ZXItPnJlbW92ZUZyb21QYXJlbnQoKTsKKyAgICAgICAgbV9ncmFw
aGljc0xheWVyLT5wbGF0Zm9ybUxheWVyKCktPnNldExheWVyVHJlZUhvc3QoMCk7CisgICAgICAg
IHJldHVybjsKKyAgICB9CisKKyAgICBpZiAobGF5ZXItPnBsYXRmb3JtTGF5ZXIoKSA9PSBzY3Jv
bGxMYXllcigpKQorICAgICAgICByZXR1cm47CisKKyAgICBsYXllci0+YWRkQ2hpbGRBdEluZGV4
KG1fZ3JhcGhpY3NMYXllci5nZXQoKSwgMCk7CisgICAgQVNTRVJUKHNjcm9sbExheWVyKCkpOwor
fQorCit2b2lkIE5vbkNvbXBvc2l0ZWRDb250ZW50SG9zdDo6c2V0Vmlld3BvcnQoY29uc3QgV2Vi
Q29yZTo6SW50U2l6ZSYgdmlld3BvcnRTaXplLCBjb25zdCBXZWJDb3JlOjpJbnRTaXplJiBjb250
ZW50c1NpemUsIGNvbnN0IFdlYkNvcmU6OkludFBvaW50JiBzY3JvbGxQb3NpdGlvbiwgZmxvYXQg
cGFnZVNjYWxlKQoreworICAgIGlmICghc2Nyb2xsTGF5ZXIoKSkKKyAgICAgICAgcmV0dXJuOwor
CisgICAgYm9vbCB2aXNpYmxlUmVjdENoYW5nZWQgPSBtX3ZpZXdwb3J0U2l6ZSAhPSB2aWV3cG9y
dFNpemU7CisKKyAgICBtX3ZpZXdwb3J0U2l6ZSA9IHZpZXdwb3J0U2l6ZTsKKyAgICBzY3JvbGxM
YXllcigpLT5zZXRTY3JvbGxQb3NpdGlvbihzY3JvbGxQb3NpdGlvbik7CisgICAgLy8gRHVlIHRv
IHRoZSBwb3NzaWJpbGl0eSBvZiBwaW5jaCB6b29tLCB0aGUgbm9uY29tcG9zaXRlZCBsYXllciBp
cyBhbHdheXMKKyAgICAvLyBhc3N1bWVkIHRvIGJlIHNjcm9sbGFibGUuCisgICAgc2Nyb2xsTGF5
ZXIoKS0+c2V0U2Nyb2xsYWJsZSh0cnVlKTsKKyAgICBtX2dyYXBoaWNzTGF5ZXItPnNldFNpemUo
Y29udGVudHNTaXplKTsKKworICAgIGlmICh2aXNpYmxlUmVjdENoYW5nZWQpCisgICAgICAgIG1f
Z3JhcGhpY3NMYXllci0+c2V0TmVlZHNEaXNwbGF5KCk7CisKKyAgICBpZiAobV9ncmFwaGljc0xh
eWVyLT5wYWdlU2NhbGVGYWN0b3IoKSAhPSBwYWdlU2NhbGUpCisgICAgICAgIG1fZ3JhcGhpY3NM
YXllci0+ZGV2aWNlT3JQYWdlU2NhbGVGYWN0b3JDaGFuZ2VkKCk7Cit9CisKK1dlYkNvcmU6Okxh
eWVyQ2hyb21pdW0qIE5vbkNvbXBvc2l0ZWRDb250ZW50SG9zdDo6c2Nyb2xsTGF5ZXIoKQorewor
ICAgIGlmICghbV9ncmFwaGljc0xheWVyLT5wYXJlbnQoKSkKKyAgICAgICAgcmV0dXJuIDA7Cisg
ICAgcmV0dXJuIG1fZ3JhcGhpY3NMYXllci0+cGFyZW50KCktPnBsYXRmb3JtTGF5ZXIoKTsKK30K
Kwordm9pZCBOb25Db21wb3NpdGVkQ29udGVudEhvc3Q6OnByb3RlY3RWaXNpYmxlVGlsZVRleHR1
cmVzKCkKK3sKKyAgICBtX2dyYXBoaWNzTGF5ZXItPnBsYXRmb3JtTGF5ZXIoKS0+cHJvdGVjdFZp
c2libGVUaWxlVGV4dHVyZXMoKTsKK30KKwordm9pZCBOb25Db21wb3NpdGVkQ29udGVudEhvc3Q6
OmludmFsaWRhdGVSZWN0KGNvbnN0IFdlYkNvcmU6OkludFJlY3QmIHJlY3QpCit7CisgICAgbV9n
cmFwaGljc0xheWVyLT5zZXROZWVkc0Rpc3BsYXlJblJlY3QoV2ViQ29yZTo6RmxvYXRSZWN0KHJl
Y3QpKTsKK30KKwordm9pZCBOb25Db21wb3NpdGVkQ29udGVudEhvc3Q6Om5vdGlmeUFuaW1hdGlv
blN0YXJ0ZWQoY29uc3QgV2ViQ29yZTo6R3JhcGhpY3NMYXllciosIGRvdWJsZSAvKiB0aW1lICov
KQoreworICAgIC8vIEludGVudGlvbmFsbHkgbGVmdCBlbXB0eSBzaW5jZSB3ZSBkb24ndCBzdXBw
b3J0IGFuaW1hdGlvbnMgb24gdGhlIG5vbi1jb21wb3NpdGVkIGNvbnRlbnQuCit9CisKK3ZvaWQg
Tm9uQ29tcG9zaXRlZENvbnRlbnRIb3N0Ojpub3RpZnlTeW5jUmVxdWlyZWQoY29uc3QgV2ViQ29y
ZTo6R3JhcGhpY3NMYXllciopCit7CisgICAgV2ViQ29yZTo6Q0NMYXllclRyZWVIb3N0KiBsYXll
clRyZWVIb3N0ID0gbV9ncmFwaGljc0xheWVyLT5wbGF0Zm9ybUxheWVyKCktPmxheWVyVHJlZUhv
c3QoKTsKKyAgICBpZiAobGF5ZXJUcmVlSG9zdCkKKyAgICAgICAgbGF5ZXJUcmVlSG9zdC0+c2V0
TmVlZHNDb21taXQoKTsKK30KKwordm9pZCBOb25Db21wb3NpdGVkQ29udGVudEhvc3Q6OnBhaW50
Q29udGVudHMoY29uc3QgV2ViQ29yZTo6R3JhcGhpY3NMYXllciosIFdlYkNvcmU6OkdyYXBoaWNz
Q29udGV4dCYgY29udGV4dCwgV2ViQ29yZTo6R3JhcGhpY3NMYXllclBhaW50aW5nUGhhc2UsIGNv
bnN0IFdlYkNvcmU6OkludFJlY3QmIGNsaXBSZWN0KQoreworICAgIG1fY29udGVudFBhaW50LT5w
YWludChjb250ZXh0LCBjbGlwUmVjdCk7Cit9CisKK2Jvb2wgTm9uQ29tcG9zaXRlZENvbnRlbnRI
b3N0OjpzaG93RGVidWdCb3JkZXJzKCkgY29uc3QKK3sKKyAgICByZXR1cm4gZmFsc2U7Cit9CisK
K2Jvb2wgTm9uQ29tcG9zaXRlZENvbnRlbnRIb3N0OjpzaG93UmVwYWludENvdW50ZXIoKSBjb25z
dAoreworICAgIHJldHVybiBmYWxzZTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9Ob25Db21wb3NpdGVkQ29udGVudEhv
c3QuaCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL05vbkNvbXBvc2l0ZWRDb250ZW50SG9z
dC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjQ4Y2ZhZDEzMDMyZjE2ZTk5N2EwYTJjYWJjOWNmYzRhY2E1Y2VlODMK
LS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9Ob25Db21wb3Np
dGVkQ29udGVudEhvc3QuaApAQCAtMCwwICsxLDg0IEBACisvKgorICogQ29weXJpZ2h0IChDKSAy
MDExIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Cisg
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKgorICogMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgor
ICogMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisg
KgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBBTkQgSVRTIENPTlRSSUJV
VE9SUyAiQVMgSVMiIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKKyAqIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBB
UkUKKyAqIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIE9SIElUUyBDT05UUklC
VVRPUlMgQkUgTElBQkxFIEZPUiBBTlkKKyAqIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUws
IFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTCisgKiAoSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7CisgKiBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5F
U1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQKKyAqIE9OIEFOWSBUSEVPUlkgT0Yg
TElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
CisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UgT0YKKyAqIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBOb25Db21w
b3NpdGVkQ29udGVudEhvc3RfaAorI2RlZmluZSBOb25Db21wb3NpdGVkQ29udGVudEhvc3RfaAor
CisjaW5jbHVkZSAiR3JhcGhpY3NMYXllckNsaWVudC5oIgorI2luY2x1ZGUgIkludFNpemUuaCIK
KworI2luY2x1ZGUgPHd0Zi9Ob25jb3B5YWJsZS5oPgorI2luY2x1ZGUgPHd0Zi9Pd25QdHIuaD4K
KyNpbmNsdWRlIDx3dGYvUGFzc093blB0ci5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CitjbGFz
cyBDb2xvcjsKK2NsYXNzIEdyYXBoaWNzTGF5ZXI7CitjbGFzcyBHcmFwaGljc0NvbnRleHQ7Citj
bGFzcyBJbnRQb2ludDsKK2NsYXNzIEludFJlY3Q7CitjbGFzcyBMYXllckNocm9taXVtOworY2xh
c3MgTGF5ZXJQYWludGVyQ2hyb21pdW07Cit9CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitjbGFz
cyBOb25Db21wb3NpdGVkQ29udGVudEhvc3QgOiBwdWJsaWMgV2ViQ29yZTo6R3JhcGhpY3NMYXll
ckNsaWVudCB7CitXVEZfTUFLRV9OT05DT1BZQUJMRShOb25Db21wb3NpdGVkQ29udGVudEhvc3Qp
OworcHVibGljOgorICAgIHN0YXRpYyBQYXNzT3duUHRyPE5vbkNvbXBvc2l0ZWRDb250ZW50SG9z
dD4gY3JlYXRlKFBhc3NPd25QdHI8V2ViQ29yZTo6TGF5ZXJQYWludGVyQ2hyb21pdW0+IGNvbnRl
bnRQYWludCkKKyAgICB7CisgICAgICAgIHJldHVybiBhZG9wdFB0cihuZXcgTm9uQ29tcG9zaXRl
ZENvbnRlbnRIb3N0KGNvbnRlbnRQYWludCkpOworICAgIH0KKyAgICB2aXJ0dWFsIH5Ob25Db21w
b3NpdGVkQ29udGVudEhvc3QoKTsKKworICAgIHZvaWQgaW52YWxpZGF0ZVJlY3QoY29uc3QgV2Vi
Q29yZTo6SW50UmVjdCYpOworICAgIHZvaWQgc2V0QmFja2dyb3VuZENvbG9yKGNvbnN0IFdlYkNv
cmU6OkNvbG9yJik7CisgICAgdm9pZCBzZXRTY3JvbGxMYXllcihXZWJDb3JlOjpHcmFwaGljc0xh
eWVyKik7CisgICAgdm9pZCBzZXRWaWV3cG9ydChjb25zdCBXZWJDb3JlOjpJbnRTaXplJiB2aWV3
cG9ydFNpemUsIGNvbnN0IFdlYkNvcmU6OkludFNpemUmIGNvbnRlbnRzU2l6ZSwgY29uc3QgV2Vi
Q29yZTo6SW50UG9pbnQmIHNjcm9sbFBvc2l0aW9uLCBmbG9hdCBwYWdlU2NhbGUpOworICAgIHZv
aWQgcHJvdGVjdFZpc2libGVUaWxlVGV4dHVyZXMoKTsKKyAgICBXZWJDb3JlOjpHcmFwaGljc0xh
eWVyKiB0b3BMZXZlbFJvb3RMYXllcigpIGNvbnN0IHsgcmV0dXJuIG1fZ3JhcGhpY3NMYXllci5n
ZXQoKTsgfQorCitwcm90ZWN0ZWQ6CisgICAgZXhwbGljaXQgTm9uQ29tcG9zaXRlZENvbnRlbnRI
b3N0KFBhc3NPd25QdHI8V2ViQ29yZTo6TGF5ZXJQYWludGVyQ2hyb21pdW0+IGNvbnRlbnRQYWlu
dCk7CisKK3ByaXZhdGU6CisgICAgLy8gR3JhcGhpY3NMYXllckNsaWVudAorICAgIHZpcnR1YWwg
dm9pZCBub3RpZnlBbmltYXRpb25TdGFydGVkKGNvbnN0IFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXIq
LCBkb3VibGUgdGltZSk7CisgICAgdmlydHVhbCB2b2lkIG5vdGlmeVN5bmNSZXF1aXJlZChjb25z
dCBXZWJDb3JlOjpHcmFwaGljc0xheWVyKik7CisgICAgdmlydHVhbCB2b2lkIHBhaW50Q29udGVu
dHMoY29uc3QgV2ViQ29yZTo6R3JhcGhpY3NMYXllciosIFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4
dCYsIFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXJQYWludGluZ1BoYXNlLCBjb25zdCBXZWJDb3JlOjpJ
bnRSZWN0JiBjbGlwUmVjdCk7CisgICAgdmlydHVhbCBib29sIHNob3dEZWJ1Z0JvcmRlcnMoKSBj
b25zdDsKKyAgICB2aXJ0dWFsIGJvb2wgc2hvd1JlcGFpbnRDb3VudGVyKCkgY29uc3Q7CisKKyAg
ICBXZWJDb3JlOjpMYXllckNocm9taXVtKiBzY3JvbGxMYXllcigpOworCisgICAgT3duUHRyPFdl
YkNvcmU6OkdyYXBoaWNzTGF5ZXI+IG1fZ3JhcGhpY3NMYXllcjsKKyAgICBPd25QdHI8V2ViQ29y
ZTo6TGF5ZXJQYWludGVyQ2hyb21pdW0+IG1fY29udGVudFBhaW50OworICAgIFdlYkNvcmU6Oklu
dFNpemUgbV92aWV3cG9ydFNpemU7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2Vu
ZGlmIC8vIE5vbkNvbXBvc2l0ZWRDb250ZW50SG9zdF9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L2Nocm9taXVtL3NyYy9XZWJWaWV3SW1wbC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVt
L3NyYy9XZWJWaWV3SW1wbC5jcHAKaW5kZXggMmUzOWZjZTQwZDJhZjg2MzBlODkzMTA3NzdiNzlk
MzUwNmIzZTU5NS4uZTJmMDc3MjVmODZiNzdkMDI3ZDI1NDY5MjRkZjczYjIxYmM3MjJjNCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViVmlld0ltcGwuY3BwCisrKyBi
L1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlZpZXdJbXBsLmNwcApAQCAtMjg1MSw3ICsy
ODUxLDcgQEAgdm9pZCBXZWJWaWV3SW1wbDo6aW52YWxpZGF0ZVJvb3RMYXllclJlY3QoY29uc3Qg
SW50UmVjdCYgcmVjdCkKICAgICBzZXRSb290TGF5ZXJOZWVkc0Rpc3BsYXkoKTsKIH0KIAotV2Vi
Q29yZTo6Tm9uQ29tcG9zaXRlZENvbnRlbnRIb3N0KiBXZWJWaWV3SW1wbDo6bm9uQ29tcG9zaXRl
ZENvbnRlbnRIb3N0KCkKK05vbkNvbXBvc2l0ZWRDb250ZW50SG9zdCogV2ViVmlld0ltcGw6Om5v
bkNvbXBvc2l0ZWRDb250ZW50SG9zdCgpCiB7CiAgICAgcmV0dXJuIG1fbm9uQ29tcG9zaXRlZENv
bnRlbnRIb3N0LmdldCgpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9z
cmMvV2ViVmlld0ltcGwuaCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlZpZXdJbXBs
LmgKaW5kZXggNzM4ZTBmZjNhNjNiMDgyZTgzNGY2MmQyMGNlZmRmZTcxNDEwNTA1ZS4uNDBlOTMx
YTI1MGQ4ZjA0N2UyNjRkNTMzZmM5MDVlNWQ3Y2UzYTcyYiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9jaHJvbWl1bS9zcmMvV2ViVmlld0ltcGwuaAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9t
aXVtL3NyYy9XZWJWaWV3SW1wbC5oCkBAIC02MSw3ICs2MSw2IEBAIGNsYXNzIEdyYXBoaWNzQ29u
dGV4dDNEOwogY2xhc3MgSGlzdG9yeUl0ZW07CiBjbGFzcyBIaXRUZXN0UmVzdWx0OwogY2xhc3Mg
S2V5Ym9hcmRFdmVudDsKLWNsYXNzIE5vbkNvbXBvc2l0ZWRDb250ZW50SG9zdDsKIGNsYXNzIFBh
Z2U7CiBjbGFzcyBQbGF0Zm9ybUtleWJvYXJkRXZlbnQ7CiBjbGFzcyBQb3B1cENvbnRhaW5lcjsK
QEAgLTgxLDYgKzgwLDcgQEAgY2xhc3MgQ29udGV4dE1lbnVDbGllbnRJbXBsOwogY2xhc3MgRGV2
aWNlT3JpZW50YXRpb25DbGllbnRQcm94eTsKIGNsYXNzIERyYWdTY3JvbGxUaW1lcjsKIGNsYXNz
IEdlb2xvY2F0aW9uQ2xpZW50UHJveHk7CitjbGFzcyBOb25Db21wb3NpdGVkQ29udGVudEhvc3Q7
CiBjbGFzcyBTcGVlY2hJbnB1dENsaWVudEltcGw7CiBjbGFzcyBVc2VyTWVkaWFDbGllbnRJbXBs
OwogY2xhc3MgV2ViQWNjZXNzaWJpbGl0eU9iamVjdDsKQEAgLTQyMiw3ICs0MjIsNyBAQCBwdWJs
aWM6CiAgICAgdm9pZCBzZXRSb290TGF5ZXJOZWVkc0Rpc3BsYXkoKTsKICAgICB2b2lkIHNjcm9s
bFJvb3RMYXllclJlY3QoY29uc3QgV2ViQ29yZTo6SW50U2l6ZSYgc2Nyb2xsRGVsdGEsIGNvbnN0
IFdlYkNvcmU6OkludFJlY3QmIGNsaXBSZWN0KTsKICAgICB2b2lkIGludmFsaWRhdGVSb290TGF5
ZXJSZWN0KGNvbnN0IFdlYkNvcmU6OkludFJlY3QmKTsKLSAgICBXZWJDb3JlOjpOb25Db21wb3Np
dGVkQ29udGVudEhvc3QqIG5vbkNvbXBvc2l0ZWRDb250ZW50SG9zdCgpOworICAgIE5vbkNvbXBv
c2l0ZWRDb250ZW50SG9zdCogbm9uQ29tcG9zaXRlZENvbnRlbnRIb3N0KCk7CiAjZW5kaWYKICNp
ZiBFTkFCTEUoUkVRVUVTVF9BTklNQVRJT05fRlJBTUUpCiAgICAgdm9pZCBzY2hlZHVsZUFuaW1h
dGlvbigpOwpAQCAtNjQ2LDcgKzY0Niw3IEBAIHByaXZhdGU6CiAKICNpZiBVU0UoQUNDRUxFUkFU
RURfQ09NUE9TSVRJTkcpCiAgICAgV2ViQ29yZTo6SW50UmVjdCBtX3Jvb3RMYXllclNjcm9sbERh
bWFnZTsKLSAgICBPd25QdHI8V2ViQ29yZTo6Tm9uQ29tcG9zaXRlZENvbnRlbnRIb3N0PiBtX25v
bkNvbXBvc2l0ZWRDb250ZW50SG9zdDsKKyAgICBPd25QdHI8Tm9uQ29tcG9zaXRlZENvbnRlbnRI
b3N0PiBtX25vbkNvbXBvc2l0ZWRDb250ZW50SG9zdDsKICAgICBSZWZQdHI8V2ViQ29yZTo6Q0NM
YXllclRyZWVIb3N0PiBtX2xheWVyVHJlZUhvc3Q7CiAgICAgV2ViQ29yZTo6R3JhcGhpY3NMYXll
ciogbV9yb290R3JhcGhpY3NMYXllcjsKICAgICBib29sIG1faXNBY2NlbGVyYXRlZENvbXBvc2l0
aW5nQWN0aXZlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9MYXll
ckNocm9taXVtVGVzdC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL0xheWVyQ2hy
b21pdW1UZXN0LmNwcAppbmRleCA2OTM2NWE2ZDdjM2Q1ZmZiMjU5NzllNzYwMzQ5YWZjNDc1YWJi
ZTlmLi42OWI4ZmUwMGYxYjU0NDQ0OGNkZDQ3ZWE4YmNkMzEzZWU0MzM4OTY5IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL0xheWVyQ2hyb21pdW1UZXN0LmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL0xheWVyQ2hyb21pdW1UZXN0LmNwcApAQCAt
MzMsNiArMzMsNyBAQAogI2luY2x1ZGUgPGd0ZXN0L2d0ZXN0Lmg+CiAKIHVzaW5nIG5hbWVzcGFj
ZSBXZWJDb3JlOwordXNpbmcgbmFtZXNwYWNlIFdlYktpdDsKIHVzaW5nIG5hbWVzcGFjZSBXZWJL
aXRUZXN0czsKIHVzaW5nIDo6dGVzdGluZzo6TW9jazsKIHVzaW5nIDo6dGVzdGluZzo6XzsK
</data>

          </attachment>
      

    </bug>

</bugzilla>