<?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>144887</bug_id>
          
          <creation_ts>2015-05-11 15:46:25 -0700</creation_ts>
          <short_desc>Show unparented tiles in the UI-side compositing tiled scrolling indicator</short_desc>
          <delta_ts>2022-10-26 09:54:17 -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>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>NEW</bug_status>
          <resolution></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="Simon Fraser (smfr)">simon.fraser</reporter>
          <assigned_to name="Simon Fraser (smfr)">simon.fraser</assigned_to>
          <cc>ahmad.saleem792</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>thorton</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1093924</commentid>
    <comment_count>0</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2015-05-11 15:46:25 -0700</bug_when>
    <thetext>Show unparented tiles in the UI-side compositing tiled scrolling indicator</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1093931</commentid>
    <comment_count>1</comment_count>
      <attachid>252903</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2015-05-11 15:58:36 -0700</bug_when>
    <thetext>Created attachment 252903
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1093949</commentid>
    <comment_count>2</comment_count>
      <attachid>252903</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2015-05-11 16:48:21 -0700</bug_when>
    <thetext>Comment on attachment 252903
Patch

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

&gt; Source/WebCore/ChangeLog:20
&gt; +        to  tell GraphicsLayerCA when the unparented tiles changed.

extra space

&gt; Source/WebKit2/UIProcess/Cocoa/RemoteLayerTreeTileMap.h:77
&gt; +
&gt; +
&gt; +

so many newlines

&gt; Source/WebKit2/UIProcess/Cocoa/RemoteLayerTreeTileMap.mm:70
&gt; +    RetainPtr&lt;CGColorSpaceRef&gt; colorSpace = adoptCF(CGColorSpaceCreateDeviceRGB());

We have a shared one of these in GraphicsContextCG if you want to use it (lots of things do).

&gt; Source/WebKit2/UIProcess/Cocoa/RemoteLayerTreeTileMap.mm:78
&gt; +        RetainPtr&lt;CALayer *&gt; layer = adoptNS([[CALayer alloc] init]);

No star needed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1908373</commentid>
    <comment_count>3</comment_count>
    <who name="Ahmad Saleem">ahmad.saleem792</who>
    <bug_when>2022-10-26 03:47:19 -0700</bug_when>
    <thetext>Checking with BugID on Webkit GitHub, it seems this r+ patch didn&apos;t landed.

Do we need this anymore? Thanks!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1908450</commentid>
    <comment_count>4</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2022-10-26 09:54:17 -0700</bug_when>
    <thetext>Yeah, still useful.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>252903</attachid>
            <date>2015-05-11 15:58:36 -0700</date>
            <delta_ts>2015-05-11 16:48:21 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-144887-20150511155715.patch</filename>
            <type>text/plain</type>
            <size>48196</size>
            <attacher name="Simon Fraser (smfr)">simon.fraser</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTgzOTk2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMTM0NDA4OTFkNjkxMDRi
OWQ2NDgxODgxN2MwZDIyM2Q2MWIwNmViNi4uNWY2ODc0NzFlNDMyYWUyODhiMWU5MzdjNjQ2MjFj
MTk1N2M1ZGQxMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQyIEBACisyMDE1LTA1LTExICBTaW1v
biBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgorCisgICAgICAgIFNob3cgdW5wYXJl
bnRlZCB0aWxlcyBpbiB0aGUgVUktc2lkZSBjb21wb3NpdGluZyB0aWxlZCBzY3JvbGxpbmcgaW5k
aWNhdG9yCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0x
NDQ4ODcKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBU
aGUgVUkgcHJvY2VzcyBkb2Vzbid0IGtub3cgYWJvdXQgdW5wYXJlbnRlZCB0aWxlcyBpbiB0aGUg
d2ViIHByb2Nlc3MsIHNvIHdlIG5lZWQKKyAgICAgICAgdG8gc2VuZCBvdXQtb2YtYmFuZCBkYXRh
IG9uIHVucGFyZW50ZWQgdGlsZXMgZm9yIHRoZSB0aWxlZCBzY3JvbGxpbmcgaW5kaWNhdG9yLgor
ICAgICAgICAKKyAgICAgICAgU2VuZCBhIHZlY3RvciBvZiBGbG9hdFJlY3RzIHdoaWNoIHJlcHJl
c2VudCB0aGUgZnJhbWVzIG9mIHVucGFyZW50ZWQgdGlsZXMsCisgICAgICAgIGFuZCBpbiB0aGUg
VUkgcHJvY2Vzcywgc2hvdyB0aG9zZSBieSBtYWtpbmcgc29tZSBDQUxheWVycyB3aXRoIGJvcmRl
cnMuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0xheWVyQ2xpZW50Lmg6
CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0xheWVyQ2xpZW50Ojp0aWxlZFNjcm9sbGluZ0lu
ZGljYXRvclZpc2libGUpOiBBbGxvd3MgdGhlIGNsaWVudAorICAgICAgICB0byByZWFkIFNldHRp
bmdzIHRvIHRlbGwgd2hldGhlciB0aGUgaW5kaWNhdG9yIGlzIGVuYWJsZWQuCisgICAgICAgICog
cGxhdGZvcm0vZ3JhcGhpY3MvVGlsZWRCYWNraW5nLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3Jh
cGhpY3MvY2EvR3JhcGhpY3NMYXllckNBLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNz
TGF5ZXJDQTo6cGxhdGZvcm1DQUxheWVyVW5wYXJlbnRlZFRpbGVzQ2hhbmdlZCk6IFVzZWQgdG8g
YWxsb3cgVGlsZWRCYWNraW5nCisgICAgICAgIHRvICB0ZWxsIEdyYXBoaWNzTGF5ZXJDQSB3aGVu
IHRoZSB1bnBhcmVudGVkIHRpbGVzIGNoYW5nZWQuCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhp
Y3MvY2EvR3JhcGhpY3NMYXllckNBLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2Ev
UGxhdGZvcm1DQUxheWVyLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2EvUGxhdGZv
cm1DQUxheWVyQ2xpZW50Lmg6CisgICAgICAgIChXZWJDb3JlOjpQbGF0Zm9ybUNBTGF5ZXJDbGll
bnQ6OnBsYXRmb3JtQ0FMYXllclVucGFyZW50ZWRUaWxlc0NoYW5nZWQpOgorICAgICAgICAqIHBs
YXRmb3JtL2dyYXBoaWNzL2NhL1RpbGVDb250cm9sbGVyLmNwcDogUmVtb3ZlZCBzb21lIGlPUyAj
aWZkZWZzIHdoaWNoIHdlcmVuJ3QgbmVjZXNzYXJ5LgorICAgICAgICAoV2ViQ29yZTo6VGlsZUNv
bnRyb2xsZXI6OmRpZFJldmFsaWRhdGVUaWxlcyk6CisgICAgICAgIChXZWJDb3JlOjpUaWxlQ29u
dHJvbGxlcjo6dGlsZUNvaG9ydHNDaGFuZ2VkKToKKyAgICAgICAgKFdlYkNvcmU6OlRpbGVDb250
cm9sbGVyOjpyZW1vdmVVbnBhcmVudGVkVGlsZXNOb3cpOgorICAgICAgICAoV2ViQ29yZTo6VGls
ZUNvbnRyb2xsZXI6OnVucGFyZW50ZWRUaWxlRnJhbWVzKToKKyAgICAgICAgKiBwbGF0Zm9ybS9n
cmFwaGljcy9jYS9UaWxlQ29udHJvbGxlci5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNz
L2NhL1RpbGVHcmlkLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlRpbGVHcmlkOjpjb2hvcnRSZW1v
dmFsVGltZXJGaXJlZCk6CisgICAgICAgIChXZWJDb3JlOjpUaWxlR3JpZDo6cmVtb3ZlVW5wYXJl
bnRlZFRpbGVzTm93KToKKyAgICAgICAgKFdlYkNvcmU6OlRpbGVHcmlkOjp1bnBhcmVudGVkVGls
ZUZyYW1lcyk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2EvVGlsZUdyaWQuaDoKKyAg
ICAgICAgKiByZW5kZXJpbmcvUmVuZGVyTGF5ZXJCYWNraW5nLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OlJlbmRlckxheWVyQmFja2luZzo6dGlsZWRTY3JvbGxpbmdJbmRpY2F0b3JWaXNpYmxlKToK
KyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyTGF5ZXJCYWNraW5nLmg6CisKIDIwMTUtMDUtMDgg
IE15bGVzIEMuIE1heGZpZWxkICA8bW1heGZpZWxkQGFwcGxlLmNvbT4KIAogICAgICAgICBSZW1v
dmUgY29udmVuaWVuY2UgY29uc3RydWN0b3JzIGZvciBUZXh0UnVuCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0Mi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggZWRh
N2QwMzI3YjE0NzlkNzhiZjlkOWVlYjQwMDM4MWNiMTE5N2ZkYy4uNTM1ZTBjNjEzZDVjOGJkMjc2
NDRmY2JkYzdmYjEzMTdkNjY1NDdmOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdl
TG9nCisrKyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUyIEBACisyMDE1
LTA1LTExICBTaW1vbiBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgorCisgICAgICAg
IFNob3cgdW5wYXJlbnRlZCB0aWxlcyBpbiB0aGUgVUktc2lkZSBjb21wb3NpdGluZyB0aWxlZCBz
Y3JvbGxpbmcgaW5kaWNhdG9yCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0xNDQ4ODcKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICBUaGUgVUkgcHJvY2VzcyBkb2Vzbid0IGtub3cgYWJvdXQgdW5wYXJlbnRlZCB0
aWxlcyBpbiB0aGUgd2ViIHByb2Nlc3MsIHNvIHdlIG5lZWQKKyAgICAgICAgdG8gc2VuZCBvdXQt
b2YtYmFuZCBkYXRhIG9uIHVucGFyZW50ZWQgdGlsZXMgZm9yIHRoZSB0aWxlZCBzY3JvbGxpbmcg
aW5kaWNhdG9yLgorICAgICAgICAKKyAgICAgICAgU2VuZCBhIHZlY3RvciBvZiBGbG9hdFJlY3Rz
IHdoaWNoIHJlcHJlc2VudCB0aGUgZnJhbWVzIG9mIHVucGFyZW50ZWQgdGlsZXMsCisgICAgICAg
IGFuZCBpbiB0aGUgVUkgcHJvY2Vzcywgc2hvdyB0aG9zZSBieSBtYWtpbmcgc29tZSBDQUxheWVy
cyB3aXRoIGJvcmRlcnMuCisgICAgICAgIAorICAgICAgICBNb3ZlZCB0aGUgdGlsZSBtYXAgaW50
byBSZW1vdGVMYXllclRyZWVUaWxlTWFwLgorICAgICAgICAKKyAgICAgICAgSW4gdGhlIGRlYnVn
IFJlbW90ZUxheWVyVHJlZUhvc3QsIHdlIG1ha2UgYSBUaWxlZEJhY2tpbmdJbmRpY2F0b3JMYXll
ciAob3IgdmlldykKKyAgICAgICAgZm9yIHRpbGVkIGxheWVycywgc28gdGhhdCB0aGV5IGNhbiBy
ZWNlaXZlIHRoZSB2ZWN0b3JzIG9mIHVucGFyZW50ZWQgZmlsZSBmcmFtZXMuCisKKyAgICAgICAg
KiBTaGFyZWQvbWFjL1JlbW90ZUxheWVyVHJlZVByb3BlcnR5QXBwbGllci5tbToKKyAgICAgICAg
KiBTaGFyZWQvbWFjL1JlbW90ZUxheWVyVHJlZVRyYW5zYWN0aW9uLmg6CisgICAgICAgICogU2hh
cmVkL21hYy9SZW1vdGVMYXllclRyZWVUcmFuc2FjdGlvbi5tbToKKyAgICAgICAgKFdlYktpdDo6
UmVtb3RlTGF5ZXJUcmVlVHJhbnNhY3Rpb246OkxheWVyUHJvcGVydGllczo6ZW5jb2RlKToKKyAg
ICAgICAgKFdlYktpdDo6UmVtb3RlTGF5ZXJUcmVlVHJhbnNhY3Rpb246OkxheWVyUHJvcGVydGll
czo6ZGVjb2RlKToKKyAgICAgICAgKFdlYktpdDo6ZHVtcENoYW5nZWRMYXllcnMpOgorICAgICAg
ICAqIFVJUHJvY2Vzcy9Db2NvYS9SZW1vdGVMYXllclRyZWVUaWxlTWFwLmg6IEFkZGVkLgorICAg
ICAgICAoV2ViS2l0OjpSZW1vdGVMYXllclRyZWVUaWxlTWFwOjp0aWxlTWFwTGF5ZXIpOgorICAg
ICAgICAqIFVJUHJvY2Vzcy9Db2NvYS9SZW1vdGVMYXllclRyZWVUaWxlTWFwLm1tOiBBZGRlZC4K
KyAgICAgICAgKC1bVGlsZWRCYWNraW5nSW5kaWNhdG9yTGF5ZXIgaW5kaWNhdG9yU2NhbGVdKToK
KyAgICAgICAgKC1bVGlsZWRCYWNraW5nSW5kaWNhdG9yTGF5ZXIgc2V0SW5kaWNhdG9yU2NhbGU6
XSk6CisgICAgICAgICgtW1RpbGVkQmFja2luZ0luZGljYXRvckxheWVyIHNldFVucGFyZW50ZWRU
aWxlRnJhbWVzOl0pOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVMYXllclRyZWVUaWxlTWFwOjpS
ZW1vdGVMYXllclRyZWVUaWxlTWFwKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlTGF5ZXJUcmVl
VGlsZU1hcDo6dXBkYXRlKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlTGF5ZXJUcmVlVGlsZU1h
cDo6c2V0UG9zaXRpb24pOgorICAgICAgICAqIFVJUHJvY2Vzcy9pb3MvUmVtb3RlTGF5ZXJUcmVl
SG9zdElPUy5tbToKKyAgICAgICAgKCtbV0tUaWxlZEJhY2tpbmdJbmRpY2F0b3JWaWV3IGxheWVy
Q2xhc3NdKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlTGF5ZXJUcmVlSG9zdDo6Y3JlYXRlTGF5
ZXIpOgorICAgICAgICAqIFVJUHJvY2Vzcy9tYWMvUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWFQ
cm94eS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9tYWMvUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0Fy
ZWFQcm94eS5tbToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWFQ
cm94eTo6dXBkYXRlRGVidWdJbmRpY2F0b3JQb3NpdGlvbik6CisgICAgICAgIChXZWJLaXQ6OlJl
bW90ZUxheWVyVHJlZURyYXdpbmdBcmVhUHJveHk6OnVwZGF0ZURlYnVnSW5kaWNhdG9yKToKKyAg
ICAgICAgKFdlYktpdDo6UmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWFQcm94eTo6aW5pdGlhbGl6
ZURlYnVnSW5kaWNhdG9yKToKKyAgICAgICAgKiBVSVByb2Nlc3MvbWFjL1JlbW90ZUxheWVyVHJl
ZUhvc3QubW06CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUxheWVyVHJlZUhvc3Q6OnVwZGF0ZUxh
eWVyVHJlZSk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUxheWVyVHJlZUhvc3Q6OmNyZWF0ZUxh
eWVyKToKKyAgICAgICAgKiBXZWJLaXQyLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAg
ICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9QbGF0Zm9ybUNBTGF5ZXJSZW1vdGUuY3BwOgor
ICAgICAgICAoV2ViS2l0OjpQbGF0Zm9ybUNBTGF5ZXJSZW1vdGU6OnNldFVucGFyZW50ZWRUaWxl
RnJhbWVzKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1BsYXRmb3JtQ0FMYXll
clJlbW90ZS5oOgorCiAyMDE1LTA1LTA4ICBDYXJsb3MgR2FyY2lhIENhbXBvcyAgPGNnYXJjaWFA
aWdhbGlhLmNvbT4KIAogICAgICAgICBbR1RLXSBFeHBvc2UgYWxsb3dGaWxlQWNjZXNzRnJvbUZp
bGVVUkxzIHNldHRpbmcgdG8gV2ViS2l0MiBHVEsrIEFQSQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NMYXllckNsaWVudC5oIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NMYXllckNsaWVudC5oCmluZGV4IDc0Zjcx
Y2U4NzAyODFhZjMyYTE1ZTY2NGIxYzI2OWU4ZDNjMGIwYzcuLjllNzBiNTJlMDJiMzAxZTNlMTA2
Njc0NjVjNWI4ODlmNmJlN2MwYTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL0dyYXBoaWNzTGF5ZXJDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9HcmFwaGljc0xheWVyQ2xpZW50LmgKQEAgLTExNyw2ICsxMTcsOCBAQCBw
dWJsaWM6CiAKICAgICB2aXJ0dWFsIGJvb2wgbmVlZHNQaXhlbEFsaWdtZW50KCkgY29uc3QgeyBy
ZXR1cm4gZmFsc2U7IH0KIAorICAgIHZpcnR1YWwgYm9vbCB0aWxlZFNjcm9sbGluZ0luZGljYXRv
clZpc2libGUoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQorCiAgICAgdmlydHVhbCBib29sIG5l
ZWRzSU9TRHVtcFJlbmRlclRyZWVNYWluRnJhbWVSZW5kZXJWaWV3TGF5ZXJJc0Fsd2F5c09wYXF1
ZUhhY2soY29uc3QgR3JhcGhpY3NMYXllciYpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CiAKICNp
Zm5kZWYgTkRFQlVHCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9UaWxlZEJhY2tpbmcuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1RpbGVk
QmFja2luZy5oCmluZGV4IGEwMDI0MjA4MWVhNzlhMTYwYzM0ZDI1OGNjYzlkNjliNGExYmUxMGIu
LjViMGExOGI5NmZlNjZhNmU2M2Y1YzE4NmRjMTc5NWJjMzM0Yjc5ZjIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1RpbGVkQmFja2luZy5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1RpbGVkQmFja2luZy5oCkBAIC0xMjgsNiArMTI4
LDggQEAgcHVibGljOgogICAgIHZpcnR1YWwgSW50UmVjdCB0aWxlR3JpZEV4dGVudCgpIGNvbnN0
ID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgc2V0U2Nyb2xsaW5nTW9kZUluZGljYXRpb24oU2Nyb2xs
aW5nTW9kZUluZGljYXRpb24pID0gMDsKIAorICAgIHZpcnR1YWwgVmVjdG9yPEZsb2F0UmVjdD4g
dW5wYXJlbnRlZFRpbGVGcmFtZXMoKSBjb25zdCA9IDA7CisKICNpZiBVU0UoQ0EpCiAgICAgdmly
dHVhbCBQbGF0Zm9ybUNBTGF5ZXIqIHRpbGVkU2Nyb2xsaW5nSW5kaWNhdG9yTGF5ZXIoKSA9IDA7
CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nh
L0dyYXBoaWNzTGF5ZXJDQS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9j
YS9HcmFwaGljc0xheWVyQ0EuY3BwCmluZGV4IGE1ZTJjMTc4YzM0NjAyZTlmNjljMWY1ODY1NWM5
MThiZjE3YjhhYWMuLmZjMTdjMGEyNGVmNmIxMWVjMGIzOGY3ZWVjMmE5MGNiZTYwNjBhNjUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL0dyYXBoaWNzTGF5
ZXJDQS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2EvR3JhcGhp
Y3NMYXllckNBLmNwcApAQCAtMTQxMyw2ICsxNDEzLDE5IEBAIGJvb2wgR3JhcGhpY3NMYXllckNB
OjpwbGF0Zm9ybUNBTGF5ZXJTaG91bGRUZW1wb3JhcmlseVJldGFpblRpbGVDb2hvcnRzKFBsYXRm
b3JtCiAgICAgcmV0dXJuIGNsaWVudCgpLnNob3VsZFRlbXBvcmFyaWx5UmV0YWluVGlsZUNvaG9y
dHModGhpcyk7CiB9CiAKK3ZvaWQgR3JhcGhpY3NMYXllckNBOjpwbGF0Zm9ybUNBTGF5ZXJVbnBh
cmVudGVkVGlsZXNDaGFuZ2VkKFBsYXRmb3JtQ0FMYXllciopCit7CisgICAgaWYgKCFjbGllbnQo
KS50aWxlZFNjcm9sbGluZ0luZGljYXRvclZpc2libGUoKSkKKyAgICAgICAgcmV0dXJuOworCisg
ICAgVGlsZWRCYWNraW5nKiBiYWNraW5nID0gdGlsZWRCYWNraW5nKCk7CisgICAgaWYgKCFiYWNr
aW5nKQorICAgICAgICByZXR1cm47CisKKyAgICBpZiAobV9sYXllci0+c2V0VW5wYXJlbnRlZFRp
bGVGcmFtZXMoYmFja2luZy0+dW5wYXJlbnRlZFRpbGVGcmFtZXMoKSkpCisgICAgICAgIG5vdGVM
YXllclByb3BlcnR5Q2hhbmdlZChEZWJ1Z0luZGljYXRvcnNDaGFuZ2VkLCBtX2lzQ29tbWl0dGlu
Z0NoYW5nZXMgPyBEb250U2NoZWR1bGVGbHVzaCA6IFNjaGVkdWxlRmx1c2gpOworfQorCiBzdGF0
aWMgUGxhdGZvcm1DQUxheWVyOjpMYXllclR5cGUgbGF5ZXJUeXBlRm9yQ3VzdG9tQmFja2Ryb3BB
cHBlYXJhbmNlKEdyYXBoaWNzTGF5ZXI6OkN1c3RvbUFwcGVhcmFuY2UgYXBwZWFyYW5jZSkKIHsK
ICAgICByZXR1cm4gYXBwZWFyYW5jZSA9PSBHcmFwaGljc0xheWVyOjpMaWdodEJhY2tkcm9wQXBw
ZWFyYW5jZSA/IFBsYXRmb3JtQ0FMYXllcjo6TGF5ZXJUeXBlTGlnaHRTeXN0ZW1CYWNrZHJvcExh
eWVyIDogUGxhdGZvcm1DQUxheWVyOjpMYXllclR5cGVEYXJrU3lzdGVtQmFja2Ryb3BMYXllcjsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL0dyYXBoaWNz
TGF5ZXJDQS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2EvR3JhcGhpY3NM
YXllckNBLmgKaW5kZXggODgxMmMzMzQ2N2NmN2MzMWViZmI0MGYwYzA2ZTUwMmIwNWY4MjQwOS4u
NTI4MGU0ZjA5MGJkZmU3Y2UwYzBiYThmNGExMzJmMDNmZWNmZTI3ZCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2EvR3JhcGhpY3NMYXllckNBLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2EvR3JhcGhpY3NMYXllckNBLmgKQEAg
LTE5MSw2ICsxOTEsNyBAQCBwcml2YXRlOgogICAgIFdFQkNPUkVfRVhQT1JUIHZpcnR1YWwgZmxv
YXQgcGxhdGZvcm1DQUxheWVyQ29udGVudHNTY2FsZU11bHRpcGxpZXJGb3JOZXdUaWxlcyhQbGF0
Zm9ybUNBTGF5ZXIqKSBjb25zdCBvdmVycmlkZTsKICAgICBXRUJDT1JFX0VYUE9SVCB2aXJ0dWFs
IGJvb2wgcGxhdGZvcm1DQUxheWVyU2hvdWxkQWdncmVzc2l2ZWx5UmV0YWluVGlsZXMoUGxhdGZv
cm1DQUxheWVyKikgY29uc3Qgb3ZlcnJpZGU7CiAgICAgV0VCQ09SRV9FWFBPUlQgdmlydHVhbCBi
b29sIHBsYXRmb3JtQ0FMYXllclNob3VsZFRlbXBvcmFyaWx5UmV0YWluVGlsZUNvaG9ydHMoUGxh
dGZvcm1DQUxheWVyKikgY29uc3Qgb3ZlcnJpZGU7CisgICAgV0VCQ09SRV9FWFBPUlQgdmlydHVh
bCB2b2lkIHBsYXRmb3JtQ0FMYXllclVucGFyZW50ZWRUaWxlc0NoYW5nZWQoUGxhdGZvcm1DQUxh
eWVyKikgb3ZlcnJpZGU7CiAKICAgICB2aXJ0dWFsIGJvb2wgaXNDb21taXR0aW5nQ2hhbmdlcygp
IGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIG1faXNDb21taXR0aW5nQ2hhbmdlczsgfQogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9QbGF0Zm9ybUNBTGF5
ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL1BsYXRmb3JtQ0FMYXll
ci5oCmluZGV4IDMxMmY5MjA2YTIyNTMzMzBmOWI5NGQ4NWEwZWFhYzdjNGFhM2UzYTYuLjU3OTJk
MjMxOTcxOGIxZTBhNmEwOTFhZTc4MTY0N2JkNjc1ZjU3ZjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL1BsYXRmb3JtQ0FMYXllci5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL1BsYXRmb3JtQ0FMYXllci5oCkBAIC0yMjks
NiArMjI5LDggQEAgcHVibGljOgogCiAgICAgdmlydHVhbCBUaWxlZEJhY2tpbmcqIHRpbGVkQmFj
a2luZygpID0gMDsKIAorICAgIHZpcnR1YWwgYm9vbCBzZXRVbnBhcmVudGVkVGlsZUZyYW1lcyhW
ZWN0b3I8RmxvYXRSZWN0PikgeyByZXR1cm4gZmFsc2U7IH0KKwogI2lmIFBMQVRGT1JNKFdJTikK
ICAgICB2aXJ0dWFsIFBsYXRmb3JtQ0FMYXllciogcm9vdExheWVyKCkgY29uc3QgPSAwOwogICAg
IHZpcnR1YWwgdm9pZCBzZXROZWVkc0xheW91dCgpID0gMDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL1BsYXRmb3JtQ0FMYXllckNsaWVudC5oIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2EvUGxhdGZvcm1DQUxheWVyQ2xpZW50LmgK
aW5kZXggMjQ4NjEzZmEwZTYwN2UzZTQ1MDMwODMwOGU2ODdlMDI2YWMwNTdhOC4uNjFjM2Y3ZTlh
YjliM2JkMzVkMGRkYWI4NWYzNGIxZmVjZGJkMDE5MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2EvUGxhdGZvcm1DQUxheWVyQ2xpZW50LmgKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2EvUGxhdGZvcm1DQUxheWVyQ2xpZW50LmgK
QEAgLTU4LDYgKzU4LDggQEAgcHVibGljOgogICAgIHZpcnR1YWwgYm9vbCBwbGF0Zm9ybUNBTGF5
ZXJTaG91bGRBZ2dyZXNzaXZlbHlSZXRhaW5UaWxlcyhQbGF0Zm9ybUNBTGF5ZXIqKSBjb25zdCB7
IHJldHVybiBmYWxzZTsgfQogICAgIHZpcnR1YWwgYm9vbCBwbGF0Zm9ybUNBTGF5ZXJTaG91bGRU
ZW1wb3JhcmlseVJldGFpblRpbGVDb2hvcnRzKFBsYXRmb3JtQ0FMYXllciopIGNvbnN0IHsgcmV0
dXJuIHRydWU7IH0KIAorICAgIHZpcnR1YWwgdm9pZCBwbGF0Zm9ybUNBTGF5ZXJVbnBhcmVudGVk
VGlsZXNDaGFuZ2VkKFBsYXRmb3JtQ0FMYXllciopIHsgfQorCiAgICAgdmlydHVhbCBib29sIGlz
Q29tbWl0dGluZ0NoYW5nZXMoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQogCiBwcm90ZWN0ZWQ6
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9UaWxlQ29u
dHJvbGxlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9UaWxlQ29u
dHJvbGxlci5jcHAKaW5kZXggMzM3ZjEzY2ExOGEzODA0MDZiNmVhOTgwNjRhYjMyZTAyMGY0Mzkx
Zi4uYmM0MDhmMWRhMTQ0MDA0ZjhjZjQxNzk2NjVmNjNlNzM4ZjNiMWEzNSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2EvVGlsZUNvbnRyb2xsZXIuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL1RpbGVDb250cm9sbGVyLmNw
cApAQCAtNDQyLDcgKzQ0MiwxNSBAQCB2b2lkIFRpbGVDb250cm9sbGVyOjp0aWxlUmV2YWxpZGF0
aW9uVGltZXJGaXJlZCgpCiB2b2lkIFRpbGVDb250cm9sbGVyOjpkaWRSZXZhbGlkYXRlVGlsZXMo
KQogewogICAgIG1fYm91bmRzQXRMYXN0UmV2YWxpZGF0ZSA9IGJvdW5kcygpOworICAgIHRpbGVD
b2hvcnRzQ2hhbmdlZCgpOworfQorCit2b2lkIFRpbGVDb250cm9sbGVyOjp0aWxlQ29ob3J0c0No
YW5nZWQoKQoreworICAgIGlmICghb3duaW5nR3JhcGhpY3NMYXllcigpKQorICAgICAgICByZXR1
cm47CiAKKyAgICBvd25pbmdHcmFwaGljc0xheWVyKCktPnBsYXRmb3JtQ0FMYXllclVucGFyZW50
ZWRUaWxlc0NoYW5nZWQobV90aWxlQ2FjaGVMYXllcik7CiAgICAgdXBkYXRlVGlsZUNvdmVyYWdl
TWFwKCk7CiB9CiAKQEAgLTU5OCw3ICs2MDYsNiBAQCBWZWN0b3I8UmVmUHRyPFBsYXRmb3JtQ0FM
YXllcj4+IFRpbGVDb250cm9sbGVyOjpjb250YWluZXJMYXllcnMoKQogICAgIHJldHVybiBsYXll
ckxpc3Q7CiB9CiAKLSNpZiBQTEFURk9STShJT1MpCiB1bnNpZ25lZCBUaWxlQ29udHJvbGxlcjo6
bnVtYmVyT2ZVbnBhcmVudGVkVGlsZXMoKSBjb25zdAogewogICAgIHVuc2lnbmVkIGNvdW50ID0g
dGlsZUdyaWQoKS5udW1iZXJPZlVucGFyZW50ZWRUaWxlcygpOwpAQCAtNjEyLDkgKzYxOSwxMSBA
QCB2b2lkIFRpbGVDb250cm9sbGVyOjpyZW1vdmVVbnBhcmVudGVkVGlsZXNOb3coKQogICAgIHRp
bGVHcmlkKCkucmVtb3ZlVW5wYXJlbnRlZFRpbGVzTm93KCk7CiAgICAgaWYgKG1fem9vbWVkT3V0
VGlsZUdyaWQpCiAgICAgICAgIG1fem9vbWVkT3V0VGlsZUdyaWQtPnJlbW92ZVVucGFyZW50ZWRU
aWxlc05vdygpOworfQogCi0gICAgdXBkYXRlVGlsZUNvdmVyYWdlTWFwKCk7CitWZWN0b3I8Rmxv
YXRSZWN0PiBUaWxlQ29udHJvbGxlcjo6dW5wYXJlbnRlZFRpbGVGcmFtZXMoKSBjb25zdAorewor
ICAgIHJldHVybiB0aWxlR3JpZCgpLnVucGFyZW50ZWRUaWxlRnJhbWVzKCk7CiB9Ci0jZW5kaWYK
IAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvY2EvVGlsZUNvbnRyb2xsZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2NhL1RpbGVDb250cm9sbGVyLmgKaW5kZXggYTlhOWM5YTI2ZTM3Yjc4MjI4
OWEwY2ZjYjU5ZGM4ZWI5ZTIzYzk1YS4uNTAzNWU0ZGIxN2I1NDJhNDVhMGFiMDFhNTEzNjhmMmQw
NGVhYTk5ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Ev
VGlsZUNvbnRyb2xsZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9j
YS9UaWxlQ29udHJvbGxlci5oCkBAIC04NCwxMCArODQsOSBAQCBwdWJsaWM6CiAgICAgdW5zaWdu
ZWQgYmxhbmtQaXhlbENvdW50KCkgY29uc3Q7CiAgICAgc3RhdGljIHVuc2lnbmVkIGJsYW5rUGl4
ZWxDb3VudEZvclRpbGVzKGNvbnN0IFBsYXRmb3JtTGF5ZXJMaXN0JiwgY29uc3QgRmxvYXRSZWN0
JiwgY29uc3QgSW50UG9pbnQmKTsKIAotI2lmIFBMQVRGT1JNKElPUykKICAgICB1bnNpZ25lZCBu
dW1iZXJPZlVucGFyZW50ZWRUaWxlcygpIGNvbnN0OwogICAgIHZvaWQgcmVtb3ZlVW5wYXJlbnRl
ZFRpbGVzTm93KCk7Ci0jZW5kaWYKKyAgICB2aXJ0dWFsIFZlY3RvcjxGbG9hdFJlY3Q+IHVucGFy
ZW50ZWRUaWxlRnJhbWVzKCkgY29uc3Qgb3ZlcnJpZGU7CiAKICAgICBmbG9hdCBkZXZpY2VTY2Fs
ZUZhY3RvcigpIGNvbnN0IHsgcmV0dXJuIG1fZGV2aWNlU2NhbGVGYWN0b3I7IH0KIApAQCAtMTEz
LDEyICsxMTIsMTEgQEAgcHVibGljOgogICAgIEludFJlY3QgYm91bmRzQXRMYXN0UmV2YWxpZGF0
ZSgpIGNvbnN0IHsgcmV0dXJuIG1fYm91bmRzQXRMYXN0UmV2YWxpZGF0ZTsgfQogICAgIEludFJl
Y3QgYm91bmRzQXRMYXN0UmV2YWxpZGF0ZVdpdGhvdXRNYXJnaW4oKSBjb25zdDsKICAgICB2b2lk
IGRpZFJldmFsaWRhdGVUaWxlcygpOworICAgIHZvaWQgdGlsZUNvaG9ydHNDaGFuZ2VkKCk7CiAK
ICAgICBib29sIHNob3VsZEFnZ3Jlc3NpdmVseVJldGFpblRpbGVzKCkgY29uc3Q7CiAgICAgYm9v
bCBzaG91bGRUZW1wb3JhcmlseVJldGFpblRpbGVDb2hvcnRzKCkgY29uc3Q7CiAKLSAgICB2b2lk
IHVwZGF0ZVRpbGVDb3ZlcmFnZU1hcCgpOwotCiAgICAgUmVmUHRyPFBsYXRmb3JtQ0FMYXllcj4g
Y3JlYXRlVGlsZUxheWVyKGNvbnN0IEludFJlY3QmLCBUaWxlR3JpZCYpOwogCiAgICAgY29uc3Qg
VGlsZUdyaWQmIHRpbGVHcmlkKCkgY29uc3QgeyByZXR1cm4gKm1fdGlsZUdyaWQ7IH0KQEAgLTEz
MCw2ICsxMjgsOCBAQCBwcml2YXRlOgogCiAgICAgdm9pZCBzY2hlZHVsZVRpbGVSZXZhbGlkYXRp
b24oZG91YmxlIGludGVydmFsKTsKIAorICAgIHZvaWQgdXBkYXRlVGlsZUNvdmVyYWdlTWFwKCk7
CisKICAgICBib29sIGlzSW5XaW5kb3coKSBjb25zdCB7IHJldHVybiBtX2lzSW5XaW5kb3c7IH0K
ICAgICBmbG9hdCB0b3BDb250ZW50SW5zZXQoKSBjb25zdCB7IHJldHVybiBtX3RvcENvbnRlbnRJ
bnNldDsgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9j
YS9UaWxlR3JpZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9UaWxl
R3JpZC5jcHAKaW5kZXggNTY3YjFhNWEwNTkyN2EwOWU1NGJhNzQ1NzkwZjg2MWY2ZDgyOTU1ZS4u
ZmJjNjY2YjRlYzBlYWMxMWE1NjVhZTVlZGM1OTc5MWEwMDg5NjhlZSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2EvVGlsZUdyaWQuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL1RpbGVHcmlkLmNwcApAQCAtNDkwLDcgKzQ5
MCw3IEBAIHZvaWQgVGlsZUdyaWQ6OmNvaG9ydFJlbW92YWxUaW1lckZpcmVkKCkKICAgICAgICAg
cmVtb3ZlVGlsZXNJbkNvaG9ydChmaXJzdENvaG9ydC5jb2hvcnQpOwogICAgIH0KIAotICAgIG1f
Y29udHJvbGxlci51cGRhdGVUaWxlQ292ZXJhZ2VNYXAoKTsKKyAgICBtX2NvbnRyb2xsZXIudGls
ZUNvaG9ydHNDaGFuZ2VkKCk7CiB9CiAKIEludFJlY3QgVGlsZUdyaWQ6OmVuc3VyZVRpbGVzRm9y
UmVjdChjb25zdCBGbG9hdFJlY3QmIHJlY3QsIENvdmVyYWdlVHlwZSBuZXdUaWxlVHlwZSkKQEAg
LTcxNywxNCArNzE3LDMzIEBAIGludCBUaWxlR3JpZDo6cGxhdGZvcm1DQUxheWVySW5jcmVtZW50
UmVwYWludENvdW50KFBsYXRmb3JtQ0FMYXllciogcGxhdGZvcm1DQUxhCiAgICAgcmV0dXJuIHJl
cGFpbnRDb3VudDsKIH0KIAotI2lmIFBMQVRGT1JNKElPUykKIHZvaWQgVGlsZUdyaWQ6OnJlbW92
ZVVucGFyZW50ZWRUaWxlc05vdygpCiB7CiAgICAgd2hpbGUgKCFtX2NvaG9ydExpc3QuaXNFbXB0
eSgpKSB7CiAgICAgICAgIFRpbGVDb2hvcnRJbmZvIGZpcnN0Q29ob3J0ID0gbV9jb2hvcnRMaXN0
LnRha2VGaXJzdCgpOwogICAgICAgICByZW1vdmVUaWxlc0luQ29ob3J0KGZpcnN0Q29ob3J0LmNv
aG9ydCk7CiAgICAgfQorCisgICAgbV9jb250cm9sbGVyLnRpbGVDb2hvcnRzQ2hhbmdlZCgpOwog
fQotI2VuZGlmCisKK1ZlY3RvcjxGbG9hdFJlY3Q+IFRpbGVHcmlkOjp1bnBhcmVudGVkVGlsZUZy
YW1lcygpIGNvbnN0Cit7CisgICAgVmVjdG9yPEZsb2F0UmVjdD4gcmVzdWx0OworICAgIAorICAg
IGZvciAoYXV0byYgZW50cnkgOiBtX3RpbGVzKSB7CisgICAgICAgIGNvbnN0IFRpbGVJbmZvJiB0
aWxlSW5mbyA9IGVudHJ5LnZhbHVlOworICAgICAgICBpZiAodGlsZUluZm8uY29ob3J0ID09IFZp
c2libGVUaWxlQ29ob3J0KQorICAgICAgICAgICAgY29udGludWU7CisKKyAgICAgICAgUGxhdGZv
cm1DQUxheWVyJiBsYXllciA9ICplbnRyeS52YWx1ZS5sYXllcjsKKyAgICAgICAgRmxvYXRSZWN0
IGxheWVyRnJhbWUoRmxvYXRQb2ludChsYXllci5wb3NpdGlvbigpLngoKSwgbGF5ZXIucG9zaXRp
b24oKS55KCkpLCBsYXllci5ib3VuZHMoKS5zaXplKCkpOworICAgICAgICBsYXllckZyYW1lLnNj
YWxlKDEgLyBtX3NjYWxlKTsKKyAgICAgICAgcmVzdWx0LmFwcGVuZChsYXllckZyYW1lKTsKKyAg
ICB9CisKKyAgICByZXR1cm4gcmVzdWx0OworfQorCiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL1RpbGVHcmlk
LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9UaWxlR3JpZC5oCmluZGV4
IGI2MGNjZDkyNzgzMTcwMDhhNTAyZWUwYTY5NjM1OTQzMzRmOTVmMWYuLjAwYzFjN2FhNmZjZTA1
NDVhYWEzYjc5NmZlNmE4NmU5NjRhMTJjOWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2NhL1RpbGVHcmlkLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvY2EvVGlsZUdyaWQuaApAQCAtODMsMTAgKzgzLDkgQEAgcHVibGljOgogCiAg
ICAgdm9pZCBkcmF3VGlsZU1hcENvbnRlbnRzKENHQ29udGV4dFJlZiwgQ0dSZWN0IGxheWVyQm91
bmRzKSBjb25zdDsKIAotI2lmIFBMQVRGT1JNKElPUykKICAgICB1bnNpZ25lZCBudW1iZXJPZlVu
cGFyZW50ZWRUaWxlcygpIGNvbnN0IHsgcmV0dXJuIG1fY29ob3J0TGlzdC5zaXplKCk7IH0KICAg
ICB2b2lkIHJlbW92ZVVucGFyZW50ZWRUaWxlc05vdygpOwotI2VuZGlmCisgICAgVmVjdG9yPEZs
b2F0UmVjdD4gdW5wYXJlbnRlZFRpbGVGcmFtZXMoKSBjb25zdDsKIAogICAgIHR5cGVkZWYgSW50
UG9pbnQgVGlsZUluZGV4OwogICAgIHR5cGVkZWYgdW5zaWduZWQgVGlsZUNvaG9ydDsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckJhY2tpbmcuY3BwIGIv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQmFja2luZy5jcHAKaW5kZXggYWZk
NWYzNWQwNTNiNGU3OTZhMmVlYWIwMTc2Njk5NTAxNDIxYTE5OC4uOWJjNWYyNzkyN2Y3MmRhYTEw
OTQxZTY0YWYyYWRiODUwMmYyZTU2ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlckxheWVyQmFja2luZy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlckxheWVyQmFja2luZy5jcHAKQEAgLTI0MzcsNiArMjQzNywxMyBAQCBib29sIFJlbmRl
ckxheWVyQmFja2luZzo6c2hvdWxkVGVtcG9yYXJpbHlSZXRhaW5UaWxlQ29ob3J0cyhjb25zdCBH
cmFwaGljc0xheWVyKgogICAgIHJldHVybiB0cnVlOwogfQogCitib29sIFJlbmRlckxheWVyQmFj
a2luZzo6dGlsZWRTY3JvbGxpbmdJbmRpY2F0b3JWaXNpYmxlKCkgY29uc3QKK3sKKyAgICBpZiAo
UGFnZSogcGFnZSA9IHJlbmRlcmVyKCkuZnJhbWUoKS5wYWdlKCkpCisgICAgICAgIHJldHVybiBw
YWdlLT5zZXR0aW5ncygpLnNob3dUaWxlZFNjcm9sbGluZ0luZGljYXRvcigpOworICAgIHJldHVy
biBmYWxzZTsKK30KKwogI2lmbmRlZiBOREVCVUcKIHZvaWQgUmVuZGVyTGF5ZXJCYWNraW5nOjp2
ZXJpZnlOb3RQYWludGluZygpCiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyTGF5ZXJCYWNraW5nLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
TGF5ZXJCYWNraW5nLmgKaW5kZXggN2NhNjI5Yzg0ODEzMjk3NTI0ZjQwMjU5ZDhlOGNlOGIzY2Mz
MjE0MC4uMzVkNjhhZTliODI5ZTkwYmI5YTM5MGMwZTMxNDMxOTZjM2JkM2QzZCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQmFja2luZy5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckJhY2tpbmcuaApAQCAtMjE0LDYgKzIx
NCw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIGJvb2wgc2hvdWxkQWdncmVzc2l2ZWx5UmV0YWlu
VGlsZXMoY29uc3QgR3JhcGhpY3NMYXllciopIGNvbnN0IG92ZXJyaWRlOwogICAgIHZpcnR1YWwg
Ym9vbCBzaG91bGRUZW1wb3JhcmlseVJldGFpblRpbGVDb2hvcnRzKGNvbnN0IEdyYXBoaWNzTGF5
ZXIqKSBjb25zdCBvdmVycmlkZTsKICAgICB2aXJ0dWFsIGJvb2wgbmVlZHNQaXhlbEFsaWdtZW50
KCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gIW1faXNNYWluRnJhbWVSZW5kZXJWaWV3TGF5ZXI7
IH0KKyAgICB2aXJ0dWFsIGJvb2wgdGlsZWRTY3JvbGxpbmdJbmRpY2F0b3JWaXNpYmxlKCkgY29u
c3Qgb3ZlcnJpZGU7CiAKICNpZiBQTEFURk9STShJT1MpCiAgICAgdmlydHVhbCBib29sIG5lZWRz
SU9TRHVtcFJlbmRlclRyZWVNYWluRnJhbWVSZW5kZXJWaWV3TGF5ZXJJc0Fsd2F5c09wYXF1ZUhh
Y2soY29uc3QgR3JhcGhpY3NMYXllciYpIGNvbnN0IG92ZXJyaWRlOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdDIvU2hhcmVkL21hYy9SZW1vdGVMYXllclRyZWVQcm9wZXJ0eUFwcGxpZXIubW0g
Yi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvbWFjL1JlbW90ZUxheWVyVHJlZVByb3BlcnR5QXBwbGll
ci5tbQppbmRleCAyZGVmNWVhODEwOTY4MWY2Y2Q1N2YwYzAyYjc4MmY2ZGM1ZGU4NjBiLi5mODAy
YzQ2MTgwOTkyYTMzODM3MzJjNTZkMWZiYmYzYzM0ZWMxMjE4IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0Mi9TaGFyZWQvbWFjL1JlbW90ZUxheWVyVHJlZVByb3BlcnR5QXBwbGllci5tbQorKysg
Yi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvbWFjL1JlbW90ZUxheWVyVHJlZVByb3BlcnR5QXBwbGll
ci5tbQpAQCAtMjksNiArMjksNyBAQAogI2ltcG9ydCAiUGxhdGZvcm1DQUFuaW1hdGlvblJlbW90
ZS5oIgogI2ltcG9ydCAiUGxhdGZvcm1DQUxheWVyUmVtb3RlLmgiCiAjaW1wb3J0ICJSZW1vdGVM
YXllclRyZWVIb3N0LmgiCisjaW1wb3J0ICJSZW1vdGVMYXllclRyZWVUaWxlTWFwLmgiCiAjaW1w
b3J0IDxRdWFydHpDb3JlL1F1YXJ0ekNvcmUuaD4KICNpbXBvcnQgPFdlYkNvcmUvQmxvY2tFeGNl
cHRpb25zLmg+CiAjaW1wb3J0IDxXZWJDb3JlL1BsYXRmb3JtQ0FGaWx0ZXJzLmg+CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvbWFjL1JlbW90ZUxheWVyVHJlZVRyYW5zYWN0aW9u
LmggYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvbWFjL1JlbW90ZUxheWVyVHJlZVRyYW5zYWN0aW9u
LmgKaW5kZXggYWI4NjMxNTZkOWI1Y2YwZDNhMzY0N2Y4MzZlNTU2YzUxMDUxZmQxMi4uMWE5YzY2
MDNiOTFlOGRiN2Y0YTdkZTExZWQ4M2U1NjBiMzczZTlkNyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdDIvU2hhcmVkL21hYy9SZW1vdGVMYXllclRyZWVUcmFuc2FjdGlvbi5oCisrKyBiL1NvdXJj
ZS9XZWJLaXQyL1NoYXJlZC9tYWMvUmVtb3RlTGF5ZXJUcmVlVHJhbnNhY3Rpb24uaApAQCAtODYs
NiArODYsNyBAQCBwdWJsaWM6CiAgICAgICAgIEFuaW1hdGlvbnNDaGFuZ2VkICAgICAgICAgICAg
ICAgPSAxTExVIDw8IDMzLAogICAgICAgICBFZGdlQW50aWFsaWFzaW5nTWFza0NoYW5nZWQgICAg
ID0gMUxMVSA8PCAzNCwKICAgICAgICAgQ3VzdG9tQXBwZWFyYW5jZUNoYW5nZWQgICAgICAgICA9
IDFMTFUgPDwgMzUsCisgICAgICAgIFVucGFyZW50ZWRUaWxlRnJhbWVzQ2hhbmdlZCAgICAgPSAx
TExVIDw8IDM2LAogICAgIH07CiAgICAgdHlwZWRlZiB1aW50NjRfdCBMYXllckNoYW5nZTsKIApA
QCAtMTI3LDYgKzEyOCw3IEBAIHB1YmxpYzoKICAgICAgICAgc3RkOjp1bmlxdWVfcHRyPFdlYkNv
cmU6OlRyYW5zZm9ybWF0aW9uTWF0cml4PiB0cmFuc2Zvcm07CiAgICAgICAgIHN0ZDo6dW5pcXVl
X3B0cjxXZWJDb3JlOjpUcmFuc2Zvcm1hdGlvbk1hdHJpeD4gc3VibGF5ZXJUcmFuc2Zvcm07CiAg
ICAgICAgIHN0ZDo6dW5pcXVlX3B0cjxXZWJDb3JlOjpGbG9hdFJvdW5kZWRSZWN0PiBzaGFwZVJv
dW5kZWRSZWN0OworICAgICAgICBzdGQ6OnVuaXF1ZV9wdHI8VmVjdG9yPFdlYkNvcmU6OkZsb2F0
UmVjdD4+IHVucGFyZW50ZWRUaWxlRnJhbWVzOwogCiAgICAgICAgIFZlY3RvcjxXZWJDb3JlOjpH
cmFwaGljc0xheWVyOjpQbGF0Zm9ybUxheWVySUQ+IGNoaWxkcmVuOwogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0Mi9TaGFyZWQvbWFjL1JlbW90ZUxheWVyVHJlZVRyYW5zYWN0aW9uLm1tIGIv
U291cmNlL1dlYktpdDIvU2hhcmVkL21hYy9SZW1vdGVMYXllclRyZWVUcmFuc2FjdGlvbi5tbQpp
bmRleCAyNzYwNzY4MDY5ZTFjNWVlODExMWVmYjQ4YjY5ZGMyMTcxNzFmYTRkLi4yNWRiZGVkY2Fm
ZjExNTg1NDNkNzc3MTE3YWMwMDgyMTE0MmY3NmNkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9TaGFyZWQvbWFjL1JlbW90ZUxheWVyVHJlZVRyYW5zYWN0aW9uLm1tCisrKyBiL1NvdXJjZS9X
ZWJLaXQyL1NoYXJlZC9tYWMvUmVtb3RlTGF5ZXJUcmVlVHJhbnNhY3Rpb24ubW0KQEAgLTI2OCw2
ICsyNjgsOSBAQCB2b2lkIFJlbW90ZUxheWVyVHJlZVRyYW5zYWN0aW9uOjpMYXllclByb3BlcnRp
ZXM6OmVuY29kZShJUEM6OkFyZ3VtZW50RW5jb2RlciYgZQogCiAgICAgaWYgKGNoYW5nZWRQcm9w
ZXJ0aWVzICYgQ3VzdG9tQXBwZWFyYW5jZUNoYW5nZWQpCiAgICAgICAgIGVuY29kZXIuZW5jb2Rl
RW51bShjdXN0b21BcHBlYXJhbmNlKTsKKworICAgIGlmIChjaGFuZ2VkUHJvcGVydGllcyAmIFVu
cGFyZW50ZWRUaWxlRnJhbWVzQ2hhbmdlZCkKKyAgICAgICAgZW5jb2Rlci5lbmNvZGUoKnVucGFy
ZW50ZWRUaWxlRnJhbWVzKTsKIH0KIAogYm9vbCBSZW1vdGVMYXllclRyZWVUcmFuc2FjdGlvbjo6
TGF5ZXJQcm9wZXJ0aWVzOjpkZWNvZGUoSVBDOjpBcmd1bWVudERlY29kZXImIGRlY29kZXIsIExh
eWVyUHJvcGVydGllcyYgcmVzdWx0KQpAQCAtNDgxLDYgKzQ4NCwxNCBAQCBib29sIFJlbW90ZUxh
eWVyVHJlZVRyYW5zYWN0aW9uOjpMYXllclByb3BlcnRpZXM6OmRlY29kZShJUEM6OkFyZ3VtZW50
RGVjb2RlciYgZAogICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIH0KIAorICAgIGlmIChy
ZXN1bHQuY2hhbmdlZFByb3BlcnRpZXMgJiBVbnBhcmVudGVkVGlsZUZyYW1lc0NoYW5nZWQpIHsK
KyAgICAgICAgc3RkOjp1bmlxdWVfcHRyPFZlY3RvcjxGbG9hdFJlY3Q+PiBmcmFtZXMgPSBzdGQ6
Om1ha2VfdW5pcXVlPFZlY3RvcjxGbG9hdFJlY3Q+PigpOworICAgICAgICBpZiAoIWRlY29kZXIu
ZGVjb2RlKCpmcmFtZXMpKQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgICAgIHJl
c3VsdC51bnBhcmVudGVkVGlsZUZyYW1lcyA9IFdURjo6bW92ZShmcmFtZXMpOworICAgIH0KKwog
ICAgIHJldHVybiB0cnVlOwogfQogCkBAIC0xMjI1LDYgKzEyMzYsMTEgQEAgc3RhdGljIHZvaWQg
ZHVtcENoYW5nZWRMYXllcnMoUmVtb3RlTGF5ZXJUcmVlVGV4dFN0cmVhbSYgdHMsIGNvbnN0IFJl
bW90ZUxheWVyVHIKICAgICAgICAgaWYgKGxheWVyUHJvcGVydGllcy5jaGFuZ2VkUHJvcGVydGll
cyAmIFJlbW90ZUxheWVyVHJlZVRyYW5zYWN0aW9uOjpDdXN0b21BcHBlYXJhbmNlQ2hhbmdlZCkK
ICAgICAgICAgICAgIGR1bXBQcm9wZXJ0eSh0cywgImN1c3RvbUFwcGVhcmFuY2UiLCBsYXllclBy
b3BlcnRpZXMuY3VzdG9tQXBwZWFyYW5jZSk7CiAKKyAgICAgICAgaWYgKGxheWVyUHJvcGVydGll
cy5jaGFuZ2VkUHJvcGVydGllcyAmIFJlbW90ZUxheWVyVHJlZVRyYW5zYWN0aW9uOjpVbnBhcmVu
dGVkVGlsZUZyYW1lc0NoYW5nZWQpIHsKKyAgICAgICAgICAgIGZvciAoYXV0byYgZnJhbWUgOiAq
bGF5ZXJQcm9wZXJ0aWVzLnVucGFyZW50ZWRUaWxlRnJhbWVzKQorICAgICAgICAgICAgICAgIGR1
bXBQcm9wZXJ0eSh0cywgInVucGFyZW50ZWQgdGlsZSBmcmFtZSIsIGZyYW1lKTsKKyAgICAgICAg
fQorCiAgICAgICAgIHRzIDw8ICIpIjsKIAogICAgICAgICB0cy5kZWNyZWFzZUluZGVudCgpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0NvY29hL1JlbW90ZUxheWVyVHJl
ZVRpbGVNYXAuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db2NvYS9SZW1vdGVMYXllclRy
ZWVUaWxlTWFwLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYWFjMGU0YzZjODlhNzYzODk5OTM0MjVjM2NlZGEwNjA1
NmRmMDJmMQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db2Nv
YS9SZW1vdGVMYXllclRyZWVUaWxlTWFwLmgKQEAgLTAsMCArMSw4MCBAQAorLyoKKyAqIENvcHly
aWdodCAoQykgMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisg
KgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09O
VFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisg
KiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9S
IElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFN
QUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklU
UzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFO
WSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICog
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisK
KyNpZm5kZWYgUmVtb3RlTGF5ZXJUcmVlVGlsZU1hcF9oCisjZGVmaW5lIFJlbW90ZUxheWVyVHJl
ZVRpbGVNYXBfaAorCisjaW1wb3J0IDxRdWFydHpDb3JlL0NBTGF5ZXIuaD4KKyNpbXBvcnQgPHd0
Zi9SZXRhaW5QdHIuaD4KKyNpbXBvcnQgPHd0Zi9WZWN0b3IuaD4KKworbmFtZXNwYWNlIFdlYkNv
cmUgeworY2xhc3MgSW50U2l6ZTsKK2NsYXNzIEludFBvaW50OworY2xhc3MgRmxvYXRQb2ludDsK
K2NsYXNzIEZsb2F0UmVjdDsKK30KKworI2lmIGRlZmluZWQoX19PQkpDX18pCisKK0BpbnRlcmZh
Y2UgVGlsZWRCYWNraW5nSW5kaWNhdG9yTGF5ZXIgOiBDQUxheWVyIHsKKyAgICBWZWN0b3I8V2Vi
Q29yZTo6RmxvYXRSZWN0PiBfdW5wYXJlbnRlZFRpbGVGcmFtZXM7CisgICAgVmVjdG9yPFJldGFp
blB0cjxDQUxheWVyICo+PiBfdW5wYXJlbnRlZFRpbGVMYXllcnM7CisgICAgZmxvYXQgX2luZGlj
YXRvclNjYWxlOworfQorCistICh2b2lkKXNldFVucGFyZW50ZWRUaWxlRnJhbWVzOihWZWN0b3I8
V2ViQ29yZTo6RmxvYXRSZWN0PilmcmFtZXM7CisKK0Bwcm9wZXJ0eSAobm9uYXRvbWljKSBmbG9h
dCBpbmRpY2F0b3JTY2FsZTsKKworQGVuZAorCisjZW5kaWYKKworbmFtZXNwYWNlIFdlYktpdCB7
CisKK2NsYXNzIFJlbW90ZUxheWVyVHJlZUhvc3Q7CisKK2NsYXNzIFJlbW90ZUxheWVyVHJlZVRp
bGVNYXAgeworcHVibGljOgorICAgIFJlbW90ZUxheWVyVHJlZVRpbGVNYXAoUmVtb3RlTGF5ZXJU
cmVlSG9zdCYpOworCisgICAgdm9pZCB1cGRhdGUoV2ViQ29yZTo6SW50U2l6ZSB2aWV3U2l6ZSwg
V2ViQ29yZTo6SW50U2l6ZSBjb250ZW50c1NpemUsIFdlYkNvcmU6OkZsb2F0UG9pbnQgaW5kaWNh
dG9yTG9jYXRpb24sIGJvb2wgcm9vdExheWVyQ2hhbmdlZCwgZmxvYXQgc2NhbGUsIGNvbnN0IFdl
YkNvcmU6OkZsb2F0UmVjdCYgZXhwb3NlZFJlY3QpOworICAgIHZvaWQgc2V0UG9zaXRpb24oV2Vi
Q29yZTo6RmxvYXRQb2ludCk7CisKKyAgICBDQUxheWVyKiB0aWxlTWFwTGF5ZXIoKSB7IHJldHVy
biBtX3RpbGVNYXBIb3N0TGF5ZXIuZ2V0KCk7IH0KKworcHJpdmF0ZToKKworICAgIFJlbW90ZUxh
eWVyVHJlZUhvc3QmIG1fZGVidWdJbmRpY2F0b3JMYXllclRyZWVIb3N0OworICAgIFJldGFpblB0
cjxDQUxheWVyPiBtX3RpbGVNYXBIb3N0TGF5ZXI7CisgICAgUmV0YWluUHRyPENBTGF5ZXI+IG1f
ZXhwb3NlZFJlY3RJbmRpY2F0b3JMYXllcjsKK307CisKKworCit9CisKKyNlbmRpZiAvLyBSZW1v
dGVMYXllclRyZWVUaWxlTWFwX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9Db2NvYS9SZW1vdGVMYXllclRyZWVUaWxlTWFwLm1tIGIvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL0NvY29hL1JlbW90ZUxheWVyVHJlZVRpbGVNYXAubW0KbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZTgwMmJjZWZh
YmNkOGZjZGY0NWUxNTg4MzA4NjZhNTI0ZWU2MmY4YgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db2NvYS9SZW1vdGVMYXllclRyZWVUaWxlTWFwLm1tCkBAIC0w
LDAgKzEsMTU3IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE1IEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1l
dDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmlu
YXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGlu
IHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVk
IHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVE
IEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5Z
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5P
IEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxF
IEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZ
LCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExP
U1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9O
KSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworCisjaW1wb3J0ICJjb25maWcuaCIKKyNpbXBvcnQg
IlJlbW90ZUxheWVyVHJlZVRpbGVNYXAuaCIKKworI2ltcG9ydCAiUmVtb3RlTGF5ZXJUcmVlSG9z
dC5oIgorI2ltcG9ydCA8V2ViQ29yZS9GbG9hdFJlY3QuaD4KKyNpbXBvcnQgPFdlYkNvcmUvV2Vi
QWN0aW9uRGlzYWJsaW5nQ0FMYXllckRlbGVnYXRlLmg+CisKK3VzaW5nIG5hbWVzcGFjZSBXZWJD
b3JlOworCitAaW1wbGVtZW50YXRpb24gVGlsZWRCYWNraW5nSW5kaWNhdG9yTGF5ZXIKKworLSAo
aW5zdGFuY2V0eXBlKWluaXQKK3sKKyAgICBzZWxmID0gW3N1cGVyIGluaXRdOworICAgIGlmICgh
c2VsZikKKyAgICAgICAgcmV0dXJuIG5pbDsKKworICAgIF9pbmRpY2F0b3JTY2FsZSA9IDE7Cisg
ICAgcmV0dXJuIHNlbGY7Cit9CisKKy0gKGZsb2F0KWluZGljYXRvclNjYWxlCit7CisgICAgcmV0
dXJuIF9pbmRpY2F0b3JTY2FsZTsKK30KKworLSAodm9pZClzZXRJbmRpY2F0b3JTY2FsZTooZmxv
YXQpc2NhbGUKK3sKKyAgICBfaW5kaWNhdG9yU2NhbGUgPSBzY2FsZTsKK30KKworLSAodm9pZClz
ZXRVbnBhcmVudGVkVGlsZUZyYW1lczooVmVjdG9yPEZsb2F0UmVjdD4pZnJhbWVzCit7CisgICAg
aWYgKGZyYW1lcyA9PSBfdW5wYXJlbnRlZFRpbGVGcmFtZXMpCisgICAgICAgIHJldHVybjsKKwor
ICAgIF91bnBhcmVudGVkVGlsZUZyYW1lcyA9IFdURjo6bW92ZShmcmFtZXMpOworICAgIAorICAg
IGZvciAoYXV0byYgbGF5ZXIgOiBfdW5wYXJlbnRlZFRpbGVMYXllcnMpCisgICAgICAgIFtsYXll
ciByZW1vdmVGcm9tU3VwZXJsYXllcl07CisgICAgCisgICAgX3VucGFyZW50ZWRUaWxlTGF5ZXJz
LmNsZWFyKCk7CisKKyAgICBSZXRhaW5QdHI8Q0dDb2xvclNwYWNlUmVmPiBjb2xvclNwYWNlID0g
YWRvcHRDRihDR0NvbG9yU3BhY2VDcmVhdGVEZXZpY2VSR0IoKSk7CisgICAgY29uc3QgQ0dGbG9h
dCBib3JkZXJDb21wb25lbnRzW10gPSB7IDAuMiwgMC4xLCAwLjksIDAuOCB9OworICAgIFJldGFp
blB0cjxDR0NvbG9yUmVmPiBib3JkZXJDb2xvciA9IGFkb3B0Q0YoQ0dDb2xvckNyZWF0ZShjb2xv
clNwYWNlLmdldCgpLCBib3JkZXJDb21wb25lbnRzKSk7CisKKyAgICBjb25zdCBDR0Zsb2F0IGZp
bGxDb21wb25lbnRzW10gPSB7IDAuOCwgMC44LCAwLjgsIDAuMiB9OworICAgIFJldGFpblB0cjxD
R0NvbG9yUmVmPiBmaWxsQ29sb3IgPSBhZG9wdENGKENHQ29sb3JDcmVhdGUoY29sb3JTcGFjZS5n
ZXQoKSwgZmlsbENvbXBvbmVudHMpKTsKKyAgICAKKyAgICBmb3IgKGF1dG8mIHJlY3QgOiBfdW5w
YXJlbnRlZFRpbGVGcmFtZXMpIHsKKyAgICAgICAgUmV0YWluUHRyPENBTGF5ZXIgKj4gbGF5ZXIg
PSBhZG9wdE5TKFtbQ0FMYXllciBhbGxvY10gaW5pdF0pOworICAgICAgICAKKyAgICAgICAgW2xh
eWVyIHNldEFuY2hvclBvaW50OkNHUG9pbnRaZXJvXTsKKyAgICAgICAgW2xheWVyIHNldFBvc2l0
aW9uOnJlY3QubG9jYXRpb24oKV07CisgICAgICAgIFtsYXllciBzZXRCb3VuZHM6RmxvYXRSZWN0
KEZsb2F0UG9pbnQoKSwgcmVjdC5zaXplKCkpXTsKKworICAgICAgICBbbGF5ZXIgc2V0Qm9yZGVy
V2lkdGg6MC41IC8gX2luZGljYXRvclNjYWxlXTsKKyAgICAgICAgW2xheWVyIHNldEJvcmRlckNv
bG9yOmJvcmRlckNvbG9yLmdldCgpXTsKKyAgICAgICAgW2xheWVyIHNldEJhY2tncm91bmRDb2xv
cjpmaWxsQ29sb3IuZ2V0KCldOworCisgICAgICAgIFtzZWxmIGFkZFN1YmxheWVyOmxheWVyLmdl
dCgpXTsKKworICAgICAgICBfdW5wYXJlbnRlZFRpbGVMYXllcnMuYXBwZW5kKFdURjo6bW92ZShs
YXllcikpOworICAgIH0KK30KKworQGVuZAorCituYW1lc3BhY2UgV2ViS2l0IHsKKworUmVtb3Rl
TGF5ZXJUcmVlVGlsZU1hcDo6UmVtb3RlTGF5ZXJUcmVlVGlsZU1hcChSZW1vdGVMYXllclRyZWVI
b3N0JiBkZWJ1Z1JlbW90ZUxheWVyVHJlZUhvc3QpCisgICAgOiBtX2RlYnVnSW5kaWNhdG9yTGF5
ZXJUcmVlSG9zdChkZWJ1Z1JlbW90ZUxheWVyVHJlZUhvc3QpCit7CisgICAgbV90aWxlTWFwSG9z
dExheWVyID0gYWRvcHROUyhbW0NBTGF5ZXIgYWxsb2NdIGluaXRdKTsKKyAgICBbbV90aWxlTWFw
SG9zdExheWVyIHNldE5hbWU6QCJUaWxlIG1hcCBob3N0Il07CisgICAgW21fdGlsZU1hcEhvc3RM
YXllciBzZXREZWxlZ2F0ZTpbV2ViQWN0aW9uRGlzYWJsaW5nQ0FMYXllckRlbGVnYXRlIHNoYXJl
ZF1dOworICAgIFttX3RpbGVNYXBIb3N0TGF5ZXIgc2V0QW5jaG9yUG9pbnQ6Q0dQb2ludFplcm9d
OworICAgIFttX3RpbGVNYXBIb3N0TGF5ZXIgc2V0T3BhY2l0eTowLjhdOworICAgIFttX3RpbGVN
YXBIb3N0TGF5ZXIgc2V0TWFza3NUb0JvdW5kczpZRVNdOworICAgIFttX3RpbGVNYXBIb3N0TGF5
ZXIgc2V0Qm9yZGVyV2lkdGg6Ml07CisKKyAgICBSZXRhaW5QdHI8Q0dDb2xvclNwYWNlUmVmPiBj
b2xvclNwYWNlID0gYWRvcHRDRihDR0NvbG9yU3BhY2VDcmVhdGVEZXZpY2VSR0IoKSk7CisgICAg
eworICAgICAgICBjb25zdCBDR0Zsb2F0IGNvbXBvbmVudHNbXSA9IHsgMSwgMSwgMSwgMC42IH07
CisgICAgICAgIFJldGFpblB0cjxDR0NvbG9yUmVmPiBjb2xvciA9IGFkb3B0Q0YoQ0dDb2xvckNy
ZWF0ZShjb2xvclNwYWNlLmdldCgpLCBjb21wb25lbnRzKSk7CisgICAgICAgIFttX3RpbGVNYXBI
b3N0TGF5ZXIgc2V0QmFja2dyb3VuZENvbG9yOmNvbG9yLmdldCgpXTsKKworICAgICAgICBjb25z
dCBDR0Zsb2F0IGJvcmRlckNvbXBvbmVudHNbXSA9IHsgMCwgMCwgMCwgMSB9OworICAgICAgICBS
ZXRhaW5QdHI8Q0dDb2xvclJlZj4gYm9yZGVyQ29sb3IgPSBhZG9wdENGKENHQ29sb3JDcmVhdGUo
Y29sb3JTcGFjZS5nZXQoKSwgYm9yZGVyQ29tcG9uZW50cykpOworICAgICAgICBbbV90aWxlTWFw
SG9zdExheWVyIHNldEJvcmRlckNvbG9yOmJvcmRlckNvbG9yLmdldCgpXTsKKyAgICB9CisgICAg
CisgICAgbV9leHBvc2VkUmVjdEluZGljYXRvckxheWVyID0gYWRvcHROUyhbW0NBTGF5ZXIgYWxs
b2NdIGluaXRdKTsKKyAgICBbbV9leHBvc2VkUmVjdEluZGljYXRvckxheWVyIHNldERlbGVnYXRl
OltXZWJBY3Rpb25EaXNhYmxpbmdDQUxheWVyRGVsZWdhdGUgc2hhcmVkXV07CisgICAgW21fZXhw
b3NlZFJlY3RJbmRpY2F0b3JMYXllciBzZXRBbmNob3JQb2ludDpDR1BvaW50WmVyb107CisKKyAg
ICB7CisgICAgICAgIGNvbnN0IENHRmxvYXQgY29tcG9uZW50c1tdID0geyAwLCAxLCAwLCAxIH07
CisgICAgICAgIFJldGFpblB0cjxDR0NvbG9yUmVmPiBjb2xvciA9IGFkb3B0Q0YoQ0dDb2xvckNy
ZWF0ZShjb2xvclNwYWNlLmdldCgpLCBjb21wb25lbnRzKSk7CisgICAgICAgIFttX2V4cG9zZWRS
ZWN0SW5kaWNhdG9yTGF5ZXIgc2V0Qm9yZGVyQ29sb3I6Y29sb3IuZ2V0KCldOworICAgIH0KK30K
Kwordm9pZCBSZW1vdGVMYXllclRyZWVUaWxlTWFwOjp1cGRhdGUoSW50U2l6ZSB2aWV3U2l6ZSwg
SW50U2l6ZSBjb250ZW50c1NpemUsIEZsb2F0UG9pbnQgaW5kaWNhdG9yTG9jYXRpb24sIGJvb2wg
cm9vdExheWVyQ2hhbmdlZCwgZmxvYXQgaW5kaWNhdG9yU2NhbGUsIGNvbnN0IEZsb2F0UmVjdCYg
ZXhwb3NlZFJlY3QpCit7CisgICAgW21fdGlsZU1hcEhvc3RMYXllciBzZXRCb3VuZHM6RmxvYXRS
ZWN0KEZsb2F0UG9pbnQoKSwgY29udGVudHNTaXplKV07CisgICAgW21fdGlsZU1hcEhvc3RMYXll
ciBzZXRQb3NpdGlvbjppbmRpY2F0b3JMb2NhdGlvbl07CisgICAgW21fdGlsZU1hcEhvc3RMYXll
ciBzZXRUcmFuc2Zvcm06Q0FUcmFuc2Zvcm0zRE1ha2VTY2FsZShpbmRpY2F0b3JTY2FsZSwgaW5k
aWNhdG9yU2NhbGUsIDEpXTsKKyAgICBbbV90aWxlTWFwSG9zdExheWVyIHNldE5lZWRzRGlzcGxh
eV07CisKKyAgICBpZiAocm9vdExheWVyQ2hhbmdlZCkgeworICAgICAgICBbbV90aWxlTWFwSG9z
dExheWVyIHNldFN1YmxheWVyczpAW11dOworICAgICAgICBbbV90aWxlTWFwSG9zdExheWVyIGFk
ZFN1YmxheWVyOmFzTGF5ZXIobV9kZWJ1Z0luZGljYXRvckxheWVyVHJlZUhvc3Qucm9vdExheWVy
KCkpXTsKKyAgICAgICAgW21fdGlsZU1hcEhvc3RMYXllciBhZGRTdWJsYXllcjptX2V4cG9zZWRS
ZWN0SW5kaWNhdG9yTGF5ZXIuZ2V0KCldOworICAgIH0KKyAgICAKKyAgICBjb25zdCBmbG9hdCBp
bmRpY2F0b3JCb3JkZXJXaWR0aCA9IDE7CisgICAgZmxvYXQgY291bnRlclNjYWxlZEJvcmRlciA9
IGluZGljYXRvckJvcmRlcldpZHRoIC8gaW5kaWNhdG9yU2NhbGU7CisKKyAgICBbbV9leHBvc2Vk
UmVjdEluZGljYXRvckxheWVyIHNldEJvcmRlcldpZHRoOmNvdW50ZXJTY2FsZWRCb3JkZXJdOwor
ICAgIFttX2V4cG9zZWRSZWN0SW5kaWNhdG9yTGF5ZXIgc2V0UG9zaXRpb246ZXhwb3NlZFJlY3Qu
bG9jYXRpb24oKV07CisgICAgW21fZXhwb3NlZFJlY3RJbmRpY2F0b3JMYXllciBzZXRCb3VuZHM6
RmxvYXRSZWN0KEZsb2F0UG9pbnQoKSwgZXhwb3NlZFJlY3Quc2l6ZSgpKV07Cit9CisKK3ZvaWQg
UmVtb3RlTGF5ZXJUcmVlVGlsZU1hcDo6c2V0UG9zaXRpb24oRmxvYXRQb2ludCBwb3NpdGlvbikK
K3sKKyAgICBbbV90aWxlTWFwSG9zdExheWVyIHNldFBvc2l0aW9uOnBvc2l0aW9uXTsKK30KKwor
fQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2lvcy9SZW1vdGVMYXllclRy
ZWVIb3N0SU9TLm1tIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2lvcy9SZW1vdGVMYXllclRy
ZWVIb3N0SU9TLm1tCmluZGV4IDEzMDY0YTY2ZmNkYjlkNTEwZjlkZjZjNGYyZGU2YzYwYzlkZmU2
ZWEuLjNmMWZiNGVkYmIzOWYwN2ZlNzRjNzExZTJjZTY0NzFiOGIzYWY2OGUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9pb3MvUmVtb3RlTGF5ZXJUcmVlSG9zdElPUy5tbQor
KysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvaW9zL1JlbW90ZUxheWVyVHJlZUhvc3RJT1Mu
bW0KQEAgLTI4LDYgKzI4LDcgQEAKICNpZiBQTEFURk9STShJT1MpCiAKICNpbXBvcnQgIlJlbW90
ZUxheWVyVHJlZUhvc3QuaCIKKyNpbXBvcnQgIlJlbW90ZUxheWVyVHJlZVRpbGVNYXAuaCIKICNp
bXBvcnQgPFF1YXJ0ekNvcmUvUXVhcnR6Q29yZS5oPgogI2ltcG9ydCA8VUlLaXQvVUlTY3JvbGxW
aWV3Lmg+CiAjaW1wb3J0IDxVSUtpdFNQSS5oPgpAQCAtMTc4LDYgKzE3OSwxOCBAQCAtIChOU1N0
cmluZyAqKWRlc2NyaXB0aW9uCiAKIEBlbmQKIAorQGludGVyZmFjZSBXS1RpbGVkQmFja2luZ0lu
ZGljYXRvclZpZXcgOiBXS0NvbXBvc2l0aW5nVmlldworQGVuZAorCitAaW1wbGVtZW50YXRpb24g
V0tUaWxlZEJhY2tpbmdJbmRpY2F0b3JWaWV3CisKKysgKENsYXNzKWxheWVyQ2xhc3MKK3sKKyAg
ICByZXR1cm4gW1RpbGVkQmFja2luZ0luZGljYXRvckxheWVyIHNlbGZdOworfQorCitAZW5kCisK
IG5hbWVzcGFjZSBXZWJLaXQgewogCiBMYXllck9yVmlldyAqUmVtb3RlTGF5ZXJUcmVlSG9zdDo6
Y3JlYXRlTGF5ZXIoY29uc3QgUmVtb3RlTGF5ZXJUcmVlVHJhbnNhY3Rpb246OkxheWVyQ3JlYXRp
b25Qcm9wZXJ0aWVzJiBwcm9wZXJ0aWVzLCBjb25zdCBSZW1vdGVMYXllclRyZWVUcmFuc2FjdGlv
bjo6TGF5ZXJQcm9wZXJ0aWVzKiBsYXllclByb3BlcnRpZXMpCkBAIC0xOTEsOCArMjA0LDYgQEAg
TGF5ZXJPclZpZXcgKlJlbW90ZUxheWVyVHJlZUhvc3Q6OmNyZWF0ZUxheWVyKGNvbnN0IFJlbW90
ZUxheWVyVHJlZVRyYW5zYWN0aW9uOjoKICAgICBjYXNlIFBsYXRmb3JtQ0FMYXllcjo6TGF5ZXJU
eXBlV2ViTGF5ZXI6CiAgICAgY2FzZSBQbGF0Zm9ybUNBTGF5ZXI6OkxheWVyVHlwZVJvb3RMYXll
cjoKICAgICBjYXNlIFBsYXRmb3JtQ0FMYXllcjo6TGF5ZXJUeXBlU2ltcGxlTGF5ZXI6Ci0gICAg
Y2FzZSBQbGF0Zm9ybUNBTGF5ZXI6OkxheWVyVHlwZVRpbGVkQmFja2luZ0xheWVyOgotICAgIGNh
c2UgUGxhdGZvcm1DQUxheWVyOjpMYXllclR5cGVQYWdlVGlsZWRCYWNraW5nTGF5ZXI6CiAgICAg
Y2FzZSBQbGF0Zm9ybUNBTGF5ZXI6OkxheWVyVHlwZVRpbGVkQmFja2luZ1RpbGVMYXllcjoKICAg
ICAgICAgdmlldyA9IGFkb3B0TlMoW1tXS0NvbXBvc2l0aW5nVmlldyBhbGxvY10gaW5pdF0pOwog
ICAgICAgICBicmVhazsKQEAgLTIwOCw2ICsyMTksMTMgQEAgTGF5ZXJPclZpZXcgKlJlbW90ZUxh
eWVyVHJlZUhvc3Q6OmNyZWF0ZUxheWVyKGNvbnN0IFJlbW90ZUxheWVyVHJlZVRyYW5zYWN0aW9u
OjoKICAgICBjYXNlIFBsYXRmb3JtQ0FMYXllcjo6TGF5ZXJUeXBlVHJhbnNmb3JtTGF5ZXI6CiAg
ICAgICAgIHZpZXcgPSBhZG9wdE5TKFtbV0tUcmFuc2Zvcm1WaWV3IGFsbG9jXSBpbml0XSk7CiAg
ICAgICAgIGJyZWFrOworICAgIGNhc2UgUGxhdGZvcm1DQUxheWVyOjpMYXllclR5cGVUaWxlZEJh
Y2tpbmdMYXllcjoKKyAgICBjYXNlIFBsYXRmb3JtQ0FMYXllcjo6TGF5ZXJUeXBlUGFnZVRpbGVk
QmFja2luZ0xheWVyOgorICAgICAgICBpZiAoIW1faXNEZWJ1Z0xheWVyVHJlZUhvc3QpCisgICAg
ICAgICAgICB2aWV3ID0gYWRvcHROUyhbW1dLQ29tcG9zaXRpbmdWaWV3IGFsbG9jXSBpbml0XSk7
CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIHZpZXcgPSBhZG9wdE5TKFtbV0tUaWxlZEJhY2tp
bmdJbmRpY2F0b3JWaWV3IGFsbG9jXSBpbml0XSk7CisgICAgICAgIGJyZWFrOwogICAgIGNhc2Ug
UGxhdGZvcm1DQUxheWVyOjpMYXllclR5cGVDdXN0b206CiAgICAgY2FzZSBQbGF0Zm9ybUNBTGF5
ZXI6OkxheWVyVHlwZUFWUGxheWVyTGF5ZXI6CiAgICAgY2FzZSBQbGF0Zm9ybUNBTGF5ZXI6Okxh
eWVyVHlwZVdlYkdMTGF5ZXI6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
bWFjL1JlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9tYWMvUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWFQcm94eS5oCmluZGV4IDQwMDE2
YzQxNTVmZGIyZTRkYzk5ZWNkZDA5OTU3ZDNmN2U0OGFlYWYuLjQ4NzlkMThmZWYxOWM5NjI1MzU1
OGY1OTJlZGUwYTU5OTBkZDQ3ZjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9tYWMvUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWFQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9tYWMvUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWFQcm94eS5oCkBAIC0z
OCw2ICszOCw3IEBAIG5hbWVzcGFjZSBXZWJLaXQgewogCiBjbGFzcyBSZW1vdGVMYXllclRyZWVU
cmFuc2FjdGlvbjsKIGNsYXNzIFJlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yVHJhbnNhY3Rpb247
CitjbGFzcyBSZW1vdGVMYXllclRyZWVUaWxlTWFwOwogCiBjbGFzcyBSZW1vdGVMYXllclRyZWVE
cmF3aW5nQXJlYVByb3h5IDogcHVibGljIERyYXdpbmdBcmVhUHJveHkgewogcHVibGljOgpAQCAt
OTUsOCArOTYsNyBAQCBwcml2YXRlOgogICAgIFdlYkNvcmU6OkludFNpemUgbV9sYXN0U2VudFNp
emU7CiAKICAgICBzdGQ6OnVuaXF1ZV9wdHI8UmVtb3RlTGF5ZXJUcmVlSG9zdD4gbV9kZWJ1Z0lu
ZGljYXRvckxheWVyVHJlZUhvc3Q7Ci0gICAgUmV0YWluUHRyPENBTGF5ZXI+IG1fdGlsZU1hcEhv
c3RMYXllcjsKLSAgICBSZXRhaW5QdHI8Q0FMYXllcj4gbV9leHBvc2VkUmVjdEluZGljYXRvckxh
eWVyOworICAgIHN0ZDo6dW5pcXVlX3B0cjxSZW1vdGVMYXllclRyZWVUaWxlTWFwPiBtX3RpbGVN
YXA7CiAKICAgICB1aW50NjRfdCBtX3BlbmRpbmdMYXllclRyZWVUcmFuc2FjdGlvbklEOwogICAg
IHVpbnQ2NF90IG1fbGFzdFZpc2libGVUcmFuc2FjdGlvbklEOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL21hYy9SZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYVByb3h5Lm1t
IGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL21hYy9SZW1vdGVMYXllclRyZWVEcmF3aW5nQXJl
YVByb3h5Lm1tCmluZGV4IDc1YzI0OWI0MGQ1YzlhMzVhNjlhNzQyODcwZTQ4NjhmYjY4M2M3MDgu
LmRkZTZmOThmNDEyMDNhYjI0Y2YyNGFhZWJkOGQwMjM0YTk5MzYzMjQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9tYWMvUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWFQcm94
eS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvbWFjL1JlbW90ZUxheWVyVHJlZURy
YXdpbmdBcmVhUHJveHkubW0KQEAgLTI5LDYgKzI5LDcgQEAKICNpbXBvcnQgIkxvZ2dpbmcuaCIK
ICNpbXBvcnQgIlJlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhUHJveHlNZXNzYWdlcy5oIgogI2lt
cG9ydCAiRHJhd2luZ0FyZWFNZXNzYWdlcy5oIgorI2ltcG9ydCAiUmVtb3RlTGF5ZXJUcmVlVGls
ZU1hcC5oIgogI2ltcG9ydCAiUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3JQcm94eS5oIgogI2lt
cG9ydCAiUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3JUcmFuc2FjdGlvbi5oIgogI2ltcG9ydCAi
V2ViUGFnZVByb3h5LmgiCkBAIC0yODAsMTAgKzI4MSw4IEBAIEZsb2F0UG9pbnQgUmVtb3RlTGF5
ZXJUcmVlRHJhd2luZ0FyZWFQcm94eTo6aW5kaWNhdG9yTG9jYXRpb24oKSBjb25zdAogCiB2b2lk
IFJlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhUHJveHk6OnVwZGF0ZURlYnVnSW5kaWNhdG9yUG9z
aXRpb24oKQogewotICAgIGlmICghbV90aWxlTWFwSG9zdExheWVyKQotICAgICAgICByZXR1cm47
Ci0KLSAgICBbbV90aWxlTWFwSG9zdExheWVyIHNldFBvc2l0aW9uOmluZGljYXRvckxvY2F0aW9u
KCldOworICAgIGlmIChtX3RpbGVNYXApCisgICAgICAgIG1fdGlsZU1hcC0+c2V0UG9zaXRpb24o
aW5kaWNhdG9yTG9jYXRpb24oKSk7CiB9CiAKIGZsb2F0IFJlbW90ZUxheWVyVHJlZURyYXdpbmdB
cmVhUHJveHk6OmluZGljYXRvclNjYWxlKEludFNpemUgY29udGVudHNTaXplKSBjb25zdApAQCAt
MzA2LDc0ICszMDUsMzIgQEAgdm9pZCBSZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYVByb3h5Ojp1
cGRhdGVEZWJ1Z0luZGljYXRvcigpCiAgICAgdXBkYXRlRGVidWdJbmRpY2F0b3JQb3NpdGlvbigp
OwogfQogCi12b2lkIFJlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhUHJveHk6OnVwZGF0ZURlYnVn
SW5kaWNhdG9yKEludFNpemUgY29udGVudHNTaXplLCBib29sIHJvb3RMYXllckNoYW5nZWQsIGZs
b2F0IHNjYWxlLCBjb25zdCBJbnRQb2ludCYgc2Nyb2xsUG9zaXRpb24pCit2b2lkIFJlbW90ZUxh
eWVyVHJlZURyYXdpbmdBcmVhUHJveHk6OnVwZGF0ZURlYnVnSW5kaWNhdG9yKEludFNpemUgY29u
dGVudHNTaXplLCBib29sIHJvb3RMYXllckNoYW5nZWQsIGZsb2F0IGluZGljYXRvclNjYWxlLCBj
b25zdCBJbnRQb2ludCYgc2Nyb2xsUG9zaXRpb24pCiB7Ci0gICAgLy8gTWFrZSBzdXJlIHdlJ3Jl
IHRoZSBsYXN0IHN1YmxheWVyLgotICAgIENBTGF5ZXIgKnJvb3RMYXllciA9IGFzTGF5ZXIobV9y
ZW1vdGVMYXllclRyZWVIb3N0LnJvb3RMYXllcigpKTsKLSAgICBbbV90aWxlTWFwSG9zdExheWVy
IHJlbW92ZUZyb21TdXBlcmxheWVyXTsKLSAgICBbcm9vdExheWVyIGFkZFN1YmxheWVyOm1fdGls
ZU1hcEhvc3RMYXllci5nZXQoKV07CisgICAgaWYgKCFtX3RpbGVNYXApCisgICAgICAgIHJldHVy
bjsKIAotICAgIC8vIFBpY2sgYSBnb29kIHNjYWxlLgogICAgIEludFNpemUgdmlld1NpemUgPSBt
X3dlYlBhZ2VQcm94eS52aWV3U2l6ZSgpOwotCi0gICAgW21fdGlsZU1hcEhvc3RMYXllciBzZXRC
b3VuZHM6RmxvYXRSZWN0KEZsb2F0UG9pbnQoKSwgY29udGVudHNTaXplKV07Ci0gICAgW21fdGls
ZU1hcEhvc3RMYXllciBzZXRQb3NpdGlvbjppbmRpY2F0b3JMb2NhdGlvbigpXTsKLSAgICBbbV90
aWxlTWFwSG9zdExheWVyIHNldFRyYW5zZm9ybTpDQVRyYW5zZm9ybTNETWFrZVNjYWxlKHNjYWxl
LCBzY2FsZSwgMSldOwotCi0gICAgaWYgKHJvb3RMYXllckNoYW5nZWQpIHsKLSAgICAgICAgW21f
dGlsZU1hcEhvc3RMYXllciBzZXRTdWJsYXllcnM6QFtdXTsKLSAgICAgICAgW21fdGlsZU1hcEhv
c3RMYXllciBhZGRTdWJsYXllcjphc0xheWVyKG1fZGVidWdJbmRpY2F0b3JMYXllclRyZWVIb3N0
LT5yb290TGF5ZXIoKSldOwotICAgICAgICBbbV90aWxlTWFwSG9zdExheWVyIGFkZFN1YmxheWVy
Om1fZXhwb3NlZFJlY3RJbmRpY2F0b3JMYXllci5nZXQoKV07Ci0gICAgfQogICAgIAotICAgIGNv
bnN0IGZsb2F0IGluZGljYXRvckJvcmRlcldpZHRoID0gMTsKLSAgICBmbG9hdCBjb3VudGVyU2Nh
bGVkQm9yZGVyID0gaW5kaWNhdG9yQm9yZGVyV2lkdGggLyBzY2FsZTsKKyAgICBGbG9hdFJlY3Qg
ZXhwb3NlZFJlY3Q7CisgICAgaWYgKG1fd2ViUGFnZVByb3h5LmRlbGVnYXRlc1Njcm9sbGluZygp
KQorICAgICAgICBleHBvc2VkUmVjdCA9IHRoaXMtPnNjYWxlZEV4cG9zZWRSZWN0KCk7CisgICAg
ZWxzZQorICAgICAgICBleHBvc2VkUmVjdCA9IEZsb2F0UmVjdChzY3JvbGxQb3NpdGlvbiwgdmll
d1NpemUpOwogCi0gICAgW21fZXhwb3NlZFJlY3RJbmRpY2F0b3JMYXllciBzZXRCb3JkZXJXaWR0
aDpjb3VudGVyU2NhbGVkQm9yZGVyXTsKKyAgICBtX3RpbGVNYXAtPnVwZGF0ZSh2aWV3U2l6ZSwg
Y29udGVudHNTaXplLCBpbmRpY2F0b3JMb2NhdGlvbigpLCByb290TGF5ZXJDaGFuZ2VkLCBpbmRp
Y2F0b3JTY2FsZSwgZXhwb3NlZFJlY3QpOwogCi0gICAgaWYgKG1fd2ViUGFnZVByb3h5LmRlbGVn
YXRlc1Njcm9sbGluZygpKSB7Ci0gICAgICAgIEZsb2F0UmVjdCBzY2FsZWRFeHBvc2VkUmVjdCA9
IHRoaXMtPnNjYWxlZEV4cG9zZWRSZWN0KCk7Ci0gICAgICAgIFttX2V4cG9zZWRSZWN0SW5kaWNh
dG9yTGF5ZXIgc2V0UG9zaXRpb246c2NhbGVkRXhwb3NlZFJlY3QubG9jYXRpb24oKV07Ci0gICAg
ICAgIFttX2V4cG9zZWRSZWN0SW5kaWNhdG9yTGF5ZXIgc2V0Qm91bmRzOkZsb2F0UmVjdChGbG9h
dFBvaW50KCksIHNjYWxlZEV4cG9zZWRSZWN0LnNpemUoKSldOwotICAgIH0gZWxzZSB7Ci0gICAg
ICAgIFttX2V4cG9zZWRSZWN0SW5kaWNhdG9yTGF5ZXIgc2V0UG9zaXRpb246c2Nyb2xsUG9zaXRp
b25dOwotICAgICAgICBbbV9leHBvc2VkUmVjdEluZGljYXRvckxheWVyIHNldEJvdW5kczpGbG9h
dFJlY3QoRmxvYXRQb2ludCgpLCB2aWV3U2l6ZSldOwotICAgIH0KKyAgICAvLyBNYWtlIHN1cmUg
d2UncmUgdGhlIGxhc3Qgc3VibGF5ZXIuCisgICAgQ0FMYXllciAqcm9vdExheWVyID0gYXNMYXll
cihtX3JlbW90ZUxheWVyVHJlZUhvc3Qucm9vdExheWVyKCkpOworICAgIFttX3RpbGVNYXAtPnRp
bGVNYXBMYXllcigpIHJlbW92ZUZyb21TdXBlcmxheWVyXTsKKyAgICBbcm9vdExheWVyIGFkZFN1
YmxheWVyOm1fdGlsZU1hcC0+dGlsZU1hcExheWVyKCldOwogfQogCiB2b2lkIFJlbW90ZUxheWVy
VHJlZURyYXdpbmdBcmVhUHJveHk6OmluaXRpYWxpemVEZWJ1Z0luZGljYXRvcigpCiB7CiAgICAg
bV9kZWJ1Z0luZGljYXRvckxheWVyVHJlZUhvc3QgPSBzdGQ6Om1ha2VfdW5pcXVlPFJlbW90ZUxh
eWVyVHJlZUhvc3Q+KCp0aGlzKTsKICAgICBtX2RlYnVnSW5kaWNhdG9yTGF5ZXJUcmVlSG9zdC0+
c2V0SXNEZWJ1Z0xheWVyVHJlZUhvc3QodHJ1ZSk7Ci0KLSAgICBtX3RpbGVNYXBIb3N0TGF5ZXIg
PSBhZG9wdE5TKFtbQ0FMYXllciBhbGxvY10gaW5pdF0pOwotICAgIFttX3RpbGVNYXBIb3N0TGF5
ZXIgc2V0TmFtZTpAIlRpbGUgbWFwIGhvc3QiXTsKLSAgICBbbV90aWxlTWFwSG9zdExheWVyIHNl
dERlbGVnYXRlOltXZWJBY3Rpb25EaXNhYmxpbmdDQUxheWVyRGVsZWdhdGUgc2hhcmVkXV07Ci0g
ICAgW21fdGlsZU1hcEhvc3RMYXllciBzZXRBbmNob3JQb2ludDpDR1BvaW50WmVyb107Ci0gICAg
W21fdGlsZU1hcEhvc3RMYXllciBzZXRPcGFjaXR5OjAuOF07Ci0gICAgW21fdGlsZU1hcEhvc3RM
YXllciBzZXRNYXNrc1RvQm91bmRzOllFU107Ci0gICAgW21fdGlsZU1hcEhvc3RMYXllciBzZXRC
b3JkZXJXaWR0aDoyXTsKLQotICAgIFJldGFpblB0cjxDR0NvbG9yU3BhY2VSZWY+IGNvbG9yU3Bh
Y2UgPSBhZG9wdENGKENHQ29sb3JTcGFjZUNyZWF0ZURldmljZVJHQigpKTsKLSAgICB7Ci0gICAg
ICAgIGNvbnN0IENHRmxvYXQgY29tcG9uZW50c1tdID0geyAxLCAxLCAxLCAwLjYgfTsKLSAgICAg
ICAgUmV0YWluUHRyPENHQ29sb3JSZWY+IGNvbG9yID0gYWRvcHRDRihDR0NvbG9yQ3JlYXRlKGNv
bG9yU3BhY2UuZ2V0KCksIGNvbXBvbmVudHMpKTsKLSAgICAgICAgW21fdGlsZU1hcEhvc3RMYXll
ciBzZXRCYWNrZ3JvdW5kQ29sb3I6Y29sb3IuZ2V0KCldOwotCi0gICAgICAgIGNvbnN0IENHRmxv
YXQgYm9yZGVyQ29tcG9uZW50c1tdID0geyAwLCAwLCAwLCAxIH07Ci0gICAgICAgIFJldGFpblB0
cjxDR0NvbG9yUmVmPiBib3JkZXJDb2xvciA9IGFkb3B0Q0YoQ0dDb2xvckNyZWF0ZShjb2xvclNw
YWNlLmdldCgpLCBib3JkZXJDb21wb25lbnRzKSk7Ci0gICAgICAgIFttX3RpbGVNYXBIb3N0TGF5
ZXIgc2V0Qm9yZGVyQ29sb3I6Ym9yZGVyQ29sb3IuZ2V0KCldOwotICAgIH0KLSAgICAKLSAgICBt
X2V4cG9zZWRSZWN0SW5kaWNhdG9yTGF5ZXIgPSBhZG9wdE5TKFtbQ0FMYXllciBhbGxvY10gaW5p
dF0pOwotICAgIFttX2V4cG9zZWRSZWN0SW5kaWNhdG9yTGF5ZXIgc2V0RGVsZWdhdGU6W1dlYkFj
dGlvbkRpc2FibGluZ0NBTGF5ZXJEZWxlZ2F0ZSBzaGFyZWRdXTsKLSAgICBbbV9leHBvc2VkUmVj
dEluZGljYXRvckxheWVyIHNldEFuY2hvclBvaW50OkNHUG9pbnRaZXJvXTsKLQotICAgIHsKLSAg
ICAgICAgY29uc3QgQ0dGbG9hdCBjb21wb25lbnRzW10gPSB7IDAsIDEsIDAsIDEgfTsKLSAgICAg
ICAgUmV0YWluUHRyPENHQ29sb3JSZWY+IGNvbG9yID0gYWRvcHRDRihDR0NvbG9yQ3JlYXRlKGNv
bG9yU3BhY2UuZ2V0KCksIGNvbXBvbmVudHMpKTsKLSAgICAgICAgW21fZXhwb3NlZFJlY3RJbmRp
Y2F0b3JMYXllciBzZXRCb3JkZXJDb2xvcjpjb2xvci5nZXQoKV07Ci0gICAgfQorICAgIG1fdGls
ZU1hcCA9IHN0ZDo6bWFrZV91bmlxdWU8UmVtb3RlTGF5ZXJUcmVlVGlsZU1hcD4oKm1fZGVidWdJ
bmRpY2F0b3JMYXllclRyZWVIb3N0KTsKIH0KIAogdm9pZCBSZW1vdGVMYXllclRyZWVEcmF3aW5n
QXJlYVByb3h5OjpkaWRSZWZyZXNoRGlzcGxheShkb3VibGUpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvbWFjL1JlbW90ZUxheWVyVHJlZUhvc3QubW0gYi9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvbWFjL1JlbW90ZUxheWVyVHJlZUhvc3QubW0KaW5kZXggNDdkNDk2MzUy
MjAyNTI3OGQ0MzgxNDFmM2UxMDI4ODk5ZTJiYzllYi4uYTY2ODVlYWY1YWNjMzJhNGFjZmE1YzY3
YjcwZjAzNzNlODQ3OWJhMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL21h
Yy9SZW1vdGVMYXllclRyZWVIb3N0Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9t
YWMvUmVtb3RlTGF5ZXJUcmVlSG9zdC5tbQpAQCAtMjgsNiArMjgsNyBAQAogCiAjaW1wb3J0ICJS
ZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYVByb3h5LmgiCiAjaW1wb3J0ICJSZW1vdGVMYXllclRy
ZWVQcm9wZXJ0eUFwcGxpZXIuaCIKKyNpbXBvcnQgIlJlbW90ZUxheWVyVHJlZVRpbGVNYXAuaCIK
ICNpbXBvcnQgIlJlbW90ZUxheWVyVHJlZVRyYW5zYWN0aW9uLmgiCiAjaW1wb3J0ICJTaGFyZWFi
bGVCaXRtYXAuaCIKICNpbXBvcnQgIldlYlBhZ2VQcm94eS5oIgpAQCAtMTA2LDYgKzEwNywxNSBA
QCBib29sIFJlbW90ZUxheWVyVHJlZUhvc3Q6OnVwZGF0ZUxheWVyVHJlZShjb25zdCBSZW1vdGVM
YXllclRyZWVUcmFuc2FjdGlvbiYgdHJhbgogCiAgICAgICAgICAgICBpZiAocHJvcGVydGllcy5j
aGFuZ2VkUHJvcGVydGllcyAmIFJlbW90ZUxheWVyVHJlZVRyYW5zYWN0aW9uOjpCb3JkZXJXaWR0
aENoYW5nZWQpCiAgICAgICAgICAgICAgICAgYXNMYXllcihsYXllcikuYm9yZGVyV2lkdGggPSBw
cm9wZXJ0aWVzLmJvcmRlcldpZHRoIC8gaW5kaWNhdG9yU2NhbGVGYWN0b3I7CisKKyAgICAgICAg
ICAgIGlmIChwcm9wZXJ0aWVzLmNoYW5nZWRQcm9wZXJ0aWVzICYgUmVtb3RlTGF5ZXJUcmVlVHJh
bnNhY3Rpb246OlVucGFyZW50ZWRUaWxlRnJhbWVzQ2hhbmdlZCkgeworICAgICAgICAgICAgICAg
IENBTGF5ZXIgKnRpbGVkQmFja2luZ0xheWVyID0gYXNMYXllcihsYXllcik7CisgICAgICAgICAg
ICAgICAgaWYgKFt0aWxlZEJhY2tpbmdMYXllciBpc0tpbmRPZkNsYXNzOltUaWxlZEJhY2tpbmdJ
bmRpY2F0b3JMYXllciBjbGFzc11dKSB7CisgICAgICAgICAgICAgICAgICAgIFsoVGlsZWRCYWNr
aW5nSW5kaWNhdG9yTGF5ZXIgKil0aWxlZEJhY2tpbmdMYXllciBzZXRJbmRpY2F0b3JTY2FsZTpp
bmRpY2F0b3JTY2FsZUZhY3Rvcl07CisgICAgICAgICAgICAgICAgICAgIFsoVGlsZWRCYWNraW5n
SW5kaWNhdG9yTGF5ZXIgKil0aWxlZEJhY2tpbmdMYXllciBzZXRVbnBhcmVudGVkVGlsZUZyYW1l
czoqcHJvcGVydGllcy51bnBhcmVudGVkVGlsZUZyYW1lc107CisgICAgICAgICAgICAgICAgfQor
ICAgICAgICAgICAgfQorCiAgICAgICAgICAgICBhc0xheWVyKGxheWVyKS5tYXNrc1RvQm91bmRz
ID0gZmFsc2U7CiAgICAgICAgIH0gZWxzZQogICAgICAgICAgICAgUmVtb3RlTGF5ZXJUcmVlUHJv
cGVydHlBcHBsaWVyOjphcHBseVByb3BlcnRpZXMobGF5ZXIsIHRoaXMsIHByb3BlcnRpZXMsIHJl
bGF0ZWRMYXllcnMpOwpAQCAtMjE5LDggKzIyOSw2IEBAIExheWVyT3JWaWV3ICpSZW1vdGVMYXll
clRyZWVIb3N0OjpjcmVhdGVMYXllcihjb25zdCBSZW1vdGVMYXllclRyZWVUcmFuc2FjdGlvbjo6
CiAgICAgY2FzZSBQbGF0Zm9ybUNBTGF5ZXI6OkxheWVyVHlwZVdlYkxheWVyOgogICAgIGNhc2Ug
UGxhdGZvcm1DQUxheWVyOjpMYXllclR5cGVSb290TGF5ZXI6CiAgICAgY2FzZSBQbGF0Zm9ybUNB
TGF5ZXI6OkxheWVyVHlwZVNpbXBsZUxheWVyOgotICAgIGNhc2UgUGxhdGZvcm1DQUxheWVyOjpM
YXllclR5cGVUaWxlZEJhY2tpbmdMYXllcjoKLSAgICBjYXNlIFBsYXRmb3JtQ0FMYXllcjo6TGF5
ZXJUeXBlUGFnZVRpbGVkQmFja2luZ0xheWVyOgogICAgIGNhc2UgUGxhdGZvcm1DQUxheWVyOjpM
YXllclR5cGVUaWxlZEJhY2tpbmdUaWxlTGF5ZXI6CiAgICAgY2FzZSBQbGF0Zm9ybUNBTGF5ZXI6
OkxheWVyVHlwZVNjcm9sbGluZ0xheWVyOgogICAgICAgICBsYXllciA9IGFkb3B0TlMoW1tDQUxh
eWVyIGFsbG9jXSBpbml0XSk7CkBAIC0yMjgsNiArMjM2LDEzIEBAIExheWVyT3JWaWV3ICpSZW1v
dGVMYXllclRyZWVIb3N0OjpjcmVhdGVMYXllcihjb25zdCBSZW1vdGVMYXllclRyZWVUcmFuc2Fj
dGlvbjo6CiAgICAgY2FzZSBQbGF0Zm9ybUNBTGF5ZXI6OkxheWVyVHlwZVRyYW5zZm9ybUxheWVy
OgogICAgICAgICBsYXllciA9IGFkb3B0TlMoW1tDQVRyYW5zZm9ybUxheWVyIGFsbG9jXSBpbml0
XSk7CiAgICAgICAgIGJyZWFrOworICAgIGNhc2UgUGxhdGZvcm1DQUxheWVyOjpMYXllclR5cGVU
aWxlZEJhY2tpbmdMYXllcjoKKyAgICBjYXNlIFBsYXRmb3JtQ0FMYXllcjo6TGF5ZXJUeXBlUGFn
ZVRpbGVkQmFja2luZ0xheWVyOgorICAgICAgICBpZiAoIW1faXNEZWJ1Z0xheWVyVHJlZUhvc3Qp
CisgICAgICAgICAgICBsYXllciA9IGFkb3B0TlMoW1tDQUxheWVyIGFsbG9jXSBpbml0XSk7Cisg
ICAgICAgIGVsc2UKKyAgICAgICAgICAgIGxheWVyID0gYWRvcHROUyhbW1RpbGVkQmFja2luZ0lu
ZGljYXRvckxheWVyIGFsbG9jXSBpbml0XSk7CisgICAgICAgIGJyZWFrOwogICAgIGNhc2UgUGxh
dGZvcm1DQUxheWVyOjpMYXllclR5cGVCYWNrZHJvcExheWVyOgogICAgIGNhc2UgUGxhdGZvcm1D
QUxheWVyOjpMYXllclR5cGVMaWdodFN5c3RlbUJhY2tkcm9wTGF5ZXI6CiAgICAgY2FzZSBQbGF0
Zm9ybUNBTGF5ZXI6OkxheWVyVHlwZURhcmtTeXN0ZW1CYWNrZHJvcExheWVyOgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdDIvV2ViS2l0Mi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291
cmNlL1dlYktpdDIvV2ViS2l0Mi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDc0ODE3
NzQyOGM2Y2IxZjZlMzlhYzI3YjgwYjIxOTE4MjViYzg3ZjcuLjgzZjNhMjg3NjMzNTdmYzY4YTRi
MjNhMDczMGExMDZkOGM3NzY3NjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYktpdDIu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJLaXQyLnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTgwLDYgKzgwLDggQEAKIAkJMEYwQzM2NUExOEMw
NTU1ODAwRjYwN0Q3IC8qIExheWVyUmVwcmVzZW50YXRpb24uaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGMEMzNjU5MThDMDU1NTgwMEY2MDdENyAvKiBM
YXllclJlcHJlc2VudGF0aW9uLmggKi87IH07CiAJCTBGMEMzNjVDMThDMDVDQTEwMEY2MDdENyAv
KiBSZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvclByb3h5SU9TLm1tIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEYwQzM2NUIxOEMwNUNBMTAwRjYwN0Q3IC8q
IFJlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yUHJveHlJT1MubW0gKi87IH07CiAJCTBGMEMzNjVF
MThDMTEwQTUwMEY2MDdENyAvKiBMYXllclJlcHJlc2VudGF0aW9uLm1tIGluIFNvdXJjZXMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEYwQzM2NUQxOEMxMTBBNTAwRjYwN0Q3
IC8qIExheWVyUmVwcmVzZW50YXRpb24ubW0gKi87IH07CisJCTBGMTY2NEFCMUFGRDc0NTMwMEI2
M0Q3QSAvKiBSZW1vdGVMYXllclRyZWVUaWxlTWFwLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjE2NjRBNzFBRkQ3NDQzMDBCNjNEN0EgLyogUmVtb3Rl
TGF5ZXJUcmVlVGlsZU1hcC5oICovOyB9OworCQkwRjE2NjRBQzFBRkQ3NDUzMDBCNjNEN0EgLyog
UmVtb3RlTGF5ZXJUcmVlVGlsZU1hcC5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDBGMTY2NEE4MUFGRDc0NDMwMEI2M0Q3QSAvKiBSZW1vdGVMYXllclRy
ZWVUaWxlTWFwLm1tICovOyB9OwogCQkwRjE3NEFBMzE0MkE0Q0I3MDAzOTI1MEYgLyogQVBJR2Vv
bWV0cnkuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBG
MTc0QUEyMTQyQTRDQjYwMDM5MjUwRiAvKiBBUElHZW9tZXRyeS5oICovOyB9OwogCQkwRjE3NEFB
NzE0MkFBQzYxMDAzOTI1MEYgLyogV0tHZW9tZXRyeS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjE3NEFBNjE0MkFBQzYxMDAzOTI1MEYgLyogV0tH
ZW9tZXRyeS5jcHAgKi87IH07CiAJCTBGM0M3MjVCMTk2RjYwNEUwMEFFREQwQyAvKiBXS0luc3Bl
Y3RvckhpZ2hsaWdodFZpZXcuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDBGM0M3MjU5MTk2RjVGNjgwMEFFREQwQyAvKiBXS0luc3BlY3RvckhpZ2hsaWdo
dFZpZXcuaCAqLzsgfTsKQEAgLTIxODEsNiArMjE4Myw4IEBACiAJCTBGMEMzNjU5MThDMDU1NTgw
MEY2MDdENyAvKiBMYXllclJlcHJlc2VudGF0aW9uLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgbmFtZSA9IExheWVyUmVwcmVzZW50YXRpb24uaDsgcGF0aCA9IFVJUHJvY2Vzcy9Db2NvYS9M
YXllclJlcHJlc2VudGF0aW9uLmg7IHNvdXJjZVRyZWUgPSBTT1VSQ0VfUk9PVDsgfTsKIAkJMEYw
QzM2NUIxOEMwNUNBMTAwRjYwN0Q3IC8qIFJlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yUHJveHlJ
T1MubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IG5hbWUgPSBSZW1vdGVTY3Jv
bGxpbmdDb29yZGluYXRvclByb3h5SU9TLm1tOyBwYXRoID0gaW9zL1JlbW90ZVNjcm9sbGluZ0Nv
b3JkaW5hdG9yUHJveHlJT1MubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBGMEMz
NjVEMThDMTEwQTUwMEY2MDdENyAvKiBMYXllclJlcHJlc2VudGF0aW9uLm1tICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAub2JqY3BwOyBuYW1lID0gTGF5ZXJSZXByZXNlbnRhdGlvbi5tbTsgcGF0
aCA9IGlvcy9MYXllclJlcHJlc2VudGF0aW9uLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OworCQkwRjE2NjRBNzFBRkQ3NDQzMDBCNjNEN0EgLyogUmVtb3RlTGF5ZXJUcmVlVGlsZU1hcC5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSZW1vdGVMYXllclRyZWVUaWxlTWFw
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTBGMTY2NEE4MUFGRDc0NDMwMEI2M0Q3
QSAvKiBSZW1vdGVMYXllclRyZWVUaWxlTWFwLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
b2JqY3BwOyBwYXRoID0gUmVtb3RlTGF5ZXJUcmVlVGlsZU1hcC5tbTsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJMEYxNzRBQTIxNDJBNENCNjAwMzkyNTBGIC8qIEFQSUdlb21ldHJ5Lmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEFQSUdlb21ldHJ5Lmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBGMTc0QUE2MTQyQUFDNjEwMDM5MjUwRiAvKiBXS0dlb21l
dHJ5LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdLR2VvbWV0cnku
Y3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwRjNDNzI1NzE5NkY1RjUwMDBBRURE
MEMgLyogV0tJbnNwZWN0b3JIaWdobGlnaHRWaWV3Lm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAub2JqY3BwOyBwYXRoID0gV0tJbnNwZWN0b3JIaWdobGlnaHRWaWV3Lm1tOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwpAQCAtNDk0MSw2ICs0OTQ1LDggQEAKIAkJCQkwRjBDMzY1OTE4QzA1
NTU4MDBGNjA3RDcgLyogTGF5ZXJSZXByZXNlbnRhdGlvbi5oICovLAogCQkJCTFBQkMzREY0MTg5
OUU0MzcwMDRGMDYyNiAvKiBOYXZpZ2F0aW9uU3RhdGUuaCAqLywKIAkJCQkxQUJDM0RGMzE4OTlF
NDM3MDA0RjA2MjYgLyogTmF2aWdhdGlvblN0YXRlLm1tICovLAorCQkJCTBGMTY2NEE3MUFGRDc0
NDMwMEI2M0Q3QSAvKiBSZW1vdGVMYXllclRyZWVUaWxlTWFwLmggKi8sCisJCQkJMEYxNjY0QTgx
QUZENzQ0MzAwQjYzRDdBIC8qIFJlbW90ZUxheWVyVHJlZVRpbGVNYXAubW0gKi8sCiAJCQkJMEY3
MDdDNzkxQTFGRUVBMzAwREE3QTQ1IC8qIFJlbW90ZUxheWVyVHJlZVNjcm9sbGluZ1BlcmZvcm1h
bmNlRGF0YS5oICovLAogCQkJCTBGNzA3Qzc3MUExRkVFODMwMERBN0E0NSAvKiBSZW1vdGVMYXll
clRyZWVTY3JvbGxpbmdQZXJmb3JtYW5jZURhdGEubW0gKi8sCiAJCQkJMUEwMDJENDcxOTZCMzQ1
RDAwQjlBRDQ0IC8qIFNlc3Npb25TdGF0ZUNvZGluZy5oICovLApAQCAtNzg1Niw2ICs3ODYyLDcg
QEAKIAkJCQkwRkNCNEU0NjE4QkJFMDQ0MDAwRkNGQzkgLyogUGFnZUNsaWVudEltcGxJT1MuaCBp
biBIZWFkZXJzICovLAogCQkJCTFBQzc1MzdDMTgzQTlGREIwMDcyQ0IxNSAvKiBQYWdlTG9hZFN0
YXRlLmggaW4gSGVhZGVycyAqLywKIAkJCQlDNTc0QTU4MTEyRTY2NjgxMDAyREZFOTggLyogUGFz
dGVib2FyZFR5cGVzLmggaW4gSGVhZGVycyAqLywKKwkJCQkwRjE2NjRBQjFBRkQ3NDUzMDBCNjNE
N0EgLyogUmVtb3RlTGF5ZXJUcmVlVGlsZU1hcC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRTE5NTgy
RDMxNTNDQkZENzAwQjYwODc1IC8qIFBERktpdEltcG9ydHMuaCBpbiBIZWFkZXJzICovLAogCQkJ
CTBGNUUyMDA0MThFNzcwNTEwMDNFQzNFNSAvKiBQbGF0Zm9ybUNBQW5pbWF0aW9uUmVtb3RlLmgg
aW4gSGVhZGVycyAqLywKIAkJCQkyREEwNDlCNDE4MENDQ0QzMDBBQUZBOUUgLyogUGxhdGZvcm1D
QUxheWVyUmVtb3RlLmggaW4gSGVhZGVycyAqLywKQEAgLTk4NDgsNiArOTg1NSw3IEBACiAJCQkJ
MkQyOEE0OTgxQUY5NjVBMjAwRjE5MEM5IC8qIFdLVmlld0xheW91dFN0cmF0ZWd5Lm1tIGluIFNv
dXJjZXMgKi8sCiAJCQkJNTFEMDJGNjQxMzJFQzVCOTAwQkVBQTk2IC8qIFdlYkljb25EYXRhYmFz
ZU1lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk1MTFCMjRBNjEzMkUwOTU3
MDAwNjVBMEMgLyogV2ViSWNvbkRhdGFiYXNlUHJveHkuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJ
MEYxNjY0QUMxQUZENzQ1MzAwQjYzRDdBIC8qIFJlbW90ZUxheWVyVHJlZVRpbGVNYXAubW0gaW4g
U291cmNlcyAqLywKIAkJCQk1MUQwMkY2QjEzMkVDNzM3MDBCRUFBOTYgLyogV2ViSWNvbkRhdGFi
YXNlUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNTFFMzUxRjUx
ODBGNUM3NTAwRTUzQkU5IC8qIFdlYklEQkZhY3RvcnlCYWNrZW5kLmNwcCBpbiBTb3VyY2VzICov
LAogCQkJCTUxMjkwOTkyMTgzQUNFQUYwMDU1MjJBNiAvKiBXZWJJREJTZXJ2ZXJDb25uZWN0aW9u
LmNwcCBpbiBTb3VyY2VzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9XZWJQYWdlL21hYy9QbGF0Zm9ybUNBTGF5ZXJSZW1vdGUuY3BwIGIvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9QbGF0Zm9ybUNBTGF5ZXJSZW1vdGUuY3BwCmluZGV4IGQw
ODM0YmMwNzAwOTZhZDc0YTViYmFhY2RkMzlkNWQ4MDAwZmU4ZmIuLjA0ZGFmYmZhZGYxMjRlMjFm
MzY4MjAwNDU5MjI0OTRjMjBiYzE0NTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvV2ViUGFnZS9tYWMvUGxhdGZvcm1DQUxheWVyUmVtb3RlLmNwcAorKysgYi9Tb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1BsYXRmb3JtQ0FMYXllclJlbW90ZS5jcHAK
QEAgLTc2MSw2ICs3NjEsMTggQEAgdm9pZCBQbGF0Zm9ybUNBTGF5ZXJSZW1vdGU6OnVwZGF0ZUN1
c3RvbUFwcGVhcmFuY2UoR3JhcGhpY3NMYXllcjo6Q3VzdG9tQXBwZWFyYW4KICAgICBtX3Byb3Bl
cnRpZXMubm90ZVByb3BlcnRpZXNDaGFuZ2VkKFJlbW90ZUxheWVyVHJlZVRyYW5zYWN0aW9uOjpD
dXN0b21BcHBlYXJhbmNlQ2hhbmdlZCk7CiB9CiAKK2Jvb2wgUGxhdGZvcm1DQUxheWVyUmVtb3Rl
OjpzZXRVbnBhcmVudGVkVGlsZUZyYW1lcyhWZWN0b3I8V2ViQ29yZTo6RmxvYXRSZWN0PiBmcmFt
ZXMpCit7CisgICAgaWYgKCFtX3Byb3BlcnRpZXMudW5wYXJlbnRlZFRpbGVGcmFtZXMpCisgICAg
ICAgIG1fcHJvcGVydGllcy51bnBhcmVudGVkVGlsZUZyYW1lcyA9IHN0ZDo6bWFrZV91bmlxdWU8
VmVjdG9yPEZsb2F0UmVjdD4+KCk7CisgICAgZWxzZSBpZiAoKm1fcHJvcGVydGllcy51bnBhcmVu
dGVkVGlsZUZyYW1lcyA9PSBmcmFtZXMpCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgICpt
X3Byb3BlcnRpZXMudW5wYXJlbnRlZFRpbGVGcmFtZXMgPSBXVEY6Om1vdmUoZnJhbWVzKTsKKyAg
ICBtX3Byb3BlcnRpZXMubm90ZVByb3BlcnRpZXNDaGFuZ2VkKFJlbW90ZUxheWVyVHJlZVRyYW5z
YWN0aW9uOjpVbnBhcmVudGVkVGlsZUZyYW1lc0NoYW5nZWQpOworICAgIHJldHVybiB0cnVlOwor
fQorCiBQYXNzUmVmUHRyPFBsYXRmb3JtQ0FMYXllcj4gUGxhdGZvcm1DQUxheWVyUmVtb3RlOjpj
cmVhdGVDb21wYXRpYmxlTGF5ZXIoUGxhdGZvcm1DQUxheWVyOjpMYXllclR5cGUgbGF5ZXJUeXBl
LCBQbGF0Zm9ybUNBTGF5ZXJDbGllbnQqIGNsaWVudCkgY29uc3QKIHsKICAgICByZXR1cm4gUGxh
dGZvcm1DQUxheWVyUmVtb3RlOjpjcmVhdGUobGF5ZXJUeXBlLCBjbGllbnQsICptX2NvbnRleHQp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9QbGF0
Zm9ybUNBTGF5ZXJSZW1vdGUuaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9t
YWMvUGxhdGZvcm1DQUxheWVyUmVtb3RlLmgKaW5kZXggZDBmNGM3ZDBiNzMxM2QwM2QyYWIxY2Jl
Y2YyZjVkOWU2ODFiOTM0OS4uNDFlNjk3MDY1YTM0NTRlOGViYTUyOTVmYzFlOGQyNzJlODk4NDJh
ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9QbGF0
Zm9ybUNBTGF5ZXJSZW1vdGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBh
Z2UvbWFjL1BsYXRmb3JtQ0FMYXllclJlbW90ZS5oCkBAIC0xNjMsNiArMTYzLDggQEAgcHVibGlj
OgogCiAgICAgdmlydHVhbCBXZWJDb3JlOjpUaWxlZEJhY2tpbmcqIHRpbGVkQmFja2luZygpIG92
ZXJyaWRlIHsgcmV0dXJuIG51bGxwdHI7IH0KIAorICAgIHZpcnR1YWwgYm9vbCBzZXRVbnBhcmVu
dGVkVGlsZUZyYW1lcyhWZWN0b3I8V2ViQ29yZTo6RmxvYXRSZWN0Pikgb3ZlcnJpZGU7CisKICAg
ICB2aXJ0dWFsIFBhc3NSZWZQdHI8V2ViQ29yZTo6UGxhdGZvcm1DQUxheWVyPiBjbG9uZShXZWJD
b3JlOjpQbGF0Zm9ybUNBTGF5ZXJDbGllbnQqIG93bmVyKSBjb25zdCBvdmVycmlkZTsKIAogICAg
IHZpcnR1YWwgUGFzc1JlZlB0cjxQbGF0Zm9ybUNBTGF5ZXI+IGNyZWF0ZUNvbXBhdGlibGVMYXll
cihXZWJDb3JlOjpQbGF0Zm9ybUNBTGF5ZXI6OkxheWVyVHlwZSwgV2ViQ29yZTo6UGxhdGZvcm1D
QUxheWVyQ2xpZW50KikgY29uc3Qgb3ZlcnJpZGU7Cg==
</data>
<flag name="review"
          id="277767"
          type_id="1"
          status="+"
          setter="thorton"
    />
          </attachment>
      

    </bug>

</bugzilla>